vp8: Drop due to overshoot for non-screen content.
authorMarco <marpan@google.com>
Fri, 30 Jun 2017 15:51:31 +0000 (08:51 -0700)
committerMarco <marpan@google.com>
Wed, 2 Aug 2017 20:12:48 +0000 (13:12 -0700)
commitb9577e07fc2649ab1ec1e58d7d8c4450f45d1f40
tree1f4678a49cbbc3cf2b356cf71235bffb4990ad4e
parent698e56f26cf4e524d39083fc7d0b1511ebb36079
vp8: Drop due to overshoot for non-screen content.

For 1 pass CBR mode:
Apply the logic for dropping (and re-adjusting rate control)
due to large overshoot to the case of non-screen content when
drop_frames_allowed is enabled.

For the non-screen content case: add additional condition that
rate correction factor is close to minimum state, and flag to
constrain the frequency of the dropping.

Also handle the case of temporal layers and multi-res encoding.
Add some flags/counters to the layer context for temporal layers.
For multi-res: drop due to overshoot is checked on lowest stream,
and if overshoot is detected we force drops on all upper streams
for that frame.

This feature is to avoid large frame sizes on big content
changes following low content period.

No change in behavior for screen_content_mode = 2.

Change-Id: I797ab236cbbf3b15cad439e9a227fbebced632e6
vp8/common/blockd.h
vp8/encoder/onyx_if.c
vp8/encoder/onyx_int.h
vp8/encoder/ratectrl.c