説明

画像描画装置、画像描画方法、及びプログラム

【課題】テクスチャマッピング処理において、テクスチャキャッシュのミスヒットの低減により、メモリアクセス回数を削減し得る、画像描画装置、画像描画方法、及びプログラムを提供する。
【解決手段】画像描画装置1は、複数のテクスチャブロックの中から、設定数のテクスチャブロックを読み込むテクスチャキャッシュ6と、画素毎にテクスチャブロックをテクスチャキャッシュ6から取得し、このテクスチャブロックを用いたフィルタリング処理を行うテクスチャ処理部4と、フィルタリング結果を保存するピクセルキャッシュ7とを備える。テクスチャ処理部4は、処理対象の画素に対応するテクスチャブロックをテクスチャキャッシュ6から取得できない場合に、取得可能なテクスチャブロックを用いたフィルタリング処理が必要な画素を特定し、これに対して先にフィルタリング処理を実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像、特に3次元画像を表示する、画像描画装置、画像描画方法、及びプログラムに関する。
【背景技術】
【0002】
近年、種々の分野で、3次元画像処理が利用されており、パーソナルコンピュータのみならず、携帯電話、スマートフォンといった携帯端末でも、3次元画像処理を実行することが求められている。また、パーソナルコンピュータなどは、通常、ハードウェアまたはソフトウェアによって構築された画像描画装置を備えており、3次元画像処理は、この画像描画装置によって実行される。
【0003】
3次元画像処理は、モデリングによって得られた3次元仮想世界を2次元スクリーンに描画する処理であり、レンダリングと呼ばれる。また、3次元画像処理は、視点及び光源の設定処理、座標変換処理、クリッピング処理、透視投影変換処理、隠面消去処理、シェーディング処理、シャドーイング処理、テクスチャマッピング処理などで構成される。
【0004】
このうち、テクスチャマッピング処理は、物体の質感をよりリアルに表現するために、テクスチャマップと呼ばれる2次元画像を3次元物体の表面に貼り付ける処理である。テクスチャマッピング処理は、負荷が大きく、且つ、時間がかかる処理であることから、従来から、処理時間の短縮化を図るための技術が提案されている(例えば、特許文献1参照。)。
【0005】
具体的には、特許文献1は、テクスチャキャッシュ制御において、先出しバッファ制御を行うことによって、キャッシュからのテクスチャデータの読み出し時にミスヒットが生じた場合のメモリリードレイテンシーの短縮化を図る技術を開示している。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特表2002−504251号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
ところで、画像描画装置においては、メモリアクセスが性能のボトルネックとなる事が多く、特にテクスチャ処理では、テクスチャを貼り付ける場合の角度や拡大率によりキャッシュヒット率が大きく変動する傾向にあり、画像描画装置の性能を低下させている。以下に、具体的に説明する。
【0008】
まず、画素が生成されると、その画素に対応するテクスチャ座標から、テクスチャデータがブロック単位で読み込まれ、テクスチャキャッシュに格納される。そして、テクスチャキャッシュの更新が必要となったとき、テクスチャキャッシュ容量は有限であるため、格納されているテクスチャキャッシュは破壊される。
【0009】
しかしながら、更新により破棄されるテクスチャデータについて、後の画素処理で必要になるケースがある。この場合、破棄されたテクスチャデータの読み込みを再度行う必要があり、結果、メモリアクセス回数が増大し、性能低下が生じてしまう。また、特許文献1に開示された技術を用いた場合であっても、メモリアクセス回数を少なくすることはできないため、性能低下の抑制は困難である。
【0010】
本発明の目的の一例は、上記問題を解消し、テクスチャマッピング処理において、テクスチャキャッシュのミスヒットの低減により、メモリアクセス回数を削減し得る、画像描画装置、画像描画方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0011】
上記目的を達成するため、本発明の一側面における画像描画装置は、テクスチャマッピング処理を行う画像描画装置であって、
マッピング対象となるテクスチャデータを分割して得られた複数のテクスチャブロックの中から、設定された数のテクスチャブロックを、読み込んで保存する、テクスチャキャッシュと、
描画対象となる画素毎に、対応するテクスチャブロックを前記テクスチャキャッシュから取得し、当該画素に対して、取得したテクスチャブロックを用いたフィルタリング処理を行う、テクスチャ処理部と、
前記画素毎に、前記フィルタリング処理の結果を保存する、ピクセルキャッシュと、
を備え、
前記テクスチャ処理部は、前記フィルタリング処理の対象となった画素に対応するテクスチャブロックを前記テクスチャキャッシュから取得できない場合に、前記テクスチャキャッシュから取得可能なテクスチャブロックを用いた前記フィルタリング処理を必要とする画素を特定し、特定した画素に対して、先に前記フィルタリング処理を実行する、
ことを特徴とする。
【0012】
また、上記目的を達成するため、本発明の一側面における画像描画方法は、テクスチャマッピング処理を行うための画像描画方法であって、
(a)マッピング対象となるテクスチャデータを分割して得られた複数のテクスチャブロックの中から、設定された数のテクスチャブロックを、テクスチャキャッシュに読み込んで保存する、ステップと、
(b)描画対象となる画素毎に、対応するテクスチャブロックを前記テクスチャキャッシュから取得し、当該画素に対して、取得したテクスチャブロックを用いたフィルタリング処理を行う、ステップと、
(c)前記画素毎に、前記フィルタリング処理の結果を、ピクセルキャッシュに保存する、ステップと、
(d)前記(a)のステップにおいて、前記フィルタリング処理の対象となった画素に対応するテクスチャブロックを前記テクスチャキャッシュから取得できない場合に、前記テクスチャキャッシュから取得可能なテクスチャブロックを用いた前記フィルタリング処理を必要とする画素を特定する、ステップと、
(e)前記(d)のステップで特定した画素に対して、先に前記フィルタリング処理を実行する、ステップと、
を有することを特徴とする。
【0013】
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、コンピュータによって、テクスチャマッピング処理を行うためのプログラムであって、
前記コンピュータに、
(a)マッピング対象となるテクスチャデータを分割して得られた複数のテクスチャブロックの中から、設定された数のテクスチャブロックを、テクスチャキャッシュに読み込んで保存する、ステップと、
(b)描画対象となる画素毎に、対応するテクスチャブロックを前記テクスチャキャッシュから取得し、当該画素に対して、取得したテクスチャブロックを用いたフィルタリング処理を行う、ステップと、
(c)前記画素毎に、前記フィルタリング処理の結果を、ピクセルキャッシュに保存する、ステップと、
(d)前記(a)のステップにおいて、前記フィルタリング処理の対象となった画素に対応するテクスチャブロックを前記テクスチャキャッシュから取得できない場合に、前記テクスチャキャッシュから取得可能なテクスチャブロックを用いた前記フィルタリング処理を必要とする画素を特定する、ステップと、
(e)前記(d)のステップで特定した画素に対して、先に前記フィルタリング処理を実行する、ステップと、
を実行させることを特徴とする。
【発明の効果】
【0014】
以上のように、本発明における、画像描画装置、画像描画方法、及びプログラムによれば、テクスチャマッピング処理において、テクスチャキャッシュのミスヒットの低減により、メモリアクセス回数を削減することができる。
【図面の簡単な説明】
【0015】
【図1】図1は、本発明の実施の形態における画像描画装置の構成を示すブロック図である。
【図2】図2は、本発明の実施の形態における画像描画装置の動作を示すフロー図である。
【図3】図3は、本発明の実施の形態における画像処理装置の動作を説明するための説明図である。
【図4】図4は、本発明の実施の形態における画像描画装置の他の例の構成を示すブロック図である。
【発明を実施するための形態】
【0016】
(実施の形態)
以下、本発明の実施の形態における、画像描画装置、画像描画方法、及びプログラムについて、図1〜図3を参照しながら説明する。
【0017】
[装置構成]
最初に、本実施の形態における画像描画装置の構成について図1を用いて説明する。図1は、本発明の実施の形態における画像描画装置の構成を示すブロック図である。
【0018】
図1に示すように、本実施の形態における画像描画装置1は、画像表示機能を備える機器20の一部を構成する。また、機器20は、画像描画装置1の他に、テクスチャメモリ10、画像メモリ11、及びCPU(Central Processing Unit)12を備えている。本実施の形態において、機器20の具体例としては、パーソナルコンピュータ、携帯電話、スマートフォン、等が挙げられる。
【0019】
CPU12は、機器20における処理に応じて、画像描画装置1に、テクスチャマッピング処理を実行させるためのコマンドを出力する。画像描画装置1は、コマンドを受け取ると、テクスチャメモリ10に格納されているテクスチャ(模様)データ13を用いて、テクスチャマッピング処理を実行し、それによって得られた画像データを画像メモリ11に出力する。
【0020】
テクスチャメモリ10は、マッピング対象となるテクスチャ(模様)データ13を格納している。但し、テクスチャデータ13は、複数個のテクスチャブロックに分割されている。また、画像メモリ11に格納されている画像データが、表示装置(図1において図示せず)に出力さると、表示装置の画面上に画像が表示される。
【0021】
図1に示すように、画像描画装置1は、コマンド処理部2と、画素生成部3と、テクスチャ処理部4と、描画処理部5と、テクスチャキャッシュ6と、ピクセルキャッシュ7とを備えている。
【0022】
コマンド処理部2は、CPU12が出力する描画のためのコマンドを受け取り、描画に必要なテクスチャの頂点座標、テクスチャパラメータ、色パラメータ等を生成し、生成した情報を画素生成部3に出力する。
【0023】
画素生成部3は、コマンド処理部2が出力した情報に基づいて、画素を生成するための情報、即ち、画素の座標、色値、対応するテクスチャブロックの識別子などを含む、画素情報を生成し、これをテクスチャ処理部4に出力する。
【0024】
テクスチャキャッシュ6は、テクスチャデータ13を構成する複数のテクスチャブロックの中から、設定された数のテクスチャブロックを読み込んで保存する。本実施の形態では、テクスチャキャッシュ6が保存できるテクスチャブロックの数は2つである。
【0025】
図1の例では、12個のテクスチャブロックが図示されているが、本実施の形態においてテクスチャブロックの数は特に限定されるものではない。また、図1においては、テクスチャキャッシュ6に保存されているテクスチャブロックをそれぞれ「ブロックA」、「ブロックB」とする。
【0026】
テクスチャ処理部4は、画素生成部3からの情報に基づき、原則として、描画対象となる画素毎に、対応するテクスチャブロックをテクスチャキャッシュ6から取得し、当該画素に対して、取得したテクスチャブロックを用いたフィルタリング処理を実行する。具体的には、テクスチャ処理部4は、フィルタリング処理として、当該画素を描画するために必要な色値を算出する。
【0027】
ピクセルキャッシュ7は、画素毎に、フィルタリング処理の結果、即ち、管理情報と色情報とを保存する。管理情報は、対応する画素についてフィルタリング処理が終了しているかどうかを示す情報である。色情報は、算出された色値を特定する情報である。
【0028】
ところで、フィルタリング処理においては、その対象となった画素に対応するテクスチャブロックをテクスチャキャッシュ6から取得できない場合、即ち、ミスヒットが発生する場合がある。従来からの画像描画装置であれば、ミスヒットが発生すると、テクスチャキャッシュ6は、現在保持しているテクスチャブロックを破棄し、代わりに、テクスチャメモリ10から、対応するテクスチャブロックの読み込みを実行する。
【0029】
これに対して、画像描画装置1では、テクスチャ処理部4は、テクスチャキャッシュ6が現在保持しているテクスチャブロックを破棄する前に、このテクスチャブロックを用いたフィルタリング処理を必要とする画素を特定する。そして、テクスチャ処理部4は、フィルタリング処理の対象となっている画素の代わりに、特定した画素に対して、先にフィルタリング処理を実行する。
【0030】
このように、画像描画装置1では、テクスチャキャッシュが更新されてしまう前に、更新前のデータで実行可能な処理が先に実行される。このため、画像描画装置1によれば、テクスチャマッピング処理において、テクスチャキャッシュのミスヒットが低減され、結果、メモリアクセス回数を削減することができる。
【0031】
また、本実施の形態では、テクスチャ処理部4は、ミスヒット発生時に特定した画素が、テクスチャキャッシュ6から取得可能なテクスチャブロック以外のテクスチャブロックを用いたフィルタリング処理を、更に必要とするかどうかも判定する。
【0032】
そして、判定の結果、必要とする場合は、テクスチャ処理部4は、まず、特定した画素に対して、テクスチャキャッシュ6から取得可能なテクスチャブロックを用いたフィルタリング処理を実行する。その後、テクスチャ処理部4は、特定した画素の色情報として、色値の中間データを書き込む。また、テクスチャ処理部4は、特定した画素についてのピクセルキャッシュ6の管理情報に、当該画素のフィルタリング処理が未終了であること、即ち、色値が中間データであることを示す情報を書き込む。なお、以降の説明では、管理情報として色値が中間データであることを示す情報が書き込まれた画素を、「処理途中画素」とする。
【0033】
更に、テクスチャ処理部4は、テクスチャキャッシュ6が、保存しているテクスチャブロックを更新すると、まず、処理途中画素を特定する。次に、テクスチャ処理部4は、処理途中画素について、更新後のテクスチャブロックを用いたフィルタリング処理が必要かどうかを判定する。そして、テクスチャ処理部4は、フィルタリング処理が必要であると判定した場合、処理途中画素に対して、更新後のテクスチャブロックを用いたフィルタリング処理を実行する。
【0034】
この後、テクスチャ処理部4は、処理途中画素の管理情報および色情報を更新する。これにより、処理途中画素に対する、フィルタリング処理は完了する。そして、全ての画素に対するフィルタリング処理が完了すると、描画処理部5は、ピクセルキャッシュに格納されている情報を用いて、画像データを生成し、これを画像メモリ11に格納する。
【0035】
[装置動作]
次に、本発明の実施の形態における画像描画装置1の動作について図2を用いて説明する。図2は、本発明の実施の形態における画像描画装置の動作を示すフロー図である。以下の説明においては、適宜図1を参酌する。また、本実施の形態では、画像描画装置1を動作させることによって、画像描画方法が実施される。よって、本実施の形態における画像描画方法の説明は、以下の画像描画装置1の動作説明に代える。
【0036】
図2に示すように、まず、コマンド処理部2が、CPU12が出力する描画のためのコマンドを受け取り、描画に必要なテクスチャの頂点座標、テクスチャパラメータ、色パラメータ等を生成し、生成した情報を画素生成部3に出力する(ステップA1)。
【0037】
次に、画素生成部3は、コマンド処理部2が出力した情報に基づいて、画素を生成するための情報、即ち、画素の座標、色値、対応するテクスチャブロックの識別子などを含む、画素情報を生成し、これをテクスチャ処理部4に出力する(ステップA2)。
【0038】
次に、テクスチャ処理部4は、処理対象となる画素(以下「生成画素」とする。)の番号を示すパラメータnの値を初期値(0:ゼロ)に設定する(ステップA3)。続いて、テクスチャ処理部4は、n番目の生成画素(以下「生成画素(n)」とする。)のフィルタリング処理を実行するために必要なテクスチャブロックは全てテクスチャキャッシュ6に保持されているかどうかを判定する(ステップA4)。
【0039】
なお、テクスチャ処理部4は、テクスチャキャッシュ6がテクスチャブロックを一切保持していない場合は、テクスチャキャッシュ6に対して、生成画素(n)のフィルタリング処理に必要となるテクスチャブロックをテクスチャメモリ10から読み込ませる。
【0040】
ステップA4の判定の結果、必要なテクスチャブロックは全てテクスチャキャッシュ6に保持されている場合は、テクスチャ処理部4は、生成画素(n)に対して、フィルタリング処理を実行する(ステップA5)。また、テクスチャ処理部4は、ピクセルキャッシュに、算出した色値を書き込むと共に、管理情報として、全てのフィルタリング処理が終了していることを示す情報も書き込む。
【0041】
一方、ステップA4の判定の結果、必要なテクスチャブロックは全てテクスチャキャッシュ6に保持されていない場合は、テクスチャ処理部4は、生成画素(n)のフィルタリング処理を実行するために必要なテクスチャブロックの一部がテクスチャキャッシュ6に保持されているかどうかを判定する(ステップA9)。
【0042】
ステップA9の判定の結果、必要なテクスチャブロックの一部がテクスチャキャッシュ6に保持されている場合は、テクスチャ処理部4は、生成画素(n)に対して、ステップA5を実行する。但し、この場合のステップA5では、テクスチャ処理部4は、保持されているテクスチャブロックのみを用いて、フィルタリング処理を実行する。また、この場合、テクスチャ処理部4は、ピクセルキャッシュに、生成画素(n)の色情報として、色値の中間データを書き込み、更に、管理情報として、色値が中間データであることを示す情報を書き込む。
【0043】
一方、ステップA9の判定の結果、必要なテクスチャブロックの一部がテクスチャキャッシュ6に保持されていない場合は、テクスチャ処理部4は、ステップA7を実行する。ステップA7については後述する。
【0044】
次に、ステップA5が実行された場合は、テクスチャ処理部4は、現在テクスチャキャッシュ6に保持されているテクスチャブロックを用いて、フィルタリング処理を実行できる生成画素が他に存在しているかどうかを判定する(ステップA6)。このとき、テクスチャ処理部4は、フィルタリング処理が全く行われていない画素だけでなく、処理途中画素も対象として判定を行う。
【0045】
ステップA6の判定の結果、他に生成画素が存在している場合は、テクスチャ処理部4は、再度ステップA5を実行する。また、この場合のステップA5も、ステップA9の判定後と同様に、必要なテクスチャブロックの一部のみがテクスチャキャッシュ6に保持されている生成画素に対しては、このテクスチャブロックのみを用いたフィルタリング処理を実行する。ステップA6およびその後に実行されるステップA5により、現在テクスチャキャッシュ6に保持されているテクスチャブロックが必要となるフィルタリング処理は、全て終了することになる。
【0046】
一方、ステップA6の判定の結果、生成画素が存在していない場合は、テクスチャ処理部4は、ステップA7を実行する。
【0047】
ステップA7では、テクスチャ処理部4は、全ての生成画素についてフィルタリング処理が終了しているかどうかを判定する。具体的には、nの値が最終であるかどうかを判定する。
【0048】
ステップA7での判定の結果、全ての生成画素についてフィルタリング処理が終了していない場合は、テクスチャ処理部4は、nをインクリメントし(ステップA10)、更に、テクスチャキャッシュ6を更新し(ステップA11)、その後、再度ステップA4を実行する。
【0049】
一方、ステップA7での判定の結果、全ての生成画素についてフィルタリング処理が終了している場合は、描画処理部5が、ピクセルキャッシュに格納されている情報を用いて、画像データを生成し、これを画像メモリ11に格納する(ステップA8)。以上により、画像描画装置1における処理は終了する。
【0050】
ここで、図3を用いて、図2に示した処理の具体例を説明する。図3は、本発明の実施の形態における画像処理装置の動作を説明するための説明図であり、生成画素とテクスチャブロックとの関係を示している。
【0051】
図3に示すように、生成画素(0)を対象とするフィルタリング処理では、テクスチャブロックT0のデータが必要になるので、テクスチャ処理部4は、テクスチャキャッシュ6のブロックAにテクスチャブロックT0のデータを読み込ませる。そして、テクスチャ処理部4は、テクスチャブロックT0を用いてフィルタリング処理を行う。
【0052】
次に、生成画素(1)及び生成画素(2)のフィルタリング処理には、テクスチャブロックT0のデータが必要である。既にテクスチャキャッシュ6のブロックAにテクスチャブロックT0のデータが格納されているため、テクスチャ処理部4は、それを用いて、生成画素(1)及び生成画素(2)のフィルタリング処理を行う。
【0053】
次に、生成画素(3)のフィルタリング処理では、新たにテクスチャブロックT1のデータが必要となるので、テクスチャ処理部4は、テクスチャキャッシュ6のブロックBにテクスチャブロックT1のデータを格納する。そして、テクスチャ処理部4は、生成画素(3)に対して、テクスチャブロックT0とテクスチャブロックT1とのデータを用いてフィルタリング処理を行う。生成画素(4)、(5)に対しては、生成画素(3)と同様にフィルタリング処理が行われる。
【0054】
その後、生成画素(6)では、フィルタリング処理に、テクスチャブロックT5のデータが必要となる。この場合、テクスチャキャッシュ6のブロックA及びBには、既にデータが格納されており、一方を破棄して新たにテクスチャブロックT5のデータを格納する必要がある。このため、テクスチャ処理部4は、生成画素(8)のフィルタリング処理において、テクスチャブロックT0のデータが必要となると判断し、テクスチャブロックT0を破棄する前に生成画素(8)のフィルタリング処理を前もって実行する。
【0055】
また、生成画素(8)に関しては、テクスチャブロックT0のデータのみでフィルタリング処理が完了する為、テクスチャ処理部4は、フィルタリング処理が完了した後、管理情報と色情報とをピクセルキャッシュ7に格納する。同様に、テクスチャ処理部4は、生成画素(9)、(10)、(11)、(16)、(17)に対しても、テクスチャブロックT0のデータを用いてフィルタリング処理を行い、管理情報と色情報とをピクセルキャッシュ7に格納する。
【0056】
次に、生成画素(18)のフィルタリング処理では、テクスチャブロックT0とテクスチャブロックT4のデータが必要であるが、テクスチャブロックT4のデータはテクスチャキャッシュ6に格納されていない。このため、テクスチャ処理部4は、テクスチャブロックT0のみを用いて、生成画素(18)に対するフィルタリング処理を実行する。そして、テクスチャ処理部4は、色値が中間データであることを示す管理情報と、フィルタリング途中の色情報とをピクセルキャッシュ7に格納する。
【0057】
また、テクスチャ処理部4は、生成画素(19)に対しても、生成画素(18)に対するフィルタリング処理と同様のフィルタリング処理を実行する。このような要領で、テクスチャブロックT0を使用する生成画素全てに対してフィルタリング処理を完了した後、テクスチャ処理部4は、テクスチャブロックT0のデータを破棄して、テクスチャキャッシュ6のブロックAにテクスチャブロックT5のデータを格納させる。
【0058】
また、テクスチャ処理部4は、生成画素(6)に対しては、テクスチャキャッシュ6を更新し、テクスチャブロックT1とテクスチャブロックT5のデータを格納させた後、フィルタリング処理を実行する。
【0059】
これらの処理により、図3に示された全ての生成画素(1)〜(31)に対して、フィルタリング処理が完了すると、描画処理部5は、ピクセルキャッシュ7から色情報を取得し、これに基づいて、画像データを生成し、これを画像メモリ11に格納させる。
【0060】
以上のように、本実施の形態では、テクスチャブロックを破棄する場合に、ピクセルキャッシュ上の未処理の画素について、破棄されるテクスチャブロックが必要かどうか判断される。そして必要な場合は、破棄対象となるテクスチャブロックを用いたフィルタリング処理が行われる。
【0061】
また、本実施の形態では、フィルタリングに複数のテクスチャブロックが必要となり、且つ、全てのテクスチャブロックがテクスチャキャッシュ6に保持されていない場合は、保持されているテクスチャブロックのみでフィルタリング処理が行われる。そして、不足しているテクスチャブロックについては、後でテクスチャキャッシュに登録された時点でフィルタリング処理に用いられ、その後、ピクセルキャッシュが更新される。
【0062】
このように、本実施の形態によれば、テクスチャデータに関して、キャッシュを破棄する場合に、後で必要となるデータを予め処理することができるため、キャッシュの更新頻度が少なくなり、画像描画装置においてメモリアクセスの低減及び性能向上が図られる。
【0063】
また、図3の例では、1領域を対象として、必要となるテクスチャブロックについての判断が行われているが、本実施の形態は、この例に限定されるものではない。本実施の形態では、複数の領域を対象として、テクスチャブロックについての判断が行われる態様であっても良い。なお、「1領域」とは、ピクセルキャッシュ7において、ひとまとまりで管理されている画素の集合を意味する。
【0064】
また、本実施の形態では、画像描画装置1は、コンピュータにプログラムをインストールすることによっても実現することができる。この態様について図4を用いて説明する。図4は、本発明の実施の形態における画像描画装置の他の例の構成を示すブロック図である。
【0065】
図4の例では、画像描画装置1は、コンピュータ30のオペレーティングシステム(OS)31上で動作するプログラムによって構築されている。また、プログラムとしては、コンピュータ30に、図2に示すステップA1〜A11を実行させるプログラムが挙げられる。そして、図4の例では、コンピュータ30のCPU(図4において図示せず)が、コマンド処理部2、画素生成部3、テクスチャ処理部4、及び描画処理部5として機能し、処理を行なう。また、コンピュータ30に備えられているメモリ32の記憶領域に、テクスチャメモリ10および画像メモリ11が構築される。更に、コンピュータ30に備えられているキャッシュメモリ33の記憶領域に、テクスチャキャッシュ6およびピクセルキャッシュ7が構築される。
【産業上の利用可能性】
【0066】
以上のように、本発明によれば、テクスチャマッピング処理において、テクスチャキャッシュのミスヒットの低減により、メモリアクセス回数を削減することができる。本発明は、テクスチャマッピング処理が実行される画像描画装置に有用である。
【符号の説明】
【0067】
1 画像描画装置
2 コマンド処理部
3 画素生成部
4 テクスチャ処理部
5 描画処理部
6 テクスチャキャッシュ
7 ピクセルキャッシュ
10 テクスチャメモリ
11 画像メモリ
12 CPU
13 テクスチャデータ
20 機器
30 コンピュータ
31 オペレーティングシステム
32 メモリ
33 キャッシュメモリ

