vp9: Change the scheme for modeling rd for 32x32 on newmv_last mode.
authorJackyChen <jackychen@google.com>
Wed, 29 Jun 2016 23:22:12 +0000 (16:22 -0700)
committerJackyChen <jackychen@google.com>
Wed, 29 Jun 2016 23:28:15 +0000 (16:28 -0700)
For real time CBR mode, use model_rd_for_sb_y for 32x32 if the mode is
newmv last, which is less aggressive in skipping transform and
quantization, to avoid quality regression in some conditions.

Change-Id: Ifa30be587f2a8a4a7f182a172de6ce277c0f8556

vp9/encoder/vp9_pickmode.c

index 7db6ef2..4f3b645 100644 (file)
@@ -1744,7 +1744,8 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
 #if CONFIG_VP9_HIGHBITDEPTH
       const int large_block = bsize > BLOCK_32X32;
 #else
-      const int large_block = bsize >= BLOCK_32X32;
+      const int large_block = (this_mode == NEWMV && ref_frame == LAST_FRAME) ?
+          bsize > BLOCK_32X32 : bsize >= BLOCK_32X32;
 #endif
       mi->interp_filter = (filter_ref == SWITCHABLE) ? EIGHTTAP : filter_ref;
       vp9_build_inter_predictors_sby(xd, mi_row, mi_col, bsize);