summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_ratectrl.c
diff options
context:
space:
mode:
authorAdrian Grange <agrange@google.com>2015-03-10 12:04:59 -0700
committerAdrian Grange <agrange@google.com>2015-03-11 09:08:15 -0700
commit42a89eb8cc0e80ff657f30f264e9c27630682094 (patch)
treee29c6270f2fb67c0b515b3895d693c54b2fed9c0 /vp9/encoder/vp9_ratectrl.c
parent78df71221656b0a0d37bff6c16efd743347fa30d (diff)
downloadlibvpx-42a89eb8cc0e80ff657f30f264e9c27630682094.tar
libvpx-42a89eb8cc0e80ff657f30f264e9c27630682094.tar.gz
libvpx-42a89eb8cc0e80ff657f30f264e9c27630682094.tar.bz2
libvpx-42a89eb8cc0e80ff657f30f264e9c27630682094.zip
Clamp rate correction factor after scaling it
Added clamp on the rate correction factor after it has been scaled. Change-Id: I5d4b46a101987b43c5bcfd7e0bd1b7b4d53640a4
Diffstat (limited to 'vp9/encoder/vp9_ratectrl.c')
-rw-r--r--vp9/encoder/vp9_ratectrl.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/vp9/encoder/vp9_ratectrl.c b/vp9/encoder/vp9_ratectrl.c
index 79a89af90..8916e1107 100644
--- a/vp9/encoder/vp9_ratectrl.c
+++ b/vp9/encoder/vp9_ratectrl.c
@@ -377,7 +377,7 @@ static double get_rate_correction_factor(const VP9_COMP *cpi) {
rcf = rc->rate_correction_factors[INTER_NORMAL];
}
rcf *= rcf_mult[rc->frame_size_selector];
- return rcf > MAX_BPB_FACTOR ? MAX_BPB_FACTOR : rcf;
+ return fclamp(rcf, MIN_BPB_FACTOR, MAX_BPB_FACTOR);
}
static void set_rate_correction_factor(VP9_COMP *cpi, double factor) {
@@ -386,6 +386,8 @@ static void set_rate_correction_factor(VP9_COMP *cpi, double factor) {
// Normalize RCF to account for the size-dependent scaling factor.
factor /= rcf_mult[cpi->rc.frame_size_selector];
+ factor = fclamp(factor, MIN_BPB_FACTOR, MAX_BPB_FACTOR);
+
if (cpi->common.frame_type == KEY_FRAME) {
rc->rate_correction_factors[KF_STD] = factor;
} else if (cpi->oxcf.pass == 2) {