(57)【特許請求の範囲】
【請求項１】
外部から入力される画像データに基づいて各種アドレス及びデータを発生するマイクロコンピュータと、それによって発生されたアドレス及びデータに基づいて画像メモリにベクトル描画データを書き込む画像描画制御手段とを備えた画像描画装置において、
前記マイクロコンピュータからの主走査方向の斜線描画開始アドレスを設定した後、所定のクロック信号に同期してアップカウントを行ない、主走査方向の斜線描画アドレスを順次生成する主走査方向アドレス生成手段と、前記マイクロコンピュータからの副走査方向の斜線描画開始アドレスを設定した後、前記クロック信号に同期してアップカウントを行ない、副走査方向の斜線描画アドレスを順次生成する副走査方向アドレス生成手段と、前記マイクロコンピュータからの副走査方向の斜線描画終了アドレスを設定する斜線描画終了アドレス設定手段とを設け、
前記画像描画制御手段が、前記主走査方向アドレス生成手段及び副走査方向アドレス生成手段が生成する各アドレスに基づき、該主走査方向アドレス生成手段によって生成されるアドレスの値が前記斜線描画終了アドレス設定手段によって設定されたアドレスに一致するまで前記画像メモリ上にベクトル描画データを書き込むことを特徴とする画像描画装置。
【請求項２】
外部から入力される画像データに基づいて各種アドレス及びデータを発生するマイクロコンピュータと、それによって発生されたアドレス及びデータに基づいて画像メモリにベクトル描画データを書き込む画像描画制御手段とを備えた画像描画装置において、
前記画像メモリの主走査方向への描画が行なわれる度にそのドット幅をカウントする主走査方向幅計数手段と、前記マイクロコンピュータからの前記画像メモリに描画する主走査方向のドット幅を設定し、前記主走査方向幅計数手段の計数値が該設定されたドット幅の値に達した時に同期信号を出力する主走査方向ドット幅設定手段と、前記マイクロコンピュータからの主走査方向の斜線描画開始アドレスを前記同期信号に同期してアップカウントし、副走査方向の次のラインにおける主走査方向の斜線描画開始アドレスを決定する手段と、該手段からの主走査方向の斜線描画開始アドレスを設定した後、所定のクロック信号に同期してアップカウントを行ない、主走査方向の斜線描画アドレスを順次生成する主走査方向アドレス生成手段と、前記マイクロコンピュータからの副走査方向の斜線描画開始アドレスを設定した後、前記同期信号に同期してアップカウントを行ない、副走査方向の斜線描画アドレスを順次生成する副走査方向アドレス生成手段と、前記マイクロコンピュータからの副走査方向の斜線描画終了アドレスを設定する斜線描画終了アドレス設定手段とを設け、
前記画像描画制御手段が、前記主走査方向アドレス生成手段及び副走査方向アドレス生成手段が生成する各アドレスに基づき、該主走査方向アドレス生成手段によって生成されるアドレスの値が前記斜線描画終了アドレス設定手段によって設定されたアドレスに一致し、且つ前記主走査方向ドット幅設定手段からの前記同期信号が入力されるまで前記画像メモリ上にベクトル描画データを書き込むことを特徴とする画像描画装置。
【請求項３】
外部から入力される画像データに基づいて各種アドレス及びデータを発生するマイクロコンピュータと、それによって発生されたアドレス及びデータに基づいて画像メモリにベクトル描画データを書き込む画像描画制御手段とを備えた画像描画装置において、
前記画像メモリの主走査方向への描画が行なわれる度にそのドット幅をカウントする主走査方向幅計数手段と、前記マイクロコンピュータからの前記画像メモリに描画する主走査方向のドット幅を設定し、前記主走査方向幅計数手段の計数値が該設定されたドット幅の値に達した時に第１の同期信号を出力する主走査方向ドット幅設定手段と、前記画像メモリの副走査方向への描画が行なわれる度にそのドット幅をカウントする副走査方向幅計数手段と、前記マイクロコンピュータからの前記画像メモリに描画する副走査方向のドット幅を設定し、前記副走査方向幅計数手段の計数値が該設定されたドット幅の値に達した時に第２の同期信号を出力する副走査方向ドット幅設定手段と、前記マイクロコンピュータからの主走査方向の斜線描画開始アドレスを前記第２の同期信号に同期してアップカウントし、副走査方向の次のラインにおける主走査方向の斜線描画開始アドレスを決定する手段と、該手段からの主走査方向の斜線描画開始アドレスを設定した後、所定のクロック信号に同期してアップカウントを行ない、主走査方向の斜線描画アドレスを順次生成する主走査方向アドレス生成手段と、前記マイクロコンピュータからの副走査方向の斜線描画開始アドレスを設定した後、前記第１の同期信号に同期してアップカウントを行ない、副走査方向の斜線描画アドレスを順次生成する副走査方向アドレス生成手段と、前記マイクロコンピュータからの副走査方向の斜線描画終了アドレスを設定する斜線描画終了アドレス設定手段とを設け、
前記画像描画制御手段が、前記主走査方向アドレス生成手段及び副走査方向アドレス生成手段が生成する各アドレスに基づき、該主走査方向アドレス生成手段によって生成されるアドレスの値が前記斜線描画終了アドレス設定手段によって設定されたアドレスに一致し、且つ前記主走査方向ドット幅設定手段からの前記第１の同期信号が入力されるまで前記画像メモリ上にベクトル描画データを書き込むことを特徴とする画像描画装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、画像メモリに斜線を描画できる画像描画装置に関する。
【０００２】
【従来の技術】
画像描画装置としては、例えば特開平６−６０１８８号公報にみられるようなものがあり、このような画像描画装置の動作を図１２〜図１６を参照して説明する。
【０００３】
使用者は、図１２のホストコンピュータ１でポストスクリプトに代表されるページ記述言語により印字したい１ページ分の画像データ（直線ベクトル，曲線ベクトル等）を作成する。
作成された画像データはＣＰＵ３に送られ、ページ記述言語解読部３ａにより主走査方向の直線ベクトルに変換し直し、ソーティングしてベクトル展開部３ｂに送る。
【０００４】
その際、描画開始認識部３ｃは、使用者から新たなページの描画命令が出されたことを判断して、ベクトル展開部３ｂに画像メモリ２をクリアするためのクリア命令を出す。
また、下地部検出部３ｄは、使用者から例えばポストスクリプトで矩形領域のフィルコマンドといった矩形領域の塗りつぶし命令が出されると、ベクトル展開部３ｂに下地描画命令を送る。
【０００５】
ベクトル展開部３ｂは、主走査方向の直線ベクトルを直線の開始座標，終了座標，濃度値など画像（直線）描画制御装置３４にあうデータに変換し直してその内部に備えている図１３のＦＩＦＯ（先入れ先出しメモリ）４に送る。
また、クリア命令が出された場合には、画像描画制御装置３４に主走査方向，副走査方向それぞれ０番地から最大値まで指定し、仮に２５６階調であったならばＲＧＢデータを全て０ｘＦＦ（最大値）に指定して、２次元矩形領域塗りつぶしオペレーションを送る。
【０００６】
さらに、下地描画命令が出された場合には、その下地部の描画開始座標，終了座標，濃度値を画像描画制御装置３４に指定して、２次元矩形領域塗りつぶしオペレーションを送る。
画像描画制御装置３４は、ＣＰＵ３より送られた各オペレーションを解読して、画像メモリ２のアドレス線，データ線，制御信号を生成して画像メモリ２に描画する。
【０００７】
ＣＰＵ３のベクトル展開部３ｂによって直線ベクトルに変換されたデータは全てＦＩＦＯ４に一時格納される。ＦＩＦＯ４に格納されるデータのうち何ビットかは、図１４に示すようなＴＡＧビットが付けられている。
【０００８】
このＴＡＧビットがオペレーションコントローラ１３に送られると、オペレーションコントローラ１３はＴＡＧビットを解読して、ＴＡＧビットと一緒に付けられたデータビットが主走査方向の描画開始座標（ＸＳ）のデータか、主走査方向の描画終了座標（ＸＥ）のデータか、副走査方向の描画開始座標（ＹＳ）のデータか、副走査方向の描画終了座標（ＹＥ）のデータか、あるいは濃度値（ＲＧＢ）のデータかを振り分け、ＸＳ，ＸＥ，ＹＳ，ＹＥ，ＲＧＢの各レジスタのラッチ信号を出力する。
【０００９】
ラッチ信号を入力した各レジスタは、それぞれＸＳレジスタ５が主走査方向の描画開始座標（ＸＳ）を、ＸＥレジスタ６が主走査方向の描画終了座標（ＸＥ）を、ＹＳレジスタ７が副走査方向の描画開始座標（ＹＳ）を、ＹＥレジスタ１５が副走査方向の描画終了座標（ＹＥ）を、ＲＧＢレジスタ８が濃度値（ＲＧＢ）のデータをそれぞれ格納する。
【００１０】
ただし、この例では濃度（ＲＧＢ）レジスタ８にＲＧＢデータを格納するようにしているが、出力する印字装置がモノクロプリンタであった場合には濃度レジスタ８に単色用のデータを格納しても構わず、また画像メモリ２の構成がＲＧＢではないときはＣＭＹＫデータを格納しても構わない。
【００１１】
次に、この実施例における直線ベクトルを描画する際の動作を説明する。
ＣＰＵ３のベクトル展開部３ｂによりＦＩＦＯ４に必要なベクトル描画データが蓄えられると、オペレーションコントローラ１３は、その各データを順次取り出し、それらを前述したようにＸＳレジスタ５，ＸＥレジスタ６，ＹＳレジスタ７，ＲＧＢレジスタ８の各レジスタに順次格納し、ＴＡＧビットの直線描画オペレーション（ＯＰ）フラグが立ったことを確認すると、Ｘアドレスカウンタ１０にＸＳレジスタ５の値を、Ｙアドレスカウンタ１６にＹＳレジスタ７の値をそれぞれロードし、Ｘアドレスカウンタ１０のカウントアップを開始させる。
【００１２】
それと同時に、メモリコントローラ３７に画像メモリ２の制御信号であるチップセレクト信号ＣＳ，ライトイネーブル信号ＷＥ，出力イネーブル信号ＯＥを生成させ、画像メモリ２のＸアドレスカウンタ１０の値とＹアドレスカウンタ１６の値により指定されたアドレスにＲＧＢレジスタ８によって指定された濃度値で書き込みを行なう。
【００１３】
このとき、Ｘコンパレータ１１がＸアドレスカウンタ１０の値とＸＥレジスタ６の値とを比較し、その各値が一致した時点で画像メモリ２の１ラインの描画終了を知らせる信号ＸＥＮＤをメモリコントローラ３７とオペレーションコントローラ１３に出す。信号ＸＥＮＤを受け取ったオペレーションコントローラ１３は、ＦＩＦＯ４から次のベクトル描画データを受け取る。
以上のような動作を繰り返し、ＦＩＦＯ４に格納されたベクトル描画データを全て画像メモリ２に展開して１ページ分の画像を作成する。
【００１４】
次に、画像メモリ２をクリアする際の動作を説明する。
ＣＰＵ３の描画開始認識部３ｃから画像メモリ２をクリアするためのクリア命令が出された場合や、使用者から１ページ分のクリア命令が出された場合、ベクトル展開部３ｂは、例えば印字するプリンタの解像度が仮に４００ＤＰＩ（ｄｏｔｓ／ｉｎｃｈ）で、印字（クリア）する領域がＡ３用紙分であった場合には、ＸＳ，ＹＳの値を「０」、ＸＥの値を「４６７７」、ＹＥの値を「６６１４」とし（但し、それらの値はプリンタの解像度や用紙サイズにより異なる）、その各値を示すデータ，濃度値を示すデータ，２次元矩形領域塗りつぶしオペレーションを図１５に示すようにしてＦＩＦＯ４に書き込む。
【００１５】
ＦＩＦＯ４にその各データが蓄えられると、オペレーションコントローラ１３はその各データを取り出し、ＸＳレジスタ５及びＹＳレジスタ７に「０」を、ＸＥレジスタ６に「４６７７」を、ＹＥレジスタ１５に「６６１４」を、ＲＧＢレジスタ８に全てビット“１”（仮にＲＧＢレジスタ８のビット幅が８ビットとすると「２５６」）をそれぞれ格納する。ただし、このプリンタ装置がモノクロプリンタであった場合やＣＭＹＫデータを用いた場合などは、ＲＧＢレジスタ８に「０」を入力する。
【００１６】
このように設定した状態で、ＴＡＧビットの矩形領域オペレーションフラグが立ったことを確認すると、直線描画の時と同様にＸアドレスカウンタ１０にＸＳレジスタ５の値を、Ｙアドレスカウンタ１６にＹＳレジスタ７の値をそれぞれロードし、Ｘアドレスカウンタ１０のカウントアップを開始させる。
【００１７】
それと同時に、矩形領域塗りつぶしコントローラ３８に画像メモリ２の制御信号であるチップセレクト信号ＣＳ，ライトイネーブル信号ＷＥ，出力イネーブル信号ＯＥを生成させ、画像メモリ２のＸアドレスカウンタ１０の値とＹアドレスカウンタ１６の値により指定されたアドレスにＲＧＢレジスタ８によって指定された濃度値で書き込みを行なう。すなわち、白ドットを書き込む。
【００１８】
このとき、Ｘコンパレータ１１がＸアドレスカウンタ１０の値とＸＥレジスタ６の値とを比較し、その各値が一致した時点で画像メモリの主走査方向１ライン分のクリアが終了するので、その時に信号ＸＥＮＤをＹアドレスカウンタ１６へ出力する。Ｙアドレスカウンタ１６は、Ｘコンパレータ１１から信号ＸＥＮＤを受け取った時に１つカウントアップ（＋１）して次のラインに更新すると共に、Ｘアドレスカウンタ１０にＸＳレジスタ５の値を再ロードしてアドレスのカウントアップを開始させ、以後画像メモリ２の２ライン目以降の各ラインに対しても上述と同様な動作を繰り返す。
【００１９】
そして、１ページの最終ラインへの描画が終了し、Ｘコンパレータ１１から信号ＸＥＮＤが出力されると、Ｙアドレスカウンタ１６の値とＹＥレジスタ１５の値とが一致するため、Ｙコンパレータ１７は最後のラインの描画（クリア）が終了したことを知らせる信号ＹＥＮＤを矩形領域塗りつぶしコントローラ３８に出し、画像メモリ２の指定した１ページ分のクリアが終了したことを伝える。
【００２０】
以上で画像メモリ２のクリアを行なえ、信号ＹＥＮＤを受け取ったオペレーションコントローラ１３は次のステップに入り、ＦＩＦＯ４にベクトル描画データなどが格納されていれば描画を行なう。
なお、画像メモリ２の任意の領域だけをクリアしたい場合には、ＸＳ，ＸＥ，ＹＳ，ＹＥの各レジスタにクリアしたい領域を示すデータを格納すればよい。
【００２１】
次に、画像メモリ２に下地部の描画を行なう際の動作を説明する。
ＣＰＵ３の下地部検出部３ｄから下地描画命令が出されると、ベクトル展開部３ｂが図１６に示すようにして下地部の矩形領域の描画開始座標（ＸＳ，ＹＳ），描画終了座標（ＸＥ，ＹＥ），下地色を示すデータ，及び２次元矩形領域塗りつぶしオペレーションをＦＩＦＯ４に順次書き込む。
【００２２】
ＦＩＦＯ４にその各データが蓄えられると、オペレーションコントローラ１３はその各データを取り出して、ＸＳレジスタ５，ＸＥレジスタ６，ＹＳレジスタ７，ＹＥレジスタ１５，及びＲＧＢレジスタ８に順次格納し、以後画像メモリ２をクリアする場合と同様な動作によって画像メモリ２の任意の矩形領域に下地部を描画することができる。
【００２３】
【発明が解決しようとする課題】
しかしながら、上述のような従来の画像描画装置では、図１３に示したような画像描画制御装置によって画像メモリ上で斜線を描画することは不可能である。そのため、ＣＰＵ３によって斜線を副走査方向の１ラインずつの直線ベクトルに分割して描画しなければならないが、各ラインの直線ベクトルの描画を行なう際にそのアドレスをいちいち計算する必要があり、処理速度が低下するという問題があった。
【００２４】
この発明は上記の点に鑑みてなされたものであり、画像メモリ上での斜線の描画の高速化を図ることを目的とする。
【００２５】
【課題を解決するための手段】
この発明は、外部から入力される画像データに基づいて各種アドレス及びデータを発生するマイクロコンピュータと、それによって発生されたアドレス及びデータに基づいて画像メモリにベクトル描画データを書き込む画像描画制御手段とを備えた画像描画装置において、上記の目的を達成するため次の各手段を設けたことを特徴とする。
【００２６】
請求項１の発明は、マイクロコンピュータからの主走査方向の斜線描画開始アドレスを設定した後、所定のクロック信号に同期してアップカウントを行ない、主走査方向の斜線描画アドレスを順次生成する主走査方向アドレス生成手段と、マイクロコンピュータからの副走査方向の斜線描画開始アドレスを設定した後、上記クロック信号に同期してアップカウントを行ない、副走査方向の斜線描画アドレスを順次生成する副走査方向アドレス生成手段と、マイクロコンピュータからの副走査方向の斜線描画終了アドレスを設定する斜線描画終了アドレス設定手段とを設け、画像描画制御手段が、主走査方向アドレス生成手段及び副走査方向アドレス生成手段が生成する各アドレスに基づき、該主走査方向アドレス生成手段によって生成されるアドレスの値が斜線描画終了アドレス設定手段によって設定されたアドレスに一致するまで画像メモリ上にベクトル描画データを書き込むものである。
【００２８】
請求項２の発明は、画像メモリの主走査方向への描画が行なわれる度にそのドット幅をカウントする主走査方向幅計数手段と、マイクロコンピュータからの画像メモリに描画する主走査方向のドット幅を設定し、主走査方向幅計数手段の計数値が該設定されたドット幅の値に達した時に同期信号を出力する主走査方向ドット幅設定手段と、マイクロコンピュータからの主走査方向の斜線描画開始アドレスを上記同期信号に同期してアップカウントし、副走査方向の次のラインにおける主走査方向の斜線描画開始アドレスを決定する手段とを設ける。
【００２９】
さらに、その手段からの主走査方向の斜線描画開始アドレスを設定した後、所定のクロック信号に同期してアップカウントを行ない、主走査方向の斜線描画アドレスを順次生成する主走査方向アドレス生成手段と、マイクロコンピュータからの副走査方向の斜線描画開始アドレスを設定した後、上記同期信号に同期してアップカウントを行ない、副走査方向の斜線描画アドレスを順次生成する副走査方向アドレス生成手段と、マイクロコンピュータからの副走査方向の斜線描画終了アドレスを設定する斜線描画終了アドレス設定手段とを設ける。
そして、画像描画制御手段が、主走査方向アドレス生成手段及び副走査方向アドレス生成手段が生成する各アドレスに基づき、該主走査方向アドレス生成手段によって生成されるアドレスの値が斜線描画終了アドレス設定手段によって設定されたアドレスに一致し、且つ主走査方向ドット幅設定手段からの同期信号が入力されるまで画像メモリ上にベクトル描画データを書き込むものである。
【００３２】
請求項３の発明は、画像メモリの主走査方向への描画が行なわれる度にそのドット幅をカウントする主走査方向幅計数手段と、マイクロコンピュータからの画像メモリに描画する主走査方向のドット幅を設定し、主走査方向幅計数手段の計数値が該設定されたドット幅の値に達した時に第１の同期信号を出力する主走査方向ドット幅設定手段と、画像メモリの副走査方向への描画が行なわれる度にそのドット幅をカウントする副走査方向幅計数手段とを設ける。
【００３３】
また、マイクロコンピュータからの画像メモリに描画する副走査方向のドット幅を設定し、副走査方向幅計数手段の計数値が該設定されたドット幅の値に達した時に第２の同期信号を出力する副走査方向ドット幅設定手段と、マイクロコンピュータからの主走査方向の斜線描画開始アドレスを上記第２の同期信号に同期してアップカウントし、副走査方向の次のラインにおける主走査方向の斜線描画開始アドレスを決定する手段とを設ける。
【００３４】
さらに、その手段からの主走査方向の斜線描画開始アドレスを設定した後、所定のクロック信号に同期してアップカウントを行ない、主走査方向の斜線描画アドレスを順次生成する主走査方向アドレス生成手段と、マイクロコンピュータからの副走査方向の斜線描画開始アドレスを設定した後、上記第１の同期信号に同期してアップカウントを行ない、副走査方向の斜線描画アドレスを順次生成する副走査方向アドレス生成手段と、マイクロコンピュータからの副走査方向の斜線描画終了アドレスを設定する斜線描画終了アドレス設定手段とを設ける。
そして、画像描画制御手段が、主走査方向アドレス生成手段及び副走査方向アドレス生成手段が生成する各アドレスに基づき、該主走査方向アドレス生成手段によって生成されるアドレスの値が斜線描画終了アドレス設定手段によって設定されたアドレスに一致し、且つ主走査方向ドット幅設定手段からの上記第１の同期信号が入力されるまで画像メモリ上にベクトル描画データを書き込むものである。
【００３８】
【発明の実施の形態】
以下、この発明の実施の形態を図面に基づいて具体的に説明する。
図２はこの発明の第１実施形態である画像処理システムの構成例を示すブロック図、図３はそのプリンタコントローラの構成例を示すブロック図である。
【００３９】
この情報処理システムは、ホストコンピュータ５１と、画像描画装置であるプリンタコントローラ５２及びプリンタエンジン５３からなるプリンタ装置とによって構成されている。
ホストコンピュータ５１は、使用者によるキー操作により、ポストスクリプトに代表されるページ記述言語によって印字すべきページ単位の画像データ（直線ベクトル，曲線ベクトル等）を作成する。
【００４０】
プリンタコントローラ５２は、中央処理装置（以下「ＣＰＵ」という）６１，ＲＯＭ６２，ＲＡＭ６３，画像メモリ（フレームメモリ）６４，斜線発生装置６５，ホストインタフェース（以下「インタフェース」を「Ｉ／Ｆ」という）６６，エンジンＩ／Ｆ６７とによって構成されている。
【００４１】
ＣＰＵ６１は、ＲＯＭ６２内の制御プログラム及びホストコンピュータ５１からのコマンドによってプリンタコントローラ５２全体を制御する中央処理装置である。
ＲＯＭ６２は、ＣＰＵ６１が動作するための制御プログラム及びフォント等の固定データを格納しているリードオンリ・メモリである。
【００４２】
ＲＡＭ６３は、ＣＰＵ６１用のワークメモリ及び入力データを格納するためのインプットバッファ等に使用するランダムアクセス・メモリ、画像メモリ６４は、ベクトル描画データ（ビットマップデータ）を書き込むためのランダムアクセス・メモリである。
【００４３】
斜線発生装置６５は画像メモリ６４での斜線描画用の書き込みアドレスを発生するものであり、その詳細は追って説明する。
ホストＩ／Ｆ６６は、ホストコンピュータ５１との間でデータの送受信を、エンジンＩ／Ｆ６７は、実際に印字を行なうプリンタエンジン５３へのビットマップデータの送信をそれぞれ司る。
【００４４】
図１は図３の斜線発生装置６５の詳細を示すブロック構成図であり、主走査方向カウンタ７１，副走査方向カウンタ７２，乗数レジスタ７３，乗算器７４，加算器７５，セレクタ７６，及びコンパレータ７７からなる。
主走査方向カウンタ７１は、ＣＰＵ６１からロードされる主走査方向の斜線描画開始アドレス（ＤＡＴＡ）を設定した後、図示しないクロック発生回路からの基準クロック信号（ＣＬＫ）に同期してアップカウント（＋１）を行ない、主走査方向の斜線描画アドレスを順次生成する。
【００４５】
副走査方向カウンタ７２は、ＣＰＵ６１からロードされる副走査方向の斜線描画開始アドレス（ＤＡＴＡ）を設定した後、クロック発生回路からの基準クロック信号（ＣＬＫ）に同期してアップカウント（＋１）を行ない、副走査方向の斜線描画アドレスを順次生成する。
乗数レジスタ７３は、ＣＰＵ６１からロードされる主走査１ライン中のドット数（ＤＡＴＡ）を設定する。
【００４６】
乗算器７４は、副走査方向カウンタ７２の値と乗数レジスタ７３の値との乗数を計算する。
加算器７５は、主走査方向カウンタ７１の値と乗算器７４の値との和を求め、画像メモリ６４の書き込みアドレスとして出力する。
【００４７】
セレクタ７６は、ＣＰＵ６１からの指示により、ＣＰＵ６１からのアドレス又は加算器７５からのアドレスを選択して画像メモリ６４に与える。
コンパレータ７７は、ＣＰＵ６１からロードされる副走査方向の斜線描画終了アドレス（ＤＡＴＡ）を設定した後、その値と副走査方向カウンタ７２の値とが一致した時に、インタラプト信号等の所定信号をＣＰＵ６１に出力して最終ラインの描画が終了したことを知らせ、斜線描画を終了させる。
【００４８】
次に、この実施形態におけるプリント処理について説明する。
ホストコンピュータ５１でページ記述言語によって作成された画像データは、ホストＩ／Ｆ６６を介してプリンタコントローラ５２へ送られる。
プリンタコントローラ５２内のＣＰＵ６１は、ホストコンピュータ５１から送られてくる画像データのページ記述言語を解読する。
【００４９】
そして、その画像データを構成する直線（斜線を除く），曲線の各ベクトルを主走査方向の直線ベクトルに変換し直すと共に、画像メモリ６４の書き込みアドレスを計算して、そこに直線ベクトルを描画する。なお、プリンタコントローラ５２に前述したような画像描画制御装置（直線描画を行なうためのハード回路）を備えると、ＣＰＵ６１によって画像メモリ６４の書き込みアドレスを計算する必要がなくなる。
【００５０】
また、画像データに斜線が含まれている場合には、次のような斜線描画処理を行なう。ここでは、図６に示す斜線を画像メモリ６４に描画する場合を例にとって説明する。
【００５１】
ＣＰＵ６１は、図１に示した斜線発生装置６５の主走査方向カウンタ７１に主走査方向の斜線描画開始アドレス「ＸＡ」を、副走査方向カウンタ７２に副走査方向の斜線描画開始アドレス「ＹＡ」をそれぞれロードして設定させる。また、乗数レジスタ７３に主走査１ライン中のドット数を、コンパレータ７７に副走査方向の斜線描画終了アドレス「ＹＢ」をそれぞれロードして設定させる。
【００５２】
その後、斜線発生装置６５に対して斜線描画開始命令を発行すると、斜線発生装置６５内の乗算器７４が副走査方向カウンタ７２の値と乗数レジスタ７３の値との乗数を算出し、その値を加算器７５へ出力する。それによって、加算器７５は乗算器７４の値と主走査方向カウンタ７１の値との和を算出し（ＹＡ×乗数レジスタ７３の値＋ＸＡ）、その値を書き込みアドレスとしてセレクタ７６を介して画像メモリ６４に与え、そこに斜線の１ライン目のドットを描画させる。
【００５３】
その１ライン目の描画が終了すると、主走査方向カウンタ７１及び副走査方向カウンタ７２がそれぞれ次の基準クロック信号（ＣＬＫ）に同期してアップカウント（＋１）を行ない、その各値は図６に示すようにそれぞれ「ＸＡ＋１」，「ＹＡ＋１」になる。
その後、１ライン目と同様に、乗算器７４及び加算器７５によって画像メモリ６４の書き込みアドレスを算出し（（ＹＡ＋１）×乗数レジスタ７３の値＋（ＸＡ＋１））、そこに斜線の２ライン目のドットを描画させる。
【００５４】
以下、上述と同様の動作を繰り返し、副走査方向カウンタ７２の値が「ＹＢ」になると、コンパレータ７７に入力される２つの値が一致するため、そのコンパレータ７７がＣＰＵ６１に所定信号（ハイレベル信号）を出力して最終ラインの描画が終了したことを知らせ、斜線描画を終了させる。
【００５５】
その後、画像メモリ６４に１ページ分のビットマップデータが全て描画し終わると、ＣＰＵ６１がそのビットマップデータを読み出し、エンジンＩ／Ｆ６７を介してプリンタエンジン５３へ出力して印刷させる。
この実施形態によれば、画像メモリ６４に左上がりの斜線を高速に描画することができる。
【００５６】
次に、この発明の第１参考例について説明する。なお、そのハード構成は第１実施形態と略同様なので、再び図１〜図３を参照する。
この第１参考例において、第１実施形態と異なるところは、図１に示した斜線発生装置６５の主走査方向カウンタ７１をダウンカウンタによって構成したこと、及び斜線描画時の動作である。
【００５７】
主走査方向カウンタ７１は、図３のＣＰＵ６１からロードされる主走査方向の斜線描画開始アドレス（ＤＡＴＡ）を設定した後、クロック発生回路からの基準クロック信号（ＣＬＫ）に同期してダウンカウント（−１）を行ない、主走査方向の斜線描画アドレスを順次生成する。
次に、この第１参考例による斜線描画処理を図７に示す斜線を画像メモリ６４に描画する場合を例にとって説明する。
【００５８】
ＣＰＵ６１は、斜線発生装置６５の主走査方向カウンタ７１に主走査方向の斜線描画開始アドレス「ＸＣ」を、副走査方向カウンタ７２に副走査方向の斜線描画開始アドレス「ＹＣ」をそれぞれロードして設定させる。また、乗数レジスタ７３に主走査１ライン中のドット数を、コンパレータ７７に副走査方向の斜線描画終了アドレス「ＹＤ」をそれぞれロードして設定させる。
【００５９】
その後、斜線発生装置６５に対して斜線描画開始命令を発行すると、斜線発生装置６５内の乗算器７４が副走査方向カウンタ７２の値と乗数レジスタ７３の値との乗数を算出し、その値を加算器７５へ出力する。それによって、加算器７５は乗算器７４の値と主走査方向カウンタ７１の値との和を算出し（ＹＣ×乗数レジスタ７３の値＋ＸＣ）、その値を書き込みアドレスとしてセレクタ７６を介して画像メモリ６４に与え、そこに斜線の１ライン目のドットを描画させる。
【００６０】
その１ライン目の描画が終了すると、次の基準クロック信号（ＣＬＫ）に同期して主走査方向カウンタ７１がダウンカウント（−１）を、副走査方向カウンタ７２がアップカウント（＋１）をそれぞれ行ない、その各値は図７に示すようにそれぞれ「ＸＣ−１」，「ＹＣ＋１」になる。
その後、１ライン目と同様に、乗算器７４及び加算器７５によって画像メモリ６４の書き込みアドレスを算出し（（ＹＣ＋１）×乗数レジスタ７３の値＋（ＸＣ−１））、そのアドレスに２ライン目のドットを描画させる。
【００６１】
以下、上述と同様の動作を繰り返し、副走査方向カウンタ７２の値が「ＹＤ」になると、コンパレータ７７に入力される２つの値が一致するため、そのコンパレータ７７がＣＰＵ６１に所定信号（ハイレベル信号）を出力して最終ラインの描画が終了したことを知らせ、斜線描画を終了させる。
この第１参考例によれば、画像メモリ６４に右上がりの斜線を高速に描画することができる。
【００６２】
次に、この発明の第２実施形態について説明する。なお、そのハード構成は斜線発生装置を除いて前述の各実施形態と同様なので、再び図２及び図３を参照する。
この第２実施形態において、前述の第１実施形態及び第１参考例と異なるところは、斜線発生装置６５の構成及び斜線描画時の動作である。
【００６３】
図４は、図３の斜線発生装置６５の詳細を示すブロック構成図であり、図１と対応する部分には同一符号を付している。
この斜線発生装置６５は、図１と同様の各部に加えて、主走査方向幅カウンタ８１，主走査方向幅コンパレータ８２，主走査方向アドレス算出カウンタ８３，及びＡＮＤゲート８４を備えている。
【００６４】
主走査方向カウンタ７１は、主走査方向アドレス算出カウンタ８３からの主走査方向の斜線描画開始アドレス（ＤＡＴＡ）を設定した後、クロック発生回路からの基準クロック信号（ＣＬＫ）に同期してアップカウント（＋１）を行ない、主走査方向の斜線描画アドレスを順次生成する。
【００６５】
副走査方向カウンタ７２は、ＣＰＵ６１からロードされる副走査方向の斜線描画開始アドレス（ＤＡＴＡ）を設定した後、主走査方向幅コンパレータ８２からの同期信号に同期してアップカウント（＋１）を行ない、副走査方向の斜線描画アドレスを順次生成する。
コンパレータ７７は、ＣＰＵ６１からロードされる副走査方向の斜線描画終了アドレス（ＤＡＴＡ）を設定した後、その値と副走査方向カウンタ７２の値とが一致した時に一致信号を出力する。
【００６６】
主走査方向幅カウンタ８１は、クロック発生回路からの基準クロック信号（ＣＬＫ）に同期してアップカウント（＋１）を行ない、画像メモリ６４の主走査方向に描画されるドット幅を算出し、主走査方向幅コンパレータ８２からの同期信号が入力される度（画像メモリ６４の主走査方向への描画が行なわれる度）にカウント値（ドット幅）を「０」にリセットする。
【００６７】
主走査方向幅コンパレータ８２は、ＣＰＵ６１からロードされる画像メモリ６４に描画する主走査方向のドット幅（ＤＡＴＡ）を設定した後、そのドット幅と主走査方向幅カウンタ８１によって算出されたドット幅とが一致する毎に同期信号を出力する。
【００６８】
主走査方向アドレス算出カウンタ８３は、ＣＰＵ６１からロードされる主走査方向の斜線描画開始アドレス（ＤＡＴＡ）を設定して出力した後、主走査方向幅コンパレータ８２からの同期信号に同期してアップカウント（＋１）を行ない、副走査方向の次のラインにおける主走査方向の斜線描画開始アドレスを算出して出力する。
【００６９】
ＡＮＤゲート８４は、コンパレータ７７からの一致信号が入力され、且つ主走査方向幅コンパレータ８２からの同期信号が入力された時に、ＣＰＵ６１にインタラプト信号等の所定信号を出力して最終ラインの描画が終了したことを知らせ、斜線描画を終了させる。
次に、この実施形態による斜線描画処理を図８に示す斜線を画像メモリ６４に描画する場合を例にとって説明する。
【００７０】
ＣＰＵ６１は、図４に示した斜線発生装置６５の主走査方向アドレス算出カウンタ８３に主走査方向の斜線描画開始アドレス「ＸＥ」を、副走査方向カウンタ７２に副走査方向の斜線描画開始アドレス「ＹＥ」をそれぞれロードして設定させる。また、乗数レジスタ７３に主走査１ライン中のドット数を、主走査方向幅コンパレータ８２に画像メモリ６４に描画する主走査方向のドット幅「４」を、コンパレータ７７に副走査方向の斜線描画終了アドレス「ＹＧ」をそれぞれロードして設定させる。
【００７１】
その後、斜線発生装置６５に対して斜線描画開始命令を発行すると、斜線発生装置６５内の主走査方向アドレス算出カウンタ８３が初期値（設定値）を主走査方向カウンタ７１にロードして設定させる。また、乗算器７４が副走査方向カウンタ７２の値と乗数レジスタ７３の値との乗数を算出し、その値を加算器７５へ出力する。
【００７２】
それによって、加算器７５が乗算器７４の値と主走査方向カウンタ７１の値（主走査方向アドレス算出カウンタ８３の値）との和を算出し（ＹＥ×乗数レジスタ７３の値＋ＸＥ）、その値を書き込みアドレスとしてセレクタ７６を介して画像メモリ６４に与え、そこに斜線の１ライン目の最初のドットを描画させる。
【００７３】
その描画が終了すると、主走査方向カウンタ７１が次の基準クロック信号（ＣＬＫ）に同期してアップカウント（＋１）を行ない、その値は図８に示すように「ＸＥ＋１」になる。また、主走査方向幅カウンタ８１もアップカウント（＋１）を行ない、その値は「１」になる。
その後、上述と同様に、乗算器７４及び加算器７５で画像メモリ６４の書き込みアドレスを算出し（ＹＥ×乗数レジスタ７３の値＋（ＸＥ＋１））、そこに斜線の１ライン目の次のドットを描画させる。
【００７４】
以下、上述と同様の動作を繰り返し、主走査方向カウンタ７１の値が「ＸＦ」になり、主走査方向幅カウンタ８１の値が「４」になると、１ライン目最後のドットの描画を行なうと共に、主走査方向幅コンパレータ８２に入力される２つの値が一致する（１ライン目の描画が終了する）ため、その主走査方向幅コンパレータ８２が同期信号を出力する。
【００７５】
それによって、主走査方向アドレス算出カウンタ８３がアップカウント（＋１）を行ない、その値「ＸＥ＋１」を主走査方向カウンタ７１にロードして設定させる。また、副走査方向カウンタ７２もアップカウント（＋１）を行なうため、その値が「ＹＥ＋１」になる。さらに、主走査方向幅カウンタ８１がカウント値を「０」にリセットする。
【００７６】
その後、１ライン目と同様に、乗算器７４及び加算器７５によって画像メモリ６４の書き込みアドレスを算出し（（ＹＥ＋１）×乗数レジスタ７３の値＋（ＸＥ＋１））、そこに斜線の２ライン目の最初のドットを描画させる。
以下、上述と同様の動作を繰り返し、副走査方向カウンタ７２の値が「ＹＧ」になると、コンパレータ７７に入力される２つの値が一致するため、そのコンパレータ７７が一致信号を出力する。
【００７７】
さらに、主走査方向幅カウンタ８１の値が「４」になると、主走査方向幅コンパレータ８２から同期信号が出力されるため、ＡＮＤゲート８４がＣＰＵ６１に所定信号（ハイレベル信号）を出力して最終ラインの描画が終了したことを知らせ、斜線描画を終了させる。
この実施形態によれば、画像メモリ６４に主走査方向に任意の幅を持つ左上がりの斜線を高速に描画することができる。
【００７８】
次に、この発明の第２参考例について説明する。なお、そのハード構成は第２実施形態と略同様なので、再び図２〜図４を参照する。
この第２参考例において、第２実施形態と異なるところは、図４に示した斜線発生装置６５の主走査方向カウンタ７１及び主走査方向アドレス算出カウンタ８３をダウンカウンタによって構成したこと、及び斜線描画時の動作である。
【００７９】
主走査方向カウンタ７１は、主走査方向アドレス算出カウンタ８３からロードされる主走査方向の斜線描画開始アドレス（ＤＡＴＡ）を設定した後、クロック発生回路からの基準クロック信号（ＣＬＫ）に同期してダウンカウント（−１）を行ない、主走査方向の斜線描画アドレスを順次生成する。
【００８０】
主走査方向アドレス算出カウンタ８３は、ＣＰＵ６１からロードされる主走査方向の斜線描画開始アドレス（ＤＡＴＡ）を設定して出力した後、主走査方向幅コンパレータ８２からの同期信号に同期してダウンカウント（−１）を行ない、副走査方向の次のラインにおける主走査方向の斜線描画開始アドレスを算出して出力する。
【００８１】
次に、この第２参考例による斜線描画処理を図９に示す斜線を画像メモリ６４に描画する場合を例にとって説明する。
【００８２】
ＣＰＵ６１は、図４に示した斜線発生装置６５の主走査方向アドレス算出カウンタ８３に主走査方向の斜線描画開始アドレス「ＸＨ」を、副走査方向カウンタ７２に副走査方向の斜線描画開始アドレス「ＹＨ」をそれぞれロードして設定させる。また、乗数レジスタ７３に主走査１ライン中のドット数を、主走査方向幅コンパレータ８２に画像メモリ６４に描画する主走査方向のドット幅「４」を、コンパレータ７７に副走査方向の斜線描画終了アドレス「ＹＰ」をそれぞれロードして設定させる。
【００８３】
その後、斜線発生装置６５に対して斜線描画開始命令を発行すると、斜線発生装置６５内の主走査方向アドレス算出カウンタ８３が初期値（設定値）を主走査方向カウンタ７１にロードして設定させる。また、乗算器７４が副走査方向カウンタ７２の値と乗数レジスタ７３の値との乗数を算出し、その値を加算器７５へ出力する。
【００８４】
それによって、加算器７５が乗算器７４の値と主走査方向カウンタ７１の値（主走査方向アドレス算出カウンタ８３の値）との和を算出し（ＹＨ×乗数レジスタ７３の値＋ＸＨ）、その値を書き込みアドレスとしてセレクタ７６を介して画像メモリ６４に与え、そこに斜線の１ライン目の最初のドットを描画させる。
【００８５】
その描画が終了すると、主走査方向カウンタ７１が次の基準クロック信号（ＣＬＫ）に同期してダウンカウント（−１）を行ない、その値は図９に示すように「ＸＨ−１」になる。また、主走査方向幅カウンタ８１がアップカウント（＋１）を行ない、その値は「１」になる。
その後、上述と同様に、乗算器７４及び加算器７５によって画像メモリ６４の書き込みアドレスを算出し（ＹＨ×乗数レジスタ７３の値＋（ＸＨ−１））、そに斜線の１ライン目の次のドットを描画させる。
【００８６】
以下、上述と同様の動作を繰り返し、主走査方向カウンタ７１の値が「ＸＯ」になり、主走査方向幅カウンタ８１の値が「４」になると、１ライン目最後のドットの描画を行なうと共に、主走査方向幅コンパレータ８２に入力される２つの値が一致する（１ライン目の描画が終了する）ため、その主走査方向幅コンパレータ８２が同期信号を出力する。
【００８７】
それによって、主走査方向アドレス算出カウンタ８３がダウンカウント（−１）を行ない、その値「ＸＨ−１」を主走査方向カウンタ７１にロードして設定させる。また、副走査方向カウンタ７２がアップカウント（＋１）を行なうため、その値が「ＹＨ＋１」になる。さらに、主走査方向幅カウンタ８１がカウント値を「０」にリセットする。
【００８８】
その後、１ライン目と同様に、乗算器７４及び加算器７５によって画像メモリ６４の書き込みアドレスを算出し（（ＹＨ＋１）×乗数レジスタ７３の値＋（ＸＨ−１））、そこに斜線の２ライン目の最初のドットを描画させる。
以下、上述と同様の動作を繰り返し、副走査方向カウンタ７２の値が「ＹＰ」になると、コンパレータ７７に入力される２つの値が一致するため、そのコンパレータ７７が一致信号を出力する。
【００８９】
さらに、主走査方向幅カウンタ８１の値が「４」になると、主走査方向幅コンパレータ８２から同期信号が出力されるため、ＡＮＤゲート８４がＣＰＵ６１へ所定信号（ハイレベル信号）を出力して最終ラインの描画が終了したことを知らせ、斜線描画を終了させる。
この第２参考例によれば、画像メモリ６４に主走査方向に任意の幅を持つ右上がりの斜線を高速に描画することができる。
【００９０】
次に、この発明の第３実施形態について説明する。なお、そのハード構成は斜線発生装置を除いて前述の各実施形態及び各参考例と同様なので、再び図２及び図３を参照する。
この第３実施形態において、前述の各実施形態及び各参考例と異なるところは、斜線発生装置６５の構成及び斜線描画時の動作である。
【００９１】
図５は図３の斜線発生装置６５の詳細を示すブロック構成図であり、図４と対応する部分には同一符号を付している。
この斜線発生装置６５は、図４と同様の各部に加えて、副走査方向幅カウンタ９１，副走査方向幅コンパレータ９２を備えている。
【００９２】
主走査方向アドレス算出カウンタ８３は、ＣＰＵ６１からロードされる主走査方向の斜線描画開始アドレス（ＤＡＴＡ）を設定して出力した後、副走査方向幅コンパレータ９２からの同期信号に同期してアップカウント（＋１）を行ない、副走査方向の次のラインにおける主走査方向の斜線描画開始アドレスを算出して出力する。
【００９３】
副走査方向幅カウンタ９１は、主走査方向幅コンパレータ８２からの同期信号に同期してアップカウント（＋１）を行ない、画像メモリ６４の副走査方向に描画されるドット幅を算出し、副走査方向幅コンパレータ９２からの同期信号が入力される度（画像メモリ６４の副走査方向への描画が行なわれる度）にカウント値（ドット幅）を「０」にリセットする。
【００９４】
副走査方向幅コンパレータ９２は、ＣＰＵ６１からロードされる画像メモリ６４に描画する副走査方向のドット幅（ＤＡＴＡ）を設定した後、そのドット幅と副走査方向幅カウンタ９１によって算出されたドット幅とが一致する毎に同期信号を出力する。
次に、この実施形態による斜線描画処理を図１０に示す斜線を画像メモリ６４に描画する場合を例にとって説明する。
【００９５】
ＣＰＵ６１は、図５に示した斜線発生装置６５の主走査方向アドレス算出カウンタ８３に主走査方向の斜線描画開始アドレス「ＸＩ」を、副走査方向カウンタ７２に副走査方向の斜線描画開始アドレス「ＹＩ」をそれぞれロードして設定させる。また、乗数レジスタ７３に主走査１ライン中のドット数を、主走査方向幅コンパレータ８２に画像メモリ６４に描画する主走査方向のドット幅「３」を、副走査方向幅コンパレータ９２に画像メモリ６４に描画する副走査方向のドット幅「２」を、コンパレータ７７に副走査方向の斜線描画終了アドレス「ＹＫ」をそれぞれロードして設定させる。
【００９６】
その後、斜線発生装置６５に対して斜線描画開始命令を発行すると、斜線発生装置６５内の主走査方向アドレス算出カウンタ８３が初期値（設定値）を主走査方向カウンタ７１にロードして設定させる。また、乗算器７４が副走査方向カウンタ７２の値と乗数レジスタ７３の値との乗数を算出し、その値を加算器７５へ出力する。
【００９７】
それによって、加算器７５が乗算器７４の値と主走査方向カウンタ７１の値（主走査方向アドレス算出カウンタ８３の値）との和を算出し（ＹＩ×乗数レジスタ７３の値＋ＸＩ）、その値を書き込みアドレスとしてセレクタ７６を介して画像メモリ６４に与え、そこに斜線の１ライン目の最初のドットを描画させる。
【００９８】
その描画が終了すると、主走査方向カウンタ７１が次の基準クロック信号（ＣＬＫ）に同期してアップカウント（＋１）を行ない、その値は図１０に示すように「ＸＩ＋１」になる。また、主走査方向幅カウンタ８１もアップカウント（＋１）を行ない、その値は「１」になる。
その後、上述と同様に、乗算器７４及び加算器７５によって画像メモリ６４の書き込みアドレスを算出し（ＹＩ×乗数レジスタ７３の値＋（ＸＩ＋１））、そこに斜線の１ライン目の次のドットを描画させる。
【００９９】
以下、上述と同様の動作を繰り返し、主走査方向カウンタ７１の値が「ＸＪ」になり、主走査方向幅カウンタ８１の値が「３」になると、１ライン目最後のドットの描画を行なうと共に、主走査方向幅コンパレータ８２に入力される２つの値が一致する（１ライン目の描画が終了する）ため、その主走査方向幅コンパレータ８２が同期信号を出力する。
【０１００】
それによって、主走査方向カウンタ７１が主走査方向アドレス算出カウンタ８３の値「ＸＩ」を再設定する。また、副走査方向カウンタ７２がアップカウント（＋１）を行ない、その値が「ＹＪ」になる。さらに、副走査方向幅カウンタ９１もアップカウント（＋１）を行ない、そのカウント値が「１」になる。さらにまた、主走査方向幅カウンタ８１がカウント値を「０」にリセットする。
【０１０１】
その後、１ライン目と同様に、乗算器７４及び加算器７５によって画像メモリ６４の書き込みアドレスを算出し（ＹＪ×乗数レジスタ７３の値＋ＸＩ）、そこに斜線の２ライン目の最初のドットを描画させる。
【０１０２】
以下、上述と同様の動作を繰り返し、主走査方向カウンタ７１の値が「ＸＪ」になり、主走査方向幅カウンタ８１の値が「３」になると、２ライン目最後のドットの描画を行なうと共に、主走査方向幅コンパレータ８２に入力される２つの値が一致する（２ライン目の描画が終了する）ため、その主走査方向幅コンパレータ８２が同期信号を出力する。
【０１０３】
それによって、副走査方向カウンタ７２がアップカウント（＋１）を行ない、その値が「ＹＪ＋１」になる。また、副走査方向幅カウンタ９１もアップカウント（＋１）を行ない、そのカウント値が「２」になるため、副走査方向幅コンパレータ９２に入力される２つの値が一致し、その副走査方向幅コンパレータ９２は同期信号を出力する。さらに、主走査方向幅カウンタ８１がカウント値を「０」にリセットする。
【０１０４】
副走査方向幅コンパレータ９２から同期信号が出力されると、主走査方向アドレス算出カウンタ８３がアップカウント（＋１）を行ない、その値「ＸＩ＋１」を主走査方向カウンタ７１にロードして設定させる。また、副走査方向幅カウンタ９１がカウント値を「０」にリセットする。
【０１０５】
その後、１，２ライン目と同様に、乗算器７４及び加算器７５によって画像メモリ６４の書き込みアドレスを算出し（（ＹＪ＋１）×乗数レジスタ７３の値＋（ＸＩ＋１））、そこに斜線の３ライン目の最初のドットを描画させる。
以下、上述と同様の動作を繰り返し、副走査方向カウンタ７２の値が「ＹＫ」になると、コンパレータ７７に入力される２つの値が一致するため、そのコンパレータ７７が一致信号を出力する。
【０１０６】
さらに、主走査方向幅カウンタ８１の値が「３」になると、主走査方向幅コンパレータ８２から同期信号が出力されるため、ＡＮＤゲート８４がＣＰＵ６１に所定信号（ハイレベル信号）を出力して最終ラインの描画が終了したことを知らせ、斜線描画を終了させる。
この実施形態によれば、画像メモリ６４に主走査方向及び副走査方向に任意の幅を持ち、且つ任意の角度の左上がりの斜線を高速に描画することができる。
【０１０７】
次に、この発明の第３参考例について説明する。なお、そのハード構成は第３実施形態と略同様なので、再び図２，図３，及び図５を参照する。
この第３参考例において、第３実施形態と異なるところは、図５に示した斜線発生装置６５の主走査方向カウンタ７１及び主走査方向アドレス算出カウンタ８３をダウンカウンタによって構成したこと、及び斜線描画時の動作である。
【０１０８】
主走査方向カウンタ７１は、主走査方向アドレス算出カウンタ８３からロードされる主走査方向の斜線描画開始アドレス（ＤＡＴＡ）を設定した後、クロック発生回路からの基準クロック信号（ＣＬＫ）に同期してダウンカウント（−１）を行ない、主走査方向の斜線描画アドレスを順次生成する。
【０１０９】
主走査方向アドレス算出カウンタ８３は、ＣＰＵ６１からロードされる主走査方向の斜線描画開始アドレス（ＤＡＴＡ）を設定して出力した後、副走査方向幅コンパレータ９２からの同期信号に同期してダウンカウント（−１）を行ない、副走査方向の次のラインにおける主走査方向の斜線描画開始アドレスを算出して出力する。
【０１１０】
次に、この第３参考例による斜線描画処理を図１１に示す斜線を画像メモリ６４に描画する場合を例にとって説明する。
【０１１１】
ＣＰＵ６１は、図５に示した斜線発生装置６５の主走査方向アドレス算出カウンタ８３に主走査方向の斜線描画開始アドレス「ＸＬ」を、副走査方向カウンタ７２に副走査方向の斜線描画開始アドレス「ＹＬ」をそれぞれロードして設定させる。また、乗数レジスタ７３に主走査１ライン中のドット数を、主走査方向幅コンパレータ８２に画像メモリ６４に描画する主走査方向のドット幅「３」を、副走査方向幅コンパレータ９２に画像メモリ６４に描画する副走査方向のドット幅「２」を、コンパレータ７７に副走査方向の斜線描画終了アドレス「ＹＮ」をそれぞれロードして設定させる。
【０１１２】
その後、斜線発生装置６５に対して斜線描画開始命令を発行すると、斜線発生装置６５内の主走査方向アドレス算出カウンタ８３が初期値（設定値）を主走査方向カウンタ７１にロードして設定させる。また、乗算器７４が副走査方向カウンタ７２の値と乗数レジスタ７３の値との乗数を算出し、その値を加算器７５へ出力する。
【０１１３】
それによって、加算器７５が乗算器７４の値と主走査方向カウンタ７１の値（主走査方向アドレス算出カウンタ８３の値）との和を算出し（ＹＬ×乗数レジスタ７３の値＋ＸＬ）、その値を書き込みアドレスとしてセレクタ７６を介して画像メモリ６４に与え、そこに斜線の１ライン目の最初のドットを描画させる。
【０１１４】
その描画が終了すると、次の基準クロック信号（ＣＬＫ）に同期して主走査方向カウンタ７１がダウンカウント（−１）を行ない、その値は図１１に示すように「ＸＬ−１」になる。また、主走査方向幅カウンタ８１がアップカウント（＋１）を行ない、その値は「１」になる。
その後、上述と同様に、乗算器７４及び加算器７５によって画像メモリ６４の書き込みアドレスを算出し（ＹＬ×乗数レジスタ７３の値＋（ＸＬ−１））、そこに斜線の１ライン目の次のドットを描画させる。
【０１１５】
以下、上述と同様の動作を繰り返し、主走査方向カウンタ７１の値が「ＸＭ」になり、主走査方向幅カウンタ８１の値が「３」になると、１ライン目最後のドットの描画を行なうと共に、主走査方向幅コンパレータ８２に入力される２つの値が一致する（１ライン目の描画が終了する）ため、その主走査方向幅コンパレータ８２が同期信号を出力する。
【０１１６】
それによって、主走査方向カウンタ７１が主走査方向アドレス算出カウンタ８３の値「ＸＬ」を再設定する。また、副走査方向カウンタ７２がアップカウント（＋１）を行ない、その値が「ＹＭ」になる。さらに、副走査方向幅カウンタ９１もアップカウント（＋１）を行ない、そのカウント値が「１」になる。さらに、主走査方向幅カウンタ８１がカウント値を「０」にリセットする。
【０１１７】
その後、１ライン目と同様に、乗算器７４及び加算器７５によって画像メモリ６４の書き込みアドレスを算出し（ＹＭ×乗数レジスタ７３の値＋ＸＬ）、そこに斜線の２ライン目の最初のドットを描画させる。
【０１１８】
以下、上述と同様の動作を繰り返し、主走査方向カウンタ７１の値が「ＸＭ」になり、主走査方向幅カウンタ８１の値が「３」になると、２ライン目最後のドットの描画を行なうと共に、主走査方向幅コンパレータ８２に入力される２つの値が一致する（２ライン目の描画が終了する）ため、その主走査方向幅コンパレータ８２が同期信号を出力する。
【０１１９】
それによって、副走査方向カウンタ７２がアップカウント（＋１）を行ない、その値が「ＹＭ＋１」になる。また、副走査方向幅カウンタ９１もアップカウント（＋１）を行ない、そのカウント値が「２」になるため、副走査方向幅コンパレータ９２に入力される２つの値が一致し、その副走査方向幅コンパレータ９２は同期信号を出力する。さらに、主走査方向幅カウンタ８１がカウント値を「０」にリセットする。
【０１２０】
副走査方向幅コンパレータ９２から同期信号が出力されると、主走査方向アドレス算出カウンタ８３がダウンカウント（−１）を行ない、その値「ＸＬ−１」を主走査方向カウンタ７１にロードして設定させる。また、副走査方向幅カウンタ９１がカウント値を「０」にリセットする。
【０１２１】
その後、１，２ライン目と同様に、乗算器７４及び加算器７５によって画像メモリ６４の書き込みアドレスを算出し（（ＹＭ＋１）×乗数レジスタ７３の値＋（ＸＬ−１））、そこに斜線の３ライン目の最初のドットを描画させる。
以下、上述と同様の動作を繰り返し、副走査方向カウンタ７２の値が「ＹＮ」になると、コンパレータ７７に入力される２つの値が一致するため、そのコンパレータ７７が一致信号を出力する。
【０１２２】
さらに、主走査方向幅カウンタ８１の値が「３」になると、主走査方向幅コンパレータ８２から同期信号が出力されるため、ＡＮＤゲート８４がＣＰＵ６１に所定信号（ハイレベル信号）を出力して最終ラインの描画が終了したことを知らせ、斜線描画を終了させる。
この第３参考例によれば、画像メモリ６４に主走査方向及び副走査方向に任意の幅を持ち、且つ任意の角度の右上がりの斜線を高速に描画することができる。
【０１２３】
なお、第１参考例においては、主走査方向カウンタ７１をダウンカウンタによって、副走査方向カウンタ７２をアップカウンタによってそれぞれ構成したが、主走査方向カウンタ７１をアップカウンタによって、副走査方向カウンタ７２をダウンカウンタによって構成してもよい。
【０１２４】
また、第２参考例及び第３参考例においては、主走査方向カウンタ７１及び主走査方向アドレス算出カウンタ８３をダウンカウンタによって、副走査方向カウンタ７２をアップカウンタによってそれぞれ構成したが、主走査方向カウンタ７１及び主走査方向アドレス算出カウンタ８３をアップカウンタによって、副走査方向カウンタ７２をダウンカウンタによってそれぞれ構成してもよい。
【０１２５】
【発明の効果】
以上説明したように、この発明によれば、画像メモリに斜線を高速で描画することができる。
【図面の簡単な説明】
【図１】図３の斜線発生装置の詳細例を示すブロック構成図である。
【図２】この発明の第１実施形態である画像処理システムの構成例を示すブロック図である。
【図３】図２のプリンタコントローラ（画像描画装置）の構成例を示すブロック図である。
【図４】この発明の第２実施形態における斜線発生装置の詳細例を示すブロック構成図である。
【図５】この発明の第３実施形態における斜線発生装置の詳細例を示すブロック構成図である。
【図６】図１に示した斜線発生装置によって発生される斜線の一例を示す図である。
【図７】この発明の第１参考例における斜線発生装置によって発生される斜線の一例を示す図である。
【図８】図４に示した斜線発生装置によって発生される斜線の一例を示す図である。
【図９】この発明の第２参考例における斜線発生装置によって発生される斜線の一例を示す図である。
【図１０】図５に示した斜線発生装置によって発生される斜線の一例を示す図である。
【図１１】この発明の第３参考例における斜線発生装置によって発生される斜線の一例を示す図である。
【図１２】従来の情報処理システムを機能的に示すブロック構成図である。
【図１３】図１２の画像描画制御装置の詳細例を示すブロック構成図である。
【図１４】図１３のＦＩＦＯからオペレーションコントローラに取り込まれる各データの構成例を示す説明図である。
【図１５】図１２のＣＰＵによる画像メモリをクリアする際の処理の流れを示すフロー図である。
【図１６】同じく画像メモリに下地部を描画する際の処理の流れを示すフロー図である。
【符号の説明】
５１：ホストコンピュータ
５２：プリンタコントローラ（画像描画装置）
５３：プリンタエンジン    ６１：中央処理装置
６２：ＲＯＭ              ６３：ＲＡＭ
６４：画像メモリ          ６５：斜線発生装置
７１：主走査方向カウンタ  ７２：副走査方向カウンタ
７３：乗数レジスタ        ７４：乗算器
７５：加算器              ７６：セレクタ
７７：コンパレータ        ８１：主走査方向幅カウンタ
８２：主走査方向幅コンパレータ
８３：主走査方向アドレス算出カウンタ
８４：ＡＮＤゲート        ９１：副走査方向幅カウンタ
９２：副走査方向幅コンパレータ
【図１】
0003571119.tif 000002
【図２】
0003571119.tif 000003
【図３】
0003571119.tif 000004
【図４】
0003571119.tif 000005
【図５】
0003571119.tif 000006
【図６】
0003571119.tif 000007
【図７】
0003571119.tif 000008
【図８】
0003571119.tif 000009
【図９】
0003571119.tif 000010
【図１０】
0003571119.tif 000011
【図１１】
0003571119.tif 000012
【図１２】
0003571119.tif 000013
【図１３】
0003571119.tif 000014
【図１４】
0003571119.tif 000015
【図１５】
0003571119.tif 000016
【図１６】
0003571119.tif 000017