mirror of
https://github.com/ultravideo/uvg266.git
synced 2024-12-12 08:54:06 +00:00
8143ab971c
# Conflicts: # src/cfg.c # src/cli.c # src/kvazaar.h
438 lines
12 KiB
Groff
438 lines
12 KiB
Groff
.TH KVAZAAR "1" "September 2020" "kvazaar v2.0.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 <filename>
|
|
Input file
|
|
.TP
|
|
\fB\-\-input\-res <res>
|
|
Input resolution [auto]
|
|
\- auto: Detect from file name.
|
|
\- <int>x<int>: width times height
|
|
.TP
|
|
\fB\-o\fR, \fB\-\-output <filename>
|
|
Output file
|
|
|
|
.SS "Presets:"
|
|
.TP
|
|
\fB\-\-preset <preset>
|
|
Set options to a preset [medium]
|
|
\- ultrafast, superfast, veryfast, faster,
|
|
fast, medium, slow, slower, veryslow
|
|
placebo
|
|
|
|
.SS "Input:"
|
|
.TP
|
|
\fB\-n\fR, \fB\-\-frames <integer>
|
|
Number of frames to code [all]
|
|
.TP
|
|
\fB\-\-seek <integer>
|
|
First frame to code [0]
|
|
.TP
|
|
\fB\-\-input\-fps <num>[/<denom>]
|
|
Frame rate of the input video [25]
|
|
.TP
|
|
\fB\-\-source\-scan\-type <string>
|
|
Source scan type [progressive]
|
|
\- progressive: Progressive scan
|
|
\- tff: Top field first
|
|
\- bff: Bottom field first
|
|
.TP
|
|
\fB\-\-input\-format <string>
|
|
P420 or P400 [P420]
|
|
.TP
|
|
\fB\-\-input\-bitdepth <int>
|
|
8\-16 [8]
|
|
.TP
|
|
\fB\-\-loop\-input
|
|
Re\-read input file forever.
|
|
.TP
|
|
\fB\-\-input\-file\-format <string>
|
|
Input file format [auto]
|
|
\- auto: Check the file ending for format
|
|
\- y4m (skips frame headers)
|
|
\- yuv
|
|
|
|
.SS "Options:"
|
|
.TP
|
|
\fB\-\-help
|
|
Print this help message and exit.
|
|
.TP
|
|
\fB\-\-version
|
|
Print version information and exit.
|
|
.TP
|
|
\fB\-\-(no\-)aud
|
|
Use access unit delimiters. [disabled]
|
|
.TP
|
|
\fB\-\-debug <filename>
|
|
Output internal reconstruction.
|
|
.TP
|
|
\fB\-\-(no\-)cpuid
|
|
Enable runtime CPU optimizations. [enabled]
|
|
.TP
|
|
\fB\-\-hash <string>
|
|
Decoded picture hash [checksum]
|
|
\- none: 0 bytes
|
|
\- checksum: 18 bytes
|
|
\- md5: 56 bytes
|
|
.TP
|
|
\fB\-\-(no\-)psnr
|
|
Calculate PSNR for frames. [enabled]
|
|
.TP
|
|
\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]
|
|
.TP
|
|
\fB\-\-stats\-file\-prefix
|
|
A prefix used for stats files that include
|
|
bits, lambda, distortion, and qp for each ctu.
|
|
These are meant for debugging and are not
|
|
written unless the prefix is defined.
|
|
.SS "Video structure:"
|
|
.TP
|
|
\fB\-q\fR, \fB\-\-qp <integer>
|
|
Quantization parameter [22]
|
|
.TP
|
|
\fB\-p\fR, \fB\-\-period <integer>
|
|
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>
|
|
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>
|
|
Number of reference frames, in range 1..15 [4]
|
|
.TP
|
|
\fB\-\-gop <string>
|
|
GOP structure [lp\-g4d3t1]
|
|
\- 0: Disabled
|
|
\- 8: B\-frame pyramid of length 8
|
|
\- 16: B\-frame pyramid of length 16
|
|
\- lp\-<string>: Low\-delay P/B\-frame GOP
|
|
(e.g. lp\-g8d4t2, see README)
|
|
.TP
|
|
\fB\-\-intra\-qp\-offset <int>: QP offset for intra frames [\-51..51] [auto]
|
|
\- N: Set QP offset to N.
|
|
\- auto: Select offset automatically based
|
|
on GOP length.
|
|
.TP
|
|
\fB\-\-(no\-)open\-gop
|
|
Use open GOP configuration. [enabled]
|
|
.TP
|
|
\fB\-\-cqmfile <filename>
|
|
Read custom quantization matrices from a file.
|
|
.TP
|
|
\fB\-\-scaling\-list <string>: Set scaling list mode. [off]
|
|
\- off: Disable scaling lists.
|
|
\- custom: use custom list (with \-\-cqmfile).
|
|
\- default: Use default lists.
|
|
.TP
|
|
\fB\-\-bitrate <integer>
|
|
Target bitrate [0]
|
|
\- 0: Disable rate control.
|
|
\- N: Target N bits per second.
|
|
.TP
|
|
\fB\-\-rc\-algorithm <string>: Select used rc\-algorithm. [lambda]
|
|
\- lambda: rate control from:
|
|
DOI: 10.1109/TIP.2014.2336550
|
|
\- oba: DOI: 10.1109/TCSVT.2016.2589878
|
|
.TP
|
|
\fB\-\-(no\-)intra\-bits
|
|
Use Hadamard cost based allocation for intra
|
|
frames. Default on for gop 8 and off for lp\-gop
|
|
.TP
|
|
\fB\-\-(no\-)clip\-neighbour
|
|
On oba based rate control whether to clip
|
|
lambda values to same frame's ctus or previous'.
|
|
Default on for RA GOPS and disabled for LP.
|
|
.TP
|
|
\fB\-\-(no\-)lossless
|
|
Use lossless coding. [disabled]
|
|
.TP
|
|
\fB\-\-mv\-constraint <string>
|
|
Constrain movement vectors. [none]
|
|
\- none: No constraint
|
|
\- frametile: Constrain within the tile.
|
|
\- frametilemargin: Constrain even more.
|
|
.TP
|
|
\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\-\-set\-qp\-in\-cu
|
|
Set QP at CU level keeping pic_init_qp_minus26.
|
|
in PPS and slice_qp_delta in slize header zero.
|
|
.TP
|
|
\fB\-\-(no\-)erp\-aqp
|
|
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.
|
|
High tier requires level 4 or higher.
|
|
.TP
|
|
\fB\-\-(no\-)vaq <integer>
|
|
Enable variance adaptive quantization with given
|
|
strength, in range 1..20. Recommended: 5.
|
|
[disabled]
|
|
|
|
.SS "Compression tools:"
|
|
.TP
|
|
\fB\-\-(no\-)deblock <beta:tc>
|
|
Deblocking filter. [0:0]
|
|
\- beta: Between \-6 and 6
|
|
\- tc: Between \-6 and 6
|
|
.TP
|
|
\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 [enabled]
|
|
.TP
|
|
\fB\-\-(no\-)rdoq\-skip
|
|
Skip RDOQ for 4x4 blocks. [disabled]
|
|
.TP
|
|
\fB\-\-(no\-)signhide
|
|
Sign hiding [disabled]
|
|
.TP
|
|
\fB\-\-(no\-)smp
|
|
Symmetric motion partition [disabled]
|
|
.TP
|
|
\fB\-\-(no\-)amp
|
|
Asymmetric motion partition [disabled]
|
|
.TP
|
|
\fB\-\-rd <integer>
|
|
Intra mode search complexity [0]
|
|
\- 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
|
|
[disabled]
|
|
.TP
|
|
\fB\-\-(no\-)zero\-coeff\-rdo
|
|
If a CU is set inter, check if forcing zero
|
|
residual improves the RD cost. [enabled]
|
|
.TP
|
|
\fB\-\-(no\-)full\-intra\-search
|
|
Try all intra modes during rough search.
|
|
[disabled]
|
|
.TP
|
|
\fB\-\-(no\-)transform\-skip
|
|
Try transform skip [disabled]
|
|
.TP
|
|
\fB\-\-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
|
|
.TP
|
|
\fB\-\-me\-steps <integer>
|
|
Motion estimation search step limit. Only
|
|
affects 'hexbs' and 'dia'. [\-1]
|
|
.TP
|
|
\fB\-\-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
|
|
.TP
|
|
\fB\-\-pu\-depth\-inter <int>\-<int>
|
|
Inter prediction units sizes [0\-3]
|
|
\- 0, 1, 2, 3: from 64x64 to 8x8
|
|
\- Accepts a list of values separated by ','
|
|
for setting separate depths per GOP layer
|
|
(values can be omitted to use the first
|
|
value for the respective layer).
|
|
.TP
|
|
\fB\-\-pu\-depth\-intra <int>\-<int>
|
|
Intra prediction units sizes [1\-4]
|
|
\- 0, 1, 2, 3, 4: from 64x64 to 4x4
|
|
\- Accepts a list of values separated by ','
|
|
for setting separate depths per GOP layer
|
|
(values can be omitted to use the first
|
|
value for the respective layer).
|
|
.TP
|
|
\fB\-\-ml\-pu\-depth\-intra
|
|
Predict the pu\-depth\-intra using machine
|
|
learning trees, overrides the
|
|
\-\-pu\-depth\-intra parameter. [disabled]
|
|
.TP
|
|
\fB\-\-tr\-depth\-intra <int>
|
|
Transform split depth for intra blocks [0]
|
|
.TP
|
|
\fB\-\-(no\-)bipred
|
|
Bi\-prediction [disabled]
|
|
.TP
|
|
\fB\-\-cu\-split\-termination <string>
|
|
CU split search termination [zero]
|
|
\- off: Don't terminate early.
|
|
\- zero: Terminate when residual is zero.
|
|
.TP
|
|
\fB\-\-me\-early\-termination <string>
|
|
Motion estimation termination [on]
|
|
\- off: Don't terminate early.
|
|
\- on: Terminate early.
|
|
\- sensitive: Terminate even earlier.
|
|
.TP
|
|
\fB\-\-fast\-residual\-cost <int>
|
|
Skip CABAC cost for residual coefficients
|
|
when QP is below the limit. [0]
|
|
.TP
|
|
\fB\-\-(no\-)intra\-rdo\-et
|
|
Check intra modes in rdo stage only until
|
|
a zero coefficient CU is found. [disabled]
|
|
.TP
|
|
\fB\-\-(no\-)early\-skip
|
|
Try to find skip cu from merge candidates.
|
|
Perform no further search if skip is found.
|
|
For rd=0..1: Try the first candidate.
|
|
For rd=2..
|
|
Try the best candidate based
|
|
on luma satd cost. [enabled]
|
|
.TP
|
|
\fB\-\-max\-merge <integer>
|
|
Maximum number of merge candidates, 1..5 [5]
|
|
.TP
|
|
\fB\-\-(no\-)implicit\-rdpcm
|
|
Implicit residual DPCM. Currently only supported
|
|
with lossless coding. [disabled]
|
|
.TP
|
|
\fB\-\-(no\-)tmvp
|
|
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 automatically.
|
|
.TP
|
|
\fB\-\-owf <integer>
|
|
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. Enabling wpp with tiles is,
|
|
however, an experimental feature since it is
|
|
not supported in any HEVC profile.
|
|
.TP
|
|
\fB\-\-tiles <int>x<int>
|
|
Split picture into width x height uniform tiles.
|
|
.TP
|
|
\fB\-\-tiles\-width\-split <string>|u<int>
|
|
\- <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>
|
|
\- <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.
|
|
.TP
|
|
\fB\-\-partial\-coding <x\-offset>!<y\-offset>!<slice\-width>!<slice\-height>
|
|
|
|
Encode partial frame.
|
|
Parts must be merged to form a valid bitstream.
|
|
X and Y are CTU offsets.
|
|
Slice width and height must be divisible by CTU
|
|
in pixels unless it is the last CTU row/column.
|
|
This parameter is used by kvaShare.
|
|
|
|
.SS "Video Usability Information:"
|
|
.TP
|
|
\fB\-\-sar <width:height>
|
|
Specify sample aspect ratio
|
|
.TP
|
|
\fB\-\-overscan <string>
|
|
Specify crop overscan setting [undef]
|
|
\- undef, show, crop
|
|
.TP
|
|
\fB\-\-videoformat <string>
|
|
Specify video format [undef]
|
|
\- undef, component, pal, ntsc, secam, mac
|
|
.TP
|
|
\fB\-\-range <string>
|
|
Specify color range [tv]
|
|
\- tv, pc
|
|
.TP
|
|
\fB\-\-colorprim <string>
|
|
Specify color primaries [undef]
|
|
\- undef, bt709, bt470m, bt470bg,
|
|
smpte170m, smpte240m, film, bt2020
|
|
.TP
|
|
\fB\-\-transfer <string>
|
|
Specify transfer characteristics [undef]
|
|
\- undef, bt709, bt470m, bt470bg,
|
|
smpte170m, smpte240m, linear, log100,
|
|
log316, iec61966\-2\-4, bt1361e,
|
|
iec61966\-2\-1, bt2020\-10, bt2020\-12
|
|
.TP
|
|
\fB\-\-colormatrix <string>
|
|
Specify color matrix setting [undef]
|
|
\- undef, bt709, fcc, bt470bg, smpte170m,
|
|
smpte240m, GBR, YCgCo, bt2020nc, bt2020c
|
|
.TP
|
|
\fB\-\-chromaloc <integer>
|
|
Specify chroma sample location (0 to 5) [0]
|