diff --git a/aom/aomcx.h b/aom/aomcx.h
index 6544b9f..2f9bafd 100644
--- a/aom/aomcx.h
+++ b/aom/aomcx.h
@@ -427,6 +427,19 @@
    */
   AOME_SET_ENABLEAUTOBWDREF,
 
+  /*!\brief Codec control function to encode with CDEF.
+   *
+   * CDEF is the constrained directional enhancement filter which is an
+   * in-loop filter aiming to remove coding artifacts
+   *                          0 = do not apply CDEF
+   *                          1 = apply CDEF
+   *
+   *  By default, the encoder applies CDEF.
+   *
+   * Experiment: AOM_CDEF
+   */
+  AV1E_SET_ENABLE_CDEF,
+
   /*!\brief Codec control function to encode with quantisation matrices.
    *
    * AOM can operate with default quantisation matrices dependent on
@@ -726,6 +739,9 @@
 AOM_CTRL_USE_TYPE(AV1E_SET_LOSSLESS, unsigned int)
 #define AOM_CTRL_AV1E_SET_LOSSLESS
 
+AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_CDEF, unsigned int)
+#define AOM_CTRL_AV1E_SET_ENABLE_CDEF
+
 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_QM, unsigned int)
 #define AOM_CTRL_AV1E_SET_ENABLE_QM
 
diff --git a/aomenc.c b/aomenc.c
index 43ad4bf..0ed4714 100644
--- a/aomenc.c
+++ b/aomenc.c
@@ -428,6 +428,12 @@
 #endif  // CONFIG_LOOPFILTERING_ACROSS_TILES
 static const arg_def_t lossless =
     ARG_DEF(NULL, "lossless", 1, "Lossless mode (0: false (default), 1: true)");
+#if CONFIG_CDEF
+static const arg_def_t enable_cdef =
+    ARG_DEF(NULL, "enable-cdef", 1,
+            "Enable the constrained directional enhancement filter (0: false, "
+            "1: true (default))");
+#endif
 #if CONFIG_AOM_QM
 static const arg_def_t enable_qm =
     ARG_DEF(NULL, "enable-qm", 1,
@@ -567,6 +573,9 @@
                                        &max_inter_rate_pct,
                                        &gf_cbr_boost_pct,
                                        &lossless,
+#if CONFIG_CDEF
+                                       &enable_cdef,
+#endif
 #if CONFIG_AOM_QM
                                        &enable_qm,
                                        &qm_min,
@@ -624,6 +633,9 @@
                                         AV1E_SET_MAX_INTER_BITRATE_PCT,
                                         AV1E_SET_GF_CBR_BOOST_PCT,
                                         AV1E_SET_LOSSLESS,
+#if CONFIG_CDEF
+                                        AV1E_SET_ENABLE_CDEF,
+#endif
 #if CONFIG_AOM_QM
                                         AV1E_SET_ENABLE_QM,
                                         AV1E_SET_QM_MIN,
diff --git a/av1/av1_cx_iface.c b/av1/av1_cx_iface.c
index c5a71b5..91e43db 100644
--- a/av1/av1_cx_iface.c
+++ b/av1/av1_cx_iface.c
@@ -54,6 +54,9 @@
   unsigned int rc_max_inter_bitrate_pct;
   unsigned int gf_cbr_boost_pct;
   unsigned int lossless;
+#if CONFIG_CDEF
+  unsigned int enable_cdef;
+#endif
 #if CONFIG_AOM_QM
   unsigned int enable_qm;
   unsigned int qm_min;
@@ -117,6 +120,9 @@
   0,              // rc_max_inter_bitrate_pct
   0,              // gf_cbr_boost_pct
   0,              // lossless
+#if CONFIG_CDEF
+  1,  // enable_cdef
+#endif
 #if CONFIG_AOM_QM
   0,                 // enable_qm
   DEFAULT_QM_FIRST,  // qm_min
@@ -495,6 +501,9 @@
   oxcf->cq_level = av1_quantizer_to_qindex(extra_cfg->cq_level);
   oxcf->fixed_q = -1;
 
+#if CONFIG_CDEF
+  oxcf->using_cdef = extra_cfg->enable_cdef;
+#endif
 #if CONFIG_AOM_QM
   oxcf->using_qm = extra_cfg->enable_qm;
   oxcf->qm_minlevel = extra_cfg->qm_min;
@@ -864,6 +873,15 @@
   return update_extra_cfg(ctx, &extra_cfg);
 }
 
+#if CONFIG_CDEF
+static aom_codec_err_t ctrl_set_enable_cdef(aom_codec_alg_priv_t *ctx,
+                                            va_list args) {
+  struct av1_extracfg extra_cfg = ctx->extra_cfg;
+  extra_cfg.enable_cdef = CAST(AV1E_SET_ENABLE_CDEF, args);
+  return update_extra_cfg(ctx, &extra_cfg);
+}
+#endif
+
 #if CONFIG_AOM_QM
 static aom_codec_err_t ctrl_set_enable_qm(aom_codec_alg_priv_t *ctx,
                                           va_list args) {
@@ -1589,6 +1607,9 @@
   { AV1E_SET_MAX_INTER_BITRATE_PCT, ctrl_set_rc_max_inter_bitrate_pct },
   { AV1E_SET_GF_CBR_BOOST_PCT, ctrl_set_rc_gf_cbr_boost_pct },
   { AV1E_SET_LOSSLESS, ctrl_set_lossless },
+#if CONFIG_CDEF
+  { AV1E_SET_ENABLE_CDEF, ctrl_set_enable_cdef },
+#endif
 #if CONFIG_AOM_QM
   { AV1E_SET_ENABLE_QM, ctrl_set_enable_qm },
   { AV1E_SET_QM_MIN, ctrl_set_qm_min },
diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c
index bde117c..e3630b0 100644
--- a/av1/encoder/encoder.c
+++ b/av1/encoder/encoder.c
@@ -4615,20 +4615,25 @@
 #endif
 #if CONFIG_LOOP_RESTORATION
   int no_restoration = 0;
-#endif
   if (is_lossless_requested(&cpi->oxcf)
 #if CONFIG_EXT_TILE
       || cm->single_tile_decoding
 #endif
       ) {
     no_loopfilter = 1;
-#if CONFIG_CDEF
-    no_cdef = 1;
-#endif
-#if CONFIG_LOOP_RESTORATION
     no_restoration = 1;
-#endif
   }
+#endif
+
+#if CONFIG_CDEF
+  if (is_lossless_requested(&cpi->oxcf) || !cpi->oxcf.using_cdef
+#if CONFIG_EXT_TILE
+      || cm->single_tile_decoding
+#endif
+      ) {
+    no_cdef = 1;
+  }
+#endif
 
   if (no_loopfilter) {
 #if CONFIG_LOOPFILTER_LEVEL
diff --git a/av1/encoder/encoder.h b/av1/encoder/encoder.h
index 32cb2f1..3584098 100644
--- a/av1/encoder/encoder.h
+++ b/av1/encoder/encoder.h
@@ -196,6 +196,9 @@
 #if CONFIG_EXT_DELTA_Q
   DELTAQ_MODE deltaq_mode;
 #endif
+#if CONFIG_CDEF
+  int using_cdef;
+#endif
 #if CONFIG_AOM_QM
   int using_qm;
   int qm_minlevel;
