Loading lib_com/ivas_prot.h +2 −2 Original line number Diff line number Diff line Loading @@ -3350,7 +3350,7 @@ void ivas_dirac_param_est_enc( DIRAC_ENC_HANDLE hDirAC, IVAS_QDIRECTION *q_direction, const uint8_t useLowerRes, #ifdef FIX_527_SBA_MONO_INPUT #if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS ) int16_t *dirac_mono_flag, #endif float data_f[][L_FRAME48k], Loading Loading @@ -5420,7 +5420,7 @@ void computeReferencePower_enc( const IVAS_FORMAT ivas_format, /* i : ivas_format */ int16_t ref_power_w, /* i : use 0 if hodirac is enabled */ const int16_t nchan_ana /* i : number of analysis channels */ #ifdef FIX_527_SBA_MONO_INPUT #if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS ) , int16_t *dirac_mono_flag #endif Loading lib_com/options.h +1 −1 Original line number Diff line number Diff line Loading @@ -160,7 +160,7 @@ #define IGF_TUNING_96 /* FhG: Issue 546: slight tuning of IGF config used in 96 kbps stereo, 128 kbps SBA and others */ #define FIX_527_SBA_MONO_INPUT /* FhG: fix issue 527, artifacts in mono signals coded in SBA mode */ /*#define FIX_527_MONO_HEURISTICS*/ #define FIX_527_MONO_HEURISTICS /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ Loading lib_dec/ivas_dirac_dec.c +18 −17 Original line number Diff line number Diff line Loading @@ -1672,7 +1672,7 @@ void ivas_dirac_dec_read_BS( b = st->bit_stream[( st->next_bit_pos )--]; ( *nb_bits )++; #ifdef FIX_527_SBA_MONO_INPUT #if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS ) hQMetaData->dirac_mono_flag = st->bit_stream[( st->next_bit_pos )--]; ( *nb_bits )++; #endif Loading Loading @@ -1746,7 +1746,7 @@ void ivas_dirac_dec_read_BS( b = st->bit_stream[( st->next_bit_pos )--]; ( *nb_bits )++; #ifdef FIX_527_SBA_MONO_INPUT #if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS ) hQMetaData->dirac_mono_flag = st->bit_stream[( st->next_bit_pos )--]; ( *nb_bits )++; #endif Loading Loading @@ -1789,7 +1789,7 @@ void ivas_dirac_dec_read_BS( st->next_bit_pos = next_bit_pos_orig; } #ifdef FIX_527_SBA_MONO_INPUT #if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS ) if ( hQMetaData->dirac_mono_flag ) { for ( b = 0; b < hQMetaData->q_direction[0].cfg.nbands; b++ ) Loading @@ -1808,6 +1808,7 @@ void ivas_dirac_dec_read_BS( dirac_to_spar_md_bands ); } return; } Loading lib_dec/ivas_spar_md_dec.c +10 −1 Original line number Diff line number Diff line Loading @@ -680,7 +680,7 @@ void ivas_spar_md_dec_process( #ifdef FIX_527_MONO_HEURISTICS { int16_t ndm, ndec,i,j; int16_t ndm, ndec,i; st_ivas->hQMetaData->dirac_mono_flag = 1; for ( b = 0; b < SPAR_DIRAC_SPLIT_START_BAND; b++ ) Loading Loading @@ -716,6 +716,15 @@ void ivas_spar_md_dec_process( } } } if ( st_ivas->hQMetaData->dirac_mono_flag ) { for ( b = 0; b < st_ivas->hQMetaData->q_direction[0].cfg.nbands; b++ ) { set_zero( st_ivas->hQMetaData->q_direction[0].band_data[b].energy_ratio, MAX_PARAM_SPATIAL_SUBFRAMES ); set_zero( st_ivas->hQMetaData->q_direction[0].band_data[b].energy_ratio, MAX_PARAM_SPATIAL_SUBFRAMES ); } } #endif Loading lib_enc/ivas_dirac_enc.c +9 −9 Original line number Diff line number Diff line Loading @@ -307,7 +307,7 @@ void ivas_dirac_enc( hDirAC, hQMetaData->q_direction, hQMetaData->useLowerRes, #ifdef FIX_527_SBA_MONO_INPUT #if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS ) &hQMetaData->dirac_mono_flag, #endif data_f, Loading @@ -327,7 +327,7 @@ void ivas_dirac_enc( /* WB 4TC mode bit : disable for now*/ push_next_indice( hMetaData, 0, 1 ); #ifdef FIX_527_SBA_MONO_INPUT #if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS ) /* flag to indicate a mono input signal */ push_next_indice( hMetaData, hQMetaData->dirac_mono_flag, 1 ); #endif Loading Loading @@ -369,7 +369,7 @@ void ivas_dirac_enc( /* 1 bit to indicate mode MD coding : temp solution*/ push_next_indice( hMetaData, 1, 1 ); #ifdef FIX_527_SBA_MONO_INPUT #if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS ) /* flag to indicate a mono input signal */ push_next_indice( hMetaData, hQMetaData->dirac_mono_flag, 1 ); #endif Loading Loading @@ -431,7 +431,7 @@ void computeReferencePower_enc( const IVAS_FORMAT ivas_format, /* i : ivas_format */ int16_t ref_power_w, /* i : use 0 if hodirac is enabled */ const int16_t nchan_ana /* i : number of analysis channels */ #ifdef FIX_527_SBA_MONO_INPUT #if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS ) , int16_t *dirac_mono_flag #endif Loading @@ -442,7 +442,7 @@ void computeReferencePower_enc( float reference_power_W[DIRAC_MAX_NBANDS]; #ifdef FIX_527_SBA_MONO_INPUT #if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS ) if ( dirac_mono_flag != NULL ) { *dirac_mono_flag = 1; Loading Loading @@ -471,7 +471,7 @@ void computeReferencePower_enc( } } #ifdef FIX_527_SBA_MONO_INPUT #if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS ) if ( reference_power[i] - reference_power_W[i] > EPSILON && dirac_mono_flag != NULL ) { *dirac_mono_flag = 0; Loading Loading @@ -502,7 +502,7 @@ void ivas_dirac_param_est_enc( DIRAC_ENC_HANDLE hDirAC, IVAS_QDIRECTION *q_direction, const uint8_t useLowerRes, #ifdef FIX_527_SBA_MONO_INPUT #if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS ) int16_t *dirac_mono_flag, #endif float data_f[][L_FRAME48k], Loading Loading @@ -620,7 +620,7 @@ void ivas_dirac_param_est_enc( ivas_format, hodirac_flag ? 0 : 1, FOA_CHANNELS #ifdef FIX_527_SBA_MONO_INPUT #if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS ) , dirac_mono_flag #endif Loading Loading
lib_com/ivas_prot.h +2 −2 Original line number Diff line number Diff line Loading @@ -3350,7 +3350,7 @@ void ivas_dirac_param_est_enc( DIRAC_ENC_HANDLE hDirAC, IVAS_QDIRECTION *q_direction, const uint8_t useLowerRes, #ifdef FIX_527_SBA_MONO_INPUT #if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS ) int16_t *dirac_mono_flag, #endif float data_f[][L_FRAME48k], Loading Loading @@ -5420,7 +5420,7 @@ void computeReferencePower_enc( const IVAS_FORMAT ivas_format, /* i : ivas_format */ int16_t ref_power_w, /* i : use 0 if hodirac is enabled */ const int16_t nchan_ana /* i : number of analysis channels */ #ifdef FIX_527_SBA_MONO_INPUT #if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS ) , int16_t *dirac_mono_flag #endif Loading
lib_com/options.h +1 −1 Original line number Diff line number Diff line Loading @@ -160,7 +160,7 @@ #define IGF_TUNING_96 /* FhG: Issue 546: slight tuning of IGF config used in 96 kbps stereo, 128 kbps SBA and others */ #define FIX_527_SBA_MONO_INPUT /* FhG: fix issue 527, artifacts in mono signals coded in SBA mode */ /*#define FIX_527_MONO_HEURISTICS*/ #define FIX_527_MONO_HEURISTICS /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ Loading
lib_dec/ivas_dirac_dec.c +18 −17 Original line number Diff line number Diff line Loading @@ -1672,7 +1672,7 @@ void ivas_dirac_dec_read_BS( b = st->bit_stream[( st->next_bit_pos )--]; ( *nb_bits )++; #ifdef FIX_527_SBA_MONO_INPUT #if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS ) hQMetaData->dirac_mono_flag = st->bit_stream[( st->next_bit_pos )--]; ( *nb_bits )++; #endif Loading Loading @@ -1746,7 +1746,7 @@ void ivas_dirac_dec_read_BS( b = st->bit_stream[( st->next_bit_pos )--]; ( *nb_bits )++; #ifdef FIX_527_SBA_MONO_INPUT #if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS ) hQMetaData->dirac_mono_flag = st->bit_stream[( st->next_bit_pos )--]; ( *nb_bits )++; #endif Loading Loading @@ -1789,7 +1789,7 @@ void ivas_dirac_dec_read_BS( st->next_bit_pos = next_bit_pos_orig; } #ifdef FIX_527_SBA_MONO_INPUT #if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS ) if ( hQMetaData->dirac_mono_flag ) { for ( b = 0; b < hQMetaData->q_direction[0].cfg.nbands; b++ ) Loading @@ -1808,6 +1808,7 @@ void ivas_dirac_dec_read_BS( dirac_to_spar_md_bands ); } return; } Loading
lib_dec/ivas_spar_md_dec.c +10 −1 Original line number Diff line number Diff line Loading @@ -680,7 +680,7 @@ void ivas_spar_md_dec_process( #ifdef FIX_527_MONO_HEURISTICS { int16_t ndm, ndec,i,j; int16_t ndm, ndec,i; st_ivas->hQMetaData->dirac_mono_flag = 1; for ( b = 0; b < SPAR_DIRAC_SPLIT_START_BAND; b++ ) Loading Loading @@ -716,6 +716,15 @@ void ivas_spar_md_dec_process( } } } if ( st_ivas->hQMetaData->dirac_mono_flag ) { for ( b = 0; b < st_ivas->hQMetaData->q_direction[0].cfg.nbands; b++ ) { set_zero( st_ivas->hQMetaData->q_direction[0].band_data[b].energy_ratio, MAX_PARAM_SPATIAL_SUBFRAMES ); set_zero( st_ivas->hQMetaData->q_direction[0].band_data[b].energy_ratio, MAX_PARAM_SPATIAL_SUBFRAMES ); } } #endif Loading
lib_enc/ivas_dirac_enc.c +9 −9 Original line number Diff line number Diff line Loading @@ -307,7 +307,7 @@ void ivas_dirac_enc( hDirAC, hQMetaData->q_direction, hQMetaData->useLowerRes, #ifdef FIX_527_SBA_MONO_INPUT #if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS ) &hQMetaData->dirac_mono_flag, #endif data_f, Loading @@ -327,7 +327,7 @@ void ivas_dirac_enc( /* WB 4TC mode bit : disable for now*/ push_next_indice( hMetaData, 0, 1 ); #ifdef FIX_527_SBA_MONO_INPUT #if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS ) /* flag to indicate a mono input signal */ push_next_indice( hMetaData, hQMetaData->dirac_mono_flag, 1 ); #endif Loading Loading @@ -369,7 +369,7 @@ void ivas_dirac_enc( /* 1 bit to indicate mode MD coding : temp solution*/ push_next_indice( hMetaData, 1, 1 ); #ifdef FIX_527_SBA_MONO_INPUT #if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS ) /* flag to indicate a mono input signal */ push_next_indice( hMetaData, hQMetaData->dirac_mono_flag, 1 ); #endif Loading Loading @@ -431,7 +431,7 @@ void computeReferencePower_enc( const IVAS_FORMAT ivas_format, /* i : ivas_format */ int16_t ref_power_w, /* i : use 0 if hodirac is enabled */ const int16_t nchan_ana /* i : number of analysis channels */ #ifdef FIX_527_SBA_MONO_INPUT #if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS ) , int16_t *dirac_mono_flag #endif Loading @@ -442,7 +442,7 @@ void computeReferencePower_enc( float reference_power_W[DIRAC_MAX_NBANDS]; #ifdef FIX_527_SBA_MONO_INPUT #if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS ) if ( dirac_mono_flag != NULL ) { *dirac_mono_flag = 1; Loading Loading @@ -471,7 +471,7 @@ void computeReferencePower_enc( } } #ifdef FIX_527_SBA_MONO_INPUT #if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS ) if ( reference_power[i] - reference_power_W[i] > EPSILON && dirac_mono_flag != NULL ) { *dirac_mono_flag = 0; Loading Loading @@ -502,7 +502,7 @@ void ivas_dirac_param_est_enc( DIRAC_ENC_HANDLE hDirAC, IVAS_QDIRECTION *q_direction, const uint8_t useLowerRes, #ifdef FIX_527_SBA_MONO_INPUT #if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS ) int16_t *dirac_mono_flag, #endif float data_f[][L_FRAME48k], Loading Loading @@ -620,7 +620,7 @@ void ivas_dirac_param_est_enc( ivas_format, hodirac_flag ? 0 : 1, FOA_CHANNELS #ifdef FIX_527_SBA_MONO_INPUT #if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS ) , dirac_mono_flag #endif Loading