Partager via


Algorithme et schéma de profil de modèle d’apparence de couleur WCS

Vue d'ensemble

Architecture camp (Color Appearance Model Profile)

Schéma CAMP

Éléments de schéma CAMP

Algorithme CAMP

Vue d’ensemble

Ce schéma est utilisé pour spécifier le contenu d’un profil de modèle d’apparence de couleur (CAMP). Les algorithmes de base de référence associés sont décrits dans les sections suivantes.

Le CAMP est composé de balises XML qui fournissent des valeurs paramétriques aux variables du modèle d’apparence de couleur de base CIECAM02. Des détails sur les plages de paramètres sont fournis dans la spécification du modèle d’apparence de couleur de base et la recommandation CIECAM02.

Architecture du profil de modèle d’apparence de couleur

Diagramme montrant l’architecture de profil CAMP faite de balises X ML.

Schéma 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>

Éléments de schéma CAMP

ColorAppearanceModel

Cet élément est une séquence de :

  1. Chaîne ProfileName,
  2. chaîne de description facultative,
  3. chaîne d’auteur facultative,
  4. Élément ViewingConditions.

Conditions de validation : Chaque sous-élément est validé par son propre type. Les longueurs de chaîne sont limitées à 10 000 caractères.

Espace de noms

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 ou <= « 1.0 » avec la première version de Windows Vista.

Conditions de validation : Toute valeur <de version =2.0 est également valide pour prendre en charge les modifications sans rupture du format.

Documentation

Schéma de profil du modèle d’apparence de couleur.

Copyright (C) Microsoft. Tous droits réservés.

Conditions de validation : Chaque sous-élément est validé par son propre type.

SurroundType

Cet élément est une énumération des paramètres CIECAM02 « Moyenne », « Dim » ou « Sombre » ou les paramètres quantitatifs réels de la recommandation CIECAM02 c, impact de l’environnement.

Conditions de validation : Le paramètre c peut être comprise entre 0,525 et 0,69.

AffichageConditions

Cet élément se compose des sous-éléments suivants :

Élément Type
Point blanc WhitePointType
Arrière-plan CIEXYZ
Entourent SurroundType
LuminanceOfAdaptingField float
DegreeOfAdaptation float
NormalizeToMediaWhitePoint Booléen

Conditions de validation : Les sous-éléments CIEXYZ sont validés par NonNegativeXYZType. Le LuminanceOfAdaptingField est un maximum de 10 000cd/m^2. La valeur DegreeOfAdaptation peut être comprise entre 0.0 et 1.0. La valeur NormalizeToMediaWhitePoint peut être « true » ou « false ». Si le sous-élément NormalizeToMediaWhitePoint est absent, la valeur par défaut est « true ». Consultez la section relative à l’algorithme CAMP suivante.

WhitePointType

Cet élément est une énumération de la valeur de source lumineuse CIE (« D50 », « D65 », « A » ou « F2 ») ou un sous-élément CIEXYZ.

Conditions de validation : Chaque sous-élément est validé par son propre type.

CIEXYZType

L’élément CIEXYZType est composé de trois éléments nonNegativeFloatType à virgule flottante IEEE à précision unique, nommés « X », « Y » et « Z ». Ces mesures peuvent être des valeurs réfléchissantes absolues (non relatives) CIEXYZ 1931 ou absolues (non relatives) des valeurs directes (transmissives) CIEXYZ 1931 en candelas par mètre d’unités au carré.

Conditions de validation : Cela signifie que seules les valeurs réelles sont valides et que les valeurs de mesure CIEXYZ négatives ne sont pas valides. Étant donné qu’il s’agit de valeurs absolues, les valeurs peuvent dépasser 1,0f. Une limite raisonnable pour toute valeur X, Y ou Z sera arbitrairement définie sur 10000.0f.

Algorithme CAMP

Le modèle d’apparence de couleur (CAM) est basé sur les équations du modèle d’apparence de couleur CIECAM02.

Cette classe implémente la modélisation de l’apparence des couleurs. Notez que le CAM WCS n’est pas remplaçable, par exemple à l’aide d’un plug-in. Il s’agit d’un objectif de conception d’avoir un seul modèle d’apparence de couleur. Le CAM est basé sur les recommandations de CIECAM02.

CIECAM02 peut être utilisé de deux façons. Dans le sens colorimétrique-apparence, il fournit un mappage de l’espace CIE XYZ à l’espace d’apparence de couleur. Dans le sens de l’apparence à la couleur, il est mappé de l’espace d’apparence des couleurs à l’espace XYZ. L’apparence de couleur met en corrélation la légèreté, J, chroma, C et teinte, h. Ces trois valeurs forment un système de coordonnées cylindrique. Souvent, il s’avère plus pratique de travailler dans un système de coordonnées rectangulaire, donc calculez a = C cos h et b = C sin h, pour donner CIECAM02 Jab.

Vous pouvez utiliser des valeurs de légèreté CAM supérieures à 100. Le comité CIE qui a formulé CIECAM02 n’a pas examiné le comportement de l’axe de luminosité pour les valeurs d’entrée avec une luminance supérieure au point blanc adopté; autrement dit, pour les valeurs Y d’entrée supérieures à la valeur Y de point blanc adoptée. L’expérimentation a montré que les équations de luminance dans CIECAM02 se comportent raisonnablement pour ces valeurs. La légèreté augmente de façon exponentielle et suit le même exposant (environ 1/3).

Les utilisateurs souhaitent parfois modifier la façon dont le degré d’adaptation (D) est calculé. La conception WCS permet aux utilisateurs de contrôler ce calcul en modifiant la valeur degreeOfadaptation dans les paramètres des conditions d’affichage.

