Methods and apparatus for positioning displayed characters
First Claim
1. A method of processing character image data used to display characters at a specified type size on a portion of a display divice, the portion of the display device having pixel elements, each pixel element of the display device corresponding to a scaled image portion one pixel size unit in width, the character image data including a plurality of character advanced width values and side bearing values, the method comprising the steps of:
- scaling the character advance width values as a function of the specified type size to produce scaled character advance width values which are integral multiples of said pixel size unit, the scaled character advance width values having pixel precision; and
scaling the side bearing values as a function of the specified type size to produce scaled side bearing values at least some of which include a fractional pixel size unit component in addition to an integer pixel size unit component, the scaled side bearing values having sub-pixel precision.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatus for rendering and/or displaying images such as text using sub-pixel accuracy are described. In various embodiments, character advance width is determined using pixel precision while left side bearing and/or black body width is determined using sub-pixel precision. Such embodiments provide for characters with overall widths corresponding to pixel widths but with the character black bodies being positioned within the overall character space to a higher degree of position than when pixel precision is used. In other embodiments, sub-pixel precision is used for determining a character'"'"'s overall width as well as left side bearing and black body width values. In such embodiments, black body starting points and left side bearing points are aligned with sub-pixel component boundaries. By treating R, G, B pixel element sub-components as independent luminous intensity sources and by using pixel sub-component accuracy for character width, spacing and positioning, overall image appearance is enhanced as compared to embodiments which use pixel precision for character width, spacing and positioning values.
230 Citations
34 Claims
-
1. A method of processing character image data used to display characters at a specified type size on a portion of a display divice, the portion of the display device having pixel elements, each pixel element of the display device corresponding to a scaled image portion one pixel size unit in width, the character image data including a plurality of character advanced width values and side bearing values, the method comprising the steps of:
-
scaling the character advance width values as a function of the specified type size to produce scaled character advance width values which are integral multiples of said pixel size unit, the scaled character advance width values having pixel precision; and
scaling the side bearing values as a function of the specified type size to produce scaled side bearing values at least some of which include a fractional pixel size unit component in addition to an integer pixel size unit component, the scaled side bearing values having sub-pixel precision. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
wherein the scaled side bearing values include left side bearing values, and wherein the step of scaling the left side bearing values includes the step of rounding the left side bearing values to values which are integer multiples of said pixel unit size divided by the number of segments allocated to each pixel unit sized portion of a scaled image during a subsequent scan conversion operation. -
4. The method of claim 3, further comprising the step of:
performing a scan conversion operation on the scaled left side bearing values, the scan conversion operation treating each pixel unit sized portion of the scaled left side bearing values as N different scaled image segments, wherein N is a positive integer greater than 1.
-
5. The method of claim 4, wherein N is 16.
-
6. The method of claim 4, wherein N is a multiple of 3.
-
7. The method of claim 4, further comprising the step of displaying character images on the display device as a function of the scaled advance width values and the scaled left side bearing values.
-
8. The method of claim 1, wherein the character image data further includes, character black bodies, the method further comprising the steps of:
scaling the character black bodies as a function of the specified type size to produce scaled black bodies having scaled black body widths at least some of which are non-integer multiples of said pixel size unit, the scaled black body widths being specified using sub-pixel precision.
-
9. The method of claim 8, wherein the scaled side bearing values include left side bearing values, the method further comprising the step of:
displaying a plurality of text characters on the display using the scaled left side bearing values and the scaled black bodies.
-
10. The method of claim 1, wherein each pixel of the display includes a plurality of pixel sub-components having widths which correspond to scaled image portions widths that are smaller than said pixel size unit, the step of scaling the side bearing values including the step of scaling the left side bearing values to scaled values corresponding to distances between pixel sub-component boundaries.
-
11. The method of claim 1, wherein each pixel of the display includes a plurality of equal sized pixel sub-components having a width corresponding to a scaled image portion having a scaled pixel sub-component width that is a fraction of said pixel size unit, the step of scaling the side bearing values including the step of scaling left side bearing values to be an integral multiple of the scaled pixel sub-component width.
-
12. The method of claim 5, wherein the scaled pixel sub-component width is approximately ⅓
- of said pixel size unit.
-
13. The method of claim 8, wherein each of said pixel elements includes a plurality of pixel sub-components having widths which correspond to a scaled image portion that is smaller than said pixel size unit, the step of scaling the black bodies including the step of scaling black body widths to correspond to distances between pixel sub-component boundaries.
-
14. The method of claim 8, wherein each pixel of the display includes a plurality of equal sized pixel sub-components having a width that corresponds to a scaled image portion having a scaled pixel sub-component width that is a fraction of said pixel size unit, the step of scaling the left side bearing values including the step of scaling the left side bearing values to be an integral multiple of the pixel sub-component width.
-
15. The method of claim 14, wherein the width of a pixel sub-component is ⅓
- of said pixel size unit.
-
16. The method of claim 14, further comprising the step of displaying a plurality of text characters on the display using the scaled left side bearing values and the scaled black bodies.
-
-
17. A method of processing character image data used to display characters at a specified type size on a portion of a display device, the portion of the display device having pixel elements, each pixel element of the display device corresponding to a scaled image portion one pixel size unit in width, each pixel element including a plurality of pixel sub-components, each pixel sub-component corresponding to a scaled image portion a scaled pixel sub-component unit size in width, the scaled pixel sub-component unit size being smaller than said pixel unit size, the character image data including a plurality of character advanced width values and side bearing values, the method comprising the steps of:
-
scaling the character advance width values as a function of the specified type size to correspond to an integer multiple of the scaled pixel sub-component unit size, at least some of the character advance values being a non-integer multiple of the pixel unit size; and
scaling the side bearing values, as a function of the specified type size, to correspond to integer multiples of the pixel sub-component unit size, at least some of the scaled side bearing values being non-integer multiples of the pixel unit size. - View Dependent Claims (18, 19, 20, 21)
scaling the character black bodies as a function of the specified type size to produce scaled black bodies having widths which are integer multiples of the pixel sub-component width, at least some of the scaled black body widths being non-integer multiples of the width of a pixel.
-
-
19. The method of claim 18, wherein the width of a pixel sub-component is ⅓
- the width of a pixel.
-
20. The method of claim 19, wherein the specified type size is a point size.
-
21. The method of claim 18, further comprising the step of displaying a plurality of text characters on the display device using the scaled advance widths, the scaled side bearing values, and the scaled black bodies.
-
22. A method of processing character image data used to display characters at a specified type size on a portion of a display device, the portion of the display device having pixel elements, each pixel element of the display device corresponding to a scaled image portion one pixel size unit in width, each pixel element including a red, a green and a blue pixel sub-component, the red pixel sub-component corresponding to a scaled image portion a scaled red pixel sub-component unit size in width, the green pixel sub-component corresponding to a scaled image portion a scaled green pixel sub-component unit size in width, the blue pixel sub-component corresponding to a scaled image portion a scaled blue pixel sub-component unit size in width, the character image data including a plurality of character advanced width values, left side bearing values, and character black bodies, each black body having a black body width, the method comprising the steps of:
-
scaling the character advance width values using sub-pixel precision so that the character advance widths correspond to distances equal to the sum of zero or more, red, green and blue scaled pixel sub-component unit sizes; and
scaling the left side bearing values, using sub-pixel precision so that the left side bearings correspond to distances equal to the sum of zero or more, red, green and blue scaled pixel sub-component unit sizes; and
scaling the widths of character black bodies, using sub-pixel precision so that the character black body widths correspond to distances that equal the sum of zero or more, red, green and blue scaled pixel sub-component unit sizes. - View Dependent Claims (23)
-
-
24. A method of scaling image data including side bearing values and advanced width values, the method comprising the steps of:
-
Scaling the advanced width values using pixel precision to generate scaled advanced width values;
Scaling the left side bearing values using sub-pixel precision to produce scaled left side bearing values;
Scaling black body width values using sub-pixel precision to generate scaled black body widths wherein the image data includes character black bodies having black body widths;
Scaling is performed as a function of a specified text size; and
Using the scaled advanced widths, scaled left side bearing values and scaled black body widths values to display a plurality of text characters.
-
-
25. A method of scaling image data to be displayed on a display device including a plurality of pixel elements, each pixel element including a plurality of pixel sub-components, the pixel sub-components being separated by pixel sub-component boundaries, the image data including side bearing values and advanced width values, the method comprising the steps of:
-
scaling the advanced width values using sub-pixel precision to generate scaled advanced width values having distances corresponding to distances between pixel sub-component boundaries; and
scaling the side bearing values using sub-pixel precision to produce scaled left side bearing values corresponding to distances between pixel sub-component boundaries. - View Dependent Claims (26, 27)
scaling black body widths using sub-pixel precision to produce scaled black body widths corresponding to distances between pixel sub-component boundaries.
-
-
27. The method of claim 26, further comprising the step of:
displaying character images using the scaled advanced width, scaled side bearing values and scaled black body widths, the displayed character images having at least some black bodies to start as pixel sub-component boundaries which occur within a pixel element.
-
28. A computer readable medium, comprising:
-
computer executable instructions for processing character image data used to display characters at a specified type size on a portion of a display device, the portion of the display device having pixel elements, each pixel element of the display device corresponding to a scaled image portion one pixel size unit in width, the character image data including a plurality of character advanced width values and left side bearing values, the processing including the steps of;
scaling the character advance width values as a function of the specified type size to produce scaled character advance width values which are integral multiples of said pixel size unit, the scaled character advance width values having pixel precision; and
scaling the left side bearing values as a function of the specified type size to produce scaled left side bearing values at least some of which include a fractional pixel size unit component in addition to an integer pixel size unit component, the scaled left side bearing values having sub-pixel precision.
-
-
29. A computer readable medium, comprising:
-
computer executable instructions for processing character image data used to display characters at a specified type size on a portion of a display device, the portion of the display device having pixel elements, each pixel element of the display device corresponding to a scaled image portion one pixel size unit in width, each pixel element including a plurality of pixel sub-components, each pixel sub-component corresponding to a scaled image portion a scaled pixel sub-component unit size in width, the scaled pixel sub-component unit size being smaller than said pixel unit size, the character image data including a plurality of character advanced width values and left side bearing values, the processing including the steps of;
scaling the character advance width values as a function of the specified type size to correspond to an integer multiple of the scaled pixel sub-component unit size, at least some of the character advance values being a non-integer multiple of the pixel unit size; and
scaling the left side bearing values, as a function of the specified type size, to correspond to integer multiples of the pixel sub-component unit size, at least some of the scaled left side bearing values being non-integer multiples of the pixel unit size.
-
-
30. An image processing apparatus, comprising:
-
means for scaling advanced width values using pixel precision to generate scaled advanced width values;
means for scaling side bearing values using sub-pixel precision to produce scaled side bearing values; and
means for generating a display signal as a function of the scaled advanced width values and scaled side bearing values. - View Dependent Claims (31, 32)
means for scaling black body widths using sub-pixel precision to produce scaled black body widths.
-
-
32. The apparatus of claim 31, further comprising:
means for displaying character images generated using the scaled advance width values, scaled side bearing values, and scaled black body widths.
-
33. An apparatus, comprising:
-
a display device including a plurality of pixel elements, each pixel element including a plurality of pixel sub-components, the pixel sub-components being separated by pixel sub-component boundaries, means for scaling advanced width values using sub-pixel precision to generate scaled advanced width values having distances corresponding to distances between pixel sub-component boundaries;
means for scaling left side bearing values using sub-pixel precision to produce scaled left side bearing values corresponding to distances between pixel sub-component boundaries; and
means for generating images on the display as a function of the scaled advanced width values and scaled left side bearing values. - View Dependent Claims (34)
means for scaling black body widths using sub-pixel precision to produce scaled black body widths; and
wherein the means for generating images includes means for using the scaled black body widths to display characters at least some of which are aligned with pixel sub-component boundaries.
-
Specification