(57)【特許請求の範囲】
【請求項１】
複数の文字の各々を各々が表す複数の対象部分画像を含む文字一覧画像を記憶する記憶部と、
出力画像に描画する文字列に含まれる各々の文字を各々が識別することのできる複数の識別子を特定し、前記複数の識別子の各々を各々が表す複数の識別子部分画像を、前記文字列に従って配置した文字列識別画像を生成する文字列識別画像生成部と、
前記出力画像において前記文字列を描画するためのエリアを特定するエリア特定部と、
前記出力画像において、前記エリアに含まれる全てのピクセルを特定し、前記特定されたピクセルに、前記エリア内における相対的な位置を示すラスタライズテクスチャ座標を割り当てる描画処理部と、を備え、
前記描画処理部は、前記特定されたピクセルに含まれる１つのピクセルについて、前記１つのピクセルに割り当てられた前記ラスタライズテクスチャ座標を特定し、前記文字列識別画像において、前記特定されたラスタライズテクスチャ座標に対応する前記識別子部分画像を特定し、前記文字一覧画像において、前記特定された識別子部分画像に対応する前記対象部分画像を特定し、前記特定された対象部分画像において、前記特定されたラスタライズテクスチャ座標から、前記１つのピクセルに対応するピクセルである対応ピクセルの色値を特定し、前記特定された色値を用いて、前記出力画像における前記１つのピクセルの色値を変える処理を、前記特定されたピクセルの全てで行うことで、前記エリアに前記文字列を描画すること
を特徴とする情報処理装置。
【請求項２】
前記エリア特定部は、前記エリアにポリゴンを配置するためのポリゴン情報を生成することで、前記エリアを特定すること
を特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記文字列識別画像では、前記複数の識別子部分画像の各々を行及び列により識別可能に配置されており、
前記描画処理部は、前記特定されたラスタライズテクスチャ座標に対応する行及び列を特定することで、前記特定されたラスタライズテクスチャ座標に対応する前記識別子部分画像を特定すること
を特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記描画処理部は、前記特定された識別子部分画像において、前記特定されたラスタライズテクスチャ座標の相対的な位置を特定し、前記特定された対象部分画像において、前記特定された相対的な位置に対応する位置のピクセルを、前記対応ピクセルとすること
を特徴とする請求項１から３の何れか一項に記載の情報処理装置。
【請求項５】
前記識別子は、前記文字一覧画像における、前記対象部分画像の位置を示すことで、前記文字を識別すること
を特徴とする請求項１から４の何れか一項に記載の情報処理装置。
【請求項６】
前記描画処理部は、前記１つのピクセルの前記色値を、前記特定された色値に変えること
を特徴とする請求項１から５の何れか一項に記載の情報処理装置。
【請求項７】
前記描画処理部は、前記１つのピクセルの前記色値を、予め定められた色の色値と、前記特定された色値とを組み合わせることで生成された色値に変えること
を特徴とする請求項１から５の何れか一項に記載の情報処理装置。
【請求項８】
前記描画処理部は、前記特定された色値が前記文字列を描画する色値である場合には、前記特定された色値を用いて、前記１つのピクセルの前記色値を変え、前記特定された色値が前記文字列を描画する色値とは異なる場合には、前記１つのピクセルの前記色値を、予め定められた色の色値に変えること
を特徴とする請求項１から５の何れか一項に記載の情報処理装置。
【請求項９】
前記文字列識別画像生成部は、前記複数の識別子部分画像の各々に対応する位置に、前記複数の識別子部分画像の各々に表されている前記識別子で識別される前記文字を描画するために用いられる色の色値である文字色値を示す文字色識別画像をさらに生成し、
前記描画処理部は、前記文字色識別画像において、前記特定されたラスタライズテクスチャ座標に対応するピクセルの前記文字色値を特定し、前記特定された色値及び前記特定された文字色値を用いて、前記１つのピクセルの前記色値を変えること
を特徴とする請求項１から５の何れか一項に記載の情報処理装置。
【請求項１０】
前記文字列識別画像生成部は、前記複数の識別子部分画像の各々に対応する位置に、前記複数の識別子部分画像の各々に表されている前記識別子で識別される前記文字の背景を描画するために用いられる色の色値である背景色値を示す背景色識別画像をさらに生成し、
前記描画処理部は、前記背景色識別画像において、前記特定されたラスタライズテクスチャ座標に対応するピクセルの前記背景色値を特定し、前記特定された色値が前記文字列を描画する色値である場合には、前記特定された色値を用いて、前記１つのピクセルの前記色値を変え、前記特定された色値が前記文字列を描画する色値とは異なる場合には、前記特定された色値及び前記特定された背景色値を用いて、前記１つのピクセルの前記色値を変えること
を特徴とする請求項１から５の何れか一項に記載の情報処理装置。
【請求項１１】
コンピュータを、
複数の文字の各々を各々が表す複数の対象部分画像を含む文字一覧画像を記憶する記憶部、
出力画像に描画する文字列に含まれる各々の文字を各々が識別することのできる複数の識別子を特定し、前記複数の識別子の各々を各々が表す複数の識別子部分画像を、前記文字列に従って配置した文字列識別画像を生成する文字列識別画像生成部、
前記出力画像において前記文字列を描画するためのエリアを特定するエリア特定部、及び、
前記出力画像において、前記エリアに含まれる全てのピクセルを特定し、前記特定されたピクセルに、前記エリア内における相対的な位置を示すラスタライズテクスチャ座標を割り当てる描画処理部、として機能させ、
前記描画処理部は、前記特定されたピクセルに含まれる１つのピクセルについて、前記１つのピクセルに割り当てられた前記ラスタライズテクスチャ座標を特定し、前記文字列識別画像において、前記特定されたラスタライズテクスチャ座標に対応する前記識別子部分画像を特定し、前記文字一覧画像において、前記特定された識別子部分画像に対応する前記対象部分画像を特定し、前記特定された対象部分画像において、前記特定されたラスタライズテクスチャ座標から、前記１つのピクセルに対応するピクセルである対応ピクセルの色値を特定し、前記特定された色値を用いて、前記出力画像における前記１つのピクセルの色値を変える処理を、前記特定されたピクセルの全てで行うことで、前記エリアに前記文字列を描画すること
を特徴とするプログラム。
【請求項１２】
出力画像に描画する文字列に含まれる各々の文字を各々が識別することのできる複数の識別子を特定し、前記複数の識別子の各々を各々が表す複数の識別子部分画像を、前記文字列に従って配置した文字列識別画像を生成し、
前記出力画像において前記文字列を描画するためのエリアを特定し、
前記出力画像において、前記エリアに含まれる全てのピクセルを特定し、前記特定されたピクセルに、前記エリア内における相対的な位置を示すラスタライズテクスチャ座標を割り当て、
前記特定されたピクセルに含まれる１つのピクセルについて、前記１つのピクセルに割り当てられた前記ラスタライズテクスチャ座標を特定し、前記文字列識別画像において、前記特定されたラスタライズテクスチャ座標に対応する前記識別子部分画像を特定し、複数の文字の各々を各々が表す複数の対象部分画像を含む文字一覧画像において、前記特定された識別子部分画像に対応する前記対象部分画像を特定し、前記特定された対象部分画像において、前記特定されたラスタライズテクスチャ座標から、前記１つのピクセルに対応するピクセルである対応ピクセルの色値を特定し、前記特定された色値を用いて、前記出力画像における前記１つのピクセルの色値を変える処理を、前記特定されたピクセルの全てで行うことで、前記エリアに前記文字列を描画すること
を特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、プログラム及び情報処理方法に関する。
【背景技術】
【０００２】
様々なコンピュータアプリケーションでは、画面に文字が描画される。近年のＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）又は組み込みコンピュータは、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と呼ばれる描画専用のハードウェアを用いてコンテンツを描画することが多い。しかしながら、ＧＰＵは、三角形ポリゴンを描画することに特化しており、主に曲線で構成される文字をそのまま描画できるものは少ない。【０００３】
そのため、一般的にＧＰＵで文字又は文字列を描画するときは、テクスチャマッピングを用い、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）で画像化した文字又は文字列を、２つの三角形ポリゴンで構成される矩形にマッピングすることが多い。【０００４】
但し、ＣＰＵで文字列を描画する処理には時間がかかるため、文字列が頻繁に変化する場合には処理時間が長くなる。これに対して、特許文献１に記載されているコンピュータプログラムのように、アプリケーションが使用する全文字の画像を予め１枚のテクスチャ内に並べておき、描画時には文字数分の矩形を描画して各矩形に１文字分のテクスチャ領域をマッピングする方法が一般的に利用されている。このように、複数の画像を１枚のテクスチャにしたものをテクスチャアトラスという。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１７−７２９７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の技術では、描画する文字毎に、頂点位置とテクスチャ座標とを含むポリゴン情報を、ＣＰＵで再生成してＧＰＵに転送する必要があり、そのような処理の処理負荷が大きく、そのような処理に時間がかかってしまう。【０００７】
そこで、本発明の１又は複数の態様は、文字列を描画する場合でも、少ない処理負荷で描画を行うことができるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明の１態様に係る情報処理装置は、複数の文字の各々を各々が表す複数の対象部分画像を含む文字一覧画像を記憶する記憶部と、出力画像に描画する文字列に含まれる各々の文字を各々が識別することのできる複数の識別子を特定し、前記複数の識別子の各々を各々が表す複数の識別子部分画像を、前記文字列に従って配置した文字列識別画像を生成する文字列識別画像生成部と、前記出力画像において前記文字列を描画するためのエリアを特定するエリア特定部と、前記出力画像において、前記エリアに含まれる全てのピクセルを特定し、前記特定されたピクセルに、前記エリア内における相対的な位置を示すラスタライズテクスチャ座標を割り当てる描画処理部と、を備え、前記描画処理部は、前記特定されたピクセルに含まれる１つのピクセルについて、前記１つのピクセルに割り当てられた前記ラスタライズテクスチャ座標を特定し、前記文字列識別画像において、前記特定されたラスタライズテクスチャ座標に対応する前記識別子部分画像を特定し、前記文字一覧画像において、前記特定された識別子部分画像に対応する前記対象部分画像を特定し、前記特定された対象部分画像において、前記特定されたラスタライズテクスチャ座標から、前記１つのピクセルに対応するピクセルである対応ピクセルの色値を特定し、前記特定された色値を用いて、前記出力画像における前記１つのピクセルの色値を変える処理を、前記特定されたピクセルの全てで行うことで、前記エリアに前記文字列を描画することを特徴とする。【０００９】
本発明の１態様に係るプログラムは、コンピュータを、複数の文字の各々を各々が表す複数の対象部分画像を含む文字一覧画像を記憶する記憶部、出力画像に描画する文字列に含まれる各々の文字を各々が識別することのできる複数の識別子を特定し、前記複数の識別子の各々を各々が表す複数の識別子部分画像を、前記文字列に従って配置した文字列識別画像を生成する文字列識別画像生成部、前記出力画像において前記文字列を描画するためのエリアを特定するエリア特定部、及び、前記出力画像において、前記エリアに含まれる全てのピクセルを特定し、前記特定されたピクセルに、前記エリア内における相対的な位置を示すラスタライズテクスチャ座標を割り当てる描画処理部、として機能させ、前記描画処理部は、前記特定されたピクセルに含まれる１つのピクセルについて、前記１つのピクセルに割り当てられた前記ラスタライズテクスチャ座標を特定し、前記文字列識別画像において、前記特定されたラスタライズテクスチャ座標に対応する前記識別子部分画像を特定し、前記文字一覧画像において、前記特定された識別子部分画像に対応する前記対象部分画像を特定し、前記特定された対象部分画像において、前記特定されたラスタライズテクスチャ座標から、前記１つのピクセルに対応するピクセルである対応ピクセルの色値を特定し、前記特定された色値を用いて、前記出力画像における前記１つのピクセルの色値を変える処理を、前記特定されたピクセルの全てで行うことで、前記エリアに前記文字列を描画することを特徴とする。【００１０】
本発明の１態様に係る情報処理方法は、出力画像に描画する文字列に含まれる各々の文字を各々が識別することのできる複数の識別子を特定し、前記複数の識別子の各々を各々が表す複数の識別子部分画像を、前記文字列に従って配置した文字列識別画像を生成し、前記出力画像において前記文字列を描画するためのエリアを特定し、前記出力画像において、前記エリアに含まれる全てのピクセルを特定し、前記特定されたピクセルに、前記エリア内における相対的な位置を示すラスタライズテクスチャ座標を割り当て、前記特定されたピクセルに含まれる１つのピクセルについて、前記１つのピクセルに割り当てられた前記ラスタライズテクスチャ座標を特定し、前記文字列識別画像において、前記特定されたラスタライズテクスチャ座標に対応する前記識別子部分画像を特定し、複数の文字の各々を各々が表す複数の対象部分画像を含む文字一覧画像において、前記特定された識別子部分画像に対応する前記対象部分画像を特定し、前記特定された対象部分画像において、前記特定されたラスタライズテクスチャ座標から、前記１つのピクセルに対応するピクセルである対応ピクセルの色値を特定し、前記特定された色値を用いて、前記出力画像における前記１つのピクセルの色値を変える処理を、前記特定されたピクセルの全てで行うことで、前記エリアに前記文字列を描画することを特徴とする。
【発明の効果】
【００１１】
本発明の１又は複数の態様によれば、文字列が描画する場合でも、少ない処理負荷で描画を行うことができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態に係る画像描画装置の構成を概略的に示すブロック図である。
【図２】文字アトラスの一例を示す概略図である。
【図３】文字列ＩＤ画像の一例を示す概略図である。
【図４】ポリゴン情報の一例を示す概略図である。
【図５】ピクセル頂点情報を補間する例を示す概略図である。
【図６】画像描画装置のハードウェア構成例を示すブロック図である。
【図７】画像描画装置での描画動作を示すフローチャートである。
【発明を実施するための形態】
【００１３】
図１は、実施の形態に係る情報処理装置である画像描画装置１００の構成を概略的に示すブロック図である。
画像描画装置１００は、第１の処理部１１０と、第１の記憶部１２０と、第２の処理部１３０と、第２の記憶部１４０と、表示部１５０とを備える。
なお、第１の記憶部１２０及び第２の記憶部１４０を単に記憶部ともいう。
【００１４】
第１の処理部１１０は、第２の処理部１３０が実行する、文字を描画する描画処理以外の処理を実行する。
第１の処理部１１０は、アプリケーション実行部１１１と、文字アトラス生成部１１２と、文字列ＩＤ画像生成部１１３と、ポリゴン生成部１１４とを備える。
【００１５】
アプリケーション実行部１１１は、アプリケーションを実行することで、そのアプリケーションの機能を実現する。例えば、アプリケーション実行部１１１は、文字列を表示する任意のアプリケーションを実行する。
【００１６】
そして、アプリケーション実行部１１１は、アプリケーションの実行時に使用する全ての文字の一覧を示す文字一覧情報を、文字アトラス生成部１１２に与える。アプリケーション実行部１１１は、この処理を初期化時等に一度だけ実行すればよい。
また、アプリケーション実行部１１１は、描画時に、描画する文字列と、その表示位置とを示す描画情報を、文字列ＩＤ画像生成部１１３に与える。
【００１７】
文字アトラス生成部１１２は、文字一覧情報で示される一覧に含まれている全ての文字を一枚の画像上に画像化することで文字アトラスを生成し、生成された文字アトラスを第１の記憶部１２０に記憶させる。言い換えると、文字アトラスは、アプリケーション実行部１１１が実行するアプリケーションで使用される全ての文字の各々を、各々が表す複数の対象部分画像を含む文字一覧画像である。
【００１８】
文字アトラス生成部１１２が文字を画像化する方法は、公知の何れの方法でもよく、例えば、ＦｒｅｅＴｙｐｅ等のソフトウェアを用いて実現することができる。
また、文字アトラス生成部１１２は、文字の描画を開始する前に、第１の記憶部１２０に記憶させた文字アトラスを、第２の記憶部１４０に送り、記憶させる。
【００１９】
図２は、文字アトラスの一例を示す概略図である。
図２に示されている文字アトラス１２１は、１文字の画像幅と高さとを共に８ピクセルとして生成されている。言い換えると、８ピクセルの幅と高さとの部分画像が、対象となる１つの文字を示す対象部分画像となる。なお、文字アトラス１２１には、描画する文字列に使用される、文字が記載されないスペースに対応する空白を示す対象部分画像も含まれている。
【００２０】
図１に戻り、文字列ＩＤ画像生成部１１３は、アプリケーション実行部１１１が実行しているアプリケーションの出力画像に描画する文字列に含まれる各々の文字を各々が識別することのできる複数の識別子を特定し、特定された複数の識別子の各々を各々が表す複数の識別子部分画像を、その文字列に従って配置した文字列識別画像を生成する文字列識別画像生成部である。
具体的には、文字列ＩＤ画像生成部１１３は、描画情報で示される文字列に含まれている各文字のコードを識別子としてのＩＤに変換し、変換されたＩＤの画像である識別子部分画像を、描画情報で示される表示位置に示す文字列ＩＤ画像を生成し、第２の記憶部１４０に記憶させる。また、文字列ＩＤ画像生成部１１３は、生成された文字列ＩＤ画像をポリゴン生成部１１４に与える。
【００２１】
このＩＤは、各文字が文字アトラス内に格納された位置を特定することができる数値である。例えば、１文字の幅をｗ（ピクセル）とし、その高さをｈ（ピクセル）とし、横方向にｐ個（ｐは、１以上の整数）、縦方向にｑ個（ｑは、１以上の整数）の文字を並べた文字アトラスの場合、ｎ番目の文字が格納された位置は、下記の（１）式及び（２）式で表される位置（ｕｃ、ｖｃ）で算出でき、ＩＤ＝ｎとすることができる。
ｕｃ＝（ｎ％ｐ）×ｗ                                          （１）
ｖｃ＝（ｎ／ｑ）×ｈ                                          （２）
但し、（１）式において、「％」は剰余演算を示している。例えば、「ｎ％Ａ」は、ｎをｐで除算した剰余を示している。以下、「％」の意味は同様である。
【００２２】
図３は、文字列ＩＤ画像の一例を示す概略図である。
図３に示されている文字列ＩＤ画像１４１は、図２に示されている文字アトラス１２１において、「Ｓｔｒｉｎｇ」「Ａ  Ｂ  Ｃ  」という２行６列の文字列を表している。
図３に示されている文字列ＩＤ画像１４１も、１文字の画像幅と高さとを共に８ピクセルとして生成されている。言い換えると、８ピクセルの幅と高さとの部分画像が、識別子部分画像となり、文字列ＩＤ画像１４１には、識別子部分画像が行列状に配置されている。このため、文字列ＩＤ画像１４１に含まれている各々の識別子部分画像は、その識別子部分画像が配置されている行及び列を特定することで、識別可能である。
【００２３】
図１に戻り、ポリゴン生成部１１４は、出力画像において文字列を描画するためのエリアを特定するエリア特定部である。例えば、ポリゴン生成部１１４は、そのエリアにポリゴンを配置するためのポリゴン情報を生成する。具体的には、ポリゴン生成部１１４は、アプリケーション実行部１１１が指定した表示位置に、文字列を包含するサイズの矩形を構成するポリゴン情報を生成する。そして、ポリゴン生成部１１４は、生成されたポリゴン情報を、第２の処理部１３０に与える。
【００２４】
通常、矩形は、２つの三角形ポリゴンで表されるが、ここでは簡略化のため、ポリゴンとして矩形をそのまま扱う。
ポリゴン情報は、矩形の４つの頂点を表す４つの頂点情報で構成されている。頂点情報は、頂点の位置座標と、その頂点及び文字列が描画されるテクスチャ画像のマッピングを表すテクスチャ座標とから構成される。
Ｍ行Ｎ列の文字列を、位置座標Ｐ０＝（ｘ０，ｙ０）の位置に描画する場合、ポリゴン情報を構成する４つの頂点情報の位置座標Ｐｎ（ｎ＝０，１，２，３）とテクスチャ座標Ｔｎは、下記の（３）式〜（６）式で表すことができる。
Ｐ０＝（ｘ０，ｙ０）                  Ｔ０＝（０，０）          （３）
Ｐ１＝（ｘ０＋Ｎ×ｗ，ｙ０）          Ｔ１＝（Ｎ×ｗ，０）      （４）
Ｐ２＝（ｘ０＋Ｎ×ｗ，ｙ０＋Ｍ×ｈ）  Ｔ２＝（Ｎ×ｗ，Ｍ×ｈ）  （５）
Ｐ３＝（ｘ０，ｙ０＋Ｍ×ｈ）          Ｔ３＝（０，Ｍ×ｈ）      （６）
【００２５】
図４は、図２に示されている文字アトラスを用い、図３に示されている文字列ＩＤ画像１４１の２行６列の文字列を座標（ｘ０，ｙ０）に描画する場合のポリゴン情報を表す概略図である。図４に示されているＶ０〜Ｖ３は、各頂点情報を識別するための頂点ＩＤである。
【００２６】
図１に戻り、第２の処理部１３０は、文字を描画する描画処理を実行する描画処理部である。
例えば、第２の処理部１３０は、出力画像において、文字列が描画されるエリアであるポリゴンエリアに含まれる全てのピクセルを特定する。また、第２の処理部１３０は、ポリゴンエリアに含まれる全てのピクセルに、ポリゴンエリア内における相対的な位置を示すラスタライズテクスチャ座標を割り当てる。
そして、第２の処理部１３０は、ポリゴンエリアに含まれる全てのピクセルに含まれる１つのピクセルについて、その１つのピクセルに割り当てられたラスタライズテクスチャ座標を特定し、文字列ＩＤ画像において、特定されたラスタライズテクスチャ座標に対応する識別子部分画像を特定する。さらに、第２の処理部１３０は、文字アトラスにおいて、特定された識別子部分画像に対応する対象部分画像を特定し、特定された対象部分画像において、特定されたラスタライズテクスチャ座標から、その１つのピクセルに対応するピクセルである対応ピクセルの色値を特定する。次に、第２の処理部１３０は、特定された色値を用いて、出力画像における、その１つのピクセルの色値を変える。第２の処理部１３０は、以上の処理を、特定されたピクセルの全てで行うことで、ポリゴンエリアに文字列を描画する。
【００２７】
第２の処理部１３０は、頂点処理部１３１と、ラスタライズ部１３２と、ピクセル処理部１３３と、出力部１３４とを備える。
【００２８】
頂点処理部１３１は、ポリゴン生成部１１４から与えられたポリゴン情報に含まれている頂点情報を構成する位置座標Ｐｎを、出力画像上のピクセル座標に対応するピクセル位置座標ＰＰｎに変換することで、ピクセル位置座標ＰＰｎ及びテクスチャ座標Ｔｎからなるピクセルポリゴン情報を、ラスタライズ部１３２に与える。
ここで、ポリゴン情報に含まれている頂点情報は、ピクセルポリゴン情報におけるピクセル頂点情報に対応し、頂点ＩＤＶ０〜Ｖ３は、ピクセル頂点ＩＤＰＶ０〜ＰＶ３に変換されるものとする。
【００２９】
頂点処理部１３１での処理は、一般的なＧＰＵを用いた描画処理と同様であり、ここでは、与えられたポリゴン情報の頂点座標が予め出力画像上のピクセル座標として生成されているものとして説明する。このため、頂点処理部１３１は、ポリゴン情報をそのままピクセルポリゴン情報として、ラスタライズ部１３２に与える。
【００３０】
ラスタライズ部１３２は、出力画像において、ピクセルポリゴン情報のピクセル位置座標で囲まれる矩形内にあるピクセルのピクセル座標を特定し、特定されたピクセル座標をピクセルポリゴン情報で補間することで、ラスタライズ情報Ｖ’を生成する。例えば、ラスタライズ部１３２は、ピクセルポリゴン情報に含まれているピクセル位置座標ＰＰｎ及びテクスチャ座標Ｔｎ以外の座標については、ピクセルポリゴン情報のピクセル位置座標ＰＰｎ及びテクスチャ座標Ｔｎを用いて補間することで、全てのピクセルに座標を割り当てることができる。
【００３１】
例えば、図５に示されているように、出力画像において、ピクセル頂点ＩＤＰＶ０〜ＰＶ３で示されているピクセル頂点情報に囲まれている矩形内のピクセルに対応するピクセル頂点ＩＤＰＶｉ’のピクセル頂点情報は、下記の（７）式〜（９）式により、補間することができる。
ＰＶ０３＝ａ×ＰＶ３＋（１−ａ）×ＰＶ０                          （７）
ＰＶ１４＝ｂ×ＰＶ４＋（１−ｂ）×ＰＶ１                          （８）
ＰＶｉ’＝ｃ×ＰＶ１４＋（１−ｃ）×ＰＶ０３                      （９）
但し、ｉは、出力画像におけるピクセル頂点情報で囲まれている矩形内のピクセルを示す識別番号であり、ａ及び（１−ａ）は、ピクセル頂点ＩＤＰＶ０及びピクセル頂点ＩＤＰＶ３に対応する線分の内分比である。ｂ及び（１−ｂ）は、ピクセル頂点ＩＤＰＶ１及びピクセル頂点ＩＤＰＶ４に対応する線分の内分比である。ｃ及び（１−ｃ）は、ピクセル頂点ＩＤＰＶ０３及びピクセル頂点ＩＤＰＶ１４に対応する線分の内分比である。
【００３２】
以上のようにして、ラスタライズ部１３２は、出力画像における、ピクセルポリゴン情報のピクセル位置座標ＰＰｎで囲まれる矩形内にある全てのピクセルに、ラスタライズ位置座標Ｐ’＝（ｘ’，ｙ’）を割り当てることができ、さらに、テクスチャ座標Ｔｎで囲まれる矩形内にある全てのピクセルに、ラスタライズテクスチャ座標Ｔ’＝（ｕ’，ｖ’）を割り当てることができる。そして、ラスタライズ部１３２は、ラスタライズ位置座標Ｐ’＝（ｘ’，ｙ’）と、ラスタライズテクスチャ座標Ｔ’＝（ｕ’，ｖ’）とを有するラスタライズ情報Ｖ’を生成する。
【００３３】
図１に戻り、ピクセル処理部１３３は、第２の記憶部１４０に格納された文字アトラスと文字列ＩＤ画像とを用いて、ラスタライズ部１３２により特定された各ピクセルの色値を算出することで、出力画像を第２の記憶部１４０に生成する。
【００３４】
具体的には、ピクセル処理部１３３は、下記の（１０）式で、ラスタライズテクスチャ座標Ｔ’から、取得テクスチャ座標Ｔ’’を算出する。
Ｔ’’＝（ｕ’／ｗ，ｖ’／ｈ）                              （１０）
【００３５】
次に、ピクセル処理部１３３は、第２の記憶部１４０に記憶されている文字列ＩＤ画像から、取得テクスチャ座標Ｔ’’で示される行及び列に対応する識別子部分画像から文字列ＩＤ＝ｎを取得する。ここで、「ｕ’／ｗ」が列を示し、「ｖ’／ｈ」が行を示す。
【００３６】
さらに、ピクセル処理部１３３は、取得されたｎを用いて、下記の（１１）式で、対応テクスチャ座標Ｔ’’’を算出する。
Ｔ’’’＝（（ｎ％ｐ）×ｗ＋ｕ’％ｗ，（ｎ／ｑ）×ｈ＋ｖ’％ｈ）
（１１）
【００３７】
ここで、（１１）式では、「（ｎ％ｐ）×ｗ」及び「（ｎ／ｑ）×ｈ」で、文字列ＩＤ＝ｎで示される文字の対象部分画像の位置が示される。また、「ｕ’％ｗ」及び「ｖ’％ｈ」により、その対象部分画像内における、ラスタライズ位置座標Ｐ’に対応する相対的な位置が特定され、その位置にあるピクセルを対応ピクセルとして特定することができる。従って、対応テクスチャ座標Ｔ’’’により、出力画像における１つのピクセルであるラスタライズ位置座標Ｐ’に対応する、文字アトラス内のピクセルを特定することができる。
【００３８】
そして、ピクセル処理部１３３は、文字アトラスから対応テクスチャ座標Ｔ’’’で示されるピクセルの色値を取得して、出力画像内の、対応するラスタライズ位置座標Ｐ’のピクセルの色値を取得された色値で上書きする。
【００３９】
例えば、ラスタライズ情報Ｖ’が、ラスタライズ位置座標Ｐ’＝（ｘ０＋１０，ｙ０＋２）及びラスタライズテクスチャ座標Ｔ’＝（１０，２）である場合、図３に示されている文字列ＩＤ画像では、上記の（１０）式から、取得テクスチャ座標Ｔ’’＝（１０／８，２／８）＝（１，０）から、行＝０及び列＝１を特定し、ｎ＝５１を取得することができる。
【００４０】
次に、ピクセル処理部１３３は、上記の（１１）式から、対応テクスチャ座標Ｔ’’’＝（（５１％８）×８＋１０％８，（５１／８）×８＋２％８）＝（２６，５０）となる。このため、ピクセル処理部１３３は、文字アトラスから、対応テクスチャ座標Ｔ’’’＝（２６，５０）の色値を取得して、出力画像のラスタライズ位置座標Ｐ’＝（ｘ０＋１０，ｙ０＋２）の位置の色値を取得された色値で上書きする。
以上のようにして、ピクセル処理部１３３は、ラスタライズ情報Ｖ’に含まれている全てのラスタライズ位置座標Ｐ’及びラスタライズテクスチャ座標Ｔ’について、以上のような処理を行うことで、出力画像を生成することができる。
【００４１】
図１に示されている出力部１３４は、第２の記憶部１４０に記憶されている出力画像を、表示部１５０に出力する。
表示部１５０は、出力画像を表示する。
【００４２】
図６は、実施の形態に係る画像描画装置１００のハードウェア構成を示すブロック図である。
画像描画装置１００を構成するハードウェアは、第１の計算装置１６０と、第２の計算装置１６１と、第１の記憶装置１６２と、第２の記憶装置１６３と、表示装置１６４とを備えるコンピュータである。
【００４３】
第１の計算装置１６０は、例えば、ＣＰＵである。第１の計算装置１６０は、例えば、図示されていないＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の記憶装置に記憶されているプログラムを読み出して実行することで、図１に示されている第１の処理部１１０として機能する。なお、このようなプログラムは、ネットワークを通じて提供されてもよく、また、記録媒体に記録されて提供されてもよい。即ち、このようなプログラムは、例えば、プログラムプロダクトとして提供されてもよい。
【００４４】
第２の計算装置１６１は、例えば、ＧＰＵである。第２の計算装置１６１は、図１に示されている第２の処理部１３０として機能する。なお、ピクセル処理部１３３の処理は、通常、ＧＰＵのピクセルシェーダ又はフラグメントシェーダとして実装される。
【００４５】
第１の記憶装置１６２は、例えば、メインメモリとして用いられる揮発性メモリである。第１の記憶装置１６２は、図１に示されている第１の記憶部１２０として機能する。
第２の記憶装置１６３は、例えば、ＶＲＡＭ（Ｖｉｄｅｏ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）として用いられる揮発性メモリである。第２の記憶装置１６３は、図１に示されている第２の記憶部１４０として機能する。
表示装置１６４は、例えば、モニタである。表示装置１６４は、図１に示されている表示部１５０として機能する。
【００４６】
図７は、画像描画装置１００での描画動作を示すフローチャートである。
ここでは、既に、アプリケーション実行部１１１は、アプリケーションの実行時に使用する全ての文字の一覧を示す文字一覧情報を、文字アトラス生成部１１２に与え、文字アトラス生成部１１２は、文字一覧情報に対応する文字アトラスを生成して、第２の記憶部１４０に転送しているものとする。
【００４７】
まず、アプリケーション実行部１１１は、描画時に、描画する文字列と、その表示位置とを示す描画情報を、文字列ＩＤ画像生成部１１３に与え、文字列ＩＤ画像生成部１１３は、描画情報で示される文字列に含まれている各文字のコードをＩＤに変換し、変換されたＩＤを示す画像である文字列ＩＤ画像を生成する（Ｓ１０）。生成された文字列ＩＤ画像は、第２の記憶部１４０に記憶され、また、ポリゴン生成部１１４に与えられる。
【００４８】
ポリゴン生成部１１４は、文字列ＩＤ画像に基づいて、アプリケーション実行部１１１が指定した表示位置に、文字列を包含するサイズの矩形を構成するポリゴン情報を生成する（Ｓ１１）。生成されたポリゴン情報は、頂点処理部１３１に与えられる。
【００４９】
頂点処理部１３１は、ポリゴン生成部１１４から与えられたポリゴン情報に含まれている頂点情報を構成する位置座標Ｐｎを、出力画像上のピクセル座標に対応するピクセル位置座標ＰＰｎに変換することで、ピクセル位置座標ＰＰｎ及びテクスチャ座標Ｔｎからなるピクセルポリゴン情報を生成する（Ｓ１２）。生成されたピクセルポリゴン情報は、ラスタライズ部１３２に与えられる。
【００５０】
ラスタライズ部１３２は、出力画像において、ピクセルポリゴン情報のピクセル位置座標で囲まれる矩形内にあるピクセルのピクセル座標を特定し、特定されたピクセル座標におけるピクセル位置座標及びピクセルテクスチャ座標を、ピクセルポリゴン情報で補間することで、ラスタライズ情報Ｖ’を生成する（Ｓ１３）。
【００５１】
ピクセル処理部１３３は、第２の記憶部１４０に格納された文字アトラスと文字列ＩＤ画像とを用いて、ラスタライズ部１３２で生成されたラスタライズ情報Ｖ’に従って、出力画像を第２の記憶部１４０に生成する（Ｓ１４）。
【００５２】
そして、出力部１３４は、第２の記憶部１４０に記憶されている出力画像を、表示部１５０に出力し、表示部１５０は、出力画像を表示する（Ｓ１５）。
【００５３】
以上のように、本実施の形態によれば、文字列を描画する場合でも、少ない処理負荷で描画を行うことができる。このため、文字列が変化する場合でも、少ない処理負荷で描画を行うことができる。
【００５４】
以上に記載された実施の形態では、文字アトラスに格納する文字サイズと、描画する文字サイズが同じとして説明したが、ピクセル処理部１３３は、描画時に、適宜、文字を拡大又は縮小してもよい。
【００５５】
以上に記載された実施の形態では、ピクセル処理部１３３は、文字アトラスから取得した色値をそのまま出力画像に上書きしたが、本実施の形態は、以上のような例に限定されない。例えば、文字アトラスにはグレースケールの色値を格納し、別途アプリケーションから与えた色値と組み合わせることで、任意の色の文字を描画してもよい。
【００５６】
例えば、ピクセル処理部１３３は、グレースケールにおける０〜２５５の値を０〜１．０の値に変換して、変換された値を予め定められたＲＧＢ値に掛け合わせることで、出力画像の色値としてもよい。
また、グレースケールの０〜２５５の値のそれぞれに、特定の色の画素値が予め割り当てられていて、ピクセル処理部１３３は、文字アトラスから読み取られたグレースケールの値に対応する画素値の色を用いて出力画像の色値としてもよい。
【００５７】
また、アプリケーション実行部１１１が背景色も指定し、ピクセル処理部１３３が文字列の矩形範囲内にその背景色を付けてもよい。例えば、ピクセル処理部１３３は、文字アトラスから取得した色値が文字列を描画する色値（例えば、黒等）である場合には、その色値を出力画像の色値とし、文字アトラスから取得した色値が文字列を描画する色値ではない場合には、指定された背景色の色値とすればよい。
なお、文字をグレースケールで描画する場合、ピクセル処理部１３３は、０と２５５以外の色の部分については、背景色と文字色とを組み合わせてもよい。
【００５８】
さらに、文字列ＩＤ画像と同じピクセル数の画像を生成し、それぞれに異なる色を格納しておくことで、ピクセル処理部１３３は、文字列ＩＤ画像の値を取得する際に、その異なる色を取得し、文字ごとに異なる色で描画してもよい。
例えば、文字列ＩＤ画像生成部１１３は、複数の識別子部分画像の各々に対応する位置に、その複数の識別子部分画像の各々に表されているＩＤで識別される文字を描画するために用いられる色の色値である文字色値を示す文字色識別画像をさらに生成して、第２の記憶部１４０に記憶する。そして、第２の処理部１３０は、文字色識別画像において、文字列ＩＤ画像において特定されたＩＤを表す識別子部分画像に対応する位置から文字色値を特定し、特定された文字色値を用いて、出力画像のピクセルの色値を変えればよい。
【００５９】
また、背景色についても同様に、ピクセル処理部１３３は、文字列画像ＩＤと同じピクセル数の画像を生成して利用し、文字毎に異なる背景色で描画してもよい。
例えば、文字列ＩＤ画像生成部１１３は、複数の識別子部分画像の各々に対応する位置に、その複数の識別子部分画像の各々に表されているＩＤで識別される文字の背景を描画するために用いられる色の色値である背景色値を示す背景色識別画像をさらに生成して、第２の記憶部１４０に記憶する。そして、第２の処理部１３０は、背景色識別画像において、文字列ＩＤ画像において特定されたＩＤを表す識別子部分画像に対応する位置から背景色値を特定する。さらに、第２の処理部１３０は、文字アトラスから特定された色値が文字列を描画する色値である場合には、その色値を用いて出力画像の色値を変え、文字アトラスから特定された色値が文字列を描画する色値とは異なる場合には、その背景色値を用いて出力画像の色値を変えてもよい。
【符号の説明】
【００６０】
１００  画像描画装置、  １１０  第１の処理部、  １１１  アプリケーション実行部、  １１２  文字アトラス生成部、  １１３  文字列ＩＤ画像生成部、  １１４  ポリゴン生成部、  １２０  第１の記憶部、  １３０  第２の処理部、  １３１  頂点処理部、  １３２  ラスタライズ部、  １３３  ピクセル処理部、  １３４  出力部、  １４０  第２の記憶部、  １５０  表示部。
【図１】
0006861910.tif 000002
【図２】
0006861910.tif 000003
【図３】
0006861910.tif 000004
【図４】
0006861910.tif 000005
【図５】
0006861910.tif 000006
【図６】
0006861910.tif 000007
【図７】
0006861910.tif 000008