Auto-adaptive encoder frame resizing logic
authorAdrian Grange <agrange@google.com>
Fri, 14 Nov 2014 23:29:18 +0000 (15:29 -0800)
committerAdrian Grange <agrange@google.com>
Tue, 10 Feb 2015 17:59:32 +0000 (09:59 -0800)
commit23ebacdb81adeee7a082a573068d84921898f39d
tree2a82a9bf1826dcd9e80abae4a0e64791c881c9f4
parent84b813aa42c99bce15cec774153bdb1cd09e9578
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
vp9/encoder/vp9_encoder.c
vp9/encoder/vp9_encoder.h
vp9/encoder/vp9_firstpass.c
vp9/encoder/vp9_firstpass.h
vp9/encoder/vp9_ratectrl.c
vp9/encoder/vp9_ratectrl.h
vp9/encoder/vp9_rdopt.c
vp9/encoder/vp9_speed_features.c