12 #ifndef AOM_AV1_ENCODER_ENCODETXB_H_ 13 #define AOM_AV1_ENCODER_ENCODETXB_H_ 15 #include "config/aom_config.h" 17 #include "av1/common/av1_common_int.h" 18 #include "av1/common/blockd.h" 19 #include "av1/common/txb_common.h" 22 #include "aom_dsp/bitwriter.h" 28 #define TXB_SKIP_CTX_MASK 15 29 #define DC_SIGN_CTX_SHIFT 4 30 #define DC_SIGN_CTX_MASK 3 32 int av1_get_eob_pos_token(
const int eob,
int *
const extra);
90 aom_writer *w,
int blk_row,
int blk_col,
int plane,
91 int block, TX_SIZE tx_size);
111 aom_writer *w, BLOCK_SIZE bsize);
127 const SCAN_ORDER *scan_order,
int eob);
146 RUN_TYPE dry_run, BLOCK_SIZE bsize,
147 uint8_t allow_update_cdf);
185 int blk_col, BLOCK_SIZE plane_bsize,
186 TX_SIZE tx_size,
void *arg);
220 const TXB_CTX *
const txb_ctx,
int plane,
222 const TX_SIZE txs_ctx = get_txsize_entropy_ctx(tx_size);
223 const PLANE_TYPE plane_type = get_plane_type(plane);
226 return coeff_costs_->
txb_skip_cost[txb_ctx->txb_skip_ctx][1];
231 static const int plane_rd_mult[REF_TYPES][PLANE_TYPES] = {
241 #endif // AOM_AV1_ENCODER_ENCODETXB_H_ Costs for encoding the coefficients within a level.
Definition: block.h:147
CB_COEFF_BUFFER * av1_get_cb_coeff_buffer(const struct AV1_COMP *cpi, int mi_row, int mi_col)
Get the corresponding CB_COEFF_BUFFER of the current macro block.
int txb_skip_cost[13][2]
Cost to skip txfm for the current txfm block.
Definition: block.h:149
static int av1_cost_skip_txb(const CoeffCosts *coeff_costs, const TXB_CTX *const txb_ctx, int plane, TX_SIZE tx_size)
Returns the entropy cost associated with skipping the current transform block.
Definition: encodetxb.h:219
Stores the transforms coefficients for the whole superblock.
Definition: block.h:180
struct AV1_COMP * cpi
Definition: encoder.h:2061
void av1_update_and_record_txb_context(int plane, int block, int blk_row, int blk_col, BLOCK_SIZE plane_bsize, TX_SIZE tx_size, void *arg)
Update the probability model (cdf) and the entropy context related to coefficient coding for a transf...
uint8_t av1_get_txb_entropy_context(const tran_low_t *qcoeff, const SCAN_ORDER *scan_order, int eob)
Pack the context info of the current transform block into an uint8_t.This context info will be collec...
void av1_free_txb_buf(AV1_COMP *cpi)
Free the memory resources for all the macro blocks in the current coding frame.See av1_alloc_txb_buf ...
LV_MAP_COEFF_COST coeff_costs[TX_SIZES][PLANE_TYPES]
Costs for coding the coefficients.
Definition: block.h:802
Top level encoder structure.
Definition: encoder.h:2095
void av1_update_intra_mb_txb_context(const AV1_COMP *cpi, ThreadData *td, RUN_TYPE dry_run, BLOCK_SIZE bsize, uint8_t allow_update_cdf)
Update the probability model (cdf) and the entropy context related to coefficient coding for all tran...
Declares top-level encoder structures and functions.
Holds the costs needed to encode the coefficients.
Definition: block.h:800
Top level common structure used by both encoder and decoder.
Definition: av1_common_int.h:723
void av1_alloc_txb_buf(AV1_COMP *cpi)
Allocate the memory resources for all the macro blocks in the current coding frame.Each macro block will need a CB_COEFF_BUFFER to store information for rate-distortion optimization and entropy coding of transform coefficients.
void av1_write_coeffs_txb(const AV1_COMMON *const cm, MACROBLOCK *const x, aom_writer *w, int blk_row, int blk_col, int plane, int block, TX_SIZE tx_size)
Write quantized coefficients in a transform block into bitstream using entropy coding.
void av1_write_intra_coeffs_mb(const AV1_COMMON *const cm, MACROBLOCK *x, aom_writer *w, BLOCK_SIZE bsize)
Write quantized coefficients of all transform blocks in an intra macroblock into the bitstream using ...
Encoder's parameters related to the current coding block.
Definition: block.h:846