IP Library Granted Patent US 7,558,816
Granted Patent B2
US 7,558,816 · App. 09/992,064 · Granted Jul 7, 2009

Methods and apparatus for performing pixel average operations

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,558,816
App. No.
09/992,064
Granted
Jul 7, 2009
Kind
B2
Abstract

According to the invention, a process for averaging two pixel values is disclosed. In one step, an instruction is decoded. A plurality of first operands is loaded from a first input register. A plurality of second operands is loaded from a second input register. An average of one of the plurality of first operands and one of the plurality of second operands is produced. The average is stored in an output register.

Claims (65)

1. A method for averaging two pixel values, comprising:

decoding a single machine code instruction comprising an address for a first input register, an address for a second input register, an address for an output register, an op code indicating a function to perform, and a rounding factor;

loading a plurality of first operands from the first input register;

loading a plurality of second operands from the second input register;

producing an average, based on the op code, of one of the plurality of first operands and one of the plurality of second operands, wherein the rounding factor indicates which of a plurality of rounding algorithms to use in producing the average, the plurality of rounding algorithms comprising:

a first rounding algorithm able to produce a change in the average; and

second rounding algorithm able to produce a change in the average; and

storing the average in the output register.

2. The method of claim 1 , further comprising determining how many fields are in each of the first and second input registers.

3. The method of claim 1 , wherein the producing the average comprises:

producing a first intermediate result by adding one of the plurality of first operands to one of the plurality of second operands; and

producing the average by shifting the first intermediate result to the right by one binary digit.

4. The method of claim 1 , wherein the producing the average comprises:

producing a first intermediate result by adding one of the plurality of first operands, one of the plurality of second operands and the rounding factor; and

producing the average by shifting the first intermediate result to the right by one binary digit.

5. The method of claim 1 , further comprising rounding the average before storing the average.

6. The method of claim 1 , further comprising:

evaluating the rounding factor; and

adding a value to the average.

7. The method of claim 6 , wherein the value is one of zero and one.

8. A method for avenging two pixel values, comprising:

decoding a single machine code instruction indicating an address for a first input register, an address for a second input register, an address for an output register, an op code indicating a function to perform, and a rounding factor;

loading a first operand from an A 1 field of the first input register;

loading a second operand from a B 1 field of the second input register;

producing an average, based on the op code, of the first operand and the second operand, wherein the rounding factor indicates which of a plurality of rounding algorithms to use in producing the average, the plurality of rounding algorithms comprising:

a first rounding algorithm able to produce a change in the average; and

a second rounding algorithm able to produce a change in the average; and

storing the average in a C 1 field of the output register.

9. The method of claim 8 , wherein the instruction is one of a plurality of instructions in a long instruction word.

10. The method of claim 8 , further comprising determining how many fields are in each of the first and second input registers.

11. The method of claim 8 , wherein the producing an average comprises:

producing a first intermediate result by adding one of the plurality of first operands to one of the plurality of second operands; and

producing the average by shifting the first intermediate result to the right by one binary digit.

12. The method of claim 8 , wherein the producing an average comprises:

producing a first intermediate result by adding one of the plurality of first operands, one of the plurality of second operands and the rounding factor; and

producing the average by shifting the first intermediate result to the right by one binary digit.

13. The method of claim 8 , further comprising:

evaluating the rounding factor; and

adding a value to the average.

14. The method of claim 13 , wherein the value is one of zero and one.

15. The method of claim 8 , wherein the first input register comprises a plurality of fields.

16. The method of claim 8 , further comprising rounding the average before storing the average.

17. The method of claim 8 , further comprising:

loading a third operand from an A 2 field of the first input register;

loading a fourth operand from a B 2 field of the second input register;

producing a second average of the third operand and the fourth operand; and

storing the second average in a C 2 field of the output register.

18. A pixel averaging apparatus, comprising

a first input register comprising a plurality of first fields;

a second input register comprising a plurality of second fields;

a rounding factor indicated by a single machine code instruction;

a plurality of average modules respectively coupled to the first and second fields, the modules configured to perform an averaging function indicated by an op code in the single machine code instruction; and

an output register comprising a plurality of third fields, wherein:

the third fields are respectively coupled to the plurality of average modules, and

the rounding factor affects how the plurality of average modules round results to produce an average,

wherein:

the single machine code instruction comprises an address for the first input register, an address for the second input register, an address for the output register, the op code, and the rounding factor; and

the rounding factor indicates which of a plurality of rounding algorithms to use in producing the average, the plurality of rounding algorithms comprising:

a first rounding algorithm able to produce a change in the average; and

a second rounding algorithm able to pproduce a change in the average.

19. The pixel averaging apparatus of claim 18 , wherein the average module comprises:

a plurality of adders respectively coupled to the first and second fields; and

a plurality of shifters respectively coupled to the plurality of adders.

20. The pixel averaging apparatus of claim 18 , wherein the rounding factor causes at least one of rounding-up or rounding-down by the plurality of average modules.

21. The pixel averaging apparatus of claim 18 , wherein the rounding factor is added to the first and second fields in the average module.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037304/0183 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2001
From: SAULSBURY, ASHLEY; RICE, DANIEL S.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 012326/0202 →