Loading lib_enc/ivas_mct_core_enc.c +14 −10 Original line number Diff line number Diff line Loading @@ -334,8 +334,7 @@ void ivas_mct_core_enc( for ( ch = 0; ch < nChannels; ch++ ) { if ( sts[ch]->mct_chan_mode == MCT_CHAN_MODE_IGNORE ) if ( sts[ch]->mct_chan_mode == MCT_CHAN_MODE_IGNORE ) { continue; } Loading @@ -359,6 +358,10 @@ void ivas_mct_core_enc( } else { #ifdef FIX_483b if ( hMCT->currBlockDataCnt > 0 ) #endif { /* power spectrum: MDCT^2 + MDST^2 */ powerSpecMsInv[ch][n][0] = inv_spectrum[ch][n][0] * inv_spectrum[ch][n][0]; Loading @@ -369,6 +372,7 @@ void ivas_mct_core_enc( } powerSpecMsInv[ch][n][L_subframeTCX - 1] = inv_spectrum[ch][n][L_subframeTCX - 1] * inv_spectrum[ch][n][L_subframeTCX - 1]; } /* power spectrum: MDCT^2 + MDST^2 */ powerSpec[ch][n * L_subframeTCX] = sts[ch]->hTcxEnc->spectrum[n][0] * sts[ch]->hTcxEnc->spectrum[n][0]; Loading lib_enc/ivas_mct_enc_mct.c 100644 → 100755 +3 −0 Original line number Diff line number Diff line Loading @@ -700,6 +700,9 @@ void apply_MCT_enc( { v_multc( sts[ch]->hTcxEnc->spectrum[k], qratio, sts[ch]->hTcxEnc->spectrum[k], L_subframeTCX ); v_multc( mdst_spectrum[ch][k], qratio, mdst_spectrum[ch][k], L_subframeTCX ); #ifdef FIX_483b set_zero( inv_spectrum[ch][k], L_subframeTCX ); #endif } hMCT->mc_global_ild[ch] = 0; } Loading lib_enc/ivas_stereo_mdct_core_enc.c 100644 → 100755 +19 −6 Original line number Diff line number Diff line Loading @@ -223,6 +223,10 @@ void stereo_mdct_core_enc( inv_spectrum[ch][1] = quantized_spectrum[ch][1]; mdst_spectrum[ch][0] = mdst_spectrum_long[ch]; mdst_spectrum[ch][1] = mdst_spectrum_long[ch] + N_TCX10_MAX; #ifdef FIX_483b sts[ch]->hTcxEnc->tns_ms_flag[0] = 0; sts[ch]->hTcxEnc->tns_ms_flag[1] = 0; #endif } Loading Loading @@ -275,7 +279,11 @@ void stereo_mdct_core_enc( for ( n = 0; n < nSubframes; n++ ) { #ifdef FIX_483b if ( sts[ch]->hTcxEnc->tns_ms_flag[n] ) #else if ( !sts[ch]->hTcxEnc->fUseTns[n] ) #endif { /* power spectrum: MDCT^2 + MDST^2 */ for ( i = 0; i < L_subframeTCX; i++ ) Loading @@ -286,6 +294,10 @@ void stereo_mdct_core_enc( } else { #ifdef FIX_483b if ( hStereoMdct->mdct_stereo_mode[n] != SMDCT_DUAL_MONO ) #endif { /* power spectrum: MDCT^2 + MDST^2 */ powerSpecMsInv[ch][n][0] = inv_spectrum[ch][n][0] * inv_spectrum[ch][n][0]; for ( i = 1; i < L_subframeTCX - 1; i++ ) Loading @@ -294,6 +306,7 @@ void stereo_mdct_core_enc( powerSpecMsInv[ch][n][i] = mdst * mdst + inv_spectrum[ch][n][i] * inv_spectrum[ch][n][i]; } powerSpecMsInv[ch][n][L_subframeTCX - 1] = inv_spectrum[ch][n][L_subframeTCX - 1] * inv_spectrum[ch][n][L_subframeTCX - 1]; } /* power spectrum: MDCT^2 + MDST^2 */ powerSpec[ch][n * L_subframeTCX] = sts[ch]->hTcxEnc->spectrum[n][0] * sts[ch]->hTcxEnc->spectrum[n][0]; Loading lib_enc/ivas_stereo_mdct_stereo_enc.c +14 −0 Original line number Diff line number Diff line Loading @@ -563,7 +563,12 @@ void ms_inv_mask_processing( { int16_t sfb; STEREO_MDCT_BAND_PARAMETERS *sfbConf; #ifdef FIX_483b int16_t nSubframes, L_subframeTCX; nSubframes = ( sts[0]->hTcxEnc->tcxMode == TCX_20 ) ? 1 : NB_DIV; L_subframeTCX = sts[0]->hTcxEnc->L_frameTCX / nSubframes; #endif sfbConf = ( sts[0]->core == TCX_20_CORE ) ? &hStereoMdct->stbParamsTCX20 : &hStereoMdct->stbParamsTCX10; if ( sts[0]->last_core == ACELP_CORE ) Loading @@ -588,6 +593,15 @@ void ms_inv_mask_processing( } } #ifdef FIX_483b /* set rest of inverse spectrum to zero */ if ( L_subframeTCX > sfbConf->sfbOffset[maxSfb] ) { set_zero( &x_inv_0[sfbConf->sfbOffset[maxSfb]], L_subframeTCX - sfbConf->sfbOffset[maxSfb] ); set_zero( &x_inv_1[sfbConf->sfbOffset[maxSfb]], L_subframeTCX - sfbConf->sfbOffset[maxSfb] ); } #endif return; } Loading Loading
lib_enc/ivas_mct_core_enc.c +14 −10 Original line number Diff line number Diff line Loading @@ -334,8 +334,7 @@ void ivas_mct_core_enc( for ( ch = 0; ch < nChannels; ch++ ) { if ( sts[ch]->mct_chan_mode == MCT_CHAN_MODE_IGNORE ) if ( sts[ch]->mct_chan_mode == MCT_CHAN_MODE_IGNORE ) { continue; } Loading @@ -359,6 +358,10 @@ void ivas_mct_core_enc( } else { #ifdef FIX_483b if ( hMCT->currBlockDataCnt > 0 ) #endif { /* power spectrum: MDCT^2 + MDST^2 */ powerSpecMsInv[ch][n][0] = inv_spectrum[ch][n][0] * inv_spectrum[ch][n][0]; Loading @@ -369,6 +372,7 @@ void ivas_mct_core_enc( } powerSpecMsInv[ch][n][L_subframeTCX - 1] = inv_spectrum[ch][n][L_subframeTCX - 1] * inv_spectrum[ch][n][L_subframeTCX - 1]; } /* power spectrum: MDCT^2 + MDST^2 */ powerSpec[ch][n * L_subframeTCX] = sts[ch]->hTcxEnc->spectrum[n][0] * sts[ch]->hTcxEnc->spectrum[n][0]; Loading
lib_enc/ivas_mct_enc_mct.c 100644 → 100755 +3 −0 Original line number Diff line number Diff line Loading @@ -700,6 +700,9 @@ void apply_MCT_enc( { v_multc( sts[ch]->hTcxEnc->spectrum[k], qratio, sts[ch]->hTcxEnc->spectrum[k], L_subframeTCX ); v_multc( mdst_spectrum[ch][k], qratio, mdst_spectrum[ch][k], L_subframeTCX ); #ifdef FIX_483b set_zero( inv_spectrum[ch][k], L_subframeTCX ); #endif } hMCT->mc_global_ild[ch] = 0; } Loading
lib_enc/ivas_stereo_mdct_core_enc.c 100644 → 100755 +19 −6 Original line number Diff line number Diff line Loading @@ -223,6 +223,10 @@ void stereo_mdct_core_enc( inv_spectrum[ch][1] = quantized_spectrum[ch][1]; mdst_spectrum[ch][0] = mdst_spectrum_long[ch]; mdst_spectrum[ch][1] = mdst_spectrum_long[ch] + N_TCX10_MAX; #ifdef FIX_483b sts[ch]->hTcxEnc->tns_ms_flag[0] = 0; sts[ch]->hTcxEnc->tns_ms_flag[1] = 0; #endif } Loading Loading @@ -275,7 +279,11 @@ void stereo_mdct_core_enc( for ( n = 0; n < nSubframes; n++ ) { #ifdef FIX_483b if ( sts[ch]->hTcxEnc->tns_ms_flag[n] ) #else if ( !sts[ch]->hTcxEnc->fUseTns[n] ) #endif { /* power spectrum: MDCT^2 + MDST^2 */ for ( i = 0; i < L_subframeTCX; i++ ) Loading @@ -286,6 +294,10 @@ void stereo_mdct_core_enc( } else { #ifdef FIX_483b if ( hStereoMdct->mdct_stereo_mode[n] != SMDCT_DUAL_MONO ) #endif { /* power spectrum: MDCT^2 + MDST^2 */ powerSpecMsInv[ch][n][0] = inv_spectrum[ch][n][0] * inv_spectrum[ch][n][0]; for ( i = 1; i < L_subframeTCX - 1; i++ ) Loading @@ -294,6 +306,7 @@ void stereo_mdct_core_enc( powerSpecMsInv[ch][n][i] = mdst * mdst + inv_spectrum[ch][n][i] * inv_spectrum[ch][n][i]; } powerSpecMsInv[ch][n][L_subframeTCX - 1] = inv_spectrum[ch][n][L_subframeTCX - 1] * inv_spectrum[ch][n][L_subframeTCX - 1]; } /* power spectrum: MDCT^2 + MDST^2 */ powerSpec[ch][n * L_subframeTCX] = sts[ch]->hTcxEnc->spectrum[n][0] * sts[ch]->hTcxEnc->spectrum[n][0]; Loading
lib_enc/ivas_stereo_mdct_stereo_enc.c +14 −0 Original line number Diff line number Diff line Loading @@ -563,7 +563,12 @@ void ms_inv_mask_processing( { int16_t sfb; STEREO_MDCT_BAND_PARAMETERS *sfbConf; #ifdef FIX_483b int16_t nSubframes, L_subframeTCX; nSubframes = ( sts[0]->hTcxEnc->tcxMode == TCX_20 ) ? 1 : NB_DIV; L_subframeTCX = sts[0]->hTcxEnc->L_frameTCX / nSubframes; #endif sfbConf = ( sts[0]->core == TCX_20_CORE ) ? &hStereoMdct->stbParamsTCX20 : &hStereoMdct->stbParamsTCX10; if ( sts[0]->last_core == ACELP_CORE ) Loading @@ -588,6 +593,15 @@ void ms_inv_mask_processing( } } #ifdef FIX_483b /* set rest of inverse spectrum to zero */ if ( L_subframeTCX > sfbConf->sfbOffset[maxSfb] ) { set_zero( &x_inv_0[sfbConf->sfbOffset[maxSfb]], L_subframeTCX - sfbConf->sfbOffset[maxSfb] ); set_zero( &x_inv_1[sfbConf->sfbOffset[maxSfb]], L_subframeTCX - sfbConf->sfbOffset[maxSfb] ); } #endif return; } Loading