EP1092217B1 - Method of and system for detecting and rendering of graphic elements - Google Patents
Method of and system for detecting and rendering of graphic elements Download PDFInfo
- Publication number
- EP1092217B1 EP1092217B1 EP99932125A EP99932125A EP1092217B1 EP 1092217 B1 EP1092217 B1 EP 1092217B1 EP 99932125 A EP99932125 A EP 99932125A EP 99932125 A EP99932125 A EP 99932125A EP 1092217 B1 EP1092217 B1 EP 1092217B1
- Authority
- EP
- European Patent Office
- Prior art keywords
- display
- graphics
- vector
- graphic objects
- stroke
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G1/00—Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data
- G09G1/06—Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data using single beam tubes, e.g. three-dimensional or perspective representation, rotation or translation of display pattern, hidden lines, shadows
- G09G1/14—Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data using single beam tubes, e.g. three-dimensional or perspective representation, rotation or translation of display pattern, hidden lines, shadows the beam tracing a pattern independent of the information to be displayed, this latter determining the parts of the pattern rendered respectively visible and invisible
- G09G1/16—Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data using single beam tubes, e.g. three-dimensional or perspective representation, rotation or translation of display pattern, hidden lines, shadows the beam tracing a pattern independent of the information to be displayed, this latter determining the parts of the pattern rendered respectively visible and invisible the pattern of rectangular co-ordinates extending over the whole area of the screen, i.e. television type raster
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G1/00—Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data
- G09G1/06—Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data using single beam tubes, e.g. three-dimensional or perspective representation, rotation or translation of display pattern, hidden lines, shadows
- G09G1/07—Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data using single beam tubes, e.g. three-dimensional or perspective representation, rotation or translation of display pattern, hidden lines, shadows with combined raster scan and calligraphic display
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/393—Arrangements for updating the contents of the bit-mapped memory
Definitions
- the present invention relates generally to the field of a rendering engine architecture for computer graphic displays and displays information processing technology. More specifically, the present invention relates generally to a method of and system for a rendering engine architecture wherein graphics or other objects are detected and rendered for display to a user Independent of the source of the graphics to be rendered.
- Stroke display systems include stroke defiedion processors and Cathode Ray Tube (CRT) stroke-type displays. Stroke display systems are capable of high-quality symbology with inherent anti-aliasing, due to the ability to position the electron beam in very fine increments and the Gaussian distribution of electrons within the electron beam.
- CRT stroke-type displays experience high failure rates, high costs, low supply, and diminishing number of suppliers.
- Raster display systems include raster image processors and raster-type CRT or flat panel displays. Raster display images are typically more quantized than those of stroke images, either in terms of the number of horizontal lines in the image, or in the case of mosaic displays such as LCDs, the pixel resolution. Raster display images often require special processing techniques, such as anti-aliasing, to approach the symbol quality level available in legacy stroke systems. Raster-rnode flat panel displays exhibit lower failure rates, lower costs, are readily available and represent the state of the art.
- a bit map image can include graphics that have been rendered for a specific display resolution and size.
- the bit map image is converted using bilinear interpolation under conventional methods.
- the process can also involve converting stroke information to a bit map image (e.g., by sampling deflection, intensity, color, etc.) and then processing the image with software. Information is distorted as well as lost during this process, yielding a bit map which indeed can be rendered on the new display (e.g., flat panel displays) but with lower quality than if the bit map had been rendered directly for the new display. Further, the conversion process does not handle overlapping symbols and is not performed in real-time.
- a conventional method includes over-sampling stroke deflection, color and intensity information from a stroke deflection processor in order to create a stroke symbology bit map with color and intensity for each pixel, then processing the stroke symbology bit map and merging the processed stroke symbology bit map with digitized raster video from a raster image processor. The merged stroke/raster images are then provided to a flat panel display.
- Stroke symbology bit map processing can include anti-aliasing, edge detection, image smoothing, and contrast enhancement.
- FIG. 1 which represents stroke symbology image digitized into a bit map before image processing, illustrates why this is a problem for some conventional approaches.
- the image-processing component in conventional approaches must process this bit map without the benefit of information lost when symbols intersect or overlap.
- the reference numeral 2 represents the two green lines connecting two small circles; the reference numeral 4 represents a red circle in the upper left corner of the figure; and the reference numeral 6 represents a blue line (extending from the upper left corner to the lower right corner).
- the intersection appears on a display to include a dot with diameter larger than the width of either line. Small circles may also appear as dots when processed using conventional methods. Thus symbology becomes ambiguous.
- Another example involves a method where vector graphics are rendered into a bit map image intended for a flat panel display.
- the graphics When viewed on the display, the graphics contain arttfacts such as aliasing (for example, stair stepping of lines drawn at angles other than 0 degrees or 90 degrees).
- aliasing for example, stair stepping of lines drawn at angles other than 0 degrees or 90 degrees.
- Conventional systems include methods for post-processing the bit map image using techniques which detect lines and edges, then alter the bit map by blurring the detected lines and edges.
- the effects of aliasing appear diminished, but at the expense of graphics resolution and quality.
- a method in accordance with that claimed in independent claim 1 The objects within the display list are then manipulated by anti-aliasing in order to smooth lines, texturing to enhance the appearance of graphic objectgraphic objects, alpha blending to combine graphic objectgraphic objects and maintain correct color perception, haloing to increase contrast between graphic objectgraphic objects and the background scene, interpolation for scaling and smoothing graphic objects, fogging to provide the perception of depth, fills in order to color graphic objects, merging with other graphics information and sources, and other functions.
- the step of detecting graphic objects includes the step of detecting the start point, end point, length, direction, color, intensity, width, type (dashed, solid) and draw rate of vectors; detecting the center point, radius, color, intensity, shading, fogging, and texture of circles; detecting the vertices, color, intensity, shading, fogging, and texture of a polygons or three dimensional shapes; detecting the color, intensity, shading, fogging, and texture of the background.
- Stroke deflections and video are digitized through over-sampling. Instead of creating a bit map as in conventional approaches, the present invention detects start and end points for individual vectors within specific symbols, along with their color and intensity. Individual vectors are distinguished through a change in direction, a change in color, a change In intensity, a change in draw rate, or by the assertion or de-assertion of the symbology blanking signal. This effectively recreates the original vector display list used by the original stroke deflection processor. Once the original display list is recreated, stroke symbology can be re-rendered without the errors experienced in conventional approaches.
- occlusion is typically accomplished for a stroke display system by setting the stroke video signal for zero beam intensity while the deflection is in the occlusion area.
- occlusion areas are precisely maintained as a result of re-rendering only those vectors present simultaneously with stroke video. The smallest symbols as well as intersections and arcs are accurately rendered with the highest possible quality.
- Both conventional approaches and the present invention over sample the stroke video inputs for analog to digital conversion. Both conventional approaches and the present invention perform a merge of stroke symbology with digitized raster video In similar manners.
- conventional approaches have the problem of performing bit map or image processing in the presence of arcs and intersections of varying colors to a degree which typically has been performed in non-real time systems or in systems with parallel digital signal processing components.
- the present invention shifts the problem from that of processing bit maps in real time (see discussion above with respect to FIG. 1) to one of detecting the beginning and end of individual vectors, which can be performed in real time.
- the present invention removes the effects of lost and distorted stroke symbology information, and re-renders the stroke symbols in a manner optimized for a high resolution, color flat panel display.
- the present invention processes a display list of individual vectors. The display list represents each and every vector rendered for the stroke symbology with no loss of information.
- analog stroke video A/D is performed by oversampling relative to write rate and display pixel resolution.
- Digitized stroke video data processing is performed by first creating a bit map.
- Rendering of symbology with anti-aliasing is performed by post processing the bit map using edge detection, image smoothing, contrast enhancement, nearest neighbor analysis (pseudo anti-aliasing) and other graphics and image processing techniques well understood by those skilled in the art.
- the analog raster video A/D is performed by oversampling relative to the Input resolution and display pixel resolution.
- the stroke symbology and raster video are merged through digital summation with symbology precedence or priority.
- the end-to-end effect of this conventional approach is that the quality of the symbology is compromised while not fully realizing the capabilities of a high-resolution color, flat panel display.
- analog stroke deflection and video A/D is performed by over-sampling relative to write rate and display pixel resolution.
- Digitized stroke video data processing is performed by creating a display list.
- Rendering of symbology with anti-allasing and alpha blending is performed by graphics rendering of simple vectors (true anti-allasing) with sub-pixel positioning of the end points, using algorithms using anti-aliasing and alpha blending algorithms well known and understood by those skilled in the art.
- Anti-aliasing algorithms have the capability to modulate pixels along and around a vector in a manner that makes the line appear straight and smooth when viewed on a display.
- Alpha blending enables overlapping vectors to be rendered in a manner which ensures that the highest priority vector is not obscured by lower priority vectors.
- Alpha blending algorithms modify pixel colors along and around vectors in order to ensure that vectors of differing colors that are rendered in close proximity or in an overlapping manner do not present a third (false) color when viewed.
- the analog raster video A/D is performed by oversampling relative to input resolution and display pixel resolution.
- the stroke symbology and raster video are merged through digital summation with symbology precedence.
- the end-to-end effect of this approach of the present invention is that maximum quality of symbology is realized using fullest capabilities of a high-resolution, color flat panel display.
- FIG. 2 where there is shown an embodiment 10 of the present invention represented by its major components.
- Each component (200 through 600) is further described herein.
- graphic objects includes all information that is present in a graphics display system.
- the present invention enables one to render graphics for display purposes in an optimal manner without regard for the source of the graphics to be rendered.
- graphics already rendered in a manner that may not be the desired method can be re-rendered using the desired method.
- the present Invention can convert analog stroke symbology inputs to high-quality, anti-aliased symbology with background raster video, for example, display on a color flat panel display.
- the Graphics Detection Processor 200 detects the individual vectors rendered by the original source, such as stroke (vector) video input for each video frame. To accomplish this, the Graphics Detection Processor 200 first digitizes the horizontal deflection (x display position) and vertical deflection (y display position) signals, color signals, intensity signals, symbology blanking signal and other signals from the stroke (vector) video using analog to digital converters (A/D) to form a digital sample of a vector in a manner well known to those skilled in the art.
- A/D analog to digital converters
- the direction of a vector ((x 2 -x 1 ), (y 2 -y 1 ), where x 1 is a first sample of horizontal deflection in a sequence, x 2 is a second sample of horizontal deflection in a sequence, y 1 is a first sample of vertical deflection in a sequence, y 2 is a second sample of vertical deflection in a sequence, etc.), or change in vector direction, is determined by comparing the digitized horizontal and vertical deflection signals in a digital sample of a vector to the digitized horizontal and vertical deflection signals In the previous digital sample of a vector.
- the start and end points of a vector are determined from changes in vector direction, from changes in color, from changes in intensity, from changes in draw rate (distance between two digital samples of a vector divided by the sample period), or from changes in other digitized signals in a digital sample of a vector. Also, the present invention determines whether a plurality of small samples combine result in one large vector (i.e., many small vectors can appear to be one vector). It is noted that vectors can be detected by determining end points from stroke-like video, by recognition of vectors in a raster image, or by parsing vector draw commands in a display list in a manner known to those skilled in the art.
- the present invention declares a change in vector direction when a measured change in direction exceeds a predetermined static or dynamic threshold value (which is affected by noise or the processor characteristics) in a manner that will be apparent to those skilled in the art.
- the length of a vector is determined from the distance between the start and end points in accordance with the following equation: sqrt((x 2 -x 1 ) 2 + (y 2 - y 1 ) 2 ).
- the intensity of a vector is determined from the digitized intensity signal in a digital sample of a vector and from the draw rate for a digital sample of a vector. A slower draw rate corresponds to a higher intensity for the vector.
- a vector primitive is then formed by combining the start and end points, length, direction, color, and intensity of a vector.
- Vector primitives are added to a vector array (Graphics Array 260) for each image or video frame of vectors to be rendered on, for example, a color flat panel display 630.
- the beginning and end of a video frame of vectors is determined directly from stroke video signals or other synchronizing information, by detecting a vector primitive already in the vector (graphics) array 260, by a timer, or by other means. Changes in other vector measurements are declared in a similar manner and will become apparent to those skilled in the art.
- the Graphics Detection Processor 200 can be programmable in order to accept multiple forms of Rendered Graphics 220 as input.
- Rendered Graphics 220 can be imagery, video, graphics, graphics commands, or other appropriate input that are generated by a particular source such as stroke deflection processor, raster image processor, image scanner, still or motion camera, or a graphics application.
- the ability to program the Graphics Detection Processor 200 provides for optimization for input types, input content, performance, security, transmission, storage, image quality, specific display characteristics, and other purposes as will become apparent to those skilled In the art. Programming can be based on defaults or dynamically assigned values for optimization in a manner known to those skilled in the art.
- the Graphics Detection Processor 200 provides as output a Graphics Array 260 that represents the graphics information provided in Rendered Graphics 220.
- the generation of a Graphics Array 260 is one novel component of the present invention.
- a Graphics Array 260 is also referred to herein as a display list. Those skilled in the art can render graphics with a Graphics Array 260 in an optimal manner for a given display.
- Acquisition 230 module converts Rendered Graphics 220 to a form suitable for processing.
- Rendered Graphics 220 Is in the form of analog stroke video
- Acquisition 230 can convert Rendered Graphics 220 to digital samples which can then be processed by a digital processor.
- Recognition 240 module identifies graphic objects within Rendered Graphics 220.
- Recognition 240 can determine start and end points of vectors, position and type for graphic objects such as circles and spheres, or position, type, and font for characters in the digital samples provided by Acquisition 230.
- Array Generator 250 collects the information for each graphic object identified by Recognition 240 module and creates a Graphics Array 260 with information for each graphic object or primitive.
- Graphics Array 260 can be a display list of vectors where each entry in the display list includes the following information: start point (x, y), end point (x, y), color (red level, green level, blue level), intensity (voltage or relative brightness level), draw rate (inches/second or centimeters/second).
- start point x, y
- end point x, y
- color red level, green level, blue level
- intensity voltage or relative brightness level
- draw rate inches/second or centimeters/second.
- the Encode Processor 300 receives Graphics Array 260 as input.
- the Encode Processor 300 provides as output an Optimized Graphics Array 330 that represents the graphics information in Graphics Array 260.
- the Encode Processor 300 can be optimized for Input types, input content, performance, security, transmission, storage, image quality, specific display characteristics, and other purposes.
- the Encode Processor 300 can perform vector quantization, data compression, data encryption, graphic object sorting, alpha value assignment (e.g., precedence or transparency), or other processing functions.
- the Encode Processor 300 can filter each vector In a Graphics Array 260 to ensure that all vectors are of reasonable length, color, and intensity in order to optimize their appearance on the color flat panel display.
- Encode Processor 300 can encode Graphics Array 260 as an array of graphics commands or graphics routine calls such as those supported by OpenGL® computer software available from Silicon Graphics, Inc.
- Encode Processor 300 can encode a chain of vectors which form a circle as a single draw circle command, which is also the case for Recognition 240. The output from the Encode Processor 300 is the Optimized Graphics Array 330.
- the Graphics Rendering Processor 400 receives as input a Graphics Array 260 or an Optimized Graphics Array 330 from the Encode Processor 300.
- the Graphics Rendering Processor 400 provides as output Display Data 530 which is a rendering (processing/formatting) of the graphics information contained within a Graphics Array 260 or an Optimized Graphics Array 330.
- Display Data 530 is appropriately formatted for a graphics display.
- Display Data 530 can contain any or all of the following types of information: bit map, texture map, raster graphics, vector graphics, holographics and other graphics formats.
- the Graphics Rendering Processor 400 can perform graphics processing functions including anti-aliasing in order to smooth lines, texturing to enhance the appearance of graphic objects, alpha blending to combine graphic objects and maintain correct color perception, haloing to increase contrast between graphic objects and the background scene, interpolation for scaling and smoothing graphic objects, fogging to provide the perception of depth, fills in order to color graphic objects, merging with other graphics information and sources, and other functions.
- the Graphics Rendering Processor 400 can be optimized for input types, input negotiate, performance, security, transmission, storage, image quality, specific display characteristics, and other purposes.
- the Graphics Rendering Processor 400 can also be optimized for a color flat panel display 600.
- the Graphics Rendering Processor 400 processes the Graphics Array 260 or Optimized Graphics Array 330 by carrying out a graphics render command for each object or primitive in the array.
- Priority for vector primitive rendering is determined by the position of a vector primitive in the array, where the first primitive (or other predetermined value) has the highest priority. Priority can also be assigned based on the type of graphic object recognized by Recognition 240.
- the Graphics Rendering Processor 400 operates in the raster domain and applies anti-aliasing, texturing, alpha blending, haloing, interpolation, fogging, shading, fills, other rendering techniques, and combinations thereof, as it renders individual primitives.
- Display Data 530 contains formatted visual information ready for transmission to a display or other device (e.g., storage device).
- Display Data 530 can be a bit map formatted for a color flat panel display.
- Display Data 530 is transmitted over, for example, a pixel bus to a color flat panel Display 600 in a manner well known to those skilled in the art where it can be viewed by a person. Those skilled in the art will recognize, however, that any means of transmitting information from one location to another will operate in the present invention.
- a Display 600 receives as input Display Data 530.
- a Display 600 provides as output a Display Surface/Volume 630 which is a representation of Rendered Graphics 220.
- Display SurfaceNolume 630 represents the desired presentation of Rendered Graphics 220.
- the representation of Display SurfaceNolume 630 can be viewable information, transmitted information, stored information, or other appropriate form of information.
- a Display Surface/Volume 630 can be a cathode ray tube device, flat panel device, liquid crystal display device, projection device, holographic device, retinal projection device, storage device, printer, transmitter, or any other device or method for presenting, storing, transmitting, conveying, or making graphics information viewable, accessible, or usable.
- FIG. 7 there is shown an alternate embodiment 800 of the present invention for this purpose.
- Information Detection Processor 820 is a more generalized form of the Graphics Detection Processor 200.
- Encode Processor 830 in FIG. 7 is a more generalized form of the Encode Processor 300 described earlier.
- Information Processor 840 in FIG. 7 is a more generalized form of the Graphics Rendering Processor 400.
- Other Information 810 in FIG. 7 is a more generalized form of the Display Formatter 1100 (FIG. 10).
- Merge Processor 850 in FIG. 7 is a more generalized form of the Merge Processor 500 described herein.
- Information Storage/Transmission 860 in FIG. 7 is a more generalized form of the Display 600 of FIG. 6.
- FIG. 8 where there is shown an alternate embodiment 20 of the present invention represented by its major components.
- the block diagram of FIG. 8 represents an alternate embodiment of the invention shown in FIG. 7.
- the discussion of the Graphics Detection Processor 200 and of Encode Processor 300 is the same as that provided earlier with respect to FIG. 3 and 4, respectively, and, accordingly, will not be discussed again.
- the Graphics Processor 420 accepts as input a Graphics Array 260 or an Optimized Graphics Array 330.
- the Graphics Processor 420 provides as output Frame Buffer 430 which is a rendering of the graphics information contained within a Graphics Array 260 or an Optimized Graphics Array 330.
- Frame Buffer 430 can be a memory device for display systems that scan out of frame buffer memory, or a stream of information provided directly to Merge Processor 500 or Display 600 for display systems that employ a flow-through method.
- Frame Buffer 430 is appropriately formatted for a particular type of a graphics display.
- Frame Buffer 430 can contain any or all of the following types of information: bit map, texture map, raster graphics, vector graphics, holographics, and other graphics formats.
- the Graphics Processor 420 can perform certain graphics processing functions including anti-aliasing, texturing, alpha blending, haloing, interpolation, fogging, fills, merging with other graphics information and sources, and other functions.
- the Graphics Rendering Processor 1000 can be optimized for input types, input content, performance, security, transmission, storage, image quality, specific display characteristics, and other purposes.
- the Acquisition 135 accepts as input 110 imagery, video, graphics, or graphics commands.
- the Formatter 130 receives the information from Acquisition 135 and provides as output Frame Buffer 140.
- Frame Buffer 140 includes a rendering of the imagery, video, graphics, or graphics commands appropriately formatted for a graphics display.
- the Merge Processor 500 accepts as input rendered graphics in multiple frame buffers 1 through n (510 and 540), combines the contents of the frame buffers in Combine 520, and provides as output Display Data 530.
- Display Data 530 is a combined rendering of graphics from any or all frame buffers appropriately formatted for a graphics display (display data 530).
- the Merge Processor 500 provides maximum flexibility in combining graphics information from many sources for a graphics display.
- the Merge Processor 500 can perform other graphics functions including anti-aliasing, texturing, alpha blending, haloing, interpolation, fogging, fills, merging with other graphics information and sources, and other functions.
- the Merge processor 500 is an optional component of the present invention in accordance with the alternate embodiment.
- Display 600 for use in the alternate embodiment.
- the output, Display Surface/Volume 630 is a representation of Rendered Graphics 220 combined with input 110.
- Display 630 represents the desired presentation of Rendered Graphics 220 combined with input 110.
- FIG. 8 shows functionally an implementation of the present invention to solve the problem of displaying high-quality, anti-aliased color stroke symbology along with high-quality color raster video on a color flat panel display.
- the Graphics Detection Processor 200 detects the individual vectors provided by a legacy stroke (vector) video interface for each video frame.
- the Graphics Detection Processor 200 digitizes the horizontal and vertical deflection signals, color signals, intensity signals, symbology blanking signals and other signals from the stroke (vector) video using analog to digital converters to form digital samples of vectors.
- the direction of a vector is determined by comparing the digitized horizontal and vertical deflection signals in a digital sample of a vector to the digitized horizontal and vertical deflection signals in the previous digital sample of a vector.
- the start and end points of a vector are determined from changes in vector direction, from changes in color, from changes in intensity, from changes in draw rate, or from changes in other digitized signals in a digital sample of a vector.
- a change in vector direction is declared when a measured change in direction exceeds a static or dynamic threshold value. Changes in other vector measurements are declared in a similar manner.
- the length of a vector is determined from the distance between the start and end points.
- the intensity of a vector is determined from the digitized intensity signal in a digital sample of a vector and from the draw rate for a digital sample of a vector. A slower draw rate corresponds to a higher intensity for the vector.
- a vector primitive is formed by combining the start and end points, length, direction, color, draw rate, and intensity of a vector.
- Vector primitives are added to a vector (graphics) array 260 for each video frame of vectors and prioritized to be rendered on a color flat panel display 630.
- the beginning and end of a video frame of vectors is determined directly from stroke video signals or other synchronizing information, by detecting a vector primitive already in the vector (graphics) array 260, by a timer, or by other means.
- the Encode Processor 300 filters each vector in the vector array 260 to ensure that all vectors are of reasonable length, color, and intensity in order to optimize their appearance on the color flat panel display.
- the measured color for a vector primitive can be encoded as a color optimized for presentation on the color flat panel display and for other considerations like night vision equipment compatibility.
- the intensity of a vector primitive can be encoded to take into account the effects of draw rate or the desire to assign discrete intensity levels based on precedence or other criteria.
- the Encode Processor 300 can format information associated with each vector primitive in a manner optimized for the creation of a graphics rendering command. The output from the Encode Processor 300 is the optimized vector (graphics) array 330.
- the Graphics Rendering Processor 1000 is optimized for a color flat panel display 600.
- the Graphics Rendering Processor 1000 processes the optimized vector (graphics) array 330 by issuing a vector (graphic) render command to a Graphics Processor 400 for each vector primitive.
- Priority for vector primitive rendering is determined by the position of a vector primitive in the optimized vector (graphics) array 330, where the first vector primitive in the optimized vector (graphics) array 330 has the highest priority.
- the graphics processor operates in the raster domain and applies anti-aliasing, texturing, alpha blending, haloing, interpolation, fogging, and fills as it renders individual vector primitives.
- the output from the Graphics Rendering Processor 400 is rendered vectors (Frame Buffer) 430.
- the Display Formatter 1100 accepts input 110 analog raster video requiring minimal processing by Acquisition 135 for the purpose of rendering on the color flat panel display 630.
- Acquisition 135 can perform functions like analog to digital conversion, intensity and display size scaling, and other functions well understood by those skilled in the art.
- the output from the Formatter 130 is formatted raster video (Frame Buffer) 140.
- the Merge Processor 500 combines the rendered vectors (Frame Buffer) 530 from the Graphics Rendering Processor 400 with the formatted raster video (Frame Buffer) 140 from the Display Formatter 1100 in order to provide a more comprehensive display format to view.
- the output from Merge Processor 500 is Display Data 530.
- FIG. 12 shows functionally an implementation of the alternate embodiment 20 of the present invention to solve the problem of displaying high-quality, anti-aliased color stroke symbology along with high-quality color raster video on a color flat panel display.
- the present invention detects the individual vectors drawn by the stroke generator, for example, a Multipurpose Display Indicator (MDI) or display computer, with the Stroke Vector Detector. This function effectively creates the original symbology display list used by the stroke generator.
- MDI Multipurpose Display Indicator
- Detector the Stroke Vector Detector
- Stroke symbology vectors are then rendered and anti-aliased by Vector Rendering.
- This function takes advantage of off-the-shelf graphics rendering components using commercially available, state-of-the-art rendering algorithms.
- the combination of display list recreation and vector rendering by Stroke Vector Detector and Stroke Vector Rendering, respectively, is a novel component of the present invention. Indeed, the present invention is capable of displaying stroke symbology with far greater quality and accuracy than any currently-available stroke generator is capable of providing it.
- Raster video is digitized and scaled by Raster Digitize/Scaling. This function is equivalent to that found in most flat panel displays and displays processing systems with analog video. Rendered stroke symbology and digitized raster video are merged in Merge. Finally, the merged video is displayed on the Display.
- the stroke vector detection function performed by the Stroke Module are shown in FIG. 13. Deflection and bright up signals (Stroke Video) are switched by Stroke Switching. Stroke Switching also provides a repeater function for Stroke Video.
- the selected Stroke Video input is digitized by the Analog To Digital Converter at a, for example, 48 MHz sample rate. This sample rate corresponds to a minimum of 4 samples per display increment rendered at the fastest writing rate, or about 7 samples per pixel on the display.
- the digitization of stroke signals provides an effective symbology resolution of at least, for example, 4800 by 4800 pixels with a 12 bit A/D, and possibly, for example, 9500 by 9500 pixels with a 13 bit A/D.
- Vector Recognition determines the start and end points, color, and intensity of each vector within Stroke Video symbology and places this vector information into Display List. Symbology quality is maximized by ensuring that the same point is used for the end point of one vector and the start point of the next vector in a vector sequence, like that in an arc. Variability in symbology writing rates are automatically accounted for with this method. In addition, variability in draw rate can be used to modify symbology intensity is required.
- the Stroke Vector Detector can be contained in a single programmable logic device, array, or application specific integrated circuit (ASIC).
- ASIC application specific integrated circuit
- Stroke symbology vectors are then rendered and anti-aliased from the Display List by Vector Rendering under control from the Display Control module described herein (not shown).
- the Frame Buffer is filled with high-quality, anti-aliased symbology ready for display. Stroke symbols drawn first in a frame are typically the highest priority symbols and could be rendered accordingly through alpha blending and other graphics functions.
- the Stroke Module enables the present invention to render stroke symbology with unprecedented accuracy and quality. This is possible because Vector (Graphics) Rendering enables the present invention to process stroke symbology with anti-aliasing using an array of 16 by 16 color sub-pixels per display pixel. Visually, this translates to the ability to render each stroke symbology pixel within, for example, a 9500 by 9500 pixel virtual display registered to a, for example, 600 by 600 pixel actual display. These levels of pixel and sub-pixel processing resolution are necessary in order to display the highest possible quality symbology.
- Raster Module The functions performed by the Raster Module are shown in FIG. 15. Raster video signals (Raster Video) are switched by Raster Switching. Raster Switching also provides a repeater function for Raster Video. The selected Raster Video input is digitized by the Analog To Digital Converter. A Sync Detect and phase locked loop (PLL) apparatus (not shown) performs synchronization detection on the incoming Raster Video and generates Raster Module clocks.
- Raster Video Raster Video
- Raster Switching also provides a repeater function for Raster Video.
- the selected Raster Video input is digitized by the Analog To Digital Converter.
- a Sync Detect and phase locked loop (PLL) apparatus (not shown) performs synchronization detection on the incoming Raster Video and generates Raster Module clocks.
- PLL phase locked loop
- a commercially-available, off-the-shelf integrated circuit and low cost field memory can be used to perform vertical/temporal de-interlacing, image scaling, and gamma correction.
- the present invention can be also adapted to provide a growth provision for zoom in a manner that will become apparent to those skilled in the art.
- the Display Controller (not shown) performs processing functions and controls all modules of the present invention with plenty of available processing and throughput overhead.
- One important task performed by this module is the execution of built in tests.
- Another important task performed by this module is accessing the Display List created by the Stroke Module in order to form graphics commands for Vector (Graphics) Rendering on the Stroke Module.
- a Liquid Crystal Display (LCD) assembly suitable for use in the present invention can be, for example, a high-resolution, state-of-the-art design with a 600 by 600 color pixel Active Matrix Liquid Crystal Display (AMLCD) having 120 color groups per inch.
- AMLCD Active Matrix Liquid Crystal Display
- Other raster-type displays can be used as will become apparent to those skilled in the art.
- the present invention has multiple applications, including raster scanned or caligraphically-generated cathode ray tube (CRT) displays, X-Y plotters, numerically-controlled machines, robotics, etc.
- CTR cathode ray tube
- a video display generator retrieves the digital data from memory to create a digital signal.
- the display generator then creates an analog signal from the digital signal with a digital-to-analog (D/A) converter.
- the analog signal is then amplified and displayed as a video image.
- D/A digital-to-analog
- a digital map analog or digital interface can be added as an additional raster input in order to enable the system to overlay symbology onto digital map video.
- the resulting combination of the symbology with digital map is then provided through an analog or digital repeater.
- a digital map rendering module can be embedded in order to enable the system to overlay symbology onto an internally rendered digital map.
- the resulting combination of symbology with digital map is then provided through an analog or digital repeater.
- An interface to a digital map mass memory unit can also be added.
- the modular design of the present invention along with available processing and throughput overhead provide for maximum flexibility for future growth. For example, a modification to the Status/Control interface or the addition of a new data interface, along with Display Controller software modifications, would enable the system to become a smart display.
- a smart display enables raster symbology to be rendered in manner optimized for the display.
- Other functions and features such as zoom, alpha blending, and rendering stroke symbology with halos can also be accommodated in a manner that will become apparent to those skilled in the art.
- text from books or other printed media can be converted to other fonts or even other languages.
- Graphics can be re-rendered and their quality improved upon.
- Two-dimensional pictures of three-dimensional objects can be converted to three-dimensional virtual reality images.
- a system for converting books to electronic media can completely re-render all information in the book with the target media in mind.
- a single video source can be used to drive multiple display types, even simultaneously, where rendering is performed to optimize the video presentation for each display type.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Description
Claims (9)
- A method of detecting graphic objects comprising a plurality of vectors, wherein the graphics objects comprise graphics primitives, vector primitives, or combinations of graphics primitives and vector primitives, that have been created for a first display, the graphic objects representing an image, and re-rendering the graphic objects in a form adapted for a different display (600), the method is characterized by the steps of:receiving formatted graphics (220) from a source, the formatted graphics having been formatted for the first display;detecting (200) a plurality of graphic objects within the formatted graphics (220), wherein the detecting step comprises detecting a start point and an end point of individual vectors from the plurality of vectors by sampling (230) the individual vectors, individual vectors being distinguished through a change in direction of the graphic objects, a change in color of the graphic objects, a change in intensity of the graphic objects, or a change in draw rate of the graphic objects, wherein a change in direction, color, intensity or draw rate of each individual vector is detected (200) by comparing a measured change in direction, color, intensity or draw rate and a predetermined threshold value of direction, color, intensity or draw rate ;creating a display list (260, 330) from the plurality of graphic objects that represents the image based on the formatted graphics (220); andre-rendering (400, 1000) the plurality of graphic objects comprising sub-pixel positioning of the start point and end point of the vectors represented in the display list (260, 330) while retaining the same characteristics for the graphic objects that were detected in a manner formatted for the different display (600).
- The method of Claim 1 , further comprising the step of displaying the re-formatted graphic objects on the different display (600).
- The method of Claim 1, further comprising the step of storing the re-formatted graphic objects in a frame buffer (430, 510) for subsequent display on the different display (600).
- The method of Claim 1, further comprising the step of transmitting display data (530) representing re-formatted graphic objects for use by the different display (600).
- The method of Claim 1, wherein the display list (260, 330) comprises a plurality of vector primitives of a portion of the image to be displayed (630) that are compatible with a graphics processor (420) particular to the different display (600).
- The method of Claim 1, wherein the step of re-rendering (400, 1000) the plurality of graphic objects comprises anti-aliasing techniques, alpha blending techniques, haloing techniques, interpolation techniques or fogging techniques.
- The method of Claim 1, further comprising the step of merging (500) the re-rendered plurality of graphic objects (430, 510) with graphics information (140, 540) from sources other than the first display or different display (600).
- The method of Claim 7, further comprising the step of creating a vector primitive for each individual vector by combining the start point and the end point and a plurality of characteristics of each individual vector, wherein the plurality of characteristics of each individual vector comprise length, direction, color, draw rate, and intensity of each individual vector and further comprising the step of adding the vector primitive to the display list (260, 330) in a predetermined order.
- The method of Claim 1, further comprising the step of optimizing (300) the display list (260) and creating an optimized display list (330) for the purpose of enhancing the displayed image (630) for the different display (600) and the step of prioritizing the plurality of graphic objects comprising ranking the graphic objects in the order in which they are to be rendered within the display list (260, 330).
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US9113598P | 1998-06-29 | 1998-06-29 | |
US91135P | 1998-06-29 | ||
PCT/US1999/014874 WO2000000951A1 (en) | 1998-06-29 | 1999-06-29 | Method of and system for detecting and rendering of graphic elements |
Publications (2)
Publication Number | Publication Date |
---|---|
EP1092217A1 EP1092217A1 (en) | 2001-04-18 |
EP1092217B1 true EP1092217B1 (en) | 2005-09-14 |
Family
ID=22226257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP99932125A Expired - Lifetime EP1092217B1 (en) | 1998-06-29 | 1999-06-29 | Method of and system for detecting and rendering of graphic elements |
Country Status (7)
Country | Link |
---|---|
EP (1) | EP1092217B1 (en) |
JP (1) | JP2002519793A (en) |
KR (1) | KR100576973B1 (en) |
CA (1) | CA2335889A1 (en) |
DE (1) | DE69927269T2 (en) |
IL (1) | IL140611A0 (en) |
WO (1) | WO2000000951A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11210981B2 (en) | 2017-10-23 | 2021-12-28 | Bae Systems Plc | Method for operating an image generator, an image generator, a method for generating digital colour image data and a display system |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6330023B1 (en) * | 1994-03-18 | 2001-12-11 | American Telephone And Telegraph Corporation | Video signal processing systems and methods utilizing automated speech analysis |
US7002593B2 (en) * | 2001-11-01 | 2006-02-21 | Eastman Kodak Company | Method for reducing the power used by emissive display devices |
AUPS134202A0 (en) | 2002-03-25 | 2002-05-09 | Canon Kabushiki Kaisha | System and method for optimizing halftoning printer performance |
US7352374B2 (en) * | 2003-04-07 | 2008-04-01 | Clairvoyante, Inc | Image data set with embedded pre-subpixel rendered image |
ATE383627T1 (en) | 2004-11-19 | 2008-01-15 | Ericsson Telefon Ab L M | METHOD AND DEVICE FOR GENERATING THREE-DIMENSIONAL IMAGES |
US11481834B2 (en) * | 2006-07-07 | 2022-10-25 | Joseph R. Dollens | Method and system for managing and displaying product images with progressive resolution display with artificial realities |
CN101842813A (en) * | 2007-05-22 | 2010-09-22 | 天宝导航有限公司 | Handling raster image 3D objects |
TWI386863B (en) * | 2008-10-03 | 2013-02-21 | Alpha Imaging Technology Corp | Multi-media processor, hand-held electrical communication device and image processing method thereof |
CN113641357B (en) * | 2021-06-01 | 2024-05-17 | 中国航空工业集团公司沈阳飞机设计研究所 | Avionics cabin display software performance optimization method |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5748947A (en) * | 1993-02-25 | 1998-05-05 | Ricoh Company, Ltd. | Information processing system for switchably processing data associated with straight line vectors |
US5969699A (en) * | 1996-10-08 | 1999-10-19 | Kaiser Aerospace & Electronics Company | Stroke-to-stroke |
-
1999
- 1999-06-29 CA CA002335889A patent/CA2335889A1/en not_active Abandoned
- 1999-06-29 WO PCT/US1999/014874 patent/WO2000000951A1/en active IP Right Grant
- 1999-06-29 KR KR1020007015043A patent/KR100576973B1/en not_active IP Right Cessation
- 1999-06-29 DE DE69927269T patent/DE69927269T2/en not_active Expired - Fee Related
- 1999-06-29 JP JP2000557449A patent/JP2002519793A/en active Pending
- 1999-06-29 EP EP99932125A patent/EP1092217B1/en not_active Expired - Lifetime
- 1999-06-29 IL IL14061199A patent/IL140611A0/en not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11210981B2 (en) | 2017-10-23 | 2021-12-28 | Bae Systems Plc | Method for operating an image generator, an image generator, a method for generating digital colour image data and a display system |
Also Published As
Publication number | Publication date |
---|---|
JP2002519793A (en) | 2002-07-02 |
IL140611A0 (en) | 2002-02-10 |
DE69927269D1 (en) | 2005-10-20 |
WO2000000951A1 (en) | 2000-01-06 |
KR100576973B1 (en) | 2006-05-10 |
EP1092217A1 (en) | 2001-04-18 |
WO2000000951A9 (en) | 2000-10-26 |
CA2335889A1 (en) | 2000-01-06 |
KR20010085276A (en) | 2001-09-07 |
DE69927269T2 (en) | 2006-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA1207927A (en) | Three-dimensional display system | |
US5909219A (en) | Embedding a transparency enable bit as part of a resizing bit block transfer operation | |
US7253820B2 (en) | Method and system for dynamically allocating a frame buffer for efficient anti-aliasing | |
EP3129974B1 (en) | Gradient adjustment for texture mapping to non-orthonormal grid | |
EP0813721B1 (en) | Hardware architecture for image generation and manipulation | |
US7675526B2 (en) | System and method for multi-sampling primitives to reduce aliasing | |
JP3375638B2 (en) | Anti-aliasing device and method for automatic high-speed alignment of horizontal and vertical edges to target grid | |
EP1306810A1 (en) | Triangle identification buffer | |
US7884825B2 (en) | Drawing method, image generating device, and electronic information apparatus | |
KR20050010846A (en) | Adaptive scaling of video signals | |
EP1092217B1 (en) | Method of and system for detecting and rendering of graphic elements | |
WO2001029817A1 (en) | Improving image display quality by adaptive subpixel rendering | |
US6496160B1 (en) | Stroke to raster converter system | |
JP4129444B2 (en) | Method and system for providing a usable image on a high resolution display when a 2D graphics window is utilized with a 3D graphics window | |
US6597365B1 (en) | Indicating device with and without antialiasing | |
US20010048771A1 (en) | Image processing method and system for interpolation of resolution | |
US6867778B2 (en) | End point value correction when traversing an edge using a quantized slope value | |
US6718072B1 (en) | Image conversion method, image processing apparatus, and image display apparatus | |
US6529196B1 (en) | Efficient stroking of vectors with arbitrary endpoints | |
JP3000855B2 (en) | Character graphic processing device and information processing device | |
JP3493745B2 (en) | Drawing device | |
US5305431A (en) | Method and system for rendering polygons on a raster display | |
EP1306811A1 (en) | Triangle identification buffer | |
JPS62235690A (en) | Painting method for graphic |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20001219 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): BE DE FR GB IT LU NL |
|
17Q | First examination report despatched |
Effective date: 20030210 |
|
GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
GRAS | Grant fee paid |
Free format text: ORIGINAL CODE: EPIDOSNIGR3 |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): BE DE FR GB IT LU NL |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: NL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20050914 Ref country code: IT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT;WARNING: LAPSES OF ITALIAN PATENTS WITH EFFECTIVE DATE BEFORE 2007 MAY HAVE OCCURRED AT ANY TIME BEFORE 2007. THE CORRECT EFFECTIVE DATE MAY BE DIFFERENT FROM THE ONE RECORDED. Effective date: 20050914 Ref country code: BE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20050914 |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: FG4D |
|
REF | Corresponds to: |
Ref document number: 69927269 Country of ref document: DE Date of ref document: 20051020 Kind code of ref document: P |
|
NLV1 | Nl: lapsed or annulled due to failure to fulfill the requirements of art. 29p and 29m of the patents act | ||
ET | Fr: translation filed | ||
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: GB Payment date: 20060505 Year of fee payment: 8 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: FR Payment date: 20060605 Year of fee payment: 8 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20060630 Year of fee payment: 8 |
|
PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
26N | No opposition filed |
Effective date: 20060615 |
|
GBPC | Gb: european patent ceased through non-payment of renewal fee |
Effective date: 20070629 |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: ST Effective date: 20080229 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: DE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20080101 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: GB Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20070629 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: LU Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20060629 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: FR Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20070702 |
|
P01 | Opt-out of the competence of the unified patent court (upc) registered |
Effective date: 20230525 |