Loading lib_com/options.h +0 −1 Original line number Diff line number Diff line Loading @@ -105,7 +105,6 @@ /* Macros for issue 1966 are independent, phase diff is always BE for EVS_MONO */ /* The changes for F0+thdModification are mainly for IVAS better float compatibility, */ /* for EVS_MONO, all is kept BE. */ #define FIX_BASOP_2519_ICBWE_DEC_Q_TRACK /* FhG: BASOP #2519: Track Q-format of dec_2over3_mem_fx across frames in stereo_icBWE_preproc_fx */ #define FIX_BASOP_2592_OVERFLOW /* FhG: BASOP #2592: fix overflow in GetF0() */ #define FIX_BASOP_2591_EDGE_DETECT_COMP /* FhG: BASOP #2591: Wrong comparison in edge_detect_fx() */ #define FIX_NONBE_2580_USE_LENGTH_NOT_CONSTANT /* Dolby: fix 2580: use dynamic length denominator for average energy in unclr_calc_corr_features_fx() */ Loading lib_enc/ivas_stat_enc.h +0 −5 Original line number Diff line number Diff line Loading @@ -511,14 +511,9 @@ typedef struct stereo_icbwe_enc_data_structure Word32 prevRefEner_fx; // Q31 Word32 prevNonRefEner_fx; // Q31 Word32 memGsEnerMap_fx[2]; // Q31 #ifdef FIX_BASOP_2519_ICBWE_DEC_Q_TRACK Word16 dec_2over3_mem_fx[L_FILT_2OVER3]; // Q -> q_dec_2over3_mem_fx Word16 dec_2over3_mem_lp_fx[L_FILT_2OVER3_LP]; // Q -> q_dec_2over3_mem_fx Word16 q_dec_2over3_mem_fx; // current Q of dec_2over3_mem_fx and dec_2over3_mem_lp_fx #else Word16 dec_2over3_mem_fx[L_FILT_2OVER3]; // Q -> q_dataChan_fx Word16 dec_2over3_mem_lp_fx[L_FILT_2OVER3_LP]; // Q -> q_dataChan_fx #endif Word16 icbwe_inp_mem_fx[CPE_CHANNELS][NS2SA( 48000, L_MEM_RECALC_TBE_NS )]; // Q -> q_dataChan_fx Word16 *dataChan_fx[CPE_CHANNELS]; Word16 q_dataChan_fx; Loading lib_enc/ivas_stereo_icbwe_enc_fx.c +0 −12 Original line number Diff line number Diff line Loading @@ -1146,10 +1146,8 @@ void stereo_icBWE_init_enc_fx( set16_fx( hStereoICBWE->dec_2over3_mem_fx, 0, L_FILT_2OVER3 ); set16_fx( hStereoICBWE->dec_2over3_mem_lp_fx, 0, L_FILT_2OVER3_LP ); #ifdef FIX_BASOP_2519_ICBWE_DEC_Q_TRACK hStereoICBWE->q_dec_2over3_mem_fx = 0; move16(); #endif set16_fx( hStereoICBWE->memHPF_fx, 0, 8 ); /* BWE ref channel */ Loading Loading @@ -1282,10 +1280,8 @@ void stereo_icBWE_preproc_fx( { set16_fx( hStereoICBWE->dec_2over3_mem_fx, 0, L_FILT_2OVER3 ); set16_fx( hStereoICBWE->dec_2over3_mem_lp_fx, 0, L_FILT_2OVER3_LP ); #ifdef FIX_BASOP_2519_ICBWE_DEC_Q_TRACK hStereoICBWE->q_dec_2over3_mem_fx = 0; move16(); #endif set16_fx( hStereoICBWE->mem_decim_shb_ch0_fx, 0, ( 2 * L_FILT_MAX ) ); set16_fx( shb_speech_nonref_fx, 0, L_FRAME16k ); set16_fx( hStereoICBWE->memHPF_fx, 0, 8 ); Loading @@ -1306,7 +1302,6 @@ void stereo_icBWE_preproc_fx( i = 2 * L_FILT48k + L_FILT_2OVER3; move16(); #ifdef FIX_BASOP_2519_ICBWE_DEC_Q_TRACK IF( NE_16( hStereoICBWE->q_dec_2over3_mem_fx, hStereoICBWE->q_dataChan_fx ) ) { Word16 scf = sub( hStereoICBWE->q_dataChan_fx, hStereoICBWE->q_dec_2over3_mem_fx ); Loading @@ -1315,7 +1310,6 @@ void stereo_icBWE_preproc_fx( hStereoICBWE->q_dec_2over3_mem_fx = hStereoICBWE->q_dataChan_fx; move16(); } #endif decimate_2_over_3_allpass_fx( temp_in_fx + sub( input_frame, i ), i, temp_inp_fx + mult( sub( input_frame, i ), 21845 /* 2/3 Q15*/ ), hStereoICBWE->dec_2over3_mem_fx, allpass_poles_3_ov_2, decimate_3_ov_2_lowpass_num_fx, decimate_3_ov_2_lowpass_den_fx, hStereoICBWE->dec_2over3_mem_lp_fx ); } /* flip the spectrum */ Loading @@ -1337,7 +1331,6 @@ void stereo_icBWE_preproc_fx( move16(); /* IVAS-219: the same filter memories are used for both channels; the continuity is thus lost; shouldn't the memories be separated? */ #ifdef FIX_BASOP_2519_ICBWE_DEC_Q_TRACK IF( NE_16( hStereoICBWE->q_dec_2over3_mem_fx, hStereoICBWE->q_dataChan_fx ) ) { Word16 scf = sub( hStereoICBWE->q_dataChan_fx, hStereoICBWE->q_dec_2over3_mem_fx ); Loading @@ -1346,7 +1339,6 @@ void stereo_icBWE_preproc_fx( hStereoICBWE->q_dec_2over3_mem_fx = hStereoICBWE->q_dataChan_fx; move16(); } #endif decimate_2_over_3_allpass_fx( temp_in_fx + sub( input_frame, i ), i, temp_inp_fx + mult( sub( input_frame, i ), 21845 /* 2/3 Q15*/ ), hStereoICBWE->dec_2over3_mem_fx, allpass_poles_3_ov_2, decimate_3_ov_2_lowpass_num_fx, decimate_3_ov_2_lowpass_den_fx, hStereoICBWE->dec_2over3_mem_lp_fx ); } Loading Loading @@ -1383,10 +1375,8 @@ void stereo_icBWE_preproc_fx( set16_fx( hStereoICBWE->dec_2over3_mem_fx, 0, L_FILT_2OVER3 ); set16_fx( hStereoICBWE->dec_2over3_mem_lp_fx, 0, L_FILT_2OVER3_LP ); #ifdef FIX_BASOP_2519_ICBWE_DEC_Q_TRACK hStereoICBWE->q_dec_2over3_mem_fx = 0; move16(); #endif set16_fx( hStereoICBWE->mem_decim_shb_ch0_fx, 0, ( 2 * L_FILT_MAX ) ); set16_fx( shb_speech_nonref_fx, 0, L_FRAME16k ); set16_fx( hStereoICBWE->memHPF_fx, 0, 8 ); Loading Loading @@ -1430,7 +1420,6 @@ void stereo_icBWE_preproc_fx( Copy( temp_inp_fx, temp_in_fx, L_FRAME48k ); /* q_dataChan_fx */ set16_fx( temp_inp_fx, 0, L_FRAME48k ); #ifdef FIX_BASOP_2519_ICBWE_DEC_Q_TRACK IF( NE_16( hStereoICBWE->q_dec_2over3_mem_fx, hStereoICBWE->q_dataChan_fx ) ) { Word16 scf = sub( hStereoICBWE->q_dataChan_fx, hStereoICBWE->q_dec_2over3_mem_fx ); Loading @@ -1439,7 +1428,6 @@ void stereo_icBWE_preproc_fx( hStereoICBWE->q_dec_2over3_mem_fx = hStereoICBWE->q_dataChan_fx; move16(); } #endif decimate_2_over_3_allpass_fx( temp_in_fx, L_FRAME48k, temp_inp_fx, hStereoICBWE->dec_2over3_mem_fx, allpass_poles_3_ov_2, decimate_3_ov_2_lowpass_num_fx, decimate_3_ov_2_lowpass_den_fx, hStereoICBWE->dec_2over3_mem_lp_fx ); } Loading Loading
lib_com/options.h +0 −1 Original line number Diff line number Diff line Loading @@ -105,7 +105,6 @@ /* Macros for issue 1966 are independent, phase diff is always BE for EVS_MONO */ /* The changes for F0+thdModification are mainly for IVAS better float compatibility, */ /* for EVS_MONO, all is kept BE. */ #define FIX_BASOP_2519_ICBWE_DEC_Q_TRACK /* FhG: BASOP #2519: Track Q-format of dec_2over3_mem_fx across frames in stereo_icBWE_preproc_fx */ #define FIX_BASOP_2592_OVERFLOW /* FhG: BASOP #2592: fix overflow in GetF0() */ #define FIX_BASOP_2591_EDGE_DETECT_COMP /* FhG: BASOP #2591: Wrong comparison in edge_detect_fx() */ #define FIX_NONBE_2580_USE_LENGTH_NOT_CONSTANT /* Dolby: fix 2580: use dynamic length denominator for average energy in unclr_calc_corr_features_fx() */ Loading
lib_enc/ivas_stat_enc.h +0 −5 Original line number Diff line number Diff line Loading @@ -511,14 +511,9 @@ typedef struct stereo_icbwe_enc_data_structure Word32 prevRefEner_fx; // Q31 Word32 prevNonRefEner_fx; // Q31 Word32 memGsEnerMap_fx[2]; // Q31 #ifdef FIX_BASOP_2519_ICBWE_DEC_Q_TRACK Word16 dec_2over3_mem_fx[L_FILT_2OVER3]; // Q -> q_dec_2over3_mem_fx Word16 dec_2over3_mem_lp_fx[L_FILT_2OVER3_LP]; // Q -> q_dec_2over3_mem_fx Word16 q_dec_2over3_mem_fx; // current Q of dec_2over3_mem_fx and dec_2over3_mem_lp_fx #else Word16 dec_2over3_mem_fx[L_FILT_2OVER3]; // Q -> q_dataChan_fx Word16 dec_2over3_mem_lp_fx[L_FILT_2OVER3_LP]; // Q -> q_dataChan_fx #endif Word16 icbwe_inp_mem_fx[CPE_CHANNELS][NS2SA( 48000, L_MEM_RECALC_TBE_NS )]; // Q -> q_dataChan_fx Word16 *dataChan_fx[CPE_CHANNELS]; Word16 q_dataChan_fx; Loading
lib_enc/ivas_stereo_icbwe_enc_fx.c +0 −12 Original line number Diff line number Diff line Loading @@ -1146,10 +1146,8 @@ void stereo_icBWE_init_enc_fx( set16_fx( hStereoICBWE->dec_2over3_mem_fx, 0, L_FILT_2OVER3 ); set16_fx( hStereoICBWE->dec_2over3_mem_lp_fx, 0, L_FILT_2OVER3_LP ); #ifdef FIX_BASOP_2519_ICBWE_DEC_Q_TRACK hStereoICBWE->q_dec_2over3_mem_fx = 0; move16(); #endif set16_fx( hStereoICBWE->memHPF_fx, 0, 8 ); /* BWE ref channel */ Loading Loading @@ -1282,10 +1280,8 @@ void stereo_icBWE_preproc_fx( { set16_fx( hStereoICBWE->dec_2over3_mem_fx, 0, L_FILT_2OVER3 ); set16_fx( hStereoICBWE->dec_2over3_mem_lp_fx, 0, L_FILT_2OVER3_LP ); #ifdef FIX_BASOP_2519_ICBWE_DEC_Q_TRACK hStereoICBWE->q_dec_2over3_mem_fx = 0; move16(); #endif set16_fx( hStereoICBWE->mem_decim_shb_ch0_fx, 0, ( 2 * L_FILT_MAX ) ); set16_fx( shb_speech_nonref_fx, 0, L_FRAME16k ); set16_fx( hStereoICBWE->memHPF_fx, 0, 8 ); Loading @@ -1306,7 +1302,6 @@ void stereo_icBWE_preproc_fx( i = 2 * L_FILT48k + L_FILT_2OVER3; move16(); #ifdef FIX_BASOP_2519_ICBWE_DEC_Q_TRACK IF( NE_16( hStereoICBWE->q_dec_2over3_mem_fx, hStereoICBWE->q_dataChan_fx ) ) { Word16 scf = sub( hStereoICBWE->q_dataChan_fx, hStereoICBWE->q_dec_2over3_mem_fx ); Loading @@ -1315,7 +1310,6 @@ void stereo_icBWE_preproc_fx( hStereoICBWE->q_dec_2over3_mem_fx = hStereoICBWE->q_dataChan_fx; move16(); } #endif decimate_2_over_3_allpass_fx( temp_in_fx + sub( input_frame, i ), i, temp_inp_fx + mult( sub( input_frame, i ), 21845 /* 2/3 Q15*/ ), hStereoICBWE->dec_2over3_mem_fx, allpass_poles_3_ov_2, decimate_3_ov_2_lowpass_num_fx, decimate_3_ov_2_lowpass_den_fx, hStereoICBWE->dec_2over3_mem_lp_fx ); } /* flip the spectrum */ Loading @@ -1337,7 +1331,6 @@ void stereo_icBWE_preproc_fx( move16(); /* IVAS-219: the same filter memories are used for both channels; the continuity is thus lost; shouldn't the memories be separated? */ #ifdef FIX_BASOP_2519_ICBWE_DEC_Q_TRACK IF( NE_16( hStereoICBWE->q_dec_2over3_mem_fx, hStereoICBWE->q_dataChan_fx ) ) { Word16 scf = sub( hStereoICBWE->q_dataChan_fx, hStereoICBWE->q_dec_2over3_mem_fx ); Loading @@ -1346,7 +1339,6 @@ void stereo_icBWE_preproc_fx( hStereoICBWE->q_dec_2over3_mem_fx = hStereoICBWE->q_dataChan_fx; move16(); } #endif decimate_2_over_3_allpass_fx( temp_in_fx + sub( input_frame, i ), i, temp_inp_fx + mult( sub( input_frame, i ), 21845 /* 2/3 Q15*/ ), hStereoICBWE->dec_2over3_mem_fx, allpass_poles_3_ov_2, decimate_3_ov_2_lowpass_num_fx, decimate_3_ov_2_lowpass_den_fx, hStereoICBWE->dec_2over3_mem_lp_fx ); } Loading Loading @@ -1383,10 +1375,8 @@ void stereo_icBWE_preproc_fx( set16_fx( hStereoICBWE->dec_2over3_mem_fx, 0, L_FILT_2OVER3 ); set16_fx( hStereoICBWE->dec_2over3_mem_lp_fx, 0, L_FILT_2OVER3_LP ); #ifdef FIX_BASOP_2519_ICBWE_DEC_Q_TRACK hStereoICBWE->q_dec_2over3_mem_fx = 0; move16(); #endif set16_fx( hStereoICBWE->mem_decim_shb_ch0_fx, 0, ( 2 * L_FILT_MAX ) ); set16_fx( shb_speech_nonref_fx, 0, L_FRAME16k ); set16_fx( hStereoICBWE->memHPF_fx, 0, 8 ); Loading Loading @@ -1430,7 +1420,6 @@ void stereo_icBWE_preproc_fx( Copy( temp_inp_fx, temp_in_fx, L_FRAME48k ); /* q_dataChan_fx */ set16_fx( temp_inp_fx, 0, L_FRAME48k ); #ifdef FIX_BASOP_2519_ICBWE_DEC_Q_TRACK IF( NE_16( hStereoICBWE->q_dec_2over3_mem_fx, hStereoICBWE->q_dataChan_fx ) ) { Word16 scf = sub( hStereoICBWE->q_dataChan_fx, hStereoICBWE->q_dec_2over3_mem_fx ); Loading @@ -1439,7 +1428,6 @@ void stereo_icBWE_preproc_fx( hStereoICBWE->q_dec_2over3_mem_fx = hStereoICBWE->q_dataChan_fx; move16(); } #endif decimate_2_over_3_allpass_fx( temp_in_fx, L_FRAME48k, temp_inp_fx, hStereoICBWE->dec_2over3_mem_fx, allpass_poles_3_ov_2, decimate_3_ov_2_lowpass_num_fx, decimate_3_ov_2_lowpass_den_fx, hStereoICBWE->dec_2over3_mem_lp_fx ); } Loading