Saffron Type System
The Saffron Type System is a system for rendering high-quality scalable type on digital displays. It was developed by Mitsubishi Electric Research Laboratories, and is built on a core of adaptively-sampled distance field technology. Saffron has been licensed to Adobe and Monotype and is shipping in numerous products such as the Adobe Flash Player and Amazon Kindle. Saffron has been implemented in both software and hardware.
Principles
Antialiasing
Saffron performs anti-aliasing by first computing an explicit or implicit adaptively-sampled distance field and then mapping distance values to densities. This renders beautiful curves, captures small details, and preserves the nuances of the original font design. Although only one distance sample is needed per pixel to achieve high-quality results, the program can use up to 3 samples per pixel to optimize image quality for LCD displays. The computation of a distance sample requires only linear interpolation and can be updated incrementally from pixel to pixel, thereby making the rendering process simple and efficient. For a more comprehensive treatment of distance-based anti-aliasing, see "A New Framework for Representing, Rendering, Editing, and Animating Type", Ronald N. Perry and Sarah F. Frisken, MERL, 2002.Explicit and implicit ADFs
Saffron supports two types of ADFs for representing glyphs: explicit ADFs and implicit ADFs. A compile time flag controls the selection of which ADF type to use throughout the system.Explicit ADF generation uses top-down spatial subdivision to generate a spatial hierarchy of explicit ADF cells, where each explicit ADF cell contains a set of sampled distance values and a reconstruction method; explicit ADF rendering reconstructs the distance field within each explicit ADF cell using its reconstruction method and then maps the reconstructed distances to density values.
In contrast, implicit ADF cells are not generated initially, but are generated on-demand during rendering. More specifically, implicit ADF generation preprocesses an ADFPath ; it generates implicit ADF cells from the preprocessed ADFPath and renders each implicit ADF cell by first reconstructing the distance field within the implicit ADF cell using its reconstruction method and then mapping the reconstructed distances to density values.
Specific features
Math modes
The Saffron library offers both floating-point and fixed-point implementations of the renderer with identical image quality. The fixed-point implementation is ideal for embedded systems and mobile devices, which often lack floating-point hardware.Glyph formats
The program supports traditional outline-based fonts, uniform-width stroke-based fonts, and Stylized Stroke Fonts. Stroke-based fonts are useful for memory-constrained applications because they occupy a much smaller footprint than outline-based fonts and are also faster to render. For example, outline-based fonts containing the GB2312 character set often require well over 3 MB of storage, whereas the same character set can be represented compactly in a stroke-based font with only 250 KB. However, since each stroke has a uniform width, USFs lack the expressiveness and the cultural acceptance of their outline-based counterparts. Saffron supports an improved representation for stroke-based fonts called Stylized Stroke Fonts which provide the expressiveness of traditional outline-based fonts and the small memory footprint of USFs. For details, see “An Improved Representation for Stroke-based Fonts”, SIGGRAPH 2006 Conference Abstracts and Applications, Elena J. Jakubiak, Ronald N. Perry, and Sarah F. Frisken.Grid fitting
Saffron features an automatic grid fitting system that aligns strong vertical and horizontal edges of glyphs to the pixel grid or to the sub-pixel grid. This grid fitting system provides better contrast, uniform stroke weights, and consistent characteristic distances. Standard Alignment Zones currently support several alphabets, including Arabic, Devanagari, Hebrew, Latin, and Thai. The SAZ grid fitting system requires no changes to existing typefaces and is particularly advantageous when hints are unavailable or have been removed to save space. Unhinted fonts typically occupy significantly less space than their hinted counterparts.Saffron also features an automatic Multiple Alignment Zone grid fitting system, which is optimized specifically for Asian character sets such as Chinese, Japanese, and Korean. MAZ grid fitting leads to dramatic improvements in rendering quality. The MAZ grid fitting system detects strong horizontal and vertical edges and aligns them to the pixel grid. The MAZ algorithms work with both outline-based fonts and stroke-based fonts, run dynamically during rendering, and operate fully automatically with no user parameters required. The program fully supports application-hinted glyphs, allowing applications to override Saffron's automatic grid fitting algorithms by using their own hints to perform grid fitting.