Monotype is well known for its large collection of fonts, but the package’s rendering technology has also found its way into many applications and devices. Its latest implementation targets the Internet of Things (IoT). In particular, it addresses devices with microcontrollers; for example, a 50-MHz ARM Cortex-M3 driving applications with flexible font-rendering needs, such as automotive clusters or medical devices (Fig. 1). Often, these microcontrollers’ limited RAM can make advanced font handling a challenge. More powerful systems, like those running Android, have the memory and performance to handle scalable fonts.
In the past, an application typically required a single bitmapped font for basic display presentation due to the limited display features. Different fonts would be stored if it needed additional styles or font sizes. Changing display hardware often required changing these fonts to accommodate the new hardware capabilities.
Higher-quality displays aren’t readily available, and technologies like e-paper allow for high-resolution presentations with minimal power requirements, which is ideal for mobile applications. Consequently, applications are able to utilize techniques such as scalable and downloadable fonts to support better presentations, as well as support different languages.
The challenges for scalable fonts are the support-software overhead and the hinting required for more compact renderings. Some fonts are designed for high resolution or print applications, and their hinting doesn’t necessarily translate into efficient and good-looking fonts on a lower-resolution display. What Monotype has done is bring this scalable capability to the low- and mid-range hardware spectrum, including manual and automatic hinting.
New products include iType Spark and WorldType Shaper Spark. The iType Spark platform, which generates bitmap fonts, supports language types like Latin and Chinese that have unique fonts per character. Though there may be proportional spacing between characters, each glyph is distinct. WorldType Shaper Spark handles more complex scenarios that involve combining multiple character glyphs into a larger combination. This approach is used for languages such as Hebrew, Thai, Devenagri, and Arabic (Fig. 2).
The iType Spark platform uses 20 kB of RAM and under 100 kB of flash. WorldType Shaper Spark takes a little more, but is only needed if there are more complex languages. The memory and processing requirements allow either platform to work with microcontrollers and low-end x86 processors.
The output for iType Spark can be monochrome, 8-bit grayscale, or outlines. It supports Monotype lightweight hints and performs its own auto-hinting. There’s support for TrueType fonts as well, but the best-quality fonts will be the Monotype Spark fonts. The base system includes a number of them.
Monotype has already delivered the platforms on four development boards with displays—the Keil STM 23 EXL, NXP XPRESSO LPC1769, Microchip PIC32 board, and Renesas SH7264. Support for the iType Spark and WorldType Shaper Spark can easily translate onto other platforms and displays.