summaryrefslogtreecommitdiff
path: root/vp9/encoder
diff options
context:
space:
mode:
authorHui Su <huisu@google.com>2018-08-27 17:32:05 -0700
committerHui Su <huisu@google.com>2018-08-28 10:30:43 -0700
commit545bd0ca0e0c92383c159dfbfda300d28fb4ca05 (patch)
treeee6baaf93984fc6add3c3b6ec34afddded2033e3 /vp9/encoder
parentdbcb89be244e03074ee80e7bc6d5c22e6fc5dd79 (diff)
downloadlibvpx-545bd0ca0e0c92383c159dfbfda300d28fb4ca05.tar
libvpx-545bd0ca0e0c92383c159dfbfda300d28fb4ca05.tar.gz
libvpx-545bd0ca0e0c92383c159dfbfda300d28fb4ca05.tar.bz2
libvpx-545bd0ca0e0c92383c159dfbfda300d28fb4ca05.zip
Skip unnecessary motion search
If a ref frame is masked out, we do not need to do motion search for it. It makes speed 0 a little faster. Change-Id: I68f71255b2798b24fd1d5b28ed24a2ef87251413
Diffstat (limited to 'vp9/encoder')
-rw-r--r--vp9/encoder/vp9_rdopt.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c
index cf4b5d033..2830b0793 100644
--- a/vp9/encoder/vp9_rdopt.c
+++ b/vp9/encoder/vp9_rdopt.c
@@ -3144,7 +3144,8 @@ void vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, TileDataEnc *tile_data,
for (ref_frame = LAST_FRAME; ref_frame <= ALTREF_FRAME; ++ref_frame) {
x->pred_mv_sad[ref_frame] = INT_MAX;
- if (cpi->ref_frame_flags & flag_list[ref_frame]) {
+ if ((cpi->ref_frame_flags & flag_list[ref_frame]) &&
+ !(is_rect_partition && (ctx->skip_ref_frame_mask & (1 << ref_frame)))) {
assert(get_ref_frame_buffer(cpi, ref_frame) != NULL);
setup_buffer_inter(cpi, x, ref_frame, bsize, mi_row, mi_col,
frame_mv[NEARESTMV], frame_mv[NEARMV], yv12_mb);