Loading lib_com/options.h +1 −1 Original line number Diff line number Diff line Loading @@ -158,7 +158,7 @@ #define FIX_852_FIX_HANDLE_DEREF /* VA: issue 852: Fix missing handle dereferencing of hIsmMetadaData in ivas_ism_metadata_close() */ #define FIX_520_REMOVE_MEMMOVE_JBM /* VA: issue 520: Remove memmove() from JBM code */ #define FIX_853_ARRAY_SIZE_MISMATCH /* Nokia: Issue #853: Mismatch of declaration and definition of computeIntensityVector_ana and computeReferencePower_ana */ #define FIX_814_DOUBLE_PREC_IN_REVERB /* Philips: Issue 814: Replace double precision arithmetic in reverb */ /* #################### End BE switches ################################## */ Loading lib_dec/ivas_binRenderer_internal.c +19 −0 Original line number Diff line number Diff line Loading @@ -184,6 +184,24 @@ static ivas_error ivas_binRenderer_convModuleOpen( { hBinRenConvModule->numTapsArray[bandIdx] = hBinRenConvModule->numTaps; } #ifdef FIX_814_DOUBLE_PREC_IN_REVERB for ( ; bandIdx < 10; bandIdx++ ) { hBinRenConvModule->numTapsArray[bandIdx] = (int16_t) ceilf( 0.6f * hBinRenConvModule->numTaps ); } for ( ; bandIdx < 20; bandIdx++ ) { hBinRenConvModule->numTapsArray[bandIdx] = (int16_t) ceilf( 0.5f * hBinRenConvModule->numTaps ); } for ( ; bandIdx < 30; bandIdx++ ) { hBinRenConvModule->numTapsArray[bandIdx] = (int16_t) ceilf( 0.4f * hBinRenConvModule->numTaps ); } for ( ; bandIdx < hBinRenderer->conv_band; bandIdx++ ) { hBinRenConvModule->numTapsArray[bandIdx] = (int16_t) ceilf( 0.3f * hBinRenConvModule->numTaps ); } #else for ( ; bandIdx < 10; bandIdx++ ) { hBinRenConvModule->numTapsArray[bandIdx] = (int16_t) ceil( 0.6f * hBinRenConvModule->numTaps ); Loading @@ -200,6 +218,7 @@ static ivas_error ivas_binRenderer_convModuleOpen( { hBinRenConvModule->numTapsArray[bandIdx] = (int16_t) ceil( 0.3f * hBinRenConvModule->numTaps ); } #endif } else { Loading lib_rend/ivas_reverb.c +6 −0 Original line number Diff line number Diff line Loading @@ -1200,8 +1200,14 @@ ivas_error ivas_reverb_open( /* Defining appropriate windowing parameters for FFT filters to prevent aliasing */ fft_hist_size = pState->fft_size - pState->fft_subblock_size; #ifdef FIX_814_DOUBLE_PREC_IN_REVERB transition_start = (int16_t) roundf( FFT_FILTER_WND_FLAT_REGION * fft_hist_size ); transition_length = (int16_t) roundf( FFT_FILTER_WND_TRANS_REGION * fft_hist_size ); #else transition_start = (int16_t) round( FFT_FILTER_WND_FLAT_REGION * fft_hist_size ); transition_length = (int16_t) round( FFT_FILTER_WND_TRANS_REGION * fft_hist_size ); #endif /* Compute the window used for FFT filters */ ivas_reverb_define_window_fft( pTime_window, transition_start, transition_length, nr_fc_fft_filter ); Loading lib_rend/ivas_reverb_filter_design.c +8 −0 Original line number Diff line number Diff line Loading @@ -587,7 +587,11 @@ void ivas_reverb_calc_color_levels( /* Limiting the frequency response gradients Find frequency band closest to chosen pivot frequency. */ #ifdef FIX_814_DOUBLE_PREC_IN_REVERB idx_pivot = (int16_t) roundf( STEP_LIMIT_PIVOT_FREQ / freq_step ); #else idx_pivot = (int16_t) round( STEP_LIMIT_PIVOT_FREQ / freq_step ); #endif /* Perform step limiting */ response_step_limit( pTarget_color_L, freq_count, RESPONSE_STEP_LIMIT_LF, RESPONSE_STEP_LIMIT_HF, idx_pivot ); Loading Loading @@ -723,7 +727,11 @@ void ivas_reverb_get_hrtf_set_properties( } else { #ifdef FIX_814_DOUBLE_PREC_IN_REVERB base_idx = (int16_t) floorf( tbl_index ); #else base_idx = (int16_t) floor( tbl_index ); #endif relative_pos = tbl_index - base_idx; if ( base_idx > ( in_freq_count - 2 ) ) /* In case of extrapolation (above last bin), choose nearest */ { Loading Loading
lib_com/options.h +1 −1 Original line number Diff line number Diff line Loading @@ -158,7 +158,7 @@ #define FIX_852_FIX_HANDLE_DEREF /* VA: issue 852: Fix missing handle dereferencing of hIsmMetadaData in ivas_ism_metadata_close() */ #define FIX_520_REMOVE_MEMMOVE_JBM /* VA: issue 520: Remove memmove() from JBM code */ #define FIX_853_ARRAY_SIZE_MISMATCH /* Nokia: Issue #853: Mismatch of declaration and definition of computeIntensityVector_ana and computeReferencePower_ana */ #define FIX_814_DOUBLE_PREC_IN_REVERB /* Philips: Issue 814: Replace double precision arithmetic in reverb */ /* #################### End BE switches ################################## */ Loading
lib_dec/ivas_binRenderer_internal.c +19 −0 Original line number Diff line number Diff line Loading @@ -184,6 +184,24 @@ static ivas_error ivas_binRenderer_convModuleOpen( { hBinRenConvModule->numTapsArray[bandIdx] = hBinRenConvModule->numTaps; } #ifdef FIX_814_DOUBLE_PREC_IN_REVERB for ( ; bandIdx < 10; bandIdx++ ) { hBinRenConvModule->numTapsArray[bandIdx] = (int16_t) ceilf( 0.6f * hBinRenConvModule->numTaps ); } for ( ; bandIdx < 20; bandIdx++ ) { hBinRenConvModule->numTapsArray[bandIdx] = (int16_t) ceilf( 0.5f * hBinRenConvModule->numTaps ); } for ( ; bandIdx < 30; bandIdx++ ) { hBinRenConvModule->numTapsArray[bandIdx] = (int16_t) ceilf( 0.4f * hBinRenConvModule->numTaps ); } for ( ; bandIdx < hBinRenderer->conv_band; bandIdx++ ) { hBinRenConvModule->numTapsArray[bandIdx] = (int16_t) ceilf( 0.3f * hBinRenConvModule->numTaps ); } #else for ( ; bandIdx < 10; bandIdx++ ) { hBinRenConvModule->numTapsArray[bandIdx] = (int16_t) ceil( 0.6f * hBinRenConvModule->numTaps ); Loading @@ -200,6 +218,7 @@ static ivas_error ivas_binRenderer_convModuleOpen( { hBinRenConvModule->numTapsArray[bandIdx] = (int16_t) ceil( 0.3f * hBinRenConvModule->numTaps ); } #endif } else { Loading
lib_rend/ivas_reverb.c +6 −0 Original line number Diff line number Diff line Loading @@ -1200,8 +1200,14 @@ ivas_error ivas_reverb_open( /* Defining appropriate windowing parameters for FFT filters to prevent aliasing */ fft_hist_size = pState->fft_size - pState->fft_subblock_size; #ifdef FIX_814_DOUBLE_PREC_IN_REVERB transition_start = (int16_t) roundf( FFT_FILTER_WND_FLAT_REGION * fft_hist_size ); transition_length = (int16_t) roundf( FFT_FILTER_WND_TRANS_REGION * fft_hist_size ); #else transition_start = (int16_t) round( FFT_FILTER_WND_FLAT_REGION * fft_hist_size ); transition_length = (int16_t) round( FFT_FILTER_WND_TRANS_REGION * fft_hist_size ); #endif /* Compute the window used for FFT filters */ ivas_reverb_define_window_fft( pTime_window, transition_start, transition_length, nr_fc_fft_filter ); Loading
lib_rend/ivas_reverb_filter_design.c +8 −0 Original line number Diff line number Diff line Loading @@ -587,7 +587,11 @@ void ivas_reverb_calc_color_levels( /* Limiting the frequency response gradients Find frequency band closest to chosen pivot frequency. */ #ifdef FIX_814_DOUBLE_PREC_IN_REVERB idx_pivot = (int16_t) roundf( STEP_LIMIT_PIVOT_FREQ / freq_step ); #else idx_pivot = (int16_t) round( STEP_LIMIT_PIVOT_FREQ / freq_step ); #endif /* Perform step limiting */ response_step_limit( pTarget_color_L, freq_count, RESPONSE_STEP_LIMIT_LF, RESPONSE_STEP_LIMIT_HF, idx_pivot ); Loading Loading @@ -723,7 +727,11 @@ void ivas_reverb_get_hrtf_set_properties( } else { #ifdef FIX_814_DOUBLE_PREC_IN_REVERB base_idx = (int16_t) floorf( tbl_index ); #else base_idx = (int16_t) floor( tbl_index ); #endif relative_pos = tbl_index - base_idx; if ( base_idx > ( in_freq_count - 2 ) ) /* In case of extrapolation (above last bin), choose nearest */ { Loading