From d7b140487829ec81bd55774d22be6c8eba9073c0 Mon Sep 17 00:00:00 2001 From: Marco Paniconi Date: Wed, 16 May 2018 14:52:17 -0700 Subject: [PATCH] vp9-svc: Skip find_predictors based on ref_frame_flags. 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 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/vp9/encoder/vp9_pickmode.c b/vp9/encoder/vp9_pickmode.c index 8e9ab7d..b61a894 100644 --- a/vp9/encoder/vp9_pickmode.c +++ b/vp9/encoder/vp9_pickmode.c @@ -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, -- 2.7.4