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:


1. 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 is true. This applies only where DeviceRGB colorspace is used by the job and when no color management is applied.


2. Any relevant transfer function or interpolation array given in the sethalftone operator.


3. Any transfer function set by settransfer, or setcolortransfer, unless the UseAllSetTransfer user parameter is false, in which case sethalftone transfer functions or interpolation arrays override these, even if they are empty procedures; or unless the IgnoreSetTransfer user parameter is true.


4. Any color conversions arising from color management facilities.


5. Any negation implied by the NegativeJob user parameter.


6. Interpolation arrays set up with setcalibration. /IntendedPressCurve, /ToneCurve, /ActualPressCurve, /DeviceCurve arrays are applied (in that order) to create a single calibration array which is then applied. 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. Therefore there could be eight curves applied as follows:


- Default Intended Press Curve

- Intended Press Curve

- Default Tone Curve

- Tone Curve


Note: These first four are backwards curves and the default curve is applied before the corresponding actual curve.


- Actual Press Curve

- Default Actual Press Curve

- Device Curve

- Default Device Curve


Note: In our implementation provided in the HqnPageSetupConf and HqnCalibrate procsets we only provide a separate default curve for the Device Curve.


7. An interpolation array set up with the TransferFunction user (formerly system) parameter.


8. 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). Spot colors use the transfer function from the Default entry if there is no specific entry in the halftone dictionary for the spot color. (If there is an entry, it must have a TransferFunction key; though, given the way separations are set up, it is difficult not to have an entry 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.