summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_firstpass.h
diff options
context:
space:
mode:
authorPaul Wilkins <paulwilkins@google.com>2014-10-13 10:12:12 +0100
committerPaul Wilkins <paulwilkins@google.com>2014-10-13 10:16:44 +0100
commitf7f0eaa58119ba70bdd52806e44ba79e7374c7ff (patch)
treea5512ca90f41da8cc804279fb0a9c1ee951e532d /vp9/encoder/vp9_firstpass.h
parenta62acf3c0ac35fc3763296f68dc02b23d65165ab (diff)
downloadlibvpx-f7f0eaa58119ba70bdd52806e44ba79e7374c7ff.tar
libvpx-f7f0eaa58119ba70bdd52806e44ba79e7374c7ff.tar.gz
libvpx-f7f0eaa58119ba70bdd52806e44ba79e7374c7ff.tar.bz2
libvpx-f7f0eaa58119ba70bdd52806e44ba79e7374c7ff.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. (Rebase of If25a2449a415449c150acff23df713e9598d64c9 to resolve a auto-merge error) Change-Id: Iec4e1613ef0d067454751d8220edb7058dfbd816
Diffstat (limited to 'vp9/encoder/vp9_firstpass.h')
-rw-r--r--vp9/encoder/vp9_firstpass.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/vp9/encoder/vp9_firstpass.h b/vp9/encoder/vp9_firstpass.h
index 458cd9b90..e21d86928 100644
--- a/vp9/encoder/vp9_firstpass.h
+++ b/vp9/encoder/vp9_firstpass.h
@@ -39,6 +39,8 @@ typedef struct {
} FIRSTPASS_MB_STATS;
#endif
+#define VLOW_MOTION_THRESHOLD 950
+
typedef struct {
double frame;
double intra_error;
@@ -109,7 +111,10 @@ typedef struct {
int kf_zeromotion_pct;
int last_kfgroup_zeromotion_pct;
+ int gf_zeromotion_pct;
int active_worst_quality;
+ int extend_minq;
+ int extend_maxq;
GF_GROUP gf_group;
} TWO_PASS;