1、 Copyright 2017 by THE SOCIETY OF MOTION PICTURE AND TELEVISION ENGINEERS 445 Hamilton Avenue., White Plains, NY 10601 (914) 761-1100 Approved November 23, 2017 SMPTE RP 2073-2:2017 Revision of SMPTE RP 2073-2:2015 SMPTE RECOMMENDED PRACTICE VC-5 Video Essence Part 2: Conformance Specification Page
2、1 of 43 pages Table of Contents Pages Foreword 3 Intellectual Property 3 Introduction 3 1 Scope 4 2 Conformance Notation 4 3 Normative References 5 4 Terms and Definitions 5 5 Overview (Informative) 5 6 Description of the Test Materials 6 6.1 Source Code 6 6.2 VC-5 Parts 6 6.3 Reference Decoder 8 6.
3、4 Sample Encoder 10 6.5 Image Converter 13 6.6 Image Comparer 14 6.7 Test Cases 14 6.8 Testing Layers 15 6.9 Testing Sections 15 6.10 Testing Image Sections 15 6.11 Testing Image Section Layers 15 7 File Formats 16 7.1 Image File Formats 16 RP 2073-2:2017 Page 2 of 43 pages 7.2 Unformatted Image Fil
4、es 18 7.3 Component Array Files 18 7.4 DPX Image Files 18 7.5 Other Image File Formats 18 7.6 Bitstream File Formats 18 8 Conformance Testing (Informative) 19 8.1 Codec Test Script 19 8.2 Comprehensive Test Suite 21 9 Conformance Specification 21 9.1 Test Materials 21 9.2 Bitstream Conformance 22 9.
5、3 Decoder Conformance 22 10 Installing and Building the Test Materials 23 10.1 Test Materials Installation 23 10.2 Test Materials Contents 23 10.3 Build Scripts and Documentation 23 10.4 Test Materials Media 24 10.5 Building the Encoder and Decoder 25 Annex A Reference Bitstreams (Normative) 26 A.1
6、Bitstream Files 26 A.2 VC-5 Part 1 Bitstreams 26 A.3 VC-5 Part 3 Bitstreams 28 A.4 VC-5 Part 4 Bitstreams 29 A.5 VC-5 Part 5 Bitstreams 30 A.6 VC-5 Part 6 Bitstreams 31 Annex B Reference Images (Normative) 34 B.1 Image Files 34 B.2 VC-5 Part 1 Images 34 B.3 VC-5 Part 3 Images 36 B.4 VC-5 Part 4 Imag
7、es 37 B.5 VC-5 Part 5 Images 38 B.6 VC-5 Part 6 Images 40 Bibliography 43 RP 2073-2:2017 Page 3 of 43 pages Foreword SMPTE (the Society of Motion Picture and Television Engineers) is an internationally-recognized standards developing organization. Headquartered and incorporated in the United States
8、of America, SMPTE has members in over 80 countries on six continents. SMPTEs Engineering Documents, including Standards, Recommended Practices, and Engineering Guidelines, are prepared by SMPTEs Technology Committees. Participation in these Committees is open to all with a bona fide interest in thei
9、r work. SMPTE cooperates closely with other standards-developing organizations, including ISO, IEC and ITU. SMPTE Engineering Documents are drafted in accordance with the rules given in its Standards Operations Manual. This SMPTE Engineering Document was prepared by Technology Committee 10E. Intelle
10、ctual Property At the time of publication no notice had been received by SMPTE claiming patent rights essential to the implementation of this Engineering Document. However, attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. SMPTE sha
11、ll not be held responsible for identifying any or all such patent rights. Introduction This section is entirely informative and does not form an integral part of this Engineering Document. VC-5 is a wavelet-based intra-frame codec intended for applications that require fast decoding and encoding wit
12、h high visual quality. The VC-5 codec is suitable for image capture and post production. This document describes the test materials and procedures for verifying that a bitstream produced by an implementation of a VC-5 encoder or an implementation of a VC-5 decoder is compliant with the VC-5 essence
13、standard. RP 2073-2:2017 Page 4 of 43 pages 1 Scope The VC-5 essence standard comprises the SMPTE standards designated SMPTE ST 2073-1, ST 2073-3, ST 2073-4, ST 2073-5, and ST 2073-6. This recommended practice specifies the criteria and procedures for testing the conformance of encoder and decoder i
14、mplementations to the VC-5 essence standard and describes the test materials used for conformance testing. The test materials used for conformance testing comprise: 1. Reference decoder for testing bitstreams created by implementations of a VC-5 encoder for compliance with the VC-5 essence standard,
15、 2. Bitstreams and reference images for testing implementations of a VC-5 decoder for compliance with the VC-5 essence standard. Although not required for conformance testing, the test materials include a sample encoder, the images used by the sample encoder to create the bitstreams used for conform
16、ance testing, a program for converting between image formats, and a program for comparing image files. This recommended practice describes the image file formats used by the software and scripts that automate the conformance testing procedure. Detailed instructions for installing and building the pr
17、ograms and contact information for submitting bug reports are provided in a separate document that is included in the software distribution of the test materials. This document does not include the test materials. 2 Conformance Notation Normative text is text that describes elements of the design th
18、at are indispensable or contains the conformance language keywords: “shall“, “should“, or “may“. Informative text is text that is potentially helpful to the user, but not indispensable, and can be removed, changed, or added editorially without affecting interoperability. Informative text does not co
19、ntain any conformance keywords. All text in this document is, by default, normative, except: the Introduction, any section explicitly labeled as “Informative“ or individual paragraphs that start with “Note:” The keywords “shall“ and “shall not“ indicate requirements strictly to be followed in order
20、to conform to the document and from which no deviation is permitted. The keywords, “should“ and “should not“ indicate that, among several possibilities, one is recommended as particularly suitable, without mentioning or excluding others; or that a certain course of action is preferred but not necess
21、arily required; or that (in the negative form) a certain possibility or course of action is deprecated but not prohibited. The keywords “may“ and “need not“ indicate courses of action permissible within the limits of the document. The keyword “reserved” indicates a provision that is not defined at t
22、his time, shall not be used, and may be defined in the future. The keyword “forbidden” indicates “reserved” and in addition indicates that the provision will never be defined in the future. RP 2073-2:2017 Page 5 of 43 pages A conformant implementation according to this document is one that includes
23、all mandatory provisions (“shall“) and, if implemented, all recommended provisions (“should“) as described. A conformant implementation need not implement optional provisions (“may“) and need not implement them as described. Unless otherwise specified, the order of precedence of the types of normati
24、ve information in this document shall be as follows: Normative prose shall be the authoritative definition; Tables shall be next; then formal languages; then figures; and then any other language forms. 3 Normative References The following standards contain provisions which, through reference in this
25、 text, constitute provisions of this engineering document. At the time of publication, the editions indicated were valid. All standards are subject to revision, and parties to agreements based on this engineering document are encouraged to investigate the possibility of applying the most recent edit
26、ion of the standards indicated below. SMPTE ST 2073-1:2017 VC-5 Video Essence. Part 1: Elementary Bitstream SMPTE ST 2073-3:2015 VC-5 Video Essence. Part 3: Image Formats SMPTE ST 2073-4:2015 VC-5 Video Essence. Part 4: Subsampled Color Difference Components SMPTE VC-5 Test Materials, Version 4.3 or
27、 later 4 Terms and Definitions For the purposes of this document, the following terms and definitions shall apply. 4.1 little-endian order of bytes that comprise a number with less significant bytes before more significant bytes 4.2 format specification string character string that specifies the for
28、mat of the string output by the C language sprintf function 4.3 VC-5 essence standard SMPTE standards designated SMPTE ST 2073-1, ST 2073-3, ST 2073-4, ST 2073-5 and ST 2073-6 5 Overview (Informative) The test materials provided as part of this conformance specification include: 1. Source code for a
29、 reference decoder, 2. Source code for a sample encoder, 3. Utility programs and scripts useful for testing VC-5 decoder and encoder implementations, 4. Reference bitstreams for testing conformance of a decoder implementation to the VC-5 essence standard, 5. Images used to encode the reference bitst
30、reams. RP 2073-2:2017 Page 6 of 43 pages The bitstream defined in the VC-5 essence standard consists of an ordered set of component arrays. In typical practice, each component array corresponds to an image plane containing color values of the same type. An image unpacking process unpacks an input im
31、age into component arrays for input to the encoding process. The image unpacking process is not defined by the VC-5 essence standard. Likewise, a decoding process outputs an ordered set of component arrays that can be packed into an image by an image repacking process that is not defined by the VC-5
32、 essence standard. The sample encoder and reference decoder provided with the test materials include image unpacking and repacking code to enable testing with common image formats. The test materials are described in section 6. The reference decoder for testing bitstreams created by implementations
33、of a VC-5 encoder for compliance with the VC-5 essence standard is described in section 6.3. The test materials include a sample encoder (section 6.4), a program for converting between image formats (section 6.5), a program for comparing image files (section 6.6), and the images used by the sample e
34、ncoder to create the reference bitstreams used for conformance testing (Annex B). The image file formats used by the sample encoder, reference decoder, and utility programs are described in section 7. Procedures and scripts that can be used for conformance testing are described in section 8. The cri
35、teria for conformance to the VC-5 essence standard are specified in section 9. Instructions for installing the test materials are provided in section 10 and in a text file provided with the test materials distribution. Instructions for installing and building the programs and contact information for
36、 submitting bug reports are provided in a separate document that is included in the test materials distribution. A VC-5 bitstream can represent common image formats as well as Color Filter Array (CFA) images such as Bayer. The component values represented in a VC-5 bitstream can have up to 24 bits o
37、f precision. To accommodate the variety of images that can be encoded into a VC-5 bitstream, the software provided with the test materials can use images stored as unformatted binary files (section 7.2) or an ordered set of component arrays stored as one array per file with the channel number encode
38、d into the pathname (section 7.3). For convenience, the software also supports the DPX file format (section 7.4). Reference bitstreams for testing VC-5 decoder implementations for compliance with the VC-5 essence standard and the corresponding reference images decoded from the reference bitstreams b
39、y the reference decoder are listed in 0. 6 Description of the Test Materials 6.1 Source Code The source code for the reference decoder and sample encoder is written in the C programming language according to ISO/IEC 9899:2011. 6.2 VC-5 Parts This recommended practice covers parts of the VC-5 essence
40、 standard listed in the enabled part number column of Table 1. RP 2073-2:2017 Page 7 of 43 pages Enabled Part Number VC-5 Essence Standard Title Implied Part Numbers 1 Elementary Bitstream 3 Image Formats 1 4 Subsampled Color Difference Components 1, 3 5 Layers 1, 3 6 Sections 1, 3 Table 1. Parts of
41、 the VC-5 essence standard. The reference decoder and sample encoder allow different parts of the VC-5 essence standard to be tested. Parts are enabled through a combination of compile-time and runtime variables. To use the capabilities defined in a part of the VC-5 essence standard, enable that par
42、t at both compile-time and runtime. A part can be enabled at compile-time using the VC5_ENABLED_PARTS compile-time variable in the file $(ROOT)/common/include/config.h that is provided with the source code distribution. A part can be enabled at runtime by using the parts command-line argument to exp
43、licitly enable that part. Some parts are implicitly enabled at runtime when another part is enabled (see implied part numbers in Table 1). Part 1 is always enabled and does not need to be specified on the command-line. Specifying part 2 has no effect as there is no code associated with the conforman
44、ce specification. Part 4 implies support for part 3 since ST 2073-4 requires features specified in ST 2073-3. Parts 5 and 6 imply support for part 3 since it is expected that most VC-5 implementations will always use the image format features specified in part 3. This behavior can be changed by modi
45、fying compile-time variables in the file $(ROOT)/common/include/config.h (see the documentation provided with the test materials). The reference decoder and sample encoder distributed with the test materials have parts 1, 3, 4, 5 and 6 enabled at compile-time by default. If the reference decoder and
46、 sample encoder are built with all parts enabled, then the same build can be used for testing any part by enabling that part at runtime using the parts command-line argument. To encode a bitstream that includes syntax elements defined in VC-5 parts 3 and 4, run the encoder as follows: encoder -parts
47、 4 other options In this document, when the text says that a VC-5 part is enabled, it means that the part is enabled at both compile-time and runtime using the variables and command-line options described above. RP 2073-2:2017 Page 8 of 43 pages 6.3 Reference Decoder 6.3.1 General Usage The referenc
48、e decoder reads a bitstream that is compliant with the VC-5 essence standard and outputs one or more images. Each image is output as an unformatted file (section 7.2), an ordered set of component array files (section 7.3), or a DPX file with 10-bit packed RGB color values (section 7.4). The referenc
49、e decoder includes an implementation of an image repacking process that packs the component arrays output by the decoder into an output image. To invoke the reference decoder from the command line: decoder options Command-line options for the reference decoder are listed in Table 2. All options present on the command line come before the input bitstream file on the command line. The reference decoder provided with the test materials includes an implementation of an image repacking process to allow the decoder to output packed images. The packed image file formats that are supporte