(57)【要約】【課題】文字アウトラインが走査変換されるときの特定のサイズと出力解像度で文字アウトラインから作成された文字ビットマップをより高品位なものとするために、文字にヒンティングインストラクションを付加するための方法およびシステムを提供する。【解決手段】出力される文字が検索される。文字が意味論的文字分類に属するか否かが判定され、意味論的文字分類に関係するヒンティングインストラクションにアクセスされる。ヒンティングインストラクションは、文字の意味論上の意味を維持しながら、基準文字サイズおよび出力解像度に基づいて、文字の少なくともひとつの特徴の少なくともひとつのストロークに関し、ストロークの存在、位置あるいはその両方を変更する。文字の実際の文字サイズおよび出力解像度が、ヒンティングインストラクションに関する基準文字サイズおよび出力解像度に当てはまる場合、ヒンティングインストラクションが実行される。【選択図】図８
2006106729.tif 000002
【特許請求の範囲】
【請求項１】
文字のアウトラインが走査変換されるときの特定のサイズと出力解像度で文字アウトラインから生成される文字ビットマップをより高品位なものとするために、自動的に文字にヒンティングインストラクションを付加する方法であって、
ひとつまたは複数のストロークからなるひとつまたは複数の特徴を含む、出力されるべき文字を検索するステップと、
前記文字がひとつまたは複数の意味論的文字分類に属するか判定する行為と、
前記ひとつまたは複数の意味論的文字分類の各々に関係し、前記文字の意味論上の意味を維持しながら、前記文字の少なくともひとつの特徴の少なくともひとつのストロークについて、基準文字サイズおよび出力解像度に基づいてストロークの存在、ストロークの位置あるいはその両方を変更するひとつまたは複数のヒンティングインストラクションにアクセスする行為と、
前記文字の実際の文字サイズおよび出力解像度を、前記ひとつまたは複数のヒンティングインストラクションのための前記基準文字サイズおよび出力解像度と比較する行為と、
前記ひとつまたは複数のヒンティングインストラクションを実行し、前記文字の前記少なくともひとつの特徴の前記少なくともひとつのストロークについて、ストロークの存在、ストロークの位置またはその両方を変更し、ヒンティングされた文字アウトラインを生成する行為と
を含むことを特徴とする方法。
【請求項２】
請求項１に記載の方法であって、
前記ひとつまたは複数のヒンティングインストラクションは、前記文字の前記少なくともひとつの特徴の前記少なくともひとつのストロークについて、ストロークの位置を変更することを特徴とする方法。
【請求項３】
請求項１に記載の方法であって、
さらに、前記ヒンティングされた文字アウトラインから、スケーリングされた文字ビットマップを作成する行為を含むことを特徴とする方法。
【請求項４】
請求項３に記載の方法であって、
さらに、前記ビットマップをディスプレイデバイスに送信する行為を含むことを特徴とする方法。
【請求項５】
請求項１に記載の方法であって、
前記文字は東アジアの言語の文字であることを特徴とする方法。
【請求項６】
請求項１に記載の方法であって、
前記文字はひとつまたは複数の第一のヒンティングインストラクションに関係する第一の意味論的文字分類と、ひとつまたは複数の第二のヒンティングインストラクションに関係する第二の意味論的文字分類に属することを特徴とする方法。
【請求項７】
請求項６に記載の方法であって、
前記基準文字サイズおよび出力解像度と比較した前記実際の文字サイズおよび出力解像度に基づいて、前記ひとつまたは複数の第一のヒンティングインストラクションを実行し、前記ひとつまたは複数の第二のヒンティングインストラクションを実行しない行為を含むことを特徴とする方法。
【請求項８】
文字アウトラインが走査変換されるときの特定のサイズと出力解像度で前記文字のアウトラインから生成された文字ビットマップをより高品位なものとするために、文字について自動的にヒンティングインストラクションを実行する方法を実現するコンピュータ実行可能インストラクションを有するひとつまたは複数のコンピュータ判読機能媒体を備えるコンピュータプログラム製品であって、前記方法は、
ひとつまたは複数のストロークからなるひとつまたは複数の特徴を含む、出力されるべき文字を受け取るステップと、
前記文字のためのひとつまたは複数の意味論的文字分類を特定するステップと、
前記ひとつまたは複数の意味論的文字分類に関係し、前記文字の意味論上の意味を維持しながら、基準文字サイズおよび出力解像度に基づいて、前記文字の少なくともひとつの特徴の少なくともひとつのストロークについて、ストロークの存在、ストロークの位置またはその両方を変更するひとつまたは複数のヒンティングインストラクションを特定するステップと、
前記文字の実際の文字サイズおよび出力解像度が前記ひとつまたは複数のヒンティングインストラクションのための前記基準文字サイズおよび出力解像度内に含まれるか否かを判定するステップと、
前記ひとつまたは複数のヒンティングインストラクションを使って、前記文字の前記少なくともひとつの特徴の前記少なくともひとつのストロークについて、ストロークの存在、ストロークの位置またはその両方を変更することにより、ヒンティングされた文字アウトラインを生成するステップと
を含むことを特徴とするコンピュータプログラム製品。
【請求項９】
請求項８に記載のコンピュータプログラム製品であって、
前記ひとつまたは複数のヒンティングインストラクションは、前記文字の前記少なくともひとつの特徴の前記少なくともひとつのストロークについて、ストロークの存在を変更することを特徴とするコンピュータプログラム製品。
【請求項１０】
請求項８に記載のコンピュータプログラム製品であって、
前記少なくともひとつのストロークは垂直ストロークであることを特徴とするコンピュータプログラム製品。
【請求項１１】
請求項８に記載のコンピュータプログラム製品であって、
前記文字は東アジアの言語の文字であることを特徴とするコンピュータプログラム製品。
【請求項１２】
請求項１１に記載のコンピュータプログラム製品であって、
さらに、前記ヒンティングされた文字アウトラインからスケーリングされたビットマップを作成するステップを含むことを特徴とするコンピュータプログラム製品。
【請求項１３】
請求項１２に記載のコンピュータプログラム製品であって、
さらに、前記ヒンティングされた文字アウトラインをプリンタに出力するステップを含むことを特徴とするコンピュータプログラム製品。
【請求項１４】
請求項８に記載のコンピュータプログラム製品であって、
前記文字はひとつまたは複数の第一のヒンティングインストラクションに関係する第一の意味論的文字分類と、ひとつまたは複数の第二のヒンティングインストラクションに関係する第二の意味論的文字分類に属することを特徴とするコンピュータプログラム製品。
【請求項１５】
請求項１４に記載のコンピュータプログラム製品であって、
前記基準文字サイズおよび出力解像度に関する前記実際の文字サイズおよび出力解像度に基づいて、前記ひとつまたは複数の第一および第二のヒンティングインストラクションを実行する行為を含むことを特徴とするコンピュータプログラム製品。
【請求項１６】
文字アウトラインが走査変換されるときの特定のサイズおよび出力解像度で文字集合における文字のアウトラインから生成された文字ビットマップをより高品位なものとするために文字集合にヒンティングインストラクションを付加する方法であって、
出力されるべき文字集合を受け取るステップと、各文字は、ひとつまたは複数のストロークによるひとつまたは複数の特徴を有し、
前記文字集合の中の各文字について、
前記文字が属するひとつまたは複数の意味論的文字集合を特定するステップと、
前記文字のための前記ひとつまたは複数の意味論的文字集合に関係するひとつまたは複数のヒンティングインストラクションを特定するステップと、前記ひとつまたは複数のヒンティングインストラクションは、前記文字の意味論上の意味を保護しながら、基準文字サイズおよび出力解像度に基づいて、前記文字の少なくともひとつの特徴の少なくともストロークについて、ストロークの存在、ストロークの位置またはその両方を変更し、
前記ひとつまたは複数のヒンティングインストラクションを前記文字に関連付けるステップと
を含むことを特徴とする方法。
【請求項１７】
請求項１６に記載の方法であって、
さらに、前記ひとつまたは複数の意味論的文字分類を開発するステップを含むことを特徴とする方法。
【請求項１８】
請求項１６に記載の方法であって、
前記文字集合は、東アジアの言語のひとつまたは複数の文字であることを特徴とする方法。
【請求項１９】
請求項１８に記載の方法であって、
前記ひとつまたは複数のヒンティングインストラクションは、前記文字のユニコード値に基づいて前記文字に関連付けられることを特徴とする方法。
【請求項２０】
請求項１６に記載の方法であって、
前記文字集合は少なくともフォントの一部であることを特徴とする方法。
【請求項２１】
請求項２０に記載の方法であって、
さらに、前記フォントの少なくともひとつの文字に、前記少なくともひとつの文字に特有の少なくともひとつのヒンティングインストラクションを関連付けるステップを含むことを特徴とする方法。
【請求項２２】
請求項１６に記載の方法であって、
前記文字はひとつまたは複数の第一のヒンティングインストラクションと第一の基準文字サイズおよび出力解像度に関係する第一の意味論的文字分類とひとつまたは複数の第二のヒンティングインストラクションと第二の基準文字サイズおよび出力解像度に関係する第二の意味論的文字分類に属し、前記第一の基準文字サイズおよび出力解像度は前記第二の基準文字サイズおよび出力解像度と異なることを特徴とする方法。
【請求項２３】
文字アウトラインが走査変換されるときの特定のサイズおよび出力解像度で文字集合の中の文字のアウトラインから生成される文字ビットマップをより高品位なものとするために文字集合にヒンティングインストラクションを付加する方法を実行するコンピュータ実行可能インストラクションを有するひとつまたは複数のコンピュータ可読媒体からなるコンピュータプログラム製品であって、前記方法は、
各文字がひとつまたは複数のストロークによるひとつまたは複数の特徴を有する、出力すべき文字集合を検索する行為と、
前記文字集合の中の前記各文字について、
前記文字がひとつまたは複数の意味論的文字分類に属するか否かを判定する行為と、
前記文字が意味論的文字分類に属する場合、前記意味論的文字分類に関連し、前記文字の意味論上の意味を保護しながら、基準文字サイズおよび出力解像度に基づいて、前記文字の少なくともひとつの特徴の少なくともひとつのストロークについて、ストロークの存在、ストロークの位置またはその両方を変更するひとつまたは複数のヒンティングインストラクションにアクセスする行為と、
前記ひとつまたは複数のヒンティングインストラクションを前記文字に付加する行為と
を含むことを特徴とするコンピュータプログラム製品。
【請求項２４】
請求項２３に記載のコンピュータプログラム製品であって、
さらに、前記ひとつまたは複数の意味論的文字分類の各々について、前記ひとつまたは複数のヒンティングインストラクションを定義する行為を含むことを特徴とするコンピュータプログラム製品。
【請求項２５】
請求項２３に記載のコンピュータプログラム製品であって、
前記文字集合は、東アジアの言語のひとつまたは複数の文字であることを特徴とするコンピュータプログラム製品。
【請求項２６】
請求項２５に記載のコンピュータプログラム製品であって、
前記文字は複数の意味論的文字集合に属することを特徴とするコンピュータプログラム製品。
【請求項２７】
請求項２３に記載のコンピュータプログラム製品であって、
さらに、前記ひとつまたは複数の意味論的文字集合を定義する行為を含むことを特徴とするコンピュータプログラム製品。
【請求項２８】
請求項２３に記載のコンピュータプログラム製品であって、
前記文字集合は、ラテンフォントのひとつまたは複数の文字であることを特徴とするコンピュータプログラム製品。
【請求項２９】
文字アウトラインが走査変換されるときの特定のサイズおよび出力解像度で文字のアウトラインから生成されるスケーリングされた文字ビットマップをより高品位なものとするために文字にヒンティングインストラクションを自動的に付加する方法を実行するコンピュータ実行可能インストラクションを有するひとつまたは複数のコンピュータ可読媒体からなるコンピュータプログラム製品であって、前記方法は、
ひとつまたは複数のストロークからなるひとつまたは複数の特徴を有する、出力されるべき東アジアの言語の文字を検索する行為と、
前記文字がひとつまたは複数の意味論的文字分類に属するか否かを判定する行為と、
前記ひとつまたは複数の意味論的文字分類の各々に関係し、前記文字の意味論上の意味を保護しながら、基準文字サイズおよび出力解像度に基づいて、前記文字の少なくともひとつの特徴の少なくともひとつのストロークについて、ストロークの存在、ストロークの位置またはその両方を変更するひとつまたは複数のヒンティングインストラクションにアクセスする行為と、
前記文字の実際の文字サイズおよび出力解像度を前記ひとつまたは複数のヒンティングインストラクションのための前記基準文字サイズおよび出力解像度と比較する行為と、
前記ひとつまたは複数のヒンティングインストラクションを実行し、前記文字の前記少なくともひとつの特徴の前記少なくともひとつのストロークについて、ストロークの存在、ストロークの位置またはその両方を変更することにより、ヒンティングされた文字アウトラインを生成する行為と、
前記ヒンティングされた文字アウトラインからスケーリングされた文字ビットマップを作成する行為と、
前記スケーリングされた文字ビットマップを出力デバイスに送信する行為と
を含むことを特徴とするコンピュータプログラム製品。
【請求項３０】
請求項２９に記載のコンピュータプログラム製品であって、
前記ひとつまたは複数のヒンティングインストラクションは、前記文字の前記少なくともひとつの特徴の前記少なくともひとつのストロークについて、ストローク位置を変更することを特徴とするコンピュータプログラム製品。
【請求項３１】
請求項２９に記載のコンピュータプログラム製品であって、
前記文字は複数の意味論的文字分類に属することを特徴とするコンピュータプログラム製品。
【請求項３２】
請求項２９に記載のコンピュータプログラム製品であって、
前記出力デバイスはディスプレイデバイスであることを特徴とするコンピュータプログラム製品。
【請求項３３】
文字アウトラインが走査変換されるときの特定のサイズと出力解像度で文字アウトラインから生成されたスケーリングされた文字ビットマップの文字可読性を改善するために少なくともひとつの文字ストロークを削除する方法であって、
ひとつまたは複数のストロークからなるひとつまたは複数の特徴を有する文字アウトラインを定義するステップと、
ひとつまたは複数の基準文字サイズおよび出力解像度を定義するステップと、
前記文字の実際の文字サイズおよび出力解像度を前記ひとつまたは複数の基準文字サイズおよび出力改造度と比較するステップと、
前記実際の文字サイズと出力解像度が前記基準文字サイズおよび出力解像度のひとつに当てはまる場合に、組み込まれるべきひとつまたは複数の、ストロークが削除されたビットマップを定義する代わりに、前記文字について実行されるべきひとつまたは複数のヒンティングインストラクションであって、前記文字の意味論上の意味を維持しながら、前記文字の少なくともひとつの特徴の少なくともひとつのストロークを削除するひとつまたは複数のヒンティングインストラクションを定義するステップと
を含むことを特徴とする方法。
【請求項３４】
請求項３３に記載の方法であって、
前記文字アウトラインは東アジアの言語の文字アウトラインであることを特徴とする方法。
【請求項３５】
請求項３３に記載の方法であって、
前記ひとつまたは複数の基準文字サイズおよび出力解像度は、目標とされるポイントサイズおよび出力解像度として表現されることを特徴とする方法。
【請求項３６】
請求項３３に記載の方法であって、
前記ひとつまたは複数の基準文字サイズおよび出力解像度は、１ｅｍあたりのピクセルで表現されることを特徴とする方法。
【請求項３７】
請求項３３に記載の方法であって、
前記ひとつまたは複数のヒンティングインストラクションは、前記実際の文字サイズおよび出力解像度が前記基準文字サイズおよび出力解像度のひとつに当てはまる場合に、前記少なくともひとつのストロークを省略することを特徴とする方法。
【請求項３８】
請求項３７に記載の方法であって、
前記少なくともひとつのストロークは水平ストロークであることを特徴とする方法。
【請求項３９】
請求項３３に記載の方法であって、
前記ひとつまたは複数のヒンティングインストラクションは、前記実際の文字サイズおよび出力解像度が前記基準文字サイズおよび出力解像度のひとつに当てはまる場合に、前記少なくともひとつのストロークを部分的に省略することを特徴とする方法。
【請求項４０】
請求項３３に記載の方法であって、
前記ひとつまたは複数のヒンティングインストラクションは、前記実際の文字サイズおよび出力解像度が前記基準文字サイズおよび出力解像度のひとつに当てはまる場合に、前記少なくともひとつのストロークを短縮することを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字の可読性に関する。より詳しくは、本発明は、文字のアウトライン（輪郭）が走査変換されるときの特定のサイズと出力解像度で文字アウトラインから生成される文字ビットマップをより高品位なものとするために、文字にヒンティングインストラクションを付加することに関する。
【背景技術】
【０００２】
図１は、文字アウトライン１００を示す。文字アウトラインは、直線と曲線を使って文字の形状を数学的な説明である。文字アウトライン１００は、ストローク（筆画）１２１−１２６で構成される特徴（フィーチャー: feature）１２０を含み、ストローク１１１−１１２および１３１−１３３を含む。ストローク１２１−１２６を特徴１２０として識別することは、若干独断的な特定であり、これについては、本発明の各種の実施形態に関して後に詳しく説明する。ここでは、特徴がある文字の中のひとつまたは複数のストロークの集まりであることを理解すれば十分である。
【０００３】
図２は、文字アウトライン１００のビットマップ２００を６０ピクセルのグリッドにスケーリングしたものである。文字アウトライン１００と同様に、ビットマップ２００はストローク２２１−２２６で構成される特徴２２０を含み、ストローク２１１−２１２および２３１−２３３を含む。図２は、特定のサイズの文字について利用できるピクセルが十分にあれば、レンダリングは比較的容易で単純な工程であることを示している。
【０００４】
一方、各種の出力デバイスにおけるビットマップ２００の大きさを考えると、現在のレーザプリンタは、最も安価なものであっても３００ドット／インチ（ＤＰＩ）の解像度を提供でき、普通は６００ＤＰＩである。レーザプリンタでは一般的ではないが、２４００ＤＰＩを上回る解像度も、インクジェットプリンタでは珍しくない。したがって、３００ＤＰＩのレーザプリンタ上でレンダリングされた場合、ビットマップ２００は高さが５分の１インチとなる。
【０００５】
また一方、代表的なディスプレイデバイスの解像度はずっと低い。たとえば、約１００から１３３ピクセル／インチ（ＰＰＩ）のモニタは高い解像度とみなされ、解像度７２ＰＰＩといえば、ごく一般的なレベルである。その結果、高解像度のモニタ上でレンダリングされると、ビットマップ２００の高さは約２分の１インチとなる。
【０００６】
文字の最適な読取サイズは約９から１２ポイントの間であることが一般に受け入れられている。１ポイントは約７２分の１インチである。したがって、ポイントサイズをインチに変換すると、文字の最適な読取サイズは約８分の１インチから約６分の１インチということになる。
【０００７】
前述のように、３００ＤＰＩのレーザプリンタでレンダリングされた場合、ビットマップ２００の高さは５分の１インチとなり、これは読み取るには大きいが、大きすぎることはない。しかしながら、やはり前述のとおり、高解像度モニタ上でレンダリングされると、ビットマップ２００は高さが約２分の１インチとなり、有効に読み取るにはあまりにも大きすぎる。
【０００８】
文字アウトライン１００を７２ＰＰＩのモニタ上での読取が最適となるようなビットマップにするためには、文字アウトライン１００を、図３に示すような１２ピクセルのグリッドにスケーリングする必要があろう。７２ＰＰＩのモニタ上で、ビットマップ３００は高さが８分の１インチとなる。しかしながら、文字アウトライン１００が１２ピクセルのグリッドにスケーリングされた場合、文字の形状を正確に表わすのにピクセルが足りない。
【０００９】
ビットマップ２００と同様に、ビットマップ３００はストローク３２１−３２６で構成される特徴３２０を含み、ストローク３１１−３１２および３３１−３３３を含む。しかしながら、図３に示されているように、文字の形状は壊れているように見え、ピクセルとブロックスポットがつぶれている。たとえば、ストローク３２２と３２４Ａの間、ストローク３２６と３３２の間に余白（white space）がない。
【００１０】
図４の基本ビットマップ４００に示されているように、垂直方向に１４のピクセルがほぼ、文字アウトライン１００を正確に表わすのに必要な最低数である。ただし、ストローク４１１の最上部に１ピクセル、ストローク４１２に１ピクセル、ストローク４１２と４２２の分離に１ピクセル、ストローク４２２に１ピクセル、ストローク４２２とストローク４２４Ａの分離に１ピクセル、ストローク４２４Ａに１ピクセル、ストローク４２４Ａとストローク４２４Ｂの分離に１ピクセル、ストローク４２４Ｂに１ピクセル、ストローク４２４Ｂと４２６の分離に１ピクセル、ストローク４２６に１ピクセル、ストローク４２６とストローク４３２の分離のために１ピクセル、ストローク４３２に１ピクセル、ストローク４３１と４３３に２ピクセル、それぞれ使われることが前提となる。もちろん、ひとつの文字を正確に表わすのに必要なピクセルの最低数は文字によって異なる。
【００１１】
大雑把に言えば、あるフォントの中で、最も高い文字の最上部から最も低い文字の最下部までの垂直方向の距離は、１「ｅｍ」として定義される。ある程度のパディングもありえ、１ｅｍを超えるフォントの文字もある。ｅｍは測定単位ではなく、この距離を簡略的に説明するものである。１ｅｍあたりのピクセル数は、図３のような文字の形状の問題が発生しそうか否かを判定するのに役立つ。１ｅｍあたり６０ピクセルの場合（図２）、文字形状の問題は１ｅｍあたり１２ピクセルの場合（図３）より起こりにくい。
【００１２】
図４に戻ると、垂直方向に１４のピクセルを利用できない場合、可読性を改善するために文字を修正する必要がある。図４は、垂直方向にピクセルが足りないケースを示しているが、文字を表示する上でのピクセルの不足の問題は、水平方向にも当てはまることに注意すべきである。可読性を改善するために文字を修正するひとつの方法は、文字からストロークを削除することである。文字アウトライン１００の例としてアジアの文字を選択したのは、アジアの文字は、ラテンの文字と違ってストローク数が多く、したがって、有効に読み取るのに適した文字サイズで、図３に示すような水平方向または垂直方向の形状の問題が一般に発生しやすいからである。当然、ラテン系およびその他の文字についても、文字アウトラインにおけるストローク数、文字の目標サイズ、出力デバイスの解像度その他に応じて、同様の形状の問題が発生しうる。
【００１３】
アジアの文字から１ストロークを削除することは、英単語から１字削除することとほぼ等しい。多くの英単語の場合、１字減らしても、特に周辺の単語による文脈があれば、その単語が何の単語かわからなくなることはない。もちろん、特定の文字が他の文字に比べて大きな影響を持つということはあり、たとえば、単語の中ほどから母音を削除することは、単語の冒頭の子音を削除する場合より問題が少ない。同様に、アジアの文字から１ストローク削除しても、可読性にそれほど大きな影響が及ぶことはなく、その文字を表現するのに必要なピクセル数を減らすことができる。しかしながら、英単語から文字を削除するのと同様に、アジアの文字からどのストロークを削除すべきかは、可読性の低下をできるだけ防止するように選択すべきである。
【００１４】
その結果、文字アウトライン１００をスケーリングするよりも、従来のアジアのフォントには、異なるフォントサイズで文字をレンダリングするために、フォントの開発者によって作成された複数のビットマップが含まれている。図５に示す、ストロークが削除された状態のビットマップ５００は、図１に示す文字アウトライン１００のビットマップの一例である。可読性を改善するために、ストローク１２４Ａと１２４Ｂが省略されて１本のストローク５２４になっている点に注意する。残りのストローク５１１，５１２，５２１，５２２，５２３，５２６，５３１−５３３はほとんど変わっていない。
【００１５】
図５に示す解決策は図３に示す文字形状の問題には対処しているものの、各文字について複数のビットマップを用意することは、アジアのフォントを開発するのに多くの資源が必要となり、そのフォントに必要な記憶容量も大幅に増える。たとえば、アジアのフォントには２０，０００種類を超える文字がある。各文字について複数のビットマップを提供する場合、ひとつのアジアのフォントのためのビットマップの数は４００，０００個を超えるかもしれない。その結果、アジアのフォントを開発するのに５０名のフォントデザイナが丸々１年間働かなければならなくなる。
【００１６】
そこで、文字アウトラインが走査変換されるときの特定のサイズと出力解像度で文字アウトラインから生成されるスケーリングされた文字ビットマップの可読性を改善するために、文字にヒンティングインストラクションを付加するための方法、システムおよびコンピュータプログラム製品が必要となる。
【発明の開示】
【課題を解決するための手段】
【００１７】
本発明は、文字アウトラインが走査変換されるときの特定のサイズと出力解像度で文字アウトラインから生成されるスケーリングされた文字ビットマップの可読性を改善するために、文字にヒンティングインストラクションを、場合によっては自動的に、付加するための方法、システムおよびコンピュータプログラム製品に関する。
【００１８】
本発明の方法の一実施形態によれば、出力されるべき文字が検索され、その文字はひとつまたは複数の特徴を持ち、その特徴の各々がさらにひとつまたは複数のストロークからなる。この方法は、その文字がひとつまたは複数の意味論的文字分類に属するか否かを判定し、そのひとつまたは複数の意味論的文字分類の各々に関係するひとつまたは複数のヒンティングインストラクションにアクセスする。そのひとつまたは複数のヒンティングインストラクションは、その文字の意味論上の意味を維持しながら、その文字の少なくともひとつの特徴の少なくともひとつのストロークについて、基準の文字サイズおよび出力解像度に基づき、ストロークの存在、ストロークの位置、あるいはその両方を修正する。その文字の実際の文字サイズおよび出力解像度は、そのひとつまたは複数のヒンティングインストラクションのための基準の文字サイズおよび出力解像度と比較され、そのひとつまたは複数のヒンティングインストラクションが実行されて、その文字の少なくともひとつの特徴の少なくともひとつのストロークについて、ストロークの存在、ストロークの位置またはその両方が修正され、ヒント情報が加えられた文字アウトラインが生成される。
【００１９】
スケーリングされた文字ビットマップは、ヒント情報が加えられた文字アウトラインから作られ、ディスプレイデバイスまたはプリンタに送られる。いくつかの実施形態において、文字は東アジアの言語のものである。
【００２０】
本発明のコンピュータプログラム製品の別の一実施形態によれば、出力されるべき文字集合が受け取られ、各文字はひとつまたは複数のストロークによるひとつまたは複数の特徴を有する。その文字集合の中の各文字について、その文字が属するひとつまたは複数の意味論的文字分類とその意味論的文字分類に関係するひとつまたは複数のヒンティングインストラクションが特定される。そのひとつまたは複数のヒンティングインストラクションは、その文字の意味論上の意味を保護しながら、その文字の少なくともひとつの特徴の少なくともひとつのストロークについて、基準の文字サイズおよび出力解像度に基づき、ストロークの存在、ストロークの位置またはその両方を修正する。そのひとつまたは複数のヒンティングインストラクションは、その文字に関係する。
【００２１】
その文字に関係するひとつまたは複数のヒンティングインストラクションは、その文字のユニコード値、またはその他の符号化に基づくものであってよく、その文字集合は、フォントの少なくとも一部で構成されていてもよい。たとえば、その文字集合は、東アジアの言語の中のひとつまたは複数の文字とすることができる。ひとつの文字が複数の意味論的文字分類に属するかもしれず、異なる基準文字サイズおよび出力解像度が異なるヒンティングインストラクションに適用されるかもしれず、またいくつかのヒンティングインストラクションはその文字だけに固有のものとして関係しているかもしれないことに注意すべきである。
【００２２】
この方法はさらに、ひとつまたは複数の意味論的文字分類を開発するステップと、そのひとつまたは複数の意味論的文字分類のためのひとつまたは複数のヒンティングインストラクションを定義するステップを含んでもよい。
【００２３】
本発明の方法の他の実施形態によれば、それぞれひとつまたは複数のストロークからなるひとつまたは複数の特徴を有する文字アウトラインと、ひとつまたは複数の基準文字サイズおよび出力解像度が定義される。その文字の実際の文字サイズおよび出力解像度がそのひとつまたは複数の基準文字サイズおよび出力解像度と比較される。実際の文字サイズおよび出力解像度が基準の文字サイズおよび出力解像度のひとつに当てはまる場合に実行されるものとして、その文字に関する、ひとつまたは複数のストロークが削減されたビットマップではなく、ひとつまたは複数のヒンティングインストラクションが定義される。そのひとつまたは複数のヒンティングインストラクションは、その文字の意味論上の意味を維持しながら、文字の可読性を改善するために、その文字の少なくともひとつの特徴の少なくともひとつのストロークを削除する。
【００２４】
実際の文字サイズおよび出力解像度が基準文字サイズおよび出力解像度のひとつに当てはまる場合、ひとつまたは複数のヒンティングインストラクションは、ひとつのストロークを省略し、ストロークを部分的に省略し、ストロークを短縮し、等々を行う。そのストロークは、水平ストローク、垂直ストローク、斜めストローク等、どのような文字ストロークでもよい。
【００２５】
基準文字サイズおよび出力解像度は、目標とするポイントサイズと出力解像度、１ｅｍあたりのピクセル、あるいは他の適当ないかなる測定方法でも表現できる。
【００２６】
本発明の上記以外の特徴と利点は、以下の説明に記載され、あるいはその説明から明らかになり、また、本発明の実践から知ることができる。本発明の特徴と利点は、特に付属の特許請求範囲において明記されている機器や組み合わせからわかり、また得られる。本発明のこれらおよびその他の特徴は、以下の説明と付属の特許請求範囲からより十分明確になり、あるいは後述のような本発明の実践から知ることができるであろう。
【００２７】
本発明の上記およびその他の利点と特徴を実現できる方法を説明するために、上で簡単に述べた本発明に関するより具体的な説明が、付属の図面に示される本発明の具体的実施形態を参照しながら提供される。これらの図面は本発明の代表的な実施形態を示しているにすぎず、したがって、範囲を限定するものとはみなされないことを考慮し、本発明について、付属の図面を使用することによって一層具体的かつ詳細に説明する。
【発明を実施するための最良の形態】
【００２８】
本発明は、文字アウトラインが走査変換されるときの特定のサイズと出力解像度で文字アウトラインから生成されるスケーリングされた文字ビットマップの可読性を改善するために、文字にヒンティングインストラクションを付加するための方法、システムおよびコンピュータプログラム製品に関する。開示されているさまざまな実施形態は、説明と明確化のために、本発明の中の異なる態様に焦点を当てていることに注意すべきである。したがって、開示されている実施形態は、本発明の範囲を限定するために使用すべきではなく、開示された実施形態および／またはその特定の部分を組み合わせたものも、本発明の範囲に含まれると理解すべきである。
【００２９】
図６は、図１に示す文字アウトラインについて、グリッドフィッティングのためにヒンティングを利用し、スケーリングされたビットマップ６００を示す。グリッドフィッティングを使ったヒンティングインストラクションは、どのピクセルをオンにすべきかを判定する前に、文字アウトラインをグリッドに当てはめる方法を説明するものである。グリッドフィッティングは、位置、距離、保護部分の規則性もしくは準規則性を保護しようと試みる。図６において、水平のストローク６１２，６２２，６２４Ａ，６２４Ｂ，６２６，６３２は、ストロークの輪郭がひとつのピクセルに沿うように１２ピクセルグリッドに当てはめられている。グリッドフィッティングは通常、最初に一方の軸に沿って、次に第二の軸に沿って行われる。
【００３０】
図６に示すグリッドフィッティングは、文字の形状を改善するが、イメージのブロックスポットの問題を解決しない。図４に戻ると、この理由は、文字アウトライン１００を正確に表わすのに最低１４ピクセルが必要であるからである。ビットマップ６００の形状を改善するために、特徴６２０の真ん中のストローク６２４Ａまたは６２４Ｂの一方を省略するための追加のヒンティングが行われる。
【００３１】
追加のヒンティングは、図７のビットマップ７００に示される。特に、特徴６２０の水平ストローク６２４Ａおよび６２４Ｂの一方が省略されて特徴７２０の一本の水平ストローク７２４となっていることに注意する。その結果、文字は、特に水平ストローク７１２，７２２，７２４，７２６，７３２の間の白地のために、可読性が高くなる。
【００３２】
ヒンティングインストラクションをサポートするフォント言語は、Ａｐｐｌｅ（登録商標）やＭｉｃｒｏｓｏｆｔ（登録商標）によって一般的に使用されるＴＲＵＥＴＹＰＥ（登録商標）をはじめとして各種ある。フォント言語は、スケーリングしやすくし、またヒンティングを行うために、文字アウトライン１００のような文字アウトラインを説明するのに使用される。しかしながら、前述のように、アジアのフォント、特に東アジアのフォント（つまり、日本語、簡体字および繁体字中国語、韓国語等）については、前述の、および図３に示される難しさを理由に、そのスケーリングされた文字アウトラインにおいてストロークを削除するためにヒンティングが使用されていない。むしろ、文字アウトラインは、１ｅｍあたりのピクセルがその文字を正確に表わすのに十分である場合に文字をレンダリングするために使用され、また、１ｅｍあたりのピクセルがその文字を正確に表わすのに足りないと、（ｉ）レンダリングされた文字は、図３に示される文字ビットマップ３００と同様に可読性が低くものとなるか、あるいは（ii）各文字について、ストロークが削除された複数のビットマップ（図５参照）がフォントそのものに埋め込まれ、その結果、フォント開発費が高く、フォントファイルが大きくなる。これに対し、上記のヒンティングを使用すると、複数のビットマップを使ったときと同じように高い可読性を持った結果が得られ、これによってストロークが削除されたビットマップを開発し、これをフォントファイルの中に埋め込む必要がなくなる。
【００３３】
たとえば、フォントの開発において、文字アウトラインが定義される。文字アウトラインは、ひとつまたは複数のストロークで構成されるひとつまたは複数の特徴を含む。特徴は、ひとつまたは複数のストロークの集まりに関する単なる独断的な特定であり、必ずしもその文字アウトライン上のそれ以上の構造を示唆するものとはかぎらないことを念頭に置くべきである。
【００３４】
ひとつまたは複数の基準文字サイズおよび出力解像度も定義される。基準文字サイズおよび出力解像度は、ストロークの削除を実施すべき文字サイズおよび出力解像度を示すものである。ストロークの削除が必要ない文字もあれば、特定の文字サイズおよび出力解像度について、または複数の文字サイズおよび出力解像度についてストロークの削除が必要な文字もある。前述のように、基準文字サイズおよび出力解像度は、目標とされるポイントサイズおよび出力解像度として、１ｅｍあたりのピクセルとして、あるいはその他の適当な測定単位で表現できる。
【００３５】
開発段階で、文字の実際の文字サイズおよび出力解像度の変数が、ひとつまたは複数の基準文字サイズおよび出力解像度と比較される。この変数は、ランタイムでの実際の文字サイズおよび出力解像度を受ける。
【００３６】
ストロークが削除されたひとつまたは複数のビットマップを使う場合と異なり、実際の文字サイズおよび出力解像度が基準文字サイズおよび出力解像度のひとつに当てはまる場合に実行されるべき、その文字に関するひとつまたは複数のヒンティングインストラクションが定義される。繰り返すが、そのひとつまたは複数のヒンティングインストラクションは、その文字の意味論上の意味を維持しながら、文字の可読性を改善するためにひとつまたは複数の文字の特徴のひとつまたは複数のストロークを減らす。実際の文字サイズおよび出力解像度が基準文字サイズおよび出力解像度のひとつに当てはまる場合、そのひとつまたは複数のヒンティングインストラクションは、ひとつのストロークを省略し、そのストロークの一部を省略し、ストロークを短縮し、等々を行う。そのストロークは、水平ストローク、垂直ストローク、斜めストロークを含め、どの文字ストロークでもよい。
【００３７】
フォント開発資源は、特定の特徴が複数の文字の中に存在し、ヒンティングを自動的に付加することが可能である点を認識することにより、さらに削減できる。前述のように、文字の特徴は、ひとつまたは複数の文字ストロークの独断的な集まりに過ぎない。「特徴」という言葉を使用する主な理由は、以下の意味論的文字分析の説明をしやすくしたいからである。言い換えれば、文字特徴は、意味論的文字分析以外では必ずしも重要とはかぎらないのである。
【００３８】
あるレベルにおいて、文字の特徴の間の視覚的な類似性に気づくことによって、いくつかの利点が明確になるかもしれないものの、文字の特徴を変化させることの意味論的な重要性を考えると、さらにその他の利点も明確になるかもしれない。つまり、ヒンティングは単に視覚的な認識に基づいても実行できるものの、ただ視覚的な類似性だけではなく、意味論的類似性にも基づいたヒンティングインストラクションを用いることにより、より可読性が増す。意味論的分析は、ある文字と別の文字とからの同様の特徴が同じ事柄を意味することを示唆するとはかぎらず、ストロークの削除や移動といった同様のヒンティングが、かなりの程度まで、文字の意味や可読性を変えることなく、異なる文字について実行できることを示している。明細書、図面、特許請求の範囲全体を通じて、「ストロークの削除」という言葉は、たとえば、ストローク全体の排除（省略）、ストロークの部分的排除（省略）、ストロークの水平および／または垂直方向への短縮等を含む広いものとして解釈すべきである。詳細は後述するように、ストロークの削除は、サイズと解像度が変わっても、文字の意味論上の意味と可読性の両方が維持されるようにするためのものである。
【００３９】
意味論的分析では、ひとつまたは複数の意味論上の文字分類を定義する。前述のように、これらの分類は、必ずしも、文字が同様の意味を有することを示しているとは限らず、可読性を改善するために、ひとつの意味論的分類の中の文字に共通する特徴について同様のヒンティングを実行できることを示している。見た目が似ている特徴であっても、まったく異なる意味論的重要性を持つことがあるかもしれない。たとえば、ある文字の特徴は、意味論的な重要性を持つ、もっと大きな文字特徴の一部であるため、意味論的には、まったく重要性を持たないかもしれない。ストロークを削除することによって、文字間の区別がつきにくくなることがないように注意が必要である。
【００４０】
ひとつの文字が複数の意味論上の文字分類に属するかもしれず、したがって、ひとつの文字について、複数の、おそらく独立したヒンティングインストラクションが実行されるかもしれない。ある実施形態において、文字は、ヒンティングを簡単にするために、ひとつの意味論的分類に限定される。別の実施形態において、複数の意味論的分類に属する文字は、ヒンティング言語の中に追加のチェックを組み込み、ひとつの種類のヒンティングが実行されたら、その文字が別の意味論的分類に属するようになっていることを確実にする。あるいは、意味論的分類そのものが、分類間およびこれに関連するヒンティング間の矛盾を特定し、一致するタイプのヒンティングだけを実行する、という構成にしてもよい。たとえば、矛盾は、ひとつまたは複数の意味論的分類にひとつまたは複数の別の意味論的分類を排除させることによって明確に特定され、あるいはひとつまたは複数の意味論的分類にひとつまたは複数の両立可能な意味論的分類を特定させることによって暗示されるようにすることができる。
【００４１】
上記の説明の大部分が、アジアのフォントを中心として行われたが、アジアのフォントは単に、そのストローク数のために上記の問題が発生しやすい文字を含むだけであると認識すべきである。ストローク数、ストロークを分離するのに必要な空白、ディスプレイデバイスの一般的解像度、読みやすさにとって最も有利なフォントサイズの理由から、アジアのフォントは特に問題が多い。しかしながら、同じ問題は、状況に応じてどの文字についても起こりうる。
【００４２】
上記の文字形状の問題が発生しそうな状況を判定するひとつの方法は、文字の複雑さを検討することである。ここで、複雑さとは、文字サイズと解像度の意味においての文字を指し、単に文字内のストローク数のことではない。したがって、ビットマップ２００はストローク数の多い文字に対応するが、その文字は、文字を表現するのに十分な数のピクセル、この場合は６０ピクセルグリッドがあるため、複雑ではない。しかしながら、図３に示すように、文字アウトライン１００が１２ピクセルグリッドにスケーリングされた場合は、文字を正確に表わすための十分なピクセルがないため、その文字は複雑となる。
【００４３】
実践的な意味において、１ｅｍあたりのピクセル数、特定のフォント、および出力解像度の間に相関関係がある。ヒンティングは、これらの要素の各々を考慮できるため、文字がこれらの要素に基づいて複雑であるとみなされるので、必要に応じてストロークの削減または移動を条件付きで実行することができる。したがって、アジアの文字を中心として説明したのは、例にすぎず、本発明の範囲を限定するものではない。
【００４４】
本発明はまた、機能的ステップまたは非機能的行為（act）からなる方法としても説明できる。以下に、本発明を実施する上で実行すべき行為とステップを説明する。通常、機能的ステップは、実現される結果という意味で発明を説明するが、非機能的行為は特定の結果を達成するためのより具体的な行為（action）を説明する。機能的ステップおよび非機能的行為は特定の順序で説明または請求されているが、本発明は必ずしも行為および／またはステップの特定の順序または組み合わせに限定されるとは限らない。
【００４５】
図８，９は、ひとつの文字または文字集合にヒンティングインストラクションを付加する方法のための行為とステップの例を示す。図８において、出力されるべき文字を受け取るステップ（８１０）は、出力されるべき文字を検索する行為（８１２）を含むかもしれない。たとえば、ある電子データに含まれる文字が、図８に関して説明する本発明の実施形態にしたがってひとつずつ検索され、処理される。前述のように、文字は、東アジアの言語のものとすることができる。
【００４６】
その文字に関するひとつまたは複数の意味論的文字分類を特定するステップ（８２０）は、その文字がひとつまたは複数の意味論的文字分類に属すると判定する行為（８２２）を含むかもしれない。そのひとつまたは複数の意味論的文字分類の各々に関係するひとつまたは複数のヒンティングインストラクションを特定するステップ（８３０）は、ひとつまたは複数のヒンティングインストラクションにアクセスする行為（８３２）を含むかもしれない。前述のように、ヒンティングインストラクションは、その文字の意味論上の意味を維持しながら、基準文字サイズおよび出力解像度に基づいて、少なくともひとつの文字特徴の少なくともひとつの文字ストロークについて、ストロークの存在または位置あるいはその両方を変更する。
【００４７】
その文字の実際の文字サイズおよび出力解像度が、ひとつまたは複数のヒンティングインストラクションのための基準文字サイズおよび出力解像度に含まれることを判定するステップ（８４０）は、実際の文字サイズおよび出力解像度を基準文字サイズおよび出力解像度と比較する行為（８４２）を含むかもしれない。たとえば、１ｅｍあたりのピクセル数、文字サイズ、出力解像度により、ヒンティングは必要ないかもしれない。特に、６００ＤＰＩのプリンタと１００ＰＰＩのディスプレイデバイスの違いを考える。グリッドフィッティングはどちらの場合も望ましいかもしれないものの、解像度が６倍であることを考え、印刷時にはストロークの削除は必要ないかもしれないが、ディスプレイデバイス上の文字の読みやすさは、ストロークの削減によって大きく改善されうる。
【００４８】
ひとつまたは複数のヒンティングインストラクションを使うことによってヒンティングが行われた文字アウトラインを生成するステップ（８５０）は、ひとつまたは複数のヒンティングインストラクションを実行する行為（８５２）を含むかもしれない。ヒンティングされた文字アウトラインからスケーリングされたビットマップを準備するステップ（８６０）は、ビットマップを作る行為（８６２）を含むかもしれない。ビットマップを出力するステップ（８７０）は、ディスプレイデバイスまたはプリンタ等の出力デバイスにビットマップを送る行為（８７２）を含むかもしれない。
【００４９】
一実施形態において、ひとつの文字は複数の意味論的文字分類に属するかもしれず、別の実施形態において、ひとつの文字はひとつの意味論的文字分類に限定されるかもしれない。ひとつの文字が複数の意味論的分類に属する場合、基準文字サイズおよび出力解像度の要求事項を満足するヒンティングインストラクションはまったくない、ひとつある、あるいは複数あるかもしれない。言い方を変えれば、ヒンティングインストラクションによって、それが実行されるための文字サイズおよび出力解像度の要件が異なるかもしれない。
【００５０】
図９において、ひとつまたは複数の意味論的文字分類を開発するステップ（９１０）は、ひとつまたは複数の意味論的文字分類を定義する行為（９１２）を含むかもしれない。ひとつまたは複数のヒンティングインストラクションを開発するステップ（９２０）は、ひとつまたは複数の意味論的文字分類のためのひとつまたは複数のヒンティングインストラクションを定義する行為（９２２）を含むかもしれない。ここでも、ひとつの文字が複数の意味論的文字分類に属する場合がある。
【００５１】
ひとつまたは複数のストロークによるひとつまたは複数の特徴を有する各々の文字からなる、出力されるべき文字集合を受け取るステップ（９３０）は、その文字集合を検索する行為（９３２）を含むかもしれない。たとえば、フォントに含まれる文字は、過去にヒンティングと意味的分析が行われなかった、または限定的にしか行われていなかった場合に、フォントにヒンティングと意味論的分析を加えるために、図９に関して説明した本発明の実施形態に従って検索、処理される。繰り返すが、文字集合は、東アジアの言語のフォントのひとつまたは複数の文字（あるいはすべての文字）とすることができる。
【００５２】
文字集合の中の各文字について（判定ブロック９４２）、その文字が属するひとつまたは複数の意味論的文字分類を特定するステップ（９５０）は、その文字がひとつまたは複数の意味論的文字分類に属するか否かを判定する行為（９５２）を含むかもしれない。そのひとつまたは複数の意味論的文字分類に関係するひとつまたは複数のヒンティングインストラクションを特定するステップ（９６０）は、文字がその意味論的文字分類に属する場合に、意味論的文字分類に関連するひとつまたは複数のヒンティングインストラクションにアクセスする行為（９６２）を含むかもしれない。
【００５３】
上記のように、ひとつまたは複数のヒンティングインストラクションは、文字の意味論上の意味を維持しながら、基準サイズおよび出力解像度に基づいて、その文字の少なくともひとつの特徴の少なくともひとつのストロークについて、ストロークの存在、位置またはその両方を変更する。その文字にひとつまたは複数のヒンティングインストラクションを関連付けるステップ（９７０）は、ひとつまたは複数のヒンティングインストラクションをその文字に付加する行為（９７２）を含むかもしれない。ひとつまたは複数のヒンティングインストラクションは、その文字のユニコードまたはその他の符号化システムによる数値に基づいて、その文字と関連付けられるかもしれない。
【００５４】
本発明の範囲に含まれる実施形態はまた、その上に記憶されたコンピュータ実行可能なインストラクションまたはデータ構造を有するコンピュータ読取可能媒体を含む。このようなコンピュータ読取可能媒体は、汎用または特定用途コンピュータによってアクセスすることが可能な、どのような入手可能な媒体であってもよい。たとえば、これに限られないが、このようなコンピュータ読取可能媒体には、ＲＡＭ，ＲＯＭ，ＥＥＰＲＯＭ，ＣＤ−ＲＯＭまたはその他の光ディスク記憶装置、磁気ディスク記憶装置またはその他の磁気記憶装置、あるいはその他、コンピュータ実行可能なインストラクションまたはデータ構造の形で好ましいプログラムコード手段を保持または記憶するのに使用でき、汎用または特定用途コンピュータによってアクセスすることのできる他の媒体がある。情報がネットワークまたはその他の通信接続（配線、無線または配線と無線の組み合わせによる）上でコンピュータに伝送または供給される際、コンピュータはその接続をコンピュータ可読媒体とみなす。したがって、このような接続は、コンピュータ可読媒体ということができる。上記を組み合わせたものも、コンピュータ可読媒体の範囲に含まれるべきである。コンピュータ実行可能インストラクションには、たとえば、汎用コンピュータ、特定用途コンピュータまたは特定用途処理デバイスに特定の機能または一連の機能を実行させるインストラクションやデータがある。
【００５５】
図１０と以下の説明は、本発明を実現することのできる、適当なコンピュータ環境を簡単に概説するためのものである。必要条件ではないが、本発明は、プログラムモジュール等、コンピュータ実行可能なインストラクションがネットワーク環境にあるコンピュータによって実行されているという一般的意味において説明される。一般に、プログラムモジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等、特定のタスクを実行し、あるいは特定の抽象的データタイプを実装するものを含む。コンピュータ実行可能インストラクション、関連するデータ構造、プログラムモジュールは、ここで説明する方法のステップを実行するためのプログラムコード手段の例を表わす。このような実行可能インストラクションまたは関連するデータ構造の特定のシーケンスは、このようなステップに記載された機能を実行するための相応の行為の例を表わす。
【００５６】
当業者であれば、本発明は、パーソナルコンピュータ、ハンドヘルドデバイス、携帯電話、マルチプロセッサシステム、マイクロプロセッサによる、またはプログラム可能な民生用電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ等を含むさまざまな種類のコンピュータシステムコンフィギュレーションを用いたネットワークコンピューティング環境で実現できると理解するであろう。本発明はまた、通信ネットワークを通じて（有線リンク、無線リンクまたは有線と無線リンクの組み合わせのいずれかで）リンクされるローカルまたはリモート処理デバイスによってタスクが実行される、分散型コンピューティング環境でも実現できる。分散型コンピューティング環境において、プログラムモジュールは、ローカルおよびリモートメモリ記憶装置の両方に設置できる。
【００５７】
図１０に関して、本発明を実現するシステム例は、処理ユニット１０２１、システムメモリ１０２２、そしてシステムメモリ１０２２を含む各種のシステムコンポーネントを処理ユニット１０２１に結合するシステムバス１０２３を備える従来のコンピュータ１０２０の形態の汎用コンピューティングデバイスを含む。しかしながら、携帯電話がより高度化されるにつれ、携帯電話も従来のコンピュータ１０２０について説明されるコンポーネントの多くを取り入れ始めていることに注目すべきである。したがって、ほとんど入力／出力デバイスに関して比較的小さな変更を加えることで、従来のコンピュータ１０２０の説明は携帯電話にも当てはめることができる。システムバス１０２３は、メモリバスまたはメモリコントローラ、ペリフェラルバスおよび、各種のバスアーキテクチャのいずれかを使ったローカルバスを含むさまざまなバスストラクチャのいずれでもよい。システムメモリは、リードオンリーメモリ（ＲＯＭ）１０２４、ランダムアクセスメモリ（ＲＡＭ）１０２５を含む。たとえば、起動時等に、コンピュータ１０２０内の素子間の情報伝達を助ける基本的ルーチンを含む基本出入力システム（ＢＩＯＳ）１０２６は、ＲＯＭ１０２４に記憶させることができる。
【００５８】
コンピュータ１０２０はまた、磁気ハードディスク１０３９の読み書きを行うための磁気ハードディスクドライブ１０２７、取り外し可能な磁気ディスク１０２９の読み書きを行う磁気ディスクドライブ１０２８、ＣＤ−ＲＯＭその他の光媒体等の取り外し可能な光ディスク１０３１の読み書きを行う光ディスクドライブ１０３０を備えていてもよい。磁気ハードディスクドライブ１０２７、磁気ディスクドライブ１０２８、光ディスクドライブ１０３０は、それぞれハードディスクドライブインタフェース１０３２、磁気ディスクドライブインタフェース１０３３、光ドライブインタフェース１０３４によってシステムバス１０２３に接続される。ドライブとこれに関連するコンピュータ可読媒体は、コンピュータ１０２０のためのコンピュータ実行可能インストラクション、データ構造、プログラムモジュールその他のデータの不揮発性記憶手段となる。ここで説明する環境の例では、磁気ハードディスク１０３９、取り外し可能磁気ディスク１０２９および取り外し可能光ディスク１０３１を使用しているが、磁気カセット、フラッシュメモリカード、デジタルバーサタイルディスク、ベルヌーイカートリッジ、ＲＡＭ、ＲＯＭ等を含む、その他の種類のデータ保存用コンピュータ可読媒体も使用できる。
【００５９】
ひとつまたは複数のプログラムモジュールからなるプログラムコード手段は、ハードディスク１０３９、磁気ディスク１０２９、光ディスク１０３１、ＲＯＭ１０２４またはＲＡＭ１０２６の上に記憶され、これにはたとえば、オペレーティングシステム１０３５、ひとつまたは複数のアプリケーションプログラム１０３６、その他のプログラムモジュール１０３７およびプログラムデータ１０３８が含まれる。ユーザは、キーボード１０４０、ポインティングデバイス１０４２または、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ等を含むその他の入力デバイス（図示せず）を通じてコマンドや情報をコンピュータ１０２０に入力することができる。これらおよびその他の入力デバイスはしばしば、システムバス１０２３に連結されたシリアルポートインタフェース１０４６を通じて処理ユニット１０２１に接続される。あるいは、入力デバイスは、パラレルポート、ゲームポートまたはユニバーサルシリアルバス（ＵＳＢ）等のインタフェースによって接続してもよい。モニタ１０４７またはその他のディスプレイデバイスも、ビデオアダプタ１０４８等のインタフェースを通じてシステムバス１０２３に接続される。モニタのほか、パーソナルコンピュータは通常、スピーカやプリンタといったその他の周辺出力デバイス（図示せず）も含む。
【００６０】
コンピュータ１０２０は、リモートコンピュータ１０４９ａ，１０４９ｂ等のひとつまたは複数のリモートコンピュータへの論理接続を使ったネットワーク環境の中で動作してもよい。リモートコンピュータ１０４９ａ，１０４９ｂは、それぞれ別のパーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイスまたはその他の一般的ネットワークノードであってよく、通常、コンピュータ１０２０に関して上述した要素の多くまたは全部を含むが、図１０については、メモリ記憶デバイス１０５０ａ，１０５０ｂとこれに関連するアプリケーションプログラム１０３６ａ，１０３６ｂについてのみ説明している。図１０の論理接続には、ローカルエリアネットワーク（ＬＡＮ）１０５１と広域ネットワーク（ＷＡＮ）１０５２が含まれ、これらは例として示されているにすぎず、限定するものではない。このようなネットワーク環境は、オフィス単位または企業単位のコンピュータネットワーク、イントラネット、インターネットにおいて一般的である。
【００６１】
ＬＡＮネットワーキング環境で使用した場合、コンピュータ１０２０はネットワークインタフェースまたはアダプタ１０５３を通じてローカルネットワーク１０５１に接続されている。ＷＡＮネットワーキング環境において使用した場合、コンピュータ１０２０はモデム１０５４、無線リンクその他、インターネット等の広域ネットワーク１０５２上の通信を確立する手段を含む。モデム１０５４は、内蔵か外付けかを問わず、シリアルポートインタフェース１０４６を介してシステムバス１０２３に接続される。ネットワーク環境において、コンピュータ１０２０に関連して描かれているプログラムモジュールまたはその一部は、リモートメモリ記憶デバイスに保存されていてもよい。図のネットワーク接続は一例であり、他の方法で広域ネットワーク１０５２上の通信を確立することもできると理解されるであろう。
【００６２】
本発明は、その精神と本質的特徴から逸脱することなく、他の具体的形態で実施してもよい。以上に説明した実施形態は、あらゆる面において、限定的ではない例示的なものとして解釈すべきである。したがって、本発明の範囲は、上記の説明ではなく、付属の特許請求範囲によって示される。特許請求範囲と同等のものの意味と範囲に含まれるすべての変更は、特許請求範囲によって包含される。
【図面の簡単な説明】
【００６３】
【図１】ある文字の文字アウトラインを示す図である。
【図２】図１に示す文字アウトラインの、６０ピクセルグリッドにスケーリングされたビットマップ表現を示す図である。
【図３】図１に示す文字アウトラインの、１２ピクセルグリッドにスケーリングされたビットマップ表現を示す図である。
【図４】図１に示す文字アウトラインを正確に表現するために必要な、垂直方向のピクセル数を示す図である。
【図５】図１に示す文字アウトラインについて、フォントデザイナにより作成されたストロークを減らしたビットマップを示す図である。
【図６】図１に示す文字アウトラインの、グリッドフィッティングのヒンティングが使用され、スケーリングされたビットマップを示す図である。
【図７】図１に示す文字アウトラインの、グリッドフィッティングとストローク削除の両方のヒンティングが使用され、スケーリングされたビットマップを示す図である。
【図８】ひとつの文字または文字集合にヒンティングインストラクションを付加するための方法の行動とステップの例を示す図である。
【図９】ひとつの文字または文字集合にヒンティングインストラクションを付加するための方法の行動とステップの例を示す図である。
【図１０】本発明に適したオペレーティング環境を提供するコンピュータシステムの一例を示す図である。
【符号の説明】
【００６４】
１００  文字アウトライン
２００，３００，４００，５００，６００，７００  ビットマップ
１１１，１１２，１２１，１２２，１２３，１２４，１２６，１３１，１３２，１３３，２１１，２１２，２２２，２２３，２２４，２２６，２３１，２３２，２３３，３１１，３１２，３２２，３２３，３２４，３２６，３３１，３３２，３３３，４１１，４１２，４２１，４２２，４２３，４２４，４２６，２３１，４３２，４３３，５１１，５１２，５２１，５２２，５２３，５２４，５２６，５３１，５３２，５３３，６１１，６１２，６２１，６２３，６２４，６３１，６３２，６３３  ストローク
１２０，２２０，３２０，４２０，５２０，６２０  特徴
【図１】
2006106729.tif 000003
【図２】
2006106729.tif 000004
【図３】
2006106729.tif 000005
【図４】
2006106729.tif 000006
【図５】
2006106729.tif 000007
【図６】
2006106729.tif 000008
【図７】
2006106729.tif 000009
【図８】
2006106729.tif 000010
【図９】
2006106729.tif 000011
【図１０】
2006106729.tif 000012
【外国語明細書】
2006106729000001.pdf