Skip to main content
Skip table of contents

Calibration groups


This page applies to Harlequin v13.1r0 and later; both Harlequin Core and Harlequin MultiRIP.

The type 6 calibration dictionary allows the use of calibration groups containing multiple calibration sets. Each calibration set contains a set of curves for each colorant and criteria, such as the page resolution, or halftone for which this calibration set applies. When calibration groups are in effect, the RIP will select the best calibration set from the group to use for each object and colorant channel on the page, based on comparing the criteria in the /WarningsCriteria dictionaries for the calibration sets to the properties of each object. If, for example, different objects on a single page use different dot shapes, a calibration group can be used to ensure that the appropriate calibration set is applied to each object.

For information about installing these dictionaries as calibrations, see The setcalibration operator.

Type 6 dictionary form

This section describes the format of the Type 6 calibration dictionary.

TEXT
            % Type 6 dictionary-based calibration
            <<
              /CalibrationType 6
              /MissingCalibrationAbort Boolean
              /Device [ << … >> … << … >> ] or << … >>
              /Tone [ << … >> … << … >> ] or << … >>
              /IntendedPress [ << … >> … << … >> ] or << … >>
              /ActualPress [ << … >> … << … >> ] or << … >>
            >>

The sub-dictionaries, shown here by << ... >> are the Calibration set sub-dictionaries.

Key description:

/CalibrationType

(Required), always has value 6.

/MissingCalibrationAbort

(Required), when set to true the RIP will generally abort a job if any calibration related warning is issued. Set to false to continue where possible. Where calibration groups are in effect, the RIP will abort the job in any case if the group does not contain a suitable calibration for the object and colorant in use.

/Device, /Tone, /IntendedPress, /ActualPress

(Optional), four types of calibration curves can be supplied. Their values are either an array of calibration set sub-dictionaries (forming a calibration group), or a single calibration set sub-dictionary.

For more information see Calibration set sub-dictionaries.

When a single calibration set sub-dictionary is specified, the RIP will attempt to use this regardless of whether the criteria, for example the halftone, match the object to which it is being applied. Warnings would, however, be issued and the job would be aborted if /MissingCalibrationAbort is set.

By contrast, if an array of dictionaries is specified (even if it contains only one calibration sub-dictionary), this will be treated as a calibration group and the job will be aborted if its criteria do not match the object and colorant being calibrated, regardless of the value of /MissingCalibrationAbort.

Calibration set sub-dictionaries

This section describes the contents of a calibration set sub-dictionary:

TEXT
            <<
              /Cyan dict
              /Magenta dict
              /Yellow dict
              /Black dict
              /Default dict
              /Spot1 dict
              /Spot2 dict
              /WarningsCriteria dict
              /ForceSolids Boolean % default false
              /NegativePrint Boolean % default false
              /CalibrationName name or string
              /BumpUpCurve array
            >>


Key description:

/Cyan, /Magenta, /Yellow, /Black, /Default, /Spot1, /Spot2,...

(Optional), their values must be type 2 colorant sub-dictionaries. The keys including /Default may be provided as either names or strings. The dictionary may contain colorant sub-dictionaries for any number of channels. Use a /Default colorant sub-dictionary if you wish to provide calibration curves for any colorants in the job for which no colorant subdictionary is explicitly provided. See Type 2 colorant sub-dictionaries for details of the sub-dictionaries.

/WarningsCriteria

(Optional), when the calibration set sub-dictionary is part of a group these criteria act as selection criteria, specifying the circumstances under which a particular calibration set should be used.

When the calibration set is not part of a group, these criteria can be used to specify when there will be warnings about use of unsuitable calibration sets. In this case the behavior is as for type 5 calibration dictionaries. For more information about this case see WarningsCriteria subdictionary (N-color calibration) and Curve-related subdictionaries (N-color calibration).

If present, /WarningsCriteria accepts the optional keys shown in the following example:

TEXT
<<
  /HWResolution [xRes yRes]
  /Exposure integer
  /NegativePrint Boolean
  /HalftoneName (internal_name)
  /Frequency [low high]
>>

/HWResolution is the page resolution to which this calibration applies.

/Exposure is a number that can be used to represent the film device exposure to which this calibration applies.

/NegativePrint when true indicates that this calibration should only be used when the device is printing a negative image of the job. When false indicates that this calibration should only be used when the device is printing a positive image of the job.

