summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_speed_features.h
diff options
context:
space:
mode:
authorHui Su <huisu@google.com>2018-09-25 12:19:53 -0700
committerHui Su <huisu@google.com>2018-09-28 09:07:54 -0700
commita2cd0170163b58cb151e19e26b7cb0b23f1783c4 (patch)
tree2bcde74f8ed9312bed17977c3c4fb75ccbf3ce27 /vp9/encoder/vp9_speed_features.h
parent308454502c665aaff9366206ce798bd4940772d0 (diff)
downloadlibvpx-a2cd0170163b58cb151e19e26b7cb0b23f1783c4.tar
libvpx-a2cd0170163b58cb151e19e26b7cb0b23f1783c4.tar.gz
libvpx-a2cd0170163b58cb151e19e26b7cb0b23f1783c4.tar.bz2
libvpx-a2cd0170163b58cb151e19e26b7cb0b23f1783c4.zip
Add ml_var_partition experiment
Make partition decisions using machine learning models. The goal is to achieve better coding quality than the variance-based parititioning without much encoding speed loss. To enable this experiment, use --enable-ml-var-partition for config. When eanbled, the variance-based partitioning is replaced by this ML based partitioing for speed 6 and above in real time mode(except low resolution or high bit-depth). Current coding gains(average PSNR): speed 6 speed 7 speed 8 rtc 2.04% 2.65% 3.90% ytlivehr 3.11% 4.53% 11.57% hdres(rtc mode) 5.10% Further testing and tuning is needed to see if the speed and quality tradeoff is reasonable. Change-Id: I0da5a2fbc22c3261832b32920ee36d9b19d417af
Diffstat (limited to 'vp9/encoder/vp9_speed_features.h')
-rw-r--r--vp9/encoder/vp9_speed_features.h15
1 files changed, 10 insertions, 5 deletions
diff --git a/vp9/encoder/vp9_speed_features.h b/vp9/encoder/vp9_speed_features.h
index 531df704c..acac39835 100644
--- a/vp9/encoder/vp9_speed_features.h
+++ b/vp9/encoder/vp9_speed_features.h
@@ -136,20 +136,25 @@ typedef enum {
} INTERP_FILTER_MASK;
typedef enum {
- // Search partitions using RD/NONRD criterion
+ // Search partitions using RD/NONRD criterion.
SEARCH_PARTITION,
- // Always use a fixed size partition
+ // Always use a fixed size partition.
FIXED_PARTITION,
REFERENCE_PARTITION,
// Use an arbitrary partitioning scheme based on source variance within
- // a 64X64 SB
+ // a 64X64 SB.
VAR_BASED_PARTITION,
- // Use non-fixed partitions based on source variance
- SOURCE_VAR_BASED_PARTITION
+ // Use non-fixed partitions based on source variance.
+ SOURCE_VAR_BASED_PARTITION,
+
+#if CONFIG_ML_VAR_PARTITION
+ // Make partition decisions with machine learning models.
+ ML_BASED_PARTITION
+#endif // CONFIG_ML_VAR_PARTITION
} PARTITION_SEARCH_TYPE;
typedef enum {