Why Extracted VOB Subtitles Have Wrong Colors
When subtitles are extracted directly from DVD VOB files without their accompanying IFO file, they frequently render in jarring, neon colors such as bright green, cyan, or magenta. This visual glitch occurs because DVD subtitles are not stored as plain text, but as indexed bitmap graphics whose color definitions reside entirely within the separate IFO file. Without this color table, media players and subtitle extractors are forced to substitute arbitrary default values, resulting in an unreadable and garish display.
DVD Subtitles Are Bitmaps, Not Text
DVD subtitles (technically called Sub-Pictures) are saved as pre-rendered images overlaid onto the video stream. To conserve bandwidth and storage space, DVD specifications limit each subtitle graphic to a 2-bit color depth per pixel. A 2-bit limit means that any given subtitle image can only use four distinct values: typically designated for the background, the main body of the text, the outer outline, and an anti-aliasing edge.
Critically, these 2-bit values do not contain actual color data such as RGB (Red, Green, Blue) or YUV values. Instead, they act purely as index pointers that reference a master color palette.
The Missing Color Lookup Table (CLUT)
The master palette—known as the Color Lookup Table (CLUT)—is stored
exclusively inside the DVD's .IFO file (specifically the
Video Title Set information file, such as VTS_01_0.IFO).
The CLUT contains a 16-color palette defined by the disc's author,
specifying the exact RGB/YUV values intended for the movie, along with
transparency levels.
The sub-picture stream in the VOB file merely instructs the player:
- "Draw pixel value 0" (e.g., Background)
- "Draw pixel value 1" (e.g., Subtitle text)
- "Draw pixel value 2" (e.g., Border)
- "Draw pixel value 3" (e.g., Anti-aliasing blend)
The IFO file is what tells the player:
- "Pixel value 1 corresponds to Palette Index 4 (which is 100% opaque pure white)."
- "Pixel value 2 corresponds to Palette Index 1 (which is 100% opaque black)."
Why the Colors Default to Garish Neon
When a VOB file is demuxed or read independently of its IFO file, the rendering engine has the subtitle shapes and index numbers, but no translation key. The engine knows where text is supposed to appear, but it has no record of what colors the original DVD creators chose.
To prevent the subtitles from being completely invisible, decoders apply a hardcoded fallback palette. These generic palettes frequently map indices to high-contrast system colors such as neon green, bright red, purple, or cyan. Because the decoder is guessing blind, a text outline that was meant to be subtle charcoal black may suddenly be painted bright yellow, while the text body turns hot pink.
Resolving the Issue
To preserve the correct colors, subtitles should always be extracted
using tools that parse both the VOB and the IFO file simultaneously
(such as generating a paired .sub and .idx
file, where the .idx preserves the color palette extracted
from the IFO). If the original IFO file is permanently lost, the only
remedy is to load the extracted subtitle stream into an editor like
BDSup2Sub or Subtitle Edit to manually assign readable colors—such as
white text with a black border—to the bitmap indices.