Improved coding on slide show content.
authorPaul Wilkins <paulwilkins@google.com>
Wed, 20 Jun 2018 16:21:49 +0000 (17:21 +0100)
committerPaul Wilkins <paulwilkins@google.com>
Fri, 20 Jul 2018 15:34:20 +0000 (16:34 +0100)
commit31228b3595d17e8323aede7bb364bd731c192820
tree63c62990eb46ea9e949c2be1e2a906bceb75380d
parente09e99aa14f10956ea3846982c5c815a18d5863e
Improved coding on slide show content.

This patch adds in detection of slide show content and allows
for coding of long GF only groups up to a length of 240 frames rather
than coding a large number of shorter ARF groups that gradually
lower the Q.

In test samples this patch gave rise to a substantial improvement in
overall psnr and a drop in data rate. In some cases the average psnr
fell, however, with the boost and minQ values set as they are.
This is to be expected because average psnr is dominated by the
best frames in the sequence and previously a relatively poor key frame
could be followed by progressively better alt refs. For example a key
frame at q7.5 but subsequent alt refs improving it to lossless.

For slides displayed for several seconds,  savings of >= 20% (or
commensurate quality gains) are likely.

This patch allows for long GF groups in static sections before and after
complex transitions (e.g. fades) with one or more normal ARF groups
during the transition. However, it enforces a single "normal" length
GF group after the transition before any extended group is allowed.
The reason for this is that the ARF that spans the transition my not have
a very high quality and hence may not be a good GF for the long static
section that follows.

Change-Id: I66cc404c3b85e87dae9829b49d9d631cbf04e037
vp9/encoder/vp9_firstpass.c
vp9/encoder/vp9_firstpass.h
vp9/encoder/vp9_ratectrl.c
vp9/encoder/vp9_ratectrl.h