summaryrefslogtreecommitdiff
path: root/vp9
diff options
context:
space:
mode:
authorAlex Converse <aconverse@google.com>2015-09-03 14:53:40 -0700
committerAlex Converse <aconverse@google.com>2015-09-10 15:03:13 -0700
commit3d6b8a667f67b6c0f0689cb45a48b8510a64e0ce (patch)
tree4c27eb22ce9ebc6ab32772caf0d313ef4d31dbee /vp9
parentd5c0e366d7d86dc19d079ad608caacaef5fa9535 (diff)
downloadlibvpx-3d6b8a667f67b6c0f0689cb45a48b8510a64e0ce.tar
libvpx-3d6b8a667f67b6c0f0689cb45a48b8510a64e0ce.tar.gz
libvpx-3d6b8a667f67b6c0f0689cb45a48b8510a64e0ce.tar.bz2
libvpx-3d6b8a667f67b6c0f0689cb45a48b8510a64e0ce.zip
Prevent CR in screen mode from refreshing flat inter blocks forever.
Take the minimum last_codec_q_map on inter skip. Change-Id: Ibb308526dd19793bb359f51ebd7b48d8692903fd
Diffstat (limited to 'vp9')
-rw-r--r--vp9/encoder/vp9_aq_cyclicrefresh.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/vp9/encoder/vp9_aq_cyclicrefresh.c b/vp9/encoder/vp9_aq_cyclicrefresh.c
index a96cf5c5b..ebef1a202 100644
--- a/vp9/encoder/vp9_aq_cyclicrefresh.c
+++ b/vp9/encoder/vp9_aq_cyclicrefresh.c
@@ -235,6 +235,12 @@ void vp9_cyclic_refresh_update_segment(VP9_COMP *const cpi,
if (!is_inter_block(mbmi) || !skip)
cr->last_coded_q_map[map_offset] = clamp(
cm->base_qindex + cr->qindex_delta[mbmi->segment_id], 0, MAXQ);
+ else if (is_inter_block(mbmi) && skip) {
+ cr->last_coded_q_map[map_offset] = VPXMIN(
+ clamp(cm->base_qindex + cr->qindex_delta[mbmi->segment_id],
+ 0, MAXQ),
+ cr->last_coded_q_map[map_offset]);
+ }
}
}