Calibration
This page applies to Harlequin v13.1r0 and later; both Harlequin Core and Harlequin MultiRIP.
The PostScript language expects calibration to be done using transfer functions - see [RB3], and especially the settransfer
operator. However, it is common practice for jobs to abuse this to create other effects. For example, to create an image in a color tint, the image is typically represented as 8-bit data using the full range, and the color is produced by varying the range separately in each color component using a scaling transfer function. Therefore, the RIP provides additional facilities for varying the output intensities independently of transfer functions, (which also makes it simpler to configure them). Using these the RIP directly implements interpolation across an array of values, whereas when using transfer functions as described in [RB3] the RIP has to do this using a complicated series of tests and arithmetic involving PostScript-language operators, which can be slow.
The RIP provides three methods for linearizing grayscales in addition to the standard transfer functions set by settransfer
or setcolortransfer
. These methods are described in the following pages:
- Transfer functions and halftones
- The
The setcalibration operator
operator - The
The TransferFunction user parameter
user parameter
The most advanced method is to provide a dictionary to setcalibration
. In the Harlequin MultiRIP (HMR). this dictionary is automatically constructed from the calibration information in the Page Setup, or it may be set up via the PushCalibration
interface. These two routes allow the user to supply measurement data to the RIP which then automatically works out the required calibration curves for the dictionary. In the Harlequin Core (HHR) the calibration dictionary may be automatically set up via Push Calibration, or it can be explicitly provided in the configuration file.
Because jobs abuse transfer functions, calibration in graphic arts and page make-up applications should not be used: its effects would be added to those of the linearization in the RIP, producing the wrong results. Because some jobs use transfer functions for their own purposes, correct behavior is achieved in almost all cases if the transfer functions arising from settransfer
, setcolortransfer
and from halftone dictionaries are applied to the input (job) color space rather than the output (device) color space. This is the default behavior for the RIP.