WCS 색 디바이스 모델 프로필 스키마 및 알고리즘
이 항목에서는 WCS 색 디바이스 모델 프로필 스키마 및 관련 알고리즘에 대한 정보를 제공합니다.
이 항목에는 다음과 같은 섹션이 포함되어 있습니다.
- 개요
- 색 디바이스 모델 프로필 아키텍처
- CDMP 스키마
- WCS CDMP v2.0 보정 추가
- CDMP 스키마 요소
- ColorDeviceModelProfile
- ColorDeviceModel
- NamespaceVersion
- 버전
- 설명서
- CRTDevice 요소
- LCDDevice 요소
- ProjectorDevice 요소
- ScannerDevice 요소
- 카메라Device 요소
- RGBPrinterDevice 요소
- CMYKPrinterDevice 요소
- RGBVirtualDevice 요소
- PlugInDeviceType
- RGBVirtualMeasurementType
- GammaType
- GammaOffsetGainType
- GammaOffsetGainLinearGainType
- ToneResponseCurvesType
- GamutBoundarySamplesType
- FloatPairList
- CMYKPrinterMeasurementType
- RGBPrinterMeasurementType
- RGBCaptureMeasurementType
- OneBasedIndex
- RGBProjectorMeasurementType
- DisplayMeasurementType
- MeasurementConditionsType
- GeometryType
- RGBPrimariesGroup
- NonNegativeCMYKSampleType
- NonNegativeRGBSampleType
- NonNegativeCMYKType
- NonNegativeRGBType
- ExtensionType
- NonNegativeXYZType
- XYZType
- CDMP 기준 알고리즘
- 관련 항목
개요
이 스키마는 CDMP(색 디바이스 모델 프로필)의 콘텐츠를 지정하는 데 사용됩니다. 관련 기준 알고리즘은 아래에 설명되어 있습니다.
기본 DMP(디바이스 모델 프로필) 스키마는 샘플링 측정 데이터로 구성됩니다.
DMP XML 스키마의 샘플링 구성 요소는 기본 색상 측정 대상에 대한 지원을 제공하며, 기준 디바이스 모델에 최적화된 공통 표준 대상 및 대상에 초점을 맞춥니다.
또한 디바이스 프로필은 대상 디바이스 모델에 대한 특정 정보를 제공하고 대상 모델을 사용할 수 없는 경우 기준 대체 디바이스 모델이 사용할 수 있는 정책을 제공합니다. 프로필 인스턴스에는 표준 XML 확장 메커니즘을 사용하는 프라이빗 확장이 포함될 수 있습니다.
색 디바이스 모델 프로필 아키텍처
CDMP 스키마
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
xmlns:cdm="http://schemas.microsoft.com/windows/2005/02/color/ColorDeviceModel"
xmlns:wcs="http://schemas.microsoft.com/windows/2005/02/color/WcsCommonProfileTypes"
targetNamespace="http://schemas.microsoft.com/windows/2005/02/color/ColorDeviceModel"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
blockDefault="#all"
version="1.0">
<xs:annotation>
<xs:documentation>
Color Device 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:complexType name="RGBType">
<xs:attribute name="R" type="xs:float" use="required"/>
<xs:attribute name="G" type="xs:float" use="required"/>
<xs:attribute name="B" type="xs:float" use="required"/>
</xs:complexType>
<xs:complexType name="NonNegativeRGBType">
<xs:attribute name="R" type="wcs:NonNegativeFloatType" use="required"/>
<xs:attribute name="G" type="wcs:NonNegativeFloatType" use="required"/>
<xs:attribute name="B" type="wcs:NonNegativeFloatType" use="required"/>
</xs:complexType>
<xs:complexType name="NonNegativeCMYKType">
<xs:attribute name="C" type="wcs:NonNegativeFloatType" use="required"/>
<xs:attribute name="M" type="wcs:NonNegativeFloatType" use="required"/>
<xs:attribute name="Y" type="wcs:NonNegativeFloatType" use="required"/>
<xs:attribute name="K" type="wcs:NonNegativeFloatType" use="required"/>
</xs:complexType>
<xs:complexType name="NonNegativeRGBSampleType">
<xs:sequence>
<xs:element name="RGB" type="cdm:NonNegativeRGBType"/>
<xs:element name="CIEXYZ" type="wcs:NonNegativeCIEXYZType"/>
</xs:sequence>
<xs:attribute name="Tag" type="xs:string" use="optional"/>
</xs:complexType>
<xs:complexType name="NonNegativeCMYKSampleType">
<xs:sequence>
<xs:element name="CMYK" type="cdm:NonNegativeCMYKType"/>
<xs:element name="CIEXYZ" type="wcs:NonNegativeCIEXYZType"/>
</xs:sequence>
<xs:attribute name="Tag" type="xs:string" use="optional"/>
</xs:complexType>
<xs:group name="RGBPrimariesGroup">
<xs:sequence>
<xs:element name="WhitePrimary" type="wcs:NonNegativeCIEXYZType"/>
<xs:element name="RedPrimary" type="wcs:NonNegativeCIEXYZType"/>
<xs:element name="GreenPrimary" type="wcs:NonNegativeCIEXYZType"/>
<xs:element name="BluePrimary" type="wcs:NonNegativeCIEXYZType"/>
<xs:element name="BlackPrimary" type="wcs:NonNegativeCIEXYZType"/>
</xs:sequence>
</xs:group>
<xs:complexType name="MeasurementConditionsType">
<xs:annotation>
<xs:documentation>
Optional measurement conditions.
We only support CIEXYZ for measurement color space in this version.
If the white point value from the measurement conditions is not available,
the default processing will use
- "D50" for printer and scanners
- "D65" for camera and displays.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="ColorSpace" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="CIEXYZ"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:choice minOccurs="0">
<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="Geometry" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="0/45"/>
<xs:enumeration value="0/diffuse"/>
<xs:enumeration value="diffuse/0"/>
<xs:enumeration value="direct"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ApertureSize" type="xs:int" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DisplayMeasurementType">
<xs:sequence>
<xs:group ref="cdm:RGBPrimariesGroup"/>
<xs:element name="GrayRamp">
<xs:complexType>
<xs:sequence>
<xs:element name="Sample" type="cdm:NonNegativeRGBSampleType" maxOccurs="4096"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="RedRamp">
<xs:complexType>
<xs:sequence>
<xs:element name="Sample" type="cdm:NonNegativeRGBSampleType" maxOccurs="4096"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="GreenRamp">
<xs:complexType>
<xs:sequence>
<xs:element name="Sample" type="cdm:NonNegativeRGBSampleType" maxOccurs="4096"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="BlueRamp">
<xs:complexType>
<xs:sequence>
<xs:element name="Sample" type="cdm:NonNegativeRGBSampleType" maxOccurs="4096"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="TimeStamp" type="xs:dateTime"/>
</xs:complexType>
<xs:complexType name="RGBProjectorMeasurementType">
<xs:sequence>
<xs:group ref="cdm:RGBPrimariesGroup"/>
<xs:element name="ColorSamples">
<xs:complexType>
<xs:sequence>
<xs:element name="Sample" type="cdm:NonNegativeRGBSampleType" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="TimeStamp" type="xs:dateTime"/>
</xs:complexType>
<xs:simpleType name="OneBasedIndex">
<xs:restriction base="xs:int">
<xs:minInclusive value="1"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="RGBCaptureMeasurementType">
<xs:sequence>
<xs:element name="PrimaryIndex">
<xs:complexType>
<xs:all>
<xs:element name="White" type="cdm:OneBasedIndex"/>
<xs:element name="Black" type="cdm:OneBasedIndex" minOccurs="0"/>
<xs:element name="Red" type="cdm:OneBasedIndex" minOccurs="0"/>
<xs:element name="Green" type="cdm:OneBasedIndex" minOccurs="0"/>
<xs:element name="Blue" type="cdm:OneBasedIndex" minOccurs="0"/>
<xs:element name="Cyan" type="cdm:OneBasedIndex" minOccurs="0"/>
<xs:element name="Magenta" type="cdm:OneBasedIndex" minOccurs="0"/>
<xs:element name="Yellow" type="cdm:OneBasedIndex" minOccurs="0"/>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="NeutralIndices">
<xs:simpleType>
<xs:list itemType="cdm:OneBasedIndex"/>
</xs:simpleType>
</xs:element>
<xs:element name="ColorSamples">
<xs:complexType>
<xs:sequence>
<xs:element name="Sample" type="cdm:NonNegativeRGBSampleType" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="TimeStamp" type="xs:dateTime"/>
</xs:complexType>
<xs:complexType name="RGBPrinterMeasurementType">
<xs:sequence>
<xs:element name="ColorCube">
<xs:complexType>
<xs:sequence>
<xs:element name="Sample" type="cdm:NonNegativeRGBSampleType" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="TimeStamp" type="xs:dateTime"/>
</xs:complexType>
<xs:complexType name="CMYKPrinterMeasurementType">
<xs:sequence>
<xs:element name="ColorCube">
<xs:complexType>
<xs:sequence>
<xs:element name="Sample" type="cdm:NonNegativeCMYKSampleType" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="TimeStamp" type="xs:dateTime"/>
</xs:complexType>
<xs:complexType name="GammaType">
<xs:attribute name="value" type="wcs:NonNegativeFloatType" use="required"/>
</xs:complexType>
<xs:complexType name="GammaOffsetGainType">
<xs:attribute name="Gamma" type="wcs:NonNegativeFloatType" use="required"/>
<xs:attribute name="Offset" type="wcs:NonNegativeFloatType" use="required"/>
<xs:attribute name="Gain" type="wcs:NonNegativeFloatType" use="required"/>
</xs:complexType>
<xs:complexType name="GammaOffsetGainLinearGainType">
<xs:attribute name="Gamma" type="wcs:NonNegativeFloatType" use="required"/>
<xs:attribute name="Offset" type="wcs:NonNegativeFloatType" use="required"/>
<xs:attribute name="Gain" type="wcs:NonNegativeFloatType" use="required"/>
<xs:attribute name="LinearGain" type="wcs:NonNegativeFloatType" use="required"/>
<xs:attribute name="TransitionPoint" type="wcs:NonNegativeFloatType" use="required"/>
</xs:complexType>
<xs:simpleType name="FloatList">
<xs:list itemType="xs:float"/>
</xs:simpleType>
<xs:complexType name="OneDimensionLutType">
<xs:sequence>
<xs:element name="Input" type="cdm:FloatList"/>
<xs:element name="Output" type="cdm:FloatList"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="HDRToneResponseCurvesType">
<xs:sequence>
<xs:element name="RedTRC" type="cdm:OneDimensionLutType"/>
<xs:element name="GreenTRC" type="cdm:OneDimensionLutType"/>
<xs:element name="BlueTRC" type="cdm:OneDimensionLutType"/>
</xs:sequence>
<xs:attribute name="TRCLength" use="required">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="0" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:complexType name="GamutBoundarySamplesType">
<xs:sequence>
<xs:element name="RGB" type="cdm:RGBType" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RGBVirtualMeasurementType">
<xs:sequence>
<xs:element name="MaxColorantUsed" type="xs:float"/>
<xs:element name="MinColorantUsed" type="xs:float"/>
<xs:group ref="cdm:RGBPrimariesGroup"/>
<xs:choice>
<xs:element name="Gamma" type="cdm:GammaType"/>
<xs:element name="GammaOffsetGain" type="cdm:GammaOffsetGainType"/>
<xs:element name="GammaOffsetGainLinearGain" type="cdm:GammaOffsetGainLinearGainType"/>
<xs:element name="HDRToneResponseCurves" type="cdm:HDRToneResponseCurvesType"/>
</xs:choice>
<xs:element name="GamutBoundarySamples" type="cdm:GamutBoundarySamplesType" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="TimeStamp" type="xs:dateTime"/>
</xs:complexType>
<xs:element name="ColorDeviceModel">
<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="MeasurementConditions" type="cdm:MeasurementConditionsType" minOccurs="0"/>
<xs:element name="SelfLuminous" type="xs:boolean" />
<xs:element name="MaxColorant" type="xs:float"/>
<xs:element name="MinColorant" type="xs:float"/>
<xs:choice>
<xs:element name="CRTDevice">
<xs:complexType>
<xs:sequence>
<xs:element name="MeasurementData" type="cdm:DisplayMeasurementType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="LCDDevice">
<xs:complexType>
<xs:sequence>
<xs:element name="MeasurementData" type="cdm:DisplayMeasurementType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="RGBProjectorDevice">
<xs:complexType>
<xs:sequence>
<xs:element name="MeasurementData" type="cdm:RGBProjectorMeasurementType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ScannerDevice">
<xs:complexType>
<xs:sequence>
<xs:element name="MeasurementData" type="cdm:RGBCaptureMeasurementType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="CameraDevice">
<xs:complexType>
<xs:sequence>
<xs:element name="MeasurementData" type="cdm:RGBCaptureMeasurementType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="RGBPrinterDevice">
<xs:complexType>
<xs:sequence>
<xs:element name="MeasurementData" type="cdm:RGBPrinterMeasurementType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="CMYKPrinterDevice">
<xs:complexType>
<xs:sequence>
<xs:element name="MeasurementData" type="cdm:CMYKPrinterMeasurementType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="RGBVirtualDevice">
<xs:complexType>
<xs:sequence>
<xs:element name="MeasurementData" type="cdm:RGBVirtualMeasurementType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
<xs:element name="PlugInDevice" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:any namespace="##other" processContents="skip"
minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="GUID" type="wcs:GUIDType" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="ID" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
</xs:schema>
WCS CDMP v2.0 보정 추가
CDMP 스키마의 ColorDeviceModel 요소가 새 보정 요소를 포함하도록 Windows 7에서 업데이트되었습니다. 다음은 CDMP 스키마에 대한 변경 사항을 보여줍니다.
...
<xs:element name="ColorDeviceModel">
<xs:complexType>
<xs:sequence>
...
<xs:element name="PlugInDevice" minOccurs="0">
...
</xs:element>
<xs:element name="Calibration" type="cal:Calibration" minOccurs="0"/>
...
<xs:sequence>
...
<xs:complexType>
...
CDMP 스키마 요소
참고 항목
주 복제본은 빨간색, 녹색, 파란색, 검은색 및 흰색의 기본 샘플입니다. 기본 램프는 최소 광도에서 전체 기본 값으로의 음색 램프입니다. 톤 램프의 최대 항목 수는 4096개입니다.
참고 항목
측정 데이터를 사용하려면 DMP가 필요합니다.
ColorDeviceModelProfile
이 요소는 ColorDeviceModel 형식입니다.
유효성 검사 조건: 각 하위 요소는 자체 형식으로 유효성을 검사합니다.
ColorDeviceModel
이 요소는 다음 하위 요소의 시퀀스입니다.
- ProfileName 문자열,
- 선택적 설명 문자열,
- 선택적 작성자 문자열,
- 선택적 MeasurementConditions MeasurementConditionsType,
- 자광 부울,
- MaxColorant float,
- MinColorant float,
- 요소 선택
- CRTDevice,
- LCDDevice,
- RGBProjectorDevice,
- ScannerDevice,
- 카메라Device,
- RGBPrinterDevice,
- CMYKPrinterDevice,
- RGBVirtualDevice,
- PlugInDevice,
- 선택적 Extension ExtensionType
유효성 검사 조건: 각 하위 요소는 자체 형식으로 유효성을 검사합니다. 문자열 하위 요소는 최대 10,000자입니다. MaxColorant 하위 요소는 0보다 크거나 같아야 하며 MinColorant 하위 요소보다 커야 합니다. MinColorant는 음수일 수 있습니다.
NamespaceVersion
xmlns:cdm="http://schemas.microsoft.com/windows/2005/02/color/ColorDeviceModel"
targetNamespace="http://schemas.microsoft.com/windows/2005/02/color/ColorDeviceModel"
버전
버전 = Windows Vista를 사용하는 "1.0"입니다.
유효성 검사 조건: 버전 값 >0.1 또는 <=2.0은 형식에 대한 호환성이 손상되지 않는 변경 내용을 지원하는 데 유효합니다.
설명서
디바이스 모델 프로필 스키마.
Copyright (C) Microsoft. All rights reserved.
CRTDevice 요소
이 요소는 MeasurementData DisplayMeasurementType의 하위 요소 시퀀스입니다.
유효성 검사 조건: 각 하위 요소는 자체 형식으로 유효성을 검사합니다.
LCDDevice 요소
이 요소는 MeasurementData DisplayMeasurementType의 하위 요소 시퀀스입니다.
유효성 검사 조건: 각 하위 요소는 자체 형식으로 유효성을 검사합니다.
ProjectorDevice 요소
이 요소는 MeasurementData RGBProjectorMeasurementType의 하위 요소 시퀀스입니다.
유효성 검사 조건: 각 하위 요소는 자체 형식으로 유효성을 검사합니다.
ScannerDevice 요소
이 요소는 MeasurementData RGBCaptureMeasurementType의 하위 요소 시퀀스입니다.
유효성 검사 조건: 각 하위 요소는 자체 형식으로 유효성을 검사합니다.
카메라Device 요소
이 요소는 MeasurementData RGBCaptureMeasurementType의 하위 요소 시퀀스입니다.
유효성 검사 조건: 각 하위 요소는 자체 형식으로 유효성을 검사합니다.
RGBPrinterDevice 요소
이 요소는 MeasurementData RGBPrinterMeasurementType의 하위 요소 시퀀스입니다.
유효성 검사 조건: 각 하위 요소는 자체 형식으로 유효성을 검사합니다.
CMYKPrinterDevice 요소
이 요소는 MeasurementData CMYKPrinterMeasurementType의 하위 요소 시퀀스입니다.
유효성 검사 조건: 각 하위 요소는 자체 형식으로 유효성을 검사합니다.
RGBVirtualDevice 요소
이 요소는 RGBVirtualMeasurementDataType의 하위 요소 시퀀스입니다.
유효성 검사 조건: 각 하위 요소는 자체 형식으로 유효성을 검사합니다.
PlugInDeviceType
이 요소는 GUID GUIDType 및 모든 하위 요소의 시퀀스입니다.
유효성 검사 조건: GUID는 DM 플러그 인 Dll GUID와 일치하는 데 사용됩니다. 최대 100,000개의 사용자 지정 하위 요소가 있습니다.
RGBVirtualMeasurementType
이 요소는 다음으로 구성된 시퀀스입니다.
RGBPrimariesGroup 그룹
선택 항목
-
- 감마
- GammaOffsetGain
- GammaOffsetGainLinearGam
- ToneResponseCurves 요소
선택적 GamutBoundarySamples GamutBoundarySamplesType
TimeStamp dateTime
유효성 검사 조건: 이러한 형식의 각 하위 요소에는 자체 유효성 검사 조건이 있습니다.
GammaType
이 요소는 특성으로 구성된 복합 형식입니다.
- Gamma NonNegativeFloatType
유효성 검사 조건: 업계 피드백에서 결정됩니다.
GammaOffsetGainType
이 요소는 특성으로 구성된 복합 형식입니다.
- Gamma NonNegativeFloatType
- Offset NonNegativeFloatType
- Gain NonNegativeFloatType
유효성 검사 조건: 업계 피드백에서 결정됩니다.
GammaOffsetGainLinearGainType
이 요소는 특성으로 구성된 복합 형식입니다.
- Gamma NonNegativeFloatType
- Offset NonNegativeFloatType
- Gain NonNegativeFloatType
- LinearGain NonNegativeFloatType
- TransitionPoint NonNegativeFloatType.
유효성 검사 조건: 업계 피드백에서 결정됩니다.
ToneResponseCurvesType
이 요소는 다음 시퀀스입니다.
- RedTRC FloatPairList
- GreenTRC FloatPairList
- BlueTRC FloatPairList
요소에는 부호 없는 형식의 특성 TRCLength도 있습니다.
유효성 검사 조건: 업계 피드백에서 결정됩니다.
GamutBoundarySamplesType
이 요소는 RGB RGBTypes의 시퀀스입니다.
유효성 검사 조건: 업계 피드백에 따라 제한될 현재 제한되지 않은 최대 발생 수입니다.
FloatPairList
이 요소는 부동 소수 자릿수 쌍 목록의 간단한 형식입니다.
유효성 검사 조건: 업계 피드백에서 결정됩니다.
CMYKPrinterMeasurementType
이 요소는 입니다.
샘플 NonNegativeCMYKSampleType 시퀀스로 구성된 ColorCube 요소의 시퀀스
TimeStamp dateTime 특성입니다.
유효성 검사 조건: 업계 피드백에서 결정됩니다.
RGBPrinterMeasurementType
이 요소는 입니다.
샘플 NonNegativeRGBSampleType 시퀀스로 구성된 ColorCube 요소 시퀀스
TimeStamp dateTime 특성입니다.
유효성 검사 조건: 업계 피드백에서 결정됩니다.
RGBCaptureMeasurementType
이 요소는 다음 시퀀스입니다.
PrimaryIndex complexType
-
- White OneBasedIndex
- 선택적 Black OneBasedIndex
- 선택적 Red OneBasedIndex
- 선택적 녹색 OneBasedIndex
- 선택적 Blue OneBasedIndex
- 선택적 Cyan OneBasedIndex
- 선택적 Magenta OneBasedIndex
- 선택적 노란색 OneBasedIndex
OneBasedIndex 줄의 NeutralIndices
샘플 NonNegativeRGBSampleType의 ColorSamples 시퀀스
요소에는 TimeStamp dateTime 특성도 있습니다.
유효성 검사 조건: 업계 피드백에서 결정됩니다.
OneBasedIndex
이 요소는 minInclusive 값 = "1"을 사용하여 부호 없는 단순 유형의 제한 기준 int입니다.
유효성 검사 조건: 업계 피드백에서 결정됩니다.
RGBProjectorMeasurementType
이 요소는 다음 시퀀스입니다.
- RGBPrimariesGroup 그룹
- 요소 ColorSamples 샘플 NonNegativeRGBSampleType 시퀀스로 구성
요소에는 TimeStamp dateTime 특성도 있습니다.
유효성 검사 조건: 업계 피드백에서 결정됩니다.
DisplayMeasurementType
이 요소는 다음 시퀀스입니다.
- 그룹 RGBPrimariesGroup
- 샘플 NonNegativeRGBType 시퀀스의 GrayRamp
- 샘플 NonNegativeRGBType 시퀀스의 RedRamp
- 샘플 NonNegativeRGBType 시퀀스의 GreenRamp
- 샘플 NonNegativeRGBType 시퀀스의 BlueRamp
DisplayMeasurementType 요소에는 TimeStamp dateTime 특성도 있습니다.
유효성 검사 조건: 업계 피드백에서 결정됩니다.
MeasurementConditionsType
MeasurementConditionsType은 다음을 포함하는 하위 요소의 시퀀스입니다.
- ColorSpace에서 "CIEXYZ"의 문자열 열거형 값을 제한했습니다.
- 선택적 WhitePoint NonNegativeXYZType 또는 WhitePointName 문자열 열거형의 선택 사항 D50, D65, A 또는 F2
- Geometry GeometryType
- ApertureSize 정수(밀리미터)
기본값은 다음과 같습니다.
- RGB 및 CMYK 프린터:
- CIEXYZ MeasurementSpaceType
- D50 WhitePointValue
- 0/45 GeometryType
- 10mm ApertureSize
- 스캐너:
- CIEXYZ MeasurementSpaceType
- D50 WhitePointValue
- 0/45 GeometryType
- 10mm ApertureSize
- 표시 및 RGB 가상 디바이스:
- CIEXYZ MeasurementSpaceType
- D65 WhitePointValue
- 0/45 GeometryType
- 10mm ApertureSize
- 카메라:
- CIEXYZ MeasurementSpaceType
- D65 WhitePointValue
- Direct GeometryType
- 10mm ApertureSize
유효성 검사 조건: 각 하위 요소의 유효성 검사는 해당 하위 요소에 대한 유효성 검사 조건에 따라 결정됩니다. 하위 요소가 누락된 경우 디바이스 모델 유형별 기본값이 사용됩니다.
GeometryType
문자열
열거형 값:
- "0/45"
- "0/diffuse"
- "diffuse/0"
- "Direct"
유효성 검사 조건: 나열된 열거형 값을 제외한 모든 값이 잘못되었습니다. 이 정보는 기준 처리 동작을 변경하지 않습니다.
RGBPrimariesGroup
이 요소는 다음 시퀀스입니다.
- WhitePrimary NonNegativeXYZType
- RedPrimary NonNegativeXYZType
- GreenPrimary NonNegativeXYZType
- BluePrimary NonNegativeXYZTYpe
- BlackPrimary NonNegativeXYZType
유효성 검사 조건: 업계 피드백에서 결정됩니다.
NonNegativeCMYKSampleType
이 요소는 다음 시퀀스입니다.
- CMYK NonNegativeCMYKType
- CIEXYZ NonNegativeXYZType
요소에 선택적 특성 태그 문자열도 있습니다.
유효성 검사 조건: 업계 피드백에서 결정됩니다.
NonNegativeRGBSampleType
이 요소는 다음 시퀀스입니다.
- RGB NonNegativeRGBType
- CIEXYZ NonNegativeXYZType
요소에 선택적 특성 태그 문자열도 있습니다.
유효성 검사 조건: 업계 피드백에서 결정됩니다.
NonNegativeCMYKType
특성으로 구성된 이 요소
- C float
- M float
- Y float
- K float
유효성 검사 조건: 업계 피드백에서 결정됩니다.
NonNegativeRGBType
특성으로 구성된 이 요소
- R float
- G float
- B float
유효성 검사 조건: 업계 피드백에서 결정됩니다.
ExtensionType
ExtensionType 요소는 모든 하위 요소 형식의 시퀀스이며 Microsoft가 아닌 애플리케이션의 독점 정보에 사용됩니다.
유효성 검사 조건: 이 요소는 선택 사항입니다. 최대 1000 확장 하위 요소가 있을 수 있습니다.
NonNegativeXYZType
NonNegativeXYZType 요소는 "X", "Y" 및 "Z"라는 3개의 단정밀도 IEEE 부동 소수점 요소인 NonNegativeFloatType으로 구성됩니다. 이러한 값은 DMP 프로필 측정 값으로 제한됩니다. 이러한 측정값은 절대(상대 값 아님) CIEXYZ 1931 반사 값 또는 절대(상대 값 아님) CIEXYZ 1931 직접(반환) 값(미터 제곱 단위당 캔델라)일 수 있습니다.
유효성 검사 조건: 실제 값만 유효하고 음의 CIEXYZ 측정 값은 유효하지 않습니다. 절대값이므로 값은 1.0f보다 클 수 있습니다. "X", "Y" 또는 "Z" 값에 대한 적절한 제한은 임의로 10000.0f로 설정됩니다.
XYZType
XYZType 요소는 세 개의 단정밀도 IEEE 부동 소수점 값인 "X", "Y" 및 "Z"로 구성됩니다.
CDMP 기준 알고리즘
CRT 디바이스 모델 기준
이 모델을 이해하려면 특성화 프로세스와 디바이스 모델링을 모두 고려해야 합니다. 특성화 프로세스에서 XYZ 측정은 먼저 CRT 디스플레이 디바이스의 디스플레이 버퍼를 채워 가져온 색에 대해 수행됩니다. 다음 예제 값은 기준 CRT 디바이스 모델에 대한 좋은 데이터를 생성합니다.
빨간색: R = 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210, 225, 240, 255, G = B = 0
녹색: G = 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210, 225, 240, 255, R = B = 0
파란색: B = 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210, 225, 240, 255, R = G = 0
중립: R = G= B = 0, 8, 16, 32, 64, 128, 192, 255
15가 아닌 증분 및 비선형 증분도 사용할 수 있습니다. 각 빨강, 녹색, 파랑 및 중립 램프에는 세 개 이상의 샘플이 포함되어야 하지만 더 많은 샘플을 제공하는 것이 좋습니다. 순수 빨강, 녹색, 파랑, 검정 및 흰색에 대한 샘플을 제공해야 합니다. 샘플의 간격을 균일하게 지정하지 않아도 됩니다.
tristimulus 행렬을 빌드하는 프로세스는 두 단계로 구성됩니다. 먼저 검정점 XYZ 값 또는 플레어를 예측합니다. 이 단계는 비선형 최적화를 위해 약간 수정된 목표 함수를 사용하여 Berns[3]의 작업을 기반으로 합니다. 둘째, 1단계의 결과와 최대 디지털 개수에 대한 측정값뿐만 아니라 모든 채널당 측정값에 대한 평균 계산을 기반으로 삼중자 행렬을 계산합니다.
이러한 각 단계에는 자세한 절차가 포함되어 있습니다. 시작점은 각 R, G 및 B 채널에 대한 램프(예제의 17단계)입니다. XYZ 측정값이 색수 xy -plane에 그려지면 그림 1에 일반적인 상황이 표시됩니다. 1단계는 비선형 최적화 문제를 해결하여 R, G 및 B 채널을 따라 한 번 트래버스할 때 색의 드리프트를 최소화하는 "최적 맞춤" 블랙 포인트를 찾는 것으로 구성됩니다. Berns[3]에 따라 다음과 같은 목표 함수를 최소화하는 (X K,Y K,Z K)를 찾습니다.
여기서 SR, SG 및 SB 는 R, G 및 B 채널의 포인트에 해당하는 데이터 요소 집합입니다. S 집합에 대해 다음을 정의합니다.
앞의 | S | 는 s의 카드진수입니다. 즉, S 집합의 점 수는 점
의 색도 좌표이므로
, 색도 평면에서 S 집합의 모든 점 중 평균 또는 질량 중심입니다. 따라서,
질량의 중심에 대한 포인트의 두 번째 순간의 합계이며, 포인트가 그것에 대해 얼마나 확산되는지의 측정이다. 마지막으로,
지점의 세 클러스터가 각각의 질량 중심을 어떻게 분산하는지에 대한 총 측정값입니다.
계산에서 , if
, 계산을 건너뛰고 그에 따라 S의 카드 조정됩니다.
목표 함수의 명백한 복잡성에도 불구하고, XK,YK ZK(예제에서는 17포인트 2xy -components 3 채널 = 102)의 여러 다른 함수의 제곱의 합계이며, 따라서 WCS에서 사용되는 알고리즘인 Levenberg-Marquardt 알고리즘과 같은 표준 비선형 최소 제곱 기술에 적용할 수 있습니다. 앞의 목표 함수는 후자의 함수가 질량 중심으로부터의 거리 분산을 측정한다는 점에서 Berns[3]에서 제안된 것과 다르므로 점이 질량 중심에서 등가될 때 분산이 0이 되도록 합니다. 이 예제에서 점의 분산은 두 번째 순간을 사용하여 직접 컨톨레이션됩니다.
비선형 최소 제곱 문제에 대한 반복 알고리즘과 마찬가지로 Levenberg-Marquardt에는 초기 추측이 필요합니다. 두 명의 명백한 후보가 있습니다. 하나는 (0, 0, 0); 다른 하나는 측정된 검은색 점입니다. CTE의 경우 측정된 검은색 점이 먼저 초기 추측으로 사용됩니다. 최대 100회 반복을 초과하면 질량 중심에서 각 지점의 평균 거리 0.001 임계값을 달성하지 않고(목표 함수에 대한 임계값 값 (0.001) 17 3 = 0.000051에 해당함) 초기 추측(0, 0, 0, 0)이 있는 반복의 또 다른 라운드가 수행됩니다. 블랙 포인트의 결과 추정값은 이전 반복 라운드의 가장 좋은 추정치와 비교하여 XYZ입니다(측정된 검정점을 초기 추측으로 사용). 목표 함수에 가장 작은 값을 제공하는 예상치를 사용합니다. 선택한 100개의 반복 및 0.001의 오류 거리는 경험적으로 각각 선택되었습니다. 이후 버전에서는 오류 거리를 매개 변수화하는 것이 합리적일 수 있습니다.
1단계의 결과는 예상 검정점(XK,YK,ZK)입니다. 2단계는 1단계에서 얻은 3개의 클러스터에서 점의 색을 평균하여 삼중자 행렬을 결정하는 것으로 구성됩니다. CRT의 경우 이 작업은 주로 측정 오류의 영향을 최소화하기 위해 수행됩니다. 색도의 평균을 계산하는 데 사용되는 점은 1단계의 최적화에 사용된 것과 동일한 지점이어야 합니다. 즉, 최적화 단계에서 각 램프의 첫 번째 지점(예에서 디지털 개수 15)이 dis카드ed인 경우 평균에서 동일한 작업을 수행해야 합니다. 빨강, 녹색 및 파랑 채널의 평균 색인 좌표인 경우
다음 프로시저에서 tristimulus 행렬을 결정합니다. 먼저 3?3 선형 시스템을 해결합니다.
XW,Y W,Z W
tristimulus 행렬이 결정되면 톤 곡선의 결정은 표준 접근 방식을 따릅니다. CRT 디스플레이의 경우 개별 채널은 "GOG" 모델을 따르는 것으로 간주됩니다.
여기서 kg 는 "gain", 1 -kg 는 "offset"이며? 는 "감마"입니다. tristimulus 행렬의 역 행렬은 선형 RGB 데이터를 가져오기 위해 중립의 XYZ 데이터에 적용되며, 그런 다음 GOG 모델에서 비선형 회귀를 사용하여 디지털 RGB 값과 상관 관계를 맺습니다. 이러한 특성은 R, G 및 B 채널에 대해 동일할 필요가 없으며 일반적으로 동일하지 않습니다.
번스[1]: 베른스, 빌마이어, 솔츠만의 색 기술 원칙, 3 rd 에드. 존 와일리 & 아들들 (2000).
Berns[2]: Berns와 Katoh, 컴퓨터 제어 CRT 디스플레이에 대한 디지털 대 방사능 전송 기능, CIE 전문가 심포지엄 '97 이미징 기술에 대한 색상 표준, 1997년 11월.
번스[3]: 베른스, 페르난데스, 타플린, 컴퓨터 제어 디스플레이, 색상 연구 및 응용 프로그램의 검은 수준 배출 추정, 28: 379-383 와일리 정기학, Inc. (2003)
강[1]: 강, 전자 이미징 디바이스용 색 기술, SPIE (1997)
Katoh[1]: Katoh, Deguchi and Berns, CIE 메서드 확장 및 확인에 대한 CRT 모니터(II) 제안의 정확한 특성화, Opt. Rev. 8: 397-408 (2001)
LCD 디바이스 모델 기준
LCD 디바이스 모델 기준은 CRT 디바이스 모델 기준과 유사합니다. 이 섹션에서는 LCD 모델링이 CRT 모델링과 다른 방법을 설명합니다.
한 가지 차이점은 LCD 디스플레이가 CRT에 사용되는 GOG 모델을 따르고 톤 곡선이 측정된 데이터의 보간을 통해 가져온다고 가정할 수 없다는 것입니다. 따라서 디바이스 중립 축을 더 자주 샘플링해야 합니다.
다음은 LCD 디바이스 모델 기준에 적합한 데이터를 생성할 수 있는 몇 가지 일반적인 예제 값입니다.
빨간색: R = 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210, 225, 240, 255, G = B = 0
녹색: G = 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210, 225, 240, 255, R = B = 0
파란색: B = 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210, 225, 240, 255, R = G = 0
중립: R = G = B = 0, 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210, 225, 240, 255.
측정된 색 색 색을 평균화하여 디바이스 주체의 색 색을 얻는 프로세스는 CRT보다 LCD에 더 중요합니다. XYZ 측정값이 색 수 xy -plane에 그려지면 그림 1에 일반적인 상황이 표시됩니다. 색이 검은색 점쪽으로 어떻게 드리프트되는지 확인합니다. 이는 모든LCD가 일정량의 광 누출을 갖기 때문입니다.
그림 1 : 수정 없이 원시 데이터를 사용하는 색도 다이어그램
원시 XYZ 측정값에서 이 값을 빼면 그림 2에 일반적인 상황이 표시됩니다. Tthe 지점은 이제 약 3개의 센터로 묶이지만 동일하게 떨어지지는 않습니다. CRT에 대해 설명된 평균 프로세스는 LCD의 결과를 크게 향상시킵니다.
그림 2 : 조정된 검정점이 있는 데이터를 사용하는 색도 다이어그램
RGB 캡처 디바이스 모델 기준
기준 RGB 캡처 디바이스 모델은 IDeviceModel 클래스의 하위 클래스입니다. 스캐너 및 디지털 카메라와 같은 색상 캡처 디바이스의 색 인식 특성화에서 다음 방법이 사용됩니다. 알려진 CIEXYZ 값이 있는 색 패치로 구성된 대상은 캡처 디바이스를 사용하여 캡처됩니다. 캡처 결과는 각 패치의 색이 RGB 값으로 인코딩되는 RGB 비트맵 이미지입니다. 이러한 디바이스 RGB 값은 특정 캡처 디바이스와 관련이 있습니다. 색인 특성화의 목표는 디바이스 RGB 값과 CIEXYZ 값 간에 경험적 관계를 설정하거나 캡처 디바이스의 동작을 최대한 정확하게 모델화하는 RGB에서 XYZ로의 수학 변환을 설정하는 것입니다.
이러한 수학 변환은 낮은 도의 다항식으로 합리적으로 모델링할 수 있습니다. 이 절차는 문헌에 자세히 설명되어 있습니다(예: 강[92], 강[97]). 강[97]에서는 R, G 및 B 변수에서 3, 6, 8, 9, 11, 14 또는 20 항을 사용하는 3개의 다항식 집합을 사용하는 반면, 세 개의 다항식은 각각 CIEXYZ 공간의 X, Y, Z 구성 요소로 회귀하는 것으로 보고됩니다. 20기 다항식의 경우 형식은 다음과 같습니다.
Y 및 Z에 대해 유사한 식이 있습니다. 다항식 맞춤에 대한 수학 기술은 "다변량 선형 회귀"에 속하며 통계의 모든 기본 텍스트에 설명되어 있습니다.
선형 회귀의 이 메서드는 "올바른" 목표 함수를 최소화하지 않습니다. 기본적으로 선형 회귀는 최소 제곱 솔루션을 찾습니다. 이는 얻은 계수가 기본 공간에서 오차의 총합을 최소화하거나 유클리드 거리의 제곱 합계를 최소화한다는 것을 의미합니다. 실제로는 ? 제곱의 합계를 최소화하려고 합니다. 에, 어디 ? E는 CIE94와 같은 허용되는 표준 중 하나입니다. 이 목표 함수를 최소화하는 것은 비선형 회귀 문제입니다.
새 엔진에서 Lab to XYZ는 회귀되는 CIE 색 공간이며, 20기 입방 다항식은 캡처 디바이스 또는 계수 ls,as,bs의 모델로 사용되므로 다음 다항식은 제곱의 합을 최소화합니다. E CIE94 s.
60차원 실제 숫자 공간 R 203의 솔루션(li, ai, bi)은 다음과 같은 총 오류를 최소화해야 합니다.
여기서 합계는 모든 데이터 요소 쌍을 통해 수행됩니다(R i,G i,B i;샘플링된 데이터 집합의 Li,u i,v i) 및 다음에 자세히 설명될 추가 제어점이 있습니다. 매개 변수 가 ?이므로 비선형 회귀 문제입니다.i, ai, * i*는 사분면이 아닌 비선형 방식으로 목표 함수에 입력합니다.
목표 함수인가요? 는 매개 변수의 비선형(및 수량화되지 않은) 함수인가요 ?i, ai 및 * i*, 최적화 문제를 해결하려면 반복 기술에 의존해야 합니다. 목표 함수의 형태는 제곱의 합이므로 Levenberg-Marquardt 알고리즘이라는 표준 최적화 기술이 사용됩니다. 비선형 최소 제곱 문제에 대해 선택하는 방법으로 간주됩니다. Levenberg-Marquardt와 같은 반복 알고리즘의 경우 초기 추측을 제공해야 합니다. 좋은 초기 추측은 일반적으로 올바른 최소값을 찾는 데 중요합니다. 이 경우 초기 추측에 적합한 한 가지 방법은 선형 회귀 문제의 해결 방법입니다. 먼저, 이차 목표 함수를 정의하여 랩 공간에서 유클리드 거리 제곱의 합계를 최소화합니다.
이러한 "선형 최소 제곱" 문제에 대한 수학적 해법은 잘 알려져 있습니다. 왜냐면?I는 L 모델링에만 나타나고, i는 u 모델링에만 나타나고* i*는 v 모델링에만 나타납니다. 최적화 문제는 L용, u용, v용으로 하나씩의 세 가지 하위로 분해될 수 있습니다. L 수식을 고려합니다. (u 수식과 v 수식은 정확히 동일한 인수를 따릅니다.) L에서 오차의 제곱의 합계를 최소화하는 문제는 다음 행렬 수식을 최소 제곱 의미에서 해결하는 것으로 명시할 수 있습니다.
여기서 N 은 데이터 포인트의 총 수입니다(원래 샘플링된 지점과 아래 설명된 방식으로 만든 제어점). 일반적으로 N 은 20보다 훨씬 크므로 앞의 수식이 과도하게 결정되므로 최소 제곱 솔루션이 필요합니다. ?에 대한 닫힌 양식 솔루션을 사용할 수 있습니다.
실제로 닫힌 양식 솔루션을 사용하는 직접 평가는 잘못된 숫자 속성을 가지고 있기 때문에 사용되지 않습니다. 대신, 일종의 행렬 팩터리화 알고리즘이 계수 행렬에 적용되어 수식 시스템을 정식 형식으로 줄입니다. 현재 구현에서 SVD(단수 값 분해)가 행렬 R 에 적용된 다음 결과 분해된 시스템이 해결됩니다.
선형 회귀 문제에 대한 해결 방법은 Levenberg-Marquardt 알고리즘의 시작점으로 사용됩니다. 이 알고리즘에서는 최적의 솔루션에 더 가깝게 지점을 이동해야 하는 평가판 단계가 계산됩니다. 평가판 단계에서는 현재 지점에서 파생 항목의 기능 값과 값에 종속된 선형 수식 집합을 충족합니다. 이러한 이유로 목표 함수의 파생 항목은 ? 매개 변수와 관련하여 ?i, i는 Levenberg-Marquardt 알고리즘에 필요한 입력입니다. 매개 변수는 60개이지만 훨씬 적게 계산할 수 있는 바로 가기가 있습니다. 미적분학의 체인 규칙에 따라,
여기서 j = 1, 2, 20, Li,u i,v i는 i번째 샘플 지점의 CIELAB 값이고, Rij는 위에 정의된 행렬 R의 (i,j) th 항목입니다. 따라서 60개 매개 변수에 대한 파생 항목을 계산하는 대신 숫자 정방향 차이점을 사용하여 L, a 및 b에 대한 파생 항목을 계산할 수 있습니다.
반복 알고리즘에 대한 중지 조건을 설정해야 합니다. 현재 구현에서 평균 제곱 DECIE94 1보다 작거나 수행된 반복 수가 10을 초과하면 반복이 종료됩니다. 숫자 10은 처음 몇 번의 반복이 오류를 크게 줄이지 않으면 추가 반복이 점 이동 외에 많은 도움이 되지 않을 수 있다는 실제 경험에서 비롯됩니다. 즉, 알고리즘이 수렴되지 않을 수 있습니다. 알고리즘이 분기되는 경우에도 선형 회귀에서 얻은 매개 변수와 같이 DECIE94 시작한 것보다 더 나쁘지 않은지 확인할 수 있습니다.
비선형 회귀의 이전 방법을 사용하더라도 피팅에 몇 가지 문제가 있습니다. 한 가지 문제는 다항식이 데이터 요소를 초과하여 오버슈트하거나 언더슈팅하는 경향이 있다는 것입니다. 인공 로컬 막시마와 미니마는 피팅 과정에서 도입 될 수있다. 이것은 낮은 정도의 다항어를 사용하여 중화 될 수 있습니다, 이는 당신이 3도 이상 사용하지 않아야하는 이유입니다. 오버슈팅 또는 언더슈팅의 더 심각한 측면은 다항식이 이론적으로 실제 값을 취할 수 있지만 모델링하려는 공간에는 일반적으로 물리적 제약 조건과 실용적인 제약 조건이 있다는 것입니다. CIEXYZ에는 물리적 제약 조건인 X, Y, Z가 음수가 아닌 모든 X가 있어야 합니다. 실제로, 그들은 단지 수백의 크기에 값을 가지고, 하지 수천 이상. 마찬가지로 CIELAB 또는 CIELUV에는 고유한 물리적 제약 조건이 있습니다. RGB 공간이 샘플 포인트로 충분히 채워지면 오버슈팅 또는 언더슈팅 문제가 심각하지 않습니다. 그러나 캡처 디바이스에서 캡처된 RGB 지점은 일반적으로 RGB 공간을 균일하게 채우지 않습니다. 포인트는 RGB 큐브의 80% 내부만 채울 수 있으며, 더 나쁜 것은 더 낮은 차원 매니폴드에 상주할 수 있습니다. 이 경우 회귀된 다항식은 데이터 요소를 초과하는 값을 추정하는 데 좋지 않은 작업을 수행할 수 있으며 때로는 비현실적인 예측을 반환하기도 합니다. 항상 합리적으로 현실적인 값을 반환하는 모델을 원합니다. 이렇게 하려면 RGB 큐브 경계 근처에서 불규칙하게 동작하는 다항식에 추가 비용을 부과하여 회귀 다항식의 경계 동작을 효과적으로 제어할 수 있는 메서드가 필요합니다. 출력을 CIE 스펙트럼 궤적 내에 클리핑하여 다항식이 항상 사실적인 값을 반환하도록 하는 추가 측정값입니다.
이 시점에서 스캐너 모델링과 카메라 모델링이 서로 다릅니다. 카메라 모델은 "반사 하이라이트"를 포함하여 샘플링된 지점을 초과하는 지역으로 추정할 것으로 예상되며 스캐너 모델에는 동일한 추정이 필요하지 않습니다. 스캐너 대상은 스캔할 인쇄물과 유사한 특성화를 포함해야 합니다. 스캐너 모델은 비현실적인 값을 반환해서는 안 된다는 점에서 견고해야 하지만 특성화 대상을 훨씬 초과하는 추정은 필요하지 않습니다. 견고성을 보장하기 위해 위의 L-다항식은 100에서 잘립니다. 즉, 다항식 모델은 스캐너 대상의 "Dmin"을 초과하여 추정하지 않도록 강요됩니다.
카메라 모델은 반사 하이라이트로 추정할 것으로 예상되므로 100에서 클리핑하는 것은 바람직하지 않습니다. 대신 다음 알고리즘이 사용됩니다.
인조 제어 지점은 샘플링이 부족한 지역에서 다항식의 동작을 제어하기 위해 도입되었습니다. 이러한 제어점을 적절한 값으로 전략적으로 배치하면 다항식이 필요한 방향으로 "끌어오기" 역할을 합니다. 현재 구현에서는 RGB 큐브의 모서리에 해당하는 8개의 제어점이 사용됩니다. 디바이스 값이 Unity로 정규화된 경우 다음과 같은 점이 있습니다.
R = 0, G = 0, B = 0
R = 0, G = 0, B = 1
R = 0, G = 1, B = 0
R = 0. G = 1, B = 1
R = 1, G = 0, B = 0
R = 1, G = 0, B = 1
R = 1, G = 1, B = 0
R = 1, G = 1, B = 1
L = 100, u =v = 0의 CIELAB 값과 연결된 흰색 R =G =B = 1을 제외하고 다음 추정 알고리즘을 사용하여 연결할 적절한 CIELAB 값을 결정합니다. 일반적으로 지정된(R,G,B)의 경우 가중치는 샘플링된 데이터 집합의 각 (Ri,G i,B i)와 연결됩니다. 가중치를 할당하는 데는 두 가지 목표가 있습니다. 첫째, 가중치는 (R,G,B) 및 (R i,G i,B i) 사이의 거리에 반비례합니다. 둘째, 지정된 점(R,G,B)과 다른 색조를 가진 포인트에 가중치 0을 할당하거나 카드 합니다. 색조를 고려하려면 꼭짓점이 (0, 0, 0), 0이고 축이 선 조인(0, 0, 0)과 (R,G,B) 일치하고 반 수직 각도인 원뿔 안에 있는 점을 고려합니다. 는 cos를 충족 ? = 0.9. 이 원뿔의 그림은 그림 3을 참조하세요.
그림 3 : 각도 및 거리를 사용하여 샘플 포인트 필터링 표시된 이웃의 모양은 그림 용도로만 사용됩니다. 실제 모양은 사용된 거리에 따라 달라집니다. 1-norm을 사용하는 경우 다이아몬드 모양의 이웃입니다.
이 원뿔 내에서 정의된 1-norm을 사용하는 RGB 거리를 기반으로 하는 두 번째 필터링이 수행됩니다.
현재 원뿔을 사용하여 초기 검색은 (R,G,B)에서 0.1의 거리 내에 있는 지점에 대한 것입니다. 이 반지름 내에 아무 점도 없으면 반지름이 0.1씩 증가하고 검색이 다시 시작됩니다. 다음 라운드 그물도 아무 소용이 없는 경우 반지름은 0.1로 증가합니다. 이 프로세스는 반지름이 MaxDist/5를 초과할 때까지 계속됩니다. 여기서 MaxDist = 3은 1-norm의 경우입니다. 아무 소용이 없으면 코를 줄여 원뿔이 확대됩니다. 로 0.05, 즉, 각도를 증가 ? 반경이 늘어나면서 전체 프로세스를 다시 시작합니다. 이 프로세스는 비어있지 않은 점 집합이 발견되거나 cos ? 0에 도달합니다. 즉, 원뿔이 열리면 평면이 됩니다. 이때 반경이 MaxDist에 도달할 때까지 검색이 계속된다는 점을 제외하고 반경을 늘려 검색을 다시 시작합니다. 이렇게 하면 최악의 시나리오에서 비어있지 않은 지점 집합을 찾을 수 있습니다. 이 알고리즘은 그림 4의 흐름 다이어그램에 요약되어 있습니다.
그림 4 : 입력 RGB 값에 대한 추정에 사용되는 샘플 지점의 집합 S를 결정하는 흐름 다이어그램
이전 프로세스에서 비어있지 않은 포인트 집합 S(R i,Gi,B i) 및 해당(Li,a i,b i)를 생성한다고 가정하면 이러한 각 지점에 대해 i가 할당된 가중치 w가 지정됩니다.
마지막으로, 추정은 다음을 통해 정의됩니다.
위의 수식은 일반적으로 Shepard 메서드라고 하는 "역거리 가중치 메서드"의 인스턴스를 구성합니다. eq(6)에서 알고리즘을 통해 각 8개의 점을 실행하면 각각 R, G, B 및 L,a,b 값이 있는 8개의 제어점을 얻을 수 있으며, 이 값은 원래 샘플 데이터를 사용하여 풀에 배치됩니다.
모델이 항상 유효한 색 값을 생성하고 전체 색 처리 파이프라인의 시스템 무결성 및 안정성을 위해 다항식 모델의 출력에 최종 클리핑을 수행해야 합니다. CIE 시각적 영역은 구형 구성 요소(Y 또는 L) 및 색 구성 요소(xy 또는 a'b', 프로젝션 변환에 의한 XYZ 공간과 관련된)에 의해 설명됩니다. 현재 구현 에서 a'b'chromaticity 는 CIELUV 공간과 직접 관련되어 있기 때문에 사용됩니다. CIELAB 값의 경우 먼저 L을 음수가 아닌 값으로 클리핑합니다.
반사 하이라이트에 대한 추정을 허용하기 위해 L은 랩 공간의 L에 대한 "기존" 상한인 100에서 잘리지 않습니다.
다음으로, L = 0이면 a와 b는 a*= b =* 0이 되도록 잘립니다. L인 경우 ? 0, 계산
다음은 흰색 점(u?',v?')에서 문제의 색까지 a'b' 다이어그램에 있는 벡터의 구성 요소입니다. 파장에 의해 매개 변수가 있는 모든 점(a',b')의 보폭 헐로 CIE 스펙트럼 궤적을 정의합니다.
2도 관찰자에 대한 CIE 색 일치 함수는 어디에 있나요? 벡터가 CIE 궤적 외부에 있는 경우 색은 벡터에 의해 정의된 선과 궤적의 교집합인 CIE 궤적의 지점으로 잘립니다. 그림 5를 참조하세요. 클리핑이 발생한 경우 a와 b 값은 먼저 잘린 a'와 b'에서 a?' 및 b?'를 빼서 다시 구성한 다음 13L을 곱합니다.
그림 5 : CIE 시각적 영역 외부에 있는 랩 값에 대한 클리핑 알고리즘
현재 구현에서 a'b' 평면의 CIE 스펙트럼 궤적은 세그먼트가 35개인 조각 선형 곡선으로 표시됩니다(파장에 해당하는 파장은 360 nm에서 700 nm 포함). 흰색 점의 하위 각도가 내림차순 파장에 해당하도록 선 세그먼트를 정렬하면 위의 벡터에 의해 형성된 광선과 교차하는 선 세그먼트를 간단한 이진 검색으로 찾을 수 있습니다.
RGB 프린터 디바이스 모델 기준
RGB 프린터의 디바이스 특성화는 지정된 RGB 값에 대한 디바이스 독립적 CIELUV 색을 예측하는 디바이스의 경험적 모델을 생성하는 것으로 구성됩니다.
경험적 모델을 생성하는 방법에는 두 가지가 있습니다. 한 가지 방법은 RGB 프린터에 디바이스 데이터를 사용하는 것이고, 다른 하나는 분석 매개 변수 데이터를 사용하는 것입니다. 첫 번째 항목에서는 사용자가 RGB 프린터 디바이스에 대해 제공한 측정 데이터를 사용하여 LUT(3차원 조회 테이블)를 생성합니다. 측정 데이터는 균일하게 샘플링된 RGB 패치에 대한 XYZ 값으로 구성됩니다. 일반적인 샘플링 크기는 각 구성 요소에 대해 9 또는 17입니다. 각 패치는 CIEXYZ 공간에서 색계 또는 분광계로 측정됩니다. 패치에 대한 XYZ 값은 CIELUV 값으로 변환되어 3차원 LUT를 형성합니다. 디바이스 모델에서 Sakamoto의 테트라에드랄 보간 방법은 지정된 RGB 데이터에 대한 CIELUV 데이터를 예측하기 위해 3차원 LUT에 적용됩니다. (미국 특허 4275413 (사카모토 외), 미국 특허 4511989 (사카모토), 강 [1]. 멘션 두 개의 특허가 만료되었습니다.). 두 번째 메서드에 전달된 분석 매개 변수 데이터는 단순히 이전에 빌드된 LUT입니다. 일반적으로 LUT는 직접 작성할 수 있지만 첫 번째 메서드를 사용하여 빌드되었습니다.
현재 색 관리에서 원본 맵은 RGB 공간에서 디바이스 독립적 CIEXYZ 색 공간으로 가는 맵으로 정의됩니다. 대상 맵은 디바이스 독립적 CIEXYZ 색 공간에서 RGB 공간으로 가는 맵으로 정의됩니다. 소스 맵의 역방향입니다.
경험적 모델은 원본 맵에서 직접 사용됩니다. 먼저 지정된 RGB 데이터를 XYZ 데이터로 변환되는 CIELUV 데이터에 매핑합니다. 대상 맵에서 디바이스 독립적 CIEXYZ 데이터는 먼저 CIELUV 데이터로 변환됩니다. 그런 다음 경험적 모델과 클래식 Newton-Raphson 메서드를 사용하여 CIELUV 데이터에 가장 적합한 RGB 데이터를 예측합니다. CieLUV에서 RGB 데이터로의 변환에 대한 세부 정보는 다음과 같습니다.
RGB에서 CieLUV로 3차원 LUT를 생성한 후 RGB에서 LUV로의 맵은 RGB의 테트라데랄 보간을 사용하여 빌드됩니다. 이 맵은 다음 수식으로 표시됩니다.
지도 반전은 모든 색 에 대해 다음과 같은 비선형 수식 시스템 해결로 구성됩니다.
클래식 Newton-Raphson 메서드를 기반으로 하는 비선형 수식이 새 CTE에서 사용됩니다. 초기 추측 또는 사전 참조 -(R 0, G 0, B 0)는 미리 계산된(RGB,Luv) 쌍의 균일한 8x8x8 그리드로 구성된 "시드 매트릭스"를 검색하여 가져옵니다. L*u*v*에 가장 가까운 RGB 해당 Luv가 선택됩니다. 시드 행렬의 각 지점은 반복이 RGB 큐브의 경계 면에 있는 지점으로 시작되지 않도록 셀의 가운데에 해당합니다. 즉, 시드의 RGB는 다음을 통해 정의됩니다. STEP = 1/8 s ijk = (STEP/2 + (i-1) STEP, STEP/2+(j-1)STEP, STEP/2+(k-1)STEP) with i,j,k = 1...8 Newton-Raphson의 ith 단계에서 다음 추정치 는 수식에 의해 얻어집니다.
오류(CIELUV 공간의 거리)가 미리 설정된 허용 오차 수준(CTE의 경우 0.1)보다 작거나 반복 수가 허용되는 최대 반복 횟수(CTE의 경우 10)를 초과하면 반복이 중지됩니다. 허용 오차 및 반복 횟수에 대한 값은 경험적으로 효과적인 것으로 결정되었습니다. 이후 버전에서는 허용 오차 값이 변경될 수 있습니다.
Jacobian 행렬은 역방향 차이가 대신 사용되는 경계 지점(하나 이상의 R, G, B는 1)을 제외하고 정방향 차이를 사용하여 계산됩니다. 야코비안 행렬의 역순으로 계산하는 대신, 선형 시스템은 전체 피벗과 함께 Gauss-Jordan 제거를 사용하여 직접 해결됩니다.
반복이 끝나면 Newton-Raphson이 "로컬" 알고리즘이기 때문에 수렴이 아직 달성되지 않을 수 있습니다. 즉, 실제 솔루션에 가까운 초기 추측으로 시작하는 경우에만 잘 작동합니다. Newton-Raphson 반복이 끝날 때 미리 정의된 오차 허용 범위 내의 수렴이 달성되지 않은 경우 다음과 같이 정의된 새 시드 집합으로 반복이 다시 시작됩니다.
예를 들어 지금까지 얻은 최상의 솔루션은 (r, g, b)입니다. 이 솔루션에서 N은 후방 씨앗이 파생되며 여기서 N = 4입니다. 직관적으로 솔루션은 N에 의존하는 단계 크기로 "가운데로" 이동됩니다. 그림 6을 참조하세요.
그림 6 : 솔루션의 섭동 방향은 솔루션이 있는 8진수에 따라 달라집니다.
즉, r > 0.5이면 R 채널의 값이 감소하고, 그렇지 않으면 값이 증가합니다. G 및 B 채널에 대해 비슷한 논리가 있습니다. 정확한 정의는 다음과 같습니다.
PERTURBATION = 0.5/(N+1)
Dir(r) = -1이면 r > 0.5, 그렇지 않으면 +1입니다. Dir(g) 및 Dir(b)의 경우와 유사합니다.
The jth a posteriori seed, s ????, is (r + Dir(r) *j * PERTURBATION, g + Dir(g) * j * PERTURBATION, b + Dir(b) * j * PERTURBATION)
첫 번째 ???? 사용해 보세요. 오류 허용 오차 내에서 새 솔루션을 제공하는 경우 중지할 수 있습니다. 그렇지 않으면 두 번째 ???? 시도합니다. N번째 ????. 때까지 등등
전체 알고리즘의 도형은 그림 7에 나와 있습니다.
그림 7 : 디바이스 모델 반전의 도식
RGB 가상 디바이스 모델 기준
이 DM(디바이스 모델)은 간단한 행렬/톤 재현 알고리즘입니다. 행렬은 표준 색 과학 알고리즘을 사용하여 흰색 점 및 주 데이터베이스에서 파생됩니다. 톤 재생 곡선은 CurveType 및 ParametricType의 ICC 설명에 따라 측정 매개 변수에서 파생됩니다(또는 필요에 따라 반전됨). 내부 알고리즘의 세부 정보는 높은 동적 범위 문제의 추가 유효성 검사 후에 제공됩니다.
RGB 가상 디바이스 모델은 ICC 3개 구성 요소 매트릭스 기반 프로필 디자인과 유사한 이상적인 매트릭스/톤 재생 곡선 RGB입니다. DM의 "가상 측정" 매개 변수에는 흰색 점 값(절대 CIEXYZ), RGB 기본 값(절대 CIEXYZ) 및 DMP 스키마와 일치하는 XML 서식의 ICC ParametricCurveType 및 CurveType을 기반으로 하는 톤 재현 곡선이 포함됩니다.
다음 표에는 IRGBVirtualDeviceModelBase의 ICC parametricCurveType 함수 형식 인코딩 및 해당 지원이 나와 있습니다.
함수 유형 | 매개 변수 | Type | 참고 항목 |
---|---|---|---|
![]() |
g |
GammaType |
일반적인 구현 |
![]() |
ga b |
GammaOffsetGainType |
CIE 122-1966 |
![]() |
ga b c |
GammaOffsetGainOffsetType |
IEC 61966-3 |
![]() |
ga b c d |
GammaOffsetGainGainType |
IEC 61966-2.1 (sRGB) |
![]() |
ga b c d e f |
해당 없음 |
WCS에서 지원되지 않음 |
RGB 가상 디바이스의 톤 곡선은 입력 데이터, pDeviceColors 및 행렬 곱하기 사이에 DeviceToColorimetric에 적용됩니다. ColorimetricToDevice의 경우 톤 곡선을 반전하는 데 메서드를 사용해야 합니다. 기준 구현에서 이 작업은 DeviceToColorimetric에 사용되는 것과 동일한 톤 곡선의 직접 보간을 통해 수행됩니다.
곡선은 부동 공간의 숫자 쌍으로 프로필에 지정해야 합니다. 첫 번째 숫자는 pDeviceColors의 값을 나타냅니다. 두 번째 숫자는 톤 곡선의 출력을 나타냅니다. 톤 곡선의 모든 값은 minColorantUsed와 maxColorantUsed 사이여야 합니다. 톤 곡선에는 minColorantUsed와 maxColorantUsed에 대한 항목이 하나 이상 포함되어야 합니다. ToneCurve의 최대 항목 수는 2048개입니다. 일반적으로 테이블에 항목이 많을수록 곡률을 보다 정확하게 모델링할 수 있습니다. 항목 간에 증분 선형 보간이 수행됩니다.
대체 보간 방법을 고려할 수 있습니다. 디바이스의 기본 동작에 대해 알고 있는 경우 더 적은 수의 샘플을 사용하고 더 높은 순서 곡선으로 보다 정확하게 모델링할 수 있습니다. 그러나 잘못된 곡선 형식을 사용하는 경우 매우 부정확합니다. 자세한 정보가 없으면 곡선 유형을 추측할 수 없습니다. 따라서 선형 보간을 사용하고 많은 데이터 요소를 제공합니다.
CMYK 프린터 디바이스 모델 기준
CMYK 프린터의 디바이스 특성화는 지정된 CMYK 값에 대해 인쇄된 색을 예측하는 디바이스의 경험적 모델을 생성하는 것으로 구성됩니다. 또한 이 특성에는 지정된 색을 인쇄할 CMYK 값의 처방이 제공될 수 있도록 이 모델의 반전도 포함됩니다. 이는 일반적으로 CIEXYZ 또는 CIELAB 값 측면에서 정의됩니다.
일반적으로 CMYK 패치를 포함하는 IT8.7/3 대상이 사용됩니다. 패치는 잘 정의된 방식으로 CMYK 공간의 샘플링으로 구성되므로 직사각형 그리드(C, M, Y 및 K에서 균일하지 않은 간격 포함)가 형성됩니다. 각 패치는 색계 또는 분광계로 측정됩니다. CIEXYZ 값의 측정값은 프린터의 경험적 모델이 사카모토의 보간 방법을 사용하여 빌드되는 LUT(조회 테이블)를 형성합니다. 미국 특허 4275413 (사카모토 외), 미국 특허 4511989 (사카모토), 강 [1]. 멘션 두 개의 특허가 만료되었습니다.
디바이스 모델 프로필이 CMYK 프린터 기준 디바이스 모델에서 유효한 것으로 허용되는 데 필요한 CMYK 측정 샘플에 대한 특정 요구 사항은 다음과 같습니다. (샘플 집합은 각각 특정 K 수준과 연결된 CMY 샘플 큐브 집합으로 가장 명확하게 설명됩니다.)
최소한 K = 0 및 K = 100 수준에 유효한 CMY 큐브를 제공해야 합니다.
중간 K 수준은 균일하지 않은 간격일 수 있습니다.
유효한 CMY 큐브가 없는 중간 K 수준은 무시됩니다.
CMY 큐브는 균일하지 않은 샘플 간격(그리드 간격)을 사용할 수 있지만, 지정된 K 수준에 대해 CMY 큐브의 모든 C, M 및 Y 차원에서 동일한 샘플 간격 집합을 사용해야 합니다.
각 K 수준 CMY 큐브는 샘플 간격의 다른 수와 간격을 사용할 수 있습니다.
모든 CMY 큐브에는 CMY 큐브의 "모서리", 즉 [0,0,0]의 CMY 샘플이 포함되어야 합니다. [0,0,100], [0,100,0], [100,0,0], [0,100,100], [100,0,100], [100,100, 0], [100,100,100].
중간 CMY 그리드 수준은 각 채널에서 완전히 샘플링되어야 합니다. 즉, 샘플은 CMY 큐브 내의 각 3차원 그리드 교집합에 있어야 합니다.
K = 0 및 K = 100 CMY 큐브의 경우 2x2x2 "corners-only" 큐브는 유효한 최소값으로 허용됩니다.
[참고: K=0 및 K=100 수준의 경우 3x3x3 CMY 큐브는 2x2x2 "corners-only" 큐브로 처리되고 중간 샘플 수준은 무시됩니다. 4x4x4 및 더 큰 큐브에는 모든 온-그리드 샘플이 사용됩니다.]
중간 K 수준의 경우 4x4x4 CMY 큐브는 유효한 최소값으로 허용됩니다.
고품질 프로필은 유효성 검사에 필요한 최소값(일반적으로 9x9x9x9 이상)보다 더 미세한 샘플링 그리드를 사용합니다. IT8.7/3, IT8.7/4 및 ECI 대상의 샘플은 CMYK 프린터 기준 디바이스 모델에 유효한 DMP(디바이스 모델 프로필)를 생성합니다. 이 디바이스 모델은 이러한 대상에서 불필요한(오프 그리드) 샘플을 무시할 수 있지만 다른 대상에 대해 이 작업을 수행할 수 있는 것은 아니므로 이 디바이스 모델의 프로필로 들어가는 측정 집합에서 불필요한 샘플을 제거하는 것이 좋습니다.
프린터 모델의 반전은 더 많은 어려움을 제공합니다. CIECAM의 입력 색이 지정된 경우 이 색이 프린터 영역 내에 있는지 여부에 대한 질문이 있습니다. 색 모양 공간에서 점의 배열과 관련된 문제도 있습니다. IT8.7/3 대상에서 수행한 것처럼 CMYK 값을 직사각형 그리드에 배치할 수 있지만 색 모양 공간에 배치된 결과 인쇄된 색도 마찬가지입니다. 일반적으로 특정 패턴이 없는 색 모양 공간에 분산되어 있습니다.
일반적으로 분산된 지점의 반전 문제에 대한 두 가지 방법이 있습니다. 한 가지 방법은 tetrahedra와 같은 기본 3차원 고체를 사용하여 프린터 영역의 기하학적 세분화를 사용하는 것입니다. 색 모양 공간에서 프린터 영역의 세분화는 CMY(K) 공간의 해당 세분화에서 유도될 수 있으며, Hung[93], Kang[97]을 참조하세요. 이 방법은 계산 단순성의 장점이 있습니다. 테트라에드론의 경우 보간에 4개의 점만 사용됩니다. 반면, 결과는 몇 가지 점에 따라 크게 달라지는데, 이는 측정 오차가 결과에 큰 영향을 미친다는 것을 의미합니다. 보간은 또한 매끄럽지 않은 경향이 있습니다. 두 번째 방법은 세분화를 가정하지 않으며 분산된 데이터 보간 기술을 기반으로 합니다. 고전적 예는 셰퍼드 보간 또는 역 가중치 메서드의 기술입니다(셰퍼드 [68] 참조). 여기서 입력 지점을 둘러싼 여러 지점이 어떤 방식으로 선택되고, 각각은 일반적으로 거리에 반비례하는 가중치를 할당하고, 보간은 인접 지점의 가중 평균으로 간주됩니다. 이 방법에서 인접 지점 선택은 성능에 가장 중요합니다. 너무 적은 포인트는 보간을 부정확하고 매끄럽지 않은 것으로 렌더링할 수 있지만, 가중치는 일반적으로 비선형 함수이고 계산 비용이 많이 들기 때문에 너무 많은 포인트는 높은 계산 비용을 부과합니다.
위에서 설명한 두 가지 방법은 모두 문제가 있습니다. 세분화 방법은 노이즈가 합리적으로 무효인 데이터에 크게 의존하며, 일반적으로 보간은 매우 원활하지 않습니다. 분산된 데이터 보간은 데이터 노이즈에 더 관대하며 일반적으로 보간이 더 원활하지만 계산 비용이 더 많이 듭니다.
새 CTE는 대체 방법을 사용합니다. CMYK 디바이스는 각각 특정 값이 검정(K)인 여러 CMY 디바이스의 컬렉션으로 처리됩니다. 매개 변수 가벼움 및 크로마로 사용하는 선택 알고리즘을 사용하면 검정 수준이 선택됩니다. CMY 값은 RGB 프린터 알고리즘에서 다른 곳에서 사용하는 Newton 메서드를 사용하여 해당 CMY를 Luv 테이블로 반전하여 가져옵니다.
다음 단계를 사용하세요.
- IT8.7/3 대상인 특성화 대상 또는 CMYK 공간의 샘플링을 정기적으로 또는 불규칙하게 간격으로 포함하는 대상을 인쇄합니다.
- 분광광계를 사용하여 대상을 측정하고 측정값을 CIELUV 공간으로 변환합니다.
- CMYK에서 Luv로의 전달 맵을 생성합니다.
- 정방향 맵을 사용하여 K 값 범위에 대한 CMY-Luv 맵 집합을 생성합니다.
- 입력 Luv 값의 경우 위의 4단계에서 생성된 맵 중 하나를 선택하고 Newton의 메서드를 사용하여 선택한 K 값과 함께 CMY 색인 집합을 가져와 해당 CMYK 값을 가져옵니다.
표준 프로시저인 1단계와 2단계는 새 CTE의 일부가 아닌 프로파일링 프로그램에서 수행됩니다. IT8.7/3 대상은 C, M, Y 및 K의 다양한 수준에서 모든 CMYK 값의 합리적으로 상세한 샘플링을 포함하며, 또는 C, M, Y 및 K 채널의 균일한 샘플링을 사용하는 사용자 지정 대상을 사용할 수 있습니다. 대상이 인쇄된 후 분광계 또는 색계를 사용하여 각 패치의 XYZ 값을 측정할 수 있으며, XYZ 값은 CIELUV 모델을 사용하여 Luv 값으로 변환할 수 있습니다.
3단계에서는 CMYK에서 Luv로의 정방향 맵 생성을 CMYK 공간의 사각형 그리드에 테트라데랄 또는 다선형 메서드와 같은 알려진 보간 기법을 적용하여 달성할 수 있습니다. 새 CTE에서는 4차원 테트라데랄 보간이 사용됩니다. 그러나 CMY 샘플링 그리드는 일반적으로 K의 각 수준에서 다르기 때문에 아래에 자세히 설명된 대로 슈퍼 샘플링 기술을 사용합니다. 지정된 CMYK 지점의 경우 샌드위치 K 수준은 먼저 K 값에 따라 결정됩니다. 그런 다음 각 K 수준에서 두 K 수준 각각에 CMY 그리드의 통합인 "슈퍼 그리드"를 도입합니다. 각 K 수준에서 새로 도입된 그리드 지점의 Luv 값은 해당 K 수준 내의 3차원 테트라데랄 보간을 통해 가져옵니다. 마지막으로, 특정 CMYK 지점에 대한 4차원 테트라에드랄 보간이 이 새로운 그리드에서 수행됩니다.
그림 8 : 슈퍼 샘플링
4단계는 CMY-Luv 조회 테이블(LUT) 집합을 생성합니다. 3단계에서 생성된 전방 맵은 CMYK 공간을 다시 샘플링하기 위해 반복적으로 호출됩니다. CMYK 색 공간은 짝수 간격과 다른 CMY 샘플링을 사용하여 샘플링되지만 여전히 균등하게 간격이 지정됩니다.
5단계는 입력 Luv 지점에 대해 4단계에서 생성된 LUT를 사용하여 CMYK 값을 가져오는 절차입니다. K의 적절한 값은 요청된 Luv의 색 수준뿐만 아니라 가벼움을 분석하여 선택합니다. 테이블을 선택한 후 CMY 값은 Newton의 메서드를 사용하여 테이블에서 가져옵니다(앞에서 RGB 프린터 디바이스 모델에 설명된 대로).
CIELUV 공간은 디바이스 모델이 DMP에서 사용할 수 있는 색인 데이터만을 기반으로 해야 하므로 CIEJab 대신 프린터 모델에 사용됩니다. DMP는 미디어 화이트포인트를 포함하여 측정된 각 패치에 대한 색인 데이터를 포함하므로 CIEXYZ 데이터를 CIELUV 데이터로 변환할 수 있습니다. 그러나 DMP에서 보기 조건 정보에 액세스할 수 없으므로 CIECAM02 JCh 또는 Jab으로 변환할 수 없습니다.
RGB 프로젝터 디바이스 모델 기준
참고: 많은 RGB 프로젝터에는 둘 이상의 작동 모드가 있습니다. 기본값이며 "프레젠테이션"과 같이 호출될 수 있는 한 모드에서는 프로젝터의 색 응답이 최대 밝기를 위해 최적화됩니다. 그러나 이 모드에서는 프로젝터에서 옅은 노랑 및 살색과 같은 약간 색채의 조명을 재현하는 기능이 손실됩니다. "영화", "비디오" 또는 "sRGB"라고도 하는 다른 모드에서는 프로젝터에서 사실적인 이미지와 자연스러운 장면을 재현하는 데 최적화되어 있습니다. 이 모드에서는 색 재현의 전반적인 품질을 개선하기 위해 최대 밝기를 절전 모드로 전환합니다. RGB 프로젝터로 만족스러운 색 재현을 얻으려면 부드러운 색 영역을 재현할 수 있는 모드로 프로젝터를 배치해야 합니다.
그림 9 : DLP 디바이스 모델
들어오는 RGB 값은 두 개의 계산 경로를 통과합니다. 첫 번째는 XYZ 값을 생성하는 행렬 모델입니다. 바로 뒤에 XYZ에서 Luv로 변환됩니다. 두 번째는 테트라데랄 보간을 사용하는 균일하지 않은 LUT 보간입니다. 보간 출력은 이미 생성을 통해 Luv 공간에 있습니다. 예측된 Luv 값을 얻기 위해 두 개의 출력이 추가됩니다. 마지막으로 DLP 디바이스에 대한 색 인식 모델의 예상 출력인 XYZ로 변환됩니다.
프로젝터는 디스플레이 디바이스이므로 모델의 반전, 즉 XYZ에서 RGB로의 변환도 지원합니다. 디바이스 모델은 RGB 공간을 3차원인 XYZ 공간으로 변환하므로 반전은 3개의 알 수 없는 세 가지 비선형 수식을 해결하는 것과 같습니다. 이 작업은 Newton-Raphson과 같은 표준 방정식 해결 기술로 수행할 수 있습니다. 그러나 Luv 공간은 XYZ 공간보다 지각 선형이므로 먼저 XYZ를 Luv로 변환한 다음 Luv To RGB 변환을 반전하는 것이 좋습니다.
ICC 디바이스 모델 기준
CITE ICC 워크플로 상호 운용성은 프로필 개체를 저장하고 no-op XYZ 프로필을 사용하여 ICC 변환을 만드는 특수 ICC 디바이스 기준 디바이스 모델 프로필을 만들어 활성화됩니다. 이 변환은 디바이스와 CIEXYZ 색 간에 변환하는 데 사용됩니다.
그림 10 : CITE ICC 워크플로 상호 운용성