Expose dual filter & order hint as aomenc options
Allows these tools to be toggled by the encoder.
Change-Id: If0c1f5a5989f203c018c0fb8ce808cf1e970b152
diff --git a/aom/aomcx.h b/aom/aomcx.h
index b4f7a7a..896945a 100644
--- a/aom/aomcx.h
+++ b/aom/aomcx.h
@@ -757,6 +757,15 @@
*/
AV1E_SET_ALLOW_REF_FRAME_MVS,
+ /*!\brief Codec control function to turn on / off dual filter usage
+ * for a sequence.
+ *
+ * This will enable or disable use of dual interpolation filter.
+ * The default value is 1.
+ *
+ */
+ AV1E_SET_ENABLE_DUAL_FILTER,
+
/*!\brief Codec control function to turn on / off masked compound usage
* for a sequence.
*
@@ -1086,6 +1095,9 @@
AOM_CTRL_USE_TYPE(AV1E_SET_ALLOW_REF_FRAME_MVS, unsigned int)
#define AOM_CTRL_AV1E_SET_ALLOW_REF_FRAME_MVS
+AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DUAL_FILTER, unsigned int)
+#define AOM_CTRL_AV1E_SET_ENABLE_DUAL_FILTER
+
AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_MASKED_COMP, unsigned int)
#define AOM_CTRL_AV1E_SET_ENABLE_MASKED_COMP
diff --git a/apps/aomenc.c b/apps/aomenc.c
index d187e1b..dda82f6 100644
--- a/apps/aomenc.c
+++ b/apps/aomenc.c
@@ -437,6 +437,14 @@
ARG_DEF(NULL, "enable-restoration", 1,
"Enable the loop restoration filter (0: false, "
"1: true (default))");
+static const arg_def_t enable_dual_filter =
+ ARG_DEF(NULL, "enable-dual-filter", 1,
+ "Enable dual filter "
+ "(0: false, 1: true (default))");
+static const arg_def_t enable_order_hint =
+ ARG_DEF(NULL, "enable-order-hint", 1,
+ "Enable order hint "
+ "(0: false, 1: true (default))");
static const arg_def_t enable_jnt_comp =
ARG_DEF(NULL, "enable-dist-wtd-comp", 1,
"Enable distance-weighted compound "
@@ -662,6 +670,8 @@
&lossless,
&enable_cdef,
&enable_restoration,
+ &enable_dual_filter,
+ &enable_order_hint,
&enable_jnt_comp,
&enable_masked_comp,
&enable_interintra_comp,
@@ -727,6 +737,8 @@
AV1E_SET_LOSSLESS,
AV1E_SET_ENABLE_CDEF,
AV1E_SET_ENABLE_RESTORATION,
+ AV1E_SET_ENABLE_DUAL_FILTER,
+ AV1E_SET_ENABLE_ORDER_HINT,
AV1E_SET_ENABLE_JNT_COMP,
AV1E_SET_ENABLE_MASKED_COMP,
AV1E_SET_ENABLE_INTERINTRA_COMP,
@@ -767,7 +779,6 @@
#endif
AV1E_SET_ENABLE_REF_FRAME_MVS,
AV1E_SET_ENABLE_DF,
- AV1E_SET_ENABLE_ORDER_HINT,
AV1E_SET_ENABLE_SUPERRES,
0 };
#endif // CONFIG_AV1_ENCODER
diff --git a/av1/av1_cx_iface.c b/av1/av1_cx_iface.c
index 0cee628..13d46f4 100644
--- a/av1/av1_cx_iface.c
+++ b/av1/av1_cx_iface.c
@@ -72,7 +72,7 @@
aom_timing_info_type_t timing_info_type;
unsigned int frame_parallel_decoding_mode;
- int use_dual_filter;
+ int enable_dual_filter;
AQ_MODE aq_mode;
DELTAQ_MODE deltaq_mode;
unsigned int frame_periodic_boost;
@@ -671,7 +671,7 @@
oxcf->monochrome = cfg->monochrome;
oxcf->full_still_picture_hdr = cfg->full_still_picture_hdr;
- oxcf->enable_dual_filter = extra_cfg->use_dual_filter;
+ oxcf->enable_dual_filter = extra_cfg->enable_dual_filter;
oxcf->enable_order_hint = extra_cfg->enable_order_hint;
oxcf->enable_jnt_comp =
extra_cfg->enable_jnt_comp & extra_cfg->enable_order_hint;
@@ -1032,7 +1032,7 @@
static aom_codec_err_t ctrl_set_enable_df(aom_codec_alg_priv_t *ctx,
va_list args) {
struct av1_extracfg extra_cfg = ctx->extra_cfg;
- extra_cfg.use_dual_filter = CAST(AV1E_SET_ENABLE_DF, args);
+ extra_cfg.enable_dual_filter = CAST(AV1E_SET_ENABLE_DF, args);
return update_extra_cfg(ctx, &extra_cfg);
}