Enable the new enhancer by default.
authorjm <jm@0101bb08-14d6-0310-b084-bc0e0c8e3800>
Mon, 8 May 2006 10:24:36 +0000 (10:24 +0000)
committerjm <jm@0101bb08-14d6-0310-b084-bc0e0c8e3800>
Mon, 8 May 2006 10:24:36 +0000 (10:24 +0000)
git-svn-id: http://svn.xiph.org/trunk/speex@11373 0101bb08-14d6-0310-b084-bc0e0c8e3800

libspeex/filters.c
libspeex/filters.h
libspeex/nb_celp.c
libspeex/nb_celp.h
libspeex/sb_celp.c

index 3bd2bc4..11edc8b 100644 (file)
@@ -640,7 +640,7 @@ void fir_mem_up(const spx_sig_t *x, const spx_word16_t *a, spx_sig_t *y, int N,
       mem[i+1] = xx[i];
 }
 
-#ifdef NEW_ENHANCER
+#ifndef OLD_ENHANCER
 
 #ifdef FIXED_POINT
 #if 0
@@ -874,7 +874,8 @@ char *stack
    for (i=0;i<nsf;i++)
       new_exc[i] = MULT16_16_Q14(ngain, new_exc[i]);
 }
-#endif
+
+#else
 
 void comb_filter_mem_init (CombFilterMem *mem)
 {
@@ -994,3 +995,5 @@ CombFilterMem *mem
    for (i=0;i<nsf;i++)
       _new_exc[i] = EXTRACT16(PSHR32(new_exc[i],SIG_SHIFT));
 }
+
+#endif
index fdd1026..a47eac6 100644 (file)
@@ -48,13 +48,6 @@ int normalize16(const spx_sig_t *x, spx_word16_t *y, spx_sig_t max_scale, int le
 
 #endif
 
-/** Combined filter memory. */
-typedef struct {
-   int   last_pitch;
-   spx_word16_t last_pitch_gain[3];
-   spx_word16_t smooth_gain;
-} CombFilterMem;
-
 
 void qmf_decomp(const spx_word16_t *xx, const spx_word16_t *aa, spx_sig_t *, spx_sig_t *y2, int N, int M, spx_word16_t *mem, char *stack);
 void fir_mem_up(const spx_sig_t *x, const spx_word16_t *a, spx_sig_t *y, int N, int M, spx_word32_t *mem, char *stack);
@@ -79,7 +72,7 @@ void residue_percep_zero(const spx_sig_t *xx, const spx_coef_t *ak, const spx_co
 
 void compute_impulse_response(const spx_coef_t *ak, const spx_coef_t *awk1, const spx_coef_t *awk2, spx_word16_t *y, int N, int ord, char *stack);
 
-#ifdef NEW_ENHANCER
+#ifndef OLD_ENHANCER
 void multicomb(
 spx_sig_t *exc,          /*decoded excitation*/
 spx_word16_t *new_exc,      /*enhanced excitation*/
@@ -91,7 +84,14 @@ spx_word16_t *pitch_gain,   /*pitch gain (3-tap)*/
 spx_word16_t  comb_gain,    /*gain of comb filter*/
 char *stack
 );
-#endif
+#else
+
+/** Combined filter memory. */
+typedef struct {
+   int   last_pitch;
+   spx_word16_t last_pitch_gain[3];
+   spx_word16_t smooth_gain;
+} CombFilterMem;
 
 void comb_filter_mem_init (CombFilterMem *mem);
 
@@ -106,6 +106,6 @@ spx_word16_t *pitch_gain,   /*pitch gain (3-tap)*/
 spx_word16_t  comb_gain,    /*gain of comb filter*/
 CombFilterMem *mem
 );
-
+#endif
 
 #endif
index 060643e..596def2 100644 (file)
@@ -1039,10 +1039,10 @@ int nb_encode(void *state, void *vin, SpeexBits *bits)
    return 1;
 }
 
-#ifdef NEW_ENHANCER
-#define PITCH_PERIODS 3
-#else
+#ifdef OLD_ENHANCER
 #define PITCH_PERIODS 1
+#else
+#define PITCH_PERIODS 3
 #endif
 
 void *nb_decoder_init(const SpeexMode *m)
@@ -1092,9 +1092,10 @@ void *nb_decoder_init(const SpeexMode *m)
    st->interp_qlpc = speex_alloc(st->lpcSize*sizeof(spx_coef_t));
    st->old_qlsp = speex_alloc(st->lpcSize*sizeof(spx_lsp_t));
    st->mem_sp = speex_alloc((5*st->lpcSize)*sizeof(spx_mem_t));
+#ifdef OLD_ENHANCER
    st->comb_mem = speex_alloc(sizeof(CombFilterMem));
    comb_filter_mem_init (st->comb_mem);
-
+#endif
    st->pi_gain = speex_alloc((st->nbSubframes)*sizeof(spx_word32_t));
    st->last_pitch = 40;
    st->count_lost=0;
@@ -1132,7 +1133,9 @@ void nb_decoder_destroy(void *state)
    speex_free (st->interp_qlpc);
    speex_free (st->old_qlsp);
    speex_free (st->mem_sp);
+#ifdef OLD_ENHANCER
    speex_free (st->comb_mem);
+#endif
    speex_free (st->pi_gain);
 
    speex_free(state);
@@ -1212,12 +1215,12 @@ static void nb_decode_lost(DecState *st, spx_word16_t *out, char *stack)
          exc[i]= MULT16_32_Q15(pitch_gain, (exc[i-pitch_val]+VERY_SMALL)) + 
                MULT16_32_Q15(fact, MULT16_32_Q15(SHL(Q15ONE,15)-SHL(MULT16_16(pitch_gain,pitch_gain),1),speex_rand(innov_gain, &st->seed)));
       }