【特許請求の範囲】
【請求項1】
テクスチャマッピング処理を行う画像描画装置であって、
マッピング対象となるテクスチャデータを分割して得られた複数のテクスチャブロックの中から、設定された数のテクスチャブロックを、読み込んで保存する、テクスチャキャッシュと、
描画対象となる画素毎に、対応するテクスチャブロックを前記テクスチャキャッシュから取得し、当該画素に対して、取得したテクスチャブロックを用いたフィルタリング処理を行う、テクスチャ処理部と、
前記画素毎に、前記フィルタリング処理の結果を保存する、ピクセルキャッシュと、
を備え、
前記テクスチャ処理部は、前記フィルタリング処理の対象となった画素に対応するテクスチャブロックを前記テクスチャキャッシュから取得できない場合に、前記テクスチャキャッシュから取得可能なテクスチャブロックを用いた前記フィルタリング処理を必要とする画素を特定し、特定した画素に対して、先に前記フィルタリング処理を実行する、
ことを特徴とする画像描画装置。
【請求項2】
前記テクスチャ処理部が、
前記特定した画素が、前記テクスチャキャッシュから取得可能なテクスチャブロック以外のテクスチャブロックを用いた前記フィルタリング処理を、更に必要とするかどうかを判定し、更に必要とする場合に、
前記特定した画素に対して、前記テクスチャキャッシュから取得可能なテクスチャブロックを用いた前記フィルタリング処理を行い、前記ピクセルキャッシュに、前記フィルタリング処理の結果として、前記フィルタリング処理が未終了であることを示す情報を書き込む、
請求項1に記載の画像描画装置。
【請求項3】
前記テクスチャ処理部が、
前記テクスチャキャッシュが、保存しているテクスチャブロックを更新した場合に、
前記ピクセルキャッシュにおいて、前記フィルタリング処理が未終了であることを示す情報が書き込まれている、画素について、更新後のテクスチャブロックを用いた前記フィルタリング処理が必要かどうかを判定し、必要な場合に、
前記フィルタリング処理が未終了であることを示す情報が書き込まれている、画素に対して、更新後のテクスチャブロックを用いた前記フィルタリング処理を行う、
請求項2に記載の画像描画装置。
【請求項4】
テクスチャマッピング処理を行うための画像描画方法であって、
(a)マッピング対象となるテクスチャデータを分割して得られた複数のテクスチャブロックの中から、設定された数のテクスチャブロックを、テクスチャキャッシュに読み込んで保存する、ステップと、
(b)描画対象となる画素毎に、対応するテクスチャブロックを前記テクスチャキャッシュから取得し、当該画素に対して、取得したテクスチャブロックを用いたフィルタリング処理を行う、ステップと、
(c)前記画素毎に、前記フィルタリング処理の結果を、ピクセルキャッシュに保存する、ステップと、
(d)前記(a)のステップにおいて、前記フィルタリング処理の対象となった画素に対応するテクスチャブロックを前記テクスチャキャッシュから取得できない場合に、前記テクスチャキャッシュから取得可能なテクスチャブロックを用いた前記フィルタリング処理を必要とする画素を特定する、ステップと、
(e)前記(d)のステップで特定した画素に対して、先に前記フィルタリング処理を実行する、ステップと、
を有することを特徴とする画像描画方法。
【請求項5】
(f)前記(d)のステップで特定した画素が、前記テクスチャキャッシュから取得可能なテクスチャブロック以外のテクスチャブロックを用いた前記フィルタリング処理を、更に必要とするかどうかを判定する、ステップと、
(g)前記(f)のステップの判定の結果、更に必要とする場合に、前記(d)のステップで特定した画素に対して、前記テクスチャキャッシュから取得可能なテクスチャブロックを用いた前記フィルタリング処理を行い、前記ピクセルキャッシュに、前記フィルタリング処理の結果として、前記フィルタリング処理が未終了であることを示す情報を書き込む、ステップと、
を更に有する、請求項4に記載の画像描画方法。
【請求項6】
(h)前記テクスチャキャッシュが、保存しているテクスチャブロックを更新した場合に、前記ピクセルキャッシュにおいて、前記フィルタリング処理が未終了であることを示す情報が書き込まれている、画素について、更新後のテクスチャブロックを用いた前記フィルタリング処理が必要かどうかを判定する、ステップと、
(i)前記(h)のステップの判定の結果、必要な場合に、前記フィルタリング処理が未終了であることを示す情報が書き込まれている、画素に対して、更新後のテクスチャブロックを用いた前記フィルタリング処理を行う、ステップと、
を更に有する、請求項5に記載の画像描画方法。
【請求項7】
コンピュータによって、テクスチャマッピング処理を行うためのプログラムであって、
前記コンピュータに、
(a)マッピング対象となるテクスチャデータを分割して得られた複数のテクスチャブロックの中から、設定された数のテクスチャブロックを、テクスチャキャッシュに読み込んで保存する、ステップと、
(b)描画対象となる画素毎に、対応するテクスチャブロックを前記テクスチャキャッシュから取得し、当該画素に対して、取得したテクスチャブロックを用いたフィルタリング処理を行う、ステップと、
(c)前記画素毎に、前記フィルタリング処理の結果を、ピクセルキャッシュに保存する、ステップと、
(d)前記(a)のステップにおいて、前記フィルタリング処理の対象となった画素に対応するテクスチャブロックを前記テクスチャキャッシュから取得できない場合に、前記テクスチャキャッシュから取得可能なテクスチャブロックを用いた前記フィルタリング処理を必要とする画素を特定する、ステップと、
(e)前記(d)のステップで特定した画素に対して、先に前記フィルタリング処理を実行する、ステップと、
を実行させるプログラム。
【請求項8】
(f)前記(d)のステップで特定した画素が、前記テクスチャキャッシュから取得可能なテクスチャブロック以外のテクスチャブロックを用いた前記フィルタリング処理を、更に必要とするかどうかを判定する、ステップと、
(g)前記(f)のステップの判定の結果、更に必要とする場合に、前記(d)のステップで特定した画素に対して、前記テクスチャキャッシュから取得可能なテクスチャブロックを用いた前記フィルタリング処理を行い、前記ピクセルキャッシュに、前記フィルタリング処理の結果として、前記フィルタリング処理が未終了であることを示す情報を書き込む、ステップと、
を更に前記コンピュータに実行させる、請求項7に記載のプログラム。
【請求項9】
(h)前記テクスチャキャッシュが、保存しているテクスチャブロックを更新した場合に、前記ピクセルキャッシュにおいて、前記フィルタリング処理が未終了であることを示す情報が書き込まれている、画素について、更新後のテクスチャブロックを用いた前記フィルタリング処理が必要かどうかを判定する、ステップと、
(i)前記(h)のステップの判定の結果、必要な場合に、前記フィルタリング処理が未終了であることを示す情報が書き込まれている、画素に対して、更新後のテクスチャブロックを用いた前記フィルタリング処理を行う、ステップと、
を更に前記コンピュータに実行させる、請求項8に記載のプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2012−177986(P2012−177986A)
【公開日】平成24年9月13日(2012.9.13)
【国際特許分類】
【出願番号】特願2011−39606(P2011−39606)
【出願日】平成23年2月25日(2011.2.25)
【出願人】(390001395)NECシステムテクノロジー株式会社 (438)
【Fターム(参考)】