Understanding PGS Subtitles: What They Are and How They Work
PGS (Presentation Graphic Stream) subtitles are the image-based subtitle format used on Blu-ray discs. Learn how they work, why they exist, and how to convert them to editable text.
If you’ve ever ripped a Blu-ray disc or worked with MKV files from Blu-ray sources, you’ve probably encountered .sup files. These files contain PGS subtitles — a format that’s fundamentally different from the text-based subtitles most people are familiar with.
What Is PGS?
PGS stands for Presentation Graphic Stream. It’s the subtitle format standardized for Blu-ray Disc, defined in the Blu-ray specification. Unlike formats like SRT, ASS, or VTT — which store subtitle text as readable strings — PGS stores each subtitle as a bitmap image.
Every single subtitle cue in a PGS stream is a pre-rendered picture. The disc player renders this image directly onto the video at the exact pixel position and time specified in the stream. This is why Blu-ray subtitles always look perfect — the font, color, and positioning are baked into the image.
Why Does Blu-ray Use Images Instead of Text?
This design choice comes from several practical requirements of the Blu-ray spec:
1. Consistent rendering across all devices. With text-based subtitles, different players render fonts differently. Blu-ray players range from cheap standalone units to high-end setups. By storing subtitles as images, the studio guarantees pixel-perfect rendering everywhere.
2. Support for complex typography. Asian language subtitles in particular require complex rendering — character spacing, vertical text layout, ruby characters. Baking these into images avoids compatibility issues.
3. Content protection. Image-based subtitles are harder to extract and redistribute as plain text.
4. Artistic control. Studios can use custom fonts, colors, gradients, and layouts that text formats simply can’t express.
The Structure of a SUP File
A .sup file is a binary container holding a sequence of PGS segments. Each segment has a type:
- PCS (Presentation Composition Segment): Defines when a subtitle appears, its screen dimensions, and which objects/palettes to use.
- WDS (Window Definition Segment): Specifies the window region where the subtitle will appear.
- PDS (Palette Definition Segment): Stores the color palette — up to 256 colors with RGBA values (stored in YCbCr color space).
- ODS (Object Definition Segment): Contains the actual bitmap image data, compressed using run-length encoding (RLE).
- END segment: Marks the end of a display set.
When a player encounters a display set, it decodes the palette, decompresses the RLE bitmap, and composites the result onto the video frame at the specified coordinates.
Why You Need OCR to Convert PGS to SRT
Here’s the key challenge: there is no text in a PGS file. The words you see as subtitles on your screen are pixels arranged to look like letters — not text characters that can be extracted programmatically.
To convert PGS subtitles to SRT, you need Optical Character Recognition (OCR) — software that analyzes the bitmap image and identifies which characters it represents. This is the same technology used to digitize scanned documents.
Tools like the SUP to SRT converter use the Tesseract OCR engine to perform this recognition entirely in your browser. The process:
- Parse the PGS binary stream to extract display sets
- Decode the RLE-compressed bitmap for each cue
- Apply the color palette to create a proper RGBA image
- Run Tesseract OCR on the rendered image
- Assemble the recognized text with original timestamps into SRT format
Accuracy and Limitations
OCR accuracy depends on several factors:
Font quality: Clean, high-contrast subtitle fonts (white text with black outlines) achieve 95–99% accuracy for Latin languages. Stylized fonts, colored text, or subtitles placed over complex backgrounds reduce accuracy.
Language: Languages with more training data in Tesseract achieve higher accuracy. English, German, French, Spanish, Italian, and other common Latin-script languages perform best.
Image resolution: Blu-ray subtitles are typically 1920×1080 pixels — high enough that individual characters are clearly defined.
Script complexity: CJK languages (Chinese, Japanese, Korean) and right-to-left scripts (Arabic, Hebrew, Urdu) are supported but may require post-conversion review.
The PGS vs. SUP Naming Confusion
You’ll often see these two terms used interchangeably — and that’s correct. SUP refers to the file extension (.sup), while PGS refers to the codec/format name. They’re the same thing:
.sup= the file containing PGS datahdmv_pgs_subtitle= how FFmpeg labels the codec when it appears inside MKV containers- PGS = Presentation Graphic Stream = the underlying format specification
Working With PGS Files
If you’re dealing with PGS subtitles, here are the main workflows:
Extracting from MKV: Use ffmpeg -i input.mkv -map 0:s:0 output.sup to extract the first subtitle track. Or use MKVToolNix’s GUI to select and extract specific tracks. See the complete SUP extraction guide for all methods including HandBrake and MakeMKV.
Converting to SRT: Upload the .sup file to our free online PGS to SRT converter — no software installation, no file upload to any server.
Editing the result: Once you have an SRT file, open it in any text editor or a dedicated tool like Aegisub or Subtitle Workshop for timing adjustments or text corrections.
Understanding PGS subtitles helps explain why conversion requires OCR and why accuracy isn’t always 100% — but for most Blu-ray sources with standard subtitle formatting, the results are clean and usable with minimal editing.