Context derivation for CABAC.
More...
#include "cabac.h"
#include "encoderstate.h"
#include "global.h"
Go to the source code of this file.
|
void | kvz_ctx_init (cabac_ctx_t *ctx, uint32_t qp, uint32_t init_value) |
| Initialize struct cabac_ctx.
|
|
void | kvz_init_contexts (encoder_state_t *state, int8_t QP, int8_t slice) |
| Initialize cabac context to be used for coding.
|
|
void | kvz_context_copy (encoder_state_t *target_state, const encoder_state_t *source_state) |
|
int32_t | kvz_context_calc_pattern_sig_ctx (const uint32_t *sig_coeff_group_flag, uint32_t pos_x, uint32_t pos_y, int32_t width) |
| Pattern decision for context derivation process of significant_coeff_flag.
|
|
uint32_t | kvz_context_get_sig_coeff_group (uint32_t *sig_coeff_group_flag, uint32_t pos_x, uint32_t pos_y, int32_t width) |
|
int32_t | kvz_context_get_sig_ctx_inc (int32_t pattern_sig_ctx, uint32_t scan_idx, int32_t pos_x, int32_t pos_y, int32_t block_type, int8_t texture_type) |
| Context derivation process of coeff_abs_significant_flag.
|
|
◆ CNU
◆ kvz_context_calc_pattern_sig_ctx()
- Parameters
-
sig_coeff_group_flag | pointer to prior coded significant coeff group |
pos_x | column of current coefficient group |
pos_y | row of current coefficient group |
width | width of the block |
- Returns
- pattern for current coefficient group
◆ kvz_context_copy()
◆ kvz_context_get_sig_coeff_group()
◆ kvz_context_get_sig_ctx_inc()
- Parameters
-
pattern_sig_ctx | pattern for current coefficient group |
scan_idx | pixel scan type in use |
pos_x | column of current scan position |
pos_y | row of current scan position |
block_type | log2 value of block size if square block, or 4 otherwise |
width | width of the block |
texture_type | texture type (TEXT_LUMA...) |
- Returns
- ctx_inc for current scan position
◆ kvz_ctx_init()
◆ kvz_init_contexts()
- Parameters
-
encoder | encoder control struct |
slice | type of slice we are coding (P/B/I) |