Adobe contributes font rasterizer technology to FreeType
Today we are pleased to announce that Adobe has contributed its CFF rasterizer to FreeType. The code is now available for testing in the latest beta version of FreeType. This open source project, aimed at improving CFF rasterization in devices and environments that use FreeType, is a collaboration between Adobe, Google and FreeType.
Modern fonts use one of two outline formats – TrueType or CFF. TrueType was developed by Apple in 1990, while CFF (the Compact Font Format) was developed by Adobe as a second-generation form of the Type 1 format (often called PostScript fonts) that Adobe first released in 1984. Either TrueType or CFF can be used in OpenType fonts. The two share many qualities, but differ in two primary ways: they use different math to describe the curves in letterforms, and they have different styles of “hinting.” (Hinting = providing guidance to the rasterizer to ensure each letterform is represented as faithful as possible in a limited set of pixels.) TrueType puts most of the emphasis on instructions built into the font, while Type 1 and CFF rely more on intelligence in the rasterizer. This makes the quality of the rasterizer particularly important, and Adobe expects its contribution to FreeType will produce a noticeable improvement for CFF fonts in environments that use FreeType.
FreeType, an open source library for font rendering, is used either partially or exclusively by Android, Chrome OS, iOS, GNU/Linux and other free Unix operating system derivatives such as FreeBSD and NetBSD. This makes FreeType the font rendering software of choice for more than a billion devices. As a user of FreeType in their products, Google was looking to get the same high-quality text rendering for CFF fonts that their users currently enjoy with TrueType fonts. Google approached Adobe about getting Adobe’s rasterizer technology into FreeType and has been a key financial supporter of this project ever since. And because Google is such a strong supporter of open-sourced technology, all users of FreeType, as well as FreeType developers, will benefit from this contribution.
As a long time developer of fonts and font rendering technology, Adobe saw this contribution to FreeType as an opportunity to make CFF fonts look great on a multitude of devices. Similar to Adobe’s collaboration with Apple and Microsoft 12 years ago to get native support for Type 1 and CFF fonts into the desktop OSes, and more recent collaboration with Microsoft to get the CFF rasterizer into WPF and DirectWrite, contributing the Adobe CFF Engine to FreeType will dramatically improve the CFF font experience for a large number of users. Users of devices that incorporate the new version of FreeType will have the same font rendering experience for CFF fonts that they have enjoyed for many years on Windows and OS X.
The examples below illustrate some of the differences users will see on devices that use FreeType with the Adobe CFF Engine. Samples on the left are CFF fonts rendered with the native FreeType hinter, those in the middle are rendered with FreeType’s light-auto hinter and the ones on the right are using FreeType with the Adobe CFF Engine. Clicking on these images will display a higher (1:1) resolution image.
The above examples illustrate the cumulative effect many small improvements can make when it comes to font rendering. Adobe CFF Engine features, such as adding an extra pixel in height to help separate stems in many glyphs, and increasing stem widths to enhance contrast without creating blobs and — when there are not enough pixels — leaving selected stems unhinted, improves the readability of CFF fonts.
Although CFF fonts have been widely popular on the desktop over the last decade, the Web and mobile devices almost exclusively use TrueType. This reflects the legacy of low-resolution monochrome displays, an area where “superhinted” TrueType fonts could produce better results.
With the addition of high-quality CFF font support, developers will have a much richer set of fonts from which to choose. Not only is CFF the world’s most popular font format, it is a great format for the Web and mobile, as Miguel Sousa discussed in an earlier blog post. Two of its most significant benefits are smaller file size than TrueType and a flexible and powerful method of hinting which ensures excellent rendering across a wide range of environments and devices. As Miguel points out, it’s easy to see why smaller font files are desirable for the web and for resource-limited devices.
If you are interested in testing the Adobe rasterizer code in FreeType, visit www.freetype.org. The code is beta and off by default, so you have to explicitly select it using the new hinting-engine property of the CFF driver. Additional instructions are available in the FreeType ‘CHANGES‘ file. If you are looking for a set of CFF fonts with which to test, we recommend that you download one of Adobe’s free, open-source typefaces, Source Sans or Source Code, available on GitHub.
For additional information from Google please visit http://google-opensource.blogspot.com/2013/05/got-cff.html.
Note: We have updated some links in this post for clarity; Adobe open source projects are hosted on GitHub, but no longer on SourceForge. (10/23/2014)