shithub: libvpx

Download patch

ref: a2f78c7c9793292bb3793e18317e8ef920c1105e
parent: d748cfdad2378fc488fb5df4411adf5f2d5b99c9
author: Marco Paniconi <marpan@google.com>
date: Mon Sep 3 06:15:38 EDT 2018

vp9-svc: Add bypass flag to constrain inter_layer.

The additional constraint imposed on inter-layer
prediction should only be done for non-bypass (fixed)
svc mode.

Change-Id: Ia22cdb7bc21684776c9a13397e177a1e1c3d55a2

--- a/vp9/encoder/vp9_svc_layercontext.c
+++ b/vp9/encoder/vp9_svc_layercontext.c
@@ -1005,11 +1005,13 @@
       }
     }
   }
-  // Check for disabling inter-layer prediction if the reference for inter-layer
-  // prediction (the reference that is scaled) is not the previous spatial layer
-  // from the same superframe, then we disable inter-layer prediction.
-  // Only need to check when inter_layer prediction is not set to OFF mode.
-  if (svc->disable_inter_layer_pred != INTER_LAYER_PRED_OFF) {
+  // For fixed/non-flexible SVC: check for disabling inter-layer prediction.
+  // If the reference for inter-layer prediction (the reference that is scaled)
+  // is not the previous spatial layer from the same superframe, then we disable
+  // inter-layer prediction. Only need to check when inter_layer prediction is
+  // not set to OFF mode.
+  if (svc->temporal_layering_mode != VP9E_TEMPORAL_LAYERING_MODE_BYPASS &&
+      svc->disable_inter_layer_pred != INTER_LAYER_PRED_OFF) {
     // We only use LAST and GOLDEN for prediction in real-time mode, so we
     // check both here.
     MV_REFERENCE_FRAME ref_frame;