Commit 65c1d78b authored by TYAGIRIS's avatar TYAGIRIS
Browse files

VLBR fixes and HO DIRAC fixes

parent 7a2a54c2
Loading
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -1791,9 +1791,6 @@ 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
+4 −0
Original line number Diff line number Diff line
@@ -4476,6 +4476,10 @@ void ivas_spar_set_bitrate_config(
    ivas_spar_md_com_cfg *pSpar_md_cfg,                         /* i/o: SPAR MD config. handle                  */
    const int16_t table_idx,                                    /* i  : config. table index                     */
    const int16_t num_bands                                     /* i  : number of bands                         */
#ifdef ARITH_HUFF_CODER_CHANGES_1
    ,
    const int16_t dirac2spar_md_flag
#endif
#ifdef ARITH_HUFF_CODER_CHANGES
    ,
    const int16_t enc_flag,
+8 −0
Original line number Diff line number Diff line
@@ -891,11 +891,19 @@ const ivas_spar_br_table_t ivas_spar_br_table_consts[IVAS_SPAR_BR_TABLE_LEN] =
   so minimum core-coder bitrate per channel can be min core-coder bitrates as per the table - AGC_BITS_PER_CH */
 /* preferred tuning (3.2/4.9kbps) with/out TDD */
	{ 13200, 0, SBA_FOA_ORDER, FB, 24000, 1, WYXZ, 1, 0,
#ifdef FIX_487_LOWRATE_SBA_TUNING_FIX
	{ { 10000, 8150, 13150 } },
#else
	{ { 10000, 8300, 13150 } },
#endif
    { { 15, 1, 5, 1 },{ 15, 1, 3, 1 },{ 7, 1, 3, 1 } }, 0, 0, 0 },
	{ 16400, 0, SBA_FOA_ORDER, FB, 24000, 1, WYXZ, 1, 0,
#ifdef FIX_487_LOWRATE_SBA_TUNING_FIX
	{ { 13200, 11350, 16350 } },
#else
	{ { 13200, 11500, 16350 } },
#endif
    { { 15, 1, 5, 1 },{ 15, 1, 3, 1 },{ 7, 1, 3, 1 } },	0, 0, 0 },
    { 24400, 0, SBA_FOA_ORDER, FB, 24000, 1, WYXZ, 1, 0,{ { 16400, 14850, 24350 } },
    { { 15, 1, 5, 1 },{ 15, 1, 3, 1 },{ 7, 1, 3, 1 } }, 0, 0, 0 },
+20 −6
Original line number Diff line number Diff line
@@ -2136,6 +2136,10 @@ void ivas_spar_set_bitrate_config(
    ivas_spar_md_com_cfg *pSpar_md_cfg, /* i/o: SPAR MD config. handle  */
    const int16_t table_idx,            /* i  : config. table index     */
    const int16_t num_bands             /* i  : number of bands         */
#ifdef ARITH_HUFF_CODER_CHANGES_1
    ,
    const int16_t dirac2spar_md_flag
#endif
#ifdef ARITH_HUFF_CODER_CHANGES
    ,
    const int16_t enc_flag,
@@ -2154,6 +2158,9 @@ void ivas_spar_set_bitrate_config(
    int16_t wc_coarse_strat;
    int16_t n_input, n_dmx, n_dec;
    int16_t quant_strat;
#endif
#ifdef ARITH_HUFF_CODER_CHANGES_1
    int16_t bands_bw;
#endif
    pSpar_md_cfg->nchan_transport = ivas_spar_br_table_consts[table_idx].nchan_transport;

@@ -2201,18 +2208,17 @@ void ivas_spar_set_bitrate_config(
#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 );
        bands_bw = 2;
    }
    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 );
        bands_bw = 1;
    }
#else
#endif

    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;

@@ -2229,7 +2235,12 @@ void ivas_spar_set_bitrate_config(
            quant_strat = QUANT_STRAT_2;
        }

#ifdef ARITH_HUFF_CODER_CHANGES_1
        num_PR_bits_dirac_bands = ( dirac2spar_md_flag == 1 ) ? num_bands - SPAR_DIRAC_SPLIT_START_BAND : 0;
        num_PR_bits_dirac_bands /= bands_bw;
#else
        num_PR_bits_dirac_bands = num_bands - SPAR_DIRAC_SPLIT_START_BAND;
#endif
        num_PR_bits_dirac_bands = max( 0, num_PR_bits_dirac_bands );
        num_PR_bits_dirac_bands *= DIRAC_TO_SPAR_HBR_PRED_CHS;

@@ -2243,6 +2254,9 @@ void ivas_spar_set_bitrate_config(
        bits_P = (int16_t) ceilf( log2f( ivas_spar_br_table_consts[table_idx].q_lvls[quant_strat][2] ) ) * ( n_dec );
        wc_coarse_strat = bits_PR + bits_C + bits_P;
        wc_coarse_strat *= num_bands;
#ifdef ARITH_HUFF_CODER_CHANGES_1
        wc_coarse_strat /= bands_bw;
#endif
        wc_coarse_strat -= num_PR_bits_dirac_bands;
        wc_coarse_strat += md_coding_bits_header;

+2 −0
Original line number Diff line number Diff line
@@ -229,6 +229,8 @@

#define FIX_DTX_428                                     /* FhG: fix for issue 428, crash with DTX and bitrate switching */

#define FIX_487_LOWRATE_SBA_TUNING_FIX

/* ################## End DEVELOPMENT switches ######################### */
/* clang-format on */

Loading