WCS 色彩外觀模型設定檔架構和演算法
概觀
此架構可用來指定色彩外觀模型設定檔的內容, (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 也有效,可支援格式的非中斷性變更。
文件
色彩外觀模型設定檔架構。
Microsoft (C) 著作權。 著作權所有,並保留一切權利。
驗證條件: 每個子項目都是由它自己的類型來驗證。
SurroundType
這個專案是 「Average」、「Dim」 或 「Dark」 CIECAM02 參數或 CIECAM02 參數的列舉,或 CIECAM02 建議中的實際量化參數 c,對周圍的影響。
驗證條件: c 參數的範圍可以從 0.525 到 0.69。
檢視條件
這個專案包含下列子項目:
元素 | 類型 |
---|---|
WhitePoint | WhitePointType |
背景 | CIEXYZ |
環繞 | SurroundType |
LuminanceOfAdaptingField | FLOAT |
DegreeOfAdaptation | FLOAT |
NormalizeToMediaWhitePoint | Boolean |
驗證條件: 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 CIE CIECAM02 色彩外觀模型方程式為基礎。
這個類別會實作色彩外觀模型。 請注意,WCS CAM 無法使用 外掛程式來取代。 只有一個色彩外觀模型的設計目標。 CAM 是以 CIECAM02 建議為基礎。
CIECAM02 可以透過兩種方式使用。 在色階對外觀方向中,它會提供從 CIE XYZ 空間到色彩外觀空間的對應。 在外觀到色彩對稱方向中,它會從色彩外觀空間對應回 XYZ 空間。 色彩外觀會讓光線、J、chroma、C 和 hue、h 相互關聯。 這三個值形成圓球座標系統。 通常,在矩形座標系統中工作會更方便,因此計算 a = C cos h 和 b = C sin h,以提供 CIECAM02 Jab。
您可以使用大於 100 的 CAM 光線值。 CIE 委員會所制定的 CIECAM02 未解決輸入值的光線軸行為,其亮度大於採用白色點;也就是說,針對大於採用白點 Y 值的輸入 Y 值。 實驗顯示 CIECAM02 中的亮度方程式對於這類值的行為合理。 光線會以指數方式增加,並遵循相同的指數 (大約 1/3) 。
使用者有時會想要變更計算 D (D) 調整程度的方式。 WCS 設計可讓使用者藉由變更檢視條件參數中的 degreeOfadaptation 值來控制此計算。
為了為使用者提供更一致的相符專案給使用者受到 ICC 影響的預期,預設的 CAMP 中的 degreeOfAdaptation 為 1.0。 這可在 MinCD Absolute 以外的所有案例中產生更好的結果,其中一個可能想要讓 WCS 透過 degreeOfAdaptation = -1) 計算 degreeOfAdaptation (。
系統會提供從 c 值計算的連續周框值,而不是使用 「Average」、「Dim」 和 「Dark」 的周框值。 c 的值必須是介於 0.525 到 0.69 之間的浮點數。
您可以從 c、 Nc 和 F 計算,在已針對 「Average」、「Dim」 和 「Dark」 提供的值之間,使用分次線性插補。此模型顯示于 CIE 159:2004 CIECAM02 規格的圖 1 中。
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。
有一些內部條件可能會產生錯誤結果。 內部結果會裁剪為產生範圍內值,而不是產生這類結果。 這發生在色彩規格中,如果 A 0、A < = 0,則為深色和不精確色色的色彩:在方程式 7.23 中。 在方程式 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 必須以 100.0 的白色點 Y 初始化。 但是,如果裝置型號的中型白色點是用來作為採用的白色點,則來自裝置的所有色彩都必須據以調整,否則裝置白色不會以 J 值 100.0 來顯示。 因此,Y 值必須在度量中調整。 在初始化裝置型號之前,可以調整度量值。 然後結果已經位於適當的範圍內。 但這樣會讓測試裝置型號變得更困難,因為即將推出的值需要調整。 對於裝置媒體白色點視為真正的白色的工作,需要由裝置媒體白色點正規化。
CAM 會直接從 CAMP 初始化。 這可讓開發人員根據想要執行的工作,在初始化 CAM 時有一些彈性。 在某些工作中,觀察者會忽略媒體白點中的任何色度,因為它們以認知方式「知道」來源和目的地媒體是「白色」。在這種情況下,開發人員會想要使用各自的媒體白點來初始化正向和反向 CAM。 在某些情況下,觀察者可能會比較媒體背景的色彩。 在這些情況下,建議您針對這兩個裝置使用一個 CAM,而且建議您不要依該裝置的中白點調整每個裝置的色階值。 然後媒體的不同 tristimulus 值會導致 CIECAM02 中的不同外觀值。