| Index: silk/fixed/LTP_analysis_filter_FIX.c
|
| diff --git a/silk/fixed/LTP_analysis_filter_FIX.c b/silk/fixed/LTP_analysis_filter_FIX.c
|
| index a94190808e905e70124502e793270806837b93bc..5574e7069fe8a3f0c62b6841c663f1c7793de627 100644
|
| --- a/silk/fixed/LTP_analysis_filter_FIX.c
|
| +++ b/silk/fixed/LTP_analysis_filter_FIX.c
|
| @@ -45,7 +45,7 @@ void silk_LTP_analysis_filter_FIX(
|
| const opus_int16 *x_ptr, *x_lag_ptr;
|
| opus_int16 Btmp_Q14[ LTP_ORDER ];
|
| opus_int16 *LTP_res_ptr;
|
| - opus_int k, i, j;
|
| + opus_int k, i;
|
| opus_int32 LTP_est;
|
|
|
| x_ptr = x;
|
| @@ -53,9 +53,12 @@ void silk_LTP_analysis_filter_FIX(
|
| for( k = 0; k < nb_subfr; k++ ) {
|
|
|
| x_lag_ptr = x_ptr - pitchL[ k ];
|
| - for( i = 0; i < LTP_ORDER; i++ ) {
|
| - Btmp_Q14[ i ] = LTPCoef_Q14[ k * LTP_ORDER + i ];
|
| - }
|
| +
|
| + Btmp_Q14[ 0 ] = LTPCoef_Q14[ k * LTP_ORDER ];
|
| + Btmp_Q14[ 1 ] = LTPCoef_Q14[ k * LTP_ORDER + 1 ];
|
| + Btmp_Q14[ 2 ] = LTPCoef_Q14[ k * LTP_ORDER + 2 ];
|
| + Btmp_Q14[ 3 ] = LTPCoef_Q14[ k * LTP_ORDER + 3 ];
|
| + Btmp_Q14[ 4 ] = LTPCoef_Q14[ k * LTP_ORDER + 4 ];
|
|
|
| /* LTP analysis FIR filter */
|
| for( i = 0; i < subfr_length + pre_length; i++ ) {
|
| @@ -63,9 +66,11 @@ void silk_LTP_analysis_filter_FIX(
|
|
|
| /* Long-term prediction */
|
| LTP_est = silk_SMULBB( x_lag_ptr[ LTP_ORDER / 2 ], Btmp_Q14[ 0 ] );
|
| - for( j = 1; j < LTP_ORDER; j++ ) {
|
| - LTP_est = silk_SMLABB_ovflw( LTP_est, x_lag_ptr[ LTP_ORDER / 2 - j ], Btmp_Q14[ j ] );
|
| - }
|
| + LTP_est = silk_SMLABB_ovflw( LTP_est, x_lag_ptr[ 1 ], Btmp_Q14[ 1 ] );
|
| + LTP_est = silk_SMLABB_ovflw( LTP_est, x_lag_ptr[ 0 ], Btmp_Q14[ 2 ] );
|
| + LTP_est = silk_SMLABB_ovflw( LTP_est, x_lag_ptr[ -1 ], Btmp_Q14[ 3 ] );
|
| + LTP_est = silk_SMLABB_ovflw( LTP_est, x_lag_ptr[ -2 ], Btmp_Q14[ 4 ] );
|
| +
|
| LTP_est = silk_RSHIFT_ROUND( LTP_est, 14 ); /* round and -> Q0*/
|
|
|
| /* Subtract long-term prediction */
|
|
|