From: Marco Paniconi Date: Wed, 16 May 2018 21:52:17 +0000 (-0700) Subject: vp9-svc: Skip find_predictors based on ref_frame_flags. X-Git-Tag: v1.8.0~674 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d7b140487829ec81bd55774d22be6c8eba9073c0;p=libvpx 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 --- diff --git a/vp9/encoder/vp9_pickmode.c b/vp9/encoder/vp9_pickmode.c index 8e9ab7d25..b61a89471 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,