Commit a17e842a authored by vaillancour's avatar vaillancour
Browse files

Correction on compl saturations for 26.444

parent fa3657b7
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -339,8 +339,13 @@ void CNG_exc_fx(
        FOR ( i=0; i<NUM_ENV_CNG; i++ )
        {
            /* denv[i] = lp_env[i] + 2*(*lp_ener) - env[i]; */
#ifdef BASOP_NOGLOB
            L_tmp = L_add_sat( *lp_ener, *lp_ener );
            denv[i] = L_sub_sat(L_add_sat(lp_env[i],L_tmp),env[i]);
#else
            L_tmp = L_add( *lp_ener, *lp_ener );
            denv[i] = L_sub(L_add(lp_env[i],L_tmp),env[i]);
#endif
            move32();/* Q6 */

            if ( denv[i] < 0 )
+6 −1
Original line number Diff line number Diff line
@@ -234,8 +234,13 @@ void enhancer_fx(
        /* pt_exc2[0] += code[0] - tmp * code[1] */
        L_tmp = L_deposit_h(code[0]);                   /* if Enc :Q9 * Q15 -> Q25 */
        L_tmp = L_msu(L_tmp, code[1], tmp);             /* Q12 * Q15 -> Q28 */
#ifdef BASOP_NOGLOB
        L_tmp = L_shl_sat( L_mult( gain_code_hi, extract_h( L_tmp ) ), sc );
        pt_exc2[0] = msu_r_sat(L_tmp, -32768, pt_exc2[0]);
#else
        L_tmp = L_shl( L_mult( gain_code_hi, extract_h( L_tmp ) ), sc );
        pt_exc2[0] = msu_r(L_tmp, -32768, pt_exc2[0]);
#endif
        move16();/* in Q_exc */

        FOR (i = 1; i < L_SUBFR-1; i++)
+12 −2
Original line number Diff line number Diff line
@@ -129,8 +129,13 @@ void Inac_swtch_ematch_fx(
                FOR (j = 0; j < 8; j ++)
                {
                    L_tmp = L_mult(*pt_exc,ftmp);  /* Q_exc*Q0 -> Q(Q_exc+1) */
#ifdef BASOP_NOGLOB
                    L_tmp = L_shl_sat( L_tmp, add( exp, 15 ) ); /* Q(Q_exc+1) -> Q(16+Q_exc)*/
                    *pt_exc = round_fx_sat(L_tmp);
#else
                    L_tmp = L_shl( L_tmp, add( exp, 15 ) ); /* Q(Q_exc+1) -> Q(16+Q_exc)*/
                    *pt_exc = round_fx(L_tmp);
#endif
                    pt_exc++;
                }
            }
@@ -139,8 +144,13 @@ void Inac_swtch_ematch_fx(
                FOR (j = 0; j < 16; j ++)
                {
                    L_tmp = L_mult(*pt_exc,ftmp);       /* Q_exc*Q0 -> Q(Q_exc+1) */
#ifdef BASOP_NOGLOB
                    L_tmp = L_shl_sat( L_tmp, add( exp, 15 ) ); /* Q(Q_exc+1) -> Q(16+Q_exc)*/
                    *pt_exc = round_fx_sat(L_tmp);          /*Q_exc*/
#else
                    L_tmp = L_shl( L_tmp, add( exp, 15 ) ); /* Q(Q_exc+1) -> Q(16+Q_exc)*/
                    *pt_exc = round_fx(L_tmp);          /*Q_exc*/
#endif
                    pt_exc++;
                }
            }
+6 −1
Original line number Diff line number Diff line
@@ -755,7 +755,12 @@ void Decimate_allpass_steep_fx(
    mem[ 2*ALLPASSSECTIONS_STEEP-1 ] = extract_h( Lacc1 );                  /*   Qx      */

    sum = mult_r( out_fx[0], 16384 ); /* Qx */
    out_fx[0] = add( sum, mult_r(temp[ALLPASSSECTIONS_STEEP-1], 16384 ));   /*    Qx  */ move16();
#ifdef BASOP_NOGLOB
    out_fx[0] = add_sat( sum, mult_r( temp[ALLPASSSECTIONS_STEEP - 1], 16384 ) ); /*    Qx  */
#else
    out_fx[0] = add( sum, mult_r( temp[ALLPASSSECTIONS_STEEP - 1], 16384 ) ); /*    Qx  */
#endif
    move16();


    FOR ( k = 1; k < N/2; k++)
+10 −4
Original line number Diff line number Diff line
@@ -408,11 +408,17 @@ void tcx_windowing_synthesis_current_frame(
                tmp2 = mult_r(signal[i+overlap-acelp_mem_len], window_trans[tmp-1-i].v.re);

                /*Time TDAC: 1)forward part of ACELP*/
#ifdef BASOP_NOGLOB
                tmp2 = add_sat( tmp2, mult_r( old_syn[acelp_zir_len - tmp + i], mult_r( window_trans[tmp - 1 - i].v.im, window_trans[tmp - 1 - i].v.im ) ) );
#else
                tmp2 = add( tmp2, mult_r( old_syn[acelp_zir_len - tmp + i], mult_r( window_trans[tmp - 1 - i].v.im, window_trans[tmp - 1 - i].v.im ) ) );

#endif
                /*Time TDAC: 1)reward part of ACELP*/
#ifdef BASOP_NOGLOB
                tmp2 = add_sat( tmp2, mult_r( old_syn[acelp_zir_len - i - 1], mult_r( window_trans[tmp - 1 - i].v.re, window_trans[tmp - 1 - i].v.im ) ) );
#else
                tmp2 = add( tmp2, mult_r( old_syn[acelp_zir_len - i - 1], mult_r( window_trans[tmp - 1 - i].v.re, window_trans[tmp - 1 - i].v.im ) ) );

#endif
                move16();
                signal[i+overlap-acelp_mem_len] = tmp2;
            }
Loading