IP Library Granted Patent US 10,152,772
Granted Patent B2
US 10,152,772 · App. 15/408,117 · Granted Dec 11, 2018

Techniques for sampling sub-pixels of an image

Inventor: Evgene Fainstain (San Jose, CA)
Assignee: Advanced Micro Devices, Inc.
G06T5/002G06T1/20G06T1/60G06T15/005G06T15/503G06T19/20G06T2219/2004G06T2219/2016
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,152,772
App. No.
15/408,117
Granted
Dec 11, 2018
Kind
B2
Abstract

Systems, apparatuses, and methods for generating and utilizing sub-pixel sampling patterns on a processor are disclosed. In one embodiment, a processor includes at least multiple execution units and a memory. The processor generates sub-pixel sampling coordinates within each pixel of an image being rendered based on a rotated grid superimposed on the image. The processor also specifies an amount of rotation for the rotated grid. The processor utilizes the sub-pixel sampling coordinates for determining which locations to sample within the image being rendered. The sampling patterns generated based on these techniques enable using more complex and computationally efficient anti-aliasing resolve filters, resulting in higher quality images.

Claims (47)

1. A processor comprising:

a memory; and

a plurality of execution units;

wherein the processor is configured to:

generate, based on a rotated grid, a plurality of sub-pixel sampling coordinates for each pixel of an image being rendered, wherein an amount of rotation is specified for the rotated grid and a slope of the rotated grid is selected to be equal to a ratio of two mutually prime numbers;

sample sub-pixel locations indicated by the plurality of sub-pixel sampling coordinates within each pixel of the image being rendered by the plurality of execution units; and

store values of the sub-pixel locations in the memory.

2. The processor as recited in claim 1 , wherein generating, based on the rotated grid, the plurality of sub-pixel sampling coordinates comprises:

calculating locations that correspond to a first set of parallel lines which pass diagonally through given locations of the image;

calculating locations that correspond to a second set of parallel lines perpendicular to the first set of parallel lines, wherein the first and second sets of parallel lines form the rotated grid;

shifting the rotated grid to cause vertices of the first and second sets of parallel lines to have a center of gravity which is in a center of each corresponding pixel; and

specifying the plurality of sub-pixel sampling coordinates to coincide with locations of the vertices of the first and second sets of parallel lines within pixels of the image.

3. The processor as recited in claim 2 , wherein the given locations are corners of the pixels.

4. The processor as recited in claim 2 , wherein the given locations are centers of the pixels.

5. The processor as recited in claim 1 , wherein the sub-pixel sampling coordinates are regularly spaced both horizontally and vertically.

6. The processor as recited in claim 1 , wherein there is only one sub-pixel sampling location per pixel on a given horizontal or vertical line which traverses the image.

7. The processor as recited in claim 1 , wherein a number of sampling points for each pixel is greater than two.

8. A method for use in a computing device, the method comprising:

generating, based on a rotated grid, a plurality of sub-pixel sampling coordinates for each pixel of an image being rendered, wherein an amount of rotation is specified for the rotated grid and a slope of the rotated grid is selected to be equal to a ratio of two mutually prime numbers;

sampling sub-pixel locations indicated by the plurality of sub-pixel sampling coordinates within each pixel of the image being rendered; and

storing values of the sub-pixel locations in the memory.

9. The method as recited in claim 8 , wherein generating, based on the rotated grid, the plurality of sub-pixel sampling coordinates comprises:

calculating locations that correspond to a first set of parallel lines which pass diagonally through given locations of the image;

calculating locations that correspond to a second set of parallel lines perpendicular to the first set of parallel lines, wherein the first and second sets of parallel lines form the rotated grid;

shifting the rotated grid to cause vertices of the first and second sets of parallel lines to have a center of gravity which is in a center of each corresponding pixel; and

specifying the plurality of sub-pixel sampling coordinates to coincide with locations of the vertices of the first and second sets of parallel lines within pixels of the image.

10. The method as recited in claim 9 , wherein the given locations are corners of the pixels.

11. The method as recited in claim 9 , wherein the given locations are centers of the pixels.

12. The method as recited in claim 8 , wherein the sub-pixel sampling coordinates are regularly spaced both horizontally and vertically.

13. The method as recited in claim 8 , wherein there is only one sub-pixel sampling location per pixel on a given horizontal or vertical line which traverses the image.

14. The method as recited in claim 8 , wherein a number of sampling points for each pixel is greater than two.

15. A system comprising:

a memory; and

a processor;

wherein the processor is configured to:

generate, based on a rotated grid, a plurality of sub-pixel sampling coordinates for each pixel of an image being rendered, wherein an amount of rotation is specified for the rotated grid and a slope of the rotated grid is selected to be equal to a ratio of two mutually prime numbers;

sample sub-pixel locations indicated by the plurality of sub-pixel sampling coordinates within each pixel of the image being rendered; and

store values of the sub-pixel locations in the memory.

16. The system as recited in claim 15 , wherein generating, based on the rotated grid, the plurality of sub-pixel sampling coordinates comprises:

calculating locations that correspond to a first set of parallel lines which pass diagonally through given locations of the image;

calculating locations that correspond to a second set of parallel lines perpendicular to the first set of parallel lines, wherein the first and second sets of parallel lines form the rotated grid;

shifting the rotated grid to cause vertices of the first and second sets of parallel lines to have a center of gravity which is in a center of each corresponding pixel; and

specifying the plurality of sub-pixel sampling coordinates to coincide with locations of the vertices of the first and second sets of parallel lines within pixels of the image.

17. The system as recited in claim 16 , wherein the given locations are corners of the pixels.

18. The system as recited in claim 16 , wherein the given locations are centers of the pixels.

19. The system as recited in claim 15 , wherein the sub-pixel sampling coordinates are regularly spaced both horizontally and vertically.

20. The system as recited in claim 15 , wherein a number of sampling points for each pixel is greater than two.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2017
From: FAINSTAIN, EVGENE
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 040992/0690 →
Continuity (2)
Provisional Application 62279889 · Jan 18, 2016
Related Publication 20170206626A1 · Jul 20, 2017
Cited By (2)
US 12,190,847 US 12,608,753