Loading lib_dec/ivas_tcx_core_dec.c +22 −7 Original line number Diff line number Diff line Loading @@ -316,7 +316,7 @@ void stereo_tcx_core_dec_fx( Word32 L_tmp, mod; /*LPC*/ Word16 lsf_fx[( NB_DIV + 1 ) * M], lsp_fx[( NB_DIV + 1 ) * M], lspmid_fx[M], lsfmid_fx[M]; Word16 lsf_fx[( NB_DIV + 1 ) * M], lsp_fx[( NB_DIV + 1 ) * M], lspmid_fx[M], lsfmid_fx[M], lsf_tmp_fx[( NB_DIV + 1 ) * M]; Word16 lspnew_uw_fx[NB_DIV * M], lsfnew_uw_fx[NB_DIV * M]; Word16 Aq_fx[( NB_SUBFR16k + 1 ) * ( M + 1 )]; Word16 pit_gain_fx[NB_SUBFR16k]; Loading Loading @@ -532,15 +532,30 @@ void stereo_tcx_core_dec_fx( Copy( st->lspold_uw, lsp_fx, M ); /* Q15 */ Copy( st->lsfold_uw, lsf_fx, M ); /* Q2.56 */ Copy( st->lsfold_uw, lsf_tmp_fx, M ); /* Q2.56 */ Word16 tmp; Word16 sr_core_ratio = BASOP_Util_Divide3232_Scale( st->sr_core, INT_FS_12k8, &tmp ); FOR( k = 0; k < st->numlpc; k++ ) { Copy( &lsfnew_uw_fx[k * M], &lsf_fx[( k + 1 ) * M], M ); /* Q2.56 */ Copy( &lsfnew_uw_fx[k * M], &lsf_tmp_fx[( k + 1 ) * M], M ); /* Q2.56 */ lsf2lsp_fx( &lsf_fx[( k + 1 ) * M], &lsp_fx[( k + 1 ) * M], M, st->sr_core ); /* Q2.56 */ lsf2lsp_fx( st->lsf_q_cng, st->lsp_q_cng, M, st->sr_core ); /* Q2.56 */ v_multc_fixed_16_16( &lsf_tmp_fx[( k + 1 ) * M], sr_core_ratio, &lsf_tmp_fx[( k + 1 ) * M], M ); Scale_sig( &lsf_tmp_fx[( k + 1 ) * M], M, tmp ); test(); IF( !st->lpcQuantization && EQ_32( st->sr_core, INT_FS_16k_FX ) ) { lsf2lsp_fx( &lsf_tmp_fx[( k + 1 ) * M], &lsp_fx[( k + 1 ) * M], M, st->sr_core ); } ELSE { lsf2lsp_fx( &lsf_fx[( k + 1 ) * M], &lsp_fx[( k + 1 ) * M], M, st->sr_core ); } lsf2lsp_fx( st->lsf_q_cng, st->lsp_q_cng, M, st->sr_core ); Copy( &lsp_fx[( k + 1 ) * M], &lspnew_uw_fx[k * M], M ); /* Q2.56 */ Copy( &lsp_fx[( k + 1 ) * M], &lspnew_uw_fx[k * M], M ); /* Q15 */ } } Loading Loading
lib_dec/ivas_tcx_core_dec.c +22 −7 Original line number Diff line number Diff line Loading @@ -316,7 +316,7 @@ void stereo_tcx_core_dec_fx( Word32 L_tmp, mod; /*LPC*/ Word16 lsf_fx[( NB_DIV + 1 ) * M], lsp_fx[( NB_DIV + 1 ) * M], lspmid_fx[M], lsfmid_fx[M]; Word16 lsf_fx[( NB_DIV + 1 ) * M], lsp_fx[( NB_DIV + 1 ) * M], lspmid_fx[M], lsfmid_fx[M], lsf_tmp_fx[( NB_DIV + 1 ) * M]; Word16 lspnew_uw_fx[NB_DIV * M], lsfnew_uw_fx[NB_DIV * M]; Word16 Aq_fx[( NB_SUBFR16k + 1 ) * ( M + 1 )]; Word16 pit_gain_fx[NB_SUBFR16k]; Loading Loading @@ -532,15 +532,30 @@ void stereo_tcx_core_dec_fx( Copy( st->lspold_uw, lsp_fx, M ); /* Q15 */ Copy( st->lsfold_uw, lsf_fx, M ); /* Q2.56 */ Copy( st->lsfold_uw, lsf_tmp_fx, M ); /* Q2.56 */ Word16 tmp; Word16 sr_core_ratio = BASOP_Util_Divide3232_Scale( st->sr_core, INT_FS_12k8, &tmp ); FOR( k = 0; k < st->numlpc; k++ ) { Copy( &lsfnew_uw_fx[k * M], &lsf_fx[( k + 1 ) * M], M ); /* Q2.56 */ Copy( &lsfnew_uw_fx[k * M], &lsf_tmp_fx[( k + 1 ) * M], M ); /* Q2.56 */ lsf2lsp_fx( &lsf_fx[( k + 1 ) * M], &lsp_fx[( k + 1 ) * M], M, st->sr_core ); /* Q2.56 */ lsf2lsp_fx( st->lsf_q_cng, st->lsp_q_cng, M, st->sr_core ); /* Q2.56 */ v_multc_fixed_16_16( &lsf_tmp_fx[( k + 1 ) * M], sr_core_ratio, &lsf_tmp_fx[( k + 1 ) * M], M ); Scale_sig( &lsf_tmp_fx[( k + 1 ) * M], M, tmp ); test(); IF( !st->lpcQuantization && EQ_32( st->sr_core, INT_FS_16k_FX ) ) { lsf2lsp_fx( &lsf_tmp_fx[( k + 1 ) * M], &lsp_fx[( k + 1 ) * M], M, st->sr_core ); } ELSE { lsf2lsp_fx( &lsf_fx[( k + 1 ) * M], &lsp_fx[( k + 1 ) * M], M, st->sr_core ); } lsf2lsp_fx( st->lsf_q_cng, st->lsp_q_cng, M, st->sr_core ); Copy( &lsp_fx[( k + 1 ) * M], &lspnew_uw_fx[k * M], M ); /* Q2.56 */ Copy( &lsp_fx[( k + 1 ) * M], &lspnew_uw_fx[k * M], M ); /* Q15 */ } } Loading