diff options
author | Scott LaVarnway <slavarnway@google.com> | 2015-06-08 03:38:13 -0700 |
---|---|---|
committer | Scott LaVarnway <slavarnway@google.com> | 2015-06-08 03:38:13 -0700 |
commit | c9976b32b4397360192caef74a1bfee026d52b9c (patch) | |
tree | de65d7c53112f368f44da7de96661f2253bc5c96 /vp9/decoder/vp9_decodeframe.c | |
parent | 78b434e8b1c770c8abbd719cc838317f1b8e303c (diff) | |
download | libvpx-c9976b32b4397360192caef74a1bfee026d52b9c.tar libvpx-c9976b32b4397360192caef74a1bfee026d52b9c.tar.gz libvpx-c9976b32b4397360192caef74a1bfee026d52b9c.tar.bz2 libvpx-c9976b32b4397360192caef74a1bfee026d52b9c.zip |
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
Diffstat (limited to 'vp9/decoder/vp9_decodeframe.c')
-rw-r--r-- | vp9/decoder/vp9_decodeframe.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/vp9/decoder/vp9_decodeframe.c b/vp9/decoder/vp9_decodeframe.c index 40055370a..c310cdb67 100644 --- a/vp9/decoder/vp9_decodeframe.c +++ b/vp9/decoder/vp9_decodeframe.c @@ -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); |