AOMedia AV1 Codec
aom_external_partition.h File Reference

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

#include <stdint.h>
Include dependency graph for aom_external_partition.h:
This graph shows which files directly or indirectly include this file:

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   3
 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. More...
 
typedef struct aom_ext_part_config aom_ext_part_config_t
 Config information sent to the external partition model. More...
 
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. More...
 
typedef struct aom_sb_simple_motion_features aom_sb_simple_motion_features_t
 Features collected from the simple motion process. More...
 
typedef struct aom_sb_features aom_sb_features_t
 Features of each super block. More...
 
typedef struct aom_partition_features aom_partition_features_t
 Features pass to the external model to make partition decisions. More...
 
typedef struct aom_partition_decision aom_partition_decision_t
 Partition decisions received from the external model. More...
 
typedef struct aom_partition_stats aom_partition_stats_t
 Encoding stats for the given partition decision. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
typedef struct aom_ext_part_funcs aom_ext_part_funcs_t
 Callback function set for external partition model. More...
 

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.