Other topics covered in
March 1987
included a Features section on image processing. Ken Sheldon (formerly BYTE's features editor, now a successful composer of children's songs) gave us this piece on proposed standards:
PreScript
A proposed standard would streamline the process of capturing and manipulating image data.
by Ken Sheldon
Des
ktop Publishing, the ability to produce high-quality publications using a microcomputer, essentially boils down to combining words and images on pages. Every desktop publishing software package deals with these two types of information in its own way, and each provides different features and capacities.
Typically, you incorporate text into a desktop publishing program by entering it directly from the keyboard or importing a standard ASCII text file created by a word processor. The method of importing
images
, however, varies widely from package to package and computer to computer.
True desktop publishing programs let you import an image file into your document, and the format of these image files varies widely depending on the package and your computer. Other packages allow you to scan an image (using, for example, a camera or page scanner) from within the application and place the image directly into the document on which you are working.
Camera and scanning devices usually perform
some low-level image processing, such as improving the contrast, to make the images more presentable. Some desktop publishing packages allow you to enhance the images further after capturing them; other packages force you to scan the image and "take it or leave it." You can, of course, attack an image file at the bit-map level and perform your own image processing to enhance it before importing it into your desktop publishing program, though this will be beyond the interest and abilities of many users.
Enter PreScript
In the face of this conglomeration of features and capabilities, Datacopy Corporation has proposed a standardized high-level language for importing image data into desktop publishing and other application programs. The proposed standard, called PreScript, consists of three parts: high-level language calls that reside in the application program; an interpreter that translates the commands for a particular image processing system; and an intelligent image processing system
that controls the scanning process and contains its own microprocessor that handles the algorithms for image processing.
PreScript, which is invisible to the user of an application, sends commands to the PreScript interpreter through an SCSI port. The interpreter passes the commands, translated for a particular image processing system, to a signal processing router/scheduler (SPRS) in the form of an image description table. This table dictates the specific image processing functions and the order in which they are to be performed on the image data.
The SPRS manages the flow of image data between the various image processing algorithms and also interfaces with the controller of the camera or scanner. A microprocessor performs the actual image processing operations, with the help of optional coprocessors (e.g., pipeline processors, which are ideal at performing the many repetitive operations required to enhance image data). Depending on the manufacturer, the "intelligence" for the image processing
functions may reside within the scanning device, in a chassis that sits between the scanner and the host microcomputer, or on an expansion board in the computer.
The PreScript standard currently describes a list of commands and image processing algorithms that are to be built into such PreScript-capable systems (
see table 1
). In addition, application programmers can develop new algorithms that may be downloaded to the intelligent scanner and called via PreScript.
Figure 1
shows a typical image-capture problem: The scan area contains two types of images, a continuous-tone photograph (window 1) and a line drawing that overlaps the photograph (window 2). Suppose you want to double the size of the photograph, halftone the photograph, reduce the line drawing to one-half its size, enhance the line edges to reduce breaks caused by the scanning and reduction process, and then perform a thresholding operation that "binarizes" the entire image (converts all pixels
into either black or white).
For the application programmer to provide you with this capability could take from several hundred to several thousand lines of code. With a PreScript intelligent system, however, the programmer would need only include the following PreScript commands in the application:
1 Device_Select
1 Window_Select
10 10 200 200 Window_Frame
2 2 Scaling
Mask Halftone
2 Window_Select
40 40 300 300 Window_Frame
0.50.5 Scaling
Edge_Mask Convolution
128 Threshold
Scan
These commands select the scanning device, the windows (their size and location), and the scaling (enlargement or reduction) for each window. They also determine the image processing algorithms to be performed on each window and instruct the device to begin the scan.
After the image processing system performs the desired operations on the image data, it sends the data back to the application program through the SCSI port. Although PreScript does not specify the file format into which the
image data is placed, Datacopy's application software will support the Tag Image File Format (TIFF) now used by Aldus, Microsoft, and other software publishers. Use of the TIFF standard by software publishers will allow, for example, an image captured with an IBM PC-based system to be transferred to a Macintosh, where it can be incorporated into desktop publishing programs that also support TIFF, and vice versa.
Standard Advantages
Using PreScript would allow application developers to incorporate image enhancement technology into their programs without having to develop from scratch the algorithms to work with a variety of scanning devices and computers. Programmers will simply tell the scanner/image processing firmware what to do, not how to do it. In this regard, PreScript is nonprocedural, as opposed to a procedural page-description language such as PostScript.
The widespread acceptance of PreScript by the makers of scanning devices and application programs would mean that yo
u could use your application programs with a variety of scanning devices. You would have more control over the way image data appears in newsletters, reports, and other publications.
PreScript is available for licensing from Datacopy Corporation to OEMs and developers of desktop publishing and other application programs.
Table 1: The entire PreScript built-in vocabulary, which includes
both symbols and words. Most commands are highly descriptive of the
functions they perform.
(..any letter..)
(..any digit..)
%
$
( )
[ ]
#nn
Add
Archive
Archive_Reset
Archive_Restore
Area_Compensation
Compression
Convolution
Def
Device_Frame_Get
Device_Frame
Device_Select
Div
Dup
Edge_Mask
Error_Diffusion
Gamma_Correction
Halftone
Inch
Invert
Mask
Mirror
Mul
Roll
Scaling
Scan
Sub
Swap
Synonym
Threshold
Window_Frame
Window_Select
illustration_link (24 Kbytes)

photo_link (180 Kbytes)

Ken Sheldon is a technical editor for BYTE. He can be reached at BYTE, One Phoenix Mill Lane, Peterborough, NH 03458.