Update use_prev_frame_mvs flag in decoder.
Added check to see if last frame was all intra. This will eliminate two checks in find_mv_refs_idx(). Also, do not update the frame mvs if the current frame is all intra. This improved performance on material with frequent intra-only frames. Change-Id: I44a4042c3670ab0d38439d565062a0e2a1ba9d1e
This commit is contained in:
@@ -1313,6 +1313,7 @@ static size_t read_uncompressed_header(VP9Decoder *pbi,
|
||||
size_t sz;
|
||||
|
||||
cm->last_frame_type = cm->frame_type;
|
||||
cm->last_intra_only = cm->intra_only;
|
||||
|
||||
if (vp9_rb_read_literal(rb, 2) != VP9_FRAME_MARKER)
|
||||
vpx_internal_error(&cm->error, VPX_CODEC_UNSUP_BITSTREAM,
|
||||
@@ -1639,8 +1640,9 @@ void vp9_decode_frame(VP9Decoder *pbi,
|
||||
cm->use_prev_frame_mvs = !cm->error_resilient_mode &&
|
||||
cm->width == cm->last_width &&
|
||||
cm->height == cm->last_height &&
|
||||
!cm->intra_only &&
|
||||
cm->last_show_frame;
|
||||
!cm->last_intra_only &&
|
||||
cm->last_show_frame &&
|
||||
(cm->last_frame_type != KEY_FRAME);
|
||||
|
||||
vp9_setup_block_planes(xd, cm->subsampling_x, cm->subsampling_y);
|
||||
|
||||
|
Reference in New Issue
Block a user