Technical Field
This invention relates to video display systems, and more particularly to video display systems with low memory requirements.
Background
Heretofore, the pixel map memory size (PM) required to display an image Y scanlines long and X pixels wide with C color bits was:
The XY pixel area of the display image (a very large number of bits) was multiplied by the color requirement to produce an even greater bit requirement.
Walker U.S. Pat. No. 4,364,037 shows an XYC pixel memory map which contains only edge and color data of the faces forming the display image. Non-edge pixels between the face edges fill the bulk of the map, The non-edge portion of the map is maintained at "0"s (background code). During each interframe update, the entire memory map is reset to "0", and the next frame of edge-color data is loaded. The interframe update time is greatly reduced because only the edge data must be entered on a bit-by-bit basis.
Walker U.S. Pat. No. 4,317,114 shows an XYC pixel map in which grids, legends, and formats may be added by an XY overlay memory. In one embodiment, an XY pixel map was employed containing only edge data. Color was added by an XYC overlay memory.
Summary
It is therefore an object of this invention to provide an improved computer graphics system.
It is another object of this invention to provide a graphics system having maximum display features with minimum memory requirement.
It is a further object of this invention to provide a color graphics system having a one bit edge map and a separate color memory.
It is a further object of this invention to provide a color graphics system having a pixel width which is less than the color memory access time.
It is a further object of this invention to provide a graphics system capable of displaying faces one pixel wide.
Briefly, these and other objects of the present invention are accomplished by providing an apparatus for receiving image ancillary data (color) base pixel data (edge data), to provide an composite pixel data stream to a raster scan display monitor for displaying a preconfigured graphic image. An image source provides the image ancillary data into an ancillary memory, and the base pixel data in a serial stream in sequential order of display defining an image raster having X pixels in each of Y scanlines. The pixel data has M bits of binary data with 2-to-the M binary codes. At least one of the codes is an ancillary code. An enhancement code detector responsive to the serial stream of pixel data detects the ancillary code. An ancillary address means responsive to the ancillary code detector provides a sequence of A bit ancillary addresses. An ancillary memory containing L locations with E bits at each location, stores the ancillary data. The ancillary addresses access the ancillary memory to provide composite pixel data to the monitor.
Brief Description of the Drawing
Further objects and advantages of the ancillary circuit and the operation of ancillary memory will become apparent from the following detailed description and drawing in which:
FIG. 1 is a block diagram of a face color embodiment showing a 1 bit edge map and a separate color memory; and
FIG. 2 is a block diagram of a general graphics system showing an M bit map with an ancillary memory.
Face Color System 100--Circuit Diagram (Fig. 1)
System 100 receives two types of input data from data source 106; black and white data into XY pixel memory 110, and face color data into color memory 114. The input data is combined by system 100 to provides edge-color data to display monitor 116 for displaying image 120. Pixel memory 110 is a bit map memory (three TMS-3536s) for containing a display frame having 240 scanlines each with 960 pixels. Pixel memory 110 contains only one bit per pixel for providing the black (0) and white (1) edge data for the face boundaries in image 120. Color memory 114 is a look up table with 2048 eight bit locations (Hm-6116-12), and permits 4096 four bit color changes per frame of image 120. Each memory 110 and color memory 114 are loaded during each interframe vertical interval with an entire display frame of data containing all of the face edges and face colors forming image 120.
The pixel bits in pixel memory 110 are sequentially accessed by pixel clock 124 (21.6 MegaHertz, 46 nanosecond period) to form edge data stream 128. These bits of edge data are either "0"s or "1"s, and switch values at the leading pixel of each new face. The pixels between the leading edge and tailing edge of each display face within a scanline are either all "0"s or all "1"s. The 0-to-1 and 1-to-0 transitions define the edges between adjacent display faces. The leading bit of each transition in edge data stream 128 forms the leading pixel in each new face.
Pixel memory 110 provides the image edge data to edge detector 130 (flip-flop 74LS74) in the order of display on monitor 116 (TTL compatible input monitor PGS-HX12). Edge detector 130 responds to odd edge transitions (0-to-1) to increment edge counter 136. Counter 136 may be a synchronous binary counter (74LS163) for providing sequential 11 bit addresses to color memory 114 in response to the odd transitions. Edge detector 130 responds to both odd and even transitions for determining the LSB (the 12th bit) to color memory 114. Edge detector 130 provides a "0" LSB in response to odd edge transitions, and a "1" LSB in response to even edge transitions. Each odd transition generates a 12 bit address to color memory 114 (11 MSBs and a LSB). The 11 bits address the next eight bit location, and the 12th bit addresses the first four bits in that location. The subsequent even edge transition merely advances the LSB from "0" to "1", addressing the second four bits in the previous odd transition location. The odd transition addressing requires slightly less than three pixels (138 nano seconds), while the even bit addressing requires only a fraction of a pixel (about 20 nano seconds).
2048 Color Pairs--Face Pairs
The color data in memory 114 associated with each edge transition in data stream 128 is arranged in sequential color pairs, a foreground color (FGC) plus a background color (BGC). A FGC is the color of any foreground face (FGF), any face having a limited horizontal dimension of three pixels (or less) in that display scanline. FGFs have a run of three pixels (or less) in edge data stream 128. A BGC is the color of any background face (BGF), any face having an extended horizontal dimension of four pixels (or more) in that display scanline. BFGs have a run of four pixels (or more) in edge data stream 128. The same display color can be both a FGC for FGFs and a BGC for BGFs.
Each 11 bit address to color memory 114 accesses 8 bits of color data containing a four bits of a FGC and four bits of the immediately subsequent BGC. When the LSB (the 12th bit) from edge detector 130 is "0" (even transition), the four FGC bits are accessed. When the LSB is incremented to "1" (odd transition) by the immediately subsequent even transition in data stream 128, the four BGC bits are accessed.
Each FGC and BGC color must be displayed on monitor 116 until the next color is accessed from memory 114. The 12 bit access time required to terminate a BGC (odd transition) and access the next FGC (even transition) is 138 nano seconds:
15 ns for flipping edge detector 130,
15 ns for incrementing counter 136, and
100 ns for 12 bit addressing a new color pair.
The pixel duration of each X=960 by Y=240 frame is about 46 ns.
Odd transitions (1-to-0) must be displayed for three pixel periods while the next FGC is being accessed. Therefore, the minimum width of BGC faces (odd transitions) along a scanline is three pixels. The 1 bit access time required to terminate a FGC (even transition) and access the next BGCs is only about 30 nano seconds:
15 ns for flipping detector 130, and
15 ns for one bit addressing of color table 114.
Even transitions (0-to-1) must be displayed for one pixel period while the next BGC is being accessed. Therefore, minimum width of FGC faces (even transitions) along a scanline is one pixel. However, FGFs of three pixels (or less) may be maintained in the even position in data stream 128 by inserting a pseudo BGC (no color change) just after the preceding real BGF.
System 100 has a one pixel access time to color memory 114 for odd transitions, and can display one pixel faces of any FGC contained in an even location of color memory 114. Each four pixel (or greater) BGF in image 120 must be supported by four pixels (or more) in pixel memory 110 and edge data stream 128. The first pixel in the edge data stream changes the color on display monitor 116. The subsequent three pixels are consumed in accessing color memory 114, before the displayed color changes. Even memory faces can be accessed in less than one pixel period.
Operational Modes
Embodiment 100 employs a frame operational mode. The 2096 color pairs (or less) may be distributed throughout each frame without limitation. However, frame wide error accumulation in color memory 114 may become a burden to the graphics personnel. Each individual error in color location causes a shift in all subsequent locations in each remaining scanline of the frame.
A scanline operational mode may employed in a 256 scanline embodiment, by dividing the 2096 color pairs in color memory 114 into 256 equal sections, providing eight color pairs for each scanline. The error accumulation is only scanline wide. However each scanline has a 16 color limit allocated on a lost-if-not-used basis.
A differential edge density mode may be employed to permit more color changes in the midscreen region. The scanlines in the top and bottom margin regions are allocated fewer color pairs because these regions are frequently homogeneous for spacing and vertical balance. More color pairs are available for the center region which usually has a higher face density and consumes more color pairs per scanline.
A five region, three density allocation is given in the following table for a 256 line embodiment:
The center regions scanlines may have an edge density three times the edge density of the upper and lower margin regions. Other density ratios and region selection may be employed.
Specific Embodiment
Face color system 100 is given as an illustrative example, to show the operation of edge detectors and color memory. The values and IC components are not intended as defining the limitations of the invention. Numerous other configurations are possible. Detailed information concerning the IC components is available in "TTL Data Book for Engineers" published by Texas Instruments Inc., which is hereby incorporated by reference in its entirety into this disclosure.
General Ancillary System (Fig. 2)
System 200 provides color and/or other ancillary features such as intensity data or non-displayed codes for controlling the display format of image 220 on display monitor 216. The image source 206 for system 200 may be a continuous data stream from a CPU, or a frame-by-frame update from a memory map, or other suitable memory device. Pixel memory 210 has M bits of display data and ancillary codes for each pixel. Pixel memory provides base pixel data stream 228 in sequential order of display on display monitor 216 in response to a suitable pixel address device such as a pixel clock 224.
Edge code detector 230 is responsive to each ancillary code in pixel data stream 228 for incrementing address counter 236 which provides a new A bit address at each increment. Each A bit address accesses one of the 2-to-the-A locations (L) in ancillary memory 214. Each of the L locations has E bits of ancillary data. Each A bit memory address has a most significant portion (Am) from Am portion 236-M of the counter which accesses one of Lm major memory units. Each A bit ancillary memory address also has a least significant portion (Al) form Al portion 236-L of the counter which accesses one of Ll E bit subunits within each major memory unit.
Accessing a foreground feature in an E bit subunit with A bits of address requires the full access time (Tf) of ancillary memory 214; while accessing a background feature in an E bit subunit with only Al bits of address requires only part of the access time (Tb).
The minimum number of pixels in a foreground feature permitted in system 200 is the whole number Pf determined by dividing Tb by the pixel clock period. The minimum number of pixels in a background feature permitted in system 200 is the whole number Pb determined by dividing Tf by the pixel clock period.
Conclusion
Clearly various changes may be made in the structure and embodiments shown herein without departing from the concept of the invention. Further, the features of the embodiments shown in the various Figures may be employed with the embodiments of the other Figures.
Therefore, the scope of the invention is to be determined by the terminology of the following claims and the legal equivalents thereof.