1、 Copyright 2017 by THE SOCIETY OF MOTION PICTURE AND TELEVISION ENGINEERS 3 Barker Avenue, White Plains, NY 10601 (914) 761-1100 Approved April 5, 2017 SMPTE ST 2073-1:2017 Revision of SMPTE ST 2073-1:2014 SMPTE STANDARD VC-5 Video Essence Part 1: Elementary Bitstream Page 1 of 52 pages Table of Con
2、tents Page Page Foreword 5 Intellectual Property . 5 Introduction. 5 1 Scope 7 2 Conformance Notation 7 3 Normative References 7 4 Terms and Definitions . 7 5 Notation . 12 5.1 Codec State Parameters . 12 5.2 Number Representations 12 5.3 Arithmetic Right Shift. 12 6 Overview (Informative) 12 7 Comp
3、onent Arrays 14 7.1 Component Array Requirements 14 7.2 Component Array Representation 14 7.3 Component Array Dimensions 14 7.4 Component Value Precision . 14 8 Bitstream Syntax . 16 8.1 Syntax Elements . 16 8.2 Bitstream Segments 16 8.3 Tag-Value Pairs 16 8.3.1 Tag-Value Syntax 16 8.3.2 Required Ta
4、g-Value Pairs 16 8.3.3 Optional Tag-Value Pairs . 16 8.4 Chunk Elements 16 8.4.1 Chunk Element Syntax 16 8.4.2 Chunk Payload Size . 17 8.4.3 Small Chunk Payloads . 17 8.4.4 Large Chunk Payloads . 17 8.5 Bitstream Constraints 18 8.6 Bitstream Start Marker 18 8.7 Bitstream Header 18 8.8 Codeblock Elem
5、ents . 18 SMPTE ST 2073-1:2017 Page 2 of 52 pages 9 Codec State 19 9.1 Codec State Parameters 19 9.2 Codec State Initialization 19 9.3 External Parameter Values . 19 9.4 Explicit Parameter Changes . 19 9.5 Codec State Changes 19 9.5.1 Subband State Change . 19 9.5.2 Channel State Change 20 10 Subban
6、d Coding 20 10.1 Coefficient Order . 20 10.2 Subband Codeblocks 20 10.3 Lowpass Band Codeblocks . 20 10.4 Highpass Band Codeblocks 21 10.4.1 Highpass Band Codeblock Syntax 21 10.4.2 Run-Length Coding . 21 10.4.3 Non-Zero Coded Values 21 10.4.4 Band End Marker . 21 11 Wavelet Transforms 21 11.1 Spati
7、al Wavelet Transform (Informative) . 21 11.2 Spatial Wavelet Sequence 23 11.3 Inverse Wavelet Transforms 26 11.4 Wavelet Transform Requirements . 27 11.4.1 Wavelet Height Requirement . 27 11.4.2 Wavelet Width Requirement . 28 12 Decoding Process 28 12.1 Subband Decoding 28 12.2 Entropy Decoding 28 1
8、2.3 Inverse Companding . 28 12.4 Inverse Quantization 28 12.5 Inverse Wavelet Processing 29 12.6 Component Array Order 29 Annex A Inverse Spatial Wavelet Transform (Normative) . 30 Annex B Codec State Parameters (Normative) . 31 B.1 Parameter Descriptions . 31 B.1.1 ImageWidth . 31 B.1.2 ImageHeight
9、 31 B.1.3 BitsPerComponent 31 B.1.4 ChannelCount . 31 B.1.5 SubbandCount 31 B.1.6 ChannelNumber 31 B.1.7 SubbandNumber . 31 B.1.8 LowpassPrecision . 31 B.1.9 Quantization 31 B.1.10 PrescaleShift . 32 B.1.11 ChannelWidth 32 B.1.12 ChannelHeight 32 B.2 Tag-Value Pairs . 33 B.3 Chunk Headers 34 B.3.1 S
10、mall Chunk Headers . 34 B.3.2 Large Chunk Headers 34 B.4 Image Dimensions (Informative) 34 SMPTE ST 2073-1:2017 Page 3 of 52 pages Annex C Codebook (Normative) . 35 C.1 Coefficient Magnitudes and Zero Runs 35 C.2 Special Codewords. 40 Annex D Decoding Process (Informative) . 41 D.1 Decoding Overview
11、 41 D.2 Initial Codec State 41 D.3 Memory Allocation 41 D.4 Entropy Decoding . 42 D.5 Lower Resolution Decoding . 42 D.6 Image Repacking Process . 42 D.7 Decoding Resource Requirements 43 Annex E Encoding Process (Informative) . 44 E.1 Codec State Synchronization 44 E.2 Image Processing 44 E.3 Image
12、 Unpacking . 45 E.4 Prescale Shifts . 45 E.5 Lowpass Transform . 45 E.6 Highpass Transform 45 E.7 Quantization . 46 E.8 Companding 46 E.9 Entropy Coding 47 E.9.1 Non-Zero Coefficients 47 E.9.2 Runs of Zeros 47 E.10 Subband Encoding Order 47 Annex F Inverse Companding and Dequantization (Normative) 4
13、8 Annex G Additional Notation (Informative) 49 G.1 Arithmetic Operators . 49 G.2 Logical Operators 49 G.3 Relational Operators . 49 G.4 Bitwise Operators 49 G.5 Assignment Operator 50 G.6 Operator Precedence 50 G.7 Compound Statements . 50 G.8 Elementary Functions . 51 G.9 Bitstream Functions. 51 Bi
14、bliography (Informative) 52 SMPTE ST 2073-1:2017 Page 4 of 52 pages Figures Figure 1 Overview of the encoding and decoding processes (Informative). 13 Figure 2 Component arrays are represented as separate channels in the bitstream. . 15 Figure 3 Two-dimensional spatial wavelet transform as a horizon
15、tal wavelet transform followed by a vertical wavelet transform. 22 Figure 4 Three levels of spatial wavelet transform showing the lowpass bands used as inputs to the next wavelet level and the numbering of subbands. Each channel is encoded using this sequence of spatial wavelet transforms. 25 Figure
16、 5 Sequence of operations used to encode a component array into the bitstream. . 26 Figure E.1 Synchronizing the codec state between the encoder and decoder. . 44 Tables Table 1 Subband numbering for the sequence of wavelets in each channel. 24 Table 2 Notation used in Figure 5. . 24 Table B.1 Packe
17、d representation of the prescale shifts. 32 Table B.2 Codec state parameters. 33 Table B.3 Symbolic names and numbers for tags that identify large chunk elements. 34 Table C.1 Codebook for non-negative coefficients (codewords listed in hexadecimal). 36 Table C.2 Special codewords. 40 Table D.1 Highp
18、ass band codeblock decoding algorithm. . 42 Table E.1 Prescale shifts versus the number of bits per component value. 45 Table G.1 Elementary arithmetic operators used in this document. 49 Table G.2 Logical operators used in this document. . 49 Table G.3 Relational operators used in the document. 49
19、Table G.4 Bitwise operators used in this document. 49 Table G.5 Assignment operators used in this document 50 Table G.6 Operator precedence. . 50 Table G.7 Elementary functions operate on the argument x with unlimited precision. 51 Table G.8 Functions for sequentially reading the bitstream. 51 SMPTE
20、 ST 2073-1:2017 Page 5 of 52 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 of America, SMPTE has members in over 80 countries on six continents. SMP
21、TEs 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 their work. SMPTE cooperates closely with other standards-developing organiza
22、tions, including ISO, IEC and ITU. SMPTE Engineering Documents are drafted in accordance with the rules given in its Standards Operations Manual. SMPTE ST 2073-1 was prepared by Technology Committee 10E. Intellectual Property At the time of publication no notice had been received by SMPTE claiming p
23、atent 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 shall not be held responsible for identifying any or all such patent rights. Introduction Th
24、is section is entirely informative and does not form an integral part of this Engineering Document. The VC-5 codec is a variable-bit-rate codec intended for high-quality video acquisition and post-production, capable of encoding diverse image and video formats. (1) The key design goals of the VC-5 c
25、odec are: (2) Very high visual quality (visually lossless in most applications); (3) Efficient implementation of both decoders and encoders; (4) Support for any color space or color difference component sampling; (5) Direct encoding of camera sensor output without conversion to a different format; (
26、6) Adaptability and ease of use in video editing and post-production. The VC-5 codec uses reversible integer wavelet transforms applied to the entire image to prevent blocking artifacts. Since the transforms are reversible, the only losses are due to quantization. Lowpass wavelet coefficients are en
27、coded without quantization to preserve visual quality. The wavelet transforms can be implemented efficiently using only integer shift and add operations. Highpass wavelet coefficient values equal to zero are run length coded. Runs of zeros and non-zero coefficients are represented using variable-len
28、gth codes that are efficient for both decoding and encoding. The VC-5 bitstream can represent any image that can be unpacked into component arrays by an image unpacking process prior to encoding (Figure 1). A component array is like an image plane and typically would contain a single type of color o
29、r data, although component arrays containing multiple types of image data are not precluded by this standard. Each of the component arrays represented in the bitstream can have different dimensions. SMPTE ST 2073-1:2017 Page 6 of 52 pages The image unpacking process is not specified by this standard
30、 and can implement image pre-processing algorithms, which also are not defined in this standard. The encoding process takes an ordered set of component arrays and represents the component arrays in the bitstream such that a decoding process can reconstruct the set of component arrays that were input
31、 to the encoding process in the same order as input to the encoding process. The reconstructed set of component arrays duplicates the component arrays input to the encoder except for losses due to compression. The decoding process can be followed by an image repacking process that converts the order
32、ed set of component arrays into a packed representation of the image. The image repacking process is not specified by this standard. The image repacking process can implement image post-processing algorithms as required by the application. An image display process that transforms the packed image in
33、to a displayable picture can follow the image repacking process. For example, the packed image can include data values that must be mapped to colors to create a displayable image. The VC-5 codec is intended to accept common image formats, including images with RGB and YCbCr color components with an
34、optional alpha channel. Image formats can use color difference component sampling, for example YCbCr with 4:2:2 or 4:2:0 sampling. The VC-5 codec is not restricted to a particular set of image dimensions, pixel formats, or color standards. Color Filter Array (CFA) images, including Bayer pattern ima
35、ges, can be unpacked into component arrays that can be represented in a VC-5 bitstream without conversion to a different image format. Component arrays containing non-color data, such as disparity values, can be represented in a VC-5 bitstream. Component arrays can use up to 24 bits of precision to
36、represent each value in the component array. The syntax of a VC-5 bitstream is based on tag-value pairs that allow for future extensions. Each tag is a 16-bit number and only a small number of tags have been assigned. The value is a 16-bit number, but a tag-value pair can be used to represent the ty
37、pe and size of a large block of data, providing support for values larger than 16 bits. The number of component arrays and the width and height of each component array is limited only by the scheme for representing information as tag-value pairs. A VC-5 bitstream can include all of the information r
38、equired by a decoding process to reconstruct the component arrays represented in the bitstream, but the bitstream does not have to include information that is provided by an external source. For example, a bitstream that is embedded in a media container can omit information that is provided by the c
39、ontainer. The VC-5 codec can adapt to specific applications by representing an image using minimal syntax or including extensive information required to describe the output of sophisticated image sensors or complex workflows. Wavelet transforms are applied recursively to each component array with th
40、e lowpass band from each wavelet transform input to the next transform. Fewer inverse transforms can be applied during decoding to produce a lower resolution proxy image, allowing a decoder to balance decoding speed and image quality as required by specific applications. SMPTE ST 2073-1:2017 Page 7
41、of 52 pages 1 Scope This standard specifies the compressed representation and decoding process for the core VC-5 bitstream. 2 Conformance Notation Normative text is text that describes elements of the design that are indispensable or contains the conformance language keywords: “shall“, “should“, or
42、“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 contain any conformance keywords. All text in this document is, by default, normative, excep
43、t: 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 to conform to the document and from which no deviation is permitted. The keywords, “should
44、“ 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 necessarily required; or that (in the negative form) a certain possibility or course of action i
45、s 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 this time, shall not be used, and may be defined in the future. The keyword “forbidden” ind
46、icates “reserved” and in addition indicates that the provision will never be defined in the future. A conformant implementation according to this document is one that includes all mandatory provisions (“shall“) and, if implemented, all recommended provisions (“should“) as described. A conformant imp
47、lementation need not implement optional provisions (“may“) and need not implement them as described. Unless otherwise specified, the order of precedence of the types of normative information in this document shall be as follows: Normative prose shall be the authoritative definition; tables shall be
48、next; followed by formal languages; then figures; and then any other language forms. 3 Normative References The following standards contain provisions which, through reference in this text, constitute provisions of this engineering document. At the time of publication, the editions indicated were va
49、lid. 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 edition of the standards indicated below. None. 4 Terms and Definitions For the purposes of this document, the following terms and definitions apply. ISO and IEC maintain termin