US5929872A - Method and apparatus for multiple compositing of source data in a graphics display processor - Google Patents
Method and apparatus for multiple compositing of source data in a graphics display processor Download PDFInfo
- Publication number
- US5929872A US5929872A US08/823,004 US82300497A US5929872A US 5929872 A US5929872 A US 5929872A US 82300497 A US82300497 A US 82300497A US 5929872 A US5929872 A US 5929872A
- Authority
- US
- United States
- Prior art keywords
- data
- block
- blt
- source
- alu
- 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
- 238000000034 method Methods 0.000 title claims abstract description 15
- 238000012163 sequencing technique Methods 0.000 claims abstract description 17
- 230000004044 response Effects 0.000 claims abstract description 10
- 230000006870 function Effects 0.000 claims description 38
- 238000013500 data storage Methods 0.000 claims description 20
- 230000008878 coupling Effects 0.000 claims description 8
- 238000010168 coupling process Methods 0.000 claims description 8
- 238000005859 coupling reaction Methods 0.000 claims description 8
- 239000000203 mixture Substances 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 2
- 230000001133 acceleration Effects 0.000 abstract description 6
- 238000002156 mixing Methods 0.000 abstract description 6
- 238000001914 filtration Methods 0.000 abstract description 3
- 230000009471 action Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 6
- 238000012935 Averaging Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 108010076504 Protein Sorting Signals Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
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
- 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 computer graphics systems, and more particularly to block transfers (Blt) and raster operations in computer graphics systems.
- bit block transfer (often referred to as a "bitBlt", “pixel Blt” or simply a “Blt”) transfers a block of data from one portion of a graphics display memory to another.
- a series of source addresses are generated along with a corresponding series of destination addresses.
- Source data are read from the source addresses, and then written to the destination addresses.
- a Blt operation may also perform a logical operation on the source data and other operand(s) (often referred to as a raster operation, or rop).
- Blts can be performed by a host processor by way of Blt software
- many computer systems include specialized hardware (such as a graphics processor) for performing such functions, along with other graphics operations.
- the particular hardware that undertakes Blt and related operations is commonly referred to as a Blt engine.
- the Blt operation is first set-up by loading a number of registers with parameter information for the Blt, such as the source and destination locations, and the type of rop.
- the Blt engine is then activated by a write start command.
- Blt engines typically include a Blt address generator for generating display memory addresses.
- a rop in conjunction with a Blt operation is typically performed by coupling source and/or destination data to one or more logic circuits which perform a logical operation according to a rop command previously loaded in the set up registers.
- logic circuits which perform a logical operation according to a rop command previously loaded in the set up registers.
- arithmetic addition or subtraction has been implemented in the Blt data path in U.S. Pat. No. 4,933,878 issued to Guttag et al. on Jun. 12, 1990.
- basic Blt operations include four general steps: reading source data from the source location to a temporary data store, optionally reading destination or other operand data from its location, performing the rop on the data, and writing the result to the destination location.
- a graphics BLT engine includes a hardware "accumulate BLT" function that stores the resulting values from a Blt operation for use in a subsequent Blt operation.
- the data write to a destination location in memory from the resulting Blt operation can be inhibited.
- the hardware function allows data read from the memory to be binary shifted prior to any rop.
- a general arithmetic logic unit receives source data and other operand(s) in an initial Blt operation, performs an operation thereon, and stores the resulting data in a storage circuit.
- the data of the storage circuit may be used as an operand.
- a method is provided to accomplish a general pixel blending function for such applications as motion compensation and alpha blending.
- An advantage of the present invention is that it provides a Blt operation that can accelerate pixel blending functions.
- Another advantage of the present invention is that it provides a Blt operation that can accelerate motion compensation in an MPEG decoding scheme.
- Another advantage of the present invention is that it provides a Blt operation that can accelerate general pixel interpolation functions.
- FIG. 1 is a block diagram illustrating a Blt accelerator according to a preferred embodiment of the present invention.
- FIGS. 2a-d are block schematic diagrams illustrating conventional Blt operations of the Blt accelerator set forth in FIG. 1.
- FIGS. 3a-d are block schematic diagrams illustrating the accumulate Blt operations of the Blt accelerator set forth in FIG. 1.
- FIG. 4 is a detailed block diagram illustrating an arithmetic logic unit according to one embodiment of the present invention.
- FIGS. 5a and 5b are flow diagrams illustrating methods for standard and accelerated Blt operations according to a preferred embodiment.
- FIG. 1 sets forth, generally, a Blt accelerator apparatus according to the present invention.
- the Blt accelerator is designated by the general reference character 10 and is shown coupled to a host bus 12 and a display memory 14.
- the Blt accelerator 10 is one portion of a graphics processor integrated circuit, with the display memory 14 being directly accessible by the Blt accelerator 10.
- the Blt accelerator 10 includes a number of control registers 16, and can be conceptualized as further including a sequencing engine 18, an arithmetic logic unit (ALU) 20, and a data storage unit 22.
- the registers 16 receive Blt operation control values from the host bus 12.
- the sequencing engine 18 is coupled to registers 16, to the display memory 14 by way of a display memory address/control bus 24, and to the ALU 20 by way of Blt control signals 26.
- the ALU 20 receives input operands that originate from a number of different system locations. Operands can be received directly from the host bus 12 via a host bus interface 28, from the display memory 14 by way of a display memory data bus 30, or from the data storage unit 22.
- the ALU 20 generates output values by performing an arithmetic, logic, or other combinational operation on its respective operands. The nature of the operation is determined by the values on the Blt control signals 26.
- the output of the ALU 20 is stored in the data storage unit 22 and/or coupled to the host bus interface 28 or display memory data bus 30.
- the data storage unit 22 receives data from ALU 20 for use in subsequent cycles of the Blt accelerator 10 operation.
- the data storage unit 22 could be registers, latches, or some other memory/store configuration.
- the Blt accelerator 10 includes two different operating modes: a standard Blt and an "accumulate" Blt.
- the standard Blt operating mode is illustrated by FIGS. 2a-d.
- the standard Blt begins by the host loading the desired parameters of the Blt operation into selected control registers 16 (not shown in FIGS. 2a-d), such as the location of the source data, the location of the destination data, and the type of rop be performed. The Blt operation is then started with a write to a start register.
- FIGS. 2a-b illustrate a standard Blt using only source data.
- the source data are situated in the display memory 14 and the rop is " ⁇ SOURCE" (i.e., the complement of the source data are written to the destination).
- the sequencing engine 18 generates a series of source addresses (SOURCE ADDRESS) on the display memory address bus 24 and accompanying control signals (CTRL) 26, resulting in a sequence of source data being placed on the display memory data bus 30.
- the source data are coupled to the ALU 20, which functions as a conventional ROP engine, and generates output values that are (in this case) the logical complement of the received input values.
- the resulting ALU 20 output (shown as ROP S) is input to the data storage unit 22.
- ROP S the data storage unit 22.
- FIG. 2b once the ROP operation is complete for one block of data (enough to fill the data storage unit, or the entire remaining source region, if smaller than the size of the storage unit 22), the result is written to the destination location.
- the sequencing engine 18 generates a series of destination addresses (along with control signals for the display memory 14 and storage unit 22, including a write enable WE signal) and the ROP S data stored in the data storage unit 22 are placed on the display memory data bus 30 and written to the display memory 14 at the destination address location.
- the storage unit 22 is used to take advantage of the efficiencies of accessing display memory in a sequential or "burst" fashion, i.e. accessing display memory by a series of destination addresses. As is well known in the art, an equivalent Blt operation could be achieved by alternating source and destination accesses, but at considerable cost of efficiency.
- FIGS. 2c-d illustrate a standard Blt that uses both the source and destination data.
- the sequencing engine 18 upon receiving the start command, the sequencing engine 18 generates a sequence of source display memory addresses (SOURCE ADDRESS) on the display memory address bus 24 with accompanying control signals (CTRL) 26.
- CTR control signals
- the display memory 14 places source data (SOURCE DATA) on the display memory data bus 30.
- the source data are read into the ALU 20, which performs no operation on the data, and simply passes the source data (S) on to the data storage unit 22, which stores the data from the ALU 20. At this point, the source data have been read into the Blt accelerator 10 and stored.
- the Blt operation continues as the sequencing engine 18 generates a second series of display memory addresses and control signals 26 for the destination data.
- the destination data are read and input into the ALU 20.
- the sequencing engine 18 generates a series of data storage unit control signals 26 which read the stored source data as second operands to the ALU 20.
- the ALU 20 performs the predetermined rop (logical AND in this example) on the source and destination data to generate new destination data (shown as S ROP D).
- S ROP D new destination data
- the new destination data are written back to the display memory data bus 30 using a read-modify-write operation.
- the output data S ROP D could be written back to the storage element until the entire block is done, then the block could be written back to the destination address.
- each Blt operation uses the Blt storage unit 22 only within the operation; its contents are not preserved, or needed, for subsequent Blt operations.
- the sequencing engine 18 is provided with source and destination addresses at the outset of a Blt command, and operand data comes from one or both of these addresses.
- FIGS. 3a-d are provided to illustrate the novel accumulate Blt functions of the Blt accelerator 10.
- the source data or the resulting output data from a previous Blt operation can be retained for use in a subsequent Blt operation.
- this capability gives rise to what will be referred to herein as "INITIATE” and "CONTINUE" Blts.
- INITIATE no data from a previous standard or accumulate Blt is used in the operation.
- the two conventional Blt functions described above in conjunction with FIGS. 2a-d would be considered INITIATE Blts.
- Blt data saved from the previous standard or accumulate Blt is used as an operand in generating the Blt output.
- the accumulate Blt can also be a "WRITE" or "NO -- WRITE" accumulate Blt.
- WRITE resulting accumulate Blt data are written to the host or display memory.
- NO -- WRITE writes to the latter are suppressed.
- the INITIATE/CONTINUE and WRITE/NO -- WRITE parameters are established when each accumulate Blt operation is initially set up by writing Blt parameter data to control registers 16.
- Prior art Blts could be conceptualized as permitting only INITIATE/WRITE Blts, typically with more limited rop capabilities than the general purpose arithmetic operations permitted by the present invention.
- FIGS. 3a-d a sequence of three accumulate Blt operations are set forth.
- the three accumulate Blt operations accomplish a pixel blend operation according to a preferred embodiment.
- FIG. 3a illustrates an INITIATE, NO -- WRITE accumulate Blt.
- FIG. 3b illustrates a CONTINUE, NO WRITE accumulate Blt.
- FIGS. 3c-d illustrate a CONTINUE, WRITE accumulate Blt, completing the operation.
- CONTINUE accumulate Blts utilize data from a previous Blt operation.
- the INITIATE, NO -- WRITE Blt of FIG. 3a establishes stored values. Referring now to FIG.
- FIG. 2a in that it is a complete Blt operation in response to one self-contained host command, and following the operation of FIG. 3a, the Blt accelerator 10 is left in a state which a subsequent host-initiated operation can make use of.
- the operation of FIG. 2a is but one portion of a Blt, and is automatically followed by the operation of FIG. 2b. Following the operation of FIG. 2b the state of the storage unit 22 is typically not preserved.
- FIG. 3a performs no arithmetic operation on the S1 data, for blending operations the data would be right-shifted, to generate fractional values of the original source data (e.g. 1/2, 1/4, 1/8, etc.), as shown later in one of the methods of the present invention.
- FIG. 3b the CONTINUE, NO -- WRITE accumulate Blt operation is illustrated.
- the sequencing engine 18 generates a second series of source addresses (shown as SRC ADDRESS2) resulting in a second set of source data (S2) being read from the display memory 14 as first operands into the ALU 20.
- SRC ADDRESS2 a second series of source addresses
- S2 second set of source data
- FIG. 3b is a CONTINUE type Blt
- the data from the previous Blt operation (the operation of FIG. 3a) are simultaneously read from the data storage unit 22 into the ALU 20 as second operands.
- the ALU 20 performs a predetermined operation on the data and the resulting output (shown as a function of S1 and S2) is stored once again (i.e., accumulated) in the data storage unit 22.
- each new operand would be right shifted to generate the appropriate fractional value thereof, as discussed later.
- the sequencing engine 18 generates a third series of source addresses (SRC ADDRESS3) on the display memory address bus 24 producing a third set of source data (S3) on the display memory data bus 30.
- the data serve as operands for the ALU 20. Because the Blt operation is a CONTINUE operation, the stored output from the previous Blt operation are coupled as to the ALU 20 as second operands.
- the ALU 20 performs a predetermined operation on the data, and the output (shown as a function of S3 and the previous output) is stored in the data storage unit 22. Unlike the previous NO -- WRITE cases of FIGS. 3a and 3b, the operation of FIGS. 3c-d is a WRITE accumulate Blt. As set forth in FIG. 3d, the sequencing engine 18 generates a series of destination addresses (DEST ADDRESS) and write enable signals for the display memory 14, while coupling the data in the data storage unit 22 to the display memory data bus 30. In this manner, the values and output from step 3c are written to the destination location in the display memory 14.
- DEST ADDRESS destination addresses
- step 3c are written to the destination location in the display memory 14.
- FIG. 4 a detailed block schematic diagram illustrates portions of the ALU 20 and data storage unit 22 according to one embodiment of the present invention.
- the data storage unit 22 is a first-in-first-out buffer (FIFO) that is 32-bits wide and 16 words deep.
- the host data or display memory data are received by a data input MUX 32.
- the data input MUX 32 is responsive to a source -- select control signal generated by the Blt engine that varies according to the Blt set up parameters. For example, in a screen-to-screen Blt, source -- select remains high, and only data from the display memory are passed.
- source -- select is low as source data from the host bus interface 28 are clocked in into the FIFO 22, and then goes high to clock in the destination data, if needed, from the display memory 14. In this manner input data are coupled from either the host bus 12 or display memory 14 to a logical shift circuit 34, such as a barrel shifter.
- the logical shift circuit 34 of an arithmetic logic unit (ALU) 35 receives a 32-bit data input and can shift each of the four 8-bit bytes therein to the left or to the right according to a SHIFT -- ctrl signal, sign extending and truncating within each 8-bit byte.
- ALU arithmetic logic unit
- the output of the shift circuit 34 is coupled to an ADDER/rop circuit 36 within the ALU 35.
- the ADD/rop circuit 36 of the preferred embodiment has two pixel inputs 38a and 38b. Inputs 38a receive values from the shift circuit 34 and input 38b receives values from the storage unit 22, or a null constant, by way of an INITIATE/CONTINUE MUX 40.
- the ADD/rop circuit 36 executes standard rops, plus signed and unsigned addition and subtraction with saturation.
- a sign -- op control signal indicates whether the incoming data are signed or not.
- An opcode indicates which arithmetic or logical function is to be performed by the ADD/rop circuit 36. These operations can be performed between 8-bit, 16-bit and 32-bit values.
- the particular implementation of such ADD/rop circuits 36 is well understood in the art, and so will not be discussed in further detail.
- the output of the ADD/rop circuit 36 is written back to the data storage unit 22 and optionally to a destination address or host interface, depending on the predetermined write parameters.
- the INITIATE/CONTINUE MUX 40 controls use of accumulated data from previous Blts.
- the INITIATE/CONTINUE MUX 40 is responsive to a INITIATE/CONTINUE signal which, like the source -- select signal, depends upon the Blt set up parameters.
- the INITIATE/CONTINUE signal is high and suppresses the stored data from being coupled to the ALU 20, and providing a NULL operand in its place.
- FIG. 4 sets forth one shift circuit 34 in a particular location, this implementation should not be construed as limiting the scope of the present invention. Shifter circuits or other arithmetic operations could be situated at both inputs to the ALU circuit 35 and/or at the output of the ALU circuit 35, the latter being suitable for maintaining precision in a series of arithmetic operations.
- FIG. 4 utilizes a FIFO 22
- data stored in the FIFO are being clocked out to the ALU data path 20, the resulting ALU output data are being clocked into the FIFO 22.
- One skilled in the art would recognize that other storage elements could be employed.
- a method for a standard Blt operation is set forth in a flow diagram form.
- the flow diagram is divided into a left column and a right column.
- the left column illustrates steps performed by software (typically in a graphics driver) and the right column illustrates action performed by accelerator hardware.
- the software establishes the Blt parameters (step 100).
- a start command is then sent to initiate the Blt hardware (step 102).
- the accelerator hardware reads source data into the Blt engine (step 104), a rop is performed on the source data (step 106) and the data are written to a destination location (step 108).
- FIG. 5b Use of the preferred embodiment of the present invention is illustrated in FIG. 5b.
- the method set forth is designed to accomplish a given pixel acceleration function by consecutive ALU operations on several source operands.
- FIG. 5b includes a left column, illustrating steps that are performed in software, and a right column, illustrating actions executed the Blt accelerator.
- the software begins by programming the Blt accelerator for an INITIATE/NO WRITE operation on S1 data (step 200). As previously described, in the preferred embodiment this is accomplished by a host write to control registers.
- the Blt accelerator operation is then started by the software sending a START command (step 202).
- Hardware dependent actions follow once the Blt accelerator is activated.
- first source data are read into the Blt engine (204) using an INITIATE Blt-however unlike the standard Blt this is a NO -- WRITE operation.
- An ALU operation is optionally performed on the source data (206).
- the results of the first ALU operation are stored in a Blt storage unit (208).
- the software either sets up the second source data parameters for a CONTINUE/NO -- WRITE Blt (step 212), or continues on to a CONTINUE/WRITE Blt operation.
- the Blt accelerator is started once more by the software sending a start command (step 214).
- the Blt hardware performs a subsequent ALU operation on the previously stored source data (216).
- the ALU operation is performed with the second source data as an operand.
- the Blt is a CONTINUE Blt
- the results of the previous ALU operation are coupled from the Blt storage unit as an operand (a return to action 208).
- the hardware actions 216 followed by 218 accomplish the CONTINUE/NO -- WRITE Blt operation.
- the software repeats steps 210-214 (and the resulting accelerator actions 214-208) until the last operand is to be used.
- the software programs the last operand parameters and sets up a CONTINUE/WRITE Blt (step 218).
- the CONTINUE/WRITE Blt is started by the software sending a start command (step 220).
- the Blt accelerator performs a final ALU operation on the stored data and the last operand (214), and the resulting output is written (222).
- the CONTINUE/WRITE Blt is accomplished by steps 216 and 222.
- Embodiments of the method according to the present invention may also be described by a series of single function calls to a graphics chip driver.
- the function call parameters specify the set up information for the accumulate Blt.
- An example of such a function call is set forth below:
- AccBlt (Source Base, Source Address, Destination Base, Destination Address, Size X, Size Y, Direction X, Direction Y, Shift, opcode, INIT/CONT?, Signed?, Write?).
- the initial parameters of the AccBlt function are the same as standard Blt parameters.
- “Source Base” indicates the origin of the source data (host or display memory). In the event the display memory is selected, "Source Address” will point to the starting point of the source data. Similarly, the "Destination Base” and “Destination Address” indicate the destination location.
- "Size X” and “Size Y” define the rectangular extents of the Blt. "Direction X” and “Direction Y" control the operation of Blt address counters for increasing or decreasing the address count.
- An arithmetic shift parameter is specified by the "Shift" field which provides a right shift operation of -1 to 3 bits in the preferred embodiment.
- the INIT/CONT? field indicates whether the accumulate Blt is of the INITIATE or CONTINUE type as previously described.
- the "Signed?" field indicates whether the incoming source data includes a sign bit.
- the "Write?" field enables or disables a write to the destination location. For the particular embodiment of FIG. 3, it follows that the Source and Destination Base values determine the sequence of the source -- select signal, the INIT/CONT? value will determine the INITIATE/CONTINUE signal sequence, the Signed? value is used to derive the sign -- op signal, and SHIFT -- ctrl is determined according to the Shift value.
- the AccBlt operation of the present invention provides acceleration to a variety of functions beyond those provided by conventional Blt accelerators.
- One particular function that can be accelerated by the present invention is the motion compensation portion of an MPEG or other video decoding operation. Motion compensation involves the averaging of two or more blocks of data, and the addition of signed data, to generate an output block of data.
- Embodiment 1- Motion Compensation, Reference+Difference
- An example method accomplishing one type of a motion compensation decoding operation follows. This method is appropriate for a block generated as the sum of one reference block plus a difference block, such as a block in an MPEG P-frame.
- the output block for one color component is an eight by eight block of 8-bit pixels, with an upper left corner located at ADDRout in the display memory, computed in this example for one reference frame and a block of difference data.
- the source (reference) block is located at ADDRref1.
- An array of difference values is provided by the host. Two AccBlt function calls are used.
- the first function call loads the eight by eight block at location ADDRref1 into the FIFO 22.
- the second function call takes difference pixel data from the host.
- the source data received are assumed to be encoded in signed 8-bit values, and so ranges in value from -128 to +127.
- the source data must be left shifted by one bit to provide difference values from -256 to +254:
- the difference data and the reference data from the previous AccBlt are saturation added, and then output to the eight by eight block beginning at 8, 24.
- Embodiment 2--Motion Compensation Multiple References+Differences
- a block from a first reference frame beginning at ADDRref1 is shifted right by one bit as it is read into the FIFO. This generates reference block 1 values, divided by two for the averaging of block 1 with block 2.
- the values of a second block beginning at ADDRref2 are divided by two and added to the values in the FIFO.
- the result, the average of the first frame block and second frame block is stored back in the FIFO.
- the difference block is added to the average of the first and second reference blocks, and then output to an output block.
- Pseudocode Main routine for a P block (one reference block+one difference block)
- Alpha blending effects could be accomplished by reading and logical-shifting pixel values from one region to generate a first blend component.
- the first blend component can be added to a second blend component by subsequent reads, shifts and adds from a second region.
- the acceleration of pixel value interpolation also follows from the above example as, for example, to low pass filter an upscaled image generated by replication.
- a first set of data may be read into the FIFO with a one bit right shift operation to halve the input values (with a INITIATE type AccBlt).
- a second AccBlt call with a source address offset by one pixel and the same one bit shift, will produce interpolated values. Linear interpolation between four values naturally follows. Further, with a wider range of shift options, more advanced filtering effects (for texture filtering as an example) may also be accomplished. One skilled in the art would recognize that the methods for such operations follow from the examples set forth herein.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
Description
______________________________________ AccBlt (Source Base: Display Memory Source Address: ADDRrefl Destination Base: null Destination Address: null Size X: 8 Size Y: 8 Right Shift: 0 (no shift) INIT: 1(INITIATE type AccBlt) Signed?: 0 (input data not signed) Write?: 0 (no write of output) opcode: null) ______________________________________
______________________________________ AccBlt (Source Base: Host Source Address: 0, 0 Destination Base: display memory Destination Address: ADDRout Size X: 8 Size Y: 8 Right Shift: -1 (left shift by one bit) INIT: 0(CONTINUE type AccBlt) Signed?: 1 (input data is signed) Write?: 1 (output written to opcode: Add with saturation) destination) ______________________________________
Claims (9)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/823,004 US5929872A (en) | 1997-03-21 | 1997-03-21 | Method and apparatus for multiple compositing of source data in a graphics display processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/823,004 US5929872A (en) | 1997-03-21 | 1997-03-21 | Method and apparatus for multiple compositing of source data in a graphics display processor |
Publications (1)
Publication Number | Publication Date |
---|---|
US5929872A true US5929872A (en) | 1999-07-27 |
Family
ID=25237539
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US08/823,004 Expired - Lifetime US5929872A (en) | 1997-03-21 | 1997-03-21 | Method and apparatus for multiple compositing of source data in a graphics display processor |
Country Status (1)
Country | Link |
---|---|
US (1) | US5929872A (en) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6091432A (en) * | 1998-03-31 | 2000-07-18 | Hewlett-Packard Company | Method and apparatus for improved block transfers in computer graphics frame buffers |
WO2001013335A1 (en) * | 1999-07-30 | 2001-02-22 | Microsoft Corporation | Methods and apparatus for improving read/modify/write operations |
US20030206174A1 (en) * | 1998-11-09 | 2003-11-06 | Broadcom Corporation | Graphics display system with line buffer control scheme |
US20040056864A1 (en) * | 1998-11-09 | 2004-03-25 | Broadcom Corporation | Video and graphics system with MPEG specific data transfer commands |
US20050122335A1 (en) * | 1998-11-09 | 2005-06-09 | Broadcom Corporation | Video, audio and graphics decode, composite and display system |
US6952217B1 (en) * | 2003-07-24 | 2005-10-04 | Nvidia Corporation | Graphics processing unit self-programming |
US20070260458A1 (en) * | 2006-02-24 | 2007-11-08 | Samsung Electronics Co., Ltd. | Subword parallelism method for processing multimedia data and apparatus for processing data using the same |
CN100395734C (en) * | 2000-09-28 | 2008-06-18 | 英特尔公司 | Mechanism and method for enabling two graphics controllers to each execute a portion of single block transform (blt) in parallel |
CN100454375C (en) * | 2001-09-07 | 2009-01-21 | 株式会社半导体能源研究所 | Luminous device and its driving method |
US7991049B2 (en) | 1998-11-09 | 2011-08-02 | Broadcom Corporation | Video and graphics system with video scaling |
US8063916B2 (en) | 2003-10-22 | 2011-11-22 | Broadcom Corporation | Graphics layer reduction for video composition |
US8199154B2 (en) | 1998-11-09 | 2012-06-12 | Broadcom Corporation | Low resolution graphics mode support using window descriptors |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4763251A (en) * | 1986-01-17 | 1988-08-09 | International Business Machines Corporation | Merge and copy bit block transfer implementation |
US4837563A (en) * | 1987-02-12 | 1989-06-06 | International Business Machine Corporation | Graphics display system function circuit |
US4845656A (en) * | 1985-12-12 | 1989-07-04 | Kabushiki Kaisha Toshiba | System for transferring data between memories in a data-processing apparatus having a bitblt unit |
US4933878A (en) * | 1988-07-07 | 1990-06-12 | Texas Instruments Incorporated | Graphics data processing apparatus having non-linear saturating operations on multibit color data |
US5437011A (en) * | 1985-12-03 | 1995-07-25 | Texas Instruments Incorporated | Graphics computer system, a graphics system arrangement, a display system, a graphics processor and a method of processing graphic data |
US5479605A (en) * | 1992-09-28 | 1995-12-26 | Fujitsu Limited | Raster operation apparatus for executing a drawing arithmetic operation when windows are displayed |
US5487051A (en) * | 1990-11-23 | 1996-01-23 | Network Computing Devices, Inc. | Image processor memory for expediting memory operations |
US5533185A (en) * | 1991-11-27 | 1996-07-02 | Seiko Epson Corporation | Pixel modification unit for use as a functional unit in a superscalar microprocessor |
-
1997
- 1997-03-21 US US08/823,004 patent/US5929872A/en not_active Expired - Lifetime
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5437011A (en) * | 1985-12-03 | 1995-07-25 | Texas Instruments Incorporated | Graphics computer system, a graphics system arrangement, a display system, a graphics processor and a method of processing graphic data |
US4845656A (en) * | 1985-12-12 | 1989-07-04 | Kabushiki Kaisha Toshiba | System for transferring data between memories in a data-processing apparatus having a bitblt unit |
US4763251A (en) * | 1986-01-17 | 1988-08-09 | International Business Machines Corporation | Merge and copy bit block transfer implementation |
US4837563A (en) * | 1987-02-12 | 1989-06-06 | International Business Machine Corporation | Graphics display system function circuit |
US4933878A (en) * | 1988-07-07 | 1990-06-12 | Texas Instruments Incorporated | Graphics data processing apparatus having non-linear saturating operations on multibit color data |
US5487051A (en) * | 1990-11-23 | 1996-01-23 | Network Computing Devices, Inc. | Image processor memory for expediting memory operations |
US5533185A (en) * | 1991-11-27 | 1996-07-02 | Seiko Epson Corporation | Pixel modification unit for use as a functional unit in a superscalar microprocessor |
US5479605A (en) * | 1992-09-28 | 1995-12-26 | Fujitsu Limited | Raster operation apparatus for executing a drawing arithmetic operation when windows are displayed |
Non-Patent Citations (6)
Title |
---|
"Bit Block Transfer Graphics Configuration", COMPAQ DESKPRO386/25e /20e Personal Computer--Technical Reference Guide, pp. 85-216, Mar. 12, 1991. |
Bit Block Transfer Graphics Configuration , COMPAQ DESKPRO386/25e /20e Personal Computer Technical Reference Guide , pp. 85 216, Mar. 12, 1991. * |
Computer Graphics Principles and Practice (Second Edition), Foley, Vandam, Feiner and Hughes, Addison Wesley Publishing Company, Inc., 1993, pp. 56 60. * |
Computer Graphics Principles and Practice (Second Edition), Foley, Vandam, Feiner and Hughes, Addison-Wesley Publishing Company, Inc., 1993, pp. 56-60. |
Programmer s Guide to the EGA, VGA, and Super VGA Cards (Third Edition), Richard F. Ferraro, pp. 707 712. * |
Programmer's Guide to the EGA, VGA, and Super VGA Cards (Third Edition), Richard F. Ferraro, pp. 707-712. |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6091432A (en) * | 1998-03-31 | 2000-07-18 | Hewlett-Packard Company | Method and apparatus for improved block transfers in computer graphics frame buffers |
US7057622B2 (en) * | 1998-11-09 | 2006-06-06 | Broadcom Corporation | Graphics display system with line buffer control scheme |
US7991049B2 (en) | 1998-11-09 | 2011-08-02 | Broadcom Corporation | Video and graphics system with video scaling |
US7209992B2 (en) | 1998-11-09 | 2007-04-24 | Broadcom Corporation | Graphics display system with unified memory architecture |
US20040056864A1 (en) * | 1998-11-09 | 2004-03-25 | Broadcom Corporation | Video and graphics system with MPEG specific data transfer commands |
US9575665B2 (en) | 1998-11-09 | 2017-02-21 | Broadcom Corporation | Graphics display system with unified memory architecture |
US8848792B2 (en) | 1998-11-09 | 2014-09-30 | Broadcom Corporation | Video and graphics system with video scaling |
US20050231526A1 (en) * | 1998-11-09 | 2005-10-20 | Broadcom Corporation | Graphics display system with anti-aliased text and graphics feature |
US8199154B2 (en) | 1998-11-09 | 2012-06-12 | Broadcom Corporation | Low resolution graphics mode support using window descriptors |
US20030206174A1 (en) * | 1998-11-09 | 2003-11-06 | Broadcom Corporation | Graphics display system with line buffer control scheme |
US20050122335A1 (en) * | 1998-11-09 | 2005-06-09 | Broadcom Corporation | Video, audio and graphics decode, composite and display system |
US9077997B2 (en) | 1998-11-09 | 2015-07-07 | Broadcom Corporation | Graphics display system with unified memory architecture |
US7911483B1 (en) | 1998-11-09 | 2011-03-22 | Broadcom Corporation | Graphics display system with window soft horizontal scrolling mechanism |
US6226017B1 (en) * | 1999-07-30 | 2001-05-01 | Microsoft Corporation | Methods and apparatus for improving read/modify/write operations |
WO2001013335A1 (en) * | 1999-07-30 | 2001-02-22 | Microsoft Corporation | Methods and apparatus for improving read/modify/write operations |
CN100395734C (en) * | 2000-09-28 | 2008-06-18 | 英特尔公司 | Mechanism and method for enabling two graphics controllers to each execute a portion of single block transform (blt) in parallel |
CN100454375C (en) * | 2001-09-07 | 2009-01-21 | 株式会社半导体能源研究所 | Luminous device and its driving method |
US6952217B1 (en) * | 2003-07-24 | 2005-10-04 | Nvidia Corporation | Graphics processing unit self-programming |
US8063916B2 (en) | 2003-10-22 | 2011-11-22 | Broadcom Corporation | Graphics layer reduction for video composition |
US20070260458A1 (en) * | 2006-02-24 | 2007-11-08 | Samsung Electronics Co., Ltd. | Subword parallelism method for processing multimedia data and apparatus for processing data using the same |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5778250A (en) | Method and apparatus for dynamically adjusting the number of stages of a multiple stage pipeline | |
US5274760A (en) | Extendable multiple image-buffer for graphics systems | |
JP3860859B2 (en) | Computer graphics system with high performance primitive clipping preprocessing | |
US6144365A (en) | System and method for performing blending using an over sampling buffer | |
US8194086B2 (en) | Memory system and method for improved utilization of read and write bandwidth of a graphics processing system | |
US6784888B2 (en) | Method and apparatus for executing a predefined instruction set | |
US6924808B2 (en) | Area pattern processing of pixels | |
JP3056514B2 (en) | Image display device and external storage device used therefor | |
US5929872A (en) | Method and apparatus for multiple compositing of source data in a graphics display processor | |
JPH0224784A (en) | Computer display device and method | |
EP0821302B1 (en) | Register set reordering for a graphics processor based upon the type of primitive to be rendered | |
JPS62288984A (en) | Video display unit | |
US6417848B1 (en) | Pixel clustering for improved graphics throughput | |
US7791601B2 (en) | Efficient object storage for zone rendering | |
US5790125A (en) | System and method for use in a computerized imaging system to efficiently transfer graphics information to a graphics subsystem employing masked span | |
US6950108B2 (en) | Bandwidth reduction for rendering using vertex data | |
US6778188B2 (en) | Reconfigurable hardware filter for texture mapping and image processing | |
US6259462B1 (en) | Method and apparatus for texture blending in a video graphics circuit | |
JP3191159B2 (en) | Apparatus for processing graphic information | |
US5414524A (en) | Image rendering clip registers | |
US5668941A (en) | Optimum implementation of X-Y clipping on pixel boundary | |
US5883642A (en) | Programmable retargeter method and apparatus | |
US5856831A (en) | Clamping system and method for clamping floating point color values from a geometry accelerator in a computer graphics system | |
US20030164842A1 (en) | Slice blend extension for accumulation buffering | |
US20030169279A1 (en) | Reconfigurable pixel computation unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ALLIANCE SEMICONDUCTOR CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:GREENE, SPENCER H.;REEL/FRAME:008481/0881 Effective date: 19970318 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FEPP | Fee payment procedure |
Free format text: PAT HOLDER CLAIMS SMALL ENTITY STATUS, ENTITY STATUS SET TO SMALL (ORIGINAL EVENT CODE: LTOS); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
SULP | Surcharge for late payment |
Year of fee payment: 7 |
|
AS | Assignment |
Owner name: ACACIA PATENT ACQUISITION CORPORATION, CALIFORNIA Free format text: OPTION;ASSIGNOR:ALLIANCE SEMICONDUCTOR CORPORATION;REEL/FRAME:019246/0001 Effective date: 20070430 |
|
AS | Assignment |
Owner name: ACACIA PATENT ACQUISTION CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ALLIANCE SEMICONDUCTOR CORPORATION;REEL/FRAME:019628/0979 Effective date: 20070628 |
|
AS | Assignment |
Owner name: SHARED MEMORY GRAPHICS LLC, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ACACIA PATENT ACQUISITION LLC;REEL/FRAME:022892/0469 Effective date: 20090601 |
|
FEPP | Fee payment procedure |
Free format text: PAT HOLDER NO LONGER CLAIMS SMALL ENTITY STATUS, ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: STOL); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 12 |
|
SULP | Surcharge for late payment |
Year of fee payment: 11 |