(57)【特許請求の範囲】
【請求項１】
ソース画像とビットマップメモリ上のデータとを論理演算をしてビットマップメモリに画像を形成する描画装置であって、
ソース画像を生成する画像生成手段と、
ビットマップメモリからの読み出しと、該メモリへの書き込みのアドレスを生成するアドレス生成手段と、
前記アドレス生成手段が生成したアドレスに従いビットマップメモリから直接にデータを読み出すＤＭＡ読み出し手段と、
前記ビットマップメモリから読込んだデータを保持する入力データ保持手段と、
前記入力データ保持手段が保持するデータと前記画像生成手段が生成したソース画像のデータとに基き論理演算する論理演算手段と、
前記論理演算されたデータを保持する出力データ保持手段と、
前記出力データ保持手段に保持されたデータを、前記アドレス生成手段が生成したアドレスに従いビットマップメモリに書き込むＤＭＡ書き込み手段と、を備え、
前記アドレス生成手段は第１のアドレス、第２のアドレス、第３のアドレスを生成し、
前記第１のアドレスは前記第２のアドレスの前アドレスであり、前記第３のアドレスは前記第２のアドレスの次アドレスであり、
前記ＤＭＡ書き込み手段による前記第１のアドレスが示すデータの前記ビットマップメモリへの書き込みの後に前記ＤＭＡ読み出し手段は前記第３のアドレスが示すデータのビットマップメモリからの読み出しを行い、
前記前記ＤＭＡ書き込み手段による前記第１のアドレスが示すデータの前記ビットマップメモリへの書き込みから前記ＤＭＡ読み出し手段による前記第３のアドレスが示すデータのビットマップメモリへの読み出しの間に、前記論理演算手段は前記第２のアドレスが示すデータの論理演算を並行して処理を行い、
前記第１のアドレスが示すデータは前記第２のアドレスが示すデータの論理演算の前のサイクルにおける前記論理演算手段による論理演算済みのデータであり、
前記第３のアドレスが示すデータは前記第２のアドレスが示すデータの論理演算の次のサイクルにおける前記論理演算手段による論理演算の対象となるデータであることを特徴とする描画装置。
【請求項２】
前記アドレス発生手段は、次のデータ入力処理を行う際に実行されている論理演算処理がカレントラインの最後のデータでないときは連続したアドレスを発生し、カレントラインの最後のデータの時には次ラインのアドレスを発生することを特徴とする請求項１に記載の描画装置。
【請求項３】
入力若しくは出力データ保持のための複数のデータ保持手段を備え、データ処理単位毎に、前記複数のデータ格納手段を入力用、若しくは出力用として切り替えて使用することにより、データ格納手段の空き待ちによる仕掛かりを解消することを特徴とする請求項１または２に記載の描画装置。
【請求項４】
複数のデータ処理単位に対応した複数の入力及び出力用のデータ保持手段を備え、前記複数のデータ処理単位を一括して処理することにより高速な描画処理を可能にすることを特徴とする請求項１または２に記載の描画装置。
【請求項５】
ソース画像とビットマップメモリ上のデータとを論理演算をしてビットマップメモリに画像を形成する描画方法であって、
ソース画像を生成する画像生成工程と、
ビットマップメモリからの読み出しと、該メモリへの書き込みのアドレスを生成するアドレス生成工程と、
前記アドレス生成工程において生成されたアドレスに従いビットマップメモリから直接にデータを読み出すＤＭＡ読み出し工程と、
前記ビットマップメモリから読込んだデータを入力メモリに保持する入力データ保持工程と、
前記入力メモリが保持するデータと前記画像生成工程において生成されたソース画像のデータとに基き論理演算する論理演算工程と、
前記論理演算されたデータを出力メモリに保持する出力データ保持工程と、
前記出力メモリに保持されたデータを、前記アドレス生成工程において生成されたアドレスに従いビットマップメモリに書き込むＤＭＡ書き込み工程と、を備え、
前記アドレス生成工程は第１のアドレス、第２のアドレス、第３のアドレスを生成し、
前記第１のアドレスは前記第２のアドレスの前アドレスであり、前記第３のアドレスは前記第２のアドレスの次アドレスであり、
前記ＤＭＡ書き込み工程における前記第１のアドレスが示すデータの前記ビットマップメモリへの書き込みの後に前記ＤＭＡ読み出し工程では前記第３のアドレスが示すデータのビットマップメモリからの読み出しを行い、
前記前記ＤＭＡ書き込み工程における前記第１のアドレスが示すデータの前記ビットマップメモリへの書き込みから前記ＤＭＡ読み出し工程における前記第３のアドレスが示すデータのビットマップメモリへの読み出しの間に、前記論理演算工程では前記第２のアドレスが示すデータの論理演算を並行して処理を行い、
前記第１のアドレスが示すデータは前記第２のアドレスが示すデータの論理演算の前のサイクルにおける前記論理演算工程での論理演算済みのデータであり、
前記第３のアドレスが示すデータは前記第２のアドレスが示すデータの論理演算の次のサイクルにおける前記論理演算工程での論理演算の対象となるデータであることを特徴とする描画方法。
【請求項６】
前記アドレス発生工程は、次のデータ入力処理を行う際に実行されている論理演算処理がカレントラインの最後のデータでないときは連続したアドレスを発生し、カレントラインの最後のデータの時には次ラインのアドレスを発生することを特徴とする請求項５に記載の描画方法。
【請求項７】
データ保持を行なうための複数のメモリを備え、前記入力若しくは出力データ保持工程は、データ処理単位毎に前記複数のメモリを入力用、若しくは出力用として切り替えて使用することにより、メモリの空き待ちによる仕掛かりを解消することを特徴とする請求項５または６に記載の描画方法。
【請求項８】
複数のデータ処理単位に対応した複数の入力及び出力用のメモリを備え、前記複数のデータ処理単位を一括して処理することにより高速な描画処理を可能にすることを特徴とする請求項５または６に記載の描画方法。
【請求項９】
ソース画像とビットマップメモリ上のデータとを論理演算をしてビットマップメモリに画像を形成する描画プログラムを記憶した記憶媒体であって、該プログラムが、
ソース画像を生成する画像生成工程のコードと、
ビットマップメモリからの読み出しと、該メモリへの書き込みのアドレスを生成するアドレス生成工程のコードと、
前記アドレス生成工程において生成されたアドレスに従いビットマップメモリから直接にデータを読み出すＤＭＡ読み出し工程のコードと、
前記ビットマップメモリから読込んだデータを入力メモリに保持する入力データ保持工程のコードと、
前記入力メモリが保持するデータと前記画像生成工程において生成されたソース画像のデータとに基き論理演算する論理演算工程のコードと、
前記論理演算されたデータを出力メモリに保持する出力データ保持工程のコードと、
前記出力メモリに保持されたデータを、前記アドレス生成工程において生成されたアドレスに従いビットマップメモリに書き込むＤＭＡ書き込み工程のコードと、を備え、
前記アドレス生成工程は第１のアドレス、第２のアドレス、第３のアドレスを生成し、
前記第１のアドレスは前記第２のアドレスの前アドレスであり、前記第３のアドレスは前記第２のアドレスの次アドレスであり、
前記ＤＭＡ書き込み工程における前記第１のアドレスが示すデータの前記ビットマップメモリへの書き込みの後に前記ＤＭＡ読み出し工程では前記第３のアドレスが示すデータのビットマップメモリからの読み出しを行い、
前記前記ＤＭＡ書き込み工程における前記第１のアドレスが示すデータの前記ビットマップメモリへの書き込みから前記ＤＭＡ読み出し工程における前記第３のアドレスが示すデータのビットマップメモリへの読み出しの間に、前記論理演算工程では前記第２のアドレスが示すデータの論理演算を並行して処理を行い、
前記第１のアドレスが示すデータは前記第２のアドレスが示すデータの論理演算の前のサイクルにおける前記論理演算工程での論理演算済みのデータであり、
前記第３のアドレスが示すデータは前記第２のアドレスが示すデータの論理演算の次のサイクルにおける前記論理演算工程での論理演算の対象となるデータであることを特徴とする記憶媒体。
【請求項１０】
前記アドレス発生工程のコードは、次のデータ入力処理を行う際に実行されている論理演算処理がカレントラインの最後のデータでないときは連続したアドレスを発生し、カレントラインの最後のデータの時には次ラインのアドレスを発生することを特徴とする請求項９に記載の記憶媒体。
【請求項１１】
前記ビットマップメモリに形成された画像を出力する出力手段を備えることを特徴とする請求項１に記載の描画装置。
【請求項１２】
前記出力手段はプリンタであることを特徴とする請求項１１に記載の描画装置。
【請求項１３】
前記出力手段はディスプレイユニットであることを特徴とする請求項１１に記載の描画装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ビットマップメモリ上に画像を形成し印刷を行うプリンタ等の描画装置及び描画方法、その描画方法をコンピュータで実行するためのプログラムを記憶した記憶媒体に関するものである。
【０００２】
【従来の技術】
従来、この種の描画装置においては、ビットマップメモリ上のデータを読み込み、読み込んだデータと発生されたソース画像を論理演算し、ビットマップメモリ上の同一アドレスに書き戻すという一連の動作を順番に処理し、終了したら次のデータに対して同様の処理を繰り返す構成になっていた。
【０００３】
【発明が解決しようとする課題】
しかしながら、上記従来例ではビットマップメモリからのデータの読み込み時、あるいはビットマップメモリへのデータの書き込み時には論理演算動作が休止し、論理演算動作実行中はビットマップメモリへのアクセスが休止するため、画像形成効率が悪く、高速に描画できないという欠点があった。
【０００４】
【課題を解決するための手段】
上記課題を解決するべく、本発明にかかる描画装置等は主として以下の構成からなることを特徴する。
【０００５】
すなわち、ソース画像とビットマップメモリ上のデータとを論理演算をしてビットマップメモリに画像を形成する描画装置は、
ソース画像を生成する画像生成手段と、
ビットマップメモリからの読み出しと、該メモリへの書き込みのアドレスを生成するアドレス生成手段と、
前記アドレス生成手段が生成したアドレスに従いビットマップメモリから直接にデータを読み出すＤＭＡ読み出し手段と、
前記ビットマップメモリから読込んだデータを保持する入力データ保持手段と、
前記入力データ保持手段が保持するデータと前記画像生成手段が生成したソース画像のデータとに基き論理演算する論理演算手段と、
前記論理演算されたデータを保持する出力データ保持手段と、
前記出力データ保持手段に保持されたデータを、前記アドレス生成手段が生成したアドレスに従いビットマップメモリに書き込むＤＭＡ書き込み手段と、を備え、
前記アドレス生成手段は第１のアドレス、第２のアドレス、第３のアドレスを生成し、
前記第１のアドレスは前記第２のアドレスの前アドレスであり、前記第３のアドレスは前記第２のアドレスの次アドレスであり、
前記ＤＭＡ書き込み手段による前記第１のアドレスが示すデータの前記ビットマップメモリへの書き込みの後に前記ＤＭＡ読み出し手段は前記第３のアドレスが示すデータのビットマップメモリからの読み出しを行い、
前記前記ＤＭＡ書き込み手段による前記第１のアドレスが示すデータの前記ビットマップメモリへの書き込みから前記ＤＭＡ読み出し手段による前記第３のアドレスが示すデータのビットマップメモリへの読み出しの間に、前記論理演算手段は前記第２のアドレスが示すデータの論理演算を並行して処理を行い、
前記第１のアドレスが示すデータは前記第２のアドレスが示すデータの論理演算の前のサイクルにおける前記論理演算手段による論理演算済みのデータであり、
前記第３のアドレスが示すデータは前記第２のアドレスが示すデータの論理演算の次のサイクルにおける前記論理演算手段による論理演算の対象となるデータであることを特徴とする。
【０００６】
この描画装置において、前記アドレス発生手段は、次のデータ入力処理を行う際に実行されている論理演算処理がカレントラインの最後のデータでないときは連続したアドレスを発生し、カレントラインの最後のデータの時には次ラインのアドレスを発生する。
【０００７】
あるいは、ソース画像とビットマップメモリ上のデータとを論理演算をしてビットマップメモリに画像を形成する描画方法は、
ソース画像を生成する画像生成工程と、
ビットマップメモリからの読み出しと、該メモリへの書き込みのアドレスを生成するアドレス生成工程と、
前記アドレス生成工程において生成されたアドレスに従いビットマップメモリから直接にデータを読み出すＤＭＡ読み出し工程と、
前記ビットマップメモリから読込んだデータを入力メモリに保持する入力データ保持工程と、
前記入力メモリが保持するデータと前記画像生成工程において生成されたソース画像のデータとに基き論理演算する論理演算工程と、
前記論理演算されたデータを出力メモリに保持する出力データ保持工程と、
前記出力メモリに保持されたデータを、前記アドレス生成工程において生成されたアドレスに従いビットマップメモリに書き込むＤＭＡ書き込み工程と、を備え、
前記アドレス生成工程は第１のアドレス、第２のアドレス、第３のアドレスを生成し、
前記第１のアドレスは前記第２のアドレスの前アドレスであり、前記第３のアドレスは前記第２のアドレスの次アドレスであり、
前記ＤＭＡ書き込み工程における前記第１のアドレスが示すデータの前記ビットマップメモリへの書き込みの後に前記ＤＭＡ読み出し工程では前記第３のアドレスが示すデータのビットマップメモリからの読み出しを行い、
前記前記ＤＭＡ書き込み工程における前記第１のアドレスが示すデータの前記ビットマップメモリへの書き込みから前記ＤＭＡ読み出し工程における前記第３のアドレスが示すデータのビットマップメモリへの読み出しの間に、前記論理演算工程では前記第２のアドレスが示すデータの論理演算を並行して処理を行い、
前記第１のアドレスが示すデータは前記第２のアドレスが示すデータの論理演算の前のサイクルにおける前記論理演算工程での論理演算済みのデータであり、
前記第３のアドレスが示すデータは前記第２のアドレスが示すデータの論理演算の次のサイクルにおける前記論理演算工程での論理演算の対象となるデータであることを特徴とする。
【０００８】
この描画方法において、前記アドレス発生工程は、次のデータ入力処理を行う際に実行されている論理演算処理がカレントラインの最後のデータでないときは連続したアドレスを発生し、カレントラインの最後のデータの時には次ラインのアドレスを発生する。
【０００９】
あるいは、ソース画像とビットマップメモリ上のデータとを論理演算をしてビットマップメモリに画像を形成する描画プログラムを記憶した記憶媒体であって、該プログラムが、
ソース画像を生成する画像生成工程のコードと、
ビットマップメモリからの読み出しと、該メモリへの書き込みのアドレスを生成するアドレス生成工程のコードと、
前記アドレス生成工程において生成されたアドレスに従いビットマップメモリから直接にデータを読み出すＤＭＡ読み出し工程のコードと、
前記ビットマップメモリから読込んだデータを入力メモリに保持する入力データ保持工程のコードと、
前記入力メモリが保持するデータと前記画像生成工程において生成されたソース画像のデータとに基き論理演算する論理演算工程のコードと、
前記論理演算されたデータを出力メモリに保持する出力データ保持工程のコードと、
前記出力メモリに保持されたデータを、前記アドレス生成工程において生成されたアドレスに従いビットマップメモリに書き込むＤＭＡ書き込み工程のコードと、を備え、
前記アドレス生成工程は第１のアドレス、第２のアドレス、第３のアドレスを生成し、
前記第１のアドレスは前記第２のアドレスの前アドレスであり、前記第３のアドレスは前記第２のアドレスの次アドレスであり、
前記ＤＭＡ書き込み工程における前記第１のアドレスが示すデータの前記ビットマップメモリへの書き込みの後に前記ＤＭＡ読み出し工程では前記第３のアドレスが示すデータのビットマップメモリからの読み出しを行い、
前記前記ＤＭＡ書き込み工程における前記第１のアドレスが示すデータの前記ビットマップメモリへの書き込みから前記ＤＭＡ読み出し工程における前記第３のアドレスが示すデータのビットマップメモリへの読み出しの間に、前記論理演算工程では前記第２のアドレスが示すデータの論理演算を並行して処理を行い、
前記第１のアドレスが示すデータは前記第２のアドレスが示すデータの論理演算の前のサイクルにおける前記論理演算工程での論理演算済みのデータであり、
前記第３のアドレスが示すデータは前記第２のアドレスが示すデータの論理演算の次のサイクルにおける前記論理演算工程での論理演算の対象となるデータであることを特徴とする。
【００１０】
【発明の実施の形態】
（第１の実施形態）
図１は本発明を実施形態にかかる描画装置の構成を示すブロック図で図１において１０１は本発明の実施形態にかかる描画装置、１０２はアドレス発生器、１０３はＤＭＡコントローラ、１０４は画像発生装置に接続されたビットマップメモリ、１０５はシーケンスコントローラ、１０６は出力データバッファ、１０７は画像発生器、１０８論理演算回路、１０９は入力データバッファである。また、１１０はプリントエンジンであり、ＣＲＴや液晶ディスプレイにも適用することができる。
【００１１】
図２は本発明の実施形態にかかる描画装置の描画処理を説明する図で、２０１は図１の１０７の画像発生器が発生したソース画像、２０２はビットマップメモリから読み出されたすでに以前に描画された画像を含む描画対象領域のデータ、２０３は描画を開始すべきビットマップメモリ上の描画先頭アドレスＳ、２０４は論理演算後の画像データ、２０５はビットマップメモリのバイト幅Ｗである。
【００１２】
図３はビットマップメモリの構成を表す図で矩形領域の描画の場合を例に画像データと描画アドレスの対応を説明している。
【００１３】
図３において、３０１はビットマップメモリ上に描画された矩形画像のイメージで、３０２は前記イメージのビットマップメモリのアドレスを示し、３０３は前記メモリ内の画像の表現方法を示している。
【００１４】
図４は矩形以外の描画の場合の画像データと描画アドレスの対応を説明する図で、４０１はビットマップ上に描画された図形、円のイメージで、４０２は前記円のイメージのビットマップメモリのアドレスを示し、４０３はメモリ内の画像の表現方法を示している。
【００１５】
図５は図１の１０２のアドレス発生器の構成を示す図で、５０１は描画バンドのビットマップメモリ上の先頭アドレスを保持するバンド先頭アドレスレジスタ、５０２は描画バンドの幅のワード数を保持するバンド幅レジスタ、５０３は乗算器、５０４は加算器、５０５はセレクタ、５０６は描画カレントラインの先頭アドレスを保持するライン先頭アドレスレジスタ、５０７は加算器、５０８はセレクタ、５０９は加算器、５１０は描画のカレントアドレスを発生するカレントアドレスカウンタ、５１１はセレクタ、５１２は加算器、５１３は比較器、５１４はデコーダ、５１５，５１６は加算器である。
【００１６】
図６は図１の１０３のＤＭＡコントローラの内部構成をあらわす図で、６０１はＤＭＡチャンネル０のアドレスを保持するチャンネル０アドレスレジスタ、６０２はＤＭＡチャンネル１のアドレスを保持するチャンネル１アドレスレジスタ、６０３，６０４は論理ゲート、６０５はＯＲロジック、６０６は行アドレス、列アドレスを選択し出力するセレクタ、６０７は前記構成をコントロールするシーケンサである。
【００１７】
図７は図３のデータの矩形描画を行う際のビットマップメモリのメモリサイクルと論理演算のタイミングをあらわす図である。図７において上段の箱はメモリサイクルが発生していることを示し、箱の中の文字はそのアクセスアドレスを示し、図３の３０２のアドレスに対応する。
【００１８】
またその上のＲ，Ｗは前記アドレスのアクセスがそれぞれリードアクセスかライトアクセスであることを示す。さらに下段の箱は論理演算が行われるタイミングを示し、箱の中の文字は演算するデータが描画されるアドレスを示す。また最下段の記号はメモリサイクルや論理演算のフェーズが変わるタイミングを示す。
【００１９】
まず最初に図１から図３、および図５から図７を用いて本発明にかかる描画装置の矩形画像における描画動作を説明し、次に図１から図２、図４から図６および図８を用いて矩形以外の画像の描画動作を説明する。
【００２０】
本発明の実施形態にかかる描画装置を用いて画像の描画を行う場合、まず描画対象メモリである図１の１０４のビットマップメモリのアドレスを制御するために、図１のアドレス発生器１０２にデータバスを通じて必要なパラメータを設定する。
【００２１】
図５のバンド先頭アドレスレジスタ５０１はデータバス上にドライブされた描画バンドの先頭アドレスを所定のタイミングで保持する。また、続いてデータバス上にドライブされたバンド幅の値を５０２のバンド幅レジスタに所定のタイミングで保持する。
【００２２】
アドレス発生器１０２へのパラメータの設定は描画バンド単位で描画を行う場合は１バンドの描画を開始する前に１回行えばよい。そして１バンドの描画は通常複数の文字や図形あるいはイメージ画像等の描画単位で構成され、本発明においてはこれら描画単位１つ１つに対して以下に説明する動作を繰り返し行うことにより１バンドの画像形成を実現する。また描画単位毎にバンド内の描画位置、描画単位のソース画像すなわち文字フォントや圧縮された文字フォント、イメージデータや圧縮されたイメージデータ、図形等の輪郭をエンコードしたコードデータ、等の描画オブジェクトデータの属性とその格納位置をリストとして構成したいわゆるデイスプレイリストによって１バンドの描画データが提供される。これらのディスプレイリストとしての描画データは図示しないメモリ上に図示しないＣＰＵ等の処理手段によって形成され所定のタイミングで図１の１０７の画像発生器にデータバスを通じて入力される。
【００２３】
ディスプレイリストのフォーマット、その形成方法および１０７の画像発生器への入力方法等は、あまりにも一般的な手段としてさまざまな場において繰り返し開示されているので本説明では記述を省略する。
【００２４】
図１の画像発生器１０７はデータバスを通じてディスプレイリストを読み込みその内容に従って描画動作を開始する。ディスプレイリストに指定されたオブジェクトデータを次に読み込み画像を発生する。例えば発生する画像のオブジェクトデータが圧縮フォントの場合は、データバスから圧縮されたオブジェクトデータを読み込みビットマップデータに伸張した画像データを出力する。出力される画像データは図２の２０１のような矩形データで、２０３の先頭アドレスＳからの描画される矩形領域のデータと論理演算される。
【００２５】
図１の画像発生器１０７は発生した画像を出力すると同時に、印字ライン位置すなわちディスプレイリストにより指定されるビットマップメモリ上に画像を描画するライン位置の値と水平印字位置すなわち印刷領域の左端からの描画規準点の座標と、カレントライン左座標すなわち処理ラインの画像が開始される位置の描画規準点からの座標、カレントライン右座標すなわち処理ラインの画像が終了する位置の描画規準点からの座標、およびネクストライン左座標すなわち処理ラインの次のラインの画像が開始される位置の描画規準点からの座標を図１の１０２のアドレス発生器に出力する。
【００２６】
描画動作が開始されると図１のシーケンスコントローラ１０５が起動され、最初に図１のアドレス発生器１０２に対してアドレス発生動作を行うシーケンス番号とイネーブル信号を出力する。図１のアドレス発生器１０２はこれをうけて描画ラインの先頭アドレスの算出を行う。図５のバンドアドレスレジスタ５０１には前述したように描画バンドの先頭アドレスが保持されており、またバンド幅レジスタ５０２には描画バンド幅が設定されている。アドレス発生器はバンド幅レジスタ５０２の値と入力されている印字ライン位置の値を乗算器５０３で乗算しバンド先頭アドレスレジスタ５０１の値に加算し描画ラインの先頭アドレスを発生し、ライン先頭アドレスレジスタ５０６に保持する。
【００２７】
次に図１の１０５のシーケンスコントローラは描画先頭アドレスの算出するシーケンス番号とイネーブル信号を出力する。これにより１０２のアドレス発生器は入力されている水平印字位置の座標とカレントライン左座標を図５の５１５の加算器で加算し、この結果と５０６のライン先頭アドレスレジスタの値を５０９の加算器で加算し描画先頭アドレスＳ、図２の２０１を得る。描画する画像が矩形のときはカレントライン左座標、ネクストライン左座標の値は０となるので、描画先頭アドレスＳはライン先頭アドレスレジスタと水平印字位置座標の和となる。カレントライン右座標の値は描画規準点からのライン最終ワードの座標となり矩形の場合この値は一定で図２の例では２０ｈである。またアドレスＳはこの時、図５のカウンタロード信号が出力され５１０の初期値としてカレントアドレスカウンタにロードされる。以上で描画を開始する初期設定が終了し描画装置は実際の描画動作を開始する。図２の描画動作で描画される画像は詳細に表現すると図３、３０１のように構成され、３０２に示すように描画ライン毎に画像の幅だけ並んだメモリセルに対して描画される。
【００２８】
ライン０からラインｎまでワード単位に図２と同様に行われる。すなわち図１のビットマップメモリ１０４からアドレスＳのデータが読み出され、画像発生器１０７から出力される対応する画像データと論理ＯＲされビットマップメモリの同じアドレスに書き込まれる。このワード単位の描画動作をアドレスＳからＳ＋４，Ｓ＋８，…，Ｓ＋２０と連続ワードで繰り返し、ここで改行して次ラインのＳ＋Ｗ，Ｓ＋Ｗ＋４，…のようにラインｎの最後のデータまで行われる。それぞれのワードデータは図３の３０３で示すように画像の対応する位置の黒ドット、白ドットをデータ１、０のビットで構成し画像を表現している。
【００２９】
本発明においては上記描画動作を図１の画像発生器１０７が出力する画像データと、あらかじめ入力データバッファ１０９中にビットマップメモリから読込まれた対応するデータとを論理演算回路１０８で論理演算して出力データバッファ１０６へ書き込む論理演算工程と、入力データバッファ１０９にビットマップメモリ１０４から次に論理演算するデータの読込みあるいは出力データバッファ１０６からビットマップメモリ１０４への書き込むメモリアクセス工程を同時行うことを特徴とする。
【００３０】
図７は前記２つの工程を時系列に表現したものでメモリサイクルの行がメモリアクセス工程であり、論理演算の列が論理演算工程である。先に説明したように初期設定が終わった段階で図５のカレントアドレスカウンタ５１０には描画先頭アドレスＳがロードされている。この状態が図７でいう時刻ｔｓｓである。またカレントアドレスカウンタの値はアドレス情報として図１のＤＭＡコントローラ１０３に出力される。この状態でアドレス発生器１０２はＤＭＡコントローラ１０３に対してアドレスセット信号ＡＳＥＴ０を出力し、図６のチャンネル０アドレスレジスタ６０１に描画先頭アドレスＳが保持される。続いて１０５のシーケンスコントローラは１０３のＤＭＡコントローラにＲＤＲＱ０信号を出力してメモリリードサイクルを起動する。
【００３１】
図６のＤＭＡコントローラはＲＤＲＱ０が入力されるとチャンネル０選択信号を出力し、６０３のゲートをオンし６０５のＯＲを通して６０６のセレクタへ出力される６０７のシーケンサはアドレス切り替え信号を所定のタイミングで切り替えアドレス線に行アドレスと列アドレスをドライブするとともに制御線によってメモリリードサイクルを発生する。
【００３２】
またこの時所定のタイミングでＷＲ信号をデータ入力バッファ１０９に出力する。図１のビットマップメモリ１０４は前記アドレス線と制御線のデータによってメモリデータをデータ線にドライブし前記ＷＲ信号によって１０９の入力データバッファに書き込む。上記アドレスＳのメモリサイクルが終了した時が時刻ｔ００である。時刻ｔ００では、図５の加算器５１２によってライン先頭アドレスレジスタ５０６の値と入力されているカレントライン右座標が加算されカレントラインの描画の最終アドレスが算出されておりこの値とカレントアドレスカウンタ５１０の値が比較器５１３で比較され一致していれば改行信号を出力する。改行信号が出力されていないときは図１のシーケンスコントローラ１０５はアドレスインクリメントのシーケンス番号とイネーブル信号を出力する。
【００３３】
この時、図５のデコーダ５１４はカウントイネーブル信号をカレントアドレスカウンタ５１０へ出力しカレントアドレスカウンタが次のメモリアドレスにインクリメントされる。更新されたアドレス情報は図１のＤＭＡコントローラ１０３に出力されると、デコーダ５１４はＡＳＥＴ１信号をＤＭＡコントローラ１０３に出力し図６のチャンネル１アドレスレジスタ６０２に保持される。
【００３４】
その後、図１のシーケンスコントローラ１０５はＤＭＡコントローラ１０３に対してＲＤＲＱ１信号を出力しチャンネル１のメモリリードサイクルを発生する。詳細は上記チャンネル０のリードサイクルと同様である。この動作によってアドレスＳ＋４のデータが１０４のビットマップメモリから読み出され入力データバッファ１０９にＷＲ信号によって書き込まれる。この読み出し動作が終了した時点で図５の改行信号が出力されていなければ、５１０のカレントアドレスカウンタがカウントアップして、Ｓ＋４からＳ＋８に変化する。以降カレントアドレスカウンタの値Ｓ＋８とライン終了アドレスすなわち５１２の加算器で加算された５０６のライン先頭アドレスレジスタの値とカレントライン右座標の値の加算値が５１３の比較器で比較され一致していれば改行信号を出力する。この例ではそれぞれＳ＋８，Ｓ＋２０であるので改行信号は出力されない。
【００３５】
同時にｔ００タイミングで以前に図１の１０９に保持されているアドレスＳのデータと１０７の画像発生器の出力する画像データが論理演算回路１０８で演算され出力データバッファ１０６に対して出力される。画像発生器はシーケンスコントローラ１０５に画像の出力の準備ができたタイミングでデータイネーブル信号を出力しシーケンスコントローラは論理演算を行うことができるタイミング、すなわちこの場合はｔ００のときデータリクエストを画像発生器に出力する。これら２つの信号が共に発生しているときが出力データバッファ１０６に書き込むタイミングで、この時シーケンスコントローラ１０５は出力データバッファ１０６にＷＲ信号を出力し、論理演算されたアドレスＳのデータを書き込む。この書き込みとアドレスＳ＋４の読み出し動作が共に終了した時点がタイミングｔ０２である。
【００３６】
ｔ０２の時点では図１の１０９の入力データバッファには論理演算されたアドレスＳのデータが、また出力データバッファ１０６にはビットマップメモリから読み出されたアドレスＳ＋４のデータが保持されている。また図６のチャンネル０アドレスレジスタ６０１にはアドレスＳが、チャンネル１アドレスレジスタ６０２にはアドレスＳ＋４が保持されている。タイミングｔ０２で図１のシーケンスコントローラ１０５はＷＤＲＱ０信号１０３を出力し、ビットマップメモリ１０４への書き込みを開始する。書き込み動作は、先に説明した読み出し動作と同様に図６のチャンネル０アドレスレジスタ６０１の値が選択されアドレス線にドライブされ、制御線にはライトサイクルを行う信号がドライブされる。メモリサイクルと同時に図１のシーケンスコントローラ１０５は出力バッファ１０６にＲＤ信号を出力する。ＲＤ信号によって出力データバッファは前記保持したアドレスＳの論理演算されたデータをデータ線にドライブしこのデータがビットマップメモリ１０４のアドレスＳに書き込まれる。この書き込みが終了した時点がｔ０３である。
【００３７】
タイミングｔ０３では図１のアドレス発生器１０２はＡＳＥＴ０信号を出力し、図６のチャンネル０アドレスレジスタ６０１にアドレス情報として図５のカレントアドレスカウンタ５１０の値Ｓ＋８を書き込む。その後シーケンスコントローラ１０５はＲＤＲＱ０信号を出力し前記と同様の読み出しメモリサイクルを実行し、入力データバッファ１０９にアドレスＳ＋８のデータを保持する。その後前記と同様に図５のカレントアドレスカウンタ５１０をカウントアップする。
【００３８】
ｔ０２，ｔ０３でビットマップメモリへのリード、ライトサイクルを実行している間に入力データバッファ１０９に保持されていたアドレスＳ＋４のデータを１０７から出力される画像データと１０８の論理演算回路で演算し１０６の出力データバッファに書き込む。この書き込みとｔ０３のビットマップメモリからのデータの読み出しが共に終了する時点がｔ０４である。
【００３９】
以降ビットマップメモリのＤＭＡアドレスを図６の６０１，６０２のチャンネル０，１を交互に切り替えながら同様の処理を行う。
【００４０】
＜改行処理＞
次に１ラインの描画が終わり改行動作が行われる際の処理を説明する。タイミングｔ０ｄで図７のようにアドレスＳ＋２０のリード動作が終了したとき図５の比較器５１３は改行信号を出力している。この改行信号はシーケンスコントローラ１０５の改行処理を示すシーケンス番号とイネーブル信号を出力する。これによって図５のデコーダ５１４はセレクト信号１、セレクト信号２、セレクト信号３を制御してライン先頭アドレスレジスタ５０６の値とバンド幅レジスタ５０２の値を加算器５０７で加算したデータをライン先頭アドレスレジスタ５０６に書き戻し、ライン先頭アドレスを次ラインの先頭番地に更新する。同時に水平印字位置の値とネクストライン左座標の値と更新されたライン先頭アドレスを加算器５０９で加算し、ラインの描画先頭アドレスＳ＋Ｗをカウンタロード信号によってカレントアドレスカウンタ５１０にロードする。先に述べたように、矩形描画時はネクストライン左座標の値は０なので、描画先頭アドレスＳ＋Ｗはライン先頭アドレスと水平印字位置の和となる。ロードの完了とアドレスＳ＋１Ｃの論理演算動作が共に終了する時点がタイミングｔ０ｅである。
【００４１】
ｔ０ｅでは図６のチャンネル０アドレスレジスタ６０１内のアドレスＳ＋１Ｃの図１の出力データバッファ１０６からのビットマップメモリへの書き込み動作が行われる。これが終了する時点がタイミングｔ０ｆである。
【００４２】
ｔ０ｆでは図５のカレントアドレスカウンタ５１０の値Ｓ＋Ｗが、ＡＳＥＴ０信号によって図６のチャンネル０アドレスレジスタ６０１に書き込まれて、前記と同様にビットマップメモリからアドレスＳ＋Ｗのデータが読み出され入力データバッファに保持される。
【００４３】
この読み出し動作が終了すると図５のカレントアドレスカウンタ５１０をＳ＋Ｗ＋４に更新する。上記の動作と同時にｔ０ｅ，ｔ０ｆではアドレスＳ＋２０のデータが論理演算され出力データバッファに格納される。この時、図１の１０７の画像発生器は１０５のシーケンスコントローラにラインエンド信号を発生すると共に改行動作が実行されカレントライン左座標、ネクストライン左座標、カレントライン右座標を、次ラインすなわちアドレスＳ＋Ｗ〜Ｓ＋Ｗ＋２０までのラインのデータに更新する。
【００４４】
この時シーケンスコントローラは、シーケンス番号とイネーブル信号によって図５のセレクタ５１１をカレントライン左座標を出力するように切り替える。以上の動作が全て終了した時点がタイミングｔ１０である。ｔ１０以降は前記説明したのと同様に改行なし、改行あり共に繰り返し動作し、矩形の描画が実行される。図７のように最終ラインの最終データはアドレスＳ＋ｎＷ＋２０のデータでこの論理演算工程が終了すると、１０７の画像発生器は動作を終了する。また図１の１０２のアドレス発生器、１０３のＤＭＡコントローラおよび１０５のシーケンスコントローラはアドレスＳ＋ｎＷ＋２０のビットマップメモリへのライトを実行してから、動作を終了する。
【００４５】
＜矩形以外の描画＞
次に矩形以外の描画の動作を説明する。図１の画像発生器１０７はデータバスを通じてディスプレイリストを読み込みその内容に従って描画動作を開始する。ディスプレイリストに指定されたオブジェクトデータを次に読み込み画像を発生する。例えば発生する画像のオブジェクトデータが円のような圧縮されたグラフィツクデータの場合は、データバスから圧縮されたオブジェクトデータを読み込みビットマップデータに伸張した画像データを出力する。出力される画像データは図４のような円のデータで、先頭アドレスＳ２０３からの描画される円の領域のデータと論理演算される。図１の画像発生器１０７は発生した画像を出力すると同時に、印字ライン位置すなわちディスプレイリストにより指定されるビットマップメモリ上に画像を描画するライン位置の値とカレントライン左座標すなわち処理ラインの画像が開始される位置の描画規準点からの座標、カレントライン右座標すなわち処理ラインの画像が終了する位置の描画規準点からの座標、およびネクストライン左座標すなわち処理ラインの次のラインの画像が開始される位置の描画規準点からの座標を図１の１０２のアドレス発生器に出力する。
【００４６】
描画動作が開始されると図１のシーケンスコントローラ１０５が起動され、最初に図１のアドレス発生器１０２に対してアドレス発生動作を行うシーケンス番号とイネーブル信号を出力する。図１のアドレス発生器１０２はこれをうけて描画ラインの先頭アドレスの算出行う。図５のバンドアドレスレジスタ５０１には前述したように描画バンドの先頭アドレスが保持されており、またバンド幅レジスタ５０２には描画バンド幅が設定されている。アドレス発生器はバンド幅レジスタ５０２の値と入力されている印字ライン位置の値を乗算器５０３で乗算しバンド先頭アドレスレジスタ５０１の値に加算し描画ラインの先頭アドレスを発生し、ライン先頭アドレスレジスタ５０６に保持する。次に図１のシーケンスコントローラ１０５は描画先頭アドレスの算出するシーケンス番号とイネーブル信号を出力する。これによりアドレス発生器１０２は入力されている水平印字位置の座標とカレントライン左座標を図５の加算器５１５で加算し、この結果とライン先頭アドレスレジスタ５０６の値を加算器５０９で加算し描画先頭アドレスＳ＋Ｌ０、図２の２０１を得る。
【００４７】
描画する画像が矩形でないときはカレントライン左座標、ネクストライン左座標の値はそれぞれのラインの画像が始まる座標を示し、例えば図４の図形の場合はＬ０，Ｌ１，…となり、描画先頭アドレスはライン先頭アドレスレジスタと水平印字位置座標とカレントライン左座標の和となる。カレントライン右座標の値は描画規準点からのライン最終ワードの座標となり矩形でない場合はライン毎に固有の値を持ち、図４の例ではＲ０，Ｒ１，…となる。またアドレスＳ＋Ｌ０は、この時、図５のカウンタロード信号が出力され５１０の初期値としてカレントアドレスカウンタにロードされる。以上で描画を開始する初期設定が終了し描画装置は実際の描画動作を開始する。
【００４８】
図４の描画される画像は詳細に表現すると図４の４０１のように構成され、４０２に示すように描画ライン毎に画像の幅だけ並んだメモリセルに対して描画される。ライン０からラインｎまでワード単位に行われる。すなわち図１のビットマップメモリ１０４からアドレスＳ＋Ｌ０のデータが読み出され、画像発生器１０７から出力される対応する画像データと論理ＯＲされビットマップメモリの同じアドレスに書き込まれる。このワード単位の描画動作をアドレスＳ＋Ｌ０からＳ＋Ｌ０＋４，Ｓ＋Ｌ０＋８と連続ワードで繰り返しここで改行して次ラインのＳ＋Ｗ＋Ｌ１，Ｓ＋Ｗ＋Ｌ１＋４，…のようにラインｎの最後のデータまで行われる。それぞれのワードデータは図４の４０３，４０４で示すように画像の対応する位置の黒ドット、白ドットをデータ１，０のビットで構成し画像を表現している。
【００４９】
本発明においては上記描画処理を図１の画像発生器１０７が出力する画像データとあらかじめ入力データバッファ１０９中にビットマップメモリから読込まれた対応するデータとを論理演算回路１０８で論理演算して出力データバッファ１０６へ書き込む論理演算工程と、入力データバッファ１０９にビットマップメモリ１０４から次に論理演算するデータの読込みあるいは出力データバッファ１０６からビットマップメモリ１０４への書き込むメモリアクセス工程を同時行うことを特徴とする。
【００５０】
図８は前記２つの工程を時系列に表現したもので図７と同様にメモリサイクルの行がメモリアクセス工程であり、論理演算の列が論理演算工程である。先に説説明したように初期設定が終わった段階で図５のカレントアドレスカウンタ５１０には描画先頭アドレスＳ＋Ｌ０がロードされている。この状態が図８でいう時刻ｕｓｓである。またカレントアドレスカウンタの値はアドレス情報として図１のＤＭＡコントローラ１０３に出力されている。この状態でアドレス発生器１０２はＤＭＡコントローラ１０３に対してアドレスセット信号ＡＳＥＴ０を出力し図６のチャンネル０アドレスレジスタ６０１に描画先頭アドレスＳ＋Ｌ０が保持される。
【００５１】
続いてシーケンスコントローラ１０５はＤＭＡコントローラ１０３にＲＤＲＱ０信号を出力してメモリリードサイクルを起動する。図６のＤＭＡコントローラはＲＤＲＱ０が入力されるとチャンネル０選択信号を出力しゲート６０３をオンし、ＯＲ６０５を通してセレクタ６０６へ出力する。シーケンサ６０７はアドレス切り替え信号を所定のタイミングで切り替えアドレス線に行アドレスと列アドレスをドライブするとともに制御線によってメモリリードサイクルを発生する。またこの時、所定のタイミングでＷＲ信号をデータ入力バッファ１０９に出力する。図１のビットマップメモリ１０４はアドレス線と制御線のデータによってメモリデータをデータ線にドライブしＷＲ信号によって入力データバッファ１０９に書き込む。アドレスＳ＋Ｌ０のメモリサイクルが終了した時が時刻ｕ００である。
【００５２】
時刻ｕ００では、図５の加算器５１２によってライン先頭アドレスレジスタ５０６の値と入力されている水平印字位置とカレントライン右座標が加算されカレントラインの描画の最終アドレスが算出されておりこの値とカレントアドレスカウンタ５１０の値が比較器５１３で比較され一致していれば改行信号を出力する。改行信号が出力されていないときは図１のシーケンスコントローラ１０５はアドレスインクリメントのシーケンス番号とイネーブル信号を出力する。この時、図５のデコーダ５１４はカウントイネーブル信号をカレントアドレスカウンタ５１０へ出力し、カレントアドレスカウンタが次のメモリアドレスにインクリメントされる。更新されたアドレス情報は図１のＤＭＡコントローラ１０３に出力されると、デコーダ５１４はＡＳＥＴ１信号をＤＭＡコントローラ１０３に出力し図６のチャンネル１アドレスレジスタ６０２に保持される。その後、図１のシーケンスコントローラ１０５はＤＭＡコントローラ１０３に対してＲＤＲＱ１信号を出力しチャンネル１のメモリリードサイクルを発生する。詳細は上記チャンネル０のリードサイクルと同様である。この動作によってアドレスＳ＋Ｌ０＋４のデータがビットマップメモリ１０４から読み出され入力データバッファ１０９にＷＲ信号によって書き込まれる。この読み出し動作が終了した時点で図５の改行信号が出力されていなければ、カレントアドレスカウンタ５１０がカウントアップして、Ｓ＋Ｌ０＋４からＳ＋Ｌ０＋８に変化する。以降カレントアドレスカウンタの値Ｓ＋８とライン終了アドレスすなわち加算器５１２で加算されたライン先頭アドレスレジスタ５０６の値とカレントライン右座標の値の加算値が比較器５１３で比較され一致していれば改行信号を出力する。
【００５３】
この例ではそれぞれＳ＋Ｌ０＋８は、図４の４０２で示すようにＳ＋Ｒ０であるので改行信号が出力される。同時にｕ００のタイミングで以前に図１の１０９に保持されているアドレスＳ＋Ｌ０のデータと１０７の画像発生器の出力する画像データが１０８の論理演算回路で演算され１０６の出力データバッファに対して出力される。
【００５４】
画像発生器はシーケンスコントローラ１０５に画像の出力の準備ができたタイミングでデータイネーブル信号を出力し、シーケンスコントローラ１０５は論理演算を行うことができるタイミング、すなわちこの場合はｕ００のときデータリクエストを画像発生器に出力する。これら２つの信号が共に発生しているときが出力データバッファ１０６に書き込むタイミングで、この時シーケンスコントローラ１０５は出力データバッファ１０６にＷＲ信号を出力し、論理演算されたアドレスＳ＋Ｌ０のデータを書き込む。この書き込みとアドレスＳ＋Ｌ０＋４の読み出し動作が共に終了した時点がタイミングｕ０２である。
【００５５】
ｕ０２の時点では図１の入力データバッファ１０９には論理演算されたアドレスＳ＋Ｌ０のデータが、また出力データバッファ１０６にはビットマップメモリから読み出されたアドレスＳ＋Ｌ０＋４のデータが保持されている。また図６のチャンネル０アドレスレジスタ６０１にはアドレスＳ＋Ｌ０が、チャンネル１アドレスレジスタ６０２にはアドレスＳ＋Ｌ０＋４が保持されている。タイミングｕ０２で図１のシーケンスコントローラ１０５はＷＤＲＱ０信号１０３を出力しビットマップメモリ１０４への書き込みを開始する。書き込み動作は、前記説明した読み出し動作と同様に図６のチャンネル０アドレスレジスタ６０１の値が選択されアドレス線にドライブされ、制御線にはライトサイクルを行う信号がドライブされる。メモリサイクルと同時に図１のシーケンスコントローラ１０５は出力バッファ１０６にＲＤ信号を出力する。ＲＤ信号によって出力データバッファは保持したアドレスＳ＋Ｌ０の論理演算されたデータをデータ線にドライブし、このデータがビットマップメモリ１０４のアドレスＳ＋Ｌ０に書き込まれる。
【００５６】
この書き込みが終了した時点がｕ０３である。タイミングｕ０３では図１のアドレス発生器１０２はＡＳＥＴ０信号を出力し、図６のチャンネル０アドレスレジスタ６０１にアドレス情報として図５のカレントアドレスカウンタ５１０の値Ｓ＋Ｌ０＋８を書き込む。その後シーケンスコントローラ１０５はＲＤＲＱ０信号を出力し前記と同様の読み出しメモリサイクルを実行し、入力データバッファ１０９にアドレスＳ＋Ｌ０＋８のデータを保持する。
【００５７】
タイミングｕ０３で図８のようにアドレスＳ＋Ｌ０＋８のリード動作が終了したとき図５の比較器５１３は改行信号を出力している。この改行信号はシーケンスコントローラ１０５の改行処理を示すシーケンス番号とイネーブル信号を出力する。これによって図５のデコーダ５１４はセレクト信号１、セレクト信号２、セレクト信号３を制御してライン先頭アドレスレジスタ５０６の値とバンド幅レジスタ５０２の値を加算器５０７で加算したデータをライン先頭アドレスレジスタ５０６に書き戻し、ライン先頭アドレスを次ラインの先頭番地を更新する。
【００５８】
同時に水平印字位置の値とネクストライン左座標の値と更新されたライン先頭アドレスを加算器５０９で加算し、ラインの描画先頭アドレスＳ＋Ｗ＋Ｌ１をカウンタロード信号によってカレントアドレスカウンタ５１０のにロードする。
【００５９】
ロードの完了とアドレスＳ＋Ｌ０＋４の論理演算動作が共に終了する時点がタイミングｕ０４である。ｕ０４では図６のチャンネル１アドレスレジスタ６０２内のアドレスＳ＋Ｌ０＋４の図１の出力データバッファ１０６からのビットマップメモリへの書き込み動作がおこなわれる。これが終了する時点がタイミングｕ０５である。ｕ０５では図５のカレントアドレスカウンタ５１０の値Ｓ＋Ｗ＋Ｌ１が、ＡＳＥＴ０信号によって図６の６０２のチャンネル１アドレスレジスタに書き込まれて、前記と同様にビットマップメモリからアドレスＳ＋Ｗ＋Ｌ１のデータが読み出され入力データバッファに保持される。
【００６０】
この読み出し動作が終了すると図５のカレントアドレスカウンタ５１０をＳ＋Ｗ＋Ｌ１＋４に更新する。上記動作と同時にｕ０４，ｕ０５ではアドレスＳ＋Ｌ０＋８のデータが論理演算され出力データバッファに格納される。この時、図１の画像発生器１０７はシーケンスコントローラ１０５にラインエンド信号を発生すると共に改行動作が実行されカレントライン左座標、ネクストライン左座標、カレントライン右座標を、次ラインすなわちアドレスＳ＋Ｗ＋Ｌ１〜Ｓ＋Ｗ＋Ｌ１＋Ｃまでのラインのデータに更新する。この時シーケンスコントローラは、シーケンス番号とイネーブル信号によって図５のセレクタ５１１をカレントライン左座標を出力するように切り替える。
【００６１】
以上の動作が全て終了した時点がタイミングｕ１０である。ｕ１０以降は前記説明したのと同様に改行なし、改行あり共に繰り返し動作し、矩形以外の描画が実行される。図８のように最終ラインの最終データはアドレスＳ＋ｎＷ＋Ｌｎ＋８（Ｌｎ＋８＝Ｒｎ）のデータでこの論理演算工程が終了すると、１０７の画像発生器は動作を終了する。また図１のアドレス発生器１０２、ＤＭＡコントローラ１０３およびシーケンスコントローラ１０５はアドレスＳ＋ｎＷ＋Ｌｎ＋８のビットマップメモリへのライトを実行してから、動作を終了する。
【００６２】
以上説明したように本発明にかかる実施形態によれば、ソース画像データと、ビットマップメモリのデータとの論理演算中に先に処理済みとなっているデータをビットマップメモリ上に書き込み、さらに次の処理対象となるデータをビットマップメモリから読み出すことにより論理演算動作と、ビットマップメモリの書き込み、読み出し動作を同時に並行して行なうことができる。
【００６３】
またビットマップメモリから、次のデータを読み出す際に、現在論理演算しているデータがラインの最後のデータのときは次ラインのデータを読み出すことにより、メモリアクセスの効率が著しく向上し高速描画が可能なる。
【００６４】
（第２の実施形態）
図９は本発明の第２の実施形態にかかる描画装置の構成図で９０１は描画装置、９０２から９０３はセレクタ、９０５はバッファ１、９０６はバッファ２、９０７はバッファ３、９０８、９０９はそれぞれセレクタである。また他の部分は図１と同様である。
【００６５】
本実施形態においては第１の実施形態の入力データバッファ、出力データバッファを９０５から９０７のバッファ１からバッファ３で構成したものである。前記３つのバッファの役割を入力バッファ、出力バッファとして交互に切り替えて使用する。例えば図７を例にして具体的に説明すると、タイミングｔ０２ではアドレスＳのデータをバッファ１の９０５から読み出し、メモリにライトする。タイミングｔ０３では、バッファ１が空になっているのでアドレスＳ＋８から読み出したデータをバッファ１に書込む、それと同時にタイミングｔ０２，ｔ０３では９０６のバッファ２に書かれているアドレスＳ＋４のデータを読み出し、画像データと論理演算し、その結果を９０７のバッファ３に書き込む。
【００６６】
タイミングｔ０４ではｔ０３でメモリから読込んだアドレスＳ＋８のデータがバッファ１に入っており、またバッファ３にはアドレスＳ＋４の論理演算済みのデータが入っている。また、バッファ２はすでに使用されて必要のないデータが入っている。したがって、タイミングｔ０４でバッファ３からアドレスＳ＋４のデータをメモリにライトし、タイミングｔ０５で空になったバッファ３にアドレスＳ＋Ｃのデータをリードし、保持する。またｔ０４，ｔ０５では同時にバッファ１内のアドレスＳ＋８のデータと画像データを論理演算して、バッファ２に書込む。このように３つのバッファを次々に役割を変えて使用するようにしても同じ効果が得られるうえに、入力、あるいは、出力バッファのサイズを小さくすることができる。
【００６７】
（第３の実施形態）
第１の実施形態、第２の実施形態ではメモリのアクセスあるいは論理演算をワード単位で処理したがこれを複数ワード単位で行っても良い。この場合入力バッファ、出力バッファ、あるいはバッファ１から３のサイズを処理ワード数に比例して増し、また、アドレス等の加算も処理ワード数分行うことで実現でき、同様の効果が得られるばかりでなく、さらに著しい描画速度の向上が図れる。
【００６８】
【他の実施形態】
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００６９】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはCPUやMPU）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７０】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７１】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明した（図７および図８に示す）メモリサイクル（タイミングチャート）の処理に対応するプログラムコードが格納されることになる。
【００７２】
【発明の効果】
以上説明したように、本発明によれば、ソース画像データとビットマップメモリのデータとの論理演算と、先に処理したデータをビットマップメモリへの書き込み、さらに次の処理対象となるデータの読み出し、とを同調させることにより論理演算と、ビットマップメモリの書き込み、読み出しを並行して行い、ビットマップメモリからのデータの読み込み、あるいは書き込み時に論理演算処理が休止したり、論理演算処理の実行中にビットマップメモリへのアクセスが休止するという従来の問題は解決され、描画処理の高速化が可能となる。
【図面の簡単な説明】
【図１】本発明の実施形態にかかる描画装置の構成を示すブロック図である。
【図２】本発明の実施形態にかかる描画装置の描画処理を説明する図である。
【図３】ビットマップメモリの構成を説明する図である。
【図４】矩形以外の描画を説明する図である。
【図５】アドレス発生器の構成を説明する図である。
【図６】ＤＭＡコントローラの構成を説明する図である。
【図７】矩形描画におけるメモリサイクルを説明する図である。
【図８】矩形以外の描画におけるメモリサイクルを説明する図である。
【図９】本発明の第２の実施形態にかかる描画装置の構成を説明する図である。
【符号の説明】
１０１  描画装置
１０２  アドレス発生器
１０３  ＤＭＡコントローラ
１０４  ビットマップメモリ
１０５  シーケンスコントローラ
１０６  出力データバッファ
１０７  画像発生器
１０８  論理演算回路
１０９  入力データバッファ
【図１】
0004208350.tif 000002
【図２】
0004208350.tif 000003
【図３】
0004208350.tif 000004
【図４】
0004208350.tif 000005
【図５】
0004208350.tif 000006
【図６】
0004208350.tif 000007
【図７】
0004208350.tif 000008
【図８】
0004208350.tif 000009
【図９】
0004208350.tif 000010