diff options
author | Linfeng Zhang <linfengz@google.com> | 2016-07-13 17:25:49 -0700 |
---|---|---|
committer | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2017-02-14 23:57:15 -0500 |
commit | 95d4c9f960c9469961781c923ccfdb8c3eba0562 (patch) | |
tree | 293fb4a4794c6dc74d7ed7381a543e88f741a8c9 /silk/fixed | |
parent | 68688651a4c3ed1fc4345c1bfb3932658e51f0b4 (diff) | |
download | opus-95d4c9f960c9469961781c923ccfdb8c3eba0562.tar.gz |
Optimize silk_LPC_inverse_pred_gain() for ARM NEON
The optimization is bit exact with C function.
Change-Id: Ib3bdc26a5a4ebe02e7f24be85104e8e9a2a9a738
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
Diffstat (limited to 'silk/fixed')
-rw-r--r-- | silk/fixed/find_LPC_FIX.c | 2 | ||||
-rw-r--r-- | silk/fixed/mips/noise_shape_analysis_FIX_mipsr1.h | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/silk/fixed/find_LPC_FIX.c b/silk/fixed/find_LPC_FIX.c index e11cdc86..e55b63ac 100644 --- a/silk/fixed/find_LPC_FIX.c +++ b/silk/fixed/find_LPC_FIX.c @@ -92,7 +92,7 @@ void silk_find_LPC_FIX( silk_interpolate( NLSF0_Q15, psEncC->prev_NLSFq_Q15, NLSF_Q15, k, psEncC->predictLPCOrder ); /* Convert to LPC for residual energy evaluation */ - silk_NLSF2A( a_tmp_Q12, NLSF0_Q15, psEncC->predictLPCOrder ); + silk_NLSF2A( a_tmp_Q12, NLSF0_Q15, psEncC->predictLPCOrder, psEncC->arch ); /* Calculate residual energy with NLSF interpolation */ silk_LPC_analysis_filter( LPC_res, x, a_tmp_Q12, 2 * subfr_length, psEncC->predictLPCOrder, psEncC->arch ); diff --git a/silk/fixed/mips/noise_shape_analysis_FIX_mipsr1.h b/silk/fixed/mips/noise_shape_analysis_FIX_mipsr1.h index c30481e4..f9b5473f 100644 --- a/silk/fixed/mips/noise_shape_analysis_FIX_mipsr1.h +++ b/silk/fixed/mips/noise_shape_analysis_FIX_mipsr1.h @@ -224,8 +224,8 @@ void silk_noise_shape_analysis_FIX( silk_bwexpander_32( AR1_Q24, psEnc->sCmn.shapingLPCOrder, BWExp1_Q16 ); /* Ratio of prediction gains, in energy domain */ - pre_nrg_Q30 = silk_LPC_inverse_pred_gain_Q24( AR2_Q24, psEnc->sCmn.shapingLPCOrder ); - nrg = silk_LPC_inverse_pred_gain_Q24( AR1_Q24, psEnc->sCmn.shapingLPCOrder ); + pre_nrg_Q30 = silk_LPC_inverse_pred_gain_Q24( AR2_Q24, psEnc->sCmn.shapingLPCOrder, arch ); + nrg = silk_LPC_inverse_pred_gain_Q24( AR1_Q24, psEnc->sCmn.shapingLPCOrder, arch ); /*psEncCtrl->GainsPre[ k ] = 1.0f - 0.7f * ( 1.0f - pre_nrg / nrg ) = 0.3f + 0.7f * pre_nrg / nrg;*/ pre_nrg_Q30 = silk_LSHIFT32( silk_SMULWB( pre_nrg_Q30, SILK_FIX_CONST( 0.7, 15 ) ), 1 ); |