From db83e34cac2dfd4e6013edd444b1ccf5254f4cd1 Mon Sep 17 00:00:00 2001 From: drowe67 Date: Thu, 18 Nov 2010 19:35:59 +0000 Subject: [PATCH] removed lpc_correction bit, as I think simplified lpc-correction algorithm works OK with no transmitted bit git-svn-id: https://svn.code.sf.net/p/freetel/code@246 01035d8c-6547-0410-b346-abe4f91aad63 --- codec2/src/c2sim.c | 5 ++--- codec2/src/codec2.c | 8 +------- codec2/src/codec2.h | 2 +- codec2/src/quantise.c | 7 ++----- codec2/src/quantise.h | 5 +---- codec2/unittest/Makefile.am | 6 +++--- codec2/unittest/Makefile.in | 28 ++++++++++++++++++++++------ codec2/unittest/tcodec2.c | 13 ++++++------- 8 files changed, 38 insertions(+), 36 deletions(-) diff --git a/codec2/src/c2sim.c b/codec2/src/c2sim.c index 5cece50b..5b64489d 100644 --- a/codec2/src/c2sim.c +++ b/codec2/src/c2sim.c @@ -121,7 +121,6 @@ int main(int argc, char *argv[]) float lsps[LPC_ORD]; float prev_lsps[LPC_ORD]; float e, prev_e; - int lpc_correction; float ak_interp[LPC_MAX]; void *nlp_states; @@ -330,7 +329,7 @@ int main(int argc, char *argv[]) model.Wo = decode_Wo(encode_Wo(model.Wo)); aks_to_M2(ak, order, &model, e, &snr, 1); - apply_lpc_correction(&model, lpc_correction); + apply_lpc_correction(&model); sum_snr += snr; #ifdef DUMP dump_quantised_model(&model); @@ -361,7 +360,7 @@ int main(int argc, char *argv[]) #else interpolate_lsp(&interp_model, &prev_model, &model, prev_lsps, prev_e, lsps, e, ak_interp); - apply_lpc_correction(&interp_model, lpc_correction); + apply_lpc_correction(&interp_model); #endif if (phase0) diff --git a/codec2/src/codec2.c b/codec2/src/codec2.c index 3025a03b..15787673 100644 --- a/codec2/src/codec2.c +++ b/codec2/src/codec2.c @@ -181,7 +181,6 @@ void codec2_encode(void *codec2_state, unsigned char * bits, short speech[]) MODEL model; int voiced1, voiced2; int lsp_indexes[LPC_ORD]; - int lpc_correction; int energy_index; int Wo_index; int i; @@ -202,7 +201,6 @@ void codec2_encode(void *codec2_state, unsigned char * bits, short speech[]) Wo_index = encode_Wo(model.Wo); encode_amplitudes(lsp_indexes, - &lpc_correction, &energy_index, &model, c2->Sn, @@ -212,7 +210,6 @@ void codec2_encode(void *codec2_state, unsigned char * bits, short speech[]) for(i=0; iprev_model, &model, c2->prev_lsps, c2->prev_energy, lsps, energy, ak_interp); - apply_lpc_correction(&model_interp, lpc_correction); + apply_lpc_correction(&model_interp); /* synthesis two 10ms frames */ diff --git a/codec2/src/codec2.h b/codec2/src/codec2.h index 5d8e1e64..946dedca 100644 --- a/codec2/src/codec2.h +++ b/codec2/src/codec2.h @@ -30,7 +30,7 @@ #define __CODEC2__ #define CODEC2_SAMPLES_PER_FRAME 160 -#define CODEC2_BITS_PER_FRAME 51 +#define CODEC2_BITS_PER_FRAME 50 void *codec2_create(); void codec2_destroy(void *codec2_state); diff --git a/codec2/src/quantise.c b/codec2/src/quantise.c index c8b25296..1c8e65a2 100644 --- a/codec2/src/quantise.c +++ b/codec2/src/quantise.c @@ -637,7 +637,7 @@ void bw_expand_lsps(float lsp[], \*---------------------------------------------------------------------------*/ -void apply_lpc_correction(MODEL *model, int lpc_correction) +void apply_lpc_correction(MODEL *model) { if (model->Wo < (PI*150.0/4000)) { model->A[1] *= 0.032; @@ -708,7 +708,6 @@ float decode_energy(int index) \*---------------------------------------------------------------------------*/ void encode_amplitudes(int lsp_indexes[], - int *lpc_correction, int *energy_index, MODEL *model, float Sn[], @@ -720,7 +719,6 @@ void encode_amplitudes(int lsp_indexes[], e = speech_to_uq_lsps(lsps, ak, Sn, w, LPC_ORD); encode_lsps(lsp_indexes, lsps, LPC_ORD); - *lpc_correction = need_lpc_correction(model, ak, e, LPC_ORD); *energy_index = encode_energy(e); } @@ -738,7 +736,6 @@ void encode_amplitudes(int lsp_indexes[], float decode_amplitudes(MODEL *model, float ak[], int lsp_indexes[], - int lpc_correction, int energy_index, float lsps[], float *e @@ -751,7 +748,7 @@ float decode_amplitudes(MODEL *model, lsp_to_lpc(lsps, ak, LPC_ORD); *e = decode_energy(energy_index); aks_to_M2(ak, LPC_ORD, model, *e, &snr, 1); - apply_lpc_correction(model, lpc_correction); + apply_lpc_correction(model); return snr; } diff --git a/codec2/src/quantise.h b/codec2/src/quantise.h index 0f49cf70..ba234952 100644 --- a/codec2/src/quantise.h +++ b/codec2/src/quantise.h @@ -50,7 +50,6 @@ int encode_energy(float e); float decode_energy(int index); void encode_amplitudes(int lsp_indexes[], - int *lpc_correction, int *energy_index, MODEL *model, float Sn[], @@ -59,7 +58,6 @@ void encode_amplitudes(int lsp_indexes[], float decode_amplitudes(MODEL *model, float ak[], int lsp_indexes[], - int lpc_correction, int energy_index, float lsps[], float *e); @@ -69,8 +67,7 @@ int unpack(const unsigned char * bits, unsigned int *nbit, unsigned int index_b int lsp_bits(int i); -int need_lpc_correction(MODEL *model, float ak[], float E, int order); -void apply_lpc_correction(MODEL *model, int lpc_correction); +void apply_lpc_correction(MODEL *model); float speech_to_uq_lsps(float lsp[], float ak[], float Sn[], diff --git a/codec2/unittest/Makefile.am b/codec2/unittest/Makefile.am index 5030f63f..0db67d5c 100644 --- a/codec2/unittest/Makefile.am +++ b/codec2/unittest/Makefile.am @@ -26,17 +26,17 @@ tnlp_SOURCES = tnlp.c ../src/sine.c ../src/nlp.c ../src/four1.c ../src/dump.c tnlp_LDADD = $(lib_LTLIBRARIES) tnlp_LDFLAGS = $(LIBS) -tinterp_SOURCES = tinterp.c ../src/sine.c ../src/four1.c ../src/interp.c ../src/lpc.c ../src/lsp.c ../src/quantise.c ../src/codebook.c ../src/dump.c +tinterp_SOURCES = tinterp.c ../src/sine.c ../src/four1.c ../src/interp.c ../src/lpc.c ../src/lsp.c ../src/quantise.c ../src/codebook.c ../src/codebookd.c ../src/dump.c tinterp_LDADD = $(lib_LTLIBRARIES) tinterp_LDFLAGS = $(LIBS) -tquant_SOURCES = tquant.c ../src/quantise.c ../src/lpc.c ../src/lsp.c ../src/dump.c ../src/four1.c ../src/codebook.c +tquant_SOURCES = tquant.c ../src/quantise.c ../src/lpc.c ../src/lsp.c ../src/dump.c ../src/four1.c ../src/codebook.c ../src/codebookd.c tquant_LDADD = $(lib_LTLIBRARIES) tquant_LDFLAGS = $(LIBS) tcodec2_SOURCES = tcodec2.c ../src/quantise.c ../src/lpc.c ../src/lsp.c ../src/dump.c ../src/four1.c \ ../src/codec2.c ../src/sine.c ../src/nlp.c ../src/postfilter.c ../src/phase.c ../src/interp.c \ -../src/codebook.c ../src/pack.c +../src/codebook.c ../src/codebookd.c ../src/pack.c tcodec2_LDADD = $(lib_LTLIBRARIES) tcodec2_LDFLAGS = $(LIBS) diff --git a/codec2/unittest/Makefile.in b/codec2/unittest/Makefile.in index a213991a..d12b44c6 100644 --- a/codec2/unittest/Makefile.in +++ b/codec2/unittest/Makefile.in @@ -63,12 +63,13 @@ am_tcodec2_OBJECTS = tcodec2.$(OBJEXT) quantise.$(OBJEXT) \ lpc.$(OBJEXT) lsp.$(OBJEXT) dump.$(OBJEXT) four1.$(OBJEXT) \ codec2.$(OBJEXT) sine.$(OBJEXT) nlp.$(OBJEXT) \ postfilter.$(OBJEXT) phase.$(OBJEXT) interp.$(OBJEXT) \ - codebook.$(OBJEXT) pack.$(OBJEXT) + codebook.$(OBJEXT) codebookd.$(OBJEXT) pack.$(OBJEXT) tcodec2_OBJECTS = $(am_tcodec2_OBJECTS) tcodec2_DEPENDENCIES = am_tinterp_OBJECTS = tinterp.$(OBJEXT) sine.$(OBJEXT) four1.$(OBJEXT) \ interp.$(OBJEXT) lpc.$(OBJEXT) lsp.$(OBJEXT) \ - quantise.$(OBJEXT) codebook.$(OBJEXT) dump.$(OBJEXT) + quantise.$(OBJEXT) codebook.$(OBJEXT) codebookd.$(OBJEXT) \ + dump.$(OBJEXT) tinterp_OBJECTS = $(am_tinterp_OBJECTS) tinterp_DEPENDENCIES = am_tnlp_OBJECTS = tnlp.$(OBJEXT) sine.$(OBJEXT) nlp.$(OBJEXT) \ @@ -77,7 +78,7 @@ tnlp_OBJECTS = $(am_tnlp_OBJECTS) tnlp_DEPENDENCIES = am_tquant_OBJECTS = tquant.$(OBJEXT) quantise.$(OBJEXT) lpc.$(OBJEXT) \ lsp.$(OBJEXT) dump.$(OBJEXT) four1.$(OBJEXT) \ - codebook.$(OBJEXT) + codebook.$(OBJEXT) codebookd.$(OBJEXT) tquant_OBJECTS = $(am_tquant_OBJECTS) tquant_DEPENDENCIES = am_vqtrain_OBJECTS = vqtrain.$(OBJEXT) @@ -226,15 +227,15 @@ vqtrain_LDFLAGS = $(LIBS) tnlp_SOURCES = tnlp.c ../src/sine.c ../src/nlp.c ../src/four1.c ../src/dump.c tnlp_LDADD = $(lib_LTLIBRARIES) tnlp_LDFLAGS = $(LIBS) -tinterp_SOURCES = tinterp.c ../src/sine.c ../src/four1.c ../src/interp.c ../src/lpc.c ../src/lsp.c ../src/quantise.c ../src/codebook.c ../src/dump.c +tinterp_SOURCES = tinterp.c ../src/sine.c ../src/four1.c ../src/interp.c ../src/lpc.c ../src/lsp.c ../src/quantise.c ../src/codebook.c ../src/codebookd.c ../src/dump.c tinterp_LDADD = $(lib_LTLIBRARIES) tinterp_LDFLAGS = $(LIBS) -tquant_SOURCES = tquant.c ../src/quantise.c ../src/lpc.c ../src/lsp.c ../src/dump.c ../src/four1.c ../src/codebook.c +tquant_SOURCES = tquant.c ../src/quantise.c ../src/lpc.c ../src/lsp.c ../src/dump.c ../src/four1.c ../src/codebook.c ../src/codebookd.c tquant_LDADD = $(lib_LTLIBRARIES) tquant_LDFLAGS = $(LIBS) tcodec2_SOURCES = tcodec2.c ../src/quantise.c ../src/lpc.c ../src/lsp.c ../src/dump.c ../src/four1.c \ ../src/codec2.c ../src/sine.c ../src/nlp.c ../src/postfilter.c ../src/phase.c ../src/interp.c \ -../src/codebook.c ../src/pack.c +../src/codebook.c ../src/codebookd.c ../src/pack.c tcodec2_LDADD = $(lib_LTLIBRARIES) tcodec2_LDFLAGS = $(LIBS) @@ -331,6 +332,7 @@ distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/codebook.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/codebookd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/codec2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/extract.Po@am__quote@ @@ -541,6 +543,20 @@ codebook.obj: ../src/codebook.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o codebook.obj `if test -f '../src/codebook.c'; then $(CYGPATH_W) '../src/codebook.c'; else $(CYGPATH_W) '$(srcdir)/../src/codebook.c'; fi` +codebookd.o: ../src/codebookd.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT codebookd.o -MD -MP -MF "$(DEPDIR)/codebookd.Tpo" -c -o codebookd.o `test -f '../src/codebookd.c' || echo '$(srcdir)/'`../src/codebookd.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/codebookd.Tpo" "$(DEPDIR)/codebookd.Po"; else rm -f "$(DEPDIR)/codebookd.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/codebookd.c' object='codebookd.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o codebookd.o `test -f '../src/codebookd.c' || echo '$(srcdir)/'`../src/codebookd.c + +codebookd.obj: ../src/codebookd.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT codebookd.obj -MD -MP -MF "$(DEPDIR)/codebookd.Tpo" -c -o codebookd.obj `if test -f '../src/codebookd.c'; then $(CYGPATH_W) '../src/codebookd.c'; else $(CYGPATH_W) '$(srcdir)/../src/codebookd.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/codebookd.Tpo" "$(DEPDIR)/codebookd.Po"; else rm -f "$(DEPDIR)/codebookd.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/codebookd.c' object='codebookd.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o codebookd.obj `if test -f '../src/codebookd.c'; then $(CYGPATH_W) '../src/codebookd.c'; else $(CYGPATH_W) '$(srcdir)/../src/codebookd.c'; fi` + pack.o: ../src/pack.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pack.o -MD -MP -MF "$(DEPDIR)/pack.Tpo" -c -o pack.o `test -f '../src/pack.c' || echo '$(srcdir)/'`../src/pack.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pack.Tpo" "$(DEPDIR)/pack.Po"; else rm -f "$(DEPDIR)/pack.Tpo"; exit 1; fi diff --git a/codec2/unittest/tcodec2.c b/codec2/unittest/tcodec2.c index dc1eda57..4f057723 100644 --- a/codec2/unittest/tcodec2.c +++ b/codec2/unittest/tcodec2.c @@ -96,13 +96,14 @@ int test2() float ak[LPC_ORD+1]; int voiced1, voiced2; int lsp_indexes[LPC_ORD]; - int lpc_correction; int energy_index; int Wo_index; char bits[CODEC2_BITS_PER_FRAME]; int nbit; int i; - + float lsps[LPC_ORD]; + float e; + c2 = codec2_create(); c3 = (CODEC2*)c2; @@ -124,7 +125,6 @@ int test2() Wo_index = encode_Wo(model.Wo); encode_amplitudes(lsp_indexes, - &lpc_correction, &energy_index, &model, c3->Sn, @@ -134,7 +134,6 @@ int test2() for(i=0; i