Example #1
0
/**
 * \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 {
Example #2
0
/**
 * \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 {