<IT情報・Windows一般編> IT情報TOPヘ

Windowsのフォント技術を探る

(2012年04月01日)

 Windowsパソコンにおいて、Internet Explorer などのブラウザでホームページを見るとき、殆どの人はデフォルト(既定値)の「MS Pゴシック」フォントで見ているはずです。皆さんが日常使っているこのフォントは、実はパソコンができた当時のままの化石のようなフォントです。このフォントは「ビットマップフォント」といい、文字のギザギザ感はどうしようもありません。
 ただ、 Windows Vista から「メイリオ」という新しい日本語フォントが使えるようになり、ブラウザにこのフォントを設定すれば文字のギザギザはなくなり、くっきりと明瞭に見えるようになりました。この「メイリオ」フォントは文字の輪郭をスムーズにする「ClearType」という技術を最大限に生かした、Windows初の「アウトラインフォント」です。液晶ディスプレイ上の日本語の可読性を画期的に向上してくれます。
 今回は「ビットマップフォント」の誕生から、 Macや携帯などの表示にも使われている「アウトラインフォント」に至る歴史経緯を見ながら、きれいなフォント技術の秘密を見ていきます。

<フォントの種類>
 フォントは形状データの持ち方により、ビットマップフォントとスケーラブルフォントがあります。
 ビットマップフォントはドットの組み合わせで文字を表現するもので、下左図がそのイメージです。コンピュータ出現の初期には容量の節減、および描画速度の確保のためにビットマップフォントを利用してきました。現在の多くのフォンでは特別な場合を除き、美しく見やすい表示をするためにスケーラブルなアウトラインフォントへ移行しています。

 

 スケーラブルフォントは文字の線の位置や形、長さなどで文字の形を作るもので、上右図がそのイメージです。スケーラブルフォントは拡大縮小してもギザギザを少なくすることができます。その代表がアウトラインフォントです。
 アウトラインフォントは文字の輪郭線(アウトライン)の形状を、関数曲線の情報として持ちます。実際にディスプレイやプリンタに出力する際には、それぞれの解像度に合わせてビットデータにするラスタライズが必要になります。

<アウトラインフォント>
 パソコンで使われるアウトラインフォントには、TrueTypeフォントや OpenTypeフォントがあります。プロ用のフォントとしては、雑誌や書籍などの本格的な出版物に Postscriptフォントが使われます。
 下図は Word2007のフォント設定窓から見たフォントの一例です。「T」が2つ重なっているのが TrueTypeフォント、「O」で示されるのが OpenTypeフォントです。

 

TrueTypeフォント
 TrueTypeフォントはMicrosoftとAppleによって共同開発され、1990年に発表されたスケーラブルフォントです。TrueTypeフォントは任意サイズに調整が可能で、パソコンに内蔵したフォントデータをプリンタに出力することが可能になりました。 (それまでは、プリンタ側にもフォントのインストールが必要でした)
OpenTypeフォント
 OpenTypeフォントは TrueTypeの次期フォントとして、1996年AdobeとMicrosoftが共同で設計し、Appleがそれに賛同する形で開発されました。OpenTypeフォントも任意サイズでの調整が可能で、基本的な文字セットの拡張性に優れています。古いタイプの数字や装飾された文字、日本語フォントのように、より複雑な形状のフォントに使用可能です。

<アウトラインフォントのラスタライズ>
 パソコンの処理能力が極めて限られていた頃は、ディスプレイに表示するためのフォントとプリンタ印刷用のフォントは別々に用意していました。データ処理を軽くするために、ディスプレイに表示するためのビットマップフォントをパソコンに内蔵し、プリンタには印刷用フォントとしてアウトラインフォントを埋め込んでいました。
 現在では TrueTypeフォントや OpenTypeフォントなどのアウトラインフォントをパソコン本体にインストールしておき、ディスプレイ表示とプリンタ出力の両方に利用するのが基本的な考え方です。フォントのアウトラインデータはそのままでは、表示したり印刷したりすることができないデータの持ち方をしています。

 ディスプレイに表示したり、プリンタで印刷するためには、アウトライン情報をドット情報に変換する必要があります。このドット情報への変換をラスタライズ(rasterize)といいます。
 下図にラスタライズのイメージ図を示します。下図右のラスタライズされたビットデータのイメージ「あ」は、ドットを強調するためかなり粗く描かれていますが、このビットデータは意図する出力解像度に合わせた高い解像度で作成されます。

 

 このラスタライズはパソコン本体の GDI (Graphics Device Interface=Windowsのグラフィック描画ルーチン)が担当し、アウトラインデータをビットデータに変換します。ディスプレイに表示するにはその解像度に応じたビットデータを生成し、これをディスプレイドライバ 経由で画面に表示するという流れになります。
 通常のGDI プリンタ(インクジェットプリンタなど)に出力する場合も基本的な流れは同じで、プリンタの出力解像度に応じたビットマップデータを生成し、プリンタドライバ 経由で出力されます。ですから、ディスプレイに表示されたフォントイメージが、そのままプリントアウトされた文字になるわけではありません。
 ディスプレイの解像度は100dpi 程度、プリンタの解像度はその3倍の300dpi 程度ですから、その値に見合ったラスタライズが自動的にされることになります。

 また、このラスタライズを行う際、その最適化のためにフォントヒンティング(font hinting)という処理も行っています。ヒンティングとは文字の見た目を美しくするため、小さい文字の画数の間引きや線の太さなどを調整することです。ヒンティング情報はフォントに埋め込まれるため、この情報が多いフォントほど美しく表示できることになります。
 特に、低解像度のディスプレイに複雑な漢字を小さい文字で表示するときなどは、ドット数が少ないために文字のバランスをとる状況が多々発生します。このヒンティング処理により低解像度ディスプレイでの表示や、小さなサイズの印刷文字でも可読性が向上します。

<文字表示が滑らかなメイリオ>
 古くから「文字のエッジをスムーズにする」ごく普通の機能はありましたが、Windows XPが2001年11月16日に発売されたとき、スムージング効果の大きい「ClearType」が採用されました。しかし、Microsoftの日本語フォント(MS ゴシック・MS Pゴシック・MS UI Gothic、MS 明朝・MS P明朝)では、ディスプレイ表示に関して ClearTypeが有効なのは18ポイント以上に限られていました。我々がよく使う16ポイント以下のフォントは、その恩恵にあずかれなかったのです。

 使用頻度の高い16ポイント以下はClearTypeにできないビットマップフォントしか搭載していなかったのです。すなわち、日本語フォントのディスプレイ表示は 18ポイント以上はアウトラインフォント、16ポイント以下はビットマップフォントという変則的なフォント構成になっています。ことディスプレイ表示に関して極端な言い方をすれば、パソコンができたン10年前の表示方法がXPまで長い間実質的に続いてきたということです。
 一方、Macが「osaka」や「ヒラギノ」という超きれいなアウトラインフォントを搭載して、印刷業界を完全にリードしているのと比較すると、今もWindowsのフォントは極めて貧弱なのです。

 遅まきながら Windows Vistaで初めて搭載された「メイリオ」は 、横書きを前提に日本語と欧文が混在する角ゴシックの日本語フォントで、ディスプレイで読みやすいことを最優先として作成されました。そのためすべての文字サイズをアウトラインフォントにして、ラスタライズの際 ClearType の使用を前提として作成されています。
 「メイリオ」は 8ポイント前後の小さなサイズにおいても、ClearType を使用して綺麗な表示を実現するために、膨大なヒンティングデータが盛り込まれています。このヒンティングにより、小さな文字サイズでも潰れることなく表示できるわけです。



ページ
トップ