Pour fournir une correspondance plus cohérente aux attentes des utilisateurs influencées par l’ICC, la valeur degreeOfAdaptation dans le camps par défaut est 1.0. Cela produit de meilleurs résultats dans tous les cas autres que MinCD Absolute, où l’on peut laisser WCS calculer le degré d’adaptation (via degreeOfAdaptation = -1).

Au lieu d’utiliser une valeur surround de « Moyenne », « Dim » et « Sombre », une valeur d’environnement continue, calculée à partir de la valeur c, est fournie. La valeur de c doit être un float compris entre 0,525 et 0,69.

À partir de c, Nc et F peuvent être calculés à l’aide de l’interpolation linéaire au niveau de la pièce entre les valeurs déjà fournies pour « Moyenne », « Dim » et « Sombre ». Cela modélise ce qui est illustré dans la figure 1 de CIE 159:2004, la spécification CIECAM02.

degreeOfAdaption Comportement
-1.0 Affiche une formule pour le comportement C I E C A M 02 par défaut. Il s’agit du comportement CIECAM02 par défaut.
0,0 <= degreeOfAdaption <= 1,0 D = degreeOfAdaptation (valeur fournie par l’utilisateur)

Une certaine quantité de vérification des erreurs a également été ajoutée à l’implémentation. Les nombres d’équations suivants sont ceux utilisés dans la définition CIE 159:2004 de CIECAM02.

ColorimetricToAppearanceColors

Les valeurs d’entrée sont vérifiées pour vérifier le caractère raisonnable : si X ou Z < 0.0, ou si Y < -1.0, le HRESULT est E_INVALIDARG. Si -1.0 <= Y < 0.0, J, C et h sont tous définis sur 0.0.

Certaines conditions internes peuvent produire des résultats d’erreur. Au lieu de produire de tels résultats, les résultats internes sont clippés pour produire des valeurs dans la plage. Cela se produit pour les spécifications de couleurs qui seraient sombres et impossiblement chromatiques : Dans l’équation 7.23, si A < 0, A = 0. Dans l’équation 7.26, si t < 0, t = 0.

AppearanceToColorimetricColors

Le caractère raisonnable des valeurs d’entrée est vérifié. Si C < 0 , C > 300 ou J > 500, le HRESULT est E_INVALIDARG.

R’a;, G’a;, et B’a;, (équations 8.19 - 8.21) sont coupés à la plage 399,9 .

Pour tous les profils de modèle d’apparence de couleur (CAMP), le moteur WCS examine le point blanc adopté. Si Y n’est pas 100,0, le point blanc adopté est mis à l’échelle de sorte que Y soit égal à 100,0. La même mise à l’échelle sera appliquée à la valeur d’arrière-plan. Le facteur de mise à l’échelle est 100.0/adoptedWhitePoint.Y. Le même facteur de mise à l’échelle est appliqué à chaque X, Y et Z. Si le champ NormalizeToMediaWhitePoint est défini sur « True », ou s’il est absent du CAMP, le moteur met également à l’échelle toutes les couleurs d’appareil entrées sur DeviceToColorimetric afin que la valeur Y du point blanc du média de l’appareil soit égale à 100,0. Les couleurs d’appareil provenant de ColorimetricToDevice sont mises à l’échelle selon l’inverse multiplicatif de ce facteur de mise à l’échelle. Si l’indicateur NormalizeToMediaWhitePoint est défini sur « False », les données colorimétriques ne sont pas mises à l’échelle.

Pour certaines tâches, il est judicieux de mettre à l’échelle les valeurs colorimétriques provenant de DeviceToColorimetric. Les équations de légèreté hyperbolique dans le CAM sont vraiment conçues pour une luminosité de point blanc de 100,0. Le seul endroit où une différence dans la luminance absolue (ou illuminance) entre en jeu est dans la luminosité du champ d’adaptation. Par conséquent, le CAM doit être initialisé avec un point blanc Y de 100,0. Toutefois, si le point blanc moyen du modèle d’appareil est utilisé comme point blanc adopté, toutes les couleurs provenant de l’appareil doivent être mises à l’échelle en conséquence, sinon le blanc de l’appareil ne sortira pas avec une valeur J de 100,0. Les valeurs Y doivent donc être mises à l’échelle dans les mesures. Les valeurs de mesure peuvent être mises à l’échelle avant l’initialisation du modèle d’appareil. Les résultats seraient alors déjà dans la plage appropriée. Mais cela compliquerait le test du modèle d’appareil, car les valeurs sortantes nécessiteraient une mise à l’échelle. Pour les tâches dans lesquelles le point blanc moyen de l’appareil est perçu comme un vrai blanc, la normalisation par le point blanc du média de l’appareil est souhaitable.

Le CAM est initialisé directement à partir du CAMP. Cela permet aux développeurs une certaine flexibilité dans l’initialisation de la CAM, en fonction de la tâche qu’ils souhaitent effectuer. Dans certaines tâches, les observateurs ignorent toute couleur dans les points blancs du média, car ils « savent » cognitivement que les médias source et de destination sont « blancs ». Dans ce cas, les développeurs souhaitent initialiser les cams avant et inverse avec leurs points blancs multimédias respectifs. Dans certains cas, les observateurs peuvent comparer la couleur des arrière-plans multimédias. Dans ce cas, il est recommandé d’utiliser une seule CAM pour les deux appareils, et il peut être souhaitable de ne pas mettre à l’échelle les valeurs colorimétriques de chaque appareil en fonction du point blanc moyen de cet appareil. Ensuite, les différentes valeurs tristimulus du média entraînent des valeurs d’apparence différentes dans CIECAM02.

Concepts de base de la gestion des couleurs

Schémas et algorithmes du système de couleurs Windows