AOMedia AV1 Codec: aom_partition_features Struct Reference

| AOMedia AV1 Codec

Data Fields
aom_partition_features Struct Reference
Supported Codecs » AOM » AOMedia AOM/AV1 Encoder

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:

- aom/aom_external_partition.h