(57)【特許請求の範囲】
【請求項１】
テクスチャマッピング処理を行う画像描画装置であって、
マッピング対象となるテクスチャデータを分割して得られた複数のテクスチャブロックの中から、設定された数のテクスチャブロックを、読み込んで保存する、テクスチャキャッシュと、
描画対象となる画素毎に、対応するテクスチャブロックを前記テクスチャキャッシュから取得し、当該画素に対して、取得したテクスチャブロックを用いたフィルタリング処理を行う、テクスチャ処理部と、
前記画素毎に、前記フィルタリング処理の結果を保存する、ピクセルキャッシュと、
を備え、
前記テクスチャ処理部は、
前記フィルタリング処理の対象となった画素に対応する全てのテクスチャブロックを前記テクスチャキャッシュから取得できない場合に、前記テクスチャキャッシュから取得可能なテクスチャブロックを用いた前記フィルタリング処理を必要とする画素を特定し、特定した画素に対して、先に前記フィルタリング処理を実行し、
前記フィルタリング処理の対象となった画素に対応する全てのテクスチャブロックを前記テクスチャキャッシュから取得できた場合は、前記テクスチャキャッシュから取得できたテクスチャブロックを用いて、前記フィルタリング処理の対象となった画素に対してフィルタリング処理を実行し、
前記フィルタリング処理の対象となった画素に対応する一部のテクスチャブロックのみを前記テクスチャキャッシュから取得できた場合は、前記テクスチャキャッシュから取得できたテクスチャブロックのみを用いて、前記フィルタリング処理の対象となった画素に対してフィルタリング処理を実行する、
ことを特徴とする画像描画装置。
【請求項２】
前記テクスチャ処理部が、
前記特定した画素が、前記テクスチャキャッシュから取得可能なテクスチャブロック以外のテクスチャブロックを用いた前記フィルタリング処理を、更に必要とするかどうかを判定し、更に必要とする場合に、
前記特定した画素に対して、前記テクスチャキャッシュから取得可能なテクスチャブロックを用いた前記フィルタリング処理を行い、前記ピクセルキャッシュに、前記フィルタリング処理の結果として、前記フィルタリング処理が未終了であることを示す情報を書き込む、
請求項１に記載の画像描画装置。
【請求項３】
前記テクスチャ処理部が、
前記テクスチャキャッシュが、保存しているテクスチャブロックを更新した場合に、
前記ピクセルキャッシュにおいて、前記フィルタリング処理が未終了であることを示す情報が書き込まれている、画素について、更新後のテクスチャブロックを用いた前記フィルタリング処理が必要かどうかを判定し、必要な場合に、
前記フィルタリング処理が未終了であることを示す情報が書き込まれている、画素に対して、更新後のテクスチャブロックを用いた前記フィルタリング処理を行う、
請求項２に記載の画像描画装置。
【請求項４】
テクスチャマッピング処理を行うための画像描画方法であって、
（ａ）マッピング対象となるテクスチャデータを分割して得られた複数のテクスチャブロックの中から、設定された数のテクスチャブロックを、テクスチャキャッシュに読み込んで保存する、ステップと、
（ｂ）描画対象となる画素毎に、対応するテクスチャブロックを前記テクスチャキャッシュから取得し、当該画素に対して、取得したテクスチャブロックを用いたフィルタリング処理を行う、ステップと、
（ｃ）前記画素毎に、前記フィルタリング処理の結果を、ピクセルキャッシュに保存する、ステップと、
（ｄ）前記（ｂ）のステップにおいて、前記フィルタリング処理の対象となった全ての画素に対応するテクスチャブロックを前記テクスチャキャッシュから取得できない場合に、前記テクスチャキャッシュから取得可能なテクスチャブロックを用いた前記フィルタリング処理を必要とする画素を特定する、ステップと、
（ｅ）前記（ｄ）のステップで特定した画素に対して、先に前記フィルタリング処理を実行する、ステップと、
（ｆ）前記（ｂ）のステップにおいて、前記フィルタリング処理の対象となった画素に対応する全てのテクスチャブロックを前記テクスチャキャッシュから取得できた場合は、前記テクスチャキャッシュから取得できたテクスチャブロックを用いて、前記フィルタリング処理の対象となった画素に対してフィルタリング処理を実行する、ステップと、
（ｇ）前記（ｂ）のステップにおいて、前記フィルタリング処理の対象となった画素に対応する一部のテクスチャブロックのみを前記テクスチャキャッシュから取得できた場合は、前記テクスチャキャッシュから取得できたテクスチャブロックのみを用いて、前記フィルタリング処理の対象となった画素に対してフィルタリング処理を実行する、ステップと、
を有することを特徴とする画像描画方法。
【請求項５】
（ｈ）前記（ｄ）のステップで特定した画素が、前記テクスチャキャッシュから取得可能なテクスチャブロック以外のテクスチャブロックを用いた前記フィルタリング処理を、更に必要とするかどうかを判定する、ステップと、
（ｉ）前記（ｈ）のステップの判定の結果、更に必要とする場合に、前記（ｄ）のステップで特定した画素に対して、前記テクスチャキャッシュから取得可能なテクスチャブロックを用いた前記フィルタリング処理を行い、前記ピクセルキャッシュに、前記フィルタリング処理の結果として、前記フィルタリング処理が未終了であることを示す情報を書き込む、ステップと、
を更に有する、請求項４に記載の画像描画方法。
【請求項６】
（ｊ）前記テクスチャキャッシュが、保存しているテクスチャブロックを更新した場合に、前記ピクセルキャッシュにおいて、前記フィルタリング処理が未終了であることを示す情報が書き込まれている、画素について、更新後のテクスチャブロックを用いた前記フィルタリング処理が必要かどうかを判定する、ステップと、
（ｋ）前記（ｊ）のステップの判定の結果、必要な場合に、前記フィルタリング処理が未終了であることを示す情報が書き込まれている、画素に対して、更新後のテクスチャブロックを用いた前記フィルタリング処理を行う、ステップと、
を更に有する、請求項５に記載の画像描画方法。
【請求項７】
コンピュータによって、テクスチャマッピング処理を行うためのプログラムであって、
前記コンピュータに、
（ａ）マッピング対象となるテクスチャデータを分割して得られた複数のテクスチャブロックの中から、設定された数のテクスチャブロックを、テクスチャキャッシュに読み込んで保存する、ステップと、
（ｂ）描画対象となる画素毎に、対応するテクスチャブロックを前記テクスチャキャッシュから取得し、当該画素に対して、取得したテクスチャブロックを用いたフィルタリング処理を行う、ステップと、
（ｃ）前記画素毎に、前記フィルタリング処理の結果を、ピクセルキャッシュに保存する、ステップと、
（ｄ）前記（ｂ）のステップにおいて、前記フィルタリング処理の対象となった画素に対応するテクスチャブロックを前記テクスチャキャッシュから取得できない場合に、前記テクスチャキャッシュから取得可能なテクスチャブロックを用いた前記フィルタリング処理を必要とする画素を特定する、ステップと、
（ｅ）前記（ｄ）のステップで特定した画素に対して、先に前記フィルタリング処理を実行する、ステップと、
（ｆ）前記（ｂ）のステップにおいて、前記フィルタリング処理の対象となった画素に対応する全てのテクスチャブロックを前記テクスチャキャッシュから取得できた場合は、前記テクスチャキャッシュから取得できたテクスチャブロックを用いて、前記フィルタリング処理の対象となった画素に対してフィルタリング処理を実行する、ステップと、
（ｇ）前記（ｂ）のステップにおいて、前記フィルタリング処理の対象となった画素に対応する一部のテクスチャブロックのみを前記テクスチャキャッシュから取得できた場合は、前記テクスチャキャッシュから取得できたテクスチャブロックのみを用いて、前記フィルタリング処理の対象となった画素に対してフィルタリング処理を実行する、ステップと、
を実行させるプログラム。
【請求項８】
（ｈ）前記（ｄ）のステップで特定した画素が、前記テクスチャキャッシュから取得可能なテクスチャブロック以外のテクスチャブロックを用いた前記フィルタリング処理を、更に必要とするかどうかを判定する、ステップと、
（ｉ）前記（ｈ）のステップの判定の結果、更に必要とする場合に、前記（ｄ）のステップで特定した画素に対して、前記テクスチャキャッシュから取得可能なテクスチャブロックを用いた前記フィルタリング処理を行い、前記ピクセルキャッシュに、前記フィルタリング処理の結果として、前記フィルタリング処理が未終了であることを示す情報を書き込む、ステップと、
を更に前記コンピュータに実行させる、請求項７に記載のプログラム。
【請求項９】
（ｊ）前記テクスチャキャッシュが、保存しているテクスチャブロックを更新した場合に、前記ピクセルキャッシュにおいて、前記フィルタリング処理が未終了であることを示す情報が書き込まれている、画素について、更新後のテクスチャブロックを用いた前記フィルタリング処理が必要かどうかを判定する、ステップと、
（ｋ）前記（ｊ）のステップの判定の結果、必要な場合に、前記フィルタリング処理が未終了であることを示す情報が書き込まれている、画素に対して、更新後のテクスチャブロックを用いた前記フィルタリング処理を行う、ステップと、
を更に前記コンピュータに実行させる、請求項８に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像、特に３次元画像を表示する、画像描画装置、画像描画方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、種々の分野で、３次元画像処理が利用されており、パーソナルコンピュータのみならず、携帯電話、スマートフォンといった携帯端末でも、３次元画像処理を実行することが求められている。また、パーソナルコンピュータなどは、通常、ハードウェアまたはソフトウェアによって構築された画像描画装置を備えており、３次元画像処理は、この画像描画装置によって実行される。
【０００３】
３次元画像処理は、モデリングによって得られた３次元仮想世界を２次元スクリーンに描画する処理であり、レンダリングと呼ばれる。また、３次元画像処理は、視点及び光源の設定処理、座標変換処理、クリッピング処理、透視投影変換処理、隠面消去処理、シェーディング処理、シャドーイング処理、テクスチャマッピング処理などで構成される。
【０００４】
このうち、テクスチャマッピング処理は、物体の質感をよりリアルに表現するために、テクスチャマップと呼ばれる２次元画像を３次元物体の表面に貼り付ける処理である。テクスチャマッピング処理は、負荷が大きく、且つ、時間がかかる処理であることから、従来から、処理時間の短縮化を図るための技術が提案されている（例えば、特許文献１参照。）。
【０００５】
具体的には、特許文献１は、テクスチャキャッシュ制御において、先出しバッファ制御を行うことによって、キャッシュからのテクスチャデータの読み出し時にミスヒットが生じた場合のメモリリードレイテンシーの短縮化を図る技術を開示している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２００２−５０４２５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、画像描画装置においては、メモリアクセスが性能のボトルネックとなる事が多く、特にテクスチャ処理では、テクスチャを貼り付ける場合の角度や拡大率によりキャッシュヒット率が大きく変動する傾向にあり、画像描画装置の性能を低下させている。以下に、具体的に説明する。
【０００８】
まず、画素が生成されると、その画素に対応するテクスチャ座標から、テクスチャデータがブロック単位で読み込まれ、テクスチャキャッシュに格納される。そして、テクスチャキャッシュの更新が必要となったとき、テクスチャキャッシュ容量は有限であるため、格納されているテクスチャキャッシュは破壊される。
【０００９】
しかしながら、更新により破棄されるテクスチャデータについて、後の画素処理で必要になるケースがある。この場合、破棄されたテクスチャデータの読み込みを再度行う必要があり、結果、メモリアクセス回数が増大し、性能低下が生じてしまう。また、特許文献１に開示された技術を用いた場合であっても、メモリアクセス回数を少なくすることはできないため、性能低下の抑制は困難である。
【００１０】
本発明の目的の一例は、上記問題を解消し、テクスチャマッピング処理において、テクスチャキャッシュのミスヒットの低減により、メモリアクセス回数を削減し得る、画像描画装置、画像描画方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明の一側面における画像描画装置は、テクスチャマッピング処理を行う画像描画装置であって、
マッピング対象となるテクスチャデータを分割して得られた複数のテクスチャブロックの中から、設定された数のテクスチャブロックを、読み込んで保存する、テクスチャキャッシュと、
描画対象となる画素毎に、対応するテクスチャブロックを前記テクスチャキャッシュから取得し、当該画素に対して、取得したテクスチャブロックを用いたフィルタリング処理を行う、テクスチャ処理部と、
前記画素毎に、前記フィルタリング処理の結果を保存する、ピクセルキャッシュと、
を備え、
前記テクスチャ処理部は、前記フィルタリング処理の対象となった画素に対応するテクスチャブロックを前記テクスチャキャッシュから取得できない場合に、前記テクスチャキャッシュから取得可能なテクスチャブロックを用いた前記フィルタリング処理を必要とする画素を特定し、特定した画素に対して、先に前記フィルタリング処理を実行する、
ことを特徴とする。
【００１２】
また、上記目的を達成するため、本発明の一側面における画像描画方法は、テクスチャマッピング処理を行うための画像描画方法であって、
（ａ）マッピング対象となるテクスチャデータを分割して得られた複数のテクスチャブロックの中から、設定された数のテクスチャブロックを、テクスチャキャッシュに読み込んで保存する、ステップと、
（ｂ）描画対象となる画素毎に、対応するテクスチャブロックを前記テクスチャキャッシュから取得し、当該画素に対して、取得したテクスチャブロックを用いたフィルタリング処理を行う、ステップと、
（ｃ）前記画素毎に、前記フィルタリング処理の結果を、ピクセルキャッシュに保存する、ステップと、
（ｄ）前記（ａ）のステップにおいて、前記フィルタリング処理の対象となった画素に対応するテクスチャブロックを前記テクスチャキャッシュから取得できない場合に、前記テクスチャキャッシュから取得可能なテクスチャブロックを用いた前記フィルタリング処理を必要とする画素を特定する、ステップと、
（ｅ）前記（ｄ）のステップで特定した画素に対して、先に前記フィルタリング処理を実行する、ステップと、
を有することを特徴とする。
【００１３】
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、コンピュータによって、テクスチャマッピング処理を行うためのプログラムであって、
前記コンピュータに、
（ａ）マッピング対象となるテクスチャデータを分割して得られた複数のテクスチャブロックの中から、設定された数のテクスチャブロックを、テクスチャキャッシュに読み込んで保存する、ステップと、
（ｂ）描画対象となる画素毎に、対応するテクスチャブロックを前記テクスチャキャッシュから取得し、当該画素に対して、取得したテクスチャブロックを用いたフィルタリング処理を行う、ステップと、
（ｃ）前記画素毎に、前記フィルタリング処理の結果を、ピクセルキャッシュに保存する、ステップと、
（ｄ）前記（ａ）のステップにおいて、前記フィルタリング処理の対象となった画素に対応するテクスチャブロックを前記テクスチャキャッシュから取得できない場合に、前記テクスチャキャッシュから取得可能なテクスチャブロックを用いた前記フィルタリング処理を必要とする画素を特定する、ステップと、
（ｅ）前記（ｄ）のステップで特定した画素に対して、先に前記フィルタリング処理を実行する、ステップと、
を実行させることを特徴とする。
【発明の効果】
【００１４】
以上のように、本発明における、画像描画装置、画像描画方法、及びプログラムによれば、テクスチャマッピング処理において、テクスチャキャッシュのミスヒットの低減により、メモリアクセス回数を削減することができる。
【図面の簡単な説明】
【００１５】
【図１】図１は、本発明の実施の形態における画像描画装置の構成を示すブロック図である。
【図２】図２は、本発明の実施の形態における画像描画装置の動作を示すフロー図である。
【図３】図３は、本発明の実施の形態における画像処理装置の動作を説明するための説明図である。
【図４】図４は、本発明の実施の形態における画像描画装置の他の例の構成を示すブロック図である。
【発明を実施するための形態】
【００１６】
（実施の形態）
以下、本発明の実施の形態における、画像描画装置、画像描画方法、及びプログラムについて、図１〜図３を参照しながら説明する。
【００１７】
［装置構成］
最初に、本実施の形態における画像描画装置の構成について図１を用いて説明する。図１は、本発明の実施の形態における画像描画装置の構成を示すブロック図である。
【００１８】
図１に示すように、本実施の形態における画像描画装置１は、画像表示機能を備える機器２０の一部を構成する。また、機器２０は、画像描画装置１の他に、テクスチャメモリ１０、画像メモリ１１、及びＣＰＵ（Central Processing Unit）１２を備えている。本実施の形態において、機器２０の具体例としては、パーソナルコンピュータ、携帯電話、スマートフォン、等が挙げられる。
【００１９】
ＣＰＵ１２は、機器２０における処理に応じて、画像描画装置１に、テクスチャマッピング処理を実行させるためのコマンドを出力する。画像描画装置１は、コマンドを受け取ると、テクスチャメモリ１０に格納されているテクスチャ（模様）データ１３を用いて、テクスチャマッピング処理を実行し、それによって得られた画像データを画像メモリ１１に出力する。
【００２０】
テクスチャメモリ１０は、マッピング対象となるテクスチャ（模様）データ１３を格納している。但し、テクスチャデータ１３は、複数個のテクスチャブロックに分割されている。また、画像メモリ１１に格納されている画像データが、表示装置（図１において図示せず）に出力さると、表示装置の画面上に画像が表示される。
【００２１】
図１に示すように、画像描画装置１は、コマンド処理部２と、画素生成部３と、テクスチャ処理部４と、描画処理部５と、テクスチャキャッシュ６と、ピクセルキャッシュ７とを備えている。
【００２２】
コマンド処理部２は、ＣＰＵ１２が出力する描画のためのコマンドを受け取り、描画に必要なテクスチャの頂点座標、テクスチャパラメータ、色パラメータ等を生成し、生成した情報を画素生成部３に出力する。
【００２３】
画素生成部３は、コマンド処理部２が出力した情報に基づいて、画素を生成するための情報、即ち、画素の座標、色値、対応するテクスチャブロックの識別子などを含む、画素情報を生成し、これをテクスチャ処理部４に出力する。
【００２４】
テクスチャキャッシュ６は、テクスチャデータ１３を構成する複数のテクスチャブロックの中から、設定された数のテクスチャブロックを読み込んで保存する。本実施の形態では、テクスチャキャッシュ６が保存できるテクスチャブロックの数は２つである。
【００２５】
図１の例では、１２個のテクスチャブロックが図示されているが、本実施の形態においてテクスチャブロックの数は特に限定されるものではない。また、図１においては、テクスチャキャッシュ６に保存されているテクスチャブロックをそれぞれ「ブロックＡ」、「ブロックＢ」とする。
【００２６】
テクスチャ処理部４は、画素生成部３からの情報に基づき、原則として、描画対象となる画素毎に、対応するテクスチャブロックをテクスチャキャッシュ６から取得し、当該画素に対して、取得したテクスチャブロックを用いたフィルタリング処理を実行する。具体的には、テクスチャ処理部４は、フィルタリング処理として、当該画素を描画するために必要な色値を算出する。
【００２７】
ピクセルキャッシュ７は、画素毎に、フィルタリング処理の結果、即ち、管理情報と色情報とを保存する。管理情報は、対応する画素についてフィルタリング処理が終了しているかどうかを示す情報である。色情報は、算出された色値を特定する情報である。
【００２８】
ところで、フィルタリング処理においては、その対象となった画素に対応するテクスチャブロックをテクスチャキャッシュ６から取得できない場合、即ち、ミスヒットが発生する場合がある。従来からの画像描画装置であれば、ミスヒットが発生すると、テクスチャキャッシュ６は、現在保持しているテクスチャブロックを破棄し、代わりに、テクスチャメモリ１０から、対応するテクスチャブロックの読み込みを実行する。
【００２９】
これに対して、画像描画装置１では、テクスチャ処理部４は、テクスチャキャッシュ６が現在保持しているテクスチャブロックを破棄する前に、このテクスチャブロックを用いたフィルタリング処理を必要とする画素を特定する。そして、テクスチャ処理部４は、フィルタリング処理の対象となっている画素の代わりに、特定した画素に対して、先にフィルタリング処理を実行する。
【００３０】
このように、画像描画装置１では、テクスチャキャッシュが更新されてしまう前に、更新前のデータで実行可能な処理が先に実行される。このため、画像描画装置１によれば、テクスチャマッピング処理において、テクスチャキャッシュのミスヒットが低減され、結果、メモリアクセス回数を削減することができる。
【００３１】
また、本実施の形態では、テクスチャ処理部４は、ミスヒット発生時に特定した画素が、テクスチャキャッシュ６から取得可能なテクスチャブロック以外のテクスチャブロックを用いたフィルタリング処理を、更に必要とするかどうかも判定する。
【００３２】
そして、判定の結果、必要とする場合は、テクスチャ処理部４は、まず、特定した画素に対して、テクスチャキャッシュ６から取得可能なテクスチャブロックを用いたフィルタリング処理を実行する。その後、テクスチャ処理部４は、特定した画素の色情報として、色値の中間データを書き込む。また、テクスチャ処理部４は、特定した画素についてのピクセルキャッシュ６の管理情報に、当該画素のフィルタリング処理が未終了であること、即ち、色値が中間データであることを示す情報を書き込む。なお、以降の説明では、管理情報として色値が中間データであることを示す情報が書き込まれた画素を、「処理途中画素」とする。
【００３３】
更に、テクスチャ処理部４は、テクスチャキャッシュ６が、保存しているテクスチャブロックを更新すると、まず、処理途中画素を特定する。次に、テクスチャ処理部４は、処理途中画素について、更新後のテクスチャブロックを用いたフィルタリング処理が必要かどうかを判定する。そして、テクスチャ処理部４は、フィルタリング処理が必要であると判定した場合、処理途中画素に対して、更新後のテクスチャブロックを用いたフィルタリング処理を実行する。
【００３４】
この後、テクスチャ処理部４は、処理途中画素の管理情報および色情報を更新する。これにより、処理途中画素に対する、フィルタリング処理は完了する。そして、全ての画素に対するフィルタリング処理が完了すると、描画処理部５は、ピクセルキャッシュに格納されている情報を用いて、画像データを生成し、これを画像メモリ１１に格納する。
【００３５】
［装置動作］
次に、本発明の実施の形態における画像描画装置１の動作について図２を用いて説明する。図２は、本発明の実施の形態における画像描画装置の動作を示すフロー図である。以下の説明においては、適宜図１を参酌する。また、本実施の形態では、画像描画装置１を動作させることによって、画像描画方法が実施される。よって、本実施の形態における画像描画方法の説明は、以下の画像描画装置１の動作説明に代える。
【００３６】
図２に示すように、まず、コマンド処理部２が、ＣＰＵ１２が出力する描画のためのコマンドを受け取り、描画に必要なテクスチャの頂点座標、テクスチャパラメータ、色パラメータ等を生成し、生成した情報を画素生成部３に出力する（ステップＡ１）。
【００３７】
次に、画素生成部３は、コマンド処理部２が出力した情報に基づいて、画素を生成するための情報、即ち、画素の座標、色値、対応するテクスチャブロックの識別子などを含む、画素情報を生成し、これをテクスチャ処理部４に出力する（ステップＡ２）。
【００３８】
次に、テクスチャ処理部４は、処理対象となる画素（以下「生成画素」とする。）の番号を示すパラメータｎの値を初期値（０：ゼロ）に設定する（ステップＡ３）。続いて、テクスチャ処理部４は、ｎ番目の生成画素（以下「生成画素（ｎ）」とする。）のフィルタリング処理を実行するために必要なテクスチャブロックは全てテクスチャキャッシュ６に保持されているかどうかを判定する（ステップＡ４）。
【００３９】
なお、テクスチャ処理部４は、テクスチャキャッシュ６がテクスチャブロックを一切保持していない場合は、テクスチャキャッシュ６に対して、生成画素（ｎ）のフィルタリング処理に必要となるテクスチャブロックをテクスチャメモリ１０から読み込ませる。
【００４０】
ステップＡ４の判定の結果、必要なテクスチャブロックは全てテクスチャキャッシュ６に保持されている場合は、テクスチャ処理部４は、生成画素（ｎ）に対して、その管理情報にフィルタリング処理が未終了であることを示す情報が書き込まれていることを条件に、フィルタリング処理を実行する（ステップＡ５）。また、テクスチャ処理部４は、ピクセルキャッシュに、算出した色値を書き込むと共に、管理情報として、全てのフィルタリング処理が終了していることを示す情報も書き込む。
【００４１】
一方、ステップＡ４の判定の結果、必要なテクスチャブロックは全てテクスチャキャッシュ６に保持されていない場合は、テクスチャ処理部４は、生成画素（ｎ）のフィルタリング処理を実行するために必要なテクスチャブロックの一部がテクスチャキャッシュ６に保持されているかどうかを判定する（ステップＡ９）。
【００４２】
ステップＡ９の判定の結果、必要なテクスチャブロックの一部がテクスチャキャッシュ６に保持されている場合は、テクスチャ処理部４は、生成画素（ｎ）に対して、その管理情報にフィルタリング処理が未終了であることを示す情報が書き込まれていることを条件に、ステップＡ５を実行する。但し、この場合のステップＡ５では、テクスチャ処理部４は、保持されているテクスチャブロックのみを用いて、フィルタリング処理を実行する。また、この場合、テクスチャ処理部４は、ピクセルキャッシュに、生成画素（ｎ）の色情報として、色値の中間データを書き込み、更に、管理情報として、色値が中間データであることを示す情報を書き込む。
【００４３】
一方、ステップＡ９の判定の結果、必要なテクスチャブロックの一部がテクスチャキャッシュ６に保持されていない場合は、テクスチャ処理部４は、ステップＡ７を実行する。ステップＡ７については後述する。
【００４４】
次に、ステップＡ５が実行された場合は、テクスチャ処理部４は、現在テクスチャキャッシュ６に保持されているテクスチャブロックを用いて、フィルタリング処理を実行できる生成画素が他に存在しているかどうかを判定する（ステップＡ６）。このとき、テクスチャ処理部４は、フィルタリング処理が全く行われていない画素だけでなく、処理途中画素も対象として判定を行う。
【００４５】
ステップＡ６の判定の結果、他に生成画素が存在している場合は、テクスチャ処理部４は、再度ステップＡ５を実行する。また、この場合のステップＡ５も、ステップＡ９の判定後と同様に、必要なテクスチャブロックの一部のみがテクスチャキャッシュ６に保持されている生成画素に対しては、このテクスチャブロックのみを用いたフィルタリング処理を実行する。ステップＡ６およびその後に実行されるステップＡ５により、現在テクスチャキャッシュ６に保持されているテクスチャブロックが必要となるフィルタリング処理は、全て終了することになる。
【００４６】
一方、ステップＡ６の判定の結果、生成画素が存在していない場合は、テクスチャ処理部４は、ステップＡ７を実行する。
【００４７】
ステップＡ７では、テクスチャ処理部４は、全ての生成画素についてフィルタリング処理が終了しているかどうかを判定する。具体的には、ｎの値が最終であるかどうかを判定する。
【００４８】
ステップＡ７での判定の結果、全ての生成画素についてフィルタリング処理が終了していない場合は、テクスチャ処理部４は、ｎをインクリメントし（ステップＡ１０）、更に、テクスチャキャッシュ６を更新し（ステップＡ１１）、その後、再度ステップＡ４を実行する。
【００４９】
一方、ステップＡ７での判定の結果、全ての生成画素についてフィルタリング処理が終了している場合は、描画処理部５が、ピクセルキャッシュに格納されている情報を用いて、画像データを生成し、これを画像メモリ１１に格納する（ステップＡ８）。以上により、画像描画装置１における処理は終了する。
【００５０】
ここで、図３を用いて、図２に示した処理の具体例を説明する。図３は、本発明の実施の形態における画像処理装置の動作を説明するための説明図であり、生成画素とテクスチャブロックとの関係を示している。
【００５１】
図３に示すように、生成画素（０）を対象とするフィルタリング処理では、テクスチャブロックＴ０のデータが必要になるので、テクスチャ処理部４は、テクスチャキャッシュ６のブロックＡにテクスチャブロックＴ０のデータを読み込ませる。そして、テクスチャ処理部４は、テクスチャブロックＴ０を用いてフィルタリング処理を行う。
【００５２】
次に、生成画素（１）及び生成画素（２）のフィルタリング処理には、テクスチャブロックＴ０のデータが必要である。既にテクスチャキャッシュ６のブロックＡにテクスチャブロックＴ０のデータが格納されているため、テクスチャ処理部４は、それを用いて、生成画素（１）及び生成画素（２）のフィルタリング処理を行う。
【００５３】
次に、生成画素（３）のフィルタリング処理では、新たにテクスチャブロックＴ１のデータが必要となるので、テクスチャ処理部４は、テクスチャキャッシュ６のブロックＢにテクスチャブロックＴ１のデータを格納する。そして、テクスチャ処理部４は、生成画素（３）に対して、テクスチャブロックＴ０とテクスチャブロックＴ１とのデータを用いてフィルタリング処理を行う。生成画素（４）、（５）に対しては、生成画素（３）と同様にフィルタリング処理が行われる。
【００５４】
その後、生成画素（６）では、フィルタリング処理に、テクスチャブロックＴ５のデータが必要となる。この場合、テクスチャキャッシュ６のブロックＡ及びＢには、既にデータが格納されており、一方を破棄して新たにテクスチャブロックＴ５のデータを格納する必要がある。このため、テクスチャ処理部４は、生成画素（８）のフィルタリング処理において、テクスチャブロックＴ０のデータが必要となると判断し、テクスチャブロックＴ０を破棄する前に生成画素（８）のフィルタリング処理を前もって実行する。
【００５５】
また、生成画素（８）に関しては、テクスチャブロックＴ０のデータのみでフィルタリング処理が完了する為、テクスチャ処理部４は、フィルタリング処理が完了した後、管理情報と色情報とをピクセルキャッシュ７に格納する。同様に、テクスチャ処理部４は、生成画素（９）、（１０）、（１１）、（１６）、（１７）に対しても、テクスチャブロックＴ０のデータを用いてフィルタリング処理を行い、管理情報と色情報とをピクセルキャッシュ７に格納する。
【００５６】
次に、生成画素（１８）のフィルタリング処理では、テクスチャブロックＴ０とテクスチャブロックＴ４のデータが必要であるが、テクスチャブロックＴ４のデータはテクスチャキャッシュ６に格納されていない。このため、テクスチャ処理部４は、テクスチャブロックＴ０のみを用いて、生成画素（１８）に対するフィルタリング処理を実行する。そして、テクスチャ処理部４は、色値が中間データであることを示す管理情報と、フィルタリング途中の色情報とをピクセルキャッシュ７に格納する。
【００５７】
また、テクスチャ処理部４は、生成画素（１９）に対しても、生成画素（１８）に対するフィルタリング処理と同様のフィルタリング処理を実行する。このような要領で、テクスチャブロックＴ０を使用する生成画素全てに対してフィルタリング処理を完了した後、テクスチャ処理部４は、テクスチャブロックＴ０のデータを破棄して、テクスチャキャッシュ６のブロックＡにテクスチャブロックＴ５のデータを格納させる。
【００５８】
また、テクスチャ処理部４は、生成画素（６）に対しては、テクスチャキャッシュ６を更新し、テクスチャブロックＴ１とテクスチャブロックＴ５のデータを格納させた後、フィルタリング処理を実行する。
【００５９】
これらの処理により、図３に示された全ての生成画素（１）〜（３１）に対して、フィルタリング処理が完了すると、描画処理部５は、ピクセルキャッシュ７から色情報を取得し、これに基づいて、画像データを生成し、これを画像メモリ１１に格納させる。
【００６０】
以上のように、本実施の形態では、テクスチャブロックを破棄する場合に、ピクセルキャッシュ上の未処理の画素について、破棄されるテクスチャブロックが必要かどうか判断される。そして必要な場合は、破棄対象となるテクスチャブロックを用いたフィルタリング処理が行われる。
【００６１】
また、本実施の形態では、フィルタリングに複数のテクスチャブロックが必要となり、且つ、全てのテクスチャブロックがテクスチャキャッシュ６に保持されていない場合は、保持されているテクスチャブロックのみでフィルタリング処理が行われる。そして、不足しているテクスチャブロックについては、後でテクスチャキャッシュに登録された時点でフィルタリング処理に用いられ、その後、ピクセルキャッシュが更新される。
【００６２】
このように、本実施の形態によれば、テクスチャデータに関して、キャッシュを破棄する場合に、後で必要となるデータを予め処理することができるため、キャッシュの更新頻度が少なくなり、画像描画装置においてメモリアクセスの低減及び性能向上が図られる。
【００６３】
また、図３の例では、１領域を対象として、必要となるテクスチャブロックについての判断が行われているが、本実施の形態は、この例に限定されるものではない。本実施の形態では、複数の領域を対象として、テクスチャブロックについての判断が行われる態様であっても良い。なお、「１領域」とは、ピクセルキャッシュ７において、ひとまとまりで管理されている画素の集合を意味する。
【００６４】
また、本実施の形態では、画像描画装置１は、コンピュータにプログラムをインストールすることによっても実現することができる。この態様について図４を用いて説明する。図４は、本発明の実施の形態における画像描画装置の他の例の構成を示すブロック図である。
【００６５】
図４の例では、画像描画装置１は、コンピュータ３０のオペレーティングシステム（ＯＳ）３１上で動作するプログラムによって構築されている。また、プログラムとしては、コンピュータ３０に、図２に示すステップＡ１〜Ａ１１を実行させるプログラムが挙げられる。そして、図４の例では、コンピュータ３０のＣＰＵ（図４において図示せず）が、コマンド処理部２、画素生成部３、テクスチャ処理部４、及び描画処理部５として機能し、処理を行なう。また、コンピュータ３０に備えられているメモリ３２の記憶領域に、テクスチャメモリ１０および画像メモリ１１が構築される。更に、コンピュータ３０に備えられているキャッシュメモリ３３の記憶領域に、テクスチャキャッシュ６およびピクセルキャッシュ７が構築される。
【産業上の利用可能性】
【００６６】
以上のように、本発明によれば、テクスチャマッピング処理において、テクスチャキャッシュのミスヒットの低減により、メモリアクセス回数を削減することができる。本発明は、テクスチャマッピング処理が実行される画像描画装置に有用である。
【符号の説明】
【００６７】
１  画像描画装置
２  コマンド処理部
３  画素生成部
４  テクスチャ処理部
５  描画処理部
６  テクスチャキャッシュ
７  ピクセルキャッシュ
１０  テクスチャメモリ
１１  画像メモリ
１２  ＣＰＵ
１３  テクスチャデータ
２０  機器
３０  コンピュータ
３１  オペレーティングシステム
３２  メモリ
３３  キャッシュメモリ
【図１】
0005669199.tif 000002
【図２】
0005669199.tif 000003
【図３】
0005669199.tif 000004
【図４】
0005669199.tif 000005