IP Library Granted Patent US 7,636,095
Granted Patent B2
US 7,636,095 · App. 10/236,089 · Granted Dec 22, 2009

Pixel delta interpolation method and apparatus

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,636,095
App. No.
10/236,089
Granted
Dec 22, 2009
Kind
B2
Abstract

A method for rendering an object including receiving a pixel tile representing a portion of a primitive to be rendered, determining attributes of a reference pixel within the pixel tile, and determining the attributes of neighboring pixels within the pixel tile based on barycentric differences relative to the reference pixel is disclosed. A circuit for calculating at least one attribute of an object to be rendered includes an initial calculation circuit providing full precision reference pixel attribute data in response to a pixel tile that defines at least a portion of the object; and a derivative circuit, operatively coupled to the initial calculation circuit, providing reduced precision neighboring pixel attribute data in response to the pixel tile. The derivative circuit includes a plurality of pixel attribute sub-circuits or components, which determine the attribute values of neighboring pixels within the pixel tile at a precision less than that of the precision used to define the reference pixel.

Claims (37)

1. A method for rendering an object, comprising:

receiving, by a circuit, a pixel tile representing a portion of a primitive to be rendered;

interpolating, by said circuit, an attribute of a reference pixel within the pixel tile; and

interpolating, by said circuit, an attribute of a neighboring pixel within the pixel tile based at least on barycentric coordinate value differences between the reference pixel and the neighboring pixel.

2. The method of claim 1 , further including rendering the reference pixel by mapping the reference pixel onto a two-dimensional space.

3. The method of claim 2 , further including rendering the reference pixel by mapping the neighboring pixel within the pixel tile onto the two-dimensional space based, in part, on the interpolated attribute of the neighboring pixel.

4. The method of claim 1 , wherein the reference pixel is interpolated at full precision and the neighboring pixel attribute is interpolated at a precision level less than full precision.

5. The method of claim 1 , wherein:

the primitive has a first vertex, a second vertex and a third vertex; and

interpolating the attribute of the neighboring pixel within the pixel tile is further based on:

a vertex attribute value difference between the first vertex and the second vertex;

a vertex attribute value difference between the second vertex and the third vertex; and

the interpolated reference pixel attribute.

6. The method of claim 1 , further comprising, for each additional pixel within the pixel tile, interpolating an additional attribute based at least on barycentric coordinate value differences between the reference pixel and the corresponding additional pixel.

7. The method of claim 6 , wherein each additional pixel attribute is interpolated at a precision level less than full precision.

8. The method of claim 1 , wherein interpolating the attribute of the neighboring pixel within the pixel tile based at least on barycentric coordinate value differences between the reference pixel and the neighboring pixel comprises:

determining the barycentric coordinate value differences between the reference pixel and the neighboring pixel along a first barycentric coordinate axis; and

determining the barycentric coordinate value differences between the reference pixel and the neighboring pixel along a second barycentric coordinate axis.

9. A method of rendering an object comprising:

receiving, by a circuit, a plurality of pixels representing a portion of an object to be mapped;

interpolating, by said circuit, at full precision, an attribute of a reference pixel within the plurality of pixels; and

interpolating, by said circuit, at reduced precision, an attribute for each other pixel within the plurality of pixels based at least on the interpolated attribute of the reference pixel, wherein said full precision is an X-bit precision, said reduced bit precision is an Y-bit precision, wherein X is greater than Y, and wherein interpolating, at reduced precision, comprises determining barycentric coordinate value differences between the reference pixel and each other pixel within the plurality of pixels.

10. The method of claim 9 , further including rendering the reference pixel by mapping the reference pixel onto a two-dimensional space based on the interpolated attribute of the reference pixel and rendering the remainder of the plurality of pixels by mapping the remainder of the plurality of pixels onto the two-dimensional space based on the interpolated attributes of each other pixel within the plurality of pixels.

11. The method of claim 9 , wherein each other pixel within the plurality of pixels is adjacent to the reference pixel.

12. A processing circuit comprising:

an initial calculation circuit operative to interpolate, at full precision, an attribute of a reference pixel of a pixel tile that defines at least a portion of an object to be rendered; and

a derivative circuit, operatively coupled to the initial calculation circuit, comprising a plurality of sub-circuits each operative to interpolate, at a reduced precision, an attribute of a corresponding neighboring pixel, wherein the interpolated attribute of the reference pixel and each interpolated attribute of the corresponding neighboring pixel is mapped to an appropriate image space, wherein said full precision is an X-bit precision, said reduced bit precision is an Y-bit precision, and wherein X is greater than Y, wherein each of the plurality of sub-circuits is operative to interpolate the attribute of the corresponding neighboring pixel based at least on barycentric coordinate value differences between the reference pixel and the corresponding neighboring pixel.

13. The circuit of claim 12 , wherein the derivative circuit includes N−1 sub-circuits, where N equals the number of pixels in the pixel tile.

14. A processing circuit comprising:

an initial calculation circuit operative to interpolate, at full precision, an attribute of a reference pixel of a pixel tile that defines at least a portion of an object to be rendered; and a derivative circuit, operatively coupled to the initial calculation circuit, comprising a plurality of sub-circuits each operative to interpolate, at a reduced precision, an attribute of a corresponding neighboring pixel, wherein the interpolated attribute of the reference pixel and each interpolated attribute of the corresponding neighboring pixel is mapped to an appropriate image space, wherein each of the plurality of sub-circuits is operative to interpolate the attribute of the corresponding neighboring pixel based at least on barycentric coordinate value differences between the reference pixel and the corresponding neighboring pixel, and wherein:

the pixel tile is part of a primitive having a first vertex, a second vertex and a third vertex; and

each of the sub-circuits comprises:

at least one signed multiplication circuit operative to:

multiply the barycentric coordinate value differences between the reference pixel and the corresponding neighboring pixel along a first barycentric coordinate axis and a vertex attribute value difference between the first vertex and the second vertex to generate a first signed multiplication circuit output; and

multiply the barycentric coordinate value differences between the reference pixel and the corresponding neighboring pixel along a second barycentric coordinate axis and a vertex attribute value difference between the second vertex and the third vertex to generate a second signed multiplication circuit output;

and

an addition circuit for adding the first signed multiplication circuit output, the second signed multiplication circuit output and the interpolated attribute of the reference pixel.

Assignments (2)
CHANGE OF NAME Recorded May 12, 2011
From: ATI TECHNOLOGIES INC.
To: ATI TECHNOLOGIES ULC
Reel/Frame 026270/0027 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2002
From: LEFEBVRE, LAURENT; MOREIN, STEPHEN L.; WILKINSON, JAY C.
To: ATI TECHNOLOGIES, INC.
Reel/Frame 013270/0825 →