diff options
author | Adrian Grange <agrange@google.com> | 2014-11-14 15:29:18 -0800 |
---|---|---|
committer | Adrian Grange <agrange@google.com> | 2015-02-10 09:59:32 -0800 |
commit | 23ebacdb81adeee7a082a573068d84921898f39d (patch) | |
tree | 2a82a9bf1826dcd9e80abae4a0e64791c881c9f4 /vp9/encoder/vp9_firstpass.h | |
parent | 84b813aa42c99bce15cec774153bdb1cd09e9578 (diff) | |
download | libvpx-23ebacdb81adeee7a082a573068d84921898f39d.tar libvpx-23ebacdb81adeee7a082a573068d84921898f39d.tar.gz libvpx-23ebacdb81adeee7a082a573068d84921898f39d.tar.bz2 libvpx-23ebacdb81adeee7a082a573068d84921898f39d.zip |
Auto-adaptive encoder frame resizing logic
Note: This feature is still in development.
Add an option for the encoder to decide the resolution
at which to encode each frame.
Each KF/GF/ARF goup is tested to see if it would be
better encoded at a lower resolution. At present, each
KF/GF/ARF is coded first at full-size and if the coded
size exceeds a threshold (twice target data rate) at
the maximum active Q then the entire group is encoded
at lower resolution.
This feature is enabled in vpxenc by setting:
--resize-allowed=1
In addition, if the vpxenc command line also specifies
valid frame dimensions using:
--resize-width=XXXX & --resize_height=YYYY
then *all* frames will be encoded at this resolution.
Change-Id: I13f341e0a82512f9e84e144e0f3b5aed8a65402b
Diffstat (limited to 'vp9/encoder/vp9_firstpass.h')
-rw-r--r-- | vp9/encoder/vp9_firstpass.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/vp9/encoder/vp9_firstpass.h b/vp9/encoder/vp9_firstpass.h index 34767706a..08e7a8bf1 100644 --- a/vp9/encoder/vp9_firstpass.h +++ b/vp9/encoder/vp9_firstpass.h @@ -118,8 +118,8 @@ typedef struct { int kf_zeromotion_pct; int last_kfgroup_zeromotion_pct; int gf_zeromotion_pct; - int baseline_worst_quality; int active_worst_quality; + int baseline_active_worst_quality; int extend_minq; int extend_maxq; @@ -138,6 +138,13 @@ void vp9_rc_get_second_pass_params(struct VP9_COMP *cpi); // Post encode update of the rate control parameters for 2-pass void vp9_twopass_postencode_update(struct VP9_COMP *cpi); + +void vp9_init_subsampling(struct VP9_COMP *cpi); + +void calculate_coded_size(struct VP9_COMP *cpi, + int *scaled_frame_width, + int *scaled_frame_height); + #ifdef __cplusplus } // extern "C" #endif |