AOMedia AV1 Codec: aom/aom_external_partition.h File Reference

| AOMedia AV1 Codec

aom_external_partition.h File Reference
Supported Codecs » AOM » AOMedia AOM/AV1 Encoder

Provides function pointer definitions for the external partition. More...

`#include <stdint.h>`

Go to the source code of this file.

## Data Structures
struct | aom_ext_part_config
| Config information sent to the external partition model. More...
struct | aom_partition_features_before_none
| Features pass to the external model to make partition decisions. Specifically, features collected before NONE partition. Features "f" are used to determine: partition_none_allowed, partition_horz_allowed, partition_vert_allowed, do_rectangular_split, do_square_split Features "f_part2" are used to determine: prune_horz, prune_vert. More...
struct | aom_partition_features_none
| Features pass to the external model to make partition decisions. Specifically, features collected after NONE partition. More...
struct | aom_partition_features_split
| Features pass to the external model to make partition decisions. Specifically, features collected after SPLIT partition. More...
struct | aom_partition_features_rect
| Features pass to the external model to make partition decisions. Specifically, features collected after RECTANGULAR partition. More...
struct | aom_partition_features_ab
| Features pass to the external model to make partition decisions. Specifically, features collected after AB partition: HORZ_A, HORZ_B, VERT_A, VERT_B. More...
struct | aom_sb_tpl_features
| Features collected from the tpl process. More...
struct | aom_sb_simple_motion_features
| Features collected from the simple motion process. More...
struct | aom_sb_features
| Features of each super block. More...
struct | aom_partition_features
| Features pass to the external model to make partition decisions. More...
struct | aom_partition_decision
| Partition decisions received from the external model. More...
struct | aom_partition_stats
| Encoding stats for the given partition decision. More...
struct | aom_ext_part_funcs
| Callback function set for external partition model. More...

## Macros
#define | AOM_EXT_PART_ABI_VERSION 8
| Current ABI version number.
#define | AOM_EXT_PART_SIZE_DIRECT_SPLIT 17
| Number of features to determine whether to skip partition none and do partition split directly. The same as "FEATURE_SIZE_SMS_SPLIT".
#define | AOM_EXT_PART_SIZE_PRUNE_PART 25
| Number of features to use simple motion search to prune out rectangular partition in some direction. The same as "FEATURE_SIZE_SMS_PRUNE_PART".
#define | AOM_EXT_PART_SIZE_PRUNE_NONE 4
| Number of features to prune split and rectangular partition after PARTITION_NONE.
#define | AOM_EXT_PART_SIZE_TERM_NONE 28
| Number of features to terminates partition after partition none using simple_motion_search features and the rate, distortion, and rdcost of PARTITION_NONE. The same as "FEATURE_SIZE_SMS_TERM_NONE".
#define | AOM_EXT_PART_SIZE_TERM_SPLIT 31
| Number of features to terminates partition after partition split.
#define | AOM_EXT_PART_SIZE_PRUNE_RECT 9
| Number of features to prune rectangular partition using stats collected after partition split.
#define | AOM_EXT_PART_SIZE_PRUNE_AB 10
| Number of features to prune AB partition using stats collected after rectangular partition..
#define | AOM_EXT_PART_SIZE_PRUNE_4_WAY 18
| Number of features to prune 4-way partition using stats collected after AB partition.

