DisplayPort Colorimetry Metadata Packets Explained

DisplayPort conveys custom colorimetry and advanced color profile data by encapsulating metadata inside Secondary Data Packets (SDPs) multiplexed within the video stream's blanking intervals. This article explains how the DisplayPort protocol negotiates device capabilities via the Auxiliary (AUX) Channel, the specific structure of Video Stream Configuration (VSC) and InfoFrame packets used to transmit colorimetry metadata, and how custom color spaces are mapped and synchronized frame-by-frame from host GPU to target sink.

The Transport Mechanism: Secondary Data Packets (SDPs)

DisplayPort structures its primary physical connection into the Main Link (for high-speed pixel and audio transport) and the bi-directional AUX Channel (for link management and device discovery). Active pixel data flows across the Main Link during active display periods, while metadata—including custom color profiles, high dynamic range (HDR) parameters, and colorimetry definitions—is packetized into Secondary Data Packets.

SDPs are interleaved into the data stream specifically during the horizontal blanking intervals (HBlank) and vertical blanking intervals (VBlank). Because they occupy the blanking periods rather than active video cycles, metadata updates do not compromise pixel throughput or display bandwidth.

Capability Negotiation via the AUX Channel

Before a source device can transmit non-standard or custom colorimetry data, it must verify the sink device's decoding capabilities:

  1. EDID and DisplayID Reading: Upon connection, the source queries the sink device over the 1 Mbps Manchester-encoded AUX Channel to read its Extended Display Identification Data (EDID) and DisplayID 2.0 structures.
  2. Colorimetry Descriptor Blocks: The sink advertises its native color primaries (CIE 1931 xy coordinates for red, green, blue, and white point), native electro-optical transfer functions (EOTFs), and supported color spaces (such as sRGB, DCI-P3, BT.2020, or Adobe RGB).
  3. Protocol Extension Support: The sink’s DisplayPort Configuration Data (DPCD) registers are queried to verify support for advanced SDP types, such as VSC Extension packets and Dynamic Range and Mastering (DRM) InfoFrames.

Packet Types for Custom Colorimetry

DisplayPort utilizes specific SDP definitions to handle different tiers of color metadata:

1. Video Stream Configuration (VSC) Packets

Introduced extensively in DisplayPort 1.4 and enhanced in DisplayPort 2.0/2.1, the VSC SDP governs pixel encoding formats (RGB, YCbCr 4:4:4, YCbCr 4:2:2, YCbCr 4:2:0), color bit depth (6, 8, 10, 12, or 16 bits per component), and standardized dynamic ranges.

2. VSC Extension SDPs

For color spaces that deviate from legacy broadcast standards, DisplayPort relies on VSC Extension packets. These packets contain data fields that indicate custom color primaries, non-standard EOTFs, and extended color gamuts. The packet header designates the secondary packet type, while the payload contains dedicated payload bytes mapping the chromaticity coordinates and mastering parameters.

3. CTA-861 InfoFrame Encapsulation

DisplayPort can encapsulate Consumer Technology Association (CTA-861) InfoFrames directly into SDPs:

  • Dynamic Range and Mastering (DRM) InfoFrames: Carry SMPTE ST 2086 mastering display data, including MaxFALL (Maximum Frame Average Light Level) and MaxCLL (Maximum Content Light Level).
  • Colorimetry Data Blocks: Specify whether content uses extended gamuts such as scRGB, opRGB, or BT.2020.

4. Vendor-Specific InfoFrames (VSIFs)

When an implementation requires fully proprietary color profiles or hardware-specific calibration data (such as direct 3D LUT loading or hardware-specific gamma matrices), the DisplayPort protocol allows transmission of Vendor-Specific SDPs. These packets bypass standard CTA/VESA parsing and are processed directly by proprietary scaler firmware on the sink.

Packet Structure and Framing

An SDP carrying colorimetry metadata is framed using four main components:

  • Stream Framing: Special framing characters, such as SS (Secondary-data Start) and SE (Secondary-data End), delimit the packet boundary within the stream lanes.
  • Header (4 Bytes): Defines the SDP type (e.g., Type = 0x07 for VSC, Type = 0x80 series for InfoFrames), packet revision number, and the length of the payload.
  • Header Parity: Error-checking bytes protecting the header.
  • Payload (Up to 32 Bytes per Data Block): Contains the colorimetry payload, including color space identifier bits, coordinate matrices, or transfer curve definitions.
  • Payload Parity/ECC: Interleaved parity protection to ensure that line errors do not lead to color distortion or mode drops.

Synchronization and Application

Colorimetry metadata is state-based but regularly repeated. The host graphics processor injects color metadata SDPs at least once every frame during the vertical blanking interval preceding the frame to which the color profile applies.

Upon receipt, the display pipeline's receiver deserializes the Main Link, validates the packet checksums, and routes the payload to the internal color management engine. The display then recalculates or swaps its internal 1D/3D Look-Up Tables (LUTs) and color space matrix before the first active pixel of the target frame is scanned out, preventing visual artifacts or frame tearing.