Understanding Cell Structure and VOBUs in VOB Files

This article explains the purpose and functionality of cells and Video Object Units (VOBUs) within a DVD Video Object (VOB) file. It breaks down the structural hierarchy of DVD-Video streams, explaining how cells organize presentation timing and chapters, how VOBUs act as the granular containers for multiplexed media, and how navigation packs bind them together to enable smooth playback, user seeking, and interactive branching.

The Structural Hierarchy of VOB Files

In the DVD-Video specification, MPEG-2 program streams are stored inside VOB files. To manage playback logically rather than just sequentially, the format uses a hierarchical structure consisting of Titles, Program Chains (PGCs), Programs, Cells, and Video Object Units (VOBUs).

A Cell is the smallest presentation unit accessible by the DVD player's high-level navigation system, while a VOBU is the smallest physical container unit within the stream itself. A Cell consists of an ordered sequence of contiguous VOBUs, and each VOBU contains the actual multiplexed audio, video, sub-picture, and navigation packets.

The Purpose of a Cell

Cells serve as the bridge between DVD authoring logic and the raw media stream. Their primary functions include:

The Role of the VOBU Within the Cell

While a Cell defines what to play, the VOBU defines how the hardware player decodes and navigates that segment. A VOBU typically corresponds to about 0.4 to 1.0 second of playback time, usually matching one Group of Pictures (GOP) in MPEG-2 video.

Every VOBU begins with a specialized data packet called the Navigation Pack (NV_PCK), which contains:

  1. Presentation Control Information (PCI): Manages real-time display settings, highlight information for menus, and angle changes.
  2. Data Search Information (DSI): Stores exact byte offsets and playback timings for trick-play modes (fast-forward, rewind) and relative addresses to preceding and succeeding VOBUs within the same Cell.

How Cells and VOBUs Interact

The VOBU embeds the identity of its parent Cell within its Navigation Pack via the VOB ID and Cell ID fields. This metadata fulfills several critical operational purposes: