Digital Halftones by Dot Diffusion
Digital Halftones by Dot Diffusion
DONALD E. KNUTH
Stanford University
This paper describes a technique for approximating real-valued pixels by two-valued pixels. The new
method, called dot diffusion, appears to avoid some deficiencies of other commonly used techniques.
It requires approximately
the same total number of arithmetic operations as the Floyd-Steinberg
method of adaptive grayscale, and it is well suited to parallel computation; but it requires more
buffers and more complex program logic than other methods when implemented sequentially.
A smooth variant of the method may prove to be useful in high-resolution
printing.
Categories and Subject Descriptors: 1.3.3 [Computer
Graphics]:
algorithms; 1.4.1 [Image Processing]:
Digitization-quantization;
hancement-grayscale
manipulation
Picture/Image Generation-display
1.4.3 [Image Processing]:
En-
1. INTRODUCTION
i := 1 to m do for
if A [i, j] < f
err := A[i, j] - B[i,
A[i, j + l] := A[i, j
begin
j := 1 to n do
then B[i, j] := 0 else B[i, j] := 1;
j];
+ l] + err * alpha;
A[i+l,j-l]:=A[i+l,j-l]+err*betu;
246
Donald E. Knuth
Here (Y, p, y, 6 are constants chosen to diffuse the error, which is directed
proportionately to nearby elements whose B values have not yet been computed.
Floyd and Steinberg suggested taking (a, p, y, 6) = (& , &, & , &). A similar but
more complex method had previously been published by Schroeder [22].
The Floyd-Steinberg method often gives excellent results, but it has drawbacks.
In the first place, it is an inherently serial method; the value of B[m, n] depends
on all mn of the entries of A. Furthermore, it sometimes puts ghosts into the
picture; for example, when faces are treated by this approach, echoes of peoples
hairlines can occasionally be seen in the middle of their foreheads. Several other
difficulties are discussed below.
The ghosting problem can be ameliorated by choosing (a, /3,y, 6) so that their
sum is less than 1; then the influence of A[i, j] on remote elements decays
exponentially. However, the ghosts cannot be exorcised completely in this manner. Suppose, for example, that Ali, j] has the constant value a for all i and j,
and let (Y+ p + y + 6 = B 5 1. If a is very small, the entries of B [i, j] for small i
will all be zero, and the entries of A [i, j] will build up to the limiting value
a(1 + e + . * + !9-)(l
+ CY+ 2 + . * a) =
a(1 + 8 + . . . + P-l)
l-a!
for large j. If we choose a so that this value is just slightly less than c$,the
(i + 1)st row will suddenly have many of its B values set to 1, after they had
been 0 in all previous rows.
Floyd [personal communication, May, 19871 has found that ghosts disappear
if the intensities A [i, j] are resealed. For example, we can replace each A [i, j] by
0.1 + O&A [i, j]. This works because the human eye is more sensitive to contrast
than to absolute signal levels.
3. ORDERED DITHER
29 ( 53 ( 21 (
247
of B,
4. DOT DIFFUSION
The technique of ordered dither is completely parallel and ghost free, but it tends
to blur the images. It would be nice to have a solution that retains both the
sharpness of the Floyd-Steinberg
method and the parallelism of ordered dither.
The following technique seems to have the desired properties. Let us divide
the positions (i, j) into 64 classes according to (i mod 8, j mod 8) as above, but
with the following matrix of class numbers:
23 1 31
(The intuition
that suggested this matrix will be explained later; for now,
let us simply consider this to be an arbitrary permutation
of the numbers
P, 1, - - . , 631.) We now can perform the following diffusion algorithm:
for k := 0 to 63 do
for all (i, j) of class k do
begin if A [i, j] < 4 then B[i, j] := 0 else B[i, j] := 1;
err := A[i,j] - B[i,j];
(Distribute err to the neighbors of (i, j) whose class numbers exceed k);
end.
Pixels of class 0 are computed first, then those of class 1, etc.; errors are passed
to neighboring elements yet to be computed.
Each position (i, j) has four orthogonal neighbors (u, u) such that (U - i) +
(U -j) = 1, and four diagonal neighbors (u, u) such that (U - i)2 + (u - j)2 = 2.
One feasible way to do the error distribution
in the diffusion algorithm is to
proceed as follows:
(Distribute err to the neighbors of (i, j) whose class numbers exceed K) =
w := 0;
for all neighbors (u, u) of (i, j) do
if class(u, u) > k then w := w + weight(u - i, v - j);
if w > 0 then for all neighbors (u, u) of (i, j) do
A[u, u] := A[u, u] + err * weight(u - i, u - j)/w.
We can choose the weight function to be weight(x,
orthogonal neighbors twice as heavily as diagonal
weights and the lists of relevant neighbors should
all, since the class numbers are independent of the
ACM Transactions
248
Donald E. Knuth
A serial implementation
of this method appears in [13]. The WEB program in
that paper considers also a generalization
in which white pixels orthogonally
adjacent to black pixels are assumed to contribute some gray value to the total
darkness; this tends to model the dot gain characteristics of certain output
devices.
5. ERROR BOUNDS
Let us say that position (i, j) is a baron if it has only low-class neighbors.
Barons are undesirable in the diffusion algorithm because they absorb all of the
local error. In fact, near-baron
positions, which have only one high-class
neighbor, are also comparatively undesirable because they direct all the error to
one place. The class structure of the matrix suggested above has only two barons
(62 and 63), and only two near-barons (60 and 61). In contrast, the class structure
of the matrix for ordered dither would be much less successful for diffusion, since
it has 16 barons (48 to 63).
In most applications, the average error per pixel in the dot diffusion method
will be at most the number of barons divided by twice the number of classes, if
we average over a region that contains one pixel in each class. For example, we
expect to absorb at most &S units of intensity per pixel in any 8 X 8 region if we
use the matrix above, since the error committed at each pixel is compensated
elsewhere except at the two baron positions, where we usually make an error of
at most f .
However, it is possible to construct bad examples in which the entries of the
matrix became negative or greater than 1; hence the maximum error does not
simply depend on the number of barons. The worst case can be constructed as
follows:
for k := 0 to 63 do bound[k] := 0.0;
for k := 0 to 63 do
begin let (i, j) be such that k = class(i, j);
for all neighbors (LL,u) of (;, j) do if class(u, u) > k then
Here a,ij is the error diffusion constant from (i, j) to (u, u), as defined above. It
follows that bound[kJ is the maximum error that can be passed to positions of
class k from positions of lower classes. The maximum total error in a region
containing one position of each class is the sum of bound[k] over all baron
classes k. Equivalently,
it is the sum of max(O, 0.5 - bound[k]) over all classes k.
In the matrix above, we have bound[62] = bound[63] = 4.3365; hence the average
error per pixel is always less than 8.674/64 < 0.136.
The original data must be chosen by a nasty adversary if the error is going to
be this bad. On the other hand, an adversary who wants to defeat the ordered
dither algorithm can make it commit errors of up to half a pixel on the average.
(When (i, j) is of class k, let A[i, j] be just less than (k + 0.5)/64; then the Bs
are entirely zero, but the As have average density =: 0.5.)
The Floyd-Steinberg
method has zero error by this criterion because all of its
errors occur at the boundary, which has negligible area.
ACM Transactions
on Graphics,
The following
249
Therefore it might be better for dot diffusion than the matrix considered above.
However, the barons in this case all line up rectilinearly, and this leads to a more
noticeable visual texture. It is well known [12] that human eyes are less prone to
notice the dots of a halftone grid if the dot pattern is rotated 45 than if the dots
are rectilinear. If all entries of A are approximately & , the first matrix produces
two nonzero values in every 8 x 8 submatrix, whereas the second matrix produces
only one; yet the second matrix produces a less satisfactory texture.
The former class matrix was, in fact, suggested by dot patterns that are
commercially used in halftone grids. If we imagine starting with a completely
white matrix, and if we successively blacken all positions of classes 0, 1, . . . , we
obtain 45 grids of black dots that gradually grow larger and larger. When all
classes ~32 have been blackened, we have a checkerboard; from this point on,
the blackening process essentially yields 45 grids of Lohite dots that gradually
grow smaller and smaller. Since the class number of (i, j) plus the class
number of (i, j + 4) is always equal to 63, the grid pattern of 63 - lz white
dots after lz steps is exactly the same as the grid pattern of 63 - K black dots
after 63 - k steps, shifted right 4. This connection of dot patterns to the diffusion
pattern makes it reasonable to call the new method dot diffusion.
Dot diffusion can also be tried on a smaller scale, with the 4 X 4 class matrix
It can also be used with dots aligned at different angles, using patterns like those
of Holladay [9], or with dots that are elliptical instead of circular.
6. ENHANCING
THE EDGES
Jarvis and Roberts [ll] and Jarvis et al. [lo] discovered that ordered dither can
be improved substantially
if the edges of the original image are emphasized.
ACM Transactions
on Graphics,
250
Donald E. Knuth
where &i, j] is the average value of A [i, j] and its eight neighbors:
The new values A[i, j] have the same average intensities as the old, but when
cx > 0 they increase the difference of A [i, j] from its neighbors. If CY= 0.9, these
formulas simplify to a well-known equation (see [18, eq. 12.4-31):
A[i, j] = 9A[i, j] -
c
O<(u-i)2+(u-j)%3
A[u, ~1.
on Graphics,
251
These illustrations
have been generated with large square pixels so that the
reader can plainly discern the on/off patterns. We would have to reduce them by
a factor of 15 to get the equivalent of a medium-quality
commercial screen for
photographic halftones.
8. PROBLEMS
The ordered dither method produces a binary-recursive,
computery texture
that is unsuitable for most applications to publishing; such cold patterns are
probably useful only when the underlying technology is intentionally
being
emphasized. The Floyd-Steinberg
method usually gives much more pleasing
results, but it too has occasional lapses where intrusive snakelike patterns call
attention to themselves. The dot diffusion method, likewise, introduces a grainy
texture of its own. Thus none of these approaches is wholly satisfactory, in the
sense that a viewer presented with the illustrations at this size would instinctively
find them attractive. We must hang them on a wall, stand back about 15 feet,
and squint, before a continuous-tone
effect can be perceived. (When such experiments are conducted, the Floyd-Steinberg
examples tend to look better than the
others.)
But the picture changes when we consider applications to printing. The author
experimented with variations of these images on a conventional 300-pixel-perinch laser printer (roughly a sixfold reduction from the size of the illustrations),
and the results of Floyd-Steinberg
and ordered dither proved to be quite unsatisfactory. Nonlinear effects of the xerographic process caused large dark blotches
to appear in places where white pixels were fairly rare; there was a sharp jump
between gray and black areas. In the authors experiments the best laser-printed
Mona Lisa was produced by dot diffusion (see [13]); all other methods tried were
clearly inferior.
Of course, laser printers are only a crude approximation to the high-resolution
devices used in quality printing. Modern digital phototypesetters, with pixel sizes
of about 25 micrometers (1000 pixels per inch), can produce excellent halftones
by simulating the analog screening method that was used on older equipment.
Indeed, the method of ordered dither-but
with the 8 X 8 dot diffusion matrix
in place of the 8 X 8 binary-recursive
matrix shown earlier-is
essentially a
simulation of the traditional approach to halftones.
It is natural to suppose that we should be able to do an even better job than
before, if only we could think of how to use the new machines in a cleverer way,
because so many things are now possible that could not be done before. One
might hope, for example, that the Floyd-Steinberg
method (with sufficiently high
resolution) might be able to reproduce Ansel Adams photographs better than
any previous method of printing has been able to achieve!
However, a moments reflection makes it clear that the Floyd-Steinberg
approach will be of no use at high resolution because of physical limitations.
Tiny droplets of ink are simply unable to arrange themselves in patterns like
those of Figure 1. The worst case probably occurs when we consider the case in
which A[i, j] = f for all i and j; then the Floyd-Steinberg
algorithm produces a
checkerboard of alternating black and white squares, and a printing machine will
ACM Transactions
Donald E. Knuth
Fig. 1.
algorithm.
Fig. 2.
on Graphics,
253
algorithm.
254
Donald E. Knuth
Fig. 3.
Fig. 4.
255
Mona Lisa with enhanced edges, digitized by the ordered dither algorithm.
ACM Transactions
256
Donald E. Knuth
Fig. 5.
ACM Transactions
on Graphics,
algorithm.
Fig. 6.
257
algorithm.
258
Donald E. Knuth
Fig. 7.
ACM Transactions
on Graphics,
algorithm.
Fig. 8.
algorithm.
260
Donald E. Knuth
Fig. 9.
ACM Transactions
on Graphics,
.........................
...................
.
...........
.........
.......
.......
......
...........
.....
..........
........
.......
.......
...............
..............
..........
................
................
................
...................
...................
...................
......................
......................
x::x::x::x::x::x
........................
........................
x::x::x::x::x::x::x
::x::x::x::x::x::x::
x::x::x::x::x::x::x
Fig. 10.
..
...
.::.::.:
.....................
..................
....................
.....................
.....
......
261
.......
:.
.........
.
......
................
... .......
.
.
x~~~~~~~~.~.~.~.~.~.~.~.~
....................
:.:
....
.
................
.........
............
x~~~~~~~~.~.~.~.~.~.~.~.~
........
-::.:::.:::.::
...
...........................
.
.
................
...
.......
:.:.:.:.:.:.:.
x~~~~~~~~.~.~.~.~.~.~.~.~
.........
....
:::.:::.:::.::
::x::::
.............
1.: ........
......
:.:.:.:::.:::.
x::x:::~.:.:.:.:...: ......................... ...
..........
......
....y.:::.:::.
-1 .. . .....
xx::::.:::.:.:...:
.....
.
.........
..y::::::::
x ::::.:
::.:.:.*.:
...........................
. :.:.:
...........
............................
.
.
... ... ...
................
.
.
.........
.:.:.y::::::::::
x::::::::.:.:.:.:
....................
...............................
.
.
.
.
.
.
. . . . ::: . ::-::::::::::::
..................
.*
...
x::x::::.:::.:.:...:
.........
. . . # ...........
...........................
...........
xx ::::.:::.:.:...:
.........
..: .........
.
.
.
. .........
3;IIIi.ii::ii:
......
x~~~~~~~~.~.~.~.~.~.~.~.~.~
....................
. I...:
..........
x ..I
..- .............
.......................................................
...............
.... ....................
.. ..:..i.i:iii3EiiJEii3Eii5
x~~~~.~~~.~.~.~.~.~.~.~.~.~
..............................................
Z::-:::::::::x::x:
................
...........................................
...:...:....~~~x~~x~~~~~
.
......................................
....................................
:::::x:::x::x::x::x:
.................................
..................
::::::::::x::x::xxxxI
...........
x:::::::::::::::
.. ..:...:
..x::::::::.:::.:.:...:
.. ....................
.:.:::::
~:x::x::x::x::x:
...
.:. -.:.:.:.:.:
x::::::::.:::.:.:.:.:.:.:
.....
::x::xxxxxxxx>
...............................
. ... . . . . . . . . . . . . .
x::x::x::x::xxx>
..............................
x::x::::::::::::.:::.:::.::::::::::::::x
xxxxxxxxxxx~
..................
..............
..................
Computed sphere with enhanced edges, digitized by the ordered dither algorithm.
ACM Transactions
262
Donald E. Knuth
...............
........
Fig. 11.
...
..-
algorithm.
+-.\.
263
..............
.
Fig. 12.
on Graphics,
-1,%55.
algorithm.
264
Donald E. Knuth
convert this into a horrible mess. Ordered dither, as in Figure 3, fails for
the same reason. Both of these methods like to produce isolated black or white
pixels.
Could dot diffusion, as described above, be useful at high resolution? Let us
explore this by looking at a tenfold reduction of Figures 6 and 12:
In this reduced form there are 480 pixels per inch; if we rotate by 45 and divide
by 4& (which is the distance between barons), we see that the effect is
analogous to an 85-line screen, which is roughly newspaper quality. These images
are very small, and they would be even smaller on high-resolution
devices; a
medium-quality
commercial screen has about 130 screen dots per inch, or about
720 unrotated bilevel pixels per inch. A real illustration
of Mona Lisa would
therefore have hundreds of times as much data; we must keep this scale factor
in mind.
Mona Lisa does not look bad in this example, but there are serious deficiencies
in the reproduction of the sphere. Our eyes will not notice a regular pattern of
dots, if the dots are small enough, but we are quick to perceive changes in texture.
The background tones of gray behind the sphere should be changing very
gradually, but false contours show up because a slight change in intensity can
make a large change in the pattern computed by dot diffusion. (Similar but less
prominent false contours can be seen in the background of the Floyd-Steinberg
output, Figures 7 and 8, especially where the intensities A [i, j] are nearly f .)
Error diffusion methods are good at capturing the sharp details of a picture,
but a successful method must also be quiet where the data show little activity.
The preparer of a digital halftone must be willing to compose background music
as well as the occasional fanfare. This example demonstrates that dot diffusion,
as defined above, is unsuitable for general use at high resolution.
In fact, there is another good reason why dot diffusion breaks down. It can be
shown that if A[i, j] has the constant value i for all (i, j), the dot diffusion
algorithm defined above will produce a perfect checkerboard of alternating
black and white. (Small checkerboard patches can be perceived in Figures 11
and 12.)
These observations lead us to conclude that our initial criterion, namely, that
the average of B[i, j] near (iO, jO) should be approximately
A[&, j,], is not
sufficient, in spite of its mathematical appeal. What we really want is a criterion
that takes into account the distortions produced by a printing process, as well as
the subsequent distortions and illusions produced by our optic nerves. In other
words, human perception of B[i, j] near (&, j,), after printing, should be approximately the same as human perception of A[i, j] near (&, j,). Some steps in this
direction have been taken by Allebach [2] and Dalton [6], who include a visual
model in their experimental algorithms.
ACM Transactions
on Graphics,
9. SMOOTH
265
ERROR DIFFUSION
The discussion in the previous section seems to indicate that methods based on
error diffusion are doomed, as far as applications to high-resolution
printing are
concerned. But we have not considered the full power of error diffusion. An
important discovery was made by Billotet-Hoffmann
and Bryngdahl [5], who
realized that the Floyd-Steinberg
method reproduces average gray levels even
when the constant i is replaced by any other value! For example, if we set
B[i, j] := 1 only when A[i, j] > 0.6, we will be setting B[l, l] := 0 more often
than before; but if we do, we will be distributing
a larger error value; hence the
neighboring pixels will be more likely to become 1. Billotet-Hoffman
and Bryngdahl have found that if the thresholds vary slightly as a function of i and j, the
resulting textures are improved.
Let us therefore consider a parallel algorithm of the following general form:
All pixel positions (i, j) are divided into r classes, numbered 0 to r - 1, and we
proceed as follows:
for k := 0 to r - 1 do
for all (i, j) of class k do
begin if A[i, j] < Bk then B[i, j] := 0 else B[i, j] := 1;
err := A[i, j] - B[i, j];
for I:= k + 1 to r - 1 do
begin let (LL,u) be nearest to (i, j) such that class(u, u) = 1;
A[u, u] := A[u, u] + err * aykl;
end;
end.
A diffusion algorithm that will be useful at high resolution must have some
sort of smoothness property. This means, intuitively,
that small changes to the
given pixel values A[i, j] should produce small changes in the resulting binary
values B[i, j]. For example, if all the As increase, it would be nice if the Bs all
stay the same or increase. Let us therefore ask: Is there a sequence of parameter
values 19kand (Ykl, for 0 5 k < 1 < r, such that the general diffusion algorithm
above has the following property?
If A[i, j] = a initially, for all i and j, and if (m - 0.5)/r
some integer m, then the algorithm above should set
B[i, j] :=
if
if
i
1
for
0 5 class(i, j) < m,
m 5 class(i, j) < r.
This condition states that the diffusion algorithm should act like a dither
algorithm, when the data are constant.
Surprisingly, there is a simple solution to these nonlinear constraints. We may
take
Sk=%,
ffkl =
1
r-k-l
for all
0 5 k < 1 < r.
In particular, this threshold ok is strictly less than $ , until we reach the baron
class k = r - 1. For all smaller classes, the error is distributed equally to the
higher class neighbors (i.e., it does not depend on 1).
ACM Transactions
266
Donald E. Knuth
PROOF. Suppose that each A[i, j] has the initial value a = Q,, and that
(m - 0.5)/r < a C (m + 0.5)/r. If m > 0, the algorithm sets all B[i, j] of class 0
to 1, and it sets all A[i, j] of classes >O to the value al = a0 + (a0 - l)/(r - 1).
Now we have (m - 1.5)/(r - 1) < a, < (m - 0.5)/(r - 1). If m > 1, the
algorithm sets all B[i, j] of class 1 to 1, and it sets all A[i, j] of classes > 1 to
a2 = al + (a1 - l)/(r - 2). Hence (m - 2.5)/(r - 2) < a2 < (m - 1.5)/(r - 2);
the process continues until we come to class m, with A[i, j] = a,,, and
-0.5/(r - m) < a, < 0.5/(r - m). The algorithm now sets all B[i, j] of class m
to 1, and it sets all A[i, j] of higher classes to a,+, = a, + a,/(r - m - 1). At
this point we have -0.5/(r - m - 1) < a,,, < 0.5/(r - m - l), hence the pattern
persists.
Q.E.D.
Although these threshold values ek appear to be very unsymmetrical
with
respect to 0 and 1, the stated smoothness property is symmetrical. Therefore the
method is not so biased toward B[i, j] = 1 as it may seem. But there is a small
bias. It can be shown, for example, that if r = 2 and if the continuous A values
for classes 0 and 1 are chosen independently and uniformly at random, then the
resulting binary B values will be (00, 01, 10, 11) with the respective probabilities
($ , &, $, & ); hence the total expected binary weight is (5 + 20 + 8)/32 =
33/32, slightly more than 1.
We can apply this method in the case r = 32, using the same class matrix as
before, but with all class numbers divided by 2 (discarding the remainder). Each
(i, j) now has 32 neighbors (u, u) that form a diamondlike pattern, defined by
-3+
lu-jl
Su-iS4-
Iv-jl;
these 32 neighbors (including (i, j) itself) contain one element from each class.
Let us call the resulting algorithm smooth dot diffusion. The previously described dot diffusion method requires no more arithmetic operations than the
ordinary Floyd-Steinberg
algorithm; namely, 256 additions and 256 multiplications are needed to process each 8 x 8 block. In contrast, the smooth dot diffusion
algorithm needs only 62 divisions per 8 x 8 block, since it distributes errors
equally; but it performs 992 additions, so it is slightly more expensive.
The maximum value of A[i, j] during the smooth diffusion algorithm with r
classes will occur when the A [i, j] are as large as possible subject to the condition
that B[i, j] be set to 0 for all classes < (r - 1); this allows the baron to grow to
the upper limit, 1.5 - 0.5/r. The minimum possible value of A[i, j] is more
difficult to describe. When r = 32, it occurs when we choose A values as small as
possible so that B = 1 for classes 0 to 19, and B = 0 for classes 20 to 30. This
extreme case will make the barons value -6(& + & + & + . . . + & + $ + A) =
-11.776. For general r, let k be minimal such that l/(r - k) + . . . + l/(r - 1) I
1 - 0.5/r; then k x r(1 - l/e), and the least value that any A[i, j] can assume is
r-k-2
2 + .+ - 2 +-r-l 2 +!r
*
r-2
z--
r
e
Since smooth dot diffusion deals with rather large neighborhoods, an error can
move to positions somewhat far from its source. For example, there is a propagation path from class 10 to 12 to 14 to 22 to 24 to 28 to 43 to 49 in the example
matrix (before the class numbers have been divided by 2); this moves upward
ACM Transactions
on Graphics,
267
268
Donald E. Knuth
Fig. 13.
ACM Transactions
on Graphics,
Fig. 14.
Mona Lisa with enhanced edges, digitized by the smooth dot diffusion
269
algorithm.
270
Donald E. Knuth
Fig. 15.
Fig. 16.
Computed sphere with enhanced edges, digitized by the smooth dot diffusion
ACM Transactions
271
algorithm.
272
Donald E. Knuth
values is already 0 or 1, smooth dot diffusion will simply set B[i, j] := A [i, j] for
all (i, j); we might be faced with values A[i, j] that are unprintable,
like a
checkerboard. But we can assume that no such data will arise in practice; such
noise can be filtered out before the digitization process begins.
At present, the author knows of no method that produces images of better
quality for high-resolution
digital phototypesetting
than those produced by the
smooth dot diffusion algorithm. However, it is obviously premature to make
extravagant claims for this new method. Computational
experience so far has
been very limited.
ACKNOWLEDGMENTS
273
17. LIPPEL, B., AND KURLAND, M. The effect of dither on luminance quantization
of pictures.
IEEE Trans. Commun. Tech. COM-19 (1971),879-888.
18. PRATT, W. K. Digital Image Processing. Wiley, New York, 1978.
19. PRYOR, R. W., CINQUE, G. M., AND RUBENSTEIN, A. Bilevel image displays-A
new approach.
Proc. SOC.Znf. Display 29 (1978), 127-131.
20. ROETLING, P. G. Halftone method with edge enhancement and Moire suppression. J. Opt. SOC.
Am. 66 (1976), 985-989.
21. ROETLING, P. G. Binary approximation
of continuous tone images. Photograph. Sci. Eng. 21
(1977), 60-65.
22. SCHROEDER, M. R. Images from computers. IEEE Spectrum 6, 3 (Mar. 1969), 66-78. See also
Commun. ACM 12 (1969), 95-101.
Received January