Algoritmo y esquema de perfil del modelo de apariencia de color de WCS

Información general

Arquitectura del perfil del modelo de apariencia de color (CAMP)

Esquema CAMP

Elementos de esquema CAMP

Algoritmo CAMP

Información general

Este esquema se usa para especificar el contenido de un perfil de modelo de apariencia de color (CAMP). Los algoritmos de línea base asociados se describen en las secciones siguientes.

El CAMP se compone de etiquetas XML que proporcionan valores paramétricos a las variables del modelo de apariencia de color de línea base CIECAM02. Los detalles sobre los intervalos de parámetros se proporcionan en la especificación del modelo de apariencia de color de línea base y la recomendación CIECAM02.

Arquitectura del perfil del modelo de apariencia de color

Diagrama en el que se muestra la arquitectura de perfil camp hecha de etiquetas X M L.

Esquema 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>

Elementos de esquema CAMP

ColorAppearanceModel

Este elemento es una secuencia de:

  1. Cadena ProfileName,
  2. cadena de descripción opcional,
  3. cadena de autor opcional,
  4. Elemento ViewingConditions.

Condiciones de validación: Cada sub-elemento se valida por su propio tipo. Las longitudes de cadena están limitadas a 10 000 caracteres.

Espacio de nombres

xmlns:cam="http://schemas.microsoft.com/windows/2005/02/color/ColorAppearanceModel"

targetNamespace="http://schemas.microsoft.com/windows/2005/02/color/ColorAppearanceModel"

Versión

Versión >0.1 o <= "1.0" con la primera versión de Windows Vista.

Condiciones de validación: Cualquier valor <de versión =2.0 también es válido para admitir cambios no importantes en el formato.

Documentación

Esquema de perfil del modelo de apariencia de color.

Copyright (C) Microsoft. Todos los derechos reservados.

Condiciones de validación: Cada sub-elemento se valida por su propio tipo.

SurroundType

Este elemento es una enumeración de parámetros "Average", "Dim" o "Dark" CIECAM02 o los parámetros cuantitativos reales de la recomendación CIECAM02 c, impacto del entorno.

Condiciones de validación: El parámetro c puede oscilar entre 0,525 y 0,69.

VerConditions

Este elemento consta de los siguientes subelementos:

Elemento Tipo
WhitePoint WhitePointType
Información previa CIEXYZ
Rodean SurroundType
LuminanceOfAdaptingField FLOAT
DegreeOfAdaptation FLOAT
NormalizeToMediaWhitePoint Boolean

Condiciones de validación: Los subelementos CIEXYZ se validan mediante NonNegativeXYZType. LuminanceOfAdaptingField es un máximo de 10 000cd/m^2. DegreeOfAdaptation puede oscilar entre 0,0 y 1,0. El valor normalizeToMediaWhitePoint puede ser "true" o "false". Si el sub-elemento NormalizeToMediaWhitePoint no está presente, el valor predeterminado es "true". Consulte la siguiente sección del algoritmo CAMP.

WhitePointType

Este elemento es una enumeración del valor de fuente de luz CIE ("D50", "D65", "A" o "F2") o un sub-elemento CIEXYZ.

Condiciones de validación: Cada sub-elemento se valida por su propio tipo.

CIEXYZType

El elemento CIEXYZType se compone de tres elementos de punto flotante IEEE de precisión sencilla NonNegativeFloatType, denominados "X", "Y" y "Z". Estas medidas pueden ser valores absolutos (no relativos) CIEXYZ 1931 reflectantes o valores CIEXYZ absolutos (no relativos) CIEXYZ 1931 directo (transmisivo) en candelas por unidades cuadradas de medidor.

Condiciones de validación: Esto significa que solo los valores reales son válidos y los valores de medida de CIEXYZ negativos no son válidos. Dado que son valores absolutos, los valores pueden oscilar mucho más allá de 1,0f. Un límite razonable para cualquier valor X, Y o Z se establecerá arbitrariamente en 10000,0f.

Algoritmo CAMP

El modelo de apariencia de color (CAM) se basa en las ecuaciones del modelo de apariencia de color CIE CIECAM02.

Esta clase implementa el modelado de apariencia de color. Tenga en cuenta que la CAM de WCS no es reemplazable, por ejemplo, mediante un complemento. Es un objetivo de diseño tener solo un modelo de apariencia de color. El CAM se basa en las recomendaciones de CIECAM02.

CIECAM02 se puede utilizar de dos maneras. En la dirección colorimétrica a apariencia, proporciona una asignación del espacio XYZ de CIE al espacio de apariencia de color. En la dirección de la apariencia a colorimétrica, se asigna del espacio de apariencia de color al espacio XYZ. La apariencia del color correlaciona la ligereza, J, cromática, C y matiz, h. Estos tres valores forman un sistema de coordenadas cilíndrica. Con frecuencia, resulta ser más conveniente trabajar en un sistema de coordenadas rectangular, por lo que calcular a = C cos h y b = C sin h, para dar a CIECAM02 Jab.

Puede usar valores de ligereza CAM mayores que 100. El comité CIE que formuló CIECAM02 no abordaba el comportamiento del eje de ligereza para los valores de entrada con una luminancia mayor que el punto blanco adoptado; es decir, para los valores Y de entrada mayores que el valor Y del punto blanco adoptado. La experimentación ha demostrado que las ecuaciones de luminancia en CIECAM02 se comportan razonablemente para estos valores. La ligereza aumenta exponencialmente y sigue el mismo exponente (aproximadamente 1/3).

