Patent US5857067A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5857067A Expired / Lapsed US ⏱️ 0.0 years remaining

Intelligent font rendering co-processor

Assignee: Adobe Inc
•
Filing: 1993-12-23
•
Granted: 1999-01-05
•
Expires: 2013-12-23
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and apparatus convert font outlines to rasterized bitmaps. The method accesses stored outline data representing an object in a first coordinate space and transforms the outline data to corresponding data representing the object in a second corrdinate space. Regional relationship information is maintained in both corrdinate spaces through a non-linear transformation expressed as a plurality of linear transformation matrices, and a bit map, suitable for displaying the object, is generated as a result of the transformation. The apparatus of the invention analyzes Bezier curves and subdivides them as necessary until each portion is sufficiently flat to be approximated as a straight line, and calculates where line segments cross pixel midlines in order to fill the outline, and then generates the bit map.

Inventors

  • 👤 Christopher R. Hassett
  • 👤 Harry J. Collins
  • 👤 John W. Nogrady

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 15:04
CPC Classifications
G; G06; G06T; G06T11/00; G06T11/20; G06T11/23

Claims Analysis

Total Claims: 8
Claim 1
Independent Claim 284 words
A method of determining the flatness of a first cubic Bezier curve having a first set of four control points having coordinates, two of said control points being endpoints and the remaining control points being internal, in preparation for displaying the cubic Bezier curve on a raster display, comprising: determining whether said first cubic Bezier curve can be approximated by a straight line segment, such approximation being possible if the distances between the x and y values of a selected one of said internal control points and the respective x and y values of a selected endpoint are within a flatness factor of 1/3 of the distance between the respective x and y values of the coordinates of said two endpoints upon determining that said first cubic Bezier curve can be approximated by a straight line segment, outputting said straight line segment, upon determining that said first cubic Bezier curve cannot be approximated by a straight line segment, dividing said first cubic Bezier curve approximately at its midpoint into second and third cubic Bezier curves and calculating a second and third set of control points for each of said second and third cubic Bezier curves, wherein at least one control point of each of said second and third sets of control points substantially coincides with one control point of said first cubic Bezier curve; when said second and third cubic Bezier curves cannot be approximated by straight line segments, repeating the process of subdividing for either of said second and third cubic Bezier curves which cannot be so approximated, continuing iteratively until all cubic Bezier curves can be approximated by straight line segments; and displaying the approximated straight line segments on said raster display.
Claim 2
Independent Claim 284 words
A method of determining the flatness of a first cubic Bezier curve having a first set of four control points having coordinates, two of said control points being endpoints and the remaining control points being internal, in preparation for displaying the cubic Bezier curve on a raster display, comprising: determining whether said first cubic Bezier curve can be approximated by a straight line segment, such approximation being possible if the distances between the x and y values of a selected one of said internal control points and the respective x and y values of a selected endpoint are within a flatness factor of 1/3 of the distance between the respective x and y values of the coordinates of said two endpoints upon determining that said first cubic Bezier curve can be approximated by a straight line segment, outputting said straight line segment, upon determining that said first cubic Bezier curve cannot be approximated by a straight line segment, dividing said first cubic Bezier curve approximately at its midpoint into second and third cubic Bezier curves and calculating a second and third set of control points for each of said second and third cubic Bezier curves, wherein at least one control point of each of said second and third sets of control points substantially coincides with one control point of said first cubic Bezier curve; when said second and third cubic Bezier curves cannot be approximated by straight line segments, repeating the process of subdividing for either of said second and third cubic Bezier curves which cannot be so approximated, continuing iteratively until all cubic Bezier curves can be approximated by straight line segments; and displaying the approximated straight line segments on said raster display.
Claim 3
Independent Claim 169 words
A method for displaying rasterized objects comprising: accessing outline data from a computer memory or storage medium, said outline data representing said object in a first coordinate space, deriving from said outline data representing said object in a first coordinate space data corresponding to said outline data, the derived data representing said object in a second coordinate space; flattening curved portions of said data representing said object in said second coordinate space into a plurality of straight lines; generating a plurality of line segments from said straight lines; identifying all of said plurality of line segments that cross a midline through the center of a pixel; identifying the pixels to be used to display said object by selecting all the pixels whose midlines have been identified to have been crossed by one of said plurality of line segments; and storing the identified pixels to be used to display said object in computer memory for subsequent display or displaying said pixels on a raster printing or a raster display device.
Claim 4
Independent Claim 169 words
A method for displaying rasterized objects comprising: accessing outline data from a computer memory or storage medium, said outline data representing said object in a first coordinate space, deriving from said outline data representing said object in a first coordinate space data corresponding to said outline data, the derived data representing said object in a second coordinate space; flattening curved portions of said data representing said object in said second coordinate space into a plurality of straight lines; generating a plurality of line segments from said straight lines; identifying all of said plurality of line segments that cross a midline through the center of a pixel; identifying the pixels to be used to display said object by selecting all the pixels whose midlines have been identified to have been crossed by one of said plurality of line segments; and storing the identified pixels to be used to display said object in computer memory for subsequent display or displaying said pixels on a raster printing or a raster display device.
Claim 5
Dependent Claim 293 words
Apparatus for determining the flatness of a first cubic Bezier curve having a first set of four control points having coordinates, two of said control points being endpoints and the remaining control points being internal, in preparation for displaying the cubic Bezier curve on a raster display, comprising: means for determining whether said first cubic Bezier curve can be approximated by said straight line segment, such approximation being possible if the distance between the x and y values of a selected one of said internal control points and the respective x and y values of a selected endpoint are within a flatness factor of 1/3 of the distance between the respective x and y values of the coordinates of said two endpoints; means for outputting said straight line segment upon determining that said first cubic Bezier curve can be approximated by said straight line segment; means for dividing said first cubic Bezier curve approximately at its midpoint into second and third cubic Bezier curves and calculating a second and third set of control points for each of said second and third cubic Bezier curves upon determining that said first cubic Bezier curve cannot be approximated by a straight line segment, wherein at least one control point of each of said second and third sets of control points substantially coincides with one control point of said first cubic Bezier curve; means for repeating, when said second and third cubic Bezier curves cannot be approximated by straight line segments, the process of subdividing for either of said second and third cubic Bezier curves which cannot be so approximated, continuing iteratively until all cubic Bezier curves can be approximated by straight line segments; and means for displaying the approximated straight line segments on said raster display.
Claim 6
Dependent Claim 293 words
Apparatus for determining the flatness of a first cubic Bezier curve having a first set of four control points having coordinates, two of said control points being endpoints and the remaining control points being internal, in preparation for displaying the cubic Bezier curve on a raster display, comprising: means for determining whether said first cubic Bezier curve can be approximated by said straight line segment, such approximation being possible if the distance between the x and y values of a selected one of said internal control points and the respective x and y values of a selected endpoint are within a flatness factor of 1/3 of the distance between the respective x and y values of the coordinates of said two endpoints; means for outputting said straight line segment upon determining that said first cubic Bezier curve can be approximated by said straight line segment; means for dividing said first cubic Bezier curve approximately at its midpoint into second and third cubic Bezier curves and calculating a second and third set of control points for each of said second and third cubic Bezier curves upon determining that said first cubic Bezier curve cannot be approximated by a straight line segment, wherein at least one control point of each of said second and third sets of control points substantially coincides with one control point of said first cubic Bezier curve; means for repeating, when said second and third cubic Bezier curves cannot be approximated by straight line segments, the process of subdividing for either of said second and third cubic Bezier curves which cannot be so approximated, continuing iteratively until all cubic Bezier curves can be approximated by straight line segments; and means for displaying the approximated straight line segments on said raster display.
Claim 7
Dependent Claim 181 words
Apparatus for displaying rasterized objects comprising: means for accessing outline data from a computer memory or storage medium, said outline data representing said object in a first coordinate space, means for deriving from said outline data representing said object in a first coordinate space data corresponding to said outline data, the derived data representing said object in a second coordinate space; means for flattening curved portions of said data representing said object in said second coordinate space into a plurality of straight lines; means for generating a plurality of line segments from said straight lines; means for identifying all of said plurality of line segments that cross a midline through the center of a pixel; means for identifying the pixels to be used to display said object by selecting all pixels whose midlines have been identified to have been crossed by one of said plurality of line segments; and means for storing the identified pixels to be used to display said object in computer memory for subsequent display or displaying said pixels on a raster printing or a raster display device.
Claim 8
Dependent Claim 181 words
Apparatus for displaying rasterized objects comprising: means for accessing outline data from a computer memory or storage medium, said outline data representing said object in a first coordinate space, means for deriving from said outline data representing said object in a first coordinate space data corresponding to said outline data, the derived data representing said object in a second coordinate space; means for flattening curved portions of said data representing said object in said second coordinate space into a plurality of straight lines; means for generating a plurality of line segments from said straight lines; means for identifying all of said plurality of line segments that cross a midline through the center of a pixel; means for identifying the pixels to be used to display said object by selecting all pixels whose midlines have been identified to have been crossed by one of said plurality of line segments; and means for storing the identified pixels to be used to display said object in computer memory for subsequent display or displaying said pixels on a raster printing or a raster display device.

References Cited (Backward Citations)

US4675830A Cited
US4949281A Cited
US5241654A Cited
US5222207A Cited
US5269000A Cited
US5309521A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-01-04 2002-07-06 2003-01-05 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-01-04 2006-07-06 2007-01-05 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-01-04 2010-07-06 2011-01-05 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag