(57)【特許請求の範囲】
【請求項１】
１バンドの画像を格納するバンドバッファと、
前記バンドバッファに格納された画像を用紙の複数位置における副走査方向の補正量に基づき補正する画像補正手段と、
前記画像補正手段により補正されたバンド領域からはみ出る画像を格納する第１の中間バッファと、
前記第１の中間バッファに格納された前記画像補正手段により補正されたバンド領域からはみ出る画像を第２の中間バッファにコピーし、次のバンドの画像を前記バンドバッファに格納し、前記画像補正手段により前記バンドバッファに格納された次のバンドの画像を用紙の複数位置における副走査方向の補正量に基づき補正し、次のバンドの前記画像補正手段により補正されたバンド領域からはみ出ない画像が格納されているバンドバッファに前記第２の中間バッファに格納された前のバンドのバンド領域からはみ出た部分の画像を格納し、前記バンドバッファに格納された次のバンドの前記画像補正手段により補正されたバンド領域からはみ出ない画像と前のバンドのバンド領域からはみ出た部分の画像を含む画像を出力する画像出力手段とを有することを特徴とする印刷制御装置。
【請求項２】
前記補正手段が行う補正の量は、色毎に異なることを特徴とする請求項１記載の印刷制御装置。
【請求項３】
前記画像出力手段は、最後のバンドの画像出力の後に、前記第２の中間バッファに格納された画像を出力することを特徴とする請求項１記載の印刷制御装置。
【請求項４】
前記画像補正手段は、前記バンドバッファに格納された画像を用紙の左端、中央、右端における副走査方向の補正量に基づき補正することを特徴とする請求項１記載の印刷制御装置。
【請求項５】
前記画像補正手段が行う補正の量は、両面印刷の表面と裏面で異なることを特徴とする請求項１記載の印刷制御装置。
【請求項６】
前記画像補正手段は、用紙の左端の副走査方向補正量をＬ、用紙の中央の副走査方向補正量をＭ、用紙の右端の副走査方向補正量をＲ、主走査方向の位置をＸ、用紙の幅をＷとした場合、主走査方向の画素位置において副走査方向補正量Ｚを２（Ｒ＋Ｌ−２Ｍ）（Ｘ／Ｗ）２＋（Ｒ−Ｌ）（Ｘ／Ｗ）＋Ｍで計算し、計算された副走査方向補正量Ｚに基づき、前記バンドバッファに格納された画像を補正することを特徴とする請求項１記載の印刷制御装置。
【請求項７】
前記画像補正手段は、現在のバイトのデータの補正位置がバンド内か判定し、現在のバイトのデータの補正位置がバンド内であると判定された場合、現在のバイトのデータを前記バンドバッファにコピーし、現在のバイトのデータの補正位置がバンド内でないと判定された場合、現在のバイトのデータを前記第１の中間バッファにコピーすることを特徴とする請求項１記載の印刷制御装置。
【請求項８】
１バンドの画像をバンドバッファに格納する第１格納ステップと、
前記バンドバッファに格納された画像を用紙の複数位置における副走査方向の補正量に基づき補正する画像補正ステップと、
前記画像補正ステップにより補正されたバンド領域からはみ出る画像を第１の中間バッファに格納する第２格納ステップと、
前記第１の中間バッファに格納された前記画像補正ステップにより補正されたバンド領域からはみ出る画像を第２の中間バッファにコピーし、次のバンドの画像を前記バンドバッファに格納し、前記画像補正ステップにより前記バンドバッファに格納された次のバンドの画像を用紙の複数位置における副走査方向の補正量に基づき補正し、次のバンドの前記画像補正ステップにより補正されたバンド領域からはみ出ない画像が格納されているバンドバッファに前記第２の中間バッファに格納された前のバンドのバンド領域からはみ出た部分の画像を格納し、前記バンドバッファに格納された次のバンドの前記画像補正ステップにより補正されたバンド領域からはみ出ない画像と前のバンドのバンド領域からはみ出た部分の画像を含む画像を出力する画像出力ステップとを有することを特徴とする印刷制御方法。
【請求項９】
前記画像補正ステップは、前記バンドバッファに格納された画像を用紙の左端、中央、右端における副走査方向の補正量に基づき補正することを特徴とする請求項８記載の印刷制御方法。
【請求項１０】
前記画像出力ステップは、最後のバンドの画像出力の後に、前記第２の中間バッファに格納された画像を出力することを特徴とする請求項８記載の印刷制御方法。
【請求項１１】
前記画像補正ステップは、前記バンドバッファに格納された画像を用紙の左端、中央、右端における副走査方向の補正量に基づき補正することを特徴とする請求項８記載の印刷制御方法。
【請求項１２】
前記画像補正ステップが行う補正の量は、両面印刷の表面と裏面で異なることを特徴とする請求項８記載の印刷制御方法。
【請求項１３】
前記画像補正ステップは、用紙の左端の副走査方向補正量をＬ、用紙の中央の副走査方向補正量をＭ、用紙の右端の副走査方向補正量をＲ、主走査方向の位置をＸ、用紙の幅をＷとした場合、主走査方向の画素位置において副走査方向補正量Ｚを２（Ｒ＋Ｌ−２Ｍ）（Ｘ／Ｗ）２＋（Ｒ−Ｌ）（Ｘ／Ｗ）＋Ｍで計算し、計算された副走査方向補正量Ｚに基づき、前記バンドバッファに格納された画像を補正することを特徴とする請求項８記載の印刷制御方法。
【請求項１４】
請求項８乃至１３いずれかに記載の印刷制御方法をコンピュータに実行させるプログラム。
【請求項１５】
請求項８乃至１３いずれかに記載の印刷制御方法をコンピュータに実行させるプログラムを記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタエンジンのずれを補正して印刷を行う印刷制御装置、印刷制御方法、プログラム、及び記憶媒体に関する。
【背景技術】
【０００２】
タンデム式カラープリンタにおいては、色毎に異なる感光体を用いるため、色ずれが発生する。従来、色ずれの補正、特に副走査方向の曲がり・傾きの補正はミラーの調整等光学的な方法により行っている。
【０００３】
特許文献１では、画像の送信タイミングを制御することにより色ずれ補正を行う方法が提案されている。しかしながらこの方法によれば、主走査位置に応じて補正量を変化させることができないため、副走査方向の曲がり・傾きを補正することができない。
【０００４】
また、特許文献２では、３つ以上のバンドバッファを使用して、読み出し位置を変化させることにより、副走査方向の曲がり・傾きを補正する方法が提案されている。しかしながらこの方法によれば、３つ以上のバンドバッファが必要であるとともに、主走査位置に応じて変化する補正量にしたがって読み出し位置を変化させる複雑なハードウェアを必要とする。
【特許文献１】特開平１０−２４３２４８号公報
【特許文献２】特開２００１−３８９６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、光学的調整を行うことなく、また特殊なハードウェアを使用することなしに、最低限のバンドバッファを使用して、副走査方向の曲がり・傾きを補正して印刷を実行させることにある。
【課題を解決するための手段】
【０００６】
上述の問題点を解決するために、本発明の印刷制御装置では、
１バンドの画像を格納するバンドバッファと、
前記バンドバッファに格納された画像を用紙の複数位置における副走査方向の補正量に基づき補正する画像補正手段と、
前記画像補正手段により補正されたバンド領域からはみ出る画像を格納する第１の中間バッファと、
前記第１の中間バッファに格納された前記画像補正手段により補正されたバンド領域からはみ出る画像を第２の中間バッファにコピーし、次のバンドの画像を前記バンドバッファに格納し、前記画像補正手段により前記バンドバッファに格納された次のバンドの画像を用紙の複数位置における副走査方向の補正量に基づき補正し、次のバンドの前記画像補正手段により補正されたバンド領域からはみ出ない画像が格納されているバンドバッファに前記第２の中間バッファに格納された前のバンドのバンド領域からはみ出た部分の画像を格納し、前記バンドバッファに格納された次のバンドの前記画像補正手段により補正されたバンド領域からはみ出ない画像と前のバンドのバンド領域からはみ出た部分の画像を含む画像を出力する画像出力手段とを有することを特徴とする。
【０００７】
また、本発明の印刷制御方法では、
１バンドの画像をバンドバッファに格納する第１格納ステップと、
前記バンドバッファに格納された画像を用紙の複数位置における副走査方向の補正量に基づき補正する画像補正ステップと、
前記画像補正ステップにより補正されたバンド領域からはみ出る画像を第１の中間バッファに格納する第２格納ステップと、
前記第１の中間バッファに格納された前記画像補正ステップにより補正されたバンド領域からはみ出る画像を第２の中間バッファにコピーし、次のバンドの画像を前記バンドバッファに格納し、前記画像補正ステップにより前記バンドバッファに格納された次のバンドの画像を用紙の複数位置における副走査方向の補正量に基づき補正し、次のバンドの前記画像補正ステップにより補正されたバンド領域からはみ出ない画像が格納されているバンドバッファに前記第２の中間バッファに格納された前のバンドのバンド領域からはみ出た部分の画像を格納し、前記バンドバッファに格納された次のバンドの前記画像補正ステップにより補正されたバンド領域からはみ出ない画像と前のバンドのバンド領域からはみ出た部分の画像を含む画像を出力する画像出力ステップとを有することを特徴とする。
【発明の効果】
【０００８】
以上に示すように、４色１組のバンドバッファ、４色１組の中間バッファ１、および一時的な１色１組の中間バッファ２を使用することにより、特別なハードウェアを用意することなく、副走査方向の色ずれ補正を行って印刷を実行させることができる。
【発明を実施するための最良の形態】
【０００９】
〔第１実施形態〕
図１は本発明装置の構成を示すブロック図である。図中、１はコンピュータであり、ＣＰＵ、メモリ、ハードディスク、ＣＤＲＯＭドライブ、キーボード、マウス、モニタ、ネットワークインタフェース等のハードウェアを備える。図７は、コンピュータの構成を示すブロック図である。
【００１０】
図４において、コンピュータは、入力制御部７００、ディスプレイ部７０１、ネットワークインタフェース部７０２、ＣＰＵ７０３、ＲＯＭ７０４、ＲＡＭ７０５、ＨＤＤ７０６、入出力インタフェース７０７を備えている。
【００１１】
上記各部は入出力インタフェース７０７を介して接続されている。入力制御部７００は、ユーザから入力を受け付けるキーボード／マウスを制御する。ディスプレイ部７０１は、ユーザに出力画面（モニタ）を提供する。ネットワークインタフェース部７０２は、ネットワーク１０１を介して外部機器と通信を行う。ＣＰＵ７０３は、コンピュータ各部の制御を司るものであり、該コンピュータがサーバコンピュータ１０２の場合は、ＲＯＭ７０４またはＨＤＤ７０６に格納された図３、５に示す制御プログラムに基づきコンピュータ側の処理を実行する。ＲＯＭ７０４は、制御プログラム及びデータを格納している。ＲＡＭ７０５は、一時記憶領域や作業領域として使用される。ＨＤＤ７０６は、大容量の記憶領域を備えており、制御プログラム及び各種データを記憶する。
【００１２】
２はオペレーティングシステムであり、コンピュータ１が備えるハードウェア、およびアプリケーション３、プリンタドライバ４、ランゲージモニタ５、ネットワークポートドライバ６などのソフトウェアを管理する。
【００１３】
アプリケーション３は、例えばワードプロセッサのようなアプリケーションソフトウェアであり、操作者の指示に従って文書の作成・印刷などを行う。
【００１４】
４はプリンタドライバであり、アプリケーション３が発行した印刷指令をオペレーティングシステム２を経て受け取り、該印刷指令をランゲージモニタ５、およびプリンタ７が解釈可能なプリンタコマンドに変換する。
【００１５】
５はランゲージモニタであり、プリンタドライバ４が出力したプリンタコマンドを受け取り、ネットワークポートドライバ６を経由してプリンタ７に送信する。ランゲージモニタ５はまた、プリンタ７からネットワークポートドライバ６を経由して受信した濃度補正情報、および色ずれ補正情報をプリンタドライバ４に通知する。
【００１６】
６はネットワークポートドライバである。ネットワークポートドライバ６は、ランゲージモニタ５が出力したプリンタコマンドをネットワークインタフェースを経てプリンタ７に送信するとともに、プリンタ７から濃度補正情報、および色ずれ補正情報を受信した場合にはランゲージモニタ５に出力する。
【００１７】
７はプリンタであり、ネットワークポートドライバ６から受信したプリンタコマンドに従って印刷を行う。
【００１８】
図２はプリンタ７の構成を示すブロック図である。図中、２１はネットワークインタフェースであり、コンピュータ１からプリンタコマンドを受信する。２２はＦＩＦＯ（ファーストインファーストアウト）メモリであり、ネットワークインタフェース２１から受信した画像データを色毎に格納する。復号回路２３は、ＦＩＦＯメモリ２２に記憶された色毎の画像データを復号し、プリンタエンジン２４に出力する。プリンタエンジン２４は、レーザビームプリンタエンジンであり、制御回路２５の指示により、復号回路２３が出力した画像データに従って印刷を行う。２５は制御回路であり、例えば１チップＣＰＵで構成され、ネットワークインタフェース２１、ＦＩＦＯメモリ２２、復号回路２３およびプリンタエンジン２４の制御を行う。
【００１９】
以下、印刷動作について説明する。
【００２０】
操作者がコンピュータ１側でアプリケーション３を操作して印刷を指示すると、アプリケーション３からオペレーティングシステム２を経由してプリンタドライバ４に印刷指令が渡される。プリンタドライバ４はアプリケーション３から発行された印刷指令に基づき、画像データに変換して圧縮し、圧縮した画像データを、用紙サイズ、左余白、上余白、ビットマップデータのラインの長さとライン数などを指定するページ開始コマンド、ページの終了を示すページ終了コマンドとともに出力する。
【００２１】
プリンタコマンドが出力されると、オペレーティングシステム２はランゲージモニタ５にジョブ開始を通知した後に、出力されたプリンタコマンドを順次ランゲージモニタ５に引き渡す。ランゲージモニタ５は、ジョブが開始されると、占有要求コマンドをプリンタ７に送信する。
【００２２】
ランゲージモニタ５はプリンタの占有に成功すると、受け取ったプリンタコマンドを順次プリンタ７に送信する。なおランゲージモニタ５は画像データコマンドをプリンタ７に送信する前に、ステータス要求コマンドを送信し、プリンタ７のステータスを取得して、画像データコマンドが送信可能であることを確認する。制御回路２５は、画像データコマンドを受信すると、画像データをＦＩＦＯメモリ２２に格納する。ランゲージモニタ５は、１ページのプリンタコマンドを送信し終えると、印刷要求コマンドを送信する。制御回路２５は、印刷要求コマンドを受信すると、プリンタエンジン２４に対して印刷開始を指示する。
【００２３】
プリンタエンジン２４は印刷開始を指示されると、給紙を行い、用紙が所定の位置に達したときに画像データの出力を要求する。画像データの出力が要求されると、復号回路２３はＦＩＦＯメモリ２２から圧縮された画像を読み出し、復号した元の画像データをプリンタエンジン２４に出力する。このときＦＩＦＯメモリ２２から読み出された画像データは、ＦＩＦＯメモリ２２から取り除かれる。
【００２４】
このようにしてジョブの全ページのプリンタコマンドを転送し終えると、ランゲージモニタ５は排紙完了を待たずに占有解除コマンドを送信する。ランゲージモニタ５はまた、占有解除コマンドを送信した後もプリンタ７のステータス取得を続け、取得したプリンタステータスがページの印刷が正常終了したことを示した場合には、該当するページメモリを解放するとともに、エラーを検出した場合には、再度占有要求コマンドを送信し、エラーページの回復を試みる。
【００２５】
次に図３を参照し、ホストで動作するプリンタドライバ４の処理の詳細を説明する。なお、本フローの実行される前に、プリンタドライバは、印刷ジョブの開始毎にプリンタの不揮発メモリに記憶された各色の副走査方向の補正量情報をプリンタから取得する。まず、Ｓ１にて、アプリケーション３の指定に従い、用紙サイズ、左余白、上余白、ビットマップデータのラインの長さとライン数などを指定するページ開始コマンドを出力する。この際、後述するように、上余白およびビットマップデータのライン数に補正を加える。次にＳ１１にて、後述する各主走査位置における副走査補正量をコマンドとして出力する。なお、このコマンドは印刷に必要なものではないが、後に副走査補正を取り消したり、別のエンジンの補正量にしたがって再補正を行う必要が生じた場合に参照される。
【００２６】
次にＳ２にて、アプリケーション３の描画指示に従い、赤、緑、青の各色８ビットからなる画像データを１バンド作成する。次にＳ３にて、赤、緑、青の各色８ビットからなる各画素を、イエロー、マゼンタ、シアン、黒の各色８ビットからなる画像データに変換する。この際、ジョブ開始時などにあらかじめ取得した濃度補正情報を参照して濃度補正を行う。次にＳ４にて、イエロー、マゼンタ、シアン、黒の各色８ビットからなる画像データにディザ処理を施し、イエロー、マゼンタ、シアン、黒の各色２ビットからなる画像データに変換する。次にＳ５にて、後述する色ずれ補正手順に従い、副走査方向の色ずれを補正する。この際に、後述するようにバンドバッファからはみ出る画像があるため、これを中間バッファに保持する。次にＳ６にて、１バンドの各色の画像データを圧縮し、出力する。次にＳ７にて、ページ内の全バンドの処理が終了したか判定する。ページ内の全バンドの処理が終了していない場合にはＳ２に戻り、次のバンドの処理を行う。
【００２７】
Ｓ７にて、ページ内の全バンドの処理が終了している場合には、Ｓ８にて、中間バッファに保持したデータ、すなわち最後に処理したバンドからはみ出た画像データを圧縮し、出力する。次にＳ９にて、ページ終了コマンドを出力する。次にＳ１０にて、全ページの処理が終了したか判定する。全ページの処理が終了していない場合にはＳ１に戻り、次のページの処理を行う。全ページの処理が終了している場合には、処理を終了する。
【００２８】
次に、副走査方向の補正量の求め方を説明する。工場出荷前に、各色の副走査方向補正量を測定し、最大用紙の左端、中央、及び右端における各色の副走査方向補正量をプリンタの制御回路２５内蔵の不揮発メモリにあらかじめ記録しておく。プリンタドライバ４は印刷ジョブの開始時にこの値をプリンタから取得し、まず２次関数で近似を行う。
【００２９】
具体的には、最大用紙の左端、中央、及び右端における副走査方向補正量をそれぞれＬ、ＭおよびＲとすると補正量Ｚ＝ＡＸ２＋ＢＸ＋Ｃは以下に示すように計算できる。ここでＸは中央を原点とする主走査方向の位置であり、最大用紙の左端、中央、及び右端のＸ座標はそれぞれ−Ｗ／２、０、Ｗ／２となる。ここでＷは最大用紙の用紙幅である。
【００３０】
Ｒ＝Ａ（Ｗ／２）２＋Ｂ（Ｗ／２）＋Ｃ
Ｍ＝Ｃ
Ｌ＝Ａ（−Ｗ／２）２＋Ｂ（−Ｗ／２）＋Ｃ
であるのでこれを解くと以下の式が得られる。
【００３１】
Ａ＝２（Ｒ＋Ｌ−２Ｍ）／Ｗ２
Ｂ＝（Ｒ−Ｌ）／Ｗ
Ｃ＝Ｍ
したがって副走査方向補正量Ｚは以下の式で計算できる。
【００３２】
Ｚ＝２（Ｒ＋Ｌ−２Ｍ）（Ｘ／Ｗ）２＋（Ｒ−Ｌ）（Ｘ／Ｗ）＋Ｍ
次にこの式に基づき、副走査方向補正量を主走査方向の全ての画素位置について計算する。このとき、副走査方向の補正は１ライン単位で行うので、ライン単位の整数になるように四捨五入する。
【００３３】
次に図４を参照し、バンドバッファ上の座標から、上記副走査方向補正量を求める方法を説明する。用紙サイズが最大より小さい場合、用紙は中央に配置されるのが一般的である。したがって、補正を行う際に、用紙の配置を考慮して補正を行う必要がある。図４中、上部の水平線は上記Ｘ軸を示し、中央が原点となっている。また破線矩形は用紙を示し、その幅はｗであり、用紙の中央がＸ座標原点と一致する。また実線矩形は、プリンタドライバ４が、図３のＳ２にて画像を作成する領域を示し、そのｘ座標およびｙ座標の原点は左上隅であり、またｘ座標原点は用紙左端から左余白ＬＭだけ離れた位置にある。したがって、図に示すように、Ｘ座標原点はｘ座標ではｗ／２−ＬＭとなるため、Ｘ座標は以下の式で計算される。
Ｘ＝ｘ＋ＬＭ−ｗ／２
こうして求められたＸ座標の値を用いて、前述の式により副走査補正量Ｚをｘ座標から求めることができる。
【００３４】
なお、用紙サイズによって用紙幅ｗが異なるため、同一のｘに対して異なったＸが対応するので、同一のｘに対して補正量は用紙サイズに応じて変化する。
【００３５】
次に図５を参照し、図３のＳ５の色ずれ補正処理の詳細を説明する。本実施例では、１画素が各色２ビットにより構成され、１バイトに特定の色の画素が４つ含まれる。このため、１画素ごとに補正量を変化させると２ビット単位で処理を行う必要があり、処理時間が増大する。この問題を避けるために、１バイトに含まれる４画素に同一の補正量を適用することにより、１バイト単位で処理を行うことが可能となり、処理時間を短縮できる。
【００３６】
まずＳ２１にて、現在の色を最初の色、例えばシアンに設定する。次に現在の列を、現在の色のバンドバッファの先頭、すなわち左端に設定する。ここで列とは、幅１バイトからなるものとする。次にＳ２３にて、現在の列の左端の画素の補正量を、前述のように計算する。この際、ジョブ開始時などにあらかじめ取得した色ずれ補正情報を参照して補正量を計算する。なお本実施例では、１画素が各色２ビットにより構成されるため、１バイトに特定の色の画素が４つ含まれるが、前述のようにバイト単位で処理を行うために、１バイト内の左端の画素の補正量をバイト内の４画素に適用する。次にＳ２４にて、補正値に最大補正量を加算して、正または０の値になるようにする。例えば、補正量が−２０ライン以上２０ライン以下である場合、最大補正量である２０ラインを加算して、０ライン以上４０ライン以下となるようにする。この処理の目的は、補正量が負になった場合、現在のバンドのデータを補正した結果、すでに処理を終えている、前のバンドの位置にデータが移動することになり、処理が不可能になるのでそれを回避するためである。
【００３７】
次にＳ２５にて、現在のバイトを現在の列の末尾、すなわちバンドバッファの最終ラインの現在の列に設定する。次にＳ２６にて、現在のバイトの補正位置を計算し、補正位置がバンドバッファ内であるか判定する。具体的には、現在のバイトの、Ｓ２４にて計算された補正ライン数下の位置が、バンドバッファ内であるか判定する。現在のバイトの補正位置がバンドバッファ内である場合には、Ｓ２７にて現在のバイトを、Ｓ２６で計算された補正位置にコピーし、Ｓ２８に進む。現在のバイトの補正位置がバンドバッファ内でない場合には、中間バッファ２に、バンドバッファからはみ出るライン数に応じた位置にコピーし、Ｓ２８に進む。
【００３８】
Ｓ２８では、現在のバイト位置を１つ上のラインに移動する。次にＳ２９にて、１列の処理が終了したか、すなわち現在のバイト位置がバンドバッファの先頭からはみ出たか判定する。１列の処理が終了していない場合はＳ２６に戻り、現在の列の処理を継続する。１列の処理が終了した場合は、Ｓ３０にて、現在の列の、先頭ラインからＳ２４にて計算された補正ライン数だけ、中間バッファ１からバンドバッファにコピーする。なお、中間バッファ１は、あらかじめ空白画素で埋められているものとする。次にＳ３１にて、現在の列を右に１バイト移動する。次にＳ３２にて、全ての列の処理が終了したか判定する。全ての列の処理が終了していない場合には、Ｓ２３に戻り、次の列の処理を開始する。
【００３９】
全ての列の処理が終了した場合には、Ｓ３３にて、中間バッファ２の内容を、現在の色の中間バッファ１にコピーする。次に、Ｓ３４にて、現在の色を次の色に設定する。次にＳ３５にて、全ての色の処理が終了したか判定する。全ての色の処理が終了していない場合は、Ｓ２２に戻り、次の色の処理を開始する。全ての色の処理が終了している場合には、色ずれ補正処理を終了する。
なお、図３に示すＳ１にて行う上余白のライン数の補正は、Ｓ２４にて補正量に加算する値、すなわち最大補正量を減算することにより行う。この処理を行うことによりＳ２４にて補正量に加算することによる上余白の増加をキャンセルすることができる。また図３に示すＳ１にて行うビットマップデータのライン数の補正は、中間バッファのライン数を加算することにより行う。中間バッファのライン数は、最大補正量の２倍となっているので、その値を加算する。
【００４０】
なお、図５の処理を、たとえば図６のような横長のバンド（横方向：主走査方向）の例で説明する。まず、バンドの左下のバイト単位の画像データを補正量に応じてバンドバッファまたは中間バッファに書き込む。次に一つ上（縦方向（副走査方向））のバイト単位の画像データを補正量に応じてバンドバッファまたは中間バッファ書き込む。一つ上のバイト単位の画像データを順次処理していき、縦方向のバンド分の画像データの処理が終了したら、左下のバイト単位の画像データの右隣のバイト単位の画像データを補正量に応じてバンドバッファまたは中間バッファ書き込む。そして、次にその一つ上のバイト単位の画像データを順次処理していく。
【００４１】
上記例では縦方向（副走査方向）に処理する例を説明したが、横方向（主走査方向）に処理する方式でも実現できる。具体的には、バンドの左下のバイト単位の画像データを補正量に応じてバンドバッファまたは中間バッファに書き込む。次に一つ右（横方向：主走査方向）のバイト単位の画像データを補正量に応じてバンドバッファまたは中間バッファ書き込む。一つ右のバイト単位の画像データを順次処理していき、横方向にバンド分の画像データの処理が終了したら、左下のバイト単位の画像データの一つ上のバイト単位の画像データを補正量に応じてバンドバッファまたは中間バッファ書き込む。そして、一つ右のバイト単位の画像データを順次処理していく方式を採用してもよい。
【００４２】
次に図６を参照し、色ずれ補正処理によるデータの動きを説明する。まず最初のバンドであるバンド１の画像データ６０１がバンドバッファに形成され、色ずれ補正処理が呼び出されると、副走査方向補正量に応じて補正が行われ、バンドバッファ内にとどまるデータ６０２と、はみ出て中間バッファ２に格納されるデータ６０３に分かれる。中間バッファ２に格納されたデータ６０３は、１バンド処理終了時点で中間バッファ１に画像データ６０４としてコピーされている。次にバンド２の画像データ６０５がバンドバッファに形成され、色ずれ補正処理が呼び出されると、同様にバンドバッファ内にとどまるデータ６０６と、はみ出て中間バッファ２に格納されるデータ６０７に分かれ、さらに中間バッファ１に保持されていた、バンド１からはみ出たデータ６０４がバンドバッファに格納される。
【００４３】
このようにして順次補正処理が行われ、最後のバンドの処理後には、最後のバンドからはみ出たデータ６１０が中間バッファ１に保持されている。このデータ６１０は、図３に示すＳ８の処理により出力される。
【００４４】
〔第２実施形態〕
次に、本発明方式の第２の実施形態を説明する。本実施形態においては、ディザ処理の前に色ずれ補正処理を行う。具体的には、図３に示すＳ４のディザ処理と、Ｓ５の色ずれ処理の順序を入れ替える。また、ディザ処理前の画像は各色８ビットであるため、色ずれ補正処理に際して、４画素に同一補正量を適用することなく、各画素ごとに補正量が計算される。
【００４５】
〔第３実施形態〕
次に、本発明方式の第３の実施形態を説明する。本実施形態においては、プリンタエンジン２４は両面印刷機構を有する。両面印刷の場合、第１面の印刷は片面印刷と同様に中央基準が一般的であるが、第２面の印刷に際しては、左基準となっている場合がある。このような場合、図５に示すＳ２３にて計算する補正量は、両面印刷第１面の場合には第１の実施形態と同様に中央基準で計算し、両面印刷第２面の場合には左基準で計算する。具体的には前述の
Ｘ＝ｘ＋ＬＭ−ｗ／２
のかわりに、用紙幅にかかわらず最大用紙と同じ式、すなわち
Ｘ＝ｘ＋ＬＭ−Ｗ／２
により計算を行えばよい。
【００４６】
なお両面印刷を行う場合、用紙の搬送方向（縦送りまたは横送り）および綴じ方向（長辺とじまたは短辺とじ）の組み合わせによっては、第１面の画像を１８０度回転する必要があるが、この処理は図３に示すＳ２にて画像を作成する際にあらかじめ回転した画像を作成するものとする。
【００４７】
〔その他の実施形態〕
なお、上述の実施例では、画像作成および色ずれ補正をホストコンピュータで行っているが、これに代えて他の手段、例えばプリンタドライバ４は画像作成および色ずれ補正を行わずにページ記述言語を出力し、プリンタ７は受信したページ記述言語にしたがって画像の作成および色ずれ補正を行うようにしてもよい。
【図面の簡単な説明】
【００４８】
【図１】本発明の機能構成を示すブロック図である。
【図２】本発明方式のプリンタの構成の詳細を示すブロック図である。
【図３】本発明方式のプリンタドライバの処理手順を示すフローチャートである。
【図４】本発明方式における色ずれ補正における主走査位置のマッピングを説明する説明図である。
【図５】本発明方式の色ずれ補正の処理手順を示すフローチャートである。
【図６】本発明方式の色ずれ補正のデータの流れを示す説明図である。
【図７】本発明のハードウエア構成を示すブロック図である。
【符号の説明】
【００４９】
１  コンピュータ
２  オペレーティングシステム
３  アプリケーション
４  プリンタドライバ
５  ランゲージモニタ
６  ネットワークポートドライバ
７  プリンタ
２１  ネットワークインタフェース
２２  ＦＩＦＯメモリ
２３  復号回路
２４  プリンタエンジン
２５  制御回路
【図１】
0004617240.tif 000002
【図２】
0004617240.tif 000003
【図３】
0004617240.tif 000004
【図４】
0004617240.tif 000005
【図５】
0004617240.tif 000006
【図６】
0004617240.tif 000007
【図７】
0004617240.tif 000008