shithub: libvpx

Download patch

ref: 74a334da7a2a0d7fa75d4bc4c859445c5780f08d
parent: 8db47dfee5603121f074d3c0296b594e69a5e45c
author: Jingning Han <jingning@google.com>
date: Fri Sep 7 06:25:07 EDT 2018

Fork auto-alt-ref control

Temporarily fork the auto-alt-ref control meaning. When it is set
to be 1, use single layer ARF as baseline. The value 2 would enable
dual ARF system. Any number above it would trigger automatic multi-
layer ARFs.

We would gradually refactor and integrate dual ARF and multi-layer
ARF systems next, and eventually make auto-alt-ref directly control
the layer depth.

Change-Id: I292d27111ae8a596b97444afecf4b896043e543f

--- a/vp9/encoder/vp9_encoder.c
+++ b/vp9/encoder/vp9_encoder.c
@@ -6098,10 +6098,19 @@
   // Is multi-arf enabled.
   // Note that at the moment multi_arf is only configured for 2 pass VBR and
   // will not work properly with svc.
-  if ((oxcf->pass == 2) && !cpi->use_svc && (cpi->oxcf.enable_auto_arf > 1))
+  // TODO(jingning): enable dual ARF encoding when auto-alt-ref is set to be 2.
+  // We will refactor and integrate the dual ARF and multi-layer ARF system
+  // next and deprecate this special control setting, instead make auto-alt-ref
+  // directly controls the ARF layer depth.
+  if ((oxcf->pass == 2) && !cpi->use_svc && (cpi->oxcf.enable_auto_arf == 2))
     cpi->multi_arf_allowed = 1;
   else
     cpi->multi_arf_allowed = 0;
+
+  if (oxcf->pass == 2 && !cpi->use_svc && cpi->oxcf.enable_auto_arf > 2)
+    cpi->multi_layer_arf = 1;
+  else
+    cpi->multi_layer_arf = 0;
 
   // Normal defaults
   cm->reset_frame_context = 0;