(57)【特許請求の範囲】
【請求項１】
画像データを構成するｎ個（ｎは２以上の正整数）の色成分の各々に対応するｎ個のｉ階調（ｉは２以上の正整数）データからｎ個の２階調データを生成する画像処理装置であって、
前記ｎ個のｉ階調データの各画素の合計値により表現されるデータの各画素を誤差拡散処理によりｎ＋１階調の量子化値に変換し、ｎ個合計のｎ＋１階調データに対応する第１の量子化データを生成する第１の量子化データ生成手段と、
前記ｎ個の色成分を、相対的に視認性の高いｋ個（ｋ＜ｎの正整数）の色が含まれる第１の色グループと相対的に視認性の低いｎ−ｋ個の色が含まれる第２の色グループとに区分し、該第２の色グループに対応するｎ−ｋ個のｉ階調データの各画素の合計値により表現されるデータの各画素と前記第１の量子化データの各画素との差分量により表現されるデータを誤差拡散処理によりｋ＋１階調の量子化値に変換し、前記第１の色グループに対応するｋ個合計のｋ＋１階調データに対応する第２の量子化データを生成する第２の量子化データ生成手段と、
前記第１の量子化データの各画素と前記第２の量子化データの各画素との差分量により表現されるデータを前記第２の色グループに対応するｎ−ｋ個合計に対応する第３の量子化データとして生成する第３の量子化データ生成手段と、
前記ｋまたは前記ｎ−ｋの少なくとも一方が１より大きい場合、前記第１の色グループまたは前記第２の色グループの少なくとも一方について、前記第１の量子化データ生成手段、前記第２の量子化データ生成手段および前記第３の量子化データ生成手段を再帰的に実行することにより前記ｎ個の２階調データを生成するよう制御する制御手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記制御手段は、さらに、
前記第１の色グループに対応するｋ個のｉ階調データの各画素の合計値により表現されるデータの各画素から生成される量子化データの各画素と前記第３の量子化データ生成手段により生成される第３の量子化データとの差分量により表現されるデータを、前記第２の量子化データ生成手段で用いられる前記各画素の合計値により表現されるデータの各画素に分散させて反映させることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
画像データを構成するｎ個（ｎは２以上の正整数）の色成分の各々に対応するｎ個のｉ階調（ｉは２以上の正整数）データからｎ個の２階調データを生成する画像処理方法であって、
前記ｎ個のｉ階調データの各画素の合計値により表現されるデータの各画素を誤差拡散処理によりｎ＋１階調の量子化値に変換し、ｎ個合計のｎ＋１階調データに対応する第１の量子化データを生成する第１の量子化データ生成工程と、
前記ｎ個の色成分を、相対的に視認性の高いｋ個（ｋ＜ｎの正整数）の色が含まれる第１の色グループと相対的に視認性の低いｎ−ｋ個の色が含まれる第２の色グループとに区分し、該第２の色グループに対応するｎ−ｋ個のｉ階調データの各画素の合計値により表現されるデータの各画素と前記第１の量子化データの各画素との差分量により表現されるデータを誤差拡散処理によりｋ＋１階調の量子化値に変換し、前記第１の色グループに対応するｋ個合計のｋ＋１階調データに対応する第２の量子化データを生成する第２の量子化データ生成工程と、
前記第１の量子化データの各画素と前記第２の量子化データの各画素との差分量により表現されるデータを前記第２の色グループに対応するｎ−ｋ個合計に対応する第３の量子化データとして生成する第３の量子化データ生成工程と、
前記ｋまたは前記ｎ−ｋの少なくとも一方が１より大きい場合、前記第１の色グループまたは前記第２の色グループの少なくとも一方について、前記第１の量子化データ生成工程、前記第２の量子化データ生成工程および前記第３の量子化データ生成工程を再帰的に実行することにより前記ｎ個の２階調データを生成するよう制御する制御工程と、
を備えることを特徴とする画像処理方法。
【請求項４】
請求項３に記載の画像処理方法をコンピュータに実行させるためのプログラム。
【請求項５】
請求項２に記載の画像処理方法により生成される前記ｎ個の２階調データをインクの吐出のオン／オフに対応させて記録することを特徴とするインクジェット記録装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カラー画像データに基づいて各色２階調の画像データを生成する画像処理技術に関するものである。
【背景技術】
【０００２】
ワードプロセッサ、パーソナルコンピュータ、ファクシミリ等に於ける情報出力装置として、所望される文字や画像等の情報を用紙やフィルム等のシート状の記録媒体に記録を行う記録装置が用いられている。このような記録装置には様々な記録方式のものがあるが、記録媒体に記録剤を付着させることで記録媒体上にテキストや画像を形成する方式が広く実用化されている。このような方式の代表例として、インクジェット記録装置がある。
【０００３】
インクジェット記録装置では、記録速度の向上や高画質化等のために、同一色同一濃度のインクを吐出可能な複数のインク吐出口（ノズル）を集積配列したノズル群を有する記録ヘッドを用いる。さらに、画質を向上するために、同一色相で濃度の異なるインクを用いるものや、同一色かつ同一濃度のインクの１回あたりの吐出量を複数段階に制御可能としたノズル群が設けられる場合もある。このような画像形成装置においては、１画素が多値で表現される入力画像データをドットの記録信号に対応させた２値画像（入力階調数よりは少ない階調数を有する画像）に変換し記録を行う。
【０００４】
２値画像に変換する方法として、Ｒ．Ｆｌｏｙｄらによる誤差拡散法（非特許文献１）がある。この誤差拡散法は、ある画素で生じた二値化誤差を以降の複数画素へ拡散することにより、擬似的に階調表現を行うものである。そのため、同一色相で濃度の異なるインク、あるいは、異なる色相のインクのドット配置を制御するために誤差拡散法を用いる画像処理技術が提案されている。例えば、特許文献１には複数種類のドットが重ならないようにドットを配置する手法が開示されている。
【特許文献１】特開２００４−３３６５７０号公報
【非特許文献１】R.Floyd他、“An adaptive algorithm for spatial gray scale", SID International Symposium Digest of Technical Papers, vol4.3, 1975, pp.36-37
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述の特許文献１による手法では、ＬＵＴ（ＬｏｏｋＵｐ  Ｔａｂｌｅ）を用いることにより複数のインクプレーンに関して互いの配置に制約を持ちながらそれぞれの擬似階調出力値が決定される。そのため、濃度の高いマゼンタドットは視認されやすくなるが、濃度の低いイエロードットは視認されにくくなる。上記処理結果として、ドット配置に制約を持ちながら打たれたマゼンタドットのみ視認されやすくなるため、粒状感が悪化してしまうことになる。
【０００６】
さらに、特許文献１による手法では、インクプレーンの数が増加した場合、処理が複雑化する。たとえば、４種類のインクプレーンを対象とする場合、４次元ＬＵＴが必要となる。近年のインクジェットプリンタではシアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）の基本インクに、レッド（Ｒ）、グリーン（Ｇ）、ブルー（Ｂ）の特色インクが追加されることがある。そのため、特色インクを含めたドット配置制御を考えると、処理の複雑度の観点から特許文献１の手法は実用的でない。
【０００７】
本発明は上述の問題点に鑑みなされたものであり、処理の複雑度を低減しつつより高画質な画像形成を可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述の問題点の１つ以上を解決するために、本発明の画像処理装置は以下の構成を備える。すなわち、画像データを構成するｎ個（ｎは２以上の正整数）の色成分の各々に対応するｎ個のｉ階調（ｉは２以上の正整数）データからｎ個の２階調データを生成する画像処理装置であって、前記ｎ個のｉ階調データの各画素の合計値により表現されるデータの各画素を誤差拡散処理によりｎ＋１階調の量子化値に変換し、ｎ個合計のｎ＋１階調データに対応する第１の量子化データを生成する第１の量子化データ生成手段と、前記ｎ個の色成分を、相対的に視認性の高いｋ個（ｋ＜ｎの正整数）の色が含まれる第１の色グループと相対的に視認性の低いｎ−ｋ個の色が含まれる第２の色グループとに区分し、該第２の色グループに対応するｎ−ｋ個のｉ階調データの各画素の合計値により表現されるデータの各画素と前記第１の量子化データの各画素との差分量により表現されるデータを誤差拡散処理によりｋ＋１階調の量子化値に変換し、前記第１の色グループに対応するｋ個合計のｋ＋１階調データに対応する第２の量子化データを生成する第２の量子化データ生成手段と、前記第１の量子化データの各画素と前記第２の量子化データの各画素との差分量により表現されるデータを前記第２の色グループに対応するｎ−ｋ個合計に対応する第３の量子化データとして生成する第３の量子化データ生成手段と、前記ｋまたは前記ｎ−ｋの少なくとも一方が１より大きい場合、前記第１の色グループまたは前記第２の色グループの少なくとも一方について、前記第１の量子化データ生成手段、前記第２の量子化データ生成手段および前記第３の量子化データ生成手段を再帰的に実行することにより前記ｎ個の２階調データを生成するよう制御する制御手段と、を備える。
【０００９】
上述の問題点の１つ以上を解決するために、本発明の画像処理方法は以下の構成を備える。すなわち、画像データを構成するｎ個（ｎは２以上の正整数）の色成分の各々に対応するｎ個のｉ階調（ｉは２以上の正整数）データからｎ個の２階調データを生成する画像処理方法であって、前記ｎ個のｉ階調データの各画素の合計値により表現されるデータの各画素を誤差拡散処理によりｎ＋１階調の量子化値に変換し、ｎ個合計のｎ＋１階調データに対応する第１の量子化データを生成する第１の量子化データ生成工程と、前記ｎ個の色成分を、相対的に視認性の高いｋ個（ｋ＜ｎの正整数）の色が含まれる第１の色グループと相対的に視認性の低いｎ−ｋ個の色が含まれる第２の色グループとに区分し、該第２の色グループに対応するｎ−ｋ個のｉ階調データの各画素の合計値により表現されるデータの各画素と前記第１の量子化データの各画素との差分量により表現されるデータを誤差拡散処理によりｋ＋１階調の量子化値に変換し、前記第１の色グループに対応するｋ個合計のｋ＋１階調データに対応する第２の量子化データを生成する第２の量子化データ生成工程と、前記第１の量子化データの各画素と前記第２の量子化データの各画素との差分量により表現されるデータを前記第２の色グループに対応するｎ−ｋ個合計に対応する第３の量子化データとして生成する第３の量子化データ生成工程と、前記ｋまたは前記ｎ−ｋの少なくとも一方が１より大きい場合、前記第１の色グループまたは前記第２の色グループの少なくとも一方について、前記第１の量子化データ生成工程、前記第２の量子化データ生成工程および前記第３の量子化データ生成工程を再帰的に実行することにより前記ｎ個の２階調データを生成するよう制御する制御工程と、を備える。
【発明の効果】
【００１０】
本発明によれば、処理の複雑度を低減しつつより高画質な画像形成を可能とする技術を提供することができる。
【発明を実施するための最良の形態】
【００１１】
以下に、図面を参照して、この発明の好適な実施の形態を詳しく説明する。なお、以下の実施の形態はあくまで例示であり、本発明の範囲を限定する趣旨のものではない。
【００１２】
（第１実施形態）
本発明に係る画像処理装置の第１実施形態として、画像形成システムを例に挙げて以下に説明する。
【００１３】
＜システム構成＞
図１は、第１実施形態による画像形成装置を含む画像形成システムの構成を示したブロック図である。１は画像処理装置を、２はプリンタを示す。なお、画像処理装置１は例えば一般的なパーソナルコンピュータ（ＰＣ）にインストールされたプリンタドライバによって実現され得る。その場合、以下に説明する画像処理装置１の各部は、ＰＣ内部のＣＰＵがのプリンタドライバを構成するプログラムを実行することにより実現されることになる。なお、ここでは、画像処理装置１とプリンタ２と別体構成である例について説明するが、プリンタ内部に画像処理装置１に相当する画像処理部を含むような構成であってもよい。
【００１４】
画像処理装置１とプリンタ２とは、プリンタインタフェース又はネットワークインタフェースによって接続されている。画像処理装置１は、データ入力部１０１より印刷対象の画像データを入力し、画像バッファ１０２にその入力画像データを格納する。色分解処理部１０３は、入力されたカラー画像をプリンタ２が備えるインク色へ色分解する。この色分解処理に際しては、色分解用ルックアップテーブル（ＬＵＴ）１０４が参照される。
【００１５】
ハーフトーン処理部１０５は、色分解処理部１０３によって得られた各色の多階調（３階調以上）の画像データを２値画像データに変換する。得られた各色の２値画像データはハーフトーン画像格納メモリ１０６に格納される。ハーフトーン画像格納メモリ１０６に格納された２値画像データはデータ出力部１０７よりプリンタ２へ出力される。
【００１６】
プリンタ２は、記録ヘッド２０１を記録媒体２０２に対して相対的に縦横に移動することにより、記録媒体上に画像を形成する。記録ヘッドはワイヤードット方式、感熱方式、熱転写方式、インクジェット方式等の方式のものを用いることができ、いずれも一つ以上の記録素子（インクジェット方式であればノズル）を有する。移動部２０３は、ヘッド制御部２０４の制御下で、記録ヘッド２０１を移動する。搬送部２０５は、ヘッド制御部２０４の制御下で、記録媒体を搬送する。また、インク色及び吐出量選択部２０６は、画像処理装置１により形成された各色の２値画像データに基づいて、記録ヘッド２０１に搭載されるインク色と該ヘッドが吐出可能なインク吐出量の中から、インク色と吐出量を選択する。
【００１７】
図２は、プリンタ２に搭載される記録ヘッド２０１の構成例を示す図である。ここでは、シアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）、ブラック（Ｋ）の４色のインクに加え、レッド（Ｒ）、グリーン（Ｇ）、ブルー（Ｂ）の３色を含めた計７色のインクを使用する場合を例示している。
【００１８】
なお、図２においては、説明を簡単にするため用紙搬送方向にノズルが一列に配置された構成を有する記録ヘッドを示している。ただし、ノズルの数、配置はこれに限られるものではない。例えば、同一インク色に対しノズル列が複数あっても良いし、同一インク色に対し複数のノズルがジグザグに配置されているような構成であっても良い。また、図２では各インク色のノズル列がヘッドの移動方向に配置されているが、用紙搬送方向に一列に配置する構成であっても良い。
【００１９】
＜装置の動作＞
以下では、画像処理装置１がＲＧＢの３色（各色８ビット）で表現される入力画像データに基づいて、ＣＭＹＫＲＧＢの７色（各色１ビット）で表現される印刷データを生成する処理について説明する。なお、色成分は２以上の正整数である任意のｎ個に対して適用可能である。つまり、ｎ個のｉ階調（ｉは２以上の正整数）データからｎ個の２階調データを生成するような構成であってもよい。
【００２０】
図３は、第１実施形態の画像処理装置１の動作フローチャートである。
【００２１】
ステップＳ１０１では、多階調のカラー入力画像データがデータ入力部１０１より入力され、画像バッファ１０２に格納される。なお、ここでは、入力画像データは、レッド（Ｒ＿ｉｎ）、グリーン（Ｇ＿ｉｎ）、ブルー（Ｂ＿ｉｎ）の３つの色成分によって表現され、各色２５６階調（８ビット）であるとする。
【００２２】
ステップＳ１０２では、色分解処理部１０３は、色分解用ＬＵＴ１０４のＬＵＴを用いて、画像バッファ１０２に格納された多階調のカラー入力画像データの色分解処理を行なう。この色分解処理では、カラー入力画像データをＲＧＢからＣＭＹＫ及びＲＧＢのインク色プレーンへ色分解する。
【００２３】
前述のように記録ヘッド２０１は、７種類の各インク色に対応するノズル列を利用して、記録媒体上にドットを形成する。そのため、画像処理装置１に入力されるＲＧＢのカラー入力画像データは、ＣＭＹＫＲＧＢの各プレーンの７プレーンの画像データへ変換されプリンタ２に出力される。即ち、７種類の記録態様に対応した７種類のプレーンの画像データが生成される。なお、色分解処理の詳細については後述する。
【００２４】
ステップＳ１０３では、ハーフトーン処理部１０５はハーフトーン処理のための画素位置選択処理を行う。
【００２５】
ステップＳ１０４では、少ない階調数に変換するハーフトーン処理を実施する。本実施形態では、色分解処理部１０３によって入力画像の各画素データを８ビットの階調値のプレーンへ分解する。そして、ハーフトーン処理部１０５は色分解処理部１０３によって得られたプレーンを２レベルの階調値のデータ（２値データ）に変換する。なお、第１実施形態のハーフトーン処理は、多値の入力画像データを２値画像（または２値以上で入力階調数より少ない階調数の画像）に変換する処理として、例えばＲ．Ｆｌｏｙｄらによる誤差拡散法を用いる。なお、本実施形態のハーフトーン処理部１０５の詳細については後述する。
【００２６】
ステップＳ１０５では、ハーフトーン処理後の２値画像データはハーフトーン画像格納メモリ１０６に格納する。
【００２７】
図４は、ハーフトーン処理部１０５に入力される各色のプレーン６１と、２値画像データ６２の構成例を示した図である。色分解処理部１０３は、入力画像の横画素数Ｗと縦画素数Ｈと同数の二次元的な記憶領域Ｉ（ｘ、ｙ）に多値（８ビット）のデータが配置されたプレーン６１（多値画像データ）の各画素値を生成する。ハーフトーン処理部１０５は、プレーン６１に階調変換処理を施して各色のプレーンの各画素位置の２値データを生成する。ハーフトーン画像格納メモリ１０６は、入力画像の横画素数Ｗと縦画素数Ｈと同数の二次元的な記憶領域Ｏ（ｘ、ｙ）を有し、各画素位置に対応する２値画像データを格納する。
【００２８】
なお、本実施形態では、各プレーンの対応する画素を順次に入力して各記録態様に対応した２値画像データを生成していく。したがって、多値画像のプレーン６１全体を保持するメモリ空間を用意する必要はない。また、ハーフトーン画像格納メモリ１０６にしても、例えばバンド単位の記録動作に必要なサイズのメモリ空間を用意したものであっても良い。
【００２９】
ステップＳ１０６では、処理対象の全画素についてハーフトーン画像を生成したか否かを判定する。
【００３０】
ステップＳ１０７では、ハーフトーン画像格納メモリ１０６に格納されたハーフトーン処理後の画像データを出力ドットパターンとしてデータ出力部１０７により出力する。
【００３１】
ステップＳ１０８では、プリンタ２は、データ出力部１０７より出力された画像データを受信し、該画像データに従ってインク色及び吐出量を選択して画像形成を行う。画像の形成において、プリンタ２は、例えば、記録ヘッド２０１を記録媒体に対して左から右に移動しながら一定の駆動間隔で各ノズルを駆動（つまりインクの吐出のオン／オフを制御）して記録媒体上に画像を記録していく。一回の走査が終了すると、記録ヘッドを左端に戻すと同時に、記録媒体２０２を一定量搬送する。以上の処理を繰り返すことにより画像の形成が行われる。
【００３２】
＜色分解処理の詳細＞
図５は、画像処理装置１における色分解処理部１０３の構成を示す図である。５０１は輝度濃度変換部、５０２はＵＣＲ（Ｕｎｄｅｒ  Ｃｏｌｏｒ  ｒｅｍｏｖａｌ：下色除去）／ＢＧ（Ｂｌａｃｋ  Ｇｅｎｅｒａｔｉｏｎ：黒生成）処理部である。また、５０３はＢＧ量設定部、５０４はＵＣＲ量設定部、５０５は特色インク分解処理部、特色インク分解処理用ＬＵＴ５０６である。
【００３３】
まず、輝度濃度変換部５０１において入力された輝度情報８ビットの画像データＲ＿ｉｎ、Ｇ＿ｉｎ、Ｂ＿ｉｎは次式に基づきＣＭＹへ変換される。
Ｃ＝−αｌｏｇ（Ｒ＿ｉｎ／２５５）      ・・・（１）
Ｍ＝−αｌｏｇ（Ｇ＿ｉｎ／２５５）      ・・・（２）
Ｙ＝−αｌｏｇ（Ｂ＿ｉｎ／２５５）      ・・・（３）
但し、αは任意の実数である。
【００３４】
次に、ＣＭＹデータはＢＧ量設定部５０３に設定されたβ（Ｍｉｎ（Ｃ，Ｍ，Ｙ），μ）、及びＵＣＲ量設定部５０４に設定された値μにより、
Ｃ’＝Ｃ−（μ／１００）×Ｍｉｎ（Ｃ，Ｍ，Ｙ）  ・・・（４）
Ｍ’＝Ｍ−（μ／１００）×Ｍｉｎ（Ｃ，Ｍ，Ｙ）  ・・・（５）
Ｙ’＝Ｙ−（μ／１００）×Ｍｉｎ（Ｃ，Ｍ，Ｙ）  ・・・（６）
Ｋ’＝  β（Ｍｉｎ（Ｃ，Ｍ，Ｙ），μ）×（μ／１００）×Ｍｉｎ（Ｃ，Ｍ，Ｙ）    ・・・（７）
と変換される。ここで、β（Ｍｉｎ（Ｃ，Ｍ，Ｙ），μ）は、Ｍｉｎ（Ｃ，Ｍ，Ｙ）及びμによって変動する実数であり、この値によってＫインクの使用方法を設定することができる。
【００３５】
続いて、レッド、グリーン及びブルーの色域を構成する色成分であるＣ’Ｍ’Ｙ’の３色については、特色インク分解処理部５０５にて、特色インク分解処理用ＬＵＴ５０６を参照し、次式の通り特色インク分解を実施する。
【００３６】
Ｃ”＝Ｌｕｔ（Ｃ’，Ｍ’，Ｙ’）      ・・・（８）
Ｍ”＝Ｌｕｔ（Ｃ’，Ｍ’，Ｙ’）      ・・・（９）
Ｙ”＝Ｌｕｔ（Ｃ’，Ｍ’，Ｙ’）      ・・・（１０）
Ｒ’＝Ｌｕｔ（Ｍ’，Ｙ’）      ・・・（１１）
Ｇ’＝Ｌｕｔ（Ｃ’，Ｙ’）      ・・・（１２）
Ｂ’＝Ｌｕｔ（Ｃ’，Ｍ’）      ・・・（１３）
なお、Ｃ”、Ｍ”、Ｙ”、Ｒ’、Ｇ’、Ｂ’は、特色インク分解後のシアン、マゼンタ、イエロー、レッド、グリーン及びブルーの出力データ値をそれぞれ示している。式（８）から式（１３）の右辺に定義される関数が特色インク分解処理用ＬＵＴに該当する。
【００３７】
図６は、特色インク分解処理用ＬＵＴの一例を示す図である。具体的には、ＣＭＹの入力値に応じてＲＧＢ及びＣＭＹのインク分解量が決定される構成である。なお、本ＬＵＴの作成に際しては、予めＣＭＹＲＧＢの６色の組み合わせによって構成される色票を印刷し、目標色に対応するインク分解量を定めている。本実施形態１では、前記インク分解量を定める手段は画像形成装置と別個に設けられており、結果のみを特色インク分解処理用ＬＵＴに保持する構成である。
【００３８】
＜ハーフトーン処理の詳細＞
次に、ハーフトーン処理部１０５において用いられる誤差拡散法について説明する。なお、上述したように、色分解処理後のＣＭＹＲＧＢの各プレーン画像は０〜２５５の８ビット画像とする。一般にはｉ階調データ（ｉは２以上の正整数）として表される。ここでは説明を簡略化するため、マゼンタ、レッド、イエローのドットプレーン、Ｍ”、Ｒ’、Ｙ”における誤差拡散処理による擬似階調処理を例として説明する。なお以下の処理は、入力された画像データにおける１画素を注目画素として、全画素について順次実行される。
【００３９】
図７は、ハーフトーン処理部１０５の動作を説明するフローチャートである。ただし、あらかじめ優先されるべきドットのグループ化が設定されているとする。ここで、グループ化とは、該グループ単位でドットの重なりを制御できるように分けられていることである。
【００４０】
そして、階層１グループとしてＧｒ１、Ｇｒ２が設定された場合、Ｇｒ１とＧｒ２の単位でドットの重なりを制御可能なことを示す。また、階層２グループとしてＧｒｘ＿１、Ｇｒｘ＿２が設定された場合、Ｇｒｘ＿１、Ｇｒｘ＿２単位でドットの重なりを制御可能なことを示す。
【００４１】
図９は、Ｍ”、Ｒ’、Ｙ”の３プレーンを２つのグループにグループ化する例を示す図である。なお、グループ化は、例えば、相対的に視認性の高い（濃度の高い）色をより高い優先度にするよう予め決定しておくとよい。たとえば、Ｍ”、Ｒ’、Ｙ”の３色を比較すると、視認性の高い順にＭ”、Ｒ’、Ｙ”となる。ただし、Ｍ”とＲ’はＲ’とＹ”に比較し視認性の差が小さい。そこで、階層１グループとして、Ｇｒ１：Ｍ”Ｒ’、Ｇｒ２：Ｙ”が設定されている。さらに、階層２グループとしてＧｒ１＿１：Ｍ”、Ｇｒ１＿２：Ｒ’が設定されている。また、図１０は、ＣＭＹＫＲＧＢの７プレーンを５つのグループにグループ化する例を示している。一般には、ｎ個の色成分を相対的に視認性の高いｋ個（ｋ＜ｎの正整数）の色が含まれる第１の色グループと、相対的に視認性の低いｎ−ｋ個の色が含まれる第２の色グループとに区分する。以下では、説明を簡単にするために、図９に示されるＭ”、Ｒ’、Ｙ”の３プレーンに対する処理について説明する。
【００４２】
ステップＳ１では、階層１グループ、Ｇｒ１＿ｄａｔａ（第１の色グループのｋ個合計のデータに相当）をそれぞれ算出する。そして、Ｇｒ２＿ｄａｔａ（第２の色グループのｎ−ｋ個合計のデータに相当）、および、階層２グループＧｒ１＿１ｄａｔａ、Ｇｒ１＿２ｄａｔａについても同様に算出する。
【００４３】
階層１グループ：
Ｇｒ１＿ｄａｔａ  ＝  Ｍ”＋  Ｒ’
Ｇｒ２＿ｄａｔａ  ＝  Ｙ”      ・・・（１４）
階層２グループ：
Ｇｒ１＿１ｄａｔａ  ＝  Ｍ”
Ｇｒ１＿２ｄａｔａ  ＝  Ｒ’      ・・・（１５）
ステップＳ２では、Ｇｒ２＿ｄａｔａが、あらかじめ指定された値ｋよりも大きいか、小さいかの判断を行う。Ｇｒ２＿ｄａｔａ＞＝  ｋの場合ステップＳ３に進み、Ｇｒ２＿ｄａｔａ＜ｋの場合ステップＳ５に進む。
【００４４】
ステップＳ３では、Ｇｒ１、Ｇｒ２の各プレーン間でドット位置の重なりを許可しないよう配置制御を行う。配置制御の詳細については以下（処理１）で説明する。
【００４５】
ステップＳ４では、Ｇｒ１、Ｇｒ２の各プレーン間でドット位置の重なりを許可する配置制御を行う。配置制御の詳細については以下（処理２）で説明する。
【００４６】
ステップＳ５では、画像データ中の全画素について上述のステップＳ１〜Ｓ４の処理を実行完了したか否かを判定する。完了していなければ、注目画素を移動し、ステップＳ１〜Ｓ４を再度実行する。完了した場合は処理を終了する。
【００４７】
＜処理１（ステップＳ３）＞
ステップＳ３の処理は、上述のように各プレーン間でドット位置の重なりを許可しないよう、配置を決定する処理である。具体的には、まず、階層１グループ、つまり、Ｇｒ１ｄａｔａ（マゼンタ、レッド）とＧｒ２ｄａｔａ（イエロー）との間でドットが重ならないように制御する。続いて、階層２グループ、つまり、Ｇｒ１＿１ｄａｔａ（マゼンタ）とＧｒ１＿２ｄａｔａ（レッド）との間でドットが重ならないように制御する。このようにする事により、Ｇｒ１＿１ｄａｔａ（マゼンタ）、Ｇｒ１＿２ｄａｔａ（レッド）およびＧｒ２ｄａｔａ（イエロー）の間でドットが重ならないようにする。以下、当該処理の実現方法について詳細に説明する。
【００４８】
図８（ａ）は、ステップＳ３の処理の詳細を説明する図である。なお、図８（ａ）に示す各機能構成部はハードウェアにより実現しても良いし一部或いは全てをソフトウエアにより実現してもよい。また、図１１は、ステップＳ３の処理の詳細フローチャートである。なお、第一量子化部６０１は第１の量子化データ生成手段に、第二量子化部６０２は第２の量子化データ生成手段および第３の量子化データ生成手段に相当する。
【００４９】
ステップＳ３の処理にて、マゼンタ、レッド、イエローの３つのドットプレーンデータ（各プレーンは０〜２５５の値をとる）に対して２値化（量子化値は０または２５５）を行う。その場合、第一量子化部６０１は、Ｇｒ１＿ｄａｔａ、Ｇｒ２＿ｄａｔａデータの対応画素の合計データＩ＿ｍｒｙを入力する。すなわち、マゼンタ、レッド、イエローの各々のプレーンにおける対応する画素値の合計をＩ＿ｍｒｙに入力する。より一般的には、ｎ個の色成分のｎ個合計のデータを入力する。そして、入力されたＩ＿ｍｒｙに対して誤差拡散処理を施し、第１の量子化データに相当する４値化（量子化値は０，２５５，５１０，７６５の何れか）を行う。なお、一般にはｎ個の色成分の場合にｎ＋１階調データを生成する。
【００５０】
より具体的に説明すると、まずステップＳ２０１において、Ｇｒ１＿ｄａｔａ  ＋  Ｇｒ２＿ｄａｔａ（マゼンタ，レッド，イエロードットプレーンの画素値の合計データ）Ｉ＿ｍｒｙを第一量子化部６０１に入力する。ここで、Ｉ＿ｍｒｙは次式のように算出される。
【００５１】
Ｉ＿ｍｒｙ  ＝Ｇｒ１＿ｄａｔａ  ＋  Ｇｒ２＿ｄａｔａ  ・・・（１６）
図１２は、誤差拡散処理における注目画素周辺の誤差拡散係数（Ｋ１〜Ｋ４の４つの係数）を説明する図である。例えば、Ｋ１＝７／１６、Ｋ２＝３／１６、Ｋ３＝５／１６、Ｋ４＝１／１６とする。このような誤差拡散係数により誤差を拡散、累積するために、第一量子化部６０１における累積誤差ラインバッファ６０４には、図１３の（ａ）に示す記憶領域をゆうする。つまり、１個の記憶領域Ｅ＿ｍｒｙ０と、入力画像の横画素数Ｗと同数の記憶領域Ｅ＿ｍｒｙ（ｘ）（ｘ＝１〜Ｗ）とを有し、後述する方法で量子化誤差が格納されていく。なお、累積誤差ラインバッファ６０４は処理開始前に全て初期値０で初期化されていてもよいし、ランダム値で初期化されてもよい。
【００５２】
ステップＳ２０２において、累積誤差加算部６０５は、注目画素の横画素位置ｘに対応する誤差Ｅ＿ｍｒｙ（ｘ）を累積誤差ラインバッファ６０４より読み出し、加算する。即ち、入力された合計データをＩ＿ｍｒｙ、累積誤差加算後のデータをＩ＿ｍｒｙ’とすると、
Ｉ＿ｍｒｙ’＝  Ｉ＿ｍｒｙ  ＋  Ｅ＿ｍｒｙ（ｘ）    ・・・（１７）
となる。
【００５３】
次に、ステップＳ２０３において、閾値選択部６０６は閾値Ｔ＿ｍｒｙを選択する。閾値Ｔ＿ｍｒｙは、例えば、入力画素データＩ＿ｍｒｙに応じて、
Ｔ＿ｍｒｙ（Ｉ＿ｍｒｙ）＝１２８  （０≦Ｉ＿ｍｒｙ≦２５５）      ・・・（１８）
Ｔ＿ｍｒｙ（Ｉ＿ｍｒｙ）＝３８４  （２５５＜Ｉ＿ｍｒｙ≦５１０）  ・・・（１９）
Ｔ＿ｍｒｙ（Ｉ＿ｍｒｙ）＝６４０  （５１０＜Ｉ＿ｍｒｙ  ≦７６５）  ・・・（２０）
と設定される。或いは、ドット生成遅延を回避するために、平均量子化誤差が小さくなるように閾値Ｔ＿ｍｒｙを入力画素データＩ＿ｍｒｙに応じて細かく変更しても良い。
【００５４】
次に、ステップＳ２０４において、量子化部６０７は、誤差加算後の画素データＩ＿ｍｒｙ’と閾値Ｔ（Ｉ＿ｍｒｙ）とを比較し、出力画素値Ｏｕｔ＿ｍｒｙを決定する。その規則は次の通りである。
【００５５】
Ｏｕｔ＿ｍｒｙ＝０                                      ・・・（２１）
（０≦Ｉ＿ｍｒｙ≦２５５，Ｉ＿ｍｒｙ’＜Ｔ（Ｉ＿ｍｒｙ））
Ｏｕｔ＿ｍｒｙ＝２５５                                  ・・・（２２）
（０≦Ｉ＿ｍｒｙ≦２５５，Ｉ＿ｍｒｙ’≧Ｔ（Ｉ＿ｍｒｙ））又は
（２５５＜Ｉ＿ｍｒｙ≦５１０，Ｉ＿ｍｒｙ’＜Ｔ（Ｉ＿ｍｒｙ））
Ｏｕｔ＿ｍｒｙ＝５１０                                  ・・・（２３）
（２５５≦Ｉ＿ｍｒｙ≦５１０，Ｉ＿ｍｒｙ’≧Ｔ（Ｉ＿ｍｒｙ））又は
（５１０＜Ｉ＿ｍｒｙ≦７６５，Ｉ＿ｍｒｙ’＜Ｔ（Ｉ＿ｍｒｙ））
Ｏｕｔ＿ｍｒｙ＝７６５                                  ・・・（２４）
（５１０＜Ｉ＿ｍｒｙ≦７６５，Ｉ＿ｍｒｙ’≧Ｔ（Ｉ＿ｍｒｙ））
ここでＧｒ１＿ｄａｔａ  ＋  Ｇｒ２＿ｄａｔａ（マゼンタ，レッド，イエロードットプレーンの画素値の合計データ）Ｉ＿ｍｒｙを４値化することの意味を説明する。例えば式（２２）に示すようにＯｕｔ＿ｍｒｙ＝２５５となることは、その場所に、マゼンタ、レッド、イエローいずれかのドットが１つ打たれることを意味する。すなわち、Ｏｕｔ＿ｍｒｙ＝２５５とは、その場所にマゼンタドットが確定するわけでなく、レッドドット、イエロードットも確定しない。この時点で確定していることは、マゼンタかレッドかイエローの、どのドットが打たれるかわからないが、少なくともどれか一つは打たれることである。
【００５６】
同様にＯｕｔ＿ｍｒｙ＝５１０となることは、その場所に、マゼンタ、レッド、イエローいずれかのドットが２つ打たれることを意味する。この時点で確定していることは、マゼンタドットかレッドドットかイエロードットか打たれるかわからないが、少なくともどれか２つは打たれることである。ただし、同じドットは最大でも１つしか打つことができない。
【００５７】
すなわち、Ｏｕｔ＿ｍｒｙにより各画素の以下の特徴が表現される。
【００５８】
Ｏｕｔ＿ｍｒｙ＝０      ・・・マゼンタ、レッド、イエロードットのいずれも打たれない。  
Ｏｕｔ＿ｍｒｙ＝２５５  ・・・マゼンタ、レッド、イエロードットのいずれか１つが打たれる。  
Ｏｕｔ＿ｍｒｙ＝５１０  ・・・マゼンタ、レッド、イエロードットのいずれか２つが打たれる。
【００５９】
Ｏｕｔ＿ｍｒｙ＝７６５  ・・・マゼンタ、レッド、イエロードットが打たれる。
【００６０】
次に、ステップＳ２０５において、誤差演算部６０８で注目画素の合計値Ｉ＿ｍｒｙに誤差を加算した後の画素データＩ＿ｍｒｙ’と出力画素値Ｏｕｔ＿ｍｒｙとの差分量Ｅｒｒ＿ｍｒｙを、次のようにして計算する。
【００６１】
Ｅｒｒ＿ｍｒｙ（ｘ）＝Ｉ＿ｍｒｙ’−  Ｏｕｔ＿ｍｒｙ      ・・・（２５）
そして、ステップＳ２０６において、誤差拡散部６０９は、横画素位置ｘに応じて、累積誤差ラインバッファ６０４において、以下の様に誤差Ｅｒｒ＿ｍｒｙ（ｘ）の拡散処理を行う。
【００６２】
Ｅ＿ｍｒｙ（ｘ＋１）  ←  Ｅ＿ｍｒｙ（ｘ＋１）＋Ｅｒｒ＿ｍｒｙ（ｘ）×７／１６  （ｘ＜Ｗ）
Ｅ＿ｍｒｙ（ｘ−１）  ←  Ｅ＿ｍｒｙ（ｘ−１）＋Ｅｒｒ＿ｍｒｙ（ｘ）×３／１６  （ｘ＞１）
Ｅ＿ｍｒｙ（ｘ）  ←  Ｅ＿ｍｒｙ０＋Ｅｒｒ＿ｍｒｙ（ｘ）×５／１６          （１＜ｘ＜Ｗ）
Ｅ＿ｍｒｙ（ｘ）  ←  Ｅ＿ｍｒｙ０＋Ｅｒｒ＿ｍｒｙ（ｘ）×８／１６          （ｘ＝１）
Ｅ＿ｍｒｙ（ｘ）  ←  Ｅ＿ｍｒｙ０＋Ｅｒｒ＿ｍｒｙ（ｘ）×１３／１６        （ｘ＝Ｗ）
Ｅ＿ｍｒｙ０  ←  Ｅ＿ｍｒｙ×１／１６                        （ｘ＜Ｗ）
Ｅ＿ｍｒｙ０  ←  ０                                      （ｘ＝Ｗ）
・・・（２６）
以上で、Ｇｒ１＿ｄａｔａ＋Ｇｒ２＿ｄａｔａ（マゼンタ，レッド，イエロードットプレーンの画素値の合計データ）の１画素分の３プレーン合計データに対して第１の量子化データに相当する４値化が完了する。
【００６３】
このようにして得られる３つのドットプレーンの合計データの４値化処理により、少なくとも３プレーントータルで、好適な配置が確保されることになる。ただし、この時点では３つのドットプレーンのどのドットが打たれるかは決定していない。
【００６４】
次に、第二量子化部６０２において、Ｇｒ１＿ｄａｔａ（すなわち、マゼンタ、レッドの２つのドットプレーンの注目画素の画素値の合計データ）Ｉ＿ｍｒに対して誤差拡散処理を施し３値化（量子化値０，２５５，５１０）を行う。
【００６５】
まずステップＳ２０７において、合計データＩ＿ｍｒを第二量子化部６０２に入力する。なおＩ＿ｍｒは以下のように算出される。
【００６６】
Ｉ＿ｍｒ  ＝Ｇｒ１＿ｄａｔａ      ・・・（２７）
図８（ａ）の第二量子化部６０２における累積誤差ラインバッファ６１０は、累積誤差ラインバッファ６０４と同様の構成を有する。すなわち、累積誤差ラインバッファ６１０は図１３の（ｂ）に示されるように、１個の記憶領域Ｅ＿ｍｒ０と入力画像の横画素数Ｗと同数の記憶領域Ｅ＿ｍｒ（ｘ）（ｘ＝１〜Ｗ）とを有し、後述する方法で量子化誤差を格納している。なお、累積誤差ラインバッファ６１０は処理開始前に全て初期値０で初期化されていてもよいし、ランダム値で初期化されてもよい。
【００６７】
次に、ステップＳ２０８において、累積誤差加算部６１１で、注目画素の横画素位置ｘに対応する誤差Ｅ＿ｍｒ（ｘ）が加算される。即ち、入力された注目画素の合計値をＩ＿ｍｒ、累積誤差加算後のデータをＩ＿ｍｒ’とすると、
Ｉ＿ｍｒ’＝Ｉ＿ｍｒ＋Ｅ＿ｍｒ（ｘ）      ・・・（２８）
となる。
【００６８】
次に、ステップＳ２０９において、閾値選択部６１２で閾値Ｔ＿ｍｒを選択する。閾値Ｔ＿ｍｒの選択において、
ｔ＿ｍｒ＝Ｉ＿ｍｒ−Ｉ＿ｍｒ          ・・・（２９）
とおくと、閾値Ｔ＿ｍｒは、
Ｔ＿ｍｒ（ｔ＿ｍｒ）＝１２８  （０≦ｔ＿ｍｒ≦２５５）  ・・・（３０）
と設定される。なお、ドット生成遅延を回避するため、平均量子化誤差が小さくなるよう、閾値Ｔ＿ｍｒ（ｔ＿ｍｒ）をｔ＿ｍｒに応じて細かく変更しても良い。なお、ここでは、Ｉ＿ｍｒｙ−Ｉ＿ｍｒは常に２５５以下となるので、Ｔ＿ｍｒ（ｔ＿ｍｒ）＝１２８をとる。
【００６９】
次に、ステップＳ２１０において、量子化部６１３は、誤差加算後の画素データＩ＿ｍｒ’と閾値Ｔ（ｔ＿ｍｒ）と前述のＧｒ１＿ｄａｔａ  ＋  Ｇｒ２＿ｄａｔａ（３ドットプレーンの多値化結果Ｏｕｔ＿ｍｒｙ）とを比較する。そして、出力画素値Ｏｕｔ＿ｍｒ（３値化の値）とＧｒ２＿ｄａｔａ（すなわちイエロードット最終結果Ｏｕｔ＿ｙ）を決定する。その規則は次の通りである。
【００７０】
Ｏｕｔ＿ｍｒｙ−Ｉ＿ｍｒ’≧Ｔ（ｔ＿ｍｒ）のとき：            ・・・（３１）
Ｏｕｔ＿ｍｒ＝Ｏｕｔ＿ｍｒｙ−２５５                  ・・・（３２）
Ｏｕｔ＿ｙ＝２５５                            ・・・（３３）
Ｏｕｔ＿ｍｒｙ−Ｉ＿ｍｒ’＜Ｔ（ｔ＿ｍｒ）のとき：            ・・・（３４）
Ｏｕｔ＿ｍｒ＝Ｏｕｔ＿ｍｒｙ                          ・・・（３５）
Ｏｕｔ＿ｙ＝０                                ・・・（３６）
例えば、Ｏｕｔ＿ｍｒｙ＝７６５の時、Ｏｕｔ＿ｍｒｙ  −  Ｉ＿ｍｒ’≧Ｔ（ｔ＿ｍｒ）となるため、式（３１）の条件が成立し、Ｏｕｔ＿ｍｒ＝５１０となる。このようにして、式（３１）〜（３６）で、Ｇｒ１＿ｄａｔａ（すなわちマゼンタ、レッドの２つのドットプレーンの合計データ）の第２の量子化データに相当する３値化（量子化値０，２５５，５１０）が決定する。また、それに伴い、Ｇｒ１＿ｄａｔａ（すなわちイエロードットプレーン）（Ｏｕｔ＿ｙ）の２値化（量子化値０，２５５）が決定する。つまり、この時点でＧｒ１＿ｄａｔａの２値データが確定することになる。なお、式（３３）はＧｒ１＿ｄａｔａ（イエロードット）が打たれることを意味し、式（３６）はイエロードットが打たれないことを意味する。
【００７１】
ここでＧｒ１＿ｄａｔａ（マゼンタ、レッドの２つのドットプレーンの合計データ）の３値化の意味を説明する。例えばＯｕｔ＿ｍｒ＝２５５とは、その場所に、マゼンタ、レッドいずれかのドットが１つ打たれることを意味する。すなわち、Ｏｕｔ＿ｍｒ＝２５５とは、その場所にマゼンタドットが確定するわけでなく、レッドドットも確定しない。この時点で確定していることは、マゼンタかレッドの、いずれのドットが打たれるかわからないが、少なくともどれか一つは打たれることである。
【００７２】
さらに、Ｏｕｔ＿ｍｒｙ＝５１０とは、その場所に、マゼンタ、レッドいずれかのドットが２つ打たれることを意味する。同色のドットは最大でも１つしか打つことができないという前提上、マゼンタ、レッドのどちらも打たれることを意味する。
【００７３】
以上をまとめると次のようになる。
【００７４】
Ｏｕｔ＿ｍｒ＝０      ・・・マゼンタ、レッドドットのいずれも打たれない。  
Ｏｕｔ＿ｍｒ＝２５５  ・・・マゼンタ、レッドドットのいずれか１つが打たれる。  
Ｏｕｔ＿ｍｒ＝５１０  ・・・マゼンタ、レッドドットが打たれる。
【００７５】
ステップＳ２１１において、誤差演算部６１４は注目画素Ｉ＿ｍｒに誤差加算後の画素データＩ＿ｍｒ’と出力画素値Ｏｕｔ＿ｍｒとの差分量Ｅｒｒ＿ｍｒを、次の式（３７）ようにして計算する。
【００７６】
Ｅｒｒ＿ｍｒ（ｘ）＝Ｉ＿ｍｒ’−Ｏｕｔ＿ｍｒ      ・・・（３７）
ステップＳ２１２において、誤差拡散部６１５は、誤差拡散部６０９と同様に、注目画素の横画素位置ｘに応じて、累積誤差ラインバッファ６１０を用いて以下の様に誤差Ｅｒｒ＿ｍｒ（ｘ）を拡散する。
【００７７】
Ｅ＿ｍｒ（ｘ＋１）  ←  Ｅ＿ｍｒ（ｘ＋１）＋Ｅｒｒ＿ｍｒ（ｘ）×７／１６        （ｘ＜Ｗ）
Ｅ＿ｍｒ（ｘ−１）  ←  Ｅ＿ｌｍ（ｘ−１）＋Ｅｒｒ＿ｌｍ（ｘ）×３／１６        （ｘ＞１）
Ｅ＿ｍｒ（ｘ）  ←  Ｅ＿ｍｒ０＋Ｅｒｒ＿ｍｒ（ｘ）×５／１６                （１＜ｘ＜Ｗ）
Ｅ＿ｍｒ（ｘ）  ←  Ｅ＿ｍｒ０＋Ｅｒｒ＿ｍｒ（ｘ）×８／１６              （ｘ＝１）
Ｅ＿ｍｒ（ｘ）  ←  Ｅ＿ｍｒ０＋Ｅｒｒ＿ｍｒ（ｘ）×１３／１６            （ｘ＝Ｗ）
Ｅ＿ｍｒ０  ←  Ｅ＿ｍｒ×１／１６                            （ｘ＜Ｗ）
Ｅ＿ｍｒ０  ←  ０                                          （ｘ＝Ｗ）
・・・（３８）
以上で、１画素分のＧｒ１＿ｄａｔａ（マゼンタ、レッドドット、Ｍ”、Ｒ’の２プレーンの合計データ）に対して第２の量子化データに相当する３値化（量子化値０，２５５，５１０）が完了する。また、同時に、Ｇｒ２＿ｄａｔａ（イエロードットＹ”）の第３の量子化データに相当する２値化（量子化値０，２５５）結果が確定する。
【００７８】
つまり、Ｇｒ１＿ｄａｔａの３値化は、Ｇｒ１＿ｄａｔａ（マゼンタ、レッド２プレーントータル）に対して、より好適な配置を確保することに目的がある。そして、確保された配置の残りの配置として、Ｇｒ２＿ｄａｔａ（イエロードットＹ”）の２値化結果が確定するわけである。すなわち、優先度が相対的に高く設定されたＧｒ１＿ｄａｔａはより好適な配置となり、優先度が相対的に低く設定されたＧｒ２＿ｄａｔａはＧｒ１＿ｄａｔａが配置された後の余りの位置に配置される。これにより、Ｇｒ１＿ｄａｔａと、Ｇｒ２＿ｄａｔａのドットの重なりを許可しない制御が実現する。
【００７９】
次に、Ｇｒ１＿１ｄａｔａ（すなわちマゼンタドットのプレーンデータ）に対して誤差拡散処理を施し２値化を行う。まずステップＳ２１３において、Ｇｒ１＿１ｄａｔａ（マゼンタドットの注目画素のデータ）Ｉ＿ｍを第三量子化部６０３に入力する。なおＩ＿ｍは以下のように算出される。
【００８０】
Ｉ＿ｍ＝Ｇｒ１＿１ｄａｔａ            ・・・（３９）
図８の第三量子化部６０３における累積誤差ラインバッファ６１６は、累積誤差ラインバッファ６０４と同様の構成を有する。即ち、累積誤差ラインバッファ６１６は、図１３の（ｃ）に示すように、１個の記憶領域Ｅ＿ｍ０と入力画像の横画素数Ｗと同数の記憶領域Ｅ＿ｍ（ｘ）（ｘ＝１〜Ｗ）とを有し、後述する方法で量子化誤差を格納している。なお、累積誤差ラインバッファ６１６は処理開始前に全て初期値０で初期化されていてもよいし、ランダム値で初期化されてもよい。
【００８１】
次に、ステップＳ２１４において、累積誤差加算部６１７で入力画素データの横画素位置ｘに対応する誤差Ｅ＿ｍ（ｘ）が加算される。つまり、分散させて反映されることに相当する。即ち、入力された注目画素データをＩ＿ｍ、累積誤差加算後のデータをＩ＿ｍ’とすると、
Ｉ＿ｍ’＝Ｉ＿ｍ＋Ｅ＿ｍ（ｘ）        ・・・（４０）
となる。
【００８２】
次にステップＳ２１５において、閾値選択部６１８は、閾値Ｔ＿ｍを選択する。閾値Ｔ＿ｍの選択においては、例えば、
ｔ＿ｍ＝Ｉ＿ｍｒ−Ｉ＿ｍ                          ・・・（４１Ａ）
とおくと、閾値Ｔ＿ｍは、
Ｔ＿ｍ（ｔ＿ｍ）＝１２８  （０≦ｔ＿ｍ≦２５５）  ・・・（４１Ｂ）
と設定される。或いは、ドット生成遅延を回避するため、平均量子化誤差が小さくなるよう、ｔ＿ｍに応じて細かく閾値Ｔ＿ｍを変更しても良い。なお、Ｉ＿ｍｒ−Ｉ＿ｍは２５５以下となるので、本実施形態では必ずＴ＿ｍ（ｔ＿ｍｒ）＝１２８をとる。
次に、ステップＳ２１６において、量子化部６１９は、誤差加算後の画素データＩ＿ｍ’と閾値Ｔ＿ｍ（ｔ＿ｍ）とＯｕｔ＿ｍｒ（量子化値０，２５５，５１０）とを比較する。なお、Ｏｕｔ＿ｍｒ（量子化値０，２５５，５１０）は、前述のＧｒ１＿ｄａｔａ（マゼンタ、レッドの２つのドットプレーンの合計データ）の多値化結果である。そして、Ｇｒ１＿２ｄａｔａ（レッドドット）の最終２値化結果Ｏｕｔ＿ｒ、とＧｒ１＿１ｄａｔａ（マゼンタドット）の最終２値化結果Ｏｕｔ＿ｍを決定する。その規則は次の通りである。
【００８３】
Ｏｕｔ＿ｍｒ−Ｉ＿ｍ’≧Ｔ（ｔ＿ｍ）のとき、          ・・・（４２）
Ｏｕｔ＿ｍ  ＝  Ｏｕｔ＿ｍｒ−２５５            ・・・（４３）
Ｏｕｔ＿ｒ  ＝  ２５５                    ・・・（４４）
Ｏｕｔ＿ｍｒ−Ｉ＿ｍ’＜Ｔ（ｔ＿ｍ）のとき          ・・・（４５）
Ｏｕｔ＿ｍ  ＝  Ｏｕｔ＿ｍｒ                    ・・・（４６）
Ｏｕｔ＿ｒ  ＝  ０                        ・・・（４７）
例えば、Ｏｕｔ＿ｍｒ＝５１０の時、  Ｏｕｔ＿ｍｒ  −  Ｉ＿ｍ’≧Ｔ（ｔ＿ｍ）となるため、式（４２）の条件となり、Ｏｕｔ＿ｍ＝２５５となる。このため、式（４２）〜（４７）で、Ｇｒ１＿１ｄａｔａ（マゼンタデータ）Ｏｕｔ＿ｍの２値化が決定すると同時にＧｒ１＿２ｄａｔａ（レッドデータ）Ｏｕｔ＿ｒの２値化が決定する。すなわち、レッドドット最終結果Ｏｕｔ＿ｒとマゼンタドット最終結果Ｏｕｔ＿ｍが同時に確定する。なお、式（４４）はレッドドットが打たれることを意味し、式（４７）はレッドドットが打たれないことを意味する。
【００８４】
次に、ステップＳ２１７において、誤差演算部６２０で注目画素Ｉ＿ｍに誤差加算後の画素データＩ＿ｍ’と出力画素値Ｏｕｔ＿ｍとの差分量Ｅｒｒ＿ｍを、次のようにして計算する。
【００８５】
Ｅｒｒ＿ｍ（ｘ）＝Ｉ＿ｍ’−  Ｏｕｔ＿ｍ          ・・・（４７）
次に、ステップＳ２１８において、誤差拡散部６２１は、誤差演算部６０８，６１５と同様に、誤差を拡散する。即ち、累積誤差ラインバッファ６１６を用いて、横画素位置ｘに応じて以下の様に誤差Ｅｒｒ＿ｍ（ｘ）の拡散処理が行われる。
【００８６】
Ｅ＿ｍ（ｘ＋１）  ←  Ｅ＿ｍ（ｘ＋１）＋Ｅｒｒ＿ｍ（ｘ）×７／１６      （ｘ＜Ｗ）
Ｅ＿ｍ（ｘ−１）  ←  Ｅ＿ｍ（ｘ−１）＋Ｅｒｒ＿ｍ（ｘ）×３／１６      （ｘ＞１）
Ｅ＿ｍ（ｘ）  ←  Ｅ＿ｍ０＋Ｅｒｒ＿ｍ（ｘ）×５／１６              （１＜ｘ＜Ｗ）
Ｅ＿ｍ（ｘ）  ←  Ｅ＿ｍ０＋Ｅｒｒ＿ｍ（ｘ）×８／１６              （ｘ＝１）
Ｅ＿ｍ（ｘ）  ←  Ｅ＿ｍ０＋Ｅｒｒ＿ｍ（ｘ）×１３／１６            （ｘ＝Ｗ）
Ｅ＿ｍ０  ←  Ｅ＿ｍ×１／１６                          （ｘ＜Ｗ）
Ｅ＿ｍ０  ←  ０                                      （ｘ＝Ｗ）
・・・（４８）
以上で、１画素分のＧｒ１＿１ｄａｔａ（マゼンタデータＭ”）に対して２値化（量子化値０，２５５）が完了する。同時に、Ｇｒ１＿２ｄａｔａ（レッドデータＲ’）の２値化（量子化値０，２５５）結果も確定する。
【００８７】
つまり、Ｇｒ１＿１ｄａｔａ（マゼンタデータ）の２値化は、Ｇｒ１＿１ｄａｔａに対して、より好適な配置を確保することに目的がある。そして、Ｇｒ１＿１ｄａｔａに対して確保された配置の残りの配置として、Ｇｒ１＿２ｄａｔａ（レッドデータ）の２値化結果が確定するわけである。すなわち、優先度が相対的に高く設定されたＧｒ１＿１ｄａｔａ（マゼンタデータ）はより好適な配置となり、優先度が相対的に低く設定されたＧｒ１＿２ｄａｔａ（レッドデータ）はＧｒ１＿１ｄａｔａが配置された後の余りの位置に配置される。これにより、Ｇｒ１＿ｄａｔａと、Ｇｒ２＿ｄａｔａのドットの重なりを許可しない制御が実現する。
【００８８】
また、以上で説明したように、第１実施形態では２階層のグループ化を行い、階層ごとに再帰的に同様の演算を行うことにより、最終的にここの色成分に対応する２値化データ（２階調データ）を決定している。同様にして、より多いｎ個の色成分で表現されていた場合であっても、階層化されたグループ化を行うことにより、再帰的な誤差拡散の演算を行うことにより２階調データを決定可能であることが分かる。なお、再帰的に演算実行の有無の判定方法としては、各グループ（第１の色グループと第２の色グループ）に含まれる色成分の数の少なくとも一方が１より大きいか否かを判定するようにすればよい。
【００８９】
＜処理２（ステップＳ４）＞
上述の処理１では（ステップＳ３）ドット重なりが起こらないよう配置を決定することができる。しかし、ドット打ち込み数が少ない領域（ハイライト領域）では、イエローのドット打ち込み数が少ない。また、イエロードットは視認性が低いため、ドットが抜けたような画像となって、粒状感が悪化してしまう。そこで、以下では、イエローのドット抜けによる粒状感悪化の顕在化を防ぐ処理を行う。
【００９０】
以下、ステップＳ４の処理の詳細を、機能構成を説明する図８（ｂ）、フローチャート図１４と共に説明する。なお、図８（ｂ）の内部構成は６０１〜６２１は図８（ａ）と同じ構成である。
【００９１】
まず、マゼンタ、レッド、イエローの３つのドットプレーンのデータ（各プレーンは０〜２５５の値をとる）に対して２値化（量子化値０，２５５）を行う。その場合、まず第一量子化部６０１は、Ｇｒ２＿ｄａｔａ（イエローのドットプレーンの対応画素のデータＩ＿ｙ）を入力する。そして、入力されたＧｒ２＿ｄａｔａに対して誤差拡散処理を施し、２値化（量子化値０，２５５）を行う。
【００９２】
より具体的に説明すると、まずステップＳ３０１において、Ｇｒ２＿ｄａｔａ（イエロードットプレーンの対応する画素データＩ＿ｙ）を第一量子化部６０１に入力する。ここで、Ｉ＿ｙは次式のように算出される。
【００９３】
Ｉ＿ｙ  ＝  Ｇｒ２＿ｄａｔａ    ・・・（４９）
ステップＳ３０２において、累積誤差加算部６０５は、注目画素の横画素位置ｘに対応する誤差Ｅ＿ｍｒｙ（ｘ）を累積誤差ラインバッファ６０４より読み出し、加算する。即ち、入力された合計データをＩ＿ｙ、累積誤差加算後のデータをＩ＿ｙ’とすると、
Ｉ＿ｙ’＝  Ｉ＿ｙ  ＋  Ｅ＿ｍｒｙ（ｘ）    …（５０）
となる。
【００９４】
次に、ステップＳ３０３において、閾値選択部６０６は閾値Ｔ＿ｙを選択する。閾値Ｔ＿ｙは、例えば、
Ｔ＿ｙ（Ｉ＿ｙ）＝１２８  （０≦Ｉ＿ｙ≦２５５）      ・・・（５１）
と設定される。或いは、ドット生成遅延を回避するために、平均量子化誤差が小さくなるように閾値Ｔ＿ｙを入力画素データＩ＿ｙに応じて細かく変更しても良い。
【００９５】
次に、ステップＳ３０４において、量子化部６０７は、誤差加算後の画素データＩ＿ｙ’と閾値Ｔ（Ｉ＿ｙ）とを比較し、出力画素値Ｏｕｔ＿ｙを決定する。その規則は次の通りである。
【００９６】
Ｏｕｔ＿ｙ＝０                                      ・・・（５１）
（０≦Ｉ＿ｙ≦２５５，Ｉ＿ｙ’＜Ｔ（Ｉ＿ｙ））
Ｏｕｔ＿ｙ＝２５５                                  ・・・（５２）
（０≦Ｉ＿ｙ≦２５５，Ｉ＿ｙ’≧Ｔ（Ｉ＿ｙ））
Ｏｕｔ＿ｙ＝０      ・・・イエロードットは打たれない。  
Ｏｕｔ＿ｙ＝２５５  ・・・イエロードットは打たれる。  
次に、ステップＳ３０５において、誤差演算部６０８で注目画素のＩ＿ｙに誤差を加算した後の画素データＩ＿ｙ’と出力画素値Ｏｕｔ＿ｙとの差分量Ｅｒｒ＿ｍｒｙを、次のようにして計算する。
【００９７】
Ｅｒｒ＿ｍｒｙ（ｘ）＝Ｉ＿ｙ’−  Ｏｕｔ＿ｙ      ・・・（５３）
そして、ステップＳ３０６において、誤差拡散部６０９は、横画素位置ｘに応じて、累積誤差ラインバッファ６０４において、以下の様に誤差Ｅｒｒ＿ｍｒｙ（ｘ）の拡散処理を行う。
【００９８】
Ｅ＿ｍｒｙ（ｘ＋１）  ←  Ｅ＿ｍｒｙ（ｘ＋１）＋Ｅｒｒ＿ｍｒｙ（ｘ）×７／１６  （ｘ＜Ｗ）
Ｅ＿ｍｒｙ（ｘ−１）  ←  Ｅ＿ｍｒｙ（ｘ−１）＋Ｅｒｒ＿ｍｒｙ（ｘ）×３／１６  （ｘ＞１）
Ｅ＿ｍｒｙ（ｘ）  ←  Ｅ＿ｍｒｙ０＋Ｅｒｒ＿ｍｒｙ（ｘ）×５／１６          （１＜ｘ＜Ｗ）
Ｅ＿ｍｒｙ（ｘ）  ←  Ｅ＿ｍｒｙ０＋Ｅｒｒ＿ｍｒｙ（ｘ）×８／１６          （ｘ＝１）
Ｅ＿ｍｒｙ（ｘ）  ←  Ｅ＿ｍｒｙ０＋Ｅｒｒ＿ｍｒｙ（ｘ）×１３／１６        （ｘ＝Ｗ）
Ｅ＿ｍｒｙ０  ←  Ｅ＿ｍｒｙ×１／１６                        （ｘ＜Ｗ）
Ｅ＿ｍｒｙ０  ←  ０                                      （ｘ＝Ｗ）
・・・（５４）
以上で、Ｇｒ２＿ｄａｔａ（イエロードットＹ”）の１画素分の２値化が完了する。
【００９９】
次に、第二量子化部６０２において、Ｇｒ１＿ｄａｔａ（マゼンタ、レッドの２つのドットプレーンの注目画素の画素値の合計データ）に対して誤差拡散処理を施し３値化（量子化値０，２５５，５１０）を行う。
【０１００】
まずステップＳ３０７において、Ｇｒ１＿ｄａｔａを第二量子化部６０２に入力する。なおＩ＿ｍｒは以下のように算出される。
【０１０１】
Ｉ＿ｍｒ  ＝Ｇｒ１＿ｄａｔａ・・・（５５）
図８（ｂ）の第二量子化部６０２における累積誤差ラインバッファ６１０は、累積誤差ラインバッファ６０４と同様の構成を有する。すなわち、累積誤差ラインバッファ６１０は図１３の（ｂ）に示されるように、１個の記憶領域Ｅ＿ｍｒ０と入力画像の横画素数Ｗと同数の記憶領域Ｅ＿ｍｒ（ｘ）（ｘ＝１〜Ｗ）とを有し、後述する方法で量子化誤差を格納している。なお、累積誤差ラインバッファ６１０は処理開始前に全て初期値０で初期化されていてもよいし、ランダム値で初期化されてもよい。
【０１０２】
次に、ステップＳ３０８において、累積誤差加算部６１１で、注目画素の横画素位置ｘに対応する誤差Ｅ＿ｍｒ（ｘ）が加算される。即ち、入力された注目画素の合計値をＩ＿ｍｒ、累積誤差加算後のデータをＩ＿ｍｒ’とすると、
Ｉ＿ｍｒ’＝Ｉ＿ｍｒ＋Ｅ＿ｍｒ（ｘ）      ・・・（５６）
となる。
【０１０３】
次に、ステップＳ３０９において、閾値選択部６０６は閾値Ｔ＿ｍｒｙを選択する。閾値Ｔ＿ｍｒｙは、例えば、入力画素データＩ＿ｍｒｙに応じて、
Ｔ＿ｍｒ（Ｉ＿ｍｒ）＝１２８  （０≦Ｉ＿ｍｒ≦２５５）      ・・・（５７）
Ｔ＿ｍｒ（Ｉ＿ｍｒ）＝３８４  （２５５＜Ｉ＿ｍｒ≦５１０）  ・・・（５８）
と設定される。或いは、ドット生成遅延を回避するために、平均量子化誤差が小さくなるように閾値Ｔ＿ｍｒを入力画素データＩ＿ｍｒに応じて細かく変更しても良い。
【０１０４】
次に、ステップＳ３１０において、量子化部６０７は、誤差加算後の画素データＩ＿ｍｒ’と閾値Ｔ（Ｉ＿ｍｒ）とを比較し、出力画素値Ｏｕｔ＿ｍｒを決定する。その規則は次の通りである。
【０１０５】
Ｏｕｔ＿ｍｒ＝０                                      ・・・（５９）
（０≦Ｉ＿ｍｒ≦２５５，Ｉ＿ｍｒ’＜Ｔ（Ｉ＿ｍｒ））
Ｏｕｔ＿ｍｒ＝２５５                                  ・・・（６０）
（０≦Ｉ＿ｍｒ≦２５５，Ｉ＿ｍｒ’≧Ｔ（Ｉ＿ｍｒ））又は
（２５５＜Ｉ＿ｍｒ≦５１０，Ｉ＿ｍｒ’＜Ｔ（Ｉ＿ｍｒ））
Ｏｕｔ＿ｍｒ＝５１０                                  ・・・（６１）
（２５５≦Ｉ＿ｍｒ≦５１０，Ｉ＿ｍｒ’≧Ｔ（Ｉ＿ｍｒ））又は
（５１０＜Ｉ＿ｍｒ≦７６５，Ｉ＿ｍｒ’＜Ｔ（Ｉ＿ｍｒ））
ここでＧｒ１＿ｄａｔａ（マゼンタ、レッドの２つのドットプレーンの合計データ）の３値化（Ｉ＿ｍｒ’）の意味を説明する。例えばＯｕｔ＿ｍｒ＝２５５とは、その場所に、マゼンタ、レッドいずれかのドットが１つ打たれることを意味する。すなわち、Ｏｕｔ＿ｍｒ＝２５５とは、その場所にマゼンタドットが確定するわけでなく、レッドドットも確定しない。この時点で確定していることは、マゼンタかレッドの、いずれのドットが打たれるかわからないが、少なくともどれか一つは打たれることである。
【０１０６】
さらに、Ｏｕｔ＿ｍｒ＝５１０とは、その場所に、マゼンタ、レッドいずれかのドットが２つ打たれることを意味する。同じドットは最大でも１つしか打つことができないという前提上、マゼンタ、レッドのどちらも打たれることを意味する。
【０１０７】
以上をまとめると次のようになる。
【０１０８】
Ｏｕｔ＿ｍｒ＝０      ・・・マゼンタ、レッドドットのいずれも打たれない。  
Ｏｕｔ＿ｍｒ＝２５５  ・・・マゼンタ、レッドドットのいずれか１つが打たれる。  
Ｏｕｔ＿ｍｒ＝５１０  ・・・マゼンタ、レッドドットが打たれる。
【０１０９】
ステップＳ３１１において、誤差演算部６１４は注目画素Ｉ＿ｍｒに誤差加算後の画素データＩ＿ｍｒ’と出力画素値Ｏｕｔ＿ｍｒとの差分量Ｅｒｒ＿ｍｒを、次の式（６２）ようにして計算する。
【０１１０】
Ｅｒｒ＿ｍｒ（ｘ）＝Ｉ＿ｍｒ’−Ｏｕｔ＿ｍｒ      ・・・（６２）
ステップＳ３１２において、誤差拡散部６１５は、誤差拡散部６０９と同様に、注目画素の横画素位置ｘに応じて、累積誤差ラインバッファ６１０を用いて以下の様に誤差Ｅｒｒ＿ｍｒ（ｘ）を拡散する。
【０１１１】
Ｅ＿ｍｒ（ｘ＋１）  ←  Ｅ＿ｍｒ（ｘ＋１）＋Ｅｒｒ＿ｍｒ（ｘ）×７／１６        （ｘ＜Ｗ）
Ｅ＿ｍｒ（ｘ−１）  ←  Ｅ＿ｌｍ（ｘ−１）＋Ｅｒｒ＿ｌｍ（ｘ）×３／１６        （ｘ＞１）
Ｅ＿ｍｒ（ｘ）  ←  Ｅ＿ｍｒ０＋Ｅｒｒ＿ｍｒ（ｘ）×５／１６                （１＜ｘ＜Ｗ）
Ｅ＿ｍｒ（ｘ）  ←  Ｅ＿ｍｒ０＋Ｅｒｒ＿ｍｒ（ｘ）×８／１６              （ｘ＝１）
Ｅ＿ｍｒ（ｘ）  ←  Ｅ＿ｍｒ０＋Ｅｒｒ＿ｍｒ（ｘ）×１３／１６            （ｘ＝Ｗ）
Ｅ＿ｍｒ０  ←  Ｅ＿ｍｒ×１／１６                            （ｘ＜Ｗ）
Ｅ＿ｍｒ０  ←  ０                                          （ｘ＝Ｗ）
・・・（６３）
以上で、１画素分のＧｒ１＿ｄａｔａ（マゼンタ、レッドドット、Ｍ”、Ｒ’の２プレーンの合計データ）に対して３値化（量子化値０，２５５，５１０）が完了する。
【０１１２】
Ｇｒ１＿ｄａｔａ（マゼンタ、レッドドットの２つのドットプレーンの合計データ）の３値化は、当該２つのドットプレーンのどのドットが打たれるかわからないが、少なくとも２プレーントータルで、より好適な配置を確保することに目的がある。
【０１１３】
次に、Ｇｒ１＿１ｄａｔａ（マゼンタドットのプレーンデータ）に対して誤差拡散処理を施し２値化を行う。まずステップＳ３１３において、マゼンタドットの注目画素のデータＩ＿ｍを第三量子化部６０３に入力する。なおＩ＿ｍは以下のように算出される。
【０１１４】
Ｉ＿ｍ＝Ｇｒ１＿１ｄａｔａ            ・・・（６４）
図８（ｂ）の第三量子化部６０３における累積誤差ラインバッファ６１６は、累積誤差ラインバッファ６０４と同様の構成を有する。即ち、累積誤差ラインバッファ６１６は、図１３の（ｃ）に示すように、１個の記憶領域Ｅ＿ｍ０と入力画像の横画素数Ｗと同数の記憶領域Ｅ＿ｍ（ｘ）（ｘ＝１〜Ｗ）とを有し、後述する方法で量子化誤差を格納している。なお、累積誤差ラインバッファ６１６は処理開始前に全て初期値０で初期化されていてもよいし、ランダム値で初期化されてもよい。
【０１１５】
次に、ステップＳ３１４において、累積誤差加算部６１７で入力画素データの横画素位置ｘに対応する誤差Ｅ＿ｍ（ｘ）が加算される。即ち、入力された注目画素データをＩ＿ｍ、累積誤差加算後のデータをＩ＿ｍ’とすると、
Ｉ＿ｍ’＝Ｉ＿ｍ＋Ｅ＿ｍ（ｘ）        ・・・（６５）
となる。
【０１１６】
次にステップＳ３１５において、閾値選択部６１８は、閾値Ｔ＿ｍを選択する。閾値Ｔ＿ｍの選択においては、例えば、
ｔ＿ｍ＝Ｉ＿ｍｒ−Ｉ＿ｍ                          ・・・（６６Ａ）
とおくと、閾値Ｔ＿ｍは、
Ｔ＿ｍ（ｔ＿ｍ）＝１２８  （０≦ｔ＿ｍ≦２５５）  ・・・（６６Ｂ）
と設定される。或いは、ドット生成遅延を回避するため、平均量子化誤差が小さくなるよう、ｔ＿ｍに応じて細かく閾値Ｔ＿ｍを変更しても良い。なお、Ｉ＿ｍｒ−Ｉ＿ｍは２５５以下となるので、本実施形態では必ずＴ＿ｍ（ｔ＿ｍｒ）＝１２８をとる。
【０１１７】
次に、ステップＳ３１６において、量子化部６１９は、誤差加算後の画素データＩ＿ｍ’と閾値Ｔ＿ｍ（ｔ＿ｍ）とＯｕｔ＿ｍｒ（量子化値０，２５５，５１０）とを比較する。なお、Ｏｕｔ＿ｍｒ（量子化値０，２５５，５１０）は、前述のＧｒ１＿ｄａｔａ（マゼンタ、レッドの２つのドットプレーンの合計データ）の多値化結果である。そして、Ｇｒ１＿２ｄａｔａ（レッドドット）の最終２値化結果Ｏｕｔ＿ｒ、とＧｒ１＿２ｄａｔａ（マゼンタドット）の最終２値化結果Ｏｕｔ＿ｍを決定する。その規則は次の通りである。
【０１１８】
Ｏｕｔ＿ｍｒ−Ｉ＿ｍ’≧Ｔ（ｔ＿ｍ）のとき、          ・・・（６７）
Ｏｕｔ＿ｍ  ＝  Ｏｕｔ＿ｍｒ−２５５            ・・・（６８）
Ｏｕｔ＿ｒ  ＝  ２５５                    ・・・（６９）
Ｏｕｔ＿ｍｒ−Ｉ＿ｍ’＜Ｔ（ｔ＿ｍ）のとき          ・・・（７０）
Ｏｕｔ＿ｍ  ＝  Ｏｕｔ＿ｍｒ                    ・・・（７１）
Ｏｕｔ＿ｒ  ＝  ０                        ・・・（７２）
例えば、Ｏｕｔ＿ｍｒ＝５１０の時、  Ｏｕｔ＿ｍｒ  −  Ｉ＿ｍ’≧Ｔ（ｔ＿ｍ）となるため、式（６９）の条件となり、Ｏｕｔ＿ｍ＝２５５となる。このため、式（６７）〜（７２）で、マゼンタプレーンデータＯｕｔ＿ｍの２値化が決定すると同時にレッドプレーンデータＯｕｔ＿ｒの２値化が決定する。すなわち、レッドドット最終結果Ｏｕｔ＿ｒとマゼンタドット最終結果Ｏｕｔ＿ｍが同時に確定する。なお、式（６９）はレッドドットが打たれることを意味し、式（７２）はレッドドットが打たれないことを意味する。
【０１１９】
次に、ステップＳ３１７において、誤差演算部６２０で注目画素Ｉ＿ｍに誤差加算後の画素データＩ＿ｍ’と出力画素値Ｏｕｔ＿ｍとの差分量Ｅｒｒ＿ｍを、次のようにして計算する。
【０１２０】
Ｅｒｒ＿ｍ（ｘ）＝Ｉ＿ｍ’−  Ｏｕｔ＿ｍ          ・・・（７３）
次に、ステップＳ３１８において、誤差拡散部６２１は、誤差演算部６０８，６１５と同様に、誤差を拡散する。即ち、累積誤差ラインバッファ６１６を用いて、横画素位置ｘに応じて以下の様に誤差Ｅｒｒ＿ｍ（ｘ）の拡散処理が行われる。
【０１２１】
Ｅ＿ｍ（ｘ＋１）  ←  Ｅ＿ｍ（ｘ＋１）＋Ｅｒｒ＿ｍ（ｘ）×７／１６      （ｘ＜Ｗ）
Ｅ＿ｍ（ｘ−１）  ←  Ｅ＿ｍ（ｘ−１）＋Ｅｒｒ＿ｍ（ｘ）×３／１６      （ｘ＞１）
Ｅ＿ｍ（ｘ）  ←  Ｅ＿ｍ０＋Ｅｒｒ＿ｍ（ｘ）×５／１６              （１＜ｘ＜Ｗ）
Ｅ＿ｍ（ｘ）  ←  Ｅ＿ｍ０＋Ｅｒｒ＿ｍ（ｘ）×８／１６              （ｘ＝１）
Ｅ＿ｍ（ｘ）  ←  Ｅ＿ｍ０＋Ｅｒｒ＿ｍ（ｘ）×１３／１６            （ｘ＝Ｗ）
Ｅ＿ｍ０  ←  Ｅ＿ｍ×１／１６                          （ｘ＜Ｗ）
Ｅ＿ｍ０  ←  ０                                      （ｘ＝Ｗ）
・・・（７４）
以上で、１画素分のＧｒ１＿１ｄａｔａ（マゼンタドットプレーンデータＭ”）に対して２値化（量子化値０，２５５）が完了する。同時に、Ｇｒ１＿２ｄａｔａ（レッドドットプレーンデータＲ’）の２値化（量子化値０，２５５）結果も確定する。
【０１２２】
つまり、Ｇｒ１＿１ｄａｔａ（マゼンタプレーンデータ）の２値化は、Ｇｒ１＿１ｄａｔａに対して、より好適な配置を確保することに目的がある。そして、Ｇｒ１＿１ｄａｔａに対して確保された配置の余りの配置として、Ｇｒ１＿２ｄａｔａ（レッドドット）の２値化結果が確定するわけである。すなわち、優先度が相対的に高く設定されたＧｒ１＿１ｄａｔａ（マゼンタドット）はより好適な配置となり、優先度が相対的に低く設定されたＧｒ１＿２ｄａｔａ（レッドドット）はＧｒ１＿１ｄａｔａ（マゼンタドット）が配置された後の余りの位置に配置される。つまり、レッドドットに比べて視覚的に目立つマゼンタドットをより好適な位置に配置したほうが、視覚的に良好な画像が得られるからである。
【０１２３】
以上をまとめると、ステップＳ４の処理では、まずＧｒ２＿ｄａｔａに対し独立に誤差拡散処理を行い、次にＧｒ１＿１ｄａｔａと、Ｇｒ１＿２ｄａｔａのドットが重ならない制御が実現する。
【０１２４】
ステップＳ３（処理１）およびステップＳ４（処理２）において説明したグループ化を用いる処理を実行することにより、処理の複雑度を低減することが可能となる。また、６０１、６０２、６０３の各量子化部で実行される演算処理は共通であるため、物理的には同一の量子化部を時分割で動作させることにより機器構成も単純化可能となる。また、濃度の低いドットが目立たなくなることで、粒状感悪化が顕在化することを防ぐことも可能となる。そのため、より高画質な画像形成が可能となる。
【０１２５】
以上説明したように、第１実施形態に係る画像処理装置により、処理の複雑度を低減しつつより高画質な画像形成を可能とする技術を提供することができる。
【０１２６】
（変形例）
第１実施形態では、プリンタ２に出力するデータとして各色２値（１ビット）のデータを生成した。しかし、吐出されるインク滴の大きさが可変であるマルチドット記録を行うインクジェットプリンタを対象として、より多値（例えば各色３ビット）のデータを生成しても良い。つまり、インク滴の大きさに対応する値のデータを出力するよう構成してもよい。
【０１２７】
また、上述の説明では、当該画像処理をプリンタ２の外部の画像処理装置１により生成するよう構成したが、プリンタ内部に当該処理を実行する処理回路を設けるようにしてもよい。さらに、記録ヘッドに設けられた電子回路により実現しても良い。
【０１２８】
また、本発明は、例えば記録媒体の記録幅に対応する長さの記録ヘッドを有し、記録ヘッドに対して記録媒体を移動させて記録を行う、いわゆるフルライン型の記録装置など記録装置にも適用できる。すなわち、シリアル型の記録装置（プリンタ）以外の、記録ヘッドを記録媒体に対して相対的に移動させて記録を行う記録装置に対しても適用することができる。
【０１２９】
（他の実施形態）
なお、本発明は、前述した実施形態の機能を実現するプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置が、供給されたプログラムコードを読み出して実行することによっても達成される。従って、本発明の機能処理をコンピュータで実現するために、コンピュータにインストールされるプログラムコード自体も本発明の技術的範囲に含まれる。
【０１３０】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１３１】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク、磁気テープ、不揮発性のメモリカード、ＲＯＭなどがある。
【０１３２】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１３３】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【０１３４】
【図１】第１実施形態による画像形成装置を含む画像形成システムの構成を示したブロック図である。
【図２】プリンタ２に搭載される記録ヘッド２０１の構成例を示す図である。
【図３】第１実施形態の画像処理装置１の動作フローチャートである。
【図４】ハーフトーン処理部１０５に入力される各色のプレーン６１と、２値画像データ６２の構成例を示した図である。
【図５】画像処理装置１における色分解処理部１０３の構成を示す図である。
【図６】特色インク分解処理用ＬＵＴの一例を示す図である。
【図７】ハーフトーン処理部１０５の動作フローチャートである。
【図８】ハーフトーン処理部１０５の動作の詳細を説明する機能ブロック図である。
【図９】Ｍ”、Ｒ’、Ｙ”の３プレーンを２つのグループにグループ化する例を示す図である。
【図１０】ＣＭＹＫＲＧＢの７プレーンを５つのグループにグループ化する例を示す図である。
【図１１】ステップＳ３の処理（処理１）の詳細フローチャートである。
【図１２】誤差拡散処理における注目画素周辺の誤差拡散係数を説明する図である。
【図１３】累積誤差ラインバッファに格納されるデータを示す図である。
【図１４】ステップＳ４の処理（処理２）の詳細フローチャートである。
【図１】
0004838769.tif 000002
【図２】
0004838769.tif 000003
【図３】
0004838769.tif 000004
【図４】
0004838769.tif 000005
【図５】
0004838769.tif 000006
【図６】
0004838769.tif 000007
【図７】
0004838769.tif 000008
【図８】
0004838769.tif 000009
【図９】
0004838769.tif 000010
【図１０】
0004838769.tif 000011
【図１１】
0004838769.tif 000012
【図１２】
0004838769.tif 000013
【図１３】
0004838769.tif 000014
【図１４】
0004838769.tif 000015