I see the term "Color Profile" a lot and I have this vague idea that it helps you adjust color values based on the unique differences of both cameras, displays and printers from some ideal device. Where can I find a good guide to what I need to know about color profiles and when and how to use them to get good results and fine grained control of my workflow and prints?
Color Management is a scientific process by which various devices used in an image processing workflow can be used despite differences in their supported color. Every device is only approximating some of the total range of colors humans can see, and this limited range is called its "color gamut". Each device has limitations, but those limitations differ from device to device. Different methods of rendering color also introduce additional differences, so the RGB "additive" model of computer screens and digital sensors is radically different, and perceived quite differently, than the CMYK (or variations thereof) "subtractive" model of print.
Color Spaces & Profiles
A Color Profile is a file that specifically defines the color parameters of a device, and when used in conjunction with systems and software that support color management, allows "safe" conversion of image data to and from various devices. This is important, as your camera, computer screen, and printer will all have different color gamuts, and proper conversion of image data between each is critical to ensuring accurate representation of the original scene you may have photographed.
A simple example would be taking a photograph of a vibrantly colored scene that contains bright reds, greens, violets, etc. By default, most cameras save images in JPEG using the sRGB color profile. A high-powered graphics workstation is likely to have a computer screen capable of rendering a greater range of colors, usually the Adobe RGB color space. While both the sRGB and Adobe RGB color spaces cover much of the same gamut, Adobe RGB supports more shades of green and orange, but covers a little less than some parts of sRGB in the vibrant reds and violets. Any colors captured by your camera in the areas that the Adobe RGB color space does not cover will need to be approximated. The same issue arises when you print your images, as printers generally support smaller gamuts than either a camera or a computer screen. Colors supported by Adobe RGB or sRGB will need to be mapped and approximated in the color space supported by a printer.
The ICC Color Management system, supported by most modern operating systems like Windows and MacOS, as well as by professional image and photograph editing tools like Photoshop, Lightroom, and Aperture, take care of these conversions for you. You just need to make sure you choose the appropriate color profile for each of your devices. Generally speaking, most DSLR cameras support the standard sRGB and Adobe RGB profiles when saving to JPEG. When using RAW, the full color range supported by the camera sensor will be available, which in modern digital cameras can greatly exceed the sRGB or Adobe RGB gamut. Film can support a considerable gamut as well, and a high quality drum scan of a 4x5 transparency may also cover a wider gamut than either sRGB or Adobe RGB. Computer screens generally support sRGB, however professional graphics screens usually support Adobe RGB, while the upper echelon of screens may even support a broader gamut. Newer screens may support the very wide gamut ProPhoto RGB, which covers a much wider range of green, violet, and red/orange tones that the human eye can see (as well as some which the human eye can't see) which are generally excluded by most other gamuts. For a computer screen, it is important to calibrate the screen, and generate a custom profile that will make the best use of the gamut the screen supports. Regardless of what gamut a computer screen supports, it is best to avoid actually selecting sRGB, Adobe RGB, or any other common color profile for it in your ICC management settings. Always calibrate for accurate color representation and tonal range distribution.
While color management system is capable of handling conversions between color spaces for you, it is important to realize the "intent" behind a conversion. If you have an image in the Adobe RGB space that makes use of the extended range of colors, and need to convert that image to sRGB, you are converting into a smaller color space that is not capable of directly representing all of the original colors. Your intent may be to "clip" the unsupported colors, mapping them to the nearest supported color in the destination space. While this will accurately represent all directly supported colors in the destination space by choosing the closest match, it will not accurately represent any out-of-gamut colors. This may result in hard edges, banding, and other undesirable artifacts. This is called Relative Colorimetric intent. Alternatively, you may choose to shift all of the colors from the source space to the destination space. This has the effect of compressing, rather than clipping, the colors represented in your image. The result is a shift in possibly all of the colors of your image, not just the ones that are out of gamut. This shift is done in such a way that the resulting image is still perceived the same way, and although the colors are no longer all exactly the same, it still appears the same. This is called Perceptual intent. If your original image does not make use of any (or many) colors supported by a larger gamut, you may choose to convert with relative intent to preserve accuracy. However, if your original image does make use of colors supported by a larger gamut, a perceptual shift may be more appropriate, although possibly less accurate.
Print Profiles and Management
More important than the color spaces used by the camera or computer screen, however, are the color profiles used for print. The colors you perceive when viewing a print are highly dependent upon a few key factors: the inks used, the paper used, and the intended viewing lighting. Papers come in a very wide variety of tones, from ultra bright stark white to much duller, warmer, earthier tones. The gloss or matt finish of a paper also affects how colors are perceived. The tone of the paper affects how colors look when printed, and require different mixtures to accurately represent any particular color. The inks used also determine what colors can be represented on paper. Normally its just Cyan, Magenta, Yellow, and Black, however modern ink jet printers and professional/industrial printers may use many more colors. The raw color pigments or dyes used also affect the gamut of a print. In addition to the color of paper and mixture of inks, the light a print is viewed in can have an effect on your perception of color.
To accurately reproduce colors in print, a unique color profile that is specific to the inks being mixed and the paper being printed on is required. For maximum accuracy, a profile that includes the kind of light the print will be viewed in may also be used. If you do your own printing, and use a variety of papers, you could quite likely end up with dozens of different color profiles, one for each combination of paper type, printer/inks, and lighting conditions.
Print vs. Screen: Gamut's and Reality
Many professional ink jet printers and ink systems support a larger gamut than either sRGB or Adobe RGB. In the case of Canon ipF5100/6100 printers, which make use of a 12-color LUCIA pigment ink system, they can represent a considerably larger gamut than sRGB, and it even exceeds Adobe RGB in some areas. Epson's UltraChrome pigment ink system is similar, offering less green coverage but extended magenta, violet and possibly orange coverage. This fact is generally only applicable to the most modern professional ink jet systems, such as Canon PIXMA & ProGraph w/ LUCIA or Epson StylusPro w/ UltraChrome 3.
Professional ink jet printers are generally capable of a greater range of colors than your average commercial printing (offset printing or similar processes), by almost two-fold. Professional ink jet's have a gamut that covers about 800,000 colors, while offset printing covers about 400,000-480,000 (See "Wide Gamut approaching Full Gamut" for reference). In comparison, Adobe RGB covers about 1.3 million colors, while ProPhoto RGB covers about 2.9 million colors. There are different schools of thought on how many distinct colors may be perceived by the human eye, however based on scientific studies it ranges from 2-3 million up through ten million or so.
Given the differences between various methods of printing, it is important to use the correct color space that can preserve the colors that may be reproduced with your chosen printing method. In the case of professional ink jet printing, ProPhoto RGB (even though it can not be fully and accurately represented on screen yet) will generally support better results with ink jet reproduction. Commercial printing supports considerably fewer distinct colors than professional ink jets, however those colors still cover the area of a fairly wide gamut that nearly spans Adobe RGB. If you ship your work off to a lab, in general, they tend to require sRGB, so your likely stuck with it. I honestly can't say what the equipment in a photo lab is capable of, however you are likely losing some color range regardless.
A New Color Space
For all the popularity of sRGB and Adobe RGB, they are not really ideal color spaces for much photographic work. The ProPhoto RGB color space covers a much wider range of colors, however it can not be fully reproduced on either a computer screen or in print. It also supports colors that are outside of the range of human vision, which poses its own problems. A newer color space has been developed that is designed to better approximate the colors that we commonly work with, support the tools we commonly do that work in, and cover the range of colors commonly supported by the devices we use. This new color space, called Beta RGB, developed by Bruce Lindbloom, has some intriguing implications for both photographic workflow as well as printing. The Beta RGB color space has been meticulously designed to support the needs of photographers while attempting to minimize the problems with sRGB and Adobe RGB. While it is not possible to use the Beta RGB space when working with JPEG, it is possible to process a RAW file into TIFF or DNG and use the Beta RGB space.
Notes on # of Colors
A quick note on the numbers of colors quoted above. When discussing the colors supported by a gamut, or the human eye, the numbers generally refer to the total number of full intensity colors, from white to fully saturated distinct colors (chromaticity, or the measure of a color's purity irregardless of its intensity.) These numbers do not account for the entire range of color shades, or colors with differing degrees of brightness (intensity). The grand total range color in all shades visible to the human eye is tremendous...likely ranging in the trillions. The total colors and shades covered by any given color space is also higher than the baseline numbers quoted above. While Adobe RGB may cover 1.3 million distinct colors from white to saturation, Adobe RGB covers a greater range of shades of those colors.
It should also be noted that if you are working with 8-bit per pixel (24bit) images, you always have 16.7 million "colors" (read that as distinct colors and their shades), regardless of the gamut. Those colors simply map to different distinct colors, and a wider gamut allows for a broader distribution of distinct colors and shades. If you are working with 16-bit per pixel (48bit) images, you have some 270 billion "colors". This does not really translate to more distinct colors, however it does translate to a greater range of tones, or a more finely grained distinction in various levels of brightness. The same goes for 32-bit per pixel HDR (96bit float) images. The total distinct colors of an HDR image would still be around 1-2 million...however you gain orders of magnitude more range on the brightness scale, and are able to represent a near-infinite range of brightness levels (or a near-infinite range of tones).
The measurement of "color" is a rather complex endeavor, and simply put, can not be effectively measured in only two dimensions. A full exploration of the total range of chromaticity (hue & colorfulness) and intensity, or hue, saturation, and brightness/lightness (or any other common model) requires an examination in three dimensions that takes the intensity of a color into account.
Here are some links to useful sites that cover Color Management:
A good site, for understanding some of the more technical issues in Photography in general is Cambridge in Colour and specifically their series on Color Management. The site, as a whole, is worth visiting.
This is a comment not an answer, but I can't type it there and I can type it here... Feel free to mod it away.
comment on subsidiary question: monitor profiles
Setting a monitor to "Adobe RGB" is really a bad idea and confuses the concept of working colour space with output device profile. Your monitor is probably quite close to sRGB, so assuming you can't calibrate it, then you'd be better off leaving it alone or assigning sRGB to it. Adobe RGB is almost certainly incorrect.
Think about people looking at your images on the web. None of them have Adobe RGB (1998) as their monitor profile - they're all either calibrated/colour managed, or they're pretty close to sRGB, which is why sRGB was invented. You probably want them to see the same thing you're seeing don't you?
comment on working color spaces
Adobe RGB(1998) does not contain "more color data"; all ICC spaces contain precisely the same number of colours, it's the distribution which is different. My recommendation would be to keep your original RAW files (which are in the sensor colour space). That way you lose nothing, and as converters improve, so can your output.
Then convert these into whatever working space you choose when preparing output.
Adobe RGB is mostly with us for historic reasons - people who fiddle with this stuff would more likely use ProPhoto these days. This won't let me post a reference, but the Luminous Landscape has a good comparison you can google for.
The question asked specifically where a good guide could be found. The references given here are good, but the text less so.
In my opinion it's best to separate the issues discussed here into two:
I would suggest that it's best to focus on (1) before even considering (2).
My contribution to this may be useful for Windows users, most of whom don't realize, for example, that their desktop wallpaper is not colour managed by their OS (Windows 7 and all earlier versions).
But the good news about this is that it's not black magic: you can see it in with your own eyes.
Color profiles are the standard way to "unambiguously define a devices color gamut" so that computers can use that information to manage colors between devices. Best place to get information on that is www.color.org That is the International Color Consortium's website. This is the group that defines the standard for ICC profiles. Today's profile standard is ICC Version 4. These profiles more clearly define a devices color over the previous version 2 profiles. Although Adobe does not include v4 profiles in it's software, the do support them and are the best for monitor profiles and color transforms.
To clarify some of the workflow responses above I have added information that should prove helpful, since it appears there is a lot of misunderstanding about this very technical topic.
Standard color spaces are device independent containers only, (ProPhoto Adobe98, sRGB etc.) so they are not more or less accurate than any other container space. Accuracy issue can arise due to the fact that the device independent color space may have colors that are encoded at values that don't closely relate to whatever actual output device in use. There is no more accuracy with one over anther. Contrary to the belief that ProPhoto is a good match for "most cameras" is that cameras don't have gamuts. Profiles do because they are containers foe color information. So choosing the proper container size has nothing to do with the camera if your shooting Raw. If your shooting jpeg, then use the space your camera rendered the image into. Choosing another space won't improve accuracy, and will in fact remove any relationship your capture had with the original scene.
So here's an easy way to think this issue through: What is my intended output? What is the profile for that "device" Then choose a container space or device independent color space that is slightly larger. So my choices can be either ProPhoto (huge), Adobe98 (big) sRGB (small). If I choose a container space that's too small I have just made a small gamut image and it will not have all of the colors possible in my beautiful Hahnemühle paper on my wide gamut printer. Gone and never to return. So conversely if I choose ProPhoto, that may work for my print process because it is larger that Adobe 98, but it will look terrible on my website. Why? Because the internet standard is the old fashioned monitor standard created by Mary Abbott at HP...sRGB. Not good at all for a high end monitor or print process, but it is the internet standard.
It's not always a good approach to use ProPhoto.icc as a working space, because it's the largest. Why? Because of the way images get transformed from one color profile to another. If we all choose ProPhoto as our standard color space to render raw files into, and some of us have a huge gamut printer and use the expensive Hahnemühle paper to get the premium results, and some don't...They have a smaller gamut printer and are happy because they did not spend many thousands of dollars on it and it looks good to them. So if those smaller gamut people now convert all of their ProPhoto images into their printers smaller gamut device space, they are asking their color management system to be accurate over a very long distance. (bad plan) You see if the gamut of the image is as large as ProPhoto, moving those gamut surface colors to the new gamut size (smaller) is less accurate because of the distance these colors must be moved.
So what's the right choice? What's a safe workflow? Well that depends on how your going to view and print your images. If quality matters, then render your raw files into a device independent space that slightly larger than the largest real device gamut your printing too or displaying on. So if your doing display work on a monitor that about the size of Adobe98 then render to Adobe98 because any transform to your monitor space will be a small step and provide the best accuracy. Is your monitor able to display the ProPhoto color space? (Unlikely) so today's high end 10 bit displays can do Adobe98 but not much more unless you spent upwards of 25k US on a high brightness display of over 600 cd/m2. So ProPhoto, may not be the hot ticket for your workflow, because you can't view that colorspace.
To clarify the rendering intent answer above, here's an easy way to think of it:
Perceptual Rendering does gamut mapping and is needed to keep color appearance as close as possible to the image. It's a white point relative transform so white from the source space is matched to the destination space.
There is no such thing as a human visual gamut. Although it is very well known and documented that humans can see wavelengths of color from about 390-780nm Just like a digital camera, there is no gamut to that process. The cool thing about it is because of chromatic adaption, (white balance in your camera) what we see changes constantly.
What determines a gamut in print production? (Glad you asked!) Well it's the Media white,and the Brightness of the ink colors. If the colors can be made as bright as light we have a print process that equals the scene, and the gamut of that process can be calculated. The gamut of a camera and the gamut of the human visual system can not be calculated because it changes with the amount of light that comes into it. Hope this helps clear up some of these questions.
Any good ICC profile can be used with all rendering intents. In the ICC spec, a default rendering intent can be specified for any profile, but that changes nothing in the math for the others. So when you notice a profiles default rendering intent, remember the others will work also and may in some cases be better than the default. Default rendering intents are a great way to automate the application of profiles in high volume workflows.
Successful use of Perceptual rendering is only due to the fact that gamut mapping is needed in your process. Since gamut mapping must map the Gamut surface of one profile to another profile,(source to destination) if that distance is great so is the change throughout the range which reduces as you get closer to neutral. Maybe your image inhabits that whole huge space, but probably not, so for these more normal images, performing that kind of gamut mapping may not be the best way to color manage that subject. So if you have a small gamut image, putting it in a large gamut space because your printer is a large gamut device may not produce accurate results. In fact it can easily reduce detail and contrast if the gamut mapping is not needed for the image. The purpose of good color management is to...manage colors such that they can be reproduced or rendered accurately accross different devices. So rendering a raw file to a device independent profile that will be clipped by the monitor space, is fine so long as the image doesn't get clipped.
If the part of the profile that get's clipped is the "important" part of your image, the value of ProPhoto is greatly reduced as a container space for display. Now it's possible that ProPhoto is best for some printer and paper combinations. So making most if not all of the edits to this type of file in ACR or another non-destructive raw file editor is a good solution. After the pixels have been made, good retouchers know that their monitor cannot display ProPhoto, so also understand that the most accurate saturation adjustments should be made after printing. Notice I'm not writing off any profiles here, just suggesting safe accurate workflows. What I do say is clearly ProPhoto or RIMM as we call it is not "always" the best choice and identifying when and why choosing this profile is correct for your workflow is important to good color management.
Lab gamut coverage is meaningless. Device independent color spaces are RGB, not Lab. What matters most there is bit depth. Profile Connection Space or PCS is Lab. That's the transform space between profiles and where all that gamut mapping happens. The Color management module, or CMM does all the math for the gamut mapping. Good CMM's do a good job, but in larger color spaces the issue is rendering into and out of PCS. The linear algebra used is great. But most of any device space is interpolated, and not measured. So for example, you profile your device, and use a target with 1600 patches. How are colors that are not measured transformed? Linear Algebra provides a solution that is more accurate at the measured values. Where the values are interpolated, accuracy is reduced. These errors are significant on some RIP and printer combinations. So if we keep transforms smaller accuracy is increased.