A veces, los usuarios quieren cambiar la forma en que se calcula el grado de adaptación (D). El diseño de WCS permite a los usuarios controlar este cálculo cambiando el valor degreeOfadaptation en los parámetros de condiciones de visualización.

Para proporcionar una coincidencia más coherente con las expectativas influidas por la ICC de los usuarios, el degreeOfAdaptation en el valor predeterminado de CAMPS es 1.0. Esto produce mejores resultados en todos los casos distintos de MinCD Absolute, donde es posible que quiera permitir que WCS calcule el degreeOfAdaptation (a través de degreeOfAdaptation = -1).

En lugar de usar un valor envolvente de "Average", "Dim" y "Dark", se proporciona un valor envolvente continuo, calculado a partir del valor c. El valor de c debe ser un valor float entre 0,525 y 0,69.

Desde c, Nc y F se pueden calcular mediante interpolación lineal por partes entre los valores ya proporcionados para "Average", "Dim" y "Dark". Esto modela lo que se muestra en la figura 1 de CIE 159:2004, la especificación CIECAM02.

degreeOfAdaption Comportamiento
-1.0 Muestra una fórmula para el comportamiento predeterminado de C I E C A M 02. Este es el comportamiento predeterminado de CIECAM02.
0,0 <= degreeOfAdaption <= 1,0 D = degreeOfAdaptation (el valor proporcionado por el usuario)

También se ha agregado una cierta cantidad de comprobación de errores a la implementación. Los números de ecuación siguientes son los usados en la definición CIE 159:2004 de CIECAM02.

ColorimetricToAppearanceColors

Los valores de entrada se comprueban si son razonables: si X o Z < 0,0, o si Y < -1,0, hrESULT se E_INVALIDARG. Si -1.0 <= Y < 0.0, J, C y h se establecen en 0,0.

Hay ciertas condiciones internas que pueden producir resultados de error. En lugar de generar estos resultados, los resultados internos se recortan para generar valores en el intervalo. Esto sucede para las especificaciones de colores que serían oscuros e imposibilitados cromáticos: en la ecuación 7.23, si A < 0, A = 0. En la ecuación 7.26, si t < 0, t = 0.

AppearanceToColorimetricColors

Los valores de entrada se comprueban si son razonables. Si C < 0 , C > 300 o J > 500, el HRESULT se E_INVALIDARG.

R'a;, G'a;, y B'a;, (ecuaciones 8.19 - 8.21) se recortan en el intervalo 399.9 .

Para todos los perfiles de modelo de apariencia de color (CAMP), el motor WCS examinará el punto blanco adoptado. Si Y no es 100,0, el punto blanco adoptado se escalará para que Y sea igual a 100,0. El mismo escalado se aplicará al valor en segundo plano. El factor de escalado es 100.0/adoptedWhitePoint.Y. El mismo factor de escalado se aplica a cada uno de X, Y y Z. Si el campo NormalizeToMediaWhitePoint se establece en "True", o si no está presente en el CAMP, el motor también escala todas las entradas de colores del dispositivo a DeviceToColorimetric para que el valor Y del punto blanco multimedia del dispositivo sea igual a 100.0. Los colores del dispositivo procedentes de ColorimetricToDevice se escalarán mediante el inverso multiplicativo de ese factor de escalado. Si la marca NormalizeToMediaWhitePoint está establecida en "False", los datos de colorimétricos no se escalan.

Para algunas tareas, tiene sentido escalar los valores de colorimétricos procedentes de DeviceToColorimetric. Las ecuaciones de ligereza hiperbólica en la CAM están realmente diseñadas para una luminancia de punto blanco de 100,0. El único lugar donde entra en juego una diferencia en la luminancia absoluta (o iluminación) está en juego en la luminancia del campo de adaptación. Por lo tanto, la CAM debe inicializarse con un punto blanco Y de 100,0. Pero si el punto blanco medio del modelo de dispositivo se usa como punto blanco adoptado, todos los colores procedentes del dispositivo se deben escalar en consecuencia, o el blanco del dispositivo no aparecerá con un valor J de 100,0. Por lo tanto, los valores Y deben escalarse en las medidas. Los valores de medida se pueden escalar antes de inicializar el modelo de dispositivo. Los resultados ya estarían en el intervalo adecuado. Pero eso haría que la prueba del modelo de dispositivo fuera más difícil, ya que los valores que salen requerirían el escalado. En el caso de las tareas en las que se percibe que el punto blanco medio del dispositivo es un blanco verdadero, es deseable normalizar por el punto blanco del medio del dispositivo.

La CAM se inicializa directamente desde el CAMP. Esto permite a los desarrolladores cierta flexibilidad al inicializar la CAM, en función de la tarea que desean realizar. En algunas tareas, los observadores omitirán cualquier cromática en los puntos blancos multimedia, ya que "saben" cognitivamente que los medios de origen y destino son "blancos". En tales casos, los desarrolladores querrán inicializar las CAM inversas y reenviadas con sus respectivos puntos en blanco multimedia. En algunos casos, los observadores pueden comparar el color de los fondos multimedia. En estos casos, es aconsejable usar una CAM para ambos dispositivos, y puede ser conveniente no escalar los valores colorimétricos de cada dispositivo por el punto blanco medio del dispositivo. A continuación, los diferentes valores tristimulus del medio darán lugar a diferentes valores de apariencia en CIECAM02.

Conceptos básicos de administración de colores

Algoritmos y esquemas del Sistema de colores de Windows