AOMedia AV1 Codec
MB_MODE_INFO Struct Reference

Stores the prediction/txfm mode of the current coding block. More...

#include <blockd.h>

Data Fields

General Info of the Coding Block
BLOCK_SIZE bsize
 The block size of the current coding block.
 
PARTITION_TYPE partition
 The partition type of the current coding block.
 
PREDICTION_MODE mode
 The prediction mode used.
 
UV_PREDICTION_MODE uv_mode
 The UV mode when intra is used.
 
int current_qindex
 The q index for the current coding block.
 
Inter Mode Info
int_mv mv [2]
 The motion vectors used by the current inter mode.
 
MV_REFERENCE_FRAME ref_frame [2]
 The reference frames for the MV.
 
int_interpfilters interp_filters
 Filter used in subpel interpolation.
 
MOTION_MODE motion_mode
 The motion mode used by the inter prediction.
 
uint8_t num_proj_ref
 Number of samples used by warp causal.
 
uint8_t overlappable_neighbors
 The number of overlapped neighbors above/left for obmc/warp motion mode.
 
WarpedMotionParams wm_params
 The parameters used in warp motion mode.
 
INTERINTRA_MODE interintra_mode
 The type of intra mode used by inter-intra.
 
int8_t interintra_wedge_index
 The type of wedge used in interintra mode.
 
INTERINTER_COMPOUND_DATA interinter_comp
 Struct that stores the data used in interinter compound mode.
 
Intra Mode Info
int8_t angle_delta [PLANE_TYPES]
 Directional mode delta: the angle is base angle + (angle_delta * step).
 
FILTER_INTRA_MODE_INFO filter_intra_mode_info
 The type of filter intra mode used (if applicable).
 
int8_t cfl_alpha_signs
 Chroma from Luma: Joint sign of alpha Cb and alpha Cr.
 
uint8_t cfl_alpha_idx
 Chroma from Luma: Index of the alpha Cb and alpha Cr combination.
 
PALETTE_MODE_INFO palette_mode_info
 Stores the size and colors of palette mode.
 
Transform Info
uint8_t skip_txfm
 Whether to skip transforming and sending.
 
TX_SIZE tx_size
 Transform size when fixed size txfm is used (e.g. intra modes).
 
TX_SIZE inter_tx_size [INTER_TX_SIZE_BUF_LEN]
 Transform size when recursive txfm tree is on.
 
Loop Filter Info
int8_t delta_lf_from_base
 
int8_t delta_lf [FRAME_LF_COUNT]
 
Bitfield for Memory Reduction
uint8_t segment_id: 3
 The segment id.
 
uint8_t seg_id_predicted: 1
 Only valid when temporal update if off.
 
uint8_t ref_mv_idx: 2
 Which ref_mv to use.
 
uint8_t skip_mode: 1
 Inter skip mode.
 
uint8_t use_intrabc: 1
 Whether intrabc is used.
 
uint8_t comp_group_idx: 1
 Indicates if masked compound is used(1) or not (0).
 
uint8_t compound_idx: 1
 Indicates whether dist_wtd_comp(0) is used or not (0).
 
uint8_t use_wedge_interintra: 1
 Whether to use interintra wedge.
 
int8_t cdef_strength: 4
 CDEF strength per BLOCK_64X64.
 

Detailed Description

Stores the prediction/txfm mode of the current coding block.

Field Documentation

◆ delta_lf_from_base

int8_t MB_MODE_INFO::delta_lf_from_base

Since actual frame level loop filtering level value is not available at the beginning of the tile (only available during actual filtering) at encoder side.we record the delta_lf (against the frame level loop filtering level) and code the delta between previous superblock's delta lf and current delta lf. It is equivalent to the delta between previous superblock's actual lf and current lf.

Referenced by encode_b(), and setup_delta_q().

◆ delta_lf

int8_t MB_MODE_INFO::delta_lf[FRAME_LF_COUNT]

We have four frame filter levels for different plane and direction. So, to support the per superblock update, we need to add a few more params:

  1. delta loop filter level for y plane vertical
  2. delta loop filter level for y plane horizontal
  3. delta loop filter level for u plane
  4. delta loop filter level for v plane To make it consistent with the reference to each filter level in segment, we need to -1, since
  • SEG_LVL_ALT_LF_Y_V = 1;
  • SEG_LVL_ALT_LF_Y_H = 2;
  • SEG_LVL_ALT_LF_U = 3;
  • SEG_LVL_ALT_LF_V = 4;

Referenced by encode_b(), and setup_delta_q().


The documentation for this struct was generated from the following file: