]> granicus.if.org Git - libvpx/commitdiff
vp9: Adjust condition for checking intra mode.
authorMarco <marpan@google.com>
Thu, 29 Jun 2017 00:03:53 +0000 (17:03 -0700)
committerJerome Jiang <jianj@google.com>
Fri, 30 Jun 2017 21:52:00 +0000 (14:52 -0700)
For nonrd_pickmode: add condition for checking
intra mode if the sb content state is VeryHighSad.

Reduces artifacts when sudden change in content.

Metrics on RTC/RTC_derf neutral (small gain).
No speed loss observed.

Change-Id: I07006d28fd2dc06c1d06b07630102b0fece50c40

vp9/encoder/vp9_pickmode.c

index 17dc0637f33b8681cef74272469af827af842f53..d3de9515210043fee9c36cc8969b5c13397cb69f 100644 (file)
@@ -2096,7 +2096,8 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, TileDataEnc *tile_data,
   // Perform intra prediction search, if the best SAD is above a certain
   // threshold.
   if (best_rdc.rdcost == INT64_MAX ||
-      ((!force_skip_low_temp_var || bsize < BLOCK_32X32) &&
+      ((!force_skip_low_temp_var || bsize < BLOCK_32X32 ||
+        x->content_state_sb == kVeryHighSad) &&
        perform_intra_pred && !x->skip && best_rdc.rdcost > inter_mode_thresh &&
        bsize <= cpi->sf.max_intra_bsize && !x->skip_low_source_sad &&
        !x->lowvar_highsumdiff)) {