[x265-commits] [x265] rc: bug fix for enforcing qpFile in 2 pass(fixes issue #111)

Aarthi at videolan.org Aarthi at videolan.org
Mon Mar 16 23:20:48 CET 2015


details:   http://hg.videolan.org/x265/rev/365c6be56ca0
branches:  
changeset: 9757:365c6be56ca0
user:      Aarthi Thirumalai
date:      Mon Mar 16 15:56:21 2015 +0530
description:
rc: bug fix for enforcing qpFile in 2 pass(fixes issue #111)
Subject: [x265] asm: remove unused IACA test code

details:   http://hg.videolan.org/x265/rev/bd5c80def4aa
branches:  stable
changeset: 9758:bd5c80def4aa
user:      Min Chen <chenm003 at 163.com>
date:      Mon Mar 16 12:00:42 2015 -0700
description:
asm: remove unused IACA test code
Subject: [x265] pixel: remove unnecessary check statement

details:   http://hg.videolan.org/x265/rev/a03f3fa03812
branches:  stable
changeset: 9759:a03f3fa03812
user:      Steve Borho <steve at borho.org>
date:      Mon Mar 16 13:10:34 2015 -0500
description:
pixel: remove unnecessary check statement

This check was being triggered by many regression tests but is not necessary for
the existing SIMD code.
Subject: [x265] Add few more commandlines for smoke test, fix/add rate control tests

details:   http://hg.videolan.org/x265/rev/8d5165a566cc
branches:  stable
changeset: 9760:8d5165a566cc
user:      Mahesh Pittala <mahesh at multicorewareinc.com>
date:      Mon Mar 16 20:01:52 2015 +0530
description:
Add few more commandlines for smoke test, fix/add rate control tests

replace -FN with -F4, add --strict-cbr and --fast-firstpass tests
Subject: [x265] Merge with stable

details:   http://hg.videolan.org/x265/rev/8a37ebcf9232
branches:  
changeset: 9761:8a37ebcf9232
user:      Steve Borho <steve at borho.org>
date:      Mon Mar 16 17:04:21 2015 -0500
description:
Merge with stable

diffstat:

 source/common/pixel.cpp            |   4 +---
 source/common/x86/pixel-util8.asm  |   2 --
 source/encoder/ratecontrol.cpp     |   6 +++---
 source/test/rate-control-tests.txt |  12 ++++++------
 source/test/smoke-tests.txt        |  27 +++++++++++++++++++--------
 source/x265.cpp                    |   2 +-
 6 files changed, 30 insertions(+), 23 deletions(-)

diffs (149 lines):

diff -r 74496ce5d8ba -r 8a37ebcf9232 source/common/pixel.cpp
--- a/source/common/pixel.cpp	Mon Mar 16 10:47:09 2015 +0530
+++ b/source/common/pixel.cpp	Mon Mar 16 17:04:21 2015 -0500
@@ -522,12 +522,10 @@ void weight_sp_c(const int16_t* src, pix
 
 #if CHECKED_BUILD || _DEBUG
     const int correction = (IF_INTERNAL_PREC - X265_DEPTH);
-#endif
-
     X265_CHECK(!((w0 << 6) > 32767), "w0 using more than 16 bits, asm output will mismatch\n");
     X265_CHECK(!(round > 32767), "round using more than 16 bits, asm output will mismatch\n");
     X265_CHECK((shift >= correction), "shift must be include factor correction, please update ASM ABI\n");
-    X265_CHECK(!(round & ((1 << (correction - 1)) - 1)), "round must be include factor correction, please update ASM ABI\n");
+#endif
 
     for (y = 0; y <= height - 1; y++)
     {
diff -r 74496ce5d8ba -r 8a37ebcf9232 source/common/x86/pixel-util8.asm
--- a/source/common/x86/pixel-util8.asm	Mon Mar 16 10:47:09 2015 +0530
+++ b/source/common/x86/pixel-util8.asm	Mon Mar 16 17:04:21 2015 -0500
@@ -614,7 +614,6 @@ cglobal quant, 5,6,8
     RET
 
 
-IACA_START
 %if ARCH_X86_64 == 1
 INIT_YMM avx2
 cglobal quant, 5,5,10
@@ -761,7 +760,6 @@ cglobal quant, 5,6,8
     movd            eax, xm7
     RET
 %endif ; ARCH_X86_64 == 1
-IACA_END
 
 
 ;-----------------------------------------------------------------------------
diff -r 74496ce5d8ba -r 8a37ebcf9232 source/encoder/ratecontrol.cpp
--- a/source/encoder/ratecontrol.cpp	Mon Mar 16 10:47:09 2015 +0530
+++ b/source/encoder/ratecontrol.cpp	Mon Mar 16 17:04:21 2015 -0500
@@ -1068,7 +1068,7 @@ int RateControl::rateControlStart(Frame*
         m_qp = (int32_t)(curFrame->m_forceqp + 0.5) - 1;
         m_qp = x265_clip3(QP_MIN, QP_MAX_MAX, m_qp);
         rce->qpaRc = curEncData.m_avgQpRc = curEncData.m_avgQpAq = m_qp;
-        if (m_isAbr)
+        if (m_isAbr || m_2pass)
         {
             rce->qpNoVbv = rce->qpaRc;
             m_lastQScaleFor[m_sliceType] = x265_qp2qScale(rce->qpaRc);
@@ -1473,7 +1473,7 @@ double RateControl::rateEstimateQscale(F
              * tolerances, the bit distribution approaches that of 2pass. */
 
             double overflow = 1;
-            double lqmin = 0, lqmax = 0;
+            double lqmin = MIN_QPSCALE, lqmax = MAX_MAX_QPSCALE;
             m_shortTermCplxSum *= 0.5;
             m_shortTermCplxCount *= 0.5;
             m_shortTermCplxSum += m_currentSatd / (CLIP_DURATION(m_frameDuration) / BASE_FRAME_DURATION);
@@ -1534,7 +1534,7 @@ double RateControl::rateEstimateQscale(F
             q = clipQscale(curFrame, rce, q);
             /*  clip qp to permissible range after vbv-lookahead estimation to avoid possible
              * mispredictions by initial frame size predictors */
-            if (m_isVbv && m_pred[m_sliceType].count == 1)
+            if (!m_2pass && m_isVbv && m_pred[m_sliceType].count == 1)
                 q = x265_clip3(lqmin, lqmax, q);
         }
         m_lastQScaleFor[m_sliceType] = q;
diff -r 74496ce5d8ba -r 8a37ebcf9232 source/test/rate-control-tests.txt
--- a/source/test/rate-control-tests.txt	Mon Mar 16 10:47:09 2015 +0530
+++ b/source/test/rate-control-tests.txt	Mon Mar 16 17:04:21 2015 -0500
@@ -11,7 +11,7 @@ RaceHorses_416x240_30_10bit.yuv,--preset
 112_1920x1080_25.yuv,--preset medium --bitrate 1000 --vbv-maxrate 1500 --vbv-bufsize 1500 --aud
 112_1920x1080_25.yuv,--preset medium --bitrate 10000 --vbv-maxrate 10000 --vbv-bufsize 15000 --hrd
 112_1920x1080_25.yuv,--preset medium --bitrate 4000 --vbv-maxrate 12000 --vbv-bufsize 12000 --repeat-headers
-112_1920x1080_25.yuv,--preset superfast --bitrate 1000 --vbv-maxrate 1000 --vbv-bufsize 1500 --hrd
+112_1920x1080_25.yuv,--preset superfast --bitrate 1000 --vbv-maxrate 1000 --vbv-bufsize 1500 --hrd --strict-cbr
 112_1920x1080_25.yuv,--preset superfast --bitrate 30000 --vbv-maxrate 30000 --vbv-bufsize 30000 --repeat-headers
 112_1920x1080_25.yuv,--preset superfast --bitrate 4000 --vbv-maxrate 6000 --vbv-bufsize 6000 --aud
 112_1920x1080_25.yuv,--preset veryslow --bitrate 1000 --vbv-maxrate 3000 --vbv-bufsize 3000 --repeat-headers
@@ -21,7 +21,7 @@ big_buck_bunny_360p24.y4m,--preset mediu
 big_buck_bunny_360p24.y4m,--preset medium --bitrate 3000 --vbv-bufsize 3000 --vbv-maxrate 3000 --hrd
 big_buck_bunny_360p24.y4m,--preset medium --bitrate 400 --vbv-bufsize 600 --vbv-maxrate 600 --aud
 big_buck_bunny_360p24.y4m,--preset medium --crf 1 --vbv-bufsize 3000 --vbv-maxrate 3000 --hrd
-big_buck_bunny_360p24.y4m,--preset superfast --bitrate 1000 --vbv-bufsize 1000 --vbv-maxrate 1000 --aud
+big_buck_bunny_360p24.y4m,--preset superfast --bitrate 1000 --vbv-bufsize 1000 --vbv-maxrate 1000 --aud --strict-cbr
 big_buck_bunny_360p24.y4m,--preset superfast --bitrate 3000 --vbv-bufsize 9000 --vbv-maxrate 9000 --repeat-headers
 big_buck_bunny_360p24.y4m,--preset superfast --bitrate 400 --vbv-bufsize 600 --vbv-maxrate 400 --hrd
 big_buck_bunny_360p24.y4m,--preset superfast --crf 6 --vbv-bufsize 1000 --vbv-maxrate 1000 --aud
@@ -33,10 +33,10 @@ big_buck_bunny_360p24.y4m,--preset verys
 # multi-pass rate control tests
 big_buck_bunny_360p24.y4m,--preset veryslow --crf 40 --pass 1,--preset veryslow --crf 40 --pass 2,--preset veryslow --bitrate 200 --pass 2
 big_buck_bunny_360p24.y4m,--preset superfast --bitrate 30000 --pass 1 -F4,--preset superfast --bitrate 30000 --pass 2 -F4
-big_buck_bunny_360p24.y4m,--preset medium --bitrate 700 --vbv-bufsize 900 --vbv-maxrate 700 --pass 1 -FN,--preset medium --bitrate 700 --vbv-bufsize 900 --vbv-maxrate 700 --pass 2 -F4
-112_1920x1080_25.yuv,--preset veryslow --bitrate 1000 --pass 1 -FN,--preset veryslow --bitrate 1000 --pass 2 -F4
+big_buck_bunny_360p24.y4m,--preset medium --bitrate 700 --vbv-bufsize 900 --vbv-maxrate 700 --pass 1 -F4 --slow-firstpass,--preset medium --bitrate 700 --vbv-bufsize 900 --vbv-maxrate 700 --pass 2 -F4
+112_1920x1080_25.yuv,--preset veryslow --bitrate 1000 --pass 1 -F4,--preset veryslow --bitrate 1000 --pass 2 -F4
 112_1920x1080_25.yuv,--preset superfast --crf 12 --pass 1,--preset superfast --bitrate 4000 --pass 2 -F4
 RaceHorses_416x240_30_10bit.yuv,--preset veryslow --crf 40 --pass 1, --preset veryslow --bitrate 200 --pass 2 -F4
-RaceHorses_416x240_30_10bit.yuv,--preset superfast --bitrate 600 --pass 1 -FN,--preset superfast --bitrate 600 --pass 2 -F4
+RaceHorses_416x240_30_10bit.yuv,--preset superfast --bitrate 600 --pass 1 -F4 --slow-firstpass,--preset superfast --bitrate 600 --pass 2 -F4
 RaceHorses_416x240_30_10bit.yuv,--preset medium --crf 28 --pass 1,--preset medium --bitrate 750 --pass 2 -F4
-RaceHorses_416x240_30_10bit.yuv,--preset medium --crf 26 --pass 1,--preset medium --bitrate 1000 --pass 3 -FN,--preset medium --bitrate 1000 --pass 2 -F4
+RaceHorses_416x240_30_10bit.yuv,--preset medium --crf 26 --pass 1,--preset medium --bitrate 1000 --pass 3 -F4,--preset medium --bitrate 1000 --pass 2 -F4
diff -r 74496ce5d8ba -r 8a37ebcf9232 source/test/smoke-tests.txt
--- a/source/test/smoke-tests.txt	Mon Mar 16 10:47:09 2015 +0530
+++ b/source/test/smoke-tests.txt	Mon Mar 16 17:04:21 2015 -0500
@@ -1,12 +1,23 @@
 # List of command lines to be run by smoke tests, see https://bitbucket.org/sborho/test-harness
 
+big_buck_bunny_360p24.y4m,--preset=superfast --bitrate 400 --vbv-bufsize 600 --vbv-maxrate 400 --hrd --aud --repeat-headers
+big_buck_bunny_360p24.y4m,--preset=medium --bitrate 1000
+big_buck_bunny_360p24.y4m,--preset=slower
+washdc_422_ntsc.y4m,--preset=superfast
+washdc_422_ntsc.y4m,--preset=medium
+washdc_422_ntsc.y4m,--preset=slower
+old_town_cross_444_720p50.y4m,--preset=superfast
+old_town_cross_444_720p50.y4m,--preset=medium
+old_town_cross_444_720p50.y4m,--preset=slower
+crowd_run_1080p50.y4m,--preset=superfast
+crowd_run_1080p50.y4m,--preset=medium
+crowd_run_1080p50.y4m,--preset=slower
 RaceHorses_416x240_30_10bit.yuv,--preset=superfast
 RaceHorses_416x240_30_10bit.yuv,--preset=medium
-big_buck_bunny_360p24.y4m,--preset=superfast
-big_buck_bunny_360p24.y4m,--preset=medium
-washdc_422_ntsc.y4m,--preset=superfast
-washdc_422_ntsc.y4m,--preset=medium
-old_town_cross_444_720p50.y4m,--preset=superfast
-old_town_cross_444_720p50.y4m,--preset=medium
-crowd_run_1080p50.y4m,--preset=superfast
-crowd_run_1080p50.y4m,--preset=medium
+RaceHorses_416x240_30_10bit.yuv,--preset=slower
+CrowdRun_1920x1080_50_10bit_444.yuv,--preset=superfast
+CrowdRun_1920x1080_50_10bit_444.yuv,--preset=medium
+CrowdRun_1920x1080_50_10bit_444.yuv,--preset=slower
+DucksAndLegs_1920x1080_60_10bit_422.yuv, --preset=superfast
+DucksAndLegs_1920x1080_60_10bit_422.yuv, --preset=medium
+DucksAndLegs_1920x1080_60_10bit_422.yuv, --preset=slower
diff -r 74496ce5d8ba -r 8a37ebcf9232 source/x265.cpp
--- a/source/x265.cpp	Mon Mar 16 10:47:09 2015 +0530
+++ b/source/x265.cpp	Mon Mar 16 17:04:21 2015 -0500
@@ -530,7 +530,7 @@ int main(int argc, char **argv)
     while (pic_in && !b_ctrl_c)
     {
         pic_orig.poc = inFrameCount;
-        if (cliopt.qpfile && !param->rc.bStatRead)
+        if (cliopt.qpfile)
         {
             if (!cliopt.parseQPFile(pic_orig))
             {


More information about the x265-commits mailing list