AOMedia AV1 Codec: MB_MODE_INFO Struct Reference

| 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

## ◆ bsize

BLOCK_SIZE MB_MODE_INFO::bsize

The block size of the current coding block.

Referenced by av1_nonrd_pick_intra_mode(), av1_rd_pick_inter_mode(), av1_rd_pick_intra_sbuv_mode(), av1_rd_pick_intra_sby_mode(), av1_rd_use_partition(), av1_search_intra_uv_modes_in_interframe(), intra_block_yrd(), intra_mode_info_cost_uv(), intra_mode_info_cost_y(), motion_mode_rd(), palette_rd_y(), and pick_sb_modes().

## ◆ partition

PARTITION_TYPE MB_MODE_INFO::partition

The partition type of the current coding block.

Referenced by av1_rd_pick_inter_mode(), encode_b(), and pick_sb_modes().

## ◆ mode

PREDICTION_MODE MB_MODE_INFO::mode

The prediction mode used.

Referenced by av1_handle_intra_y_mode(), av1_interpolation_filter_search(), av1_nonrd_pick_inter_mode_sb(), av1_nonrd_pick_intra_mode(), av1_rd_pick_inter_mode(), av1_rd_pick_intra_sbuv_mode(), av1_rd_pick_intra_sby_mode(), av1_search_palette_mode(), av1_search_palette_mode_luma(), cfl_rd_pick_alpha(), fast_interp_search(), handle_filter_intra_mode(), handle_inter_mode(), intra_block_yrd(), intra_mode_info_cost_y(), motion_mode_rd(), pick_sb_modes_nonrd(), rd_pick_filter_intra_sby(), rd_pick_intrabc_mode_sb(), search_intra_modes_in_interframe(), and set_y_mode_and_delta_angle().

## ◆ uv_mode

UV_PREDICTION_MODE MB_MODE_INFO::uv_mode

The UV mode when intra is used.

Referenced by av1_nonrd_pick_intra_mode(), av1_rd_pick_intra_sbuv_mode(), av1_search_intra_uv_modes_in_interframe(), av1_search_palette_mode(), av1_search_palette_mode_luma(), intra_mode_info_cost_uv(), rd_pick_intrabc_mode_sb(), and search_intra_modes_in_interframe().

## ◆ current_qindex

int MB_MODE_INFO::current_qindex

The q index for the current coding block.

Referenced by encode_b(), encode_rd_sb(), and setup_delta_q().

## ◆ mv

int_mv MB_MODE_INFO::mv[2]

The motion vectors used by the current inter mode.

Referenced by av1_nonrd_pick_inter_mode_sb(), av1_nonrd_pick_intra_mode(), av1_rd_pick_inter_mode(), av1_rd_pick_intra_mode_sb(), handle_inter_mode(), motion_mode_rd(), prune_zero_mv_with_sse(), rd_pick_intrabc_mode_sb(), search_filter_ref(), and search_new_mv().

## ◆ ref_frame

MV_REFERENCE_FRAME MB_MODE_INFO::ref_frame[2]

The reference frames for the MV.

Referenced by av1_handle_intra_y_mode(), av1_interpolation_filter_search(), av1_nonrd_pick_inter_mode_sb(), av1_rd_pick_intra_mode_sb(), av1_search_intra_uv_modes_in_interframe(), av1_search_palette_mode(), av1_search_palette_mode_luma(), combined_motion_search(), encode_b(), handle_inter_mode(), motion_mode_rd(), and prune_zero_mv_with_sse().

## ◆ interp_filters

int_interpfilters MB_MODE_INFO::interp_filters

Filter used in subpel interpolation.

Referenced by av1_interpolation_filter_search(), av1_nonrd_pick_inter_mode_sb(), av1_nonrd_pick_intra_mode(), av1_rd_pick_inter_mode(), fast_interp_search(), motion_mode_rd(), rd_pick_intrabc_mode_sb(), and search_filter_ref().

## ◆ motion_mode

MOTION_MODE MB_MODE_INFO::motion_mode

The motion mode used by the inter prediction.

Referenced by av1_nonrd_pick_inter_mode_sb(), av1_nonrd_pick_intra_mode(), encode_b(), fast_interp_search(), handle_inter_mode(), motion_mode_rd(), and rd_pick_intrabc_mode_sb().

## ◆ num_proj_ref

uint8_t MB_MODE_INFO::num_proj_ref

Number of samples used by warp causal.

Referenced by av1_nonrd_pick_inter_mode_sb(), find_predictors(), handle_inter_mode(), and motion_mode_rd().

## ◆ wm_params

WarpedMotionParams MB_MODE_INFO::wm_params

The parameters used in warp motion mode.

Referenced by av1_nonrd_pick_inter_mode_sb(), and motion_mode_rd().

## ◆ interinter_comp

INTERINTER_COMPOUND_DATA MB_MODE_INFO::interinter_comp

Struct that stores the data used in interinter compound mode.

Referenced by av1_nonrd_pick_inter_mode_sb(), encode_b(), handle_inter_mode(), and process_compound_inter_mode().

## ◆ angle_delta

int8_t MB_MODE_INFO::angle_delta[PLANE_TYPES]

Directional mode delta: the angle is base angle + (angle_delta * step).

