Loading lib_com/options.h +0 −1 Original line number Diff line number Diff line Loading @@ -170,7 +170,6 @@ #define TMP_FIX_1119_SPLIT_RENDERING_VOIP /* FhG: Add error check for unsupported config: split rendering with VoIP mode */ #define FIX_POINT_ROM_CONST /* Ora: issue #1150 HRTF ROM tables should be defined as 'const'*/ #define FIX_1123_CREND_16BIT_FMT /* Ora: update CREND binary file format to 16 bit */ #define FIX_1123_CREND_FLTFX_BE /* Ora: make CREND FLT ROM tables BE to FX file */ #define FIX_1123_FASTCONV_16BIT_FMT /* FhG: issue 1123: update FastConv binary file format and scripts to 16 bit */ #define FIX_RETURN /* VA: fix location of function returns */ Loading lib_util/hrtf_file_reader.c +0 −20 Original line number Diff line number Diff line Loading @@ -1268,13 +1268,8 @@ static ivas_error create_HRTF_from_rawdata( for ( k = 0; k < ( *hHRTF )->num_iterations[i][j]; k++ ) { #ifdef FIX_1123_CREND_16BIT_FMT mem_size = ( *hHRTF )->pIndex_frequency_max[i][j][k] * sizeof( int16_t ); Word16 *ptW = (Word16 *) hrtf_data_rptr; #else mem_size = ( *hHRTF )->pIndex_frequency_max[i][j][k] * sizeof( int32_t ); Word32 *ptW = (Word32 *) hrtf_data_rptr; #endif for ( l = 0; l < ( *hHRTF )->pIndex_frequency_max[i][j][k]; l++ ) { pOut_to_bin_wptr[l] = ptW[l] * powf( 2.f, -1.f * factorQ ); Loading Loading @@ -1313,13 +1308,8 @@ static ivas_error create_HRTF_from_rawdata( #endif for ( k = 0; k < ( *hHRTF )->num_iterations[i][j]; k++ ) { #ifdef FIX_1123_CREND_16BIT_FMT mem_size = ( *hHRTF )->pIndex_frequency_max[i][j][k] * sizeof( int16_t ); Word16 *ptW = (Word16 *) hrtf_data_rptr; #else mem_size = ( *hHRTF )->pIndex_frequency_max[i][j][k] * sizeof( int32_t ); Word32 *ptW = (Word32 *) hrtf_data_rptr; #endif for ( l = 0; l < ( *hHRTF )->pIndex_frequency_max[i][j][k]; l++ ) { pOut_to_bin_wptr[l] = ptW[l] * powf( 2.f, -1.f * factorQ ); Loading Loading @@ -1365,13 +1355,8 @@ static ivas_error create_HRTF_from_rawdata( for ( k = 0; k < ( *hHRTF )->num_iterations_diffuse[j]; k++ ) { #ifdef FIX_1123_CREND_16BIT_FMT mem_size = ( *hHRTF )->pIndex_frequency_max_diffuse[j][k] * sizeof( int16_t ); Word16 *ptW = (Word16 *) hrtf_data_rptr; #else mem_size = ( *hHRTF )->pIndex_frequency_max_diffuse[j][k] * sizeof( int32_t ); Word32 *ptW = (Word32 *) hrtf_data_rptr; #endif for ( l = 0; l < ( *hHRTF )->pIndex_frequency_max_diffuse[j][k]; l++ ) { pOut_to_bin_wptr[l] = ptW[l] * powf( 2.f, -1.f * factorQ ); Loading Loading @@ -1407,13 +1392,8 @@ static ivas_error create_HRTF_from_rawdata( #endif for ( k = 0; k < ( *hHRTF )->num_iterations_diffuse[j]; k++ ) { #ifdef FIX_1123_CREND_16BIT_FMT mem_size = ( *hHRTF )->pIndex_frequency_max_diffuse[j][k] * sizeof( int16_t ); Word16 *ptW = (Word16 *) hrtf_data_rptr; #else mem_size = ( *hHRTF )->pIndex_frequency_max_diffuse[j][k] * sizeof( int32_t ); Word32 *ptW = (Word32 *) hrtf_data_rptr; #endif for ( l = 0; l < ( *hHRTF )->pIndex_frequency_max_diffuse[j][k]; l++ ) { pOut_to_bin_wptr[l] = ptW[l] * powf( 2.f, -1.f * factorQ ); Loading scripts/binauralRenderer_interface/Table_Format_Converter/generate_tables_from_rom_to_bin.c +0 −8 Original line number Diff line number Diff line Loading @@ -1743,11 +1743,7 @@ int32_t compute_crend_hrtf_data_size( crend_hrtf_tables_pointers *hrtf_table_ptr { for ( iIter = 0; iIter < hrtf_table_ptrs->num_iterations[iIR * BINAURAL_CHANNELS + iChan]; iIter++ ) { #ifdef FIX_1123_CREND_16BIT_FMT hrtf_data_size += 2 * hrtf_table_ptrs->pIndex_frequency_max[iIndex++] * sizeof( int16_t ); // 2* : re & im #else hrtf_data_size += 2 * hrtf_table_ptrs->pIndex_frequency_max[iIndex++] * sizeof( int32_t ); // 2* : re & im #endif } } } Loading @@ -1760,11 +1756,7 @@ int32_t compute_crend_hrtf_data_size( crend_hrtf_tables_pointers *hrtf_table_ptr { for ( iIter = 0; iIter < hrtf_table_ptrs->num_iterations_diffuse[iChan]; iIter++ ) { #ifdef FIX_1123_CREND_16BIT_FMT hrtf_data_size += 2 * hrtf_table_ptrs->pIndex_frequency_max_diffuse[iIndex++] * sizeof( int16_t ); // 2* : re & im #else hrtf_data_size += 2 * hrtf_table_ptrs->pIndex_frequency_max_diffuse[iIndex++] * sizeof( int32_t ); // 2* : re & im #endif } } } Loading scripts/binauralRenderer_interface/generate_crend_ivas_tables_from_sofa.c +2 −77 Original line number Diff line number Diff line Loading @@ -1300,7 +1300,7 @@ int generate_crend_ivas_tables_from_sofa( const char *file_path, ConfigReader *c #endif } #if defined( FIX_1123_CREND_16BIT_FMT ) && !defined( FIX_1123_CREND_FLTFX_BE ) #if !defined( FIX_1123_CREND_FLTFX_BE ) int16_t factorQ[3]; make_fx_be( &hrtf_data, lscfg, sample_rates[indSR], frame_len, factorQ ); #endif Loading Loading @@ -1888,7 +1888,7 @@ int generate_reverb_ivas_tables_from_sofa( const char *file_path ) update_c_file_with_reverb( p_avg_lr, &p_avg_lr[nr_fc_fft_filter], pCoherence, sample_rates[indSR], nr_fc_fft_filter ); #endif } #if defined( FIX_1123_CREND_16BIT_FMT ) && !defined( FIX_1123_CREND_FLTFX_BE ) #if !defined( FIX_1123_CREND_FLTFX_BE ) make_reverb_fx_be( p_avg_lr, &p_avg_lr[nr_fc_fft_filter], pCoherence, sample_rates[indSR], &factorQ ); for ( i = 0; i < nr_fc_fft_filter; i++ ) { Loading Loading @@ -2737,11 +2737,7 @@ uint32_t compute_binary_size( HRTFS_DATA *hrtf, crend_hrtf_tables_dimensions *hr { for ( iIter = 0; iIter < hrtf->num_iterations[iIR][iChan]; iIter++ ) { #ifdef FIX_1123_CREND_16BIT_FMT hrtf_data_size += 2 * hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter] * sizeof( int16_t ); // 2* : re & im #else hrtf_data_size += 2 * hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter] * sizeof( int32_t ); // 2* : re & im #endif } } } Loading @@ -2754,11 +2750,7 @@ uint32_t compute_binary_size( HRTFS_DATA *hrtf, crend_hrtf_tables_dimensions *hr { for ( iIter = 0; iIter < hrtf->num_iterations_diffuse[iChan]; iIter++ ) { #ifdef FIX_1123_CREND_16BIT_FMT hrtf_data_size += 2 * hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter] * sizeof( int16_t ); // 2* : re & im #else hrtf_data_size += 2 * hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter] * sizeof( int32_t ); // 2* : re & im #endif } } } Loading Loading @@ -2936,27 +2928,16 @@ ivas_error make_fx_be( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const if ( maxVal > 0 ) { #ifdef FIX_1123_CREND_16BIT_FMT factorQ[2] = (int16_t) floorf( 15.f - logf( maxVal ) / logf( 2.f ) ); #else factorQ[2] = (int16_t) floorf( 31.f - logf( maxVal ) / logf( 2.f ) ); #endif } else { factorQ[2] = 0; } #ifdef FIX_1123_CREND_16BIT_FMT if ( factorQ[2] > 15 ) { factorQ[2] = 15; } #else if ( factorQ[2] > 31 ) { factorQ[2] = 31; } #endif // pOut_to_bin_re_dyn (The size depends on pIndex_frequency_max_dyn) for ( iIR = 0; iIR < hrtf->max_num_ir; iIR++ ) Loading @@ -2970,13 +2951,8 @@ ivas_error make_fx_be( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const for ( iTap = 0; iTap < hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter]; iTap++ ) { tmp = coeff_rptr[iTap]; #ifdef FIX_1123_CREND_16BIT_FMT tmp16 = float2int16_t( coeff_rptr[iTap], factorQ[2] ); coeff_rptr[iTap] = (float) tmp16 * powf( 2.f, -1.f * (float) factorQ[2] ); #else tmp32 = float2int32_t( coeff_rptr[iTap], factorQ[2] ); coeff_rptr[iTap] = (float) tmp32 * powf( 2.f, -1.f * (float) factorQ[2] ); #endif diff = fabsf( tmp - coeff_rptr[iTap] ); if ( maxDiff < diff ) { Loading @@ -2999,13 +2975,8 @@ ivas_error make_fx_be( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const for ( iTap = 0; iTap < hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter]; iTap++ ) { tmp = coeff_rptr[iTap]; #ifdef FIX_1123_CREND_16BIT_FMT tmp16 = float2int16_t( coeff_rptr[iTap], factorQ[2] ); coeff_rptr[iTap] = (float) tmp16 * powf( 2.f, -1.f * (float) factorQ[2] ); #else tmp32 = float2int32_t( coeff_rptr[iTap], factorQ[2] ); coeff_rptr[iTap] = (float) tmp32 * powf( 2.f, -1.f * (float) factorQ[2] ); #endif diff = fabsf( tmp - coeff_rptr[iTap] ); if ( maxDiff < diff ) { Loading @@ -3030,13 +3001,8 @@ ivas_error make_fx_be( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const for ( iTap = 0; iTap < hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter]; iTap++ ) { tmp = coeff_rptr[iTap]; #ifdef FIX_1123_CREND_16BIT_FMT tmp16 = float2int16_t( coeff_rptr[iTap], factorQ[2] ); coeff_rptr[iTap] = (float) tmp16 * powf( 2.f, -1.f * (float) factorQ[2] ); #else tmp32 = float2int32_t( coeff_rptr[iTap], factorQ[2] ); coeff_rptr[iTap] = (float) tmp32 * powf( 2.f, -1.f * (float) factorQ[2] ); #endif diff = fabsf( tmp - coeff_rptr[iTap] ); if ( maxDiff < diff ) { Loading @@ -3057,13 +3023,8 @@ ivas_error make_fx_be( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const for ( iTap = 0; iTap < hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter]; iTap++ ) { tmp = coeff_rptr[iTap]; #ifdef FIX_1123_CREND_16BIT_FMT tmp16 = float2int16_t( coeff_rptr[iTap], factorQ[2] ); coeff_rptr[iTap] = (float) tmp16 * powf( 2.f, -1.f * (float) factorQ[2] ); #else tmp32 = float2int32_t( coeff_rptr[iTap], factorQ[2] ); coeff_rptr[iTap] = (float) tmp32 * powf( 2.f, -1.f * (float) factorQ[2] ); #endif diff = fabsf( tmp - coeff_rptr[iTap] ); if ( maxDiff < diff ) { Loading Loading @@ -3242,22 +3203,13 @@ ivas_error write_binary_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, coeff_rptr = hrtf->pOut_to_bin_re_dyn[iIR][iChan]; for ( iIter = 0; iIter < hrtf->num_iterations[iIR][iChan]; iIter++ ) { #ifdef FIX_1123_CREND_16BIT_FMT data_size_tmp = hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter] * sizeof( int16_t ); #else data_size_tmp = hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter] * sizeof( int32_t ); #endif // memcpy( hrtf_bin_wptr, coeff_rptr, data_size_tmp ); for ( iTap = 0; iTap < hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter]; iTap++ ) { tmp = coeff_rptr[iTap]; #ifdef FIX_1123_CREND_16BIT_FMT ( (int16_t *) hrtf_bin_wptr )[iTap] = float2int16_t( coeff_rptr[iTap], factorQ[2] ); tmp2 = ( (float) ( ( (int16_t *) hrtf_bin_wptr )[iTap] ) ) * powf( 2.f, -1.f * (float) factorQ[2] ); #else ( (int32_t *) hrtf_bin_wptr )[iTap] = float2int32_t( coeff_rptr[iTap], factorQ[2] ); tmp2 = ( (float) ( ( (int32_t *) hrtf_bin_wptr )[iTap] ) ) * powf( 2.f, -1.f * (float) factorQ[2] ); #endif diff = fabsf( tmp - tmp2 ); if ( maxDiff < diff ) { Loading @@ -3278,21 +3230,12 @@ ivas_error write_binary_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, coeff_rptr = hrtf->pOut_to_bin_im_dyn[iIR][iChan]; for ( iIter = 0; iIter < hrtf->num_iterations[iIR][iChan]; iIter++ ) { #ifdef FIX_1123_CREND_16BIT_FMT data_size_tmp = hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter] * sizeof( int16_t ); #else data_size_tmp = hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter] * sizeof( int32_t ); #endif for ( iTap = 0; iTap < hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter]; iTap++ ) { tmp = coeff_rptr[iTap]; #ifdef FIX_1123_CREND_16BIT_FMT ( (int16_t *) hrtf_bin_wptr )[iTap] = float2int16_t( coeff_rptr[iTap], factorQ[2] ); tmp2 = ( (float) ( ( (int16_t *) hrtf_bin_wptr )[iTap] ) ) * powf( 2.f, -1.f * (float) factorQ[2] ); #else ( (int32_t *) hrtf_bin_wptr )[iTap] = float2int32_t( coeff_rptr[iTap], factorQ[2] ); tmp2 = ( (float) ( ( (int32_t *) hrtf_bin_wptr )[iTap] ) ) * powf( 2.f, -1.f * (float) factorQ[2] ); #endif diff = fabsf( tmp - tmp2 ); if ( maxDiff < diff ) { Loading @@ -3316,22 +3259,13 @@ ivas_error write_binary_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, coeff_rptr = hrtf->pOut_to_bin_diffuse_re_dyn[iChan]; for ( iIter = 0; iIter < hrtf->num_iterations_diffuse[iChan]; iIter++ ) { #ifdef FIX_1123_CREND_16BIT_FMT data_size_tmp = hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter] * sizeof( int16_t ); #else data_size_tmp = hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter] * sizeof( int32_t ); #endif // memcpy( hrtf_bin_wptr, coeff_rptr, data_size_tmp ); for ( iTap = 0; iTap < hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter]; iTap++ ) { tmp = coeff_rptr[iTap]; #ifdef FIX_1123_CREND_16BIT_FMT ( (int16_t *) hrtf_bin_wptr )[iTap] = float2int16_t( coeff_rptr[iTap], factorQ[2] ); tmp2 = ( (float) ( ( (int16_t *) hrtf_bin_wptr )[iTap] ) ) * powf( 2.f, -1.f * (float) factorQ[2] ); #else ( (int32_t *) hrtf_bin_wptr )[iTap] = float2int32_t( coeff_rptr[iTap], factorQ[2] ); tmp2 = ( (float) ( ( (int32_t *) hrtf_bin_wptr )[iTap] ) ) * powf( 2.f, -1.f * (float) factorQ[2] ); #endif diff = fabsf( tmp - tmp2 ); if ( maxDiff < diff ) { Loading @@ -3349,21 +3283,12 @@ ivas_error write_binary_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, coeff_rptr = hrtf->pOut_to_bin_diffuse_im_dyn[iChan]; for ( iIter = 0; iIter < hrtf->num_iterations_diffuse[iChan]; iIter++ ) { #ifdef FIX_1123_CREND_16BIT_FMT data_size_tmp = hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter] * sizeof( int16_t ); #else data_size_tmp = hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter] * sizeof( int32_t ); #endif for ( iTap = 0; iTap < hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter]; iTap++ ) { tmp = coeff_rptr[iTap]; #ifdef FIX_1123_CREND_16BIT_FMT ( (int16_t *) hrtf_bin_wptr )[iTap] = float2int16_t( coeff_rptr[iTap], factorQ[2] ); tmp2 = ( (float) ( ( (int16_t *) hrtf_bin_wptr )[iTap] ) ) * powf( 2.f, -1.f * (float) factorQ[2] ); #else ( (int32_t *) hrtf_bin_wptr )[iTap] = float2int32_t( coeff_rptr[iTap], factorQ[2] ); tmp2 = ( (float) ( ( (int32_t *) hrtf_bin_wptr )[iTap] ) ) * powf( 2.f, -1.f * (float) factorQ[2] ); #endif diff = fabsf( tmp - tmp2 ); if ( maxDiff < diff ) { Loading Loading
lib_com/options.h +0 −1 Original line number Diff line number Diff line Loading @@ -170,7 +170,6 @@ #define TMP_FIX_1119_SPLIT_RENDERING_VOIP /* FhG: Add error check for unsupported config: split rendering with VoIP mode */ #define FIX_POINT_ROM_CONST /* Ora: issue #1150 HRTF ROM tables should be defined as 'const'*/ #define FIX_1123_CREND_16BIT_FMT /* Ora: update CREND binary file format to 16 bit */ #define FIX_1123_CREND_FLTFX_BE /* Ora: make CREND FLT ROM tables BE to FX file */ #define FIX_1123_FASTCONV_16BIT_FMT /* FhG: issue 1123: update FastConv binary file format and scripts to 16 bit */ #define FIX_RETURN /* VA: fix location of function returns */ Loading
lib_util/hrtf_file_reader.c +0 −20 Original line number Diff line number Diff line Loading @@ -1268,13 +1268,8 @@ static ivas_error create_HRTF_from_rawdata( for ( k = 0; k < ( *hHRTF )->num_iterations[i][j]; k++ ) { #ifdef FIX_1123_CREND_16BIT_FMT mem_size = ( *hHRTF )->pIndex_frequency_max[i][j][k] * sizeof( int16_t ); Word16 *ptW = (Word16 *) hrtf_data_rptr; #else mem_size = ( *hHRTF )->pIndex_frequency_max[i][j][k] * sizeof( int32_t ); Word32 *ptW = (Word32 *) hrtf_data_rptr; #endif for ( l = 0; l < ( *hHRTF )->pIndex_frequency_max[i][j][k]; l++ ) { pOut_to_bin_wptr[l] = ptW[l] * powf( 2.f, -1.f * factorQ ); Loading Loading @@ -1313,13 +1308,8 @@ static ivas_error create_HRTF_from_rawdata( #endif for ( k = 0; k < ( *hHRTF )->num_iterations[i][j]; k++ ) { #ifdef FIX_1123_CREND_16BIT_FMT mem_size = ( *hHRTF )->pIndex_frequency_max[i][j][k] * sizeof( int16_t ); Word16 *ptW = (Word16 *) hrtf_data_rptr; #else mem_size = ( *hHRTF )->pIndex_frequency_max[i][j][k] * sizeof( int32_t ); Word32 *ptW = (Word32 *) hrtf_data_rptr; #endif for ( l = 0; l < ( *hHRTF )->pIndex_frequency_max[i][j][k]; l++ ) { pOut_to_bin_wptr[l] = ptW[l] * powf( 2.f, -1.f * factorQ ); Loading Loading @@ -1365,13 +1355,8 @@ static ivas_error create_HRTF_from_rawdata( for ( k = 0; k < ( *hHRTF )->num_iterations_diffuse[j]; k++ ) { #ifdef FIX_1123_CREND_16BIT_FMT mem_size = ( *hHRTF )->pIndex_frequency_max_diffuse[j][k] * sizeof( int16_t ); Word16 *ptW = (Word16 *) hrtf_data_rptr; #else mem_size = ( *hHRTF )->pIndex_frequency_max_diffuse[j][k] * sizeof( int32_t ); Word32 *ptW = (Word32 *) hrtf_data_rptr; #endif for ( l = 0; l < ( *hHRTF )->pIndex_frequency_max_diffuse[j][k]; l++ ) { pOut_to_bin_wptr[l] = ptW[l] * powf( 2.f, -1.f * factorQ ); Loading Loading @@ -1407,13 +1392,8 @@ static ivas_error create_HRTF_from_rawdata( #endif for ( k = 0; k < ( *hHRTF )->num_iterations_diffuse[j]; k++ ) { #ifdef FIX_1123_CREND_16BIT_FMT mem_size = ( *hHRTF )->pIndex_frequency_max_diffuse[j][k] * sizeof( int16_t ); Word16 *ptW = (Word16 *) hrtf_data_rptr; #else mem_size = ( *hHRTF )->pIndex_frequency_max_diffuse[j][k] * sizeof( int32_t ); Word32 *ptW = (Word32 *) hrtf_data_rptr; #endif for ( l = 0; l < ( *hHRTF )->pIndex_frequency_max_diffuse[j][k]; l++ ) { pOut_to_bin_wptr[l] = ptW[l] * powf( 2.f, -1.f * factorQ ); Loading
scripts/binauralRenderer_interface/Table_Format_Converter/generate_tables_from_rom_to_bin.c +0 −8 Original line number Diff line number Diff line Loading @@ -1743,11 +1743,7 @@ int32_t compute_crend_hrtf_data_size( crend_hrtf_tables_pointers *hrtf_table_ptr { for ( iIter = 0; iIter < hrtf_table_ptrs->num_iterations[iIR * BINAURAL_CHANNELS + iChan]; iIter++ ) { #ifdef FIX_1123_CREND_16BIT_FMT hrtf_data_size += 2 * hrtf_table_ptrs->pIndex_frequency_max[iIndex++] * sizeof( int16_t ); // 2* : re & im #else hrtf_data_size += 2 * hrtf_table_ptrs->pIndex_frequency_max[iIndex++] * sizeof( int32_t ); // 2* : re & im #endif } } } Loading @@ -1760,11 +1756,7 @@ int32_t compute_crend_hrtf_data_size( crend_hrtf_tables_pointers *hrtf_table_ptr { for ( iIter = 0; iIter < hrtf_table_ptrs->num_iterations_diffuse[iChan]; iIter++ ) { #ifdef FIX_1123_CREND_16BIT_FMT hrtf_data_size += 2 * hrtf_table_ptrs->pIndex_frequency_max_diffuse[iIndex++] * sizeof( int16_t ); // 2* : re & im #else hrtf_data_size += 2 * hrtf_table_ptrs->pIndex_frequency_max_diffuse[iIndex++] * sizeof( int32_t ); // 2* : re & im #endif } } } Loading
scripts/binauralRenderer_interface/generate_crend_ivas_tables_from_sofa.c +2 −77 Original line number Diff line number Diff line Loading @@ -1300,7 +1300,7 @@ int generate_crend_ivas_tables_from_sofa( const char *file_path, ConfigReader *c #endif } #if defined( FIX_1123_CREND_16BIT_FMT ) && !defined( FIX_1123_CREND_FLTFX_BE ) #if !defined( FIX_1123_CREND_FLTFX_BE ) int16_t factorQ[3]; make_fx_be( &hrtf_data, lscfg, sample_rates[indSR], frame_len, factorQ ); #endif Loading Loading @@ -1888,7 +1888,7 @@ int generate_reverb_ivas_tables_from_sofa( const char *file_path ) update_c_file_with_reverb( p_avg_lr, &p_avg_lr[nr_fc_fft_filter], pCoherence, sample_rates[indSR], nr_fc_fft_filter ); #endif } #if defined( FIX_1123_CREND_16BIT_FMT ) && !defined( FIX_1123_CREND_FLTFX_BE ) #if !defined( FIX_1123_CREND_FLTFX_BE ) make_reverb_fx_be( p_avg_lr, &p_avg_lr[nr_fc_fft_filter], pCoherence, sample_rates[indSR], &factorQ ); for ( i = 0; i < nr_fc_fft_filter; i++ ) { Loading Loading @@ -2737,11 +2737,7 @@ uint32_t compute_binary_size( HRTFS_DATA *hrtf, crend_hrtf_tables_dimensions *hr { for ( iIter = 0; iIter < hrtf->num_iterations[iIR][iChan]; iIter++ ) { #ifdef FIX_1123_CREND_16BIT_FMT hrtf_data_size += 2 * hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter] * sizeof( int16_t ); // 2* : re & im #else hrtf_data_size += 2 * hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter] * sizeof( int32_t ); // 2* : re & im #endif } } } Loading @@ -2754,11 +2750,7 @@ uint32_t compute_binary_size( HRTFS_DATA *hrtf, crend_hrtf_tables_dimensions *hr { for ( iIter = 0; iIter < hrtf->num_iterations_diffuse[iChan]; iIter++ ) { #ifdef FIX_1123_CREND_16BIT_FMT hrtf_data_size += 2 * hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter] * sizeof( int16_t ); // 2* : re & im #else hrtf_data_size += 2 * hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter] * sizeof( int32_t ); // 2* : re & im #endif } } } Loading Loading @@ -2936,27 +2928,16 @@ ivas_error make_fx_be( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const if ( maxVal > 0 ) { #ifdef FIX_1123_CREND_16BIT_FMT factorQ[2] = (int16_t) floorf( 15.f - logf( maxVal ) / logf( 2.f ) ); #else factorQ[2] = (int16_t) floorf( 31.f - logf( maxVal ) / logf( 2.f ) ); #endif } else { factorQ[2] = 0; } #ifdef FIX_1123_CREND_16BIT_FMT if ( factorQ[2] > 15 ) { factorQ[2] = 15; } #else if ( factorQ[2] > 31 ) { factorQ[2] = 31; } #endif // pOut_to_bin_re_dyn (The size depends on pIndex_frequency_max_dyn) for ( iIR = 0; iIR < hrtf->max_num_ir; iIR++ ) Loading @@ -2970,13 +2951,8 @@ ivas_error make_fx_be( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const for ( iTap = 0; iTap < hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter]; iTap++ ) { tmp = coeff_rptr[iTap]; #ifdef FIX_1123_CREND_16BIT_FMT tmp16 = float2int16_t( coeff_rptr[iTap], factorQ[2] ); coeff_rptr[iTap] = (float) tmp16 * powf( 2.f, -1.f * (float) factorQ[2] ); #else tmp32 = float2int32_t( coeff_rptr[iTap], factorQ[2] ); coeff_rptr[iTap] = (float) tmp32 * powf( 2.f, -1.f * (float) factorQ[2] ); #endif diff = fabsf( tmp - coeff_rptr[iTap] ); if ( maxDiff < diff ) { Loading @@ -2999,13 +2975,8 @@ ivas_error make_fx_be( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const for ( iTap = 0; iTap < hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter]; iTap++ ) { tmp = coeff_rptr[iTap]; #ifdef FIX_1123_CREND_16BIT_FMT tmp16 = float2int16_t( coeff_rptr[iTap], factorQ[2] ); coeff_rptr[iTap] = (float) tmp16 * powf( 2.f, -1.f * (float) factorQ[2] ); #else tmp32 = float2int32_t( coeff_rptr[iTap], factorQ[2] ); coeff_rptr[iTap] = (float) tmp32 * powf( 2.f, -1.f * (float) factorQ[2] ); #endif diff = fabsf( tmp - coeff_rptr[iTap] ); if ( maxDiff < diff ) { Loading @@ -3030,13 +3001,8 @@ ivas_error make_fx_be( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const for ( iTap = 0; iTap < hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter]; iTap++ ) { tmp = coeff_rptr[iTap]; #ifdef FIX_1123_CREND_16BIT_FMT tmp16 = float2int16_t( coeff_rptr[iTap], factorQ[2] ); coeff_rptr[iTap] = (float) tmp16 * powf( 2.f, -1.f * (float) factorQ[2] ); #else tmp32 = float2int32_t( coeff_rptr[iTap], factorQ[2] ); coeff_rptr[iTap] = (float) tmp32 * powf( 2.f, -1.f * (float) factorQ[2] ); #endif diff = fabsf( tmp - coeff_rptr[iTap] ); if ( maxDiff < diff ) { Loading @@ -3057,13 +3023,8 @@ ivas_error make_fx_be( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const for ( iTap = 0; iTap < hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter]; iTap++ ) { tmp = coeff_rptr[iTap]; #ifdef FIX_1123_CREND_16BIT_FMT tmp16 = float2int16_t( coeff_rptr[iTap], factorQ[2] ); coeff_rptr[iTap] = (float) tmp16 * powf( 2.f, -1.f * (float) factorQ[2] ); #else tmp32 = float2int32_t( coeff_rptr[iTap], factorQ[2] ); coeff_rptr[iTap] = (float) tmp32 * powf( 2.f, -1.f * (float) factorQ[2] ); #endif diff = fabsf( tmp - coeff_rptr[iTap] ); if ( maxDiff < diff ) { Loading Loading @@ -3242,22 +3203,13 @@ ivas_error write_binary_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, coeff_rptr = hrtf->pOut_to_bin_re_dyn[iIR][iChan]; for ( iIter = 0; iIter < hrtf->num_iterations[iIR][iChan]; iIter++ ) { #ifdef FIX_1123_CREND_16BIT_FMT data_size_tmp = hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter] * sizeof( int16_t ); #else data_size_tmp = hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter] * sizeof( int32_t ); #endif // memcpy( hrtf_bin_wptr, coeff_rptr, data_size_tmp ); for ( iTap = 0; iTap < hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter]; iTap++ ) { tmp = coeff_rptr[iTap]; #ifdef FIX_1123_CREND_16BIT_FMT ( (int16_t *) hrtf_bin_wptr )[iTap] = float2int16_t( coeff_rptr[iTap], factorQ[2] ); tmp2 = ( (float) ( ( (int16_t *) hrtf_bin_wptr )[iTap] ) ) * powf( 2.f, -1.f * (float) factorQ[2] ); #else ( (int32_t *) hrtf_bin_wptr )[iTap] = float2int32_t( coeff_rptr[iTap], factorQ[2] ); tmp2 = ( (float) ( ( (int32_t *) hrtf_bin_wptr )[iTap] ) ) * powf( 2.f, -1.f * (float) factorQ[2] ); #endif diff = fabsf( tmp - tmp2 ); if ( maxDiff < diff ) { Loading @@ -3278,21 +3230,12 @@ ivas_error write_binary_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, coeff_rptr = hrtf->pOut_to_bin_im_dyn[iIR][iChan]; for ( iIter = 0; iIter < hrtf->num_iterations[iIR][iChan]; iIter++ ) { #ifdef FIX_1123_CREND_16BIT_FMT data_size_tmp = hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter] * sizeof( int16_t ); #else data_size_tmp = hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter] * sizeof( int32_t ); #endif for ( iTap = 0; iTap < hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter]; iTap++ ) { tmp = coeff_rptr[iTap]; #ifdef FIX_1123_CREND_16BIT_FMT ( (int16_t *) hrtf_bin_wptr )[iTap] = float2int16_t( coeff_rptr[iTap], factorQ[2] ); tmp2 = ( (float) ( ( (int16_t *) hrtf_bin_wptr )[iTap] ) ) * powf( 2.f, -1.f * (float) factorQ[2] ); #else ( (int32_t *) hrtf_bin_wptr )[iTap] = float2int32_t( coeff_rptr[iTap], factorQ[2] ); tmp2 = ( (float) ( ( (int32_t *) hrtf_bin_wptr )[iTap] ) ) * powf( 2.f, -1.f * (float) factorQ[2] ); #endif diff = fabsf( tmp - tmp2 ); if ( maxDiff < diff ) { Loading @@ -3316,22 +3259,13 @@ ivas_error write_binary_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, coeff_rptr = hrtf->pOut_to_bin_diffuse_re_dyn[iChan]; for ( iIter = 0; iIter < hrtf->num_iterations_diffuse[iChan]; iIter++ ) { #ifdef FIX_1123_CREND_16BIT_FMT data_size_tmp = hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter] * sizeof( int16_t ); #else data_size_tmp = hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter] * sizeof( int32_t ); #endif // memcpy( hrtf_bin_wptr, coeff_rptr, data_size_tmp ); for ( iTap = 0; iTap < hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter]; iTap++ ) { tmp = coeff_rptr[iTap]; #ifdef FIX_1123_CREND_16BIT_FMT ( (int16_t *) hrtf_bin_wptr )[iTap] = float2int16_t( coeff_rptr[iTap], factorQ[2] ); tmp2 = ( (float) ( ( (int16_t *) hrtf_bin_wptr )[iTap] ) ) * powf( 2.f, -1.f * (float) factorQ[2] ); #else ( (int32_t *) hrtf_bin_wptr )[iTap] = float2int32_t( coeff_rptr[iTap], factorQ[2] ); tmp2 = ( (float) ( ( (int32_t *) hrtf_bin_wptr )[iTap] ) ) * powf( 2.f, -1.f * (float) factorQ[2] ); #endif diff = fabsf( tmp - tmp2 ); if ( maxDiff < diff ) { Loading @@ -3349,21 +3283,12 @@ ivas_error write_binary_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, coeff_rptr = hrtf->pOut_to_bin_diffuse_im_dyn[iChan]; for ( iIter = 0; iIter < hrtf->num_iterations_diffuse[iChan]; iIter++ ) { #ifdef FIX_1123_CREND_16BIT_FMT data_size_tmp = hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter] * sizeof( int16_t ); #else data_size_tmp = hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter] * sizeof( int32_t ); #endif for ( iTap = 0; iTap < hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter]; iTap++ ) { tmp = coeff_rptr[iTap]; #ifdef FIX_1123_CREND_16BIT_FMT ( (int16_t *) hrtf_bin_wptr )[iTap] = float2int16_t( coeff_rptr[iTap], factorQ[2] ); tmp2 = ( (float) ( ( (int16_t *) hrtf_bin_wptr )[iTap] ) ) * powf( 2.f, -1.f * (float) factorQ[2] ); #else ( (int32_t *) hrtf_bin_wptr )[iTap] = float2int32_t( coeff_rptr[iTap], factorQ[2] ); tmp2 = ( (float) ( ( (int32_t *) hrtf_bin_wptr )[iTap] ) ) * powf( 2.f, -1.f * (float) factorQ[2] ); #endif diff = fabsf( tmp - tmp2 ); if ( maxDiff < diff ) { Loading