Can't
take just one byte? 48 bit images.
Background
In this month's article, we dabble
in the world of 16 bit per channel (48 bit) images. Your
camera or scanner might support these higher bit depth
images but what are they? What do they do? When do you
use them? And most important, are they worth it being
that they are double the size of a normal 24 bit image?
Bits, nibbles, bytes, and
words
Most people are aware that
anything digital (computers, cameras, scanners) operate
using lots of ones and zeros where 1=on and 0=off. The
most basic unit of measure in a computer is known as the
bit: a bit can only be on or off.
Next in the line of common
measures is the nibble. A nibble contains 4 bits, each of
which can be turned on or off independently and it turns
out that there are 16 different combinations you can get
by turning 4 bits on/off in different patterns, allowing
us to count from 0 to 15 with 4 bits.
The most well known measure is the
byte. A byte contains 8 bits and allows you to count from
0 to 255 because there are 256 different ways you can
arrange 8 bits by turning each one on/off individually.
Most images that you see on the web such as JPEG images
are stored by assigning RGB values to each pixel (dot) in
the image (brightness/intensity values for red, green,
and blue) and most images use 8 bits for each color
channel. 8 bits for red, 8 bits for green, and 8 bits for
blue give you 24 bits and allow you values of 0-255 for
each primary color. Starting with 0,0,0 (black) and
moving through all possible combinations up to 255,255,255
(white) gives us 16,777,216 possible colors in a 24 bit
image.
A little less known measure is the
word. A word contains 16 bits and allows you to count
from 0 to 65535. While a byte only allows values ranging
from 0 to 255, two bytes together that form 16 bits allow
you to have much greater precision. Allowing values from
0 to 65535 for each of the red, green, and blue primary
colors for each pixel means that you can address a total
of over 281 trillion colors! A 48 bit image still covers
the exact same color range as a 24 bit image: 0,0,0 black
to 65535,65535,65535 white and everything in between. The
difference is that you can define the range with many
more steps to make much finer gradients. It is similar to
having a ruler that only has measurements down to 1/8
inch and then putting marks down to 1/32 inch for finer
measurement. You haven't changed the fact that an inch is
an inch, but you can better define your position within
that inch with finer gradations.
281 trillion colors? Do we
really need that?
It has been argued that the human
eye can discern about 10 million different colors, so is
281 trillion really necessary? The notion sounds
ludicrous until you consider the variety of conditions
that we try to "sample" with our images and how
we sometimes post process them before they are ready for
display. Your monitor and printer are 8 bit per channel (24
bit) devices that can "only" display 16.8
million colors so 24 bit images is all they understand or
need. Your camera or scanner however, may not have
captured the image in a ready-to-display condition so
manipulation can actually reduce that 16.8 million color
range significantly. Let's take a look at why.
Consider an example where your
most well composed wedding photo was underexposed due to
improper metering. Instead of capturing brightness values
from 0-255 for each primary color, your camera may have
only used the lower half of that range (0-128). For those
familiar with histograms, this histogram would appear
weighted to the left with nothing in the highlights and
the image itself would look very dark. Of course, you'll
try to fix this by increasing the exposure (brightness)
of the image so that 0-128 gets "stretched" to
(let's say) 0-255 and now there are things in the photo
from true black to true white. The problem in stretching
0-128 to 0-255 to brighten the image is that you are now
using only half the available values in the 0-255 range:
0,2,4,6,8,10, etc. You have effectively taken yourself
from a system that can display 16.8 million colors down
to one that tries to cover the same color range with only
about 2 million steps, and you have probably also
increased noise (grain) in the process! At 2 million
colors, you risk being able to see the steps between each
color in some smooth areas like blue skies and other
gradients and the result may look like banding or
posterization in the image. Similar effects can occur
even in a properly exposed image if you have to make
significant changes in color such as might be needed to
correct improper white balance, a "blown out"
red sweater, or other color issues.
48 bit images from your
camera/scanner
The biggest benefit of capturing
raw images with your camera or scanner, that is, images
with a high bit depth such as 48 bits, is that they allow
for more latitude when making corrections. In the above
example of underexposure, a 48 bit image would be reduced
from 0-65535 values down to 0-32767. Even if you "rescale"
that range to brighten up the image, you still have
plenty of steps in the scale to create a properly exposed
final 24 bit image to feed your monitor/printer without
risking banding because the 24 bit image only needs 256
steps for each color and you still have 32768 to work
with. Keep in mind that when a 48 bit image is converted
to 24 bits, the range 0-65535 is simply scaled down to 0-255.
Scanners have their own light
source so they are typically not prone to the same
environmental factors that cause things like under/over
exposure in cameras, so the 48 bit scanning modes are a
bit less useful than raw capture mode on cameras.
Basically the closer you can guarantee that your
image will be to the proper exposure and color, the less
need there will be for higher bit depth images like 48
bit TIFFs. There are some exceptions such as using super
wide color spaces, but that's beyond the scope of this
article and is usually not an issue for the vast majority
of work. For scanners, I typically never use the 48 bit
capture mode just because the conditions rarely warrant
it, the "scene" is usually very reproducible,
and scanner sensor noise levels often exceed the
threshold that would give any real benefit with 48 bit
images anyway.
Cameras are another story. I tend
to always try to shoot in raw mode and process with a
professional level raw conversion tool because
photographs capture moments in time that are usually
impossible to recreate. Set your camera to JPEG mode and
underexpose that one important shot and you stand a good
chance of not being able to salvage it. If you are
shooting in raw capture mode, the extra precision offered
by the higher bit depths captured in raw files often
allows you enough leeway to get acceptable shots of even
the worst cases of underexposure and (to a lesser extent)
overexposure.
Real world advice on 48
bit images
To be honest, if your scanner
typically returns scans that need very little
manipulation and are generally properly exposed right out
of the box, I see no need to use 48 bit capture mode on a
scanner for most work.
If your camera, however,
supports a raw capture mode and you are willing and have
the time to do the post processing work to develop those
"digital negatives", it can really save you
from time to time and can often lead to better image
quality just because you are allowing a more powerful
computer process the raw data rather than letting the
camera do it before it makes a JPEG for you. Even if you
never make any mistakes, raw images often show greater
resolution and sharpness and higher color accuracy than
the camera can deliver in JPEG mode.
Once you have your 48 bit images
in hand, make whatever exposure or color corrections you
need and feel free to save the final version as a normal
24 bit TIFF or even JPEG when you feel it is ready for
display/print. Remember that nothing is lost in having
the final/edited version saved as a 24 bit file to make
it available to other software such as photo editors,
printing software, and email programs: it saves space and
your monitor/printer will want a 24 bit image anyway as
they don't understand 48 bit data.
Mike Chaney