cleaning up noise floor for fixed-point (not complete yet)
authorjm <jm@0101bb08-14d6-0310-b084-bc0e0c8e3800>
Wed, 5 Oct 2005 06:08:06 +0000 (06:08 +0000)
committerjm <jm@0101bb08-14d6-0310-b084-bc0e0c8e3800>
Wed, 5 Oct 2005 06:08:06 +0000 (06:08 +0000)
git-svn-id: http://svn.xiph.org/trunk/speex@10117 0101bb08-14d6-0310-b084-bc0e0c8e3800

libspeex/modes.c
libspeex/nb_celp.c

index 1914457..671e82a 100644 (file)
@@ -387,7 +387,7 @@ static const SpeexNBMode nb_mode = {
    0.9, 0.6, /* gamma1, gamma2 */
 #endif
    .012,   /*lag_factor*/
-   1.0002, /*lpc_floor*/
+   .0002, /*lpc_floor*/
 #ifdef EPIC_48K
    0,
 #endif
@@ -543,7 +543,7 @@ static const SpeexSBMode sb_wb_mode = {
    0.9, 0.6, /* gamma1, gamma2 */
 #endif
    .001,   /*lag_factor*/
-   1.0001, /*lpc_floor*/
+   .0001, /*lpc_floor*/
    0.9,
    {NULL, &wb_submode1, &wb_submode2, &wb_submode3, &wb_submode4, NULL, NULL, NULL},
    3,
@@ -589,7 +589,7 @@ static const SpeexSBMode sb_uwb_mode = {
    0.9, 0.6, /* gamma1, gamma2 */
 #endif
    .002,   /*lag_factor*/
-   1.0001, /*lpc_floor*/
+   .0001, /*lpc_floor*/
    0.7,
    {NULL, &wb_submode1, NULL, NULL, NULL, NULL, NULL, NULL},
    1,
@@ -677,7 +677,7 @@ static const SpeexNBMode nb_48k_mode = {
    0.9,    /*gamma1*/
    0.6,    /*gamma2*/
    .01,   /*lag_factor*/
-   1.0003, /*lpc_floor*/
+   .0003, /*lpc_floor*/
    1,
    {NULL, NULL, &nb_48k_submode, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
    2,
index 2f2bfc3..5c42c8a 100644 (file)
@@ -297,7 +297,7 @@ int nb_encode(void *state, void *vin, SpeexBits *bits)
       /* Compute auto-correlation */
       _spx_autocorr(w_sig, st->autocorr, st->lpcSize+1, st->windowSize);
    }
-   st->autocorr[0] = (spx_word16_t) (st->autocorr[0]*st->lpc_floor); /* Noise floor in auto-correlation domain */
+   st->autocorr[0] = ADD16(st->autocorr[0],(spx_word16_t) (st->autocorr[0]*st->lpc_floor)); /* Noise floor in auto-correlation domain */
 
    /* Lag windowing: equivalent to filtering in the power-spectrum domain */
    for (i=0;i<st->lpcSize+1;i++)
@@ -909,7 +909,7 @@ int nb_encode(void *state, void *vin, SpeexBits *bits)
             SUBMODE(innovation_quant)(target, st->interp_qlpc, st->bw_lpc1, st->bw_lpc2, 
                                       SUBMODE(innovation_params), st->lpcSize, st->subframeSize, 
                                       innov2, syn_resp, bits, stack, st->complexity, 0);
-            signal_mul(innov2, innov2, (spx_word32_t) (ener*(1/2.2)), st->subframeSize);
+            signal_mul(innov2, innov2, (spx_word32_t) (ener*(1.f/2.2f)), st->subframeSize);
             for (i=0;i<st->subframeSize;i++)
                exc[i] = ADD32(exc[i],innov2[i]);
             stack = tmp_stack;