Schema och algoritm för WCS-färgutseendemodellprofil

Översikt

arkitektur för camp-arkitektur (Color Appearance Model Profile)

CAMP-schemat

CAMP-schemaelementen

CAMP-algoritmen

Överblick

Det här schemat används för att ange innehållet i en profil för färgutseendemodell (CAMP). De associerade baslinjealgoritmerna beskrivs i följande avsnitt.

CAMP består av XML-taggar som ger parametriska värden till CIECAM02 modellvariabler för baslinjefärg. Information om parametrarnas intervall finns i modellspecifikationen för baslinjefärgens utseende och CIECAM02 rekommendation.

Profilarkitektur för färgutseendemodell

diagram som visar CAMP-profilarkitekturen i X M L-taggar.

CAMP-schemat

<?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-schemaelementen

ColorAppearanceModel

Det här elementet är en sekvens med:

  1. ProfileName-sträng,
  2. valfri beskrivningssträng,
  3. valfri redigeringssträng,
  4. ViewingConditions-element.

valideringsvillkor: Varje underelement verifieras av sin egen typ. Stränglängder är begränsade till 10 000 tecken.

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 eller <= "1.0" med den första versionen av Windows Vista.

verifieringsvillkor: Alla versionsvärden <=2.0 är också giltiga för att stödja icke-icke-bakåtkompatibla ändringar i formatet.

Dokumentation

Schema för profil för färgutseendemodell.

Copyright (C) Microsoft. Alla rättigheter reserverade.

valideringsvillkor: Varje underelement verifieras av sin egen typ.

SurroundType

Det här elementet är antingen en uppräkning av parametrarna "Average", "Dim" eller "Dark" CIECAM02 eller de faktiska kvantitativa parametrarna från CIECAM02 rekommendation c, påverkan av surround-objektet.

verifieringsvillkor: Parametern c kan variera från 0,525 till 0,69.

ViewingConditions

Det här elementet består av följande underelement:

Element Typ
WhitePoint WhitePointType
Bakgrund CIEXYZ
Omgiva SurroundType
LuminanceOfAdaptingField flyta
DegreeOfAdaptation flyta
NormalizeToMediaWhitePoint Boolesk

verifieringsvillkor: CIEXYZ-underelement verifieras av NonNegativeXYZType. LuminanceOfAdaptingField är högst 10 000cd/m^2. DegreeOfAdaptation kan variera från 0,0 till 1,0. Värdet NormalizeToMediaWhitePoint kan vara antingen "true" eller "false". Om underelementet NormalizeToMediaWhitePoint saknas är det i praktiken standardvärdet "sant". Se följande CAMP-algoritmavsnitt.

WhitePointType

Det här elementet är antingen en uppräkning av CIE-ljuskällans värde ("D50", "D65", "A" eller "F2") eller ett CIEXYZ-underelement.

valideringsvillkor: Varje underelement verifieras av sin egen typ.

CIEXYZType

CIEXYZType-elementet består av tre NonNegativeFloatType-element med enkel precision i IEEE-flyttalselement med namnet "X", "Y" och "Z". Dessa mätningar kan vara antingen absoluta (inte relativa) CIEXYZ 1931 reflekterande värden eller absoluta (inte relativa) CIEXYZ 1931 direkta (transmissiva) värden i candelas per kvadratmeter kvadratenheter.

valideringsvillkor: Det innebär att endast verkliga värden är giltiga och att negativa CIEXYZ-måttvärden är ogiltiga. Eftersom det här är absoluta värden kan värden sträcka sig långt bortom 1,0f. En rimlig gräns för alla X-, Y- eller Z-värden anges godtyckligt till 10000,0f.

CAMP-algoritmen

Modellen för färgutseende (CAM) baseras på CIE-CIECAM02 färgutseendemodellekvationer.

Den här klassen implementerar modellering av färgutseende. Observera att WCS CAM inte utbytbar, till exempel med hjälp av ett plugin-program. Det är ett designmål att bara ha en färgutseendemodell. CAM baseras på CIECAM02 rekommendationer.

CIECAM02 kan användas på två sätt. I riktningen colorimetric-to-appearance tillhandahåller den en mappning från CIE XYZ-utrymme till färgutseendeutrymme. I den utseende-till-colorimetric riktningen mappar den från färg utseende utrymme tillbaka till XYZ utrymme. Färgutseendet korrelerar ljushet, J, kroma, C och nyans, h. Dessa tre värden utgör ett cylindriskt koordinatsystem. Ofta visar det sig vara bekvämare att arbeta i ett rektangulärt koordinatsystem, så beräkna a = C cos h och b = C sin h, för att ge CIECAM02 Jab.

Du kan använda CAM-ljushetsvärden som är större än 100. Den CIE-kommitté som formulerade CIECAM02 tog inte upp beteendet hos ljushetsaxeln för indatavärden med en luminans som är större än den antagna vita punkten; för indata Y-värden som är större än det antagna värdet för vit punkt Y. Experimentering har visat att luminansekvationerna i CIECAM02 beter sig rimligt för sådana värden. Ljusheten ökar exponentiellt och följer samma exponent (ungefär 1/3).

