Thursday, February 28, 2013

Costco film development and scanning

I've been shooting mostly film lately. I love the wider dynamic range that it has over digital cameras (15-16 stops vs. 10-12 stops or so), and I love using an inexpensive, easy-to-use, full-frame SLR with a huge, bright optical viewfinder and a fast lens (I'm talking 1:1.4 fast!).

Last week I had two rolls of Fujifilm Superia X-TRA 400 (pretty good and cheap film, by the way) developed and scanned at Costco. The development appears to be decent, but the scanning leaves a lot to be desired. The resolution of each image file is 3091x2048, which is sufficient for a good 6x9 print or larger. However, it seems that somewhere along the scanning workflow the image data in all photos was, for lack of a better word, distorted.

Here is a 400% zoom on part of one photo. This is part of the number "4" on my younger son's shirt.
As you can see, pairs of rows are swapped, and pairs of columns are swapped. It seems that the image was interlaced (ie, odd and even lines were separated into two separate fields) and then incorrectly deinterlaced (fields were reassembled in the incorrect order). This particular section of the photo was not in very sharp focus (the depth of field of a 50mm lens at 1:1.4 is very thin), but even being out of focus it clearly looks pixelated or "blown apart".

I manually swapped pairs of rows and columns in a photo editor for this small cropped section of the photo. This is approximately what the image should look like:
This image looks much better. It's still obviously soft, but as I mentioned, this part of the photo was not in focus.

It's true that I could mostly fix a photo using this technique, but it's not at all practical. For one thing, this cropped area represents only one eighth of one percent of the whole photo. I spent about 15 minutes to fix this one small area; one whole photo would take me about 200 hours to fix manually. Secondly, I did write a simple program which attempted to fix all scanned images automatically, but it did not work very well in practice because I've found that the interlacing is not consistent across a whole image: the phase of the interlacing changes approximately every 82 or 83 pixels across an image. Sometimes the odd/even columns are swapped, and sometimes the even/odd columns are swapped. Worse, the frequencies and boundaries of the phase changes are not entirely consistent across multiple photos. My theory is that all images were scanned in at various resolutions slightly larger or smaller than 3091x2048 (and the interlacing errors were introduced at this point in the scanning process), and then the images were scaled down or up to 3091x2048.

I can't say for sure what is responsible for the interlacing errors, but I suspect that the software driver for the scanner that Costco uses is at fault. I write software for a living (and as a hobby long before it was for a living), so I am well aware of how bad software can be. :-)

I currently shoot only about one roll of film per month, and so far I have posted photos only on social media sites where high-resolution photos are not the norm (they look OK scaled down to 1.5Mpx), so I am not entirely disappointed in the scanning job. Perhaps I'll bring this issue to their attention, and hopefully they can take steps to fix the problem (I won't hold my breath, though). I'll continue to use their scanning services either way—they are not too expensive, after all—until I can afford to purchase my own film scanner. Then I'll be able to see the full potential of film! Viva la film!

No comments: