Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -132,6 +132,7 @@ #define FIX_FLOAT_1578_OMASA_REND_SPIKES /* Nokia: Float issue 1578: Fix spikes and collapsed perception in OMASA/MASA rendering to FOA/HOA */ #define FIX_1521_SBA_LOUDNESS_STEREO /* FhG: issue 1521: Fix loudness for SBA to stereo rendering */ #define FIX_1559 /* Eri/FhG: fix for Issue 1559 in FD CNG with bitrate/bw switching */ #define FIX_FLOAT_1134_BRIR_LEVEL /* Orange : Float issue 1134: change BRIR level */ /* ##################### End NON-BE switches ########################### */ Loading lib_rend/ivas_dirac_dec_binaural_functions_fx.c +18 −1 Original line number Diff line number Diff line Loading @@ -268,15 +268,27 @@ ivas_error ivas_dirac_dec_init_binaural_data_fx( IF( EQ_32( st_ivas->hDecoderConfig->output_config, IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR ) ) { Copy32( ( *phHrtfParambin )->parametricEarlyPartEneCorrection_fx, hDiracDecBin->earlyPartEneCorrection_fx, nBins ); #ifdef FIX_FLOAT_1134_BRIR_LEVEL hDiracDecBin->q_earlyPartEneCorrection = ( *phHrtfParambin )->parametricEarlyPartEneCorrection_Q; move16(); #else hDiracDecBin->q_earlyPartEneCorrection = Q28; #endif pRoomAcoustics = NULL; } ELSE { set32_fx( hDiracDecBin->earlyPartEneCorrection_fx, ONE_IN_Q28, CLDFB_NO_CHANNELS_MAX ); #ifdef FIX_FLOAT_1134_BRIR_LEVEL hDiracDecBin->q_earlyPartEneCorrection = Q28; move16(); #endif pRoomAcoustics = &( st_ivas->hRenderConfig->roomAcoustics ); } #ifndef FIX_FLOAT_1134_BRIR_LEVEL hDiracDecBin->q_earlyPartEneCorrection = Q28; move16(); #endif /* reconfiguration needed when Reverb. parameters are changed -> close and open the handle again */ test(); Loading Loading @@ -484,7 +496,12 @@ ivas_error ivas_dirac_dec_binaural_copy_hrtfs_fx( Copy_Scale_sig_16_32_r( parametricReverberationTimes_fx, hrtfParambin->parametricReverberationTimes_fx, CLDFB_NO_CHANNELS_MAX, Q26 - parametricReverberationTimes_factorQ_fx ); /*Q26*/ Copy_Scale_sig_16_32_r( parametricReverberationEneCorrections_fx, hrtfParambin->parametricReverberationEneCorrections_fx, CLDFB_NO_CHANNELS_MAX, Q31 - parametricReverberationEneCorrections_factorQ_fx ); /*Q31*/ #ifdef FIX_FLOAT_1134_BRIR_LEVEL hrtfParambin->parametricEarlyPartEneCorrection_Q = Q31 - ( Q15 - parametricEarlyPartEneCorrection_factorQ_fx ); Copy_Scale_sig_16_32_r( parametricEarlyPartEneCorrection_fx, hrtfParambin->parametricEarlyPartEneCorrection_fx, CLDFB_NO_CHANNELS_MAX, Q16 ); /*Q28*/ #else Copy_Scale_sig_16_32_r( parametricEarlyPartEneCorrection_fx, hrtfParambin->parametricEarlyPartEneCorrection_fx, CLDFB_NO_CHANNELS_MAX, Q28 - parametricEarlyPartEneCorrection_factorQ_fx ); /*Q28*/ #endif *hHrtfParambin = hrtfParambin; Loading lib_rend/ivas_stat_rend.h +3 −1 Original line number Diff line number Diff line Loading @@ -593,7 +593,9 @@ typedef struct ivas_hrtf_parambin_struct Word32 parametricReverberationTimes_fx[CLDFB_NO_CHANNELS_MAX]; /* Q26 */ Word32 parametricReverberationEneCorrections_fx[CLDFB_NO_CHANNELS_MAX]; /* Q31 */ Word32 parametricEarlyPartEneCorrection_fx[CLDFB_NO_CHANNELS_MAX]; /* Q28 */ #ifdef FIX_FLOAT_1134_BRIR_LEVEL Word16 parametricEarlyPartEneCorrection_Q; #endif } HRTFS_PARAMBIN, *HRTFS_PARAMBIN_HANDLE; /* Parametric binaural data structure */ Loading lib_rend/lib_rend_fx.c +12 −0 Original line number Diff line number Diff line Loading @@ -11013,15 +11013,27 @@ static ivas_error ivas_masa_ext_rend_parambin_init( IF( EQ_32( *inputMasa->base.ctx.pOutConfig, IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR ) ) { Copy32( ( *phHrtfParambin )->parametricEarlyPartEneCorrection_fx, hDiracDecBin->earlyPartEneCorrection_fx, nBins ); #ifdef FIX_FLOAT_1134_BRIR_LEVEL hDiracDecBin->q_earlyPartEneCorrection = ( *phHrtfParambin )->parametricEarlyPartEneCorrection_Q; move16(); #else hDiracDecBin->q_earlyPartEneCorrection = Q28; #endif pRoomAcoustics = NULL; } ELSE { set32_fx( hDiracDecBin->earlyPartEneCorrection_fx, ONE_IN_Q28, CLDFB_NO_CHANNELS_MAX ); #ifdef FIX_FLOAT_1134_BRIR_LEVEL hDiracDecBin->q_earlyPartEneCorrection = Q28; move16(); #endif pRoomAcoustics = &( hRendCfg->roomAcoustics ); } #ifndef FIX_FLOAT_1134_BRIR_LEVEL hDiracDecBin->q_earlyPartEneCorrection = Q28; move16(); #endif IF( hDiracDecBin->hReverb == NULL && pos_idx == 0 ) /* open reverb only for the main direction */ { Loading lib_util/hrtf_file_reader.c +7 −0 Original line number Diff line number Diff line Loading @@ -1523,11 +1523,18 @@ static ivas_error create_parambin_HRTF_from_rawdata( /* Q factor*/ factorQ = *( (Word16 *) ( hrtf_data_rptr ) ); hrtf_data_rptr += sizeof( Word16 ); #ifdef FIX_FLOAT_1134_BRIR_LEVEL ( *hHRTF )->parametricEarlyPartEneCorrection_Q = factorQ; #endif ptW16 = (Word16 *) hrtf_data_rptr; for ( j = 0; j < CLDFB_NO_CHANNELS_MAX; j++ ) { #ifdef FIX_FLOAT_1134_BRIR_LEVEL ( *hHRTF )->parametricEarlyPartEneCorrection_fx[j] = L_deposit_h( ptW16[j] ); #else ( *hHRTF )->parametricEarlyPartEneCorrection_fx[j] = L_shl_r( L_deposit_l( ptW16[j] ), Q28 - factorQ ); #endif } hrtf_data_rptr += CLDFB_NO_CHANNELS_MAX * sizeof( Word16 ); Loading Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -132,6 +132,7 @@ #define FIX_FLOAT_1578_OMASA_REND_SPIKES /* Nokia: Float issue 1578: Fix spikes and collapsed perception in OMASA/MASA rendering to FOA/HOA */ #define FIX_1521_SBA_LOUDNESS_STEREO /* FhG: issue 1521: Fix loudness for SBA to stereo rendering */ #define FIX_1559 /* Eri/FhG: fix for Issue 1559 in FD CNG with bitrate/bw switching */ #define FIX_FLOAT_1134_BRIR_LEVEL /* Orange : Float issue 1134: change BRIR level */ /* ##################### End NON-BE switches ########################### */ Loading
lib_rend/ivas_dirac_dec_binaural_functions_fx.c +18 −1 Original line number Diff line number Diff line Loading @@ -268,15 +268,27 @@ ivas_error ivas_dirac_dec_init_binaural_data_fx( IF( EQ_32( st_ivas->hDecoderConfig->output_config, IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR ) ) { Copy32( ( *phHrtfParambin )->parametricEarlyPartEneCorrection_fx, hDiracDecBin->earlyPartEneCorrection_fx, nBins ); #ifdef FIX_FLOAT_1134_BRIR_LEVEL hDiracDecBin->q_earlyPartEneCorrection = ( *phHrtfParambin )->parametricEarlyPartEneCorrection_Q; move16(); #else hDiracDecBin->q_earlyPartEneCorrection = Q28; #endif pRoomAcoustics = NULL; } ELSE { set32_fx( hDiracDecBin->earlyPartEneCorrection_fx, ONE_IN_Q28, CLDFB_NO_CHANNELS_MAX ); #ifdef FIX_FLOAT_1134_BRIR_LEVEL hDiracDecBin->q_earlyPartEneCorrection = Q28; move16(); #endif pRoomAcoustics = &( st_ivas->hRenderConfig->roomAcoustics ); } #ifndef FIX_FLOAT_1134_BRIR_LEVEL hDiracDecBin->q_earlyPartEneCorrection = Q28; move16(); #endif /* reconfiguration needed when Reverb. parameters are changed -> close and open the handle again */ test(); Loading Loading @@ -484,7 +496,12 @@ ivas_error ivas_dirac_dec_binaural_copy_hrtfs_fx( Copy_Scale_sig_16_32_r( parametricReverberationTimes_fx, hrtfParambin->parametricReverberationTimes_fx, CLDFB_NO_CHANNELS_MAX, Q26 - parametricReverberationTimes_factorQ_fx ); /*Q26*/ Copy_Scale_sig_16_32_r( parametricReverberationEneCorrections_fx, hrtfParambin->parametricReverberationEneCorrections_fx, CLDFB_NO_CHANNELS_MAX, Q31 - parametricReverberationEneCorrections_factorQ_fx ); /*Q31*/ #ifdef FIX_FLOAT_1134_BRIR_LEVEL hrtfParambin->parametricEarlyPartEneCorrection_Q = Q31 - ( Q15 - parametricEarlyPartEneCorrection_factorQ_fx ); Copy_Scale_sig_16_32_r( parametricEarlyPartEneCorrection_fx, hrtfParambin->parametricEarlyPartEneCorrection_fx, CLDFB_NO_CHANNELS_MAX, Q16 ); /*Q28*/ #else Copy_Scale_sig_16_32_r( parametricEarlyPartEneCorrection_fx, hrtfParambin->parametricEarlyPartEneCorrection_fx, CLDFB_NO_CHANNELS_MAX, Q28 - parametricEarlyPartEneCorrection_factorQ_fx ); /*Q28*/ #endif *hHrtfParambin = hrtfParambin; Loading
lib_rend/ivas_stat_rend.h +3 −1 Original line number Diff line number Diff line Loading @@ -593,7 +593,9 @@ typedef struct ivas_hrtf_parambin_struct Word32 parametricReverberationTimes_fx[CLDFB_NO_CHANNELS_MAX]; /* Q26 */ Word32 parametricReverberationEneCorrections_fx[CLDFB_NO_CHANNELS_MAX]; /* Q31 */ Word32 parametricEarlyPartEneCorrection_fx[CLDFB_NO_CHANNELS_MAX]; /* Q28 */ #ifdef FIX_FLOAT_1134_BRIR_LEVEL Word16 parametricEarlyPartEneCorrection_Q; #endif } HRTFS_PARAMBIN, *HRTFS_PARAMBIN_HANDLE; /* Parametric binaural data structure */ Loading
lib_rend/lib_rend_fx.c +12 −0 Original line number Diff line number Diff line Loading @@ -11013,15 +11013,27 @@ static ivas_error ivas_masa_ext_rend_parambin_init( IF( EQ_32( *inputMasa->base.ctx.pOutConfig, IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR ) ) { Copy32( ( *phHrtfParambin )->parametricEarlyPartEneCorrection_fx, hDiracDecBin->earlyPartEneCorrection_fx, nBins ); #ifdef FIX_FLOAT_1134_BRIR_LEVEL hDiracDecBin->q_earlyPartEneCorrection = ( *phHrtfParambin )->parametricEarlyPartEneCorrection_Q; move16(); #else hDiracDecBin->q_earlyPartEneCorrection = Q28; #endif pRoomAcoustics = NULL; } ELSE { set32_fx( hDiracDecBin->earlyPartEneCorrection_fx, ONE_IN_Q28, CLDFB_NO_CHANNELS_MAX ); #ifdef FIX_FLOAT_1134_BRIR_LEVEL hDiracDecBin->q_earlyPartEneCorrection = Q28; move16(); #endif pRoomAcoustics = &( hRendCfg->roomAcoustics ); } #ifndef FIX_FLOAT_1134_BRIR_LEVEL hDiracDecBin->q_earlyPartEneCorrection = Q28; move16(); #endif IF( hDiracDecBin->hReverb == NULL && pos_idx == 0 ) /* open reverb only for the main direction */ { Loading
lib_util/hrtf_file_reader.c +7 −0 Original line number Diff line number Diff line Loading @@ -1523,11 +1523,18 @@ static ivas_error create_parambin_HRTF_from_rawdata( /* Q factor*/ factorQ = *( (Word16 *) ( hrtf_data_rptr ) ); hrtf_data_rptr += sizeof( Word16 ); #ifdef FIX_FLOAT_1134_BRIR_LEVEL ( *hHRTF )->parametricEarlyPartEneCorrection_Q = factorQ; #endif ptW16 = (Word16 *) hrtf_data_rptr; for ( j = 0; j < CLDFB_NO_CHANNELS_MAX; j++ ) { #ifdef FIX_FLOAT_1134_BRIR_LEVEL ( *hHRTF )->parametricEarlyPartEneCorrection_fx[j] = L_deposit_h( ptW16[j] ); #else ( *hHRTF )->parametricEarlyPartEneCorrection_fx[j] = L_shl_r( L_deposit_l( ptW16[j] ), Q28 - factorQ ); #endif } hrtf_data_rptr += CLDFB_NO_CHANNELS_MAX * sizeof( Word16 ); Loading