(57)【要約】【課題】  高速に画像の拡大処理を行う画像描画装置を提供する。【解決手段】  制御部４１は書込み信号を出力する。比較器４６は行データの書込みが終了する毎に行終了信号を出力する。Ｘインクリメント回路４２は書込み信号入力毎に順次１／Ｋ増加するＸアドレスを生成し、その整数部分Ｘ１を出力する。Ｙインクリメント回路４５は行終了信号入力毎に順次１／Ｋ増加するＹアドレスを生成し、その整数部分Ｙ１を出力する。Ｘインクリメント回路４３は、書込み信号を受ける毎に順次１増加する第２のＸアドレスを生成して出力する。Ｙインクリメント回路４４は行終了信号を受ける毎に順次１増加する第２のＹアドレスを生成して出力する。Ｘ１と、Ｙ１とのアドレスのデータがバッファＡから読み出され、第２のＸアドレスおよび第２のＹアドレスによって原画像データがフレームバッファ１９に描画される。【選択図】  図１
2005128689.tif 000002
【特許請求の範囲】
【請求項１】
第１の記憶手段内の原画像データをＫ倍（Ｋは正の実数）に拡大／縮小して第２の記憶手段内に書き込む画像描画装置において、
書き込み信号を出力する第１の信号出力手段と、
行データの書き込みが終了する毎に行終了信号を出力する第２の信号出力手段と、
前記書き込み信号を受ける毎に順次１／Ｋづつ増加するＸアドレスを生成し、その整数部分を第１のＸアドレスとして出力する第１のＸアドレス生成手段と、
前記行終了信号を受ける毎に順次１／Ｋづつ増加するＹアドレスを生成し、その整数部分を第１のＹアドレスとして出力する第１のＹアドレス生成手段と、
前記書き込み信号を受ける毎に順次１づつ増加する第２のＸアドレスを生成して出力する第２のＸアドレス生成手段と、
前記行終了信号を受ける毎に順次１づつ増加する第２のＹアドレスを生成して出力する第２のＹアドレス生成手段と、
を具備し、前記第１のＸアドレスおよび前記第１のＹアドレスによって原画像データを前記第１の記憶手段から読み出し、前記第２のＸアドレスおよび前記第２のＹアドレスによって前記原画像データを前記第２の記憶手段に描画することを特徴とする画像描画装置。
【請求項２】
前記第２のＸアドレス生成手段は、前記書き込み信号をアップカウントするカウント手段と、前記カウント手段の出力に画像表示位置のＸ座標を加算する第１の加算回路とから構成され、前記第２のＹアドレス生成手段は、前記行終了信号をアップカウントするカウント手段と、前記カウント手段の出力に画像表示位置のＹ座標を加算する第２の加算回路とから構成されることを特徴とする請求項１に記載の画像描画装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はゲーム機などに用いる画像描画装置に関する。
【背景技術】
【０００２】
ゲーム機等の表示処理においては、キャラクタ（スプライト）の拡大、縮小処理がしばしば行われる。従来、原スプライトを拡大してフレームバッファに描画する場合、図６に示すように、原スプライトを構成する各ピクセルのカラーデータを、フレームバッファの拡大後の記憶位置へ転送し、次いで、書き込んだ各カラーデータの間を塗りつぶす処理を行っていた。しかしながら、このような拡大処理は、処理に時間がかかる問題があった。
なお、本発明に対応する従来技術文献は見つかっていない。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明は上記の事情を考慮してなされたもので、その目的は高速に画像の拡大処理を行うことのできる画像描画装置を提供することにある。
【課題を解決するための手段】
【０００４】
この発明は前述の課題を解決するためになされたもので請求項１の発明は、第１の記憶手段内の原画像データをＫ倍（Ｋは正の実数）に拡大／縮小して第２の記憶手段内に書き込む画像描画装置において、書き込み信号を出力する第１の信号出力手段と、行データの書き込みが終了する毎に行終了信号を出力する第２の信号出力手段と、前記書き込み信号を受ける毎に順次１／Ｋづつ増加するＸアドレスを生成し、その整数部分を第１のＸアドレスとして出力する第１のＸアドレス生成手段と、前記行終了信号を受ける毎に順次１／Ｋづつ増加するＹアドレスを生成し、その整数部分を第１のＹアドレスとして出力する第１のＹアドレス生成手段と、前記書き込み信号を受ける毎に順次１づつ増加する第２のＸアドレスを生成して出力する第２のＸアドレス生成手段と、前記行終了信号を受ける毎に順次１づつ増加する第２のＹアドレスを生成して出力する第２のＹアドレス生成手段と、を具備し、前記第１のＸアドレスおよび前記第１のＹアドレスによって原画像データを前記第１の記憶手段から読み出し、前記第２のＸアドレスおよび前記第２のＹアドレスによって前記原画像データを前記第２の記憶手段に描画することを特徴とするものである。
【０００５】
請求項２に記載の発明は請求項１に記載の画像描画装置において、前記第２のＸアドレス生成手段は、前記書き込み信号をアップカウントするカウント手段と、前記カウント手段の出力に画像表示位置のＸ座標を加算する第１の加算回路とから構成され、前記第２のＹアドレス生成手段は、前記行終了信号をアップカウントするカウント手段と、前記カウント手段の出力に画像表示位置のＹ座標を加算する第２の加算回路とから構成されることを特徴とするものである。
【発明の効果】
【０００６】
この発明によれば、拡大処理の処理時間を短縮できる効果がある。
【発明を実施するための最良の形態】
【０００７】
以下、図面を参照し本発明の実施形態について説明する。
本実施形態は、図２に示すように、原画像Ａと、Ｋ倍に拡大された画像Ｂとを、原画像側および拡大画像側のラスタライザーにより比例してアドレスをインクリメントし、拡大画像を得る。ここで、拡大画像側がインクリメントされると、原画像側はそれに同期して１／Ｋづつインクリメントされる。その結果、もし、原画像側のアドレスの整数部分が同じであれば、拡大側のピクセルも原画像と同じ色と判断される。これを繰り返し、原画像側のアドレスが１を越えた時点で原画像の色が変化し、したがって、拡大側の色も変化する。縮小の場合は、原画像側の画像データが飛ばし読みされることになり、インクリメントのたびに色が変化することになる。
【０００８】
図３は本実施形態による画像描画装置の構成を示すブロック図である。図３において、符号１１はスプライトの圧縮画像データが格納されているキャラクタＲＯＭ(Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ)である。符号１２はキャラクタＲＯＭ１１から読み出されたスプライトの圧縮画像データが一時記憶されるＦＩＦＯ（ファーストイン・ファーストアウト）メモリである。
【０００９】
符号１３は解凍エンジンであり、キャラクタＲＯＭ１１からＦＩＦＯメモリ１２を介して与えられる圧縮画像データを解凍して圧縮前の画像データ（カラーコードまたはＹＵＶ形式の画素値）に戻す。次いで、画像データがカラーコードである場合には、そのカラーコードをカラーパレット１４によってＲＧＢ（レッド・グリーン・ブルー）カラーデータに変換し、フリップフロップ１５を介して２面あるスプライトバッファＡまたはＢに書き込む。また、解凍後の画像データがＹＵＶ（輝度・色差）形式の画素値の場合は、ＹＵＶデコーダ１６によってＲＧＢカラーデータに変換し、フリップフロップ１５を介してスプライトバッファＡまたはＢに書き込む。この場合、スプライトバッファＡ、Ｂのいずれに書き込むかを指示するコントロールデータが解凍エンジン１３から出力される。
【００１０】
１８は描画エンジンであり、コントローラ１７からの指示に従ってスプライトバッファＡまたはＢからスプライトのＲＧＢカラーデータを読み出し、読み出したＲＧＢカラーデータにコントローラ１７から出力される指示データに基づき、回転、拡大縮小等の変形処理を行い、次いで、コントローラ１７から出力される位置データが示すフレームバッファ１９のアドレスに、変形処理終了後のＲＧＢカラーデータを書き込む。フレームバッファ１９は２個のバンクによって構成され、交互に描画用バッファ、表示用バッファとして使用される。
【００１１】
コントローラ１７は、ＣＰＵ(図示略)から出力され、ＣＰＵインターフェイスブロック２０を介して供給される各種の指示（スプライト属性データ）をＳＲＡＭインターフェイスブロック２１を介してスプライト属性テーブル２２に書き込むと共に、その書き込まれたスプライト属性データに基づいて解凍エンジン１３および描画エンジン１８を制御する。また、コントローラ１７は、フレームバッファ１９からＲＧＢカラーデータを読み出し、ディスプレイインターフェイスブロック２３を介してディスプレイ装置（図示略）へ出力する。
【００１２】
次に、上述した実施形態の動作を図４に示すフローチャートを参照して説明する。図４のフローチャートでは、Ｎ個のスプライトをフレームバッファ１９に描画する例を示している。図３のコントローラ１７はステップＳＡ１においてフレームバッファ１９の２つのバンクの一方を描画用、他方を表示用に設定する。次にコントローラ１７はステップＳＡ２〜ステップＳＡ６で図５のスプライト属性テーブル２３中に示されるすべてのスプライトに対して、先頭から順次処理を行う。
【００１３】
すなわち、コントローラ１７は、まず、内部のレジスタＳＰＮＯ（図示略）にデータ「１」を書き込む（ステップＳＡ２）。次に、スプライト属性テーブル２３にアクセスし、レジスタＳＰＮＯ内のデータ（この場合「１」）に対応する属性データ、すなわち、スプライト１の属性データを取り込む（ステップＳＡ３）。次に、その属性データが示すスプライト１のキャラクタのアドレスに基づいてキャラクタＲＯＭ１１にアクセスし、スプライト１のキャラクタを読み出す（ステップＳＡ４）。読み出されたキャラクタはＦＩＦＯ１２に記憶される。
【００１４】
次に、コントローラ１７は、解凍エンジン１３へ解凍指示を出力し、次いで、描画エンジン１８へスプライト１の属性データを出力して描画を指示する（ステップＳＡ５）。描画エンジン１８は、解凍エンジン１３によって解凍され、スプライトバッファＡ，Ｂに書き込まれたＲＧＢカラーデータに対し、属性データが指示する拡大、縮小、回転等のレンダリング処理を行った後、属性データに含まれる表示位置データに基づいてフレームバッファ１９の描画バンクに書き込む。この書込が終了した時点で、コントローラ１７はレジスタＳＰＮＯ内のデータが「Ｎ」であるか否かをチェックし（ステップＳＡ６）、「Ｎ」でなかった場合は、レジスタＳＰＮＯ内のデータに「１」を加算して（ステップＳＡ７）、ステップＳＡ３の処理へ戻る。
【００１５】
以後、上記と同様の過程によってスプライト２〜スプライトＮの描画処理が行われる。なお、上述した描画処理の概要は従来の描画装置と同様である。
次に、この実施形態独特の処理であって、描画エンジン１８において行われるスプライト拡大あるいは縮小処理について詳述する。
【００１６】
図１はスプライト拡大／縮小処理を行うラスタライザの構成を示すブロック図であり、このラスタライザは描画エンジン１８内に設けられている。なお、このラスタライザをマイクロプロセッサのソフトウエアによって実現してもよいことは勿論である。
【００１７】
図１において、４１は各部を制御する制御部、４２はＸインクリメント回路、４５はＹインクリメント回路である。Ｘインクリメント回路４２は、制御部４１から出力される同期信号Ｓのタイミングで内部のレジスタ内のデータに１／Ｋ（Ｋ：制御部４１から出力される定数）（図５参照）を加算し、加算結果の整数部をレジスタに記憶させると共に、その整数部をスプライトバッファＡ（またはＢ）のアドレス端子へ出力する。また、Ｙインクリメント回路４５は、比較器４６から出力される信号Ｃ１のタイミングで内部のレジスタ内のデータに１／Ｋ（Ｋ：制御部から出力される定数）を加算し、加算結果をレジスタに記憶させると共に、その整数部をスプライトバッファＡ（またはＢ）のアドレス端子へ出力する。
【００１８】
また、Ｘインクリメント回路４３は、カウンタによって構成されており、制御部４１から出力される同期信号Ｓをアップカウントし、そのカウント出力を加算回路４８へ出力する。また、比較器４６の出力信号Ｃ１によってリセットされる。Ｙインクリメント回路４４もカウンタであり、比較器４６の出力信号Ｃ１をアップカウントし、そのカウント出力を加算回路４９へ出力する。また、比較器４７の出力信号Ｃ２によってリセットされる。
比較器４６はＸインクリメント回路４３の出力と、拡大（縮小）後のキャラクタの横方向サイズであるキャラクタサイズａ（図５参照）とを比較し、両者が一致した時、パルス信号をＸインクリメント回路４３のリセット端子およびＹインクリメント回路４４のクロック端子へ出力する。比較器４７はＹインクリメント回路４４の出力と、拡大（縮小）後のキャラクタの縦方向サイズであるキャラクタサイズｂ（図５参照）とを比較し、両者が一致した時、パルス信号をＹインクリメント回路４５、Ｙインクリメント回路４４の各リセット端子および制御部４１へ出力する。
加算回路４８はＸインクリメント回路４３の出力と表示位置のＸ座標（図５参照）とを加算し、加算結果をフレームバッファ１９のアドレス端子へ出力する。加算回路４９はＹインクリメント回路４４の出力と表示位置のＹ座標（図５参照）とを加算し、加算結果をフレームバッファ１９のアドレス端子へ出力する。
【００１９】
次に、上述した回路の動作を説明する。
図１のコントローラ１７から描画指令およびスプライト属性テーブル（図５）が描画エンジン１８へ出力されると、制御部４１（図１）がそれを受け、スプライト属性テーブルの内容を内部のレジスタに一時記憶する。次に、制御部４１は、このスプライト属性テーブルで指定されている倍率Ｋ（以下、Ｋ＝４として説明する）をＸインクリメント回路４２およびＹインクリメント回路４５へ出力し、次に、Ｘインクリメント回路４２、４３、Ｙインクリメント回路４４，４５をリセットし、次いで、加算回路４８、４９へＸ座標およびＹ座標を出力し、また、比較器４６、４９へキャラクタサイズａ、ｂを出力する。
【００２０】
Ｘインクリメント回路４２およびＹインクリメント回路４５がリセットされると、スプライトバッファＡのアドレス端子へ「０，０」が出力され、これにより、スプライトバッファＡのアドレス「０，０」内のカラーデータが読み出され、フレームバッファ１９のデータ入力端へ出力される。また、Ｘインクリメント回路４３、Ｙインクリメント回路４４がリセットされ、また、加算回路４８、４９へＸ座標およびＹ座標が出力されると、フレームバッファ１９のアドレス端子へ「Ｘ、Ｙ］が出力され、これにより、スプライトバッファＡのアドレス「０，０」内のカラーデータがフレームバッファ１９のアドレス「Ｘ、Ｙ」に書き込まれる。
【００２１】
以後、制御部４１は同期信号Ｓを一定間隔で出力する。第１番目の同期信号Ｓが出力されると、Ｘインクリメント回路４２が内部のレジスタ内のデータ「０」に１／Ｋ＝０．２５を加算し、加算結果「０．２５」の整数部「０」を出力する。これにより、スプライトバッファＡのアドレス端子へ「０，０」が出力される。一方、Ｘインクリメント回路４３へ同期信号Ｓが供給されると、Ｘインクリメント回路４３の出力が「１」となり、したがって、フレームバッファ１９のアドレス端子へ「Ｘ＋１，Ｙ」が供給される。これにより、スプライトバッファＡのアドレス「０，０」内のカラーデータがフレームバッファ１９のアドレス「Ｘ＋１、Ｙ」に書き込まれる。すなわち、フレームバッファ１９のアドレス「Ｘ＋１、Ｙ」に、アドレス「Ｘ、Ｙ」と同じカラーデータが書き込まれる。
【００２２】
以後、制御部４１から第２番目、第３番目の同期信号Ｓが順次出力されると、上記と同様にしてフレームバッファ１９のアドレス「Ｘ＋２、Ｙ」、「Ｘ＋３、Ｙ」に、順次アドレス「Ｘ、Ｙ」と同じカラーデータが書き込まれる。次に、制御部４１から第４番目の同期信号Ｓが出力されると、Ｘインクリメント回路４２からデータ「１」が出力され、これにより、スプライトバッファＡのアドレス「１，０」内のカラーデータが読み出され、フレームバッファ１９へ出力される。この時、Ｘインクリメント回路４３からは「４」が出力され、これにより、フレームバッファ１９のアドレス「Ｘ＋４、Ｙ」に、スプライトバッファＡのアドレス「１，０」内のカラーデータが書き込まれる。
【００２３】
以下、同様にして、フレームバッファ１９に順次カラーデータが書き込まれる。そして、Ｘインクリメント回路４３の出力がキャラクタサイズａに達すると、比較器４６からパルス信号Ｃ１が出力され、Ｘインクリメント回路４２、４３のリセット端子およびＹインクリメント回路４４、４５の入力端子へ供給される。これにより、Ｘインクリメント回路４２、４３がリセットされて出力が「０」となる。また、Ｙインクリメント回路４５のレジスタ内のデータが「０．２５」となり、したがって、Ｙインクリメント回路４５の出力が「０」を続ける。また、Ｙインクリメント回路４４の出力が「１」となる。これにより、スプライトバッファＡのアドレス「０、０」内のカラーデータがフレームバッファ１９のアドレス「Ｘ、Ｙ＋１」内に書き込まれる。
【００２４】
以下、同期信号Ｓが出力される毎にフレームバッファ１９の書き込みが行われ、比較器４６から信号Ｃ１が出力される毎にＹインクリメント回路４５内のレジスタのデータが「０．５」、「０．７５」と変化する。そして、Ｙインクリメント回路４５内のレジスタのデータが「１」に達すると、以後、フレームバッファＡのＹアドレスが「１」の行のカラーデータが読み出され、フレームバッファ１９に書き込まれる。そして、Ｙインクリメント回路４４の出力がキャラクタサイズｂに達すると、比較器４７からパルス信号Ｃ２が出力され、制御部４１へ供給される。制御部４１はこのパルス信号Ｃ２を受けて拡大描画終了を検知し、コントローラ１７へ終了通知を出力する。
【００２５】
なお、上記の説明においては、４倍に拡大（Ｋ＝４）する場合を例にとったが、図１の回路は画像を縮小する場合も使用することができる。例えば、１／４に縮小する場合は、Ｋ＝１／４となることから、Ｘインクリメント回路４２、Ｙインクリメント回路４５がそれぞれパルス信号が入力される毎に、内部のレジスタにデータ「１／Ｋ＝４」を加算して出力する。
【００２６】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成はこれらの実施の形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。例えば、本実施の形態ではラスタライザを描画エンジン１８に含むものとしたが、描画エンジン１８から独立した機能としても良い。
【図面の簡単な説明】
【００２７】
【図１】この発明の一実施形態によるラスタライザの構成を示すブロック図である。
【図２】画像の拡大処理を表す図である。
【図３】この発明の一実施形態による画像描画装置の構成を示すブロック図である。
【図４】同実施形態の概略動作を示すフローチャートである。
【図５】同実施形態におけるスプライト属性テーブル２２の構造図である。
【図６】従来の画像拡大処理を説明するための図である。
【符号の説明】
【００２８】
１１…キャラクタＲＯＭ、１２…ＦＩＦＯメモリ、１３…解凍エンジン、１４…スプライトカラーパレット、１５…フリップフロップ、１６…スプライトＹＵＶデコーダ、１７…コントローラ、１８…描画エンジン、１９…フレームバッファ、２０…ＣＰＵインタフェースブロック、２１…ＳＲＡＭインタフェースブロック、２２…スプライト属性テーブル、２３…ディスプレイインタフェースブロック、４１…制御部、４２…Ｘインクリメント回路、４３…Ｘインクリメント回路、４４…Ｙインクリメント回路、４５…Ｙインクリメント回路、４６、４７…比較器、Ａ（Ｂ）…スプライトバッファ、４８、４９…加算回路、Ａ…原画像、Ｂ…Ｋ倍に拡大された画像
【図１】
2005128689.tif 000003
【図２】
2005128689.tif 000004
【図３】
2005128689.tif 000005
【図４】
2005128689.tif 000006
【図５】
2005128689.tif 000007
【図６】
2005128689.tif 000008