RIT Scholar Works
Theses Thesis/Dissertation Collections
5-1-1990
The Tug function: A Method of context sensitive
dot structuring for digital halftones
Steven Hoffenberg
Follow this and additional works at:http://scholarworks.rit.edu/theses
This Thesis is brought to you for free and open access by the Thesis/Dissertation Collections at RIT Scholar Works. It has been accepted for inclusion in Theses by an authorized administrator of RIT Scholar Works. For more information, please [email protected].
Recommended Citation
A Method Of
Context Sensitive Dot Structuring
ForDigital Halftones
by
Steven Hoffenberg
A project submitted in partial fulfillment of the requirements for the Master of Science degree in the School of Printing Management and Sciences
of the Rochester Institute of Technology
May,1990
School of Printing Management and Sciences Rochester Institute of Technology
Rochester, New York
CERTIFICATE OF APPROVAL
MASTER'S PROJECT
This is to certify that the Masters Project of
STEVEN HOFFENBERG
in the Graphic Arts Publishing program, with a concentration in Electronic Publishing, has been approved as satisfactory for the project requirement for the Master of Science degree at the convocation of May, 1990
~~~k)~~~t
_
Project Advisor
M~~J.G~din _
Graduate Program Coordinator
CONTEXT SENSITIVE DoT STRUCTURING FOR DIGITAL HALFTONES
I, Steven Hoffenberg, hereby grant permission to the Wallace
Memorial Library of RIT to reproduce my thesis project in whole or in part. Any reproduction will not be for commercial use or profit.
The author would like to thank the following individuals and companies for their assistance in this project:
Professor Frank Cost, project advisor, without whose interest and encouragement this project would not have been possible;
Tom Bernard, of Bersearch Information Services, for PostScript
programming pointers;
Professors Marie Freckleton and Archie Provan, for enabling extended access to equipment required for this project;
Agfa Corporation, for providing to the School of Printing Management and Sciences the scanner and printer used to produce the final prints of this project;
Adobe Systems, Incorporated, for providing pre-release software used for image data formatting.
Acknowledgments ii
List ofFigures v
ListofTables vii
Abstract viii
Introduction 1
Digital Halftones 3
History 3
Sharpness 4
The TugApproach 9
PostScript Halftoning 14
The Spot Function 19
Procedures 24
The Tug Function 24
The PostScript Tug Function 36
Imaging Context Sensitive Dots 41
Methodology 53
Image Capture and Conversion 53
PostScript Synthesis and Cell Analysis 55
Image Synthesis 56
Image Evaluation 58
Results 60
Discussion 62
Summary 64
Footnotes 67
Bibliography 70
Software References 72
Appendix A: Anatomy of a Digital Halftone 74
Appendix B: Computer Program Listings 75
18Spot Functions 76
Pascal TugTest 77
The PostScript Tug Function 81
PostScript Toggle 89
Appendix C: Agfa P3400PS Printer Specifications 90
Appendix D: Judging Forms and Results 91
Appendix E: Print Samples 94
Appendix F: Trademark Disclaimer 101
Figure 1: Original Image 5
Figure 2: Image Reconstructed as Photographic Halftone 5 Figure 3: Image Reconstructed as Digital Halftone 6
Figure 4: Sharpening by Gray Value Adjustment (Convolution) 7
Figure 5: Oversampled Input 8
Figure 6: Normal vs. Partial-Dot Halftone Structure 10
Figure 7: Sharpening by TheTug Approach 10
Figure 8: Halftoning Sharpness Comparison 11 Figure 9: Clustered and Dispersed Halftone Dot Cells 15
Figure 10: Screening Grid Problem 18
Figure 11: Spot Function Coordinate System 20
Figure 12: "ShowTheCell" Output 22
Figure 13: Cell Arrangement for The Tug Function 27
Figure 14: Tug Function Variables 28
Figure 15: Neighboring Cell and Spot Function Equations 29
Figure 16: Tug and Spot Function Consolidation Equations 32
Figure 17: Scrambled Dots 34
Figure 18: "ShowTheTug" Middletone Sample 38
Figure 19: "ShowTheTug" Highlight Sample 39
Figure Bl: "TugTest"
DisplayWindow 77
Figure El: Portrait, WithoutTug 95
Figure E2: Portrait, With Tug*
96
Figure E3: Back Yard, Without Tug 97
Figure E4: BackYard, With Tug*
98
Figure E5: Gun, Without Tug 99
Figure E6: Gun, With Tug*
100
Table 1: Print Execution Times 58
Table 2: JudgingData Summary 60
Structuring
by
Steven Hoffenberg
ABSTRACT
The process of digitizing images to create halftones inherently reduces
sharpness through the averaging of grayness values within cell areas.
Within the context of a resolution independent page description language,
overcoming this reduced sharpness is conventionally addressed by adjusting
the grayness values of cells to create larger or smaller halftone dots where edges are present. Such an approach does not take full advantage of the
capabilities of the output device.
The objective of this project was to design and implement a method of
sharpening digital images by altering the shape and position, rather than the
size, of halftone dots. Such a method can more accurately represent the
original image and more closely emulate the characteristics of
photo-mechanically produced halftones.
Within the PostScript page description language, the generation of halftone dots is controlled by the spot function. A particular typeof spot
function, the Tug function, was developed to control the shape and position
ofhalftone dots based on the grayness value of each cell and its surrounding
neighbors.
Because the standard PostScript imagingoperators are not designed to
allow halftone dot shapes to be redefined on a cell-by-cell basis, an alternate
method of generating images was created. A computer program in the
PostScript programming language was written to perform the requisite image
viewing the effects of the Tug function.
Three representative photographic images were processed in this
manner. A panel of judges compared the resulting prints with control prints
processed without the Tug function but by the same imaging method. The
judges'
subjective preferences are presented, and the relative merits of the
Tug function are discussed.
INTRODUCTION
The purpose of this project is to explore the realm of computer
produced halftones via a resolution independent page description language,
and to devisea method that can improve its reproduction ofdigitalimages. With the recent advent of desktop computerdevices for scanning, image processing, and printingof photographic images, a method that
improves the quality ofthese printedimages could have sizable impact. An image in computerized form isby nature digital,existing atits most
elemental level as a series of electrical signals representing only two values:
one and zero. This is the level at which a computer operates. The processes of
scanningand digitizing animage, however,tend toreduce its sharpness. This a
commonly recognized phenomenon, and some of the reasons for its occurrence are explained in this report.
PostScript*
is a computer programminglanguage optimized for the
purpose of communicating page description signals from computer to output device. It is currently considered the de facto standard for such a purpose in
the desktoppublishing market.
PostScript contains several operators which the author believes can be
structured in such a way as to overcome some of the unsharpness introduced
in the image capture process.
While much of the industry research inthis area is proprietaryto the
companies involved, a review of the literature and discussionswith several
industrypersonnel specializing in PostScriptapplications seem to indicate that
the particular approach utilized herein may not have been previously
the PostScript language, the approach takes several orders of magnitude
longer to execute on an output device than a conventional PostScript image
file. This is contrary to the commercial objective ofreducing printer execution
time.
But the intent of this project is not to create a commercially saleable
software product, it is to introduce researchinto an area that appears to have
been inadequately explored within the realm of publishingsystems. Most
likely, the industrialapplication of such principles would come at the level of
rasterimage processorhardware and firmware withina printingdevice.
Regardless of the specific outcome of the present project, ifthis
investigation leads others to expound on concepts contained within, and
History
Halftoning techniques have been the dominant methods for printed
reproduction ofphotographic images for more thana century.
On March 4, 1880, TheDaily Graphic newspaper ofNew York City
published whatis generallycredited tobe the firstmassprinted halftone,a picture entitled "Shantytown." That halftone was engineered byStephen Horgan usingan etched plate of glass to photographically create an engraving
with the illusionof continuous tone in animage produced with onlytwo tones: black inkand newsprintpaper.
According to Horgan, "Theterm halftone includesall pictures inwhich the lights and shades are definedby lines and dots of differentsurface areas
madethrough mechanicallylined screen."1
The termhalftone no longerimplies that picturesmust be made through
mechanically lined screens. Photographically produced vignetted dot contact
screens were commercially introduced in the 1940's and have sincebecome predominant.
Inthe 1960's, another,less common method ofhalftoning was
introduced: that of computer generated pictures. Atthe time, computer
printers were only capable ofproducing text characters, and the earliest
attempts at computer generated pictures were actually comprised of various
became widely available with sufficiently abundant pixels (picture elements),
and sufficiently small spots, which made computer generated images a practical reality. This, combined with phenomenal advances inpersonal computer microprocessors and desktop scanners, has led digital halftoning to thebrink ofpopularity.
(For a clarification of some of the halftoning terminologyused within this report, consultAppendix A.)
Sharpness
The halftoningprocess, by its very nature,reduces the sharpness of an image. Whether produced by photographic or digitalmeans, the size ofa halftone dot within a cell willbe based on the average value oftransmittance
or reflectance of a given area in the copy.
This area average value is expressed as a halftone dotwhichwill
typically grow fromthe center of the cell outward as the value increases. Even
ifthe portion ofthe original responsible forthe value istowards the edge of the
cell, the halftonedot will growfrom themiddle ofthe cell. This tends todiffuse
the edges of an image.3
Aseries offigureswill helptoillustrate the point. Figure 1 showsa
portion of an originalimageprior to halftoningwith a grid thatindicates where the cellswill lay. Theimagecontains both straight and curved edges. Notice thatone ofthe cells, in the centerlower right, contains areas ofdensity in
photomechanical halftone, whether
produced by contact screen or etched glass screen, the halftone dots typically
growfrom the center of the cell,butthey
canbe skewed towards one or more
sides depending on the position of the valuesintheoriginalimage. Figure2 depicts a generalized view ofhow this
can appear.
This positional biasing can create
irregularlyshaped dots, and it ismore
pronounced for middletone dots and
veryslight or non-existentfor highlight
and shadow halftone dots. The effectis
due to thefact that some light
penetrates to the film behind contact or
etched glass screens in between the halftone dots.4 (Insome
verylight areas, the dots may drop out completely,but
various exposure techniques can place a just-printabledot ineverycell.)
Also, silver particles tend to react
not only inresponse to light exposure
and chemical development on
"fl "8 r" i
Jl....l
1 r t t a 1 * I urns m t 1 1 1 H -1--1 Figure 1 Original Image 1 Hi "_rj -1--1 Figure 2Image Reconstructed as
This is knownas the adjacency effect.6
The effect is most apparent when exposed areas are in close proximity or just barely connected, as would occur
in the middletone dot areas.
The irregularities in the shapes of photomechanicaldots are desirable,
because they allowthe halftone to convey shaping information.
L^.n.w^.'i^.M.M.M.M.M.j-Figure 3 illustrates howarea
averaging can affect the edges of a scanneddigitalimage. This figure represents a halftone printed at a
0 degree screen angle and a cell output frequency equal to the scanning input
screen frequency. The result is greater unsharpness, unless corrected by subsequent image processing. Figure 3
isagreatlysimplified view,andin actual
practice, the results of a scan depend heavilyon the design ofthe scanner's
optics, mechanics, and electronics (and,
notincidentally,the printer's halftoningsoftware).
Milch (1989) discusses many ofthe characteristics of a scanning system that can affect image sharpness. Inparticular, there is a trade-offbetween
obtaining maximumresolution, and reducingnoise and granularity inthe original. The size ofthe scanning apertureis usually optimized at a sizethat is
Figure 3
Image Reconstructed as Digital
over an even larger area thanin photographic halftoning, and as a result edges
are even more diffused.
Two approaches are commonly used to help sharpen the image.
Strictly speaking, such sharpeningis not considered image enhancement, as its
purpose isnot to make the printed reproduction better than the original, but
merely toregain detail lost inthe image capture process.8
One approach to overcoming unsharpness is to perform subsequent
image processing and readjust the gray values to compensate for the area
averagingofthescan. An example ofthis is showninFigure4. Compared to
Figures 2and 3, eachhalftone dot thatborders between light and dark areas is
either enlarged or reduced in size to compensate forthe edge diffusion.
Imaging scientists have
developed many calculations to achieve j , j , j
the desired adjustments. In general, the \ j :
gray value of each halftone cell is j | j.
I
i
ti.
-compared to those ofits neighboring
cells through mathematical equations
such as the Fouriertransform. Many
texts, such asJain(1989), detailthose
processing equations.
The term convolution is
sometimes used as a general
descriptionof this effect of
neighborhood comparison and
'"j^^^^^^Khir~
mm 31 t
BSj
Figure 4
computers contain a sharpening function which operates in thismanner. Such
processing, however, can merelychange the size ofhalftone dots, not the
shape or position ofthe dots within the cells.
The second approach to sharpness is oversampling, or sampling the
original image at a frequency greater than the desired screenfrequency of the
printed output. Oversampling is nottruly sharpeningas such, butratherthe
prevention of unsharpening. Commonly, the scanis at the Nyquistfrequency,
whichis double the maximum desired outputfrequency (in boththe vertical
and horizontaldirections).9
Figure 5 illustrates how for such oversampling, thegrayvalue of each
output cellisbased onfour smaller cellsin theoriginalimage. In the top
example, the four values are combined to create a single halftone dotbased on
the average ofthe values. In this case, oversampling at the input stage can
increase the accuracy ofthe gray valueinformation, somewhat reducing the diffusion of edges due to area averagingof a large scanningaperture.
Figure 5
Oversampled Input:
Normal (top) and Partial-Dot (bottom) Outputs
In the bottom example, each
quadrant of the cell contains a portion of a dot representing the gray value
fromthat quadrant. This is knownas partial-dot structure. (Further discussion
Unfortunately, oversamplingcreates larger image data files which
require additional computer memory for both processing and storage.
Based on examination oflaserprinter output, it appears that PostScript
device implementations are capable of partial-dot structuring when the image
datais oversampled. This occurs entirely withinthe proprietary hardware and
software of the Adobe PostScript interpreter, and cannotpresently be driven
byexternal software.
It is a primary purpose ofthis project to create, through downloaded
software,sharper halftonesutilizingapartial-dot typeofstructuring,without
requiringoversampled data on input.
The Tug Approach
The oversampling approach applies to the input stage ofthe digital
imagingprocess. The gray value adjustment approach applies to the
intermediate processing stages. The Tugapproach applies to the output stage.
The comparative merits of oversampling and gray value adjustment
techniques are not specifically addressed here, but it is important to note that
these techniques are notmutually exclusive, and in all Ukelihood,some
combination of all ofthem would yield the optimumimage quality.
The objective ofthis project is to develop a digitalhalftoning model that
creates sharper images by varying, on a cell-by-cellbasis, the shape and
position ofthe halftone dots based on the gray values ofeach cell and its
neighbors.
Inthe realm of high-end electronic dot generatingscanners, some digital
9
Figure 6
Normalvs. Partial-Dot Halftone
Structure handfulofdifferentways basedon surroundingvalues. This is a typeof
partial-dotstructure.10
Figure 6 shows a comparison of
normal(left) and partial-dot (right)
halftone structure. Both cells contain the
same number of blackened spots, but the
partial-dot is not centered inthe cell and
is shaped as thoughit were comprised of
portions chopped out of quadrants from different sized normal dots.
It is the intent ofthis project to go far beyond anysuch measures
presentlyemployed, to create custom dot shaping of near limitless variety Figure 7illustratesthe Tugapproach for dotstructuring.
The name "Tug" comes from how
the author visualized the process might
work: as though halftone dots have a
magnetic attraction for each other,
creating a Tug-of-War between each dot and theforces pullingonitfrom its
neighboring cells.
In this scenario, thelarger the
neighboring halftone dot the stronger its
pull. And the largerthe centraldot the
strongerits resistanceto the pull. And if
a weakhalftone dotwere pulled
1,1) ! " __ 1... i
ml
En
:""piMMi
I["lit
:WPJ]
P
i
i
' ' ! ! ' ! ' Figure 7 Sharpening by
The Tug Approach
Ideally, this would put halftone dots backwhere they came frominthe
original.
(The magnetic nature ofthis concept is purely abstract, andis innoway
related to actual magnetic forces that may existin a printingdevice.) The weighting ofthe resistance to thetug based on the central spot
strength was logically originated: moderatelylarge halftone dots jumping
around onthe page would more likelybe distracting to theviewer. The
validity ofthis assumption remained to be seen.
Figure 8contains reduced size versions ofFigures 1, 2, 3, 4,&7,without
the grids, so that thereader mayget a sense ofhow some of the previously
described methods of halftoning compare.
Notein the Tug versionhow the dots appear as thoughbehavinginthis
magnetic way. And noteinparticular, thecellinwhichthe dot has been splitin two.
Original image Digital
Figure 8
Halftoning Sharpness
Comparison
iiii
up
Before proceeding further, it is necessary to pose several reasonable
questions, and answerthem with abrief review ofthe literature.
Howvisibleis the actualdot structure?
The answer depends on several factors. The visibility of the dot
structure obviously varies with the linescreen or cellfrequency, as well as the
viewing distance. Atnormalprint viewingdistances, estimates ofthe
frequencybeyond which the dot structure is no longervisible varyfrom 100
cellsperinch11,to 125cellsperinch12, to 150cells perinch.13
In many PostScript laser printing devices, the default linescreen is
nominally 60 cells perinch (for reasonsto be explained below), and the dot
structureiseasilyvisible.
Interestingly, Neugebaueret al. (1962) found thatvisibilityofhalftone dot
structure also varieswith the gray level uniformityof animage area and the
pictorial content of the image. In particular, thedot structure was more visible
in areas ofuniform tone thanin areas with fine detail.
Why not use 150 linescreen?
Simply, the higherthe linescreen, the fewer the graylevels thatcanbe
reproduced. For example, in a printer with addressable resolution of300 spots
perinch at 60 cells perinch (and 0 degree screen angle), each cell contains 25
pixels ina 5 x5 matrix. In theory,this canreproduce 26 levels ofgray (0 to 25
spots canbe blackened). At 150 cells perinch, however, each will containonly
4pixels ina 2x2matrix,and can onlyreproduce 5levels ofgray. A good
descriptionand illustration ofthis trade offofgraylevels forlinescreen is
Tests byHamilton (1988) indicate that the actual number ofdistinct gray
levels that a laser printer can reproduceis significantly less than the
mathematically possible number.14
For most 300-spots-per-inch printers, a 60 linescreen is considered to be
the least detrimentaltrade off, and most such printers use that number as the
default.
Is dotshaping really desirable?
John Seybold and Dressier (1987) state, "To appear continuous, a
halftone must contain dots ofboth varying shapes and sizes."15
Jonathan Seybold and Tribute (1988) state, "Ideally,where there is an
abrupt black/white transition, a halftone dot should convey shape or contour
information as wellas a tonal value. TheAdobe PostScript RIP [raster image
processor] doesn't appear to be doing this."16
Roth (1988)sums itup:
. . . thereisone thingthatPostScript interpreters can'tdo with cell shapes which canbe done with photographic screening,
anditmaybe thebiggest flaw in thewhole scenario. . . . where
light areasborder dark areas . . . thephotographic halftone cells
are not regularly shaped; they'repear-shaped effectively. This
results in very sharp edges and crisphalftones. ThePostScript
halftones don'tshare thateffect.17
These last two references contain samples from high resolution
imagesetters at high linescreen, which may have been produced from files with
little or no oversampling. Itshould be noted that the relative degree of
oversampling varies with theoutput linescreen even ifthe image data remains
constant. The same files might haveproduced partial-dots ifthey had been
PostScript Halftoning
The PostScript language was designed by Adobe Systems Incorporated
with the expressed purpose of creating a standard page description language
for electronic printing.18 The language
was introduced in1985,and madeits
commercial debut with the Apple LaserWriter printer for the Macintosh
computer.
Three books by Adobe are considered the standard references for the
language. Among PostScript programmers, these books are generally
identifiedby thecolor oftheircovers. Thisauthor will referto them as such.
The PostScript Language Reference Manual (Adobe, 1985a), a.k.a. The Red
Book, contains the public definitionof the languageand its operators. This is
the single most essential book for anyone interested in PostScript
programming, and most other literature aboutthe language will refer the
reader back to it. The PostScript Language Tutorial and Cookbook (Adobe,
1985b), a.k.a. The BlueBook, is the companion volume offeringexamples and
explanations of how the language is used. PostScript Language Program
Design (Adobe, 1988),a.k.a. The GreenBook, is intended primarilyforsoftware
developers who willcreate programs and printerdrivers whose outputwillbe
page descriptions in PostScript.
A key tenet of PostScript is device independence: a program written in
PostScript should be executable on any PostScript-compatible output device.
Since different output devices can have different addressable resolutions, by
corollary another key tenet of PostScript is resolution independence: a
It is these two aspects ofthe language thathave largely enabled it to become widely accepted. It is also these two aspects thatlargely dictate the
process of printing halftone images throughPostScript.
Figure 9
Clustered and Dispersed
Halftone Dot Cells For digitalimagingin general, there
are two basic methods of constructing halftones: clustered-dot, and
dispersed-dot.19 Figure 9 illustrates
the two types. In both cases, 18 out of 64spots are
blackened, but the distributionof the blackened spotsismarkedly different.
The traditional photomechanical halftone process is the most obvious
example of clustered-dot image formation. Infact, in most common usage, the
termhalftone implies the clustered-dot formation. Partial-dot structuringis considered to belong in this category.
Some electronic printing processes can use the dispersed-dot
formation. The process ofspecifying the order inwhich spots are activated is
called dithering. In most common usage, the termdithering implies the dispersed-dot formation.
Dispersed-dot formations, when appropriately configured, can convey
halftoning without the appearance of a regularscreening pattern.
Ulichney (1987) demonstrates the profound effect that variationsin
dithering can have on image appearance. Based on a comprehensive
dispersed-dot halftones are clearly preferable, and clustered-dot techniques should only
be used when the printing process cannot accommodate isolated pixels.20
Unfortunately, in most situations where PostScript isemployed the
process cannot easily accommodate isolated pixels.
The resolution independence of the language presents one problem:
Howcanindividualpixels be uniquelyaddressed whenitis noteven known
how many pixels eachhalftone cell willcontain? Evenifresolution
independence is ignored and the addressable resolution of the output device
is incorporated into a PostScript program, there remain other difficulties.
Hamilton (1988) compared clustered-dot and dispersed-dot techniques
on a PostScript printer ofknown addressable resolution, the Apple
LaserWriter at 300spots perinch. He found thatdispersion ofhalftone dots
lead to unusualnon-linearity of tone reproduction. In cases with
dispersed-dot formation, an increase in blackened spots lead to a decrease in density for
middletone values. In one case with cells containing25 addressable pixels,
cells with 18 blackened spots contained approximately the same density as
those with only 6 blackened spots. These effects are largely attributed to
electrostatic interactions between charged toner particles.
Anothermajor problem with dispersed-dot halftoning crops up when
such pages are used as copy for subsequent printed reproduction. Image
capture, platemaking, and most conventionalprinting processesvirtually
require the use of a clustered dot. The high contrast emulsionsfor films and
plates are likely to drop out isolated spots, dramatically altering reproduction
used as proofs for subsequent high resolution imagesetting, or are themselves thefinalprintedwork.
The Adobe PostScript interpreter is
clearly designed to support
clustered-dot formations. The thrustof this project is to determine ifit canbe externallydriven tosupport a type of partial-dot structuring,which can realize some of the advantages of both clustered-dot and dispersed-dot formations.
Severalsoftware mechanisms forhalftoning are built into PostScript. At
themostbasic level, halftoning is controlled by the set screen operator. The
operator takes three operands: the linescreen frequency; the screen angle; and a procedure called the spotfunction, which controlsthe orderin which device
pixels willbe turned onto builda halftone dot.
In all PostScript printers, defaults for these parameters are pre-set.
Precise implementation of the set screen operator is device-dependent, because the actual screen grid is defined in device pixels.21
In mostcases, a
PostScript programdoes not haveto implement newsettings. In fact, it is
generallydiscouraged.22'23
Atypicaluse ofthe setscreen operator might appearas follows:
60 45 {dup mul exch dup mul add 1 exch sub} setscreen
PostScript uses post-fix notation, where the operands precede the
operator. In the above line, 60 isthe requested linescreenfrequency, 45 degrees is the requested screen angle, and the sequence within the { }, is the
spotfunction.
In PostScript the screen angle is applied as a clockwise rotation from the
The frequency and angle are requested, but will not necessarily be
delivered bythe outputdevice. This is due to thevagaries ofmatching
user-specified halftonecells to those that a printer is physically capable ofimaging. Anyhalftoning desiredon a devicewith afixed output grid is limitedinthe
selection of angles and frequencies that can be produced using thatgrid.
Figure 10 illustrates how the problem appears in a 300 spots perinch
printerwith a requested frequency of60. Inthe group offourcells at 0 degree
angle (left),each cell contains 25 pixels, butwhenthe cells are rotated to45
degrees (center) two ofthe cells contain 25 pixels and the other two contain24
pixels. The PostScriptinterpreter mechanisms are structured to provide a
repeatable pattern of cells all containingthe samenumber of pixels. This
enables a seamlesstiling ofcells.24
Figure 10
Screening Grid Problem
To achieve this seamless halftoning, either the frequency or the screen
typicallychangedby the printer'sPostScript interpreter, unbeknownst to the
user, to53cells perinchwith each cellcontaining32 pixels(Figure 10,right). This is somewhatironicin that the defaultsettings for the LaserWriter
are 60 cells per inch frequencywith a 45 degree screenangle, and the device
cannot actuallyrender at its own defaults.
Similar problems can force the adjustment of the screen angle, orboth
the frequency and angle, when requested values cannot be matched to the
devicegrid.
Roth (1988) details some PostScript programs that canassist a userin
determining the frequencies and screen angle combinations that any particular device can actually achieve.
The Spot Function
Of primary interest in this project is the spot function operand for the
setscreen operator. It is the spotfunction whichenables PostScript to
dictate dot shapes ina resolution independent manner.
Forthe spotfunction, each halftone cell is considered to contain its own
miniature coordinate system ofxand yaxes from-1 to +1,with(0, 0) at the
center ofthe cell. This is depictedin Figure 11.
The spotfunction is an executable procedure, that takes as its input the
xandy coordinates ofeach pixelin a halftone cell, and outputs a single value thatdetermines thepriority in whichthat pixel willbe blackened to form a spot
as the grayvalue ofthe cell variesfromwhite toblack.25 The outputvalues
1.1) y (1 1
l
+
-,-
-*- -a m-
-a a i
a a
a a T a a
-1.-1) (1,-1)
Figure 11
Spot Function Coordinate System value for any given pixel compared to the values ofthe other
pixels, the higher its priority to be blackened.
Whenthe setscreen operator is called, the
spotfunction is executed and all the pixels inthe
cells are prioritized. This is simplified bythe
repeatable nature of the seamless cells; the
calculations only must be performed once. Most
spot functions (except those forspecial effects) yield
a priority that creates some form of centrally
clustered halftone dot. Usually the spot closest to
thecenter willbe blackened first,and thosein the
corners willbe blackened last.
Example:
60 45 {dup mul exch dup mul add 1 exch sub} setscreen. Thexandy values are fed in withy ontopofthe stack. This procedure
doesthe following: duplicatesy,multiplies itbyitself, exchanges thex andy,
duplicates the x, multipliesitbyitself, adds the twoproducts together, and
subtracts the sumfrom 1. (For specifics on the PostScript operators and the
stack-oriented nature ofthe language, consult The Red Book.)
The effect ofthisparticular spot functionis to rankpixels bytheir
distancefrom the center of the cell, and the resultingcluster will grow as a
circular patch centered in the cell.
In some PostScript devices the default spot function is one which
creates dot growth in a diamond-shaped pattern that resembles the more
APostScript program byTom Bernard called
"ShowTheCell,"
listed in
the book Real World PostScript (Roth, 1988), is extremely useful in evaluating
the effects of anygiven spot function. Without "ShowTheCell" to ascertain
actuallydot structuring, this entire project would have been much more
difficult.
"ShowTheCell"
can be downloaded to a PostScript printer forexecution
via anapplication such as SendPS (Adobe, 1986). The output from the printer
is a numerical and graphical displayof the coordinates and spot function
valuesforeachpixelinthe cell.
Figure 12 shows a page produced by a modified version of
"ShowTheCell,"
executed on a300 spotsper inch Apple LaserWriterPlus, using
the setscreen parameters previously described. Theimportant modification
wastoflip the verticalaxis ofthecell.
In both theLaserWriter Plus and the Agfa P3400 PSprinter used in this
project, they axis ofthe device space is inverted relative to user space. This
places the negativey values at the topofthe cell. Purelyfor thesake ofclarity
inevaluatingcell structures for this project, they axis wasflipped backto
showing positive values at the top ofthe cell. (Consult The Red Book for
21 -0.8.0.8 -0.28 22 -0.399,0.8 0.199 23 0.0.0.8 0.359 24 0.399,0.8 0.199 25 0.8,0.8 : -0.28 * 16 S,,.,,..,,,,,,-0.8,0.399 ...
17 ....-0.399,0.399 18 0.0.0.399 19 0.399,0.399 20 0.8,0.399 0.199 0.68 0.84 0.68 0.199
i 11 -0.8,0.0 0.359 12 -0.399,0.0 0.84 13 0.0,0.0 1.0 ah 14 0.399,0.0 0.84 am 15 0.8.0.0 : 0.359 W 6 -0.8,-0.399 |; 0.199 7 -0.399,-0.399 0.68 8 0.0,-0.399 0.84 9 0.399,-0.399 0.68 10 0.8,-0.399 0.199
1 2 3 4 5
-0.8.-0.8 -0.399. -0.8 0.0,-0.8 0.399,-0.8 0.8,-0. -0.28 0.199 0.359 0.199 -0.28
(-1.-1) . ,
, (1.-1)
60 0 Default pixelcount x.y value 3*> Figure 12 'ShowTheCell" Output --.%4*
%, \ s;, . W
4%^o
^x^
**^
<s s & \ u
t\i.,
AC'-^'o
C'""""*40 C/yi, sJo 0'e <?s
% o-o -- o-a. ^oy
'KO ^ *:*H %.
S\"""- -ot of
""-,
o%In "ShowTheCell"
output, foreachpixel, three lines ofnumbers appear:
the pixelcount; thex andy coordinates; and the spot function value forthat
pixel. The pixelcount numbers the pixelsin the orderinwhich theyare
presented to the spot function.
The program also presents the true cell frequency and true screen angle
that the deviceisusing. Thisis allextremelyuseful informationforanyone
experimentingwith setscreen.
The program generates variable sized black circles to indicate the
relative preference based onthe spotfunction value. The larger the circle the
higherrankingthe pixelis inthepriority. Thisgives avisualdisplayofhowdot
growth willoccurwithinthe cell, butitcan alsobesomewhat misleading.
Some viewers of output produced for this project believed that this indicated
the device could producevariable sized spots at the pixellevel. This is not the
case.
For this study, themain interest isthe spotfunction value.
It is the spot function which will be used to implement the concept of
the Tug approach, to alter the shape and position ofhalftone dots based on
PROCEDURES
Priorto creating a PostScript-produced image containing halftone dots
ofvarying shapes and positions, two majortasks (and a host of minor ones)
needed to be addressed.
The first major task was to develop a method ofdetermining what each
halftonedot should be shaped like, based on the known grayvalues.
The second major task was to develop a method ofimaging such dots
ina real picture on a PostScript printer. This taskwasby no meanstrivial, and
was actually the more precarious ofthe two.
The Tug Function
Initially, theauthor hadin mind theconcept ofemploying a fixed
number of dot structures, and designing an analysis method to choose which
should be used. Of those structures, 18 differentones were determined to be
useful forconveying sharpnessand contour information. These involved
favoring and disfavoringthe corners, edges, diagonals, and axes ofthe cell.
Relatively simple functionsto produce each were written and tested with
"ShowTheCell."
The code forthese 18spot functions is listedin Appendix B.
Itbecame apparent, however, that a more theoretically elegant
technique would be to write a custom spot function for each cellbased on its
gray value and those ofits neighboring cells. Atfirst this seemed beyond
feasibility. But ideas that are onthe verge ofthe possible havea way of
naggingintheperiphery ofconsciousness: "Ifit werepossible,how mightit
Eventually a series of concepts were drawn up forwhat spotfunction
values would be desirable invarious parts ofthe cell forseveral sample
scenarios.
For instance, if allthe cells on one side ofthe nominal cell were relatively
dark and all the cells on the opposite side were relativelylight, the spot
functionvalues onthe darkside shouldbe higher, and thoseon the light side
should be lower, pushingthehalftone dot towards the darker side.
But, ifcells onboth sidesweredarkand the nominalcell werelight, the
spot function valuesshouldbe higher onbothsides, and lowerin the middle,
splittingthehalftone dotin two.
And, ifall thecells were ofapproximately thesame value, the default
spotfunction value should be employed to retain a centrally clustered dot.
These decisions were entirely subjective. But when in doubt as to how a
particular dotshould behave, the author referred to a diagram, such as forthe
original imagein Figure 1, to guidethe process.
Itwas also decided that no attempt would be made to account for
varying screen angles. The equations would only be intended forangles at
which cellboundaries all squarely coincide. Due to devicepixel grid matching,
this occurs only at0 degrees and multiples of 45 degrees,but the assignment of
variables based on image datain a linear arrayis muchmore complicated at
45 degree multiples.
Once the desired spot function values for the sample scenarios were
established, some sample equations were writtenwhich would generate the
In effect this was reverse-engineering the normal process. The spot
functionvalues were empiricallyderived, and the equations werethenlogically
derived to fit the values. The author considers the understanding ofthis tobe
very important. It can neverbe demonstrated that these Tug equations are
"correct"
in any absolute sense; it canonly be demonstrated that they
accomplish what theauthor intended them to do.
The task of testingequations by hand for various sample values turned
outto be extremely tedious,even for hypotheticalcells with only 13 pixels.
Using "ShowTheCell" for the calculations was ruled out, because the program
takes several minutes to execute, and more significantly, the author was
concerned that in using PostScript's atypical post-fix notation, the act of
designingthe equations could not easily be integrated into the act oftheir
programming.
A testingprogram was writtenin the Pascal programminglanguage,
using Turbo Pascal Macintosh (Borland, v. 1.1). Alisting of this Pascal program,
labelled "TugTest,"
alongwith a screen capture oftherunningprogram
window, Figure Bl, appearinAppendix B. Sucha program was crucialto this
project.
The testing program displays spot function values fora hypotheticalcell
containing 81 pixels (9 x 9). The program provedto be quitefast and efficient.
With "TugTest," itwas possible,over the course of several weeks, to evaluate
an estimated 200 variations on the equations.
In general, theequations were firsttested withvarious extreme values
for the variables, then ifthe performance seemed desirable, intermediate
The program had demonstrated that the initial set of equations was not
always producing desired results. Withsome of the grayvalue combinations
for whichthe equations had beenwritten, the results were not as anticipated.
Aftermuch trial and error, new equations were rewritten into a program
function using if/else type statementsto qualifythe portion of the cellupon
which each equation acts. The resulting function behaves mostly as desired
under a wide assortment of cellgray values. Itis interesting to note thatthe final equations are much simpler than the author had anticipated at the outset
(althoughtheir simplicity belies the thought process required to determine that
these were the ones to accomplish the task).
The final form ofthe functionis discussedbelow.
Figure 13 shows the basicarrangement of cells forthe Tug function.
A
B
C
D
--?-E
F
G
H
-1,-1)
z
Figure 13 Cell Arrangement for The Tug Function (1,-D
The gray value ofthe central cellis a assignedto variableZ, and the gray
values ofthe neighboringcells are assigned to thevariables A through H as
the inverse ofthe PostScript default ofassigning0 =black and 1 = white, but
the method employed here better suits the concept of halftone dots tugging
on each other: a higher number creates a stronger tug.
The coordinates in cell Z are depicted in the standard spotfunction
manner onx,y axes from-1 to +1.
Thevariables for the Tugfunctionare summarizedin Figure 14.
Variables......Range
x,y ....[-1..11 pixel coordinates in Z cell A,B,C,D,
E,F,G,H...[0..1] gray values ofneighbor cells, white=0, black=l Z ...J0..11 grayvalueofZcell
Ti,Tr,Tt,Tb ...[0..11 Tugvaluestowards edges (left,right, top,bottom) Ttl,Ttr,
TblTbr...
....[0..1] Tug values towards corners
s ...J-1..11 PostScriptspotfunction valuefor pixelx,y
T ...M..11 normalized total Tug
N ...[0..11 weighting and thresholdingfactor forTug
st ...[-1..1] finalTugfunctionvalueforZ,at pixelx,y
Figure 14
TugFunction Variables
The values ofthe eight neighboring cells and the existing spotfunction
are first combined withthe x, ycoordinatesin a series ofnine equations [1 - 9].
These equations are shown in Figure 15with graphic depictions of their actions
onthe variables, wherelargermarks indicatepixels withlargerequation values,
smaller marks indicate smaller equation values, and blank areasindicate
[1] forx<0andy>0: Tti=A* Ixl *
ly
(forotherx,y : Tti= 0)
[2] fory> 0and I yI > IxI: Tt=B*lyl*(lyl-lxl) (forotherx,y: Tt =0)
[3] forx>0and y>0: Ttt=C * IxI * I y I (forotherx,y : Ttr= 0)
[4] forx<0 and IxI > I y I: Ti=D* IxI *(IxI - I
yI ) (forotherx,y : Ti= 0)
[5] forx>0and Ixl > lyl: Tr= E* Ixl *(lxl -lyl)
(forotherx,y: Tr=0)
[6] forx<0andy<0 : Tbi= F* IxI * I y I (forotherx,y: Tbi= 0)
[7] fory<0and lyl > Ixl: Tb=G* lyl *(lyl -Ixl)
(forotherx,y: Tb=0)
[8] forx>0andy<0 : Tbr=H* IxI * IyI (forotherx,y : Tbr= 0)
[9] S= 1 -(x2
+ y2) [typicalspot function]
Figure 15
NeighboringCell and Spot Function Equations
-.
.
Equations [1-8] are qualified to actonly on pixelsinspecific parts ofthe
nominal cell, and eachwill yield a valuebetween 0and 1. These equations will
not decrease the Tug function values. This is the pivotal distinction between
the original set ofequations and the final set. Attempts to increase the values
in some parts of the cell and decrease the values in other parts tended to
create effects that cancelled each other out more often than desired.
It canbe seen that theseeight equations are oftwo basic types. One
type increases the result based on the product of the absolute values ofx and
y. This increases theTug function value the closera pixelis to the corner and fosters cell growth from the corner.
Earlier versions of those equations used the average of the absolute
values [(IxI +IyI )/2]. Thistended to create dotgrowthalongthe edges in
addition to through the middle of the quadrant, whichwas deemed to be
undesirable for an equation based on the value of a cornering cell.
The other type of equation increases the result based on the product of
the absolute value of x ory and the difference betweenthe absolute values ofx
and y. This increases theTugfunction value the closer a pixel isto the intersection of an axis and anedge, and fosters cellgrowth from thatpoint.
Earlier versions of those equations used the absolute value of just one
of the coordinates, creatingcell growth evenly alongthe edge. When
combined with the corner equations, this overemphasized corners.
The set of equations [1-8] as shown here creates evenly increased corner
and edge values when the grayvalues of all the surrounding cells areequally
Equation [9] calculates a typicalcentrally clustered spotfunction value
and must yield valueswithinthe range -1 to +1. Anyvalid spot function canbe
used inplace of equation [9]. In PostScript, this equation does not have to be
specified, the existingspot functioncanbe retrieved with a call to
currentscreen command thatreturns the setscreen parameters thatare
alreadyin effect,which wouldbe the defaults unless specifically redefined
previously inthe program.
The inclusion of the spot function component achieves the desired
effect ofleaving everyhalftone dot as specified by the existing spotfunction
unless it is actively tugged into some other position.
When combined in proper proportions, these nine equations can create
virtually anyimaginable halftone dot shape and position.
Three subsequent equations, shown in Figure 16, combine the effects of
the neighboringcells [10], calculatethe weighting factor forthe
neighbors'
effects [11],and thenweight the values of the spotfunction and the
neighbors'
effects toyield the finalTugfunction valueforeachpixel [12]. Equation [10] adds the valuesfrom [1
-8] and normalizes the suminto
the -1 to +1 range requiredfor spot functions. This represents the totaltug
from the neighbors.
Eventhough there are eight equations for neighboringcells, most pixels
in the cell are acted uponby only two ofthem. Theexceptions are the pixels
that border the areas affected, and in these cases no more than one equation
willhave a value greaterthan 0. In allcases, foranyvalues of cells
AthroughH, the sum of values from equations [1
[10] T= (Tt
+Tb +Ti +Tr +Tti+ Ttr+ Tbi+Tbr):(-2-l
[11] N=
Va
-Z|
+ B -Z|
+ C-Z|
+ D-Z|
+ E-Z|
+ F-Z + G-Z + H-Z)
/ 8[12] St= (T *N+ S* Z) / 2
Figure 16
Tug and Spot Function Consolidation Equations
Equation [11] produces the N value from the square root ofthe mean of
the absolute value of the difference betweenthe cell and the neighbors. This
value isused as theweighting factor forthe tug componentin equation [12].
The valueSt is the result returnedby theTugfunction.
Therelative weightings ofthe tug(T) from the neighbors, and the spot
function (S) in equation [12] were the mosttroublesome partsin the derivation
of all the equations. Italso involved the greatest degree ofsubjective
assessment. A simple averagingofS and Twas ruled out, as this would not
allow dots to be placed at the edges or corners ofthe cell under any
conditions.
Initially, the tug componentwas weightedby the weakness ofthe gray
value incellZ, usingthe term (1
-Z) to multiplybyT. (Inthat case, thesum
was not divided by2, sinceas Zincreased, [1
-Z] decreased, and the sum was
always withinthe-1 to +1 range.) Whenactualprintedimages were first
generated forthis project,it was apparentthatwith the (1
-Z) weighting,
difference atall in grayvaluebetweenZand A through Hwould pull the dotto
the extreme edges ofthe cell. This occurred only in areas of almost uniform
highlights, and appeared as somewhat randomlyscrambled halftone dots.
Clearlythis artifact was undesirable when seen within animagewhich also
contained more regularly positioned dots.
Therefore, rather thanweighting the T component bythe weakness of Z,
it was determined that the weighting should be based onthe strength ofthe
neighbors (N). Copious attempts at equations foranN value included: the
average neighborgray value; the largest neighbor gray value; the absolute
value ofthe average of the differences, the average ofthe absolute values of
the differences, and the largest difference between Z and its neighbors, suchas
(A
-Z), (B
-Z), etc.; the differences between opposing neighbor cells, such as
(A
-H), (B
-G), etc., and the sums, the products, the squares and the square
roots of many ofthese quantities. Theroot mean difference equation [11] used
in the latest version of the Tug function seemedto produce the best
compromise between desirable sharpness and undesirable artifacts. This was
purelyajudgmentcall.
Asan example, inearly versions of the equations, which weighted the T
valuebythe weakness ofZ [i.e. (1
-Z)], any not-quite-smooth highlight area
produced scrambled dots as shown in Figure 17.
Changingthe weighting factor to anN value equal to the root mean
difference equation altered the function so that all halftone dots stay centered
With Z-Weighted Tug
With N-WeightedTug
Figure 17
The weightingof the existing spot function(S) based onthe magnitude
ofZ enacts the concept of a halftone dot resistingthe tug of its neighbors
based on itsown strength. Highlighthalftone dots can be displaced anywhere
inthe cell; middletone dots will remain centralbutcanbe skewed in any
direction; and shadowdots will mostly remainas specified bythe spot
function. Again, this choice was conceptually based onthe model ofthe Tug
function as established at the outset.
The entire foundation ofthisfunction is based on the need to only
specify relative rather thanspecific spot function values. For some values of
the cells, the entire range ofpossiblespotfunction values from -1 to +1 is used,
but for manycellvalues, only narrow portions ofthe range are used. In
general, the range is determined by a complex interactionbetween the
magnitude of the gray value ofthe central cell and the sum of the differences of
thegrayvalues oftheneighborcells. Thisvariationinrange is primarilya
result ofthe positive-only effectofthe equations forneighboring cell values.
The author encourages readers to use the Pascal "TugTest"
program
(listed in AppendixB) toexperiment withthe various gray levelvaluesfor the
cells, and to experiment with the equations themselves to assess the effect of
The PostScript Tug Function
The task ofwriting the equations into a PostScript spot function
program was relativelystraightforward. TheTugfunctionas written in
PostScriptappears in AppendixB, within the program labelled "The PostScript
TugFunction."
Itwasnotknown inadvanceifthefunction wouldexecute, even ifthe
code were syntactically correct. All the spot functions the author previously
had seenor writtenhimselfwere fairly simpleprocedures: one ortwo linesof
mostly arithmetic operators. The Tugfunction clearly was farmore complex.
Itwas not even knownifvariables other than the xand y coordinates ofa pixel
couldbe used within a spot function procedure. Itwas not knownifvariables
could be defined withinthe procedure. And it was notknown ifvariables defined outside the function could be used within the procedure.
Although there was no particular reason to believe that the code
sequence would not execute within the context of a spot function parameter for setscreen, there wasalso no precedentindicatingthatitwould. Without
knowing the specifics ofthe underlyingmechanisms used in PostScript
interpreter implementations (which are proprietaryto Adobe Systems, Inc.),
these concerns could notbe taken for granted.
Some simple feasibility tests were performed. The Macintosh
application Lasertalk (Emerald CitySoftware, v. 1.0) was used to debug and
download "ShowTheCell" PostScript files toApple LaserWriter Plus andAgfa
P3400PSprinters, using various spot functionmodifications. Suchtests
included defining variables withinthe spot function, usingvariables defined
function. In all cases the results were as anticipated forthe code, and no
unusual limitations appeared to exist on the use of operators in the spot
function.
Using theTugfunctionfordefining thespot within
"ShowTheTug"
(amodified version of "ShowTheCell"), various combinations of valuesfor a
nominal cell and its neighbors were downloaded to the LaserWriter. Figure 18
and Figure 19 are samples ofthe pages produced as output. These
representations were compared to those obtained on-screen with the Pascal
"TugTest"
to verifythat the Tugfunctionwasfunctioning properlyand no
obvious errors were made in the post-fixnotation of the PostScript
programming.
The representations inFigure 18and Figure19 indicatethe prioritywith
whichthe pixels in the cell willbe blackened as previouslydescribed for
"ShowTheCell"
output.
These samplesonly show how a single cell would be imaged. With
numerous cells layed inplace, however, the effect may be somewhat different
21 -0.8,0.8 -0.021 16 -0.8,0.399 0.093 11 -0.8,0.0 0.113 -0.8,-0.399 0.036 -0.8,-0.E -0.135 22 -0.399,O.E 0.093 17 -0.399,0.399 0.051 12 -0.399,0.0 0.0B5 23 0.0,o.s 0.113 0.0,0.399 0.085 13 0.0,0.0 0.076 -0.399,-0.399 0.0,-0.399 0.023 0.057 2 -0.399,-0.8 -0.02 3 0.0,-O.E -0.001 24 0.399,O.E 0.036 19 0.399.0.399 0.023 14 0.399,0.0 0.057 0.399.-0.399 -0.005 4 0.399,-0.8 -0.077 25 0.8,0.8 -0.135 20 0.8.0.399 -0.02 15 0.8,0.0 -0,001 10 0.8,-0.399 -0.077 5 0.8,-0,( -0.25
requestedfrequency=60,requested angle=0
truefrequency=60.0,trueangle=0
spotfunction=TUG
pixelcount
x.y
spotfunctionvalue
A 1.00 B 0.80 c 0.60 D 0.80 Z 0.60 E 0.40 F 0.60 G 0.40 H 0.20 Cell Neighbors Figure 18 "ShowTheTug" Middletone Sample
-0.8,0.8 0.06 22 -0.399 0.027 0.8 23 0.0,0.8 -0.037 24 0.399, -0.134 0.8 25 0.8.0.8 -0.263 16 -0.8,0.399 0.027 17 -0.399 -0.147 0.399 is 0.0,0.399 -0.171 * 19 0.399, -0.227 0.399 20 0.8,0.399 -0.134 11 -0.8,0.0 -0.037 12 -0.399, -0.171 0.0 13 0.0,0.0 -0.216 14 0.399, -0.171 0.0 15 0.8,0.0 -0.037 "-- "">" "' 6 -0.8,-0.399 -0.134 7 -0.399, -0.227 -0.399 ;i 8 0.0,-0.399 -0.171 9 0.399. -0.147 -0.399 10 0.8,-0.399 0.027 . f 1 -0.8,-0.8 -0.263 2 -0.399 -0.134 -0.8 3 0.0.-0.8 -0.037 4 0.399, 0.027 -0.8 5 0.8.-0.8 0.06
requestedfrequency= 60,requested angle.0 pixelcount truefrequency=60.0 trueangle=0
*.y
spotfunction=TUG spot unction value
A 1.00 B 0.60 c 0.20 D 0.60 Z 0.20 E 0.60 F 0.20 G 0.60 H 1.00 Cell Neighbors Figure 19 "ShowTheTug" Highlight Sample
Usingthe Tug function, a tremendous number ofdot shapings is
possible by
merely changing the values ofthe ninevariables, Z,and Ato H.
In normal PostScriptimaging applications, each ofthe nine graylevels
canbeone of256values,yielding atheoretical potentialof
2569
(4.7x IO21)
possible spot functions. In any particular implementation,however, the actual
number achievable is miniscule by comparison.
Fora devicewith 300 addressable spots perinch, using a 60 linescreen
(25 pixelspercell), there areonly
225
(33.5million) possible combinationsof
pixel spots thatcouldbe "on" simultaneously. (Thereare25! [factorial]or
25
1.5 x 10 possible orders in which they could be activated, but once the pixels
to be activated are determined, the order in which this is accomplished is
irrelevant.)
Inthe case oftheTug function, since one ofthe variables is itself the
gray value ofthe cell being imaged, many of the possible combinations cannot
be used. Forexample, ifthe gray valueisrelativelylarge,all combinations that
leave thecenter of the cell empty can never occur. The author will leave the
calculation of such possibilities to an ambitious reader.
More importantly, many ofthe possible combinations will appear
identical on the printed page. For a laser printer, theactual number of
discernable halftone dot shapes would depend on the many interactions of
laser, photoconductive surface, toner particles, paper substrate, and the
viewing distanceand vision of theviewer. Hamilton(1988) gives someinsight
into mathematical possibilities vs. actual capabilities of a laser printer.
Clearly the Tugfunction will notbethe limitingfactor. Itmight evenbe
It also seems apparent that the quantity and variety of possible dot
shapes may far exceed those possible through what has been called
partial-dotstructuring. That is,theTug functioncan produce structures thatare not
merelyportions of regularhalftone dotschopped out along a rectangular grid.
(Referbackto Figures 5 and 6.) Forinstance, thehighlight sample shownin
Figure 19 probably could notbe produced bypartial-dot methods currently in
use, except perhaps in the case ofextreme oversampling on the order of25
sample values to 1 cell. TheTugfunction accomplishes this with no
oversampling whatsoever.
The term partial-dot seems inadequate to describe the possible dot
structures that can becreated by the Tugfunction. Therefore, project advisor
Professor Frank Cost, has proposed the term context sensitive dot structuring
as a generic term to describe the phenomenon of shaping a dot based on its
neighboringcells.
Imaging Context Sensitive Dots
From themany
"ShowTheTug"
samples the authorhad generated, it
appeared that on a purely hypothetical basis, the Tug function could createthe
individual halftone dot shapes as desired bythe author.
In order to bring the Tug function beyond the realm of the merely
abstract, it was necessary to reproduce photographic images utilizing the
function in situ. This was much more problematic than itmight seem.
The standard method ofprinting grayscale images through PostScript is
with the image operator. Theoperator takes five operands: the number of