You are on page 1of 38

Windows Color System

Evolution in the Microsoft Color


Management Ecosystem
Michael Bourgoin
Program Manager for Microsoft Color Community & Science
Windows Digital Document Platforms & Solutions Group

2005 Microsoft Corporation. All rights reserved.


This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

This is a preliminary document and may be changed substantially prior to final commercial release of the
software described herein.
The information contained in this document represents the current view of Microsoft Corporation on the issues
discussed as of the date of publication. Because Microsoft must respond to changing market conditions, the
information presented herein should not be interpreted to be a commitment on the part of Microsoft, and
Microsoft cannot guarantee the accuracy of any information presented after the date of publication.
This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED,
OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT.
Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under
copyright, no part of this document may be reproduced, stored in, or introduced into a retrieval system, or
transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for
any purpose, without the express written permission of Microsoft Corporation.
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights
covering subject matter in this document. Except as expressly provided in any written license agreement from
Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights,
or other intellectual property.
2005 Microsoft Corporation. All rights reserved.
Microsoft, the Microsoft logo, the Windows logo, Windows, and Windows Vista are either registered trademarks or
trademarks of Microsoft Corporation in the United States and/or other countries.
All other trademarks are property of their respective owners.

The Windows Color System


(WCS)
WCS with Kyuanos is a collaboration

between the Microsoft and Canon,


including Canon Development
America
The Microsoft Color Team and Canon
Development America worked
together to realize WCS
WCS, like ICM before it, is integrated
with core Windows system
components - WCS requires Windows
Vista

WCS in Windows Vista is


A new color management paradigm and
infrastructure
A transparent, modular, color processing
pipeline that allows for easy color
troubleshooting
A new development platform for advanced
color devices and applications
A platform for innovation in color
management
The first step in a staged implementation
process that will span several Windows
releases
NOT MANDATORY

WCS Features
Continued, improved support for ICC-based workflows
New explicitly staged color processing pipeline
New, Simple XML Profile Formats
Easy to edit, verify, understand and extend by third parties

New Visual Model


CIECAM02 instead of reflection-print-like PCS

Built-in baseline device models for common device classes


Extensible by third party plug-in device models

Selectable gamut mapping models


Support for third party plug-in gamut mapping models for
proprietary algorithms or improvements on baseline gamut
mapping models

Transforms can support black preservation


Support for high dynamic range, wide gamut, high precision
color data (up to 32 bpc float)
scRGB with a realistically defined gamut boundary (wcsRGB)

New centralized color control panel


Per-user as well as system-wide profile/device associations,
defaults, and settings
Non-Admin users can now install/uninstall profiles

Windows Color System and


ICC workflows
WCS still supports and defaults to the same
sRGB ICC profile as previous Windows
versions
Seamless interoperability with ICC profilebased workflows
ICC-only transforms run through improved ICM3
CMM
Mixed ICC & WCS transforms run through WCS
CITE

Any existing code that uses ICM2 APIs will


continue to work without any change
required
ICC Version 4 support is added to ICM
Addressing key recorded ICM bugs
Implement new functionality via current
ICM2 APIs

The Parts of the Windows Color


System

New WCS XML-based color profile formats


Color Infrastructure & Translation Engine
(CITE)
The Color Appearance Model (CAM)
Based on CIECAM02

Gamut Boundary and Gamut Shell


Functions
The Baseline Device Model Set
Extensible via Device Model Plug-ins

The Baseline Gamut Map Model Set


Extensible via Gamut Map Model Plug-ins

And of course the improved ICM CMM, with

WCS Pipeline

Device A

Device B

Device Color Space

Device
Models

Device Model
Profile A

Device
Model A

Device Model
Profile B

Device
Model B

Device-Independent Color Space


CIEXYZ
Gamut
Map
Models
Color
Appearance
Model
CAMP for
Device A
Viewing
Conditions

GBD A

Gamut Map
Model C
Profile

GBD B

Gamut
Map Model
C

Color Appearance Space CIECAM02 JCh

