Add a speed feature to turn off dual_filter

The speed feature is turned on for speeds 2+.
There seems to be about 5-6% speedup at speed 2.

STATS_CHANGED

Coding performance loss:
lowres, 30 frames, end-usage=q: +0.210% AvPSNR, +0.131% SSIM
midres, 30 frames, end-usage=q: +0.164% AvPSNR, +0.055% SSIM

Change-Id: Iec2e1adfe01129c453d0e7cbdaaf83bd090f3c06
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index 2bb5cff..ceef7fe 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -252,6 +252,7 @@
     sf->allow_partition_search_skip = 1;
     sf->disable_wedge_search_var_thresh = 100;
     sf->fast_wedge_sign_estimate = 1;
+    sf->disable_dual_filter = 1;
   }
 
   if (speed >= 3) {
@@ -480,6 +481,7 @@
   sf->gm_search_type = GM_FULL_SEARCH;
   sf->gm_disable_recode = 0;
   sf->use_fast_interpolation_filter_search = 0;
+  sf->disable_dual_filter = 0;
   sf->skip_repeat_interpolation_filter_search = 0;
   sf->use_hash_based_trellis = 0;
   sf->prune_comp_search_by_single_result = 0;
@@ -495,6 +497,10 @@
   if (oxcf->mode == GOOD)
     set_good_speed_features_framesize_independent(cpi, sf, oxcf->speed);
 
+  if (!cpi->seq_params_locked) {
+    cpi->common.seq_params.enable_dual_filter &= !sf->disable_dual_filter;
+  }
+
   // sf->partition_search_breakout_dist_thr is set assuming max 64x64
   // blocks. Normalise this if the blocks are bigger.
   if (MAX_SB_SIZE_LOG2 > 6) {
diff --git a/av1/encoder/speed_features.h b/av1/encoder/speed_features.h
index d8b3d36..318e513 100644
--- a/av1/encoder/speed_features.h
+++ b/av1/encoder/speed_features.h
@@ -495,6 +495,9 @@
   // usually includes EIGHTTAP_REGULAR.
   int use_fast_interpolation_filter_search;
 
+  // Disable dual filter
+  int disable_dual_filter;
+
   // Save results of interpolation_filter_search for a block
   // Check mv and ref_frames before search, if they are same with previous
   // saved results, it can be skipped.