(57)【特許請求の範囲】
【請求項１】
複数ワード単位で、所定のアドレスに、前記ワード単位のデータを記憶する記憶手段と、
前記ワード単位のデータを出力する出力手段と、
前記出力手段により出力されたワード単位のデータを含む前記複数ワード単位のデータと、前記アドレス、および、その複数ワード単位のデータを構成する前記ワード単位のデータが、そのデータに対応する前記記憶手段に記憶されているデータを修正する必要があるデータであるかどうかを前記ワード単位で表す修正フラグとを対応付けて、一時的に記憶する一時記憶手段と、
前記一時記憶手段に記憶されている複数ワード単位のデータと、対応する前記アドレスおよび前記修正フラグとを読み出し、前記記憶手段に供給する供給手段と
を備え、
前記一時記憶手段は、前記ワード単位のデータを記憶する場合、そのワード単位のデータに対応する修正フラグを、修正する必要があるデータであることを表す修正フラグに変更し、
前記記憶手段は、前記修正フラグをマスク信号として用いて、前記供給手段により供給されるアドレスに、そのアドレスとともに供給される複数ワード単位のデータを記憶することにより、自分自身が記憶しているデータのうち、修正する必要があるデータであることを表す修正フラグに対応するデータのみを、そのデータに対応する、前記供給手段から供給される複数ワード単位のデータを構成するデータに修正する
画像処理装置。
【請求項２】
前記一時記憶手段はまた、前記複数ワード単位のデータに対応付けて、その複数ワード単位のデータを前記記憶手段に優先的に供給するかどうかを表す供給情報を記憶し、
前記供給手段は、前記供給情報に基づいて、前記一時記憶手段に記憶されている複数ワード単位のデータから、供給対象とする複数ワード単位のデータを選択し、その供給対象とする複数ワード単位のデータと、対応する前記アドレスおよび前記修正フラグとを読み出し、前記記憶手段に供給する
請求項１に記載の画像処理装置。
【請求項３】
前記一時記憶手段は、前記ワード単位のデータを記憶する場合、そのワード単位のデータを含む複数ワード単位のデータに比べて、そのワード単位のデータよりも時間的に前に記憶されたワード単位のデータを含む複数ワード単位のデータを、前記記憶手段に優先的に供給するように、記憶対象であるワード単位のデータを含む複数ワード単位のデータに対応付けて、前記供給情報を記憶する
請求項２に記載の画像処理装置。
【請求項４】
ポリゴンの頂点に関するデータである頂点データを、ポリゴン単位で生成する生成手段と、
前記頂点データを、前記ポリゴンに対応する画素に関する画素単位のデータである画素データに変換する変換手段と
をさらに備え、
前記出力手段は、前記画素データを、前記ワード単位のデータとして出力する
請求項１に記載の画像処理装置。
【請求項５】
複数ワード単位で、所定のアドレスに、前記ワード単位のデータを記憶する記憶手段と、前記ワード単位のデータを含む前記複数ワード単位のデータと、前記アドレス、および、その複数ワード単位のデータを構成する前記ワード単位のデータが、そのデータに対応する前記記憶手段に記憶されているデータを修正する必要があるデータであるかどうかを前記ワード単位で表す修正フラグとを対応付けて、一時的に記憶する一時記憶手段とを備える画像処理装置が、
前記ワード単位のデータを出力し、
そのワード単位のデータを前記一時記憶手段に記憶させるとともに、そのワード単位のデータに対応する修正フラグを、修正する必要があるデータであることを表す修正フラグに変更し、
前記一時記憶手段に記憶されている複数ワード単位のデータと、対応する前記アドレスおよび前記修正フラグとを読み出し、前記記憶手段に供給し、
前記修正フラグをマスク信号として用いて、前記記憶手段の、前記記憶手段に供給されるアドレスに、そのアドレスとともに供給される複数ワード単位のデータを記憶させることにより、前記記憶手段が記憶しているデータのうち、修正する必要があるデータであることを表す修正フラグに対応するデータのみを、そのデータに対応する、前記記憶手段に供給される複数ワード単位のデータを構成するデータに修正する
ステップを含む画像処理方法。
【請求項６】
複数ワード単位で、所定のアドレスに、前記ワード単位のデータを記憶する記憶手段と、前記ワード単位のデータを含む前記複数ワード単位のデータと、前記アドレス、および、その複数ワード単位のデータを構成する前記ワード単位のデータが、そのデータに対応する前記記憶手段に記憶されているデータを修正する必要があるデータであるかどうかを前記ワード単位で表す修正フラグとを対応付けて、一時的に記憶する一時記憶手段とを備える画像処理装置を制御するコンピュータに行わせるプログラムにおいて、
前記ワード単位のデータを出力し、
そのワード単位のデータを前記一時記憶手段に記憶させるとともに、そのワード単位のデータに対応する修正フラグを、修正する必要があるデータであることを表す修正フラグに変更し、
前記一時記憶手段に記憶されている複数ワード単位のデータと、対応する前記アドレスおよび前記修正フラグとを読み出し、前記記憶手段に供給し、
前記修正フラグをマスク信号として用いて、前記記憶手段の、前記記憶手段に供給されるアドレスに、そのアドレスとともに供給される複数ワード単位のデータを記憶させることにより、前記記憶手段が記憶しているデータのうち、修正する必要があるデータであることを表す修正フラグに対応するデータのみを、そのデータに対応する、前記記憶手段に供給される複数ワード単位のデータを構成するデータに修正する
ステップを含むプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および画像処理方法、並びにプログラムに関し、特に、データを記憶するメモリに対するアクセス効率を維持しつつ、メモリ帯域を節約し、消費電力と製造コストを削減することができるようにした画像処理装置および画像処理方法、並びにプログラムに関する。
【背景技術】
【０００２】
従来、仮想３次元空間上における画像の変形を行う画像変形装置は、３角形などの多角形からなるポリゴンの組み合わせで構成される物体形状のモデルを作成し、そのモデルに画像を貼り付けるテクスチャマッピングを行うことにより、画像の変形を行う(例えば、特許文献１参照)。
【０００３】
このような画像変形装置は、テクスチャマッピングのために、最終的に出力される変形後の画像の各画素に表示される画像の、テクスチャマッピングにおいて貼り付けられる画像上の位置を表すテクスチャアドレスを、その画素に対応するポリゴン単位で生成し、画素ごとにメモリに記憶する。
【０００４】
このとき、画像変形装置は、テクスチャアドレスを、そのテクスチャアドレスに対応する画素の、スクリーン上の位置に対応するアドレスに記憶する。従って、ポリゴンごとに生成されたテクスチャアドレスは、メモリ上のランダムなアドレスに画素ごとに記憶される。即ち、テクスチャアドレスを記憶するためには、メモリへのランダムなアクセスが必要となる。
【０００５】
ところで、読み出しと書き込みが可能なメモリとしては、SRAM（Static Random Access Memory），SDRAM（Synchronous Dynamic Random Access Memory）などがある。例えば、コスト的にSRAMより有利なSDRAMは、データの一括読み書き（Burst Read/Burst Write）を行うことで、メモリへのアクセス効率を向上させている。
【０００６】
従って、画像変形装置は、SDRAMを、テクスチャアドレスを記憶するメモリとして用いる場合、テクスチャアドレスの一括書き込みを行うために、ライトバック方式のキャッシュを用いて、テクスチャアドレスの書き込みを行う。
【０００７】
この場合、まず最初に、キャッシュは、書き込み対象とするテクスチャアドレスを記憶するSDRAM上のアドレスを含む、連続した複数のSDRMA上アドレスに、既に記憶されているテクスチャアドレスを、SDRAMから、キャッシュの記憶単位であるキャッシュブロック（キャッシュライン）単位で読み込み、記憶する。
【０００８】
次に、キャッシュは、書き込み対象であるテクスチャアドレスを記憶するSDRAM上のアドレスに対応するキャッシュブロックサイズの領域(以下、キャッシュブロック領域という)に、書き込み対象であるテクスチャアドレスを上書きする。そして、キャッシュブロックの追い出しを行う場合、キャッシュは、その上書きされたキャッシュブロック領域のテクスチャアドレスを、そのテクスチャアドレスに対応するSDRAM上のアドレスに、一括して書き込む。
【０００９】
以上のようにして、キャッシュが、SDRAMから、SDRAM上の連続した複数のアドレスに記憶されているテクスチャアドレスを、キャッシュブロックとして、キャッシュブロック単位で一括して読み込み、キャッシュ上で、SDRAM上のランダムなアドレスに記憶されているテクスチャアドレスの更新を行うことにより、テクスチャアドレスを、SDRAMに一括して書き込むことができる。
【００１０】
【特許文献１】特開２００２−８３３１６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、キャッシュによる、SDRAMからのテクスチャアドレスの読み込みは、テクスチャアドレスをSDRAMに一括して書き込むために行われるものであり、読み込まれたテクスチャアドレスが、実際の処理に使用されることはない。即ち、画像変形装置は、テクスチャアドレスをSDRAMに一括して書き込むために、SDRAMに対して無駄なアクセスをする必要がある。即ち、画像変形装置は、メモリ帯域を無駄に使用することになる。
【００１２】
その結果、画像変形装置は、メモリに高速でアクセスしたり、複数個のメモリを並列に並べて用意する必要があり、消費電力や製造コストが高くなる。
【００１３】
本発明は、このような状況に鑑みてなされたものであり、データを記憶するメモリに対するアクセス効率を維持しつつ、メモリ帯域を節約し、消費電力と製造コストを削減するようにするものである。
【課題を解決するための手段】
【００１４】
本発明の一側面の画像処理装置は、複数ワード単位で、所定のアドレスに、前記ワード単位のデータを記憶する記憶手段と、前記ワード単位のデータを出力する出力手段と、前記出力手段により出力されたワード単位のデータを含む前記複数ワード単位のデータと、前記アドレス、および、その複数ワード単位のデータを構成する前記ワード単位のデータが、そのデータに対応する前記記憶手段に記憶されているデータを修正する必要があるデータであるかどうかを前記ワード単位で表す修正フラグとを対応付けて、一時的に記憶する一時記憶手段と、前記一時記憶手段に記憶されている複数ワード単位のデータと、対応する前記アドレスおよび前記修正フラグとを読み出し、前記記憶手段に供給する供給手段とを備え、前記一時記憶手段は、前記ワード単位のデータを記憶する場合、そのワード単位のデータに対応する修正フラグを、修正する必要があるデータであることを表す修正フラグに変更し、前記記憶手段は、前記修正フラグをマスク信号として用いて、前記供給手段により供給されるアドレスに、そのアドレスとともに供給される複数ワード単位のデータを記憶することにより、自分自身が記憶しているデータのうち、修正する必要があるデータであることを表す修正フラグに対応するデータのみを、そのデータに対応する、前記供給手段から供給される複数ワード単位のデータを構成するデータに修正する。
【００１５】
前記一時記憶手段はまた、前記複数ワード単位のデータに対応付けて、その複数ワード単位のデータを前記記憶手段に優先的に供給するかどうかを表す供給情報を記憶し、前記供給手段は、前記供給情報に基づいて、前記一時記憶手段に記憶されている複数ワード単位のデータから、供給対象とする複数ワード単位のデータを選択し、その供給対象とする複数ワード単位のデータと、対応する前記アドレスおよび前記修正フラグとを読み出し、前記記憶手段に供給する。
【００１６】
前記一時記憶手段は、前記ワード単位のデータを記憶する場合、そのワード単位のデータを含む複数ワード単位のデータに比べて、そのワード単位のデータよりも時間的に前に記憶されたワード単位のデータを含む複数ワード単位のデータを、前記記憶手段に優先的に供給するように、記憶対象であるワード単位のデータを含む複数ワード単位のデータに対応付けて、前記供給情報を記憶する。
【００１７】
前記画像処理装置は、ポリゴンの頂点に関するデータである頂点データを、ポリゴン単位で生成する生成手段と、前記頂点データを、前記ポリゴンに対応する画素に関する画素単位のデータである画素データに変換する変換手段とをさらに設け、前記出力手段は、前記画素データを、前記ワード単位のデータとして出力する。
【００１８】
本発明の一側面の画像処理方法は、複数ワード単位で、所定のアドレスに、前記ワード単位のデータを記憶する記憶手段と、前記ワード単位のデータを含む前記複数ワード単位のデータと、前記アドレス、および、その複数ワード単位のデータを構成する前記ワード単位のデータが、そのデータに対応する前記記憶手段に記憶されているデータを修正する必要があるデータであるかどうかを前記ワード単位で表す修正フラグとを対応付けて、一時的に記憶する一時記憶手段とを備える画像処理装置が、前記ワード単位のデータを出力し、そのワード単位のデータを前記一時記憶手段に記憶させるとともに、そのワード単位のデータに対応する修正フラグを、修正する必要があるデータであることを表す修正フラグに変更し、前記一時記憶手段に記憶されている複数ワード単位のデータと、対応する前記アドレスおよび前記修正フラグとを読み出し、前記記憶手段に供給し、前記修正フラグをマスク信号として用いて、前記記憶手段の、前記記憶手段に供給されるアドレスに、そのアドレスとともに供給される複数ワード単位のデータを記憶させることにより、前記記憶手段が記憶しているデータのうち、修正する必要があるデータであることを表す修正フラグに対応するデータのみを、そのデータに対応する、前記記憶手段に供給される複数ワード単位のデータを構成するデータに修正するステップを含む。
【００１９】
本発明の一側面のプログラムは、複数ワード単位で、所定のアドレスに、前記ワード単位のデータを記憶する記憶手段と、前記ワード単位のデータを含む前記複数ワード単位のデータと、前記アドレス、および、その複数ワード単位のデータを構成する前記ワード単位のデータが、そのデータに対応する前記記憶手段に記憶されているデータを修正する必要があるデータであるかどうかを前記ワード単位で表す修正フラグとを対応付けて、一時的に記憶する一時記憶手段とを備える画像処理装置を制御するコンピュータに行わせるプログラムにおいて、前記ワード単位のデータを出力し、そのワード単位のデータを前記一時記憶手段に記憶させるとともに、そのワード単位のデータに対応する修正フラグを、修正する必要があるデータであることを表す修正フラグに変更し、前記一時記憶手段に記憶されている複数ワード単位のデータと、対応する前記アドレスおよび前記修正フラグとを読み出し、前記記憶手段に供給し、前記修正フラグをマスク信号として用いて、前記記憶手段の、前記記憶手段に供給されるアドレスに、そのアドレスとともに供給される複数ワード単位のデータを記憶することにより、前記記憶手段が記憶しているデータのうち、修正する必要があるデータであることを表す修正フラグに対応するデータのみを、そのデータに対応する、前記記憶手段に供給される複数ワード単位のデータを構成するデータに修正するステップを含む。
【００２０】
本発明の一側面においては、ワード単位のデータが出力され、そのワード単位のデータが一時記憶手段に記憶されるとともに、そのワード単位のデータに対応する修正フラグが、修正する必要があるデータであることを表す修正フラグに変更され、一時記憶手段に記憶されている複数ワード単位のデータと、対応するアドレスおよび修正フラグとが読み出されて、記憶手段に供給され、修正フラグをマスク信号として用いて、記憶手段の、記憶手段に供給されるアドレスに、そのアドレスとともに供給される複数ワード単位のデータが記憶されることにより、記憶手段が記憶しているデータのうち、修正する必要があるデータであることを表す修正フラグに対応するデータのみが、そのデータに対応する、記憶手段に供給される複数ワード単位のデータを構成するデータに修正される。
【発明の効果】
【００２１】
以上のように、本発明の一側面によれば、画像を変形することができる。
【００２２】
また、本発明の一側面によれば、データを記憶するメモリに対するアクセス効率を維持しつつ、メモリ帯域を節約し、消費電力と製造コストを削減することができる。
【発明を実施するための最良の形態】
【００２３】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００２４】
本発明の一側面の画像処理装置（例えば、図１の画像処理システム５１）は、第１に、
複数ワード単位（例えば、キャッシュブロック単位）で、所定のアドレス(例えば、テクスチャキャッシュブロック単位アドレス)に、前記ワード単位のデータを記憶する記憶手段（例えば、図３のアドレスメモリ１０４）と、
前記ワード単位のデータを出力する出力手段（例えば、図３のデプステスト部１２５）と、
前記出力手段により出力されたワード単位のデータを含む前記複数ワード単位のデータと、前記アドレス、および、その複数ワード単位のデータを構成する前記ワード単位のデータが、そのデータに対応する前記記憶手段に記憶されているデータを修正する必要があるデータであるかどうかを前記ワード単位で表す修正フラグとを対応付けて、一時的に記憶する一時記憶手段（例えば、図５のアレイ１４１）と、
前記一時記憶手段に記憶されている複数ワード単位のデータと、対応する前記アドレスおよび前記修正フラグとを読み出し、前記記憶手段に供給する供給手段(例えば、図５の制御部１４３)と
を備え、
前記一時記憶手段は、前記ワード単位のデータを記憶する場合、そのワード単位のデータに対応する修正フラグを、修正する必要があるデータであることを表す修正フラグに変更し（例えば、図７のステップＳ５５の処理）、
前記記憶手段は、前記修正フラグをマスク信号として用いて、前記供給手段により供給されるアドレスに、そのアドレスとともに供給される複数ワード単位のデータを記憶することにより、自分自身が記憶しているデータのうち、修正する必要があるデータであることを表す修正フラグに対応するデータのみを、そのデータに対応する、前記供給手段から供給される複数ワード単位のデータを構成するデータに修正する。
【００２５】
本発明の一側面の画像処理装置は、
前記一時記憶手段はまた、前記複数ワード単位のデータに対応付けて、その複数ワード単位のデータを前記記憶手段に優先的に供給するかどうかを表す供給情報(例えば、追い出し制御情報)を記憶し、
前記供給手段は、前記供給情報に基づいて、前記一時記憶手段に記憶されている複数ワード単位のデータから、供給対象とする複数ワード単位のデータを選択し（例えば、図８のステップＳ７１の処理）、その供給対象とする複数ワード単位のデータと、対応する前記アドレスおよび前記修正フラグとを読み出し、前記記憶手段に供給する（例えば、図８のステップＳ７３の処理）。
【００２６】
本発明の一側面の画像処理装置は、
前記一時記憶手段は、前記ワード単位のデータを記憶する場合、そのワード単位のデータを含む複数ワード単位のデータに比べて、そのワード単位のデータよりも時間的に前に記憶されたワード単位のデータを含む複数ワード単位のデータを、前記記憶手段に優先的に供給するように、記憶対象であるワード単位のデータを含む複数ワード単位のデータに対応付けて、前記供給情報を記憶する（例えば、図７のステップＳ５６の処理）。
【００２７】
本発明の一側面の画像処理装置は、第２に、
ポリゴンの頂点に関するデータである頂点データを、ポリゴン単位で生成する生成手段（例えば、図３のCPU１２１）と、
前記頂点データを、前記ポリゴンに対応する画素に関する画素単位のデータである画素データに変換する変換手段（例えば、図３のDDA１２４）と
をさらに備え、
前記出力手段は、前記画素データを、前記ワード単位のデータとして出力する。
【００２８】
本発明の一側面の画像処理方法は、
複数ワード単位で、所定のアドレスに、前記ワード単位のデータを記憶する記憶手段(例えば、図３のアドレスメモリ１０４)と、前記ワード単位のデータを含む前記複数ワード単位のデータと、前記アドレス、および、その複数ワード単位のデータを構成する前記ワード単位のデータが、そのデータに対応する前記記憶手段に記憶されているデータを修正する必要があるデータであるかどうかを前記ワード単位で表す修正フラグとを対応付けて、一時的に記憶する一時記憶手段(例えば、図５のアレイ１４１)とを備える画像処理装置（例えば、図１の画像処理システム５１）が、
前記ワード単位のデータを出力し（例えば、図４のステップＳ３７）、
そのワード単位のデータを前記一時記憶手段に記憶させるとともに、そのワード単位のデータに対応する修正フラグを、修正する必要があるデータであることを表す修正フラグに変更し（例えば、図７のステップＳ５５）、
前記一時記憶手段に記憶されている複数ワード単位のデータと、対応する前記アドレスおよび前記修正フラグとを読み出し、前記記憶手段に供給し(例えば、図８のステップＳ７３)、
前記修正フラグをマスク信号として用いて、前記記憶手段の、前記記憶手段に供給されるアドレスに、そのアドレスとともに供給される複数ワード単位のデータを記憶させることにより、前記記憶手段が記憶しているデータのうち、修正する必要があるデータであることを表す修正フラグに対応するデータのみを、そのデータに対応する、前記記憶手段に供給される複数ワード単位のデータを構成するデータに修正する
ステップを含む。
【００２９】
図１は、本発明を適用した画像処理システム５１の構成例を示すブロック図である。
【００３０】
図１の画像処理システム５１は、デジタル画像特殊効果装置(Digital Multi Effects（DME）)６１、外部メモリ６２、および外部メモリ６３から構成される。画像処理システム５１は、入力されたフィールド単位の画像である入力画像を縮小、拡大、型の変更、回転、左右反転もしくは上下反転、または移動させたり、入力画像に特殊効果(例えば、モザイク、ポスタリゼーション、ネガポジ反転、水平方向または垂直方向のデフォーカスなど)を施すことにより、入力画像を変形し、変形後のフレーム単位の画像を出力する。
【００３１】
なお、入力画像は、各画素の輝度信号、色差信号、およびキーイングに用いられるキー信号を表す値である画素値から構成される。また、画像処理システム５１の各部は、外部メモリ６３に記憶されているプログラムにしたがって、各種の処理を実行する。
【００３２】
DME６１は、例えばIC（Integrated Circuit）やLSIなどにより構成される。DME６１は、前処理部７１、水平フィルタ７２、垂直フィルタ７３、ＩＰ（Interlace Progressive）変換部７４、RAM（Random Access Memory）モジュール７５、補間演算部７６、付加部７７、メモリ制御部７８、およびアドレス生成部７９から構成される。
【００３３】
DME６１には、テクスチャマッピングにおいて貼り付けられる画像である入力画像とタイミング信号が供給される。入力画像は、前処理部７１に供給される。タイミング信号は、DME６１の各部に供給され、各部はタイミング信号に応じて処理を行う。
【００３４】
前処理部７１は、アドレス生成部７９から供給される指示信号に応じて、入力画像に対して、モザイク、ポスタリゼーション、ネガポジ反転などの特殊効果を施す。具体的には、前処理部７１は、入力画像を構成する画素のうちの、所定の画素に対して画素単位でフィルタ処理を行うことにより、入力画像にモザイクを施す。また、前処理部７１は、入力画像を構成する各画素の画素値の階調数を変更することにより、入力画像にポスタリゼーションを施す。さらに、前処理部７１は、入力画像を構成する各画素の画素値の階調を反転することにより、入力画像にネガポジ反転を施す。前処理部７１は、特殊効果を施した結果得られる、フィールド単位の画像を、水平フィルタ７２に供給する。
【００３５】
水平フィルタ７２は、アドレス生成部７９から供給される水平方向の縮小率に応じて、画像を縮小する場合に生じる水平方向のエリアシング成分を除去するために、前処理部７１からのフィールド単位の画像に対して、水平方向の縮小率に対応するフィルタ処理を行う。また、水平フィルタ７２は、アドレス生成部７９から供給される指示信号に応じて、特殊効果として、水平方向のデフォーカスを施す。水平フィルタ７２は、フィルタ処理や水平方向のデフォーカスを施した結果得られる、フィールド単位の画像を、メモリ制御部７８を介して、外部メモリ６２に供給させ、記憶させる。
【００３６】
垂直フィルタ７３は、アドレス生成部７９から供給される垂直方向の縮小率に応じて、画像を縮小する場合に生じる垂直方向のエリアシング成分を除去するために、メモリ制御部７８から供給される、外部メモリ６２から垂直方向に読み出されたフィールド単位の画像に対して、垂直方向の縮小率に対応するフィルタ処理を行う。また、垂直フィルタ７３は、アドレス生成部７９から供給される指示信号に応じて、特殊効果として、垂直方向のデフォーカスを施す。垂直フィルタ７３は、フィルタ処理や垂直方向のデフォーカスを施した結果得られる、フィールド単位の画像を、ＩＰ変換部７４に供給するとともに、メモリ制御部７８を介して外部メモリ６２に供給させ、記憶させる。
【００３７】
ＩＰ変換部７４は、垂直フィルタ７３から供給される、フィールド単位の画像(インタレース画像)を、メモリ制御部７８から供給される、その画像の直前のフィールド単位の画像と、直前の前のフィールド単位の画像とを参照してＩＰ変換する。ＩＰ変換部７４は、ＩＰ変換の結果得られるフレーム単位の画像（プログレッシブ画像）を、RAMモジュール７５に供給する。
【００３８】
RAMモジュール７５は、ＩＰ変換部７４からのフレーム単位の画像を記憶する。また、RAMモジュール７５は、アドレス生成部７９から供給される、テクスチャアドレスの整数部、即ち補間演算部７６による補間演算の対象とする画素(以下、補間画素という)の入力画像上の座標における水平方向の座標値の整数部および垂直方向の座標値の整数部に基づいて、既に記憶されているフレーム単位の画像を構成する各画素の画素値から、補間画素の補間に用いる複数の画素の画素値、例えば補間画素の周辺の６４個の画素の画素値を画素値群として読み出し、補間演算部７６に供給する。
【００３９】
なお、入力画像上の座標において、入力画像を構成する画素の水平方向および垂直方向の座標値は、整数値となるようになっている。
【００４０】
補間演算部７６は、アドレス生成部７９から供給される、テクスチャアドレスの小数部、即ち補間画素の入力画像上の座標における水平方向および垂直方向の座標値の小数部と、RAMモジュール７５から供給される画素値群とに基づいて、補間演算を行い、補間画素の画素値を補間することにより、テクスチャマッピングを行う。補間演算部７６は、補間後のフレーム単位の画像を、メモリ制御部７８を介して外部メモリ６２に供給させ、記憶させる。
【００４１】
付加部７７は、アドレス生成部７９から供給されるライティング係数を用いて陰影を付加し、付加後の画像を変形後の画像として出力する。
【００４２】
メモリ制御部７８は、外部メモリ６２に対する書き込みおよび読み出しを制御する。具体的には、メモリ制御部７８は、外部メモリ６２への書き込みを制御するための制御信号を外部メモリ６２に供給するとともに、水平フィルタ７２、垂直フィルタ７３、または補間演算部７６から供給される画像を外部メモリ６２に供給し、その画像を外部メモリ６２に書き込ませる。
【００４３】
また、メモリ制御部７８は、外部メモリ６２からの画像の読み出しを制御するための制御信号を外部メモリ６２に供給することにより読み出しを制御し、これにより外部メモリ６２から読み出された画像を、垂直フィルタ７３、ＩＰ変換部７４、および付加部７７に供給する。
【００４４】
アドレス生成部７９は、ユーザからの指令に応じて、各部を制御し、入力画像を変形する。また、アドレス生成部７９は、外部メモリ６３に対する書き込みおよび読み出しを制御する。
【００４５】
具体的には、アドレス生成部７９は、外部メモリ６３への書き込みを制御するための制御信号とともに、処理の途中結果や処理結果を外部メモリ６３に供給し、記憶させる。また、アドレス生成部７９は、外部メモリ６３からの処理の途中結果や処理結果の読み出しを制御するための制御信号を、外部メモリ６３に供給することにより、読み出しを制御し、外部メモリ６３から処理の途中結果や処理結果を読み出す。アドレス生成部７９の詳細は、図３を参照して後述する。
【００４６】
次に、図２を参照して、図１の画像処理システム５１が入力画像を変形する画像変形処理について説明する。この画像変形処理は、例えば、画像処理システム５１に入力画像が入力されたとき開始される。
【００４７】
ステップＳ１において、前処理部７１は、アドレス生成部７９から供給される指示信号に応じて、入力画像に対して、モザイク、ポスタリゼーション、またはネガポジ反転を施す。そして、前処理部７１は、その結果得られるフィールド単位の画像を水平フィルタ７２に供給し、ステップＳ２に進む。なお、アドレス生成部７９から指令信号が供給されない場合、処理はステップＳ１をスキップして、ステップＳ２に進む。
【００４８】
ステップＳ２において、水平フィルタ７２は、アドレス生成部７９から供給される水平方向の縮小率に応じて、前処理部７１からのフィールド単位の画像に対して、水平方向の縮小率に対応するフィルタ処理を行う。また、水平フィルタ７２は、アドレス生成部７９から供給される指示信号に応じて、特殊効果として、水平方向のデフォーカスを施す。そして、水平フィルタ７２は、フィルタ処理や水平方向のデフォーカスを施した結果得られる、フィールド単位の画像を、メモリ制御部７８に供給する。
【００４９】
ステップＳ２の処理後は、ステップＳ３に進み、メモリ制御部７８は、外部メモリ６２への書き込みを制御するための制御信号とともに、水平フィルタ７２から供給されるフィールド単位の画像を、外部メモリ６２に供給し、その画像を記憶させる。ステップＳ３の処理後は、ステップＳ４に進み、メモリ制御部７８は、外部メモリ６２からの画像の読み出しを制御するための制御信号を外部メモリ６２に供給することにより、ステップＳ３で記憶されるフィールド単位の画像を垂直方向に、外部メモリ６２から読み出し、垂直フィルタ７３に供給する。
【００５０】
ステップＳ４の処理後は、ステップＳ５に進み、垂直フィルタ７３は、アドレス生成部７９から供給される垂直方向の縮小率に応じて、メモリ制御部７８から供給されるフィールド単位の画像に対して、垂直方向の縮小率に対応するフィルタ処理を行う。また、垂直フィルタ７３は、アドレス生成部７９から供給される指示信号に応じて、特殊効果として、垂直方向のデフォーカスを施す。そして、垂直フィルタ７３は、フィルタ処理や垂直方向のデフォーカスを施した結果得られる、フィールド単位の画像をＩＰ変換部７４に供給するとともに、メモリ制御部７８に供給する。
【００５１】
ステップＳ５の処理後は、ステップＳ６に進み、メモリ制御部７８は、外部メモリ６２への書き込みを制御するための制御信号とともに、垂直フィルタ７３から供給されるフィールド単位の画像を、外部メモリ６２に供給し、その画像を記憶させる。ステップＳ６の処理後は、ステップＳ７に進み、メモリ制御部７８は、外部メモリ６２からの画像の読み出しを制御するための制御信号を外部メモリ６２に供給することにより、直前のステップＳ６の処理で記憶させたフィールド単位の画像の直前のフィールド単位の画像と、直前の前のフィールド単位の画像を、外部メモリ６２から読み出し、ＩＰ変換部７４に供給する。
【００５２】
ステップＳ７の処理後は、ステップＳ８に進み、ＩＰ変換部７４は、ステップＳ５で垂直フィルタ６３から供給されるフィールド単位の画像を、ステップＳ７でメモリ制御部７８から供給される２枚の画像を参照してＩＰ変換する。そして、ＩＰ変換部７４は、ＩＰ変換の結果得られるフレーム単位の画像を、RAMモジュール７５に供給する。
【００５３】
ステップＳ９において、RAMモジュール７５は、ＩＰ変換部７４からのフレーム単位の画像を記憶し、ステップＳ１０に進む。
【００５４】
ステップＳ１０において、RAMモジュール７５は、アドレス生成部７９から供給されるテクスチャアドレスの整数部に基づいて、既に記憶されているフレーム単位の画像を構成する各画素の画素値から、補間画素の補間に用いる複数の画素の画素値を画素値群として読み出し、補間演算部７６に供給する。
【００５５】
ステップＳ１０の処理後は、ステップＳ１１に進み、補間演算部７６は、アドレス生成部７９から供給されるテクスチャアドレスの小数部と、RAMモジュール７５から供給される画素値群とに基づいて、補間演算を行い、補間画素の画素値を補間する。そして、補間演算部７６は、補間後の画像をメモリ制御部７８に供給する。
【００５６】
ステップＳ１１の処理後は、ステップＳ１２に進み、メモリ制御部７８は、外部メモリ７２への書き込みを制御するための制御信号とともに、補間演算部７６からの画像を外部メモリ６２に供給し、その画像を記憶させる。ステップＳ１２の処理後は、ステップＳ１３に進み、メモリ制御部７８は、外部メモリ６２からの画像の読み出しを制御するための制御信号を外部メモリ６２に供給することにより、ステップＳ１２で記憶される画像を読み出し、ステップＳ１４に進む。
【００５７】
ステップＳ１４において、付加部７７は、アドレス生成部７９から供給されるライティング係数を用いて陰影を付加する。そして、付加部７７は、付加後の画像を変形後の画像として出力し、処理は終了する。
【００５８】
なお、上述した図２の画像変形処理のステップＳ１乃至Ｓ９の処理は、補間前の画素単位で行われ、ステップＳ１０乃至Ｓ１４の処理は、補間画素単位で行われる。
【００５９】
図３は、図１の外部メモリ６３とアドレス生成部７９の詳細構成例を示すブロック図である。
【００６０】
図３の外部メモリ６３は、メモリ１０１、ｚデータメモリ１０２、ｚデータメモリ１０３、およびアドレスメモリ１０４により構成される。
【００６１】
また、アドレス生成部７９は、CPU(Central Processing Unit)１２１、頂点演算部１２２、DDA(Digital Differential Analyzer)設定部１２３、DDA１２４、デプステスト部１２５、ｚデータキャッシュ１２６、切替部１２７、アドレスキャッシュ１２８、メモリ制御部１２９、および出力部１３０により構成される。
【００６２】
CPU１２１は、外部メモリ６３のメモリ１０１に記憶されているプログラムにしたがって、画像処理システム５１の各部を制御する。
【００６３】
例えば、CPU１２１は、ユーザの指示に応じて、モザイク、ポスタリゼーション、またはネガポジ反転を指示するための指示信号を、前処理部７１に供給する。また、CPU１２１は、ユーザの指示に応じて、水平方向のデフォーカスを指示するための指示信号を水平フィルタ７２に供給したり、垂直方向のデフォーカスを指示するための指示信号を垂直フィルタ７３に供給する。
【００６４】
また、CPU１２１は、ユーザの指示に応じて、水平方向の縮小率を水平フィルタ７２に供給するとともに、垂直方向の縮小率を垂直フィルタ７３に供給する。さらに、CPU１２１は、ユーザのモデリングの作業に応じて、変形後のフレーム単位の画像に対応するモデルを構成する各ポリゴンの頂点に関するデータ（以下、頂点データという）を、所定の順序で、ポリゴン単位で生成し、頂点演算部１２２に供給する。
【００６５】
なお、頂点データは、例えば、モデリング座標上の頂点の座標値、テクスチャアドレス、ライティング係数などの頂点単位のデータにより構成される。
【００６６】
また、CPU１２１は、メモリ１０１に対する書き込みおよび読み出しを制御する。例えば、CPU１２１は、メモリ１０１への書き込みを制御する制御信号とともに、処理の途中結果や処理結果をメモリ１０１に供給し、処理の途中結果や処理結果をメモリ１０１に記憶させる。また、CPU１２１は、メモリ１０１からの読み出しを制御する制御信号を供給することにより、メモリ１０１から処理の途中結果や処理結果を読み出し、上述した各種の処理を行う。
【００６７】
頂点演算部１２２は、CPU１２１から供給される頂点データに基づいて、ポリゴン単位で、平行移動、拡大縮小、回転などのモデリング変換、クリッピング、スクリーンへの投影を行う透視投影変換などの頂点演算を行い、その結果得られるポリゴン単位の頂点データを、DDA設定部１２３に供給する。DDA設定部１２３は、頂点演算部１２２からのポリゴン単位の頂点データに基づいて、例えば、スクリーン上の位置の変化に応じたテクスチャアドレスの変化分などの、DDA１２４に必要なパラメータを計算する。DDA設定部１２３は、ポリゴン単位の頂点データとパラメータをDDA１２４に供給する。
【００６８】
DDA１２４は、DDA設定部１２３から供給されるパラメータに基づいて、ポリゴン単位の頂点データを、画素データに変換する。なお、画素データは、仮想視点とスクリーン上の画素を結ぶ直線が面と交わる点のｚ座標を表すｚデータ、テクスチャアドレス、ライティング係数、出力画像上の画素の位置を表すデータ(以下、位置データという)などの画素単位のデータにより構成される。また、以下では、テクスチャアドレスは、１ワードのデータであるものとする。
【００６９】
DDA１２４は、変換の結果得られた画素データを、デプステスト部１２５に供給する。デプステスト部１２５は、DDA１２４からの画素データと、ｚデータキャッシュ１２６に記憶されている、その画素データに対応する画素の画素データとを用いて、陰面消去の処理を行う。
【００７０】
具体的には、デプステスト部１２５は、DDA１２４からの画素データに含まれる位置データに対応する画素単位のアドレス(以下、ｚデータ画素単位アドレスという)に対応付けて記憶されているｚデータの読出を、ｚデータキャッシュ１２６に要求し、その要求に応じて読み出されたｚデータを取得する。
【００７１】
そして、デプステスト部１２５は、そのｚデータと、DDA１２４からの画素データに含まれるｚデータとを比較することにより、DDA１２４からの画素データに対応するポリゴン（以下、適宜、新ポリゴンという）が、既にｚデータキャッシュ１２６に記憶されているｚデータに対応するポリゴン（以下、適宜、古ポリゴンという）よりも仮想視点側に位置するかどうかを判定するデプステスト(深度テスト)を行う。
【００７２】
デプステスト部１２５は、デプステストの結果に応じて、古ポリゴンよりも仮想視点側に位置する新ポリゴンの画素データに含まれるｚデータとライティング係数を、その画素データに対応するｚデータ画素単位アドレスとともに、ｚデータキャッシュ１２６に供給する。その結果、ｚデータキャッシュ１２６は、デプステスト部１２５からのｚデータ画素単位アドレスに対応付けて記憶されている古ポリゴンのｚデータとライティング係数を、新ポリゴンのｚデータとライティング係数に更新する。
【００７３】
また、デプステスト部１２５は、古ポリゴンよりも仮想視点側に位置する新ポリゴンの画素データに含まれるテクスチャアドレスを、その画素データに含まれる位置データに対応する画素単位のアドレス、即ちワード単位のテクスチャアドレスごとのアドレス(以下、テクスチャワード単位アドレスという)とともに、アドレスキャッシュ１２８に出力する。
【００７４】
ｚデータキャッシュ１２６は、キャッシュブロック単位のｚデータとライティング係数を、キャッシュブロックとして、それらが記憶されるｚデータメモリ１０２または１０３上のキャッシュブロック単位のアドレス(以下、ｚデータキャッシュブロック単位アドレスという)に対応付けて、キャッシュブロック領域に一時的に記憶する。なお、以下では、キャッシュブロック単位は、１６ワードであるものとする。
【００７５】
また、ｚデータキャッシュ１２６は、デプステスト部１２５から供給されるｚデータ画素単位アドレスに基づいて、既に記憶しているｚデータから、デプステスト部１２５から読出が要求された、そのｚデータ画素単位アドレスに対応するｚデータを検索する。即ち、ｚデータキャッシュ１２６は、デプステスト部１２５からのｚデータ画素単位アドレスに対応するｚデータキャッシュブロック単位アドレスに対応付けて記憶されている、要求対象のｚデータを含むキャッシュブロックを検索し、そのうちの要求対象のｚデータを検索結果とする。
【００７６】
要求対象のｚデータが検索された場合、ｚデータキャッシュ１２６は、検索結果であるｚデータと、対応するライティング係数とを、デプステスト部１２５に供給する。要求対象のｚデータが検索されない場合、即ち要求対象のｚデータを含むキャッシュブロックが記憶されていない場合、ｚデータキャッシュ１２６は、そのzデータとともにデプステスト部１２５から供給されたｚデータ画素単位アドレスに対応するｚデータキャッシュブロック単位アドレスを、切替部１２７に送信することにより、要求対象のｚデータと、対応するライティング係数の読出を切替部１２７に要求し、ｚデータメモリ１０２または１０３から、ｚデータとライティング係数をキャッシュブロック単位で読み出す。
【００７７】
ｚデータキャッシュ１２６はまた、要求に応じて切替部１２７から供給されてくる、キャッシュブロック単位のｚデータとライティング係数を、キャッシュブロックとして、要求時に切替部１２７に送信したｚデータキャッシュブロック単位アドレスに対応付けてキャッシュブロック領域に一時的に記憶し、そのｚデータをデプステスト部１２５に供給する。
【００７８】
また、ｚデータキャッシュ１２６は、記憶可能なキャッシュブロック領域がない場合、キャッシュブロックの追い出しを行う。具体的には、ｚデータキャッシュ１２６は、追い出しの対象となるキャッシュブロックを決定し、そのキャッシュブロック、並びに、それに対応付けられているｚデータキャッシュブロック単位アドレスを読み出し、追い出しの要求とともに切替部１２７に供給する。
【００７９】
切替部１２７は、ｚデータメモリ１０２と１０３に対する書き込みおよび読み出しを制御する。具体的には、切替部１２７は、ｚデータキャッシュ１２６の要求または出力部１３０の要求に応じて、制御するｚデータメモリを、外部メモリ６３のｚデータメモリ１０２および１０３の一方から他方に切り換える。例えば、切替部１２７は、ｚデータキャッシュ１２６からの読出の要求に応じて、ｚデータメモリ１０２および１０３の一方から、ｚデータキャッシュ１２６からのｚデータキャッシュブロック単位アドレスに記憶されている、キャッシュブロック単位のzデータとライティング係数を読み出し、ｚデータキャッシュ１２６に供給する。
【００８０】
また、切替部１２７は、ｚデータキャッシュ１２６からの追い出しの要求に応じて、ｚデータメモリ１０２および１０３の一方の、ｚデータキャッシュ１２６から供給されるｚデータキャッシュブロック単位アドレスに、キャッシュブロックとして供給されたｚデータとライティング係数を記憶させる。
【００８１】
さらに、切替部１２７は、出力部１３０からの要求に応じて、ｚデータメモリ１０２および１０３の他方から、ｚデータとライティング係数を読み出し、出力部１３０に供給する。その後、切替部１２７は、ｚデータメモリ１０２および１０３の他方に記憶されている、読み出されたｚデータとライティング係数をクリアする。
【００８２】
以上のように、ｚデータメモリ１０２およびｚデータメモリ１０３の一方は、デプステスト部１２５における比較用のｚデータと対応するライティング係数とを記憶し、他方は、出力部１３０を介して出力されるデプステスト終了後のｚデータとライティング係数とを記憶する。
【００８３】
即ち、切替部１２７は、１フレーム分のモデルに対応する画素データがデプステスト部１２５に供給されるごとに切替を行う。
【００８４】
アドレスキャッシュ１２８は、デプステスト部１２５からのテクスチャワード単位アドレスに基づいて、それとともに出力されるテクスチャアドレスを含むキャッシュブロック単位のテクスチャアドレスを、キャッシュブロックとして、それが記憶されるアドレスメモリ１０４上のキャッシュブロック単位のアドレス(以下、テクスチャキャッシュブロック単位アドレスという)に対応付けて、キャッシュブロック領域に一時的に記憶する。
【００８５】
また、アドレスキャッシュ１２８は、記憶可能なキャッシュブロック領域がない場合、キャッシュブロックの追い出しを行う。具体的には、アドレスキャッシュ１２８は、追い出しの対象となるキャッシュブロックを決定し、そのキャッシュブロック、それに対応付けられているテクスチャキャッシュブロック単位アドレスなどを読み出し、追い出しの要求とともにメモリ制御部１２９に供給する。
【００８６】
なお、アドレスキャッシュ１２８の詳細は、図５乃至図８を参照して後述する。
【００８７】
メモリ制御部１２９は、SDRAMなどにより構成されるアドレスメモリ１０４に対する書き込みおよび読み出しを制御する。具体的には、メモリ制御部１２９は、アドレスキャッシュ１２８からの要求に応じて、アドレスキャッシュ１２８からキャッシュブロックとして供給されるキャッシュブロック単位のテクスチャアドレスを、アドレスメモリ１０４の、そのキャッシュブロックとともに供給されるテクスチャキャッシュブロック単位アドレスに、キャッシュブロック単位で記憶させることにより、アドレスメモリ１０４に記憶されているテクスチャアドレスを修正する。
【００８８】
このとき、メモリ制御部１２９は、メモリ制御部１２９から供給される、後述するワード単位の修正フラグをライトマスク信号として用いて、キャッシュブロック単位のテクスチャアドレスをアドレスメモリ１０４に記憶させることにより、アドレスメモリ１０４に記憶されている、そのキャッシュブロック単位のテクスチャアドレスに対応するテクスチャアドレスのうち、修正する必要があるテクスチャアドレスのみを修正する。
【００８９】
また、メモリ制御部１２９は、出力部１３０からの要求に応じて、アドレスメモリ１０４から、テクスチャアドレスを読み出し、出力部１３０に供給する。その後、メモリ制御部１２９は、アドレスメモリ１０４に記憶されている、読み出されたテクスチャアドレスをクリアする。
【００９０】
出力部１３０は、付加部７７から出力する変形後の画素の順に、その画素のｚデータとライティング係数の読出を切替部１２７に要求するとともに、テクスチャアドレスの読出をメモリ制御部１２９に要求する。出力部１３０は、要求に応じて切替部１２７から供給されるｚデータとライティング係数のうち、ｚデータを他のDMEなどに出力するとともに、ライティング係数を付加部７７に供給する。また、出力部１３０は、要求応じてメモリ制御部１２９から供給されるテクスチャアドレスのうちの整数部をRAMモジュール７５に供給するとともに、小数部を補間演算部７６に供給する。
【００９１】
次に、図４を参照して、アドレス生成部７９がテクスチャアドレスを生成するアドレス生成処理について説明する。このアドレス生成処理は、例えばユーザがモデリングの作業を行ったとき、開始される。なお、図４のアドレス生成処理は、変形後のフレーム単位の画像に対応するモデルごとに行われる。
【００９２】
ステップＳ３１において、CPU１２１は、ユーザのモデリングの作業に応じて、変形後の画像に対応するモデルを構成する各ポリゴンの頂点データを、所定の順序で生成し、頂点演算部１２２に供給する。
【００９３】
ステップＳ３１の処理後は、ステップＳ３２に進み、頂点演算部１２２は、CPU１２１から供給される頂点データに基づいて、ポリゴンごとに頂点演算を行う。頂点演算部１２２は、頂点演算の結果得られる、ポリゴン単位の頂点データを、DDA設定部１２３に供給する。
【００９４】
ステップＳ３２の処理後は、ステップＳ３３に進み、DDA設定部１２３は、頂点演算部１２２からのポリゴン単位の頂点データに基づいて、DDA１２４に必要なパラメータを計算する。DDA設定部１２３は、ポリゴン単位の頂点データとパラメータをDDA１２４に供給する。
【００９５】
ステップＳ３３の処理後は、ステップＳ３４に進み、DDA１２４は、DDA設定部１２３から供給されるパラメータに基づいて、ポリゴン単位の頂点データを、画素データに変換し、デプステスト部１２５に供給する。
【００９６】
ステップＳ３４の処理後は、ステップＳ３５に進み、デプステスト部１２５は、ｚデータキャッシュ１２６に、DDA１２４からの画素データに対応する画素のｚデータの読出を要求し、その要求に応じて読み出されたｚデータを取得する。
【００９７】
ステップＳ３５の処理後は、ステップＳ３６に進み、デプステスト部１２５は、ステップＳ３５で取得されたｚデータと、DDA１２４からの画素データに含まれるｚデータとを比較することにより、新ポリゴンが、古ポリゴンよりも仮想視点側に位置するかどうかを判定するデプステストを行う。
【００９８】
ステップＳ３６の処理後は、ステップＳ３７に進み、デプステスト部１２５は、デプステストの結果に応じて、新ポリゴンが古ポリゴンよりも仮想視点側に位置するかどうかを判定する。
【００９９】
ステップＳ３７において、新ポリゴンが古ポリゴンよりも仮想視点側に位置すると判定された場合、デプステスト部１２５は、その新ポリゴンに対応する画素データに含まれるｚデータおよびライティング係数と、ｚデータ画素単位アドレスとを、ｚデータキャッシュ１２６に供給するとともに、テクスチャアドレスとテクスチャワード単位アドレスを、アドレスキャッシュ１２８に供給する。
【０１００】
その後、ステップＳ３８において、ｚデータキャッシュ１２６は、デプステスト部１２５からのｚデータとライティング係数を、ｚデータ画素単位アドレスに対応付けて記憶することにより、古ポリゴンのｚデータとライティング係数を、新ポリゴンのｚデータとライティング係数に更新する。
【０１０１】
ステップＳ３８の処理後は、ステップＳ３９に進み、アドレスキャッシュ１２８は、テクスチャアドレスを、テクスチャワード単位アドレスに対応付けて記憶する。
【０１０２】
ステップＳ３７において、新ポリゴンが古ポリゴンよりも仮想視点側に位置しない、即ち古ポリゴンが新ポリゴンよりも仮想視点側に位置すると判定された場合、またはステップＳ３９の処理後は、ステップＳ４０に進み、デプステスト部１２５は、DDA１２４から供給される、１フレーム分のモデルに対応するすべてのｚデータについて、デプステストを行ったかどうかを判定し、すべてのｚデータについてデプステストを行ってないと判定した場合、ステップＳ３５に戻り、以降の処理を同様に行う。
【０１０３】
また、ステップＳ４０において、すべてのｚデータについてデプステストを行ったと判定された場合、ステップＳ４１に進み、ｚデータキャッシュ１２６とアドレスキャッシュ１２８は、キャッシュブロックの追い出しを行う。
【０１０４】
即ち、ｚデータキャッシュ１２６は、キャッシュブロック領域に記憶されているキャッシュブロック、および、それに対応付けて記憶されているｚデータキャッシュブロック単位アドレスを、切替部１２７を介してｚデータメモリ１０２または１０３に供給する。
【０１０５】
なお、このとき、ｚデータキャッシュ１２６は、すべてのキャッシュブロック領域に記憶されているキャッシュブロックの追い出しを行ってもよいし、更新が行われたキャッシュブロックの追い出しだけを行うようにしてもよい。
【０１０６】
また、アドレスキャッシュ１２８は、すべてのキャッシュブロックを追い出し対象とした、後述する図８の追い出し処理を行う。
【０１０７】
図４のアドレス生成処理の後、出力部１３０は、付加部７７から出力する画素の順に、その画素のｚデータとライティング係数を切替部１２７から取得し、ｚデータを他のDMEなどに出力するとともに、ライティング係数を付加部７７に供給する。また、出力部１３０は、その画素のテクスチャアドレスをメモリ制御部１２９から取得し、そのテクスチャアドレスのうちの整数部をRAMモジュール７５に供給するとともに、小数部を補間演算部７６に供給する。
【０１０８】
次に、図５は、アドレスキャッシュ１２８の詳細構成例を示している。
【０１０９】
図５のアドレスキャッシュ１２８は、２ウェイのセットアソシアティブマッピング方式のキャッシュであり、２組のアレイ１４１および１４２と、制御部１４３とから構成される。
【０１１０】
アレイ１４１は、キャッシュブロックアドレスアレイ１５１とキャッシュブロックアレイ１６１から構成され、アレイ１４２は、キャッシュブロックアドレスアレイ１５２とキャッシュブロックアレイ１６２から構成される。
【０１１１】
キャッシュブロックアドレスアレイ１５１は、キャッシュブロックアレイ１６１を構成するキャッシュブロック領域１６１Ａの数のキャッシュブロック情報１５１Ａにより構成される。キャッシュブロック情報１５１Ａは、エントリ番号、アドレス情報、ワード単位の修正フラグ、および追い出し制御情報から構成される。エントリ番号は、キャッシュブロックアレイ１６１を構成する各キャッシュブロック領域１６１Ａに付与された番号であり、キャッシュブロック領域１６１Ａに対応している。
【０１１２】
図５の例では、キャッシュブロックアレイ１６１は、６４個のキャッシュブロック領域１６１Ａから構成されており、各キャッシュブロック領域１６１Ａには、それぞれ０（「000000」）乃至６３（「111111」）の番号のいずれかが付与されている。従って、エントリ番号は、０乃至６３のいずれかの番号である。
【０１１３】
アドレス情報は、対応するエントリ番号１５１Ａが付与されたキャッシュブロック領域１６１Ａに記憶されている、キャッシュブロック単位のテクスチャアドレスが記憶されるテクスチャキャッシュブロック単位アドレスの情報である。
【０１１４】
ワード単位の修正フラグは、対応するキャッシュブロック領域１６１Ａに記憶されるワード単位のテクスチャアドレスが、そのテクスチャアドレスに対応するアドレスメモリ１０４に記憶されているテクスチャアドレスを修正する必要があるデータであるかどうかをワード単位で表すフラグである。
【０１１５】
追い出し制御情報は、対応するキャッシュブロック領域１６１Ａに対して、そのキャッシュブロック領域１６１Ａに付与されたエントリ番号と同一のエントリ番号が付与されたキャッシュブロックアレイ１６２のキャッシュブロック領域１６２Ａより優先的にキャッシュブロックの追い出しを行うかどうかを表す情報である。
【０１１６】
キャッシュブロックアレイ１６１は、エントリ番号の０乃至６４のいずれかの番号が付与された６４個のキャッシュブロック領域１６１Ａにより構成される。各キャッシュブロック領域１６１Ａは、キャッシュブロックである１６ワードのテクスチャアドレス、即ち１６個の画素の画素データに含まれるテクスチャアドレスを、キャッシュブロックとして記憶する。
【０１１７】
以上のように、アレイ１４１は、エントリ番号を用いて、キャッシュブロックアドレスアレイ１５１のキャッシュブロック情報１５１Ａと、キャッシュブロックアレイ１６１のキャッシュブロック領域１６１Ａに記憶されるキャッシュブロックとを対応付けている。
【０１１８】
なお、アレイ１４２は、アレイ１４１と同様に構成されるので、説明は省略するが、図５の例では、アレイ１４２のキャッシュブロックアドレスアレイ１５２のエントリ番号「000011」に対応付けて、アドレス情報「0001 0011 1100 10」が記憶されている。
【０１１９】
制御部１４３には、デプステスト部１２５からテクスチャアドレスと、テクスチャワード単位アドレスとが供給される。制御部１４３は、テクスチャワード単位アドレスに基づいて、テクスチャアドレスを、キャッシュブロックアレイ１６１または１６２に記憶させる。また、制御部１４３は、デプステスト部１２５からのテクスチャアドレスを記憶可能なキャッシュブロック領域１６１Ａと１６２Ａに、既に記憶されている他のテクスチャアドレスが記憶されている場合、キャッシュブロックの追い出しを行う。
【０１２０】
なお、以下では、アレイ１４１と１４２を区別する必要がない場合、それらをまとめてアレイ１４０といい、キャッシュブロックアドレスアレイ１５１と１５２を区別する必要がない場合、それらをまとめてキャッシュブロックアドレスアレイ１５０という。また、キャッシュ情報１５１Ａと１５２Ａを区別する必要がない場合、それらをまとめてキャッシュ情報１５０Ａといい、キャッシュブロックアレイ１６１と１６２を区別する必要がない場合、それらをまとめてキャッシュブロックアドレスアレイ１６０という。
【０１２１】
さらに、キャッシュブロック領域１６１Ａと１６２Ａを区別する必要がない場合、それらをまとめてキャッシュブロック領域１６０Ａという。
【０１２２】
図６は、デプステスト部１２５がアドレスキャッシュ１２８に供給するテクスチャワード単位アドレスの例を示している。
【０１２３】
図６の１段目は、テクスチャワード単位アドレスを１６進数で表したものであり、２段目は、テクスチャワード単位アドレスを２進数で表したものである。即ち、図６のテクスチャワード単位アドレスは、１６進数で表すと、「13C834」となり、２進数で表すと、「0001 0011 1100 1000 0011 0100」となっている。
【０１２４】
図６の２４ビットのテクスチャワード単位アドレスは、上位から順に、１４ビットのアドレス情報、６ビットのエントリ番号、および４ビットのオフセットが配置されることにより構成される。ここで、オフセットとは、テクスチャアドレスを、キャッシュブロック領域１６０Ａの先頭から何ワード目に記憶するかを表す情報である。
【０１２５】
図５の制御部１４３は、デプステスト部１２５から、図６に示したテクスチャワード単位アドレスが供給された場合、そのテクスチャワード単位アドレスのうちの、上位１４ビットのアドレス情報「0001 0011 1100 10」と、６ビットのエントリ番号「000011」とから、キャッシュブロックアドレスアレイ１５０の、エントリ番号「000011」に対応付けて、アドレス情報「0001 0011 1100 10」が記憶されているかどうかを判定する。
【０１２６】
図５のキャッシュブロックアドレスアレイ１５２には、エントリ番号「000011」に対応付けて、アドレス情報「0001 0011 1100 10」が記憶されているので、キャッシュブロックアレイ１６２のエントリ番号「000011」が付与されたキャッシュブロック領域１６２Ａの先頭から、オフセット「0100」で表される８ワード目に、デプステスト部１２５からのテクスチャアドレスを記憶する。
【０１２７】
次に、図７を参照して、アドレスキャッシュ１２８が、テクスチャアドレスを記憶する記憶処理について説明する。この記憶処理は、図４のステップＳ３９に対応する。
【０１２８】
ステップＳ５１において、制御部１４３は、２個のキャッシュブロックアレイ１６０内のキャッシュブロック領域１６０Ａのうちのいずれかが、デプステスト部１２５から供給されるテクスチャワード単位アドレスに対応するキャッシュブロック領域としてヒットしたかどうかを判定する。具体的には、制御部１４３は、キャッシュブロックアドレスアレイ１５０と１５１のいずれかの、テクスチャワード単位アドレス（図６）に含まれるエントリ番号に対応するキャッシュブロック情報１５０Ａに、テクスチャワード単位アドレスに含まれるアドレス情報が含まれているかどうかを判定する。
【０１２９】
ステップＳ５１において、ヒットしていないと判定された場合、ステップＳ５２に進み、制御部１４３は、キャッシュブロックを追い出す追い出し処理を行う。この追い出し処理の詳細は、図８を参照して後述する。
【０１３０】
ステップＳ５２の処理後は、ステップＳ５３に進み、制御部１４３は、追い出し対象とされたキャッシュブロック領域１６０Ａに対応するキャッシュブロック情報１５０Ａのアドレス情報として、デプステスト部１２５からのテクスチャワード単位アドレスに含まれるアドレス情報を記憶する。
【０１３１】
ステップＳ５１において、ヒットしたと判定された場合、または、ステップＳ５３の処理後は、ステップＳ５４に進み、制御部１４３は、追い出し対象とされたキャッシュブロック領域１６０Ａの先頭から、デプステスト部１２５からのテクスチャワード単位アドレスに含まれるオフセットが表すワード目に、テクスチャアドレスを記憶させる。
【０１３２】
ステップＳ５４の処理後は、ステップＳ５５に進み、制御部１４３は、追い出し対象とされたキャッシュブロック領域１６０Ａに対応するキャッシュブロック情報１５０Ａ、即ちステップＳ５３で記憶されたアドレス情報を含むキャッシュブロック情報１５０Ａの、ステップＳ５２でテクスチャアドレスが記憶されたワード目に対応するワード単位の修正フラグを、修正する必要があるデータであることを表す値である「１」に設定する。
【０１３３】
ステップＳ５５の処理後は、ステップＳ５６において、制御部１４３は、追い出し対象とされたキャッシュブロック領域１６０Ａに対応するキャッシュブロック情報１５０Ａと、そのキャッシュブロック情報１５０Ａに含まれるエントリ番号と同一のエントリ番号を含む、他のキャッシュブロックアドレスアレイ１５０に記憶されるキャッシュブロック情報１５０Ａとに含まれる２個の追い出し制御情報を更新する。
【０１３４】
例えば、制御部１４３は、この２個の追い出し制御情報のうち、ステップＳ５５で設定されたワード単位の修正フラグとともに、キャッシュブロック情報１５０Ａに含まれる追い出し制御情報を、優先的に追い出さないことを表す情報に更新し、他の追い出し制御情報を、優先的に追い出すことを表す情報に更新する。
【０１３５】
これにより、同一のエントリ番号が付与されたキャッシュブロック領域１６０Ａのうち、より前にテクスチャアドレスが記憶されたキャッシュブロック領域１６０Ａに対する追い出しを、優先的に行うことができる。即ち、いまデプステスト部１２５から供給されたテクスチャアドレスを含むキャッシュブロックに比べて、そのテクスチャアドレスより前に記憶されたテクスチャアドレスを含むキャッシュブロックが、優先的にアドレスメモリ１０４に供給される。
【０１３６】
次に、図８を参照して、図７のステップＳ５２の追い出し処理について説明する。
【０１３７】
ステップＳ７１において、制御部１４３は、デプステスト部１２５から供給されるテクスチャワード単位アドレスに含まれるエントリ番号と同一のエントリ番号とともにキャッシュブロック情報１５０Ａに含まれる２個の追い出し制御情報に基づいて、その２個の追い出し制御情報のうち、優先的に追い出すことを表す追い出し制御情報に対応するキャッシュブロック領域１６０Ａに記憶されるキャッシュブロックを、追い出し対象とするキャッシュブロックとして選択し、ステップＳ７２に進む。
【０１３８】
ステップＳ７２において、制御部１４３は、追い出し対象とするキャッシュブロックに対応するワード単位の修正フラグがすべて「０」であるかどうかを判定し、すべて「０」ではないと判定した場合、ステップＳ７３に進む。
【０１３９】
ステップＳ７３において、制御部１４３は、追い出し対象とするキャッシュブロックを読み出すとともに、対応するキャッシュブロック情報１５１Ａに含まれるアドレス情報が表すテクスチャキャッシュブロック単位アドレスと、ワード単位の修正フラグとを読み出し、テクスチャアドレスとテクスチャキャッシュブロック単位アドレスを、メモリ制御部１２９を介してアドレスメモリ１０４に供給するとともに、ワード単位の修正フラグをライトマスク信号として、メモリ制御部１２９を介してアドレスメモリ１０４に供給する。
【０１４０】
この後、メモリ制御部１２９が、制御部１４３からのライトマスク信号を用いて、アドレスメモリ１０４のテクスチャキャッシュブロック単位アドレスに、制御部１４３から供給される１６ワードのテクスチャアドレスを記憶させることにより、アドレスメモリ１０４は、自分自身が記憶しているテクスチャアドレスのうち、修正フラグの「１」に対応するテクスチャアドレスを、そのテクスチャアドレスに対応する、制御部１４３から供給される１６ワードのテクスチャアドレスを構成するテクスチャアドレスに修正することができる。
【０１４１】
ステップＳ７２において、ワード単位の修正フラグがすべて「０」であると判定された場合、またはステップＳ７３の処理後は、図７のステップＳ５２に戻り、ステップＳ５３以降の処理が行われる。
【０１４２】
以上のように、制御部１４３は、ワード単位の修正フラグを記憶するので、それをライトマスク信号として、１６ワードのテクスチャアドレスとともに送信することにより、アドレスメモリ１０４は、１６ワードのテクスチャアドレスのうち、修正する必要があるワードのテクスチャアドレスだけを修正することができる。
【０１４３】
その結果、アドレスキャッシュ１２８は、アドレスメモリ１０４への一括書き込みを行うために、アドレスメモリ１０４に記憶されているテクスチャアドレスを、アドレスキャッシュ１２８上で修正する必要がないので、アクセス効率を維持するために、不要な読み込みを行う必要がなく、メモリ帯域を節約することができる。これにより、消費電力と製造コストを削減することができる。
【０１４４】
次に、図９を参照して、図１のDME６１が組み込まれた画像処理装置２０１の例について説明する。
【０１４５】
図９のCPU２５１とDME６１は、ROM（Read Only Memory）２５２、または記録部２５８に記録されているプログラムにしたがって各種の処理を実行する。RAM（Random Access Memory）２５３には、CPU２５１が実行するプログラムやデータなどが適宜記憶される。これらのDME６１、CPU２５１、ROM２５２、およびRAM２５３は、バス２５４により相互に接続されている。
【０１４６】
CPU２５１にはまた、バス２５４を介して入出力インターフェース２５５が接続されている。入出力インターフェース２５５には、キーボード、マウス、マイクロホン、図示せぬリモートコントローラから送信されてくる指令を受信する受信部などよりなる入力部２５６、ディスプレイ、スピーカなどよりなる出力部２５７が接続されている。CPU２５１は、入力部２５６から入力される指令に対応して各種の処理を実行する。そして、CPU２５１は、処理の結果を出力部２５７に出力する。
【０１４７】
例えば、CPU２５１は、入力部２５６から入力される指令に対応して、DME６１を制御し、入力画像を縮小、拡大、型の変更、回転、左右反転もしくは上下反転、または移動させたり、入力画像に特殊効果を施す。そして、CPU２５１は、DME６１から出力される変形後の画像に基づいて、画像を出力部２５７に表示させる。
【０１４８】
入出力インターフェース２５５に接続されている記録部２５８は、例えばハードディスクからなり、CPU２５１が実行するプログラムや各種のデータを記憶する。通信部２５９は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。なお、記録部２５８に記録されるプログラムは、通信部２５９を介して取得されるようにしてもよい。
【０１４９】
入出力インターフェース２５５に接続されているドライブ２６０は、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどのリムーバブルメディア２６１が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記録部２５８に転送され、記録される。
【０１５０】
次に、図１０を参照して、図１のDME６１が組み込まれた記録再生装置３００の例について説明する。
【０１５１】
図１０のCPU３０１とDME６１は、ROM３０６または記録部３０５に記録されているプログラムにしたがって各種の処理を実行する。RAM３０７には、CPU３０１が実行するプログラムやデータなどが適宜記憶される。これらのDME６１、CPU３０１、ROM３０６、およびRAM３０７は、バスにより相互に接続されている。
【０１５２】
CPU３０１にはまた、バスを介して入力I/F（Interface）３０９と出力制御部３０１が接続されている。入力I/F３０９には、キーボード、マウス、マイクロホン、図示せぬリモートコントローラから送信されてくる指令を受信する受信部、被写体を撮像する撮像部などよりなる入力部３０８が接続され、出力制御部３０１には、ディスプレイ、スピーカなどよりなる出力部３１１が接続されている。CPU３０１は、入力部３０８から入力I/F３０９を介して入力される指令に対応して、各種の処理を実行する。そして、CPU３０１は、処理の結果を、出力制御部３０１を介して出力部３１１に出力する。
【０１５３】
例えば、CPU３０１は、入力部３０８から入力される指令に対応して、入力画像を縮小、拡大、型の変更、回転、左右反転もしくは上下反転、または移動させたり、入力画像に特殊効果を施す。そして、CPU３０１は、DME６１から出力される変形後の画像に基づいて、画像を、出力制御部３１０を介して出力部３１１に表示させる。
【０１５４】
さらに、CPU３０１には、バスを介して、符号化/復号回路３０２と記録再生制御部３０４が接続されている。符号化/復号回路３０２は、CPU３０１の制御により、例えば入力部３０８により撮像された結果得られる画像を、必要に応じて、バッファメモリ３０３に保持させながら、JPEG（Joint Photographic Experts Group）、MPEG(Moving Picture Experts Group)などの所定の符号化方式で符号化する。そして、符号化/復号回路３０２は、符号化の結果得られる画像を、記録再生制御部３０４を介して、記録部３０５に記録させる。
【０１５５】
記録再生制御部３０４は、CPU３０１の制御により、記録部３０５に対する記録と再生を制御する。即ち、記録再生制御部３０４は、符号化/復号回路３０２から供給される画像を記録部３０５に記録させたり、記録部３０５から読み出した画像を、符号化/復号回路３０２に供給する。符号化/復号回路３０２は、CPU３０１の制御により、記録再生制御部３０４からの画像を復号し、その結果得られる画像を、例えば入力画像としてDME６１に供給する。
【０１５６】
本発明は、例えばGPU（Graphics Processing Unit）に適用することができる。
【０１５７】
なお、本明細書において、プログラム記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１５８】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０１５９】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０１６０】
【図１】本発明を適用した画像処理システムの一実施の形態の構成例を示すブロック図である。
【図２】画像変形処理を説明するフローチャートである。
【図３】外部メモリとアドレス生成部の詳細構成例を示すブロック図である。
【図４】アドレス生成処理を説明するフローチャートである。
【図５】アドレスキャッシュの詳細構成例を示す図である。
【図６】テクスチャワード単位アドレスの例を示す図である。
【図７】記憶処理を説明するフローチャートである。
【図８】追い出し処理を説明するフローチャートである。
【図９】画像処理装置の構成例を示すブロック図である。
【図１０】記録再生装置の構成例を示すブロック図である。
【符号の説明】
【０１６１】
５１  画像処理システム，  ６１  DME,  １０４  アドレスメモリ，  １２５  デプステスト部，  １２８  アドレスキャッシュ，  １４１  アレイ，  １４２  アレイ
【図１】
0004487959.tif 000002
【図２】
0004487959.tif 000003
【図３】
0004487959.tif 000004
【図４】
0004487959.tif 000005
【図５】
0004487959.tif 000006
【図６】
0004487959.tif 000007
【図７】
0004487959.tif 000008
【図８】
0004487959.tif 000009
【図９】
0004487959.tif 000010
【図１０】
0004487959.tif 000011