[x265-commits] [x265] rest: add a couple of missing options, improve descriptio...
Steve Borho
steve at borho.org
Wed Mar 26 03:09:07 CET 2014
details: http://hg.videolan.org/x265/rev/02a2a5bd4330
branches:
changeset: 6590:02a2a5bd4330
user: Steve Borho <steve at borho.org>
date: Tue Mar 25 20:07:02 2014 -0500
description:
rest: add a couple of missing options, improve descriptions of others
Subject: [x265] api: drop VUI options which are not fully implemented
details: http://hg.videolan.org/x265/rev/8f770a36875d
branches:
changeset: 6591:8f770a36875d
user: Steve Borho <steve at borho.org>
date: Tue Mar 25 20:22:28 2014 -0500
description:
api: drop VUI options which are not fully implemented
It is better to not have to document that these are unfinished
Subject: [x265] rest: CRF options are doubles
details: http://hg.videolan.org/x265/rev/455e4c8a5b3d
branches:
changeset: 6592:455e4c8a5b3d
user: Steve Borho <steve at borho.org>
date: Tue Mar 25 20:22:51 2014 -0500
description:
rest: CRF options are doubles
Subject: [x265] api: fix documented defaults for cuTree and AQ
details: http://hg.videolan.org/x265/rev/f482d57a6ab5
branches:
changeset: 6593:f482d57a6ab5
user: Steve Borho <steve at borho.org>
date: Tue Mar 25 20:23:11 2014 -0500
description:
api: fix documented defaults for cuTree and AQ
Subject: [x265] cli: remove dead options from getopt long-options list
details: http://hg.videolan.org/x265/rev/9f5870075f72
branches:
changeset: 6594:9f5870075f72
user: Steve Borho <steve at borho.org>
date: Tue Mar 25 20:23:34 2014 -0500
description:
cli: remove dead options from getopt long-options list
Subject: [x265] rest: update licene email address
details: http://hg.videolan.org/x265/rev/82e2254874b1
branches:
changeset: 6595:82e2254874b1
user: Steve Borho <steve at borho.org>
date: Tue Mar 25 21:06:23 2014 -0500
description:
rest: update licene email address
diffstat:
doc/reST/cli.rst | 160 +++++++++++++++++++++++++++++---------------
doc/reST/introduction.rst | 2 +-
source/CMakeLists.txt | 2 +-
source/common/param.cpp | 35 ---------
source/encoder/encoder.cpp | 11 +-
source/x265.cpp | 15 ----
source/x265.h | 32 +--------
7 files changed, 117 insertions(+), 140 deletions(-)
diffs (truncated from 561 to 300 lines):
diff -r 11d301883894 -r 82e2254874b1 doc/reST/cli.rst
--- a/doc/reST/cli.rst Tue Mar 25 16:56:15 2014 -0500
+++ b/doc/reST/cli.rst Tue Mar 25 21:06:23 2014 -0500
@@ -64,14 +64,14 @@ Standalone Executable Options
Sets parameters to preselected values, trading off compression efficiency against
encoding speed. These parameters are applied before all other input parameters are
- applied, and so you can override any parameters that these values control. Default medium
+ applied, and so you can override any parameters that these values control.
0. ultrafast
1. superfast
2. veryfast
3. faster
4. fast
- 5. medium
+ 5. medium **(default)**
6. slow
7. slower
8. veryslow
@@ -80,13 +80,13 @@ Standalone Executable Options
.. option:: --tune, -t <string>
Tune the settings for a particular type of source or situation. The changes will
- be applied after --preset but before all other parameters. Default none
+ be applied after :option:`--preset` but before all other parameters. Default none
**Values:** psnr, ssim, zero-latency, fast-decode.
.. option:: --frame-threads, -F <integer>
- Number of concurrently encoded frames. Using a single frame thred
+ Number of concurrently encoded frames. Using a single frame thread
gives a slight improvement in compression, since the entire reference
frames are always available for motion compensation, but it has
severe performance implications. Default is an autodetected count
@@ -98,17 +98,17 @@ Standalone Executable Options
logging. If a CSV file is being generated, debug level makes the log
be per-frame rather than per-encode. Full level enables hash and
weight logging. -1 disables all logging, except certain fatal
- errors, and can be specified by the string "none". Default: 2 (info)
+ errors, and can be specified by the string "none".
0. error
1. warning
- 2. info
+ 2. info **(default)**
3. debug
4. full
.. option:: --csv <filename>
- Writes encoding results to a comma separated value log file Creates
+ Writes encoding results to a comma separated value log file. Creates
the file if it doesnt already exist, else adds one line per run. if
:option:`--log-level` is debug or above, it writes one line per
frame. Default none
@@ -165,7 +165,7 @@ Input Options
this time.
0. i400
- 1. i420
+ 1. i420 **(default)**
2. i422
3. i444
4. nv12
@@ -177,6 +177,20 @@ Input Options
**Range of values:** positive int or float, or num/denom
+.. option:: --interlaceMode <false|tff|bff>, --no-interlaceMode
+
+ **EXPERIMENTAL** Specify interlace type of source pictures.
+
+ 0. progressive pictures **(default)**
+ 1. top field first
+ 2. bottom field first
+
+ HEVC encodes interlaced content as fields. Fields must be provided to
+ the encoder in the correct temporal order. The source dimensions
+ must be field dimensions and the FPS must be in units of fields per
+ second. The decoder must re-combine the fields in their correct
+ orientation for display.
+
.. option:: --seek <integer>
Number of frames to skip at start of input file. Default 0
@@ -195,11 +209,19 @@ Quad-Tree analysis
.. option:: --wpp, --no-wpp
- Enable Wavefront Parallel Processing. Default: Enabled
+ Enable Wavefront Parallel Processing. The encoder may begin encoding
+ a row as soon as the row above it is at least two LCUs ahead in the
+ encode process. This gives a 3-5x gain in parallelism for about 1%
+ overhead in compression efficiency. Default: Enabled
.. option:: --ctu, -s <64|32|16>
- Maximum CU size (width and height). Default: 64
+ Maximum CU size (width and height). The larger the maximum CU size,
+ the more efficiently x265 can encode flat areas of the picture,
+ giving large reductions in bitrate. However this comes at a loss of
+ parallelism with fewer rows of CUs that can be encoded in parallel,
+ and less frame parallelism as well. Because of this the faster
+ presets use a CU size of 32. Default: 64
.. option:: --tu-intra-depth <1..4>
@@ -216,10 +238,10 @@ Temporal / motion search options
.. option:: --me <integer|string>
Motion search method. Generally, the higher the number the harder
- the ME method will try to find an optimal match. Default: hex
+ the ME method will try to find an optimal match.
0. dia
- 1. hex
+ 1. hex **(default)**
2. umh
3. star
4. full
@@ -244,7 +266,13 @@ Temporal / motion search options
.. option:: --max-merge <1..5>
- Maximum number of merge candidates. Default 2
+ Maximum number of neighbor (spatial and temporal) candidate blocks
+ that the encoder may consider for merging motion predictions. If a
+ merge candidate results in no residual, it is immediately selected
+ as a "skip". Otherwise the merge candidates are tested as part of
+ motion estimation when searching for the least cost inter option.
+ The max candidate number is encoded in the SPS and determines the
+ bit cost of signaling merge CUs. Default 2
.. option:: --early-skip, --no-early-skip
@@ -252,7 +280,10 @@ Temporal / motion search options
.. option:: --fast-cbf, --no-fast-cbf
- Enable Cbf fast mode. Default disabled
+ Short circuit analysis if a prediction is found that does not set
+ the coded block flag (aka: no residual was encoded). It prevents
+ the encoder from perhaps finding other predictions that also have no
+ residual but perhaps require less signaling bits. Default disabled
.. option:: --ref <1..16>
@@ -268,21 +299,23 @@ Spatial/intra options
.. option:: --rdpenalty <0..2>
- Penalty for 32x32 intra TU in non-I slices. Default 0
+ Penalty for 32x32 intra TU in non-I slices. Default 0
**Values:** 0:disabled 1:RD-penalty 2:maximum
.. option:: --tskip, --no-tskip
- Enable intra transform skipping. Default disabled
+ Enable intra transform skipping (encode residual as coefficients)
+ for intra coded TU. Default disabled
.. option:: --tskip-fast, --no-tskip-fast
- Enable fast intra transform skip decisions. Default disabled
+ Enable fast intra transform skip decisions. Only applicable if
+ transform skip is enabled. Default disabled
.. option:: --strong-intra-smoothing, --no-strong-intra-smoothing
- Enable strong intra smoothing for 32x32 blocks. Default enabled
+ Enable strong intra smoothing for 32x32 intra blocks. Default enabled
.. option:: --constrained-intra, --no-constrained-intra
@@ -318,9 +351,14 @@ Slice decision options
.. option:: --rc-lookahead <integer>
- Number of frames for frame-type lookahead (determines encoder latency). Default 20
+ Number of frames for slice-type decision lookahead (a key
+ determining factor for encoder latency). The longer the lookahead
+ buffer the more accurate scenecut decisions will be, and the more
+ effective cuTree will be at improving adaptive quant. Having a
+ lookahead larger than the max keyframe interval is not helpful.
+ Default 20
- **Range of values:** an integer less than or equal to 250 and greater than maximum consecutive bframe count (:option:`--bframes`)
+ **Range of values:** Between the maximum consecutive bframe count (:option:`--bframes`) and 250
.. option:: --b-adapt <integer>
@@ -328,19 +366,19 @@ Slice decision options
**Values:** 0:none; 1:fast; 2:full(trellis)
-.. option:: --bframes, -b <integer>
+.. option:: --bframes, -b <0..16>
Maximum number of consecutive b-frames. Use :option:`--bframes` 0 to
- force all P/I low-latency encodes. Default 4
-
- **Range of values:** 0 to 16
+ force all P/I low-latency encodes. Default 4. This parameter has a
+ quadratic effect on the amount of memory allocated and the amount of
+ work performed by the full trellis version of :option:`--b-adapt`
+ lookahead.
.. option:: --bframe-bias <integer>
Bias towards B frames in slicetype decision. The higher the bias the
- more likely x265 is to use B frames. Default 0
-
- **Range of values:** usually >=0 (increase the value for referring more B Frames e.g. 40-50)
+ more likely x265 is to use B frames. Can be any value between -20
+ and 100, but is typically between 10 and 30. Default 0
.. option:: --b-pyramid, --no-b-pyramid
@@ -352,13 +390,20 @@ Quality, rate control and rate distortio
.. option:: --bitrate <integer>
Enables ABR rate control. Specify the target bitrate in kbps.
- Default is 0 (CRF, no ABR)
+ Default is 0 (CRF)
**Range of values:** An integer greater than 0
-.. option:: --crf <0..51>
+.. option:: --crf <0..51.0>
- Quality-controlled VBR. Default rate factor is 28
+ Quality-controlled VBR. Default rate factor is 28.0
+
+.. option:: --max-crf <0..51.0>
+
+ Specify an upper limit for which the adaptive rate factor algorithm
+ can assign a rate factor for any given frame (ensuring a max QP).
+ This is dangerous when CRF is used with VBV as it may result in
+ buffer underruns. Default disabled
.. option:: --vbv-bufsize <integer>
@@ -388,10 +433,10 @@ Quality, rate control and rate distortio
.. option:: --aq-mode <0|1|2>
- Mode for Adaptive Quantization. Default 1
+ Adaptive Quantization operating mode.
0. disabled
- 1. AQ enabled
+ 1. AQ enabled **(default)**
2. AQ enabled with auto-variance
.. option:: --aq-strength <float>
@@ -400,15 +445,29 @@ Quality, rate control and rate distortio
**Range of values:** 0.0 to 3.0
+.. option:: --cutree, --no-cutree
+
+ Enable the use of lookahead's lowres motion vector fields to
+ determine the amount of reuse of each block to tune the quantization
+ factors. CU blocks which are heavily reused as motion reference for
+ later frames are given a lower QP (more bits) while CU blocks which
+ are quickly changed and are not referenced are given less bits. This
+ tends to improve detail in the backgrounds of video with less detail
+ in areas of high motion. Default enabled
+
.. option:: --cbqpoffs <integer>
- Chroma Cb QP Offset. Default 0
+ Offset of Cb chroma QP from the luma QP selected by rate control.
+ This is a general way to more or less bits to the chroma channel.
+ Default 0
**Range of values:** -12 to 12
.. option:: --crqpoffs <integer>
- Chroma Cr QP Offset. Default 0
+ Offset of Cr chroma QP from the luma QP selected by rate control.
+ This is a general way to more or less bits to the chroma channel.
+ Default 0
**Range of values:** -12 to 12
@@ -435,11 +494,18 @@ Loop filter
.. option:: --sao-lcu-bounds <0|1>
- 0: right/bottom boundary areas skipped **(Default)**; 1: non-deblocked pixels are used
+ How to handle depencency with deblocking filter
+
+ 0. right/bottom boundary areas skipped **(default)**
+ 1. non-deblocked pixels are used
More information about the x265-commits
mailing list