ref: 8d438dc3134e4bc7f9e1487020b9c755eaf336c9
parent: 535b7b915ae5574db2f95632243cc5bee865f02e
author: Marco Paniconi <marpan@google.com>
date: Wed Sep 27 15:42:48 EDT 2017
Revert "Remove the speed condition on scene detection in 1 pass code." This reverts commit 535b7b915ae5574db2f95632243cc5bee865f02e. This is actually used in CBR to reset the rate control if high source sad is detected. Original change's description: > Remove the speed condition on scene detection in 1 pass code. > > Scene detection is used for VBR mode and for screen_content mode. > > It was also enabled for CBR mode via the speed condition, > but currently the analysis in the scene detection is not used > in CRB mode (similar computations are done locally at superblock level > when the source_sad feature is enabled). > > For 1 pass code. > No change in behavior. Small speed gain, ~0.5%. > > Change-Id: I59991d7ef2af320bea7af4b907596e057affa42f TBR=marpan@google.com,builds@webmproject.org,jianj@google.com Change-Id: Ib4e6b02047f75632503e7b0fc870af97fa9291c3 No-Presubmit: true No-Tree-Checks: true No-Try: true
--- a/vp9/encoder/vp9_encoder.c
+++ b/vp9/encoder/vp9_encoder.c
@@ -3524,9 +3524,12 @@
vp9_update_noise_estimate(cpi);
// Scene detection is always used for VBR mode or screen-content case.
+ // For other cases (e.g., CBR mode) use it for 5 <= speed < 8 for now
+ // (need to check encoding time cost for doing this for speed 8).
if (cpi->compute_source_sad_onepass &&
(cpi->oxcf.rc_mode == VPX_VBR ||
- cpi->oxcf.content == VP9E_CONTENT_SCREEN))
+ cpi->oxcf.content == VP9E_CONTENT_SCREEN ||
+ (cpi->oxcf.speed >= 5 && cpi->oxcf.speed < 8)))
vp9_scene_detection_onepass(cpi);
// For 1 pass CBR SVC, only ZEROMV is allowed for spatial reference frame