(57)【特許請求の範囲】
【請求項１】
画素ごとのフレームデータと奥行きを示すＺ値データを生成するデータ生成手段と、
ロウアドレスおよびカラムアドレスをそれぞれ別々の系統で入力できる画像メモリであって、それ自体でデータの書き込み、読み出しが可能な１つのメモリ装置ユニットとしてのマクロの複数を有し、この各マクロはそれぞれ複数のバンクを有するものとして構成されており、フレームデータとＺ値データを共用のデータバスを介してアクセスされる、画像メモリと、
前記各データに基づいて表示が行われるスクリーンを複数の矩形領域に分割し、この各矩形領域はそれのフレームデータとＺ値データのそれぞれが前記画像メモリにおけるある大きさをもったひとつのページに収まるように設定され、スクリーンにおける同一の前記矩形領域に対応するフレームデータとＺ値データをそれぞれ異なるマクロにおけるバンクに配分して格納すると共に、フレームデータに関してはスクリーンにおける隣り合う矩形領域のフレームデータは前記画像メモリにおける同一のマクロにおける異なるバンクに又は異なるマクロにおけるバンクに格納し、且つ、Ｚ値データに関してはスクリーンにおける隣り合う矩形領域のＺ値データは前記画像メモリにおける同一のマクロにおける異なるバンクに又は異なるマクロにおけるバンクに格納し、さらにフレームデータとＺ値データの関係についてみた場合には、スクリーンにおけるある矩形領域のフレームデータとそれと隣り合う矩形領域のＺ値データを、前記画像メモリにおける同一マクロにおける異なるバンクに又は異なるマクロにおけるバンクに格納し、加えて、前記画像メモリにおける前記各マクロ及び前記各バンクをその使用頻度が平均的となるように使用する、コントローラ手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記コントローラ手段が、前記バンクにアクセスする場合に、アドレスを連続的に入力し、同一ページ内の任意のアドレスに連続アクセスするようにし、このカラムアドレス入力と並行して、次にアクセスするバンクを前もってロウアクティブにしておくことにより、アクセスするバンクが切り替わった際に連続的にアクセスさせるように制御する、請求項１の画像処理装置。
【請求項３】
前記コントローラ手段によって、同一の画素に対応するフレームデータとＺ値データを別々のマクロに、１つのデータバスから交互にアクセスする、請求項２の画像処理装置。
【請求項４】
前記コントローラ手段によって、同一の画素に対応するフレームデータとＺ値データを別々のマクロに同時にアクセスすることにより、これらのフレームデータとＺ値データを別々のマクロから同時にリードまたはライトする、請求項２の画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置に係り、特に３次元画像情報を高速で描画するための画像メモリの構成に関する。
【０００２】
【従来の技術】
３次元画像処理装置は、３次元空間上で定義された立体の頂点をスクリーン空間に投影し、投影後の頂点情報を基にラスタライズ処理を行い、画素の色情報であるフレームデータや奥行き情報であるＺ値データを生成する。
【０００３】
これらの情報は、画像処理装置の演算処理の過程で一時的に画像メモリ上に蓄積される。この場合、フレーム、Ｚ値はそれぞれに用意されたメモリ上に格納されることになる。
【０００４】
さて、フレームデータの格納方式としては、一般に、ラインバッファ方式とフレームバッファ方式とがあるが、３次元画像処理においては、メモリへのアクセス時間がラインバッファ方式よりも多く取れるという利点から、フレームバッファ方式を採用するのが一般的である。また、このフレームバッファ方式も、場合によっては、ダブルバッファで用いられることが多い。ダブルバッファ方式は、１画面分のデータを格納できるフレームバッファを２つ用意し、片方を画像表示用に、他方を画像データの書き込み用に、それぞれ使用し、画面のリフレッシュレートに合わせてこれらを切り替えて使用する方式である。
【０００５】
３次元画像処理装置において、そのポリゴンレート、つまり単位時間内に表示できるポリゴンの数を向上するために必要なことは、１つのメモリとのデータ転送速度を上げることである。このために考えられることのひとつが、メモリデータバスのビット幅を広げることである。
【０００６】
メモリのカラムにスクリーン上の１領域を割り当てるとすると、バンド幅が広がることにより、１回にアクセスできる領域が広がるので、データの転送速度が高まり、結果としてピクセルレートが向上する。
【０００７】
しかしながら、ポリゴンエッジ付近では、ポリゴン領域外のエリアが、アクセス領域に含まれることがあり、この時は、データバスの一部を無駄に使用することになってしまう。このような無駄を低減するためには、アクセスできる領域の形をフレキシブルに変えることができるようにするなどの対応が必要になってくる。
【０００８】
従来から、画像メモリとしてバースト転送モードを持ったＤＲＡＭを使用することがあった。このＤＲＡＭをインターリーブ方式で使用すると、バースト転送により、メモリ上の一定方向のカラムに連続アクセスしながら、同時に次にアクセスするバンクをＲＡＳアクティブにしておくことによって、アクセスするページが切り替わる際にも、バンクが切り替わるという条件付きながら、連続アクセスすることが可能になる。しかしながら、従来は、ロウ系と、カラム系のアドレス入力が１系統でしか行えなかったため、連続しないカラムにアクセスする場合には、次のバンクのアクティブが不可能になってしまうという問題がある。つまり、スクリーンをいくつかに区切った場合に、それぞれの領域とカラムを、１対１に対応させた場合には、スクリーン上での、ある一方向への連続アクセスには都合がよいが、反面で、他方向へはオーバーヘッドをもったアクセスになってしまう。
【０００９】
従来、Ｚバッファリングを行うことができる画像処理装置においては、画素ごとのフレームデータやＺ値データを、それぞれ専用のマクロに格納するのが一般的であった。しかしながら、この方式では、フレームおよびＺ値のそれぞれに使用できるメモリ容量が、それぞれのマクロ容量により制限を受けることになる。例えば、一方は、容量を多く必要とし、他方がそれほど容量を必要としない場合、必要としない側の余った容量を他方に配分できれば、限られたメモリ容量を有効に活用できるにもかかわらず、メモリの専用化により、このような利用方法が制限を受けることになってしまう。
【００１０】
【発明が解決しようとする課題】
以上述べたように、従来の画像処理装置は、ポリゴンエッジ付近の領域でのデータ転送効率が悪く、ロウ系、カラム系のアドレス入力を一系統でしか行わないため、オーバーヘッドを持ったアクセスが避けられず、またフレームとＺ値のメモリをそれぞれに専用に割り当てるために、メモリの利用効率が悪くなるなど、解決すべき問題点が多かった。
【００１１】
本発明は、上記のような従来技術の問題点を解消し、メモリのアドレス制御やアクセス方式を改善することにより、画像メモリと、他のユニットとのデータ転送速度を向上させ、３次元高速画像処理に適した画像処理装置を提供することを目的とする。
【００１２】
【課題を解決するための手段】
以上述べたような目的を達成するために、本発明は、画素ごとのフレームデータと奥行きを示すＺ値データを生成するデータ生成手段と、ロウアドレスおよびカラムアドレスをそれぞれ別々の系統で入力できる画像メモリであって、それ自体でデータの書き込み、読み出しが可能な１つのメモリ装置ユニットとしてのマクロの複数を有し、この各マクロはそれぞれ複数のバンクを有するものとして構成されており、フレームデータとＺ値データを共用のデータバスを介してアクセスされる、画像メモリと、前記各データに基づいて表示が行われるスクリーンを複数の矩形領域に分割し、この各矩形領域はそれのフレームデータとＺ値データのそれぞれが前記画像メモリにおけるある大きさをもったひとつのページに収まるように設定され、スクリーンにおける同一の前記矩形領域に対応するフレームデータとＺ値データをそれぞれ異なるマクロにおけるバンクに配分して格納すると共に、フレームデータに関してはスクリーンにおける隣り合う矩形領域のフレームデータは前記画像メモリにおける同一のマクロにおける異なるバンクに又は異なるマクロにおけるバンクに格納し、且つ、Ｚ値データに関してはスクリーンにおける隣り合う矩形領域のＺ値データは前記画像メモリにおける同一のマクロにおける異なるバンクに又は異なるマクロにおけるバンクに格納し、さらにフレームデータとＺ値データの関係についてみた場合には、スクリーンにおけるある矩形領域のフレームデータとそれと隣り合う矩形領域のＺ値データを、前記画像メモリにおける同一マクロにおける異なるバンクに又は異なるマクロにおけるバンクに格納し、加えて、前記画像メモリにおける前記各マクロ及び前記各バンクをその使用頻度が平均的となるように使用する、コントローラ手段と、を備えることを特徴とする画像処理装置を提供するものである。
【００１３】
以上述べたような目的を達成するために、本発明は、更に、上記の画像処理装置として、前記コントローラ手段が、前記バンクにアクセスする場合に、アドレスを連続的に入力し、同一ページ内の任意のアドレスに連続アクセスするようにし、このカラムアドレス入力と並行して、次にアクセスするバンクを前もってロウアクティブにしておくことにより、アクセスするバンクが切り替わった際に連続的にアクセスさせるように制御する画像処理装置を提供するものである。
【００１４】
【実施例】
以下、図面を参照しながら本発明の実施例を説明する。
実施例１．
図１は、本発明の実施例１に対応する画像処理プロセッサの構成図である。
【００１５】
図において示すように、画像処理プロセッサ２３において、各画素ごとのフレームデータを生成する役割を果たすのが、ピクセル生成ユニット１である。画像メモリ２は、ピクセル生成ユニット１で生成された画素データを格納するためのもので、１マクロ分を示している。バンク３、４は画像メモリ２において複数が設定される。ＤＲＡＭコントローラ５は画像メモリ２を制御するためにピクセル生成ユニット１と画像メモリ２の間に配置されるもので、画像メモリ２に対するロウアドレス入力系６とカラムアドレス入力系７を有し、データと共にそれぞれのアドレスを与える。なお、ロウアドレスおよびカラムアドレスは、別々のバンク３、４に対して、それぞれ同時に与えることができる。なお、ＤＲＡＭコントローラ５において、画像メモリ２をアクセスする場合のアドレスの順序は、予めアドレス順序予測回路８により予測されるようになっている。そして、以上の構成要素は１つのＬＳＩ上に混載されている。
【００１６】
なお、ピクセル生成ユニット１に対しては、図示しないＣＰＵから制御信号及び画像データが与えられ、ＤＲＡＭコントローラ５からは、図示しないディスプレイに対して表示信号が送出される。
【００１７】
以上述べたような構成において、次にその作用を、図２の説明図にしたがって説明する。ちなみに、図２は、スクリーンを第１の矩形領域に分割した時の矩形領域のフレームのバンク割り付けの概念図である。
【００１８】
さて、ピクセル生成ユニット１において生成した、スクリーンに表示すべきフレームは、ＤＲＡＭコントローラ５において、図２に示すように第１の矩形領域に分割されるが、その際に、隣り合う矩形領域のデータは異なるバンクに図示のように、チェス板模様状に割りつけられる。
【００１９】
さて、スクリーンの第１の矩形領域分割と、それぞれの矩形領域のフレームデータのバンク割りつけにおいては、図２の場合、画像メモリ２のバンクを、バンク３、４と、２つ使用するケースを例示している。この場合、各矩形領域全体のフレームデータのメモリ容量が、画像メモリ２の１ページ以内に収まるように領域分割し、バンクと矩形領域の割り付けを行う。
【００２０】
そして、画像メモリ２のバンク３、バンク４に、それぞれ隣接する第１の矩形領域を割り当て、スクリーンの水平方向、つまりＸ方向および、垂直方向、つまりＹ方向に関して、カラムアドレスおよび、ロウアドレスを個別に与えることにより、任意の方向に向かって、任意の画素を連続アクセスする。
【００２１】
この場合、画像メモリ２にアドレスを与える系統が、ＤＲＡＭコントローラ５において、ロウアドレス入力系６とカラムアドレス入力系７がそれぞれ分離しているため、同一ページ、つまりスクリーン上の第１の矩形領域内の任意の画素にカラムアドレスを連続入力して連続アクセスしながら、次にアクセスするバンク３、４のロウアドレスを、アドレス順序予測回路８により予見し、このロウアドレスを、予めアクティブにしておくことが可能になる。つまり、直ちに次のバンクのカラムアドレスの入力が可能となり、ページブレークのオーバーヘッドをなくすことができるからである。
【００２２】
以上述べたように、ＤＲＡＭコントローラ５から画像メモリ２に対するロウアドレス入力系６とカラムアドレス入力系７を分離しておくことにより、それぞれが１系統で構成される場合に比較して、アクセス方向の制約が緩和されることになり、効率的な画像メモリ２のアクセスが可能となる。
実施例２．
図３は、本発明の実施例２の画像処理装置の部分ブロック図である。
【００２３】
図３は、図１の画像メモリ２において、カラムとは無関係にアクセスできる小単位を持った構成を示すものであり、そのひとつの単位としてマクロ９が設定されている。マクロ９において、バンク３、４は、それぞれ小領域１１、１２と、小領域１３、１４というように、分割されている。一方、マクロ９には、データバス１０が接続されているが、データバス１０そのものも、バンク３、４の分割数に合わせて、いくつかのブロックに分割されており、バンク３、４のそれぞれ分割された小領域１１、１２および小領域１３、１４に対応している。
【００２４】
カラムは、バンク３、４内の小領域１１、１２および小領域１３、１４の単位数に均等に分割され、それぞれの小単位に分散して配置されている。このため、カラムが異なっていても、分割されたデータバス１０が異なる同一ページ内の小単位どうしは同時にアクセスできることになる。
【００２５】
図４は、このマクロ９を、図１の画像メモリ２に適用した場合の、スクリーン上の画素と、画像メモリ２のカラムおよび、それぞれバンク３、４を構成する小単位の対応関係を示す説明図である。
【００２６】
図４に、太線で囲って示すように、カラムの小単位に、領域Ａと領域Ｂを割り当てた場合、カラム内のある小単位に対応する第３の矩形領域が完全にポリゴン領域外である場合、これにアクセスせず、一方で、対応づけられたデータバス１０が前記の小単位と同じで、その第３の矩形領域がポリゴン内部に含まれるような同一ページ内の別のカラムの小単位にはアクセスすることを可能にすることができる。
【００２７】
その結果、小単位がない場合に比較して、データの転送密度が向上し、バス幅を広げることなく、実効的なデータ転送速度を上げることができる。
実施例３．
マクロ９を複数配置した構成とする。つまり、スクリーン上の画素とマクロの割り付け方において、スクリーン上の第１の矩形領域を、更に複数の第２の矩形領域に分割して、これをページ内のカラムに１対１で対応させ、隣接する第２の矩形領域のフレームデータを別マクロに書き込み、読み込むようにする。
【００２８】
その結果、同時に処理する画素は、通常隣接していることが多いので、隣接するカラム矩形領域のデータを、互いに別のマクロに割りつけるようにしておくことで、処理を効率化することができる。
実施例４．
図５は、本発明の実施例４の画像処理装置の部分ブロック図である。
【００２９】
図５は、フレームデータとＺ値データを扱うシステムの場合の構成であり、マクロ１５、１６と２個をペアで使用する。マクロ１５は、領域Ａに対応するバンク１７、領域Ｂに対応するバンク１８に分割されており、マクロ１６は、領域Ｃに対応するバンク１９、領域Ｄに対応するバンク２０に分割されている。
【００３０】
以上のような構成において、フレームデータおよびＺ値データのそれぞれが、画像メモリ２の１ページ以内に収まるように、スクリーンを矩形領域に分割し、隣接する矩形領域のデータは、バンク１７、１８、１９、２０のそれぞれ別のバンク又はマクロに格納し、かつ同一矩形領域に対応するフレームデータとＺ値データは、ペアマクロ１５、１６の別々のマクロに分散格納するようにする。
【００３１】
つまり、図６の説明図に示すように、フレームデータについては、同図（Ａ）に示すように、分散格納し、Ｚ値データについては、同図（Ｂ）に示すように分散格納することにより、ペアのマクロ１５、１６を均等に使用することが可能となり、画像メモリ２を効率的に運用することができる。
実施例５．
なお、図１、図５のような構成において、バンク１７、１８、１９、２０にアクセスする場合に、カラムアドレスを連続的に入力して同一ページ内の任意のアドレスに連続アクセスしながら、このアクセスと並行して、次にアクセスするバンクを前もって、ＲＡＳアクティブにしておくことにより、アクセスするバンクが切り替わった際にも、連続的にアクセスすることが可能になるが、このような機能をＤＲＡＭコントローラ５およびアドレス順序予測回路８に持たせておく。
【００３２】
つまり、ＤＲＡＭコントローラ５は、ロウアドレス入力系６とカラムアドレス入力系７を別々に入力可能なため、上記のように、ロウ系とカラム系を同時入力することが可能であり、カラム入力を行いながら、次にアクセスするバンクをアクティブにし、ページブレークのペナルティを軽減したりなくしたりすることが可能となり、画像メモリ２のアクセス効率を向上することができる。
実施例６．
図７は、本発明の実施例６の画像処理装置の部分ブロック図である。
【００３３】
図７の構成では、対応する画素が同一であるフレームデータとＺ値データを、別々のマクロ１５、１６に書き込み、また、それぞれのマクロ１５、１６からこれらを読み出すように、ＤＲＡＭコントローラ５により画像メモリ２を制御し、同じ画素に対応するフレームデータとＺ値データが、それぞれ格納されているマクロ１５、１６に対して、１つのデータバスから交互にアクセスできるようにしている。
【００３４】
つまり、スクリーン上の画素とメモリの記憶領域を、図６にあるように割りつけるに当たり、その上で、ある画素データを画像メモリ２に書き込んだり、読み出したりする時に、その画素に対応するフレームデータとＺ値データのそれぞれが格納されているマクロ１５、１６に対して、ＤＲＡＭコントローラ５から交互にカラムアドレスを発行してアクセスすることにより、ペアのマクロ１５、１６を交互にアクセスする。
実施例７．
図８は、本発明の実施例７の画像処理装置の部分ブロック図である。
【００３５】
図８の構成では、対応する画素が同一であるフレームデータとＺ値データを、マクロ１５と１６に別々に書き込み、また、それぞれのマクロ１５、１６からこれらを読み込む機能を、ＤＲＡＭコントローラ５に与えており、画素が対応するフレームデータとＺ値データを格納するマクロ１５、１６に対して、データバスから同時にアクセスし、画素の対応するフレームデータとＺ値データを同時に読み出しまたは書き込みすることを可能としている。
【００３６】
つまり、マクロ１５とマクロ１６は、それぞれ同じ画素が対応するフレームデータとＺ値データを格納するペアマクロを構成しており、ＤＲＡＭコントローラ５には、それぞれフレームデータとＺ値データ用に、フレームデータバッファ２１とＺ値データバッファ２２を持たせている。そして、ＤＲＡＭコントローラ５はある画素データにアクセスする時に、そのフレームデータおよびＺ値データを格納するそれぞれのマクロ１５、１６にカラムアドレスを同時発行し、同データのやりとりを両方のマクロ１５、１６から同時に行う。
【００３７】
【発明の実施の形態】
以下、本発明の実施の形態を詳細に説明する。
実施形１．
図９は、本発明の実施形１の画像処理装置のブロック図である。
【００３８】
図において示すように、画像処理装置本体２３は、ポリゴン頂点情報を生成するＣＰＵなどに接続するための外部バスインターフェース２５、この頂点情報からポリゴン内部の画素データを生成するためのＤＤＡ（ディジタルディファレンシャルアナライザ）２４、１つのマクロ９を含むＤＲＡＭで構成される画像メモリ２、画像メモリ２の制御を行うメモリインターフェース２７および図示しないディスプレイに画像データを送出するバッファ２６で構成されている。一方、メモリインターフェース２７は、アドレスバッファ２９と、データバッファ３０と未来にアクセスするロウアドレスを内部にバッファリングするアドレス先読み回路２８で構成される。ちなみに、メモリインターフェース２７は１つのマクロ９に対してロウ系とカラム系の両アドレスを同時に入力できる。なお、図中のメモリインターフェース２７およびバッファ２６は、図１のＤＲＡＭコントローラ５に対応する作用を有するものであり、ＤＤＡ２４および外部バスインターフェース２５は図１のピクセル生成ユニット１に対応するものである。
【００３９】
以上述べたような構成において、次にその動作を説明する。
【００４０】
まず、連続アクセスの場合を考える。
【００４１】
画像メモリ２の構成として、ここでは以下のようなものを考える。
【００４２】
メモリデータバス幅                １２８ビット
マクロ数                          １
バンク数                          ２
ページサイズ                      ３２カラム
カラムサイズ                      １２８ビット
小単位                            なし
ピクセルビット数                  １６ビット／ピクセル
シンクロナスインターフェース      あり
この条件の下では、１カラムに８画素分のデータを格納することができる。この時、図１０の説明図に示すように、スクリーンを４Ｘ２列の画素からなる矩形領域に分割し、それぞれの矩形領域を画像メモリ２のカラムに１対１で割りつけることができる。また、画像メモリ２の１ページは、３２カラム構成となっているため、図１０の矩形領域を、図１１の説明図に示すように、８Ｘ４列ごとに画像メモリ２の１ページに対応づけることができる。この場合、隣接するページの矩形領域のデータは互いに別のバンクに格納する。なお、図１１では、ハッチングで示した領域と、網点で示した領域がそれぞれ別々のバンクに対応する。
【００４３】
このようなアドレッシングを行うとして、図１１の矢印の方向、つまりＹ方向に添って、ＤＤＡ２４が発生させた画素データを画像メモリ２に格納する場合のことを考える。
【００４４】
メモリインターフェース２７は、ＤＤＡ２４から送り込まれた画素データとそのアドレスデータを受け取り、データバッファ３０およびアドレスバッファ２９にバッファリングする。これとは別に、アドレス先読み回路２８は、未来にアクセスするロウアドレスを、内部に持っているロウアドレスバッファにバッファリングし、これをモニタして、どのような順番で、どのバンクの、どのロウアドレスにアクセスするかを予見する。
【００４５】
ここで、画像メモリ２のアクセスのタイミング例を、バンクＡ、Ｂのふたつのバンクにアクセスする場合を例にとって、図１２のタイミングチャートに示す。図において、（Ａ）はバンクＡに対するロウアドレスＡのタイミング、（Ｂ）はバンクＢに対するロウアドレスＢのタイミング、（Ｃ）はバンクＡに対するカラムアドレスＡのタイミング、（Ｄ）はバンクＢに対するカラムアドレスＢのタイミングをそれぞれ示すものである。
【００４６】
図１２の例では、タイムフレームｔ１にロウアドレスＲＡ０を、タイムフレームｔ３にカラムアドレスＣＡ０を、タイムフレームｔ４にカラムアドレスＣＡ１を、タイムフレームｔ５にロウアドレスＲＡ１とカラムアドレスＣＡ２を、タイムフレームｔ６にカラムアドレスＣＡ３を、タイムフレームｔ７にカラムアドレスＣＡ４を、タイムフレームｔ８にカラムアドレスＣＡ５を、タイムフレームｔ９にロウアドレスＲＡ３とカラムアドレスＣＡ６を、タイムフレームｔ１０にカラムアドレスＣＡ７を、タイムフレームｔ１１にカラムアドレスＣＡ８を、タイムフレームｔ１２にカラムアドレスＣＡ９を、タイムフレームｔ１３にカラムアドレスＣＡ１０を、タイムフレームｔ１４にカラムアドレスＣＡ１１を、それぞれ与えている。つまり、タイムフレームｔ５、ｔ９の場合にも示すように、１つのマクロ９に対して、ロウ系とカラム形のアドレスを別系統で入力できるため、２つあるバンクのうちの一方に、カラムアドレスを入力しながら、アドレス先読み回路２８によって得た情報から、次のバンクへのアクセスを先読みして、これに基づきロウアドレスをアクティブにしておき、実際のアクセスを高速化している。つまり、予めロウアドレスをアクティブにしておくことで、アクセスページが切り替わった際に発生するページブレイクペナルティをなくせるか、または軽減することができる。また、ロウアクティブ動作を行うために、カラム系の入力を中断する必要がないので、同一ページ内の任意のカラム間での連続アクセスが保証される。このことは、図１１のようなメモリ構成におけるスキャンの方向がスクリーンの上下左右のいずれの方向であっても連続アクセスが可能であることを示している。
【００４７】
次に、カラム分割の場合を考える。
【００４８】
連続アクセスの場合の条件に付加して、カラムを複数の小単位に分割して、これら小単位がカラムとは独立してアクセス可能な画像メモリ２を使用する場合を考える。ここでは、図１３の説明図に示すように、各カラムが４つずつの小単位に分割されている場合を考える。この時、各小単位は、３２ビットで構成される。したがって、各小単位には２画素分のデータを格納することが可能である。画像メモリ２のデータバスは、カラムの分割数、つまりカラム内の小単位数と同数分だけブロック分割され、それぞれのバスブロックは、カラムごとに小単位と１対１に対応し、それぞれの小単位のデータバスとなる。この例では、画像メモリ２の１２８ビットデータバスが３２ビットごとの４ブロックに分割され、それぞれの小単位に対応づけられる。
【００４９】
このような形で画像メモリ２を使用する時、メモリインターフェース２７はＤＤＡ２４から受け取ったデータをバッファリングし、４つの小単位（この場合所属するカラムが異なっていても対応するデータバスが異なっていればよい）分のデータがそろったところでパッキングして画像メモリ２に送り込むように制御することができる。
【００５０】
図１４の説明図に、以上のような画像メモリ２に対するアドレッシングの一例を示す。つまり、図面では、縦ハッチングで塗られた画素、斜ハッチングで塗られた画素、濃い網点で塗られた画素、薄い網点で塗られた画素の４種類の画素単位が示されているが、同じ塗りで示された２つのペアの画素でひとつの小単位が形成されている。そして、異なる塗りどうしの小単位を４つ集めて１つのカラムが構成される。
【００５１】
図１５は、図１４のようにアドレッシングされたスクリーン上の実際のポリゴンデータのパッキング例を示す説明図である。図面では、細線の三角形で示されるポリゴンに対して、太線で囲まれた凸型の領域が１回にアクセスされる様子を示している。
【００５２】
図示のように、小単位を設けることにより、１回にアクセスする領域の形を、凸型などのように、フレキシブルに変えることができるので、特に、ポリゴンエッジにおける無駄なアクセスを低減することが可能である。
【００５３】
つまり、無駄なアクセスの低減によって、実効的なデータ転送密度が向上し、バス幅を広げることなく、データ転送速度を上げることができるようになる。
【００５４】
次に、複数マクロの場合を考えるに、基本的にスクリーン上の隣り合うカラム矩形領域のデータは、異なるマクロに格納するようにメモリインターフェース２７により画像メモリ２を制御することにより、複数マクロの効率的な運用が可能となる。
実施形２
図１６は、本発明の実施形２の画像処理装置のブロック図である。
【００５５】
図において示すように、画像処理装置本体２３には、アルファブレンディングを行うためのブレンディングユニット３４、Ｚ比較を行うためのＺ比較器３３が付加されており、２つ以上のポリゴンが一部または全体で重なり合う時に、重なり合う画素でそれぞれの色を混ぜ合わせるアルファブレンディング処理と、奥行き値を比較して手前側のポリゴンを描写するＺバッファリング処理を行えるようになっている。このために、アドレス先読み回路２８には、フレーム用バッファ（Ｆ用バッファ）３１とＺ用バッファ３２が付加されている。なお、画像メモリ２は、マクロ１５、１６と２つのマクロを有しており、これに対応して、アドレス先読み回路２８内のロウアドレスバッファは、各マクロに対として２個を有する。ちなみに、図中のメモリインターフェース２７およびバッファ２６は、図１のＤＲＡＭコントローラ５に対応する作用を有するものであり、ＤＤＡ２４、外部バスインターフェース２５、Ｚ比較器３３、ブレンディングユニット３４は図１のピクセル生成ユニット１に対応するものである。
【００５６】
画像メモリ２の構成として、ここでは以下のようなものを考える。
【００５７】
マクロデータバス幅                ２５６ビット（Ｉ／Ｏ分離型）
マクロ数                          ２
バンク数                          ２（１マクロ当たり）
ページサイズ                      ３２カラム
カラムサイズ                      ２５６ビット
ピクセルビット数（フレーム）      ３２ビット／ピクセル
ピクセルビット数（Ｚ）            ３２ビット／ピクセル
シンクロナスインターフェース      あり
ここで、１画素あたりのフレームデータは、Ｒ（赤）、Ｇ（緑）、Ｂ（青）の各８ビットと、透明度を表すアルファ値の８ビットの計３２ビットで構成されるものとする。
【００５８】
以上のような画像メモリ２の構成を採用した場合、フレームデータとＺ値データのそれぞれにおいて、１カラムあたり８画素分のデータを格納することができる。したがって、スクリーンを４ｘ２画素ごとの矩形領域に分割してそれぞれの領域にフレームデータ用とＺ値データ用として、２つのカラムを割り当てることができる。ただし、このふたつのカラムが、それぞれ異なるマクロ１５、１６に属しているようにする。
【００５９】
つまり、スクリーンを横３２画素、縦８画素ごとの領域に区切ると、この領域のフレームデータおよびＺ値データは、それぞれ画像メモリ２の１ページ分のデータ量に相当することになる。この領域のフレームデータとＺ値データは、別のマクロ１５、１６に格納するようにする。更に、隣り合うページの矩形領域のデータは、別バンク又は別マクロに格納する。
【００６０】
一方、フレームデータとＺ値データは、両マクロ１５、１６に均等に配分するように割り当てる。
【００６１】
以上のような条件でアドレッシングを行った場合、そのスクリーンに対するページ割りつけは、図６に示すようになり、カラム割りつけは、図１７に示すようになる。ちなみに、図１７（Ａ）はカラムに対する画素の配置を示しており、同図（Ｂ）はページに対するカラムの配置を示している。このようなアドレッシングにより、各マクロ１５、１６で均等にメモリ容量を使用することができる。このため、フレームとＺで、１画素当たりに要するビット数が異なる場合に、効率よくメモリ資源を活用することができる。
【００６２】
マクロ１５、１６へのロウ系とカラム系のアドレス入力は、２系統に分かれているので、ページ内の任意のカラムへのアクセスは、ロウ系の入力に依存せず、連続アクセスすることができる。
【００６３】
図１６のアドレス先読み回路２８は、内部に持つロウアドレスバッファにキューイングされたロウアドレス情報から、以降にアクセスするロウアドレスを監視し、同マクロ内でアクセスするバンクが変わることが予測された場合は、現在のバンクにアクセスしながら予め次にアクセスするバンクをロウアクティブにする。こうしておくことにより、アクセスするページが変わった際のオーバーヘッドをなくせるかまたは軽減することができる。
【００６４】
以上説明したようなアドレッシングの実効と、画像メモリ２の使用は、特にスクリーンの水平方向および垂直方向に向かってアクセスする時に、これを連続アクセスする上で有効である。この際に、ロウ系とカラム系が一系統である場合に比較して、そのアクセス方向にかかわらず、連続アクセスすることが可能になる。
【００６５】
次に、フレームデータおよびＺ値データの交互アクセスを考える。このとき、画像メモリ２とメモリインターフェース２７間のデータバスを２５６ビットにすることができる。
【００６６】
さて、アルファブレンディングとＺバッファリングの処理は、一部または全てが重なり合う２つのポリゴンが存在し、これらのポリゴンのデータが順番にＤＤＡ２４によって生成され、画像メモリ２側に送り込まれる場合に、重なり合う部分に対して行われるが、これらの両方の処理が行われる場合について以下に説明する。
【００６７】
この時の処理サイクルは、次のようになる。
【００６８】
まず、先に画像メモリ２に格納された側のポリゴンの画素データを画像メモリ２からブレンディングユニット３４およびＺ比較器３３に読み出す。ここで、新たにＤＤＡ２４から送り込まれてきたポリゴンのデータと画素ごとに各処理を行う。その結果を、画像メモリ２の元の位置に書き込む。
【００６９】
画像メモリ２のアクセスは、フレームとＺの交互のアクセスとした場合、前記のアルファブレンディング及びＺバッファリングを行うとき一例として、フレームリード、Ｚリード、フレームライトおよびＺライトの繰り返しサイクルになる。
【００７０】
このサイクルを実行する場合のタイミングの関係を図１８に示す。ちなみに、同図（Ａ）は基本クロック、同図（Ｂ）はバンクＡに対するロウアドレスＡのタイミングであり、アドレスＡ０およびプリチャージＰＣのタイミングを示し、同図（Ｃ）はバンクＢに対するロウアドレスＢのタイミングであり、アドレスＡ１のタイミングを示し、同図（Ｄ）はバンクＡに対するカラムアドレスＡのタイミングであり、読み出しのためのカラムアクティブＲＡ０、ＲＡ１、ＲＡ２、ＲＡ３および書き込みのためのカラムアクティブＷＡ０、ＷＡ１、ＷＡ２、ＷＡ３のタイミングを示し、（Ｅ）はバンクＢに対するカラムアドレスＢのタイミングであり、読み出しのためのカラムアクティブＲＡ４、ＲＡ５、ＲＡ６、ＲＡ７のタイミングを示し、（Ｆ）はデータ入力Ｉ０、Ｉ１、Ｉ２、Ｉ３、Ｉ４のタイミング、（Ｇ）はデータ出力Ｏ０、Ｏ１、Ｏ２、Ｏ３、Ｏ４、Ｏ５、Ｏ６、Ｏ７のタイミングをそれぞれ示すものである。
【００７１】
図６からも明らかなように、同じ画素に対応するフレームとＺは、別々のマクロに格納するので、画像メモリ２のアクセスサイクルにおいて画像メモリ２とメモリーインターフェース２７間のデータバスを共用してペアのマクロに交互にアクセスすることになる。
【００７２】
即ち、タイミングＴ０でバンクＡのロウがアドレスＡ０によって活性化される。この後に、バンクＡのリードができるようになる。つまり、タイミングＴ２において、バンクＡにおけるカラムＡのアドレスＲＡ０が加えられ、２クロック後のタイミングＴ４において出力される。この遅延時間はメモリ性能に依存する。このようにしてのバンクＡについてのリード中のタイミングＴ４でバンクＢのロウを活性化するアドレスＡ１が加えられる。これにより、バンクＢのロウが活性化される。バンクＡのリードが終了すると、タイミングＴ６においてバンクＢからリードするためのアドレスＲＡ４が加えられる。これに対応するリードの出力Ｏ４は、タイミングＴ８で出力される。また、ライトは、先に読み出したデータＯ０に対してブレンディング処理又はＺ処理を施した後タイミングＴ１０において、バンクＡについてカラムアドレスＷＡ０が加えられると、直ちにデータＩ０として処理結果がライトされる。なお、ここでは、データバスはＩ／Ｏ分離となっている。
【００７３】
さて、読み出しステップの後に、アルファブレンディング処理やＺバッファリング処理を行うとすると、そこで一時的にメモリアクセスが中断してしまうが、各ステップを複数回のアクセスで構成し、リードした画素データから順に、次の画素データのリードと並行して、アルファブレンディング処理やＺバッファリング処理を行うことにより、かつ、前記のプリロウアクティブ動作をとり入れることにより一連のサイクルを連続アクセスで行うことが可能となる。
【００７４】
ところで、アルファブレンディング処理やＺバッファリング処理を行った結果、もとのデータになんらの変更がない場合がある。例えば、画像メモリ２から読み出したＺ値が新たにＺ比較器３３に送り込まれてきたＺ値に対して、スクリーンの手前側にあると判定され、かつ画像メモリ２から読み出してきた側のポリゴンの画素が完全に不透明であるような場合、フレームデータの混ぜ合わせがまったく不要であり、データの変更は生じない。したがって、メモリアクセスの前記の１サイクルで処理される全ての画素データについて、このような結果になった場合、メモリインターフェース２７では、Ｚライトのステップをキャンセルし、このステップに次のサイクルの画素のフレームデータリードを行うようにする。その結果、画像メモリ２のアクセス回数が低減し、その分の高速化が可能である。
【００７５】
次に、アルファブレンディングとＺバッファリングの処理のうち、Ｚバッファリングの処理のみが行われる場合について以下に説明する。
【００７６】
この場合には、フレームリード、Ｚリード、フレームライト、Ｚライトの４つのステップのうちのフレームリードが不要になる。この時、メモリインターフェース２７は画像メモリ２に対して、Ｚリード、フレームライト、Ｚライトの３つのステップの繰り返しによるサイクルでメモリアクセスを行う。また、Ｚバッファリング処理の結果、全ての画素についてデータの入れ替えの必要がないと判断された場合は、Ｚライトのステップをスキップして、Ｚリードとフレームライトの２つのステップでサイクルを完結させ、次の画素のＺ値のリードを行う。
【００７７】
次に、フレームデータおよびＺ値データの同時アクセスを考える。
【００７８】
このような同時アクセスは、重なり合うポリゴンどうしのブレンディング処理とＺバッファリング処理を行う場合に、フレームデータとＺ値データのメモリアクセスとして、画素が対応するフレームとＺが格納されているマクロに同時アクセスすることによって行うことができる。この場合には、１つのデータバスから２つのマクロにアクセスするため、各マクロのデータバスを１２８ビットにすると画像メモリ２とメモリーインターフェース２７間のデータバスを２５６ビットにできる。この時、アドレスバッファ２９にはフレームデータとＺ値データのアドレスが並列で格納され、アクセス時にペアのマクロにアドレスを同時発行し、同一データバスから両方のデータを同時アクセスする。
【００７９】
以上のように、フレームデータとＺ値データの交互アクセスの場合、および同時アクセスの場合について、画像メモリ２のアクセスの方式について説明してきたが、さまざまな場合に応じて、画像メモリ２へのアクセス回数を低減することにより、画像メモリ２の運用効率を高め、結果として高速アクセスを実現することができる。
【００８０】
【発明の効果】
以上述べたように、本発明の画像処理装置は、画像メモリの効率的な利用と、実効的なデータ転送速度の向上と、オーバーヘッドの軽減ができるように構成したので、比較的安価な構成で、高速処理が可能な３次元グラフィックスシステムを実現できるという効果がある。
【図面の簡単な説明】
【図１】本発明の実施例１の画像処理ＬＳＩのブロック図である。
【図２】図１の構成における矩形領域のバンク割りつけの説明図である。
【図３】本発明の実施例２の画像処理ＬＳＩの部分ブロック図であり、小単位を設ける場合のメモリ構成を示すものである。
【図４】カラムと小単位のスクリーン領域への割りつけの説明図である。
【図５】本発明の実施例４の画像処理ＬＳＩの部分ブロック図であり、フレームデータとＺ値データを格納する構成を示すものである。
【図６】フレームデータとＺ値データのメモリへの格納の説明図である。
【図７】本発明の実施例６の画像処理ＬＳＩの部分ブロック図であり、フレームデータとＺ値データの交互アクセスの構成を例示するものである。
【図８】本発明の実施例７の画像処理ＬＳＩの部分ブロック図であり、フレームデータとＺ値データの同時アクセスの構成を例示するものである。
【図９】本発明の実施形１の画像処理ＬＳＩのブロック図である。
【図１０】実施形１における矩形部分のカラムの構成の説明図である。
【図１１】実施形１における画像メモリのページおよびカラムの割りつけの説明図である。
【図１２】実施形１において連続アクセスを行う場合の一例を示すタイミングチャートである。
【図１３】実施形１における小単位構成の説明図である。
【図１４】実施形１におけるカラムと小単位のアドレッシングの説明図である。
【図１５】実施形１におけるポリゴンデータのパッキングの一例の説明図である。
【図１６】本発明の実施形２の画像処理ＬＳＩのブロック図である。
【図１７】実施形２におけるページとカラムの矩形領域の対応の説明図である。
【図１８】アルファブレンディングおよびＺバッファリングを行う場合の一例を示すタイミングチャートである。
【符号の説明】
１  ピクセル生成ユニット
２  画像メモリ
３、４、１７、１８、１９、２０  バンク
５  ＤＲＡＭコントローラ
６  ロウアドレス入力系
７  カラムアドレス入力系
８  アドレス順序予測回路
９、１５、１６  マクロ
１０  データバス
１１、１２、１３、１４  小領域
２１  フレームデータバッファ
２２  Ｚ値データバッファ
２３  画像処理ＬＳＩ本体
２４  ＤＤＡ
２５  外部バスインターフェース
２６  バッファ
２７  メモリインターフェース
２８  アドレス先読み回路
２９  アドレスバッファ
３０  データバッファ
３１  Ｆバッファ
３２  Ｚバッファ
３３  Ｚ比較器
３４  ブレンディングユニット
【図１】
0003732593.tif 000002
【図２】
0003732593.tif 000003
【図３】
0003732593.tif 000004
【図４】
0003732593.tif 000005
【図５】
0003732593.tif 000006
【図６】
0003732593.tif 000007
【図７】
0003732593.tif 000008
【図８】
0003732593.tif 000009
【図９】
0003732593.tif 000010
【図１０】
0003732593.tif 000011
【図１１】
0003732593.tif 000012
【図１２】
0003732593.tif 000013
【図１３】
0003732593.tif 000014
【図１４】
0003732593.tif 000015
【図１５】
0003732593.tif 000016
【図１６】
0003732593.tif 000017
【図１７】
0003732593.tif 000018
【図１８】
0003732593.tif 000019