There’s a column in Shutterbug magazine, written by David Brooks (not the New York Times columnist), in which Brooks answers readers’ questions about digital photography. In the November, 2012 issue, there’s an interchange between Brooks and James Ulrich, Emeritus Professor of Computer Science at the University of Montana.
The discussion begins with a letter from Ulrich complaining about a statement by Brooks in the April, 2012 issue that, “No calculation is needed to edit an image with Photoshop.” Ulrich gently points out that without calculations, nothing would be done to the image and dryly says: “Your apparent distinction between calculation and computation is puzzling and unique.”
Rather than take the opportunity to retract his ill-considered statement, Brooks takes on Ulrich on the professor’s home turf, computer science. Brooks says:
Changes made using Photoshop editing tools like reducing brightness, increasing saturation, and changing image size involved preset algorithms built into the software not computation (that is been done for the user and is included in the application).
Brooks goes on to say that there are few exceptions but they are “minor or ancillary”.
Ulrich politely disagrees, says that perhaps the discussion is about semantics, and congratulates Brooks on his column.
Brooks doubles down and explains exactly what he means:
… computation in the form of an algorithm (a complex, already computed formula) is already done in the software. The algorithm simply conveys the changes in the xy-rgb number values directly from the application to the image stored in RAM. It goes through the I/O chip, not by and through the CPU processor.
This is completely wrong in every respect: pre-computation, direct change by algorithm, and the path the data takes. An algorithm is a set of instructions for calculating a function or performing an operation. It tells you what you must do to calculate the result; the result is not pre-calculated for every possible image.
Let’s consider an example. One of the least computationally-intensive operations that you can perform upon an image is to invert it. If the image is in RGB, and the color planes are eight bits deep, each pixel in the image is represented by three eight-bit unsigned integers. Inverting the image is performed by producing an image in which each of the color planes consists of the result of subtracting each pixel in that plane of the input image from 255 (for 16-bit depth, the number is 65535). For a 6000×4000 pixel image, that’s 48 million subtractions. Those subtractions get done in one or more of the CPU cores, or possibly in the graphics processors in your display adapter if you’ve told Photoshop to use it when it can.
Brooks’ idea of computation-less modification of an image stored in RAM by an application also stored in RAM is truly bizarre. Photoshop consists of object code in the machine language of the processor on which it expects to run. The only way this object code can cause things to happen is to be executed by a processor.
The whole thing makes me wonder about the gravitas of photographic publications. Back when photography was chemical, I believed what I read in most publications, at least when the subject was technical. Maybe they weren’t to be trusted in those days, but I didn’t know any better; I wasn’t an expert. I am an expert in digital computer systems, and now that much of photography involves those systems, I see more and more errors in photographic publications. I have to admit that I have seen few quite so jaw-droppingly uninformed as Brooks’.
Another attribute of the discussion in Shutterbug that bothers me is Brooks’ refusal to reconsider his initial statement when it was questioned by someone with the credentials of an expert. Brooks could have easily found someone knowledgeable to advise him, but he chose not to do that.
I expect this kind of willful carelessness in the wild-west of the Internet. I’m still surprised to see it in print.