diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index 9b24f40..eb9fae7 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -3175,7 +3175,6 @@
   const double sse_norm = (double)sse / num_samples;
   const double qstepsqr = (double)qstep * qstep;
   const double xqr = log2(sse_norm / qstepsqr);
-
   double rate_f, dist_by_sse_norm_f;
   av1_model_rd_curvfit(plane_bsize, sse_norm, xqr, &rate_f,
                        &dist_by_sse_norm_f);
@@ -4474,7 +4473,8 @@
     }
   }
   // RD estimation.
-  model_rd_sb_fn[MODELRD_TYPE_INTRA](
+  model_rd_sb_fn[cpi->sf.use_simple_rd_model ? MODELRD_LEGACY
+                                             : MODELRD_TYPE_INTRA](
       cpi, bsize, x, xd, 0, 0, &this_rd_stats.rate, &this_rd_stats.dist,
       &this_rd_stats.skip, &temp_sse, NULL, NULL, NULL);
   if (av1_is_directional_mode(mbmi->mode) && av1_use_angle_delta(bsize)) {
@@ -8892,7 +8892,8 @@
                                   plane_from, plane_to);
   }
 
-  model_rd_sb_fn[MODELRD_TYPE_INTERP_FILTER](
+  model_rd_sb_fn[cpi->sf.use_simple_rd_model ? MODELRD_LEGACY
+                                             : MODELRD_TYPE_INTERP_FILTER](
       cpi, bsize, x, xd, plane_from, plane_to, &tmp_rd_stats.rate,
       &tmp_rd_stats.dist, &tmp_rd_stats.skip, &tmp_rd_stats.sse, NULL, NULL,
       NULL);
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index 51d8393..e4df066 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -692,6 +692,7 @@
     sf->adaptive_mode_search = 2;
     sf->force_tx_search_off = 1;
     sf->num_inter_modes_for_tx_search = 5;
+    sf->use_simple_rd_model = 1;
   }
   if (speed >= 7) {
     sf->lpf_pick = LPF_PICK_FROM_Q;
@@ -866,6 +867,7 @@
   sf->motion_mode_for_winner_cand = 0;
   sf->num_inter_modes_for_tx_search = INT_MAX;
   sf->prune_palette_search_level = 0;
+  sf->use_simple_rd_model = 0;
 
   for (i = 0; i < TX_SIZES; i++) {
     sf->intra_y_mode_mask[i] = INTRA_ALL;
diff --git a/av1/encoder/speed_features.h b/av1/encoder/speed_features.h
index 7a77d35..622090e 100644
--- a/av1/encoder/speed_features.h
+++ b/av1/encoder/speed_features.h
@@ -869,6 +869,9 @@
   // Use interpolation filter search in non-RD mode decision.
   int use_nonrd_filter_search;
 
+  // Use simplified RD model for interpolation search and Intra
+  int use_simple_rd_model;
+
   // If set forces interpolation filter to EIGHTTAP_REGULAR
   int skip_interp_filter_search;
 