Referenced by av1_nonrd_pick_inter_mode_sb(), av1_rd_pick_inter_mode(), av1_rd_pick_intra_sbuv_mode(), av1_rd_pick_intra_sby_mode(), av1_search_intra_uv_modes_in_interframe(), av1_search_palette_mode(), intra_mode_info_cost_uv(), intra_mode_info_cost_y(), rd_pick_intra_angle_sbuv(), search_intra_modes_in_interframe(), and set_y_mode_and_delta_angle().

## ◆ filter_intra_mode_info

FILTER_INTRA_MODE_INFO MB_MODE_INFO::filter_intra_mode_info

The type of filter intra mode used (if applicable).

Referenced by av1_handle_intra_y_mode(), av1_nonrd_pick_inter_mode_sb(), av1_rd_pick_inter_mode(), av1_rd_pick_intra_sby_mode(), handle_filter_intra_mode(), intra_mode_info_cost_y(), rd_pick_filter_intra_sby(), and rd_pick_intrabc_mode_sb().

## ◆ cfl_alpha_signs

int8_t MB_MODE_INFO::cfl_alpha_signs

Chroma from Luma: Joint sign of alpha Cb and alpha Cr.

Referenced by av1_rd_pick_intra_sbuv_mode().

## ◆ cfl_alpha_idx

uint8_t MB_MODE_INFO::cfl_alpha_idx

Chroma from Luma: Index of the alpha Cb and alpha Cr combination.

Referenced by av1_rd_pick_intra_sbuv_mode().

## ◆ palette_mode_info

PALETTE_MODE_INFO MB_MODE_INFO::palette_mode_info

Stores the size and colors of palette mode.

Referenced by av1_nonrd_pick_inter_mode_sb(), av1_nonrd_pick_intra_mode(), av1_rd_pick_inter_mode(), av1_rd_pick_intra_sby_mode(), av1_search_intra_uv_modes_in_interframe(), av1_search_palette_mode(), av1_search_palette_mode_luma(), intra_mode_info_cost_uv(), intra_mode_info_cost_y(), palette_rd_y(), rd_pick_filter_intra_sby(), and rd_pick_intrabc_mode_sb().

## ◆ skip_txfm

uint8_t MB_MODE_INFO::skip_txfm

Whether to skip transforming and sending.

Referenced by av1_rd_pick_inter_mode(), av1_rd_pick_intra_mode_sb(), av1_rd_pick_intra_sbuv_mode(), av1_search_palette_mode(), av1_search_palette_mode_luma(), encode_b(), intra_block_yrd(), motion_mode_rd(), pick_sb_modes(), rd_pick_intrabc_mode_sb(), and search_intra_modes_in_interframe().

## ◆ tx_size

TX_SIZE MB_MODE_INFO::tx_size

Transform size when fixed size txfm is used (e.g. intra modes).

Referenced by av1_nonrd_pick_inter_mode_sb(), av1_nonrd_pick_intra_mode(), av1_rd_pick_intra_sby_mode(), handle_filter_intra_mode(), intra_block_yrd(), intra_mode_info_cost_uv(), intra_mode_info_cost_y(), palette_rd_y(), rd_pick_filter_intra_sby(), search_filter_ref(), and search_intra_modes_in_interframe().

## ◆ inter_tx_size

TX_SIZE MB_MODE_INFO::inter_tx_size[INTER_TX_SIZE_BUF_LEN]

Transform size when recursive txfm tree is on.

Referenced by av1_nonrd_pick_inter_mode_sb(), and av1_nonrd_pick_intra_mode().

## ◆ 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().

## ◆ segment_id

uint8_t MB_MODE_INFO::segment_id

The segment id.

Referenced by av1_nonrd_pick_inter_mode_sb(), av1_nonrd_pick_intra_mode(), av1_rd_pick_inter_mode(), av1_rd_pick_intra_sbuv_mode(), av1_rd_pick_intra_sby_mode(), encode_b(), intra_block_yrd(), palette_rd_y(), pick_sb_modes(), pick_sb_modes_nonrd(), search_intra_modes_in_interframe(), and setup_delta_q().

## ◆ ref_mv_idx

uint8_t MB_MODE_INFO::ref_mv_idx

Which ref_mv to use.

Referenced by av1_interpolation_filter_search(), av1_rd_pick_inter_mode(), combined_motion_search(), handle_inter_mode(), and motion_mode_rd().

## ◆ skip_mode

uint8_t MB_MODE_INFO::skip_mode

Inter skip mode.

Referenced by av1_rd_pick_intra_mode_sb(), encode_b(), and pick_sb_modes().

## ◆ use_intrabc

uint8_t MB_MODE_INFO::use_intrabc

Whether intrabc is used.

Referenced by av1_nonrd_pick_intra_mode(), av1_rd_pick_intra_mode_sb(), intra_mode_info_cost_uv(), intra_mode_info_cost_y(), and rd_pick_intrabc_mode_sb().

## ◆ comp_group_idx

uint8_t MB_MODE_INFO::comp_group_idx

Indicates if masked compound is used(1) or not (0).

Referenced by av1_nonrd_pick_inter_mode_sb(), encode_b(), and handle_inter_mode().

## ◆ compound_idx

uint8_t MB_MODE_INFO::compound_idx

Indicates whether dist_wtd_comp(0) is used or not (0).

Referenced by av1_nonrd_pick_inter_mode_sb(), encode_b(), handle_inter_mode(), and motion_mode_rd().

## ◆ cdef_strength

int8_t MB_MODE_INFO::cdef_strength

CDEF strength per BLOCK_64X64.

Referenced by encode_nonrd_sb(), and pick_sb_modes_nonrd().

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

- av1/common/blockd.h