GRAPHICS PROCESSING SYSTEM

Abstract: A graphics processing system has means for generating a map (26) of an image in terms of the individual picture elements or pixels from data (20) defining the boundaries of component areas of the image. The generating means comprises a plurality of paired storage locations called a convex area table (32). Each pair of storage locations is associated with a line of individual picture elements on the image. Processing logic 22 computes display line and displacement values from the boundary information and stores each displacement area value in a free one of the pair of locations for the corresponding display line. The stored displacement values can then be used for generating the full pixel map of the image.

Description: The present invention concerns a graphics processing system comprising means for creating a pixel map of an image for display on display means. Graphics processing systems can take many forms. There are systems which are dedicated to graphics such as those used in computer aided design. However many general purpose and other processing systems also provide graphics functions. For example, many text processing systems are provided with facilities for creating charts such as histograms, pie charts, and special images. The use of the term "graphics processing system" as used herein is consequently intended to be interpreted generally to include such systems, that is any system in which information can be represented pictorially rather than or as well as alphanumerically and one or more areas making up an image or picture for display can be defined in terms of the boundaries of those areas. By an "area" is meant a plane figure whose outline or boundary consists of lines and/or curves. Areas can be convex, non-convex and can contain holes. In general terms, therefore, an "area" means a general form of boundary, possibly with holes and self intersections. A polygon is a particular form of area which has a boundary formed from straight lines. An area can be defined in a graphics system in many ways. Generally, however, an area will be defined in terms of line or curve segments. In the case of a polygon, the definitions of the vertices and the straight line segments joining the vertices suffice. Areas will often be filled with colour, patterns and/or shading. In general, this is done to make an image more effective. For example, it can be used to enable areas to be more readily distinguished (eg in bar and pie charts), for highlighting areas of particular importance, or to make images of a three dimensional object more realistic (eg in modelling and/or computer aided design systems). The shading itself can, for example, be performed using Gouraud shading. This provides for the smooth shading of flat areas of an image. If an area for display is defined in terms of its edges, it is necessary to determine which points on the final image fall within the area in order that the appropriate locations in the image buffer may be set so as to give the corresponding pixels in the image the correct colour and/or intensity. Most common display devices used today are based on a raster scanning principle (eg raster-scanned cathode ray tubes). In order to drive these devices it is necessary to generate the individual picture elements (pixels) making up the image in time with the scanning of the image. Conveniently, this can be done using a screen or image buffer to hold an image map of the image to be displayed on the display screen at any one time. This creates problems, however, where the areas making up an image are defined in terms of their edges as it is necessary to process the definitions of the areas to identify the individual image pixels which are occupied by each area and accordingly the colouring and/or shading appropriate for those individual pixels. General aspects of these problems are discussed on Chapter II of Foley and Van Dam's book "Fundamentals of Interactive Computer Graphics" (see especially pages 456-461), published by Addison-Wesley in 1982. In accordance with one prior technique for shading an area, an additional image map called a spare bit plane is provided in addition to the image buffer and each area forming part of the image is separately processed using this additional map. Before each area is processed, the pixel locations in the additional map need to be reset. Then, the edges of the area are computed and locations are set in the additional map. When all the edges of the area have been written in to the additional map it is then possible set individual pixel locations in the image buffer by scanning the additional map and alternately starting filling and stopping filling in corresponding locations in the image map on crossing a set location in the additional map. Once the infilling has been completed, the next area can be treated using the additional map. A technique of this type is described in by Ackland and West in their article entitled "The Edge Flag Algorithm - A Fill Method For Raster Scan Displays" which was published in IEEE Transactions in Computers, Vol C30, pp 41 to 48 in 1981. From this state of the art a graphics processing system is known which comprises a source of image data defining the boundary of an area forming at least part of an image to be diplayed on display means, image storage defining a map of the image in terms of the individual picture elements for each of plural display lines, and means for generating the image map from the image data which includes means for storing a map of the area in terms of the individual picture elements for each of plural display lines, the content of this area map being used to form at least part of the contents of the image map , wherein the individual picture elements in the area map are set at positions defined by the stored boundary data, and then the individual picture elements are set on a display line in the image map in accordance with the boundary information on the corresponding display line in the area map. The present invention therefore, is directed to graphics processing system comprising a source of image data defining the boundary of an area forming at least part of an image to be displayed on display means, image storage for a map of the image in terms of the individual picture elements for each of plural display lines, and means for generating the image map from the image data. In a graphics processing system according to the present invention, however, the means for generating the image map from the image data comprises a plurality of paired storage locations, the pairs of storage locations being associated with corresponding display lines, and processing means which initially processes the boundary of the area so as to determine the display lines and displacement along those lines at which sequential boundary points are to be displayed and stores the displacements of the points in free ones of the pair of locations for the appropriate display lines as they are determined. The processing means are arranged to continue the initial processing of the boundary either until the displacement of a position is computed where both storage locations of the appropriate display line are occupied by displacement values different from that just computed, in which case the area is non-convex in the direction of the display lines, or until the complete boundary has been processed and at most two different displacement values per display line have been detected and stored in the appropriate storage locations, in which case the area is at least one-dimensionally convex in the direction of the display lines, and then to process further the area in either a first or a second, conventional, further processing mode in accordance with the determination of whether the area is convex, or non-convex in said direction, wherein in said first processing mode the contents of the pair of locations associated with a display line is read and the individual picture elements are set on that display line in the image map in accordance with the displacement information in said pair of storage locations, and wherein in said second conventional processing mode means are provided for storing a map of the area in terms of the individual picture elements for each of plural display lines, the content of this area map is used to form at least part of the contents of the image map, the individual picture elements in the area map are set at positions defined by the stored boundary data, and then the individual picture elements are set on a display line in the image map in accordance with the boundary information on the corresponding display line in the area map. The graphics processing system in accordance with the present invention obviates the need to set up and to process a spare bit plane for shapes which are convex in the direction of the display lines. In the case of areas which are convex in the direction of the display lines it therefore avoids the overhead of having to interrogate each storage location in the additional image buffer to determine the points at which the filling operation is to be turned on and off. It will still be necessary to process areas which are non-convex in this direction using conventional techniques. However, as, in practice, a significant number of the areas which are to be processed are convex, the invention provides significant processing advantages over the prior art approaches. The invention will be described in more detail hereinafter with reference to the accompanying drawings, in which: Figures 1A, 2A and 3A are illustrations of three different areas for display in a graphics processing system; Figures 1B, 2B and 3B are logical representations of the contents of a refresh buffer of the graphics processing system showing, respectively, how the three areas illustrated in Figures 1A, 2A and 3A could be represented therein; Figure 4 is a block diagram showing functional units of a prior art graphics processing system; Figure 5 is a block diagram showing functional units of the graphics processing system in accordance with the present invention; Figure 6 is an illustration of a convex area table which forms part of the graphics processing system of Figure 5; Figure 7 is a flow diagram illustrating the operation of control logic in the systems of Figure 5; and Figure 8 is a block diagram of a physical implementation of the graphics processing system of Figure 5. Figures 1A, 2A and 3A show in a generalised form three simple shapes or areas which it might be desired to display in a graphics processing system. The areas could define display objects in themselves, or the could form part of a more complex object for display. If the graphics processing system is a word or text processing system with image processing functions they could, for example, represent symbols for use in labelling or generating graphs. Equally, if the graphics processing system is able to process and display representations of three dimensional objects, the areas could form surfaces of such an object. These are, however, examples only of what the areas represent and it will be appreciated by those skilled in the art that the actual signification of the areas is immaterial to the teaching of the invention. Graphics processing systems, as has already been said, come in many different guises. Likewise, the display subsystems that they incorporate also come in many forms. Commonly, however, display subsystems are based on elemental image techniques where an image is made up of a matrix of individual picture elements. Examples of such display sub-systems are raster-scanned display screens and dot matrix printers. It should be noted that references to displaying and the like in this specification are intended to cover displaying by means of a printer. In order to effect the display of an image in scanning display subsystems for example, an image buffer can be provided in which an image to be displayed is stored in terms of the individual picture elements (pixels) making up the image, and then the individual elements are accessed in synchronism with the scanning of the display device. In the case of a cathode ray tube device for example, the image buffer will be accessed repeatedly and is generally termed a refresh buffer. There need not be a separate image buffer, however, as the storage for the image may be provided by the display device itself as is the case, for example, in gas panel displays. The present invention is directed to graphics processing systems incorporating image storage for an image to be displayed, in which storage a map of the image is built up in terms of the individual picture elements on each of plural display lines. By a display line is simply meant a line of individual picture elements. A display line could, but need not be a scan line on a raster-scanned display. Figures 1B, 2B and 3B illustrate, respectively, how the shapes shown in Figures 1A, 2A and 3A could be represented in the image storage of a graphics processing system by setting the bits corresponding to the appropriate pixel locations. In these figures, a set bit is indicated by a "1". It should be noted that Figures 1B, 2B and 3B are merely logical representations of the storage of image information and that the physical storage of the information need not be in the form shown (eg the information could be stored in a linear form rather than two dimensionally). Although the image buffer of the graphics processing system is arranged on a pixel basis, the system would require an immense amount of storage if all the possible images to be displayed were stored on the same basis. In the case of images made up of areas which are filled with colour, shading and/or a pattern this would be particularly inefficient. In practice it is usual to store such images in alternative, more efficient ways. One possible way is in terms of data defining the edges and possible the colour and/or shading and/or pattern for the areas making up the image. There are other possibilities, but the present invention is concerned with systems of this general sort where the areas making up the image can be defined in terms of the boundaries of those areas. In such systems, it is necessary to process the area definitions from storage in order to generate the pixel information for the display. Figure 3 shows a logical arrangement of elements of a prior art arrangement such as that mentioned above. The prior system comprises a cathode ray tube device 30, driven by refresh logic 28 using pixel information in an image buffer 26. In the prior graphics processing system, a buffer called a spare bit plane 24 is provided in addition to the image buffer 26. When processing an image for display, each of the component areas of the image is processed in turn. The original area definitions can be stored in image definition storage 20 in terms of its edges and information defining the colour and/or shading and/or pattern for the area. The detailed storage methodology used is not important to the functioning of the prior system. The definitions of the data defining each area could be linked by a conventional data structure such as linked lists, tables and so on. Alternatively the area definition data could be down loaded from a host processor or generated in real-time rather than being stored in storage 20. Before each area is processed, the spare bit plane locations have to be reset. Then, each edge of the area is processed in turn to determine the individual pixel locations crossed by the edges and the corresponding locations in the spare bit plane are set. The processing is performed by the control logic 22. When all the edges of the area have been processed and the corresponding bit positions in the spare bit plane set, it is then possible to set up the area in the image buffer 28. The spare bit plane could have the same logical structure as the image buffer (see Figs. 1B, 2B, 3B and the description thereof). The filled area is created in the image buffer by scanning the spare bit plane and the buffer in synchronism and alternately starting writing and stopping writing information into the buffer on crossing a set location in the spare bit plane. At the same time the set locations in the spare bit plane can be reset to avoid needing a separate resetting operation before processing a subsequent area. The actual information written for the individual picture elements in the image buffer is dependant on the colour and/or shading and/or pattern information for that area. Subsequent areas can then be processed using the spare bit plane until a complete image including all the filled areas is stored in the image buffer. It will be appreciated that this is a time consuming process, due to the necessity to interrogate and process all of the individual locations in the spare bit plane, and despite a high processing rate, it nevertheless can lead to delays in the generation of screens of display data which are noticeable to to operator and/or limit the complexity of images which can be processed at a given refresh rate. The present invention provides improved performance in that, for many images, it is not necessary to use the spare bit plane when filling in areas. The invention is based on the principle that a straight line drawn through a convex shape will only cross the boundary of that shape at two places at most. Thus, any straight line drawn through the triangle in Figure 1A will cross the boundary of the triangle at two places at most. The "I" shape in Figure 2A can be said to be "one-dimensionally convex" in the horizontal direction because any horizontal line drawn through it will cross the boundary at two places at most. It is not however convex in the vertical direction because a vertical line to the left or right of the central part of the "I" will cross the boundary at four places. Similarly the "H" shape in Figure 3A is convex in the vertical, but not in the horizontal direction. The normal method for determining the convexity of a polygon uses Euclid's Theorem. In accordance with this theorem, a polygon is convex if the sum of its interior angles is not greater than 360 degrees. It would be possible therefore to determine whether a polygon is convex using the signs of the vector cross products of the polygon edges or by counting polygon vertex inflexions. In either case, however, this involves a pre-processing pass of the polygon vertices and significant calculation to determine whether the polygon is convex. Moreover, this technique cannot be used for areas in general (unless the area is de-composed into straight line approximations), but only for polygons. The present invention overcomes the disadvantages of the prior art by the provision of a logical structured storage element called a convex area table. A possible logical configuration for this storage element is shown in Figure 6. The convex area table shown in Figure 6 comprises the capacity to store two "x" ordinate values for each of the scan lines on the display image. It is assumed in Figure 6 and in the following description that the "display lines" are horizontal. Figure 6 also shows an "in-use flag" for each of the storage locations for the "x" ordinates, although this is not essential as will be explained later. Figure 5 shows an arrangement of logical elements, including the convex area table 32, of a graphics processing system in accordance with the present invention. Logical elements which are also provided in the prior art system have the same numbering as in Figure 3. The operation of a graphics processing system in accordance with the present invention will now be explained, by way of example, with reference to Figures 5, 6 and 7. As in the prior art arrangement, the original area definitions can be stored in the image definition storage 20 in terms of its edge and in-fill information defining the colour and/or shading and/or pattern for the area. The detailed storage methodology used is not important to the functioning of the present system. The definitions of the data defining each area could be linked by a conventional data structure such as linked lists, tables and so on. As in the prior art arrangement, however, the provision of the image definition storage 20 is not essential as the area definition data could, for example, be generated in real time or down loaded from a host processor connected to the graphics processing system. Before each area is processed, the convex area table needs to be reset. Then, as in the prior system, each edge of the area is processed in turn to determine the individual pixel locations crossed by the edges. In the system of Figure 5 this processing is performed by the control logic 22′ which differs in operation at least from the control logic 22 in Figure 3 as will be apparent from the following. The control logic 22′ computes the display line and the displacement along the display line at which sequential incremental positions along the edge currently being processed are to be displayed. This can be done using any suitable algorithm, for example Bresenham's algorithm as described on pages 433-436 of Foley and Van Dam's book referred to earlier. If the display line on which a particular point is to be displayed differs from the immediately preceding point on that edge the control logic 22′ then examines the pair of locations in the convex area table corresponding to the appropriate display line to determine whether one or both are already occupied by displacement values. An algorithm which enables a point to be selected if it is for a different display line than the preceding point is described in J E Bresenham's article "Run Length Slice Algorithm for Incremental Lines" which was published in "Fundamental Algorithms for Computer Graphics", NATO ASI Series; Computer and Systems Sciences, Vol 17, pages 59 to 104 in 1985. In this way, the control logic 22′ ensures that only one point per display line is considered for an edge, or part thereof is nearer to being horizontal than vertical. What happens next depends on the result of the examination. If neither of the two storage locations are occupied, the newly calculated "x" value is stored in one of those locations. If one "x" value has already been stored in one of the pair of locations for the scan line in question, and the newly calculated "x" ordinate value is different from that already stored, then the newly calculated "x" ordinate value is stored in the free one of the paired locations. If it is determined that the newly computed "x" ordinate is the same as an "x" ordinate value already stored in the pair of locations for the current scan line, the newly computed "x" ordinate is discarded. If both of the locations for that scan line are occupied by "x" ordinate values different from that just computed, then the logic 22′ designates the area under consideration non-convex and causes the area to be processed using the spare bit plane. If all the edges of the area are processed without the logic 22′ designating the area under consideration as non-convex and consequently all the appropriate locations in the convex area table have been set, it is then possible to fill in the area without using the spare bit plane. In this, the first filling mode, the contents of the convex area table are used to determine the individual picture element locations to be set in the image buffer. It should be noted that this operation will normally be independent of the scanning of the image buffer in synchronism with the scanning of the display for actually displaying of the image. In the first filling mode, therefore, the convex area table is examined by the control logic 22′. If no "x" ordinate (displacement) values for a particular display line have been stored, this means that no part of the area lies on that display line and, consequently, that the line can be ignored as far as that area is concerned. If two values have been stored for a display line in the convex area table, this means that part of the display line between the two displacement values stored needs to filled in by the control logic. This means that information is written on the display in question from the location corresponding to the lower displacement value to that corresponding to the higher value. The actual information written is dependent on the colour and/or shading and/or pattern data for the area. Whether information is actually written at the boundary locations depends on how adjacent areas are to be displayed. For example the location corresponding to the lower displacement value could be written, but the corresponding higher value left blank. In this way double writing at a location where two areas meet can be avoided. To simplify processing at this stage, displacement values could first be ordered within the pair of locations for a display line so that the displacement value in the 1st location is lower than that in the second. It would then only be necessary to examine one location at a time. If only one displacement value has been stored for that line, this means that the area meets at a singularity. This could either be a vertex of the area or it could be the meeting point of two separate convex areas such the point where the two round areas of a Figure 8 meet. In either case, no filling in is necessary. A single point can be written or not into the image buffer, as preferred. Once again this choice depends on how adjacent areas are to be displayed. In accordance with the second filling mode (ie when the area is determined to be non-convex in the display line direction) the spare bit plane is used in a manner similar to that known from the prior art. The information already stored in the convex area table can be used when drawing the boundary information in the spare bit plane. In both the first and the second filling modes, as the information is read from the convex area table, the locations read can be reset in preparation for processing a subsequent area. The provision of the in-use flags simplifies the control of the convex area table. When the table is reset before the processing of an area is started, it is only necessary to reset the flags. If, on the other hand they are not provided, all the displacement values will have to be reset to some value which represents, for example, an invalid pixel location. Similarly, when determining whether two, one or no displacement values have been stored for a particular display line, it is only necessary to examine the flags in the first instance. As this merely involves a binary test, this is more efficient than a full comparison operation which would be needed if the use of an invalid pixel location were used to identify an "unoccupied" location in the convex area table. Figure 7 is a flow diagram of a particular algorithm for determining whether an area is convex or not in the direction of the display lines for an image using a convex area table with in-use flags. In accordance with this algorithm a first test, 70, is made to determine whether the first one of the appropriate pair of locations is occupied. If it is not, then the newly computed "x" ordinate (displacement) value is stored, 72, in that first location the in use flag for that location is set, the next position on the boundary of the area can be considered, 92. If it was already occupied, the newly "x" ordinate value is compared, 74 to the stored value. If they compare equal, the newly computed value is discarded, 76, and the next position on the boundary of the area is considered, 92. If they are not equal, the second one of the pair of locations is then considered. A test, 78, is made to determine whether the second "x" ordinate value is occupied. If it is not, then the newly computed "x" ordinate value is stored, 80, therein, the in-use flag for that location is set and then the next position on the boundary of the area can be computed. If it was already occupied, the newly computed "x" ordinate value is compared, 82, to the value stored in said second location. If they compare equal, the newly computed "x" ordinate value is discarded, 84, and the next position on the boundary of the area is considered, 92. If they are not equal, then the control logic 22′ designates, 86, the area as being non-convex in the direction of the display lines and processing of the area using the spare bit plane is invoked. If, 88, the newly calculated "x" value was for the last position on the boundary of the area to be considered and the answer to all the tests 70, 74, 78 and 82 was negative, then the control logic 22′ designates, 90, the area as being at least one-dimensionally convex in the direction of the display lines and the area can be filled without using the spare bit plane. A specific implementation of graphics processing system in accordance with the invention is shown in Figure 8. In this implementation the functional elements shown in Figure 6 are configured in a personal computer by conventional programming techniques. The personal computer comprises a microprocessor 40, main storage 42, a keyboard and a cathode ray tube display 30. The operation of the cathode ray tube device is controlled by refresh circuitry 28. The microprocessor can be of any suitable type as will be evident to the person skilled in the art. The keyboard is connected to the bus via a keyboard adapter 50. Backing storage 44 with an associated I/O adapter 46 can also be provided. The individual units are connected to one another by a bus comprising data bus lines 56, control bus lines 52 and an interrupt line 54 in a conventional manner. The personal computer could, of course be provided, in a conventional manner, with connections to further personal computers and/or host processors. The functional units shown in Figure 6 are implemented by means of suitable programming. As shown in Figure 8, a first part 60 of main memory 42 is reserved for programs and data. In this part of memory, therefore, computer software is stored, which, in combination with the hardware elements of the system provide the functions of the control logic 22′ shown in Figure 6. In addition, the data specifying the image to be displayed (ie the data contained in the image definition storage 20 shown in Figure 6) can be stored in this first part of main memory. Parts 62, 64 and 66 of storage in the main memory are provided, respectively, for the convex area table 32, the spare bit plane 24 and the refresh buffer 26 shown in Figure 6. It should be noted that Figure 8 shows the various parts 60, 62, 64 and 66 of storage as unitary blocks purely for the simplicity of illustration. In practice, the various parts of storage (the block 60, the convex area table 62, etc) could be distributed throughout main memory. Indeed, it is also possible for part or all of the data, and for software as necessary to be stored on backing storage and for this to be brought into main memory only when needed. It is not considered necessary to indicate the details of the programming needed in order to implement the present invention using a personal computer as it will be evident to the skilled person how to carry this out in the light of the information given in this specification. It will be appreciated that the present invention is not limited to the specific implementation described hereinabove. The present invention could equally be implemented by means of a new hardware structure incorporating the necessary functional elements, or could be implemented on other general purpose computers. Although it is most convenient that the display lines mentioned on Figure 6 correspond to the scan lines of a display screen or a raster printer head, this is not essential. The image buffer could for example be loaded by accessing it using horizontal sweeps, whereas the display itself could be scanned vertically and consequently the image buffer read vertically during scanning of the display screen and vice versa. As has been mentioned, the image storage may be performed by the display itself (eg gas panel displays) rather than an image buffer.

