System typu szafranu

Saffron Type System to system renderowania wysokiej jakości skalowalnych czcionek na wyświetlaczach cyfrowych. Został opracowany przez Mitsubishi Electric Research Laboratories i jest zbudowany na rdzeniu technologii pola odległości z adaptacyjnym próbkowaniem (ADF). Saffron jest licencjonowany dla Adobe i Monotype i jest dostarczany w wielu produktach, takich jak Adobe Flash Player i Amazon Kindle. Szafran został zaimplementowany zarówno w oprogramowaniu, jak i sprzęcie.

Zasady

Wygładzanie krawędzi

Saffron wykonuje antyaliasing, najpierw obliczając jawne lub niejawne, adaptacyjnie próbkowane pole odległości (ADF), a następnie mapując wartości odległości na gęstości. To renderuje piękne krzywe, rejestruje drobne szczegóły i zachowuje niuanse oryginalnego projektu czcionki. Chociaż do uzyskania wysokiej jakości wyników potrzebna jest tylko jedna próbka odległości na piksel , program może wykorzystywać do 3 próbek na piksel, aby zoptymalizować jakość obrazu dla wyświetlaczy LCD . Obliczenie próbki odległości wymaga jedynie interpolacji liniowej i może być aktualizowane przyrostowo od piksela do piksela, dzięki czemu proces renderowania jest prosty i wydajny. antyaliasingu opartego na odległości , zobacz „A New Framework for Representing, Rendering, Editing, and Animating Type”, Ronald N. Perry i Sarah F. Frisken, MERL, 2002.

Jawne i niejawne ADF

Saffron obsługuje dwa typy ADF do reprezentowania glifów: jawne ADF i niejawne ADF. Flaga czasu kompilacji kontroluje wybór typu ADF do użycia w całym systemie.

Jawne generowanie ADF wykorzystuje odgórny podział przestrzenny do generowania przestrzennej hierarchii jawnych komórek ADF, gdzie każda jawna komórka ADF zawiera zestaw próbkowanych wartości odległości i metodę rekonstrukcji; jawne renderowanie ADF rekonstruuje pole odległości w każdej jawnej komórce ADF przy użyciu metody rekonstrukcji, a następnie odwzorowuje zrekonstruowane odległości na wartości gęstości.

Natomiast niejawne komórki ADF nie są generowane początkowo, ale są generowane na żądanie podczas renderowania. Mówiąc dokładniej, niejawne generowanie ADF przetwarza wstępnie ścieżkę ADFPath (która reprezentuje glif); generuje niejawne komórki ADF z wstępnie przetworzonej ścieżki ADFPath i renderuje każdą niejawną komórkę ADF najpierw rekonstruując pole odległości w niejawnej komórce ADF przy użyciu jej metody rekonstrukcji, a następnie odwzorowując zrekonstruowane odległości na wartości gęstości.

Specyficzne cechy

Tryby matematyczne

Biblioteka Saffron oferuje zarówno zmiennoprzecinkowe , jak i stałoprzecinkowe implementacje renderera z identyczną jakością obrazu. Implementacja punktu stałego jest idealna dla systemów wbudowanych i urządzeń mobilnych , w których często brakuje sprzętu zmiennoprzecinkowego.

Formaty glifów

Program obsługuje tradycyjne czcionki oparte na konturach , czcionki oparte na obrysach o jednolitej szerokości oraz stylizowane czcionki obrysu (SSF). Czcionki oparte na obrysach są przydatne w aplikacjach o ograniczonej pamięci (np. systemy wbudowane), ponieważ zajmują znacznie mniej miejsca niż czcionki oparte na konturach, a także są szybsze w renderowaniu. Na przykład czcionki konturowe zawierające zestaw znaków GB2312 często wymagają znacznie ponad 3 MB pamięci, podczas gdy ten sam zestaw znaków można zwięźle przedstawić w czcionce opartej na obrysach, która zajmuje tylko 250 KB. Ponieważ jednak każdy obrys ma jednolitą szerokość, USF nie mają wyrazistości i kulturowej akceptacji ich odpowiedników opartych na konturach. Saffron obsługuje ulepszoną reprezentację czcionek opartych na obrysach o nazwie Stylized Stroke Fonts (SSF), które zapewniają wyrazistość tradycyjnych czcionek opartych na konturach i zajmują mało pamięci USF. Aby uzyskać szczegółowe informacje, patrz „An Improved Representation for Stroke-based Fonts”, SIGGRAPH 2006 Conference Abstracts and Applications, Elena J. Jakubiak, Ronald N. Perry i Sarah F. Frisken.

