KCMS CMM Developer's Guide

Transformations

Transformations are represented by an array of pointers to instances of the KcsXform class hierarchy. This array is indexed by the enum type KcsXformType.

The logical transformation types are listed in Table 5-2 .


Note -

In Table 5-2 , RCS refers to reference color space. This Kodak term is equivalent to profile connection space (PCS).


Table 5-2 Logical Transformation Types

KcsXformType Values

Logical Transformation Type 

Description 

KcsSftIntoRCS = 0

into-RCS

Input color space to the output color space which can be one of the standard references. 

KcsXftOutofRCS = 1

outof-RCS

Output color space (possibly one of the standards) to the input color space. 

KcsSftFwdEffect = 2

forward-RCS-effect

An effect that goes from a color space to that same color space.  

KcsXftRvsEffect = 3

reverse-RCS-effect

Inverse of forward-RCS-effect. 

KcsXftFwdSimulate = 4

simulation-RCS

Special processing done to device's output, if simulation is desired on another device. If there is not a simulation-RCS transformation, the KCMS framework defaults to connecting the outof-RCS to the into-RCS transformations, which generates an RCS-to-RCS transformation that approximates the simulation. This results in a clip close to the simulation normally seen on devices. Currently, profiles do not supply simulation-RCS transformations by default. This connection technique fails on profiles that perform gamut-mapping. 

KcsXftFwdGamut = 5

gamut-test-RCS

Provides all gamut testing for the device. The gamut-test-RCS transformation output is a set of 8-bit values representing how much this particular data is out of gamut for all n components.

KcsXftFwdComplete = 6

complete-forward transform

Profile's transformation from a source device to a destination device. It includes any intermediate effects connected to the chain. 

KcsXftRvsComplete = 7

complete-reverse transform

Goes from the destination device backwards through any of the inverse effects and then into the color space of the input device. 

KcsXftRcsSimulate = 8

complete-simulate transform

Maps the pixels from the source device through the destination device, its simulationtransformation, and ultimately to the destination device (the device on which you are viewing the data). 

KcsXftRCSGamut = 9

complete-gamut transform

Gamut test for whole chain. 

The set of types in Table 5-2 refer to RCS. However, the KCMS framework supports a non-RCS model where there is no RCS. The only mandate is that CMMs support the standard references (CIEXYZ and CIELAB) and that the color spaces match between connections. (Even this mandate is not strictly applied since the KcsProfile base class connect()() method automatically inserts profiles if that creates a match).

Instead of referring to the into-RCS transformation as going from a non-RCS into a RCS, the ICC specification describes a transformation from an input color space to an output color space. The output may be one of the standard references if it is a device profile.

Transformation Type Methods

The methods supplied to the evaluate()() method of the derived class choose which KcsXform instance to use. The KcsForward()(), KcsReverse()(), KcsSimuate()(), and KcsGamutTest()() methods map directly to the corresponding complete transformation types.