WCS-Farbdarstellungsmodell: Profilschema und Algorithmus
Camp-Architektur (Color Appearance Model Profile)
Übersicht
Dieses Schema wird verwendet, um den Inhalt eines Farbdarstellungsmodellprofils (CAMP) anzugeben. Die zugeordneten Baselinealgorithmen werden in den folgenden Abschnitten beschrieben.
Das CAMP besteht aus XML-Tags, die parametrische Werte für die CIECAM02-Baselinefarbdarstellungsmodellvariablen bereitstellen. Details zu den Bereichen für Parameter finden Sie in der Spezifikation des Baselinefarbdarstellungsmodells und in der CIECAM02-Empfehlung.
Architektur des Farbdarstellungsmodellprofils
Das CAMP-Schema
<?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>
Die CAMP-Schemaelemente
ColorAppearanceModel
Dieses Element ist eine Sequenz von:
- ProfileName-Zeichenfolge,
- optionale Beschreibungszeichenfolge,
- optionale Author-Zeichenfolge,
- ViewingConditions-Element.
Validierungsbedingungen: Jedes Unterelement wird durch einen eigenen Typ überprüft. Zeichenfolgenlängen sind auf 10.000 Zeichen beschränkt.
Namespace
xmlns:cam="http://schemas.microsoft.com/windows/2005/02/color/ColorAppearanceModel"
targetNamespace="http://schemas.microsoft.com/windows/2005/02/color/ColorAppearanceModel"
Version
Version >0.1 oder <= "1.0" mit der ersten Version von Windows Vista.
Validierungsbedingungen: Jeder Versionswert <=2.0 ist auch gültig, um unterbrechungsfreie Änderungen am Format zu unterstützen.
Dokumentation
Farbdarstellung Modellprofilschema.
Copyright (C) Microsoft. Alle Rechte vorbehalten.
Validierungsbedingungen: Jedes Unterelement wird durch einen eigenen Typ überprüft.
SurroundType
Dieses Element ist entweder eine Enumeration der CIECAM02-Parameter "Average", "Dim" oder "Dark" oder die tatsächlichen quantitativen Parameter aus der CIECAM02-Empfehlung c, Auswirkung der Umgebung.
Validierungsbedingungen: Der c-Parameter kann zwischen 0,525 und 0,69 liegen.
ViewingConditions
Dieses Element besteht aus den folgenden Unterelementen:
Element | type |
---|---|
Weißtons | WhitePointType |
Hintergrund | CIEXYZ |
Surround | SurroundType |
LuminanceOfAdaptingField | float |
DegreeOfAdaptation | float |
NormalizeToMediaWhitePoint | Boolean |
Validierungsbedingungen: CIEXYZ-Unterelemente werden durch NonNegativeXYZType überprüft. LuminanceOfAdaptingField ist maximal 10.000cd/m^2. Die DegreeOfAdaptation kann zwischen 0,0 und 1,0 liegen. Der NormalizeToMediaWhitePoint-Wert kann entweder "true" oder "false" sein. Wenn das Unterelement NormalizeToMediaWhitePoint nicht vorhanden ist, wird es standardmäßig auf "true" festgelegt. Weitere Informationen finden Sie im folgenden Camp-Algorithmusabschnitt.
WhitePointType
Dieses Element ist entweder eine Enumeration des CIE-Lichtquellenwerts ("D50", "D65", "A" oder "F2") oder ein CIEXYZ-Unterelement.
Validierungsbedingungen: Jedes Unterelement wird durch einen eigenen Typ überprüft.
CIEXYZType
Das CIEXYZType-Element besteht aus drei NonNegativeFloatType-IEEE-Gleitkommaelementen mit einer Genauigkeit mit den Namen "X", "Y" und "Z". Diese Messungen können entweder absolute (nicht relative) CIEXYZ 1931-Reflektierende Werte oder absolute (nicht relative) CIEXYZ 1931 direkte (transmissive) Werte in Candelas pro Quadratmeter-Einheiten sein.
Validierungsbedingungen: Dies bedeutet, dass nur reale Werte gültig sind und negative CIEXYZ-Messwerte ungültig sind. Da es sich um absolute Werte handelt, können die Werte weit über 1,0f liegen. Ein angemessenes Limit für jeden X-, Y- oder Z-Wert wird willkürlich auf 10000.0f festgelegt.
Der CAMP-Algorithmus
Das Color Appearance Model (CAM) basiert auf den CIE CIECAM02-Farbdarstellungsmodellgleichungen.
Diese Klasse implementiert die Modellierung der Farbdarstellung. Beachten Sie, dass die WCS CAM nicht ersetzbar ist, z. B. mithilfe eines Plug-Ins. Es ist ein Entwurfsziel, nur ein Farbdarstellungsmodell zu haben. Die CAM basiert auf CIECAM02-Empfehlungen.
CIECAM02 kann auf zwei Arten verwendet werden. In der Richtung colorimetric-to-appearance stellt es eine Zuordnung vom CIE XYZ-Raum zum Farbdarstellungsraum bereit. In der Darstellungs-zu-Farbmetrik wird der Farbdarstellungsraum wieder dem XYZ-Raum zugeordnet. Die Farbdarstellung korreliert Helligkeit, J, Chroma, C und Farbton, h. Diese drei Werte bilden ein zylindrisches Koordinatensystem. Häufig erweist es sich als bequemer, in einem rechteckigen Koordinatensystem zu arbeiten, also berechnen Sie a = C cos h und b = C sin h, um CIECAM02 Jab zu geben.
Sie können CAM-Helligkeitswerte größer als 100 verwenden. Das CIECAM02-Komitee befasste sich nicht mit dem Verhalten der Helligkeitsachse für Eingabewerte mit einer Leuchtdichte, die größer als der angenommene Weißpunkt ist; das heißt, für Eingabe-Y-Werte größer als der übernommene Weißpunkt-Y-Wert. Experimente haben gezeigt, dass sich die Luminanzgleichungen in CIECAM02 für solche Werte angemessen verhalten. Die Leichtigkeit steigt exponentiell und folgt demselben Exponenten (ungefähr 1/3).
Benutzer möchten manchmal ändern, wie der Anpassungsgrad (D) berechnet wird. Der WCS-Entwurf ermöglicht es Benutzern, diese Berechnung zu steuern, indem sie den GradOfadaptation-Wert in den Parametern der Anzeigebedingungen ändern.
Um eine konsistentere Übereinstimmung mit den icc-beeinflussten Erwartungen der Benutzer zu bieten, ist der GradOfAdaptation in den Standard-CAMPS 1,0. Dies führt zu besseren Ergebnissen in allen Anderen Fällen als MinCD Absolute, wobei WCS den GradOfAdaptation berechnen lassen möchte (über degreeOfAdaptation = -1).
Statt den Surroundwert "Average", "Dim" und "Dark" zu verwenden, wird ein fortlaufender Surroundwert bereitgestellt, der aus dem Wert c berechnet wird. Der Wert von c muss ein Gleitkomma zwischen 0,525 und 0,69 sein.
Aus c, Nc und F können mithilfe einer schrittweisen linearen Interpolation zwischen den Werten berechnet werden, die bereits für "Average", "Dim" und "Dark" bereitgestellt wurden. Diese modelliert, was in Abbildung 1 von CIE 159:2004, der CIECAM02-Spezifikation, dargestellt ist.
degreeOfAdaption | Verhalten |
---|---|
-1.0 |
Dies ist das Standardverhalten von CIECAM02. |
0,0 <= gradOfAdaption <= 1,0 | D = degreeOfAdaptation (der vom Benutzer angegebene Wert) |
Außerdem wurde der Implementierung eine bestimmte Anzahl von Fehlerüberprüfungen hinzugefügt. Die folgenden Gleichungszahlen werden in der CIECAM02-Definition von CIE 159:2004 verwendet.
ColorimetricToAppearanceColors
Die Eingabewerte werden auf Angemessenheit überprüft: Wenn X oder Z < 0,0 oder Y < -1,0 ist, ist das HRESULT E_INVALIDARG. Wenn -1,0 <= Y < 0,0 ist, sind J, C und h auf 0,0 festgelegt.
Es gibt bestimmte interne Bedingungen, die Zu Fehlerergebnissen führen können. Anstatt solche Ergebnisse zu erzeugen, werden die internen Ergebnisse beschnitten, um Werte im Bereich zu erzeugen. Dies geschieht für Spezifikationen von Farben, die dunkel und unerlaubt chromatisch wären: In Gleichung 7,23, wenn A0 < , A = 0. In Gleichung 7,26, wenn t < 0, t = 0.
AppearanceToColorimetricColors
Die Eingabewerte werden auf Angemessenheit überprüft. Wenn C < 0 , C > 300 oder J > 500 ist, ist das HRESULT E_INVALIDARG.
R'a;, G'a;, und B'a;, (Formeln 8,19 - 8,21) werden auf den Bereich 399,9 abgeschnitten.
Für alle Farbdarstellungsmodellprofile (CAMPs) untersucht die WCS-Engine den übernommenen Weißpunkt. Wenn Y nicht 100,0 ist, wird der angenommene Weiße Punkt skaliert, sodass Y gleich 100,0 ist. Die gleiche Skalierung wird auf den Hintergrundwert angewendet. Der Skalierungsfaktor ist 100.0/adoptWhitePoint.Y. Derselbe Skalierungsfaktor wird auf X, Y und Z angewendet. Wenn das Feld NormalizeToMediaWhitePoint auf "True" festgelegt ist oder im CAMP nicht vorhanden ist, skaliert die Engine auch alle Gerätefarbeneingaben auf DeviceToColorimetric, sodass der Y-Wert des Weißpunkts des Gerätemediums 100,0 entspricht. Gerätefarben, die aus ColorimetricToDevice stammen, werden durch die multiplikative Inverse dieses Skalierungsfaktors skaliert. Wenn das Flag NormalizeToMediaWhitePoint auf "False" festgelegt ist, werden die farbmetrischen Daten nicht skaliert.
Für einige Aufgaben ist es sinnvoll, die colorimetrischen Werte von DeviceToColorimetric zu skalieren. Die hyperbolischen Helligkeitsgleichungen im CAM sind wirklich für eine Weißpunktleuchtigkeit von 100,0 ausgelegt. Der einzige Ort, an dem ein Unterschied in der absoluten Leuchtdichte (oder Beleuchtungsstärke) ins Spiel kommt, ist die Leuchtdichte des adaptierenden Felds. Daher muss die CAM mit einem Weißpunkt Y von 100,0 initialisiert werden. Wenn jedoch der mittlere Weißpunkt des Gerätemodells als angenommener Weißpunkt verwendet wird, müssen alle Vom Gerät stammenden Farben entsprechend skaliert werden, oder das Gerät weiß wird nicht mit einem J-Wert von 100,0 angezeigt. Daher müssen die Y-Werte in den Messungen skaliert werden. Die Messwerte können vor der Initialisierung des Gerätemodells skaliert werden. Dann liegen die Ergebnisse bereits im richtigen Bereich. Dies würde jedoch das Testen des Gerätemodells erschweren, da für die herausgekommenen Werte eine Skalierung erforderlich wäre. Für Aufgaben, bei denen der mittlere Weißpunkt des Geräts als wahrer Weißpunkt wahrgenommen wird, ist eine Normalisierung durch den Medienweißpunkt des Geräts wünschenswert.
Die CAM wird direkt aus dem CAMP initialisiert. Dies ermöglicht Entwicklern eine gewisse Flexibilität bei der Initialisierung der CAM basierend auf der Aufgabe, die sie ausführen möchten. In einigen Aufgaben ignorieren Beobachter alle Chroma-Weißpunkte in den Medien, da sie kognitiv "wissen", dass die Quell- und Zielmedien "weiß" sind. In solchen Fällen sollten Entwickler die Vorwärts- und Inverse-CAMs mit ihren jeweiligen Medienweißpunkten initialisieren. In einigen Fällen vergleichen Beobachter möglicherweise die Farbe der Medienhintergründe. In diesen Fällen ist es ratsam, eine CAM für beide Geräte zu verwenden, und es kann wünschenswert sein, die farbmetrischen Werte jedes Geräts nicht anhand des mittleren Weißpunkts dieses Geräts zu skalieren. Dann führen die unterschiedlichen Tristimuluswerte der Medien zu unterschiedlichen Darstellungswerten in CIECAM02.