Coding bins using CABAC.
More...
#include "global.h"
#include "bitstream.h"
Go to the source code of this file.
|
#define | CTX_ENTROPY_FBITS(ctx, val) kvz_f_entropy_bits[(ctx)->uc_state ^ (val)] |
|
#define | CABAC_FBITS_UPDATE(cabac, ctx, val, bits, name) |
|
#define | CTX_STATE(ctx) ((ctx)->uc_state >> 1) |
|
#define | CTX_MPS(ctx) ((ctx)->uc_state & 1) |
|
#define | CTX_UPDATE_LPS(ctx) { (ctx)->uc_state = kvz_g_auc_next_state_lps[ (ctx)->uc_state ]; } |
|
#define | CTX_UPDATE_MPS(ctx) { (ctx)->uc_state = kvz_g_auc_next_state_mps[ (ctx)->uc_state ]; } |
|
#define | CABAC_BIN(data, value, name) kvz_cabac_encode_bin((data), (value)); |
|
#define | CABAC_BINS_EP(data, value, bins, name) kvz_cabac_encode_bins_ep((data), (value), (bins)); |
|
#define | CABAC_BIN_EP(data, value, name) kvz_cabac_encode_bin_ep((data), (value)); |
|
|
void | kvz_cabac_start (cabac_data_t *data) |
| Initialize struct cabac_data. More...
|
|
void | kvz_cabac_encode_bin (cabac_data_t *data, uint32_t bin_value) |
|
void | kvz_cabac_encode_bin_ep (cabac_data_t *data, uint32_t bin_value) |
|
void | kvz_cabac_encode_bins_ep (cabac_data_t *data, uint32_t bin_values, int num_bins) |
|
void | kvz_cabac_encode_bin_trm (cabac_data_t *data, uint8_t bin_value) |
| Encode terminating bin. More...
|
|
void | kvz_cabac_write (cabac_data_t *data) |
|
void | kvz_cabac_finish (cabac_data_t *data) |
|
int | kvz_cabac_write_coeff_remain (cabac_data_t *cabac, uint32_t symbol, uint32_t r_param) |
| Coding of coeff_abs_level_minus3. More...
|
|
void | kvz_cabac_write_coeff_remain_encry (struct encoder_state_t *const state, cabac_data_t *const cabac, const uint32_t symbol, const uint32_t r_param, int32_t base_level) |
|
uint32_t | kvz_cabac_write_ep_ex_golomb (struct encoder_state_t *const state, cabac_data_t *data, uint32_t symbol, uint32_t count) |
|
void | kvz_cabac_write_unary_max_symbol (cabac_data_t *data, cabac_ctx_t *ctx, uint32_t symbol, int32_t offset, uint32_t max_symbol, double *bits_out) |
|
void | kvz_cabac_write_unary_max_symbol_ep (cabac_data_t *data, unsigned int symbol, unsigned int max_symbol) |
| This can be used for Truncated Rice binarization with cRiceParam=0. More...
|
|
◆ CABAC_BIN
◆ CABAC_BIN_EP
◆ CABAC_BINS_EP
◆ CABAC_FBITS_UPDATE
#define CABAC_FBITS_UPDATE |
( |
|
cabac, |
|
|
|
ctx, |
|
|
|
val, |
|
|
|
bits, |
|
|
|
name |
|
) |
| |
Value: do { \
if((cabac)->update) {\
(cabac)->cur_ctx = ctx;\
CABAC_BIN((cabac), (val), (name));\
} \
} while(0)
const float kvz_f_entropy_bits[128]
Definition: rdo.c:83
◆ CTX_ENTROPY_FBITS
◆ CTX_MPS
#define CTX_MPS |
( |
|
ctx | ) |
((ctx)->uc_state & 1) |
◆ CTX_STATE
#define CTX_STATE |
( |
|
ctx | ) |
((ctx)->uc_state >> 1) |
◆ CTX_UPDATE_LPS
◆ CTX_UPDATE_MPS
◆ kvz_cabac_encode_bin()
void kvz_cabac_encode_bin |
( |
cabac_data_t * |
data, |
|
|
uint32_t |
bin_value |
|
) |
| |
◆ kvz_cabac_encode_bin_ep()
void kvz_cabac_encode_bin_ep |
( |
cabac_data_t * |
data, |
|
|
uint32_t |
bin_value |
|
) |
| |
◆ kvz_cabac_encode_bin_trm()
void kvz_cabac_encode_bin_trm |
( |
cabac_data_t *const |
data, |
|
|
const uint8_t |
bin_value |
|
) |
| |
◆ kvz_cabac_encode_bins_ep()
void kvz_cabac_encode_bins_ep |
( |
cabac_data_t * |
data, |
|
|
uint32_t |
bin_values, |
|
|
int |
num_bins |
|
) |
| |
◆ kvz_cabac_finish()
◆ kvz_cabac_start()
◆ kvz_cabac_write()
◆ kvz_cabac_write_coeff_remain()
int kvz_cabac_write_coeff_remain |
( |
cabac_data_t *const |
cabac, |
|
|
const uint32_t |
symbol, |
|
|
const uint32_t |
r_param |
|
) |
| |
- Parameters
-
symbol | Value of coeff_abs_level_minus3. |
r_param | Reference to Rice parameter. |
◆ kvz_cabac_write_coeff_remain_encry()
void kvz_cabac_write_coeff_remain_encry |
( |
struct encoder_state_t *const |
state, |
|
|
cabac_data_t *const |
cabac, |
|
|
const uint32_t |
symbol, |
|
|
const uint32_t |
r_param, |
|
|
int32_t |
base_level |
|
) |
| |
◆ kvz_cabac_write_ep_ex_golomb()
◆ kvz_cabac_write_unary_max_symbol()
void kvz_cabac_write_unary_max_symbol |
( |
cabac_data_t * |
data, |
|
|
cabac_ctx_t * |
ctx, |
|
|
uint32_t |
symbol, |
|
|
int32_t |
offset, |
|
|
uint32_t |
max_symbol, |
|
|
double * |
bits_out |
|
) |
| |
◆ kvz_cabac_write_unary_max_symbol_ep()
void kvz_cabac_write_unary_max_symbol_ep |
( |
cabac_data_t * |
data, |
|
|
unsigned int |
symbol, |
|
|
unsigned int |
max_symbol |
|
) |
| |
◆ kvz_f_entropy_bits
const float kvz_f_entropy_bits[128] |
|
extern |
◆ kvz_g_auc_lpst_table
const uint8_t kvz_g_auc_lpst_table[64][4] |
|
extern |
◆ kvz_g_auc_next_state_lps
const uint8_t kvz_g_auc_next_state_lps[128] |
|
extern |
◆ kvz_g_auc_next_state_mps
const uint8_t kvz_g_auc_next_state_mps[128] |
|
extern |
◆ kvz_g_auc_renorm_table
const uint8_t kvz_g_auc_renorm_table[32] |
|
extern |