/HalftoneName is the internal name for the spot function. For example, HXM_Flexo_5080_200_60.

/Frequency is the screen frequency range for which this calibration applies.

If any of these entries are absent it implies that this calibration set may be used for any value of the relevant condition. For example, if /HWResolution is absent from the /WarningsCriteria dictionary, this calibration set may be used for any page resolution. If /NegativePrint is absent, this calibration set may be used when printing either a positive or a negative image of the job.

/ForceSolids

(Optional), /ForceSolids can also appear in the colorant sub-dictionaries. When absent or false the value is determined by any values given in the colorant sub-dictionaries. When true this overrides any values given in the colorant sub-dictionaries. See Type 2 colorant sub-dictionaries for details.

/NegativePrint

(Optional), set /NegativePrint to true if the device will be printing a negative image of the job, to allow the calibration to be suitably adjusted. This value is ignored for /ActualPress, /Tone or /IntendedPress calibrations.

/CalibrationName

(Optional), if two calibration sub-dictionaries in a group would be an equally good match for the object and colorant channel in use, the one whose /CalibrationName comes earlier in the alphabet will be applied. In this situation, a calibration sub-dictionary with a /CalibrationName would be preferred over an anonymous one.

/BumpUpCurve

(Optional), this key is only relevant to /ActualPress sub-dictionaries, and any entry in a /Device, /Tone or /IntendedPress sub-dictionary is ignored. For more information see Bump-up curves. If you want to apply a bump-up curve in Harlequin Core, you must apply it using the /BumpUpCurve array in the /ActualPress calibration.

Type 2 colorant sub-dictionaries

The values associated with each colorant are dictionaries containing the calibration curves for the colorant. There may be a /Default colorant sub-dictionary which will be used for all colorants for which there is no explicitly named dictionary. In addition, the /Curve from the /Default colorant subdictionary is a default for all the colorant sub-dictionaries, so will be used for any cases where the colorant sub-dictionary is present but does not contain a /Curve key.

If a colorant sub-dictionary does not have a /Curve entry and there is no /Default entry either, it uses the /Black entry if present. Failing that, it falls back to linear.

The possible keys in each colorant dictionary are:

TEXT
            /colorant_key <<
              /CalibrationType 2
              /Curve array
              /ForceSolids Boolean % default false
            >>

Key description:

/CalibrationType

(Required), must have value 2.

/Curve

(Optional), the /Curve array may be provided in any of the following forms:

  • /Curve [device pairs]
    that is:
    /Curve [SNV NDC ... SNV NDC]
  • /Curve [[device pairs][default pairs]]
    that is:
    /Curve [[SNV SGV ... SNV SGV][SGV NDC ... SGV NDC]]

  • /Curve [[][default pairs]]
    that is:
    /Curve [[][SGV NDC ... SGV NDC]]

/ForceSolids

(Optional), set to true if 100% colorant is to be preserved even if the calibration curve specifies a lower output value for an input value of 100%. (Not normally recommended for calibration strips. HMR automatically sets this to false for calibration strips.)

Legend:

  • SNV - ScriptWorks Nominal Value
  • NDC - Nominal Device Code
  • SGV - ScriptWorks Golden Value

For more information on SNV, NDC and SGV values, see Calibration array details.

All of these formats are supported for all 4 curve types, that is, Device, ActualPress, Tone, or IntendedPress. However, the extended form containing two sub-arrays is only likely to be useful for Device and possibly ActualPress. For order of application, see Order of application of calibration and transfer functions.

The two subarrays, if present, do not have to contain the same number of pairs. Each array or sub-array must either be zero length (which implies linear calibration), or contain at least two calibration points (4 values).

At least some of the NDC or SGV values must be in the range 0 through 1, with values outside this range ignored. The values should be strongly monotonic in each curve: that is, strictly increasing or decreasing with no values equal.

SNV values in the arrays are expected to overlap the range of 0 through 1 and be weakly monotonic in each curve: that is, consistently increasing or decreasing but allowing consecutive values to be equal. Some values may be outside the range of 0 through 1 but only that part of the range that lies in the range 0 through 1 is used by setcalibration.

Tone curves can be inverted though they must still be monotonic. Again, the RIP will support the extended form of tone curves if provided.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.