Commit b13d2720 authored by vaillancour's avatar vaillancour
Browse files

adding basop sat for signal with extreme saturation

parent b2e84c97
Loading
Loading
Loading
Loading
+5 −2
Original line number Original line Diff line number Diff line
@@ -371,8 +371,11 @@ Word16 BitAllocF_fx (
        exp1 = sub(norm_l(L_tmp1), 1);
        exp1 = sub(norm_l(L_tmp1), 1);
        exp2 = norm_s(n);
        exp2 = norm_s(n);
        tmp = div_s(extract_h(L_shl(L_tmp1, exp1)), shl(n, exp2));/*15 + 15 + exp1 - 16 - exp2*/
        tmp = div_s(extract_h(L_shl(L_tmp1, exp1)), shl(n, exp2));/*15 + 15 + exp1 - 16 - exp2*/
#ifdef BASOP_NOGLOB
        m_fx = shl_sat( tmp, sub( exp2, exp1 ) ); /*Q14*/
#else
        m_fx = shl( tmp, sub( exp2, exp1 ) ); /*Q14*/
        m_fx = shl( tmp, sub( exp2, exp1 ) ); /*Q14*/

#endif
        t_fx = L_deposit_l(0);
        t_fx = L_deposit_l(0);
        n = 0;
        n = 0;
        move16();
        move16();
+5 −1
Original line number Original line Diff line number Diff line
@@ -815,7 +815,11 @@ void Decimate_allpass_steep_fx(




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


    }
    }
+5 −1
Original line number Original line Diff line number Diff line
@@ -127,7 +127,11 @@ void Residu3_10_fx(
			s64 = W_mac_16_16(s64, x[i-j], a[j]);
			s64 = W_mac_16_16(s64, x[i-j], a[j]);
		}		
		}		
		s = W_shl_sat_l(s64, q);
		s = W_shl_sat_l(s64, q);
#ifdef BASOP_NOGLOB
        y[i] = round_fx_sat( s );
#else
        y[i] = round_fx( s );
        y[i] = round_fx( s );
#endif
    }
    }
}
}
/*--------------------------------------------------------------------*
/*--------------------------------------------------------------------*
+10 −2
Original line number Original line Diff line number Diff line
@@ -2421,7 +2421,11 @@ void calc_normal_length_fx_32(
				peak = mag;
				peak = mag;
				move16();
				move16();
			}
			}
#ifdef BASOP_NOGLOB
            mean = L_add_sat( mean, mag );
#else
            mean = L_add( mean, mag );
            mean = L_add( mean, mag );
#endif
			pit++;
			pit++;
		}
		}


@@ -2510,7 +2514,11 @@ void calc_norm_envelop_fx_32(
		move16();
		move16();
		FOR(n_lag = 0; n_lag < n_lag_now; n_lag++)
		FOR(n_lag = 0; n_lag < n_lag_now; n_lag++)
		{
		{
#ifdef BASOP_NOGLOB
			envelope_fx[env_index] = L_add_sat( envelope_fx[env_index], L_abs( SWB_signal_fx[add( n_freq, n_lag )] ) );
#else
			envelope_fx[env_index] = L_add( envelope_fx[env_index], L_abs( SWB_signal_fx[add( n_freq, n_lag )] ) );
			envelope_fx[env_index] = L_add( envelope_fx[env_index], L_abs( SWB_signal_fx[add( n_freq, n_lag )] ) );
#endif
			move32();
			move32();
		}
		}
		env_index++;
		env_index++;
+10 −3
Original line number Original line Diff line number Diff line
@@ -4068,7 +4068,11 @@ void Estimate_mix_factors_fx(
        shb_res_local[i] = round_fx(L_tmp2);
        shb_res_local[i] = round_fx(L_tmp2);


        /* temp_numer1[i] = sub(shb_res_local[i], WN_exc_local[i]); */
        /* temp_numer1[i] = sub(shb_res_local[i], WN_exc_local[i]); */
#ifdef BASOP_NOGLOB
        temp_numer1[i] = round_fx_sat( L_sub_sat( L_shl_sat( L_tmp2, sc2 ), L_shl_sat( L_tmp1, sc1 ) ) );
#else
        temp_numer1[i] = round_fx( L_sub( L_shl( L_tmp2, sc2 ), L_shl( L_tmp1, sc1 ) ) );
        temp_numer1[i] = round_fx( L_sub( L_shl( L_tmp2, sc2 ), L_shl( L_tmp1, sc1 ) ) );
#endif
        /* (Q_bwe_exc) */
        /* (Q_bwe_exc) */


        /* temp_numer2[i] = sub(exc16kWhtnd[i], WN_exc_local[i]); */
        /* temp_numer2[i] = sub(exc16kWhtnd[i], WN_exc_local[i]); */
@@ -4123,8 +4127,11 @@ void Estimate_mix_factors_fx(


        tmp = div_s(fracb,fraca);
        tmp = div_s(fracb,fraca);
        exp1 = sub(expb,expa);
        exp1 = sub(expb,expa);
#ifdef BASOP_NOGLOB
        tmp = shl_sat( tmp, exp1 );
#else
        tmp = shl( tmp, exp1 );
        tmp = shl( tmp, exp1 );

#endif
        if(NE_16(num_flag,den_flag))
        if(NE_16(num_flag,den_flag))
        {
        {
            tmp = negate(tmp);
            tmp = negate(tmp);
Loading