Newer
Older
\documentclass[a4paper,11pt]{jvetdoc}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
\usepackage{geometry}[2010/02/12]
\usepackage{hyperref}
\hypersetup{colorlinks=true,
linkcolor=black, % color of internal links (change box color with linkbordercolor)
citecolor=black, % color of links to bibliography
filecolor=black, % color of file links
urlcolor=blue}
\usepackage{color,soul}
\usepackage[position=bottom]{subfig}
\captionsetup[subfloat]{position=top}
\usepackage{multirow}
\usepackage{dcolumn}
\newcolumntype{.}{D{.}{.}{-1}}
\usepackage{colortbl}
\usepackage{makecell}
\usepackage{longtable}
\usepackage{array}
\usepackage{algorithm2e}
\usepackage{amsmath}
\urlstyle{same}
% code highlighting
\usepackage{minted,xcolor}
\definecolor{bggray}{gray}{0.95}
\setminted{
bgcolor=bggray,
xleftmargin=3ex,
breaklines=true,
fontsize=\footnotesize}
\usepackage[strings]{underscore}
\usepackage{csquotes}
\MakeOuterQuote{"}
\EnableQuotes
\newcommand\None{}
\newcommand\NotSet{}
\makeatletter
\newcommand{\Option}[1]{\ifx\optOption\@empty\gdef\optOption{#1}\else\g@addto@macro\optOption{ \\ #1}\fi}
\newcommand{\ShortOption}[1]{\ifx\optShortOption\@empty\gdef\optShortOption{#1}\else\g@addto@macro\optShortOption{ \\ #1}\fi}
\newcommand{\Default}[1]{\ifx\optDefault\@empty\gdef\optDefault{#1}\else\g@addto@macro\optDefault{ \\ #1}\fi}
\newcommand{\clearOptions}{\gdef\optOption{}\gdef\optShortOption{}\gdef\optDefault{}}
\makeatother
\newenvironment{OptionTable}[1]{%
\footnotesize
\def\arraystretch{1.8}
\clearOptions
\begin{longtable}{l<{\makecell[tl]{\optOption}}%
>{\texttt\bgroup}l<{\makecell[tl]{\optShortOption}\egroup}%
c<{\makecell[tc]{\optDefault}}%
>{\def\arraystretch{1.0}}p{0.5\textwidth}<{\clearOptions}}
\caption{#1} \\
\hspace*{12em}&&\hspace*{8em}&\kill
\hline
\thead{Option} &
\egroup\thead{Shorthand}\bgroup &
\thead{Default} &
\thead{Description} \\
\hline
\endfirsthead
\caption[]{#1 (Continued)} \\
\hspace*{12em}&&\hspace*{8em}&\kill
\hline
\thead{Option} &
\egroup\thead{Shorthand}\bgroup &
\thead{Default} &
\thead{Description} \\
\hline
\endhead
\multicolumn{4}{r}{Continued...}\\
\hline
\endfoot
\hline
\endlastfoot
}{%
\hline
\end{longtable}
}
\newenvironment{OptionTableNoShorthand}[2]{%
\scriptsize
\def\arraystretch{1.8}
\clearOptions
\begin{longtable}{l<{\makecell[tl]{\optOption}}%
c<{\makecell[tc]{\optDefault}}%
>{\def\arraystretch{1.0}}p{0.5\textwidth}<{\clearOptions}}
\caption{#1} \label{#2} \\
\hspace*{12em}&\hspace*{8em}&\kill
\hline
\thead{Option} &
\thead{Default} &
\thead{Description} \\
\hline
\endfirsthead
\caption[]{#1 (Continued)} \\
\hspace*{12em}&\hspace*{8em}&\kill
\hline
\thead{Option} &
\thead{Default} &
\thead{Description} \\
\hline
\endhead
\multicolumn{3}{r}{Continued...}\\
\hline
\endfoot
\hline
\endlastfoot
}{%
\hline
\end{longtable}
}
\newenvironment{SEIListTable}[1]{%
\scriptsize
\def\arraystretch{1.8}
\clearOptions
\begin{longtable}{c<{\makecell[tl]{\optOption}}%
l<{\makecell[tc]{\optDefault}}%
>{\def\arraystretch{1.0}}p{0.3\textwidth}<{\clearOptions}}
\caption{#1} \\
\hspace*{12em}&\hspace*{8em}&\kill
\hline
\thead{SEI Number} &
\thead{SEI Name} &
\thead{Table number of encoder controls, if available} \\
\hline
\endfirsthead
\caption[]{#1 (Continued)} \\
\hspace*{12em}&\hspace*{8em}&\kill
\hline
\thead{SEI Number} &
\thead{SEI Name} &
\thead{Table number of encoder controls, if available} \\
\hline
\endhead
\multicolumn{3}{r}{Continued...}\\
\hline
\endfoot
\hline
\endlastfoot
}{%
\hline
\end{longtable}
}
\newenvironment{MacroTable}[1]{%
\scriptsize
\def\arraystretch{1.3}
\clearOptions
\begin{longtable}{lcp{0.5\textwidth}}
\caption{#1} \\
%\hspace*{12em}&&\hspace*{8em}&\kill
\hline
\thead{Option} &
\thead{Default} &
\thead{Description} \\
\hline
\endfirsthead
\caption[]{#1 (Continued)} \\
\hline
\thead{Option} &
\thead{Default} &
\thead{Description} \\
\hline
\endhead
\multicolumn{3}{r}{Continued...}\\
\hline
\endfoot
\hline
\endlastfoot
}{%
\end{longtable}
}
\title{VTM Software Manual}
\author{%
Frank Bossen
\email{frank@bossentech.com}
\and
David Flynn
\and
Xiang Li
\jvetdocpurpose{Information}
\jvetdocsource{AHG chairs}
\begin{document}
\maketitle
\begin{abstract}
This document is a user manual describing usage of the VTM reference software
for the VVC project. It applies to version 19.1 of the software.
\end{abstract}
\tableofcontents
\listoftables
\section{General Information}
Reference software is being made available to provide a reference
implementation of the HEVC standard being developed by the Joint
Video Experts Team (JVET) regrouping experts from
ITU-T SG 16 and ISO/IEC SC29 WG5. One of the main goals of the
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
reference software is to provide a basis upon which to conduct
experiments in order to determine which coding tools provide desired
coding performance. It is not meant to be a particularly efficient
implementation of anything, and one may notice its apparent
unsuitability for a particular use. It should not be construed to be a
reflection of how complex a production-quality implementation of a
future VVC standard would be.
This document aims to provide guidance on the usage of the reference
software. It is widely suspected to be incomplete and suggestions for
improvements are welcome. Such suggestions and general inquiries may be
sent to the general JVET email reflector on
\url{https://lists.rwth-aachen.de/postorius/lists/jvet.lists.rwth-aachen.de/}
(registration required).
\subsection*{Bug reporting}
Bugs should be reported on the issue tracker set up at:
\url{https://jvet.hhi.fraunhofer.de/trac/vvc/}
\section{Installation and compilation}
The software may be retrieved from the GitLab server located at:
\url{https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM}
Table~\ref{tab:project-files} lists the compiler environments and versions
for which building the software is tested.
Note that the software makes use of C++14 language features, which may not
be available in older compilers.
\begin{table}[ht]
\caption{Supported compilers}
\label{tab:project-files}
\centering
\begin{tabular}{ll}
\hline
\thead{Compiler environment} &
\thead{Versions} \\
\hline
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
Xcode/clang & latest \\
\hline
\end{tabular}
\end{table}
By default the software is built as 64-bit binaries to be used on a 64-bit OS.
This allows the software to use more than 2GB of RAM.
The software uses CMake to create platform-specific build files.
\subsection {Build instructions for plain CMake (suggested)}
\textbf{Note:} A working CMake installation is required for building the software.
CMake generates configuration files for the compiler environment/development
environment on each platform. The following is a list of examples for Windows
(MS Visual Studio), macOS (Xcode) and Linux (make).
Open a command prompt on your system and change into the root directory
of this project.
Create a build directory in the root directory:
\begin{minted}{bash}
mkdir build
\end{minted}
Use one of the following CMake commands, based on your platform. Feel free to change the
commands to satisfy your needs.
\textbf{Windows Visual Studio 2015 64 Bit:}
\begin{minted}{bash}
cd build
cmake .. -G "Visual Studio 14 2015 Win64"
\end{minted}
Then open the generated solution file in MS Visual Studio.
\textbf{macOS Xcode:}
\begin{minted}{bash}
cd build
cmake .. -G "Xcode"
\end{minted}
Then open the generated work space in Xcode.
\textbf{Linux}
For generating Linux Release Makefile:
\begin{minted}{bash}
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
\end{minted}
For generating Linux Debug Makefile:
\begin{minted}{bash}
cd build
cmake .. -DCMAKE_BUILD_TYPE=Debug
\end{minted}
Then type
\begin{minted}{bash}
make -j
\end{minted}
to build the software.
For more details, refer to the CMake documentation: \url{https://cmake.org/cmake/help/latest/}
\subsection {Build instructions for make}
\textbf{Note:}
The build instructions in this section require the make tool and Python
to be installed, which are part of usual Linux and macOS environments.
See section \ref{windowsinstall} for installation instruction for Python
and GnuWin32 on Windows.
Open a command prompt on your system and change into the root directory
of this project.
To use the default system compiler simply call:
\begin{minted}{bash}
make all
\end{minted}
For MSYS2 and MinGW:
Open an MSYS MinGW 64-Bit terminal and change into the root directory
of this project.
Call:
\begin{minted}{bash}
make all toolset=gcc
\end{minted}
\subsection{Tool Installation on Windows}
\label{windowsinstall}
Download CMake: \url{http://www.cmake.org/} and install it.
Python and GnuWin32 are not mandatory, but they simplify the build process for the user.
\begin{table}[ht]
\footnotesize
\centering
\begin{tabular}{ll}
\hline
Python & \url{https://www.python.org/downloads/release/python-371/} \\
GnuWin32 & \url{https://sourceforge.net/projects/getgnuwin32/files/getgnuwin32/0.6.30/GetGnuWin32-0.6.3.exe/download} \\
\hline
\end{tabular}
\end{table}
To use MinGW, install MSYS2:
\url{http://repo.msys2.org/distrib/msys2-x86_64-latest.exe}
Installation instructions:
\url{https://www.msys2.org/}
Install the needed toolchains:
\begin{minted}{bash}
pacman -S --needed base-devel mingw-w64-i686-toolchain mingw-w64-x86_64-toolchain git subversion mingw-w64-i686-cmake mingw-w64-x86_64-cmake
\end{minted}
%%%%
%%%%
%%%%
\section{Using the encoder}
\begin{minted}{bash}

Karsten Suehring
committed
EncoderApp [--help] [-li -c config.cfg] [-li --parameter=value]
\end{minted}
\begin{table}[ht]
\footnotesize
\centering
\begin{tabular}{lp{0.5\textwidth}}
\hline
\thead{Option} &
\thead{Description} \\
\hline
\texttt{--help} & Prints parameter usage. \\
\texttt{-li} & Applies to its next config file or command line parameter only to define i-th layer encoding option. If empty, the configuration file applies to all layers\\
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
\texttt{-c} & Defines configuration file to use. Multiple configuration files
may be used with repeated --c options. \\
\texttt{--}\emph{parameter}\texttt{=}\emph{value}
& Assigns value to a given parameter as further described below.
Some parameters are also supported by shorthand
"--\em{opt}~\emph{value}". These are shown in brackets after the parameter
name in the tables of this document\\
\hline
\end{tabular}
\end{table}
Sample configuration files are provided in the cfg/ folder.
Parameters are defined by the last value encountered on the command line.
Therefore if a setting is set via a configuration file, and then a subsequent
command line parameter changes that same setting, the command line parameter
value will be used.
\subsection{GOP structure table}
\label{sec:gop-structure}
Defines the cyclic GOP structure that will be used repeatedly
throughout the sequence. The table should contain GOPSize lines,
named Frame1, Frame2, etc. The frames are listed in decoding
order, so Frame1 is the first frame in decoding order, Frame2 is
the second and so on. Among other things, the table specifies all
reference pictures kept by the decoder for each frame. This
includes pictures that are used for reference for the current
picture as well as pictures that will be used for reference in
the future. The encoder will not automatically calculate which
pictures have to be kept for future references, they must
be specified. Note that some specified reference frames for
pictures encoded in the very first GOP after an IDR frame might
not be available. This is handled automatically by the encoder,
so the reference pictures can be given in the GOP structure table
as if there were infinitely many identical GOPs before the
current one. Each line in the table contains the parameters used
for the corresponding frame, separated by whitespace:
\begin{itemize}
\item[]\textbf{Type}: Slice type, can be either I, P or B.
\item[]\textbf{POC}: Display order of the frame within a GOP, ranging
from 1 to GOPSize.
\item[]\textbf{QPOffset}: QP offset is added to the QP parameter to set
the final QP value to use for this frame.
\item[]\textbf{QPOffsetModelOff}: Offset parameter to a linear model to adjust final QP based on QP + QPoffset.
\item[]\textbf{QPOffsetModelScale}: Scale parameter to a linear model to adjust final QP based on QP + QPoffset.
\item[]\textbf{SliceCbQPOffset}: The slice-level Cb QP offset.
\item[]\textbf{SliceCrQPOffset}: The slice-level Cr QP offset.
\item[]\textbf{QPFactor}: Weight used during rate distortion
optimization. Higher values mean lower quality and less bits. Typical
range is between
0.3 and 1.
\item[]\textbf{tcOffsetDiv2}: An in-loop deblocking filter parameter for luma component, tcOffsetDiv2
is added to the base parameter DeblockingFilterTcOffset_div2 to set the final tc_offset_div2
parameter for this picture signalled in the slice segment header. The final
value of tc_offset_div2 shall be an integer number in the range $-12..12$.
\item[]\textbf{betaOffsetDiv2}: An in-loop deblocking filter parameter for luma component, betaOffsetDiv2
is added to the base parameter DeblockingFilterBetaOffset_div2 to set the final beta_offset_div2
parameter for this picture signalled in the slice segment header. The final
value of beta_offset_div2 shall be an integer number in the range $-12..12$.
\item[]\textbf{CbTcOffsetDiv2}: An in-loop deblocking filter parameter for Cb component, CbTcOffsetDiv2
is added to the base parameter DeblockingFilterCbTcOffset_div2 to set the final tc_offset_div2
parameter for this picture signalled in the slice segment header. The final
value of tc_offset_div2 shall be an integer number in the range $-12..12$.
\item[]\textbf{CbBetaOffsetDiv2}: An in-loop deblocking filter parameter for Cb component, CbBetaOffsetDiv2
is added to the base parameter DeblockingFilterCbBetaOffset_div2 to set the final beta_offset_div2
parameter for this picture signalled in the slice segment header. The final
value of beta_offset_div2 shall be an integer number in the range $-12..12$.
\item[]\textbf{CrTcOffsetDiv2}: An in-loop deblocking filter parameter for Cr component, CrTcOffsetDiv2
is added to the base parameter DeblockingFilterCrTcOffset_div2 to set the final tc_offset_div2
parameter for this picture signalled in the slice segment header. The final
value of tc_offset_div2 shall be an integer number in the range $-12..12$.
\item[]\textbf{CrBetaOffsetDiv2}: An in-loop deblocking filter parameter for Cr component, CrBetaOffsetDiv2
is added to the base parameter DeblockingFilterCrBetaOffset_div2 to set the final beta_offset_div2
parameter for this picture signalled in the slice segment header. The final
value of beta_offset_div2 shall be an integer number in the range $-12..12$.
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
\item[]\textbf{temporal_id}: Temporal layer of the frame. A frame cannot
predict from a frame with a higher temporal id. If a frame with higher
temporal IDs is listed among a frame's reference pictures, it is
not used, but is kept for possible use in future frames.
\item[]\textbf{num_ref_pics_active_L0}: Number of reference pictures in lists L0
that are used during coding.
\item[]\textbf{num_ref_pics_L0}: Size of reference picture list L0.
This includes pictures that are used for reference for the
current picture as well as pictures that will be used for reference in
the future.
\item[]\textbf{reference_pictures_L0}: A space-separated list of
num_ref_pics integers, specifying the POC of the reference pictures
kept, relative the POC of the current frame. The picture list shall be
ordered as their intendend order in the L0.
Note that any pictures not supplied in this list and in the list of L1 will be discarded and
therefore not available as reference pictures later.
\item[]\textbf{num_ref_pics_active_L1}: Number of reference pictures in lists L1
that are used during coding.
\item[]\textbf{num_ref_pics_L1}: Size of reference picture list L1.
This includes pictures that are used for reference for the
current picture as well as pictures that will be used for reference in
the future.
\item[]\textbf{reference_pictures_L1}: A space-separated list of
num_ref_pics integers, specifying the POC of the reference pictures
kept, relative the POC of the current frame. The picture list shall be
ordered as their intendend order in the L1.
Note that any pictures not supplied in this list and in the list of L0 will be discarded and
therefore not available as reference pictures later.
For example, consider the coding structure of Figure~\ref{fig:gop-example}.
This coding structure is of size 4. The pictures are listed in decoding
order. Frame1 shall therefore describe picture with $\textrm{POC}=4$. It
references picture 0, and therefore has 4 as a reference picture.
Similarly, Frame2 has a POC of 2, and since it references pictures 0 and
4, its reference pictures are listed as \verb|2 -2|. Frame3 is a special
case: even though it only references pictures with POC 0 and 2, it also
needs to include the picture with POC 4, which must be kept in order to
be used as a reference picture in the future. Note that picture with POC 4 can be
included in the L0 or L1. The reference picture list for Frame3 therefore becomes \verb|1 -1 -3|.
Frame4 has a POC of 3 and its list of reference pictures is \verb|1 -1|.
\end{itemize}
\begin{figure}[h]
\caption{A GOP structure}
\label{fig:gop-example}
\centering
\includegraphics[width=0.7\textwidth]{figures/gop-structure-example}
\end{figure}
In order to specify this to the encoder, the parameters in
Table~\ref{tab:gop-example} could be used.
\begin{table}[ht]
\footnotesize
\caption{GOP structure example}
\label{tab:gop-example}
\centering
\begin{tabular}{lrrrr}
\hline
\thead{} &
\thead{Frame1} &
\thead{Frame2} &
\thead{Frame3} &
\thead{Frame4} \\
\hline
Type & P & B & B & B \\
POC & 4 & 2 & 1 & 3 \\
QPOffset & 1 & 2 & 3 & 3 \\
QPOffsetModelOff & 0.0 & 0.0 & 0.0 & 0.0 \\
QPOffsetModelScale & 0.0 & 0.0 & 0.0 & 0.0 \\
SliceCbQPOffset & 0 & 0 & 0 & 0 \\
SliceCrQPOffset & 0 & 0 & 0 & 0 \\
QPfactor & 0.5 & 0.5 & 0.5 & 0.5 \\
tcOffsetDiv2 & 0 & 1 & 2 & 2 \\
betaOffsetDiv2 & 0 & 0 & 0 & 0 \\
CbTcOffsetDiv2 & 0 & 0 & 0 & 0 \\
CbBetaOffsetDiv2 & 0 & 0 & 0 & 0 \\
CrTcOffsetDiv2 & 0 & 0 & 0 & 0 \\
CrBetaOffsetDiv2 & 0 & 0 & 0 & 0 \\
temporal_id & 0 & 1 & 2 & 2 \\
num_ref_pics_active_L0 & 1 & 1 & 1 & 1 \\
num_ref_pics_L0 & 1 & 1 & 1 & 1 \\
reference_pictures_L0 & 4 & 2 & 1 & 1 \\
num_ref_pics_active_L1 & 0 & 1 & 1 & 1 \\
num_ref_pics_L1 & 0 & 1 & 2 & 1 \\
reference_pictures_L1 & & $-$2 & $-$1 $-$3 & $-$1 \\
\hline
\end{tabular}
\end{table}
Here, the frames used for prediction have been given higher
quality by assigning a lower QP offset. Also, the non-reference
frames have been marked as belonging to a higher temporal layer,
to make it possible to decode only every other frame. Note: each
line should contain information for one frame, so this
configuration would be specified as:
\begin{verbatim}
Frame1: P 4 1 0 0 0.5 0 0 0 0 0 0 0 1 1 4 1 1 4
Frame2: B 2 2 0 0 0.5 1 0 0 0 0 0 1 1 1 2 1 1 -2
Frame3: B 1 3 0 0 0.5 2 0 0 0 0 0 2 1 1 1 1 2 -1 -3
Frame4: B 3 3 0 0 0.5 2 0 0 0 0 0 2 1 1 1 1 1 -1
\end{verbatim}
%%%%
%%%%
%%%%
\newgeometry{tmargin=1.6cm,lmargin=1cm,rmargin=1cm,bmargin=1in,nohead}
\subsection{Encoder parameters}
%%
%% File, I/O and source parameters
%%
Shorthand alternatives for the parameter that can be used on the command line are shown in brackets after the parameter name.
\begin{OptionTableNoShorthand}{File, I/O and source parameters.}{tab:fileIO}
\Option{InputFile (-i)} &
%\ShortOption{-i} &
\Default{\NotSet} &
Specifies the input video file. If the file extension is Y4M, picture width, picture height, input bitdepth, chroma format and frame rate from Y4M will override the input from cfg and command line options.
Video data must be in a raw 4:2:0, or 4:2:2 planar format, 4:4:4 planar format (Y$'$CbCr, RGB or GBR), or in a raw 4:0:0 format.
Note: When the bit depth of samples is larger than 8, each sample is encoded in
2 bytes (little endian, LSB-justified).
\\
\Option{BitstreamFile (-b)} &
%\ShortOption{-b} &
\Default{\NotSet} &
Specifies the output coded bit stream file.
\\
\Option{ReconFile (-o)} &
%\ShortOption{-o} &
\Default{\NotSet} &
Specifies the output locally reconstructed video file. If more than one layer is encoded (i.e. MaxLayers > 1), a reconstructed file is written for each layer and the layer index is added as suffix to ReconFile. If one or more dots exist in the file name, the layer id is added before the last dot, e.g. 'reconst.yuv' becomes 'reconst0.yuv' for layer id 0, 'reconst' becomes 'reconst0'. If the file extension is Y4M, picture width, picture height, bitdepth, chroma format and frame rate of the current encoding will be output to the Y4M file.
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
\\
\Option{SourceWidth (-wdt)}%
\Option{SourceHeight (-hgt)} &
%\ShortOption{-wdt}%
%\ShortOption{-hgt} &
\Default{0}%
\Default{0} &
Specifies the width and height of the input video in luma samples.
\\
\Option{InputBitDepth}
&
%\ShortOption{\None} &
\Default{8} &
Specifies the bit depth of the input video.
\\
\Option{MSBExtendedBitDepth} &
%\ShortOption{\None} &
\Default{0} &
Extends the input video by adding MSBs of value 0. When 0, no extension is applied and the InputBitDepth is used.
The MSBExtendedBitDepth becomes the effective file InputBitDepth for subsequent processing.
\\
\Option{InternalBitDepth} &
%\ShortOption{\None} &
\Default{0} &
Specifies the bit depth used for coding. When 0, the setting defaults to the
value of the MSBExtendedBitDepth.
If the input video is a different bit depth to InternalBitDepth, it is
automatically converted by:
\begin{displaymath}
\left\lfloor
\frac{\mathrm{Pel} * 2^{\mathrm{InternalBitDepth}}}{
2^{\mathrm{MSBExtendedBitDepth}}}
\right\rfloor
\end{displaymath}
Note: The effect of this option is as if the input video is externally
converted to the MSBExtendedBitDepth and then to the InternalBitDepth
and then coded with this value as InputBitDepth. The codec has no
notion of different bit depths.
\\
\Option{OutputBitDepth} &
%\ShortOption{\None} &
\Default{0} &
Specifies the bit depth of the output locally reconstructed video file.
When 0, the setting defaults to the value of InternalBitDepth.
Note: This option has no effect on the decoding process.
\\
\Option{InputBitDepthC}%
\Option{MSBExtendedBitDepthC}%
\Option{OutputBitDepthC} &
%\ShortOption{\None} &
\Default{0}%
\Default{0}%
\Default{0} &
Specifies the various bit-depths for chroma components. These only need
to be specified if non-equal luma and chroma bit-depth processing is
required. When 0, the setting defaults to the corresponding non-Chroma value.
\\
\Option{InputColourSpaceConvert} &
%\ShortOption{\None} &
\Default{\NotSet} &
The colour space conversion to apply to input video. Permitted values are:
\par
\begin{tabular}{lp{0.3\textwidth}}
UNCHANGED & No colour space conversion is applied \\
YCbCrToYCrCb & Swap the second and third components \\
YCbCrtoYYY & Set the second and third components to the values in the first \\
RGBtoGBR & Reorder the three components \\
\end{tabular}
\par
If no value is specified, no colour space conversion is applied. The list may eventually also include RGB to YCbCr or YCgCo conversions.
\\
\Option{SNRInternalColourSpace} &
%\ShortOption{\None} &
\Default{false} &
When this is set true, then no colour space conversion is applied prior to PSNR calculation, otherwise the inverse of InputColourSpaceConvert is applied.
\\
\Option{OutputInternalColourSpace} &
%\ShortOption{\None} &
\Default{false} &
When this is set true, then no colour space conversion is applied to the reconstructed video, otherwise the inverse of InputColourSpaceConvert is applied.
\\
\Option{InputChromaFormat} &
%\ShortOption{\None} &
\Default{420} &
Specifies the chroma format used in the input file. Permitted values (depending on the profile) are 400, 420, 422 or 444.
\\
\Option{ChromaFormatIDC (-cf)} &
%\ShortOption{-cf} &
\Default{0} &
Specifies the chroma format to use for processing. Permitted values (depending on the profile) are 400, 420, 422 or 444; the value of 0 indicates that the value of InputChromaFormat should be used instead.
\\
\Option{MSEBasedSequencePSNR} &
%\ShortOption{\None} &
\Default{false} &
When 0, the PSNR output is a linear average of the frame PSNRs; when 1, additional PSNRs are output which are formed from the average MSE of all the frames. The latter is useful when coding near-losslessly, where occasional frames become lossless.
\\
\Option{PrintFrameMSE} &
%\ShortOption{\None} &
\Default{false} &
When 1, the Mean Square Error (MSE) values of each frame will also be output alongside the default PSNR values.
\\
\Option{PrintSequenceMSE} &
%\ShortOption{\None} &
\Default{false} &
When 1, the Mean Square Error (MSE) values of the entire sequence will also be output alongside the default PSNR values.
\\
\Option{PrintWPSNR} &
%\ShortOption{\None} &
\Default{false} &
When 1, weighted PSNR (wPSNR) values of the entire sequence will also be output.
\\
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
\Option{SummaryOutFilename} &
%\ShortOption{\None} &
\Default{false} &
Filename to use for producing summary output file. If empty, do not produce a file.
\\
\Option{SummaryPicFilenameBase} &
%\ShortOption{\None} &
\Default{false} &
Base filename to use for producing summary picture output files. The actual filenames used will have I.txt, P.txt and B.txt appended. If empty, do not produce a file.
\\
\Option{SummaryVerboseness} &
%\ShortOption{\None} &
\Default{false} &
Specifies the level of the verboseness of the text output.
\\
\Option{CabacZeroWordPaddingEnabled} &
%\ShortOption{\None} &
\Default{false} &
When 1, CABAC zero word padding will be enabled. This is currently not the default value for the setting.
\\
\Option{ConformanceWindowMode} &
%\ShortOption{\None} &
\Default{1} &
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
Specifies how the parameters related to the conformance window are interpreted (cropping/padding).
The following modes are available:
\par
\begin{tabular}{cp{0.43\textwidth}}
0 & No cropping / padding \\
1 & Automatic padding to the next minimum CU size \\
2 & Padding according to parameters HorizontalPadding and VerticalPadding \\
3 & Cropping according to parameters ConfWinLeft, ConfWinRight, ConfWinTop and ConfWinBottom \\
\end{tabular}
\\
\Option{HorizontalPadding (-pdx)}%
\Option{VerticalPadding (-pdy)} &
%\ShortOption{-pdx}%
%\ShortOption{-pdy} &
\Default{0} &
Specifies the horizontal and vertical padding to be applied to the input
video in luma samples when ConformanceWindowMode is 2. Must be a multiple of
the chroma resolution (e.g. a multiple of two for 4:2:0).
\\
\Option{ConfWinLeft}%
\Option{ConfWinRight}%
\Option{ConfWinTop}%
\Option{ConfWinBottom} &
%\ShortOption{\None} &
\Default{0} &
Specifies the horizontal and vertical cropping to be applied to the
input video in luma samples when ConformanceWindowMode is 3.
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
Must be a multiple of the chroma resolution (e.g. a multiple of
two for 4:2:0).
\\
\Option{FrameRate (-fr)} &
%\ShortOption{-fr} &
\Default{0} &
Specifies the frame rate of the input video.
Note: This option only affects the reported bit rates.
\\
\Option{FrameSkip (-fs)} &
%\ShortOption{-fs} &
\Default{0} &
Specifies a number of frames to skip at beginning of input video file.
\\
\Option{FramesToBeEncoded (-f)} &
%\ShortOption{-f} &
\Default{0} &
Specifies the number of frames to be encoded (see note regarding TemporalSubsampleRatio). When 0, all frames are coded.
\\
\Option{TemporalSubsampleRatio (-ts)} &
%\ShortOption{-fs} &
\Default{1} &
Temporally subsamples the input video sequence. A value of $N$ will skip $(N-1)$ frames of input video after each coded input video frame. Note the FramesToBeEncoded does not account for the temporal skipping of frames, which will reduce the number of frames encoded accordingly. The reported bit rates will be reduced and VUI information is scaled so as to present the video at the correct speed. The minimum and default value is 1.
\\
\Option{FieldCoding} &
%\ShortOption{\None} &
\Default{false} &
When 1, indicates that field-based coding is to be applied.
\\
\Option{TopFieldFirst (-Tff)} &
%\ShortOption{\None} &
\Default{0} &
Indicates the order of the fields packed into the input frame. When 1, the top field is temporally first.
\\
\Option{ClipInputVideoToRec709Range} &
%\ShortOption{\None} &
\Default{0} &
If 1 then clip input video to the Rec. 709 Range on loading when InternalBitDepth is less than MSBExtendedBitDepth.
\\
\Option{ClipOutputVideoToRec709Range} &
%\ShortOption{\None} &
\Default{0} &
If 1 then clip output video to the Rec. 709 Range on saving when OutputBitDepth is less than InternalBitDepth.
\\
\Option{EfficientFieldIRAPEnabled} &
%\ShortOption{\None} &
\Default{1} &
Enable to code fields in a specific, potentially more efficient, order.
\\
\Option{HarmonizeGopFirstFieldCoupleEnabled} &
%\ShortOption{\None} &
\Default{1} &
Enables harmonization of Gop first field couple.
\\
\Option{AccessUnitDelimiter} &
%\ShortOption{\None} &
Add Access Unit Delimiter NAL units between all Access Units.
\\
\Option{EnablePictureHeaderInSliceHeader} &
%\ShortOption{\None} &
\Default{1} &
Enable Picture Header to be signalled in Slice Header when encoding with single slice per picture.
\\
Zhipin Deng
committed
\Option{RPR} &
%\ShortOption{\None} &
\Default{true} &
Specifies the value of sps_ref_pic_resampling_enabled_flag.
\\
\Option{ScalingRatioHor} &
%\ShortOption{\None} &
\Default{1.0} &
Kenneth Andersson
committed
Scaling ratio in horizontal direction for reference picture resampling. When GOPBasedRPR is true unless ratio is defined the ratio will be set to 2.0.
\\
\Option{ScalingRatioVer} &
%\ShortOption{\None} &
\Default{1.0} &
Kenneth Andersson
committed
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
Scaling ratio in vertical direction for reference picture resampling. When GOPBasedRPR is true unless ratio is defined the ratio will be set to 2.0.
\\
\Option{GOPBasedRPR} &
%\ShortOption{\None} &
\Default{false} &
Enables decision to encode pictures in GOP in full resolution or one of three downscaled resolutions (default is $1/2$, $2/3$ and $4/5$ in both dimensions).
First picture in GOP is rescaled to half resolution and then upscaled to full resolution. The luma PSNR of the rescaled picture compared to the source picture is compared with
PSNR thresholds for respective resolution: $(PsnrThresholdRPR - (QP - 37) * 0.5) < upscaledPSNR$.
The smallest resolution that has PSNR above the threshold is selected.
\\
\Option{GOPBasedRPRQPTh} &
%\ShortOption{\None} &
\Default{32} &
QP threshold parameter that determines which QP GOP-based RPR is invoked for given by $QP >= GOPBasedRPRQPTh$.
\\
\Option{ScalingRatioHor2} &
%\ShortOption{\None} &
\Default{1.5} &
Scaling ratio in hor direction for GOP based RPR ($2/3$).
\\
\Option{ScalingRatioVer2} &
%\ShortOption{\None} &
\Default{1.5} &
Scaling ratio in ver direction for GOP based RPR ($2/3$).
\\
\Option{ScalingRatioHor3} &
%\ShortOption{\None} &
\Default{1.25} &
Scaling ratio in hor direction for GOP based RPR ($4/5$).
\\
\Option{ScalingRatioVer3} &
%\ShortOption{\None} &
\Default{1.25} &
Scaling ratio in ver direction for GOP based RPR ($4/5$).
\\
\Option{PsnrThresholdRPR} &
%\ShortOption{\None} &
\Default{47.0} &
PSNR threshold for GOP based RPR for the case of ScalingRatioVer and ScalingRatioHor ($1/2$).
\\
\Option{PsnrThresholdRPR2} &
%\ShortOption{\None} &
\Default{44.0} &
PSNR threshold for GOP based RPR for the case of ScalingRatioVer2 and ScalingRatioHor2 ($2/3$).
\\
\Option{PsnrThresholdRPR3} &
%\ShortOption{\None} &
\Default{41.0} &
PSNR threshold for GOP based RPR for the case of ScalingRatioVer3 and ScalingRatioHor3 ($4/5$).
\\
\Option{QpOffsetRPR} &
%\ShortOption{\None} &
\Default{-6} &
QP offset for luma when encoding in reduced resolution with GOP based RPR ($1/2$).
\\
\Option{QpOffsetRPR2} &
%\ShortOption{\None} &
\Default{-4} &
QP offset for luma when encoding in reduced resolution with GOP based RPR ($2/3$).
\\
\Option{QpOffsetRPR3} &
%\ShortOption{\None} &
\Default{-2} &
QP offset for luma when encoding in reduced resolution with GOP based RPR ($4/5$).
\\
\Option{QpOffsetChromaRPR} &
%\ShortOption{\None} &
\Default{-6} &
QP offset for chroma when encoding in reduced resolution with GOP based RPR ($1/2$).
\\
\Option{QpOffsetChromaRPR2} &
%\ShortOption{\None} &
\Default{-4} &
QP offset for chroma when encoding in reduced resolution with GOP based RPR ($2/3$).
\\
\Option{QpOffsetChromaRPR3} &
%\ShortOption{\None} &
\Default{-2} &
QP offset for chroma when encoding in reduced resolution with GOP based RPR ($4/5$).
\\
\Option{FractionNumFrames} &
%\ShortOption{\None} &
\Default{1.0} &
Encode a fraction of the specified in FramesToBeEncoded frames.
\\
\Option{SwitchPocPeriod} &
%\ShortOption{\None} &
\Default{0} &
POC period at which resolution is changed.
\\
\Option{UpscaledOutput} &
%\ShortOption{\None} &
\Default{0} &
Kenneth Andersson
committed
Picture output options: output upscaled (2), decoded but in full resolution buffer (1) or decoded cropped (0, default) picture for reference picture resampling. When GOPBasedRPR is true it will be set to 2.
\Option{UpscaleFilterForDisplay} &
%\ShortOption{\None} &
\Default{1} &
Filters used for upscaling reconstruction to full resolution (2: ECM 12-tap luma and 6-tap chroma MC filters, 1: Alternative 12-tap luma and 6-tap chroma filters, 0: VVC 8-tap luma and 4-tap chroma MC filters).
\\
Rickard Sjöberg
committed
%%
%% GOP based temporal filter parameters
%%
\begin{OptionTableNoShorthand}{GOP based temporal filter parameters}{tab:gop-based-temporal-filter}
Rickard Sjöberg
committed
Rickard Sjöberg
committed
%\ShortOption{\None} &
Enable motion-compensated temporal pre-filter. When enabled, at least one of TemporalFilterPastRefs and TemporalFilterFutureRefs
must be larger than 0.
\\
\Option{TemporalFilterPastRefs} &
%\ShortOption{\None} &
\Default{4} &
Number of past frames used by the temporal filter.
Rickard Sjöberg
committed
\\
\Option{TemporalFilterFutureRefs} &
Rickard Sjöberg
committed
%\ShortOption{\None} &
\Default{4} &
Number of future frames used by the temporal filter. This may be set to 0 to avoid using future frames.
\\
\Option{FirstValidFrame} &
%\ShortOption{\None} &
\Default{0} &
Index of first frame in video sequence that may be used by the temporal filter. If a negative value is given, the index defaults to the value
of FrameSkip.
\\
\Option{LastValidFrame} &
%\ShortOption{\None} &
\Default{MAX_INT} &
Index of last frame in video sequence that may be used by the temporal filter. If a negative value is given, the index defaults to the value
of FrameSkip + FramesToBeEncoded - 1.
Rickard Sjöberg
committed
\\
\Option{TemporalFilterStrengthFrame*} &
%\ShortOption{\None} &
\Default{} &
Strength for every * frame in GOP based temporal filter, where * is an integer. E.g. --TemporalFilterStrengthFrame8 0.95 will
enable GOP based temporal filter at every 8th frame with strength 0.95. Longer intervals overrides shorter when there are
multiple matches.
\\
\Option{AlfTrueOrg} &
%\ShortOption{\None} &
\Default{true} &
When GOP based temporal filter is enabled, enable or disable using true original samples for ALF optimization .
\\
\Option{SaoTrueOrg} &
Nan Hu
committed
%\ShortOption{\None} &
\Default{false} &
When GOP based temporal filter is enabled, enable or disable using true original samples for SAO optimization .
Nan Hu
committed
\\
Rickard Sjöberg
committed
\end{OptionTableNoShorthand}
%%
%% profile, level and conformance options
%%
\begin{OptionTableNoShorthand}{Profile and level parameters}{tab:profile}
\Option{Profile} &
%\ShortOption{\None} &
\Default{none} &
Specifies the profile to which the encoded bitstream complies.
Valid VVC Ver. 1 values are: none, main_10, main_10_still_picture, main_10_444, main_10_444_still_picture,
multilayer_main_10, multilayer_main_10_still_picture, multilayer_main_10_444, multilayer_main_10_444_still_picture.
When one of the still picture profiles are selected, the OnePictureOnlyConstraintFlag setting will be forced to 1.
\\
\Option{Level} &
%\ShortOption{\None} &
\Default{none} &
Specifies the level to which the encoded bitstream complies.
Valid values are: none, 1, 2, 2.1, 3, 3.1, 4, 4.1, 5, 5.1, 5.2, 6, 6.1, 6.2, 15.5
NB: There is currently only limited validation that the encoder configuration complies with the profile, level and tier constraints.
\\
\Option{Tier} &
%\ShortOption{\None} &
\Default{main} &
Specifies the level tier to which the encoded bitsream complies.
Valid values are: main, high.
NB: There is currently only limited validation that the encoder configuration complies with the profile, level and tier constraints.
\\
\Option{FrameOnlyConstraintFlag} &
%\ShortOption{\None} &
\Default{1} &
Specifies the value of ptl_frame_only_constraint_flag .
\\
\Option{MultiLayerEnabledFlag} &
%\ShortOption{\None} &
\Default{0} &
Specifies the value of ptl_multilayer_enabled_flag.
\\
\Option{SubProfile} &
%\ShortOption{\None} &
\Default{0} &
Indicates interoperability metadata registered as specified by X Recommendation ITU-T T.35.
\\
\Option{EnableDecodingCapabilityInformation} &
Enables writing of a decoding capability information (DCI). If disabled, no DCI will be written.
\\
\Option{MaxBitDepthConstraint} &
%\ShortOption{\None} &
\Default{0} &
For --profile=main-RExt, specifies the value to use to derive the general_max_bit_depth constraint flags for RExt profiles; when 0, use InternalBitDepth.
\\
\Option{MaxChromaFormatConstraint} &
%\ShortOption{\None} &
\Default{0} &
For --profile=main-RExt, specifies the chroma-format to use for the general profile constraints for RExt profiles; when 0, use the value of ChromaFormatIDC.
\\
\Option{GciPresentFlag} &
%\ShortOption{\None} &
\Default{1} &
Specifies the value of gci_present_flag
\\
\Option{IntraOnlyConstraintFlag} &
Specifies the value of gci_intra_only_constraint_flag
\\
\Option{AllLayersIndependentConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of all_layers_independent_constraint_flag
\\
\Option{OnePictureOnlyConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of general_one_picture_only_constraint_flag
\Option{MaxBitDepthConstraintIdc} &
\Default{16} &
Specifies the value of 16 minus gci_sixteen_minus_max_bitdepth_constraint_idc
\Option{MaxChromaFormatConstraintIdc} &
%\ShortOption{\None} &
\Default{3} &
Specifies the value of 3 minus gci_three_minus_max_chroma_format_constraint_idc
\\
Zhipin Deng
committed
\Option{NoTrailConstraintFlag} &
Specifies the value of gci_no_trail_constraint_flag
Zhipin Deng
committed
\Option{NoStsaConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_stsa_constraint_flag
Zhipin Deng
committed
\Option{NoRaslConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_rasl_constraint_flag
\\
Zhipin Deng
committed
\Option{NoRadlConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_radl_constraint_flag
\\
Zhipin Deng
committed
\Option{NoIdrConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_idr_constraint_flag
\\
Zhipin Deng
committed
\Option{NoCraConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_cra_constraint_flag
\\
\Option{GdrConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_gdr_constraint_flag
\\
Zhipin Deng
committed
\Option{NoApsConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_aps_constraint_flag
\Option{NoIdrRplConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_idr_rpl_constraint_flag
\\
\Option{OneTilePerPicConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of one_tile_per_pic_constraint_flag
\\
\Option{PicHeaderInSliceHeaderConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of pic_header_in_slice_header_constraint_flag
\\
\Option{OneSlicePerPicConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of one_slice_per_pic_constraint_flag
\\
\Option{NoRectSliceConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_rectangular_slice_constraint_flag
\\
Specifies the value of gci_one_slice_per_subpic_constraint_flag
\\
\Option{NoSubpicInfoConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_subpic_info_constraint_flag
\Option{MaxLog2CtuSizeConstraintIdc} &
%\ShortOption{\None} &
\Default{8} &
Specifies the value of gci_three_minus_max_log2_ctu_size_constraint_idc
\\
Zhipin Deng
committed
\Option{NoPartitionConstraintsOverrideConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_partition_constraints_override_constraint_flag
\\
\Option{NoMttConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_mtt_constraint_flag
\\
Zhipin Deng
committed
\Option{NoQtbttDualTreeIntraConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_qtbtt_dual_tree_intra_constraint_flag
\\
Zhipin Deng
committed
\Option{NoPaletteConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_palette_constraint_flag
\\
Zhipin Deng
committed
\Option{NoIbcConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_ibc_constraint_flag
\\
Zhipin Deng
committed
\Option{NoIspConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_isp_constraint_flag
\\
Zhipin Deng
committed
\Option{NoMrlConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_mrl_constraint_flag
\\
Zhipin Deng
committed
\Option{NoMipConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_mip_constraint_flag
\\
Zhipin Deng
committed
\Option{NoCclmConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_cclm_constraint_flag
\\
Zhipin Deng
committed
\Option{NoRprConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_ref_pic_resampling_constraint_flag
\\
\Option{NoResChangeInClvsConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_res_change_in_clvs_constraint_flag
\\
\Option{NoWeightedPredictionConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_weighted_prediction_constraint_flag
\\
Zhipin Deng
committed
\Option{NoRefWraparoundConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_ref_wraparound_constraint_flag
\\
Zhipin Deng
committed
\Option{NoTemporalMvpConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_temporal_mvp_constraint_flag
\\
Zhipin Deng
committed
\Option{NoSbtmvpConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_sbtmvp_constraint_flag
\\
Zhipin Deng
committed
\Option{NoAmvrConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_amvr_constraint_flag
\\
Zhipin Deng
committed
\Option{NoSmvdConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_smvd_constraint_flag
\\
Zhipin Deng
committed
\Option{NoBdofConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_bdof_constraint_flag
\\
Zhipin Deng
committed
\Option{NoDmvrConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_dmvr_constraint_flag
\\
Zhipin Deng
committed
\Option{NoMmvdConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_mmvd_constraint_flag
\\
Zhipin Deng
committed
\Option{NoAffineMotionConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_affine_motion_constraint_flag
\\
Zhipin Deng
committed
\Option{NoProfConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_prof_constraint_flag
\\
Zhipin Deng
committed
\Option{NoBcwConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_bcw_constraint_flag
\\
Zhipin Deng
committed
\Option{NoCiipConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_ciip_constraint_flag
\\
Zhipin Deng
committed
\Option{NoGpmConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_gpm_constraint_flag
\\
Zhipin Deng
committed
\Option{NoTransformSkipConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_transform_skip_constraint_flag
\\
Zhipin Deng
committed
\Option{NoLumaTransformSize64ConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_luma_transform_size_64_constraint_flag
\\
Zhipin Deng
committed
\Option{NoBDPCMConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_bdpcm_constraint_flag
\\
Zhipin Deng
committed
\Option{NoMtsConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_mts_constraint_flag
\\
Zhipin Deng
committed
\Option{NoLfnstConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_lfnst_constraint_flag
\\
Zhipin Deng
committed
\Option{NoJointCbCrConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_joint_cbcr_constraint_flag
\\
Zhipin Deng
committed
\Option{NoSbtConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_sbt_constraint_flag
\\
Zhipin Deng
committed
\Option{NoActConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_act_constraint_flag
\\
Zhipin Deng
committed
\Option{NoExplicitScaleListConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_explicit_scaling_list_constraint_flag
\\
\Option{NoChromaQpOffsetConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gic_no_chroma_qp_offset_constraint_flag
\\
Zhipin Deng
committed
\Option{NoDepQuantConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_dep_quant_constraint_flag
\\
Zhipin Deng
committed
\Option{NoSignDataHidingConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_sign_data_hiding_constraint_flag
\\
Martin Pettersson
committed
\Option{NoCuQpDeltaConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_cu_qp_delta_constraint_flag
\\
Zhipin Deng
committed
\Option{NoSaoConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_sao_constraint_flag
\\
Zhipin Deng
committed
\Option{NoAlfConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_alf_constraint_flag
\\
Zhipin Deng
committed
\Option{NoCCAlfConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_ccalf_constraint_flag
\\
Zhipin Deng
committed
\Option{NoLmcsConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_lmcs_constraint_flag
\\
Zhipin Deng
committed
\Option{NoLadfConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_ladf_constraint_flag
\\
Zhipin Deng
committed
\Option{NoVirtualBoundaryConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_virtual_boundaries_constraint_flag
\\
Adrian Browne
committed
\Option{AllRapPicturesFlag} &
%\ShortOption{\None} &
\Default{false} &
Indicate that all pictures in OlsInScope are IRAP pictures or GDR pictures with ph_recovery_poc_cnt equal to 0
\\
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
\Option{NoExtendedPrecisionProcessingConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_extended_precision_processing_constraint_flag
\\
\Option{NoTsResidualCodingRiceConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_ts_residual_coding_rice_constraint_flag
\\
\Option{NoRrcRiceExtensionConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_rrc_rice_extension_constraint_flag
\\
\Option{NoPersistentRiceAdaptationConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_persistent_rice_adaptation_constraint_flag
\\
\Option{NoReverseLastSigCoeffConstraintFlag} &
%\ShortOption{\None} &
\Default{false} &
Specifies the value of gci_no_reverse_last_sig_coeff_constraint_flag
\\
Adrian Browne
committed
\begin{OptionTableNoShorthand}{Layer parameters}{tab:layer}
\Option{MaxLayers} &
%\ShortOption{\None} &
\Default{1} &
Specifies the value to use to derive the vps_max_layers_minus1 for layered coding
\\
\Option{MaxSubLayers} &
%\ShortOption{\None} &

Karsten Suehring
committed
\Default{7} &
Specifies the maximum number of temporal sublayers to signal in the VPS
\\
\Option{DefaultPtlDpbHrdMaxTidFlag} &
%\ShortOption{\None} &
\Default{true} &
Specifies the value of vps_default_ptl_dpb_hrd_max_tid_flag in the VPS
\Option{EnableOperatingPointInformation} &
%\ShortOption{\None} &
\Default{false} &
Enables writing of a operating point information (OPI). If disabled, no OPI will
be written.
\\
\Option{TargetOutputLayerSet} &
%\ShortOption{\None} &
\Default{\NotSet} &
Specifies the target Output Layer Set Idx to be signalled in OPI. When not provided the value may be inferred from the VPS.
\\
\Option{MaxTemporalLayer} &
%\ShortOption{\None} &
\Default{\NotSet} &
Defines the maximum temporal layer to be signalled in OPI. When not provided the value may be inferred from the VPS.
\\
\Option{AllowablePredDirection} &
%\ShortOption{\None} &
\Default{""} &
Specifies a list of values of the allowable prediction directions for dependent layers. The number of entries is equal to the number of temporal layers.
\par
\begin{tabular}{cp{0.45\textwidth}}
0 & Both inter-layer and intra-layer preditions are allowed for the speficied temporal layer. \\
1 & Only inter-layer predition is allowed for the speficied temporal layer. \\
2 & Only intra-layer predition is allowed for the speficied temporal layer. \\
\end{tabular}
\\
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
\Option{LayerId\emph{i}} &
%\ShortOption{\None} &
\Default{0} &
Specifies the nuh_layer_id of the i-th layer (with i an integer greater than 0)
\\
\Option{NumRefLayers\emph{i}} &
%\ShortOption{\None} &
\Default{0} &
Specifies the number of direct reference layers of the i-th layer (with i an integer greater than 0)
\\
\Option{RefLayerIdx\emph{i}} &
%\ShortOption{\None} &
\Default{""} &
Specifies a list of indexes of the reference layers of the i-th layer (with i an integer greater than 0)
\\
\Option{EachLayerIsAnOlsFlag} &
%\ShortOption{\None} &
\Default{true} &
Specifies the value of each_layer_is_an_ols_flag in the VPS
\\
\Option{OlsModeIdc} &
%\ShortOption{\None} &
\Default{0} &
Specifies the value of ols_mode_idc in the VPS
\\
\Option{NumOutputLayerSets} &
%\ShortOption{\None} &
\Default{1} &
Specifies the number of output layer sets (OLS) signalled in the VPS
\\
\Option{OlsOutputLayer\emph{i}} &
%\ShortOption{\None} &
\Default{""} &
Specifies a list of indexes of the output layers of the i-th OLS (with i an integer greater than 0)
\\
\Option{NumPTLsInVPS} &
%\ShortOption{\None} &
\Default{1} &
Specifies the number of profile_tier_level (PTL) syntax structures signalled in the VPS
\\
\Option{LevelPTL\emph{i}} &
%\ShortOption{\None} &
\Default{Level::NONE} &
Specifies the level to signal in the i-th PTL of the VPS (with i an integer greater than 0)
\\
\Option{OlsPTLIdx\emph{i}} &
%\ShortOption{\None} &
\Default{0} &
Specifies the index of the PTL that applies to the i-th OLS (with i an integer greater than 0)
\\

Karsten Suehring
committed
\Option{SamePicTimingInAllOLS} &
%\ShortOption{\None} &
\Default{1} &
Indicates that all OLSs are using the same (not nested) picture timing SEI message, i.e. picture timing SEI will not
be included in scalable nesting SEI messages (if scalable nesting SEI is enabled).
\\

Karsten Suehring
committed
\Option{MaxTidILRefPicsPlusOneLayerId\emph{i}} &

Karsten Suehring
committed
%\ShortOption{\None} &
\Default{""} &
Specifies a list of the maximum temporal ID of the reference layers of the i-th layer plus 1 (with i an integer greater than 0). The value 0 allows only to use IRAP pictures for inter-layer prediction.

Karsten Suehring
committed
\\
\Option{AvoidIntraInDepLayer} &
%\ShortOption{\None} &
\Default{1} &
Replaces I slices in dependent layers with B slices, except for all-intra configuration (IntraPeriod=1).
\\
\Option{RPLofDepLayerInSH} &
%\ShortOption{\None} &
\Default{false} &
define Reference picture lists in slice header instead of SPS for dependant layers
\\
%%
%% Unit definition parameters
%%
\begin{OptionTableNoShorthand}{Unit definition parameters}{tab:unit}
\Option{CTUSize} &
%\ShortOption{\None} &
\Default{128} &
Defines the CTU size (width and height).
\Option{MaxCUWidth} &
%\ShortOption{\None} &
\Default{64} &
Defines the maximum CU width.
\\
\Option{MaxCUHeight} &
%\ShortOption{\None} &
\Default{64} &
Defines the maximum CU height.
\\
\Option{MaxCUSize (-s)} &
%\ShortOption{\None} &
\Default{64} &
Defines the maximum CU size.
\\
\Option{Log2MinCuSize} &
%\ShortOption{\None} &
\Default{2} &
Defines the minimum CU size in logarithm base 2.
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
\\
\Option{QuadtreeTULog2MaxSize} &
%\ShortOption{\None} &
\Default{6 \\ ($= \mathrm{log}_2(64)$)} &
Defines the Maximum TU size in logarithm base 2.
\\
\Option{QuadtreeTULog2MinSize} &
%\ShortOption{\None} &
\Default{2 \\ ($= \mathrm{log}_2(4)$)} &
Defines the Minimum TU size in logarithm base 2.
\\
\Option{QuadtreeTUMaxDepthIntra} &
%\ShortOption{\None} &
\Default{1} &
Defines the depth of the TU tree for intra CUs.
\\
\Option{QuadtreeTUMaxDepthInter} &
%\ShortOption{\None} &
\Default{2} &
Defines the depth of the TU tree for inter CUs.
\\
\Option{MaxMTTHierarchyDepth} &
%\ShortOption{\None} &
\Default{3} &
Defines the initial maximum depth of the multi-type tree for inter slices.
\\
\Option{MaxMTTHierarchyDepthI} &
%\ShortOption{\None} &
\Default{3} &
Defines the initial maximum depth of the multi-type tree for intra slices.
\\
\Option{MaxMTTHierarchyDepthISliceC} &
%\ShortOption{\None} &
\Default{3} &
Defines the initial maximum depth of the multi-type tree in dual tree for chroma components.
\\
\Option{MaxMTTHierarchyDepthISliceL} &
%\ShortOption{\None} &
\Default{3} &
Defines the initial maximum depth of the multi-type tree in dual tree for luma component.
Guichun
committed
\Option{MinQTChromaISliceInChromaSamples} &
Defines the initial minimum size of the quad tree in dual tree for chroma components.
Note: this size is defined in chroma sample unit in configuration, and it is converted
into luma sample unit according to the horizontal chroma subsampling ratio when applied
in the software. In chroma format 4:2:2 case, this value shall be set to the value of
the height of minimum chroma QT node in chroma samples.
\\
\Option{MinQTISlice} &
%\ShortOption{\None} &
\Default{8} &
Defines the initial minimum size of the quad tree for intra slices.
\\
\Option{MinQTLumaISlice} &
%\ShortOption{\None} &
\Default{8} &
Defines the initial minimum size of the quad tree in dual tree for luma component.
\\
\Option{MinQTNonISlice} &
%\ShortOption{\None} &
\Default{8} &
Defines the initial minimum size of the quad tree for inter slices.
Jie Chen
committed
\Option{MaxBTLumaISlice} &
%\ShortOption{\None} &
\Default{32} &
Defines the initial maximum size of the binary tree in dual tree for luma component.
Jie Chen
committed
\\
\Option{MaxBTChromaISlice} &
%\ShortOption{\None} &
\Default{64} &
Defines the initial maximum size of the binary tree in dual tree for chroma components.
Jie Chen
committed
\\
\Option{MaxBTNonISlice} &
%\ShortOption{\None} &
\Default{128} &
Defines the initial maximum size of the binary tree for inter slices.
Jie Chen
committed
\\
\Option{MaxTTLumaISlice} &
%\ShortOption{\None} &
\Default{32} &
Defines the initial maximum size of the tenary tree in dual tree for luma component.
Jie Chen
committed
\\
\Option{MaxTTChromaISlice} &
%\ShortOption{\None} &
\Default{32} &
Defines the initial maximum size of the tenary tree in dual tree for chroma components.
Jie Chen
committed
\\
\Option{MaxTTNonISlice} &
%\ShortOption{\None} &
\Default{64} &
Defines the initial maximum size of the tenary tree for inter slices.
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
\end{OptionTableNoShorthand}
%%
%% Coding structure parameters
%%
\begin{OptionTableNoShorthand}{Coding structure parameters}{tab:coding-structure}
\Option{IntraPeriod (-ip)} &
%\ShortOption{-ip} &
\Default{$-1$} &
Specifies the intra frame period.
A value of $-1$ implies an infinite period.
\\
\Option{DecodingRefreshType (-dr)} &
%\ShortOption{-dr} &
\Default{0} &
Specifies the type of decoding refresh to apply at the intra frame period
picture.
\par
\begin{tabular}{cp{0.45\textwidth}}
0 & Applies an I picture (not a intra random access point). \\
1 & Applies a CRA intra random access point (open GOP). \\
2 & Applies an IDR intra random access point (closed GOP). \\
3 & Use recovery point SEI messages to indicate random access. \\
\end{tabular}
\\
\Option{DRAPPeriod} &
%\ShortOption{\None} &
\Default{0} &
Specifies the DRAP period in frames.
Dependent RAP indication SEI messages are disabled if DRAPPeriod is 0.
\\
\Option{EDRAPPeriod} &
%\ShortOption{\None} &
\Default{0} &
Specifies the EDRAP period in frames.
Extended DRAP indication SEI messages are disabled if EDRAPPeriod is 0.
\\
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
\Option{GOPSize (-g)} &
%\ShortOption{-g} &
\Default{1} &
Specifies the size of the cyclic GOP structure.
\\
\Option{Frame\emph{N}} &
%\ShortOption{\None} &
\Default{\NotSet} &
Multiple options that define the cyclic GOP structure that will be used
repeatedly throughout the sequence. The table should contain GOPSize
elements.
\par
See section~\ref{sec:gop-structure} for further details.
\\
\Option{ReWriteParamSets} &
%\ShortOption{-ip} &
\Default{$0$} &
Enable writing of parameter sets (SPS, PPS, etc.) before every (intra) random access point to enable true random access.
\\
\end{OptionTableNoShorthand}
%%
%% Motion estimation parameters
%%
\begin{OptionTableNoShorthand}{Motion estimation parameters}{tab:motion-estimation}
\Option{FastSearch} &
%\ShortOption{\None} &
\Default{1} &
Enables or disables the use of a fast motion search.
\par
\begin{tabular}{cp{0.45\textwidth}}
0 & Full search method \\
1 & Fast search method - TZSearch\\
2 & Predictive motion vector fast search method \\
3 & Extended TZSearch method \\
\end{tabular}
\\
\Option{SearchRange (-sr)} &
%\ShortOption{-sr} &
\Default{96} &
Specifies the search range used for motion estimation.
Note: the search range is defined around a predictor. Motion vectors
derived by the motion estimation may thus have values larger than the
search range.
\\
\Option{BipredSearchRange} &
%\ShortOption{\None} &
\Default{4} &
Specifies the search range used for bi-prediction refinement in motion
estimation.
\\
\Option{ClipForBiPredMEEnabled} &
%\ShortOption{\None} &
\Default{0} &
Enables clipping in the Bi-Pred ME, which prevents values over- or under-flowing. It is usually disabled to reduce encoder run-time.
\\
\Option{FastMEAssumingSmootherMVEnabled} &
%\ShortOption{\None} &
\Default{0} &
Enables fast ME assuming a smoother MV.
\\
\Option{HadamardME} &
%\ShortOption{\None} &
\Default{true} &
Enables or disables the use of the Hadamard transform in fractional-pel motion
estimation.
\par
\begin{tabular}{cp{0.45\textwidth}}
0 & SAD for cost estimation \\
1 & Hadamard for cost estimation \\
\end{tabular}
\\
\Option{ASR} &
%\ShortOption{\None} &
\Default{false} &
Enables or disables the use of adaptive search ranges, where the motion
search range is dynamically adjusted according to the POC difference
between the current and the reference pictures.
\begin{displaymath}
\resizebox{\hsize}{!}{$
\mathrm{SearchRange}’ = \mathrm{Round}\left(
\mathrm{SearchRange}
* \mathrm{ADAPT\_SR\_SCALE}
* \frac{\mathrm{abs}(
\mathrm{POCcur} - \mathrm{POCref} )}{
\mathrm{RateGOPSize}}\right)
$}
\end{displaymath}
\\
\Option{MaxNumMergeCand} &
%\ShortOption{\None} &
\Default{5} &
Specifies the maximum number of merge candidates to use.
\\
\Option{MaxNumGeoCand} &
Specifies the maximum number of geometric partitioning mode candidates to use.
\\
\Option{MaxNumIBCMergeCand} &
%\ShortOption{\None} &
\Default{6} &
Specifies the maximum number of IBC merge candidates to use.
\\
\Option{DisableIntraInInter} &
%\ShortOption{\None} &
\Default{0} &
Flag to disable intra PUs in inter slices.
\\
\Option{MMVD} &
%\ShortOption{\None} &
\Default{1} &
Enables or disables the merge mode with motion vector difference (MMVD).
\\
\Option{MmvdDisNum} &
%\ShortOption{\None} &
\Default{6} &
Specifies the number of MMVD distance entries used from the distance table at encoder.
\\
\Option{CIIP} &
%\ShortOption{\None} &
\Default{1} &
Enables or disables the merge mode with combined inter merge and intra prediction (CIIP).
\\
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
\end{OptionTableNoShorthand}
%%
%% Mode decision parameters
%%
\begin{OptionTableNoShorthand}{Mode decision parameters}{tab:mode-decision}
\Option{LambdaModifier$N$ (-LM$N$)} &
%\ShortOption{-LM$N$} &
\Default{1.0} &
Specifies a value that is multiplied with the Lagrange multiplier
$\lambda$, for use in the rate-distortion optimised cost calculation
when encoding temporal layer~$N$.
If LambdaModifierI is specified, then LambdaModifierI will be used for intra pictures.
\par
$N$ may be in the range 0 (inclusive) to 7 (exclusive).
\\
\Option{LambdaModifierI (-LMI)} &
%\ShortOption{-LMI} &
\Default{} &
Specifies one or more of the LambdaModifiers to use intra pictures at each of the temporal layers.
If not present, then the LambdaModifier$N$ settings are used instead. If the list of values
(comma or space separated) does not include enough values for each of the temporal layers,
the last value is repeated as required.
\\
\Option{IQPFactor (-IQF)} &
%\ShortOption{-IQF} &
\Default{-1} &
Specifies the QP factor to be used for intra pictures during the lambda computation.
(The values specified in the GOP structure are only used for inter pictures).
If negative (default), the following equation is used to derive the value:
\par
$IQP_{factor}=0.57*(1.0-Max(0.5, Min(0.0, 0.05*s)))$
\par
where $s = Int(isField ? (GS-1)/2 : GS-1)$ and
$GS$ is the gop size.
\\
\Option{ECU} &
%\ShortOption{\None} &
\Default{false} &
Enables or disables the use of early CU determination. When enabled, skipped CUs will not be split further.
\\
\Option{ESD} &
%\ShortOption{\None} &
\Default{false} &
Enables or disables the use of early skip detection. When enabled, the skip mode will be tested before any other.
\\
\Option{FEN} &
%\ShortOption{\None} &
\Default{0} &
Controls the use of different fast encoder coding tools. The following
tools are supported in different combinations:
\par
\begin{tabular}{cp{0.45\textwidth}}
a & In the SAD computation for blocks having size larger than 8, only
the lines of even rows in the block are considered. \\
b & The number of iterations used in the bi-directional motion vector
refinement in the motion estimation process is reduced from 4 to 1. \\
\end{tabular}
Depending on the value of the parameter, the following combinations are
supported:
\par
\begin{tabular}{cp{0.45\textwidth}}
0 & Disable all modes \\
1 & Use both a \& b tools\\
2 & Use only tool b \\
3 & Use only tool a \\
\end{tabular}
\\
\Option{FDM} &
%\ShortOption{\None} &
\Default{true} &
Enables or disables the use of fast encoder decisions for 2Nx2N merge
mode. When enabled, the RD cost for the merge mode of the current
candidate is not evaluated if the merge skip mode was the best merge
mode for one of the previous candidates.
\\
Mohammed Golam Sarwer
committed
%\ShortOption{\None} &
\Default{1920} &
Picture width threshold for testing size-64 SBT in RDO (now for HD and above sequences).
Mohammed Golam Sarwer
committed
\\
\Option{RDpenalty} &
%\ShortOption{\None} &
\Default{0} &
RD-penalty for 32x32 TU for intra in non-intra slices.
Enabling this parameter can reduce the visibility of CU boundaries in the coded picture.
\par
\begin{tabular}{cp{0.45\textwidth}}
0 & No RD-penalty \\
1 & RD-penalty \\
2 & Maximum RD-penalty (no 32x32 TU)\\
\end{tabular}
\\
\Option{FastLocalDualTreeMode} &
%\ShortOption{\None} &
\Default{0} &
Controls intra coding speedup introducted with local dual tree mode.
\par
\begin{tabular}{cp{0.45\textwidth}}
0 & Disabled\\
1 & Stop testing intra modes in inter slices, if best cost is more that 1.5 times inter cost.\\
2 & Test only one intra mode in inter slices\\
\end{tabular}
\\
\Option{SplitPredictAdaptMode} &
%\ShortOption{\None} &
\Default{0} &
Control mode for split cost prediction, 0..2 (Default: 0)
\par
\begin{tabular}{cp{0.45\textwidth}}
0 & QP based cost prediction.\\
1 & QP and component type (luma/chroma) based cost prediction.\\
2 & Cost prediction based on QP, component type and split type.\\
\end{tabular}
\\
\Option{DisableFastTTfromBT} &
%\ShortOption{\None} &
\Default{false} &
Disable fast decision for TT from BT.
Lien-Fei Chen
committed
\Option{TTFastSkip} &
%\ShortOption{\None} &
\Default{31} &
TT speedup option. Combination is allowed by bitwise OR.
\par
Loading
Loading full blame...