PCR vs SCR in VOB Files Explained
Understanding digital video synchronization requires distinguishing between the Program Clock Reference (PCR) and the System Clock Reference (SCR). In the context of DVD Video Object (VOB) files, the SCR is the native timing reference embedded within the file's pack headers to synchronize decoding, while the PCR serves the identical functional role in MPEG-2 Transport Streams. Although they originate from different container formats, they share the same mathematical base and serve to keep the decoder's internal clock aligned with the encoder's original timeline.
Container Formats: Program Streams vs. Transport Streams
VOB files are based on the MPEG-2 Program Stream (PS) specification. In a Program Stream, data is organized into packs and packets designed for retrieval from local, error-free storage media such as DVDs and hard drives. The clock reference used throughout Program Streams—and consequently within VOB files—is the System Clock Reference (SCR).
The Program Clock Reference (PCR), by contrast, belongs to the MPEG-2 Transport Stream (TS) specification. Transport Streams are engineered for transmission over lossy or error-prone environments, such as terrestrial broadcasts and satellite networks. Because a VOB file is a Program Stream, it technically does not contain PCRs; it contains SCRs.
Functional and Mathematical Relationship
Despite appearing in different stream formats, PCR and SCR perform the exact same task: they synchronize the System Time Clock (STC) in the playback hardware or software decoder to prevent buffer underflow (stuttering) or overflow (dropped frames).
Both clock references operate on identical timing principles:
- Clock Frequency: Both use a 27 MHz base frequency.
- Structure: Both references consist of two parts: a 33-bit base clocked at 90 kHz (used for presentation and decoding timestamps like PTS and DTS) and a 9-bit extension running at 27 MHz (providing higher precision).
- Formula: \(\text{Clock Value} = \text{Base} \times 300 + \text{Extension}\).
Because their structural math is identical, converting a Transport Stream into a VOB Program Stream (or vice versa) typically involves translating the PCR values directly into SCR values without altering the core timing data.
Location in the Bitstream
The primary physical difference between the two clocks lies in where they are stored:
- SCR in a VOB (Program Stream): Embedded inside the Pack Header, which appears at the beginning of each pack (typically every 2048 bytes in standard DVD VOB files).
- PCR in a Transport Stream: Embedded inside the Adaptation Field of individual 188-byte transport packets associated with a specific program.
Summary
The relationship between PCR and the SCR found in a VOB file is one of functional equivalence across different MPEG-2 specifications. A VOB file inherently uses the SCR to manage decoding timelines, whereas broadcast media uses the PCR. Both run at 27 MHz, use the exact same 42-bit composite calculation, and ensure seamless audio and video synchronization during playback.