Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -137,6 +137,7 @@ #define FIX_1053_REVERB_RECONFIGURATION #define TMP_FIX_1119_SPLIT_RENDERING_VOIP /* FhG: Add error check for unsupported config: split rendering with VoIP mode */ #define FIX_1113_EXTREND_ISAR /* FhG: issue 1113: fix external renderer asserts for FOA/HOA2 and CLDFB config */ #define NONBE_1203_MDCT2DFT_SWITCHING /* VA: issue 1203: fix severe artifacts during MDCT to DFT stereo switching when MDCT ITD is not used */ /* #################### End BASOP porting switches ############################ */ Loading lib_enc/ivas_stereo_dft_td_itd_fx.c +17 −0 Original line number Diff line number Diff line Loading @@ -573,6 +573,9 @@ void stereo_td_itd_mdct_stereo_fx( Word16 DFT_e[CPE_CHANNELS]; Word16 DFT_tmp_e[CPE_CHANNELS][STEREO_DFT_N_MAX_ENC]; STEREO_MDCT_ENC_DATA_HANDLE hStereoMdct; #ifdef NONBE_1203_MDCT2DFT_SWITCHING Word16 dft_ovl; #endif test(); IF( hCPE->hStereoMdct != NULL && hCPE->hStereoMdct->hItd != NULL ) Loading Loading @@ -611,6 +614,20 @@ void stereo_td_itd_mdct_stereo_fx( /* Time Domain ITD compensation using extrapolation */ stereo_td_itd_fx( hStereoMdct->hItd, NULL, NULL, 1, hStereoMdct->hDft_ana->dft_ovl, hCPE->hCoreCoder, input_frame, hCPE->input_mem_fx, hCPE->q_input_mem ); } #ifdef NONBE_1203_MDCT2DFT_SWITCHING ELSE IF( hCPE->input_mem_fx[0] != NULL ) { dft_ovl = extract_l( Mpy_32_32( imult3216( input_frame, STEREO_DFT_OVL_MAX ), 2236963 ) ); // 1/L_FRAME48k = 2236963 (Q31) FOR( i = 0; i < CPE_CHANNELS; i++ ) { Copy_Scale_sig32_16( hCPE->hCoreCoder[i]->input32_fx + input_frame - dft_ovl, hCPE->input_mem_fx[i], dft_ovl, 0 ); /* sts[n]->q_inp32 - 16 */ hCPE->q_input_mem[i] = sub( hCPE->hCoreCoder[i]->q_inp32, 16 ); move16(); } } #endif return; } lib_enc/ivas_stereo_switching_enc_fx.c +4 −1 Original line number Diff line number Diff line Loading @@ -649,6 +649,9 @@ void stereo_switching_enc_fx( dft_ovl = extract_l( Mpy_32_32( imult3216( input_frame, STEREO_DFT_OVL_MAX ), 2236963 ) ); // 1/L_FRAME48k = 2236963 (Q31) /* update DFT analysis overlap memory */ #ifdef NONBE_1203_MDCT2DFT_SWITCHING /* note: in MDCT stereo, the update is done in stereo_td_itd_mdct_stereo() */ #endif test(); test(); IF( GT_16( hCPE->element_mode, IVAS_CPE_DFT ) && hCPE->input_mem_fx[0] != NULL && NE_16( hCPE->element_mode, IVAS_CPE_MDCT ) ) Loading Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -137,6 +137,7 @@ #define FIX_1053_REVERB_RECONFIGURATION #define TMP_FIX_1119_SPLIT_RENDERING_VOIP /* FhG: Add error check for unsupported config: split rendering with VoIP mode */ #define FIX_1113_EXTREND_ISAR /* FhG: issue 1113: fix external renderer asserts for FOA/HOA2 and CLDFB config */ #define NONBE_1203_MDCT2DFT_SWITCHING /* VA: issue 1203: fix severe artifacts during MDCT to DFT stereo switching when MDCT ITD is not used */ /* #################### End BASOP porting switches ############################ */ Loading
lib_enc/ivas_stereo_dft_td_itd_fx.c +17 −0 Original line number Diff line number Diff line Loading @@ -573,6 +573,9 @@ void stereo_td_itd_mdct_stereo_fx( Word16 DFT_e[CPE_CHANNELS]; Word16 DFT_tmp_e[CPE_CHANNELS][STEREO_DFT_N_MAX_ENC]; STEREO_MDCT_ENC_DATA_HANDLE hStereoMdct; #ifdef NONBE_1203_MDCT2DFT_SWITCHING Word16 dft_ovl; #endif test(); IF( hCPE->hStereoMdct != NULL && hCPE->hStereoMdct->hItd != NULL ) Loading Loading @@ -611,6 +614,20 @@ void stereo_td_itd_mdct_stereo_fx( /* Time Domain ITD compensation using extrapolation */ stereo_td_itd_fx( hStereoMdct->hItd, NULL, NULL, 1, hStereoMdct->hDft_ana->dft_ovl, hCPE->hCoreCoder, input_frame, hCPE->input_mem_fx, hCPE->q_input_mem ); } #ifdef NONBE_1203_MDCT2DFT_SWITCHING ELSE IF( hCPE->input_mem_fx[0] != NULL ) { dft_ovl = extract_l( Mpy_32_32( imult3216( input_frame, STEREO_DFT_OVL_MAX ), 2236963 ) ); // 1/L_FRAME48k = 2236963 (Q31) FOR( i = 0; i < CPE_CHANNELS; i++ ) { Copy_Scale_sig32_16( hCPE->hCoreCoder[i]->input32_fx + input_frame - dft_ovl, hCPE->input_mem_fx[i], dft_ovl, 0 ); /* sts[n]->q_inp32 - 16 */ hCPE->q_input_mem[i] = sub( hCPE->hCoreCoder[i]->q_inp32, 16 ); move16(); } } #endif return; }
lib_enc/ivas_stereo_switching_enc_fx.c +4 −1 Original line number Diff line number Diff line Loading @@ -649,6 +649,9 @@ void stereo_switching_enc_fx( dft_ovl = extract_l( Mpy_32_32( imult3216( input_frame, STEREO_DFT_OVL_MAX ), 2236963 ) ); // 1/L_FRAME48k = 2236963 (Q31) /* update DFT analysis overlap memory */ #ifdef NONBE_1203_MDCT2DFT_SWITCHING /* note: in MDCT stereo, the update is done in stereo_td_itd_mdct_stereo() */ #endif test(); test(); IF( GT_16( hCPE->element_mode, IVAS_CPE_DFT ) && hCPE->input_mem_fx[0] != NULL && NE_16( hCPE->element_mode, IVAS_CPE_MDCT ) ) Loading