다음을 통해 공유


WCS 색 모양 모델 프로필 스키마 및 알고리즘

개요

CAMP(색 모양 모델 프로필) 아키텍처

CAMP 스키마

CAMP 스키마 요소

CAMP 알고리즘

개요

이 스키마는 CAMP(색 모양 모델 프로필)의 콘텐츠를 지정하는 데 사용됩니다. 연결된 기준 알고리즘은 다음 섹션에 설명되어 있습니다.

CAMP는 CIECAM02 기준 색 모양 모델 변수에 매개 변수 값을 제공하는 XML 태그로 구성됩니다. 매개 변수 범위에 대한 세부 정보는 기준 색 모양 모델 사양 및 CIECAM02 권장 사항에 제공됩니다.

색 모양 모델 프로필 아키텍처

X M L 태그로 만든 CAMP 프로필 아키텍처를 보여 주는 다이어그램

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>

CAMP 스키마 요소

ColorAppearanceModel

이 요소는 다음 시퀀스입니다.

  1. ProfileName 문자열,
  2. 선택적 설명 문자열,
  3. 선택적 Author 문자열,
  4. ViewingConditions 요소입니다.

유효성 검사 조건: 각 하위 요소는 자체 형식으로 유효성을 검사합니다. 문자열 길이는 10,000자로 제한됩니다.

네임스페이스

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

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

버전

Windows Vista의 첫 번째 릴리스가 있는 버전 >0.1 또는 <= "1.0"입니다.

유효성 검사 조건: 버전 값 <=2.0은 형식에 대한 호환성이 손상되지 않는 변경 내용을 지원하는 데도 유효합니다.

설명서

색 모양 모델 프로필 스키마.

Copyright (C) Microsoft. All rights reserved.

유효성 검사 조건: 각 하위 요소는 자체 형식으로 유효성을 검사합니다.

SurroundType

이 요소는 "Average", "Dim" 또는 "Dark" CIECAM02 매개 변수 또는 CIECAM02 권장 사항 c의 실제 정량적 매개 변수, 서라운드의 영향의 열거형입니다.

유효성 검사 조건: c 매개 변수의 범위는 0.525에서 0.69까지입니다.

보기조건

이 요소는 다음 하위 요소로 구성됩니다.

요소 Type
WhitePoint WhitePointType
배경 CIEXYZ
서라운드 SurroundType
LuminanceOfAdaptingField float
DegreeOfAdaptation float
NormalizeToMediaWhitePoint 부울

유효성 검사 조건: CIEXYZ 하위 요소는 NonNegativeXYZType에서 유효성을 검사합니다. LuminanceOfAdaptingField는 최대 10,000cd/m^2입니다. DegreeOfAdaptation은 0.0에서 1.0까지 다양할 수 있습니다. NormalizeToMediaWhitePoint 값은 "true" 또는 "false"일 수 있습니다. NormalizeToMediaWhitePoint 하위 요소가 없는 경우 사실상 기본값은 "true"입니다. 다음 CAMP 알고리즘 섹션을 참조하세요.

WhitePointType

이 요소는 CIE 광원 값("D50", "D65", "A" 또는 "F2") 또는 CIEXYZ 하위 요소의 열거형입니다.

유효성 검사 조건: 각 하위 요소는 자체 형식으로 유효성을 검사합니다.

CIEXYZType

CIEXYZType 요소는 "X", "Y" 및 "Z"라는 세 개의 NonNegativeFloatType 단정밀도 IEEE 부동 소수점 요소로 구성됩니다. 이러한 측정값은 절대(상대 값이 아님) CIEXYZ 1931 반사 값 또는 절대(상대가 아님) CIEXYZ 1931 직접(트랜스미시브) 값(미터 제곱 단위당 캔델라)일 수 있습니다.

유효성 검사 조건: 즉, 실제 값만 유효하고 음수 CIEXYZ 측정값은 유효하지 않습니다. 절대값이므로 값의 범위는 1.0f를 초과할 수 있습니다. X, Y 또는 Z 값에 대한 적절한 제한은 임의로 10000.0f로 설정됩니다.