Color
Appearance
Model
CAMP for
Device B
Viewing
Conditions

WCS Profile Formats

Each type has its own schema


Device Model Profile (DMP), file extension
.cdmp
A DMP targets a particular device model, either one of the
built-in baseline device models, or a plug-in device
model
DMPs targeting plug-in device models must also specify a
baseline device model as a fallback

Color Appearance Model Profile (CAMP),

.camp

A CAMP provides the parameters to the CIECAM02


equations for a specific viewing condition.

Gamut Map Model Profile (GMMP),


.gmmp
A GMMP targets a particular gamut mapping model,
either one of the built-in baseline gamut mapping models,
or a plug-in gamut mapping model.
As with DMPs, a GMMP that targets a plug-in GMM must
also specify a baseline gamut mapping model as a
fallback.

A WCS sRGB profile

WCS Device Models


WCS device models use the
measurement data from a DMP to
instantiate a model that relates
device color space coordinates to
CIEXYZ
Baseline device models implement
different algorithms and processing
models for different device classes
Third parties can extend the set of
device models by writing plug-in
device models

WCS Baseline Device


Models
CRT Device Model
LCD Device Model
RGB Capture Device Model
RGB Projector Device Model
RGB Printer Device Model
CMYK Printer Device Model
RGB Virtual Device Model
Used for wcsRGB

ICC Virtual Device Model


Enables use of ICC profiles in WCS

Gamut Boundary Description


& Gamut Shell Functions
Internal to the WCS CITE
The device gamut boundary function
takes the device model instantiated
for a DMP and the CAMP and derives a
color device gamut boundary
description (GBD) as an indexed
vertex list of the hull of the device
gamut.
Depending on device model, GBDs
may consist of one to three nested
gamut shells

GBD Shells
These allow for different gamut
mapping strategies in different
regions of the device gamut
Reference Shell computed from the
DMP measurement data
Plausible Shell generated using a
sampling of the color cube in device
colorant space run through the DM,
filtered for real colors
Possible Shell points for the possible
shell for high dynamic range color
spaces are generated using a
sampling of the color cube in the HDR

GBD Shells

WCS Gamut Mapping Models


(GMMs)
All gamut mapping is performed
between explicit source and
destination GBD Shells in CIECAM02
JCh
WCS Baseline Gamut Mapping Models
correspond roughly to ICC rendering
intents
Third parties can extend the set of
available GMMs by writing gamut
mapping plug-ins

WCS Baseline GMMs


Sigmoidal Gaussian Cusp Knee
Clipping (SGCK)
Equivalent to ICCs preferred, pictorial, or
perceptual intent.

Minimum Color Difference (MinCD)


Equivalent to ICC colorimetric intents:
Relative if neutral axis mapping is done
Absolute without neutral axis mapping

HueMap
Equivalent to ICC saturation or business
graphics intent

Aligning the neutral axes in


CIECAM02 JCh
First step in all WCS baseline GMMs

Inverting the destination neutral


axis alignment
Last step in all WCS baseline GMMs

MinCD
A chroma-dependent weight function is used for the distance in
lightness so that the weight is smaller for small chroma and larger for
large chroma until a threshold chroma is reached, after which the
weight stays at 1, i.e. same weight as distance in chroma or hue.

SGCK
Based on a combination of GCUSP (Morovic, 1998)
and the sigmoidal lightness mapping and cusp
knee scaling proposed by Braun & Fairchild (1999)
Extended to handle multi-shell GBDs
Steps:
1. Align neutral axes
2. Apply lightness rescaling mapping to J
sigmoidal within the reference shell, and linear outside

3. Compress J and C along lines towards the point on


the lightness axis having the same lightness as
the cusp of the destination gamut
compression function depends on shell intercept points

4. Apply a Minimum Color Difference clip to


destination GBD
5. Invert destination GBD neutral axis alignment

Lightness scaling for 2-shell


GBD

SGCK 2 shell case


Piecewise linear JC compression function:

0
g o ,ref
g o , pla
0.9 g r ,ref

