_ Photo CD Home | Basics | Advanced | Software | Make Your Own | Links email me!

Kodak Photo CD
Software Developer Info

Introduction

Being a software developer myself, I'm very interested in the software side of Kodak Photo CD. On this page I've gathered various links to information of interest to Software Developers like myself.

The SDK

For those of you contemplating including PhotoCD support in your software packages, Kodak's "Photo CD Access Developer Toolkit" costs $700(?) and gives you an API to program to (though it appears to be read-only). Also available is the open source hpcdtoppm converter. I believe LEADTools supports PhotoCD too. If I forgot anybody, please email me with the info.

Kodak's Developer Relations Group's Photo CD Site - Here you can find the KODAK PROFESSIONAL Image Pac Toolkit. The read only toolkit is down to $250 (for DRG members!?). Comes complete with source so you can hack and rebuild it on any platform. Read/Write is still $1500. Check out the Press Release. No wonder no one supports PhotoCD. TIFF and JPEG are free (and better).

Open Source

hpcdtoppm.1 - The man page for hpcdtoppm. hpcdtoppm converts PhotoCD "PCD" files to "PPM" files that can be read by many software packages. It also does a number of other conversions. Source code is easily found, 0.6 is the last version. There is also another converter called XHpcd that adds Photo CD support to The GIMP.

hpcdtoppm.linux.tar.gz - The source code for hpcdtoppm. I believe this is 0.6 (v0.6), and it is the latest I found so far. This builds fine under Windows (don't forget binmode.obj in your link step), and works fine too. I'm hoping to eventually create a way to batch convert PhotoCD images to TIFF without losing any data. Could be very handy. I contacted the author and he indicated there might be a newer version, but I couldn't find one. He gave me the go ahead to start "trashing" his code. I've started walking through the code, adding comments. I fixed the "-i" option to dump all the header info in a readable form. You can see the lab and the workstation the scan was done on. I've also been playing with the YCC to RGB conversion and I was able to extract all the Y data much like Picture Window does. Bear in mind that this conversion algorithm may not be as good as Kodak's. Kodak included a patented error correction in their algorithm and I didn't look through this code to see if it is handling this.

Photo CD On The Web - There's a Java applet, and CGI scripts for viewing Photo CD images here. You might be able to look through the source code to get more info about the file format.

The File Format

PhotoCD File Format document by Alex Kwak - Includes Pascal source to read the file. Doesn't handle Huffman Coding or Chroma Subsampling compression used in resolutions above Base. You'll have to refer to hpcdtoppm to figure those out. This was found at the Wotsit's Format site.

Kodak PhotoYCC colour space for PhotoCD images. Covers the math behind the conversion between PhotoYCC and RGB. Similar info is in PCD-045.

COLORS - FORTRAN source to convert amongst many color spaces, including PhotoYCC.

Colour Space Conversions by Adrian Ford and Alan Roberts. Covers YCC space and conversion to other spaces.

The Kodak Photo CD Format (Orange Book)

Alexander L. from Germany has successfully developed software to generate Photo CDs for playing on a CD-i player or a Kodak Photo CD player (but not both). Here are some of the things he's found out:

PC Compatibility

This one's easy. For a Kodak Photo CD to play on a PC, it must have a valid ISO9660 file system. The directories and files are arranged as can be seen on any Kodak Photo CD.

CD-i Compatibility

For a Kodak Photo CD to play on a CD-i player, it must have a valid ISO9660 file system. It must be recorded as CDROM-XA, with Mode 2 and in strict ISO norm. The following parameters are required:

Volume ID:   PCD1298            (the numbers are only the date!)
System ID:   CD-RTOS CD-BRIDGE  (very important!)
Application: CDI/CDI_APPL.PCD;1 (without this it doesn't run!)

A set of CD-i executable files is required that essentially turn the CD-i player into a Photo CD player. These files can be taken from any working Photo CD. In addition, the CD-i player needs the info.pcd and overview.pcd files which contain rotation information and the image sequence.

Alexander has developed a piece of software that can create the necessary info.pcd and overview.pcd files from a set of .pcd images. This can then be used to cut a Photo CD that plays fine in a CD-i player and a PC.

Photo CD Player Compatibility

The Kodak Photo CD player does not understand what an ISO9660 file system is. Instead, it looks for various pointers throughout the CD that point to the time/frame where the next PCD format image starts. There is probably more to this since the players can handle non-linear branching presentations. But this is quite a bit more than was known previously. Alexander's document details the positions of these time/frame pointers within the CD image.

Alexander developed a utility that modifies a stock Photo CD disc image to contain Photo CD files of the user's choice. Very clever.

Links

Specs for Freeware Developers - This site will be the place to find the Photo CD spec once it is completely figured out.

Guy Sotomayor has done similar research into the format of Photo CD. Kodak was unwilling to give his project a thumbs up, so he backed off.

Miscellany

Das ImagePac Forum - I don't know, it's in German. But it looks like a developer site of some sort.

Openwin man page - Programming PhotoCD in OpenWin. Not being even remotely familiar with OpenWin, I'm not sure if this is of any use to anyone.

UMSPCDImageReader Object (#1) and UMSPCDImageReader Object (#2). IBM's AIX operating system has a graphics package that directly supports Kodak's toolkit if it is installed. These pages give some interesting clues about programming PhotoCD.

<- Back to my PhotoCD page.

Disclaimers: These are links I found while sifting through tons of results from searching AltaVista on the keywords "PhotoCD" and "Photo CD". I am not affiliated with any of the links or link owners mentioned in this page. All trademarks are owned by their respective owners. There are no ads on this page, and there never will be. Use this information at your own risk. Perform your own experiments before committing to PhotoCD for any purpose. I won't be held responsible for anything that happens to you as a result of reading this, or following these links. Shake well before serving. The contents of this page are Copyright 2000, with all rights reserved by me, Ted Felix.

Copyright ©2000, Ted Felix