(57)【特許請求の範囲】
【請求項１】
描画処理リストに基づいてビットマップ形式の画像データを発生し、その画像データをメモリに描画する描画装置であって、メモリ上にすでに描画されたディスティネーション画像を読み込み、前記読み込んだディスティネーション画像と前記発生した画像データを論理演算し、論理演算した画像データを前記メモリに書き込むことにより描画を行う描画装置において、前記メモリとして複数のバンクを持つものを用い、描画ラインの奇数ラインと偶数ラインを異なるメモリバンクにマッピングするマッピング手段と、データの論理演算と並行して前の論理演算されたデータの書き込みと次のディスティネーションデータの読み出しを行うように制御する制御手段を設けたことを特徴とする描画装置。
【請求項２】
前記制御手段は、読み出された奇数ラインの所定量のデータの論理演算と並行して奇数ラインの所定量の前の論理演算されたデータの書き込みと偶数ラインの所定量の次のディスティネーションデータの読み出しを行なうように制御することを特徴とする請求項１記載の描画装置。
【請求項３】
前記制御手段は、読み出された奇数ラインの所定量のデータの論理演算と並行して偶数ラインの所定量の前の論理演算されたデータの書き込みと奇数ラインの所定量の次のディスティネーションデータの読み出しを行なうように制御することを特徴とする請求項１乃至２いずれかに記載の描画装置。
【請求項４】
前記制御手段は、読み出された偶数ラインの所定量のデータの論理演算と並行して偶数ラインの所定量の前の論理演算されたデータの書き込みと奇数ラインの所定量の次のディスティネーションデータの読み出しを行なうように制御することを特徴とする請求項１乃至３いずれかに記載の描画装置。
【請求項５】
前記制御手段は、読み出された偶数ラインの所定量のデータの論理演算と並行して奇数ラインの所定量の前の論理演算されたデータの書き込みと偶数ラインの所定量の次のディスティネーションデータの読み出しを行なうように制御することを特徴とする請求項１乃至４いずれかに記載の描画装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、ページプリンタのような、ビットマップデータを用いて画像を表示する装置内に用いられる、ビットマップ画像の描画を行う描画装置に関するものである。
【０００２】
【従来の技術】
従来、この種の描画装置においてはメモリのバンクを用いて画像メモリのマッピングをする場合、単にアクセス単位でローアドレスのヒットとミスヒットを判断していた。また、ディスティネーションの先読みをする装置においては、単に連続アドレスの次のアドレスを読み込んでいた。
【０００３】
【発明が解決しようとする課題】
しかしながら、上記従来例のメモリバンクを制御するシステムにおいては、文字等の幅のワード数が少ないデータを描画する場合、改行が頻発しローアドレスのミスヒットが多発するため、処理速度がかえって低下するという欠点があった。
【０００４】
また、ディスティネーションデータを先読みするシステムにおいては、前記と同様に文字等の幅のワード数が少ないデータを描画する場合に、先読みしたデータを改行のために使用できず、新たに次のラインのディスティネーションデータを読み直すという処理を繰り返し、描画速度が著しく低下するという欠点があった。
【０００５】
したがって、本発明の目的は、頻発するローアドレスのミスヒットの頻度を飛躍的に改善し高速に描画動作を実行できる描画装置を提供することにある。
【０００６】
【課題を解決するための手段】
本発明においては、描画するメモリのバンクを奇数ラインと偶数ラインで交互にマッピングするマッピング手段と、データの論理演算と並行して前の論理演算されたデータの書き込みと次のディスティネーションの読み出しを行うように制御する制御手段を設け、改行時に次のラインを先読みするように制御し、これによって、バンクが必ず異なりデータライト時のローアドレスのミスヒットが起こらないようにしたものである。
【０００７】
【実施例】
（実施例１）
図１〜図６は本発明を実施した描画装置を説明する図であり、そのうち、図１は構成図である。図１において、１０１は本発明を実施した描画装置、１０２はアドレス発生器、１０３はＤＭＡコントローラ、１０４はビットマップメモリ、１０５はシーケンスコントローラ、１０６は画像発生器、１０７は論理演算回路、１０８〜１１０はセレクタ、１１１〜１１３はそれぞれバッファ１、バッファ２、バッファ３、１１４、１１５はセレクタである。
【０００８】
図２は本実施例の描画動作を説明する図である。図２において、２０１は画像発生器１０６が発生するビットマップ画像、２０２は描画するビットマップメモリ上にすでに描画されているディスティネーション画像データ、２０３はビットマップメモリ１０４上の描画先頭アドレス、２０４はビットマップ画像２０１とディスティネーション画像２０２を論理演算した画像データである。
【０００９】
図３は本実施例の描画データのメモリアドレスを示す図であり、３０１は描画画像データ、３０２は描画アドレスである。３０３はアドレス内のビットマップデータである。
【００１０】
本発明を実施した描画装置は、図１、図２に示す画像発生器１０６が発生した例えばＡという文字（図２で２０１で示す）を矩形領域としてビットマップメモリ１０４上の描画先頭アドレスＳ（２０３で示す）に描画を行う。この時、描画する対象領域にすでに描画されたデータ（例えば、図２中の文字Ｂ）がある場合は、そのデータ（即ち、ディスティネーションデータ）を指定された論理で論理演算し、合成画像（２０４で示す）を形成し、ビットマップメモリ上に書き込むことにより描画バンドあるいは描画ページの画像を形成する。この描画動作を実現するため本描画装置は図１の構成をとっている。
【００１１】
図１において、画像発生器１０６はデータバスから描画する座標位置や、論理演算の種類、描画するライン高さや、文字フォントやイメージ画像等のオブジェクトデータを指定する番号などで構成された描画処理リストを読み込み、指定されたオブジェクトデータからビットマップ形式の描画画像を発生し、その画像データを出力すると同時に、描画座標位置から描画基準点のライン位置と、水平位置、および実際に描画するオブジェクトデータのカレントラインの左座標、ネクストラインの左座標および描画オブジェクトの幅から処理ラインの描画データの最終データの位置を示すカレントラインの右座標を出力する。また、上記データの転送タイミングはデータイネーブル信号、データリクエスト信号、ラインエンド信号によって行われる。
【００１２】
前記各左座標は、矩形を描画する場合は“０”が出力され、円などの図形の場合は図形の左エッジの座標が出力される。アドレス発生器１０２は画像発生器１０６から、カレントライン左座標信号、カレントラインの右座標信号が入力されると共に内部のレジスタに保持するバンド先頭アドレス、バンド幅データから描画アドレスの発生および描画バンクの選択を行う。
【００１３】
ＤＭＡコントローラ１０３はアドレス発生器１０２からアドレス情報とバンク情報を受け取り、ビットマップメモリ１０４のアドレス線、バンク切換信号（バンク選択信号）線およびメモリ制御線をドライブし、メモリサイクルを発生する。発生されたメモリサイクルによって読み出されたディスティネーションデータはセレクタ１０８〜１１０によってバッファ１１１〜１１３の内のどれかに保持される。バッファに保持されたディスティネーションデータはセレクタ１１５で選択され論理演算回路１０７に入力される。
【００１４】
一方、論理演算回路１０７には、画像発生装置１０６から画像データが入力され、入力された画像データとデスティネーションデータの論理演算を行い、セレクタ１０８〜１１０によって選択されバッファ１１１〜１１３のどれかに描画データとして保持される。保持された描画データはセレクタ１１４によって選択され、ビットマップメモリ１０４上に書き込まれる。以上のようにして本実施例における描画は行われる。
【００１５】
ここで、バッファ１〜バッファ３（１１１〜１１３）は１つが書き込みデータの出力および読み出しデータの入力用、１つが保持された読み出しデータの論理演算回路への出力用、さらに１つが論理演算回路からのデータ入力用として用いられる。例えば、バッファ１に保持されたディスティネーションデータから論理演算回路を通してバッファ２に描画データを保持する。データ処理を行っているのと並行して、バッファ３にすでに保持されている前データをビットマップメモリに書き込み、書き込みが終了するとビットマップデータから次のデータを読み出し次の処理に備えて新しいディスティネーションデータを保持する。
【００１６】
これらが終了すると、セレクタ１０８〜１１０および１１４〜１１５を切換え、バッファ３に保持されたディスティネーションデータから論理演算回路１０７を通してバッファ１に描画データを保持する。データ処理を行っているのと並行して、バッファ２に先に保持されたデータをビットマップメモリに書き込み、書き込みが終了すると、ビットマップデータから次のデータを読み出し、新しいディスティネーションデータを保持する。
【００１７】
このように、次々に循環的にバッファを使用して、描画データの発生とメモリへの入出力を並行して行う。これら一連の各構成ブロックの制御をシーケンスコントローラ１０５が行う。シーケンスコントローラ１０５は前記処理をシーケンスに行うように動作し、アドレス発生器１０２に対しては実行中のシーケンス番号とイネーブル信号を出力し、書き込みや読み出し等のどのアドレスを発生するか制御する。
【００１８】
また、アドレス発生器１０２は入力されたライン右座標と出力したアクセスアドレスの数から改行位置を認識し改行信号を出力する。アドレス発生器１０２で改行が行われるネクストライン左座標から次ラインの読み出しアドレスを発生し、改行後のディスティネーションアドレスを出力する。ＤＭＡコントローラ１０３に対して、シーケンスコントローラ１０５はＲＤＲＱ信号により読み出しＤＭＡアクセスと、ＷＤＲＱ信号によって書き込みＤＭＡアクセスを要求し、ＤＭＡコントローラはアドレス発生器１０２によって発生されたアドレスに従ってメモリサイクルを起動する。
【００１９】
メモリサイクルの所定のタイミングで読み出し要求にはＲＤＡＣＫ信号を、書き込み要求に対してはＷＤＡＣＫ信号をシーケンスコントローラ１０５に出力する。シーケンスコントローラ１０５は現在のシーケンスの状態に従ってセレクタ１０８〜１１０およびセレクタ１１４〜１１５を切換え、各バッファ１１１〜１１３へＲＤ信号あるいはＷＲ信号を出力し前記描画処理を実現する。
【００２０】
図３は描画データとビットマップメモリのメモリセルとの対応を示す図である。図３において、３０１は論理演算された描画データであり、３０２はそれが書き込まれるメモリアドレスを示している。３０２内のアドレスＳは図２の描画先頭アドレスＳに相当する。ビットマップメモリ１０４は、バートアクセスが可能であり、かつ内部に複数のバンクを有するシンクロナスＤＲＡＭのようなメモリを使用し、図３のようにビットマップメモリのバンクをバンク０、バンク１、バンク０、バンク１・・・のようにライン毎に交互にマッピングする。
【００２１】
図３の例では、ビットマップメモリは８ワードを１度にバーストアクセスできるものとし、各ラインの描画はアドレスＳ〜アドレスＳ＋１Ｃｈの８ワードサイクルと、アドレスＳ＋２０ｈの１ワードアクセスの２回のメモリサイクルに分割して行われる。３０３は各ワード内のデータが黒ドットと白ドットにメモリデータのビットの論理“１”、“０”が対応するビットマップデータであることを示している。
【００２２】
図４は以上説明した描画動作を行う際のメモリアクセスと論理演算の実行を表現した図で、図中白抜きの領域がメモリバンク０に関する処理、グレーで塗られた領域がメモリバンク１に関する処理である。時刻ｔｓｓで描画動作が始まり、描画アドレス、バンク０のアドレスＳのディスティネーションデータの８ワードが第１のバッファに読み込まれる。
【００２３】
時刻ｔ００〜ｔ０２では、第１バッファのデータが順次論理演算され、第２のバッファに書き込まれる。時刻ｔ０１〜ｔ０２では、次の描画アドレス、バンク０アドレスＳ＋２０のディスティネーションデータが第３のバッファに読み込まれる。時刻ｔ０２〜ｔ０３では第２のバッファの論理演算済みのデータがバンク０アドレスＳに書き込まれ、時刻ｔ０３〜ｔ０４では第２のバッファに次のラインのデータ、バンク１のアドレスＳのディスティネーションデータが読み込まれる。同時に時刻ｔ０２〜ｔ０４では第３のバッファにすでに読み込まれた描画アドレス、バンク０、アドレスＳ＋２０の１ワードのデータが入力画像データと論理演算され、第１のバッファに書き込まれる。
【００２４】
以降同様に各バッファが役割を循環しながら、データの入出力と論理演算が並行して行われ、画像の描画動作が効率的に行われる。図４の下の図は各メモリバンク毎のメモリアクセスをまとめた図であり、各バンク共改行時に一回だけしかローアドレスのミスヒットが起こらず、高速にメモリアクセスが実行されることがわかる。以上説明したように本発明によれば、メモリデータの入出力と論理演算を並行して行うことにより高速に描画動作が実行でき、この場合特に頻発するローアドレスのミスヒットを２つのバンクをライン毎に交互にマッピングすることによって飛躍的に改善し、更なる高速描画を実現するものである。
【００２５】
（実施例２）
図５は本発明を４バンクを持つメモリに応用した例である。４バンクを４ライン毎に交互にマッピングしてももちろんよいが、これは実施例１から容易に推測できるので実施例２では１ラインに２つのバンクをメモリアクセス単位に交互にマッピングし、これを１ライン毎に交互にマッピングした例を説明する。
【００２６】
図５はこのマッピング方法により図２のデータの描画動作のメモリアクセスと論理演算を説明している。図４の場合では１ラインのデータを２つのバンクを交互にアクセスし、さらにライン毎に交互にこのバンクセットをアクセスする。本例の場合各バンクが、図４下のようにアドレスＳ、Ｓ＋Ｗ、Ｓ＋２Ｗ・・・と順次アクセスされる。従って、実施例１のようにアドレスの戻りすなわち、Ｓ、Ｓ＋２０、Ｓ、Ｓ＋２０が起こらないので、例えば、アドレスＳとＳ＋２０の間にローアドスの境界があった場合のローミスを防ぐことができる。
【００２７】
本実施例では、１ラインに２つのバンクが存在するので、改行の多い小さな描画を実施する場合はローミスの頻度が上がり不利であるが、幅の広いデータを描画する場合は前記アドレスの戻りがないので大変有利である。
【００２８】
（実施例３）
図６は本発明の実施例３の構成図である。図６において、６０６は画像発生器であり、６０７は論理演算回路である。その他構成は実施例１と同様である。本実施例においては、画像発生器６０６はクリッピングする領域を指定するマスク画像、張り付けるパターンであるバックグランド画像、塗る色や濃度を表現するグレー画像を出力し、論理演算回路６０７はこれらの発生された画像とディスティネーションデータの複雑な論理演算を行う。他の処理は実施例１と同様である。
【００２９】
このように、本発明は、入力される画像の種類や数を限定するものではなく、さらに描画画像の１ピクセルを構成するビットマップメモリのビット数を限定するものではない。
【００３０】
【発明の効果】
以上説明したように、本発明によれば、メモリデータの入出力と論理演算を並行して行うことと、ビットマップメモリの２つのバンクをライン毎に交互にマッピングすることによって、頻発するローアドレスのミスヒットを頻度の飛躍的に改善し高速に描画動作が実行できる。
【図面の簡単な説明】
【図１】図１は、実施例１の構成図である。
【図２】図２は、描画動作を説明する図である。
【図３】図３は、ビットマップメモリの構成を表す図である。
【図４】図４は、矩形描画のメモリサイクルを表す図である。
【図５】図５は、実施例２の矩形描画のメモリサイクルを表す図である。
【図６】図６は、実施例３の構成図である。
【符号の説明】
１０１      描画装置
１０２      アドレス発生器
１０３      ＤＭＡコントローラ
１０４      ビットマップメモリ
１０５      シーケンスコントローラ
１０６      画像発生器
１０７      論理演算回路
１０８〜１１０    セレクタ
１１１〜１１３    バッファ
１１４〜１１５    セレクタ
【図１】
0003762185.tif 000002
【図２】
0003762185.tif 000003
【図３】
0003762185.tif 000004
【図４】
0003762185.tif 000005
【図５】
0003762185.tif 000006
【図６】
0003762185.tif 000007