Compartir a través de


Esquema y algoritmo del perfil del modelo de apariencia de color WCS

información general

arquitectura de perfil de modelo de apariencia de color (CAMP)

la de esquema CAMP

los elementos de esquema CAMP

el algoritmo CAMP

Visió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 CIECAM02 recomendación.

Arquitectura del perfil del modelo de apariencia de color

Diagrama que muestra la arquitectura del perfil CAMP hecha de etiquetas X M L.

El 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 del 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 sublemento se valida por su propio tipo. Las longitudes de cadena están limitadas a 10 000 caracteres.

Namespace

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 sublemento se valida por su propio tipo.

SurroundType

Este elemento es una enumeración de "Average", "Dim" o "Dark" CIECAM02 parámetros o los parámetros cuantitativos reales de la recomendación c de CIECAM02, 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 elementos secundarios siguientes:

Elemento Tipo
WhitePoint WhitePointType
Fondo CIEXYZ
Rodear SurroundType
LuminanceOfAdaptingField flotar
DegreeOfAdaptation flotar
NormalizeToMediaWhitePoint Booleano

Condiciones de validación: sub-elementos 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 subelemento NormalizeToMediaWhitePoint está ausente, 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 sublemento se valida por su propio tipo.

CIEXYZType

El elemento CIEXYZType se compone de tres elementos de punto flotante IEEE de precisión única nonNegativeFloatType, denominados "X", "Y" y "Z". Estas medidas pueden ser valores absolutos (no relativos) ciEXYZ 1931 reflectantes o valores 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.

El algoritmo CAMP

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

Esta clase implementa el modelado de apariencia de color. Tenga en cuenta que el 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. La CAM se basa en CIECAM02 recomendaciones.

CIECAM02 se pueden usar de dos maneras. En la dirección colorimetric-to-appearance, 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 CIECAM02 Jab.

Puede usar valores de luz CAM mayores que 100. El comité de CIE que formuló CIECAM02 no abordaba el comportamiento del eje de luz 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 las condiciones de visualización.

Para proporcionar una coincidencia más coherente con las expectativas influenciadas por la ICC de los usuarios, el gradoOfAdaptation en el valor predeterminado 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 es E_INVALIDARG. Si -1.0 <= Y < 0,0, J, C y h están establecidos 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 imposiblemente 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 por motivos razonables. Si C < 0 , C > 300 o J > 500, se E_INVALIDARG hrESULT.

R'a;, G'a;, y B'a;, (ecuaciones 8.19 - 8.21) se recortan al 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, se escalará el punto blanco adoptado para que Y sea igual a 100.0. El mismo escalado se aplicará al valor en segundo plano. El factor de escala 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 está ausente del CAMP, el motor también escala todos los 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 por el inverso multiplicativo de ese factor de escalado. Si la marca NormalizeToMediaWhitePoint está establecida en "False", los datos de colorimetric no se escalan.

Para algunas tareas, tiene sentido escalar los valores de colorimetric 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 una diferencia en la luminancia absoluta (o iluminación) entra en juego es 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 se usa el punto blanco medio del modelo de dispositivo como punto blanco adoptado, todos los colores procedentes del dispositivo se deben escalar según corresponda, 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. A continuación, los resultados ya estarían en el intervalo adecuado. Pero eso dificultaría la prueba del modelo de dispositivo, 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 el punto blanco multimedia del dispositivo.

El 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, porque "saben" cognitivamente que los medios de origen y destino son "blancos". En tales casos, los desarrolladores querrán inicializar los CAM hacia delante e inverso con sus respectivos puntos blancos 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 distintos valores tristimulus del medio darán lugar a valores de apariencia diferentes en CIECAM02.

conceptos básicos de administración de colores

esquemas y algoritmos del sistema de colores de Windows