HK1116900B - Method and apparatus for pixel sampling - Google Patents
Method and apparatus for pixel sampling Download PDFInfo
- Publication number
- HK1116900B HK1116900B HK08107299.5A HK08107299A HK1116900B HK 1116900 B HK1116900 B HK 1116900B HK 08107299 A HK08107299 A HK 08107299A HK 1116900 B HK1116900 B HK 1116900B
- Authority
- HK
- Hong Kong
- Prior art keywords
- sample
- pixel
- sampling
- value
- values
- Prior art date
Links
Description
Technical Field
The present invention relates generally to graphics processing, and more particularly to a method and apparatus for generating anti-aliased (anti-aliased) graphics images at a high frame rate and low computational cost.
Background
From the early days of computer graphics, the aliasing phenomenon has been a problem of displaying still or moving images on a display. This problem arises, for example, when a sample generated from the center of a pixel is used to determine the color to be rendered.
One approach to address the low visual quality of the aliased image is to use anti-aliasing techniques. One such technique is supersampling (supersampling), which provides better image quality but suffers from a low frame rate due to the heavy computational burden. More specifically, the resolution of the image resulting from the super-sampling is higher than the final resolution of the image displayed on the screen. This is due to the fact that a plurality of sample values are generated for each pixel to be displayed, i.e. each pixel value is a weighted sum of sample values. For example, each displayed pixel may include a filtered or weighted sum of a set of four sample values derived from sub-pixels within a pixel boundary. This means that the graphics hardware must process the same number of samples per displayed pixel, i.e. four times, as compared to one sample per pixel.
Patent document WO-00/33256 discloses a system that utilizes an oversampling scheme. Each pixel is divided into a grid of more or less fine meshes defining a sub-pixel grid in which the sample points can be located. The sample points may be arranged in a number of different configurations within the pixel boundaries. The sample point construction pattern is then repeated for each pixel to be displayed. The final value for each pixel comprises a weighted sum of three or more sample values obtained in the sub-pixels according to the discussion above. A drawback of this method is that it requires a large amount of computation and memory capacity, since three or more sample values have to be computed and retrieved from memory for processing each pixel.
To reduce the computational burden for generating anti-aliased pixels, an improved supersampling scheme, referred to as a multisampling scheme, may be used. The key point of the multi-sampling scheme is to share the computations between samples. In addition, the multi-sampling scheme may also share sample values between adjacent pixels (note that this is different from the sharing calculation). This latter multiple sampling scheme is referred to as a sample sharing scheme.
The GeForce3 graphics processing unit (from Santa Clara NVIDIA, Inc. of U.S.A.) provides hardware that supports multi-sampling and sharing of inter-pixel sub-pixels. This multi-sampling scheme is called "Quincunx" and exhibits a sampling pattern of the form "5" on one die, i.e., five sample values are used to calculate the value of the final pixel. However, due to the location of the sample points, only two sample values need to be calculated per pixel; the remaining sample values are based on sample values generated by neighboring pixels. The central sample value gives a weighting of 0.5 and the surrounding sample values each give a weighting of 0.125. In a subsequent step, the resulting pixel values are filtered in the same way as in the usual supersampling scheme.
Can be found in "Technical Brief, HRAA: detailed information about the Quinchunx scheme is found in High-Resolution Anti-imaging through Multisampling (technical Abstract, HRAA: High Resolution antialiasing by Multisampling) ".
Portable electronic devices such as mobile radio terminals, mobile phones, electronic organizers, smartphones or the like have a limited battery capacity. In portable electronic devices, memory access is a relatively low energy consumption compared to the available battery capacity. Moreover, the memory capacity of such devices is also limited. Thus, graphics processing is preferably as efficient as possible, with memory access for providing anti-aliased images kept to a minimum. While the Quincunx scheme is more efficient than other supersampling or multisampling schemes known in the art, it still requires a large amount of computational capacity.
Thus, the computational burden for generating anti-aliased images is a problem in existing electronic graphics systems. This problem becomes more severe when anti-aliasing schemes are used to produce images in devices with lower computing power and limited memory capacity.
EP- cA-1431920 discloses cA method for determining cA pattern of sampling points. Each sample point pattern is a mirror image of and different from the sample point pattern of the adjacent pixel. The sample point pattern has one sample point at each pixel edge. The samples are shared between adjacent pixels.
Disclosure of Invention
It is therefore an object of the present invention to provide a method and apparatus for generating pixel values for an anti-aliased image, wherein the method and apparatus require less computational power, wherein the memory requirements are at least reduced compared to prior art techniques for generating anti-aliased images.
According to a first aspect of the invention, this object is achieved by a method for generating a pixel value from a plurality of sample values generated from a plurality of sample points. The sample values are weighted to determine the pixel value. Each sample value is generated from one sample point in the sample region. The position of the sampling point is taken from a plurality of candidate positions, all of which are located within the sampling region. The sampling region is located at a corner of two intersecting boundaries of the pixel and the size of the sampling region is smaller than the size of the pixel. In one embodiment, the sampling area is concentrated around the corners of two intersecting boundaries of pixels.
The sampling area may be concentrated around the corners of two intersecting boundaries of said pixels. The sampling points may be located at any position of the sampling region.
Each sample value used to determine the pixel value of a pixel may be generated from sample points located at different distances from the center of the pixel in the x-direction and also located at different distances from the center of the pixel in the y-direction.
Only one of the plurality of sample points generated for determining the pixel value of a pixel may be located on an imaginary line at the same 45 degrees with respect to the boundary of the pixel.
According to a second aspect of the invention, the object is achieved by an apparatus for generating a pixel value from a plurality of sample values. The device includes: a sampling device arranged to generate a plurality of sample values; and weighting means arranged to weight the plurality of sample values for determining the pixel value. The sampling means is arranged to generate each sample value from a sample point in the sampling region. The sampling points are taken from a plurality of candidate sampling points, and all the candidate sampling points are positioned in the sampling area. The sampling region is located at a corner of two intersecting boundaries of the pixel and the size of the sampling region is smaller than the size of the pixel. In one embodiment, the sampling area is concentrated around the corners of two intersecting boundaries of pixels.
The sampling means may be arranged to generate each sample value from sample points in a sampling region centred around a corner of two intersecting boundaries of said pixel. In addition, the sampling means may be arranged to generate each sample value from a sampling region comprising n x n sub-pixels, wherein the pixel comprises p x p sub-pixels, wherein p is greater than n.
Further embodiments of the invention are defined in the dependent claims.
An advantage of the invention is that the generated pixel values will produce an anti-aliased image. In addition, the present invention is advantageous in that the sampling value can be shared between adjacent pixels. Also, an advantage of the present invention is that only one sample value has to be calculated on average for most pixels of the pixel array, wherein the computational power and memory requirements are reduced compared to other multi-sampling schemes providing anti-aliasing effects. In addition, the memory requirements of the present invention are the same as conventional sampling schemes that use a single sample at the center of a pixel and no sample sharing between adjacent pixels, thereby not providing any anti-aliasing effect. Thus, although the anti-aliasing effect is achieved, the memory requirements are not increased compared to conventional sampling schemes. In addition, since the memory requirements of the present invention are the same as the conventional sampling scheme, the hardware implementing the conventional sampling scheme may be updated to perform the method according to the present invention.
It should be noted that the term "comprises/comprising" when used in this specification is taken to specify the presence of stated features, integers, steps or components but does not preclude the presence or addition of one or more other features, integers, steps, components or groups thereof.
Brief Description of Drawings
Other objects, features and advantages of the present invention will become apparent from the following detailed description of the invention with reference to the accompanying drawings, in which:
fig. 1 is a front view of an electronic device comprising a processing unit according to the invention;
FIG. 2 is a block diagram of certain components of the electronic device of FIG. 1;
FIG. 3a is a schematic diagram of a first embodiment of a plurality of pixels, a sampling region and the positions of sampling points in the region for sampling;
3b-3c are schematic diagrams of alternative locations of samples in a sample area;
FIG. 4 is a schematic diagram of a plurality of pixels, a plurality of sampling regions, and a plurality of sampling points; and
fig. 5a-5b are flow diagrams of an embodiment of a method according to the invention.
Detailed Description
Fig. 1 shows an electronic device in which the apparatus and method according to the invention may be implemented. In this embodiment, the electronic device is a mobile phone 1, but is not limited thereto. The pixel value is determined by averaging a majority of the pixels in the pixel array to produce only one new sample value. Thus, the computational and memory requirements for implementing the invention are low, where the invention is useful in portable electronic devices where memory and battery capacity are limited, such as in mobile radio terminals, pagers, communicators, electronic organizers, smartphones or personal digital assistants. However, the invention may also be implemented in a stationary electronic device, such as a computer.
The mobile phone 1 comprises a man-machine interface for interaction between a user and the mobile phone 1. The human-machine interface comprises a display 2, for example an LCD display or a touch screen, on which graphics, for example 2D graphics (such as Flash or SVG (scalable vector graphics) animations) and 3D graphics, can be displayed. In order to provide an anti-aliasing effect, the method according to the invention samples the object to be shown on the display, as explained below.
FIG. 2 is a block diagram of an example system for drawing lines or polygons. A CPU (central processing unit) 201 is connected to a memory 202 through a data bus 203. The memory 202 may include computer readable instructions or code means, such as code portions of an application program, which are run by the system. The application program may be a program for rendering 2D graphics animations (such as SVG animations) or 3D graphics games. The CPU201 retrieves instructions from the memory 202 and executes them in order to perform certain tasks. One task for the CPU201 may be to provide the GPU204 (graphics processing unit) with information about the objects to be drawn on the display 205. The GPU204 may be a single hardware component, such as a processor, DSP (digital signal processor), ASIC (application specific integrated circuit), FPGA (field programmable gate array), hard-wired logic, and so forth. Alternatively, the GPU204 is implemented in a combination of software and hardware, or it may be provided by software and executed by the CPU 201. The GPU204 is connected to the data bus 203. Alternatively, or in addition, the GPU204 is connected to the CPU201 via a separate data bus 206, which data bus 206 may be a high speed data bus, in case much information is to be transferred between the CPU201 and the GPU 204. Then the data transmission on the separate data bus 206 and the data transmission on the ordinary data bus 203 do not interfere with each other.
A display memory 207 is connected to the data bus 203 and stores information sent from the GPU204 about the images (frames) to be drawn on the display 205. The display memory includes a sample buffer 207a and a color buffer 207b for storing information such as a sample value of each sample. After rendering of the previous image is complete, the color buffer 207b holds the resulting pixel values, such as the color of the pixel to be displayed on the display 205. Alternatively, the same memory is used for the sample buffer and the color buffer. After all triangles have been rendered to the sample buffer, the sample values can be appropriately converted to pixels in the sample buffer. The buffer can then be used as a color buffer. Still alternatively, it is also possible to perform this conversion on the fly while moving the pixel to the display.
Due to the interconnection between the CPU201 and the GPU204, the display memory 207 may be directly connected to the GPU204 via a separate, high-speed bus (not shown). Display memory 207 may also form part of memory 202. Since the GPU204 and the display memory 207 are typically used to generate a continuous stream of images, it is an advantage if the link between these two units is as fast as possible and does not prevent normal data transfer on the data bus 203.
To determine the value of a certain pixel, the CPU201 or the GPU204 retrieves a plurality of sample values from the sample buffer 207a, calculates a pixel value, and stores the calculated pixel value in the color buffer 207 b.
The display memory 207 is connected to a VDAC 208 (video digital to analog converter) via a shared data bus 203 or a separate high speed bus 209. VDAC 208 reads information from color buffer 207b and converts it to an analog signal, such as an RGB (red, green, blue) composite signal provided to display 205 for drawing individual pixels thereon.
As described above, many different techniques are used in order to produce the rendering of anti-aliasing lines and polygons. Fig. 3a shows an embodiment of a multi-sampling scheme comprising a plurality of samples generated at a plurality of sampling points for each pixel. According to one embodiment, each pixel is divided into P × P sub-pixels. Each sample value is generated from one of a plurality of sample points located in a sample area located at a corner of two intersecting boundaries of pixels for which pixel values are to be determined. The size of the sampling area is smaller than the size of the pixel. Each sampling region may include a plurality of sub-pixels, such as n × n sub-pixels. Since the size of the sampling region is smaller than the size of the pixel, n is smaller than p.
Fig. 3a shows an array of 3 x 3 pixels, where each pixel is divided into 3 x 3 sub-pixels. However, this is merely an example and each pixel may have any number of sub-pixels. In fig. 3a, a sample for determining the sample value of the central pixel 305 is shown. The sampling regions 311, 312, 313, 314 are located at the corners of the crossing boundaries of the pixels. In this embodiment, the sampling region 311-314 comprises 2 × 2 sub-pixels concentrated around different intersections of two borders of the central pixel 305. However, the sampling region 311-.
Each sampling region 311-. However, the sampling point may be located at any position in the boundary of the sampling region, and may be arbitrarily selected, for example. According to one embodiment, a sample value is generated from one of the candidate sample points. To generate one pixel value, a plurality of sample values are utilized. In the embodiment of fig. 3a, four sample values generated from different sample regions are used, as will be explained below. However, depending on the quality of the anti-aliasing effect required, less than four sample values may be used. Generating sample values for determining pixel values from four different sample regions has the advantage of providing a better anti-aliasing effect.
In fig. 3a, the sampling area comprises 2 × 2 sub-pixels, 4 possible sampling points. The sample points 321, 322, 323, 324 at which the sample values are to be generated in this embodiment are arranged such that only one sample point is located in each sample region 311- 314. Also, each sampling point for determining a pixel value of one pixel may be located at a different distance from the center of the pixel in the x direction, and may also be located at a different distance from the center of the pixel in the y direction. This is an advantage because it provides a better antialiasing scheme if the uppermost most sample points 321 and 322 are not located on the same subpixel row, and the lowermost sample points 323, 324 are not located on the same subpixel row. The first sample point 321 may be located at column 3, row 3 of the pixel array 320; the second sample point 322 may be located at column 7, row 4 of the pixel array 320; the third sample point may be located at column 4, row 6 of the pixel array 320; and the fourth sample point 324 may be located at column 6, row 7 of the pixel array 320. In the embodiment of fig. 3a, each sample point used to generate a sample value used to determine the pixel value of a pixel is located at a different distance from the center of the pixel in the x-direction and the y-direction. Thus, no two sample points are located at the same distance from the center of the pixel in the x-direction, and may also be located at different distances from the center of the pixel in the y-direction. This is an advantage because for edges close to vertical and horizontal, the sampling scheme will produce better anti-aliasing images, which are most critical for aliasing.
In addition, as can be seen from fig. 3a, only one of the sample points 321, 322, 323, 324 from which sample values are to be generated and utilized may be located on the same 45 degree dashed lines 331, 332, 333, 334 with respect to the boundary of the pixel 305. However, this is not essential, as shown in the examples below. It is advantageous if only one sample point for determining the sample value of the pixel value of one pixel is located on the same 45 degrees dashed line. For example, assume that the vertical edge is on the left side of FIG. 3a, and that the object is white on the left edge and black on the right edge. When the edge moves to the right, it begins to interact with the sample point. First, sample point 321 is crossed and illuminated. This means that the luminance of the pixel will go from black (0.00) to gray black (0.25) since one of the four sample points has been lit. Second, the edge will cross sample point 323, lighting the pixel gray (0.50). Similarly, sample points 324 and 322 would be crossed, so that the pixel goes from light gray (0.75) to white (1.00). Thus, if the sample points are not located on the same 45 degree dashed line, then any grayscale will not be missed, and the edges will appear with fewer notches than if the sample points were located on the same 45 degree dashed line. This is particularly important for near vertical or near horizontal edges.
The positioning of the sample points 321, 322, 323, 324 at the plurality of sample regions facilitates sample sharing between adjacent pixels. In the embodiments described above, up to 4 sample values are shared, rather than increasing the average number of sample values used to determine the pixel value to more than 1. This is an advantage when the requirements on memory capacity and computing power are relatively low.
Fig. 3b and 3c show an alternative embodiment which is an antialiasing sampling scheme with respect to a 4 x 6 pixel array 350, 360. Also in these embodiments, a sample value is generated from a plurality of sample points of a sample region located at a corner of two intersecting boundaries of a pixel. The sampling area is, but need not be, concentrated around the corner. Each sample value generated from one sample region is used to determine the pixel values of four neighboring pixels. In these embodiments, the additional sample values are generated from the center of each pixel. Such sampled values are also generated in the embodiment of fig. 3 a. However, the sample value generated from the center of each pixel is not necessary, but the average number of samples per pixel is increased to two. On the other hand, the quality will improve and the texture map will look better, since the center sample values are given higher weight.
To determine the pixel value of a particular pixel, each sample value associated with the particular pixel will be given a determined weight. The sum of the weights is equal to 1. Thus, if the number of sample values is four and averaging is used, then each weight is given 0.25. However, other weightings may be used, for example, giving sample values lying within a pixel boundary, for which the pixel value is determined, a weighting of 0.4 and a weighting of 0.2 for the other three sample values. Other weightings are possible in other embodiments and must be detected and evaluated in each particular case.
Fig. 4 shows an embodiment for an antialiasing scheme in a 4 x 6 pixel array 400, where the middle 2 x 4 pixels have a sufficient number of samples. In fig. 4 it can be seen that the three sampling regions 401, 402, 403 in the middle of the pixel array 400 comprise sampling points 411, 412, 413, on which sampling values are generated, each value being used to determine the pixel value of four pixels. The sample values generated from the sample points 411 are used to determine the pixel values of the pixels 421, 422, 423, and 424. The sample values generated from sample points 412 are used to determine the pixel values of pixels 423, 424, 425, and 426. The sample values generated from the sample points 413 are used to determine the pixel values of the pixels 425, 426, 427, and 428.
By examining fig. 4, it is apparent that the sampling pattern represented by fig. 3a is utilized, wherein pixel values can be shared between up to four pixels. For this sampling scheme, the sampling pattern changes when passing through the adjacent pattern, with a period of two. The pattern is changed to enable sharing of the sampling points between adjacent pixels. Most sample values (for a relatively large pixel grid) need only be generated once for four pixels, with a computational cost of 0.25 per sample value. The rectangular structures of fig. 4, 3b and 3c are easier to rasterize than the non-repeatable pattern.
As a result, by using the sampling scheme according to the invention, on the display screen 2, 205, all pixels except the uppermost and leftmost pixels, or the lowermost and rightmost pixels, require an average calculation of only 1(0.25+0.25+0.25+0.25 ═ 1) new sample values for determining the final value of each pixel. This is a significant improvement over known multi-sampling arrangements in which more than one sample value is generated on average in order to determine each pixel value and generate the anti-aliasing image to be rendered.
The sample point in the pixels at which the sample value is determined to be produced is traversed by scanning the sub-pixel rows from left to right to generate a sample value. Alternatively, to make memory utilization more efficient, the scan direction is changed every other sub-pixel row. However, any pass-through scheme may be implemented, along with the multi-sampling scheme in other embodiments.
By using the multi-sampling scheme according to the invention it is only necessary to access the display memory 207 four times to calculate the final value of one pixel. However, by providing an additional small and fast memory (not shown), such as an on-chip cache memory required in one or several subsequent pixel value calculations, for temporarily storing samples, the necessary number of accesses to the display memory 207 can be reduced to a minimum of 1. An on-chip memory containing the previous row of sample values and the previous sample value is required. By reading a new sample value, that sample value can be combined with the previous one and both from the line buffer. The line buffer is then updated with the previous sample value, and the previous sample value is then updated with the new sample value. By using this method with the quicknx scheme, the number of times memory accesses are necessary to calculate the final value of a pixel is a minimum of 2. This is a significant difference because filtering can significantly increase the cost of memory bandwidth usage.
FIG. 5a is a flow chart illustrating one embodiment of a method for generating a high quality anti-aliased image. In step 610, the CPU201 runs an application (e.g. a computer game) and generates an object, such as a 3D-object, (typically a polygon, such as a triangle), which is to be converted into a 2D display on the display.
Then, in step 620, the CPU201 or the GPU204 calculates different visual parameters that affect the appearance of the object on the display, such as brightness, clipping, transformation, projection, etc. When creating 3D-objects in computer graphics, triangles are usually used, and finally the pixel coordinates of the vertices of the triangles are calculated.
At step 630, the CPU or GPU204 interpolates the texture coordinates over the polygons to ensure that the correct projection of the texture is obtained. The CPU201 or GPU204 may also interpolate one or more colors, another set of texture coordinates, fog, etc. It may also perform a Z-buffer test and ensure that the final pixel gets the correct color.
Fig. 5b is a more detailed flow chart showing step 630 in fig. 5 a. Step 631 is a polygon (e.g., triangle) setup phase during which the CPU201 or GPU204 calculates interpolation data to be used on the entire polygon.
In step 632, polygon traversal is performed, wherein the CPU201 or GPU204 identifies sample points that lie within the polygon boundaries. There are many ways to perform this identification. One simple way is to scan the horizontal lines row by row.
In step 633, a sample value is generated for each sample point inside the polygon. Also, a z-test and an alpha-test are performed in this step. The generated sample value is stored in the sample buffer 207 a.
In step 634, it is determined whether there are more sample points inside the polygon. If the answer in step 634 is in the affirmative, then the process returns to step 632, otherwise the process performs step 635.
In step 635, it is determined whether more polygons are rendered. If the answer in step 635 is in the affirmative, the process returns to step 631, otherwise the process performs step 635.
In step 635, full screen filtering is performed, i.e. the pixel values of all pixels on the screen are generated by weighting together the sample values associated with a particular pixel. As described above, the pixel values of the plurality of pixels are determined using at least a subset of the generated plurality of sample values. Each pixel value is calculated by weighting a number of sample values for a particular pixel. The GPU204 or CPU201 provides a weighting means for retrieving samples from the sample buffer 207a and weighting them to form pixel values. For example, each pixel value includes texture information as well as interpolated color information. The calculated pixel values are written into the sample buffer 207 a. After all polygons of the image have been processed, the sample buffer 207a contains the image in high resolution format (1 sample per pixel of the final image on average). Only visible pixels are processed at this stage. The non-visible pixels, i.e. the pixels behind the previously drawn polygon, do not contribute to the final image.
In the above, the invention has been described with reference to specific embodiments. However, other embodiments than the above described are also within the scope of the invention. Different method steps than those described above, which perform the method by means of hardware or software, are also within the scope of the invention. The different features and steps of the invention may be combined in other combinations than those described above. The scope of the invention is limited only by the appended claims.
Claims (15)
1. A method for generating a pixel value from a plurality of sample values, comprising
Generating a plurality of sampling values; and
weighting the plurality of sample values to determine the pixel value;
it is characterized in that
Generating each sample value by selecting a single sample from one of a plurality of candidate sample points (321, 324) within a sample region (311, 314), each sample region being located around an intersection of two intersecting boundaries of the pixel and each sample region having a size smaller than a size of the pixel (305) and each sample region being both partly outside and partly inside the pixel;
generating said pixel values from said sample values resulting from selecting a single sample, at least one of said samples being located outside said pixel; and
the pixel value of another pixel is determined using at least one of the plurality of sample values generated for determining the pixel value.
2. A method according to claim 1, comprising generating the plurality of sample values according to a sampling pattern different from the sampling pattern according to which the sample values are generated by determining pixel values of adjacent pixels.
3. The method according to any of the preceding claims, comprising determining the pixel value of a pixel using four sample values, each of the four sample values being generated from the sample points (321) 324) in the individual sample areas (311) and 314.
4. The method according to claim 1, comprising generating each sample value from a sampling region (311) comprising n x n sub-pixels, wherein the pixel (305) comprises p x p sub-pixels and p is larger than n.
5. The method according to claim 1, comprising generating from the sampling points (321-324) each sampling value for determining the pixel value of one pixel, each sampling point for generating sampling values for determining the pixel value of said one pixel being located at a different distance from the center of said one pixel in the x-direction and also at a different distance from the center of said one pixel in the y-direction.
6. The method of claim 5, including generating a first sample value from a first sample point (321) located in column 1, row 1 of the first sampling region (311), generating a second sample value from a second sample point (322) located in column 2, row 2 of the second sampling region (312), generating a third sample value from a third sample point (323) located in column 2, row 1 of the third sampling region (313), and generating a fourth sample value from a fourth sample point (324) located in column 1, row 2 of the fourth sampling region (314).
7. A method according to claim 1, comprising generating an additional sample value from the sample located at the centre of the pixel.
8. An apparatus for generating a pixel value from a plurality of sample values, comprising
A sampling device (204) for generating a plurality of sample values; and
a weighting device (201) for weighting the plurality of sample values to determine the pixel value;
it is characterized in that
The sampling means being arranged to generate each sample value by selecting a single sample from one of a plurality of candidate sample points (321, 324) within a sampling region (311, 314), each sampling region being located around an intersection of two intersecting boundaries of the pixel and each sampling region being smaller in size than the pixel (305) and each sampling region being both partly external and partly internal to the pixel; and
computing means for computing said pixel values from said sample values resulting from a selection of a single sample, at least one of said samples being located outside said pixel; and
the sampling means (204) is arranged to determine a pixel value of another pixel using at least one of the plurality of sample values generated for determining the pixel value.
9. Apparatus according to claim 8, wherein the sampling means (204) is arranged to generate the plurality of sample values according to a sampling pattern different from the sampling pattern according to which the sample values are generated by determining pixel values of neighboring pixels.
10. Apparatus in accordance with one of the claims 8 to 9, in which the sampling means (204) are arranged to determine the pixel value of a pixel using four sample values, and to generate each of the four sample values from the sample points (321) 324) within the individual sample areas (311) and (314).
11. Apparatus according to claim 8, wherein the sampling means (204) is arranged to generate each sample value from a sampling region (311) comprising n x n sub-pixels (n x n), wherein the pixel (305) comprises p x p sub-pixels and p is larger than n.
12. Apparatus according to claim 8, wherein the sampling means (204) is arranged to generate from the sampling points (321) 324 each sampling value for determining the pixel value of one pixel, each sampling point for generating sampling values for determining the pixel value of said one pixel being located at a different distance from the center of said one pixel in the x-direction and also at a different distance from the center of said one pixel in the y-direction.
13. The device of claim 12, wherein the sampling device (204) is further configured to generate a first sample value from a first sample point (321) located in column 1, row 1 of the first sampling region (311), a second sample value from a second sample point (322) located in column 2, row 2 of the second sampling region (312), a third sample value from a third sample point (323) located in column 2, row 1 of the third sampling region (313), and a fourth sample value from a fourth sample point (324) located in column 1, row 2 of the fourth sampling region (314).
14. Apparatus according to claim 8, wherein the sampling means is arranged to generate an additional sample value from the sample located at the centre of the pixel.
15. An electronic device, comprising
Means for generating pixel values according to any one of claims 8 to 14;
characterized in that the device is a mobile radio terminal, a pager, a communicator, an electronic organizer, a smartphone, a personal digital assistant, a computer or a mobile telephone.
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP04027570.3 | 2004-11-19 | ||
| EP04027570A EP1659536A1 (en) | 2004-11-19 | 2004-11-19 | Method and apparatus for pixel sampling |
| US63062804P | 2004-11-24 | 2004-11-24 | |
| US60/630,628 | 2004-11-24 | ||
| PCT/EP2005/012371 WO2006053762A1 (en) | 2004-11-19 | 2005-11-18 | Method and apparatus for pixel sampling |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1116900A1 HK1116900A1 (en) | 2009-01-02 |
| HK1116900B true HK1116900B (en) | 2010-08-13 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7348996B2 (en) | Method of and system for pixel sampling | |
| EP3129974B1 (en) | Gradient adjustment for texture mapping to non-orthonormal grid | |
| US7876332B1 (en) | Shader that conditionally updates a framebuffer in a computer graphics system | |
| AU2003200970B2 (en) | Hardware-enhanced graphics rendering of sub-component-oriented characters | |
| US20050041039A1 (en) | Graphics engine, and display driver IC and display module incorporating the graphics engine | |
| US20050212806A1 (en) | Graphics engine converting individual commands to spatial image information, and electrical device and memory incorporating the graphics engine | |
| CN1809840B (en) | Method and apparatus for creating sampling pattern | |
| JP2010102713A (en) | Method of and apparatus for processing computer graphics | |
| JP4456003B2 (en) | Low cost supersampling rasterization | |
| US8547395B1 (en) | Writing coverage information to a framebuffer in a computer graphics system | |
| US7817165B1 (en) | Selecting real sample locations for ownership of virtual sample locations in a computer graphics system | |
| CN100565585C (en) | Method and apparatus for pixel sampling | |
| EP1431920B1 (en) | Low-cost supersampling rasterization | |
| US8115780B2 (en) | Image generator | |
| HK1116900B (en) | Method and apparatus for pixel sampling | |
| JP3872056B2 (en) | Drawing method | |
| JP2011028641A (en) | Image processing device and image processing method | |
| KR100927131B1 (en) | Anti-aliasing method and device |