CAMP 알고리즘

CAM(색 모양 모델)은 CIE CIECAM02 색 모양 모델 수식을 기반으로 합니다.

이 클래스는 색 모양 모델링을 구현합니다. 예를 들어 플러그 인을 사용하여 WCS CAM을 교체할 수 없습니다 . 하나의 색 모양 모델만을 갖는 것이 디자인 목표입니다. CAM은 CIECAM02 권장 사항을 기반으로 합니다.

CIECAM02는 두 가지 방법으로 사용할 수 있습니다. 색을 대 모양 방향으로 CIE XYZ 공간에서 색 모양 공간으로 매핑합니다. 모양 대 색 인식 방향으로 색 모양 공간에서 XYZ 공간으로 다시 매핑됩니다. 색 모양은 가벼움, J, 크로마, C 및 색조, h의 상관 관계를 지정합니다. 이 세 값은 원통형 좌표계를 형성합니다. 직사각형 좌표계에서 작업하는 것이 더 편리한 경우가 많으므로 = C cos h 및 b = C sin h를 계산하여 CIECAM02 Jab을 제공합니다.

100보다 큰 CAM 밝기 값을 사용할 수 있습니다. CIECAM02를 공식화한 CIE 위원회는 채택된 흰색 점보다 큰 광도를 가진 입력 값에 대한 밝기 축의 동작을 다루지 않았습니다. 즉, 채택된 화이트 포인트 Y 값보다 큰 입력 Y 값의 경우 입니다. 실험 결과 CIECAM02의 광도 수식이 이러한 값에 대해 합리적으로 동작하는 것으로 나타났습니다. 가벼움은 기하급수적으로 증가하고 동일한 지수(대략 1/3)를 따릅니다.

사용자는 때때로 적응 수준(D)이 계산되는 방식을 변경하려고 합니다. WCS 디자인을 사용하면 사용자가 보기 조건 매개 변수에서 degreeOfadaptation 값을 변경하여 이 계산을 제어할 수 있습니다.

사용자의 ICC 영향을 받은 기대치에 보다 일관된 일치를 제공하기 위해 기본 CAMP의 DegreeOfAdaptation은 1.0입니다. 이렇게 하면 MinCD Absolute 이외의 모든 경우에 더 나은 결과가 생성됩니다. 여기서 WCS가 degreeOfAdaptation을 계산하도록 할 수 있습니다(degreeOfAdaptation = -1을 통해).

"Average", "Dim" 및 "Dark"의 서라운드 값을 사용하는 대신 c 값에서 계산된 연속 서라운드 값이 제공됩니다. c 값은 0.525에서 0.69 사이의 float여야 합니다.

c에서 NcF는 이미 "Average", "Dim" 및 "Dark"에 제공된 값 간의 선형 보간을 사용하여 계산할 수 있습니다. 이는 CIECAM02 사양인 CIE 159:2004의 그림 1에 표시된 내용을 모델링합니다.

degreeOfAdaption 동작
-1.0 기본 C I E C A M 02 동작에 대한 수식을 표시합니다. 기본 CIECAM02 동작입니다.
0.0 <= degreeOfAdaption <= 1.0 D = degreeOfAdaptation(사용자가 제공한 값)

특정 양의 오류 검사도 구현에 추가되었습니다. 다음 수식 번호는 CIECAM02의 CIE 159:2004 정의에 사용되는 수식입니다.

ColorimetricToAppearanceColors

입력 값이 합리성을 확인합니다. X 또는 Z < 0.0 또는 Y < -1.0이면 HRESULT가 E_INVALIDARG. -1.0 <= Y < 0.0이면 J, C 및 h가 모두 0.0으로 설정됩니다.