Claims: Graphics processing system comprising a source (20) of image data defining the boundary of an area forming at least part of an image to be displayed on display means, image storage defining a map (26) of the image in terms of the individual picture elements for each of plural display lines, and means for generating the image map from the image data which includes : a plurality of paired storage locations (32), the pairs of storage locations being associated with corresponding display lines; and processing means (22′) which initially processes the boundary of the area so as to determine the display lines and displacement along those lines at which sequential boundary points are to be displayed and stores the displacements of the points in free ones of the pair of locations for the appropriate display lines as they are determined, said processing means being arranged to continue the initial processing of the boundary until : either the displacement of a position is computed where both storage locations of the appropriate display line are occupied by displacement values different from that just computed, in which case the area is non-convex in the direction of the display lines; or the complete boundary has been processed and at most two different displacement values per display line have been detected and stored in the appropriate storage locations, in which case the area is at least one dimensionally convex in the direction of the display lines, then to process further the area in either a first or a second conventional, further processing mode in accordance with the determination of whether the area is convex, or non-convex in said direction, wherein in said first processing mode the contents of the pair of locations (32) associated with a display line is read and the individual picture elements are set on that display line in the image map (26) in accordance with the displacement information in said pair of storage locations, and wherein in said second conventional processing mode means are provided for storing a map (24) of the area in terms of the individual picture elements for each of plural display lines, the content of this area map is used to form at least part of the contents of the image map (26), the individual picture elements in the area map (24) are set at positions defined by the stored boundary data, and then the individual picture elements are set on a display line in the image map in accordance with the boundary information on the corresponding display line in the area map. A graphics processing system as claimed in claim 1 wherein the boundary of the area comprises a plurality of edge segments and wherein the processing means, when processing the boundary of the area, is arranged to process each of the edges of that boundary in turn. A graphics processing system as claimed in either claim 1 or claim 2 wherein each of the locations in the plurality of paired locations has associated therewith an in-use flag and wherein the processing means is arranged to set the flag associated with a location when a displacement value is stored in that location and is also arranged to determine whether a displacement value has been stored in a location by testing whether the corresponding flag has been set. A graphics processing system as claimed in any one of the preceding claims wherein the definition of the area includes colour and/or shading and/or pattern data for filling in the area in addition to the boundary data, and wherein the processing means is arranged, in said first processing mode, to set the individual picture elements on a display line in the image map in accordance with the colour and/or shading and/or pattern data for the area. A graphics processing system as claimed in claim 4 wherein the processing means is arranged, in said second processing mode, to set the individual picture elements on a display line in the image map in accordance with the colour and/or shading and/or pattern data for the area. A graphics processing system as claimed in claim 5 wherein the processing means, in said second processing mode, are arranged to use such data as was stored in the paired stored locations to write boundary into the area map (24) and then to complete the boundary information in the area map using the boundary data from said source (20). A graphics processing system as claimed in any one of the preceding claims comprising raster scanned display means (30) wherein the display lines correspond to the scan lines on the raster scanned display means.

Inventors: EASTON, COLIN JOHN, GAY, ADRIAN CHARLES
Applicants: INTERNATIONAL BUSINESS MACHINES CORPORATION
Application year: 1987
Main classification: G09G1
IPC codes: G06T11, G06F3, G09G5