Commit de16a98e authored by Vidhya V P's avatar Vidhya V P
Browse files

Made changes for Max MD bits calculation

parent d5fa1115
Loading
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -1690,6 +1690,9 @@ typedef enum
#define IVAS_FB_BANDS_12                        12
#define IVAS_FB_BANDS_20                        20
#define IVAS_MAX_NUM_BANDS                      IVAS_FB_BANDS_12
#ifdef ARITH_HUFF_CODER_CHANGES_1
#define IVAS_MAX_NUM_BANDS_VLBR                 6
#endif
#define IVAS_MAX_NUM_FB_BANDS                   IVAS_FB_BANDS_20
#define IVAS_FB_12_1MS_LEN                      ( IVAS_FB_12_1MS_48K_END_BINS_BAND_0 - IVAS_FB_12_1MS_48K_START_OFFSET_BAND_0 ) + ( IVAS_FB_12_1MS_48K_END_BINS_BAND_1 - IVAS_FB_12_1MS_48K_START_OFFSET_BAND_1 ) + ( IVAS_FB_12_1MS_48K_END_BINS_BAND_2 - IVAS_FB_12_1MS_48K_START_OFFSET_BAND_2 ) + ( IVAS_FB_12_1MS_48K_END_BINS_BAND_3 - IVAS_FB_12_1MS_48K_START_OFFSET_BAND_3 ) + ( IVAS_FB_12_1MS_48K_END_BINS_BAND_4 - IVAS_FB_12_1MS_48K_START_OFFSET_BAND_4 ) + ( IVAS_FB_12_1MS_48K_END_BINS_BAND_5 - IVAS_FB_12_1MS_48K_START_OFFSET_BAND_5 ) + ( IVAS_FB_12_1MS_48K_END_BINS_BAND_6 - IVAS_FB_12_1MS_48K_START_OFFSET_BAND_6 ) + ( IVAS_FB_12_1MS_48K_END_BINS_BAND_7 - IVAS_FB_12_1MS_48K_START_OFFSET_BAND_7 ) + ( IVAS_FB_12_1MS_48K_END_BINS_BAND_8 - IVAS_FB_12_1MS_48K_START_OFFSET_BAND_8 ) + ( IVAS_FB_12_1MS_48K_END_BINS_BAND_9 - IVAS_FB_12_1MS_48K_START_OFFSET_BAND_9 ) + ( IVAS_FB_12_1MS_48K_END_BINS_BAND_10 - IVAS_FB_12_1MS_48K_START_OFFSET_BAND_10 ) + ( IVAS_FB_12_1MS_48K_END_BINS_BAND_11 - IVAS_FB_12_1MS_48K_START_OFFSET_BAND_11 )
#define IVAS_16K_12BANDS_ACTIVE_BANDS           10
+13 −2
Original line number Diff line number Diff line
@@ -2198,10 +2198,21 @@ void ivas_spar_set_bitrate_config(

    pSpar_md_cfg->tgt_bits_per_blk -= md_coding_bits_header;
    pSpar_md_cfg->max_bits_per_blk -= md_coding_bits_header;

#ifdef ARITH_HUFF_CODER_CHANGES_1
    if ( ivas_total_brate < IVAS_24k4 )
    {
        pSpar_md_cfg->tgt_bits_per_blk = (int16_t) ceilf( ( 1.0f * pSpar_md_cfg->tgt_bits_per_blk * num_bands ) / IVAS_MAX_NUM_BANDS_VLBR );
        pSpar_md_cfg->max_bits_per_blk = (int16_t) ceilf( ( 1.0f * pSpar_md_cfg->max_bits_per_blk * num_bands ) / IVAS_MAX_NUM_BANDS_VLBR );
    }
    else
    {
        pSpar_md_cfg->tgt_bits_per_blk = (int16_t) ceilf( ( 1.0f * pSpar_md_cfg->tgt_bits_per_blk * num_bands ) / IVAS_MAX_NUM_BANDS );
        pSpar_md_cfg->max_bits_per_blk = (int16_t) ceilf( ( 1.0f * pSpar_md_cfg->max_bits_per_blk * num_bands ) / IVAS_MAX_NUM_BANDS );

    }
#else
    pSpar_md_cfg->tgt_bits_per_blk = (int16_t) ceilf( ( 1.0f * pSpar_md_cfg->tgt_bits_per_blk * num_bands ) / IVAS_MAX_NUM_BANDS );
    pSpar_md_cfg->max_bits_per_blk = (int16_t) ceilf( ( 1.0f * pSpar_md_cfg->max_bits_per_blk * num_bands ) / IVAS_MAX_NUM_BANDS );
#endif
    pSpar_md_cfg->tgt_bits_per_blk += md_coding_bits_header;
    pSpar_md_cfg->max_bits_per_blk += md_coding_bits_header;

+1 −0
Original line number Diff line number Diff line
@@ -193,6 +193,7 @@
#define FIX_445_SNS_BUGFIXES                            /* FhG: bug fix for spectral tilt in SNS computation + necessary update of codebooks and converison to fixedpoint-compatible tables */

#define ARITH_HUFF_CODER_CHANGES                        /* DLB: Optimization of metadata memory for Huffman and arithmetic coders */
#define ARITH_HUFF_CODER_CHANGES_1                       /* DLB: additional changes for Huffman and arithmetic coders*/
#define FIX_447_PARAMBIN_MASA_REGU_FAC                  /* Nokia: Issue 447: Fix issue by adjusting regularization factor minimum value. */
#define FIX_441_SBA_PARAMBIN_GAINS                      /* Nokia: Fix issue 441 by changing gains in SBA path of parametric binauralizer */

+4 −2
Original line number Diff line number Diff line
@@ -525,9 +525,11 @@ ivas_error ivas_spar_md_dec_init(
#ifdef SPAR_TUNING
    ivas_sba_get_spar_hoa_ch_ind( num_channels, hDecoderConfig->ivas_total_brate, hMdDec->HOA_md_ind );
#endif

#ifdef ARITH_HUFF_CODER_CHANGES_1
    hMdDec->spar_md.num_bands = ( hMdDec->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : ( ( hDecoderConfig->ivas_total_brate < IVAS_24k4 ) ? IVAS_MAX_NUM_BANDS_VLBR : min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ) );
#else
    hMdDec->spar_md.num_bands = ( hMdDec->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND );

#endif
    ivas_spar_set_bitrate_config( &hMdDec->spar_md_cfg, hMdDec->table_idx, hMdDec->spar_md.num_bands
#ifdef ARITH_HUFF_CODER_CHANGES
                                  ,
+13 −1
Original line number Diff line number Diff line
@@ -266,8 +266,20 @@ int16_t ivas_sba_get_max_md_bits(
    Encoder_Struct *st_ivas )
{
    int16_t max_md_bits;

#ifndef ARITH_HUFF_CODER_CHANGES
    max_md_bits = min( st_ivas->hQMetaData->metadata_max_bits + 1, 500 ); // TODO: remove 500 once max MD bits has been defined at all bitrates in DirAC
#else
    int16_t max_bits;
    if ( ( st_ivas->sba_analysis_order > 1 ) && ( st_ivas->hEncoderConfig->ivas_total_brate > IVAS_256k ) )
    {
        max_bits = 2000;
    }
    else
    {
        max_bits = 500;
    }
    max_md_bits = min( st_ivas->hQMetaData->metadata_max_bits + 1, max_bits ); // TODO: remove 500 once max MD bits has been defined at all bitrates in DirAC
#endif
    if ( st_ivas->sba_mode == SBA_MODE_SPAR )
    {
        max_md_bits += st_ivas->hSpar->hMdEnc->spar_md_cfg.max_md_bits_spar;
Loading