How VTSI Sector Address Tables Map to Split VOBs
This article examines how DVD-Video players resolve physical file boundaries when reading Video Title Set Information (VTSI). It details how the sector address tables inside the IFO files represent data as a continuous logical stream and explains the mathematical translation players use to locate sectors across multiple, split 1 GB VOB files.
The Contiguous Logical Sector Model
The DVD-Video specification limits individual VOB (Video Object)
files to a maximum size of 1 GB (1,073,741,824 bytes, or 524,288 sectors
of 2,048 bytes each) to maintain compatibility with older operating
systems and file systems like FAT32 and UDF 1.02. To store long-form
video, titles are split sequentially across multiple files named
VTS_xx_1.VOB, VTS_xx_2.VOB, up to
VTS_xx_9.VOB.
Despite this physical fragmentation on the disc, the VTSI tables
within VTS_xx_0.IFO do not contain distinct file pointers
or direct file-path references for each split segment. Instead, the VTSI
treats the collection of split files as a single, contiguous address
space.
Key VTSI Address Tables
Two primary tables within the VTSI define sector locations for playback navigation:
- VTS_VOBU_ADMAP (VOBU Address Map): Lists the start addresses of every Video Object Unit (VOBU) relative to the beginning of the title set's presentation space.
- VTS_C_ADT (Cell Address Table): Defines the start and end sector addresses for every cell (chapter or scene component) within the title set.
Both tables store addresses as relative sector numbers (RLBA), where
sector 0 corresponds to the very first sector of
VTS_xx_1.VOB.
Mapping Logical Sectors to Split Files
When a DVD navigation engine queries the VTSI for a target sector, it maps the global sector offset to a physical file and an internal file offset.
To determine the correct file:
- The player reads the file system directory to get the exact sector
count and starting disc Logical Block Address (LBA) of each sequential
split file (
VTS_xx_1.VOB,VTS_xx_2.VOB, etc.). - The player maintains a cumulative running total of sectors across these files.
- If the target sector address \(S\)
is smaller than the capacity of
VTS_xx_1.VOB, the target resides inVTS_xx_1.VOBat sector \(S\). - If \(S\) exceeds the capacity of
VTS_xx_1.VOB, the player subtracts the sector lengths of preceding files until the relative offset falls within the sector range of a subsequent file:
\[\text{Local Sector Offset} = S - \sum_{i=1}^{k-1} \text{Size}(\text{VTS\_xx\_}i\text{.VOB})\]
Where \(k\) is the target file index in the sequence.
Boundary Alignment and Seamless Traversal
Because sector offsets in the VTSI are completely agnostic of file splits, authoring systems ensure that split points do not interrupt essential data structures:
- VOBU Alignment: Splits occur strictly on sector boundaries, and well-authored discs align the 1 GB split to complete Video Object Units (VOBUs) to avoid cutting an audio or video packet in half.
- Seamless Buffering: During linear playback, the
player reads through the final sector of
VTS_xx_k.VOBand immediately issues a read command to the starting LBA ofVTS_xx_(k+1).VOB. Since the disc track layout places sequential split VOBs contiguously on the physical spiral whenever possible, the optical pickup moves seamlessly without dropping frames, matching the continuous logical structure dictated by the VTSI tables.