Update command line help

- Adds missing default values.
- Adds help for --crypto and --key.
- Adds help for --rd=3.
- Adds help for --sao options.
- Some changes to help wording.
This commit is contained in:
Arttu Ylä-Outinen 2018-03-23 12:33:06 +02:00
parent 3606860504
commit 7185519a1b
3 changed files with 447 additions and 386 deletions

266
README.md
View file

@ -53,14 +53,14 @@ Usage:
kvazaar -i <input> --input-res <width>x<height> -o <output>
Required:
-i, --input : Input file
-i, --input <filename> : Input file
--input-res <res> : Input resolution [auto]
auto: detect from file name
<int>x<int>: width times height
-o, --output : Output file
- auto: Detect from file name.
- <int>x<int>: width times height
-o, --output <filename> : Output file
Presets:
--preset=<preset> : Set options to a preset [medium]
--preset <preset> : Set options to a preset [medium]
- ultrafast, superfast, veryfast, faster,
fast, medium, slow, slower, veryslow
placebo
@ -68,160 +68,170 @@ Presets:
Input:
-n, --frames <integer> : Number of frames to code [all]
--seek <integer> : First frame to code [0]
--input-fps <num>[/<denom>] : Framerate of the input video [25.0]
--source-scan-type <string> : Set source scan type [progressive].
- progressive: progressive scan
- tff: top field first
- bff: bottom field first
--input-format : P420 or P400
--input-bitdepth : 8-16
--loop-input : Re-read input file forever
--input-fps <num>[/<denom>] : Frame rate of the input video [25]
--source-scan-type <string> : Source scan type [progressive]
- progressive: Progressive scan
- tff: Top field first
- bff: Bottom field first
--input-format <string> : P420 or P400 [P420]
--input-bitdepth <int> : 8-16 [8]
--loop-input : Re-read input file forever.
Options:
--help : Print this help message and exit
--version : Print version information and exit
--aud : Use access unit delimiters
--debug <string> : Output encoders reconstruction.
--cpuid <integer> : Disable runtime cpu optimizations with value 0.
--hash : Decoded picture hash [checksum]
--help : Print this help message and exit.
--version : Print version information and exit.
--(no-)aud : Use access unit delimiters. [disabled]
--debug <filename> : Output internal reconstruction.
--(no-)cpuid : Enable runtime CPU optimizations. [enabled]
--hash <string> : Decoded picture hash [checksum]
- none: 0 bytes
- checksum: 18 bytes
- md5: 56 bytes
--no-psnr : Don't calculate PSNR for frames
--no-info : Don't add encoder info SEI.
--(no-)psnr : Calculate PSNR for frames. [enabled]
--(no-)info : Add encoder info SEI. [enabled]
--crypto <string> : Selective encryption. Crypto support must be
enabled at compile-time. Can be 'on' or 'off' or
a list of features separated with a '+'. [off]
- on: Enable all encryption features.
- off: Disable selective encryption.
- mvs: Motion vector magnitudes.
- mv_signs: Motion vector signs.
- trans_coeffs: Coefficient magnitudes.
- trans_coeff_signs: Coefficient signs.
- intra_pred_modes: Intra prediction modes.
--key <string> : Encryption key [16,213,27,56,255,127,242,112,
97,126,197,204,25,59,38,30]
Video structure:
-q, --qp <integer> : Quantization Parameter [32]
-p, --period <integer> : Period of intra pictures [0]
- 0: only first picture is intra
- 1: all pictures are intra
- 2-N: every Nth picture is intra
--vps-period <integer> : Specify how often the video parameter set is
re-sent. [0]
- 0: only send VPS with the first frame
- N: send VPS with every Nth intra frame
-r, --ref <integer> : Reference frames, range 1..15 [3]
--gop <string> : Definition of GOP structure [0]
- 0: disabled
-q, --qp <integer> : Quantization parameter [22]
-p, --period <integer> : Period of intra pictures [64]
- 0: Only first picture is intra.
- 1: All pictures are intra.
- N: Every Nth picture is intra.
--vps-period <integer> : How often the video parameter set is re-sent [0]
- 0: Only send VPS with the first frame.
- N: Send VPS with every Nth intra frame.
-r, --ref <integer> : Number of reference frames, in range 1..15 [1]
--gop <string> : GOP structure [lp-g4d3t1]
- 0: Disabled
- 8: B-frame pyramid of length 8
- lp-<string>: lp-gop definition
(e.g. lp-g8d4t2, see README)
--cqmfile <string> : Custom Quantization Matrices from a file
--bitrate <integer> : Target bitrate. [0]
- 0: disable rate-control
- N: target N bits per second
--lossless : Use lossless coding
--mv-constraint : Constrain movement vectors
- none: no constraint
- frametile: constrain within the tile
- frametilemargin: constrain even more
--roi <string> : Use a delta QP map for region of interest
Read an array of delta QP values from
a file, where the first two values are the
width and height, followed by width*height
delta QP values in raster order.
The delta QP map can be any size or aspect
ratio, and will be mapped to LCU's.
--(no-)erp-aqp : Use adaptive QP for 360 video with
equirectangular projection
- lp-<string>: Low-delay P-frame GOP
(e.g. lp-g8d4t2, see README)
--cqmfile <filename> : Read custom quantization matrices from a file.
--bitrate <integer> : Target bitrate [0]
- 0: Disable rate control.
- N: Target N bits per second.
--(no-)lossless : Use lossless coding. [disabled]
--mv-constraint <string> : Constrain movement vectors. [none]
- none: No constraint
- frametile: Constrain within the tile.
- frametilemargin: Constrain even more.
--roi <filename> : Use a delta QP map for region of interest.
Reads an array of delta QP values from a text
file. The file format is: width and height of
the QP delta map followed by width*height delta
QP values in raster order. The map can be of any
size and will be scaled to the video size.
--(no-)erp-aqp : Use adaptive QP for 360 degree video with
equirectangular projection. [disabled]
--level <number> : Use the given HEVC level in the output and give
an error if the input doesn't fit to it's
limits [6.2]
Allowed values are 1, 2, 2.1, 3, 3.1, 4, 4.1
5, 5.1, 5.2, 6, 6.1 and 6.2. The dot is
optional.
--force-level <number> : Same as --level, except instead of errors you
get warnings
--high-tier : Used with --level. Tells the encoder to use
high-tier bitrate limits instead of the
main-tier limits during encoding.
an error if level limits are exceeded. [6.2]
- 1, 2, 2.1, 3, 3.1, 4, 4.1, 5, 5.1, 5.2, 6,
6.1, 6.2
--force-level <number> : Same as --level but warnings instead of errors.
--high-tier : Used with --level. Use high tier bitrate limits
instead of the main tier limits during encoding.
Compression tools:
--deblock [<beta:tc>] : Deblocking
- beta: between -6 and 6
- tc: between -6 and 6
--(no-)sao : Sample Adaptive Offset
--(no-)rdoq : Rate-Distortion Optimized Quantization
--(no-)signhide : Sign Hiding
--(no-)smp : Symmetric Motion Partition
--(no-)amp : Asymmetric Motion Partition
--rd <integer> : Intra mode search complexity
- 0: skip intra if inter is good enough
- 1: rough intra mode search with SATD
- 2: refine intra mode search with SSE
--(no-)mv-rdo : Rate-Distortion Optimized motion vector costs
--(no-)full-intra-search
: Try all intra modes during rough search.
--(no-)transform-skip : Transform skip
--me <string> : Integer motion estimation
--(no-)deblock <beta:tc> : Deblocking filter. [0:0]
- beta: Between -6 and 6
- tc: Between -6 and 6
--sao <string> : Sample Adaptive Offset [full]
- off: SAO disabled
- band: Band offset only
- edge: Edge offset only
- full: Full SAO
--(no-)rdoq : Rate-distortion optimized quantization [enabled]
--(no-)rdoq-skip : Skip RDOQ for 4x4 blocks. [enabled]
--(no-)signhide : Sign hiding [disabled]
--(no-)smp : Symmetric motion partition [disabled]
--(no-)amp : Asymmetric motion partition [disabled]
--rd <integer> : Intra mode search complexity [1]
- 0: Skip intra if inter is good enough.
- 1: Rough intra mode search with SATD.
- 2: Refine intra mode search with SSE.
- 3: Try all intra modes and enable intra
chroma mode search.
--(no-)mv-rdo : Rate-distortion optimized motion vector costs
[disabled]
--(no-)full-intra-search : Try all intra modes during rough search.
[disabled]
--(no-)transform-skip : Try transform skip [disabled]
--me <string> : Integer motion estimation algorithm [hexbs]
- hexbs: Hexagon Based Search
- tz: Test Zone Search
- full: Full Search
- full8, full16, full32, full64
- dia: Diamond Search
--me-steps <integer> : How many search steps does the motion estimation
do before cutting off [-1]
Has effect only for 'hexbs' and 'dia'
--subme <integer> : Set fractional pixel motion estimation level
- 0: only integer motion estimation
--me-steps <integer> : Motion estimation search step limit. Only
affects 'hexbs' and 'dia'. [-1]
--subme <integer> : Fractional pixel motion estimation level [4]
- 0: Integer motion estimation only
- 1: + 1/2-pixel horizontal and vertical
- 2: + 1/2-pixel diagonal
- 3: + 1/4-pixel horizontal and vertical
- 4: + 1/4-pixel diagonal
--pu-depth-inter <int>-<int>
: Range for sizes for inter predictions
--pu-depth-inter <int>-<int> : Inter prediction units sizes [1-3]
- 0, 1, 2, 3: from 64x64 to 8x8
--pu-depth-intra <int>-<int> : Range for sizes for intra predictions
--pu-depth-intra <int>-<int> : Intra prediction units sizes [1-3]
- 0, 1, 2, 3, 4: from 64x64 to 4x4
--(no-)bipred : Bi-prediction
--(no-)cu-split-termination
: CU split search termination condition
- off: Never terminate cu-split search
- zero: Terminate with zero residual
--(no-)me-early-termination : ME early termination condition
- off: Don't terminate early
- on: Terminate early
- sensitive: Terminate even earlier
--(no-)implicit-rdpcm : Implicit residual DPCM
Currently only supported with lossless coding.
--(no-)tmvp : Temporal Motion Vector Prediction
--(no-)rdoq-skip : Skips RDOQ for 4x4 blocks
--tr-depth-intra <int> : Transform split depth for intra blocks [0]
--(no-)bipred : Bi-prediction [disabled]
--cu-split-termination <string> : CU split search termination [zero]
- off: Don't terminate early.
- zero: Terminate when residual is zero.
--me-early-termination <string> : Motion estimation termination [on]
- off: Don't terminate early.
- on: Terminate early.
- sensitive: Terminate even earlier.
--(no-)implicit-rdpcm : Implicit residual DPCM. Currently only supported
with lossless coding. [disabled]
--(no-)tmvp : Temporal motion vector prediction [enabled]
Parallel processing:
--threads <integer> : Number of threads to use [auto]
- 0: process everything with main thread
- N: use N threads for encoding
- auto: select based on number of cores
--owf <integer> : Frame parallelism [auto]
- N: Process N-1 frames at a time
- auto: Select automatically
--(no-)wpp : Wavefront parallel processing [enabled]
Enabling tiles automatically disables WPP.
To enable WPP with tiles, re-enable it after
enabling tiles.
- 0: Process everything with main thread.
- N: Use N threads for encoding.
- auto: Select automatically.
--owf <integer> : Frame-level parallelism [auto]
- N: Process N-1 frames at a time.
- auto: Select automatically.
--(no-)wpp : Wavefront parallel processing.
Enabling tiles automatically disables WPP. To
enable WPP with tiles, re-enable it after
enabling tiles. [enabled]
--tiles <int>x<int> : Split picture into width x height uniform tiles.
--tiles-width-split <string>|u<int> :
Specifies a comma separated list of pixel
positions of tiles columns separation
coordinates.
Can also be u, followed by a single int n, in
which case it produces columns of uniform width.
- <string>: A comma-separated list of tile
column pixel coordinates.
- u<int>: Number of tile columns of uniform
width.
--tiles-height-split <string>|u<int> :
Specifies a comma separated list of pixel
positions of tiles rows separation coordinates.
Can also be u followed by and a single int n, in
which case it produces rows of uniform height.
--slices <string> : Control how slices are used
- tiles: put tiles in independent slices
- wpp: put rows in dependent slices
- tiles+wpp: do both
- <string>: A comma-separated list of tile row
column pixel coordinates.
- u<int>: Number of tile rows of uniform
height.
--slices <string> : Control how slices are used.
- tiles: Put tiles in independent slices.
- wpp: Put rows in dependent slices.
- tiles+wpp: Do both.
Video Usability Information:
--sar <width:height> : Specify Sample Aspect Ratio
--sar <width:height> : Specify sample aspect ratio
--overscan <string> : Specify crop overscan setting [undef]
- undef, show, crop
--videoformat <string> : Specify video format [undef]
- component, pal, ntsc, secam, mac, undef
- undef, component, pal, ntsc, secam, mac
--range <string> : Specify color range [tv]
- tv, pc
--colorprim <string> : Specify color primaries [undef]
@ -238,8 +248,8 @@ Video Usability Information:
--chromaloc <integer> : Specify chroma sample location (0 to 5) [0]
Deprecated parameters: (might be removed at some point)
-w, --width : Use --input-res
-h, --height : Use --input-res
-w, --width <integer> : Use --input-res.
-h, --height <integer> : Use --input-res.
```
[comment]: # (END KVAZAAR HELP MESSAGE)

View file

@ -1,24 +1,24 @@
.TH KVAZAAR "1" "November 2017" "kvazaar v1.2.0" "User Commands"
.TH KVAZAAR "1" "March 2018" "kvazaar v1.2.0" "User Commands"
.SH NAME
kvazaar \- open source HEVC encoder
.SH SYNOPSIS
\fBkvazaar \fR\-i <input> \-\-input\-res <width>x<height> \-o <output>
.SH DESCRIPTION
.TP
\fB\-i\fR, \fB\-\-input
\fB\-i\fR, \fB\-\-input <filename>
Input file
.TP
\fB\-\-input\-res <res>
Input resolution [auto]
auto: detect from file name
<int>x<int>: width times height
\- auto: Detect from file name.
\- <int>x<int>: width times height
.TP
\fB\-o\fR, \fB\-\-output
\fB\-o\fR, \fB\-\-output <filename>
Output file
.SS "Presets:"
.TP
\fB\-\-preset=<preset>
\fB\-\-preset <preset>
Set options to a preset [medium]
\- ultrafast, superfast, veryfast, faster,
fast, medium, slow, slower, veryslow
@ -32,241 +32,281 @@ Number of frames to code [all]
\fB\-\-seek <integer>
First frame to code [0]
.TP
\fB\-\-input\-fps <num>/<denom>
Framerate of the input video [25.0]
\fB\-\-input\-fps <num>[/<denom>]
Frame rate of the input video [25]
.TP
\fB\-\-source\-scan\-type <string>
Set source scan type [progressive].
\- progressive: progressive scan
\- tff: top field first
\- bff: bottom field first
Source scan type [progressive]
\- progressive: Progressive scan
\- tff: Top field first
\- bff: Bottom field first
.TP
\fB\-\-input\-format
P420 or P400
\fB\-\-input\-format <string>
P420 or P400 [P420]
.TP
\fB\-\-input\-bitdepth
8\-16
\fB\-\-input\-bitdepth <int>
8\-16 [8]
.TP
\fB\-\-loop\-input
Re\-read input file forever
Re\-read input file forever.
.SS "Options:"
.TP
\fB\-\-help
Print this help message and exit
Print this help message and exit.
.TP
\fB\-\-version
Print version information and exit
Print version information and exit.
.TP
\fB\-\-aud
Use access unit delimiters
\fB\-\-(no\-)aud
Use access unit delimiters. [disabled]
.TP
\fB\-\-debug <string>
Output encoders reconstruction.
\fB\-\-debug <filename>
Output internal reconstruction.
.TP
\fB\-\-cpuid <integer>
Disable runtime cpu optimizations with value 0.
\fB\-\-(no\-)cpuid
Enable runtime CPU optimizations. [enabled]
.TP
\fB\-\-hash
\fB\-\-hash <string>
Decoded picture hash [checksum]
\- none: 0 bytes
\- checksum: 18 bytes
\- md5: 56 bytes
.TP
\fB\-\-no\-psnr
Don't calculate PSNR for frames
\fB\-\-(no\-)psnr
Calculate PSNR for frames. [enabled]
.TP
\fB\-\-no\-info
Don't add encoder info SEI.
\fB\-\-(no\-)info
Add encoder info SEI. [enabled]
.TP
\fB\-\-crypto <string>
Selective encryption. Crypto support must be
enabled at compile\-time. Can be 'on' or 'off' or
a list of features separated with a '+'. [off]
\- on: Enable all encryption features.
\- off: Disable selective encryption.
\- mvs: Motion vector magnitudes.
\- mv_signs: Motion vector signs.
\- trans_coeffs: Coefficient magnitudes.
\- trans_coeff_signs: Coefficient signs.
\- intra_pred_modes: Intra prediction modes.
.TP
\fB\-\-key <string>
Encryption key [16,213,27,56,255,127,242,112,
97,126,197,204,25,59,38,30]
.SS "Video structure:"
.TP
\fB\-q\fR, \fB\-\-qp <integer>
Quantization Parameter [32]
Quantization parameter [22]
.TP
\fB\-p\fR, \fB\-\-period <integer>
Period of intra pictures [0]
\- 0: only first picture is intra
\- 1: all pictures are intra
\- 2\-N: every Nth picture is intra
Period of intra pictures [64]
\- 0: Only first picture is intra.
\- 1: All pictures are intra.
\- N: Every Nth picture is intra.
.TP
\fB\-\-vps\-period <integer>
Specify how often the video parameter set is
re\-sent. [0]
\- 0: only send VPS with the first frame
\- N: send VPS with every Nth intra frame
How often the video parameter set is re\-sent [0]
\- 0: Only send VPS with the first frame.
\- N: Send VPS with every Nth intra frame.
.TP
\fB\-r\fR, \fB\-\-ref <integer>
Reference frames, range 1..15 [3]
Number of reference frames, in range 1..15 [1]
.TP
\fB\-\-gop <string>
Definition of GOP structure [0]
\- 0: disabled
GOP structure [lp\-g4d3t1]
\- 0: Disabled
\- 8: B\-frame pyramid of length 8
\- lp\-<string>: lp\-gop definition
(e.g. lp\-g8d4t2, see README)
\- lp\-<string>: Low\-delay P\-frame GOP
(e.g. lp\-g8d4t2, see README)
.TP
\fB\-\-cqmfile <string>
Custom Quantization Matrices from a file
\fB\-\-cqmfile <filename>
Read custom quantization matrices from a file.
.TP
\fB\-\-bitrate <integer>
Target bitrate. [0]
\- 0: disable rate\-control
\- N: target N bits per second
Target bitrate [0]
\- 0: Disable rate control.
\- N: Target N bits per second.
.TP
\fB\-\-lossless
Use lossless coding
\fB\-\-(no\-)lossless
Use lossless coding. [disabled]
.TP
\fB\-\-mv\-constraint
Constrain movement vectors
\- none: no constraint
\- frametile: constrain within the tile
\- frametilemargin: constrain even more
\fB\-\-mv\-constraint <string>
Constrain movement vectors. [none]
\- none: No constraint
\- frametile: Constrain within the tile.
\- frametilemargin: Constrain even more.
.TP
\fB\-\-roi <string>
Use a delta QP map for region of interest
Read an array of delta QP values from
a file, where the first two values are the
width and height, followed by width*height
delta QP values in raster order.
The delta QP map can be any size or aspect
ratio, and will be mapped to LCU's.
\fB\-\-roi <filename>
Use a delta QP map for region of interest.
Reads an array of delta QP values from a text
file. The file format is: width and height of
the QP delta map followed by width*height delta
QP values in raster order. The map can be of any
size and will be scaled to the video size.
.TP
\fB\-\-(no\-)erp\-aqp
Use adaptive QP for 360 video with
equirectangular projection
Use adaptive QP for 360 degree video with
equirectangular projection. [disabled]
.TP
\fB\-\-level <number>
Use the given HEVC level in the output and give
an error if level limits are exceeded. [6.2]
\- 1, 2, 2.1, 3, 3.1, 4, 4.1, 5, 5.1, 5.2, 6,
6.1, 6.2
.TP
\fB\-\-force\-level <number>
Same as \-\-level but warnings instead of errors.
.TP
\fB\-\-high\-tier
Used with \-\-level. Use high tier bitrate limits
instead of the main tier limits during encoding.
.SS "Compression tools:"
.TP
\fB\-\-deblock [<beta:tc>]
Deblocking
\- beta: between \-6 and 6
\- tc: between \-6 and 6
\fB\-\-(no\-)deblock <beta:tc>
Deblocking filter. [0:0]
\- beta: Between \-6 and 6
\- tc: Between \-6 and 6
.TP
\fB\-\-(no\-)sao
Sample Adaptive Offset
\fB\-\-sao <string>
Sample Adaptive Offset [full]
\- off: SAO disabled
\- band: Band offset only
\- edge: Edge offset only
\- full: Full SAO
.TP
\fB\-\-(no\-)rdoq
Rate\-Distortion Optimized Quantization
Rate\-distortion optimized quantization [enabled]
.TP
\fB\-\-(no\-)rdoq\-skip
Skip RDOQ for 4x4 blocks. [enabled]
.TP
\fB\-\-(no\-)signhide
Sign Hiding
Sign hiding [disabled]
.TP
\fB\-\-(no\-)smp
Symmetric Motion Partition
Symmetric motion partition [disabled]
.TP
\fB\-\-(no\-)amp
Asymmetric Motion Partition
Asymmetric motion partition [disabled]
.TP
\fB\-\-rd <integer>
Intra mode search complexity
\- 0: skip intra if inter is good enough
\- 1: rough intra mode search with SATD
\- 2: refine intra mode search with SSE
Intra mode search complexity [1]
\- 0: Skip intra if inter is good enough.
\- 1: Rough intra mode search with SATD.
\- 2: Refine intra mode search with SSE.
\- 3: Try all intra modes and enable intra
chroma mode search.
.TP
\fB\-\-(no\-)mv\-rdo
Rate\-Distortion Optimized motion vector costs
Rate\-distortion optimized motion vector costs
[disabled]
.TP
\fB\-\-(no\-)full\-intra\-search
Try all intra modes during rough search.
[disabled]
.TP
\fB\-\-(no\-)transform\-skip
Transform skip
Try transform skip [disabled]
.TP
\fB\-\-me <string>
Integer motion estimation
Integer motion estimation algorithm [hexbs]
\- hexbs: Hexagon Based Search
\- tz: Test Zone Search
\- full: Full Search
\- full8, full16, full32, full64
\- dia: Diamond Search
.TP
\fB\-\-me\-steps <integer>
Motion estimation search step limit. Only
affects 'hexbs' and 'dia'. [\-1]
.TP
\fB\-\-subme <integer>
Set fractional pixel motion estimation level
\- 0: only integer motion estimation
Fractional pixel motion estimation level [4]
\- 0: Integer motion estimation only
\- 1: + 1/2\-pixel horizontal and vertical
\- 2: + 1/2\-pixel diagonal
\- 3: + 1/4\-pixel horizontal and vertical
\- 4: + 1/4\-pixel diagonal
.TP
\fB\-\-pu\-depth\-inter <int>\-<int>
Range for sizes for inter predictions
Inter prediction units sizes [1\-3]
\- 0, 1, 2, 3: from 64x64 to 8x8
.TP
\fB\-\-pu\-depth\-intra <int>\-<int>
Range for sizes for intra predictions
Intra prediction units sizes [1\-3]
\- 0, 1, 2, 3, 4: from 64x64 to 4x4
.TP
\fB\-\-tr\-depth\-intra <int>
Transform split depth for intra blocks [0]
.TP
\fB\-\-(no\-)bipred
Bi\-prediction
Bi\-prediction [disabled]
.TP
\fB\-\-(no\-)cu\-split\-termination
CU split search termination condition
\- off: Never terminate cu\-split search
\- zero: Terminate with zero residual
\fB\-\-cu\-split\-termination <string>
CU split search termination [zero]
\- off: Don't terminate early.
\- zero: Terminate when residual is zero.
.TP
\fB\-\-(no\-)me\-early\-termination
ME early termination condition
\- off: Don't terminate early
\- on: Terminate early
\- sensitive: Terminate even earlier
\fB\-\-me\-early\-termination <string>
Motion estimation termination [on]
\- off: Don't terminate early.
\- on: Terminate early.
\- sensitive: Terminate even earlier.
.TP
\fB\-\-(no\-)implicit\-rdpcm
Implicit residual DPCM
Currently only supported with lossless coding.
Implicit residual DPCM. Currently only supported
with lossless coding. [disabled]
.TP
\fB\-\-(no\-)tmvp
Temporal Motion Vector Prediction
.TP
\fB\-\-(no\-)rdoq\-skip
Skips RDOQ for 4x4 blocks
Temporal motion vector prediction [enabled]
.SS "Parallel processing:"
.TP
\fB\-\-threads <integer>
Number of threads to use [auto]
\- 0: process everything with main thread
\- N: use N threads for encoding
\- auto: select based on number of cores
\- 0: Process everything with main thread.
\- N: Use N threads for encoding.
\- auto: Select automatically.
.TP
\fB\-\-owf <integer>
Frame parallelism [auto]
\- N: Process N\-1 frames at a time
\- auto: Select automatically
Frame\-level parallelism [auto]
\- N: Process N\-1 frames at a time.
\- auto: Select automatically.
.TP
\fB\-\-(no\-)wpp
Wavefront parallel processing [enabled]
Enabling tiles automatically disables WPP.
To enable WPP with tiles, re\-enable it after
enabling tiles.
Wavefront parallel processing.
Enabling tiles automatically disables WPP. To
enable WPP with tiles, re\-enable it after
enabling tiles. [enabled]
.TP
\fB\-\-tiles <int>x<int>
Split picture into width x height uniform tiles.
.TP
\fB\-\-tiles\-width\-split <string>|u<int>
Specifies a comma separated list of pixel
positions of tiles columns separation coordinates.
Can also be u followed by and a single int n,
in which case it produces columns of uniform width.
\- <string>: A comma\-separated list of tile
column pixel coordinates.
\- u<int>: Number of tile columns of uniform
width.
.TP
\fB\-\-tiles\-height\-split <string>|u<int>
Specifies a comma separated list of pixel
positions of tiles rows separation coordinates.
Can also be u followed by and a single int n,
in which case it produces rows of uniform height.
\- <string>: A comma\-separated list of tile row
column pixel coordinates.
\- u<int>: Number of tile rows of uniform
height.
.TP
\fB\-\-slices <string>
Control how slices are used
\- tiles: put tiles in independent slices
\- wpp: put rows in dependent slices
\- tiles+wpp: do both
Control how slices are used.
\- tiles: Put tiles in independent slices.
\- wpp: Put rows in dependent slices.
\- tiles+wpp: Do both.
.SS "Video Usability Information:"
.TP
\fB\-\-sar <width:height>
Specify Sample Aspect Ratio
Specify sample aspect ratio
.TP
\fB\-\-overscan <string>
Specify crop overscan setting [undef]
@ -274,7 +314,7 @@ Specify crop overscan setting [undef]
.TP
\fB\-\-videoformat <string>
Specify video format [undef]
\- component, pal, ntsc, secam, mac, undef
\- undef, component, pal, ntsc, secam, mac
.TP
\fB\-\-range <string>
Specify color range [tv]

267
src/cli.c
View file

@ -36,9 +36,9 @@ static const struct option long_options[] = {
{ "input", required_argument, NULL, 'i' },
{ "output", required_argument, NULL, 'o' },
{ "debug", required_argument, NULL, 'd' },
{ "width", required_argument, NULL, 'w' },
{ "width", required_argument, NULL, 'w' }, // deprecated
{ "height", required_argument, NULL, 'h' }, // deprecated
{ "frames", required_argument, NULL, 'n' }, // deprecated
{ "frames", required_argument, NULL, 'n' },
{ "qp", required_argument, NULL, 'q' },
{ "period", required_argument, NULL, 'p' },
{ "ref", required_argument, NULL, 'r' },
@ -323,15 +323,15 @@ void print_help(void)
"\n"
/* Word wrap to this width to stay under 80 characters (including ") *************/
"Required:\n"
" -i, --input : Input file\n"
" -i, --input <filename> : Input file\n"
" --input-res <res> : Input resolution [auto]\n"
" auto: detect from file name\n"
" <int>x<int>: width times height\n"
" -o, --output : Output file\n"
" - auto: Detect from file name.\n"
" - <int>x<int>: width times height\n"
" -o, --output <filename> : Output file\n"
"\n"
/* Word wrap to this width to stay under 80 characters (including ") *************/
"Presets:\n"
" --preset=<preset> : Set options to a preset [medium]\n"
" --preset <preset> : Set options to a preset [medium]\n"
" - ultrafast, superfast, veryfast, faster,\n"
" fast, medium, slow, slower, veryslow\n"
" placebo\n"
@ -340,160 +340,171 @@ void print_help(void)
"Input:\n"
" -n, --frames <integer> : Number of frames to code [all]\n"
" --seek <integer> : First frame to code [0]\n"
" --input-fps <num>[/<denom>] : Framerate of the input video [25.0]\n"
" --source-scan-type <string> : Set source scan type [progressive].\n"
" - progressive: progressive scan\n"
" - tff: top field first\n"
" - bff: bottom field first\n"
" --input-format : P420 or P400\n"
" --input-bitdepth : 8-16\n"
" --loop-input : Re-read input file forever\n"
" --input-fps <num>[/<denom>] : Frame rate of the input video [25]\n"
" --source-scan-type <string> : Source scan type [progressive]\n"
" - progressive: Progressive scan\n"
" - tff: Top field first\n"
" - bff: Bottom field first\n"
" --input-format <string> : P420 or P400 [P420]\n"
" --input-bitdepth <int> : 8-16 [8]\n"
" --loop-input : Re-read input file forever.\n"
"\n"
/* Word wrap to this width to stay under 80 characters (including ") *************/
"Options:\n"
" --help : Print this help message and exit\n"
" --version : Print version information and exit\n"
" --aud : Use access unit delimiters\n"
" --debug <string> : Output encoders reconstruction.\n"
" --cpuid <integer> : Disable runtime cpu optimizations with value 0.\n"
" --hash : Decoded picture hash [checksum]\n"
" --help : Print this help message and exit.\n"
" --version : Print version information and exit.\n"
" --(no-)aud : Use access unit delimiters. [disabled]\n"
" --debug <filename> : Output internal reconstruction.\n"
" --(no-)cpuid : Enable runtime CPU optimizations. [enabled]\n"
" --hash <string> : Decoded picture hash [checksum]\n"
" - none: 0 bytes\n"
" - checksum: 18 bytes\n"
" - md5: 56 bytes\n"
" --no-psnr : Don't calculate PSNR for frames\n"
" --no-info : Don't add encoder info SEI.\n"
" --(no-)psnr : Calculate PSNR for frames. [enabled]\n"
" --(no-)info : Add encoder info SEI. [enabled]\n"
" --crypto <string> : Selective encryption. Crypto support must be\n"
" enabled at compile-time. Can be 'on' or 'off' or\n"
" a list of features separated with a '+'. [off]\n"
" - on: Enable all encryption features.\n"
" - off: Disable selective encryption.\n"
" - mvs: Motion vector magnitudes.\n"
" - mv_signs: Motion vector signs.\n"
" - trans_coeffs: Coefficient magnitudes.\n"
" - trans_coeff_signs: Coefficient signs.\n"
" - intra_pred_modes: Intra prediction modes.\n"
" --key <string> : Encryption key [16,213,27,56,255,127,242,112,\n"
" 97,126,197,204,25,59,38,30]\n"
"\n"
/* Word wrap to this width to stay under 80 characters (including ") *************/
"Video structure:\n"
" -q, --qp <integer> : Quantization Parameter [32]\n"
" -p, --period <integer> : Period of intra pictures [0]\n"
" - 0: only first picture is intra\n"
" - 1: all pictures are intra\n"
" - 2-N: every Nth picture is intra\n"
" --vps-period <integer> : Specify how often the video parameter set is\n"
" re-sent. [0]\n"
" - 0: only send VPS with the first frame\n"
" - N: send VPS with every Nth intra frame\n"
" -r, --ref <integer> : Reference frames, range 1..15 [3]\n"
" --gop <string> : Definition of GOP structure [0]\n"
" - 0: disabled\n"
" -q, --qp <integer> : Quantization parameter [22]\n"
" -p, --period <integer> : Period of intra pictures [64]\n"
" - 0: Only first picture is intra.\n"
" - 1: All pictures are intra.\n"
" - N: Every Nth picture is intra.\n"
" --vps-period <integer> : How often the video parameter set is re-sent [0]\n"
" - 0: Only send VPS with the first frame.\n"
" - N: Send VPS with every Nth intra frame.\n"
" -r, --ref <integer> : Number of reference frames, in range 1..15 [1]\n"
" --gop <string> : GOP structure [lp-g4d3t1]\n"
" - 0: Disabled\n"
" - 8: B-frame pyramid of length 8\n"
" - lp-<string>: lp-gop definition\n"
" (e.g. lp-g8d4t2, see README)\n"
" --cqmfile <string> : Custom Quantization Matrices from a file\n"
" --bitrate <integer> : Target bitrate. [0]\n"
" - 0: disable rate-control\n"
" - N: target N bits per second\n"
" --lossless : Use lossless coding\n"
" --mv-constraint : Constrain movement vectors\n"
" - none: no constraint\n"
" - frametile: constrain within the tile\n"
" - frametilemargin: constrain even more\n"
" --roi <string> : Use a delta QP map for region of interest\n"
" Read an array of delta QP values from\n"
" a file, where the first two values are the\n"
" width and height, followed by width*height\n"
" delta QP values in raster order.\n"
" The delta QP map can be any size or aspect\n"
" ratio, and will be mapped to LCU's.\n"
" --(no-)erp-aqp : Use adaptive QP for 360 video with\n"
" equirectangular projection\n"
" - lp-<string>: Low-delay P-frame GOP\n"
" (e.g. lp-g8d4t2, see README)\n"
" --cqmfile <filename> : Read custom quantization matrices from a file.\n"
" --bitrate <integer> : Target bitrate [0]\n"
" - 0: Disable rate control.\n"
" - N: Target N bits per second.\n"
" --(no-)lossless : Use lossless coding. [disabled]\n"
" --mv-constraint <string> : Constrain movement vectors. [none]\n"
" - none: No constraint\n"
" - frametile: Constrain within the tile.\n"
" - frametilemargin: Constrain even more.\n"
" --roi <filename> : Use a delta QP map for region of interest.\n"
" Reads an array of delta QP values from a text\n"
" file. The file format is: width and height of\n"
" the QP delta map followed by width*height delta\n"
" QP values in raster order. The map can be of any\n"
" size and will be scaled to the video size.\n"
" --(no-)erp-aqp : Use adaptive QP for 360 degree video with\n"
" equirectangular projection. [disabled]\n"
" --level <number> : Use the given HEVC level in the output and give\n"
" an error if the input doesn't fit to it's\n"
" limits [6.2]\n"
" Allowed values are 1, 2, 2.1, 3, 3.1, 4, 4.1\n"
" 5, 5.1, 5.2, 6, 6.1 and 6.2. The dot is\n"
" optional.\n"
" --force-level <number> : Same as --level, except instead of errors you\n"
" get warnings\n"
" --high-tier : Used with --level. Use high-tier bitrate limits\n"
" instead of the main-tier limits during encoding.\n"
" an error if level limits are exceeded. [6.2]\n"
" - 1, 2, 2.1, 3, 3.1, 4, 4.1, 5, 5.1, 5.2, 6,\n"
" 6.1, 6.2\n"
" --force-level <number> : Same as --level but warnings instead of errors.\n"
" --high-tier : Used with --level. Use high tier bitrate limits\n"
" instead of the main tier limits during encoding.\n"
"\n"
/* Word wrap to this width to stay under 80 characters (including ") *************/
"Compression tools:\n"
" --deblock [<beta:tc>] : Deblocking\n"
" - beta: between -6 and 6\n"
" - tc: between -6 and 6\n"
" --(no-)sao : Sample Adaptive Offset\n"
" --(no-)rdoq : Rate-Distortion Optimized Quantization\n"
" --(no-)signhide : Sign Hiding\n"
" --(no-)smp : Symmetric Motion Partition\n"
" --(no-)amp : Asymmetric Motion Partition\n"
" --rd <integer> : Intra mode search complexity\n"
" - 0: skip intra if inter is good enough\n"
" - 1: rough intra mode search with SATD\n"
" - 2: refine intra mode search with SSE\n"
" --(no-)mv-rdo : Rate-Distortion Optimized motion vector costs\n"
" --(no-)full-intra-search\n"
" : Try all intra modes during rough search.\n"
" --(no-)transform-skip : Transform skip\n"
" --me <string> : Integer motion estimation\n"
" --(no-)deblock <beta:tc> : Deblocking filter. [0:0]\n"
" - beta: Between -6 and 6\n"
" - tc: Between -6 and 6\n"
" --sao <string> : Sample Adaptive Offset [full]\n"
" - off: SAO disabled\n"
" - band: Band offset only\n"
" - edge: Edge offset only\n"
" - full: Full SAO\n"
" --(no-)rdoq : Rate-distortion optimized quantization [enabled]\n"
" --(no-)rdoq-skip : Skip RDOQ for 4x4 blocks. [enabled]\n"
" --(no-)signhide : Sign hiding [disabled]\n"
" --(no-)smp : Symmetric motion partition [disabled]\n"
" --(no-)amp : Asymmetric motion partition [disabled]\n"
" --rd <integer> : Intra mode search complexity [1]\n"
" - 0: Skip intra if inter is good enough.\n"
" - 1: Rough intra mode search with SATD.\n"
" - 2: Refine intra mode search with SSE.\n"
" - 3: Try all intra modes and enable intra\n"
" chroma mode search.\n"
" --(no-)mv-rdo : Rate-distortion optimized motion vector costs\n"
" [disabled]\n"
" --(no-)full-intra-search : Try all intra modes during rough search.\n"
" [disabled]\n"
" --(no-)transform-skip : Try transform skip [disabled]\n"
" --me <string> : Integer motion estimation algorithm [hexbs]\n"
" - hexbs: Hexagon Based Search\n"
" - tz: Test Zone Search\n"
" - full: Full Search\n"
" - full8, full16, full32, full64\n"
" - dia: Diamond Search\n"
" --me-steps <integer> : How many search steps does the motion estimation\n"
" do before cutting off [-1]\n"
" Has effect only for 'hexbs' and 'dia'\n"
" --subme <integer> : Set fractional pixel motion estimation level\n"
" - 0: only integer motion estimation\n"
" --me-steps <integer> : Motion estimation search step limit. Only\n"
" affects 'hexbs' and 'dia'. [-1]\n"
" --subme <integer> : Fractional pixel motion estimation level [4]\n"
" - 0: Integer motion estimation only\n"
" - 1: + 1/2-pixel horizontal and vertical\n"
" - 2: + 1/2-pixel diagonal\n"
" - 3: + 1/4-pixel horizontal and vertical\n"
" - 4: + 1/4-pixel diagonal\n"
" --pu-depth-inter <int>-<int>\n"
" : Range for sizes for inter predictions\n"
" --pu-depth-inter <int>-<int> : Inter prediction units sizes [1-3]\n"
" - 0, 1, 2, 3: from 64x64 to 8x8\n"
" --pu-depth-intra <int>-<int> : Range for sizes for intra predictions\n"
" --pu-depth-intra <int>-<int> : Intra prediction units sizes [1-3]\n"
" - 0, 1, 2, 3, 4: from 64x64 to 4x4\n"
" --(no-)bipred : Bi-prediction\n"
" --(no-)cu-split-termination\n"
" : CU split search termination condition\n"
" - off: Never terminate cu-split search\n"
" - zero: Terminate with zero residual\n"
" --(no-)me-early-termination : ME early termination condition\n"
" - off: Don't terminate early\n"
" - on: Terminate early\n"
" - sensitive: Terminate even earlier\n"
" --(no-)implicit-rdpcm : Implicit residual DPCM\n"
" Currently only supported with lossless coding.\n"
" --(no-)tmvp : Temporal Motion Vector Prediction\n"
" --(no-)rdoq-skip : Skips RDOQ for 4x4 blocks\n"
" --tr-depth-intra <int> : Transform split depth for intra blocks [0]\n"
" --(no-)bipred : Bi-prediction [disabled]\n"
" --cu-split-termination <string> : CU split search termination [zero]\n"
" - off: Don't terminate early.\n"
" - zero: Terminate when residual is zero.\n"
" --me-early-termination <string> : Motion estimation termination [on]\n"
" - off: Don't terminate early.\n"
" - on: Terminate early.\n"
" - sensitive: Terminate even earlier.\n"
" --(no-)implicit-rdpcm : Implicit residual DPCM. Currently only supported\n"
" with lossless coding. [disabled]\n"
" --(no-)tmvp : Temporal motion vector prediction [enabled]\n"
"\n"
/* Word wrap to this width to stay under 80 characters (including ") *************/
"Parallel processing:\n"
" --threads <integer> : Number of threads to use [auto]\n"
" - 0: process everything with main thread\n"
" - N: use N threads for encoding\n"
" - auto: select based on number of cores\n"
" --owf <integer> : Frame parallelism [auto]\n"
" - N: Process N-1 frames at a time\n"
" - auto: Select automatically\n"
" --(no-)wpp : Wavefront parallel processing [enabled]\n"
" Enabling tiles automatically disables WPP.\n"
" To enable WPP with tiles, re-enable it after\n"
" enabling tiles.\n"
" - 0: Process everything with main thread.\n"
" - N: Use N threads for encoding.\n"
" - auto: Select automatically.\n"
" --owf <integer> : Frame-level parallelism [auto]\n"
" - N: Process N-1 frames at a time.\n"
" - auto: Select automatically.\n"
" --(no-)wpp : Wavefront parallel processing.\n"
" Enabling tiles automatically disables WPP. To\n"
" enable WPP with tiles, re-enable it after\n"
" enabling tiles. [enabled]\n"
" --tiles <int>x<int> : Split picture into width x height uniform tiles.\n"
" --tiles-width-split <string>|u<int> :\n"
" Specifies a comma separated list of pixel\n"
" positions of tiles columns separation\n"
" coordinates.\n"
" Can also be u, followed by a single int n, in\n"
" which case it produces columns of uniform width.\n"
" - <string>: A comma-separated list of tile\n"
" column pixel coordinates.\n"
" - u<int>: Number of tile columns of uniform\n"
" width.\n"
" --tiles-height-split <string>|u<int> :\n"
" Specifies a comma separated list of pixel\n"
" positions of tiles rows separation coordinates.\n"
" Can also be u followed by and a single int n, in\n"
" which case it produces rows of uniform height.\n"
" --slices <string> : Control how slices are used\n"
" - tiles: put tiles in independent slices\n"
" - wpp: put rows in dependent slices\n"
" - tiles+wpp: do both\n"
" - <string>: A comma-separated list of tile row\n"
" column pixel coordinates.\n"
" - u<int>: Number of tile rows of uniform\n"
" height.\n"
" --slices <string> : Control how slices are used.\n"
" - tiles: Put tiles in independent slices.\n"
" - wpp: Put rows in dependent slices.\n"
" - tiles+wpp: Do both.\n"
"\n"
/* Word wrap to this width to stay under 80 characters (including ") *************/
"Video Usability Information:\n"
" --sar <width:height> : Specify Sample Aspect Ratio\n"
" --sar <width:height> : Specify sample aspect ratio\n"
" --overscan <string> : Specify crop overscan setting [undef]\n"
" - undef, show, crop\n"
" --videoformat <string> : Specify video format [undef]\n"
@ -515,8 +526,8 @@ void print_help(void)
"\n"
/* Word wrap to this width to stay under 80 characters (including ") *************/
"Deprecated parameters: (might be removed at some point)\n"
" -w, --width : Use --input-res\n"
" -h, --height : Use --input-res\n");
" -w, --width <integer> : Use --input-res.\n"
" -h, --height <integer> : Use --input-res.\n");
}