Alternate CMMs: ICC color management modules
This page applies to Harlequin v14.1r0 and later; both Harlequin Core and Harlequin MultiRIP
Color conversions in a RIP environment means converting color spaces from the PDL to the color space of the output device. Frequently, the RIP will be configured to perform the color management part of this conversion with ICC profiles. The RIP’s built-in CMS includes a capable ICC CMM which is used by default. This section describes the replacement of the built-in ICC CMM with that of an alternate CMM. It is intended for those cases where the built-in CMM is insufficient, for example; proprietary ICC tags are required to be taken account of in the transform, or the alternate CMM performs a non-standard transformation such as pure color preservation.
ICC CMMs are managed via the Alternate ICC CMM API, which describes how to write a C module to make an ICC CMM available to the RIP. Briefly, an alternate CMM module contains C code to handle ICC transforms that would normally be processed by the RIP’s built-in CMM. An ICC transform consists of either a source/destination profile pair, or a single DeviceLink profile. This section describes some of the high-level features of the API. For examples of CMM modules, see color management examples in the Core SDK. In particular, the LittleCMS CMM example replaces the built-in CMM with LittleCMS; whilst Pure color preservation with ICC transforms modifies some colors, with the remainder transformed by the built-in CMM.
When /NextDevice transforms are configured in the setreproduction operator, a color pipeline may contain several ICC transforms in sequence. Each of these transforms are provided to the alternate CMM in turn.
An Alternate CMM is installed using the setalternatecmm operator in a configuration file. The configuration may or may not use an optional params dictionary; for example:
(customers-icc-cmm) setalternatecmm
(customers-icc-cmm) << params-dictionary >> setalternatecmm
where the optional params-dictionary contains key/value pairs specific to the Alternate CMM that is being configured; some CMMs may not have any params. One example of the use of the params-dictionary is in the PureColor CMM example in the HHR SDK. Otherwise, an ICC configuration is the same as for the built-in CMM. Examples of color pipelines using ICC transforms are used and described throughout this color section.
Note: For the purpose of backward compatiblity, the Alternate CMM API contains functionality for both ICC CMMs and custom color space CMMs. New custom color space CMMs should be written using the custom color space CMM API.