No second alt ref filtering at speed 6
Don't do second alt ref filtering at speed 6, giving encoder
speedup.
Borg test results at speed 6:
avg_psnr: ovr_psnr: ssim: speedup:
midres2: 0.122 0.174 0.150 1.8%
hdres2: 0.081 0.120 0.002 1.9%
STATS_CHANGED
Change-Id: I762ac44c2d241b7e10571103691cde09f3f99ba1
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index 5d6c886..e67e45b 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -684,6 +684,7 @@
if (speed >= 6) {
sf->hl_sf.disable_extra_sc_testing = 1;
+ sf->hl_sf.second_alt_ref_filtering = 0;
sf->inter_sf.prune_inter_modes_based_on_tpl = boosted ? 0 : 3;
sf->inter_sf.prune_nearmv_using_neighbors = 1;
@@ -1043,6 +1044,7 @@
hl_sf->high_precision_mv_usage = CURRENT_Q;
hl_sf->superres_auto_search_type = SUPERRES_AUTO_ALL;
hl_sf->disable_extra_sc_testing = 0;
+ hl_sf->second_alt_ref_filtering = 1;
}
static AOM_INLINE void init_tpl_sf(TPL_SPEED_FEATURES *tpl_sf) {
diff --git a/av1/encoder/speed_features.h b/av1/encoder/speed_features.h
index 688402f..e36b90d 100644
--- a/av1/encoder/speed_features.h
+++ b/av1/encoder/speed_features.h
@@ -334,6 +334,11 @@
* Enable/disable extra screen content test by encoding key frame twice.
*/
int disable_extra_sc_testing;
+
+ /*!
+ * Enable/disable second_alt_ref temporal filtering.
+ */
+ int second_alt_ref_filtering;
} HIGH_LEVEL_SPEED_FEATURES;
/*!\cond */
diff --git a/av1/encoder/temporal_filter.c b/av1/encoder/temporal_filter.c
index 42cacc5..737dac0 100644
--- a/av1/encoder/temporal_filter.c
+++ b/av1/encoder/temporal_filter.c
@@ -1184,8 +1184,9 @@
TemporalFilterData *tf_data = &cpi->td.tf_data;
// Filter one more ARF if the lookahead index is leq 7 (w.r.t. 9-th frame).
// This frame is ALWAYS a show existing frame.
- const int is_second_arf =
- (update_type == INTNL_ARF_UPDATE) && (filter_frame_lookahead_idx >= 7);
+ const int is_second_arf = (update_type == INTNL_ARF_UPDATE) &&
+ (filter_frame_lookahead_idx >= 7) &&
+ cpi->sf.hl_sf.second_alt_ref_filtering;
// TODO(anyone): Currently, we enforce the filtering strength on internal
// ARFs except the second ARF to be zero. We should investigate in which case
// it is more beneficial to use non-zero strength filtering.