(57)【要約】【課題】主走査毎に、前回の走査時におけるＮ値化結果に基づいて定められた制約情報に基づいたＮ値化処理を行うことにより、画像の低周波成分に依存した粒状性劣化を抑制し、高画質画像を形成する。【解決手段】複数ノズルを備える記録ヘッドによる複数パス印字を行う際に、入力画像データに応じて、走査Ｄｕｔｙ設定部１０５で記録ヘッドの走査ごとに、ノズルごとの走査Ｄｕｔｙを算出する。ハーフトーン処理部１０８では、該算出された走査Ｄｕｔｙに対し、予め定められた制約情報に基づくＮ値化を施して形成対象となるドットパターンを作成する。そして制約情報演算部１１１では、算出された走査Ｄｕｔｙとドットパターンに基づいて、次の走査時にハーフトーン処理部１０８で参照される制約情報を作成する。このとき、既に記録されたドットパターンに対して次に作成されるドットパターンの位相が低周波域で逆位相となるように作成する。【選択図】  図１
2008188805.tif 000002
【特許請求の範囲】
【請求項１】
複数の記録素子を備えた記録ヘッドを、記録媒体上で走査することによって画像を形成する画像形成装置であって、
画像データを入力する画像データ入力手段と、
該画像データに応じて、前記記録ヘッドの主走査ごとに、前記記録素子ごとの記録量を算出する走査内記録量算出手段と、
前記走査内記録量算出手段で算出された記録量に対し、予め定められた制約情報に基づくＮ値化処理（Ｎは２以上の整数）を施して形成対象となるドットパターンを作成するＮ値化手段と、
前記走査内記録量算出手段で算出された記録量と、前記Ｎ値化手段で出力されたドットパターンに基づいて、次の主走査時に前記Ｎ値化手段で参照される前記制約情報を作成する制約情報作成手段と、を有し、
前記制約情報作成手段は、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記Ｎ値化手段で作成されるドットパターンの位相が低周波域で逆位相となるように、前記制約情報を作成することを特徴とする画像形成装置。
【請求項２】
前記制約情報作成手段は、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記Ｎ値化手段で作成されるドットパターンの位相が高周波域で無相関となるように、前記制約情報を作成することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記制約情報作成手段は、前記記録媒体上の同一領域に既に記録された同一色のドットパターンに対し、前記Ｎ値化手段で作成されるドットパターンの位相が低周波域で逆位相となるように、前記制約情報を作成することを特徴とする請求項１または２に記載の画像形成装置。
【請求項４】
前記制約情報作成手段は、前記記録媒体上の同一領域に既に記録された異なる色のドットパターンに対し、前記Ｎ値化手段で作成されるドットパターンの位相が低周波域で逆位相となるように、前記制約情報を作成することを特徴とする請求項１または２に記載の画像形成装置。
【請求項５】
前記走査内記録量算出手段は、前記記録ヘッドにおける前記記録素子の位置に応じて前記画像データに応じた記録量を分割することによって、前記記録素子ごとの記録量を算出することを特徴とする請求項１乃至４のいずれか１項に記載の画像形成装置。
【請求項６】
前記走査内記録量算出手段は、前記記録媒体上の同一領域に対する前記記録素子ごとの記録量の合計が、前記画像データに応じた記録量となるように、前記記録素子ごとの記録量を算出することを特徴とする請求項５に記載の画像形成装置。
【請求項７】
前記Ｎ値化手段は、誤差拡散法によるＮ値化を行うことを特徴とする請求項１乃至６のいずれか１項に記載の画像形成装置。
【請求項８】
前記Ｎ値化手段は、ディザ法によるＮ値化を行うことを特徴とする請求項１乃至６のいずれか１項に記載の画像形成装置。
【請求項９】
前記制約情報作成手段は、前記走査内記録量算出手段で算出された記録量の累積値に基づいて、前記制約情報を作成することを特徴とする請求項１乃至８のいずれか１項に記載の画像形成装置。
【請求項１０】
前記記録ヘッドを複数の色ごとに備えることを特徴とする請求項１乃至９のいずれか１項に記載の画像形成装置。
【請求項１１】
複数の記録素子を備えた記録ヘッドを、記録媒体上で走査することによって画像を形成する画像形成装置にドットパターンを出力する画像処理装置であって、
画像データを入力する画像データ入力手段と、
該画像データに応じて、前記記録ヘッドの主走査ごとに、前記記録素子ごとの記録量を算出する走査内記録量算出手段と、
前記走査内記録量算出手段で算出された記録量に対し、予め定められた制約情報に基づくＮ値化処理（Ｎは２以上の整数）を施して形成対象となるドットパターンを作成するＮ値化手段と、
前記走査内記録量算出手段で算出された記録量と、前記Ｎ値化手段で出力されたドットパターンに基づいて、次の主走査時に前記Ｎ値化手段で参照される前記制約情報を作成する制約情報作成手段と、を有し、
前記制約情報作成手段は、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記Ｎ値化手段で作成されるドットパターンの位相が低周波域で逆位相となるように、前記制約情報を作成することを特徴とする画像処理装置。
【請求項１２】
前記制約情報作成手段は、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記Ｎ値化手段で作成されるドットパターンの位相が高周波域で無相関となるように、前記制約情報を作成することを特徴とする請求項１１に記載の画像処理装置。
【請求項１３】
複数の記録素子を備えた記録ヘッドを、記録媒体上で走査することによって画像を形成する画像形成装置の制御方法であって、
画像データ入力手段が、画像データを入力する画像データ入力ステップと、
走査内記録量算出手段が、該画像データに応じて、前記記録ヘッドの主走査ごとに、前記記録素子ごとの記録量を算出する走査内記録量算出ステップと、
Ｎ値化手段が、前記走査内記録量算出ステップにおいて算出された記録量に対し、予め定められた制約情報に基づくＮ値化（Ｎは２以上の整数）を施して形成対象となるドットパターンを作成するＮ値化ステップと、
制約情報作成手段が、前記走査内記録量算出ステップにおいて算出された記録量と、前記Ｎ値化ステップにおいて出力されたドットパターンに基づいて、次の主走査時に前記Ｎ値化手段で参照される前記制約情報を作成する制約情報作成ステップと、を有し、
前記制約情報作成ステップにおいては、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記Ｎ値化手段で作成されるドットパターンの位相が低周波域で逆位相となるように、前記制約情報を作成することを特徴とする画像形成装置の制御方法。
【請求項１４】
前記制約情報作成ステップにおいては、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記Ｎ値化手段で作成されるドットパターンの位相が高周波域で無相関となるように、前記制約情報を作成することを特徴とする請求項１３に記載の画像形成装置の制御方法。
【請求項１５】
複数の記録素子を備えた記録ヘッドを、記録媒体上で走査することによって画像を形成する画像形成装置に対してドットパターンを出力する画像処理装置の制御方法であって、
画像データ入力手段が、画像データを入力する画像データ入力ステップと、
走査内記録量算出手段が、該画像データに応じて、前記記録ヘッドの主走査ごとに、前記記録素子ごとの記録量を算出する走査内記録量算出ステップと、
Ｎ値化手段が、前記走査内記録量算出ステップにおいて算出された記録量に対し、予め定められた制約情報に基づくＮ値化を施して形成対象となるドットパターンを作成するＮ値化ステップと、
制約情報作成手段が、前記走査内記録量算出ステップにおいて算出された記録量と、前記Ｎ値化ステップにおいて出力されたドットパターンに基づいて、次の主走査時に前記Ｎ値化手段で参照される前記制約情報を作成する制約情報作成ステップと、を有し、
前記制約情報作成ステップにおいては、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記Ｎ値化手段で作成されるドットパターンの位相が低周波域で逆位相となるように、前記制約情報を作成することを特徴とする画像処理装置の制御方法。
【請求項１６】
前記制約情報作成ステップにおいては、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記Ｎ値化手段で作成されるドットパターンの位相が高周波域で無相関となるように、前記制約情報を作成することを特徴とする請求項１５に記載の画像処理装置の制御方法。
【請求項１７】
コンピュータで実行されることにより、該コンピュータに請求項１３または１４に記載の画像形成装置の制御方法を実現させることを特徴とするコンピュータプログラム。
【請求項１８】
コンピュータで実行されることにより、該コンピュータに請求項１５または１６に記載の画像処理装置の制御方法を実現させることを特徴とするコンピュータプログラム。
【請求項１９】
請求項１７または１８に記載のプログラムを記憶したことを特徴とするコンピュータ可読な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置、画像形成装置およびその制御方法に関し、特に、入力画像よりも低階調による画像形成を行うための画像処理装置、画像形成装置およびその制御方法に関する。
【背景技術】
【０００２】
ワードプロセッサやパーソナルコンピュータ、ファクシミリ等の画像出力装置としては一般に、所望される文字や画像等の情報を、用紙やフィルム等のシート状の記録媒体に記録する記録装置が用いられる。このような記録装置としては様々な記録方式のものがあるが、なかでも記録媒体に記録剤を付着させることで記録媒体上に画像を形成する方式が広く実用化されており、このような方式の代表例として、インクジェット記録方式が知られている。
【０００３】
インクジェット記録方式を適用した記録装置においては、記録速度の向上や高画質化等を実現するために、同一色同一濃度のインクを吐出可能なインク吐出口（ノズル）の複数を集積配列したノズル群を備える。さらに、画質の向上を実現するために、同一色で濃度の異なるインクを吐出可能としたノズル群や、同一色で同一濃度のインクの吐出量を何段階かに変えて吐出可能としたノズル群が設けられる場合もある。
【０００４】
このような記録装置において、多値の入力画像データをドットの記録信号にあたる２値画像（またはＮ値：Ｎは２条の整数であり、入力画像データの階調数より少ない階調数）に変換する手法として、誤差拡散法が知られている。誤差拡散法によれば、ある画素で生じた２値化誤差（またはＮ値化誤差）を以降の複数画素へ拡散することにより、擬似的に階調表現を行う。
【０００５】
また、上述した誤差拡散法のほかに、多値の入力画像データをドットの記録信号にあたる２値画像（またはＮ値）に変換する手段として、ディザ法が知られている。ディザ法によれば、予め用意した閾値マトリクスと多値の入力データを比較してＮ値化を行なうことで、擬似的に階調表現を行う。ディザ法は誤差拡散法よりも処理が単純であるため、より高速な処理を行うことが可能となる。
【０００６】
上述した誤差拡散法やディザ法によって階調数が変換された画像を、実際に記録媒体上に形成する際に、その画質向上を目的として、形成順や配置を決定する技術が提案されている（例えば、特許文献１参照）。かかる技術によれば、走査毎に誤差拡散法を適用することにより、各走査のレジストレーションが変動した場合でも、濃度ムラなどによる画像品質の低下を抑えることが可能となる。具体的には、所定の記録媒体における同一の主走査記録領域に対して異なるノズル群によって複数回主走査を行い、その主走査毎に誤差拡散法により２値（またはＮ値）画像を形成する。このように主走査毎に誤差拡散法を実施して２値（またはＮ値）画像を生成する場合、主走査内のドット配置の分散性が高く均一となる。したがって、複数の主走査によって画像が形成される際に、記録媒体の送り量や記録素子の位置などの物理的なレジストレーションが変動しても、粒状性の変化は発生しにくくなるという効果がある。さらに、複数の走査間のドット配置において相関が少ないため、レジストレーションが変動しても、紙面に対するドットの被覆率変化が低減され、濃度ムラがかなり緩和される。
【特許文献１】特開２０００-１０３０８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した特許文献１に記載された手法によれば、主走査間のドット配置で相関性が小さいために、複数の走査によって生成される画像の低周波成分が強調されてしまうという問題がある。この低周波成分は、走査の回数が増えるほど強調されることになり、視覚上目障りな粒状性として認識されてしまう。
【０００８】
本発明はこのような問題を解決するためになされたものであり、以下のような機能を有する画像形成装置およびその制御方法を提供することを目的とする。すなわち、主走査毎に、前回の主走査でのＮ値化結果（Ｎは２以上の整数）に基づいてリアルタイムに更新された制約情報に基づくＮ値化処理を行うことにより、画像の低周波成分に依存した粒状性劣化を抑制し、高画質画像を形成可能とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するための一手段として、本発明の画像形成装置は以下の構成を備える。
【００１０】
すなわち、複数の記録素子を備えた記録ヘッドを、記録媒体上で走査することによって画像を形成する画像形成装置であって、画像データを入力する画像データ入力手段と、該画像データに応じて、前記記録ヘッドの主走査ごとに、前記記録素子ごとの記録量を算出する走査内記録量算出手段と、前記走査内記録量算出手段で算出された記録量に対し、予め定められた制約情報に基づくＮ値化処理（Ｎは２以上の整数）を施して形成対象となるドットパターンを作成するＮ値化手段と、前記走査内記録量算出手段で算出された記録量と、前記Ｎ値化手段で出力されたドットパターンに基づいて、次の主走査時に前記Ｎ値化手段で参照される前記制約情報を作成する制約情報作成手段と、を有し、前記制約情報作成手段は、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記Ｎ値化手段で作成されるドットパターンの位相が低周波域で逆位相となるように、前記制約情報を作成することを特徴とする。
【００１１】
さらに、前記制約情報作成手段は、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記Ｎ値化手段で作成されるドットパターンの位相が高周波域で無相関となるように、前記制約情報を作成することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、主走査毎に、前回の主走査でのＮ値化結果に基づいてリアルタイムに更新された制約情報に基づくＮ値化処理を行うことにより、画像の低周波成分に依存した粒状性劣化を抑制し、高画質画像を形成することが可能となる。
【発明を実施するための最良の形態】
【００１３】
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１４】
＜第１実施形態＞
図１は、本実施形態による画像形成システムの構成を示したブロック図である。図１において、１は画像処理装置、２はプリンタを示す。なお、画像処理装置１は例えば一般的なパーソナルコンピュータにインストールされたプリンタドライバによって実施され得る。その場合、以下に説明する画像処理装置１の各部は、コンピュータが所定のプログラムを実行することにより実現されることになる。また、別の構成としては、例えば、プリンタ２が画像処理装置１を含む構成としてもよい。
【００１５】
画像処理装置１とプリンタ２は、プリンタインタフェース又は回路によって接続されている。画像処理装置１は、画像データ入力端子１０１より印刷対象の画像データを入力し、これを入力画像バッファ１０２に格納する。色分解処理部１０３は、入力された画像データをプリンタ２が備えるインク色へ色分解する。この色分解処理に際しては、色分解用ルックアップテーブル（ＬＵＴ）１０４が参照される。走査Ｄｕｔｙ設定部１０５は、走査Ｄｕｔｙ設定用ＬＵＴ１０６に基づき、色分解処理部１０３にて分解された各インク色値をさらに走査毎の各インク色値へ変換し、走査Ｄｕｔｙバッファ１０７にそのデータを格納する。本実施形態における走査Ｄｕｔｙデータはすなわち、各走査における記録インク量を示すものである。
【００１６】
ハーフトーン処理部１０８は、走査Ｄｕｔｙ設定部１０５によって得られた走査毎の各色の多階調（３階調以上）値を、後述する制約情報バッファ１０９に蓄えられた値に基づいて２値画像データに変換する。
【００１７】
制約情報バッファ１０９には、記録される画像上のアドレスに、ドットが形成されやすいか否かを示す情報が蓄えられている。なお、制約情報バッファ１０９はインク色毎に確保するものとする。
【００１８】
ハーフトーン画像格納バッファ１１０には、ハーフトーン処理部１０８にて得られた各色の２値画像データが格納される。制約情報演算部１１１は、ハーフトーン画像格納バッファ１１０に格納された２値画像データと、走査Ｄｕｔｙバッファ１０７に格納された走査毎Ｄｕｔｙデータに基づく所定の演算を行って制約情報を作成し、制約情報バッファ１０９の内容を更新する。
【００１９】
ハーフトーン画像格納バッファ１１０に格納された２値画像データは、出力端子１１２よりプリンタ２へ出力される。
【００２０】
プリンタ２においては、記録ヘッド２０１を記録媒体２０２に対して相対的に縦横に移動することにより、画像処理装置１にて形成された２値画像データを記録媒体上に形成する。記録ヘッド２０１としては熱転写方式、電子写真方式、インクジェット方式等のものを用いることができ、いずれも一つ以上の記録素子（インクジェット方式であればノズル）を有する。移動部２０３は、ヘッド制御部２０４の制御下で、記録ヘッド２０１を移動する。搬送部２０５は、ヘッド制御部２０４の制御下で、記録媒体を搬送する。また、インク色選択部２０６は、画像処理装置１により形成された各色の２値画像データに基づいて、記録ヘッド２０１に搭載されるインク色の中から、インク色を選択する。
【００２１】
図２は、記録ヘッド２０１の構成例を示す図である。本実施形態ではシアン(Ｃ)、マゼンタ(Ｍ)、イエロー(Ｙ)、ブラック(Ｋ)の４色のインクに加え、相対的にインク濃度が低い淡シアン(Ｌｃ)、淡マゼンタ(Ｌｍ)を含めた６色のインクを、記録ヘッド２０１に搭載している。
【００２２】
なお、図２においては、説明を簡単にするため用紙搬送方向にノズルが一列に配置された構成を示しているが、ノズルの数、配置はこの例に限られるものではない。例えば、同一色でも吐出量が異なるノズル列を有しても良いし、同一吐出量ノズルが複数列あっても良いし、ノズルがジグザグに配置されているような構成であっても良い。また、図２ではインク色の配置順序はヘッド移動方向に一列となっているが、用紙搬送方向に一列に配置する構成であっても良い。
【００２３】
次に、上述した機能構成を備えた本実施形態の画像処理装置１における画像形成処理について、図３のフローチャートを用いて説明する。
【００２４】
まず、多階調のカラー入力画像データが入力端子１０１より入力され、入力画像バッファ１０２に格納される（Ｓ１０１）。ここで入力画像データは、レッド(Ｒ)、グリーン(Ｇ)、ブルー(Ｂ)の３つの色成分によりカラー画像データを構築している。
【００２５】
次に、色分解処理部１０３にて、入力画像バッファ１０２に格納された多階調のカラー入力画像データに対し、色分解用ＬＵＴ１０４を用いて、ＲＧＢからＣＭＹＫ及びＬｃＬｍのインク色プレーンへの色分解処理を行う（Ｓ１０２）。本実施形態では、色分解処理後の各画素データを８ビットとして扱うが、それ以上の階調数への変換を行っても構わない。
【００２６】
上述したように本実施形態における記録ヘッド２０１は、６種類の各インク色を保有する。そのため、ＲＧＢのカラー入力画像データは、ＣＭＹＫＬｃＬｍ各プレーンの計６プレーンの画像データへ変換される。即ち、６種類のインク色に対応した６種類のプレーンの画像データが生成される。
【００２７】
以下、本実施形態における色分解処理の詳細について、図４を用いて説明する。
【００２８】
図４は、色分解処理部１０３における入出力データの詳細を示している。同図に示すように入力された画像データＲ'Ｇ'Ｂ'は、色分解用ＬＵＴ１０４を参照して次式の通りに、ＣＭＹＫＬｃＬｍデータへ変換される。
【００２９】
Ｃ＝Ｃ_ＬＵＴ_３Ｄ(Ｒ'，Ｇ'，Ｂ')            ・・・(１)
Ｋ＝Ｍ_ＬＵＴ_３Ｄ(Ｒ'，Ｇ'，Ｂ')            ・・・(２)
Ｙ＝Ｙ_ＬＵＴ_３Ｄ(Ｒ'，Ｇ'，Ｂ')            ・・・(３)
Ｋ＝Ｋ_ＬＵＴ_３Ｄ(Ｒ'，Ｇ'，Ｂ')            ・・・(４)
Ｌｃ＝Ｌｃ_ＬＵＴ_３Ｄ(Ｒ'，Ｇ'，Ｂ')        ・・・(５)
Ｌｍ＝Ｌｍ_ＬＵＴ_３Ｄ(Ｒ'，Ｇ'，Ｂ')        ・・・(６)
ここで、式(１)〜(６)の右辺に定義される各関数が、色分解用ＬＵＴ１０４の内容に該当する。色分解用ＬＵＴ１０４はレッド、グリーン、ブルーの３入力値から、各インク色への出力値を定める。本実施形態では、ＣＭＹＫＬｃＬｍの６色を具備する構成であるため、３入力値から６出力値を得るＬＵＴ構成となる。
【００３０】
以上の処理により、本実施形態における色分解処理が完了する。
【００３１】
図３に戻り、次に、走査Ｄｕｔｙ設定部１０５は、走査番号ｋ及び色分解データ切り出し位置としてのＹ座標を示すＹｃｕｔ(ｋ)を設定する(Ｓ１０３)。Ｙｃｕｔ(ｋ)はすなわち、走査番号ｋにおける色分解データ切り出し位置であり、ノズル上端座標に相当する。なお、走査番号ｋの初期値は１であり、処理ループ毎に１づつインクリメントされる。
【００３２】
ここで、１６個のノズル列を具備し、画像上の同一主走査記録領域に対して４回のスキャンで画像を形成させる４パス印字の場合を例として、色分解データ切り出し位置Ｙ座標Ｙｃｕｔの設定法を説明する。
【００３３】
一般的に４パス印字の場合、図５に示すように、走査番号の初期値(ｋ＝１)では、ノズル下端１／４のみを使用して画像形成を行い、走査番号ｋ＝２では走査番号ｋ＝１に対してノズル長さ１／４分紙送りしてから画像形成を行う。さらに走査番号ｋ＝３では走査番号ｋ＝２に対してノズル長さ１／４分紙送りしてから画像を形成する。このような画像形成および紙送りを繰り返して、最終出力画像が形成される。そのため、走査番号ｋ＝１の場合、ノズル上端座標に相当する色分解データ切り出し位置Ｙｃｕｔ＝−１２となる。
【００３４】
上述した色分解データ切り出し位置Ｙｃｕｔ(ｋ)を一般化すると、ノズル列数：Ｎｚｚｌ、パス数：Ｐａｓｓ、走査番号：ｋ、として次式で与えられる。
【００３５】
Ｙｃｕｔ(ｋ)＝−Ｎｚｚｌ＋(Ｎｚｚｌ／Ｐａｓｓ)×ｋ    ・・・(７)
以上のようにＹｃｕｔ(ｋ)が設定されると、次に走査Ｄｕｔｙ設定部１０５は、走査Ｄｕｔｙ設定用ＬＵＴ１０６と各色分解処理プレーンの画像データに基づき、走査毎のＤｕｔｙ値を設定する(Ｓ１０４)。
【００３６】
走査Ｄｕｔｙ設定用ＬＵＴ１０６によれば、４パスの場合、図６に示すような値が与えられる。図６は１６ノズル、４パスの例を表しており、縦軸がノズル位置、横軸がＤｕｔｙ分割率を示す。図６によれば、Ｐ１〜Ｐ４の変曲点を４ノズル毎に設定し、その各変曲点を線形補間した１６ノズル分のＤｕｔｙ分割率が、走査Ｄｕｔｙ設定用ＬＵＴ１０６として保持されている。ここで、Ｐ１〜Ｐ４の数値は、以下のように設定される。
【００３７】
Ｐ１＋Ｐ２＋Ｐ３＋Ｐ４＝１．０        ・・・(８)
なお、走査Ｄｕｔｙ設定用ＬＵＴ１０６として保持される値は上記設定法に限られるものではなく、例えば変曲点を細かく設定してもよいし、ノズル毎に直接指定しても良い。
【００３８】
ステップＳ１０４で設定される走査Ｄｕｔｙは、図７に示すように、走査Ｄｕｔｙ設定用ＬＵＴ１０６と色分解データの積として設定される。すなわち、図７の左項に示されるように、色分解後のデータに対して、ノズルごとに設定されたＤｕｔｙ分割率を乗じることにより、その結果が図７の右項に示されるように、ノズルごとの走査Ｄｕｔｙとして設定される。これにより、実際の走査時には、ターゲットとする色分解データに対し、各ノズルは走査Ｄｕｔｙ分のみのインクを吐出して画像を形成する。
【００３９】
ここで本実施形態においては、対応するノズルが画像Ｙアドレスの領域外座標になるときは、走査Ｄｕｔｙを０とする。例えば、走査番号ｋ＝１では、図８に示すように、ノズル列上端３／４で画像Ｙアドレスが負になるため走査Ｄｕｔｙ値＝０が代入され、ノズル列下端１／４には有意な値が代入される。
【００４０】
また、色分解データ切り出し位置Ｙｃｕｔ(ｋ)は走査番号ｋによって決まるため、走査番号ｋ＝１〜７の場合、走査Ｄｕｔｙは図９に示すように決定される。図９においては、各走査番号ごとのノズル位置に対する走査Ｄｕｔｙが示されており、走査番号ごとに走査Ｄｕｔｙが異なっていることが分かる。図９における各走査Ｄｕｔｙは、色分解データと、走査Ｄｕｔｙ設定用ＬＵＴ１０６の積により定まるため、紙送りしながらＬＵＴとの積をとると、領域１の部分では、走査番号ｋ＝１〜４の４回の走査で形成される１ラスタの合計値が色分解データと同じになる。同様に領域２、３、４においても、１ラスタの合計値が色分解データと同じになる。
【００４１】
本実施形態においては図９に示すように走査Ｄｕｔｙが分解されるが、予めＤｕｔｙ分解閾値Ｄ_Ｔｈ3を用意しておき、該閾値と色分解データを比較する。そしてＤ_Ｔｈ3よりも色分解データ値が小さい場合（後述する式（１０）〜（１５）に相当）には、４回の走査で画像形成を行うことはせず、１〜３回の走査で画像形成を行うようにする。
【００４２】
上述したような走査Ｄｕｔｙ設定部１０５における走査Ｄｕｔｙ設定を、例えばシアンＣ(Ｘ，Ｙ)に限って式で詳細に表すと、以下のように与えられる。なお、Ｃ_ｄ(Ｘ，Ｙ)はアドレス(Ｘ，Ｙ)における走査Ｄｕｔｙを、Ｓ_ＬＵＴ(Ｙ)はアドレスＹにおける走査Ｄｕｔｙ設定用ＬＵＴ１０６の値をそれぞれ示す。また、０≦ｎｘ＜画像Ｘサイズ、０≦ｎｙ＜Ｎｚｚｌ（ノズル列数：この場合１６）、である。また、Ｄｕｔｙ分解閾値として、上述したＤ_Ｔｈ3に加えて、さらに小さい閾値を示すＤ_Ｔｈ2，Ｄ_Ｔｈ1（Ｄ_Ｔｈ3＞Ｄ_Ｔｈ2＞Ｄ_Ｔｈ1）が定義されている。
【００４３】
Ｃ(ｎｘ，Ｙｃｕｔ(ｋ)＋ｎｙ)＞Ｄ_Ｔｈ3のとき、
Ｃ_ｄ(ｎｘ，ｎｙ)＝Ｃ(ｎｘ，Ｙｃｕｔ(ｋ)＋ｎｙ)×Ｓ_ＬＵＴ(ｎｙ)・・・(９)
Ｃ(ｎｘ，Ｙｃｕｔ(ｋ)＋ｎｙ)≦Ｄ_Ｔｈ1のとき、
「走査番号ｋ＝１，５，・・・，４ｎ＋１(ｎは０以上の整数)」については
Ｃ_ｄ(ｎｘ，ｎｙ)＝Ｃ(ｎｘ，Ｙｃｕｔ(ｋ)＋ｎｙ)            ・・・(１０)
「上記以外の走査番号」については
Ｃ_ｄ(ｎｘ，ｎｙ)＝０                                      ・・・(１１)
Ｃ(ｎｘ，Ｙｃｕｔ(ｋ)＋ｎｙ)≦Ｄ_Ｔｈ2のとき、
「走査番号ｋ＝１，５，・・・，４ｎ＋１」および
「走査番号ｋ＝２，６，・・・，４ｎ＋２」については、
Ｃ_ｄ(ｎｘ，ｎｙ)＝Ｃ(ｎｘ，Ｙｃｕｔ(ｋ)＋ｎｙ)／２        ・・・(１２)
「上記以外の走査番号」については、
Ｃ_ｄ(ｎｘ，ｎｙ)＝０                                      ・・・(１３)
Ｃ(ｎｘ，Ｙｃｕｔ(ｋ)＋ｎｙ)≦Ｄ_Ｔｈ3のとき、
「走査番号ｋ＝１，５，・・・，４ｎ＋１」および
「走査番号ｋ＝２，６，・・・，４ｎ＋２」および
「走査番号ｋ＝３，７，・・・，４ｎ＋３」については、
Ｃ_ｄ(ｎｘ，ｎｙ)＝Ｃ(ｎｘ，Ｙｃｕｔ(ｋ)＋ｎｙ)／３        ・・・(１４)
「上記以外の走査番号」については、
Ｃ_ｄ(ｎｘ，ｎｙ)＝０                                      ・・・(１５)
上記式（９）が通常のＤｕｔｙ分解処理であり、式（１０）〜（１５）が例外Ｄｕｔｙ分解処理を示す。色分解データ値がＤ_Ｔｈ1よりも小さい場合には、式（１０），（１１）で示すように１回の走査で画像形成を行うようにし、Ｄ_Ｔｈ2よりも小さい場合には、式（１２），（１３）で示すように２回の走査で画像形成を行うようにする。そして、Ｄ_Ｔｈ3よりも小さい場合には、式（１４），（１５）で示すように３回の走査で画像形成を行うようにする。
【００４４】
Ｌｃ(Ｘ，Ｙ)、Ｍ(Ｘ，Ｙ)、Ｌｍ(Ｘ，Ｙ)、Ｙ(Ｘ，Ｙ)、Ｋ(Ｘ，Ｙ)に対しても同様に、上記式により走査Ｄｕｔｙへの分解が行われる。
【００４５】
なお、本実施形態では４パスを例として説明したため、式(１０)〜(１５)のように例外のＤｕｔｙ分解処理を設定したが、例えば８パスでも同様に、Ｄｕｔｙ分解閾値Ｄ_Ｔｈ1〜Ｄ_Ｔｈ7を設定して例外のＤｕｔｙ分解処理を行う必要がある。
【００４６】
以上のように走査Ｄｕｔｙ設定部１０５で設定された走査Ｄｕｔｙデータは、走査Ｄｕｔｙバッファ１０７に格納される（Ｓ１０５）。すなわち、走査Ｄｕｔｙバッファ１０７は図１０に示すように、縦方向がノズル数、横方向が画像のＸサイズに相当するバンド状の走査Ｄｕｔｙデータ値を、各色毎に格納する。
【００４７】
次にハーフトーン処理部１０８において、走査Ｄｕｔｙバッファ１０７に格納された走査Ｄｕｔｙデータと、制約情報バッファ１０９に格納された制約情報データの合計値を、２レベルの階調値（２値データ）に変換するハーフトーン処理を行う（Ｓ１０６）。
【００４８】
制約情報バッファ１０９も図１１に示すように、縦方向がノズル数、横方向が画像のＸサイズに相当するバンド状の制約情報データ値を、各色毎に格納している。制約情報バッファ１０９には、記録される画像上のアドレスに２値画像が形成されやすいか否かを示す制約情報が格納され、走査番号ｋごとに更新される。ただし、走査番号ｋ＝１の処理開始時には、初期値として全て０が代入されている。すなわち、アドレス(Ｘ，Ｙ)における各色の制約情報をＣ_ｒ(Ｘ，Ｙ)、Ｌｃ_ｒ(Ｘ，Ｙ)、Ｍ_ｒ(Ｘ，Ｙ)、Ｌｍ_ｒ(Ｘ，Ｙ)、Ｙ_ｒ(Ｘ，Ｙ)、Ｋ_ｒ(Ｘ，Ｙ)とすると、これらは走査番号ｋ＝１のときは以下のように記述される。なお、０≦ｎｘ＜画像Ｘサイズ、０≦ｎｙ＜Ｎｚｚｌ（ノズル列数：この場合１６）である。
【００４９】
Ｃ_ｒ(ｎｘ，ｎｙ)＝０                    ・・・(１６)
Ｌｃ_ｒ(ｎｘ，ｎｙ)＝０                  ・・・(１７)
Ｍ_ｒ(ｎｘ，ｎｙ)＝０                    ・・・(１８)
Ｌｍ_ｒ(ｎｘ，ｎｙ)＝０                  ・・・(１９)
Ｙ_ｒ(ｎｘ，ｎｙ)＝０                    ・・・(２０)
Ｋ_ｒ(ｎｘ，ｎｙ)＝０                    ・・・(２１)
そのため、実質的には走査番号ｋ≧２の時に、制約情報バッファ１０９は有意な制約情報に更新されていくことになる。制約情報の値が小さいほど、その箇所にドットが形成されにくく、逆に値が大きいほどドットが形成されやすい。なお、制約情報バッファ１０９に格納される値は、どのような走査番号のタイミングであっても、平均値が０となるように各値が格納される。具体的には、その箇所にドットが形成されやすい場合には正の値が、その箇所にドットが形成されにくい場合は負の値が格納されるが、制約情報の更新についての詳細は後述する。
【００５０】
本実施形態におけるハーフトーン処理は、多値の入力画像データを２値画像（または２値以上で入力階調数より少ない階調数の画像）に変換する処理として、例えば周知の誤差拡散法を用いる。以下、本実施形態におけるハーフトーン処理について、図１２のブロック図と図１３のフローチャートを用いて詳細に説明するが、説明を簡略化するため、４パス印字、走査番号ｋ＝１におけるシアンのハーフトーン処理を例として説明する。図１２は、ハーフトーン処理部１０８の詳細構成を示すブロック図であり、図１３はハーフトーン処理部１０８におけるハーフトーン処理の詳細を示すフローチャートである。
【００５１】
まず図１３に示すステップＳ２０１において、シアンの走査Ｄｕｔｙと制約情報の合計を入力する。すなわち、図１２に示す制約情報加算部４０１において、シアン走査ＤｕｔｙであるＣ_ｄとシアン制約情報Ｃ_ｒの合計値データＩｃを以下のように算出する。ただし、走査番号ｋ＝１のとき、制約情報Ｃ_ｒは全て０である。
【００５２】
Ｉｃ＝Ｃ_ｄ＋Ｃ_ｒ            ・・・(２２)
次にステップＳ２０２において、誤差拡散処理用に累積誤差を加算する。以下、累積誤差の加算処理について詳細に説明する。
【００５３】
本実施形態においては、誤差拡散処理のための誤差拡散係数として、図１４に示すようにＫ１〜Ｋ４の４つの係数を持つとする。例えば、Ｋ１＝７／１６、Ｋ２＝３／１６、Ｋ３＝５／１６、Ｋ４＝１／１６とする。ただし、拡散係数は上記のように固定とする必要はなく、階調に応じて（例えばＣ_ｄに応じて）変更させても良いし、上記４係数に限らずさらに多くの係数を持たせても良い。
【００５４】
このような誤差拡散係数により誤差を拡散、累積するために、ハーフトーン処理部１０８では累積誤差ラインバッファをシアンに対して４組確保し（４０２〜４０５）、使用する累積誤差ラインバッファを走査番号ごとに、例えば以下のように切り替える。
【００５５】
「走査番号ｋ＝１，５，・・・，４ｎ＋１(ｎは０以上の整数)のとき」
シアン（４ｎ＋１）累積誤差ラインバッファ４０２を使用
「走査番号ｋ＝２，６，・・・，４ｎ＋２のとき」
シアン（４ｎ＋２）累積誤差ラインバッファ４０３を使用
「走査番号ｋ＝３，７，・・・，４ｎ＋３のとき」
シアン（４ｎ＋３）累積誤差ラインバッファ４０４を使用
「走査番号ｋ＝４，８，・・・，４ｎ＋４のとき」
シアン（４ｎ＋４）累積誤差ラインバッファ４０５を使用
なお、各シアン累積誤差ラインバッファ４０２，４０３，４０４，４０５はそれぞれ、図１５の１５０１〜１５０４に示す４組の記憶領域からなる。すなわち、「Ｅｃ1_0，Ｅｃ1(ｘ)」、「Ｅｃ2_0，Ｅｃ2(ｘ)」、「Ｅｃ3_0，Ｅｃ3(ｘ)」、「Ｅｃ4_0，Ｅｃ4(ｘ)」の４組である。例えば、シアン（４ｎ＋１）累積誤差バッファ４０２は、１個の記憶領域Ｅｃ1_0と、入力画像の横画素数Ｗと同数の記憶領域Ｅｃ1_(ｘ)（ｘ＝１〜Ｗ）を有する。また、各シアン累積誤差ラインバッファ４０２，４０３，４０４，４０５はそれぞれ、走査番号ｋ＝１，２，３，４の処理開始時のみ、全て初期値０で初期化されている。例えば走査番号ｋ＝５の処理開始時には、（４ｎ＋１）累積誤差バッファ４０２は初期化されない。
【００５６】
本実施形態では、１色あたり上述した４組の累積誤差ラインバッファが必要になるため、これを６色分用意する必要がある。すなわち、合計４×６＝２４組のラインバッファが必要になる。
【００５７】
ここでは、走査番号ｋ＝１についてのハーフトーン処理を例として説明するため、シアン（４ｎ＋１）累積誤差バッファ４０２を使用して誤差拡散処理を実施するとする。すなわち、累積誤差加算部４０６において、走査Ｄｕｔｙと制約情報の合計である入力データ値に対して、入力画素データの横画素位置ｘに対応する誤差Ｅｃ1(ｘ)が加算される。即ち、入力された注目データをＩｃ、累積誤差加算後のデータをＩｃ'とすると、以下の式が成り立つ。
【００５８】
Ｉｃ'＝Ｉｃ＋Ｅｃ1(ｘ)            ・・・(２３)
次にステップＳ２０３において、閾値選択部４０７は閾値Ｔを選択する。閾値Ｔは、例えば以下のように設定される。
【００５９】
Ｔ＝１２８                        ・・・(２４)
或いは、ドット生成遅延を回避するため、平均量子化誤差が小さくなるよう、Ｃ_dに応じて閾値Ｔを以下のように細かく変更しても良い。
【００６０】
Ｔ＝ｆ(Ｃ_d)                        ・・・(２５)
次にステップＳ２０４において、量子化部４０８は、誤差加算後の画素データＩｃ'と閾値Ｔを比較し、ドットの２値化結果であるＯｕｔ_ｃを決定する。その規則は次の通りである。
【００６１】
Ｉｃ'＜Ｔのとき、
Ｏｕｔ_ｃ＝０                      ・・・(２６)
Ｉｃ'≧Ｔのとき、
Ｏｕｔ_ｃ＝２５５                  ・・・(２７)
次にステップＳ２０５において、誤差演算部４０９は、注目画素Ｉｃに誤差を加算した画素データＩｃ'と、出力画素値Ｏｕｔ_ｃとの差分Ｅｒｒ_ｃを、次のように算出する。
【００６２】
Ｅｒｒ_ｃ(ｘ)＝Ｉｃ'−Ｏｕｔ_ｃ      ・・・(２８)
次にステップＳ２０６において、誤差拡散部４１０が誤差を拡散する。即ち、シアン（４ｎ＋１）累積誤差ラインバッファ４０２を用いて、横画素位置ｘに応じた誤差Ｅｒｒ_ｃ(ｘ)の拡散処理が、以下のように行われる。
【００６３】
Ｅｃ1(ｘ＋１)←Ｅｃ1(ｘ＋１)＋Ｅｒｒ_c(ｘ)×７／１６    (ｘ＜W)
Ｅｃ1(ｘ−１)←Ｅｃ1(ｘ−１)＋Ｅｒｒ_c(ｘ)×３／１６    (ｘ＞１)
Ｅｃ1(ｘ)←Ｅｃ1_0＋Ｅｒｒ_c(ｘ)×５／１６            (１＜ｘ＜Ｗ)
Ｅｃ1(ｘ)←Ｅｃ1_0＋Ｅｒｒ_c(ｘ)×８／１６              (ｘ＝１)
Ｅｃ1(ｘ)←Ｅｃ1_0＋Ｅｒｒ_c(ｘ)×１３／１６            (ｘ＝Ｗ)
Ｅｃ1_0←Ｅｒｒ_c(x)×１／１６                          (ｘ＜Ｗ)
Ｅｃ1_0←０                                              (ｘ＝Ｗ)
・・・(２９)
以上で、走査番号ｋ＝１のシアン１画素分の２値化（量子化値０，２５５）が完了する。
【００６４】
以上説明したステップＳ２０１〜Ｓ２０６の処理を、バンド内のアドレス(０，０)〜(Ｗ−１，Ｎｚｚｌ−１)まで行う（Ｓ２０７）ことにより、ハーフトーン画像データのドット位置、すなわちドットのオン／オフを決定することができる。
【００６５】
なお、以上は走査番号ｋ＝１について説明したが、走査番号ｋ＝２〜４については、それぞれのシアン累積誤差ラインバッファ４０３〜４０５を用いて上記ハーフトーン処理を行う。走査番号ｋ＝５の処理では、走査番号ｋ＝１と同じシアン（４ｎ＋１）累積誤差ラインバッファ４０２を、初期化せずに（全０を代入せずに）そのまま用いる。これは図１６に示すように、走査番号ｋ＝１と走査番号ｋ＝５の印字領域が上下に隣接しているため、保存されている累積誤差をそのまま、隣接下の領域に適用するためである。もしも、ｋ＝５でシアン累積誤差ラインバッファ４０２を初期化すると、ｋ＝１と隣接する境界部で誤差が保存されなくなり、ドットの連続性が保てなくなってしまう。
【００６６】
図３に戻り、以上説明したようにステップＳ１０６におけるハーフトーン処理が終了すると、次に、ハーフトーン処理後の２値画像データはハーフトーン画像格納バッファ１１０に格納される（Ｓ１０７）。ここで図１７に、走査番号ｋ＝１の走査Ｄｕｔｙをハーフトーン処理した結果が、ハーフトーン画像格納バッファ１１０に格納された様子を示す。同図に示されるようにハーフトーン画像格納バッファ１１０には、走査Ｄｕｔｙの画素位置に対応する（ノズル数：Ｎｚｚｌ）×（画像Ｘサイズ：Ｗ）分の２値画像データが格納される。
【００６７】
以上により、走査番号ｋ＝１でのハーフトーン処理が終了し、その結果、各色分の一回のヘッド動作で形成される２値画像が、各色分のハーフトーン画像格納バッファ１１０に格納されることになる。
【００６８】
次に、ハーフトーン画像格納バッファ１１０に蓄えられた、縦方向がノズル数（Ｎｚｚｌ）、横方向が画像のＸサイズ（Ｗ）に相当するバンドデータが、画像出力端子１１２より出力される（Ｓ１０８）。
【００６９】
すると次に、制約情報演算部１１１において制約情報を演算する（Ｓ１０９）。以下、本実施形態における制約情報演算処理について、図１８のブロック図と図１９のフローチャートを用いて詳細に説明するが、説明を簡略化するため、４パス印字、走査番号ｋ＝１におけるシアンの制約情報の演算を例として説明する。図１８は、制約情報演算部１１１の詳細構成を示すブロック図であり、図１９は制約情報演算処理部１１１における制約情報演算処理を示すフローチャートである。
【００７０】
上述したように本実施形態における制約情報とは、現在の走査番号ｋ＝１の次の走査番号ｋ＝２におけるハーフトーン画像のドット配置を決める際に参照される、ドットが打たれやすいか否かを示す情報である。
【００７１】
まず、図１９に示すステップＳ３０１において、走査Ｄｕｔｙバッファ１０７のデータに対してフィルタ処理を行う。すなわち、図１８に示す走査Ｄｕｔｙフィルタ処理部５０１において、走査Ｄｕｔｙバッファ１０７内のシアン走査ＤｕｔｙであるＣ_ｄに対して、下式のように所定のフィルタＦ_ｍによるフィルタ処理を行ってＣ_ｄｆを算出する。図２０に、フィルタ処理された走査Ｄｕｔｙデータの模式図を示す。
【００７２】
Ｃ_ｄｆ＝Ｃ_ｄ＊Ｆ_ｍ          ・・・(３０)
ただし、＊はコンボリューションを示す
なお、本実施形態におけるフィルタＦ_ｍは、図２４の２４０１に示すようにフィルタサイズが３×３正方形で、係数がほぼ同心円に並ぶ等方的加重平均フィルタとして説明するが、この形態に限るものではない。例えば、フィルタサイズは５×５，７×７，９×９のような正方形でも、３×５，５×７，５×９のような長方形でも良いし、フィルタ係数が楕円である非等方フィルタであっても良い。また、ローパス特性に限らず、バンドパス特性や、ハイパス特性のフィルタであっても良い。
【００７３】
次にステップＳ３０２において、ハーフトーンデータフィルタ処理部５０２が、Ｏｕｔ_ｃに対して、下式のように所定のローパスフィルタＬＰＦ_ｂによるフィルタ処理を行ってＯｕｔ_ｃ_LPFを算出する。図２１に、フィルタ処理されたハーフトーンデータの模式図を示す。
【００７４】
Ｏｕｔ_ｃ_LPF＝Ｏｕｔ_ｃ＊ＬＰＦ_ｂ        ・・・(３１)
本実施形態におけるＬＰＦ_ｂの係数もＦ_ｍと同様に、図２４の２４０２に示すようにフィルタサイズが３×３正方形で、係数がほぼ同心円に並ぶ等方的加重平均フィルタとして説明するが、この形態に限るものではない。ただし、ＬＰＦ_ｂはローパス特性を有することが好ましい。また、本実施形態ではＦ_ｍとＬＰＦ_ｂとして同じフィルタ係数を用いているが、もちろん異なる係数であっても良い。
【００７５】
次にステップＳ３０３において、走査Ｄｕｔｙデータシフト部５０４は、走査Ｄｕｔｙフィルタ処理部５０１から出力されたデータＣ_ｄｆを、一回の紙送り量ＬＦ＝Ｎｚｚｌ／Ｐａｓｓ＝１６／４＝４だけ上にシフトする。図２２に、シフトされた走査Ｄｕｔｙデータの模式図を示す。シフトした走査ＤｕｔｙデータＣ'_ｄｆは、以下のように算出される。なお、０≦ｎｘ＜画像Ｘサイズ、０≦ｎｙ＜Ｎｚｚｌとする。
【００７６】
Ｃ'_ｄｆ(ｎｘ，ｎｙ)＝Ｃ_ｄｆ(ｎｘ，ｎｙ＋ＬＦ)        ・・・(３２)
式（３２）において、ｎｙ＋ＬＦ≧Ｎｚｚｌのときは、Ｃ'_ｄｆ(ｎｘ，ｎｙ)＝０とする。すなわち、シフト後の下端ＬＦノズル分（この場合４ノズル分）には０を代入する。
【００７７】
そしてステップＳ３０４でも同様に、ハーフトーンデータシフト部５０５において、データＯｕｔ_ｃ_LPFを紙送り分上にシフトする。図２３に、シフトされたハーフトーンデータの模式図を示す。シフトしたハーフトーンデータＯｕｔ'_c_LPFは、以下のように算出される。なお、０≦ｎｘ＜画像Ｘサイズ、０≦ｎｙ＜Ｎｚｚｌとする。
【００７８】
Ｏｕｔ'_ｃ_LPF(ｎｘ，ｎｙ)＝Ｏｕｔ_ｃ_LPF(ｎｘ，ｎｙ＋ＬＦ)  ・・・(３３)
式（３３）においても式（３２）と同様に、ｎｙ＋ＬＦ≧Ｎｚｚｌのときは、Ｏｕｔ'_ｃ_LPF(ｎｘ，ｎｙ)＝０とする。すなわち、シフト後の下端ＬＦノズル分（この場合４ノズル分）には０を代入する。
【００７９】
そしてステップＳ３０５でも同様に、更新前制約情報データシフト部５０５において、更新前の制約情報データＣ_ｒを紙送り分上にシフトする。シフトされた制約情報データをＣ'_rは、以下のように算出される。なお、０≦ｎｘ＜画像Ｘサイズ、０≦ｎｙ＜Ｎｚｚｌとする。
【００８０】
Ｃ'_ｒ(ｎｘ，ｎｙ)＝Ｃ_ｒ(ｎｘ，ｎｙ＋ＬＦ)        ・・・(３４)
式（３４）においても式（３２）と同様に、ｎｙ＋ＬＦ≧Ｎｚｚｌのときは、Ｃ'_ｒ(ｎｘ，ｎｙ)＝０とする。すなわち、シフト後の下端ＬＦノズル分（この場合４ノズル分）には０を代入する。
【００８１】
以上のように、ステップＳ３０３からＳ３０５において各バッファデータを紙送り量ＬＦ分だけシフトさせる理由は、次の走査番号にて形成されるハーフトーンドット配置が、記録媒体上で相対的に紙送り量ＬＦ分ずれるためである。
【００８２】
次にステップＳ３０６では減算部５０６において、走査Ｄｕｔｙデータシフト処理部５０４で算出されたデータから、ハーフトーンデータシフト部５０５で算出されたデータを減算する。そしてステップＳ３０７で重み積算部５０７において、重み係数ｈ（実数）を積算する。
【００８３】
次にステップＳ３０８で加算部５０８において、重み積算部５０７で算出されたデータと、更新前制約情報データシフト部５０３にてシフトされたシアンの制約情報を加算して、更新後の制約情報Ｃ_rを算出する。下式に、上記ステップＳ３０６〜Ｓ３０８により算出される、更新後の制約情報Ｃ_ｒの演算式を示す。
【００８４】
Ｃ_ｒ←(−Ｏｕｔ'_ｃ_LPF＋Ｃ'_dｆ)×ｈ＋Ｃ'_ｒ          ・・・(３５)
ここで算出された制約情報Ｃ_ｒは、次の走査番号ｋ＝２以降（すなわち現走査番号ｋに対する走査番号ｋ＋１）のハーフトーン処理用の制約情報として、制約情報バッファ１０９に保存される。
【００８５】
以下、本実施形態における制約情報の更新方法を示す式(３５)について、詳細に説明する。
【００８６】
式(３５)におけるＯｕｔ'_ｃ_LPFは、ハーフトーンデータフィルタ処理部５０２にてＬＰＦ_ｂを用いて、走査番号ｋのハーフトーン画像に対して低周波成分のみを取り出したデータである。式(３５)においては、これに負号を付して−Ｏｕｔ'_ｃ_LPFとし、更新前の制約情報から減算することで、低周波成分が除去されたデータ、すなわち（−Ｏｕｔ'_ｃ_LPF＋Ｃ'_dｆ）を負の値にする。これにより、次の走査番号ｋ＋１以降でドットが打たれにくくなる。すなわちこの処理によって、次の走査番号ｋ＋１以降において、走査番号ｋ以前に打たれたハーフトーン画像の低周波成分が逆位相となる効果がある。
【００８７】
このように−Ｏｕｔ'_ｃ_LPFによって、直前に配置されたドットの低周波成分が逆位相となるが、低周波成分のみを逆位相とすることによって得られる効果について、図２５を参照して説明する。
【００８８】
図２５はレジストレーションズレ（以下、レジズレ）に対する印刷画像の変化を、高周波領域と低周波領域に分けて模式的に表した図である。まず、印刷画像の高周波領域について考える。走査番号ｋと走査番号ｋ＋１の濃度分布が逆位相となる場合（２６０１）は、レジズレなしの時に濃度分布の山谷が補間されており、ドットが紙面を満遍なく埋めるため紙白部分が発生しづらい。そのため濃度が高くなるが、例えばわずかに（図２５では２０μｍ）がズレただけで、互いの濃度分布が重なる傾向になり、紙白部分が見えやすくなって濃度が薄くなる傾向になる。すなわち、印刷画像上、高周波成分で濃度分布が逆位相となると、レジズレに対する濃度耐性が低くなる。しかし、高周波成分で濃度分布が無相関となる場合（２６０２）は、多少レジズレが発生しても濃度は変わりづらく、粒状性悪化もほとんど起こらない。
【００８９】
一方、印刷画像の低周波領域については、濃度分布が逆位相となる場合（２６０３）、視覚上目障りな低周波成分が少なくなり粒状性悪化が抑制される。さらに、多少レジズレが発生しても分布上の山谷の関係がほとんど変わらないので、濃度耐性は強い。しかし、低周波成分で濃度分布を無相関とする場合（２６０４）は、レジズレの発生の有無に関わらず、低周波成分が画像上に現れてしまうため、粒状性が悪化してしまう。
【００９０】
以上のように図２５によれば、印刷画像上のレジズレに対して濃度ムラ耐性が強く、かつ粒状性を良好とするためには、走査間において以下の２点を実現することが重要となることが分かる。すなわち、１）視覚上目障りな低周波成分は逆位相にする。２）高周波成分は逆位相にせず、無相関関係にする。
【００９１】
ここで走査番号ｋとｋ＋１のドット配置が実際にどのようになっているかを、走査番号１，２、ノズル数１７０、パス数２を例として以下に述べる。
【００９２】
この時の走査番号ｋと走査番号ｋ＋１の同一記録媒体座標上に形成されるドット配置を、図５１の（ａ），（ｂ）にそれぞれ示す。さらに、この（ａ），（ｂ）に示すドット配置が統合された最終出力画像を（ｃ）に示す。（ａ）はノズル下端１／２のハーフトーン画像（縦サイズ１７０／２＝８５）であり、（ｂ）はノズル上端１／２のハーフトーン画像（縦サイズ１７０／２＝８５）である。走査番号ｋ＋１のドット配置を算出する際に、走査番号ｋ＋１の画像（ｂ）は、（ａ）と同一記録媒体上に画像を形成するため、ノズル上端１／２の画像となるのである。
【００９３】
図５１の（ａ）に対して、フーリエ解析を行うった結果を図５２に示す。図５１（ａ）は、多値データに対して誤差拡散処理を施すため、分散性が高く、図５２に示すように低周波成分が除去された画像となる。
【００９４】
また、図５１の（ａ），（ｂ）のクロススペクトルを算出し、空間周波数毎の位相差を算出したグラフを図５３に示す。図５３は、横軸の空間周波数と、縦軸の（ａ），（ｂ）の平均位相差の関係を示しており、１０[ｃｙｃｌｅ／ｍｍ]以下では完全に逆位相ではないものの逆位相に近い値となっている。また１０[ｃｙｃｌｅ／ｍｍ]以上では逆位相と同位相の中間値となり、位相差が無相関となっている。よって、図５３より、上述した１）視覚上目障りな低周波成分は逆位相にする、２）高周波成分は逆位相にせず、無相関関係にする、という関係が満足されることが理解できよう。
【００９５】
これは、式（３５）にて算出される制約情報が、走査番号ｋのノズル下端１／２に形成されたハーフトーン画像の低周波成分を減算したデータとなり、その制約情報データを式（２２）で加算され、走査番号ｋ＋１のハーフトーン処理に渡されるためである。
【００９６】
上記例では、走査番号ｋとｋ＋１の隣り合う走査間における特性について言及したが、この特性は任意の走査間でも成り立つ。
【００９７】
式(３５)においては、ハーフトーンデータフィルタ処理部５０２にて算出されたＯｕｔ'_ｃ_LPFを減算することにより、低周波成分を逆位相とする効果がある。さらに、高周波成分については制約情報として何ら考慮しないことにより、高周波成分を無相関とする効果がある。
【００９８】
次に、式(３５)においてＣ'_dｆに注目する。式(３５)におけるＣ'_dｆは、走査Ｄｕｔｙデータフィルタ処理部５０１にてＦ_ｍを用いて、走査番号ｋでのＤｕｔｙデータに対するフィルタリングを行ったデータである。式（３５）においてはこのＣ'_dｆを加算しているが、その理由は以下の２点にある。
【００９９】
まず１点目は、括弧内の平均値を０にすることで、制約情報Ｃ_ｒの平均を常に０に保ち、走査Ｄｕｔｙ濃度とハーフトーン処理の濃度を近づけるためである。これは、上述した−Ｏｕｔ'_ｃ_LPFによって負の値になったデータのみを制約情報として扱うと，式(２２)に示すＩｃがＣ_ｄよりも小さくなってしまい、ハーフトーン処理におけるドット数が少なくなってしまうからである。誤差拡散法では入力濃度と出力濃度が常に同じになるよう動作するため，Ｃ_ｒは常に平均０に保たなければならない。ここで、Ｃ'_dｆはＯｕｔ'_ｃ_LPFと同じ濃度であるため、Ｃ'_dｆを加算することで，Ｃ_ｒは常に平均０を保つことができる。
【０１００】
次に２点目の理由は、出力画像の空間周波数特性制御を行うことである。上述したように、式(３５)の括弧内の平均値は０でなければならないが、Ｏｕｔ'_ｃ_LPFだけにＬＰＦ_ｂをかけると、括弧内のＯｕｔ'_ｃ_LPFとＣ'_dｆが空間周波数的に異ってしまうため、エッジ強調が発生してしまう。言い換えると、Ｏｕｔ_ｃだけぼかし処理を行い、Ｃ_dにぼかし処理を行なわないで減算を行うと、アンシャープマスキングと同等の処理となり、エッジ強調が起こってしまう。そこで、Ｃ_dにもＯｕｔ_ｃと同じフィルタをかければ、エッジ強調抑制が可能となる。
【０１０１】
ただし、普通紙やマット紙などの非コート紙が記録媒体である場合、画像の輪郭がボケる傾向があるため、必ずしも双方に同じ処理を実施する必要はなく、たとえば、意図的にエッジ強調を起こさせるように、Ｆ_ｍの広がり度合いを狭くしたりしてもよい。
【０１０２】
式（３５）においてはさらに、重み係数ｈにて制約情報の強度を調整できる。例えば、ｈ＝１．０のときは、フィルタにて演算された制約情報をそのまま出力でき、ｈ＝０．０のときは、制約情報を演算しないのと等価な出力が得られる。なお、式（３５）の括弧内は平均０になっているため、ｈにどのような値を入れても、平均値０は保たれる。
【０１０３】
以上で図３のステップＳ１０９における制約情報演算処理が終了する。
【０１０４】
次にステップＳ１１０において、制約情報の演算結果で制約情報バッファ１０９を更新する。このように更新された制約情報は、次の走査番号以降（現走査番号がｋならば次の走査番号はｋ＋１）のドット配置を決定するための情報として参照される。
【０１０５】
ここで、制約情報バッファ１０９の更新について、図５の領域１を参照して詳細に説明する。
【０１０６】
本実施形態では、走査番号ｋ＝２におけるハーフトーン処理は、走査番号ｋ＝１において形成された領域１のドットパターンの低周波成分を逆位相にする必要がある。そのため、式(３０)〜(３５)によって、一回の紙送り量ＬＦ＝Ｎｚｚｌ／Ｐａｓｓ＝１６／４＝４だけシフトされ、これを走査番号ｋ＝２の制約情報とするのは上述のとおりである。
【０１０７】
しかし、式(３０)〜(３５)は、走査番号ｋ＝１，とｋ＝２の隣接関係において「低周波成分を逆位相にする」ことに限らない。例えば図５に示すように、走査番号ｋ＝３におけるハーフトーン処理では、走査番号ｋ＝１，２において形成された領域１のトータルドットパターンに対して、低周波成分を逆位相にする。これは、式(３０)〜(３５)では走査番号が１インクリメントされると、一回の紙送り量ＬＦ＝Ｎｚｚｌ／Ｐａｓｓ＝１６／４＝４ずつシフトされながら、常に制約情報バッファ１０９に制約情報が保持されつつ、更新を繰り返すためである。
【０１０８】
同様に、走査番号ｋ＝４におけるハーフトーン処理では、走査番号ｋ＝１，２，３において形成された領域１のトータルドットパターンに対して、低周波成分を逆位相にする。
【０１０９】
すなわち本実施形態では、記録媒体上の同一領域において、既に記録されたトータルドットパターンの低周波成分を常に逆位相にするように、走査ごとのドットパターンが形成される。その結果、レジストレーションズレの発生の有無に関わらず、常に良好な粒状性を確保し、さらに、レジストレーションズレによる濃度ムラを低減することが可能となる。
【０１１０】
図３に戻り、次にステップＳ１１１において、ハーフトーンデータを受けたプリンタ２では、該画像データに適合するインク色が選択され、印字動作が開始される。ステップＳ１１１においては、記録ヘッド２０１が記録媒体に対して左から右に移動しながら、一定の駆動間隔で各ノズルを駆動して記録媒体上に画像を記録する主走査を１回行う。さらに該主走査が終了すると、主走査と垂直方向の走査である副走査が１回行なわれる。
【０１１１】
次にステップＳ１１２において、全ての走査が終了したか否かの判定を行う。終了した場合には一連の画像形成処理が完了し、終了していない場合にはステップＳ１０３に戻る。以上により、処理の全てが終了する。
【０１１２】
以上説明したように本実施形態によれば、主走査毎に２値化処理を実施する記録方式において、単一の主走査内で形成される出力ドット配置に高い分散性を持たせて、レジストレーションズレに対する粒状性劣化を抑制する際に、さらに以下の効果を得る。すなわち、複数の主走査間の出力ドット配置においては、低周波成分を逆位相にすることで、レジストレーションズレの発生有無に関わらず良好な粒状性を確保する。さらに、高周波成分では相関を少なくしてランダム性を持たせることで、レジストレーションズレによる濃度ムラを低減することが可能となる。
【０１１３】
具体的には、記録媒体上の同一領域において、既に記録された同一色ドットパターンの低周波成分を常に逆位相にするよう、走査ごとのドットパターンを誤差拡散法で形成する。すなわち式(２２)に示すように、入力データＣ_ｄに対し、記録媒体上の同一箇所に既に形成されたドットパターンの低周波成分を取り出した制約情報Ｃ_ｒを反映させることによって、低周波成分を逆位相とし、高周波成分を無相関にする。これにより、印刷画像上のレジズレに対して濃度ムラ耐性が強く、かつ粒状性を良好とすることが可能となる。
【０１１４】
なお、低周波成分を逆位相とし、高周波成分を無相関となることの実現は、本実施形態の手法に限られるものではない。他の手法として、低周波成分を取り出した制約情報を、例えば閾値や量子化誤差に反映させても良い。
【０１１５】
また、本実施形態ではハーフトーン処理として誤差拡散法を用いる例を示したが、これに代えて平均誤差最小法を用いても良い。
【０１１６】
＜第２実施形態＞
以下、本発明に係る第２実施形態について説明する。上述した第１実施形態では、ハーフトーン処理部１０８にて誤差拡散処理を行う例を説明した。第２実施形態では、誤差拡散法に代えてディザ法を用いる例を示す。上述したように、ディザ法は誤差拡散法に比べて高速に処理を行えるため、第２実施形態では高速処理が可能となり、さらに第１実施形態と同様に低周波成分のみを制約情報とするため、第１実施形態と同様の効果が得られる。
【０１１７】
第２実施形態における画像形成装置の詳細構成は、ハーフトーン処理部１０８以外は第１実施形態と同様である。以下では説明を簡略化するため、第１実施形態と同様に４パス印字、走査番号ｋ＝１におけるシアンのハーフトーン処理の詳細について、図２６のブロック図と図２７のフローチャートを用いて説明する。図２６は、第２実施形態におけるハーフトーン処理部１０８の詳細構成を示すブロック図であり、図２７は第２実施形態におけるハーフトーン処理の詳細を示すフローチャートである。
【０１１８】
まず図２７に示すステップＳ４０１において、図２６に示す制約情報加算部６０１で下式に示すように、シアン走査ＤｕｔｙであるＣ_ｄと、シアン制約情報であるＣ_ｒの合計値データＩｃを算出する。ただし、走査番号ｋ＝１の制約情報Ｃ_ｒは全て０である。
【０１１９】
Ｉｃ＝Ｃ_ｄ＋Ｃ_ｒ                    ・・・(３６)
次にステップＳ４０２で量子化部６０３において、上記I_ｃとしきい値マトリクス６０２の該当要素値との比較を行い、ステップＳ４０３にて２値化データを出力する。ここで図２８に、第２実施形態におけるディザ処理による２値化の概要を示す。このときの２値化の規則は、しきい値マトリクス６０２の要素値Ｔｈ（０〜２５５）が以下のように表される。なお、Ｔｈは図２８に示すように、印刷画像上のアドレスに対応した閾値群である。
【０１２０】
Ｉ_ｃ≦Ｔｈのとき、    Ｏｕｔ_ｃ＝０          ・・・(３７)
Ｔｈ＜Ｉ_ｃのとき、    Ｏｕｔ_ｃ＝２５５      ・・・(３８)
第２実施形態におけるＴｈとしては、周知のしきい値マトリクスを使用すれば良い。例えばＢａｙｅｒ配列であっても良いし、ドット集中型であっても良いし、ブルーノイズマスク配列であっても良い。また、しきい値マトリクス６０２は、走査番号毎に異なるマトリクスを用いても良いし、常に同一のマトリクスを用いても良い。
【０１２１】
そしてステップＳ４０４において、上述したステップＳ４０１〜Ｓ４０３の処理をバンド内のアドレス(０，０)〜(Ｗ−１，Ｎｚｚｌ−１)まで行なうことによって、ハーフトーンデータのドット位置が決定される。これにより、走査番号ｋ＝１でのハーフトーン処理が終了し、その結果、各色分の１回のヘッド動作で形成される２値画像が、各色分のハーフトーン画像格納バッファ１１０に格納される。
【０１２２】
以上説明したように第２実施形態によれば、ハーフトーン処理を誤差拡散に代えてディザ法で行うことによって、第１実施形態に比べて高速処理を可能としつつ、第１実施形態と同様にレジズレに対する耐性を持った高画質な画像形成が可能となる。
【０１２３】
＜第３実施形態＞
以下、本発明に係る第３実施形態について説明する。第３実施形態における画像形成装置の詳細構成は上述した第１実施形態と同様であるため、説明を省略する。
【０１２４】
上述した第１実施形態では、各色独立に制約情報バッファ１０９を各色で独立に設け、その制約情報と走査Ｄｕｔｙデータの合計値に対して誤差拡散処理を行う例を示した。上述した第１実施形態では、記録媒体上の同一領域において、既に記録された同一色ドットパターンの低周波成分を常に逆位相にするよう、走査ごとのドットパターンを形成する。これにより、レジストレーションズレの発生の有無に関わらず良好な粒状性を確保し、さらに、レジストレーションズレによる濃度ムラを低減することが可能となった。
【０１２５】
第３実施形態では、ハーフトーン処理において制約情報を２色以上で共用し、一方色による誤差拡散処理を、他方色の処理結果に従属して行うことを特徴とする。これにより、制約情報バッファ数を削減でき、さらに色間で低周波が逆位相になるため、例えばシアン、マゼンタドットが重なって濃いブルードットが発生することにより粒状性が悪化することも防げる。
【０１２６】
以下、第３実施形態におけるハーフトーン処理について、図２９のフローチャートを参照して説明する。なお、図２９におけるステップＳ５０１〜Ｓ５０５は、上述した第１実施形態において図３に示したステップＳ１０１〜Ｓ１０５と同様の処理であるため、説明を省略し、ステップＳ５０６以降の処理について説明する。
【０１２７】
ステップＳ５０６においてハーフトーン処理部１０８は、走査Ｄｕｔｙバッファ１０７のシアンデータと制約情報バッファ１０９の制約情報の合計値を、２レベルの階調値（２値データ）に変換するシアン用のハーフトーン処理を行う。なお、第３実施形態における制約情報バッファ１０９は図３０に示すように、縦方向がノズル数（Ｎｚｚｌ）、横方向が画像のＸサイズ（Ｗ）に相当するバンド状の制約情報データを有し、これをシアンとマゼンタで共用する。
【０１２８】
制約情報バッファ１０９には、記録される画像上のアドレスに２値画像が形成されやすいか否かを示す制約情報が格納され、走査番号ｋごとに更新される。ただし、走査番号ｋ＝１の処理開始時には、初期値として全て０が代入されている。
すなわち、制約情報をシアンとマゼンタで共用すると、アドレス(Ｘ，Ｙ)における制約情報はＣＭ_ｒ(Ｘ，Ｙ)、Ｌｃ_ｒ(Ｘ，Ｙ)、Ｌｍ_ｒ(Ｘ，Ｙ)、Ｙ_ｒ(Ｘ，Ｙ)、Ｋ_ｒ(Ｘ，Ｙ)の５つとなり、これらの初期値は以下のように記述される。なお、０≦ｎｘ＜画像Ｘサイズ、０≦ｎｙ＜Ｎｚｚｌ（ノズル列数：この場合１６）である。
【０１２９】
ＣＭ_ｒ(ｎｘ，ｎｙ)＝０                  ・・・(３９)
Ｌｃ_ｒ(ｎｘ，ｎｙ)＝０                  ・・・(４０)
Ｌｍ_ｒ(ｎｘ，ｎｙ)＝０                  ・・・(４１)
Ｙ_ｒ(ｎｘ，ｎｙ)＝０                    ・・・(４２)
Ｋ_ｒ(ｎｘ，ｎｙ)＝０                    ・・・(４３)
そのため、Ｌｃ_r、Ｌm_ｒ、Ｙ_r、Ｋ_r、については走査番号ｋ≧２の時に有意な制約情報に更新されていくことになるが、シアンマゼンタ共用の制約情報ＣＭ_ｒについては、同一走査番号内で制約情報を更新していく。ＣＭ_ｒの更新についての詳細は後述する。
【０１３０】
第３実施形態のハーフトーン処理においては、上述した第１実施形態と同様に、多値の入力画像データを２値画像（または２値以上で入力階調数より少ない階調数の画像）に変換する処理として、誤差拡散法を用いる。もちろん、これに代えて、平均誤差最小法や第２実施形態で説明したディザ法を使用することも可能である。
【０１３１】
以下、説明を簡略化するため、４パス印字、走査番号ｋ＝１におけるシアンのハーフトーン処理についての詳細を、図３１のブロック図と図３２のフローチャートを用いて説明する。図３１は第３実施形態におけるハーフトーン処理部１０８において、特にシアンの処理に関する詳細構成を示すブロック図であり、図３２は第３実施形態におけるシアンのハーフトーン処理の詳細を示すフローチャートである。
【０１３２】
まず図３２に示すステップＳ６０１において、シアンの走査Ｄｕｔｙと制約情報の合計を入力する。すなわち、図３１に示す制約情報加算部７０１において、シアン走査ＤｕｔｙであるＣ_ｄとシアンマゼンタ制約情報ＣＭ_ｒの合計値データＩｃを以下のように算出する。ただし、走査番号ｋ＝１のとき、制約情報Ｃ_ｒは全て０である。
【０１３３】
Ｉｃ＝Ｃ_ｄ＋ＣＭ_ｒ            ・・・(４４)
次にステップＳ６０２において、誤差拡散処理用に累積誤差を加算する。以下、第３実施形態における累積誤差の加算処理について詳細に説明する。
【０１３４】
第３実施形態においても、誤差拡散処理のための誤差拡散係数として、図１４に示すようにＫ１〜Ｋ４の４つの係数を持つとする。例えば、Ｋ１＝７／１６、Ｋ２＝３／１６、Ｋ３＝５／１６、Ｋ４＝１／１６とする。ただし、拡散係数は上記のように固定とする必要はなく、階調に応じて変更させても良いし、上記４係数に限らずさらに多くの係数を持たせても良い。
【０１３５】
このような誤差拡散係数により誤差を拡散、累積するために、ハーフトーン処理部１０８では累積誤差ラインバッファをシアンに対して４組確保し（７０２〜７０５）、使用する累積誤差ラインバッファを走査番号ごとに、例えば以下のように切り替える。
【０１３６】
「走査番号ｋ＝１，５，・・・，４ｎ＋１(ｎは０以上の整数)のとき」
シアン（４ｎ＋１）累積誤差ラインバッファ７０２を使用
「走査番号ｋ＝２，６，・・・，４ｎ＋２のとき」
シアン（４ｎ＋２）累積誤差ラインバッファ７０３を使用
「走査番号ｋ＝３，７，・・・，４ｎ＋３のとき」
シアン（４ｎ＋３）累積誤差ラインバッファ７０４を使用
「走査番号ｋ＝４，８，・・・，４ｎ＋４のとき」
シアン（４ｎ＋４）累積誤差ラインバッファ７０５を使用
なお、各累積誤差ラインバッファ７０２，７０３，７０４，７０５はそれぞれ、図３３の３３０１〜３３０４に示すような４組の記憶領域からなる。すなわち、「Ｅｃ1_0，Ｅｃ１(ｘ)」、「Ｅｃ2_0，Ｅｃ2(ｘ)」、「Ｅｃ3_0，Ｅｃ3(ｘ)」、「Ｅｃ4_0，Ｅｃ4(ｘ)」の４組である。例えば、シアン（４ｎ＋１）累積誤差バッファ７０２は、１個の記憶領域Ｅｃ1_0と、入力画像の横画素数Ｗと同数の記憶領域Ｅｃ1_(ｘ)（ｘ＝１〜Ｗ）を有する。また、各シアン累積誤差ラインバッファ７０２，７０３，７０４，７０５はそれぞれ、走査番号ｋ＝１，２，３，４の処理開始時のみ、全て初期値０で初期化されている。例えば走査番号ｋ＝５の処理開始時には、シアン（４ｎ＋１）累積誤差バッファ７０２は初期化されない。第３実施形態では４パス印字を行うため、１色あたり上述した４組の累積誤差ラインバッファが必要になり、詳細は後述するが、マゼンタについての累積誤差ラインバッファも同様に４組必要となる。
【０１３７】
走査番号ｋ＝１の場合、シアン（４ｎ＋１）累積誤差バッファ７０２を使用した誤差拡散処理が実施される。すなわち、累積誤差加算部７０６において、シアン走査ＤｕｔｙとＣＭ制約情報の合計である入力データ値に対して、入力画素データの横画素位置ｘに対応する誤差Ｅｃ1(ｘ)が加算される。即ち、入力された注目データをＩｃ、累積誤差加算後のデータをＩｃ'とすると、以下の式が成り立つ。
【０１３８】
Ｉｃ'＝Ｉｃ＋Ｅｃ1(ｘ)            ・・・(４５)
次にステップＳ６０３において、閾値選択部７０７は閾値Ｔを選択する。閾値Ｔは、例えば以下のように設定される。
【０１３９】
Ｔ＝１２８                        ・・・(４６)
或いは、ドット生成遅延を回避するため、平均量子化誤差が小さくなるよう、Ｃ_dに応じて閾値Ｔを以下のように細かく変更しても良い。
【０１４０】
Ｔ＝ｆ(Ｃ_d)                        ・・・(４７)
次にステップＳ６０４において、量子化部７０８は、誤差加算後の画素データＩｃ'と閾値Ｔを比較し、ドットの２値化結果であるＯｕｔ_ｃを決定する。その規則は次の通りである。
【０１４１】
Ｉｃ'＜Ｔのとき、
Ｏｕｔ_ｃ＝０                      ・・・(４８)
Ｉｃ'≧Ｔのとき、
Ｏｕｔ_ｃ＝２５５                  ・・・(４９)
次にステップＳ６０５において、誤差演算部７０９は、注目画素Ｉｃに誤差を加算した画素データＩｃ'と、出力画素値Ｏｕｔ_ｃとの差分Ｅｒｒ_ｃを、次のように算出する。
【０１４２】
Ｅｒｒ_ｃ(ｘ)＝Ｉｃ'−Ｏｕｔ_ｃ      ・・・(５０)
次にステップＳ６０６において、誤差拡散部７１０が誤差を拡散する。即ち、シアン（４ｎ＋１）累積誤差ラインバッファ７０２を用いて、横画素位置ｘに応じた誤差Ｅｒｒ_ｃ(ｘ)の拡散処理が、以下のように行われる。
【０１４３】
Ｅｃ1(ｘ＋１)←Ｅｃ1(ｘ＋１)＋Ｅｒｒ_c(ｘ)×７／１６    (ｘ＜Ｗ)
Ｅｃ1(ｘ−１)←Ｅｃ1(ｘ−１)＋Ｅｒｒ_c(ｘ)×３／１６    (ｘ＞１)
Ｅｃ1(ｘ)←Ｅｃ1_0＋Ｅｒｒ_c(ｘ)×５／１６            (１＜ｘ＜Ｗ)
Ｅｃ1(ｘ)←Ｅｃ1_0＋Ｅｒｒ_c(ｘ)×８／１６              (ｘ＝１)
Ｅｃ1(ｘ)←Ｅｃ1_0＋Ｅｒｒ_c(ｘ)×１３／１６            (ｘ＝Ｗ)
Ｅｃ1_0←Ｅｒｒ_c(x)×１／１６                          (ｘ＜Ｗ)
Ｅｃ1_0←０                                              (ｘ＝Ｗ)
・・・(５１)
以上で、走査番号ｋ＝１のシアン１画素分の２値化（量子化値０，２５５）が完了する。
【０１４４】
以上説明したステップＳ６０１〜Ｓ６０６の処理を、バンド内のアドレス(０，０)〜(Ｗ−１，Ｎｚｚｌ−１)まで行う（Ｓ６０７）ことにより、シアンハーフトーンデータのドット位置、すなわちシアンドットのオン／オフを決定することができる。
【０１４５】
図２９に戻り、以上説明したようにステップＳ５０６におけるシアンのハーフトーン処理が終了すると、次に、ハーフトーン処理後のシアン２値画像データはハーフトーン画像格納バッファ１１０に格納される（Ｓ５０７）。ここで図３４に、走査番号ｋ＝１のシアン走査Ｄｕｔｙをハーフトーン処理した結果が、ハーフトーン画像格納バッファ１１０に格納された様子を示す。同図に示されるようにハーフトーン画像格納バッファ１１０には、走査Ｄｕｔｙの画素位置に対応する（ノズル数：Ｎｚｚｌ）×（画像Ｘサイズ：Ｗ）分の２値画像データが格納される。
【０１４６】
次に、ハーフトーン画像格納バッファ１１０に蓄えられた、縦方向がノズル数（Ｎｚｚｌ）、横方向が画像のＸサイズ（Ｗ）に相当するシアンハーフトーンのバンドデータが、画像出力端子１１２より出力される（Ｓ５０８）。
【０１４７】
すると次に、制約情報演算部１１１においてシアンドット配置に基づいてＣＭ制約情報を演算する（Ｓ５０９）。なお、詳細は後述するが第３実施形態においては、まずシアンドット配置に基づいてＣＭ制約情報を算出した後、該ＣＭ制約情報に基づいてマゼンタドット配置を決定する。そして、該決定されたマゼンタドット配置に基づいてＣＭ制約情報を更新し、これを次の走査番号に対応する制約情報とする。
【０１４８】
以下、ステップＳ５０９におけるシアンドット配置に基づくＣＭ制約情報の演算処理について、図３５のブロック図と図３６のフローチャートを用いて詳細に説明する。図３５は、制約情報演算部１１１におけるシアンに関する詳細構成を示すブロック図であり、図３６は該構成において行われる制約情報演算処理を示すフローチャートである。上述したように、第３実施形態における制約情報はシアンマゼンタ共用であるため、シアンドットの制約情報は、同一走査番号のマゼンタドット配置を決める上での制約となる。
【０１４９】
まず、図３６に示すステップＳ７０１において、走査Ｄｕｔｙバッファ１０７のデータに対してフィルタ処理を行う。すなわち、図３５に示す走査Ｄｕｔｙフィルタ処理部８０１において、走査Ｄｕｔｙバッファ１０７内のシアン走査ＤｕｔｙであるＣ_ｄに対して、下式のように所定のフィルタＦ_ｍによるフィルタ処理を行ってＣ_ｄｆを算出する。図３７に、フィルタ処理されたシアン走査Ｄｕｔｙデータの模式図を示す。
【０１５０】
Ｃ_ｄｆ＝Ｃ_ｄ＊Ｆ_ｍ          ・・・(５２)
ただし、＊はコンボリューションを示す
なお、第３実施形態におけるフィルタＦ_ｍは、図２４の２４０１に示すようにフィルタサイズが３×３正方形で、係数がほぼ同心円に並ぶ等方的加重平均フィルタとして説明するが、この形態に限るものではない。例えば、フィルタサイズは５×５，７×７，９×９のような正方形でも、３×５，５×７，５×９のような長方形でも良いし、フィルタ係数が楕円である非等方フィルタであっても良い。また、ローパス特性に限らず、バンドパス特性や、ハイパス特性のフィルタであっても良い。
【０１５１】
次にステップＳ７０２において、ハーフトーンデータフィルタ処理部８０２が、Ｏｕｔ_ｃに対して、下式のように所定のローパスフィルタＬＰＦ_ｂによるフィルタ処理を行ってＯｕｔ_ｃ_LPFを算出する。図３８に、フィルタ処理されたシアンハーフトーンデータの模式図を示す。
【０１５２】
Ｏｕｔ_ｃ_LPF＝Ｏｕｔ_ｃ＊ＬＰＦ_ｂ        ・・・(５３)
本実施形態におけるＬＰＦ_ｂの係数もＦ_ｍと同様に、図２４の２４０２に示すようにフィルタサイズが３×３正方形で、係数がほぼ同心円に並ぶ等方的加重平均フィルタとして説明するが、この形態に限るものではない。ただし、ＬＰＦ_ｂはローパス特性を有することが好ましい。また、本実施形態ではＦ_ｍとＬＰＦ_ｂとして同じフィルタ係数を用いているが、もちろん異なる係数であっても良い。
【０１５３】
次にステップＳ７０３では減算部８０３において、走査Ｄｕｔｙフィルタ処理部８０１で算出されたデータから、ハーフトーンデータフィルタ処理部８０２で算出されたデータを減算する。そしてステップＳ７０４で重み積算部８０４において、重み係数ｈ１（実数）を積算する。
【０１５４】
次にステップＳ７０５で加算部８０５において、重み積算部８０４で算出されたデータと、更新前のＣＭ制約情報を加算して、シアン反映後の制約情報ＣＭ_rを算出し、これをマゼンタのハーフトーン処理の制約情報として保存しておく。
【０１５５】
下式に、上記ステップＳ７０３〜Ｓ７０５により算出される、シアン反映後の制約情報ＣＭ_ｒの演算式を示す。
【０１５６】
ＣＭ_ｒ←(−Ｏｕｔ_ｃ_LPF＋Ｃ_dｆ)×ｈ１＋ＣＭ_ｒ          ・・・(５４)
以上で、図２９のステップＳ５０９におけるシアンドット配置に基づくＣＭ制約情報の演算処理が終了する。
【０１５７】
次に、ステップＳ５１０において、ＣＭ制約情報の演算結果によりシアンマゼンタ共用の制約情報バッファ１０９を更新する。
【０１５８】
上述したように、第３実施形態においては第１実施形態と異なり、この段階では制約情報を相対的に紙送り量ＬＦ上方へシフトしない。これは、同一走査番号のマゼンタハーフトーン画像についてはまだ処理されておらず、制約情報はマゼンタハーフトーンデータの処理に利用されるためである。第３実施形態では、シアンマゼンタの制約情報を共用しているため、同一走査番号のマゼンタドット配置が決まるまで、制約情報のシフトを行わない。
【０１５９】
次にステップＳ５１１において、ハーフトーン処理部１０８にて、走査Ｄｕｔｙバッファ１０７のマゼンタデータと制約情報バッファ１０９の合計値に対し、２レベルの階調値(２値データ)へ変換する、マゼンタ用のハーフトーン処理を行う。なお、第３実施形態における制約情報バッファ１０９はシアンマゼンタ共用であるため、上述した図３０に示すバッファ形態である。
【０１６０】
以下、マゼンタのハーフトーン処理についての詳細を、図３９のブロック図と図４０のフローチャートを用いて説明する。図３９は第３実施形態におけるハーフトーン処理部１０８において、特にマゼンタの処理に関する詳細構成を示すブロック図であり、図４０は第３実施形態におけるマゼンタのハーフトーン処理の詳細を示すフローチャートである。
【０１６１】
まず図４０に示すステップＳ８０１において、マゼンタの走査Ｄｕｔｙと制約情報の合計を入力する。すなわち、図３９に示す制約情報加算部９０１において、マゼンタ走査ＤｕｔｙであるＭ_ｄとシアンマゼンタ制約情報ＣＭ_ｒの合計値データＩｍを以下のように算出する。ただし、ここで入力される制約情報ＣＭ_ｒには、上記（５４）式により既にシアン制約情報が反映されている。
【０１６２】
Ｉｍ＝Ｍ_ｄ＋ＣＭ_ｒ            ・・・(５５)
次にステップＳ８０２において、誤差拡散処理用に累積誤差を加算する。以下、第３実施形態における累積誤差の加算処理について詳細に説明する。ここでも、誤差拡散処理のための誤差拡散係数として、図１４に示すようなＫ１〜Ｋ４の４つの係数を持つとする。  このような誤差拡散係数により誤差を拡散、累積するために、ハーフトーン処理部１０８では累積誤差ラインバッファをマゼンタに対して４組確保し（９０２〜９０５）、使用する累積誤差ラインバッファを走査番号ごとに、例えば以下のように切り替える。
【０１６３】
「走査番号ｋ＝１，５，・・・，４ｎ＋１(ｎは０以上の整数)のとき」
マゼンタ（４ｎ＋１）累積誤差ラインバッファ９０２を使用
「走査番号ｋ＝２，６，・・・，４ｎ＋２のとき」
マゼンタ（４ｎ＋２）累積誤差ラインバッファ９０３を使用
「走査番号ｋ＝３，７，・・・，４ｎ＋３のとき」
マゼンタ（４ｎ＋３）累積誤差ラインバッファ９０４を使用
「走査番号ｋ＝４，８，・・・，４ｎ＋４のとき」
マゼンタ（４ｎ＋４）累積誤差ラインバッファ９０５を使用
なお、各累積誤差ラインバッファ９０２，９０３，９０４，９０５はそれぞれ、図３３の３３０５〜３３０８に示すような４組の記憶領域からなる。すなわち、「Ｅｍ1_0，Ｅｍ１(ｘ)」、「Ｅｍ2_0，Ｅｍ2(ｘ)」、「Ｅｍ3_0，Ｅｍ3(ｘ)」、「Ｅｍ4_0，Ｅｍ4(ｘ)」の４組である。例えば、マゼンタ（４ｎ＋１）累積誤差バッファ９０２は、１個の記憶領域Ｅｍ1_0と、入力画像の横画素数Ｗと同数の記憶領域Ｅｍ1_(ｘ)（ｘ＝１〜Ｗ）を有する。また、各マゼンタ累積誤差ラインバッファ９０２，９０３，９０４，９０５はそれぞれ、走査番号ｋ＝１，２，３，４の処理開始時のみ、全て初期値０で初期化されている。例えば走査番号ｋ＝５の処理開始時には、マゼンタ（４ｎ＋１）累積誤差バッファ９０２は初期化されない。
【０１６４】
走査番号ｋ＝１の場合、マゼンタ（４ｎ＋１）累積誤差バッファ９０２を使用した誤差拡散処理を実施する。すなわち、累積誤差加算部９０６において、マゼンタ走査ＤｕｔｙとＣＭ制約情報の合計である入力データ値に対して、入力画素データの横画素位置ｘに対応する誤差Ｅｍ1(ｘ)が加算される。即ち、入力された注目データをＩｍ、累積誤差加算後のデータをＩｍ'とすると、以下の式が成り立つ。
【０１６５】
Ｉｃ'＝Ｉｃ＋Ｅｃ1(ｘ)            ・・・(５６)
次にステップＳ８０３において、閾値選択部９０７は閾値Ｔを選択する。閾値Ｔは、例えば以下のように設定される。
【０１６６】
Ｔ＝１２８                        ・・・(５７)
或いは、ドット生成遅延を回避するため、平均量子化誤差が小さくなるよう、Ｍ_dに応じて閾値Ｔを以下のように細かく変更しても良い。
【０１６７】
Ｔ＝ｆ(Ｍ_d)                      ・・・(５８)
次にステップＳ８０４において、量子化部９０８は、誤差加算後の画素データＩｍ'と閾値Ｔを比較し、ドットの２値化結果であるＯｕｔ_ｍを決定する。その規則は次の通りである。
【０１６８】
Ｉｍ'＜Ｔのとき、
Ｏｕｔ_ｍ＝０                      ・・・(５９)
Ｉｍ'≧Ｔのとき、
Ｏｕｔ_ｍ＝２５５                  ・・・(６０)
次にステップＳ８０５において、誤差演算部９０９は、注目画素Ｉｍに誤差を加算した画素データＩｍ'と、出力画素値Ｏｕｔ_ｍとの差分Ｅｒｒ_ｍを、次のように算出する。
【０１６９】
Ｅｒｒ_ｍ(ｘ)＝Ｉｍ'−Ｏｕｔ_ｍ      ・・・(６１)
次にステップＳ８０６において、誤差拡散部９１０が誤差を拡散する。即ち、マゼンタ（４ｎ＋１）累積誤差ラインバッファ９０２を用いて、横画素位置ｘに応じた誤差Ｅｒｒ_ｍ(ｘ)の拡散処理が、以下のように行われる。
【０１７０】
Ｅｍ1(ｘ＋１)←Ｅｍ1(ｘ＋１)＋Ｅｒｒ_ｍ(ｘ)×７／１６    (ｘ＜Ｗ)
Ｅｍ1(ｘ−１)←Ｅｍ1(ｘ−１)＋Ｅｒｒ_ｍ(ｘ)×３／１６    (ｘ＞１)
Ｅｍ1(ｘ)←Ｅｍ1_0＋Ｅｒｒ_ｍ(ｘ)×５／１６            (１＜ｘ＜Ｗ)
Ｅｍ1(ｘ)←Ｅｍ1_0＋Ｅｒｒ_ｍ(ｘ)×８／１６              (ｘ＝１)
Ｅｍ1(ｘ)←Ｅｍ1_0＋Ｅｒｒ_ｍ(ｘ)×１３／１６            (ｘ＝Ｗ)
Ｅｍ1_0←Ｅｒｒ_ｍ(x)×１／１６                          (ｘ＜Ｗ)
Ｅｍ1_0←０                                              (ｘ＝Ｗ)
・・・(６２)
以上で、走査番号ｋ＝１のマゼンタ１画素分の２値化（量子化値０，２５５）が完了する。
【０１７１】
以上説明したステップＳ８０１〜Ｓ８０６の処理を、バンド内の全ての画素について行う（Ｓ８０７）ことにより、マゼンタのハーフトーンデータのドット位置、すなわちマゼンタドットのオン／オフを決定することができる。
【０１７２】
図２９に戻り、以上説明したようにステップＳ５１１におけるマゼンタのハーフトーン処理が終了すると、次に、ハーフトーン処理後のマゼンタ２値画像データはハーフトーン画像格納バッファ１１０に格納される（Ｓ５１２）。ここで図４１に、走査番号ｋ＝１のマゼンタ走査Ｄｕｔｙをハーフトーン処理した結果が、ハーフトーン画像格納バッファ１１０に格納された様子を示す。同図に示されるようにハーフトーン画像格納バッファ１１０には、走査Ｄｕｔｙの画素位置に対応する（ノズル数：Ｎｚｚｌ）×（画像Ｘサイズ：Ｗ）分の２値画像データが格納される。
【０１７３】
次に、ハーフトーン画像格納バッファ１１０に蓄えられた、縦方向がノズル数（Ｎｚｚｌ）、横方向が画像のＸサイズ（Ｗ）に相当するマゼンタハーフトーンのバンドデータが、画像出力端子１１２より出力される（Ｓ５１３）。
【０１７４】
すると次に、制約情報演算部１１１においてマゼンタドット配置に基づいてＣＭ制約情報を演算する（Ｓ５１４）。以下、ステップＳ５１４におけるＣＭ制約情報の演算処理について、図４２のブロック図と図４３のフローチャートを用いて詳細に説明する。図４２は、制約情報演算部１１１におけるマゼンタに関する詳細構成を示すブロック図であり、図４３は該構成において行われる制約情報演算処理を示すフローチャートである。
【０１７５】
まず、図４３に示すステップＳ９０１において、走査Ｄｕｔｙバッファ１０７のデータに対してフィルタ処理を行う。すなわち、図４２に示す走査Ｄｕｔｙフィルタ処理部１００１において、走査Ｄｕｔｙバッファ１０７内のマゼンタ走査ＤｕｔｙであるＭ_ｄに対して、下式のように所定のフィルタＦ_ｍによるフィルタ処理を行ってＭ_ｄｆを算出する。図４４に、フィルタ処理されたマゼンタ走査Ｄｕｔｙデータの模式図を示す。
【０１７６】
Ｍ_ｄｆ＝Ｍ_ｄ＊Ｆ_ｍ          ・・・(６３)
ただし、＊はコンボリューションを示す
なお、ここでのフィルタＦ_ｍとしては、シアン処理と同様のものを用いても良いが、他のフィルタであっても構わない。
【０１７７】
次にステップＳ９０２において、ハーフトーンデータフィルタ処理部１００２が、Ｏｕｔ_ｍに対して、下式のように所定のローパスフィルタＬＰＦ_ｂによるフィルタ処理を行ってＯｕｔ_ｍ_LPFを算出する。図４５に、フィルタ処理されたマゼンタハーフトーンデータの模式図を示す。
【０１７８】
Ｏｕｔ_ｍ_LPF＝Ｏｕｔ_ｍ＊ＬＰＦ_ｂ        ・・・(６４)
なお、本実施形態におけるＬＰＦ_ｂとしても、シアン処理と同様のものを用いても、他のフィルタであっても構わない。
【０１７９】
次にステップＳ９０３において、走査Ｄｕｔｙデータシフト部１００３は、走査Ｄｕｔｙフィルタ処理部１００１から出力されたデータＭ_ｄｆを、一回の紙送り量ＬＦ＝Ｎｚｚｌ／Ｐａｓｓ＝１６／４＝４だけ上にシフトする。図４６に、シフトされたマゼンタ走査Ｄｕｔｙデータの模式図を示す。シフトした走査ＤｕｔｙデータＭ'_ｄｆは、以下のように算出される。なお、０≦ｎｘ＜画像Ｘサイズ、０≦ｎｙ＜Ｎｚｚｌとする。
【０１８０】
Ｍ'_ｄｆ(ｎｘ，ｎｙ)＝Ｍ_ｄｆ(ｎｘ，ｎｙ＋ＬＦ)        ・・・(６５)
式（６５）において、ｎｙ＋ＬＦ≧Ｎｚｚｌのときは、Ｍ'_ｄｆ(ｎｘ，ｎｙ)＝０とする。すなわち、シフト後の下端ＬＦノズル分（この場合４ノズル分）には０を代入する。  そしてステップＳ９０４でも同様に、ハーフトーンデータシフト部１００４において、データＯｕｔ_ｍ_LPFを紙送り分上にシフトする。図４７に、シフトされたマゼンタハーフトーンデータの模式図を示す。シフトしたマゼンタハーフトーンデータＯｕｔ'_ｍ_LPFは、以下のように算出される。なお、０≦ｎｘ＜画像Ｘサイズ、０≦ｎｙ＜Ｎｚｚｌとする。
【０１８１】
Ｏｕｔ'_ｍ_LPF(ｎｘ，ｎｙ)＝Ｏｕｔ_ｍ_LPF(ｎｘ，ｎｙ＋ＬＦ)  ・・・(６６)
式（６６）においても、ｎｙ＋ＬＦ≧Ｎｚｚｌのときは、Ｏｕｔ'_ｍ_LPF(ｎｘ，ｎｙ)＝０とする。すなわち、シフト後の下端ＬＦノズル分（この場合４ノズル分）には０を代入する。
【０１８２】
そしてステップＳ９０５でも同様に、制約情報データシフト部１００５において、シアン反映済みの制約情報データＣＭ_ｒを紙送り分上にシフトする。シフトされた制約情報データをＣＭ'_rは、以下のように算出される。なお、０≦ｎｘ＜画像Ｘサイズ、０≦ｎｙ＜Ｎｚｚｌとする。
【０１８３】
ＣＭ'_ｒ(ｎｘ，ｎｙ)＝ＣＭ_ｒ(ｎｘ，ｎｙ＋ＬＦ)        ・・・(６７)
式（６７）においても、ｎｙ＋ＬＦ≧Ｎｚｚｌのときは、ＣＭ'_ｒ(ｎｘ，ｎｙ)＝０とする。すなわち、シフト後の下端ＬＦノズル分（この場合４ノズル分）には０を代入する。
【０１８４】
上述したように、次の走査番号用の制約情報を算出するためには、相対的に紙送り量ＬＦ上方にシフトさせ、さらに、下端ＬＦノズル分は０を代入する必要がある。ここで、マゼンタ処理においてバッファデータを紙送り量ＬＦだけシフトさせる理由は、同一走査番号におけるシアン、マゼンタのハーフトーン画像が、双方とも既に処理済みだからである。さらに、第３実施形態ではシアンマゼンタの制約情報を共用しているため、同一走査番号におけるシアン、マゼンタの双方のドット配置の決まった後、制約情報をＬＦ分上方にシフトさせる。
【０１８５】
次にステップＳ９０６では減算部１００６において、走査Ｄｕｔｙデータシフト部１００３で算出されたデータから、ハーフトーンデータシフト部１００４で算出されたデータを減算する。そしてステップＳ９０７で重み積算部１００７において、重み係数ｈ２（実数）を積算する。
【０１８６】
次にステップＳ９０８で加算部１００８において、重み積算部１００７で算出されたデータと、シフト済みのＣＭ制約情報を加算して、シアンマゼンタ反映後の制約情報ＣＭ_rを算出する。
【０１８７】
下式に、上記ステップＳ９０６〜Ｓ９０８により算出される、シアンマゼンタ反映後の制約情報ＣＭ_ｒの演算式を示す。
【０１８８】
ＣＭ_ｒ←(−Ｏｕｔ'_ｍ_LPF＋Ｍ'_dｆ)×ｈ２＋ＣＭ'_ｒ          ・・・(６８)
以上で、図２９のステップＳ５１４における、マゼンタドット配置に基づくＣＭ制約情報の演算処理が終了する。
【０１８９】
次にステップＳ５１５において、ＣＭ制約情報の演算結果で制約情報バッファ１０９を更新する。このように更新されたＣＭ制約情報は、次の走査番号ｋ＋１以降のドット配置を決定するための情報として参照される。
【０１９０】
第３実施形態では上述した処理によって第１実施形態と同様に、記録媒体上の同一領域において、既に記録されたドットパターンの低周波成分を常に逆位相にするように、走査ごとのドットパターンが形成される。ただし、第１実施形態では同一色のドットについて低周波成分を逆位相にするようドットパターンが形成されるが、第３実施形態では、共用の制約情報によって相互に低周波成分が逆位相にするようにドットパターンが形成されることを特徴とする。
【０１９１】
したがって第３実施形態によれば、制約情報バッファ数を削減できることはもちろんのこと、異色間において低周波が逆位相になるため、例えば、シアン、マゼンタドットが重なって濃いブルードットとなり粒状性が悪化するような不具合を防ぐことができる。
【０１９２】
次にステップＳ５１６において、ハーフトーンデータを受けたプリンタ２では、該画像データに適合するインク色が選択され、印字動作が開始される。ステップＳ５１６においては、記録ヘッド２０１が記録媒体に対して左から右に移動しながら、一定の駆動間隔で各ノズルを駆動して記録媒体上に画像を記録する主走査を一回行う。さらに該主走査が終了すると、主走査と垂直方向の走査である副走査が１回行なわれる。
【０１９３】
次にステップＳ５１７において、全ての走査が終了したか否かの判定を行う。終了した場合には一連の画像形成処理が完了し、終了していない場合にはステップＳ５０３に戻る。以上により、処理の全てが終了する。
【０１９４】
以上説明したように第３実施形態によれば、制約情報を２色以上で共用することにより、第１実施形態で同一色について実現されていた低周波成分の逆位相化および高周波成分の無相関化を、異色間においても実現する。これにより、制約情報バッファ数の削減のみならず、特に低周波領域における異色ドットの重なりによる粒状性悪化を防ぐことができる。
【０１９５】
＜第４実施形態＞
以下、本発明に係る第４実施形態について説明する。第４実施形態における画像形成装置の詳細構成は上述した第１実施形態と同様であるため、説明を省略する。
【０１９６】
上述した第１〜３実施形態では、画像の濃度に関わらず、常に同じフィルタを用いて制約情報バッファ１０９を更新する例を示した。しかしながら、一般にハーフトーン処理画像においては、濃度に応じて空間周波数特性が変化するため、常に同じフィルタを用いて制約情報を生成すると、以下のような問題が生じてしまう場合がある。例えば、低濃度域ではなんら問題がない画像であっても、高濃度域で粒状性が目立ってしまったり、逆に、高濃度域では問題ない画像が、低濃度域でムラが目立ってしまうこと等がある。
【０１９７】
第４実施形態では、画像の濃度値に応じてフィルタを変更することを特徴とする。これにより、濃度に応じた最適な処理を行うことが可能になり、上記のように、濃度依存の画質劣化を防ぐことが可能になる。
【０１９８】
以下、第４実施形態におけるハーフトーン処理について説明する。該処理は基本的に上述した第１実施形態に示した図３のフローチャートと同様であるが、ステップＳ１０９の制約情報演算処理についての詳細が第１実施形態とは異なる。したがって、以下では図３のステップＳ１０９の処理についてのみ、第４実施形態における詳細を説明し、他のステップについての説明は省略する。
【０１９９】
ステップＳ１０９においては制約情報を演算する。ここでは説明を簡略化するため、４パス印字、走査番号ｋ＝１、ノズル数Ｎｚｚｌ＝１６におけるシアンの制約情報の演算についての詳細を、図４８のブロック図と図４９のフローチャートを用いて詳細に説明する。
【０２００】
図４８は、制約情報演算部１１１におけるシアンに関する詳細構成を示すブロック図であり、図４９は該構成において行われる制約情報演算処理を示すフローチャートである。図４８によれば、第４実施形態の制約情報演算部１１１は、累積走査Ｄｕｔｙバッファ１１０３と累積ハーフトーンデータバッファ１１０４を備え、これらに格納される累積データを用いて、制約情報の演算を行うことを特徴とする。
【０２０１】
なお、ここで制約情報とは上述したとおり、現在の走査番号ｋ＝１の次の走査番号ｋ＝２におけるハーフトーン画像のドット配置を決める上で、ドットが打たれやすいか否かを示す情報である。なお、現在の走査番号がｋのときは、次の走査番号はｋ＋１である。
【０２０２】
まず、図４９に示すステップＳ１００１において、図４８に示す加算部１１０１で、走査Ｄｕｔｙバッファ１０７内のシアンＤｕｔｙデータと、累積走査Ｄｕｔｙバッファ１１０３に保持されているデータを加算する。ここで累積走査Ｄｕｔｙバッファ１１０３には、全０の初期値が代入されており、走査番号ｋ＝１のとき、各色のデータは以下のように記述される。なお、アドレス(Ｘ，Ｙ)における各色のバッファデータをそれぞれ、Ｃ_ｓｕｍ_ｄ(Ｘ，Ｙ)、Ｌｃ_ｓｕｍ_ｄ(Ｘ，Ｙ)、Ｍ_ｓｕｍ_ｄ(Ｘ，Ｙ)、Ｌｍ_ｓｕｍ_ｄ(Ｘ，Ｙ)、Ｙ_ｓｕｍ_ｄ(Ｘ，Ｙ)、Ｋ_ｓｕｍ_ｄ(Ｘ，Ｙ)とする。また、０≦ｎｘ＜画像Ｘサイズ、０≦ｎｙ＜Ｎｚｚｌとする。
【０２０３】
Ｃ_ｓｕｍ_ｄ(ｎｘ，ｎｙ)＝０                    ・・・(６９)
Ｌｃ_ｓｕｍ_ｄ(ｎｘ，ｎｙ)＝０                  ・・・(７０)
Ｍ_ｓｕｍ_ｄ(ｎｘ，ｎｙ)＝０                    ・・・(７１)
Ｌｍ_ｓｕｍ_ｄ(ｎｘ，ｎｙ)＝０                  ・・・(７２)
Ｙ_ｓｕｍ_ｄ(ｎｘ，ｎｙ)＝０                    ・・・(７３)
Ｋ_ｓｕｍ_ｄ(ｎｘ，ｎｙ)＝０                    ・・・(７４)
ここでシアンに限って説明すると、ステップＳ１００１による加算後の累積走査ＤｕｔｙデータＣ_ｓｕｍ_ｄ'は、以下のように算出される
Ｃ_ｓｕｍ_ｄ'＝Ｃ_ｄ＋Ｃ_ｓｕｍ_ｄ              ・・・(７５)
次にステップＳ１００２において、図４８に示す加算部１１０２で、ハーフトーンデータと累積ハーフトーンデータバッファ１１０４に保持されているデータを加算する。ここで累積ハーフトーンデータバッファ１１０４にも、全０の初期値が代入されており、走査番号ｋ＝１のとき、各色のデータは以下のように記述される。なお、アドレス(Ｘ，Ｙ)におけるＣ，Ｌｃ，Ｍ，Ｌｍ，Ｙ，Ｋ各色のバッファデータをそれぞれ以下のように示すとする。すなわち、Ｏｕｔ_ｃ_ｓｕｍ(Ｘ，Ｙ)、Ｏｕｔ_ｌｃ_ｓｕｍ(Ｘ，Ｙ)、Ｏｕｔ_ｍ_ｓｕｍ(Ｘ，Ｙ)、Ｏｕｔ_ｌｍ_ｓｕｍ(Ｘ，Ｙ)、Ｏｕｔ_ｙ_ｓｕｍ(Ｘ，Ｙ)、Ｏｕｔ_ｋ_ｓｕｍ(Ｘ，Ｙ)とする。また、０≦ｎｘ＜画像Ｘサイズ、０≦ｎｙ＜Ｎｚｚｌとする。
【０２０４】
Ｏｕｔ_ｃ_ｓｕｍ(ｎｘ，ｎｙ)＝０                ・・・(７６)
Ｏｕｔ_ｌｃ_ｓｕｍ(ｎｘ，ｎｙ)＝０              ・・・(７７)
Ｏｕｔ_ｍ_ｓｕｍ(ｎｘ，ｎｙ)＝０                ・・・(７８)
Ｏｕｔ_ｌｍ_ｓｕｍ(ｎｘ，ｎｙ)＝０              ・・・(７９)
Ｏｕｔ_ｙ_ｓｕｍ(ｎｘ，ｎｙ)＝０                ・・・(８０)
Ｏｕｔ_ｋ_ｓｕｍ(ｎｘ，ｎｙ)＝０                ・・・(８１)
ここでシアンに限って説明すると、ステップＳ１００２による加算後の累積ハーフトーンデータＯｕｔ_ｃ_ｓｕｍ'は、以下のように算出される
Ｏｕｔ_ｃ_ｓｕｍ'＝Ｏｕｔ_ｃ＋Ｏｕｔ_ｃ_ｓｕｍ  ・・・(８２)
ここで、Ｏｕｔ_ｃはハーフトーンデータであるので、０もしくは２５５の値である。また、Ｏｕｔ_ｃ_ｓｕｍはＯｕｔ_ｃの累積データであるので、０もしくは２５５の倍数の値である。例えば、Ｏｕｔ_ｃ＝２５５、Ｏｕｔ_ｃ_ｓｕｍ＝２５５の場合には、Ｏｕｔ_ｃ_ｓｕｍ'は５１０となるし、Ｏｕｔ_ｃ＝２５５、Ｏｕｔ_ｃ_ｓｕｍ＝５１０の場合には、Ｏｕｔ_ｃ_ｓｕｍ'は７６５となる。
【０２０５】
次にステップＳ１００３において、上記式（７５）にて算出された累積走査ＤｕｔｙデータＣ_ｓｕｍ_ｄ'を、累積走査Ｄｕｔｙバッファ１１０３に書き込む。これにより、下式が成り立つ。
【０２０６】
Ｃ_ｓｕｍ_ｄ←Ｃ_ｓｕｍ_ｄ'                      ・・・(８３)
次にステップＳ１００４において、上記式（８２）にて算出された累積ハーフトーンデータＯｕｔ_ｃ_ｓｕｍ'を、累積ハーフトーンデータバッファ１１０４に書き込む。これにより、下式が成り立つ。
【０２０７】
Ｏｕｔ_ｃ_ｓｕｍ←Ｏｕｔ_ｃ_ｓｕｍ'              ・・・(８４)
次にステップＳ１００５で、累積走査Ｄｕｔｙフィルタ処理部１１０５において、累積走査Ｄｕｔｙバッファ１１０３に保持されたＣ_ｓｕｍ_ｄに対するフィルタ処理を行う。このフィルタ処理においては、Ｃ_ｓｕｍ_ｄに応じて変化する２次元ガウシアンフィルタＦ_ｍ(Ｃ_ｓｕｍ_ｄ，ｘ，ｙ)を用い、下式のようにＣ_ｓｕｍ_ｄｆを算出する。
【０２０８】
Ｃ_ｓｕｍ_ｄｆ＝Ｃ_ｓｕｍ_ｄ＊Ｆ_ｍ(Ｃ_ｓｕｍ_ｄ，ｘ，ｙ)      ・・・(８５)
ただし、＊はコンボリューションを示す
なお、２次元ガウシアンフィルタＦ_ｍは、下式のように表される。
【０２０９】
Ｆ_ｍ＝Ｆ'_ｍ／Ｓｕｍ_ｍ                          ・・・(８６)
式（８６）において、Ｓｕｍ_ｍは、Ｆ'_ｍ係数の合計値である。また、Ｆ'_ｍは下式で表される。
【０２１０】
2008188805.tif 000003
【０２１１】
式（８７）において、σｘ(Ｃ_ｓｕｍ_ｄ)、σｙ(Ｃ_ｓｕｍ_ｄ)は、累積走査ＤｕｔｙデータであるＣ_ｓｕｍ_ｄに応じて値が変化する。
【０２１２】
ここで、フィルタＦ_ｍの具体例を図５０の５００１，５００２に示す。第４実施形態では説明を簡略化するため、フィルタサイズが３×３正方形である例を示すが、この形態に限るものではない。例えば、フィルタサイズは５×５，７×７，９×９のような正方形でも、３×５，５×７，５×９のような長方形でも良い。また、ローパス特性に限らず、バンドパス特性や、ハイパス特性のフィルタであっても良い。
【０２１３】
なお、図５０において、５００１はサイズ３ｘ３で、Ｃ_ｓｕｍ_ｄ＝３０のとき、σx(Ｃ_ｓｕｍ_ｄ)＝１．０、σy(Ｃ_ｓｕｍ_ｄ)＝１．０となるフィルタ例を示す。また５００２は、サイズ３ｘ３で、Ｃ_ｓｕｍ_ｄ＝４０のとき、σx(Ｃ_ｓｕｍ_ｄ)＝０．９、σy(Ｃ_ｓｕｍ_ｄ)＝０．９となるフィルタ例を示している。すなわち図５０によれば、Ｃ_ｓｕｍ_ｄに応じてフィルタＦ_ｍのフィルタ係数が変化していることが分かる。
【０２１４】
次にステップＳ１００６で、累積ハーフトーンデータフィルタ処理部１１０６において、累積ハーフトーンデータバッファ１１０４に保持されたＯｕｔ_ｃ_ｓｕｍに対するフィルタ処理を行う。このフィルタ処理においては、Ｃ_ｓｕｍ_ｄに応じて変化する２次元ガウシアンフィルタＬＰＦ_ｂ(Ｃ_ｓｕｍ_ｄ，ｘ，ｙ)を用い、下式のようにＯｕｔ_ｃ_ｓｕｍ_LPFを算出する。
【０２１５】
Ｏｕｔ_ｃ_ｓｕｍ_LPF＝Ｏｕｔ_c_ｓｕｍ＊ＬＰＦ_ｂ      ・・・(８８)
なお、２次元ガウシアンフィルタＬＦＰ_ｂは、下式のように表される。
【０２１６】
ＬＰＦ_ｂ＝ＬＰＦ'_ｂ／Ｓｕｍ_ｂ                      ・・・(８９)
式（８９）において、Ｓｕｍ_ｂは、ＬＰＦ'_ｂ係数の合計値である。また、ＬＰＦ'_ｂは下式で表される。
【０２１７】
2008188805.tif 000004
【０２１８】
式（９０）において、σｘ(Ｃ_ｓｕｍ_ｄ)、σｙ(Ｃ_ｓｕｍ_ｄ)は、累積走査ＤｕｔｙデータであるＣ_ｓｕｍ_ｄに応じて値が変化する。
【０２１９】
ここで、フィルタＬＰＦ_ｂの具体例を図５０の５００３，５００４に示す。第４実施形態ではＬＰＦ_ｂについてもＦ_ｍと同様に、フィルタサイズが３×３正方形である例を示すが、この形態に限るものではない。例えば、フィルタサイズは５×５，７×７，９×９のような正方形でも、３×５，５×７，５×９のような長方形でも良い。ただし、十分な効果を得るために、Ｃ_ｓｕｍ_ｄが小さいほどσ値が大きくなることが望ましい。また、ＬＰＦ_ｂはローパス特性を有することが好ましい。
【０２２０】
図５０に示すようにＬＦＰ_ｂもＦ_ｍと同様に、累積走査ＤｕｔｙデータであるＣ_ｓｕｍ_ｄに応じて、フィルタ係数が変化していることが分かる。なお、図５０によれば、第４実施形態ではＦ_ｍとＬＰＦ_ｂとして同じフィルタ係数を用いているが、もちろん異なる係数であっても良い。
【０２２１】
次にステップＳ１００７では減算部１１０７において、累積走査Ｄｕｔｙフィルタ処理部１１０５で算出されたデータから、累積ハーフトーンデータフィルタ処理部１１０６で算出されたデータを減算する。そしてステップＳ１００８で重み積算部１１０８において、重み係数ｈ（実数）を積算することによって、制約情報Ｃ_ｒを得る。ステップＳ１００７およびＳ１００８における処理は、下式のように表される。
【０２２２】
Ｃ_ｒ←(−Ｏｕｔ_ｃ_ｓｕｍ_LPF＋Ｃ_ｓｕｍ_dｆ)×ｈ      ・・・(９１)
次にステップＳ１００９において、制約情報データバッファ書き込み部１１０９にて、式(９１)で得られたデータＣ_ｒを制約情報データバッファ１０９に書き込む。
【０２２３】
次にステップＳ１０１０において、制約情報データバッファシフト部１１１０は、制約情報データバッファ１０９に書き込まれた制約情報Ｃ_ｒを、一回の紙送り量ＬＦ＝Ｎｚｚｌ／Ｐａｓｓ＝１６／４＝４だけ上にシフトする。ここでシフトした走査Ｄｕｔｙデータは、下式により算出される。なお、０≦ｎｘ＜画像Ｘサイズ、０≦ｎｙ＜Ｎｚｚｌとする。
【０２２４】
Ｃ_ｒ(ｎｘ，ｎｙ)＝Ｃ_ｒ(ｎｘ，ｎｙ＋ＬＦ)        ・・・(９２)
式（９２）においてｎｙ＋ＬＦ≧Ｎｚｚｌのときは、Ｃ_ｒ(ｎｘ，ｎｙ)＝０とする。すなわち、シフト後の下端ＬＦノズル分（この場合４ノズル分）には０を代入する。
【０２２５】
次にステップＳ１０１１において、累積走査Ｄｕｔｙデータシフト部１１１１は、累積走査Ｄｕｔｙバッファ１１０３に保持されたＣ_ｓｕｍ_ｄを、一回の紙送り量ＬＦ＝Ｎｚｚｌ／Ｐａｓｓ＝１６／４＝４だけ上にシフトする。ここでシフトした累積走査Ｄｕｔｙデータは、下式のように算出される。なお、０≦ｎｘ＜画像Ｘサイズ、０≦ｎｙ＜Ｎｚｚｌとする。
【０２２６】
Ｃ_ｓｕｍ_ｄ(ｎｘ，ｎｙ)＝Ｃ_ｓｕｍ_ｄ(ｎｘ，ｎｙ＋ＬＦ)      ・・・(９３)
式（９３）においても、ｎｙ＋ＬＦ≧Ｎｚｚｌのときは、Ｃ_ｒ(ｎｘ，ｎｙ)＝０とする。すなわち、シフト後の下端ＬＦノズル分（この場合４ノズル分）には０を代入する。
【０２２７】
そしてステップＳ１０１２でも同様に、累積ハーフトーンデータシフト部１１１２も、累積ハーフトーンデータバッファ１１０４に保持されたＯｕｔ_ｃ_ｓｕｍを、一回の紙送り量だけ上にシフトする。ここでシフトした累積ハーフトーンデータは以下のように算出される。なお、０≦ｎｘ＜画像Ｘサイズ、０≦ｎｙ＜Ｎｚｚｌとする。
【０２２８】
Ｏｕｔ_ｃ_ｓｕｍ(ｎｘ，ｎｙ)＝Ｏｕｔ_c_ｓｕｍ(ｎｘ，ｎｙ＋ＬＦ)・・・(９４)
式（９４）においても、ｎｙ＋ＬＦ≧Ｎｚｚｌのときは、Ｃ_ｒ(ｎｘ，ｎｙ)＝０とする。すなわち、シフト後の下端ＬＦノズル分（この場合４ノズル分）には０を代入する。
【０２２９】
以上で、第４実施形態のステップＳ１０９における制約情報演算処理が終了する。
【０２３０】
以上説明したように第４実施形態によれば、同一色について、累積走査Ｄｕｔｙデータに応じてフィルタ係数を変えることによって、濃度に応じた最適な制約情報を算出することが可能になり、濃度依存の画質劣化を防ぐことができる。
【０２３１】
なお、第４実施形態のフィルタ処理は、ディザ処理を行う第２実施形態に適用してもよいし、異なる色同士で制約情報を共有する第３実施形態に適用してもよい。
【０２３２】
＜第５実施形態＞
以下、本発明に係る第５実施形態について説明する。第５実施形態における画像形成装置の詳細構成は上述した第１実施形態と同様であるため、説明を省略する。
【０２３３】
上述した第１〜４実施形態では、Ｃ_dもしくはＣ_sum_dなどの多値データに対してもフィルタ処理を行い、画像の空間周波数特性の保存を前提とした処理を実施した。しかしながら、Ｃ_dもしくはＣ_sum_dなど、多値データに対してのフィルタ処理はハード、ソフト処理ともに処理コストがかかることが知られている。
【０２３４】
第５実施形態では、多値データのフィルタ処理を省略した処理を実施する。これにより、画像のエッジが強調されるが、処理コストを省いた構成が可能となる。
【０２３５】
以下、第５実施形態におけるハーフトーン処理について説明する。該処理は基本的に上述した第１実施形態に示した図３のフローチャートと同様であるが、ステップＳ１０９の制約情報演算処理についての詳細が第１実施形態とは異なる。したがって、以下では図３のステップＳ１０９の処理についてのみ、第５実施形態における詳細を説明し、他のステップについての説明は省略する。
【０２３６】
ステップＳ１０９においては制約情報を演算する。ここでは説明を簡略化するため、４パス印字、走査番号ｋ＝１、ノズル数Ｎｚｚｌ＝１６におけるシアンの制約情報の演算についての詳細を、図５４のブロック図と図５５のフローチャートを用いて詳細に説明する。図５４は、制約情報演算部１１１におけるシアンに関する詳細構成を示すブロック図であり、図５５は該構成において行われる制約情報演算処理を示すフローチャートである。  なお、ここで制約情報とは上述したとおり、現在の走査番号ｋ＝１の次の走査番号ｋ＝２におけるハーフトーン画像のドット配置を決める上で、ドットが打たれやすいか否かを示す情報である。なお、現在の走査番号がｋのときは、次の走査番号はｋ＋１である。
【０２３７】
まず、図５５に示すステップＳ１１０１において、図５４に示す加算部１２０１で、走査Ｄｕｔｙバッファ１０７内のシアンＤｕｔｙデータと、累積走査Ｄｕｔｙバッファ１２０４に保持されているデータを加算する。ここで累積走査Ｄｕｔｙバッファ１２０４には、全０の初期値が代入されており、走査番号ｋ＝１のとき、各色のデータは以下のように記述される。なお、アドレス(Ｘ，Ｙ)における各色のバッファデータをそれぞれ、Ｃ_ｓｕｍ_ｄ(Ｘ，Ｙ)、Ｌｃ_ｓｕｍ_ｄ(Ｘ，Ｙ)、Ｍ_ｓｕｍ_ｄ(Ｘ，Ｙ)、Ｌｍ_ｓｕｍ_ｄ(Ｘ，Ｙ)、Ｙ_ｓｕｍ_ｄ(Ｘ，Ｙ)、Ｋ_ｓｕｍ_ｄ(Ｘ，Ｙ)とする。また、０≦ｎｘ＜画像Ｘサイズ、０≦ｎｙ＜Ｎｚｚｌとする。
【０２３８】
Ｃ_ｓｕｍ_ｄ(ｎｘ，ｎｙ)＝０                    ・・・(９５)
Ｌｃ_ｓｕｍ_ｄ(ｎｘ，ｎｙ)＝０                  ・・・(９６)
Ｍ_ｓｕｍ_ｄ(ｎｘ，ｎｙ)＝０                    ・・・(９７)
Ｌｍ_ｓｕｍ_ｄ(ｎｘ，ｎｙ)＝０                  ・・・(９８)
Ｙ_ｓｕｍ_ｄ(ｎｘ，ｎｙ)＝０                    ・・・(９９)
Ｋ_ｓｕｍ_ｄ(ｎｘ，ｎｙ)＝０                    ・・・(１００)
ここでシアンに限って説明すると、ステップＳ１１０１による加算後の累積走査ＤｕｔｙデータＣ_ｓｕｍ_ｄ'は、以下のように算出される
Ｃ_ｓｕｍ_ｄ'＝Ｃ_ｄ＋Ｃ_ｓｕｍ_ｄ              ・・・(１０１)
次にステップＳ１１０２において、ハーフトーンデータフィルタ処理部１２０２は，Ｏｕｔ_ｃに対して所定のローパスフィルタＬＰＦ_ｂによるフィルタ処理を施す。
【０２３９】
Ｏｕｔ_ｃ_LPF＝Ｏｕｔ_c＊ＬＰＦ_ｂ      ・・・(１０２)
第５実施形態におけるＬＰＦ_ｂの係数は、図２４の２４０２に示すようにフィルタサイズが３×３正方形で、係数がほぼ同心円に並ぶ等方的加重平均フィルタとして説明するが、この形態に限るものではない。ただし、ＬＰＦ_ｂはローパス特性を有することが好ましい。
【０２４０】
次にステップＳ１１０３において、図５４に示す加算部１２０３で、フィルタ処理後のハーフトーンデータと累積ハーフトーンフィルタ後データバッファ１２０５に保持されているデータを加算する。ここで累積ハーフトーンフィルタ後データバッファ１２０５にも、全０の初期値が代入されており、走査番号ｋ＝１のとき、各色のデータは以下のように記述される。なお、アドレス(Ｘ，Ｙ)におけるＣ，Ｌｃ，Ｍ，Ｌｍ，Ｙ，Ｋ各色のバッファデータをそれぞれ以下のように示すとする。すなわち、Ｏｕｔ_ｃ_LPF_ｓｕｍ(Ｘ，Ｙ)、Ｏｕｔ_ｌｃ_LPF_ｓｕｍ(Ｘ，Ｙ)、Ｏｕｔ_ｍ_LPF_ｓｕｍ(Ｘ，Ｙ)、Ｏｕｔ_ｌｍ_LPF_ｓｕｍ(Ｘ，Ｙ)。および、Ｏｕｔ_ｙ_LPF_ｓｕｍ(Ｘ，Ｙ)、Ｏｕｔ_ｋ_LPF_ｓｕｍ(Ｘ，Ｙ)とする。また、０≦ｎｘ＜画像Ｘサイズ、０≦ｎｙ＜Ｎｚｚｌとする。
【０２４１】
Ｏｕｔ_ｃ_LPF_ｓｕｍ(ｎｘ，ｎｙ)＝０                ・・・(１０３)
Ｏｕｔ_ｌｃ_LPF_ｓｕｍ(ｎｘ，ｎｙ)＝０              ・・・(１０４)
Ｏｕｔ_ｍ_LPF_ｓｕｍ(ｎｘ，ｎｙ)＝０                ・・・(１０５)
Ｏｕｔ_ｌｍ_LPF_ｓｕｍ(ｎｘ，ｎｙ)＝０              ・・・(１０６)
Ｏｕｔ_ｙ_LPF_ｓｕｍ(ｎｘ，ｎｙ)＝０                ・・・(１０７)
Ｏｕｔ_ｋ_LPF_ｓｕｍ(ｎｘ，ｎｙ)＝０                ・・・(１０８)
ここでシアンに限って説明すると、ステップＳ１１０３による加算後の累積ハーフトーンフィルタ後データＯｕｔ_ｃ_LPF_ｓｕｍ'は、以下のように算出される
Ｏｕｔ_ｃ_LPF_ｓｕｍ'＝Ｏｕｔ_ｃ_LPF＋Ｏｕｔ_ｃ_LPF_ｓｕｍ  ・・・(１０９)
次にステップＳ１１０４において、上記式（１０１）にて算出された累積走査ＤｕｔｙデータＣ_ｓｕｍ_ｄ'を、累積走査Ｄｕｔｙバッファ１２０４に書き込む。これにより、下式が成り立つ。
【０２４２】
Ｃ_ｓｕｍ_ｄ←Ｃ_ｓｕｍ_ｄ'                      ・・・(１１０)
次にステップＳ１１０５において、上記式（１０９）にて算出された累積ハーフトーンフィルタ後データＯｕｔ_ｃ_LPF_ｓｕｍ'を、累積ハーフトーンフィルタ後データバッファ１２０５に書き込む。これにより、下式が成り立つ。
【０２４３】
Ｏｕｔ_ｃ_LPF_ｓｕｍ←Ｏｕｔ_ｃ_LPF_ｓｕｍ'      ・・・(１１１)
次にステップＳ１１０６では減算部１２０６において、累積走査Ｄｕｔｙバッファ１２０４に格納されたデータから、累積ハーフトーンフィルタ後データバッファ１２０５に格納されたデータを減算する。そしてステップＳ１１０７で重み積算部１２０７において、重み係数ｈ（実数）を積算することによって、制約情報Ｃ_ｒを得る。ステップＳ１１０６およびＳ１１０７における処理は、下式のように表される。
【０２４４】
Ｃ_ｒ←(−Ｏｕｔ_ｃ_LPF_ｓｕｍ＋Ｃ_ｓｕｍ_d)×ｈ      ・・・(１１２)
次にステップＳ１１０８において、制約情報データバッファ書き込み部１２０８にて、式(１１２)で得られたデータＣ_ｒを制約情報データバッファ１０９に書き込む。
【０２４５】
次にステップＳ１１０９において、制約情報データバッファシフト部１２０９は、制約情報データバッファ１０９に書き込まれた制約情報Ｃ_ｒを、一回の紙送り量ＬＦ＝Ｎｚｚｌ／Ｐａｓｓ＝１６／４＝４だけ上にシフトする。ここでシフトした走査Ｄｕｔｙデータは、下式により算出される。なお、０≦ｎｘ＜画像Ｘサイズ、０≦ｎｙ＜Ｎｚｚｌとする。
【０２４６】
Ｃ_ｒ(ｎｘ，ｎｙ)＝Ｃ_ｒ(ｎｘ，ｎｙ＋ＬＦ)        ・・・(１１３)
式（１１３）においてｎｙ＋ＬＦ≧Ｎｚｚｌのときは、Ｃ_ｒ(ｎｘ，ｎｙ)＝０とする。すなわち、シフト後の下端ＬＦノズル分（この場合４ノズル分）には０を代入する。
【０２４７】
次にステップＳ１１１０において、累積走査Ｄｕｔｙデータシフト部１２１０は、累積走査Ｄｕｔｙバッファ１２０４に保持されたＣ_ｓｕｍ_ｄを、一回の紙送り量ＬＦ＝Ｎｚｚｌ／Ｐａｓｓ＝１６／４＝４だけ上にシフトする。ここでシフトした累積走査Ｄｕｔｙデータは、下式のように算出される。なお、０≦ｎｘ＜画像Ｘサイズ、０≦ｎｙ＜Ｎｚｚｌとする。
【０２４８】
Ｃ_ｓｕｍ_ｄ(ｎｘ，ｎｙ)＝Ｃ_ｓｕｍ_ｄ(ｎｘ，ｎｙ＋ＬＦ)    ・・・(１１４)
式（１１４）においても、ｎｙ＋ＬＦ≧Ｎｚｚｌのときは、Ｃ_ｒ(ｎｘ，ｎｙ)＝０とする。すなわち、シフト後の下端ＬＦノズル分（この場合４ノズル分）には０を代入する。
【０２４９】
そしてステップＳ１１１１でも同様に、累積ハーフトーンデータシフト部１２１１も、累積ハーフトーンフィルタ後データバッファ１２０５に保持されたＯｕｔ_ｃ_LPF_ｓｕｍを、一回の紙送り量だけ上にシフトする。ここでシフトした累積ハーフトーンフィルタ後データは以下のように算出される。なお、０≦ｎｘ＜画像Ｘサイズ、０≦ｎｙ＜Ｎｚｚｌとする。
【０２５０】
Ｏｕｔ_ｃ_LPF_ｓｕｍ(ｎｘ，ｎｙ)＝
Ｏｕｔ_c_LPF_ｓｕｍ(ｎｘ，ｎｙ＋ＬＦ)    ・・・(１１５)
式（１１５）においても、ｎｙ＋ＬＦ≧Ｎｚｚｌのときは、Ｃ_ｒ(ｎｘ，ｎｙ)＝０とする。すなわち、シフト後の下端ＬＦノズル分（この場合４ノズル分）には０を代入する。
【０２５１】
以上で、第５実施形態のステップＳ１０９における制約情報演算処理が終了する。
【０２５２】
以上説明したように第４実施形態によれば、上述した第１乃至第４実施形態に対し、同一色について、多値データのフィルタ処理を省略した処理を実施する。これにより、画像のエッジが強調されるが、処理コストを省いた構成が可能となる。
【０２５３】
なお、第５実施形態のフィルタ処理は、ディザ処理を行う第２実施形態に適用してもよいし、異なる色同士で制約情報を共有する第３実施形態に適用してもよい。
【０２５４】
＜他の実施形態＞
上述した各実施形態では、所定方向に配列された複数のノズルを有する記録ヘッドをノズルの配列方向と交差する方向に記録媒体上で走査させて、記録媒体にインクを吐出することで画像を形成するインクジェット記録方式を用いた画像処理装置を説明した。しかしながら本発明は、インクジェット方式以外の他の方式に従って記録を行う記録装置（例えば熱転写方式や電子写真方式）に対しても適用できる。この場合、インク滴を吐出するノズルはドットを記録する記録素子やレーザー発光素子に対応することとなる。
【０２５５】
また本発明は例えば、記録媒体の記録幅に対応する長さの記録ヘッドを有し、記録ヘッドに対して記録媒体を移動させて記録を行う、いわゆるフルライン型の記録装置などにも適用できる。
【０２５６】
本発明は例えば、システム、装置、方法、プログラム若しくは記憶媒体(記録媒体)等としての実施態様をとることが可能である。具体的には、複数の機器（例えば、ホストコンピュータ、インタフェース機器、撮像装置、webアプリケーション等）から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０２５７】
尚本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される。なお、この場合のプログラムとは、実施形態において図に示したフローチャートに対応したプログラムである。
【０２５８】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０２５９】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
【０２６０】
プログラムを供給するための記録媒体としては、以下に示す媒体がある。例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD-ROM、CD-R、CD-RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD-ROM，DVD-R)などである。
【０２６１】
プログラムの供給方法としては、以下に示す方法も可能である。すなわち、クライアントコンピュータのブラウザからインターネットのホームページに接続し、そこから本発明のコンピュータプログラムそのもの(又は圧縮され自動インストール機能を含むファイル)をハードディスク等の記録媒体にダウンロードする。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
【０２６２】
また、本発明のプログラムを暗号化してCD-ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせることも可能である。すなわち該ユーザは、その鍵情報を使用することによって暗号化されたプログラムを実行し、コンピュータにインストールさせることができる。
【０２６３】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０２６４】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、実行されることによっても、前述した実施形態の機能が実現される。すなわち、該プログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行うことが可能である。
【図面の簡単な説明】
【０２６５】
【図１】本発明に係る一実施形態における画像形成システムの構成を示すブロック図である。
【図２】本実施形態のプリンタにおける記録ヘッドの構成例を示す図である。
【図３】本実施形態における画像形成処理を示すフローチャートである。
【図４】本実施形態の色分解処理部における入出力データの詳細を示す図である。
【図５】本実施形態における１６ノズル、４パス印字による画像形成の概要を示す図である。
【図６】本実施形態における走査Ｄｕｔｙ設定用ＬＵＴに保持されたＤｕｔｙ分割率の一例を示す図である。
【図７】本実施形態における走査Ｄｕｔｙの設定方法の概要を示す図である。
【図８】本実施形態における走査Ｄｕｔｙの設定方法の概要を示す図である。
【図９】本実施形態における走査Ｄｕｔｙの設定方法の概要を示す図である。
【図１０】本実施形態における走査Ｄｕｔｙバッファのバンド構成例を示す図である。
【図１１】本実施形態における制約情報バッファのバンド構成例を示す図である。
【図１２】本実施形態におけるハーフトーン処理部の詳細構成を示すブロック図である。
【図１３】本実施形態におけるハーフトーン処理を示すフローチャートである。
【図１４】本実施形態における誤差拡散係数の一例を示す図である。
【図１５】本実施形態における各シアン累積誤差ラインバッファの記憶領域を示す図である。
【図１６】本実施形態における印字領域の隣接の様子を示す図である。
【図１７】本実施形態におけるハーフトーン処理結果の格納例を示す図である。
【図１８】本実施形態における制約情報演算部の詳細構成を示すブロック図である。
【図１９】本実施形態における制約情報演算処理を示すフローチャートである。
【図２０】本実施形態の制約情報演算におけるフィルタ処理後の走査Ｄｕｔｙデータの模式図である。
【図２１】本実施形態の制約情報演算におけるフィルタ処理後のハーフトーンデータの模式図である。
【図２２】本実施形態の制約情報演算におけるシフト後の走査Ｄｕｔｙデータの模式図である。
【図２３】本実施形態の制約情報演算におけるシフト後のハーフトーンデータの模式図である。
【図２４】本実施形態の制約情報演算におけるフィルタの具体例を示す図である。
【図２５】本実施形態における印刷画像の周波数領域による対レジズレ特性を示す図である。
【図２６】第２実施形態におけるハーフトーン処理部の詳細構成を示すブロック図である。
【図２７】第２実施形態におけるハーフトーン処理を示すフローチャートである。
【図２８】第２実施形態におけるディザ処理の概要を示す図である。
【図２９】第３実施形態におけるハーフトーン処理を示すフローチャートである。
【図３０】第３実施形態における制約情報バッファのバンド構成例を示す図である。
【図３１】第３実施形態におけるハーフトーン処理部のシアンに関する詳細構成を示すブロック図である。
【図３２】第３実施形態におけるシアンのハーフトーン処理を示すフローチャートである。
【図３３】第３実施形態における各累積誤差ラインバッファの記憶領域を示す図である。
【図３４】第３実施形態におけるシアンのハーフトーン処理結果の格納例を示す図である。
【図３５】第３実施形態における制約情報演算部のシアンに関する詳細構成を示すブロック図である。
【図３６】第３実施形態におけるシアンの制約情報演算処理を示すフローチャートである。
【図３７】第３実施形態におけるフィルタ処理後のシアン走査Ｄｕｔｙデータの模式図である。
【図３８】第３実施形態におけるフィルタ処理後のシアンハーフトーンデータの模式図である。
【図３９】第３実施形態におけるハーフトーン処理部のマゼンタに関する詳細構成を示すブロック図である。
【図４０】第３実施形態におけるマゼンタのハーフトーン処理を示すフローチャートである。
【図４１】第３実施形態におけるマゼンタのハーフトーン処理結果の格納例を示す図である。
【図４２】第３実施形態における制約情報演算部のマゼンタに関する詳細構成を示すブロック図である。
【図４３】第３実施形態におけるマゼンタの制約情報演算処理を示すフローチャートである。
【図４４】第３実施形態におけるフィルタ処理後のマゼンタ走査Ｄｕｔｙデータの模式図である。
【図４５】第３実施形態におけるフィルタ処理後のマゼンタハーフトーンデータの模式図である。
【図４６】第３実施形態におけるシフト後のマゼンタ走査Ｄｕｔｙデータの模式図である。
【図４７】第３実施形態におけるシフト後のマゼンタハーフトーンデータの模式図である。
【図４８】第４実施形態における制約情報演算部のシアンに関する詳細構成を示すブロック図である。
【図４９】第４実施形態における制約情報演算処理を示すフローチャートである。
【図５０】第４実施形態の制約情報演算におけるフィルタの具体例を示す図である。
【図５１】第５実施形態における隣接する走査番号同士のドット配置と、その統合例を示す図である。
【図５２】第５実施形態におけるドット配置に対してフーリエ解析を行った例を示す図である。
【図５３】第５実施形態における隣接するドット配置によるクロススペクトル例を示す図である。
【図５４】第５実施形態における制約情報演算部の詳細構成を示すブロック図である。
【図５５】第５実施形態における制約演算処理を示すフローチャートである。
【図１】
2008188805.tif 000005
【図２】
2008188805.tif 000006
【図３】
2008188805.tif 000007
【図４】
2008188805.tif 000008
【図５】
2008188805.tif 000009
【図６】
2008188805.tif 000010
【図７】
2008188805.tif 000011
【図８】
2008188805.tif 000012
【図９】
2008188805.tif 000013
【図１１】
2008188805.tif 000014
【図１２】
2008188805.tif 000015
【図１３】
2008188805.tif 000016
【図１４】
2008188805.tif 000017
【図１５】
2008188805.tif 000018
【図１６】
2008188805.tif 000019
【図１７】
2008188805.tif 000020
【図１８】
2008188805.tif 000021
【図１９】
2008188805.tif 000022
【図２４】
2008188805.tif 000023
【図２６】
2008188805.tif 000024
【図２７】
2008188805.tif 000025
【図２８】
2008188805.tif 000026
【図２９】
2008188805.tif 000027
【図３０】
2008188805.tif 000028
【図３１】
2008188805.tif 000029
【図３２】
2008188805.tif 000030
【図３３】
2008188805.tif 000031
【図３４】
2008188805.tif 000032
【図３５】
2008188805.tif 000033
【図３６】
2008188805.tif 000034
【図３９】
2008188805.tif 000035
【図４０】
2008188805.tif 000036
【図４１】
2008188805.tif 000037
【図４２】
2008188805.tif 000038
【図４３】
2008188805.tif 000039
【図４８】
2008188805.tif 000040
【図４９】
2008188805.tif 000041
【図５０】
2008188805.tif 000042
【図５１】
2008188805.tif 000043
【図５２】
2008188805.tif 000044
【図５３】
2008188805.tif 000045
【図５４】
2008188805.tif 000046
【図５５】
2008188805.tif 000047
【図１０】
2008188805.tif 000048
【図２０】
2008188805.tif 000049
【図２１】
2008188805.tif 000050
【図２２】
2008188805.tif 000051
【図２３】
2008188805.tif 000052
【図２５】
2008188805.tif 000053
【図３７】
2008188805.tif 000054
【図３８】
2008188805.tif 000055
【図４４】
2008188805.tif 000056
【図４５】
2008188805.tif 000057
【図４６】
2008188805.tif 000058
【図４７】
2008188805.tif 000059