Commit deb00941 authored by vaillancour's avatar vaillancour
Browse files

fixes AMRIO -dtx sw_amrwb.bin

parent 14b345b9
Loading
Loading
Loading
Loading
+30 −1
Original line number Diff line number Diff line
@@ -76,7 +76,11 @@ static void filter_2nd_order(
    L_sum = L_add(L_sum, HP50_Mpy_32_32_fix(mem[0],a2));   /* y2*a2 */
    L_sum = L_add(L_sum, HP50_Mpy_32_32_fix(mem[1],a1));   /* y1*a1 */

#ifdef BASOP_NOGLOB
    L_y2  = L_shl_o(L_sum, HP20_COEFF_SCALE, &Overflow);
#else
    L_y2  = L_shl(L_sum, HP20_COEFF_SCALE);
#endif
    BASOP_SATURATE_ERROR_OFF_EVS
    BASOP_SATURATE_WARNING_OFF_EVS
#ifdef BASOP_NOGLOB
@@ -94,7 +98,11 @@ static void filter_2nd_order(
    L_sum = L_add(L_sum, HP50_Mpy_32_32_fix(mem[1],a2));   /* y2*a2 */
    L_sum = L_add(L_sum, HP50_Mpy_32_32_fix(L_y2,  a1));   /* y1*a1 */

#ifdef BASOP_NOGLOB
    L_y1  = L_shl_o(L_sum, HP20_COEFF_SCALE, &Overflow);
#else
    L_y1  = L_shl(L_sum, HP20_COEFF_SCALE);
#endif
    BASOP_SATURATE_ERROR_OFF_EVS
    BASOP_SATURATE_WARNING_OFF_EVS
#ifdef BASOP_NOGLOB
@@ -116,7 +124,11 @@ static void filter_2nd_order(
        L_sum = L_add(L_sum, HP50_Mpy_32_32_fix(L_y2,a2));
        L_sum = L_add(L_sum, HP50_Mpy_32_32_fix(L_y1,a1));

#ifdef BASOP_NOGLOB
        L_y2  = L_shl_o(L_sum, HP20_COEFF_SCALE, &Overflow);
#else
        L_y2  = L_shl(L_sum, HP20_COEFF_SCALE);
#endif
        BASOP_SATURATE_ERROR_OFF_EVS
        BASOP_SATURATE_WARNING_OFF_EVS
#ifdef BASOP_NOGLOB
@@ -134,7 +146,11 @@ static void filter_2nd_order(
        L_sum = L_add(L_sum, HP50_Mpy_32_32_fix(L_y1,a2));
        L_sum = L_add(L_sum, HP50_Mpy_32_32_fix(L_y2,a1));

#ifdef BASOP_NOGLOB
        L_y1  = L_shl_o(L_sum, HP20_COEFF_SCALE, &Overflow);
#else
        L_y1  = L_shl(L_sum, HP20_COEFF_SCALE);
#endif
        BASOP_SATURATE_ERROR_OFF_EVS
        BASOP_SATURATE_WARNING_OFF_EVS
#ifdef BASOP_NOGLOB
@@ -171,7 +187,9 @@ void hp20(Word16 signal[], /* i/o: signal to filter any *
{
    Word32 a1, b1, a2, b2;
    Word16 prescale, prescaleOld, diff;

#ifdef BASOP_NOGLOB_DECLARE_LOCAL
    Flag Overflow = 0;
#endif


    prescale = getScaleFactor16(signal, lg);
@@ -191,6 +209,16 @@ void hp20(Word16 signal[], /* i/o: signal to filter any *
    IF (prescale != prescaleOld)
    {
        diff = sub(prescale, prescaleOld);
#ifdef BASOP_NOGLOB
        mem[0] = L_shr_o(mem[0], diff, &Overflow);
        move32();
        mem[1] = L_shr_o(mem[1], diff, &Overflow);
        move32();
        mem[2] = L_shr_o(mem[2], diff, &Overflow);
        move32();
        mem[3] = L_shr_o(mem[3], diff, &Overflow);
        move32();
#else
        mem[0] = L_shr(mem[0], diff);
        move32();
        mem[1] = L_shr(mem[1], diff);
@@ -199,6 +227,7 @@ void hp20(Word16 signal[], /* i/o: signal to filter any *
        move32();
        mem[3] = L_shr(mem[3], diff);
        move32();
#endif
        mem[4] = L_deposit_l(prescale);
    }

+4 −1
Original line number Diff line number Diff line
@@ -984,8 +984,11 @@ void noise_est_fx(
        /* ave_enr2:: calculation of another non-stationarity measure (following attacks)  */
        Ltmp = L_shl((Word32)1L, tmp_Q );                        /* 1.0 added in the right dynamic domain */
        /*L_tmp_enr    =  L_add(enr[i]              , Ltmp );*/  /* enr      scale  dynamic    , done above  */
#ifdef BASOP_NOGLOB
        L_tmp_ave_enr2 =  L_add_o(hNoiseEst->ave_enr2_fx[i], Ltmp, &Overflow);    /* ave__enr  scale dynamic  */
#else
        L_tmp_ave_enr2 =  L_add(hNoiseEst->ave_enr2_fx[i], Ltmp);    /* ave__enr  scale dynamic  */

#endif
        IF (LE_32(Lnon_sta2, th_sta ))                        /* Just to limit the saturation */
        {
            Lnum = L_max(L_tmp_enr,   L_tmp_ave_enr2 );
+11 −18
Original line number Diff line number Diff line
@@ -242,31 +242,24 @@ Word32 Scale_mem_pre_proc( /* o : Min energy scaled *
            {
#ifdef BASOP_NOGLOB
                enrO[i] = L_max(L_shl_o(enrO[i], Q_exp, &Overflow),e_min_scaled);
#else
                enrO[i] = L_max(L_shl(enrO[i], Q_exp),e_min_scaled);
#endif
                move32();
#ifdef BASOP_NOGLOB
                bckr[i] = L_max(L_shl_o(bckr[i], Q_exp, &Overflow), e_min_scaled);
#else
                bckr[i] = L_max(L_shl(bckr[i], Q_exp),e_min_scaled);
#endif
                move32();
#ifdef BASOP_NOGLOB
                ave_enr[i] = L_max(L_shl_o(ave_enr[i], Q_exp, &Overflow), e_min_scaled);
#else /* BASOP_NOGLOB */
                ave_enr[i] = L_max(L_shl(ave_enr[i], Q_exp),e_min_scaled);
#endif
                move32();
#ifdef BASOP_NOGLOB
                ave_enr2[i] = L_max(L_shl_o(ave_enr2[i], Q_exp, &Overflow), e_min_scaled);
                st_fr_bands1[i] = L_max(L_shl_o(st_fr_bands1[i], Q_exp, &Overflow), e_min_scaled);
                st_fr_bands2[i] = L_max(L_shl_o(st_fr_bands2[i], Q_exp, &Overflow), e_min_scaled);
#else
                enrO[i] = L_max(L_shl(enrO[i], Q_exp),e_min_scaled);
                bckr[i] = L_max(L_shl(bckr[i], Q_exp), e_min_scaled);
                ave_enr[i] = L_max(L_shl(ave_enr[i], Q_exp), e_min_scaled);
                ave_enr2[i] = L_max(L_shl(ave_enr2[i], Q_exp), e_min_scaled);
                st_fr_bands1[i] = L_max(L_shl(st_fr_bands1[i], Q_exp), e_min_scaled);
                st_fr_bands2[i] = L_max(L_shl(st_fr_bands2[i], Q_exp), e_min_scaled);
#endif
                move32();
                st_fr_bands1[i] = L_max(L_shl(st_fr_bands1[i], Q_exp),e_min_scaled);
                move32();                                                                                 
                st_fr_bands2[i] = L_max(L_shl(st_fr_bands2[i], Q_exp),e_min_scaled);
                move32();
                move32();
                move32();
                move32();
            }
        }