Skip to main content
Skip table of contents

Black point compensation

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


Black point compensation (BPC) is a commonly used technique for making shadows appear as similar as possible on different devices, even with very different maximum densities. Without BPC, shadows may be rendered either too light, or too dark and saturated. The technique is used in conjunction with relative intents to smoothly map the whole tonal range from dark to light between source and destination profiles.

Black point compensation is explained in more detail in [BPC], which is an ISO standard. This specification only applies to source/destination ICC profile pairs. BPC cannot be applied if an ICC DeviceLink is used.

In the RIP, as well as ICC profile pairs, BPC will also be applied if the color transform pairs a source CIE-based space with a destination ICC profile. Most CIE-based color spaces in the PostScript language and PDF allow a black point to be set, which will be used as the source profile black point in the BPC algorithm.

BPC is enabled with the /BlackPointCompensation key of the setreproduction dictionary, as in this example:

CODE
<<
  /Profile (iccprofiles/SWOP.icc) (r) file
  /BlackPointCompensation true
>> setreproduction

BPC is applied to all color transforms using a destination profile from this setup. The source profile may come from either the color space in the job, or from setinterceptcolorspace.

In configurations that use /NextDevice dictionaries, for example; Emulation re-purposing, BPC is applied in each /NextDevice transform independently. The BlackPointCompensation key must be set in each /NextDevice dictionary when desired for that transform, as in this example:

CODE
<<
  /Profile (iccprofiles/SWOP.icc) (r) file
  /BlackPointCompensation true
  /NextDevice <<
    /Profile (iccprofiles/Inkjet.icc) (r) file
    /IntentMappings /AbsoluteColorimetric

    % Has no effect due to the absolute intent
    % It would have effect with a relative intent
    /BlackPointCompensation true
  >>
>> setreproduction

BPC has no effect on transforms using an absolute rendering intent, so there is no effect on the transform from SWOP to Inkjet in this example. BPC is still applied to the emulation transform from the source to SWOP.

In PDF 2 [PDF2] jobs, the BPC setting is part of the graphics state and may be set by the job. The BPC from the configuration is used as the default setting which a PDF2 job may change.

JavaScript errors detected

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

If this problem persists, please contact our support.