methods for generating blue-noise dither matrices for

23
Chapter III—Algorithms—225 Abstract Blue-noise dither halftoning methods have been found to produce images with pleasing visual characteristics. Results similar to those generated with error-diffusion algorithms can be obtained using an image processing algorithm that is computationally much simpler to imple- ment. This paper reviews and compares the various tech- niques that have been used to design blue-noise dither matrices. In particular, a series of visual cost function based methods, a several techniques that involve design- ing the dither matrices by analyzing the spatial dot dis- tribution are discussed. Ways to extend the basic blue-noise dither techniques to multilevel and color out- put devices are also described, including recent advances in the design of jointly optimized color blue-noise dither matrices. 1 Introduction Many printing devices are binary in nature, and are there- fore incapable of producing continuous tone images. Digital halftoning techniques are used to create the ap- pearance of intermediate tone levels by controlling the spatial distribution of the binary pixel values. Ordered- dither, sometimes referred to as periodic dither, is a simple digital halftoning algorithm that has been used for many applications. The origin of this technique can be traced back at least as far as 1969. 1 ,2 One common implementation of the basic ordered-dither algorithm is shown in Fig. 1. In this case, a dither value d(x d , y d ) is determined by modularly addressing a “dither matrix” with the row and column addresses of the image pixels. The size of the dither matrix in this example is M x × M y . The dither value is then used to threshold the input con- tinuous tone image value I(x, y) to determine a halftoned output value O(x, y). If the input value is greater than the dither value, the output pixel is set to “on.” Conversely, if the input value is less than the dither value, the output pixel is set to “off.” The modulo operations have the ef- fect of tiling the dither matrix across the image in a re- peating pattern. There are several other implementations of the ba- sic ordered-dither algorithm that are commonly used. One variation, shown in Fig. 2, is quite similar to that shown in Fig. 1, except that the dither value is added to the input value and compared to a fixed threshold, in- stead of using the dither value itself as the threshold. It can easily be shown that these two implementations are mathematically equivalent, however, in some cases, the second approach may be more computationally efficient. x d y d x (column #) y (row #) I(x,y) O(x,y) mod M x mod M y dither matrix d(x d , y d ) Compare Figure 1. Flow diagram for basic ordered-dither algorithm. x d y d x (column #) y (row #) I(x,y) O(x,y) mod M x mod M y dither matrix d(x d , y d ) Threshold Figure 2. Flow diagram for additive ordered-dither implementation. A third implementation of the ordered-dither algo- rithm is shown in Fig. 3. In this case, instead of storing a dither matrix, a set of bitmaps are stored correspond- ing to the halftone pattern that should be used for each gray level. The input value is used to select one of the bitmaps, and the pixel row and column address are used to modularly address the selected bitmap to determine the output pixel value. It can be seen that this imple- mentation has the advantage that fewer computations are required to process each pixel, at the expense of a larger memory requirement. This method can be used to ob- tain results that are equivalent to those obtained in the first two implementations if the bitmaps correspond to those that would be obtained by thresholding the dither matrix at each of different input values. Note that any series of halftone patterns that can be generated with the methods of Figs. 1 and 2, can also be Methods for Generating Blue-Noise Dither Matrices for Digital Halftoning Kevin E. Spaulding, Rodney L. Miller and Jay Schildkraut Eastman Kodak Company Imaging Research and Advanced Development, Rochester, New York 14650 E-mail: [email protected]

Upload: others

Post on 20-Dec-2021

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Methods for Generating Blue-Noise Dither Matrices for

650

Methods for Generating Blue-Noise DitherMatrices for Digital Halftoning

Kevin E. Spaulding, Rodney L. Miller and Jay SchildkrautEastman Kodak Company

Imaging Research and Advanced Development, Rochester, New York 14E-mail: [email protected]

uniciosileeithiosidisune

ere athd

s ea

ixe

odely

tpefre

bea

d

in-d. It are

, theent.

.

on.

o-ingnd-ach

theused

inele-

s arerger

ob- the tother

n beo be

Abstract

Blue-noise dither halftoning methods have been foto produce images with pleasing visual characteristResults similar to those generated with error-diffusalgorithms can be obtained using an image procesalgorithm that is computationally much simpler to impment. This paper reviews and compares the various tniques that have been used to design blue-noise dmatrices. In particular, a series of visual cost functbased methods, a several techniques that involve deing the dither matrices by analyzing the spatial dot tribution are discussed. Ways to extend the bablue-noise dither techniques to multilevel and color oput devices are also described, including recent advain the design of jointly optimized color blue-noise dithmatrices.

1 Introduction

Many printing devices are binary in nature, and are thfore incapable of producing continuous tone imagDigital halftoning techniques are used to create thepearance of intermediate tone levels by controlling spatial distribution of the binary pixel values. Orderedither, sometimes referred to as periodic dither, isimple digital halftoning algorithm that has been usfor many applications. The origin of this technique cbe traced back at least as far as 1969.1 ,2 One commonimplementation of the basic ordered-dither algorithmshown in Fig. 1. In this case, a dither value d(xd,yd) isdetermined by modularly addressing a “dither matrwith the row and column addresses of the image pixThe size of the dither matrix in this example is Mx × My.The dither value is then used to threshold the input ctinuous tone image value I(x,y) to determine a halftoneoutput value O(x,y). If the input value is greater than thdither value, the output pixel is set to “on.” Converseif the input value is less than the dither value, the oupixel is set to “off.” The modulo operations have the fect of tiling the dither matrix across the image in a peating pattern.

There are several other implementations of thesic ordered-dither algorithm that are commonly usOne variation, shown in Fig. 2, is quite similar to thshown in Fig. 1, except that the dither value is adde

ds.nng-ch-

erngn-s-ict-cesr

e-s.p-e-adn

is

”ls.

n-

,ut--

a-d.tto

the input value and compared to a fixed threshold,stead of using the dither value itself as the thresholcan easily be shown that these two implementationsmathematically equivalent, however, in some casessecond approach may be more computationally effici

xd

yd

x (column #)

y (row #)

I(x,y)

O(x,y)

mod Mx

mod My

dither matrixd(xd, yd)

Compare

Figure 1. Flow diagram for basic ordered-dither algorithm

xd

yd

x (column #)

y (row #)

I(x,y) O(x,y)

mod Mx

mod My

dither matrixd(xd, yd)

Threshold

Figure 2. Flow diagram for additive ordered-dither implementati

A third implementation of the ordered-dither algrithm is shown in Fig. 3. In this case, instead of stora dither matrix, a set of bitmaps are stored correspoing to the halftone pattern that should be used for egray level. The input value is used to select one ofbitmaps, and the pixel row and column address are to modularly address the selected bitmap to determthe output pixel value. It can be seen that this impmentation has the advantage that fewer computationrequired to process each pixel, at the expense of a lamemory requirement. This method can be used totain results that are equivalent to those obtained infirst two implementations if the bitmaps correspondthose that would be obtained by thresholding the dimatrix at each of different input values.

Note that any series of halftone patterns that cagenerated with the methods of Figs. 1 and 2, can als

Chapter III—Algorithms—225

Page 2: Methods for Generating Blue-Noise Dither Matrices for

retr bpata

psle0,nci aroaastra

on

rixpr

(thr oer p alue uullm

thaonimnhe

freve tosein

ewis

oty

atri-Thes isver

er of byny

to

nethetri-tentalf-thecy

vi-ies,an

withus-ture

r toionisn with. Inticveues,

ave

ma-eth-

fornsues

re-pat-the thee anhe

generated with the method of Fig. 3. However, theverse is not true. This is because in the dither maimplementation the halftone patterns are forced tocorrelated so that once a certain pixel in the dither tern has been turned on at some input value, it will son for all higher input levels. With the dither bitmaapproach, this constraint is not present. For exampcertain pixel could be “off” for an input value of 15“on” for an input value of 151, and “off” again for ainput value of 152. In practice, the limitations assoated with the methods of Figs. 1 and 2 do not poseserious problems because it is usually desirable, fan image quality point of view, to use correlated pterns that can be implemented either way. The bequivalence between the bitmap and threshold maimplementations for correlated halftone patterns wnoted by Granger et al.3

xd

yd

x (column #)

y (row #)

I(x,y)

O(x,y)mod Mx

mod My

dither bitmaps

b(i, xd, yd)

Figure 3. Flow diagram for ordered-dither bitmap implementati

The number of unique entries in the dither matdetermines the number of gray levels, which can be duced in the output image. For example, if 16× 16 dithermatrices are used, it is possible to produce 257 Mx

My + 1) gray levels. If smaller matrices are used, period of the dither pattern is smaller, but the numbeproducible gray levels falls correspondingly. Howevdespite the loss of gray levels, the reduction in theriod of the dither patterns can sometimes provideimage quality advantage, particularly when using a ctered-dot dither matrix. A variation of the ordered-dithapproach has recently been developed to allow theof smaller dither matrices while maintaining the fnumber of gray levels at the expense of adding a samount of randomness to the image.4

The arrangement of the values stored in the dimatrix determines the dot pattern that is formed at egray level. Clustered-dot dither matrices represent class of dot patterns. This approach attempts to mthe halftone dot patterns produced by conventiographic arts halftone screens. Another type of ditmatrix is the well-known “Bayer matrix.”5 This solu-tion was designed to maximize the lowest spatial quency in the halftone pattern for any given gray leThe idea being that high frequencies are less visiblehuman observer than low frequency values. It can be that the Bayer matrix is closely related to the determistic dither described by Limb.1 One characteristic of thBayer matrix is that the perceived texture associated the halftone patterns changes quite dramatically afunction of gray level. As a result, images having smogradations are apt to exhibit texture contours. The Ba

226—Recent Progress in Digital Halftoning II

-ixet-y

, a

-nymt-icixs

.

o-

ef

,e-n

s-rse

all

ercheicalr

-l. aen-

th aher

matrix represents an example of a class of dither mces sometimes referred to as “dispersed-dot dither.” general characteristic of dispersed dot dither matricethat they avoid placing dots near each other whenepossible.

A particular form of the dispersed-dot ordered-dithtechnique known as “blue-noise dither” is the topicthe current paper. This approach was first reportedSullivan et al.,7 and has since been investigated by maother researchers including Mitsa and Parker,8 andUlichney.9 Blue-noise dither techniques are relatedthe methods of Limb1 and Bayer,5 in that they are alldirected towards reducing the visibility of the halftopatterns by controlling the frequency spectrum of spatial modulation. Generally, blue-noise dither maces are designed to minimize the low frequency conand maximize the high frequency content of the htone patterns. (The term “blue-noise” originates from fact that blue light corresponds to the high frequenportion of the visible spectrum.) Because the humansual system is less sensitive to high spatial frequencblue-noise dither patterns are less visible to a humobserver. Generally, the halftone patterns associatedblue-noise dither are significantly less visible than cltered-dot dither, and do not have the annoying texchanges associated with Bayer dither.

Blue-noise dither patterns are actually quite similathe halftone patterns that are produced with error diffushalftoning algorithms, but the implementation computationally more efficient. In fact, error diffusiomethods have sometimes been referred to as “ditheringblue-noise”,10 which can be a source of some confusionthe graphic arts halftoning field, the terms “stochasscreening” and “frequency-modulation screening” habeen used to describe both blue-noise dither techniqas well as error-diffusion methods.

2 Review of Blue-Noise MatrixGeneration Methods

This section reviews the various techniques that hbeen used to generate blue-noise dither patterns.

2.1 Minimum Visual Cost TechniquesSullivan, and Miller and Sullivan6,7 have described

a series of methods for designing blue-noise dither trices based on the use of stochastic optimization mods to minimize a visual cost function.

2.1.1 Uncorrelated Patterns. In their initial investiga-tion, the halftone patterns designed by Sullivanet al.were optimized for individual gray levels to be used tint fills of uniform image regions. The halftone patterwere determined using stochastic annealing techniqto minimize a cost function based on the frequencysponse of the human visual system. The halftone terns for each gray level were uncorrelated with halftone patterns for any other gray level. Becausepatterns were uncorrelated, it was necessary to usimplementation like that shown in Fig. 3 to apply tpatterns to an image.

Page 3: Methods for Generating Blue-Noise Dither Matrices for

o

eu-thhre tuav

na

ein

fos

a

,m

TFhcoo

ee

r

da-rms are

on

ofand beible re-

ion

st insed.

as-s isng

edini-beedem

at-ne

rn.d

ndr- ac-

The cost function used to estimate the visibility the halftone patterns is given by

cost d d= ( ) ( )∫∫ P f f V f f f fx y x y x y, , ,

2(1)

where p(fx,fy) is the frequency spectrum of the halftonpattern, and V(fx,fy) is the frequency response of the hman visual system. It can be seen that the effect of cost function is to weight the frequency content of thalftone pattern by the ability of the human visual sponse to detect it. Thus halftone patterns that movefrequency content to a region of the frequency spectrwhere the human visual system is less sensitive will ha correspondingly lower cost.

A model of the low-contrast photopic modulatiotransfer function was used to characterize the humvisual system:

V f f a b cf cf f f

x y

d

, ( ˜) exp[ ( ˜) ]. ,

,max( ) = + − >

ifotherwise1 0 (2)

where the constants a, b, c, and d are calculated fromempirical data to be 2.2, 0.192, 0.114, and 1.1 resptively, f̃ is the normalized radial spatial frequency cycles/degree of visual subtense, and fmax is the frequencyat which the weighted exponential peaks. To accountangular variations in the human visual function sentivity, the normalized radial spatial frequency is computed from the actual radial spatial frequency usingangular-dependent scale function

˜

( ),f

fs

=θ (3)

where f f fx y= +( )2 2 1 2/

, and s(θ) is given by

s

w w( ) cos( ) ,θ θ= − + +1

24

12

(4)

with w being a symmetry parameter, and

θ =

arctan .f

fy

x(5)

A plot of this visual MTF function is shown in Fig. 4which illustrates the low-pass nature of visual systeand the reduced sensitivity at 45˚. To apply this Mfunction for a specific viewing distance and dot pitcthe angular frequency values must be related to the responding spatial frequency values using straightfward geometrical relationships.

Because the dither pattern is specified for a discrset of pixel values, a discrete form of Eq. (1) was usto compute the cost

cost =

=

=

∑ ∑i

M

ij ijj

Mx y

P V0

1 2

0

1

, (6)

where Pij is the (i,j)th element of the discrete Fourietransform of the halftone pattern, and Vij is the corre-

f

ise-heme

n

c-

ri--n

,

,r-

r-

ted

sponding human visual system sensitivity. The funmental periodic nature of the discrete Fourier transfoproperly accounts for the fact that the dither patternsapplied in a repeating tiled fashion.

0

10

20

30

40 010

2030

40

0

0.2

0.4

0.6

0.8

1

y frequency (cy/deg)

MT

F

x frequency (cy/deg)

Figure 4. Low-contrast photopic modulation transfer functiof human visual system.

Ideally, the cost for every possible arrangementthe dots in the halftone pattern could be computed the halftone pattern with the lowest cost could thenselected. However, in practice, the number of possarrangements is so large that this is impossible. As asult, it is necessary to use combinatorial optimizattechniques such as stochastic annealing11 ,12 or geneticalgorithms13 ,14 to minimize the cost function. For moof the blue-noise dither optimization work describedthis section, the stochastic annealing approach was uA flowchart showing an implementation of the stochtic annealing process for optimizing halftone patternshown in Fig. 5. The algorithm comprises the followisteps:

1. Define an initial halftone pattern having the desirnumber of dots, and compute a corresponding tial cost value. The initial halftone pattern can formed randomly, or alternatively some predefinhalftone pattern can be used. The initial cost is tporarily labeled as the “old cost.”

2. Randomly select a pair of pixels in the halftone ptern and interchange them to form a new halftopattern.

3. Compute a cost value for the new halftone patte4. Calculate a random number z between 0 and 1, an

the Boltzmann test statistic q,

q = −

exp ,∆cost

T (7)

where ∆ cost is the new cost minus the old cost, athe parameter T is set initially so that a large pecentage, e.g., 80%, of new halftone patterns arecepted in the following step.

Chapter III—Algorithms—227

Page 4: Methods for Generating Blue-Noise Dither Matrices for

iss

0

ci-e th

eueerrno uo

itizain plo re

siveeences

cost

d

allm

5. Compare q to z . If q > z the new halftone pattern retained and the new cost computed in step 3 inamed as the old cost. if q ≤ z, the halftone patternis returned to its previous state.

6. After many iteration of steps 2-5 above, e.g., 10reduce the parameter T to κT, where κ < 1, e.g.,κ = 0.95.

7. When T is sufficiently small so that the costs at sucessive values of T are no longer changing signifcantly, or after a fixed number of changes have bmade to T, e.g., 500, the process is complete andfinal halftone pattern is stored.

Figure 5. Flowchart for stochastic annealing algorithm.

In the initial investigation of Sullivan et al., the sto-chastic annealing process was repeated independfor every gray level to form a set of uncorrelated blnoise halftone patterns. Because of the large numbiterations that were required to optimize the pattepowerful computers were necessary to determine stions in a reasonable amount of time. Even with theof supercomputers, it can still take several hours or mto design a set of patterns for even modest size (16× 16)dither matrices. Figure 6 shows an example of an inrandomly designed pattern, compared with an optimipattern determined using the above process. In this ca 128× 128 bitmap was computed. The correspondangularly averaged frequency spectra for these twoterns are shown in Fig. 7. It can be seen that the frequency content of the optimized pattern is greatlyduced relative to that of the random pattern. Figur

228—Recent Progress in Digital Halftoning II

re

0,

-

ene

ntly- ofs,lu-sere

aledse,gat-w

e-8

shows the value of the visual cost function at succestemperatures in the optimization process. It can be sthat the stochastic annealing process gradually reduthe visual cost until a plateau is reached where the cannot be improved further.

Figure 6. Pixel positions of (a) initial random pattern, an(b) final minimum cost pattern.

0

2500

5000

7500

10000

12500

Am

plitu

de o

f Fr

eque

ncy

Spec

trum

0.0 1.0 2.0 3.0 4.0 5.0 6.0

Spatial Frequency

Optimized

Initial

Figure 7. Amplitude of frequency spectrum averaged overangles for (a) initial random pattern, and (b) final minimucost pattern.

Page 5: Methods for Generating Blue-Noise Dither Matrices for

sto

taplly an

thef th

ar dinuhe thdeo

ta

Raerarnonb

ch

rnthpaunat

pa t Al ostm

en isw

at-

el. an-theveleenined

ini-ncezedas-.,

na-uche in-92,

rnsinglf-evelrente-ady

behis op-

0.0000

0.0001

0.0002

0.0003

0.0004

Vis

ual C

ost

0 100 200 300 400

Temperature

Figure 8. Visual cost at successive temperatures in the chastic annealing optimization process.

Other types of cost functions can also be usedestimate the visibility of the halftone patterns. One proach is to calculate the variance of the visuaweighted spectral powers rather than summing themin Eq. (6). This has the effect of trying to suppress astrong spikes in the perceived power spectrum. Anoapproach would be to use a spatial channel model ovisual system to determine the visual cost.15

Although the results obtained using this method quite pleasing when applied to uniform regions, theynot produce desirable results when applied to contously varying images. This can be traced to tuncorrelated nature of the halftone patterns wherepattern at one gray level has been derived indepenof all other gray levels. As a result, objectionable dpatterns are formed in regions of the image that consmooth gradations from one gray level to another.

2.1.2 Correlated Patterns. Realizing the limitations ofthe uncorrelated blue-noise patterns, Sullivan and later generalized the blue-noise dither pattern gention techniques to produce correlated blue-noise pterns.16 Because of the correlated nature of these pattethey produced much better results when applied to ctinuous tone images, and additionally they could implemented using the conventional dither matrix teniques shown in Figs. 1 and 2.

The determination of the correlated halftone pattebecomes somewhat more complicated than uncorrelated case due to the fact that the halftone tern for one level must be designed taking into accothe halftone patterns for the other levels. The first tempts to compute correlated blue-noise halftone terns used a sequential optimization approachdetermine the patterns for each level one at a time.though later methods were developed to optimize althe levels simultaneously, the sequential approach holds significant advantages from a computation tipoint of view.

A flowchart showing the basic process for sequtially optimizing correlated blue-noise dither patternsshown in Fig. 9. The steps of this process are as follo

-

o-

syre

eo-

enttin

ya-t-s,-

e-

set-t-t-ol-f

ille

-

s:

Combine halftone patterns for all input levels to form dither

matrices

No

Determine minimum cost halftone pattern forinitial input level

Determine which pixels in the halftone pattern should

be changed to minimize cost

YesMorelevels?

Store final result

Determine which pixels in the halftone pattern can be

changed

Select next input leveland initialize the halftone pattern

Figure 9. Flowchart for computing correlated blue-noise pterns using sequential optimization

1. Form an optimized pattern for an initial input levGenerally this can be done using the stochasticnealing method described in Sec. 2.1.1 for uncorrelated halftone patterns. The initial input leis commonly taken to be 128, although it has bfound that better results can sometimes be obtawith other initial values.

2. Select the next input level in the sequence andtial the halftone pattern. A consecutive sequecould be used where the input levels were optimiby first incrementally decreasing, and then increing the level relative to the initial input level, (e.g127, 126, ..., 1, 0, 129, 130, ..., 254, 255). Altertively, many other arrangements are possible sas a sequence based on a binary tree where thtervals are sequentially subdivided, (e.g., 64, 132, 96, 140, 224, ...).

3. Determine which elements of the halftone pattecan be changed. Generally this is done by findthe pixels that are simultaneously “off” in the hatone pattern corresponding to the nearest input lthat has already been optimized below the curinput level, and “on” in the halftone pattern corrsponding to the nearest input level that has alrebeen optimized above the current input level.

4. Determine which changeable elements shouldchanged in order to minimize the visual cost. Tcan be done using stochastic annealing or othertimization techniques.

Chapter III—Algorithms—229

Page 6: Methods for Generating Blue-Noise Dither Matrices for

otri

, tntesioi Th F 12apch a

llyr erl thela

ape nrotio

iothch

ovvincm ca

ofteun

do

f-alSreo

ngactiv

sual

ntlyFFTd-atu-tive10.es.inedt

d ofinedt accu-

and

lcu-costec-ow-ke itolu-nlyoci-mi-s ad atro- thedify thencyom-

5. Repeat steps 2-4 for each of the input levels.6. Combine the resulting halftone patterns for all

the input levels into a corresponding dither maand store the result.

Because the levels are determined sequentiallylevels that are optimized earlier in the sequence geally have a higher quality (lower cost) than those demined later in the sequence. This is because the deciabout pixel placement at one level constrain the chof where pixels can be placed for subsequent levels.is the motivation for using a binary tree sequence.example, consider the case where an initial level ofis used. If the levels are optimized incrementally, as mas 128 previous optimizations may constrain the omization for a single level. With the binary tree approathe maximum number of previous optimizations thatfect the current optimization will be much smaller.

The blue-noise dither matrices that were initiacomputed using this approach produced much bettesults than those obtained using the uncorrelated pattHowever, the images were still somewhat marginaquality. One of the principle reasons for this is that practical dither matrix size was limited to approximat16 × 16 due to computational constraints. With this mtrix size, it was not possible to totally eliminate the pearance of low-frequency periodic artifacts. The uslarger dither matrices not only reduces the fundamefrequency of the halftone pattern, but additionally pvides more degrees of freedom during the optimizaprocess.

An effort was made to speed up the optimizatprocess to make it possible to compute larger dimatrices. The use of more efficient programming teniques and faster computers provided some imprment, but by far the largest speed gains came by mothe computation of the cost function from the frequedomain to the spatial domain. By Parseval’s Theorecan be shown that the cost function given in Eq. (1)be rewritten as

cost d d= ∫∫ p x y v x y x y( , ) * ( , ) ,2 (8)

where * represents convolution, p(x,y) is the halftonepattern, and v(x,y) is the inverse Fourier transform the human visual system sensitivity, which can be inpreted as the human visual system point-spread ftion (PSF).

The corresponding discrete form of the spatial main cost function is

cost =

=

=

∑ ∑i

M

ijj

Mx y

p v0

1 2

0

1

( * ) , (9)

where (p*v)i,j is the (i,j)’th element of the perceived haltone pattern given by discrete convolution of the htone pattern with the human visual function system PNoted that the halftone pattern generated by an ordedither process will be periodic, hence the discrete cvolution must take this into account by includicontributions from surrounding dither arrays. In prtice, this is most easily done by computing an effec

230—Recent Progress in Digital Halftoning II

fx

heer-r-onsceis

or8

nyti-,

f-

re-ns.iney--oftal-n

ner-

e-ngy itn

r-c-

-

f-F.d-

n-

-e

visual system PSF that is the sum of a series of visystem PSFs that repeat at the dither pattern period

v x y v x mM x y nM ye

mx y

n( , ) ( , ),

=−∞

=−∞

∑ ∑ − −∆ ∆ (10)

where ∆x and ∆y are the pixel spacing in the x andydirections, respectively. One method to conveniedetermine the effective PSF is to perform an inverse of the human visual function MTF. The periodic bounary condition assumptions associated with the FFT, nrally account for the repeating nature of the effecPSF. An example of an effective PSF is shown in Fig.The x and y axes in this case give the pixel offset valuIt can be seen that the same PSF value will be obtawhen x = 1 and when x = 15, which reflects the fact thathe dither pattern repeats every 16 pixels. Thus x = 1 is1 pixel to the right of a dot centered at (0,0), and x = 15is 1 pixel to the left of the same dot in the next periothe dither pattern. An equivalent result can be obtaby performing the summation given in Eq. (10), bularge number of terms must be included to obtain arate results.

−15−10

−50

510

15

−15−10

−50

510

−0.01

0

0.01

0.02

0.03

0.04

PS

F

yx

Figure 10. Effective point spread function for 16× 16 dithermatrix. Viewing distance was assumed to be 30 inches,printer was assumed to be 300 dpi.

Generally, one would expect it to be faster to calate the Fourier transform required to compute the function using Eq. (6), rather than the convolution nessary to compute the cost function using Eq. (9). Hever, in this case there are several factors that mapossible to obtain much faster results with the convtion. First of all, since the halftone pattern consists oof ones and zeros, the multiplications normally assated with the computation of a convolution can be elinated. In this case, the convolution simply becomesummation of a set of point-spread functions centerethe dot positions. Secondly, during the optimization pcess the convolution can quickly be recalculated asbitmap is perturbed, since it is only necessary to mothe contributions to the summation corresponding topixels that are changed. The move from the frequedomain cost computation to the spatial domain cost cputation resulted in more than a 100× improvement in

Page 7: Methods for Generating Blue-Noise Dither Matrices for

tehaapte

coethse ia

onthnim td th

t ap-ed. notual

rix sto-oneimi-o se-or

ehero a256

computation speed. It is currently possible to compu128 × 128 solution in about 2 days on a DEC Alp2100–4/275 computer. With the frequency domain proach it would only have been possible to compu16 × 16 matrix in that same time frame.

One approach that can be used to speed up the putation of the blue-noise patterns further is to ussteepest-descent type of optimization technique, rathan a stochastic optimization technique. In this cainstead of randomly adding/subtracting the dots to evtually minimize the visual cost, a visual cost valuedetermined corresponding to every possible place thdot can be added/subtracted. The position corresping to the lowest cost position is then chosen. For approach, the initial pattern for the first level will geerally need to be determined using a stochastic optzation technique, or some alternate approach, butremainder of the halftone patterns can be determinesequentially adding/subtracting dots that minimize

a

- a

m- aere,n-st ad-is-i-

hebye

visual cost. The advantage of this steepest-descenproach is that the computation time is greatly reducHowever, the disadvantage is that the solution doesnecessarily represent a global minimum for the viscost function.

A sample image produced using a 128× 128 blue-noise matrix is shown in Fig. 11(a). The dither matused to make this image was generated by usingchastic annealing to determine an optimized halftpattern for gray level 100. The steepest descent optzation approach described above was then used tquentially optimize the remaining gray levels. Fcomparison, images generated using a 128× 128 ran-dom (white-noise) dither matrix, a 16× 16 Bayer dithermatrix, and an 16× 16 clustered-dot dither matrix arshown in Figs. 11(b) to 11(d). (The clustered-dot ditpattern was created by tiling an 8 x 8 pattern int16 × 16 matrix and adjusting the thresholds to obtain unique values.)

x,

Figure 11. Images generated using (a) 128× 128 blue-noise dither matrix, (b) 128× 128 random (white-noise) dither matri(c) 16× 16 Bayer dither matrix, and (d) 16× 16 clustered-dot dither matrix.

(a) (b)

(c) (d)

Chapter III—Algorithms—231

Page 8: Methods for Generating Blue-Noise Dither Matrices for

sm

n.soile. ithtensthd

-d Th t

.

he

ndthpauiyanctg

racoisye

thortherl o th th a

tonelessle

er-on-

ue-

tedagegese-ed

rayost

ld

ore

enaryar,calels.

onen beal-

s of

ta- de-foran-nly

or-iala-

ed.n

ma-rix.ew

The visual cost as a function of gray level for thematrices is shown in Fig. 12. The visual cost was coputed using Eq. (9) with a viewing distance of 20 iand a dot pitch of 300 dpi. For purposes of comparithe smaller Bayer and clustered-dot matrices were tto a 128× 128 size before computing the cost valuescan be seen that the clustered-dot and random dmatrices have the highest visual cost. This is consiswith the overall higher visibility of the halftone patterfor the corresponding images. It should be noted although the visibility of the white-noise and clusteredot halftone patterns may be similar, the clusteredpatterns are generally found to be less objectionable.demonstrates that the visual cost may not always beonly factor that influences the visual objectionability

-5

-4

-3

-2

-1

0

log

visu

al c

ost

0 64 128 192 256

gray level

clustered dot

Bayer

white-noise

blue-noise

Figure 12. Visual cost as a function of gray level for the ditmatrices used in Fig. 11.

Overall, the visual costs for the Bayer matrix athe blue-noise matrix are substantially lower than visual costs for the clustered-dot and white-noise terns. Although the average visual cost levels are qsimilar, it can be seen that the visual cost for the Bamatrix fluctuates much more widely with gray level thdoes the visual cost for blue-noise matrix. This reflethe fact that the Bayer matrix produces distinct chanin the texture as a function of gray level. At the glevels where very regular patterns are formed, the for the Bayer matrix is lower than that of the blue-nomatrix, however, at intermediate gray levels, the Bamatrix gives a higher visual cost. The visual cost forblue-noise matrix can be seen to be much more unifthan that of the Bayer matrix, reflecting the fact that overall texture is quite constant with gray level. This a small dip in the visual cost near the gray leve100, which corresponds to the starting gray level foroptimization process. This results from the fact thatoptimization process cannot move the dots that are

232—Recent Progress in Digital Halftoning II

e-

,nd

Iternt

at-otis

he

r

et-teer

sesysteremeefeel-

ready placed due to the correlated nature of the halfpatterns. The patterns must therefore be slightly optimal than the solution for the first level. Most peopwould judge that the blue-noise matrix result is prefable to the Bayer matrix result because of the more csistent image texture characteristics.

2.1.3 Simultaneously-Derived Correlated Patterns. An-other related approach for computing correlated blnoise dither matrices has been developed.17 In this case,the dither patterns for all the gray levels are compusimultaneously rather than sequentially. The advantof this approach is that it will not penalize the imaquality for patterns that are computed later in the quence. To accomplish this, a cost function is definthat combines the visual cost for all of the different glevels. One of the simplest forms for the combined cfunction is

C Ct

p

t

p

=

=∑ ( ) ,

/

0

255 1

(11)

where Ct is the visual cost for a particular tone levelt,and p is a positive constant. If p is taken to be 2,thisresult is simply the RMS visual cost for all thresholevels. Larger values of p have the effect of weightingthe cost values for tone levels with larger errors mstrongly.

One problem with the combined cost function givin Eq. (11) is that the fundamental visual cost can vquite widely as a function of tone level . In particultone levels near the dark and light end of the tone stypically have smaller cost values than midtone leveAs a result, the cost function preferentially treats the tlevels with higher cost values. One approach that caused to minimize this effect is to normalize the cost vues before they are combined

CCC

t

t

p

t

p

=

=

∑00

2551 /

, (12)

where <Ct0> is the average cost calculated for a serierandom variations of the matrix elements.

The optimization process used for the simulneously derived patterns can be very similar to thatscribed above to determine optimized patterns individual gray levels. For example, the stochastic nealing process shown in Fig. 5 can be used with osmall modification:

1. Define an initial dither matrix and compute the cresponding initial combined cost value. The initdither matrix can be formed randomly, or alterntively some predefined dither matrix can be usThe initial combined cost will temporarily be knowas the “old total cost.”

2. Randomly select a pair of elements in the dither trix and interchange them to form a new dither mat

3. Compute a new combined cost value for the ndither matrix.

Page 9: Methods for Generating Blue-Noise Dither Matrices for

00

ts-vete

r-o

futaecabe

doncexis

efo

hao-

i

nhecldltse

ob

ndnn

petee

naco oth

lta-ch-s”con-lu-

sedpi-

e-

edrn.m-

o aer

par-lf-

rkerrnsin-c-ge-ionthe

4. Calculate the Boltzmann test statistic q, and a ran-dom number z between 0 and 1.

5. Compare q to z. If q > z the new dither matrix iskept and the new total cost computed in step 3renamed as the old total cost. If q ≤ z, the dithermatrix is returned to its previous state.

6. After many iteration of steps 2-5 above, e.g., 10reduce the parameter T to κT, where κ < 1, e.g.,κ = 0.95.

7. When T is sufficiently small so that the total cosat successive values of T are no longer changing significantly, or after a fixed number of changes habeen made to T, e.g., 500, the process is compleand the final dither matrix is stored.

While the simultaneous optimization of the diffeent tone levels would seem to be advantageous in thethere are several practical factors that limit the useness of this technique in practice. First, the computional complexity of the joint cost function slows thoptimization process substantially. This puts a practilimitation on the size of the dither matrix that can computed. With current computer resources a 64× 64dither matrix takes as long as a week to converge. Adtionally, the optimization process seems to be more prto getting caught in a local minimum of the cost funtion than the sequential optimization methods. For ample, a 16× 16 solution was computed using thtechnique that yielded moderate image quality. A 32× 32solution was then computed that produced a lower pceived image quality. To compare the visual costs the two solutions, a 32× 32 matrix was made by tilingtogether four copies of the 16× 16 matrix. The total costfor the replicated 16x16 was substantially lower than tof the actual 32× 32 solution. Because a lower cost slution was shown to exist, this indicates that the optimzation process for the 32× 32 matrix was not able toconverge on the global minimum of the cost functioThis is probably due to the high dimensionality of tproblem, combined with the complexity of the cost funtion. It is expected that if the true global minimum coube found, this approach would give very good resuHowever, the optimization techniques that have betested have been unable to get very near to the glminimum for dither matrices of reasonable size.

2.2 Spatial Dot Distribution TechniquesA number of other blue-noise halftone pattern ge

eration methods have been developed that are baseevaluating the spatial distribution of dots in the halftopattern, rather than the computation of a visual cost fution value.

2.2.1 Iterative Constraint Techniques. An approach fordesigning blue-noise dither matrices has been develoby Parker and Mitsa.18 that attempts to produce halftonpatterns that simultaneously satisfy two different criria. First, the patterns should have particular power sptrum characteristics. Second, the patterns must be biin nature, and must have the desired fractional area erage. It is quite simple to design patterns that meetor the other of these criteria, but not both of them at

is

,

ry,l--

l

i-e

--

r-r

t

-

.

-

.nal

- onec-

ed

-c-ryv-nee

same time. To determine halftone patterns that simuneously meet both requirements, an optimization tenique that is similar to a “projection-on-convex-setapproach is used. Essentially, a set of independent straints are cyclically applied until a convergent sotion is reached.

Figure 13 shows a flow diagram of the process uto design the halftone pattern for a first gray level (tycally a 50% gray).

YesEnd

Compute frequency spectrum of the halfone pattern

Has solution converged ?

Modify the frequency spectrum according to the power spectrum constraint

No

Load halftone pattern with binary seed pattern

Start

Compute inverse Fourier transform to determine

modified halftone pattern

Impose binary/coverage constraints to form a new

halftone pattern

Figure 13. Iterative constraint technique for optimizing blunoise halftone patterns.

1. First the halftone pattern is initialized with a sepattern. Typically this would be a white-noise patte

2. The Fourier transform of the halftone pattern is coputed to determine its frequency spectrum.

3. The frequency spectrum is modified according tpower spectrum constraint. In general, the powspectrum constraint can be used to impose any ticular power spectrum characteristics to the hatone pattern. In the examples presented by Paand Mitsa, they are attempting to produce pattewith power spectrum having no energy below a prciple frequency. This principle frequency is a funtion of the halftone pattern gray level. By imposinthis constraint they are attempting to mimic the frquency spectrum characteristics of an error diffuspattern. They impose the constraint by comparing

Chapter III—Algorithms—233

Page 10: Methods for Generating Blue-Noise Dither Matrices for

afre

,fo- dc-ie

athd

irer iimt

t braoue

f 1ue.

6 it

n

l id dt leve att trut va olt bom patt ub sirg olut rp ess se ral ml thp go de rinc

asp f

thefixedthly

orthhec-

the

i- pre-theing.ns inpat- is

thee. do-en-

plyingack thatsity re-neon-gen-tra,

pat-od.hers orro-rn isare

s-irsthisre-tingn isAll in

lus-inedisoidved

e the isget

ndn-

ni-henpec-

radially averaged power spectrum of the halftone ptern to the aim power spectrum to compute a quency domain filter

D f g

P f gP f gr r

r r

r r

( , ) ' ( , )( , )

,= (13)

where fr is the radial frequency, g is the gray levelPr(fr,g) is the radially averaged power spectrum the halftone pattern, and P′r(fr,g) is the desired radially averaged power spectrum. The frequencymain filter Dr(fr,g) is applied to the frequency spetrum of the halftone pattern to determine a modiffrequency spectrum.

4. Once the frequency domain constraint has beenplied, an inverse Fourier transform is applied to modified frequency spectrum to determine a mofied halftone pattern.

5. This modified halftone pattern now has the desblue-noise characteristics, however, it no longea binary pattern. It is, therefore, necessary to pose the constraint that the halftone pattern musbinary, and that a certain number of dots musturned on. This is done by computing an error arthat is given by the difference between the previhalftone pattern, h(i,j ) and the modified halftonpattern, h′(i,j ),

e(i,j ) = h′(i,j ) – h(i,j ). (14)

The error values are rank ordered, and the pairs oand 0’s corresponding to the largest error valare interchanged to form a new halftone pattern

. If the total mean square error for this iterationbelow some threshold, the solution is accepted. Oerwise, the steps 2 to 5 are repeated using thehalftone pattern until convergence is reached.

Once the halftone pattern for the first gray leveetermined, a similar method is used to sequentially

ermine the halftone patterns for the remaining gray ls. In this case, a single pass technique is applied, rhan the iterative approach just described. To conshe blue-noise pattern for the next highest gray lebove a previously computed pattern, the previous sion is used as seed level and steps 2-4 of the aethod are used to determine a modified halftone

ern. As before, and error array e(i,j ) is computed, andhe errors are rank ordered. The number of 1’s that me added to the halftone pattern to produce the deray level are determined. The 0’s in the previous sion corresponding to the highest error values arelaced with 1’s to form a new halftone pattern. Thteps are repeated to determine the halftone patternach gray level above the initial gray level. The g

evels below the initial gray level are computed in a siar fashion. The only difference being that ones in revious halftone pattern are replaced by 0’s. Throuut this process, the aim power spectrum is adjusteach gray level to account for the change in the piple frequency.

A small modification to this basic technique wroposed by Yao and Parker.19 In this case, instead o

234—Recent Progress in Digital Halftoning II

t--

r

o

d

p-ei-

ds-

beeys

’ss

sh-ew

se--

herctelu-vet-

sted-

e-e foryi-eh- at-

adaptively computing the filter necessary to producedesired power spectrum as was shown in Eq. (13), a filter was used at each gray level. In general, a smoovarying low-pass filter was used, such as a Butterwfilter, or a Gaussian filter. The cutoff frequency of tfilter is still adjusted as a function of gray level to acount for the variation in the principle frequency of halftone pattern.

Rolleston and Cohen20 have also presented a simlar approach where they create noise patterns withscribed two-dimensional correlation functions for purpose of using them as masks for digital halftonIn this case, instead of designing the halftone pattera sequential fashion and afterwards combining the terns to form a dither matrix, the entire dither matrixoptimized sinultaneously. This is done by initializing dither matrix with uniformly distributed random noisThe noise matrix is then transformed to the frequencymain, where a power spectrum constraint is applied. Gerally, the application of this constraint involves simmultiplying the frequency spectrum by a binary maskfunction. The filtered spectrum is then transformed bto the spatial domain where a constraint is imposedforces the noise to have a uniform probability denfunction. This insures that the number of dots in thesulting halftone pattern will be linear with the input tolevel. These steps are then applied iteratively until cvergence is reached. In this manner, it is possible to erate halftone patterns with a variety of power specincluding those with blue-noise characteristics.

2.2.2 Void-and-Cluster Technique. Ulichney has pro-posed a simple technique for generating blue-noiseterns that he refers to as the “void-and-cluster” meth9

The general principle employed in the design of ditmatrices using this technique is that large clustervoids of dots should be avoided. The optimization pcess involves two basic phases. First, a dither patteformed for an initial gray level. Next, dither patterns sequentially formed for the remaining gray levels.

A flow chart for the first phase of the void-and-cluter optimization process is shown in Fig. 14. The fstep is to choose an initial binary dither pattern. Tinitial pattern may be randomly formed, or may corspond to the pattern that is obtained with an exissolution, such as the Bayer matrix. The initial patterthen examined to find the tightest “cluster” of dots. of the pixel locations containing 1’s are consideredthis process. The “1” at the location of the tightest cter is then removed. The new pattern is then examto find the location of the largest “void,” and a “1” inserted at this location. If the location of the largest vis the same as the location that the “1” was just remofrom, then the process has converged. In this cas“1” is restored to initial position and the procedureterminated. With each iteration, the voids should smaller, and the clusters should get looser.

To determine the locations of the largest void acluster, Ulichney defined a filter function that he covolved with the dot pattern. The location of the mimum and maximum values of the filtered dot pattern tdefine the largest void and the largest cluster, res

Page 11: Methods for Generating Blue-Noise Dither Matrices for

la- ae

ing

s

is ath isur

bedayitial toonary ofrected.ingdded, a

ots., aorectedm-

nd-

g- be be lo-r a 0iredray

ssedneblelly

be

tively. As with the spatial domain cost function calcution described above in Sec. 2.1.2, it is necessary tocount for the periodic nature of the dither pattern whperforming the convolution. This is accomplished usa modified convolution

p x y p m n f m nf

m M

M

n M

M

x

x

y

y

( , ) ( ' , ' ) ( , )./

/

/

/

==− =−∑ ∑

2

2

2

2

(15)

where Mx and My are the dither array dimensions, p(x, y)is the dot pattern, f(x, y) is the filter function, pf(x, y) isthe filtered dot pattern, and

m′ = (Mx + x – m)mod Mx, (16)n′ = (My + y – n)mod My.

Ulichney used a Gaussian filter function of the form

f(x,y) exp [–(x2 + y2)1/2(2σ2)] (17)

for his investigation. He found that a value of σ = 1.5produced the best results.

Insert a "1" into the location of the largest void

No

Load binary patternwith initial

input pattern

YesDidremoving the "1"create the largest

void?

Find location oftightest cluster

(all 1's are candidates)

Remove the "1" from the location of thetightest cluster

Find location oflargest void

(all 0's are candidates)

Start

Restore the "1"that was just removed End

Figure 14. Flow chart for the first phase of the void-and-cluter optimization process.

Once the halftone pattern for the first gray leveldetermined, the next phase of the void-and-clusterproach is to sequentially compute the patterns for remaining gray levels. A flowchart for this processshown in Fig. 15. (It should be noted that this proced

c-n

-

p-e

e

has been generalized slightly relative to that describy Ulichney.) First the patterns between the initial grlevel and black, and then the patterns between the ingray level and white are computed. The first step isload an array with an initial binary pattern. The solutifor the previous gray level is used as the initial binpattern for the current gray level. Next, the numberpixels that need to be changed to produce the cornumber of dots for the current gray level is determinDepending on whether the gray level is currently beincremented or decremented, dots either need to be aor removed. If the gray level is being decrementednumber of 1’s need to be turned into 0’s to remove dConversely, if the gray level is being incrementednumber of 0’s need to be turned into 1’s to add mdots. The number of dots that need to be added/subtrawill depend on the size of the dither array and the nuber of allowable gray levels.

Determine the numberof 0's/1's that need

to be changed

YesHaveenough pixelsbeen changed

?

Find location oflargest cluster/void

change the pixel toto a "0"/"1"

End

No

Load binary patternwith initial binary pattern

Start

Figure 15. Flow chart for the second phase of the void-acluster optimization process.

The next step is to identify the location of the larest void/cluster in the dot pattern. If dots need toadded, the largest void is identified. If dots need toremoved, the tightest cluster is identified. Once thecation has been found, the pixel is changed to a 1 oaccordingly. This process is repeated until the requnumber of pixels have been changed for the current glevel. The remainder of the gray levels are then procein an identical fashion until a complete set of halftopatterns have been determined for all of the allowagray levels. The resulting halftone patterns can finabe combined to form a single dither matrix that canused in any of the standard dither algorithms.

Chapter III—Algorithms—235

Page 12: Methods for Generating Blue-Noise Dither Matrices for

a thnt ialinasolyarinThs t

hanse

ancyliedopi thixne

quf th i fildes-di-e, aer a

iveg

uvepaexone

eaomnd th

ing athlly

onixe

ow.n isionivedatss

mi-ted

ter-im-

vi-lec-

rib-canthey

hethens.l forltans.nal

o toc- be

sentteadr athepat-rntlyon

ue-

avend-hat

hegesse

ray

aypix-vel,lev-rage

Since the void-and-cluster method is effectively“steepest descent” optimization approach, the resultsare obtained using this technique are quite dependethe initial starting conditions. For example, if an initbinary pattern containing a single 1 is used, the fmatrix is identical to the Bayer matrix solution (alknown as a “recursive tessellation” solution). If randomformed initial binary patterns are used the results quite similar to the blue-noise patterns computed usthe visual cost function methods described above. largest advantage of the void-and-cluster approach icomputation speed of the optimization process.

It can be seen that the void-and-cluster methodmuch in common with Mitsa and Parker’s iterative costraint technique described in Sec. 2.2.1. In both caa filtered dot pattern is determined. However, Mitsa Parker perform the filtering operation in the frequendomain, whereas a spatial domain convolution is appfor the void-and-cluster technique. Once the filtered pattern has been computed, it can be seen that the positions having the largest errors computed for withiterative constraint technique are analogous to the ppositions with the largest voids and clusters determiby Ulichney.

2.2.3 Visual Potential Techniques. We have recentlyinvestigated a variation of the void-and-cluster technithat incorporates some of the desirable features osequential visual cost function method describedSec. 2.1.2. The most significant difference is that theter function is designed using a visual response moTherefore, the largest “visible voids” and “visible cluters” in the halftone pattern will be determined. Adtionally, a visual cost function method is generally usto determine the initial halftone pattern. Alternativelypattern from a previously determined blue-noise pattor even a pattern generated using an error diffusiongorithm can also be used for the initial pattern.

Once the initial pattern has been defined, a percehalftone pattern pv(x,y) can be computed by convolvinthe halftone pattern p(x,y) with an approximation of thepoint-spread function of the human visual system v(x,y):

pv(x,y) = p(x,y)* v(x,y). (18)

As noted above, the convolution must take into accothe periodic nature of the dither pattern. The perceihalftone pattern is analogous to the filtered halftone tern computed for the void-and-cluster technique, cept that a visual model is used for the filter functiFor an “ideal” halftone pattern, the resulting perceivhalftone pattern is perfectly uniform. However, for a rhalftone pattern, the perceived halftone pattern is cprised of a lumpy surface having local minima amaxima corresponding to the voids and clusters inhalftone pattern.

To determine halftone patterns for the remaingray levels in a sequential manner, it is necessary to(or subtract) an appropriate number of dots from halftone pattern. It is intuitive that the dots are typicaadded to pixel locations where the perceived halftpattern is high, or conversely are subtracted from p

236—Recent Progress in Digital Halftoning II

aton

l

ege

he

s-s,d

dt

xeleeld

ee

n-l.

d

n,l-

d

ntdt--.dl-

e

dde

el

locations where the perceived halftone pattern is lUsing this approach to determine a halftone patteressentially equivalent to defining a new cost functthat penalizes large peaks and valleys in the perceluminance distribution. Although it could be argued ththe final result obtained with this method may be leoptimal than those obtained with the stochastic optization methods, the quality improvements associawith the fact that larger dither matrices can be demined may outweigh any quality loss from the more splistic optimization approach.

An appropriate name for this technique may be “sual void-and-cluster.” It has also been referred to as “etrostatic dither” because of a close analogy to an electrondistribution problem. Consider a set of electrons distuted on a planar surface. An electrostatic potential be computed by summing the potential for each of electrons. The potential for a point charge is given b

φ( , ) ,x y

AR

= (19)

where A is a constant, and R = [(x – x0)2 + (y – y0)2]1/2,wherex0 and y0 are the coordinates of the point charge. Toverall potential for a set of electrons is given by sum of the potentials for each of the individual electroThis can be seen to be a convolution of the potentiaa single point charge at the origin, with a set of defunctions corresponding to the positions of the electroIf these electrons were locked in place, and an additioelectron was added to the surface, it would want to gthe location with the minimum potential. After the eletron is placed, the potential function would need tomodified to account for the new electron.

It can be seen that this is analogous to the preproblem where halftone dots are being positioned insof electrons. The analogy to the potential function fosingle point charge is the point-spread function for human visual system. Since the perceived halftone tern is given by the convolution of the halftone pattewith the visual point-spread function, this can be direcrelated to the total potential function for the electrdistribution. A method recently described by Yu et al.also uses an “electrostatic force” model to optimize blnoise dither patterns.21

2.2.4 Other Void-and-Cluster Variants. A number ofother variations of the void-and-cluster technique halso been investigated. Lin has developed a void-acluster based algorithm that uses a filter function tvaries with gray level.22 In particular, the width of thefilter function is varied to account for the fact that taverage distance between the minority pixels chanas a function of gray level. (The minority pixels are thothat occur less frequently in the halftone pattern; e.g.,for halftone patterns that are lighter than a 50% glevel, the minority pixels will be black.)

During the optimization process for a given grlevel, the average separation between the minority els is determined. For gray levels near the 50% lethe average separation is relatively small. For gray els near the extreme ends of the tone scale the ave

Page 13: Methods for Generating Blue-Noise Dither Matrices for

laeit

-plt i

tse

ape

raeisa

fris-

stuil- aae

ne tos cuitn ke

igtierne t

neths rg

rc ilyt

u f

s aren- thatrac-

his the

ized

ing,ner-ioniva-ex- by a thean-velsputted

ed,, or

of in-umcaset

ed,puted

d to

lti-on

separation is large. The average separation is calcuby dividing the total number of pixels in the halftonpattern by the number of elements with the minorvalue and taking the square root.

A function is determined by “trial and error” to relate the average separation value to a region of supvalue for the filter function that gives pleasing resuwhen examined visually. The region of support valuerelated to the width of the filter function. Lin reporthat the use of this variable filter function results in fewobjectionable artifacts in the halftone pattern. This proach can be compared to using a visual model whthe viewing distance is varied as a function of the glevel. Tuning the filter size as a function of gray levallows the pattern to be optimized for the viewing dtance that will be most susceptible to artifacts. This mbe quite appropriate in practice where observers quently will view an image from a series of viewing dtances to evaluate quality.

Lin has also described a refinement of this bamethod that incorporates a model of the dot strucfor the printer.23 In this case, instead of applying the fter function directly to the binary halftone pattern,model of the dot reproduction characteristics for the pticular printer being addressed is used to predict the dsity distribution of an image formed using the halftopattern. The resulting density distribution is filteredidentify the largest clusters and voids. Several typedot models were discussed including overlapping cirlar dots and Gaussian dots. To use this approach, necessary to form a higher resolution representatiothe halftone image where each image pixel is brodown into a set of sub-pixels.

Barton has described another approach for desing halftone patterns that involves examining the spadot distribution to look for the largest voids and clustof dots.24 In this case, the halftone patterns are desigby growing the patterns from the lightest tone levelthe darkest tone level. As in the methods describedUlichney and Lin, a filter function is used to determithe pixel location where a dot should be added to halftone pattern. (Barton refers to the filter function a“cost function”.) Similar to Lin, Barton varies the filtefunction with tone level. However, instead of varyinthe function form of the filter itself, he varies the searadius used to determine whether a dot should becluded in the summation. This is equivalent to multiping the filter function, f(x, y), by a cylinder function thavaries in radius:

f ′(x,y) = f(x,y)cyl[(x2 + y2)1/2/R], (20)

where R is the search radius, and

cyl( )

,,

.rr

r=

< ≤>

1 0 10 1 (21)

To force diagonal correlation of adjacent dots in the oput image, Barton introduces an angular dependentter function

f x y

r C r( , )

( ) (sin ) ( / ),=

+ −1

2 2 2α (22)

ted

y

ortss

r-reyl-y

e-

icre

r-n-

of-

isofn

n-alsd

oby

ea

hn--

t-il-

where r = (x2 + y2)1/2, (23)

C is a constant (nominally 2), and α is the relative anglefrom the center pixel. Because the filter function halower value in the diagonal direction, dots are prefetially placed in diagonal arrangements. Barton arguesthis is preferable in many cases due to the dot intetion characteristics of typical printers. Qualitatively, tis also consistent with the angular dependence ofhuman visual system sensitivity.

3 Blue-Noise Matrices forMultilevel Halftoning

Periodic halftoning techniques can easily be generalfor use with multilevel output devices.25 ,26 Typically,such techniques are referred to as multilevel halftonor sometimes as multitoning. Figure 16 shows a gealization of the ordered-dither technique for applicatto multilevel devices. It can be seen that this is equlent to the binary implementation shown in Fig. 2, cept that the threshold operation has been replacedquantization operation. The dither signal is added toinput signal to form a modulated input signal. The qutizer then associates one of the allowable output lewith each of the possible values of the modulated insignal. The quantizer can conveniently be implemenas a look-up table (LUT). If a uniform quantizer is usit can also be implemented using a divide operationpossibly as a binary bit shift.

xd

yd

x (column #)

y (row #)

I(x,y) O(x,y)

mod Mx

mod My

dither matrixd(xd, yd)

quantizer

Figure 16. Basic multilevel dither implementation.

Generally, it is desirable to adjust the amplitudethe dither signal to equal the size of the quantizationterval. This produces dither patterns with the minimpossible modulation level. For example, consider the where an input image I(x,y) has m different levels, and iis desired to produce an output image O(x,y) having npossible output levels. If a uniform quantizer is usthe size of the quantization interval in terms of the inlevels will be given by the maximum input level dividby the maximum output level: (m-1)/(n-1). If the dithermatrix, d(xd,yd) stores dither values in the range 0 to p-1,the amplitude of the dither signal must be rescalematch the quantization interval.

When the dither matrix is properly rescaled, the mulevel dither process can be represented by the equati

O x y

I x y d x y p m nm nd d( , ) int

( , ) [ ( , ) / ] ( ) /( )( ) /( )

,=+ − −

− −

1 11 1

(24)

Chapter III—Algorithms—237

Page 14: Methods for Generating Blue-Noise Dither Matrices for

bd

aein

nhsh

s

c-rix

ry

apte-e-singisngde-evenhesels

where INT() indicates an integer truncation. It can seen that the dither matrix value is scaled and addethe input image. The resulting modulated input valuequantized by dividing the result by the size of the qutization interval, (m-1)/(n-1), and rounding down to thnext integer value. Equation (24) can be rearranged a form that is more convenient in many cases:

O(x,y)

=

− − +

int[ /( )][( ) / ] ( , ) ( / ) ( , )

/m m n n I x y m np d x y

m nd d1 1

(25)

If both m and n are powers of 2, the divide operatioassociated with the quantizer can now be accomplisusing a binary bit-shift. However, the input value munow be scaled before the dither signal is added to it. Tequation can be simplified somewhat by defining a ries of constants

O x y

C I x y C d x xC

d d( , ) int( , ) ( , )

,=+

1 2

3(26)

238—Recent Progress in Digital Halftoning II

e toisn-

to

edtis

e-

where

Cm

mn

n

Cmnp

Cmn

1

2 3

11=

= =

,

, .(27)

In practice, for computational efficiency, the scale fator C1 can be implemented as a LUT, the dither matvalues can be premultiplied by the value C2, and the di-vide by C3 can be implemented using a LUT or a binabit-shift operation.

This multilevel dither algorithm can be used to adany conventional binary dither matrices, including blunoise dither matrices, for use with multilevel output dvices. Figure 17 shows a series of images generated uthe multilevel halftoning method given in Fig. 16. In thcase, a 16× 16 blue-noise dither matrix generated usithe simultaneous visual cost optimization technique scribed in Sec. 2.1.3 was used. It can be seen that in the magnified state, the multi-toned image approacthe quality of the original image when 16 output lev

output

(a) (b)

(c) (d)

Figure 17. Images generated using multilevel blue-noise dither algorithms with 16 x 16 dither matrix: (a) original, (b) 2 levels, (c) 4 output levels, and (d) 16 output levels.

Page 15: Methods for Generating Blue-Noise Dither Matrices for

th

edutanepe

ilautherpur-e 8,agsis

mi

erarteue

m

ng d

x thethecahmhaentsh i

s.

thated.rayrn

be-el.grayitsec-

edle-irstsedise

allya-n

ntthat

forarean,w,lly fornyteice iscor-

or-theheran-her be

asng

le- inn-st

atchlow.ro-re,low thehite in it

are used. When the images are printed at 300 dpi,difference is essentially indistinguishable.

Although any blue-noise dither matrix can be uswith the above implementation for multilevel outpdevices, the results are not necessarily optimSpaulding and Ray have investigated methods to geate blue-noise dither matrices that were optimized scifically for multilevel output devices.27 The dithermatrix design approach used in this case is very simto the simultaneous visual cost optimization techniqdescribed in Sec. 2.1.3. The difference being that costs for each of the levels within a quantization intval are combined, rather than the cost for all of the inlevels. A slight modification to the implementation achitecture was also introduced that permitted the usnon-uniform quantization functions. As shown in Fig. 1a variable scale factor is included that permits the mnitude of the dither value to be adaptively adjusted afunction of the size of the quantization interval. In thparticular implementation, the dither values are nonally stored as values in the range between ±1/2 and thescale factor is simply the size of the quantization intval. Since the size of the quantization interval may vas a function of the input level, this value can be demined using a LUT addressed by the input code val

O(x,y)

quantizationcell size

∆xd

yd

x (column #)

y (row #)

I(x,y)

mod Mx

mod My

dither matrixd(xd, yd)

range = ±1/2

quantizer

Figure 18. Multilevel dither implementation using non-uniforquantizer.

Multilevel dither can also be implemented usiother algorithm architectures. One such approach,scribed by Miller and Smith,28 and Miller29 is shown inFig. 19. In this case, the modularly addressed matriused to store pointers to a series of dither LUTs, rathan storing actual dither values. The results of the diprocess for each of the possible input levels are pre-culated and stored in these dither LUTs. The algoritcan now be executed with only table look-ups rather tthe adds and multiplies necessary in the first implemtation. Effectively, this trades off memory requiremenfor a faster execution speed. This approach is somewanalogous to the binary dither arrangement shownFig. 3.

I(x,y)

O(x,y)x (column #)

mod Mx

mod My

xd

yd

dither LUTselector

0-(m-1)

0-(n-1)y (row #)

dither LUTs(one for each cell

in the dither matrix)

Figure 19. Multilevel dither implementation using dither LUT

e

l.r--

ree-t

of

- a

-

-yr-.

e-

isrrl-

n-

atn

The LUT-based approach also has the advantageany conceivable dot growth pattern can be specifiWith the conventional implementations, as the input glevel is increased all of the pixels in the dither patteare generally increased to the second output levelfore increasing any of the pixels to the third output levIn some cases, it might be desirable to increase the level of one pixel in the dither pattern through all of levels before starting to increase the gray level of a sond pixel. This would be possible with the LUT-basapproach, but would not be possible with the first impmentation. Any pattern that can be created with the fimplementation can also be created using the LUT-baapproach, but the reverse is not true. Although blue-nodither matrices have not been designed to specifictake advantage of this extra flexibility, the texture prameter described by Miller et al. can be used to desigLUTs with a variety of characteristics from a conventionaldither matrix. This feature can be particularly importafor devices, such as electrophotographic printers, do not produce uniform density regions very well.

4 Blue-Noise Matrices for Color Images

Many color imaging devices produce binary output each of the color planes. Typically the color planes red, green, and blue (RGB) for additive devices, or cymagenta, and yellow (CMY), or cyan, magenta, yelloand black (CMYK) for subtractive devices. Generahalftone images for these applications are generatedeach of the color planes independently following acolor correction/calibration steps. It is important to nothat the color reproduction characteristics of the devare usually a function of the halftoning method thatused. It is, therefore, necessary to design the color rection process knowing the halftoning method.

For the present discussion we assume that andered-dither algorithm is used to halftone each of channels independently. In general, a different ditmatrix can be used for each of the different color chnels. Therefore, an important question is how the ditmatrices used for the different color channels shoulddesigned to maximize image quality.

4.1 Dot-on-Dot Matrices. If the same halftoning patternis used for each of the color channels, this is known“dot-on-dot” printing. A sample image generated usithis method with a 128× 128 dither matrix is shown inFig. 20(a). Although this approach is the easiest to impment, it is rarely used in practice because it resultsthe highest level of luminance modulation, and additioally the color reproduction characteristics will be mosensitive to registration errors.

To understand these effects consider a neutral pcreated using equal levels of cyan, magenta, and yelWith the dot-on-dot approach, the halftone patterns pduced for each color channel are identical. Therefowhenever a cyan dot is printed, a magenta and yeldot are also printed in the same location. As a result,image is formed using a series of black dots on a wbackground. This is illustrated in the neutral regionsthe image shown in Fig. 20(a). With a little thought,

Chapter III—Algorithms—239

Page 16: Methods for Generating Blue-Noise Dither Matrices for

f ldoa

trarigiiti oertraotndalth

su-sed,lates torts

om-isp-

late and

cesthe

can be seen that this must produce a larger level ominance modulation than the case where the colored are not coincident, therefore, the halftone patterns generally more visible to an observer.

There is also be an increased sensitivity to registion errors. This can cause the reproduced color to dfrom page-to-page, or even within a page, as the retration characteristics change. This increased sensity to registration errors results in the fact that if onethe color planes is misregistered relative to the othall of the dots shift together. This could cause a neupatch to be formed by cyan dots next to a set of red dinstead of a set of black dots on a white backgrouSince a cyan dot next to a red dot does not generproduce the same integrated color as a black dot, causes the reproduced color to change.

240—Recent Progress in Digital Halftoning II

u-ts

re

-fts-v-fs,ls,.

lyis

4.2 Independently Derived Matrices. Because of theproblems associated with dot-on-dot printing, it is ually desirable to decorrelate the halftone patterns ufor each of the color channels.30 In the graphic arts fieldthe preferred solution has typically been to decorrethe halftone patterns by rotating the halftone patterndifferent “screen angles.” For conventional graphic ahalftone methods, this rotation can either be accplished optically or digitally. However, this solution generally not practical for low-resolution printing aplications where ordered-dither is useful.

A number of techniques can be used to decorrethe halftone patterns used for ordered-dither. ParkerMitsa have enumerated several of these methods31 Onesolution is to use independently derived dither matrifor each color channel. To effectively decorrelate

, (c)

Figure 20. Images generated using 128× 128 blue-noise dither matrices: (a) dot-on-dot matrices, (b) shifted matricesinverted magenta/shifted yellow matrices, and (d) jointly optimized matrices.

(a) (b)

(c) (d)

Page 17: Methods for Generating Blue-Noise Dither Matrices for

uatlromdo

laheheu ctrihit bcaa

ow a

rene

a

efteaenceolbaeis

eap bn

f tl

ron

lly

trie

ageeixtsre

s

irstthep-oremee of

trix ver- theithernye themi-

h is

entathell,ncew-urs areand

.2 tor theed,uceity

dotpro-u-s. be

itherut-

out-m

ioni-izetlysen-cededis-lu-

ignoloraniontionhealf- toalf-

spa-

matrices for each channel, different random seeds coto be used to initialize the blue-noise dither optimiztion process. Using uncorrelated matrices significanreduces the amount of visible luminance modulation pduced in the final image, however, it is not optimubecause there is still a random overlap between the of the different color planes.

4.3 Shifted MatricesAnother approach that can be used to decorre

the matrices is to spatially shift the phase of the ditmatrix patterns for each channel relative to each otFor example, a blue-noise dither matrix, determined ing one of the design techniques discussed above,be used for the cyan color channel. This dither macan then be altered by shifting the phase of the ditpattern some number of pixels to the right for use wthe magenta color channel. Similarly, the phase canshifted by some number of pixels in the vertical diretion for the yellow color channel. The phase shifts cbe accomplished by computing a new set of dither mtrices, or by simply adding an offset to the image rand column addresses before the modulo operationsapplied to determine the dither matrix indices. The sults should be essentially equivalent to those obtaiwith totally uncorrelated matrices.

A sample image generated using shifted dither mtrices is shown in Fig. 20(b). The same 128× 128 dithermatrix that used to generated Fig. 20(a) was used has well. However, the magenta dither pattern was shi64 pixels horizontally, and the yellow dither pattern wshifted 64 pixels vertically. It can be seen that the ovall level of pattern visibility is substantially lower thafor the dot-on-dot case. Any overall color differenbetween the two images is due to the fact that the creproduction characteristics of a halftone device will a function of the halftoning algorithm. In a real appliction, the output would be color corrected for the spcific approach that is implemented. However, for thexample, no custom correction was done.

The amount of decorrelation can be controlled somwhat by adjusting the amount of phase shift that is plied. The greatest decorrelation is typically obtainedshifting the phase by half the dither matrix size. In geeral, the argument could be made that the phase opatterns should be shifted by half of the dominant hatone period to ensure that the dots have a higher pability of not overlapping. However, since the dominaperiod will be a function of gray level, this is generanot a practical solution.

4.4 Inverted MatricesAnother approach is to use an inverse dither ma

for one or more of the color channels. In this case, a ndither matrix is calculated by inverting the polarity offirst matrix. If the dither matrix has values in the ran0 to 255, the dither values for new matrix will simply bequal to 255 minus the dither values for the first matrUsing this approach will minimize the number of dothat will overlap with each other for two of the colochannels. In fact, for a 50% gray level, the two matricwill produce halftone patterns that are exact inverse

ld-y-

ts

terr.

s-anxerhe

-n-

re-d

-

red

sr-

ore--

--

y-hef-b-t

xw

.

sof

each other. For lighter gray levels the dots for the fcolor channel will tend to be placed in the voids of second color channel. The primary limitation of this aproach is that most color imaging applications use mthan two color channels. Therefore, in practice, soother method must be used to determine at least onthe color channels. For example, a first dither macould be used for the magenta channel, an invertedsion of the magenta dither matrix could be used forcyan channel, and a shifted version of the magenta dmatrix could be used for the yellow channel. In macases, this may produce acceptable results becausyellow channel generally contributes less to the lunance modulation.

A sample image generated using this approacshown in Fig. 20(c). Again, the same basic 128 × 128dither matrix is used. However, in this case, the magmatrix was inverted relative to the cyan matrix, and yellow matrix was shifted 64 pixels vertically. Overathis image shows a small improvement in the luminamodulation relative to the shifted matrices image. Hoever, there are some mildly disturbing texture contothat can be seen just below the gray scale. Theseformed near a code value of 128 where the cyan magenta patterns are exact inverses of each other.

4.5 Jointly Optimized MatricesEach of the approaches discussed in Sections 4

4.4 has the advantage that the halftone patterns fodifferent color channels are effectively decorrelattherefore, the resulting halftone image should prodlower amounts of luminance modulation and sensitivto registration errors relative to the nominal dot-on-printing case. However, none of these techniques duce images that will exhibit optimal behavior, particlarly with respect to the visibility of the halftone pattern

We have recently developed a method that canused to simultaneously design a set of blue-noise dmatrices for each of the color channels for a color oput device. The matrices are designed to provide anput image having halftone patterns with minimuvisibility to a human observer. In the simplest versof this method, the halftone pattern visibility is minmized by determining the dither matrices that minimthe visible luminance modulation. This is frequenappropriate since the human visual system is more sitive to luminance modulation than it is to chrominanmodulation. However, the method can easily be extento include terms in the cost function that reflect the vibility of the chrominance modulation as well as the minance modulation.

The preceding monochrome dither matrix desmethods can be adapted to determine the set of cdither matrices that have minimum visibility to a humobserver. To use the visual cost function optimizatapproaches, it is first necessary to define a cost funcrelated to the visibility of the halftone pattern. For tcase where only the luminance component of the htone pattern visibility is considered, the first step iscompute a spatial luminance distribution from the htone patterns that are used for each color channel.

One method that can be used to determine the

Chapter III—Algorithms—241

Page 18: Methods for Generating Blue-Noise Dither Matrices for

cnll b

ow

ncloant

tluelf-

el.tivypndp

oco

trhe

Ywres

-arl tsitoonmicce

itynr

the

th t

can ofthistion

al- an-erns

s a

ishe aster-lor

beingualdedlly

d toave in-lort itsMY

ase in-uld thels.utul-

in-nenedsfullyer-

anden hashenalsoh ofinedan-an-

thetive as a

ini-Formly usedi-me

tial luminance distribution is by measuring the luminanvalues that result when each of the individual colora(e.g., cyan, magenta, and yellow) are used, as wethe luminance values that result for the possible comnations of the colorants (e.g., red = magenta+yellgreen = cyan+yellow, blue = cyan+magenta, and black= cyan+magenta+yellow). To determine the luminadistribution, the halftone patterns for each of the cochannels can be superimposed and the luminance vcorresponding to the resulting combination of coloracan be assigned to each of the pixel locations.

Another approach that can be used to computespatial luminance distribution is to estimate it’s vaby calculating a weighted sum of the individual hatone patterns

l x y w O x y

ii i( , ) ( , ),=

=∑

1

channels

(28)

where Oi(x,y) is the output image bitmap for the i’ th colorchannel, and wi is a weighting factor for each channThe weighting factors should generally reflect the relacontributions of each channel to the luminance signal. Tcally, yellow would have the smallest contribution, amagenta would have the largest contribution. An examof typical weights would be wc = 0.3, wm = 0.6, wy = 0.1.

Once the luminance distribution l(x,y) for a set ofhalftone patterns has been computed, the visibilitythe luminance modulation can be estimated using a function analogous to that shown in Eq. (1):

cost d dCMY CMY= ∫∫ L f f V f f f fx y x y x y( , ) ( , ) .

2(29)

In this case, the Fourier transform the luminance disbution, LCMY(fx,fy), is used in the formula instead of tFourier transform of the halftone pattern itself. The CMsubscript reflects the fact that the cost is associated the halftone pattern for a particular color value. It is fquently useful to work with a discrete form of this cofunction

costCMY CMY=

=

=

∑ ∑i

M

j

M

ij ij

x y

L V0

1

0

1 2, , (30)

where LCMY,ij is the (i,j )’th element of the discrete Fourier transform of the luminance distribution for a pticular CMY color value, and Vij is the human visuasystem sensitivity for the frequency correspondingelement (i,j ). As was discussed above, it may be deable from a computational efficiency point of view use the spatial domain versions of these cost functiThese forms follow directly using Parseval’s theoreOther types of cost functions can also be defined, whinclude terms relating to the visibility of the chrominanmodulation in addition to terms relating to the visibilof the luminance modulation. These types of cost futions can be used to more accurately reflect the ovehalftone pattern visibility. However, in many cases improvement in the final results do not justify the addcomplexity in the optimization process.

As with the monochrome dither matrix design meods discussed above, there are a number of ways

242—Recent Progress in Digital Halftoning II

etsasi-,

erlues

he

ei-

le

fst

i-

ith-t

-

or-

s..h

c-alled

-hat

the visual cost associated with the halftone patternsbe minimized. For example, the bit patterns for allthe pixel values can be optimized simultaneously. In case a total cost value is computed that is a combinaof the individual cost values for a set of CMY color vues. An optimization technique such as stochasticnealing can then be used to determine the bit pattthat produce the minimum total cost value.

One form of the total cost that can be used iweighted sum of the individual cost values

cost costtotal

CMYCMY CMY= ∑ w , (31)

where wCMY is a weighting factor, and the summationcomputed over a certain set of CMY color values. Tchoice of the particular subset of CMY color values,well as the weights assigned to each color value demine the relative importance of various parts of cospace during the optimization process.

For example, if the neutral colors are believed tothe most important color values for a particular printapplication the set of CMY color values having eqamounts of cyan, magenta, and yellow can be incluin the summation. If all of the neutral colors are equaimportant, then the weighting factors can be definenormalize the individual cost values so that they hsimilar magnitudes. Other color values that can becluded in the set of CMY color values are primary coseries where one color channel is varied throughourange, and the other color channels are set to 0. Ccolor values for particularly important colors, suchskin-tones, sky colors and grass colors can also bcluded. Yet another set of CMY color values that cobe used would be all of the possible combinations ofallowable color values for the different color channe

Alternatively, the halftone patterns for each inplevel can be determined sequentially rather than simtaneously. In this case, a halftone pattern for a firstput level is initially determined, and then halftopatterns for the remaining input levels are determione-by-one. One method that has been used succesis to first determine the cyan halftone pattern for a ctain input level, and then to determine the magentayellow halftone patterns for that input level in turn. Whthe halftone patterns for each of the color channelsbeen determined for that level, the next level can tbe considered. Other optimization sequences are possible. For example, the halftone patterns for eacthe input levels for one color channel can be determfirst. When the halftone patterns for the first color chnel have all been determined, the remaining color chnels can be optimized sequentially. As before, individual levels may be optimized using a consecusequence, or using other types of sequences suchbinary-tree.

The step of determining halftone patterns for an tial input level can be performed in several ways. example, a first set of halftone patterns can be randoformed, and a stochastic annealing procedure can beto minimize a visual cost function. Alternatively, the intial halftone patterns can be formed from monochro

Page 19: Methods for Generating Blue-Noise Dither Matrices for

e ho

s,

et-tiauedmeml t

his, atica n

tyrm

sig.eal inbg oone vateolelucaol10 o

thee hiecibsoing

ec

t-ithat-tedp-adthen.ted,

at am-

on-oraynce

orMYncetedeite

nd-antheal-nceta,edas

ed Aart-m2).dd-thetri-nce ofurehat-

0.neredheirraylots theeen thel isandgly.

blue-noise dither matrices. For example, to initializset of dither matrices for a neutral input value, the metshown here in pseudo-code can be used:

for channel = 0 to num_channelsfor each i,j

{if ((d(i,j ) > = channel* level) and (d(i,j )

<(channel + 1) * level)patternchannel(i,j ) = 1

elsepatternchannel(i,j ) = 0

}, (32)

where num_channels is the number of color channeld(i,j ) is the monochrome dither matrix, patternchannel(i,j )is the initial halftone pattern for a given color channand level is the input level for the initial halftone patern. It should be noted that the input level for the inihalftone pattern must be less than, or equal to, the nber of levels in the monochrome dither matrix dividby the number of color channels. For a monochrodither matrix having 256 different levels, and a systhaving three color channels this limits the input levebe less than or equal to 85.

If the initial halftone patterns are formed using tapproach, the resulting patterns are non-overlappingreflect the basic frequency distribution characterisof the monochrome dither matrix. Both of these charteristics are desirable, but the resulting patterns maybe optimum relative to the global minimum visibilisolution. For this reason, it may be desirable to fopatterns using this method, and then refine them uan optimization method such as stochastic annealin

When a sequential optimization approach is usthe cost value can be computed from a single color v(typically a neutral color value corresponding to theput value currently being optimized), or can be a comnation of cost values for a set of color values. Usincombination of cost values ensures that the visibilitythe halftone patterns generated for color values in part of color space is not optimized at the expensother parts of color space. One combination of cost ues that has been found to be useful is to compuweighted average of the cost value for a neutral cvalue, and a corresponding pure color value. For ample, if the bitmap for the cyan channel for input va100 was being optimized, the combined cost value be a weighted average of the cost for the neutral cwhere cyan, magenta, and yellow all have a value of with the cost for the color where cyan has a value100, and magenta and yellow are zero.

When large dither matrices are being optimized,visual cost based optimization techniques have bfound to take a substantial amount of processing timcomplete even with very powerful computers. For treason, it may be desirable to use other optimization tniques, such as the visual potential technique descrabove, that converge more quickly, even if the final lution is slightly less optimal than could be found usthe slower techniques.

The visual potential technique discussed in Stion 2.2.3 can be extended to the current problem

ad

l,

lm-

e

o

ndsc-ot

ng

d,ue-i-afe

ofl- a

orx-en

or0,f

eentosh-ed-

-of

jointly optimizing blue-noise matrices for a color ouput device by simply replacing the halftone pattern wthe luminance distribution for the set of halftone pterns. The perceived luminance distribution is calculaby convolving the luminance distribution with an aproximation to the human visual system point-sprefunction. Dots can then be added/subtracted at minima/maxima of the perceived luminance distributioIf more than one dot needs to be added or subtracthe dots should generally be added/subtracted onetime and the perceived luminance distribution recoputed after each step.

This approach can also be extended to include ctributions from the perceived luminance distributions fother colors in addition to the neutral colors. One wto do this is to compute a combined perceived luminadistribution

l x y w l x yp p( , ) ( , ),,= ∑

CMYCMY CMY (33)

where wCMY is a weighting factor, lp,CMY(x,y) is the per-ceived luminance distribution for a certain CMY colvalue, and the summation is computed over a set of Ccolor values. Once the combined perceived luminadistribution is computed, dots can be added/subtracby finding the respective minimum or maximum. Onset of CMY color values that has been found to be quuseful is a neutral value, combined with the correspoing pure color. For example, if the bitmap for the cychannel for input value 100 were being optimized, combined perceived luminance distribution can be cculated as a weighted average of the perceived luminadistribution for the neutral color where cyan, magenand yellow all have a value of 100, with the perceivluminance distribution for the pure color where cyan ha value of 100, and magenta and yellow are zero.

A sample image generated using jointly optimiz128× 128 blue-noise matrices is shown in Fig. 20(d).visual potential optimization approach was used sting from a set of initial patterns at level 85 formed froa monochromatic blue-noise dither matrix using Eq. (3The dither matrices were formed by sequentially aing/subtracting pixels from the halftone patterns at min/max of the combined perceived luminance disbution. In this case, the combined perceived luminadistribution was determined using a simple averagethe luminance distribution for a neutral patch, and a pcolor for the current color channel. It can be seen tthe overall halftone pattern visibility is noticeably improved relative to the three other examples in Fig. 2

An interesting way to compare the color halftopatterns is to look at the fraction of the image coveby the cyan, magenta, and yellow dots, as well as ttwo- and three-color combinations as a function of glevel for a neutral patch. Figure 21 shows a series of pgenerated for the dither matrices used to produceimages in Fig. 20. Considering Fig. 21(a) it can be sthat only black and white dots are used to produceneutral patches at every gray level. As the gray leveincreased, the proportion of black dots increases, the proportion of white dots decreases correspondin

Chapter III—Algorithms—243

Page 20: Methods for Generating Blue-Noise Dither Matrices for

shifted

Figure 21. Fractional coverage of paper as a function of dot area for neutral patches: (a) dot-on-dot matrices, (b) matrices, (c) inverted magenta./shifted yellow matrices, and (d) jointly optimized matrices.

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0.0

0.2

0.4

0.6

0.8

1.0

frac

tiona

l co

vera

ge0 20 40 60 80 100

dot area

black

white

AAAA

AAAA

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0.0

0.2

0.4

0.6

0.8

1.0

frac

tiona

l co

vera

ge

0 20 40 60 80 100

dot area

black

white

red, green, blue

cyan, magenta, yellow

AAAA

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

0.0

0.2

0.4

0.6

0.8

1.0

frac

tiona

l co

vera

ge

0 20 40 60 80 100

dot area

black

white

blue

red, green

yellow

cyan, magenta

AAAA

AAAAAAA

AA

AAAAAA

AA

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0.0

0.2

0.4

0.6

0.8

1.0

frac

tiona

l co

vera

ge

0 20 40 60 80 100

dot area

black

white

blue

green

red

yellow

magenta

cyan

(a)

(b)

(c)

(d)

244—Recent Progress in Digital Halftoning II

Page 21: Methods for Generating Blue-Noise Dither Matrices for

ticho

coinnete

e

eowuew

ree

inu thth t mn

erelwn

ae ia

thbea

htht

nic thwtht isr

all

er-e, aels.c- of

ec-pe-

sic To

ored-ver-, toat isthe newteadpix-omeertedes-fre-ternon-

ver thean.at

andny

ech-ithersed

ed bysatri-up byr”

thetem.y tobil- uti-ualould ap- de-theves-bal

lity

eth-t to

This is characteristic of the dot-on-dot approach.In Fig. 21(b) it can be seen that the characteris

of the shifted matrices approach are quite different. Tfractional coverage of the cyan, magenta, and yellow dare approximately equal at all gray levels, as are the erages for the red, green, and blue two-color combtions. Since the shifted matrices produce halftopatterns that are effectively uncorrelated we would pect that the fractional coverages should approximafollow the Neugebauer equations,32

fw = (1 – c) (1 – m) (1 – y),fc = c(1 – m) (1 – y), fm = (1 – c)m(1 – y),fy = (1 – c) (1 – m)y, (34)fr = (1 – c)my, fg = c(1 – m)y,fb = cm(1 – y), fk = cmy,

where c, m, and y are the fractional dot areas for thcyan, magenta, and yellow halftone patterns, and fw, fc,fm, fy, fr, fg, fb, and fk are the resulting fractions of thpaper covered by white (no ink), cyan, magenta, yellred (magenta+yellow), green (cyan+yellow), bl(cyan+magenta), and black (cyan+magenta+yellorespectively. In this case the values for c, m, and y areall equal since the neutral colors are being consideIt can be shown that the curves in Fig. 21(b) are indconsistent with the expected values from Eq. (34).

The fractional coverage characteristics for the verted matrices approach, shown in Fig. 21(c), are qdifferent from either of the previous graphs. Becausecyan and magenta matrices are inverses of each othe blue and black coverages remain at zero until50% dot area is reached. This is because cyan andgenta dots never occur at the same pixel location uall of the pixel locations are filled with one or the othHowever, since the yellow halftone pattern is effectivuncorrelated with the cyan and magenta patterns, tcolor combinations that include yellow (red and greestart to form even for the smallest dot areas.

Figure 21(d) shows the fractional coverage charteristics for the jointly optimized matrices. It can be sethat up to a 33% dot area there are only single colorcolors present. This is due to the fact that the initial ptern was formed using non-overlapping bitmaps at dot area. Above the 33% dot area, the two-color comnations begin to form. Note that green dots are formmost rapidly due to the fact that green contributes lestrongly to the luminance modulation since it is the ligest of the two-color combinations. Black dots are last to start forming since they have the largest effecthe luminance modulation.

5 Comparison of Blue-Noise Dither andError Diffusion

Blue-noise dither halftoning methods have been fouto produce images with pleasing visual characteristThe resulting image structure resembles the resultscan be obtained using error-diffusion algorithms. Hoever, the computational complexity associated with ordered-dither approach is much simpler than thaerror diffusion. Because of the fact that the blue-nodither patterns must be correlated as a function of g

setsv-a-e

x-ly

,

),

d.ed

-iteeer,

hea-

til.yo-)

c-n

nkt-isi-dst

t-eon

ds.at-e

ofe

ay

level, error diffusion fundamentally maintains a smimage quality advantage.

To illustrate this, consider a halftone pattern genated for a gray level of 240. To obtain this tone valudot needs to be formed at one out of every 16 pixError diffusion algorithms accomplish this by produing a halftone pattern having a fundamental periodabout 4 pixels in both the vertical and horizontal dirtions. If a blue-noise dither pattern were designed scifically for this gray level it would have the same bacharacteristics. Now consider a gray level of 239.produce this tone value it is necessary to add one mdot for every 256 pixels. Error diffusion naturally ajusts the fundamental period of the halftone to an aage of about 3.9 pixels to accomplish this. Howeverdesign a blue-noise pattern for a gray level of 239 thcorrelated with the pattern for a gray level of 240, other dots must be left in the same locations and thedots must be inserted into the pattern. Therefore, insof adjusting the dot spacing to be an average of 3.9 els apart, some dots are still 4 pixels apart, and sdots are be closer where an extra dot has been insin the middle of a void in the first pattern. This necsarily adds some spectral power in the low spatial quency regions. Therefore, the resulting halftone patare less optimal than the error diffusion patterns. Csequently, this implies that blue-noise dither will nebe able to produce optimal halftone patterns overentire tone scale to the extent that error diffusion cHowever, for many applications, the quality level thcan be obtained with blue-noise dither is adequatethe simplicity and speed of the algorithm out-weigh aquality loss.

6 Conclusions

This paper has reviewed and compared the various tniques that have been used to develop blue-noise dmatrices. In particular, a series visual cost function batechniques were presented that have been developSullivan et al. Additionally another family of techniquewas discussed that involves designing the dither mces by analyzing the spatial dot distribution. This groincluded the iterative constraint method developedMitsa and Parker, and Ulichney’s “void-and-clustetechnique, as well as a number of other variations.

The visual cost function based techniques haveclosest tie to the response of the human visual sysTherefore, they should offer the greatest opportunitdesign halftone patterns that have the minimum visiity to the human observer. The current approacheslize a simple linear system model of the human vissystem, although other more sophisticated models cbe easily investigated. The largest drawback of thisproach is the amount of computation time needed tosign a dither matrix of reasonable size. Additionally, stochastic optimization techniques that have been intigated have been found to rarely converge to a glominimum. This is largely due to the high dimensionaof the problem.

The techniques, such as the iterative constraint mods and the void-and-cluster algorithm, that attemp

Chapter III—Algorithms—245

Page 22: Methods for Generating Blue-Noise Dither Matrices for

o arth

usonro

uaas ue

herathr a

eseres.

othayst c. Insin-

dieschlsoeruaceerteen

loresss isified

nsaropav

fo

ed.ni

c-62

ing ar-an

i-

ho.90).m.

ue

ar-l

,

u-

. T.fic3–

a-

era-

h.S.om-

ul-s,”0,

alf-oiseech-

on-

om.ise:s

entany

n-

optimize the blue-noise patterns by simple analysisspatial dot distribution have the advantage that theyrelatively fast to compute compared to the other meods. Because of their speed, they can frequently be to design larger matrices than can practically be dotherwise. Although these methods generally do not pduce patterns that are truly optimal relative to a viscost function, it has been found that the quality increassociated with the larger matrix size usually makesfor any deficiencies. As a result, these methods have bfound to produce good quality results. Although tmethods that use a filter size that is adaptive with glevel may offer some advantages, very acceptable dimatrices have been designed with even the simplegorithms.

All of these methods can produce dither matricthat exhibit similar visual characteristics, although thare subtle differences between the resulting patternall cases, the results are quite sensitive to the formthe filter function that is used. Even the approaches are tightly coupled to a model of the human visual stem have parameters, such as viewing distance, thahave a large effect on the quality of the final resultsfact, the differences between the results obtained udifferent forms of the filter function/visual cost function have generally been found to be larger than theferences between the different optimization techniqu

Ways to extend the basic blue-noise dither teniques to multilevel and color output devices were adescribed. At 300 dpi, the multilevel blue-noise dithapproach has been found to produce photographic qity images using only 16 output levels. Recent advanwere described for the design of jointly optimized dithmatrices for color output devices. It was demonstrathat these results provide an incremental improvemin the quality over the conventional solutions for cooutput devices. However, to take full advantage of thimprovements requires that the registration errors aciated with the output device be relatively small. Itexpected that if the registration errors are very signcant, the optimum result will move toward uncorrelatmatrices.

Acknowledgement

The authors would like to acknowledge the contributioof Jim Sullivan and Larry Ray who played a large pin the development of many of the blue-noise dither timization techniques discussed in this paper, and hprovided many valuable insights and suggestionsvarious asplects of this work.

References

1. J. O. Limb, “Design of dither waveforms for quantizvisual signals,” Bell Syst. Tech. J. 48, 2555–2583 (1969)

2. R. J. Klensch, D. Meyerhofer, and J. J. Walsh, “Electrocally generated halftone pictures,” RCA Rev. 31, 517–533(1970).

3. E. M. Granger, J. F. Hamilton and L. G. Wash, “Eletronic graphic arts screener,” U.S. Patent No. 4,918,assigned to Eastman Kodak Company (1990).

246—Recent Progress in Digital Halftoning II

fe-ede-lepen

yerl-

Inft

-an

g

f-.-

l-s

dt

eo-

-

t-er

-

2

4. A. J. Leone and K. E. Spaulding, “Method for generathalftone image data with randomly selected thresholdray,” U.S. Patent No. 5,150,428 assigned to EastmKodak Company (1992).

5. B. E. Bayer, “An optimum method for two-level rendtion of continuous-tone pictures,” Proc. IEEE Int. Conf.Commun., (26-11)–(26-15) (1973)

6. J. R. Sullivan and R. L. Miller, “Digital halftoning witminimum visual modulation patterns,” U.S. Patent N4,920,501 assigned to Eastman Kodak Company (19

7. J. Sullivan, L. Ray, and R. Miller, “Design of minimuvisual modulation halftone patterns,” IEEE Trans. SystMan Cybern. SMC-21(1), 33–38 (1991).

8. T. Mitsa and K. J. Parker, “Digital halftoning techniqusing a blue-noise mask,” J. Opt. Soc. A 9(11), 1920–1929(1992).

9. R. Ulichney, “The void-and-cluster method for dither ray generation,” in Hum. Vision, Visual Process., DigitaDisp. IV, Proc. SPIE 1913, 332–343 (1993).

10. R. Ulichney, Digital Halftoning, MIT Press, CambridgeMA (1987).

11. M. P. Vecchi and S. Kirkpatrick, “Global wiring by simlated annealing,” IEEE Trans. Comp. Aid. Des. CAD-2(4),215–222 (1983).

12. W. H. Press, B. P. Flannery, S. A. Teukolsky, and WVetterling, Numerical Recipes in C: The Art of ScientiComputing Cambridge Univ. Press, Cambridge, pp. 34352 (1988).

13. D. E. Goldberg, Genetic Algorithms in Search, Optimiztion, and Machine Learning, Addison-Wesley PublishingCompany, Inc. (1989).

14. G. J. E. Rawlings, Foundations of Genetic Algorithms,Morgan Kaufmann Publishers (1991).

15. J. Dalton, “Perception of binary texture and the gention of stochastic halftone screens,” in Hum. Vision, Vi-sual Process., Digital Disp. VI, Proc. SPIE 2411, 207–220 (1995).

16. J. R. Sullivan and L. A. Ray, “Digital halftoning witcorrelated minimum visual modulation patterns,” UPatent No. 5,214,517 assigned to Eastman Kodak Cpany (1993).

17. L. A. Ray, “Method and apparatus for generating simtaneously derived correlated digital halftone patternU.S. Patent Application No. 07/848,779 (filed March 11992).

18. K. J. Parker and T. Mitsa, “Method and apparatus for htone rendering of a gray scale image using a blue nmask,” U.S. Patent 5,111,310 assigned to Research Tnologies Corporation (1992).

19. M. Yao and K. J. Parker, “Modified approach to the cstruction of a blue noise mask,” J. Electron. Imaging 3(1),92–97 (1994).

20. R. J. Rolleston and S. J. Cohen, “Halftoning with randcorrelated noise,” J. Electron. Imaging 1, 209–217 (1992)

21. Q. Yu, K. J. Parker and M. Yao, “Optimality of blue nomask binary patterns,” in Proceedings of IS&T’s NIP12International Congress on Digital Printing Technologie,66–69 (1996); see pg. 151, this publication.

22. Q. Lin, “Halftone images using special filters” U.S. PatNo. 5,317,418 assigned to Hewlett-Packard Comp(1994).

23. Q. Lin, “Halftone image formation using dither matrix ge

Page 23: Methods for Generating Blue-Noise Dither Matrices for

t N5).alen,ne

zaar

tusputne

el

,

ti-.

om-

lyn--

alf-oisearch

in

erated based upon printed symbol models,” U.S. Paten5,469,515 assigned to Hewlett-Packard Company (199

24. D. C. Barton, “Digital halftone rendering of a gray scimage with frequency-dependent diagonal correlatioEuropean patent application No. 0 647 058 A2 assigto Hewlett-Packard Company (filed April 5, 1995).

25. R. S. Gentile, E. Walowit, and J. P. Allebach, “Quantition and multilevel halftoning of color images for neoriginal image quality,” J. Opt. Soc. Am. A 7(6), 1019-1026 (1990).

26. P. A. Delabastita, “Mutilevel halftoning,” in Fourth tech-nical symposium on prepress, proofing and printing, 68-73 (1995).

27. K. E. Spaulding and L. A. Ray, “Method and apparafor generating a halftone pattern for a multilevel outdevice,” U.S. Patent application No. 08/131,801 assigto Eastman Kodak Company (filed October 4, 1993).

28. R. Miller and C. Smith, “Mean preserving multilev

o.

”d

-

d

halftoning algorithm,” in Hum. Vision, Visual Process.Digital Disp. IV, Proc. SPIE 1913, 367-377 (1993).

29. R. L. Miller, “Apparatus and method for generating mullevel output values for pixels in a halftone cell,” U.SPatent No. 5,291,311 assigned to Eastman Kodak Cpany (1994).

30. J. B. Mulligan, “Digital halftoning methods for selectivepartitioning error into achromatic and chromatic chanels,” in Hum. Vision Electron. Imaging: Models, Methods, Appl., Proc. SPIE 1249, 261-270 (1990).

31. K. J. Parker and T. Mitsa, “Method and apparatus for htone rendering of a gray scale image using a blue nimage,” U.S. Patent No. 5,341,228 assigned to ReseTechnologies Corporation (1994).

32. A. C. Hardy and F. L. Wurzburg, Jr., “Color correction color printing,” J. Opt. Soc. Am. 38(4), 300-307 (1948).

❈ Previously published in JEI 6(2), pp. 208–229, 1997.

Chapter III—Algorithms—247