The Shape of Everything
A website mostly about Mac stuff, written by Gus Mueller
» Acorn
» Twitter
» Maybe Pizza?
» Code
» Archive
November 15, 2013

Here's a fun fact - Acorn has supported images with 16 bits per component since the 4.1 release last August. If you open up a 64 or 48 bit image in Acorn, it'll pop everything into a 64 bit workflow and even save the image in a 64 bit format.

Bits and components and what?

A short primer on bit depth in Acorn

Prior to version 4.1, when you opened an image in Acorn it would convert the image from its original bit depth into a 32 bit image. For Acorn this translates to four components (also known as channels) per pixel: red, blue, green, and alpha. Each one of those components takes up 8 bits and when you add them all together you get a total of 32 bits per pixel. With 32 bits there is a total of 16,777,216 possible colors per pixel (256 possible values for each red, blue and green component- so it's 256^3 which is 16 million. Alpha isn't a color, so it doesn't get added in).

Starting with Acorn 4.1, when you open up an image which has at least 16 bpc (bits per component), Acorn will change the internal workflow from 32 bit to 64 bit. You now have 16 bits per color and when you add the four components together you get 64 bits per pixel. With 16 bits per color, there are now 65,536 possible values for each red, blue and green component. Multiplying all those values together gives a total of 281,474,976,710,656 possible colors per pixel. Holy crap that's a lot of colors- over 281 trillion!

That's pretty rad. And the term for these high bit rate images is "deep color".

Currently there are no consumer displays available that will show all those colors. There are new displays coming out that can show 30 bits per pixel (meaning each RGB component gets 10 bits), for a total of 1.07 billion colors.

If you don't have one of these displays- what's the point of going with a higher bit depth? Here are a couple of reasons:

1) You have a camera that produces RAW files that are greater than 8 bpc. You may want to keep your image in that format to preserve fidelity for the future.[^1]

2) Having a 64 bit image gives Acorn more breathing room to work on your image. Things like alpha pre-multiplication problems disappear and image adjustments are more precise.

3) Scientific computing. Things like working with satellite or medical imagery can benefit from deeper colors. Just because the human eye can't see a difference between two colors doesn't mean it isn't there.

What changes in Acorn 4.2 for deep color?

A menu item has been added in Acorn 4.2 to convert an image between 32 and 64 bits per pixel. Code paths have also been added that handle the different bit depths[^2] correctly. Things like curves, flood fill, and instant alpha needed new code to support the increased bit depth as well as little things like bounds detecting code.

Drawbacks to deep color

So what's the downside to all this? 64 bit images are going to use more memory both on disc and in RAM. All those extra bits need to be stored somewhere after all. There is also more data to shove around so there could be a performance hit for some operations (although in my testing, I haven't noticed any).

One last thing

The working tagline for Acorn 4.2 is "One for the Pros". It has a dual meaning, and I'll let you figure it out.

[^1]: This feature is available in the upcoming release of Acorn 4.2.

[^2]: Hey- I've got a great idea! How about we also throw in 128 bits per pixel support while we're at it!? I've added code paths in Acorn for this as well, but left it disabled for the time being. It's probably best to take things one step at a time.