Over the gamut and through the woods.

So you want to manage color?

It seems that the longer you stick
with a particular hobby or profession, the more
complicated things get. In digital photography, once you
get past that initial thrill of being able to view, edit,
and print your own photos, you start to become aware of
subtleties like the fact that certain colors on your
monitor don't match what is printed. You do some research
and it seems that there is something called "color
management" or "ICC profiles" that can fix
your problem, but the whole concept seems almost like
snake oil, or worse... some foreign language only spoken
by rocket scientists. Before long, you find yourself
trying a bunch of downloaded files (profiles), messing
with rendering intents, turning on/off something called
"black point compensation", and instead of a
good color match between your monitor, scanner, printer,
and other devices, you become lost in a forest, screaming
for help just hoping someone will hear you. Is it really
possible to understand this "color management"
concept to the point where you can at least determine if
you need it and if you do, exactly what you need to make
it work? Well, we're going to try. We'll try to deal with
concepts instead of underlying math where possible so
that we don't get caught up in the "rocket science"
of it.

Red, green, blue, yellow,
magenta, and cyan

Before digging into color
management, let's take a look at how different devices
represent the colors you see in a photograph. Devices
that emit their own light (like monitors and projectors)
or collect light using sensors (like cameras and scanners)
normally use intensities of red, green, and blue to
produce different colors. Devices such as printers that
produce output that relies on reflected light normally
use a combination of yellow, magenta, and cyan to filter
light hitting the paper so that the light reflected off
the paper is the correct color.

For the majority of colors, it is
possible to reproduce the same color using either RGB (red,
green, blue) or CMY (cyan, magenta, yellow) primary
colors. While printers ultimately place some combination
of CMY inks, dyes, or toner on the paper, the print
driver normally accepts data in RGB and the driver uses
the RGB data to "convert" to CMY for the final
print. The fact that almost all device drivers operate
under the RGB scheme allows us to simplify things and
work with a single set of primaries. In a typical setup
then, your camera, scanner, monitor, and printer all work
with RGB values. The RGB values are passed to the monitor
for display and RGB values are sent to the printer for a
print. There is no need to worry about the fact that your
printer doesn't use RGB inks: the driver takes care of
that and the print driver still wants the data in RGB
form.

In a digital image, we can specify
intensities of red, green, and blue for each pixel to
identify the color of the pixel. Red and green make
yellow. Red and blue make magenta (purple). Red and half
intensity green make orange. Etc. Line up all the
millions of pixels containing RGB values in rows and
columns and you get your final image (the photo).

All colors are not created
equal

Since our camera, scanner,
monitor, and print driver work and allow us to think in
terms of RGB, we are tempted to think that sending the
same RGB values between devices will result in the same
color. As a result of cameras, scanners, monitors, and
printers all using different technology to reproduce
colors, however, they each use a slightly different shade
of red, green, and blue as their primaries. The devices
may also have slightly different "tone curves"
so that a particular change in RGB value won't
produce the same change in visible light from both
devices. These issues mean that mixing the RGB values at
the same brightness level on each device will produce a similar
color, but not an identical color since we are
starting with RGB primaries that don't exactly match and
may also have non linear response with respect to
brightness. The reason for the "mismatch" in
RGB primaries can get complicated, but we need not
understand why the differences exist, only that they do.

ICC Profiles: the language
of color

At this point, it is becoming
clear that we need a way to convert the color from one
device to another, i.e. one set of RGB values to another.
Our camera recorded red, green, and blue intensities of
200, 200, 45. What intensities do we need for our monitor
to reproduce the same color? We know it most likely isn't
going to be 200, 200, 45 like the camera. Is it 202, 189,
56? Is it 192, 205, 38?

We could probably get the
conversion pretty close with many hours of trial and
error testing just eyeballing results and we could write
software that carried out our observations to do the
conversion. The problem is, our software would only be
good for that one specific camera model and that one
specific monitor because each camera and monitor will
work differently. What we need is a language that
describes the primary colors themselves and a color
management "engine" that can look at the
language spoken by the two devices and translate from one
to the other. We could then specify the "color space"
for a device which is determined by the primary colors
used by the device, and ask our color management engine
to translate between the camera's color and the monitor's
color for example.

