diff --git a/aom/aom_encoder.h b/aom/aom_encoder.h
index 3a4afa0..d548001 100644
--- a/aom/aom_encoder.h
+++ b/aom/aom_encoder.h
@@ -42,7 +42,7 @@
  * fields to structures
  */
 #define AOM_ENCODER_ABI_VERSION \
-  (9 + AOM_CODEC_ABI_VERSION + AOM_EXT_PART_ABI_VERSION) /**<\hideinitializer*/
+  (10 + AOM_CODEC_ABI_VERSION + AOM_EXT_PART_ABI_VERSION) /**<\hideinitializer*/
 
 /*! \brief Encoder capabilities bitfield
  *
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index aef9ba5..f104644 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -277,13 +277,13 @@
   }
 
   if (speed >= 7) {
-    if (!is_480p_or_larger) {
-      sf->rt_sf.nonrd_check_partition_merge_mode = 2;
-    }
+    // TODO(kyslov): add more speed features to control speed/quality
   }
 
   if (speed >= 8) {
-    // TODO(kyslov): add more speed features to control speed/quality
+    if (!is_480p_or_larger) {
+      sf->rt_sf.nonrd_check_partition_merge_mode = 2;
+    }
   }
 
   if (speed >= 9) {
@@ -483,18 +483,22 @@
 
     sf->winner_mode_sf.multi_winner_mode_type = MULTI_WINNER_MODE_OFF;
   }
-
+  // The following should make all-intra mode speed 7 approximately equal
+  // to real-time speed 6,
+  // all-intra speed 8 close to real-time speed 7, and all-intra speed 9
+  // close to real-time speed 8
   if (speed >= 7) {
     sf->part_sf.default_min_partition_size = BLOCK_8X8;
     sf->part_sf.partition_search_type = VAR_BASED_PARTITION;
-
     sf->lpf_sf.cdef_pick_method = CDEF_PICK_FROM_Q;
-
     sf->rt_sf.mode_search_skip_flags |= FLAG_SKIP_INTRA_DIRMISMATCH;
+  }
+
+  if (speed >= 8) {
+    sf->rt_sf.hybrid_intra_pickmode = 1;
     sf->rt_sf.use_nonrd_pick_mode = 1;
     sf->rt_sf.nonrd_check_partition_merge_mode = 1;
     sf->rt_sf.nonrd_check_partition_split = 0;
-    sf->rt_sf.skip_intra_pred_if_tx_skip = 1;
     // Set mask for intra modes.
     for (int i = 0; i < BLOCK_SIZES; ++i)
       if (i >= BLOCK_32X32)
@@ -504,12 +508,9 @@
         sf->rt_sf.intra_y_mode_bsize_mask_nrd[i] = INTRA_DC_H_V;
   }
 
-  if (speed >= 8) {
-    // TODO(kyslov): add more speed features to control speed/quality
-  }
-
   if (speed >= 9) {
-    // TODO(kyslov): add more speed features to control speed/quality
+    sf->rt_sf.nonrd_check_partition_merge_mode = 0;
+    sf->rt_sf.hybrid_intra_pickmode = 0;
   }
 
   // Intra txb hash is currently not compatible with multi-winner mode as the
