Commit 83269b66 authored by emerit's avatar emerit
Browse files

ready for push

parent 4bb2efbd
Loading
Loading
Loading
Loading
+300 −257
Original line number Diff line number Diff line
@@ -221,6 +221,8 @@ static ivas_error ivas_rend_initCrend(


#ifdef USE_SYMETRIC_HRIR_FILTERS
    if ( inConfigType == IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED )
    {
        if ( use_brir )
        {
            nb_ear = CRendBin_Combined_BRIR_Use_Symetric_Filters == 0 ? 2 : 1;
@@ -233,15 +235,20 @@ static ivas_error ivas_rend_initCrend(
        {
            for ( i = 0; i < hHrtf->max_num_ir - 1; i++ )
            {
            if ( i == 2 )
                if ( i < 2 )
                {
                    hHrtf->ch_sum_diff[i] = i == 0 ? 0 : 1;
                    hHrtf->ch_sum_diff_pair[i] = i == 0 ? 1 : 0;
                }
                else if ( i == 2 )
                {
                    hHrtf->ch_sum_diff[i] = 0;
                    hHrtf->ch_sum_diff_pair[i] = i;
                }
                else
                {
                hHrtf->ch_sum_diff[i] = i % 2 ? 1 : 0;
                hHrtf->ch_sum_diff_pair[i] = i % 2 ? i - 1 : i + 1;
                    hHrtf->ch_sum_diff[i] = i % 2 ? 0 : 1;
                    hHrtf->ch_sum_diff_pair[i] = i % 2 ? i + 1 : i - 1;
                }
            }
        }
@@ -253,6 +260,46 @@ static ivas_error ivas_rend_initCrend(
                hHrtf->ch_sum_diff_pair[i] = i;
            }
        }
    }
    else
    {
        nb_ear = CRendBin_HOA3_HRIR_Use_Symetric_Filters == 0 ? 2 : 1;
        if ( nb_ear == 1 )
        {
            curComp = 0;
            nbCompForCurrentOrder = 1;
            curOrder = 0;

            for ( i = 0; i < hHrtf->max_num_ir; i++ )
            {
                if ( curComp < curOrder )
                {
                    hHrtf->ch_sum_diff[i] = 1;
                }
                else
                {
                    hHrtf->ch_sum_diff[i] = 0;
                }

                curComp++;
                if ( curComp == nbCompForCurrentOrder )
                {
                    curOrder++;
                    curComp = 0;
                    nbCompForCurrentOrder = 2 * curOrder + 1;
                }
                hHrtf->ch_sum_diff_pair[i] = i;
            }
        }
        else
        {
            for ( i = 0; i < hHrtf->max_num_ir; i++ )
            {
                hHrtf->ch_sum_diff[i] = -1;
                hHrtf->ch_sum_diff_pair[i] = i;
            }
        }
    }
#endif

    if ( hSetOfHRTF == NULL )
@@ -512,52 +559,17 @@ static ivas_error ivas_rend_initCrend(
                }
#ifdef USE_SYMETRIC_HRIR_FILTERS
                if ( use_brir && ( nb_ear == 1 ) )
                {
                    if ( i != 2 )
                    {
                        hHrtf->inv_diffuse_weight[i] = hHrtf->inv_diffuse_weight[i] * 0.5f;
                    }
                }
#endif
            }
        }
        else if ( inConfigType == IVAS_REND_AUDIO_CONFIG_TYPE_AMBISONICS )
        {
#ifdef USE_SYMETRIC_HRIR_FILTERS
            nb_ear = CRendBin_HOA3_HRIR_Use_Symetric_Filters == 0 ? 2 : 1;
            if ( nb_ear == 1 )
            {
                curComp = 0;
                nbCompForCurrentOrder = 1;
                curOrder = 0;

                for ( i = 0; i < hHrtf->max_num_ir; i++ )
                {
                    if ( curComp < curOrder )
                    {
                        hHrtf->ch_sum_diff[i] = 1;
                    }
                    else
                    {
                        hHrtf->ch_sum_diff[i] = 0;
                    }

                    curComp++;
                    if ( curComp == nbCompForCurrentOrder )
                    {
                        curOrder++;
                        curComp = 0;
                        nbCompForCurrentOrder = 2 * curOrder + 1;
                    }
                    hHrtf->ch_sum_diff_pair[i] = i;
                }
            }
            else
            {
                for ( i = 0; i < hHrtf->max_num_ir; i++ )
                {
                    hHrtf->ch_sum_diff[i] = -1;
                    hHrtf->ch_sum_diff_pair[i] = i;
                }
            }
#endif
            if ( output_Fs == 48000 )
            {
                hHrtf->latency_s = CRendBin_HOA3_HRIR_latency_s;
@@ -774,51 +786,16 @@ static ivas_error ivas_rend_initCrend(
            }
#ifdef USE_SYMETRIC_HRIR_FILTERS
            if ( use_brir && ( nb_ear == 1 ) )
            {
                if ( i != 2 )
                {
                    hHrtf->inv_diffuse_weight[i] = hHrtf->inv_diffuse_weight[i] * 0.5f;
                }
            }
#endif
        }
        else if ( inConfigType == IVAS_REND_AUDIO_CONFIG_TYPE_AMBISONICS )
        {
#ifdef USE_SYMETRIC_HRIR_FILTERS
            nb_ear = CRendBin_HOA3_HRIR_Use_Symetric_Filters == 0 ? 2 : 1;
            if ( nb_ear == 1 )
            {
                curComp = 0;
                nbCompForCurrentOrder = 1;
                curOrder = 0;

                for ( i = 0; i < hHrtf->max_num_ir; i++ )
                {
                    if ( curComp < curOrder )
                    {
                        hHrtf->ch_sum_diff[i] = 1;
                    }
                    else
                    {
                        hHrtf->ch_sum_diff[i] = 0;
                    }

                    curComp++;
                    if ( curComp == nbCompForCurrentOrder )
                    {
                        curOrder++;
                        curComp = 0;
                        nbCompForCurrentOrder = 2 * curOrder + 1;
                    }
                    hHrtf->ch_sum_diff_pair[i] = i;
                }
            }
            else
            {
                for ( i = 0; i < hHrtf->max_num_ir; i++ )
                {
                    hHrtf->ch_sum_diff[i] = -1;
                    hHrtf->ch_sum_diff_pair[i] = i;
                }
            }
#endif

            hHrtf->latency_s = hSetOfHRTF->hHRTF_hrir_hoa3->latency_s;
            hHrtf->max_num_iterations = hSetOfHRTF->hHRTF_hrir_hoa3->max_num_iterations;
@@ -1150,6 +1127,7 @@ static ivas_error ivas_rend_crendConvolver(
    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;
@@ -1178,12 +1156,38 @@ 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++ )
            {
                if ( idx_in != lfe_idx_in )
                {
                    ppIn[i] = &pcm_in[idx_in][i_ts * subframe_length];
                    i++;
                }
            }
#endif

            nchan_in = nchan_in - 1;
        }
        else
        {
            assert( 0 && "Custom LS not supported in CRend" );
        }
    }
