WO1994006094A1 - Glyph rasterization method combining anti-aliasing and grid fitting - Google Patents
Glyph rasterization method combining anti-aliasing and grid fitting Download PDFInfo
- Publication number
- WO1994006094A1 WO1994006094A1 PCT/US1993/007956 US9307956W WO9406094A1 WO 1994006094 A1 WO1994006094 A1 WO 1994006094A1 US 9307956 W US9307956 W US 9307956W WO 9406094 A1 WO9406094 A1 WO 9406094A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- pixel
- fractional
- width
- glyph
- value
- Prior art date
Links
Classifications
-
- 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/22—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
- G09G5/24—Generation of individual character patterns
- G09G5/246—Generation of individual character patterns of ideographic or arabic-like characters
-
- 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
- G06T11/203—Drawing of straight lines or curves
-
- 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/22—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
- G09G5/24—Generation of individual character patterns
Definitions
- the present invention relates generally to computer graphics, and in particular, to the display of ideal glyphs using rasterization techniques for text rendering. Still more particularly, the present invention relates to a method for glyph rasterization that employs both grid fitting and anti- aliasing techniques.
- Scan conversion converts an ideal description of a character referred to as a glyph description to a pixel image.
- a glyph description of a Kan i ideograph is shown.
- a glyph description is typically a series of curves and points that define an ideal outline of the area forming the character. All existing methods for converting ideal glyph descriptions to pixel images use generalized techniques that introduce imperfections in the resulting pixel images.
- Figure IB when the ideal glyph representation of Figure 1A is converted to a 95 x 95 pixel matrix, the character remains very readable despite the imperfections. However, these imperfections become progressively more severe as the size of the ideal glyph is reduced.
- Figure 1C shows an enlarged illustration of the glyph representation of Figure 1A converted to a 14 x 14 pixel matrix. As can be seen, the 14 pixel version is unreadable.
- Common computer display technology ranges from 70 to 90 dots per inch. At these resolutions, text at relatively common sizes (10 to 20 typographer's points) can be difficult to read and aesthetically inferior.
- One approach used in the prior art to resolve this problem is a "two color grid fitting" method. This method produces pixel images using only black or white pixels .
- Grid fitting is a technique used to modify the ideal glyph shape to match the pixel grid in an effort to produce more aesthetically pleasing and readable results.
- Figures 2A-2D are a graphical representation of a pixel grid, the black and white pixels, and the glyph representation.
- Figures 2A and 2B illustrate the pixel conversion results for the Latin character "0" using standard scan conversion techniques. As shown in Figure 2A, the scan conversion process yields satisfactory results if the ideal outline happens to align with the pixel grid in a harmonious way. However, as shown in Figure 2B, when the ideal outline does not align with the pixel grid, the scan conversion produces undesired artifacts such as the two additional pixels 10 shown in Figure 2B.
- Figure 2B While the scan conversion shown in Figure 2B is mathematically correct, the process yields an aesthetically unpleasing inconsistency between the left and the right sides of the character.
- the prior art grid fitting method attempts to overcome this problem by providing "hints" for special portions of the glyph. These hints identify important portions of the glyph that should be adapted to fit in the pixel grid to produce an aesthetically pleasing result.
- Figures 2C and 2D show the effects of grid fitting.
- Figure 2C illustrates the glyph representation identical to Figure 2B.
- the grid fitting method uses the hint to control the rounding and alignment process of the outline to yield a distorted outline shown in Figure 2D with the portion of the glyph between the hint aligned with the pixel grid.
- Figure 2D the right side of the "0" is shifted about a half a pixel to the left so that the undesired artifacts 10 generated in Figure 2B are not produced.
- Hinting removes detail from the shape of the ideal outline to render a different shape, which is not ideal, but is more pleasing under (sub-optimal) conditions where there are too few pixels to represent the ideal accurately.
- Anti-aliasing techniques have been used primarily in television and video production to enhance the quality of pixel images.
- the various anti-aliasing techniques use pixels of intermediate densities or color to create the illusion of higher resolution.
- details such as curvature and varying stroke thickness that are lost with the two color grid fitting method can be rendered with a high degree of visual fidelity as shown in Figure 3A.
- Figure 3B even when anti-aliasing techniques are applied, the pixel image will still have undesired distortion and artifacts 12 due to misalignment with the pixel grid. Therefore, neither approach of the prior art is effective at providing pixel images of complex ideographic characters at small sizes.
- the present invention overcomes the limitations and shortcomings of the prior art with an improved method for generating aesthetically superior and more readable pixel images, even at small sizes, from ideal glyph representations.
- the present invention advantageously combines a two color grid fitting technique and an anti-aliasing technique to produce both ideographic and Latin glyphs with uniformly pleasing aesthetic characteristics.
- the preferred embodiment of the present invention comprises the steps of: retrieving an ideal glyph representations and hints from a font; adapting the ideal glyph representation to the pixel grid using a grid fitting technique; dividing the adapted glyph representation into a plurality of non-overlapping zones using the hints; applying an anti-aliasing technique to each zone without considering the pixel values outside the zone; and processing the zones to produce a final gray-scaled bit map.
- Figure 1A is a glyph of the prior art represented in ideal outline form
- Figure IB illustrates a prior art pixel conversion of the conventional glyph of Figure 1A to a matrix of 95 by 95 pixels;
- Figure 1C illustrates a prior art pixel conversion of the conventional glyph of Figure 1A to a matrix of 14 by 14 pixels
- Figures 2A-2D are graphical representations of the prior art pixel conversion results, a glyph representation, and a grid representing pixels
- Figures 3A and 3B are graphical representations of pixel images enhanced using anti-aliasing and a pixel grid;
- Figure 4 is a flow chart of the general method of the present invention for performing glyph rasterization;
- Figures 5A and 5B are a flow chart of a preferred method for hint conversion
- Figures 6A-6E are graphical representations of a portion of a stroke and pixel boundaries
- Figure 7 is a flow chart of a preferred method for control point transformation
- Figure 8 is a graphical representation of the preferred method for anti-aliasing of the glyph zone by zone to pixel space
- Figures 9A and 9B are a flow chart of a preferred method for sampling and processing the sampled points for scan conversion
- Figure 10 is a graphical representation of contour lines, pixel boundaries, a sample interval and a table of fractional pixel contributions.
- Figure 11 is a graph of the transformation from font units to pixel units.
- the method of the present invention advantageously yields pixel images that are more aesthetically pleasing and readable than the prior art for both Latin characters and Asian ideographs.
- the method of the present invention is preferably a computer implemented process that can be used by a conventional computer to display characters on a conventional display device such as a monitor or CRT, or to print characters on a conventional laser printer.
- FIG. 4 provides an overview of a preferred embodiment for the method of the present invention.
- the preferred method begins in step 400.
- a computer retrieves character information including ideal glyph representations and hints .
- the character information is a number of closed contours and hinting data structures .
- Each contour preferably comprises a starting point, and a number of connecting lines and curves identified by control points.
- This character information specifies an outline of the area for the character, and is specified in font units of an abstract coordinate space.
- the hint data may apply to all contours and control points of a character or only a subset of contours. Each hint identifies the parts of the character that should exactly fit the pixel grid boundaries.
- step 402 the hint portion of the character information is converted from font units of the abstract coordinate space to pixel units.
- the pixel units will be set according to operational limitations of the printer or display device being used.
- the scaling factor is also determined by the global metrics of a type face and the desired pixel size.
- Step 402 scales the hints using special grid fitting techniques as will be described below. However, those skilled in the art will realize that the various grid fitting techniques of the prior art could also be used.
- the control points are transformed to pixel units in step 403.
- the hint transformation effectively divides the image into a group of non-overlapping zones. Within the each zone, the scaling factor is slightly different from other zones which fits the hints to the pixel grid.
- step 403 the scaling information from the hint transformation step (step 402) is used to convert the control points of the contours into pixel space to produce a series of scaled line segments and curves.
- step 404 points at fixed intervals along each curve and line segment are sampled.
- step 405 the sampled points are processed zone by zone to determine the fractional coloring for each pixel and produce a gray-scaled image.
- step 406 The present invention uses this method to produce sharper transitions at those points of the glyph that have been indicated to be of aesthetic importance. Conversely, adjacent features are prevented from affecting the glyph simply because they are near a point of importance.
- each hint preferably comprises a starting point ( s) and an ending point (e) that are designated to be "snap points”.
- the hint also includes a canonical width (c) for the interval between the snap points.
- the canonical width indicates the preferred distance between the snap points at low resolution.
- the hint transformation process also uses two metrics global to the typeface: the standard horizontal and vertical stroke widths ( W) that indicate dominant stroke widths in their respective dimensions.
- the preferred method begins in step 501 of Figure 5 by scaling the starting point (s) to the fractional value s ' .
- the canonical width (c) is scaled to the fractional value c'.
- the actual stroke width, the absolute value of (s-e) is scaled to the fractional value w'
- the standard stroke width ( W) is scaled to the fractional value W .
- the fractional values for the canonical, actual and standard stroke widths are compared. If the fractional value of the actual stroke width, w' , and the fractional value of the canonical stroke width, c' , differ by more that 0.5 of a pixel, w' is used as the desired width.
- c ' is used as the desired width, and w ' is set equal to c ' .
- W fractional value of the standard stroke width
- w ' is set equal to WJ and used as the desired stroke width.
- This step establishes either the standard or the canonical stroke width as the desired stroke width, unless they differ from the actual stroke width by more than 0.5 pixel. In such a case, the actual stroke width is used for the desired stroke width.
- the scaling is further refined in step 506, in which the method determines whether w ' is wider than one pixel.
- step 507 the fractional values of the starting point s ' and the actual stroke width w ' are rounded to the nearest integer.
- step 508 the fractional value of the actual stroke width w" is added or subtracted from the fractional value of the starting point s ' depending on whether s > e to produce the transformed value of e.
- the transformation of the hint is complete and the process terminates in step 514.
- step 509 the fractional value of the actual stroke width w' is set to the larger of its actual value and 0.25 pixel.
- step 510 the fractional value of the actual stroke width w' is added or subtracted from the fractional value of the starting point s' depending on whether s > e to produce the fractional value for the end point e' .
- the method fits these points onto the pixel grid.
- step 511 the values of s' and e' are compared to the pixel boundaries. Since it was previously determined in step 506 that ⁇ v' is less than one pixel wide, the distance spanned by s ' and e' crosses at most one pixel boundary.
- step 512 the method determines whether s ' and e ' are in the same pixel . If they are contained in the same pixel, the stroke is enclosed in a single pixel and the values for s ' and e' are left unchanged. The process then ends in step 514. However, if a pixel boundary is spanned by the area between s ' and e', the values of s ' and e' are adjusted in step 513 to shift the stroke in the direction of the lesser error to force s ' and e' to reside in the same pixel. The shifting of the stroke in step 513 can best be understood with reference to Figures
- FIGS. 6A-6E which show the three possible cases when the s ' and e ' are compared to the pixel grid.
- Figure 6A no adjustment of the stroke is necessary when s ' and e' are enclosed in a single pixel.
- FIGs 6B and 6C it can be seen that the method of the present invention shifts the stroke of Figure 6B to the left by subtracting or reducing s ' and e ' by the same value to force e ' in alignment with closest pixel boundary.
- Figures 6D and 6E A similar adjustment in the opposite direction is shown in Figures 6D and 6E.
- the method of the present invention shifts the stroke of Figure 6D to the right by increasing s ' and e ' by the same value to force s ' in alignment with closest pixel boundary.
- the method of the present invention advantageously includes the benefits of stroke shifting such as the removal of undesired artifacts from the image that are caused when the ideal glyph representation does not correspond precisely to the pixel grid.
- stroke shifting such as the removal of undesired artifacts from the image that are caused when the ideal glyph representation does not correspond precisely to the pixel grid.
- the removal of such artifacts results in a much sharper image.
- step 700 the process tests whether there are any remaining control points in the glyph that need to be converted from font units to pixel units. If there are no more control points to convert, then this conversion process is complete and ends in step 706. Otherwise, the preferred method will loop through steps 702-705 until each control point is transformed. In step 702, the control point to be transformed is retrieved.
- step 703 the hint information is retrieved.
- the method retrieves the information necessary to determine the bounds for each region, if any, that have been defined by conversion of the hints in step 402.
- the scaling factor for each region is also determined.
- step 704 the value of the control point being converted is compared to the hint information retrieved in step 703 to determine which zone or region contains the control point, and therefore, the appropriate scaling factor for converting the control point from font units to pixel units .
- the control point is then scaled to pixel units in step 705 using the scaling function associated with its region or zone. Once the control point has been scaled, the method loops to step 701 and repeats the process until all the control points have been scaled.
- Figure 11 is a graph of the transformation with pixel units along the Y-axis, font units on the X-axis and the ideal transformation (i.e., linear scaling without hinting) represented by the dashed line. Without hints, the values of the control points would simply be multiplied by a scaling factor and rounded. The introduction of hints distorts the transformation space into a discontinuous, but piece-wise linear one.
- the width of the stroke is selected to be the canonical width, 0.9, and the ending coordinate, e ' , thus scales to s ' + w ' - 3.3.
- the hint triple therefore divides the interval [0,500] font units into three regions or zones as shown in Figure 11.
- the three zones range from 0 to 200, from 200 to 275 and from 275 to 500, respectively.
- Each zone provides its own scaling function.
- the three scaling functions are represented by the three solid line segments. Given a coordinate of X, a control point in font units, the method then determines which of the three ranges contains that value, and then applies the scaling function associated with that range or interval.
- the three scaling functions generated by the example hint are:
- T 0 (x) (2J/200)x, 0 ⁇ x ⁇ 200,
- the method of the present invention performs anti-aliasing to obtain an even sharper image.
- Anti-aliasing involves fitting the character to a source pixel grid which is larger than actually desired.
- Each pixel in the source grid is either black (off) or white (on) , and is represented mathematically as either a minimum (0) or maximum (1) value.
- the destination pixel grid allows the pixel values to range between 0 and 1.
- samples When the source grid is actually reduced to the desired size, there are several pixels in the source grid (called “samples”) that correspond to a single pixel on the destination grid. These samples, whose values are either 0 or 1 are averaged together, and the result is a single final value that ranges from 0 to 1.
- the present invention applies anti-aliasing steps to the glyph on a zone by zone basis.
- the hinting process divides the glyph (the letter "0") into a series of zones which are defined by the starting and stopping points of the hints.
- Each zone defines a portion of the pixel image that is predominately black or white, and the edges of - li ⁇ the zones mark areas where there is likely to be a significant color transition in the pixel grid.
- the present invention advantageously uses the zone information created by grid fitting (i.e., hints) to influence the anti-aliasing averaging process.
- the hints are preferably used to divide the glyph into several non-overlapping zones.
- the glyph is divided into three vertical zones (A, B and C) by the two horizontal hints.
- the glyph would be divided into several non-overlapping zones in both the vertical and horizontal directions.
- step 901 the curves, if any, that form the glyph are decomposed into line segments.
- the glyph will be represented only with line segments.
- step 902 one of the line segments of the glyph is retrieved.
- step 903 points are sampled on the line segment at 0.25 pixel intervals in the Y-dimension.
- the value for the sampling intervals may be selected according to the level of gray scaling permitted by the display or printing device. In this example, 0.25 has been selected for 16 shades of gray.
- step 903 sampling the line segment from (0.7, 0.7) to (1.7, 1.7) according to step 903 would require that the values of Y be selected as 0.75, 1.0, 1.25 and 1.5.
- step 904 the corresponding X coordinate for each sampled value of Y is calculated. For the line segment from (0.7, 0.7) to (1.7, 1.7) this would produce sampling points (0.75, 0.75), (1.0, 1.0) , (1.25, 1.25) and (1.5, 1.5) .
- step 905 determines whether there are any more line segments left to sample. The method preferably traverses each of the line segments of a contour until all segments of the contour have been sampled.
- step 907 a polygon filing algorithm is used to determine the area of each fractional contribution.
- the algorithm preferably defines the fractional contributions by specifying a beginning point and an ending point (or plurality thereof) on each scan line with the area between the points on or off. Each pair of points in a scan line represents an interval contributing to the fractional coloring of the pixels the interval crosses.
- step 910 the contributions to the fractional coloring are determined by measuring the area of each pixel that is covered by the interval . After the contributions for each pixel have been determined, they are summed in step 911 to produce the fractional coloring value.
- C(L 0 J, ly]) C( J, LyJ) + 0.25(Tx 0 l- ⁇ c 0 ),
- C(bt,J, LyJ) C(L ,J, LyJ) + 0.25 for all X, such that btj ⁇ X, ⁇ Lc/J,
- each C (p) represents the fractional coloring for each pixel which is used in step 912 to produce the image.
- rf (l-r)jb where r is the sum of each pixel computed above.
- the gray scale contributions for an example contour are shown.
- the interval pixel by pixel is summed according to the above equations to produce the values in each row of the table in Figure 10.
- the four rows for each pixel have been determined, they are tabulated to determine the gray scale coloring of each pixel .
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Controls And Circuits For Display Device (AREA)
- Image Processing (AREA)
- Image Generation (AREA)
Abstract
A method for rasterizing ideal glyph representations provides improved clarity and readability for Chinese and Japanese glyphs. The preferred method advantageously combines anti-aliasing and grid fitting techniques for generating images and comprises the steps of: obtaining the ideal glyph representations and hints, converting the hint information from font units of the abstract coordinate space to pixel units, transforming the control points to pixel units using the hint information to produce a series of scaled line segments and curves, sampling points at intervals along each curve and line segment, and processing the sampled points to determine the fractional coloring for each pixel and to produce sharper transitions at those points of the glyph that have been indicated to be of aesthetic importance.
Description
Glyph Rasterization Method Combining Anti-Aliasing and Grid Fitting
Background of the Invention
1. Field of the Invention The present invention relates generally to computer graphics, and in particular, to the display of ideal glyphs using rasterization techniques for text rendering. Still more particularly, the present invention relates to a method for glyph rasterization that employs both grid fitting and anti- aliasing techniques.
2. Description of Related Art
There are a number of methods that currently exist for rasterizing fonts to produce pixel images that can be displayed on a display device such as a CRT or used for printing with conventional laser printers. The conventional method for producing pixel images of fonts is scan conversion. Scan conversion converts an ideal description of a character referred to as a glyph description to a pixel image. Referring to Figure 1A, a glyph description of a Kan i ideograph is shown. A glyph description is typically a series of curves and points that define an ideal outline of the area forming the character. All existing methods for converting ideal glyph descriptions to pixel images use generalized techniques that introduce imperfections in the resulting pixel images. As shown in Figure IB, when the ideal glyph representation of Figure 1A is converted to a 95 x 95 pixel matrix, the character remains very readable despite the imperfections. However, these imperfections become progressively more severe as the size of the ideal glyph is reduced. Figure 1C shows an enlarged illustration of the glyph representation of Figure 1A converted to a 14 x 14 pixel matrix. As can be seen, the 14 pixel version is unreadable. Common computer display technology ranges from 70 to 90 dots per inch. At these resolutions, text at relatively common sizes (10 to 20 typographer's points) can be difficult to read and aesthetically inferior. One approach used in the prior art to resolve this problem is a "two color grid
fitting" method. This method produces pixel images using only black or white pixels . Grid fitting is a technique used to modify the ideal glyph shape to match the pixel grid in an effort to produce more aesthetically pleasing and readable results. Referring now to Figures 2A-2D, the effects of grid fitting are illustrated. Figures 2A-2D are a graphical representation of a pixel grid, the black and white pixels, and the glyph representation. Figures 2A and 2B illustrate the pixel conversion results for the Latin character "0" using standard scan conversion techniques. As shown in Figure 2A, the scan conversion process yields satisfactory results if the ideal outline happens to align with the pixel grid in a harmonious way. However, as shown in Figure 2B, when the ideal outline does not align with the pixel grid, the scan conversion produces undesired artifacts such as the two additional pixels 10 shown in Figure 2B. While the scan conversion shown in Figure 2B is mathematically correct, the process yields an aesthetically unpleasing inconsistency between the left and the right sides of the character. The prior art grid fitting method attempts to overcome this problem by providing "hints" for special portions of the glyph. These hints identify important portions of the glyph that should be adapted to fit in the pixel grid to produce an aesthetically pleasing result. Figures 2C and 2D show the effects of grid fitting. Figure 2C illustrates the glyph representation identical to Figure 2B. Since the portion of the glyph with the hint is not aligned with the pixel grid, the grid fitting method uses the hint to control the rounding and alignment process of the outline to yield a distorted outline shown in Figure 2D with the portion of the glyph between the hint aligned with the pixel grid. As can be seen in Figure 2D, the right side of the "0" is shifted about a half a pixel to the left so that the undesired artifacts 10 generated in Figure 2B are not produced. Hinting removes detail from the shape of the ideal outline to render a different shape, which is not ideal, but is more pleasing under (sub-optimal) conditions where there are too few pixels to represent the ideal accurately. While the improvements provided by grid fitting may be tolerable for Latin
characters, the quality of the converted pixel images of Chinese and Japanese ideographic characters continues to be unreadable on conventional computer displays. Even with grid fitting, the prior art method produces results similar to Figure 1C for small sized Kanji ideographs. Thus, there is a need for a method of converting ideal glyph representations to pixels images of higher quality.
Another method used by the prior art to improve the readability of complex characters like Kanji is anti-aliasing. Anti-aliasing techniques have been used primarily in television and video production to enhance the quality of pixel images. The various anti-aliasing techniques use pixels of intermediate densities or color to create the illusion of higher resolution. When intermediate "color" or gray scale values are used, details such as curvature and varying stroke thickness that are lost with the two color grid fitting method can be rendered with a high degree of visual fidelity as shown in Figure 3A. However, as illustrated by Figure 3B, even when anti-aliasing techniques are applied, the pixel image will still have undesired distortion and artifacts 12 due to misalignment with the pixel grid. Therefore, neither approach of the prior art is effective at providing pixel images of complex ideographic characters at small sizes. Thus, there is a need for a method of generating readable, high quality, pixel images of ideographic characters .
Summary of the Invention The present invention overcomes the limitations and shortcomings of the prior art with an improved method for generating aesthetically superior and more readable pixel images, even at small sizes, from ideal glyph representations. The present invention advantageously combines a two color grid fitting technique and an anti-aliasing technique to produce both ideographic and Latin glyphs with uniformly pleasing aesthetic characteristics. The preferred embodiment of the present invention comprises the steps of: retrieving an ideal glyph representations and hints from a font; adapting the ideal glyph representation to the pixel grid using a grid fitting technique; dividing the adapted glyph representation
into a plurality of non-overlapping zones using the hints; applying an anti-aliasing technique to each zone without considering the pixel values outside the zone; and processing the zones to produce a final gray-scaled bit map.
Brief Description of the Drawings Figure 1A is a glyph of the prior art represented in ideal outline form;
Figure IB illustrates a prior art pixel conversion of the conventional glyph of Figure 1A to a matrix of 95 by 95 pixels;
Figure 1C illustrates a prior art pixel conversion of the conventional glyph of Figure 1A to a matrix of 14 by 14 pixels; Figures 2A-2D are graphical representations of the prior art pixel conversion results, a glyph representation, and a grid representing pixels;
Figures 3A and 3B are graphical representations of pixel images enhanced using anti-aliasing and a pixel grid; Figure 4 is a flow chart of the general method of the present invention for performing glyph rasterization;
Figures 5A and 5B are a flow chart of a preferred method for hint conversion;
Figures 6A-6E are graphical representations of a portion of a stroke and pixel boundaries;
Figure 7 is a flow chart of a preferred method for control point transformation;
Figure 8 is a graphical representation of the preferred method for anti-aliasing of the glyph zone by zone to pixel space;
Figures 9A and 9B are a flow chart of a preferred method for sampling and processing the sampled points for scan conversion;
Figure 10 is a graphical representation of contour lines, pixel boundaries, a sample interval and a table of fractional pixel contributions; and
Figure 11 is a graph of the transformation from font units to pixel units.
Detailed Description of the Preferred Embodiments Referring now to Figure 4, a preferred embodiment of the general method of the present invention will be described. The method of the present invention advantageously yields pixel images that are more aesthetically pleasing and readable than the prior art for both Latin characters and Asian ideographs. The method of the present invention is preferably a computer implemented process that can be used by a conventional computer to display characters on a conventional display device such as a monitor or CRT, or to print characters on a conventional laser printer.
Figure 4 provides an overview of a preferred embodiment for the method of the present invention. The preferred method begins in step 400. In step 401, a computer (not shown) retrieves character information including ideal glyph representations and hints . The character information is a number of closed contours and hinting data structures . Each contour preferably comprises a starting point, and a number of connecting lines and curves identified by control points. This character information specifies an outline of the area for the character, and is specified in font units of an abstract coordinate space. The hint data may apply to all contours and control points of a character or only a subset of contours. Each hint identifies the parts of the character that should exactly fit the pixel grid boundaries. Next, in step 402, the hint portion of the character information is converted from font units of the abstract coordinate space to pixel units. The pixel units will be set according to operational limitations of the printer or display device being used. The scaling factor is also determined by the global metrics of a type face and the desired pixel size. Step 402 scales the hints using special grid fitting techniques as will be described below. However, those skilled in the art will realize that the various grid fitting techniques of the prior art could also be used. Once the hints have been converted, then the control points are transformed to pixel units in step 403. The hint transformation effectively divides the image into a group of non-overlapping zones. Within the each zone, the scaling factor is slightly different from other zones
which fits the hints to the pixel grid. In step 403, the scaling information from the hint transformation step (step 402) is used to convert the control points of the contours into pixel space to produce a series of scaled line segments and curves. Next in step 404, points at fixed intervals along each curve and line segment are sampled. Then in step 405, the sampled points are processed zone by zone to determine the fractional coloring for each pixel and produce a gray-scaled image. The process is then complete and ends in step 406. The present invention uses this method to produce sharper transitions at those points of the glyph that have been indicated to be of aesthetic importance. Conversely, adjacent features are prevented from affecting the glyph simply because they are near a point of importance. Referring now to Figure 5, the preferred method for performing grid fitting (steps 402,403) according to the present invention will be described in more detail. Once the hint data structures and the glyph have been retrieved (step 401) , they are processed to convert the hints from font space to the pixel space (step 402) . Each hint preferably comprises a starting point ( s) and an ending point (e) that are designated to be "snap points". The hint also includes a canonical width (c) for the interval between the snap points. The canonical width indicates the preferred distance between the snap points at low resolution. The hint transformation process also uses two metrics global to the typeface: the standard horizontal and vertical stroke widths ( W) that indicate dominant stroke widths in their respective dimensions. The preferred method begins in step 501 of Figure 5 by scaling the starting point (s) to the fractional value s ' . In step 502, the canonical width (c) is scaled to the fractional value c'. In step 503, the actual stroke width, the absolute value of (s-e) , is scaled to the fractional value w' , and in step 504, the standard stroke width ( W) is scaled to the fractional value W . Next in step 505, the fractional values for the canonical, actual and standard stroke widths are compared. If the fractional value of the actual stroke width, w' , and the fractional value of the canonical stroke width, c' , differ by more that 0.5 of a pixel, w' is used as
the desired width. Otherwise, c ' is used as the desired width, and w ' is set equal to c ' . Moreover, if fractional value of the standard stroke width, W , differs from the fractional value of the actual stroke width, w' , by less than 0.5 pixel, w ' is set equal to WJ and used as the desired stroke width. This step establishes either the standard or the canonical stroke width as the desired stroke width, unless they differ from the actual stroke width by more than 0.5 pixel. In such a case, the actual stroke width is used for the desired stroke width. The scaling is further refined in step 506, in which the method determines whether w ' is wider than one pixel. If w ' is wider than one pixel, then the method continues in step 507 where the fractional values of the starting point s ' and the actual stroke width w ' are rounded to the nearest integer. Then in step 508, the fractional value of the actual stroke width w" is added or subtracted from the fractional value of the starting point s ' depending on whether s > e to produce the transformed value of e. The transformation of the hint is complete and the process terminates in step 514. However, if the fractional value of the actual stroke width w ' in step 506 is not wider than one pixel, the process proceeds to step 509. In step 509, the fractional value of the actual stroke width w' is set to the larger of its actual value and 0.25 pixel. A minimum of value of 0.25 is imposed on w' to assure that area of the character does not disappear. Next, in step 510, the fractional value of the actual stroke width w' is added or subtracted from the fractional value of the starting point s' depending on whether s > e to produce the fractional value for the end point e' . Now that the fractional values for s ' and e' have been determined, the method fits these points onto the pixel grid. In step 511, the values of s' and e' are compared to the pixel boundaries. Since it was previously determined in step 506 that ιv' is less than one pixel wide, the distance spanned by s ' and e' crosses at most one pixel boundary. In step 512, the method determines whether s ' and e ' are in the same pixel . If they are contained in the same pixel, the stroke is enclosed in a single pixel and the values for s ' and e' are left unchanged. The process then ends in step 514. However,
if a pixel boundary is spanned by the area between s ' and e', the values of s ' and e' are adjusted in step 513 to shift the stroke in the direction of the lesser error to force s ' and e' to reside in the same pixel. The shifting of the stroke in step 513 can best be understood with reference to Figures
6A-6E which show the three possible cases when the s ' and e ' are compared to the pixel grid. As shown in Figure 6A, no adjustment of the stroke is necessary when s ' and e' are enclosed in a single pixel. Referring to Figures 6B and 6C, it can be seen that the method of the present invention shifts the stroke of Figure 6B to the left by subtracting or reducing s ' and e ' by the same value to force e ' in alignment with closest pixel boundary. A similar adjustment in the opposite direction is shown in Figures 6D and 6E. The method of the present invention shifts the stroke of Figure 6D to the right by increasing s ' and e ' by the same value to force s ' in alignment with closest pixel boundary. Therefore, the method of the present invention advantageously includes the benefits of stroke shifting such as the removal of undesired artifacts from the image that are caused when the ideal glyph representation does not correspond precisely to the pixel grid. The removal of such artifacts results in a much sharper image.
Referring now to Figure 7, the preferred method for converting the control points (step 403 of Figure 4) from font units to pixel units will be described. As noted above, the hint transformation process divided the pixel space into a group of non-overlapping zones or regions . The hint transformation is then used to guide the transformation of the control points by using information from the hint conversion process that has been described with reference to Figures 5 and 6. The preferred method starts in step 700. In step 701, the process tests whether there are any remaining control points in the glyph that need to be converted from font units to pixel units. If there are no more control points to convert, then this conversion process is complete and ends in step 706. Otherwise, the preferred method will loop through steps 702-705 until each control point is transformed. In step 702, the control point to be transformed is retrieved.
Next, in step 703, the hint information is retrieved. In particular, the method retrieves the information necessary to determine the bounds for each region, if any, that have been defined by conversion of the hints in step 402. In this step, the scaling factor for each region is also determined. Then in step 704, the value of the control point being converted is compared to the hint information retrieved in step 703 to determine which zone or region contains the control point, and therefore, the appropriate scaling factor for converting the control point from font units to pixel units . The control point is then scaled to pixel units in step 705 using the scaling function associated with its region or zone. Once the control point has been scaled, the method loops to step 701 and repeats the process until all the control points have been scaled. Those skilled in the art will realize that there are numerous control points in both the X and Y directions, and further that there may be several hints in both the vertical and horizontal directions that effect the scaling of the control points. Referring now to Figure 11, an example of the hint and control point conversion processes of Figures 5A, 5B and 7 will be described. Figure 11 is a graph of the transformation with pixel units along the Y-axis, font units on the X-axis and the ideal transformation (i.e., linear scaling without hinting) represented by the dashed line. Without hints, the values of the control points would simply be multiplied by a scaling factor and rounded. The introduction of hints distorts the transformation space into a discontinuous, but piece-wise linear one. Consider the example of a contour whose bounding interval in the X-axis is [0,500] with the hint triple (200,275,75) and a standard width of 150. Also, the contour is to be scaled by 0.012. The bounding interval scales to [0,6] . Using the steps described with reference to Figures 5A and 5B, s ' = 200 x 0.012 = 2.4. The standard width scales to 150 x 0.012 = 1.8, the actual width and the canonical width scale to 0.012 x 75 = 0.9. Since the standard and actual width do not differ by more than 0.5 of a pixel, the width of the stroke is selected to be the canonical width, 0.9, and the ending coordinate, e ' , thus scales to s ' + w ' -
3.3. Using the stroke-shifting technique of step 513, s ' = 2 .1 and e ' = 3.0. The hint triple therefore divides the interval [0,500] font units into three regions or zones as shown in Figure 11. The three zones range from 0 to 200, from 200 to 275 and from 275 to 500, respectively. Each zone provides its own scaling function. In Figure 11, the three scaling functions are represented by the three solid line segments. Given a coordinate of X, a control point in font units, the method then determines which of the three ranges contains that value, and then applies the scaling function associated with that range or interval. The three scaling functions generated by the example hint are:
T0(x)= (2J/200)x, 0<x <200,
T,(x) =2.1 + (x-200)(275-2J)/(275-200) 200<x<275, T2(x)=3.0+ (x-275)(6.0-3.0)/(500-275) 275<x<500.
It should be understood that there are two sets of hints associated with each rendering, one for the X-dimension and one for the Y-dimension. Thus, a similar transformation may be required for points in the Y-dimension. Once the control points have been determined, the method of the present invention performs anti-aliasing to obtain an even sharper image. Anti-aliasing involves fitting the character to a source pixel grid which is larger than actually desired. Each pixel in the source grid is either black (off) or white (on) , and is represented mathematically as either a minimum (0) or maximum (1) value. However, the destination pixel grid allows the pixel values to range between 0 and 1. When the source grid is actually reduced to the desired size, there are several pixels in the source grid (called "samples") that correspond to a single pixel on the destination grid. These samples, whose values are either 0 or 1 are averaged together, and the result is a single final value that ranges from 0 to 1.
The present invention applies anti-aliasing steps to the glyph on a zone by zone basis. As shown in Figure 8, the hinting process divides the glyph (the letter "0") into a series of zones which are defined by the starting and stopping points of the hints. Each zone defines a portion of the pixel image that is predominately black or white, and the edges of
- li ¬ the zones mark areas where there is likely to be a significant color transition in the pixel grid. The present invention advantageously uses the zone information created by grid fitting (i.e., hints) to influence the anti-aliasing averaging process. As shown in Figure 8, when averaging a pixel inside a zone, pixels in adjacent zones are not considered, even if they would have been considered using normal anti-aliasing methods. This advantageously creates sharper transitions between those areas in the glyph which have been identified as being of key aesthetic importance. Conversely, adjacent features are prevented from dominating a part of a glyph because they are nearby. The hints are preferably used to divide the glyph into several non-overlapping zones. For the example in Figure 8, the glyph is divided into three vertical zones (A, B and C) by the two horizontal hints. Those skilled in the art will understand that with a plurality of both vertical and horizontal hints, the glyph would be divided into several non-overlapping zones in both the vertical and horizontal directions. Referring now to Figure 9, the preferred method for performing sampling and image production in accordance with the present invention will be described. The method begins in step 900. In step 901, the curves, if any, that form the glyph are decomposed into line segments. Thus, after step 901, the glyph will be represented only with line segments. Next, in step 902, one of the line segments of the glyph is retrieved. In step 903, points are sampled on the line segment at 0.25 pixel intervals in the Y-dimension. Those skilled in the art will realize that the value for the sampling intervals may be selected according to the level of gray scaling permitted by the display or printing device. In this example, 0.25 has been selected for 16 shades of gray. For example, sampling the line segment from (0.7, 0.7) to (1.7, 1.7) according to step 903 would require that the values of Y be selected as 0.75, 1.0, 1.25 and 1.5. Next, in step 904, the corresponding X coordinate for each sampled value of Y is calculated. For the line segment from (0.7, 0.7) to (1.7, 1.7) this would produce sampling points (0.75, 0.75), (1.0, 1.0) , (1.25, 1.25) and (1.5, 1.5) . Then in step 905,
the method determines whether there are any more line segments left to sample. The method preferably traverses each of the line segments of a contour until all segments of the contour have been sampled. If there are more line segments in the glyph to sample, the process loops to step 902; otherwise, the method continues to step 907. In step 907, a polygon filing algorithm is used to determine the area of each fractional contribution. Those skilled in the art will realize that a variety of polygon filling algorithms, such as disclosed in "Fundamentals of Interactive Computer Graphics" by J.D. Foley and A. Van Dam, may be used for this determination. The algorithm preferably defines the fractional contributions by specifying a beginning point and an ending point (or plurality thereof) on each scan line with the area between the points on or off. Each pair of points in a scan line represents an interval contributing to the fractional coloring of the pixels the interval crosses. Then in step 910, the contributions to the fractional coloring are determined by measuring the area of each pixel that is covered by the interval . After the contributions for each pixel have been determined, they are summed in step 911 to produce the fractional coloring value.
For example, let (x0 y) and (x1 y) , where x-, ≥ x0 be one such interval. Let 0 be the value C(p) of a pixel p when it is completely "turned off" (i.e., the contours of the character do not intersect the p at all) . Similarly, let 1 be the value C (p) of a pixel when it is completely "turned on" (i.e. , p is completely covered by the rendered character and contours) . We next, compute the fractional color contributions of this interval to the pixels spanning from ( LX0] , LyJ) and (L , LyJ) ,where LvJ and [VI denote the integer floor and ceiling of v, respectively. Assuming, the initial value of each pixel to be 0, then the values for the pixels can be calculated according to the following:
C(bJ, lyl) = C(b0J, LyJ) +0.25(X;-;0)
C(L 0J, ly]) = C( J, LyJ) + 0.25(Tx0l-αc0),
C(bt,J, LyJ) = C(L ,J, LyJ) + 0.25 for all X, such that btj < X, <Lc/J,
C(bt;J, LyJ) = C(L ;J, LyJ) +0.25 (T C7 J).
Once we have tabulated the fractional coloring for each pixel interval, the total is multiplied by 0.25 since the points were sampled at each 0.25 pixel interval in the Y-dimension. The final sum of each C (p) represents the fractional coloring for each pixel which is used in step 912 to produce the image. For a particular rendering, suppose the background of the screen has the color b (background) and we wish to draw the character with color f (foreground) , the final color of each pixel will be rf = (l-r)jb where r is the sum of each pixel computed above.
Referring now to Figure 10, the gray scale contributions for an example contour are shown. In particular, the contributions for interval y=0 are shown. The results for each pixel are calculated for each increment of the y-dimension where the integer value of y=0 (i.e., 0.0, 0.25, 0.5, and 0.75) . For each increment, the interval pixel by pixel is summed according to the above equations to produce the values in each row of the table in Figure 10. Once the four rows for each pixel have been determined, they are tabulated to determine the gray scale coloring of each pixel . While the present invention has been described with reference to a preferred embodiment, those skilled in the art will recognize that various modifications may be provided. For example, different algorithms may be used to implement the grid fitting and anti-aliasing of the present invention. These and other variations upon and modifications to the preferred embodiment are provided for by the present invention which is limited only by the following claims.
Claims
1. A method for rasterizing hint information and an ideal glyph representation to produce a pixel image, said method comprising the steps of:- obtaining said ideal glyph representation and said hint information; converting said hint information from font units of an abstract coordinate space to pixel units and defining a plurality of zones; transforming said glyph representation from font units of the abstract coordinate space to pixel units using converted hint information; decomposing said glyph representation into a plurality of line segments; sampling points at intervals along each line segment in said plurality; and processing the sampled points to determine the fractional coloring for each pixel and to produce said pixel image.
2. The method of claim 1, wherein said step of converting includes applying a grid fitting technique to convert said hint information to pixel units.
3. The method of claim 1, wherein said step of converting said hint information comprises scaling said hint information from font units to pixel units .
4. The method of claim 1, wherein said hint information comprises at least one hint and each hint includes a starting point (s) , an ending point (e) , and a preferred width (c) ; and wherein said step of converting said hint information comprises the following steps for each hint: scaling the starting point to a fractional value (s1) ; scaling the canonical width to a fractional value (c'); calculating an actual width (w) and scaling said actual width from font units to a fractional value (w') in pixel units; scaling a standard width (W) to a fractional value (W) ; comparing the fractional values for the actual, standard and canonical widths, and selecting one as a desired width; comparing the desired width to the pixel width; if the desired width is wider than one pixel, rounding the fractional value of the starting point and the desired width to the nearest integers and calculating a transformed end point; and if the desired width is not larger than a pixel, calculating the fractional value of the end point and applying a stroke shifting technique such that the fractional values of the starting point and end point are in the same pixel.
5. The method of claim 4, wherein the step of calculating the actual width comprises calculating the absolute value of the difference between the starting point and the ending point.
6. The method of claim 4, wherein said step of comparing the fractional values further comprises the steps of: selecting the fractional value of the canonical width as the desired width; setting the desired width equal to the fractional value of the actual width, if the fractional value of the actual width and the fractional value of the canonical width differ by more than 0.5 pixel; and setting the desired width equal to the fractional value of the standard width, if the desired width and the fractional value of the standard width differ by less than 0.5 pixel.
7. The method of claim 4, wherein said step of calculating a transformed end point comprises summing the rounded value of the desired width and the rounded fractional value of the starting point according to the sign of the scaling value and whether the starting point is greater than the ending point.
8. The method of claim 4, wherein said step of calculating the fractional value of the end point comprises : setting the desired width to the larger of 0.25 pixel and its value; and summing the desired width and the fractional value of the starting point, according to the sign of the scaling value and whether the starting point is greater than the ending point, to produce the fractional value of the end point.
9. The method of claim 4, wherein said step of applying a stroke shifting technique comprises the steps of: comparing the fractional values of the starting and end points to the pixel boundaries; determining whether the fractional values of the starting and end points are in the same pixel; and if the fractional values of the starting and end points are not in the same pixel, shifting the fractional values of the starting and end points in the direction of lesser error to produce transformed values of the starting and end points that are in the same pixel.
10. The method of claim 2, wherein said step of transforming said glyph representation uses the results of the grid fitting technique to convert the glyph representation to pixel units.
11. The method of claim 1, wherein said glyph representation includes a plurality of control points and curves, and wherein said step of transforming said glyph representation comprises the steps of: retrieving a control point; retrieving the hint information; determining which zone contains the control point using the hint information; and scaling the control point using the scaling function associated with the zone containing the control point.
12. The method of claim 11, wherein said step of transforming said glyph representation comprises repeating said steps of retrieving, determining and scaling for each of the control points of the glyph representation.
13. The method of claim 1, wherein said step of sampling points comprises the steps of: retrieving a line segment; sampling points along the segment at intervals in the Y-dimension; and calculating the corresponding X-coordinate for each sampled point.
14. The method of claim 13, wherein said step of sampling points is performed at 0.25 pixel intervals.
15. The method of claim 1, wherein the step of processing the sampled points includes performing gray scaling and using a plurality of sampled points to produce the coloring for each pixel.
16. The method of claim 1, wherein the step of processing the sampled points comprises the steps of: determining the area of the fractional contributions for the glyph representation using a polygon filing algorithm; determining the fractional contributions for each pixel; summing the fractional contributions for each pixel to determine a fractional coloring value for the pixel; and producing the pixel image with a gray scale technique that uses the fractional coloring values produced for each pixel.
17. A method for producing a pixel image from a glyph representation, said method comprising the steps of: retrieving an ideal glyph representation and a least one hint; adapting the ideal glyph representation to the pixel grid using a grid fitting technique; dividing the adapted glyph representation into a plurality of non-overlapping zones using the hints; applying an anti-aliasing technique to each zone without considering the pixel values outside the zone; and processing the zones to produce a final gray-scaled bit map.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU50892/93A AU5089293A (en) | 1992-08-28 | 1993-08-24 | Glyph rasterization method combining anti-aliasing and grid fitting |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US93796292A | 1992-08-28 | 1992-08-28 | |
US07/937,962 | 1992-08-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO1994006094A1 true WO1994006094A1 (en) | 1994-03-17 |
Family
ID=25470641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US1993/007956 WO1994006094A1 (en) | 1992-08-28 | 1993-08-24 | Glyph rasterization method combining anti-aliasing and grid fitting |
Country Status (4)
Country | Link |
---|---|
JP (1) | JPH06208370A (en) |
CN (1) | CN1083605A (en) |
AU (1) | AU5089293A (en) |
WO (1) | WO1994006094A1 (en) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0693740A1 (en) * | 1994-07-19 | 1996-01-24 | Microsoft Corporation | Method of font rendering employing greyscale processing of grid-fitted fonts |
WO1996036015A1 (en) * | 1995-05-09 | 1996-11-14 | Apple Computer, Inc. | Method and apparatus for generating a text image on a display with anti-aliasing effect |
EP0772144A3 (en) * | 1995-10-23 | 1998-07-08 | Adobe Systems Inc. | Method and apparatus for rendering characters |
US5867173A (en) * | 1995-01-03 | 1999-02-02 | Microsoft Corporation | Method for rendering a spline for scan conversion of a glyph comprising a plurality of discrete segments |
US7002597B2 (en) | 2003-05-16 | 2006-02-21 | Adobe Systems Incorporated | Dynamic selection of anti-aliasing procedures |
US7006107B2 (en) | 2003-05-16 | 2006-02-28 | Adobe Systems Incorporated | Anisotropic anti-aliasing |
US7333110B2 (en) | 2004-03-31 | 2008-02-19 | Adobe Systems Incorporated | Adjusted stroke rendering |
US7425960B2 (en) | 1999-08-19 | 2008-09-16 | Adobe Systems Incorporated | Device dependent rendering |
US7598955B1 (en) | 2000-12-15 | 2009-10-06 | Adobe Systems Incorporated | Hinted stem placement on high-resolution pixel grid |
US7602390B2 (en) | 2004-03-31 | 2009-10-13 | Adobe Systems Incorporated | Edge detection based stroke adjustment |
EP2674915A1 (en) * | 2012-06-14 | 2013-12-18 | BlackBerry Limited | System and method for scaling vector-based graphic designs |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7580039B2 (en) | 2004-03-31 | 2009-08-25 | Adobe Systems Incorporated | Glyph outline adjustment while rendering |
CN102646281B (en) * | 2011-02-16 | 2015-02-11 | 富士通株式会社 | Method and system for rasterizing elliptic arc |
JP6570643B2 (en) * | 2015-01-30 | 2019-09-04 | イー インク コーポレイション | Font control for electro-optic display and associated apparatus and method |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2637101A1 (en) * | 1988-09-26 | 1990-03-30 | Brother Ind Ltd | DATA CONVERSION DEVICE COMPRISING MEANS FOR MODIFYING ORNAMENTAL END DATA OF THE STRING OF A CHARACTER |
GB2232861A (en) * | 1989-05-08 | 1990-12-19 | Apple Computer | Method and apparatus for moving control points in displaying digital typeface on raster output devices |
EP0458571A2 (en) * | 1990-05-21 | 1991-11-27 | Canon Kabushiki Kaisha | Image processing method and apparatus |
US5105471A (en) * | 1990-02-14 | 1992-04-14 | Brother Kogyo Kabushiki Kaisha | Apparatus for converting character outline data into dot data, having means for correcting reproduction width of strokes of rotated or italicized characters |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4675830A (en) * | 1984-07-06 | 1987-06-23 | Compugraphic Corporation | Method for producing a scaleable typeface data |
US5159668A (en) * | 1989-05-08 | 1992-10-27 | Apple Computer, Inc. | Method and apparatus for manipulating outlines in improving digital typeface on raster output devices |
JPH02297591A (en) * | 1989-05-12 | 1990-12-10 | Canon Inc | Image forming device |
JP2956705B2 (en) * | 1989-05-24 | 1999-10-04 | ブラザー工業株式会社 | Data converter |
JPH03154096A (en) * | 1989-11-13 | 1991-07-02 | Canon Inc | Method and device for generating pattern |
-
1992
- 1992-12-11 JP JP4352297A patent/JPH06208370A/en active Pending
-
1993
- 1993-08-24 WO PCT/US1993/007956 patent/WO1994006094A1/en active Application Filing
- 1993-08-24 AU AU50892/93A patent/AU5089293A/en not_active Abandoned
- 1993-08-28 CN CN 93116578 patent/CN1083605A/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2637101A1 (en) * | 1988-09-26 | 1990-03-30 | Brother Ind Ltd | DATA CONVERSION DEVICE COMPRISING MEANS FOR MODIFYING ORNAMENTAL END DATA OF THE STRING OF A CHARACTER |
GB2232861A (en) * | 1989-05-08 | 1990-12-19 | Apple Computer | Method and apparatus for moving control points in displaying digital typeface on raster output devices |
US5105471A (en) * | 1990-02-14 | 1992-04-14 | Brother Kogyo Kabushiki Kaisha | Apparatus for converting character outline data into dot data, having means for correcting reproduction width of strokes of rotated or italicized characters |
EP0458571A2 (en) * | 1990-05-21 | 1991-11-27 | Canon Kabushiki Kaisha | Image processing method and apparatus |
Non-Patent Citations (3)
Title |
---|
ANDLER: "automatic generation of gridfitting hints for rasterization of outline fonts or graphics", PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON ELECTRONIC PUBLISHING, DOCUMENT MANIPULATION AND TYPOGRAPHY, 1990, USA, pages 221 - 234 * |
HERSCH ET AL.: "model-based matching and hinting of fonts", PROCEEDINGS SIGGRAPH'91 ACM. COMPUTER GRAPHICS, vol. 25, no. 4, July 1991 (1991-07-01), USA, pages 71 - 80 * |
HERSCH: "character generation under grid constraints", COMPUTER GRAPHICS, vol. 21, no. 4, July 1987 (1987-07-01), USA, pages 243 - 252, XP001372628 * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0843283A1 (en) * | 1994-07-19 | 1998-05-20 | Microsoft Corporation | Method of font rendering employing grayscale processing of grid fitted fonts |
EP0693740A1 (en) * | 1994-07-19 | 1996-01-24 | Microsoft Corporation | Method of font rendering employing greyscale processing of grid-fitted fonts |
US5684510A (en) * | 1994-07-19 | 1997-11-04 | Microsoft Corporation | Method of font rendering employing grayscale processing of grid fitted fonts |
US6088041A (en) * | 1995-01-03 | 2000-07-11 | Microsoft Corporation | Method of dropout control for scan conversion of a glyph comprising a plurality of discrete segments |
US6175372B1 (en) | 1995-01-03 | 2001-01-16 | Dean Dayton Ballard | Method for estimating the memory required for scan conversation of a glyph |
US6529197B1 (en) | 1995-01-03 | 2003-03-04 | Microsoft Corporation | Method for rendering endpoints of segments during scan conversion of a glyph |
US5867173A (en) * | 1995-01-03 | 1999-02-02 | Microsoft Corporation | Method for rendering a spline for scan conversion of a glyph comprising a plurality of discrete segments |
US5719595A (en) * | 1995-05-09 | 1998-02-17 | Apple Computer, Inc. | Method and apparauts for generating a text image on a display with anti-aliasing effect |
WO1996036015A1 (en) * | 1995-05-09 | 1996-11-14 | Apple Computer, Inc. | Method and apparatus for generating a text image on a display with anti-aliasing effect |
US5943063A (en) * | 1995-10-23 | 1999-08-24 | Adobe Systems, Inc. | Method and apparatus for rendering characters |
EP0772144A3 (en) * | 1995-10-23 | 1998-07-08 | Adobe Systems Inc. | Method and apparatus for rendering characters |
US7425960B2 (en) | 1999-08-19 | 2008-09-16 | Adobe Systems Incorporated | Device dependent rendering |
US7598955B1 (en) | 2000-12-15 | 2009-10-06 | Adobe Systems Incorporated | Hinted stem placement on high-resolution pixel grid |
US7002597B2 (en) | 2003-05-16 | 2006-02-21 | Adobe Systems Incorporated | Dynamic selection of anti-aliasing procedures |
US7006107B2 (en) | 2003-05-16 | 2006-02-28 | Adobe Systems Incorporated | Anisotropic anti-aliasing |
US7333110B2 (en) | 2004-03-31 | 2008-02-19 | Adobe Systems Incorporated | Adjusted stroke rendering |
US7408555B2 (en) | 2004-03-31 | 2008-08-05 | Adobe Systems Incorporated | Adjusted Stroke Rendering |
US7602390B2 (en) | 2004-03-31 | 2009-10-13 | Adobe Systems Incorporated | Edge detection based stroke adjustment |
EP2674915A1 (en) * | 2012-06-14 | 2013-12-18 | BlackBerry Limited | System and method for scaling vector-based graphic designs |
Also Published As
Publication number | Publication date |
---|---|
JPH06208370A (en) | 1994-07-26 |
AU5089293A (en) | 1994-03-29 |
CN1083605A (en) | 1994-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5598520A (en) | Methods and apparatus for hinting a font for controlling stem width as font size and resolution of output device vary | |
EP1730697B1 (en) | Adjusted stroke rendering | |
US5929866A (en) | Adjusting contrast in anti-aliasing | |
US5796409A (en) | Method for producing contrast-controlled grayscale characters | |
EP1741063B1 (en) | Edge detection based stroke adjustment | |
EP1157538B1 (en) | Methods and apparatus for enhancing the resolution of images to be rendered on patterned display devices | |
US6282327B1 (en) | Maintaining advance widths of existing characters that have been resolution enhanced | |
EP1762983B1 (en) | Glyph adjustment in high resolution raster while rendering | |
US5719595A (en) | Method and apparauts for generating a text image on a display with anti-aliasing effect | |
JPS62123573A (en) | Computer graphic apparatus and operation thereof | |
US5381521A (en) | System and method of rendering curves | |
WO1994006094A1 (en) | Glyph rasterization method combining anti-aliasing and grid fitting | |
EP0417224A1 (en) | Method and apparatus for conversion of outline characters to bitmap characters | |
JPH08255254A (en) | Font rendering method using gray scale processing of grid fitted font | |
US7639258B1 (en) | Winding order test for digital fonts | |
JPH08106276A (en) | Display method of text on screen | |
EP1762984A2 (en) | Hierarchical image-based representation of animated three-dimensional object and method for using this representation for the object rendering | |
US6614432B1 (en) | Image rendering technique | |
US20040227770A1 (en) | Anisotropic anti-aliasing | |
US8355025B2 (en) | System and method for displaying text | |
EP1210708B1 (en) | Rendering sub-pixel precision characters having widths compatible with pixel precision characters | |
JP3224142B2 (en) | Hinting method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AT AU BB BG BR BY CA CH CZ DE DK ES FI GB HU JP KP KR KZ LK LU MG MN MW NL NO NZ PL PT RO RU SD SE SK UA VN |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN ML MR NE SN TD TG |
|
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
122 | Ep: pct application non-entry in european phase | ||
NENP | Non-entry into the national phase |
Ref country code: CA |