Dopasowanie siatki

Szafran posiada automatyczny system dopasowywania siatki, który wyrównuje mocne pionowe i poziome krawędzie glifów z siatką pikseli lub siatką subpikseli. Ten system dopasowania siatki zapewnia lepszy kontrast, jednolite ciężary obrysu i spójne charakterystyczne odległości. Standardowe strefy wyrównania (SAZ) obsługują obecnie kilka alfabetów, w tym arabski , dewanagari , hebrajski , łaciński i tajski . System dopasowywania siatki SAZ nie wymaga żadnych zmian w istniejących krojach pisma i jest szczególnie korzystny, gdy wskazówki są niedostępne lub zostały usunięte w celu zaoszczędzenia miejsca. Czcionki bez podpowiedzi zwykle zajmują znacznie mniej miejsca niż ich odpowiedniki z podpowiedziami.

Saffron posiada również automatyczny system dopasowywania siatki Multiple Alignment Zone (MAZ), który jest zoptymalizowany specjalnie dla zestawów znaków azjatyckich, takich jak chiński, japoński i koreański. Dopasowanie siatki MAZ prowadzi do radykalnej poprawy jakości renderowania. System dopasowywania siatki MAZ wykrywa mocne poziome i pionowe krawędzie i wyrównuje je z siatką pikseli. Algorytmy MAZ działają zarówno z czcionkami opartymi na konturach, jak i czcionkami opartymi na obrysach, działają dynamicznie podczas renderowania i działają w pełni automatycznie, bez konieczności wprowadzania parametrów użytkownika. Program w pełni obsługuje glify podpowiedziane przez aplikację, umożliwiając aplikacjom zastąpienie automatycznych algorytmów dopasowywania siatki Saffron przy użyciu własnych wskazówek (np. wskazówek TrueType) w celu wykonania dopasowania siatki.

Uproszczenie znaków

Znaki chińskie, japońskie i koreańskie często zawierają wiele kresek, które są trudne do wyraźnego renderowania w małych rozmiarach. Proste wyrównanie poziomych i pionowych kresek z siatką pikseli (np. poprzez zaokrąglenie każdej kreski do najbliższego punktu siatki) nie wystarczy do uzyskania wyraźnego obrazu. System dopasowywania siatki MAZ firmy Saffron upraszcza znaki (w razie potrzeby), aby zapewnić, że każdy znak pozostaje wyraźny i czytelny, nawet w małych rozmiarach.

Renderowanie subpikselowe

Program obsługuje renderowanie subpikselowe w celu optymalizacji jakości obrazu dla wyświetlaczy LCD. Chociaż pionowe paski RGB są powszechne, Saffron może również renderować alternatywne wzory pikseli, takie jak macierze RGB delta, które są często używane w wyświetlaczach LCD aparatów cyfrowych. Ponadto prototypowe implementacje Saffron są zoptymalizowane pod kątem PenTile firmy Clairvoyante . Podczas renderowania subpikselowego program redukuje artefakty kolorowych obwódek, które w innym przypadku byłyby widoczne przy małych rozmiarach.

Ciągła modulacja skoku

Szafran wykorzystuje nieodłączne właściwości pól odległości, aby zapewnić ciągłą modulację skoku (CSM), ciągłą modulację zarówno ciężaru uderzenia, jak i ostrości krawędzi. Pozwala to użytkownikom dostosować wygląd tekstu do indywidualnych preferencji. Na przykład ostrzejsze, bardziej miękkie, cieńsze i grubsze wersje tego samego kroju pisma można renderować przy użyciu różnych parametrów CSM.

Linki zewnętrzne