IP Library Granted Patent US 8,797,325
Granted Patent B2
US 8,797,325 · App. 12/953,739 · Granted Aug 5, 2014

Method and system for decomposing complex shapes into curvy RHTs for rasterization

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 8,797,325
App. No.
12/953,739
Granted
Aug 5, 2014
Kind
B2
Abstract

A complex curved primitive is decomposed into curvy RHTs comprising a curved portion and horizontal and vertical lines. Pixel rows covered by curvy RHTs are determined. RHT pixels covered by the curved primitive are determined with counters. Tile based color rendering is performed for covered pixels. The primitive path is decomposed into Bezier curves. Curvy RHTs may overlap and may cover pixels that are not covered by the curved primitive. Pixel rows are located by traversing an RHT path and the direction of traversing may determine pixel counts. Pixel coverage and tile coverage information is stored in memory. Pixels may be rendered in parallel. The curved primitive is rendered in a tile binning phase and a tile rendering phase. Tile rendering comprises a pixel coverage first pass which determines pixels covered by said curved primitive and a color rendering second pass.

Claims (53)

1. A method comprising:

in a graphics processing device:

decomposing a curved primitive that comprises a closed two-dimensional complex shape into multiple curvy right horizontal trapezium (RHT) primitives;

locating pixel rows that are covered by a specific curvy RHT primitive among the multiple curvy RHT primitives;

for the specific curvy RHT primitive, determining pixels in the pixel rows that are covered by the curved primitive; and

tile-based color rendering the pixels covered by the curved primitive.

2. The method according to claim 1 , wherein:

the curved primitive comprises a curved exterior boundary that is decomposed into a multiple of joined Bezier curves, curve segments, or a combination of both, that are single valued in x for each y coordinate; and

the specific curvy RHT primitive comprises a curved portion that comprises one or more of the Bezier curves, one or more of the curve segments, or both, a horizontal line connected to the curved portion, and a vertical line that intersects the curved primitive.

3. The method according to claim 1 , wherein the specific curvy RHT primitive among the multiple curvy RHT primitives overlaps at least a portion of another of the multiple curvy RHT primitives.

4. The method according to claim 1 , wherein a portion of the specific curvy RHT primitive among the multiple curvy RHT primitives covers one or more pixels that are not covered by the curved primitive.

5. The method according to claim 1 , comprising locating the pixel rows covered by the specific curvy RHT primitive by traversing a path along a curved portion of the specific curvy RHT primitive.

6. The method according to claim 1 , further comprising, for the specific curvy RHT primitive:

incrementing or decrementing a pixel counter for each pixel covered by the specific curvy RHT primitive among the multiple curvy RHT primitives; and

determining the incrementing or the decrementing utilizing a direction of traversing a path along a curved portion of the specific curvy RHT primitive.

7. The method according to claim 1 , further comprising:

determining which of the multiple curvy RHT primitives or the curved primitive overlaps which tiles in a tiled view space; and

storing, in memory, information that identifies which of the multiple curvy RHT primitives overlaps which tiles in the tiled view space.

8. The method according to claim 1 , comprising performing the tile-based color rendering of multiple of the pixels covered by the curved primitive in parallel.

9. The method according to claim 1 , wherein the tile-based color rendering comprises rendering the pixels covered by the curved primitive in two phases, the two phases comprising:

a tile binning phase; and

a tile rendering phase, wherein the tile rendering phase comprises a first pass which determines the pixels covered by the curved primitive and a second pass which color renders the pixels.

10. A system comprising:

circuitry for use in a graphics processing device, wherein the circuitry is operable to:

decompose a curved primitive that comprises a closed two-dimensional complex shape into multiple curvy right horizontal trapezium (RHT) primitives;

locate pixel rows that are covered by a specific curvy RHT primitive among the multiple curvy RHT primitives;

for the specific curvy RHT primitive, determine pixels in the pixel rows that are covered by the curved primitive; and

tile-based color rendering the pixels covered by the curved primitive.

11. The system according to claim 10 , wherein:

the curved primitive comprises a curved exterior boundary that is decomposed into a multiple of joined Bezier curves, curve segments, or a combination of both, that are single valued in x for each y coordinate; and

the specific curvy RHT primitive comprises a curved portion that comprises one or more of the Bezier curves, one or more of the curve segments, or both, a horizontal line connected to the curved portion, and a vertical line that intersects the curved primitive.

12. The system according to claim 10 , wherein the specific curvy RHT primitive among the multiple curvy RHT primitives overlaps at least a portion of another of the multiple curvy RHT primitives.

13. The system according to claim 10 , wherein a portion of the specific curvy RHT primitive among the multiple curvy RHT primitives covers one or more pixels that are not covered by the curved primitive.

14. The system according to claim 10 , wherein the circuitry is operable to locate the pixel rows covered by the specific curvy RHT primitive by traversing a path along a curved portion of the specific curvy RHT primitive.

15. The system according to claim 10 , wherein, for the specific curvy RHT primitive, the circuitry is further operable to:

increment or decrement a pixel counter for each pixel covered by the specific curvy RHT primitive among the multiple curvy RHT primitives; and

determine the incrementing or the decrementing utilizing a direction of traversing a path along a curved portion of the specific curvy RHT primitive.

16. The system according to claim 10 , wherein the circuitry is further operable to:

determine which of the multiple curvy RHT primitives or the curved primitive overlaps which tiles in a tiled view space; and

store, in memory, information that identifies which of the multiple curvy RHT primitives overlaps which tiles in the tiled view space.

17. The system according to claim 10 , wherein the circuitry is operable to perform the tile-based color rendering of multiple of the pixels covered by the curved primitive in parallel.

18. The system according to claim 10 , wherein the circuitry is operable to tile-based color render the pixels covered by the curved primitive in two phases, the two phases comprising:

a tile binning phase; and

a tile rendering phase, wherein the tile rendering phase comprises a first pass which determines the pixels covered by the curved primitive and a second pass which color renders the pixels.

19. A system comprising:

processing circuitry configured to:

decompose a curved primitive that comprises a closed two-dimensional shape into a set of curvy right horizontal trapezium (RHT) primitives that includes a first curvy RHT primitive;

locate a pixel row covered by the first curvy RHT primitive;

determine a pixel in the pixel row that is covered by the curved primitive; and

tile-based color render the pixel covered by the curved primitive.

20. The system according to claim 19 , wherein:

the curved primitive comprises a curved exterior boundary that is decomposed into a multiple of joined Bezier curves, curve segments, or a combination of both, that are single valued in x for each y coordinate; and

the first curvy RHT primitive comprises a curved portion that comprises one or more of the Bezier curves, one or more of the curve segments, or both, a horizontal line connected to the curved portion, and a vertical line that intersects the curved primitive.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE ERROR IN RECORDING THE MERGER IN THE INCORRECT US PATENT NO. 8,876,094 PREVIOUSLY RECORDED ON REEL 047351 FRAME 0384. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 8, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 049248/0558 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF THE MERGER PREVIOUSLY RECORDED AT REEL: 047230 FRAME: 0910. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047351/0384 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047230/0910 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2011
From: KEALL, GARY; EMETT, DAVID
To: BROADCOM CORPORATION
Reel/Frame 025922/0957 →