(v13) Alternate CMMs ICC color management modules
This page applies to Harlequin v13.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 CMM API which is documented elsewhere (See Harlequin API Reference Manual ), 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. Details are described in full in (See Harlequin API Reference Manual ).
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 must be installed using setalternatecmm, for example:
(customers-icc-cmm) setalternatecmm
otherwise, an ICC configuration is exactly the same as for the built-in CMM. Examples of color pipelines using ICC transforms are used and described throughout this color section.
Note: The Alternate CMM API contains functionality for both ICC CMMs and CMM custom color spaces. If an Alternate CMM is only implementing an ICC CMM, the CMM custom color space specific parts of the API may be ignored except to set the declare_custom_colorspace and open_custom_colorspace entries to NULL. For an illustration of this see cmm_littlecms in the cmmeg directory of the SDK (see Harlequin Core Developer’s Guide ).