Loading lib_com/options.h +1 −3 Original line number Diff line number Diff line Loading @@ -116,9 +116,7 @@ #define USE_CREND_16BIT_ROM #define USE_REVERB_16BIT_ROM #define USE_TDREND_16BIT_ROM // #define USE_FASTCONV_PARAMBIN_16BIT_ROM // #define USE_PARAMBIN_16BIT_ROM // #define USE_TDREND_16BIT_ROM #define USE_FASTCONV_PARAMBIN_16BIT_ROM #endif #define NONBE_1377_REND_DIRATT_CONF /* Eri: Issue 1377: Error in directivity attenuation configuration for both IVAS_dec and IVAS_rend */ Loading lib_dec/ivas_binRenderer_internal_fx.c +44 −0 Original line number Diff line number Diff line Loading @@ -926,7 +926,11 @@ static ivas_error ivas_binaural_hrtf_open_fx( #endif } #ifdef USE_FASTCONV_PARAMBIN_16BIT_ROM HrtfFastConv->allocate_init_flag = 0; #else HrtfFastConv->allocate_init_flag = 1; #endif move16(); #ifdef FIX_CREND_SIMPLIFY_CODE Loading Loading @@ -976,10 +980,17 @@ static ivas_error ivas_binaural_hrtf_open_fx( FOR( j = 0; j < HRTF_LS_CHANNELS; j++ ) { #ifdef FIX_CREND_SIMPLIFY_CODE #ifdef USE_FASTCONV_PARAMBIN_16BIT_ROM Copy_Scale_sig_16_32_no_sat( leftHRIRReal_fx[i][j], HrtfFastConv->leftReal_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_HRIR_fx ); Copy_Scale_sig_16_32_no_sat( leftHRIRImag_fx[i][j], HrtfFastConv->leftImag_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_HRIR_fx ); Copy_Scale_sig_16_32_no_sat( rightHRIRReal_fx[i][j], HrtfFastConv->rightReal_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_HRIR_fx ); Copy_Scale_sig_16_32_no_sat( rightHRIRImag_fx[i][j], HrtfFastConv->rightImag_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_HRIR_fx ); #else HrtfFastConv->leftReal_fx[i][j] = leftHRIRReal_fx[i][j]; HrtfFastConv->leftImag_fx[i][j] = leftHRIRImag_fx[i][j]; HrtfFastConv->rightReal_fx[i][j] = rightHRIRReal_fx[i][j]; HrtfFastConv->rightImag_fx[i][j] = rightHRIRImag_fx[i][j]; #endif #else HrtfFastConv->leftHRIRReal_fx[i][j] = leftHRIRReal_fx[i][j]; HrtfFastConv->leftHRIRImag_fx[i][j] = leftHRIRImag_fx[i][j]; Loading @@ -997,10 +1008,17 @@ static ivas_error ivas_binaural_hrtf_open_fx( FOR( j = 0; j < HRTF_LS_CHANNELS; j++ ) { #ifdef FIX_CREND_SIMPLIFY_CODE #ifdef USE_FASTCONV_PARAMBIN_16BIT_ROM Copy_Scale_sig_16_32_no_sat( leftBRIRReal_fx[i][j], HrtfFastConv->leftReal_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_BRIR_fx ); Copy_Scale_sig_16_32_no_sat( leftBRIRImag_fx[i][j], HrtfFastConv->leftImag_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_BRIR_fx ); Copy_Scale_sig_16_32_no_sat( rightBRIRReal_fx[i][j], HrtfFastConv->rightReal_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_BRIR_fx ); Copy_Scale_sig_16_32_no_sat( rightBRIRImag_fx[i][j], HrtfFastConv->rightImag_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_BRIR_fx ); #else HrtfFastConv->leftReal_fx[i][j] = leftBRIRReal_fx[i][j]; HrtfFastConv->leftImag_fx[i][j] = leftBRIRImag_fx[i][j]; HrtfFastConv->rightReal_fx[i][j] = rightBRIRReal_fx[i][j]; HrtfFastConv->rightImag_fx[i][j] = rightBRIRImag_fx[i][j]; #endif #else HrtfFastConv->leftBRIRReal_fx[i][j] = leftBRIRReal_fx[i][j]; HrtfFastConv->leftBRIRImag_fx[i][j] = leftBRIRImag_fx[i][j]; Loading @@ -1019,10 +1037,17 @@ static ivas_error ivas_binaural_hrtf_open_fx( FOR( j = 0; j < HOA3_CHANNELS; j++ ) { #ifdef FIX_CREND_SIMPLIFY_CODE #ifdef USE_FASTCONV_PARAMBIN_16BIT_ROM Copy_Scale_sig_16_32_no_sat( leftHRIRReal_HOA3_fx[i][j], HrtfFastConv->leftReal_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_HOA3_fx ); Copy_Scale_sig_16_32_no_sat( leftHRIRImag_HOA3_fx[i][j], HrtfFastConv->leftImag_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_HOA3_fx ); Copy_Scale_sig_16_32_no_sat( rightHRIRReal_HOA3_fx[i][j], HrtfFastConv->rightReal_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_HOA3_fx ); Copy_Scale_sig_16_32_no_sat( rightHRIRImag_HOA3_fx[i][j], HrtfFastConv->rightImag_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_HOA3_fx ); #else HrtfFastConv->leftReal_fx[i][j] = leftHRIRReal_HOA3_fx[i][j]; HrtfFastConv->leftImag_fx[i][j] = leftHRIRImag_HOA3_fx[i][j]; HrtfFastConv->rightReal_fx[i][j] = rightHRIRReal_HOA3_fx[i][j]; HrtfFastConv->rightImag_fx[i][j] = rightHRIRImag_HOA3_fx[i][j]; #endif #else HrtfFastConv->leftHRIRReal_HOA3_fx[i][j] = leftHRIRReal_HOA3_fx[i][j]; HrtfFastConv->leftHRIRImag_HOA3_fx[i][j] = leftHRIRImag_HOA3_fx[i][j]; Loading @@ -1043,10 +1068,17 @@ static ivas_error ivas_binaural_hrtf_open_fx( FOR( j = 0; j < HOA2_CHANNELS; j++ ) { #ifdef FIX_CREND_SIMPLIFY_CODE #ifdef USE_FASTCONV_PARAMBIN_16BIT_ROM Copy_Scale_sig_16_32_no_sat( leftHRIRReal_HOA2_fx[i][j], HrtfFastConv->leftReal_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_HOA2_fx ); Copy_Scale_sig_16_32_no_sat( leftHRIRImag_HOA2_fx[i][j], HrtfFastConv->leftImag_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_HOA2_fx ); Copy_Scale_sig_16_32_no_sat( rightHRIRReal_HOA2_fx[i][j], HrtfFastConv->rightReal_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_HOA2_fx ); Copy_Scale_sig_16_32_no_sat( rightHRIRImag_HOA2_fx[i][j], HrtfFastConv->rightImag_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_HOA2_fx ); #else HrtfFastConv->leftReal_fx[i][j] = leftHRIRReal_HOA2_fx[i][j]; HrtfFastConv->leftImag_fx[i][j] = leftHRIRImag_HOA2_fx[i][j]; HrtfFastConv->rightReal_fx[i][j] = rightHRIRReal_HOA2_fx[i][j]; HrtfFastConv->rightImag_fx[i][j] = rightHRIRImag_HOA2_fx[i][j]; #endif #else HrtfFastConv->leftHRIRReal_HOA2_fx[i][j] = leftHRIRReal_HOA2_fx[i][j]; HrtfFastConv->leftHRIRImag_HOA2_fx[i][j] = leftHRIRImag_HOA2_fx[i][j]; Loading @@ -1064,10 +1096,17 @@ static ivas_error ivas_binaural_hrtf_open_fx( FOR( j = 0; j < FOA_CHANNELS; j++ ) { #ifdef FIX_CREND_SIMPLIFY_CODE #ifdef USE_FASTCONV_PARAMBIN_16BIT_ROM Copy_Scale_sig_16_32_no_sat( leftHRIRReal_FOA_fx[i][j], HrtfFastConv->leftReal_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_FOA_fx ); Copy_Scale_sig_16_32_no_sat( leftHRIRImag_FOA_fx[i][j], HrtfFastConv->leftImag_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_FOA_fx ); Copy_Scale_sig_16_32_no_sat( rightHRIRReal_FOA_fx[i][j], HrtfFastConv->rightReal_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_FOA_fx ); Copy_Scale_sig_16_32_no_sat( rightHRIRImag_FOA_fx[i][j], HrtfFastConv->rightImag_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_FOA_fx ); #else HrtfFastConv->leftReal_fx[i][j] = leftHRIRReal_FOA_fx[i][j]; HrtfFastConv->leftImag_fx[i][j] = leftHRIRImag_FOA_fx[i][j]; HrtfFastConv->rightReal_fx[i][j] = rightHRIRReal_FOA_fx[i][j]; HrtfFastConv->rightImag_fx[i][j] = rightHRIRImag_FOA_fx[i][j]; #endif #else HrtfFastConv->leftHRIRReal_FOA_fx[i][j] = leftHRIRReal_FOA_fx[i][j]; HrtfFastConv->leftHRIRImag_FOA_fx[i][j] = leftHRIRImag_FOA_fx[i][j]; Loading @@ -1077,8 +1116,13 @@ static ivas_error ivas_binaural_hrtf_open_fx( } } } #ifdef USE_FASTCONV_PARAMBIN_16BIT_ROM Copy_Scale_sig_16_32_no_sat( fastconvReverberationTimes_fx, HrtfFastConv->fastconvReverberationTimes_fx, CLDFB_NO_CHANNELS_MAX, Q26 - FASTCONV_factor_Q_reverberationTimes_fx ); Copy_Scale_sig_16_32_no_sat( fastconvReverberationEneCorrections_fx, HrtfFastConv->fastconvReverberationEneCorrections_fx, CLDFB_NO_CHANNELS_MAX, Q31 - FASTCONV_factor_Q_reverberationTimes_fx ); #else Copy32( fastconvReverberationTimes_fx, HrtfFastConv->fastconvReverberationTimes_fx, CLDFB_NO_CHANNELS_MAX ); Copy32( fastconvReverberationEneCorrections_fx, HrtfFastConv->fastconvReverberationEneCorrections_fx, CLDFB_NO_CHANNELS_MAX ); #endif *hHrtfFastConv = HrtfFastConv; } Loading lib_rend/ivas_dirac_dec_binaural_functions_fx.c +18 −1 Original line number Diff line number Diff line Loading @@ -481,18 +481,35 @@ ivas_error ivas_dirac_dec_binaural_copy_hrtfs_fx( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for parametric binauralizer HRTF tables" ); } #ifdef USE_FASTCONV_PARAMBIN_16BIT_ROM FOR( i = 0; i < BINAURAL_CHANNELS; i++ ) { FOR( j = 0; j < HRTF_SH_CHANNELS; j++ ) { Copy( hrtfShCoeffsRe_fx[i][j], hrtfParambin->hrtfShCoeffsRe_fx[i][j], HRTF_NUM_BINS ); /*Q14*/ Scale_sig( hrtfParambin->hrtfShCoeffsRe_fx[i][j], HRTF_NUM_BINS, Q14 - hrtfShCoeffs_factorQ_fx ); Copy( hrtfShCoeffsIm_fx[i][j], hrtfParambin->hrtfShCoeffsIm_fx[i][j], HRTF_NUM_BINS ); /*Q14*/ Scale_sig( hrtfParambin->hrtfShCoeffsIm_fx[i][j], HRTF_NUM_BINS, Q14 - hrtfShCoeffs_factorQ_fx ); } } Copy_Scale_sig_16_32_no_sat( parametricReverberationTimes_fx, hrtfParambin->parametricReverberationTimes_fx, CLDFB_NO_CHANNELS_MAX, Q26 - parametricReverberationTimes_factorQ_fx ); /*Q26*/ Copy_Scale_sig_16_32_no_sat( parametricReverberationEneCorrections_fx, hrtfParambin->parametricReverberationEneCorrections_fx, CLDFB_NO_CHANNELS_MAX, Q31 - parametricReverberationEneCorrections_factorQ_fx ); /*Q31*/ Copy_Scale_sig_16_32_no_sat( parametricEarlyPartEneCorrection_fx, hrtfParambin->parametricEarlyPartEneCorrection_fx, CLDFB_NO_CHANNELS_MAX, Q28 - parametricEarlyPartEneCorrection_factorQ_fx ); /*Q28*/ #else FOR( i = 0; i < BINAURAL_CHANNELS; i++ ) { FOR( j = 0; j < HRTF_SH_CHANNELS; j++ ) { Copy( hrtfShCoeffsRe_fx[i][j], hrtfParambin->hrtfShCoeffsRe_fx[i][j], HRTF_NUM_BINS ); /*Q14*/ Copy( hrtfShCoeffsIm_fx[i][j], hrtfParambin->hrtfShCoeffsIm_fx[i][j], HRTF_NUM_BINS ); /*Q14*/ } } Copy32( parametricReverberationTimes_fx, hrtfParambin->parametricReverberationTimes_fx, CLDFB_NO_CHANNELS_MAX ); /*Q26*/ Copy32( parametricReverberationEneCorrections_fx, hrtfParambin->parametricReverberationEneCorrections_fx, CLDFB_NO_CHANNELS_MAX ); /*Q31*/ Copy32( parametricEarlyPartEneCorrection_fx, hrtfParambin->parametricEarlyPartEneCorrection_fx, CLDFB_NO_CHANNELS_MAX ); /*Q28*/ #endif *hHrtfParambin = hrtfParambin; } Loading lib_rend/ivas_rom_binauralRenderer.h +2 −2 Original line number Diff line number Diff line Loading @@ -91,13 +91,13 @@ extern Word16 leftBRIRImag_fx[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTA extern Word16 rightBRIRReal_fx[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTAPS_MAX]; /* Q29 */ extern Word16 rightBRIRImag_fx[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTAPS_MAX]; /* Q29 */ /* Reverberation parameters based on BRIRs for fastconv */ extern Word16 fastconvReverberationTimes_fx[CLDFB_NO_CHANNELS_MAX]; /* Q31 */ extern Word16 fastconvReverberationTimes_fx[CLDFB_NO_CHANNELS_MAX]; /* Q26 */ extern Word16 fastconvReverberationEneCorrections_fx[CLDFB_NO_CHANNELS_MAX]; /* Q31 */ /* Binaural rendering data set based on BRIRs, to be used in a combined manner * with the above binaural rendering data set based on HRIRs for parametric * renderer */ extern const Word16 parametricReverberationTimes_fx[CLDFB_NO_CHANNELS_MAX]; /* Q31 */ extern const Word16 parametricReverberationTimes_fx[CLDFB_NO_CHANNELS_MAX]; /* Q26 */ extern const Word16 parametricReverberationEneCorrections_fx[CLDFB_NO_CHANNELS_MAX]; /* Q31 */ extern const Word16 parametricEarlyPartEneCorrection_fx[CLDFB_NO_CHANNELS_MAX]; /* Q28 */ Loading lib_rend/ivas_rom_binaural_crend_head_fx.c +1 −2 Original line number Diff line number Diff line Loading @@ -67554,5 +67554,4 @@ Word32 cosine_table_Q31 [181] = { #undef WMC_TOOL_SKIP /* clang-format on */ Loading
lib_com/options.h +1 −3 Original line number Diff line number Diff line Loading @@ -116,9 +116,7 @@ #define USE_CREND_16BIT_ROM #define USE_REVERB_16BIT_ROM #define USE_TDREND_16BIT_ROM // #define USE_FASTCONV_PARAMBIN_16BIT_ROM // #define USE_PARAMBIN_16BIT_ROM // #define USE_TDREND_16BIT_ROM #define USE_FASTCONV_PARAMBIN_16BIT_ROM #endif #define NONBE_1377_REND_DIRATT_CONF /* Eri: Issue 1377: Error in directivity attenuation configuration for both IVAS_dec and IVAS_rend */ Loading
lib_dec/ivas_binRenderer_internal_fx.c +44 −0 Original line number Diff line number Diff line Loading @@ -926,7 +926,11 @@ static ivas_error ivas_binaural_hrtf_open_fx( #endif } #ifdef USE_FASTCONV_PARAMBIN_16BIT_ROM HrtfFastConv->allocate_init_flag = 0; #else HrtfFastConv->allocate_init_flag = 1; #endif move16(); #ifdef FIX_CREND_SIMPLIFY_CODE Loading Loading @@ -976,10 +980,17 @@ static ivas_error ivas_binaural_hrtf_open_fx( FOR( j = 0; j < HRTF_LS_CHANNELS; j++ ) { #ifdef FIX_CREND_SIMPLIFY_CODE #ifdef USE_FASTCONV_PARAMBIN_16BIT_ROM Copy_Scale_sig_16_32_no_sat( leftHRIRReal_fx[i][j], HrtfFastConv->leftReal_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_HRIR_fx ); Copy_Scale_sig_16_32_no_sat( leftHRIRImag_fx[i][j], HrtfFastConv->leftImag_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_HRIR_fx ); Copy_Scale_sig_16_32_no_sat( rightHRIRReal_fx[i][j], HrtfFastConv->rightReal_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_HRIR_fx ); Copy_Scale_sig_16_32_no_sat( rightHRIRImag_fx[i][j], HrtfFastConv->rightImag_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_HRIR_fx ); #else HrtfFastConv->leftReal_fx[i][j] = leftHRIRReal_fx[i][j]; HrtfFastConv->leftImag_fx[i][j] = leftHRIRImag_fx[i][j]; HrtfFastConv->rightReal_fx[i][j] = rightHRIRReal_fx[i][j]; HrtfFastConv->rightImag_fx[i][j] = rightHRIRImag_fx[i][j]; #endif #else HrtfFastConv->leftHRIRReal_fx[i][j] = leftHRIRReal_fx[i][j]; HrtfFastConv->leftHRIRImag_fx[i][j] = leftHRIRImag_fx[i][j]; Loading @@ -997,10 +1008,17 @@ static ivas_error ivas_binaural_hrtf_open_fx( FOR( j = 0; j < HRTF_LS_CHANNELS; j++ ) { #ifdef FIX_CREND_SIMPLIFY_CODE #ifdef USE_FASTCONV_PARAMBIN_16BIT_ROM Copy_Scale_sig_16_32_no_sat( leftBRIRReal_fx[i][j], HrtfFastConv->leftReal_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_BRIR_fx ); Copy_Scale_sig_16_32_no_sat( leftBRIRImag_fx[i][j], HrtfFastConv->leftImag_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_BRIR_fx ); Copy_Scale_sig_16_32_no_sat( rightBRIRReal_fx[i][j], HrtfFastConv->rightReal_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_BRIR_fx ); Copy_Scale_sig_16_32_no_sat( rightBRIRImag_fx[i][j], HrtfFastConv->rightImag_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_BRIR_fx ); #else HrtfFastConv->leftReal_fx[i][j] = leftBRIRReal_fx[i][j]; HrtfFastConv->leftImag_fx[i][j] = leftBRIRImag_fx[i][j]; HrtfFastConv->rightReal_fx[i][j] = rightBRIRReal_fx[i][j]; HrtfFastConv->rightImag_fx[i][j] = rightBRIRImag_fx[i][j]; #endif #else HrtfFastConv->leftBRIRReal_fx[i][j] = leftBRIRReal_fx[i][j]; HrtfFastConv->leftBRIRImag_fx[i][j] = leftBRIRImag_fx[i][j]; Loading @@ -1019,10 +1037,17 @@ static ivas_error ivas_binaural_hrtf_open_fx( FOR( j = 0; j < HOA3_CHANNELS; j++ ) { #ifdef FIX_CREND_SIMPLIFY_CODE #ifdef USE_FASTCONV_PARAMBIN_16BIT_ROM Copy_Scale_sig_16_32_no_sat( leftHRIRReal_HOA3_fx[i][j], HrtfFastConv->leftReal_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_HOA3_fx ); Copy_Scale_sig_16_32_no_sat( leftHRIRImag_HOA3_fx[i][j], HrtfFastConv->leftImag_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_HOA3_fx ); Copy_Scale_sig_16_32_no_sat( rightHRIRReal_HOA3_fx[i][j], HrtfFastConv->rightReal_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_HOA3_fx ); Copy_Scale_sig_16_32_no_sat( rightHRIRImag_HOA3_fx[i][j], HrtfFastConv->rightImag_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_HOA3_fx ); #else HrtfFastConv->leftReal_fx[i][j] = leftHRIRReal_HOA3_fx[i][j]; HrtfFastConv->leftImag_fx[i][j] = leftHRIRImag_HOA3_fx[i][j]; HrtfFastConv->rightReal_fx[i][j] = rightHRIRReal_HOA3_fx[i][j]; HrtfFastConv->rightImag_fx[i][j] = rightHRIRImag_HOA3_fx[i][j]; #endif #else HrtfFastConv->leftHRIRReal_HOA3_fx[i][j] = leftHRIRReal_HOA3_fx[i][j]; HrtfFastConv->leftHRIRImag_HOA3_fx[i][j] = leftHRIRImag_HOA3_fx[i][j]; Loading @@ -1043,10 +1068,17 @@ static ivas_error ivas_binaural_hrtf_open_fx( FOR( j = 0; j < HOA2_CHANNELS; j++ ) { #ifdef FIX_CREND_SIMPLIFY_CODE #ifdef USE_FASTCONV_PARAMBIN_16BIT_ROM Copy_Scale_sig_16_32_no_sat( leftHRIRReal_HOA2_fx[i][j], HrtfFastConv->leftReal_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_HOA2_fx ); Copy_Scale_sig_16_32_no_sat( leftHRIRImag_HOA2_fx[i][j], HrtfFastConv->leftImag_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_HOA2_fx ); Copy_Scale_sig_16_32_no_sat( rightHRIRReal_HOA2_fx[i][j], HrtfFastConv->rightReal_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_HOA2_fx ); Copy_Scale_sig_16_32_no_sat( rightHRIRImag_HOA2_fx[i][j], HrtfFastConv->rightImag_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_HOA2_fx ); #else HrtfFastConv->leftReal_fx[i][j] = leftHRIRReal_HOA2_fx[i][j]; HrtfFastConv->leftImag_fx[i][j] = leftHRIRImag_HOA2_fx[i][j]; HrtfFastConv->rightReal_fx[i][j] = rightHRIRReal_HOA2_fx[i][j]; HrtfFastConv->rightImag_fx[i][j] = rightHRIRImag_HOA2_fx[i][j]; #endif #else HrtfFastConv->leftHRIRReal_HOA2_fx[i][j] = leftHRIRReal_HOA2_fx[i][j]; HrtfFastConv->leftHRIRImag_HOA2_fx[i][j] = leftHRIRImag_HOA2_fx[i][j]; Loading @@ -1064,10 +1096,17 @@ static ivas_error ivas_binaural_hrtf_open_fx( FOR( j = 0; j < FOA_CHANNELS; j++ ) { #ifdef FIX_CREND_SIMPLIFY_CODE #ifdef USE_FASTCONV_PARAMBIN_16BIT_ROM Copy_Scale_sig_16_32_no_sat( leftHRIRReal_FOA_fx[i][j], HrtfFastConv->leftReal_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_FOA_fx ); Copy_Scale_sig_16_32_no_sat( leftHRIRImag_FOA_fx[i][j], HrtfFastConv->leftImag_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_FOA_fx ); Copy_Scale_sig_16_32_no_sat( rightHRIRReal_FOA_fx[i][j], HrtfFastConv->rightReal_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_FOA_fx ); Copy_Scale_sig_16_32_no_sat( rightHRIRImag_FOA_fx[i][j], HrtfFastConv->rightImag_fx[i][j], HrtfFastConv->ntaps, Q29 - FASTCONV_factor_Q_FOA_fx ); #else HrtfFastConv->leftReal_fx[i][j] = leftHRIRReal_FOA_fx[i][j]; HrtfFastConv->leftImag_fx[i][j] = leftHRIRImag_FOA_fx[i][j]; HrtfFastConv->rightReal_fx[i][j] = rightHRIRReal_FOA_fx[i][j]; HrtfFastConv->rightImag_fx[i][j] = rightHRIRImag_FOA_fx[i][j]; #endif #else HrtfFastConv->leftHRIRReal_FOA_fx[i][j] = leftHRIRReal_FOA_fx[i][j]; HrtfFastConv->leftHRIRImag_FOA_fx[i][j] = leftHRIRImag_FOA_fx[i][j]; Loading @@ -1077,8 +1116,13 @@ static ivas_error ivas_binaural_hrtf_open_fx( } } } #ifdef USE_FASTCONV_PARAMBIN_16BIT_ROM Copy_Scale_sig_16_32_no_sat( fastconvReverberationTimes_fx, HrtfFastConv->fastconvReverberationTimes_fx, CLDFB_NO_CHANNELS_MAX, Q26 - FASTCONV_factor_Q_reverberationTimes_fx ); Copy_Scale_sig_16_32_no_sat( fastconvReverberationEneCorrections_fx, HrtfFastConv->fastconvReverberationEneCorrections_fx, CLDFB_NO_CHANNELS_MAX, Q31 - FASTCONV_factor_Q_reverberationTimes_fx ); #else Copy32( fastconvReverberationTimes_fx, HrtfFastConv->fastconvReverberationTimes_fx, CLDFB_NO_CHANNELS_MAX ); Copy32( fastconvReverberationEneCorrections_fx, HrtfFastConv->fastconvReverberationEneCorrections_fx, CLDFB_NO_CHANNELS_MAX ); #endif *hHrtfFastConv = HrtfFastConv; } Loading
lib_rend/ivas_dirac_dec_binaural_functions_fx.c +18 −1 Original line number Diff line number Diff line Loading @@ -481,18 +481,35 @@ ivas_error ivas_dirac_dec_binaural_copy_hrtfs_fx( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for parametric binauralizer HRTF tables" ); } #ifdef USE_FASTCONV_PARAMBIN_16BIT_ROM FOR( i = 0; i < BINAURAL_CHANNELS; i++ ) { FOR( j = 0; j < HRTF_SH_CHANNELS; j++ ) { Copy( hrtfShCoeffsRe_fx[i][j], hrtfParambin->hrtfShCoeffsRe_fx[i][j], HRTF_NUM_BINS ); /*Q14*/ Scale_sig( hrtfParambin->hrtfShCoeffsRe_fx[i][j], HRTF_NUM_BINS, Q14 - hrtfShCoeffs_factorQ_fx ); Copy( hrtfShCoeffsIm_fx[i][j], hrtfParambin->hrtfShCoeffsIm_fx[i][j], HRTF_NUM_BINS ); /*Q14*/ Scale_sig( hrtfParambin->hrtfShCoeffsIm_fx[i][j], HRTF_NUM_BINS, Q14 - hrtfShCoeffs_factorQ_fx ); } } Copy_Scale_sig_16_32_no_sat( parametricReverberationTimes_fx, hrtfParambin->parametricReverberationTimes_fx, CLDFB_NO_CHANNELS_MAX, Q26 - parametricReverberationTimes_factorQ_fx ); /*Q26*/ Copy_Scale_sig_16_32_no_sat( parametricReverberationEneCorrections_fx, hrtfParambin->parametricReverberationEneCorrections_fx, CLDFB_NO_CHANNELS_MAX, Q31 - parametricReverberationEneCorrections_factorQ_fx ); /*Q31*/ Copy_Scale_sig_16_32_no_sat( parametricEarlyPartEneCorrection_fx, hrtfParambin->parametricEarlyPartEneCorrection_fx, CLDFB_NO_CHANNELS_MAX, Q28 - parametricEarlyPartEneCorrection_factorQ_fx ); /*Q28*/ #else FOR( i = 0; i < BINAURAL_CHANNELS; i++ ) { FOR( j = 0; j < HRTF_SH_CHANNELS; j++ ) { Copy( hrtfShCoeffsRe_fx[i][j], hrtfParambin->hrtfShCoeffsRe_fx[i][j], HRTF_NUM_BINS ); /*Q14*/ Copy( hrtfShCoeffsIm_fx[i][j], hrtfParambin->hrtfShCoeffsIm_fx[i][j], HRTF_NUM_BINS ); /*Q14*/ } } Copy32( parametricReverberationTimes_fx, hrtfParambin->parametricReverberationTimes_fx, CLDFB_NO_CHANNELS_MAX ); /*Q26*/ Copy32( parametricReverberationEneCorrections_fx, hrtfParambin->parametricReverberationEneCorrections_fx, CLDFB_NO_CHANNELS_MAX ); /*Q31*/ Copy32( parametricEarlyPartEneCorrection_fx, hrtfParambin->parametricEarlyPartEneCorrection_fx, CLDFB_NO_CHANNELS_MAX ); /*Q28*/ #endif *hHrtfParambin = hrtfParambin; } Loading
lib_rend/ivas_rom_binauralRenderer.h +2 −2 Original line number Diff line number Diff line Loading @@ -91,13 +91,13 @@ extern Word16 leftBRIRImag_fx[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTA extern Word16 rightBRIRReal_fx[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTAPS_MAX]; /* Q29 */ extern Word16 rightBRIRImag_fx[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTAPS_MAX]; /* Q29 */ /* Reverberation parameters based on BRIRs for fastconv */ extern Word16 fastconvReverberationTimes_fx[CLDFB_NO_CHANNELS_MAX]; /* Q31 */ extern Word16 fastconvReverberationTimes_fx[CLDFB_NO_CHANNELS_MAX]; /* Q26 */ extern Word16 fastconvReverberationEneCorrections_fx[CLDFB_NO_CHANNELS_MAX]; /* Q31 */ /* Binaural rendering data set based on BRIRs, to be used in a combined manner * with the above binaural rendering data set based on HRIRs for parametric * renderer */ extern const Word16 parametricReverberationTimes_fx[CLDFB_NO_CHANNELS_MAX]; /* Q31 */ extern const Word16 parametricReverberationTimes_fx[CLDFB_NO_CHANNELS_MAX]; /* Q26 */ extern const Word16 parametricReverberationEneCorrections_fx[CLDFB_NO_CHANNELS_MAX]; /* Q31 */ extern const Word16 parametricEarlyPartEneCorrection_fx[CLDFB_NO_CHANNELS_MAX]; /* Q28 */ Loading
lib_rend/ivas_rom_binaural_crend_head_fx.c +1 −2 Original line number Diff line number Diff line Loading @@ -67554,5 +67554,4 @@ Word32 cosine_table_Q31 [181] = { #undef WMC_TOOL_SKIP /* clang-format on */