shithub: libvpx

Download patch

ref: 64742f825d1e17a33ed412001414848789258e03
parent: 2f16e79e620dff35df98e1cd939b081ca0c96b6c
parent: f31ff029df13a415ab2eb8c2abbc212b41d5d6af
author: Yunqing Wang <yunqingwang@google.com>
date: Tue Jul 1 12:05:51 EDT 2014

Merge "Elevate NEWMV mode checking threshold in real time"

--- a/vp9/encoder/vp9_rdopt.c
+++ b/vp9/encoder/vp9_rdopt.c
@@ -4273,6 +4273,7 @@
 void vp9_set_rd_speed_thresholds(VP9_COMP *cpi) {
   int i;
   RD_OPT *const rd = &cpi->rd;
+  SPEED_FEATURES *const sf = &cpi->sf;
 
   // Set baseline threshold values
   for (i = 0; i < MAX_MODES; ++i)
@@ -4350,6 +4351,10 @@
     rd->thresh_mult[THR_COMP_NEARGA   ] = INT_MAX;
     rd->thresh_mult[THR_COMP_NEWGA    ] = INT_MAX;
   }
+
+  // Adjust threshold only in real time mode, which only use last reference
+  // frame.
+  rd->thresh_mult[THR_NEWMV] += sf->elevate_newmv_thresh;
 }
 
 void vp9_set_rd_speed_thresholds_sub8x8(VP9_COMP *cpi) {
--- a/vp9/encoder/vp9_speed_features.c
+++ b/vp9/encoder/vp9_speed_features.c
@@ -277,11 +277,15 @@
 
     // This feature is only enabled when partition search is disabled.
     sf->reuse_inter_pred_sby = 1;
+
+    // Increase mode checking threshold for NEWMV.
+    sf->elevate_newmv_thresh = 2000;
   }
   if (speed >= 7) {
     sf->lpf_pick = LPF_PICK_MINIMAL_LPF;
     sf->encode_breakout_thresh = (MIN(cm->width, cm->height) >= 720) ?
         800 : 300;
+    sf->elevate_newmv_thresh = 2500;
   }
   if (speed >= 8) {
     int i;
@@ -352,6 +356,7 @@
   sf->always_this_block_size = BLOCK_16X16;
   sf->search_type_check_frequency = 50;
   sf->encode_breakout_thresh = 0;
+  sf->elevate_newmv_thresh = 0;
 
   // Recode loop tolerence %.
   sf->recode_tolerance = 25;
--- a/vp9/encoder/vp9_speed_features.h
+++ b/vp9/encoder/vp9_speed_features.h
@@ -361,6 +361,9 @@
   // This variable sets the encode_breakout threshold. Currently, it is only
   // enabled in real time mode.
   int encode_breakout_thresh;
+
+  // In real time encoding, increase the threshold for NEWMV.
+  int elevate_newmv_thresh;
 } SPEED_FEATURES;
 
 struct VP9_COMP;