Hinted stem placement on high-resolution pixel grid
AssigneeAdobe Systems Incorporated
InventorsTerence S. Dowling, R. David Arnold
Life of this patent
Estimating the term…
Abstract
Methods and apparatus implementing a technique for rendering a hinted character for display in grayscale on a grayscale output device in accordance with a hinted stem placement policy. In one embodiment, the policy is a black-edge policy, by which a hinted stem is moved so that at least one of the hinted stem edges aligns with an edge of a device cell (which corresponds to an output device pixel). In another embodiment, the policy is an unbiased-stems policy, by which a hinted stem is moved a minimum distance to have it span a minimum number of device cells.
Claims46
A system for rendering a character for display in grayscale on a grayscale output device, comprising:
- means for defining a coarse grid of cells, each coarse cell corresponding to an output device grayscale pixel, and a high-resolution grid of fine cells, the high-resolution grid being aligned with said coarse grid so that each coarse cell includes an integer number of undivided fine cells, the grids defining edges of the cells;
- means for placing a character defined by a font program with reference to the coarse grid and fine grid, the character having a stem hinted with two parallel edges that are placed with reference to the grids when the character is so placed, the stem hint edges being separated by a stem width;
- and
- stem aligner means for processing the stem before rendering the character for output on the output device, the stem aligner means comprising means for performing a black-edge hinted stem placement policy, including,
- means for rounding the stem width to the width of an integral number of fine cells;
- means for determining the stem width;
- and
- means for, if the stem width is at least one coarse grid cell, moving the stem with rounded width a minimum distance so that at least one of the stem hint edges aligns with a parallel coarse cell edge.
A system for rendering a character for display in grayscale on a grayscale output device, comprising:
- means for defining a coarse grid of cells, each coarse cell corresponding to an output device grayscale pixel, and a high-resolution grid of fine cells, the high-resolution grid being aligned with said coarse grid so that each coarse cell includes an integer number of undivided fine cells;
- means for placing a character defined by a font program with reference to the coarse grid and fine grid, the character having a stem hinted with two parallel edges that is placed with reference to the grids when the character is so placed, the stem hint edges being separated by a stem width;
- and
- stem aligner means for processing the stem before rendering the character for output on the output device, the stem aligner means comprising means for performing an unbiased-stems hinted stem placement policy, wherein the unbiased-stems policy considers stem spread when determining stem placement.
A method for processing a stem of a character outline, comprising:
- in one or more computers performing operations comprising:
- selecting a hinted stem placement policy from a set of policies comprising at least either a black-edge policy or an unbiased-stems policy, where a black edge policy considers stem width when determining stem placement and an unbiased-stems policy considers stem spread when determining stem placement;
- placing a character defined by a font program with reference to a coarse grid and an overlapping fine grid, the character having a stem hinted with two parallel edges that is placed with reference to the grids when the character is so placed, the stem hint edges being separated by a stem width;
- and
- processing the stem before rendering the character for output on the output device in accordance with the selected policy,
- wherein, processing the stem in accordance with the black-edge policy includes:
- rounding the stem width to the width of an integral number of fine cells;
- determining the stem width;
- and
- if the stem width is at least one coarse cell, moving the stem with rounded width a minimum distance so that at least one of the stem edges aligns with a parallel coarse cell edge.
A computer-readable medium encoded with a computer program product for rendering a character for display in grayscale on a grayscale output device, the product comprising instructions operable to cause a programmable processor to:
- define a coarse grid of cells, each coarse cell corresponding to an output device grayscale pixel, and a high-resolution grid of fine cells, the high-resolution grid being aligned with said coarse grid so that each coarse cell includes an integer number of undivided fine cells, the grids defining edges of the cells;
- place a character defined by a font program with reference to the coarse grid and fine grid, the character having a stem hinted with two parallel edges that are placed with reference to the grids when the character is so placed, the stem hint edges being separated by a stem width;
- and
- perform a black-edge hinted stem placement policy, wherein instructions to perform a black-edge hinted stem placement policy comprise instructions to:
- round the stem width to the width of an integral number of fine cells;
- determine the stem width;
- and
- if the stem width is at least one coarse cell, move the stem with rounded width a minimum distance so that at least one of the stem hint edges aligns with a parallel coarse cell edge.
A computer-readable medium encoded with a computer program product for rendering a character for display in grayscale on a grayscale output device, the product comprising instructions operable to cause a programmable processor to:
- define a coarse grid of cells, each coarse cell corresponding to an output device grayscale pixel, and a high-resolution grid of fine cells, the high-resolution grid being aligned with said coarse grid so that each coarse cell includes an integer number of undivided fine cells, the grids defining edges of the cells;
- place a character defined by a font program with reference to the coarse grid and fine grid, the character having a stem hinted with two parallel edges that are placed with reference to the grids when the character is so placed, the stem hint edges being separated by a stem width;
- and
- perform an unbiased-stems hinted stem placement policy, wherein the unbiased-stems policy considers stem spread when determining stem placement.
A computer-readable medium encoded with a computer program product for processing a stem of a character outline, the product comprising instructions operable to cause a programmable processor to:
- select a hinted stem placement policy from a set of policies comprising at least either a black-edge policy or an unbiased-stems policy, where a black-edge policy considers stem width when determining stem placement and an unbiased-stems policy considers stem spread when determining stem placement;
- place a character defined by a font program with reference to a coarse grid and an overlapping fine grid, the character having a stem hinted with two parallel edges that is placed with reference to the grids when the character is so placed, the stem hint edges being separated by a stem width;
- and
- process the stem before rendering the character for output on an output device in accordance with the selected policy,
- wherein, instructions to process the stem in accordance with a black-edge policy, include instructions to:
- round the stem width to the width of an integral number of fine cells;
- determine the stem width;
- and
- if the stem width is at least one coarse cell, move the stem with rounded width a minimum distance so that at least one of the stem edges aligns with a parallel coarse cell edge.
A method for rendering a character for display in grayscale on a grayscale output device, comprising:
- in one or more computers performing operations comprising:
- defining a coarse grid of cells, each coarse cell corresponding to an output device grayscale pixel, and a high-resolution grid of fine cells, the high-resolution grid being aligned with said coarse grid so that each coarse cell includes an integer number of undivided fine cells;
- placing a character defined by a font program with reference to the coarse grid and fine grid, the character having a stem hinted with two parallel edges that is placed with reference to the grids when the character is so placed, the stem hint edges being separated by a stem width;
- and
- processing the stem before rendering the character for output on the output device including performing an unbiased-stems hinted stem placement policy, wherein the unbiased-stems policy considers stem spread when determining stem placement.
A method for rendering a character for display in grayscale on a grayscale output device, comprising:
- in one or more computers performing operations comprising:
- defining a coarse grid of cells, each coarse cell corresponding to an output device grayscale pixel, and a high-resolution grid of fine cells, the high-resolution grid being aligned with said coarse grid so that each coarse cell includes an integer number of undivided fine cells, the grids defining edges of the cells;
- placing a character defined by a font program with reference to the coarse grid and fine grid, the character having a stem hinted with two parallel edges that are placed with reference to the grids when the character is so placed, the stem hint edges being separated by a stem width;
- and
- processing the stem before rendering the character for output on the output device, including performing a black-edge hinted stem placement policy, wherein performing a black-edge policy comprises:
- rounding the stem width to the width of an integral number of fine cells;
- determining the stem width;
- and
- if the stem width is at least one coarse cell, moving the stem with rounded width a minimum distance so that at least one of the stem hint edges aligns with a parallel coarse cell edge.
Dependencies are inferred from the claim text.