A Building Block Approach to Color Graphics



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 >>>>>>>>


Video input

'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.


Graphic buffer

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

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.


System interaction

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.


System configuration

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.


Video input and synchronization.

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.


Buffer organization

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.


Serial data flow

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.

Processor access to the graphic buffer

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.

Two-port operation

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.


Color output

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.

Text mode

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.


System control

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.


Photographic trigger control

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 -----------------------------------