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.
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:
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
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.
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
}.
42 \begin{tabular
}{|c|c|l|c|
}
45 \ParseCode &
{\bf Bits
} &
{\bf Description
} &
\begin{tabular
}{c
} {\bf Number of
}\\
{\bf Reference
}\\
{\bf Pictures
}\end{tabular
}\\
47 0x00 &
0000 0000 & Sequence header &--\\
49 0x10 &
0001 0000 & End of Sequence & -- \\
51 0x20 &
0010 0000 & Auxiliary data & -- \\
53 0x30 &
0011 0000 & Padding data & -- \\
55 0xC8 &
1100 1000 & Intra Non Reference Picture &
0\\
58 \caption{Parse code values for Low Delay profile sequences
}\label{table:ldprofile
}
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
}.
68 \begin{tabular
}{|c|c|l|c|
}
71 \ParseCode &
{\bf Bits
} &
{\bf Description
} &
\begin{tabular
}{c
} {\bf Number of
}\\
{\bf Reference
}\\
{\bf Pictures
}\end{tabular
}\\
73 0x00 &
0000 0000 & Sequence header &--\\
75 0x10 &
0001 0000 & End of Sequence & -- \\
77 0x20 &
0010 0000 & Auxiliary data & -- \\
79 0x30 &
0011 0000 & Padding data & -- \\
81 0x48 &
0100 1000 & Intra Non Reference Picture (no arithmetic coding) &
0\\
84 \caption{Parse code values for Simple profile sequences
}\label{table:simpleprofile
}
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
}.
94 \begin{tabular
}{|c|c|l|c|
}
97 \ParseCode &
{\bf Bits
} &
{\bf Description
} &
\begin{tabular
}{c
} {\bf Number of
}\\
{\bf Reference
}\\
{\bf Pictures
}\end{tabular
}\\
99 0x00 &
0000 0000 & Sequence header &--\\
101 0x10 &
0001 0000 & End of Sequence & -- \\
103 0x20 &
0010 0000 & Auxiliary data & -- \\
105 0x30 &
0011 0000 & Padding data & -- \\
107 0x08 &
0000 1000 & Intra Non Reference Picture (arithmetic coding) &
0\\
110 \caption{Parse code values for Main (Intra) profile sequences
}\label{table:mainintraprofile
}
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
}.
120 \begin{tabular
}{|c|c|l|c|
}
122 \rowcolor[gray
]{0.75}
123 \ParseCode &
{\bf Bits
} &
{\bf Description
} &
\begin{tabular
}{c
} {\bf Number of
}\\
{\bf Reference
}\\
{\bf Pictures
}\end{tabular
}\\
125 0x00 &
0000 0000 & Sequence header &--\\
127 0x10 &
0001 0000 & End of Sequence & -- \\
129 0x20 &
0010 0000 & Auxiliary data & -- \\
131 0x30 &
0011 0000 & Padding data & -- \\
133 0x0C &
0000 1100 & Intra Reference Picture (arithmetic coding) &
0\\
135 0x08 &
0000 1000 & Intra Non Reference Picture (arithmetic coding) &
0\\
137 0x0D &
0000 1101 & Inter Reference Picture (arithmetic coding) &
1\\
139 0x0E &
0000 1110 & Inter Reference Picture (arithmetic coding) &
2\\
141 0x09 &
0000 1001 & Inter Non Reference Picture (arithmetic coding)&
1\\
143 0x0A &
0000 1010 & Inter Non Reference Picture (arithmetic coding) &
2\\
146 \caption{Parse code values for Main (Long GOP) profile sequences
}
147 \label{table:mainlonggopprofile
}
150 Low delay syntax pictures shall not be present in a Main (Long GOP) profile
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)
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:
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
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
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
233 \paragraph{Sequence header parameters
}$\ $
\newline
235 The following constraints shall apply to the sequence header parameters
236 (Section~
\ref{sequenceheader
}):
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
}
250 \paragraph{Picture header parameters
}$\ $
\newline
252 The following constraints shall apply to picture header parameters
253 (Section~
\ref{pictureheader
}):
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:
259 \item $
\CodeblocksX$ and $
\CodeblocksY$ shall be such that there is
260 at least one coefficient in each codeblock.
262 \item for low delay syntax pictures:
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
270 \paragraph{Transform data
}$\ $
\newline
272 The following constraints shall apply to transform data elements
273 (Section~
\ref{wavelettransform
}):
275 \item quantized and inverse quantized wavelet coefficients shall lie
276 between $-
2^
{19}$ and $
2^
{19}$ inclusive
277 \item for core syntax pictures:
279 \item quantization indices for subbands and codeblocks shall lie between
281 \item quantization offsets encoded in codeblocks shall lie between
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
}):
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
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
}
316 \paragraph{Picture header parameters
}$\ $
\newline
318 The following constraints shall apply to picture header parameters
319 (Section~
\ref{pictureheader
}):
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
327 \paragraph{Transform data
}$\ $
\newline
329 The following constraints shall apply to transform data elements
330 (Section~
\ref{wavelettransform
}):
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
336 \item quantization offsets encoded in codeblocks shall lie between
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:
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