Enable encode_breakout in real time encoding

In real time encoding, we enable encode_breakout to make encoding
fast. A speed feature "use_encode_breakout" is defined to set
encode_breakout thresholds for different speeds.

However, currently, static_thresh is an encoder option. The encode_
breakout can be turned off if user sets static_thresh=0 specifically.

The rtc set borg test result: (need to set --static_thresh=1)
speed -5, psnr loss -3.543%;
speed -4, psnr loss -2.358%;
speed -3, psnr loss -0.771%.

Encoding speed test:
speed -5, 11% - 60% speedup;
speed -4, 5.5% - 28% speedup;
speed -3, 0.8% - 7% speedup.

Change-Id: Icde592ffbe77eac7446f872a2e9eb2051733677b
This commit is contained in:
Yunqing Wang
2014-02-04 11:09:34 -08:00
parent f6bc927070
commit 507fd5220b
5 changed files with 49 additions and 25 deletions

View File

@@ -2328,11 +2328,11 @@ void vp9_rc_get_second_pass_params(VP9_COMP *cpi) {
if (twopass->gf_zeromotion_pct > 995) {
// As long as max_thresh for encode breakout is small enough, it is ok
// to enable it for no-show frame, i.e. set enable_encode_breakout to 2.
// to enable it for show frame, i.e. set allow_encode_breakout to 2.
if (!cm->show_frame)
cpi->enable_encode_breakout = 0;
cpi->allow_encode_breakout = ENCODE_BREAKOUT_DISABLED;
else
cpi->enable_encode_breakout = 2;
cpi->allow_encode_breakout = ENCODE_BREAKOUT_LIMITED;
}
rc->frames_till_gf_update_due = rc->baseline_gf_interval;