1 |
2 |
kdv |
Draft Text for the video sections of ISO/IEC 13818-4 (MPEG-2 Compliance)
|
2 |
|
|
Nov 11, 1995 (Dallas)
|
3 |
|
|
|
4 |
|
|
This is only a draft of the video sections. The final, complete and
|
5 |
|
|
normative text of the ISO/IEC 13818-4 standard should be purchased
|
6 |
|
|
from ISO.
|
7 |
|
|
|
8 |
|
|
|
9 |
|
|
|
10 |
|
|
2.4 Video
|
11 |
|
|
|
12 |
|
|
2.4.1 Introduction
|
13 |
|
|
|
14 |
|
|
In the video sections of part-4, except where stated otherwise, the
|
15 |
|
|
following terms are used for practical purposes:
|
16 |
|
|
|
17 |
|
|
The term 'bitstream' means ISO/IEC 13818 video bitstream.
|
18 |
|
|
|
19 |
|
|
The term 'decoder' means ISO/IEC 13818 video decoder, i.e., an
|
20 |
|
|
embodiment of the decoding process specified by ISO/IEC 13818-2.
|
21 |
|
|
|
22 |
|
|
The term 'Chapter 8' means Chapter 8 of ISO/IEC 13818-2 (definition of
|
23 |
|
|
authorized profile-and-level combinations), as well as any future
|
24 |
|
|
amendments of the standard which defines additional profile-and-level
|
25 |
|
|
combinations not currently defined in Chapter 8.
|
26 |
|
|
|
27 |
|
|
The term 'verifier' means a ISO/IEC 13818 video bitstream verifier,
|
28 |
|
|
i.e., a process by which it is possible to test and verify that all the
|
29 |
|
|
requirements specified in ISO/IEC 13818-2 are met by the bitstream.
|
30 |
|
|
|
31 |
|
|
If any statement stated in this section accidentally contradicts a
|
32 |
|
|
statement or requirement defined in ISO/IEC 13818-2, the text of
|
33 |
|
|
ISO/IEC 13818-2 prevails.
|
34 |
|
|
|
35 |
|
|
The following sections specify the normative tests for verifying
|
36 |
|
|
compliance of video bitstreams and video decoders. Those normative
|
37 |
|
|
tests make use of test data (bitstream test suites) provided as an
|
38 |
|
|
electronic annex to this document, and of a software verifier specified
|
39 |
|
|
in ISO/IEC 13818-5 with source code available in electronic format.
|
40 |
|
|
|
41 |
|
|
Conformance of scalable hierarchies of bitstreams and scalable profile
|
42 |
|
|
decoders is defined in section 2.4.6.
|
43 |
|
|
|
44 |
|
|
2.4.2 Definition of video bitstream compliance
|
45 |
|
|
|
46 |
|
|
An ISO/IEC 13818 video bitstream is a bitstream that implements the
|
47 |
|
|
specification defined by the normative sections of ISO/IEC 13818-2
|
48 |
|
|
(including Annexes A, B and C).
|
49 |
|
|
|
50 |
|
|
A compliant bitstream shall meet all the requirements and implement all
|
51 |
|
|
the restrictions defined in the generic syntax defined by the ISO/IEC
|
52 |
|
|
13818-2 specification, including the restrictions defined in Chapter 8
|
53 |
|
|
for the profile-and-level specified in the sequence_extension() of the
|
54 |
|
|
bitstream.
|
55 |
|
|
|
56 |
|
|
Section 2.4.3 of this specification defines the normative test that a
|
57 |
|
|
bitstream shall pass successfully in order to be claimed compliant with
|
58 |
|
|
this specification.
|
59 |
|
|
|
60 |
|
|
A compliant bitstream of a given profile-and-level may be called an
|
61 |
|
|
"MPEG-2 Profile@Level bitstream" or simply a "Profile@Level bitstream"
|
62 |
|
|
(e.g. an MP@ML bitstream).
|
63 |
|
|
|
64 |
|
|
The following sections clarify some of the important requirements on
|
65 |
|
|
bitstreams and on encoders producing bitstreams:
|
66 |
|
|
|
67 |
|
|
2.4.2.1 Requirements and restrictions related to profile-and-level
|
68 |
|
|
|
69 |
|
|
The profile_and_level_indication shall be one of the valid codes
|
70 |
|
|
defined in Chapter 8. The profile-and-level derived from the
|
71 |
|
|
profile_and_level_indication indicates that additional restrictions and
|
72 |
|
|
constraints have been applied to several syntactic and semantic
|
73 |
|
|
elements, as defined in Chapter 8.
|
74 |
|
|
|
75 |
|
|
The restrictions defined for a given profile-and-level are aimed at
|
76 |
|
|
reducing the cost of decoder implementation and at facilitating
|
77 |
|
|
interoperability. A compliant bitstream shall be decodable by any
|
78 |
|
|
compliant ISO/IEC 13818 video decoder that supports the
|
79 |
|
|
profile-and-level combination specified in the bitstream.
|
80 |
|
|
|
81 |
|
|
2.4.2.2 Additional restrictions on bitstream applied by the encoder
|
82 |
|
|
|
83 |
|
|
The video encoder may apply any additional restrictions on the
|
84 |
|
|
parameters of the video bitstream, in addition to restrictions defined
|
85 |
|
|
in the generic video syntax and the restrictions defined for the
|
86 |
|
|
specified profile-and-level in Chapter 8. Not all additional
|
87 |
|
|
restrictions can be known a priori without analyzing or decoding the
|
88 |
|
|
entire bitstream, since the syntax does not provide explicit mechanisms
|
89 |
|
|
which signal such restrictions in advance for all cases.
|
90 |
|
|
|
91 |
|
|
2.4.2.3 Encoder requirements and recommendations
|
92 |
|
|
|
93 |
|
|
2.4.2.3.1 Encoder requirements
|
94 |
|
|
|
95 |
|
|
Although encoders are not directly addressed by ISO/IEC 13818-2, an
|
96 |
|
|
encoder is said to be an ISO/IEC 13818-2 Profile@Level encoder if it
|
97 |
|
|
satisfies the following requirements:
|
98 |
|
|
|
99 |
|
|
1) The bitstreams generated by the encoder are compliant Profile@Level
|
100 |
|
|
bitstreams.
|
101 |
|
|
|
102 |
|
|
2) For encoding methods which include embedded decoding operations to
|
103 |
|
|
produce the coded bitstream, these decoding operations shall be
|
104 |
|
|
performed with the full arithmetic precision specified in ISO/IEC
|
105 |
|
|
13818-2.
|
106 |
|
|
|
107 |
|
|
This second requirement is necessary to guarantee that only compliant
|
108 |
|
|
decoders will produce images that have optimum quality.
|
109 |
|
|
|
110 |
|
|
With this requirement on ISO/IEC 13818-2 encoders, any compliant
|
111 |
|
|
decoder decoding a bitstream generated by a compliant encoder will
|
112 |
|
|
normally reconstruct images of higher quality, compared to the images
|
113 |
|
|
reconstructed from the same bitstream by a non-compliant decoder.
|
114 |
|
|
|
115 |
|
|
2.4.2.3.2 Encoder recommendations
|
116 |
|
|
|
117 |
|
|
It is strongly recommended that video encoders capable of producing
|
118 |
|
|
P-pictures implement Note 2 of section 7.4.4 of ISO/IEC 13818-2.
|
119 |
|
|
Failure to implement this recommendation may cause significant
|
120 |
|
|
accumulation of mismatch between the reconstructed samples produced by
|
121 |
|
|
the hypothetical decoder sub-loop embedded within an encoder and those
|
122 |
|
|
produced by a (downstream) decoder using the coded bitstream produced
|
123 |
|
|
by the encoder.
|
124 |
|
|
|
125 |
|
|
It is strongly recommended that video encoders capable of generating
|
126 |
|
|
concealment motion vectors produce such concealment vectors that will
|
127 |
|
|
help the concealment process for decoders which implement the specific
|
128 |
|
|
concealment technique described in sections D.13.1.1.2, D.13.1.1.3,
|
129 |
|
|
and 7.6.3.9 of ISO/IEC 13818-2.
|
130 |
|
|
|
131 |
|
|
The concealment motion vector transmitted with a macroblock should be a
|
132 |
|
|
frame motion vector that would provide a "good" frame prediction for
|
133 |
|
|
predicting the macroblock that lies vertically below the macroblock in
|
134 |
|
|
which the motion vector occurs.
|
135 |
|
|
|
136 |
|
|
If the encoder is capable of generating bitstreams with
|
137 |
|
|
slice_picture_id, it is recommended that temporal interval between
|
138 |
|
|
pictures using the same value for slice_picture_id be as large as
|
139 |
|
|
possible, so that error bursts causing loss of several consecutive
|
140 |
|
|
pictures can be detected.
|
141 |
|
|
|
142 |
|
|
2.4.3 Procedure for testing bitstream compliance
|
143 |
|
|
|
144 |
|
|
The technical report (ISO/IEC 13818-5) contains the source code of a
|
145 |
|
|
software video verifier that checks that a bitstream implements
|
146 |
|
|
properly the normative requirements defined in ISO/IEC 13818-2.
|
147 |
|
|
|
148 |
|
|
A bitstream that claims compliance with this standard shall pass the
|
149 |
|
|
following normative test:
|
150 |
|
|
|
151 |
|
|
When processed by the technical report verifier, the bitstream shall
|
152 |
|
|
not cause any error or non-conformance messages to be reported by the
|
153 |
|
|
verifier. This test shall be applied only to bitstreams that are known
|
154 |
|
|
to be free of errors introduced by transmission.
|
155 |
|
|
|
156 |
|
|
Successfully passing the technical report verifier test only provides a
|
157 |
|
|
strong presumption that the bitstream under test is compliant, i.e.
|
158 |
|
|
that it does indeed meet all the requirements specified in ISO/IEC
|
159 |
|
|
13818-2.
|
160 |
|
|
|
161 |
|
|
Additional tests may be necessary to check more thoroughly that the
|
162 |
|
|
bitstream implements properly all the requirements specified in ISO/IEC
|
163 |
|
|
13818-2. These complementary tests may be performed using other video
|
164 |
|
|
bitstream verifiers that perform more complete tests than those
|
165 |
|
|
implemented by the technical report software.
|
166 |
|
|
|
167 |
|
|
In particular, ISO/IEC 13818-2 contains several informative
|
168 |
|
|
recommendations. When testing a bitstream for compliance, it is useful
|
169 |
|
|
to tests whether or not the bitstream follows those recommendations.
|
170 |
|
|
|
171 |
|
|
To check correctness of a bitstream, it is necessary to parse the
|
172 |
|
|
entire bitstream and to extract all the syntactic elements and other
|
173 |
|
|
values derived from those syntactic elements and used by the decoding
|
174 |
|
|
process specified in ISO/IEC 13818-2 (e.g. r_size,
|
175 |
|
|
macroblock_pattern).
|
176 |
|
|
|
177 |
|
|
A verifier does not necessarily perform all stages of the decoding
|
178 |
|
|
process described in ISO/IEC 13818-2 in order to verify bitstream
|
179 |
|
|
correctness. Many tests are performed on syntax elements in a state
|
180 |
|
|
prior to their use in some processing stages. However, some arithmetic
|
181 |
|
|
may need to be performed on combinations of syntax elements. For
|
182 |
|
|
example, motion vectors used for prediction in the motion compensation
|
183 |
|
|
stage (section 7.6 in ISO/IEC 13818-2) may need to be fully
|
184 |
|
|
reconstructed in order to verify that predictions do not make reference
|
185 |
|
|
to samples outside coded boundaries of the reference picture.
|
186 |
|
|
|
187 |
|
|
A verifier which *does* perform the IDCT transform and calculates the
|
188 |
|
|
reconstructed samples must comply with all the arithmetic precision
|
189 |
|
|
requirements specified in ISO/IEC 13818-2. In addition, the IDCT of
|
190 |
|
|
such a verifier shall be an embodiment of the saturated mathematical
|
191 |
|
|
integer-number IDCT specified in Annex A of ISO/IEC 13818-2 (a software
|
192 |
|
|
implementation using 64-bit double-precision floating-point is
|
193 |
|
|
sufficient).
|
194 |
|
|
|
195 |
|
|
Performing the IDCT transform and calculating the reconstructed samples
|
196 |
|
|
in a verifier, although not necessary, is useful for several reasons:
|
197 |
|
|
|
198 |
|
|
- It allows to test the subjective quality of the reconstructed
|
199 |
|
|
frames. ISO/IEC 13818-2 does not put any requirement on subjective
|
200 |
|
|
quality, but it is desirable that an encoder generates bitstreams for
|
201 |
|
|
which the subjective quality of reconstructed frames is as good as
|
202 |
|
|
possible.
|
203 |
|
|
|
204 |
|
|
- Checking the output of the IDCT can provide an indication of whether
|
205 |
|
|
or not the encoder that produced the bitstream observed the
|
206 |
|
|
recommendation of Note 2 in section 7.4.4 of ISO/IEC 13818-2)
|
207 |
|
|
|
208 |
|
|
If a bitstream contains a P-picture with many occurrences of coded
|
209 |
|
|
blocks of DCT coefficients (i.e., blocks that are not all zeros) for
|
210 |
|
|
which the output of the reference IDCT is all zeros, then the encoder
|
211 |
|
|
that produced the bitstream can be suspected of not implementing this
|
212 |
|
|
important recommendation.
|
213 |
|
|
|
214 |
|
|
The best chance to discover this problem is when a still image (with no
|
215 |
|
|
motion at all and no noise) is encoded.
|
216 |
|
|
|
217 |
|
|
2.4.4 Definition of video decoder compliance
|
218 |
|
|
|
219 |
|
|
In this section, except where stated otherwise, the term 'bitstream'
|
220 |
|
|
means compliant ISO/IEC 13818 video bitstream (as defined in this
|
221 |
|
|
document) that has the profile_and_level_indication corresponding to
|
222 |
|
|
the profile-and-level combination considered for the decoder.
|
223 |
|
|
|
224 |
|
|
Compliance of an ISO/IEC 13818-2 decoder is defined only with regard to
|
225 |
|
|
a legal profile-and-level combination, as specified in Chapter 8.
|
226 |
|
|
|
227 |
|
|
The normative tests that a decoder shall pass in order to claim
|
228 |
|
|
compliance with a given profile-and-level combination are specified in
|
229 |
|
|
section 2.4.5.6. A decoder can claim compliance with regard to several
|
230 |
|
|
profile-and-level combinations if and only if it passes the normative
|
231 |
|
|
tests defined for each of the profile and level combinations.
|
232 |
|
|
|
233 |
|
|
Only a decoder that passes the conformance test for a given
|
234 |
|
|
profile-and-level may be called "MPEG-2 Profile@Level decoder" or
|
235 |
|
|
simply "Profile@Level decoder" (e.g., an MPEG-2 MP@ML decoder).
|
236 |
|
|
|
237 |
|
|
A decoder that fails the normative tests defined by this specification
|
238 |
|
|
may only claim limited accuracy compliance to the standard. A limited
|
239 |
|
|
accuracy decoder shall be accompanied upon request by a technical
|
240 |
|
|
description of the results of each of the normative tests. This
|
241 |
|
|
technical description of the results shall include at least the result
|
242 |
|
|
of the IDCT accuracy test, the peak error for all static tests, and
|
243 |
|
|
for the all dynamic tests, all the peak temporal errors or jitters when
|
244 |
|
|
presenting the reconstructed samples, the description of the
|
245 |
|
|
reconstructed samples not presented, etc. Real-time software decoders
|
246 |
|
|
may have to use limited accuracy if the resources of the processor are
|
247 |
|
|
not sufficient to achieve real-time performances with the full
|
248 |
|
|
accuracy.
|
249 |
|
|
|
250 |
|
|
A limited accuracy decoder is not a compliant decoder and may only be
|
251 |
|
|
called "MPEG-2 limited accuracy Profile@Level decoder" or simply
|
252 |
|
|
"limited accuracy Profile@Level decoder".
|
253 |
|
|
|
254 |
|
|
In the following text, decoder compliance is always considered with
|
255 |
|
|
regard to a particular profile-and-level combination, even when this is
|
256 |
|
|
not specifically mentioned.
|
257 |
|
|
|
258 |
|
|
A compliant decoder shall implement a decoding process that is
|
259 |
|
|
equivalent to the one specified in ISO/IEC 13818-2 and meets all the
|
260 |
|
|
general requirements defined in ISO/IEC 13818-2 that apply for the
|
261 |
|
|
profile-and-level combination considered, and if it can decode
|
262 |
|
|
bitstreams with any options or parameters with values permitted for
|
263 |
|
|
that profile-and-level combination. The permitted options and
|
264 |
|
|
parameter range for each profile-and-level combinations are defined in
|
265 |
|
|
Chapter 8.
|
266 |
|
|
|
267 |
|
|
A decoder which implements only a subset of the options or ranges of
|
268 |
|
|
syntax and semantics for a given profile-and-level combination is not a
|
269 |
|
|
compliant decoder for that profile-and-level, even if it passes the
|
270 |
|
|
normative tests specified in section 2.4.5.6. In effect such a decoder
|
271 |
|
|
would not be capable of decoding all compliant bitstreams of the
|
272 |
|
|
considered profile-and-level combination.
|
273 |
|
|
|
274 |
|
|
In the following sections the term 'reference decoder' means the
|
275 |
|
|
technical report software verifier (ISO/IEC 13818-5).
|
276 |
|
|
|
277 |
|
|
The reference decoder is a decoder that implements precisely the
|
278 |
|
|
decoding process as specified in ISO/IEC 13818-2. The IDCT function
|
279 |
|
|
that shall be used when running the reference decoder is the very
|
280 |
|
|
accurate approximation of the mathematical saturated integer-number
|
281 |
|
|
IDCT f '' (x, y) specified in Annex A of ISO/IEC 13818-2 obtained by
|
282 |
|
|
implementing f '' (x, y) with double-precision arithmetic.
|
283 |
|
|
|
284 |
|
|
Except for possible mismatches caused by ambiguous half-values rounding
|
285 |
|
|
at the output of the IDCT function, the output of the reference
|
286 |
|
|
decoder (reconstructed samples) is defined unambiguously by ISO/IEC
|
287 |
|
|
13818-2.
|
288 |
|
|
|
289 |
|
|
Fundamental requirement areas for decoders are listed in the following
|
290 |
|
|
sections.
|
291 |
|
|
|
292 |
|
|
2.4.4.1 Requirement on arithmetic accuracy (without IDCT)
|
293 |
|
|
|
294 |
|
|
With the exception of IDCT, the specification of ISO/IEC 13818-2
|
295 |
|
|
defines the decoding process absolutely unambiguously. Only the IDCT
|
296 |
|
|
may yield different results among different implementations. The
|
297 |
|
|
requirements on the accuracy of the IDCT used by a compliant decoder
|
298 |
|
|
are specified in Annex A of ISO/IEC 13818-2.
|
299 |
|
|
|
300 |
|
|
There is a requirement that for a block that contains no coefficient
|
301 |
|
|
data (i.e. if pattern_code[i] is zero, or if the macroblock is skipped)
|
302 |
|
|
the sample domain coefficients f[x][y] for the block shall all take the
|
303 |
|
|
value zero (Cf. Section 7.5.1 of ISO/IEC 13818-2).
|
304 |
|
|
|
305 |
|
|
Therefore, the following is a the requirement on the arithmetic
|
306 |
|
|
accuracy of the decoder:
|
307 |
|
|
|
308 |
|
|
When a coded picture is decoded from a bitstream, for each 8x8 block of
|
309 |
|
|
the coded picture that is "not-coded" or that contains only zero DCT
|
310 |
|
|
coefficients, a compliant decoder shall produce reconstructed samples
|
311 |
|
|
numerically identical to those produced by the reference decoder when
|
312 |
|
|
the reference frames used by both decoders are numerically identical.
|
313 |
|
|
A decoder that reconstructs one sample with a value different from that
|
314 |
|
|
reconstructed by the reference decoder for the same sample is not a
|
315 |
|
|
compliant decoder.
|
316 |
|
|
|
317 |
|
|
In other words, all compliant decoders shall produce numerically
|
318 |
|
|
identical reconstructed samples when the IDCT is applied only to blocks
|
319 |
|
|
of zero coefficients (assuming that they use numerically identical
|
320 |
|
|
reference frames).
|
321 |
|
|
|
322 |
|
|
2.4.4.2 Requirement on arithmetic accuracy (with IDCT)
|
323 |
|
|
|
324 |
|
|
When a bitstream contains some 8x8 blocks with non-zero DCT
|
325 |
|
|
coefficients, the output of a compliant decoder may differ from the
|
326 |
|
|
output of the reference decoder. However, because of the accuracy
|
327 |
|
|
requirements on the IDCT transform used by the decoder, there exist
|
328 |
|
|
some accuracy requirements on the output of a compliant ISO/IEC 13818
|
329 |
|
|
video decoder.
|
330 |
|
|
|
331 |
|
|
The IDCT used in a compliant decoder shall meet all the requirements
|
332 |
|
|
defined in Annex A of ISO/IEC 13818-2.
|
333 |
|
|
|
334 |
|
|
Annex A of ISO/IEC 13818-2 defines additional requirements above those
|
335 |
|
|
defined by the IEEE Std 1180-1990 standard. In order to claim that the
|
336 |
|
|
IDCT transform used by the decoder conforms to the specification of
|
337 |
|
|
Annex A, the IDCT transform shall comply with the IEEE Std 1180-1990
|
338 |
|
|
standard and pass successfully the following test:
|
339 |
|
|
|
340 |
|
|
The test is derived from the specification given in the IEEE Std
|
341 |
|
|
1180-1990 standard, with the following modifications:
|
342 |
|
|
|
343 |
|
|
1) In item (1) of section 3.2 of the IEEE specification, the last
|
344 |
|
|
sentence is replaced by: <
|
345 |
|
|
each should be generated for (L=256, H=255), (L=H=5) and (L=384,
|
346 |
|
|
H=383). >>
|
347 |
|
|
|
348 |
|
|
2) The text of section 3.3 of the IEEE specification is replaced by :
|
349 |
|
|
<
|
350 |
|
|
magnitude. There is no other accuracy requirement for this test.>>
|
351 |
|
|
|
352 |
|
|
Successfully passing the conformance test defined in this document only
|
353 |
|
|
provides a strong presumption that the IDCT transform is compliant,
|
354 |
|
|
i.e. that it does meet all the requirements specified in Annex A of
|
355 |
|
|
ISO/IEC 13818-2.
|
356 |
|
|
|
357 |
|
|
Additional tests may be necessary to check more thoroughly that the
|
358 |
|
|
IDCT implements properly all the requirements and recommendations
|
359 |
|
|
specified in Annex A of ISO/IEC 13818-2.
|
360 |
|
|
|
361 |
|
|
2.4.4.3 Requirement on output of the decoding process and timing
|
362 |
|
|
|
363 |
|
|
The output of the decoding process is specified by section 7.12 of
|
364 |
|
|
ISO/IEC 13818-2.
|
365 |
|
|
|
366 |
|
|
It is a requirement that all the reconstructed samples of all the coded
|
367 |
|
|
frames be output by a compliant decoder to the display process. For
|
368 |
|
|
example, a decoder that occasionally does not output some of the
|
369 |
|
|
reconstructed B-frames or that occasionally outputs incomplete
|
370 |
|
|
reconstructed frames to the display process is not compliant. The
|
371 |
|
|
actual output of the display process is not specified by this
|
372 |
|
|
standard.
|
373 |
|
|
|
374 |
|
|
It is a requirement that a compliant decoder outputs the reconstructed
|
375 |
|
|
samples at the rates specified in section 7.12 of ISO/IEC 13818-2.
|
376 |
|
|
|
377 |
|
|
For example, when decoding an interlaced sequence, there is a
|
378 |
|
|
requirement that the samples of each field be output at intervals of
|
379 |
|
|
1/(2 * frame_rate).
|
380 |
|
|
|
381 |
|
|
2.4.4.4 Requirement for compatibility with ISO/IEC 11172-2 (MPEG-1
|
382 |
|
|
video)
|
383 |
|
|
|
384 |
|
|
The requirements for compatibility with ISO/IEC 11172-2 (MPEG-1 video)
|
385 |
|
|
are specified in section 8.1 of ISO/IEC 13818-2.
|
386 |
|
|
|
387 |
|
|
It is a requirement that a compliant ISO/IEC 13818-2 decoder shall
|
388 |
|
|
decode all compliant ISO/IEC 11172-2 constrained parameters
|
389 |
|
|
bitstreams. It should be noted that the permitted ranges for the
|
390 |
|
|
parameters of ISO/IEC 11172-2 constrained parameters bitstreams are
|
391 |
|
|
different and not necessarily a subset of the permitted ranges for
|
392 |
|
|
equivalent parameters of ISO/IEC 13818-2 bitstreams.
|
393 |
|
|
|
394 |
|
|
For example ISO/IEC 11172-2 constrained parameters bitstreams can have
|
395 |
|
|
horizontal_size up to 768 samples, and vertical size > 480 is possible
|
396 |
|
|
with a frame_rate different from 25 Hz. A compliant decoder should
|
397 |
|
|
decode such ISO/IEC 11172-2 constrained parameters bitstreams (i.e.
|
398 |
|
|
constrained_parameter_flag = 1).
|
399 |
|
|
|
400 |
|
|
In addition, it is a requirement that a compliant decoder shall decode
|
401 |
|
|
D-pictures-only ISO/IEC 11172-2 bitstreams which are within the level
|
402 |
|
|
constraints of the decoder including some that may have
|
403 |
|
|
constrained_parameter_flag set to 0.
|
404 |
|
|
|
405 |
|
|
2.4.4.5 Requirements for compatibility between various
|
406 |
|
|
profile-and-level combinations
|
407 |
|
|
|
408 |
|
|
Chapter 8 defines additional requirements for compatibility between
|
409 |
|
|
various profile-and-level combinations. Those requirements are defined
|
410 |
|
|
by Table 8-15 in Chapter 8. The decoder shall meet all those
|
411 |
|
|
compatibility requirements.
|
412 |
|
|
|
413 |
|
|
For example, a compliant Main Profile at Main Level decoder shall also
|
414 |
|
|
be a compliant Main Profile at Low Level and Simple Profile at Main
|
415 |
|
|
Level decoder.
|
416 |
|
|
|
417 |
|
|
2.4.4.6 Requirement for forward compatibility of future extensions
|
418 |
|
|
|
419 |
|
|
ISO/IEC 13818-2 defines several requirements on decoder that are needed
|
420 |
|
|
for allowing forward compatibility of future extension to ISO/IEC
|
421 |
|
|
13818-2 with existing compliant decoders.
|
422 |
|
|
|
423 |
|
|
A compliant decoder that encounters an extension with an extension
|
424 |
|
|
start code described as "reserved" in ISO/IEC 13818-2 shall discard and
|
425 |
|
|
ignore all subsequent data until the next start code.
|
426 |
|
|
|
427 |
|
|
A compliant decoder that encounters the syntactic element
|
428 |
|
|
extra_information_picture described as "reserved" in ISO/IEC 13818-2
|
429 |
|
|
shall discard this syntactic element and any subsequent one until it
|
430 |
|
|
encounters extra_bit_picture with the value 0.
|
431 |
|
|
|
432 |
|
|
A compliant decoder that encounters the syntactic element
|
433 |
|
|
extra_information_slice described as "reserved" in ISO/IEC 13818-2
|
434 |
|
|
shall discard this syntactic element and any subsequent one until it
|
435 |
|
|
encounters extra_bit_slice with the value 0.
|
436 |
|
|
|
437 |
|
|
2.4.4.7 Requirements related to zero byte stuffing, user data and
|
438 |
|
|
reserved extensions
|
439 |
|
|
|
440 |
|
|
A compliant decoder shall be able to decode bitstreams with any
|
441 |
|
|
permitted amount of zero byte stuffing, user data and reserved
|
442 |
|
|
extensions, at any place where those can legally occur. The maximum
|
443 |
|
|
permitted amount of these data is limited by VBV requirements specified
|
444 |
|
|
in Annex C of ISO/IEC 13818-2.
|
445 |
|
|
|
446 |
|
|
The output of a compliant decoder shall be identical between two
|
447 |
|
|
bitstreams which differ only in the amount of user_data,
|
448 |
|
|
extra_information_slice, extra_information_picture, and start code
|
449 |
|
|
stuffing present in each respective bitstream. For example, a
|
450 |
|
|
compliant decoder shall produce the same output when decoding a
|
451 |
|
|
bitstream that contains user data and when decoding the bitstream
|
452 |
|
|
derived by replacing all user data by zero byte stuffing.
|
453 |
|
|
|
454 |
|
|
Note that it is permitted in ISO/IEC 13818-2 that a majority of coded
|
455 |
|
|
data in a video sequence be in the form of zero stuffing bytes, user
|
456 |
|
|
data and/or reserved extensions.
|
457 |
|
|
|
458 |
|
|
2.4.4.8 Recommendations
|
459 |
|
|
|
460 |
|
|
In addition to the requirements, it is desirable that compliant
|
461 |
|
|
decoders implement various recommendations defined in ISO/IEC 13818-2.
|
462 |
|
|
|
463 |
|
|
This section lists some of the recommendations.
|
464 |
|
|
|
465 |
|
|
It is recommended that a compliant decoder be able to resume the
|
466 |
|
|
decoding process as soon as possible after an error (or the occurrence
|
467 |
|
|
of a sequence_error_code). In most cases it is possible to resume
|
468 |
|
|
decoding at the next start code.
|
469 |
|
|
|
470 |
|
|
It is recommended that a compliant decoder be able to perform
|
471 |
|
|
concealment for the macroblocks or slices for which all the coded data
|
472 |
|
|
has not been received.
|
473 |
|
|
|
474 |
|
|
2.4.5 Procedure to test decoder compliance
|
475 |
|
|
|
476 |
|
|
In this section, except where stated otherwise, the term 'bitstream'
|
477 |
|
|
means compliant ISO/IEC 13818 video bitstream (as defined in this
|
478 |
|
|
document), that has the profile_and_level_indication corresponding to
|
479 |
|
|
the profile-and-level combination for which conformance of the decoder
|
480 |
|
|
is considered.
|
481 |
|
|
|
482 |
|
|
There are two types of tests for decoders: static tests and dynamic
|
483 |
|
|
tests.
|
484 |
|
|
|
485 |
|
|
2.4.5.1 Static tests:
|
486 |
|
|
|
487 |
|
|
Static tests of a video decoder requires testing of the reconstructed
|
488 |
|
|
samples. This section will explain how this test can be accomplished
|
489 |
|
|
when the reconstructed samples at the output of the decoding process
|
490 |
|
|
are available.
|
491 |
|
|
|
492 |
|
|
It may not be possible to perform this type of test with a production
|
493 |
|
|
decoder. In that case this test should be performed by the
|
494 |
|
|
manufacturer during the design and development phase.
|
495 |
|
|
|
496 |
|
|
Static tests are used for testing the arithmetic accuracy used in the
|
497 |
|
|
decoding process.
|
498 |
|
|
|
499 |
|
|
There are two sorts of static tests.
|
500 |
|
|
|
501 |
|
|
- The static tests that do not involve the use of IDCT, in which case
|
502 |
|
|
the test will check that the values of the samples reconstructed by the
|
503 |
|
|
decoder under test shall be identical to the values of the samples
|
504 |
|
|
reconstructed by the reference decoder when the reference frames used
|
505 |
|
|
by both decoders are numerically identical.
|
506 |
|
|
|
507 |
|
|
- The static tests that involve the use of IDCT, in which case the test
|
508 |
|
|
will check that the peak absolute error between the values of the
|
509 |
|
|
samples reconstructed by the decoder under test and the values of the
|
510 |
|
|
samples reconstructed by the reference decoder shall not be larger than
|
511 |
|
|
2 when the reference frames used by both decoders are numerically
|
512 |
|
|
identical.
|
513 |
|
|
|
514 |
|
|
2.4.5.2 Dynamic tests
|
515 |
|
|
|
516 |
|
|
Dynamic tests are applied to check that all the reconstructed samples
|
517 |
|
|
are output to the display process and that the timing of the output of
|
518 |
|
|
the decoder's reconstructed samples to the display process conforms to
|
519 |
|
|
the specification of section 7.12 of ISO/IEC 13818-2, and to verify
|
520 |
|
|
that the decoder buffer (as defined by Annex C, VBV specification) does
|
521 |
|
|
not underflow or overflow when the bits are delivered at the proper
|
522 |
|
|
rate.
|
523 |
|
|
|
524 |
|
|
2.4.5.3 Specification of the test bitstreams
|
525 |
|
|
|
526 |
|
|
This section provides the list of specifications that are used to
|
527 |
|
|
produce the bitstream test suites for testing decoder compliance.
|
528 |
|
|
|
529 |
|
|
Not all the decoder requirements are covered by these tests, but tests
|
530 |
|
|
for the most fundamental decoder requirements are believed to be
|
531 |
|
|
covered by this test suite specification. These tests include :
|
532 |
|
|
|
533 |
|
|
1. General static tests:
|
534 |
|
|
|
535 |
|
|
Bitstreams using all the possible coding options permitted by ISO/IEC
|
536 |
|
|
13818-2.
|
537 |
|
|
|
538 |
|
|
2. Memory bandwidth dynamic tests:
|
539 |
|
|
|
540 |
|
|
Bitstreams with all macroblocks predicted with average (bi-directional)
|
541 |
|
|
prediction or dual-prime, with half-sample interpolation in both the
|
542 |
|
|
horizontal and vertical directions, for both the luminance and
|
543 |
|
|
chrominance blocks if possible, using smallest possible prediction
|
544 |
|
|
blocks and accessing as many different samples of the reference
|
545 |
|
|
pictures as possible.
|
546 |
|
|
|
547 |
|
|
3. VLC/FLC decoding static tests:
|
548 |
|
|
|
549 |
|
|
Bitstream using all the possible events within a table.
|
550 |
|
|
|
551 |
|
|
4. Bits and Symbol distribution (burst) dynamic tests:
|
552 |
|
|
|
553 |
|
|
Bitstream containing very irregular distribution of bits or symbols.
|
554 |
|
|
|
555 |
|
|
5. ISO/IEC 11172-2 compatibility tests:
|
556 |
|
|
|
557 |
|
|
ISO/IEC 11172-2 Bitstreams.
|
558 |
|
|
|
559 |
|
|
To test a decoder for conformance with regard to a particular
|
560 |
|
|
profile-and-level combination, a bitstream test suite can be made
|
561 |
|
|
according to this specification. Each bitstream of the test suite must
|
562 |
|
|
have its profile_and_level_indication corresponding to the
|
563 |
|
|
profile-and-level combination considered for the decoder, and must be
|
564 |
|
|
fully compliant with ISO/IEC 13818-2, or with ISO/IEC 11172-2 when
|
565 |
|
|
specified.
|
566 |
|
|
|
567 |
|
|
When a bitstream requires the use of an option or parameter value not
|
568 |
|
|
permitted with the profile-and-level combination considered (e.g.,
|
569 |
|
|
B-pictures in the case of Simple Profile at Main Level), the test
|
570 |
|
|
bitstream must be omitted from the bitstream test suite.
|
571 |
|
|
|
572 |
|
|
All the bitstreams in the test suite must be such that the output of
|
573 |
|
|
the non-saturated integer number mathematical IDCT f ' (x, y), as
|
574 |
|
|
defined in Annex A of ISO/IEC 13818-2, has values but values within
|
575 |
|
|
the range [-384, 383] for each coded block.
|
576 |
|
|
|
577 |
|
|
A set of bitstreams constructed according to some of those
|
578 |
|
|
specifications is provided as an electronic annex to this document.
|
579 |
|
|
|
580 |
|
|
Test Bitstream #1
|
581 |
|
|
|
582 |
|
|
Specification: A series of consecutive frame B-pictures with all
|
583 |
|
|
macroblocks using bi-directional field-based prediction. Luminance
|
584 |
|
|
sample rate and bitrate are the maximum allowed for the
|
585 |
|
|
profile-and-level combination. Half-sample interpolation in both the
|
586 |
|
|
horizontal and vertical directions, for all luminance and chrominance
|
587 |
|
|
blocks.
|
588 |
|
|
|
589 |
|
|
Functional stage: prediction bandwidth
|
590 |
|
|
|
591 |
|
|
Purpose: Check that the decoder handles the worst case of prediction
|
592 |
|
|
bandwidth. Field-based prediction in frame pictures have the largest
|
593 |
|
|
prediction bandwidth overhead. Picture buffers organized as frames
|
594 |
|
|
(interleaved fields) and macroblocks stored in contiguous address page
|
595 |
|
|
segments would have the greatest penalty. Effective filtered block size
|
596 |
|
|
is 16x8.
|
597 |
|
|
|
598 |
|
|
Test Bitstream #2
|
599 |
|
|
|
600 |
|
|
Specification: A bitstream with a B-picture as large as the maximum
|
601 |
|
|
vbv_buffer_size allowed for the profile-and-level combination, using
|
602 |
|
|
long VLCs (not via escapes) as much as possible. Luminance sample rate
|
603 |
|
|
and bitrate are the maximum allowed for the profile-and-level
|
604 |
|
|
combination.
|
605 |
|
|
|
606 |
|
|
Functional stage: VLD
|
607 |
|
|
|
608 |
|
|
Purpose: Check that decoder works in this situation. A large B-picture
|
609 |
|
|
located after several smaller coded pictures can catch a decoder off
|
610 |
|
|
guard.
|
611 |
|
|
|
612 |
|
|
Test Bitstream #3
|
613 |
|
|
|
614 |
|
|
Specification: A series of consecutive frame P-pictures with all
|
615 |
|
|
macroblocks using dual-prime prediction. Luminance sample rate and
|
616 |
|
|
bitrate are the maximum allowed for the profile-and-level combination.
|
617 |
|
|
Maximize number of half-sample prediction in both the horizontal and
|
618 |
|
|
vertical directions, for both luminance and chrominance blocks.
|
619 |
|
|
|
620 |
|
|
Functional stage: prediction bandwidth
|
621 |
|
|
|
622 |
|
|
Purpose: Check that the decoder handles the worst case of prediction
|
623 |
|
|
bandwidth. Prediction bandwidth is at a maximum in this mode due to
|
624 |
|
|
the small block sizes and two prediction sources.
|
625 |
|
|
|
626 |
|
|
Test Bitstream #4
|
627 |
|
|
|
628 |
|
|
Specification: A bitstream with all macroblock_type transitions in
|
629 |
|
|
frame and field pictures.
|
630 |
|
|
|
631 |
|
|
Functional stage: parser
|
632 |
|
|
|
633 |
|
|
Purpose: Check that decoder handles all scenarios in parsing tree.
|
634 |
|
|
|
635 |
|
|
Test Bitstream #5
|
636 |
|
|
|
637 |
|
|
Specification: A bitstream where every slice contains only one
|
638 |
|
|
macroblock, and where intra_slice_bit is present in every slice.
|
639 |
|
|
Luminance sample rate and bitrate are the maximum allowed for the
|
640 |
|
|
profile-and-level combination.
|
641 |
|
|
|
642 |
|
|
Functional stage: VLD and parser
|
643 |
|
|
|
644 |
|
|
Purpose: Check that decoder handles bitstreams with very short slices.
|
645 |
|
|
CPU-oriented designs have large overhead for each slice and macroblock
|
646 |
|
|
header.
|
647 |
|
|
|
648 |
|
|
Test Bitstream #6
|
649 |
|
|
|
650 |
|
|
Specification: A bitstream with many different combinations of values
|
651 |
|
|
for top_field_first, repeat_first_field, alternate_scan,
|
652 |
|
|
intra_vlc_format, picture_structure, concealment_motion_vectors,
|
653 |
|
|
intra_dc_precision, f_codes, q_scale_type, progressive_frame,
|
654 |
|
|
frame_pred_frame_dct, variable numbers of consecutive coded B-frames,
|
655 |
|
|
coded P-frames and coded I-frames, with some coded I-frames in the form
|
656 |
|
|
of "I-P field-pictures", with downloaded quantization weighting
|
657 |
|
|
matrices. Ideally the bitstream should contain all possible legal
|
658 |
|
|
combinations. Various syntax switches are toggled from
|
659 |
|
|
picture-to-picture.
|
660 |
|
|
|
661 |
|
|
Functional stage: parser and control
|
662 |
|
|
|
663 |
|
|
Purpose: Check that decoder handle all scenarios.
|
664 |
|
|
|
665 |
|
|
Test Bitstream #7
|
666 |
|
|
|
667 |
|
|
Specification: A bitstream with simultaneous burst of coded bits and
|
668 |
|
|
maximum bandwidth dual-prime MC, followed by remaining macroblocks
|
669 |
|
|
outside the burst with Dual Prime MC. Luminance sample rate and
|
670 |
|
|
bitrate are the maximum allowed for the profile-and-level combination.
|
671 |
|
|
Maximize number of half-sample predictions in both the horizontal and
|
672 |
|
|
vertical directions, luminance and chrominance blocks.
|
673 |
|
|
|
674 |
|
|
Functional stage: VLD and prediction bandwidth
|
675 |
|
|
|
676 |
|
|
Purpose: DRAM is shared by VLD, MCP, and Display functions. This
|
677 |
|
|
combination presents the longest sustainable period (whole picture) for
|
678 |
|
|
DRAM bandwidth
|
679 |
|
|
|
680 |
|
|
Test Bitstream #8
|
681 |
|
|
|
682 |
|
|
Specification: All possible VLCs symbols and IDCT mismatch. Mismatch
|
683 |
|
|
and saturation.
|
684 |
|
|
|
685 |
|
|
Functional stage: parser ; IDCT accuracy
|
686 |
|
|
|
687 |
|
|
Purpose: Test that decoders has included the complete VLC tables and
|
688 |
|
|
implements mismatch control.
|
689 |
|
|
|
690 |
|
|
Test Bitstream #9
|
691 |
|
|
|
692 |
|
|
This test has been removed from the test suite specification.
|
693 |
|
|
|
694 |
|
|
Test Bitstream #10
|
695 |
|
|
|
696 |
|
|
Specification: Bitstream with only intra macroblocks using only the DC
|
697 |
|
|
coefficient and predicted macroblocks having no DCT coefficients.
|
698 |
|
|
Reconstructed motion vectors used for predicting both luminance and
|
699 |
|
|
chrominance have all possible combinations of half-sample and
|
700 |
|
|
full-sample values, both for the horizontal and the vertical
|
701 |
|
|
coordinates, and all those combinations are used for each prediction
|
702 |
|
|
mode in both frame and field pictures, and with both interlaced and
|
703 |
|
|
progressive chroma format in the case of 4:2:0 frame pictures.
|
704 |
|
|
|
705 |
|
|
Functional stage: MCP
|
706 |
|
|
|
707 |
|
|
Purpose: Check that decoder implements motion compensation stages with
|
708 |
|
|
full accuracy in all cases. Except for reconstruction of Intra DC
|
709 |
|
|
blocks, the test does not involve other decoder functions such as IDCT,
|
710 |
|
|
inverse quantization and mismatch control. When a static decoder test
|
711 |
|
|
is performed using the static test technique described in this
|
712 |
|
|
document, the decoder under test shall reconstruct samples identical to
|
713 |
|
|
those reconstructed by a reference decoder for all predicted
|
714 |
|
|
macroblocks.
|
715 |
|
|
|
716 |
|
|
Test Bitstream #11
|
717 |
|
|
|
718 |
|
|
Specification: Flat distribution of VLC events (worst case for constant
|
719 |
|
|
rate symbolic VLDs) on B and P pictures. Luminance sample rate and
|
720 |
|
|
bitrate are the maximum allowed for the profile-and-level combination.
|
721 |
|
|
|
722 |
|
|
Functional stage: VLD
|
723 |
|
|
|
724 |
|
|
Purpose: Check that decoder does not rely on statistically low count
|
725 |
|
|
of symbols over global areas to meet real-time constraints.
|
726 |
|
|
|
727 |
|
|
Test Bitstream #12
|
728 |
|
|
|
729 |
|
|
Specification: Bursty case for number of bits per macroblock with
|
730 |
|
|
different burst location within picture (top, bottom), followed
|
731 |
|
|
Bi-directional macroblocks. All motion vectors with half-sample
|
732 |
|
|
components. Macroblocks outside the burst concentration have all
|
733 |
|
|
bi-directional prediction Luminance sample rate and bitrate are the
|
734 |
|
|
maximum allowed for the profile-and-level combination. Half-sample in
|
735 |
|
|
both the horizontal and vertical directions, luminance and chrominance
|
736 |
|
|
blocks. Maximize number of prediction blocks required to reconstruct a
|
737 |
|
|
macroblock.
|
738 |
|
|
|
739 |
|
|
Functional stage: VLD and prediction bandwidth
|
740 |
|
|
|
741 |
|
|
Purpose: Check that decoder does not rely upon statistically small
|
742 |
|
|
number of coded bits over local areas.
|
743 |
|
|
|
744 |
|
|
Test Bitstream #13
|
745 |
|
|
|
746 |
|
|
Specification: A series of consecutive Field-coded P-pictures, all
|
747 |
|
|
macroblocks using Dual Prime prediction. As many half-sample
|
748 |
|
|
components as possible in both the horizontal and vertical directions,
|
749 |
|
|
luminance and chrominance blocks. Luminance sample rate and bitrate
|
750 |
|
|
are the maximum allowed for the profile-and-level combination.
|
751 |
|
|
Maximize number of prediction blocks required to reconstruct a
|
752 |
|
|
macroblock.
|
753 |
|
|
|
754 |
|
|
Functional stage: prediction bandwidth
|
755 |
|
|
|
756 |
|
|
Purpose: Check that decoder handles largest prediction bandwidth with
|
757 |
|
|
field-coded P-pictures. This test is somehow similar to Test Bitstream
|
758 |
|
|
#3, except that it uses field-pictures with Dual Prime.
|
759 |
|
|
|
760 |
|
|
Test Bitstream #14
|
761 |
|
|
|
762 |
|
|
Specification: A bitstream with a series of consecutive Field coded
|
763 |
|
|
B-pictures with 16x8 bi-directional macroblock motion compensation.
|
764 |
|
|
Sequence contains many consecutive B pictures. Luminance sample rate
|
765 |
|
|
and bitrate are the maximum allowed for the profile-and-level
|
766 |
|
|
combination. Use half-sample prediction in both the horizontal and
|
767 |
|
|
vertical directions, for all luminance and chrominance blocks.
|
768 |
|
|
Maximize number of prediction blocks required to reconstruct a
|
769 |
|
|
macroblock.
|
770 |
|
|
|
771 |
|
|
Functional stage: prediction bandwidth
|
772 |
|
|
|
773 |
|
|
Purpose: Check that decoder can cope with this case of worst case
|
774 |
|
|
bandwidth. This test is somehow similar to Test Bitstream #1, except
|
775 |
|
|
that it uses field-pictures.
|
776 |
|
|
|
777 |
|
|
Test Bitstream #15
|
778 |
|
|
|
779 |
|
|
Specification: Bitstream with R/P bits worth of extra_bit_slice in
|
780 |
|
|
picture. Luminance sample rate and bitrate are the maximum allowed for
|
781 |
|
|
the profile-and-level combination.
|
782 |
|
|
|
783 |
|
|
Functional stage: Parser
|
784 |
|
|
|
785 |
|
|
Purpose: Check that decoder is capable of handling a large number of
|
786 |
|
|
bits concentrated in the extra bit slice loop.
|
787 |
|
|
|
788 |
|
|
Test Bitstream #16
|
789 |
|
|
|
790 |
|
|
Specification: ISO/IEC 11172-2 (MPEG-1) constrained parameter
|
791 |
|
|
bitstream. Luminance sample rate and bitrate are the maximum allowed
|
792 |
|
|
for MPEG-1 constrained parameter bitstream.
|
793 |
|
|
|
794 |
|
|
Functional stage: overall
|
795 |
|
|
|
796 |
|
|
Purpose: Check that decoder can decode MPEG-1 constrained bitstreams.
|
797 |
|
|
|
798 |
|
|
Test Bitstream #17
|
799 |
|
|
|
800 |
|
|
This test has been removed from the test suite specification.
|
801 |
|
|
|
802 |
|
|
Test Bitstream #18
|
803 |
|
|
|
804 |
|
|
Specification: Low delay sequence with skipped pictures. Luminance
|
805 |
|
|
sample rate and bitrate are the maximum allowed for the
|
806 |
|
|
profile-and-level combination.
|
807 |
|
|
|
808 |
|
|
Functional stage: controller
|
809 |
|
|
|
810 |
|
|
Purpose: Check that decoder is capable of decoding low delay mode and
|
811 |
|
|
knows how to recognize and deal with skipped pictures and buffer
|
812 |
|
|
underflows in the VBV model.
|
813 |
|
|
|
814 |
|
|
Test Bitstream #19
|
815 |
|
|
|
816 |
|
|
Specification: A bitstream implementing a test close to the IEEE 1180
|
817 |
|
|
IDCT mismatch test, to test the decoder's IDCT statistical accuracy.
|
818 |
|
|
Can be done using P-pictures with a flat custom quantization matrix
|
819 |
|
|
with all 16, and a quantizer stepsize of 0.5. Use whatever number of
|
820 |
|
|
frames are required to satisfy statistic count. Note that because of
|
821 |
|
|
saturation in [0, 255], the test cannot emulate exactly the IEEE 1180
|
822 |
|
|
IDCT test.
|
823 |
|
|
|
824 |
|
|
Functional stage: IDCT
|
825 |
|
|
|
826 |
|
|
Purpose: Check IDCT decoder accuracy. This is not a drift test since
|
827 |
|
|
all macroblocks are of type Intra.
|
828 |
|
|
|
829 |
|
|
Test Bitstream #20
|
830 |
|
|
|
831 |
|
|
Restriction: Only for profile-and-level combinations supporting SNR
|
832 |
|
|
scalability:
|
833 |
|
|
|
834 |
|
|
Specification: Maximum VLD bandwidth on both layers (base and
|
835 |
|
|
enhancement) with burst of escape codes, bursts of short VLCs and
|
836 |
|
|
maximum buffer size on both layers Luminance sample rate and bitrate
|
837 |
|
|
are the maximum allowed for the profile-and-level combination.
|
838 |
|
|
|
839 |
|
|
Functional stage: test of parser(s)
|
840 |
|
|
|
841 |
|
|
Purpose: Test of the maximum VLD bandwidth on both layers (base and
|
842 |
|
|
enhancement) with burst of escape codes, bursts of short VLCs and
|
843 |
|
|
maximum buffer size on both layers. Some designs may not be able to
|
844 |
|
|
handle both layers
|
845 |
|
|
|
846 |
|
|
Test Bitstream #21
|
847 |
|
|
|
848 |
|
|
Restriction: Only for profile-and-level combinations supporting SNR
|
849 |
|
|
scalability:
|
850 |
|
|
|
851 |
|
|
Specification: Skipped macroblocks on base layer, on enhancement layer,
|
852 |
|
|
and on both layers together. Test of the DCT type in the enhancement
|
853 |
|
|
layer while macroblocks are skipped in the base layer. Luminance
|
854 |
|
|
sample rate and bitrate are the maximum allowed for the
|
855 |
|
|
profile-and-level combination.
|
856 |
|
|
|
857 |
|
|
Functional stage: test of parser
|
858 |
|
|
|
859 |
|
|
Purpose: Test of skipped MBs on base layer, on enhancement layer, and
|
860 |
|
|
on both layers together. Test of the DCT type in the enhancement layer
|
861 |
|
|
while macroblocks are skipped in the base layer. Sloppy decoders may
|
862 |
|
|
not be able to handle skipped macroblocks in one of the layers.
|
863 |
|
|
|
864 |
|
|
Test Bitstream #22
|
865 |
|
|
|
866 |
|
|
Restriction: Only for profile-and-level combinations supporting SNR
|
867 |
|
|
scalability:
|
868 |
|
|
|
869 |
|
|
Specification: Different weighting matrices, different scanning on the
|
870 |
|
|
two layers. Luminance sample rate and bitrate are the maximum allowed
|
871 |
|
|
for the profile-and-level combination.
|
872 |
|
|
|
873 |
|
|
Functional stage: test of decoder
|
874 |
|
|
|
875 |
|
|
Purpose: Test of different weighting matrices, different scanning on
|
876 |
|
|
the two layers. Sloppy decoders may not be able to handle different
|
877 |
|
|
weighting matrices or scanning order.
|
878 |
|
|
|
879 |
|
|
Test Bitstream #23
|
880 |
|
|
|
881 |
|
|
Restriction: Only for profile-and-level combinations supporting Spatial
|
882 |
|
|
scalability:
|
883 |
|
|
|
884 |
|
|
Specification: All macroblock transitions in enhancement layer, all
|
885 |
|
|
possible VLC symbols in enhancement layer, and all cases of motion
|
886 |
|
|
vector updating, 3:1 horizontal and 2:1 vertical up-sampling, panning,
|
887 |
|
|
all cases of up-conversion (interlace to interlace, interlace to
|
888 |
|
|
progressive, progressive to interlace, etc.), all weight code tables,
|
889 |
|
|
regions with spatial prediction only.
|
890 |
|
|
|
891 |
|
|
Functional stage: static test of spatially scalable decoder
|
892 |
|
|
|
893 |
|
|
Purpose: Test of all macroblock transitions in enhancement layer, all
|
894 |
|
|
possible VLC symbols in enhancement layer, and all cases of motion
|
895 |
|
|
vector updating. Sloppy decoders may not be able to handle all
|
896 |
|
|
possible cases.
|
897 |
|
|
|
898 |
|
|
Test Bitstream #24
|
899 |
|
|
|
900 |
|
|
Restriction: Only for profile-and-level combinations supporting Spatial
|
901 |
|
|
scalability:
|
902 |
|
|
|
903 |
|
|
Specification: Different numbers of consecutive I, P and B frames in
|
904 |
|
|
base and enhancement layer, spatial prediction based on the second most
|
905 |
|
|
recently decoded base layer picture, mixing frame and field pictures,
|
906 |
|
|
2:1 upsampling in both directions.
|
907 |
|
|
|
908 |
|
|
Functional stage: static test of spatially scalable decoder
|
909 |
|
|
|
910 |
|
|
Purpose: Test that decoder can cope with different numbers of
|
911 |
|
|
consecutive I, P and B frames in base and enhancement layer, test that
|
912 |
|
|
decoder handles properly spatial predictions based on the second most
|
913 |
|
|
recently decoded base layer picture, test that decoder handles properly
|
914 |
|
|
mixed frame and field pictures.
|
915 |
|
|
|
916 |
|
|
Test Bitstream #25
|
917 |
|
|
|
918 |
|
|
Specification: Bitstream causing maximum saturation of the inverse
|
919 |
|
|
quantization by creating the greatest amplitude combinations of
|
920 |
|
|
macroblock quantization (code 31), visual weighting matrix (value 255),
|
921 |
|
|
and DCT coefficient (value -2047 or 2047).
|
922 |
|
|
|
923 |
|
|
Functional stage: inverse quantization
|
924 |
|
|
|
925 |
|
|
Purpose: Test that decoder implements properly the saturation of the
|
926 |
|
|
inverse quantization (before the mismatch control).
|
927 |
|
|
|
928 |
|
|
Test Bitstream #26
|
929 |
|
|
|
930 |
|
|
Specification: Bitstream causing large positive sample domain
|
931 |
|
|
coefficients f[y][x] (e.g., 255) added to large predicted values
|
932 |
|
|
p[y][x] (e.g., 255), or large negative sample domain coefficients
|
933 |
|
|
f[y][x] (e.g., -256) added to small predicted values p[y][x] (e.g.,
|
934 |
|
|
0).
|
935 |
|
|
|
936 |
|
|
Functional stage: addition of the output of IDCT f[y][x] to the
|
937 |
|
|
predicted values p[y][x] and saturation of the result to the range [0,
|
938 |
|
|
255].
|
939 |
|
|
|
940 |
|
|
Purpose: Test that decoder implements properly the addition of the
|
941 |
|
|
output of IDCT f[y][x] to the predicted values p[y][x] and saturation
|
942 |
|
|
of the result to the range [0, 255].
|
943 |
|
|
|
944 |
|
|
Test Bitstream #27
|
945 |
|
|
|
946 |
|
|
Specification: A bitstream with 16 bytes "extra_information_slice" in
|
947 |
|
|
slice headers, and groups of 4096 bit of reserved and compatible
|
948 |
|
|
extensions.
|
949 |
|
|
|
950 |
|
|
Functional stage: parser (discarding of reserved data).
|
951 |
|
|
|
952 |
|
|
Purpose: Test that decoder implements correctly parsing and discarding
|
953 |
|
|
of certain types of reserved data (to ensure forward compatibility with
|
954 |
|
|
future extensions of the standard), at least when a reasonable amount
|
955 |
|
|
of those reserved data are present.
|
956 |
|
|
|
957 |
|
|
Test Bitstream #28
|
958 |
|
|
|
959 |
|
|
Specification: A bitstream with zero byte stuffing :
|
960 |
|
|
|
961 |
|
|
In the first half of the bitstream : at one of the legal positions in
|
962 |
|
|
the bitstream, there will be at least 0.9*VBV_buffer_size worth of
|
963 |
|
|
zero bit stuffing.
|
964 |
|
|
|
965 |
|
|
In the second half of the bitstream, there will be in each picture,
|
966 |
|
|
at a legal position, between R/P and 0.9*R/P zero bit stuffing
|
967 |
|
|
(R=maximum bit rate of the bitstream ; 1/P= time between two
|
968 |
|
|
consecutive pictures).
|
969 |
|
|
|
970 |
|
|
Functional stage: parser (discarding of stuffing).
|
971 |
|
|
|
972 |
|
|
Purpose: Test that decoder is capable of discarding stuffing in the
|
973 |
|
|
worst case (almost a full VBV worth of stuffing).
|
974 |
|
|
|
975 |
|
|
Test Bitstream #29
|
976 |
|
|
|
977 |
|
|
Specification: A bitstream with frame pictures, with motion vectors
|
978 |
|
|
that are as large as permitted by the profile-and-level combination.
|
979 |
|
|
|
980 |
|
|
Functional stage: reconstruction of motion vectors, MCP, control
|
981 |
|
|
|
982 |
|
|
Purpose: Check that decoder implements motion compensation properly
|
983 |
|
|
when motion vectors are very large.
|
984 |
|
|
|
985 |
|
|
Test Bitstream #30
|
986 |
|
|
|
987 |
|
|
Specification: A bitstream with quantizer matrices (intra and
|
988 |
|
|
non-intra, and if permitted, chroma matrices too). Matrices are not
|
989 |
|
|
symmetrical (e.g., matrix coefficients are random numbers in the range
|
990 |
|
|
[1, 255]). If permitted, use of both scanning orders.
|
991 |
|
|
|
992 |
|
|
Functional stage: quantizer matrix download, matrix scanning.
|
993 |
|
|
|
994 |
|
|
Purpose: Check that decoder can download properly quantizer matrices
|
995 |
|
|
and that it uses of correct scanning of the matrices (i.e. not
|
996 |
|
|
transposed).
|
997 |
|
|
|
998 |
|
|
Test Bitstream #31
|
999 |
|
|
|
1000 |
|
|
Specification: An ISO/IEC 11172-2 bitstream with D-pictures only, with
|
1001 |
|
|
constrained_parameter_flag = 0, frame size, bitrate and vbv_buffer_size
|
1002 |
|
|
set to the maximum allowed by the profile-and-level combination of the
|
1003 |
|
|
decoder.
|
1004 |
|
|
|
1005 |
|
|
Functional stage: overall
|
1006 |
|
|
|
1007 |
|
|
Purpose: Check that decoder can decode ISO/IEC 11172-2 bitstreams with
|
1008 |
|
|
D-picture only, with parameters in the range supported by the
|
1009 |
|
|
profile-and-level combination of the decoder.
|
1010 |
|
|
|
1011 |
|
|
Test Bitstream #32
|
1012 |
|
|
|
1013 |
|
|
Specification: An ISO/IEC 11172-2 bitstream with
|
1014 |
|
|
constrained_parameter_flag = 1 and horizontal_size = 768.
|
1015 |
|
|
|
1016 |
|
|
Functional stage: overall
|
1017 |
|
|
|
1018 |
|
|
Purpose: Check that decoder can decode ISO/IEC 11172-2 constrained
|
1019 |
|
|
parameter bitstreams with the maximum .horizontal_size allowed when
|
1020 |
|
|
constrained_parameter_flag = 1.
|
1021 |
|
|
|
1022 |
|
|
Test Bitstream #33
|
1023 |
|
|
|
1024 |
|
|
Specification: An ISO/IEC 11172-2 bitstream with
|
1025 |
|
|
constrained_parameter_flag = 1, vertical_size > 480 lines and
|
1026 |
|
|
frame_rate different from '25Hz'.
|
1027 |
|
|
|
1028 |
|
|
Functional stage: overall
|
1029 |
|
|
|
1030 |
|
|
Purpose: Check that decoder can decode ISO/IEC 11172-2 constrained
|
1031 |
|
|
parameter bitstreams vertical_size > 480 lines and frame_rate different
|
1032 |
|
|
from '25Hz' (this combination is not allowed in some profile-and-level
|
1033 |
|
|
combinations, but is allowed for ISO/IEC 11172-2 constrained parameter
|
1034 |
|
|
bitstreams, as long as horizontal_size is small enough).
|
1035 |
|
|
|
1036 |
|
|
Test Bitstream #34
|
1037 |
|
|
|
1038 |
|
|
Specification: A bitstream in which the output of the non-saturated
|
1039 |
|
|
integer number mathematical IDCT f ' (x, y), as defined in Annex A of
|
1040 |
|
|
ISO/IEC 13818-2, has large absolute values but values within the range
|
1041 |
|
|
[-384, 383] for each coded block. If decoder under test uses the same
|
1042 |
|
|
IDCT for decoding ISO/IEC 11172-2 and ISO/IEC 13818-2 bitstreams,
|
1043 |
|
|
then this test bitstream can be implemented as an ISO/IEC 11172-2
|
1044 |
|
|
constrained parameter bitstream.
|
1045 |
|
|
|
1046 |
|
|
Functional stage: IDCT
|
1047 |
|
|
|
1048 |
|
|
Purpose: Check that IDCT decoder accuracy meets the requirements
|
1049 |
|
|
defined in Annex A. The peak error for a compliant decoder shall be
|
1050 |
|
|
less or equal to than 2 when decoding this bitstream. Note that for
|
1051 |
|
|
blocks where f ' (x, y) has values within the range [-300, 300],
|
1052 |
|
|
decoders that have a peak error larger than 1 may not be compliant with
|
1053 |
|
|
the IEEE 1180 IDCT specification.
|
1054 |
|
|
|
1055 |
|
|
2.4.5.4 Implementation of the static test
|
1056 |
|
|
|
1057 |
|
|
For each bitstream of the test suite, the following operations are
|
1058 |
|
|
performed.
|
1059 |
|
|
|
1060 |
|
|
The bitstream is decoded by the decoder under test. All the samples
|
1061 |
|
|
reconstructed by the decoder under test are captured and stored for
|
1062 |
|
|
future use.
|
1063 |
|
|
|
1064 |
|
|
The bitstream is then decoded by the reference decoder as follows:
|
1065 |
|
|
|
1066 |
|
|
Before decoding each P- or B-picture, the frame buffers of the
|
1067 |
|
|
reference decoder are initialized with the reconstructed samples
|
1068 |
|
|
captured from the decoder under test that correspond to those reference
|
1069 |
|
|
frames.
|
1070 |
|
|
|
1071 |
|
|
This method called "frame buffer intercept method" guarantees that the
|
1072 |
|
|
decoder under test and the reference decoder use the same reference
|
1073 |
|
|
frames, and therefore that mismatch does not accumulate. See Figure
|
1074 |
|
|
1.
|
1075 |
|
|
|
1076 |
|
|
Then the samples reconstructed by the reference decoder are captured
|
1077 |
|
|
for each reconstructed picture, and compared to those reconstructed by
|
1078 |
|
|
the decoder under test (previously captured) for the same picture.
|
1079 |
|
|
|
1080 |
|
|
This methodology guarantees that there cannot be accumulations of
|
1081 |
|
|
errors, and that the difference observed for each sample only involves
|
1082 |
|
|
one IDCT process.
|
1083 |
|
|
|
1084 |
|
|
|
1085 |
|
|
Figure 1. Frame buffer intercept method
|
1086 |
|
|
|
1087 |
|
|
[B]---->[S]---> (+) --[C]--------> [O]
|
1088 |
|
|
| ^
|
1089 |
|
|
| | Test Decoder
|
1090 |
|
|
| |
|
1091 |
|
|
| [MCP]<--[R]
|
1092 |
|
|
| [e]
|
1093 |
|
|
| [f]
|
1094 |
|
|
| [e]
|
1095 |
|
|
| [r]
|
1096 |
|
|
| [e]
|
1097 |
|
|
| [n]
|
1098 |
|
|
| [c]
|
1099 |
|
|
| [MCP]<--[e] Reference Decoder
|
1100 |
|
|
| |
|
1101 |
|
|
| |
|
1102 |
|
|
--->[S]---->(+) ---[C]--------> [O]
|
1103 |
|
|
|
1104 |
|
|
|
1105 |
|
|
B: test bitstream
|
1106 |
|
|
S: decoding processing units ISO/IEC 13818-2 sections 7.2 to 7.5
|
1107 |
|
|
MCP: motion compensation unit (ISO/IEC 13818-2 Section 7.6)
|
1108 |
|
|
R: reference frame
|
1109 |
|
|
O: output of decoder (reconstructed samples)
|
1110 |
|
|
C: clipping stage [0,+255]
|
1111 |
|
|
U: current frame
|
1112 |
|
|
|
1113 |
|
|
Note: R is kept identical in both the Reference and Test Decoders.
|
1114 |
|
|
|
1115 |
|
|
2.4.5.5 Implementation of the dynamic test
|
1116 |
|
|
|
1117 |
|
|
The dynamic test is often easier to perform on the complete decoder
|
1118 |
|
|
system, which includes a systems decoder, a video decoder and a display
|
1119 |
|
|
process. It is possible to record the output of the display process
|
1120 |
|
|
and to check that display order and timing of fields or frames are
|
1121 |
|
|
correct. However, since the display process is not within the
|
1122 |
|
|
normative scope of ISO/IEC 13818-2, there may be cases where the output
|
1123 |
|
|
of the display process is wrong even though the video decoder is
|
1124 |
|
|
compliant. In this case, the output of the video decoder itself
|
1125 |
|
|
(before the display process) must be captured in order to perform the
|
1126 |
|
|
dynamic tests on the video decoder.
|
1127 |
|
|
|
1128 |
|
|
The test includes verifying that the output of the decoding process
|
1129 |
|
|
matches exactly the specification of section 7.12 of ISO/IEC 13818-2,
|
1130 |
|
|
both in terms of sequence of events and in terms of timing between
|
1131 |
|
|
events, the evens considered being the output of a reconstructed field
|
1132 |
|
|
or frame by the decoder to the display process.
|
1133 |
|
|
|
1134 |
|
|
In particular the field or frame order and timing shall be correct,
|
1135 |
|
|
field parity must be accurate (e.g. the first output field of
|
1136 |
|
|
interlaced frame with top_field_first equals to zero must be the bottom
|
1137 |
|
|
field), and that fields or frames that are coded as being repeated are
|
1138 |
|
|
indeed repeated at the output of the decoding process.
|
1139 |
|
|
|
1140 |
|
|
2.4.5.6 Decoder conformance
|
1141 |
|
|
|
1142 |
|
|
In order for a decoder of a particular profile-and-level to claim
|
1143 |
|
|
compliance to the standard described by this document, the decoder
|
1144 |
|
|
shall pass successfully both the static test defined in section 2.4.5.1
|
1145 |
|
|
and the dynamic test defined in section 2.4.5.2 with all the bitstreams
|
1146 |
|
|
of the normative test suite specified for testing decoders of this
|
1147 |
|
|
particular profile-and-level.
|
1148 |
|
|
|
1149 |
|
|
The normative test suites for each profile-and-level combination are
|
1150 |
|
|
defined by Table 1-1. The test suite for a particular
|
1151 |
|
|
profile-and-level combination is the list of bitstreams that are marked
|
1152 |
|
|
with an 'x' in the column corresponding to that profile-and-level
|
1153 |
|
|
combination. In Table 1-1, "test bitstream directory" is the name of
|
1154 |
|
|
the directory that contain the test bitstream (and associated data) in
|
1155 |
|
|
the electronic annex.
|
1156 |
|
|
|
1157 |
|
|
When the test suite for a profile-and-level combination does not
|
1158 |
|
|
include any bitstream of this same profile-and-level, it is not
|
1159 |
|
|
possible to test adequately compliance to the standard for decoders of
|
1160 |
|
|
that profile-and-level. At this time this standard provides no
|
1161 |
|
|
adequate tests to verify compliance of decoders of the following
|
1162 |
|
|
profile-and-level: HP@HL, HP@H-14, HP@ML, SNR@LL, MP@HL, MP@H-14,
|
1163 |
|
|
MP@LL.
|
1164 |
|
|
|
1165 |
|
|
Table 1-1
|
1166 |
|
|
|
1167 |
|
|
Normative test suite for HP@HL------------------------------------+
|
1168 |
|
|
Normative test suite for HP@H-14--------------------------------+ |
|
1169 |
|
|
Normative test suite for HP@ML--------------------------------+ | |
|
1170 |
|
|
Normative test suite for Spt@H-14---------------------------+ | | |
|
1171 |
|
|
Normative test suite for SNR@ML---------------------------+ | | | |
|
1172 |
|
|
Normative test suite for SNR@LL-------------------------+ | | | | |
|
1173 |
|
|
Normative test suite for MP@HL------------------------+ | | | | | |
|
1174 |
|
|
Normative test suite for MP@H-14--------------------+ | | | | | | |
|
1175 |
|
|
Normative test suite for MP@ML--------------------+ | | | | | | | |
|
1176 |
|
|
Normative test suite for MP@LL------------------+ | | | | | | | | |
|
1177 |
|
|
Normative test suite for SP@ML----------------+ | | | | | | | | | |
|
1178 |
|
|
Normative test suite for 4:2:2@ML-----------+ | | | | | | | | | | |
|
1179 |
|
|
Profile-and-level of the bitstream-+ | | | | | | | | | | | |
|
1180 |
|
|
+- Bitstream specification # | | | | | | | | | | | | |
|
1181 |
|
|
| +--test bitstream directory | | | | | | | | | | | | |
|
1182 |
|
|
| | | | | | | | | | | | | | |
|
1183 |
|
|
V V V V V V V V V V V V V V V
|
1184 |
|
|
30 tcela/tcela-16-matrices 11172-2 x x x x x x x x x x x x
|
1185 |
|
|
31 tcela/tcela-18-d-pict 11172-2 x x x x x x x x x x x x
|
1186 |
|
|
34 compcore/ccm1 11172-2 x x x x x x x x x x x x
|
1187 |
|
|
32 tcela/tcela-19-wide 11172-2 x x x x x x x x x x x x
|
1188 |
|
|
3 toshiba/toshiba_DPall-0 SP@ML x x . x x x x x x x x x
|
1189 |
|
|
3 nokia/nokia6 SP@ML x x . x x x x x x x x x
|
1190 |
|
|
3 nokia/nokia_7 SP@ML x x . x x x x x x x x x
|
1191 |
|
|
3 tcela/tcela-14-bff-dp SP@ML x x . x x x x x x x x x
|
1192 |
|
|
7 ibm/ibm-bw-v3 SP@ML x x . x x x x x x x x x
|
1193 |
|
|
13 tcela/tcela-8-fp-dp SP@ML x x . x x x x x x x x x
|
1194 |
|
|
13 tcela/tcela-9-fp-dp SP@ML x x . x x x x x x x x x
|
1195 |
|
|
16 mei/MEI.stream16v2 SP@ML x x . x x x x x x x x x
|
1196 |
|
|
16 mei/MEI.stream16.long SP@ML x x . x x x x x x x x x
|
1197 |
|
|
18 ntr/ntr_skipped_v3 SP@ML x x . x x x x x x x x x
|
1198 |
|
|
27 teracom/teracom_vlc4 SP@ML x x . x x x x x x x x x
|
1199 |
|
|
28 tcela/tcela-15-stuffing SP@ML x x . x x x x x x x x x
|
1200 |
|
|
29 tcela/tcela-17-dots SP@ML x x . x x x x x x x x x
|
1201 |
|
|
1 gi/gi4 MP@ML x . . x x x x x x x x x
|
1202 |
|
|
1 gi/gi6 MP@ML x . . x x x x x x x x x
|
1203 |
|
|
1 gi/gi_from_tape MP@ML x . . x x x x x x x x x
|
1204 |
|
|
1 gi/gi7 MP@ML x . . x x x x x x x x x
|
1205 |
|
|
1 gi/gi_9 MP@ML x . . x x x x x x x x x
|
1206 |
|
|
1 ti/TI_c1_2 MP@ML x . . x x x x x x x x x
|
1207 |
|
|
2 tceh/tceh_conf2 MP@ML x . . x x x x x x x x x
|
1208 |
|
|
2 mei/mei.2conftest.4f MP@ML x . . x x x x x x x x x
|
1209 |
|
|
2 mei/mei.2conftest.60f.new MP@ML x . . x x x x x x x x x
|
1210 |
|
|
4 tek/Tek-5.2 MP@ML x . . x x x x x x x x x
|
1211 |
|
|
4 tek/Tek-5-long MP@ML x . . x x x x x x x x x
|
1212 |
|
|
5 tcela/tcela-6-slices MP@ML x . . x x x x x x x x x
|
1213 |
|
|
5 tcela/tcela-7-slices MP@ML x . . x x x x x x x x x
|
1214 |
|
|
6 sony/sony-ct1 MP@ML x . . x x x x x x x x x
|
1215 |
|
|
6 sony/sony-ct2 MP@ML x . . x x x x x x x x x
|
1216 |
|
|
6 sony/sony-ct3 MP@ML x . . x x x x x x x x x
|
1217 |
|
|
6 sony/sony-ct4 MP@ML x . . x x x x x x x x x
|
1218 |
|
|
8 att/att_mismatch MP@ML x . . x x x x x x x x x
|
1219 |
|
|
8 teracom/teracom_vlc4 MP@ML x . . x x x x x x x x x
|
1220 |
|
|
10 ccett/mcp10ccett MP@ML x . . x x x x x x x x x
|
1221 |
|
|
11 lep/bits_conf_lep_11 MP@ML x . . x x x x x x x x x
|
1222 |
|
|
12 hhi/hhi_burst_short MP@ML x . . x x x x x x x x x
|
1223 |
|
|
12 hhi/hhi_burst_long MP@ML x . . x x x x x x x x x
|
1224 |
|
|
14 tcela/tcela-10-killer MP@ML x . . x x x x x x x x x
|
1225 |
|
|
23 tceh/tceh_conf23.v2 Spt@H-14 . . . . . . . . x . x x
|
1226 |
|
|
24 hhi/hhi_spat23 Spt@H-14 . . . . . . . . x . x x
|
1227 |
|
|
20 tceh/tceh25_conf SNR@ML . . . . . . . x x x x x
|
1228 |
|
|
22 hhi/hhi22_snr SNR@ML . . . . . . . x x x x x
|
1229 |
|
|
21 ti/ti_snr SNR@ML . . . . . . . x x x x x
|
1230 |
|
|
2 Tek6-422-bigBpic 4:2:2@ML x . . . . . . . . . . .
|
1231 |
|
|
2 Tek6-422-bigBpic-long 4:2:2@ML x . . . . . . . . . . .
|
1232 |
|
|
5 Tek7-422-smallSlices 4:2:2@ML x . . . . . . . . . . .
|
1233 |
|
|
5 Tek7-422-smallSlices-long 4:2:2@ML x . . . . . . . . . . .
|
1234 |
|
|
14 Tek8-422-16x8inBpics 4:2:2@ML x . . . . . . . . . . .
|
1235 |
|
|
14 Tek8-422-16x8inBpics-long 4:2:2@ML x . . . . . . . . . . .
|
1236 |
|
|
11 Tek9-422-uniformVLC 4:2:2@ML x . . . . . . . . . . .
|
1237 |
|
|
11 Tek9-422-uniformVLC-long 4:2:2@ML x . . . . . . . . . . .
|
1238 |
|
|
7 ibm_dp_intra_422 4:2:2@ML x . . . . . . . . . . .
|
1239 |
|
|
1 sony_422_id01-1 4:2:2@ML x . . . . . . . . . . .
|
1240 |
|
|
3 sony_422_id03-1 4:2:2@ML x . . . . . . . . . . .
|
1241 |
|
|
13 sony_422_id13-1 4:2:2@ML x . . . . . . . . . . .
|
1242 |
|
|
|
1243 |
|
|
Successfully passing the conformance tests defined in this document
|
1244 |
|
|
only provides a strong presumption that the decoder under test is
|
1245 |
|
|
compliant, i.e. that it does indeed meet all the requirements specified
|
1246 |
|
|
in ISO/IEC 13818-2.
|
1247 |
|
|
|
1248 |
|
|
Additional tests may be necessary to check more thoroughly that a
|
1249 |
|
|
decoder implements properly all the requirements specified in ISO/IEC
|
1250 |
|
|
13818-2.
|
1251 |
|
|
|
1252 |
|
|
2.4.6 Conformance of scalable bitstreams and decoders
|
1253 |
|
|
|
1254 |
|
|
This section contains additional information to clarify the compliance
|
1255 |
|
|
assessment procedure for profile-and-level combinations that include
|
1256 |
|
|
any of the scalable video coding methods that are defined in chapters
|
1257 |
|
|
7.7 to 7.11 of ISO/IEC 13818-2. It is to be seen as a supplement to
|
1258 |
|
|
the preceding part of chapter 2.4 of this specification.
|
1259 |
|
|
|
1260 |
|
|
Scalable video coding involves a plurality of video bitstreams forming
|
1261 |
|
|
a scalable hierarchy of bitstreams and the appropriate encoders and
|
1262 |
|
|
decoders to generate and decode them, respectively.
|
1263 |
|
|
|
1264 |
|
|
Some profiles-and-level combinations in Chapter 8 of ISO/IEC 13818-2
|
1265 |
|
|
define requirements for such scalable hierarchies of bitstreams and the
|
1266 |
|
|
associated decoders.
|
1267 |
|
|
|
1268 |
|
|
The assessment of the compliance of scalable video bitstream
|
1269 |
|
|
hierarchies and corresponding decoders is generally done as detailed in
|
1270 |
|
|
the preceding part of this chapter 2.4. However a couple of
|
1271 |
|
|
differences, related to the presence of a plurality of bitstreams in
|
1272 |
|
|
the scalable hierarchy must be noted:
|
1273 |
|
|
|
1274 |
|
|
The term 'bitstream' now refers to one out of a set of ISO/IEC 13818
|
1275 |
|
|
video bitstreams forming a scalable hierarchy of bitstreams.
|
1276 |
|
|
|
1277 |
|
|
The term 'encoder' now refers to a ISO/IEC 13818 video encoder defined
|
1278 |
|
|
as a process that generates a scalable hierarchy of ISO/IEC 13818 video
|
1279 |
|
|
bitstreams.
|
1280 |
|
|
|
1281 |
|
|
The term 'decoder' now refers to a ISO/IEC 13818 video decoder, i.e.,
|
1282 |
|
|
an embodiment of the decoding process for decoding a scalable hierarchy
|
1283 |
|
|
of bitstreams as specified by ISO/IEC 13818-2.
|
1284 |
|
|
|
1285 |
|
|
2.4.6.1 Definition of scalable video bitstream hierarchy compliance
|
1286 |
|
|
|
1287 |
|
|
In a compliant scalable hierarchy of bitstreams each individual
|
1288 |
|
|
bitstream shall be conformant (as defined in section 2.4.2) to its
|
1289 |
|
|
profile-and-level as specified in the sequence_extension() of the
|
1290 |
|
|
bitstream. Furthermore, the individual bitstreams of a scalable
|
1291 |
|
|
hierarchy shall meet additional (stricter) constraints defined in
|
1292 |
|
|
Chapter 8 of ISO/IEC 13818-2 for scalable profile-and-level
|
1293 |
|
|
combinations.
|
1294 |
|
|
|
1295 |
|
|
2.4.6.1.1 Requirements and restrictions related to profile-and-level
|
1296 |
|
|
|
1297 |
|
|
A compliant bitstream with a profile-and-level indication as specified
|
1298 |
|
|
in its sequence_extension() in conjunction with the associated
|
1299 |
|
|
(compliant) lower layer bitstream(s) of this scalable hierarchy shall
|
1300 |
|
|
be decodable by any compliant ISO/IEC 13818 video decoder that supports
|
1301 |
|
|
this profile-and-level combination.
|
1302 |
|
|
|
1303 |
|
|
2.4.6.1.2 Encoder requirements and recommendations
|
1304 |
|
|
|
1305 |
|
|
2.4.6.1.2.1 Encoder requirements
|
1306 |
|
|
|
1307 |
|
|
The requirements detailed in section 2.4.2.3 must be met for each
|
1308 |
|
|
individual bitstreams of the scalable hierarchy generated by an
|
1309 |
|
|
encoder.
|
1310 |
|
|
|
1311 |
|
|
2.4.6.1.2.2 Encoder recommendations
|
1312 |
|
|
|
1313 |
|
|
It is strongly recommended that scalable video encoders capable of
|
1314 |
|
|
producing P-pictures implement Note 2 of clause 7.4.4 of ISO/IEC
|
1315 |
|
|
138181-2 in each layer of the ordered set of bitstreams.
|
1316 |
|
|
|
1317 |
|
|
It is also strongly recommended that the temporal interval between
|
1318 |
|
|
frames using the same value for temporal_reference be as large as
|
1319 |
|
|
possible, so that ambiguities in the synchronisation of the bitstreams
|
1320 |
|
|
of a scalable hierarchy is unlikely when the hierarchy is not embedded
|
1321 |
|
|
in a systems multiplex according to ISO/IEC 13818-1 (MPEG-2 Systems).
|
1322 |
|
|
|
1323 |
|
|
2.4.6.2 Procedure for testing bitstream compliance
|
1324 |
|
|
|
1325 |
|
|
When testing the compliance of a bitstream that is member of a scalable
|
1326 |
|
|
hierarchy, the conformance test shall verify that the decoder does not
|
1327 |
|
|
violate the following two sets of constraints.
|
1328 |
|
|
|
1329 |
|
|
Constraints corresponding to the profile-and-level as specified in the
|
1330 |
|
|
sequence_extension() of the bitstream under test.
|
1331 |
|
|
|
1332 |
|
|
Additional constraints for the bitstream under test as given in the
|
1333 |
|
|
definition of the profile-and-level as specified in the
|
1334 |
|
|
sequence_extension() of the other layer bitstreams of the scalable
|
1335 |
|
|
hierarchy.
|
1336 |
|
|
|
1337 |
|
|
2.4.6.3 Definition of video decoder compliance
|
1338 |
|
|
|
1339 |
|
|
When a decoder claims to be compliant with a given scalable
|
1340 |
|
|
profile-and-level, the embedded decoder(s) that decode the associated
|
1341 |
|
|
lower layer bitstream(s) of a scalable bitstream hierarchy shall pass
|
1342 |
|
|
the conformance test corresponding to its (their) respective
|
1343 |
|
|
profile-and-level combination(s).
|
1344 |
|
|
|
1345 |
|
|
Any profile-and-level combination, options and parameter values that
|
1346 |
|
|
are allowed for the lower layer bitstream(s) according to the
|
1347 |
|
|
definition of the given profile-and-level of the decoder under test
|
1348 |
|
|
must be supported.
|
1349 |
|
|
|
1350 |
|
|
2.4.6.4 Procedure to test decoder compliance
|
1351 |
|
|
|
1352 |
|
|
Tests of the scalable functionalities of a decoder always involve the
|
1353 |
|
|
decoding of a bitstream from a scalable hierarchy including its lower
|
1354 |
|
|
layer bitstream(s), unless the base layer bitstream or any applicable
|
1355 |
|
|
non-scalable test bitstream is the only decoder input for a specific
|
1356 |
|
|
test.
|
1357 |
|
|
|
1358 |
|
|
Note that the test of a scalable decoder not only includes decoding of
|
1359 |
|
|
scalable hierarchies of bitstreams but also of non-scalable bitstreams
|
1360 |
|
|
conforming to those profile-and-level indications that must also be
|
1361 |
|
|
decodable by the scalable decoder under test according to Chapter 8.
|
1362 |
|
|
|
1363 |
|
|
2.4.6.4.1 Dynamic tests
|
1364 |
|
|
|
1365 |
|
|
Dynamic tests of a scalable decoder shall also check that the timing
|
1366 |
|
|
relation between the bitstreams of a scalable hierarchy is correct.
|
1367 |
|
|
|
1368 |
|
|
2.4.6.4.2 Specification of the test bitstreams
|
1369 |
|
|
|
1370 |
|
|
To test the compliance of a decoder of a profile-and-level allowing
|
1371 |
|
|
scalable coding, it is necessary to generate scalable hierarchies of
|
1372 |
|
|
bitstreams. The test bitstreams of the normative test suites provided
|
1373 |
|
|
for testing scalable profiles are individual video bitstreams. However
|
1374 |
|
|
it is necessary to multiplex these bitstreams according to ISO/IEC
|
1375 |
|
|
13818-1 (MPEG-2 Systems) to unambiguously convey the necessary timing
|
1376 |
|
|
information to the decoder. This simple exercise is left to the reader
|
1377 |
|
|
who is advised to study carefully ISO/IEC 13818-1 before generating a
|
1378 |
|
|
multiplexed bitstream.
|
1379 |
|
|
|
1380 |
|
|
2.4.6.4.3 Implementation of the static test for SNR scalability
|
1381 |
|
|
|
1382 |
|
|
In the case of SNR scalability, the frame buffer intercept method as
|
1383 |
|
|
detailed in section 2.4.5.4 shall be applied with a base layer and an
|
1384 |
|
|
enhancement layer bitstream instead of one input bitstream B. The
|
1385 |
|
|
decoding process S of the figure in section 2.4.5.4 decodes the two
|
1386 |
|
|
bitstreams according to ISO/IEC 13818-2 sections 7.2 to 7.5 and 7.8.
|
1387 |
|
|
|
1388 |
|
|
2.4.6.4.4 Implementation of the static test for spatial scalability
|
1389 |
|
|
|
1390 |
|
|
In case of spatial scalability, the frame buffer intercept method as
|
1391 |
|
|
detailed in section 2.4.5.4 shall be applied also to the spatial
|
1392 |
|
|
reference frames (i.e. the output frames of the lower layer decoder).
|
1393 |
|
|
|
1394 |
|
|
More precisely this means:
|
1395 |
|
|
|
1396 |
|
|
All bitstreams of the scalable hierarchy are decoded by the decoder
|
1397 |
|
|
under test. All the samples reconstructed by the decoder under test,
|
1398 |
|
|
including the samples reconstructed from decoding the lower layer
|
1399 |
|
|
bitstream(s), that are used for spatial prediction, are captured and
|
1400 |
|
|
stored for future use.
|
1401 |
|
|
|
1402 |
|
|
The compliance of the embedded lower layer decoder must be tested
|
1403 |
|
|
first, as described in chapter 2.4.5. Assuming a compliant embedded
|
1404 |
|
|
lower layer decoder within the decoder under test, now the upper layer
|
1405 |
|
|
bitstream is decoded by the reference decoder as follows:
|
1406 |
|
|
|
1407 |
|
|
Before decoding each P- or B-picture, the frame buffers for temporal
|
1408 |
|
|
prediction reference frames in the reference decoder are initialized
|
1409 |
|
|
with the reconstructed samples captured from the decoder under test
|
1410 |
|
|
that correspond to those reference frames.
|
1411 |
|
|
|
1412 |
|
|
Additionally the frame buffer for the spatial prediction reference
|
1413 |
|
|
frame of the reference decoder is initialized from the reconstructed
|
1414 |
|
|
samples corresponding to this reference frame and captured from the
|
1415 |
|
|
embedded lower layer decoder within the decoder under test.
|
1416 |
|
|
|
1417 |
|
|
2.4.6.4.5 Implementation of the dynamic test
|
1418 |
|
|
|
1419 |
|
|
A dynamic test of a scalable decoder should be done using a complete
|
1420 |
|
|
decoder system, which includes a systems decoder, a video decoder and a
|
1421 |
|
|
display process. This is to assure a proper timing relation between the
|
1422 |
|
|
bitstreams of a scalable hierarchy to be decoded.
|
1423 |
|
|
|
1424 |
|
|
|