<img height="1" width="1" src="https://www.facebook.com/tr?id=414634002484912&amp;ev=PageView%20&amp;noscript=1">
Donate
The 2024 Media Technology Summit
Donate

ST 2073 VC-5 Suite of Standards

VC-5 Compression

Overview

VC-5 is a variable-bit-rate codec intended for high-quality video acquisition and post-production, and is capable of encoding a diverse range of image and video formats. The VC-5 codec is not restricted to a particular set of image dimensions, pixel formats, or color standards. Common image formats, including images with RGB and YCbCr color components with an optional alpha channel and subsampled color difference components (for example, YCbCr with 4:2:2 or 4:2:0 sampling), can be represented in a VC-5 bitstream. Color Filter Array (CFA) images, including Bayer pattern images, and non-color data, such as disparity values, can be unpacked into component arrays and encoded into a VC-5 bitstream.

Key advantages of the VC-5 codec include:

  • Highly efficient encoding and decoding,
  • Support for a wide variety of image formats including Bayer images,
  • Extensible bitstream format comprising 32-bit tag-value pairs,
  • Simple reversible integer wavelet transform that is efficient and retains image detail.

Standards

The VC-5 document suite comprises the standards described below. The diagram illustrates the relationship between documents. The arrows indicate that a document (tail of the arrow) depends on the document at the head of the arrow.

OV 2073-0:2023

Overview
The overview describes each of the published documents in the VC-5 standards suite.

Access Document

ST 2073-1:2017

Elementary Bitstream
The bitstream document defines the syntax and semantics of all VC-5 bitstreams.

A VC-5 bitstream can contain one or more rectangular arrays of integer components with a precision of at most 16 bits each for the width and height. The elementary bitstream standard does not explicitly specify how to encode an image into a VC-5 bitstream. It only provides the framework for specifying how rectangular arrays can be encoded using the VC-5 standards.

Access Document

RP 2073-2:2022

Conformance Specification
The conformance specification defines how to verify the compliance of an encoder or decoder implementation with the VC-5 standards. This document includes access to the VC-5 test materials: software implementations of the sample encoder and reference decoder and test images and bitstreams for verifying compliance with the VC-5 standards.

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,
  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 conformance 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 programs and contact information for submitting bug reports are provided in a separate document that is included in the software distribution of the test materials. Access test materials:

SMPTE RP 2073-2 Test Materials

Access Document

ST 2073-3:2015

Image Formats
The image format document specifies how to represent images in a VC-5 bitstream. This standard adds tag-value pairs to represent image-specific information such as the image dimensions and pixel format of the source image.

SMPTE ST 2073-3 introduces the concept of a pattern element: a rectangular subset of component samples in an image corresponding to a single pixel. For example, an RGB image would comprise three component arrays, one for each color component, and each pattern element comprises a single component sample. The concept of pattern element is very useful for describing Bayer images. For example, a pattern element in a typical Bayer image might comprise a 2 by 2 pattern element containing R, G, G, and B color components.

Access Document

ST 2073-4:2015

Subsampled Color Difference Components
Images can be representing using YCbCr color components. The Cb and Cr components may be subsampled. This standard extends SMPTE ST 2073-3 to describe subsampled color difference components using an extension of the pattern element concept. SMPTE ST 2073-4 adds tag-value pairs that describe the subsampling scheme.

Access Document

ST 2073-5:2015

Layers
Some images logically comprise multiple images with the same dimensions and pixel format. For example, a stereo pair is two images representing the left and right halves of the stereo pair. Each image has the same dimensions and format. 

This standard adds the capability to represent multiple images in the bitstream, each image having the same dimensions and pixel format. Each individual image is called a layer. 

Applications of layers include stereo pairs, multiple image exposures for HDR, and the top and bottom images in interlaced video.

Access Document

ST 2073-6:2015

Sections
A VC-5 bitstream is a sequence of tag-value pairs. The reference decoder is a simple state machine that transitions to the next image component or wavelet transform within an image component. Nothing in the VC-5 bitstream explicitly identifies the structure in the sequence of tag-value pairs.

This standard adds tag-value pairs that can be used to delineate semantically relevant portions of the bitstream. For example, section tags can identify each image component within the bitstream or each wavelet transform within a component. 

Sections enable additional capabilities including:

  • Identifying portions of the bitstream that can be decoded concurrently,
  • Partial decoding and lower resolution decoding,
  • Adding error detection and correction to the bitstream.

If image component arrays are delineated using sections, then the decoder can skip components that do not have to be decoded. For example, if the image represented in the bitstream contains Y, Cb, and Cr components and the output image is monochrome, then it is not necessary to decode the Cb and Cr components.

Wavelet transforms are present in the bitstream in order from small (lower resolution) to large (higher resolution). If wavelet transforms are delineated using sections and the output image has reduced resolution, then the larger (higher resolution) transforms can be skipped.

Sections also allow multiple images with different dimensions, formats, and other characteristics to be represented in a single VC-5 bitstream.

Access Document

ST 2073-7:2022

Metadata
This standard specifies the method for embedding metadata in a VC-5 bitstream.

There are four types of metadata supported by the VC-5 codec:

  1. Intrinsic metadata that assist in decoding the images represented by a VC-5 bitstream,
  2. Extrinsic metadata defined by other standards,
  3. Streaming data, and
  4. Dark metadata.

Intrinsic metadata is unique to the VC-5 codec.

Examples of extrinsic metadata include Adobe XMP metadata. The XML representation can be embedded in the VC-5 bitstream and extracted during decoding.

Streaming data is used for time series measurements associated with camera applications such as GPS coordinates and accelerometer readings.

Dark metadata is intended for metadata that does not have a published standard such as vendor-specific metadata.

Access Document

ST 2073-10:2017

MXF Wrapper
SMPTE uses the Material Exchange Format (MXF) as the container for video and audio tracks.

This standard specifies how to embed a VC-5 bitstream as a video track in an MXF generic container.

Access Document

 

Current and Upcoming Projects

ST 2067-72

IMF Application VC-5
This standard will specify how to use the VC-5 representation of video in IMF applications.

This document is currently under review in Public CD and may be accessed at:

SMPTE ST 2067-72 Public CD

 

ST 2073-10

VC-5 MXF Wrapper Revision
The SMPTE standard ST 2073-10 specifies how to embed a VC-5 bitstream as a video track in an MXF file. The MXF wrapper document was approved and published before the VC-5 standards for layers, sections, and metadata were drafted. A new project for revising ST 2073-10 to include features from the standards for layers, sections, and metadata has been approved. Work is pending completion of the first version of IMF Application VC-5 and is expected to begin shortly after ST 2067-72 enters Public CD.

 

ST 2067-72

IMF Application VC-5 (Second Revision)
After the VC-5 MXF wrapper has been revised, then features from layers, sections, and metadata can be added to IMF Application VC-5 as deemed useful. A project proposal for the revision of ST 2067-72 has not been drafted or submitted for review.