Схема и алгоритм профиля модели цветового оформления WCS
Архитектура профиля модели цветового оформления (CAMP)
Общие сведения
Эта схема используется для указания содержимого профиля модели цветового оформления (CAMP). Связанные базовые алгоритмы описаны в следующих разделах.
CAMP состоит из XML-тегов, которые предоставляют параметрические значения для переменных базовой модели цветового оформления CIECAM02. Подробные сведения о диапазонах параметров приведены в спецификации базовой модели цветового оформления и рекомендации CIECAM02.
Архитектура профиля модели цветового оформления
Схема CAMP
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
xmlns:cam="http://schemas.microsoft.com/windows/2005/02/color/ColorAppearanceModel"
xmlns:wcs="http://schemas.microsoft.com/windows/2005/02/color/WcsCommonProfileTypes"
targetNamespace="http://schemas.microsoft.com/windows/2005/02/color/ColorAppearanceModel"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
blockDefault="#all"
version="1.0">
<xs:annotation>
<xs:documentation>
Color Appearance Model profile schema.
Copyright (C) Microsoft. All rights reserved.
</xs:documentation>
</xs:annotation>
<xs:import namespace="http://schemas.microsoft.com/windows/2005/02/color/WcsCommonProfileTypes" />
<xs:annotation>
<xs:documentation>
ColorAppearanceModel element contains viewing conditions
parameters based on CIECAM02.
</xs:documentation>
</xs:annotation>
<xs:element name="ColorAppearanceModel">
<xs:complexType>
<xs:sequence>
<xs:element name="ProfileName" type="wcs:MultiLocalizedTextType"/>
<xs:element name="Description" type="wcs:MultiLocalizedTextType" minOccurs="0"/>
<xs:element name="Author" type="wcs:MultiLocalizedTextType" minOccurs="0"/>
<xs:element name="ViewingConditions">
<xs:complexType>
<xs:sequence>
<xs:choice>
<xs:element name="WhitePoint" type="wcs:NonNegativeCIEXYZType"/>
<xs:element name="WhitePointName">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="D50"/>
<xs:enumeration value="D65"/>
<xs:enumeration value="A"/>
<xs:enumeration value="F2"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:choice>
<xs:element name="Background" type="wcs:NonNegativeCIEXYZType"/>
<xs:choice>
<xs:element name="ImpactOfSurround" type="xs:float"/>
<xs:element name="Surround">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Average"/>
<xs:enumeration value="Dim"/>
<xs:enumeration value="Dark"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:choice>
<xs:element name="LuminanceOfAdaptingField" type="xs:float"/>
<xs:element name="DegreeOfAdaptation" type="xs:float"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="NormalizeToMediaWhitePoint" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="True"/>
<xs:enumeration value="False"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
<xs:attribute name="ID" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
</xs:schema>
Элементы схемы CAMP
ColorAppearanceModel
Этот элемент представляет собой последовательность:
- Строка ProfileName,
- необязательная строка описания,
- необязательная строка автора,
- Элемент ViewingConditions.
Условия проверки: Каждый вложенный элемент проверяется по собственному типу. Длина строк ограничена 10 000 символами.
Пространство имен
xmlns:cam="http://schemas.microsoft.com/windows/2005/02/color/ColorAppearanceModel"
targetNamespace="http://schemas.microsoft.com/windows/2005/02/color/ColorAppearanceModel"
Версия
Версия >0.1 или <= "1.0" с первым выпуском Windows Vista.
Условия проверки: Любое значение <версии =2.0 также допустимо для поддержки некриминационного изменения формата.
Документация
Схема профиля модели оформления цвета.
(C) Корпорация Майкрософт. Все права защищены.
Условия проверки: Каждый вложенный элемент проверяется по собственному типу.
SurroundType
Этот элемент является перечислением параметров "Average", "Dim" или "Dark" CIECAM02 или фактических количественных параметров из рекомендации CIECAM02 c, влияние окружения.
Условия проверки: Параметр c может варьироваться от 0,525 до 0,69.
ПросмотрУсловий
Этот элемент состоит из следующих вложенных элементов:
Элемент | Тип |
---|---|
WhitePoint | WhitePointType |
История | CIEXYZ |
Окружают | SurroundType |
LuminanceOfAdaptingField | FLOAT |
DegreeOfAdaptation | FLOAT |
NormalizeToMediaWhitePoint | Логическое |
Условия проверки: Вложенные элементы CIEXYZ проверяются с помощью NonNegativeXYZType. LuminanceOfAdaptingField имеет не более 10 000cd/m^2. DegreeOfAdaptation может варьироваться от 0,0 до 1,0. Значение NormalizeToMediaWhitePoint может иметь значение true или false. Если подэлемент NormalizeToMediaWhitePoint отсутствует, по умолчанию по умолчанию используется значение true. См. следующий раздел алгоритма CAMP.
WhitePointType
Этот элемент является перечислением значения источника света CIE ("D50", "D65", "A" или "F2") или подэлелем CIEXYZ.
Условия проверки: Каждый вложенный элемент проверяется по собственному типу.
CIEXYZType
Элемент CIEXYZType состоит из трех элементов NonNegativeFloatType с плавающей запятой одной точности IEEE с именами "X", "Y" и "Z". Эти измерения могут быть либо абсолютными (не относительными) отражающими значениями CIEXYZ 1931, либо абсолютными (не относительными) прямыми (трансмиссивными) значениями CIEXYZ 1931 в канделях на метр квадратных единиц.
Условия проверки: Это означает, что допустимы только реальные значения, а отрицательные значения измерения CIEXYZ недопустимы. Так как это абсолютные значения, значения могут быть значительно выше 1,0f. Разумное ограничение для любого значения X, Y или Z будет произвольно равно 10000,0f.
Алгоритм CAMP
Модель цветового оформления (CAM) основана на уравнениях модели цветового оформления CIE CIECAM02.
Этот класс реализует моделирование внешнего вида цвета. Обратите внимание, что CAM WCS нельзя заменить, например, с помощью подключаемого модуля. Цель проектирования заключается в том, чтобы иметь только одну модель оформления цвета. Cam основан на рекомендациях CIECAM02.
CIECAM02 можно использовать двумя способами. В направлении колориметрики к внешнему виду он обеспечивает сопоставление пространства CIE XYZ с пространством внешнего вида цвета. В направлении от внешнего вида к цвету она сопоставляется с пространством внешнего вида XYZ. Внешний вид цвета коррелирует свет, J, хрома, C и оттенок, h. Эти три значения образуют цилиндрическую систему координат. Часто оказывается удобнее работать в прямоугольной системе координат, поэтому вычислить a = C cos h и b = C sin h, чтобы дать CIECAM02 Jab.
Можно использовать значения легкости CAM больше 100. Комитет CIE, который сформулировал CIECAM02, не принял решение о поведении оси освещенности для входных значений с яркостью больше принятой белой точки; то есть для входных значений Y больше принятого значения белой точки Y. Экспериментирование показало, что уравнения яркости в CIECAM02 ведут себя разумно для таких значений. Легкость увеличивается экспоненциально и следует за той же экспонентой (примерно 1/3).
Иногда пользователям требуется изменить способ вычисления степени адаптации (D). Проект WCS позволяет пользователям управлять этим вычислением, изменяя значение degreeOfadaptation в параметрах условий просмотра.
Чтобы обеспечить более согласованное соответствие ожиданиям пользователей, влияющим на ICC, degreeOfAdaptation в camp по умолчанию имеет значение 1.0. Это дает лучшие результаты во всех случаях, кроме MinCD Absolute, где может потребоваться разрешить WCS вычислить degreeOfAdaptation (с помощью degreeOfAdaptation = -1).
Вместо использования объемных значений "Average", "Dim" и "Dark" предоставляется непрерывное объемное значение, вычисленное на основе значения c. Значение c должно быть плавающей точкой в диапазоне от 0,525 до 0,69.
Из c можно вычислить Nc и F , используя кусковую линейную интерполяцию между уже указанными значениями для "Average", "Dim" и "Dark". Это моделирует то, что показано на рисунке 1 CIE 159:2004 спецификации CIECAM02.
degreeOfAdaption | Поведение |
---|---|
-1.0 |
Это поведение по умолчанию CIECAM02. |
0,0 <= degreeOfAdaption <= 1,0 | D = degreeOfAdaptation (значение, предоставленное пользователем) |
В реализацию также добавлен определенный объем проверки ошибок. Следующие числа уравнений используются в определении CIECAM02 159:2004.
ColorimetricToAppearanceColors
Входные значения проверяются на обоснованность: если X или Z < 0,0 или если Y < –1,0, то HRESULT E_INVALIDARG. Если -1,0 <= Y < 0,0, то для J, C и h задано значение 0,0.
Существуют определенные внутренние условия, которые могут привести к возникновению ошибок. Вместо получения таких результатов внутренние результаты обрезаются для получения значений в диапазоне. Это происходит для спецификаций цветов, которые были бы темными и невозможно хроматичными: в уравнении 7,23, если A < 0, A = 0. В уравнении 7,26, если t < 0, t = 0.
AppearanceToColorimetricColors
Входные значения проверяются на обоснованность. Если значение C < 0, C > 300 или J > 500, то HRESULT E_INVALIDARG.
R'a;, G'a; и B'a;, (уравнения 8,19 –8,21) обрезаются в диапазоне 399,9 .
Для всех профилей модели цветового оформления (CAMP) подсистема WCS проверит принятую белую точку. Если значение Y не равно 100,0, то принятая белая точка будет масштабирована таким образом, что значение Y равно 100,0. Такое же масштабирование будет применено к фоновому значению. Коэффициент масштабирования — 100,0/adoptedWhitePoint.Y. Один и тот же коэффициент масштабирования применяется к каждому из X, Y и Z. Если для поля NormalizeToMediaWhitePoint задано значение True или оно отсутствует в CAMP, подсистема также масштабирует все входные цвета устройства в DeviceToColorimetric таким образом, чтобы значение Y для точки белого мультимедиа устройства равнялось 100,0. Цвета устройств, поступающие от ColorimetricToDevice, будут масштабироваться с помощью мультипликативного обратного коэффициента масштабирования. Если для флага NormalizeToMediaWhitePoint задано значение False, то данные колориметрики не масштабируются.
Для некоторых задач имеет смысл масштабировать значения колориметрики, полученные из DeviceToColorimetric. Гиперболические уравнения легкости в CAM действительно предназначены для яркости белых точек 100,0. Единственное место, где разница в абсолютной яркости (или освещенности) вступает в игру, это яркость адаптивного поля. Поэтому CAM необходимо инициализировать с белой точкой Y 100,0. Но если в качестве принятой белой точки используется средняя белая точка модели устройства, то все цвета, поступающие от устройства, должны масштабироваться соответствующим образом, иначе белый цвет устройства не будет выходить со значением J 100,0. Поэтому значения Y необходимо масштабировать в измерениях. Значения измерений можно масштабировать перед инициализацией модели устройства. Тогда результаты уже будут находиться в правильном диапазоне. Но это усложнит тестирование модели устройства, так как для получения значений потребуется масштабирование. Для задач, в которых средняя белая точка устройства воспринимается как истинный белый цвет, желательно нормализоваться точкой мультимедиа устройства.
CAM инициализируется непосредственно из CAMP. Это дает разработчикам некоторую гибкость при инициализации CAM в зависимости от задачи, которую они хотят выполнить. В некоторых задачах наблюдатели игнорируют любую хрома в белых точках мультимедиа, так как они когнитивно "знают", что исходный и целевой носители являются "белыми". В таких случаях разработчикам потребуется инициализировать вперед и обратные ЦС с соответствующими точками мультимедиа. В некоторых случаях наблюдатели могут сравнивать цвет фона мультимедиа. В этих случаях рекомендуется использовать один CAM для обоих устройств, и может быть желательно не масштабировать значения колориметрии каждого устройства по средней белой точке этого устройства. Затем различные значения tristimulus носителя приведут к разным значениям внешнего вида в CIECAM02.