Commit c4b67641 authored by Debargha Mukherjee's avatar Debargha Mukherjee

Speed up of ext-partition types

Search the new horz/vert a/b/4 partitions only if the best so far
is either oriented along the same direction or split/none, or if
the rd costs obtained from the previous partition searches indicate
there is potential in searching these partitions.

This brings about 25-30% speedup at less than 0.1% drop as seen on
lowres 30 frames.

Change-Id: I6c6c347e06c34ee0ca17479aeeb4075a66dc7e2c
parent 923b73d8
This diff is collapsed.
......@@ -138,6 +138,9 @@ static void set_good_speed_features_framesize_independent(AV1_COMP *cpi,
sf->selective_ref_frame = 1;
sf->tx_size_search_init_depth_rect = 1;
sf->tx_size_search_init_depth_sqr = 1;
#if CONFIG_EXT_PARTITION_TYPES
sf->prune_ext_partition_types_search = 1;
#endif // CONFIG_EXT_PARTITION_TYPES
}
if (speed >= 2) {
......@@ -439,6 +442,9 @@ void av1_set_speed_features_framesize_independent(AV1_COMP *cpi) {
sf->partition_search_breakout_dist_thr = 0;
sf->partition_search_breakout_rate_thr = 0;
sf->simple_model_rd_from_var = 0;
#if CONFIG_EXT_PARTITION_TYPES
sf->prune_ext_partition_types_search = 0;
#endif // CONFIG_EXT_PARTITION_TYPES
// Set this at the appropriate speed levels
sf->use_transform_domain_distortion = 0;
......
......@@ -338,6 +338,11 @@ typedef struct SPEED_FEATURES {
// Has two levels for now: 1 and 2, where 2 is more aggressive than 1.
int selective_ref_frame;
#if CONFIG_EXT_PARTITION_TYPES
// Conditionally prune extended partition types search
int prune_ext_partition_types_search;
#endif // CONFIG_EXT_PARTITION_TYPES
// Skip rectangular partition test when partition type none gives better
// rd than partition type split.
int less_rectangular_check;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment