shithub: libvpx

Download patch

ref: 8d5461eb0aaeca4c5e51b8f142cf7f4d281d8afe
parent: 0c5fd59efdb234fe0231615c858e1f9c9945cbfa
author: Hui Su <huisu@google.com>
date: Wed Oct 17 04:40:26 EDT 2018

Enable rect partition search for HBD at speed 1

This patch enables rectangular partition search on speed 1 for high
bit depth encoding. The encoding speed loss is reduced thanks to
recently added speed features.

This only affects speed 1 high bit-depth encoding.

Coding gains:
                      avg_psnr     ovr_psnr
lowres_bd10(480p)      1.34%        1.40%
midres_bd10(720p)      1.28%        1.33%

Average speed loss:
        QP=30    QP=40    QP=50    average
480p     2.5%     2.3%     2.6%     2.5%
720p     4.0%     3.9%     3.2%     3.7%

Change-Id: Id9cac4eea0769d94e093c9d170194659b3342d89

--- a/vp9/encoder/vp9_speed_features.c
+++ b/vp9/encoder/vp9_speed_features.c
@@ -116,17 +116,13 @@
       sf->ml_partition_search_breakout_thresh[1] = -1.0f;
       sf->ml_partition_search_breakout_thresh[2] = -1.0f;
     }
-
 #if CONFIG_VP9_HIGHBITDEPTH
     if (cpi->Source->flags & YV12_FLAG_HIGHBITDEPTH) {
-      sf->use_square_only_thresh_high = BLOCK_4X4;
-      sf->use_square_only_thresh_low = BLOCK_SIZES;
-      if (is_720p_or_larger) {
-        sf->partition_search_breakout_thr.dist = (1 << 23);
-        sf->use_ml_partition_search_breakout = 0;
-      }
+      sf->ml_partition_search_breakout_thresh[0] -= 1.0f;
+      sf->ml_partition_search_breakout_thresh[1] -= 1.0f;
+      sf->ml_partition_search_breakout_thresh[2] -= 1.0f;
     }
-#endif
+#endif  // CONFIG_VP9_HIGHBITDEPTH
   }
 
   if (speed >= 2) {
@@ -246,10 +242,6 @@
     sf->ml_prune_rect_partition_threhold[1] = 200;
     sf->ml_prune_rect_partition_threhold[2] = 200;
     sf->ml_prune_rect_partition_threhold[3] = 200;
-#if CONFIG_VP9_HIGHBITDEPTH
-    if (cpi->Source->flags & YV12_FLAG_HIGHBITDEPTH)
-      sf->prune_ref_frame_for_rect_partitions = 0;
-#endif  // CONFIG_VP9_HIGHBITDEPTH
 
     if (oxcf->pass == 2) {
       TWO_PASS *const twopass = &cpi->twopass;