Speed up compound mode search at speed 2
This CL enabled the fast compound mode search for speed 2,
which gave a large encoder speed boost without much quality
loss.
Borg test result at speed 2:
avg_psnr: ovr_psnr: ssim: speedup:
lowres2: 0.204 0.208 0.086 16.6%
midres2: 0.194 0.189 0.102 16.5%
hdres2: -0.011 0.204 -0.083 22.1%
STATS_CHANGED
Change-Id: Id8e3d604e511942bce5f99d69bb299d0ab79dd08
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index 3c4dfce..7118486 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -488,6 +488,7 @@
sf->mv_sf.auto_mv_step_size = 1;
sf->mv_sf.subpel_iters_per_step = 1;
+ sf->mv_sf.disable_extensive_joint_motion_search = 1;
// TODO(chiyotsai@google.com): We can get 10% speed up if we move
// adaptive_rd_thresh to speed 1. But currently it performs poorly on some
@@ -503,6 +504,8 @@
sf->inter_sf.reuse_best_prediction_for_part_ab = 1;
sf->inter_sf.selective_ref_frame = 3;
sf->inter_sf.use_dist_wtd_comp_flag = DIST_WTD_COMP_DISABLED;
+ // Enable fast search only for COMPOUND_DIFFWTD type.
+ sf->inter_sf.enable_fast_compound_mode_search = 1;
// TODO(Sachin): Enable/Enhance this speed feature for speed 2 & 3
sf->interp_sf.adaptive_interp_filter_search = 1;
@@ -534,7 +537,6 @@
// The values in x->pred_mv[] differ for single and multi-thread cases.
// See aomedia:1778.
// sf->mv_sf.adaptive_motion_search = 1;
- sf->mv_sf.disable_extensive_joint_motion_search = 1;
sf->mv_sf.full_pixel_search_level = 1;
sf->mv_sf.simple_motion_subpel_force_stop = QUARTER_PEL;
sf->mv_sf.subpel_search_method = SUBPEL_TREE_PRUNED;
@@ -556,7 +558,6 @@
sf->inter_sf.reuse_compound_type_decision = 1;
sf->inter_sf.txfm_rd_gate_level =
boosted ? 0 : (is_boosted_arf2_bwd_type ? 1 : 2);
- sf->inter_sf.enable_fast_compound_mode_search = 1;
// TODO(chiyotsai@google.com): the thresholds chosen for intra hog are
// inherited directly from luma hog with some minor tweaking. Eventually we
@@ -670,6 +671,7 @@
sf->inter_sf.disable_interinter_wedge = 1;
sf->inter_sf.prune_inter_modes_if_skippable = 1;
sf->inter_sf.txfm_rd_gate_level = boosted ? 0 : 5;
+ // Enable fast search for all valid compound modes.
sf->inter_sf.enable_fast_compound_mode_search = 2;
sf->intra_sf.chroma_intra_pruning_with_hog = 3;