Commit 10abfd03 authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

delete unused function ivas_osba_energy_and_ratio_est

parent 4a1c0153
Loading
Loading
Loading
Loading
+0 −97
Original line number Diff line number Diff line
@@ -50,8 +50,6 @@
 * Local function prototypes
 *------------------------------------------------------------------------*/

static void ivas_osba_energy_and_ratio_est( OSBA_ENC_HANDLE hOSba, float data_f[][L_FRAME48k], const int16_t input_frame, const int16_t nchan_inp );

static void ivas_osba_render_ism_to_sba( float data_in_f[][L_FRAME48k], float data_out_f[][L_FRAME48k], const int16_t input_frame, const int16_t nchan_sba, const int16_t nchan_ism, ISM_METADATA_HANDLE hIsmMeta[], float prev_gains[][MAX_INPUT_CHANNELS], const float interpolator[L_FRAME48k] );

/*-------------------------------------------------------------------*
@@ -443,101 +441,6 @@ void ivas_osba_enc(
 * Local functions
 *--------------------------------------------------------------------------*/

/* Estimate energies and ratios */
static void ivas_osba_energy_and_ratio_est(
    OSBA_ENC_HANDLE hOSba,
    float data_f[][L_FRAME48k],
    const int16_t input_frame,
    const int16_t nchan_inp )
{
    int16_t ts, i, j, k;
    int16_t num_freq_bands;
    int16_t l_ts;
    float *pcm_in[MAX_NUM_OBJECTS];
    float Chnl_RealBuffer[MAX_NUM_OBJECTS][DIRAC_NO_FB_BANDS_MAX];
    float Chnl_ImagBuffer[MAX_NUM_OBJECTS][DIRAC_NO_FB_BANDS_MAX];
    float *p_Chnl_RealBuffer[MAX_NUM_OBJECTS];
    float *p_Chnl_ImagBuffer[MAX_NUM_OBJECTS];
    int16_t block_m_idx;
    int16_t mrange[2], brange[2];
    float tftile_energy;
    float ism_ratio_sum;

    num_freq_bands = hOSba->nbands;
    l_ts = input_frame / MDFT_NO_COL_MAX;

    for ( i = 0; i < nchan_inp; i++ )
    {
        pcm_in[i] = &data_f[i][0];
        p_Chnl_RealBuffer[i] = &Chnl_RealBuffer[i][0];
        p_Chnl_ImagBuffer[i] = &Chnl_ImagBuffer[i][0];
    }

    /* do processing for all subframes */
    for ( block_m_idx = 0; block_m_idx < hOSba->nSubframes; block_m_idx++ )
    {
        mrange[0] = hOSba->block_grouping[block_m_idx];
        mrange[1] = hOSba->block_grouping[block_m_idx + 1];

        /* Reset variable */
        for ( i = 0; i < hOSba->nbands; i++ )
        {
            set_zero( hOSba->energy_ratio_ism[block_m_idx][i], nchan_inp );
        }
        set_zero( hOSba->energy_ism[block_m_idx], num_freq_bands );

        /* Compute TF transform and energy */
        for ( ts = mrange[0]; ts < mrange[1]; ts++ )
        {
            ivas_fb_mixer_get_windowed_fr( hOSba->hFbMixer, pcm_in, p_Chnl_RealBuffer, p_Chnl_ImagBuffer, l_ts, l_ts, hOSba->hFbMixer->fb_cfg->num_in_chans );

            ivas_fb_mixer_update_prior_input( hOSba->hFbMixer, pcm_in, l_ts, hOSba->hFbMixer->fb_cfg->num_in_chans );

            for ( i = 0; i < nchan_inp; i++ )
            {
                pcm_in[i] += l_ts;
            }

            for ( i = 0; i < num_freq_bands; i++ )
            {
                brange[0] = hOSba->band_grouping[i];
                brange[1] = hOSba->band_grouping[i + 1];
                for ( j = brange[0]; j < brange[1]; j++ )
                {
                    for ( k = 0; k < nchan_inp; k++ )
                    {
                        tftile_energy = Chnl_RealBuffer[k][j] * Chnl_RealBuffer[k][j] + Chnl_ImagBuffer[k][j] * Chnl_ImagBuffer[k][j];
                        hOSba->energy_ism[block_m_idx][i] += tftile_energy;
                        hOSba->energy_ratio_ism[block_m_idx][i][k] += tftile_energy;
                    }
                }
            }
        }

        /* Compute ISM energy ratios */
        for ( i = 0; i < num_freq_bands; i++ )
        {
            ism_ratio_sum = 0.0f;
            for ( j = 0; j < nchan_inp; j++ )
            {
                hOSba->energy_ratio_ism[block_m_idx][i][j] /= ( hOSba->energy_ism[block_m_idx][i] + EPSILON );
                ism_ratio_sum += hOSba->energy_ratio_ism[block_m_idx][i][j];
            }

            if ( ism_ratio_sum == 0.0f )
            {
                float temp_ism_ratio = 1.0f / ( (float) nchan_inp );
                for ( j = 0; j < nchan_inp; j++ )
                {
                    hOSba->energy_ratio_ism[block_m_idx][i][j] = temp_ism_ratio;
                }
            }
        }
    }

    return;
}

/* Render ISMs to SBA */
static void ivas_osba_render_ism_to_sba(
    float data_in_f[][L_FRAME48k],