WO2006129902A1 - Fast anti-aliasing method - Google Patents
Fast anti-aliasing method Download PDFInfo
- Publication number
- WO2006129902A1 WO2006129902A1 PCT/KR2005/002828 KR2005002828W WO2006129902A1 WO 2006129902 A1 WO2006129902 A1 WO 2006129902A1 KR 2005002828 W KR2005002828 W KR 2005002828W WO 2006129902 A1 WO2006129902 A1 WO 2006129902A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- sub
- pixel
- graphic
- storage unit
- pixels
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/503—Blending, e.g. for anti-aliasing
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/363—Graphics controllers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/12—Indexing scheme for image data processing or generation, in general involving antialiasing
Definitions
- the present invention relates to a fast anti-aliasing method, and more particularly, to a fast anti-aliasing method wherein in the process of extracting cells overlapping each segment of a graphic, only which sub-pixels overlap the segments of the graphic is calculated without calculating areas of the overlapped cell portions, so that a process of multiplication and division operations due to the area calculation of the graphic is removed, thereby more rapidly displaying mathematically described graphics.
- the phenomenon shown in Fig. 2 is called a jagging effect.
- antialiasing is generally performed in computer graphics.
- the anti-aliasing means an operation of reducing a jagging effect by adjusting the intensity of brightness of pixels located in the vicinity of borders where the jagging effect occurs. Therefore, if the anti-aliasing is performed on a graphic of Fig. 2, the graphic is displayed as an image as shown in Fig. 3.
- the intensity of the border pixel is calculated according to what percent of one pixel a triangle described with an actual mathematical expression covers.
- an algorithm for this calculation is called area-sampling.
- the intensity of brightness of the pixel is calculated and displayed on the basis of an area where the triangle covers the pixel.
- the areas shown in Fig. 6 are calculated with respect to a segment connecting the coordinates (3, 1) and (1, 6), and the area calculation for a pixel is made as shown in Fig. 7.
- the area is calculated by the following mathematical expression (1).
- each of the length and width of a pixel be "1"
- each of l's length and 2's length is expressed as a decimal point which is smaller than "1”. Since this requires a floating point operation, the length and width of a pixel are up- scaled as "256" in most algorithms.
- An object of the present invention is to provide a fast antialiasing method that enables graphics to be more rapidly displayed when displaying the mathematically described graphics on a display device.
- a fast anti-aliasing method that is applied to a display device including an operator 10 having a sub-pixel information extraction module 11, a sub-pixel information sorting module 12 and a pixel color value calculation module 13; a memory 20 having a graphic information storage unit 21, a sub-pixel information storage unit 22 and a display buffer 23; and a display 30.
- the fast anti-aliasing method of the present invention comprises a tenth step SlO of extracting sub-pixels overlapping along segments of a graphic and storing the sub-pixels into the sub-pixel information storage unit 22, using graphic information stored in the graphic information storage unit 21 of the memory 20, by the sub-pixel information extraction module 11 of the operator 10; a twentieth step S20 of sorting the sub-pixels stored in the sub-pixel information storage unit 22 primarily in an ascending order of Y coordinates and secondarily in an ascending order of X coordinates, by the sub-pixel information sorting module 12 of the operator 10; and a thirtieth step S30 of calculating intensity of each pixel through the sorted sub-pixels in the sub-pixel information storage unit 22 and then storing result values into the display buffer 23 such that contents of the display buffer 23 are reflected to the physical display 30, by the pixel color value calculation module 13 of the operator 10.
- FIGs. 1 to 4 are reference views illustrating a general anti-aliasing method.
- FIGs. 5 to 2d are reference views illustrating the problem of a conventional antialiasing method.
- Fig. 8 is a functional block diagram showing the configuration of a display device to which a fast anti-aliasing method is applied according to an embodiment of the present invention.
- Fig. 9 is an operational flow chart illustrating the fast anti-aliasing method according to an embodiment of the present invention.
- Figs. 10 to 12 are reference views illustrating the tenth step SlO in the fast antialiasing method of Fig. 9.
- Figs. 13 to 15 are reference views illustrating a process of displaying a triangle using 16 pixels.
- Figs. 16 to 35 are reference views illustrating a process of recording coordinates, intensity and coverage of each pixel through the tenth step SlO in the fast anti-aliasing method of Fig. 9.
- Fig. 36 is a view showing result values of the twentieth step S20 in the fast antialiasing method of Fig. 9.
- Fig. 37 is a view showing result values of the thirtieth step S30 in the fast antialiasing method of Fig. 9.
- Fig. 8 is a functional block diagram showing the configuration of a display device to which a fast anti-aliasing method is applied according to an embodiment of the present invention.
- the display device comprises an operator 10 having a sub-pixel information extraction module 11, a sub-pixel information sorting module 12 and a pixel color value calculation module 13; a memory 20 having a graphic information storage unit 21, a sub-pixel information storage unit 22 and a display buffer 23; and a display 30.
- the sub-pixel information extraction module 11 of the operator 10 extracts sub-pixels overlapping along segments of a graphic and then stores the result values thereof into the sub-pixel information storage unit 21, using graphic information stored in the graphic information storage unit 21 of the memory 20.
- the sub-pixel information sorting module 12 of the operator 10 sorts the sub-pixels stored in the sub-pixel information storage unit 22 primarily in an ascending order of Y coordinates and secondarily in an ascending order of X coordinates.
- the pixel color value calculation module 13 of the operator 10 calculates the intensity of each pixel based on the sub-pixels sorted by the sub-pixel information storage unit 22 and then stores the result values thereof into the display buffer 21 such that contents of the display buffer 21 are reflected to the physical display 30.
- the graphic information storage unit 21 of the memory 20 is a memory for holding information on a graphic, i.e. information on the segments forming the graphic or information on Bezier curves. At this time, the Bezier curves can be easily approximated into segments.
- the sub-pixel information storage unit 22 of the memory 20 is a memory for holding sub-pixel coordinates extracted along the segment forming the graphic and is also a memory for holding a table sustained in a progress step of an algorithm in a word file.
- the display buffer 23 of the memory 20 is a memory for holding the intensity of each pixel of a graphic that will be finally displayed on the display 30.
- the sub-pixel information extraction module 11 of the operator 10 extracts sub- pixels overlapping along the segments of a graphic and then stores the sub-pixels in the sub-pixel information storage unit 22, using graphic information stored in the graphic information storage unit 21 of the memory 20 (SlO).
- the aforementioned tenth step SlO comprises an eleventh step Sl 1 in which the sub-pixel information extraction module 11 of the operator 10 extracts x and y coordinates of the sub-pixels through the scan along each segment of a graphic to extract the sub-pixels overlapping along the segments of the graphic using the graphic information stored in the graphic information storage unit 21 of the memory 20 and then stores the extracted coordinates into the sub-pixel information storage unit 22; and a twelfth step S 12 in which the sub- pixel information extraction module 11 determines the presence of the remaining segments of the graphic stored in the graphic information storage unit 21 and then either returns to the eleventh step SIl if there exists any segments or proceeds to a twentieth step S20 if there exists no segments.
- one pixel is divided into 16 sub-pixels. In such a case, it is calculated only which sub-pixels overlap the segment forming a triangle. That is, the area of sub- pixels overlapping the segment needs not be calculated. At this time, in a case where one pixel is divided into 16 sub-pixels, the respective coordinates of the triangle are up-scaled as "(3 * 16, 1 * 16), (1 * 16, 6 * 16), (7 * 16, 8 * 16)".
- a process of multiplying the original coordinates by 16 can be performed very fast by performing a 4-bit shift operation.
- a sign of the intensity is recorded differently for each segment proceeding to an upward or downward direction.
- the coverage is recorded according to how high the height of one pixel is covered with a segment, and a sign of the coverage is also recorded differently for each segment proceeding to the upward or downward direction.
- FIG. 16 shows that a first table entry is added.
- the intensity and coverage values are initialized as "0" when each table entry is added. At this time, the intensity and coverage have a negative value when the direction of a segment is downward, whereas the intensity and coverage have a positive value when the direction of a segment is upward.
- the segment of the triangle currently proceeds from (16, 0) to (0, 16), and thus, the intensity and coverage have a negative value. Since sub-pixels within a pixel have the intensity of "0", “1", “2”, and "3", respectively, from left to right, the sub-pixel of Fig.
- Fig. 17 shows that a new table entry has been added.
- a pixel coordinate for the current sub-pixel is different from the just previous pixel coordinate, a new table entry should be added.
- the initial values of intensity and coverage for the current sub-pixel are initialized as "0", as shown in the table of Fig. 17.
- Fig. 18 shows a case where the pixel coordinate for the current sub-pixel is the same as that for the just previous sub-pixel. In such a case, the intensity and the coverage of the current sub-pixel are added to the just previous table entry as shown in the table of Fig. 18.
- Fig. 19 and Fig. 20 shows the last sub-pixel corresponding to the segment proceeding from (16, 0) to (0, 16). In such a case, the values of intensity and coverage are shown in the table of Fig. 20.
- Fig. 21 shows that edge tracking for the segment proceeding from (0, 16) to (32, 32) starts.
- a sub-pixel located at a point where two segments intersect each other is always detected twice. That is, the sub-pixel (0, 16) is first detected (has been recorded in the just previous step) while a segment proceeds from (16, 0) to (0, 16), and detected once again while a segment proceeds from (0, 16) to (32, 32).
- a sub-pixel located at a point where two segments intersect each other is recorded when the directions of the segments are changed, whereas it is not recorded when the directions of the segments are not changed.
- the directions of the segment proceeding from (16, 0) to (0, 16) and the segment proceeding from (0, 16) to (32, 32) are all downward, the sub-pixel is not recorded.
- Figs. 22 to 24 show that new table entries are added while a new segment proceeds from (0, 16) to (32, 32).
- Fig. 25 shows the last sub-pixel corresponding to the segment proceeding from (0, 16) to (32, 32). In such a case, the values of intensity and coverage are shown in the table of Fig. 25.
- Fig. 26 shows that edge tracking for the segment proceeding from (32, 32) to (16, O) starts. At this time, since the directions of the previous segment proceeding from (0, 16) to (32, 32) and the current segment proceeding from (32, 32) to (16, 0) are opposite to each other, a first sub-pixel (32, 32) is recorded as shown in the table of Fig. 26.
- Figs. 27 to 33 show that new table entries are added while a new segment proceeds from (32, 32) to (16, 0).
- Fig. 34 shows the last sub-pixel corresponding to the segment proceeding from (32, 32) to (16, 0). In such a case, the values of intensity and coverage are shown in the table of Fig. 34.
- the sub-pixel information sorting module 12 of the operator 10 sorts the sub-pixels stored in the sub-pixel information storage unit 22 primarily in an ascending order of Y coordinate and secondly in an ascending order of X coordinate, as shown in Fig. 36 (S20).
- a Quick Sort or Shell Sort sorting algorithm may be used when the sub-pixel information sorting module 12 sorts the sub-pixels primarily in an ascending order of Y coordinate and ascending order of X coordinate.
- the pixel color value calculation module 13 of the operator 10 obtains the result values as shown in Fig. 37 by calculating the intensity of each pixel through the sorted sub-pixels in the sub-pixel information storage unit 22 and then stores the obtained result values into the display buffer 23 such that the contents of the display buffer 23 are reflected to the physical display 30 (S30).
- respective Y-pixel lines are drawn from top to bottom with appropriate intensity using the information shown in Fig. 37.
- the pixel color value calculation module 13 can calculate the intensity of each pixel using pseudo codes described in a word file.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
The present invention relates to a fast anti-aliasing method wherein in the process of extracting cells overlapping each segment of a graphic, it is calculated only which sub-pixels overlap the segments of the graphic without calculating areas of the overlapped cell portions, so that a process of multiplication and division operations due to the area calculation of the graphic is removed, thereby more rapidly displaying mathematically described graphics. According to the present invention, a more rapid operation can be made due to a display process of the graphic. Therefore, there is an advantage in that the system efficiency can be maximized and the quality of service can also be enhanced.
Description
Description
FAST ANTI-ALIASING METHOD
Technical Field
[1] The present invention relates to a fast anti-aliasing method, and more particularly, to a fast anti-aliasing method wherein in the process of extracting cells overlapping each segment of a graphic, only which sub-pixels overlap the segments of the graphic is calculated without calculating areas of the overlapped cell portions, so that a process of multiplication and division operations due to the area calculation of the graphic is removed, thereby more rapidly displaying mathematically described graphics.
[2]
Background Art
[3] As is generally known, the utility value of display devices has incessantly been increased in a modern society with the rapid development of computers, information telecommunications, electronic telecommunication industries and the relevant technologies. In particular, there are frequent occasions when mathematically described graphics should be displayed on display devices, and thus, studies on the technologies related thereto have been actively conducted.
[4] At this time, when mathematically described graphics are displayed on a display device, a distorted image is generally caused due to the characteristics of the display device. For example, a mathematically described triangle should be drawn as shown in Fig. 1, but it will be displayed as shown in Fig. 2 because each coordinate thereof should be assigned only to relevant pixel on an actual display device.
[5] The phenomenon shown in Fig. 2 is called a jagging effect. To remove it, antialiasing is generally performed in computer graphics. At this time, the anti-aliasing means an operation of reducing a jagging effect by adjusting the intensity of brightness of pixels located in the vicinity of borders where the jagging effect occurs. Therefore, if the anti-aliasing is performed on a graphic of Fig. 2, the graphic is displayed as an image as shown in Fig. 3.
[6] At this time, the intensity of the border pixel is calculated according to what percent of one pixel a triangle described with an actual mathematical expression covers. In such a case, an algorithm for this calculation is called area-sampling. As shown in Fig. 4, when there is a pixel located in a side of a triangle, the intensity of brightness of the pixel is calculated and displayed on the basis of an area where the triangle covers the pixel.
[7] Meanwhile, in order to apply such an area-sampling algorithm, contact points where the segments of a triangle come into contact with each pixel with respect to x and y
axes should be found and the multiplication operations or the like are necessary for the area calculation. Therefore, there is a problem in that a large amount of computing power is required.
[8] For example, when rendering a triangle having three coordinates such as "(3, 1), (1,
6), (7, 8)", the mathematical triangle can be first shown in Fig. 5. At this time, if the intensity of pixels located in the vicinity of borders of the triangle is calculated, each segment of the triangle is traced to find cells overlapping the segments and then to calculate areas of the cells (which indicates how many pixels the triangle covers).
[9] In other words, the areas shown in Fig. 6 are calculated with respect to a segment connecting the coordinates (3, 1) and (1, 6), and the area calculation for a pixel is made as shown in Fig. 7. In this case, the area is calculated by the following mathematical expression (1).
[10] ((l'length + 2' length) * (one pixel height)) / 2 ... (1)
[11] At this time, assuming that each of the length and width of a pixel be "1", each of l's length and 2's length is expressed as a decimal point which is smaller than "1". Since this requires a floating point operation, the length and width of a pixel are up- scaled as "256" in most algorithms.
[12] Accordingly, the foregoing coordinates of the triangle "(3, 1), (1, 6), (7, 8)" are used in a state where the coordinates are up-scaled as "(3 * 256, 1 * 256), (1 * 256, 6 * 256), (7 * 256, 8 * 256)" while the algorithm is executed by a certain program. Further, the up-scaled coordinates are down-scaled by again dividing them by "256" in a final step. At this time, a process of multiplying or dividing the coordinates by "256" can be performed very fast through an 8-bit shift operation.
[13] In a conventional area-sampling algorithm in which an area is calculated as described above, however, the intersection points where segments intersect X and Y axes of each pixel should be calculated and the multiplication and division operations are inevitably included in the course of the area calculation, even though the floating point operation is eliminated in this manner. Therefore, there is still a problem in that a great deal of time should be consequently required.
[14]
Disclosure of Invention Technical Problem
[15] Accordingly, the present invention is conceived to solve the aforementioned problems in the prior art. An object of the present invention is to provide a fast antialiasing method that enables graphics to be more rapidly displayed when displaying the mathematically described graphics on a display device.
[16]
Technical Solution
[17] According to one aspect of the present invention for achieving the object, there is provided a fast anti-aliasing method that is applied to a display device including an operator 10 having a sub-pixel information extraction module 11, a sub-pixel information sorting module 12 and a pixel color value calculation module 13; a memory 20 having a graphic information storage unit 21, a sub-pixel information storage unit 22 and a display buffer 23; and a display 30. The fast anti-aliasing method of the present invention comprises a tenth step SlO of extracting sub-pixels overlapping along segments of a graphic and storing the sub-pixels into the sub-pixel information storage unit 22, using graphic information stored in the graphic information storage unit 21 of the memory 20, by the sub-pixel information extraction module 11 of the operator 10; a twentieth step S20 of sorting the sub-pixels stored in the sub-pixel information storage unit 22 primarily in an ascending order of Y coordinates and secondarily in an ascending order of X coordinates, by the sub-pixel information sorting module 12 of the operator 10; and a thirtieth step S30 of calculating intensity of each pixel through the sorted sub-pixels in the sub-pixel information storage unit 22 and then storing result values into the display buffer 23 such that contents of the display buffer 23 are reflected to the physical display 30, by the pixel color value calculation module 13 of the operator 10.
[18]
Advantageous Effects
[19] According to a fast anti-aliasing method of the present invention as described above, in the process of extracting cells overlapping each segment of a graphic, it is calculated only which sub-pixels overlap the segments of the graphic without calculating areas of the overlapped cell portions, so that a process of multiplication and division operations due to the area calculation of the graphic is removed, thereby more rapidly displaying mathematically described graphics. Therefore, there is an advantage in that the system efficiency can be maximized and the quality of services can also be enhanced.
[20]
Brief Description of the Drawings
[21] Figs. 1 to 4 are reference views illustrating a general anti-aliasing method.
[22] Figs. 5 to 2d are reference views illustrating the problem of a conventional antialiasing method.
[23] Fig. 8 is a functional block diagram showing the configuration of a display device to which a fast anti-aliasing method is applied according to an embodiment of the present invention.
[24] Fig. 9 is an operational flow chart illustrating the fast anti-aliasing method according to an embodiment of the present invention.
[25] Figs. 10 to 12 are reference views illustrating the tenth step SlO in the fast antialiasing method of Fig. 9.
[26] Figs. 13 to 15 are reference views illustrating a process of displaying a triangle using 16 pixels.
[27] Figs. 16 to 35 are reference views illustrating a process of recording coordinates, intensity and coverage of each pixel through the tenth step SlO in the fast anti-aliasing method of Fig. 9.
[28] Fig. 36 is a view showing result values of the twentieth step S20 in the fast antialiasing method of Fig. 9.
[29] Fig. 37 is a view showing result values of the thirtieth step S30 in the fast antialiasing method of Fig. 9.
[30]
[31] <Explanation of Reference Numerals to Main Portions of Drawings>
[32] 10: Operator
[33] 11 : Sub-pixel information extraction module
[34] 12: Sub-pixel information sorting module
[35] 13: Pixel color value calculation module
[36] 20: Memory
[37] 21 : Graphic information storage unit
[38] 22: Sub-pixel information storage unit
[39] 23: Display buffer
[40] 30: Display
[41]
Best Mode for Carrying Out the Invention
[42] Hereinafter, a fast anti-aliasing method according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings.
[43] Fig. 8 is a functional block diagram showing the configuration of a display device to which a fast anti-aliasing method is applied according to an embodiment of the present invention. The display device comprises an operator 10 having a sub-pixel information extraction module 11, a sub-pixel information sorting module 12 and a pixel color value calculation module 13; a memory 20 having a graphic information storage unit 21, a sub-pixel information storage unit 22 and a display buffer 23; and a display 30.
[44] Here, the sub-pixel information extraction module 11 of the operator 10 extracts sub-pixels overlapping along segments of a graphic and then stores the result values
thereof into the sub-pixel information storage unit 21, using graphic information stored in the graphic information storage unit 21 of the memory 20.
[45] Further, the sub-pixel information sorting module 12 of the operator 10 sorts the sub-pixels stored in the sub-pixel information storage unit 22 primarily in an ascending order of Y coordinates and secondarily in an ascending order of X coordinates.
[46] In addition, the pixel color value calculation module 13 of the operator 10 calculates the intensity of each pixel based on the sub-pixels sorted by the sub-pixel information storage unit 22 and then stores the result values thereof into the display buffer 21 such that contents of the display buffer 21 are reflected to the physical display 30.
[47] Meanwhile, the graphic information storage unit 21 of the memory 20 is a memory for holding information on a graphic, i.e. information on the segments forming the graphic or information on Bezier curves. At this time, the Bezier curves can be easily approximated into segments.
[48] Further, the sub-pixel information storage unit 22 of the memory 20 is a memory for holding sub-pixel coordinates extracted along the segment forming the graphic and is also a memory for holding a table sustained in a progress step of an algorithm in a word file.
[49] In addition, the display buffer 23 of the memory 20 is a memory for holding the intensity of each pixel of a graphic that will be finally displayed on the display 30.
[50] Now, a fast anti-aliasing method of an embodiment of the present invention, which has been applied to a display device so configured, will be described with reference to Fig. 9.
[51] First, according to an algorithm of the present invention, when extracting cells overlapping each segment of a graphic, area calculation is made not for the overlapped cell but for each of 4, 16, 64 or 256 sub-pixel into which a single pixel is divided.
[52] The sub-pixel information extraction module 11 of the operator 10 extracts sub- pixels overlapping along the segments of a graphic and then stores the sub-pixels in the sub-pixel information storage unit 22, using graphic information stored in the graphic information storage unit 21 of the memory 20 (SlO). At this time, the aforementioned tenth step SlO comprises an eleventh step Sl 1 in which the sub-pixel information extraction module 11 of the operator 10 extracts x and y coordinates of the sub-pixels through the scan along each segment of a graphic to extract the sub-pixels overlapping along the segments of the graphic using the graphic information stored in the graphic information storage unit 21 of the memory 20 and then stores the extracted coordinates into the sub-pixel information storage unit 22; and a twelfth step S 12 in which the sub- pixel information extraction module 11 determines the presence of the remaining segments of the graphic stored in the graphic information storage unit 21 and then
either returns to the eleventh step SIl if there exists any segments or proceeds to a twentieth step S20 if there exists no segments.
[53] Hereinafter, a process of executing the aforementioned tenth step SlO will be described in detail with reference to Figs. 10 tol2, Figs. 13 to 15 and Figs. 16 to 35.
[54] In Fig. 10, one pixel is divided into 16 sub-pixels. In such a case, it is calculated only which sub-pixels overlap the segment forming a triangle. That is, the area of sub- pixels overlapping the segment needs not be calculated. At this time, in a case where one pixel is divided into 16 sub-pixels, the respective coordinates of the triangle are up-scaled as "(3 * 16, 1 * 16), (1 * 16, 6 * 16), (7 * 16, 8 * 16)". Here, a process of multiplying the original coordinates by 16 can be performed very fast by performing a 4-bit shift operation.
[55] At this time, if cells overlapping the segment are found ass shown in Fig. 10, the results shown in Fig. 11 can be obtained. A "Bresenham Line Drawing" algorithm or DDA (Digital Differential Analyzer) algorithm can be used to trace the cells overlapping the segment.
[56] To determine the intensity of the pixels of Fig. 11, pixels located on the right side of each Y line should be found as shown in Fig. 12. However, this process is very simply performed by merely checking the 4 low-order bits of each found cell. Consequently, the intensity of the pixels is calculated as 12/16 (75%).
[57] At this time, higher quality can also be obtained according to how many sub-pixels one pixel is divided into. In a case where one pixel is divided into 256 sub-pixels, values having 256 gradations can be obtained, which enables the anti-aliasing for true colors.
[58] Meanwhile, a process of displaying a triangle shown in Fig. 13 using 16 sub-pixels will be described hereinafter as an example. First, the coordinates of the triangle are up-scaled as shown in Fig. 14. The coordinates of the triangle are changed from (1, 0) to (16, 0), from (0, 1) to (0, 16), and from (2, 2) to (32, 32), respectively. At this time, the intensity and coverage of each pixel are recorded simultaneously when tracing sub- pixels overlapping segments of the triangle. To this end, a modified line drawing algorithm, i.e. a "Bresenham Line Drawing" algorithm, a DDA (Digital Differential Analyzer) algorithm or the like can be used. In other words, the intensity and coverage of actual pixels are recorded while finding out the relevant sub-pixels.
[59] At this time, a sign of the intensity is recorded differently for each segment proceeding to an upward or downward direction. In addition, the coverage is recorded according to how high the height of one pixel is covered with a segment, and a sign of the coverage is also recorded differently for each segment proceeding to the upward or downward direction.
[60] Therefore, the intensity and coverage of the pixel are consequently recorded while
the sub-pixels are traced and consequently found, as shown in Fig. 15.
[61] A process of performing the aforementioned calculation will be shown in Figs. 16 to 35. Fig. 16 shows that a first table entry is added. The intensity and coverage values are initialized as "0" when each table entry is added. At this time, the intensity and coverage have a negative value when the direction of a segment is downward, whereas the intensity and coverage have a positive value when the direction of a segment is upward. In Fig. 16, the segment of the triangle currently proceeds from (16, 0) to (0, 16), and thus, the intensity and coverage have a negative value. Since sub-pixels within a pixel have the intensity of "0", "1", "2", and "3", respectively, from left to right, the sub-pixel of Fig. 16 is calculated as having the intensity of "0" as shown in the table of Fig. 16. Further, since the coverage is always increased or decreased by "1" in accordance with the direction of the segment, the coverage of the sub-pixel in Fig. 16 is decreased by "1" as shown in the table of Fig. 16.
[62] Meanwhile, Fig. 17 shows that a new table entry has been added. At this time, if a pixel coordinate for the current sub-pixel is different from the just previous pixel coordinate, a new table entry should be added. In such a case, the initial values of intensity and coverage for the current sub-pixel are initialized as "0", as shown in the table of Fig. 17.
[63] Fig. 18 shows a case where the pixel coordinate for the current sub-pixel is the same as that for the just previous sub-pixel. In such a case, the intensity and the coverage of the current sub-pixel are added to the just previous table entry as shown in the table of Fig. 18.
[64] Fig. 19 and Fig. 20 shows the last sub-pixel corresponding to the segment proceeding from (16, 0) to (0, 16). In such a case, the values of intensity and coverage are shown in the table of Fig. 20.
[65] Fig. 21 shows that edge tracking for the segment proceeding from (0, 16) to (32, 32) starts. At this time, a sub-pixel located at a point where two segments intersect each other is always detected twice. That is, the sub-pixel (0, 16) is first detected (has been recorded in the just previous step) while a segment proceeds from (16, 0) to (0, 16), and detected once again while a segment proceeds from (0, 16) to (32, 32). As such, a sub-pixel located at a point where two segments intersect each other is recorded when the directions of the segments are changed, whereas it is not recorded when the directions of the segments are not changed. In Fig. 21, since the directions of the segment proceeding from (16, 0) to (0, 16) and the segment proceeding from (0, 16) to (32, 32) are all downward, the sub-pixel is not recorded.
[66] Figs. 22 to 24 show that new table entries are added while a new segment proceeds from (0, 16) to (32, 32). Fig. 25 shows the last sub-pixel corresponding to the segment proceeding from (0, 16) to (32, 32). In such a case, the values of intensity and coverage
are shown in the table of Fig. 25.
[67] Fig. 26 shows that edge tracking for the segment proceeding from (32, 32) to (16, O) starts. At this time, since the directions of the previous segment proceeding from (0, 16) to (32, 32) and the current segment proceeding from (32, 32) to (16, 0) are opposite to each other, a first sub-pixel (32, 32) is recorded as shown in the table of Fig. 26.
[68] Furthermore, Figs. 27 to 33 show that new table entries are added while a new segment proceeds from (32, 32) to (16, 0). Fig. 34 shows the last sub-pixel corresponding to the segment proceeding from (32, 32) to (16, 0). In such a case, the values of intensity and coverage are shown in the table of Fig. 34.
[69] At this time, whether the first sub-pixel is recorded should be determined according to whether the proceeding directions of the first and last segments are the same as or different from each other. In the above process, such a determination is omitted herein for the sake of convenience.
[70] Through the aforementioned processes, the table shown in Fig 35 is finally obtained. In such a case, the values in the table are stored in the sub-pixel information storage unit 22 of the memory 20.
[71] Thereafter, the sub-pixel information sorting module 12 of the operator 10 sorts the sub-pixels stored in the sub-pixel information storage unit 22 primarily in an ascending order of Y coordinate and secondly in an ascending order of X coordinate, as shown in Fig. 36 (S20). At this time, a Quick Sort or Shell Sort sorting algorithm may be used when the sub-pixel information sorting module 12 sorts the sub-pixels primarily in an ascending order of Y coordinate and ascending order of X coordinate.
[72] Subsequently, the pixel color value calculation module 13 of the operator 10 obtains the result values as shown in Fig. 37 by calculating the intensity of each pixel through the sorted sub-pixels in the sub-pixel information storage unit 22 and then stores the obtained result values into the display buffer 23 such that the contents of the display buffer 23 are reflected to the physical display 30 (S30). Thus, respective Y-pixel lines are drawn from top to bottom with appropriate intensity using the information shown in Fig. 37. At this time, the pixel color value calculation module 13 can calculate the intensity of each pixel using pseudo codes described in a word file.
[73] Although the present invention has been described in detail in connection with the specific embodiments, it will be readily understood by those skilled in the art that various modifications and changes can be made thereto within the technical spirit and scope of the present invention. It is also apparent that the modifications and changes fall within the scope of the present invention defined by the appended claims.
[74]
Claims
Claims
[1] A fast anti-aliasing method applied to a display device including an operator (10) having a sub-pixel information extraction module (11), a sub-pixel information sorting module (12) and a pixel color value calculation module (13); a memory
(20) having a graphic information storage unit (21), a sub-pixel information storage unit (22) and a display buffer (23); and a display (30), comprising: a tenth step (SlO) of extracting sub-pixels overlapping along segments of a graphic and storing the sub-pixels into the sub-pixel information storage unit (22), using graphic information stored in the graphic information storage unit
(21) of the memory (20), by the sub-pixel information extraction module (11) of the operator (10); a twentieth step (S20) of sorting the sub-pixels stored in the sub-pixel information storage unit (22) primarily in an ascending order of Y coordinates and secondarily in an ascending order of X coordinates, by the sub-pixel information sorting module (12) of the operator (10); and a thirtieth step S30 of calculating intensity of each pixel through the sorted sub- pixels in the sub-pixel information storage unit (22) and then storing result values into the display buffer (23) such that contents of the display buffer (23) are reflected to the physical display (30), by the pixel color value calculation module (13) of the operator (10).
[2] The method as claimed in claim 1, wherein the tenth step (SlO) comprises: an eleventh step (S 11) of extracting x and y coordinates of the sub-pixels through scan along each of the segments of the graphic to extract the sub-pixels overlapping along the segments of the graphic using the graphic information stored in the graphic information storage unit (21) of the memory (20) and then storing the extracted coordinates into the sub-pixel information storage unit (22), by the sub-pixel information extraction module (11) of the operator (10); and a twelfth step (S 12) of determining the presence of remaining segments of the graphic stored in the graphic information storage unit (21) and then either returning to the eleventh step (SIl) if there exists any segments or proceeding to the twentieth step (S20) if there exists no segments, by the sub-pixel information extraction module (11).
[3] The method as claimed in claim 2, wherein in the eleventh step (Sl 1), the sub- pixel information extraction module (11) records coverage and intensity values simultaneously when storing the x and y coordinates of the sub-pixels into the sub-pixel information storage unit (22).
[4] The method as claimed in claim 2, wherein in the eleventh step (Sl 1), the sub-
pixel information extraction module (11) can extract the sub-pixels overlapping along the segments of the graphic using a "Bresenham Line Drawing" or "LineDDA" algorithm.
[5] The method as claimed in claim 1, wherein in the twentieth step (S20), the sub- pixel information sorting module (12) can align the sub-pixels primarily in an ascending order of Y coordinates and secondarily in an ascending order of X coordinates using a "Quick Sort" or "Shell Sort" sorting algorithm.
[6] The method as claimed in claim 1, wherein in the thirtieth step (S30), the pixel color value calculation module (13) can calculate the intensity of each pixel using pseudo codes described in a word file.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20050047623 | 2005-06-03 | ||
KR10-2005-0047623 | 2005-06-03 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2006129902A1 true WO2006129902A1 (en) | 2006-12-07 |
Family
ID=37481801
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2005/002828 WO2006129902A1 (en) | 2005-06-03 | 2005-08-26 | Fast anti-aliasing method |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR100719480B1 (en) |
WO (1) | WO2006129902A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101036242B1 (en) * | 2009-06-05 | 2011-05-20 | 계명대학교 산학협력단 | Image rendering method for vector graphic and apparatus thereof |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07134769A (en) * | 1993-11-09 | 1995-05-23 | Fujitsu General Ltd | Anti-aliasing processing method for image synthesis |
JPH1186007A (en) * | 1997-07-02 | 1999-03-30 | Hewlett Packard Co <Hp> | Method for finding rate of pixel covered with primitive |
JP2001167266A (en) * | 1999-12-13 | 2001-06-22 | Furukawa Electric Co Ltd:The | Image processor |
US6377274B1 (en) * | 1999-07-15 | 2002-04-23 | Intel Corporation | S-buffer anti-aliasing method |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100243184B1 (en) * | 1995-06-30 | 2000-02-01 | 윤종용 | Anti-aliasing graphics apparatus using virtual sub-pixel memory |
-
2005
- 2005-08-26 WO PCT/KR2005/002828 patent/WO2006129902A1/en active Application Filing
- 2005-11-25 KR KR1020050113627A patent/KR100719480B1/en not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07134769A (en) * | 1993-11-09 | 1995-05-23 | Fujitsu General Ltd | Anti-aliasing processing method for image synthesis |
JPH1186007A (en) * | 1997-07-02 | 1999-03-30 | Hewlett Packard Co <Hp> | Method for finding rate of pixel covered with primitive |
US6377274B1 (en) * | 1999-07-15 | 2002-04-23 | Intel Corporation | S-buffer anti-aliasing method |
JP2001167266A (en) * | 1999-12-13 | 2001-06-22 | Furukawa Electric Co Ltd:The | Image processor |
Also Published As
Publication number | Publication date |
---|---|
KR20060126344A (en) | 2006-12-07 |
KR100719480B1 (en) | 2007-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7027056B2 (en) | Graphics engine, and display driver IC and display module incorporating the graphics engine | |
US7136083B2 (en) | Display method by using sub-pixels | |
US7764292B2 (en) | Three dimensional graphics processing apparatus, image display apparatus, three dimensional graphics processing method, control program and computer-readable recording medium | |
US20120075310A1 (en) | Arc spline gpu rasterization for cubic bezier drawing | |
US7684641B1 (en) | Inside testing for paths using a derivative mask | |
CN101911123A (en) | Graphic drawing device and graphic drawing method | |
US20120229485A1 (en) | Generating strokes in real-time on an electronic paper display | |
CN112132164B (en) | Target detection method, system, computer device and storage medium | |
US7468732B2 (en) | Character display apparatus and character display method, control program for controlling the character display method and recording medium recording the control program | |
JP2009301284A (en) | Drawing device and method | |
US6175368B1 (en) | Method and apparatus for object rendering including bump mapping | |
US20040164985A1 (en) | Triangle polygon plotting device and triangle polygon plotting method | |
CN100565585C (en) | The method and apparatus that is used for pixel sampling | |
CN1130666C (en) | Graphic obliterator | |
WO2006129902A1 (en) | Fast anti-aliasing method | |
JP4664169B2 (en) | Graphic drawing apparatus and graphic drawing program | |
WO2006129943A1 (en) | Fast anti-aliasing method | |
US20100134509A1 (en) | Image rendering processing apparatus | |
EP1139294B1 (en) | Graphical image system and apparatus | |
CN110807113B (en) | Non-iterative elimination method for rectangular primitive overlap in visual layout | |
JP2008009897A (en) | Vector graphic drawing device and program thereof | |
JPH064679A (en) | Image processor | |
KR100705188B1 (en) | A character font display method | |
US11216994B2 (en) | Method and apparatus for rendering a visual representation of a font glyph | |
CN102724432B (en) | SSE2-based image mixing processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 05808588 Country of ref document: EP Kind code of ref document: A1 |