/** * \brief */ void kvz_cabac_encode_bin(cabac_data_t * const data, const uint32_t bin_value) { uint32_t lps; lps = kvz_g_auc_lpst_table[CTX_STATE(data->cur_ctx)][(data->range >> 6) & 3]; data->range -= lps; // Not the Most Probable Symbol? if ((bin_value ? 1 : 0) != CTX_MPS(data->cur_ctx)) { int num_bits = kvz_g_auc_renorm_table[lps >> 3]; data->low = (data->low + data->range) << num_bits; data->range = lps << num_bits; CTX_UPDATE_LPS(data->cur_ctx); data->bits_left -= num_bits; } else {
/** * \brief */ void cabac_encode_bin(cabac_data *data, uint32_t bin_value) { uint32_t lps; data->ctx->bins_coded = 1; lps = g_auc_lpst_table[CTX_STATE(data->ctx)][(data->range >> 6) & 3]; data->range -= lps; // Not the Most Probable Symbol? if (bin_value != CTX_MPS(data->ctx)) { int num_bits = g_auc_renorm_table[lps >> 3]; data->low = (data->low + data->range) << num_bits; data->range = lps << num_bits; CTX_UPDATE_LPS(data->ctx); data->bits_left -= num_bits; } else {