Loading lib_com/ivas_spar_com.c +5 −12 Original line number Diff line number Diff line Loading @@ -2109,17 +2109,7 @@ void ivas_spar_set_bitrate_config( pSpar_md_cfg->agc_bits_ch_idx = ivas_spar_br_table_consts[table_idx].agc_bits_ch_idx; ivas_spar_get_uniform_quant_strat( pSpar_md_cfg, table_idx ); if ( pSpar_md_cfg->quant_strat->C.q_levels[0] == 0 || pSpar_md_cfg->quant_strat->C.q_levels[1] == 0 || pSpar_md_cfg->quant_strat->PR.q_levels[0] == 0 || pSpar_md_cfg->quant_strat->PR.q_levels[1] == 0 || pSpar_md_cfg->quant_strat->P_c.q_levels[0] == 0 || pSpar_md_cfg->quant_strat->P_c.q_levels[1] == 0 || pSpar_md_cfg->quant_strat->P_r.q_levels[0] == 0 || pSpar_md_cfg->quant_strat->P_r.q_levels[1] == 0 ) { pSpar_md_cfg->gen_bs = 0; } else { if ( 0 != pSpar_md_cfg->gen_bs ) { pSpar_md_cfg->quant_strat_bits = ivas_get_bits_to_encode( MAX_QUANT_STRATS ); } } /* BLOCK: getEntropyCoderModels */ Loading @@ -2138,11 +2128,12 @@ void ivas_spar_set_bitrate_config( total_bits += (int16_t) ( ivas_spar_br_table_consts[table_idx].core_brs[i][0] / FRAMES_PER_SEC ); max_bits += (int16_t) ( ivas_spar_br_table_consts[table_idx].core_brs[i][1] / FRAMES_PER_SEC ); } pSpar_md_cfg->tgt_bits_per_blk = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC ) - IVAS_FORMAT_SIGNALING_NBITS_SBA - SBA_PLANAR_BITS - SBA_ORDER_BITS - length - total_bits; pSpar_md_cfg->tgt_bits_per_blk = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC ) - IVAS_FORMAT_SIGNALING_NBITS_SBA - SBA_PLANAR_BITS - SBA_ORDER_BITS - length - total_bits; pSpar_md_cfg->max_bits_per_blk = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC ) - IVAS_FORMAT_SIGNALING_NBITS_SBA - SBA_PLANAR_BITS - SBA_ORDER_BITS - length - max_bits; md_coding_bits_header = SPAR_NUM_CODING_STRAT_BITS + pSpar_md_cfg->quant_strat_bits; pSpar_md_cfg->tgt_bits_per_blk -= md_coding_bits_header; pSpar_md_cfg->max_bits_per_blk -= md_coding_bits_header; Loading @@ -2151,9 +2142,11 @@ 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; return; } #ifdef FIX_I1_113 /*-----------------------------------------------------------------------------------------* * Function ivas_spar_bitrate_dist() Loading lib_com/ivas_stat_com.h +0 −1 Original line number Diff line number Diff line Loading @@ -229,7 +229,6 @@ typedef struct ivas_spar_md_com_cfg int16_t active_w; int16_t remix_unmix_order; ivas_quant_strat_t quant_strat[MAX_QUANT_STRATS]; int16_t gen_bs; int16_t quant_strat_bits; int16_t nchan_transport; int16_t num_quant_strats; Loading lib_dec/ivas_spar_md_dec.c +164 −174 Original line number Diff line number Diff line Loading @@ -82,7 +82,9 @@ static void ivas_spar_md_fill_invalid_bands( ivas_spar_dec_matrices_t *pSpar_coe static ivas_error ivas_spar_set_dec_config( ivas_spar_md_dec_state_t *hMdDec, const int16_t nchan_transport, float *pFC ); static void ivas_parse_parameter_bitstream_dtx( ivas_spar_md_t *pSpar_md, Decoder_State *st, const int16_t bw, const int16_t num_bands, int16_t *num_dmx_per_band, int16_t *num_dec_per_band ); static ivas_error ivas_deindex_real_index( const int16_t *index, const int16_t q_levels, const float min_value, const float max_value, float *quant, const int16_t num_ch_dim2 ); static void ivas_spar_dec_parse_md_bs( ivas_spar_md_dec_state_t *hMdDec, Decoder_State *st, int16_t *nB, int16_t *bands_bw, int16_t *dtx_vad, const int32_t ivas_total_brate, const int16_t use_planar_coeff, const int16_t sba_inactive_mode ); Loading Loading @@ -440,8 +442,6 @@ ivas_error ivas_spar_md_dec_init( int16_t nchan_transport; float pFC[IVAS_MAX_NUM_BANDS], PR_minmax[2]; hMdDec->spar_md_cfg.gen_bs = 1; // VE2DB : always 1 - can it be removed? hMdDec->spar_md.num_bands = ( hMdDec->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); ivas_spar_set_bitrate_config( &hMdDec->spar_md_cfg, hMdDec->table_idx, hMdDec->spar_md.num_bands ); Loading Loading @@ -1431,19 +1431,19 @@ static void ivas_spar_dec_parse_md_bs( const int16_t sba_inactive_mode ) { int16_t i, j, k, num_bands; int16_t ii, jj, ndec, ndm, b, idx; uint16_t qsi; ivas_quant_strat_t qs; int16_t strat, freq_diff, no_ec; int16_t do_diff[IVAS_MAX_NUM_BANDS]; int16_t planarCP = 0; int16_t planarCP; float quant[IVAS_SPAR_MAX_C_COEFF]; *dtx_vad = 1; *bands_bw = 1; qsi = 0; num_bands = hMdDec->spar_md.num_bands; if ( hMdDec->spar_md_cfg.gen_bs == 1 ) { if ( ivas_total_brate > IVAS_SID_5k2 ) { if ( hMdDec->spar_md_cfg.quant_strat_bits > 0 ) Loading Loading @@ -1496,6 +1496,7 @@ static void ivas_spar_dec_parse_md_bs( } hMdDec->valid_bands[i] = 1; } for ( i = 0; i < num_bands; i++ ) { for ( j = 0; j < ( IVAS_SPAR_MAX_CH - IVAS_SPAR_MAX_DMX_CHS ); j++ ) Loading @@ -1507,10 +1508,8 @@ static void ivas_spar_dec_parse_md_bs( } } ivas_parse_parameter_bitstream_dtx( &hMdDec->spar_md, st0, *bands_bw, *nB, hMdDec->spar_md_cfg.num_dmx_chans_per_band, hMdDec->spar_md_cfg.num_decorr_per_band ); { int16_t ndec, b, idx; ivas_parse_parameter_bitstream_dtx( &hMdDec->spar_md, st0, *bands_bw, *nB, hMdDec->spar_md_cfg.num_dmx_chans_per_band, hMdDec->spar_md_cfg.num_decorr_per_band ); for ( i = *nB - 1; i >= 0; i-- ) { ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * i]; Loading @@ -1529,14 +1528,16 @@ static void ivas_spar_dec_parse_md_bs( hMdDec->valid_bands[idx] = 1; } } *nB = num_bands; *bands_bw = 1; } return; } qs = hMdDec->spar_md_cfg.quant_strat[qsi]; planarCP = 0; if ( ( qsi == 2 ) && ( use_planar_coeff ) ) { planarCP = 1; Loading @@ -1545,6 +1546,7 @@ static void ivas_spar_dec_parse_md_bs( #endif } strat = get_next_indice( st0, 3 ); #ifdef SPAR_HOA_DBG /*fprintf(stdout, "\n\n no_ec = %d, strat = %d\n", no_ec, strat);*/ #endif Loading Loading @@ -1598,10 +1600,9 @@ static void ivas_spar_dec_parse_md_bs( for ( i = 0; i < *nB; i++ ) { int16_t ii, jj; int16_t ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * i]; int16_t ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[( *bands_bw ) * i]; float quant[IVAS_SPAR_MAX_C_COEFF]; ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * i]; ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[( *bands_bw ) * i]; ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].pred_index_re, qs.PR.q_levels[0], qs.PR.min, qs.PR.max, hMdDec->spar_md.band_coeffs[i].pred_re, ndm + ndec - 1 ); j = 0; Loading @@ -1613,7 +1614,9 @@ static void ivas_spar_dec_parse_md_bs( j++; } } ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].drct_index_re, qs.C.q_levels[0], qs.C.min, qs.C.max, quant, ndec * ( ndm - 1 ) ); j = 0; for ( ii = 0; ii < ndec; ii++ ) { Loading @@ -1623,7 +1626,9 @@ static void ivas_spar_dec_parse_md_bs( j++; } } ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].decd_index_re, qs.P_r.q_levels[0], qs.P_r.min, qs.P_r.max, hMdDec->spar_md.band_coeffs[i].P_re, ndm + ndec - 1 ); /* Store prior coefficient indices */ for ( j = 0; j < ndm + ndec - 1; j++ ) { Loading @@ -1639,18 +1644,7 @@ static void ivas_spar_dec_parse_md_bs( } hMdDec->valid_bands[i] |= ( do_diff[i] == 0 ) ? 1 : 0; } } else { *dtx_vad = hMdDec->spar_md.dtx_vad; *nB = num_bands; *bands_bw = num_bands / *nB; for ( i = 0; i < *nB; i++ ) { hMdDec->valid_bands[i] = 1; } } #ifdef SPAR_HOA_DBG int16_t b; b = 0; Loading Loading @@ -1743,14 +1737,14 @@ static void ivas_decode_arith_bs( const int16_t freq_diff, const int16_t planarCP ) { int16_t i, ndm, ndec; int16_t i, j, ndm, ndec; ivas_cell_dim_t pred_cell_dims[IVAS_MAX_NUM_BANDS]; ivas_cell_dim_t drct_cell_dims[IVAS_MAX_NUM_BANDS]; ivas_cell_dim_t decd_cell_dims[IVAS_MAX_NUM_BANDS]; ivas_cell_dim_t decx_cell_dims[IVAS_MAX_NUM_BANDS]; int16_t symbol_arr_re[IVAS_MAX_INPUT_LEN]; int16_t symbol_arr_old_re[IVAS_MAX_INPUT_LEN]; int16_t any_diff = 0; int16_t any_diff; for ( i = 0; i < nB; i++ ) { Loading @@ -1774,6 +1768,7 @@ static void ivas_decode_arith_bs( decx_cell_dims[i].dim2 = 1; } any_diff = 0; for ( i = 0; i < nB; i++ ) { if ( pDo_diff[i] != 0 ) Loading @@ -1787,7 +1782,6 @@ static void ivas_decode_arith_bs( { if ( hMdDec->spar_hoa_md_flag ) { int16_t j; for ( i = 0; i < nB; i++ ) { if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) Loading @@ -1810,7 +1804,6 @@ static void ivas_decode_arith_bs( if ( hMdDec->spar_hoa_md_flag ) { int16_t j; for ( i = 0; i < nB; i++ ) { if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) Loading Loading @@ -2063,12 +2056,11 @@ static void ivas_decode_huffman_bs( const int16_t planarCP ) { int16_t i, j; for ( i = 0; i < nB; i++ ) { int16_t ndm, ndec; int16_t pred_dim, drct_dim, decd_dim, pred_offset; for ( i = 0; i < nB; i++ ) { ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[bands_bw * i]; ndec = hMdDec->spar_md_cfg.num_decorr_per_band[bands_bw * i]; Loading @@ -2086,8 +2078,7 @@ static void ivas_decode_huffman_bs( for ( j = pred_offset; j < pred_dim; j++ ) { ivas_huffman_decode( &hMdDec->huff_coeffs.pred_huff_re[qsi], st0, &hMdDec->spar_md.band_coeffs_idx[i].pred_index_re[j] ); ivas_huffman_decode( &hMdDec->huff_coeffs.pred_huff_re[qsi], st0, &hMdDec->spar_md.band_coeffs_idx[i].pred_index_re[j] ); } if ( hMdDec->spar_hoa_md_flag ) Loading @@ -2109,8 +2100,7 @@ static void ivas_decode_huffman_bs( } else { ivas_huffman_decode( &hMdDec->huff_coeffs.drct_huff_re[qsi], st0, &hMdDec->spar_md.band_coeffs_idx[i].drct_index_re[j] ); ivas_huffman_decode( &hMdDec->huff_coeffs.drct_huff_re[qsi], st0, &hMdDec->spar_md.band_coeffs_idx[i].drct_index_re[j] ); } } Loading @@ -2122,8 +2112,7 @@ static void ivas_decode_huffman_bs( } else { ivas_huffman_decode( &hMdDec->huff_coeffs.decd_huff_re[qsi], st0, &hMdDec->spar_md.band_coeffs_idx[i].decd_index_re[j] ); ivas_huffman_decode( &hMdDec->huff_coeffs.decd_huff_re[qsi], st0, &hMdDec->spar_md.band_coeffs_idx[i].decd_index_re[j] ); } } } Loading Loading @@ -2347,6 +2336,7 @@ static void ivas_spar_unquant_dtx_indicies( pr_min_max[0] = pSpar_md->min_max[0]; pr_min_max[1] = pSpar_md->min_max[1]; for ( b = 0; b < nB; b++ ) { for ( i = 0; i < FOA_CHANNELS - 1; i++ ) Loading Loading @@ -2384,7 +2374,7 @@ static void ivas_parse_parameter_bitstream_dtx( int16_t *num_dmx_per_band, int16_t *num_dec_per_band ) { int16_t i, j; int16_t i, j, ndec, ndm; float val; int16_t idx; float pr_min_max[2]; Loading @@ -2397,8 +2387,8 @@ static void ivas_parse_parameter_bitstream_dtx( for ( i = 0; i < num_bands; i++ ) { int16_t ndec = num_dec_per_band[bw * i]; int16_t ndm = num_dmx_per_band[bw * i]; ndec = num_dec_per_band[bw * i]; ndm = num_dmx_per_band[bw * i]; for ( j = 0; j < FOA_CHANNELS - 1; j++ ) { Loading lib_enc/ivas_spar_md_enc.c +1 −23 Original line number Diff line number Diff line Loading @@ -324,7 +324,6 @@ static ivas_error ivas_spar_md_enc_init( table_idx = ivas_get_spar_table_idx( hEncoderConfig->ivas_total_brate, sba_order, SPAR_CONFIG_BW, NULL, NULL ); hMdEnc->spar_md_cfg.gen_bs = 1; ivas_spar_set_bitrate_config( &hMdEnc->spar_md_cfg, table_idx, ( hMdEnc->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : SPAR_DIRAC_SPLIT_START_BAND ); /* get FB coefficients */ Loading @@ -334,19 +333,6 @@ static ivas_error ivas_spar_md_enc_init( } ivas_spar_set_enc_config( hMdEnc, hMdEnc->spar_md_cfg.max_freq_per_chan, hMdEnc->spar_md_cfg.nchan_transport, pFC, num_channels ); /* if(hMdEnc->spar_md_cfg.quant_strat[0].C.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].C.q_levels[1] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].PR.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].PR.q_levels[1] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].P_c.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].P_c.q_levels[1] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].P_r.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].P_r.q_levels[1] == 0) { hMdEnc->spar_md_cfg.gen_bs = 0; } else if(0 != hMdEnc->spar_md_cfg.gen_bs) { hMdEnc->spar_md_cfg.quant_strat_bits = ivas_get_bits_to_encode(MAX_QUANT_STRATS); } */ if ( hMdEnc->spar_md_cfg.nchan_transport != 2 && ( ( hMdEnc->spar_md_cfg.remix_unmix_order == 1 ) || ( hMdEnc->spar_md_cfg.remix_unmix_order == 2 ) ) ) { Loading Loading @@ -885,11 +871,6 @@ ivas_error ivas_spar_md_enc_process( ivas_band_mixing( hMdEnc, num_ch, num_bands, nchan_transport, num_bands_full ); } if ( hMdEnc->spar_md_cfg.gen_bs == 0 ) { break; } if ( dtx_vad == 0 ) { ivas_write_parameter_bitstream_dtx( &hMdEnc->spar_md, hMetaData, hMdEnc->spar_md_cfg.num_dmx_chans_per_band, hMdEnc->spar_md_cfg.num_decorr_per_band, num_bands ); Loading Loading @@ -1110,10 +1091,7 @@ ivas_error ivas_spar_md_enc_process( fclose( fp ); #endif if ( hMdEnc->spar_md_cfg.gen_bs == 1 ) { ivas_store_prior_coeffs( hMdEnc, num_bands, bands_bw, code_strat, dtx_vad, qsi ); } hMdEnc->spar_md.dtx_vad = dtx_vad; hMdEnc->spar_md.num_bands = num_bands; Loading Loading
lib_com/ivas_spar_com.c +5 −12 Original line number Diff line number Diff line Loading @@ -2109,17 +2109,7 @@ void ivas_spar_set_bitrate_config( pSpar_md_cfg->agc_bits_ch_idx = ivas_spar_br_table_consts[table_idx].agc_bits_ch_idx; ivas_spar_get_uniform_quant_strat( pSpar_md_cfg, table_idx ); if ( pSpar_md_cfg->quant_strat->C.q_levels[0] == 0 || pSpar_md_cfg->quant_strat->C.q_levels[1] == 0 || pSpar_md_cfg->quant_strat->PR.q_levels[0] == 0 || pSpar_md_cfg->quant_strat->PR.q_levels[1] == 0 || pSpar_md_cfg->quant_strat->P_c.q_levels[0] == 0 || pSpar_md_cfg->quant_strat->P_c.q_levels[1] == 0 || pSpar_md_cfg->quant_strat->P_r.q_levels[0] == 0 || pSpar_md_cfg->quant_strat->P_r.q_levels[1] == 0 ) { pSpar_md_cfg->gen_bs = 0; } else { if ( 0 != pSpar_md_cfg->gen_bs ) { pSpar_md_cfg->quant_strat_bits = ivas_get_bits_to_encode( MAX_QUANT_STRATS ); } } /* BLOCK: getEntropyCoderModels */ Loading @@ -2138,11 +2128,12 @@ void ivas_spar_set_bitrate_config( total_bits += (int16_t) ( ivas_spar_br_table_consts[table_idx].core_brs[i][0] / FRAMES_PER_SEC ); max_bits += (int16_t) ( ivas_spar_br_table_consts[table_idx].core_brs[i][1] / FRAMES_PER_SEC ); } pSpar_md_cfg->tgt_bits_per_blk = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC ) - IVAS_FORMAT_SIGNALING_NBITS_SBA - SBA_PLANAR_BITS - SBA_ORDER_BITS - length - total_bits; pSpar_md_cfg->tgt_bits_per_blk = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC ) - IVAS_FORMAT_SIGNALING_NBITS_SBA - SBA_PLANAR_BITS - SBA_ORDER_BITS - length - total_bits; pSpar_md_cfg->max_bits_per_blk = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC ) - IVAS_FORMAT_SIGNALING_NBITS_SBA - SBA_PLANAR_BITS - SBA_ORDER_BITS - length - max_bits; md_coding_bits_header = SPAR_NUM_CODING_STRAT_BITS + pSpar_md_cfg->quant_strat_bits; pSpar_md_cfg->tgt_bits_per_blk -= md_coding_bits_header; pSpar_md_cfg->max_bits_per_blk -= md_coding_bits_header; Loading @@ -2151,9 +2142,11 @@ 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; return; } #ifdef FIX_I1_113 /*-----------------------------------------------------------------------------------------* * Function ivas_spar_bitrate_dist() Loading
lib_com/ivas_stat_com.h +0 −1 Original line number Diff line number Diff line Loading @@ -229,7 +229,6 @@ typedef struct ivas_spar_md_com_cfg int16_t active_w; int16_t remix_unmix_order; ivas_quant_strat_t quant_strat[MAX_QUANT_STRATS]; int16_t gen_bs; int16_t quant_strat_bits; int16_t nchan_transport; int16_t num_quant_strats; Loading
lib_dec/ivas_spar_md_dec.c +164 −174 Original line number Diff line number Diff line Loading @@ -82,7 +82,9 @@ static void ivas_spar_md_fill_invalid_bands( ivas_spar_dec_matrices_t *pSpar_coe static ivas_error ivas_spar_set_dec_config( ivas_spar_md_dec_state_t *hMdDec, const int16_t nchan_transport, float *pFC ); static void ivas_parse_parameter_bitstream_dtx( ivas_spar_md_t *pSpar_md, Decoder_State *st, const int16_t bw, const int16_t num_bands, int16_t *num_dmx_per_band, int16_t *num_dec_per_band ); static ivas_error ivas_deindex_real_index( const int16_t *index, const int16_t q_levels, const float min_value, const float max_value, float *quant, const int16_t num_ch_dim2 ); static void ivas_spar_dec_parse_md_bs( ivas_spar_md_dec_state_t *hMdDec, Decoder_State *st, int16_t *nB, int16_t *bands_bw, int16_t *dtx_vad, const int32_t ivas_total_brate, const int16_t use_planar_coeff, const int16_t sba_inactive_mode ); Loading Loading @@ -440,8 +442,6 @@ ivas_error ivas_spar_md_dec_init( int16_t nchan_transport; float pFC[IVAS_MAX_NUM_BANDS], PR_minmax[2]; hMdDec->spar_md_cfg.gen_bs = 1; // VE2DB : always 1 - can it be removed? hMdDec->spar_md.num_bands = ( hMdDec->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); ivas_spar_set_bitrate_config( &hMdDec->spar_md_cfg, hMdDec->table_idx, hMdDec->spar_md.num_bands ); Loading Loading @@ -1431,19 +1431,19 @@ static void ivas_spar_dec_parse_md_bs( const int16_t sba_inactive_mode ) { int16_t i, j, k, num_bands; int16_t ii, jj, ndec, ndm, b, idx; uint16_t qsi; ivas_quant_strat_t qs; int16_t strat, freq_diff, no_ec; int16_t do_diff[IVAS_MAX_NUM_BANDS]; int16_t planarCP = 0; int16_t planarCP; float quant[IVAS_SPAR_MAX_C_COEFF]; *dtx_vad = 1; *bands_bw = 1; qsi = 0; num_bands = hMdDec->spar_md.num_bands; if ( hMdDec->spar_md_cfg.gen_bs == 1 ) { if ( ivas_total_brate > IVAS_SID_5k2 ) { if ( hMdDec->spar_md_cfg.quant_strat_bits > 0 ) Loading Loading @@ -1496,6 +1496,7 @@ static void ivas_spar_dec_parse_md_bs( } hMdDec->valid_bands[i] = 1; } for ( i = 0; i < num_bands; i++ ) { for ( j = 0; j < ( IVAS_SPAR_MAX_CH - IVAS_SPAR_MAX_DMX_CHS ); j++ ) Loading @@ -1507,10 +1508,8 @@ static void ivas_spar_dec_parse_md_bs( } } ivas_parse_parameter_bitstream_dtx( &hMdDec->spar_md, st0, *bands_bw, *nB, hMdDec->spar_md_cfg.num_dmx_chans_per_band, hMdDec->spar_md_cfg.num_decorr_per_band ); { int16_t ndec, b, idx; ivas_parse_parameter_bitstream_dtx( &hMdDec->spar_md, st0, *bands_bw, *nB, hMdDec->spar_md_cfg.num_dmx_chans_per_band, hMdDec->spar_md_cfg.num_decorr_per_band ); for ( i = *nB - 1; i >= 0; i-- ) { ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * i]; Loading @@ -1529,14 +1528,16 @@ static void ivas_spar_dec_parse_md_bs( hMdDec->valid_bands[idx] = 1; } } *nB = num_bands; *bands_bw = 1; } return; } qs = hMdDec->spar_md_cfg.quant_strat[qsi]; planarCP = 0; if ( ( qsi == 2 ) && ( use_planar_coeff ) ) { planarCP = 1; Loading @@ -1545,6 +1546,7 @@ static void ivas_spar_dec_parse_md_bs( #endif } strat = get_next_indice( st0, 3 ); #ifdef SPAR_HOA_DBG /*fprintf(stdout, "\n\n no_ec = %d, strat = %d\n", no_ec, strat);*/ #endif Loading Loading @@ -1598,10 +1600,9 @@ static void ivas_spar_dec_parse_md_bs( for ( i = 0; i < *nB; i++ ) { int16_t ii, jj; int16_t ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * i]; int16_t ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[( *bands_bw ) * i]; float quant[IVAS_SPAR_MAX_C_COEFF]; ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * i]; ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[( *bands_bw ) * i]; ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].pred_index_re, qs.PR.q_levels[0], qs.PR.min, qs.PR.max, hMdDec->spar_md.band_coeffs[i].pred_re, ndm + ndec - 1 ); j = 0; Loading @@ -1613,7 +1614,9 @@ static void ivas_spar_dec_parse_md_bs( j++; } } ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].drct_index_re, qs.C.q_levels[0], qs.C.min, qs.C.max, quant, ndec * ( ndm - 1 ) ); j = 0; for ( ii = 0; ii < ndec; ii++ ) { Loading @@ -1623,7 +1626,9 @@ static void ivas_spar_dec_parse_md_bs( j++; } } ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].decd_index_re, qs.P_r.q_levels[0], qs.P_r.min, qs.P_r.max, hMdDec->spar_md.band_coeffs[i].P_re, ndm + ndec - 1 ); /* Store prior coefficient indices */ for ( j = 0; j < ndm + ndec - 1; j++ ) { Loading @@ -1639,18 +1644,7 @@ static void ivas_spar_dec_parse_md_bs( } hMdDec->valid_bands[i] |= ( do_diff[i] == 0 ) ? 1 : 0; } } else { *dtx_vad = hMdDec->spar_md.dtx_vad; *nB = num_bands; *bands_bw = num_bands / *nB; for ( i = 0; i < *nB; i++ ) { hMdDec->valid_bands[i] = 1; } } #ifdef SPAR_HOA_DBG int16_t b; b = 0; Loading Loading @@ -1743,14 +1737,14 @@ static void ivas_decode_arith_bs( const int16_t freq_diff, const int16_t planarCP ) { int16_t i, ndm, ndec; int16_t i, j, ndm, ndec; ivas_cell_dim_t pred_cell_dims[IVAS_MAX_NUM_BANDS]; ivas_cell_dim_t drct_cell_dims[IVAS_MAX_NUM_BANDS]; ivas_cell_dim_t decd_cell_dims[IVAS_MAX_NUM_BANDS]; ivas_cell_dim_t decx_cell_dims[IVAS_MAX_NUM_BANDS]; int16_t symbol_arr_re[IVAS_MAX_INPUT_LEN]; int16_t symbol_arr_old_re[IVAS_MAX_INPUT_LEN]; int16_t any_diff = 0; int16_t any_diff; for ( i = 0; i < nB; i++ ) { Loading @@ -1774,6 +1768,7 @@ static void ivas_decode_arith_bs( decx_cell_dims[i].dim2 = 1; } any_diff = 0; for ( i = 0; i < nB; i++ ) { if ( pDo_diff[i] != 0 ) Loading @@ -1787,7 +1782,6 @@ static void ivas_decode_arith_bs( { if ( hMdDec->spar_hoa_md_flag ) { int16_t j; for ( i = 0; i < nB; i++ ) { if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) Loading @@ -1810,7 +1804,6 @@ static void ivas_decode_arith_bs( if ( hMdDec->spar_hoa_md_flag ) { int16_t j; for ( i = 0; i < nB; i++ ) { if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) Loading Loading @@ -2063,12 +2056,11 @@ static void ivas_decode_huffman_bs( const int16_t planarCP ) { int16_t i, j; for ( i = 0; i < nB; i++ ) { int16_t ndm, ndec; int16_t pred_dim, drct_dim, decd_dim, pred_offset; for ( i = 0; i < nB; i++ ) { ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[bands_bw * i]; ndec = hMdDec->spar_md_cfg.num_decorr_per_band[bands_bw * i]; Loading @@ -2086,8 +2078,7 @@ static void ivas_decode_huffman_bs( for ( j = pred_offset; j < pred_dim; j++ ) { ivas_huffman_decode( &hMdDec->huff_coeffs.pred_huff_re[qsi], st0, &hMdDec->spar_md.band_coeffs_idx[i].pred_index_re[j] ); ivas_huffman_decode( &hMdDec->huff_coeffs.pred_huff_re[qsi], st0, &hMdDec->spar_md.band_coeffs_idx[i].pred_index_re[j] ); } if ( hMdDec->spar_hoa_md_flag ) Loading @@ -2109,8 +2100,7 @@ static void ivas_decode_huffman_bs( } else { ivas_huffman_decode( &hMdDec->huff_coeffs.drct_huff_re[qsi], st0, &hMdDec->spar_md.band_coeffs_idx[i].drct_index_re[j] ); ivas_huffman_decode( &hMdDec->huff_coeffs.drct_huff_re[qsi], st0, &hMdDec->spar_md.band_coeffs_idx[i].drct_index_re[j] ); } } Loading @@ -2122,8 +2112,7 @@ static void ivas_decode_huffman_bs( } else { ivas_huffman_decode( &hMdDec->huff_coeffs.decd_huff_re[qsi], st0, &hMdDec->spar_md.band_coeffs_idx[i].decd_index_re[j] ); ivas_huffman_decode( &hMdDec->huff_coeffs.decd_huff_re[qsi], st0, &hMdDec->spar_md.band_coeffs_idx[i].decd_index_re[j] ); } } } Loading Loading @@ -2347,6 +2336,7 @@ static void ivas_spar_unquant_dtx_indicies( pr_min_max[0] = pSpar_md->min_max[0]; pr_min_max[1] = pSpar_md->min_max[1]; for ( b = 0; b < nB; b++ ) { for ( i = 0; i < FOA_CHANNELS - 1; i++ ) Loading Loading @@ -2384,7 +2374,7 @@ static void ivas_parse_parameter_bitstream_dtx( int16_t *num_dmx_per_band, int16_t *num_dec_per_band ) { int16_t i, j; int16_t i, j, ndec, ndm; float val; int16_t idx; float pr_min_max[2]; Loading @@ -2397,8 +2387,8 @@ static void ivas_parse_parameter_bitstream_dtx( for ( i = 0; i < num_bands; i++ ) { int16_t ndec = num_dec_per_band[bw * i]; int16_t ndm = num_dmx_per_band[bw * i]; ndec = num_dec_per_band[bw * i]; ndm = num_dmx_per_band[bw * i]; for ( j = 0; j < FOA_CHANNELS - 1; j++ ) { Loading
lib_enc/ivas_spar_md_enc.c +1 −23 Original line number Diff line number Diff line Loading @@ -324,7 +324,6 @@ static ivas_error ivas_spar_md_enc_init( table_idx = ivas_get_spar_table_idx( hEncoderConfig->ivas_total_brate, sba_order, SPAR_CONFIG_BW, NULL, NULL ); hMdEnc->spar_md_cfg.gen_bs = 1; ivas_spar_set_bitrate_config( &hMdEnc->spar_md_cfg, table_idx, ( hMdEnc->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : SPAR_DIRAC_SPLIT_START_BAND ); /* get FB coefficients */ Loading @@ -334,19 +333,6 @@ static ivas_error ivas_spar_md_enc_init( } ivas_spar_set_enc_config( hMdEnc, hMdEnc->spar_md_cfg.max_freq_per_chan, hMdEnc->spar_md_cfg.nchan_transport, pFC, num_channels ); /* if(hMdEnc->spar_md_cfg.quant_strat[0].C.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].C.q_levels[1] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].PR.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].PR.q_levels[1] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].P_c.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].P_c.q_levels[1] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].P_r.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].P_r.q_levels[1] == 0) { hMdEnc->spar_md_cfg.gen_bs = 0; } else if(0 != hMdEnc->spar_md_cfg.gen_bs) { hMdEnc->spar_md_cfg.quant_strat_bits = ivas_get_bits_to_encode(MAX_QUANT_STRATS); } */ if ( hMdEnc->spar_md_cfg.nchan_transport != 2 && ( ( hMdEnc->spar_md_cfg.remix_unmix_order == 1 ) || ( hMdEnc->spar_md_cfg.remix_unmix_order == 2 ) ) ) { Loading Loading @@ -885,11 +871,6 @@ ivas_error ivas_spar_md_enc_process( ivas_band_mixing( hMdEnc, num_ch, num_bands, nchan_transport, num_bands_full ); } if ( hMdEnc->spar_md_cfg.gen_bs == 0 ) { break; } if ( dtx_vad == 0 ) { ivas_write_parameter_bitstream_dtx( &hMdEnc->spar_md, hMetaData, hMdEnc->spar_md_cfg.num_dmx_chans_per_band, hMdEnc->spar_md_cfg.num_decorr_per_band, num_bands ); Loading Loading @@ -1110,10 +1091,7 @@ ivas_error ivas_spar_md_enc_process( fclose( fp ); #endif if ( hMdEnc->spar_md_cfg.gen_bs == 1 ) { ivas_store_prior_coeffs( hMdEnc, num_bands, bands_bw, code_strat, dtx_vad, qsi ); } hMdEnc->spar_md.dtx_vad = dtx_vad; hMdEnc->spar_md.num_bands = num_bands; Loading