source: 3DVCSoftware/branches/HTM-16.1-dev/doc/software-manual.tex @ 1400

Last change on this file since 1400 was 1400, checked in by tech, 9 years ago

Exchange copy right dates.

File size: 94.8 KB
Line 
1\documentclass[a4paper,11pt]{jctvcdoc}
2
3\usepackage{geometry}[2010/02/12]
4
5\usepackage{hyperref}
6\hypersetup{colorlinks=true,
7            linkcolor=black,      % color of internal links (change box color with linkbordercolor)
8            citecolor=black,      % color of links to bibliography
9            filecolor=black,      % color of file links
10            urlcolor=blue}
11\usepackage{color,soul}
12
13\usepackage[position=bottom]{subfig}
14\captionsetup[subfloat]{position=top}
15\usepackage{multirow}
16\usepackage{dcolumn}
17\newcolumntype{.}{D{.}{.}{-1}}
18\usepackage{colortbl}
19\usepackage{makecell}
20\usepackage{longtable}
21\usepackage{array}
22\usepackage{algorithm2e}
23
24\usepackage[strings]{underscore}
25\usepackage{csquotes}
26\MakeOuterQuote{"}
27\EnableQuotes
28
29\newcommand\None{}
30\newcommand\NotSet{}
31\makeatletter
32\newcommand{\Option}[1]{\ifx\optOption\@empty\gdef\optOption{#1}\else\g@addto@macro\optOption{ \\ #1}\fi}
33\newcommand{\ShortOption}[1]{\ifx\optShortOption\@empty\gdef\optShortOption{#1}\else\g@addto@macro\optShortOption{ \\ #1}\fi}
34\newcommand{\Default}[1]{\ifx\optDefault\@empty\gdef\optDefault{#1}\else\g@addto@macro\optDefault{ \\ #1}\fi}
35\newcommand{\clearOptions}{\gdef\optOption{}\gdef\optShortOption{}\gdef\optDefault{}}
36\makeatother
37\newenvironment{OptionTable}[1]{%
38        \footnotesize
39        \def\arraystretch{1.8}
40        \clearOptions
41        \begin{longtable}{l<{\makecell[tl]{\optOption}}%
42                          >{\texttt\bgroup}l<{\makecell[tl]{\optShortOption}\egroup}%
43                          c<{\makecell[tc]{\optDefault}}%
44                          >{\def\arraystretch{1.0}}p{0.5\textwidth}<{\clearOptions}}
45        \caption{#1} \\
46        \hspace*{12em}&&\hspace*{8em}&\kill
47        \hline
48         \thead{Option} &
49         \egroup\thead{Shorthand}\bgroup &
50         \thead{Default} &
51         \thead{Description} \\
52        \hline
53        \endfirsthead
54        \caption[]{#1 (Continued)} \\
55        \hspace*{12em}&&\hspace*{8em}&\kill
56        \hline
57         \thead{Option} &
58         \egroup\thead{Shorthand}\bgroup &
59         \thead{Default} &
60         \thead{Description} \\
61        \hline
62        \endhead
63         \multicolumn{4}{r}{Continued...}\\
64         \hline
65        \endfoot
66         \hline
67        \endlastfoot
68}{%
69        \hline
70        \end{longtable}
71}
72
73\newenvironment{OptionTableNoShorthand}[2]{%
74        \footnotesize
75        \def\arraystretch{1.8}
76        \clearOptions
77        \begin{longtable}{l<{\makecell[tl]{\optOption}}%
78                          c<{\makecell[tc]{\optDefault}}%
79                          >{\def\arraystretch{1.0}}p{0.5\textwidth}<{\clearOptions}}
80        \caption{#1} \label{#2} \\
81        \hspace*{12em}&\hspace*{8em}&\kill
82        \hline
83         \thead{Option} &
84         \thead{Default} &
85         \thead{Description} \\
86        \hline
87        \endfirsthead
88        \caption[]{#1 (Continued)} \\
89        \hspace*{12em}&\hspace*{8em}&\kill
90        \hline
91         \thead{Option} &
92         \thead{Default} &
93         \thead{Description} \\
94        \hline
95        \endhead
96         \multicolumn{3}{r}{Continued...}\\
97         \hline
98        \endfoot
99         \hline
100        \endlastfoot
101}{%
102        \hline
103        \end{longtable}
104}
105
106\newenvironment{SEIListTable}[1]{%
107        \footnotesize
108        \def\arraystretch{1.8}
109        \clearOptions
110        \begin{longtable}{c<{\makecell[tl]{\optOption}}%
111                          l<{\makecell[tc]{\optDefault}}%
112                          >{\def\arraystretch{1.0}}p{0.3\textwidth}<{\clearOptions}}
113        \caption{#1} \\
114        \hspace*{12em}&\hspace*{8em}&\kill
115        \hline
116         \thead{SEI Number} &
117         \thead{SEI Name} &
118         \thead{Table number of encoder controls, if available} \\
119        \hline
120        \endfirsthead
121        \caption[]{#1 (Continued)} \\
122        \hspace*{12em}&\hspace*{8em}&\kill
123        \hline
124         \thead{SEI Number} &
125         \thead{SEI Name} &
126         \thead{Table number of encoder controls, if available} \\
127        \hline
128        \endhead
129         \multicolumn{3}{r}{Continued...}\\
130         \hline
131        \endfoot
132         \hline
133        \endlastfoot
134}{%
135        \hline
136        \end{longtable}
137}
138
139\newenvironment{MacroTable}[1]{%
140        \footnotesize
141        \def\arraystretch{1.3}
142        \clearOptions
143        \begin{longtable}{lcp{0.5\textwidth}}
144         \caption{#1} \\
145        %\hspace*{12em}&&\hspace*{8em}&\kill
146         \hline
147          \thead{Option} &
148          \thead{Default} &
149          \thead{Description} \\
150         \hline
151        \endfirsthead
152         \caption[]{#1 (Continued)} \\
153         \hline
154          \thead{Option} &
155          \thead{Default} &
156          \thead{Description} \\
157         \hline
158        \endhead
159         \multicolumn{3}{r}{Continued...}\\
160         \hline
161        \endfoot
162         \hline
163        \endlastfoot
164}{%
165        \end{longtable}
166}
167
168\title{HM Software Manual}
169\author{%
170        Frank Bossen
171        \email{frank@bossentech.com}
172        \and
173        David Flynn
174        \email{dflynn@blackberry.com}
175        \and
176  Karl Sharman
177        \email{karl.sharman@eu.sony.com}
178        \and
179        Karsten S\"uhring
180        \email{karsten.suehring@hhi.fraunhofer.de}
181}
182
183\jctvcmeeting{}
184\jctvcdocnum{Software Manual}
185\jctvcdocstatus{Software AHG working document}
186\jctvcdocpurpose{Information}
187\jctvcdocsource{AHG chairs}
188
189\begin{document}
190\maketitle
191\begin{abstract}
192This document is a user manual describing usage of reference software
193for the HEVC project. It applies to version 16.9
194of the software.
195\end{abstract}
196
197\tableofcontents
198\listoftables
199
200
201
202\section{General Information}
203Reference software is being made available to provide a reference
204implementation of the HEVC standard being developed by the Joint
205Collaborative Team on Video Coding (JCT-VC) regrouping experts from
206ITU-T SG 16 and ISO/IEC SC29 WG11. One of the main goals of the
207reference software is to provide a basis upon which to conduct
208experiments in order to determine which coding tools provide desired
209coding performance. It is not meant to be a particularly efficient
210implementation of anything, and one may notice its apparent
211unsuitability for a particular use. It should not be construed to be a
212reflection of how complex a production-quality implementation of a
213future HEVC standard would be.
214
215This document aims to provide guidance on the usage of the reference
216software. It is widely suspected to be incomplete and suggestions for
217improvements are welcome. Such suggestions and general inquiries may be
218sent to the general JCT-VC email reflector on
219\url{jct-vc@lists.rwth-aachen.de} (registration required).
220
221\subsection*{Bug reporting}
222Bugs should be reported on the issue tracker set up at
223\url{http://hevc.kw.bbc.co.uk/trac/}
224
225\section{Installation and compilation}
226The software may be retrieved from one of the following SVN servers
227(mirrored):
228\begin{itemize}
229\item \url{https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/}
230\item \url{svn://hevc.kw.bbc.co.uk/svn/jctvc-hm/}
231\end{itemize}
232
233Table~\ref{tab:project-files} enumerates various project files that are
234provided for development environments.
235
236\begin{table}[ht]
237\footnotesize
238\caption{Available project files}
239\label{tab:project-files}
240\centering
241\begin{tabular}{ll}
242\hline
243 \thead{Environment} &
244 \thead{Location of project file} \\
245% Environment          & Location of project file \\
246\hline
247MS Visual Studio 2008 (VC9)   & build/HM_vc9.sln \\
248MS Visual Studio 2010 (VC10)  & build/HM_vc2010.sln \\
249MS Visual Studio 2012 (VC11)  & build/HM_vc2012.sln \\
250MS Visual Studio 2013 (VC12)  & build/HM_vc2013.sln \\
251Xcode                         & HM.xcodeproj \\
252Eclipse                       & .project .cproject \\
253make/gcc (e.g. Linux)         & build/linux/makefile \\
254\hline
255\end{tabular}
256\end{table}
257
258For encoding large picture sizes (like UHDTV) it is strongly advised to build 64-bit
259binaries and to use a 64-bit OS. This will allow the software to use more than 2GB of RAM.
260
261%%%%
262%%%%
263%%%%
264\section{Using the encoder}
265\begin{verbatim}
266TAppEncoder     [--help] [-c config.cfg] [--parameter=value]
267\end{verbatim}
268
269\begin{table}[ht]
270\footnotesize
271\centering
272\begin{tabular}{lp{0.5\textwidth}}
273\hline
274 \thead{Option} &
275 \thead{Description} \\
276\hline
277\texttt{--help} & Prints parameter usage. \\
278\texttt{-c} & Defines configuration file to use.  Multiple configuration files
279     may be used with repeated --c options. \\
280\texttt{--}\emph{parameter}\texttt{=}\emph{value}
281    & Assigns value to a given parameter as further described below.
282      Some parameters are also supported by shorthand
283      "--\em{opt}~\emph{value}". These are shown in brackets after the parameter
284      name in the tables of this document\\
285\hline
286\end{tabular}
287\end{table}
288
289Sample configuration files are provided in the cfg/ folder.
290Parameters are defined by the last value encountered on the command line.
291Therefore if a setting is set via a configuration file, and then a subsequent
292command line parameter changes that same setting, the command line parameter
293value will be used.
294
295\subsection{GOP structure table}
296\label{sec:gop-structure}
297Defines the cyclic GOP structure that will be used repeatedly
298throughout the sequence. The table should contain GOPSize lines,
299named Frame1, Frame2, etc. The frames are listed in decoding
300order, so Frame1 is the first frame in decoding order, Frame2 is
301the second and so on. Among other things, the table specifies all
302reference pictures kept by the decoder for each frame. This
303includes pictures that are used for reference for the current
304picture as well as pictures that will be used for reference in
305the future. The encoder will not automatically calculate which
306pictures have to be kept for future references, they must
307be specified. Note that some specified reference frames for
308pictures encoded in the very first GOP after an IDR frame might
309not be available. This is handled automatically by the encoder,
310so the reference pictures can be given in the GOP structure table
311as if there were infinitely many identical GOPs before the
312current one. Each line in the table contains the parameters used
313for the corresponding frame, separated by whitespace:
314
315\begin{itemize}
316\item[]\textbf{Type}: Slice type, can be either I, P or B.
317
318\item[]\textbf{POC}: Display order of the frame within a GOP, ranging
319from 1 to GOPSize.
320
321\item[]\textbf{QPOffset}: QP offset is added to the QP parameter to set
322the final QP value to use for this frame.
323
324\item[]\textbf{SliceCbQPOffset}: The slice-level Cb QP offset.
325
326\item[]\textbf{SliceCrQPOffset}: The slice-level Cr QP offset.
327
328\item[]\textbf{QPFactor}: Weight used during rate distortion
329optimization. Higher values mean lower quality and less bits. Typical
330range is between
3310.3 and 1.
332
333\item[]\textbf{tcOffsetDiv2}: In-loop deblocking filter parameter tcOffsetDiv2
334is added to the base parameter LoopFilterTcOffset_div2 to set the final tc_offset_div2
335parameter for this picture signalled in the slice segment header. The final
336value of tc_offset_div2 shall be an integer number in the range $-6..6$.
337
338\item[]\textbf{betaOffsetDiv2}: In-loop deblocking filter parameter betaOffsetDiv2
339is added to the base parameter LoopFilterBetaOffset_div2 to set the final beta_offset_div2
340parameter for this picture signalled in the slice segment header. The final
341value of beta_offset_div2 shall be an integer number in the range $-6..6$.
342
343\item[]\textbf{temporal_id}: Temporal layer of the frame. A frame cannot
344predict from a frame with a higher temporal id. If a frame with higher
345temporal IDs is listed among a frame's reference pictures, it is
346not used, but is kept for possible use in future frames.
347
348\item[]\textbf{num_ref_pics_active}: Size of reference picture lists L0
349and L1, indicating how many reference pictures in each direction that
350are used during coding.
351
352\item[]\textbf{num_ref_pics}: The number of reference pictures kept for
353this frame.  This includes pictures that are used for reference for the
354current picture as well as pictures that will be used for reference in
355the future.
356
357\item[]\textbf{reference_pictures}: A space-separated list of
358num_ref_pics integers, specifying the POC of the reference pictures
359kept, relative the POC of the current frame. The picture list shall be
360ordered, first with negative numbers from largest to smallest, followed
361by positive numbers from smallest to largest (e.g. \verb|-1 -3 -5 1 3|).
362Note that any pictures not supplied in this list will be discarded and
363therefore not available as reference pictures later.
364
365\item[]\textbf{predict}: Defines the value of the syntax element
366inter_ref_pic_set_prediction_flag. A value of 0 indicates that the
367reference picture set is encoded without inter RPS prediction and the
368subsequent parameters deltaRIdx$-1$, deltaRPS, num_ref_idcs and
369Reference_idcs are ignored and do not need to be present. A value of 1
370indicates that the reference picture set is encoded with inter
371prediction RPS using the subsequent parameters deltaRIdx$-1$, deltaRPS,
372num_ref_idcs and Reference_idcs in the line. A value of 2 indicates that
373the reference picture set is encoded with inter RPS but only the
374deltaRIdx$-1$ parameters is needed. The deltaRPS, num_ref_idcs and
375Reference_idcs values are automatically derived by the encoder based on
376the POC and refPic values of the current line and the RPS pointed to by
377the deltaRIdx$-1$ parameters.
378
379\item[]\textbf{deltaRIdx$-1$}: The difference between the index of the
380curent RPS and the predictor RPS minus 1.
381
382\item[]\textbf{deltaRPS}: The difference between the POC of the
383predictor RPS and POC the current RPS.
384
385\item[]\textbf{num_ref_idcs}: The number of ref_idcs to encode for the
386current RPS.  The value is equal to the value of  num_ref_pics of the
387predictor RPS plus 1.
388
389\item[]\textbf{reference_idcs}: A space-separated list of num_ref_idcs
390integers, specifying the ref idcs of the inter RPS prediction. The value
391of ref_idcs may be 0, 1 or 2 indicating that the reference picture is a
392reference picture used by the current picture, a reference picture used
393for future picture or not a reference picture anymore, respectively. The
394first num_ref_pics of ref_idcs correspond to the Reference pictures in
395the predictor RPS. The last ref_idcs corresponds to the predictor
396picture.
397\end{itemize}
398
399For example, consider the coding structure of Figure~\ref{fig:gop-example}.
400This coding structure is of size 4. The pictures are listed in decoding
401order. Frame1 shall therefore describe picture with $\textrm{POC}=4$. It
402references picture 0, and therefore has $-4$ as a reference picture.
403Similarly, Frame2 has a POC of 2, and since it references pictures 0 and
4044, its reference pictures are listed as \verb|-2 2|. Frame3 is a special
405case: even though it only references pictures with POC 0 and 2, it also
406needs to include the picture with POC 4, which must be kept in order to
407be used as a reference picture in the future. The reference picture list
408for Frame3 therefore becomes \verb|-1 1 3|. Frame4 has a POC of 3 and
409its list of reference pictures is \verb|-1 1|.
410
411\begin{figure}[h]
412\caption{A GOP structure}
413\label{fig:gop-example}
414\centering
415\includegraphics[width=0.7\textwidth]{gop-structure-example}
416\end{figure}
417
418Inter RPS prediction may be used for Frame2, Frame3 and Frame4, hence
419the predict parameter is set to 1 for these frames. Frame2 uses Frame1
420as the predictor hence the deltaRIdx$-1$ is 0.  Similarly for Frame3 and
421Frame4 which use Frame2 and Frame3 as predictors, respectively. The
422deltaRPS is equal to the POC of the predictor minus the POC of the
423current picture, therefore the deltaRPS for Frame2 is $4 -2 = 2$, for
424Frame3 is $2 - 1 = 1$ and for Frame4 is $1 - 3 = -2$.
425
426In Frame2, reference pictures with POC 0 and 2 are used, so the
427reference idcs for Frame2 are \verb|1 1| indicating that the reference
428picture, $-4$, in Frame1 is still a reference picture in Frame2 and
429Frame1 is also a reference picture in Frame2. The reference idcs for
430Frame3 are \verb|1 1 1|. The first and second “1”s indicating that
431the reference pictures "$-2$ $2$" in Frame2 are still reference pictures in
432Frame3 and the last “1” indicating that Frame2 is also a reference
433picture in Frame3. In Frame 4, the reference idcs are \verb|0 1 1 0|.
434The first “0” indicates that the reference pictures “-1” in Frame 3 is
435no longer a reference picture in Frame4. The next two “1”s indicate that
436the reference pictures “$1$ $3$” are now reference pictures of Frame4.
437The final “0” indicates that Frame3 is not a reference picture.
438
439In order to specify this to the encoder, the parameters in
440Table~\ref{tab:gop-example} could be used.
441
442\begin{table}[ht]
443\footnotesize
444\caption{GOP structure example}
445\label{tab:gop-example}
446\centering
447\begin{tabular}{lrrrr}
448\hline
449 \thead{} &
450 \thead{Frame1} &
451 \thead{Frame2} &
452 \thead{Frame3} &
453 \thead{Frame4} \\
454\hline
455Type                &   P  &    B   &      B   &       B \\
456POC                 &   4  &    2   &      1   &       3 \\
457QPOffset            &   1  &    2   &      3   &       3 \\
458SliceCbQPOffset     &   0  &    0   &      0   &       0 \\
459SliceCrQPOffset     &   0  &    0   &      0   &       0 \\
460QPfactor            & 0.5  &  0.5   &    0.5   &     0.5 \\
461tcOffsetDiv2        &   0  &    1   &      2   &       2 \\ 
462betaOffsetDiv2      &   0  &    0   &      0   &       0 \\
463temporal_id         &   0  &    1   &      2   &       2 \\
464num_ref_pics_active &   1  &    1   &      1   &       1 \\
465num_ref_pics        &   1  &    2   &      3   &       2 \\
466reference_pictures  & $-$4 & $-$2 2 & $-$1 1 3 &  $-$1 1 \\
467predict             &   0  &    1   &      1   &       1 \\
468deltaRIdx$-$1       &      &    0   &      0   &       0 \\
469deltaRPS            &      &    2   &      1   &    $-$2 \\
470num_ref_idcs        &      &    2   &      3   &       4 \\
471reference_idcs      &      &  1 1   &  1 1 1   & 0 1 1 0 \\
472\hline
473\end{tabular}
474\end{table}
475
476Here, the frames used for prediction have been given higher
477quality by assigning a lower QP offset. Also, the non-reference
478frames have been marked as belonging to a higher temporal layer,
479to make it possible to decode only every other frame. Note: each
480line should contain information for one frame, so this
481configuration would be specified as:
482
483\begin{verbatim}
484Frame1: P 4 1 0 0 0.5 0 0 0 1 1 -4 0
485Frame2: B 2 2 0 0 0.5 1 0 1 1 2 -2 2 1 0 2 2 1 1
486Frame3: B 1 3 0 0 0.5 2 0 2 1 3 -1 1 3 1 0 1 3 1 1 1
487Frame4: B 3 3 0 0 0.5 2 0 2 1 2 -1 1 1 0 -2 4 0 1 1 0
488\end{verbatim}
489
490The values of deltaRIdx$-1$, deltaRPS, num_ref_idcs and reference
491idcs of Frame$K$ can be derived from the POC value of Frame$_K$ and
492the POC, num_ref_pics and reference_pictures values of Frame$_M$, where
493$K$ is the index of the RPS to be inter coded and the $M$ is the
494index of the reference RPS, as follows.
495
496\setlength{\algomargin}{2em}
497\begin{algorithm}[ht]
498\SetKwData{deltaRIdx}{deltaRIdx}
499\SetKwData{deltaRPS}{deltaRPS}
500\SetKwData{numrefidcs}{num_ref_idcs}
501\SetKwData{numrefpics}{num_ref_pics}
502\SetKwData{referencepictures}{reference_pictures}
503\SetKwData{referenceidcs}{reference_idcs}
504\SetKwData{POC}{POC}
505
506$\deltaRIdx_K - 1  \leftarrow  K - M - 1$ \;
507$\deltaRPS_K       \leftarrow  \POC_M - \POC_K$ \;
508$\numrefidcs_K     \leftarrow  \numrefpics_M + 1$ \;
509
510\For{$j \leftarrow 0$ \KwTo $\numrefpics_M$}{
511        \For{$i \leftarrow 0$ \KwTo $\numrefidcs_K$}{
512                \eIf{$\referencepictures_{M,j} + \deltaRPS_K == \referencepictures_{K,i}$}{
513                        \lIf{$\referencepictures_{K,i}$ is used by the current frame}{
514                                $\referenceidcs_{K,j} = 1$} \;
515                        \lElse{$\referenceidcs_{K,j} = 2$} \;
516                }{
517                        $\referenceidcs_K[j] = 0$ \;
518                }
519        }
520}
521
522\tcc{$\referencepictures_{M,\numrefpics_M}$ does not exist and is assumed to be 0}
523\end{algorithm}
524
525Note: The above (automatic) generation of the inter RPS parameter
526values has been integrated into the encoder, and is activated by
527the value of predict $= 2$ followed by the value of deltaRIdx$-1$,
528only, as described above.
529
530
531
532%%%%
533%%%%
534%%%%
535\newgeometry{tmargin=1.6cm,lmargin=1cm,rmargin=1cm,bmargin=1in,nohead}
536\subsection{Encoder parameters}
537
538%%
539%% File, I/O and source parameters
540%%
541Shorthand alternatives for the parameter that can be used on the command line are shown in brackets after the parameter name.
542
543\begin{OptionTableNoShorthand}{File, I/O and source parameters.}{tab:fileIO}
544\Option{InputFile (-i)} &
545%\ShortOption{-i} &
546\Default{\NotSet} &
547Specifies the input video file.
548
549Video 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.
550
551Note: When the bit depth of samples is larger than 8, each sample is encoded in
5522 bytes (little endian, LSB-justified).
553\\
554
555\Option{BitstreamFile (-b)} &
556%\ShortOption{-b} &
557\Default{\NotSet} &
558Specifies the output coded bit stream file.
559\\
560
561\Option{ReconFile (-o)} &
562%\ShortOption{-o} &
563\Default{\NotSet} &
564Specifies the output locally reconstructed video file.
565\\
566
567\Option{SourceWidth (-wdt)}%
568\Option{SourceHeight (-hgt)} &
569%\ShortOption{-wdt}%
570%\ShortOption{-hgt} &
571\Default{0}%
572\Default{0} &
573Specifies the width and height of the input video in luma samples.
574\\
575
576\Option{InputBitDepth}
577 &
578%\ShortOption{\None} &
579\Default{8} &
580Specifies the bit depth of the input video.
581\\
582
583\Option{MSBExtendedBitDepth} &
584%\ShortOption{\None} &
585\Default{0} &
586Extends the input video by adding MSBs of value 0. When 0, no extension is applied and the InputBitDepth is used.
587
588The MSBExtendedBitDepth becomes the effective file InputBitDepth for subsequent processing.
589\\
590
591\Option{InternalBitDepth} &
592%\ShortOption{\None} &
593\Default{0} &
594Specifies the bit depth used for coding. When 0, the setting defaults to the
595value of the MSBExtendedBitDepth.
596
597If the input video is a different bit depth to InternalBitDepth, it is
598automatically converted by:
599\begin{displaymath}
600\left\lfloor
601 \frac{\mathrm{Pel} * 2^{\mathrm{InternalBitDepth}}}{
602     2^{\mathrm{MSBExtendedBitDepth}}}
603\right\rfloor
604\end{displaymath}
605
606Note: The effect of this option is as if the input video is externally
607converted to the MSBExtendedBitDepth and then to the InternalBitDepth
608and then coded with this value as InputBitDepth. The codec has no
609notion of different bit depths.
610\\
611
612\Option{OutputBitDepth} &
613%\ShortOption{\None} &
614\Default{0} &
615Specifies the bit depth of the output locally reconstructed video file.
616When 0, the setting defaults to the value of InternalBitDepth.
617Note: This option has no effect on the decoding process.
618\\
619
620\Option{InputBitDepthC}%
621\Option{MSBExtendedBitDepthC}%
622\Option{InternalBitDepthC}%
623\Option{OutputBitDepthC} &
624%\ShortOption{\None} &
625\Default{0}%
626\Default{0}%
627\Default{0}%
628\Default{0} &
629Specifies the various bit-depths for chroma components.  These only need
630to be specified if non-equal luma and chroma bit-depth processing is
631required. When 0, the setting defaults to the corresponding non-Chroma value.
632\\
633
634\Option{InputColourSpaceConvert} &
635%\ShortOption{\None} &
636\Default{\NotSet} &
637The colour space conversion to apply to input video. Permitted values are:
638\par
639\begin{tabular}{lp{0.3\textwidth}}
640  UNCHANGED & No colour space conversion is applied \\
641  YCbCrToYCrCb & Swap the second and third components \\
642  YCbCrtoYYY & Set the second and third components to the values in the first \\
643  RGBtoGBR & Reorder the three components \\
644\end{tabular}
645\par
646If no value is specified, no colour space conversion is applied. The list may eventually also include RGB to YCbCr or YCgCo conversions.
647\\
648
649\Option{SNRInternalColourSpace} &
650%\ShortOption{\None} &
651\Default{false} &
652When this is set true, then no colour space conversion is applied prior to PSNR calculation, otherwise the inverse of InputColourSpaceConvert is applied.
653\\
654
655\Option{OutputInternalColourSpace} &
656%\ShortOption{\None} &
657\Default{false} &
658When this is set true, then no colour space conversion is applied to the reconstructed video, otherwise the inverse of InputColourSpaceConvert is applied.
659\\
660
661\Option{InputChromaFormat} &
662%\ShortOption{\None} &
663\Default{420} &
664Specifies the chroma format used in the input file. Permitted values (depending on the profile) are 400, 420, 422 or 444.
665\\
666
667\Option{ChromaFormatIDC (-cf)} &
668%\ShortOption{-cf} &
669\Default{0} &
670Specifies 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.
671\\
672
673\Option{MSEBasedSequencePSNR} &
674%\ShortOption{\None} &
675\Default{false} &
676When 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.
677\\
678
679\Option{PrintFrameMSE} &
680%\ShortOption{\None} &
681\Default{false} &
682When 1, the Mean Square Error (MSE) values of each frame will also be output alongside the default PSNR values.
683\\
684
685\Option{PrintSequenceMSE} &
686%\ShortOption{\None} &
687\Default{false} &
688When 1, the Mean Square Error (MSE) values of the entire sequence will also be output alongside the default PSNR values.
689\\
690
691\Option{SummaryOutFilename} &
692%\ShortOption{\None} &
693\Default{false} &
694Filename to use for producing summary output file. If empty, do not produce a file.
695\\
696
697\Option{SummaryPicFilenameBase} &
698%\ShortOption{\None} &
699\Default{false} &
700Base 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.
701\\
702
703\Option{SummaryVerboseness} &
704%\ShortOption{\None} &
705\Default{false} &
706Specifies the level of the verboseness of the text output.
707\\
708
709\Option{CabacZeroWordPaddingEnabled} &
710%\ShortOption{\None} &
711\Default{false} &
712When 1, CABAC zero word padding will be enabled. This is currently not the default value for the setting.
713\\
714
715\Option{ConformanceWindowMode} &
716%\ShortOption{\None} &
717\Default{0} &
718Specifies how the parameters related to the conformance window are interpreted (cropping/padding).
719The following modes are available:
720\par
721\begin{tabular}{cp{0.43\textwidth}}
7220 & No cropping / padding \\
7231 & Automatic padding to the next minimum CU size \\
7242 & Padding according to parameters HorizontalPadding and VerticalPadding \\
7253 & Cropping according to parameters ConfWinLeft, ConfWinRight, ConfWinTop and ConfWinBottom \\
726\end{tabular}
727\\
728
729\Option{HorizontalPadding (-pdx)}%
730\Option{VerticalPadding (-pdy)} &
731%\ShortOption{-pdx}%
732%\ShortOption{-pdy} &
733\Default{0} &
734Specifies the horizontal and vertical padding to be applied to the input
735video in luma samples when ConformanceWindowMode is 2.  Must be a multiple of
736the chroma resolution (e.g. a multiple of two for 4:2:0).
737\\
738
739\Option{ConfWinLeft}%
740\Option{ConfWinRight}%
741\Option{ConfWinTop}%
742\Option{ConfWinBottom} &
743%\ShortOption{\None} &
744\Default{0} &
745Specifies the horizontal and vertical cropping to be applied to the
746input video in luma samples when ConformanceWindowMode is 3.
747Must be a multiple of the chroma resolution (e.g. a multiple of
748two for 4:2:0).
749\\
750
751\Option{FrameRate (-fr)} &
752%\ShortOption{-fr} &
753\Default{0} &
754Specifies the frame rate of the input video.
755
756Note: This option only affects the reported bit rates.
757\\
758
759\Option{FrameSkip (-fs)} &
760%\ShortOption{-fs} &
761\Default{0} &
762Specifies a number of frames to skip at beginning of input video file.
763\\
764
765\Option{FramesToBeEncoded (-f)} &
766%\ShortOption{-f} &
767\Default{0} &
768Specifies the number of frames to be encoded (see note regarding TemporalSubsampleRatio). When 0, all frames are coded.
769\\
770
771\Option{TemporalSubsampleRatio (-ts)} &
772%\ShortOption{-fs} &
773\Default{1} &
774Temporally 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.
775\\
776
777\Option{FieldCoding} &
778%\ShortOption{\None} &
779\Default{false} &
780When 1, indicates that field-based coding is to be applied.
781\\
782
783\Option{TopFieldFirst (-Tff)} &
784%\ShortOption{\None} &
785\Default{0} &
786Indicates the order of the fields packed into the input frame. When 1, the top field is temporally first.
787\\
788
789\Option{ClipInputVideoToRec709Range} &
790%\ShortOption{\None} &
791\Default{0} &
792If 1 then clip input video to the Rec. 709 Range on loading when InternalBitDepth is less than MSBExtendedBitDepth.
793\\
794
795\Option{ClipOutputVideoToRec709Range} &
796%\ShortOption{\None} &
797\Default{0} &
798If 1 then clip output video to the Rec. 709 Range on saving when OutputBitDepth is less than InternalBitDepth.
799\\
800
801\Option{EfficientFieldIRAPEnabled} &
802%\ShortOption{\None} &
803\Default{1} &
804Enable to code fields in a specific, potentially more efficient, order.
805\\
806
807\Option{HarmonizeGopFirstFieldCoupleEnabled} &
808%\ShortOption{\None} &
809\Default{1} &
810Enables harmonization of Gop first field couple.
811\\
812
813\Option{AccessUnitDelimiter} &
814%\ShortOption{\None} &
815\Default{0} &
816Add Access Unit Delimiter NAL units between all Access Units.
817\\
818
819\end{OptionTableNoShorthand}
820
821%%
822%% profile, level and conformance options
823%%
824\begin{OptionTableNoShorthand}{Profile and level parameters}{tab:profile}
825\Option{Profile} &
826%\ShortOption{\None} &
827\Default{none} &
828Specifies the profile to which the encoded bitstream complies.
829
830Valid HEVC Ver. 1 values are: none, main, main10, main-still-picture
831
832Valid HEVC Ver. 2 (RExt) values are: main-RExt, high-throughput-RExt,
833monochrome, monochrome12, monochrome16, main12, main_422_10,
834main_422_12, main_444, main_444_10, main_444_12, main_444_16,
835main_intra, main_10_intra, main_12_intra, main_422_10_intra, main_422_12_intra,
836main_444_intra, main_444_10_intra, main_444_12_intra, main_444_16_intra.
837
838When main-RExt is specified, the constraint flags are either manually specified, or calculated via the other supplied settings.
839
840Compatibility flags are automatically determined according to the profile.
841NB: There is currently only limited validation that the encoder configuration complies with the profile, level and tier constraints.
842\\
843
844\Option{Level} &
845%\ShortOption{\None} &
846\Default{none} &
847Specifies the level to which the encoded bitstream complies.
848Valid values are: none, 1, 2, 2.1, 3, 3.1, 4, 4.1, 5, 5.1, 5.2, 6, 6.1, 6.2, 8.5
849
850NB: There is currently only limited validation that the encoder configuration complies with the profile, level and tier constraints.
851\\
852
853\Option{Tier} &
854%\ShortOption{\None} &
855\Default{main} &
856Specifies the level tier to which the encoded bitsream complies.
857Valid values are: main, high.
858
859NB: There is currently only limited validation that the encoder configuration complies with the profile, level and tier constraints.
860\\
861
862\Option{MaxBitDepthConstraint} &
863%\ShortOption{\None} &
864\Default{0} &
865For --profile=main-RExt, specifies the value to use to derive the general_max_bit_depth constraint flags for RExt profiles; when 0, use $\max(InternalBitDepth, InternalBitDepthC)$
866\\
867
868\Option{MaxChromaFormatConstraint} &
869%\ShortOption{\None} &
870\Default{0} &
871For --profile=main-RExt, specifies the chroma-format to use for the general profile constraints for RExt profiles; when 0, use the value of ChromaFormatIDC.
872\\
873
874\Option{IntraConstraintFlag} &
875%\ShortOption{\None} &
876\Default{false} &
877For --profile=main-RExt, specifies the value of general_intra_constraint_flag to use for RExt profiles.
878\\
879
880\Option{OnePictureOnlyConstraintFlag} &
881%\ShortOption{\None} &
882\Default{false} &
883For --profile=main-RExt, specifies the value of general_one_picture_only_constraint_flag to use for RExt profiles.
884\\
885
886\Option{LowerBitRateConstraintFlag} &
887%\ShortOption{\None} &
888\Default{true} &
889Specifies the value of general_lower_bit_constraint_flag to use for RExt profiles.
890\\
891
892\Option{ProgressiveSource} &
893%\ShortOption{\None} &
894\Default{false} &
895Specifies the value of general_progressive_source_flag
896\\
897
898\Option{InterlacedSource} &
899%\ShortOption{\None} &
900\Default{false} &
901Specifies the value of general_interlaced_source_flag
902\\
903
904\Option{NonPackedSource} &
905%\ShortOption{\None} &
906\Default{false} &
907Specifies the value of general_non_packed_constraint_flag
908\\
909
910\Option{FrameOnly} &
911%\ShortOption{\None} &
912\Default{false} &
913Specifies the value of general_frame_only_constraint_flag
914\\
915
916\end{OptionTableNoShorthand}
917
918
919%%
920%% Unit definition parameters
921%%
922
923\begin{OptionTableNoShorthand}{Unit definition parameters}{tab:unit}
924\Option{MaxCUWidth} &
925%\ShortOption{\None} &
926\Default{64} &
927Defines the maximum CU width.
928\\
929
930\Option{MaxCUHeight} &
931%\ShortOption{\None} &
932\Default{64} &
933Defines the maximum CU height.
934\\
935
936\Option{MaxCUSize (-s)} &
937%\ShortOption{\None} &
938\Default{64} &
939Defines the maximum CU size.
940\\
941
942\Option{MaxPartitionDepth (-h)} &
943%\ShortOption{-h} &
944\Default{4} &
945Defines the depth of the CU tree.
946\\
947
948\Option{QuadtreeTULog2MaxSize} &
949%\ShortOption{\None} &
950\Default{6 \\ ($= \mathrm{log}_2(64)$)} &
951Defines the Maximum TU size in logarithm base 2.
952\\
953
954\Option{QuadtreeTULog2MinSize} &
955%\ShortOption{\None} &
956\Default{2 \\ ($= \mathrm{log}_2(4)$)} &
957Defines the Minimum TU size in logarithm base 2.
958\\
959
960\Option{QuadtreeTUMaxDepthIntra} &
961%\ShortOption{\None} &
962\Default{1} &
963Defines the depth of the TU tree for intra CUs.
964\\
965
966\Option{QuadtreeTUMaxDepthInter} &
967%\ShortOption{\None} &
968\Default{2} &
969Defines the depth of the TU tree for inter CUs.
970\\
971
972\end{OptionTableNoShorthand}
973
974
975%%
976%% Coding structure parameters
977%%
978
979\begin{OptionTableNoShorthand}{Coding structure parameters}{tab:coding-structure}
980\Option{IntraPeriod (-ip)} &
981%\ShortOption{-ip} &
982\Default{$-1$} &
983Specifies the intra frame period.
984A value of $-1$ implies an infinite period.
985\\
986
987\Option{DecodingRefreshType (-dr)} &
988%\ShortOption{-dr} &
989\Default{0} &
990Specifies the type of decoding refresh to apply at the intra frame period
991picture.
992\par
993\begin{tabular}{cp{0.45\textwidth}}
9940 & Applies an I picture (not a intra random access point). \\
9951 & Applies a CRA intra random access point (open GOP). \\
9962 & Applies an IDR intra random access point (closed GOP). \\
9973 & Use recovery point SEI messages to indicate random access. \\
998\end{tabular}
999\\
1000
1001\Option{GOPSize (-g)} &
1002%\ShortOption{-g} &
1003\Default{1} &
1004Specifies the size of the cyclic GOP structure.
1005\\
1006
1007\Option{Frame\emph{N}} &
1008%\ShortOption{\None} &
1009\Default{\NotSet} &
1010Multiple options that define the cyclic GOP structure that will be used
1011repeatedly throughout the sequence.  The table should contain GOPSize
1012elements.
1013\par
1014See section~\ref{sec:gop-structure} for further details.
1015\\
1016\end{OptionTableNoShorthand}
1017
1018%%
1019%% Motion estimation parameters
1020%%
1021
1022\begin{OptionTableNoShorthand}{Motion estimation parameters}{tab:motion-estimation}
1023\Option{FastSearch} &
1024%\ShortOption{\None} &
1025\Default{1} &
1026Enables or disables the use of a fast motion search.
1027\par
1028\begin{tabular}{cp{0.45\textwidth}}
1029 0 & Full search method \\
1030 1 & Fast search method - TZSearch\\
1031 2 & Predictive motion vector fast search method \\
1032 3 & Extended TZSearch method \\
1033\end{tabular}
1034\\
1035
1036\Option{SearchRange (-sr)} &
1037%\ShortOption{-sr} &
1038\Default{96} &
1039Specifies the search range used for motion estimation.
1040
1041Note: the search range is defined around a predictor. Motion vectors
1042derived by the motion estimation may thus have values larger than the
1043search range.
1044\\
1045
1046\Option{BipredSearchRange} &
1047%\ShortOption{\None} &
1048\Default{4} &
1049Specifies the search range used for bi-prediction refinement in motion
1050estimation.
1051\\
1052
1053\Option{ClipForBiPredMEEnabled} &
1054%\ShortOption{\None} &
1055\Default{0} &
1056Enables clipping in the Bi-Pred ME, which prevents values over- or under-flowing. It is usually disabled to reduce encoder run-time.
1057\\
1058
1059\Option{FastMEAssumingSmootherMVEnabled} &
1060%\ShortOption{\None} &
1061\Default{0} &
1062Enables fast ME assuming a smoother MV.
1063\\
1064
1065\Option{HadamardME} &
1066%\ShortOption{\None} &
1067\Default{true} &
1068Enables or disables the use of the Hadamard transform in fractional-pel motion
1069estimation.
1070\par
1071\begin{tabular}{cp{0.45\textwidth}}
1072 0 & SAD for cost estimation \\
1073 1 & Hadamard for cost estimation \\
1074\end{tabular}
1075\\
1076
1077\Option{ASR} &
1078%\ShortOption{\None} &
1079\Default{false} &
1080Enables or disables the use of adaptive search ranges, where the motion
1081search range is dynamically adjusted according to the POC difference
1082between the current and the reference pictures.
1083\begin{displaymath}
1084\resizebox{\hsize}{!}{$
1085\mathrm{SearchRange}’ = \mathrm{Round}\left(
1086                          \mathrm{SearchRange}
1087                          * \mathrm{ADAPT\_SR\_SCALE}
1088                          * \frac{\mathrm{abs}(
1089                                 \mathrm{POCcur} - \mathrm{POCref} )}{
1090                                 \mathrm{RateGOPSize}}\right)
1091$}
1092\end{displaymath}
1093\\
1094
1095\Option{MaxNumMergeCand} &
1096%\ShortOption{\None} &
1097\Default{5} &
1098Specifies the maximum number of merge candidates to use.
1099\\
1100
1101\Option{DisableIntraInInter} &
1102%\ShortOption{\None} &
1103\Default{0} &
1104Flag to disable intra PUs in inter slices.
1105\\
1106
1107\end{OptionTableNoShorthand}
1108
1109
1110%%
1111%% Mode decision parameters
1112%%
1113
1114\begin{OptionTableNoShorthand}{Mode decision parameters}{tab:mode-decision}
1115\Option{LambdaModifier$N$ (-LM$N$)} &
1116%\ShortOption{-LM$N$} &
1117\Default{1.0} &
1118Specifies a value that is multiplied with the Lagrange multiplier
1119$\lambda$, for use in the rate-distortion optimised cost calculation
1120when encoding temporal layer~$N$.
1121If LambdaModifierI is specified, then LambdaModifierI will be used for intra pictures.
1122\par
1123$N$ may be in the range 0 (inclusive) to 7 (exclusive).
1124\\
1125
1126\Option{LambdaModifierI (-LMI)} &
1127%\ShortOption{-LMI} &
1128\Default{} &
1129Specifies one or more of the LambdaModifiers to use intra pictures at each of the temporal layers.
1130If not present, then the LambdaModifier$N$ settings are used instead. If the list of values
1131(comma or space separated) does not include enough values for each of the temporal layers,
1132the last value is repeated as required.
1133\\
1134
1135\Option{IQPFactor (-IQF)} &
1136%\ShortOption{-IQF} &
1137\Default{-1} &
1138Specifies the QP factor to be used for intra pictures during the lambda computation.
1139(The values specified in the GOP structure are only used for inter pictures).
1140If negative (default), the following equation is used to derive the value:
1141\par
1142$IQP_{factor}=0.57*(1.0-Max(0.5, Min(0.0, 0.05*s)))$
1143\par
1144where $s = Int(isField ? (GS-1)/2 : GS-1)$ and
1145$GS$ is the gop size.
1146\\
1147
1148\Option{ECU} &
1149%\ShortOption{\None} &
1150\Default{false} &
1151Enables or disables the use of early CU determination.  When enabled, skipped CUs will not be split further.
1152\\
1153
1154\Option{CFM} &
1155%\ShortOption{\None} &
1156\Default{false} &
1157Enables or disables the use of Cbf-based fast encoder mode.  When enabled, once a 2Nx2N CU has been evaluated, if the RootCbf is 0, further PU splits will not be evaluated.
1158\\
1159
1160\Option{ESD} &
1161%\ShortOption{\None} &
1162\Default{false} &
1163Enables or disables the use of early skip detection.  When enabled, the skip mode will be tested before any other.
1164\\
1165
1166\Option{FEN} &
1167%\ShortOption{\None} &
1168\Default{0} &
1169Controls the use of different fast encoder coding tools.  The following
1170tools are supported in different combinations:
1171\par
1172\begin{tabular}{cp{0.45\textwidth}}
1173 a & In the SAD computation for blocks having size larger than 8, only
1174     the lines of even rows in the block are considered. \\
1175 b & The number of iterations used in the bi-directional motion vector
1176     refinement in the motion estimation process is reduced from 4 to 1. \\
1177\end{tabular}
1178Depending on the value of the parameter, the following combinations are
1179supported:
1180\par
1181\begin{tabular}{cp{0.45\textwidth}}
1182 0 & Disable all modes \\
1183 1 & Use both a \& b tools\\
1184 2 & Use only tool b \\
1185 3 & Use only tool a \\
1186\end{tabular}
1187\\
1188
1189\Option{FDM} &
1190%\ShortOption{\None} &
1191\Default{true} &
1192Enables or disables the use of fast encoder decisions for 2Nx2N merge
1193mode.  When enabled, the RD cost for the merge mode of the current
1194candidate is not evaluated if the merge skip mode was the best merge
1195mode for one of the previous candidates.
1196\\
1197
1198\Option{RDpenalty} &
1199%\ShortOption{\None} &
1200\Default{0} &
1201RD-penalty for 32x32 TU for intra in non-intra slices.
1202Enabling this parameter can reduce the visibility of CU boundaries in the coded picture.
1203\par
1204\begin{tabular}{cp{0.45\textwidth}}
1205 0 & No RD-penalty \\
1206 1 & RD-penalty \\
1207 2 & Maximum RD-penalty (no 32x32 TU)\\
1208\end{tabular}
1209\\
1210
1211\end{OptionTableNoShorthand}
1212
1213%%
1214%% Quantization parameters
1215%%
1216\begin{OptionTableNoShorthand}{Quantization parameters}{tab:quantization}
1217\Option{QP (-q)} &
1218%\ShortOption{-q} &
1219\Default{30.0} &
1220Specifies the base value of the quantization parameter. If it is non-integer, the QP is switched once during encoding.
1221\\
1222
1223\Option{CbQpOffset (-cbqpofs)}%
1224\Option{CrQpOffset (-crqpofs)} &
1225%\ShortOption{-cbqpofs}%
1226%\ShortOption{-crqpofs} &
1227\Default{0}%
1228\Default{0} &
1229Global offset to apply to the luma QP to derive the QP of Cb and Cr
1230respectively.  These options correspond to the values of cb_qp_offset
1231and cr_qp_offset, that are transmitted in the PPS.  Valid values are in
1232the range $[-12, 12]$.
1233\\
1234
1235\Option{SliceChromaQPOffsetPeriodicity} &
1236\Default{0} &
1237Defines the periodicity for inter slices that use the slice-level chroma QP offsets, as defined by SliceCbQpOffsetIntraOrPeriodic and SliceCrQpOffsetIntraOrPeriodic. A value of 0 disables the periodicity. It is intended to be used in low-delay configurations where an regular intra period is not defined.
1238\\
1239
1240\Option{SliceCbQpOffsetIntraOrPeriodic}%
1241\Option{SliceCrQpOffsetIntraOrPeriodic} &
1242\Default{0} &
1243Defines the slice-level QP offset to be used for intra slices, or once every 'SliceChromaQPOffsetPeriodicity' pictures.
1244\\
1245
1246\Option{MaxCuDQPDepth (-dqd)} &
1247%\ShortOption{\None} &
1248\Default{0} &
1249Defines maximum depth of a minimum CuDQP for sub-LCU-level delta QP.
1250MaxCuDQPDepth shall be greater than or equal to SliceGranularity.
1251\\
1252
1253\Option{RDOQ} &
1254%\ShortOption{\None} &
1255\Default{true} &
1256Enables or disables rate-distortion-optimized quantization for transformed TUs.
1257\\
1258
1259\Option{RDOQTS} &
1260%\ShortOption{\None} &
1261\Default{true} &
1262Enables or disables rate-distortion-optimized quantization for transform-skipped TUs.
1263\\
1264
1265\Option{SelectiveRDOQ} &
1266%\ShortOption{\None} &
1267\Default{false} &
1268Enables or disables selective rate-distortion-optimized quantization.
1269A simple quantization is use to pre-analyze, whether to bypass the RDOQ process or not.
1270If all the coefficients are quantized to 0, the RDOQ process is bypassed.
1271Otherwise, the RDOQ process is performed as usual.
1272\\
1273
1274\Option{DeltaQpRD (-dqr)} &
1275%\ShortOption{-dqr} &
1276\Default{0} &
1277Specifies the maximum QP offset at slice level for multi-pass slice
1278encoding.  When encoding, each slice is tested multiple times by using
1279slice QP values in the range $[-\mathrm{DeltaQpRD}, \mathrm{DeptaQpRD}]$,
1280and the best QP value is chosen as the slice QP.
1281\\
1282
1283\Option{MaxDeltaQP (-d)} &
1284%\ShortOption{-d} &
1285\Default{0} &
1286Specifies the maximum QP offset at the largest coding unit level for
1287the block-level adaptive QP assignment scheme. In the encoder, each
1288largest coding unit is tested multiple times by using the QP values in
1289the range $[-\mathrm{MaxDeltaQP}, \mathrm{MaxDeltaQP}]$, and the best QP
1290value is chosen as the QP value of the largest coding unit.
1291\\
1292
1293\Option{dQPFile (-m)} &
1294%\ShortOption{-m} &
1295\Default{\NotSet} &
1296Specifies a file containing a list of QP deltas. The $n$-th line
1297(where $n$ is 0 for the first line) of this file corresponds to the QP
1298value delta for the picture with POC value $n$.
1299\\
1300
1301\Option{AdaptiveQp (-aq)} &
1302%\ShortOption{-aq} &
1303\Default{false} &
1304Enable or disable QP adaptation based upon a psycho-visual model.
1305\\
1306
1307\Option{MaxQPAdaptationRange (-aqr)} &
1308%\ShortOption{-aqps} &
1309\Default{6} &
1310Specifies the maximum QP adaptation range.
1311\\
1312
1313\Option{AdaptiveQpSelection (-aqps)} &
1314%\ShortOption{-aqps} &
1315\Default{false} &
1316Specifies whether QP values for non-I frames will be calculated on the
1317fly based on statistics of previously coded frames.
1318\\
1319
1320\Option{RecalculateQP...} \Option{AccordingToLambda} &
1321%\ShortOption{\None} &
1322\Default{false} &
1323Recalculate QP values according to lambda values. Do not suggest to be enabled in all intra case.
1324\\
1325
1326\Option{ScalingList} &
1327%\ShortOption{\None} &
1328\Default{0} &
1329Controls the specification of scaling lists:
1330\par
1331\begin{tabular}{cp{0.45\textwidth}}
1332 0 & Scaling lists are disabled \\
1333 1 & Use default scaling lists \\
1334 2 & Scaling lists are specified in the file indicated by ScalingListFile \\
1335\end{tabular}
1336\\
1337
1338\Option{ScalingListFile} &
1339%\ShortOption{\None} &
1340\Default{\NotSet} &
1341When ScalingList is set to 2, this parameter indicates the name of the file, which contains the defined scaling lists.
1342If ScalingList is set to 2 and this parameter is an empty string, information on the format of the scaling list file
1343is output and the encoder stops.
1344\\
1345
1346\Option{MaxCUChromaQpAdjustmentDepth} &
1347%\ShortOption{\None} &
1348\Default{-1} &
1349Specifies the maximum depth for CU chroma QP adjustment; if negative, CU chroma QP adjustment is disabled.
1350\\
1351
1352\end{OptionTableNoShorthand}
1353
1354
1355%%
1356%% Slice coding parameters
1357%%
1358\begin{OptionTableNoShorthand}{Slice coding parameters}{tab:slice-coding}
1359%\Option{SliceGranularity} &
1360%\ShortOption{\None} &
1361%\Default{0} &
1362%Determines the depth in an LCU at which slices may begin and end.
1363%\par
1364%\begin{tabular}{cp{0.45\textwidth}}
1365% 0   & Slice addresses are LCU aligned \\
1366% $1 \leq n \leq 3$
1367%     & Slice start addresses are aligned to CUs at depth $n$ \\
1368%\end{tabular}
1369%
1370%Note: The smallest permissible alignment is 16x16 CUs.
1371%Values of $n$ must satisfy this constraint, for example, with a 64x64
1372%LCU, $n$ must be less than or equal to 2.
1373%\\
1374
1375\Option{SliceMode} &
1376%\ShortOption{\None} &
1377\Default{0} &
1378Controls the slice partitioning method in conjunction with
1379SliceArgument.
1380\par
1381\begin{tabular}{cp{0.45\textwidth}}
1382 0 & Single slice \\
1383 1 & Maximum number of CTUs per slice \\
1384 2 & Maximum number of bytes per slice \\
1385 3 & Maximum number of tiles per slice \\
1386\end{tabular}
1387\\
1388
1389\Option{SliceArgument} &
1390%\ShortOption{\None} &
1391\Default{\NotSet} &
1392Specifies the maximum number of CTUs, bytes or tiles in a slice depending on the
1393SliceMode setting.
1394\\
1395
1396\Option{SliceSegmentMode} &
1397%\ShortOption{\None} &
1398\Default{0} &
1399Enables (dependent) slice segment coding in conjunction with
1400SliceSegmentArgument.
1401\par
1402\begin{tabular}{cp{0.45\textwidth}}
1403 0 & Single slice \\
1404 1 & Maximum number of CTUs per slice segment\\
1405 2 & Maximum number of bytes per slice segment\\
1406 3 & Maximum number of tiles per slice segment\\
1407\end{tabular}
1408\\
1409
1410\Option{SliceSegmentArgument} &
1411%\ShortOption{\None} &
1412\Default{\NotSet} &
1413Defines the maximum number of CTUs, bytes or tiles a slice segment
1414depending on the SliceSegmentMode setting.
1415\\
1416
1417\Option{WaveFrontSynchro} &
1418%\ShortOption{\None} &
1419\Default{false} &
1420Enables the use of specific CABAC probabilities synchronization at the
1421beginning of each line of CTBs in order to produce a bitstream that can
1422be encoded or decoded using one or more cores.
1423\\
1424
1425\Option{TileUniformSpacing} &
1426%\ShortOption{\None} &
1427\Default{false} &
1428Controls the mode used to determine per row and column tile sizes.
1429\par
1430\begin{tabular}{cp{0.45\textwidth}}
1431 0 & Each tile column width and tile row height is explicitly set
1432     by TileColumnWidthArray and TileRowHeightArray respectively \\
1433 1 & Tile columns and tile rows are uniformly spaced. \\
1434\end{tabular}
1435\\
1436
1437\Option{NumTileColumnsMinus1}%
1438\Option{NumTileRowsMinus1} &
1439%\ShortOption{\None} &
1440\Default{0} &
1441Specifies the tile based picture partitioning geometry as
1442$\mathrm{NumTileColumnsMinus1} + 1 \times \mathrm{NumTileRowsMinus1} + 1$
1443columns and rows.
1444\\
1445
1446\Option{TileColumnWidthArray}%
1447\Option{TileRowHeightArray} &
1448%\ShortOption{\None} &
1449\Default{\NotSet} &
1450Specifies a space or comma separated list of widths and heights,
1451respectively, of each tile column or tile row.  The first value in the
1452list corresponds to the leftmost tile column or topmost tile row.
1453\\
1454\end{OptionTableNoShorthand}
1455
1456
1457
1458%%
1459%% Deblocking filter parameters
1460%%
1461\begin{OptionTableNoShorthand}{Deblocking filter parameters}{tab:deblocking-filter}
1462\Option{LoopFilterDisable} &
1463%\ShortOption{\None} &
1464\Default{false} &
1465Enables or disables the in-loop deblocking filter.
1466\\
1467
1468\Option{LFCrossSliceBoundaryFlag} &
1469%\ShortOption{\None} &
1470\Default{true} &
1471Enables or disables the use of in-loop filtering across slice
1472boundaries.
1473\\
1474
1475\Option{LoopFilterOffsetInPPS}&
1476%\ShortOption{\None}&
1477\Default{false}&
1478If enabled, the in-loop deblocking filter control parameters are sent in PPS.
1479Otherwise, the in-loop deblocking filter control parameters are sent in the slice segment header.
1480If deblocking filter parameters are sent in PPS, the same values of deblocking filter parameters
1481are used for all pictures in the sequence (i.e. deblocking parameter = base parameter value). 
1482If deblocking filter parameters are sent in the slice segment header, varying deblocking filter
1483parameters can be specified by setting parameters tcOffsetDiv2 and betaOffsetDiv2 in the GOP structure table.
1484In this case, the final value of the deblocking filter parameter sent for a certain GOP picture is equal to
1485(base parameter + GOP parameter for this picture). Intra-pictures use the base parameters values.
1486\\
1487
1488\Option{LoopFilterTcOffset_div2}&
1489%\ShortOption{\None}&
1490\Default{0}&
1491Specifies the base value for the in-loop deblocking filter parameter tc_offset_div2. The final value of tc_offset_div2
1492shall be an integer number in the range $-6..6$.
1493\\
1494
1495\Option{LoopFilterBetaOffset_div2}&
1496%\ShortOption{\None}&
1497\Default{0}&
1498Specifies the base value for the in-loop deblocking filter parameter beta_offset_div2. The final value of beta_offset_div2
1499shall be an integer number in the range $-6..6$.
1500\\
1501
1502\Option{DeblockingFilterMetric}&
1503%\ShortOption{\None}&
1504\Default{0}&
1505Specifies the use of a deblocking filter metric to evaluate the suitability of deblocking. If non-zero then
1506LoopFilterOffsetInPPS and LoopFilterDisable must be 0. Currently excepted values are 0, 1 and 2.
1507\\
1508
1509\Option{LFCrossSliceBoundaryFlag}&
1510%\ShortOption{\None}&
1511\Default{true}&
1512Enables or disables the use of a deblocking across tile boundaries.
1513\\
1514
1515\end{OptionTableNoShorthand}
1516
1517
1518
1519%%
1520%% Coding tools parameters
1521%%
1522
1523\begin{OptionTableNoShorthand}{Coding tools parameters}{tab:coding-tools}
1524
1525\Option{AMP} &
1526%\ShortOption{\None} &
1527\Default{true} &
1528Enables or disables the use of asymmetric motion partitions.
1529\\
1530
1531\Option{SAO} &
1532%\ShortOption{\None} &
1533\Default{true} &
1534Enables or disables the sample adaptive offset (SAO) filter.
1535\\
1536
1537\Option{TestSAODisableAtPictureLevel} &
1538%\ShortOption{\None} &
1539\Default{false} &
1540Enables the testing of disabling SAO at the picture level after having analysed all blocks.
1541\\
1542
1543\Option{SaoEncodingRate} &
1544%\ShortOption{\None} &
1545\Default{0.75} &
1546When >0 SAO early picture termination is enabled for luma and chroma.
1547\\
1548
1549\Option{SaoEncodingRateChroma} &
1550%\ShortOption{\None} &
1551\Default{0.5} &
1552The SAO early picture termination rate to use for chroma (when m_SaoEncodingRate is >0). If <=0, use results for luma.
1553\\
1554
1555\Option{SAOLcuBoundary} &
1556%\ShortOption{\None} &
1557\Default{false} &
1558Enables or disables SAO parameter estimation using non-deblocked pixels
1559for LCU bottom and right boundary areas.
1560\\
1561
1562\Option{SAOResetEncoderStateAfterIRAP} &
1563%\ShortOption{\None} &
1564\Default{false} &
1565When true, resets the encoder's SAO state after an IRAP (POC order).
1566\\
1567
1568\Option{ConstrainedIntraPred} &
1569%\ShortOption{\None} &
1570\Default{false} &
1571Enables or disables constrained intra prediction.  Constrained intra
1572prediction only permits samples from intra blocks in the same slice as the
1573current block to be used for intra prediction.
1574\\
1575
1576\Option{FastUDIUseMPMEnabled} &
1577%\ShortOption{\None} &
1578\Default{true} &
1579If enabled, adapt intra direction search, accounting for MPM
1580\\
1581
1582\Option{FastMEForGenBLowDelayEnabled} &
1583%\ShortOption{\None} &
1584\Default{true} &
1585If enabled use a fast ME for generalised B Low Delay slices
1586\\
1587
1588\Option{UseBLambdaForNonKeyLowDelayPictures} &
1589%\ShortOption{\None} &
1590\Default{true} &
1591Enables use of B-Lambda for non-key low-delay pictures
1592\\
1593
1594\Option{TransquantBypassEnableFlag} &
1595%\ShortOption{\None} &
1596\Default{false} &
1597Enables or disables the ability to bypass the transform,
1598quantization and filtering stages at CU level.
1599This option corresponds to the value of
1600transquant_bypass_enable_flag that is transmitted in the PPS.
1601
1602See CUTransquantBypassFlagForce for further details.
1603\\
1604
1605\Option{CUTransquantBypassFlagForce} &
1606%\ShortOption{\None} &
1607\Default{0} &
1608Controls the per CU transformation, quantization and filtering
1609mode decision.
1610This option controls the value of the per CU cu_transquant_bypass_flag.
1611\par
1612\begin{tabular}{cp{0.45\textwidth}}
1613 0 & Bypass is searched on a CU-by-CU basis and will be used if the cost is lower than not bypassing. \\
1614 1 & Bypass is forced for all CUs. \\
1615\end{tabular}
1616
1617This option has no effect if TransquantBypassEnableFlag is disabled.
1618\\
1619
1620\Option{PCMEnabledFlag} &
1621%\ShortOption{\None} &
1622\Default{false} &
1623Enables or disables the use of PCM. The encoder will use cost measures on a CU-by-CU basis to determine if PCM mode is to be applied.
1624\\
1625
1626\Option{PCMLog2MaxSize} &
1627%\ShortOption{\None} &
1628\Default{5 \\ ($= \mathrm{log}_2(32)$)} &
1629Specifies log2 of the maximum PCM block size. When PCM is enabled, the
1630PCM mode is available for 2Nx2N intra PUs smaller than or equal to the
1631specified maximum PCM block size
1632\\
1633
1634\Option{PCMLog2MinSize} &
1635%\ShortOption{\None} &
1636\Default{3} &
1637Specifies log2 of the minimum PCM block size. When PCM is enabled, the
1638PCM mode is available for 2Nx2N intra PUs larger than or equal to the
1639specified minimum PCM block size.
1640\par
1641When larger than PCMLog2MaxSize, PCM mode is not used.
1642\\
1643
1644\Option{PCMInputBitDepthFlag} &
1645%\ShortOption{\None} &
1646\Default{true} &
1647If enabled specifies that PCM sample bit-depth is set equal to
1648InputBitDepth. Otherwise, it specifies that PCM sample bit-depth is set
1649equal to InternalBitDepth.
1650\\
1651
1652\Option{PCMFilterDisableFlag} &
1653%\ShortOption{\None} &
1654\Default{false} &
1655If enabled specifies that loop-filtering on reconstructed samples of PCM
1656blocks is skipped. Otherwise, it specifies that loop-filtering on
1657reconstructed samples of PCM blocks is not skipped.
1658% 0 = (loop-filtering is not skipped for PCM samples).
1659\\
1660
1661\Option{WeightedPredP (-wpP)} &
1662%\ShortOption{-wpP} &
1663\Default{false} &
1664Enables the use of weighted prediction in P slices.
1665\\
1666
1667\Option{WeightedPredB (-wpB)} &
1668%\ShortOption{-wpB} &
1669\Default{false} &
1670Enables the use of weighted prediction in B slices.
1671\\
1672
1673\Option{WPMethod (-wpM)} &
1674%\ShortOption{\-wpM} &
1675\Default{0} &
1676Sets the Weighted Prediction method to be used.
1677\par
1678\begin{tabular}{cp{0.45\textwidth}}
1679  0 & Image DC based method with joint color component decision. \\
1680  1 & Image DC based method with separate color component decision. \\
1681  2 & DC + Histogram refinement method (no clipping). \\
1682  3 & DC + Histogram refinement method (with clipping). \\
1683  4 & DC + Dual Histogram refinement method (with clipping). \\
1684\end{tabular}
1685\\
1686
1687
1688\Option{Log2ParallelMergeLevel} &
1689%\ShortOption{\None} &
1690\Default{2} &
1691Defines the PPS-derived Log2ParMrgLevel variable.
1692\\
1693
1694\Option{SignHideFlag (-SBH)} &
1695%\ShortOption{-SBH} &
1696\Default{true} &
1697If enabled specifies that for each 4x4 coefficient group for which the
1698number of coefficients between the first nonzero coefficient and the
1699last nonzero coefficient along the scanning line exceeds 4, the sign bit
1700of the first nonzero coefficient will not be directly transmitted in the
1701bitstream, but may be inferred from the parity of the sum of all nonzero
1702coefficients in the current coefficient group.
1703\\
1704
1705\Option{StrongIntraSmoothing (-sis)} &
1706%\ShortOption{-sis} &
1707\Default{true} &
1708If enabled specifies that for 32x32 intra prediction block, the intra smoothing
1709when applied is either the 1:2:1 smoothing filter or a stronger bi-linear
1710interpolation filter.  Key reference sample values are tested and if the criteria
1711is satisfied, the stronger intra smoothing filter is applied.
1712If disabled, the intra smoothing filter when applied is the 1:2:1 smoothing filter.
1713\\
1714
1715\Option{TMVPMode} &
1716%\ShortOption{\None} &
1717\Default{1} &
1718Controls the temporal motion vector prediction mode.
1719\par
1720\begin{tabular}{cp{0.45\textwidth}}
1721  0 & Disabled for all slices. \\
1722  1 & Enabled for all slices. \\
1723  2 & Disabled only for the first picture of each GOPSize. \\
1724\end{tabular}
1725\\
1726
1727\Option{TransformSkip} &
1728%\ShortOption{\None} &
1729\Default{false} &
1730Enables or disables transform-skipping mode decision.
1731\\
1732
1733\Option{TransformSkipFast} &
1734%\ShortOption{\None} &
1735\Default{false} &
1736Enables or disables reduced testing of the transform-skipping mode
1737decision for chroma TUs.  When enabled, no RDO search is performed for
1738chroma TUs, instead they are transform-skipped if the four corresponding
1739luma TUs are also skipped.
1740\par
1741This option has no effect if TransformSkip is disabled.
1742\\
1743\end{OptionTableNoShorthand}
1744
1745%%
1746%% Rate control parameters
1747%%
1748
1749\begin{OptionTableNoShorthand}{Rate control parameters}{tab:rate-control}
1750
1751\Option{RateControl} &
1752%\ShortOption{\None} &
1753\Default{false} &
1754Rate control: enables rate control or not.
1755\\
1756
1757\Option{TargetBitrate} &
1758%\ShortOption{\None} &
1759\Default{0} &
1760Rate control: target bitrate, in bps.
1761\\
1762
1763\Option{KeepHierarchicalBit} &
1764%\ShortOption{\None} &
1765\Default{0} &
1766Rate control: 0: equal bit allocation among pictures;
17671: fix ratio hierarchical bit allocation; 2: adaptive hierarchical ratio bit allocation.
1768It is suggested to enable hierarchical bit allocation for hierarchical-B coding structure.
1769\\
1770
1771\Option{LCULevelRateControl} &
1772%\ShortOption{\None} &
1773\Default{true} &
1774Rate control: true: LCU level RC; false: picture level RC.
1775\\
1776
1777\Option{RCLCUSeparateModel} &
1778%\ShortOption{\None} &
1779\Default{true} &
1780Rate control: use LCU level separate R-lambda model or not.
1781When LCULevelRateControl is equal to false, this parameter is meaningless.
1782\\
1783
1784\Option{InitialQP} &
1785%\ShortOption{\None} &
1786\Default{0} &
1787Rate control: initial QP value for the first picture.
17880 to auto determine the initial QP value.
1789\\
1790
1791\Option{RCForceIntraQP} &
1792%\ShortOption{\None} &
1793\Default{false} &
1794Rate control: force intra QP to be equal to initial QP or not.
1795\\
1796
1797\Option{RCCpbSaturation} &
1798%\ShortOption{\None} &
1799\Default{false} &
1800Rate control: enable target bits saturation to avoid CPB overflow and underflow or not.
1801\\
1802
1803\Option{RCCpbSize} &
1804%\ShortOption{\None} &
1805\Default{0} &
1806Rate control: CPB size, in bps.
1807\\
1808
1809\Option{RCInitialCpbFullness} &
1810%\ShortOption{\None} &
1811\Default{0.9} &
1812Rate control: ratio of initial CPB fullness per CPB size. (InitalCpbFullness/CpbSize)
1813RCInitialCpbFullness should be smaller than or equal to 1.
1814\\
1815\end{OptionTableNoShorthand}
1816
1817%%
1818%% VUI parameters
1819%%
1820\begin{OptionTableNoShorthand}{VUI parameters}{tab:VUI}
1821\Option{VuiParametersPresent (-vui)} &
1822\Default{false} &
1823Enable generation of vui_parameters().
1824\\
1825\Option{AspectRatioInfoPresent} &
1826\Default{false} &
1827Signals whether aspect_ratio_idc is present.
1828\\
1829\Option{AspectRatioIdc} &
1830\Default{0} &
1831aspect_ratio_idc
1832\\
1833\Option{SarWidth} &
1834\Default{0} &
1835Specifies the horizontal size of the sample aspect ratio.
1836\\
1837\Option{SarHeight} &
1838\Default{0} &
1839Specifies the vertical size of the sample aspect ratio.
1840\\
1841\Option{OverscanInfoPresent} &
1842\Default{false} &
1843Signals whether overscan_info_present_flag is present.
1844\\
1845\Option{OverscanAppropriate} &
1846\Default{false} &
1847Indicates whether cropped decoded pictures are suitable for display using overscan.
1848\par
1849\begin{tabular}{cp{0.45\textwidth}}
1850  0 & Indicates that the decoded pictures should not be displayed using overscan. \\
1851  1 & Indicates that the decoded pictures may be displayed using overscan. \\
1852\end{tabular}
1853\\
1854\Option{VideoSignalTypePresent} &
1855\Default{false} &
1856Signals whether video_format, video_full_range_flag, and colour_description_present_flag are present.
1857\\
1858\Option{VideoFormat} &
1859\Default{5} &
1860Indicates representation of pictures.
1861\\
1862\Option{VideoFullRange} &
1863\Default{false} &
1864Indicates the black level and range of luma and chroma signals.
1865\par
1866\begin{tabular}{cp{0.45\textwidth}}
1867  0 & Indicates that the luma and chroma signals are to be scaled prior to display. \\
1868  1 & Indicates that the luma and chroma signals are not to be scaled prior to display. \\
1869\end{tabular}
1870\\
1871\Option{ColourDescriptionPresent} &
1872\Default{false} &
1873Signals whether colour_primaries, transfer_characteristics and matrix_coefficients are present.
1874\\
1875\Option{ColourPrimaries} &
1876\Default{2} &
1877Indicates chromaticity coordinates of the source primaries.
1878\\
1879\Option{TransferCharateristics} &
1880\Default{2} &
1881Indicates the opto-electronic transfer characteristics of the source.
1882\\
1883\Option{MatrixCoefficients} &
1884\Default{2} &
1885Describes the matrix coefficients used in deriving luma and chroma from RGB primaries.
1886\\
1887\Option{ChromaLocInfoPresent} &
1888\Default{false} &
1889Signals whether chroma_sample_loc_type_top_field and chroma_sample_loc_type_bottom_field are present.
1890\\
1891\Option{ChromaSampleLocTypeTopField} &
1892\Default{0} &
1893Specifies the location of chroma samples for top field.
1894\\
1895\Option{ChromaSampleLocTypeBottomField} &
1896\Default{0} &
1897Specifies the location of chroma samples for bottom field.
1898\\
1899\Option{NeutralChromaIndication} &
1900\Default{false} &
1901Indicates that the value of all decoded chroma samples is equal to 1<<(BitDepthCr-1).
1902\\
1903
1904\Option{DefaultDisplayWindowFlag} &
1905\Default{flag} &
1906Indicates the presence of the Default Window parameters.
1907\par
1908\begin{tabular}{cp{0.45\textwidth}}
1909false & Disabled \\
1910true & Enabled \\
1911\end{tabular}
1912\\
1913
1914\Option{DefDispWinLeftOffset}%
1915\Option{DefDispWinRightOffset}%
1916\Option{DefDispWinTopOffset}%
1917\Option{DefDispWinBottomOffset} &
1918\Default{0} &
1919Specifies the horizontal and vertical offset to be applied to the
1920input video from the conformance window in luma samples.
1921Must be a multiple of the chroma resolution (e.g. a multiple of two for 4:2:0).
1922\\
1923
1924\Option{FrameFieldInfoPresentFlag} &
1925\Default{false} &
1926Specificies the value of the VUI syntax element `frame_field_info_present_flag', which indicates that pic_struct and field coding related values are present in picture timing SEI messages.
1927\\
1928
1929\Option{PocProportionalToTimingFlag} &
1930\Default{false} &
1931Specificies the value of the VUI syntax element `vui_poc_proportional_to_timing_flag', which indicates that the POC value is proportional to the output time with respect to the first picture in the CVS.
1932\\
1933
1934\Option{NumTicksPocDiffOneMinus} &
1935\Default{0} &
1936Specificies the value of the VUI syntax element `vui_num_ticks_poc_diff_one_minus1', which specifies the number of clock ticks corresponding to a difference of picture order count values equal to 1, and is used only when PocProportionalToTimingFlag is true.
1937\\
1938
1939\Option{BitstreamRestriction} &
1940\Default{false} &
1941Signals whether bitstream restriction parameters are present.
1942\\
1943\Option{TilesFixedStructure} &
1944\Default{false} &
1945Indicates that each active picture parameter set has the same values of the syntax elements related to tiles.
1946\\
1947\Option{MotionVectorsOverPicBoundaries} &
1948\Default{false} &
1949Indicates that no samples outside the picture boundaries are used for inter prediction.
1950\\
1951\Option{MaxBytesPerPicDenom} &
1952\Default{2} &
1953Indicates a number of bytes not exceeded by the sum of the sizes of the VCL NAL units associated with any coded picture.
1954\\
1955\Option{MaxBitsPerMinCuDenom} &
1956\Default{1} &
1957Indicates an upper bound for the number of bits of coding_unit() data.
1958\\
1959\Option{Log2MaxMvLengthHorizontal} &
1960\Default{15} &
1961Indicate the maximum absolute value of a decoded horizontal MV component in quarter-pel luma units.
1962\\
1963\Option{Log2MaxMvLengthVertical} &
1964\Default{15} &
1965Indicate the maximum absolute value of a decoded vertical MV component in quarter-pel luma units.
1966\\
1967\end{OptionTableNoShorthand}
1968
1969
1970\begin{OptionTableNoShorthand}{Range Extensions (Version 2) tool parameters}{tab:rext-tools}
1971
1972\Option{CostMode} &
1973\Default{lossy} &
1974Specifies the cost mode to use.
1975\par
1976\begin{tabular}{lp{0.3\textwidth}}
1977  lossy                   & $cost=distortion+\lambda \times bits$ \\
1978  sequence_level_lossless & $cost=distortion / \lambda + bits$. \\
1979  lossless                & As with sequence_level_lossless, but QP is also set to 0 (this will be deprecated in the future) \\
1980  mixed_lossless_lossy    & As with sequence_level_lossless, but QP'=4 is used for pre-estimates of transquant-bypass blocks \\
1981\end{tabular}
1982\\
1983
1984\Option{ExtendedPrecision} &
1985\Default{false} &
1986Specifies the use of extended_precision_processing flag. Note that unless the HIGH_BIT_DEPTH_SUPPORT macro in TypeDef.h is enabled, all internal bit depths must be 8 when the ExtendedPrecision setting is enabled.
1987This setting is only valid for the 16-bit RExt profiles.
1988\\
1989
1990\Option{HighPrecisionPredictionWeighting} &
1991\Default{false} &
1992Specifies the value of high_precision_prediction_weighting_flag. This setting is only valid for the 16-bit or 4:4:4 RExt profiles.
1993\\
1994
1995\Option{CrossComponentPrediction} &
1996\Default{false} &
1997When true, specifies the use of the cross component prediction tool (4:4:4 processing only). Version 1 and some Version 2 (RExt) profiles require this to be false.
1998\\
1999
2000\Option{ReconBasedCrossCPredictionEstimate} &
2001\Default{false} &
2002If true, then when determining the alpha value for cross-component prediction, use the reconstructed residual rather than the pre-transform encoder-side residual
2003\\
2004
2005\Option{SaoLumaOffsetBitShift}
2006\Option{SaoChromaOffsetBitShift}&
2007\Default{0}
2008\Default{0} &
2009Specifies the shift to apply to the SAO parameters. If negative, an estimate will be calculated based upon the initial QP. Version 1 and some Version 2 (RExt) profiles require this to be 0.
2010\\
2011
2012\Option{TransformSkipLog2MaxSize} &
2013\Default{2} &
2014Specifies the maximum TU size for which transform-skip can be used; the minimum value is 2. Version 1 and some Version 2 (RExt) profiles require this to be 2.
2015\\
2016
2017\Option{ImplicitResidualDPCM} &
2018\Default{false} &
2019When true, specifies the use of the implicitly signalled residual RDPCM tool (for intra). Version 1 and some Version 2 (RExt) profiles require this to be false.
2020\\
2021
2022\Option{ExplicitResidualDPCM} &
2023\Default{false} &
2024When true, specifies the use of the explicitly signalled residual RDPCM tool (for intra-block-copy and inter). Version 1 and some Version 2 (RExt) profiles require this to be false.
2025\\
2026
2027\Option{ResidualRotation} &
2028\Default{false} &
2029When true, specifies the use of the residual rotation tool. Version 1 and some Version 2 (RExt) profiles require this to be false.
2030\\
2031
2032\Option{SingleSignificanceMapContext} &
2033\Default{false} &
2034When true, specifies the use of a single significance map context for transform-skipped and transquant-bypassed TUs. Version 1 and some Version 2 (RExt) profiles require this to be false.
2035\\
2036
2037\Option{GolombRiceParameterAdaptation} &
2038\Default{false} &
2039When true, enable the adaptation of the Golomb-Rice parameter over the course of each slice. Version 1 and some Version 2 (RExt) profiles require this to be false.
2040\\
2041
2042\Option{AlignCABACBeforeBypass} &
2043\Default{false} &
2044When true, align the CABAC engine to a defined fraction of a bit prior to coding bypass data (including sign bits) when coeff_abs_level_remaining syntax elements are present in the group.
2045This must always be true for the high-throughput-RExt profile, and false otherwise.
2046\\
2047
2048\Option{IntraReferenceSmoothing} &
2049\Default{true} &
2050When true, enable intra reference smoothing, otherwise disable it. Version 1 and some Version 2 (RExt) profiles require this to be true.
2051\\
2052
2053\end{OptionTableNoShorthand}
2054
2055\subsection{Encoder SEI parameters}
2056The table below lists the SEI messages defined for Version 1 and Range-Extensions, and if available, the respective table that lists the controls within the HM Encoder to include the messages within the bit stream.
2057
2058\begin{SEIListTable}{List of Version 1 and RExt SEI messages}
2059    0 & Buffering period                         & Table \ref{tab:sei-buffering-period} \\
2060    1 & Picture timing                           & Table \ref{tab:sei-picture-timing} \\
2061    2 & Pan-scan rectangle                       & (Not handled)\\
2062    3 & Filler payload                           & (Not handled)\\
2063    4 & User data registered by Rec. ITU-T T.35  & (Not handled)\\
2064    5 & User data unregistered                   & Decoded only\\
2065    6 & Recovery point                           & Table \ref{tab:sei-recovery-point} \\
2066    9 & Scene information                        & (Not handled)\\
2067   15 & Picture snapshot                         & (Not handled)\\
2068   16 & Progressive refinement segment start     & (Not handled)\\
2069   17 & Progressive refinement segment end       & (Not handled)\\
2070   19 & Film grain characteristics               & (Not handled)\\
2071   22 & Post-filter hint                         & (Not handled)\\
2072   23 & Tone mapping information                 & Table \ref{tab:sei-tone-mapping-info} \\
2073   45 & Frame packing arrangement                & Table \ref{tab:sei-frame-packing-arrangement} \\
2074   47 & Display orientation                      & Table \ref{tab:sei-display-orientation} \\
2075  128 & Structure of pictures information        & Table \ref{tab:sei-sop-info} \\
2076  129 & Active parameter sets                    & Table \ref{tab:sei-active-parameter-sets} \\
2077  130 & Decoding unit information                & Table \ref{tab:sei-decoding-unit-info} \\
2078  131 & Temporal sub-layer zero index            & Table \ref{tab:sei-temporal-level-0} \\
2079  132 & Decoded picture hash                     & Table \ref{tab:sei-decoded-picture-hash} \\
2080  133 & Scalable nesting                         & Table \ref{tab:sei-scalable-nesting} \\
2081  134 & Region refresh information               & Table \ref{tab:sei-region-refresh-info} \\
2082  135 & No display                               & Table \ref{tab:sei-no-display} \\
2083  136 & Time code                                & Table \ref{tab:sei-time-code} \\
2084  137 & Mastering display colour volume          & Table \ref{tab:sei-mastering-display-colour-volume} \\
2085  138 & Segmented rectangular frame packing arrangement & Table \ref{tab:sei-seg-rect-fpa}\\
2086  139 & Temporal motion-constrained tile sets    & Table \ref{tab:sei-tmcts} \\
2087  140 & Chroma resampling filter hint            & Table \ref{tab:chroma-resampling-filter-hint} \\
2088  141 & Knee function information                & Table \ref{tab:sei-knee-function} \\
2089  142 & Colour remapping information             & Table \ref{tab:sei-colour-remapping}\\
2090  143 & Deinterlaced field identification        & (Not handled)\\
2091\end{SEIListTable}
2092%%
2093%% SEI messages
2094%%
2095
2096 
2097
2098\begin{OptionTableNoShorthand}{Buffering period SEI message encoder parameters}{tab:sei-buffering-period}
2099\Option{SEIBufferingPeriod} &
2100\Default{0} &
2101Enables or disables the insertion of the Buffering period
2102SEI messages. This option has no effect if VuiParametersPresent is disabled.
2103SEIBufferingPeriod requires SEIActiveParameterSets to be enabled.
2104\\
2105\end{OptionTableNoShorthand}
2106
2107
2108
2109\begin{OptionTableNoShorthand}{Picture timing SEI message encoder parameters}{tab:sei-picture-timing}
2110\Option{SEIPictureTiming} &
2111\Default{0} &
2112Enables or disables the insertion of the Picture timing
2113SEI messages. This option has no effect if VuiParametersPresent is disabled.
2114\\
2115\end{OptionTableNoShorthand}
2116
2117
2118
2119\begin{OptionTableNoShorthand}{Recovery point SEI message encoder parameters}{tab:sei-recovery-point}
2120\Option{SEIRecoveryPoint} &
2121\Default{0} &
2122Enables or disables the insertion of the Recovery point
2123SEI messages.
2124\\
2125\end{OptionTableNoShorthand}
2126
2127
2128
2129\begin{OptionTableNoShorthand}{Tone mapping information SEI message encoder parameters}{tab:sei-tone-mapping-info}
2130\Option{SEIToneMappingInfo} &
2131\Default{0} &
2132Enables or disables the insertion of the Tone Mapping SEI message.
2133\\
2134\Option{SEIToneMapId} &
2135\Default{0} &
2136Specifies Id of Tone Mapping SEI message for a given session.
2137\\
2138\Option{SEIToneMapCancelFlag} &
2139\Default{false} &
2140Indicates that Tone Mapping SEI message cancels the persistance or follows.
2141\\
2142\Option{SEIToneMapPersistenceFlag} &
2143\Default{true} &
2144Specifies the persistence of the Tone Mapping SEI message.
2145\\
2146\Option{SEIToneMapCodedDataBitDepth} &
2147\Default{8} &
2148Specifies Coded Data BitDepth of Tone Mapping SEI messages.
2149\\
2150\Option{SEIToneMapTargetBitDepth} &
2151\Default{8} &
2152Specifies Output BitDepth of Tome mapping function.
2153\\
2154\Option{SEIToneMapModelId} &
2155\Default{0} &
2156Specifies Model utilized for mapping coded data into
2157target_bit_depth range.
2158\par
2159\begin{tabular}{cp{0.35\textwidth}}
2160  0 & linear mapping with clipping \\
2161  1 & sigmoidal mapping \\
2162  2 & user-defined table mapping \\
2163  3 & piece-wise linear mapping \\
2164  4 & luminance dynamic range mapping \\
2165\end{tabular}
2166\\
2167\Option{SEIToneMapMinValue} &
2168\Default{0} &
2169Specifies the minimum value in mode 0.
2170\\
2171\Option{SEIToneMapMaxValue} &
2172\Default{1023} &
2173Specifies the maxmum value in mode 0.
2174\\
2175\Option{SEIToneMapSigmoidMidpoint} &
2176\Default{512} &
2177Specifies the centre point in mode 1.
2178\\
2179\Option{SEIToneMapSigmoidWidth} &
2180\Default{960} &
2181Specifies the distance between 5% and 95% values of
2182the target_bit_depth in mode 1.
2183\\
2184\Option{SEIToneMapStartOfCodedInterval} &
2185\Default{\None} &
2186Array of user-defined mapping table.
2187Default table can be set to the following:
2188\par
2189\begin{tabular}{cp{0.35\textwidth}}
21900 12 24 36 48 60 72 84 96 108 120 132 144 156 168 180
2191\\
2192192 192 196 204 208 216 220 228 232 240 248 252 260 264
2193\\
2194272 276 284 292 292 296 300 304 308 312 320 324 328 332
2195\\
2196336 344 348 352 356 360 368 372 376 380 384 388 396 400
2197\\
2198404 408 412 420 424 428 432 436 444 444 444 448 452 456
2199\\
2200460 464 468 472 476 476 480 484 488 492 496 500 504 508
2201\\
2202508 512 516 520 524 528 532 536 540 540 544 548 552 556
2203\\
2204560 564 568 572 572 576 580 584 588 592 596 600 604 604
2205\\
2206608 612 616 620 624 628 632 636 636 640 644 648 652 656
2207\\
2208660 664 668 672 672 672 676 680 680 684 688 692 692 696
2209\\
2210700 704 704 708 712 716 716 720 724 724 728 732 736 736
2211\\
2212740 744 748 748 752 756 760 760 764 768 768 772 776 780
2213\\
2214780 784 788 792 792 796 800 804 804 808 812 812 816 820
2215\\
2216824 824 828 832 836 836 840 844 848 848 852 856 860 860
2217\\
2218860 864 864 868 872 872 876 880 880 884 884 888 892 892
2219\\
2220896 900 900 904 908 908 912 912 916 920 920 924 928 928
2221\\
2222932 936 936 940 940 944 948 948 952 956 956 960 964 964
2223\\
2224968 968 972 976 976 980 984 984 988 992 992 996 996 1000
2225\\
22261004 1004 1008 1012 1012 1016 1020 1024
2227\\
2228\end{tabular}
2229\\
2230\Option{SEIToneMapNumPivots} &
2231\Default{0} &
2232Specifies the number of pivot points in mode 3.
2233\\
2234\Option{SEIToneMapCodedPivotValue} &
2235\Default{\None} &
2236Array of coded pivot point in mode 3.
2237A suggested table is:
2238\par
2239\begin{tabular}{cp{0.45\textwidth}}
224064 128 256 512 768
2241\end{tabular}
2242\\
2243\Option{SEIToneMapTargetPivotValue} &
2244\Default{\None} &
2245Array of target pivot point in mode 3.
2246A suggested table is:
2247\par
2248\begin{tabular}{cp{0.45\textwidth}}
224948 73 111 168 215
2250\end{tabular}
2251\\
2252\Option{SEIToneMap...} \Option{CameraIsoSpeedIdc} &
2253\Default{0} &
2254Indicates the camera ISO speed for daylight illumination.
2255\\
2256\Option{SEIToneMap...} \Option{CameraIsoSpeedValue} &
2257\Default{400} &
2258Specifies the camera ISO speed for daylight illumination of Extended_ISO.
2259\\
2260\Option{SEIToneMap...} \Option{ExposureIndexIdc} &
2261\Default{0} &
2262Indicates the exposure index setting of the camera.
2263\\
2264\Option{SEIToneMap...} \Option{ExposureIndexValue} &
2265\Default{400} &
2266Specifies the exposure index setting of the cameran of Extended_ISO.
2267\\
2268\Option{SEIToneMapExposure...} \Option{CompensationValueSignFlag} &
2269\Default{0} &
2270Specifies the sign of ExposureCompensationValue.
2271\\
2272\Option{SEIToneMapExposure...} \Option{CompensationValueNumerator} &
2273\Default{0} &
2274Specifies the numerator of ExposureCompensationValue.
2275\\
2276\Option{SEIToneMapExposure...} \Option{CompensationValueDenomIdc} &
2277\Default{2} &
2278Specifies the denominator of ExposureCompensationValue.
2279\\
2280\Option{SEIToneMapRef...} \Option{ScreenLuminanceWhite} &
2281\Default{350} &
2282Specifies reference screen brightness setting in units of candela per square metre.
2283\\
2284\Option{SEIToneMapExtended...} \Option{RangeWhiteLevel} &
2285\Default{800} &
2286Indicates the luminance dynamic range.
2287\\
2288\Option{SEIToneMapNominal...} \Option{BlackLevelLumaCodeValue} &
2289\Default{16} &
2290Specifies luma sample value of the nominal black level assigned decoded pictures.
2291\\
2292\Option{SEIToneMapNominal...} \Option{WhiteLevelLumaCodeValue} &
2293\Default{235} &
2294Specifies luma sample value of the nominal white level assigned decoded pictures.
2295\\
2296\Option{SEIToneMapExtended...} \Option{WhiteLevelLumaCodeValue} &
2297\Default{300} &
2298Specifies luma sample value of the extended dynamic range assigned decoded pictures.
2299\\
2300\end{OptionTableNoShorthand}
2301
2302
2303
2304\begin{OptionTableNoShorthand}{Frame packing arrangement SEI message encoder parameters}{tab:sei-frame-packing-arrangement}
2305\Option{SEIFramePacking} &
2306\Default{0} &
2307Enables or disables the insertion of the Frame packing arrangement SEI messages.
2308\\
2309\Option{SEIFramePackingType} &
2310\Default{0} &
2311Indicates the arrangement type in the Frame packing arrangement SEI message.
2312This option has no effect if SEIFramePacking is disabled.
2313\par
2314\begin{tabular}{cp{0.35\textwidth}}
2315  3 & Side by Side \\
2316  4 & Top Bottom \\
2317  5 & Frame Alternate \\
2318\end{tabular}
2319\\
2320\Option{SEIFramePackingInterpretation} &
2321\Default{0} &
2322Indicates the constituent frames relationship in the Frame packing arrangement SEI message.
2323This option has no effect if SEIFramePacking is disabled.
2324\par
2325\begin{tabular}{cp{0.35\textwidth}}
2326  0 & Unspecified \\
2327  1 & Frame 0 is associated with the left view of a stereo pair \\
2328  2 & Frame 0 is associated with the right view of a stereo pair \\
2329\end{tabular}
2330\\
2331\Option{SEIFramePackingQuincunx} &
2332\Default{0} &
2333Enables or disables the quincunx_sampling signalling in the
2334Frame packing arrangement SEI messages. This option has no
2335effect if SEIFramePacking is disabled.
2336\\
2337\Option{SEIFramePackingId} &
2338\Default{0} &
2339Indicates the session number in the Frame packing arrangement
2340SEI messages. This option has no effect if SEIFramePacking is
2341disabled.
2342\\
2343\end{OptionTableNoShorthand}
2344
2345
2346
2347\begin{OptionTableNoShorthand}{Display orientation SEI message encoder parameters}{tab:sei-display-orientation}
2348\Option{SEIDisplayOrientation} &
2349\Default{0} &
2350Enables or disables the insertion of the Display orientation
2351SEI messages.
2352\par
2353\begin{tabular}{cp{0.20\textwidth}}
2354  0 & Disabled \\
2355  N: $0 < N < (2^{16} - 1)$ & Enable display orientation SEI message with
2356  \mbox{anticlockwise_rotation = N} 
2357  and \mbox{display_orientation_repetition_period = 1} \\
2358\end{tabular}
2359\\
2360\end{OptionTableNoShorthand}
2361
2362
2363
2364\begin{OptionTableNoShorthand}{Structure of pictures information SEI message encoder parameters}{tab:sei-sop-info}
2365\Option{SEISOPDescription} &
2366\Default{0} &
2367Enables or disables the insertion of the Structure of pictures information SEI messages.
2368\\
2369\end{OptionTableNoShorthand}
2370
2371
2372
2373\begin{OptionTableNoShorthand}{Active parameter sets SEI message encoder parameters}{tab:sei-active-parameter-sets}
2374\Option{SEIActiveParameterSets} &
2375\Default{0} &
2376Enables or disables the insertion of the Active parameter sets
2377SEI messages.
2378\\
2379\end{OptionTableNoShorthand}
2380
2381
2382
2383\begin{OptionTableNoShorthand}{Decoding unit information SEI message encoder parameters}{tab:sei-decoding-unit-info}
2384\Option{SEIDecodingUnitInfo} &
2385\Default{0} &
2386Enables or disables the insertion of the Decoding unit information
2387SEI messages. This option has no effect if VuiParametersPresent is disabled.
2388\\
2389\end{OptionTableNoShorthand}
2390
2391
2392
2393\begin{OptionTableNoShorthand}{Temporal sub-layer zero index SEI message encoder parameters}{tab:sei-temporal-level-0}
2394\Option{SEITemporalLevel0Index} &
2395\Default{0} &
2396Enables or disables the insertion of the Temporal level zero index
2397SEI messages.
2398\\
2399\end{OptionTableNoShorthand}
2400
2401
2402
2403\begin{OptionTableNoShorthand}{Decoded picture hash SEI message encoder parameters}{tab:sei-decoded-picture-hash}
2404\Option{SEIDecodedPictureHash} &
2405\Default{0} &
2406Enables or disables the calculation and insertion of the Decoded picture hash
2407SEI messages.
2408\par
2409\begin{tabular}{cp{0.35\textwidth}}
2410  0 & Disabled \\
2411  1 & Transmits MD5 in SEI message and writes the value to the encoder
2412      log \\
2413  2 & Transmits CRC in SEI message and writes the value to the encoder
2414      log \\
2415  3 & Transmits checksum in SEI message and writes the value to the encoder
2416      log \\
2417\end{tabular}
2418\\
2419\end{OptionTableNoShorthand}
2420
2421
2422
2423\begin{OptionTableNoShorthand}{Scalable nesting SEI message encoder parameters}{tab:sei-scalable-nesting}
2424\Option{SEIScalableNesting} &
2425\Default{0} &
2426Enables or disables the use of the scalable nesting SEI messages.
2427\\
2428\end{OptionTableNoShorthand}
2429
2430
2431       
2432\begin{OptionTableNoShorthand}{Region refresh information SEI message encoder parameters}{tab:sei-region-refresh-info}
2433\Option{SEIGradualDecodingRefreshInfo} &
2434\Default{0} &
2435Enables or disables the insertion of the Gradual decoding refresh information
2436SEI messages.
2437\\
2438\end{OptionTableNoShorthand}
2439
2440
2441
2442\begin{OptionTableNoShorthand}{No display SEI message encoder parameters}{tab:sei-no-display}
2443\Option{SEINoDisplay} &
2444\Default{0} &
2445When non-zero, generate no-display SEI message for temporal layer N or higher.
2446\\
2447\end{OptionTableNoShorthand}
2448
2449
2450       
2451\begin{OptionTableNoShorthand}{Time code SEI message encoder parameters}{tab:sei-time-code}
2452\Option{SEITimeCodeEnabled} &
2453\Default{false} &
2454When true (non-zero), generate Time code SEI messages.
2455\\
2456\Option{SEITimeCodeNumClockTs} &
2457\Default{0} &
2458Number of clock time sets, in the range of 0 to 3 (inclusive).
2459\\
2460\Option{SEITimeCodeTimeStampFlag} &
2461\Default{\None} &
2462Time stamp flag associated to each time set (comma or space separated list of entries).
2463\\
2464\Option{SEITimeCodeFieldBasedFlag} &
2465\Default{\None} &
2466Field based flag associated to each time set (comma or space separated list of entries).
2467\\
2468\Option{SEITimeCodeCountingType} &
2469\Default{\None} &
2470Counting type associated to each time set (comma or space separated list of entries).
2471\\
2472\Option{SEITimeCodeFullTsFlag} &
2473\Default{\None} &
2474Full time stamp flag associated to each time set (comma or space separated list of entries).
2475\\
2476\Option{SEITimeCodeDiscontinuityFlag} &
2477\Default{\None} &
2478Discontinuity flag associated to each time set (comma or space separated list of entries).
2479\\
2480\Option{SEITimeCodeCntDroppedFlag} &
2481\Default{\None} &
2482Counter dropped flag associated to each time set (comma or space separated list of entries).
2483\\
2484\Option{SEITimeCodeNumFrames} &
2485\Default{\None} &
2486Number of frames associated to each time set (comma or space separated list of entries).
2487\\
2488\Option{SEITimeCodeSecondsFlag} &
2489\Default{\None} &
2490Flag to signal seconds value presence in each time set (comma or space separated list of entries).
2491\\
2492\Option{SEITimeCodeMinutesFlag} &
2493\Default{\None} &
2494Flag to signal minutes value presence in each time set (comma or space separated list of entries).
2495\\
2496\Option{SEITimeCodeHoursFlag} &
2497\Default{\None} &
2498Flag to signal hours value presence in each time set (comma or space separated list of entries).
2499\\
2500\Option{SEITimeCodeSecondsValue} &
2501\Default{\None} &
2502Seconds value for each time set (comma or space separated list of entries).
2503\\
2504\Option{SEITimeCodeMinutesValue} &
2505\Default{\None} &
2506Minutes value for each time set (comma or space separated list of entries).
2507\\
2508\Option{SEITimeCodeHoursValue} &
2509\Default{\None} &
2510Hours value for each time set (comma or space separated list of entries).
2511\\
2512\Option{SEITimeCodeOffsetLength} &
2513\Default{\None} &
2514Time offset length associated to each time set (comma or space separated list of entries).
2515\\
2516\Option{SEITimeCodeTimeOffset} &
2517\Default{\None} &
2518Time offset associated to each time set (comma or space separated list of entries).
2519\\
2520\end{OptionTableNoShorthand}
2521
2522
2523
2524\begin{OptionTableNoShorthand}{Mastering display colour volume SEI message encoder parameters}{tab:sei-mastering-display-colour-volume}
2525\Option{SEIMasteringDisplayColourVolume} &
2526\Default{false} &
2527When true (non-zero), generate Mastering display colour volume SEI message.
2528\\
2529\Option{SEIMasteringDisplayMaxLuminance} &
2530\Default{10000} &
2531Specifies the mastering display maximum luminance value in units of 1/10000 candela per square metre.
2532\\
2533\Option{SEIMasteringDisplayMinLuminance} &
2534\Default{0} &
2535Specifies the mastering display minimum luminance value in units of 1/10000 candela per square metre.
2536\\
2537\Option{SEIMasteringDisplayPrimaries} &
2538\Default{0,50000, 0,0, 50000,0} &
2539Mastering display primaries for all three colour planes in CIE xy coordinates in increments of 1/50000 (results in the ranges 0 to 50000 inclusive).
2540\\
2541\Option{SEIMasteringDisplayWhitePoint} &
2542\Default{16667, 16667} &
2543Mastering display white point CIE xy coordinates in normalized increments of 1/50000 (e.g. 0.333 = 16667).
2544\\
2545\end{OptionTableNoShorthand}
2546
2547
2548
2549\begin{OptionTableNoShorthand}{Segmented rectangular frame packing arrangement SEI message encoder parameters}{tab:sei-seg-rect-fpa}
2550\Option{SEISegmentedRectFramePacking} &
2551\Default{0} &
2552Controls generation of segmented rectangular frame packing SEI messages.
2553\\
2554\Option{SEISegmentedRectFramePackingCancel} &
2555\Default{false} &
2556If true, cancels the persistence of any previous SRFPA SEI message.
2557\\
2558\Option{SEISegmentedRectFramePackingType} &
2559\Default{0} &
2560Specifies the arrangement of the frames in the reconstructed picture.
2561\\
2562\Option{SEISegmentedRectFramePackingPersistence} &
2563\Default{false} &
2564If false the SEI applies to the current frame only.
2565\\
2566\end{OptionTableNoShorthand}
2567
2568
2569
2570\begin{OptionTableNoShorthand}{Temporal motion-constrained tile sets SEI message encoder parameters}{tab:sei-tmcts}
2571\Option{SEITempMotionConstrainedTileSets} &
2572\Default{false} &
2573When true (non-zero), generates example temporal motion constrained tile sets SEI messages.
2574\\
2575\end{OptionTableNoShorthand}
2576
2577
2578
2579\begin{OptionTableNoShorthand}{Chroma resampling filter hint SEI message encoder parameters}{tab:chroma-resampling-filter-hint}
2580\Option{SEIChromaResamplingFilterHint} &
2581\Default{false} &
2582When true (non-zero), generates example chroma sampling filter hint SEI messages.
2583\\
2584\Option{SEIChromaResamplingHorizontalFilterType} &
2585\Default{2} &
2586Defines the index of the chroma sampling horizontal filter:
2587\par
2588\begin{tabular}{cp{0.35\textwidth}}
2589  0 & Unspecified \\
2590  1 & Filters signalled within the SEI message \\
2591  2 & Filters as described by SMPTE RP 2050-1:2012\\
2592\end{tabular}
2593\\
2594\Option{SEIChromaResamplingVerticalFilterType} &
2595\Default{2} &
2596Defines the index of the chroma sampling vertical filter:
2597\par
2598\begin{tabular}{cp{0.35\textwidth}}
2599  0 & Unspecified \\
2600  1 & Filters signalled within the SEI message \\
2601  2 & Filters as described in the 5/3 filter description of ITU-T Rec. T.800 | ISO/IEC 15444-1\\
2602\end{tabular}
2603\\
2604\end{OptionTableNoShorthand}
2605
2606
2607
2608\begin{OptionTableNoShorthand}{Knee function SEI message encoder parameters}{tab:sei-knee-function}
2609\Option{SEIKneeFunctionInfo} &
2610\Default{false} &
2611Enables (true) or disables (false) the insertion of the Knee function SEI messages.
2612\\
2613\Option{SEIKneeFunctionId} &
2614\Default{0} &
2615Specifies Id of Knee function SEI message for a given session.
2616\\
2617\Option{SEIKneeFunctionCancelFlag} &
2618\Default{false} &
2619Indicates that Knee function SEI message cancels the persistance (true) or follows (false).
2620\\
2621\Option{SEIKneeFunctionPersistenceFlag} &
2622\Default{true} &
2623Specifies the persistence of the Knee function SEI message.
2624\\
2625\Option{SEIKneeFunctionInputDrange} &
2626\Default{1000} &
2627Specifies the peak luminance level for the input picture of Knee function SEI messages.
2628\\
2629\Option{SEIKneeFunctionInputDispLuminance} &
2630\Default{100} &
2631Specifies the expected display brightness for the input picture of Knee function SEI messages.
2632\\
2633\Option{SEIKneeFunctionOutputDrange} &
2634\Default{4000} &
2635Specifies the peak luminance level for the output picture of Knee function SEI messages.
2636\\
2637\Option{SEIKneeFunctionOutputDispLuminance} &
2638\Default{800} &
2639Specifies the expected display brightness for the output picture of Knee function SEI messages.
2640\\
2641\Option{SEIKneeFunctionNumKneePointsMinus1} &
2642\Default{2} &
2643Specifies the number of knee points - 1.
2644\\
2645\Option{SEIKneeFunctionInputKneePointValue} &
2646\Default{} &
2647Array of input knee point. Default table can be set to the following:
2648\par
2649\begin{tabular}{cp{0.45\textwidth}}
2650600 800 900
2651\end{tabular}
2652\\
2653\Option{SEIKneeFunctionOutputKneePointValue} &
2654\Default{} &
2655Array of output knee point. Default table can be set to the following:
2656\par
2657\begin{tabular}{cp{0.45\textwidth}}
2658100 250 450
2659\end{tabular}
2660\\
2661\end{OptionTableNoShorthand}
2662
2663
2664\begin{OptionTableNoShorthand}{Colour remapping SEI message encoder parameters}{tab:sei-colour-remapping}
2665\Option{SEIColourRemappingInfoFileRoot (-cri)} &
2666\Default{\NotSet} &
2667Specifies the prefix of input Colour Remapping Information file. Prefix is completed by ``_x.txt'' where x is the  POC number.
2668The contents of the file are a list of the SEI message's syntax element names (in decoding order) immediately followed by a `:' and then the associated value.
2669An example file can be found in cfg/misc/example_colour_remapping_sei_encoder_0.txt.
2670\\
2671\end{OptionTableNoShorthand}
2672
2673
2674
2675%\Option{SEITimeCode} &
2676%\Default{false} &
2677%When true, generate time code SEI messages.
2678%\\
2679
2680%%
2681%%
2682%%
2683\subsection{Hardcoded encoder parameters}
2684\begin{MacroTable}{CommonDef.h constants}
2685ADAPT_SR_SCALE &
26861 &
2687Defines a scaling factor used to derive the motion search range is
2688adaptive (see ASR configuration parameter). Default value is 1.
2689\\
2690
2691MAX_GOP &
269264 &
2693maximum size of value of hierarchical GOP.
2694\\
2695
2696MAX_NUM_REF &
26974 &
2698maximum number of multiple reference frames
2699\\
2700
2701MAX_NUM_REF_LC &
27028 &
2703maximum number of combined reference frames
2704\\
2705
2706AMVP_MAX_NUM_CANDS &
27072 &
2708maximum number of final candidates
2709\\
2710
2711AMVP_MAX_NUM_CANDS_MEM &
27123 &
2713\\
2714
2715MRG_MAX_NUM_CANDS &
27165 &
2717\\
2718
2719DYN_REF_FREE &
2720off &
2721dynamic free of reference memories
2722\\
2723
2724MAX_TLAYER &
27258 &
2726maximum number of temporal layers
2727\\
2728
2729ADAPT_SR_SCALE &
2730on &
2731division factor for adaptive search range
2732\\
2733
2734EARLY_SKIP_THRES &
27351.5 &
2736early skip if RD < EARLY_SKIP_THRES*avg[BestSkipRD]
2737\\
2738
2739MAX_NUM_REF_PICS &
274016 &
2741\\
2742
2743MAX_CHROMA_FORMAT_IDC &
27443 &
2745\\
2746\end{MacroTable}
2747
2748\subsubsection*{TypeDef.h}
2749Numerous constants that guard individual adoptions are defined within
2750\url{source/Lib/TLibCommon/TypeDef.h}.
2751
2752
2753%%
2754%%
2755%%
2756\clearpage
2757\section{Using the decoder}
2758\subsection{General}
2759\begin{verbatim}
2760TAppDecoder -b str.bin -o dec.yuv [options]
2761\end{verbatim}
2762
2763\begin{OptionTableNoShorthand}{Decoder options}{tab:decoder-options}
2764\Option{(--help)} &
2765%\ShortOption{\None} &
2766\Default{\None} &
2767Prints usage information.
2768\\
2769
2770\Option{BitStreamFile (-b)} &
2771%\ShortOption{-b} &
2772\Default{\NotSet} &
2773Defines the input bit stream file name.
2774\\
2775
2776\Option{ReconFile (-o)} &
2777%\ShortOption{-o} &
2778\Default{\NotSet} &
2779Defines reconstructed YUV file name. If empty, no file is generated.
2780\\
2781
2782\Option{SkipFrames (-s)} &
2783%\ShortOption{-s} &
2784\Default{0} &
2785Defines the number of pictures in decoding order to skip.
2786\\
2787
2788\Option{MaxTemporalLayer (-t)} &
2789%\ShortOption{-t} &
2790\Default{-1} &
2791Defines the maximum temporal layer to be decoded. If -1, then all layers are decoded.
2792\\
2793
2794\Option{TarDecLayerIdSetFile (-l)} &
2795%\ShortOption{-t} &
2796\Default{\NotSet} &
2797Specifies the targetDecLayerIdSet file name. The file would contain white-space separated LayerId values of the layers that are to be decoded.
2798Omitting the parameter, or using a value of -1 in the file decodes all layers.
2799\\
2800
2801\Option{OutputBitDepth (-d)} &
2802%\ShortOption{-d} &
2803\Default{0 \\ (Native)} &
2804Specifies the luma bit-depth of the reconstructed YUV file (the value 0 indicates
2805that the native bit-depth is used)
2806\\
2807
2808\Option{OutputBitDepthC} &
2809%\ShortOption{\None} &
2810\Default{0 \\ (Native)} &
2811Defines the chroma bit-depth of the reconstructed YUV file (the value 0 indicates
2812that the native bit-depth is used)
2813\\
2814
2815\Option{SEIDecodedPictureHash} &
2816%\ShortOption{\None} &
2817\Default{1} &
2818Enable or disable verification of any Picture hash SEI messages. When
2819this parameter is set to 0, the feature is disabled and all messages are
2820ignored. When set to 1 (default), the feature is enabled and the decoder
2821has the following behaviour:
2822\begin{itemize}
2823\item
2824  If Picture hash SEI messages are included in the bit stream, the same type
2825  of hash is calculated for each decoded picture and written to the
2826  log together with an indication whether the calculted value matches
2827  the value in the SEI message.
2828  Decoding will continue even if there is a mismatch.
2829
2830\item
2831  After decoding is complete, if any MD5sum comparison failed, a warning
2832  is printed and the decoder exits with the status EXIT_FAILURE
2833
2834\item
2835  The per-picture MD5 log message has the following formats:
2836  [MD5:d41d8cd98f00b204e9800998ecf8427e,(OK)],
2837  [MD5:d41d8cd98f00b204e9800998ecf8427e,(unk)],
2838  [MD5:d41d8cd98f00b204e9800998ecf8427e,(***ERROR***)] [rxMD5:b9e1...]
2839  where, "(unk)" implies that no MD5 was signalled for this picture,
2840  "(OK)" implies that the decoder agrees with the signalled MD5,
2841  "(***ERROR***)" implies that the decoder disagrees with the signalled
2842  MD5. "[rxMD5:...]" is the signalled MD5 if different.
2843\end{itemize}
2844\\
2845
2846\Option{OutputDecodedSEIMessagesFilename} &
2847%\ShortOption{\None} &
2848\Default{\NotSet} &
2849When a non-empty file name is specified, information regarding any decoded SEI messages will be output to the indicated file. If the file name is '-', then stdout is used instead.
2850\\
2851
2852\Option{SEIColourRemappingInfoFilename} &
2853%\ShortOption{\None} &
2854\Default{\NotSet} &
2855Specifies that the colour remapping SEI message should be applied to the output video, with the output written to this file.
2856If no value is specified, the SEI message is ignored and no mapping is applied.
2857\\
2858
2859\Option{RespectDefDispWindow (-w)} &
2860%\ShortOption{-w} &
2861\Default{0} &
2862Video region to be output by the decoder.
2863\par
2864\begin{tabular}{cp{0.45\textwidth}}
2865  0 & Output content inside the conformance window. \\
2866  1 & Output content inside the default window. \\
2867\end{tabular}
2868\\
2869
2870\Option{OutputColourSpaceConvert} &
2871\Default{\NotSet} &
2872Specifies the colour space conversion to apply to 444 video. Permitted values are:
2873\par
2874\begin{tabular}{lp{0.45\textwidth}}
2875  UNCHANGED   & No colour space conversion is applied \\
2876  YCrCbToYCbCr & Swap the second and third components \\
2877  GBRtoRGB     & Reorder the three components \\
2878\end{tabular}
2879If no value is specified, no colour space conversion is applied. The list may eventually also include RGB to YCbCr or YCgCo conversions.\\
2880\\
2881
2882\Option{SEINoDisplay} &
2883\Default{false} &
2884When true, do not output frames for which there is an SEI NoDisplay message.
2885\\
2886
2887\Option{ClipOutputVideoToRec709Range} &
2888%\ShortOption{\None} &
2889\Default{0} &
2890If 1 then clip output video to the Rec. 709 Range on saving when OutputBitDepth is less than InternalBitDepth.
2891\\
2892
2893\end{OptionTableNoShorthand}
2894
2895
2896\subsection{Using the decoder analyser}
2897If the decoder is compiled with the macro RExt__DECODER_DEBUG_BIT_STATISTICS defined as 1 (either externally, or by editing TypeDef.h), the decoder will gather fractional bit counts associated with the different syntax elements, producing a table of the number of bits per syntax element, and where appropriate, according to block size and colour component/channel.
2898The Linux makefile will compile both the analyser and standard version when the `all' or `everything' target is used (where the latter will also build  high-bit-depth executables).
2899
2900
2901\end{document}
Note: See TracBrowser for help on using the repository browser.