Spot function reference


Definition

Spot functions define the order in which pixels should be whitened as a cell lightened in colour. They are defined over the entire cell, and are called for each device pixel in the cell. The cell co-ordinate space ranges from -1.0 .. +1.0 inclusive, in both x- and y-axes.

This means the spot function f(x, y) must be defined for:
-1 <= x <= +1, where x is a real number, and
-1 <= y <= +1, where y is a real number.
The function f's range is -1.0 ... +1.0 inclusive, but it is permissible for f to return values outside this range: the nearest valid value will be used instead. NOTE: this is in contrast with PostScript spot functions, where it is a RangeError for the spot function to go outside these limits.

An initially black cell is filled from lowest spot function value to highest. The actual values returned do not matter - it is their relative orderings that count. This means that spot functions do not need to be tonally balanced. A tonally balanced spot function is one which for all slices though the function (eg say at z), the area of the slice = 4z. In particular, almost all PostScript spot functions are not tonally balanced.

Ink behaviour

There are 3 other factors which affect how the spots ultimately perform when printed. They are:
  1. dot gain
  2. tone jump
  3. plugging
In a printing press when ink is transfered to the paper, the dots tend to grow slightly as the ink is absorbed by the paper. This effect, termed dot gain, depends both on the type of paper being printed on as well as the sort of ink in use. To complicate matters, the dot gain is not constant for all dot sizes - in fact it is proportional to the length of the dot's perimeter. As the dots change shape, their perimeter length changes in a non-linear manner, and so does the dot gain. Furthermore, dots smaller than a certain size may not appear on the page at all.

As the spots get larger, at some stage neigbouring spots will touch. When this happens, extra unwanted ink is deposited around the join. This leads to a tone jump, as a smooth gradient will suddenly jump in darkness when the spots begin touching.

When the spots become very large, they leave small gaps of unprinted paper. These are liable to fill with ink, an effect known as plugging. This results in loss of detail in the darkest areas.

Reducing the tonal range of the image prior to screening can mitigate some of these problems, but selecting a dot function tailored to the particular image can also improve matters. This is covered in the following section.

Spot function characteristics

This section shows how a linear gradient between black and white appears screened under a variety of different spot functions, all with a cell size of 16x16. For each spot function, the screened gradient is shown along with a surface plot of the spot function, and closeups of the spot at 3 intensities. The blue frames show where the cell boundaries are. The percentage intensities are quoted with white at 100% intensity - this is a little unusual, since normally 100% intensity means 100% ink, ie completely black.

Round

1 - (x^2 + y^2)
The round spot function is one of the simplest functions. Because it stays circular at all tonal intensities, it has the minimum possible perimeter length, thus reducing dot gain as far as possible. The tonal jump (where the spots first touch) happens well into the shadows at around 22%, making this function good for images with smooth transitions from highlights to midtones. Unfortunately the small concave diamond shaped white holes have a rather large perimeter, and are liable to plugging.

Line

abs(y)
The line spot function is normally only used for special effects, usually at non-standard screen angles - for example, magenta at 45°, yellow at 135°, cyan at 105°, and black at 165°.

Diamond

abs(x) + abs(y)
The diamond spot is symmetrical, and therefore is it's own inverse. At 50%, it forms a checkerboard pattern, with all four corners touching for the first time. The gradient above is screened at 45° while the closeup is at 0°, which is why the gradient appears to be composed of squares, not diamonds.

Euclidean

with ax=abs(x), ay=abs(y) do (ax+ay)>1? ((ay-1)^2 + (ax-1)^2) - 1 : 1-(ay^2 + ax^2)
This is probably the most common spot function, since it is both symmetrical, and tends to produce round dots most of the time. The tonal jump occurs at 50% intensity, and is quite marked since all 4 corners of the square touch, forming a checkerboard pattern.

PostScript diamond

with ax=abs(x), ay=abs(y) do (ax+ay)<=0.75? 1-(ax^2 + ay^2) : ( (ax+ay)<=1.23? 1-((ay*0.76) + ax) : ((ay-1)^2 + (ax-1)^2) -1)
This spot function grows from small round spot to a diamond then back to an inverted round spot. The diamond is effectively a square with ellipticity factor 0.76. The merit this spot function has is that rather than 4 corners of the spot touching at the same time (causing a large tonal jump) two of the corners touch first, followed by the other two. This causes two smaller tonal jumps, rather that 2 large ones.

[ On to colour separation . . . > ]
(c) 1998 Austin Donnelly <Austin_Donnelly@yahoo.co.uk>
$Id: spot-ref.html,v 1.4 2001/05/25 12:27:50 and1000 Exp $