#ifdef USE_SYMETRIC_HRIR_FILTERS
    else
    {
        for ( idx_in = 0; idx_in < nchan_in; idx_in++ )
        {
            if ( idx_in != lfe_idx_in )
            {
                ppIn[idx_in] = &pcm_in[idx_in][i_ts * subframe_length];
            }
        }
    }
#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 ); */
@@ -1194,19 +1198,21 @@ 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];
#endif
        if ( idx_in != lfe_idx_in )
        {
#endif
#ifdef USE_SYMETRIC_HRIR_FILTERS
            pIn_s = &pcm_in[idx_in][i_ts * subframe_length];
            if ( ( pCrend->hHrtfCrend->ch_sum_diff[i] >= 0 ) && ( i != 2 ) )
            pIn_s = ppIn[idx_in];
            if ( ( pCrend->hHrtfCrend->ch_sum_diff[idx_in] >= 0 ) && ( idx_in != 2 ) )
            {
                pIn_d = &pcm_in[pCrend->hHrtfCrend->ch_sum_diff_pair[i]][i_ts * subframe_length];
                pIn_d = ppIn[pCrend->hHrtfCrend->ch_sum_diff_pair[idx_in]];
            }
            else
            {
@@ -1219,45 +1225,69 @@ static ivas_error ivas_rend_crendConvolver(
            {
                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];
                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++ )
                    {
                    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[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];
                    }
#ifdef USE_SYMETRIC_HRIR_FILTERS
                if ( pCrend->hHrtfCrend->ch_sum_diff[0] >= 0 )
                }
                else
                {
                    pFreq_filt_re = &pCrend->hCrend->freq_buffer_re[pCrend->hHrtfCrend->ch_sum_diff_pair[i]][offset];
                    pFreq_filt_im = &pCrend->hCrend->freq_buffer_im[pCrend->hHrtfCrend->ch_sum_diff_pair[i]][offset];

                    for ( k = 0; k < pCrend->hHrtfCrend->index_frequency_max_diffuse; k++ )
                    {
                        tmp_out_re[k] = pFreq_filt_re[k];
                        tmp_out_im[k] = pFreq_filt_im[k];
                    }
                    if ( ( pCrend->hHrtfCrend->ch_sum_diff[idx_in] >= 0 ) && ( idx_in != 2 ) )
                    {
                        pFreq_filt_re = &pCrend->hCrend->freq_buffer_re[pCrend->hHrtfCrend->ch_sum_diff_pair[idx_in]][offset];
                        pFreq_filt_im = &pCrend->hCrend->freq_buffer_im[pCrend->hHrtfCrend->ch_sum_diff_pair[idx_in]][offset];
                        if ( pCrend->hHrtfCrend->ch_sum_diff[idx_in] == 1 )
                        {
                            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_re[k];
                                pFreq_buf_im[k] = pFreq_filt_im[k] * pCrend->hHrtfCrend->inv_diffuse_weight[i] - pFreq_buf_im[k];
                                tmp_out_re[k] = pFreq_filt_re[k] - tmp_out_re[k];
                                tmp_out_im[k] = pFreq_filt_im[k] - tmp_out_im[k];
                            }
                        }
                        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[i];
                                pFreq_buf_im[k] += pFreq_filt_im[k] * pCrend->hHrtfCrend->inv_diffuse_weight[i];
                                tmp_out_re[k] += pFreq_filt_re[k];
                                tmp_out_im[k] += pFreq_filt_im[k];
                            }
                        }
                        for ( k = 0; k < pCrend->hHrtfCrend->index_frequency_max_diffuse; k++ )
                        {
                            pFreq_buf_re[k] += tmp_out_re[k] * pCrend->hHrtfCrend->inv_diffuse_weight[idx_in];
                            pFreq_buf_im[k] += tmp_out_im[k] * pCrend->hHrtfCrend->inv_diffuse_weight[idx_in];
                        }
                    }
                }
