taskSoftware Patents examples - Tasks: task #202, FreeType


You are not allowed to post comments on this tracker with your current authentication level.

task #202: FreeType

Submitter:  Hugo Gayosso <hgayosso>
Submitted:  -
Category:  Patent Database Should Start On:  Tue 05 Jun 2001 12:00:00 AM UTC
Should be Finished on:  Sun 10 Jun 2001 12:00:00 AM UTC Priority:  5 - Normal
Status:  None Privacy:  Public
Assigned to:  None Percent Complete:  100%
Open/Closed:  Open Effort:  0.00

Mon 06 Aug 2001 05:02:57 PM UTC, comment #1: 

See http://freetype.sourceforge.net/patents.html  for more informations.

Free package(s) attacked:

  main package:
    - FreeType Project
Who developed it:

The FreeType Team

Feature or functionality endangered:

The reason why TrueType fonts can render so beautifully at small pixel sizes comes from the way glyph images are described and processed according to the TrueType specification. Namely:

Each glyph image is stored in a TrueType font file as a simple scalable outline (built from line segments and quadratic bezier arcs), to which is associated an array of bytes, called the glyph program.

The glyph program really contains a series of program instructions, written for a specific virtual machine (the TrueType VM), defined in the TrueType specification.

The TrueType VM is heavily designed towards the processing of geometric shapes. For example, it contains instructions to move points, measure distances, align points to the pixel grid, etc..

When a glyph needs to be rendered at a specific pixel size, its outline is loaded and scaled linearly to the current device space. Its glyph program is fed to a Bytecode Interpreter that executes it.

The glyph program knows about the current pixel size, and will adjust the glyph outline's to the font designer's intent in order to produce the best possible bitmap (at least in theory :-)

What the patent covers:

It's important to clarify that the patents only cover a small subset of the TrueType instructions (not the whole process of hinting glyphs with specific bytecode programs). Unfortunately, the patented bytecodes are relatively often used in high-quality glyph programs.

Patent holders: Adobe
Patent numbers:

Patent #1 :  US5155805: Method and apparatus for moving control points in displaying digital typeface on raster output devices
Filed on May, 8 1989

Patent #2 : US5159668: Method and apparatus for manipulating outlines in improving digital typeface on raster output devices
Filed on May, 8 1989 too. Actually, the two patents were filed and granted concurrently.

Patent #3 : US5325479: Method and apparatus for moving control points in displaying digital typeface on raster output devices
Filed on May 28, 1992


Is FreeType 1 affected by the patents ?
The answer is yes, for each default build of FreeType 1 (from 1.0 to the latest 1.3.1). Since this library was written well before the "discovery" of the Apple patents, it comes with a built-in and complete TrueType bytecode interpreter. It should thus only be used with a license from Apple.

Note however that since release 1.3, this version of the library allows you to disable the bytecode interpreter entirely. The resulting glyphs will not be hinted and be of poor quality, but this makes the library still useful for a number of programs like font converters.

Is FreeType 2 affected by the patents ?
The answer is no for any recent build of FreeType 2, since it comes with a "auto-hinting" module that was specifically designed to completely ignore the TrueType bytecodes.

However, the source code for the bytecode interpreter is still available and can be toggled on at compile time, for those that want to use it anyway (because they purchased a license from Apple, or because they're in a country where the patents do not apply, etc..), for details, check the documentation that comes with your FreeType source package (it normally involves changing one configuration macro).

Note that some beta versions of FT2 did use the bytecode interpreter (since the auto-hinter wasn't available yet), and is still in use in certain products (this, and this one, for example).

Finally, many Linux distributions seem to distribute a patched version of FT2 with an active bytecode interpreter, unlike the sources we distribute. Of course, we can only deny any kind of responsability in this choice; however, it means that in the event where you would need to update the version of FreeType installed on your system from our sources, you'd better activate manually the bytecode interpreter at compile time in order to prevent any loss of quality.

Florian Forster <bruderflo>
Group administrator


(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

No files currently attached


Depends on the following items: None found

Items that depend on this one: None found


CC list is empty


There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.


Follow 3 latest changes.

Date Changed by Updated Field Previous Value => Replaced by
2001-08-06 bruderflo Percent CompleteNone None
2001-07-05 bruderflo start_date991713600

Back to the top

Powered by Savane 3.13-4b48.
Corresponding source code