shithub: libvpx

Download patch

ref: a31461c853f65e5fd9c20dfdeb82b18d6590eff8
parent: 13eed991f9450cdd8b03fc03c38ea0f9b2667bf8
author: Marco <[email protected]>
date: Tue Aug 22 10:46:39 EDT 2017

vp9: Condition lighting change detection on CBR mode.

This feature is used for the CBR RTC encoding mode
at speed >= 6. This change will exclude it for VBR mode.

For speed 6 live encoding (VBR):
avgPSNR/SSIM metrics on ytlive set up by ~1% (few clips up by 2/3%).
No change in speed.

Change-Id: I1a0dd94c334f7df309ab5a48d477d7e25355b798

--- a/vp9/encoder/vp9_encodeframe.c
+++ b/vp9/encoder/vp9_encodeframe.c
@@ -1012,7 +1012,8 @@
 
   // Detect large lighting change.
   if (cpi->oxcf.content != VP9E_CONTENT_SCREEN &&
-      tmp_variance < (tmp_sse >> 3) && (tmp_sse - tmp_variance) > 10000)
+      cpi->oxcf.rc_mode == VPX_CBR && tmp_variance < (tmp_sse >> 3) &&
+      (tmp_sse - tmp_variance) > 10000)
     x->content_state_sb = kLowVarHighSumdiff;
   else if (tmp_sad > (avg_source_sad_threshold << 1))
     x->content_state_sb = kVeryHighSad;