(v13) 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:
<<
/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:
<<
/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.