11 #ifndef AOM_AOM_AOM_EXTERNAL_PARTITION_H_ 12 #define AOM_AOM_AOM_EXTERNAL_PARTITION_H_ 33 #define AOM_EXT_PART_ABI_VERSION 3 46 #define AOM_EXT_PART_SIZE_DIRECT_SPLIT 17 52 #define AOM_EXT_PART_SIZE_PRUNE_PART 25 57 #define AOM_EXT_PART_SIZE_PRUNE_NONE 4 63 #define AOM_EXT_PART_SIZE_TERM_NONE 28 67 #define AOM_EXT_PART_SIZE_TERM_SPLIT 31 72 #define AOM_EXT_PART_SIZE_PRUNE_RECT 9 77 #define AOM_EXT_PART_SIZE_PRUNE_AB 10 82 #define AOM_EXT_PART_SIZE_PRUNE_4_WAY 18 93 AOM_EXT_PART_WHOLE_TREE = 0,
94 AOM_EXT_PART_RECURSIVE = 1,
161 AOM_EXT_PART_FEATURE_BEFORE_NONE,
162 AOM_EXT_PART_FEATURE_BEFORE_NONE_PART2,
163 AOM_EXT_PART_FEATURE_AFTER_NONE,
164 AOM_EXT_PART_FEATURE_AFTER_NONE_PART2,
165 AOM_EXT_PART_FEATURE_AFTER_SPLIT,
166 AOM_EXT_PART_FEATURE_AFTER_SPLIT_PART2,
167 AOM_EXT_PART_FEATURE_AFTER_RECT,
168 AOM_EXT_PART_FEATURE_AFTER_AB
404 #endif // AOM_AOM_AOM_EXTERNAL_PARTITION_H_ #define AOM_EXT_PART_SIZE_PRUNE_AB
Number of features to prune AB partition using stats collected after rectangular partition..
Definition: aom_external_partition.h:77
Features pass to the external model to make partition decisions. Specifically, features collected bef...
Definition: aom_external_partition.h:113
struct aom_ext_part_funcs aom_ext_part_funcs_t
Callback function set for external partition model.
#define AOM_EXT_PART_SIZE_PRUNE_RECT
Number of features to prune rectangular partition using stats collected after partition split...
Definition: aom_external_partition.h:72
enum aom_ext_part_status aom_ext_part_status_t
Enum for return status.
int block_size
As "BLOCK_SIZE" in av1/common/enums.h.
Definition: aom_external_partition.h:242
int vertb_partition_allowed
Allow VERT_B partitioin.
Definition: aom_external_partition.h:271
int do_rectangular_split
Try rectangular split partition.
Definition: aom_external_partition.h:265
Callback function set for external partition model.
Definition: aom_external_partition.h:362
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.
Definition: aom_external_partition.h:354
aom_ext_part_decision_mode
Decision mode of the external partition model. AOM_EXT_PART_WHOLE_TREE: the external partition model ...
Definition: aom_external_partition.h:92
aom_ext_part_create_model_fn_t create_model
Definition: aom_external_partition.h:366
AOM_EXT_PART_FEATURE_ID id
Definition: aom_external_partition.h:224
int64_t dist
Distortion of the block.
Definition: aom_external_partition.h:285
int partition_decision[2048]
Partition decisions.
Definition: aom_external_partition.h:258
Features pass to the external model to make partition decisions. Specifically, features collected aft...
Definition: aom_external_partition.h:133
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.
Definition: aom_external_partition.h:318
AOM_EXT_PART_FEATURE_ID
Feature id to tell the external model the current stage in partition pruning and what features to use...
Definition: aom_external_partition.h:160
struct aom_sb_tpl_features aom_sb_tpl_features_t
Features collected from the tpl process.
int horza_partition_allowed
Allow HORZ_A partitioin.
Definition: aom_external_partition.h:268
#define AOM_EXT_PART_SIZE_DIRECT_SPLIT
Number of features to determine whether to skip partition none and do partition split directly...
Definition: aom_external_partition.h:46
float f_terminate[28]
Definition: aom_external_partition.h:127
aom_partition_features_ab_t after_part_ab
Definition: aom_external_partition.h:234
struct aom_partition_features_ab aom_partition_features_ab_t
Features pass to the external model to make partition decisions. Specifically, features collected aft...
float f[17]
Definition: aom_external_partition.h:115
aom_partition_features_before_none_t before_part_none
Definition: aom_external_partition.h:226
void * priv
Definition: aom_external_partition.h:396
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.
Definition: aom_external_partition.h:306
float f_part2[25]
Definition: aom_external_partition.h:117
int mi_col
Mi_col position of the block.
Definition: aom_external_partition.h:239
int partition_none_allowed
Allow partition none type.
Definition: aom_external_partition.h:263
#define AOM_EXT_PART_SIZE_PRUNE_4_WAY
Number of features to prune 4-way partition using stats collected after AB partition.
Definition: aom_external_partition.h:82
Features collected from the simple motion process.
Definition: aom_external_partition.h:195
int num_nodes
The number of leaf nodes.
Definition: aom_external_partition.h:257
int terminate_partition_search
Terminate further partition search.
Definition: aom_external_partition.h:262
int frame_height
Frame height.
Definition: aom_external_partition.h:241
struct aom_sb_features aom_sb_features_t
Features of each super block.
struct aom_partition_features_rect aom_partition_features_rect_t
Features pass to the external model to make partition decisions. Specifically, features collected aft...
int current_decision
Partition decision for the current block.
Definition: aom_external_partition.h:259
aom_ext_part_send_features_fn_t send_features
Definition: aom_external_partition.h:371
int block_sse[64]
Sum of squared error of each unit.
Definition: aom_external_partition.h:198
struct aom_partition_decision aom_partition_decision_t
Partition decisions received from the external model.
Features collected from the tpl process.
Definition: aom_external_partition.h:179
Features pass to the external model to make partition decisions. Specifically, features collected aft...
Definition: aom_external_partition.h:123
aom_sb_tpl_features_t tpl_features
Definition: aom_external_partition.h:210
int is_final_decision
The flag whether it's the final decision.
Definition: aom_external_partition.h:256
int tpl_unit_length
The block length of tpl process.
Definition: aom_external_partition.h:181
int unit_length
The block length of the simple motion process.
Definition: aom_external_partition.h:196
Features of each super block.
Definition: aom_external_partition.h:206
int64_t inter_cost[64]
The inter cost of each unit.
Definition: aom_external_partition.h:184
#define AOM_EXT_PART_SIZE_TERM_NONE
Number of features to terminates partition after partition none using simple_motion_search features a...
Definition: aom_external_partition.h:63
struct aom_partition_stats aom_partition_stats_t
Encoding stats for the given partition decision.
int partition_rect_allowed[2]
Allow rectangular partitions.
Definition: aom_external_partition.h:264
struct aom_ext_part_config aom_ext_part_config_t
Config information sent to the external partition model.
int superblock_size
super block size (either 64x64 or 128x128)
Definition: aom_external_partition.h:102
Partition decisions received from the external model.
Definition: aom_external_partition.h:254
float f[4]
Definition: aom_external_partition.h:125
int rate
Rate cost of the block.
Definition: aom_external_partition.h:284
aom_ext_part_send_partition_stats_fn_t send_partition_stats
Definition: aom_external_partition.h:381
int partition_horz4_allowed
Allow HORZ4 partition.
Definition: aom_external_partition.h:272
aom_sb_simple_motion_features_t motion_features
Definition: aom_external_partition.h:208
Status used for tests.
Definition: aom_external_partition.h:294
#define AOM_EXT_PART_SIZE_PRUNE_NONE
Number of features to prune split and rectangular partition after PARTITION_NONE. ...
Definition: aom_external_partition.h:57
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.
Definition: aom_external_partition.h:331
int mi_row
Mi_row position of the block.
Definition: aom_external_partition.h:238
struct aom_partition_features aom_partition_features_t
Features pass to the external model to make partition decisions.
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.
Definition: aom_external_partition.h:343
aom_partition_features_split_t after_part_split
Definition: aom_external_partition.h:230
Status of failure.
Definition: aom_external_partition.h:293
Features pass to the external model to make partition decisions. Specifically, features collected aft...
Definition: aom_external_partition.h:143
#define AOM_EXT_PART_SIZE_PRUNE_PART
Number of features to use simple motion search to prune out rectangular partition in some direction...
Definition: aom_external_partition.h:52
aom_ext_part_get_decision_fn_t get_partition_decision
Definition: aom_external_partition.h:376
aom_partition_features_rect_t after_part_rect
Definition: aom_external_partition.h:232
int do_square_split
Try square split partition.
Definition: aom_external_partition.h:266
struct aom_partition_features_split aom_partition_features_split_t
Features pass to the external model to make partition decisions. Specifically, features collected aft...
int num_units
The number of units inside the current superblock.
Definition: aom_external_partition.h:197
float f_prune_rect[9]
Definition: aom_external_partition.h:137
float f[18]
Definition: aom_external_partition.h:154
float f_terminate[31]
Definition: aom_external_partition.h:135
int block_var[64]
Variance of each unit.
Definition: aom_external_partition.h:199
Config information sent to the external partition model.
Definition: aom_external_partition.h:101
int64_t intra_cost[64]
The intra cost of each unit.
Definition: aom_external_partition.h:183
int verta_partition_allowed
Allow VERT_A partitioin.
Definition: aom_external_partition.h:270
int available
If tpl stats are available.
Definition: aom_external_partition.h:180
int prune_rect_part[2]
Prune rectangular partition.
Definition: aom_external_partition.h:267
void * aom_ext_part_model_t
Abstract external partition model handler.
Definition: aom_external_partition.h:41
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 ...
aom_partition_features_none_t after_part_none
Definition: aom_external_partition.h:228
#define AOM_EXT_PART_SIZE_TERM_SPLIT
Number of features to terminates partition after partition split.
Definition: aom_external_partition.h:67
float f[10]
Definition: aom_external_partition.h:145
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 bef...
aom_ext_part_decision_mode_t decision_mode
Definition: aom_external_partition.h:391
int num_units
The number of units inside the current superblock.
Definition: aom_external_partition.h:182
Status of success.
Definition: aom_external_partition.h:292
aom_ext_part_delete_model_fn_t delete_model
Definition: aom_external_partition.h:386
Features pass to the external model to make partition decisions.
Definition: aom_external_partition.h:221
aom_sb_features_t sb_features
Features collected for the super block.
Definition: aom_external_partition.h:237
int64_t rdcost
Rate-distortion cost of the block.
Definition: aom_external_partition.h:286
struct aom_sb_simple_motion_features aom_sb_simple_motion_features_t
Features collected from the simple motion process.
Encoding stats for the given partition decision.
Definition: aom_external_partition.h:283
int horzb_partition_allowed
Allow HORZ_B partitioin.
Definition: aom_external_partition.h:269
struct aom_partition_features_none aom_partition_features_none_t
Features pass to the external model to make partition decisions. Specifically, features collected aft...
Features pass to the external model to make partition decisions. Specifically, features collected aft...
Definition: aom_external_partition.h:152
aom_ext_part_status
Enum for return status.
Definition: aom_external_partition.h:291
int partition_vert4_allowed
Allow VERT4 partition.
Definition: aom_external_partition.h:273
int frame_width
Frame width.
Definition: aom_external_partition.h:240
int64_t mc_dep_cost[64]
The motion compensated dependency cost.
Definition: aom_external_partition.h:185