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
This commit is contained in:
@@ -249,6 +249,10 @@ typedef struct {
|
||||
|
||||
int filter_level;
|
||||
|
||||
int frames_since_last_drop_overshoot;
|
||||
|
||||
int force_maxqp;
|
||||
|
||||
int last_frame_percent_intra;
|
||||
|
||||
int count_mb_ref_frame_usage[MAX_REF_FRAMES];
|
||||
@@ -505,6 +509,7 @@ typedef struct VP8_COMP {
|
||||
int mse_source_denoised;
|
||||
|
||||
int force_maxqp;
|
||||
int frames_since_last_drop_overshoot;
|
||||
|
||||
// GF update for 1 pass cbr.
|
||||
int gf_update_onepass_cbr;
|
||||
|
||||
Reference in New Issue
Block a user