Loading lib_com/ivas_rom_com.c +1 −0 Original line number Diff line number Diff line Loading @@ -2779,6 +2779,7 @@ const float McMASA_LFEGain_vectors[64] = -2.14f, 0.26f, 0.84f, 1.02f }; /*----------------------------------------------------------------------------------* * ISM ROM tables *----------------------------------------------------------------------------------*/ Loading lib_rend/ivas_crend.c +338 −264 Original line number Diff line number Diff line Loading @@ -1104,7 +1104,7 @@ void ivas_rend_closeCrend( return; } #ifdef USE_SYMETRIC_HRIR_FILTERS /*-----------------------------------------------------------------------------------------* * Function ivas_crend_convolver() * Loading @@ -1125,13 +1125,9 @@ static ivas_error ivas_rend_crendConvolver( int16_t lfe_idx_in; int16_t offset, offset_in, offset_diffuse; int16_t nchan_in, nchan_out; #ifdef USE_SYMETRIC_HRIR_FILTERS float *pIn_s, *pIn_d; float *ppIn[MAX_INTERN_CHANNELS]; int16_t idx_j; #else float *pIn; #endif float *pFreq_buf_re, *pFreq_buf_im; float *pFreq_filt_re, *pFreq_filt_im; float pOut[L_FRAME48k * 2]; Loading @@ -1156,7 +1152,6 @@ static ivas_error ivas_rend_crendConvolver( if ( inConfig != IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) { lfe_idx_in = LFE_CHANNEL; #ifdef USE_SYMETRIC_HRIR_FILTERS i = 0; for ( idx_in = 0; idx_in < nchan_in; idx_in++ ) { Loading @@ -1166,8 +1161,6 @@ static ivas_error ivas_rend_crendConvolver( i++; } } #endif nchan_in = nchan_in - 1; } else Loading @@ -1175,7 +1168,6 @@ static ivas_error ivas_rend_crendConvolver( assert( 0 && "Custom LS not supported in CRend" ); } } #ifdef USE_SYMETRIC_HRIR_FILTERS else { for ( idx_in = 0; idx_in < nchan_in; idx_in++ ) Loading @@ -1186,8 +1178,6 @@ static ivas_error ivas_rend_crendConvolver( } } } #endif offset = pCrend->hCrend->delay_line_rw_index * subframe_length; /* subframe_length * ( pCrend->hHrtfCrend->max_num_iterations - 1 ); */ offset_diffuse = pCrend->hCrend->diffuse_delay_line_rw_index * subframe_length; /* subframe_length *( pCrend->hHrtfCrend->num_iterations_diffuse[0] - 1 ); */ Loading @@ -1198,17 +1188,8 @@ static ivas_error ivas_rend_crendConvolver( set_zero( &pCrend->hCrend->freq_buffer_im_diffuse[offset_diffuse], subframe_length ); } #ifndef USE_SYMETRIC_HRIR_FILTERS i = 0; #endif for ( idx_in = 0; idx_in < nchan_in; idx_in++ ) { #ifndef USE_SYMETRIC_HRIR_FILTERS pIn = &pcm_in[idx_in][i_ts * subframe_length]; if ( idx_in != lfe_idx_in ) { #endif #ifdef USE_SYMETRIC_HRIR_FILTERS pIn_s = ppIn[idx_in]; if ( ( pCrend->hHrtfCrend->ch_sum_diff[idx_in] >= 0 ) && ( idx_in != 2 ) ) { Loading @@ -1218,9 +1199,6 @@ static ivas_error ivas_rend_crendConvolver( { pIn_d = NULL; } #else pIn = &pcm_in[idx_in][i_ts * subframe_length]; #endif if ( pCrend->hHrtfCrend->num_iterations_diffuse[0] > 0 ) { pFreq_buf_re = &pCrend->hCrend->freq_buffer_re_diffuse[offset_diffuse]; Loading @@ -1228,7 +1206,6 @@ static ivas_error ivas_rend_crendConvolver( pFreq_filt_re = &pCrend->hCrend->freq_buffer_re[idx_in][offset]; pFreq_filt_im = &pCrend->hCrend->freq_buffer_im[idx_in][offset]; #ifdef USE_SYMETRIC_HRIR_FILTERS if ( pCrend->hHrtfCrend->ch_sum_diff[idx_in] < 0 ) { for ( k = 0; k < pCrend->hHrtfCrend->index_frequency_max_diffuse; k++ ) Loading Loading @@ -1271,25 +1248,11 @@ static ivas_error ivas_rend_crendConvolver( } } } #else for ( k = 0; k < pCrend->hHrtfCrend->index_frequency_max_diffuse; k++ ) { pFreq_buf_re[k] += pFreq_filt_re[k] * pCrend->hHrtfCrend->inv_diffuse_weight[idx_in]; pFreq_buf_im[k] += pFreq_filt_im[k] * pCrend->hHrtfCrend->inv_diffuse_weight[idx_in]; } #endif } #ifdef USE_SYMETRIC_HRIR_FILTERS pFreq_buf_re = &pCrend->hCrend->freq_buffer_re[idx_in][offset]; pFreq_buf_im = &pCrend->hCrend->freq_buffer_im[idx_in][offset]; #else pFreq_buf_re = &pCrend->hCrend->freq_buffer_re[i][offset]; pFreq_buf_im = &pCrend->hCrend->freq_buffer_im[i][offset]; #endif #ifdef USE_SYMETRIC_HRIR_FILTERS if ( ( pCrend->hHrtfCrend->ch_sum_diff[idx_in] == 0 ) && ( pIn_d != NULL ) ) { for ( k = 0; k < subframe_length; k++ ) Loading @@ -1310,37 +1273,19 @@ static ivas_error ivas_rend_crendConvolver( { ivas_mdft( pIn_s, pFreq_buf_re, pFreq_buf_im, subframe_length, subframe_length ); } #else ivas_mdft( pIn, pFreq_buf_re, pFreq_buf_im, subframe_length, subframe_length ); #endif #ifndef USE_SYMETRIC_HRIR_FILTERS i++; } #endif } for ( j = 0; j < nchan_out; j++ ) { set_zero( tmp_out_re, subframe_length ); set_zero( tmp_out_im, subframe_length ); #ifdef USE_SYMETRIC_HRIR_FILTERS idx_j = pCrend->hHrtfCrend->ch_sum_diff[0] < 0 ? j : 0; #endif i = 0; for ( idx_in = 0; idx_in < nchan_in; idx_in++ ) { #ifndef USE_SYMETRIC_HRIR_FILTERS if ( idx_in != lfe_idx_in ) { #endif #ifdef USE_SYMETRIC_HRIR_FILTERS offset = 0; if ( ( pCrend->hHrtfCrend->ch_sum_diff[idx_in] < 0 ) || ( j == pCrend->hHrtfCrend->ch_sum_diff[idx_in] ) ) { #endif offset = 0; #ifdef USE_SYMETRIC_HRIR_FILTERS for ( m = 0; m < pCrend->hHrtfCrend->num_iterations[idx_in][idx_j]; m++ ) { offset_in = ( pCrend->hCrend->delay_line_rw_index + pCrend->hHrtfCrend->max_num_iterations - pCrend->hHrtfCrend->num_iterations[idx_in][idx_j] + m + 1 ); Loading @@ -1359,7 +1304,163 @@ static ivas_error ivas_rend_crendConvolver( offset = offset + k; } } } offset = 0; for ( m = 0; m < pCrend->hHrtfCrend->num_iterations_diffuse[j]; m++ ) { offset_diffuse = ( pCrend->hCrend->diffuse_delay_line_rw_index + m + 1 ); offset_diffuse = offset_diffuse % pCrend->hHrtfCrend->num_iterations_diffuse[0]; offset_diffuse = offset_diffuse * subframe_length; pFreq_buf_re = &pCrend->hCrend->freq_buffer_re_diffuse[offset_diffuse]; pFreq_buf_im = &pCrend->hCrend->freq_buffer_im_diffuse[offset_diffuse]; pFreq_filt_re = &pCrend->hHrtfCrend->pOut_to_bin_diffuse_re[j][offset]; pFreq_filt_im = &pCrend->hHrtfCrend->pOut_to_bin_diffuse_im[j][offset]; for ( k = 0; k < pCrend->hHrtfCrend->pIndex_frequency_max_diffuse[j][m]; k++ ) { tmp_out_re[k] += pFreq_buf_re[k] * pFreq_filt_re[k] - pFreq_buf_im[k] * pFreq_filt_im[k]; tmp_out_im[k] += pFreq_buf_re[k] * pFreq_filt_im[k] + pFreq_buf_im[k] * pFreq_filt_re[k]; } offset = offset + k; } ivas_imdft( tmp_out_re, tmp_out_im, pOut, subframe_length ); pFreq_buf_re = &pcm_out[j][i_ts * subframe_length]; pFreq_buf_im = &pOut[subframe_length]; for ( k = 0; k < subframe_length; k++ ) { pFreq_buf_re[k] = pOut[k] + pCrend->hCrend->prev_out_buffer[j][k]; pCrend->hCrend->prev_out_buffer[j][k] = pFreq_buf_im[k]; } } if ( pCrend->hHrtfCrend->ch_sum_diff[0] >= 0 ) { pFreq_buf_re = &pcm_out[0][i_ts * subframe_length]; pFreq_buf_im = &pcm_out[1][i_ts * subframe_length]; for ( k = 0; k < subframe_length; k++ ) { tmp_out_re[0] = pFreq_buf_re[k]; pFreq_buf_re[k] = ( pFreq_buf_re[k] + pFreq_buf_im[k] ); pFreq_buf_im[k] = ( tmp_out_re[0] - pFreq_buf_im[k] ); } } pCrend->hCrend->delay_line_rw_index++; pCrend->hCrend->delay_line_rw_index = pCrend->hCrend->delay_line_rw_index % ( pCrend->hHrtfCrend->max_num_iterations ); if ( pCrend->hHrtfCrend->num_iterations_diffuse[0] > 0 ) { pCrend->hCrend->diffuse_delay_line_rw_index++; pCrend->hCrend->diffuse_delay_line_rw_index = pCrend->hCrend->diffuse_delay_line_rw_index % ( pCrend->hHrtfCrend->num_iterations_diffuse[0] ); } return IVAS_ERR_OK; } #else /*-----------------------------------------------------------------------------------------* * Function ivas_crend_convolver() * * Convolver block *-----------------------------------------------------------------------------------------*/ static ivas_error ivas_rend_crendConvolver( const CREND_WRAPPER *pCrend, IVAS_REND_AudioConfig inConfig, IVAS_REND_AudioConfig outConfig, float pcm_in[][L_FRAME48k], float pcm_out[][L_FRAME48k], const int32_t output_Fs, const int16_t i_ts ) { int16_t i, j, k, m; int16_t subframe_length, idx_in; int16_t lfe_idx_in; int16_t offset, offset_in, offset_diffuse; int16_t nchan_in, nchan_out; float *pIn; float *pFreq_buf_re, *pFreq_buf_im; float *pFreq_filt_re, *pFreq_filt_im; float pOut[L_FRAME48k * 2]; float tmp_out_re[L_FRAME48k], tmp_out_im[L_FRAME48k]; ivas_error error; if ( ( error = getAudioConfigNumChannels( inConfig, &nchan_in ) ) != IVAS_ERR_OK ) { return error; } if ( ( error = getAudioConfigNumChannels( outConfig, &nchan_out ) ) != IVAS_ERR_OK ) { return error; } subframe_length = (int16_t) ( output_Fs / FRAMES_PER_SEC ) / MAX_PARAM_SPATIAL_SUBFRAMES; lfe_idx_in = -1; if ( getAudioConfigType( inConfig ) == IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED ) { if ( inConfig != IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) { lfe_idx_in = LFE_CHANNEL; } else { assert( 0 && "Custom LS not supported in CRend" ); } } offset = pCrend->hCrend->delay_line_rw_index * subframe_length; /* subframe_length * ( pCrend->hHrtfCrend->max_num_iterations - 1 ); */ offset_diffuse = pCrend->hCrend->diffuse_delay_line_rw_index * subframe_length; /* subframe_length *( pCrend->hHrtfCrend->num_iterations_diffuse[0] - 1 ); */ if ( pCrend->hHrtfCrend->num_iterations_diffuse[0] > 0 ) { set_zero( &pCrend->hCrend->freq_buffer_re_diffuse[offset_diffuse], subframe_length ); set_zero( &pCrend->hCrend->freq_buffer_im_diffuse[offset_diffuse], subframe_length ); } i = 0; for ( idx_in = 0; idx_in < nchan_in; idx_in++ ) { pIn = &pcm_in[idx_in][i_ts * subframe_length]; if ( idx_in != lfe_idx_in ) { if ( pCrend->hHrtfCrend->num_iterations_diffuse[0] > 0 ) { pFreq_buf_re = &pCrend->hCrend->freq_buffer_re_diffuse[offset_diffuse]; pFreq_buf_im = &pCrend->hCrend->freq_buffer_im_diffuse[offset_diffuse]; pFreq_filt_re = &pCrend->hCrend->freq_buffer_re[i][offset]; pFreq_filt_im = &pCrend->hCrend->freq_buffer_im[i][offset]; for ( k = 0; k < pCrend->hHrtfCrend->index_frequency_max_diffuse; k++ ) { pFreq_buf_re[k] += pFreq_filt_re[k] * pCrend->hHrtfCrend->inv_diffuse_weight[i]; pFreq_buf_im[k] += pFreq_filt_im[k] * pCrend->hHrtfCrend->inv_diffuse_weight[i]; } } pFreq_buf_re = &pCrend->hCrend->freq_buffer_re[i][offset]; pFreq_buf_im = &pCrend->hCrend->freq_buffer_im[i][offset]; ivas_mdft( pIn, pFreq_buf_re, pFreq_buf_im, subframe_length, subframe_length ); i++; } } for ( j = 0; j < nchan_out; j++ ) { set_zero( tmp_out_re, subframe_length ); set_zero( tmp_out_im, subframe_length ); i = 0; for ( idx_in = 0; idx_in < nchan_in; idx_in++ ) { if ( idx_in != lfe_idx_in ) { offset = 0; for ( m = 0; m < pCrend->hHrtfCrend->num_iterations[i][j]; m++ ) { offset_in = ( pCrend->hCrend->delay_line_rw_index + pCrend->hHrtfCrend->max_num_iterations - pCrend->hHrtfCrend->num_iterations[i][j] + m + 1 ); Loading @@ -1375,17 +1476,10 @@ static ivas_error ivas_rend_crendConvolver( tmp_out_re[k] += pFreq_buf_re[k] * pFreq_filt_re[k] - pFreq_buf_im[k] * pFreq_filt_im[k]; tmp_out_im[k] += pFreq_buf_re[k] * pFreq_filt_im[k] + pFreq_buf_im[k] * pFreq_filt_re[k]; } offset = offset + k; } #endif #ifdef USE_SYMETRIC_HRIR_FILTERS } #else i++; } #endif } offset = 0; Loading @@ -1410,33 +1504,13 @@ static ivas_error ivas_rend_crendConvolver( ivas_imdft( tmp_out_re, tmp_out_im, pOut, subframe_length ); pFreq_buf_re = &pcm_out[j][i_ts * subframe_length]; #ifdef USE_SYMETRIC_HRIR_FILTERS pFreq_buf_im = &pOut[subframe_length]; #endif for ( k = 0; k < subframe_length; k++ ) { pFreq_buf_re[k] = pOut[k] + pCrend->hCrend->prev_out_buffer[j][k]; #ifdef USE_SYMETRIC_HRIR_FILTERS pCrend->hCrend->prev_out_buffer[j][k] = pFreq_buf_im[k]; #else pCrend->hCrend->prev_out_buffer[j][k] = pOut[k + subframe_length]; #endif } } #ifdef USE_SYMETRIC_HRIR_FILTERS if ( pCrend->hHrtfCrend->ch_sum_diff[0] >= 0 ) { pFreq_buf_re = &pcm_out[0][i_ts * subframe_length]; pFreq_buf_im = &pcm_out[1][i_ts * subframe_length]; for ( k = 0; k < subframe_length; k++ ) { tmp_out_re[0] = pFreq_buf_re[k]; pFreq_buf_re[k] = ( pFreq_buf_re[k] + pFreq_buf_im[k] ); pFreq_buf_im[k] = ( tmp_out_re[0] - pFreq_buf_im[k] ); } } #endif pCrend->hCrend->delay_line_rw_index++; pCrend->hCrend->delay_line_rw_index = pCrend->hCrend->delay_line_rw_index % ( pCrend->hHrtfCrend->max_num_iterations ); if ( pCrend->hHrtfCrend->num_iterations_diffuse[0] > 0 ) Loading @@ -1447,7 +1521,7 @@ static ivas_error ivas_rend_crendConvolver( return IVAS_ERR_OK; } #endif /*-----------------------------------------------------------------------------------------* * Function ivas_rend_crend_Process() Loading lib_rend/ivas_rom_binaural_crend_head.c +24 −24 File changed.Preview size limit exceeded, changes collapsed. Show changes lib_rend/ivas_rom_binaural_crend_head.h +30 −30 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ extern uint16_t CRendBin_Combined_HRIR_num_iterations_diffuse_48kHz[1]; extern uint16_t CRendBin_Combined_HRIR_pIndex_frequency_max_48kHz[15][1][1]; extern uint16_t CRendBin_Combined_HRIR_index_frequency_max_diffuse_48kHz; extern float CRendBin_Combined_HRIR_inv_diffuse_weight_48kHz[15]; extern uint16_t *CRendBin_Combined_HRIR_pIndex_frequency_max_diffuse_48kHz[1]; extern uint16_t *CRendBin_Combined_HRIR_pIndex_frequency_max_diffuse_48kHz[BINAURAL_CHANNELS]; extern float CRendBin_Combined_HRIR_coeff_re_48kHz[15][1][240]; extern float CRendBin_Combined_HRIR_coeff_im_48kHz[15][1][240]; extern float *CRendBin_Combined_HRIR_coeff_diffuse_re_48kHz[1]; Loading @@ -77,7 +77,7 @@ extern uint16_t CRendBin_Combined_HRIR_num_iterations_diffuse_32kHz[1]; extern uint16_t CRendBin_Combined_HRIR_pIndex_frequency_max_32kHz[15][1][1]; extern uint16_t CRendBin_Combined_HRIR_index_frequency_max_diffuse_32kHz; extern float CRendBin_Combined_HRIR_inv_diffuse_weight_32kHz[15]; extern uint16_t *CRendBin_Combined_HRIR_pIndex_frequency_max_diffuse_32kHz[1]; extern uint16_t *CRendBin_Combined_HRIR_pIndex_frequency_max_diffuse_32kHz[BINAURAL_CHANNELS]; extern float CRendBin_Combined_HRIR_coeff_re_32kHz[15][1][160]; extern float CRendBin_Combined_HRIR_coeff_im_32kHz[15][1][160]; extern float *CRendBin_Combined_HRIR_coeff_diffuse_re_32kHz[1]; Loading @@ -91,7 +91,7 @@ extern uint16_t CRendBin_Combined_HRIR_num_iterations_diffuse_16kHz[1]; extern uint16_t CRendBin_Combined_HRIR_pIndex_frequency_max_16kHz[15][1][1]; extern uint16_t CRendBin_Combined_HRIR_index_frequency_max_diffuse_16kHz; extern float CRendBin_Combined_HRIR_inv_diffuse_weight_16kHz[15]; extern uint16_t *CRendBin_Combined_HRIR_pIndex_frequency_max_diffuse_16kHz[1]; extern uint16_t *CRendBin_Combined_HRIR_pIndex_frequency_max_diffuse_16kHz[BINAURAL_CHANNELS]; extern float CRendBin_Combined_HRIR_coeff_re_16kHz[15][1][80]; extern float CRendBin_Combined_HRIR_coeff_im_16kHz[15][1][80]; extern float *CRendBin_Combined_HRIR_coeff_diffuse_re_16kHz[1]; Loading @@ -110,7 +110,7 @@ extern uint16_t CRendBin_HOA3_HRIR_num_iterations_diffuse_48kHz[1]; extern uint16_t CRendBin_HOA3_HRIR_pIndex_frequency_max_48kHz[16][1][2]; extern uint16_t CRendBin_HOA3_HRIR_index_frequency_max_diffuse_48kHz; extern float CRendBin_HOA3_HRIR_inv_diffuse_weight_48kHz[16]; extern uint16_t *CRendBin_HOA3_HRIR_pIndex_frequency_max_diffuse_48kHz[1]; extern uint16_t *CRendBin_HOA3_HRIR_pIndex_frequency_max_diffuse_48kHz[BINAURAL_CHANNELS]; extern float CRendBin_HOA3_HRIR_coeff_re_48kHz[16][1][480]; extern float CRendBin_HOA3_HRIR_coeff_im_48kHz[16][1][480]; extern float *CRendBin_HOA3_HRIR_coeff_diffuse_re_48kHz[1]; Loading @@ -124,7 +124,7 @@ extern uint16_t CRendBin_HOA3_HRIR_num_iterations_diffuse_32kHz[1]; extern uint16_t CRendBin_HOA3_HRIR_pIndex_frequency_max_32kHz[16][1][2]; extern uint16_t CRendBin_HOA3_HRIR_index_frequency_max_diffuse_32kHz; extern float CRendBin_HOA3_HRIR_inv_diffuse_weight_32kHz[16]; extern uint16_t *CRendBin_HOA3_HRIR_pIndex_frequency_max_diffuse_32kHz[1]; extern uint16_t *CRendBin_HOA3_HRIR_pIndex_frequency_max_diffuse_32kHz[BINAURAL_CHANNELS]; extern float CRendBin_HOA3_HRIR_coeff_re_32kHz[16][1][320]; extern float CRendBin_HOA3_HRIR_coeff_im_32kHz[16][1][320]; extern float *CRendBin_HOA3_HRIR_coeff_diffuse_re_32kHz[1]; Loading @@ -138,7 +138,7 @@ extern uint16_t CRendBin_HOA3_HRIR_num_iterations_diffuse_16kHz[1]; extern uint16_t CRendBin_HOA3_HRIR_pIndex_frequency_max_16kHz[16][1][2]; extern uint16_t CRendBin_HOA3_HRIR_index_frequency_max_diffuse_16kHz; extern float CRendBin_HOA3_HRIR_inv_diffuse_weight_16kHz[16]; extern uint16_t *CRendBin_HOA3_HRIR_pIndex_frequency_max_diffuse_16kHz[1]; extern uint16_t *CRendBin_HOA3_HRIR_pIndex_frequency_max_diffuse_16kHz[BINAURAL_CHANNELS]; extern float CRendBin_HOA3_HRIR_coeff_re_16kHz[16][1][160]; extern float CRendBin_HOA3_HRIR_coeff_im_16kHz[16][1][160]; extern float *CRendBin_HOA3_HRIR_coeff_diffuse_re_16kHz[1]; Loading @@ -152,42 +152,42 @@ extern float CRendBin_Combined_BRIR_latency_s; /* Sample Rate = 48000 */ extern int16_t CRendBin_Combined_BRIR_max_num_iterations_48kHz; extern uint16_t CRendBin_Combined_BRIR_num_iterations_48kHz[15][2]; extern uint16_t CRendBin_Combined_BRIR_num_iterations_diffuse_48kHz[2]; extern uint16_t CRendBin_Combined_BRIR_pIndex_frequency_max_48kHz[15][2][22]; extern uint16_t CRendBin_Combined_BRIR_num_iterations_48kHz[15][BINAURAL_CHANNELS]; extern uint16_t CRendBin_Combined_BRIR_num_iterations_diffuse_48kHz[BINAURAL_CHANNELS]; extern uint16_t CRendBin_Combined_BRIR_pIndex_frequency_max_48kHz[15][BINAURAL_CHANNELS][22]; extern uint16_t CRendBin_Combined_BRIR_index_frequency_max_diffuse_48kHz; extern float CRendBin_Combined_BRIR_inv_diffuse_weight_48kHz[15]; extern uint16_t CRendBin_Combined_BRIR_pIndex_frequency_max_diffuse_48kHz[2][40]; extern float CRendBin_Combined_BRIR_coeff_re_48kHz[15][2][2955]; extern float CRendBin_Combined_BRIR_coeff_im_48kHz[15][2][2955]; extern float CRendBin_Combined_BRIR_coeff_diffuse_re_48kHz[2][2885]; extern float CRendBin_Combined_BRIR_coeff_diffuse_im_48kHz[2][2885]; extern uint16_t CRendBin_Combined_BRIR_pIndex_frequency_max_diffuse_48kHz[BINAURAL_CHANNELS][40]; extern float CRendBin_Combined_BRIR_coeff_re_48kHz[15][BINAURAL_CHANNELS][2955]; extern float CRendBin_Combined_BRIR_coeff_im_48kHz[15][BINAURAL_CHANNELS][2955]; extern float CRendBin_Combined_BRIR_coeff_diffuse_re_48kHz[BINAURAL_CHANNELS][2885]; extern float CRendBin_Combined_BRIR_coeff_diffuse_im_48kHz[BINAURAL_CHANNELS][2885]; /* Sample Rate = 32000 */ extern int16_t CRendBin_Combined_BRIR_max_num_iterations_32kHz; extern uint16_t CRendBin_Combined_BRIR_num_iterations_32kHz[15][2]; extern uint16_t CRendBin_Combined_BRIR_num_iterations_diffuse_32kHz[2]; extern uint16_t CRendBin_Combined_BRIR_pIndex_frequency_max_32kHz[15][2][22]; extern uint16_t CRendBin_Combined_BRIR_num_iterations_32kHz[15][BINAURAL_CHANNELS]; extern uint16_t CRendBin_Combined_BRIR_num_iterations_diffuse_32kHz[BINAURAL_CHANNELS]; extern uint16_t CRendBin_Combined_BRIR_pIndex_frequency_max_32kHz[15][BINAURAL_CHANNELS][22]; extern uint16_t CRendBin_Combined_BRIR_index_frequency_max_diffuse_32kHz; extern float CRendBin_Combined_BRIR_inv_diffuse_weight_32kHz[15]; extern uint16_t CRendBin_Combined_BRIR_pIndex_frequency_max_diffuse_32kHz[2][40]; extern float CRendBin_Combined_BRIR_coeff_re_32kHz[15][2][2819]; extern float CRendBin_Combined_BRIR_coeff_im_32kHz[15][2][2819]; extern float CRendBin_Combined_BRIR_coeff_diffuse_re_32kHz[2][2870]; extern float CRendBin_Combined_BRIR_coeff_diffuse_im_32kHz[2][2870]; extern uint16_t CRendBin_Combined_BRIR_pIndex_frequency_max_diffuse_32kHz[BINAURAL_CHANNELS][40]; extern float CRendBin_Combined_BRIR_coeff_re_32kHz[15][BINAURAL_CHANNELS][2819]; extern float CRendBin_Combined_BRIR_coeff_im_32kHz[15][BINAURAL_CHANNELS][2819]; extern float CRendBin_Combined_BRIR_coeff_diffuse_re_32kHz[BINAURAL_CHANNELS][2870]; extern float CRendBin_Combined_BRIR_coeff_diffuse_im_32kHz[BINAURAL_CHANNELS][2870]; /* Sample Rate = 16000 */ extern int16_t CRendBin_Combined_BRIR_max_num_iterations_16kHz; extern uint16_t CRendBin_Combined_BRIR_num_iterations_16kHz[15][2]; extern uint16_t CRendBin_Combined_BRIR_num_iterations_diffuse_16kHz[2]; extern uint16_t CRendBin_Combined_BRIR_pIndex_frequency_max_16kHz[15][2][23]; extern uint16_t CRendBin_Combined_BRIR_num_iterations_16kHz[15][BINAURAL_CHANNELS]; extern uint16_t CRendBin_Combined_BRIR_num_iterations_diffuse_16kHz[BINAURAL_CHANNELS]; extern uint16_t CRendBin_Combined_BRIR_pIndex_frequency_max_16kHz[15][BINAURAL_CHANNELS][23]; extern uint16_t CRendBin_Combined_BRIR_index_frequency_max_diffuse_16kHz; extern float CRendBin_Combined_BRIR_inv_diffuse_weight_16kHz[15]; extern uint16_t CRendBin_Combined_BRIR_pIndex_frequency_max_diffuse_16kHz[2][40]; extern float CRendBin_Combined_BRIR_coeff_re_16kHz[15][2][1774]; extern float CRendBin_Combined_BRIR_coeff_im_16kHz[15][2][1774]; extern float CRendBin_Combined_BRIR_coeff_diffuse_re_16kHz[2][2522]; extern float CRendBin_Combined_BRIR_coeff_diffuse_im_16kHz[2][2522]; extern uint16_t CRendBin_Combined_BRIR_pIndex_frequency_max_diffuse_16kHz[BINAURAL_CHANNELS][40]; extern float CRendBin_Combined_BRIR_coeff_re_16kHz[15][BINAURAL_CHANNELS][1774]; extern float CRendBin_Combined_BRIR_coeff_im_16kHz[15][BINAURAL_CHANNELS][1774]; extern float CRendBin_Combined_BRIR_coeff_diffuse_re_16kHz[BINAURAL_CHANNELS][2522]; extern float CRendBin_Combined_BRIR_coeff_diffuse_im_16kHz[BINAURAL_CHANNELS][2522]; #endif /* _IVAS_ROM_BINAURAL_CREND_HEAD_ */ Loading
lib_com/ivas_rom_com.c +1 −0 Original line number Diff line number Diff line Loading @@ -2779,6 +2779,7 @@ const float McMASA_LFEGain_vectors[64] = -2.14f, 0.26f, 0.84f, 1.02f }; /*----------------------------------------------------------------------------------* * ISM ROM tables *----------------------------------------------------------------------------------*/ Loading
lib_rend/ivas_crend.c +338 −264 Original line number Diff line number Diff line Loading @@ -1104,7 +1104,7 @@ void ivas_rend_closeCrend( return; } #ifdef USE_SYMETRIC_HRIR_FILTERS /*-----------------------------------------------------------------------------------------* * Function ivas_crend_convolver() * Loading @@ -1125,13 +1125,9 @@ static ivas_error ivas_rend_crendConvolver( int16_t lfe_idx_in; int16_t offset, offset_in, offset_diffuse; int16_t nchan_in, nchan_out; #ifdef USE_SYMETRIC_HRIR_FILTERS float *pIn_s, *pIn_d; float *ppIn[MAX_INTERN_CHANNELS]; int16_t idx_j; #else float *pIn; #endif float *pFreq_buf_re, *pFreq_buf_im; float *pFreq_filt_re, *pFreq_filt_im; float pOut[L_FRAME48k * 2]; Loading @@ -1156,7 +1152,6 @@ static ivas_error ivas_rend_crendConvolver( if ( inConfig != IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) { lfe_idx_in = LFE_CHANNEL; #ifdef USE_SYMETRIC_HRIR_FILTERS i = 0; for ( idx_in = 0; idx_in < nchan_in; idx_in++ ) { Loading @@ -1166,8 +1161,6 @@ static ivas_error ivas_rend_crendConvolver( i++; } } #endif nchan_in = nchan_in - 1; } else Loading @@ -1175,7 +1168,6 @@ static ivas_error ivas_rend_crendConvolver( assert( 0 && "Custom LS not supported in CRend" ); } } #ifdef USE_SYMETRIC_HRIR_FILTERS else { for ( idx_in = 0; idx_in < nchan_in; idx_in++ ) Loading @@ -1186,8 +1178,6 @@ static ivas_error ivas_rend_crendConvolver( } } } #endif offset = pCrend->hCrend->delay_line_rw_index * subframe_length; /* subframe_length * ( pCrend->hHrtfCrend->max_num_iterations - 1 ); */ offset_diffuse = pCrend->hCrend->diffuse_delay_line_rw_index * subframe_length; /* subframe_length *( pCrend->hHrtfCrend->num_iterations_diffuse[0] - 1 ); */ Loading @@ -1198,17 +1188,8 @@ static ivas_error ivas_rend_crendConvolver( set_zero( &pCrend->hCrend->freq_buffer_im_diffuse[offset_diffuse], subframe_length ); } #ifndef USE_SYMETRIC_HRIR_FILTERS i = 0; #endif for ( idx_in = 0; idx_in < nchan_in; idx_in++ ) { #ifndef USE_SYMETRIC_HRIR_FILTERS pIn = &pcm_in[idx_in][i_ts * subframe_length]; if ( idx_in != lfe_idx_in ) { #endif #ifdef USE_SYMETRIC_HRIR_FILTERS pIn_s = ppIn[idx_in]; if ( ( pCrend->hHrtfCrend->ch_sum_diff[idx_in] >= 0 ) && ( idx_in != 2 ) ) { Loading @@ -1218,9 +1199,6 @@ static ivas_error ivas_rend_crendConvolver( { pIn_d = NULL; } #else pIn = &pcm_in[idx_in][i_ts * subframe_length]; #endif if ( pCrend->hHrtfCrend->num_iterations_diffuse[0] > 0 ) { pFreq_buf_re = &pCrend->hCrend->freq_buffer_re_diffuse[offset_diffuse]; Loading @@ -1228,7 +1206,6 @@ static ivas_error ivas_rend_crendConvolver( pFreq_filt_re = &pCrend->hCrend->freq_buffer_re[idx_in][offset]; pFreq_filt_im = &pCrend->hCrend->freq_buffer_im[idx_in][offset]; #ifdef USE_SYMETRIC_HRIR_FILTERS if ( pCrend->hHrtfCrend->ch_sum_diff[idx_in] < 0 ) { for ( k = 0; k < pCrend->hHrtfCrend->index_frequency_max_diffuse; k++ ) Loading Loading @@ -1271,25 +1248,11 @@ static ivas_error ivas_rend_crendConvolver( } } } #else for ( k = 0; k < pCrend->hHrtfCrend->index_frequency_max_diffuse; k++ ) { pFreq_buf_re[k] += pFreq_filt_re[k] * pCrend->hHrtfCrend->inv_diffuse_weight[idx_in]; pFreq_buf_im[k] += pFreq_filt_im[k] * pCrend->hHrtfCrend->inv_diffuse_weight[idx_in]; } #endif } #ifdef USE_SYMETRIC_HRIR_FILTERS pFreq_buf_re = &pCrend->hCrend->freq_buffer_re[idx_in][offset]; pFreq_buf_im = &pCrend->hCrend->freq_buffer_im[idx_in][offset]; #else pFreq_buf_re = &pCrend->hCrend->freq_buffer_re[i][offset]; pFreq_buf_im = &pCrend->hCrend->freq_buffer_im[i][offset]; #endif #ifdef USE_SYMETRIC_HRIR_FILTERS if ( ( pCrend->hHrtfCrend->ch_sum_diff[idx_in] == 0 ) && ( pIn_d != NULL ) ) { for ( k = 0; k < subframe_length; k++ ) Loading @@ -1310,37 +1273,19 @@ static ivas_error ivas_rend_crendConvolver( { ivas_mdft( pIn_s, pFreq_buf_re, pFreq_buf_im, subframe_length, subframe_length ); } #else ivas_mdft( pIn, pFreq_buf_re, pFreq_buf_im, subframe_length, subframe_length ); #endif #ifndef USE_SYMETRIC_HRIR_FILTERS i++; } #endif } for ( j = 0; j < nchan_out; j++ ) { set_zero( tmp_out_re, subframe_length ); set_zero( tmp_out_im, subframe_length ); #ifdef USE_SYMETRIC_HRIR_FILTERS idx_j = pCrend->hHrtfCrend->ch_sum_diff[0] < 0 ? j : 0; #endif i = 0; for ( idx_in = 0; idx_in < nchan_in; idx_in++ ) { #ifndef USE_SYMETRIC_HRIR_FILTERS if ( idx_in != lfe_idx_in ) { #endif #ifdef USE_SYMETRIC_HRIR_FILTERS offset = 0; if ( ( pCrend->hHrtfCrend->ch_sum_diff[idx_in] < 0 ) || ( j == pCrend->hHrtfCrend->ch_sum_diff[idx_in] ) ) { #endif offset = 0; #ifdef USE_SYMETRIC_HRIR_FILTERS for ( m = 0; m < pCrend->hHrtfCrend->num_iterations[idx_in][idx_j]; m++ ) { offset_in = ( pCrend->hCrend->delay_line_rw_index + pCrend->hHrtfCrend->max_num_iterations - pCrend->hHrtfCrend->num_iterations[idx_in][idx_j] + m + 1 ); Loading @@ -1359,7 +1304,163 @@ static ivas_error ivas_rend_crendConvolver( offset = offset + k; } } } offset = 0; for ( m = 0; m < pCrend->hHrtfCrend->num_iterations_diffuse[j]; m++ ) { offset_diffuse = ( pCrend->hCrend->diffuse_delay_line_rw_index + m + 1 ); offset_diffuse = offset_diffuse % pCrend->hHrtfCrend->num_iterations_diffuse[0]; offset_diffuse = offset_diffuse * subframe_length; pFreq_buf_re = &pCrend->hCrend->freq_buffer_re_diffuse[offset_diffuse]; pFreq_buf_im = &pCrend->hCrend->freq_buffer_im_diffuse[offset_diffuse]; pFreq_filt_re = &pCrend->hHrtfCrend->pOut_to_bin_diffuse_re[j][offset]; pFreq_filt_im = &pCrend->hHrtfCrend->pOut_to_bin_diffuse_im[j][offset]; for ( k = 0; k < pCrend->hHrtfCrend->pIndex_frequency_max_diffuse[j][m]; k++ ) { tmp_out_re[k] += pFreq_buf_re[k] * pFreq_filt_re[k] - pFreq_buf_im[k] * pFreq_filt_im[k]; tmp_out_im[k] += pFreq_buf_re[k] * pFreq_filt_im[k] + pFreq_buf_im[k] * pFreq_filt_re[k]; } offset = offset + k; } ivas_imdft( tmp_out_re, tmp_out_im, pOut, subframe_length ); pFreq_buf_re = &pcm_out[j][i_ts * subframe_length]; pFreq_buf_im = &pOut[subframe_length]; for ( k = 0; k < subframe_length; k++ ) { pFreq_buf_re[k] = pOut[k] + pCrend->hCrend->prev_out_buffer[j][k]; pCrend->hCrend->prev_out_buffer[j][k] = pFreq_buf_im[k]; } } if ( pCrend->hHrtfCrend->ch_sum_diff[0] >= 0 ) { pFreq_buf_re = &pcm_out[0][i_ts * subframe_length]; pFreq_buf_im = &pcm_out[1][i_ts * subframe_length]; for ( k = 0; k < subframe_length; k++ ) { tmp_out_re[0] = pFreq_buf_re[k]; pFreq_buf_re[k] = ( pFreq_buf_re[k] + pFreq_buf_im[k] ); pFreq_buf_im[k] = ( tmp_out_re[0] - pFreq_buf_im[k] ); } } pCrend->hCrend->delay_line_rw_index++; pCrend->hCrend->delay_line_rw_index = pCrend->hCrend->delay_line_rw_index % ( pCrend->hHrtfCrend->max_num_iterations ); if ( pCrend->hHrtfCrend->num_iterations_diffuse[0] > 0 ) { pCrend->hCrend->diffuse_delay_line_rw_index++; pCrend->hCrend->diffuse_delay_line_rw_index = pCrend->hCrend->diffuse_delay_line_rw_index % ( pCrend->hHrtfCrend->num_iterations_diffuse[0] ); } return IVAS_ERR_OK; } #else /*-----------------------------------------------------------------------------------------* * Function ivas_crend_convolver() * * Convolver block *-----------------------------------------------------------------------------------------*/ static ivas_error ivas_rend_crendConvolver( const CREND_WRAPPER *pCrend, IVAS_REND_AudioConfig inConfig, IVAS_REND_AudioConfig outConfig, float pcm_in[][L_FRAME48k], float pcm_out[][L_FRAME48k], const int32_t output_Fs, const int16_t i_ts ) { int16_t i, j, k, m; int16_t subframe_length, idx_in; int16_t lfe_idx_in; int16_t offset, offset_in, offset_diffuse; int16_t nchan_in, nchan_out; float *pIn; float *pFreq_buf_re, *pFreq_buf_im; float *pFreq_filt_re, *pFreq_filt_im; float pOut[L_FRAME48k * 2]; float tmp_out_re[L_FRAME48k], tmp_out_im[L_FRAME48k]; ivas_error error; if ( ( error = getAudioConfigNumChannels( inConfig, &nchan_in ) ) != IVAS_ERR_OK ) { return error; } if ( ( error = getAudioConfigNumChannels( outConfig, &nchan_out ) ) != IVAS_ERR_OK ) { return error; } subframe_length = (int16_t) ( output_Fs / FRAMES_PER_SEC ) / MAX_PARAM_SPATIAL_SUBFRAMES; lfe_idx_in = -1; if ( getAudioConfigType( inConfig ) == IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED ) { if ( inConfig != IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) { lfe_idx_in = LFE_CHANNEL; } else { assert( 0 && "Custom LS not supported in CRend" ); } } offset = pCrend->hCrend->delay_line_rw_index * subframe_length; /* subframe_length * ( pCrend->hHrtfCrend->max_num_iterations - 1 ); */ offset_diffuse = pCrend->hCrend->diffuse_delay_line_rw_index * subframe_length; /* subframe_length *( pCrend->hHrtfCrend->num_iterations_diffuse[0] - 1 ); */ if ( pCrend->hHrtfCrend->num_iterations_diffuse[0] > 0 ) { set_zero( &pCrend->hCrend->freq_buffer_re_diffuse[offset_diffuse], subframe_length ); set_zero( &pCrend->hCrend->freq_buffer_im_diffuse[offset_diffuse], subframe_length ); } i = 0; for ( idx_in = 0; idx_in < nchan_in; idx_in++ ) { pIn = &pcm_in[idx_in][i_ts * subframe_length]; if ( idx_in != lfe_idx_in ) { if ( pCrend->hHrtfCrend->num_iterations_diffuse[0] > 0 ) { pFreq_buf_re = &pCrend->hCrend->freq_buffer_re_diffuse[offset_diffuse]; pFreq_buf_im = &pCrend->hCrend->freq_buffer_im_diffuse[offset_diffuse]; pFreq_filt_re = &pCrend->hCrend->freq_buffer_re[i][offset]; pFreq_filt_im = &pCrend->hCrend->freq_buffer_im[i][offset]; for ( k = 0; k < pCrend->hHrtfCrend->index_frequency_max_diffuse; k++ ) { pFreq_buf_re[k] += pFreq_filt_re[k] * pCrend->hHrtfCrend->inv_diffuse_weight[i]; pFreq_buf_im[k] += pFreq_filt_im[k] * pCrend->hHrtfCrend->inv_diffuse_weight[i]; } } pFreq_buf_re = &pCrend->hCrend->freq_buffer_re[i][offset]; pFreq_buf_im = &pCrend->hCrend->freq_buffer_im[i][offset]; ivas_mdft( pIn, pFreq_buf_re, pFreq_buf_im, subframe_length, subframe_length ); i++; } } for ( j = 0; j < nchan_out; j++ ) { set_zero( tmp_out_re, subframe_length ); set_zero( tmp_out_im, subframe_length ); i = 0; for ( idx_in = 0; idx_in < nchan_in; idx_in++ ) { if ( idx_in != lfe_idx_in ) { offset = 0; for ( m = 0; m < pCrend->hHrtfCrend->num_iterations[i][j]; m++ ) { offset_in = ( pCrend->hCrend->delay_line_rw_index + pCrend->hHrtfCrend->max_num_iterations - pCrend->hHrtfCrend->num_iterations[i][j] + m + 1 ); Loading @@ -1375,17 +1476,10 @@ static ivas_error ivas_rend_crendConvolver( tmp_out_re[k] += pFreq_buf_re[k] * pFreq_filt_re[k] - pFreq_buf_im[k] * pFreq_filt_im[k]; tmp_out_im[k] += pFreq_buf_re[k] * pFreq_filt_im[k] + pFreq_buf_im[k] * pFreq_filt_re[k]; } offset = offset + k; } #endif #ifdef USE_SYMETRIC_HRIR_FILTERS } #else i++; } #endif } offset = 0; Loading @@ -1410,33 +1504,13 @@ static ivas_error ivas_rend_crendConvolver( ivas_imdft( tmp_out_re, tmp_out_im, pOut, subframe_length ); pFreq_buf_re = &pcm_out[j][i_ts * subframe_length]; #ifdef USE_SYMETRIC_HRIR_FILTERS pFreq_buf_im = &pOut[subframe_length]; #endif for ( k = 0; k < subframe_length; k++ ) { pFreq_buf_re[k] = pOut[k] + pCrend->hCrend->prev_out_buffer[j][k]; #ifdef USE_SYMETRIC_HRIR_FILTERS pCrend->hCrend->prev_out_buffer[j][k] = pFreq_buf_im[k]; #else pCrend->hCrend->prev_out_buffer[j][k] = pOut[k + subframe_length]; #endif } } #ifdef USE_SYMETRIC_HRIR_FILTERS if ( pCrend->hHrtfCrend->ch_sum_diff[0] >= 0 ) { pFreq_buf_re = &pcm_out[0][i_ts * subframe_length]; pFreq_buf_im = &pcm_out[1][i_ts * subframe_length]; for ( k = 0; k < subframe_length; k++ ) { tmp_out_re[0] = pFreq_buf_re[k]; pFreq_buf_re[k] = ( pFreq_buf_re[k] + pFreq_buf_im[k] ); pFreq_buf_im[k] = ( tmp_out_re[0] - pFreq_buf_im[k] ); } } #endif pCrend->hCrend->delay_line_rw_index++; pCrend->hCrend->delay_line_rw_index = pCrend->hCrend->delay_line_rw_index % ( pCrend->hHrtfCrend->max_num_iterations ); if ( pCrend->hHrtfCrend->num_iterations_diffuse[0] > 0 ) Loading @@ -1447,7 +1521,7 @@ static ivas_error ivas_rend_crendConvolver( return IVAS_ERR_OK; } #endif /*-----------------------------------------------------------------------------------------* * Function ivas_rend_crend_Process() Loading
lib_rend/ivas_rom_binaural_crend_head.c +24 −24 File changed.Preview size limit exceeded, changes collapsed. Show changes
lib_rend/ivas_rom_binaural_crend_head.h +30 −30 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ extern uint16_t CRendBin_Combined_HRIR_num_iterations_diffuse_48kHz[1]; extern uint16_t CRendBin_Combined_HRIR_pIndex_frequency_max_48kHz[15][1][1]; extern uint16_t CRendBin_Combined_HRIR_index_frequency_max_diffuse_48kHz; extern float CRendBin_Combined_HRIR_inv_diffuse_weight_48kHz[15]; extern uint16_t *CRendBin_Combined_HRIR_pIndex_frequency_max_diffuse_48kHz[1]; extern uint16_t *CRendBin_Combined_HRIR_pIndex_frequency_max_diffuse_48kHz[BINAURAL_CHANNELS]; extern float CRendBin_Combined_HRIR_coeff_re_48kHz[15][1][240]; extern float CRendBin_Combined_HRIR_coeff_im_48kHz[15][1][240]; extern float *CRendBin_Combined_HRIR_coeff_diffuse_re_48kHz[1]; Loading @@ -77,7 +77,7 @@ extern uint16_t CRendBin_Combined_HRIR_num_iterations_diffuse_32kHz[1]; extern uint16_t CRendBin_Combined_HRIR_pIndex_frequency_max_32kHz[15][1][1]; extern uint16_t CRendBin_Combined_HRIR_index_frequency_max_diffuse_32kHz; extern float CRendBin_Combined_HRIR_inv_diffuse_weight_32kHz[15]; extern uint16_t *CRendBin_Combined_HRIR_pIndex_frequency_max_diffuse_32kHz[1]; extern uint16_t *CRendBin_Combined_HRIR_pIndex_frequency_max_diffuse_32kHz[BINAURAL_CHANNELS]; extern float CRendBin_Combined_HRIR_coeff_re_32kHz[15][1][160]; extern float CRendBin_Combined_HRIR_coeff_im_32kHz[15][1][160]; extern float *CRendBin_Combined_HRIR_coeff_diffuse_re_32kHz[1]; Loading @@ -91,7 +91,7 @@ extern uint16_t CRendBin_Combined_HRIR_num_iterations_diffuse_16kHz[1]; extern uint16_t CRendBin_Combined_HRIR_pIndex_frequency_max_16kHz[15][1][1]; extern uint16_t CRendBin_Combined_HRIR_index_frequency_max_diffuse_16kHz; extern float CRendBin_Combined_HRIR_inv_diffuse_weight_16kHz[15]; extern uint16_t *CRendBin_Combined_HRIR_pIndex_frequency_max_diffuse_16kHz[1]; extern uint16_t *CRendBin_Combined_HRIR_pIndex_frequency_max_diffuse_16kHz[BINAURAL_CHANNELS]; extern float CRendBin_Combined_HRIR_coeff_re_16kHz[15][1][80]; extern float CRendBin_Combined_HRIR_coeff_im_16kHz[15][1][80]; extern float *CRendBin_Combined_HRIR_coeff_diffuse_re_16kHz[1]; Loading @@ -110,7 +110,7 @@ extern uint16_t CRendBin_HOA3_HRIR_num_iterations_diffuse_48kHz[1]; extern uint16_t CRendBin_HOA3_HRIR_pIndex_frequency_max_48kHz[16][1][2]; extern uint16_t CRendBin_HOA3_HRIR_index_frequency_max_diffuse_48kHz; extern float CRendBin_HOA3_HRIR_inv_diffuse_weight_48kHz[16]; extern uint16_t *CRendBin_HOA3_HRIR_pIndex_frequency_max_diffuse_48kHz[1]; extern uint16_t *CRendBin_HOA3_HRIR_pIndex_frequency_max_diffuse_48kHz[BINAURAL_CHANNELS]; extern float CRendBin_HOA3_HRIR_coeff_re_48kHz[16][1][480]; extern float CRendBin_HOA3_HRIR_coeff_im_48kHz[16][1][480]; extern float *CRendBin_HOA3_HRIR_coeff_diffuse_re_48kHz[1]; Loading @@ -124,7 +124,7 @@ extern uint16_t CRendBin_HOA3_HRIR_num_iterations_diffuse_32kHz[1]; extern uint16_t CRendBin_HOA3_HRIR_pIndex_frequency_max_32kHz[16][1][2]; extern uint16_t CRendBin_HOA3_HRIR_index_frequency_max_diffuse_32kHz; extern float CRendBin_HOA3_HRIR_inv_diffuse_weight_32kHz[16]; extern uint16_t *CRendBin_HOA3_HRIR_pIndex_frequency_max_diffuse_32kHz[1]; extern uint16_t *CRendBin_HOA3_HRIR_pIndex_frequency_max_diffuse_32kHz[BINAURAL_CHANNELS]; extern float CRendBin_HOA3_HRIR_coeff_re_32kHz[16][1][320]; extern float CRendBin_HOA3_HRIR_coeff_im_32kHz[16][1][320]; extern float *CRendBin_HOA3_HRIR_coeff_diffuse_re_32kHz[1]; Loading @@ -138,7 +138,7 @@ extern uint16_t CRendBin_HOA3_HRIR_num_iterations_diffuse_16kHz[1]; extern uint16_t CRendBin_HOA3_HRIR_pIndex_frequency_max_16kHz[16][1][2]; extern uint16_t CRendBin_HOA3_HRIR_index_frequency_max_diffuse_16kHz; extern float CRendBin_HOA3_HRIR_inv_diffuse_weight_16kHz[16]; extern uint16_t *CRendBin_HOA3_HRIR_pIndex_frequency_max_diffuse_16kHz[1]; extern uint16_t *CRendBin_HOA3_HRIR_pIndex_frequency_max_diffuse_16kHz[BINAURAL_CHANNELS]; extern float CRendBin_HOA3_HRIR_coeff_re_16kHz[16][1][160]; extern float CRendBin_HOA3_HRIR_coeff_im_16kHz[16][1][160]; extern float *CRendBin_HOA3_HRIR_coeff_diffuse_re_16kHz[1]; Loading @@ -152,42 +152,42 @@ extern float CRendBin_Combined_BRIR_latency_s; /* Sample Rate = 48000 */ extern int16_t CRendBin_Combined_BRIR_max_num_iterations_48kHz; extern uint16_t CRendBin_Combined_BRIR_num_iterations_48kHz[15][2]; extern uint16_t CRendBin_Combined_BRIR_num_iterations_diffuse_48kHz[2]; extern uint16_t CRendBin_Combined_BRIR_pIndex_frequency_max_48kHz[15][2][22]; extern uint16_t CRendBin_Combined_BRIR_num_iterations_48kHz[15][BINAURAL_CHANNELS]; extern uint16_t CRendBin_Combined_BRIR_num_iterations_diffuse_48kHz[BINAURAL_CHANNELS]; extern uint16_t CRendBin_Combined_BRIR_pIndex_frequency_max_48kHz[15][BINAURAL_CHANNELS][22]; extern uint16_t CRendBin_Combined_BRIR_index_frequency_max_diffuse_48kHz; extern float CRendBin_Combined_BRIR_inv_diffuse_weight_48kHz[15]; extern uint16_t CRendBin_Combined_BRIR_pIndex_frequency_max_diffuse_48kHz[2][40]; extern float CRendBin_Combined_BRIR_coeff_re_48kHz[15][2][2955]; extern float CRendBin_Combined_BRIR_coeff_im_48kHz[15][2][2955]; extern float CRendBin_Combined_BRIR_coeff_diffuse_re_48kHz[2][2885]; extern float CRendBin_Combined_BRIR_coeff_diffuse_im_48kHz[2][2885]; extern uint16_t CRendBin_Combined_BRIR_pIndex_frequency_max_diffuse_48kHz[BINAURAL_CHANNELS][40]; extern float CRendBin_Combined_BRIR_coeff_re_48kHz[15][BINAURAL_CHANNELS][2955]; extern float CRendBin_Combined_BRIR_coeff_im_48kHz[15][BINAURAL_CHANNELS][2955]; extern float CRendBin_Combined_BRIR_coeff_diffuse_re_48kHz[BINAURAL_CHANNELS][2885]; extern float CRendBin_Combined_BRIR_coeff_diffuse_im_48kHz[BINAURAL_CHANNELS][2885]; /* Sample Rate = 32000 */ extern int16_t CRendBin_Combined_BRIR_max_num_iterations_32kHz; extern uint16_t CRendBin_Combined_BRIR_num_iterations_32kHz[15][2]; extern uint16_t CRendBin_Combined_BRIR_num_iterations_diffuse_32kHz[2]; extern uint16_t CRendBin_Combined_BRIR_pIndex_frequency_max_32kHz[15][2][22]; extern uint16_t CRendBin_Combined_BRIR_num_iterations_32kHz[15][BINAURAL_CHANNELS]; extern uint16_t CRendBin_Combined_BRIR_num_iterations_diffuse_32kHz[BINAURAL_CHANNELS]; extern uint16_t CRendBin_Combined_BRIR_pIndex_frequency_max_32kHz[15][BINAURAL_CHANNELS][22]; extern uint16_t CRendBin_Combined_BRIR_index_frequency_max_diffuse_32kHz; extern float CRendBin_Combined_BRIR_inv_diffuse_weight_32kHz[15]; extern uint16_t CRendBin_Combined_BRIR_pIndex_frequency_max_diffuse_32kHz[2][40]; extern float CRendBin_Combined_BRIR_coeff_re_32kHz[15][2][2819]; extern float CRendBin_Combined_BRIR_coeff_im_32kHz[15][2][2819]; extern float CRendBin_Combined_BRIR_coeff_diffuse_re_32kHz[2][2870]; extern float CRendBin_Combined_BRIR_coeff_diffuse_im_32kHz[2][2870]; extern uint16_t CRendBin_Combined_BRIR_pIndex_frequency_max_diffuse_32kHz[BINAURAL_CHANNELS][40]; extern float CRendBin_Combined_BRIR_coeff_re_32kHz[15][BINAURAL_CHANNELS][2819]; extern float CRendBin_Combined_BRIR_coeff_im_32kHz[15][BINAURAL_CHANNELS][2819]; extern float CRendBin_Combined_BRIR_coeff_diffuse_re_32kHz[BINAURAL_CHANNELS][2870]; extern float CRendBin_Combined_BRIR_coeff_diffuse_im_32kHz[BINAURAL_CHANNELS][2870]; /* Sample Rate = 16000 */ extern int16_t CRendBin_Combined_BRIR_max_num_iterations_16kHz; extern uint16_t CRendBin_Combined_BRIR_num_iterations_16kHz[15][2]; extern uint16_t CRendBin_Combined_BRIR_num_iterations_diffuse_16kHz[2]; extern uint16_t CRendBin_Combined_BRIR_pIndex_frequency_max_16kHz[15][2][23]; extern uint16_t CRendBin_Combined_BRIR_num_iterations_16kHz[15][BINAURAL_CHANNELS]; extern uint16_t CRendBin_Combined_BRIR_num_iterations_diffuse_16kHz[BINAURAL_CHANNELS]; extern uint16_t CRendBin_Combined_BRIR_pIndex_frequency_max_16kHz[15][BINAURAL_CHANNELS][23]; extern uint16_t CRendBin_Combined_BRIR_index_frequency_max_diffuse_16kHz; extern float CRendBin_Combined_BRIR_inv_diffuse_weight_16kHz[15]; extern uint16_t CRendBin_Combined_BRIR_pIndex_frequency_max_diffuse_16kHz[2][40]; extern float CRendBin_Combined_BRIR_coeff_re_16kHz[15][2][1774]; extern float CRendBin_Combined_BRIR_coeff_im_16kHz[15][2][1774]; extern float CRendBin_Combined_BRIR_coeff_diffuse_re_16kHz[2][2522]; extern float CRendBin_Combined_BRIR_coeff_diffuse_im_16kHz[2][2522]; extern uint16_t CRendBin_Combined_BRIR_pIndex_frequency_max_diffuse_16kHz[BINAURAL_CHANNELS][40]; extern float CRendBin_Combined_BRIR_coeff_re_16kHz[15][BINAURAL_CHANNELS][1774]; extern float CRendBin_Combined_BRIR_coeff_im_16kHz[15][BINAURAL_CHANNELS][1774]; extern float CRendBin_Combined_BRIR_coeff_diffuse_re_16kHz[BINAURAL_CHANNELS][2522]; extern float CRendBin_Combined_BRIR_coeff_diffuse_im_16kHz[BINAURAL_CHANNELS][2522]; #endif /* _IVAS_ROM_BINAURAL_CREND_HEAD_ */