Clarify low complexity decode mode support
Change-Id: I1b31ca127b4ee5838e368311f98a188651f7f64d
diff --git a/av1/arg_defs.c b/av1/arg_defs.c
index 81d00c4..1086567 100644
--- a/av1/arg_defs.c
+++ b/av1/arg_defs.c
@@ -709,9 +709,11 @@
ARG_DEF(NULL, "sb-qp-sweep", 1,
"When set to 1, enable the superblock level qp sweep for a "
"given lambda to minimize the rdcost."),
- .enable_low_complexity_decode =
- ARG_DEF(NULL, "enable-low-complexity-decode", 1,
- "Enable low complexity decode (0: false (default), 1: true)"),
+ .enable_low_complexity_decode = ARG_DEF(
+ NULL, "enable-low-complexity-decode", 1,
+ "Enable low complexity decode (0: false (default), 1: true). As of now, "
+ "this only supports good-quality encoding (speed 1 to 3) for vertical "
+ "videos between 608p and 720p."),
.screen_detection_mode =
ARG_DEF(NULL, "screen-detection-mode", 1,
"Screen content detection mode (1: standard (default), "
diff --git a/av1/av1_cx_iface.c b/av1/av1_cx_iface.c
index 07820d6..e414f8a 100644
--- a/av1/av1_cx_iface.c
+++ b/av1/av1_cx_iface.c
@@ -1337,11 +1337,15 @@
oxcf->speed = 7;
// Now, low complexity decode mode is only supported for good-quality
- // encoding speed 1 to 3. This can be further modified if needed.
+ // encoding speed 1 to 3 and for vertical videos with a resolution between
+ // 608p and 720p. This can be further modified if needed.
+ const int is_low_complexity_decode_mode_supported =
+ (cfg->g_usage == AOM_USAGE_GOOD_QUALITY) &&
+ (oxcf->speed >= 1 && oxcf->speed <= 3) && (cfg->g_w < cfg->g_h) &&
+ (AOMMIN(cfg->g_w, cfg->g_h) >= 608 && AOMMIN(cfg->g_w, cfg->g_h) <= 720);
oxcf->enable_low_complexity_decode =
extra_cfg->enable_low_complexity_decode &&
- cfg->g_usage == AOM_USAGE_GOOD_QUALITY && oxcf->speed >= 1 &&
- oxcf->speed <= 3;
+ is_low_complexity_decode_mode_supported;
// Set Color related configuration.
color_cfg->color_primaries = extra_cfg->color_primaries;