Page Description Languages
From 2D Imaging Model to
Page Description Languages
· Capture Image Content of Page
· Page = { Images }
· Document = { Pages }
· Graphic arts expectations
Image Elements
Typographic text
Line drawings
Shaded areas, tints
Continuous tone images
Color — flat and continuous
Complex composition
Range of Solutions
rjbPDL3
· ASCII control sequences
· Diablo630, Epson printer codes
· Tektronic 4010 graphic codes
· Imagen ImPress command sequences
· Typesetter control sequences
· Interpress & PostScript
PDL Sophistication
rjbPDL4
[chart with two axes: typographic sophistication vs language features]
Interpress and PostScript
· Both page description languages
· Both very different from others
· Both share common origins
· Disclaimer
Xerox people talking about a research problem, and not pushing a particular product—either one!
--
Brief History
· Laser Printing at Xerox PARC
· XGP, EARS, Dover—1972-74
· Press—1976
· JaM—1980
· Interpress82—1982
· PostScript—1984
· Interpress3.0—1985
--
Page Description Languages
· Original goal at PARC:
Combine revisable and final forms
· Abandoned incompatible goals
· Separate forms:
Interpress: final form
Interscript: revisable form
Alternative Choices
· Bitmap facsimile
resolution fixed to one device class
square vs rectangular pixels
possible compression
fax transmission
· Command streams
compact encoding
lacks typographic features
Page Description Language
· Why choose a language?
Conditionals
Define and execute functions
Perform computations
Regularities by computing
Library of abstractions (images)
Page Description Language
· Why not an existing standard?
Lack of typography
Lack of imaging breadth
· Why not a data structure?
Requires linear encoding
Cannot express computation
PDL Interpreter
· Tokens
· Frame or Dictionary
· Execution Stack
· Imager Variables
PDL Interpreter
[Plass figure 2:
tokens - interpreter - frame, stack, imager variables - imager - page image]
Prototypical Interpreter
while input remains do {
token := nextLexeme(input);
if lexicalType(token) = name then {
tokenValue := lookup(token);
if type(tokenValue) = executable then
execute(tokenValue)
else
push(tokenValue)
}
else
push(token)
}
--
Postfix Stack Model
X Y MOVETO
push X, push Y, execute MOVETO
MOVETO:
y ← pop( stack )
x ← pop( stack )
cp ← [ x, y ]
--
Imaging Operators
%!PS-Adobe-1.0
72 72 moveto 360 576 lineto
stroke copypage
newpath
200 200 moveto 300 400 lineto
0 -200 rlineto
400 200 100 180 360 arc
400 700 lineto
40 setlinewidth 1 setlinejoin 1 setlinecap
stroke copypage
72 72 translate
360 72 sub 576 72 sub atan neg 90 add rotate
/Helvetica-Bold findfont 90 scalefont setfont
70 10 moveto (etaoinshrdlu) show
Imaging Operators
[Reid, Figure 3]
Imaging Masks
· Lines (vectors or strokes)
· End caps (round, square, butt)
· Joints (miter, round, bevel)
· Curves, arcs, conics
· Dashed or dotted strokes
Imaging Masks
· Trajectories
· Outlines (wrap number)
· Areas (enclosed by trajectory or outline)
· Bitmap masks
· Text strings
Variables, Functions
and Arithmetic
%!PS-Adobe-1.0
/xcoord 100 def /ycoord 200 def
10 setlinewidth
/linefunc {
newpath
xcoord ycoord moveto
100 100 rlineto
stroke
/ycoord ycoord 100 add def} def
linefunc copypage linefunc
20 setlinewidth linefunc copypage
10 setlinewidth linefunc showpage
Variables, Functions
and Arithmetic
[Reid Figure 5]
Coordinate Transformations
%!PS-Adobe-1.0
/A {
newpath moveto
100 300 rlineto 100 -300 rlineto
-50 130 rmoveto -100 0 rlineto stroke} def
20 setlinewidth 50 50 A copypage
300 400 translate 0.5 0.25 scale 50 50 A copypage
1 2 scale -40 rotate 0.8 0.8 scale
0.5 setgray 100 -150 A showpage
Coordinate Transformations
[Reid Figure 6]
Constant Colors
· Black
· White
· Grays: [0..1] blackness
· Color models
RGB, HSB, HSL, CIE
· Generic: highlight
letterhead, private data stamps
Sampled Colors
· Pixel array
Interpress: tile the plane
PostScript: rectangular area
· 1-bit sampled black
· Multi-bit sampled gray
halftoned
· Multi-sample color separations
Interpress
Raster Encoding Standard
· Defines sampled images as pixel array
· Encoded as Interpress fragment
· Compression schemes
packed pixels (bitmaps)
CCITT-4 (fax)
adaptive (halftone images)
Interpress
Raster Encoding Standard
· Image mask, if not rectangular
· Photometric properties
color models: linear, logarithmic
color maps: pseudo colors
scanning transformation
thresholding parameters
image statistics
[examples ???
marble teapot???]
Character Sets
· Mapping from codes to glyphs
· Typically 256 codes per font
· ASCII
· EBCDIC
· ISO 646
· TeX
Xerox Character Set
· International standards
ISO 646, 5426, 5428, ASCII, EBCDIC,
CCITT G0 & G2, JIS C 6226
· Multilingual characters (VOA)
European languages
Cryllic, Greek, Hebrew, Farsi
Japanese, Chinese, Korean
· Typically 2 byte codes
Extensible to 3 bytes
Xerox Character Set
º Paragraph
\266\040Paragraph
· Bullet
\377\357\146\377\000\040Bullet
di‘cult
di\377\360\042\377\000cult
&'()*+,-. [welcome to PARC in Hiragana]
\377\044\150\046\106\075
\377\000\040PARC\377\044\130
--
Fonts
· Show text operator
current xy position
font, color, transformation
underline, strikethrough
· Spacing operators
font substitution
creator metrics may differ from printer
justified measure by amplifying spaces
kerning by intercharacter spacing
Fonts
· Find font operator
map name to font dictionary
· Scale font operator
apply transformation
· Font metrics
xy escapements, origin, bounding box
· Font Interchange Standard definition
Font Interchange Standard
· Representing font masters
· Accommodate various representations
metrics only
device rasters
outline masters
typographic properties
· Accommodates any character set
Font Cache
· Outline master very general
· Ultimate device raster
· Scan conversion expensive
· Cache mapping
<font, transform, code, bitmap>
Tuning Fonts for Imaging Process
· Xerography
write-white versus write-black
· Edge sharpness
· Black coverage
· Resolution
Write Black Write White
[illustrate overlaid black dots and white dots]
Device Independence
· Resolution independence
· Color independence
· Font independence
· Finishing capabilities
simplex vs duplex
media choices
stapling
Examples of Devices
Printing device Resolution Colors
B&W display (soft proof) 72-100 Black
Laser printers 300 Black
Color display monitor 72-100 3(RBG)
Color ink-jet printer 120-300 4 (CMYK)
Color thermal transfer 200-400 4 (CMYK)
Color electrostatic plotter 200-400 4 (CMYK)
Publishing laser printers 400-600 Black
Typographic master maker 1200-3000 Black
Document Management
· Distributed printing
· Centralized printing services
· Management of resources
printer computation power
printer file system
service guarantees
Page Independence
· Collated printing
front-to-back vs back-to-front
duplex printing with paper path >1 page
· Composing masters from masters
concatenating masters
merging figures into place
selecting unclassified material
· Imposition of masters
duplex printing with binding margins
6-up slide printing
Interpress Page Bodies
· Master: Preamble + PageBodies
· Page closure = Preamble+Body
· Preamble
font definitions
composed operators
sampled images
PostScript page conventions
· Embedded language
· Comments define page structure
· Manipulate embedded language
· Flexible, but no guarantees
Page Master Encodings
· People vs software creators
· People: editable character form
· Software: compact encoding
· Numbers: precision
· Translation between encodings
Encoding Case Study
``PostScript and Interpress'' paper
PostScript 73,404 bytes
(compressed to 26,125 bytes, 36%)
Interpress 53,106 bytes
(compressed to 22,243 bytes, 41%)
Interpress master 28% smaller
Distributed Printing
· Range of printer speeds
workstation: 5-15 ppm
shared office: 20-30 ppm
local production: 50—60 ppm
centralized production: 70-130 ppm
master image maker: <1 ppm
Distributed Printing
· Transport protocols
local area networks
serial communications
attached mainframes
magnetic media
Distributed Printing
· Printing protocol
spool print masters
status enquiry
capability enquiry
· Print instructions
copy quantity
media selection
single/duplex printing
finishing . . .
Functionality Sets
Commercial set
text forms with scanned graphics
90 degree rotations
Publication set
line drawings, rectangular clipping
typographic text, scanned graphics
functional color
Professional Graphics set
full transformation and clipping capability
full grayscale and color
Slide library
[Chromalin process]
[Thermal transfer printer]
[color tool]
[color tool, with CIE tool]
[Versatec plotter]
[Versatec plotter with mountain picture]
[Trapezoidal Rule—35mm color picture]
[Trapezoidal Rule—typeset from book]
[Typographic style sheet matrix]
[Pascal syntax diagram]
[Trapezoidal Rule—book style]
[Trapezoidal Rule—sketch geometry]
[Trapezoidal Rule—Griffin illustrator]
[Trapezoidal Rule—Cedar collage with Tioga]
[Arrows—with drop shadow]
[Arrow—with parametric mapping]
[Key design—with parametric mapping]
[Autologic typesetter]
[Imaging model]
[old graphical style shots. . .]
[Kurzweil scanner—equipment]
[Kurzweil scanner—learning characters]
[EditTool]
[Arrow—drop shadow]
[Key design—with parametric mapping]
[Arrow—with parametric mapping]
[Dorado workstation—LF & color display, Etherphone]
[Imaging model—ink, mask, image]
[Dragon poster—upright slide]
[Xerox spiral—Fig 2 AIC]
[Lilacs—Fig 1 AIC]
[Colored arrows—graphical style]
[ColorTool-purple]
[Color calibration tool]
[Image source—pile of magnetic tapes]
[Color separations—4 negatives]
[Color halftoning—enlargement]
[Chromalin proof—Meyer's image AIC]
[Desk Interior—Meyer—Plate IV AIC]
[Calibrated and uncalibrated Interior—AIC]
[Vase and mirror—Meyer—Plate III AIC]
[Rural sunset silouette—Meyer—Plate II AIC]
[Calibrated and uncalibrated umbrella lady—AIC]
[Medial imaging—AIC]
[Platemaker—upright slide]
[Cave Slave, Eric Larson—upright slide]
[Calibration strips, Chromalin—AIC]
[Radiometer on calibration strips]
[Chromalin and Monitor gamuts]
[Chromalin and scaled monitor gamut]
[Meyer vase and mirror gamut]
[Rotated and scaled Meyer vase and mirror gamut]
[ColorTool—green]
[ColorTool—yellow=red+green]
[ColorTool—dark purple=red+blue]
[ColorTool—saturated purple=red+blue]
[ColorTool—desaturated purple=red+blue+green]
[ColorTool—dark desaturated purple=red+blue+green]
[ColorTool—color names—vivid bluish green]
[ColorTool—color names—vivid verylight bluish green]
[ColorTool—color names—vivid veryDark bluish green]
[ColorTool—color names—grayish veryDark bluish green]
[ColorTool—color names—grayish medium bluish green]
[Image processing—triplane over PARC—upright slide]
[3 flamingo CG Cover]
[CIE Chromaticity curves]
[Eikonix scanner]
[Dorado LF display]
[continuity, various spline types]
[basic shapes, various spline types]
[Dorado in a rack]
[Melba, Raven+Dicentra]
[Versatec color plotter, printing b/w mountain painting]
[Platemaker output station, optical bench setup]
[Dragon cutout, synthetic version—upright slide]
[3 flamingos, in pink]
[Wallgren's Computer Graphics poster—upright slide]
[PARC mandella—spiral and PARC vignetted together]
[John Doe award—upright slide]
[Imaging technology pipeline]
[Stethiscope and pills—SolidViews]
[Xerox spiral—upright slide]
[Lilacs—Griffin illustration]
[color correction—umbrella lady, half uncorrected+corrected—upright slide]
[Transfer station blue—album cover]
[Transfer station blue—album back cover]
[Cedar Performance ACE—JaMGraphics]
[Mosaic—Nautilus shell scanned and enhanced]
[Complex number wallpaper—Plass' art contest entry—upright slide]
[Knight on carousel horse—T'so art contest entry—upright slide]
[Sanctus Dominus—scanned S in music composition—upright slide]
[transformed fancy S]
[PARC window poster—Wallgren—upright slide]
[goblet, gray Griffin drawing—upright slide]
[Rockhopper, color Griffin drawing—upright slide]
[infinity spiral—Scott Kim—upright slide]
[unix spiral, cover of Dr. Dobb's journal—Scott Kim—upright slide]
[conic grid project—sequence of slides showing Transfer station blue album cover]
[pixelization—converting photograph to black/white pixels]
[3 flamingo cover project—sequence of slides showing construction]
[Fancy S]
[PARC logo on display screen]
[cute kid—laser printer output]
[cute kid—color corrected on color display]
[cute kid—rotated & scaled on color display]
[G sampled b G control points]
[G control points b G synthetic]
[sampled to synthetic, a b a]
[candy—parametric mapping]
[geometry, style—flower petals outline, color flowers]
[Scientific American illustration]
[Quackerz baseball shirt]
[cable car]
[cable car—TiogaArtwork]
[Xerox spiral, black and white]
[Dragon t-shirt design]
[PARC mandella in color]
[color workstation categories of workstations]