AOMedia AV1 Codec
aom_partition_features Struct Reference

Features pass to the external model to make partition decisions. More...

#include <aom_external_partition.h>

Data Fields

AOM_EXT_PART_FEATURE_ID id
 
aom_partition_features_before_none_t before_part_none
 
aom_partition_features_none_t after_part_none
 
aom_partition_features_split_t after_part_split
 
aom_partition_features_rect_t after_part_rect
 
aom_partition_features_ab_t after_part_ab
 
aom_sb_features_t sb_features
 Features collected for the super block.
 
int mi_row
 Mi_row position of the block.
 
int mi_col
 Mi_col position of the block.
 
int frame_width
 Frame width.
 
int frame_height
 Frame height.
 
int block_size
 As "BLOCK_SIZE" in av1/common/enums.h.
 
int valid_partition_types
 
int update_type
 Frame update type, defined in ratectrl.h.
 
int qindex
 Quantization index, range: [0, 255].
 
int rdmult
 Rate-distortion multiplier.
 
int pyramid_level
 The level of this frame in the hierarchical structure.
 
int has_above_block
 Has above neighbor block.
 
int above_block_width
 Width of the above block, -1 if not exist.
 
int above_block_height
 Height of the above block, -1 if not exist.
 
int has_left_block
 Has left neighbor block.
 
int left_block_width
 Width of the left block, -1 if not exist.
 
int left_block_height
 Height of the left block, -1 if not exist.
 
unsigned int block_sse
 SSE of motion compensated residual.
 
unsigned int block_var
 Variance of motion compensated residual.
 
unsigned int sub_block_sse [4]
 SSE of sub blocks.
 
unsigned int sub_block_var [4]
 Variance of sub blocks.
 
unsigned int horz_block_sse [2]
 SSE of horz sub blocks.
 
unsigned int horz_block_var [2]
 Variance of horz sub blocks.
 
unsigned int vert_block_sse [2]
 SSE of vert sub blocks.
 
unsigned int vert_block_var [2]
 Variance of vert sub blocks.
 
int64_t tpl_intra_cost
 Intra cost, ref to "TplDepStats" in tpl_model.h.
 
int64_t tpl_inter_cost
 Inter cost in tpl model.
 
int64_t tpl_mc_dep_cost
 Motion compensated dependency cost in tpl model.
 

Detailed Description

Features pass to the external model to make partition decisions.

The encoder sends these features to the external model through "func()" defined in .....

NOTE: new member variables may be added to this structure in the future. Once new features are finalized, bump the major version of libaom.

Field Documentation

◆ id

AOM_EXT_PART_FEATURE_ID aom_partition_features::id

Feature ID to indicate active features

◆ before_part_none

aom_partition_features_before_none_t aom_partition_features::before_part_none

Features collected before NONE partition

◆ after_part_none

aom_partition_features_none_t aom_partition_features::after_part_none

Features collected after NONE partition

◆ after_part_split

aom_partition_features_split_t aom_partition_features::after_part_split

Features collected after SPLIT partition

◆ after_part_rect

aom_partition_features_rect_t aom_partition_features::after_part_rect

Features collected after RECTANGULAR partition

◆ after_part_ab

aom_partition_features_ab_t aom_partition_features::after_part_ab

Features collected after AB partition

◆ valid_partition_types

int aom_partition_features::valid_partition_types

Valid partition types. A bitmask is used. "1" represents the corresponding type is valid. The bitmask follows the enum order for PARTITION_TYPE in "enums.h" to represent one partition type at a bit. For example, 0x01 stands for only PARTITION_NONE is valid, 0x09 (00...001001) stands for PARTITION_NONE and PARTITION_SPLIT are valid.

◆ block_sse

unsigned int aom_partition_features::block_sse

SSE of motion compensated residual.

The following parameters are collected from applying simple motion search. Sum of squared error (SSE) and variance of motion compensated residual are good indicators of block partitioning. If a block is a square, we also apply motion search for its 4 sub blocks. If not a square, their values are -1. If a block is able to split horizontally, we apply motion search and get stats for horizontal blocks. If not, their values are -1. If a block is able to split vertically, we apply motion search and get stats for vertical blocks. If not, their values are -1.

◆ tpl_intra_cost

int64_t aom_partition_features::tpl_intra_cost

Intra cost, ref to "TplDepStats" in tpl_model.h.

The following parameters are calculated from tpl model. If tpl model is not available, their values are -1.


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