Användare vill ibland ändra hur graden av anpassning (D) beräknas. WCS-designen gör det möjligt för användare att styra den här beräkningen genom att ändra värdet degreeOfadaptation i parametrarna för visningsvillkor.

För att ge en mer konsekvent matchning till användarnas ICC-påverkade förväntningar är degreeOfAdaptation i standardlägren 1.0. Detta ger bättre resultat i alla andra fall än MinCD Absolute, där man kanske vill låta WCS beräkna degreeOfAdaptation (via degreeOfAdaptation = -1).

I stället för att använda ett surroundvärde för "Average", "Dim" och "Dark" tillhandahålls ett kontinuerligt surroundvärde som beräknas från värdet c. Värdet för c måste vara en flyttal mellan 0,525 och 0,69.

Från ckan Nc och F beräknas med hjälp av linjär interpolation mellan de värden som redan anges för "Average", "Dim" och "Dark". Det här modellerar det som visas i bild 1 av CIE 159:2004, CIECAM02-specifikationen.

degreeOfAdaption Uppförande
-1.0 Visar en formel för standardbeteendet C I E C A M 02. Det här är standardbeteendet för CIECAM02.
0,0 <= degreeOfAdaption <= 1,0 D = degreeOfAdaptation (värdet som tillhandahålls av användaren)

En viss mängd felkontroll har också lagts till i implementeringen. Följande ekvationsnummer är de som används i definitionen CIE 159:2004 av CIECAM02.

ColorimetricToAppearanceColors

Indatavärdena kontrolleras efter rimlighet: Om X eller Z < 0.0, eller om Y < -1.0, är HRESULT E_INVALIDARG. Om -1,0 <= Y < 0,0 är J, C och h alla inställda på 0,0.

Det finns vissa interna villkor som kan ge felresultat. I stället för att generera sådana resultat klipps de interna resultaten bort för att generera värden inom intervallet. Detta händer för specifikationer för färger som skulle vara mörka och omöjligt kromatiska: I ekvation 7.23, om A < 0, A = 0. I ekvation 7.26, om t < 0, t = 0.

AppearanceToColorimetricColors

Indatavärdena kontrolleras efter rimlighet. Om C < 0 , C > 300 eller J > 500 är HRESULT E_INVALIDARG.

R'a;, G'a;, och B"a;, (ekvationerna 8.19 – 8.21) klipps till intervallet 399.9 .

För alla profiler för färgutseendemodell (CAMP: er) undersöker WCS-motorn den antagna vitpunkten. Om Y inte är 100,0 skalas den antagna vitpunkten så att Y är lika med 100,0. Samma skalning tillämpas på bakgrundsvärdet. Skalningsfaktorn är 100.0/adoptWhitePoint.Y. Samma skalningsfaktor tillämpas på var och en av X, Y och Z. Om fältet NormalizeToMediaWhitePoint är inställt på "True" eller om det saknas från CAMP skalar motorn även alla enhetsfärger som matas in till DeviceToColorimetric så att Y-värdet för enhetens medievitpunkt är lika med 100,0. Enhetsfärger som kommer från ColorimetricToDevice skalas av den multiplicativa inverteringen av den skalningsfaktorn. Om flaggan NormalizeToMediaWhitePoint är inställd på "False" skalas inte färgmetriska data.

För vissa uppgifter är det klokt att skala de colorimetric-värden som kommer från DeviceToColorimetric. De hyperboliska ljushetsekvationerna i CAM är verkligen utformade för en vit punktluminans på 100,0. Den enda plats där en skillnad i absolut luminans (eller belysning) spelar in är i anpassningsfältets luminans. Cam måste därför initieras med en vit punkt Y på 100,0. Men om enhetsmodellens medelvita punkt används som den antagna vitpunkten måste alla färger som kommer från enheten skalas i enlighet med detta, annars visas inte vit enhet med ett J-värde på 100,0. Därför måste Y-värdena skalas i måtten. Mätvärdena kan skalas innan enhetsmodellen initieras. Då skulle resultatet redan vara inom rätt intervall. Men det skulle göra det svårare att testa enhetsmodellen eftersom de värden som kommer ut skulle kräva skalning. För uppgifter där enhetens medelvita punkt uppfattas som en sann vit, är normalisering av enhetens medievitpunkt önskvärd.

CAM initieras direkt från CAMP. Detta ger utvecklare viss flexibilitet när det gäller att initiera CAM, baserat på den uppgift de vill utföra. I vissa uppgifter ignorerar observatörer alla krom i medievitpunkterna, eftersom de kognitivt "vet" att käll- och målmedierna är "vita". I sådana fall vill utvecklare initiera de framåtriktade och omvända CAM:erna med sina respektive medievitpunkter. I vissa fall kan observatörer jämföra mediebakgrundens färg. I dessa fall är det lämpligt att använda en CAM för båda enheterna, och det kan vara önskvärt att inte skala varje enhets colorimetric-värden efter enhetens medelvita punkt. Sedan leder mediets olika tristimulusvärden till olika utseendevärden i CIECAM02.

Grundläggande begrepp för färghantering

Scheman och algoritmer för Windows-färgsystem