]> granicus.if.org Git - libvpx/commitdiff
vp9-svc: Skip find_predictors based on ref_frame_flags.
authorMarco Paniconi <marpan@google.com>
Wed, 16 May 2018 21:52:17 +0000 (14:52 -0700)
committerMarco Paniconi <marpan@google.com>
Thu, 17 May 2018 16:10:01 +0000 (09:10 -0700)
Has some effect for SVC on base spatial layers (which only
reference LAST) or on upper spatial layers when inter_layer
prediction is disabled.

Small speedup on Mac of ~1%, for 3 layer SVC with inter-layer
prediction disabled.

Change-Id: I05be5da8843e0d32e9d85f6eb951cf1894e781d8

vp9/encoder/vp9_pickmode.c

index 8e9ab7d25b56a4349ddf2de9ade978372535383f..b61a89471a9b570d0aedcb102f844a5198af4d00 100644 (file)
@@ -1689,6 +1689,10 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, TileDataEnc *tile_data,
   }
 
   for (ref_frame = LAST_FRAME; ref_frame <= usable_ref_frame; ++ref_frame) {
+    // Skip find_predictor if the reference frame is not in the
+    // ref_frame_flags (i.e., not used as a reference for this frame).
+    skip_ref_find_pred[ref_frame] =
+        !(cpi->ref_frame_flags & flag_list[ref_frame]);
     if (!skip_ref_find_pred[ref_frame]) {
       find_predictors(cpi, x, ref_frame, frame_mv, const_motion,
                       &ref_frame_skip_mask, flag_list, tile_data, mi_row,