Loading lib_com/ivas_cnst.h +5 −0 Original line number Diff line number Diff line Loading @@ -1510,6 +1510,11 @@ typedef enum #define BINAURAL_MAXBANDS 60 /* Max number of bands */ #define BINAURAL_CONVBANDS 50 /* Bands upto which convolution is performed */ #define BINAURAL_NTAPS 5 #ifdef UPDATE_FASTCONV_SBA_FILTER #define BINAURAL_NTAPS_SBA 3 #endif #define BINAURAL_NTAPS_MAX 96 #define HRTF_SH_ORDER 3 Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -173,6 +173,7 @@ #define FIX_559_EXTL_IGF_MISMATCH /* VA: issue 559: fix mismatch between st->extl and st->igf observed as crash in PlanarSBA bitrate switching */ #define UPDATE_FASTCONV_SBA_FILTER /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ Loading lib_dec/ivas_binRenderer_internal.c +35 −0 Original line number Diff line number Diff line Loading @@ -179,8 +179,19 @@ static ivas_error ivas_binRenderer_convModuleOpen( } } else { #ifdef UPDATE_FASTCONV_SBA_FILTER if ( hBinRenderer->ivas_format == SBA_FORMAT ) { hBinRenConvModule->numTaps = BINAURAL_NTAPS_SBA; } else { hBinRenConvModule->numTaps = BINAURAL_NTAPS; } #else hBinRenConvModule->numTaps = BINAURAL_NTAPS; #endif /* Use fixed order filtering */ bandIdx = 0; Loading Loading @@ -429,6 +440,29 @@ static ivas_error ivas_binaural_hrtf_open( mvr2r( rightBRIRImag[i][j], HrtfFastConv->rightBRIRImag[i][j], BINAURAL_NTAPS_MAX ); } #ifdef UPDATE_FASTCONV_SBA_FILTER for ( j = 0; j < HRTF_SH_CHANNELS; j++ ) { mvr2r( leftHRIRReal_HOA3[i][j], HrtfFastConv->leftHRIRReal_HOA3[i][j], BINAURAL_NTAPS_SBA ); mvr2r( leftHRIRImag_HOA3[i][j], HrtfFastConv->leftHRIRImag_HOA3[i][j], BINAURAL_NTAPS_SBA ); mvr2r( rightHRIRReal_HOA3[i][j], HrtfFastConv->rightHRIRReal_HOA3[i][j], BINAURAL_NTAPS_SBA ); mvr2r( rightHRIRImag_HOA3[i][j], HrtfFastConv->rightHRIRImag_HOA3[i][j], BINAURAL_NTAPS_SBA ); } for ( j = 0; j < 9; j++ ) { mvr2r( leftHRIRReal_HOA2[i][j], HrtfFastConv->leftHRIRReal_HOA2[i][j], BINAURAL_NTAPS_SBA ); mvr2r( leftHRIRImag_HOA2[i][j], HrtfFastConv->leftHRIRImag_HOA2[i][j], BINAURAL_NTAPS_SBA ); mvr2r( rightHRIRReal_HOA2[i][j], HrtfFastConv->rightHRIRReal_HOA2[i][j], BINAURAL_NTAPS_SBA ); mvr2r( rightHRIRImag_HOA2[i][j], HrtfFastConv->rightHRIRImag_HOA2[i][j], BINAURAL_NTAPS_SBA ); } for ( j = 0; j < 4; j++ ) { mvr2r( leftHRIRReal_FOA[i][j], HrtfFastConv->leftHRIRReal_FOA[i][j], BINAURAL_NTAPS_SBA ); mvr2r( leftHRIRImag_FOA[i][j], HrtfFastConv->leftHRIRImag_FOA[i][j], BINAURAL_NTAPS_SBA ); mvr2r( rightHRIRReal_FOA[i][j], HrtfFastConv->rightHRIRReal_FOA[i][j], BINAURAL_NTAPS_SBA ); mvr2r( rightHRIRImag_FOA[i][j], HrtfFastConv->rightHRIRImag_FOA[i][j], BINAURAL_NTAPS_SBA ); } #else for ( j = 0; j < HRTF_SH_CHANNELS; j++ ) { mvr2r( leftHRIRReal_HOA3[i][j], HrtfFastConv->leftHRIRReal_HOA3[i][j], BINAURAL_NTAPS ); Loading @@ -450,6 +484,7 @@ static ivas_error ivas_binaural_hrtf_open( mvr2r( rightHRIRReal_FOA[i][j], HrtfFastConv->rightHRIRReal_FOA[i][j], BINAURAL_NTAPS ); mvr2r( rightHRIRImag_FOA[i][j], HrtfFastConv->rightHRIRImag_FOA[i][j], BINAURAL_NTAPS ); } #endif } mvr2r( fastconvReverberationTimes, HrtfFastConv->fastconvReverberationTimes, CLDFB_NO_CHANNELS_MAX ); Loading lib_rend/ivas_rom_binauralRenderer.c +7059 −0 File changed.Preview size limit exceeded, changes collapsed. Show changes lib_rend/ivas_rom_binauralRenderer.h +15 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,20 @@ /* Binaural rendering data set based on HRIRs */ extern const float FASTCONV_HRIR_latency_s; #ifdef UPDATE_FASTCONV_SBA_FILTER extern float leftHRIRReal_HOA3[BINAURAL_CONVBANDS][HRTF_SH_CHANNELS][BINAURAL_NTAPS_SBA]; extern float leftHRIRImag_HOA3[BINAURAL_CONVBANDS][HRTF_SH_CHANNELS][BINAURAL_NTAPS_SBA]; extern float rightHRIRReal_HOA3[BINAURAL_CONVBANDS][HRTF_SH_CHANNELS][BINAURAL_NTAPS_SBA]; extern float rightHRIRImag_HOA3[BINAURAL_CONVBANDS][HRTF_SH_CHANNELS][BINAURAL_NTAPS_SBA]; extern float leftHRIRReal_HOA2[BINAURAL_CONVBANDS][9][BINAURAL_NTAPS_SBA]; extern float leftHRIRImag_HOA2[BINAURAL_CONVBANDS][9][BINAURAL_NTAPS_SBA]; extern float rightHRIRReal_HOA2[BINAURAL_CONVBANDS][9][BINAURAL_NTAPS_SBA]; extern float rightHRIRImag_HOA2[BINAURAL_CONVBANDS][9][BINAURAL_NTAPS_SBA]; extern float leftHRIRReal_FOA[BINAURAL_CONVBANDS][4][BINAURAL_NTAPS_SBA]; extern float leftHRIRImag_FOA[BINAURAL_CONVBANDS][4][BINAURAL_NTAPS_SBA]; extern float rightHRIRReal_FOA[BINAURAL_CONVBANDS][4][BINAURAL_NTAPS_SBA]; extern float rightHRIRImag_FOA[BINAURAL_CONVBANDS][4][BINAURAL_NTAPS_SBA]; #else extern float leftHRIRReal_HOA3[BINAURAL_CONVBANDS][HRTF_SH_CHANNELS][BINAURAL_NTAPS]; extern float leftHRIRImag_HOA3[BINAURAL_CONVBANDS][HRTF_SH_CHANNELS][BINAURAL_NTAPS]; extern float rightHRIRReal_HOA3[BINAURAL_CONVBANDS][HRTF_SH_CHANNELS][BINAURAL_NTAPS]; Loading @@ -56,6 +70,7 @@ extern float leftHRIRReal_FOA[BINAURAL_CONVBANDS][4][BINAURAL_NTAPS]; extern float leftHRIRImag_FOA[BINAURAL_CONVBANDS][4][BINAURAL_NTAPS]; extern float rightHRIRReal_FOA[BINAURAL_CONVBANDS][4][BINAURAL_NTAPS]; extern float rightHRIRImag_FOA[BINAURAL_CONVBANDS][4][BINAURAL_NTAPS]; #endif extern float leftHRIRReal[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTAPS]; extern float leftHRIRImag[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTAPS]; Loading Loading
lib_com/ivas_cnst.h +5 −0 Original line number Diff line number Diff line Loading @@ -1510,6 +1510,11 @@ typedef enum #define BINAURAL_MAXBANDS 60 /* Max number of bands */ #define BINAURAL_CONVBANDS 50 /* Bands upto which convolution is performed */ #define BINAURAL_NTAPS 5 #ifdef UPDATE_FASTCONV_SBA_FILTER #define BINAURAL_NTAPS_SBA 3 #endif #define BINAURAL_NTAPS_MAX 96 #define HRTF_SH_ORDER 3 Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -173,6 +173,7 @@ #define FIX_559_EXTL_IGF_MISMATCH /* VA: issue 559: fix mismatch between st->extl and st->igf observed as crash in PlanarSBA bitrate switching */ #define UPDATE_FASTCONV_SBA_FILTER /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ Loading
lib_dec/ivas_binRenderer_internal.c +35 −0 Original line number Diff line number Diff line Loading @@ -179,8 +179,19 @@ static ivas_error ivas_binRenderer_convModuleOpen( } } else { #ifdef UPDATE_FASTCONV_SBA_FILTER if ( hBinRenderer->ivas_format == SBA_FORMAT ) { hBinRenConvModule->numTaps = BINAURAL_NTAPS_SBA; } else { hBinRenConvModule->numTaps = BINAURAL_NTAPS; } #else hBinRenConvModule->numTaps = BINAURAL_NTAPS; #endif /* Use fixed order filtering */ bandIdx = 0; Loading Loading @@ -429,6 +440,29 @@ static ivas_error ivas_binaural_hrtf_open( mvr2r( rightBRIRImag[i][j], HrtfFastConv->rightBRIRImag[i][j], BINAURAL_NTAPS_MAX ); } #ifdef UPDATE_FASTCONV_SBA_FILTER for ( j = 0; j < HRTF_SH_CHANNELS; j++ ) { mvr2r( leftHRIRReal_HOA3[i][j], HrtfFastConv->leftHRIRReal_HOA3[i][j], BINAURAL_NTAPS_SBA ); mvr2r( leftHRIRImag_HOA3[i][j], HrtfFastConv->leftHRIRImag_HOA3[i][j], BINAURAL_NTAPS_SBA ); mvr2r( rightHRIRReal_HOA3[i][j], HrtfFastConv->rightHRIRReal_HOA3[i][j], BINAURAL_NTAPS_SBA ); mvr2r( rightHRIRImag_HOA3[i][j], HrtfFastConv->rightHRIRImag_HOA3[i][j], BINAURAL_NTAPS_SBA ); } for ( j = 0; j < 9; j++ ) { mvr2r( leftHRIRReal_HOA2[i][j], HrtfFastConv->leftHRIRReal_HOA2[i][j], BINAURAL_NTAPS_SBA ); mvr2r( leftHRIRImag_HOA2[i][j], HrtfFastConv->leftHRIRImag_HOA2[i][j], BINAURAL_NTAPS_SBA ); mvr2r( rightHRIRReal_HOA2[i][j], HrtfFastConv->rightHRIRReal_HOA2[i][j], BINAURAL_NTAPS_SBA ); mvr2r( rightHRIRImag_HOA2[i][j], HrtfFastConv->rightHRIRImag_HOA2[i][j], BINAURAL_NTAPS_SBA ); } for ( j = 0; j < 4; j++ ) { mvr2r( leftHRIRReal_FOA[i][j], HrtfFastConv->leftHRIRReal_FOA[i][j], BINAURAL_NTAPS_SBA ); mvr2r( leftHRIRImag_FOA[i][j], HrtfFastConv->leftHRIRImag_FOA[i][j], BINAURAL_NTAPS_SBA ); mvr2r( rightHRIRReal_FOA[i][j], HrtfFastConv->rightHRIRReal_FOA[i][j], BINAURAL_NTAPS_SBA ); mvr2r( rightHRIRImag_FOA[i][j], HrtfFastConv->rightHRIRImag_FOA[i][j], BINAURAL_NTAPS_SBA ); } #else for ( j = 0; j < HRTF_SH_CHANNELS; j++ ) { mvr2r( leftHRIRReal_HOA3[i][j], HrtfFastConv->leftHRIRReal_HOA3[i][j], BINAURAL_NTAPS ); Loading @@ -450,6 +484,7 @@ static ivas_error ivas_binaural_hrtf_open( mvr2r( rightHRIRReal_FOA[i][j], HrtfFastConv->rightHRIRReal_FOA[i][j], BINAURAL_NTAPS ); mvr2r( rightHRIRImag_FOA[i][j], HrtfFastConv->rightHRIRImag_FOA[i][j], BINAURAL_NTAPS ); } #endif } mvr2r( fastconvReverberationTimes, HrtfFastConv->fastconvReverberationTimes, CLDFB_NO_CHANNELS_MAX ); Loading
lib_rend/ivas_rom_binauralRenderer.c +7059 −0 File changed.Preview size limit exceeded, changes collapsed. Show changes
lib_rend/ivas_rom_binauralRenderer.h +15 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,20 @@ /* Binaural rendering data set based on HRIRs */ extern const float FASTCONV_HRIR_latency_s; #ifdef UPDATE_FASTCONV_SBA_FILTER extern float leftHRIRReal_HOA3[BINAURAL_CONVBANDS][HRTF_SH_CHANNELS][BINAURAL_NTAPS_SBA]; extern float leftHRIRImag_HOA3[BINAURAL_CONVBANDS][HRTF_SH_CHANNELS][BINAURAL_NTAPS_SBA]; extern float rightHRIRReal_HOA3[BINAURAL_CONVBANDS][HRTF_SH_CHANNELS][BINAURAL_NTAPS_SBA]; extern float rightHRIRImag_HOA3[BINAURAL_CONVBANDS][HRTF_SH_CHANNELS][BINAURAL_NTAPS_SBA]; extern float leftHRIRReal_HOA2[BINAURAL_CONVBANDS][9][BINAURAL_NTAPS_SBA]; extern float leftHRIRImag_HOA2[BINAURAL_CONVBANDS][9][BINAURAL_NTAPS_SBA]; extern float rightHRIRReal_HOA2[BINAURAL_CONVBANDS][9][BINAURAL_NTAPS_SBA]; extern float rightHRIRImag_HOA2[BINAURAL_CONVBANDS][9][BINAURAL_NTAPS_SBA]; extern float leftHRIRReal_FOA[BINAURAL_CONVBANDS][4][BINAURAL_NTAPS_SBA]; extern float leftHRIRImag_FOA[BINAURAL_CONVBANDS][4][BINAURAL_NTAPS_SBA]; extern float rightHRIRReal_FOA[BINAURAL_CONVBANDS][4][BINAURAL_NTAPS_SBA]; extern float rightHRIRImag_FOA[BINAURAL_CONVBANDS][4][BINAURAL_NTAPS_SBA]; #else extern float leftHRIRReal_HOA3[BINAURAL_CONVBANDS][HRTF_SH_CHANNELS][BINAURAL_NTAPS]; extern float leftHRIRImag_HOA3[BINAURAL_CONVBANDS][HRTF_SH_CHANNELS][BINAURAL_NTAPS]; extern float rightHRIRReal_HOA3[BINAURAL_CONVBANDS][HRTF_SH_CHANNELS][BINAURAL_NTAPS]; Loading @@ -56,6 +70,7 @@ extern float leftHRIRReal_FOA[BINAURAL_CONVBANDS][4][BINAURAL_NTAPS]; extern float leftHRIRImag_FOA[BINAURAL_CONVBANDS][4][BINAURAL_NTAPS]; extern float rightHRIRReal_FOA[BINAURAL_CONVBANDS][4][BINAURAL_NTAPS]; extern float rightHRIRImag_FOA[BINAURAL_CONVBANDS][4][BINAURAL_NTAPS]; #endif extern float leftHRIRReal[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTAPS]; extern float leftHRIRImag[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTAPS]; Loading