How To Use The Windows Color System In Devices And Drivers Michael Bourgoin

How To Use The Windows
Color System In Devices
And Drivers
Michael Bourgoin
Program Manager
D2 Color Team
Microsoft Corporation
Session Outline
WCS – The Windows Color System
Opportunities and Advantages
Color Best Practices
For capture devices
For printers
For displays
Dave Wilkinson, ATI Research Inc:
High Dynamic Range Imaging
Windows Color System
WCS is part of Windows Vista
It is not available down-level
Supports high dynamic range, wide gamut, high precision
color data (up to 32 bpc float)
Supports both binary ICC profiles and WCS text-based
(XML) profiles
Provides both a monolithic ICC CMM and a new modular
WCS processing pipeline
Provides baseline device models for common device
types – extensible via 3rd party plug-ins
Provides baseline gamut mapping models – extensible
via 3rd party plug-ins
Provides a new, central color control panel for managing
device color settings
Is flexible, predictable, transparent and consistent
Opportunities And Advantages
Your ICC-based workflows continue to work and can
now take advantage of version 4 ICC profiles
The new WCS XML-based color profiles are
easily programmatically updated, enabling
self-characterizing devices
Third parties can add value via new plug-in device
models and gamut mapping models
Vendors can write DM and GMM plug-ins that communicate with
one another during processing
Support for high dynamic range, wide gamut, high
precision color data (HWD) in WCS enables integration of
such innovative devices into color managed workflows
Color Best Practices
Populate, persist, and promote accurate metadata
Associate and embed accurate color profiles
Use and preserve embedded profiles
If you change color space, update the metadata
If you don’t understand the metadata, preserve it
Have your installers associate profiles with your devices
If it’s not actually an sRGB device, it should have
associated profile(s)
Minimize number of color conversions in your workflows
Your driver should be aware of your device state and the
correct profile for that state
WCS provides choices – choose what makes sense for
your business
Profile/Device Association
These work with WCS or ICC profiles
WCS…variants of these ICM APIs allow for
control of system-wide versus user association
scope on Windows Vista
BOOL WINAPI AssociateColorProfileWithDevice(
PCTSTR pMachineName,
PCTSTR pProfileName,
PCTSTR pDeviceName
);
BOOL WINAPI WcsAssociateColorProfileWithDevice(
WCS_PROFILE_MANAGEMENT_SCOPE profileManagementScope,
PCTSTR pMachineName,
PCTSTR pProfileName,
PCTSTR pDeviceName
);
Capture Best Practices
Populate and promote accurate metadata
Be sure EXIF, etc, tags match image
color space
Embed correct profile
Support > 8 bpc color data and wide
gamut color spaces
Enables capture/archive-centric workflows
If you have a camera RAW format,
consider providing a WIC codec for it
Printers Best Practices
Use WCS for on-host color conversion to reduce
device costs
You can write one XPSDrv filter that calls WCS (or ICM
down-level) and use it to for an entire printer family
WCS XML-based profiles are easy to create and update
on the fly
Enable cross calibration of networked devices
Support devices with built in sensors
Support Premium Windows Logo Program requirements
for Color and Printing
Cooperating applications and drivers can use the
PrintTicket/PrintCapabilities mechanism to eliminate
double color management (guidelines are currently
under development)
Application/Driver
Color Communication
Conversations to avoid “double
color management”
“What profile do you think best matches your
current state?”
“I’ve already done the color conversion with this
profile: Do no further color management (CM)”
“You do the CM using this destination profile”
“You do the CM using your idea of the best profile for
your current state”
“You apply your propriety color magic”
“I’ve created a color managed print DC, you do no
further CM”
Displays Best Practices
Associate an accurate color profile if not actually
an sRGB device
On Windows Vista you can have a profile per screen,
not just a profile per display card
Support DDC/CI via Windows Vista APIs
Use WCS XML profiles to simplify display
characterization/calibration
Take advantage of WCS HWD color support
Build innovative color capabilities
WCS provides extensibility mechanisms for integrating
novel display technologies
Call To Action
Populate, persist, and promote rich color metadata
Take advantage of WCS on Windows Vista
Implement color best practices
Consider WCS XML profiles for device-based or on-thefly characterization/calibration
Don’t be a bottleneck for HWD workflows
Refer to the Windows Vista Beta 2 SDK for new WCS
SDK documentation, code samples, sample plugins, etc
Provide us feedback on both WCS and our
guidelines/best practices
Tell us about your own best practices
WCS provides choices – choose what makes sense for
your business
Additional Resources
At WinHEC
Visit the Microsoft Pavilion for WCS demos
Related Sessions
PRI102 Using XPSDrv Print Drivers to Extend Windows Print Functionality
PRI115 Windows Media Photo: A New Format for End-to-End Digital Imaging
PRI022 DirectX Graphics: Direct3D 10 and Beyond
Practice print driver dev skills in XPS Printing hands on labs
Attend Ask the Experts at lunch today
Web Resources
WCS Specs: With the Windows Vista Beta 2 SDK
WCS White Papers and presentations: http://www.microsoft.com/color
XPS and WMPhoto docs:
http://www.microsoft.com/whdc/xps/downloads.mspx
Color blog: http://blogs.msdn.com/color_blog/default.aspx
E-mail: Mscolor @ microsoft.com
A Guide To HighDynamic-Range Imaging
On The PC
Dave Wilkinson
Staff Engineer
ATI Research, Inc
Introduction
HDR Overview
Capturing The Real World
The HDR Pipeline
Call To Action
HDR Overview
What Is High-Dynamic-Range?
What’s In An Image
A Picture Postcard…
The Range Of Visible Light
There’s more to this photo than meets the eye…
The dynamic range of
intensities in a scene
can be extremely large
(>50,000:1)
The range of the
capture device is much
smaller (typically 300:1)
Light Intensity
Limited Dynamic Range
A Room With A View…
Limited Dynamic Range
Hiding In The Shadows…
Images Courtesy Dennis Curtin (www.shortcourses.com)
Capturing The Real World
Acquisition of HDR Images
HDR Scene Capture
Camera ‘pixels’ measure light over time
Over-full elements
Are saturated
Highlight data is lost,
Shadow detail captured
Insufficient exposure
time or low-light.
Highlight data captured,
shadow detail lost
Camera CCD
Elements
accumulate
light over the
exposure period
Over-exposure
Under-exposure
HDR Scene Capture
An ‘Ideal’ Camera
The captured image
is a faithful rendition
of the original scene
high capacity elements
that can capture both shadow and
highlight detail of a scene without saturation
HDR Scene Capture
HDR from LDR Exposures
Exposure 0
Exposure 1
Exposure n
…
…
Input Image Exposure
Slices (LDR)
Stitching Stage
Stitched Output
Image (HDR)
Summary
We don’t yet have an ideal camera;
There is no device that can ‘capture
everything,’ but…
Current imaging devices can capture
12-14 bits of dynamic range
Improved dynamic range can be obtained
by digitally ‘stitching’ multiple exposures
HDR Image capture offers many benefits
to the professional and amateur
photographer alike
How Many Bits
Is Enough?
Low, Medium, and High Dynamic Range
Low-Dynamic-Range
Typically 8-bits per color channel
Most common format for today’s
mainstream imaging devices
Poor tonal and dynamic range
Severe artifacts
(eg. Banding, poor color reproduction)
The current format supported on the
Microsoft Windows desktop
Medium-Dynamic-Range
Typically 10 to 16 bits per color
Supported in higher-end image capture
and display devices
Good tonal and dynamic range
Low occurrence of visible artifacts
Floating point representations can be
used to greatly improve tonal range
Supported in Microsoft Windows via
Direct3D9 and above
High-Dynamic-Range
Typically 16 to 32 bits per channel
Supported by current higher end GPUs,
up to the display
Excellent tonal and dynamic range
Capable of representing the entire range
of light visible to the eye
Limited display hardware availability
(some 16 bpc devices)
Supported in Microsoft Windows via
Direct3D9 and beyond
The HDR Pipeline
Displaying HDR Images on
Microsoft Windows
The HDR Pipeline
Legacy HDR Workflow
HDR Resources
(lightmaps, probes
Scenes)
Draw
Scene
8bpc
HDR
Scene
Processing
Tonemap
Application
Windows
GDI
Display
Adapter
Legacy HDR Workflow
Windows GDI and legacy HW support
only 8-bpc
All HDR processing has to be done on
the CPU
Tonemapping must also be done
in software
Not practical for real-time HDR applications
Very few commercial applications
Accelerated HDR Workflow
Using Direct3D9 to accelerate
HDR rendering
Video Memory
HDR
Resources
(lightmaps,
probes
Scenes)
Resource
Initialization/
Setup
Draw
Scene
Application
Tonemap
Texture
Create Textures:
LDR Surface(s)
HDR Surface(s)
Tonemaps
Render:
HDR Passes
Tonemapping
Pass
Direct3D
LDR
Display
Surface
HDR
Surface(s)
GPU
DC
T&L
Shader FX
Tonemap
Gamma
DAC
Display Adapter
8-bit
Display
The HDR Pipeline
Accelerated HDR Workflow
Direct3D9 supports a full HDR pipeline
Reflects capabilities of current
generation hardware
Allows HDR processing to be offloaded to the
graphics hardware
Images stay in high-precision HDR format
right up until the final rendering
Hardware-assisted tonemapping can be
performed prior to final display
Next-Generation HDR Workflow
Supporting HDR through to the display
Video Memory
HDR
Resources
(lightmaps,
probes
Scenes)
HDR
Display
Surface
HDR
Surface(s)
DC outputs
fp16 values
directly from
framebuffer
across
dual-DVI link
HDR
Resource
Initialization/
Setup
Draw
Scene
Application
Create Textures:
HDR Surface(s)
GPU
DC
T&L
Shader FX
FP16
Scanout
Render
HDR Passes
Direct3D10
Display Adapter
HDR
Display
The HDR Pipeline
Next Generation HDR Workflow
Fully programmable color correction hardware
Tonemapping step can be performed directly by hardware
Eliminates extra shader pass
Significant performance boost
HDR Scanout of 16-bit Integer and Floating-point
Eliminates the graphics adapter as the bottleneck for HDR
display output
Dual-link DVI for export of 16-bit data to display
16-bit floating point or integer data is split across two 8-bit
data channels and sent to a display via one dual-link
DVI cable
HDR Display
HDR displays can display 10bpc or 16bpc images directly
Call To Action
IHVs – HDR support checklist
Floating-point support through to display
Blendable/filterable FP16/32 surfaces
FP16 Backbuffer
FP16 scan-out
HW tonemapping
HDR Compression
Call To Action
ISVs
Author HDR content wherever possible
Let the GPU do the work!
Maintain LDR and HDR shader paths
Resources
HDR Background
www.cybergrain.com/tech/hdr
www.debevec.org
http://www.mpi-inf.mpg.de/resources/hdr/
HDR Software
www.hdrsoft.com
www.hdrshop.com
http://www.mpi-inf.mpg.de/resources/pfstools/
HDR GPUs
http://www.ati.com/products/RadeonX1900/index.html
http://www.ati.com/technology/avivo/index.html
HDR Display Manufacturers
www.brightsidetech.com
www.barco.com
© 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.