(57)【特許請求の範囲】
【請求項１】
記録メディアの搬送方向に対し直交する方向に沿って記録メディアの画像形成領域の全幅に亘って配列されたインクを吐出する複数の吐出口を有するプリントヘッドにより、記録メディア上に画像を形成する際に用いる画像データを量子化する量子化装置であって、
前記画像データを取得する取得部と、
所定の画素領域を構成する各画素についてドット形成を行うか否かを判定するための第一方向及び前記第一方向に直交する第二方向にマトリクス状に配置された複数の閾値を有する閾値マトリクスを記憶する記憶部と、
取得した前記画像データ及び前記閾値マトリクスに基づいて当該画像データの量子化を行う量子化処理部と、を備え、
前記閾値マトリクスは、前記所定の画素領域を構成する全画素数に対するドット数が階調値に応じて各々異なる複数のドットパターンで構成されると共に、前記複数のドットパターンは、相対的に全画素数に対するドット数が多いドットパターンが、相対的に当該ドットパターンよりも全画素数に対するドット数が少ないドットパターンで配置されたドットの位置に配置された全てのドットを含んで構成される条件を満足し、且つ前記複数のドットパターンの中には、ドットが配置されない画素が連続して並ぶ方向が前記第二方向にのみ形成されるドット配置で構成されるドットパターンを有し、
前記量子化処理部は、前記搬送方向と前記第一方向とが一致するように前記閾値マトリクスを適用して前記画像データの量子化を行うことを特徴とする量子化装置。
【請求項２】
ドットが配置されない画素が連続して並ぶ方向が前記第二方向にのみ形成されるドット配置で構成される前記ドットパターンは、階調値が第１の階調値範囲内に対応する複数のドットパターンが該当する事を特徴とする請求項１記載の量子化装置。
【請求項３】
前記複数のドットパターンの中には、階調値が前記第１の階調値範囲内とは異なる第２の階調値範囲内に対応する複数のドットパターンが、ドットが配置されない画素が連続して並ぶ方向が前記第一方向及び前記第二方向にのみ形成されるドット配置である複数のドットパターンを更に有する事を特徴とする請求項２記載の量子化装置。
【請求項４】
前記複数のドットパターンの中には、前記第１及び第２の階調値範囲とは異なる第３の階調値範囲内に対応する複数のドットパターンが、ドットが配置される画素が連続して並ぶ方向が前記第一方向又は前記第二方向にのみ形成されるドット配置である複数のドットパターンを更に有する事を特徴とする請求項３記載の量子化装置。
【請求項５】
前記第１の階調値範囲は、量子化される画像データの高濃度領域に対応する階調範囲である事を特徴とする請求項２〜４のいずれか一項に記載の量子化装置。
【請求項６】
前記第２の階調値範囲は、量子化される画像データの中濃度領域に対応する階調範囲である事を特徴とする請求項３に記載の量子化装置。
【請求項７】
前記第３の階調値範囲は、量子化される画像データの低濃度領域に対応する階調範囲である事を特徴とする請求項４に記載の量子化装置。
【請求項８】
記録メディアの搬送方向に対し直交する方向に沿って記録メディアの画像形成領域の全幅に亘って配列されたインクを吐出する複数の吐出口を有するプリントヘッドにより、記録メディア上に画像を形成する際に用いる画像データを量子化するために用いられ、第一方向及び前記第一方向に直交する第二方向にマトリクス状に配置された複数の閾値を有し、前記搬送方向と前記第一方向とが一致するように前記画像データに対して適用される閾値マトリクスを生成する閾値マトリクス生成方法であって、
所定の画素領域において第１の階調値に対応する所定のドット数を有する第一のドットパターンに基づいて前記第一のドットパターンのドット数を増加又は減少させて前記第１の階調値とは異なる第２の階調値に対応する所定のドット数を有する第二のドットパターンを生成する新ドットパターン生成工程と、
前記第二のドットパターンに含まれるドットを再配置した第三のドットパターンを得る再配置工程と、
所望のドット数のドットパターンを得るまで前記第三のドットパターンを前記第一のドットパターンとして前記新ドットパターン生成工程及び前記再配置工程を繰り返す繰り返し工程と、を有し、
前記再配置工程は、
前記第二のドットパターンに所定の空間フィルタを適用したパターンに対して所望の空間周波数分布に対応するドットパターンを実現するための誤差に基づくドットパターン評価値を前記閾値マトリクス内の各位置に対応させて算出するドットパターン評価値算出工程と、
前記ドットパターン評価値に基づいて、ドットの再配置において新たにドットを配置する位置及びドットを削除する位置を決定するドット再配置位置決定工程と、
前記ドット再配置位置決定工程により決定された新たにドットを配置する位置及びドットを削除する位置に基づいて前記第三のドットパターンのドットを再配置する再配置パターン生成工程と、
再配置された前記第三のドットパターンに対するドット分散性評価値を算出するドット分散性評価値算出工程と、
再配置された前記第三のドットパターンのドット分散性評価値に基づいて前記ドットパターン評価値算出工程、前記ドット再配置位置決定工程、前記再配置パターン生成工程及び前記ドット分散性評価値算出工程を繰り返すか否かを判定する再配置繰り返し判定工程と、前記再配置繰り返し判定工程において繰り返すと判定された場合、再配置された前記第三のドットパターンを前記第二のパターンとする工程と、を有し、
前記ドット再配置位置決定工程は、前記搬送方向と前記第一方向とが一致するように前記画像データに対して適用された場合に、前記ドット数が第１の階調値範囲内である前記第二のドットパターンにおいて、ドットが配置されない画素が連続して並ぶ方向が前記第二方向にのみ形成されるドット配置となるようにドットの位置を決定する事を特徴とする閾値マトリクス生成方法。
【請求項９】
前記ドット再配置位置決定工程は、前記ドット数が前記第１の階調値範囲内とは異なる第２の階調値範囲内にある前記第二のドットパターンについて、ドットが配置されない画素が連続して並ぶ方向が前記第一方向及び前記第二方向にのみ形成されるようにドットの位置を決定することを特徴とする請求項８に記載の閾値マトリクス生成方法。
【請求項１０】
前記新ドットパターン生成工程は、前記ドット数が前記第１及び第２の階調値範囲内の前記第二のドットパターンについて、前記第一のドットパターンのドット数を減少させて前記第二のドットパターンを作成することを特徴とする請求項９に記載の閾値マトリクス生成方法。
【請求項１１】
前記ドット再配置位置決定工程は、前記ドット数が前記第１及び第２の階調値範囲内とは異なる第３の階調値範囲内である前記第二のドットパターンについて、ドットが配置される画素が連続して並ぶ方向が前記第一方向又は前記第二方向にのみ形成されるドット配置となるようにドットの位置を決定することを特徴とする請求項９又は１０に記載の閾値マトリクス生成方法。
【請求項１２】
前記新ドットパターン生成工程は、前記ドット数が前記第３の階調値範囲内である前記第二のドットパターンについて、前記第一のドットパターンのドット数を増加させて前記第二のドットパターンを作成することを特徴とする請求項１１に記載の閾値マトリクス生成方法。
【請求項１３】
前記第１の階調値範囲は、量子化される画像データの高濃度領域に対応する階調範囲である事を特徴とする請求項８〜１２のいずれか一項に記載の閾値マトリクス生成方法。
【請求項１４】
前記第２の階調値範囲は、量子化される画像データの中濃度領域に対応する階調範囲である事を特徴とする請求項９又は１０に記載の閾値マトリクス生成方法。
【請求項１５】
前記第３の階調値範囲は、量子化される画像データの低濃度領域に対応する階調範囲である事を特徴とする請求項１１又は１２に記載の閾値マトリクス生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、量子化装置及び閾値マトリクス生成方法に関する。
【背景技術】
【０００２】
多階調画像に基づく画像を用紙等の印刷媒体上に出力形成（印刷）するに際して、多階調画像に対して量子化処理を施して出力画像を得ることが広く行われている。ここでいう「量子化処理」とは、入力画像の階調よりも少ない階調で当該多階調画像と同様の画像を表現するため、入力画像の各画素に応じて出力画像の各画素のドットの形成状態を決定する処理である。
【０００３】
量子化処理の方法として、誤差拡散法とディザ法が知られている。このうち、誤差拡散法は、演算過程が煩雑であり処理時間がかかるという問題点がある。これに対し、ディザ法は入力画像の画素の画素値とその画素に対応した閾値との比較結果に基づいて量子化を行う方法であり、誤差拡散法に比して非常に演算時間が短いという利点がある。
ディザ処理において各画素の画素値との比較に用いられる閾値は、所定の画素数に対応するマトリクスデータとして予め用意されている。以下、当該所定の画素数に対応するマトリクスデータを「閾値マトリクス」と記載する。
【０００４】
閾値マトリクスは、例えば、複数の画素を方形状に配置した画素領域に対応するマトリクスデータであり、そのサイズは「縦の画素数×横の画素数」で表すことができる（例えば特許文献１）。
閾値マトリクスは、一般的に、ディザ処理を施される多階調画像の縦横画素数よりも小さな画素数に対応する。ディザ処理では、ディザ処理を施される多階調画像に対して閾値マトリクスをタイル状に繰り返し適用することで閾値マトリクスよりも大きな画像サイズの多階調画像を量子化する。
【０００５】
ディザ処理に用いる閾値マトリクスを生成する方法として、例えば積層束縛（Stacking Constraint）条件下での閾値マトリクス生成方法が知られている（例えば特許文献２）。
図３６に示す閾値マトリクス生成処理のイメージ図と、図３７に示すフローチャートと、を用いて、Stacking Constraint条件下での閾値マトリクス生成方法について説明する。ここでは、ＣＰＵ、ＲＡＭ、ＲＯＭ等を有するコンピュータによるソフトウェア処理で閾値マトリクスを生成する場合を例示する。
【０００６】
まず、ＣＰＵは、図３６に示す入力パターン１０１に対して、次の階調値のドットパターン（図３６の出力パターン１０２）を実現するために必要なドット数を決定し入力ドットパターン１０１に追加する（ステップＳ２０１）。必要なドット数とは、入力パターン１０１のドット率について次の階調値のパターンのドット率の差に応じて決定される。ドット率とは、パターンの全画素数に対するドットが配置される画素の数の割合である。
次に、ＣＰＵは、予め用意された空間フィルタを必要なドット数が追加された入力ドットパターンに対して適用する（ステップＳ２０２）。次に、ＣＰＵは、空間フィルタを適用されたドットパターンを参照し、入力ドットパターン１０１に追加されたドット位置の再配置を行う（ステップＳ２０３）。そして、ＣＰＵは、ステップＳ２０３による追加ドットの再配置前後の各パターンの評価値をそれぞれ算出し、算出された二の評価値を比較し（ステップＳ２０４）、再配置後のドットパターンの評価値が再配置前のドットパターンの評価値以上であるか否かを判定する（ステップＳ２０５）。つまり、ＣＰＵは、ステップＳ２０４で算出した評価値がドットの再配置によって減少しなかったかどうかを判定する。再配置後のドットパターンの評価値の方が再配置前のドットパターンの評価値以上である場合（ステップＳ２０５：ＹＥＳ）、ステップＳ２０３で最後の再配置を行う直前の出力パターン１０３に基づいて入力ドットパターン１０１の次の階調値のドットパターン１０２を作成し（ステップＳ２０６）、処理を終了する。ステップＳ２０５において、再配置後のドットパターンの評価値の方が再配置前のドットパターンの評価値未満の場合（ステップＳ２０５：ＮＯ）、ステップＳ２０２の処理に戻る。この処理を繰り返すことで各ドット率でのドットパターンを作成し閾値マトリクスを得る。
【０００７】
図３６及び図３７を用いた上記の説明では、入力パターン１０１のドット位置を保持しながら、ドット率が大きい出力パターン１０２を作成する場合、即ちドットが増える場合を示している。出力パターン１０２よりもさらにドット率が大きいパターンを生成する場合、出力パターン１０２を入力パターン１０１として同様の処理を行う。入力パターン１０１に対して出力パターン１０２のドット率が小さい、即ちドットが減る場合、ＣＰＵは入力パターン１０１ですでに配置されているドット位置からドットを削除する画素について同様に処理する。このようなStacking Constraint条件下で得られた各ドット率でのドットパターンを作成するドットパターン作成方法により、一の入力パターンに基づいて様々なドット率のパターンを得ることができる。このようにして作成した各ドット率のドットパターンを用いて閾値マトリクスを作成する。
以下、図３６及び図３７を用いて説明したStacking Constraint条件下での閾値マトリクス生成方法を「空間フィルタ法」と記載する。
【０００８】
空間フィルタ法によって生成された閾値マトリクスを用いたディザ処理に限らず、ディザ処理では当該処理を施された画像データのドット配置を分散させることが重要であり、そのための様々な方法が開示されている（例えば特許文献３、４、５等）。ドット配置の分散が不十分である場合、ドット配置の偏りによるムラ等の画質低下を生じるためである。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特許第４１６８０３３号公報
【特許文献２】特許第２６２２５２９号公報
【特許文献３】特開昭６３−３０８４７３号公報
【特許文献４】特開２０００−７８４０５号公報
【特許文献５】特開２００２−１６８０３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ところで、画像データをインクジェットプリンタで印刷する場合、隣接するドット同士が引き合うように移動することによってドットの位置ずれを生じることがある。
【００１１】
図３８（Ａ）、（Ｂ）を用いて、隣接するドット同士が引き合うように移動することによって生じるドットの位置ずれについて説明する。
図３８（Ａ）に示すように、記録メディア（例えば用紙Ｐ）に対して着弾したインク（インクＰ１）が当該記録メディアに浸透しきっていない状態で、先に着弾したインクＰ１に隣接するように新たなインク（インクＰ２）が着弾すると、インクＰ１とインクＰ２とが互いに引き寄せられるように移動する。このとき、図３８（Ｂ）に示すように、後に着弾した新たなインクＰ２が、インクＰ１に対してより大きく引き寄せられる。このように、着弾したインク同士が引き合うように移動することによって、各インクが本来浸透すべき位置からずれた位置へ移動する位置ずれを生じる。
【００１２】
隣接するドット同士が引き合うように移動することによって生じるドットの位置ずれは、インクの浸透に時間を要する記録メディア、もしくはまったく浸透をしない記録メディアで生じやすい。インクの浸透に時間を要する記録メディアの一例として、アート紙やコート紙等の印刷本用紙や光沢紙等がある。また、まったく浸透をしない記録メディアの例として、ペットフィルム、ポリ塩化ビニルシート等がある。
【００１３】
隣接するドット同士が引き合うように移動することによって生じるドットの位置ずれは、記録メディアに形成された画像（印刷画像）の粒状感の悪化をもたらす。
図３９（Ａ）、図３９（Ｂ）を用いて、ドットの位置ずれが生じさせる粒状感の悪化について説明する。
図３９（Ａ）に示すドット配置を行うことを想定した印刷画像を構成するドットが位置ずれを生じた場合、例えば図３９（Ｂ）に示す印刷画像となる。図３９（Ｂ）に示す印刷画像の各ドットは、ドットの位置ずれを生じたことによって複数のドットが連結した楕円状を示す。このため、想定したドット配置の場合に生じる各ドット間の隙間の一部が塗りつぶされ、印刷画像の粒状感が悪化する。
【００１４】
このように、隣接するドット同士が引き合うように移動することによって生じるドットの位置ずれによる粒状感の悪化は、印刷された画像の画質低下をもたらす。従来より知られているドット配置を分散させるための方法では、ドットの位置ずれによる粒状感の悪化を良好に低減させることができなかった。
【００１５】
本発明の課題は、ドットの位置ずれによる粒状感の悪化をより良好に低減させることである。
【課題を解決するための手段】
【００１６】
請求項１に記載の発明は、記録メディアの搬送方向に対し直交する方向に沿って記録メディアの画像形成領域の全幅に亘って配列されたインクを吐出する複数の吐出口を有するプリントヘッドにより、記録メディア上に画像を形成する際に用いる画像データを量子化する量子化装置であって、前記画像データを取得する取得部と、所定の画素領域を構成する各画素についてドット形成を行うか否かを判定するための第一方向及び前記第一方向に直交する第二方向にマトリクス状に配置された複数の閾値を有する閾値マトリクスを記憶する記憶部と、取得した前記画像データ及び前記閾値マトリクスに基づいて当該画像データの量子化を行う量子化処理部と、を備え、前記閾値マトリクスは、前記所定の画素領域を構成する全画素数に対するドット数が階調値に応じて各々異なる複数のドットパターンで構成されると共に、前記複数のドットパターンは、相対的に全画素数に対するドット数が多いドットパターンが、相対的に当該ドットパターンよりも全画素数に対するドット数が少ないドットパターンで配置されたドットの位置に配置された全てのドットを含んで構成される条件を満足し、且つ前記複数のドットパターンの中には、ドットが配置されない画素が連続して並ぶ方向が前記第二方向にのみ形成されるドット配置で構成されるドットパターンを有し、前記量子化処理部は、前記搬送方向と前記第一方向とが一致するように前記閾値マトリクスを適用して前記画像データの量子化を行うことを特徴とする。
【００１７】
請求項２に記載の発明は、請求項１に記載の量子化装置であって、ドットが配置されない画素が連続して並ぶ方向が前記第二方向にのみ形成されるドット配置で構成される前記ドットパターンは、階調値が第１の階調値範囲内に対応する複数のドットパターンが該当する事を特徴とする。
【００１８】
請求項３に記載の発明は、請求項２に記載の量子化装置であって、前記複数のドットパターンの中には、階調値が前記第１の階調値範囲内とは異なる第２の階調値範囲内に対応する複数のドットパターンが、ドットが配置されない画素が連続して並ぶ方向が前記第一方向及び前記第二方向にのみ形成されるドット配置である複数のドットパターンを更に有する事を特徴とする。
【００１９】
請求項４に記載の発明は、請求項３記載の量子化装置であって、前記複数のドットパターンの中には、前記第１及び第２の階調値範囲とは異なる第３の階調値範囲内に対応する複数のドットパターンが、ドットが配置される画素が連続して並ぶ方向が前記第一方向又は前記第二方向にのみ形成されるドット配置である複数のドットパターンを更に有する事を特徴とする。
【００２０】
請求項５に記載の発明は、請求項２〜４のいずれか一項に記載の量子化装置であって、前記第１の階調値範囲は、量子化される画像データの高濃度領域に対応する階調範囲である事を特徴とする。
【００２１】
請求項６に記載の発明は、請求項３に記載の量子化装置であって、前記第２の階調値範囲は、量子化される画像データの中濃度領域に対応する階調範囲である事を特徴とする。
【００２２】
請求項７に記載の発明は、請求項４に記載の量子化装置であって、前記第３の階調値範囲は、量子化される画像データの低濃度領域に対応する階調範囲である事を特徴とする。
【００２３】
請求項８に記載の発明は、記録メディアの搬送方向に対し直交する方向に沿って記録メディアの画像形成領域の全幅に亘って配列されたインクを吐出する複数の吐出口を有するプリントヘッドにより、記録メディア上に画像を形成する際に用いる画像データを量子化するために用いられ、第一方向及び前記第一方向に直交する第二方向にマトリクス状に配置された複数の閾値を有し、前記搬送方向と前記第一方向とが一致するように前記画像データに対して適用される閾値マトリクスを生成する閾値マトリクス生成方法であって、
所定の画素領域において第１の階調値に対応する所定のドット数を有する第一のドットパターンに基づいて前記第一のドットパターンのドット数を増加又は減少させて前記第１の階調値とは異なる第２の階調値に対応する所定のドット数を有する第二のドットパターンを生成する新ドットパターン生成工程と、前記第二のドットパターンに含まれるドットを再配置した第三のドットパターンを得る再配置工程と、所望のドット数のドットパターンを得るまで前記第三のドットパターンを前記第一のドットパターンとして前記新ドットパターン生成工程及び前記再配置工程を繰り返す繰り返し工程と、を有し、前記再配置工程は、前記第二のドットパターンに所定の空間フィルタを適用したパターンに対して所望の空間周波数分布に対応するドットパターンを実現するための誤差に基づくドットパターン評価値を前記閾値マトリクス内の各位置に対応させて算出するドットパターン評価値算出工程と、前記ドットパターン評価値に基づいて、ドットの再配置において新たにドットを配置する位置及びドットを削除する位置を決定するドット再配置位置決定工程と、前記ドット再配置位置決定工程により決定された新たにドットを配置する位置及びドットを削除する位置に基づいて前記第三のドットパターンのドットを再配置する再配置パターン生成工程と、再配置された前記第三のドットパターンに対するドット分散性評価値を算出するドット分散性評価値算出工程と、再配置された前記第三のドットパターンのドット分散性評価値に基づいて前記ドットパターン評価値算出工程、前記ドット再配置位置決定工程、前記再配置パターン生成工程及び前記ドット分散性評価値算出工程を繰り返すか否かを判定する再配置繰り返し判定工程と、前記再配置繰り返し判定工程において繰り返すと判定された場合、再配置された前記第三のドットパターンを前記第二のパターンとする工程と、を有し、前記ドット再配置位置決定工程は、前記搬送方向と前記第一方向とが一致するように前記画像データに対して適用された場合に、前記ドット数が第１の階調値範囲内である前記第二のドットパターンにおいて、ドットが配置されない画素が連続して並ぶ方向が前記第二方向にのみ形成されるドット配置となるようにドットの位置を決定する事を特徴とする。
【００２４】
請求項９に記載の発明は、請求項８に記載の閾値マトリクス生成方法であって、前記ドット再配置位置決定工程は、前記ドット数が前記第１の階調値範囲内とは異なる第２の階調値範囲内にある前記第二のドットパターンについて、ドットが配置されない画素が連続して並ぶ方向が前記第一方向及び前記第二方向にのみ形成されるようにドットの位置を決定することを特徴とする。
【００２５】
請求項１０に記載の発明は、請求項９に記載の閾値マトリクス生成方法であって、前記新ドットパターン生成工程は、前記ドット数が前記第１及び第２の階調値範囲内の前記第二のドットパターンについて、前記第一のドットパターンのドット数を減少させて前記第二のドットパターンを作成することを特徴とする。
【００２６】
請求項１１に記載の発明は、請求項９又は１０に記載の閾値マトリクス生成方法であって、前記ドット再配置位置決定工程は、前記ドット数が前記第１及び第２の階調値範囲内とは異なる第３の階調値範囲内である前記第二のドットパターンについて、ドットが配置される画素が連続して並ぶ方向が前記第一方向又は前記第二方向にのみ形成されるドット配置となるようにドットの位置を決定することを特徴とする。
【００２７】
請求項１２に記載の発明は、請求項１１に記載の閾値マトリクス生成方法であって、前記新ドットパターン生成工程は、前記ドット数が前記第３の階調値範囲内である前記第二のドットパターンについて、前記第一のドットパターンのドット数を増加させて前記第二のドットパターンを作成することを特徴とする。
【００２８】
請求項１３に記載の発明は、請求項８〜１２のいずれか一項に記載の閾値マトリクス生成方法であって、前記第１の階調値範囲は、量子化される画像データの高濃度領域に対応する階調範囲である事を特徴とする。
【００２９】
請求項１４に記載の発明は、請求項９又は１０に記載の閾値マトリクス生成方法であって、前記第２の階調値範囲は、量子化される画像データの中濃度領域に対応する階調範囲である事を特徴とする。
【００３０】
請求項１５に記載の発明は、請求項１１又は１２に記載の閾値マトリクス生成方法であって、前記第３の階調値範囲は、量子化される画像データの低濃度領域に対応する階調範囲である事を特徴とする。
【００３７】
なお、ここでいう「記録メディアの搬送方向に対し直交する方向に沿って記録メディアの画像形成領域の全幅に亘って配列されたインクを吐出する複数の吐出口」には、必ずしも複数の吐出口が当該直交する方向と平行に配列されている場合に限定されるものではなく、記録メディアの搬送方向と直交する方向に複数の吐出口を投影した場合に、当該吐出口が互いに重ならないように、例えば千鳥状に配列されているような場合も含むものである。
【発明の効果】
【００３８】
本発明によれば、ドットの位置ずれによる粒状感の悪化をより良好に低減させることができる。
【図面の簡単な説明】
【００３９】
【図１】本発明の一実施形態による量子化装置の構成を示すブロック図である。
【図２】閾値マトリクスの一部の一例を示す図である。
【図３】記録メディアに対して相対移動を行うプリントヘッドが少なくとも相対移動の方向に略直交する方向に複数の記録素子を有する画像形成装置のプリントヘッド付近の構成の一例を示す斜視図である。
【図４】プリントヘッドに設けられた記録素子の並びの一例を示す図である。
【図５】画像形成装置によるドットの形成の一例を示す図である。図５（Ａ）は、プリントヘッドＨ１が用紙に対してドットを形成した状態を示す図である。図５（Ｂ）は、同一のノズルによって形成された複数のドットの一部がそれぞれ引き合うように移動してドット同士が合一した状態を示す図である。図５（Ｃ）は、プリントヘッドＨ２が用紙に対してドットを形成した状態を示す図である。
【図６】閾値マトリクス生成装置の構成の一例を示すブロック図である。
【図７】ドットパターンと行列値との対応関係の一例を示す図である。
【図８】各階調値のドットパターンに応じた行列値の０／１の加算による閾値マトリクスの生成メカニズムの例を示す図である。
【図９】各階調値に対応した複数のドットパターンの模式図を示す図である。
【図１０】複数のドットパターンの生成処理における各ドットパターンの階調値とドットの追加又は削除との対応関係を示す説明図である。
【図１１】ドットを形成される画素がｘ方向又はｙ方向に沿って連続するドットパターンとその他のドットパターンとの比較例を示す図である。
【図１２】ドットを形成されない複数の画素がｙ方向に沿って連続するドットパターンによる画像形成の一例を示す。図１２（Ａ）は、ドットを形成されない複数の画素がｙ方向に沿って連続するドットパターンの一例を示す図である。図１２（Ｂ）は、図１２（Ａ）のドットパターンに基づいて相対的に上流に位置するプリントヘッドＨ１によるドット形成が行われた用紙の一例を示す図である。図１２（Ｃ）は、図１２（Ｂ）に示す用紙に対して相対的に下流に位置するプリントヘッドＨ２によるドット形成が行われたときの一例を示す図である。図１２（Ｄ）は、相対的に下流に位置するプリントヘッドＨ２により形成されたドットの一部が隣接するドットとそれぞれ引き合うように移動して楕円を形成した状態の一例を示す図である。
【図１３】ドットを形成されない複数の画素がｘ方向に沿って連続するドットパターンによる画像形成の一例を示す。図１３（Ａ）は、ドットを形成されない複数の画素がｘ方向に沿って連続するドットパターンの一例を示す図である。図１３（Ｂ）は、図１３（Ａ）のドットパターンに基づいて相対的に上流に位置するプリントヘッドＨ１によるドット形成が行われた用紙の一例を示す図である。図１３（Ｃ）は、図１３（Ｂ）に示す用紙に対して相対的に下流に位置するプリントヘッドＨ２によるドット形成が行われたときの一例を示す図である。図１３（Ｄ）は、相対的に下流に位置するプリントヘッドＨ２により形成されたドットの一部が隣接するドットとそれぞれ引き合うように移動して楕円を形成した状態の一例を示す図である。
【図１４】通常の誤差拡散処理により生成されたドットパターンに基づく閾値マトリクスを用いて量子化処理を行った場合の階調値と量子化画像との対応関係の一例を示す図である。
【図１５】階調値とノイズ指数比との対応関係の一例を示す図である。
【図１６】初期ドットパターンの生成処理の流れを示すフローチャートである。
【図１７】小区画によって区切られた閾値マトリクスの一例を示すイメージ図である。
【図１８】フィルタ処理及び小区画の平均値に基づくパターンの最適化処理の流れを示すサブフローである。
【図１９】ブルーノイズフィルタの周波数の一例を示すグラフである。
【図２０】グリーンノイズフィルタの周波数の一例を示すグラフである。
【図２１】ドット配置転換処理の流れを示すサブフローである。
【図２２】初期ドットパターンの生成処理によって生成された初期ドットパターンに基づく閾値マトリクスの生成処理の流れを示すフローチャートである。
【図２３】低濃度領域におけるドット成長処理の流れを示すサブフローである。
【図２４】低濃度領域におけるパターン最適化処理の流れを示すサブフローである。
【図２５】低濃度領域におけるドット配置転換処理の流れを示すサブフローである。
【図２６】中濃度領域におけるドット成長処理の流れを示すサブフローである。
【図２７】中濃度領域におけるパターン最適化処理の流れを示すサブフローである。
【図２８】中濃度領域におけるドット配置転換処理の流れを示すサブフローである。
【図２９】画素（ｘ，ｙ）と当該画素に隣接する４画素を示す模式図である。
【図３０】中濃度領域におけるドット成長処理により生成されるドットパターンの一例及び各ドットパターンの空間周波数を示す図である。
【図３１】中・高濃度領域におけるドットパターン作成処理の流れを示すサブフローである。
【図３２】高濃度領域におけるパターン最適化処理の流れを示すサブフローである。
【図３３】高濃度領域におけるドット配置転換処理の流れを示すサブフローである。
【図３４】中濃度領域におけるドット配置転換処理の流れを示すサブフローである。
【図３５】中・高濃度領域におけるドットパターン作成処理により生成されるドットパターンの一例及び各ドットパターンの空間周波数を示す図である。
【図３６】従来のStacking Constraint条件下での閾値マトリクス生成処理のイメージ図である。
【図３７】従来のStacking Constraint条件下での閾値マトリクス生成処理の流れを示すフローチャートである。
【図３８】隣接するドット同士が引き合うように移動することによって生じるドットの位置ずれの説明図である。図３８（Ａ）は、用紙Ｐに対して着弾した二の隣接するインクの一例を示す図である。図３８（Ｂ）は、二のインク同士が引き合うように移動した一例を示す図である。
【図３９】ドットの位置ずれが生じさせる粒状感の悪化についての説明図である。図３９（Ａ）は、想定されたドット配置の一例を示す図である。図３９（Ｂ）は、図３９（Ａ）に示す想定のドット配置となるよう用紙に対して打たれたドットが位置ずれを生じて各ドット間の隙間の一部を塗りつぶした状態の一例を示す図である。
【発明を実施するための形態】
【００４０】
以下、図を参照して本発明の実施の形態の例を詳細に説明する。
【００４１】
図１に、本発明の一実施形態による量子化装置２００を示す。
【００４２】
量子化装置２００は、取得部２０１、記憶部２０２、量子化処理部２０３、出力部２０４及び閾値マトリクス生成装置１を有する。
取得部２０１は、量子化処理を施す対象となる画像データを取得して量子化処理部２０３へ入力する。
記憶部２０２は、閾値マトリクスを記憶する。
【００４３】
図２に、閾値マトリクスの一部の一例を示す。
本実施形態の閾値マトリクスは、所定の画素領域（例えば256×256[画素]）に対応する各画素に閾値が設定されたデータである。各画素の閾値は、画像データを構成する画素領域のうち、当該所定の画素領域に対応する画素領域の各画素についてドット形成を行うか否かを判定するための閾値である。
【００４４】
量子化処理部２０３は、取得部２０１から入力された画像データと、記憶部２０２に記憶された閾値マトリクスと、に基づいて、画像データの量子化を行う。
具体的には、量子化処理部２０３は、取得部２０１から画像データが入力されると、記憶部２０２から閾値マトリクスを読み出す。次に、量子化処理部２０３は、画像データの画素領域のうち所定の画素領域（例えば256×256[画素]）の範囲の各画素の画素値と、閾値マトリクスに設定された各画素の閾値とをそれぞれ比較する。そして、量子化処理部２０３は、比較結果に基づいて当該所定の画素領域における各画素のドットの形成／非形成を決定することで量子化処理後の画像データ（量子化画像データ）を生成する。
本実施形態の量子化処理部２０３は、量子化処理前の画像データの画素値が閾値マトリクスに設定された閾値以上である画素についてドットを形成し、量子化処理前の画像データの画素値が閾値マトリクスに設定された閾値未満である画素についてドットを形成しない決定を行う。画像データの画素領域が所定の画素領域（例えば256×256[画素]）より大きな画素領域を有する場合、画像データの画像領域を当該画素領域単位で区切り、区切られた各画素領域に対して量子化を行う。
出力部２０４は、量子化処理部２０３により生成された量子化画像データを出力する。
【００４５】
本実施形態の量子化装置２００は、記録メディアに対して相対移動を行うプリントヘッドが少なくとも相対移動の方向に略直交する方向に複数の記録素子を有する画像形成装置が画像形成に用いる画像データを量子化するために用いられる量子化装置である。
【００４６】
図３に、記録メディアに対して相対移動を行うプリントヘッドが少なくとも相対移動の方向に略直交する方向に複数の記録素子を有する画像形成装置のプリントヘッド付近の構成の一例を示す。
図３に示す画像形成装置は、搬送ベルトＢによって所定の一方向（ｙ方向）に沿って搬送される記録メディア（例えば用紙Ｐ等）に対してドットを形成することで記録メディアに画像を形成する画像形成装置である。画像形成装置は、記録メディアに対してドットを形成する複数の記録素子（例えばノズルＮ等）を有するプリントヘッドＨを備える。
【００４７】
図４に、プリントヘッドに設けられた記録素子の並びの一例を示す。
各プリントヘッドＨ（例えばプリントヘッドＨ１、Ｈ２等）は、図４に示すように、所定の一方向（ｙ方向）に直交する他方向（ｘ方向）に沿って色材としてのインクを吐出する複数の吐出口であるノズルＮを有する。各プリントヘッドのノズルＮは、図４に示すように、隣接するプリントヘッドＨのノズルＮと所定の一方向（ｙ方向）に沿った同一線上（例えば図４に示す一点破線Ｎ１）に並ばないように設けられている。各プリントヘッドＨにそれぞれ設けられるノズルＮは、同一プリントヘッドに設けられて隣接するノズルＮによって形成されたドット同士が引き合わない間隔（図４に示す間隔Ｎ２）で設けられている。
【００４８】
図５（Ａ）〜（Ｃ）を用いて、画像形成装置によるドットの形成の一例を示す。
まず、図５（Ａ）に示すように、複数のプリントヘッドの内、用紙Pの搬送方向Ｖ１でみて上流側に位置するプリントヘッドＨ（図５に示すプリントヘッドＨ１）が用紙Ｐに対してドットを形成する。用紙Ｐに形成されたドットは、図５（Ｂ）に示すように、同一のノズルNによって形成された複数のドットがそれぞれ引き合うように移動してドット同士の合一を形成する。その後、用紙Ｐが搬送されると、図５（Ｃ）に示すように、用紙Ｐの搬送方向Ｖ１に対して相対的に下流に位置するプリントヘッドＨ（図５に示すプリントヘッドＨ２）が用紙Ｐに対してドットを形成する。
【００４９】
閾値マトリクス生成装置は、閾値マトリクスを生成する。生成された閾値マトリクスは、記憶部２０２に記憶される。
図６に、閾値マトリクス生成装置１の構成の一例を示す。
閾値マトリクス生成装置１は、ＣＰＵ１１、ＲＡＭ１２、ＲＯＭ１３、ストレージデバイス１４及びインタフェース１５を備え、これらの各構成はバス１６によって接続される。
【００５０】
ＣＰＵ１１は、ＲＯＭ１３やストレージデバイス１４に記憶されたプログラムと協働し、ＲＡＭ１２に展開されたプログラムやデータ等に従って閾値マトリクス生成装置１の動作制御を行う。
ＲＡＭ１２は、ＣＰＵ１１の処理によって展開されたデータや、当該処理によって一時的に生じたデータ等を格納する。
ＲＯＭ１３は、ＣＰＵ１１によって読み出されるプログラムやデータ等を記憶する。
【００５１】
ストレージデバイス１４は、ＣＰＵ１１によって読み出されるプログラムやデータ等を記憶する。ストレージデバイス１４は、プログラムやデータ等を書き換え可能な記憶装置である。ストレージデバイス１４は、例えばフラッシュメモリやハードディスクドライブ、その他の書き換え可能な記憶装置又はそれらの記憶装置の組合せ等によって構成される。
【００５２】
インタフェース１５は、閾値マトリクス生成装置１と外部の機器との間におけるデータ伝送を可能とするよう閾値マトリクス生成装置１と外部の機器とを接続する。本実施形態のインタフェース１５は、閾値マトリクス生成装置１と量子化装置２００の記憶部２０２とを接続する。閾値マトリクス生成装置１により生成された閾値マトリクスは、インタフェース１５を介して記憶部２０２へ転送され、記憶される。
インタフェース１５として、例えばＵＳＢ（Universal Serial Bus）やＩＥＥＥ３３９４等のシリアルバス接続を可能とするインタフェースを採用することができるが、インタフェース１５及びインタフェース１５を介したデータ伝送は、有線／無線を問わず、またそのプロトコルやその他の接続形式に関する条件（例えば規格等）を問わない。
【００５３】
閾値マトリクス生成装置１は、上述のようにＣＰＵ１１、ＲＡＭ１２、ＲＯＭ１３等を有するコンピュータであり、ソフトウェア処理により閾値マトリクスを生成する。本実施形態では、ＲＯＭ１３又はストレージデバイス１４が閾値マトリクス生成プログラム１７を記憶し、ＣＰＵ１１が閾値マトリクス生成プログラム１７を読み出して実行することにより閾値マトリクスの生成が行われる。なお、後述するローパスフィルタ等、閾値マトリクス生成プログラムの実行に伴い読み出される各種のデータはＲＯＭ１３又はストレージデバイス１４に記憶されている。
【００５４】
次に、閾値マトリクスの生成について説明する。
図７に、ドットパターンと行列値との対応関係の一例を示す。
図８に、各階調値のドットパターンに応じた行列値の０／１の加算による閾値マトリクスの生成メカニズムを例示する。
閾値マトリクスに設定された各画素の閾値は、階調値が異なる複数のドットパターンに応じた０／１の積算に基づいて決定されている。「階調値が異なる」とは、所定の画素領域（例えば256×256[画素]）を構成する全画素数においてドットが配置される画素の数（ドット数）が異なることを示す。言い換えれば、所定の画素領域（例えば256×256[画素]）に含まれるドット数は階調値に対応する。
【００５５】
積算にあたり、まず各階調値のドットパターンにおけるドットの有無を図７に示すように０（ドットなし）／１（ドットあり）で表すマトリクスデータ（例えば行列の設定値等）が生成される。当該行列の設定値は、所定の画素領域を構成する各画素のドットの有無を数値で示したマトリクスに対応する。ここで  図８に示すように、それぞれ異なる二の階調値に応じたドットパターンを示す０／１の行列の設定値を加算すると、当該二の行列の双方においてドットが配置される「１」の画素は、加算されることによって「２」になる。同様に、二の行列の一方のみにおいてドットが配置される画素は「１」になる。また、当該二の行列の双方においてドットが配置されない「０」の画素は、加算後も「０」である。このように、多くの階調値においてドットが配置される画素ほど、その閾値は積算によって相対的に大きくなり、逆に多くの階調値においてドットが配置されない画素ほど、その閾値は相対的に小さくなる。このように、閾値マトリクスに設定された各画素の閾値は、各階調値のドットパターンに応じた０／１の積算によって決定された行列の設定値に基づく。本実施形態では、各画素の閾値は、各階調値のドットパターンに応じた０／１の積算によって決定された行列の設定値を反転して得られる。
【００５６】
閾値マトリクスの生成に際し、ＣＰＵ１１は各階調値に対応した複数のドットパターン、即ち所定の画素領域を構成する全画素数に対するドット数がそれぞれ異なる複数のドットパターンに対応するマトリクスデータ（例えば行列の設定値等）を生成する。以下、各マトリクスデータに基づくドットパターンにおけるドットの有無を視覚化する目的で、ドットパターンを用いて説明を行う。
【００５７】
図９に、各階調値に対応した複数のドットパターンの模式図を示す。
本実施形態の閾値マトリクス生成装置１は、記録メディアに対して相対移動を行うプリントヘッドが少なくとも相対移動の方向に略直交する方向に色材であるインクを吐出する複数の吐出口を有する画像形成装置が画像形成に用いる画像データを量子化するために用いられる閾値マトリクスを生成する。図９に示す例の場合、図９に示すｙ方向が「プリントヘッドが記録メディアに対して相対移動を行う方向」に対応し、図９に示すｘ方向が「相対移動の方向に略直交する方向」に対応する。
本実施形態では、階調値ｇの最小値を０、最大値を１として設定しており、ＣＰＵ１１は０〜１の各階調値に対応するドットパターンを生成する。本実施形態において、階調値が最小（０）であるドットパターンは、ドットが全く配置されないパターンである。階調値が最大（１）であるドットパターンは、全ての画素についてドットが配置されるパターンである。
【００５８】
また、ＣＰＵ１１は、積層束縛（Stacking Constraint）条件下で各階調値のドットパターンを生成する。つまり、ＣＰＵ１１により生成された０を除く各階調値のドットパターンは、相対的に階調値の高い階調値に対応するドットパターンが相対的に階調値の低い階調値に対応するドットパターンで配置されたドットの位置に配置された全てのドットを含んでいる。
【００５９】
図１０に、複数のドットパターンの生成処理における各ドットパターンの階調値とドットの追加又は削除との対応関係を示す。
本実施形態では、０〜１の値をとる階調値ｇに、三つの所定値（ｇ１、ｇ２、ｇ３）を設定し、当該三つの所定値により区切られる階調値ｇの所定の範囲ごとに異なるドットパターンの生成方法を用いる。
【００６０】
ＣＰＵ１１は、各階調値に対応した複数のドットパターンを生成するに際し、階調値０のドットパターンに対してドットを順次追加することにより０〜ｇ２のドットパターンを生成する。一方、ＣＰＵ１１は、各階調値に対応した複数のドットパターンを生成するに際し、階調値１のドットパターンからドットを順次削除ことによりｇ２〜１のドットパターンを生成する。
【００６１】
複数のドットパターンのうち階調値ｇが量子化される画像データの低濃度領域に対応する階調範囲であるｇ１≦ｇ＜ｇ２の範囲内であるドットパターン（例えば図９に示すドットパターンＤ１等）は、ドットを配置される複数の画素がｘ方向又はｙ方向に沿って連続する。ＣＰＵ１１は、ドット数が階調値ｇがｇ１≦ｇ＜ｇ２の範囲内であるドットパターンについて、ドットが配置される画素が連続して並ぶ方向が記録メディアの搬送方向（ｙ方向）又は当該搬送方向に直交する方向（ｘ方向）にのみ配置されるドット配置であるドットパターンを生成する。
図１１に、ドットを配置される画素がｘ方向又はｙ方向に沿って連続するドットパターンとその他のドットパターンとの比較例を示す。図１１に示す「ドットパターン」はマトリクスの０（ドットなし）／１（ドットあり）を可視化した一例を示し、「ドット径反映」は、「ドットパターン」のドットあり画素に対して画像形成装置により形成されるドットの径を反映させた一例を示し、「着弾ズレ及び液滴合一反映」は「ドットパターン」に基づく画像を形成した場合に形成されたドットの一部が隣接するドットとそれぞれ引き合うように移動した結果の一例を示す。言い換えれば、「ドット径反映」は、画像形成装置により形成されたドットが全く他の隣接するドットと引き合わずに移動しなかった場合を示す「理想的なドット配置」の一例を示し、「着弾ズレ及び液滴合一反映」はドットパターンに基づく画像形成を行った場合の「実際のドット配置」の一例を示す。
【００６２】
図１１に示すように、通常の誤差拡散によるドットパターンや、ｘ方向及びｙ方向に対してドットを斜めに連続させて配置したドットパターンは、「着弾ズレ及び液滴合一反映」のパターン、即ち「実際のドット配置」においてｙ方向に沿ったスジを生じる。これは、ヘッドから射出される液滴の射出角度誤差による着弾ズレや隣接するドットとそれぞれ引き合うように移動した結果生じる従来技術の問題点によるものである。
一方、ドットを配置される画素が連続して並ぶ方向がｘ方向又はｙ方向にのみ配置されるドット配置のドットパターンの場合、「着弾ズレ及び液滴合一反映」のパターンにおいてもスジを生じない。つまり、ドットを配置される画素がｘ方向又はｙ方向に沿って連続するドットパターンを用いることによって、ヘッドから射出される液滴の射出角度誤差による着弾ズレやドットの一部が隣接するドットとそれぞれ引き合うように移動することによるスジの発生を低減させることができる。
【００６３】
複数のドットパターンのうち階調値ｇが、量子化される画像データの高濃度領域に対応する階調範囲であるｇ３＜ｇ＜１の範囲内であるドットパターン（例えば図９に示すドットパターンＤ２等）は、ドットが配置されない画素が連続して並ぶ方向が前記搬送方向に直交する方向（ｘ方向）にのみ配置されるドット配置である。ＣＰＵ１１は、階調値ｇがｇ３＜ｇ＜１の範囲内であるドットパターンについて、ドットが配置されない画素が連続して並ぶ方向が前記搬送方向に直交する方向（ｘ方向）にのみ配置されるドット配置のドットパターンを生成する。
【００６４】
図１２（Ａ）〜（Ｄ）及び図１３（Ａ）〜（Ｄ）を用いて、ドットを配置されない複数の画素がｘ方向に沿って連続するドットパターンによる画像形成時の効果を示す。
【００６５】
例えば、図１２（Ａ）に示すような、ドットを配置されない複数の画素がｙ方向に沿って連続することで隙間Ｅ１等の隙間が設けられているドットパターンによる画像形成を行う場合、図１２（Ｂ）、図１２（Ｃ）に示すように、図５（Ａ）〜（Ｃ）を用いた説明の記載と同様に用紙Ｐの搬送方向Ｖ１に対して相対的に上流に位置するプリントヘッドＨ１から順にドットの形成が行われる。まず、図１２（Ｂ）に示す相対的に上流に位置するプリントヘッドＨ１によるドット形成の後そのドット同士の合一が形成される。その上に、図１２（Ｃ）に示すように、相対的に下流に位置するプリントヘッドＨ２により形成され、図１２（Ｄ）に示すようにプリントヘッドH２で形成したドットもそのほかのドットとそれぞれ引き合うように移動してドットの合一を形成する。このとき、図１２（Ｄ）に示すように、ドットパターンにおいて設けられていた隙間Ｅ１等の隙間は、画像形成時にはドットの位置ずれを生じることによって塗りつぶされてしまい、隙間として視認が不可能又は著しく困難となる。
【００６６】
一方、図１３（Ａ）に示すような、ドットを配置されない複数の画素がｘ方向に沿って連続することで隙間Ｅ２等の隙間が設けられているドットパターンによる画像形成を行う場合、図１３（Ｂ）、図１３（Ｃ）に示すように、図５（Ａ）〜（Ｃ）を用いた説明の記載と同様に用紙Ｐの搬送方向Ｖ１に対して相対的に上流に位置するプリントヘッドＨ１から順にドットの形成が行われる。まず、図１３（Ｂ）に示す相対的に上流に位置するプリントヘッドＨ１によるドット形成の後そのドット同士の合一が形成される。その上に、図１３（Ｃ）に示すように、相対的に下流に位置するプリントヘッドＨ２により形成され、図１３（Ｄ）に示すようにプリントヘッドH２で形成したドットもそのほかのドットとそれぞれ引き合うように移動してドットの合一を形成する。このとき、図１３（Ｄ）に示すように、用紙Ｐに形成された画像には、ｘ方向に沿って連続するドットを形成されない複数の画素に対応する隙間（例えば、ドットパターンの隙間Ｅ２に対応する隙間Ｅ３等）が生じ、隙間を明確に視認可能となる。このように、ドットを形成されない複数の画素がｘ方向に沿って連続するドットパターンは、画像形成時に当該ドットを形成されない複数の画素に対応する良好な隙間を生じさせることができる。
【００６７】
また、階調値ｇが、量子化される画像データの中濃度領域に対応する階調範囲であるｇ２≦ｇ≦ｇ３の範囲内である複数のドットパターンの中にはドットが配置されない画素が連続して並ぶ方向が前記搬送方向（ｙ方向）及び前記搬送方向とは直交する方向（ｘ方向）にのみ配置されるドット配置のドットパターンがある（例えば図９に示すドットパターンＤ３等）。ＣＰＵ１１は、ドット数に対応する階調値ｇがｇ２≦ｇ≦ｇ３の範囲内であるドットパターンについて、すでに作成した前の階調パターン（この場合現在処理中のドットパターンのドット率よりも高いドット率の階調パターン）においてドットを配置しない位置を中心に、ドットが配置されない画素が連続して並ぶ方向がｙ方向及びｘ方向にのみ配置されるドット配置のドットパターンを生成する。
ＣＰＵ１１は、積層束縛（Stacking Constraint）条件下で上記のような各階調値のドットパターンを生成するので、各階調値のドットパターンは、あるドットパターンよりも階調値の低いドットパターン、即ち、あるドットパターンの全画素数に対するドット数よりも、全画素数に対するドット数が少ないドットパターンにおいて配置されている全てのドットと同じ位置に配置されたドットを必ず含むようになる。ここで、各階調値のドットパターンがそのドットパターンよりも階調値の低いドットパターンにおいて配置されている全てのドットと同じ位置に配置されたドットを必ず含むという条件と、ドットを配置されない複数の画素をｘ方向に沿って連続させるという条件と、を共に満たすようにドットを配置されない画素を決定する処理において、ｘ方向に沿って連続するドットを配置されない複数の画素の配置が不可能又は著しく制限されることがある。このような条件下でｘ方向に沿って連続するドットを配置されない複数の画素を含むパターンを無理に生成すると、ドットパターンにおけるドットの分散が損なわれてしまうことがある。そこで、本実施形態では、階調値がｇ２≦ｇ≦ｇ３の範囲内については、ドットを配置されない複数の画素を、ｘ方向のみに限らず、ｙ方向のみに沿って連続させることも許可した条件下でドットパターンを生成する。ただし、ドット配置されない画素が単独で生じないように、すでに作成した前の階調パターンで発生した、ドットが配置されない画素に隣接させて新たにドットが配置されない画素を選択する。ドットを配置されない複数の連続して並ぶ画素の方向がｘ方向及びｙ方向にのみ配置される配置を許容することにより、単一の画素についてドットが形成されない場合に比して、ドットの一部が隣接するドットとそれぞれ引き合うように移動することによってドットが形成されない画素に対応する隙間が潰れてしまう可能性を大幅に低減させることができ、画像形成時に当該ドットを形成されない複数の画素に対応する良好な隙間を生じさせることができる。
【００６８】
量子化画像のドットパターンは、閾値マトリクスの生成に用いられるドットパターンに基づく。よって、閾値マトリクスの生成に用いるドットパターンを、ドットを配置される画素がｘ方向又はｙ方向に沿って連続するドットパターンとすることにより、ドットの一部が隣接するドットとそれぞれ引き合うように移動することによるスジの発生を低減させることができる。また、閾値マトリクスの生成に用いるドットパターンを、ドットを配置されない複数の画素がｘ方向またはｘ方向もしくはｙ方向に沿って連続するドットパターンとすることにより、画像形成時に当該ドットを形成されない複数の画素に対応する良好な隙間を生じさせることができる。
【００６９】
なお、階調値ｇが０〜ｇ１の範囲内に対応するドットパターンは、従来と同様の積層束縛（Stacking Constraint）条件下でのドットパターンの生成処理により生成される。
【００７０】
三つの所定値（ｇ１、ｇ２、ｇ３）は、予め決定されている。
図１４及び図１５を用いて、ｇ１の決定方法の一例を示す。  図１４に、通常の誤差拡散処理により生成されたドットパターンに基づく閾値マトリクスを用いて量子化処理を行った場合の階調値ｇと量子化画像との対応関係の一例を示す。
図１５に、階調値ｇとノイズ指数比との対応関係の一例を示す。
例えば、図１４に示すように、通常の誤差拡散処理により生成されたドットパターンに基づく閾値マトリクスを用いた量子化処理では、階調値が大きくなるほどスジが見えやすくなる傾向がある。このような、スジが見えやすくなる傾向を定量的に評価する方法の一つとして各階調値に対応する量子化画像のノイズ指数比を算出する方法がある。ノイズ指数を算出する方法として、本実施形態では、量子化した各階調値の画像に２次元高速フーリエ変換（Fast Fourier Transform：ＦＦＴ）を適用し、さらに所定の視覚特性フィルタを適用したものに対して、互いに直交する所定の二方向（例えば図１４に示すｘ方向及びｙ方向に対応する二方向等）の成分の周波数成分の積算値を当該所定の二方向のノイズ指数として算出し、当該二方向のノイズ指数の比をノイズ指数比として算出している。
本実施形態において、ｇ１は上記のノイズ指数比に基づいて決定されている。具体的には、スジを視覚的に認識するノイズ指数比に達しない最大の階調値をｇ１としている。図１５に示す例では、スジを視覚的に認識するノイズ指数比の値を１±０．２としている。そして、図１５に示す例では、階調値が０．１０を超えるとノイズ指数比が１．２を上回っている。このことから、本実施形態ではｇ１＝０．１を採用している。
なお、1200[dpi]以上の場合はこの基準のみでも良いが、低解像度の画像形成装置の場合は、この評価値に加えて周波数の絶対値を基準としたノイズ評価を加えると良い。望ましくは、得られるドットパターンのPrincipal  Frequencyが20[cycle/mm]以上となることが好ましい。Principal  Frequencyがこの程度まで高周波になっていれば視覚的にノイズを感じない程度となる。Principal Frequencyとはある２値（ドットを形成するか否か）のドットパターンにおいて、ドットを形成する、もしくは形成しないのどちらか数が少ない方に注目したときの２次元空間周波数分布を算出し、その空間周波数分布（２次元パワースペクトル分布）を半径方向に平均化し、得られたスペクトル成分のピークに対応する周波数値をさす。
【００７１】
また、ｇ２は０．５より大きく１に近ければ近いほど良い。ｇ２以下のドットパターンはドットをｘ方向、y方向につながるように設計されているが、これは着弾ズレを考慮したものである。したがってｇ２以下のドットパターンを用いて画像のほとんどの階調値を表現するほうが好ましい。また、１に近いほうが良い理由は、階調値の繋ぎ部が目立たないようにするためである。ある階調値以上になればわずかなパターン違和感を無視できる。パターンの違和感を無視できる階調値は解像度から決まる最小ドット間距離（画素の１辺）とドット径の関係から求められる。本実施形態は、最小ドット間距離17.６[μm]（1440×1440[dpi]）で、ドット径が35[μｍ]を想定している。この場合であれば、上記階調値ｇは０．６５以上を指す。
また、ｇ２とｇ３の値は近い値を設定する。なぜならば、ｇ２とｇ３の間の領域（中濃度領域）はあくまで、高濃度領域と低濃度領域のつなぎでしかないためである。ただし、ｇ２とｇ３があまり近すぎるとパターンの不連続が著しく顕在化する。本実施形態ではｇ３＝ｇ２+0.1を目安として作成をした。さらにｇ３は０．９以下が好ましい。ｇ＝０．９のとき、ｘ方向に２画素ドットを配置しない画素を均等に分散させたパターンの空間周波数におけるPrincipal  Frequencyは略0.2[cycle/pixel]で1440×1440[dpi]の解像度であれば略57[cycle/mm]に相当し、30[cm]観察距離であれば人間の目にはほとんど感知できない程度の周波数となる。こうすることによって、やはりｇ３を境としたパターンの切り替わりを目立たなくすることができる。さらに、階調値がｇ２、ｇ３であるそれぞれのドットパターンは次のようなPrincipal Frequencyの関係が成り立つ。
階調値がｇ２であるドットパターンのPrincipal Frequencyよりも階調値ｇ３であるドットパターンのPrincipal  Frequencyが高い場合であっても、閾値マトリクス生成処理におけるドットパターン成長処理の繋ぎ目を挟んだドットパターン間で階調の不連続を生じることがある。具体的には、階調値がｇ２付近のドットパターンで擬似輪郭を生じることがある。このような階調の不連続を低減させるため、本実施形態では、階調値が１のドットパターンから階調値がｇ２のドットパターンまでの各階調値のドットパターンにおいて、それぞれのPrincipal Frequencyが、階調値ｇ２のドットパターンにおけるPrincipal Frequencyを超えないようにドットパターンを作成していくほうが好ましい。
【００７２】
次に、閾値マトリクスの生成処理の流れについて説明する。
閾値マトリクスの生成は、初期ドットパターンの生成処理と、当該初期ドットパターンの生成処理によって生成された初期ドットパターンに基づく閾値マトリクスの生成処理とを含む。
【００７３】
まず、初期ドットパターンの生成処理について、図１６のフローチャートを用いて説明する。
まず、ＣＰＵ１１は閾値マトリクスのサイズを決定する（ステップＳ１）。本実施形態では、直交する二方向（ｘ方向及びｙ方向）について、ｘ方向に256画素、ｙ方向に256画素を並べた方形状のマトリクスサイズである256×256[画素]を、決定された閾値マトリクスのサイズとして用いる。ｘ方向は記録素子配列方向に対応し、ｙ方向は搬送方向に対応する。閾値マトリクスのサイズは、256×256[画素]に限らず、任意のM×N[画素] （M、Nは自然数）を設定することができる。M、N は、64以上であることが望ましい。ＭとＮは同一の自然数であってもよいし、異なる自然数であってもよい。
【００７４】
次に、ＣＰＵ１１は小区画のサイズを決定する（ステップＳ２）。本実施形態では、閾値マトリクスのマトリクスサイズである256×256[画素]を、64×64[画素]の小区画に区切る。
図１７に、小区画によって区切られた閾値マトリクスの一例をイメージ図で示す。図１７に示すように、256×256[画素]の閾値マトリクスは、16個の小区画（64×64[画素]）に区切られる。小区画のサイズは、64×64[画素] に限らず、閾値マトリクスのサイズであるM×N[画素]より小さい任意のサイズを設定することができる。
【００７５】
次に、ＣＰＵ１１は、閾値マトリクス内においてドット配置を行う画素を選択決定する。本実施形態では、ドット配置を行う画素として選択決定された画素の、閾値マトリクス内の全画素に対する割合を階調値ｇで示す。そして、閾値マトリクス内の全画素がドット配置を行う画素として選択決定される場合を階調値ｇ＝１、閾値マトリクス内のいずれの画素もドット配置を行う画素として選択決定されない場合を階調値ｇ＝０とする。例えば、階調値ｇ＝０．５の場合、閾値マトリクス内の全画素のうち半分の画素がドット配置を行う画素として選択決定される。
本実施形態では８ビットで階調値ｇを取り扱った場合を例示する。例えば、階調値ｇ＝０．５は、127/255である。同様にして、たとえば階調値ｇを１６ビットで取り扱うことができる。この場合、ｇ＝０．５は32767/65535となる。
本実施形態では、初期ドットパターンの階調値ｇを1/255としているが、初期ドットパターンの階調値ｇは任意に設定することができる。
【００７６】
そして、ＣＰＵ１１は、ドット配置を行う画素として選択決定された画素を１、ドット配置を行う画素として選択決定されなかった画素を０として表すマトリクスパターンｐ（ｘ，ｙ，ｇ）を生成する（ステップＳ３）。ｐ（ｘ，ｙ，ｇ）は、階調値ｇのマトリクスパターンｐを示す行列であり、ｘはｘ方向の座標、ｙはｙ方向の座標を示す。
【００７７】
次に、ＣＰＵ１１は、行列ＢＡＮｉｎｉｔ（ｘ，ｙ）の初期値を全て０に設定する（ステップＳ４）。行列ＢＡＮｉｎｉｔ（ｘ，ｙ）の値は、交換禁止行列ＢＡＮ（ｘ，ｙ）の初期値として用いるものである。交換禁止行列ＢＡＮ（ｘ，ｙ）は、後述するドット配置転換処理において用いる。
【００７８】
次に、ＣＰＵ１１はフィルタ処理及び小区画の平均値に基づくパターンの最適化処理を行う（ステップＳ５）。
フィルタ処理及び小区画の平均値に基づくパターンの最適化処理について、図１８のサブフローを用いて説明する。
【００７９】
まず、ＣＰＵ１１は変数ｎを初期値０で設定する（ステップＳ１１）。
次に、ＣＰＵ１１は、ドットパターンｐ（ｘ，ｙ，ｇ）に対してフーリエ変換を適用した空間周波数パターンＰ（ｕ，ｖ，ｇ）を算出する（ステップＳ１２）。ｕ，ｖはそれぞれｘ方向、ｙ方向の周波数空間を示す。
【００８０】
次に、ＣＰＵ１１は、パターンＰ（ｕ，ｖ，ｇ）に対してフィルタ処理を施したパターンＰ’（ｕ，ｖ，ｇ）を算出する（ステップＳ１３）。ステップＳ１３においてフィルタ処理に用いられるフィルタは例えばブルーノイズを得るためのフィルタ（以下ブルーノイズフィルタ）やグリーンノイズを得るためのフィルタ（以下グリーンノイズフィルタ）等のローパスフィルタがある。ブルーノイズフィルタやグリーンノイズフィルタは、少なくとも低周波成分を通過させる周波数フィルタである。
図１９にブルーノイズフィルタの一例を、図２０にグリーンノイズフィルタの一例を示す。
ブルーノイズフィルタやグリーンノイズフィルタ等のローパスフィルタは、方向に依存しない等方フィルタとして適用される。図１９、図２０において、半径方向の周波数の単位を[cycle/pixel]としている。 
【００８１】
次に、ＣＰＵ１１は、空間周波数パターンＰ’（ｕ，ｖ，ｇ）に対して逆フーリエ変換を適用して実空間パターンｐ’（ｘ，ｙ，ｇ）を算出する（ステップＳ１４）。実空間パターンｐ’（ｘ，ｙ，ｇ）はドットパターンｐ（ｘ，ｙ，ｇ）のような０と１のみで記述される２値データではなく０と１の間の中間の値を含む連続的な値の分布となる。
【００８２】
次に、ＣＰＵ１１は、下記の式（１）により、階調値ｇからのズレを示す誤差行列ＥＲＲ（ｘ，ｙ，ｇ）を算出する（ステップＳ１５）。
【数１】
0005672839.tif 000002
誤差行列ＥＲＲ（ｘ，ｙ，ｇ）は、パターンｐ’（ｘ，ｙ，ｇ）と階調値ｇのドットパターンとの誤差に基づくドットパターン評価値として機能する。誤差行列ＥＲＲ（ｘ，ｙ，ｇ）の行列に含まれる各値は、閾値マトリクスを生成するためのドットパターンであるパターンＰ’（ｕ，ｖ，ｇ）の各画素位置に対応する。つまり、ＣＰＵ１１は、誤差行列ＥＲＲ（ｘ，ｙ，ｇ）を閾値マトリクス内の各位置に対応させて算出する。
【００８３】
次に、ＣＰＵ１１は、下記の式（２）により、評価値ＭＳＥ（ｎ）（Mean Square Error）を算出する（ステップＳ１６）。
【数２】
0005672839.tif 000003
ＭＳＥ（ｎ）は、パターンｐ’（ｘ，ｙ，ｇ）のパターン偏差値であり、ドット分散性評価値として機能する。
【００８４】
次に、ＣＰＵ１１は、ｎが０でないか否かを判定する（ステップＳ１７）。ｎが０でない場合（ステップＳ１７：ＹＥＳ）、ＣＰＵ１１はＭＳＥ（ｎ）がＭＳＥ（ｎ−１）よりも小さいか否かを判定する（ステップＳ１８）。
【００８５】
ステップＳ１７においてｎが０である場合（ステップＳ１７：ＮＯ）又はステップＳ１８においてＭＳＥ（ｎ）がＭＳＥ（ｎ−１）よりも小さい場合（ステップＳ１８：ＹＥＳ）、ＣＰＵ１１はドット配置転換処理を行う（ステップＳ１９）。
ドット配置転換処理について、図２１のサブフローを用いて説明する。
【００８６】
まず、ＣＰＵ１１は、交換画素数を管理するための変数SWAPNUMを所定の初期値で設定する（ステップＳ３１）。所定の初期値は、１以上の整数である。
次に、ＣＰＵ１１は交換禁止行列ＢＡＮ（ｘ，ｙ）を設定し、その値としてＢＡＮｉｎｉｔ（ｘ，ｙ）の値をコピーする（ステップＳ３２）。
【００８７】
次に、ＣＰＵ１１は、変数SWAPNUMの値が０を超えるか否か判定する（ステップＳ３３）。変数SWAPNUMの値が０を超える場合（ステップＳ３３：ＹＥＳ）、ＣＰＵ１１は、新たにドットを配置する位置及びドットを削除する位置を決定する処理を行う。
【００８８】
具体的には、ＣＰＵ１１は、ｐ（ｘ，ｙ，ｇ）＝０でＢＡＮ（ｘ，ｙ）＝０を満たし、かつ、その中でＥＲＲ（ｘ，ｙ，ｇ）が最小となる画素の座標（ｘ１，ｙ１）と、ｐ（ｘ，ｙ，ｇ）＝１でＢＡＮ（ｘ，ｙ）＝０を満たし、かつ、その中でＥＲＲ（ｘ，ｙ，ｇ）が最大となる画素の座標（ｘ２，ｙ２）とを検出する（ステップＳ３４）。
【００８９】
ここで、ｐ（ｘ，ｙ，ｇ）＝０であるということは、その画素ではドットが配置されないことを示す。対して、ｐ（ｘ，ｙ，ｇ）＝１であるということは、その画素ではドットが配置されることを示す。
また、ＢＡＮ（ｘ，ｙ）＝０を満たすということは、その画素はドットの再配置を行うことが許可されていることを示す。対して、ＢＡＮ（ｘ，ｙ）＝１の場合、その画素はドットの再配置を行うことが許可されていないことを示す。
また、ＥＲＲ（ｘ，ｙ，ｇ）が最小であるということは、その画素を含む周辺位置にドットが配置されない隙間（void）があることを示す。対して、ＥＲＲ（ｘ，ｙ，ｇ）が最大であるということは、その画素を含む周辺位置にドットの集合（Cluster）があることを示す。
【００９０】
つまり、ｐ（ｘ，ｙ，ｇ）＝０でＢＡＮ（ｘ，ｙ）＝０を満たし、かつ、その中でＥＲＲ（ｘ，ｙ，ｇ）が最小となる画素の座標（ｘ１，ｙ１）であるということは、その画素でドットが配置されず、その画素についてドットの再配置を行うことが許可されており、かつ、その画素を含む周辺位置にドットが配置されない隙間（void）があることを示す。
一方、ｐ（ｘ，ｙ，ｇ）＝１でＢＡＮ（ｘ，ｙ）＝０を満たし、かつ、その中でＥＲＲ（ｘ，ｙ，ｇ）が最大となる画素の座標（ｘ２，ｙ２）であるということは、その画素でドットが配置され、その画素についてドットの再配置を行うことが許可されており、かつ、その画素を含む周辺位置にドットの集合（Cluster）があることを示す。
【００９１】
特定された画素（ｘ１，ｙ１）及び画素（ｘ２，ｙ２）に対して、ＣＰＵ１１は、ｐ（ｘ１，ｙ１，ｇ）＝１、ｐ（ｘ２，ｙ２，ｇ）＝０とすることでドットの配置交換を行う（ステップＳ３５）。つまり、再配置前にその画素でドットが配置されず、その画素についてドットの再配置を行うことが許可されており、かつ、その画素を含む周辺位置にドットが配置されない隙間（void）があった画素（ｘ１，ｙ１）にドットが配置され、再配置前にその画素でドットが配置され、その画素についてドットの再配置を行うことが許可されており、かつ、その画素を含む周辺位置にドットの集合（Cluster）があった画素（ｘ２，ｙ２）からドットが削除される。
【００９２】
次に、ＣＰＵ１１は、ドットの再配置が行われた画素について、さらなる再配置を行うことを禁止する処理を行う。具体的には、ＣＰＵ１１は、ＢＡＮ（ｘ１，ｙ１）及びＢＡＮ（ｘ２，ｙ２）の値を１とする（ステップＳ３６）。
【００９３】
次に、ＣＰＵ１１は、変数SWAPNUMの値から１を減算する（ステップＳ３７）。ステップＳ３７の処理後、ステップＳ３３の判定に戻る。
ステップＳ３３において、変数SWAPNUMの値が０を超えない場合（ステップＳ３３：ＮＯ）、ＣＰＵ１１は図１８のステップＳ１９及び図２１のサブフローにより示すドット配置転換処理を終了する。
【００９４】
つまり、ドット配置転換処理において、ＣＰＵ１１は、変数SWAPNUMの初期値として設定された回数だけ、その画素でドットが配置されず、その画素についてドットの再配置を行うことが許可されており、かつ、その画素を含む周辺位置にドットが配置されない隙間（void）がある画素と、その画素でドットが配置され、その画素についてドットの再配置を行うことが許可されており、かつ、その画素を含む周辺位置にドットの集合（Cluster）がある画素との間でドットの配置交換を行う。配置交換を行うドットの決定においては、各小区画のドット数の過不足分に基づく補正が行われる。そして、再配置が行われたドットについては更なる再配置が禁止される。
【００９５】
図２１のサブフロー及び図１８のサブフローのステップＳ１９に示すドット配置転換処理の終了後、ＣＰＵ１１は変数ｎの値に１を加算する（ステップＳ２０）。その後、ステップＳ１３の処理に戻る。
【００９６】
ステップＳ２０の処理後にステップＳ１２に戻ることで、ドット配置転換処理後のマトリクスパターンに対して、ステップＳ１２のフーリエ変換の適用、ステップＳ１３のフィルタ処理、ステップＳ１４の逆フーリエ変換の適用、ステップＳ１５の誤差行列の算出、ステップＳ１６のＭＳＥの算出が行われる。そして、一度以上ドット配置転換処理が行われると、変数ｎは１以上となるので、ステップＳ１７の判定においてｎが０でない場合に該当し（ステップＳ１７：ＹＥＳ）、ステップＳ１８の判定、即ちＭＳＥ（ｎ）がＭＳＥ（ｎ−１）よりも小さいか否かの判定が行われる。なお、ｎの初期値は０なので、最低一度はドット配置転換処理が行われる。
【００９７】
ステップＳ１８において、ＭＳＥ（ｎ）がＭＳＥ（ｎ−１）以上となるまで、ステップＳ１３からの処理が繰り返される（ステップＳ１８：ＹＥＳ）。
ステップＳ１８において、ＭＳＥ（ｎ）がＭＳＥ（ｎ−１）以上である場合（ステップＳ１８：ＮＯ）、ＣＰＵ１１は図１６のステップＳ５及び図１８のサブフローにより示すフィルタ処理及び小区画の平均値に基づくパターンの最適化処理を終了し、図１６に示す初期ドットパターンの作成処理を終了する。初期ドットパターンは、ｐｉｎｉｔ（ｘ，ｙ）として生成され、ストレージデバイス１４に記憶される。
【００９８】
次に、初期ドットパターンの生成処理によって生成された初期ドットパターンに基づく閾値マトリクスの生成処理について説明する。
閾値マトリクスの生成処理は、積層束縛（Stacking Constraint）条件下で行う。具体的には、初期ドットパターンの階調値ｇに基づいて、変化させる階調値変化量δｇに応じたドットの増減を施す。このとき、階調値変化量δｇによって階調値が大きくなる場合、元の初期ドットパターンにあるドット配置については変更しない。即ち、ドットを増やす場合、元の初期ドットパターンを維持し、かつ、追加のドットを付加する。また、階調値変化量δｇによって階調値が小さくなる場合、元の初期ドットパターンにあるドットが配置されない画素の配置については変更しない。即ち、ドットを減らす場合、元の初期ドットパターンにおいてドットが配置されない画素についてはドットが配置されないままとし、ドットを削除してドットが配置されない画素を増やす。このようにして、閾値マトリクス生成装置１は、各々のドット率に対応した256×256[画素]で構成された各々のドットパターンを生成する。
【００９９】
また、初期ドットパターンの階調値ｇに基づいて、変化させる階調値変化量δｇに応じたドットの増減を施した階調値ｇ＋δｇのドットパターンを生成した後、階調値ｇ＋δｇのドットパターンに基づいてさらに階調値変化量δｇに応じたドットの増減を施す場合には、その直前に生成された階調値ｇ+δｇのドットパターンを初期ドットパターンとして扱う。
本実施形態では、階調値変化量δｇを1/255としているが、階調値変化量δｇは任意に設定することができる。
閾値マトリクスは、行列Ｔｈ（ｘ，ｙ）として生成され、ストレージデバイス１４に記憶される。
【０１００】
以下、初期ドットパターンの生成処理によって生成された初期ドットパターンに基づく閾値マトリクスの生成処理について、図２２のフローチャートを用いて説明する。
【０１０１】
まず、ＣＰＵ１１は、初期ドットパターンｐｉｎｉｔ（ｘ，ｙ）を読み出す（ステップＳ４１）。本実施形態における初期ドットパターンｐｉｎｉｔ（ｘ，ｙ）の階調値ｇｉｎｉｔは1/255である。ここで、以後用いる階調値ｇの初期値をｇｉｎｉｔとする。
本実施形態では、初期ドットパターンｐｉｎｉｔ（ｘ，ｙ）の階調値ｇｉｎｉｔは1/255であるが、０〜１のどの値であってもよい。初期ドットパターンの生成処理において、０〜１の間の任意の階調値ｇの初期ドットパターンを生成し、閾値マトリクスの生成処理に用いることができる。
【０１０２】
次に、ＣＰＵ１１は閾値マトリクスを生成するためのマトリクスパターンを示す行列ｑ（ｘ，ｙ，ｇ）を設定し、ｑ（ｘ，ｙ，ｇ）に初期ドットパターンｐｉｎｉｔ（ｘ，ｙ）の値をコピーする（ステップＳ４２）。
【０１０３】
次に、ＣＰＵ１１は閾値マトリクスを示す行列Ｔｈ（ｘ，ｙ）及び交換禁止行列ｂａｎの初期値として設定される行列ｂａｎｉｎｉｔ（ｘ，ｙ）を設定し（ステップＳ４３）、ｂａｎｉｎｉｔ（ｘ，ｙ）にｑ（ｘ，ｙ，ｇ）の値をコピーする（ステップＳ４４）。
【０１０４】
次に、ＣＰＵ１１は、極低濃度領域におけるドット成長処理を行う（ステップＳ４５）。
ここで、極低濃度領域におけるドット成長処理について、図２３のサブフローを用いて説明する。
ＣＰＵ１１は、階調値ｇに対して変化させる階調値変化量δｇを加算し、変化させる階調値変化量δｇに応じた数のドットをｂａｎｉｎｉｔ（ｘ，ｙ）＝０に対応するｑ（ｘ，ｙ，ｇ）に対して追加する（ステップＳ６１）。ドット追加後のドットパターンは新たなｑ（ｘ，ｙ，ｇ）としてＲＡＭ１２又はストレージデバイス１４に格納される。ドットの追加はｑ（ｘ、ｙ、ｇ）においてドットが配置されていない座標の中から所定の乱数処理に基づいて行われる。
【０１０５】
次に、ＣＰＵ１１は、極低濃度領域におけるパターン最適化処理を行う（ステップＳ６２）。
ここで、極低濃度領域におけるパターン最適化処理について、図２４のサブフローを用いて説明する。
ＣＰＵ１１は変数ｎを初期値０で設定する（ステップＳ７１）。
次に、ＣＰＵ１１は、ドットパターンｑ（ｘ，ｙ，ｇ）に対してフーリエ変換を適用した空間周波数パターンＱ（ｕ，ｖ，ｇ）を算出する（ステップＳ７２）。ｕ，ｖはそれぞれｘ方向、ｙ方向の周波数空間を示す。
【０１０６】
次に、ＣＰＵ１１は、パターンＱ（ｕ，ｖ，ｇ）に対してフィルタ処理を施したパターンＱ’（ｕ，ｖ，ｇ）を算出する（ステップＳ７３）。フィルタ処理は、上述のステップＳ１３のフィルタ処理と同様である（図１９、図２０参照）。
【０１０７】
次に、ＣＰＵ１１は、空間周波数パターンＱ’（ｕ，ｖ，ｇ）に対して逆フーリエ変換を適用して実空間パターンｑ’（ｘ，ｙ，ｇ）を算出する（ステップＳ７４）。実空間パターンｑ’（ｘ，ｙ，ｇ）はドットパターンｑ（ｘ，ｙ，ｇ）のような０と１のみで記述される２値データではなく０と１の間の中間の値を含む連続的な値の分布となる。
【０１０８】
次に、ＣＰＵ１１は、下記の式（３）により、階調値ｇからのズレを示す誤差行列ＥＲＲ２（ｘ，ｙ，ｇ）を算出する（ステップＳ７５）。
【数３】
0005672839.tif 000004
【０１０９】
次に、ＣＰＵ１１は、下記の式（４）により、評価値ＭＳＥ２（ｎ）（Mean Square Error）を算出する（ステップＳ７６）。
【数４】
0005672839.tif 000005
【０１１０】
次に、ＣＰＵ１１は、ｎが０でないか否かを判定する（ステップＳ７７）。ｎが０でない場合（ステップＳ７７：ＹＥＳ）、ＣＰＵ１１はＭＳＥ２（ｎ）がＭＳＥ２（ｎ−１）よりも小さいか否かを判定する（ステップＳ７８）。
【０１１１】
ステップＳ７７においてｎが０である場合（ステップＳ７７：ＮＯ）又はステップＳ７８においてＭＳＥ２（ｎ）がＭＳＥ２（ｎ−１）よりも小さい場合（ステップＳ７８：ＹＥＳ）、ＣＰＵ１１は極低濃度領域におけるドット配置転換処理を行う（ステップＳ７９）。
【０１１２】
極低濃度領域におけるドット配置転換処理について、図２５のサブフローを用いて説明する。
まず、ＣＰＵ１１は、交換画素数を管理するための変数SWAPNUMを所定の初期値で設定する（ステップＳ８１）。所定の初期値は、１以上の整数である。
次に、ＣＰＵ１１は交換禁止行列ｂａｎ（ｘ，ｙ）を設定し、その値としてｂａｎｉｎｉｔ（ｘ，ｙ）の値をコピーする（ステップＳ８２）。ここで、交換禁止行列ｂａｎの値は、交換禁止行列ＢＡＮと同様に機能する。つまり、ｂａｎ（ｘ，ｙ）＝１の場合、ドットの再配置を行うことが許可されていないことを示す。ここで、交換禁止行列ｂａｎ（ｘ，ｙ）にはｑ（ｘ，ｙ，ｇ）の値がコピーされたｂａｎｉｎｉｔ（ｘ，ｙ）の値がコピーされるので、ドットが配置される画素（値＝１）に対応する交換禁止行列ｂａｎ（ｘ，ｙ）の値には１が設定されることとなり、初期ドットパターンで既にドットがある画素についてはドットの再配置が禁止され、その画素からドットが削除されることはない。
【０１１３】
次に、ＣＰＵ１１は、変数SWAPNUMの値が０を超えるか否か判定する（ステップＳ８３）。変数SWAPNUMの値が０を超える場合（ステップＳ８３：ＹＥＳ）、ＣＰＵ１１は、新たにドットを配置する位置及びドットを削除する位置を決定する処理を行う。
具体的には、ＣＰＵ１１は、ｑ（ｘ，ｙ，ｇ）＝０でｂａｎ（ｘ，ｙ）＝０を満たし、かつ、その中でＥＲＲ２（ｘ，ｙ，ｇ）が最小となる画素の座標（ｘ１，ｙ１）と、ｑ（ｘ，ｙ，ｇ）＝１でｂａｎ（ｘ，ｙ）＝０を満たし、かつ、その中でＥＲＲ２（ｘ，ｙ，ｇ）が最大となる画素の座標（ｘ２，ｙ２）とを検出する（ステップＳ８４）。
【０１１４】
特定された画素（ｘ１，ｙ１）及び画素（ｘ２，ｙ２）に対して、ＣＰＵ１１は、ｐ（ｘ１，ｙ１，ｇ）＝１、ｐ（ｘ２，ｙ２，ｇ）＝０とすることでドットの配置交換を行う（ステップＳ８５）。
【０１１５】
次に、ＣＰＵ１１は、ドットの再配置が行われた画素について、さらなる再配置を行うことを禁止する処理を行う。具体的には、ＣＰＵ１１は、ｂａｎ（ｘ１，ｙ１）及びｂａｎ（ｘ２，ｙ２）の値を１とする（ステップＳ８６）。
【０１１６】
次に、ＣＰＵ１１は、変数SWAPNUMの値から１を減算する（ステップＳ８７）。ステップＳ８７の処理後、ステップＳ８３の判定に戻る。
ステップＳ８３において、変数SWAPNUMの値が０を超えない場合（ステップＳ８３：ＮＯ）、ＣＰＵ１１は処理を終了する。
【０１１７】
図２５のサブフロー及び図２４サブフローのステップＳ７９に示す極低濃度領域におけるドット配置転換処理の終了後、ＣＰＵ１１は変数ｎの値に１を加算する（ステップＳ８０）。その後、ステップＳ７２の処理に戻る。
ステップＳ７８において、ＭＳＥ２（ｎ）がＭＳＥ２（ｎ−１）以上となるまで、ステップＳ７２からの処理が繰り返される（ステップＳ７８：ＹＥＳ）。
ステップＳ７８において、ＭＳＥ２（ｎ）がＭＳＥ２（ｎ−１）以上である場合（ステップＳ７８：ＮＯ）、ＣＰＵ１１は処理を終了する。
図２４のサブフロー及び図２３のステップＳ６２に示す極低濃度領域におけるパターン最適化処理の終了後、ＣＰＵ１１は極低濃度領域におけるドット成長処理を終了する。
【０１１８】
図２３のサブフロー及び図２２のフローチャートのステップＳ４５に示す極低濃度領域におけるドット成長処理の処理後、ＣＰＵ１１は、閾値マトリクスを示す行列Ｔｈ（ｘ，ｙ）に最適化処理後のｑ（ｘ，ｙ，ｇ）を加える（ステップＳ４６）。
次に、ＣＰＵ１１は、ｇがｇ１未満であるか否かを判定する（ステップＳ４７）。
ｇがｇ１未満である場合（ステップＳ４７：ＹＥＳ）、ステップＳ４４の処理に戻り、積層束縛（Stacking Constraint）条件下における極低濃度領域におけるドット成長処理を繰り返す。
【０１１９】
ステップＳ４７において、ｇがｇ１未満でない場合（ステップＳ４７：ＮＯ）、ＣＰＵ１１は行列ｂａｎｉｎｉｔ（ｘ，ｙ）にｑ（ｘ，ｙ，ｇ）の値をコピーする（ステップＳ４８）。その後、ＣＰＵ１１は、低濃度領域におけるドット成長処理を行う（ステップＳ４９）。
【０１２０】
ここで、低濃度領域におけるドット成長処理について、図２６のサブフローを用いて説明する。
低濃度領域におけるドット成長処理は、極低濃度領域におけるドット成長処理（図２３参照）におけるステップＳ６２の処理（極低濃度領域におけるパターン最適化処理）を、低濃度領域におけるパターン最適化処理（ステップＳ９１）に置き換える点を除いて、極低濃度領域におけるドット成長処理と同様である。
【０１２１】
低濃度領域におけるパターン最適化処理について、図２７のサブフローを用いて説明する。
低濃度領域におけるパターン最適化処理は、極低濃度領域におけるパターン最適化処理（図２４参照）におけるステップＳ７９の処理（極低濃度領域におけるドット配置転換処理）を、低濃度領域におけるドット配置転換処理（ステップＳ９２）に置き換える点を除いて、極低濃度領域におけるパターン最適化処理と同様である。
【０１２２】
低濃度領域におけるドット配置転換処理について、図２８のサブフロー及び図２９を用いて説明する。
低濃度領域におけるドット配置転換処理は、極低濃度領域における配置転換処理（図２５参照）におけるステップＳ８４の処理を、以下のステップＳ９３の処理に置き換える点を除いて、極低濃度領域におけるドット配置転換処理と同様である。
ステップＳ９３の処理では、ＣＰＵ１１は、ｑ（ｘ，ｙ，ｇ）＝０でｂａｎ（ｘ，ｙ）＝０を満たし、ｑ（ｘ＋１，ｙ，ｇ）＝１、ｑ（ｘ−１，ｙ，ｇ）＝１、ｑ（ｘ，ｙ＋１，ｇ）＝１又はｑ（ｘ，ｙ−１，ｇ）＝１のいずれかを満たし、かつ、その中でＥＲＲ２（ｘ，ｙ，ｇ）が最小となる画素の座標（ｘ１，ｙ１）と、ｑ（ｘ，ｙ，ｇ）＝１でｂａｎ（ｘ，ｙ）＝０を満たし、かつ、その中でＥＲＲ２（ｘ，ｙ，ｇ）が最大となる画素の座標（ｘ２，ｙ２）とを検出する。
【０１２３】
図２９に、画素（ｘ，ｙ）と当該画素に隣接する４画素を模式図で示す。
ここで、ｑ（ｘ＋１，ｙ，ｇ）＝１、ｑ（ｘ−１，ｙ，ｇ）＝１、ｑ（ｘ，ｙ＋１，ｇ）＝１又はｑ（ｘ，ｙ−１，ｇ）＝１のいずれかを満たすということは、ｑ（ｘ，ｙ，ｇ）に対応する画素（例えば図２９に示すｘ，ｙ）に隣接する４画素のうちいずれか一つにドットが配置されていることを示す。
【０１２４】
つまり、ｑ（ｘ，ｙ，ｇ）＝０でｂａｎ（ｘ，ｙ）＝０を満たし、ｑ（ｘ＋１，ｙ，ｇ）＝１、ｑ（ｘ−１，ｙ，ｇ）＝１、ｑ（ｘ，ｙ＋１，ｇ）＝１又はｑ（ｘ，ｙ−１，ｇ）＝１のいずれかを満たし、かつ、その中でＥＲＲ２（ｘ，ｙ，ｇ）が最小となる画素の座標（ｘ１，ｙ１）であるということは、その画素でドットが配置されず、その画素についてドットの再配置を行うことが許可されており、その画素に隣接する４画素のうちいずれか一つにドットが配置されており、かつ、その画素を含む周辺位置にドットが配置されない隙間（void）があることを示す。低濃度領域におけるドット配置転換処理におけるステップＳ８５の処理では、これらの条件を満たす画素の座標（ｘ１，ｙ１）にドットを配置し、画素の座標（ｘ２，ｙ２）からドットを削除するドットの配置転換を行う。これによって、座標（ｘ１，ｙ１）と、当該座標に隣接し、かつ、ドットが配置されているｑ（ｘ＋１，ｙ，ｇ）＝１、ｑ（ｘ−１，ｙ，ｇ）＝１、ｑ（ｘ，ｙ＋１，ｇ）＝１又はｑ（ｘ，ｙ−１，ｇ）＝１のいずれかに対応する画素と、は共にドットが配置される隣接する２画素となる。
【０１２５】
図２７のサブフロー及び図２６のステップＳ９１に示す低濃度領域におけるパターン最適化処理の終了後、ＣＰＵ１１は低濃度領域におけるドット成長処理を終了する。
図２６のサブフロー及び図２２のフローチャートのステップＳ４９に示す低濃度領域におけるドット成長処理の処理後、ＣＰＵ１１は、閾値マトリクスを示す行列Ｔｈ（ｘ，ｙ）に最適化処理後のｑ（ｘ，ｙ，ｇ）を加える（ステップＳ５０）。
次に、ＣＰＵ１１は、ｇがｇ２未満であるか否かを判定する（ステップＳ５１）。
ｇがｇ２未満である場合（ステップＳ５１：ＹＥＳ）、ステップＳ４８の処理に戻り、積層束縛（Stacking Constraint）条件下における低濃度領域におけるドット成長処理を繰り返す。
【０１２６】
図３０に、低濃度領域におけるドット成長処理により生成されるドットパターンの一例及び各ドットパターンの空間周波数を示す。図３０に示すｕ方向はｘ方向に対応し、ｖ方向はｙ方向に対応する。
図３０に示すように、低濃度領域におけるドット成長処理を繰り返すことにより、所定の二方向（ｘ方向、ｙ方向）のいずれかに沿って連続してドットが配置される画素を含むドットパターンを得られる。
【０１２７】
ステップＳ５１において、ｇがｇ２未満でない場合（ステップＳ５１：ＮＯ）、ＣＰＵ１１は行列ｂａｎｉｎｉｔ（ｘ，ｙ）にｑ（ｘ，ｙ，ｇ）の値をコピーする（ステップＳ５２）。その後、ＣＰＵ１１は、ｑ（ｘ，ｙ，ｇ）の値を全て１とする（ステップＳ５３）。さらにｇ＝１とする（ステップＳ５４）。    
【０１２８】
次に、ＣＰＵ１１は、ｂａｎｉｎｉｔ（ｘ，ｙ）＝０であって、かつ、ｑ（ｘ，ｙ，ｇ）＝０である画素に対応するｂａｎｉｎｉｔ（ｘ，ｙ）の値を２とする（ステップＳ５５）。この処理は、ステップS56において高濃度領域もしくは中濃度領域でドットを形成しないと判断した画素を記録するためのもので後述するステップS56の処理をするたびにｂａｎｉｎｉｔ（ｘ，ｙ）＝２は増加する。つまり、ｂａｎｉｎｉｔ（ｘ，ｙ）＝２の意味するところは、極低濃度、低濃度領域では選択されなかったが、高濃度領域、もしくは中濃度領域で選択された画素を表している。このように極低濃度領域、低濃度領域で選択された画素と、中濃度もしくは高濃度領域で選択された画素とを識別する理由は、中濃度領域においてドットが配置されない隙間をその前のドットパターンで決定されている隙間に隣接させて発生させるためである。このようにすることで、中濃度領域では高濃度領域で生成した隙間を成長させていく形となり、より安定的に隙間を維持できる。
【０１２９】
その後、ＣＰＵ１１は、中・高濃度領域におけるドットパターン作成処理を行う（ステップＳ５６）。
中・高濃度領域におけるドットパターン作成処理について、図３１のサブフローを用いて説明する。
まず、ＣＰＵ１１は、階調値ｇに対して変化させる階調値変化量δｇを減算し、δｇに応じた数のドットを削除する（ステップＳ１０１）。ステップＳ１０１の処理により削除されるドットは、ｂａｎｉｎｉｔ（ｘ，ｙ）＝０かつｂａｎｉｎｉｔ（ｘ＋１，ｙ）＝０の条件を満たすｘ、ｙに対応するｑ（ｘ，ｙ，ｇ）かつｑ（ｘ＋１，ｙ，ｇ）である。条件を満たすｑ（ｘ，ｙ，ｇ）の中からδｇに応じた数のドットを決定する処理は、所定の乱数処理に基づいて行われる。ドットを削除された画素に対応するｑ（ｘ，ｙ，ｇ）の値は０となる。
次に、ＣＰＵ１１は、中・高濃度領域におけるパターン最適化処理を行う（ステップＳ１０２）。
中・高濃度領域におけるパターン最適化処理について、図３２のサブフローを用いて説明する。
ＣＰＵ１１は変数ｎを初期値０で設定する（ステップＳ１１１）。
次に、ＣＰＵ１１は、ドットパターンｑ（ｘ，ｙ，ｇ）に対してフーリエ変換を適用した空間周波数パターンＱ（ｕ，ｖ，ｇ）を算出する（ステップＳ１１２）。ｕ，ｖはそれぞれｘ方向、ｙ方向の周波数空間を示す。
【０１３０】
次に、ＣＰＵ１１は、パターンＱ（ｕ，ｖ，ｇ）に対してフィルタ処理を施したパターンＱ’（ｕ，ｖ，ｇ）を算出する（ステップＳ１１３）。フィルタ処理は、上述のステップＳ１３のフィルタ処理と同様である（図１９、図２０参照）。
【０１３１】
次に、ＣＰＵ１１は、空間周波数パターンＱ’（ｕ，ｖ，ｇ）に対して逆フーリエ変換を適用して実空間パターンｑ’（ｘ，ｙ，ｇ）を算出する（ステップＳ１１４）。実空間パターンｑ’（ｘ，ｙ，ｇ）はドットパターンｑ（ｘ，ｙ，ｇ）のような０と１のみで記述される２値データではなく０と１の間の中間の値を含む連続的な値の分布となる。
【０１３２】
次に、ＣＰＵ１１は、上記の式（３）により、階調値ｇからのズレを示す誤差行列ＥＲＲ２（ｘ，ｙ，ｇ）を算出する（ステップＳ１１５）。
【０１３３】
次に、ＣＰＵ１１は、上記のステップＳ１６の処理と同様に、上記の式（４）により、評価値ＭＳＥ２（ｎ）（Mean Square Error）を算出する（ステップＳ１１６）。
【０１３４】
次に、ＣＰＵ１１は、ｎが０でないか否かを判定する（ステップＳ１１７）。ｎが０でない場合（ステップＳ７７：ＹＥＳ）、ＣＰＵ１１はＭＳＥ２（ｎ）がＭＳＥ２（ｎ−１）よりも小さいか否かを判定する（ステップＳ１１８）。
【０１３５】
ステップＳ１１７においてｎが０である場合（ステップＳ１１７：ＮＯ）又はステップＳ１１８においてＭＳＥ２（ｎ）がＭＳＥ２（ｎ−１）よりも小さい場合（ステップＳ１１８：ＹＥＳ）、ＣＰＵ１１はｇがｇ３を上回るか判定する（ステップＳ１１９）。
ｇがｇ３を上回る場合（ステップＳ１１９：ＹＥＳ）、ＣＰＵ１１は高濃度領域における配置転換処理を行う（ステップＳ１２０）。一方、ｇがｇ３を上回らない場合（ステップＳ１１９：ＮＯ）、ＣＰＵ１１は中濃度領域におけるドット配置転換処理を行う（ステップＳ１２１）。
【０１３６】
高濃度領域におけるドット配置転換処理について、図３３のサブフローを用いて説明する。
まず、ＣＰＵ１１は、交換画素数を管理するための変数SWAPNUMを所定の初期値で設定する（ステップＳ１３１）。所定の初期値は、１以上の整数である。
次に、ＣＰＵ１１は交換禁止行列ｂａｎ（ｘ，ｙ）を設定し、その値としてｂａｎｉｎｉｔ（ｘ，ｙ）の値をコピーする（ステップＳ１３２）。
【０１３７】
次に、ＣＰＵ１１は、変数SWAPNUMの値が０を超えるか否か判定する（ステップＳ１３３）。変数SWAPNUMの値が０を超える場合（ステップＳ１３３：ＹＥＳ）、ＣＰＵ１１は、新たにドットを配置する位置及びドットを削除する位置を決定する処理を行う。
具体的には、ＣＰＵ１１は、ｑ（ｘ，ｙ，ｇ）＝０、ｂａｎ（ｘ，ｙ）＝０、ｑ（ｘ＋１，ｙ，ｇ）＝０、ｂａｎ（ｘ＋１，ｙ）＝０を満たし、かつ、その中でＥＲＲ２（ｘ，ｙ，ｇ）が最小となる画素の座標（ｘ１，ｙ１）と、ｑ（ｘ，ｙ，ｇ）＝１、ｂａｎ（ｘ，ｙ）＝０、ｑ（ｘ＋１，ｙ，ｇ）＝１、ｂａｎ（ｘ＋１，ｙ）＝０を満たし、かつ、その中でＥＲＲ２（ｘ，ｙ，ｇ）が最大となる画素の座標（ｘ２，ｙ２）とを検出する（ステップＳ１３４）。
【０１３８】
ここで、ｑ（ｘ，ｙ，ｇ）＝０、ｂａｎ（ｘ，ｙ）＝０、ｑ（ｘ＋１，ｙ，ｇ）＝０、ｂａｎ（ｘ＋１，ｙ）＝０を満たすということは、ｘ方向に連続する２画素について共にドットが配置されず、かつ、２画素ともドットの再配置を行うことが許可されている画素であることを示す。また、ｑ（ｘ，ｙ，ｇ）＝１、ｂａｎ（ｘ，ｙ）＝０、ｑ（ｘ＋１，ｙ，ｇ）＝１、ｂａｎ（ｘ＋１，ｙ）＝０を満たすということは、ｘ方向に連続する２画素について共にドットが配置され、かつ、２画素ともドットの再配置を行うことが許可されている画素であることを示す。
【０１３９】
つまり、ｑ（ｘ，ｙ，ｇ）＝０、ｂａｎ（ｘ，ｙ）＝０、ｑ（ｘ＋１，ｙ，ｇ）＝０、ｂａｎ（ｘ＋１，ｙ）＝０を満たし、かつ、その中でＥＲＲ２（ｘ，ｙ，ｇ）が最小となる画素の座標（ｘ１，ｙ１）であるということは、ｘ方向に連続する２画素について共にドットが配置されず、かつ、２画素ともドットの再配置を行うことが許可されている画素であり、かつ、その画素を含む周辺位置にドットが配置されない隙間（void）があることを示す。また、ｑ（ｘ，ｙ，ｇ）＝１、ｂａｎ（ｘ，ｙ）＝０、ｑ（ｘ＋１，ｙ，ｇ）＝１、ｂａｎ（ｘ＋１，ｙ）＝０を満たし、かつ、その中でＥＲＲ２（ｘ，ｙ，ｇ）が最大となる画素の座標（ｘ２，ｙ２）であるということは、ｘ方向に連続する２画素について共にドットが配置され、かつ、２画素ともドットの再配置を行うことが許可されている画素であり、かつ、その画素を含む周辺位置にドットが配置されない隙間（void）があることを示す。
【０１４０】
特定された画素（ｘ１，ｙ１）及び画素（ｘ２，ｙ２）に対して、ＣＰＵ１１は、ｐ（ｘ１，ｙ１，ｇ）＝１、ｐ（ｘ１＋１，ｙ１，ｇ）＝１、ｐ（ｘ２，ｙ２，ｇ）＝０、ｐ（ｘ２＋１，ｙ２，ｇ）＝０とすることで２画素分のドットの配置交換を行う（ステップＳ１２５）。
【０１４１】
次に、ＣＰＵ１１は、ドットの再配置が行われた画素について、さらなる再配置を行うことを禁止する処理を行う。具体的には、ＣＰＵ１１は、ｂａｎ（ｘ１，ｙ１）、ｂａｎ（ｘ１＋１，ｙ１）、（ｘ２，ｙ２）及びｂａｎ（ｘ２＋１，ｙ２）の値を２とする（ステップＳ１３６）。
【０１４２】
次に、ＣＰＵ１１は、変数SWAPNUMの値から２を減算する（ステップＳ１３７）。ステップＳ１３７の処理後、ステップＳ１３３の判定に戻る。
ステップＳ１３３において、変数SWAPNUMの値が０を超えない場合（ステップＳ１３３：ＮＯ）、ＣＰＵ１１は処理を終了する。
【０１４３】
中濃度領域におけるドット配置転換処理について、図３４のサブフローを用いて説明する。
まず、ＣＰＵ１１は、交換画素数を管理するための変数SWAPNUMを所定の初期値で設定する（ステップＳ１４１）。所定の初期値は、１以上の整数である。
次に、ＣＰＵ１１は交換禁止行列ｂａｎ（ｘ，ｙ）を設定し、その値としてｂａｎｉｎｉｔ（ｘ，ｙ）の値をコピーする（ステップＳ１４２）。
【０１４４】
次に、ＣＰＵ１１は、変数SWAPNUMの値が０を超えるか否か判定する（ステップＳ１４３）。変数SWAPNUMの値が０を超える場合（ステップＳ１４３：ＹＥＳ）、ＣＰＵ１１は、新たにドットを配置する位置及びドットを削除する位置を決定する処理を行う。
具体的には、ＣＰＵ１１は、ｑ（ｘ，ｙ，ｇ）＝０、ｂａｎ（ｘ，ｙ）＝０であって、ｂａｎ（ｘ−１，ｙ）＝２、ｂａｎ（ｘ＋１，ｙ）＝２、ｂａｎ（ｘ，ｙ−１）＝２又はｂａｎ（ｘ，ｙ＋１）＝２のいずれかを満たし、かつ、その中でＥＲＲ２（ｘ，ｙ，ｇ）が最小となる画素の座標（ｘ１，ｙ１）と、ｑ（ｘ，ｙ，ｇ）＝１、ｂａｎ（ｘ，ｙ）＝０であって、ｂａｎ（ｘ−１，ｙ）＝２、ｂａｎ（ｘ＋１，ｙ）＝２、ｂａｎ（ｘ，ｙ−１）＝２又はｂａｎ（ｘ，ｙ＋１）＝２のいずれかを満たし、かつ、その中でＥＲＲ２（ｘ，ｙ，ｇ）が最大となる画素の座標（ｘ２，ｙ２）とを検出する（ステップＳ１４４）。
【０１４５】
ここで、ｂａｎ（ｘ−１，ｙ）＝２、ｂａｎ（ｘ＋１，ｙ）＝２、ｂａｎ（ｘ，ｙ−１）＝２又はｂａｎ（ｘ，ｙ＋１）＝２のいずれかを満たすということは、（ｘ、ｙ）とその隣接画素が、高濃度領域におけるドット配置転換処理により、連続する複数のドットを配置されない画素となっていることを示す。
【０１４６】
つまり、ｑ（ｘ，ｙ，ｇ）＝０、ｂａｎ（ｘ，ｙ）＝０であって、ｂａｎ（ｘ−１，ｙ）＝２、ｂａｎ（ｘ＋１，ｙ）＝２、ｂａｎ（ｘ，ｙ−１）＝２又はｂａｎ（ｘ，ｙ＋１）＝２のいずれかを満たし、かつ、その中でＥＲＲ２（ｘ，ｙ，ｇ）が最小となる画素の座標（ｘ１，ｙ１）であるということは、ｘ方向又はｙ方向に連続する２画素について共にドットが配置されず、高濃度領域におけるドット配置転換処理により連続するよう配置された複数のドットを配置されない画素であり、かつ、その画素を含む周辺位置にドットが配置されない隙間（void）があることを示す。
【０１４７】
特定された画素（ｘ１，ｙ１）及び画素（ｘ２，ｙ２）に対して、ＣＰＵ１１は、ｐ（ｘ１，ｙ１，ｇ）＝１、ｐ（ｘ２，ｙ２，ｇ）＝０、とすることでドットの配置交換を行う（ステップＳ１４５）。
【０１４８】
次に、ＣＰＵ１１は、ドットの再配置が行われた画素について、さらなる再配置を行うことを禁止する処理を行う。具体的には、ＣＰＵ１１は、ｂａｎ（ｘ１，ｙ１）及び（ｘ２，ｙ２）の値を２とする（ステップＳ１４６）。
【０１４９】
次に、ＣＰＵ１１は、変数SWAPNUMの値から１を減算する（ステップＳ１４７）。ステップＳ１４７の処理後、ステップＳ１４３の判定に戻る。
ステップＳ１４３において、変数SWAPNUMの値が０を超えない場合（ステップＳ１４３：ＮＯ）、ＣＰＵ１１は処理を終了する。
【０１５０】
図３５に、中・高濃度領域におけるドットパターン作成処理により生成されるドットパターンの一例及び各ドットパターンの空間周波数を示す。
中・高濃度領域におけるドットパターン作成処理では、階調値が１である即ち全ての画素についてドットが配置されるドットパターンからドットを削除してドットが配置されない画素を配置されたドットパターンを生成する。このため、図２２のフローチャートに示す初期ドットパターンの生成処理によって生成された初期ドットパターンに基づく閾値マトリクスの生成処理において管理される階調値ｇの値が１からｇ３にかけて生成されるドットパターンのドット率は下がる。そして、階調値ｇがｇ３以下になると、高濃度領域におけるドット配置転換処理から中濃度領域におけるドット配置転換処理に切り替わる。
【０１５１】
ステップＳ５２において、行列ｂａｎｉｎｉｔ（ｘ，ｙ）にｑ（ｘ，ｙ，ｇ）の値をコピーするのは、積層束縛（Stacking Constraint）条件下において、階調値ｇがｇ２以上となるまでに配置されたドットの再配置を禁止するためである。
ステップＳ５４において、ＣＰＵ１１は、ｂａｎｉｎｉｔ（ｘ，ｙ）＝０であって、かつ、ｑ（ｘ，ｙ，ｇ）＝０である画素に対応するｂａｎｉｎｉｔ（ｘ，ｙ）の値を１とするのは、積層束縛（Stacking Constraint）条件下において、ドットを配置しない画素として決定した画素に対してドットの再配置を行わないためである。
【０１５２】
ドットの追加及びドットの削除は、所定の乱数処理以外の方法に基づいて行ってもよい。他の方法として、例えば、誤差拡散を用いる方法が挙げられる。このとき、追加又は削除された後のドットパターンのドットの分布が所望のパターンに近いほどフィルタ処理及び小区画の平均値に基づくパターンの最適化処理及びドット配置転換処理の繰り返しを早く終えることができる。
【０１５３】
図３３に示すサブフロー及び図３２のステップＳ１２０に示す中濃度領域におけるドット配置転換処理の終了後又は図３４のサブフロー及び図３２のステップＳ１２１
に示す中濃度領域におけるドット配置転換処理の終了後、ＣＰＵ１１は変数ｎの値に１を加算する（ステップＳ１２２）。その後、ステップＳ１１２の処理に戻る。
ステップＳ１１８において、ＭＳＥ２（ｎ）がＭＳＥ２（ｎ−１）以上となるまで、ステップＳ１１２からの処理が繰り返される（ステップＳ１１８：ＹＥＳ）。
ステップＳ１１８において、ＭＳＥ２（ｎ）がＭＳＥ２（ｎ−１）以上である場合（ステップＳ１１８：ＮＯ）、ＣＰＵ１１は処理を終了する。
【０１５４】
図３２のサブフロー及び図３１のステップＳ１０２に示す高濃度領域におけるパターン最適化処理の終了後、ＣＰＵ１１は中・高濃度領域におけるドットパターン作成処理を終了する。
図３１のサブフロー及び図２２のフローチャートのステップＳ５６に示す中・高濃度領域におけるドットパターン作成処理の後、ＣＰＵ１１は、閾値マトリクスを示す行列Ｔｈ（ｘ，ｙ）に最適化処理後のｑ（ｘ，ｙ，ｇ）を加える（ステップＳ５７）。
次に、ＣＰＵ１１は、階調値ｇがｇ２以下であるか否かを判定する（ステップＳ５８）。
ｇがｇ２以下でない場合（ステップＳ５８：ＮＯ）、ステップＳ５５の処理に戻り、積層束縛（Stacking Constraint）条件下における中・高濃度領域におけるドットパターン作成処理を繰り返す。
【０１５５】
ステップＳ５７において、ｇがｇ２以下の場合（ステップＳ５８：ＹＥＳ）、ＣＰＵ１１は初期ドットパターンの生成処理によって生成された初期ドットパターンに基づく閾値マトリクスの生成処理を終了する。
【０１５６】
このように、本実施形態の閾値マトリクス作成処理の工程は、
所定サイズの画像において所定のドット数を有する第一のドットパターンに基づいて第一のドットパターンのドット数を増加又は減少させた第二のドットパターン（ｑ（ｘ，ｙ，ｇ））を生成する新ドットパターン生成工程（ステップＳ６１、ステップＳ１０１）と、
第二のドットパターンに含まれるドットを再配置した第三のドットパターンを得る再配置工程（ステップＳ７９、ステップＳ９２、ステップＳ１２０、ステップＳ１２１）と、
所望のドット率に基づくドット数のドットパターンを得るまで第三のドットパターンを第一のドットパターンとして新ドットパターン生成工程及び再配置工程を繰り返す繰り返し工程（ステップＳ４４〜Ｓ４７、ステップＳ４８〜Ｓ５１、ステップＳ５４〜Ｓ５８）と、を有し、
再配置工程は、
第二のドットパターンに所定の空間フィルタを適用したパターンと所望の空間周波数分布に対応するドットパターンを実現するための誤差に基づくドットパターン評価値として機能する誤差行列ＥＲＲ（ｘ，ｙ，ｇ）を算出するドットパターン評価値算出工程（ステップＳ７２〜Ｓ７５、ステップＳ１１２〜Ｓ１１５）と、
ドットパターン評価値に基づいて、ドットの再配置において新たにドットを配置する位置及びドットを削除する位置を決定するドット再配置位置決定工程（ステップＳ８４、ステップＳ９３、ステップＳ１３４、ステップＳ１４４）と、
ドット再配置位置決定工程により決定された新たにドットを配置する位置及びドットを削除する位置に基づいて前記第三のドットパターンのドットを再配置する再配置パターン生成工程（ステップＳ８５、ステップＳ１３５、ステップＳ１４５）と、
再配置された前記第三のドットパターンに対するドット分散性評価値として機能するＭＳＥ２（ｎ）又はＭＳＥ２（ｎ）を算出するドット分散性評価値算出工程（ステップＳ７６、ステップＳ１１６）と、
再配置された前記第三のドットパターンのドット分散性評価値に基づいてドットパターン評価値算出工程、ドット再配置位置決定工程、再配置パターン生成工程及びドット分散性評価値算出工程を繰り返す再配置繰り返し判定工程（ステップＳ７８、ステップＳ１１８）と、
再配置繰り返し判定工程において繰り返すと判定された場合、再配置された第三のドットパターンを第二のパターン（ｑ（ｘ，ｙ，ｇ））とする工程（ステップＳ８０後のステップＳ７２、ステップＳ１２２後のステップＳ１１２）と、を有する。
【０１５７】
以上、本実施形態によれば、階調値ｇがｇ３＜ｇ＜１の範囲内であるドットパターンは、ドットを配置されない複数の画素がｘ方向にのみ連続するようなドット配置である。このようなドットパターンを用いて生成された閾値マトリクスによる量子化処理によって量子化画像を用いて形成された画像には、ｘ方向に沿って連続するドットを配置されない複数の画素に対応する隙間が生じる。つまり、量子化画像を用いた画像形成時に当該ドットを配置されない複数の画素に対応する良好な隙間を生じさせることができる。よって、従来技術において生じていた、各ドット間の隙間の一部が塗りつぶされ、印刷画像の粒状感が悪化する問題の発生を良好に低減させることができる。
【０１５８】
さらに、階調値がｇ２≦ｇ≦ｇ３の範囲内であるドットパターンは、ドットを配置されない複数の画素がｘ方向及びｙ方向に沿って連続するようなドット配置のドットパターンを有する。これによって、積層束縛（Stacking Constraint）条件下での各階調値のドットパターンの生成処理において、ドットパターンにおけるドットの分散を損なうことなく、各階調値のドットパターンがそのドットパターンよりも階調値の低いドットパターンにおいて配置されている全てのドットと同じ位置に配置されたドットを必ず含むという条件と、ドットを配置されない複数の画素を連続させるという条件と、を共に満たすことができる。このようなドットパターンを用いて生成された閾値マトリクスによる量子化処理によって、ドットの一部が隣接するドットとそれぞれ引き合うように移動することによってドットが配置されない画素に対応する隙間が潰れてしまう可能性を大幅に低減させることができ、画像形成時に当該ドットを配置されない複数の画素に対応する良好な隙間を生じさせることができる。よって、従来技術において生じていた、各ドット間の隙間の一部が塗りつぶされ、印刷画像の粒状感が悪化する問題の発生を良好に低減させることができる。
【０１５９】
さらに、階調値ｇがｇ１≦ｇ＜ｇ２の範囲内であるドットパターンは、ドットを配置される複数の画素がｘ方向又はｙ方向にのみ連続するドット配置を有する。このようなドットパターンを用いて生成された閾値マトリクスによる量子化処理によって、射出角度誤差に起因する着弾ズレやドットの一部が隣接するドットとそれぞれ引き合うように移動することによるスジの発生を低減させることができる。
【０１６０】
さらに、ＣＰＵ１１は、階調値ｇがｇ３＜ｇ＜１の範囲内であるドットパターン及び階調値がｇ２≦ｇ≦ｇ３の範囲内であるドットパターンについて、新ドットパターン生成工程において元となるドットパターンからドット数を減少させてドットパターンを作成する。これによって、ドットを配置されない複数の画素を連続させるドットの再配置を容易に行うことができる。
【０１６１】
さらに、ＣＰＵ１１は、階調値ｇがｇ１≦ｇ＜ｇ２の範囲内であるドットパターンについて、新ドットパターン生成工程において元となるドットパターンからドット数を増加させてドットパターンを作成する。これによって、ドットを配置される複数の画素を連続させるドットの再配置を容易に行うことができる。
【０１６２】
また、隣接するドット同士が引き合うように移動することによって生じるドットの位置ずれは、インクの浸透に時間を要する記録メディア（例えばアート紙やコート紙等の印刷本用紙や光沢紙等）ほど生じやすいので、このようなインクの浸透に時間を要する記録メディアに対して画像形成を行う場合に、本実施形態等、本発明を用いた量子化処理を行うと、ドットの一部が隣接するドットとそれぞれ引き合うように移動することにより印刷画像の粒状感が悪化する問題の発生を顕著に低減させることができる。
【０１６３】
なお、誤差行列の値（例えばＥＲＲ（ｘ，ｙ，ｇ）やＥＲＲ２（ｘ，ｙ，ｇ）等）に基づいてドット配置転換の対象となる画素を決定する処理において、誤差行列の値に所定の係数による補正を加えてドット配置転換の対象となる画素を決定してもよい。
【０１６４】
なお、本発明の実施の形態は、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【０１６５】
上記の実施形態では、閾値マトリクス生成装置１が量子化装置２００の構成に含まれているが、量子化装置は閾値マトリクス生成装置を備えていなくてもよい。例えば、量子化装置と別個に設けられた閾値マトリクス生成装置により生成された閾値マトリクスを記録媒体又は記憶装置に記憶させ、この記録媒体又は記憶装置から量子化装置の記憶部に閾値マトリクスを複製又はデータ移動させるようにしてもよい。
【０１６６】
上記の実施形態ではコンピュータによるソフトウェア処理によって閾値マトリクスの生成処理を行っているが、専用の装置により行ってもよい。
また、閾値マトリクスの生成処理を行うコンピュータは、閾値マトリクスの生成処理以外の処理を行うこともできる。例えば、パーソナルコンピュータ等の汎用コンピュータにより閾値マトリクスを生成してもよいし、ＭＦＰ（Multifunction Peripheral）等の機器が備えているＣＰＵ等が行う一処理として閾値マトリクスの生成処理を行うようにしてもよい。
【０１６７】
また、ドット分散性評価値にＭＳＥ以外を用いてもよい。例えば、ＲＡＰＳＤに視覚感度曲線を掛け合わせ、周波数で積分したノイズ値を算出し、そのノイズ値が所定条件を満たす（例えば所定値未満となる等）場合にドットの配置交換を終了させるようにしてもよい。
【０１６８】
また、本発明を用いて生成された量子化画像は、記録メディアに対して相対移動を行うプリントヘッドが少なくとも前記相対移動の方向に略直交する方向に複数の記録素子を有する画像形成装置であれば用いることができる。例えば、ワンパス印画方式の画像形成装置や、ノズル列方向に沿ったドットパターンの画素幅に満たない記録素子を有するプリントヘッドＨを用いてドットパターンを形成するに際して、ノズル列方向に沿ったドットパターンの画素幅を複数の領域に分解し、プリントヘッドＨ又は媒体をノズル列方向に沿って移動させて複数に分解された各領域を形成するマイクロウィーブ方式の画像形成装置に用いる量子化画像を生成する場合においても本発明を適用することができる。
【符号の説明】
【０１６９】
１     閾値マトリクス生成装置
１１   ＣＰＵ
１２   ＲＡＭ
１３   ＲＯＭ
１４   ストレージデバイス
１５   インタフェース
２００ 量子化装置
２０１ 取得部
２０２ 記憶部
２０３ 量子化処理部
２０４ 出力部
【図１】
0005672839.tif 000006
【図２】
0005672839.tif 000007
【図３】
0005672839.tif 000008
【図４】
0005672839.tif 000009
【図６】
0005672839.tif 000010
【図７】
0005672839.tif 000011
【図８】
0005672839.tif 000012
【図９】
0005672839.tif 000013
【図１０】
0005672839.tif 000014
【図１５】
0005672839.tif 000015
【図１６】
0005672839.tif 000016
【図１７】
0005672839.tif 000017
【図１８】
0005672839.tif 000018
【図１９】
0005672839.tif 000019
【図２０】
0005672839.tif 000020
【図２１】
0005672839.tif 000021
【図２２】
0005672839.tif 000022
【図２３】
0005672839.tif 000023
【図２４】
0005672839.tif 000024
【図２５】
0005672839.tif 000025
【図２６】
0005672839.tif 000026
【図２７】
0005672839.tif 000027
【図２８】
0005672839.tif 000028
【図２９】
0005672839.tif 000029
【図３１】
0005672839.tif 000030
【図３２】
0005672839.tif 000031
【図３３】
0005672839.tif 000032
【図３４】
0005672839.tif 000033
【図３６】
0005672839.tif 000034
【図３７】
0005672839.tif 000035
【図３９】
0005672839.tif 000036
【図５】
0005672839.tif 000037
【図１１】
0005672839.tif 000038
【図１２】
0005672839.tif 000039
【図１３】
0005672839.tif 000040
【図１４】
0005672839.tif 000041
【図３０】
0005672839.tif 000042
【図３５】
0005672839.tif 000043
【図３８】
0005672839.tif 000044