Thursday, April 11, 2013

Managing Color and Profiles by Neil Hostler


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 profilesOption 2: custom profilesOption 3: create your own profiles
Often free or low costUsually about $40 per profileWide range of self-profiling tools ranging from $79 to over $1500
Instant gratification: download and installCan take several days to a week to print the test chart, send it through the mail, and receive your profile back via emailNearly 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 profilePay separately for each profile in most casesPay 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 profilingYou 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-existentOutfit creating the custom profile for you will tell you what options to use on the device before you print the test chartYou 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.
  • Some free Canon S900/S9000 profiles can be found here.
  • 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:
http://www.cathysprofiles.com
http://www.drycreekphoto.com

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.
Profile Prism at $79: camera, scanner, and printer profiling with visual monitor calibration
WiziWYG at $89: scanner and printer profiling with visual monitor calibration
Monaco EZ Color at $299: scanner and printer profiling with visual monitor calibration
Eye-One Photo at about $1500: monitor and printer profiling (high end, spectrophotometer based)

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 accuratecolor 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.
-- Mike Chaney

http://www.steves-digicams.com/knowledge-center/over-the-gamut-and-through-the-woods.html