Windows Color System Evolution in the Microsoft Color

  • Slides: 38
Download presentation
Windows Color System Evolution in the Microsoft Color Management Ecosystem Michael Bourgoin Program Manager

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

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

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, 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,

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

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 extend by third parties New Visual Model CIECAM 02 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) sc. RGB with a realistically defined gamut boundary (“wcs. RGB”) 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

Windows Color System and ICC workflows WCS still supports and defaults to the same s. RGB ICC profile as previous Windows versions Seamless interoperability with ICC profile-based workflows ICC-only transforms run through improved ICM 3 CMM Mixed ICC & WCS transforms run through WCS CITE Any existing code that uses ICM 2 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 ICM 2 APIs Old applications work with new profiles New profile format is processed by current ICM 2 APIs

The Parts of the Windows Color System New WCS XML-based color profile formats Color

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 CIECAM 02 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

WCS Pipeline Device A Device B Device Color Space Device Models Device Model Profile 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 CIECAM 02 JCh Color Appearance Model CAMP for Device B Viewing Conditions

WCS Profile Formats Each type has its own schema Device Model Profile (DMP), file

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 CIECAM 02 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 s. RGB profile

A WCS s. RGB profile

WCS Device Models WCS device models use the measurement data from a DMP to

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

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 wcs. RGB 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 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

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

GBD Shells

WCS Gamut Mapping Models (GMMs) All gamut mapping is performed between explicit source and

WCS Gamut Mapping Models (GMMs) All gamut mapping is performed between explicit source and destination GBD Shells in CIECAM 02 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,

WCS Baseline GMMs Sigmoidal Gaussian Cusp Knee Clipping (SGCK) Equivalent to ICC’s preferred, pictorial, or perceptual intent. Minimum Color Difference (Min. CD) Equivalent to ICC colorimetric intents: Relative if neutral axis mapping is done Absolute without neutral axis mapping Hue. Map Equivalent to ICC saturation or business graphics intent

Aligning the neutral axes in CIECAM 02 JCh First step in all WCS baseline

Aligning the neutral axes in CIECAM 02 JCh First step in all WCS baseline GMMs

Inverting the destination neutral axis alignment Last step in all WCS baseline GMMs

Inverting the destination neutral axis alignment Last step in all WCS baseline GMMs

Min. CD A chroma-dependent weight function is used for the distance in lightness so

Min. CD 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

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

Lightness scaling for 2 -shell GBD

SGCK – 2 shell case Piecewise linear JC compression function:

SGCK – 2 shell case Piecewise linear JC compression function:

Hue. Map The first step is to determine the “Hue Wheels. ” Find the

Hue. Map 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

Hue. Map (2) Second, we perform a lightness rescaling to map the black/white points

Hue. Map (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 Black Point Hue Leaves Source Black Point Before Lightness Rescaling C Destination Black Point & Source Black Point Hue Leaves C After Lightness Rescaling

Hue. Map (3) Third, the cusp point of the source hue leaf is linearly

Hue. Map (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 Min. CD clipping.

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

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 Open. Color.

Open a Color Profile ICC or DMP filename DMP CAMP GMMP filename Open. Color. Profile() Wcs. Open. Color. Profile() Default Profiles in Registry HPROFILE

Create. Multi. Profile. Transform HTRANSFORM WINAPI Create. Multi. Profile. Transform( PHPROFILE pah. Profiles, //

Create. Multi. Profile. Transform HTRANSFORM WINAPI Create. Multi. Profile. Transform( PHPROFILE pah. Profiles, // ptr to array of HPROFILEs DWORD n. Profiles, // number of HPROFILEs (max 10) PDWORD padw. Intent, // ptr to array of intents DWORD n. Intents, // number of intents (max 10) DWORD dw. Flags, // DWORD index. Preferred. CMM // ignored if any WCS profiles ); pah. Profiles - profile array can contain a mix of ICC and WCS profile handles If only ICC profiles are used, processing will be via the improved ICM 3 CMM n. Intents must equal 1, n. Profiles -1, or n. Profiles Intents corresponding to WCS HPROFILEs will result in the use of the corresponding default GMMP mapped to that intent. Intents specified in the padw. Intent array trump GMMPs in WCS HPROFILEs, unless… For WCS profiles, setting the corresponding intent in padw. Intent to DWORD_MAX will force use of GMMPs contained in WCS HPROFILEs (constructed with Wcs. Open. Color. Profile). ICC Device. Link, Abstract, and Named. Color profiles are not supported in combination with WCS profiles.

Transform Profile Sequence Example padw. Intent INTENT_PECEPTUAL DWORD_MAX HPROFILE A HPROFILE B HPROFILE C

Transform Profile Sequence Example padw. Intent 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)

New Central Color Control Panel (UI still evolving)

Central Color Control Panel Associate

Central Color Control Panel Associate

Install/Uninstall Global Settings

Install/Uninstall Global Settings

Transparency We are publishing the internal design specs for WCS Currently, all the WCS

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

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

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

Questions

Questions

© 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only.

© 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.