From Chromix newsletter 26:
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
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
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
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 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
- 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.
- 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
- 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
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,