shithub: libvpx

Download patch

ref: 5f39262dccb82a46cbce7a51c255432d22ef4049
parent: b937f1c839b15fa7329ae815cab744eb830fe4c4
author: Marco <marpan@google.com>
date: Fri Apr 14 06:16:44 EDT 2017

vp9: Adjust speed features for speed 8 at low resoln.

For low resolutions (<= CIF): use quarter-pixel and simple_block_yrd.

~5% gain on RTC_derf.
~6-7% slowdown on ARM.

Change-Id: I4439ebd1116b9decac04786503f978840b68a60c

--- a/vp9/encoder/vp9_speed_features.c
+++ b/vp9/encoder/vp9_speed_features.c
@@ -533,7 +533,11 @@
     if (cpi->row_mt && cpi->oxcf.max_threads > 1)
       sf->adaptive_rd_thresh_row_mt = 1;
 
-    sf->mv.subpel_force_stop = (content == VP9E_CONTENT_SCREEN) ? 3 : 2;
+    if (content == VP9E_CONTENT_SCREEN)
+      sf->mv.subpel_force_stop = 3;
+    else if (cm->width > 352 && cm->height > 288)
+      sf->mv.subpel_force_stop = 2;
+
     if (content == VP9E_CONTENT_SCREEN) sf->lpf_pick = LPF_PICK_MINIMAL_LPF;
     // Only keep INTRA_DC mode for speed 8.
     if (!is_keyframe) {
@@ -555,13 +559,13 @@
       }
       // Since the short_circuit_low_temp_var is used, reduce the
       // adaptive_rd_thresh level.
-      if (cm->width > 320 && cm->height > 240)
+      if (cm->width > 352 && cm->height > 288)
         sf->adaptive_rd_thresh = 1;
       else
         sf->adaptive_rd_thresh = 2;
     }
     sf->limit_newmv_early_exit = 0;
-    if (cm->width > 320 && cm->height > 240) sf->use_simple_block_yrd = 1;
+    sf->use_simple_block_yrd = 1;
   }
   // Turn off adaptive_rd_thresh if row_mt is on for speed 5, 6, 7.
   if (speed >= 5 && speed < 8 && cpi->row_mt && cpi->num_workers > 1) {
--