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