Loading lib_com/fft_fx.c +23 −9 Original line number Diff line number Diff line Loading @@ -1264,13 +1264,21 @@ static void fft5_32_16fx( move16(); T6 = zIm[i3]; move16(); #ifdef BASOP_NOGLOB T7 = add_sat(T5,T6); Te = sub_sat(T2,T3); Tp = add_sat(T4,T7); Th = sub_sat(T5,T6); L_tmp = Mult_32_16(KP559016994_16FX,sub_sat(T4,T7)); Tn = round_fx_sat(L_tmp); #else T7 = add(T5,T6); Te = sub(T2,T3); Tp = add(T4,T7); Th = sub(T5,T6); L_tmp = Mult_32_16(KP559016994_16FX,sub(T4,T7)); Tn = round_fx(L_tmp); #endif #ifdef BASOP_NOGLOB Loading Loading @@ -1328,21 +1336,27 @@ static void fft5_32_16fx( /* T3 = KP951056516 * Tt - KP587785252 * Ts; */ L_tmp = Mult_32_16(KP951056516_16FX,Tt); L_tmp = Msub_32_16(L_tmp,KP587785252_16FX,Ts); T3 = round_fx(L_tmp); T6 = sub(To,shr(Tp,2)); T4 = add(Tn,T6); T5 = sub(T6,Tn); #ifdef BASOP_NOGLOB zIm[i2] = sub_o(T4,T2, &Overflow); T3 = round_fx_sat(L_tmp); T6 = sub_sat(To, shr(Tp, 2)); T4 = add_sat(Tn, T6); T5 = sub_sat(T6, Tn); zIm[i2] = sub_sat(T4,T2); move16(); zIm[i1] = sub_o(T5,T3, &Overflow); zIm[i1] = sub_sat(T5,T3); move16(); zIm[i3] = add_o(T2,T4, &Overflow); zIm[i3] = add_sat(T2,T4); move16(); zIm[i4] = add_o(T3,T5, &Overflow); zIm[i4] = add_sat(T3,T5); move16(); #else T3 = round_fx(L_tmp); T6 = sub(To, shr(Tp, 2)); T4 = add(Tn, T6); T5 = sub(T6, Tn); zIm[i2] = sub(T4,T2); move16(); zIm[i1] = sub(T5,T3); Loading lib_com/hq_tools_fx.c +8 −6 Original line number Diff line number Diff line Loading @@ -1840,9 +1840,7 @@ void hq_wb_nf_bwe_fx( Word16 tmp; Word32 L_tmp; Word32 mean_fx; #ifdef BASOP_NOGLOB_DECLARE_LOCAL Flag Overflow = 0; #endif IF( is_transient == 0 ) { IF( EQ_16(prev_bfi, 1)) Loading @@ -1867,7 +1865,7 @@ void hq_wb_nf_bwe_fx( tmp = div_s(16384,tmp);/*Q(15+14-exp) */ L_tmp = L_mult(tmp, bitalloc_var_fx); /*Q(29-exp+1) */ #ifdef BASOP_NOGLOB bitalloc_var_fx = round_fx_o(L_shl_o(L_tmp,exp, &Overflow), &Overflow);/*Q14 */ bitalloc_var_fx = round_fx_sat(L_shl_sat(L_tmp,exp));/*Q14 */ #else bitalloc_var_fx = round_fx(L_shl(L_tmp,exp));/*Q14 */ #endif Loading @@ -1883,7 +1881,11 @@ void hq_wb_nf_bwe_fx( { tmp = shl(sfmsize[sfm], 9);/*Q9 */ tmp = mult( rat_fx[sfm],tmp );/*Q(14+9-15=8) */ #ifdef BASOP_NOGLOB IF(GE_16(shl_sat(R[sfm],8),tmp)) #else IF(GE_16(shl(R[sfm],8),tmp)) #endif { peak_fx = 0; move16(); Loading Loading @@ -1946,7 +1948,7 @@ void hq_wb_nf_bwe_fx( L_tmp = L_mult(5,sharp_fx);/*Q15 */ L_tmp = Mult_32_16(L_tmp,tmp);/*Q15 */ #ifdef BASOP_NOGLOB step_fx = round_fx_o(L_shl_o(L_tmp,16, &Overflow), &Overflow);/*Q15 */ step_fx = round_fx_sat(L_shl_sat(L_tmp,16));/*Q15 */ #else step_fx = round_fx(L_shl(L_tmp,16));/*Q15 */ #endif Loading Loading @@ -2087,7 +2089,7 @@ void hq_wb_nf_bwe_fx( } #ifdef BASOP_NOGLOB sharp_fx = add_o(sharp_fx,shr(step_fx,1), &Overflow); sharp_fx = add_sat(sharp_fx,shr(step_fx,1)); #else sharp_fx = add(sharp_fx,shr(step_fx,1)); #endif Loading Loading
lib_com/fft_fx.c +23 −9 Original line number Diff line number Diff line Loading @@ -1264,13 +1264,21 @@ static void fft5_32_16fx( move16(); T6 = zIm[i3]; move16(); #ifdef BASOP_NOGLOB T7 = add_sat(T5,T6); Te = sub_sat(T2,T3); Tp = add_sat(T4,T7); Th = sub_sat(T5,T6); L_tmp = Mult_32_16(KP559016994_16FX,sub_sat(T4,T7)); Tn = round_fx_sat(L_tmp); #else T7 = add(T5,T6); Te = sub(T2,T3); Tp = add(T4,T7); Th = sub(T5,T6); L_tmp = Mult_32_16(KP559016994_16FX,sub(T4,T7)); Tn = round_fx(L_tmp); #endif #ifdef BASOP_NOGLOB Loading Loading @@ -1328,21 +1336,27 @@ static void fft5_32_16fx( /* T3 = KP951056516 * Tt - KP587785252 * Ts; */ L_tmp = Mult_32_16(KP951056516_16FX,Tt); L_tmp = Msub_32_16(L_tmp,KP587785252_16FX,Ts); T3 = round_fx(L_tmp); T6 = sub(To,shr(Tp,2)); T4 = add(Tn,T6); T5 = sub(T6,Tn); #ifdef BASOP_NOGLOB zIm[i2] = sub_o(T4,T2, &Overflow); T3 = round_fx_sat(L_tmp); T6 = sub_sat(To, shr(Tp, 2)); T4 = add_sat(Tn, T6); T5 = sub_sat(T6, Tn); zIm[i2] = sub_sat(T4,T2); move16(); zIm[i1] = sub_o(T5,T3, &Overflow); zIm[i1] = sub_sat(T5,T3); move16(); zIm[i3] = add_o(T2,T4, &Overflow); zIm[i3] = add_sat(T2,T4); move16(); zIm[i4] = add_o(T3,T5, &Overflow); zIm[i4] = add_sat(T3,T5); move16(); #else T3 = round_fx(L_tmp); T6 = sub(To, shr(Tp, 2)); T4 = add(Tn, T6); T5 = sub(T6, Tn); zIm[i2] = sub(T4,T2); move16(); zIm[i1] = sub(T5,T3); Loading
lib_com/hq_tools_fx.c +8 −6 Original line number Diff line number Diff line Loading @@ -1840,9 +1840,7 @@ void hq_wb_nf_bwe_fx( Word16 tmp; Word32 L_tmp; Word32 mean_fx; #ifdef BASOP_NOGLOB_DECLARE_LOCAL Flag Overflow = 0; #endif IF( is_transient == 0 ) { IF( EQ_16(prev_bfi, 1)) Loading @@ -1867,7 +1865,7 @@ void hq_wb_nf_bwe_fx( tmp = div_s(16384,tmp);/*Q(15+14-exp) */ L_tmp = L_mult(tmp, bitalloc_var_fx); /*Q(29-exp+1) */ #ifdef BASOP_NOGLOB bitalloc_var_fx = round_fx_o(L_shl_o(L_tmp,exp, &Overflow), &Overflow);/*Q14 */ bitalloc_var_fx = round_fx_sat(L_shl_sat(L_tmp,exp));/*Q14 */ #else bitalloc_var_fx = round_fx(L_shl(L_tmp,exp));/*Q14 */ #endif Loading @@ -1883,7 +1881,11 @@ void hq_wb_nf_bwe_fx( { tmp = shl(sfmsize[sfm], 9);/*Q9 */ tmp = mult( rat_fx[sfm],tmp );/*Q(14+9-15=8) */ #ifdef BASOP_NOGLOB IF(GE_16(shl_sat(R[sfm],8),tmp)) #else IF(GE_16(shl(R[sfm],8),tmp)) #endif { peak_fx = 0; move16(); Loading Loading @@ -1946,7 +1948,7 @@ void hq_wb_nf_bwe_fx( L_tmp = L_mult(5,sharp_fx);/*Q15 */ L_tmp = Mult_32_16(L_tmp,tmp);/*Q15 */ #ifdef BASOP_NOGLOB step_fx = round_fx_o(L_shl_o(L_tmp,16, &Overflow), &Overflow);/*Q15 */ step_fx = round_fx_sat(L_shl_sat(L_tmp,16));/*Q15 */ #else step_fx = round_fx(L_shl(L_tmp,16));/*Q15 */ #endif Loading Loading @@ -2087,7 +2089,7 @@ void hq_wb_nf_bwe_fx( } #ifdef BASOP_NOGLOB sharp_fx = add_o(sharp_fx,shr(step_fx,1), &Overflow); sharp_fx = add_sat(sharp_fx,shr(step_fx,1)); #else sharp_fx = add(sharp_fx,shr(step_fx,1)); #endif Loading