fixed-point: pitch stuff
authorjm <jm@0101bb08-14d6-0310-b084-bc0e0c8e3800>
Wed, 8 Oct 2003 04:56:09 +0000 (04:56 +0000)
committerjm <jm@0101bb08-14d6-0310-b084-bc0e0c8e3800>
Wed, 8 Oct 2003 04:56:09 +0000 (04:56 +0000)
git-svn-id: http://svn.xiph.org/trunk/speex@5431 0101bb08-14d6-0310-b084-bc0e0c8e3800

libspeex/filters.c
libspeex/ltp.c
libspeex/misc.h
libspeex/smallft.c

index e6348cf..7deba47 100644 (file)
@@ -88,7 +88,7 @@ spx_word16_t compute_rms(spx_sig_t *x, int len)
    }
    
    /*FIXME: remove division*/
-   return (1<<(sig_shift+3))*sqrt(1+sum/len)/SIG_SCALING;
+   return (1<<(sig_shift+3))*sqrt(1+sum/len)/(float)SIG_SCALING;
 }
 
 #define MUL_16_32_R15(a,bh,bl) ((a)*(bh) + ((a)*(bl)>>15))
index 951c74a..cdc6c47 100644 (file)
@@ -340,7 +340,12 @@ int cdbk_offset
             x[i][j+1]=x[i+1][j];
          x[i][0]=0;
          for (j=0;j<nsf;j++)
-            x[i][j]+=e[i][0]*r[j]/SIG_SCALING;
+         {
+            /* FIXME: Check for overflows */
+            /*x[i][j]+=e[i][0]*r[j]/SIG_SCALING;*/
+            x[i][j]+=MULT16_32_Q13(SHR(r[j],1), e[i][0]);
+            /*printf ("%d\n", (int)r[j]);*/
+         }
       }
    }
 
index 47a8375..b0b7b7a 100644 (file)
@@ -57,6 +57,7 @@ typedef long long   spx_sig_t;
 #define SHL(a,shift) ((a) << (shift))
 
 #define MULT16_16(a,b)     (((signed int)(a))*(b))
+#define MULT16_32_Q13(a,b) (((a)*((b)>>13)) + ((a)*((signed int)((b)&0x00001fff))>>13))
 #define MULT16_32_Q14(a,b) (((a)*((b)>>14)) + ((a)*((signed int)((b)&0x00003fff))>>14))
 #define MULT16_32_Q15(a,b) (((a)*((b)>>15)) + ((a)*((signed int)((b)&0x00007fff))>>15))
 
@@ -87,6 +88,14 @@ typedef float spx_word32_t;
 #define SHL(a,shift)       (a)
 #define MULT16_16(a,b)     ((a)*(b))
 
+#define MULT16_32_Q13(a,b)     ((a)*(b))
+#define MULT16_32_Q14(a,b)     ((a)*(b))
+#define MULT16_32_Q15(a,b)     ((a)*(b))
+
+#define MULT16_16_Q13(a,b)     ((a)*(b))
+#define MULT16_16_Q14(a,b)     ((a)*(b))
+#define MULT16_16_Q15(a,b)     ((a)*(b))
+
 
 #endif
 
index 4c43cc5..d9569f4 100644 (file)
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: *unnormalized* fft transform
- last mod: $Id: smallft.c,v 1.11 2003/10/08 04:53:18 jm Exp $
+ last mod: $Id: smallft.c,v 1.12 2003/10/08 04:56:09 jm Exp $
 
  ********************************************************************/