Bill Atkinson, photographer and one of the original members of the Apple Macintosh development team.
Atkinson said via an email interview, referring to the way the algorithm alternates direction in processing lines of pixels from the original, “Turns out when you are propagating right and down, the left and down propagation is essential to break up standing waves that create ugly streaking rivulets.” He noted that to create the QuickDraw dithering routine, he wrote a program that tested many different weighted variations of standard dithers, and picked the one generated the most pleasing result.
He explained further, “One of the hardest tasks is getting from a little lighter than 50 percent gray to a little darker, with no discontinuity or artifact.” (As an aside, Susan Kare, the designer of the original icons used in the Macintosh, recalled via a spokesperson that she saw Atkinson’s experiments, but didn’t consult on them. Her 1-bit drawings are handtooled works of art.)
Craig Hockenberry, the lead developer on both BitCam and Exify, said he was excited to find out Atkinson’s algorithm was in iOS—developer Wil Shipley tipped him to the fact—and he pulled out a separate camera app he’d worked on, which became the basis of BitCam.
“It thrilled me to know that some code—obviously not the same code, [as] it’s running on the CPU, and it’s vectorized—but an algorithm from 1984 is running in my pocket,” Hockenberry said by phone. He noted that Apple’s developers stuck a tiny tribute into the header file of the iOS code for one flag: “Atkinson dithering is applied to the image, for the old timers.”
Hockenberry said that Atkinson dithering isn’t perfect mathematically, which is the point. “It looks a lot better to your eye” than an exact conversion, and improves on other dithers by offering higher contract. Atkinson’s method can blow out highlights to white and fill in shadow detail to black, but the midtone preservation matches photographs better.
(Atkinson installed BitCam and told me the dithering isn’t identical to his eponymous version. Hockenberry said there’s a difference in how error diffuses—Atkinson dithering is serpentine, alternating direction line by line, while Apple’s implementation isn’t. He’s submitted a bug report to Apple in the hopes it will be fixed.)
This image provided by Bill Atkinson shows the algorithm's original implementation.
When you launch BitCam, it shows the simplest possible interface, with blocky original Mac style graphics. Tap the gear icon, and a dialog box appears with the familiar ZoomRects animation, showing what was once an cutting-edge effect. Because iOS is so much more sophisticated at layering elements, Hockenberry said the app has to take about 10 screenshots and to draw in and simulate the ZoomRects effect. “What used to be the most efficient way is now the least efficient way,” he said.
Sign up for CIO Asia eNewsletters.