shithub: libvpx

Download patch

ref: c216c8d6f29c74f58bebc11701b762fbfd74c55a
parent: 507204316aaaca39da9ccfa93645302be4a3fd70
author: Marco <marpan@google.com>
date: Sun Mar 12 18:38:52 EDT 2017

vp9: Speed >= 8: Enable simple_block_yrd speed feature.

Enable speed feature for resolutions > VGA.
avgPSNR on RTC down by ~1.7%.
Speedup on ARM: ~5%.

Change-Id: I7a3fe5f7425aa8df3f4a2eced1afa355bc0d4c95

--- a/vp9/encoder/vp9_pickmode.c
+++ b/vp9/encoder/vp9_pickmode.c
@@ -652,7 +652,7 @@
 #endif
 
   if (cpi->sf.use_simple_block_yrd && cpi->common.frame_type != KEY_FRAME &&
-      !cyclic_refresh_segment_id_boosted(xd->mi[0]->segment_id)) {
+      bsize < BLOCK_32X32) {
     unsigned int var_y, sse_y;
     (void)tx_size;
     model_rd_for_sb_y(cpi, bsize, x, xd, &this_rdc->rate, &this_rdc->dist,
--- a/vp9/encoder/vp9_speed_features.c
+++ b/vp9/encoder/vp9_speed_features.c
@@ -568,7 +568,7 @@
       sf->adaptive_rd_thresh = 2;
     }
     sf->limit_newmv_early_exit = 0;
-    sf->use_simple_block_yrd = 0;
+    if (cm->width > 640 && cm->height > 480) sf->use_simple_block_yrd = 1;
   }
   // Turn off adaptive_rd_thresh if row_mt is on for all the non-rd paths. This
   // causes too many locks in realtime mode in certain platforms (Android ARM,