Frame buffer reconfiguration during graphics processing...

Computer graphics processing and selective visual display system – Computer graphics processing – Graph generating

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06288722

ABSTRACT:

FIELD OF THE INVENTION
The present invention relates to computer graphics systems, and more specifically, to computer graphics systems that render primitives utilizing at least two frame buffers and a z-buffer.
BACKGROUND OF THE INVENTION
Computer graphics systems are frequently used to model a scene having three-dimensional objects and display the scene on a two-dimensional display device such as a cathode ray tube or liquid crystal display. Typically, the three-dimensional objects of the scene are each represented by a multitude of polygons (or primitives) that approximate the shape of the object. Rendering the scene for display on the two-dimensional display device is a computationally intensive process. It is therefore frequently a slow process, even with today's microprocessors and graphics processing devices.
Rasterization, which is part of the rendering operation, is the process which converts the simple, geometric description of a graphics primitive into pixels for display. A typical primitive, as shown in
FIG. 1A
, is a triangle T
1
. Other area or surface primitives conventionally are converted into one or more triangles prior to rasterization. The triangle T
1
is represented by the (x,y,z) coordinates and other properties (such as colors and texture coordinates) at each of its vertices. The (x,y) coordinates of a vertex tell its location in the plane of the display. The z-coordinate tells how far the vertex is from the selected view point of the three-dimensional scene. Rasterization may be divided into four tasks: scan conversion, shading, visibility determination, and frame buffer update.
Scan conversion utilizes the (x,y) coordinates of the vertices of each triangle to compute a set of pixels, S, which cover the triangle.
Shading computes the colors of the pixels within the set S. There are numerous schemes for computing colors, some of which involve computationally intensive techniques such as texture mapping.
Moreover, the rasterization process may include lighting calculations that simulate the effects of light sources upon the surfaces of the triangles of the scene. Typically, the position of each triangle is identified by (x,y,z) coordinates of a set of three vertices, with each vertex having a reflectance normal vector with the vertex at its origin. The reflectance normal vectors of each triangle, along with information about the position of the light sources, are used to calculate the effect of the light sources on the color values determined during the shading calculations for each triangle.
Visibility determination utilizes the z-coordinate, also called the depth value, of each pixel to compute the set of pixels, S
v
(a subset of S), which are “visible” for the triangle. The set S
v
will differ from the set S if any of the pixels in set S cover the previously rasterized triangles whose z values are closer to the selected viewpoint. Thus, for each triangle in the scene, a pixel is “visible” if it is in the set S
v
or “hidden” if it is the set s but not in the set S
v
. Moreover, a triangle is “all visible” if the set S
v
is identical to set S, “partially hidden” if the set S
v
is not identical to set S and set S
v
is not empty, or “all hidden” if set S
v
is empty. For example,
FIG. 1B
shows two triangles, T
1
and T
2
, wherein triangle T
1
is partially hidden by triangle T
2
.
Rasterization is completed by writing the colors of the set of visible pixels S
v
to a frame buffer for display, and writing the z-coordinate of the set of visible pixels S
v
to a z-buffer.
The values stored in the frame buffer are converted to analog RGB (Red-Green-Blue) signals which are then fed to the display monitor. The data stored in the frame buffer is transferred to the display monitor at the monitor refresh rate, which typically exceeds 60 times per second and approaches 85 times per second on more expensive monitors.
One problem encountered by graphics processing systems is update of scene representations from one frame to the next. If the frame buffer is modified while it is being displayed on the monitor, the monitor displays portions of an earlier frame and portions of the current frame. This clearly causes confusing and distracting pictures. Therefore, three-dimensional graphics processing systems use double buffering to realize a smooth transition from one frame to the next. With this scheme the current frame is displayed on the monitor using one buffer (usually called the front buffer) and the next frame is written into another frame buffer (usually called the back buffer). When the next frame is ready, the buffer containing the next frame is switched to be the displayed frame buffer. The buffer that was switched out is used in the creation of the following frame. In the absence of two buffers, image tears would appear and objects would occur in screen positions corresponding to both the previous frame and the current frame. Many higher-end machines use hardware double buffering, while personal computers typically use software double buffering. In software double buffering, the buffer containing the next frame is quickly copied, as one contiguous block, into the displayed frame buffer area.
The main drawback of double buffering is the cost of the second frame buffer. As screen sizes and pixel depths increase, this drawback becomes more pronounced. For example, for a 1280×1024 pixel screen with 24-bit RGB (Red-Green-Blue color representation), the frame buffer contains 1.25 million pixels and uses 3.75 MB of memory. For a screen with HDTV resolution (1920×1035 pixels), the frame buffer uses approximately 6MB of memory. This extra memory can add significant cost to a typical graphics workstation.
In order to avoid the cost of the second frame buffer, existing solutions split the first frame buffer into two buffers and use fewer bits per pixel. For example a 24-bit RGB frame buffer will be partitioned into two 12-bit RGB frame buffers. Obviously this reduces the fidelity of the image. Present solutions that offer double buffering on a 24-bit graphics card split the 24 bits into two 12-bit banks for the complete life of a graphics application. Even still images are displayed with 12-bit RGB. This is unnecessary when objects are stationary. Double buffering is needed most in a dynamic environment when objects are moving. Consequently, there is a need for a double buffering mechanism that provides a higher quality image while using less memory.
SUMMARY OF THE INVENTION
Accordingly, the present invention allows the frame buffer to be dynamically reconfigurable during the processing of graphics data. Lower resolution double buffer mode is used when objects are moving, and higher resolution single buffer mode is used when objects are stationary. The user gets the benefits of double buffering while objects are in motion, and the benefit of a higher quality image when objects are stationary. No image tears appear in this case because the graphics processing program redraws the exact same image when motion ceases, however the image has more bits per pixel. The visual effect is that the picture becomes clearer when motion ceases. The graphics processor quickly switches frame buffer modes during execution, and is not constrained to specifying one mode at the start of processing.
Another aspect of the present invention comes from the realization that consecutive frames in a smooth double buffered sequence are not likely to be very different. Thus a differential coding scheme is used to perform double buffering without using two complete frame buffers. This results in substantial savings in memory over conventional double-buffering schemes.
The invention may be summarized as follows. There are three interpretations for pixels in the frame buffers. The first is where pixels in the front and back buffer have the same number of bits per pixel. This interpretation is similar to existing solutions. In a second interpretation, the pixel in the front buffer is coded as a differential from the pixel in the back buffer. In the third interpretation, a pixel h

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Frame buffer reconfiguration during graphics processing... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Frame buffer reconfiguration during graphics processing..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Frame buffer reconfiguration during graphics processing... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2548294

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.