Loading lib_com/ivas_entropy_coder_common.c +47 −40 Original line number Diff line number Diff line Loading @@ -95,13 +95,16 @@ void ivas_get_cum_freq_model( return; } /*-----------------------------------------------------------------------------------------* * Function ivas_map_num_pred_r_to_idx() * * Map the ivas_arith_pred_r_consts and ivas_huff_pred_r_consts tables *-----------------------------------------------------------------------------------------*/ int16_t ivas_map_num_pred_r_to_idx( const int16_t num_quant_points_pred_r, const int16_t active_w_flag ) int16_t ivas_map_num_pred_r_to_idx( const int16_t num_quant_points_pred_r, const int16_t active_w_flag ) { int16_t pred_r_to_idx = -1; if ( active_w_flag == 0 ) Loading Loading @@ -146,16 +149,19 @@ int16_t ivas_map_num_pred_r_to_idx( const int16_t num_quant_points_pred_r, const break; } } return pred_r_to_idx; } /*-----------------------------------------------------------------------------------------* * Function ivas_map_num_drct_r_to_idx() * * Map the ivas_arith_drct_r_consts and ivas_huff_drct_r_consts tables *-----------------------------------------------------------------------------------------*/ int16_t ivas_map_num_drct_r_to_idx( const int16_t num_quant_points_drct_r ) int16_t ivas_map_num_drct_r_to_idx( const int16_t num_quant_points_drct_r ) { int16_t drct_r_to_idx = -1; switch ( num_quant_points_drct_r ) Loading @@ -179,13 +185,15 @@ int16_t ivas_map_num_drct_r_to_idx( const int16_t num_quant_points_drct_r ) return drct_r_to_idx; } /*-----------------------------------------------------------------------------------------* * Function ivas_map_num_decd_r_to_idx() * * Map the ivas_arith_decd_r_consts and ivas_huff_decd_r_consts tables *-----------------------------------------------------------------------------------------*/ int16_t ivas_map_num_decd_r_to_idx( const int16_t num_quant_points_decd_r ) int16_t ivas_map_num_decd_r_to_idx( const int16_t num_quant_points_decd_r ) { int16_t decd_r_to_idx = -1; switch ( num_quant_points_decd_r ) Loading @@ -212,9 +220,11 @@ int16_t ivas_map_num_decd_r_to_idx( const int16_t num_quant_points_decd_r ) assert( "Forbidden value for DECD quantization strategy index" ); break; } return decd_r_to_idx; } /*---------------------------------------------------------------------------------------- - * * Function ivas_spar_arith_com_init() * Loading @@ -226,15 +236,17 @@ static void ivas_spar_arith_com_init( const ivas_freq_models_t *pFreq_models, ivas_arith_t *pArith_diff, const int16_t q_levels, int16_t codec_mode ) const int16_t enc_dec ) { int16_t i, j; float sum; pArith->vals = pFreq_models->vals; pArith->range = q_levels; pArith->num_models = pFreq_models->num_models; pArith->dyn_model_bits = ivas_get_bits_to_encode( pArith->num_models - 1 ); pArith->pFreq_model = pFreq_models->freq_model[0]; ivas_get_cum_freq_model( pArith->pFreq_model, pArith->range, pArith->cum_freq[0] ); for ( i = 0; i < pArith->num_models - 1; i++ ) Loading @@ -243,9 +255,9 @@ static void ivas_spar_arith_com_init( ivas_get_cum_freq_model( pArith->pAlt_freq_models[i], pArith->range, pArith->cum_freq[i + 1] ); } if ( codec_mode == ENC ) if ( enc_dec == ENC ) { float sum = 0; sum = 0; for ( i = 1; i < pArith->range + 1; i++ ) { sum += pArith->pFreq_model[i]; Loading @@ -260,7 +272,6 @@ static void ivas_spar_arith_com_init( for ( j = 0; j < pArith->num_models - 1; j++ ) { sum = 0; for ( i = 1; i < pArith->range + 1; i++ ) { sum += pArith->pAlt_freq_models[j][i]; Loading @@ -279,6 +290,7 @@ static void ivas_spar_arith_com_init( pArith_diff->num_models = pFreq_models->diff_num_models; pArith_diff->dyn_model_bits = ivas_get_bits_to_encode( pArith_diff->num_models - 1 ); pArith_diff->pFreq_model = pFreq_models->diff_freq_model[0]; ivas_get_cum_freq_model( pArith_diff->pFreq_model, pArith_diff->range, pArith_diff->cum_freq[0] ); for ( i = 0; i < pArith_diff->num_models - 1; i++ ) Loading @@ -287,9 +299,9 @@ static void ivas_spar_arith_com_init( ivas_get_cum_freq_model( pArith_diff->pAlt_freq_models[i], pArith_diff->range, pArith_diff->cum_freq[i + 1] ); } if ( codec_mode == ENC ) if ( enc_dec == ENC ) { float sum = 0; sum = 0; for ( i = 1; i < pArith_diff->range + 1; i++ ) { sum += pArith_diff->pFreq_model[i]; Loading @@ -304,7 +316,6 @@ static void ivas_spar_arith_com_init( for ( j = 0; j < pArith_diff->num_models - 1; j++ ) { sum = 0; for ( i = 1; i < pArith_diff->range + 1; i++ ) { sum += pArith_diff->pAlt_freq_models[j][i]; Loading @@ -321,53 +332,50 @@ static void ivas_spar_arith_com_init( return; } /*-----------------------------------------------------------------------------------------* * Function ivas_spar_arith_coeffs_com_init() * * Init for Arithm. coding *-----------------------------------------------------------------------------------------*/ void ivas_spar_arith_coeffs_com_init( ivas_arith_coeffs_t *pArith_coeffs, ivas_spar_md_com_cfg *pSpar_cfg, const int16_t table_idx, int16_t codec_mode ) const int16_t enc_dec ) { int16_t i; int16_t pred_r_index, drct_r_index, decd_r_index; int16_t num_quant_points_pred_r; int16_t num_quant_points_drct_r; int16_t num_quant_points_decd_r; int16_t i, pred_r_index, drct_r_index, decd_r_index; int16_t num_quant_points_pred_r, num_quant_points_drct_r, num_quant_points_decd_r; for ( i = 0; i < MAX_QUANT_STRATS; i++ ) { num_quant_points_pred_r = ivas_spar_br_table_consts[table_idx].q_lvls[i][0]; // 0: pred_r pred_r_index = ivas_map_num_pred_r_to_idx( num_quant_points_pred_r, ivas_spar_br_table_consts[table_idx].active_w ); num_quant_points_pred_r = ivas_spar_br_table_consts[table_idx].q_lvls[i][0]; /* 0: pred_r */ pred_r_index = ivas_map_num_pred_r_to_idx( num_quant_points_pred_r, ivas_spar_br_table_consts[table_idx].active_w ); ivas_spar_arith_com_init( &pArith_coeffs->pred_arith_re[i], &ivas_arith_pred_r_consts[pred_r_index], &pArith_coeffs->pred_arith_re_diff[i], pSpar_cfg->quant_strat[i].PR.q_levels[0], codec_mode ); &pArith_coeffs->pred_arith_re_diff[i], pSpar_cfg->quant_strat[i].PR.q_levels[0], enc_dec ); num_quant_points_drct_r = ivas_spar_br_table_consts[table_idx].q_lvls[i][1]; // 1: drct_r num_quant_points_drct_r = ivas_spar_br_table_consts[table_idx].q_lvls[i][1]; /* 1: drct_r */ drct_r_index = ivas_map_num_drct_r_to_idx( num_quant_points_drct_r ); ivas_spar_arith_com_init( &pArith_coeffs->drct_arith_re[i], &ivas_arith_drct_r_consts[drct_r_index], &pArith_coeffs->drct_arith_re_diff[i], pSpar_cfg->quant_strat[i].C.q_levels[0], codec_mode ); &pArith_coeffs->drct_arith_re_diff[i], pSpar_cfg->quant_strat[i].C.q_levels[0], enc_dec ); num_quant_points_decd_r = ivas_spar_br_table_consts[table_idx].q_lvls[i][2]; // 2: decd_r num_quant_points_decd_r = ivas_spar_br_table_consts[table_idx].q_lvls[i][2]; /* 2: decd_r */ decd_r_index = ivas_map_num_decd_r_to_idx( num_quant_points_decd_r ); ivas_spar_arith_com_init( &pArith_coeffs->decd_arith_re[i], &ivas_arith_decd_r_consts[decd_r_index], &pArith_coeffs->decd_arith_re_diff[i], pSpar_cfg->quant_strat[i].P_r.q_levels[0], codec_mode ); &pArith_coeffs->decd_arith_re_diff[i], pSpar_cfg->quant_strat[i].P_r.q_levels[0], enc_dec ); } return; } /*-----------------------------------------------------------------------------------------* * Function ivas_huffman_dec_init_min_max_len() * * Find min and max length in codebook and finalize initialization of ivas_huffman_cfg_t. *-----------------------------------------------------------------------------------------*/ static void ivas_huffman_dec_init_min_max_len( ivas_huffman_cfg_t *p_huff_cfg ) { Loading Loading @@ -396,51 +404,50 @@ static void ivas_huffman_dec_init_min_max_len( return; } /*-----------------------------------------------------------------------------------------* * Function ivas_spar_huff_coeffs_com_init() * * Init for Huffman decoding *-----------------------------------------------------------------------------------------*/ void ivas_spar_huff_coeffs_com_init( ivas_huff_coeffs_t *pHuff_coeffs, ivas_spar_md_com_cfg *pSpar_cfg, const int16_t table_idx, int16_t codec_mode ) const int16_t enc_dec ) { int16_t i; int16_t pred_r_index, drct_r_index, decd_r_index; int16_t num_quant_points_pred_r; int16_t num_quant_points_drct_r; int16_t num_quant_points_decd_r; int16_t i, pred_r_index, drct_r_index, decd_r_index; int16_t num_quant_points_pred_r, num_quant_points_drct_r, num_quant_points_decd_r; ivas_huffman_cfg_t *p_huff_cfg; for ( i = 0; i < MAX_QUANT_STRATS; i++ ) { p_huff_cfg = &pHuff_coeffs->pred_huff_re[i]; num_quant_points_pred_r = ivas_spar_br_table_consts[table_idx].q_lvls[i][0]; // 0: pred_r num_quant_points_pred_r = ivas_spar_br_table_consts[table_idx].q_lvls[i][0]; /* 0: pred_r */ pred_r_index = ivas_map_num_pred_r_to_idx( num_quant_points_pred_r, 0 ); p_huff_cfg->codebook = &ivas_huff_pred_r_consts[pred_r_index].code_book[0][0]; if ( codec_mode == DEC ) if ( enc_dec == DEC ) { p_huff_cfg->sym_len = pSpar_cfg->quant_strat[i].PR.q_levels[0]; ivas_huffman_dec_init_min_max_len( p_huff_cfg ); } p_huff_cfg = &pHuff_coeffs->drct_huff_re[i]; num_quant_points_drct_r = ivas_spar_br_table_consts[table_idx].q_lvls[i][1]; // 1: drct_r num_quant_points_drct_r = ivas_spar_br_table_consts[table_idx].q_lvls[i][1]; /* 1: drct_r */ drct_r_index = ivas_map_num_drct_r_to_idx( num_quant_points_drct_r ); p_huff_cfg->codebook = &ivas_huff_drct_r_consts[drct_r_index].code_book[0][0]; if ( codec_mode == DEC ) if ( enc_dec == DEC ) { p_huff_cfg->sym_len = pSpar_cfg->quant_strat[i].C.q_levels[0]; ivas_huffman_dec_init_min_max_len( p_huff_cfg ); } p_huff_cfg = &pHuff_coeffs->decd_huff_re[i]; num_quant_points_decd_r = ivas_spar_br_table_consts[table_idx].q_lvls[i][2]; // 2: decd_r num_quant_points_decd_r = ivas_spar_br_table_consts[table_idx].q_lvls[i][2]; /* 2: decd_r */ decd_r_index = ivas_map_num_decd_r_to_idx( num_quant_points_decd_r ); p_huff_cfg->codebook = &ivas_huff_decd_r_consts[decd_r_index].code_book[0][0]; if ( codec_mode == DEC ) if ( enc_dec == DEC ) { p_huff_cfg->sym_len = pSpar_cfg->quant_strat[i].P_r.q_levels[0]; ivas_huffman_dec_init_min_max_len( p_huff_cfg ); Loading lib_com/ivas_prot.h +2 −2 Original line number Diff line number Diff line Loading @@ -4201,8 +4201,8 @@ int16_t ivas_get_bits_to_encode( ); void ivas_huffman_encode( ivas_huffman_cfg_t *huff_cfg, int16_t in, int16_t *hcode, int16_t *hlen ); void ivas_spar_huff_coeffs_com_init( ivas_huff_coeffs_t *pHuff_coeffs, ivas_spar_md_com_cfg *pSpar_cfg, const int16_t table_idx, int16_t codec_mode ); void ivas_spar_arith_coeffs_com_init( ivas_arith_coeffs_t *pArith_coeffs, ivas_spar_md_com_cfg *pSpar_cfg, const int16_t table_idx, int16_t codec_mode ); void ivas_spar_huff_coeffs_com_init( ivas_huff_coeffs_t *pHuff_coeffs, ivas_spar_md_com_cfg *pSpar_cfg, const int16_t table_idx, const int16_t enc_dec ); void ivas_spar_arith_coeffs_com_init( ivas_arith_coeffs_t *pArith_coeffs, ivas_spar_md_com_cfg *pSpar_cfg, const int16_t table_idx, const int16_t enc_dec ); void ivas_arith_encode_cmplx_cell_array(ivas_arith_t *pArith_re, ivas_arith_t *pArith_re_diff, const int16_t *pDo_diff, const int16_t nB, int16_t *pSymbol_re, int16_t *pSymbol_old_re, ivas_cell_dim_t *pCell_dims, BSTR_ENC_HANDLE hMetaData, const int16_t any_diff); ivas_error ivas_huffman_decode( ivas_huffman_cfg_t *huff_cfg, Decoder_State *st0, int16_t *dec_out ); void ivas_arith_decode_cmplx_cell_array( ivas_arith_t *pArith_re, ivas_arith_t *pArith_re_diff, Decoder_State *st0, ivas_cell_dim_t *pCell_dims, int16_t *pDo_diff, const int16_t nB, int16_t *pSymbol_re, int16_t *pSymbol_re_old ); Loading Loading
lib_com/ivas_entropy_coder_common.c +47 −40 Original line number Diff line number Diff line Loading @@ -95,13 +95,16 @@ void ivas_get_cum_freq_model( return; } /*-----------------------------------------------------------------------------------------* * Function ivas_map_num_pred_r_to_idx() * * Map the ivas_arith_pred_r_consts and ivas_huff_pred_r_consts tables *-----------------------------------------------------------------------------------------*/ int16_t ivas_map_num_pred_r_to_idx( const int16_t num_quant_points_pred_r, const int16_t active_w_flag ) int16_t ivas_map_num_pred_r_to_idx( const int16_t num_quant_points_pred_r, const int16_t active_w_flag ) { int16_t pred_r_to_idx = -1; if ( active_w_flag == 0 ) Loading Loading @@ -146,16 +149,19 @@ int16_t ivas_map_num_pred_r_to_idx( const int16_t num_quant_points_pred_r, const break; } } return pred_r_to_idx; } /*-----------------------------------------------------------------------------------------* * Function ivas_map_num_drct_r_to_idx() * * Map the ivas_arith_drct_r_consts and ivas_huff_drct_r_consts tables *-----------------------------------------------------------------------------------------*/ int16_t ivas_map_num_drct_r_to_idx( const int16_t num_quant_points_drct_r ) int16_t ivas_map_num_drct_r_to_idx( const int16_t num_quant_points_drct_r ) { int16_t drct_r_to_idx = -1; switch ( num_quant_points_drct_r ) Loading @@ -179,13 +185,15 @@ int16_t ivas_map_num_drct_r_to_idx( const int16_t num_quant_points_drct_r ) return drct_r_to_idx; } /*-----------------------------------------------------------------------------------------* * Function ivas_map_num_decd_r_to_idx() * * Map the ivas_arith_decd_r_consts and ivas_huff_decd_r_consts tables *-----------------------------------------------------------------------------------------*/ int16_t ivas_map_num_decd_r_to_idx( const int16_t num_quant_points_decd_r ) int16_t ivas_map_num_decd_r_to_idx( const int16_t num_quant_points_decd_r ) { int16_t decd_r_to_idx = -1; switch ( num_quant_points_decd_r ) Loading @@ -212,9 +220,11 @@ int16_t ivas_map_num_decd_r_to_idx( const int16_t num_quant_points_decd_r ) assert( "Forbidden value for DECD quantization strategy index" ); break; } return decd_r_to_idx; } /*---------------------------------------------------------------------------------------- - * * Function ivas_spar_arith_com_init() * Loading @@ -226,15 +236,17 @@ static void ivas_spar_arith_com_init( const ivas_freq_models_t *pFreq_models, ivas_arith_t *pArith_diff, const int16_t q_levels, int16_t codec_mode ) const int16_t enc_dec ) { int16_t i, j; float sum; pArith->vals = pFreq_models->vals; pArith->range = q_levels; pArith->num_models = pFreq_models->num_models; pArith->dyn_model_bits = ivas_get_bits_to_encode( pArith->num_models - 1 ); pArith->pFreq_model = pFreq_models->freq_model[0]; ivas_get_cum_freq_model( pArith->pFreq_model, pArith->range, pArith->cum_freq[0] ); for ( i = 0; i < pArith->num_models - 1; i++ ) Loading @@ -243,9 +255,9 @@ static void ivas_spar_arith_com_init( ivas_get_cum_freq_model( pArith->pAlt_freq_models[i], pArith->range, pArith->cum_freq[i + 1] ); } if ( codec_mode == ENC ) if ( enc_dec == ENC ) { float sum = 0; sum = 0; for ( i = 1; i < pArith->range + 1; i++ ) { sum += pArith->pFreq_model[i]; Loading @@ -260,7 +272,6 @@ static void ivas_spar_arith_com_init( for ( j = 0; j < pArith->num_models - 1; j++ ) { sum = 0; for ( i = 1; i < pArith->range + 1; i++ ) { sum += pArith->pAlt_freq_models[j][i]; Loading @@ -279,6 +290,7 @@ static void ivas_spar_arith_com_init( pArith_diff->num_models = pFreq_models->diff_num_models; pArith_diff->dyn_model_bits = ivas_get_bits_to_encode( pArith_diff->num_models - 1 ); pArith_diff->pFreq_model = pFreq_models->diff_freq_model[0]; ivas_get_cum_freq_model( pArith_diff->pFreq_model, pArith_diff->range, pArith_diff->cum_freq[0] ); for ( i = 0; i < pArith_diff->num_models - 1; i++ ) Loading @@ -287,9 +299,9 @@ static void ivas_spar_arith_com_init( ivas_get_cum_freq_model( pArith_diff->pAlt_freq_models[i], pArith_diff->range, pArith_diff->cum_freq[i + 1] ); } if ( codec_mode == ENC ) if ( enc_dec == ENC ) { float sum = 0; sum = 0; for ( i = 1; i < pArith_diff->range + 1; i++ ) { sum += pArith_diff->pFreq_model[i]; Loading @@ -304,7 +316,6 @@ static void ivas_spar_arith_com_init( for ( j = 0; j < pArith_diff->num_models - 1; j++ ) { sum = 0; for ( i = 1; i < pArith_diff->range + 1; i++ ) { sum += pArith_diff->pAlt_freq_models[j][i]; Loading @@ -321,53 +332,50 @@ static void ivas_spar_arith_com_init( return; } /*-----------------------------------------------------------------------------------------* * Function ivas_spar_arith_coeffs_com_init() * * Init for Arithm. coding *-----------------------------------------------------------------------------------------*/ void ivas_spar_arith_coeffs_com_init( ivas_arith_coeffs_t *pArith_coeffs, ivas_spar_md_com_cfg *pSpar_cfg, const int16_t table_idx, int16_t codec_mode ) const int16_t enc_dec ) { int16_t i; int16_t pred_r_index, drct_r_index, decd_r_index; int16_t num_quant_points_pred_r; int16_t num_quant_points_drct_r; int16_t num_quant_points_decd_r; int16_t i, pred_r_index, drct_r_index, decd_r_index; int16_t num_quant_points_pred_r, num_quant_points_drct_r, num_quant_points_decd_r; for ( i = 0; i < MAX_QUANT_STRATS; i++ ) { num_quant_points_pred_r = ivas_spar_br_table_consts[table_idx].q_lvls[i][0]; // 0: pred_r pred_r_index = ivas_map_num_pred_r_to_idx( num_quant_points_pred_r, ivas_spar_br_table_consts[table_idx].active_w ); num_quant_points_pred_r = ivas_spar_br_table_consts[table_idx].q_lvls[i][0]; /* 0: pred_r */ pred_r_index = ivas_map_num_pred_r_to_idx( num_quant_points_pred_r, ivas_spar_br_table_consts[table_idx].active_w ); ivas_spar_arith_com_init( &pArith_coeffs->pred_arith_re[i], &ivas_arith_pred_r_consts[pred_r_index], &pArith_coeffs->pred_arith_re_diff[i], pSpar_cfg->quant_strat[i].PR.q_levels[0], codec_mode ); &pArith_coeffs->pred_arith_re_diff[i], pSpar_cfg->quant_strat[i].PR.q_levels[0], enc_dec ); num_quant_points_drct_r = ivas_spar_br_table_consts[table_idx].q_lvls[i][1]; // 1: drct_r num_quant_points_drct_r = ivas_spar_br_table_consts[table_idx].q_lvls[i][1]; /* 1: drct_r */ drct_r_index = ivas_map_num_drct_r_to_idx( num_quant_points_drct_r ); ivas_spar_arith_com_init( &pArith_coeffs->drct_arith_re[i], &ivas_arith_drct_r_consts[drct_r_index], &pArith_coeffs->drct_arith_re_diff[i], pSpar_cfg->quant_strat[i].C.q_levels[0], codec_mode ); &pArith_coeffs->drct_arith_re_diff[i], pSpar_cfg->quant_strat[i].C.q_levels[0], enc_dec ); num_quant_points_decd_r = ivas_spar_br_table_consts[table_idx].q_lvls[i][2]; // 2: decd_r num_quant_points_decd_r = ivas_spar_br_table_consts[table_idx].q_lvls[i][2]; /* 2: decd_r */ decd_r_index = ivas_map_num_decd_r_to_idx( num_quant_points_decd_r ); ivas_spar_arith_com_init( &pArith_coeffs->decd_arith_re[i], &ivas_arith_decd_r_consts[decd_r_index], &pArith_coeffs->decd_arith_re_diff[i], pSpar_cfg->quant_strat[i].P_r.q_levels[0], codec_mode ); &pArith_coeffs->decd_arith_re_diff[i], pSpar_cfg->quant_strat[i].P_r.q_levels[0], enc_dec ); } return; } /*-----------------------------------------------------------------------------------------* * Function ivas_huffman_dec_init_min_max_len() * * Find min and max length in codebook and finalize initialization of ivas_huffman_cfg_t. *-----------------------------------------------------------------------------------------*/ static void ivas_huffman_dec_init_min_max_len( ivas_huffman_cfg_t *p_huff_cfg ) { Loading Loading @@ -396,51 +404,50 @@ static void ivas_huffman_dec_init_min_max_len( return; } /*-----------------------------------------------------------------------------------------* * Function ivas_spar_huff_coeffs_com_init() * * Init for Huffman decoding *-----------------------------------------------------------------------------------------*/ void ivas_spar_huff_coeffs_com_init( ivas_huff_coeffs_t *pHuff_coeffs, ivas_spar_md_com_cfg *pSpar_cfg, const int16_t table_idx, int16_t codec_mode ) const int16_t enc_dec ) { int16_t i; int16_t pred_r_index, drct_r_index, decd_r_index; int16_t num_quant_points_pred_r; int16_t num_quant_points_drct_r; int16_t num_quant_points_decd_r; int16_t i, pred_r_index, drct_r_index, decd_r_index; int16_t num_quant_points_pred_r, num_quant_points_drct_r, num_quant_points_decd_r; ivas_huffman_cfg_t *p_huff_cfg; for ( i = 0; i < MAX_QUANT_STRATS; i++ ) { p_huff_cfg = &pHuff_coeffs->pred_huff_re[i]; num_quant_points_pred_r = ivas_spar_br_table_consts[table_idx].q_lvls[i][0]; // 0: pred_r num_quant_points_pred_r = ivas_spar_br_table_consts[table_idx].q_lvls[i][0]; /* 0: pred_r */ pred_r_index = ivas_map_num_pred_r_to_idx( num_quant_points_pred_r, 0 ); p_huff_cfg->codebook = &ivas_huff_pred_r_consts[pred_r_index].code_book[0][0]; if ( codec_mode == DEC ) if ( enc_dec == DEC ) { p_huff_cfg->sym_len = pSpar_cfg->quant_strat[i].PR.q_levels[0]; ivas_huffman_dec_init_min_max_len( p_huff_cfg ); } p_huff_cfg = &pHuff_coeffs->drct_huff_re[i]; num_quant_points_drct_r = ivas_spar_br_table_consts[table_idx].q_lvls[i][1]; // 1: drct_r num_quant_points_drct_r = ivas_spar_br_table_consts[table_idx].q_lvls[i][1]; /* 1: drct_r */ drct_r_index = ivas_map_num_drct_r_to_idx( num_quant_points_drct_r ); p_huff_cfg->codebook = &ivas_huff_drct_r_consts[drct_r_index].code_book[0][0]; if ( codec_mode == DEC ) if ( enc_dec == DEC ) { p_huff_cfg->sym_len = pSpar_cfg->quant_strat[i].C.q_levels[0]; ivas_huffman_dec_init_min_max_len( p_huff_cfg ); } p_huff_cfg = &pHuff_coeffs->decd_huff_re[i]; num_quant_points_decd_r = ivas_spar_br_table_consts[table_idx].q_lvls[i][2]; // 2: decd_r num_quant_points_decd_r = ivas_spar_br_table_consts[table_idx].q_lvls[i][2]; /* 2: decd_r */ decd_r_index = ivas_map_num_decd_r_to_idx( num_quant_points_decd_r ); p_huff_cfg->codebook = &ivas_huff_decd_r_consts[decd_r_index].code_book[0][0]; if ( codec_mode == DEC ) if ( enc_dec == DEC ) { p_huff_cfg->sym_len = pSpar_cfg->quant_strat[i].P_r.q_levels[0]; ivas_huffman_dec_init_min_max_len( p_huff_cfg ); Loading
lib_com/ivas_prot.h +2 −2 Original line number Diff line number Diff line Loading @@ -4201,8 +4201,8 @@ int16_t ivas_get_bits_to_encode( ); void ivas_huffman_encode( ivas_huffman_cfg_t *huff_cfg, int16_t in, int16_t *hcode, int16_t *hlen ); void ivas_spar_huff_coeffs_com_init( ivas_huff_coeffs_t *pHuff_coeffs, ivas_spar_md_com_cfg *pSpar_cfg, const int16_t table_idx, int16_t codec_mode ); void ivas_spar_arith_coeffs_com_init( ivas_arith_coeffs_t *pArith_coeffs, ivas_spar_md_com_cfg *pSpar_cfg, const int16_t table_idx, int16_t codec_mode ); void ivas_spar_huff_coeffs_com_init( ivas_huff_coeffs_t *pHuff_coeffs, ivas_spar_md_com_cfg *pSpar_cfg, const int16_t table_idx, const int16_t enc_dec ); void ivas_spar_arith_coeffs_com_init( ivas_arith_coeffs_t *pArith_coeffs, ivas_spar_md_com_cfg *pSpar_cfg, const int16_t table_idx, const int16_t enc_dec ); void ivas_arith_encode_cmplx_cell_array(ivas_arith_t *pArith_re, ivas_arith_t *pArith_re_diff, const int16_t *pDo_diff, const int16_t nB, int16_t *pSymbol_re, int16_t *pSymbol_old_re, ivas_cell_dim_t *pCell_dims, BSTR_ENC_HANDLE hMetaData, const int16_t any_diff); ivas_error ivas_huffman_decode( ivas_huffman_cfg_t *huff_cfg, Decoder_State *st0, int16_t *dec_out ); void ivas_arith_decode_cmplx_cell_array( ivas_arith_t *pArith_re, ivas_arith_t *pArith_re_diff, Decoder_State *st0, ivas_cell_dim_t *pCell_dims, int16_t *pDo_diff, const int16_t nB, int16_t *pSymbol_re, int16_t *pSymbol_re_old ); Loading