diff --git a/aom/aom_encoder.h b/aom/aom_encoder.h
index bf42dc7..5ec26e4 100644
--- a/aom/aom_encoder.h
+++ b/aom/aom_encoder.h
@@ -238,6 +238,10 @@
    *
    */
   unsigned int disable_ml_partition_speed_features;
+  /*!\brief disable ml-based speed-up for transform search
+   *
+   */
+  unsigned int disable_ml_transform_speed_features;
 #if CONFIG_SDP
   /*!\brief enable Semi-decoupled partitioning
    *
diff --git a/apps/aomenc.c b/apps/aomenc.c
index 06a1079..fda2159 100644
--- a/apps/aomenc.c
+++ b/apps/aomenc.c
@@ -434,6 +434,7 @@
 };
 
 const arg_def_t *av1_key_val_args[] = {
+  &g_av1_codec_arg_defs.disable_ml_transform_speed_features,
 #if CONFIG_SDP
   &g_av1_codec_arg_defs.enable_sdp,
 #endif
@@ -582,6 +583,7 @@
   config->enable_ab_partitions = 1;
   config->enable_rect_partitions = 1;
   config->enable_1to4_partitions = 1;
+  config->disable_ml_transform_speed_features = 0;
 #if CONFIG_SDP
   config->enable_sdp = 1;
 #endif
@@ -1383,6 +1385,8 @@
   fprintf(
       stdout, "Tool setting (Partition)       : T-Type (%d), 4:1/1:4 (%d)\n",
       encoder_cfg->enable_ab_partitions, encoder_cfg->enable_1to4_partitions);
+  fprintf(stdout, "Disable ml transform speed features          : %d\n",
+          encoder_cfg->disable_ml_transform_speed_features);
 #if CONFIG_SDP
   fprintf(stdout, "                               : SDP (%d)\n",
           encoder_cfg->enable_sdp);
diff --git a/av1/arg_defs.c b/av1/arg_defs.c
index c381ac9..ebb2469 100644
--- a/av1/arg_defs.c
+++ b/av1/arg_defs.c
@@ -346,6 +346,10 @@
   .enable_1to4_partitions = ARG_DEF(NULL, "enable-1to4-partitions", 1,
                                     "Enable 1:4 and 4:1 partitions "
                                     "(0: false, 1: true (default))"),
+  .disable_ml_transform_speed_features =
+      ARG_DEF(NULL, "disable-ml-transform-speed-features", 1,
+              "Disable ML transform speed features "
+              "(0: false (default), 1: true)"),
 #if CONFIG_SDP
   .enable_sdp = ARG_DEF(NULL, "enable-sdp", 1,
                         "Enable semi decoupled partitioning for key frame"
diff --git a/av1/arg_defs.h b/av1/arg_defs.h
index 60a1ff6..6653b49 100644
--- a/av1/arg_defs.h
+++ b/av1/arg_defs.h
@@ -138,6 +138,7 @@
   arg_def_t enable_rect_partitions;
   arg_def_t enable_ab_partitions;
   arg_def_t enable_1to4_partitions;
+  arg_def_t disable_ml_transform_speed_features;
 #if CONFIG_SDP
   arg_def_t enable_sdp;
 #endif
diff --git a/av1/av1_cx_iface.c b/av1/av1_cx_iface.c
index 35651e5..a483654 100644
--- a/av1/av1_cx_iface.c
+++ b/av1/av1_cx_iface.c
@@ -113,6 +113,7 @@
   int enable_rect_partitions;  // enable rectangular partitions for sequence
   int enable_ab_partitions;    // enable AB partitions for sequence
   int enable_1to4_partitions;  // enable 1:4 and 4:1 partitions for sequence
+  int disable_ml_transform_speed_features;  // disable all ml transform speedups
 #if CONFIG_SDP
   int enable_sdp;  // enable semi-decoupled partitioning
 #endif             // CONFIG_SDP
@@ -389,6 +390,7 @@
   1,                            // enable rectangular partitions
   1,                            // enable ab shape partitions
   1,                            // enable 1:4 and 4:1 partitions
+  0,                            // disable ml based transform speed features
 #if CONFIG_SDP
   1,    // enable semi-decoupled partitioning
 #endif  // CONFIG_SDP
@@ -841,6 +843,8 @@
   cfg->enable_rect_partitions = extra_cfg->enable_rect_partitions;
   cfg->enable_ab_partitions = extra_cfg->enable_ab_partitions;
   cfg->enable_1to4_partitions = extra_cfg->enable_1to4_partitions;
+  cfg->disable_ml_transform_speed_features =
+      extra_cfg->disable_ml_transform_speed_features;
 #if CONFIG_SDP
   cfg->enable_sdp = extra_cfg->enable_sdp;
 #endif
@@ -907,6 +911,8 @@
   extra_cfg->enable_rect_partitions = cfg->enable_rect_partitions;
   extra_cfg->enable_ab_partitions = cfg->enable_ab_partitions;
   extra_cfg->enable_1to4_partitions = cfg->enable_1to4_partitions;
+  extra_cfg->disable_ml_transform_speed_features =
+      cfg->disable_ml_transform_speed_features;
 #if CONFIG_SDP
   extra_cfg->enable_sdp = cfg->enable_sdp;
 #endif
@@ -1381,6 +1387,8 @@
   txfm_cfg->use_intra_dct_only = extra_cfg->use_intra_dct_only;
   txfm_cfg->use_inter_dct_only = extra_cfg->use_inter_dct_only;
   txfm_cfg->use_intra_default_tx_only = extra_cfg->use_intra_default_tx_only;
+  txfm_cfg->disable_ml_transform_speed_features =
+      extra_cfg->disable_ml_transform_speed_features;
 #if CONFIG_IST
   txfm_cfg->enable_ist = extra_cfg->enable_ist;
 #endif
@@ -3543,6 +3551,12 @@
                  argv, err_string)) {
     extra_cfg.disable_ml_partition_speed_features =
         arg_parse_int_helper(&arg, err_string);
+  } else if (arg_match_helper(
+                 &arg,
+                 &g_av1_codec_arg_defs.disable_ml_transform_speed_features,
+                 argv, err_string)) {
+    extra_cfg.disable_ml_transform_speed_features =
+        arg_parse_int_helper(&arg, err_string);
 #if CONFIG_SDP
   } else if (arg_match_helper(&arg, &g_av1_codec_arg_defs.enable_sdp, argv,
                               err_string)) {
@@ -3970,7 +3984,7 @@
     0,                           // use_fixed_qp_offsets
     { -1, -1, -1, -1, -1, -1 },  // fixed_qp_offsets
     {
-        0, 128, 128, 4, 1, 1, 1, 0,
+        0, 128, 128, 4, 1, 1, 1, 0, 0,
 #if CONFIG_SDP
         1,
 #endif  // CONFIG_SDP
diff --git a/av1/encoder/encoder.h b/av1/encoder/encoder.h
index 9c3f4c2..71a1158 100644
--- a/av1/encoder/encoder.h
+++ b/av1/encoder/encoder.h
@@ -285,6 +285,10 @@
  */
 typedef struct {
   /*!
+   * Flag to disable ml based transform speed features.
+   */
+  bool disable_ml_transform_speed_features;
+  /*!
    * Flag to indicate if 64-pt transform should be enabled.
    */
   bool enable_tx64;
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index 067986b..cc42808 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -883,6 +883,14 @@
   lpf_sf->disable_lr_filter = 0;
 }
 
