VOBU Closed GOP Requirements for Seamless Branching
This article provides an overview of how a Video Object Unit (VOBU) within a DVD-Video VOB (Video Object) container manages closed Group of Pictures (GOP) requirements to achieve seamless branching. Seamless branching allows playback systems to switch between alternative video sequences—such as multiple storylines, director's cuts, or multi-angle scenes—without latency, dropped frames, or visual artifacts. By strictly regulating GOP headers, temporal reference structures, and buffer parameters at the VOBU boundary, the multiplexer ensures that MPEG-2 decoders can cleanly transition across branch points.
The Role of the VOBU in Stream Navigation
A VOBU is the fundamental delivery and timing unit in a DVD VOB container, typically representing 0.4 to 1.0 second of playback. Every VOBU begins with a Navigation Pack (NV_PCK), containing Presentation Control Information (PCI) and Data Search Information (DSI). Immediately following the NV_PCK is the elementary video stream, which consists of one or more GOPs.
In seamless branching (implemented via Interleaved Video Units, or ILVUs), the playback engine jumps dynamically from the end of one cell to the beginning of another. For this transition to occur without decoding failure, the entry point of the destination stream must be instantly decodable without dependency on previous data.
Closed GOP Implementation at Branch Boundaries
Standard MPEG-2 video streams often use "open GOPs" to increase compression efficiency. In an open GOP, bidirectional predictive frames (B-frames) immediately following the first Intra-frame (I-frame) rely on backward prediction from the final anchor frame (P-frame or I-frame) of the preceding GOP.
Seamless branching strictly prohibits open GOPs at branch entry and exit points:
- Closed GOP Flag (
closed_gop = 1): The first GOP in a branch-destination VOBU must have theclosed_gopbit set to1in the MPEG-2 GOP header. This explicitly signals that no frame within the GOP references frames from any prior GOP. - B-Frame Encapsulation: Any B-frames that display
after the first I-frame in presentation order (PTS) must only use
forward prediction from that I-frame, or the sequence must avoid initial
B-frames altogether (e.g., starting with an
IBBP...structure where the initial B-frames do not reference past frames). - Sequence End/Start Codes: At the transition point
between branched cells, a sequence end code (
0x000001B7) may be placed at the conclusion of the terminating VOBU, followed immediately by a sequence header at the start of the next VOBU to reset video parameters cleanly if stream properties shift.
Buffer Continuity via VBV Management
A closed GOP eliminates cross-GOP prediction dependencies, but seamlessness also requires preventing Video Buffer Verifier (VBV) underflows or overflows:
- VBV Delay Matching: The multiplexer calculates the exact occupancy of the decoder's VBV buffer at the end of the originating VOBU and ensures it matches the expected buffer state of the receiving VOBU.
- Bitrate Flattening: Because I-frames require significantly higher bit allocations than P- or B-frames, the VOBU layout preceding a branch point must be rate-controlled so that the sudden arrival of an I-frame at the branch destination does not exhaust the buffer before decoding starts.
Synchronization via Navigation Packs (NV_PCK)
The VOBU controls the execution of the branch through its DSI data:
- Splice Points: The DSI contains seamless
angle/branch information (
SML_AGLIorSML_PBI), which maps relative block addresses to the exact sector of the next destination VOBU. - Seamless Playback Flags: The
VOBU_SEAMLESSflag inside the NV_PCK informs the demultiplexer to treat the next packet block as a continuous flow, preventing audio gaps or blank display updates while transitioning across the closed GOP boundary. - System Clock Reference (SCR) and Presentation Time Stamp (PTS) Continuity: While the closed GOP ensures the video frame can be reconstructed independently, the VOBU's multiplex layer aligns audio and video timestamps so that presentation continuity remains synchronous across the branch cut.