integrated LSPs
authorjmvalin <jmvalin@0101bb08-14d6-0310-b084-bc0e0c8e3800>
Thu, 14 Feb 2002 01:31:22 +0000 (01:31 +0000)
committerjmvalin <jmvalin@0101bb08-14d6-0310-b084-bc0e0c8e3800>
Thu, 14 Feb 2002 01:31:22 +0000 (01:31 +0000)
git-svn-id: http://svn.xiph.org/trunk/speex@3047 0101bb08-14d6-0310-b084-bc0e0c8e3800

libspeex/lpc.c
libspeex/speex.c
libspeex/speex.h

index 877a9cb..21b3b0b 100644 (file)
@@ -40,8 +40,8 @@ wld(
 {
    int i, j;  float r, error = ac[0];
 
-   lpc[0]=1; //for compatibility
-   lpc++; //for compatibility
+   lpc[0]=1; /*for compatibility*/
+   lpc++; /*for compatibility*/
 
    if (ac[0] == 0) {
       for (i = 0; i < p; i++) ref[i] = 0; return 0; }
@@ -82,7 +82,7 @@ void autocorr(
               int lag, int   n)
 {
    float d; int i;
-   lag++;   //Compensate for the old routine
+   lag++;   /*Compensate for the old routine*/
    while (lag--) {
       for (i = lag, d = 0; i < n; i++) d += x[i] * x[i-lag];
       ac[lag] = d;
index 528e192..5c2edf4 100644 (file)
@@ -1,8 +1,13 @@
-#include "speex.h"
-#include "lpc.h"
 #include <stdlib.h>
 #include <string.h>
 #include <math.h>
+#include "speex.h"
+#include "lpc.h"
+#include "lsp.h"
+
+#ifndef M_PI
+#define M_PI           3.14159265358979323846  /* pi */
+#endif
 
 void encoder_init(EncState *st)
 {
@@ -22,7 +27,7 @@ void encoder_init(EncState *st)
    st->buf2 = malloc(st->windowSize*sizeof(float));
    st->lpc = malloc(st->lpcSize*sizeof(float));
    st->autocorr = malloc(st->lpcSize*sizeof(float));
-   st->lsf = malloc(st->lpcSize*sizeof(float));
+   st->lsp = malloc(st->lpcSize*sizeof(float));
    st->rc = malloc(st->lpcSize*sizeof(float));
 }
 
@@ -33,13 +38,13 @@ void encoder_destroy(EncState *st)
    free(st->buf2);
    free(st->lpc);
    free(st->autocorr);
-   free(st->lsf);
+   free(st->lsp);
    free(st->rc);
 }
 
 void encode(EncState *st, float *in, int *outSize, void *bits)
 {
-   int i;
+   int i, roots;
    float error;
 
    /* Copy new data in input buffer */
@@ -58,7 +63,10 @@ void encode(EncState *st, float *in, int *outSize, void *bits)
    error = wld(st->lpc, st->autocorr, st->rc, st->lpcSize-1);
    printf ("prediction error = %f, R[0] = %f, gain = %f\n", error, st->autocorr[0], 
            st->autocorr[0]/error);
-
+   roots=lpc_to_lsp (st->lpc, st->lpcSize-1, st->lsp, 4, 0.02);
+   for (i=0;i<st->lpcSize-1;i++)
+      printf("%f ", st->lsp[i]);
+   printf ("\nfound %d roots\n", roots);
 }
 
 
index 74bdd40..1aedc14 100644 (file)
@@ -13,7 +13,7 @@ typedef struct EncState {
    float *buf2;
    float *autocorr;
    float *lpc;
-   float *lsf;
+   float *lsp;
    float *rc;
 } EncState;