Order of application of calibration and transfer functions
This page applies to Harlequin v13.1r0 and later; both Harlequin Core and Harlequin MultiRIP.
It is important to know the order in which the calibration methods are applied, because the operations are not commutative and using a different order would produce different results.
The order of transformations is as follows:
- Any black generation and undercolor removal. These are caused by conversion from RGB (or device independent color spaces that produce RGB as an intermediate space) to CMYK, unless the user parameter
IgnoreSetBlackGeneration
istrue
. This applies only whereDeviceRGB
colorspace is used by the job and when no color management is applied. - Any transfer function set by
settransfer
, orsetcolortransfer
, unless theUseAllSetTransfer
user parameter isfalse
, in which casesethalftone
transfer functions or interpolation arrays override these, even if they are empty procedures; or unless theIgnoreSetTransfer
user parameter istrue
. - Any color conversions arising from color management facilities.
- Any negation implied by the
NegativeJob
user parameter. - Any relevant transfer function or interpolation array given in the
sethalftone
operator. - Interpolation arrays set up with
setcalibration
.- For any given object and colorant channel, once the appropriate calibration set sub-dictionaries (where present) have been chosen for each of the four device types, the calibration curves are applied in the following order:
/IntendedPressCurve, /ToneCurve, /ActualPressCurve, /DeviceCurve.
It is very unusual to have all of these elements applied in any given workflow. - Theoretically, each of the four curve types can be split into default and device curves; a bump-up curve may be present for
/ActualPress
, so up to nine curves may be applied as follows:
- For any given object and colorant channel, once the appropriate calibration set sub-dictionaries (where present) have been chosen for each of the four device types, the calibration curves are applied in the following order:
(1) Default Intended Press Curve
(2) Intended Press Curve
Generally, we do not recommend using an /IntendedPress
calibration in conjunction with Color Management. Where Color Management is in effect, this is usually a better way to account for a job that is not being printed on the press for which it was intended.
(3) Default Tone Curve
(4) Tone Curve
The first four curves are applied as backwards curves, though you still supply the data as if it were a forwards curve (that is, [SNV NDC …] pairs, and the default curve is applied before the corresponding actual curve.
- Then continuing:
(5) Actual Press Curve
(6) Default Actual Press Curve
(7) BumpUpCurve for the Actual Press
(8) Device Curve
(9) Default Device Curve
In our implementation provided in the HqnPageSetupConf
and HqnCalibrate
procsets we only provide a separate default curve for the Device Curve.
- Of course, in many situations there may be no
/IntendedPress
or/Tone
sub-dictionaries, and there may only be an/ActualPress
curve (perhaps with/BumpUpCurve
) or, simply a/DeviceCurve
. Or there may be both an/ActualPress
curve to compensate for dot gain on the press, and a/DeviceCurve
to compensate for any non-linearities in the film device. Any absent calibrations are effectively treated as linear.
- Of course, in many situations there may be no
- An interpolation array set up with the
TransferFunction
user (formerly system) parameter. - Any negation implied by the
NegativePrint
page device key (which is theoretically done in the device itself, but may sometimes be done in software, depending on the capabilities of the device).
Default
entry if there is no specific entry in the halftone dictionary for the spot color. They also use the black transfer function as set up by settransfer
or setcolortransfer
(if UseAllSetTransfer
is true
), and the black setcalibration
interpolation array.