ICC profiles are specifications
that describe the language of color spoken by a
particular device. An ICC profile for your camera
describes the subtleties of how your camera speaks RGB.
Similarly, an ICC profile for your monitor describes the
subtleties of how your monitor reproduces RGB colors on
the screen. Once you know the language of the camera and
the language of the monitor, the color management engine
can translate from the camera's language to the monitor's
language to get accurate color on the monitor. If you
know the subtleties of the language spoken by the
printer, you can do a similar conversion from the
camera's RGB language to the printer's RGB language to
reproduce accurate color on the printer as well. The
color management engine acts as the "universal
translator", translating the color of one device to
the next. All you need are ICC profiles that describes
the "dialect" of the RGB language spoken by
each device; a profile for your camera (either a generic
profile or one for a particular light source), a separate
profile for your monitor, one for the printer, etc. The
profiles themselves describe the color of the device in a
"universal dialect" called the Profile
Connection Space (PCS) which the color management engine
can use to translate color from one profile to another,
but with that, we're getting a little more technical than
we need.

The above chart shows our input
devices (camera and scanner) on the left, our photo
editing tools where we modify our images in the middle,
and our output devices (monitor and printer) on the right.
We need a profile that describes the color space for each
of the five areas above. In the context of this article,
we can use "color space", "ICC profile",
and "profile" synonymously. The path is usually
from left to right, starting with the original image,
converting to some common work space to modify the image,
and then converting to the monitor or printer color space
when we are ready for output.

When going from one area to the
next, our color managed software simply converts from the
color space in the box where we came from to the one
where we are going. As long as our color managed software
knows the color space (profile) for each box, it can get
you from one box to the next with consistent color. Note
that the actual RGB values for the image in each box are
slightly different, but the image looks the same
because the proper mapping has been done from one set of
RGB values to the next. Also note that if we choose not
to edit our images and simply want to display or print
the originals, we can follow the dashed blue lines where
our color managed software can convert directly from the
camera or scanner profile to the monitor or printer
profile. Having a common work space (Adobe RGB being the
most popular) in the center box is not a requirement as
it is possible to edit images in their "native"
color space on the left, but Adobe RGB (or sRGB) is often
used for consistency. The emphasis here is that we need a
profile for all boxes in the above diagram. If
we have a profile for every box except the printer, we
cannot produce color managed output for the printer
because while we may know the color language spoken in
all the other boxes, not knowing how the printer speaks
RGB means that there is no way to convert to the
printer's language.

ICC Profiles: a visual
representation

We have learned that in addition
to devices having unique RGB primaries, there are
standardized "work spaces" that have their own
(carefully picked) RGB primaries as well. These work
spaces are basically ICC profiles designed to allow
editing of images in a known "color space". A
color space is the area mapped out by drawing a triangle
between the red, green, and blue primaries as shown below.

The above is an abstract
representation of two of the most popular work spaces:
sRGB and Adobe RGB. The entire/outer colored area is an
approximation of the colors visible to the human eye,
called the "gamut" of the human eye. The
triangles map out the color spaces or the gamut of colors
spanned by the sRGB and Adobe RGB color spaces. As you
can see, using different red, green, and blue primaries
allows you to cover a larger or smaller portion of the
visible gamut. Why not just pick primaries that allow you
to cover the entire gamut? Again, the answer can get
complicated, but it is partially due to the fact that it
simply isn't possible given the technical capabilities of
certain devices (like monitors, printers, cameras, and
scanners) and it isn't always practical in a mathematical
sense either.

It is obvious by looking at the
above that sRGB covers a smaller gamut than Adobe RGB.
sRGB covers a gamut similar (but not identical) to your
monitor so it is well suited for display of images. Adobe
RGB on the other hand, covers a larger gamut and is
better suited for images being reproduced on a number of
different devices that might be capable of producing
colors beyond the sRGB gamut (many printers can produce
cyan and yellow colors beyond the sRGB gamut for example).
Most consumer level point-and-shoot cameras record images
in a color space close to sRGB above, even if that is not
specified in the manual or documentation for the camera.
If you have a selection for color space on your digital
camera or raw conversion software and you choose Adobe
RGB color space, your camera will be able to record
colors beyond those in the typical sRGB gamut,
particularly in the area of saturated cyan and green.

