first pass at delta time coding of LSPs in c2sim, sounds pretty good with --lspd...
authordrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Wed, 2 Nov 2011 06:04:27 +0000 (06:04 +0000)
committerdrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Wed, 2 Nov 2011 06:04:27 +0000 (06:04 +0000)
git-svn-id: https://svn.code.sf.net/p/freetel/code@298 01035d8c-6547-0410-b346-abe4f91aad63

codec2-dev/src/c2sim.c
codec2-dev/src/codebook/lspdt1-4.txt [new file with mode: 0644]
codec2-dev/src/codebook/lspdt5-10.txt [new file with mode: 0644]
codec2-dev/src/codebookdt.c [new file with mode: 0644]
codec2-dev/src/quantise.c

index 59ce66c739c44879356d3a51ec572b31c0832548..f0b711ef08ba9d1546530ea7d5169d0840066f13 100644 (file)
@@ -121,6 +121,7 @@ int main(int argc, char *argv[])
   float lsps[LPC_ORD];
   float prev_lsps[LPC_ORD];
   float lsps__prev[LPC_ORD];
+  float lsps__prev2[LPC_ORD];
   float e, prev_e;
   float ak_interp[LPC_MAX];
 
@@ -145,7 +146,7 @@ int main(int argc, char *argv[])
   }
   for(i=0; i<LPC_ORD; i++) {
       prev_lsps[i] = i*PI/(LPC_ORD+1);
-      lsps__prev[i] = i*PI/(LPC_ORD+1);
+      lsps__prev[i] = lsps__prev2[i] = i*PI/(LPC_ORD+1);
   }
   e = prev_e = 1;
   hpf_states[0] = hpf_states[1] = 0.0;
@@ -300,7 +301,7 @@ int main(int argc, char *argv[])
        
        /* determine voicing */
 
-       snr = est_voicing_mbe(&model, Sw, Sw_, Ew, W, prev_Wo);
+       snr = est_voicing_mbe(&model, Sw, W, Sw_, Ew, prev_Wo);
 #ifdef DUMP
        dump_Sw_(Sw_);
        dump_Ew(Ew);
@@ -356,26 +357,27 @@ int main(int argc, char *argv[])
            lsp_to_lpc(lsps_, ak, LPC_ORD);
        }
 
