Add the speed feature structure for codec dev
This commit re-structures the speed feature setup for the codec
development purpose. Instead of progressively reducing encoder
complexity at the expense of incremental coding loss, we allow a
separate set of speed features, each corresponds to a certain
category of coding units:
1 << 0: transform coding
1 << 1: inter prediction
1 << 2: intra prediction
1 << 3: block partition
1 << 4: loop filters
1 << 5: rd early skip
[6 - 7] are left open for next adjustment.
It is constructed to facilitate the codec development purpose.
When working on a coding functions, one could choose to turn on
one or more less related coding units to speed up the evaluation
process. For example, to test a transform related experiment, one
could set
--dev-sf=2, 6, or 22
which corresponds to turning on:
2 - inter prediction speed features,
6 - both inter / intra speed features,
22 - inter / intra, and loop filter features.
The goal is to allow faster experimental verification during the
development process. With the experiment in a stable state, we
can evaluate its performance in speed 0 at higher confidence level.
Change-Id: Ib46c7dea2d2a60204c399dc01f10262c976adf0d
diff --git a/aomenc.c b/aomenc.c
index 6071e38..9438023 100644
--- a/aomenc.c
+++ b/aomenc.c
@@ -412,6 +412,8 @@
#if CONFIG_AV1_ENCODER
static const arg_def_t cpu_used_av1 =
ARG_DEF(NULL, "cpu-used", 1, "CPU Used (0..8)");
+static const arg_def_t dev_sf_av1 =
+ ARG_DEF(NULL, "dev-sf", 1, "Dev Speed (0..255)");
#if CONFIG_EXT_TILE
static const arg_def_t single_tile_decoding =
ARG_DEF(NULL, "single-tile-decoding", 1,
@@ -559,6 +561,7 @@
#endif // CONFIG_EXT_PARTITION
static const arg_def_t *av1_args[] = { &cpu_used_av1,
+ &dev_sf_av1,
&auto_altref,
&sharpness,
&static_thresh,
@@ -617,6 +620,7 @@
#endif // CONFIG_HIGHBITDEPTH
NULL };
static const int av1_arg_ctrl_map[] = { AOME_SET_CPUUSED,
+ AOME_SET_DEVSF,
AOME_SET_ENABLEAUTOALTREF,
AOME_SET_SHARPNESS,
AOME_SET_STATIC_THRESHOLD,