summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_firstpass.h
diff options
context:
space:
mode:
authorAdrian Grange <agrange@google.com>2014-11-14 15:29:18 -0800
committerAdrian Grange <agrange@google.com>2015-02-10 09:59:32 -0800
commit23ebacdb81adeee7a082a573068d84921898f39d (patch)
tree2a82a9bf1826dcd9e80abae4a0e64791c881c9f4 /vp9/encoder/vp9_firstpass.h
parent84b813aa42c99bce15cec774153bdb1cd09e9578 (diff)
downloadlibvpx-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.h9
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