In common commercial practice today, a computer graphics screen is treated as if it were composed of rectilinear rows and columns of square picture elements referred to as "pixels", as is shown in FIG. 1. The image to be displayed on a computer graphics screen is stored as a series of sets of numbers or "words" where each such word corresponds 1-for-1 with the brightness and color of one pixel on the display screen. Since one memory unit is "mapped" onto one dot on the display screen, this is called, a "bit-mapped" or "memory-mapped" display.
This bit-mapping practice works well for straight, vertical or horizontal edges, but it is problematical for any other edges. One example of the problem is diagrammed in FIG. 2. Pixels labelled A through K represent a portion of one scan line on a display screen. The edge of an object intersects the scan line between pixels C and G. The object body lies below the bold line, in the cross-hatched area. This is referred to as a "leading" edge and the edge shown in FIG. 3 is referred to as a "trailing" edge because a CRT beam commonly produces these pixels while moving left-to-right. Thus, the left edge of an object is the first edge of the object that is displayed and the right edge is the second or "trailing" edge of the object.
Current systems encode such edges in various ways. The simplest ignore partial pixel coverage and arbitrarily treat some partially-covered border pixels as object pixels and others as background pixels. Everything to the left of the border pixel is unaffected by the object; the border pixel and all pixels to the right (until the trailing edge) are changed to the object color. The border pixel is arbitrarily selected as the leftmost affected pixel, C, or the rightmost affected pixel G, or the first pixel to be more than 50% covered, E. Any of these criteria can be used if the criterion is applied consistently to the whole screen. The problem with such encoding is that it produces the jagged stair-stepped edges prevalent in computer-graphics today. Its advantage is simplicity: the small amount of memory capacity required per pixel and the speed of the drawing algorithms using such encoding.
More sophisticated encoding used in several new commercial products defines several mixed color values, typically 16 such color values, that are shadings between the available object colors and a given background color. With an eight bit word allotted for each pixel, such a system can provide 15 object colors. Each of these colors would have 15 internally-defined additional colors that are intermediate shades between the object colors and a background color. For instance, if the object was blue and the background was black, the display system would produce one of 15 internally defined shades between blue and the given background color, black, required to simulate a pixel 15/16 covered with blue or 14/16 covered with blue, or 13/16 covered with blue . . . or 1/16 covered with blue.
An algorithm drawing the leading edge in FIG. 2 would assign to pixels C through G the closest of the 15 available "fractional" color value codes. Pixel C, being 1/10th covered by blue, would be rendered with the 2/16th blue color. Likewise pixel D is 3/10th covered and would be rendered using the 5/16th blue color. This results in an image which appears quite well "anti-aliased" in typical, medium resolution applications that is, the jagged stair-steps are smoothed.
The disadvantage of this system is the fact that the anti-aliasing is only possible between the given object colors and one designated background color. If one object color crosses in front of another object color, the edge again appears jagged since no intermediate shades are defined for this combination of colors--the only fractional colors defined are for objects displayed against a background. On the other hand, defining intermediate shades for each possible overlap of 16 object colors would produce 15.times.120=1800 color values, and require a larger memory for storing three more bits for exch pixel. When the look-up table, which converts the color value codes actual red, green, and blue intensity values must be revised to alter a particular color, 256 derivative intermediate shades affected by that color must be located, computed, and then replaced. Updating this table quickly is often desirable for simulating animation but would be difficult at best where edges are encoded in this way.
Another solution to the problem is to explicitly define the edge parameters. In FIGS. 2 and 3, a five-step transition would be used, each step increasing 20% of the color difference between the background color and the object color. This is an extremely powerful technique which yields images which are visually perfect within the capabilities of a CRT display screen, but it has two disadvantages: (1) It is incompatible with the pixel-based graphics software and stored bit-map graphics, such as land-sat photo. (2) The hardware to implement a full transition drawing system is too large and too expensive for consumer applications.