diff options
author | Hui Su <huisu@google.com> | 2018-09-25 12:19:53 -0700 |
---|---|---|
committer | Hui Su <huisu@google.com> | 2018-09-28 09:07:54 -0700 |
commit | a2cd0170163b58cb151e19e26b7cb0b23f1783c4 (patch) | |
tree | 2bcde74f8ed9312bed17977c3c4fb75ccbf3ce27 /vp9/encoder/vp9_speed_features.h | |
parent | 308454502c665aaff9366206ce798bd4940772d0 (diff) | |
download | libvpx-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.h | 15 |
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 { |