From a925173da0244d81db91c98f603751c951fdf547 Mon Sep 17 00:00:00 2001 From: Marco Date: Wed, 20 Jan 2016 17:44:02 -0800 Subject: [PATCH] vp9-aqmode=3: Reduce condition below which we turn off delta-qp. Add TODO to consider turning-off more smoothly. Change-Id: Id6dd4c5c515f5b09c388af965eb27dbe24924362 --- vp9/encoder/vp9_aq_cyclicrefresh.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/vp9/encoder/vp9_aq_cyclicrefresh.c b/vp9/encoder/vp9_aq_cyclicrefresh.c index 873fe0a..57a81c0 100644 --- a/vp9/encoder/vp9_aq_cyclicrefresh.c +++ b/vp9/encoder/vp9_aq_cyclicrefresh.c @@ -60,6 +60,8 @@ void vp9_cyclic_refresh_free(CYCLIC_REFRESH *cr) { } // Check if we should turn off cyclic refresh based on bitrate condition. +// TODO(marpan): May be better in some cases to just reduce the amount/delta-qp +// instead of completely shutting off. static int apply_cyclic_refresh_bitrate(const VP9_COMMON *cm, const RATE_CONTROL *rc) { // Turn off cyclic refresh if bits available per frame is not sufficiently @@ -67,10 +69,10 @@ static int apply_cyclic_refresh_bitrate(const VP9_COMMON *cm, // with number of seg blocks, so compare available bits to number of blocks. // Average bits available per frame = avg_frame_bandwidth // Number of (8x8) blocks in frame = mi_rows * mi_cols; - const float factor = 0.25; + const float factor = 0.15; const int number_blocks = cm->mi_rows * cm->mi_cols; // The condition below corresponds to turning off at target bitrates: - // (at 30fps), ~12kbps for CIF, 36kbps for VGA, 100kps for HD/720p. + // (at 30fps), ~8kbps for CIF, 20kbps for VGA, 60kps for HD/720p. // Also turn off at very small frame sizes, to avoid too large fraction of // superblocks to be refreshed per frame. Threshold below is less than QCIF. if (rc->avg_frame_bandwidth < factor * number_blocks || -- 2.7.4