-#ifdef NEW_ENHANCER
+#ifdef OLD_ENHANCER
       for (i=0;i<st->subframeSize;i++)
-         sp[i]=PSHR32(exc[i-st->subframeSize],SIG_SHIFT);
+         sp[i]=PSHR32(exc[i],SIG_SHIFT);
 #else
       for (i=0;i<st->subframeSize;i++)
-         sp[i]=PSHR32(exc[i],SIG_SHIFT);
+         sp[i]=PSHR32(exc[i-st->subframeSize],SIG_SHIFT);
 #endif 
       iir_mem16(sp, st->interp_qlpc, sp, st->subframeSize, st->lpcSize, 
                 st->mem_sp);
@@ -1673,7 +1676,7 @@ int nb_decode(void *state, SpeexBits *bits, void *vout)
 
       }
 
-#ifndef NEW_ENHANCER
+#ifdef OLD_ENHANCER
       if (st->lpc_enh_enabled && SUBMODE(comb_gain)>0 && !st->count_lost)
       {
          comb_filter(exc, sp, st->interp_qlpc, st->lpcSize, st->subframeSize,
@@ -1688,7 +1691,7 @@ int nb_decode(void *state, SpeexBits *bits, void *vout)
    
    ALLOC(interp_qlsp, st->lpcSize, spx_lsp_t);
 
-#ifdef NEW_ENHANCER
+#ifndef OLD_ENHANCER
    if (st->lpc_enh_enabled && SUBMODE(comb_gain)>0 && !st->count_lost)
    {
       multicomb(st->exc-st->subframeSize, out, st->interp_qlpc, st->lpcSize, 2*st->subframeSize, best_pitch, pitch_gain, SUBMODE(comb_gain), stack);
@@ -1719,10 +1722,10 @@ int nb_decode(void *state, SpeexBits *bits, void *vout)
       for (i=0;i<st->frameSize;i++)
       {
          st->exc[i] = MULT16_32_Q14(gain, st->exc[i]);
-#ifdef NEW_ENHANCER
-         out[i]=PSHR32(st->exc[i-st->subframeSize],SIG_SHIFT);
-#else
+#ifdef OLD_ENHANCER
          out[i]=PSHR32(st->exc[i],SIG_SHIFT);
+#else
+         out[i]=PSHR32(st->exc[i-st->subframeSize],SIG_SHIFT);
 #endif
       }
    }
@@ -1749,7 +1752,7 @@ int nb_decode(void *state, SpeexBits *bits, void *vout)
       /* Compute interpolated LPCs (unquantized) */
       lsp_to_lpc(interp_qlsp, ak, st->lpcSize, stack);
 
-#ifndef NEW_ENHANCER
+#ifdef OLD_ENHANCER
       for (i=0;i<st->lpcSize;i++)
          st->interp_qlpc[i] = ak[i];
 #endif
@@ -2039,10 +2042,10 @@ int nb_decoder_ctl(void *state, int request, void *ptr)
       (*(int*)ptr) = st->encode_submode;
       break;
    case SPEEX_GET_LOOKAHEAD:
-#ifdef NEW_ENHANCER
-      (*(int*)ptr)=st->subframeSize;
-#else
+#ifdef OLD_ENHANCER
       (*(int*)ptr)=0;
+#else
+      (*(int*)ptr)=st->subframeSize;
 #endif
       break;
    case SPEEX_GET_PI_GAIN:
index d8b77ec..680061f 100644 (file)
@@ -167,7 +167,9 @@ typedef struct DecState {
    const SpeexSubmode * const *submodes; /**< Sub-mode data */
    int    submodeID;      /**< Activated sub-mode */
    int    lpc_enh_enabled; /**< 1 when LPC enhancer is on, 0 otherwise */
+#ifdef OLD_ENHANCER
    CombFilterMem *comb_mem;
+#endif
    SpeexCallback speex_callbacks[SPEEX_MAX_CALLBACKS];
 
    SpeexCallback user_callback;
index 1d6ced9..c2ea8c1 100644 (file)
@@ -1112,7 +1112,7 @@ int sb_decode(void *state, SpeexBits *bits, void *vout)
       /* LSP to LPC */
       lsp_to_lpc(st->interp_qlsp, ak, st->lpcSize, stack);
 
-#ifndef NEW_ENHANCER
+#ifdef OLD_ENHANCER
       for (i=0;i<st->lpcSize;i++)
          st->interp_qlpc[i] = ak[i];
 #endif
@@ -1222,7 +1222,7 @@ int sb_decode(void *state, SpeexBits *bits, void *vout)
             innov_save[2*i]=exc[i];
       }
       
-#ifndef NEW_ENHANCER
+#ifdef OLD_ENHANCER
       for (i=0;i<st->subframeSize;i++)
          st->excBuf[i]=exc[i];
 #endif
@@ -1230,7 +1230,7 @@ int sb_decode(void *state, SpeexBits *bits, void *vout)
          sp[i]=st->excBuf[i];
       iir_mem2(sp, st->interp_qlpc, sp, st->subframeSize, st->lpcSize, 
                st->mem_sp);
-#ifdef NEW_ENHANCER
+#ifndef OLD_ENHANCER
       for (i=0;i<st->subframeSize;i++)
          st->excBuf[i]=exc[i];
       for (i=0;i<st->lpcSize;i++)