Loading lib_com/fft_fx.c +16 −3 Original line number Diff line number Diff line Loading @@ -1182,7 +1182,9 @@ static void fft5_32_16fx( Word16 T1, To, T8, Tt, T9, Ts, Te, Tp, Th, Tn,T2, T3, T4, T5, T6, T7; Word16 i0,i1,i2,i3,i4; Word32 L_tmp; #ifdef BASOP_NOGLOB_DECLARE_LOCAL Flag Overflow = 0; #endif i0 = Idx[0]; move16(); i1 = Idx[32]; Loading @@ -1208,9 +1210,15 @@ static void fft5_32_16fx( move16(); T6 = zRe[i3]; move16(); #ifdef BASOP_NOGLOB T7 = add_o(T5,T6, &Overflow); T8 = add_o(T4,T7, &Overflow); Tt = sub_o(T5,T6, &Overflow); #else T7 = add(T5,T6); T8 = add(T4,T7); Tt = sub(T5,T6); #endif /* T9 = KP559016994 * (T4 - T7); */ L_tmp = Mult_32_16(KP559016994_16FX,sub(T4,T7)); T9 = round_fx(L_tmp); Loading @@ -1234,12 +1242,17 @@ static void fft5_32_16fx( #ifdef BASOP_NOGLOB zRe[i0] = add_o(T1,T8, &Overflow); move16(); zIm[i0] = add_o(To,Tp, &Overflow); move32(); #else zRe[i0] = add(T1,T8); move16(); zIm[i0] = add(To,Tp); move32(); #endif /*T2 = KP951056516*Te + KP587785252*Th; */ L_tmp = Mult_32_16(KP951056516_16FX,Te); Loading lib_com/swb_bwe_com_fx.c +35 −1 Original line number Diff line number Diff line Loading @@ -61,6 +61,9 @@ Word16 WB_BWE_gain_pred_fx( Word32 L_WB_fenv0, L_WB_fenv1; Word16 pitch_buf_tmp[4]; Word16 alfa = 32767; #ifdef BASOP_NOGLOB_DECLARE_LOCAL Flag Overflow = 0; #endif move16(); mode = NORMAL; Loading @@ -69,19 +72,31 @@ Word16 WB_BWE_gain_pred_fx( enerL = L_deposit_l(0); FOR (n_freq = 128; n_freq<192; n_freq++) { #ifdef BASOP_NOGLOB enerL = L_mac0_o( enerL, core_dec_freq[n_freq], core_dec_freq[n_freq], &Overflow ); /*2(Q_syn) */ #else enerL = L_mac0( enerL, core_dec_freq[n_freq], core_dec_freq[n_freq] ); /*2(Q_syn) */ #endif } L_WB_fenv0 = L_deposit_l(0); FOR (n_freq = 192; n_freq<224; n_freq++) { #ifdef BASOP_NOGLOB L_WB_fenv0 = L_mac0_o(L_WB_fenv0, core_dec_freq[n_freq],core_dec_freq[n_freq], &Overflow);/*2*Q_syn */ #else L_WB_fenv0 = L_mac0(L_WB_fenv0, core_dec_freq[n_freq],core_dec_freq[n_freq]);/*2*Q_syn */ #endif } L_WB_fenv1 = L_deposit_l(0); FOR (n_freq = 224; n_freq<256; n_freq++) { #ifdef BASOP_NOGLOB L_WB_fenv1= L_mac0_o(L_WB_fenv1, core_dec_freq[n_freq],core_dec_freq[n_freq], &Overflow);/*2*Q_syn */ #else L_WB_fenv1= L_mac0(L_WB_fenv1, core_dec_freq[n_freq],core_dec_freq[n_freq]);/*2*Q_syn */ #endif } L_tmp = sum16_32_fx( voice_factors, 4); Loading @@ -99,7 +114,11 @@ Word16 WB_BWE_gain_pred_fx( } test(); #ifdef BASOP_NOGLOB IF(GT_32(L_WB_fenv0, L_shl_o(L_WB_fenv1,1, &Overflow))) #else IF(GT_32(L_WB_fenv0, L_shl(L_WB_fenv1,1))) #endif { exp = norm_l(L_WB_fenv0); tmp = extract_h(L_shl(L_WB_fenv0, exp)); Loading @@ -110,7 +129,11 @@ Word16 WB_BWE_gain_pred_fx( alfa = s_max(tmp, 3277);/*Q15 */ L_WB_fenv0 = Mult_32_16(L_WB_fenv0, alfa);/*2*Q_syn+15-15->2*Q_syn */ } #ifdef BASOP_NOGLOB ELSE IF (GT_32(L_WB_fenv1, L_shl_o(L_WB_fenv0, 1, &Overflow))&&NE_16(coder_type,UNVOICED)) #else ELSE IF (GT_32(L_WB_fenv1, L_shl(L_WB_fenv0, 1))&&NE_16(coder_type,UNVOICED)) #endif { exp = norm_l(L_WB_fenv1); tmp = extract_h(L_shl(L_WB_fenv1, exp)); Loading @@ -137,7 +160,11 @@ Word16 WB_BWE_gain_pred_fx( enerL = L_deposit_l(1); } #ifdef BASOP_NOGLOB L_tmp = L_add_o(L_WB_fenv0, L_WB_fenv1, &Overflow); /* In 2*Q_syn */ #else L_tmp = L_add(L_WB_fenv0, L_WB_fenv1); /* In 2*Q_syn */ #endif exp = norm_l(L_tmp); tmp = extract_h(L_shl(L_tmp, exp)); /*exp = sub(exp, 30-(2*Q_syn+6)); //+6(/64) */ Loading Loading @@ -201,8 +228,11 @@ Word16 WB_BWE_gain_pred_fx( exp = norm_s(pitch); tmp = div_s(shl(1,sub(14,exp)), pitch); /*Q(29-exp-5) */ L_tmp = L_mult0(tmp1, tmp); /*29-exp-5->24-exp */ #ifdef BASOP_NOGLOB tmp = round_fx_o(L_shl_o(L_tmp, add(exp,6), &Overflow), &Overflow); /*14 */ #else tmp = round_fx(L_shl(L_tmp, add(exp,6))); /*14 */ #endif tmp1= s_max(tmp, 8192); alfa = s_min(24576, tmp1);/*Q14 */ Loading @@ -212,7 +242,11 @@ Word16 WB_BWE_gain_pred_fx( enerL = L_deposit_l(enerL_16); enerL = L_shl(enerL, 6); /*Q6 */ #ifdef BASOP_NOGLOB tmp1 = i_mult_o(3, WB_fenv[0], &Overflow);/*Q3 */ #else tmp1 = i_mult(3, WB_fenv[0]);/*Q3 */ #endif L_tmp = L_mult0(tmp1, WB_fenv[0]); /*Q6 */ test(); Loading lib_com/syn_filt_fx.c +4 −1 Original line number Diff line number Diff line Loading @@ -184,8 +184,11 @@ void E_UTIL_synthesis(const Word16 shift, const Word16 a[], const Word16 x[], Wo *-----------------------------------------------------------------------*/ mem += m; /*move16();*/ #ifdef BASOP_NOGLOB a0 = shr_o(a[0], shift, &Overflow); /* input / 2^shift */ #else a0 = shr(a[0], shift); /* input / 2^shift */ #endif /*-----------------------------------------------------------------------* * Do the filtering *-----------------------------------------------------------------------*/ Loading lib_com/tools_fx.c +4 −0 Original line number Diff line number Diff line Loading @@ -383,7 +383,11 @@ void Copy_Scale_sig_16_32( } return; } #ifdef BASOP_NOGLOB tmp = shl_o(1,exp0, &Overflow); #else tmp = shl(1,exp0); #endif FOR (i = 0; i < lg; i++) { y[i] = L_mult0(x[i], tmp); Loading lib_dec/bass_psfilter_fx.c +4 −0 Original line number Diff line number Diff line Loading @@ -660,7 +660,11 @@ void bass_psfilter_fx( FOR (i=0; i<subfr_len/2; i++) { Lener0 = L_mult0(sigPtr[i], sigPtr[i]); #ifdef BASOP_NOGLOB Lener = L_add_o(Lener, L_shr(L_mac0_o(Lener0, err[i], err[i], &Overflow), 5), &Overflow); #else Lener = L_add(Lener, L_shr(L_mac0(Lener0, err[i], err[i]), 5)); #endif } exp2 = sub(exp2, 5); } Loading Loading
lib_com/fft_fx.c +16 −3 Original line number Diff line number Diff line Loading @@ -1182,7 +1182,9 @@ static void fft5_32_16fx( Word16 T1, To, T8, Tt, T9, Ts, Te, Tp, Th, Tn,T2, T3, T4, T5, T6, T7; Word16 i0,i1,i2,i3,i4; Word32 L_tmp; #ifdef BASOP_NOGLOB_DECLARE_LOCAL Flag Overflow = 0; #endif i0 = Idx[0]; move16(); i1 = Idx[32]; Loading @@ -1208,9 +1210,15 @@ static void fft5_32_16fx( move16(); T6 = zRe[i3]; move16(); #ifdef BASOP_NOGLOB T7 = add_o(T5,T6, &Overflow); T8 = add_o(T4,T7, &Overflow); Tt = sub_o(T5,T6, &Overflow); #else T7 = add(T5,T6); T8 = add(T4,T7); Tt = sub(T5,T6); #endif /* T9 = KP559016994 * (T4 - T7); */ L_tmp = Mult_32_16(KP559016994_16FX,sub(T4,T7)); T9 = round_fx(L_tmp); Loading @@ -1234,12 +1242,17 @@ static void fft5_32_16fx( #ifdef BASOP_NOGLOB zRe[i0] = add_o(T1,T8, &Overflow); move16(); zIm[i0] = add_o(To,Tp, &Overflow); move32(); #else zRe[i0] = add(T1,T8); move16(); zIm[i0] = add(To,Tp); move32(); #endif /*T2 = KP951056516*Te + KP587785252*Th; */ L_tmp = Mult_32_16(KP951056516_16FX,Te); Loading
lib_com/swb_bwe_com_fx.c +35 −1 Original line number Diff line number Diff line Loading @@ -61,6 +61,9 @@ Word16 WB_BWE_gain_pred_fx( Word32 L_WB_fenv0, L_WB_fenv1; Word16 pitch_buf_tmp[4]; Word16 alfa = 32767; #ifdef BASOP_NOGLOB_DECLARE_LOCAL Flag Overflow = 0; #endif move16(); mode = NORMAL; Loading @@ -69,19 +72,31 @@ Word16 WB_BWE_gain_pred_fx( enerL = L_deposit_l(0); FOR (n_freq = 128; n_freq<192; n_freq++) { #ifdef BASOP_NOGLOB enerL = L_mac0_o( enerL, core_dec_freq[n_freq], core_dec_freq[n_freq], &Overflow ); /*2(Q_syn) */ #else enerL = L_mac0( enerL, core_dec_freq[n_freq], core_dec_freq[n_freq] ); /*2(Q_syn) */ #endif } L_WB_fenv0 = L_deposit_l(0); FOR (n_freq = 192; n_freq<224; n_freq++) { #ifdef BASOP_NOGLOB L_WB_fenv0 = L_mac0_o(L_WB_fenv0, core_dec_freq[n_freq],core_dec_freq[n_freq], &Overflow);/*2*Q_syn */ #else L_WB_fenv0 = L_mac0(L_WB_fenv0, core_dec_freq[n_freq],core_dec_freq[n_freq]);/*2*Q_syn */ #endif } L_WB_fenv1 = L_deposit_l(0); FOR (n_freq = 224; n_freq<256; n_freq++) { #ifdef BASOP_NOGLOB L_WB_fenv1= L_mac0_o(L_WB_fenv1, core_dec_freq[n_freq],core_dec_freq[n_freq], &Overflow);/*2*Q_syn */ #else L_WB_fenv1= L_mac0(L_WB_fenv1, core_dec_freq[n_freq],core_dec_freq[n_freq]);/*2*Q_syn */ #endif } L_tmp = sum16_32_fx( voice_factors, 4); Loading @@ -99,7 +114,11 @@ Word16 WB_BWE_gain_pred_fx( } test(); #ifdef BASOP_NOGLOB IF(GT_32(L_WB_fenv0, L_shl_o(L_WB_fenv1,1, &Overflow))) #else IF(GT_32(L_WB_fenv0, L_shl(L_WB_fenv1,1))) #endif { exp = norm_l(L_WB_fenv0); tmp = extract_h(L_shl(L_WB_fenv0, exp)); Loading @@ -110,7 +129,11 @@ Word16 WB_BWE_gain_pred_fx( alfa = s_max(tmp, 3277);/*Q15 */ L_WB_fenv0 = Mult_32_16(L_WB_fenv0, alfa);/*2*Q_syn+15-15->2*Q_syn */ } #ifdef BASOP_NOGLOB ELSE IF (GT_32(L_WB_fenv1, L_shl_o(L_WB_fenv0, 1, &Overflow))&&NE_16(coder_type,UNVOICED)) #else ELSE IF (GT_32(L_WB_fenv1, L_shl(L_WB_fenv0, 1))&&NE_16(coder_type,UNVOICED)) #endif { exp = norm_l(L_WB_fenv1); tmp = extract_h(L_shl(L_WB_fenv1, exp)); Loading @@ -137,7 +160,11 @@ Word16 WB_BWE_gain_pred_fx( enerL = L_deposit_l(1); } #ifdef BASOP_NOGLOB L_tmp = L_add_o(L_WB_fenv0, L_WB_fenv1, &Overflow); /* In 2*Q_syn */ #else L_tmp = L_add(L_WB_fenv0, L_WB_fenv1); /* In 2*Q_syn */ #endif exp = norm_l(L_tmp); tmp = extract_h(L_shl(L_tmp, exp)); /*exp = sub(exp, 30-(2*Q_syn+6)); //+6(/64) */ Loading Loading @@ -201,8 +228,11 @@ Word16 WB_BWE_gain_pred_fx( exp = norm_s(pitch); tmp = div_s(shl(1,sub(14,exp)), pitch); /*Q(29-exp-5) */ L_tmp = L_mult0(tmp1, tmp); /*29-exp-5->24-exp */ #ifdef BASOP_NOGLOB tmp = round_fx_o(L_shl_o(L_tmp, add(exp,6), &Overflow), &Overflow); /*14 */ #else tmp = round_fx(L_shl(L_tmp, add(exp,6))); /*14 */ #endif tmp1= s_max(tmp, 8192); alfa = s_min(24576, tmp1);/*Q14 */ Loading @@ -212,7 +242,11 @@ Word16 WB_BWE_gain_pred_fx( enerL = L_deposit_l(enerL_16); enerL = L_shl(enerL, 6); /*Q6 */ #ifdef BASOP_NOGLOB tmp1 = i_mult_o(3, WB_fenv[0], &Overflow);/*Q3 */ #else tmp1 = i_mult(3, WB_fenv[0]);/*Q3 */ #endif L_tmp = L_mult0(tmp1, WB_fenv[0]); /*Q6 */ test(); Loading
lib_com/syn_filt_fx.c +4 −1 Original line number Diff line number Diff line Loading @@ -184,8 +184,11 @@ void E_UTIL_synthesis(const Word16 shift, const Word16 a[], const Word16 x[], Wo *-----------------------------------------------------------------------*/ mem += m; /*move16();*/ #ifdef BASOP_NOGLOB a0 = shr_o(a[0], shift, &Overflow); /* input / 2^shift */ #else a0 = shr(a[0], shift); /* input / 2^shift */ #endif /*-----------------------------------------------------------------------* * Do the filtering *-----------------------------------------------------------------------*/ Loading
lib_com/tools_fx.c +4 −0 Original line number Diff line number Diff line Loading @@ -383,7 +383,11 @@ void Copy_Scale_sig_16_32( } return; } #ifdef BASOP_NOGLOB tmp = shl_o(1,exp0, &Overflow); #else tmp = shl(1,exp0); #endif FOR (i = 0; i < lg; i++) { y[i] = L_mult0(x[i], tmp); Loading
lib_dec/bass_psfilter_fx.c +4 −0 Original line number Diff line number Diff line Loading @@ -660,7 +660,11 @@ void bass_psfilter_fx( FOR (i=0; i<subfr_len/2; i++) { Lener0 = L_mult0(sigPtr[i], sigPtr[i]); #ifdef BASOP_NOGLOB Lener = L_add_o(Lener, L_shr(L_mac0_o(Lener0, err[i], err[i], &Overflow), 5), &Overflow); #else Lener = L_add(Lener, L_shr(L_mac0(Lener0, err[i], err[i]), 5)); #endif } exp2 = sub(exp2, 5); } Loading