(v13) Color performance and accuracy
This page applies to Harlequin v13.1r0 and later; both Harlequin Core and Harlequin MultiRIP
Text and other objects
The color of these objects are evaluated through the full color pipeline for all input colors.
Vignette objects
By default, shadings are evaluated through the full color pipeline whilst establishing regions of the shading that are linear within the tolerance of the current smoothness parameter of the graphics state. The color is then interpolated between within these linear regions. As the smoothness is changed towards zero, better color accuracy is achieved at the expense of performance. The MinSmoothness and MaxSmoothness user parameters control the range of allowed values of smoothness; see (v13) System and user parameters .
If the FasterColorGradients system parameter is true, the colors that are otherwise evaluated through the full color pipeline are instead evaluated through the same internal grid described in Picture objects . This can significantly boost performance for some shadings with some color pipelines at the expense of some further loss of color accuracy above that imposed by the graphics state's smoothness.
Note: For more information regarding the FasterColorGradients system parameter, see (v13) System and user parameters .
Picture objects
Images wouldn't normally be evaluated accurately for every image pixel because performance would be poor. Instead, the RIP constructs an internal grid over the color space for each image, similar in
principle to a DeviceLink ICC profile. Each node within the grid is evaluated accurately, while colors between the nodes are interpolated.
The accuracy of color is normally more than good enough for the default settings. Accuracy can be improved by increasing the number of grid points using the FasterColorGridPoints user parameter. Increasing the number of grid points (to 33, for example) will consume more memory and may result in slower performance. Testing on a production system is required to determine the trade-off between performance and accuracy.
In some cases, even a large value for FasterColorGridPoints isn't sufficient to retain highly non-linear color changes in the output. These highly non-linear changes are usually confined to a small number of mini-cubes (that is, regions between neighboring nodes of the grid), which can be handled by directly evaluating colors within them. If the FasterColorSmoothness user parameter is set appropriately, those mini-cubes are identified by comparing the interpolated and directly evaluated color at the mid-point of diagonals of all primary colorants in the mini-cube. If the difference in any component is more than the FasterColorSmoothness value, the mini-cube will not be interpolated. The value of FasterColorSmoothness is in the range of 0-1, but to be useful it should normally be set in the range of 0.01 to 0.1; a value too low will result in the same effect as disabling the grid with TableBasedColor with its performance cost, while a value that's too high will result in no change to the interpolation of all colors. The appropriate value must be determined experimentally for each system.
The interpolation method is normally tetrahedral (or an analogue for input components greater than 3). The interpolation method can be changed to Cubic using the FasterColorMethod user parameter at the expense of performance and memory usage. The Cubic method has not been found to produce more accurate color for any known cases.
"FasterColorMethod" applies to Harlequin v13.1r0 and earlier; both Harlequin Core and Harlequin MultiRIP. However, it will be OBSOLETE from Harlequin v14.0r0.
The internal grid can be disabled using the TableBasedColor system parameter. This would only normally be done in exceptional circumstances such as:
- Hardware assisted color
- The use of an ICC Alternate CMM that has its own internal grid. In this case, a decision should be made to determine whether to use the RIP’s image interpolation or whether to use that of the ICC alternate CMM.