Loading lib_enc/ext_sig_ana_fx.c +2 −0 Original line number Diff line number Diff line Loading @@ -1413,6 +1413,8 @@ void core_signal_analysis_high_bitrate_ivas_fx( ProcessIGF_ivas_fx( st, N_MAX + L_MDCT_OVLP_MAX, hTcxEnc->spectrum_fx[frameno], hTcxEnc->spectrum_fx[frameno], &q_spectrum, powerSpec, powerSpec_e, transform_type[frameno] == TCX_20, frameno, 0, vad_hover_flag ); } } st->hTcxEnc->spectrum_length = L_subframe; move16(); } Loading lib_enc/ivas_mdct_core_enc_fx.c +4 −12 Original line number Diff line number Diff line Loading @@ -1256,9 +1256,8 @@ void ivas_mdct_core_whitening_enc_fx( FOR( ch = 0; ch < CPE_CHANNELS; ch++ ) { st = sts[ch]; init_tcx_enc_info_fx( st, &L_subframe, &L_subframeTCX, &tcx_subframe_coded_lines ); st->hTcxEnc->spectrum_length = L_subframeTCX; st->hTcxEnc->spectrum_length = st->hTcxEnc->L_frameTCX; move16(); IF( GE_16( add( imult1616( hCPE->cpe_id, CPE_CHANNELS ), ch ), nChannels ) ) { CONTINUE; Loading Loading @@ -1288,15 +1287,8 @@ void ivas_mdct_core_whitening_enc_fx( #endif core_signal_analysis_high_bitrate_ivas_fx( new_samples_fx[ch] + L_INP_MEM, T_op[ch], NULL, NULL, st, tnsSize[ch], tnsBits[ch], param_core[ch], <pBits[ch], windowedSignal_fx[ch], st->L_frame, st->hTcxEnc->L_frameTCX, hCPE->last_element_mode, 0, mdst_spectrum_fx[ch], mdst_spectrum_e[ch], &Q_new, &q_windowedSignal[ch] ); #ifdef FIX_1464_NO_SINGLE_SPEC_Q FOR( n = 0; n < nSubframes; n++ ) { lshift = sub( L_norm_arr( mdst_spectrum_fx[ch][n], l_frame ), 2 ); Scale_sig32( mdst_spectrum_fx[ch][n], l_frame, lshift ); mdst_spectrum_e[ch][n] = sub( mdst_spectrum_e[ch][n], lshift); } #endif st->hTcxEnc->spectrum_length = s_max( st->hTcxEnc->spectrum_length, st->hTcxEnc->L_frameTCX ); move16(); /* BWD in MDCT domain */ IF( NE_16( st->hTcxCfg->tcx_last_overlap_mode, TRANSITION_OVERLAP ) ) { Loading lib_enc/ivas_stereo_mdct_core_enc_fx.c +4 −7 Original line number Diff line number Diff line Loading @@ -371,14 +371,11 @@ void stereo_mdct_core_enc_fx( move16(); FOR( ch = 0; ch < CPE_CHANNELS; ch++ ) { IF( EQ_16( sts[ch]->hTcxEnc->tcxMode, TCX_20 ) ) { length = sts[ch]->hTcxEnc->L_frameTCX; length = sts[ch]->hTcxEnc->spectrum_length; move16(); } ELSE IF( NE_16( sts[ch]->hTcxEnc->tcxMode, TCX_20 ) ) { length = shr( sts[ch]->hTcxEnc->L_frameTCX, 1 ); length = shr( length, 1 ); } FOR( k = 0; k <= ( ( sts[ch]->core == TCX_20_CORE ) ? 1 : NB_DIV ) - 1; k++ ) { Loading lib_enc/stat_enc.h +1 −1 Original line number Diff line number Diff line Loading @@ -1209,7 +1209,7 @@ typedef struct tcx_enc_structure Word32 spectrum_long_fx[N_MAX]; /* MDCT output for a long block. Points to spectrum */ Word16 spectrum_long_e; /* MDCT output for a long block. Points to spectrum */ Word16 q_spectrum_long_fx; Word16 spectrum_length; /* corresponds to L_frameTCX, used for scaling of MDCT/MDST buffers */ Word16 spectrum_length; } TCX_ENC_DATA, *TCX_ENC_HANDLE; typedef struct TransientDetection Loading Loading
lib_enc/ext_sig_ana_fx.c +2 −0 Original line number Diff line number Diff line Loading @@ -1413,6 +1413,8 @@ void core_signal_analysis_high_bitrate_ivas_fx( ProcessIGF_ivas_fx( st, N_MAX + L_MDCT_OVLP_MAX, hTcxEnc->spectrum_fx[frameno], hTcxEnc->spectrum_fx[frameno], &q_spectrum, powerSpec, powerSpec_e, transform_type[frameno] == TCX_20, frameno, 0, vad_hover_flag ); } } st->hTcxEnc->spectrum_length = L_subframe; move16(); } Loading
lib_enc/ivas_mdct_core_enc_fx.c +4 −12 Original line number Diff line number Diff line Loading @@ -1256,9 +1256,8 @@ void ivas_mdct_core_whitening_enc_fx( FOR( ch = 0; ch < CPE_CHANNELS; ch++ ) { st = sts[ch]; init_tcx_enc_info_fx( st, &L_subframe, &L_subframeTCX, &tcx_subframe_coded_lines ); st->hTcxEnc->spectrum_length = L_subframeTCX; st->hTcxEnc->spectrum_length = st->hTcxEnc->L_frameTCX; move16(); IF( GE_16( add( imult1616( hCPE->cpe_id, CPE_CHANNELS ), ch ), nChannels ) ) { CONTINUE; Loading Loading @@ -1288,15 +1287,8 @@ void ivas_mdct_core_whitening_enc_fx( #endif core_signal_analysis_high_bitrate_ivas_fx( new_samples_fx[ch] + L_INP_MEM, T_op[ch], NULL, NULL, st, tnsSize[ch], tnsBits[ch], param_core[ch], <pBits[ch], windowedSignal_fx[ch], st->L_frame, st->hTcxEnc->L_frameTCX, hCPE->last_element_mode, 0, mdst_spectrum_fx[ch], mdst_spectrum_e[ch], &Q_new, &q_windowedSignal[ch] ); #ifdef FIX_1464_NO_SINGLE_SPEC_Q FOR( n = 0; n < nSubframes; n++ ) { lshift = sub( L_norm_arr( mdst_spectrum_fx[ch][n], l_frame ), 2 ); Scale_sig32( mdst_spectrum_fx[ch][n], l_frame, lshift ); mdst_spectrum_e[ch][n] = sub( mdst_spectrum_e[ch][n], lshift); } #endif st->hTcxEnc->spectrum_length = s_max( st->hTcxEnc->spectrum_length, st->hTcxEnc->L_frameTCX ); move16(); /* BWD in MDCT domain */ IF( NE_16( st->hTcxCfg->tcx_last_overlap_mode, TRANSITION_OVERLAP ) ) { Loading
lib_enc/ivas_stereo_mdct_core_enc_fx.c +4 −7 Original line number Diff line number Diff line Loading @@ -371,14 +371,11 @@ void stereo_mdct_core_enc_fx( move16(); FOR( ch = 0; ch < CPE_CHANNELS; ch++ ) { IF( EQ_16( sts[ch]->hTcxEnc->tcxMode, TCX_20 ) ) { length = sts[ch]->hTcxEnc->L_frameTCX; length = sts[ch]->hTcxEnc->spectrum_length; move16(); } ELSE IF( NE_16( sts[ch]->hTcxEnc->tcxMode, TCX_20 ) ) { length = shr( sts[ch]->hTcxEnc->L_frameTCX, 1 ); length = shr( length, 1 ); } FOR( k = 0; k <= ( ( sts[ch]->core == TCX_20_CORE ) ? 1 : NB_DIV ) - 1; k++ ) { Loading
lib_enc/stat_enc.h +1 −1 Original line number Diff line number Diff line Loading @@ -1209,7 +1209,7 @@ typedef struct tcx_enc_structure Word32 spectrum_long_fx[N_MAX]; /* MDCT output for a long block. Points to spectrum */ Word16 spectrum_long_e; /* MDCT output for a long block. Points to spectrum */ Word16 q_spectrum_long_fx; Word16 spectrum_length; /* corresponds to L_frameTCX, used for scaling of MDCT/MDST buffers */ Word16 spectrum_length; } TCX_ENC_DATA, *TCX_ENC_HANDLE; typedef struct TransientDetection Loading