Commit 76a671d8 authored by vaclav's avatar vaclav
Browse files

simplify ivas_ism_metadata_enc()

parent 27343bdc
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -839,13 +839,9 @@ ivas_error ivas_ism_metadata_enc(
#else
    const PARAM_ISM_CONFIG_HANDLE hParamIsm                     /* i  : Param ISM Config Handle                     */
    #endif
#ifdef MASA_AND_OBJECTS
    ,
    const int16_t n_ism                                         /* i  : number of objects                           */
#ifdef OMASA_BRATE
   ,const float lp_noise_CPE                                    /* i  : LP filterend total noise estimation         */
#endif
#endif
);

ivas_error ivas_ism_metadata_dec(
+31 −22
Original line number Diff line number Diff line
@@ -89,7 +89,7 @@ ivas_error ivas_ism_enc(
    int16_t dtx_flag, sid_flag;
    ivas_error error;
#ifdef MASA_AND_OBJECTS
    int16_t n;
    int16_t nchan_transport;
#endif
    push_wmops( "ivas_ism_enc" );

@@ -102,13 +102,21 @@ ivas_error ivas_ism_enc(
    dtx_flag = 0;
    sid_flag = 0;

#ifdef MASA_AND_OBJECTS
    nchan_transport = st_ivas->nchan_transport;
    if ( st_ivas->ism_mode == ISM_MASA_MODE_DISC )
    {
        nchan_transport = st_ivas->hEncoderConfig->nchan_ism;
    }
#endif

    /*------------------------------------------------------------------*
     * Preprocesing
     *-----------------------------------------------------------------*/

    /* in ISM format: st_ivas->nchan_transport = st_ivas->nSCE */
#ifdef MASA_AND_OBJECTS
    for ( sce_id = 0; sce_id < st_ivas->nSCE; sce_id++ )
    for ( sce_id = 0; sce_id < nchan_transport; sce_id++ )
#else
    for ( sce_id = 0; sce_id < st_ivas->nchan_transport; sce_id++ )
#endif
@@ -223,16 +231,16 @@ ivas_error ivas_ism_enc(
#else
                   st_ivas->hEncoderConfig->ivas_total_brate,
#endif
                   st_ivas->nchan_transport, st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->hSCE[st_ivas->nSCE - 1]->hMetaData, nb_bits_metadata, vad_flag, st_ivas->ism_mode, st_ivas->hDirAC->hParamIsm, st_ivas->hEncoderConfig->ism_extended_metadata_flag
#ifdef MASA_AND_OBJECTS
                   ,
                   st_ivas->nSCE
                   nchan_transport,
#else
                   st_ivas->nchan_transport,
#endif
                   st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->hSCE[st_ivas->nSCE - 1]->hMetaData, nb_bits_metadata, vad_flag, st_ivas->ism_mode, st_ivas->hDirAC->hParamIsm, st_ivas->hEncoderConfig->ism_extended_metadata_flag
#ifdef OMASA_BRATE
                   ,
                   -1
#endif
#endif

                   ) ) != IVAS_ERR_OK )
        {
            return error;
@@ -244,7 +252,13 @@ ivas_error ivas_ism_enc(
#else
                   st_ivas->hEncoderConfig->ivas_total_brate,
#endif
                   st_ivas->nchan_transport, st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->hSCE[st_ivas->nSCE - 1]->hMetaData, nb_bits_metadata, vad_flag, st_ivas->ism_mode, st_ivas->hDirAC->hParamIsm
#ifdef MASA_AND_OBJECTS
                   nchan_transport,
#else
                   st_ivas->nchan_transport,
#endif

                   st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->hSCE[st_ivas->nSCE - 1]->hMetaData, nb_bits_metadata, vad_flag, st_ivas->ism_mode, st_ivas->hDirAC->hParamIsm
#ifdef MASA_AND_OBJECTS
                   ,
                   st_ivas->nSCE
@@ -284,11 +298,11 @@ ivas_error ivas_ism_enc(
        ism_total_brate_ref = ism_total_brate;

        // VE: change the interface of the following function and call it with 'st_ivas' only
        if ( ( error = ivas_ism_metadata_enc( &ism_total_brate, st_ivas->nchan_transport, st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->hSCE[st_ivas->nSCE - 1]->hMetaData, nb_bits_metadata, vad_flag, st_ivas->ism_mode, NULL,
        if ( ( error = ivas_ism_metadata_enc( &ism_total_brate, nchan_transport, st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->hSCE[st_ivas->nSCE - 1]->hMetaData, nb_bits_metadata, vad_flag, st_ivas->ism_mode, NULL,
#ifdef TD5
                                              st_ivas->hEncoderConfig->ism_extended_metadata_flag,
#endif
                                              st_ivas->nSCE, st_ivas->hMasa != NULL ? st_ivas->hMasa->data.lp_noise_CPE : 0 ) ) != IVAS_ERR_OK )
                                              st_ivas->hMasa != NULL ? st_ivas->hMasa->data.lp_noise_CPE : 0 ) ) != IVAS_ERR_OK )
        {
            return error;
        }
@@ -298,7 +312,7 @@ ivas_error ivas_ism_enc(
            st_ivas->hCPE[0]->brate_surplus = ism_total_brate_ref - ism_total_brate;
        }
#else
        if ( ( error = ivas_ism_metadata_enc( ism_total_brate, st_ivas->nchan_transport, st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->hSCE[st_ivas->nSCE - 1]->hMetaData, nb_bits_metadata, vad_flag, st_ivas->ism_mode, NULL, st_ivas->nSCE,
        if ( ( error = ivas_ism_metadata_enc( ism_total_brate, nchan_transport, st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->hSCE[st_ivas->nSCE - 1]->hMetaData, nb_bits_metadata, vad_flag, st_ivas->ism_mode, NULL,
#ifdef TD5
                                              , st_ivas->hEncoderConfig->ism_extended_metadata_flag
#endif
@@ -313,7 +327,6 @@ ivas_error ivas_ism_enc(
                                              ,
                                              st_ivas->hEncoderConfig->ism_extended_metadata_flag
#endif

                                              ) ) != IVAS_ERR_OK )
        {
            return error;
@@ -347,17 +360,9 @@ ivas_error ivas_ism_enc(
    /*------------------------------------------------------------------*
     * CoreCoders encoding
     *-----------------------------------------------------------------*/
#ifdef MASA_AND_OBJECTS
    if ( st_ivas->ism_mode == ISM_MASA_MODE_DISC )
    {
        n = st_ivas->nSCE;
    }
    else
    {
        n = st_ivas->nchan_transport;
    }

    for ( sce_id = 0; sce_id < n; sce_id++ )
#ifdef MASA_AND_OBJECTS
    for ( sce_id = 0; sce_id < nchan_transport; sce_id++ )
#else
    for ( sce_id = 0; sce_id < st_ivas->nchan_transport; sce_id++ )
#endif
@@ -416,7 +421,11 @@ ivas_error ivas_ism_enc(

    if ( dtx_flag )
    {
#ifdef MASA_AND_OBJECTS
        for ( sce_id = 0; sce_id < nchan_transport; sce_id++ )
#else
        for ( sce_id = 0; sce_id < st_ivas->nchan_transport; sce_id++ )
#endif
        {
            if ( sce_id != st_ivas->hISMDTX->sce_id_dtx )
            {
+24 −60
Original line number Diff line number Diff line
@@ -194,14 +194,10 @@ ivas_error ivas_ism_metadata_enc(
#else
    const PARAM_ISM_CONFIG_HANDLE hParamIsm /* i  : Param ISM Enc Handle            */
#endif
#ifdef MASA_AND_OBJECTS
    ,
    const int16_t n_ism /* i  : number of objects               */
#ifdef OMASA_BRATE
    ,
    const float lp_noise_CPE
#endif
#endif
)
{
#ifdef TD5
@@ -226,9 +222,7 @@ ivas_error ivas_ism_metadata_enc(
    int16_t ism_imp[MAX_NUM_OBJECTS];
    int16_t num_obj, nbands, nblocks;
    ivas_error error;
#ifdef MASA_AND_OBJECTS
    int16_t n_ch;
#endif

    error = IVAS_ERR_OK;

    push_wmops( "ism_meta_enc" );
@@ -244,7 +238,7 @@ ivas_error ivas_ism_metadata_enc(
#ifdef MASA_AND_OBJECTS
    else if ( ism_mode == ISM_MASA_MODE_DISC )
    {
        num_obj = n_ism;
        num_obj = nchan_transport;
    }
#endif
    else
@@ -275,22 +269,13 @@ ivas_error ivas_ism_metadata_enc(
#endif

#ifdef OMASA_BRATE
    if ( ism_mode == ISM_MASA_MODE_DISC )
    {
        n_ch = num_obj;
    }
    else
    {
        n_ch = nchan_transport;
    }

    if ( ism_mode == ISM_MASA_MODE_DISC )
    {
        /*----------------------------------------------------------------*
         * Rate importance of particular ISM streams in combined format coding
         *----------------------------------------------------------------*/

        set_ism_importance_interformat( *ism_total_brate, n_ch, hIsmMeta, hSCE, lp_noise_CPE, ism_imp );
        set_ism_importance_interformat( *ism_total_brate, nchan_transport, hIsmMeta, hSCE, lp_noise_CPE, ism_imp );
    }
    else
#endif
@@ -366,27 +351,13 @@ ivas_error ivas_ism_metadata_enc(
#endif
            }
        }
    }


        /*----------------------------------------------------------------*
         * Rate importance of particular ISM streams
         *----------------------------------------------------------------*/

#ifdef MASA_AND_OBJECTS
    if ( ism_mode == ISM_MASA_MODE_DISC )
    {
        n_ch = num_obj;
    }
    else
    {
        n_ch = nchan_transport;
    }

    rate_ism_importance( n_ch, hIsmMeta, hSCE, ism_imp );

#else
        rate_ism_importance( nchan_transport, hIsmMeta, hSCE, ism_imp );
#endif

#ifndef TUNE_360_OBJECT_WITH_NOISE
        /* relax the importance decision in "stereo" coding for noisy audio */
@@ -413,6 +384,7 @@ ivas_error ivas_ism_metadata_enc(
            }
        }
#endif
    }

    /*----------------------------------------------------------------*
     * Write ISM common signaling
@@ -449,11 +421,7 @@ ivas_error ivas_ism_metadata_enc(
#endif

    /* write ISM metadata flag (one per object) */
#ifdef MASA_AND_OBJECTS
    for ( ch = 0; ch < n_ch; ch++ )
#else
    for ( ch = 0; ch < nchan_transport; ch++ )
#endif
    {
#ifdef OMASA_BRATE
        if ( ism_mode == ISM_MASA_MODE_DISC )
@@ -481,11 +449,7 @@ ivas_error ivas_ism_metadata_enc(
#endif
    {
        /* write VAD flag */
#ifdef MASA_AND_OBJECTS
        for ( ch = 0; ch < n_ch; ch++ )
#else
        for ( ch = 0; ch < nchan_transport; ch++ )
#endif
        {
#ifdef OMASA_BRATE
            if ( ism_mode == ISM_MASA_MODE_DISC )
@@ -1039,7 +1003,7 @@ ivas_error ivas_ism_metadata_enc(
    }

#ifdef MASA_AND_OBJECTS
    for ( ch = 0; ch < n_ch; ch++ )
    for ( ch = 0; ch < nchan_transport; ch++ )
    {
#ifdef OMASA_BRATE
        hSCE[ch]->hCoreCoder[0]->low_rate_mode = 0;