[x265-commits] [x265] analysis: use only skip costs for recursionDepthCheck

Deepthi Nandakumar deepthi at multicorewareinc.com
Thu May 19 16:00:45 CEST 2016


details:   http://hg.videolan.org/x265/rev/d2de32f15de0
branches:  
changeset: 11450:d2de32f15de0
user:      Deepthi Nandakumar <deepthi at multicorewareinc.com>
date:      Fri May 06 17:30:24 2016 +0530
description:
analysis: use only skip costs for recursionDepthCheck

Also cleanup variable names
Subject: [x265] analysis: introduce recursion skip

details:   http://hg.videolan.org/x265/rev/912e46145616
branches:  
changeset: 11451:912e46145616
user:      Deepthi Nandakumar <deepthi at multicorewareinc.com>
date:      Thu May 12 16:55:39 2016 +0530
description:
analysis: introduce recursion skip

Earlier, analysis would exit recursion if a skip was found. This option provides
the ability to control when early exit from recursion needs to be turned on
Subject: [x265] grain: improve grain handling settings

details:   http://hg.videolan.org/x265/rev/3e530043698b
branches:  
changeset: 11452:3e530043698b
user:      Deepthi Nandakumar <deepthi at multicorewareinc.com>
date:      Thu May 12 14:53:41 2016 +0530
description:
grain: improve grain handling settings

