(v13) Raster band control
This page applies to Harlequin v13.1r0 and later; both Harlequin Core and Harlequin MultiRIP.
There are two ways of determining how the RIP calculates the band height. The most common method is the use of the /MaxBandMemory
system parameter (see below). Alternatively, use the pagedevice
parameter /BandHeight
to explicitly control the height of bands. For more information, see BandHeight.
MaxBandMemory
If the /BandHeight
page device parameter is not given, or given as null
(the default), the RIP determines the band height with the help of the /MaxBandMemory
system parameter (a float) measured in mebibytes.
This parameter controls the maximum memory set aside for band rendering.
The RIP divides the /MaxBandMemory
amount equally between the number of renderer threads. Two renderer threads, for example, each gets one half of /MaxBandMemory
.
The band height is calculated to use as many lines as possible within the given memory.
The Memory per renderer thread option in the Configure RIP Options dialog, and the underlying RendererThreads
system parameter are used by the ExtraStart
file called SetMaxBandMemory
to set the system parameter accordingly.
If you currently set /MaxBandMemory
via HqnOEM
this overrides the ExtraStart
file. The default value of /MaxBandMemory
in non-GUI RIPs is set to 1.5 MBs per renderer thread.
Each thread’s allowance needs to be able to hold one output band plus other essential buffers needed by the renderer. This makes predicting the actual output band height non-trivial, as it needs to take into account the width and bit-depth of the output raster, as well as the space needed for essential buffers.
The essential buffers are larger when module screening is installed (that is, when they are registered), because of the contone and object map buffers (16 bits-per-pixel each), that might be needed as input to the modules.
You can find the chosen band height by using the following code snippet:
<<
/StartRender <<
/ReportBandHeight {
(...DIAGS: Actual Band Height (lines) == )=print (%pagebuffer%) currentdevparams /BandHeight get ==
}
>>
>> setpagedevice
A message returns in the form:
..DIAGS: Actual Band Height (lines) == 145
BandHeight
The /BandHeight
pagedevice parameter specifies the number of lines required per band. Provided enough memory can be allocated, the RIP honors this number.
If enough band space cannot be allocated, setpagedevice
raises a VMerror
.
A CONFIGURATIONERROR
means that the printer buffer is too small (the printer buffer needs to be large enough to hold two output bands).
If BandHeight
is set to a negative number (-x
), the band height becomes the RIP calculated band height mod(x) * x
(that is, the calculated band height rounded down to the nearest value which is perfectly divisible by x
).
No GUI control is yet provided for this parameter.