JP4919805B2 - 矩形画像描画装置、矩形画像描画方法、及び集積回路 - Google Patents

矩形画像描画装置、矩形画像描画方法、及び集積回路 Download PDF

Info

Publication number
JP4919805B2
JP4919805B2 JP2006540950A JP2006540950A JP4919805B2 JP 4919805 B2 JP4919805 B2 JP 4919805B2 JP 2006540950 A JP2006540950 A JP 2006540950A JP 2006540950 A JP2006540950 A JP 2006540950A JP 4919805 B2 JP4919805 B2 JP 4919805B2
Authority
JP
Japan
Prior art keywords
area
rectangular
image
data
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006540950A
Other languages
English (en)
Other versions
JPWO2006041094A1 (ja
Inventor
順彦 若山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2006540950A priority Critical patent/JP4919805B2/ja
Priority claimed from PCT/JP2005/018792 external-priority patent/WO2006041094A1/ja
Publication of JPWO2006041094A1 publication Critical patent/JPWO2006041094A1/ja
Application granted granted Critical
Publication of JP4919805B2 publication Critical patent/JP4919805B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Input (AREA)
  • Image Generation (AREA)

Description

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

Claims (6)

  1. 第1の矩形領域と第2の矩形領域との重複部分を前記第1の矩形領域から除いた画面上の領域、に対応する画像メモリのアドレス領域に背景色の輝度データを書き込み、前記第2の矩形領域に対応する画像メモリ上のアドレス領域に矩形画像の輝度データを書き込む装置であって、
    前記第1の矩形領域から前記第2の矩形領域への横方向の移動量と移動方向とに基づき、前記矩形画像の横方向に付加すべき背景色のピクセル数と付加すべき背景色のピクセル位置とを算出する算出部、及び、
    前記ピクセル数の背景色の輝度データと前記矩形画像の輝度データとを、水平ライン毎に、同時に、若しくは連続して画像メモリに書き込む書き込み部、
    を有する矩形画像描画装置。
  2. 前記第1の矩形領域から前記第2の矩形領域への移動が縦方向の移動を含むとき、
    前記算出部は、縦方向の移動量と移動方向とに基づき、前記矩形画像の縦方向に付加すべき背景色の水平ライン数と付加すべき背景色の水平ライン位置とを算出すること、及び、
    前記書き込み部は、少なくとも、前記第1の矩形領域と前記第2の矩形領域とを合成した領域である第3の領域の左端に対応する画像メモリ上のアドレスから、前記第3の領域の右端に対応する前記画像メモリ上のアドレスまで、前記水平ライン数分の前記背景色の輝度データを、水平ライン毎に、同時に、若しくは連続して画像メモリに書き込むこと、
    を特徴とする、請求項1に記載の矩形画像描画装置。
  3. 前記書き込み部はバースト転送で書き込みを行い、書き込むべきデータが単一のバースト単位に収まるときはその書き込むべきデータを同時に書き込み、書き込むべきデータが複数のバースト単位に跨るときはその書き込むべきデータを連続して書き込むこと、
    を特徴とする、請求項1に記載の矩形画像描画装置。
  4. 書き込み開始アドレス、若しくは書き込み終了アドレスがバースト単位の境界と一致しないとき、前記書き込み部は、前記書き込み開始アドレス、若しくは前記書き込み終了アドレスを含むバースト単位に含まれる書き込み不要アドレスに対し、ライトイネーブル信号をネゲートすること、
    を特徴とする、請求項3に記載の矩形画像描画装置。
  5. 第1の矩形領域と第2の矩形領域との重複部分を前記第1の矩形領域から除いた画面上の領域、に対応する画像メモリのアドレス領域に背景色の輝度データを書き込み、前記第2の矩形領域に対応する画像メモリ上のアドレス領域に矩形画像の輝度データを書き込む装置、を用いて画像メモリに輝度データを書き込む方法であって、
    前記第1の矩形領域から前記第2の矩形領域への横方向の移動量と移動方向とに基づき、前記矩形画像の横方向に付加すべき背景色のピクセル数と付加すべき背景色のピクセル位置とを算出すること、及び、
    前記ピクセル数の背景色の輝度データと前記矩形画像の輝度データとを、水平ライン毎に、同時に、若しくは連続して画像メモリに書き込むこと、
    を特徴とする矩形画像描画方法。
  6. 第1の矩形領域と第2の矩形領域との重複部分を前記第1の矩形領域から除いた画面上の領域、に対応する画像メモリのアドレス領域に背景色の輝度データを書き込み、前記第2の矩形領域に対応する画像メモリ上のアドレス領域に矩形画像の輝度データを書き込む回路、を含む集積回路であって、
    外部の算出回路により、前記第1の矩形領域から前記第2の矩形領域への横方向の移動量と移動方向とに基づいて算出された、前記矩形画像の横方向に付加すべき背景色のピクセル数と付加すべき背景色のピクセル位置とを保持する保持回路、及び、
    前記ピクセル数の背景色の輝度データと前記矩形画像の輝度データとを、水平ライン毎に、同時に、若しくは連続して画像メモリに書き込む書き込み回路、
    を有する集積回路。
JP2006540950A 2004-10-13 2005-10-12 矩形画像描画装置、矩形画像描画方法、及び集積回路 Expired - Fee Related JP4919805B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006540950A JP4919805B2 (ja) 2004-10-13 2005-10-12 矩形画像描画装置、矩形画像描画方法、及び集積回路

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2004298697 2004-10-13
JP2004298697 2004-10-13
PCT/JP2005/018792 WO2006041094A1 (ja) 2004-10-13 2005-10-12 矩形画像描画装置、矩形画像描画方法、及び集積回路
JP2006540950A JP4919805B2 (ja) 2004-10-13 2005-10-12 矩形画像描画装置、矩形画像描画方法、及び集積回路

Publications (2)

Publication Number Publication Date
JPWO2006041094A1 JPWO2006041094A1 (ja) 2008-05-15
JP4919805B2 true JP4919805B2 (ja) 2012-04-18

Family

ID=36148725

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006540950A Expired - Fee Related JP4919805B2 (ja) 2004-10-13 2005-10-12 矩形画像描画装置、矩形画像描画方法、及び集積回路

Country Status (3)

Country Link
US (1) US7830393B2 (ja)
JP (1) JP4919805B2 (ja)
CN (1) CN100452168C (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102129663B (zh) * 2010-12-20 2012-11-21 福州瑞芯微电子有限公司 一种读取地址和宽度不对齐图像处理方法及电路结构
CN102103740B (zh) * 2010-12-20 2013-01-02 福州瑞芯微电子有限公司 一种写入地址和宽度不对齐图像的处理方法和处理电路
US9196014B2 (en) * 2012-10-22 2015-11-24 Industrial Technology Research Institute Buffer clearing apparatus and method for computer graphics
JP6950135B2 (ja) * 2017-11-09 2021-10-13 株式会社TransRecog 付加情報重畳プログラム、付加情報重畳方法、及び付加情報重畳装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62177582A (ja) * 1986-01-31 1987-08-04 株式会社日立製作所 マルチウインドウ表示制御方式
DE69125874T2 (de) * 1990-02-21 1997-11-20 Matsushita Electric Ind Co Ltd Generator für mehrdimensionale Adressen und Anordnung zum Steuern desselben
JP2854420B2 (ja) * 1990-02-21 1999-02-03 松下電器産業株式会社 多次元アドレス発生器およびその制御方式
DE69130549T2 (de) * 1990-06-11 1999-05-27 Hitachi Ltd Vorrichtung zur Erzeugung eines Objektbewegungsweges
US5644758A (en) * 1994-12-13 1997-07-01 Microsoft Corporation Bitmap block transfer image conversion
JPH09304749A (ja) * 1996-05-10 1997-11-28 Matsushita Electric Ind Co Ltd 投写型画像表示装置
US6483521B1 (en) * 1998-02-02 2002-11-19 Matsushita Electric Industrial Co., Ltd. Image composition method, image composition apparatus, and data recording media
JP3846142B2 (ja) * 2000-01-26 2006-11-15 ヤマハ株式会社 画像データ転送装置及び画像表示処理システム
JP3737943B2 (ja) * 2000-11-06 2006-01-25 京セラミタ株式会社 画像処理装置
JP2003058122A (ja) * 2001-08-10 2003-02-28 Nintendo Co Ltd 反射型液晶表示装置の明るさ調整装置およびゲーム機のプログラム

Also Published As

Publication number Publication date
WO2006041094A2 (ja) 2006-04-20
CN101040317A (zh) 2007-09-19
US7830393B2 (en) 2010-11-09
CN100452168C (zh) 2009-01-14
JPWO2006041094A1 (ja) 2008-05-15
US20080074434A1 (en) 2008-03-27
WO2006041094A3 (ja) 2006-05-26

Similar Documents

Publication Publication Date Title
TWI455012B (zh) 顯示器分割畫面顯示方法及應用該方法之電子裝置
JP2005114773A (ja) コントローラドライバ,表示装置,及びそれらの動作方法
JP6653522B2 (ja) 表示装置、表示パネルドライバ、表示パネルの駆動方法
JP2007271908A (ja) マルチ画像生成装置
JP4971442B2 (ja) ピクセルデータ変換のための画像処理装置及び方法
JP4919805B2 (ja) 矩形画像描画装置、矩形画像描画方法、及び集積回路
CN113672183B (zh) 图像处理装置与图像处理方法
JP4487959B2 (ja) 画像処理装置および画像処理方法、並びにプログラム
KR100770622B1 (ko) 중첩 표시 가능한 디스플레이 컨트롤러
JP3568555B2 (ja) ディスプレイ装置
JP4699036B2 (ja) グラフィクスハードウェア
US6992673B2 (en) Memory access device, semiconductor device, memory access method, computer program and recording medium
US7382376B2 (en) System and method for effectively utilizing a memory device in a compressed domain
CN105427235A (zh) 一种图像浏览方法及系统
JP3260913B2 (ja) 画像再生装置
JP4746912B2 (ja) 画像信号処理回路および画像表示装置
JP2007286082A (ja) 描画処理装置
JP2006121343A5 (ja)
KR101367246B1 (ko) 가상 머신에서의 다중 프레임버퍼 에뮬레이션 시스템 및 방법
KR101719273B1 (ko) 디스플레이 컨트롤러 및 이를 포함하는 디스플레이 장치
EP1784783A1 (en) Method of address-controlling memory with single buffer structure
KR100308586B1 (ko) 영상재생장치
US20060268014A1 (en) System and method for efficiently supporting image deformation procedures in an electronic device
JPH0830254A (ja) 表示効果発生回路
JPH10222695A (ja) 描画装置および描画方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110823

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111014

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120110

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120131

R150 Certificate of patent or registration of utility model

Ref document number: 4919805

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150210

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees