概述
此架构用于指定颜色外观模型配置文件(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 个字符。
Namespace
xmlns:cam=“http://schemas.microsoft.com/windows/2005/02/color/ColorAppearanceModel"
targetNamespace=“http://schemas.microsoft.com/windows/2005/02/color/ColorAppearanceModel"
版本
版本 >0.1 或 <= 第一个版本的 Windows Vista 为“1.0”。
验证条件: 任何版本值 <=2.0 也有效,以支持格式的非中断性变更。
文档
颜色外观模型配置文件架构。
版权(C)Microsoft。 保留所有权利。
验证条件: 每个子元素都通过其自己的类型进行验证。
SurroundType
此元素是“Average”、“Dim”或“Dark”的枚举,CIECAM02参数或来自CIECAM02建议 c 的实际定量参数(周围的影响)。
验证条件: c 参数的范围可以是 0.525 到 0.69。
ViewingConditions
此元素由以下子元素组成:
元素 | 类型 |
---|---|
WhitePoint | WhitePointType |
背景 | CIEXYZ |
环绕 | SurroundType |
LuminanceOfAdaptingField | 浮 |
DegreeOfAdaptation | 浮 |
NormalizeToMediaWhitePoint | 布尔 |
验证条件: NONNegativeXYZType 验证 CIEXYZ 子元素。 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颜色外观模型公式。
此类实现颜色外观建模。 请注意,WCS CAM 不能 替代,例如,使用插件。 只有一个颜色外观模型是一个设计目标。 CAM 基于CIECAM02建议。
CIECAM02可通过两种方式使用。 在色度到外观方向中,它提供从 CIE XYZ 空间到颜色外观空间的映射。 在外观到着色方向中,它从颜色外观空间映射到 XYZ 空间。 颜色外观与光度、J、色度、C 和色调(h)相关联。 这三个值形成一个柱形坐标系。 通常情况下,在矩形坐标系中工作会更加方便,因此计算 a = C cos h 和 b = C sin h,以给 CIECAM02 Jab。
可以使用大于 100 的 CAM 光度值。 制定CIECAM02的CIE委员会没有解决输入值的光度轴的行为,其亮度大于采用的白色点:也就是说,对于大于采用的白点 Y 值的输入 Y 值。 试验表明,CIECAM02中的亮度公式对此类值的行为合理。 光度呈指数级增长,遵循相同的指数(大约1/3)。
用户有时想要更改调整程度(D)的计算方式。 WCS 设计使用户能够通过更改查看条件参数中的 degreeOfadaptation 值来控制此计算。
为了向用户的 ICC 影响的预期提供更一致的匹配,默认 CAMP 中的 degreeOfAdaptation 为 1.0。 这在 MinCD Absolute 以外的所有情况下都会产生更好的结果,其中一个可能想要让 WCS 计算 degreeOfAdaptation(通过 degreeOfAdaptation = -1)。
提供从值 c 计算的连续环绕值,而不是使用“Average”、“Dim”和“Dark”的环绕值。 c 的值必须是介于 0.525 和 0.69 之间的浮点数。
从 c,可以使用为“Average”、“Dim”和“Dark”提供的值之间的分片线性内插来计算 nc 和 F。此模型显示在 CIE 159:2004 的图 1 中,CIECAM02规范。
degreeOfAdaption | 行为 |
---|---|
-1.0 |
![]() |
0.0 <= degreeOfAdaption <= 1.0 | D = degreeOfAdaptation (用户提供的值) |
还向实现添加了一定数量的错误检查。 以下公式数字是在 CIE 159:2004 CIECAM02定义中使用的数字。
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 的;,G';,B';,(公式 8.19 - 8.21)被剪裁为 399.9 范围。
对于所有颜色外观模型配置文件(CAMP),WCS 引擎将检查采用的白色点。 如果 Y 不是 100.0,则采用的白色点将被缩放,以便 Y 等于 100.0。 相同的缩放将应用于后台值。 缩放系数为 100.0/采用的WhitePoint.Y。 相同的缩放系数应用于每个 X、Y 和 Z。如果 NormalizeToMediaWhitePoint 字段设置为“True”,或者该字段不在 CAMP 中,则引擎还会将所有设备颜色输入缩放到 DeviceToColorimetric,使设备媒体的 Y 值等于 100.0。 来自 ColorimetricToDevice 的设备颜色将由该缩放因子的乘法反缩放。 如果 NormalizeToMediaWhitePoint 标志设置为“False”,则不缩放着色数据。
对于某些任务,缩放来自 DeviceToColorimetric 的颜色值是有意义的。 CAM 中的双曲光度公式真正设计为 100.0 的白色点亮度。 唯一一个在绝对亮度(或亮度)上存在差异的地方是适应领域的亮度。 因此,CAM 必须使用 100.0 的白色点 Y 进行初始化。 但是,如果设备型号的中等白色点正用作采用的白色点,则来自设备的所有颜色必须相应地缩放,否则设备白色不会以 J 值 100.0 出现。 因此,必须在度量值中缩放 Y 值。 在初始化设备模型之前,可以缩放度量值。 然后,结果已处于正确的范围内。 但这会使测试设备模型变得更加困难,因为传出的值需要缩放。 对于设备中等白色点被视为真正的白色的任务,需要由设备媒体白点规范化。
CAM 直接从 CAMP 初始化。 这允许开发人员根据要执行的任务,在初始化 CAM 方面具有一定的灵活性。 在某些任务中,观察者将忽略媒体白点中的任何色度,因为它们在认知上“知道”源媒体和目标媒体是“白色”。在这种情况下,开发人员需要使用各自的媒体白点初始化转发和反向 CAM。 在某些情况下,观察者可能会比较媒体背景的颜色。 在这些情况下,建议对这两台设备使用一个 CAM,并且可能需要不要按该设备的中等白色点缩放每个设备的着色值。 然后,媒体的不同三元值将导致CIECAM02中的不同外观值。