IP Library Granted Patent US 7,231,632
Granted Patent B2
US 7,231,632 · App. 10/826,773 · Granted Jun 12, 2007

System for reducing the number of programs necessary to render an image

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,231,632
App. No.
10/826,773
Granted
Jun 12, 2007
Kind
B2
Abstract

A system for reducing memory and computational requirements of graphics operations. The system provides techniques for combining otherwise individual operations to apply filters to images. A combined filter emerging from the combination spares the processor time and the creation of an entire intermediary image. The system further provides for application of these techniques in many contexts including where the operations are fragment programs in for a programmable Graphic Processing Unit.

Claims (25)

1. A method of determining if a first node in a graph may be combined with a second node in said graph, the method comprising the steps of;

determining whether an output buffer of said first node will comprise data that is similar to an input texture of said second node;

examining each program line in said second node to determine if it negates the possibility of combining nodes; and

editing program code to replace any first-node-texture references with a single pixel, where a first-node-texture reference is a reference in the second node's code to a texture that would have been created by the first node.

2. The method of claim 1 wherein the step of examining each program line in said second node to determine if it negates the possibility of combining nodes comprises the step of renaming local variables.

3. The method of claim 1 wherein the step of examining each program line in said second node to determine if it negates the possibility of combining nodes comprises the step of renaming textures.

4. The method of claim 1 wherein the step of examining each program line in said second node to determine if it negates the possibility of combining nodes, comprises the step of analyzing each said program line to determine if there are dependent texture references.

5. The method of claim 1 wherein the step of examining each program line in said second node to determine if it negates the possibility of combining nodes, comprises the step of analyzing each said program line to determine if there is a reference to a texture that depends upon the output of said first node and said reference is located at coordinates stored in a register.

6. The method of claim 1 wherein the step of determining whether the output buffer of said first node will comprise data that is similar to the input texture of said second node, comprises the step of determining if the image pixels represented by the output of said first node are the same as the image pixels represented by the input of said second node.

7. A method of determining if a first fragment program may be combined with a second fragment program, where each said program is for processing a single graphic element, the method comprising the steps of:

determining whether an output of the first fragment program represents relevant pixels that are the same pixels represented by an input of the second fragment program;

examining each program line in said second program to determine if it negates the possibility of combining said two programs; and

editing program code to replace at least one texture reference with a register reference.

8. The method of claim 7 wherein the step of examining each program line in said second program to determine if it negates the possibility of combining programs comprises the step of renaming local variables.

9. The method of claim 7 wherein the step of examining each program line in said second program to determine if it negates the possibility of combining programs comprises the step of renaming textures.

10. The method of claim 7 wherein the step of examining each program line in said second program to determine if it negates the possibility of combining programs, comprises the step of determining if there are dependent texture references.

11. The method of claim 7 wherein the step of examining each program line in said second program to determine if it negates the possibility of combining programs, comprises the step of determining if there is a texture reference that is dependent upon an output of said first program and said texture reference is located at coordinates stored in a register.

12. A computer-readable medium having computer executable instructions for performing the steps of:

determining whether an output buffer of said first node will comprise data that is similar to an input texture of said second node;

examining each program line in said second node to determine if it negates the possibility of combining nodes; and

editing program code to replace any first-node-texture references with a single pixel, where a first-node-texture reference is a reference in the second node's code to a texture that would have been created by the first node.

13. A computer-readable medium having computer executable instructions for performing the steps of:

determining whether an output of the first fragment program represents relevant pixels that are the same pixels represented by an input of the second fragment program;

examining each program line in said second program to determine if it negates the possibility of combining said two programs; and

editing program code to replace at least one texture reference with a register reference.

Assignments (2)
CHANGE OF NAME Recorded May 11, 2007
From: APPLE COMPUTER, INC.
To: APPLE INC.
Reel/Frame 019265/0961 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2004
From: HARPER, JOHN
To: APPLE COMPUTER, INC.
Reel/Frame 015372/0771 →