source: 3DVCSoftware/trunk/doc/software-manual.tex @ 1314

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

Merged 14.1-update-dev1@1312.

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