PCD File Documentation
Summary
A .pcd file is a Kodak Photo CD Image, a proprietary format Kodak introduced in 1992 to store scanned film on a CD. Its defining trait is that one file (an “Image Pac”) holds the same photo at up to five or six resolutions, from 128×192 up to 4096×6144, encoded in Kodak’s PhotoYCC colour space. It is obsolete; the practical move is to convert it once to JPEG or TIFF with pcdtojpeg or ImageMagick. Its MIME type is image/x-photo-cd.
Technical details
| Feature | Value |
|---|---|
| Full name | Kodak Photo CD Image (Image Pac) |
| File extension | .pcd |
| MIME type | image/x-photo-cd |
| Format type | Proprietary multi-resolution raster image |
| Developer | Eastman Kodak Company |
| Introduced | 1992 (Photo CD system); largely obsolete after the mid-2000s |
| Colour space | PhotoYCC (luma + two chroma), chroma subsampled |
| Compression | Base resolutions stored directly; higher resolutions as residual (difference) data |
| Resolutions | Base/16 (128×192), Base/4 (256×384), Base (512×768), 4Base (1024×1536), 16Base (2048×3072); Pro adds 64Base (4096×6144) |
| Byte order | Big-endian fields in the Image Pac header |
| Magic / identifier | ASCII PCD_IPI at offset 0x800 (2048); file start padded with 0xFF |
| On-disc layout | PHOTO_CD\IMAGES\IMGnnnn.PCD |
| Open standard | No (Kodak proprietary; decoder historically a 32-bit plugin) |
| Related extensions | .pcdlib, .jpg, .tif, .png |
| Specification | Photo CD (overview) |
What is a PCD file?
A .pcd file is a Kodak Photo CD Image, the format Eastman Kodak introduced in 1992 as part of the Photo CD system. The idea was that a photofinisher would scan your developed film and write the results to a CD you could view on a television (through a set-top Photo CD player) or on a computer. Each scanned frame is stored as a single file Kodak called an Image Pac, and its defining feature is that the same photograph is held at several resolutions at once inside that one file.
That multi-resolution design, the PhotoYCC colour space it uses, and the residual-difference coding of its higher resolutions are exactly what make a .pcd awkward for ordinary image software today. Kodak wound the Photo CD program down in the 2000s, and the high-resolution decoder was distributed as a 32-bit library, so most modern 64-bit photo apps either fail to open a .pcd or show only its smallest embedded image. The sections below explain the Image Pac layout, the resolution hierarchy, the colour encoding, and the residual coding, then how those facts dictate the way you actually recover the pictures.
The Image Pac: header, PCD_IPI and the resolution set
A Photo CD file is an Image Pac. The first 2 KB is a header/attribute area; the very start of the file is usually padded with 0xFF bytes, so it is not itself a signature. The reliable identifier is the ASCII string PCD_IPI at offset 0x800 (byte 2048), which marks the Image Pac information block. That header records which resolutions are present, image orientation/rotation, and colour metadata.
The resolutions are named as multiples of a “Base” image of 512×768 pixels:
Base/16 128 x 192 thumbnail
Base/4 256 x 384 preview
Base 512 x 768 TV / screen resolution
4Base 1024 x 1536 print
16Base 2048 x 3072 high-resolution (standard Photo CD maximum)
64Base 4096 x 6144 Pro Photo CD only
A standard Photo CD holds up to 16Base (2048×3072); Pro Photo CD adds 64Base (4096×6144). On the disc the images live in a PHOTO_CD\IMAGES directory as IMGnnnn.PCD. This is why a viewer that “opens” a Photo CD but shows a small, soft picture has simply decoded the Base image and stopped: the larger resolutions are stored differently and take extra work to reconstruct.
PhotoYCC: luma, chroma and subsampling
Photo CD does not store RGB. It uses Kodak’s PhotoYCC colour space, which separates one luma channel (Y, brightness) from two chroma channels (C1 and C2, colour). PhotoYCC was designed around the wide gamut and characteristic curve of photographic film rather than a monitor, which is part of why faithful conversion needs proper colour management rather than a naive YCC→RGB matrix. To save space, the chroma channels are stored at lower spatial resolution than luma (chroma subsampling), on the well-founded assumption that the eye is far more sensitive to detail in brightness than in colour. A decoder must upsample the chroma back to full resolution and then convert PhotoYCC to TIFF- or JPEG-style RGB for display.
Residuals: how 4Base, 16Base and 64Base are reconstructed
The higher resolutions are not stored as full independent images. Only the three lowest (Base/16, Base/4, Base) are held more or less directly. Each larger resolution is stored as residual (difference) data on top of the level below it: the decoder takes the reconstructed Base image, upscales it, and adds the stored residual to recover 4Base; it repeats to reach 16Base, and again for 64Base on Pro discs. This pyramid keeps the file smaller than storing every resolution in full, but it means extracting a high-resolution image is a chained decode, not a simple crop from a stored plane. It is precisely this residual step that the old 32-bit Kodak decoder handled and that many modern viewers skip, leaving you with only the Base image.
Why modern 64-bit apps only show a small image (or nothing)
High-resolution Photo CD reading historically relied on Kodak’s pcdlib / PCDLIB32.DLL, a 32-bit plugin. A 64-bit application cannot load a 32-bit DLL, so current Photoshop, and most 64-bit viewers, either refuse the file or fall back to the Base image that they can decode without the plugin. Windows has no built-in Photo CD codec at all, which is why Explorer shows neither thumbnail nor preview. The formats that do work today implement the residual decode natively: the open-source pcdtojpeg reconstructs the maximum available resolution with correct colour management, and ImageMagick can select a resolution by index — magick img.pcd[4] img.tif pulls 4Base, index 5 pulls 16Base. XnView Classic (the 32-bit build) still bundles the old pcdlib and can read full resolution once you set the PhotoCD size in its read options.
Preservation: disc rot and converting once
The realistic threat to a Photo CD is not malware — a .pcd is inert image data — but the physical medium. Pressed and especially recordable CDs degrade over time (“disc rot”), so the first step with an old Photo CD is to copy the .pcd files off the disc before it becomes unreadable. Because the format itself is a dead end, the sensible workflow is a one-time batch conversion of the whole disc to a modern archival format — lossless TIFF for the scans you want to keep at full quality, or JPEG/PNG for everyday use — extracting the highest resolution each image contains, then retiring the PCDs.
FAQ
Why does my PCD open only at low resolution?
The viewer decoded the Base (512×768) image but not the residual data that reconstructs 4Base, 16Base or 64Base. Reconstructing those needs a decoder that implements the residual pyramid: use pcdtojpeg, ImageMagick with a resolution index (e.g. img.pcd[5]), or XnView Classic 32-bit, and pick the largest size the file contains.
What is the maximum resolution I can get from a Photo CD?
A standard Photo CD holds up to 16Base, which is 2048×3072 pixels. Pro Photo CD adds 64Base at 4096×6144. Many viewers default to the small Base image, so set the tool to extract the highest resolution explicitly.
Can Photoshop open a PCD file?
Only old 32-bit Photoshop versions with the legacy Photo CD plugin could. Current 64-bit Photoshop dropped it, because the plugin was 32-bit. Convert the file first with pcdtojpeg or ImageMagick, then open the resulting TIFF or JPEG in Photoshop.
References
- Wikipedia — Photo CD
- Ted Felix — Software that really supports Kodak Photo CD
- pcdtojpeg — project page
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.