Turn off SAO, increase psychovisual settings to better retain high frequency
Subject: [x265] cmake: update build (fixes #271)

details:   http://hg.videolan.org/x265/rev/ff15c3d11a5c
branches:  
changeset: 11453:ff15c3d11a5c
user:      Deepthi Nandakumar <deepthi at multicorewareinc.com>
date:      Fri May 13 07:44:09 2016 +0530
description:
cmake: update build (fixes #271)
Subject: [x265] cmake: apply -march=i686 for 32bit GCC only if there is no -march in CXXFLAGS (fixes #270)

details:   http://hg.videolan.org/x265/rev/bebae72f9db7
branches:  
changeset: 11454:bebae72f9db7
user:      Ma0 <mateuszb at poczta.onet.pl>
date:      Thu May 05 13:05:08 2016 +0200
description:
cmake: apply -march=i686 for 32bit GCC only if there is no -march in CXXFLAGS (fixes #270)
Subject: [x265] remove redudant check

details:   http://hg.videolan.org/x265/rev/b7b01cc80075
branches:  
changeset: 11455:b7b01cc80075
user:      Sagar Kotecha<sagar at multicorewareinc.com>
date:      Wed May 11 12:54:28 2016 +0530
description:
remove redudant check
Subject: [x265] presets: disable recursion skip at veryslow and placebo presets

details:   http://hg.videolan.org/x265/rev/e5b5bdc3c154
branches:  
changeset: 11456:e5b5bdc3c154
user:      Deepthi Nandakumar <deepthi at multicorewareinc.com>
date:      Sat May 14 07:29:46 2016 +0530
description:
presets: disable recursion skip at veryslow and placebo presets

Further testing to trade recursion-skip off with other options in the remaining presets
Subject: [x265] [x265] docs: edited presets.rst to enable full table to display without horizontal scrolling on readthedocs.org

details:   http://hg.videolan.org/x265/rev/28cf9adfc82e
branches:  
changeset: 11457:28cf9adfc82e
user:      Tom Vaughan <tom.vaughan at multicorewareinc.com>
date:      Wed May 18 02:01:34 2016 +0000
description:
[x265] docs: edited presets.rst to enable full table to display without horizontal scrolling on readthedocs.org
Subject: [x265] [x265] docs: fix presets.rst to fit on one page without scrolling

details:   http://hg.videolan.org/x265/rev/7241944b3893
branches:  
changeset: 11458:7241944b3893
user:      Tom Vaughan <tom.vaughan at multicorewareinc.com>
date:      Wed May 18 19:25:34 2016 +0000
description:
[x265] docs: fix presets.rst to fit on one page without scrolling

diffstat:

 doc/reST/cli.rst            |    7 ++
 doc/reST/presets.rst        |  144 ++++++++++++++++++++++++-------------------
 source/CMakeLists.txt       |    7 +-
 source/common/framedata.cpp |    2 +-
 source/common/param.cpp     |   10 +++
 source/encoder/analysis.cpp |   51 +++++++-------
 source/encoder/encoder.cpp  |    7 +-
 source/x265.h               |    6 +-
 source/x265cli.h            |    3 +
 9 files changed, 139 insertions(+), 98 deletions(-)

diffs (truncated from 517 to 300 lines):

diff -r a5362b9533f6 -r 7241944b3893 doc/reST/cli.rst
--- a/doc/reST/cli.rst	Wed May 04 21:08:09 2016 +0000
+++ b/doc/reST/cli.rst	Wed May 18 19:25:34 2016 +0000
@@ -734,6 +734,13 @@ the prediction quad-tree.
 	Measure 2Nx2N merge candidates first; if no residual is found, 
 	additional modes at that depth are not analysed. Default disabled
 
+.. option:: --recursion-skip, --no-recursion-skip
+
+	Measure 2Nx2N merge candidates first; if no residual is found, then
+	do not recurse to higher depths. In rdlevels 4 and lower, additional 
+	heuristics such as neighbour costs are used to skip recursion. 
+	Default enabled.
+
 .. option:: --fast-intra, --no-fast-intra
 
 	Perform an initial scan of every fifth intra angular mode, then
diff -r a5362b9533f6 -r 7241944b3893 doc/reST/presets.rst
--- a/doc/reST/presets.rst	Wed May 04 21:08:09 2016 +0000
+++ b/doc/reST/presets.rst	Wed May 18 19:25:34 2016 +0000
@@ -21,68 +21,80 @@ achieve the best quality at your selecte
 The presets adjust encoder parameters as shown in the following table.
 Any parameters below that are specified in your command-line will be 
 changed from the value specified by the preset.
+	0. ultrafast
+	1. superfast
+	2. veryfast
+	3. faster
+	4. fast
+	5. medium **(default)**
+	6. slow
+	7. slower
+	8. veryslow
+	9. placebo
 
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
-|                 |ultrafast |superfast |veryfast |faster |fast |medium |slow |slower |veryslow |placebo |
-+=================+==========+==========+=========+=======+=====+=======+=====+=======+=========+========+
-| ctu             |    32    |    32    |   64    |  64   | 64  |  64   | 64  |  64   |   64    |  64    |
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
-| min-cu-size     |    16    |     8    |    8    |   8   |  8  |   8   |  8  |   8   |    8    |   8    |
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
-| bframes         |     3    |     3    |    4    |   4   |  4  |   4   |  4  |   8   |    8    |   8    |
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
-| b-adapt         |     0    |     0    |    0    |   0   |  0  |   2   |  2  |   2   |    2    |   2    |
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
-| rc-lookahead    |     5    |    10    |   15    |  15   | 15  |  20   | 25  |  30   |   40    |  60    |
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
-| lookahead-slices|     8    |     8    |    8    |   8   |  8  |   8   |  4  |   4   |    1    |   1    |
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
-| scenecut        |     0    |    40    |   40    |  40   | 40  |  40   | 40  |  40   |   40    |  40    |
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
-| ref             |     1    |     1    |    2    |   2   |  3  |   3   |  4  |   4   |    5    |   5    |
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
-| limit-refs      |     0    |     0    |    3    |   3   |  3  |   3   |  3  |   2   |    1    |   0    |
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
-| me              |    dia   |   hex    |   hex   |  hex  |hex  |  hex  |star | star  |   star  |  star  |
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
-| merange         |    57    |    57    |   57    |  57   | 57  |  57   | 57  |  57   |   57    |  92    |
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
-| subme           |     0    |     1    |    1    |   2   |  2  |   2   |  3  |   3   |    4    |   5    |
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
-| rect            |     0    |     0    |    0    |   0   |  0  |   0   |  1  |   1   |    1    |   1    |
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
-| amp             |     0    |     0    |    0    |   0   |  0  |   0   |  0  |   1   |    1    |   1    |
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
-| limit-modes     |     0    |     0    |    0    |   0   |  0  |   0   |  1  |   1   |    1    |   0    |
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
-| max-merge       |     2    |     2    |    2    |   2   |  2  |   2   |  3  |   3   |    4    |   5    |
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
-| early-skip      |     1    |     1    |    1    |   1   |  0  |   0   |  0  |   0   |    0    |   0    |
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
-| fast-intra      |     1    |     1    |    1    |   1   |  1  |   0   |  0  |   0   |    0    |   0    |
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
-| b-intra         |     0    |     0    |    0    |   0   |  0  |   0   |  0  |   1   |    1    |   1    |
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
-| sao             |     0    |     0    |    1    |   1   |  1  |   1   |  1  |   1   |    1    |   1    |
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
-| signhide        |     0    |     1    |    1    |   1   |  1  |   1   |  1  |   1   |    1    |   1    |
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
-| weightp         |     0    |     0    |    1    |   1   |  1  |   1   |  1  |   1   |    1    |   1    |
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
-| weightb         |     0    |     0    |    0    |   0   |  0  |   0   |  0  |   1   |    1    |   1    |
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
-| aq-mode         |     0    |     0    |    1    |   1   |  1  |   1   |  1  |   1   |    1    |   1    |
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
-| cuTree          |     1    |     1    |    1    |   1   |  1  |   1   |  1  |   1   |    1    |   1    |
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
-| rdLevel         |     2    |     2    |    2    |   2   |  2  |   3   |  4  |   6   |    6    |   6    |
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
-| rdoq-level      |     0    |     0    |    0    |   0   |  0  |   0   |  2  |   2   |    2    |   2    |
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
-| tu-intra        |     1    |     1    |    1    |   1   |  1  |   1   |  1  |   2   |    3    |   4    |
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
-| tu-inter        |     1    |     1    |    1    |   1   |  1  |   1   |  1  |   2   |    3    |   4    |
-+-----------------+----------+----------+---------+-------+-----+-------+-----+-------+---------+--------+
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| preset          |  0  |  1  |  2  |   3 |   4 |   5 |   6  |   7  |   8  |  9   |
++=================+=====+=====+=====+=====+=====+=====+======+======+======+======+
+| ctu             | 32  | 32  | 64  |  64 |  64 |  64 |  64  |  64  |  64  | 64   |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| min-cu-size     | 16  |  8  |  8  |   8 |   8 |   8 |   8  |   8  |   8  |  8   |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| bframes         |  3  |  3  |  4  |   4 |   4 |   4 |   4  |   8  |   8  |  8   |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| b-adapt         |  0  |  0  |  0  |   0 |   0 |   2 |   2  |   2  |   2  |  2   |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| rc-lookahead    |  5  | 10  | 15  |  15 |  15 |  20 |  25  |  30  |  40  | 60   |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| lookahead-slices|  8  |  8  |  8  |   8 |   8 |   8 |   4  |   4  |   1  |  1   |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| scenecut        |  0  | 40  | 40  |  40 |  40 |  40 |  40  |  40  |  40  | 40   |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| ref             |  1  |  1  |  2  |   2 |   3 |   3 |   4  |   4  |   5  |  5   |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| limit-refs      |  0  |  0  |  3  |   3 |   3 |   3 |   3  |   2  |   1  |  0   |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| me              | dia | hex | hex | hex | hex | hex | star | star | star | star |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| merange         | 57  | 57  | 57  |  57 |  57 |  57 |  57  |  57  |  57  | 92   |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| subme           |  0  |  1  |  1  |   2 |   2 |   2 |   3  |   3  |   4  |  5   |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| rect            |  0  |  0  |  0  |   0 |   0 |   0 |   1  |   1  |   1  |  1   |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| amp             |  0  |  0  |  0  |   0 |   0 |   0 |   0  |   1  |   1  |  1   |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| limit-modes     |  0  |  0  |  0  |   0 |   0 |   0 |   1  |   1  |   1  |  0   |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| max-merge       |  2  |  2  |  2  |   2 |   2 |   2 |   3  |   3  |   4  |  5   |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| early-skip      |  1  |  1  |  1  |   1 |   0 |   0 |   0  |   0  |   0  |  0   |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| recursion-skip  |  1  |  1  |  1  |   1 |   1 |   1 |   1  |   1  |   0  |  0   |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| fast-intra      |  1  |  1  |  1  |   1 |   1 |   0 |   0  |   0  |   0  |  0   |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| b-intra         |  0  |  0  |  0  |   0 |   0 |   0 |   0  |   1  |   1  |  1   |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| sao             |  0  |  0  |  1  |   1 |   1 |   1 |   1  |   1  |   1  |  1   |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| signhide        |  0  |  1  |  1  |   1 |   1 |   1 |   1  |   1  |   1  |  1   |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| weightp         |  0  |  0  |  1  |   1 |   1 |   1 |   1  |   1  |   1  |  1   |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| weightb         |  0  |  0  |  0  |   0 |   0 |   0 |   0  |   1  |   1  |  1   |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| aq-mode         |  0  |  0  |  1  |   1 |   1 |   1 |   1  |   1  |   1  |  1   |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| cuTree          |  1  |  1  |  1  |   1 |   1 |   1 |   1  |   1  |   1  |  1   |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| rdLevel         |  2  |  2  |  2  |   2 |   2 |   3 |   4  |   6  |   6  |  6   |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| rdoq-level      |  0  |  0  |  0  |   0 |   0 |   0 |   2  |   2  |   2  |  2   |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| tu-intra        |  1  |  1  |  1  |   1 |   1 |   1 |   1  |   2  |   3  |  4   |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
+| tu-inter        |  1  |  1  |  1  |   1 |   1 |   1 |   1  |   2  |   3  |  4   |
++-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
 
 .. _tunings:
 
@@ -125,18 +137,24 @@ visual quality. The purpose of this opti
 eliminate grain, but prevent noticeable artifacts caused by uneven 
 distribution of grain. :option:`--tune` *grain* strongly restricts 
 algorithms that vary the quantization parameter within and across frames.
+Tune grain also biases towards decisions that retain more high frequency
+components.
 
     * :option:`--aq-mode` 0
     * :option:`--cutree` 0
     * :option:`--ipratio` 1.1
     * :option:`--pbratio` 1.0
     * :option:`--qpstep` 1
-
+    * :option:`--sao` 0
+    * :option:`--psy-rd` 4.0
+    * :option:`--psy-rdoq` 10.0
+    * :option:`--recursion-skip` 0
+    
 It also enables a specialised ratecontrol algorithm :option:`--rc-grain` 
 that strictly minimises QP fluctuations across frames, while still allowing 
 the encoder to hit bitrate targets and VBV buffer limits (with a slightly 
 higher margin of error than normal). It is highly recommended that this 
-algorithm is used only through the :option:`--tune` *grain* feature. 
+algorithm is used only through the :option:`--tune` *grain* feature.
 
 Fast Decode
 ~~~~~~~~~~~
diff -r a5362b9533f6 -r 7241944b3893 source/CMakeLists.txt
--- a/source/CMakeLists.txt	Wed May 04 21:08:09 2016 +0000
+++ b/source/CMakeLists.txt	Wed May 18 19:25:34 2016 +0000
@@ -30,7 +30,7 @@ option(STATIC_LINK_CRT "Statically link 
 mark_as_advanced(FPROFILE_USE FPROFILE_GENERATE NATIVE_BUILD)
 
 # X265_BUILD must be incremented each time the public API is changed
-set(X265_BUILD 83)
+set(X265_BUILD 84)
 configure_file("${PROJECT_SOURCE_DIR}/x265.def.in"
                "${PROJECT_BINARY_DIR}/x265.def")
 configure_file("${PROJECT_SOURCE_DIR}/x265_config.h.in"
@@ -181,7 +181,10 @@ if(GCC)
             add_definitions(-march=native)
         endif()
     elseif(X86 AND NOT X64)
-        add_definitions(-march=i686)
+        string(FIND "${CMAKE_CXX_FLAGS}" "-march" marchPos)
+        if(marchPos LESS "0")
+            add_definitions(-march=i686)
+        endif()
     endif()
     if(ARM AND CROSS_COMPILE_ARM)
         set(ARM_ARGS -march=armv6 -mfloat-abi=soft -mfpu=vfp -marm)
diff -r a5362b9533f6 -r 7241944b3893 source/common/framedata.cpp
--- a/source/common/framedata.cpp	Wed May 04 21:08:09 2016 +0000
+++ b/source/common/framedata.cpp	Wed May 18 19:25:34 2016 +0000
@@ -41,7 +41,7 @@ bool FrameData::create(const x265_param&
     for (uint32_t ctuAddr = 0; ctuAddr < sps.numCUsInFrame; ctuAddr++)
         m_picCTU[ctuAddr].initialize(m_cuMemPool, 0, param.internalCsp, ctuAddr);
 
-    CHECKED_MALLOC(m_cuStat, RCStatCU, sps.numCUsInFrame);
+    CHECKED_MALLOC_ZERO(m_cuStat, RCStatCU, sps.numCUsInFrame);
     CHECKED_MALLOC(m_rowStat, RCStatRow, sps.numCuInHeight);
     reinit(sps);
     return true;
diff -r a5362b9533f6 -r 7241944b3893 source/common/param.cpp
--- a/source/common/param.cpp	Wed May 04 21:08:09 2016 +0000
+++ b/source/common/param.cpp	Wed May 18 19:25:34 2016 +0000
@@ -164,6 +164,7 @@ void x265_param_default(x265_param* para
     param->bEnableWeightedPred = 1;
     param->bEnableWeightedBiPred = 0;
     param->bEnableEarlySkip = 0;
+    param->bEnableRecursionSkip = 1;
     param->bEnableAMP = 0;
     param->bEnableRectInter = 0;
     param->rdLevel = 3;
@@ -388,6 +389,7 @@ int x265_param_default_preset(x265_param
             param->maxNumMergeCand = 4;
             param->searchMethod = X265_STAR_SEARCH;
             param->maxNumReferences = 5;
+            param->bEnableRecursionSkip = 0;
             param->limitReferences = 1;
             param->limitModes = 1;
             param->bIntraInBFrames = 1;
@@ -410,6 +412,7 @@ int x265_param_default_preset(x265_param
             param->maxNumMergeCand = 5;
             param->searchMethod = X265_STAR_SEARCH;
             param->bEnableTransformSkip = 1;
+            param->bEnableRecursionSkip = 0;
             param->maxNumReferences = 5;
             param->limitReferences = 0;
             param->rc.bEnableSlowFirstPass = 1;
@@ -461,6 +464,10 @@ int x265_param_default_preset(x265_param
             param->rc.aqMode = 0;
             param->rc.qpStep = 1;
             param->rc.bEnableGrain = 1;
+            param->bEnableRecursionSkip = 0;
+            param->psyRd = 4.0;
+            param->psyRdoq = 10.0;
+            param->bEnableSAO = 0;
         }
         else
             return -1;
@@ -614,6 +621,7 @@ int x265_param_parse(x265_param* p, cons
     OPT("max-merge") p->maxNumMergeCand = (uint32_t)atoi(value);
     OPT("temporal-mvp") p->bEnableTemporalMvp = atobool(value);
     OPT("early-skip") p->bEnableEarlySkip = atobool(value);
+    OPT("recursion-skip") p->bEnableRecursionSkip = atobool(value);
     OPT("rdpenalty") p->rdPenalty = atoi(value);
     OPT("tskip") p->bEnableTransformSkip = atobool(value);
     OPT("no-tskip-fast") p->bEnableTSkipFast = atobool(value);
@@ -1344,6 +1352,7 @@ void x265_print_params(x265_param* param
     TOOLVAL(param->psyRdoq, "psy-rdoq=%.2lf");
     TOOLOPT(param->bEnableRdRefine, "rd-refine");
     TOOLOPT(param->bEnableEarlySkip, "early-skip");
+    TOOLOPT(param->bEnableRecursionSkip, "recursion-skip");
     TOOLVAL(param->noiseReductionIntra, "nr-intra=%d");
     TOOLVAL(param->noiseReductionInter, "nr-inter=%d");
     TOOLOPT(param->bEnableTSkipFast, "tskip-fast");
@@ -1402,6 +1411,7 @@ char *x265_param2string(x265_param* p)
     s += sprintf(s, " max-merge=%d", p->maxNumMergeCand);
     BOOL(p->bEnableTemporalMvp, "temporal-mvp");
     BOOL(p->bEnableEarlySkip, "early-skip");
+    BOOL(p->bEnableRecursionSkip, "recursion-skip");
     s += sprintf(s, " rdpenalty=%d", p->rdPenalty);
     BOOL(p->bEnableTransformSkip, "tskip");
     BOOL(p->bEnableTSkipFast, "tskip-fast");
diff -r a5362b9533f6 -r 7241944b3893 source/encoder/analysis.cpp
--- a/source/encoder/analysis.cpp	Wed May 04 21:08:09 2016 +0000
+++ b/source/encoder/analysis.cpp	Wed May 18 19:25:34 2016 +0000
@@ -885,7 +885,8 @@ SplitData Analysis::compressInterCU_rd0_
     bool mightSplit = !(cuGeom.flags & CUGeom::LEAF);
     bool mightNotSplit = !(cuGeom.flags & CUGeom::SPLIT_MANDATORY);
     uint32_t minDepth = topSkipMinDepth(parentCTU, cuGeom);
-    bool earlyskip = false;
+    bool skipModes = false; /* Skip any remaining mode analyses at current depth */
+    bool skipRecursion = false; /* Skip recursion */
     bool splitIntra = true;
     bool skipRectAmp = false;
     bool chooseMerge = false;


More information about the x265-commits mailing list