shithub: libvpx

Download patch

ref: 77e51e2035b8818d2351d7bc6e3af423f91a69cf
parent: 98dbf31c877c1388c5776aba249f879cda3b2969
author: Marco <marpan@google.com>
date: Wed Oct 4 07:41:52 EDT 2017

Modify early exit for alt_ref in nonrd_pickmode.

For 1 pass vbr mode:
On no-show_frame/ARF: instead of skipping alt_ref_frame
completely in mode testing, allow for checking (0, 0) on alt_ref.

Small gain in metrics, ~0.18%, no change in speed.

Change-Id: I32a3c24faca64ab70dd5091071a0dc301db7dd1e

--- a/vp9/encoder/vp9_pickmode.c
+++ b/vp9/encoder/vp9_pickmode.c
@@ -1582,9 +1582,7 @@
       skip_ref_find_pred[LAST_FRAME] = 1;
       skip_ref_find_pred[GOLDEN_FRAME] = 1;
     }
-    if (cm->show_frame == 0) {
-      usable_ref_frame = GOLDEN_FRAME;
-      skip_ref_find_pred[ALTREF_FRAME] = 1;
+    if (!cm->show_frame) {
       if (cpi->rc.frames_since_key == 1) {
         usable_ref_frame = LAST_FRAME;
         skip_ref_find_pred[GOLDEN_FRAME] = 1;
@@ -1679,6 +1677,10 @@
       if (cpi->rc.is_src_frame_alt_ref &&
           (ref_frame != ALTREF_FRAME ||
            frame_mv[this_mode][ref_frame].as_int != 0))
+        continue;
+
+      if (!cm->show_frame && ref_frame == ALTREF_FRAME &&
+          frame_mv[this_mode][ref_frame].as_int != 0)
         continue;
 
       if (cpi->rc.alt_ref_gf_group && cm->show_frame &&