From: drowe67 Date: Wed, 2 Nov 2011 05:03:24 +0000 (+0000) Subject: have a good quaity delta-t quantiser at about 15 bits/frame, when used for every... X-Git-Url: http://git.whiteaudio.com/gitweb/?a=commitdiff_plain;h=1c5d1ad5a52516019cfcc09a651c74eec35a7c03;p=freetel-svn-tracking.git have a good quaity delta-t quantiser at about 15 bits/frame, when used for every second frame at 10ms. Need to work out how to get it down to 10 bit/fr, and if it works with decimated frames git-svn-id: https://svn.code.sf.net/p/freetel/code@297 01035d8c-6547-0410-b346-abe4f91aad63 --- diff --git a/codec2-dev/src/Makefile.am b/codec2-dev/src/Makefile.am index 5f23697f..24bacf9c 100644 --- a/codec2-dev/src/Makefile.am +++ b/codec2-dev/src/Makefile.am @@ -43,13 +43,20 @@ CODEBOOKSRES= \ $D/lsp3.txt \ $D/lsp4.txt -noinst_PROGRAMS = generate_codebook +CODEBOOKSDT= \ + $D/lspdt1-4.txt \ + $D/lspdt5-10.txt + +noinst_PROGRAMS = generate_codebook genlspdtcb codebook.$(OBJEXT): codebook.c codebookd.$(OBJEXT): codebookd.c codebookvq.$(OBJEXT): codebookvq.c codebookres.$(OBJEXT): codebookres.c +$(CODEBOOKSDT): genlspdtcb + ./genlspdtcb + codebook.lo: codebook.c codebook.c: generate_codebook $(CODEBOOKS) @@ -64,8 +71,11 @@ codebookvq.c: generate_codebook $(CODEBOOKSVQ) codebookres.c: generate_codebook $(CODEBOOKSRES) ./generate_codebook lsp_cbres $(CODEBOOKSRES) > codebookres.c +codebookdt.c: generate_codebook $(CODEBOOKSDT) + ./generate_codebook lsp_cbdt $(CODEBOOKSDT) > codebookdt.c + clean-local: - -rm -f codebook.c codebookd.c codebookdvq.c codebookres.c + -rm -f codebook.c codebookd.c codebookdvq.c codebookres.c codebookdt.c lib_LTLIBRARIES = libcodec2.la libcodec2_la_SOURCES = dump.c \ @@ -84,7 +94,8 @@ pack.c \ codebook.c \ codebookd.c \ codebookvq.c \ -codebookres.c +codebookres.c \ +codebookdt.c libcodec2_la_CFLAGS = $(AM_CFLAGS) libcodec2_la_LDFLAGS = $(LIBS) diff --git a/codec2-dev/src/Makefile.in b/codec2-dev/src/Makefile.in index 603c08bc..39a273cc 100644 --- a/codec2-dev/src/Makefile.in +++ b/codec2-dev/src/Makefile.in @@ -38,7 +38,7 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -noinst_PROGRAMS = generate_codebook$(EXEEXT) +noinst_PROGRAMS = generate_codebook$(EXEEXT) genlspdtcb$(EXEEXT) bin_PROGRAMS = c2demo$(EXEEXT) c2enc$(EXEEXT) c2dec$(EXEEXT) \ c2sim$(EXEEXT) subdir = src @@ -69,7 +69,7 @@ am_libcodec2_la_OBJECTS = libcodec2_la-dump.lo libcodec2_la-lpc.lo \ libcodec2_la-phase.lo libcodec2_la-quantise.lo \ libcodec2_la-pack.lo libcodec2_la-codebook.lo \ libcodec2_la-codebookd.lo libcodec2_la-codebookvq.lo \ - libcodec2_la-codebookres.lo + libcodec2_la-codebookres.lo libcodec2_la-codebookdt.lo libcodec2_la_OBJECTS = $(am_libcodec2_la_OBJECTS) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) @@ -89,6 +89,9 @@ c2sim_DEPENDENCIES = $(am__DEPENDENCIES_1) generate_codebook_SOURCES = generate_codebook.c generate_codebook_OBJECTS = generate_codebook.$(OBJEXT) generate_codebook_LDADD = $(LDADD) +genlspdtcb_SOURCES = genlspdtcb.c +genlspdtcb_OBJECTS = genlspdtcb.$(OBJEXT) +genlspdtcb_LDADD = $(LDADD) DEFAULT_INCLUDES = -I. -I$(srcdir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -101,10 +104,11 @@ CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libcodec2_la_SOURCES) $(c2dec_SOURCES) $(c2demo_SOURCES) \ - $(c2enc_SOURCES) $(c2sim_SOURCES) generate_codebook.c + $(c2enc_SOURCES) $(c2sim_SOURCES) generate_codebook.c \ + genlspdtcb.c DIST_SOURCES = $(libcodec2_la_SOURCES) $(c2dec_SOURCES) \ $(c2demo_SOURCES) $(c2enc_SOURCES) $(c2sim_SOURCES) \ - generate_codebook.c + generate_codebook.c genlspdtcb.c library_includeHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(library_include_HEADERS) ETAGS = etags @@ -257,6 +261,10 @@ CODEBOOKSRES = \ $D/lsp3.txt \ $D/lsp4.txt +CODEBOOKSDT = \ + $D/lspdt1-4.txt \ + $D/lspdt5-10.txt + lib_LTLIBRARIES = libcodec2.la libcodec2_la_SOURCES = dump.c \ lpc.c \ @@ -274,7 +282,8 @@ pack.c \ codebook.c \ codebookd.c \ codebookvq.c \ -codebookres.c +codebookres.c \ +codebookdt.c libcodec2_la_CFLAGS = $(AM_CFLAGS) libcodec2_la_LDFLAGS = $(LIBS) @@ -419,6 +428,9 @@ c2sim$(EXEEXT): $(c2sim_OBJECTS) $(c2sim_DEPENDENCIES) generate_codebook$(EXEEXT): $(generate_codebook_OBJECTS) $(generate_codebook_DEPENDENCIES) @rm -f generate_codebook$(EXEEXT) $(LINK) $(generate_codebook_LDFLAGS) $(generate_codebook_OBJECTS) $(generate_codebook_LDADD) $(LIBS) +genlspdtcb$(EXEEXT): $(genlspdtcb_OBJECTS) $(genlspdtcb_DEPENDENCIES) + @rm -f genlspdtcb$(EXEEXT) + $(LINK) $(genlspdtcb_LDFLAGS) $(genlspdtcb_OBJECTS) $(genlspdtcb_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -431,8 +443,10 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c2enc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c2sim.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/generate_codebook.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/genlspdtcb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcodec2_la-codebook.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcodec2_la-codebookd.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcodec2_la-codebookdt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcodec2_la-codebookres.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcodec2_la-codebookvq.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcodec2_la-codec2.Plo@am__quote@ @@ -589,6 +603,13 @@ libcodec2_la-codebookres.lo: codebookres.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcodec2_la_CFLAGS) $(CFLAGS) -c -o libcodec2_la-codebookres.lo `test -f 'codebookres.c' || echo '$(srcdir)/'`codebookres.c +libcodec2_la-codebookdt.lo: codebookdt.c +@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcodec2_la_CFLAGS) $(CFLAGS) -MT libcodec2_la-codebookdt.lo -MD -MP -MF "$(DEPDIR)/libcodec2_la-codebookdt.Tpo" -c -o libcodec2_la-codebookdt.lo `test -f 'codebookdt.c' || echo '$(srcdir)/'`codebookdt.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libcodec2_la-codebookdt.Tpo" "$(DEPDIR)/libcodec2_la-codebookdt.Plo"; else rm -f "$(DEPDIR)/libcodec2_la-codebookdt.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='codebookdt.c' object='libcodec2_la-codebookdt.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcodec2_la_CFLAGS) $(CFLAGS) -c -o libcodec2_la-codebookdt.lo `test -f 'codebookdt.c' || echo '$(srcdir)/'`codebookdt.c + mostlyclean-libtool: -rm -f *.lo @@ -797,6 +818,9 @@ codebookd.$(OBJEXT): codebookd.c codebookvq.$(OBJEXT): codebookvq.c codebookres.$(OBJEXT): codebookres.c +$(CODEBOOKSDT): genlspdtcb + ./genlspdtcb + codebook.lo: codebook.c codebook.c: generate_codebook $(CODEBOOKS) @@ -811,8 +835,11 @@ codebookvq.c: generate_codebook $(CODEBOOKSVQ) codebookres.c: generate_codebook $(CODEBOOKSRES) ./generate_codebook lsp_cbres $(CODEBOOKSRES) > codebookres.c +codebookdt.c: generate_codebook $(CODEBOOKSDT) + ./generate_codebook lsp_cbdt $(CODEBOOKSDT) > codebookdt.c + clean-local: - -rm -f codebook.c codebookd.c codebookdvq.c codebookres.c + -rm -f codebook.c codebookd.c codebookdvq.c codebookres.c codebookdt.c # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff --git a/codec2-dev/src/c2sim.c b/codec2-dev/src/c2sim.c index 13bf92ab..59ce66c7 100644 --- a/codec2-dev/src/c2sim.c +++ b/codec2-dev/src/c2sim.c @@ -100,7 +100,7 @@ int main(int argc, char *argv[]) float sum_snr; int lpc_model, order = LPC_ORD; - int lsp, lspd, lspvq, lsp_quantiser, lspres; + int lsp, lspd, lspvq, lsp_quantiser, lspres, lspdt; float ak[LPC_MAX]; COMP Sw_[FFT_ENC]; COMP Ew[FFT_ENC]; @@ -120,6 +120,7 @@ int main(int argc, char *argv[]) int decimate; float lsps[LPC_ORD]; float prev_lsps[LPC_ORD]; + float lsps__prev[LPC_ORD]; float e, prev_e; float ak_interp[LPC_MAX]; @@ -144,6 +145,7 @@ int main(int argc, char *argv[]) } for(i=0; i. + +*/ + +#define MAX_ROWS 10 + +float lsp1to4[] = { + -25,0,25, + -25,0,25, + -50,0,50, + -50,0,50 +}; + +float lsp5to10[] = { + -50,0,50, + -50,0,50, + -50,0,50, + -50,0,50, + -50,0,50, + -50,0,50 +}; + +#include +#include +#include +#include +#include + +void create_codebook_text_file(char filename[], float lsp[], + int rows, int cols); + +int main(void) { + create_codebook_text_file("codebook/lspdt1-4.txt", lsp1to4, 4, 3); + create_codebook_text_file("codebook/lspdt5-10.txt", lsp5to10, 6, 3); + return 0; +} + +void create_codebook_text_file(char filename[], float lsp[], + int rows, int cols) +{ + FILE *f; + int i, digits[MAX_ROWS]; + + f = fopen(filename, "wt"); + if (f == NULL) { + printf("Can't open codebook text file %s\n", filename); + exit(0); + } + + for(i=0; i