| 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:

- av1/common/blockd.h