+static void av1_disable_ml_based_transform_sf(TX_SPEED_FEATURES *const tx_sf) {
+  tx_sf->tx_type_search.prune_2d_txfm_mode = TX_TYPE_PRUNE_0;
+  tx_sf->tx_type_search.ml_tx_split_thresh = -1;
+#if CONFIG_NEW_TX_PARTITION
+  tx_sf->tx_type_search.ml_tx_split_horzvert_thresh = -1;
+#endif  // CONFIG_NEW_TX_PARTITION
+}
+
 static void av1_disable_ml_based_partition_sf(
     PARTITION_SPEED_FEATURES *const part_sf) {
   part_sf->ml_prune_4_partition = 0;
@@ -916,6 +924,9 @@
 
   if (oxcf->part_cfg.disable_ml_partition_speed_features)
     av1_disable_ml_based_partition_sf(&sf->part_sf);
+
+  if (oxcf->txfm_cfg.disable_ml_transform_speed_features)
+    av1_disable_ml_based_transform_sf(&sf->tx_sf);
 }
 
 void av1_set_speed_features_framesize_independent(AV1_COMP *cpi, int speed) {
diff --git a/common/args.c b/common/args.c
index 6c8e401..6665645 100644
--- a/common/args.c
+++ b/common/args.c
@@ -81,6 +81,7 @@
     GET_PARAMS(enable_rect_partitions);
     GET_PARAMS(enable_1to4_partitions);
     GET_PARAMS(disable_ml_partition_speed_features);
+    GET_PARAMS(disable_ml_transform_speed_features);
 #if CONFIG_SDP
     GET_PARAMS(enable_sdp);
 #endif