## Typedefs
typedef void * | aom_ext_part_model_t
| Abstract external partition model handler.
typedef enum aom_ext_part_decision_mode | aom_ext_part_decision_mode_t
| Decision mode of the external partition model. AOM_EXT_PART_WHOLE_TREE: the external partition model should provide the whole partition tree for the superblock.
typedef struct aom_ext_part_config | aom_ext_part_config_t
| Config information sent to the external partition model.
typedef struct aom_partition_features_before_none | aom_partition_features_before_none_t
| Features pass to the external model to make partition decisions. Specifically, features collected before NONE partition. Features "f" are used to determine: partition_none_allowed, partition_horz_allowed, partition_vert_allowed, do_rectangular_split, do_square_split Features "f_part2" are used to determine: prune_horz, prune_vert.
typedef struct aom_partition_features_none | aom_partition_features_none_t
| Features pass to the external model to make partition decisions. Specifically, features collected after NONE partition.
typedef struct aom_partition_features_split | aom_partition_features_split_t
| Features pass to the external model to make partition decisions. Specifically, features collected after SPLIT partition.
typedef struct aom_partition_features_rect | aom_partition_features_rect_t
| Features pass to the external model to make partition decisions. Specifically, features collected after RECTANGULAR partition.
typedef struct aom_partition_features_ab | aom_partition_features_ab_t
| Features pass to the external model to make partition decisions. Specifically, features collected after AB partition: HORZ_A, HORZ_B, VERT_A, VERT_B.
typedef struct aom_sb_tpl_features | aom_sb_tpl_features_t
| Features collected from the tpl process.
typedef struct aom_sb_simple_motion_features | aom_sb_simple_motion_features_t
| Features collected from the simple motion process.
typedef struct aom_sb_features | aom_sb_features_t
| Features of each super block.
typedef struct aom_partition_features | aom_partition_features_t
| Features pass to the external model to make partition decisions.
typedef struct aom_partition_decision | aom_partition_decision_t
| Partition decisions received from the external model.
typedef struct aom_partition_stats | aom_partition_stats_t
| Encoding stats for the given partition decision.
typedef enum aom_ext_part_status | aom_ext_part_status_t
| Enum for return status.
typedef aom_ext_part_status_t(* | aom_ext_part_create_model_fn_t) (void *priv, const aom_ext_part_config_t *part_config, aom_ext_part_model_t *ext_part_model)
| Callback of creating an external partition model.
typedef aom_ext_part_status_t(* | aom_ext_part_send_features_fn_t) (aom_ext_part_model_t ext_part_model, const aom_partition_features_t *part_features)
| Callback of sending features to the external partition model.
typedef aom_ext_part_status_t(* | aom_ext_part_get_decision_fn_t) (aom_ext_part_model_t ext_part_model, aom_partition_decision_t *ext_part_decision)
| Callback of receiving partition decisions from the external partition model.
typedef aom_ext_part_status_t(* | aom_ext_part_send_partition_stats_fn_t) (aom_ext_part_model_t ext_part_model, const aom_partition_stats_t *ext_part_stats)
| Callback of sending stats to the external partition model.
typedef aom_ext_part_status_t(* | aom_ext_part_delete_model_fn_t) (aom_ext_part_model_t ext_part_model)
| Callback of deleting the external partition model.
typedef struct aom_ext_part_funcs | aom_ext_part_funcs_t
| Callback function set for external partition model.

## Enumerations
enum | aom_ext_part_decision_mode { AOM_EXT_PART_WHOLE_TREE = 0 , AOM_EXT_PART_RECURSIVE = 1 }
| Decision mode of the external partition model. AOM_EXT_PART_WHOLE_TREE: the external partition model should provide the whole partition tree for the superblock. More...
enum | AOM_EXT_PART_FEATURE_ID { AOM_EXT_PART_FEATURE_BEFORE_NONE , AOM_EXT_PART_FEATURE_BEFORE_NONE_PART2 , AOM_EXT_PART_FEATURE_AFTER_NONE , AOM_EXT_PART_FEATURE_AFTER_NONE_PART2 , AOM_EXT_PART_FEATURE_AFTER_SPLIT , AOM_EXT_PART_FEATURE_AFTER_SPLIT_PART2 , AOM_EXT_PART_FEATURE_AFTER_RECT , AOM_EXT_PART_FEATURE_AFTER_AB }
| Feature id to tell the external model the current stage in partition pruning and what features to use to make decisions accordingly.
enum | aom_ext_part_status { AOM_EXT_PART_OK = 0 , AOM_EXT_PART_ERROR = 1 , AOM_EXT_PART_TEST = 2 }
| Enum for return status. More...

## Detailed Description

Provides function pointer definitions for the external partition.

Note
  The external partition API should be considered experimental. Until the external partition API is declared stable, breaking changes may be made to this API in a future libaom release.