오류 결과를 생성할 수 있는 특정 내부 조건이 있습니다. 이러한 결과를 생성하는 대신 내부 결과가 범위 내 값을 생성하도록 잘립니다. 이는 어둡고 매우 색이 매우 많은 색 사양에 대해 발생합니다. 수식 7.23에서 A 0인 경우 A < = 0입니다. 수식 7.26에서 t < 0이면 t = 0입니다.

AppearanceToColorimetricColors

입력 값이 합리성을 확인합니다. C < 0, C > 300 또는 J > 500이면 HRESULT가 E_INVALIDARG.

R'a;, G'a;, B'a;, (수식 8.19 - 8.21) 범위 399.9로 잘립니다.

모든 CAMP(색 모양 모델 프로필)의 경우 WCS 엔진은 채택된 흰색 점을 검사합니다. Y가 100.0이 아니면 Y가 100.0과 같도록 채택된 흰색 점의 크기가 조정됩니다. 배경 값에 동일한 크기 조정이 적용됩니다. 배율 인수는 100.0/adoptedWhitePoint.Y입니다. X, Y 및 Z 각각에 동일한 배율 인수가 적용됩니다. NormalizeToMediaWhitePoint 필드가 "True"로 설정되거나 CAMP에 없는 경우 엔진은 디바이스 미디어 흰색 점의 Y 값이 100.0이 되도록 모든 디바이스 색 입력의 크기를 DeviceToColorimetric으로 조정합니다. ColorimetricToDevice에서 들어오는 디바이스 색은 해당 배율 인수의 곱셈 역으로 크기 조정됩니다. NormalizeToMediaWhitePoint 플래그가 "False"로 설정된 경우 색 메트릭 데이터의 크기가 조정되지 않습니다.

일부 작업의 경우 DeviceToColorimetric에서 오는 색 메트릭 값의 크기를 조정하는 것이 좋습니다. CAM의 과장된 가벼움 방정식은 100.0의 화이트 포인트 광도를 위해 설계되었습니다. 절대 광도(또는 조명)의 차이가 발생하는 유일한 곳은 적응 필드의 광도에 있습니다. 따라서 CAM은 100.0의 흰색 점 Y로 초기화되어야 합니다. 그러나 디바이스 모델의 중간 흰색 점이 채택된 흰색 포인트로 사용되는 경우 디바이스에서 들어오는 모든 색의 크기를 적절하게 조정해야 합니다. 그렇지 않으면 디바이스 흰색이 J 값 100.0으로 표시되지 않습니다. 따라서 Y 값은 측정값에서 크기를 조정해야 합니다. 디바이스 모델을 초기화하기 전에 측정값의 크기를 조정할 수 있습니다. 그러면 결과가 이미 적절한 범위에 있습니다. 그러나 이로 인해 디바이스 모델 테스트가 더 어려워집니다. 이는 값이 나오려면 크기 조정이 필요하기 때문입니다. 디바이스 중간 흰색 점이 진정한 흰색으로 인식되는 작업의 경우 디바이스 미디어 화이트 포인트로 정규화하는 것이 좋습니다.

CAM은 CAMP에서 직접 초기화됩니다. 이를 통해 개발자는 수행하려는 작업에 따라 CAM을 초기화할 수 있습니다. 일부 작업에서 관찰자는 원본 및 대상 미디어가 "흰색"이라는 것을 인지적으로 "알고"있기 때문에 미디어 흰색 포인트의 크로마를 무시합니다. 이러한 경우 개발자는 각 미디어 흰색 포인트로 정방향 및 역 CAM을 초기화하려고 합니다. 경우에 따라 관찰자가 미디어 배경의 색을 비교할 수 있습니다. 이러한 경우 두 디바이스에 하나의 CAM을 사용하는 것이 좋습니다. 각 디바이스의 색 인식 값을 해당 디바이스의 중간 흰색 포인트로 조정하지 않는 것이 좋습니다. 그런 다음 미디어의 다양한 tristimulus 값으로 인해 CIECAM02의 모양 값이 달라집니다.

기본 색 관리 개념

Windows 색 시스템 스키마 및 알고리즘