I wouldn’t be surprised if you have never heard of an Image PAC file. You may know it by the more common name Kodak Photo CD Image. Kodak’s PhotoCD format actually refers to the system and Disc format used to store images for compatibility with other hardware. The Kodak PhotoCD format was pretty advanced for its time, it original purpose was to store scanned 35mm film to a disc which was playable on computers and other hardware. In fact, because it was meant to store 35mm rolls as they were scanned it was the first use of the linked Multi-session CD format made standard by the orange book specification. The format was widely adopted at first, but eventually lost favor and was abandoned by 2004.
The Kodak PhotoCD format was also used on many commercial CD-ROM products. One example was the Corel Professional CD series. Below is a photo of a case of 200 CD’s I recently acquired. Each has around a hundred PCD images and viewing software on disc. Most discs can be viewed here. Or you can view their “Sampler” CD-ROM.
The actual PCD image file format was referred to as an Image PAC File. The format was unique in the fact it has multiple resolutions built into a single file. It also stored the raster data in a format called Photo YCC color encoding metric, developed by Kodak. This requires conversion to RGB for many uses. Adobe Photoshop for many years had an import filter for the format built in which included ICC profiles for properly converting the source to a destination colorspace, but support was dropped in CS3 of their products.
The Image PAC PCD format was a proprietary format which Kodak protected aggressively, even to the point of threatening legal action to those who attempted to reverse engineer the format. This frustrated developers and was probably part of the reason the format was abandoned. Of course this didn’t deter some curious developers and was partially reversed engineered and is available in the NetPBM library formally knows as PBMPlus. The tool hpcdtoppm was developed to convert PCD to PBM.
The trick in preserving older obsolete formats is to find a way to first identify them, gather significant properties, then migrate to a modern format if appropriate with minimal loss of data. Luckily most PCD files have the ascii string “PCD_IPI” starting around offset 2048. This is basically how the PRONOM registry identifies the format and has assigned it fmt/211. Exiftool also supports the format in identifying some of the significant properties.
ExifTool Version Number : 12.62 File Name : 136009.PCD Directory : /Users/thorsted/Desktop/blog/Kodak/PCD File Size : 3.6 MB File Modification Date/Time : 2023:06:23 10:48:55-06:00 File Access Date/Time : 2023:06:26 23:43:50-06:00 File Inode Change Date/Time : 2023:06:27 11:18:38-06:00 File Permissions : -rwx------ File Type : PCD File Type Extension : pcd MIME Type : image/x-photo-cd Specification Version : 0.6 Authoring Software Release : 3.0 Image Magnification Descriptor : 1.0 Create Date : 1993:09:20 07:35:34-06:00 Image Medium : Color reversal Product Type : 116/01 SPD 0064 #00 Scanner Vendor ID : KODAK Scanner Product ID : FilmScanner 2000 Scanner Firmware Version : 2.21 Scanner Firmware Date : Scanner Serial Number : 0296 Scanner Pixel Size : 0b.30 micrometers Image Workstation Make : Eastman Kodak Character Set : 95 characters ISO 646 Photo Finisher Name : HADWEN GRAPHICS Scene Balance Algorithm Revision: 3.1 Scene Balance Algorithm Command : Neutral SBA On, Color SBA On Scene Balance Algorithm Film ID : Unknown (131) Copyright Status : Restrictions apply Copyright File Name : RIGHTS.USE Orientation : Horizontal (normal) Image Width : 3072 Image Height : 2048 Compression Class : Class 1 - 35mm film; Pictoral hard copy Image Size : 3072x2048 Megapixels : 6.3
Exiftool is able to gather much of the important properties including an original creation date and the pixel dimensions. It would be nice if was able to mention each of the resolution options as some later Pro versions of PCD had a 64 base for resolutions of 4096 x 6144.
Migration to a more modern open format is a common preservation strategy. The National Archives and Records Administration has the format NF00224 listed as needing to migrate to JPG, while others prefer migration to TIFF. Others have learned valuable lessons attempting to find the right method for migration. There is a right way and a wrong way as the Center for Digital Archaeology learned. The easiest method is to use the popular ImageMagick command-line tool.
thorsted$ identify 136009.PCD 136009.PCD PCD 768x512 768x512+0+0 8-bit YCC 3.44727MiB 0.020u 0:00.006 thorsted$ convert 136009.PCD -colorspace sRGB +compress 136009.tif thorsted$ identify 136009.tif 136009.tif TIFF 3072x2048 3072x2048+0+0 8-bit sRGB 18.0004MiB 0.000u 0:00.000
ImageMagick along with most other tools like IrfranView and XnView only see the base resolution of 768 x 512, but with an extra little addition to the command by adding “” after the filename if forces the conversion to use the “Fifth” 16 Base resolution which is the highest resolution on most PCD files, the Pro versions may have higher. The other issue is the colorspace conversion. It is known there could be a loss of highlights. This webpage illustrates different tools and the issues with highlights. You can see the difference if I use -colorspace RGB instead of sRGB.
ExifTool Version Number : 12.62 File Name : 136009_1.tif Directory : . File Size : 38 MB File Modification Date/Time : 2023:06:27 12:06:26-06:00 File Access Date/Time : 2023:06:27 12:06:29-06:00 File Inode Change Date/Time : 2023:06:27 12:06:27-06:00 File Permissions : -rw-r--r-- File Type : TIFF File Type Extension : tif MIME Type : image/tiff Exif Byte Order : Little-endian (Intel, II) Subfile Type : Full-resolution image Image Width : 3072 Image Height : 2048 Bits Per Sample : 16 16 16 Compression : Uncompressed Photometric Interpretation : RGB Image Description : color reversal: Unknown film. SBA settings neutral SBA on, color SBA on Make : KODAK Camera Model Name : FilmScanner 2000 Strip Offsets : 1622 Samples Per Pixel : 3 Rows Per Strip : 2048 Strip Byte Counts : 37748736 Planar Configuration : Chunky Software : pcdMagic V1.4.19 Modify Date : 2023:06:27 12:06:26 Copyright : Copyright restrictions apply - see copyright file on original CD-ROM for details Exif Version : 0231 Date/Time Original : 1993:09:20 07:35:34 Create Date : 1993:09:20 07:35:34 Offset Time : -06:00 User Comment : color reversal: Unknown film. SBA settings neutral SBA on, color SBA on Color Space : Uncalibrated File Source : Film Scanner Profile CMM Type : Unknown (KCMS) Profile Version : 2.1.0 Profile Class : Display Device Profile Color Space Data : RGB Profile Connection Space : XYZ Profile Date Time : 1998:12:01 18:58:21 Profile File Signature : acsp Primary Platform : Microsoft Corporation CMM Flags : Not Embedded, Independent Device Manufacturer : Kodak Device Model : ROMM Device Attributes : Reflective, Glossy, Positive, Color Rendering Intent : Perceptual Connection Space Illuminant : 0.9642 1 0.82487 Profile Creator : Kodak Profile ID : 0 Profile Copyright : Copyright (c) Eastman Kodak Company, 1999, all rights reserved. Profile Description : ProPhoto RGB Media White Point : 0.9642 1 0.82489 Red Tone Reproduction Curve : (Binary data 14 bytes, use -b option to extract) Green Tone Reproduction Curve : (Binary data 14 bytes, use -b option to extract) Blue Tone Reproduction Curve : (Binary data 14 bytes, use -b option to extract) Red Matrix Column : 0.79767 0.28804 0 Green Matrix Column : 0.13519 0.71188 0 Blue Matrix Column : 0.03134 9e-05 0.82491 Device Mfg Desc : KODAK Device Model Desc : Reference Output Medium Metric(ROMM) Make And Model : (Binary data 40 bytes, use -b option to extract) Image Size : 3072x2048 Megapixels : 6.3 Modify Date : 2023:06:27 12:06:26-06:00
There is a way to convert the PCD to TIF using ImageMagick, then using Exiftool to map some of the metadata over to the new TIFF file. It would look something like this:
exiftool -addtagsfromfile 136009.PCD '-EXIF:DateTimeOriginal<PhotoCD:CreateDate' '-EXIF:CreateDate<PhotoCD:CreateDate' '-ExifIFD:SerialNumber<PhotoCD:ScannerSerialNumber' '-ExifIFD:ExifImageWidth<PhotoCD:ImageWidth' '-ExifIFD:ExifImageHeight<PhotoCD:ImageHeight' '-IFD0:Make<PhotoCD:ScannerVendorID' '-IFD0:Model<PhotoCD:ScannerProductID' '-IFD0:Orientation<PhotoCD:Orientation' '-IFD0:Copyright<PhotoCD:CopyrightStatus' 136009.tif