#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 ) )
@@ -1283,8 +1313,11 @@ static ivas_error ivas_rend_crendConvolver(
#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++ )
@@ -1298,25 +1331,27 @@ static ivas_error ivas_rend_crendConvolver(
        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
                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[i][idx_j]; m++ )
                    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[i][idx_j] + m + 1 );
                        offset_in = ( pCrend->hCrend->delay_line_rw_index + pCrend->hHrtfCrend->max_num_iterations - pCrend->hHrtfCrend->num_iterations[idx_in][idx_j] + m + 1 );
                        offset_in = offset_in % ( pCrend->hHrtfCrend->max_num_iterations );
                        offset_in = offset_in * subframe_length;
                        pFreq_buf_re = &pCrend->hCrend->freq_buffer_re[i][offset_in];
                        pFreq_buf_im = &pCrend->hCrend->freq_buffer_im[i][offset_in];
                        pFreq_filt_re = &pCrend->hHrtfCrend->pOut_to_bin_re[i][idx_j][offset];
                        pFreq_filt_im = &pCrend->hHrtfCrend->pOut_to_bin_im[i][idx_j][offset];
                        pFreq_buf_re = &pCrend->hCrend->freq_buffer_re[idx_in][offset_in];
                        pFreq_buf_im = &pCrend->hCrend->freq_buffer_im[idx_in][offset_in];
                        pFreq_filt_re = &pCrend->hHrtfCrend->pOut_to_bin_re[idx_in][idx_j][offset];
                        pFreq_filt_im = &pCrend->hHrtfCrend->pOut_to_bin_im[idx_in][idx_j][offset];

                        for ( k = 0; k < pCrend->hHrtfCrend->pIndex_frequency_max[i][idx_j][m]; k++ )
                        for ( k = 0; k < pCrend->hHrtfCrend->pIndex_frequency_max[idx_in][idx_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];
@@ -1347,9 +1382,10 @@ static ivas_error ivas_rend_crendConvolver(
#endif
#ifdef USE_SYMETRIC_HRIR_FILTERS
                }
#endif
#else
            i++;
        }
