(57)【特許請求の範囲】
【請求項１】
第１の矩形領域と第２の矩形領域との重複部分を前記第１の矩形領域から除いた画面上の領域、に対応する画像メモリのアドレス領域に背景色の輝度データを書き込み、前記第２の矩形領域に対応する画像メモリ上のアドレス領域に矩形画像の輝度データを書き込む装置であって、
前記第１の矩形領域から前記第２の矩形領域への横方向の移動量と移動方向とに基づき、前記矩形画像の横方向に付加すべき背景色のピクセル数と付加すべき背景色のピクセル位置とを算出する算出部、及び、
前記ピクセル数の背景色の輝度データと前記矩形画像の輝度データとを、水平ライン毎に、同時に、若しくは連続して画像メモリに書き込む書き込み部、
を有する矩形画像描画装置。
【請求項２】
前記第１の矩形領域から前記第２の矩形領域への移動が縦方向の移動を含むとき、
前記算出部は、縦方向の移動量と移動方向とに基づき、前記矩形画像の縦方向に付加すべき背景色の水平ライン数と付加すべき背景色の水平ライン位置とを算出すること、及び、
前記書き込み部は、少なくとも、前記第１の矩形領域と前記第２の矩形領域とを合成した領域である第３の領域の左端に対応する画像メモリ上のアドレスから、前記第３の領域の右端に対応する前記画像メモリ上のアドレスまで、前記水平ライン数分の前記背景色の輝度データを、水平ライン毎に、同時に、若しくは連続して画像メモリに書き込むこと、
を特徴とする、請求項１に記載の矩形画像描画装置。
【請求項３】
前記書き込み部はバースト転送で書き込みを行い、書き込むべきデータが単一のバースト単位に収まるときはその書き込むべきデータを同時に書き込み、書き込むべきデータが複数のバースト単位に跨るときはその書き込むべきデータを連続して書き込むこと、
を特徴とする、請求項１に記載の矩形画像描画装置。
【請求項４】
書き込み開始アドレス、若しくは書き込み終了アドレスがバースト単位の境界と一致しないとき、前記書き込み部は、前記書き込み開始アドレス、若しくは前記書き込み終了アドレスを含むバースト単位に含まれる書き込み不要アドレスに対し、ライトイネーブル信号をネゲートすること、
を特徴とする、請求項３に記載の矩形画像描画装置。
【請求項５】
第１の矩形領域と第２の矩形領域との重複部分を前記第１の矩形領域から除いた画面上の領域、に対応する画像メモリのアドレス領域に背景色の輝度データを書き込み、前記第２の矩形領域に対応する画像メモリ上のアドレス領域に矩形画像の輝度データを書き込む装置、を用いて画像メモリに輝度データを書き込む方法であって、
前記第１の矩形領域から前記第２の矩形領域への横方向の移動量と移動方向とに基づき、前記矩形画像の横方向に付加すべき背景色のピクセル数と付加すべき背景色のピクセル位置とを算出すること、及び、
前記ピクセル数の背景色の輝度データと前記矩形画像の輝度データとを、水平ライン毎に、同時に、若しくは連続して画像メモリに書き込むこと、
を特徴とする矩形画像描画方法。
【請求項６】
第１の矩形領域と第２の矩形領域との重複部分を前記第１の矩形領域から除いた画面上の領域、に対応する画像メモリのアドレス領域に背景色の輝度データを書き込み、前記第２の矩形領域に対応する画像メモリ上のアドレス領域に矩形画像の輝度データを書き込む回路、を含む集積回路であって、
外部の算出回路により、前記第１の矩形領域から前記第２の矩形領域への横方向の移動量と移動方向とに基づいて算出された、前記矩形画像の横方向に付加すべき背景色のピクセル数と付加すべき背景色のピクセル位置とを保持する保持回路、及び、
前記ピクセル数の背景色の輝度データと前記矩形画像の輝度データとを、水平ライン毎に、同時に、若しくは連続して画像メモリに書き込む書き込み回路、
を有する集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、矩形画像の描画をハードウェアを用いて行う装置、方法、及び集積回路に関する。
【背景技術】
【０００２】
近年、画像描画装置は例えば、パーソナルコンピュータ、記録再生装置、放送受信装置等の機器に幅広く搭載されている。これらの機器が扱う画像は、画像描画装置の処理能力の向上に伴い、より美しい画像をユーザーに提供すべく、ピクセル（画素）の高精細化が進んでいる。
【０００３】
、高精細な画像を生成するには、画像描画装置のみならず、各画素の輝度情報等を格納するための画像メモリ（以下、単にメモリという）にも、性能向上が必要とされる。特に、メモリと画像描画装置とは（別チップ構成か、シングルチップ構成かを問わず）バス接続されているので、それらの性能向上にはそのバスの高速化が重要である。しかし、このバスの駆動クロックは、通常、画像描画装置の駆動クロックよりも遅いので、高精細な描画を行う上では制約となっていた。
【０００４】
その制約の解消を目的として、ＳＤＲＡＭに代表されるメモリにはバースト転送機能が搭載される。具体的には、バースト転送モードでは、アドレスが一つ指定されるごとに、このアドレスから連続する複数のデータが、クロックに同期して所定数、連続してアクセスされる。従って、バースト転送モードによるメモリアクセスはシングル転送モードによるメモリアクセスと比較して、大幅に高速化される。スクリーン上に横方向に並ぶピクセルの輝度情報は、通常、メモリ上の連続するアドレス領域に置かれるため、描画処理においては特に、バースト転送モードの強みが発揮される。
【０００５】
描画処理において、転送対象の画像データが連続して書き込まれるメモリ領域の先頭、若しくは末尾のアドレス（以下、書き込み開始アドレス、若しくは書き込み終了アドレスという）は一般的に、バースト転送の単位（以下、バースト単位という）の境界（以下、バースト境界という）と一致しない。従って、書き込み開始アドレスを含むバースト単位、若しくは書き込み終了アドレスを含むバースト単位には一般的に、書き込みを無効にすべきアドレス（以下、書き込み不要アドレスという）が含まれる。
【０００６】
従来は、書き込み不要アドレスに対してライトイネーブル信号をネゲートすることにより、不要な書き込みを防止していた。しかし、例えば、一旦表示した画像を少しずらして表示し直すとき等では、書き込み不要アドレスに対してライトイネーブル信号をネゲートすると、かえって背景にクリアすべき画像の一部が残ってしまう場合がある。このような場合には、書き込み開始アドレスより前、若しくは書き込み終了アドレスよりも後ろの書き込み不要アドレスに対し、背景色の輝度データを新たに書き込む必要が生じる。その結果、メモリに対するアクセス時間の更なる短縮が困難であった。
【０００７】
そのような困難を克服することでメモリアクセスの高速化を図る従来の技術としては、例えば特許文献１に開示されたものが知られている（図18参照）。具体的には、まず、書き込み開始アドレス、若しくは書き込み終了アドレスを含むバースト単位の全体に対し、ライトイネーブル信号をアサートしたままで維持する。更に、そのバースト単位に含まれる書き込み不要アドレスに対しては背景色（例えば白色）の輝度データを、その他のアドレスに対しては画像データを、同一のバースト単位としてまとめてメモリに書き込む。それにより、メモリアクセスが高速化される。
【特許文献１】特開2002−140702号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
例えばＣＧアニメーション等で、矩形画像を少しずつ移動させる際には、前に描画した画像のクリア（すなわち、背景色での塗りつぶし）と新たな画像の描画とを、なるべく単一の、若しくは連続したメモリアクセスで効率よく行うほうが、メモリに対するアクセス時間を短縮できる。
しかし、特許文献１に開示された技術では、書き込み開始アドレス、若しくは書き込み終了アドレスを含むバースト単位に含まれる書き込み不要アドレスに対し、背景色の輝度データが書き込まれるに過ぎない。従って、矩形画像の移動量がバースト単位一つ当たりのサイズ（すなわちバースト長）に相当するピクセル数を超える場合は、前回描画した画像を十分にはクリアできず、以前画像があった領域を背景色で塗りつぶすためのメモリアクセスが別途必要となる。この結果、メモリに対するアクセス時間の更なる短縮が困難である。
【０００９】
前に描画した画像のクリアと新たな画像の描画とを単一の、若しくは連続したメモリアクセスで効率よく行う方法としては、特許文献１に開示された方法の他に、移動させるべき画像のまわりの一定範囲を背景色で覆った画像全体を、予め一つの画像として設定しその画像を少しずつ移動させる方法も考えられる。しかし、この方法では、メモリから読み出すべき画像データのサイズが一般に大きいので、メモリに対するアクセス時間の短縮が困難である。それだけではなく、画像の移動量が上記の一定範囲を超える場合、前に描画された画像をクリアするためのメモリアクセスが別途必要である。従って、メモリに対するアクセス時間の短縮が更に困難である。
【００１０】
本発明は、移動させるべき矩形画像の移動量に関わらず、移動前の矩形画像のクリアと移動後の矩形画像の描画とを効率よく行うことにより、メモリアクセスの更なる高速化を実現する矩形画像描画装置、及び矩形画像描画方法、の提供を目的とする。
【課題を解決するための手段】
【００１１】
本発明による矩形画像描画装置は、
第１の矩形領域と第２の矩形領域との重複部分を第１の矩形領域から除いた画面上の領域、に対応する画像メモリのアドレス領域に背景色の輝度データを書き込み、第２の矩形領域に対応する画像メモリ上のアドレス領域に矩形画像の輝度データを書き込む装置であって、
第１の矩形領域から第２の矩形領域への横方向の移動量と移動方向とに基づき、矩形画像の横方向に付加すべき背景色のピクセル数と付加すべき背景色のピクセル位置とを算出する算出部、及び、
算出部により算出されたピクセル数の背景色の輝度データと矩形画像の輝度データとを、水平ライン毎に、同時に、若しくは連続して画像メモリに書き込む書き込み部、
を有する。
【００１２】
本発明による上記の矩形画像描画装置は好ましくは、算出回路と集積回路との組み合わせで構成される。具体的には、
算出回路が、第１の矩形領域から第２の矩形領域への横方向の移動量と移動方向とに基づき、矩形画像の横方向に付加すべき背景色のピクセル数と付加すべき背景色のピクセル位置とを算出する。
一方、本発明による集積回路が  第１の矩形領域と第２の矩形領域との重複部分を第１の矩形領域から除いた画面上の領域、に対応する画像メモリのアドレス領域に背景色の輝度データを書き込み、第２の矩形領域に対応する画像メモリ上のアドレス領域に矩形画像の輝度データを書き込む回路、を含む集積回路であって、
算出回路により算出されたピクセル数とピクセル位置とを保持する保持回路、及び、
そのピクセル数の背景色の輝度データと矩形画像の輝度データとを、水平ライン毎に、同時に、若しくは連続して画像メモリに書き込む書き込み回路、
を有する。
【００１３】
本発明による矩形画像描画方法は上記の矩形画像描画装置を用いる方法であり、
第１の矩形領域から第２の矩形領域への横方向の移動量と移動方向とに基づき、矩形画像の横方向に付加すべき背景色のピクセル数と付加すべき背景色のピクセル位置とを算出すること、及び、
算出されたピクセル数の背景色の輝度データと矩形画像の輝度データとを、水平ライン毎に、同時に、若しくは連続して画像メモリに書き込むこと、
を特徴とする。
【００１４】
本発明による上記の矩形画像描画装置及び方法では、矩形画像の横に付加されるべき背景色のピクセル数と付加されるべき背景色のピクセル位置とが矩形画像の横方向の移動量と移動方向とに基づいて算出され、算出されたピクセル数の背景色の輝度データが矩形画像の輝度データと同時に、若しくは連続して画像メモリに書き込まれる。すなわち、矩形画像の輝度データと同時に、若しくは連続して背景色の輝度データを書き込み得るアドレスが、バースト単位の書き込み不要アドレスには制限されない。更に、移動させるべき矩形画像の周囲を背景色で覆った画像全体を一つの画像として予め設定する必要がない。それ故、画像メモリに対して読み書きされる画像データのサイズが必要最小限に抑えられ、かつ、矩形画像の横方向の移動量に関わらず、画像のクリアのみを目的とするメモリアクセスが不要である。その結果、矩形画像の横方向の移動に伴うメモリアクセスが更に高速化される。
【００１５】
第１の矩形領域から第２の矩形領域への移動が縦方向の移動を含むとき、本発明による上記の矩形画像描画装置では好ましくは、
算出部が、縦方向の移動量と移動方向とに基づき、矩形画像の縦方向に付加すべき背景色の水平ライン数と付加すべき背景色の水平ライン位置とを算出し、
書き込み部が、少なくとも、第１の矩形領域と前記第２の矩形領域とを合成した領域である第３の領域の左端に対応する画像メモリ上のアドレスから、第３の領域の右端に対応する画像メモリ上のアドレスまで、算出部により算出された水平ライン数分の背景色の輝度データを、水平ライン毎に、同時に、若しくは連続して画像メモリに書き込む。
それにより、移動させるべき矩形画像の周囲を背景色で覆った画像全体を一つの画像として予め設定する必要がない。それ故、画像メモリに対して読み書きされる画像データのサイズが必要最小限に抑えられ、かつ、矩形画像の縦方向の移動量に関わらず、画像のクリアのみを目的とするメモリアクセスが不要である。その結果、矩形画像の縦方向の移動に伴うメモリアクセスが更に高速化される。
【００１６】
本発明による上記の矩形画像描画装置では好ましくは、書き込み部がバースト転送で書き込みを行い、書き込むべきデータが単一のバースト単位に収まるときはその書き込むべきデータを同時に書き込み、書き込むべきデータが複数のバースト単位に跨るときはその書き込むべきデータを連続して書き込む。更に好ましくは、書き込み開始アドレス、若しくは書き込み終了アドレスがバースト単位の境界と一致しないとき、書き込み部が、書き込み開始アドレス、若しくは書き込み終了アドレスを含むバースト単位に含まれる書き込み不要アドレスに対し、ライトイネーブル信号をネゲートする。
こうして、背景色の輝度データの書き込みと矩形画像の輝度データの書き込みとが一連のバースト転送で、特に切れ目なく実行される。従って、メモリアクセスが更に高速化される。
【発明の効果】
【００１７】
本発明による矩形画像描画装置及び方法は上記の通り、矩形画像の移動量と移動方向とに基づいて算出された量の背景色の輝度データを、矩形画像の輝度データと同時に、若しくは連続して画像メモリに書き込む。それにより、移動前の矩形画像のクリアと移動後の矩形画像の描画とを行う際のメモリアクセスの効率が更に向上できる。特に、従来の装置や方法とは異なり、矩形画像の輝度データと同時に、若しくは連続して背景色の輝度データを書き込み得るアドレスがバースト単位の書き込み不要アドレスには制限されない。更に、移動させるべき矩形画像の周囲を背景色で覆った画像を予め設定する必要がない。それ故、転送対象の画像データのサイズが必要最小限に抑えられ、かつ、矩形画像の移動量に関わらず、画像のクリアのみを目的とするメモリアクセスが不要である。こうして、本発明による矩形画像描画装置及び方法は従来の装置及び方法に比べ、メモリアクセスの高速化の点で優れている。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の最良の実施形態について、図面を参照しつつ説明する。
本発明の実施形態による矩形画像描画装置10は好ましくは、画面20とその駆動装置30と共に、ディスプレイに搭載される（図1参照）。
【００１９】
画面20には、多数のピクセルが二次元のマトリクス状に配置されている。矩形画像描画装置10は外部装置SR（例えば、メインメモリ、ＨＤＤ、ＤＶＤドライブ、セットトップボックス等）から画像データを読み込み、適切なデータ処理を施す。特に、画像データから画面20の各ピクセルの輝度データ（色情報ともいう）を解読し、ピクセル別に保持する。駆動装置30は、矩形画像描画装置10により保持されたピクセルの輝度データに基づき、画面20の各ピクセルの輝度を調節する。それにより、画像データにより表される画像が画面20上に再現される。
【００２０】
矩形画像描画装置10は好ましくは、スプライト（キャラクタと呼ばれる特定の、一般には矩形の画像を画面内で移動させる、ＣＧによるアニメーション技術）を処理する。例えば、画面内の第１の矩形領域に表示されているキャラクタを第２の矩形領域に移動させる場合、矩形画像描画装置10はまず、第１の矩形領域に対する第２の矩形領域の位置をキャラクタの移動量（動きベクトル）から決定する。矩形画像描画装置10は次に、第１の矩形領域と第２の矩形領域との重複部分を第１の矩形領域から除いた領域（以下、クリア領域という）を背景色で塗りつぶし、移動前のキャラクタのうち、移動後のキャラクタとは重ならない部分をクリアする。それと同時に、第２の矩形領域に移動後のキャラクタを表示する。
【００２１】
矩形画像描画装置10は好ましくは、画像メモリ1、フレームバッファ2、算出部6、及び集積回路3を有する。
画像メモリ1とフレームバッファ2とは好ましくは、バースト転送に対応した高速メモリであり、特に好ましくはＳＤＲＡＭである。その他に、ＳＲＡＭであっても良い。フレームバッファ2は更に好ましくは、画像メモリ1に含まれる。
【００２２】
画像メモリ1は矩形画像描画装置10の作業用メモリとして利用される。外部装置SRから読み込まれた画像データは一旦、画像メモリ1に格納され、適宜読み出されて画像処理を受ける。
フレームバッファ2は画面20のピクセル別に画像データ（特にピクセルの輝度データ）を保持する。フレームバッファ2のアドレス空間は二次元配列で表現され、各アドレスが画面20の各ピクセルの座標に対応づけられている。各ピクセルに対する画像データ（輝度データ）は、各ピクセルの座標に対応するアドレスに格納される。
【００２３】
算出部6は好ましくはＣＰＵである。上記のスプライトでは、算出部6が第２の矩形領域の位置とクリア領域のサイズとをキャラクタの移動量（動きベクトル）から決定する。例えば、第２の矩形領域に対応するフレームバッファ2内のアドレス領域の先頭アドレスが決定される。更に、第１の矩形領域から第２の矩形領域への横方向の移動量に基づき、移動後のキャラクタの横方向に付加されるべき背景色のピクセル数、すなわち、移動後のキャラクタの左又は右に隣接するクリア領域（以下、左又は右クリア領域という）の幅（以下、左又は右クリア幅という）が算出される。同様に、第１の矩形領域から第２の矩形領域への縦方向の移動量に基づき、移動後のキャラクタの縦方向に付加されるべき背景色のライン数、すなわち、移動後のキャラクタの上又は下に隣接するクリア領域（以下、上又は下クリア領域という）の高さ（以下、上又は下クリア高さという）が算出される。
【００２４】
集積回路3は外部装置SRから駆動装置30への画像データの転送を制御する。特にバースト転送モードを利用し、画像メモリ1又はフレームバッファ2に対する画像データの読み書きを高速に行う。ここで、読み書きされるべき画像データは、画面20の全体又はその一部に表示される画像を表す。その画像の表示領域は一般に矩形であり、各矩形の縦／横が画面20の縦／横方向に一致する。集積回路3は特に、各矩形領域に含まれる各ライン（画面20上で横方向に連続して並ぶピクセル群）に対する一連の画像データ、すなわち画像データの各ラインを連続して転送する。
【００２５】
集積回路3は、読み出し部4とそのレジスタ群61〜65、及び、書き込み部5とそのレジスタ群71〜80を含む。
読み出し部4は外部装置SR、画像メモリ1、又はフレームバッファ2から画像データを読み出す。転送元のメモリが特に高速メモリである場合、読み出し部4は読み出しアドレス生成部41を用い、転送対象の画像データをバースト転送で連続的に読み出す。読み出しアドレス生成部41は、下記のレジスタ群61〜65に保持されたデータに基づき、宛先アドレスであるバースト開始アドレスを所定のバースト長ずつインクリメントして更新する。
【００２６】
レジスタ群61〜65は保持回路であり、算出部6からデータを受け取り、そのデータを保持する。レジスタ群は好ましくは、転送元レジスタ61、第一の転送幅レジスタ62、第一の転送高さレジスタ63、第一のＢＰＰレジスタ64、及びフレーム幅レジスタ65を含む。転送元レジスタ61は、転送対象の画像データの先頭アドレスを保持する。
【００２７】
第一の転送幅レジスタ62は、転送対象の画像データの転送幅（その画像データの一ライン当たりのデータ量、すなわち、その画像データにより表される画像の幅に相当するピクセル数）を保持する。第一の転送高さレジスタ63は、転送対象の画像データの転送高さ（その画像データにより表される画像の高さを表すピクセル数であり、その画像データに含まれるラインの数に等しい）を保持する。第一のＢＰＰレジスタ64は、転送元のメモリに格納されている画像データのピクセル一つ当たりのビット数（以下、ＢＰＰと略す）を保持する。ここで、ＢＰＰはその画像データに対応する画像の色深度を表す。
【００２８】
転送対象の画像データ全体が転送元のメモリに連続して格納されているとき、第一のフレーム幅レジスタ65は上記の転送幅を保持する。一方、転送対象の画像データがフレームバッファ2に格納されているとき、第一のフレーム幅レジスタ65はフレームバッファ2のフレーム幅（画面20上で横方向に並ぶピクセルの総数）を保持する。転送元のメモリがフレームバッファ2と同様なアドレス空間を有するときも同様である。
【００２９】
図2は、読み出しアドレス生成部41の構成を示すブロック図である。読み出し部4が転送元のメモリから画像データを読み出すとき、読み出しアドレス生成部41が以下のように、読み出し開始アドレスとバースト開始アドレスとを更新する。
まず、転送元レジスタ61から転送対象の画像データの先頭アドレスが読み出され、第一のセレクタ42により読み出し開始アドレスとして選択される。選択された読み出し開始アドレスは直前のバースト境界のアドレスに丸められる。ここで、バースト境界とはバースト単位（ブロックともいう）の先頭を意味し、そのアドレスは一般に、予め所定値に固定されている。そのバースト境界のアドレスが第二のセレクタ43により最初のバースト開始アドレスとして選択される。
【００３０】
読み出し部4は最初のバースト開始アドレスからデータを一バースト単位ずつ、すなわち所定のバースト長（例えば4×4バイト）ずつ連続して読み出す。但し、最初に読み出されたバースト単位のうち、最初のバースト開始アドレスから読み出し開始アドレスの直前までのビットは実際には無視される（例えば、読み出し部4内部のバッファメモリには記憶されない）。一バースト単位の読み出しが完了するごとに、第一の加算器44が、バースト長に相当するビット数をバースト開始アドレスに加え、第二のセレクタ43がその加算結果を新たなバースト開始アドレスとして選択する。こうして、転送対象の画像データが読み出し開始アドレスから連続して読み出される。そのとき、連続して読み出される画像データの総量は、第一の転送幅レジスタ62から読み出された転送幅に対し、第一のＢＰＰレジスタ64から読み出されたＢＰＰを乗じた値（＝転送幅×ＢＰＰ）と等しい。すなわち、転送対象の画像データの一ラインが連続して読み出される。
【００３１】
次に、第二の加算器45が転送幅×ＢＰＰを読み出し開始アドレスに加え、第一のセレクタ42がその加算結果を新たな読み出し開始アドレスとして選択する。それにより、その新たな読み出し開始アドレスから、転送対象の画像データの次の一ラインが、上記と同様なバースト転送により連続して読み出される。
以上の読み出し処理が、第一の転送高さレジスタ63から読み出された転送高さと等しい回数だけ繰り返される。その結果、転送対象の画像データ全体が転送元のメモリから読み出される。
【００３２】
書き込み部5は読み出し部4により読み出された転送対象の画像データを、駆動装置30、画像メモリ1、又はフレームバッファ2に書き込む（図1参照）。転送先が特にフレームバッファ2である場合、書き込み部5は書き込みアドレス生成部51とデータ選択部52とを用い、転送対象の画像データをバースト転送で書き込む。それと同時に、元の画像をクリアする。
書き込みアドレス生成部51は、下記のレジスタ群71〜80に保持されたデータに基づき、バースト開始アドレスを所定のバースト長（例えば4×4バイト）ずつインクリメントして更新する。
【００３３】
レジスタ群71〜80は保持回路であり、算出部6からデータを受け取り、そのデータを保持する。レジスタ群は好ましくは、宛先レジスタ71、第二の転送幅レジスタ72、第二の転送高さレジスタ73、第二のＢＰＰレジスタ74、第二のフレーム幅レジスタ75、左クリアレジスタ76、右クリアレジスタ77、上クリアレジスタ78、下クリアレジスタ79、及びクリアデータレジスタ80を含む。
【００３４】
宛先レジスタ71は、転送対象の画像データの先頭が書き込まれるべき、転送先のメモリでの先頭アドレス（すなわち、宛先アドレス）を保持する。特に上記のスプライトでは、第２の矩形領域の左上隅に対応するフレームバッファ2内のアドレスが宛先アドレスとして設定される。第二の転送幅レジスタ72は転送対象の画像データの転送幅を保持する。第二の転送高さレジスタ73は転送対象の画像データの転送高さを保持する。第二のＢＰＰレジスタ74は、転送先のメモリに書き込まれる画像データのＢＰＰ（その画像データに対応する画像の色深度に相当する）を保持する。
【００３５】
転送対象の画像データ全体が転送先のメモリに連続して書き込まれるとき、第二のフレーム幅レジスタ75は上記の転送幅を保持する。一方、転送対象の画像データがフレームバッファ2に書き込まれるとき、第二のフレーム幅レジスタ75はフレームバッファ2のフレーム幅を保持する。転送先のメモリがフレームバッファ2と同様なアドレス空間を有するときも同様である。
【００３６】
左クリアレジスタ76は左クリア幅を保持する。右クリアレジスタ77は右クリア幅を保持する。上クリアレジスタ78は上クリア高さを保持する。下クリアレジスタ79は下クリア高さを保持する。クリアデータレジスタ80は、ピクセル一つ当たりのクリアデータ（好ましくは、一定の背景色を表す輝度データ）を保持する。
【００３７】
好ましくは、転送元のメモリに予め準備される転送対象の画像データの転送幅、転送高さ、及びＢＰＰがそれぞれ、転送先のメモリに書き込まれるべき画像データの転送幅、転送高さ、及びＢＰＰと一致する。その場合、第二の転送幅レジスタ72、第二の転送高さレジスタ73、及び第二のＢＰＰレジスタ74がそれぞれ、第一の転送幅レジスタ62、第一の転送高さレジスタ63、及び第一のＢＰＰレジスタ64と兼用されても良い。
【００３８】
データ選択部52は、書き込み部5により転送先のメモリに書き込まれるデータをカウントする。更に、それらのカウントとレジスタ群71〜80に保持されたデータとに基づき、転送先のメモリに対して次に書き込まれるべきデータとして、転送対象の画像データ、又はクリアデータレジスタ80に保持されたクリアデータのいずれかを選択する。
【００３９】
図3は、書き込みアドレス生成部51の構成を示すブロック図である。書き込み部5が画像データをフレームバッファ2に対して書き込むとき、書き込みアドレス生成部51が以下のように、書き込み開始アドレスとバースト開始アドレスとを更新する。
まず、第二のフレーム幅レジスタ75から読み出されたフレーム幅と、第二のＢＰＰレジスタ74から読み出されたＢＰＰとの積（＝フレーム幅×ＢＰＰ）が計算される。乗算器53はその積に、上クリアレジスタ78から読み出された上クリア高さを更に乗じる。第三の加算器54はその乗算結果に対し、左クリアレジスタ76から読み出された左クリア幅とＢＰＰとの積を加える。減算器55はその加算結果を宛先アドレスから減じる。その減算結果が第三のセレクタ56により書き込み開始アドレスの初期値として選択される。
【００４０】
第三のセレクタ56により選択された書き込み開始アドレスは直前のバースト境界のアドレスに丸められる。ここで、バースト境界のアドレスは一般に、予め所定値に固定されている。そのようにして得られたバースト境界のアドレスが第四のセレクタ57により、最初のバースト開始アドレスとして選択される。
【００４１】
書き込み部5はバースト開始アドレスからデータを所定のバースト長（例えば4×4バイト）ずつ連続して書き込む。但し、書き込み部5からフレームバッファ2へ最初に送出されるバースト単位のうち、最初のバースト開始アドレスから書き込み開始アドレスの直前までのアドレスは書き込み不要アドレスとして設定され、転送先のメモリへの実際の書き込みが禁止される（転送先のメモリに対するライトイネーブル信号がネゲートされる）。それにより、バースト境界の実際の位置に関わらず、書き込み開始アドレスが任意の位置に設定可能である。すなわち、左クリア幅が任意の値に調節可能である。
【００４２】
一バースト単位の書き込みが完了するごとに、第四の加算器58がバースト長に相当するビット数をバースト開始アドレスに加え、第四のセレクタ57がその加算結果を新たなバースト開始アドレスとして選択する。こうして、書き込み開始アドレスから一連のデータがバースト転送により、同時に、又は連続して書き込まれる。すなわち、一連のデータが単一のバースト単位に収まるときはそれらのデータが同時に書き込まれ、一連のデータが複数のバースト単位に跨るときはそれらのデータが連続して書き込まれる。
【００４３】
書き込み部5はデータを一ラインずつ、連続して書き込む。書き込まれるべき各ラインの末尾のアドレス（以下、書き込み終了アドレスという）がバースト境界と一致しないとき、書き込み終了アドレスからその直後のバースト境界の直前までのアドレスは書き込み不要アドレスとして設定され、転送先のメモリへの実際の書き込みが禁止される（転送先のメモリに対するライトイネーブル信号がネゲートされる）。それにより、バースト境界の実際の位置に関わらず、書き込み終了アドレスが任意の位置に設定可能である。すなわち、右クリア幅が任意の値に調節可能である。
【００４４】
書き込み終了アドレスにデータが書き込まれるごとに、第五の加算器59がフレーム幅×ＢＰＰを書き込み開始アドレスに加え、第三のセレクタ56がその加算結果を新たな書き込み開始アドレスとして選択する。それにより、その新たな書き込み開始アドレスから一連のデータが上記と同様に、バースト転送で書き込まれる。
【００４５】
図4は、データ選択部52の構成を示すブロック図である。データ選択部52は、六つのダウンカウンタ81A〜81F、データセレクタ82、及び判別部83を含む。
六つのダウンカウンタ81A〜81Fはいずれも好ましくは、カウントを下記のタイミングで1ずつ減らし、カウントが0に達した時点で停止する。
【００４６】
書き込みアドレス生成部51が書き込み開始アドレスを更新するごとに、第一のダウンカウンタ81Aはそのカウント（以下、左クリアカウントAという）を、左クリアレジスタ76から読み出された左クリア幅にリセットする。それ以後、クリアデータレジスタ80からクリアデータが読み出されるごとに、左クリアカウントAが1ずつ減る。
【００４７】
左クリアカウントAが0に達するごとに、第二のダウンカウンタ81Bはそのカウント（以下、転送幅カウントBという）を、転送幅レジスタ72から読み出された画像データの転送幅にリセットする。それ以後、転送対象の画像データが一ピクセルずつ、書き込み部5から送出されるごとに、転送幅カウントBが1ずつ減る。
【００４８】
転送幅カウントBが0に達するごとに、第三のダウンカウンタ81Cはそのカウント（以下、右クリアカウントCという）を、右クリア幅レジスタ77から読み出された右クリア幅にリセットする。それ以後、クリアデータレジスタ80からクリアデータが読み出されるごとに、右クリアカウントCが1ずつ減る。
【００４９】
宛先レジスタ71に新たな宛先アドレスが書き込まれるごとに、第四のダウンカウンタ81Dはそのカウント（以下、上クリアカウントDという）を、上クリアレジスタ78から読み出された上クリア高さにリセットする。それ以後、書き込みアドレス生成部51が書き込み開始アドレスを更新するごとに、上クリアカウントDが1ずつ減る。
【００５０】
上クリアカウントDが0に達するごとに、第五のダウンカウンタ81Eはそのカウント（以下、転送高さカウントEという）を、転送高さレジスタ73から読み出された画像データの転送高さにリセットする。それ以後、書き込みアドレス生成部51が書き込み開始アドレスを更新するごとに、転送高さカウントEが1ずつ減る。
【００５１】
転送高さカウントEが0に達するごとに、第六のダウンカウンタ81Fはそのカウント（以下、下クリアカウントFという）を、下クリアレジスタ79から読み出された下クリア高さにリセットする。それ以後、書き込みアドレス生成部51が書き込み開始アドレスを更新するごとに、下クリアカウントFが1ずつ減る。
【００５２】
データセレクタ82は判別部83の指示に従い、転送対象の画像データ、又はクリアデータレジスタ80に保持されたクリアデータのいずれかを、実際に書き込まれるべきデータとして選択する。
判別部83は六つのダウンカウンタ81A〜81FのカウントA〜Fに基づき、データセレクタ82に対して次のように指示する：上クリアカウントDが0より大きい場合、クリアデータの選択が指示される。上クリアカウントDが0であり、かつ転送高さカウントEが0より大きい場合、左クリアカウントAが0より大きい間はクリアデータの選択が指示され、左クリアカウントAが0で、かつ転送幅カウントBが0より大きい間は画像データの選択が指示され、それ以外はクリアデータの選択が指示される。上クリアカウントDと転送高さカウントEとが共に0である場合、クリアデータの選択が指示される。
【００５３】
ＣＧによるアニメーションが画面20に表示される場合、矩形画像描画装置10は以上の構成要素を利用し、スプライトを次のように行う。
例えば図10〜13に示されているように、元のキャラクタP1をクリアし、その表示領域（第１の矩形領域）に対して右下に位置する第２の矩形領域Qに新たなキャラクタP2を表示する場合を想定する。ここで、新たなキャラクタP2を表す画像データ（輝度データ）が転送対象の画像データとして、予め、画像メモリ1の特定の領域に連続して格納されている。本発明の実施形態による矩形画像描画方法では、特に従来の方法とは異なり、画像メモリ1には、転送対象の画像データP2だけが予め準備され、クリア領域に書き込まれるべきクリアデータは準備される必要がない。
【００５４】
まず、スプライト処理用のプログラムが算出部6により実行される。特に、キャラクタの動きベクトルやサイズの変化に基づき、第２の矩形領域Qの位置とクリア領域のサイズとが計算される。算出された第２の矩形領域Qの位置に基づき、レジスタ群61〜65、71〜80に対し、算出部6がデータを次のように設定する（図1参照）。
【００５５】
転送元レジスタ61は転送対象の画像データP2の先頭アドレスSを保持する。第一の転送幅レジスタ62は、新たなキャラクタP2の幅W2を表すピクセル数を、転送対象の画像データの転送幅として保持する。第一の転送高さレジスタ63は、新たなキャラクタP2の高さH2を表すピクセル数を、転送対象の画像データの転送高さとして保持する。第一のＢＰＰレジスタ64は、画像メモリ1に格納された画像データのＢＰＰを保持する。第一のフレーム幅レジスタ65は上記の転送幅W2を保持する。
【００５６】
宛先レジスタ71は、新たなキャラクタP2を表示すべき第２の矩形領域Qの左上隅のピクセルTに相当するフレームバッファ2内のアドレスを、宛先アドレスとして保持する。第二の転送幅レジスタ72は第２の矩形領域Qの幅W1を画像データの転送幅として保持する。第二の転送高さレジスタ73は第２の矩形領域Qの高さH1を画像データの転送高さとして保持する。第二のＢＰＰレジスタ74は、フレームバッファ2のＢＰＰを保持する。第二のフレーム幅レジスタ75はフレームバッファ2のフレーム幅FWを保持する。
【００５７】
左クリアレジスタ76はキャラクタの右方への移動量（特に、元のキャラクタが表示されている第１の矩形領域P1の左端と第２の矩形領域Qの左端との間で横方向に並ぶピクセルの数）LCを左クリア幅として保持する（図10参照）。右クリアレジスタ77は右クリア幅として0を保持する。上クリアレジスタ78はキャラクタの下方への移動量（特に、第１の矩形領域P1の上端と第２の矩形領域Qの上端との間に位置するラインの数）UCを上クリア高さとして保持する（図10参照）。下クリアレジスタ79は下クリア高さとして0を保持する。クリアデータレジスタ80は一ピクセルに対するクリアデータを保持する。
【００５８】
次に、集積回路3がステップS1、S2、S3の順に、画像メモリ1からフレームバッファ2へ画像データを転送する（図5参照）。但し、下クリア高さが0であるので、下クリア領域のクリア処理（ステップS4）はスキップされる（詳細は後述）。
ステップS1：読み出し部4が画像メモリ1から転送対象の画像データP2を読み出す（図1参照）。
ここで、好ましくは、画像メモリ1に予め準備された転送対象の画像データの転送幅、転送高さ、及びＢＰＰがそれぞれ、画面20上の領域Qに相当するフレームバッファ2内の領域に書き込まれるべき画像データの転送幅W1、転送高さH1、及びＢＰＰと一致する。その他に、画像メモリ1から読み出された画像データがフレームバッファ2への書き込みの前に処理され、その転送幅、転送高さ、及びＢＰＰがそれぞれ、フレームバッファ2内の上記の領域に書き込まれるべき画像データの転送幅W1、転送高さH1、及びＢＰＰと一致するように調整されても良い。
【００５９】
ステップS2：書き込み部5が、上クリア領域W1×UCに相当するフレームバッファ2内の領域をクリアする（図1、11参照）。ここで、上クリア領域W1×UCは、画面20上の第２の矩形領域Qの上に隣接する、元のキャラクタP1を含む矩形領域であり、幅は転送幅W1に等しく、高さは上クリア高さUCに等しい。上クリア領域W1×UCの左右の端は、第１と第２との矩形領域P1、Qを合成した第３の領域の左右の端と一致する。図11に示されている場合では上クリア領域W1×UCの左右の端が第１の矩形領域P1の左右の端と一致する。
【００６０】
ステップS3：書き込み部5が、左クリア領域LC×H1に相当するフレームバッファ2内の領域をクリアすると同時に、第２の矩形領域Qに相当するフレームバッファ2内の領域に転送対象の画像データP2を書き込む（図12、13参照）。ここで、左クリア領域LC×H1は、画面20上の領域Qの左に隣接する、元のキャラクタP1を含む矩形領域であり、幅は左クリア幅LCに等しく、高さは転送高さH1に等しい。
【００６１】
図6は、画像データの読み出し処理（ステップS1）の詳細（ステップS11〜S15）を示すフローチャートである。
ステップS11：転送元レジスタ61から転送対象の画像データの先頭アドレスSが読み出され、読み出し開始アドレスとして設定される（図2、10参照）。一方、第一の転送高さレジスタ63から転送高さH2が読み出され、転送高さカウントの初期値として設定される。
ステップS12：転送対象の画像データP2の先頭ライン（データ量＝転送幅W2×ＢＰＰ）が読み出し開始アドレスSから連続して読み出される。その読み出しは特に、バースト転送モードで高速に行われる（図2参照）。
【００６２】
ステップS13：転送高さカウントが1だけ減らされる。
ステップS14：転送高さカウントが0に達したか否か、がチェックされる。転送高さカウントが0に達していない場合、処理がステップS15へ進む。転送高さカウントが0に達した場合、ステップS1が終了する。
ステップS15：読み出し開始アドレスが転送幅×ＢＰＰだけインクリメントされる（図2参照）。それにより、転送対象の画像データP2の次のラインの先頭アドレスが新たな読み出し開始アドレスとして設定される。
ステップS12〜S15の反復により、転送対象の画像データP2が一ラインずつ、バースト転送により画像メモリ1から読み出される。
【００６３】
図7は、上クリア領域のクリア処理（ステップS2）の詳細（ステップS21〜S25）を示すフローチャートである。
ステップS21：宛先レジスタ71から宛先アドレスTが読み出され、それに基づいて書き込み開始アドレスWの初期値が次式から算定される：書き込み開始アドレスW＝宛先アドレスT−（左クリア幅LC＋上クリア高さUC×フレーム幅FW）×ＢＰＰ（図3参照）。すなわち、書き込み開始アドレスWの初期値は元のキャラクタP1の左上隅のピクセルWに相当する（図10参照）。
一方、上クリアレジスタ63から上クリア高さUCが読み出され、上クリアカウントDの初期値として設定される（図4参照）。
【００６４】
ステップS22：上クリアカウントDが0に達したか否か、がチェックされる。上クリアカウントDが0に達していない場合、処理がステップS23へ進む。上クリアカウントDが0に達した場合、ステップS2が終了する。
ステップS23：クリアデータがクリアデータレジスタ80から読み出され、書き込み開始アドレスWから繰り返しコピーされる（図11参照）。ここで、右クリア幅が0であるので、クリアデータのコピー回数は転送幅W1に等しい。すなわち、一連のクリアデータの総量は転送幅W1のＢＰＰ倍に等しい（図3、4参照）。更に、一連のクリアデータは好ましくは、バースト転送により書き込まれる（図3、4参照）。
ステップS24：書き込み開始アドレスがフレーム幅FW×ＢＰＰだけインクリメントされる（図3、4参照）。それにより、上クリア領域W1×UCに含まれる次のラインの先頭アドレスが新たな書き込み開始アドレスとして設定される。
ステップS25：上クリアカウントDが1だけ減らされる（図4参照）。
【００６５】
ステップS22〜S25の反復により、上クリア領域W1×UCに対応するフレームバッファ2内の領域にクリアデータが一ラインずつ、バースト転送により書き込まれる。それにより、上クリア領域W1×UCでは、元のキャラクタP1が背景色で塗りつぶされる（図11参照）。
【００６６】
図8は、画像データの書き込み処理（ステップS3）の詳細（ステップS31〜S36）を示すフローチャートである。
ステップS31：転送高さカウントEが0に達したか否か、がチェックされる。転送高さカウントEが0に達していない場合、処理がステップS32へ進む。転送高さカウントEが0に達した場合、ステップS3が終了する。
【００６７】
ステップS32：クリアデータがクリアデータレジスタ80から読み出され、書き込み開始アドレスWから繰り返しコピーされる（図12参照）。そのとき、書き込み開始アドレスに対応するピクセルWは常に、上クリア領域W1×UCの左端の下、すなわち左クリア領域LC×H1の左端に位置する（図3、12参照）。更に、クリアデータのコピー回数は左クリア幅LCに等しい。すなわち、一連のクリアデータの総量は左クリア幅LCのＢＰＰ倍に等しい（図4参照）。
ステップS33：クリアデータに続き、転送対象の画像データP2の一ラインが連続して書き込まれる（図12参照）。そのとき、その一ラインの先頭アドレスに対応するピクセルは常に、第２の矩形領域Qの左端に位置する（図3、4、12参照）。更に、画像データの一ラインの総量は転送幅W1のＢＰＰ倍に等しい（図4参照）。
ステップS34：右クリア幅が0であるので、ステップS33はスキップされる（図4参照）。
【００６８】
ステップS32、S33、S34では特に、クリアデータと転送対象の画像データの一ラインとが一連のバースト転送により連続して書き込まれる（図3、4参照）。更に、ステップS32で最後にコピーされるクリアデータの一部が、ステップS33で最初に書き込まれる転送対象の画像データP2の一部と共に、同一のバースト単位として同時に、フレームバッファ2に送られても良い。
【００６９】
ステップS35：書き込み開始アドレスがフレーム幅FW×ＢＰＰだけインクリメントされる（図3、4参照）。それにより、元の書き込み開始アドレスに対応するピクセルWの一つ下に位置するピクセルのアドレスが、新たな書き込み開始アドレスとして設定される。こうして、書き込み開始アドレスに対応するピクセルが常に、左クリア領域LC×H1の左端に位置する。
ステップS36：転送高さカウントEが1だけ減らされる（図4参照）。
【００７０】
ステップS31〜S36の反復により、左クリア領域LC×H1に対応するフレームバッファ2内の領域にはクリアデータがコピーされ、特に元のキャラクタP1が背景色で塗りつぶされる（図12参照）。それと共に、第２の矩形領域Qに対応するフレームバッファ2内の領域には転送対象の画像データP2が書き込まれる。クリアデータのコピーと画像データの書き込みとは一連のバースト転送で行われるので、それらの処理は高速である。
【００７１】
図9は、下クリア領域のクリア処理（ステップS4）の詳細（ステップS41〜S44）を示すフローチャートである。
ステップS41：下クリアカウントFが0に達したか否か、がチェックされる。下クリアカウントFが0に達していない場合、処理がステップS42へ進む。下クリアカウントFが0に達した場合、ステップS4が終了する。
図10〜13に示されている例では下クリア高さが0であるので、データ選択部52は、フレームバッファ2に書き込まれるべきデータの選択動作を停止する（図4参照）。それにより下クリア領域のクリア処理（ステップS4）はスキップされ、画像データの書き込み処理が終了する。
こうして、画面20上では図13に示されているように、キャラクタの表示領域が右方向に左クリア幅LCだけ移動し、下方向に上クリア高さUCだけ移動する。更に、元のキャラクタP1が新たなキャラクタP2に置換される。
【００７２】
例えば図14〜17に示されているように、元のキャラクタP1をクリアし、その表示領域（第１の矩形領域）に対して左上に位置する第２の矩形領域Qに新たなキャラクタP2を表示する場合を想定する。ここで、新たなキャラクタP2を表す転送対象の画像データ（輝度データ）は予め、画像メモリ1の特定の領域に連続して格納されている。特に、図10〜13の場合と同様に、画像メモリ1には転送対象の画像データP2だけが予め準備され、クリア領域に書き込まれるべきクリアデータは準備される必要がない。
【００７３】
まず、算出部6がレジスタ群61〜65、71〜80に対し、図10〜13の場合と同様にデータを設定する。但し、図10〜13の場合とはクリア領域のサイズに関するデータが異なる。左クリアレジスタ76は左クリア幅として0を保持する。右クリアレジスタ77はキャラクタの左方への移動量（特に、第１の矩形領域P1の右端と第２の矩形領域Qの右端との間で横方向に並ぶピクセルの数）RCを右クリア幅として保持する（図14参照）。上クリアレジスタ78は上クリア高さとして0を保持する。下クリアレジスタ79はキャラクタの上方への移動量（特に、第１の矩形領域P1の下端と第２の矩形領域Qの下端との間に位置するラインの数）DCを下クリア高さとして保持する（図14参照）。
【００７４】
次に、集積回路3がステップS1、S2、S3、S4の順に、画像メモリ1からフレームバッファ2へ画像データを転送する（図5参照）。
ステップS1：読み出し部4が画像メモリ1から転送対象の画像データP2を読み出す（図1参照）。
ここで、好ましくは、画像メモリ1に予め準備された転送対象の画像データの転送幅、転送高さ、及びＢＰＰがそれぞれ、画面20上の領域Qに相当するフレームバッファ2内の領域に書き込まれるべき画像データの転送幅W1、転送高さH1、及びＢＰＰと一致する。その他に、読み出された画像データがフレームバッファ2への書き込みの前に処理され、その転送幅、転送高さ、及びＢＰＰがそれぞれ、フレームバッファ2内の上記の領域に書き込まれるべき画像データの転送幅W1、転送高さH1、及びＢＰＰと一致するように調整されても良い。
【００７５】
ステップS2：上クリア高さと左クリア幅とがいずれも0であるので、書き込み部5が宛先アドレスTを書き込み開始アドレスWの初期値として設定する（図1、14参照）。特に、図10〜13の場合とは異なり、上クリア領域が設定されない。
ステップS3：書き込み部5が、領域Qに相当するフレームバッファ2内の領域に転送対象の画像データP2を書き込むと同時に、右クリア領域RC×H1に相当するフレームバッファ2内の領域をクリアする（図15参照）。ここで、右クリア領域RC×H1は、画面20上の領域Qの右に隣接する、元のキャラクタP1を含む矩形領域であり、幅は右クリア幅RCに等しく、高さは転送高さH1に等しい。
ステップS4：書き込み部5が、下クリア領域（W1＋RC）×DCに相当するフレームバッファ2内の領域をクリアする（図16、17参照）。ここで、下クリア領域（W1＋RC）×UCは、画面20上の領域Qの下に隣接する、元のキャラクタP1を含む矩形領域であり、幅は転送幅W1と右クリア幅RCとの和に等しく、高さは下クリア高さDCに等しい。下クリア領域（W1＋RC）×UCの左右の端は、第１と第２との矩形領域P1、Qを合成した第３の領域の左右の端と一致する。図16、17に示されている場合では、下クリア領域（W1＋RC）×UCの左端が第２の矩形領域Qの左端と一致し、右端が第１の矩形領域P1の右端と一致する。
【００７６】
画像データの読み出し処理（ステップS1）は図10〜13の場合と同様に、図6に示されているフローチャートに従って進行する。従って、その詳細は図10〜13の場合に関する説明を援用する。
【００７７】
上クリア領域のクリア処理（ステップS2）は、図7に示されているフローチャートに従って進行する。
ステップS21：宛先レジスタ71から宛先アドレスTが読み出され、それに基づいて書き込み開始アドレスWの初期値が次式から算定される：書き込み開始アドレスW＝宛先アドレスT−（左クリア幅LC＋上クリア高さUC×フレーム幅FW）×ＢＰＰ（図3参照）。しかし、上クリア高さと左クリア幅とがいずれも0であるので、書き込み開始アドレスWの初期値は宛先アドレスTと等しい（図14参照）。
一方、上クリアレジスタ63から上クリア高さとして0が読み出され、上クリアカウントDの初期値として設定される（図4参照）。
ステップS22：上クリアカウントDが0に達したか否か、がチェックされる。しかし、上クリアカウントDは既に0であるので、ステップS2が終了する。すなわち、上クリア領域のクリア処理はスキップされ、画像データの書き込み処理が開始される。
【００７８】
画像データの書き込み処理（ステップS3）は、図8に示されているフローチャートに従って進行する。
ステップS31：転送高さカウントEが0に達したか否か、がチェックされる。転送高さカウントEが0に達していない場合、処理がステップS32へ進む。転送高さカウントEが0に達した場合、ステップS3が終了する。
【００７９】
ステップS32：左クリア幅が0であるので、ステップS32はスキップされる（図4参照）。
ステップS33：転送対象の画像データP2の一ラインが書き込み開始アドレスWから連続して書き込まれる（図15参照）。そのとき、書き込み開始アドレスに対応するピクセルWは常に、第２の矩形領域Qの左端に位置する（図3、4参照）。更に、連続して書き込まれる画像データP2の一ラインの量は転送幅W1のＢＰＰ倍に等しい（図4参照）。
ステップS34：転送対象の画像データP2の一ラインに続き、クリアデータがクリアデータレジスタ80から繰り返しコピーされる（図15参照）。そのとき、一連のクリアデータの先頭アドレスに対応するピクセルWRは常に、第２の矩形領域Qの右端に位置する（図3、4、15参照）。更にクリアデータのコピー回数が右クリア幅RCに等しい。すなわち、一連のクリアデータの総量は右クリア幅RCのＢＰＰ倍に等しい（図4参照）。
【００８０】
ステップS32、S33、S34では特に、クリアデータと転送対象の画像データの一ラインとが一連のバースト転送により連続して書き込まれる（図3、4参照）。更に、ステップS33で最後に書き込まれる転送対象の画像データP2の一部が、ステップS34で最初にコピーされるクリアデータの一部と共に、同一のバースト単位として同時に、フレームバッファ2に送られても良い。
【００８１】
ステップS35：書き込み開始アドレスがフレーム幅FW×ＢＰＰだけインクリメントされる（図3、4参照）。それにより、元の書き込み開始アドレスに対応するピクセルWの一つ下のピクセルのアドレスが、新たな書き込み開始アドレスとして設定される。こうして、書き込み開始アドレスに対応するピクセルWは常に、第２の矩形領域Qの左端に位置する。
ステップS36：転送高さカウントEが1だけ減らされる（図4参照）。
【００８２】
ステップS31〜S36の反復により、第２の矩形領域Qに対応するフレームバッファ2内の領域には転送対象の画像データP2が書き込まれ、特に元のキャラクタP1が背景色で塗りつぶされる（図15参照）。それと共に、右クリア領域RC×H1に対応するフレームバッファ2内の領域にはクリアデータが書き込まれる。クリアデータのコピーと画像データの書き込みとは一連のバースト転送で行われるので、それらの処理は高速である。
【００８３】
下クリア領域のクリア処理（ステップS4）は、図9に示されているフローチャートに従って進行する。
ステップS41：下クリアカウントFが0に達したか否か、がチェックされる。下クリアカウントFが0に達していない場合、処理がステップS42へ進む。下クリアカウントFが0に達した場合、ステップS4が終了する。
ステップS42：クリアデータが書き込み開始アドレスWから繰り返しコピーされる（図16参照）。そのとき、書き込み開始アドレスに対応するピクセルWは常に、第２の矩形領域Qの左端の下に位置する（図3、4、16参照）。更に、一連のクリアデータの総量は、転送幅W1と右クリア幅RCとの和W1＋RCのＢＰＰ倍に等しい（図3、4参照）。その上、一連のクリアデータはバースト転送により書き込まれる（図3、4参照）。
【００８４】
ステップS43：書き込み開始アドレスがフレーム幅FW×ＢＰＰだけインクリメントされる（図3、4参照）。それにより、下クリア領域（W1＋RC）×DCに含まれる次のラインの先頭アドレスが、新たな書き込み開始アドレスとして設定される。
ステップS44：下クリアカウントFが1だけ減らされる（図4参照）。
【００８５】
ステップS41〜S44の反復により、下クリア領域（W1＋RC）×DCに対応するフレームバッファ2内の領域にクリアデータが一ラインずつ、バースト転送により書き込まれる。特にその領域では、元のキャラクタP1が背景色で塗りつぶされる（図16参照）。
こうして、画面20上では図17に示されるように、キャラクタの表示領域が左方向に右クリア幅RCだけ移動し、上方向に下クリア高さDCだけ移動する。更に、元のキャラクタP1が新たなキャラクタP2に置換される。
元のキャラクタの表示領域に対して左下、又は右上にある領域に新たなキャラクタを表示する場合も上記と同様な方法が適用される。
【００８６】
本発明の実施形態による矩形画像描画装置がＣＧによるアニメーションの処理、特にスプライトを行うとき、上記の通り、転送に先立って転送対象の画像データP2だけが転送元の画像メモリ1に準備される。一方、フレームバッファ2に書き込まれるべきクリアデータは、画像メモリ1には準備されない。クリアデータは、フレームバッファ2に対して転送対象の画像データP2が書き込まれるときに、クリアデータレジスタ80からフレームバッファ2へ繰り返しコピーされる。こうして、画像メモリ1からデータバスに出力されるデータが転送対象の画像データP2だけに限られるので、画像メモリ1からの読み出しについて、実効的なバンド幅が実質的に最大化される。こうして、画像メモリ1に対するアクセスが更に高速化される。
【００８７】
本発明の実施形態による矩形画像描画装置では更に、上記の通り、特にレジスタ群71〜80に保持されたデータに基づき、クリア領域の設定とそれに対するクリアデータの書き込みとが自動的に行われる。上位のアプリケーションはそれらのレジスタ群71〜80に必要なデータを設定するだけで、元のキャラクタP1のクリアと新たなキャラクタP2の上書きとを同時に実行可能である。更に、画像データの書き込みとクリア領域に対するクリアデータのコピーとが、一連のバースト転送で高速に行われる。その結果、ＣＧによるアニメーションの処理が更に高速化される。
【００８８】
なお、上記の実施形態では、書き込みは連続して行われるしかし、バースト転送において、連続して書き込まれるべきデータが全て、単一のバースト単位に収まる場合は、全てのデータが一回のメモリアクセスで同時に書き込まれても良い。
【産業上の利用可能性】
【００８９】
本発明による矩形画像描画装置及びその方法は上記の通り、例えばディスプレイでの動画処理に関する。従って、本発明は明らかに産業上利用可能である。
【図面の簡単な説明】
【００９０】
【図１】本発明の実施形態による矩形画像描画装置を示すブロック図である。
【図２】本発明の実施形態による矩形画像描画装置に含まれる、読み出しアドレス生成部の構成を示すブロック図である。
【図３】本発明の実施形態による矩形画像描画装置に含まれる、書き込みアドレス生成部の構成を示すブロック図である。
【図４】本発明の実施形態による矩形画像描画装置に含まれる、データ選択部の構成を示すブロック図である。
【図５】本発明の実施形態による、画像メモリからフレームバッファへの画像データの転送（ビットブリット）を示すフローチャートである。
【図６】図5に示されている、画像データの読み出し処理（ステップS1）の詳細を示すフローチャートである。
【図７】図5に示されている、上クリア領域のクリア処理（ステップS2）の詳細を示すフローチャートである。
【図８】図5に示されている、画像データの書き込み処理（ステップS3）の詳細を示すフローチャートである。
【図９】図5に示されている、下クリア領域のクリア処理（ステップS4）の詳細を示すフローチャートである。
【図１０】画面に表示されている元のキャラクタをクリアし、その表示領域の右下に、画像メモリに格納されている新たなキャラクタを表示する処理を説明するための模式図である。まず、元のキャラクタを表示する第１の矩形領域と新たなキャラクタを表示すべき第２の矩形領域とに基づき、フレームバッファの書き込み開始アドレスの初期値が算定される。
【図１１】画面に表示されている元のキャラクタをクリアし、第１の矩形領域の右下に位置する第２の矩形領域に、画像メモリに格納されている新たなキャラクタを表示する処理を説明するための模式図である。図10に続き、上クリア領域に相当するフレームバッファ内の領域にクリアデータが書き込まれる。
【図１２】画面に表示されている元のキャラクタをクリアし、第１の矩形領域の右下に位置する第２の矩形領域に、画像メモリに格納されている新たなキャラクタを表示する処理を説明するための模式図である。図11に続き、左クリア領域に相当するフレームバッファ内の領域にクリアデータが書き込まれると共に、新たなキャラクタを表すデータがフレームバッファに書き込まれる。
【図１３】図10〜12に示されている処理の結果、画面に表示されていた元のキャラクタがクリアされ、第１の矩形領域の右下に位置する第２の矩形領域に、画像メモリに格納された新たなキャラクタが表示される様子を示す模式図である。
【図１４】画面に表示されている元のキャラクタをクリアし、第１の矩形領域の左上に位置する第２の矩形領域に、画像メモリに格納されている新たなキャラクタを表示する処理を説明するための模式図である。まず、第１の矩形領域と第２の矩形領域とに基づき、フレームバッファの書き込み開始アドレスの初期値が算定される。
【図１５】画面に表示されている元のキャラクタをクリアし、第１の矩形領域の左上に位置する第２の矩形領域に、画像メモリに格納されている新たなキャラクタを表示する処理を説明するための模式図である。図14に続き、新たなキャラクタを表すデータがフレームバッファに書き込まれると共に、右クリア領域に相当するフレームバッファ内の領域にクリアデータが書き込まれる。
【図１６】画面に表示されている元のキャラクタをクリアし、第１の矩形領域の左上に位置する第２の矩形領域に、画像メモリに格納されている新たなキャラクタを表示する処理を説明するための模式図である。図15に続き、下クリア領域に相当するフレームバッファ内の領域にクリアデータが書き込まれる。
【図１７】図14〜16に示されている処理の結果、画面に表示されていた元のキャラクタがクリアされ、第１の矩形領域の右下に位置する第２の矩形領域に、画像メモリに格納された新たなキャラクタが表示される様子を示す模式図である。
【図１８】メモリアクセスの高速化を図る従来の技術を示すブロック図である。
【図１】
0004919805.tif 000002
【図２】
0004919805.tif 000003
【図３】
0004919805.tif 000004
【図４】
0004919805.tif 000005
【図５】
0004919805.tif 000006
【図６】
0004919805.tif 000007
【図７】
0004919805.tif 000008
【図８】
0004919805.tif 000009
【図９】
0004919805.tif 000010
【図１０】
0004919805.tif 000011
【図１１】
0004919805.tif 000012
【図１２】
0004919805.tif 000013
【図１３】
0004919805.tif 000014
【図１４】
0004919805.tif 000015
【図１５】
0004919805.tif 000016
【図１６】
0004919805.tif 000017
【図１７】
0004919805.tif 000018
【図１８】
0004919805.tif 000019