0
g r ,ref
g r , pla
0.9 g r ,ref if 0.9 g r ,ref g o ,ref

HueMap
The first step is to determine the Hue Wheels. Find the JCh
values for primary and secondary colors for both source and
destination device. Here we are only considering the hue
components.
Hue Angle of
Input Color
(40% from M to R)

Hue Angle of
Destination Color
(40% from M to R)

R
Y

Y
M

Source
Primaries
&
Secondaries

Destination
Primaries
&
Secondaries

G
B

B
C

HueMap (2)
Second, we perform a lightness rescaling to map the
black/white points of the source leaf to the
destination leaf, scaling all the J coordinates of the
source boundary. The hue-mapped input color
value is scaled in the same manner.
Source Boundary
Destination Boundary

Source White
Point

Source White
Point
&
Destination White
Point

Destination White
Point
Destination Black
Point

Hue
Leaves

Source Black
Point
Before Lightness
Rescaling

Destination Black
Point
&
Source Black
Point

Hue
Leaves

C
After Lightness
Rescaling

HueMap (3)
Third, the cusp point of the source hue leaf is
linearly mapped to the cusp point of the
destination hue leaf, using a shear
operation that locks the J axis, keeping the
black and white points stationary. Apply this
shear mapping to the lightness-adjusted,
hue-rotated input color value.
Finally perform MinCD clipping.

Programming WCS
Use existing ICM APIs and a few new
WCS APIs
All are unmanaged APIs

Open a Color Profile


ICC or DMP filename

DMP
CAMP
GMMP
filename filename filename

OpenColorProfile()

WcsOpenColorProfile()

Default Profiles
in Registry
HPROFILE

CreateMultiProfileTransform
HTRANSFORM WINAPI CreateMultiProfileTransform(
PHPROFILE pahProfiles,
// ptr to array of HPROFILEs
DWORD nProfiles,
// number of HPROFILEs (max 10)
PDWORD padwIntent, // ptr to array of intents
DWORD nIntents,
// number of intents (max 10)
DWORD dwFlags,
//
DWORD indexPreferredCMM
// ignored if any WCS profiles
);
pahProfiles - profile array can contain a mix of ICC and WCS profile handles
If only ICC profiles are used, processing will be via the improved ICM3 CMM
nIntents must equal 1, nProfiles -1, or nProfiles
Intents corresponding to WCS HPROFILEs will result in the use of the corresponding
default GMMP mapped to that intent.
Intents specified in the padwIntent array trump GMMPs in WCS HPROFILEs, unless
For WCS profiles, setting the corresponding intent in padwIntent to DWORD_MAX will
force use of GMMPs contained in WCS HPROFILEs (constructed with
WcsOpenColorProfile).
ICC DeviceLink, Abstract, and NamedColor profiles are not supported in combination
with WCS profiles.

Transform Profile Sequence Example


padwIntent
INTENT_PECEPTUAL

DWORD_MAX

HPROFILE A

HPROFILE B

HPROFILE C

DMPA

DMPB

DMPC

CAMPA

CAMPB

CAMPC

GMMPA

GMMPB

GMMPC

DMPA +CAMPA
GBDA

Default Profiles
in Registry

DMPC +CAMPC

DMPB +CAMPB

GMMPPercep.

GBDB

GMMPB

GBDC

New Central Color Control


Panel
(UI still evolving)

Central Color Control Panel

Associate

Install/Uninstall
Settings

Global

Transparency
We are publishing the internal design
specs for WCS
Currently, all the WCS design
documents are available under NDA
It is our intent to publish them on
MSDN for non-NDA access prior to
Windows Vista shipping

In Summary
WSC supports existing color
workflows
WCS provides continuing, enhanced
ICC support
WCS supports high, wide, & deep
color
WCS implement state-of-the art color
science
WCS represents a commitment by
Microsoft to provide an extensible

Community
Email questions/feedback to
mscolor @ microsoft.com
WCS Color at Microsoft blog at
http://blogs.msdn.com/color_blog

Questions

2005 Microsoft Corporation. All rights reserved.


This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

You might also like