Loading lib_com/tcx_ltp_fx.c +46 −0 Original line number Diff line number Diff line Loading @@ -754,6 +754,8 @@ static void tcx_ltp_synth_filter32( if ( fade < 0 ) step = negate( step ); } #ifdef OPT_TCXLTP_FILTER_LOOP IF( fade != 0 ) { IF( zir != NULL ) Loading Loading @@ -900,6 +902,50 @@ static void tcx_ltp_synth_filter32( } } } #else FOR( j = 0; j < length; j++ ) { s = L_deposit_l( 0 ); s2 = L_deposit_l( 0 ); k = 0; move16(); FOR( i = 0; i < L; i++ ) { s = Madd_32_16_r( Madd_32_16_r( s, x0[i], w0[k] ), x1[-i], w1[k] ); /* Qx */ s2 = Madd_32_16_r( Madd_32_16_r( s2, y0[i], v0[k] ), y1[-i], v1[k] ); /* Qx */ k = k + pitch_res; } /* s2 *= ALPHA; normal: synth_ltp[j] = synth[j] - gain * s2 + gain * s; zir: synth_ltp[j] = synth[j] - gain * s2 + gain * s - zir[j]; fade-in/out: synth_ltp[j] = synth[j] - alpha * gain * s2 + alpha * gain * s; */ L_tmp = L_sub_sat( s, Mpy_32_16_r( s2, ALPHA ) ); /* Qx */ L_tmp2 = Mpy_32_16_r( L_tmp, gain ); /* Qx */ IF( fade != 0 ) L_tmp2 = Mpy_32_16_r( L_tmp2, alpha ); /* Qx */ L_tmp2 = L_add_sat( synth[j], L_tmp2 ); /* Qx */ if ( zir != NULL ) { L_tmp2 = L_sub_sat( L_tmp2, zir[j] ); /* Qx */ } synth_ltp[j] = L_tmp2; /* Qx */ move16(); BASOP_SATURATE_WARNING_OFF_EVS; if ( fade != 0 ) { alpha = add_sat( alpha, step ); } BASOP_SATURATE_WARNING_ON_EVS; x0++; x1++; y0++; y1++; } #endif } ELSE { Loading Loading
lib_com/tcx_ltp_fx.c +46 −0 Original line number Diff line number Diff line Loading @@ -754,6 +754,8 @@ static void tcx_ltp_synth_filter32( if ( fade < 0 ) step = negate( step ); } #ifdef OPT_TCXLTP_FILTER_LOOP IF( fade != 0 ) { IF( zir != NULL ) Loading Loading @@ -900,6 +902,50 @@ static void tcx_ltp_synth_filter32( } } } #else FOR( j = 0; j < length; j++ ) { s = L_deposit_l( 0 ); s2 = L_deposit_l( 0 ); k = 0; move16(); FOR( i = 0; i < L; i++ ) { s = Madd_32_16_r( Madd_32_16_r( s, x0[i], w0[k] ), x1[-i], w1[k] ); /* Qx */ s2 = Madd_32_16_r( Madd_32_16_r( s2, y0[i], v0[k] ), y1[-i], v1[k] ); /* Qx */ k = k + pitch_res; } /* s2 *= ALPHA; normal: synth_ltp[j] = synth[j] - gain * s2 + gain * s; zir: synth_ltp[j] = synth[j] - gain * s2 + gain * s - zir[j]; fade-in/out: synth_ltp[j] = synth[j] - alpha * gain * s2 + alpha * gain * s; */ L_tmp = L_sub_sat( s, Mpy_32_16_r( s2, ALPHA ) ); /* Qx */ L_tmp2 = Mpy_32_16_r( L_tmp, gain ); /* Qx */ IF( fade != 0 ) L_tmp2 = Mpy_32_16_r( L_tmp2, alpha ); /* Qx */ L_tmp2 = L_add_sat( synth[j], L_tmp2 ); /* Qx */ if ( zir != NULL ) { L_tmp2 = L_sub_sat( L_tmp2, zir[j] ); /* Qx */ } synth_ltp[j] = L_tmp2; /* Qx */ move16(); BASOP_SATURATE_WARNING_OFF_EVS; if ( fade != 0 ) { alpha = add_sat( alpha, step ); } BASOP_SATURATE_WARNING_ON_EVS; x0++; x1++; y0++; y1++; } #endif } ELSE { Loading