Methods and apparatus for improving read/modify/write...

Computer graphics processing and selective visual display system – Computer graphic processing system – Interface

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C345S520000, C711S155000

Reexamination Certificate

active

06226017

ABSTRACT:

§ 1. BACKGROUND OF THE INVENTION
§ 1.1 Field of the Invention
The present invention concerns read, modify and write operations which may be used, for example, when blending images. For example, the present invention may concern blending a first image, such as a character(s) for example, with a second image.
§ 1.2. Related Art
§ 1.2.1 Composting Images
Images, such as bitmap images, JPEG images, GIF images, etc., for example, may be combined into a single display frame to be rendered on a display device. Separate images may be rendered on separate, distinct, sections of the display frame. Often, however, rendering more than one image on a common section of the display frame is desired. In such instances, one or more foreground images may be rendered over a background image. Potential sources of foreground and background images are introduced in § 1.2.1.1 below. Then, various known methods of compositing images are introduced in §§ 1.2.1.2 through 1.2.1.4 below.
§ 1.2.1.1 Image Sources and Communicating Images from their Sources
In a personal computing system, the background (or second or remote) image may be stored in a frame buffer on a video driver card, while a foreground (or first or local) image may be available closer to the means for performing the modification, such as a central processing unit for example. In most Pentium-based computers and in the Apple Power Macintosh computer, a peripheral component interconnect (or “PCI”) local bus is used to transfer data between hardware devices, adapters, and other bus backplanes. An AGP bus may be similarly used. The PCI bus may be coupled with the host CPU and main memory through a bridge device that controls the data transfers between the CPU, cache, and main memory.
§ 1.2.1.2 Sprite Operations and their Perceived Limitations
“Sprites” may be thought of as foreground images to be composited over a background image or background images. As shown in
FIG. 1
, sprites
110
, each of which may be thought of as a picture with an irregular shape, possibly with transparent holes, that can be moved on the screen and which has a depth, may be rendered on a background image
120
to produce a composite image
130
in an off-screen buffer storage area
140
. The contents of the off-screen buffer storage area
140
may then be combined as a frame
150
rendered on a display. (See, e.g., the electronic article Herman Rodent, “Animation in Win32
,” Microsoft Developer Network
, at techart.chm::html/msdn_anim32.htm (Feb. 1, 1994).
§ 1.2.1.3 BitBlt Operations and their Perceived Limitations
As a further example of compositing a foreground image on a background image, referring to
FIG. 2
, character information
210
, which may be a bitmap, may be combined with a background image
220
stored in a display frame buffer storage area
220
to generate a composite image
240
. A block transfer (or “BLT”) function may be used to modify and transfer bitmaps. The BitBlt function, supported by Windows NT® operating system from Microsoft Corporation of Redmond Wash., may be used to transfer bits from a rectangle on a source device to a rectangle, having the same dimensions, on a destination device. The bitmap character information
210
includes individual character bitmaps
212
, also referred to as glyphs. Notice that each glyph
212
has a foreground color
214
and a background color
216
. Notice, further, that in the composite image, the feature
222
of the background image
220
is obscured by both the foregrounds
214
of the glyphs
212
, as well as the backgrounds
216
of the glyphs
212
. Unfortunately, displaying only the foreground (that is, only the character information)
214
of the glyphs
212
may be desired in many instances.
There are some techniques for performing transparency operations with bitmaps. (See, e.g., the article, Ron Gery, “Bitmaps with Transparency,”
Microsoft Developer's Network
, techart.chm::/html/msdn_transblt.htm (Jun. 1, 1992). In this regard, there are “alpha-blt” operations which permit a first image and second image to be blended together based on a blend coefficient (also referred to as “alpha”). Unfortunately, if the second image is stored away from where these operations take place (e.g., the CPU), which is often the case, it must be read (e.g., by the CPU) which may be a relatively slow operation. Further, bitblt and alpha-blt operations are performed on a pixel basis, which is not appropriate for newly developed high resolution rendering systems which operate on a pixel sub-component level. (See, e.g., U.S. patent application Ser. No. 09/240,653, filed on Jan. 29, 1999 and incorporated herein by reference.)
§ 1.2.1.4 Combining Images Using a Blend Coefficient
Blending is a way to combine two samples using their color components, as weighted by their blend coefficient (or alpha) values. Alpha blending allows colors (or materials or textures) on a surface to be blended, with transparency, onto another surface. For example, blending may combine a pixel's (or pixel group's, or bitmap's) color with that of a pixel stored in a video frame buffer storage area at a corresponding location. The blending depends on the alpha value of the fragment and that of the corresponding currently stored pixel. For example, the DXCompositeOver function uses the alpha value of a source (or first) sample to combine colors of the source (or first) sample with that of a destination (or second) sample. More specifically, with the DXCompositeOver function, the source (or first) sample is scaled by alpha, the destination (or second) sample is scaled by the inverse of alpha, and the two values are added. (See, e.g., the article, “Compositing Helper Functions,”
Microsoft Developers Network
, dxmedia.chm::/dxmedia/help/dxt/reference/helpers/composit_h elpers.htm, p. 3.) On the other hand, with the DXCompositeUnder function, the destination (or second) sample is scaled by alpha, the source (or first) sample is scaled by the inverse of alpha, and the two values are added. Id. at pp. 3-4.
In some embodiments, the alpha information may be represented by a whole number from 0 to 255, where a 255 source alpha indicates that the source pixel is to overwrite the destination pixel (that is, the source pixel is 100 percent opaque) and a 0 source alpha indicates that the destination pixel is to be left unchanged (that is, the source pixel is 100 percent transparent). A value between (and not including) 0 and 255 means that the destination pixel should be read and combined with the source pixel to generate a new pixel. The new pixel is then to be written to the destination image to replace the original destination pixel.
For example,
FIG. 3
illustrates a blending operation in which characters
312
have a foreground portion
314
with an alpha equal to 255 and a background portion
316
with an alpha equal to 0. Thus, when the glyph
310
is blended with the background image
330
, the backgrounds (i.e., non-character pixels)
316
of the glyphs
312
do not obscure the feature
322
of the background image. That is, only the foreground portions (i.e., character pixels)
314
of the glyphs
312
overwrite the background image
330
in the resulting image
340
.
Before two images can be blended, pixel(s) from each of the images must be read. Once the pixel(s) from each of the images are combined to generate a modified pixel, the modified pixel is written to a destination storage. Section 1.2.1.4.1 below describes a conventional method of reading pixel(s) from two images to be blended, modifying them, and writing them to a destination storage area.
§ 1.2.1.4.1 Piecewise Read-Modify-Write and its Perceived Shortcomings
FIG. 4
is a high level flow diagram of a method
400
for blending a first (or local) image (stored (temporally) close to the CPU which will perform the blending operation) with a second (or remote) image (stored (temporally) further from the CPU). In this method
400
, it is assumed that the second (or remote) image is stored in a video frame buffer. First, as shown in act
410
, a pixel (or pixels, in a “

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

Methods and apparatus for improving read/modify/write... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Methods and apparatus for improving read/modify/write..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Methods and apparatus for improving read/modify/write... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2571332

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