-       if (lspdt) {
-#define ALTERNATE              
-#ifdef ALTERNATE
+       if (lspdt && !decimate) {
            if (frames%2) {
-               //locate_lsps_jnd_steps(lsps, LPC_ORD);
-               //lspvq_quantise(lsps, lsps_, LPC_ORD);
-               for(i=0; i<LPC_ORD; i++) {
-                   lsps_[i] = lsps[i];
-                   lsps__prev[i] = lsps_[i];
-               }
+               lspdt_quantise(lsps, lsps_, lsps__prev);
+               bw_expand_lsps(lsps_, LPC_ORD);
+               lsp_to_lpc(lsps_, ak, LPC_ORD);
+           }
+           for(i=0; i<LPC_ORD; i++) {
+               lsps__prev[i] = lsps_[i];
+           }
+       }
 
+       if (lspdt && decimate) {
+           if ((frames%4) == 3) {
+               lspdt_quantise(lsps, lsps_, lsps__prev2);
+               bw_expand_lsps(lsps_, LPC_ORD);
+               lsp_to_lpc(lsps_, ak, LPC_ORD);
            }
-           else {
-               lspdt_quantise(lsps, lsps_, lsps__prev);
+           for(i=0; i<LPC_ORD; i++) {
+               lsps__prev2[i] = lsps__prev[i];
+               lsps__prev[i] = lsps_[i];
            }
-#else
-           lspdt_quantise(lsps, lsps_, lsps__prev);
-#endif
-           //locate_lsps_jnd_steps(lsps_, LPC_ORD);
-           lsp_to_lpc(lsps_, ak, LPC_ORD);
        }
 
 #ifdef DUMP
diff --git a/codec2-dev/src/codebook/lspdt1-4.txt b/codec2-dev/src/codebook/lspdt1-4.txt
new file mode 100644 (file)
index 0000000..890001f
--- /dev/null
@@ -0,0 +1,82 @@
+4 81
+ -25  -25  -50  -50 
+   0  -25  -50  -50 
+  25  -25  -50  -50 
+ -25    0  -50  -50 
+   0    0  -50  -50 
+  25    0  -50  -50 
+ -25   25  -50  -50 
+   0   25  -50  -50 
+  25   25  -50  -50 
+ -25  -25    0  -50 
+   0  -25    0  -50 
+  25  -25    0  -50 
+ -25    0    0  -50 
+   0    0    0  -50 
+  25    0    0  -50 
+ -25   25    0  -50 
+   0   25    0  -50 
+  25   25    0  -50 
+ -25  -25   50  -50 
+   0  -25   50  -50 
+  25  -25   50  -50 
+ -25    0   50  -50 
+   0    0   50  -50 
+  25    0   50  -50 
+ -25   25   50  -50 
+   0   25   50  -50 
+  25   25   50  -50 
+ -25  -25  -50    0 
+   0  -25  -50    0 
+  25  -25  -50    0 
+ -25    0  -50    0 
+   0    0  -50    0 
+  25    0  -50    0 
+ -25   25  -50    0 
+   0   25  -50    0 
+  25   25  -50    0 
+ -25  -25    0    0 
+   0  -25    0    0 
+  25  -25    0    0 
+ -25    0    0    0 
+   0    0    0    0 
+  25    0    0    0 
+ -25   25    0    0 
+   0   25    0    0 
+  25   25    0    0 
+ -25  -25   50    0 
+   0  -25   50    0 
+  25  -25   50    0 
+ -25    0   50    0 
+   0    0   50    0 
+  25    0   50    0 
+ -25   25   50    0 
+   0   25   50    0 
+  25   25   50    0 
+ -25  -25  -50   50 
+   0  -25  -50   50 
+  25  -25  -50   50 
+ -25    0  -50   50 
+   0    0  -50   50 
+  25    0  -50   50 
+ -25   25  -50   50 
+   0   25  -50   50 
+  25   25  -50   50 
+ -25  -25    0   50 
+   0  -25    0   50 
+  25  -25    0   50 
+ -25    0    0   50 
+   0    0    0   50 
+  25    0    0   50 
+ -25   25    0   50 
+   0   25    0   50 
+  25   25    0   50 
+ -25  -25   50   50 
+   0  -25   50   50 
+  25  -25   50   50 
+ -25    0   50   50 
+   0    0   50   50 
+  25    0   50   50 
+ -25   25   50   50 
+   0   25   50   50 
+  25   25   50   50 
diff --git a/codec2-dev/src/codebook/lspdt5-10.txt b/codec2-dev/src/codebook/lspdt5-10.txt
new file mode 100644 (file)
index 0000000..3e18efa
--- /dev/null
@@ -0,0 +1,730 @@
+6 729
+ -50  -50  -50  -50  -50  -50 
+   0  -50  -50  -50  -50  -50 
+  50  -50  -50  -50  -50  -50 
+ -50    0  -50  -50  -50  -50 
+   0    0  -50  -50  -50  -50 
+  50    0  -50  -50  -50  -50 
+ -50   50  -50  -50  -50  -50 
+   0   50  -50  -50  -50  -50 
+  50   50  -50  -50  -50  -50 
+ -50  -50    0  -50  -50  -50 
+   0  -50    0  -50  -50  -50 
+  50  -50    0  -50  -50  -50 
+ -50    0    0  -50  -50  -50 
+   0    0    0  -50  -50  -50 
+  50    0    0  -50  -50  -50 
+ -50   50    0  -50  -50  -50 
+   0   50    0  -50  -50  -50 
+  50   50    0  -50  -50  -50 
+ -50  -50   50  -50  -50  -50 
+   0  -50   50  -50  -50  -50 
+  50  -50   50  -50  -50  -50 
+ -50    0   50  -50  -50  -50 
+   0    0   50  -50  -50  -50 
+  50    0   50  -50  -50  -50 
+ -50   50   50  -50  -50  -50 
+   0   50   50  -50  -50  -50 
+  50   50   50  -50  -50  -50 
+ -50  -50  -50    0  -50  -50 
+   0  -50  -50    0  -50  -50 
+  50  -50  -50    0  -50  -50 
+ -50    0  -50    0  -50  -50 
+   0    0  -50    0  -50  -50 
+  50    0  -50    0  -50  -50 
+ -50   50  -50    0  -50  -50 
+   0   50  -50    0  -50  -50 
+  50   50  -50    0  -50  -50 
+ -50  -50    0    0  -50  -50 
+   0  -50    0    0  -50  -50 
+  50  -50    0    0  -50  -50 
+ -50    0    0    0  -50  -50 
+   0    0    0    0  -50  -50 
+  50    0    0    0  -50  -50 
+ -50   50    0    0  -50  -50 
+   0   50    0    0  -50  -50 
+  50   50    0    0  -50  -50 
+ -50  -50   50    0  -50  -50 
+   0  -50   50    0  -50  -50 
+  50  -50   50    0  -50  -50 
+ -50    0   50    0  -50  -50 
+   0    0   50    0  -50  -50 
+  50    0   50    0  -50  -50 
+ -50   50   50    0  -50  -50 
+   0   50   50    0  -50  -50 
+  50   50   50    0  -50  -50 
+ -50  -50  -50   50  -50  -50 
+   0  -50  -50   50  -50  -50 
+  50  -50  -50   50  -50  -50 
+ -50    0  -50   50  -50  -50 
+   0    0  -50   50  -50  -50 
+  50    0  -50   50  -50  -50 
+ -50   50  -50   50  -50  -50 
+   0   50  -50   50  -50  -50 
+  50   50  -50   50  -50  -50 
+ -50  -50    0   50  -50  -50 
+   0  -50    0   50  -50  -50 
+  50  -50    0   50  -50  -50 
+ -50    0    0   50  -50  -50 
+   0    0    0   50  -50  -50 
+  50    0    0   50  -50  -50 
+ -50   50    0   50  -50  -50 
+   0   50    0   50  -50  -50 
+  50   50    0   50  -50  -50 
+ -50  -50   50   50  -50  -50 
+   0  -50   50   50  -50  -50 
+  50  -50   50   50  -50  -50 
+ -50    0   50   50  -50  -50 
+   0    0   50   50  -50  -50 
+  50    0   50   50  -50  -50 
+ -50   50   50   50  -50  -50 
+   0   50   50   50  -50  -50 
+  50   50   50   50  -50  -50 
+ -50  -50  -50  -50    0  -50 
+   0  -50  -50  -50    0  -50 
+  50  -50  -50  -50    0  -50 
+ -50    0  -50  -50    0  -50 
+   0    0  -50  -50    0  -50 
+  50    0  -50  -50    0  -50 
+ -50   50  -50  -50    0  -50 
+   0   50  -50  -50    0  -50 
+  50   50  -50  -50    0  -50 
+ -50  -50    0  -50    0  -50 
+   0  -50    0  -50    0  -50 
+  50  -50    0  -50    0  -50 
+ -50    0    0  -50    0  -50 
+   0    0    0  -50    0  -50 
+  50    0    0  -50    0  -50 
+ -50   50    0  -50    0  -50 
+   0   50    0  -50    0  -50 
+  50   50    0  -50    0  -50 
+ -50  -50   50  -50    0  -50 
+   0  -50   50  -50    0  -50 
+  50  -50   50  -50    0  -50 
+ -50    0   50  -50    0  -50 
+   0    0   50  -50    0  -50 
+  50    0   50  -50    0  -50 
+ -50   50   50  -50    0  -50 
+   0   50   50  -50    0  -50 
+  50   50   50  -50    0  -50 
+ -50  -50  -50    0    0  -50 
+   0  -50  -50    0    0  -50 
+  50  -50  -50    0    0  -50 
+ -50    0  -50    0    0  -50 
+   0    0  -50    0    0  -50 
+  50    0  -50    0    0  -50 
+ -50   50  -50    0    0  -50 
+   0   50  -50    0    0  -50 
+  50   50  -50    0    0  -50 
+ -50  -50    0    0    0  -50 
+   0  -50    0    0    0  -50 
+  50  -50    0    0    0  -50 
+ -50    0    0    0    0  -50 
+   0    0    0    0    0  -50 
+  50    0    0    0    0  -50 
+ -50   50    0    0    0  -50 
+   0   50    0    0    0  -50 
+  50   50    0    0    0  -50 
+ -50  -50   50    0    0  -50 
+   0  -50   50    0    0  -50 
+  50  -50   50    0    0  -50 
+ -50    0   50    0    0  -50 
+   0    0   50    0    0  -50 
+  50    0   50    0    0  -50 
+ -50   50   50    0    0  -50 
+   0   50   50    0    0  -50 
+  50   50   50    0    0  -50 
+ -50  -50  -50   50    0  -50 
+   0  -50  -50   50    0  -50 
+  50  -50  -50   50    0  -50 
+ -50    0  -50   50    0  -50 
+   0    0  -50   50    0  -50 
+  50    0  -50   50    0  -50 
+ -50   50  -50   50    0  -50 
+   0   50  -50   50    0  -50 
+  50   50  -50   50    0  -50 
+ -50  -50    0   50    0  -50 
+   0  -50    0   50    0  -50 
+  50  -50    0   50    0  -50 
+ -50    0    0   50    0  -50 
+   0    0    0   50    0  -50 
+  50    0    0   50    0  -50 
+ -50   50    0   50    0  -50 
+   0   50    0   50    0  -50 
+  50   50    0   50    0  -50 
+ -50  -50   50   50    0  -50 
+   0  -50   50   50    0  -50 
+  50  -50   50   50    0  -50 
+ -50    0   50   50    0  -50 
+   0    0   50   50    0  -50 
+  50    0   50   50    0  -50 
+ -50   50   50   50    0  -50 
+   0   50   50   50    0  -50 
+  50   50   50   50    0  -50 
+ -50  -50  -50  -50   50  -50 
+   0  -50  -50  -50   50  -50 
+  50  -50  -50  -50   50  -50 
+ -50    0  -50  -50   50  -50 
+   0    0  -50  -50   50  -50 
+  50    0  -50  -50   50  -50 
+ -50   50  -50  -50   50  -50 
+   0   50  -50  -50   50  -50 
+  50   50  -50  -50   50  -50 
+ -50  -50    0  -50   50  -50 
+   0  -50    0  -50   50  -50 
+  50  -50    0  -50   50  -50 
+ -50    0    0  -50   50  -50 
+   0    0    0  -50   50  -50 
+  50    0    0  -50   50  -50 
+ -50   50    0  -50   50  -50 
+   0   50    0  -50   50  -50 
+  50   50    0  -50   50  -50 
+ -50  -50   50  -50   50  -50 
+   0  -50   50  -50   50  -50 
+  50  -50   50  -50   50  -50 
+ -50    0   50  -50   50  -50 
+   0    0   50  -50   50  -50 
+  50    0   50  -50   50  -50 
+ -50   50   50  -50   50  -50 
+   0   50   50  -50   50  -50 
+  50   50   50  -50   50  -50 
+ -50  -50  -50    0   50  -50 
+   0  -50  -50    0   50  -50 
+  50  -50  -50    0   50  -50 
+ -50    0  -50    0   50  -50 
+   0    0  -50    0   50  -50 
+  50    0  -50    0   50  -50 
+ -50   50  -50    0   50  -50 
+   0   50  -50    0   50  -50 
+  50   50  -50    0   50  -50 
+ -50  -50    0    0   50  -50 
+   0  -50    0    0   50  -50 
+  50  -50    0    0   50  -50 
+ -50    0    0    0   50  -50 
+   0    0    0    0   50  -50 
+  50    0    0    0   50  -50 
+ -50   50    0    0   50  -50 
+   0   50    0    0   50  -50 
+  50   50    0    0   50  -50 
+ -50  -50   50    0   50  -50 
+   0  -50   50    0   50  -50 
+  50  -50   50    0   50  -50 
+ -50    0   50    0   50  -50 
+   0    0   50    0   50  -50 
+  50    0   50    0   50  -50 
+ -50   50   50    0   50  -50 
+   0   50   50    0   50  -50 
+  50   50   50    0   50  -50 
+ -50  -50  -50   50   50  -50 
+   0  -50  -50   50   50  -50 
+  50  -50  -50   50   50  -50 
+ -50    0  -50   50   50  -50 
+   0    0  -50   50   50  -50 
+  50    0  -50   50   50  -50 
+ -50   50  -50   50   50  -50 
+   0   50  -50   50   50  -50 
+  50   50  -50   50   50  -50 
+ -50  -50    0   50   50  -50 
+   0  -50    0   50   50  -50 
+  50  -50    0   50   50  -50 
+ -50    0    0   50   50  -50 
+   0    0    0   50   50  -50 
+  50    0    0   50   50  -50 
+ -50   50    0   50   50  -50 
+   0   50    0   50   50  -50 
+  50   50    0   50   50  -50 
+ -50  -50   50   50   50  -50 
+   0  -50   50   50   50  -50 
+  50  -50   50   50   50  -50 
+ -50    0   50   50   50  -50 
+   0    0   50   50   50  -50 
+  50    0   50   50   50  -50 
+ -50   50   50   50   50  -50 
+   0   50   50   50   50  -50 
+  50   50   50   50   50  -50 
+ -50  -50  -50  -50  -50    0 
+   0  -50  -50  -50  -50    0 
+  50  -50  -50  -50  -50    0 
+ -50    0  -50  -50  -50    0 
+   0    0  -50  -50  -50    0 
+  50    0  -50  -50  -50    0 
+ -50   50  -50  -50  -50    0 
+   0   50  -50  -50  -50    0 
+  50   50  -50  -50  -50    0 
+ -50  -50    0  -50  -50    0 
+   0  -50    0  -50  -50    0 
+  50  -50    0  -50  -50    0 
+ -50    0    0  -50  -50    0 
+   0    0    0  -50  -50    0 
+  50    0    0  -50  -50    0 
+ -50   50    0  -50  -50    0 
+   0   50    0  -50  -50    0 
+  50   50    0  -50  -50    0 
+ -50  -50   50  -50  -50    0 
+   0  -50   50  -50  -50    0 
+  50  -50   50  -50  -50    0 
+ -50    0   50  -50  -50    0 
+   0    0   50  -50  -50    0 
+  50    0   50  -50  -50    0 
+ -50   50   50  -50  -50    0 
+   0   50   50  -50  -50    0 
+  50   50   50  -50  -50    0 
+ -50  -50  -50    0  -50    0 
+   0  -50  -50    0  -50    0 
+  50  -50  -50    0  -50    0 
+ -50    0  -50    0  -50    0 
+   0    0  -50    0  -50    0 
+  50    0  -50    0  -50    0 
+ -50   50  -50    0  -50    0 
+   0   50  -50    0  -50    0 
+  50   50  -50    0  -50    0 
+ -50  -50    0    0  -50    0 
+   0  -50    0    0  -50    0 
+  50  -50    0    0  -50    0 
+ -50    0    0    0  -50    0 
+   0    0    0    0  -50    0 
+  50    0    0    0  -50    0 
+ -50   50    0    0  -50    0 
+   0   50    0    0  -50    0 
+  50   50    0    0  -50    0 
+ -50  -50   50    0  -50    0 
+   0  -50   50    0  -50    0 
+  50  -50   50    0  -50    0 
+ -50    0   50    0  -50    0 
+   0    0   50    0  -50    0 
+  50    0   50    0  -50    0 
+ -50   50   50    0  -50    0 
+   0   50   50    0  -50    0 
+  50   50   50    0  -50    0 
+ -50  -50  -50   50  -50    0 
+   0  -50  -50   50  -50    0 
+  50  -50  -50   50  -50    0 
+ -50    0  -50   50  -50    0 
+   0    0  -50   50  -50    0 
+  50    0  -50   50  -50    0 
+ -50   50  -50   50  -50    0 
+   0   50  -50   50  -50    0 
+  50   50  -50   50  -50    0 
+ -50  -50    0   50  -50    0 
+   0  -50    0   50  -50    0 
+  50  -50    0   50  -50    0 
+ -50    0    0   50  -50    0 
+   0    0    0   50  -50    0 
+  50    0    0   50  -50    0 
+ -50   50    0   50  -50    0 
+   0   50    0   50  -50    0 
+  50   50    0   50  -50    0 
+ -50  -50   50   50  -50    0 
+   0  -50   50   50  -50    0 
+  50  -50   50   50  -50    0 
+ -50    0   50   50  -50    0 
+   0    0   50   50  -50    0 
+  50    0   50   50  -50    0 
+ -50   50   50   50  -50    0 
+   0   50   50   50  -50    0 
+  50   50   50   50  -50    0 
+ -50  -50  -50  -50    0    0 
+   0  -50  -50  -50    0    0 
+  50  -50  -50  -50    0    0 
+ -50    0  -50  -50    0    0 
+   0    0  -50  -50    0    0 
+  50    0  -50  -50    0    0 
+ -50   50  -50  -50    0    0 
+   0   50  -50  -50    0    0 
+  50   50  -50  -50    0    0 
+ -50  -50    0  -50    0    0 
+   0  -50    0  -50    0    0 
+  50  -50    0  -50    0    0 
+ -50    0    0  -50    0    0 
+   0    0    0  -50    0    0 
+  50    0    0  -50    0    0 
+ -50   50    0  -50    0    0 
+   0   50    0  -50    0    0 
+  50   50    0  -50    0    0 
+ -50  -50   50  -50    0    0 
+   0  -50   50  -50    0    0 
+  50  -50   50  -50    0    0 
+ -50    0   50  -50    0    0 
+   0    0   50  -50    0    0 
+  50    0   50  -50    0    0 
+ -50   50   50  -50    0    0 
+   0   50   50  -50    0    0 
+  50   50   50  -50    0    0 
+ -50  -50  -50    0    0    0 
+   0  -50  -50    0    0    0 
+  50  -50  -50    0    0    0 
+ -50    0  -50    0    0    0 
+   0    0  -50    0    0    0 
+  50    0  -50    0    0    0 
+ -50   50  -50    0    0    0 
+   0   50  -50    0    0    0 
+  50   50  -50    0    0    0 
+ -50  -50    0    0    0    0 
+   0  -50    0    0    0    0 
+  50  -50    0    0    0    0 
+ -50    0    0    0    0    0 
+   0    0    0    0    0    0 
+  50    0    0    0    0    0 
+ -50   50    0    0    0    0 
+   0   50    0    0    0    0 
+  50   50    0    0    0    0 
+ -50  -50   50    0    0    0 
+   0  -50   50    0    0    0 
+  50  -50   50    0    0    0 
+ -50    0   50    0    0    0 
+   0    0   50    0    0    0 
+  50    0   50    0    0    0 
+ -50   50   50    0    0    0 
+   0   50   50    0    0    0 
+  50   50   50    0    0    0 
+ -50  -50  -50   50    0    0 
+   0  -50  -50   50    0    0 
+  50  -50  -50   50    0    0 
+ -50    0  -50   50    0    0 
+   0    0  -50   50    0    0 
+  50    0  -50   50    0    0 
+ -50   50  -50   50    0    0 
+   0   50  -50   50    0    0 
+  50   50  -50   50    0    0 
+ -50  -50    0   50    0    0 
+   0  -50    0   50    0    0 
+  50  -50    0   50    0    0 
+ -50    0    0   50    0    0 
+   0    0    0   50    0    0 
+  50    0    0   50    0    0 
+ -50   50    0   50    0    0 
+   0   50    0   50    0    0 
+  50   50    0   50    0    0 
+ -50  -50   50   50    0    0 
+   0  -50   50   50    0    0 
+  50  -50   50   50    0    0 
+ -50    0   50   50    0    0 
+   0    0   50   50    0    0 
+  50    0   50   50    0    0 
+ -50   50   50   50    0    0 
+   0   50   50   50    0    0 
+  50   50   50   50    0    0 
+ -50  -50  -50  -50   50    0 
+   0  -50  -50  -50   50    0 
+  50  -50  -50  -50   50    0 
+ -50    0  -50  -50   50    0 
+   0    0  -50  -50   50    0 
+  50    0  -50  -50   50    0 
+ -50   50  -50  -50   50    0 
+   0   50  -50  -50   50    0 
+  50   50  -50  -50   50    0 
+ -50  -50    0  -50   50    0 
+   0  -50    0  -50   50    0 
+  50  -50    0  -50   50    0 
+ -50    0    0  -50   50    0 
+   0    0    0  -50   50    0 
+  50    0    0  -50   50    0 
+ -50   50    0  -50   50    0 
+   0   50    0  -50   50    0 
+  50   50    0  -50   50    0 
+ -50  -50   50  -50   50    0 
+   0  -50   50  -50   50    0 
+  50  -50   50  -50   50    0 
+ -50    0   50  -50   50    0 
+   0    0   50  -50   50    0 
+  50    0   50  -50   50    0 
+ -50   50   50  -50   50    0 
+   0   50   50  -50   50    0 
+  50   50   50  -50   50    0 
+ -50  -50  -50    0   50    0 
+   0  -50  -50    0   50    0 
+  50  -50  -50    0   50    0 
+ -50    0  -50    0   50    0 
+   0    0  -50    0   50    0 
+  50    0  -50    0   50    0 
+ -50   50  -50    0   50    0 
+   0   50  -50    0   50    0 
+  50   50  -50    0   50    0 
+ -50  -50    0    0   50    0 
+   0  -50    0    0   50    0 
+  50  -50    0    0   50    0 
+ -50    0    0    0   50    0 
+   0    0    0    0   50    0 
+  50    0    0    0   50    0 
+ -50   50    0    0   50    0 
+   0   50    0    0   50    0 
+  50   50    0    0   50    0 
+ -50  -50   50    0   50    0 
+   0  -50   50    0   50    0 
+  50  -50   50    0   50    0 
+ -50    0   50    0   50    0 
+   0    0   50    0   50    0 
+  50    0   50    0   50    0 
+ -50   50   50    0   50    0 
+   0   50   50    0   50    0 
+  50   50   50    0   50    0 
+ -50  -50  -50   50   50    0 
+   0  -50  -50   50   50    0 
+  50  -50  -50   50   50    0 
+ -50    0  -50   50   50    0 
+   0    0  -50   50   50    0 
+  50    0  -50   50   50    0 
+ -50   50  -50   50   50    0 
+   0   50  -50   50   50    0 
+  50   50  -50   50   50    0 
+ -50  -50    0   50   50    0 
+   0  -50    0   50   50    0 
+  50  -50    0   50   50    0 
+ -50    0    0   50   50    0 
+   0    0    0   50   50    0 
+  50    0    0   50   50    0 
+ -50   50    0   50   50    0 
+   0   50    0   50   50    0 
+  50   50    0   50   50    0 
+ -50  -50   50   50   50    0 
+   0  -50   50   50   50    0 
+  50  -50   50   50   50    0 
+ -50    0   50   50   50    0 
+   0    0   50   50   50    0 
+  50    0   50   50   50    0 
+ -50   50   50   50   50    0 
+   0   50   50   50   50    0 
+  50   50   50   50   50    0 
+ -50  -50  -50  -50  -50   50 
+   0  -50  -50  -50  -50   50 
+  50  -50  -50  -50  -50   50 
+ -50    0  -50  -50  -50   50 
+   0    0  -50  -50  -50   50 
+  50    0  -50  -50  -50   50 
+ -50   50  -50  -50  -50   50 
+   0   50  -50  -50  -50   50 
+  50   50  -50  -50  -50   50 
+ -50  -50    0  -50  -50   50 
+   0  -50    0  -50  -50   50 
+  50  -50    0  -50  -50   50 
+ -50    0    0  -50  -50   50 
+   0    0    0  -50  -50   50 
+  50    0    0  -50  -50   50 
+ -50   50    0  -50  -50   50 
+   0   50    0  -50  -50   50 
+  50   50    0  -50  -50   50 
+ -50  -50   50  -50  -50   50 
+   0  -50   50  -50  -50   50 
+  50  -50   50  -50  -50   50 
+ -50    0   50  -50  -50   50 
+   0    0   50  -50  -50   50 
+  50    0   50  -50  -50   50 
+ -50   50   50  -50  -50   50 
+   0   50   50  -50  -50   50 
+  50   50   50  -50  -50   50 
+ -50  -50  -50    0  -50   50 
+   0  -50  -50    0  -50   50 
+  50  -50  -50    0  -50   50 
+ -50    0  -50    0  -50   50 
+   0    0  -50    0  -50   50 
+  50    0  -50    0  -50   50 
+ -50   50  -50    0  -50   50 
+   0   50  -50    0  -50   50 
+  50   50  -50    0  -50   50 
+ -50  -50    0    0  -50   50 
+   0  -50    0    0  -50   50 
+  50  -50    0    0  -50   50 
+ -50    0    0    0  -50   50 
+   0    0    0    0  -50   50 
+  50    0    0    0  -50   50 
+ -50   50    0    0  -50   50 
+   0   50    0    0  -50   50 
+  50   50    0    0  -50   50 
+ -50  -50   50    0  -50   50 
+   0  -50   50    0  -50   50 
+  50  -50   50    0  -50   50 
+ -50    0   50    0  -50   50 
+   0    0   50    0  -50   50 
+  50    0   50    0  -50   50 
+ -50   50   50    0  -50   50 
+   0   50   50    0  -50   50 
+  50   50   50    0  -50   50 
+ -50  -50  -50   50  -50   50 
+   0  -50  -50   50  -50   50 
+  50  -50  -50   50  -50   50 
+ -50    0  -50   50  -50   50 
+   0    0  -50   50  -50   50 
+  50    0  -50   50  -50   50 
+ -50   50  -50   50  -50   50 
+   0   50  -50   50  -50   50 
+  50   50  -50   50  -50   50 
+ -50  -50    0   50  -50   50 
+   0  -50    0   50  -50   50 
+  50  -50    0   50  -50   50 
+ -50    0    0   50  -50   50 
+   0    0    0   50  -50   50 
+  50    0    0   50  -50   50 
+ -50   50    0   50  -50   50 
+   0   50    0   50  -50   50 
+  50   50    0   50  -50   50 
+ -50  -50   50   50  -50   50 
+   0  -50   50   50  -50   50 
+  50  -50   50   50  -50   50 
+ -50    0   50   50  -50   50 
+   0    0   50   50  -50   50 
+  50    0   50   50  -50   50 
+ -50   50   50   50  -50   50 
+   0   50   50   50  -50   50 
+  50   50   50   50  -50   50 
+ -50  -50  -50  -50    0   50 
+   0  -50  -50  -50    0   50 
+  50  -50  -50  -50    0   50 
+ -50    0  -50  -50    0   50 
+   0    0  -50  -50    0   50 
+  50    0  -50  -50    0   50 
+ -50   50  -50  -50    0   50 
+   0   50  -50  -50    0   50 
+  50   50  -50  -50    0   50 
+ -50  -50    0  -50    0   50 
+   0  -50    0  -50    0   50 
+  50  -50    0  -50    0   50 
+ -50    0    0  -50    0   50 
+   0    0    0  -50    0   50 
+  50    0    0  -50    0   50 
+ -50   50    0  -50    0   50 
+   0   50    0  -50    0   50 
+  50   50    0  -50    0   50 
+ -50  -50   50  -50    0   50 
+   0  -50   50  -50    0   50 
+  50  -50   50  -50    0   50 
+ -50    0   50  -50    0   50 
+   0    0   50  -50    0   50 
+  50    0   50  -50    0   50 
+ -50   50   50  -50    0   50 
+   0   50   50  -50    0   50 
+  50   50   50  -50    0   50 
+ -50  -50  -50    0    0   50 
+   0  -50  -50    0    0   50 
+  50  -50  -50    0    0   50 
+ -50    0  -50    0    0   50 
+   0    0  -50    0    0   50 
+  50    0  -50    0    0   50 
+ -50   50  -50    0    0   50 
+   0   50  -50    0    0   50 
+  50   50  -50    0    0   50 
+ -50  -50    0    0    0   50 
+   0  -50    0    0    0   50 
+  50  -50    0    0    0   50 
+ -50    0    0    0    0   50 
+   0    0    0    0    0   50 
+  50    0    0    0    0   50 
+ -50   50    0    0    0   50 
+   0   50    0    0    0   50 
+  50   50    0    0    0   50 
+ -50  -50   50    0    0   50 
+   0  -50   50    0    0   50 
+  50  -50   50    0    0   50 
+ -50    0   50    0    0   50 
+   0    0   50    0    0   50 
+  50    0   50    0    0   50 
+ -50   50   50    0    0   50 
+   0   50   50    0    0   50 
+  50   50   50    0    0   50 
+ -50  -50  -50   50    0   50 
+   0  -50  -50   50    0   50 
+  50  -50  -50   50    0   50 
+ -50    0  -50   50    0   50 
+   0    0  -50   50    0   50 
+  50    0  -50   50    0   50 
+ -50   50  -50   50    0   50 
+   0   50  -50   50    0   50 
+  50   50  -50   50    0   50 
+ -50  -50    0   50    0   50 
+   0  -50    0   50    0   50 
+  50  -50    0   50    0   50 
+ -50    0    0   50    0   50 
+   0    0    0   50    0   50 
+  50    0    0   50    0   50 
+ -50   50    0   50    0   50 
+   0   50    0   50    0   50 
+  50   50    0   50    0   50 
+ -50  -50   50   50    0   50 
+   0  -50   50   50    0   50 
+  50  -50   50   50    0   50 
+ -50    0   50   50    0   50 
+   0    0   50   50    0   50 
+  50    0   50   50    0   50 
+ -50   50   50   50    0   50 
+   0   50   50   50    0   50 
+  50   50   50   50    0   50 
+ -50  -50  -50  -50   50   50 
+   0  -50  -50  -50   50   50 
+  50  -50  -50  -50   50   50 
+ -50    0  -50  -50   50   50 
+   0    0  -50  -50   50   50 
+  50    0  -50  -50   50   50 
+ -50   50  -50  -50   50   50 
+   0   50  -50  -50   50   50 
+  50   50  -50  -50   50   50 
+ -50  -50    0  -50   50   50 
+   0  -50    0  -50   50   50 
+  50  -50    0  -50   50   50 
+ -50    0    0  -50   50   50 
+   0    0    0  -50   50   50 
+  50    0    0  -50   50   50 
+ -50   50    0  -50   50   50 
+   0   50    0  -50   50   50 
+  50   50    0  -50   50   50 
+ -50  -50   50  -50   50   50 
+   0  -50   50  -50   50   50 
+  50  -50   50  -50   50   50 
+ -50    0   50  -50   50   50 
+   0    0   50  -50   50   50 
+  50    0   50  -50   50   50 
+ -50   50   50  -50   50   50 
+   0   50   50  -50   50   50 
+  50   50   50  -50   50   50 
+ -50  -50  -50    0   50   50 
+   0  -50  -50    0   50   50 
+  50  -50  -50    0   50   50 
+ -50    0  -50    0   50   50 
+   0    0  -50    0   50   50 
+  50    0  -50    0   50   50 
+ -50   50  -50    0   50   50 
+   0   50  -50    0   50   50 
+  50   50  -50    0   50   50 
+ -50  -50    0    0   50   50 
+   0  -50    0    0   50   50 
+  50  -50    0    0   50   50 
+ -50    0    0    0   50   50 
+   0    0    0    0   50   50 
+  50    0    0    0   50   50 
+ -50   50    0    0   50   50 
+   0   50    0    0   50   50 
+  50   50    0    0   50   50 
+ -50  -50   50    0   50   50 
+   0  -50   50    0   50   50 
+  50  -50   50    0   50   50 
+ -50    0   50    0   50   50 
+   0    0   50    0   50   50 
+  50    0   50    0   50   50 
+ -50   50   50    0   50   50 
+   0   50   50    0   50   50 
+  50   50   50    0   50   50 
+ -50  -50  -50   50   50   50 
+   0  -50  -50   50   50   50 
+  50  -50  -50   50   50   50 
+ -50    0  -50   50   50   50 
+   0    0  -50   50   50   50 
+  50    0  -50   50   50   50 
+ -50   50  -50   50   50   50 
+   0   50  -50   50   50   50 
+  50   50  -50   50   50   50 
+ -50  -50    0   50   50   50 
+   0  -50    0   50   50   50 
+  50  -50    0   50   50   50 
+ -50    0    0   50   50   50 
+   0    0    0   50   50   50 
+  50    0    0   50   50   50 
+ -50   50    0   50   50   50 
+   0   50    0   50   50   50 
+  50   50    0   50   50   50 
+ -50  -50   50   50   50   50 
+   0  -50   50   50   50   50 
+  50  -50   50   50   50   50 
+ -50    0   50   50   50   50 
+   0    0   50   50   50   50 
+  50    0   50   50   50   50 
+ -50   50   50   50   50   50 
+   0   50   50   50   50   50 
+  50   50   50   50   50   50 
diff --git a/codec2-dev/src/codebookdt.c b/codec2-dev/src/codebookdt.c
new file mode 100644 (file)
index 0000000..2772323
--- /dev/null
@@ -0,0 +1,843 @@
+/* THIS IS A GENERATED FILE. Edit generate_codebook.c and its input */
+
+/*
+ * This intermediary file and the files that used to create it are under 
+ * The LGPL. See the file COPYING.
+ */
+
+#include "defines.h"
+
+  /* codebook/lspdt1-4.txt */
+static const float codes0[] = {
+  -25,  -25,  -50,  -50,
+  0,  -25,  -50,  -50,
+  25,  -25,  -50,  -50,
+  -25,  0,  -50,  -50,
+  0,  0,  -50,  -50,
+  25,  0,  -50,  -50,
+  -25,  25,  -50,  -50,
+  0,  25,  -50,  -50,
+  25,  25,  -50,  -50,
+  -25,  -25,  0,  -50,
+  0,  -25,  0,  -50,
+  25,  -25,  0,  -50,
+  -25,  0,  0,  -50,
+  0,  0,  0,  -50,
+  25,  0,  0,  -50,
+  -25,  25,  0,  -50,
+  0,  25,  0,  -50,
+  25,  25,  0,  -50,
+  -25,  -25,  50,  -50,
+  0,  -25,  50,  -50,
+  25,  -25,  50,  -50,
+  -25,  0,  50,  -50,
+  0,  0,  50,  -50,
+  25,  0,  50,  -50,
+  -25,  25,  50,  -50,
+  0,  25,  50,  -50,
+  25,  25,  50,  -50,
+  -25,  -25,  -50,  0,
+  0,  -25,  -50,  0,
+  25,  -25,  -50,  0,
+  -25,  0,  -50,  0,
+  0,  0,  -50,  0,
+  25,  0,  -50,  0,
+  -25,  25,  -50,  0,
+  0,  25,  -50,  0,
+  25,  25,  -50,  0,
+  -25,  -25,  0,  0,
+  0,  -25,  0,  0,
+  25,  -25,  0,  0,
+  -25,  0,  0,  0,
+  0,  0,  0,  0,
+  25,  0,  0,  0,
+  -25,  25,  0,  0,
+  0,  25,  0,  0,
+  25,  25,  0,  0,
+  -25,  -25,  50,  0,
+  0,  -25,  50,  0,
+  25,  -25,  50,  0,
+  -25,  0,  50,  0,
+  0,  0,  50,  0,
+  25,  0,  50,  0,
+  -25,  25,  50,  0,
+  0,  25,  50,  0,
+  25,  25,  50,  0,
+  -25,  -25,  -50,  50,
+  0,  -25,  -50,  50,
+  25,  -25,  -50,  50,
+  -25,  0,  -50,  50,
+  0,  0,  -50,  50,
+  25,  0,  -50,  50,
+  -25,  25,  -50,  50,
+  0,  25,  -50,  50,
+  25,  25,  -50,  50,
+  -25,  -25,  0,  50,
+  0,  -25,  0,  50,
+  25,  -25,  0,  50,
+  -25,  0,  0,  50,
+  0,  0,  0,  50,
+  25,  0,  0,  50,
+  -25,  25,  0,  50,
+  0,  25,  0,  50,
+  25,  25,  0,  50,
+  -25,  -25,  50,  50,
+  0,  -25,  50,  50,
+  25,  -25,  50,  50,
+  -25,  0,  50,  50,
+  0,  0,  50,  50,
+  25,  0,  50,  50,
+  -25,  25,  50,  50,
+  0,  25,  50,  50,
+  25,  25,  50,  50
+};
+  /* codebook/lspdt5-10.txt */
+static const float codes1[] = {
+  -50,  -50,  -50,  -50,  -50,  -50,
+  0,  -50,  -50,  -50,  -50,  -50,
+  50,  -50,  -50,  -50,  -50,  -50,
+  -50,  0,  -50,  -50,  -50,  -50,
+  0,  0,  -50,  -50,  -50,  -50,
+  50,  0,  -50,  -50,  -50,  -50,
+  -50,  50,  -50,  -50,  -50,  -50,
+  0,  50,  -50,  -50,  -50,  -50,
+  50,  50,  -50,  -50,  -50,  -50,
+  -50,  -50,  0,  -50,  -50,  -50,
+  0,  -50,  0,  -50,  -50,  -50,
+  50,  -50,  0,  -50,  -50,  -50,
+  -50,  0,  0,  -50,  -50,  -50,
+  0,  0,  0,  -50,  -50,  -50,
+  50,  0,  0,  -50,  -50,  -50,
+  -50,  50,  0,  -50,  -50,  -50,
+  0,  50,  0,  -50,  -50,  -50,
+  50,  50,  0,  -50,  -50,  -50,
+  -50,  -50,  50,  -50,  -50,  -50,
+  0,  -50,  50,  -50,  -50,  -50,
+  50,  -50,  50,  -50,  -50,  -50,
+  -50,  0,  50,  -50,  -50,  -50,
+  0,  0,  50,  -50,  -50,  -50,
+  50,  0,  50,  -50,  -50,  -50,
+  -50,  50,  50,  -50,  -50,  -50,
+  0,  50,  50,  -50,  -50,  -50,
+  50,  50,  50,  -50,  -50,  -50,
+  -50,  -50,  -50,  0,  -50,  -50,
+  0,  -50,  -50,  0,  -50,  -50,
+  50,  -50,  -50,  0,  -50,  -50,
+  -50,  0,  -50,  0,  -50,  -50,
+  0,  0,  -50,  0,  -50,  -50,
+  50,  0,  -50,  0,  -50,  -50,
+  -50,  50,  -50,  0,  -50,  -50,
+  0,  50,  -50,  0,  -50,  -50,
+  50,  50,  -50,  0,  -50,  -50,
+  -50,  -50,  0,  0,  -50,  -50,
+  0,  -50,  0,  0,  -50,  -50,
+  50,  -50,  0,  0,  -50,  -50,
+  -50,  0,  0,  0,  -50,  -50,
+  0,  0,  0,  0,  -50,  -50,
+  50,  0,  0,  0,  -50,  -50,
+  -50,  50,  0,  0,  -50,  -50,
+  0,  50,  0,  0,  -50,  -50,
+  50,  50,  0,  0,  -50,  -50,
+  -50,  -50,  50,  0,  -50,  -50,
+  0,  -50,  50,  0,  -50,  -50,
+  50,  -50,  50,  0,  -50,  -50,
+  -50,  0,  50,  0,  -50,  -50,
+  0,  0,  50,  0,  -50,  -50,
+  50,  0,  50,  0,  -50,  -50,
+  -50,  50,  50,  0,  -50,  -50,
+  0,  50,  50,  0,  -50,  -50,
+  50,  50,  50,  0,  -50,  -50,
+  -50,  -50,  -50,  50,  -50,  -50,
+  0,  -50,  -50,  50,  -50,  -50,
+  50,  -50,  -50,  50,  -50,  -50,
+  -50,  0,  -50,  50,  -50,  -50,
+  0,  0,  -50,  50,  -50,  -50,
+  50,  0,  -50,  50,  -50,  -50,
+  -50,  50,  -50,  50,  -50,  -50,
+  0,  50,  -50,  50,  -50,  -50,
+  50,  50,  -50,  50,  -50,  -50,
+  -50,  -50,  0,  50,  -50,  -50,
+  0,  -50,  0,  50,  -50,  -50,
+  50,  -50,  0,  50,  -50,  -50,
+  -50,  0,  0,  50,  -50,  -50,
+  0,  0,  0,  50,  -50,  -50,
+  50,  0,  0,  50,  -50,  -50,
+  -50,  50,  0,  50,  -50,  -50,
+  0,  50,  0,  50,  -50,  -50,
+  50,  50,  0,  50,  -50,  -50,
+  -50,  -50,  50,  50,  -50,  -50,
+  0,  -50,  50,  50,  -50,  -50,
+  50,  -50,  50,  50,  -50,  -50,
+  -50,  0,  50,  50,  -50,  -50,
+  0,  0,  50,  50,  -50,  -50,
+  50,  0,  50,  50,  -50,  -50,
+  -50,  50,  50,  50,  -50,  -50,
+  0,  50,  50,  50,  -50,  -50,
+  50,  50,  50,  50,  -50,  -50,
+  -50,  -50,  -50,  -50,  0,  -50,
+  0,  -50,  -50,  -50,  0,  -50,
+  50,  -50,  -50,  -50,  0,  -50,
+  -50,  0,  -50,  -50,  0,  -50,
+  0,  0,  -50,  -50,  0,  -50,
+  50,  0,  -50,  -50,  0,  -50,
+  -50,  50,  -50,  -50,  0,  -50,
+  0,  50,  -50,  -50,  0,  -50,
+  50,  50,  -50,  -50,  0,  -50,
+  -50,  -50,  0,  -50,  0,  -50,
+  0,  -50,  0,  -50,  0,  -50,
+  50,  -50,  0,  -50,  0,  -50,
+  -50,  0,  0,  -50,  0,  -50,
+  0,  0,  0,  -50,  0,  -50,
+  50,  0,  0,  -50,  0,  -50,
+  -50,  50,  0,  -50,  0,  -50,
+  0,  50,  0,  -50,  0,  -50,
+  50,  50,  0,  -50,  0,  -50,
+  -50,  -50,  50,  -50,  0,  -50,
+  0,  -50,  50,  -50,  0,  -50,
+  50,  -50,  50,  -50,  0,  -50,
+  -50,  0,  50,  -50,  0,  -50,
+  0,  0,  50,  -50,  0,  -50,
+  50,  0,  50,  -50,  0,  -50,
+  -50,  50,  50,  -50,  0,  -50,
+  0,  50,  50,  -50,  0,  -50,
+  50,  50,  50,  -50,  0,  -50,
+  -50,  -50,  -50,  0,  0,  -50,
+  0,  -50,  -50,  0,  0,  -50,
+  50,  -50,  -50,  0,  0,  -50,
+  -50,  0,  -50,  0,  0,  -50,
+  0,  0,  -50,  0,  0,  -50,
+  50,  0,  -50,  0,  0,  -50,
+  -50,  50,  -50,  0,  0,  -50,
+  0,  50,  -50,  0,  0,  -50,
+  50,  50,  -50,  0,  0,  -50,
+  -50,  -50,  0,  0,  0,  -50,
+  0,  -50,  0,  0,  0,  -50,
+  50,  -50,  0,  0,  0,  -50,
+  -50,  0,  0,  0,  0,  -50,
+  0,  0,  0,  0,  0,  -50,
+  50,  0,  0,  0,  0,  -50,
+  -50,  50,  0,  0,  0,  -50,
+  0,  50,  0,  0,  0,  -50,
+  50,  50,  0,  0,  0,  -50,
+  -50,  -50,  50,  0,  0,  -50,
+  0,  -50,  50,  0,  0,  -50,
+  50,  -50,  50,  0,  0,  -50,
+  -50,  0,  50,  0,  0,  -50,
+  0,  0,  50,  0,  0,  -50,
+  50,  0,  50,  0,  0,  -50,
+  -50,  50,  50,  0,  0,  -50,
+  0,  50,  50,  0,  0,  -50,
+  50,  50,  50,  0,  0,  -50,
+  -50,  -50,  -50,  50,  0,  -50,
+  0,  -50,  -50,  50,  0,  -50,
+  50,  -50,  -50,  50,  0,  -50,
+  -50,  0,  -50,  50,  0,  -50,
+  0,  0,  -50,  50,  0,  -50,
+  50,  0,  -50,  50,  0,  -50,
+  -50,  50,  -50,  50,  0,  -50,
+  0,  50,  -50,  50,  0,  -50,
+  50,  50,  -50,  50,  0,  -50,
+  -50,  -50,  0,  50,  0,  -50,
+  0,  -50,  0,  50,  0,  -50,
+  50,  -50,  0,  50,  0,  -50,
+  -50,  0,  0,  50,  0,  -50,
+  0,  0,  0,  50,  0,  -50,
+  50,  0,  0,  50,  0,  -50,
+  -50,  50,  0,  50,  0,  -50,
+  0,  50,  0,  50,  0,  -50,
+  50,  50,  0,  50,  0,  -50,
+  -50,  -50,  50,  50,  0,  -50,
+  0,  -50,  50,  50,  0,  -50,
+  50,  -50,  50,  50,  0,  -50,
+  -50,  0,  50,  50,  0,  -50,
+  0,  0,  50,  50,  0,  -50,
+  50,  0,  50,  50,  0,  -50,
+  -50,  50,  50,  50,  0,  -50,
+  0,  50,  50,  50,  0,  -50,
+  50,  50,  50,  50,  0,  -50,
+  -50,  -50,  -50,  -50,  50,  -50,
+  0,  -50,  -50,  -50,  50,  -50,
+  50,  -50,  -50,  -50,  50,  -50,
+  -50,  0,  -50,  -50,  50,  -50,
+  0,  0,  -50,  -50,  50,  -50,
+  50,  0,  -50,  -50,  50,  -50,
+  -50,  50,  -50,  -50,  50,  -50,
+  0,  50,  -50,  -50,  50,  -50,
+  50,  50,  -50,  -50,  50,  -50,
+  -50,  -50,  0,  -50,  50,  -50,
+  0,  -50,  0,  -50,  50,  -50,
+  50,  -50,  0,  -50,  50,  -50,
+  -50,  0,  0,  -50,  50,  -50,
+  0,  0,  0,  -50,  50,  -50,
+  50,  0,  0,  -50,  50,  -50,
+  -50,  50,  0,  -50,  50,  -50,
+  0,  50,  0,  -50,  50,  -50,
+  50,  50,  0,  -50,  50,  -50,
+  -50,  -50,  50,  -50,  50,  -50,
+  0,  -50,  50,  -50,  50,  -50,
+  50,  -50,  50,  -50,  50,  -50,
+  -50,  0,  50,  -50,  50,  -50,
+  0,  0,  50,  -50,  50,  -50,
+  50,  0,  50,  -50,  50,  -50,
+  -50,  50,  50,  -50,  50,  -50,
+  0,  50,  50,  -50,  50,  -50,
+  50,  50,  50,  -50,  50,  -50,
+  -50,  -50,  -50,  0,  50,  -50,
+  0,  -50,  -50,  0,  50,  -50,
+  50,  -50,  -50,  0,  50,  -50,
+  -50,  0,  -50,  0,  50,  -50,
+  0,  0,  -50,  0,  50,  -50,
+  50,  0,  -50,  0,  50,  -50,
+  -50,  50,  -50,  0,  50,  -50,
+  0,  50,  -50,  0,  50,  -50,
+  50,  50,  -50,  0,  50,  -50,
+  -50,  -50,  0,  0,  50,  -50,
+  0,  -50,  0,  0,  50,  -50,
+  50,  -50,  0,  0,  50,  -50,
+  -50,  0,  0,  0,  50,  -50,
+  0,  0,  0,  0,  50,  -50,
+  50,  0,  0,  0,  50,  -50,
+  -50,  50,  0,  0,  50,  -50,
+  0,  50,  0,  0,  50,  -50,
+  50,  50,  0,  0,  50,  -50,
+  -50,  -50,  50,  0,  50,  -50,
+  0,  -50,  50,  0,  50,  -50,
+  50,  -50,  50,  0,  50,  -50,
+  -50,  0,  50,  0,  50,  -50,
+  0,  0,  50,  0,  50,  -50,
+  50,  0,  50,  0,  50,  -50,
+  -50,  50,  50,  0,  50,  -50,
+  0,  50,  50,  0,  50,  -50,
+  50,  50,  50,  0,  50,  -50,
+  -50,  -50,  -50,  50,  50,  -50,
+  0,  -50,  -50,  50,  50,  -50,
+  50,  -50,  -50,  50,  50,  -50,
+  -50,  0,  -50,  50,  50,  -50,
+  0,  0,  -50,  50,  50,  -50,
+  50,  0,  -50,  50,  50,  -50,
+  -50,  50,  -50,  50,  50,  -50,
+  0,  50,  -50,  50,  50,  -50,
+  50,  50,  -50,  50,  50,  -50,
+  -50,  -50,  0,  50,  50,  -50,
+  0,  -50,  0,  50,  50,  -50,
+  50,  -50,  0,  50,  50,  -50,
+  -50,  0,  0,  50,  50,  -50,
+  0,  0,  0,  50,  50,  -50,
+  50,  0,  0,  50,  50,  -50,
+  -50,  50,  0,  50,  50,  -50,
+  0,  50,  0,  50,  50,  -50,
+  50,  50,  0,  50,  50,  -50,
+  -50,  -50,  50,  50,  50,  -50,
+  0,  -50,  50,  50,  50,  -50,
+  50,  -50,  50,  50,  50,  -50,
+  -50,  0,  50,  50,  50,  -50,
+  0,  0,  50,  50,  50,  -50,
+  50,  0,  50,  50,  50,  -50,
+  -50,  50,  50,  50,  50,  -50,
+  0,  50,  50,  50,  50,  -50,
+  50,  50,  50,  50,  50,  -50,
+  -50,  -50,  -50,  -50,  -50,  0,
+  0,  -50,  -50,  -50,  -50,  0,
+  50,  -50,  -50,  -50,  -50,  0,
+  -50,  0,  -50,  -50,  -50,  0,
+  0,  0,  -50,  -50,  -50,  0,
+  50,  0,  -50,  -50,  -50,  0,
+  -50,  50,  -50,  -50,  -50,  0,
+  0,  50,  -50,  -50,  -50,  0,
+  50,  50,  -50,  -50,  -50,  0,
+  -50,  -50,  0,  -50,  -50,  0,
+  0,  -50,  0,  -50,  -50,  0,
+  50,  -50,  0,  -50,  -50,  0,
+  -50,  0,  0,  -50,  -50,  0,
+  0,  0,  0,  -50,  -50,  0,
+  50,  0,  0,  -50,  -50,  0,
+  -50,  50,  0,  -50,  -50,  0,
+  0,  50,  0,  -50,  -50,  0,
+  50,  50,  0,  -50,  -50,  0,
+  -50,  -50,  50,  -50,  -50,  0,
+  0,  -50,  50,  -50,  -50,  0,
+  50,  -50,  50,  -50,  -50,  0,
+  -50,  0,  50,  -50,  -50,  0,
+  0,  0,  50,  -50,  -50,  0,
+  50,  0,  50,  -50,  -50,  0,
+  -50,  50,  50,  -50,  -50,  0,
+  0,  50,  50,  -50,  -50,  0,
+  50,  50,  50,  -50,  -50,  0,
+  -50,  -50,  -50,  0,  -50,  0,
+  0,  -50,  -50,  0,  -50,  0,
+  50,  -50,  -50,  0,  -50,  0,
+  -50,  0,  -50,  0,  -50,  0,
+  0,  0,  -50,  0,  -50,  0,
+  50,  0,  -50,  0,  -50,  0,
+  -50,  50,  -50,  0,  -50,  0,
+  0,  50,  -50,  0,  -50,  0,
+  50,  50,  -50,  0,  -50,  0,
+  -50,  -50,  0,  0,  -50,  0,
+  0,  -50,  0,  0,  -50,  0,
+  50,  -50,  0,  0,  -50,  0,
+  -50,  0,  0,  0,  -50,  0,
+  0,  0,  0,  0,  -50,  0,
+  50,  0,  0,  0,  -50,  0,
+  -50,  50,  0,  0,  -50,  0,
+  0,  50,  0,  0,  -50,  0,
+  50,  50,  0,  0,  -50,  0,
+  -50,  -50,  50,  0,  -50,  0,
+  0,  -50,  50,  0,  -50,  0,
+  50,  -50,  50,  0,  -50,  0,
+  -50,  0,  50,  0,  -50,  0,
+  0,  0,  50,  0,  -50,  0,
+  50,  0,  50,  0,  -50,  0,
+  -50,  50,  50,  0,  -50,  0,
+  0,  50,  50,  0,  -50,  0,
+  50,  50,  50,  0,  -50,  0,
+  -50,  -50,  -50,  50,  -50,  0,
+  0,  -50,  -50,  50,  -50,  0,
+  50,  -50,  -50,  50,  -50,  0,
+  -50,  0,  -50,  50,  -50,  0,
+  0,  0,  -50,  50,  -50,  0,
+  50,  0,  -50,  50,  -50,  0,
+  -50,  50,  -50,  50,  -50,  0,
+  0,  50,  -50,  50,  -50,  0,
+  50,  50,  -50,  50,  -50,  0,
+  -50,  -50,  0,  50,  -50,  0,
+  0,  -50,  0,  50,  -50,  0,
+  50,  -50,  0,  50,  -50,  0,
+  -50,  0,  0,  50,  -50,  0,
+  0,  0,  0,  50,  -50,  0,
+  50,  0,  0,  50,  -50,  0,
+  -50,  50,  0,  50,  -50,  0,
+  0,  50,  0,  50,  -50,  0,
+  50,  50,  0,  50,  -50,  0,
+  -50,  -50,  50,  50,  -50,  0,
+  0,  -50,  50,  50,  -50,  0,
+  50,  -50,  50,  50,  -50,  0,
+  -50,  0,  50,  50,  -50,  0,
+  0,  0,  50,  50,  -50,  0,
+  50,  0,  50,  50,  -50,  0,
+  -50,  50,  50,  50,  -50,  0,
+  0,  50,  50,  50,  -50,  0,
+  50,  50,  50,  50,  -50,  0,
+  -50,  -50,  -50,  -50,  0,  0,
+  0,  -50,  -50,  -50,  0,  0,
+  50,  -50,  -50,  -50,  0,  0,
+  -50,  0,  -50,  -50,  0,  0,
+  0,  0,  -50,  -50,  0,  0,
+  50,  0,  -50,  -50,  0,  0,
+  -50,  50,  -50,  -50,  0,  0,
+  0,  50,  -50,  -50,  0,  0,
+  50,  50,  -50,  -50,  0,  0,
+  -50,  -50,  0,  -50,  0,  0,
+  0,  -50,  0,  -50,  0,  0,
+  50,  -50,  0,  -50,  0,  0,
+  -50,  0,  0,  -50,  0,  0,
+  0,  0,  0,  -50,  0,  0,
+  50,  0,  0,  -50,  0,  0,
+  -50,  50,  0,  -50,  0,  0,
+  0,  50,  0,  -50,  0,  0,
+  50,  50,  0,  -50,  0,  0,
+  -50,  -50,  50,  -50,  0,  0,
+  0,  -50,  50,  -50,  0,  0,
+  50,  -50,  50,  -50,  0,  0,
+  -50,  0,  50,  -50,  0,  0,
+  0,  0,  50,  -50,  0,  0,
+  50,  0,  50,  -50,  0,  0,
+  -50,  50,  50,  -50,  0,  0,
+  0,  50,  50,  -50,  0,  0,
+  50,  50,  50,  -50,  0,  0,
+  -50,  -50,  -50,  0,  0,  0,
+  0,  -50,  -50,  0,  0,  0,
+  50,  -50,  -50,  0,  0,  0,
+  -50,  0,  -50,  0,  0,  0,
+  0,  0,  -50,  0,  0,  0,
+  50,  0,  -50,  0,  0,  0,
+  -50,  50,  -50,  0,  0,  0,
+  0,  50,  -50,  0,  0,  0,
+  50,  50,  -50,  0,  0,  0,
+  -50,  -50,  0,  0,  0,  0,
+  0,  -50,  0,  0,  0,  0,
+  50,  -50,  0,  0,  0,  0,
+  -50,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,
+  50,  0,  0,  0,  0,  0,
+  -50,  50,  0,  0,  0,  0,
+  0,  50,  0,  0,  0,  0,
+  50,  50,  0,  0,  0,  0,
+  -50,  -50,  50,  0,  0,  0,
+  0,  -50,  50,  0,  0,  0,
+  50,  -50,  50,  0,  0,  0,
+  -50,  0,  50,  0,  0,  0,
+  0,  0,  50,  0,  0,  0,
+  50,  0,  50,  0,  0,  0,
+  -50,  50,  50,  0,  0,  0,
+  0,  50,  50,  0,  0,  0,
+  50,  50,  50,  0,  0,  0,
+  -50,  -50,  -50,  50,  0,  0,
+  0,  -50,  -50,  50,  0,  0,
+  50,  -50,  -50,  50,  0,  0,
+  -50,  0,  -50,  50,  0,  0,
+  0,  0,  -50,  50,  0,  0,
+  50,  0,  -50,  50,  0,  0,
+  -50,  50,  -50,  50,  0,  0,
+  0,  50,  -50,  50,  0,  0,
+  50,  50,  -50,  50,  0,  0,
+  -50,  -50,  0,  50,  0,  0,
+  0,  -50,  0,  50,  0,  0,
+  50,  -50,  0,  50,  0,  0,
+  -50,  0,  0,  50,  0,  0,
+  0,  0,  0,  50,  0,  0,
+  50,  0,  0,  50,  0,  0,
+  -50,  50,  0,  50,  0,  0,
+  0,  50,  0,  50,  0,  0,
+  50,  50,  0,  50,  0,  0,
+  -50,  -50,  50,  50,  0,  0,
+  0,  -50,  50,  50,  0,  0,
+  50,  -50,  50,  50,  0,  0,
+  -50,  0,  50,  50,  0,  0,
+  0,  0,  50,  50,  0,  0,
+  50,  0,  50,  50,  0,  0,
+  -50,  50,  50,  50,  0,  0,
+  0,  50,  50,  50,  0,  0,
+  50,  50,  50,  50,  0,  0,
+  -50,  -50,  -50,  -50,  50,  0,
+  0,  -50,  -50,  -50,  50,  0,
+  50,  -50,  -50,  -50,  50,  0,
+  -50,  0,  -50,  -50,  50,  0,
+  0,  0,  -50,  -50,  50,  0,
+  50,  0,  -50,  -50,  50,  0,
+  -50,  50,  -50,  -50,  50,  0,
+  0,  50,  -50,  -50,  50,  0,
+  50,  50,  -50,  -50,  50,  0,
+  -50,  -50,  0,  -50,  50,  0,
+  0,  -50,  0,  -50,  50,  0,
+  50,  -50,  0,  -50,  50,  0,
+  -50,  0,  0,  -50,  50,  0,
+  0,  0,  0,  -50,  50,  0,
+  50,  0,  0,  -50,  50,  0,
+  -50,  50,  0,  -50,  50,  0,
+  0,  50,  0,  -50,  50,  0,
+  50,  50,  0,  -50,  50,  0,
+  -50,  -50,  50,  -50,  50,  0,
+  0,  -50,  50,  -50,  50,  0,
+  50,  -50,  50,  -50,  50,  0,
+  -50,  0,  50,  -50,  50,  0,
+  0,  0,  50,  -50,  50,  0,
+  50,  0,  50,  -50,  50,  0,
+  -50,  50,  50,  -50,  50,  0,
+  0,  50,  50,  -50,  50,  0,
+  50,  50,  50,  -50,  50,  0,
+  -50,  -50,  -50,  0,  50,  0,
+  0,  -50,  -50,  0,  50,  0,
+  50,  -50,  -50,  0,  50,  0,
+  -50,  0,  -50,  0,  50,  0,
+  0,  0,  -50,  0,  50,  0,
+  50,  0,  -50,  0,  50,  0,
+  -50,  50,  -50,  0,  50,  0,
+  0,  50,  -50,  0,  50,  0,
+  50,  50,  -50,  0,  50,  0,
+  -50,  -50,  0,  0,  50,  0,
+  0,  -50,  0,  0,  50,  0,
+  50,  -50,  0,  0,  50,  0,
+  -50,  0,  0,  0,  50,  0,
+  0,  0,  0,  0,  50,  0,
+  50,  0,  0,  0,  50,  0,
+  -50,  50,  0,  0,  50,  0,
+  0,  50,  0,  0,  50,  0,
+  50,  50,  0,  0,  50,  0,
+  -50,  -50,  50,  0,  50,  0,
+  0,  -50,  50,  0,  50,  0,
+  50,  -50,  50,  0,  50,  0,
+  -50,  0,  50,  0,  50,  0,
+  0,  0,  50,  0,  50,  0,
+  50,  0,  50,  0,  50,  0,
+  -50,  50,  50,  0,  50,  0,
+  0,  50,  50,  0,  50,  0,
+  50,  50,  50,  0,  50,  0,
+  -50,  -50,  -50,  50,  50,  0,
+  0,  -50,  -50,  50,  50,  0,
+  50,  -50,  -50,  50,  50,  0,
+  -50,  0,  -50,  50,  50,  0,
+  0,  0,  -50,  50,  50,  0,
+  50,  0,  -50,  50,  50,  0,
+  -50,  50,  -50,  50,  50,  0,
+  0,  50,  -50,  50,  50,  0,
+  50,  50,  -50,  50,  50,  0,
+  -50,  -50,  0,  50,  50,  0,
+  0,  -50,  0,  50,  50,  0,
+  50,  -50,  0,  50,  50,  0,
+  -50,  0,  0,  50,  50,  0,
+  0,  0,  0,  50,  50,  0,
+  50,  0,  0,  50,  50,  0,
+  -50,  50,  0,  50,  50,  0,
+  0,  50,  0,  50,  50,  0,
+  50,  50,  0,  50,  50,  0,
+  -50,  -50,  50,  50,  50,  0,
+  0,  -50,  50,  50,  50,  0,
+  50,  -50,  50,  50,  50,  0,
+  -50,  0,  50,  50,  50,  0,
+  0,  0,  50,  50,  50,  0,
+  50,  0,  50,  50,  50,  0,
+  -50,  50,  50,  50,  50,  0,
+  0,  50,  50,  50,  50,  0,
+  50,  50,  50,  50,  50,  0,
+  -50,  -50,  -50,  -50,  -50,  50,
+  0,  -50,  -50,  -50,  -50,  50,
+  50,  -50,  -50,  -50,  -50,  50,
+  -50,  0,  -50,  -50,  -50,  50,
+  0,  0,  -50,  -50,  -50,  50,
+  50,  0,  -50,  -50,  -50,  50,
+  -50,  50,  -50,  -50,  -50,  50,
+  0,  50,  -50,  -50,  -50,  50,
+  50,  50,  -50,  -50,  -50,  50,
+  -50,  -50,  0,  -50,  -50,  50,
+  0,  -50,  0,  -50,  -50,  50,
+  50,  -50,  0,  -50,  -50,  50,
+  -50,  0,  0,  -50,  -50,  50,
+  0,  0,  0,  -50,  -50,  50,
+  50,  0,  0,  -50,  -50,  50,
+  -50,  50,  0,  -50,  -50,  50,
+  0,  50,  0,  -50,  -50,  50,
+  50,  50,  0,  -50,  -50,  50,
+  -50,  -50,  50,  -50,  -50,  50,
+  0,  -50,  50,  -50,  -50,  50,
+  50,  -50,  50,  -50,  -50,  50,
+  -50,  0,  50,  -50,  -50,  50,
+  0,  0,  50,  -50,  -50,  50,
+  50,  0,  50,  -50,  -50,  50,
+  -50,  50,  50,  -50,  -50,  50,
+  0,  50,  50,  -50,  -50,  50,
+  50,  50,  50,  -50,  -50,  50,
+  -50,  -50,  -50,  0,  -50,  50,
+  0,  -50,  -50,  0,  -50,  50,
+  50,  -50,  -50,  0,  -50,  50,
+  -50,  0,  -50,  0,  -50,  50,
+  0,  0,  -50,  0,  -50,  50,
+  50,  0,  -50,  0,  -50,  50,
+  -50,  50,  -50,  0,  -50,  50,
+  0,  50,  -50,  0,  -50,  50,
+  50,  50,  -50,  0,  -50,  50,
+  -50,  -50,  0,  0,  -50,  50,
+  0,  -50,  0,  0,  -50,  50,
+  50,  -50,  0,  0,  -50,  50,
+  -50,  0,  0,  0,  -50,  50,
+  0,  0,  0,  0,  -50,  50,
+  50,  0,  0,  0,  -50,  50,
+  -50,  50,  0,  0,  -50,  50,
+  0,  50,  0,  0,  -50,  50,
+  50,  50,  0,  0,  -50,  50,
+  -50,  -50,  50,  0,  -50,  50,
+  0,  -50,  50,  0,  -50,  50,
+  50,  -50,  50,  0,  -50,  50,
+  -50,  0,  50,  0,  -50,  50,
+  0,  0,  50,  0,  -50,  50,
+  50,  0,  50,  0,  -50,  50,
+  -50,  50,  50,  0,  -50,  50,
+  0,  50,  50,  0,  -50,  50,
+  50,  50,  50,  0,  -50,  50,
+  -50,  -50,  -50,  50,  -50,  50,
+  0,  -50,  -50,  50,  -50,  50,
+  50,  -50,  -50,  50,  -50,  50,
+  -50,  0,  -50,  50,  -50,  50,
+  0,  0,  -50,  50,  -50,  50,
+  50,  0,  -50,  50,  -50,  50,
+  -50,  50,  -50,  50,  -50,  50,
+  0,  50,  -50,  50,  -50,  50,
+  50,  50,  -50,  50,  -50,  50,
+  -50,  -50,  0,  50,  -50,  50,
+  0,  -50,  0,  50,  -50,  50,
+  50,  -50,  0,  50,  -50,  50,
+  -50,  0,  0,  50,  -50,  50,
+  0,  0,  0,  50,  -50,  50,
+  50,  0,  0,  50,  -50,  50,
+  -50,  50,  0,  50,  -50,  50,
+  0,  50,  0,  50,  -50,  50,
+  50,  50,  0,  50,  -50,  50,
+  -50,  -50,  50,  50,  -50,  50,
+  0,  -50,  50,  50,  -50,  50,
+  50,  -50,  50,  50,  -50,  50,
+  -50,  0,  50,  50,  -50,  50,
+  0,  0,  50,  50,  -50,  50,
+  50,  0,  50,  50,  -50,  50,
+  -50,  50,  50,  50,  -50,  50,
+  0,  50,  50,  50,  -50,  50,
+  50,  50,  50,  50,  -50,  50,
+  -50,  -50,  -50,  -50,  0,  50,
+  0,  -50,  -50,  -50,  0,  50,
+  50,  -50,  -50,  -50,  0,  50,
+  -50,  0,  -50,  -50,  0,  50,
+  0,  0,  -50,  -50,  0,  50,
+  50,  0,  -50,  -50,  0,  50,
+  -50,  50,  -50,  -50,  0,  50,
+  0,  50,  -50,  -50,  0,  50,
+  50,  50,  -50,  -50,  0,  50,
+  -50,  -50,  0,  -50,  0,  50,
+  0,  -50,  0,  -50,  0,  50,
+  50,  -50,  0,  -50,  0,  50,
+  -50,  0,  0,  -50,  0,  50,
+  0,  0,  0,  -50,  0,  50,
+  50,  0,  0,  -50,  0,  50,
+  -50,  50,  0,  -50,  0,  50,
+  0,  50,  0,  -50,  0,  50,
+  50,  50,  0,  -50,  0,  50,
+  -50,  -50,  50,  -50,  0,  50,
+  0,  -50,  50,  -50,  0,  50,
+  50,  -50,  50,  -50,  0,  50,
+  -50,  0,  50,  -50,  0,  50,
+  0,  0,  50,  -50,  0,  50,
+  50,  0,  50,  -50,  0,  50,
+  -50,  50,  50,  -50,  0,  50,
+  0,  50,  50,  -50,  0,  50,
+  50,  50,  50,  -50,  0,  50,
+  -50,  -50,  -50,  0,  0,  50,
+  0,  -50,  -50,  0,  0,  50,
+  50,  -50,  -50,  0,  0,  50,
+  -50,  0,  -50,  0,  0,  50,
+  0,  0,  -50,  0,  0,  50,
+  50,  0,  -50,  0,  0,  50,
+  -50,  50,  -50,  0,  0,  50,
+  0,  50,  -50,  0,  0,  50,
+  50,  50,  -50,  0,  0,  50,
+  -50,  -50,  0,  0,  0,  50,
+  0,  -50,  0,  0,  0,  50,
+  50,  -50,  0,  0,  0,  50,
+  -50,  0,  0,  0,  0,  50,
+  0,  0,  0,  0,  0,  50,
+  50,  0,  0,  0,  0,  50,
+  -50,  50,  0,  0,  0,  50,
+  0,  50,  0,  0,  0,  50,
+  50,  50,  0,  0,  0,  50,
+  -50,  -50,  50,  0,  0,  50,
+  0,  -50,  50,  0,  0,  50,
+  50,  -50,  50,  0,  0,  50,
+  -50,  0,  50,  0,  0,  50,
+  0,  0,  50,  0,  0,  50,
+  50,  0,  50,  0,  0,  50,
+  -50,  50,  50,  0,  0,  50,
+  0,  50,  50,  0,  0,  50,
+  50,  50,  50,  0,  0,  50,
+  -50,  -50,  -50,  50,  0,  50,
+  0,  -50,  -50,  50,  0,  50,
+  50,  -50,  -50,  50,  0,  50,
+  -50,  0,  -50,  50,  0,  50,
+  0,  0,  -50,  50,  0,  50,
+  50,  0,  -50,  50,  0,  50,
+  -50,  50,  -50,  50,  0,  50,
+  0,  50,  -50,  50,  0,  50,
+  50,  50,  -50,  50,  0,  50,
+  -50,  -50,  0,  50,  0,  50,
+  0,  -50,  0,  50,  0,  50,
+  50,  -50,  0,  50,  0,  50,
+  -50,  0,  0,  50,  0,  50,
+  0,  0,  0,  50,  0,  50,
+  50,  0,  0,  50,  0,  50,
+  -50,  50,  0,  50,  0,  50,
+  0,  50,  0,  50,  0,  50,
+  50,  50,  0,  50,  0,  50,
+  -50,  -50,  50,  50,  0,  50,
+  0,  -50,  50,  50,  0,  50,
+  50,  -50,  50,  50,  0,  50,
+  -50,  0,  50,  50,  0,  50,
+  0,  0,  50,  50,  0,  50,
+  50,  0,  50,  50,  0,  50,
+  -50,  50,  50,  50,  0,  50,
+  0,  50,  50,  50,  0,  50,
+  50,  50,  50,  50,  0,  50,
+  -50,  -50,  -50,  -50,  50,  50,
+  0,  -50,  -50,  -50,  50,  50,
+  50,  -50,  -50,  -50,  50,  50,
+  -50,  0,  -50,  -50,  50,  50,
+  0,  0,  -50,  -50,  50,  50,
+  50,  0,  -50,  -50,  50,  50,
+  -50,  50,  -50,  -50,  50,  50,
+  0,  50,  -50,  -50,  50,  50,
+  50,  50,  -50,  -50,  50,  50,
+  -50,  -50,  0,  -50,  50,  50,
+  0,  -50,  0,  -50,  50,  50,
+  50,  -50,  0,  -50,  50,  50,
+  -50,  0,  0,  -50,  50,  50,
+  0,  0,  0,  -50,  50,  50,
+  50,  0,  0,  -50,  50,  50,
+  -50,  50,  0,  -50,  50,  50,
+  0,  50,  0,  -50,  50,  50,
+  50,  50,  0,  -50,  50,  50,
+  -50,  -50,  50,  -50,  50,  50,
+  0,  -50,  50,  -50,  50,  50,
+  50,  -50,  50,  -50,  50,  50,
+  -50,  0,  50,  -50,  50,  50,
+  0,  0,  50,  -50,  50,  50,
+  50,  0,  50,  -50,  50,  50,
+  -50,  50,  50,  -50,  50,  50,
+  0,  50,  50,  -50,  50,  50,
+  50,  50,  50,  -50,  50,  50,
+  -50,  -50,  -50,  0,  50,  50,
+  0,  -50,  -50,  0,  50,  50,
+  50,  -50,  -50,  0,  50,  50,
+  -50,  0,  -50,  0,  50,  50,
+  0,  0,  -50,  0,  50,  50,
+  50,  0,  -50,  0,  50,  50,
+  -50,  50,  -50,  0,  50,  50,
+  0,  50,  -50,  0,  50,  50,
+  50,  50,  -50,  0,  50,  50,
+  -50,  -50,  0,  0,  50,  50,
+  0,  -50,  0,  0,  50,  50,
+  50,  -50,  0,  0,  50,  50,
+  -50,  0,  0,  0,  50,  50,
+  0,  0,  0,  0,  50,  50,
+  50,  0,  0,  0,  50,  50,
+  -50,  50,  0,  0,  50,  50,
+  0,  50,  0,  0,  50,  50,
+  50,  50,  0,  0,  50,  50,
+  -50,  -50,  50,  0,  50,  50,
+  0,  -50,  50,  0,  50,  50,
+  50,  -50,  50,  0,  50,  50,
+  -50,  0,  50,  0,  50,  50,
+  0,  0,  50,  0,  50,  50,
+  50,  0,  50,  0,  50,  50,
+  -50,  50,  50,  0,  50,  50,
+  0,  50,  50,  0,  50,  50,
+  50,  50,  50,  0,  50,  50,
+  -50,  -50,  -50,  50,  50,  50,
+  0,  -50,  -50,  50,  50,  50,
+  50,  -50,  -50,  50,  50,  50,
+  -50,  0,  -50,  50,  50,  50,
+  0,  0,  -50,  50,  50,  50,
+  50,  0,  -50,  50,  50,  50,
+  -50,  50,  -50,  50,  50,  50,
+  0,  50,  -50,  50,  50,  50,
+  50,  50,  -50,  50,  50,  50,
+  -50,  -50,  0,  50,  50,  50,
+  0,  -50,  0,  50,  50,  50,
+  50,  -50,  0,  50,  50,  50,
+  -50,  0,  0,  50,  50,  50,
+  0,  0,  0,  50,  50,  50,
+  50,  0,  0,  50,  50,  50,
+  -50,  50,  0,  50,  50,  50,
+  0,  50,  0,  50,  50,  50,
+  50,  50,  0,  50,  50,  50,
+  -50,  -50,  50,  50,  50,  50,
+  0,  -50,  50,  50,  50,  50,
+  50,  -50,  50,  50,  50,  50,
+  -50,  0,  50,  50,  50,  50,
+  0,  0,  50,  50,  50,  50,
+  50,  0,  50,  50,  50,  50,
+  -50,  50,  50,  50,  50,  50,
+  0,  50,  50,  50,  50,  50,
+  50,  50,  50,  50,  50,  50
+};
+
+const struct lsp_codebook lsp_cbdt[] = {
+  /* codebook/lspdt1-4.txt */
+  {
+    4,
+    6.33985,
+    81,
+    codes0
+  },
+  /* codebook/lspdt5-10.txt */
+  {
+    6,
+    9.50978,
+    729,
+    codes1
+  },
+  { 0, 0, 0, 0 }
+};
index f7b7c03e971bc1e700a60e0ba161bc207f6d8cbe..e351b53dc3f10f8d10a7934c0617755c522609aa 100644 (file)
@@ -360,7 +360,7 @@ void lspdt_quantise(float lsps[], float lsps_[], float lsps__prev[])
        lsps_dt[i] = (4000/PI)*(lsps[i] - lsps__prev[i]);
        //      printf("%f ", lsps_dt[i]);
     }
-    printf("\n");
+    //printf("\n");
     k = lsp_cbdt[0].k;
     m = lsp_cbdt[0].m;
     cb = lsp_cbdt[0].cb;
@@ -370,21 +370,19 @@ void lspdt_quantise(float lsps[], float lsps_[], float lsps__prev[])
 
     for(i=0; i<4; i++) {
        lsps_[i] = lsps__prev[i] + (PI/4000.0)*cb[index*k + i];
-       lsps__prev[i] = lsps_[i];
     }
 
     k = lsp_cbdt[1].k;
     m = lsp_cbdt[1].m;
     cb = lsp_cbdt[1].cb;
     index = quantise(cb, &lsps_dt[4], wt, k, m, &se);
-    printf("index %d\n", index);
+    //printf("index %d\n", index);
     for(i=4; i<10; i++) {
-       printf("%f ", cb[index*k + i - 4]);
+       //printf("%f ", cb[index*k + i - 4]);
        lsps_[i] = lsps__prev[i] + (PI/4000.0)*cb[index*k + i - 4];
-       lsps__prev[i] = lsps_[i];
     }
 
-    printf("\n");
+    //printf("\n");
 }
 
 void check_lsp_order(float lsp[], int lpc_order)