[x265-commits] [x265] analysis: add in extra X265_CHECK

Deepthi Nandakumar deepthi at multicorewareinc.com
Wed Jul 23 08:16:15 CEST 2014


details:   http://hg.videolan.org/x265/rev/2ee1444e8a00
branches:  
changeset: 7522:2ee1444e8a00
user:      Deepthi Nandakumar <deepthi at multicorewareinc.com>
date:      Wed Jul 23 11:40:45 2014 +0530
description:
analysis: add in extra X265_CHECK
Subject: [x265] rest: move profile, level, and tier into their own section

details:   http://hg.videolan.org/x265/rev/8a8495c750ad
branches:  
changeset: 7523:8a8495c750ad
user:      Steve Borho <steve at borho.org>
date:      Wed Jul 23 01:14:30 2014 -0500
description:
rest: move profile, level, and tier into their own section

They really didn't belong combined with the slice-decision options

diffstat:

 doc/reST/cli.rst            |  109 ++++++++++++++++++++++---------------------
 source/encoder/analysis.cpp |    2 +
 2 files changed, 58 insertions(+), 53 deletions(-)

diffs (138 lines):

diff -r c1823bb20eed -r 8a8495c750ad doc/reST/cli.rst
--- a/doc/reST/cli.rst	Wed Jul 23 11:16:33 2014 +0530
+++ b/doc/reST/cli.rst	Wed Jul 23 01:14:30 2014 -0500
@@ -294,6 +294,62 @@ Input Options
 	vectors and splits) and less on residual. This feature is intended
 	for experimentation.
 
+Profile, Level, Tier
+====================
+
+.. option:: --profile <string>
+
+	Enforce the requirements of the specified profile, ensuring the
+	output stream will be decodable by a decoder which supports that
+	profile.  May abort the encode if the specified profile is
+	impossible to be supported by the compile options chosen for the
+	encoder (a high bit depth encoder will be unable to output
+	bitstreams compliant with Main or Mainstillpicture).
+
+	API users must use x265_param_apply_profile() after configuring
+	their param structure. Any changes made to the param structure after
+	this call might make the encode non-compliant.
+
+	**Values:** main, main10, mainstillpicture
+
+	**CLI ONLY**
+
+.. option:: --level-idc <integer|float>
+
+	Minimum decoder requirement level. Defaults to 0, which implies
+	auto-detection by the encoder. If specified, the encoder will
+	attempt to bring the encode specifications within that specified
+	level. If the encoder is unable to reach the level it issues a
+	warning and aborts the encode. If the requested requirement level is
+	higher than the actual level, the actual requirement level is
+	signaled.
+
+	Beware, wpecifying a decoder level will force the encoder to enable
+	VBV for constant rate factor encodes, which may introduce
+	non-determinism.
+
+	The value is specified as a float or as an integer with the level
+	times 10, for example level **5.1** is specified as "5.1" or "51",
+	and level **5.0** is specified as "5.0" or "50".
+
+	Annex A levels: 1, 2, 2.1, 3, 3.1, 4, 4.1, 5, 5.1, 5.2, 6, 6.1, 6.2
+
+.. option:: --high-tier, --no-high-tier
+
+	If :option:`--level-idc` has been specied, the option adds the
+	intention to support the High tier of that level. If your specified
+	level does not support a High tier, a warning is issued and this
+	modifier flag is ignored.
+
+.. note::
+	:option:`--profile`, :option:`--level-idc`, and
+	:option:`--high-tier` are only intended for use when you are
+	targeting a particular decoder (or decoders) with fixed resource
+	limitations and must constrain the bitstream within those limits.
+	Specifying a profile or level may lower the encode quality
+	parameters to meet those requirements but it will never raise
+	them.
+
 Quad-Tree analysis
 ==================
 
@@ -594,59 +650,6 @@ Slice decision options
 
 	Use B-frames as references, when possible. Default enabled
 
-.. option:: --profile <string>
-
-	Enforce the requirements of the specified profile, ensuring the
-	output stream will be decodable by a decoder which supports that
-	profile.  May abort the encode if the specified profile is
-	impossible to be supported by the compile options chosen for the
-	encoder (a high bit depth encoder will be unable to output
-	bitstreams compliant with Main or Mainstillpicture).
-
-	API users must use x265_param_apply_profile() after configuring
-	their param structure. Any changes made to the param structure after
-	this call might make the encode non-compliant.
-
-	**Values:** main, main10, mainstillpicture
-
-	**CLI ONLY**
-
-.. option:: --level-idc <integer|float>
-
-	Minimum decoder requirement level. Defaults to 0, which implies
-	auto-detection by the encoder. If specified, the encoder will
-	attempt to bring the encode specifications within that specified
-	level. If the encoder is unable to reach the level it issues a
-	warning and aborts the encode. If the requested requirement level is
-	higher than the actual level, the actual requirement level is
-	signaled.
-
-	Beware, wpecifying a decoder level will force the encoder to enable
-	VBV for constant rate factor encodes, which may introduce
-	non-determinism.
-
-	The value is specified as a float or as an integer with the level
-	times 10, for example level **5.1** is specified as "5.1" or "51",
-	and level **5.0** is specified as "5.0" or "50".
-
-	Annex A levels: 1, 2, 2.1, 3, 3.1, 4, 4.1, 5, 5.1, 5.2, 6, 6.1, 6.2
-
-.. option:: --high-tier, --no-high-tier
-
-	If :option:`--level-idc` has been specied, the option adds the
-	intention to support the High tier of that level. If your specified
-	level does not support a High tier, a warning is issued and this
-	modifier flag is ignored.
-
-.. note::
-	:option:`--profile`, :option:`--level-idc`, and
-	:option:`--high-tier` are only intended for use when you are
-	targeting a particular decoder (or decoders) with fixed resource
-	limitations and must constrain the bitstream within those limits.
-	Specifying a profile or level may lower the encode quality
-	parameters to meet those requirements but it will never raise
-	them.
-
 .. option:: --ref <1..16>
 
 	Max number of L0 references to be allowed. This number has a linear
diff -r c1823bb20eed -r 8a8495c750ad source/encoder/analysis.cpp
--- a/source/encoder/analysis.cpp	Wed Jul 23 11:16:33 2014 +0530
+++ b/source/encoder/analysis.cpp	Wed Jul 23 01:14:30 2014 -0500
@@ -1044,6 +1044,8 @@ void Analysis::compressInterCU_rd0_4(TCo
     {
         X265_CHECK(outBestCU->getPartitionSize(0) != SIZE_NONE, "no best prediction size\n");
         X265_CHECK(outBestCU->getPredictionMode(0) != MODE_NONE, "no best prediction mode\n");
+        X265_CHECK(outBestCU->m_totalRDCost != MAX_INT64, "no best prediction cost\n");
+
     }
 
     x265_emms();


More information about the x265-commits mailing list