Vistas New Color Management System - WCS
February, 2007 This Month's Feature Article:
Vista's new Color Management System: WCS
by CHROMiX President Steve Upton
Recently Microsoft released their delayed and highly anticipated upgrade to Windows: Vista.
There is no shortage of articles analyzing Vista, its requirements, its new features, and many of the changes that will take place for the user and software developer. What I have not seen, however, is an article addressing Vista's color management system (CMS) capabilities. So here we go.
Windows Vista includes a significant upgrade to operating system-level color management. The Windows Color System (WCS) represents an departure from the ICC-based architecture that most CMSs have used for the past 10 years or so. As I often do with many of my articles, let's take a few steps back to put it all in perspective.
Windows 2000 and XP include Microsoft's CMS called Image Color Management (ICM). The Color Management Module (CMM - I hope this is the last of these acronyms) was originally written by Heidelberg and has not seen much of upgrades or bug fixes over the years. As a result of this low priority on Microsoft's list, ICM has had enough bugs and short comings few people rarely use it for color conversions. Though you can select ICM for conversions in Photoshop and other applications, few users do. Many print drivers and RIPs on Windows use CMMs licensed from Kodak and other companies. It's fair to say that those of us in the professional realm had given ICM up for dead.
Smart Profiles / Dumb CMM
Windows ICM, Apple's CMM in the Mac OS, Adobe's CMM "ACE" in their publishing applications, Kodak's CMS and most other major color processing systems have used the architecture and profile format described by the ICC. In this architecture (at least thus far) the basic components have been 'smart' profiles and a 'dumb' CMM. This is an over simplification but it captures the basic building blocks.
In the early to mid 1990's computing power was only a fraction of what it is today. Calculating color transformations took time - 5 to 20 minutes or so - and it wasn't realistic to calculate these tables real-time in production workflows. At the same time, the bleeding edge of color research lay in mapping gamuts and transforming color as smoothly and realistically as possible. By placing the color mapping function into the ICC profile, the CMM was left to perform the much simpler - and faster - job of converting image colors using simple interpolations of the profile's tables. The hard work, both in design and computation, is performed off-line when the profile is originally calculated from color measurement and reference data. Profiling software manufacturers can refine and revise their color conversion technology to bring us better and better profiles without us having to upgrade our publishing applications. Competition between profiling vendors would also drive improvement in color technology over time. All in all, a wise method to get us through the first 10 years of advancement.
But over time, shortcomings in the architecture came to light. One of its primary strengths turns out to be a weakness as well. Recall that ICC device profiles perform half the required color conversion. In a normal workflow, when an image is converted between two color spaces (say Adobe RGB and SWOP CMYK), two profiles are put to work and they hand off the image color in the Lab color space. By selecting Lab (and sometimes its cousin XYZ) as the profile connection space the ICC gave us the brilliant system where a profile only needs to know about converting between its device and Lab. Users can select profiles on the fly and the CMS knits them together to perform the conversion. Profiles can be combined in different ways to convert from device space or to device space. Profiles can be used for matching between devices or simulating one device on another. The problem is that the very calculations that map color between one device and another are performed when we don't know what the 'other' device will be. In other words, when I choose the perceptual rendering intent, the tables in my source profile and in my destination profile will both try to map color from the, typically, larger source gamut to the smaller destination gamut. As I mentioned before, this stuff is the real rocket science behind color management and yet neither profile can be aware of the size and shape of the other's gamut. This can result in sub-optimal hand-off between profiles and inaccuracies or unnecessary desaturation in color conversions.
Black Point Compensation
Another example of this is black point compensation. BPC is an Adobe work-around to this same gamut-blindness. With BPC, the Adobe CMM evaluates the lightness range of each device gamut and scales between them. BPC is performed in the CMM, has been only available in the Adobe CMM, and was outside the ICC spec.
For this and other reasons, advanced users have been calling for a change in the architecture to allow for moving some of the smarts from the profile into the CMM. The ICC is evaluating several options to change the way profiles interact as well.
Windows Vista WCS
Windows WCS, as you might have been able to anticipate, is based on an updated architecture where the profiles are simplified and the CMM enhanced. ICM, the ICC-based engine is still playing along for the times when users supply ICC profiles for their conversions. The new features and interplay between WCS and ICM are a bit involved so let's step through it:
- WCS profiles are NOT compatible with ICC profiles. They are XML-based text files that are much simpler and do not contain gamut mapping calculations at all. Think of them as slightly processed measurement files.
- There are three different kinds of WCS profiles: Device model, gamut mapping method, and appearance model.
- The device model profiles contain the color measurement information from the actual graphics device.
- The gamut mapping method profile selects which gamut mapping technique the user desires. WCS is based on CIECAM02 appearance modelling.
- The appearance model profile contains the parameters for CIECAM02 transforms. This is where you might specify the color temperature of the lighting used to view your print or the color and intensity of its surround.
- WCS and ICM work hand-in-hand in Vista. If all the profiles supplied in a color transformation are ICC-format, then ICM is call upon to do the processing. If one or more of the profiles is WCS-format, then WCS takes over and performs the conversions.
- If WCS is performing the conversions, any ICC profiles in the workflow are converted to WCS format prior to processing the image color data. Any gamut mapping in the ICC profile is ignored and WCS treats it as a virtual device, reconstructing the device measurements from the A2Bn tags in the ICC profile.
- Microsoft has upgraded ICM to version 3, fixed its bugs and updated it to use ICC version 4 profiles, bringing it up to date and hopefully removing any processing problems we've seen in the past. This is great news as it shows that Vista will be able to play with all the ICC profiles in the world and fit into existing color workflows. ICM is still based on the original Heidelberg code.
- Because WCS calculates the color transformation on the fly, gamut mapping should be more efficient and accurate. WCS has the information for each device's gamut and can presumably make better judgements and choices when dealing with out of gamut colors. This also means that black point compensation is automatically handled at this stage. (more on BPC below)
- WCS can also perform calculations using floating point math and allows device models to describe where to map diffuse whites and specular highlights. This and other enhancements allow for a number of new things to occur such as avoiding possible round-off errors on 16 bit devices, support for high dynamic-range devices (like the new digital projectors in movie theaters) and also extended gamuts.
- WCS can also be set to preserve the black channel through a workflow. Something for which ICC users require device link profiles at this time.
- By separating the device information from the gamut mapping and viewing data, users may be able to address specific color problems in the most appropriate area. Gamut mapping issues could be addressed separately from device measurements and viewing issues. In ICC profiles today, all the functions are combined during profile construction into one table.
- WCS can convert WCS profiles to ICC profiles. After conversion, the original WCS device profile is embedded into the ICC profile as the 'MS00' tag. In this manner WCS profiles can be embedded into image files as ICC profiles.
- WCS is only available with Windows Vista and Microsoft has stated it will not be made available to Windows XP.
- WCS was developed in conjunction with Canon.
- Microsoft has documented the daylights out of WCS so very little of it is based on 'magic sauce'. Also, many of the algorithm components are extensible or replaceable so developers can write their own plug-ins and alter device models (how the system expects devices to behave, inks to mix, paper to absorb), gamut mapping and so forth.
- Microsoft has created a useful demo image that contains an ICC profile that has a WCS profile embedded within it. The image and profiles are constructed in such a way that a Ducati motorcycle appears to be blue, green or red if the profile is entirely ignored, the ICC component is used, or the WCS component is used, respectively. It's worth a look:
So, with all these new features and capabilities are there any shortcomings? Well, yes. This is a version 1.0 product after all.
- The WCS CMM essentially has black point compensation ON at all times. In most cases this is good, but if you don't want the blacks intelligently improved - such as when you are proofing - then it means you won't be able to simulate a printing system that has lighter blacks than your inkjet or monitor.
- WCS can handle CMYK devices but at this time there is NO control over CMYK parameters such as total ink limit, black start, GCR level, etc. Laser printers are very different than inkjets which are very different than offset presses. WCS can support different device model plug ins but that is more like presets and I believe there is only one CMYK model shipping with WCS at this time.
- WCS does not support more than 4 print channels. So no Hexachrome or other n-color printing systems.
- WCS, like Windows XP, still does not load calibration curves from monitor profiles. This one deserves a little background...
After you calibrate and profile your display, the profiling software saves the graphics card's calibration curves inside the monitor profile so they can be reloaded on reboot. The Mac OS has reloaded these curves automatically since OS 8 but on Windows, a third-party utility is required. This is open to conflicts as two different software packages might fight over loading curves (LUT wars).
Also, selecting different display profiles in the displays control panel does not load each profile's calibration curves... cumbersome at best. This is an odd oversight as it is a simple function and one that really should be performed by the OS.
The Authorization bug
- A more serious problem, and this one is a show-stopper in my eyes, is the authorization bug. As you use Vista, you are occasionally interrupted by the OS as it confirms you have the admin-level privileges required or confirms certain actions. As a user-interface effect, Vista dims the screen slightly while offering the user a password dialog. Unfortunately, this dimming of the display clobbers the calibration curves in the graphics card and they are not replaced. So you startup Vista, your 3rd party utility loads your display calibration correctly but then 5 minutes into your session Vista requests some authentication and your calibration is gone... so you restart Vista, reloading the calibration and start out again.... It will be difficult to have confidence in a system's state of calibration.
- Editor's note: Microsoft had provided a possible solution to this bug in Service Pack 1 for Vista. Since then the following links have become no longer active:
- The WCS user interface is limited to a simple default-profile configuration panel at this time. Windows XP has a more capable utility available for color settings but it is not compatible with Vista at this time. It will find its way to Vista eventually.
- ICC device link, abstract & named color profiles are not supported in WCS. This is not too much of a shortcoming as device links are the most popular of the three and yet the on-the-fly gamut mapping and black preservation of WCS may render device links unnecessary. Then again, device links are typically used to get around CMM limitations so... These profile types are supported in ICM however.
One of the more challenging things about evaluating Vista color management is judging the actual impact of a major upgrade to a system that no professionals use at this time.
If a tree falls in the forest...
Let's face it, most professional color work is done in professional color applications. For production work that's typically an Adobe or Quark product and while they may give the user the option to select an outside color engine, people rarely do. It's end users that have been using ICM color conversions when they print and many printing systems licensed an outside CMM for those conversions anyway.
So does that mean that Vista color management is only going to change the consumer-level user? In the short term, I think yes. Especially as the current shortcomings in Vista's handling of display calibration and in WCS make it an unwise decision in professional color workflows. I'm sure Microsoft will eventually correct these problems in an upcoming 'service pack' but in the meantime consumer-level users will be the ones feting out WCS and that's OK with me. As much as we like change to happen quickly, the adoption of a major system upgrade is one that is often undertaken slowly.
Predictability - a bit of a wash
One of the concerns the ICC is addressing is predictability. If ICC profiles from different vendors are combined in a workflow, will they produce expected results? Vista's WCS combines color information into color transforms on the fly. While this technique makes for optimized gamut mapping how does it do for predictability? That remains to be seen. Suffice to say that both architectures are dealing with predictability in different ways and which one wins out remains to be seen.
Unknown capabilities (does it work?)
The color science and architecture behind WCS look good on paper. They've adopted acknowledged color science techniques and formulae such as CIECAM02. It should work well but as with any new system it remains to be seen if the implementation delivers on the promise.
Available only on Vista
As WCS is only available on Vista and will only be available on Vista, the adoption curve won't be too quick. Add to that the glacial pace of color management adoption in general and we will probably have something we'll be able to observe over many months. Again, this is probably a good thing.
Interactions with Photoshop
Yes, I finally get around to the meat of the article that many people are looking for:
Can I get at WCS from Photoshop and how?
The short answer is yes, in some cases.
In Photoshop on Windows you have the ability to select "ICM" as the color engine for color transforms. When file conversions are performed, Photoshop will call on the operating system to perform the color calculations rather than its internal engine. So, a few points:
- Though "ICM" is what you select in Photoshop, WCS will be used if the selected (or embedded) profiles contain the MS00 tag which contain a WCS profile.
- Photoshop does NOT use ANY external engine to perform the image-to-screen conversion. So if an image's profile contains a WCS-embedded profile (I know, it gets convoluted), Photoshop will only use the ICC portion of the profile to display the image but will use the WCS portion of the profile when you convert the file to another color space or print with conversion. The chances of the WCS profile being radically different from its ICC 'host' are not too great but it could introduce some confusion and possible inconsistencies into your workflow.
WCS has the makings of a very capable color management system. It seems to be able to fit into traditional ICC-based workflows and then quickly flip into WCS mode for some of its newer features and capabilities. The architecture certainly has a future. It's the present I am concerned with primarily. Due to Vista's non-handling and mishandling of graphics card calibration curves it is next to impossible for a professional user to be confident that their system is properly calibrated and displaying color correctly. For this reason I do not recommend Vista for professional workflows at this time. When Microsoft addresses the calibration-clobbering bug in a future service pack then I think Vista will make an effective platform for high quality color production.
For further reading:
Thanks for reading,