WCS 颜色外观模型配置文件架构和算法

概述

颜色外观模型配置文件(CAMP)体系结构

CAMP 架构

CAMP 架构元素

CAMP 算法

概述

此架构用于指定颜色外观模型配置文件(CAMP)的内容。 以下部分介绍了关联的基线算法。

CAMP 由 XML 标记组成,这些标记为CIECAM02基线颜色外观模型变量提供参数值。 基线颜色外观模型规范和CIECAM02建议中提供了有关参数范围的详细信息。

颜色外观模型配置文件体系结构

图,显示由 X M L 标记构成的 CAMP 配置文件体系结构。

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

此元素是一系列:

  1. ProfileName 字符串,
  2. 可选说明字符串,
  3. 可选作者字符串,
  4. 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”提供的值之间的分片线性内插来计算 ncF。此模型显示在 CIE 159:2004 的图 1 中,CIECAM02规范。

degreeOfAdaption 行为
-1.0 显示默认 C I E C A M 02 行为的公式。 这是默认CIECAM02行为。
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中的不同外观值。

基本颜色管理概念

Windows 颜色系统架构和算法