Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -168,6 +168,7 @@ #define FIX_1123_FASTCONV_16BIT_ROM /* FhG: issue 1123: update FastConv ROM tables and scripts to generate 16 bit tables instead of float */ #define FIX_1123_PARAMBIN_16BIT_ROM /* FhG,Nok: issue 1123: update ParamBin ROM tables and scripts to generate 16 bit tables instead of float */ #define FIX_1123_TDREN_16BIT_ROM #define FIX_1123_TDREN_32BIT_ROM_EL_ER #define FIX_1123_OPTIMIZE_BINARY_LOAD /* Nok: Optimize loading of binary files in fixed point format by precomputing scaling factors */ #define FIX_1053_AEID_FILE_TEST /* Philips: Tests for the -aeid file and fix for memory error */ #define FIX_1121_MASA_DESCRIPTOR /* VA: issue 1121: Define 'ivasmasaFormatDescriptor' at one common place */ Loading lib_dec/ivas_binRenderer_internal.c +42 −46 Original line number Diff line number Diff line Loading @@ -707,11 +707,7 @@ ivas_error ivas_allocate_binaural_hrtf( } } #ifdef FIX_1123_FASTCONV_16BIT_ROM if ( renderer_type == RENDERER_BINAURAL_FASTCONV && ( bin_input_config == BINAURAL_INPUT_AUDIO_CONFIG_COMBINED || bin_input_config == BINAURAL_INPUT_AUDIO_CONFIG_INVALID ) ) #else if ( renderer_type == RENDERER_BINAURAL_FASTCONV || bin_input_config == BINAURAL_INPUT_AUDIO_CONFIG_COMBINED ) #endif { if ( ( HrtfFastConv->leftHRIRReal == NULL ) && ( HrtfFastConv->leftHRIRImag == NULL ) && ( HrtfFastConv->rightHRIRReal == NULL ) && ( HrtfFastConv->rightHRIRImag == NULL ) ) { Loading Loading @@ -752,11 +748,8 @@ ivas_error ivas_allocate_binaural_hrtf( #endif } } #ifdef FIX_1123_FASTCONV_16BIT_ROM if ( renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM && ( bin_input_config == BINAURAL_INPUT_AUDIO_CONFIG_COMBINED || bin_input_config == BINAURAL_INPUT_AUDIO_CONFIG_INVALID ) ) #else if ( renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM || bin_input_config == BINAURAL_INPUT_AUDIO_CONFIG_COMBINED ) #endif { if ( ( HrtfFastConv->leftBRIRReal == NULL ) && ( HrtfFastConv->leftBRIRImag == NULL ) && ( HrtfFastConv->rightBRIRReal == NULL ) && ( HrtfFastConv->rightBRIRImag == NULL ) ) { Loading Loading @@ -840,23 +833,43 @@ static ivas_error ivas_binaural_hrtf_open( if ( input_config == IVAS_AUDIO_CONFIG_BINAURAL || renderer_type == RENDERER_BINAURAL_FASTCONV ) { #ifdef FIX_1123_FASTCONV_16BIT_ROM HrtfFastConv->FASTCONV_HRIR_latency_s = (float) FASTCONV_HRIR_latency_s * powf( 2.f, -1.f * (float) FASTCONV_FOA_latency_s_factorQ ); #else HrtfFastConv->FASTCONV_HRIR_latency_s = FASTCONV_HRIR_latency_s; #endif } if ( input_config == IVAS_AUDIO_CONFIG_HOA2 ) { #ifdef FIX_1123_FASTCONV_16BIT_ROM HrtfFastConv->FASTCONV_HOA2_latency_s = (float) FASTCONV_HOA2_latency_s * powf( 2.f, -1.f * (float) FASTCONV_HOA2_latency_s_factorQ ); #else HrtfFastConv->FASTCONV_HOA2_latency_s = FASTCONV_HOA2_latency_s; #endif } if ( input_config == IVAS_AUDIO_CONFIG_HOA3 ) { #ifdef FIX_1123_FASTCONV_16BIT_ROM HrtfFastConv->FASTCONV_HOA3_latency_s = (float) FASTCONV_HOA3_latency_s * powf( 2.f, -1.f * (float) FASTCONV_HOA3_latency_s_factorQ ); #else HrtfFastConv->FASTCONV_HOA3_latency_s = FASTCONV_HOA3_latency_s; #endif } if ( input_config == IVAS_AUDIO_CONFIG_FOA ) { #ifdef FIX_1123_FASTCONV_16BIT_ROM HrtfFastConv->FASTCONV_FOA_latency_s = (float) FASTCONV_FOA_latency_s * powf( 2.f, -1.f * (float) FASTCONV_HRIR_latency_s_factorQ ); #else HrtfFastConv->FASTCONV_FOA_latency_s = FASTCONV_FOA_latency_s; #endif } if ( input_config == IVAS_AUDIO_CONFIG_BINAURAL || renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ) { #ifdef FIX_1123_FASTCONV_16BIT_ROM HrtfFastConv->FASTCONV_BRIR_latency_s = (float) FASTCONV_BRIR_latency_s * powf( 2.f, -1.f * (float) FASTCONV_BRIR_latency_s_factorQ ); #else HrtfFastConv->FASTCONV_BRIR_latency_s = FASTCONV_BRIR_latency_s; #endif } #ifdef FIX_1123_FASTCONV_16BIT_ROM Loading @@ -871,28 +884,46 @@ static ivas_error ivas_binaural_hrtf_open( } for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { #ifndef FIX_1123_FASTCONV_16BIT_ROM if ( renderer_type == RENDERER_BINAURAL_FASTCONV ) { for ( j = 0; j < HRTF_LS_CHANNELS; j++ ) { #ifdef FIX_1123_FASTCONV_16BIT_ROM for ( k = 0; k < HrtfFastConv->ntaps_hrir; k++ ) { HrtfFastConv->leftHRIRReal[i][j][k] = (float) leftHRIRReal[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_factorQ ); HrtfFastConv->leftHRIRImag[i][j][k] = (float) leftHRIRImag[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_factorQ ); HrtfFastConv->rightHRIRReal[i][j][k] = (float) rightHRIRReal[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_factorQ ); HrtfFastConv->rightHRIRImag[i][j][k] = (float) rightHRIRImag[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_factorQ ); } #else HrtfFastConv->leftHRIRReal[i][j] = leftHRIRReal[i][j]; HrtfFastConv->leftHRIRImag[i][j] = leftHRIRImag[i][j]; HrtfFastConv->rightHRIRReal[i][j] = rightHRIRReal[i][j]; HrtfFastConv->rightHRIRImag[i][j] = rightHRIRImag[i][j]; #endif } } else if ( renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ) { for ( j = 0; j < HRTF_LS_CHANNELS; j++ ) { #ifdef FIX_1123_FASTCONV_16BIT_ROM for ( k = 0; k < HrtfFastConv->ntaps_brir; k++ ) { HrtfFastConv->leftBRIRReal[i][j][k] = (float) leftBRIRReal[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_BRIR_factorQ ); HrtfFastConv->leftBRIRImag[i][j][k] = (float) leftBRIRImag[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_BRIR_factorQ ); HrtfFastConv->rightBRIRReal[i][j][k] = (float) rightBRIRReal[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_BRIR_factorQ ); HrtfFastConv->rightBRIRImag[i][j][k] = (float) rightBRIRImag[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_BRIR_factorQ ); } #else HrtfFastConv->leftBRIRReal[i][j] = leftBRIRReal[i][j]; HrtfFastConv->leftBRIRImag[i][j] = leftBRIRImag[i][j]; HrtfFastConv->rightBRIRReal[i][j] = rightBRIRReal[i][j]; HrtfFastConv->rightBRIRImag[i][j] = rightBRIRImag[i][j]; #endif } } #endif if ( input_config == IVAS_AUDIO_CONFIG_HOA3 ) { for ( j = 0; j < HOA3_CHANNELS; j++ ) Loading @@ -913,11 +944,7 @@ static ivas_error ivas_binaural_hrtf_open( #endif } } #ifdef FIX_1123_FASTCONV_16BIT_ROM else if ( input_config == IVAS_AUDIO_CONFIG_HOA2 ) #else if ( input_config == IVAS_AUDIO_CONFIG_HOA2 ) #endif { for ( j = 0; j < HOA2_CHANNELS; j++ ) { Loading @@ -937,7 +964,7 @@ static ivas_error ivas_binaural_hrtf_open( #endif } } else if ( input_config == IVAS_AUDIO_CONFIG_FOA ) if ( input_config == IVAS_AUDIO_CONFIG_FOA ) { for ( j = 0; j < FOA_CHANNELS; j++ ) { Loading @@ -957,37 +984,6 @@ static ivas_error ivas_binaural_hrtf_open( #endif } } #ifdef FIX_1123_FASTCONV_16BIT_ROM else { if ( renderer_type == RENDERER_BINAURAL_FASTCONV ) { for ( j = 0; j < HRTF_LS_CHANNELS; j++ ) { for ( k = 0; k < HrtfFastConv->ntaps_hrir; k++ ) { HrtfFastConv->leftHRIRReal[i][j][k] = (float) leftHRIRReal[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_factorQ ); HrtfFastConv->leftHRIRImag[i][j][k] = (float) leftHRIRImag[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_factorQ ); HrtfFastConv->rightHRIRReal[i][j][k] = (float) rightHRIRReal[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_factorQ ); HrtfFastConv->rightHRIRImag[i][j][k] = (float) rightHRIRImag[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_factorQ ); } } } else if ( renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ) { for ( j = 0; j < HRTF_LS_CHANNELS; j++ ) { for ( k = 0; k < HrtfFastConv->ntaps_brir; k++ ) { HrtfFastConv->leftBRIRReal[i][j][k] = (float) leftBRIRReal[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_BRIR_factorQ ); HrtfFastConv->leftBRIRImag[i][j][k] = (float) leftBRIRImag[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_BRIR_factorQ ); HrtfFastConv->rightBRIRReal[i][j][k] = (float) rightBRIRReal[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_BRIR_factorQ ); HrtfFastConv->rightBRIRImag[i][j][k] = (float) rightBRIRImag[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_BRIR_factorQ ); } } } } #endif } #ifdef FIX_1123_FASTCONV_16BIT_ROM for ( i = 0; i < CLDFB_NO_CHANNELS_MAX; i++ ) Loading lib_rend/ivas_objectRenderer_mix.c +42 −46 Original line number Diff line number Diff line Loading @@ -434,14 +434,17 @@ static ivas_error DefaultBSplineModel( #ifdef FIX_1123_TDREN_16BIT_ROM float q_scale; int32_t size_rom_table; float q_scale_al; float q_scale_ar; // float q_scale_el; // float q_scale_er; float q_scale_a; float q_scale_e; const int16_t *alphaL_ptr; const int16_t *alphaR_ptr; // const int16_t *elL_ptr; // const int16_t *elR_ptr; #ifdef FIX_1123_TDREN_32BIT_ROM_EL_ER const int32_t *elL_ptr; const int32_t *elR_ptr; #else const int16_t *elL_ptr; const int16_t *elR_ptr; #endif #endif HrFiltSet_p->FilterMethod = TDREND_HRFILT_Method_BSplineModel; Loading Loading @@ -472,7 +475,7 @@ static ivas_error DefaultBSplineModel( q_scale = powf( 2.f, -1.f * (float) defaultHRIR_rom_elevKSeq_Q ); for ( j = 0; j < model->elevDim3 - 2; j++ ) { model->elevKSeq_dyn[j] = ( (float) defaultHRIR_rom_elevKSeq[j] ) * q_scale; model->elevKSeq_dyn[j] = (float) defaultHRIR_rom_elevKSeq[j] * q_scale; } model->elevKSeq = (const float *) model->elevKSeq_dyn; Loading @@ -481,7 +484,7 @@ static ivas_error DefaultBSplineModel( q_scale = powf( 2.f, -1.f * (float) defaultHRIR_rom_elevBsShape_Q ); for ( j = 0; j < size_rom_table; j++ ) { model->elevBsShape_dyn[j] = ( (float) defaultHRIR_rom_elevBsShape[j] ) * q_scale; model->elevBsShape_dyn[j] = (float) defaultHRIR_rom_elevBsShape[j] * q_scale; } model->elevBsShape = (const float *) model->elevBsShape_dyn; #else Loading @@ -503,7 +506,7 @@ static ivas_error DefaultBSplineModel( q_scale = powf( 2.f, -1.f * (float) defaultHRIR_rom_azimBsShape_Q ); for ( j = 0; j < size_rom_table; j++ ) { model->azimBsShape_dyn[0][j] = ( (float) defaultHRIR_rom_azimBsShape[j] ) * q_scale; model->azimBsShape_dyn[0][j] = (float) defaultHRIR_rom_azimBsShape[j] * q_scale; } model->azimBsShape[0] = (const float *) model->azimBsShape_dyn[0]; Loading Loading @@ -540,14 +543,12 @@ static ivas_error DefaultBSplineModel( { case 48000: #ifdef FIX_1123_TDREN_16BIT_ROM q_scale_al = powf( 2.f, -1.f * (float) defaultHRIR_rom_AlphaL48_Q ); q_scale_ar = powf( 2.f, -1.f * (float) defaultHRIR_rom_AlphaR48_Q ); // q_scale_el = powf( 2.f, -1.f * (float) defaultHRIR_rom_EL48_Q ); // q_scale_er = powf( 2.f, -1.f * (float) defaultHRIR_rom_ER48_Q ); q_scale_a = powf( 2.f, -1.f * (float) defaultHRIR_rom_Alpha48_Q ); q_scale_e = powf( 2.f, -1.f * (float) defaultHRIR_rom_E48_Q ); alphaL_ptr = defaultHRIR_rom_AlphaL48; alphaR_ptr = defaultHRIR_rom_AlphaR48; // elL_ptr = defaultHRIR_rom_EL48; // elR_ptr = defaultHRIR_rom_ER48; elL_ptr = defaultHRIR_rom_EL48; elR_ptr = defaultHRIR_rom_ER48; #else model->AlphaL = (const float *) defaultHRIR_rom_AlphaL48; model->AlphaR = (const float *) defaultHRIR_rom_AlphaR48; Loading @@ -562,14 +563,12 @@ static ivas_error DefaultBSplineModel( break; case 32000: #ifdef FIX_1123_TDREN_16BIT_ROM q_scale_al = powf( 2.f, -1.f * (float) defaultHRIR_rom_AlphaL32_Q ); q_scale_ar = powf( 2.f, -1.f * (float) defaultHRIR_rom_AlphaR32_Q ); // q_scale_el = powf( 2.f, -1.f * (float) defaultHRIR_rom_EL32_Q ); // q_scale_er = powf( 2.f, -1.f * (float) defaultHRIR_rom_ER32_Q ); q_scale_a = powf( 2.f, -1.f * (float) defaultHRIR_rom_Alpha32_Q ); q_scale_e = powf( 2.f, -1.f * (float) defaultHRIR_rom_E32_Q ); alphaL_ptr = defaultHRIR_rom_AlphaL32; alphaR_ptr = defaultHRIR_rom_AlphaR32; // elL_ptr = defaultHRIR_rom_EL32; // elR_ptr = defaultHRIR_rom_ER32; elL_ptr = defaultHRIR_rom_EL32; elR_ptr = defaultHRIR_rom_ER32; #else model->AlphaL = (const float *) defaultHRIR_rom_AlphaL32; model->AlphaR = (const float *) defaultHRIR_rom_AlphaR32; Loading @@ -584,14 +583,12 @@ static ivas_error DefaultBSplineModel( break; case 16000: #ifdef FIX_1123_TDREN_16BIT_ROM q_scale_al = powf( 2.f, -1.f * (float) defaultHRIR_rom_AlphaL16_Q ); q_scale_ar = powf( 2.f, -1.f * (float) defaultHRIR_rom_AlphaR16_Q ); // q_scale_el = powf( 2.f, -1.f * (float) defaultHRIR_rom_EL16_Q ); // q_scale_er = powf( 2.f, -1.f * (float) defaultHRIR_rom_ER16_Q ); q_scale_a = powf( 2.f, -1.f * (float) defaultHRIR_rom_Alpha16_Q ); q_scale_e = powf( 2.f, -1.f * (float) defaultHRIR_rom_E16_Q ); alphaL_ptr = defaultHRIR_rom_AlphaL16; alphaR_ptr = defaultHRIR_rom_AlphaR16; // elL_ptr = defaultHRIR_rom_EL16; // elR_ptr = defaultHRIR_rom_ER16; elL_ptr = defaultHRIR_rom_EL16; elR_ptr = defaultHRIR_rom_ER16; #else model->AlphaL = (const float *) defaultHRIR_rom_AlphaL16; model->AlphaR = (const float *) defaultHRIR_rom_AlphaR16; Loading @@ -612,26 +609,25 @@ static ivas_error DefaultBSplineModel( model->AlphaR_dyn = (float *) malloc( model->AlphaN * model->K * sizeof( float ) ); for ( j = 0; j < model->AlphaN * model->K; j++ ) { model->AlphaL_dyn[j] = ( (float) alphaL_ptr[j] ) * q_scale_al; model->AlphaR_dyn[j] = ( (float) alphaR_ptr[j] ) * q_scale_ar; model->AlphaL_dyn[j] = (float) alphaL_ptr[j] * q_scale_a; model->AlphaR_dyn[j] = (float) alphaR_ptr[j] * q_scale_a; } model->AlphaL = (const float *) model->AlphaL_dyn; model->AlphaR = (const float *) model->AlphaR_dyn; /* Precalculated energies for each section and each row of the alpha matrices */ HRTF_model_precalc( model ); HRTF_energy_sections_precalc( model ); // model->EL_dyn = (float *) malloc( HRTF_MODEL_N_SECTIONS * model->AlphaN * sizeof( float ) ); // model->ER_dyn = (float *) malloc( HRTF_MODEL_N_SECTIONS * model->AlphaN * sizeof( float ) ); // for ( j = 0; j < HRTF_MODEL_N_SECTIONS * model->AlphaN; j++ ) // { // model->EL_dyn[j] = ( (float) elL_ptr[j] ) * q_scale_el; // model->ER_dyn[j] = ( (float) elR_ptr[j] ) * q_scale_er; // } // model->EL = (const float *) model->EL_dyn; // model->ER = (const float *) model->ER_dyn; // HRTF_energy_sections_precalc( model ); model->EL_dyn = (float *) malloc( HRTF_MODEL_N_SECTIONS * model->AlphaN * sizeof( float ) ); model->ER_dyn = (float *) malloc( HRTF_MODEL_N_SECTIONS * model->AlphaN * sizeof( float ) ); for ( j = 0; j < HRTF_MODEL_N_SECTIONS * model->AlphaN; j++ ) { model->EL_dyn[j] = (float) elL_ptr[j] * q_scale_e; model->ER_dyn[j] = (float) elR_ptr[j] * q_scale_e; } model->EL = (const float *) model->EL_dyn; model->ER = (const float *) model->ER_dyn; #endif modelITD->elevDim3 = defaultHRIR_rom_ITD_model_configuration[0]; Loading @@ -646,7 +642,7 @@ static ivas_error DefaultBSplineModel( q_scale = powf( 2.f, -1.f * (float) defaultHRIR_rom_ITD_elevKSeq_Q ); for ( j = 0; j < modelITD->elevDim3 - 2; j++ ) { modelITD->elevKSeq_dyn[j] = ( (float) defaultHRIR_rom_ITD_elevKSeq[j] ) * q_scale; modelITD->elevKSeq_dyn[j] = (float) defaultHRIR_rom_ITD_elevKSeq[j] * q_scale; } modelITD->elevKSeq = (const float *) modelITD->elevKSeq_dyn; #else Loading @@ -665,7 +661,7 @@ static ivas_error DefaultBSplineModel( q_scale = powf( 2.f, -1.f * (float) defaultHRIR_rom_ITD_azimKSeq_Q ); for ( j = 0; j < ( modelITD->azimDim3 + 1 ) / 2 - 2; j++ ) { modelITD->azimKSeq_dyn[j] = ( (float) defaultHRIR_rom_ITD_azimKSeq[j] ) * q_scale; modelITD->azimKSeq_dyn[j] = (float) defaultHRIR_rom_ITD_azimKSeq[j] * q_scale; } modelITD->azimKSeq = (const float *) modelITD->azimKSeq_dyn; #else Loading @@ -682,7 +678,7 @@ static ivas_error DefaultBSplineModel( q_scale = powf( 2.f, -1.f * (float) defaultHRIR_rom_ITD_W_Q ); for ( j = 0; j < size_rom_table; j++ ) { modelITD->W_dyn[j] = ( (float) defaultHRIR_rom_ITD_W[j] ) * q_scale; modelITD->W_dyn[j] = (float) defaultHRIR_rom_ITD_W[j] * q_scale; } modelITD->W = (const float *) modelITD->W_dyn; Loading @@ -691,7 +687,7 @@ static ivas_error DefaultBSplineModel( q_scale = powf( 2.f, -1.f * (float) defaultHRIR_rom_ITD_azimBsShape_Q ); for ( j = 0; j < size_rom_table; j++ ) { modelITD->azimBsShape_dyn[j] = ( (float) defaultHRIR_rom_ITD_azimBsShape[j] ) * q_scale; modelITD->azimBsShape_dyn[j] = (float) defaultHRIR_rom_ITD_azimBsShape[j] * q_scale; } modelITD->azimBsShape = (const float *) modelITD->azimBsShape_dyn; Loading @@ -700,7 +696,7 @@ static ivas_error DefaultBSplineModel( q_scale = powf( 2.f, -1.f * (float) defaultHRIR_rom_ITD_elevBsShape_Q ); for ( j = 0; j < size_rom_table; j++ ) { modelITD->elevBsShape_dyn[j] = ( (float) defaultHRIR_rom_ITD_elevBsShape[j] ) * q_scale; modelITD->elevBsShape_dyn[j] = (float) defaultHRIR_rom_ITD_elevBsShape[j] * q_scale; } modelITD->elevBsShape = (const float *) modelITD->elevBsShape_dyn; #else Loading lib_rend/ivas_rom_TdBinauralRenderer.c +5206 −4846 File changed.Preview size limit exceeded, changes collapsed. Show changes lib_rend/ivas_rom_TdBinauralRenderer.h +12 −19 Original line number Diff line number Diff line Loading @@ -57,31 +57,24 @@ extern const int16_t defaultHRIR_rom_azimShapeIdx[15]; extern const int16_t defaultHRIR_rom_azimShapeSampFactor[15]; extern const int16_t defaultHRIR_rom_elevKSeq_Q; extern const int16_t defaultHRIR_rom_elevKSeq[13]; extern const int16_t defaultHRIR_rom_AlphaL48_Q; extern const int16_t defaultHRIR_rom_Alpha48_Q; extern const int16_t defaultHRIR_rom_AlphaL48[470 * 128]; extern const int16_t defaultHRIR_rom_AlphaR48_Q; extern const int16_t defaultHRIR_rom_AlphaR48[470 * 128]; extern const int16_t defaultHRIR_rom_AlphaL32_Q; extern const int16_t defaultHRIR_rom_elevKSeq_Q; extern const int16_t defaultHRIR_rom_Alpha32_Q; extern const int16_t defaultHRIR_rom_AlphaL32[470 * 86]; extern const int16_t defaultHRIR_rom_AlphaR32_Q; extern const int16_t defaultHRIR_rom_AlphaR32[470 * 86]; extern const int16_t defaultHRIR_rom_AlphaL16_Q; extern const int16_t defaultHRIR_rom_Alpha16_Q; extern const int16_t defaultHRIR_rom_AlphaL16[470 * 43]; extern const int16_t defaultHRIR_rom_AlphaR16_Q; extern const int16_t defaultHRIR_rom_AlphaR16[470 * 43]; extern const int16_t defaultHRIR_rom_EL48_Q; extern const int16_t defaultHRIR_rom_EL48[HRTF_MODEL_N_SECTIONS * 470]; extern const int16_t defaultHRIR_rom_ER48_Q; extern const int16_t defaultHRIR_rom_ER48[HRTF_MODEL_N_SECTIONS * 470]; extern const int16_t defaultHRIR_rom_EL32_Q; extern const int16_t defaultHRIR_rom_EL32[HRTF_MODEL_N_SECTIONS * 470]; extern const int16_t defaultHRIR_rom_ER32_Q; extern const int16_t defaultHRIR_rom_ER32[HRTF_MODEL_N_SECTIONS * 470]; extern const int16_t defaultHRIR_rom_EL16_Q; extern const int16_t defaultHRIR_rom_EL16[HRTF_MODEL_N_SECTIONS * 470]; extern const int16_t defaultHRIR_rom_ER16_Q; extern const int16_t defaultHRIR_rom_ER16[HRTF_MODEL_N_SECTIONS * 470]; extern const int16_t defaultHRIR_rom_E48_Q; extern const int32_t defaultHRIR_rom_EL48[HRTF_MODEL_N_SECTIONS * 470]; extern const int32_t defaultHRIR_rom_ER48[HRTF_MODEL_N_SECTIONS * 470]; extern const int16_t defaultHRIR_rom_E32_Q; extern const int32_t defaultHRIR_rom_EL32[HRTF_MODEL_N_SECTIONS * 470]; extern const int32_t defaultHRIR_rom_ER32[HRTF_MODEL_N_SECTIONS * 470]; extern const int16_t defaultHRIR_rom_E16_Q; extern const int32_t defaultHRIR_rom_EL16[HRTF_MODEL_N_SECTIONS * 470]; extern const int32_t defaultHRIR_rom_ER16[HRTF_MODEL_N_SECTIONS * 470]; #else extern const float defaultHRIR_rom_latency_s; extern const int16_t defaultHRIR_rom_model_configuration[6]; Loading Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -168,6 +168,7 @@ #define FIX_1123_FASTCONV_16BIT_ROM /* FhG: issue 1123: update FastConv ROM tables and scripts to generate 16 bit tables instead of float */ #define FIX_1123_PARAMBIN_16BIT_ROM /* FhG,Nok: issue 1123: update ParamBin ROM tables and scripts to generate 16 bit tables instead of float */ #define FIX_1123_TDREN_16BIT_ROM #define FIX_1123_TDREN_32BIT_ROM_EL_ER #define FIX_1123_OPTIMIZE_BINARY_LOAD /* Nok: Optimize loading of binary files in fixed point format by precomputing scaling factors */ #define FIX_1053_AEID_FILE_TEST /* Philips: Tests for the -aeid file and fix for memory error */ #define FIX_1121_MASA_DESCRIPTOR /* VA: issue 1121: Define 'ivasmasaFormatDescriptor' at one common place */ Loading
lib_dec/ivas_binRenderer_internal.c +42 −46 Original line number Diff line number Diff line Loading @@ -707,11 +707,7 @@ ivas_error ivas_allocate_binaural_hrtf( } } #ifdef FIX_1123_FASTCONV_16BIT_ROM if ( renderer_type == RENDERER_BINAURAL_FASTCONV && ( bin_input_config == BINAURAL_INPUT_AUDIO_CONFIG_COMBINED || bin_input_config == BINAURAL_INPUT_AUDIO_CONFIG_INVALID ) ) #else if ( renderer_type == RENDERER_BINAURAL_FASTCONV || bin_input_config == BINAURAL_INPUT_AUDIO_CONFIG_COMBINED ) #endif { if ( ( HrtfFastConv->leftHRIRReal == NULL ) && ( HrtfFastConv->leftHRIRImag == NULL ) && ( HrtfFastConv->rightHRIRReal == NULL ) && ( HrtfFastConv->rightHRIRImag == NULL ) ) { Loading Loading @@ -752,11 +748,8 @@ ivas_error ivas_allocate_binaural_hrtf( #endif } } #ifdef FIX_1123_FASTCONV_16BIT_ROM if ( renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM && ( bin_input_config == BINAURAL_INPUT_AUDIO_CONFIG_COMBINED || bin_input_config == BINAURAL_INPUT_AUDIO_CONFIG_INVALID ) ) #else if ( renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM || bin_input_config == BINAURAL_INPUT_AUDIO_CONFIG_COMBINED ) #endif { if ( ( HrtfFastConv->leftBRIRReal == NULL ) && ( HrtfFastConv->leftBRIRImag == NULL ) && ( HrtfFastConv->rightBRIRReal == NULL ) && ( HrtfFastConv->rightBRIRImag == NULL ) ) { Loading Loading @@ -840,23 +833,43 @@ static ivas_error ivas_binaural_hrtf_open( if ( input_config == IVAS_AUDIO_CONFIG_BINAURAL || renderer_type == RENDERER_BINAURAL_FASTCONV ) { #ifdef FIX_1123_FASTCONV_16BIT_ROM HrtfFastConv->FASTCONV_HRIR_latency_s = (float) FASTCONV_HRIR_latency_s * powf( 2.f, -1.f * (float) FASTCONV_FOA_latency_s_factorQ ); #else HrtfFastConv->FASTCONV_HRIR_latency_s = FASTCONV_HRIR_latency_s; #endif } if ( input_config == IVAS_AUDIO_CONFIG_HOA2 ) { #ifdef FIX_1123_FASTCONV_16BIT_ROM HrtfFastConv->FASTCONV_HOA2_latency_s = (float) FASTCONV_HOA2_latency_s * powf( 2.f, -1.f * (float) FASTCONV_HOA2_latency_s_factorQ ); #else HrtfFastConv->FASTCONV_HOA2_latency_s = FASTCONV_HOA2_latency_s; #endif } if ( input_config == IVAS_AUDIO_CONFIG_HOA3 ) { #ifdef FIX_1123_FASTCONV_16BIT_ROM HrtfFastConv->FASTCONV_HOA3_latency_s = (float) FASTCONV_HOA3_latency_s * powf( 2.f, -1.f * (float) FASTCONV_HOA3_latency_s_factorQ ); #else HrtfFastConv->FASTCONV_HOA3_latency_s = FASTCONV_HOA3_latency_s; #endif } if ( input_config == IVAS_AUDIO_CONFIG_FOA ) { #ifdef FIX_1123_FASTCONV_16BIT_ROM HrtfFastConv->FASTCONV_FOA_latency_s = (float) FASTCONV_FOA_latency_s * powf( 2.f, -1.f * (float) FASTCONV_HRIR_latency_s_factorQ ); #else HrtfFastConv->FASTCONV_FOA_latency_s = FASTCONV_FOA_latency_s; #endif } if ( input_config == IVAS_AUDIO_CONFIG_BINAURAL || renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ) { #ifdef FIX_1123_FASTCONV_16BIT_ROM HrtfFastConv->FASTCONV_BRIR_latency_s = (float) FASTCONV_BRIR_latency_s * powf( 2.f, -1.f * (float) FASTCONV_BRIR_latency_s_factorQ ); #else HrtfFastConv->FASTCONV_BRIR_latency_s = FASTCONV_BRIR_latency_s; #endif } #ifdef FIX_1123_FASTCONV_16BIT_ROM Loading @@ -871,28 +884,46 @@ static ivas_error ivas_binaural_hrtf_open( } for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { #ifndef FIX_1123_FASTCONV_16BIT_ROM if ( renderer_type == RENDERER_BINAURAL_FASTCONV ) { for ( j = 0; j < HRTF_LS_CHANNELS; j++ ) { #ifdef FIX_1123_FASTCONV_16BIT_ROM for ( k = 0; k < HrtfFastConv->ntaps_hrir; k++ ) { HrtfFastConv->leftHRIRReal[i][j][k] = (float) leftHRIRReal[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_factorQ ); HrtfFastConv->leftHRIRImag[i][j][k] = (float) leftHRIRImag[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_factorQ ); HrtfFastConv->rightHRIRReal[i][j][k] = (float) rightHRIRReal[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_factorQ ); HrtfFastConv->rightHRIRImag[i][j][k] = (float) rightHRIRImag[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_factorQ ); } #else HrtfFastConv->leftHRIRReal[i][j] = leftHRIRReal[i][j]; HrtfFastConv->leftHRIRImag[i][j] = leftHRIRImag[i][j]; HrtfFastConv->rightHRIRReal[i][j] = rightHRIRReal[i][j]; HrtfFastConv->rightHRIRImag[i][j] = rightHRIRImag[i][j]; #endif } } else if ( renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ) { for ( j = 0; j < HRTF_LS_CHANNELS; j++ ) { #ifdef FIX_1123_FASTCONV_16BIT_ROM for ( k = 0; k < HrtfFastConv->ntaps_brir; k++ ) { HrtfFastConv->leftBRIRReal[i][j][k] = (float) leftBRIRReal[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_BRIR_factorQ ); HrtfFastConv->leftBRIRImag[i][j][k] = (float) leftBRIRImag[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_BRIR_factorQ ); HrtfFastConv->rightBRIRReal[i][j][k] = (float) rightBRIRReal[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_BRIR_factorQ ); HrtfFastConv->rightBRIRImag[i][j][k] = (float) rightBRIRImag[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_BRIR_factorQ ); } #else HrtfFastConv->leftBRIRReal[i][j] = leftBRIRReal[i][j]; HrtfFastConv->leftBRIRImag[i][j] = leftBRIRImag[i][j]; HrtfFastConv->rightBRIRReal[i][j] = rightBRIRReal[i][j]; HrtfFastConv->rightBRIRImag[i][j] = rightBRIRImag[i][j]; #endif } } #endif if ( input_config == IVAS_AUDIO_CONFIG_HOA3 ) { for ( j = 0; j < HOA3_CHANNELS; j++ ) Loading @@ -913,11 +944,7 @@ static ivas_error ivas_binaural_hrtf_open( #endif } } #ifdef FIX_1123_FASTCONV_16BIT_ROM else if ( input_config == IVAS_AUDIO_CONFIG_HOA2 ) #else if ( input_config == IVAS_AUDIO_CONFIG_HOA2 ) #endif { for ( j = 0; j < HOA2_CHANNELS; j++ ) { Loading @@ -937,7 +964,7 @@ static ivas_error ivas_binaural_hrtf_open( #endif } } else if ( input_config == IVAS_AUDIO_CONFIG_FOA ) if ( input_config == IVAS_AUDIO_CONFIG_FOA ) { for ( j = 0; j < FOA_CHANNELS; j++ ) { Loading @@ -957,37 +984,6 @@ static ivas_error ivas_binaural_hrtf_open( #endif } } #ifdef FIX_1123_FASTCONV_16BIT_ROM else { if ( renderer_type == RENDERER_BINAURAL_FASTCONV ) { for ( j = 0; j < HRTF_LS_CHANNELS; j++ ) { for ( k = 0; k < HrtfFastConv->ntaps_hrir; k++ ) { HrtfFastConv->leftHRIRReal[i][j][k] = (float) leftHRIRReal[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_factorQ ); HrtfFastConv->leftHRIRImag[i][j][k] = (float) leftHRIRImag[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_factorQ ); HrtfFastConv->rightHRIRReal[i][j][k] = (float) rightHRIRReal[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_factorQ ); HrtfFastConv->rightHRIRImag[i][j][k] = (float) rightHRIRImag[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_factorQ ); } } } else if ( renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ) { for ( j = 0; j < HRTF_LS_CHANNELS; j++ ) { for ( k = 0; k < HrtfFastConv->ntaps_brir; k++ ) { HrtfFastConv->leftBRIRReal[i][j][k] = (float) leftBRIRReal[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_BRIR_factorQ ); HrtfFastConv->leftBRIRImag[i][j][k] = (float) leftBRIRImag[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_BRIR_factorQ ); HrtfFastConv->rightBRIRReal[i][j][k] = (float) rightBRIRReal[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_BRIR_factorQ ); HrtfFastConv->rightBRIRImag[i][j][k] = (float) rightBRIRImag[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_BRIR_factorQ ); } } } } #endif } #ifdef FIX_1123_FASTCONV_16BIT_ROM for ( i = 0; i < CLDFB_NO_CHANNELS_MAX; i++ ) Loading
lib_rend/ivas_objectRenderer_mix.c +42 −46 Original line number Diff line number Diff line Loading @@ -434,14 +434,17 @@ static ivas_error DefaultBSplineModel( #ifdef FIX_1123_TDREN_16BIT_ROM float q_scale; int32_t size_rom_table; float q_scale_al; float q_scale_ar; // float q_scale_el; // float q_scale_er; float q_scale_a; float q_scale_e; const int16_t *alphaL_ptr; const int16_t *alphaR_ptr; // const int16_t *elL_ptr; // const int16_t *elR_ptr; #ifdef FIX_1123_TDREN_32BIT_ROM_EL_ER const int32_t *elL_ptr; const int32_t *elR_ptr; #else const int16_t *elL_ptr; const int16_t *elR_ptr; #endif #endif HrFiltSet_p->FilterMethod = TDREND_HRFILT_Method_BSplineModel; Loading Loading @@ -472,7 +475,7 @@ static ivas_error DefaultBSplineModel( q_scale = powf( 2.f, -1.f * (float) defaultHRIR_rom_elevKSeq_Q ); for ( j = 0; j < model->elevDim3 - 2; j++ ) { model->elevKSeq_dyn[j] = ( (float) defaultHRIR_rom_elevKSeq[j] ) * q_scale; model->elevKSeq_dyn[j] = (float) defaultHRIR_rom_elevKSeq[j] * q_scale; } model->elevKSeq = (const float *) model->elevKSeq_dyn; Loading @@ -481,7 +484,7 @@ static ivas_error DefaultBSplineModel( q_scale = powf( 2.f, -1.f * (float) defaultHRIR_rom_elevBsShape_Q ); for ( j = 0; j < size_rom_table; j++ ) { model->elevBsShape_dyn[j] = ( (float) defaultHRIR_rom_elevBsShape[j] ) * q_scale; model->elevBsShape_dyn[j] = (float) defaultHRIR_rom_elevBsShape[j] * q_scale; } model->elevBsShape = (const float *) model->elevBsShape_dyn; #else Loading @@ -503,7 +506,7 @@ static ivas_error DefaultBSplineModel( q_scale = powf( 2.f, -1.f * (float) defaultHRIR_rom_azimBsShape_Q ); for ( j = 0; j < size_rom_table; j++ ) { model->azimBsShape_dyn[0][j] = ( (float) defaultHRIR_rom_azimBsShape[j] ) * q_scale; model->azimBsShape_dyn[0][j] = (float) defaultHRIR_rom_azimBsShape[j] * q_scale; } model->azimBsShape[0] = (const float *) model->azimBsShape_dyn[0]; Loading Loading @@ -540,14 +543,12 @@ static ivas_error DefaultBSplineModel( { case 48000: #ifdef FIX_1123_TDREN_16BIT_ROM q_scale_al = powf( 2.f, -1.f * (float) defaultHRIR_rom_AlphaL48_Q ); q_scale_ar = powf( 2.f, -1.f * (float) defaultHRIR_rom_AlphaR48_Q ); // q_scale_el = powf( 2.f, -1.f * (float) defaultHRIR_rom_EL48_Q ); // q_scale_er = powf( 2.f, -1.f * (float) defaultHRIR_rom_ER48_Q ); q_scale_a = powf( 2.f, -1.f * (float) defaultHRIR_rom_Alpha48_Q ); q_scale_e = powf( 2.f, -1.f * (float) defaultHRIR_rom_E48_Q ); alphaL_ptr = defaultHRIR_rom_AlphaL48; alphaR_ptr = defaultHRIR_rom_AlphaR48; // elL_ptr = defaultHRIR_rom_EL48; // elR_ptr = defaultHRIR_rom_ER48; elL_ptr = defaultHRIR_rom_EL48; elR_ptr = defaultHRIR_rom_ER48; #else model->AlphaL = (const float *) defaultHRIR_rom_AlphaL48; model->AlphaR = (const float *) defaultHRIR_rom_AlphaR48; Loading @@ -562,14 +563,12 @@ static ivas_error DefaultBSplineModel( break; case 32000: #ifdef FIX_1123_TDREN_16BIT_ROM q_scale_al = powf( 2.f, -1.f * (float) defaultHRIR_rom_AlphaL32_Q ); q_scale_ar = powf( 2.f, -1.f * (float) defaultHRIR_rom_AlphaR32_Q ); // q_scale_el = powf( 2.f, -1.f * (float) defaultHRIR_rom_EL32_Q ); // q_scale_er = powf( 2.f, -1.f * (float) defaultHRIR_rom_ER32_Q ); q_scale_a = powf( 2.f, -1.f * (float) defaultHRIR_rom_Alpha32_Q ); q_scale_e = powf( 2.f, -1.f * (float) defaultHRIR_rom_E32_Q ); alphaL_ptr = defaultHRIR_rom_AlphaL32; alphaR_ptr = defaultHRIR_rom_AlphaR32; // elL_ptr = defaultHRIR_rom_EL32; // elR_ptr = defaultHRIR_rom_ER32; elL_ptr = defaultHRIR_rom_EL32; elR_ptr = defaultHRIR_rom_ER32; #else model->AlphaL = (const float *) defaultHRIR_rom_AlphaL32; model->AlphaR = (const float *) defaultHRIR_rom_AlphaR32; Loading @@ -584,14 +583,12 @@ static ivas_error DefaultBSplineModel( break; case 16000: #ifdef FIX_1123_TDREN_16BIT_ROM q_scale_al = powf( 2.f, -1.f * (float) defaultHRIR_rom_AlphaL16_Q ); q_scale_ar = powf( 2.f, -1.f * (float) defaultHRIR_rom_AlphaR16_Q ); // q_scale_el = powf( 2.f, -1.f * (float) defaultHRIR_rom_EL16_Q ); // q_scale_er = powf( 2.f, -1.f * (float) defaultHRIR_rom_ER16_Q ); q_scale_a = powf( 2.f, -1.f * (float) defaultHRIR_rom_Alpha16_Q ); q_scale_e = powf( 2.f, -1.f * (float) defaultHRIR_rom_E16_Q ); alphaL_ptr = defaultHRIR_rom_AlphaL16; alphaR_ptr = defaultHRIR_rom_AlphaR16; // elL_ptr = defaultHRIR_rom_EL16; // elR_ptr = defaultHRIR_rom_ER16; elL_ptr = defaultHRIR_rom_EL16; elR_ptr = defaultHRIR_rom_ER16; #else model->AlphaL = (const float *) defaultHRIR_rom_AlphaL16; model->AlphaR = (const float *) defaultHRIR_rom_AlphaR16; Loading @@ -612,26 +609,25 @@ static ivas_error DefaultBSplineModel( model->AlphaR_dyn = (float *) malloc( model->AlphaN * model->K * sizeof( float ) ); for ( j = 0; j < model->AlphaN * model->K; j++ ) { model->AlphaL_dyn[j] = ( (float) alphaL_ptr[j] ) * q_scale_al; model->AlphaR_dyn[j] = ( (float) alphaR_ptr[j] ) * q_scale_ar; model->AlphaL_dyn[j] = (float) alphaL_ptr[j] * q_scale_a; model->AlphaR_dyn[j] = (float) alphaR_ptr[j] * q_scale_a; } model->AlphaL = (const float *) model->AlphaL_dyn; model->AlphaR = (const float *) model->AlphaR_dyn; /* Precalculated energies for each section and each row of the alpha matrices */ HRTF_model_precalc( model ); HRTF_energy_sections_precalc( model ); // model->EL_dyn = (float *) malloc( HRTF_MODEL_N_SECTIONS * model->AlphaN * sizeof( float ) ); // model->ER_dyn = (float *) malloc( HRTF_MODEL_N_SECTIONS * model->AlphaN * sizeof( float ) ); // for ( j = 0; j < HRTF_MODEL_N_SECTIONS * model->AlphaN; j++ ) // { // model->EL_dyn[j] = ( (float) elL_ptr[j] ) * q_scale_el; // model->ER_dyn[j] = ( (float) elR_ptr[j] ) * q_scale_er; // } // model->EL = (const float *) model->EL_dyn; // model->ER = (const float *) model->ER_dyn; // HRTF_energy_sections_precalc( model ); model->EL_dyn = (float *) malloc( HRTF_MODEL_N_SECTIONS * model->AlphaN * sizeof( float ) ); model->ER_dyn = (float *) malloc( HRTF_MODEL_N_SECTIONS * model->AlphaN * sizeof( float ) ); for ( j = 0; j < HRTF_MODEL_N_SECTIONS * model->AlphaN; j++ ) { model->EL_dyn[j] = (float) elL_ptr[j] * q_scale_e; model->ER_dyn[j] = (float) elR_ptr[j] * q_scale_e; } model->EL = (const float *) model->EL_dyn; model->ER = (const float *) model->ER_dyn; #endif modelITD->elevDim3 = defaultHRIR_rom_ITD_model_configuration[0]; Loading @@ -646,7 +642,7 @@ static ivas_error DefaultBSplineModel( q_scale = powf( 2.f, -1.f * (float) defaultHRIR_rom_ITD_elevKSeq_Q ); for ( j = 0; j < modelITD->elevDim3 - 2; j++ ) { modelITD->elevKSeq_dyn[j] = ( (float) defaultHRIR_rom_ITD_elevKSeq[j] ) * q_scale; modelITD->elevKSeq_dyn[j] = (float) defaultHRIR_rom_ITD_elevKSeq[j] * q_scale; } modelITD->elevKSeq = (const float *) modelITD->elevKSeq_dyn; #else Loading @@ -665,7 +661,7 @@ static ivas_error DefaultBSplineModel( q_scale = powf( 2.f, -1.f * (float) defaultHRIR_rom_ITD_azimKSeq_Q ); for ( j = 0; j < ( modelITD->azimDim3 + 1 ) / 2 - 2; j++ ) { modelITD->azimKSeq_dyn[j] = ( (float) defaultHRIR_rom_ITD_azimKSeq[j] ) * q_scale; modelITD->azimKSeq_dyn[j] = (float) defaultHRIR_rom_ITD_azimKSeq[j] * q_scale; } modelITD->azimKSeq = (const float *) modelITD->azimKSeq_dyn; #else Loading @@ -682,7 +678,7 @@ static ivas_error DefaultBSplineModel( q_scale = powf( 2.f, -1.f * (float) defaultHRIR_rom_ITD_W_Q ); for ( j = 0; j < size_rom_table; j++ ) { modelITD->W_dyn[j] = ( (float) defaultHRIR_rom_ITD_W[j] ) * q_scale; modelITD->W_dyn[j] = (float) defaultHRIR_rom_ITD_W[j] * q_scale; } modelITD->W = (const float *) modelITD->W_dyn; Loading @@ -691,7 +687,7 @@ static ivas_error DefaultBSplineModel( q_scale = powf( 2.f, -1.f * (float) defaultHRIR_rom_ITD_azimBsShape_Q ); for ( j = 0; j < size_rom_table; j++ ) { modelITD->azimBsShape_dyn[j] = ( (float) defaultHRIR_rom_ITD_azimBsShape[j] ) * q_scale; modelITD->azimBsShape_dyn[j] = (float) defaultHRIR_rom_ITD_azimBsShape[j] * q_scale; } modelITD->azimBsShape = (const float *) modelITD->azimBsShape_dyn; Loading @@ -700,7 +696,7 @@ static ivas_error DefaultBSplineModel( q_scale = powf( 2.f, -1.f * (float) defaultHRIR_rom_ITD_elevBsShape_Q ); for ( j = 0; j < size_rom_table; j++ ) { modelITD->elevBsShape_dyn[j] = ( (float) defaultHRIR_rom_ITD_elevBsShape[j] ) * q_scale; modelITD->elevBsShape_dyn[j] = (float) defaultHRIR_rom_ITD_elevBsShape[j] * q_scale; } modelITD->elevBsShape = (const float *) modelITD->elevBsShape_dyn; #else Loading
lib_rend/ivas_rom_TdBinauralRenderer.c +5206 −4846 File changed.Preview size limit exceeded, changes collapsed. Show changes
lib_rend/ivas_rom_TdBinauralRenderer.h +12 −19 Original line number Diff line number Diff line Loading @@ -57,31 +57,24 @@ extern const int16_t defaultHRIR_rom_azimShapeIdx[15]; extern const int16_t defaultHRIR_rom_azimShapeSampFactor[15]; extern const int16_t defaultHRIR_rom_elevKSeq_Q; extern const int16_t defaultHRIR_rom_elevKSeq[13]; extern const int16_t defaultHRIR_rom_AlphaL48_Q; extern const int16_t defaultHRIR_rom_Alpha48_Q; extern const int16_t defaultHRIR_rom_AlphaL48[470 * 128]; extern const int16_t defaultHRIR_rom_AlphaR48_Q; extern const int16_t defaultHRIR_rom_AlphaR48[470 * 128]; extern const int16_t defaultHRIR_rom_AlphaL32_Q; extern const int16_t defaultHRIR_rom_elevKSeq_Q; extern const int16_t defaultHRIR_rom_Alpha32_Q; extern const int16_t defaultHRIR_rom_AlphaL32[470 * 86]; extern const int16_t defaultHRIR_rom_AlphaR32_Q; extern const int16_t defaultHRIR_rom_AlphaR32[470 * 86]; extern const int16_t defaultHRIR_rom_AlphaL16_Q; extern const int16_t defaultHRIR_rom_Alpha16_Q; extern const int16_t defaultHRIR_rom_AlphaL16[470 * 43]; extern const int16_t defaultHRIR_rom_AlphaR16_Q; extern const int16_t defaultHRIR_rom_AlphaR16[470 * 43]; extern const int16_t defaultHRIR_rom_EL48_Q; extern const int16_t defaultHRIR_rom_EL48[HRTF_MODEL_N_SECTIONS * 470]; extern const int16_t defaultHRIR_rom_ER48_Q; extern const int16_t defaultHRIR_rom_ER48[HRTF_MODEL_N_SECTIONS * 470]; extern const int16_t defaultHRIR_rom_EL32_Q; extern const int16_t defaultHRIR_rom_EL32[HRTF_MODEL_N_SECTIONS * 470]; extern const int16_t defaultHRIR_rom_ER32_Q; extern const int16_t defaultHRIR_rom_ER32[HRTF_MODEL_N_SECTIONS * 470]; extern const int16_t defaultHRIR_rom_EL16_Q; extern const int16_t defaultHRIR_rom_EL16[HRTF_MODEL_N_SECTIONS * 470]; extern const int16_t defaultHRIR_rom_ER16_Q; extern const int16_t defaultHRIR_rom_ER16[HRTF_MODEL_N_SECTIONS * 470]; extern const int16_t defaultHRIR_rom_E48_Q; extern const int32_t defaultHRIR_rom_EL48[HRTF_MODEL_N_SECTIONS * 470]; extern const int32_t defaultHRIR_rom_ER48[HRTF_MODEL_N_SECTIONS * 470]; extern const int16_t defaultHRIR_rom_E32_Q; extern const int32_t defaultHRIR_rom_EL32[HRTF_MODEL_N_SECTIONS * 470]; extern const int32_t defaultHRIR_rom_ER32[HRTF_MODEL_N_SECTIONS * 470]; extern const int16_t defaultHRIR_rom_E16_Q; extern const int32_t defaultHRIR_rom_EL16[HRTF_MODEL_N_SECTIONS * 470]; extern const int32_t defaultHRIR_rom_ER16[HRTF_MODEL_N_SECTIONS * 470]; #else extern const float defaultHRIR_rom_latency_s; extern const int16_t defaultHRIR_rom_model_configuration[6]; Loading