Claims
- 1. A system for creating font format data from source font data, comprising:
a glyph analysis software module stored in a computer readable medium and comprising computer executable instructions that are operable to cause a computing device to analyze the source font data and obtain glyph data for a plurality of glyphs from the source font data; a glyph dissection software module stored in a computer readable medium and comprising computer executable instructions that are operable to cause a computing device to dissect the glyph data for each glyph into stroke data; a midline extraction software module stored in a computer readable medium and comprising computer executable instructions that are operable to cause a computing device to extract midline data from the stroke data; and an element analysis software module stored in a computer readable medium and comprising computer executable instructions that are operable to cause a computing device to classify the midline data as unique element data and common element data and associate the unique element data and the common element data to each glyph of the plurality of glyphs.
- 2. The system of claim 1, wherein the glyph analysis software module computer executable instructions comprise:
contour analysis software instructions that are operable to cause a computing device to sort the glyph data into inner and outer contour data; and containment analysis software instructions that are operable to cause a computing device to determine containment of the inner and outer contour data.
- 3. The system of claim 3, wherein the glyph analysis software module computer executable instructions further comprise glyph simplification software instructions that are operable to cause a computing device to generate reduced glyph data from the glyph data.
- 4. The system of claim 3, wherein the glyph simplification software instructions that are operable to cause a computing device to generate reduced glyph data from the glyph data comprise:
cluster removal software instructions that are operable to cause a computing device to reduce data clusters in the glyph data; Bezier arc reduction software instructions that are operable to cause a computing device to reduce Bezier arc data in the glyph data; and polygon simplification software instructions that are operable to cause a computing device to reduce polygon definition data in the glyph data.
- 5. The system of claim 3, wherein the glyph analysis software module computer executable instructions further comprises contour point analysis software instructions that are operable to cause a computing device to classify the glyph data according to at least one contour characteristic.
- 6. The system of claim 5, wherein the at least one contour characteristic comprises convex and reflex angle characteristics.
- 7. The system of claim 5, wherein the at least one contour characteristic comprises valid neighbor characteristics.
- 8. The system of claim 1, wherein the glyph dissection software module computer executable instructions comprise instructions that are operable to cause a computing device to:
select starting stroke data from the glyph data; increment through the glyph data from the starting stroke data; determine if the incremented glyph data is candidate data; and if the incremented glyph data is candidate data, then select the next increment through the glyph data according to vector of movement data.
- 9. The system of claim 8, wherein the glyph dissection software module computer executable instructions further comprise instructions that are operable to cause a computing device to:
store the increment through the glyph data according to the vector of movement data as event data; and select event data as starting stroke data for subsequent dissection of glyph data into stroke data.
- 10. The system of claim 8, wherein the instructions that are operable to cause a computing device to select the next increment through the glyph data according to vector of movement data comprises instructions that are operable to cause a computing device to compare a proposed increment in the glyph data to a flatness threshold and determine whether the proposed increment in the glyph data is valid based on the comparison.
- 11. The system of claim 8, wherein the instructions that are operable to cause a computing device to select starting stroke data from the glyph data comprise instructions that are operable to cause a computing device to:
identify starting stroke data from the font source data; identify starting stroke data according to starting threshold data; and prioritize the identified starting stroke data and select the highest priority identified starting stroke data.
- 12. The system of claim 8, wherein the glyph dissection software module computer executable instructions further comprise instructions that are operable to cause a computing device to merge stroke data for each glyph after dissection of the glyph data.
- 13. The system of claim 12, wherein the instructions that are operable to cause a computing device to merge stroke data for each glyph after dissection of the glyph data comprise instructions that are operable to cause the computing device to:
identify explicitly connected stroke data; identify implicitly connected stroke data; merge the explicitly connected stroke data; and merge the implicitly connected stroke data.
- 14. The system of claim 1, wherein the midline extraction software module executable instructions comprise instructions that are operable to cause a computing device to:
increment through the stroke data; for each increment, determine and store a midline data value; and define the midline data as the stored midline data values after incrementing through the stroke data.
- 15. The system of claim 14, wherein the instructions that are operable to cause a computing device to determine and store a midline data value comprise instructions that are operable to cause a computing device to:
define segment data based on the incremented stroke data; define a midpoint based on the segment data; and define the midline data value as a midpoint.
- 16. The system of claim 1, wherein the element analysis software module computer executable instructions comprise instructions that are operable to cause a computing device to:
identify midline data defining a common pattern; identify midline data defining a unique pattern; for each identified midline data defining a common pattern classify the identified midline data defining a common pattern according to a common element identifier; and for each identified midline data defining a unique pattern classify the identified midline data defining the common pattern according to a unique element identifier.
- 17. The system of claim 16, wherein the element analysis software module computer executable instructions further comprise instructions that are operable to cause a computing device to:
store the common element identifier and corresponding translation data in a glyph data structure; store the unique element data in the data structure; and store the common element identifier and the common element data in a common element database; wherein the corresponding common element data as translated by the translation data and the unique element data define a polygon skeleton of a glyph shape.
- 18. A method of creating font format data from source font data, comprising:
analyzing the source font data to obtain glyph data for a plurality of glyphs; dissecting the glyph data; extracting midline data from the dissected glyph data; classifying the midline data as unique element data and common element data; and associating the unique element data and the common element data to each glyph of the plurality of glyphs.
- 19. The method of claim 18, wherein analyzing the source font data to obtain glyph data for a plurality of glyphs comprises:
sorting the glyph data into inner and outer contour data; and determining containment of the inner and outer contour data.
- 20. The method of claim 19, wherein analyzing the source font data to obtain glyph data for a plurality of glyphs further comprises generating reduced glyph data from the glyph data.
- 21. The method of claim 19, wherein analyzing the source font data to obtain glyph data for a plurality of glyphs comprises classifying the glyph data according to at least one contour characteristic.
- 22. The method of claim 21, wherein the at least one contour characteristic comprises convex and reflex angle characteristics.
- 23. The method of claim 21, wherein the at least one contour characteristic comprises valid neighbor characteristics.
- 24. The method of claim 18, wherein dissecting the glyph data comprises:
selecting starting stroke data from the glyph data; incrementing through the glyph data from the starting stroke data; determining if the incremented glyph data is candidate data; and if the incremented glyph data is candidate data, then selecting the next increment through the glyph data according to vector of movement data.
- 25. The method of claim 24, wherein dissecting the glyph data further comprises:
storing the increments through the glyph data according to the vector of movement data as event data; and selecting event data as starting stroke data for subsequent dissection of glyph data into stroke data.
- 26. The method of claim 24, wherein selecting the next increment through the glyph data according to vector of movement data comprises:
comparing a proposed increment in the glyph data to a flatness threshold; and determining whether the proposed increment in the glyph data is valid based on the comparison.
- 27. The method of claim 24, wherein selecting starting stroke data from the glyph data comprises:
identifying starting stroke data from the font source data; identifying starting stroke data according to starting threshold data; and prioritizing the identified starting stroke data; and selecting the highest priority identified starting stroke data.
- 28. The method of claim 24, wherein dissecting the glyph data further comprises merging stroke data for each glyph after dissection of the glyph data.
- 29. The method of claim 28, wherein merging stroke data for each glyph after dissection of the glyph data comprises:
identifying explicitly connected stroke data; identifying implicitly connected stroke data; merging the explicitly connected stroke data; and merging the implicitly connected stroke data.
- 30. The method of claim 29, wherein extracting midline data from the dissected glyph data comprises:
incrementing through the stroke data; for each increment, determining and storing a midline data value; and defining the midline data as the stored midline data values after incrementing through the stroke data.
- 31. The method of claim 18, wherein classifying the midline data as unique element data and common element data comprises:
identifying midline data defining a common pattern; identifying midline data defining a unique pattern; for each identified midline data defining a common pattern, classifying the identified midline data defining a common pattern according to a common element identifier; and for each identified midline data defining a unique pattern, classifying the identified midline data defining the common pattern according to a unique element identifier.
- 32. The method of claim 31, wherein associating the unique element data and the common element data to each glyph of the plurality of glyphs comprises:
storing the common element identifier and corresponding translation data in a glyph data structure; storing the unique element data in the glyph data structure; and storing the common element identifier and the common element data in a common element database; wherein the corresponding common element data as translated by the translation data and the unique element data define a polygon skeleton of a glyph shape.
- 33. A system for creating font format data from source font data, comprising:
means for analyzing the source font data to obtain glyph data for a plurality of glyphs; means for dissecting the glyph data; means for extracting midline data from the dissected glyph data; means for classifying the midline data as unique element data and common element data; and means for associating the unique element data and the common element data to each glyph of the plurality of glyphs.
- 34. A font data structure stored in a computer readable medium, comprising:
a common element database comprising a common element identifier field and a description data field, the common element identifier field operable to store common element identifier data and the description data field operable to store description data that defines a common element shape; and at least one glyph data structure comprising at least one common element record, the at least one common element record comprising a common element identifier field and a translation field, the common element identifier field operable to store common element identifier data corresponding to a common element stored in the common element database, and the translation field operable to store translation data for use in translating the common element shape.
- 35. The font data structure of claim 34, wherein the at least one glyph data structure further comprises a unique element record comprising a unique element identifier field and a description data field, the unique element identifier field operable to store unique element identifier data and the description data field operable to store description data that defines a unique element shape.
- 36. A font data structure stored in a computer readable medium, comprising:
means for storing common element identifier data and common element description data for a plurality of elements; means for associating the common element identifier data and the common element description data to a plurality of glyphs and for translating the common element description data for each of the plurality of glyphs.
- 37. A system for rendering text from stored font data, the system comprising:
a font data structure stored in a computer readable medium, the font data structure comprising common element data and unique element data for a plurality of glyphs: a rendering software module stored in a computer readable medium and comprising computer executable instructions that are operable to cause a computing device to access the font data structure and display a glyph based on the common element data and the unique element data accessed; and a mobile device comprising a computing device and a memory, the memory operable to store the font data structure and the rendering software module, and the computing device operable to execute the rendering software module computer executable instructions.
- 38. The system of claim 37, wherein the font data structure comprises:
a common element database comprising a common element identifier field and a description data field, the common element identifier field operable to store common element identifier data and the description data field operable to store description data that defines a common element shape; and at least one glyph data structure comprising at least one common element record, the at least one common element record comprising a common element identifier field and a translation field, the common element identifier field operable to store common element identifier data corresponding to a common element stored in the common element database, and the translation field operable to store translation data for use in translating the common element shape.
- 39. An entity data structure stored in a computer readable medium, comprising:
a common element database comprising a common element identifier field and a description data field, the common element identifier field operable to store common element identifier data and the description data field operable to store description data that defines a common element shape; and at least one entity data structure comprising at least one common element record, the at least one common element record comprising a common element identifier field and a translation field, the common element identifier field operable to store common element identifier data corresponding to a common element stored in the common element database, and the translation field operable to store translation data for use in translating the common element shape; wherein the entity is a visual display entity.
- 40. The entity data structure of claim 39, wherein the at least one entity data structure further comprises a unique element record comprising a unique element identifier field and a description data field, the unique element identifier field operable to store unique element identifier data and the description data field operable to store description data that defines a unique element shape.
- 41. The entity data structure of claim 40, wherein the entity is a font entity.
- 42. The entity data structure of claim 40, wherein the entity is a map entity.
Parent Case Info
[0001] This application claims the benefit of U.S. Provisional Applications Ser. Nos. 60/393,795, filed Jul.3, 2002, and 60/400,373, filed Jul. 31, 2002, the entire disclosures of which are incorporated herein by reference.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60393795 |
Jul 2002 |
US |
|
60400373 |
Jul 2002 |
US |