OpenCores
URL https://opencores.org/ocsvn/mpeg2fpga/mpeg2fpga/trunk

Subversion Repositories mpeg2fpga

[/] [mpeg2fpga/] [trunk/] [doc/] [video-conformance.txt] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.