Commit 4ba26372 authored by TYAGIRIS's avatar TYAGIRIS
Browse files

few split rendering fixes in CLDFB domain

parent 2d5a15a3
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1553,7 +1553,7 @@ int main(
        }

        /* Convert from int to float and from interleaved to packed */
        convertInputBuffer( inpInt16Buffer, numSamplesRead, frameSize_smpls, num_in_channels, inFloatBuffer
        convertInputBuffer( inpInt16Buffer, numSamplesRead, inBuffer.config.numSamplesPerChannel, num_in_channels, inFloatBuffer
#ifdef SPLIT_REND_WITH_HEAD_ROT
                            ,
                            inBuffer.config.is_cldfb, cldfbAna
+10 −19
Original line number Diff line number Diff line
@@ -2129,12 +2129,15 @@ void ivas_rend_CldfbMultiBinRendProcess(
    float Cldfb_In_Imag[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX],
    float Cldfb_Out_Real[MAX_HEAD_ROT_POSES * BINAURAL_CHANNELS][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], /* o  : Binaural signals */
    float Cldfb_Out_Imag[MAX_HEAD_ROT_POSES * BINAURAL_CHANNELS][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX],
    const int16_t low_res_pre_rend_rot )
    const int16_t low_res_pre_rend_rot
#ifdef API_5MS
    ,
    int16_t num_subframes
#endif
)
{
    int16_t slot_idx, ch_idx, idx, pose_idx, i, j;
#ifndef API_5MS
    int16_t sf_idx;
#endif
    float Cldfb_RealBuffer_sfIn[MAX_INPUT_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX];
    float Cldfb_ImagBuffer_sfIn[MAX_INPUT_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX];
#ifdef SPLIT_REND_WITH_HEAD_ROT_DEBUG
@@ -2146,17 +2149,11 @@ void ivas_rend_CldfbMultiBinRendProcess(
    float Cldfb_ImagBuffer_Binaural[MAX_HEAD_ROT_POSES][BINAURAL_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX];
#endif

#ifndef API_5MS
    for ( sf_idx = 0; sf_idx < MAX_PARAM_SPATIAL_SUBFRAMES; sf_idx++ )
    for ( sf_idx = 0; sf_idx < num_subframes; sf_idx++ )
    {
#endif
        for ( slot_idx = 0; slot_idx < MAX_PARAM_SPATIAL_SUBFRAMES; slot_idx++ )
        {
#ifdef API_5MS
            idx = slot_idx;
#else
            idx = sf_idx * MAX_PARAM_SPATIAL_SUBFRAMES + slot_idx;
#endif
            for ( ch_idx = 0; ch_idx < hCldfbRend->nInChannels; ch_idx++ )
            {
                mvr2r( &Cldfb_In_Real[ch_idx][idx][0], &Cldfb_RealBuffer_sfIn[ch_idx][slot_idx][0], hCldfbRend->max_band );
@@ -2207,11 +2204,7 @@ void ivas_rend_CldfbMultiBinRendProcess(
        {
            for ( slot_idx = 0; slot_idx < MAX_PARAM_SPATIAL_SUBFRAMES; slot_idx++ )
            {
#ifdef API_5MS
                idx = slot_idx;
#else
                idx = sf_idx * MAX_PARAM_SPATIAL_SUBFRAMES + slot_idx;
#endif
                for ( ch_idx = 0; ch_idx < BINAURAL_CHANNELS; ch_idx++ )
                {
                    mvr2r( &Cldfb_RealBuffer_Binaural[pose_idx][ch_idx][slot_idx][0], &Cldfb_Out_Real[( pose_idx * BINAURAL_CHANNELS ) + ch_idx][idx][0], hCldfbRend->max_band );
@@ -2219,9 +2212,7 @@ void ivas_rend_CldfbMultiBinRendProcess(
                }
            }
        }
#ifndef API_5MS
    }
#endif

    return;
}
+6 −1
Original line number Diff line number Diff line
@@ -893,7 +893,12 @@ void ivas_rend_CldfbMultiBinRendProcess(
    float Cldfb_In_Imag[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX],
    float Cldfb_Out_Real[MAX_HEAD_ROT_POSES*BINAURAL_CHANNELS][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], /* o  : Binaural signals */
    float Cldfb_Out_Imag[MAX_HEAD_ROT_POSES*BINAURAL_CHANNELS][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX],
    const int16_t low_res_pre_rend_rot );
    const int16_t low_res_pre_rend_rot 
#ifdef API_5MS
    ,
    int16_t num_subframes
#endif
);

ivas_error ivas_rend_openCldfb(
    HANDLE_CLDFB_FILTER_BANK cldfbAna[MAX_INPUT_CHANNELS],
+24 −4
Original line number Diff line number Diff line
@@ -8199,7 +8199,12 @@ static ivas_error renderSbaToMultiBinaural(
static ivas_error renderSbaToMultiBinauralCldfb( input_sba *sbaInput,
                                                 float Cldfb_Out_Real[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX],
                                                 float Cldfb_Out_Imag[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX],
                                                 const int16_t low_res_pre_rend_rot )
                                                 const int16_t low_res_pre_rend_rot
#ifdef API_5MS
                                                 ,
                                                 int16_t num_subframes
#endif
)
{
    float Cldfb_RealBuffer[MAX_OUTPUT_CHANNELS][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX];
    float Cldfb_ImagBuffer[MAX_OUTPUT_CHANNELS][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX];
@@ -8214,7 +8219,12 @@ static ivas_error renderSbaToMultiBinauralCldfb( input_sba *sbaInput,
        Cldfb_ImagBuffer,
        Cldfb_Out_Real,
        Cldfb_Out_Imag,
        low_res_pre_rend_rot );
        low_res_pre_rend_rot
#ifdef API_5MS
        ,
        num_subframes
#endif
    );
    return IVAS_ERR_OK;
}

@@ -8240,7 +8250,12 @@ static ivas_error renderSbaToSplitBinaural(
        renderSbaToMultiBinauralCldfb( sbaInput,
                                       Cldfb_RealBuffer_Binaural,
                                       Cldfb_ImagBuffer_Binaural,
                                       low_res_pre_rend_rot );
                                       low_res_pre_rend_rot
#ifdef API_5MS
                                       ,
                                       MAX_PARAM_SPATIAL_SUBFRAMES
#endif
        );
        accumulateCLDFBArrayToBuffer( Cldfb_RealBuffer_Binaural, Cldfb_ImagBuffer_Binaural, &outAudio );
    }
    else
@@ -8284,7 +8299,12 @@ static ivas_error renderSbaToBinaural(
        renderSbaToMultiBinauralCldfb( sbaInput,
                                       Cldfb_RealBuffer_Binaural,
                                       Cldfb_ImagBuffer_Binaural,
                                       0 );
                                       0
#ifdef API_5MS
                                       ,
                                       1
#endif
        );
        accumulateCLDFBArrayToBuffer( Cldfb_RealBuffer_Binaural, Cldfb_ImagBuffer_Binaural, &outAudio );
    }
    else