(57)【特許請求の範囲】
【請求項１】
外部装置からのデータに基づいて画像出力を行う画像出力装置であって、
画像に含まれるオフセット量を入力する入力手段と、
複数の所定サイズのメモリ単位から構成されるページメモリを含む記憶手段と、
前記画像の端部と、前記ページメモリにおけるメモリ単位間の境界との差分を検知する検知手段と、
該検知手段により検知した差分と前記オフセット量とから、前記画像を前記メモリ単位間の境界に合致させるシフト量を算出する算出手段と、
前記画像データを、前記算出手段により算出した量分シフトするシフト手段と、
該シフト手段によりシフトされた画像データを、前記ページメモリに格納する画像格納手段と、
該画像格納手段により格納された画像を出力する出力手段と、
を具備することを特徴とする画像出力装置。
【請求項２】
前記オフセット量は、所望の画像領域を指定した際に、該画像領域から不可分の領域として指定領域に含まれている画像の量であることを特徴とする請求項１に記載の印刷装置。
【請求項３】
前記画像出力手段は、記録紙上に画像を印刷出力することを特徴とする請求項１に記載の画像出力装置。
【請求項４】
複数の所定サイズのメモリ単位からなる画像メモリに格納された所望の画像領域を指定する指定手段と、
該指定手段により指定された領域と、該領域を含む最小の前記メモリ単位からなる領域との第１の差分を検知する第１の検知手段と、
複数の所定サイズのメモリ単位から構成されるページメモリを含む記憶手段と、
前記ページメモリ上の所望の位置を指定する入力する位置指定手段と、
該位置指定手段により指定された位置と、前記メモリ単位間の境界との第２の差分を検知する第２の検知手段と、
前記第１の差分と前記第２の差分とから、前記画像を前記指定位置に格納するためのシフト量を算出する算出手段と、
前記画像データを、前記算出手段により算出した量分シフトするシフト手段と、
該シフト手段によりシフトされた画像を出力する出力手段と、
を具備することを特徴とする画像出力装置。
【請求項５】
前記画像出力手段は、画像を印刷出力することを特徴とする請求項４に記載の画像出力装置。
【請求項６】
前記画像を回転変換する変換手段を更に備え、前記シフト手段は、回転の角度が９０°回転でなく、かつ２７０°回転でない場合に、シフトを行なうことを特徴とする請求項４または５に記載の画像出力装置。
【請求項７】
外部装置からのデータに基づいて画像出力を行う画像出力方法であって、画像に含まれるオフセット量を入力する入力工程と、
複数の所定サイズのメモリ単位から構成されるページメモリにおけるメモリ単位間の境界と画像の端部との差分を検知する検知工程と、
該検知工程により検知した差分と前記オフセット量とから、前記画像を前記メモリ単位間の境界に合致させるシフト量を算出する算出工程と、
前記画像データを、前記算出工程により算出した量分シフトするシフト工程と、
該シフト工程によりシフトされた画像データを、前記ページメモリに格納する画像格納工程と、
該画像格納工程により格納された画像を出力する出力工程と、
を具備することを特徴とする画像出力方法。
【請求項８】
前記オフセット量は、所望の画像領域を指定した際に、該画像領域から不可分の領域として指定領域に含まれている画像の量であることを特徴とする請求項７に記載の画像出力方法。
【請求項９】
前記画像出力工程は、記録紙上に画像を印刷出力することを特徴とする請求項７に記載の画像出力方法。
【請求項１０】
複数の所定サイズのメモリ単位からなる画像メモリに格納された所望の画像領域を指定する指定工程と、
該指定工程により指定された領域と、該領域を含む最小の前記メモリ単位からなる領域との第１の差分を検知する第１の検知工程と、
複数の所定サイズのメモリ単位から構成されるページメモリ上の所望の位置を指定する入力する位置指定工程と、
該位置指定工程により指定された位置と、前記メモリ単位間の境界との第２の差分を検知する第２の検知工程と、
前記第１の差分と前記第２の差分とから、前記画像を前記指定位置に格納するためのシフト量を算出する算出工程と、
前記画像データを、前記算出工程により算出した量分シフトするシフト工程と、
該シフト工程によりシフトされた画像を出力する出力工程と、
を具備することを特徴とする画像出力方法。
【請求項１１】
前記画像出力工程は、画像を印刷出力することを特徴とする請求項１０に記載の画像出力方法。
【請求項１２】
前記画像を回転変換する変換工程を更に備え、前記シフト工程は、回転の角度が９０°回転でなく、かつ２７０°回転でない場合に、シフトを行なうことを特徴とする請求項１０または１１に記載の画像出力方法。
【請求項１３】
ホスト装置とそれに接続された印刷装置とを含む印刷システムであって、
前記ホスト装置は、複数の所定サイズのメモリ単位からなる画像メモリに格納された所望の画像領域を指定する領域指定手段と、
該領域指定手段により指定された領域と該領域を含む最小の前記メモリ単位からなる領域との第１の差分を検知する第１の検知手段と、
前記第１の差分と前記画像とを前記印刷装置に送信する送信手段とを備え、
前記印刷装置は、複数の所定サイズのメモリ単位から構成されるページメモリを含む記憶手段と、
ホスト装置より受信した画像の端部と、前記ページメモリにおけるメモリ単位間の境界との第２の差分を検知する検知手段と、
該検知手段により検知した第２の差分と、前記ホスト装置より受信した第１の差分とから、前記画像を前記メモリ単位間の境界に合致させるシフト量を算出する算出手段と、
前記画像データを、前記算出手段により算出した量分シフトするシフト手段と、
該シフト手段によりシフトされた画像を出力する出力手段とを備えることを特徴とする印刷システム。
【請求項１４】
ホスト装置とそれに接続された印刷装置とを含む印刷システムであって、
前記ホスト装置は、複数の所定サイズのメモリ単位からなる画像メモリに格納された所望の画像領域を指定する領域指定手段と、
該領域指定手段により指定された領域と該領域を含む最小の前記メモリ単位からなる領域との第１の差分を検知する第１の検知手段と、
前記領域指定手段により指定された画像領域を記録媒体上において記録するその位置を前記印刷装置に送信する位置送信手段と、
前記印刷装置から第２の差分を受信する受信手段と、
前記第１の差分と前記第２の差分とから前記画像を前記指定位置に格納するためのシフト量を算出する算出手段と、
前記画像を前記算出手段により算出したシフト量分シフトするシフト手段と、
該シフト手段によりシフトされた画像を印刷装置に送信する画像送信手段とを備え、
前記印刷装置は、複数の所定サイズのメモリ単位から構成されるページメモリを含む記憶手段と、
前記位置送信手段により受信した位置と前記メモリ単位間の境界との第２の差分を検知する第２の検知手段と、
前記第２の差分を前記ホスト装置に送信する差分送信手段と、
前記ホスト装置より受信した画像を出力する出力手段とを備えることを特徴とする印刷システム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、例えば外部装置からの印刷情報を印刷等により出力する画像出力装置及びおよび方法および印刷システムに関するものである。
【０００２】
【従来の技術】
画像データには文字データや図形データなどの様々なデータがあるが、これらのうち、画像の色情報や濃淡をビットに対応させた画像データをイメージデータまたは単にイメージと呼び、イメージを形成している画素の単位、即ち最小単位をピクセルと呼ぶ。また、イメージには幅と高さがあり、高さを１とした単位量、即ち１ライン分をラスタという。
【０００３】
近年のアプリケーションソフトウェアでは、ディスプレイ上でイメージを任意の大きさに拡大したり、イメージの任意の部分のみを切り出す等の加工が容易に行なえるようになっている。
【０００４】
従来、ディスプレイ上で任意の大きさに拡大したイメージを印刷するには、拡大後のイメージデータをホストコンピュータ側で生成し、印刷装置に転送する方法があった。ホストコンピュータ側で生成されたイメージデータはメモリに格納されるが、メモリには通常バイト（８ビット）やワードといったバウンダリがある為、メモリから切り出されたイメージデータはバウンダリの先頭から格納されるとは限らず、ラスタの先頭がバウンダリから外れた場合には、不必要なデータ（ビット）が混入するため、この不必要なデータ（ビット）をホストコンピュータ側でシフトして取り除き、そののち印刷装置に転送していた。
【０００５】
また、任意の部分を切り出されたイメージについては、データ転送量を減らすため加工前のイメージデータから、切り出された部分以外の不必要な部分をバウンダリ単位で切り捨て、必要なイメージデータと同じバウンダリに混入した不必要なピクセルについては、左にシフトすることによってラスタの左側の不必要なデータをすべて切り捨ててから印刷装置に転送していた。
【０００６】
【発明が解決しようとする課題】
しかしながら、上記従来例では、印刷装置側で最終的にページメモリと呼ばれるメモリに画像形成する際、イメージデータはページメモリ上の指定された描画位置に展開されるが、ページメモリにも上述のようなバウンダリが存在する為、描画位置に応じてデータを再度シフトしなければならなかった。
【０００７】
つまり、印刷装置に転送する際にホストコンピュータ側でラスタ全体をシフトし、ページメモリへの展開のために再度ラスタを全体にシフトしているために、重複するシフト処理が発生し、一連の印刷の処理速度に悪影響を与えていた。
【０００８】
本発明は、上記従来例に鑑みて成されたものであり、従来ホストコンピュータ側でシフトしていたピクセル数と、ページメモリへの展開のためにシフトが必要なピクセル数とを予め比較し、両者の差分から一連の印刷処理の中で必要最低限のシフトピクセル数を検知し、ホストコンピュータもしくは印刷装置内において、検出したピクセル数分だけシフトを行なうことによってシフト処理の重複を無くし、高速な印刷装置及び印刷シフトを提供することを目的とする。
【０００９】
【課題を解決するための手段】および
【作用】
上記目的を達成するために本発明に係る画像出力装置は次のような構成からなる。すなわち、
外部装置からのデータに基づいて画像出力を行う画像出力装置であって、
画像に含まれるオフセット量を入力する入力手段と、
複数の所定サイズのメモリ単位から構成されるページメモリを含む記憶手段と、
前記画像の端部と、前記ページメモリにおけるメモリ単位間の境界との差分を検知する検知手段と、
該検知手段により検知した差分と前記オフセット量とから、前記画像を前記メモリ単位間の境界に合致させるシフト量を算出する算出手段と、
前記画像データを、前記算出手段により算出した量分シフトするシフト手段と、
該シフト手段によりシフトされた画像データを、前記ページメモリに格納する画像格納手段と、
該画像格納手段により格納された画像を出力する出力手段とを具備する。
【００１１】
あるいは、本発明の画像出力装置は次のような構成からなる。すなわち、
複数の所定サイズのメモリ単位からなる画像メモリに格納された所望の画像領域を指定する指定手段と、
該指定手段により指定された領域と、該領域を含む最小の前記メモリ単位からなる領域との第１の差分を検知する第１の検知手段と、
複数の所定サイズのメモリ単位から構成されるページメモリを含む記憶手段と、
前記ページメモリ上の所望の位置を指定する入力する位置指定手段と、
該位置指定手段により指定された位置と、前記メモリ単位間の境界との第２の差分を検知する第２の検知手段と、
前記第１の差分と前記第２の差分とから、前記画像を前記指定位置に格納するためのシフト量を算出する算出手段と、
前記画像データを、前記算出手段により算出した量分シフトするシフト手段と、
該シフト手段によりシフトされた画像を出力する出力手段とを具備する。
【００１２】
あるいは、本発明の画像出力方法は次のような構成からなる。すなわち、
外部装置からのデータに基づいて画像出力を行う画像出力方法であって、
画像に含まれるオフセット量を入力する入力工程と、
複数の所定サイズのメモリ単位から構成されるページメモリにおけるメモリ単位間の境界と画像の端部との差分を検知する検知工程と、
該検知工程により検知した差分と前記オフセット量とから、前記画像を前記メモリ単位間の境界に合致させるシフト量を算出する算出工程と、
前記画像データを、前記算出工程により算出した量分シフトするシフト工程と、
該シフト工程によりシフトされた画像データを、前記ページメモリに格納する画像格納工程と、
該画像格納工程により格納された画像を出力する出力工程とを具備する。
【００１４】
あるいは、本発明の画像出力方法は次のような構成からなる。すなわち、
複数の所定サイズのメモリ単位からなる画像メモリに格納された所望の画像領域を指定する指定工程と、
該指定工程により指定された領域と、該領域を含む最小の前記メモリ単位からなる領域との第１の差分を検知する第１の検知工程と、
複数の所定サイズのメモリ単位から構成されるページメモリ上の所望の位置を指定する入力する位置指定工程と、
該位置指定工程により指定された位置と、前記メモリ単位間の境界との第２の差分を検知する第２の検知工程と、
前記第１の差分と前記第２の差分とから、前記画像を前記指定位置に格納するためのシフト量を算出する算出工程と、
前記画像データを、前記算出工程により算出した量分シフトするシフト工程と、
該シフト工程によりシフトされた画像を出力する出力工程とを具備する。
【００１５】
あるいは、本発明の印刷システムは次のような構成からなる。すなわち、
ホスト装置とそれに接続された印刷装置とを含む印刷システムであって、
前記ホスト装置は、複数の所定サイズのメモリ単位からなる画像メモリに格納された所望の画像領域を指定する領域指定手段と、該領域指定手段により指定された領域と該領域を含む最小の前記メモリ単位からなる領域との第１の差分を検知する第１の検知手段と、前記第１の差分と前記画像とを前記印刷装置に送信する送信手段とを備え、
前記印刷装置は、複数の所定サイズのメモリ単位から構成されるページメモリを含む記憶手段と、ホスト装置より受信した画像の端部と、前記ページメモリにおけるメモリ単位間の境界との第２の差分を検知する検知手段と、該検知手段により検知した第２の差分と、前記ホスト装置より受信した第１の差分とから、前記画像を前記メモリ単位間の境界に合致させるシフト量を算出する算出手段と、前記画像データを、前記算出手段により算出した量分シフトするシフト手段と、
該シフト手段によりシフトされた画像を出力する出力手段とを備える。
【００１６】
あるいは、本発明の印刷システムは次のような構成からなる。すなわち、
ホスト装置とそれに接続された印刷装置とを含む印刷システムであって、
前記ホスト装置は、複数の所定サイズのメモリ単位からなる画像メモリに格納された所望の画像領域を指定する領域指定手段と、該領域指定手段により指定された領域と該領域を含む最小の前記メモリ単位からなる領域との第１の差分を検知する第１の検知手段と、前記領域指定手段により指定された画像領域を記録媒体上において記録するその位置を前記印刷装置に送信する位置送信手段と、前記印刷装置から第２の差分を受信する受信手段と、前記第１の差分と前記第２の差分とから前記画像を前記指定位置に格納するためのシフト量を算出する算出手段と、前記画像を前記算出手段により算出したシフト量分シフトするシフト手段と、該シフト手段によりシフトされた画像を印刷装置に送信する画像送信手段とを備え、
前記印刷装置は、複数の所定サイズのメモリ単位から構成されるページメモリを含む記憶手段と、前記位置送信手段により受信した位置と前記メモリ単位間の境界との第２の差分を検知する第２の検知手段と、前記第２の差分を前記ホスト装置に送信する差分送信手段と、前記ホスト装置より受信した画像を出力する出力手段とを備える。
【００１７】
【実施例】
（実施例１）
本実施例の構成を説明する前に、本実施例を適用するに好適なレーザビームプリンタ（以下「ＬＢＰ」と記述）の構成について図１を参照しながら説明する。なお、本実施例を適用するプリンタは、レーザビームプリンタに限られるものではなく、他のプリント方式のプリンタでも良いことは言うまでもない。
【００１８】
以下、図面を参照して本発明の実施例を詳細に説明する。
【００１９】
図１は、本実施例に適用されるレーザビームプリンタの内部構造を示す断面図で、このＬＢＰは不図示のデータ源から文字パターンの登録や定型書式（フォームデータ）などの登録が行なえる。
【００２０】
同図において、１０００はＬＢＰ本体であり、外部に接続されているホストコンピュータから供給される文字情報（文字コード）やフォーム情報あるいはマクロ命令などを入力して記憶するとともに、それらの情報に従って対応する文字パターンやフォームパターンなどを作成し、記録媒体である記録紙上に像を形成する。１０１２は操作のためのスイッチ及びＬＥＤ表示器などが配されている操作パネル、１００１はＬＢＰ１０００全体の制御を行うとともに、ホストコンピュータから供給される文字情報などを解析するプリンタ制御ユニットである。この制御ユニット１００１は主に文字情報を対応する文字パターンのビデオ信号に変換してレーザドライバ１００２に出力する。レーザドライバ１００２は半導体レーザ１００３を駆動するための回路であり、入力されたビデオ信号に応じて半導体レーザ１００３から発射されるレーザ光１００４をオンオフ切り替えする。
【００２１】
レーザ１００４は回転多面鏡１００５で左右方向に振られ静電ドラム１００６上を走査する。これにより、静電ドラム１００６上には文字パターンの静電潜像が形成される。この潜像は、静電ドラム１００６周囲の現像ユニット１００７により現像された後、記録紙に転送される。この記録紙にはカットシートを用い、カットシート記録紙はＬＢＰ１０００に装着した用紙カセット１００８に収納され、給紙ローラ１００９及び搬送ローラ１０１０と１０１１とにより装置内に取り込まれて、静電ドラム１００６に供給される。
【００２２】
図２は、本実施例の印刷装置の構成を示すブロック図である。
【００２３】
図２において、２０００は印刷装置１０００に接続されたホストコンピュータであり、プリントデータ及び制御コードから成る印刷情報を印刷装置１０００に出力するものである。印刷装置１０００は、大きく分けてフォーマッタ制御部１１００、インタフェース１２００、出力制御部１３００、プリンタエンジン部１４００より構成される。フォーマッタ制御部１１００は、受信バッファ１１０１、コマンド判別部１１０２、コマンド解析部１１０３、コマンド実行部１１０４、ページメモリ１１０５、シフト数検知部１１０６、シフト実行部１１０７より構成されている。受信バッファ１１０１は、ホストコンピュータ２０００から受信した印刷情報を一時的に保持する記憶手段である。コマンド判別部１１０２は、各印刷制御コマンドの判別を行なうものであり、印刷制御コマンドがイメージ描画命令以外であれば、印刷データはそのままコマンド解析部１１０３において解析され、コマンド実行部１１０４において実行される。コマンド判別部１１０２において、印刷制御コマンドがイメージ描画命令であると判別された場合、そのパラメータをコマンド解析部１１０３において解析した後、ページメモリのバウンダリから外れたピクセル数をシフト数検知部１１０６において検知する。シフト数検知部１１０６は、ページメモリに展開した場合の描画位置及びページメモリのバウンダリを検出し、バウンダリから外れるピクセル数を検知するものである。
【００２４】
シフト数検知部１１０６において検知されたピクセル数は、コマンド解析部１１０３に通知され、シフト実行部１１０７においてイメージデータのシフトが行なわれる。シフト実行部１１０７は、コマンド解析部１１０３から渡されたピクセル数分だけ、イメージデータをラスタごとにシフトするものである。コマンド解析部１１０３は各印刷制御コマンドの解析を行なうものである。コマンド解析部１１０３で解析されたコマンドは、印刷データの解析を行った中間的な結果であり、コマンド実行部１１０４においてより処理しやすい形式の中間コードの形に変換される。コマンド実行部１１０４では、この中間コードによって各コマンドを実行し、描画及び印字に関するコマンドはページメモリ１１０５に逐次展開されてい行く。
【００２５】
一方、コマンド解析部１１０３において単純ビットマップであると判定された場合は、イメージデータはそのままページメモリ１１０５に展開される。なお一般的なフォーマッタ制御部１１００は、ＣＰＵ、ＲＯＭ、ＲＡＭなどを用いたコンピュータシステムによって構成されている。出力制御部１３００は、ページメモリ１１０５の内容をビデオ信号に変換処理し、プリンタエンジン部１４００へ画像転送を行なう。プリンタエンジン部１４００は受け取ったビデオ信号を記録紙に永久可視画像を形成するための印刷機構部であり、図１に示したような構成となっている。
【００２６】
次に、このように構成された印刷装置において、本実施例における全体の印刷制御処理手順を図３，図４，図５に示すフローチャートを参照しながら説明する。図３におけるＳ３０１〜Ｓ３０４、図４におけるＳ４０１〜Ｓ４１１、図５におけるＳ５０１〜Ｓ５０７は各処理ステップを示す。
【００２７】
図３は印刷装置１０００の動作の開始から終了までのメイン処理を示している。
【００２８】
まずステップＳ３０１でホストコンピュータ２０００から送られてくる印刷データの受け取りを行ない、受信バッファ１１０１に格納する。次にステップＳ３０２で受信バッファに格納された印刷データを読み出し、次にステップＳ３０３で描画処理を行なう。その後、ステップＳ３０４で印刷終了命令を受け取ったか否か、または印刷データが終了したか否かを判断し、印刷終了であれば印刷動作を終了する。印刷終了でなければステップＳ３０１からの処理を繰り返す。
【００２９】
図４は、図３のステップＳ３０３にあたる描画処理を示している。この処理は実際に印刷処理を行なう処理である。
【００３０】
まずステップＳ４０１において、コマンド解析部１１０３でデータが排紙命令かどうかをチェックし、排紙命令の場合はステップＳ４０６に進み処理を行なう。また、ステップＳ４０１において排紙命令でない場合は、次に解析したコマンドが文字印字または図形描画などページメモリへの展開処理のコマンドかどうかを判別し（ステップＳ４０２）、そうでない場合はステップＳ４０５に進み、そのコマンドをただちに実行する。また、ステップＳ４０２からステップＳ４０９に進んだ場合は、ステップＳ４０９で受信した印刷制御コマンドがイメージ描画命令か否かを判断する。もしイメージ描画命令でない場合にはステップＳ４０３に進み、イメージ描画命令である場合には続いてオフセット指定があるか否かを判断する（ステップＳ４１０）。ここでオフセットとは、イメージデータのうち、描画すべきデータの左側に混入した不用なピクセルの数であり、イメージ描画命令のパラメータとして与えられるものである。もしオフセット指定がない場合にはステップＳ４０３に進み、オフセット指定がある場合にはステップＳ４１１においてオフセット処理を行なう。ステップＳ４１１に進んだ場合も、その後ステップＳ４０３に進む。ステップＳ４０３では、コマンド実行処理がしやすい形の中間コードを生成する。この中間コードを受けて、コマンド実行部１１０４では、ページメモリ１１０５への展開処理を行ない（ステップＳ４０４）、展開処理終了後は図３のステップＳ３０２に戻り、データの解析処理を繰り返す。
【００３１】
一方、ステップＳ４０１において排紙命令と判断された場合は、出力制御部１３００においてページメモリ１１０５の内容をプリンタエンジン部１４００に対するビデオ信号に変換して画像転送を出力する（ステップＳ４０６）。プリンタエンジン部１４００では、受け取ったビデオ信号を記録紙に永久可視画像形成し印刷を行なう（ステップＳ４０７）。そしてステップＳ４０８で印刷された結果を排紙すると１ページ当たりの印刷制御処理を終了する。
【００３２】
図５は図４で用いたオフセット処理を示している。この処理はイメージデータのシフトを行なう処理である。
【００３３】
まずステップＳ５０１でイメージ描画命令のパラメータ（オフセットを含む）を読み込み、ステップＳ５０２において、ページメモリ上に展開した時のイメージデータの描画位置とページメモリのバウンダリを比較する。次にステップＳ５０３でページメモリのバウンダリから外れるピクセル数を検出し、ステップＳ５０４に進む。ステップＳ５０４では、検出したピクセル数と指定されたオフセット値とを比較し、両者の差分からシフトが必要なピクセル数を算出する（ステップＳ５０５）。その後、ステップＳ５０６で算出したピクセル数が０か否かを判断し、もし０ならば、すなわちイメージデータに対してシフトを全く行なわずにそのままページメモリに展開すれば、ページメモリのバウンダリと一致する場合であるので、そのまま処理を終了する。
【００３４】
一方、ステップＳ５０６でシフトピクセルが０でない場合にはステップＳ５０７において全ラスタに対してシフトを行った後、処理を終了する。
【００３５】
図１１に画像データの例が示されている。アプリケーションによって指定された画像は（１１ａ）の領域ｄであっても、それが格納されているメモリのバウンダリと指定した領域の端部とが一致していない場合には、バウンダリまで、余分な領域ａを含めて指定画像を切り取ることになる。この余分な領域ａがオフセットである。
【００３６】
以上、印刷装置全体の動きを説明したが、これらの処理はフォーマッタ制御部１１００のコンピュータシステムによって実現される。
【００３７】
本実施例の様なプリンタを用いて２値画像を印刷出力することで、ホストにおける画像データのシフトとプリンタにおける画像データのシフトという２度手間を省くことができ、高速な印刷出力を実現することができる。
【００３８】
（実施例２）
図６は本発明の実施例を示すプリンタ制御システムの構成を説明するブロック図である。ここでは、レーザビームプリンタ（図１）を例にして説明する。なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、ＬＡＮ等のネットワークを介して処理が行なわれるシステムであっても本発明を適用できることは言うまでもない。
【００３９】
図６において、３０００はホストコンピュータで、ＲＯＭ３のプログラム用ＲＯＭに記憶された文書処理プログラム等に基づいて図形，イメージ，文字，表（表計算等を含む）等が混在した文書処理を実行するＣＰＵ１を備え、システムバス４に接続される各デバイスをＣＰＵ１が総括的に制御する。また、このＲＯＭ３のプログラム用ＲＯＭには、ＣＰＵ１の制御プログラム等を記憶し、ＲＯＭ３のフォント用ＲＯＭには上記文書処理の際に使用するフォントデータ等を記憶し、ＲＯＭ３のデータ用ＲＯＭは上記文書処理等を行なう際に使用する各種データを記憶する。
【００４０】
２はＲＡＭで、ＣＰＵ１の主メモリ，ワークエリア等として機能する。５はキーボードコントローラ（ＫＢＣ）で、キーボード９や不図示のポインティングデバイスからのキー入力を制御する。６はＣＲＴコントローラ（ＣＲＴＣ）で、ＣＲＴディスプレイ（ＣＲＴ）１０の表示を制御する。７はメモリコントローラ（ＭＣ）で、ブートプログラム，種々のアプリケーション，フォントデータ，ユーザファイル，編集ファイル等を記憶するハードディスク（ＨＤ）、フロッピーディスク（ＦＤ）等の外部メモリ１１とのアクセスを制御する。８はプリンタコントローラ（ＰＲＴＣ）で、所定の双方向性インタフェース（インタフェース）２１を介してプリンタ１０００に接続されて、プリンタ１０００との通信制御処理を実行する。なお、ＣＰＵ１は、例えばＲＡＭ２に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ１０上でのＷＹＳＩＷＹＧを可能としている。また、ＣＰＵ１は、ＣＲＴ１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。
【００４１】
プリンタ１０００においては、１２はプリンタＣＰＵで、ＲＯＭ１３のプログラム用ＲＯＭに記憶された制御プログラム等或いは外部メモリ１４に記憶された制御プログラム等に基づいてシステムバス１５に接続される各種のデバイスとのアクセスを総括的に制御し、印刷部インタフェース１６を介して接続される印刷部（プリンタエンジン）１７に出力情報としての画像信号を出力する。また、このＲＯＭ１３のプログラムＲＯＭには、実施例１のフローチャートで示されるようなＣＰＵ１２の制御プログラム等を記憶しても良い。ＲＯＭ１３のフォント用ＲＯＭには上記出力情報を生成する際に使用するフォントデータ等を記憶し、ＲＯＭ１３のデータ用ＲＯＭには、ハードディスクやＩＣカード等の外部メモリ１４が無いプリンタの場合には、ホストコンピュータ上で利用される情報等を記憶している。ＣＰＵ１２は入力部１８を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ３０００に通知可能に構成されている。
【００４２】
１９はＣＰＵ１２の主メモリ、ワークエリア等として機能するＲＡＭで、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。なお、ＲＡＭ１９は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。前述したハードディスク（ＨＤ）、ＩＣカード等の外部メモリ１４は、メモリコントローラ（ＭＣ）２０によりアクセスを制御される。外部メモリ１４は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、１８は前述した操作パネルで操作のためのスイッチ及びＬＥＤ表示器等が配されている。また、前述した外部メモリは１個に限らず、少なくとも１個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていても良い。さらに、図示しないＮＶＲＡＭを有し、操作パネル１０１２からのプリンタモード設定情報を記憶するようにしても良い。
【００４３】
図７は、本実施例の印刷装置の構成を、機能ブロックにより示すブロック図である。
【００４４】
図７において、２０００は印刷装置１０００に接続されたホストコンピュータであり、プリントデータ及び制御コードから成る印刷情報を印刷装置１０００に出力するものである。印刷装置１０００は、大きく分けてフォーマッタ制御部１１００、双方向インタフェース１２００、出力制御部１３００、プリンタエンジン部１４００より構成されている。フォーマッタ制御部１１００は、受信バッファ１１０１、コマンド判別部１１０２、コマンド解析部１１０３、コマンド実行部１１０４、ページメモリ１１０５、シフト数検知部１１０６より構成されている。受信バッファ１１０１は、ホストコンピュータ２０００から受信した印刷情報を一時的に保持する記憶手段である。コマンド判別部１１０２は、各印刷制御コマンドの判別を行なうものであり、印刷制御コマンドがシフト数要求命令以外であれば、印刷データはそのままコマンド解析部１１０３において解析され、コマンド実行部１１０４において実行される。コマンド判別部１１０２において、印刷制御コマンドがシフト数要求命令であると判別された場合、そのパラメータをコマンド解析部１１０３において解析した後、ページメモリのバウンダリから外れたピクセル数をシフト数検知部１１０６において検知する。
【００４５】
シフト数検知部１１０６は、ページメモリに展開した場合の描画位置及びページメモリのバウンダリを検出し、バウンダリから外れるピクセル数を検知するものである。シフト数検知部１１０６において検知されたピクセル数は、コマンド解析部１１０３に通知され、コマンド解析部１１０３から双方向インタフェース１２００を通じてホストコンピュータ２０００に転送される。コマンド解析部１１０３は各印刷制御コマンドの解析を行なうものである。コマンド解析部１１０３で解析されたコマンドは、印刷データの解析を行なった中間的な結果でありコマンド実行部１１０４においてより処理しやすい形式の中間コードの形に変換される。コマンド実行部１１０４では、この中間コードによって各コマンドを実行し、描画及び印字に関するコマンドはページメモリ１１０５に逐次展開されて行く。
【００４６】
一方、データ形式判定部１１０６において単純ビットマップであると判定された場合は、イメージデータはそのままページメモリ１１０５に展開される。なお一般的には、フォーマッタ制御部１１００は、ＣＰＵ、ＲＯＭ、ＲＡＭなどを用いたコンピュータシステムによって構成されている。出力制御部１３００は、ページメモリ１１０５の内容をビデオ信号に変換処理し、プリンタエンジン部１４００へ画像転送を行なう。プリンタエンジン部１４００は受け取ったビデオ信号を記録紙に永久可視画像形成するための印刷機構部である。
【００４７】
次に、このように構成された印刷装置において、本実施例における全体の印刷制御処理手段を図８，図９，図１０，図１２，図１３に示すフローチャートを参照しながら説明する。図８におけるＳ８０１〜Ｓ８０６、図９におけるＳ９０１〜Ｓ９０４、図１０におけるＳ１００１〜Ｓ１００８、図１２におけるＳ１２０１〜Ｓ１２０８、図１３におけるＳ１３０１〜Ｓ１３０３は各処理ステップを示す。
【００４８】
図８は印刷装置１０００の動作の開始から終了までのメイン処理を示している。
【００４９】
まずステップＳ８０１でホストコンピュータ２０００から送られてくる印刷データの受け取りを行ない、受信バッファ１１０１に格納する。次にステップＳ８０２で受信バッファに格納された印刷データを読み出し、ステップＳ８０３でコマンド判別部１１０２において印刷制御コマンドがシフト数要求命令か否かを判別する。もしシフト数要求命令であれば、ステップＳ８０４に進み、シフト数通知処理を行なった後、ステップＳ８０５で描画処理を行なう。ステップＳ８０３でシフト数要求命令以外の印刷制御コマンドであった場合には、直接ステップＳ８０５の描画処理に進む。描画処理を行なった後、ステップＳ８０６で印刷終了命令を受け取ったか否か、または印刷データが終了したか否かを判断し、印刷終了であれば印刷動作を終了する。印刷終了でなければステップＳ８０１からの処理を繰り返す。
【００５０】
図９は、図８のステップＳ８０４にあたるシフト数通知処理を示している。この処理はページメモリへの展開時にシフトされるピクセル数をホストコンピュータに通知する処理である。
【００５１】
まず、ステップＳ９０１でシフト数要求命令のパラメータを読み込み、描画位置を検知する。次にステップＳ９０２において描画位置とページメモリのバウンダリを比較し、ステップＳ９０３でバウンダリから外れるピクセル数を検出する。その後、ステップＳ９０４において、Ｓ９０３で検出されたピクセル数をホストコンピュータに通知し、処理を終了する。
【００５２】
図１０は図８で用いた描画処理を示している。この処理は実際に印刷処理を行なう処理である。
【００５３】
まずステップＳ１００１において、コマンド解析部１１０３でデータが排紙命令かどうかをチェックし、排紙命令の場合はステップＳ１００６に進み処理を行なう。また、ステップＳ１００１において排紙命令でない場合は、次に解析したコマンドが文字印字又は図形描画などページメモリへの展開処理のコマンドかどうかを判別し（ステップＳ１００２）、そうでない場合はステップＳ１００５に進み、そのコマンドを直ちに実行する。また、ステップＳ１００２からステップＳ１００３に進んだ場合は、コマンド実行処理がしやすい形の中間コードを生成する。この中間コードを受けて、コマンド実行部１１０４では、ページメモリ１１０５への展開処理を行ない（ステップＳ１００４）、展開処理終了後は図８のステップＳ８０２に戻り、データの解析処理を繰り返す。
【００５４】
ステップＳ１００１において排紙命令と判断された場合は、出力制御部１３００においてページメモリ１１０５の内容をプリンタエンジン部１４００に対するビデオ信号に変換して画像転送出力する（ステップＳ１００６）。プリンタエンジン部１４００では、受け取ったビデオ信号を記録紙に永久可視画像形成し印刷を行なう（ステップＳ１００７）。そしてステップＳ１００８で印刷された結果を排紙すると１ページ当たりの印刷制御処理は終了する。
【００５５】
以上、印刷装置の動きを説明したが、これらの処理はフォーマッタ制御部１１００のコンピュータシステムによって実現される。
【００５６】
図１２は、ホストコンピュータ２０００の印刷動作の開始から終了までのメイン処理を示している。
【００５７】
まずステップＳ１２０１でアプリケーションから描画データを受け取り、ステップＳ１２０２で描画データがイメージデータか否かを判断し、もしイメージデータでなければステップＳ１２０５に進んで直ちに印刷制御コマンドに変換する。
【００５８】
一方、イメージデータである場合には、さらにオフセットがあるか否か、すなわち、受け取ったイメージデータの各ラスタの左側に不用なピクセルが混入しているか否かを判断し（ステップＳ１２０３）、オフセットがなければステップＳ１２０５に進み、オフセットがある場合にはステップＳ１２０４に進んでオフセット処理を行なう。ステップＳ１２０４でオフセット処理が終了すれば、その後ステップＳ１２０５に進む。ステップＳ１２０５ではアプリケーションから受け取った描画データを印刷制御コマンドに変換し、ステップＳ１２０６に進んで印刷制御コマンドを印刷装置へ転送する。その後、ステップＳ１２０７においてアプリケーションからの描画データが終了したか否かを判断し、終了であれば処理を終了し、終了でなければステップＳ１２０１からの処理を繰り返す。
【００５９】
図１３は、図１２のステップＳ１２０４に当たるオフセット処理を行なうものである。
【００６０】
まずステップＳ１３０１で印刷装置にシフト数要求命令を転送する。その後、ステップＳ１３０２で印刷装置からの応答が返ってきたか否かを判定し、返ってきていなければ応答があるまでステップＳ１３０２の判定を繰り返す。ステップＳ１３０２において印刷装置からの応答が返ってきたならば、ステップＳ１３０３に進む。ステップＳ１３０３では、印刷装置から通知されたシフト数と、イメージデータのオフセットとの差分からシフトが必要なピクセル数を算出する。その後、ステップＳ１３０４に進むと算出したピクセル分だけ全ラスタに対してシフト処理を行ない、処理を終了する。
【００６１】
次に、本実施例におけるシフト数通知処理の具体例を図１１を参照しながら説明する。図１１に於いては、ａはアプリケーションから渡されたイメージデータに混入した不用ピクセル（オフセット）であり、イメージの切りだしや変倍に伴って生じたバウンダリからのずれなどである。ｂはイメージを展開するページメモリのバウンダリから外れたピクセル、ｃはシフトする必要のあるピクセル、ｄは描画したいイメージデータ、ｐはページメモリのバイトバウンダリである。
【００６２】
まず、アプリケーションからは（１１ａ）のように、描画したいピクセルｄに、不用ピクセルａが混入したイメージデータが渡される。もし、このイメージデータに対してシフトを行なわずに、描画位置に合わせてそのまま印刷装置のページメモリに展開すると、（１１ｂ）のようになる。（１１ｂ）では実際に描画したいイメージデータの左端は、ページメモリのバウンダリｐからｂだけ右にずれているので、結局、ｃ（＝ａ−ｂ）だけシフトすれば良いことになる。本実施例では、ホストコンピュータからシフト数要求命令が印刷装置に送られると、印刷装置がバウンダリからの外れ量ｂをホストコンピュータに通知し、それを受けてホストコンピュータ側では全ラスタに対してｃだけ左にシフトを行なう。その結果、（１１ｃ）のようなイメージデータとなる。その後、イメージ描画命令によってイメージデータを印刷装置に転送する。印刷装置では、受信したデータに対してページメモリのバウンダリを気にすることなく、ページメモリへの展開を行なう。展開した結果、（１１ｄ）のようにページメモリのバウンダリとイメージデータの左端が一致するため、印刷装置内においては一切のシフト処理を行なわずにページメモリへの展開が可能となるのである。
【００６３】
（実施例３）
図１５は、実施例２における図６のプログラムＲＯＭ３によって実現される、本実施例におけるフローチャートであり、実施例２における図１２のフローチャートのステップＳ１２０４に当たるオフセット処理の一実施例である。本実施例において、動作開始から終了までのメイン処理は図１２のフローチャートで表されるものであるので、それについての説明は省略する。図１５におけるＳ１５０１〜Ｓ１５０６は各処理ステップを示す。
【００６４】
まずステップＳ１５０１においてイメージデータを直交回転させる必要があるか否かを判定する。なお、ここでいう直交回転とは、９０°，１８０°，２７０°回転のことであり、直交回転させるか否かは、アプリケーションからの情報によって決定されるものである。直交回転が必要であれば、ステップＳ１５０２に進み、必要でなければステップＳ１５０３に進む。ステップＳ１５０２に進んだ場合は、さらに９０°回転または２７０°回転であるか否かを判断し、９０°回転又は２７０°回転であればシフト処理を行なわずにそのまま処理を終了する。
【００６５】
一方、９０°又は２７０°回転でない場合にはステップＳ１５０３に進む。ステップＳ１５０３では印刷装置にシフト数要求命令を転送し、ステップＳ１５０４において印刷装置の応答を待つ。印刷装置からの応答があるまでステップＳ１５０４を繰り返し、応答があればステップＳ１５０５に進み、印刷装置から通知されたシフト数と、イメージデータのオフセットとの差分からシフトが必要なピクセル数を算出する。その後、ステップＳ１５０６に進むと算出したピクセル分だけ全ラスタに対してシフト処理を行ない処理を終了する。
【００６６】
印刷装置の側では、画像データと共に直交回転を行う旨のパラメータを受信し、画像を回転させて印刷出力する。
【００６７】
図１４は、本実施例における９０°回転又は２７０°回転時のイメージデータの処理の具体例である。図１４において、ａはオフセット、ｄは描画したいイメージデータである。（１４ａ）は９０°回転処理を行なった場合のイメージデータである。９０°回転の場合、各ラスタは印刷装置の主走査方向に対して直角になり、（１４ａ）のイメージを描画するには、印刷装置内でｄの部分を上から主走査方向に読み込んでゆき、ｄの部分の描画が終わったら、最後にａのオフセット部を最後まで読み飛ばす。（１４ｂ）は２７０°回転処理を行なった場合のイメージデータである。２７０°回転の場合も、各ラスタは印刷装置の主走査方向に対して直角になり、（１４ｂ）のイメージを描画するには、最初のａのオフセット部を読み飛ばし、その後、ｄの部分を上から主走査方向に読み込んで描画してゆく。つまり、（１４ａ）の場合も、（１４ｂ）の場合も、オフセットａをシフトする替わりに読み飛ばして描画を行なう。
【００６８】
このように画像データのシフトを行うことで、画像の直交回転処理を含む場合には、シフト処理を完全に省くことができる。
【００６９】
【他の実施例】
実施例１では、ページメモリのバウンダリから外れるピクセル数と、指定されたオフセットの差分から算出したピクセル数分、必ずラスタ全体をシフトしていたが、算出したピクセル数をビットに換算した場合にバイトバウンダリと一致している場合には、シフトではなく読み飛ばし処理に切替えてもよい。
【００７０】
さらに、上記算出したビット数がバイトバウンダリよりも大きい場合には、バイト単位で読み飛ばしを行ない、残りのビットに対してシフト処理を行なうことも出来る。
【００７１】
実施例２では、印刷装置から通知される情報はページメモリのバウンダリから外れるピクセル数であり、実際にシフトが必要なピクセル数はホストコンピュータ側で算出しているが、シフト数要求命令のパラメータにオフセットを指定し、印刷装置内部において実際にシフトが必要なピクセル数を計算し、これをホストコンピュータに通知しても良い。
【００７２】
実施例３では、９０°，２７０°回転時にはアプリケーションから受け取ったイメージデータをそのまま印刷装置に転送していたが、ホストコンピュータ側で回転処理を行なう場合には、ホストコンピュータ側でオフセット分の各ラスタを読み飛ばしてもよい。
【００７３】
また、実施例２、実施例３では、ホストコンピュータはシフト数要求命令を印刷装置に転送した後、印刷装置からの応答があるまで他の処理を中断しているが、応答を待っている間、イメージ描画以外の他のコマンドの処理を先に行ってもよい。
【００７４】
また、実施例１、実施例２、実施例３では、オフセットのピクセルを必要最低限シフトされたあと、残った不用ピクセルをそのままページメモリに展開していたが、アプリケーションプログラムから受け取ったイメージデータの不用ピクセルが白ピクセルではなく、任意の濃度又は色である場合には、シフトを行なう前もしくはシフトを行なった後に、残った不用ピクセルを白ピクセルに書き換える処理を加えても良い。
【００７５】
また、実施例１、実施例２では、必要なシフトピクセル数はページメモリのバウンダリとイメージの不用ピクセル数によって決定したが、ページメモリの内容をビデオ信号によって可視形成する際にも通常ビデオ信号のバウンダリが存在する場合には、予めビデオ信号のバウンダリも含めてシフトを行なってもよい。
【００７６】
尚、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器から成る装置に適用しても良い。また、本発明はシステム或は装置にプログラムを供給することによって達成される場合にも適用できることはいうまでもない。
【００７７】
【発明の効果】
以上説明した様に、本発明に係る画像出力装置および方法および印刷システムによれば、指定された画像に含まれる、その画像領域と本来対象となる画像との差分と、出力する際のページメモリに格納する際に生ずるメモリ単位の境界と差分との量差分を合計してまとめて画像のシフトを行うことで、画像をシフトする回数を減らし、高速に画像を出力することができる。
【００７８】
【図面の簡単な説明】
【図１】実施例１のレーザビームプリンタの構造を示す側断面図である。
【図２】実施例１による印刷装置の基本構成を示すブロック図である。
【図３】実施例１の印刷制御手順を示すフローチャートである。
【図４】図３に示した描画処理の手順を示すフローチャートである。
【図５】図４に示したオフセット処理の手順を示すフローチャートである。
【図６】実施例２によるプリンタ制御システムの構成を示すブロック図である。
【図７】実施例２による印刷装置の基本構成を示すブロック図である。
【図８】実施例２による印刷装置側の印刷制御手順を示すフローチャートである。
【図９】図８に示したシフト数通知処理の手順を示すフローチャートである。
【図１０】図８に示した描画処理の手順を示すフローチャートである。
【図１１】実施例２におけるイメージ描画の具体例を示す図である。
【図１２】実施例２によるホストコンピュータ側の印刷制御手順を示すフローチャートである。
【図１３】図１２に示したオフセット処理の手順を示すフローチャートである。
【図１４】実施例３におけるオフセット処理の具体例を示す図である。
【図１５】実施例３によるオフセット処理の手順を示すフローチャートである。
【符号の説明】
１  ＣＰＵ
２  ＲＡＭ
３  ＲＯＭ
４  システムバス
５  ＫＢＣ
６  ＣＲＴＣ
７  ＭＣ
８  ＰＲＴＣ
９  ＫＢ
１０  ＣＲＴ
１１  外部メモリ
１２  ＣＰＵ
１３  ＲＯＭ
１４  外部メモリ
１５  システムバス
１６  印刷部インタフェース
１７  印刷部
１８  入力部
１９  ＲＡＭ
２０  ＭＣ
【図１】
0003576622.tif 000002
【図２】
0003576622.tif 000003
【図３】
0003576622.tif 000004
【図４】
0003576622.tif 000005
【図５】
0003576622.tif 000006
【図６】
0003576622.tif 000007
【図７】
0003576622.tif 000008
【図８】
0003576622.tif 000009
【図９】
0003576622.tif 000010
【図１０】
0003576622.tif 000011
【図１１】
0003576622.tif 000012
【図１２】
0003576622.tif 000013
【図１３】
0003576622.tif 000014
【図１４】
0003576622.tif 000015
【図１５】
0003576622.tif 000016