[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