Windows Color System Evolution in the Microsoft Color Management Ecosystem Michael Bourgoin Program Manager for Microsoft Color Community & Science Windows Digital Document Platforms &

Download Report

Transcript Windows Color System Evolution in the Microsoft Color Management Ecosystem Michael Bourgoin Program Manager for Microsoft Color Community & Science Windows Digital Document Platforms &

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
If it doesn’t make business sense in your workflow, if
it’s not better, don’t use it.
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 profile-based
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
Old applications work with new profiles
New profile format is processed by 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 ICC
version 4 profile support added
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.
WCS profiles are embedded in image formats as a
private tag in a WCS-created approximating ICC profile
Necessary for interoperability off of Windows Vista™
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 transforms
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 space itself
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 ICC’s 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
Source Gamut Boundary
Lightness
Lightness
Destination Gamut Boundary
Chroma
Chroma
Inverting the destination neutral axis
alignment
Lightness
Last step in all WCS baseline GMMs
Chroma
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.
Destination
GBD
Lightness
A’
B’
Chroma
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.
5.
Apply a Minimum Color Difference clip to destination
GBD
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
R
Y
Y
M
M
Source
Primaries
&
Secondaries
Destination
Primaries
&
Secondaries
G
G
B
B
C
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
J
J
Source White
Point
&
Destination White
Point
Destination White
Point
Destination Black
Point
Hue
Leaves
Source Black
Point
Before Lightness
Rescaling
C
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
Global Settings
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 platform
for color innovation that will be viable for
years to come
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.