___________________________________________
J. Robert Flexer and Gio Wiederhold
Digital Graphic Systems and Stanford
University
in Computer
Graphics Quarterly, Vol.13, No.2, Aug. 1979, pages 238-245.
The adage that "a picture is worth a
thousand words" is well accepted by the computing community, although only
a fortunate few have had access to devices which provide adequate graphic
interaction. Visitors to laboratories where facilities for graphics are
available leave with the distinct impression that if such tools would become
available to them their productivity and enjoyment of computing would increase
significantly. An example of an environment where such activity takes place is
XEROX Research in Palo Alto where convincing educational [1] and programming
projects [2] are supported using distributed computers which have bitmap
display devices using the computer's main memory. The cost of storing images
that way has been one factor in the slow dissemination of graphics capability
in commonly available computers. Older systems used bitmaps stored on tracks of
drums [3], and these have been used in situations where digitized images are
analyzed for robot control [4] and in advanced circuit design [5]. The use of
drum tracks for picture storage makes the storage support per display
economical if there is justification for at least several dozen displays in
close proximity, which will share the storage drum. Less storage is needed if
vectors are stored since then only the coordinates of the end points are placed
in memory. A vector generator translates the coordinates into a signal which is
then drawn on a high quality X-Y CRT screen [6]. This mode of operation was
already available in 1958 [7]. Certain graphics applications lend themselves
very well to vector displays. We have had good experiences with interactive
curvefitting [8,9]. Applications in interactive design [10,11], analysis of
three-dimensional objects as molecular structures [12,13], and architectural
drawings [12] have been well served by these devices. These applications
distinguish themselves by the fact that the original source of the data to be
displayed is given as coordinates in space, and the transformation to an image
is relatively straightforward.
When the source of the data is an image,
as obtained by a camera or a scanner, then vector-oriented displays are of
little help until the image is reduced to a much simpler abstraction composed
of lines or contours. In order to effectively display images a matrix of
picture elements has to be displayed, and each picture element (pixel) has to
be displayed at a particular brightness. Commercial TV technology provides a
standard here, even though pictures as seen on broadcast television rarely
reach the desired level of quality. The specifications for TV include the use
of 480 horizontal raster lines, which are displayed using two successive fields
of 240 interlaced lines each. The signal being displayed is an analog signal,
but we can derive from the aspect ratio (width/height, 4/3) of the TV picture
frame that 640 pixels per line will be appropriate. The number of levels of
brightness or gray scale per pixel is not specified, although 256 levels, as
can be produced using eight bits per pixel, make the result indistinguishable
from an analog picture image. In practice, most computer-based equipment
attempts to reach that level in terms of raster or gray scale resolution.
Useful and pleasing graphics can in fact be generated using half of the raster
lines (one field) and only 4 bits per pixel to represent 16 levels of gray
scale.
Similar
relationships exist for color display. Whereas true color has high requirements
for proper representation, the addition of simple color cues can often greatly
enhance the presentation of data.
The power of graphics to communicate can
be considered as being due to the ability to create symbols with deep semantic
meaning. Pictures of faces, structures, cross-sections, etc. are perceived as
having few, but significant, symbols and convey complex concepts. If we trust
the rule that human short-term memory is limited to 'seven plus or minus two'
symbols, then it becomes clear that a representation using fewer symbols is
advantageous [15]. At a high level of abstraction a certain amount of
information becomes much easier to manipulate conceptually by the viewer at the
display terminal than the same information when it is represented by a greater
number of simpler symbols. An obvious example is a function represented by a
line versus a list of numbers; a more interesting example is the use of
Chernov-faces, where multi-dimensional data is represented by the degree of a
smile, the roundness of the face, the angle of the eyebrows, etc.; color might
add yet more information. A further dimension of information can be added if
the display can be varied over time. Significant computing resources are needed
to rotate even a simple picture, but the effect of interaction with a
three-dimensional image, due to the high rate of information transfer, is
spectacular [16].
Graphics hence represent the potential for
an increase of several orders of magnitude of bandwidth in man-machine
communication. The question which must now be asked is: Why aren't we all using
graphics?
We believe that the main cause for the low
level of graphics use is due to the high entry cost. Where graphic facilities
are justifiable they have been effective, but such justification has rarely
existed in educational institutions. Facilities to compute with numbers and
characters are available at every level of computer education, but only a few
computer science and engineering graduate students have had reasonable access
to graphics. The use of a printer to display Snoopy can only discourage the use
of graphic methods, especially when the image has to be entered with keypunched
cards. Graphic manipulation is hence rarely taught within a regular computer
science curriculum, there are few good textbooks [17], and because of the lack
of broad interest formalization of graphic tasks has not had the attention that
other computer science topics have enjoyed.
Since the community which was able to
justify graphics is more specialized, no graphic-oriented software has achieved
the broad acceptance of FORTRAN or even of FORMAT statements, or the simple
elegance of a PASCAL, although certainly many efforts have been made (e.g.
[18,19]). Only some manufacturers, notably CALCOMP, have provided support
packages which would allow applications to run on more than one machine type.
The lack of standards has inhibited sharing of software and hence scientific
progress. Nearly every site which wishes to support graphics begins at the most
basic level and develops its own conventions. Systems that use interactive
displays for menu selection form a sub-area which has seen some high-level
efforts. The design of the menu presentation has been aided by frame-oriented
programming languages (e.g. ref. [20], but frequently these languages are
limited to tables of coordinates, text, and references to procedures or
successor frames.
A factor which adds to the cost of
graphics is the demand on processor time and communication bandwidth when
graphics are supported from centralized computers. To drive even a limited
number of menu selection terminals at a rate acceptable to physician users
requires all resources of powerful computers and high speed (50Kbits/sec)
communication lines [21]. It is even more difficult to support real-time
graphic input. If the subject to be imaged can move then the image has to be
entered into the system at video speeds, which implies that the equivalent of
480*640*8 bits have to be transmitted in 1/30th of a second, that is a rate of
74Mbits/sec. In order to transmit color graphics, two or three times this
capability is needed to take care of the three components: luminance. hue, and
saturation. Commercial TV broadcast equipment actually uses only an analog
bandwidth of 3.5 MHz; to get studio quality, 5-15 MHz are needed. Much less
demanding have been input devices such as lightpens, joysticks, trackballs, or
tablets, which only enter a point at a time and may move a cursor on the
display screen. These devices however collect data at rates which are lower than
a typist generates on a keyboard, so that complex images become nearly
impossible to construct.
Most of the technical problems become
surmountable as the technology progresses. The important barrier of entry cost
can be attacked now, and we will describe the methods used in our attempt to
make a graphic support device which makes a breakthrough in the cost barrier.
The
equipment cost to support graphics is composed of the cost of the buffer memory
needed to store graphic data, the actual display cost, the cost of internal and
external transmission of the signals, and the cost of miscellaneous, but
significant, logic and control functions. At high price levels for memory, it
was prohibitive to store an entire image as a frame of discrete points and to
use the television technique of raster scan to display the image. Recent
dramatic price reductions for semiconductor memory make the frame buffer
economically possible. For a very high quality picture within the TV image (for
instance 454*576*8 bits), 256K bytes of memory are needed; this amount can now
be purchased on circuit cards for as low as $4000. At these rates, it is no
longer economical to use an X-Y CRT and a vector generator. For many
applications less resolution will be adequate. If for instance no gray scale is
required then 32K bytes will suffice. A modular approach to the graphic buffer
can hence reduce this cost to match the needs.
When raster scan techniques are used, the
existing TV standards are adequate. A system which is able to accept and
generate 'standard' video signals can directly interface to any existing piece
of TV equipment. All the technological gear developed and mass-produced for the
TV industry can become peripheral equipment for such a digital system.
The availability of microprocessors makes
it reasonable to provide processing capability close to the place where the
image is used. Microprocessors bring the possibility to carry out economically
the functions needed for image processing, and are available at various
performance levels. When the processors are close to data sources the problems
due to high external data communication bandwidth are reduced; image-processing
functions are controlled through the processor and can be initiated through standard
remote-terminal access mechanisms. A number of bus conventions for
micro-computer connections have become popular, and a competitive market exists
where many types of devices are available from a wide selection of
manufacturers. Devices to support graphics should hence be designed to exploit
this situation, so that a full range of complementary components becomes
available, since the use of graphics spans the entire range of computer
applications.
There are three immediate consequences if
current technology is exploited as we have outlined:
1. The initial cost and the
maintenance cost of the available TV input and output equipment are relatively
low, even for the amateur. Any properly insulated and modified home TV receiver
can have its bandwidth extended to display data at 10Mbits/second by defeating
the sound trap in the video amplifier. This is just enough to display 640
pixels or 80 characters per line. Monitors specifically designed for data
display can be obtained for as little as $200.
2. If the system is also capable of
accepting and converting standard TV signals then inexpensive CCTV cameras can
be used as input devices. They are available for a few hundred dollars. If a
video processor has both full speed input and output capability then cassette
video recorders, starting around $1,000, are available to greatly extend the
I/O capabilities of digital video systems.
3. If the equipment is sufficiently
modular then digital computer- controlled graphic processing equipment can be
used as a building block for professional digital TV studio equipment. This
will allow more innovation in computer-controlled image generation and
processing than is available within the more rigid and costly systems now
available to TV stations and laboratories where image data are processed.
Given
these design conditions we can formulate the overall design
and the
performance objectives for the system components. A graphic system should
perform the functions shown in figure 1:
<<<<<<<<
Figure 1 : A Computer Graphic System >>>>>>>> goes here
>>>>>>>>
'Real-time' image digitizers, or 'frame
buffers', which are capable of digitizing black-and-white video information
(luminance) in 1 or 2 field times (1/60th or 1/30th of a second), are a recent
development. Fast analog to digital conversion techniques have begun to make
them possible. Since 8-bit converters are yet quite costly, 4-bit and 6-bit
converters should also be available; indeed, 16 or 64 levels are quite
satisfactory for many applications. In order not to visibly degrade a video
signal in the digitization process, a pixel time of about 75 nanoseconds is
necessary. The conversion of color images is not now possible with a single
converter in real-time. The resolution in picture elements (pixels) and the number
of bits which are necessary to represent their characteristics (luminance, and
also hue and saturation for color) are key factors in the cost-vs-quality
decision process which determines the design of a frame buffer.
It remains a technical challenge to build a
sufficiently fast 8-bit A to D converter to process color images; at least two
manufacturers (TRW and AMD) have recently introduced IC's or IC building blocks
that can be used for that purpose. Since one frame occurs in 33 milliseconds,
the throughput speed needed for 256K color pixels per image is 23.6 Mbytes per
second. Such a high speed of input signal conversion and the corresponding
required size of memory present a potential bottleneck.
The parameters for the design of the graphic
buffer which holds the image frame are access speed and capacity. If 8-bit
pixels arrive at a rate of one every 75
nanoseconds the access speed capability of affordable memory chips is
exceeded. It then becomes necessary to place successive bytes of graphic
information in parallel into separate banks of memory. Each bank provides an
8-bit wide data path. Use of 16K memory banks can reduce the average memory
access time to 200 nanoseconds per byte. For a given buffer capacity, maximum
data rate may be achieved when a single field (a non-interlaced frame) is
digitized or displayed. In addition, permanent access to the graphic buffer for
processing has to be provided. Current technology provides economical choices
of memory devices to serve these needs.
With full interlace and 8 bits per pixel
of digital resolution (256 levels) a monochrome image requires 256K bytes, but
buffers of 32K, 64K, and 128K must be available to yield correspondingly lower
system costs. Since a variety of uses is foreseen, there must be facilities for
a variety of image formats when the buffer size places constraints on the
resolution and gray scale levels. A user with a 32K buffer may wish to process
images of high resolution using one level of gray scale (454*576*1) or may wish
to give up some resolution in order to gain 16 levels of gray scale
(227*288*4). If a very fine horizontal resolution is desired then a format of
204 lines of 1280 pixels of one bit (black/white) may be preferred. In some
processing applications the 4/3 ratio of the TV frame may not be applicable so
that a 512*512*1 or a 256*256*4 image representation is better.
Video output has to provide the
possibility of displaying the following choices: the direct video input (to aid
in focusing the camera and setting up the scene), the full contents of the
graphic buffer, and also partial results only. Since pixels are composed of
multiple bits it can be desirable to view the contributions made by individual
bit components. For certain image visualization tasks separating the image
components and displaying them together as color components can be a useful
tool, so that auxiliary access to the individual pixel bits should also be
possible.
A graphic system only becomes an interactive
tool when it can interface with the user in variety of ways, suitable to the
particular application. A general way to achieve this is to allow for full
control of the graphic system by a processor. A constraint is that processor
activity should not interfere with the acquisition and display of images. The
high speed of video graphics requires careful design of the interface to insure
that images are complete and not disturbed. For instance, when the processor
initiates a request for image digitization, the graphics unit should wait until
the beginning of the image frame and set a flag when the new image is available
for processing. When photographs of the displayed image are to be taken a
similar synchronization is needed so that one and only one image is recorded,
otherwise images will be incomplete or, more likely, show a light bar across
the picture where the image has been recorded multiple times on film.
In order to select a point or a subsection
of an image it is necessary to be able to identify a pixel on the screen. While
it is possible to program a cursor in the image that moves on commands from a
terminal or joystick, much more rapid interaction is provided by a lightpen. A
lightpen is triggered by the writing signal on the CRT face, and the actual
pixel address at that instance indicates the pixel pointed at by the lightpen.
Since we wish to assure a low entry cost
for a complete system it is desirable to have a basic computer-assisted
television system complete on as few boards as possible. Such a basic system
for us is comprised of:
1. a four-bit A to D converter, capable of
full speed video input acquisition;
2. two banks of graphic buffer memory (32 K
bytes total) to support the resulting maximum data rate;
3. a complete set of image representation
choices to support various combinations of line resolution and gray scale;
4. a video output capability which matches
the video input;
5. an interface to a popular microprocessor
bus in order to provide
access for processing of the graphic image
and control the operation of the graphic system; and
6. a number of important features such as
lightpen and photography support.
Other
central functions in the present design include a mode for the processing of
text data which allows a denser utilization of the buffer memory, and a
facility to digitize contours of the image rather than its gray scale levels.
It is essential to the building block
concept that all the signals necessary to increase buffering or functional
capacity be available from the basic unit. This includes the data and address
paths needed for 8-bit conversion, for buffer extension up to 256K bytes, for
auxiliary functions, and also the synchronization signals necessary to operate
multiple units within one system. In order to allow great flexibility in
processor access the S-100 bus was chosen. Only the basic signals from that bus
are used, so that compatibility with a wide range of processors and peripherals
is assured. In order to keep the system cost low all components of the basic
system were placed on two standard-size S-100 boards. We can now present the
actual design of a video graphic system, the CAT-100/C, which was derived from
the above considerations.
Within the small space limit of two S-100
boards, the CAT-100/C is packaged with a number of interesting innovations. As
a complete integrated system, it features input capability from video signals
with a real-time analog to digital converter, local image storage in a 32K
dedicated buffer accessible from the microprocessor for image generation or
processing, and a variety of output capabilities for video displays.
There are two ways of quantizing incoming
video signals. Conversion into gray-level pixels is one way, and the other is
via a contouring circuit. The operation of the contouring circuit is described
later with the pictorial illustrations. Both the contouring circuit and the A
to D converter have a maximum output rate of 26Mbits/sec, which yields pixel
resolutions of 1,280x1 bit, 640x2 bits, or 320x4 bits per visible TV line.
The system can either accept video
synchronization (sync) from external video components, or generate it for both
internal and external use. The system can also extract sync from an incoming
video signal. If standard negative composite sync is available, it may be fed
into the board separately. In both cases, the system is completely synchronized
to an external source. The sync signals are also made available for external
use.
Another
innovation is the choice of software-controlled image formats which are
provided. One design goal was to provide optimum memory buffer capacity
utilization for graphic representation, i.e. to implement a mapping format
which would not waste more than a few percent of the data between the actual
source or display, and its representation in the buffer. Since perfection does
not exist in this domain, two near-optimal graphic formats were implemented:
the square format where the 32K buffer is 6% too large to represent the image
(only 480 lines are actually displayed out of 512 available from the buffer)
and the standard rectangular format where the buffer is 5% too small and
contains only 454 lines out of the 480 necessary for the complete image. This
last format is indeed the most useful for graphic work since there is no waste
of buffer capacity and the missing lower 5% of the picture are rarely noticed
on most television monitors. Another design goal was to provide a text line
length of 80 characters for the text mode, and the resulting timing constraints
yield a third possible format in the graphic mode. Any of these three basic
formats, or, more precisely, image aspect ratios, is software-selectable. From
the hardware point of view, the choice of one aspect ratio appears as a
selection of one clock speed out of three available, coupled to the appropriate
setting of the counter which determines the length of the raster line. Once the
aspect ratio is selected, two other parameters are software-selected (within
available limits) in order to complete the actual definition of the image
format: they are the number of pixels per raster line, and the number of
gray-scale bits per pixel.
In
order to easily manipulate pixels of variable length and resolution
(1,2 or
4 bits of gray scale) and also to economically integrate both video input and
video output functions into the same machine, a closed-loop internal serial
data path has been implemented as shown in figure 2. One half of the path is
used during digitization, to route the data from the A to D into the graphic
buffer via the main shift register. The other half is used during display to
route the data from the graphic buffer into the pixel register via the main
shift register.
<<<<<<<
Figure 2 : CAT-100/C Serial Data Paths >>>> goes here
>>>>>>
In this
architecture it is relatively easy to insert or extract the serial video bit
stream at various places, in order to interact with synchronized external
equipment. The CAT-100/C provides 3 distinct serial data streams to the
external user: the delayed A to D output (SBO) in digitize mode, the graphic
buffer output (SHRO) in display mode, and the character generator output (CHSO)
in text mode. Similarly, three single-bit multiplexers allow the user to enter
data serially at three distinct points: into the graphic buffer (SBI) for
storage, instead of the on-board A to D, in digitize mode; into the pixel
register (XSG) for display, instead of the graphic buffer output, in display
mode; and directly into the output video mixer (XST) for display, in text mode.
The common select line (XSI) for these three serial multiplexers is controlled
by a single switch.
Another
aspect of the CAT-100/C is the addressing scheme of the 32K graphic buffer.
Since the basic machine is designed to be a building block for larger video
processing systems, it must allow easy expandability of buffer capacity. If the
minimum 32K buffer were made directly addressable on the S-100 bus, it would
already consume one half of the available 64K bus address space, and it would
not be possible to address a 256K buffer. A convenient and practical solution
has been implemented with a fixed address "window" in bus space and a
movable "page" in internal graphic buffer space (figure 3).
<<<<<<<<
Figure 3 : Buffer Access From The S-100 Bus >>>> goes
here>>>>>>>>
A
window is first defined in the address space of the CPU, to communicate
with
the graphic buffer. The window's size and location are selected by switches.
The size may be set to either 2K or 8K bytes, and the location may be specified
on any 2K or 8K boundary, respectively. In the buffer's internal address space,
a corresponding page of identical size is also defined. Its internal location
is defined by a page address specified in a control register of the CAT-100/C.
Thus, a page of the graphic buffer appears to the CPU as normal RAM located in
the window. Any other page may be accessed through the same window in the CPU
address space; for that purpose, only the internal page address has to be
changed. This way, a buffer as large as 256K can be made to occupy as little as
2K of bus address space, with a minimal amount of software to take care of page
changes.
The graphic buffer is built with two
ports: the external port for bus access, and the internal port for fast video
digitization or display. This internal video port is given priority for
guaranteed access when it is needed; as a result, the displayed images are
totally clean, stable and free from any processor interference. Bus access to
the graphic buffer is invisible to the user, but as a consequence the access
time is somewhat longer than if it were conventional memory. 92% of the time,
access time is below 2 microseconds; 7.8% of the time, it is between 2 and 5
microseconds, and 0.2% of the time it is between 5 and 25 microseconds. The
average access time, however, is one microsecond only.
Video
outputs Four video outputs are provided: one main and three auxiliary outputs.
Each of these four outputs delivers a standard composite video signal, and may
display an independent image from the graphic buffer.
The
main output is driven by a three-source video mixer which allows any
combination of up to three simultaneous images to be superimposed: the direct,
unmodified video input; the real-time "contoured" video input; and a
digitized image stored in the buffer. The video paths are shown in Figure 4.
<<<<<<<<
Figure 4 : Video Section >>>>>> goes here
>>>>>>>
For the
main video output, the digitized image always goes through a D to A converter
which is controlled by five bits , four of which control the pixel register
output switches; the last one is the gray-scale control bit. When the
gray-scale bit is off, the pixel register bits are summed with equal weights.
When the gray-scale bit is on, the summing weights of the same pixel bits are
1, 1/2, 1/4, and 1/8, respectively. This yields a 16-level digital to analog
conversion.
The dot mode control bit gates the output of
the D to A converter with a 50% duty cycle square wave at the pixel clock
frequency. The resulting display is composed of square discrete dots as opposed
to continuous lines. The image is textured equally in both the horizontal and
vertical axes and conveys a pleasant impression of homogeneity.
Bits 1, 2, and 3 of the pixel register are
also made directly available as composite video signals on video outputs 1, 2,
and 3, respectively. In order to control a TTL-interfaced RGB monitor, or for
special digital processing, all four output bits of the pixel register are also
made available as standard TTL levels at an auxiliary connector.
The CAT-100/C can also of generate a standard
NTSC color composite video signal on the main video output, instead of the
monochrome B&W signal previously described. Four switches provide a variety
of color display options.
The "COLOR" switch is the main
color select switch. It selects B&W output when it is off, and a color
output with 3.58MHz burst and subcarrier when it is on. In this last case, the
following three switches offer a choice between eight different ways of mapping
the four bits of each pixel into 16 colors.
The "PALETTE" switch superimposes a
gray scale to the colors when it is on, and shows the plain colors when it is
off. Its effect is of actually offering a choice between two distinct palettes
of color.
The "PHASE" switch offers another
variation in the available palettes by changing the subcarrier phase for one
half of the displayed colors. Its effect can be combined with the use of the
PALETTE switch: together, they offer four different definitions of the 16
available colors.
The "B/W" switch substitutes a
black and a white for two of the 16
colors
under any of the four previous definitions, by simply suppressing the
subcarrier for these two "colors". For many display applications, it
is useful to be able to mix color output with a pure B&W image. In the
normal case of 4-bit pixels, the leading bit of each pixel controls the
luminance and the three remaining bits control the hue.
It is
important to realize that, according to NTSC standards, the luminance
information reaches the CRT with a relatively wide bandwidth, whereas the
chrominance information (hue and saturation) is limited to about 1 MHz. Hence,
on a color monitor, good resolution can be achieved by acting only on the
luminance bit from one pixel to the next one; on each TV line; the three
chrominance bits should be allowed to change slower in order to obtain best
results, typically every other or every third pixel only. In other words, fine
detail can be obtained within a given color by using its intensity to carry the
information.
When the COLOR switch is on, the display
aspect can be manipulated in any of the ways available for B&W displays. In
particular, each pixel bit can be individually selected and weighted by
software via the control registers of the CAT-100/C.
In text
mode the data from the graphic buffer is routed to an on-board ASCII character
generator, whose output is displayed on the main channel. The three fundamental
system clock speeds yield 64, 72, and 80 alphanumeric characters per line of
text . The text stored in the CAT-100/C may be up to 32,768 characters in
length. Since a frame can display a maximum of 33 lines of 80 characters, or
2640 characters, text editors will appreciate the possibility of rapidly
accessing a very long text stored in the buffer. The CAT-100/C is capable of
smooth scrolling through such text, since the position of the displayed text
page can be controlled at the raster line level. A variety of scrolling actions
may be obtained, which cover the range from an extremely slow and smooth
motion, to an instantaneous display of another section of the text.
In order to control the video input, the
graphic buffer memory, and the video output, there are five control registers
which may be set by the user's software. Three other registers are available
for interrogation of status. At the microstep level, the timing signals for the
various modes are generated by two Schottky PROMs which considerably simplify
timing logic design.
The photographic mode is another innovation
of the CAT-100/C. It was used to take the black and white photographs which
illustrate the present article. By using the closure of the "X" flash
contacts of a photographic camera to trigger the display of a single and
complete TV frame, it solves the usual problems of multiple uneven exposures
(banding) encountered when one attempts to directly photograph the screen of a
raster-scan display.
When lightpen operation is enabled and a
pulse appears on the lightpen input, the CAT-100/C sets a lightpen seen flag,
stops the timing, and makes 18 bits of X-Y coordinates available to the CPU.
After reading the coordinates, the CPU has to restart the operation of the
CAT-100/C in order to avoid data loss in the dynamic memory of the buffer. This
is usually done in less than 50 microseconds (one raster line time) and results
in a slight visual image disturbance every time the lightpen is used.
The
basic CAT-100/C has 32K bytes of image buffer on-board. The design allows the
buffer capacity to be extended up to 256K bytes. This is achieved by connecting
two types of buffer extension boards to the basic CAT-100C and the S-100 bus.
The first buffer increment is always 32K,
in order to bring buffer capacity to a total of 64K. This capacity allows for
instance the use of 8-bit pixels. The 32K extension provides the following
functions:
1.
An
8-bit display D to A which yields 256-level monochrome images or 256-color
pictures through the main video output channel of the system.
2.
A
control register extension which makes multi-format video data multiplexing
possible up to the maximum capacity of 256K bytes. In particular, it allows
selection of 1, 2, 4 or 8 bits per pixel.
3.
A
parallel input path designed to accept data from an 8-bit A to D converter.
4.
Parallel
and serial TTL outputs which are useful to drive high- quality RGB color
displays.
Any further buffer increments are in
multiples of 64K bytes and can bring the total buffer capacity to 128K or 256K.
In any of these configurations, the design flexibility of the basic system is
entirely retained. In particular, each pixel bit, up to a total of 8 bits per
pixel, can be individually enabled for display in monochrome or in color
through the main video output channel of the system. Up to four independent
single-bit pixel images or two four-bit pixel images can be stored together at
the same time in the buffer, and selected for display via the control
registers. Finally, the expanded configurations can accept or provide TTL data
at video speeds with the maximum possible number of bits per pixel allowed by
the total system capacity: 128K systems can handle 16-bit data words, and 256K
systems handle 32-bit double words.
The effectiveness of the CAT-100/C is best
illustrated by showing the results. All of these pictures were taken using only
a basic CAT-100/C (32K buffer, 16 levels or colors, no extensions), and without
computerized image processing. A 26-byte 8080 program was used merely to set
the five control registers of the system, in order to give the digitization
command and select various display parameters. The unretouched black and white
photographs were obtained from a 10-inch TV monitor which displayed single
frames in the photo mode described above.
The general appearance of a gray-scale
digitized image with a resolution of 227x288x4 bits per pixel is illustrated on
figure 5a. This portrait was recorded live with the TV camera. Figure 5b is a
close-up of an eye from figure 5a, photographed on the same TV monitor, and
illustrates picture quality level from the basic CAT-100/C at approximatly half
of normal TV-image resolution.
<<<<
Figure 5 a & b : Digitized Portrait With Enlargement
>>>>>> goes here >>
Figure 6b illustrates the use of the
contouring circuit on a relatively low-contrast source image, shown digitized
on figure 6a. By setting both threshold levels rather close to each other, good
and precise delineation of the Egyptian patterns was obtained.
<<<<<<
Figure 6 a & b : Digitized Photograph And Line Contour Pattern
>>>>
<<<<<<<<<< goes
here
>>>>>>>>>>>>>>>>>>>>
The contouring circuit compares the incoming
video luminance with two externally supplied voltages or thresholds, THR0 and
THR1 (figure 7). If the signal is between these two thresholds, a logic
"1" output results; otherwise, a logic "0" results. This
polarity can be inverted by using a separate contour polarity bit.
<<<
Figure 7 :Contour Circuit Operation >>>> goes here
>>>>>>>>
A wider setting of the threshold levels
yielded an image with a mixing of delineated portions (heavier lines) and of
solid black or white areas (figure 8b).
<<<<<<
Figure 8 a & b : Digitized Photograph And Heavy Line Contour
>>>>>
<<<<<<<<<<<<<<<goes
here>>>>>>>>>>>>>>
Figures 9 a,b,c,d show the four
"bit-plane" components of figure 6a, in order of decreasing pixel bit
weights. Figure 9a is made of the most significant bits of each pixel, and
accordingly shows as black (resp., white) the portions of the portions of the
source image whose luminance was below (resp., above) one-half of the
digitization range. This figure can also be used as an example of the
high-contrast type image which would be obtained by using a single threshold
level with the contouring input circuit. The result is extremely different from
the fine line drawing which may be obtained by using both thresholds (figure
6b). Figures 9b and 9c were made by showing the second and the third most
significant bit of each pixel, respectively. It is still possible to visually
recognize the image contents, but this is no longer the case for figure 9d
which displays the least significant bit alone of each pixel. These
"bit-plane" images were simply obtained by turning on the
corresponding pixel display switches in the control registers of the CAT-100/C.
<<<<<
Figure 9 a,b,c,d : The Four Bit-Plane Components Of A Gray-Scale
Digitized Image >>>>>>>
goes here >>>>>>>>>>
The color photographs are also unretouched
and were simply taken from a 19" Sony Trinitron receiver with a direct
video input. Figure 10 shows one of the eight switch-selectable palettes of 16
colors. The remaining examples were first digitized by the CAT-100/C as a black
and white picture with four-bit pixels from a TV camera. When displayed in
color, each gray-scale level was interpreted by the hardware of the CAT-100/C
as a different color, without any further computerized processing. From the
same original black and white picture, two color renditions are shown on figure
11: they illustrate a few of the many possible color modes easily obtainable by
manipulating the color select switches and and the pixel control bits in the
control registers of the CAT-100/C.
<<<<Figure
10: One Available Palette Of 16 Colors>>>> goes here
>>>>>>>>>>
<<<<Figure
11a and b: Two Color Renditions From The Same Black And White Original>>>>>
goes here
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
We have described the design process and
various aspects of the implementation of a computer-video system. Because of
its general-purpose nature, the CAT-100/C is a complex device containing more
than 140 integrated circuits, and we have not yet been able to explore all of
its potential uses. The images contained in the buffer may be generated not
only by the digitizing input circuitry, but also, more conventionally, by software.
The same buffer is used for both the graphic input and the graphic output
functions. The CPU needs to access the buffer solely for situations which
actually require image data manipulation or transfer:
·
after
a digitization, which employs the on-board A to D converter, the CPU may want
to read the graphic data out of the buffer for processing, long-term storage or
hard-copy output.
·
if
the displayed image is to be modified or entirely computer-generated the CPU
will write the graphic or alphanumeric data into the buffer. A common case
requiring image modification is the generation of pseudo-colors in a digitized
image, according to a specific set of rules (gray level/color correspondence
table) or simply in order to achieve a desired visual result. The system can
also be used as a versatile graphic display terminal.
With the CAT-100/C, a color graphic display
terminal can be assembled at a cost equal to the cost of a black and white,
character-only display of a few years ago. We expect that the availability of
low-cost graphics processing will provide the impetus for broader use of
graphic-based concepts and eventually lead to a more graphic-oriented attitude
in computer science.
1. Alan Kay: 'A Personal
Computer for Children of All Ages', Proceedings of the 1972 ACM Conference,
August 1972, Boston.
2. Warren A. Teitelman: 'A
Display Oriented Programmers Assistant', XEROX Palo Alto Research Center report
CSC-77-03.
3. H. S. McDonald, W. H.
Nink, D. R. Welle : 'A Direct View CRT Console for Remote Computing', Digest of
Technical Papers, 1967 International Solid-State Circuits Conference, vol. 10,
pp. 68-69.
4. G. J. Agin: 'An
Experimental Vision System for Industrial Applications', Proceedings of the 5th
International Symposium on Industrial Robots, Soc. of Manufacturing Engineers,
Dearborn, Mich. 1975, pp 135-148.
5. Tom McWilliams: 'SCALD,
Structured Computer-Aided Logic Design', Stanford University CSD report 78-665,
May 1978.
6. M. L. Dertouzos:
'Character Generation from Resistive Storage of Time
Derivatives', Proceedings of the 1969 FJCC, AFIPS vol. 35, pp 561-568
7. Ivan C. Sutherland:
'SKETCHPAD: A Man-Machine Graphical Communication System', MIT Lincoln
Laboratory TR 296, May 1965.
8. W. J. Sanders, G.
Breitbard, D. Cummins, R. F. Flexer, K. Holtz, J.
Miller, and Gio Wiederhold: 'An Advanced Computer for Medical Research',
Proceedings of the 1967 FJCC, AFIPS vol. 31, pp 497-509.
9. Gio Wiederhold: 'Setting
Up a General Purpose Data-Acquisition
System',
Proceedings of the IBM Symposium on Computers in Chemistry, IBM DPD, 1967. pp
249-264.
10. C. M. Theiss: 'Computer
Graphics Displays of Simulated Automobile Dynamics', Proceedings of the 1969
SJCC, AFIPS vol. 34.
11. Robert L. Beckermeyer:
Interactive Graphics Consoles, Environment and
Software', Proceedings of the 1970 FJCC, AFIPS vol. 37 pp. 315-323.
12. C. Levinthal: 'Molecular
Model Building by Computer', Scientific American, vol.214, 1966, pp 42 ev.
13. A. M. Tometsko:
'Computer Approaches to Protein Structure, Viewing Models of Proteins from the
Inside', Computers and Biomedical Research, vol. 5 no. 5 1972, pp. 460-472.
14. Ronald R. Resch: The
Topological Design of Sculptural and Architectural Systems', Proceedings of the
1973 FJCC, AFIPS vol. 42, pp 643-650.
15. Mitch Model: 'Monitoring
of Programming Systems', Stanford University
CSD, PhD Thesis to appear.
16. D. L. Vickers, 'The
Sorcerers Apprentice: Head Mounted Display and Wand', Utah Univ. CSD report
UTEC CSC 74-078, 1974.
17. W. M Newman and R. F.
Sproull: 'Principles of Interactive Computer Graphics' McGraw-Hill 1973.
18. R. Narasimhan: 'Syntax
Directed Interpretation of Classes of Pictures', Comm. of the ACM, vol. 9 March
1966, pp. 166-173.
19. Ronald R. Morrison:
'Graphic Language Translation with a Language Independent Processor', Proc.
1967 FJCC, AFIPS vol. 31, pp. 723-731.
20. Pierre J. Lebeux: 'Frame
Selection Systems and Languages for Medical Applications', Univ. of Calif. San
Francisco, Lab. for Medical Information Science Tech. Report 7, 1974.
21. D. Norwood:
'Introduction of a User-Oriented Total Hospital System into a Community Hospital,
Introduction and System Description, Proceedings of MedInfo 1974, IFIP, pp
295-298.
---------------------------- o
-----------------------------------