Enable winner mode speed features in allintra encode

Enabled winner mode speed features, enable_winner_mode_for_coeff_opt,
enable_winner_mode_for_use_tx_domain_dist, enable_winner_mode_for_tx_size_srch
and multi_winner_mode_type, in allintra encoding for speed >= 4.

For AVIF still image encode,

          Instruction Count           BD-Rate Loss(%)
cpu-used     Reduction(%)     psnr     psnrCb   psnrCr   ssim
   4           16.775         0.3118   0.9665   1.0637   0.3965
   5           22.750         0.5559   1.0946   0.9724   0.5730
   6           7.771          0.5332   0.9001   0.7253   0.6243

BUG=aomedia:2959

STATS_CHANGED

Change-Id: Ied9d7d6b1ed40a17a8779b32db5fb75bec7b4bc3
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index 12fe2bf..39050e6 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -420,6 +420,11 @@
     sf->lpf_sf.cdef_pick_method = CDEF_FAST_SEARCH_LVL3;
 
     sf->mv_sf.reduce_search_range = 1;
+
+    sf->winner_mode_sf.enable_winner_mode_for_coeff_opt = 1;
+    sf->winner_mode_sf.enable_winner_mode_for_use_tx_domain_dist = 1;
+    sf->winner_mode_sf.multi_winner_mode_type = MULTI_WINNER_MODE_DEFAULT;
+    sf->winner_mode_sf.enable_winner_mode_for_tx_size_srch = 1;
   }
 
   if (speed >= 5) {
@@ -433,6 +438,8 @@
     sf->lpf_sf.disable_lr_filter = 1;
 
     sf->mv_sf.prune_mesh_search = 1;
+
+    sf->winner_mode_sf.multi_winner_mode_type = MULTI_WINNER_MODE_FAST;
   }
 
   if (speed >= 6) {
@@ -459,7 +466,15 @@
 
     sf->rd_sf.perform_coeff_opt = 6;
     sf->lpf_sf.cdef_pick_method = CDEF_FAST_SEARCH_LVL4;
+
+    sf->winner_mode_sf.multi_winner_mode_type = MULTI_WINNER_MODE_OFF;
   }
+
+  // Intra txb hash is currently not compatible with multi-winner mode as the
+  // hashes got reset during multi-winner mode processing.
+  assert(IMPLIES(
+      sf->winner_mode_sf.multi_winner_mode_type != MULTI_WINNER_MODE_OFF,
+      !sf->tx_sf.use_intra_txb_hash));
 }
 
 static void set_good_speed_feature_framesize_dependent(