CEA-608 Closed Captions in MPEG-2 VOB User Data

Closed captions adhering to the CEA-608 standard are embedded into DVD VOB files directly within the MPEG-2 video elementary stream rather than existing as separate subtitle streams. By utilizing the MPEG-2 "User Data" start codes found immediately after picture headers, broadcast and DVD authoring systems carry these legacy Line 21 byte pairs frame-by-frame. This article details the specific structural layers, identifiers, and syntax required to encapsulate, synchronize, and extract CEA-608 caption data inside MPEG-2 VOB containers.

MPEG-2 Hierarchy and Placement

A VOB (Video Object) file is an MPEG-2 Program Stream containing multiplexed audio, video, and private streams. Unlike DVD subpictures, which exist in Private Stream 1 (0xBD), CEA-608 captions are embedded inside the MPEG-2 Video Elementary Stream (0xE0).

Within the video stream, MPEG-2 permits arbitrary metadata via the User Data packet, marked by the 32-bit start code:

0x00 0x00 0x01 0xB2

While User Data can theoretically appear after Sequence, Group of Pictures (GOP), or Picture headers, CEA-608 captions are almost exclusively placed immediately after a Picture Coding Extension header. This frame-level placement ensures that the caption data remains strictly synchronized with the specific video field or frame being rendered.

Container Signatures: ATSC A/53 vs. DVD-Video Format

Once the 0x000001B2 start code is declared, a proprietary or standardized identifier follows to signal what type of data the packet contains. In VOB files, two primary encapsulation conventions exist:

  1. ATSC A/53 Specification: Originally designed for North American digital television broadcast, this format is also widely found in authored VOBs. It is identified by the 4-byte ASCII string "GA94" (0x47 0x41 0x39 0x34).
  2. DVD-Video Specification: Standardized specifically for commercial DVDs, this format uses an authoring header commonly prefixed by the 2-byte ASCII marker "CC" (0x43 0x43) or a custom 4-byte registered format identifier.

ATSC A/53 Payload Structure

When the "GA94" identifier is used, the data structure inside the user data payload proceeds as follows:

DVD-Video Native CC Structure

When using the native DVD format (0x4343), the layout is more compact:

Processing and Display

Each CEA-608 construct conveys two bytes per field, matching the original 29.97 fps analog NTSC Line 21 transmission rate. Field 1 carries CC1 (primary dialogue) and CC2, while Field 2 carries CC3 (secondary language), CC4, and extended data services (XDS).

To extract and display the captions, a decoder demultiplexes the VOB into its elementary video stream, scans the bitstream for 0x000001B2 directly following picture headers, verifies the caption identifier (GA94 or CC), strips the parity bit from the 2-byte payloads, and sends the characters to the on-screen display (OSD) buffer.