summaryrefslogtreecommitdiff
path: root/vp9/encoder
diff options
context:
space:
mode:
authorMarco <marpan@chromium.org>2015-09-21 10:20:14 -0700
committerMarco <marpan@chromium.org>2015-09-21 10:32:23 -0700
commit38ad2dcea6cd20c46a0d6c6ba21df6363cb7f0f9 (patch)
tree49a0c1a6f72abe58c0725c9a9b53145b9cc75478 /vp9/encoder
parent571b7c978ec5fed594f7abdd451974e671e6b8bb (diff)
downloadlibvpx-38ad2dcea6cd20c46a0d6c6ba21df6363cb7f0f9.tar
libvpx-38ad2dcea6cd20c46a0d6c6ba21df6363cb7f0f9.tar.gz
libvpx-38ad2dcea6cd20c46a0d6c6ba21df6363cb7f0f9.tar.bz2
libvpx-38ad2dcea6cd20c46a0d6c6ba21df6363cb7f0f9.zip
Non-rd pickmode: Don't skip checking zeromv-last mode.
Reference frame masking logic may skip checking zeromv-last mode. Fix to avoid this and make sure zero-last is always checked. No noticeable change in speed, and PSNR/SSIM metrics on RTC set overall neutral (very small gain ~0.02). Small visual improvement on few RTC clips. Change-Id: I26eacdc449126424001a4a64e5ac31949f064417
Diffstat (limited to 'vp9/encoder')
-rw-r--r--vp9/encoder/vp9_pickmode.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/vp9/encoder/vp9_pickmode.c b/vp9/encoder/vp9_pickmode.c
index 19b0beb34..5a4b26a92 100644
--- a/vp9/encoder/vp9_pickmode.c
+++ b/vp9/encoder/vp9_pickmode.c
@@ -1238,10 +1238,12 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
if (const_motion[ref_frame] && this_mode == NEARMV)
continue;
- i = (ref_frame == LAST_FRAME) ? GOLDEN_FRAME : LAST_FRAME;
- if ((cpi->ref_frame_flags & flag_list[i]) && sf->reference_masking)
- if (x->pred_mv_sad[ref_frame] > (x->pred_mv_sad[i] << 1))
- ref_frame_skip_mask |= (1 << ref_frame);
+ if (!(this_mode == ZEROMV && ref_frame == LAST_FRAME)) {
+ i = (ref_frame == LAST_FRAME) ? GOLDEN_FRAME : LAST_FRAME;
+ if ((cpi->ref_frame_flags & flag_list[i]) && sf->reference_masking)
+ if (x->pred_mv_sad[ref_frame] > (x->pred_mv_sad[i] << 1))
+ ref_frame_skip_mask |= (1 << ref_frame);
+ }
if (ref_frame_skip_mask & (1 << ref_frame))
continue;