diff options
author | Paul Wilkins <paulwilkins@google.com> | 2014-10-09 14:49:41 +0100 |
---|---|---|
committer | Paul Wilkins <paulwilkins@google.com> | 2014-10-10 12:54:16 +0100 |
commit | 869d4ca51957614dcf5093ebb9e322cc8a8405ca (patch) | |
tree | e910df3d2abb020925a170b44985a0d698f5e4a5 /vp9/encoder/vp9_ratectrl.h | |
parent | 0e1068a4bdc55c28c7b4f5918056a1f807167f2c (diff) | |
download | libvpx-869d4ca51957614dcf5093ebb9e322cc8a8405ca.tar libvpx-869d4ca51957614dcf5093ebb9e322cc8a8405ca.tar.gz libvpx-869d4ca51957614dcf5093ebb9e322cc8a8405ca.tar.bz2 libvpx-869d4ca51957614dcf5093ebb9e322cc8a8405ca.zip |
Add adaptation option for VBR.
Allow min and maxQ to creep when the undershoot
or overshoot exceeds thresholds controlled by the
command line under_shoot_pct and over_shoot_pct
values.
Default is 100%,100% which ~disables adaptation.
Derf results for example undershoot% / overshoot%:-
Head:- Mean abs (%rate error) = 14.4%
This check in:-
25%/25% - Mean abs (%rate error) = 6.7%
PSNR hit -1% SSIM -0.1%
5% / 5% - Mean abs (%rate error) = 2.2%
PSNR hit -3.3% SSIM - 1.1%
Most of the remaining error and most of the quality hit is
at extreme data rates. The adaptation code still has an
exception for material that is in effect static so that we
don't over adjust and over spend on YT slide show type
content.
Change-Id: If25a2449a415449c150acff23df713e9598d64c9
Diffstat (limited to 'vp9/encoder/vp9_ratectrl.h')
-rw-r--r-- | vp9/encoder/vp9_ratectrl.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/vp9/encoder/vp9_ratectrl.h b/vp9/encoder/vp9_ratectrl.h index edfb9fce9..bc74129e5 100644 --- a/vp9/encoder/vp9_ratectrl.h +++ b/vp9/encoder/vp9_ratectrl.h @@ -87,6 +87,8 @@ typedef struct { int long_rolling_target_bits; int long_rolling_actual_bits; + int rate_error_estimate; + int64_t total_actual_bits; int64_t total_target_bits; int64_t total_target_vs_actual; |