Partager via


Schéma et algorithme du modèle d’apparence des couleurs WCS

Vue d’ensemble

Architecture modèle d’apparence de couleur (CAMP)

le de schéma CAMP

Les éléments de schéma CAMP

l’algorithme CAMP

Aperçu

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

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

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

Diagramme montrant l’architecture de profil CAMP composée de balises X M L.

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.

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 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 non cassants apportées au format.

Documentation

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

Copyright (C) Microsoft. Tous les 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 de paramètres « Average », « Dim » ou « Dark » CIECAM02 paramètres ou les paramètres quantitatifs réels de la recommandation c CIECAM02, impact de l’environnement.

conditions de validation : Le paramètre c peut passer de 0,525 à 0,69.

AffichageConditions

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

Élément Type
WhitePoint WhitePointType
Arrière-plan CIEXYZ
Entourer SurroundType
LuminanceOfAdaptingField flotter
DegreeOfAdaptation flotter
NormalizeToMediaWhitePoint Booléen

conditions de validation : sous-éléments CIEXYZ sont validés par NonNegativeXYZType. Le LuminanceOfAdaptingField est un maximum de 10 000cd/m^2. DegreeOfAdaptation peut aller de 0,0 à 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 suivante de l’algorithme CAMP.

WhitePointType

Cet élément est une énumération de la valeur de source de lumière 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 se compose de trois éléments à virgule flottante IEEE à précision unique nonNegativeFloatType, nommés « X », « Y » et « Z ». Ces mesures peuvent être des valeurs ciEXYZ absolues (non relatives) CIEXYZ 1931 ou absolues (non relatives) CIEXYZ 1931 directes (transmissives) en unités carrées de candelas par mètre.

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 1 0000,0f.

Algorithme CAMP

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

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

CIECAM02 pouvez être utilisé de deux manières. Dans la direction colorimétrique à apparence, il fournit un mappage de l’espace CIE XYZ à l’espace d’apparence de couleur. Dans la direction d’apparence à colorimétrique, il est mappé de l’espace d’apparence de couleur à l’espace XYZ. L’apparence de couleur met en corrélation la légèreté, J, chroma, C et hue, h. Ces trois valeurs forment un système de coordonnées circulaires. 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 traité le comportement de l’axe de légèreté pour les valeurs d’entrée avec une luminosité 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 luminosité dans CIECAM02 se comportent raisonnablement pour ces valeurs. La légèreté augmente de façon exponentielle et suit le même exposant (à peu près 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 de conditions d’affichage.

Pour fournir une correspondance plus cohérente avec les attentes influencées par l’ICC des utilisateurs, le degréOfAdaptation dans les 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 vouloir laisser WCS calculer le degréOfAdaptation (via degreeOfAdaptation = -1).

Au lieu d’utiliser une valeur d’entoure de « Moyenne », « Dim » et « Sombre », une valeur d’entoure 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 d’une interpolation linéaire à l’aide des valeurs déjà fournies pour « Moyenne », « Dim » et « Dark ». Ce modèle montre 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 de 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 de façon 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 coupés pour produire des valeurs dans la plage. Cela se produit pour les spécifications des 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

Les valeurs d’entrée sont vérifiées pour une raison raisonnable. Si C < 0 , C > 300 ou J > 500, le HRESULT est E_INVALIDARG.

R'a ;, G'a ;et B ;, (équations 8.19 - 8.21) sont clippées à 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é sera mis à l’échelle afin que Y soit égal à 100,0. La même mise à l’échelle sera appliquée à la valeur en arrière-plan. Le facteur de mise à l’échelle est 100.0/adoptWhitePoint.Y. Le même facteur de mise à l’échelle est appliqué à chacun des X, Y et Z. Si le champ NormalizeToMediaWhitePoint a la valeur « True » ou s’il est absent du camp, le moteur met également à l’échelle toutes les couleurs d’appareil en DeviceToColorimetric afin que la valeur Y du point blanc du média de l’appareil soit égale à 100,0. Les couleurs de l’appareil provenant de ColorimetricToDevice sont mises à l’échelle par l’inverse multiplicative de ce facteur de mise à l’échelle. Si l’indicateur NormalizeToMediaWhitePoint a la valeur « 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 la 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 l’illuminance) entre en jeu est dans la luminosité du champ d’adaptation. Par conséquent, la CAM doit être initialisée avec un point blanc Y de 100,0. Mais 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, ou le blanc de l’appareil ne sera pas sorti 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 d’initialiser le modèle d’appareil. Les résultats seraient alors déjà dans la plage appropriée. Mais cela rend le test du modèle d’appareil plus difficile, car les valeurs sortantes nécessitent 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 support de l’appareil est souhaitable.

Le CAM est initialisé directement à partir du CAMP. Cela permet aux développeurs d’avoir 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 multimédias, 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 inverses avec leurs points blancs multimédias respectifs. Dans certains cas, les observateurs peuvent comparer la couleur des arrière-plans multimédias. Dans ces cas, il est conseillé d’utiliser une cam pour les deux appareils, et il peut être souhaitable de ne pas mettre à l’échelle les valeurs colorimétriques de chaque appareil par le point blanc moyen de cet appareil. Ensuite, les différentes valeurs tristimulus du média entraînent différentes valeurs d’apparence dans CIECAM02.

concepts de gestion des couleurs de base

schémas et algorithmes de système de couleurs Windows