What Makes a Good ICC Color Profile?
I recently ran across a customer who was wanting some verification that our printer profiles were good. This particular customer was already a bit misled by some color management myths so he was already a bit dubious about our credibility. It was hard to know what to say beyond "Well, yeah - they're really good!" and maybe stomping my foot for emphasis. I could brag about how we have been making profiles for almost 20 years and have customers in over 90 countries, but it would be more productive to describe all the thought that goes into making a "good" profile these days.
As an aside, we published another article a while back that can act as a companion article to this one: Making a Better Printer Profile. That article was more of a practical primer for those making their own profiles, while this one deals more with the philosophy behind a good profiling engine.
First, let's look at what people want (or think they want) to see in a good printer profile:
Of course, you think you want accuracy in a profile, but what does that really mean, exactly? Accurate to your profiling target? Accurate to the original scene that you shot with your camera? Consider this scenario: Say you have printed a profiling target that has printed well, except for one blue patch that has an imperfection on it, or maybe the native variation in your measuring instrument causes one blue patch to be a little "off." You don't really want THAT to be "accurately" reflected in the profile do you? A good profiling engine will incorporate into its process a certain amount of smoothing to take care of just such anomalies.
On the other hand, a major use of printer profiles is to be able to predict on your display (soft-proof) what your image will look like when printed. Viewing a soft-proof allows you to make changes if necessary and get a perfectly matching print, saving you ink and paper. Here it is critical that the profile used in the soft-proof be truly accurate. Also, for the art-reproduction industry, accuracy is essential since that's kind of the whole purpose of the printing. Can you start to see how some of these choices depend on what industry you're in, and the purposes you have?
As mentioned above, smoothness is oftentimes preferable to accuracy. If you have a gradient (either an artificial color ramp from dark to white, or a natural gradient like a blue sky), you will want these color transitions to be smooth and gradual, not blocky and choppy. You don't want to see a blue sky with blocks of different shades of blue color. Facial colors especially should be very smooth. Since your profiling target probably didn't sample every single color in the blue spectrum, some smoothing - some interpolation between colors - has to happen. You really don't want the profile to reflect sudden changes between one sampled color and the next. You want it to make a smooth, realistic representation to allow all the blues in between to be reproduced.
Some profiling engines will spit out an accuracy number for their profiles, yet it is not all that clear what this number represents. But as you've seen so far, high accuracy is not necessarily what you're looking for. We have a profile profile accuracy test in ColorThink Pro. It provides a delta E value showing how accurate the proofing direction of the profile is.
Putting a number on the quality of the printing direction of a profile is not so easy. One thing we have come up with is a visual presentation of the printing / rendering direction of a profile. This offers a 3D gamut view of how the profile renders color. This is a great test of a profiling engine's smoothness. This can also be used to verify whether the profiling engine is making the most of the printer's gamut - or if large sections of gamut are being sacrificed to preserve smoothness.
Or do you really want a print that looks good? For many this is the bottom line. There's no point in producing an image that you or your customer do not like - regardless of how accurate the print is. I have created profiles for some workflows that departed from accuracy to deliberately boost the saturation of flesh tones, giving people shots and portraits a more rosy appearance. But generally to get pleasing color you will want to settle on some combination of accuracy and smoothness. Most profiling engines these days give you options for adjusting this one way or the other when building a profile.
Out-of-gamut colors handled well
Consider that sometimes, all this effort to achieve accuracy in reproduction is a lost cause! If your original color that you are trying to reproduce is outside the gamut of your printer, then it's beyond hope! There's no way that saturated blue is going to be reproduced accurately. Not really. Not if it is in fact outside of your printer's ability to reproduce. So a good profile will be able to move that impossible color into gamut for your printer, and hopefully it will look as close as it can to your perception of the original. Sometimes it's helpful to keep in mind that total accuracy of some colors is not going to happen. This applies not only to saturated colors, but also some shadows and dark colors like browns which are not in the gamut of some inkjet printers. Here's where it is helpful to have some kind of 3D graphing program like ColorThink, where you can bring in your images and compare where your pixels lie in relationship to your printer and monitor color spaces.
Make the most out of Perceptual
The other rendering intents are pretty straightforward, but dealing with colors in the perceptual rendering intent is almost a work of art. The different profile engines put a lot of research into perfecting how to bring out-of-gamut colors into gamut without desaturating other colors too much and make it all work in a pleasing way.
In version 2 of the ICC spec, the colorspace involved in the perceptual rendering intent was not very well defined, and different profile creators handled this differently. With version 4, the spec introduced a specific colorspace (the Perceptual Reference Medium Gamut) that the profiling engine is supposed to be using to convert to and from. So choosing a version 4 profile when you print may help if you use the perceptual intent a lot.
Unfortunately I don't think I had the presence of mind to explain all of this to my doubtful customer at the time. It was one of those times when I thought of all the right things to say long after the fact. Hopefully, he was one who decided to go with us anyway and was one of the many satisfied customers we have had over the years.
Thanks for reading,