How DVD Authoring Tools Calculate Sector Pointers

DVD authoring tools calculate sector pointers through a deterministic pre-mastering process that maps data to fixed 2,048-byte logical blocks before writing to physical media. By simulating the precise disc layout through a two-pass multiplexing and virtual allocation system, the software determines the exact Logical Block Addressing (LBA) coordinates for all titles, chapters, and navigation packs. This predictive mapping ensures that DVD-Video navigation files (.IFO) and internal stream pointers within Video Object (.VOB) files seamlessly synchronize playback operations prior to the burn phase.

The Foundation: Fixed-Size Logical Blocks

The DVD-Video specification mandates that all disc data is arranged in uniform sectors of exactly 2,048 bytes (2 KB). Every asset—including the Video Manager (VIDEO_TS.IFO), Video Title Sets (VTS_xx_x.IFO), menu VOBs, title VOBs, and backup files (.BUP)—must align strictly with these sector boundaries. Because sector sizes are strictly fixed, the physical offset of any byte sequence on a disc can be converted directly to a sector address:

\[\text{LBA} = \frac{\text{Byte Offset}}{2048}\]

Virtual File System Layout (Pass 1)

Before calculating individual stream pointers, the authoring tool performs a layout reservation pass. It models the target disc filesystem (typically a UDF/ISO 9660 Bridge format) by calculating the space requirements for:

  1. Lead-In and File System Descriptors: Sector offsets for the Primary Volume Descriptor, Volume Recognition Sequence, and UDF Anchor Points.
  2. Video Manager Assets: VIDEO_TS.IFO, its menu VOBs (VIDEO_TS.VOB), and its backup (VIDEO_TS.BUP).
  3. Video Title Set Boundaries: The exact starting LBA for every VTS_xx_0.IFO and its associated title VOB files (VTS_xx_1.VOB through VTS_xx_n.VOB).

Because the sizes of file system descriptors and video streams are known during or immediately after the asset multiplexing phase, the authoring engine constructs an absolute disc allocation table. This table fixes the base starting LBA for every VOB sequence on the disc.

VOBU Generation and Navigation Packs

DVD video streams are broken into Video Object Units (VOBUs), typically representing 0.4 to 1.0 seconds of playback (corresponding to a Group of Pictures, or GOP). Every VOBU must begin with a 2,048-byte Navigation Pack (NV_PCK), which contains two critical data structures:

During multiplexing, the authoring tool keeps a running tally of generated sectors. Because it creates packets in a continuous 2,048-byte stream, it knows the exact relative distance between the current VOBU and surrounding VOBUs (such as \(+1, +2, +4, +8\dots\) VOBUs ahead, and \(-1, -2, -4, -8\dots\) VOBUs behind). By combining the relative offset of each VOBU with the VTS file's base LBA determined during the layout pass, the tool embeds explicit sector-accurate navigation addresses directly into the DSI tables of each NV_PCK.

Synchronizing IFO Tables and Cells

Once the VOB assets are multiplexed and the final sector counts are locked, the authoring tool writes the metadata to the .IFO files. The .IFO files store the primary entry points used by the DVD player's optical pickup, including:

Because .IFO files must contain the final sector addresses of the .VOB files, and .BUP files must mirror .IFO files while being placed at distinct sector locations (to prevent simultaneous read corruption), the authoring engine updates all pointer references in memory first.

Final Verification and Image Assembly

With all sector offsets established:

  1. The authoring tool writes out the finalized NV_PCK headers inside the VOB files.
  2. It generates the finalized .IFO files containing the absolute LBA maps.
  3. It places the .BUP files at an offset that meets specification requirements—usually ensuring a minimum distance from the corresponding .IFO (often at least one ECC block, or 16 sectors, away) to provide hardware redundancy.
  4. For dual-layer (DVD-9) media, the tool ensures that the Layer Break falls on a valid Cell boundary aligned to an Error Correction Code (ECC) block boundary (a multiple of 16 sectors), adjusting dummy sectors or padding if necessary.

Once every table contains verified, non-conflicting LBA coordinates, the multiplexed sectors are written sequentially to an ISO image or burned directly to the optical disc.