From: paulwilkins Date: Wed, 16 Aug 2017 13:07:24 +0000 (+0100) Subject: Fix corrupt arf groups due to low "lag_in_frames" X-Git-Tag: v1.7.0~234^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=48110d0f7904bb04b4f70000721e96ed64bc6fb2;p=libvpx Fix corrupt arf groups due to low "lag_in_frames" Having a very small value for "lag_in_frames" can result in corrupt arf groups including displayed frames that update the arf buffer and fake overlay frames that are not in fact overlays of real arfs but are nevertheless starved of bits. Leaving lag_in_frames at the default of 25 for these 5 frame two pass VBR tests should now give rise to a valid ARF coding pattern as follows:- K(ey), A(rf), N(ormal), N, N, O(verlay). This change is part of a response to BUG=webm:1454 where broken arf groups interacted badly with a change that corrects for large rate misses. However, it may still in some cases increase encode time by virtue of the fact that the unit test now codes a correct coding pattern with "hidden" ARF frames. Change-Id: Ifd0246a4c1d0be247247c754024d7a4ed5f66a6b --- diff --git a/test/vp9_ethread_test.cc b/test/vp9_ethread_test.cc index d4ee8aedd..f52391256 100644 --- a/test/vp9_ethread_test.cc +++ b/test/vp9_ethread_test.cc @@ -50,7 +50,6 @@ class VPxFirstPassEncoderThreadTest InitializeConfig(); SetMode(encoding_mode_); - cfg_.g_lag_in_frames = 3; cfg_.rc_end_usage = VPX_VBR; cfg_.rc_2pass_vbr_minsection_pct = 5; cfg_.rc_2pass_vbr_maxsection_pct = 2000; @@ -238,7 +237,6 @@ class VPxEncoderThreadTest SetMode(encoding_mode_); if (encoding_mode_ != ::libvpx_test::kRealTime) { - cfg_.g_lag_in_frames = 3; cfg_.rc_end_usage = VPX_VBR; cfg_.rc_2pass_vbr_minsection_pct = 5; cfg_.rc_2pass_vbr_maxsection_pct = 2000;