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 个字符。

命名空间

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) Microsoft。 保留所有权利。

验证条件: 每个子元素都按其自己的类型进行验证。

SurroundType

此元素是“Average”、“Dim”或“Dark”CIECAM02 参数的枚举,或者来自 CIECAM02 建议 c 的实际定量参数(周围影响)。

验证条件: c 参数的范围为 0.525 到 0.69。

ViewingConditions

此元素由以下子元素组成:

元素 类型
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 颜色外观模型公式。

此类实现颜色外观建模。 请注意,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 = -1) 计算 degreeOfAdaptation (。

提供的不是使用“Average”、“Dim”和“Dark”的环绕值,而是提供从值 c 计算的连续环绕值。 c 的值必须是介于 0.525 和 0.69 之间的浮点数。

可以使用已为“平均值”、“Dim”和“Dark”提供的值之间的分段线性内插来计算 cNcF 。此模型在 CIE 159:2004(CIECAM02 规范)的图 1 中显示的内容。

degreeOfAdaption 行为
-1.0 显示默认 C I E C A M 02 行为的公式。 这是默认的 CIECAM02 行为。
0.0 <= degreeOfAdaption <= 1.0 D = degreeOfAdaptation (用户提供的值)

还向实现添加了一定数量的错误检查。 以下公式数是 CIECAM02 的 CIE 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/已采用WhitePoint.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。 在某些情况下,观察者可能会比较媒体背景的颜色。 在这些情况下,建议对这两个设备使用一个 CAM,最好不要按该设备的中白点缩放每个设备的比色值。 然后,媒体的不同三重图像值将导致 CIECAM02 中的不同外观值。

基本颜色管理概念

Windows 颜色系统架构和算法