#endif
            }

            offset = 0;
@@ -1374,10 +1410,17 @@ 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
            }
        }

+4974 −2358

File changed.

Preview size limit exceeded, changes collapsed.

+24 −24
Original line number Diff line number Diff line
@@ -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][1];
extern uint16_t CRendBin_Combined_BRIR_num_iterations_diffuse_48kHz[1];
extern uint16_t CRendBin_Combined_BRIR_pIndex_frequency_max_48kHz[15][1][22];
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_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[1][40];
extern float CRendBin_Combined_BRIR_coeff_re_48kHz[15][1][2984];
extern float CRendBin_Combined_BRIR_coeff_im_48kHz[15][1][2984];
extern float CRendBin_Combined_BRIR_coeff_diffuse_re_48kHz[1][2885];
extern float CRendBin_Combined_BRIR_coeff_diffuse_im_48kHz[1][2885];
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];

/* Sample Rate = 32000 */

extern int16_t CRendBin_Combined_BRIR_max_num_iterations_32kHz;
extern uint16_t CRendBin_Combined_BRIR_num_iterations_32kHz[15][1];
extern uint16_t CRendBin_Combined_BRIR_num_iterations_diffuse_32kHz[1];
extern uint16_t CRendBin_Combined_BRIR_pIndex_frequency_max_32kHz[15][1][22];
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_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[1][40];
extern float CRendBin_Combined_BRIR_coeff_re_32kHz[15][1][2845];
extern float CRendBin_Combined_BRIR_coeff_im_32kHz[15][1][2845];
extern float CRendBin_Combined_BRIR_coeff_diffuse_re_32kHz[1][2870];
extern float CRendBin_Combined_BRIR_coeff_diffuse_im_32kHz[1][2870];
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];

/* Sample Rate = 16000 */

extern int16_t CRendBin_Combined_BRIR_max_num_iterations_16kHz;
extern uint16_t CRendBin_Combined_BRIR_num_iterations_16kHz[15][1];
extern uint16_t CRendBin_Combined_BRIR_num_iterations_diffuse_16kHz[1];
extern uint16_t CRendBin_Combined_BRIR_pIndex_frequency_max_16kHz[15][1][23];
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_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[1][40];
extern float CRendBin_Combined_BRIR_coeff_re_16kHz[15][1][1777];
extern float CRendBin_Combined_BRIR_coeff_im_16kHz[15][1][1777];
extern float CRendBin_Combined_BRIR_coeff_diffuse_re_16kHz[1][2522];
extern float CRendBin_Combined_BRIR_coeff_diffuse_im_16kHz[1][2522];
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];
#endif /* _IVAS_ROM_BINAURAL_CREND_HEAD_ */
+33 −0
Original line number Diff line number Diff line
@@ -929,6 +929,39 @@ ivas_error ivas_crend_binaural_filter_design_set_hrtf_fr(
            }
        }

        /*       for ( i_chan = 0; i_chan < pParam->max_num_ir; ++i_chan )
               {
                   int pair;
                   if ( i_chan < 2 )
                   {
                       pair = i_chan == 0 ? 1 : 0;
                   }
                   else if ( i_chan == 2 )
                   {
                       pair = 2;
                   }
                   else
                   {
                       pair = i_chan % 2 ? i_chan + 1 : i_chan - 1;
                   }
                   for ( i_ear = 0; i_ear < nb_ear; ++i_ear )
                   {
                       ind_ear = nb_ear == 2 ? i_ear : sym_hrir;

                       for ( i_block = 0; i_block < pParam->num_iterations[i_chan][0]; ++i_block )
                       {
                           if ( pParam->pIndex_frequency_max[i_chan][i_ear][i_block] > pParam->pIndex_frequency_max[pair][i_ear][i_block] )
                           {
                               pParam->pIndex_frequency_max[pair][i_ear][i_block] = pParam->pIndex_frequency_max[i_chan][i_ear][i_block];
                           }
                           else
                           {
                               pParam->pIndex_frequency_max[i_chan][i_ear][i_block] = pParam->pIndex_frequency_max[pair][i_ear][i_block];
                           }
                       }
                   }
               }
       */
        /* for ( i_chan = 0; i_chan < pParam->max_num_ir; ++i_chan )
         {
            for ( i_block = pParam->num_iterations[i_chan][0] - 1; i_block > 0; --i_block )