IP Library Granted Patent US 10,096,086
Granted Patent B2
US 10,096,086 · App. 14/846,737 · Granted Oct 9, 2018

Enhanced anti-aliasing by varying sample patterns spatially and/or temporally

Inventors: Yury Y. Uralsky (Santa Clara, CA); Jonah M. Alben (San Jose, CA); Ankan Banerjee (Pune, IN); Gregory Massal (Pflugerville, TX); Thomas Petersen (San Jose, CA); Oleg Kuznetsov (Santa Clara, CA); Eric B. Lum (San Jose, CA); Prakshep Mehta (Pune, IN)
Assignee: NVIDIA CORPORATION
G06T5/00G06T1/20G06T5/002G06T5/20G06T11/001G06T2200/12G06T2207/10016G06T2207/10024G06T2207/20182
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 10,096,086
App. No.
14/846,737
Granted
Oct 9, 2018
Kind
B2
Abstract

A raster unit is configured to generate different sample patterns for adjacent pixels within a given frame. In addition, the raster unit may adjust the sample patterns between frames. The raster unit includes an index unit that selects a sample pattern table for use with a current frame. For a given pixel, the index unit extracts a sample pattern from the selected sample pattern table. The extracted sample pattern is used to generate coverage information for the pixel. The coverage information for all pixels is then used to generate an image. The resultant image may then be filtered to reduce or remove artifacts induced by the changing of sample locations.

Claims (63)

1. A graphics subsystem, comprising:

a first sample pattern table that includes a first plurality of entries; and

an index unit that:

receives a first set of X-Y coordinates associated with a first pixel of a first frame, the first set of X-Y coordinates including an X coordinate and a Y coordinate;

generates a first index into the first sample pattern table based on the set of coordinates, wherein the first index references a first subset of entries included in the first plurality of entries, and

extracts the first subset of entries from the first sample pattern table; and

a rasterizer that generates a first sample at a first location within the first pixel on an indication from a first entry included in the first subset of entries.

2. The graphics subsystem of claim 1 , wherein the index unit determines a frame number associated with the first frame and to select the first sample pattern table from a plurality of sample pattern tables based on the frame number.

3. The graphics subsystem of claim 1 , wherein the index unit:

parses one or more least significant bits from the X coordinate;

parses one or more least significant bits from the Y coordinate; and

combines the one or more least significant bits from the X coordinate with the one or more least significant bits from the Y coordinate to generate the first index.

4. The graphics subsystem of claim 1 , wherein the index unit:

generates a second index into the first sample pattern table that references a second subset of entries included in the first plurality of entries; and

extracts the second subset of entries from the first sample pattern table, wherein a second entry included in the second subset of entries indicates a second location within a second pixel of the first frame where a second sample is to be generated.

5. The graphics subsystem of claim 1 , further comprising a second sample pattern table that includes a second plurality of entries, wherein the index unit:

generates a second index into the second sample pattern table that references a second subset of entries included in the second plurality of entries; and

extracts the second subset of entries from the second sample pattern table, wherein a second entry included in the second subset of entries indicates a second location within a second pixel of a second frame where a second sample is to be generated.

6. The graphics subsystem of claim 5 , wherein the second pixel resides at the first set of X-Y coordinates within the second frame.

7. The graphics subsystem of claim 5 , wherein the index unit:

generates a third index into the second sample pattern table, wherein the third index refers to a third subset of entries in the second plurality of entries; and

extracts the third subset of entries from the second sample pattern table, wherein a third entry included in the third subset of entries indicates a third location within a third pixel of the second frame where a third sample is to be generated.

8. The graphics subsystem of claim 7 , wherein the second pixel resides at a second set of X-Y coordinates within the second frame, and the third pixel resides at the first set of X-Y coordinates within the second frame.

9. The graphics subsystem of claim 1 , further comprising a shader unit coupled to the graphics subsystem that:

generates a shader sample at the first location for the first pixel, and

processes the shader sample to generate a color value for the first pixel,

wherein the first sample comprises a coverage sample.

10. A computer-implemented method for generating samples of pixel, the method comprising:

receiving a first set of X-Y coordinates associated with a first pixel of a first frame, the first set of X-Y coordinates including an X coordinate and a Y coordinate;

generating a first index into a first sample pattern table that includes a first plurality of entries based on the first set of X-Y coordinates, wherein the first index references a first subset of entries included in the first plurality of entries;

extracting the first subset of entries from the first sample pattern table; and

generating a first sample at a first location within the first pixel on an indication from a first entry included in the first subset of entries.

11. The computer-implemented method of claim 10 , further comprising:

determining a frame number associated with the first frame; and

selecting the first sample pattern table from a plurality of sample pattern tables based on the frame number.

12. The computer-implemented method of claim 11 , further comprising:

parsing one or more least significant bits from the X coordinate;

parsing one or more least significant bits from the Y coordinate; and

combining the one or more least significant bits from the X coordinate with the one or more least significant bits from the Y coordinate to generate the first index.

13. The computer-implemented method of claim 10 , further comprising:

generating a second index into the first sample pattern table that references a second subset of entries included in the first plurality of entries; and

extracting the second subset of entries from the first sample pattern table, wherein a second entry included in the second subset of entries indicates a second location within a second pixel of the first frame where a second sample is to be generated.

14. The computer-implemented method of claim 10 , further comprising:

generating a second index into a second sample pattern table that includes a second plurality of entries, wherein the second index references a second subset of entries included in the second plurality of entries; and

extracting the second subset of entries from the second sample pattern table, wherein a second entry included in the second subset of entries indicates a second location within a second pixel of a second frame where a second sample is to be generated.

15. The computer-implemented method of claim 14 , wherein the second pixel resides at the first set of X-Y coordinates within the second frame.

16. The computer-implemented method of claim 10 , further comprising receiving, from a software application, the plurality of sample pattern tables.

17. The computer-implemented method of claim 16 , wherein the software application includes a number of sample pattern tables in the plurality of sample pattern tables that reflects a first multiframe antialiasing mode.

18. A computing device, comprising:

a graphics subsystem, including:

a first sample pattern table that includes a first plurality of entries; and

an index unit that:

receives a first set of X-Y coordinates associated with a first pixel of a first frame, the first set of X-Y coordinates including an X coordinate and a Y coordinate;

generates a first index into the first sample pattern table based on the first set of X-Y coordinates, wherein the first index references a first subset of entries included in the first plurality of entries, and

extracts the first subset of entries from the first sample pattern table, and

a rasterizer that generates a first sample at a first location within the first pixel on an indication from a first entry included in the first subset of entries.

19. The computing device of claim 18 , further comprising:

a shader unit coupled to the graphics subsystem that:

generates a first shader sample for the first pixel at the first location, and

generates a first color value for the first pixel based on the first shader sample.

20. The computing device of claim 19 , wherein a second pixel resides at the first set of X-Y coordinates within a second frame, and wherein the shader unit that:

generates a second shader sample for the second pixel at the second location, and

generates a second color value for the second pixel based on the second shader sample.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2015
From: URALSKY, YURY Y.; ALBEN, JONAH M.; BANERJEE, ANKAN; MASSAL, GREGORY; PETERSON, THOMAS; KUZNETSOV, OLEG; LUM, ERIC B.; MEHTA, PRAKSHEP
To: NVIDIA CORPORATION
Reel/Frame 036499/0822 →
Continuity (2)
Provisional Application 62048751 · Sep 10, 2014
Related Publication 20160071242A1 · Mar 10, 2016