(57)【要約】【課題】アウトラインフォントを、描画品質をできるだけ維持しつつメモリの使用量を少なくして描画を行うフォント処理装置等を提供する。【解決手段】フォント処理装置２００において、入力受付部２０１はアウトラインフォントの識別符号と描画サイズの入力を受け付ける。識別符号と描画サイズに対応するビットマップデータがキャッシュ部２０４にキャッシュされている場合、出力部２０６はキャッシュされているビットマップデータを出力する。キャッシュされていない場合、ビットマップ生成部２０３はフォントデータをフォント記憶部２０２から取得し、描画サイズに対応づけられた色数でアンチエイリアス処理を行ってビットマップデータを生成し、更新部２０５は生成されたビットマップデータをキャッシュ部２０４にキャッシュし、出力部２０６は更新部２０５によりキャッシュされたビットマップデータを出力する。【選択図】図２
2007121874.tif 000002
【特許請求の範囲】
【請求項１】
アウトラインフォントのデータを、識別符号に対応付けて記憶するフォント記憶部、
ビットマップフォントのデータを、識別符号および描画サイズに対応付けてキャッシュするキャッシュ部、
フォント記憶部に記憶されるデータに対応付けられるいずれかの識別符号と、描画サイズと、の入力を受け付ける入力受付部、
前記入力を受け付けられた識別符号および描画サイズに対応付けられるビットマップフォントのデータが前記キャッシュ部にキャッシュされていない場合、当該識別符号に対応付けられて前記フォント記憶部に記憶されるアウトラインフォントのデータを、当該描画サイズに対応付けられる色数でアンチエイリアスしたビットマップフォントのデータを生成するビットマップ生成部、
前記生成されたビットマップフォントのデータを当該識別符号および当該描画サイズに対応付けて前記キャッシュ部にキャッシュさせる更新部、
当該識別符号および当該描画サイズに対応付けて前記キャッシュ部にキャッシュされたビットマップフォントのデータを出力する出力部
を備えることを特徴とするフォント処理装置。
【請求項２】
アウトラインフォントのデータを、識別符号に対応付けて記憶するフォント記憶部、
ビットマップフォントのデータを、識別符号および描画サイズに対応付けてキャッシュするキャッシュ部、
フォント記憶部に記憶されるデータに対応付けられるいずれかの識別符号と、描画サイズと、の入力を受け付ける入力受付部、
前記入力を受け付けられた識別符号および描画サイズに対応付けられるビットマップフォントのデータが前記キャッシュ部にキャッシュされていない場合、当該識別符号に対応付けられて前記フォント記憶部に記憶されるアウトラインフォントのデータを、当該描画サイズに対応付けられる色数でアンチエイリアスしたビットマップフォントのデータを生成するビットマップ生成部、
前記入力を受け付けられた識別符号および描画サイズに対応付けられるビットマップフォントのデータが前記キャッシュ部にキャッシュされている場合、当該ビットマップフォントのデータを出力し、そうでない場合、前記生成されたビットマップフォントのデータを出力する出力部、
前記生成されたビットマップフォントのデータを当該識別符号および当該描画サイズに対応付けて前記キャッシュ部にキャッシュさせる更新部、
を備えることを特徴とするフォント処理装置。
【請求項３】
前記ビットマップ生成部は、前記描画サイズの大きさに対応して単調減少する色数でアンチエイリアスすること
を特徴とする、請求項１又は２に記載のフォント処理装置。
【請求項４】
前記描画サイズと前記色数とを対応付けるデータを記憶する色数記憶部を更に備え、
前記ビットマップ生成部は、前記出力部が出力するデータの品質を示すパラメータを取得し、当該パラメータに基づいて前記描画サイズに対応する前記色数を求めて前記色数記憶部に記憶させ、前記色数記憶部に記憶されたデータに基づいて、前記入力受付部により受け付けられた描画サイズに対応する色数でアンチエイリアスしたビットマップフォントのデータを生成すること
を特徴とする、請求項１又は２に記載のフォント処理装置。
【請求項５】
前記識別符号と、前記描画サイズと、前記識別符号及び前記描画サイズに対応するビットマップフォントのデータの予め得られた使用頻度を示すデータと、を対応付けて記憶する頻度情報記憶部を更に備え、
前記キャッシュ部は、前記頻度情報記憶部に記憶された情報に基づいて、使用頻度が大きいことを示すデータが対応付けられたデータを優先して、前記識別符号及び前記描画サイズに対応するビットマップフォントのデータをキャッシュすること
を特徴とする、請求項１又は２に記載のフォント処理装置。
【請求項６】
前記ビットマップ生成部により生成されたビットマップフォントのデータが、前記キャッシュ部によりキャッシュされた第１のタイミング、又は、前記出力部により出力された第２のタイミングを示す情報を記憶するＬＲＵ情報記憶部を更に備え、
前記更新部は、前記ビットマップ生成部により生成されたビットマップフォントのデータを前記キャッシュ部にキャッシュした第１のタイミングを示す情報を、前記識別符号に対応付けて前記ＬＲＵ情報記憶部に記憶させ、
前記出力部は、前記キャッシュ部にキャッシュされたビットマップフォントのデータを出力した第２のタイミングを示す情報を、前記識別符号に対応付けて前記ＬＲＵ情報記憶部に記憶させ、  前記更新部は、前記ＬＲＵ情報記憶部に記憶された情報に基づいて、前記キャッシュ部にキャッシュされたデータを消去すること
を特徴とする、請求項１又は２に記載のフォント処理装置。
【請求項７】
前記更新部は、前記ＬＲＵ情報記憶部に記憶された情報に基づいて、前記キャッシュ部にキャッシュされたデータ容量が所定値以上の場合に、前記第１又は第２のタイミングが時系列的に最も古い前記識別符号に対応するデータを消去すること
を特徴とする、請求項６に記載のフォント処理装置。
【請求項８】
前記更新部は、前記ＬＲＵ情報記憶部に記憶された情報に基づいて、前記キャッシュ部にデータがキャッシュされてから所定時間以上が経過した場合に、又は、前記キャッシュ部にキャッシュされたデータが出力されてから所定時間以上が経過した場合に、前記第１又は第２のタイミングが時系列的に最も古い前記識別符号に対応するデータを消去すること
を特徴とする、請求項６に記載のフォント処理装置。
【請求項９】
アウトラインフォントのデータが、識別符号に対応付けて記憶されるフォント記憶部を用いるフォント処理方法であって、
ビットマップフォントのデータを、識別符号および描画サイズに対応付けてキャッシュするキャッシュステップ、
フォント記憶ステップに記憶されるデータに対応付けられるいずれかの識別符号と、描画サイズと、の入力を受け付ける入力受付ステップ、
前記入力を受け付けられた識別符号および描画サイズに対応付けられるビットマップフォントのデータが前記キャッシュステップによりキャッシュされていない場合、当該識別符号に対応付けられて前記フォント記憶ステップにより記憶されるアウトラインフォントのデータを、当該描画サイズに対応付けられる色数でアンチエイリアスしたビットマップフォントのデータを生成するビットマップ生成ステップ、
前記生成されたビットマップフォントのデータを当該識別符号および当該描画サイズに対応付けて前記キャッシュステップにキャッシュさせる更新ステップ、
当該識別符号および当該描画サイズに対応付けて前記キャッシュステップによりキャッシュされたビットマップフォントのデータを出力する出力ステップ
を備えることを特徴とするフォント処理方法。
【請求項１０】
アウトラインフォントのデータが、識別符号に対応付けて記憶されるフォント記憶部を用いるフォント処理方法であって、
ビットマップフォントのデータを、識別符号および描画サイズに対応付けてキャッシュするキャッシュステップ、
フォント記憶ステップにより記憶されるデータに対応付けられるいずれかの識別符号と、描画サイズと、の入力を受け付ける入力受付ステップ、
前記入力を受け付けられた識別符号および描画サイズに対応付けられるビットマップフォントのデータが前記キャッシュステップによりキャッシュされていない場合、当該識別符号に対応付けられて前記フォント記憶ステップにより記憶されるアウトラインフォントのデータを、当該描画サイズに対応付けられる色数でアンチエイリアスしたビットマップフォントのデータを生成するビットマップ生成ステップ、
前記入力を受け付けられた識別符号および描画サイズに対応付けられるビットマップフォントのデータが前記キャッシュステップによりキャッシュされている場合、当該ビットマップフォントのデータを出力し、そうでない場合、前記生成されたビットマップフォントのデータを出力する出力ステップ、
前記生成されたビットマップフォントのデータを当該識別符号および当該描画サイズに対応付けて前記キャッシュステップにキャッシュさせる更新ステップ、
を備えることを特徴とするフォント処理方法。
【請求項１１】
コンピュータを、
アウトラインフォントのデータを、識別符号に対応付けて記憶するフォント記憶部、
ビットマップフォントのデータを、識別符号および描画サイズに対応付けてキャッシュするキャッシュ部、
フォント記憶部に記憶されるデータに対応付けられるいずれかの識別符号と、描画サイズと、の入力を受け付ける入力受付部、
前記入力を受け付けられた識別符号および描画サイズに対応付けられるビットマップフォントのデータが前記キャッシュ部にキャッシュされていない場合、当該識別符号に対応付けられて前記フォント記憶部に記憶されるアウトラインフォントのデータを、当該描画サイズに対応付けられる色数でアンチエイリアスしたビットマップフォントのデータを生成するビットマップ生成部、
前記生成されたビットマップフォントのデータを当該識別符号および当該描画サイズに対応付けて前記キャッシュ部にキャッシュさせる更新部、
当該識別符号および当該描画サイズに対応付けて前記キャッシュ部にキャッシュされたビットマップフォントのデータを出力する出力部
として機能させることを特徴とするプログラム。
【請求項１２】
コンピュータを、
アウトラインフォントのデータを、識別符号に対応付けて記憶するフォント記憶部、
ビットマップフォントのデータを、識別符号および描画サイズに対応付けてキャッシュするキャッシュ部、
フォント記憶部に記憶されるデータに対応付けられるいずれかの識別符号と、描画サイズと、の入力を受け付ける入力受付部、
前記入力を受け付けられた識別符号および描画サイズに対応付けられるビットマップフォントのデータが前記キャッシュ部にキャッシュされていない場合、当該識別符号に対応付けられて前記フォント記憶部に記憶されるアウトラインフォントのデータを、当該描画サイズに対応付けられる色数でアンチエイリアスしたビットマップフォントのデータを生成するビットマップ生成部、
前記入力を受け付けられた識別符号および描画サイズに対応付けられるビットマップフォントのデータが前記キャッシュ部にキャッシュされている場合、当該ビットマップフォントのデータを出力し、そうでない場合、前記生成されたビットマップフォントのデータを出力する出力部、
前記生成されたビットマップフォントのデータを当該識別符号および当該描画サイズに対応付けて前記キャッシュ部にキャッシュさせる更新部、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アウトラインフォントを、描画品質をできるだけ維持しつつメモリの使用量を少なくして描画を行うのに好適なフォント処理装置、フォント処理方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【０００２】
従来から、コンピュータやゲーム装置の画面にさまざまなサイズで文字を表示するために、アウトラインフォントを使用する技術が提案されている。これに関連する技術は、以下の文献に開示されている。
【特許文献１】特許第３４２４８２２号公報
【０００３】
特許文献１においては、ゲーム空間におけるゲームのキャラクターの位置関係に基づいて、メッセージを表示するフォントサイズを変更する技術が開示されている。
【０００４】
ここで、現実最も広く使用されている表示装置は、複数のピクセルのそれぞれについて種々の色を割り当てることによって、文字や絵の表示を行う。したがって、アウトラインフォントを画面に表示する際には、これをビットマップ形式に変換することが不可欠となる。この際には、文字と背景の境界部分を美しく見せるために、アンチエイリアス処理が行われることが多い。
【０００５】
また、コンピュータ技術の分野では、過去に使用された情報をキャッシュして、処理の高速化を図ることも広く行われている。たとえば、アウトラインフォントを所望のサイズのビットマップ形式に変換した後、当該ビットマップ形式に対してキャッシュを使用して、同じフォントを同じサイズで表示する場合には、キャッシュに記憶されているビットマップ形式を再利用することにより、画面表示を処理の高速化するものである。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、アウトラインフォントをビットマップ形式に変換する場合、フォントの描画サイズが大きいとビットマップ形式を記憶するためのメモリの消費量も増えてしまい、キャッシュの利用効率が悪くなってしまう、との問題が生ずる。
【０００７】
したがって、アウトラインフォントによる品質の高い文字描画をできるだけ維持しつつ、消費メモリ量をできるだけ減らして、両者の条件をできるだけバランス良く満たすこととし、処理の高速化もできるだけ行いたい、という要望は大きい。
【０００８】
本発明は、このような課題を解決するものであり、アウトラインフォントを、描画品質をできるだけ維持しつつメモリの使用量を少なくして描画を行うのに好適なフォント処理装置、フォント処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【００１０】
本発明の第１の観点に係るフォント処理装置は、フォント記憶部、キャッシュ部、入力受付部、ビットマップ生成部、更新部、および、出力部を備え、以下のように構成する。
【００１１】
まず、フォント記憶部は、アウトラインフォントのデータを、識別符号に対応付けて記憶する。また、キャッシュ部は、ビットマップフォントのデータを、識別符号および描画サイズに対応付けてキャッシュする。そして、入力受付部は、フォント記憶部に記憶されるデータに対応付けられるいずれかの識別符号と、描画サイズと、の入力を受け付ける。
【００１２】
ビットマップ生成部は、入力を受け付けられた識別符号および描画サイズに対応付けられるビットマップフォントのデータがキャッシュ部にキャッシュされていない場合、識別符号に対応付けられてフォント記憶部に記憶されるアウトラインフォントのデータを、描画サイズに対応付けられる色数でアンチエイリアスしたビットマップフォントのデータを生成する。また、更新部は、生成されたビットマップフォントのデータを識別符号および描画サイズに対応付けてキャッシュ部にキャッシュさせる。そして、出力部は、識別符号および当該描画サイズに対応付けて前記キャッシュ部にキャッシュされたビットマップフォントのデータを出力する。
【００１３】
このように、識別符号および描画サイズに対応付けられたアウトラインフォントのデータがキャッシュされていない場合、描画サイズに対応付けられる色数でアンチエイリアスされて識別符号および描画サイズに対応付けられたビットマップフォントのデータが生成されキャッシュされる。そして、識別符号および描画サイズに対応付けられてキャッシュされたビットマップフォントのデータが出力される。
この結果、アウトラインフォントの描画品質をできるだけ維持しつつ、メモリの使用量を少なくして描画を行うことができる。
【００１４】
本発明のその他の観点に係るフォント処理装置は、フォント記憶部、キャッシュ部、入力受付部、ビットマップ生成部、更新部、および、出力部を備え、以下のように構成する。
【００１５】
まず、フォント記憶部は、アウトラインフォントのデータを、識別符号に対応付けて記憶する。また、キャッシュ部は、ビットマップフォントのデータを、識別符号および描画サイズに対応付けてキャッシュする。そして、入力受付部は、フォント記憶部に記憶されるデータに対応付けられるいずれかの識別符号と、描画サイズと、の入力を受け付ける。
【００１６】
ビットマップ生成部は、入力を受け付けられた識別符号および描画サイズに対応付けられるビットマップフォントのデータがキャッシュ部にキャッシュされていない場合、識別符号に対応付けられてフォント記憶部に記憶されるアウトラインフォントのデータを、描画サイズに対応付けられる色数でアンチエイリアスしたビットマップフォントのデータを生成する。また、出力部は、入力を受け付けられた識別符号および描画サイズに対応付けられるビットマップフォントのデータがキャッシュ部にキャッシュされている場合、このビットマップフォントのデータを出力し、そうでない場合、生成されたビットマップフォントのデータを出力する。そして、更新部は、生成されたビットマップフォントのデータを識別符号および描画サイズに対応付けてキャッシュ部にキャッシュさせる。
【００１７】
このように、識別符号および描画サイズに対応付けられたアウトラインフォントのデータがキャッシュされていない場合、描画サイズに対応付けられる色数でアンチエイリアスされて、識別符号および描画サイズに対応付けられたビットマップフォントのデータが生成されキャッシュされる。そして、生成されたビットマップフォントのデータが出力される。一方、識別符号および描画サイズに対応付けられたアウトラインフォントのデータがキャッシュされている場合、キャッシュされたビットマップフォントのデータが出力される。
この結果、アウトラインフォントの描画品質をできるだけ維持しつつ、メモリの使用量を少なくして描画を行うことができる。
【００１８】
ビットマップ生成部は、前記描画サイズの大きさに対応して単調減少する色数でアンチエイリアスしてもよい。
この結果、描画サイズが異なれば、同じアウトラインフォントのデータであっても、異なる色数でアンチエイリアス処理を行うことができる。例えば、描画サイズが大きい場合にアンチエイリアスの色数を少なくすることにより、メモリ使用量を抑えることができる。
【００１９】
上記フォント処理装置において、描画サイズと色数とを対応付けるデータを記憶する色数記憶部を更に備え、ビットマップ生成部は、出力部が出力するデータの品質を示すパラメータを取得し、当該パラメータに基づいて描画サイズに対応する色数を求めて色数記憶部に記憶させ、色数記憶部に記憶されたデータに基づいて、入力受付部により受け付けられた描画サイズに対応する色数でアンチエイリアスしたビットマップフォントのデータを生成してもよい。
この場合、受け付けた描画サイズに対応付けられた色数でアンチエイリアスしたビットマップフォントのデータが出力される。この結果、例えば、ユーザが所望の解像度に適するように設定された色数でアンチエイリアスを行うことにより、アウトラインフォントの描画品質を維持することができる。
【００２０】
上記フォント処理装置において、識別符号と、描画サイズと、識別符号及び描画サイズに対応するビットマップフォントのデータの予め得られた使用頻度を示すデータと、を対応付けて記憶する頻度情報記憶部を更に備え、キャッシュ部は、頻度情報記憶部に記憶された情報に基づいて、使用頻度が大きいことを示すデータが対応付けられたデータを優先して、識別符号及び前記描画サイズに対応するビットマップフォントのデータをキャッシュしてもよい。
この結果、アウトラインフォントのデータを出力する場面ごと（例えば、麻雀ゲーム、スポーツアクションゲーム等のシーンごと）に適するように予め設定された優先順位でデータをキャッシュし、場面ごとに適したキャッシュを行うことができる。
【００２１】
上記フォント処理装置において、ビットマップ生成部により生成されたビットマップフォントのデータが、キャッシュ部によりキャッシュされた第１のタイミング、又は、出力部により出力された第２のタイミングを示す情報を記憶するＬＲＵ情報記憶部を更に備え、更新部は、ビットマップ生成部により生成されたビットマップフォントのデータをキャッシュ部にキャッシュした第１のタイミングを示す情報を、識別符号に対応付けてＬＲＵ情報記憶部に記憶させ、出力部は、キャッシュ部にキャッシュされたビットマップフォントのデータを出力した第２のタイミングを示す情報を、識別符号に対応付けてＬＲＵ情報記憶部に記憶させてもよい。そして、更新部は、ＬＲＵ情報記憶部に記憶された情報に基づいて、キャッシュ部にキャッシュされたデータを消去してもよい。
この場合、生成されたビットマップフォントのデータをキャッシュ部にキャッシュした第１のタイミングが示す順（例えば、キャッシュされた時刻順）を記憶することができる。また、キャッシュ部にキャッシュされたビットマップフォントのデータを出力した第２のタイミングが示す順（例えば、出力された時刻順）を記憶することができる。この結果、例えば、キャッシュされたタイミングが最も古いデータや、出力されたタイミングが最も古いデータを削除して確保されたキャッシュ領域に新しく別のデータをキャッシュすることにより、キャッシュ効率を向上させることができる。
【００２２】
更新部は、ＬＲＵ情報記憶部に記憶された情報に基づいて、キャッシュ部にキャッシュされたデータ容量が所定値以上の場合に、第１又は第２のタイミングが時系列的に最も古い識別符号に対応するデータを消去してもよい。
この結果、キャッシュされたデータ容量が所定値以上に達すると、キャッシュされたタイミングが最も古いデータや、出力されたタイミングが最も古いデータを削除して、新しく別のデータをキャッシュできる領域を予め確保することができる。
【００２３】
更新部は、ＬＲＵ情報記憶部に記憶された情報に基づいて、キャッシュ部にデータがキャッシュされてから所定時間以上が経過した場合に、第１又は第２のタイミングが時系列的に最も古い識別符号に対応するデータを消去してもよい。
この結果、キャッシュされたデータが出力されてから所定時間以上経過すると、キャッシュされたタイミングが最も古いデータや、出力されたタイミングが最も古いデータを削除して、新しく別のデータをキャッシュできる領域を予め確保することができる。
【００２４】
本発明のその他の観点に係るフォント処理方法は、フォント記憶部を用いるフォント処理方法であって、キャッシュステップ、入力受付ステップ、ビットマップ生成ステップ、更新ステップ、および、出力ステップを備え、以下のように構成する。
【００２５】
フォント記憶部では、アウトラインフォントのデータが、識別符号に対応付けて記憶される。
キャッシュステップでは、ビットマップフォントのデータを、識別符号および描画サイズに対応付けてキャッシュする。そして、入力受付ステップでは、フォント記憶ステップにより記憶されるデータに対応付けられるいずれかの識別符号と、描画サイズと、の入力を受け付ける。
【００２６】
ビットマップ生成ステップでは、入力を受け付けられた識別符号および描画サイズに対応付けられるビットマップフォントのデータがキャッシュステップによりキャッシュされていない場合、識別符号に対応付けられてフォント記憶ステップにより記憶されるアウトラインフォントのデータを、描画サイズに対応付けられる色数でアンチエイリアスしたビットマップフォントのデータを生成する。また、更新ステップでは、生成されたビットマップフォントのデータを識別符号および描画サイズに対応付けてキャッシュステップにキャッシュさせる。そして、出力ステップでは、識別符号および描画サイズに対応付けてキャッシュステップによりキャッシュされたビットマップフォントのデータを出力する
【００２７】
このように、識別符号および描画サイズに対応付けられたアウトラインフォントのデータがキャッシュされていない場合、描画サイズに対応付けられる色数でアンチエイリアスされて、識別符号および描画サイズに対応付けられたビットマップフォントのデータが生成されキャッシュされる。そして、キャッシュされたビットマップフォントのデータが出力される。
この結果、アウトラインフォントの描画品質をできるだけ維持しつつ、メモリの使用量を少なくして描画を行うことができる。
【００２８】
本発明のその他の観点に係るフォント処理方法は、フォント記憶部を用いるフォント処理方法であって、キャッシュステップ、入力受付ステップ、ビットマップ生成ステップ、更新ステップ、および、出力ステップを備え、以下のように構成する。
【００２９】
フォント記憶部では、アウトラインフォントのデータが、識別符号に対応付けて記憶される。
キャッシュステップでは、ビットマップフォントのデータを、識別符号および描画サイズに対応付けてキャッシュする。そして、入力受付ステップでは、フォント記憶ステップにより記憶されるデータに対応付けられるいずれかの識別符号と、描画サイズと、の入力を受け付ける。
【００３０】
ビットマップ生成ステップでは、入力を受け付けられた識別符号および描画サイズに対応付けられるビットマップフォントのデータがキャッシュステップによりキャッシュされていない場合、識別符号に対応付けられてフォント記憶ステップにより記憶されるアウトラインフォントのデータを、描画サイズに対応付けられる色数でアンチエイリアスしたビットマップフォントのデータを生成する。また、出力ステップでは、入力を受け付けられた識別符号および描画サイズに対応付けられるビットマップフォントのデータがキャッシュステップによりキャッシュされている場合、キャッシュされたビットマップフォントのデータを出力し、そうでない場合、生成されたビットマップフォントのデータを出力する。そして、更新ステップでは、生成されたビットマップフォントのデータを識別符号および描画サイズに対応付けてキャッシュステップにキャッシュさせる。
【００３１】
このように、識別符号および描画サイズに対応付けられたアウトラインフォントのデータがキャッシュされていない場合、描画サイズに対応付けられる色数でアンチエイリアスされて、識別符号および描画サイズに対応付けられたビットマップフォントのデータが生成されキャッシュされる。そして、生成されたビットマップフォントのデータが出力される。一方、識別符号および描画サイズに対応付けられたアウトラインフォントのデータがキャッシュされている場合、キャッシュされたビットマップフォントのデータが出力される。
この結果、アウトラインフォントの描画品質をできるだけ維持しつつ、メモリの使用量を少なくして描画を行うことができる。
【００３２】
本発明のその他の観点に係るプログラムは、コンピュータを上記のフォント処理装置として機能させ、コンピュータに上記のフォント処理方法を実行させるように構成する。
【００３３】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【００３４】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００３５】
本発明によれば、アウトラインフォントを、描画品質をできるだけ維持しつつメモリの使用量を少なくして描画を行うのに好適なフォント処理装置、フォント処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【発明を実施するための最良の形態】
【００３６】
以下に本発明の実施例を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施例を説明するが、以下に説明する実施例は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例１】
【００３７】
図１は、プログラムを実行することにより、本発明のフォント処理装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００３８】
情報処理装置１００は、ＣＰＵ（Central Processing Unit）１０１と、ＲＯＭ（Read Only Memory）１０２と、ＲＡＭ（Random Access Memory）１０３と、インターフェイス１０４と、コントローラ１０５と、外部メモリ１０６と、画像処理部１０７と、ＤＶＤ−ＲＯＭ（Digital Versatile Disc ROM）ドライブ１０８と、ＮＩＣ（Network Interface Card）１０９と、音声処理部１１０と、を備える。
【００３９】
ゲーム用のプログラムおよびデータを記憶したＤＶＤ−ＲＯＭをＤＶＤ−ＲＯＭドライブ１０８に装着して、情報処理装置１００の電源を投入することにより、当該プログラムが実行され、本実施例のフォント処理装置が実現される。
【００４０】
ＣＰＵ  １０１は、情報処理装置１００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、ＣＰＵ  １０１は、レジスタ（図示せず）という高速アクセスが可能な記憶域に対してＡＬＵ（Arithmetic Logic Unit）（図示せず）を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、ＣＰＵ  １０１自身が構成されているものや、コプロセッサを備えて実現するものがある。
【００４１】
ＲＯＭ  １０２には、電源投入直後に実行されるＩＰＬ（Initial Program Loader）が記録され、これが実行されることにより、ＤＶＤ−ＲＯＭに記録されたプログラムをＲＡＭ  １０３に読み出してＣＰＵ  １０１による実行が開始される。また、ＲＯＭ  １０２には、情報処理装置１００全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【００４２】
ＲＡＭ  １０３は、データやプログラムを一時的に記憶するためのもので、ＤＶＤ−ＲＯＭから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、ＣＰＵ  １０１は、ＲＡＭ  １０３に変数領域を設け、当該変数に格納された値に対して直接ＡＬＵを作用させて演算を行ったり、ＲＡＭ  １０３に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【００４３】
インターフェイス１０４を介して接続されたコントローラ１０５は、ユーザが麻雀ゲームやトランプゲームなどのゲーム実行の際に行う操作入力を受け付ける。
【００４４】
インターフェイス１０４を介して着脱自在に接続された外部メモリ１０６には、麻雀ゲーム等のプレイ状況（過去の成績等）を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ（記録）のデータなどが書き換え可能に記憶される。ユーザは、コントローラ１０５を介して指示入力を行うことにより、これらのデータを適宜外部メモリ１０６に記録することができる。
【００４５】
ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。ＣＰＵ  １０１の制御によって、ＤＶＤ−ＲＯＭドライブ１０８は、これに装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはＲＡＭ  １０３等に一時的に記憶される。
【００４６】
画像処理部１０７は、ＤＶＤ−ＲＯＭから読み出されたデータをＣＰＵ  １０１や画像処理部１０７が備える画像演算プロセッサ（図示せず）によって加工処理した後、これを画像処理部１０７が備えるフレームメモリ（図示せず）に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部１０７に接続されるモニタ（図示せず）へ出力される。これにより、各種の画像表示が可能となる。
【００４７】
画像演算プロセッサは、２次元の画像の重ね合わせ演算やアルファブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【００４８】
また、仮想３次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Ｚバッファ法によりレンダリングして、所定の視点位置から仮想３次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【００４９】
さらに、ＣＰＵ  １０１と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を２次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【００５０】
また、麻雀ゲームの牌の画像やトランプゲームのカードの画像などの情報をＤＶＤ−ＲＯＭに用意しておき、これをフレームメモリに展開することによって、現在の手牌や手札を画面に表示することができるようになる。
【００５１】
例えば、画像処理部１０７は、アウトラインフォントの識別符号と描画サイズとを入力して、対応するビットマップデータを出力する処理（以下、「フォント処理」と呼ぶ）を行う。詳細については、後述する。
【００５２】
ＮＩＣ  １０９は、情報処理装置１００をインターネット等のコンピュータ通信網（図示せず）に接続するためのものであり、ＬＡＮ（Local Area Network）を構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Integrated Services Digital Network）モデム、ＡＤＳＬ（Asymmetric Digital Subscriber Line）モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとＣＰＵ  １０１との仲立ちを行うインターフェース（図示せず）により構成される。
【００５３】
音声処理部１１０は、ＤＶＤ−ＲＯＭから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ（図示せず）から出力させる。また、ＣＰＵ  １０１の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【００５４】
音声処理部１１０では、ＤＶＤ−ＲＯＭに記録された音声データがＭＩＤＩデータである場合には、これが有する音源データを参照して、ＭＩＤＩデータをＰＣＭデータに変換する。また、ＡＤＰＣＭ形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してＰＣＭデータに変換する。ＰＣＭデータは、そのサンプリング周波数に応じたタイミングでＤ／Ａ（Digital/Analog）変換を行って、スピーカに出力することにより、音声出力が可能となる。
【００５５】
このほか、情報処理装置１００は、ハードディスク等の大容量外部記憶装置を用いて、ＲＯＭ  １０２、ＲＡＭ  １０３、外部メモリ１０６、ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすように構成してもよい。
【００５６】
図２は、本実施例に係るフォント処理装置２００の概要構成を示す模式図である。以下、本図を参照して説明する。
【００５７】
フォント処理装置２００は、入力受付部２０１と、フォント記憶部２０２と、ビットマップ生成部２０３と、キャッシュ部２０４と、更新部２０５と、出力部２０６とを備える。
【００５８】
入力受付部２０１は、アウトラインフォントの識別符号と描画サイズとを含む情報の入力を受け付ける。そして、入力受付部２０１は、受け付けた識別符号と描画サイズとをビットマップ生成部２０３に入力する。識別符号としては、例えばフォントに対応づけられた文字コードが用いられる。
なお、ＣＰＵ  １０１が画像処理部１０７と共働して動作することによって、入力受付部２０１として機能しうる。
【００５９】
フォント記憶部２０２は、アウトラインフォントのデータを、識別符号に対応づけて記憶する。フォント記憶部２０２に記憶されるアウトラインフォントのデータは、文字の形状を、基準点の座標と輪郭線との集まりとして表現される形式のデータである。
なお、ＣＰＵ  １０１がＤＶＤ−ＲＯＭドライブ１０８に装着されたＤＶＤ−ＲＯＭや外部メモリ１０６等と共働して動作することによって、フォント記憶部２０２として機能しうる。
【００６０】
ビットマップ生成部２０３は、入力受付部２０１から入力された識別符号と描画サイズとに基づいて、予め描画サイズに対応づけられた色数でアンチエイリアス処理を施したアウトラインフォントのビットマップデータを生成する。そして、ビットマップ生成部２０３は、アンチエイリアス処理を施した後のビットマップデータを、更新部２０５に入力する。
なお、画像処理部１０７がＣＰＵ  １０１と共働して動作することによって、ビットマップ生成部２０３として機能しうる。
【００６１】
ここで、色数は、アンチエイリアス処理を行う段階数である。例えば、出力するビットマップデータが白黒データである場合、ビットマップデータの１ピクセルは、白と黒とを合わせた２５６段階で設定される、１バイトのデータである。また、例えば、出力するビットマップデータがＲ（レッド）・Ｇ（グリーン）・Ｂ（ブルー）で表現されるカラーデータである場合、ビットマップデータの１ピクセルは、Ｒ・Ｇ・Ｂの各色が２５６段階で設定される、３バイトのデータである。
【００６２】
詳細には、まず、ビットマップ生成部２０３は、入力された識別符号に対応するアウトラインフォントのデータを、フォント記憶部２０２から取得する。次に、ビットマップ生成部２０３は、入力された描画サイズに予め対応づけられた色数で、フォント記憶部２０２から取得したアウトラインフォントのデータのアンチエイリアス処理を行う。アンチエイリアスとは、文字の輪郭（例えば、黒色）と背景（例えば、白色）との境界部分の色を滑らかに変化させてぼやかすことによって、輪郭のギザギザ（ジャギー）を軽減させる手法である。
【００６３】
例えば、図３（Ａ）はアンチエイリアス処理を施していない場合の例を示す図であり、図３（Ｂ）はアンチエイリアス処理を施した場合の例を示す図である。この例では、白色の背景に、黒色の文字データ「Ｉ」を出力させ、背景と文字の輪郭との境界部分を白色と黒色の中間色であるグレー（図面上は斜線で表示）を用いてアンチエイリアス処理を施している。この場合、ビットマップデータを構成する１ピクセルには、白色、黒色又はグレーの３色のいずれかが対応づけられる。このようにアンチエイリアス処理を施すことによって、出力する文字イメージを美しく見せることができる。また、アンチエイリアス処理の色数を増やすと、より文字を美しく表現することができる。
【００６４】
例えば、このようなアンチエイリアス処理を２５４段階（背景色（例えば白色）及び文字色（例えば黒色）を含まない）で行うとすると、アンチエイリアス処理後のビットデータを記憶するためには、１ピクセル当たり８ビット（１バイト）のサイズが必要である。また、例えば、アンチエイリアス処理を行うためには、ビットマップデータのサイズの２倍以上のメモリ領域が必要である。例えば、１つのアウトラインフォントのデータに対応するビットマップデータの描画サイズが縦１６ピクセル×横１０ピクセルとした場合、１つのアウトラインフォントのデータに対応するビットマップデータを記憶するために、８×１６×８×１０＝１０２４０ビット＝１２８０バイトのメモリが必要である。そして、描画サイズを大きくしたり文字数を増やしたりすると、更にビットマップデータのサイズは大きくなり、データを記憶するために必要なメモリサイズも更に多く必要になる。そのため、アンチエイリアス処理の色数は、出力する文字イメージを美しく見せる効果の大きさと、必要なメモリサイズと、のバランスに基づいて決定されることが望ましい。
【００６５】
一般に、アウトラインフォントのアンチエイリアス処理では、描画サイズが大きい場合、描画サイズが小さい場合に比べて背景と文字との境界部分がくっきりする（違和感がなく美しく見える）傾向があり、描画サイズの違いにより最適なアンチエイリアス処理の段階数は異なる場合が多い。
本発明では、描画サイズが大きくなるにつれて、アンチエイリアス処理の色数が少なくなるように単調減少する。
このように、フォント処理装置２００は、描画サイズが異なれば、同じアウトラインフォントのデータであっても、異なる色数でアンチエイリアス処理を行って、メモリ使用量を抑えることができる。例えば、ＤＶＤ−ＲＯＭドライブ１０８に装着されたＤＶＤ−ＲＯＭや外部メモリ１０６等には、アウトラインフォントの描画サイズと、アンチエイリアス処理を行う色数とを対応づけた色数テーブル４０１が記憶される。
【００６６】
図４は、色数テーブル４０１に格納されるデータの例を示す図である。本図の場合、色数テーブル４０１は、アウトラインフォントの縦方向、横方向にそれぞれ等倍率で拡大・縮小される場合を想定したデータを記憶している。つまり、縦方向の描画サイズが決定すれば比例計算によって横方向の描画サイズも決定されるため、アウトラインフォントの縦方向のみの描画サイズ（ピクセル数）と色数とを対応づけている。そして、アンチエイリアス処理を施すパターンは、０色（つまりアンチエイリアス処理を行わない）、２色、６色、１４色、２５４色の合計５段階が設定されている。
例えば、本図のような色数テーブル４０１を用いて、図３（Ａ）のような文字データ「Ｉ」のアウトラインフォントのアンチエイリアス処理を行う場合、縦方向の描画サイズが１６ビットなら１４段階のアンチエイリアス処理が行われ、背景色（例えば白色）と文字色（例えば黒色）を含めて１６色がアンチエイリアス処理に用いられる。一方、このアウトラインフォントを縦方向、横方向にそれぞれ２倍拡大する場合、縦方向の描画サイズは３２ピクセルになり、６段階のアンチエイリアス処理が行われ、背景色と文字色を含めて８色がアンチエイリアス処理に用いられる。
【００６７】
ただし、色数テーブル４０１に記憶されるデータはこの形式に限定されるものではない。すなわち、色数テーブル４０１に格納される情報は、実質的に、アウトラインフォントの描画サイズと、対応するアンチエイリアス処理の色数とを対応づける形式であればよく、本図に示されるようにフォントの絶対的なピクセル数を用いる代わりに、画像処理部１０７に接続されるモニタの出力サイズや画面上に表示されるキャラクタの大きさに対するアウトラインフォントの描画サイズの割合などの相対的な尺度を用いて、色数を設定する形式であってもよい。
あるいは、例えば、縦方向と横方向の拡大（縮小）率が異なる場合を想定し、アウトラインフォントの縦方向の描画サイズと、横方向の描画サイズと、色数と、を対応づけた形式であってもよい。
【００６８】
また、色数もこれに限定されるものではない。例えば、本図に示されるようにアンチエイリアス処理を行う絶対的な色数を用いる代わりに、画像処理部１０７に接続されるモニタの出力可能色数や画面上に表示されるキャラクタや背景の色数に対する相対的な尺度を用いて、色数を設定する形式であってもよい。
【００６９】
さらには、色数テーブル４０１は、本図に示されるような具体的な数値を用いた形式に限定されず、事象の論理積等で表現される論理式等であってもよい。例えば、ある描画サイズで、キャラクターＸとキャラクターＹの位置が重なる画像領域（Ｘ  ＡＮＤ  Ｙ）では１４色、それ以外の画像領域では２５４色とするような形式であってもよい。
【００７０】
また、ビットマップ生成部２０３は、色数テーブル４０１を、フォント処理装置２００の起動時や、ＤＶＤ−ＲＯＭドライブ１０８に装着されたＤＶＤ−ＲＯＭや外部メモリ１０６等の最初の読み込み時に１回読み込んでＲＡＭ  １０３に展開し、２回目以降はＲＡＭ  １０３に展開されたものを用いるように構成してもよい。
【００７１】
また、色数テーブル４０１に相当するデータを予め備えるプログラムとして実現されるものであってもよい。
【００７２】
このように、ビットマップ生成部２０３が、入力された描画サイズに対応づけられた段階数でアンチエイリアス処理を行うことによって、フォント処理を行うために必要なメモリサイズや、ビットマップデータを記憶するために必要なメモリサイズを抑えることができる。
【００７３】
キャッシュ部２０４は、ビットマップ生成部２０３により生成されたビットマップデータを、アウトラインフォントの識別符号及び描画サイズに対応させて記憶する。すなわち、キャッシュ部２０４は、アウトラインフォントに対応するビットマップデータが出力部２０６により表示された後、生成したビットマップデータをすぐに破棄せずに記憶しておく。そして、次回に同じ識別符号と描画サイズでアウトラインフォントを表示する場合に、再びアンチエイリアス処理を行ってビットマップデータを生成することなく、キャッシュされたビットマップデータを用いる。これによって、フォント処理の高速化や負荷の軽減を実現することができる。
なお、ＲＡＭ  １０３がＣＰＵ  １０１と共働して動作することによって、キャッシュ部２０４として機能しうる。
【００７４】
例えば、キャッシュ部２０４に格納されるビットマップデータは、使用頻度が大きい順に優先的に記憶されてもよい。例えば、この使用頻度を示すデータは、アウトラインフォントの識別符号と、描画サイズと、予め得られた使用頻度に関する情報と、を対応づけたデータが格納されるテーブルやデータベース等として、ＤＶＤ−ＲＯＭドライブ１０８に装着されたＤＶＤ−ＲＯＭ、外部メモリ１０６等に記憶されていてもよい。そして、キャッシュ部２０４は、当該テーブルやデータベース等に予め設定された使用頻度情報を取得して、使用頻度が大きいと設定されたデータを優先して、アウトラインフォントのビットマップデータをキャッシュしてもよい。このようにすれば、例えばゲームタイトルのシーンごとに予め得られた統計データに基づいて、ゲームタイトルのシーンごとに適したキャッシュを行うことができる。
【００７５】
あるいは、例えば、キャッシュ部２０４に記憶されるビットマップデータは、フォント処理装置２００の電源投入後に使用されたアウトラインフォントの動的に更新可能なＬＲＵ（Least Recently Used）情報に基づいて、使用頻度が小さい順に消去されてもよい。なお、ＬＲＵ情報は、時間的に最も遠い過去に使用されたデータは何かを判別できる情報を含む。この場合、キャッシュ部２０４は、ビットマップデータのＬＲＵ情報を記憶するＬＲＵテーブルを合わせて記憶する。このようにすれば、フォント処理装置２００のユーザによる使用状況に適したキャッシュを行うことができる。
【００７６】
さらには、例えば、キャッシュ部２０４に記憶されるビットマップデータは、所定の期間（例えば、過去１分間、過去１時間など）に使用されたアウトラインフォントのＬＲＵ情報に基づいて、使用頻度が小さい順に消去されてもよい。この場合、ＬＲＵテーブルは、外部メモリ１０６等にテーブルやデータベース等として蓄積されて記憶されればよい。このようにすれば、所定の期間に得られた統計データに基づいて、フォント処理装置２００の使用環境やユーザに合わせて、キャッシュ効率を最適化することができる。
【００７７】
なお、キャッシュ部２０４は、ＬＲＵテーブルを持たずに、ビットマップデータと、識別符号と、描画サイズと、ＬＲＵ情報と、を対応づけて記憶するようにしてもよい。
【００７８】
このように、キャッシュ部２０４がビットマップデータを識別符号と描画サイズに対応づけてキャッシュすることによって、フォント処理を高速化することができる。
【００７９】
更新部２０５は、ビットマップ生成部２０３により生成されたビットマップデータを、キャッシュ部２０４に記憶させる制御を行う。すなわち、更新部２０５は、アウトラインフォントの識別符号と、描画サイズと、ビットマップ生成部２０３により生成されたビットマップデータと、を対応づけてキャッシュ部２０４に記憶させる。そして、記憶部２０５は、ビットマップデータを新たにキャッシュしたタイミングで、キャッシュ部２０４に記憶されるＬＲＵテーブルに、ビットマップデータをキャッシュしたタイミングを示す情報を識別符号に対応づけて記憶させる。あるいは、上述のように、更新部２０５は、アウトラインフォントの識別符号と、描画サイズと、ビットマップデータと、ＬＲＵ情報と、を対応づけてキャッシュ部２０４に記憶させてもよい。
【００８０】
また、更新部２０５は、キャッシュ部２０４の使用容量が所定の値（例えば、使用率９５％など）に達した場合や、所定の時間（例えば、記憶された時刻から１時間など）が経過した場合に、キャッシュ部２０４に記憶されるビットマップデータを、ＬＲＵ情報に基づいて使用頻度が小さい順に消去してもよい。例えば、更新部２０５は、ビットマップデータをキャッシュしたタイミングが時系列的に最も古い識別符号に対応するデータを消去する。そして、更新部２０５は、ビットマップデータを消去したタイミングで、キャッシュ部２０４に記憶されるＬＲＵ情報を更新する。
なお、画像処理部１０７がＣＰＵ  １０１と共働して動作することによって、更新部２０５として機能しうる。
【００８１】
出力部２０６は、入力受付部２０１が受け付けた識別符号と描画サイズとに対応する、キャッシュ部２０４に記憶されたビットマップデータを出力する。そして、出力部２０６は、ビットマップデータを出力したタイミングで、キャッシュ部２０４に記憶されるＬＲＵテーブルに、ビットマップデータを出力したタイミングを示す情報を識別符号に対応づけて記憶させる。もしくは、出力部２０６は、アウトラインフォントの識別符号と、描画サイズと、ビットマップデータと、ＬＲＵ情報と、を対応づけてキャッシュ部２０４に記憶された情報のうちのＬＲＵ情報に、ビットマップデータを出力したタイミングを示す情報を記憶させてもよい。
なお、画像処理部１０７がＣＰＵ  １０１と共働して動作することによって、出力部２０６として機能しうる。そして、画像処理部１０７に接続されるモニタ等にビットマップデータが表示され、ユーザはアンチエイリアス処理されたアウトラインフォントを用いた画像を見ることができる。
【００８２】
次に、本実施例のフォント処理装置２００で実行されるフォント処理の流れを、図５のフローチャートを用いて説明する。なお、以下の説明では、コンピュータ麻雀ゲームのプレイ中に、画面に表示するメッセージを構成する各文字等に対応するアウトラインフォントのビットマップデータを出力する場合を例に説明する。また、画面に表示するメッセージは、ひらがな・カタカナ・漢字・アルファベット等の文字、数字、「！」や「？」等の各種記号等から構成されるものとする。
【００８３】
まず、入力受付部２０１は、アウトラインフォントの識別符号と描画サイズとの組を受け取る（ステップＳ５０１）。
【００８４】
ビットマップ生成部２０３は、識別符号と描画サイズとの組に対応するビットマップデータがキャッシュ部２０４にキャッシュされているか否かを判定する（ステップＳ５０２）。例えば、ビットマップ生成部２０３は、キャッシュ部２０４に記憶されているＬＲＵテーブルを参照して、対応するビットマップデータがキャッシュされているか否かを判定する。
【００８５】
対応するビットマップデータがキャッシュされている場合（ステップＳ５０２；ＹＥＳ）、出力部２０６は、キャッシュされているビットマップデータを取得する（ステップＳ５０７）。
【００８６】
一方、対応するビットマップデータがキャッシュされていない場合（ステップＳ５０２；ＮＯ）、ビットマップ生成部２０３は、識別符号に対応するフォントデータを、フォント記憶部２０２から取得する（ステップＳ５０３）。例えば、ビットマップ生成部２０３は、ＤＶＤ−ＲＯＭドライブ１０８に装着されたＤＶＤ−ＲＯＭや外部メモリ１０６等から、予め記憶されたフォントデータを取得する。
【００８７】
ビットマップ生成部２０３は、描画サイズに対応するアンチエイリアス処理の色数を取得する（ステップＳ５０４）。例えば、ビットマップ生成部２０３は、ＤＶＤ−ＲＯＭドライブ１０８に装着されたＤＶＤ−ＲＯＭや外部メモリ１０６等に予め記憶された色数テーブル４０１から、色数を取得する。
【００８８】
そして、ビットマップ生成部２０３は、ステップＳ５０４で取得した色数に基づいて、識別符号が示すフォントデータのアンチエイリアス処理を行って、ビットマップデータを生成する（ステップＳ５０５）。
【００８９】
また、更新部２０５は、生成されたビットマップデータを、識別符号と描画サイズとの組に対応づけて、キャッシュ部２０４にキャッシュする（ステップＳ５０６）。
【００９０】
出力部２０６は、キャッシュ部２０４にキャッシュされたビットマップデータを取得する（ステップＳ５０７）。
【００９１】
出力部２０６は、入力受付部２０１が受け付けた識別符号と描画サイズとの組に対応するビットマップデータを出力して（ステップＳ５０８）、フォント処理を終了する。
【００９２】
なお、本実施例では、１つの文字等に対応する識別符号と描画サイズとを受け取って、１つの文字等に対応するビットマップデータを出力するが、この他の実施形態を採用することもできる。
例えば、入力受付部２０１は、複数の文字等から構成されるメッセージデータを受け取って、ビットマップ生成部２０３は、このメッセージデータに含まれる各文字等に対してそれぞれビットマップデータを生成し、出力部２０６は、生成されたビットマップデータを結合して、メッセージデータに対応するビットマップデータを出力するようにしてもよい。
【００９３】
また、使用頻度が大きいと推測される所定の登録単語列（例えば、麻雀用語、プレイヤーの名前など）に予め１つの識別符号を与えて、この所定の登録単語列を１つの単位として、上述したフォント処理を行ってもよい。なお、単語列とは、単語一語、あるいは、複数の単語から構成されるもののことである。また、単語列には、ひらがな・カタカナ・漢字・アルファベット等の文字、数字、「！」や「？」等の各種記号等が含まれる。
【００９４】
例えば、図６は、フォント記憶部２０２に記憶されるデータの例を示した図である。本図の識別符号部分に格納されるデータの末尾「ｈ」は、格納されるデータが１６進数であることを示す。この場合、フォント記憶部２０２は、予め「リーチ」という１つの登録単語に与えられた識別符号（例えば、本図では８５０１ｈ）に対応して、「リ」と「ー」と「チ」の３文字から構成されるフォントデータを記憶する。そして、「リーチ」という登録単語についてフォント処理を行う場合に、「リ」と「ー」と「チ」とのそれぞれに識別符号と描画サイズとが設定されて入力受付部２０１に入力される代わりに、登録単語列「リーチ」に対応する１つの識別符号と描画サイズとの組が入力受付部２０１に入力されるように構成してもよい。
この場合、キャッシュ部２０４は、この「リーチ」という１つの登録単語列の識別符号に対応して、ビットマップデータとＬＲＵ情報とを記憶すればよい。
これによって、フォント処理の高速化や負荷の軽減の効果をさらに大きくすることができる。
【００９５】
なお、上述のように所定の登録単語列に１つの識別符号が与えられる場合、この登録単語列の長さ（例えば、バイト数）を予め指定する方法としては、例えば、この登録単語列の１バイト目に単語列長を記憶する方法（例えば、”リーチ”は３文字なので「３リーチ」、”ロン”は２文字なので「２ロン」と記憶させる、等）がある。そして、ビットマップ生成部２０３は、１バイト目で指定されたバイト数をフォント記憶部２０２から読み込んで１つの登録単語列を得て、上述したフォント処理を行えばよい。
【００９６】
あるいは、フォント記憶部２０２は、所定の登録単語列と、この単語列の長さと、を対応づける単語列長テーブル等を記憶して、ビットマップ生成部２０３は、所定の識別符号が入力された場合に、単語列長テーブルに基づいて、識別符号に対応する登録単語列のフォントデータを取得するように構成してもよい。
【００９７】
あるいは、入力受付部２０１は、所定の識別符号が入力された場合に、識別符号と描画サイズとに加えて、単語列長を示すデータの入力を受け付けて、この単語列長を示すデータと識別符号と描画サイズとをビットマップ生成部２０３に入力し、ビットマップ生成部２０３は、入力された単語列長を示すデータと識別符号とに基づいて、識別符号に対応する所定の登録単語列のフォントデータを取得するように構成してもよい。
【００９８】
このように、本実施例によれば、識別符号および描画サイズに対応付けられたアウトラインフォントのデータがキャッシュ部２０４にキャッシュされていない場合、ビットマップ生成部２０３により描画サイズに対応付けられる色数でアンチエイリアスされ、識別符号および描画サイズに対応付けられたビットマップフォントのデータが生成され、更新部２０５によりキャッシュ部２０４にキャッシュされる。そして、識別符号および描画サイズに対応付けられてキャッシュ部２０４にキャッシュされたビットマップフォントのデータが出力部２０６により出力される。
この結果、アウトラインフォントの描画品質をできるだけ維持しつつ、メモリの使用量を少なくして描画を行うことができる。
【実施例２】
【００９９】
次に、実施例２に係るフォント処理装置２００について説明する。
なお、本実施例に係るフォント処理装置２００の機能を果たす典型的な情報処理装置の概要構成は、実施例１と同じであるため、説明は省略する。
【０１００】
図７は、本実施例に係るフォント処理装置２００の概要構成を示す模式図である。以下、本図を参照して説明する。
なお、入力受付部２０１、フォント記憶部２０２、キャッシュ部２０４及び更新部２０５が実行する処理は、実施例１と同じであり、ビットマップ生成部２０３と出力部２０６が実行する処理が異なる。そのため、ここでは、実施例１と異なる構成部分について説明し、入力受付部２０１、フォント記憶部２０２、キャッシュ部２０４及び更新部２０５については説明を省略する。
【０１０１】
ビットマップ生成部２０３は、入力受付部２０１が受け付けた識別符号と描画サイズとに対応するビットマップデータがキャッシュ部２０４にキャッシュされている場合、キャッシュされているビットマップデータを出力するように出力部２０６に指示し、ビットマップデータを生成しない。一方、対応するビットマップデータがキャッシュ部２０４にキャッシュされていない場合、実施例と同じようにビットマップデータを生成してキャッシュ部２０４にキャッシュする。
なお、画像処理部１０７がＣＰＵ  １０１と共働して動作することによって、ビットマップ生成部２０３として機能しうる。
【０１０２】
出力部２０６は、入力受付部２０１が受け付けた識別符号と描画サイズとに対応するビットマップデータがキャッシュ部２０４にキャッシュされている場合、キャッシュされているビットマップデータを出力する。一方、対応するビットマップデータがキャッシュ部２０４にキャッシュされていない場合、ビットマップ生成部２０３により生成されたビットマップデータを出力する。
なお、画像処理部１０７がＣＰＵ  １０１と共働して動作することによって、出力部２０６として機能しうる。そして、画像処理部１０７に接続されるモニタ等にビットマップデータが表示され、ユーザはアンチエイリアス処理されたアウトラインフォントを用いた画像を見ることができる。
【０１０３】
次に、本実施例のフォント処理装置２００で実行されるフォント処理の流れを、図８のフローチャートを用いて説明する。なお、以下の説明では、コンピュータ麻雀ゲームのプレイ中に、画面に表示するメッセージを構成する各文字等のビットマップデータを出力する場合を例に説明する。また、画面に表示するメッセージデータは、ひらがな・カタカナ・漢字・アルファベット等の文字、数字、「！」や「？」等の各種記号等から構成されるものとする。
【０１０４】
まず、入力受付部２０１は、アウトラインフォントの識別符号と描画サイズとを受け取る（ステップＳ８０１）。
【０１０５】
ビットマップ生成部２０３は、識別符号と描画サイズとの組に対応するビットマップデータがフォント記憶部２０２にキャッシュされているか否かを判定する（ステップＳ８０２）。
【０１０６】
対応するビットマップデータがキャッシュされている場合（ステップＳ８０２；ＹＥＳ）、出力部２０６は、キャッシュされているビットマップデータを取得する（ステップＳ８０３）。
【０１０７】
そして、出力部２０６は、ステップＳ８０３でキャッシュから取得したビットマップデータを出力して（ステップＳ８０４）、フォント処理を終了する。
【０１０８】
一方、対応するビットマップデータがキャッシュされていない場合（ステップＳ８０２；ＮＯ）、ビットマップ生成部２０３は、識別符号に対応するフォントデータを取得する（ステップＳ８０５）。
【０１０９】
ビットマップ生成部２０３は、描画サイズに対応するアンチエイリアス処理の色数（段階数）を取得する（ステップＳ８０６）。
【０１１０】
そして、ビットマップ生成部２０３は、ステップＳ８０６で取得した色数に基づいて、識別符号が示すフォントデータのアンチエイリアス処理を行って、ビットマップデータを生成する（ステップＳ８０７）。
【０１１１】
また、更新部２０５は、ビットマップ生成部２０３が生成したビットマップデータを、識別符号と描画サイズとの組に対応づけて、キャッシュ部２０４にキャッシュする（ステップＳ８０８）。
【０１１２】
出力部２０６は、ステップＳ８０７で生成されたビットマップデータを出力して（ステップＳ８０９）、フォント処理を終了する。
【０１１３】
なお、ステップＳ８０８とステップＳ８０９の順番を入れ替えて、ステップＳ８０７で生成されたビットマップデータを出力部２０６が出力してから、キャッシュ部２０４にキャッシュするように構成してもよい。
【０１１４】
このように、識別符号および描画サイズに対応づけられたアウトラインフォントのデータがキャッシュ部２０４にキャッシュされていない場合、ビットマップ生成部２０３により描画サイズに対応付けられる色数でアンチエイリアスされて、識別符号および描画サイズに対応づけられたビットマップフォントのデータが生成され、更新部２０５によりキャッシュされる。そして、生成されたビットマップフォントのデータが出力部２０６により出力される。一方、識別符号および描画サイズに対応づけられたアウトラインフォントのデータがキャッシュ部２０４にキャッシュされている場合、キャッシュされたビットマップフォントのデータが出力部２０６により出力される。
この結果、アウトラインフォントの描画品質をできるだけ維持しつつ、メモリの使用量を少なくして描画を行うことができる。
【０１１５】
本発明は、上述した実施例に限定されず、種々の変形及び応用が可能である。
例えば、ビットマップ生成部２０３は、フォント処理装置２００の電源投入後、画像処理部１０７に接続されるモニタの解像度（例えば、表示サイズや表示色数）を取得して、あるいは、コントローラ１０５等を用いたユーザからの入力により解像度を取得して、この解像度に基づいてアウトラインフォントの描画サイズとアンチエイリアス処理の色数との対応づけを行って色数テーブル４０１に記憶させてもよい。この場合、アンチエイリアス処理の色数は、描画サイズが大きくなるにつれて単調減少する値に設定されればよい。
【０１１６】
以上説明したように、本発明によれば、アウトラインフォントを、描画品質をできるだけ維持しつつメモリの使用量を少なくして描画を行うのに好適なフォント処理装置、フォント処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【０１１７】
例えば、麻雀の面子が揃ったときにこれをプレイヤーに分かりやすく提示するのに好適なフォント処理装置、フォント処理装置制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【０１１８】
【図１】本発明のフォント処理装置が実現される典型的な情報処理装置の概要構成を示す模式図である。
【図２】実施例１に係るフォント処理装置の概要構成を示す模式図である。
【図３】（Ａ）アンチエイリアス処理を施さない場合のビットマップデータの例を示す図である。（Ｂ）アンチエイリアス処理を施した場合のビットマップデータの例を示す図である。
【図４】色数テーブルに格納されるデータの例を示す図である。
【図５】実施例１に係るフォント処理装置が実行するフォント処理を説明するためのフローチャートである。
【図６】フォント記憶部に記憶されるフォントデータの例を示す図である。
【図７】実施例２に係るフォント処理装置の概要構成を示す模式図である。
【図８】実施例２に係るフォント処理装置が実行するフォント処理を説明するためのフローチャートである。
【符号の説明】
【０１１９】
１００  情報処理装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  インターフェイス
１０５  コントローラ
１０６  外部メモリ
１０７  画像処理部
１０８  ＤＶＤ−ＲＯＭドライブ
１０９  ＮＩＣ
１１０  音声処理部
２０１  入力受付部
２０２  フォント記憶部
２０３  ビットマップ生成部
２０４  キャッシュ部
２０５  更新部
２０６  出力部
【図１】
2007121874.tif 000003
【図２】
2007121874.tif 000004
【図３】
2007121874.tif 000005
【図４】
2007121874.tif 000006
【図５】
2007121874.tif 000007
【図６】
2007121874.tif 000008
【図７】
2007121874.tif 000009
【図８】
2007121874.tif 000010