summaryrefslogtreecommitdiff
path: root/vp9/encoder
diff options
context:
space:
mode:
authorpaulwilkins <paulwilkins@google.com>2017-10-11 10:12:20 +0100
committerpaulwilkins <paulwilkins@google.com>2017-10-13 10:27:15 +0100
commit8842ee0b0d7975f72067b56ab66a7acbe22a65c7 (patch)
treeeddd37846607d148cd67e45a91efe7c6556fd83a /vp9/encoder
parent2b247ae91c8da78b25050d622a0a2ccc4bfc4855 (diff)
downloadlibvpx-8842ee0b0d7975f72067b56ab66a7acbe22a65c7.tar
libvpx-8842ee0b0d7975f72067b56ab66a7acbe22a65c7.tar.gz
libvpx-8842ee0b0d7975f72067b56ab66a7acbe22a65c7.tar.bz2
libvpx-8842ee0b0d7975f72067b56ab66a7acbe22a65c7.zip
Corpus VBR tweak for undershoot.
In cases of strong undershoot adjust Q range down faster. Change-Id: I84982beceb3c9b6dc50e52e4a6e891c7dd395d03
Diffstat (limited to 'vp9/encoder')
-rw-r--r--vp9/encoder/vp9_encoder.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c
index 765c0578b..20901d21d 100644
--- a/vp9/encoder/vp9_encoder.c
+++ b/vp9/encoder/vp9_encoder.c
@@ -3956,6 +3956,11 @@ static void encode_with_recode_loop(VP9_COMP *cpi, size_t *size,
// rate miss. If so adjust the active maxQ for the subsequent frames.
if (q > cpi->twopass.active_worst_quality) {
cpi->twopass.active_worst_quality = q;
+#ifdef CORPUS_VBR_EXPERIMENT
+ } else if (q == q_low && rc->projected_frame_size < rc->this_frame_target) {
+ cpi->twopass.active_worst_quality =
+ VPXMAX(q, cpi->twopass.active_worst_quality - 1);
+#endif
}
}