Loading lib_com/options.h +3 −4 Original line number Diff line number Diff line Loading @@ -118,10 +118,9 @@ #define FIX_CREND_SIMPLIFY_CODE #ifdef FIX_CREND_SIMPLIFY_CODE #define FIX_989_TD_REND_ROM /* Eri: Clean-up for TD renderer and completion of ROM generation tool */ #define USE_CREND_16BIT_ROM //#define USE_REVERB_16BIT_ROM //#define USE_TDREND_16BIT_ROM /* when active some tests case with 4 ISM fail due to owerflow in round_fixed function */ //#define USE_FASTCONV_PARAMBIN_16BIT_ROM #define USE_REVERB_16BIT_ROM #define USE_TDREND_16BIT_ROM /* when active some tests case with 4 ISM fail due to owerflow in round_fixed function */ #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_rend/ivas_crend_fx.c +37 −37 Original line number Diff line number Diff line Loading @@ -349,8 +349,8 @@ static ivas_error ivas_rend_initCrend_fx( hHrtf->max_num_iterations = CRendBin_Combined_BRIR_max_num_iterations_48kHz; // Q0 hHrtf->index_frequency_max_diffuse = CRendBin_Combined_BRIR_index_frequency_max_diffuse_48kHz; // Q0 #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_Combined_BRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_Combined_BRIR_inv_diffuse_weight_Q_48kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_Combined_BRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_Combined_BRIR_inv_diffuse_weight_Q_48kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_Combined_BRIR_coeff_Q_48kHz_fx; move16(); move16(); Loading @@ -363,8 +363,8 @@ static ivas_error ivas_rend_initCrend_fx( hHrtf->max_num_iterations = CRendBin_Combined_HRIR_max_num_iterations_48kHz; // Q0 hHrtf->index_frequency_max_diffuse = CRendBin_Combined_HRIR_index_frequency_max_diffuse_48kHz; // Q0 #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_Combined_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_Combined_HRIR_inv_diffuse_weight_Q_48kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_Combined_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_Combined_HRIR_inv_diffuse_weight_Q_48kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_Combined_HRIR_coeff_Q_48kHz_fx; move16(); move16(); Loading Loading @@ -406,8 +406,8 @@ static ivas_error ivas_rend_initCrend_fx( hHrtf->max_num_iterations = CRendBin_Combined_BRIR_max_num_iterations_32kHz; // Q0 hHrtf->index_frequency_max_diffuse = CRendBin_Combined_BRIR_index_frequency_max_diffuse_32kHz; // Q0 #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_Combined_BRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_Combined_BRIR_inv_diffuse_weight_Q_32kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_Combined_BRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_Combined_BRIR_inv_diffuse_weight_Q_32kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_Combined_BRIR_coeff_Q_32kHz_fx; move16(); move16(); Loading @@ -420,8 +420,8 @@ static ivas_error ivas_rend_initCrend_fx( hHrtf->max_num_iterations = CRendBin_Combined_HRIR_max_num_iterations_32kHz; // Q0 hHrtf->index_frequency_max_diffuse = CRendBin_Combined_HRIR_index_frequency_max_diffuse_32kHz; // Q0 #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_Combined_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_Combined_HRIR_inv_diffuse_weight_Q_32kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_Combined_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_Combined_HRIR_inv_diffuse_weight_Q_32kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_Combined_HRIR_coeff_Q_32kHz_fx; move16(); move16(); Loading Loading @@ -464,8 +464,8 @@ static ivas_error ivas_rend_initCrend_fx( hHrtf->max_num_iterations = CRendBin_Combined_BRIR_max_num_iterations_16kHz; hHrtf->index_frequency_max_diffuse = CRendBin_Combined_BRIR_index_frequency_max_diffuse_16kHz; #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_Combined_BRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_Combined_BRIR_inv_diffuse_weight_Q_16kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_Combined_BRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_Combined_BRIR_inv_diffuse_weight_Q_16kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_Combined_BRIR_coeff_Q_16kHz_fx; move16(); move16(); Loading @@ -478,8 +478,8 @@ static ivas_error ivas_rend_initCrend_fx( hHrtf->max_num_iterations = CRendBin_Combined_HRIR_max_num_iterations_16kHz; hHrtf->index_frequency_max_diffuse = CRendBin_Combined_HRIR_index_frequency_max_diffuse_16kHz; #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_Combined_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_Combined_HRIR_inv_diffuse_weight_Q_16kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_Combined_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_Combined_HRIR_inv_diffuse_weight_Q_16kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_Combined_HRIR_coeff_Q_16kHz_fx; move16(); move16(); Loading Loading @@ -647,8 +647,8 @@ static ivas_error ivas_rend_initCrend_fx( hHrtf->max_num_iterations = CRendBin_HOA3_HRIR_max_num_iterations_48kHz; hHrtf->index_frequency_max_diffuse = CRendBin_HOA3_HRIR_index_frequency_max_diffuse_48kHz; #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_HOA3_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_HOA3_HRIR_inv_diffuse_weight_Q_48kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_HOA3_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_HOA3_HRIR_inv_diffuse_weight_Q_48kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_HOA3_HRIR_coeff_Q_48kHz_fx; move16(); move16(); Loading Loading @@ -694,8 +694,8 @@ static ivas_error ivas_rend_initCrend_fx( hHrtf->max_num_iterations = CRendBin_HOA3_HRIR_max_num_iterations_32kHz; hHrtf->index_frequency_max_diffuse = CRendBin_HOA3_HRIR_index_frequency_max_diffuse_32kHz; #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_HOA3_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_HOA3_HRIR_inv_diffuse_weight_Q_32kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_HOA3_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_HOA3_HRIR_inv_diffuse_weight_Q_32kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_HOA3_HRIR_coeff_Q_32kHz_fx; move16(); move16(); Loading Loading @@ -745,8 +745,8 @@ static ivas_error ivas_rend_initCrend_fx( move16(); move16(); #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_HOA3_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_HOA3_HRIR_inv_diffuse_weight_Q_16kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_HOA3_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_HOA3_HRIR_inv_diffuse_weight_Q_16kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_HOA3_HRIR_coeff_Q_16kHz_fx; move16(); move16(); Loading Loading @@ -801,8 +801,8 @@ static ivas_error ivas_rend_initCrend_fx( move16(); move16(); #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_HOA2_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_HOA2_HRIR_inv_diffuse_weight_Q_48kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_HOA2_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_HOA2_HRIR_inv_diffuse_weight_Q_48kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_HOA2_HRIR_coeff_Q_48kHz_fx; move16(); move16(); Loading Loading @@ -849,8 +849,8 @@ static ivas_error ivas_rend_initCrend_fx( move16(); move16(); #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_HOA2_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_HOA2_HRIR_inv_diffuse_weight_Q_32kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_HOA2_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_HOA2_HRIR_inv_diffuse_weight_Q_32kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_HOA2_HRIR_coeff_Q_32kHz_fx; move16(); move16(); Loading Loading @@ -897,8 +897,8 @@ static ivas_error ivas_rend_initCrend_fx( move16(); move16(); #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_HOA2_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_HOA2_HRIR_inv_diffuse_weight_Q_16kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_HOA2_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_HOA2_HRIR_inv_diffuse_weight_Q_16kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_HOA2_HRIR_coeff_Q_16kHz_fx; move16(); move16(); Loading Loading @@ -953,8 +953,8 @@ static ivas_error ivas_rend_initCrend_fx( move16(); move16(); #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_FOA_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_FOA_HRIR_inv_diffuse_weight_Q_48kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_FOA_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_FOA_HRIR_inv_diffuse_weight_Q_48kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_FOA_HRIR_coeff_Q_48kHz_fx; move16(); move16(); Loading Loading @@ -1000,8 +1000,8 @@ static ivas_error ivas_rend_initCrend_fx( move16(); move16(); #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_FOA_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_FOA_HRIR_inv_diffuse_weight_Q_32kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_FOA_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_FOA_HRIR_inv_diffuse_weight_Q_32kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_FOA_HRIR_coeff_Q_32kHz_fx; move16(); move16(); Loading Loading @@ -1047,8 +1047,8 @@ static ivas_error ivas_rend_initCrend_fx( move16(); move16(); #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_FOA_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_FOA_HRIR_inv_diffuse_weight_Q_16kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_FOA_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_FOA_HRIR_inv_diffuse_weight_Q_16kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_FOA_HRIR_coeff_Q_16kHz_fx; move16(); move16(); Loading Loading @@ -2057,7 +2057,7 @@ ivas_error ivas_rend_openCrend( hCrend->hReverb = NULL; } #ifdef FIX_CREND_SIMPLIFY_CODE ( *pCrend )->binaural_latency_ns = L_shr_r( Mpy_32_32_r( ( *pCrend )->hHrtfCrend->latency_s_fx, 1000000000 ), Q31 - ( *pCrend )->hHrtfCrend->factor_Q_latency_s_fx ); ( *pCrend )->binaural_latency_ns = L_shr_r( Mpy_32_32_r( ( *pCrend )->hHrtfCrend->latency_s_fx, 1000000000 ), ( *pCrend )->hHrtfCrend->factor_Q_latency_s_fx ); #else ( *pCrend )->binaural_latency_ns = Mult_32_32( ( *pCrend )->hHrtfCrend->latency_s_fx, (Word32) 1000000000 ); #endif Loading Loading @@ -2334,17 +2334,17 @@ static ivas_error ivas_rend_crendConvolver( { FOR( k = 0; k < pCrend->hHrtfCrend->index_frequency_max_diffuse; k++ ) { pFreq_buf2_re[k] = L_shl( pFreq_buf2_re[k], Q15 - pCrend->hHrtfCrend->factor_Q_inv_diffuse_weight ); pFreq_buf2_im[k] = L_shl( pFreq_buf2_im[k], Q15 - pCrend->hHrtfCrend->factor_Q_inv_diffuse_weight ); pFreq_buf2_re[k] = L_shl( pFreq_buf2_re[k], pCrend->hHrtfCrend->factor_Q_inv_diffuse_weight ); pFreq_buf2_im[k] = L_shl( pFreq_buf2_im[k], pCrend->hHrtfCrend->factor_Q_inv_diffuse_weight ); } IF( pCrend->hHrtfCrend->same_inv_diffuse_weight == 0 ) { FOR( k = 0; k < pCrend->hHrtfCrend->index_frequency_max_diffuse; k++ ) { pFreq_buf2_re[k] = L_shl( pFreq_buf2_re[k], Q15 - pCrend->hHrtfCrend->factor_Q_inv_diffuse_weight ); pFreq_buf2_im[k] = L_shl( pFreq_buf2_im[k], Q15 - pCrend->hHrtfCrend->factor_Q_inv_diffuse_weight ); pFreq_buf3_re[k] = L_shl( pFreq_buf3_re[k], Q15 - pCrend->hHrtfCrend->factor_Q_inv_diffuse_weight ); pFreq_buf3_im[k] = L_shl( pFreq_buf3_im[k], Q15 - pCrend->hHrtfCrend->factor_Q_inv_diffuse_weight ); pFreq_buf2_re[k] = L_shl( pFreq_buf2_re[k], pCrend->hHrtfCrend->factor_Q_inv_diffuse_weight ); pFreq_buf2_im[k] = L_shl( pFreq_buf2_im[k], pCrend->hHrtfCrend->factor_Q_inv_diffuse_weight ); pFreq_buf3_re[k] = L_shl( pFreq_buf3_re[k], pCrend->hHrtfCrend->factor_Q_inv_diffuse_weight ); pFreq_buf3_im[k] = L_shl( pFreq_buf3_im[k], pCrend->hHrtfCrend->factor_Q_inv_diffuse_weight ); } } } Loading lib_rend/ivas_rom_binaural_crend_head.h +3 −3 Original line number Diff line number Diff line Loading @@ -50,7 +50,7 @@ extern Word32 sine_table_Q31 [361]; extern Word32 cosine_table_Q31 [181]; #ifdef USE_CREND_16BIT_ROM #ifdef FIX_CREND_SIMPLIFY_CODE /********************** CRendBin_Combined_HRIR **********************/ Loading Loading @@ -368,7 +368,7 @@ extern float defaultHRIR_right_avg_power_16kHz_fx[LR_IAC_LENGTH_NR_FC_16KHZ]; #endif #else /* USE_CREND_16BIT_ROM */ #else /* FIX_CREND_SIMPLIFY_CODE */ /********************** CRendBin_Combined_HRIR **********************/ Loading Loading @@ -620,5 +620,5 @@ extern float defaultHRIR_coherence_16kHz_fx[LR_IAC_LENGTH_NR_FC_16KHZ]; extern float defaultHRIR_left_avg_power_16kHz_fx[LR_IAC_LENGTH_NR_FC_16KHZ]; /*Q-23*/ extern float defaultHRIR_right_avg_power_16kHz_fx[LR_IAC_LENGTH_NR_FC_16KHZ]; /*Q-23*/ #endif /* USE_CREND_16BIT_ROM */ #endif /* FIX_CREND_SIMPLIFY_CODE */ #endif /* _IVAS_ROM_BINAURAL_CREND_HEAD_ */ lib_rend/ivas_rom_binaural_crend_head_fx.c +1 −1 Original line number Diff line number Diff line Loading @@ -45,7 +45,7 @@ #define WMC_TOOL_SKIP #ifdef USE_CREND_16BIT_ROM #ifdef FIX_CREND_SIMPLIFY_CODE /********************** CRendBin_Combined_HRIR **********************/ lib_util/hrtf_file_reader.c +2 −2 Original line number Diff line number Diff line Loading @@ -1643,7 +1643,7 @@ static ivas_error create_Crend_HRTF_from_rawdata( hrtf_data_rptr = hrtf_data; /* latency_s Q factor*/ ( *hHRTF )->factor_Q_latency_s_fx = *( (Word16 *) ( hrtf_data_rptr ) ); ( *hHRTF )->factor_Q_latency_s_fx = Q31 - *( (Word16 *) ( hrtf_data_rptr ) ); hrtf_data_rptr += sizeof( Word16 ); /* latency_s */ ( *hHRTF )->latency_s_fx = ( *( (Word32 *) ( hrtf_data_rptr ) ) ); Loading Loading @@ -1723,7 +1723,7 @@ static ivas_error create_Crend_HRTF_from_rawdata( hrtf_data_rptr += sizeof( uint16_t ); /* inv_diffuse_weight Q factor*/ ( *hHRTF )->factor_Q_inv_diffuse_weight = *( (Word16 *) ( hrtf_data_rptr ) ); ( *hHRTF )->factor_Q_inv_diffuse_weight = Q15 - *( (Word16 *) ( hrtf_data_rptr ) ); hrtf_data_rptr += sizeof( Word16 ); /* inv_diffuse_weight */ Loading Loading
lib_com/options.h +3 −4 Original line number Diff line number Diff line Loading @@ -118,10 +118,9 @@ #define FIX_CREND_SIMPLIFY_CODE #ifdef FIX_CREND_SIMPLIFY_CODE #define FIX_989_TD_REND_ROM /* Eri: Clean-up for TD renderer and completion of ROM generation tool */ #define USE_CREND_16BIT_ROM //#define USE_REVERB_16BIT_ROM //#define USE_TDREND_16BIT_ROM /* when active some tests case with 4 ISM fail due to owerflow in round_fixed function */ //#define USE_FASTCONV_PARAMBIN_16BIT_ROM #define USE_REVERB_16BIT_ROM #define USE_TDREND_16BIT_ROM /* when active some tests case with 4 ISM fail due to owerflow in round_fixed function */ #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_rend/ivas_crend_fx.c +37 −37 Original line number Diff line number Diff line Loading @@ -349,8 +349,8 @@ static ivas_error ivas_rend_initCrend_fx( hHrtf->max_num_iterations = CRendBin_Combined_BRIR_max_num_iterations_48kHz; // Q0 hHrtf->index_frequency_max_diffuse = CRendBin_Combined_BRIR_index_frequency_max_diffuse_48kHz; // Q0 #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_Combined_BRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_Combined_BRIR_inv_diffuse_weight_Q_48kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_Combined_BRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_Combined_BRIR_inv_diffuse_weight_Q_48kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_Combined_BRIR_coeff_Q_48kHz_fx; move16(); move16(); Loading @@ -363,8 +363,8 @@ static ivas_error ivas_rend_initCrend_fx( hHrtf->max_num_iterations = CRendBin_Combined_HRIR_max_num_iterations_48kHz; // Q0 hHrtf->index_frequency_max_diffuse = CRendBin_Combined_HRIR_index_frequency_max_diffuse_48kHz; // Q0 #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_Combined_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_Combined_HRIR_inv_diffuse_weight_Q_48kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_Combined_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_Combined_HRIR_inv_diffuse_weight_Q_48kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_Combined_HRIR_coeff_Q_48kHz_fx; move16(); move16(); Loading Loading @@ -406,8 +406,8 @@ static ivas_error ivas_rend_initCrend_fx( hHrtf->max_num_iterations = CRendBin_Combined_BRIR_max_num_iterations_32kHz; // Q0 hHrtf->index_frequency_max_diffuse = CRendBin_Combined_BRIR_index_frequency_max_diffuse_32kHz; // Q0 #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_Combined_BRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_Combined_BRIR_inv_diffuse_weight_Q_32kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_Combined_BRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_Combined_BRIR_inv_diffuse_weight_Q_32kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_Combined_BRIR_coeff_Q_32kHz_fx; move16(); move16(); Loading @@ -420,8 +420,8 @@ static ivas_error ivas_rend_initCrend_fx( hHrtf->max_num_iterations = CRendBin_Combined_HRIR_max_num_iterations_32kHz; // Q0 hHrtf->index_frequency_max_diffuse = CRendBin_Combined_HRIR_index_frequency_max_diffuse_32kHz; // Q0 #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_Combined_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_Combined_HRIR_inv_diffuse_weight_Q_32kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_Combined_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_Combined_HRIR_inv_diffuse_weight_Q_32kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_Combined_HRIR_coeff_Q_32kHz_fx; move16(); move16(); Loading Loading @@ -464,8 +464,8 @@ static ivas_error ivas_rend_initCrend_fx( hHrtf->max_num_iterations = CRendBin_Combined_BRIR_max_num_iterations_16kHz; hHrtf->index_frequency_max_diffuse = CRendBin_Combined_BRIR_index_frequency_max_diffuse_16kHz; #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_Combined_BRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_Combined_BRIR_inv_diffuse_weight_Q_16kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_Combined_BRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_Combined_BRIR_inv_diffuse_weight_Q_16kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_Combined_BRIR_coeff_Q_16kHz_fx; move16(); move16(); Loading @@ -478,8 +478,8 @@ static ivas_error ivas_rend_initCrend_fx( hHrtf->max_num_iterations = CRendBin_Combined_HRIR_max_num_iterations_16kHz; hHrtf->index_frequency_max_diffuse = CRendBin_Combined_HRIR_index_frequency_max_diffuse_16kHz; #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_Combined_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_Combined_HRIR_inv_diffuse_weight_Q_16kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_Combined_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_Combined_HRIR_inv_diffuse_weight_Q_16kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_Combined_HRIR_coeff_Q_16kHz_fx; move16(); move16(); Loading Loading @@ -647,8 +647,8 @@ static ivas_error ivas_rend_initCrend_fx( hHrtf->max_num_iterations = CRendBin_HOA3_HRIR_max_num_iterations_48kHz; hHrtf->index_frequency_max_diffuse = CRendBin_HOA3_HRIR_index_frequency_max_diffuse_48kHz; #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_HOA3_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_HOA3_HRIR_inv_diffuse_weight_Q_48kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_HOA3_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_HOA3_HRIR_inv_diffuse_weight_Q_48kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_HOA3_HRIR_coeff_Q_48kHz_fx; move16(); move16(); Loading Loading @@ -694,8 +694,8 @@ static ivas_error ivas_rend_initCrend_fx( hHrtf->max_num_iterations = CRendBin_HOA3_HRIR_max_num_iterations_32kHz; hHrtf->index_frequency_max_diffuse = CRendBin_HOA3_HRIR_index_frequency_max_diffuse_32kHz; #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_HOA3_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_HOA3_HRIR_inv_diffuse_weight_Q_32kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_HOA3_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_HOA3_HRIR_inv_diffuse_weight_Q_32kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_HOA3_HRIR_coeff_Q_32kHz_fx; move16(); move16(); Loading Loading @@ -745,8 +745,8 @@ static ivas_error ivas_rend_initCrend_fx( move16(); move16(); #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_HOA3_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_HOA3_HRIR_inv_diffuse_weight_Q_16kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_HOA3_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_HOA3_HRIR_inv_diffuse_weight_Q_16kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_HOA3_HRIR_coeff_Q_16kHz_fx; move16(); move16(); Loading Loading @@ -801,8 +801,8 @@ static ivas_error ivas_rend_initCrend_fx( move16(); move16(); #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_HOA2_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_HOA2_HRIR_inv_diffuse_weight_Q_48kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_HOA2_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_HOA2_HRIR_inv_diffuse_weight_Q_48kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_HOA2_HRIR_coeff_Q_48kHz_fx; move16(); move16(); Loading Loading @@ -849,8 +849,8 @@ static ivas_error ivas_rend_initCrend_fx( move16(); move16(); #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_HOA2_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_HOA2_HRIR_inv_diffuse_weight_Q_32kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_HOA2_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_HOA2_HRIR_inv_diffuse_weight_Q_32kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_HOA2_HRIR_coeff_Q_32kHz_fx; move16(); move16(); Loading Loading @@ -897,8 +897,8 @@ static ivas_error ivas_rend_initCrend_fx( move16(); move16(); #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_HOA2_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_HOA2_HRIR_inv_diffuse_weight_Q_16kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_HOA2_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_HOA2_HRIR_inv_diffuse_weight_Q_16kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_HOA2_HRIR_coeff_Q_16kHz_fx; move16(); move16(); Loading Loading @@ -953,8 +953,8 @@ static ivas_error ivas_rend_initCrend_fx( move16(); move16(); #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_FOA_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_FOA_HRIR_inv_diffuse_weight_Q_48kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_FOA_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_FOA_HRIR_inv_diffuse_weight_Q_48kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_FOA_HRIR_coeff_Q_48kHz_fx; move16(); move16(); Loading Loading @@ -1000,8 +1000,8 @@ static ivas_error ivas_rend_initCrend_fx( move16(); move16(); #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_FOA_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_FOA_HRIR_inv_diffuse_weight_Q_32kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_FOA_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_FOA_HRIR_inv_diffuse_weight_Q_32kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_FOA_HRIR_coeff_Q_32kHz_fx; move16(); move16(); Loading Loading @@ -1047,8 +1047,8 @@ static ivas_error ivas_rend_initCrend_fx( move16(); move16(); #ifdef FIX_CREND_SIMPLIFY_CODE hHrtf->factor_Q_latency_s_fx = CRendBin_FOA_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = CRendBin_FOA_HRIR_inv_diffuse_weight_Q_16kHz_fx; hHrtf->factor_Q_latency_s_fx = Q31 - CRendBin_FOA_HRIR_Q_latency_s_fx; hHrtf->factor_Q_inv_diffuse_weight = Q15 - CRendBin_FOA_HRIR_inv_diffuse_weight_Q_16kHz_fx; hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_FOA_HRIR_coeff_Q_16kHz_fx; move16(); move16(); Loading Loading @@ -2057,7 +2057,7 @@ ivas_error ivas_rend_openCrend( hCrend->hReverb = NULL; } #ifdef FIX_CREND_SIMPLIFY_CODE ( *pCrend )->binaural_latency_ns = L_shr_r( Mpy_32_32_r( ( *pCrend )->hHrtfCrend->latency_s_fx, 1000000000 ), Q31 - ( *pCrend )->hHrtfCrend->factor_Q_latency_s_fx ); ( *pCrend )->binaural_latency_ns = L_shr_r( Mpy_32_32_r( ( *pCrend )->hHrtfCrend->latency_s_fx, 1000000000 ), ( *pCrend )->hHrtfCrend->factor_Q_latency_s_fx ); #else ( *pCrend )->binaural_latency_ns = Mult_32_32( ( *pCrend )->hHrtfCrend->latency_s_fx, (Word32) 1000000000 ); #endif Loading Loading @@ -2334,17 +2334,17 @@ static ivas_error ivas_rend_crendConvolver( { FOR( k = 0; k < pCrend->hHrtfCrend->index_frequency_max_diffuse; k++ ) { pFreq_buf2_re[k] = L_shl( pFreq_buf2_re[k], Q15 - pCrend->hHrtfCrend->factor_Q_inv_diffuse_weight ); pFreq_buf2_im[k] = L_shl( pFreq_buf2_im[k], Q15 - pCrend->hHrtfCrend->factor_Q_inv_diffuse_weight ); pFreq_buf2_re[k] = L_shl( pFreq_buf2_re[k], pCrend->hHrtfCrend->factor_Q_inv_diffuse_weight ); pFreq_buf2_im[k] = L_shl( pFreq_buf2_im[k], pCrend->hHrtfCrend->factor_Q_inv_diffuse_weight ); } IF( pCrend->hHrtfCrend->same_inv_diffuse_weight == 0 ) { FOR( k = 0; k < pCrend->hHrtfCrend->index_frequency_max_diffuse; k++ ) { pFreq_buf2_re[k] = L_shl( pFreq_buf2_re[k], Q15 - pCrend->hHrtfCrend->factor_Q_inv_diffuse_weight ); pFreq_buf2_im[k] = L_shl( pFreq_buf2_im[k], Q15 - pCrend->hHrtfCrend->factor_Q_inv_diffuse_weight ); pFreq_buf3_re[k] = L_shl( pFreq_buf3_re[k], Q15 - pCrend->hHrtfCrend->factor_Q_inv_diffuse_weight ); pFreq_buf3_im[k] = L_shl( pFreq_buf3_im[k], Q15 - pCrend->hHrtfCrend->factor_Q_inv_diffuse_weight ); pFreq_buf2_re[k] = L_shl( pFreq_buf2_re[k], pCrend->hHrtfCrend->factor_Q_inv_diffuse_weight ); pFreq_buf2_im[k] = L_shl( pFreq_buf2_im[k], pCrend->hHrtfCrend->factor_Q_inv_diffuse_weight ); pFreq_buf3_re[k] = L_shl( pFreq_buf3_re[k], pCrend->hHrtfCrend->factor_Q_inv_diffuse_weight ); pFreq_buf3_im[k] = L_shl( pFreq_buf3_im[k], pCrend->hHrtfCrend->factor_Q_inv_diffuse_weight ); } } } Loading
lib_rend/ivas_rom_binaural_crend_head.h +3 −3 Original line number Diff line number Diff line Loading @@ -50,7 +50,7 @@ extern Word32 sine_table_Q31 [361]; extern Word32 cosine_table_Q31 [181]; #ifdef USE_CREND_16BIT_ROM #ifdef FIX_CREND_SIMPLIFY_CODE /********************** CRendBin_Combined_HRIR **********************/ Loading Loading @@ -368,7 +368,7 @@ extern float defaultHRIR_right_avg_power_16kHz_fx[LR_IAC_LENGTH_NR_FC_16KHZ]; #endif #else /* USE_CREND_16BIT_ROM */ #else /* FIX_CREND_SIMPLIFY_CODE */ /********************** CRendBin_Combined_HRIR **********************/ Loading Loading @@ -620,5 +620,5 @@ extern float defaultHRIR_coherence_16kHz_fx[LR_IAC_LENGTH_NR_FC_16KHZ]; extern float defaultHRIR_left_avg_power_16kHz_fx[LR_IAC_LENGTH_NR_FC_16KHZ]; /*Q-23*/ extern float defaultHRIR_right_avg_power_16kHz_fx[LR_IAC_LENGTH_NR_FC_16KHZ]; /*Q-23*/ #endif /* USE_CREND_16BIT_ROM */ #endif /* FIX_CREND_SIMPLIFY_CODE */ #endif /* _IVAS_ROM_BINAURAL_CREND_HEAD_ */
lib_rend/ivas_rom_binaural_crend_head_fx.c +1 −1 Original line number Diff line number Diff line Loading @@ -45,7 +45,7 @@ #define WMC_TOOL_SKIP #ifdef USE_CREND_16BIT_ROM #ifdef FIX_CREND_SIMPLIFY_CODE /********************** CRendBin_Combined_HRIR **********************/
lib_util/hrtf_file_reader.c +2 −2 Original line number Diff line number Diff line Loading @@ -1643,7 +1643,7 @@ static ivas_error create_Crend_HRTF_from_rawdata( hrtf_data_rptr = hrtf_data; /* latency_s Q factor*/ ( *hHRTF )->factor_Q_latency_s_fx = *( (Word16 *) ( hrtf_data_rptr ) ); ( *hHRTF )->factor_Q_latency_s_fx = Q31 - *( (Word16 *) ( hrtf_data_rptr ) ); hrtf_data_rptr += sizeof( Word16 ); /* latency_s */ ( *hHRTF )->latency_s_fx = ( *( (Word32 *) ( hrtf_data_rptr ) ) ); Loading Loading @@ -1723,7 +1723,7 @@ static ivas_error create_Crend_HRTF_from_rawdata( hrtf_data_rptr += sizeof( uint16_t ); /* inv_diffuse_weight Q factor*/ ( *hHRTF )->factor_Q_inv_diffuse_weight = *( (Word16 *) ( hrtf_data_rptr ) ); ( *hHRTF )->factor_Q_inv_diffuse_weight = Q15 - *( (Word16 *) ( hrtf_data_rptr ) ); hrtf_data_rptr += sizeof( Word16 ); /* inv_diffuse_weight */ Loading