(57)【特許請求の範囲】
【請求項１】
入力された画像データをページ単位に格納するページバッファと、
前記ページバッファに格納された画像データの所定のラスタ群に対して、１ラスタ単位に誤差拡散処理を行って二値化データを作成して出力する二値化手段とを備え、
前記二値化手段は、
前記誤差拡散処理における副走査方向の誤差を格納する誤差バッファと、前記誤差バッファを初期化する誤差バッファ初期化手段とを備え、
前記誤差バッファ初期化手段は、
複数のページに渡る画像データを連続した画像として処理するように設定されているときに、前記誤差拡散処理を直前に行ったラスタと前記誤差拡散処理を行うラスタの副走査方向における位置が不連続であり、かつ、前記誤差拡散処理を直前に行ったラスタがページの後端位置でないか又は前記誤差拡散処理を行うラスタがページの先頭位置でない場合に、前記誤差バッファを初期化し、
複数のページに渡る画像データを連続した画像として処理するように設定されていないときに、前記誤差拡散処理を直前に行ったラスタと前記誤差拡散処理を行うラスタの副走査方向における位置が不連続であれば、前記誤差バッファを初期化する
ことを特徴とする画像処理装置。
【請求項２】
複数のページに渡る画像データを連続した画像データとして処理するように設定されているときに、前記ページ内のラスタ数を各ページに対して設定可能であることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記二値化手段は、複数の色に対して前記誤差バッファをそれぞれ有しており、前記誤差バッファ初期化手段は各誤差バッファを同時に初期化することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
入力されたカラー画像データに対して色変換処理を行う色変換手段を更に備え、前記二値化データがプリンタに対する出力データであることを特徴とする請求項１から３のいずれか１項に記載の画像処理装置。
【請求項５】
入力された画像データをページ単位でページバッファに格納するページバッファ工程と、
前記ページバッファに格納された画像データの所定のラスタ群に対して、１ラスタ単位に誤差拡散処理を行って二値化データを作成して出力する二値化工程とを備え、
前記二値化工程は、
前記誤差拡散処理における副走査方向の誤差を誤差バッファに格納する誤差バッファ工程と、前記誤差バッファを初期化する誤差バッファ初期化工程とを備え、
前記誤差バッファ初期化工程では、
複数のページに渡る画像データを連続した画像として処理するように設定されているときに、前記誤差拡散処理を直前に行ったラスタと前記誤差拡散処理を行うラスタの副走査方向における位置が不連続であり、かつ、前記誤差拡散処理を直前に行ったラスタがページの後端位置でないか又は前記誤差拡散処理を行うラスタがページの先頭位置でない場合に、前記誤差バッファを初期化し、
複数のページに渡る画像データを連続した画像として処理するように設定されていないときに、前記誤差拡散処理を直前に行ったラスタと前記誤差拡散処理を行うラスタの副走査方向における位置が不連続であれば、前記誤差バッファを初期化する
ことを特徴とする画像処理方法。
【請求項６】
複数のページに渡る画像データを連続した画像データとして処理するように設定されているときに、前記ページ内のラスタ数を各ページに対して設定可能であることを特徴とする請求項５に記載の画像処理方法。
【請求項７】
前記二値化工程で、複数の色に対する前記誤差をそれぞれの色に対して設けられた誤差バッファに格納し、前記誤差バッファ初期化工程が、各誤差バッファを同時に初期化することを特徴とする請求項５または６に記載の画像処理方法。
【請求項８】
入力されたカラー画像データに対して色変換処理を行う色変換工程を更に備え、前記二値化データがプリンタに対する出力データであることを特徴とする請求項５から７のいずれか１項に記載の画像処理方法。
【請求項９】
プリンタに接続されるホスト装置にインストールされるプリンタドライバであって、
入力された画像データをページ単位でページバッファに格納するページバッファ工程と、
前記ページバッファに格納された画像データの所定のラスタ群に対して、１ラスタ単位に誤差拡散処理を行って二値化データを作成して出力する二値化工程とを実行するプログラムのコードを備え、
前記二値化工程は、
前記誤差拡散処理における副走査方向の誤差を誤差バッファに格納する誤差バッファ工程と、前記誤差バッファを初期化する誤差バッファ初期化工程とを備え、
前記誤差バッファ初期化工程では、
複数のページに渡る画像データを連続した画像として処理するように設定されているときに、前記誤差拡散処理を直前に行ったラスタと前記誤差拡散処理を行うラスタの副走査方向における位置が不連続であり、かつ、前記誤差拡散処理を直前に行ったラスタがページの後端位置でないか又は前記誤差拡散処理を行うラスタがページの先頭位置でない場合に、前記誤差バッファを初期化し、
複数のページに渡る画像データを連続した画像として処理するように設定されていないときに、前記誤差拡散処理を直前に行ったラスタと前記誤差拡散処理を行うラスタの副走査方向における位置が不連続であれば、前記誤差バッファを初期化する
ことを特徴とするプリンタドライバ。
【請求項１０】
請求項９に記載のプリンタドライバを格納したことを特徴とする記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置及び画像処理方法に関し、特に、複数ページにわたる画像データに対して二値化処理を行う画像処理装置及び画像処理方法に関するものである。
【０００２】
【従来の技術】
従来、コンピュータ等で作成した文書や画像の印刷装置として、ヘッドから印刷媒体にインク滴を吐出して画像形成を行うインクジェットプリンタ等が提案されている。インクジェットプリンタは一般的にインク滴によるドットの有無によって出力画像を表現する。
【０００３】
よって、このようなインクジェットプリンタに接続されるホスト装置にインストールされるプリンタドライバは、アプリケーションプログラムから得られる入力画像に対して、色変換処理を行い、誤差拡散法などの疑似階調化手段によって二値化処理を行って得られた記録データを、インクジェットプリンタに送信し、インクジェットプリンタは受信した記録データに従ってインク滴を吐出して出力画像を形成する。
【０００４】
この誤差拡散法については、R.Floydらによる"An adaptive algorithm for spatial gray scale", SID International Symposium Digest of Technical Papers, vol4.3, 1975, pp.36-37、に記載されている。この方法は着目画素をＰ、その画素の濃度をｖ、Ｐ点の周辺の二値化処理されていない画素Ｐ０、Ｐ１、Ｐ２、Ｐ３の濃度をそれぞれｖ０、ｖ１、ｖ２、ｖ３とし、二値化のための閾値をＴとすると、図４に示すように着目点Ｐにおける二値化誤差Ｅを周辺画素Ｐ０、Ｐ１、Ｐ２、Ｐ３に、経験的に求めた重み係数Ｗ０、Ｗ１、Ｗ２、Ｗ３で重み付け処理して振り分けて、マクロ的に出力画像の平均濃度を入力画像の濃度と等しくする方法である。
【０００５】
このとき、出力２値データをｏとすると、以下の式により周辺画素Ｐ０、Ｐ１、Ｐ２、Ｐ３に対する誤差Ｅ０、Ｅ１、Ｅ２、Ｅ３を求めることができる。すなわち、
ｖ≦Ｔならば、ｏ＝１、Ｅ＝ｖ−Ｖmax
ｖ＜Ｔならば、ｏ＝０、Ｅ＝ｖ−Ｖmin
ただし、Ｖmaxは最大濃度、Ｖminは最小濃度であり、
Ｅ０＝Ｅ×Ｗ０    …（１）
Ｅ１＝Ｅ×Ｗ１    …（２）
Ｅ２＝Ｅ×Ｗ２    …（３）
Ｅ３＝Ｅ×Ｗ３    …（４）
である。
【０００６】
なお、重み係数の例としては、Ｗ０＝７／１６，Ｗ１＝１／１６，Ｗ２＝５／１６，Ｗ３＝３／１６、などが知られている。
【０００７】
誤差拡散処理は、主走査方向に１ラスタずつ行われるため、副走査方向への誤差は一般的に誤差バッファと呼ばれる記憶装置に記憶されて次のラスタの処理時に使用される。
【０００８】
そして、複数のページを印刷する場合は、ページ先頭に前ページの終端の誤差が伝播されるとページ先頭の画質を低下させるので、改ページ時に誤差バッファを初期化する事が一般的に知られている。同様に、図６に示すような同一ページ６０１内に複数の画像６０２及び６０３が副走査方向に並んでいる場合、画像６０２の下端で発生した副走査方向への誤差を画像６０３の処理へ伝播すると、画像６０３の上端の画質の低下が起こる。このため、画像６０３の二値化処理を開始する直前に誤差バッファを初期化する事により同様に画像６０３の上端の画質低下を防ぐ方法が知られている。
【０００９】
一方、このような印刷装置ではいわゆる単票の用紙（以下、カット紙）への印刷の他に、例えばロール紙やバナー紙のような丈の長い用紙（以下、バナー紙）へ印刷（以下、長尺印刷）する事も可能である。この場合、一般に画像データを提供するアプリケーションプログラムで扱い得るデータ量には制限があるため、長尺印刷を行う場合は、プリンタドライバに、図７に示すような長尺状の記録媒体７０１に１つの画像７０２を印刷するデータとして、複数のページに分割された形式で、ページ毎に画像データが供給されるのが一般的である。
【００１０】
しかしながら、元々一つの画像を複数のページに単純に分割して二値化処理を行うと、ページの境界で誤差バッファが初期化されるため、ページ境界で画質の低下が起こってしまう。
【００１１】
この問題を解決する方法として、特開２０００−１５８７１４号公報や特開平１０−３２９３８３号公報には、長尺印刷の際には各ページの境界で誤差バッファを初期化しない事により、ページ境界での画質の低下を防ぐ方法が提案されている。
【００１２】
【発明が解決しようとする課題】
しかしながら、上記公報に記載された方法では、長尺印刷の際に誤差バッファの初期化を常に行わないため、異なった画像間で二値化処理の誤差が伝播されて画質の低下が生じるという問題が生じる。
【００１３】
例えば、図８のように画像８０２と画像８０３とを含む、カット紙２ページの長さを有するバナー紙８０１の長尺印刷を行うと、２つの画像８０２及び８０３は別のオブジェクトであるにも関わらず、画像８０２の下端の二値化処理の誤差が画像８０３に伝播して、画質の低下が生じてしまう。
【００１４】
本発明は以上のような状況に鑑みてなされたものであり、長尺印刷のデータを処理するときにページ境界と画像の先頭における画質低下を同時に回避することができる、画像処理装置及び画像処理方法を提供する事を目的とする。
【００１５】
【課題を解決するための手段】
上記目的を達成するために、本発明の１態様としての画像処理装置は、入力された画像データをページ単位に格納するページバッファと、
前記ページバッファに格納された画像データの所定のラスタ群に対して、１ラスタ単位に誤差拡散処理を行って二値化データを作成して出力する二値化手段とを備え、
前記二値化手段は、
前記誤差拡散処理における副走査方向の誤差を格納する誤差バッファと、前記誤差バッファを初期化する誤差バッファ初期化手段とを備え、
前記誤差バッファ初期化手段は、
複数のページに渡る画像データを連続した画像として処理するように設定されているときに、前記誤差拡散処理を直前に行ったラスタと前記誤差拡散処理を行うラスタの副走査方向における位置が不連続であり、かつ、前記誤差拡散処理を直前に行ったラスタがページの後端位置でないか又は前記誤差拡散処理を行うラスタがページの先頭位置でない場合に、前記誤差バッファを初期化し、
複数のページに渡る画像データを連続した画像として処理するように設定されていないときに、前記誤差拡散処理を直前に行ったラスタと前記誤差拡散処理を行うラスタの副走査方向における位置が不連続であれば、前記誤差バッファを初期化する。
【００１６】
また、上記目的を達成する本発明の１態様としての画像処理方法は、入力された画像データをページ単位でページバッファに格納するページバッファ工程と、
前記ページバッファに格納された画像データの所定のラスタ群に対して、１ラスタ単位に誤差拡散処理を行って二値化データを作成して出力する二値化工程とを備え、
前記二値化工程は、
前記誤差拡散処理における副走査方向の誤差を誤差バッファに格納する誤差バッファ工程と、前記誤差バッファを初期化する誤差バッファ初期化工程とを備え、
前記誤差バッファ初期化工程では、
複数のページに渡る画像データを連続した画像として処理するように設定されているときに、前記誤差拡散処理を直前に行ったラスタと前記誤差拡散処理を行うラスタの副走査方向における位置が不連続であり、かつ、前記誤差拡散処理を直前に行ったラスタがページの後端位置でないか又は前記誤差拡散処理を行うラスタがページの先頭位置でない場合に、前記誤差バッファを初期化し、
複数のページに渡る画像データを連続した画像として処理するように設定されていないときに、前記誤差拡散処理を直前に行ったラスタと前記誤差拡散処理を行うラスタの副走査方向における位置が不連続であれば、前記誤差バッファを初期化する。
【００１７】
すなわち、本発明では、入力された画像データをページ単位でページバッファに格納し、ページバッファに格納された画像データに対して、１ラスタ単位に誤差拡散処理を行って二値化データを作成して出力し、二値化の際に、誤差拡散処理における副走査方向の誤差を誤差バッファに格納し、誤差拡散処理を直前に行ったラスタ及び誤差拡散処理を行うラスタの副走査方向における位置及びページ内のラスタ数に基づいて、誤差バッファを初期化する。
【００１８】
このようにすると、誤差拡散処理を直前に行ったラスタ及び誤差拡散処理を行うラスタの副走査方向における位置が連続しているか否かによって、同じページ内での同一の画像に対する処理か否かが判定でき、誤差拡散処理を直前に行ったラスタ及び誤差拡散処理を行うラスタの番号とページ内のラスタ数とを比較することにより、ページの後端から次のページの先頭に渡って連続した画像に対する処理であるか否かが判定でき、その判定結果に基づいて誤差バッファを初期化することができる。
【００１９】
従って、長尺状の記憶媒体に対する画像データを処理するときに、画像が複数ページにまたがっているか否かに関係なく、異なった画像に対する二値化処理を行う際に誤差バッファを初期化して、長尺印刷のデータを処理するときにページ境界と画像の先頭における画質低下を同時に回避することができる。
【００２０】
【発明の実施の形態】
以下、添付の図面を参照して本発明の好適な実施形態について詳細に説明する。
【００２１】
＜第１の実施形態＞
図５は本発明の画像処理装置の第１の実施形態の構成を示すブロック図である。図示されたように本実施形態の画像処理装置は、入力装置５０１、プリンタドライバ５０３、及び出力装置５０４を含んでいる。入力装置５０１は入力画像５０２をプリンタドライバ５０３に送信し、プリンタドライバ５０３は入力画像に対して色変換処理、二値化処理を行って出力装置５０４に送信する。
【００２２】
入力装置５０１は、入力画像５０２をページ単位に分割して、プリンタドライバ５０３に送信し、印刷設定が長尺印刷となっている場合には、ページ最大長（ページに含まれる行数）の情報をプリンタドライバ５０３に送信する。
【００２３】
プリンタドライバ５０３は、ページバッファ５０６、色変換装置５０７、二値化装置５０８、制御装置５０９で構成される。制御装置５０９は入力装置５０１に読取信号を送信し、これに応じて入力装置５０１から送信されるページ単位の入力画像をページバッファ５０６に記憶する。そして、入力画像５０２を長尺印刷で印刷する場合には、入力装置５０１から送信されるページの最大長の情報を内部変数に記憶する。
【００２４】
次に、制御装置５０９は、ページバッファ５０６にアドレス信号を送信し、これに応じてページバッファ５０６からラスタ単位で画像データが色変換装置５０７に送信される。それと同時に制御装置５０９は、色変換装置５０７及び二値化装置５０８にラスタデータの行番号情報ｖＰｏｓを送信する。色変換装置５０７で色変換され、二値化装置５０８で二値化されたラスタデータは、制御装置５０９から送られるアドレスと共に出力装置５０４に送信され、内部に記憶される。
【００２５】
このようにして、ページバッファ５０６内の画像データをラスタ単位に順次処理し、全てのラスタの変換処理が終了すると、制御装置５０９は入力装置５０１に再び読取信号を送信し、これに応じて入力装置５０１は次のページの入力画像をページバッファ５０６に送信する。次のページが存在しない場合には、入力装置５０１は終了信号を返すので、制御装置５０９は出力装置５０４に終了信号を送信し、全ての処理が終了する。
【００２６】
色変換装置５０７は、ページバッファ５０６から送られたＲ，Ｇ，Ｂ各色８ｂｉｔ（２５６値）のラスタ単位の入力画像を、Ｃ（シアン），Ｍ（マゼンタ），Ｙ（イエロー），Ｋ（ブラック）各色８ｂｉｔ（２５６値）のラスタデータに変換して二値化装置５０８に出力する。二値化装置５０８は、色変換装置５０７から送信されたラスタ単位のＣ，Ｍ，Ｙ，Ｋ各色８ｂｉｔ（２５６値）のデータを二値化して１ｂｉｔずつ出力装置５０４に送る。
【００２７】
本実施形態ではＣ，Ｍ，Ｙ，Ｋの全色を１ｂｉｔ２値データに二値化する処理を行う場合について説明するが、色ごとに出力ｂｉｔ数やレベル数が異なっても構わない。
【００２８】
図１は本実施形態の二値化装置５０８の構成を示すブロック図である。１０１は誤差バッファ初期化装置であり、ページ最大長と行番号の情報に基づいて、誤差バッファを初期化するための初期化信号を生成して出力する。1０２，１０３，１０４，１０５は誤差拡散処理装置であり、それぞれ入力Ｃ，Ｍ，Ｙ，Ｋの各色８ｂｉｔのデータを誤差拡散処理により二値化して出力する。１０６，１０７，１０８，１０９は誤差バッファであり、それぞれ誤差拡散処理装置1０２，１０３，１０４，１０５内に内蔵されており副走査方向への誤差を次のラスタへ伝播するために使用され、誤差バッファ初期化装置１０１から出力された初期化信号によって記憶されている誤差値を初期化する。
【００２９】
図２は本実施形態の画像処理装置での処理の流れを示すフローチャートである。尚、以下の説明において、「ａ＝１０」は変数ａへ１０を代入する演算、「ａ＝＝１０」は変数ａが１０と等しいか否かを比較する演算、「Ａ  ＆＆  Ｂ」はＡかつＢをそれぞれ意味する。
【００３０】
まず、誤差バッファ初期化装置１０１内の変数lastvPosを−２で初期化する（ステップＳ２０１）。この変数lastvPosは、二値化処理を行った行番号を記憶するために使用される。次に、長尺印刷が設定されているか否かを調べる（ステップＳ２０２）。長尺印刷が設定されている場合には、誤差バッファ初期化装置１０１内の変数vMaxに入力画像をページに分割した際のページ最大長を設定し（ステップＳ２０３）、そうでない場合にはvMaxに０を設定する（ステップＳ２０４）。
【００３１】
次に、入力画像の全ページの画像処理が終了したか否かを判定する（ステップＳ２０５）。具体的には、制御装置５０９が読取信号を入力装置５０１に送信し、入力装置５０１から終了信号が返ってきた場合、制御装置５０９は全ページの画像処理が終了したと判定し、出力装置５０４に終了信号を送信して処理を終了する。一方、ステップＳ２０５で、全ページの画像処理が終了していない、すなわち、まだ画像処理を終了していないページが存在すると判定された場合には、ページバッファ５０６に次のページの入力画像を読み込む（ステップＳ２０６）。
【００３２】
そして、制御装置５０９は色変換装置５０７にラスタ単位のＲ，Ｇ，Ｂの入力画像データを送信し、その行番号を色変換装置５０７と二値化装置５０８に送信する。色変換装置５０７は入力画像データをＣ，Ｍ，Ｙ，Ｋ各色８ｂｉｔのラスタデータに色変換し、誤差拡散処理装置１０２，１０３，１０４，１０５に送信する（ステップＳ２０７）。
【００３３】
次に、二値化装置５０８内の誤差バッファ初期化装置１０１は、入力されたvPosと内部に記憶されているlastvPosについて、以下の比較演算を行う（ステップＳ２０８）。
vPos ＝＝ lastvPos ＋ １    …（５）
この比較演算の結果が真であれば、入力された行（ラスタ）番号が連続していること、すなわち、同一ページ内の同じ画像に対する処理であることを意味するので、二値化処理（ステップＳ２１１）に進む。
【００３４】
一方、式（５）が偽である場合には次の比較演算を行う（ステップＳ２０９）。
lastvPos ＝＝ vMax − 1 ＆＆ vPos ＝＝ ０    …（６）
この比較演算の結果が真であれば、ページ後端から次ページにまたがる同じ画像に対する処理であることを意味するので、二値化処理（ステップＳ２１１）に進み、そうでない場合は誤差バッファ初期化装置１０１は、初期化信号を誤差バッファ１０６，１０７，１０８，１０９に送信し、それらの内容を初期化（ステップＳ２１０）した後に、二値化処理（ステップＳ２１１）に移る。
【００３５】
そして、１ラスタの全ての色の二値化処理を行い、誤差バッファ初期化装置１０１内の変数lastvPosにvPosを記憶する（ステップＳ２１２）。
【００３６】
次に、ページバッファ５０６に記憶されている全ラスタの二値化処理が終了したか否かを判定する（ステップＳ２１３）。全ラスタの二値化処理が終了した場合には、ステップＳ２０５に戻って、全ページの処理が終了していなければページバッファ５０６に次のページを読み込む。一方、ステップＳ３１２で二値化処理が終了していないラスタが残っている場合にはステップＳ２０７に戻り、次のラスタの画像処理を開始する。
【００３７】
以上のようにして、ステップＳ２０５で全ページの処理が終了したと判定された場合のみ、処理を終了する。
【００３８】
本実施形態での誤差バッファの初期化処理（ステップＳ２１０）は、以下の２つの条件を同時に満たす時にのみ実行される。
１．直前に二値化を行ったラスタの行番号とこれから二値化を行うラスタの行番号が非連続である（ステップＳ２０８で偽の場合）。
２．直前に二値化を行ったラスタの行番号がページ後端を示す値ではない、または、これから二値化を行うラスタの行番号がページ先頭を示す値ではない（ステップＳ２０９で偽の場合）。
【００３９】
すなわち、同じページ内で画像が連続している場合と、ページ後端から次のページにまたがって画像が連続している場合とには、誤差バッファの初期化を行わないようにしている。
【００４０】
ここで、ステップＳ２１１での誤差拡散による二値化処理の例を図３を参照して説明する。色変換装置５０７から送信された入力ラスタデータ３０１から着目ピクセルの画素値inValが加算器３０４に送られる。
【００４１】
加算器３０４にはラッチ３０９から誤差Ｅ０と、誤差バッファ３０３から読み出された前ラスタからの誤差err0とが同時に送信され、以下の加算処理を行って誤差補正値lValueを比較器３０６と減算器３０７に出力する。
lValue = inVal ＋ E0 ＋ err0    …（７）
閾値設定装置３０５は閾値thresholdを比較器３０６に送る。この閾値thresholdは固定値であっても、入力値などの要素で変動するものであっても構わない。
【００４２】
比較器３０６は、加算器３０４から出力された誤差補正値lValueと、閾値設定装置３０５から出力されたthresholdとを比較して、二値化結果binDataを出力画像３０２と減算器３０７に出力する。
【００４３】
減算器３０７は加算器３０４から出力されたlValueと比較器３０６から出力されたbinDataから、以下の減算処理を行って、その結果Ｅを誤差分配装置３０８に出力する。
Ｅ = lValue − binData    …（８）
誤差分配装置３０８は、減算器３０７から出力された誤差Ｅを用いて、上述の式（１）〜（４）の計算を行い、配分誤差Ｅ０，Ｅ１，Ｅ２，Ｅ３を、ラッチ３０９及び３１０、加算器３１１及び３１３に送信する。
【００４４】
配分される誤差は、図４の誤差窓４０１に対応しており、分配誤差Ｅ０はラッチ３０９に入力され、１ピクセル分遅延された後、再び加算器３０４に入力される。また、分配誤差Ｅ１はラッチ３１０に入力され、１ピクセル分遅延が加えられた後、加算器３１１に入力され分配誤差Ｅ２と加算される。加算器３１１の出力はラッチ３１２に入力され、１ピクセル分遅延が加えられた後、加算器３１３に入力され、分配誤差Ｅ３と加算される。そして、加算器３１３の出力Ｅsumは誤差バッファ３０３に書き込まれる。
【００４５】
尚、本実施形態においては誤差が書き込まれる場所は、二値化処理の方向により着目画素の左または右に２ピクセル離れた場所であり、二値化処理の方向は数ライン毎に切り替わるようになっている。
【００４６】
＜第２の実施形態＞
以下、本発明に係る画像処理装置の第２の実施形態について説明する。第２の実施形態の画像処理装置も第１の実施形態と同様な構成であり、以下では第１の実施形態と同様な部分については説明を省略し、第２の実施形態の特徴的な部分を中心に説明する。
【００４７】
第２の実施形態の画像処理装置は、長尺印刷を行う場合に、ページ毎に副走査方向（用紙搬送方向）の長さが指定できる点が第１の実施形態と異なっている。
【００４８】
図９は、本実施形態による長尺印刷の例を示す図である。使用する記録媒体９０１は、通常使用するカット紙１ページより長く、２ページ未満の長さであり、画像９０２がページにまたがって印刷される。この場合、例えば、ページ１の長さ９０３を通常のカット紙と同じとし、ページ２の長さ９０４を残りの長さとすることで、様々な長さの記録媒体に対して効率的に画像処理を行って印刷データを生成できる。
【００４９】
以下、本実施形態の画像処理装置での処理の流れを、図１０のフローチャートを参照して説明する。
【００５０】
まず、誤差バッファ初期化装置１０６内の変数lastvPosを−２で初期化する（ステップＳ１００１）。この変数lastvPosは、二値化処理を行った行番号を記憶するために使用される。次に、入力画像の全ページの画像処理が終了したか否かを判定する（ステップＳ１００２）。
【００５１】
これは具体的には、制御装置５０９が読取信号を入力装置５０１に送り、入力装置５０１から終了信号が返ってきた場合、制御装置５０９は全ページの画像処理が終了したと判定し、出力装置５０４に終了信号を送って処理を終了する。一方、入力装置５０１から終了信号が返ってこない場合には、未処理のページがあると判定し、ページバッファ５０６に次のページの入力画像を読み込む（ステップＳ１００３）。
【００５２】
次に、長尺印刷が設定されているか否かを判定する（ステップＳ１００４）。長尺印刷が設定されている場合、ステップＳ１００３でページバッファ５０６に読み込まれた入力画像に対応するページ最大長を、誤差バッファ初期化装置１０１内の変数vMaxに設定し（ステップＳ１００５）、そうでない場合はvMaxに０を設定する（ステップＳ１００６）。
【００５３】
その後、色変換装置５０７にラスタ単位のＲ，Ｇ，Ｂ入力画像データを送り、その行番号を色変換装置５０７と二値化装置５０８に送信する。色変換装置５０７は入力画像データをＣ，Ｍ，Ｙ，Ｋ各色８ｂｉｔのラスタデータに色変換し、誤差拡散処理装置１０２，１０３，１０４，１０５に送信する（ステップＳ１００７）。
【００５４】
次に、二値化装置５０８内の誤差バッファ初期化装置１０１は、入力されたvPosと内部に記憶されているlastvPosについて、以下の比較演算を行う（ステップＳ１００８）。
vPos ＝＝ lastvPos ＋ １    …（９）
この比較演算の結果が真であれば、入力された行番号が連続していること、すなわち、同一ページ内の同じ画像に対する処理であることを意味するので、二値化処理（ステップＳ１０１１）に進む。
【００５５】
一方、式（９）が偽である場合には次の比較演算を行う（ステップＳ１００９）。
lastvPos ＝＝ vMax − 1 ＆＆ vPos ＝＝ ０    …（１０）
この比較演算の結果が真であれば、ページ後端から次ページにまたがる同じ画像に対する処理であることを意味するので、二値化処理（ステップＳ１０１１）に進み、そうでない場合は誤差バッファ初期化装置１０１は、初期化信号を誤差バッファ１０６，１０７，１０８，１０９に送信し、それらの内容を初期化（ステップＳ１０１０）した後に、二値化処理（ステップＳ１０１１）に移る。
【００５６】
そして、１ラスタの全ての色の二値化処理を行い、誤差バッファ初期化装置１０１内の変数lastvPosにvPosを記憶する（ステップＳ１０１２）。
【００５７】
次に、ページバッファ５０６に記憶されている全ラスタの二値化処理が終了したか否かを判定する（ステップＳ１０１３）。全ラスタの二値化処理が終了した場合には、ステップＳ１００２に戻って、全ページの処理が終了したか否かの判定を行う。一方、ステップＳ１０１３で二値化処理が終了していないラスタが残っている場合には、ステップＳ１００７に戻り、次のラスタに対する画像処理を開始する。
【００５８】
以上のようにして、ステップＳ２０５で全ページの処理が終了したと判定された場合のみ、処理を終了する。
【００５９】
本実施形態でも、誤差バッファの初期化を行う条件は第１の実施形態と同様であり、同じページ内で画像が連続している場合と、ページ後端から次のページにまたがって画像が連続している場合とには、誤差バッファの初期化を行わないようにしている。
【００６０】
＜その他の実施形態＞
なお、本発明は、複数の機器（例えばホストコンピュータ，インターフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用してもよい。
【００６１】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００６２】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００６３】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００６４】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６５】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６６】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明した（図２および／または図１０に示す）フローチャートに対応するプログラムコードが格納されることになる。
【００６７】
【発明の効果】
以上説明したように、長尺状の記憶媒体に対する画像データを処理するときに、画像が複数ページにまたがっているか否かに関係なく、異なった画像に対する二値化処理を行う際に誤差バッファを初期化して、長尺印刷のデータを処理するときにページ境界と画像の先頭における画質低下を同時に回避することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態の二値化装置５０８の構成を示すブロック図である。
【図２】本発明の第１の実施形態での処理の流れを示すフローチャートである。
【図３】本発明で使用する誤差拡散による二値化処理の例を示す図である。
【図４】本発明で使用する誤差配分窓の一例を示す図である。
【図５】本発明の画像処理装置の第１の実施形態の構成を示すブロック図である。
【図６】カット紙の同一ページ内に複数の画像が副走査方向に並んでいる例を示す図である。
【図７】長尺紙で副走査方向にカット紙の長さよりも長い画像がある場合の例を示す図である。
【図８】長尺紙で複数の画像が副走査方向に並んでいる例を示す図である。
【図９】第２の実施形態で対応可能な長尺紙の例を示す図である。
【図１０】本発明の第２の実施形態での処理の流れを示すフローチャートである。
【符号の説明】
１０１  誤差バッファ初期化装置
１０２，１０３，１０４，１０５  誤差拡散処理装置
１０６，１０７，１０８，１０９，３０３  誤差バッファ
３０１，８０４，８０５  入力ラスタデータ
３０２  出力ラスタデータ
３０４，３１１，３１３  加算器
３０５  閾値設定装置
３０６  比較器
３０７  減算器
３０８  誤差分配装置
３０９，３１０，３１２  遅延器
４０１  誤差配分窓
５０１  入力装置
５０２，６０１，７０１，８０１，９０１  入力画像
５０３  プリンタドライバ
５０４  出力装置
５０５  出力画像
５０６  ページバッファ
５０７  色変換装置
５０８  二値化装置
５０９  制御装置
６０２，６０３，７０２，８０２，８０３，９０２  画像
【図１】
0004272843.tif 000002
【図２】
0004272843.tif 000003
【図３】
0004272843.tif 000004
【図４】
0004272843.tif 000005
【図５】
0004272843.tif 000006
【図６】
0004272843.tif 000007
【図７】
0004272843.tif 000008
【図８】
0004272843.tif 000009
【図９】
0004272843.tif 000010
【図１０】
0004272843.tif 000011