Being able to select color spaces
like sRGB or Adobe RGB in your camera gives you an added
benefit: you'll automatically have a profile for your
camera (the profile for sRGB or Adobe RGB is included
with most color managed software). If you are using a
point-and-shoot camera and no mention is made of a
profile or color space, you'll have to assume sRGB unless
you decide to get or create a profile of your own (see
below).

Now that we know what a
profile is, where do we get them?

We know that a profile can
describe the subtle color response of a device, and that
we need a profile for each device to be able to manage
color between devices (in order to render the same or
visually-same colors on each device). Now all we need is
a profile for our monitor, one for the scanner, one for
the camera, and one for our printer/paper/ink combination.
Profiles are just files that go in your Windows color
folder which is usually \windows\system32\spool\drivers\color
or \windows\system\color. The files you are looking for
will have either an ICM or ICC extension such as
my_printer_profile.icm or my_monitor_profile.icm. Sounds
easy but this can often be the stumbling block in a color
managed workflow. Let's take a look at the options:

Options for your camera

Most of the latest dSLR cameras (the
high end pro and prosumer models) come with a user
selectable color space. Remember that "Color space"
in this context is synonymous with "ICC profile".
Most have sRGB and Adobe RGB to choose from and if you
are working with software that can handle profiles, Adobe
RGB is generally the best choice to select in the camera
setup menu. Setting the camera to Adobe RGB will ensure
that images from the camera conform to the Adobe RGB
profile. If you usually just download pictures from the
camera and put them on the web or send them in emails
without modifying them, sRGB may be the better choice
because the sRGB color space (profile) is closer to your
monitor's profile than Adobe RGB. One common mistake is
to select Adobe RGB in the camera (or raw conversion
software) and then send the image to someone via email.
When the recipient views the email, he/she will see the
wrong colors because Adobe RGB is not well suited for
viewing on a monitor (the color space "triangles"
don't closely match). The solution is to convert those
Adobe RGB images to sRGB using your color managed "ICC
aware" software before sending them in an email.

In contrast to high end cameras
that allow you to specify a color space, if you have a
consumer "point and shoot" camera, there may be
no selection for color space and generally no indication
of what should be used for a profile. In this case, it is
usually best to just use sRGB as the "assumed"
camera profile. There are some camera profiles available
online such as those on the Popular
Photography site, but in general, it is very
difficult to create profiles for JPEG and TIFF images
from a camera because cameras often respond differently
under different lighting and it can be difficult to
recreate the exact settings used/needed on the camera for
the profile to be accurate. If you shoot in raw mode and
develop your photos with a raw conversion tool, it is the
responsibility of the raw conversion tool to convert your
raw images to JPEG's or TIFF's under a user specified
color space. In other words, you should not need to look
for a profile if you convert raw files with a raw
conversion tool because the raw conversion tool should
have output options like the ability to save converted
images in either sRGB or Adobe RGB color spaces.

It is possible to create a profile
(or profiles) for your camera using a profiling tool such
as those mentioned in the scanner and printer sections
below, but developing profiles for cameras is generally
not for the novice and requires very exacting framing and
lighting.

Options for your scanner

Scanners are actually quite easy
to profile using profiling software, but you may be able
to find a generic profile online (or your scanner may
have come with some) that are accurate enough. Even the
low cost profiling tools do a good job with scanners.
Just scan an included color chart, mark the four corners
of the chart in the software, and the profiling software
will create a profile for you. Some popular low cost
scanner profiling software are: Profile Prism by my
company (Digital
Domain Inc.) at $79, WiziWYG from Praxisoft at $89,
and Monaco EZ Color from Monaco Systems at $299.
There are even some free options online such as IPhotoMinus but the
free tools are limited to scanner profiling only, do not
come with the necessary color target to scan (which
you'll have to locate and buy), and generate simpler
"matrix shaper" profiles that are not as
accurate as the tools listed above.

Options for your monitor

About the only reliable and
accurate method of obtaining a profile for your monitor
is to buy monitor profiling software that comes with a
device called a "colorimeter" that attaches to
the screen to take actual measurements and create the
profile based on measurements. You can sometimes find a
generic profile for your monitor on the monitor
manufacturer's web site but these are usually quite poor
because monitors really do change significantly with age,
requiring them to be reprofiled once a month or so for
accurate color. Two popular monitor profilers are the
Spyder by Colorvision and
MonacoOPTIX by Monaco
Systems. Expect to pay in the $200 to $300
range but with significant improvement in color accuracy
on screen.

The visual "calibration"
tools such as Adobe Gamma that comes with PhotoShop and
other similar tools can help with certain aspects of on
screen color, but don't expect a reliable or accurate
match using these devices because they are designed for
general calibration, not profiling.

Options for your printer

There are three basic options for
getting the printer profile(s) you need. You can get
ready-made profiles on the web but be aware that a
printer profile is designed for a specific model, paper
type, ink, and print driver settings, so finding the
right combination for the printer, paper, and ink that
you use can be difficult at times. The second option is
to print a test chart, send it off in the mail, and have
someone create a profile by using specialized equipment
to examine your printed target. These profiles tend to be
quite accurate, but you are charged on a per-profile
basis so if printer, paper, or ink changes, you'll
usually need to pay again to have a new profile made. The
final option is to purchase profiling software that can
create profiles for you based on your own test prints. To
get profiles as good as the custom ones that you send off
for can cost $1500 or more if you go with your own
profiling software, but much lower cost ($79 to $299)
software can do a more than adequate job just using your
printer and your flatbed scanner. Let's examine the pros
and cons of each option:

Options
for your printer

Option 1: ready made
profiles

Option 2: custom profiles

Option 3: create your own
profiles

Often free or low cost

Usually about $40 per profile

Wide range of self-profiling
tools ranging from $79 to over $1500

Instant gratification: download
and install

Can take several days to a week
to print the test chart, send it through the
mail, and receive your profile back via email

Nearly instant gratification plus
the ability to do some "tweaking" of
the profiles on your own. Must get to know the
software though and learn how to effectively
create your own profiles

If there is a cost, you must pay
separately for each profile

Pay separately for each profile
in most cases

Pay once for the software and
develop as many profiles as you like. If you
change to a different kind of paper or ink, just
reprofile.

Can sometimes be found on the
printer manufacturer's web site under "Tech
Support"

You print a test chart and mail
it to the outfit doing the custom profiling

You print a test chart, scan it
using a scanner or spectrophotometer and use the
software to create a profile from the test chart

Device must be set to very
specific parameters/options and documentation on
the needed settings is often poor or non-existent

Outfit creating the custom
profile for you will tell you what options to use
on the device before you print the test chart

You decide what options to use
when you create the profile and simply use the
same options all the time, ensuring that the
device always produces the same color output

Due to differences that occur
naturally even within the same model line, this
method is usually the least accurate, however,
acceptable results are possible.

Since most custom profiling
outfits have the training and (high end)
equipment to do the job, custom profiles tend to
be the most accurate available.

Results are often better than
option 1, but may be slightly worse than option 2
depending on the equipment used. Less expensive
profiling tools use desktop scanners to "read"
test charts printed by your printer for example,
so your profile quality will be related to the
quality of the printer and scanner.

Option 1 for printer
profiles

If you decide on option 1 for
printer profiles (ready made), here are a few places to
look, but again, be aware that quality can vary greatly
among choices here:

Before you start, be
aware that your printer profile must match the printer,
paper, and ink you are using, so don't try to use a
profile for a similar (but different) paper or ink set.

Some printers come with a
few "generic" profiles that install
when you install the print driver. These can
usually be found in your Windows color folder:
\windows\system32\spool\drivers\color under
Windows XP or \windows\system\color on older
versions of Windows. Be wary of these, however,
because unless the file name or description
inside the profile specify the exact paper and
settings to be used, these generic profiles will
be of little use and will probably not result in
a good color match. They may, however, result in some
overall improvement.

Next, check the
manufacturer's web site. Some manufacturers have
started making free ICC profiles for certain
printers and papers available under their "Tech
Support" category. If the site has a search
function, try searching for: ICC profiles.

My
own web site has printer
profiles for $25 for some popular printers and
paper, with full documentation on printer
settings.

Inkjetmall
has some profiles in the $25 to $40 range, but
these can come with hit-or-miss documentation and
results.

Again, the profile you use
for your printer must match the printer model,
exact paper type, ink being used, and the print
driver settings needed for the profile. If any one
of these is not known, the profile is basically
useless, so save your time even trying them.

Option 2 for printer
profiles

There are a number of outfits
online that can create printer profiles for you. They can
give you an image and instructions, you print that image,
and send the resulting print to the company. They will
use specialized equipment to examine the print you sent
to them and will send you a profile via email, usually in
a few days. Two popular outfits that consistently get
good reviews are:

Option 3 for printer
profiles

You may decide that being able to
develop and tweak as many profiles as you like is the way
to go. If so, be aware of a few things:

Learning to use the
software and being able to do minor tweaks can
take a few hours or even more, so be prepared for
a learning curve and wasting a few pages of paper
and some ink while you get acquainted.

If you decide on the lower
cost scanner based profilers, having a good
scanner is essential. Many of the lower cost
profilers can do a good to excellent job but
having a good quality scanner can go a long way.
You are basically using your flatbed scanner to
scan two targets: the included reference and your
printed sample. Scanners also suffer from "metamerism"
in that they don't see light the same way your
eyes do. As of this writing, one of the best and
affordable scanners for the purpose of creating
printer profiles is the Canon
LiDE 80. The LiDE 80 uses an LED
light source that reduces metamerism issues,
resulting in a better profile right from the
start compared to most other scanners which use a
flourescent light source.

Be patient, read the
documentation, and ask for help when needed.
Expect to get good results from the start (with
good equipment), but the best results come with
experience.

The best equipment and the
best experience can produce very good printer
profiles from scanner based profiling tools. The
best scanner based profiling tools will get you
profiles that might be 95% perfect while the high
end profilers and equipment (or getting a custom
profile in option 2) can get you close to 100%.
Whether the price difference is worth it or not
is subjective.

Here are a few profiling packages
that you can use to create printer profiles. Note that
most of these solutions offer the ability to create
scanner profiles as well as the ability to do visual
monitor calibration.

Now we have some profiles.
What do we do with them?

OK. Let's assume by now that we've
either found, created, or had someone create all the
profiles we need. Specifically, we have a profile for
each block in the color management diagram:

Software that is fully "ICC
aware" will have ways of dealing with the profiles
in each box of the above diagram. Setting up color
management in the application of your choice usually
entails finding the proper menus or windows to enter the
above information. High end photo editors such as PhotoShop and high
quality photo printing tools such as Qimage are
fully ICC aware, but the color management setup is a bit
different in each. You should refer to the software
documentation/help regarding color management for
specifics on how to "hook up" the proper ICC
profiles. Below is a short synopsis of two popular color
managed applications, PhotoShop and Qimage:

PhotoShop:

Camera or scanner profile:
When you open an image from your camera or
scanner, if that image is not tagged with the
profile actually embedded in the image file, you
may be asked to select the profile when the image
is opened. If not, use "Image", "Mode",
"Assign Profile" to identify the
profile for the image.

Work space: Click "Edit",
"Color Settings", and select the RGB
work space: Adobe RGB is usually best. Don't
worry about the CMYK, Gray, and Spot selections
for now.

Monitor profile: PhotoShop
will use the monitor profile identified on your
Windows "Display" properties "Color
Management" tab. You can get to your display
settings by right clicking on your desktop
background and selecting "Properties".
To change your monitor profile in PhotoShop, you
must exit PhotoShop, change your display
settings, and then restart PhotoShop.

Printer profile: Click
"File", "Print with Preview"
and select your printer profile under "Print
Space". Use "perceptual" rendering
intent unless you have trouble with certain
colors, in which case you can try "relative
colorimetric". Leave "Black Point
Compensation" checked. When you click the
"Print" button, be sure to click "Properties"
for your printer and make sure to set all print
driver settings as required for the profile!
PhotoShop will not remember your print driver
settings from one session to the next so remember
this important step each time you enter PhotoShop.

Note: PhotoShop will only
"see" and list profiles stored in the
system color folder, normally \windows\system32\spool\drivers\color
of \windows\system\color. It may also have
trouble if you have two different profiles (with
different file names) that have the same internal
description. If you don't see the profile you are
looking for, make sure the profile is in the
proper folder and that it has a unique
description, and then restart PhotoShop.

Qimage:

Camera or scanner profile:
Like PhotoShop, Qimage will automatically
recognize the proper profile if the profile is
embedded in the image file. Unfortunately, for
files downloaded straight from a camera or
scanner, this will usually not be the case.
Qimage allows you to specify profiles to
associate with certain types of images. Check out
examples 18, 19, and 28 in the Qimage help under
"Learn by Example" to see how to
associate a particular profile with your camera/scanner.

Work space: Qimage does
not have a separate work space as PhotoShop does.
Qimage allows you to edit your images in their
original color space, eliminating the need for a
separate work space. Simply open or edit your
original images and Qimage will follow the blue/dashed
lines in the above diagram when displaying/printing.

Monitor profile: Right
click on the text next to "Mntr ICC" on
the bottom right of the main window to select
your monitor profile. Note that even if you
profiled your monitor with a monitor profiling
tool, you should still enter the monitor profile
under "Mntr ICC". The Windows system
does not load your monitor profile at
the system level, so specifying the monitor
profile here is not double profiling. The change
that you see when Windows starts up is an initial
"calibration" stage that is needed in
addition to the profile; it is not the profile
itself being loaded.

Printer profile: Right
click on the text next to "Prtr ICC" on
the bottom right of the main window to select
your printer profile. Use "perceptual"
intent unless you have trouble with certain
colors, at which point you can try "relative
colorimetric" intent. Leave "Black
Point Compensation" checked. Click "File",
"Printer Setup" and click "Properties",
making sure to set all print driver settings as
required for the profile! Qimage remembers all
print driver settings from one session to the
next but if you regularly use more than one
profile, you can click "File", "Save
Printer Setup" to save all printer related
settings including the driver settings, printer
profile, etc. so that loading them in the future
will ensure the proper settings for the profile
without worrying if you've set everything the
same.

Other options for color
management:

After reading this article, you
may still question whether you really need color
management via ICC profiles. Keep in mind that there are
a lot of people who simply print what comes out of their
scanner or camera without ever understanding color
management or using ICC profiles, and they are satisfied
with the results. I'm a firm believer in "if it
ain't broke, don't fix it" but in this case, it is
often difficult to know what you are missing without
seeing the results of a color managed system and
comparing that with what you are used to. There are a lot
of different combinations of cameras, scanners, monitors,
and printers out there and some work well together
without any color management. It is rare, however, to get
a really good and accurate color match among all
devices without some form of color management.

What about EXIF Print, Epson's
PIM, and PIM II? These options can
help resolve overall "complaints" about prints
being too dark or bright, oversaturation or
undersaturation, etc. but they are not considered full
color management because they are generally options that
only handle color from certain (supported) cameras to
certain (supported) printers. They do not help with
monitor color or scanners, nor do they ensure any known
level of color accuracy like ICC profiles. In addition,
these options tend to be poorly supported in most
applications, requiring specialized software or "plugins"
to use. If you have the required software (which may have
even been supplied free with your printer) and your
camera supports either EXIF Print or Epson's PIM, it
might be worth trying if you do not want to take the leap
into full color management using ICC profiles.

Final Thoughts:

At this point, you've read through
a lot of material. I've tried to give you the basics of
what you need to know to get your feet wet in color
management. Refer to the diagram and try to grasp the
concept of having a profile for each box in the diagram.
Also remember that your ICC aware software is responsible
for getting you from one box to the next, so you don't
have to worry about the process; only that each device in
the process needs its own profile and that you have
software that can handle converting color from one device
to the next.

Color management and use of ICC
profiles is relatively simple in concept but often very
difficult to describe. I hope that this article has given
you the basics and will allow you to move forward in the
area of color management as you see fit. Color management
via use of ICC profiles is the professional's choice for
ensuring accurate color and can provide substantial
benefits in increased color accuracy when set up properly.