Include a pre-rendered pdf version
[dirac-spec-errata.git] / profilelevel.tex
blob58cf7c7301127d8b1063ce717d84db00fa320b99
1 \label{profilelevel}
3 A Dirac decoder shall support one or more different profiles and levels.
4 Profiles and levels determine which tools, syntax elements and structures
5 shall be supported, and what decoder resources (computational and memory) are required.
7 \subsection{Profiles}
8 \label{profiles}
9 A given profile requires that particular syntax/syntax elements shall
10 be used and that decoder variables or functions shall be set to particular values.
12 Dirac defines four profiles, Main (Long GOP), Main (Intra), Simple and Low Delay,
13 corresponding to different picture types. The Main (Intra), Simple and Low Delay
14 profiles shall correspond to the Main, Simple and Low Delay profiles of VC-2.
16 The profiles shall satisfy the following conditions:
17 \begin{itemize}
18 \item A Low Delay profile Dirac sequence shall set $\Profile$ equal to a value of
19 $0$ in the parse parameters (Section~\ref{parseparameters}) for each sequence header
20 in the sequence.
21 \item A Simple profile sequence shall set $\Profile$ equal to a value of $1$
22 in the parse parameters for each sequence header in the sequence.
23 \item A Main (Intra) profile sequence shall set $\Profile$ equal to a value of $2$
24 in the parse parameters for each sequence header in the sequence.
25 \item A Main (Long GOP) profile sequence shall set $\Profile$ equal to a value of $8$
26 in the parse parameters for each sequence header in the sequence.
27 \end{itemize}
29 Further VC-2 compatible profiles may be added in future revisions of this
30 specification with profile number less than 8; other profiles may be added with
31 profile number greater than 8.
33 A Dirac sequence shall comply with one of the supported profiles.
35 \subsubsection{Low Delay profile}
37 A Low Delay profile sequence shall contain only those data units whose
38 parse codes are listed in Table \ref{table:ldprofile}.
40 \begin{table}[!ht]
41 \centering
42 \begin{tabular}{|c|c|l|c|}
43 \hline
44 \rowcolor[gray]{0.75}
45 \ParseCode & {\bf Bits} & {\bf Description} & \begin{tabular}{c} {\bf Number of}\\ {\bf Reference}\\{\bf Pictures}\end{tabular}\\
46 \hline
47 0x00 & 0000 0000 & Sequence header &--\\
48 \hline
49 0x10 & 0001 0000 & End of Sequence & -- \\
50 \hline
51 0x20 & 0010 0000 & Auxiliary data & -- \\
52 \hline
53 0x30 & 0011 0000 & Padding data & -- \\
54 \hline
55 0xC8 & 1100 1000 & Intra Non Reference Picture & 0\\
56 \hline
57 \end{tabular}
58 \caption{Parse code values for Low Delay profile sequences}\label{table:ldprofile}
59 \end{table}
61 \subsubsection{Simple profile}
63 A Simple profile sequence shall contain only those data units whose
64 parse codes are listed in Table \ref{table:simpleprofile}.
66 \begin{table}[!ht]
67 \centering
68 \begin{tabular}{|c|c|l|c|}
69 \hline
70 \rowcolor[gray]{0.75}
71 \ParseCode & {\bf Bits} & {\bf Description} & \begin{tabular}{c} {\bf Number of}\\ {\bf Reference}\\{\bf Pictures}\end{tabular}\\
72 \hline
73 0x00 & 0000 0000 & Sequence header &--\\
74 \hline
75 0x10 & 0001 0000 & End of Sequence & -- \\
76 \hline
77 0x20 & 0010 0000 & Auxiliary data & -- \\
78 \hline
79 0x30 & 0011 0000 & Padding data & -- \\
80 \hline
81 0x48 & 0100 1000 & Intra Non Reference Picture (no arithmetic coding) & 0\\
82 \hline
83 \end{tabular}
84 \caption{Parse code values for Simple profile sequences}\label{table:simpleprofile}
85 \end{table}
87 \subsubsection{Main (Intra) profile}
89 A Main (Intra) profile sequence shall contain only those data units whose
90 parse codes are listed in Table \ref{table:mainintraprofile}.
92 \begin{table}[!ht]
93 \centering
94 \begin{tabular}{|c|c|l|c|}
95 \hline
96 \rowcolor[gray]{0.75}
97 \ParseCode & {\bf Bits} & {\bf Description} & \begin{tabular}{c} {\bf Number of}\\ {\bf Reference}\\{\bf Pictures}\end{tabular}\\
98 \hline
99 0x00 & 0000 0000 & Sequence header &--\\
100 \hline
101 0x10 & 0001 0000 & End of Sequence & -- \\
102 \hline
103 0x20 & 0010 0000 & Auxiliary data & -- \\
104 \hline
105 0x30 & 0011 0000 & Padding data & -- \\
106 \hline
107 0x08 & 0000 1000 & Intra Non Reference Picture (arithmetic coding) & 0\\
108 \hline
109 \end{tabular}
110 \caption{Parse code values for Main (Intra) profile sequences}\label{table:mainintraprofile}
111 \end{table}
113 \subsubsection{Main (Long GOP) profile [TBD]}
115 A Main (Long GOP) profile sequence shall contain only those data units whose
116 parse codes are listed in Table \ref{table:mainlonggopprofile}.
118 \begin{table}[!ht]
119 \centering
120 \begin{tabular}{|c|c|l|c|}
121 \hline
122 \rowcolor[gray]{0.75}
123 \ParseCode & {\bf Bits} & {\bf Description} & \begin{tabular}{c} {\bf Number of}\\ {\bf Reference}\\{\bf Pictures}\end{tabular}\\
124 \hline
125 0x00 & 0000 0000 & Sequence header &--\\
126 \hline
127 0x10 & 0001 0000 & End of Sequence & -- \\
128 \hline
129 0x20 & 0010 0000 & Auxiliary data & -- \\
130 \hline
131 0x30 & 0011 0000 & Padding data & -- \\
132 \hline
133 0x0C & 0000 1100 & Intra Reference Picture (arithmetic coding) & 0\\
134 \hline
135 0x08 & 0000 1000 & Intra Non Reference Picture (arithmetic coding) & 0\\
136 \hline
137 0x0D & 0000 1101 & Inter Reference Picture (arithmetic coding) & 1\\
138 \hline
139 0x0E & 0000 1110 & Inter Reference Picture (arithmetic coding) & 2\\
140 \hline
141 0x09 & 0000 1001 & Inter Non Reference Picture (arithmetic coding)& 1\\
142 \hline
143 0x0A & 0000 1010 & Inter Non Reference Picture (arithmetic coding) & 2\\
144 \hline
145 \end{tabular}
146 \caption{Parse code values for Main (Long GOP) profile sequences}
147 \label{table:mainlonggopprofile}
148 \end{table}
150 Low delay syntax pictures shall not be present in a Main (Long GOP) profile
151 sequence.
153 \subsection{Levels}
154 \label{level}
156 A given value of level shall define constraints on the decoder
157 resources required to decode a compliant sequence. The values that are
158 constrained are defined individually for each level.
160 A particular application domain may impose additional constraints
161 on a decoder, for example the presence or absence of a suitable video
162 interface. Such additional constraints are not covered by this specification.
164 This specification defines levels 1 and 128. Other levels are application
165 specific and will be defined in future revisions of this specification. VC-2
166 compatible levels will have level number less than 128 and other levels
167 will have level number greater than 128.
169 The value 0 shall be RESERVED and shall not be used for any defined level.
170 Sequences may use the value 0 for streams that do not conform to any defined level.
172 For level 1, the video parameters shall correspond
173 to one of the base video formats as defined in Annex~\ref{videoformatdefaults}
174 and the video parameters
175 of the base video format shall not be overridden. Level 1 shall be available
176 for Low Delay, Simple and Main (Intra) (VC-2 compatible) profiles only.
178 For level 128, the video parameters shall correspond to one of the base video
179 formats as defined in Annex~\ref{videoformatdefaults},
180 except that the signal range is restricted
181 to 8 bit ranges and the chroma sampling format and frame dimensions may be
182 overridden by suitable values. Level 128 shall be available for Main (Long GOP)
183 profile only.
185 A sequence compliant with a given level $n$ shall set $\Level$ equal to $n$.
187 \subsubsection{Decoder data buffers[DRAFT-TBC]}
189 A reference picture buffer $\RefBuffer$ is defined for storing
190 decoded reference pictures (if any). In addition, levels may define
191 two additional buffers, and applicable parameters for them:
193 \begin{itemize}
194 \item a bit stream buffer $\StreamBuffer$ for buffering
195 stream data prior to decoding
196 \item a decoded picture buffer $\DecodedBuffer$ for storing
197 decoded pictures (reference or non-reference) for the purposes
198 of picture reordering
199 \end{itemize}
201 For the purposes of this specification, the reference picture
202 buffer shall be deemed to be additional to the
203 decoded picture buffer (i.e. reference picture storage will be
204 duplicated in the decoded picture buffer).
206 \paragraph{Bit stream buffer operation[TBC]}$\ $\newline
208 \paragraph{Picture reordering and decoded picture buffer[TBC]}$\ $\newline
209 \label{picturereordering}
211 Two parameters shall be defined for constraining picture reordering.
212 The first is the size, $\DPBSize$, of the decoded picture buffer.
214 The second is the reordering depth applicable to a Dirac sequence. This shall
215 be defined as the maximum number of picture data units that may occur
216 between a picture with picture number $N$ and a picture with picture number
217 $N+1$ or $N-1$.
219 \subsubsection{Buffer models [TBC]}
222 \subsubsection{Level 1: VC-2 default level}
224 This level is intended to provide minimal constraints on VC-2 compatible
225 streams encoding one of the base video formats
226 (Annex~\ref{videoformatdefaults}). Data rates in
227 this level are not bounded. This level is not intended to provide
228 guarantees of real time decoding.
230 This level shall only be available if the profile is set to Low Delay, Simple, or
231 Main (Intra).
233 \paragraph{Sequence header parameters}$\ $\newline
235 The following constraints shall apply to the sequence header parameters
236 (Section~\ref{sequenceheader}):
237 \begin{itemize}
238 \item$base\_video\_format$ shall be between 1 and 20 inclusive
239 \item $custom\_dimensions\_flag$ shall be $\false$
240 \item $custom\_chroma\_format\_flag$ shall be $\false$
241 \item$custom\_scan\_format\_flag$ shall be $\false$
242 \item $custom\_frame\_rate\_flag$ shall be $\false$
243 \item $custom\_pixel\_aspect\_ratio\_flag$ be $\false$
244 \item $custom\_clean\_area\_flag$ shall be $\false$
245 \item $custom\_signal\_range\_flag$ shall be $\false$
246 \item $custom\_color\_spec\_flag$ shall be $\false$
247 \item $picture\_coding\_mode$ shall be as per Section~\ref{picturecodingmode}
248 \end{itemize}
250 \paragraph{Picture header parameters}$\ $\newline
252 The following constraints shall apply to picture header parameters
253 (Section~\ref{pictureheader}):
254 \begin{itemize}
255 \item $\WaveletIndex$ shall be as table \ref{wltfilterpresets}
256 \item $\TransformDepth$ shall be between 0 and 4 inclusive
257 \item for core syntax pictures:
258 \begin{itemize}
259 \item $\CodeblocksX$ and $\CodeblocksY$ shall be such that there is
260 at least one coefficient in each codeblock.
261 \end{itemize}
262 \item for low delay syntax pictures:
263 \begin{itemize}
264 \item $\SlicesX$ and $\SlicesY$ shall be such that there is at least one
265 DC (0-LL) coefficient per slice.
266 \item values in the quantizer matrix shall lie between 0 and 127 inclusive
267 \end{itemize}
268 \end{itemize}
270 \paragraph{Transform data}$\ $\newline
272 The following constraints shall apply to transform data elements
273 (Section~\ref{wavelettransform}):
274 \begin{itemize}
275 \item quantized and inverse quantized wavelet coefficients shall lie
276 between $-2^{19}$ and $2^{19}$ inclusive
277 \item for core syntax pictures:
278 \begin{itemize}
279 \item quantization indices for subbands and codeblocks shall lie between
280 0 and 68 inclusive
281 \item quantization offsets encoded in codeblocks shall lie between
282 -68 and 68 inclusive
283 \end{itemize}
284 \end{itemize}
286 \subsubsection{Level 128: Long-GOP default level [DRAFT-TBD]}
288 This level is intended to provide minimal constraints on long GOP
289 streams encoding simple variants of the base video formats
290 (Annex~\ref{videoformatdefaults}).
291 Data rates in this level are not bounded. This level is not intended to provide
292 guarantees of real time decoding.
294 This level shall only be available if the profile is set to Main (Long GOP).
296 \paragraph{Sequence header parameters}$\ $\newline
298 The following constraints shall apply to the sequence header parameters
299 (Section~\ref{sequenceheader}):
300 \begin{itemize}
301 \item$base\_video\_format$ shall be between 1 and 20 inclusive
302 \item $custom\_dimensions\_flag$ may be $\false$ or $\true$; if $\true$ then
303 the frame width and frame height shall be less than the values set in the
304 base video format
305 \item $custom\_chroma\_format\_flag$ may be $\false$ or $\true$
306 \item$custom\_scan\_format\_flag$ may be $\false$ or $\true$
307 \item $custom\_frame\_rate\_flag$ shall be $\false$
308 \item $custom\_pixel\_aspect\_ratio\_flag$ be $\false$
309 \item $custom\_clean\_area\_flag$ shall be $\false$
310 \item $custom\_signal\_range\_flag$ shall be $\true$ and the signal range
311 parameters set to 8 bit SDI ranges (index 2 in table \ref{table:signalrangevalues})
312 \item $custom\_color\_spec\_flag$ shall be $\false$
313 \item $picture\_coding\_mode$ shall be as per Section~\ref{picturecodingmode}
314 \end{itemize}
316 \paragraph{Picture header parameters}$\ $\newline
318 The following constraints shall apply to picture header parameters
319 (Section~\ref{pictureheader}):
320 \begin{itemize}
321 \item $\WaveletIndex$ shall be between 0 and 4 inclusive
322 \item $\TransformDepth$ shall be between 0 and 4 inclusive
323 \item $\CodeblocksX$ and $\CodeblocksY$ shall be such that there is
324 at least one coefficient in each codeblock
325 \end{itemize}
327 \paragraph{Transform data}$\ $\newline
329 The following constraints shall apply to transform data elements
330 (Section~\ref{wavelettransform}):
331 \begin{itemize}
332 \item quantized and inverse quantized wavelet coefficients shall lie
333 between $-2^{15}$ and $2^{15}$ inclusive
334 \item quantization indices for subbands and codeblocks shall lie between
335 0 and 63 inclusive
336 \item quantization offsets encoded in codeblocks shall lie between
337 -63 and 63 inclusive
338 \end{itemize}
340 \paragraph{Reordering and reference buffers [DRAFT-TBD]}$\ $\newline
343 A decoder must maintain a reference picture buffer for the
344 purposes of inter picture prediction, and (separately) a decoded
345 picture buffer for the purposes of picture reordering, in addition to
346 storage provided for decoding the current picture. The decoded picture
347 buffer shall contain non-reference pictures only.
349 A bit stream buffer is not required for this level.
351 The following constraints shall apply:
352 \begin{itemize}
353 \item The reference buffer size $\MaxRefBufferSize$ shall be 3.
354 \item The decoded picture buffer size shall be 2 in the case
355 of frame coding or 4 in the case of field coding.
356 \item The picture reordering depth shall be 5 in the case of frame coding
357 or 11 in the case of field coding
358 \end{itemize}