Loading lib_com/tcx_ltp_fx.c +65 −29 Original line number Diff line number Diff line Loading @@ -611,6 +611,8 @@ static void tcx_ltp_synth_filter32( synth[j] = L_sub_sat( synth[j], zir[j] ); } } IF ( fade != 0) { FOR( j = 0; j < length; j++ ) { s = L_deposit_l( 0 ); Loading Loading @@ -647,6 +649,40 @@ 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 */ L_tmp2 = L_add_sat( synth[j], L_tmp2 ); /* Qx */ synth_ltp[j] = L_tmp2; /* Qx */ move16(); x0++; x1++; y0++; y1++; } } } ELSE { Copy32( synth, synth_ltp, length ); /* Qx */ } Loading Loading
lib_com/tcx_ltp_fx.c +65 −29 Original line number Diff line number Diff line Loading @@ -611,6 +611,8 @@ static void tcx_ltp_synth_filter32( synth[j] = L_sub_sat( synth[j], zir[j] ); } } IF ( fade != 0) { FOR( j = 0; j < length; j++ ) { s = L_deposit_l( 0 ); Loading Loading @@ -647,6 +649,40 @@ 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 */ L_tmp2 = L_add_sat( synth[j], L_tmp2 ); /* Qx */ synth_ltp[j] = L_tmp2; /* Qx */ move16(); x0++; x1++; y0++; y1++; } } } ELSE { Copy32( synth, synth_ltp, length ); /* Qx */ } Loading