Commit d30cddda authored by Shikha Shetgeri's avatar Shikha Shetgeri
Browse files

addressed review comments

parent 3b0318ec
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -1618,6 +1618,10 @@ typedef enum
#define SPAR_DIRAC_DTX_BANDS                    ( SPAR_DTX_BANDS + DIRAC_DTX_BANDS )
#define CLDFB_PAR_WEIGHT_START_BAND             7

#ifdef ARITH_HUFF_CODER_CHANGES
#define IVAS_SBA_SIGNALLING_OVERHEAD            550
#endif 


/*----------------------------------------------------------------------------------*
 * Limiter constants
+21 −30
Original line number Diff line number Diff line
@@ -113,8 +113,10 @@ ivas_error ivas_spar_md_enc_open(
    int16_t num_channels, i, j;
#ifdef ARITH_HUFF_CODER_CHANGES
    int16_t bits_per_PR, bits_per_C, bits_per_P = 0;
    int16_t wc_coarse_strat = 0;
    int16_t num_bands_arith_huff = ivas_get_num_bands_from_bw_idx( SPAR_CONFIG_BW );
    int32_t wc_coarse_strat = 0;
    int16_t num_bands_arith_huff = IVAS_MAX_NUM_BANDS;
    int16_t n_input, n_dmx, n_dec = 0;
    int16_t table_idx, quant_start = 0;
#endif
    error = IVAS_ERR_OK;

@@ -211,37 +213,26 @@ ivas_error ivas_spar_md_enc_open(
    }

#ifdef ARITH_HUFF_CODER_CHANGES
    i = 0;
    /*calculate the worst case strat vlaue*/
    while ( i <= IVAS_SPAR_BR_TABLE_LEN )
    if ( hEncoderConfig->ivas_total_brate <= 192000 )
    {
        if ( sba_order == SBA_FOA_ORDER && ivas_spar_br_table_consts[i].ivas_total_brate == hEncoderConfig->ivas_total_brate && hEncoderConfig->ivas_total_brate <= 192000 )
        {
            bits_per_PR = ( (int16_t) log2( ivas_spar_br_table_consts[i].q_lvls[2][0] ) + 1 ) * 3;
            bits_per_C = ( (int16_t) log2( ivas_spar_br_table_consts[i].q_lvls[2][1] ) + 1 ) * 2;
            bits_per_P = ( (int16_t) log2( ivas_spar_br_table_consts[i].q_lvls[2][2] ) + 1 ) * 1;
            wc_coarse_strat = bits_per_PR + bits_per_C + bits_per_P;
            wc_coarse_strat = ( wc_coarse_strat * num_bands_arith_huff * 50 ) + 550;
            wc_coarse_strat = wc_coarse_strat / 50;
            break;
        }
        else if ( sba_order == SBA_FOA_ORDER && ivas_spar_br_table_consts[i].ivas_total_brate == hEncoderConfig->ivas_total_brate && hEncoderConfig->ivas_total_brate > 192000 )
        {
            bits_per_PR = ( (int16_t) log2( ivas_spar_br_table_consts[i].q_lvls[0][0] ) + 1 ) * 3;
            bits_per_C = ( (int16_t) log2( ivas_spar_br_table_consts[i].q_lvls[0][1] ) + 1 ) * 2;
            bits_per_P = ( (int16_t) log2( ivas_spar_br_table_consts[i].q_lvls[0][2] ) + 1 ) * 1;
            wc_coarse_strat = bits_per_PR + bits_per_C + bits_per_P;
            wc_coarse_strat = ( wc_coarse_strat * num_bands_arith_huff * 50 ) + 550;
            wc_coarse_strat = wc_coarse_strat / 50;
            break;
        quant_start = 2;
        table_idx = ivas_get_spar_table_idx( hEncoderConfig->ivas_total_brate, sba_order, SPAR_CONFIG_BW, NULL, NULL );
    }
        else if ( sba_order == SBA_HOA2_ORDER || sba_order == SBA_HOA3_ORDER )
    else
    {
            wc_coarse_strat = MAX_BITS_METADATA;
            break;
        }
        i++;
        quant_start = 0;
        table_idx = ivas_get_spar_table_idx( hEncoderConfig->ivas_total_brate, hEncoderConfig->sba_order, SPAR_CONFIG_BW, NULL, NULL );
    }
    n_input = ivas_sba_get_nchan_metadata( hEncoderConfig->sba_order );
    n_dmx = ivas_spar_br_table_consts[table_idx].nchan_transport;
    n_dec = n_input - n_dmx;
    bits_per_PR = ( (int16_t) log2( ivas_spar_br_table_consts[table_idx].q_lvls[quant_start][0] ) + 1 ) * ( n_input - 1 );
    bits_per_C = ( (int16_t) log2( ivas_spar_br_table_consts[table_idx].q_lvls[quant_start][1] ) + 1 ) * ( ( n_dmx - 1 ) * n_dec );
    bits_per_P = ( (int16_t) log2( ivas_spar_br_table_consts[table_idx].q_lvls[quant_start][2] ) + 1 ) * n_dec;
    wc_coarse_strat = bits_per_PR + bits_per_C + bits_per_P;
    wc_coarse_strat = ( wc_coarse_strat * num_bands_arith_huff * FRAMES_PER_SECOND ) + IVAS_SBA_SIGNALLING_OVERHEAD;
    wc_coarse_strat = wc_coarse_strat / FRAMES_PER_SECOND;
    hMdEnc->wc_strat = wc_coarse_strat;
    hMdEnc->wc_coarse_strat_buff = (Indice *) malloc( wc_coarse_strat * sizeof( Indice ) );
#endif