]> granicus.if.org Git - libvpx/commitdiff
vp9: Adjust speed features for speed 8 at low resoln.
authorMarco <marpan@google.com>
Fri, 14 Apr 2017 17:16:44 +0000 (10:16 -0700)
committerMarco <marpan@google.com>
Fri, 14 Apr 2017 18:35:47 +0000 (11:35 -0700)
For low resolutions (<= CIF): use quarter-pixel and simple_block_yrd.

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

Change-Id: I4439ebd1116b9decac04786503f978840b68a60c

vp9/encoder/vp9_speed_features.c

index f74b6b0e9e3db899a3087749a8ca83f9af56b3e6..54a90c77b0469762cc5be8e60c6c64052801e0df 100644 (file)
@@ -533,7 +533,11 @@ static void set_rt_speed_feature_framesize_independent(
     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 @@ static void set_rt_speed_feature_framesize_independent(
       }
       // 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) {