Schema e algoritmo del profilo del profilo del modello di aspetto colore WCS
Architettura camp (Color Appearance Model Profile)
Panoramica
Questo schema viene usato per specificare il contenuto di un profilo del modello di aspetto colore (CAMP). Gli algoritmi di base associati sono descritti nelle sezioni seguenti.
Camp è costituito da tag XML che forniscono valori parametrici alle variabili del modello di aspetto del colore di base CIECAM02. I dettagli sugli intervalli per i parametri sono disponibili nella specifica del modello di aspetto del colore di base e nella raccomandazione CIECAM02.
Architettura del profilo del modello aspetto colore
The 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>
Elementi dello schema CAMP
ColorAppearanceModel
Questo elemento è una sequenza di:
- Stringa ProfileName,
- stringa di descrizione facoltativa,
- facoltativa Stringa autore,
- Elemento ViewingConditions.
Condizioni di convalida: Ogni sottoelemento viene convalidato dal proprio tipo. Le lunghezze di stringa sono limitate a 10.000 caratteri.
Spazio dei nomi
xmlns:cam="http://schemas.microsoft.com/windows/2005/02/color/ColorAppearanceModel"
targetNamespace="http://schemas.microsoft.com/windows/2005/02/color/ColorAppearanceModel"
Versione
Versione >0.1 o <= "1.0" con la prima versione di Windows Vista.
Condizioni di convalida: Qualsiasi valore di <versione =2.0 è valido anche per supportare modifiche non di rilievo al formato.
Documentazione
Schema profilo modello aspetto colore.
Copyright (C) Microsoft. Tutti i diritti sono riservati.
Condizioni di convalida: Ogni sottoelemento viene convalidato dal proprio tipo.
SurroundType
Questo elemento è un'enumerazione dei parametri "Average", "Dim" o "Dark" CIECAM02 o dei parametri quantitativi effettivi della raccomandazione CIECAM02 c, impatto dell'elemento surround.
Condizioni di convalida: Il parametro c può variare da 0,525 a 0,69.
VisualizzazioneCondizioni
Questo elemento è costituito dai seguenti sottoelementi:
Elemento | Tipo |
---|---|
WhitePoint | WhitePointType |
Sfondo | CIEXYZ |
Surround | SurroundType |
LuminanceOfAdaptingField | float |
DegreeOfAdaptation | float |
NormalizeToMediaWhitePoint | Boolean |
Condizioni di convalida: Gli elementi secondari CIEXYZ vengono convalidati da NonNegativeXYZType. LuminanceOfAdaptingField è un massimo di 10.000cd/m^2. DegreeOfAdaptation può variare da 0,0 a 1,0. Il valore NormalizeToMediaWhitePoint può essere "true" o "false". Se il sottoelemento NormalizeToMediaWhitePoint è assente, il valore predefinito è "true". Vedere la sezione seguente dell'algoritmo CAMP.
WhitePointType
Questo elemento è un'enumerazione del valore sorgente di luce CIE ("D50", "D65", "A" o "F2") o un sottoelemento CIEXYZ.
Condizioni di convalida: Ogni sottoelemento viene convalidato dal proprio tipo.
CIEXYZType
L'elemento CIEXYZType è composto da tre elementi a virgola mobile IEEE a precisione singola NonNegativeFloatType, denominati "X", "Y" e "Z". Queste misurazioni possono essere valori assoluti (non relativi) CIEXYZ 1931 o valori assoluti (non relativi) CIEXYZ 1931 diretti (tramissivi) in candela per unità quadrate a metro.
Condizioni di convalida: Ciò significa che solo i valori reali sono validi e i valori di misura CIEXYZ negativi non sono validi. Poiché si tratta di valori assoluti, i valori possono variare ben oltre 1,0f. Un limite ragionevole per qualsiasi valore X, Y o Z verrà impostato arbitrariamente su 10000,0f.
Algoritmo CAMP
Il modello di aspetto dei colori (CAM) si basa sulle equazioni del modello di aspetto del colore CIE CIECAM02.
Questa classe implementa la modellazione dell'aspetto dei colori. Si noti che la CAM WCS non è sostituibile, ad esempio usando un plug-in. Si tratta di un obiettivo di progettazione per avere un solo modello di aspetto dei colori. La CAM si basa sulle raccomandazioni CIECAM02.
CIECAM02 può essere usato in due modi. Nella direzione colorimetrica-aspetto, fornisce un mapping dallo spazio CIE XYZ allo spazio aspetto colore. Nella direzione aspetto-colorimetrica, esegue il mapping dallo spazio aspetto colore allo spazio XYZ. L'aspetto del colore correla la leggerezza, J, cromatica, C e hue, h. Questi tre valori formano un sistema di coordinate cilindrico. Spesso risulta più comodo lavorare in un sistema di coordinate rettangolari, quindi calcolare a = C cos h e b = C sin h, per dare CIECAM02 Jab.
È possibile utilizzare valori di leggerezza CAM maggiori di 100. Il comitato CIE che ha formulato CIECAM02 non ha affrontato il comportamento dell'asse di leggerezza per i valori di input con una luminanza maggiore del punto bianco adottato; vale a dire, per i valori Y di input maggiori del valore Y punto bianco adottato. La sperimentazione ha dimostrato che le equazioni di dominanza in CIECAM02 si comportano ragionevolmente per tali valori. La leggerezza aumenta esponenzialmente e segue lo stesso esponente (approssimativamente 1/3).
A volte gli utenti vogliono modificare il modo in cui viene calcolato il grado di adattamento (D). La progettazione WCS consente agli utenti di controllare questo calcolo modificando il valore degreeOfadaptation nei parametri delle condizioni di visualizzazione.
Per fornire una corrispondenza più coerente alle aspettative influenzate dall'ICC degli utenti, il gradoOfAdaptation nei campi predefiniti è 1,0. In questo modo si ottengono risultati migliori in tutti i casi diversi da MinCD Absolute, dove si potrebbe voler calcolare il gradoOfAdaptation (tramite degreeOfAdaptation = -1).
Anziché usare un valore surround "Average", "Dim" e "Dark", viene fornito un valore surround continuo, calcolato dal valore c. Il valore di c deve essere un float compreso tra 0,525 e 0,69.
Da c, nc e F possono essere calcolati, usando l'interpolazione lineare a pezzi tra i valori già forniti per "Media", "Dim" e "Dark". Questo modello viene illustrato nella figura 1 di CIE 159:2004, la specifica CIECAM02.
degreeOfAdaption | Comportamento |
---|---|
-1.0 |
Si tratta del comportamento predefinito CIECAM02. |
0,0 = degreeOfAdaption <= 1,0 < | D = degreeOfAdaptation (il valore fornito dall'utente) |
È stata aggiunta anche una certa quantità di controllo degli errori all'implementazione. I numeri di equazione seguenti sono quelli usati nella definizione CIE 159:2004 di CIECAM02.
ColorimetricToAppearanceColors
I valori di input vengono controllati per la ragionevolezza: se X o Z < 0.0 o se Y < -1.0, hrESULT è E_INVALIDARG. Se -1.0 = Y < 0.0<, J, C e h sono tutti impostati su 0,0.
Esistono determinate condizioni interne che possono produrre risultati degli errori. Anziché produrre tali risultati, i risultati interni vengono ritagliati per produrre valori in intervallo. Ciò accade per le specifiche dei colori che sarebbero scuro e impossibmente cromatico: in equazione 7.23, se A < 0, A = 0. Nell'equazione 7.26, se t < 0, t = 0.
AppearanceToColorimetricColors
I valori di input vengono controllati per la ragionevolezza. Se C 0 , C <> 300 o J > 500, HRESULT è E_INVALIDARG.
R'a;, G'a;e B'a;, (equazioni 8.19 - 8.21) vengono ritagliate nell'intervallo 399.9 .
Per tutti i profili del modello di aspetto colore (CAMP), il motore WCS esaminerà il punto bianco adottato. Se Y non è 100,0, il punto bianco adottato verrà ridimensionato in modo che Y corrisponda a 100,0. Lo stesso ridimensionamento verrà applicato al valore di sfondo. Il fattore di ridimensionamento è 100.0/adottatoWhitePoint.Y. Lo stesso fattore di ridimensionamento viene applicato a ognuno di X, Y e Z. Se il campo NormalToMediaWhitePoint è impostato su "True" o se è assente dal CAMP, il motore ridimensiona anche l'input di tutti i colori del dispositivo su DeviceToColorimetric in modo che il valore Y del punto bianco del supporto del dispositivo sia uguale a 100.0. I colori del dispositivo provenienti da ColorimetricToDevice verranno ridimensionati dall'inverso moltiplicativo del fattore di ridimensionamento. Se il flag NormalToMediaWhitePoint è impostato su "False", i dati colorimetrici non vengono ridimensionati.
Per alcune attività, è consigliabile ridimensionare i valori colorimetrici provenienti da DeviceToColorimetric. Le equazioni di leggerezza iperboliche nella CAM sono davvero progettate per una virgola bianca di 100,0. L'unico posto in cui una differenza nella luminosità assoluta (o illuminanza) entra in gioco è la dominanza del campo di adattamento. Pertanto, la CAM deve essere inizializzata con un punto bianco Y pari a 100.0. Tuttavia, se il punto bianco medio del modello di dispositivo viene usato come punto bianco adottato, tutti i colori provenienti dal dispositivo devono essere ridimensionati di conseguenza o il bianco del dispositivo non verrà visualizzato con un valore J pari a 100,0. Quindi i valori Y devono essere ridimensionati nelle misurazioni. I valori di misura possono essere ridimensionati prima di inizializzare il modello di dispositivo. Quindi i risultati sarebbero già nell'intervallo appropriato. Ma ciò renderebbe il test del modello di dispositivo più difficile, perché i valori in uscita richiederebbero il ridimensionamento. Per le attività in cui il punto bianco medio del dispositivo viene percepito come un vero bianco, normalizzando il punto bianco del dispositivo è auspicabile.
La CAM viene inizializzata direttamente dal CAMP. Ciò consente agli sviluppatori una certa flessibilità nell'inizializzare la CAM, in base all'attività da eseguire. In alcune attività, gli osservatori ignorano qualsiasi croma nei punti vuoti multimediali, perché sanno in modo cognitivo che i supporti di origine e destinazione sono "bianchi". In questi casi, gli sviluppatori vogliono inizializzare le MACCHINE VIRTUALI in avanti e inversa con i rispettivi punti vuoti multimediali. In alcuni casi, gli osservatori possono confrontare il colore degli sfondi multimediali. In questi casi, è consigliabile usare una CAM per entrambi i dispositivi e potrebbe essere consigliabile non ridimensionare i valori colorimetrici di ogni dispositivo in base al punto bianco medio del dispositivo. I diversi valori tristimuli del supporto porteranno quindi a valori di aspetto diversi in CIECAM02.