Введение

Система шрифтов Saffron – это система для отображения высококачественных масштабируемых шрифтов на цифровых дисплеях. Она была разработана исследовательской лабораторией Mitsubishi Electric Research Laboratories и основана на технологии адаптивно-выборочных дистанционных полей (ADF). Saffron лицензирована компаниям Adobe и Monotype и используется во многих продуктах, таких как Adobe Flash Player и Amazon Kindle. Реализация Saffron доступна как в программном, так и в аппаратном обеспечении.

Антиализинг

Saffron выполняет антиалиазинг, сначала вычисляя явное или неявное адаптивно-выборочное поле расстояний (ADF), а затем преобразуя значения расстояний в плотности. Это позволяет отрисовывать плавные кривые, захватывать мелкие детали и сохранять нюансы оригинального дизайна шрифта. Несмотря на то, что для достижения высококачественных результатов достаточно одного образца расстояния на пиксель, программа может использовать до 3 образцов на пиксель для оптимизации качества изображения на ЖК-дисплеях. Вычисление образца расстояния требует лишь линейной интерполяции и может обновляться инкрементально от пикселя к пикселю, что делает процесс рендеринга простым и эффективным. Более подробное описание антиалиасинга на основе расстояний можно найти в работе "Новая структура для представления, рендеринга, редактирования и анимации шрифтов", Рональд Н. Перри и Сара Ф. Фрискен, MERL, 2002.

Явные и неявные АДФ

Saffron поддерживает два типа ADF для представления глифов: явные ADF и неявные ADF. Флаг времени компиляции управляет выбором типа ADF, используемого во всей системе. Генерация явных ADF использует пространственное деление сверху вниз для создания пространственной иерархии явных ячеек ADF, где каждая явная ячейка ADF содержит набор дискретизированных значений расстояния и метод реконструкции; рендеринг явных ADF реконструирует поле расстояний внутри каждой явной ячейки ADF с использованием её метода реконструкции, а затем преобразует реконструированные расстояния в значения плотности. В отличие от этого, неявные ячейки ADF не генерируются изначально, а создаются по требованию во время рендеринга. В частности, генерация неявных ADF предварительно обрабатывает ADFPath (который представляет глиф); она генерирует неявные ячейки ADF из предварительно обработанного ADFPath и отрисовывает каждую неявную ячейку ADF, сначала реконструируя поле расстояний внутри неявной ячейки ADF с использованием её метода реконструкции, а затем преобразуя реконструированные расстояния в значения плотности.

Математические режимы

Библиотека Saffron предоставляет как реализации рендерера с плавающей точкой, так и с фиксированной точкой, обеспечивающие одинаковое качество изображения. Реализация с фиксированной точкой идеально подходит для встраиваемых систем и мобильных устройств, которые часто не имеют аппаратной поддержки операций с плавающей точкой.

Форматы глифов

Программа поддерживает традиционные шрифты на основе контуров, шрифты на основе штрихов фиксированной ширины и стилизованные шрифты на основе штрихов (SSF). Шрифты на основе штрихов полезны для приложений с ограниченными ресурсами памяти (например, встроенных систем), поскольку они занимают значительно меньше места, чем шрифты на основе контуров, и быстрее отрисовываются. Например, шрифты на основе контуров, содержащие набор символов GB2312, часто требуют более 3 МБ памяти, в то время как тот же набор символов может быть компактно представлен в шрифте на основе штрихов всего в 250 КБ. Однако, из-за фиксированной ширины штрихов, шрифты на основе штрихов фиксированной ширины уступают шрифтам на основе контуров в выразительности и общепринятости. Saffron поддерживает улучшенное представление шрифтов на основе штрихов, называемое стилизованными шрифтами на основе штрихов (SSF), которое сочетает в себе выразительность традиционных шрифтов на основе контуров и малый размер шрифтов на основе штрихов фиксированной ширины. Подробности можно найти в статье "Улучшенное представление шрифтов на основе штрихов" (An Improved Representation for Stroke based Fonts), опубликованной в сборнике тезисов и приложений SIGGRAPH 2006, авторов: Елена Джей. Якубиак, Рональд Н. Перри и Сара Ф. Фрискен.

Установка сетки

Saffron оснащен автоматической системой привязки к сетке, которая выравнивает четкие вертикальные и горизонтальные края глифов к пиксельной или субпиксельной сетке. Эта система привязки обеспечивает улучшенный контраст, равномерную толщину штрихов и согласованные характеристические расстояния. Стандартные зоны выравнивания (SAZ) в настоящее время поддерживают несколько алфавитов, включая арабский, деванагари, иврит, латинский и тайский. Система привязки SAZ не требует внесения изменений в существующие шрифты и особенно эффективна, когда намеки недоступны или были удалены для экономии места. Шрифты без намеков обычно занимают значительно меньше места, чем шрифты с намеками. Saffron также оснащен автоматической системой привязки к сетке с множественными зонами выравнивания (MAZ), оптимизированной специально для азиатских наборов символов, таких как китайский, японский и корейский. Привязка MAZ к сетке приводит к значительному улучшению качества рендеринга. Система MAZ обнаруживает четкие горизонтальные и вертикальные края и выравнивает их по пиксельной сетке. Алгоритмы MAZ работают как с контурными, так и со шрифтами, основанными на штрихах, динамически выполняются во время рендеринга и работают полностью автоматически без необходимости пользовательских настроек. Программа полностью поддерживает намеки, заданные приложениями, позволяя им переопределять автоматические алгоритмы привязки к сетке Saffron, используя собственные намеки (например, TrueType намеки) для выполнения привязки.

Упрощение символов

Китайские, японские и корейские иероглифы часто содержат множество штрихов, которые сложно четко отобразить в малом размере. Простое выравнивание горизонтальных и вертикальных штрихов по пиксельной сетке (например, округление каждого штриха до ближайшей точки сетки) недостаточно для получения четкого изображения. Система подгонки к сетке MAZ от Saffron выполняет упрощение иероглифов (при необходимости), чтобы каждый иероглиф оставался четким и разборчивым даже при небольших размерах.

Рендаринг субпикселей

Программа поддерживает субпиксельный рендеринг для оптимизации качества изображения на ЖК-дисплеях. Хотя распространены вертикальные полосатые RGB-массивы, Saffron также может выполнять рендеринг для альтернативных схем расположения пикселей, таких как RGB-дельта массивы, которые часто используются в ЖК-дисплеях цифровых камер. Кроме того, прототипные реализации Saffron оптимизированы для PenTile-матриц Clairvoyante. При субпиксельном рендеринге программа снижает эффект цветной бахромы, который в противном случае был бы заметен при малых размерах.

Модуляция непрерывного хода

Saffron использует свойства дистанционных полей для обеспечения непрерывной модуляции штриха (CSM) – непрерывного изменения толщины и четкости границ штриха. Это позволяет пользователям настраивать внешний вид текста в соответствии со своими предпочтениями. Например, можно получить более четкие, мягкие, тонкие и толстые варианты одного и того же шрифта, используя различные параметры CSM.