High quality anti-aliasing
First Claim
Patent Images
1. A method of rendering an image, comprising:
- sampling actual image data for a contour to be rendered;
determining approximate image data for one or more line segments that approximate the contour to be rendered;
filtering the line segments by convoluting the approximate image data with a filter to cause the filter to optimally center spectral energy of the sampled image data on an area in a spectral domain corresponding to sample spacing of the sampled image data in the spatial domain, to produce filtered image data; and
rendering the contour using the filtered image data,wherein the filter is the function h where [F(h)] denotes the Fourier transform of h and Ω
is the area in the spectral domain corresponding to sample spacing of the sampled image data in the spatial domain.
2 Assignments
0 Petitions
Accused Products
Abstract
An antialiasing method and apparatus suitable for antialiasing a variety of image types, including fonts, large images, and very small images. The antialiasing technique may represent the edge of a line, curve or region as a series of line segments. These line segments are then traversed to convolute the line segment approximating the contours of the image with a desired filter function. A filter function is also disclosed for antialiasing the edges of a line, curve or region, which may be employed when the edge is represented by a series of line segments. The antialiasing filter tends to centers the spectral energy of an image on the sampled area.
19 Citations
22 Claims
-
1. A method of rendering an image, comprising:
-
sampling actual image data for a contour to be rendered; determining approximate image data for one or more line segments that approximate the contour to be rendered; filtering the line segments by convoluting the approximate image data with a filter to cause the filter to optimally center spectral energy of the sampled image data on an area in a spectral domain corresponding to sample spacing of the sampled image data in the spatial domain, to produce filtered image data; and rendering the contour using the filtered image data, wherein the filter is the function h where [F(h)] denotes the Fourier transform of h and Ω
is the area in the spectral domain corresponding to sample spacing of the sampled image data in the spatial domain.- View Dependent Claims (2, 3, 4, 5, 6)
wherein r ∈
[0, R].
-
-
4. The method recited in claim 3, wherein a mask of the revolutionary filter has a radius of 1 pixel.
-
5. The method recited in claim 1, wherein the filter is a square filter h(x) defined as
-
h ( x ) = ∑ k = 0 M h k x 2 k , where(|x|≦
R).
-
-
6. The method recited in claim 1, wherein a mask of the square filter has an area of 2 pixels by 2 pixels.
-
7. A method of rendering an image, comprising:
-
sampling actual image data for a contour to be rendered; determining approximate image data for one or more line segments that approximate the contour to be rendered; filtering the line segments by convoluting the approximate image data with filter to cause the filter to optimally center spectral energy of the sampled image data on an area in a spectral domain corresponding to sample spacing of the sampled image data in the spatial domain, to produce flitered image data; rendering the contour using the filtered image data; and determining if a width of the approximate image data is greater than a width of a mask of the filter; and if the width of the approximate image data is greater than the width of the mask of the filter, filtering edges of the approximate image data. - View Dependent Claims (8)
-
-
9. A method of rendering an image, comprising:
-
sampling actual image data for a contour to be rendered; determining approximate image data for one or more line segments that approximate the contour to be rendered; filtering the line segments by convoluting approximate image data with a filter to cause the filter to optimally center spectral energy of the sampled image data on an area in a spectral domain corresponding to sample spacing of the sampled image data in the spatial domain, to produce filtered image data; rendering the contour using the filtered image data; and determining if one or more line segments intersect within a mask of the filter; and if one or more line segments intersect with the mask of the filter, dividing an integral region defined by the mask of the filter and the intersecting line segments into two or more areas without intersections of the line segment, and filtering each of the two or more areas separately.
-
-
10. A tool for rendering an image, comprising:
-
an original image data store that stores original image data; a line segment determining module that determines line segment data approximating a contour of the original image data; a convolution module that convolutes the line segment data with a filter to produce filtered image data wherein the filter is the function h where; and a scan conversion module that scan converts portions of the line segment data that are beyond a width of a mask of the filter from an edge of the line segment data. - View Dependent Claims (11, 12, 13)
-
-
14. A method of rendering an image, comprising:
-
obtaining actual image data for a contour to be rendered; determining approximate image data for one or more line segments that approximate the contour to be rendered; filtering the line segments by convoluting the approximate image data with a filter; rendering the contour using the filtered image data; determining if a width of the approximate image data is greater than a width of a mask of the filter; and if the width of the approximate image data is greater than the width of the mask of the filter, filtering edges of the approximate image data. - View Dependent Claims (15)
-
-
16. A method of rendering an image, comprising:
-
obtaining actual image data for a contour to be rendered; determining approximate image data for one or more line segments that approximate the contour to be rendered; filtering the line segments by convoluting the approximate image data with a filter; rendering the contour using the filtered image data; and determining if one or more line segments intersect within a mask of the filter; and if one or more line segments intersect with the mask of the filter, dividing an integral region defined by the mask of the filter and the intersecting line segments into two or more areas without intersections of the line segment, and filtering each of the two or more areas separately.
-
-
17. A method of rendering an image, comprising:
-
sampling image data; filtering the image data by convoluting the image data with a filter to cause the filter to optimally center spectral energy of the sampled image data on an area in a spectral domain corresponding to sample spacing of the sampled image data in the spatial domain, to produce filtered image data; and rendering the filtered image data, wherein the filter is the function h where [F(h)] denotes the Fourier transform of h and Ω
is the area in the spectral domain corresponding to sample spacing of the sampled image data in the spatial domain.- View Dependent Claims (18)
-
-
19. A method of rendering an image, comprising:
-
sampling image data; filtering the image data by convoluting the image data with a filter to cause the filter to optimally center spectral energy of the sampled image data on an area in a spectral domain corresponding to sample spacing of the sampled image data in the spatial domain, to produce filtered image data; and rendering the filtered image data, wherein the filter is a revolutionary filter h(r, θ
), defined aswherein r ∈
[0, R].- View Dependent Claims (20)
-
-
21. A method of rendering an image, comprising:
-
sampling image data; filtering the image by convoluting the image data with a filter to cause the filter to optimally center spectral energy of the sampled image data on an area in a spectral domain corresponding to sample spacing of the sampled image data in the spatial domain, to produce filtered image data; and rendering the filtered image data, wherein the filter is a square filter h(x) defined as where (|x|≦
R).- View Dependent Claims (22)
-
Specification