Refine perform_coeff_opt speed feature for speeds 1,2
Introduced perform_coeff_opt logic for boosted
frames in speed presets 1,2.
Encode Time
Preset Reduction Quality Loss
1 4.22% +0.03%
2 5.12% +0.11%
STATS_CHANGED
Change-Id: I256b7992249948a6f130a64d6917ab9b90de40c9
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index 7ddc51b..8950487b 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -55,7 +55,7 @@
// Threshold values to be used for disabling coeff RD-optimization
// based on block MSE
// TODO(any): Experiment the threshold logic based on variance metric
-static unsigned int coeff_opt_dist_thresholds[5] = { UINT_MAX, 162754, 162754,
+static unsigned int coeff_opt_dist_thresholds[5] = { UINT_MAX, 442413, 162754,
22026, 22026 };
// scaling values to be used for gating wedge/compound segment based on best
// approximate rd
@@ -265,7 +265,7 @@
sf->gm_search_type = GM_REDUCED_REF_SEARCH_SKIP_L2_L3_ARF2;
sf->cb_pred_filter_search = 1;
sf->use_transform_domain_distortion = boosted ? 1 : 2;
- sf->perform_coeff_opt = boosted ? 0 : 1;
+ sf->perform_coeff_opt = boosted ? 1 : 2;
sf->use_inter_txb_hash = 0;
}
@@ -297,7 +297,7 @@
// TODO(Sachin): Enable/Enhance this speed feature for speed 2 & 3
sf->cb_pred_filter_search = 0;
sf->adaptive_interp_filter_search = 1;
- sf->perform_coeff_opt = boosted ? 0 : 2;
+ sf->perform_coeff_opt = is_boosted_arf2_bwd_type ? 2 : 3;
sf->model_based_prune_tx_search_level = 0;
}
@@ -331,7 +331,6 @@
sf->perform_best_rd_based_gating_for_chroma = 1;
sf->prune_ref_frame_for_rect_partitions =
frame_is_intra_only(&cpi->common) ? 0 : (boosted ? 1 : 2);
- sf->perform_coeff_opt = is_boosted_arf2_bwd_type ? 2 : 3;
sf->prune_comp_type_by_model_rd = boosted ? 0 : 1;
sf->disable_smooth_intra =
!frame_is_intra_only(&cpi->common) || (cpi->rc.frames_to_key != 1);