Timo incident -
The technical argument

Timo Autiokari published, in a (now-withdrawn) web page, an explanation of what he thought was wrong with the Gamma FAQ as it applies to digital photography. As far as I am concerned, the Gamma FAQ itself refutes Timo's technical argument. But Timo remains unconvinced.

This page very briefly refutes Timo's technical argument with my Gamma FAQ.

I quote from Timo's now-withdrawn web page (emphasis and indentation in original):

The fundamental error lies in the below wordings of Mr. Poynton: 

The explanation is below

Timo starts, "The CCD elements capture the light linearly ... ." A CCD does capture light linearly. But the Gamma FAQ talks about image sensing devices in general; it is not restrictive to CCDs - It certainly applies to CCDs, and it applies to other image sensors. Timo should not base a wide-scale criticism of the Gamma FAQ upon what he knows about CCDs.

Timo continues, "... and the AD converter inside the CCD device ... ." I pointed out in a followup news article that in today's cameras, the ADC is usually a separate integrated circuit, that integral ADCs are not yet widely deployed. My information was confirmed by what I considered to be a definitive posting from a gentleman from H-P Labs.

Timo goes on, "the light-to-data coding (coding of intensities) is done by the CCD device, linearly. Always." Well, most CCDs do not code to data at all; contemporary CCDs are analog devices. (They sample, but they don't quantize.) But more seriously, what Timo fails to understand here is that non-linear processing is typically employed in video, print, desktop publishing, and (Timo's opinions notwithstanding) digital photography. Sometimes nonlinear analog signal conditioning circuitry intervenes between the CCD and the ADC. In some high-end cameras and scanners, the CCD-to-ADC path is linear, and non-linear digital processing is imposed by lookup tables at the output of the ADC, either within the scanner or camera itself, or within the software subsystem ("driver") running on the host computer.

Timo concludes this passage by saying, "Then the CCD provides the linear-light data to the camera or scanner software." Here he uses the term "CCD" loosely to refer to the piece of equipment (not the IC device within). More clearly expressed, he is saying, "Then the camera or scanner provides ...." But it's not necessarily - or even usually! - linear-light data. It's been subject to introduction of a nonlinear transfer function, imposed either by analog signal conditioning, or by digital processing such as processing through a lookup table!

In a Usenet news posting, Timo said:

Here is a simple way to see if there is a non-linear analog signal conditioning in the camera:

Now, if you do not see gaps in the histogram then there is the non-linear analog signal conditioning in the camera or the scanner. But if you do see the gaps then the data is just modified by the software of the camera or scanner. To verify, open a couple of other images and do the same to see that the gaps appear generally in the same places.

Well, first, I have to dispute the proof-by-example. Suppose I place a blindfold over my eyes, walk across Yonge Street, and reach the other side without having been struck by a car. I could say, "It is safe to walk across Yonge Street wearing a blindfold." (I could even extend the conclusion to say, "It is safe to cross any street wearing a blindfold.") But this is faulty logic! The only conclusion you can safely draw from the experiment is this: "If you walk across a street wearing a blindfold, you will not necessarily be struck by a car."

But in any event, Timo's experiment merely demonstrates that in certain circumstances, all 256 available codes in an 8-bit system are used, and in other circumstances, fewer than the 256 available codes are used. No information whatsoever is gathered concerning the relationship between any of the codes and the corresponding intensity - the experiment is entirely inconclusive on the presence or absence of non-linear analog signal conditioning! This experiment certainly cannot determine

if there is a non-linear analog signal conditioning in the camera

I described to Timo how to do an experiment that does relate code to intensity. You purchase a Kodak Q-13 test chart from your local professional photography store. The Q-13 has 20 patches that reflect different amounts of incident light. The patches are labeled with "density values" from which you can compute the reflectance. The experiment comprises photographing (or scanning) this target, examining the resulting code values (in Photoshop, say), then relating the resulting digital code values to the known reflectance values. Plot the code values against the known (linear-light) reflectances. If you get a straight line, the image data has been captured proportional to intensity. If the graph shows a curve - and most often, the curve will resemble a square-root function - some aspect of the capture process imposed a nonlinear transfer function.

Seems easy, yes?

See also: Concerning Timo - Linear and nonlinear coding - Gamma FAQ

Charles Poynton
Copyright © 1998-03-12