(57)【特許請求の範囲】
【請求項１】
画像処理用マスク内の各点におけるクラスタエネルギーを算出する算出ステップと、
前記算出ステップによって算出されたクラスタエネルギーの値に基づいて、前記各点に対して昇順又は降順に順位付けを行う順位付ステップと、
前記順位付ステップによる処理結果である順位に基づいて、画像処理用マスク内の閾値を割り当てる閾値割当ステップ
を行い、
前記算出ステップによるクラスタエネルギーの算出は、前記各点であってクラスタに隣接する注目点ｘと、該注目点ｘを含まないクラスタに属する点ｙとの間の距離‖ｘ−ｙ‖を変数とする相互影響値ｆｒ（‖ｘ−ｙ‖）の総和により定義される
ことを特徴とする画像処理用マスク生成方法。
【請求項２】
前記クラスタエネルギーはさらに、注目点ｘと未だ順位付けされていない点によって構成されている空白領域に属する点ｙとの間の距離‖ｘ−ｙ‖を変数とする相互影響値ｆｒ（‖ｘ−ｙ‖）の負総和との、重み付き平均で定義される
ことを特徴とする請求項１に記載の画像処理用マスク生成方法。
【請求項３】
前記関数ｆｒは、予め定められた強度の凸性を有する２階微分可能関数により定められている
ことを特徴とする請求項１又は２に記載の画像処理用マスク生成方法。
【請求項４】
前記順位付ステップは、順位ｉを与える際に、
昇順に順位付けを行う場合には、より上位の順位が付された点全体を前記算出ステップにおけるクラスタエネルギー算出の対象とし、
降順に順位付けを行う場合には、より下位の順位が付された点全体を前記算出ステップにおけるクラスタエネルギー算出の対象とし、
前記いずれの場合も、まだ順位付けがされてない点について前記算出ステップによりクラスタエネルギーを算出し、クラスタエネルギーが最小である点に順位ｉを与える
ことを特徴とする請求項１から３のいずれかに記載の画像処理用マスク生成方法。
【請求項５】
前記算出ステップは、Ｋ個のクラスタの核点を画像処理用マスク内にランダムに配置し、該クラスタをエネルギー降下によって最適配置に収束させ、
前記順位付ステップは、前記Ｋ個の核点にクラスタエネルギーの昇順に通し番号０〜Ｋ−１を与える
ことを特徴とする請求項１から４のいずれか一項に記載の画像処理用マスク生成方法。
【請求項６】
前記算出ステップは、クラスタの形成を画像の黒色側から白色側又は白色側から黒色側へと成長させ、予め定められた濃度で白色側から黒色側又は黒色側から白色側へと成長を反転させる
ことを特徴とする請求項１から５のいずれか一項に記載の画像処理用マスク生成方法。
【請求項７】
コンピュータを、
画像処理用マスク内の各点におけるクラスタエネルギーを算出する算出手段と、
前記算出手段によって算出されたクラスタエネルギーの値に基づいて、前記各点に対して昇順又は降順に順位付けを行う順位付手段と、
前記順位付手段による処理結果である順位に基づいて、画像処理用マスク内の閾値を割り当てる閾値割当手段
として機能させ、
前記算出手段によるクラスタエネルギーの算出は、前記各点であってクラスタに隣接する注目点ｘと、該注目点ｘを含まないクラスタに属する点ｙとの間の距離‖ｘ−ｙ‖を変数とする相互影響値ｆｒ（‖ｘ−ｙ‖）の総和により定義される
ことを特徴とする画像処理用マスク生成プログラム。
【請求項８】
画像を受け付ける受付手段と、
前記受付手段によって受け付けられた画像を対象として、該画像内の画素値と前記請求項１から６のいずれか一項に記載の画像処理用マスク生成方法、又は前記請求項７の画像処理用マスク生成プログラムによって生成された画像処理用マスク内の閾値とを比較するマスク処理を行うことによって、ハーフトーン画像を生成するマスク処理手段と、
前記マスク処理手段によって生成されたハーフトーン画像を出力する出力手段
を具備することを特徴とする画像処理装置。
【請求項９】
画像処理装置を、
画像を受け付ける受付手段と、
前記受付手段によって受け付けられた画像を対象として、該画像内の画素値と前記請求項１から６のいずれか一項に記載の画像処理用マスク生成方法、又は前記請求項７の画像処理用マスク生成プログラムによって生成された画像処理用マスク内の閾値とを比較するマスク処理を行うことによって、ハーフトーン画像を生成するマスク処理手段と、
前記マスク処理手段によって生成されたハーフトーン画像を出力する出力手段
として機能させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理用マスク生成方法、画像処理用マスク生成プログラム、画像処理装置及び画像処理プログラムに関する。
【背景技術】
【０００２】
特許文献１には、従来と異なる印刷性能を有する網点を提供することを課題とし、各網点がランダムに配置され、一様な網点面積率の画像領域内において、半数の網点が隣接する網点と接合する網点面積率が、５０％を超える値に設定され、また、各網点が隣接する網点と接合するときに、隣接する網点と接合する点である複数の接合点が、特定の網点面積率において同時には接合しないことが開示されている。
【０００３】
特許文献２には、ハイライト側では確実にドットがつき、中間調ではざらつきが低減されかつドットゲインの少ない画像を発生させることができる閾値マトリクスを作成することを課題とし、１以上の所定個の画素からなる最小サイズのドットと、ドットパターンの中間調でのパターン周波数ｒと、各網パーセントにおける最小サイズのドットの新規設定ドット数を決定し、この最小サイズのドットと中間調のパターン周波数と新規ドット数の制限下に、各網パーセントにおいて最適ドットパターンが生成されるような閾値を順次設定することで、出力システムに最適な閾値マトリクスを作成することが開示されている。
【０００４】
特許文献３には、走査方向の画像のむらの目立ちにくいドットパターンを生成することを可能とする閾値マトリクスを提供することを課題とし、連続調画像を２値画像であるドットパターンに変換する閾値マトリクスにおいて、前記閾値マトリクスにより、各画素値が網パーセント５０［％］に対応する値を有する連続調画像データを２値化して生成されるドットパターンを周波数領域に変換した際のグラフの、ドットパターンの少なくとも走査方向に対応する角度θの強度を弱めることで、ドットパターンの走査方向ＭＳのドット周囲長を短くすることが開示されている。
【０００５】
特許文献４には、多階調画像を閾値マトリクスを用いてハーフトーン化する画像処理装置であって、予め定められた基本ドット配置点からドットの成長方向を所定の方法で決定することによって大域的な濃度成長を定めるとともに、前記基本ドット配置点から各ドットを中心とする円同士の重なり面積値に基づいてドットの優先順位を決定することによって局所的な濃度成長を定めてなる閾値マトリクスを格納する記憶手段と、入力される多階調画像と前記記憶手段に格納された前記閾値マトリクスで与えられる閾値とを比較してハーフトーン画像を得る比較手段とを備えることを特徴とする画像処理装置が開示されている。
【０００６】
特許文献５には、ブルーノイズ特性を満たすべく周波数特性を規制することにより、ランダム型分散ドットハーフトーンマスクを生成する方法が開示されている。さらに特許文献６には、グリーンノイズ特性を満たすべく周波数特性を規制することにより、ランダム型クラスタドットハーフトーンマスクを生成する方法が開示されている。なお、前記特許文献１〜３も、ランダム型クラスタドットハーフトーンマスクの生成法を開示するものであり、特許文献４はある種の規則型クラスタドットハーフトーンマスクの生成法を開示している。これらの相互関係については後述する。
その他に、非特許文献１〜８に記載の技術がある。これらについては後述する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第３４２７０２６号公報
【特許文献２】特許第４１６８０３３号公報
【特許文献３】特許第４１４３５６０号公報
【特許文献４】特許第４０１００９７号公報
【特許文献５】米国特許第６４９３１１２号公報
【特許文献６】米国特許第５１１１３１０号公報
【非特許文献】
【０００８】
【非特許文献１】Ｂ．  Ｅ．  Ｂａｙｅｒ，  Ａｎ  ｏｐｔｉｍｕｍ  ｍｅｔｈｏｄ  ｆｏｒ  ｔｗｏ−ｌｅｖｅｌ  ｒｅｎｄｉｔｉｏｎ  ｏｆ  ｃｏｎｔｉｎｕｏｕｓ−ｔｏｎｅ  ｐｉｃｔｕｒｅｓ，  Ｐｒｏｃ．  ＩＥＥＥ  Ｉｎｔ．  Ｃｏｎｆ．  Ｃｏｍｍ．，  （１９７３）  （２６−１１）−（２６−１５）
【非特許文献２】Ｈ．  Ｒ．  Ｋａｎｇ，  Ｄｉｇｉｔａｌ  Ｃｏｌｏｒ  Ｈａｌｆｔｏｎｉｎｇ，  ＩＥＥＥ  Ｐｒｅｓｓ，  Ｎｅｗ  Ｙｏｒｋ，  １９９９
【非特許文献３】Ｋ．  Ｉｓｈｉｚａｋａ，  Ｎｅｗ  ｓｐａｔｉａｌ  ｍｅａｓｕｒｅ  ｆｏｒ  ｄｉｓｐｅｒｓｅｄ−ｄｏｔ  ｈａｌｆｔｏｎｉｎｇ  ａｓｓｕｒｉｎｇ  ｇｏｏｄ  ｐｏｉｎｔ  ｄｉｓｔｒｉｂｕｔｉｏｎ  ｉｎ  ａｎｙ  ｄｅｎｓｉｔｙ，  ＩＥＥＥ  Ｔｒａｎｓ．  Ｉｍａｇ．  Ｐｒｏｃ．，  １８（９），  （２００９），  ２０３０−２０４７
【非特許文献４】Ｄ．  Ｌ．  Ｌａｕ，  Ｇ．  Ｒ．  Ａｒｃｅ  ａｎｄ  Ｎ．  Ｃ．  Ｇａｌｌａｇｈｅｒ，  “Ｄｉｇｉｔａｌ  ｈａｌｆｔｏｎｉｎｇ  ｂｙ  ｍｅａｎｓ  ｏｆ  ｇｒｅｅｎ−ｎｏｉｓｅ  ｍａｓｋｓ，”  Ｊ．Ｏｐｔ．  Ｓｏｃ．  Ａｍ．  Ａ，  １６（７），  （１９９９），  １５７５−１５８６
【非特許文献５】Ｖ．  Ｏｓｔｒｏｍｏｕｋｈｏｖ，  Ｐｓｅｕｄｏ−ｒａｎｄｏｍ  ｈａｌｆｔｏｎｅ  ｓｃｒｅｅｎｉｎｇ  ｆｏｒ  ｃｏｌｏｒ  ａｎｄ  ｂｌａｃｋ＆ｗｈｉｔｅ  ｐｒｉｎｔｉｎｇ，  Ｐｒｏｃ．  ９ｔｈ  Ｃｏｎｇ．  Ａｄｖ．  ｉｎ  Ｎｏｎ−Ｉｍｐａｃｔ  Ｐｒｉｎｔ．  Ｔｅｃｈ．，  Ｙｏｋｏｈａｍａ，  （１９９３）  ５７９−５８１
【非特許文献６】Ｖ．  Ｏｓｔｒｏｍｏｕｋｈｏｖ  ａｎｄ  Ｒ．  Ｄ．  Ｈｅｒｓｃｈ，  Ｓｔｏｃｈａｓｔｉｃ  ｃｌｕｓｔｅｒｅｄ−ｄｏｔ  ｄｉｔｈｅｒｉｎｇ，  Ｊｏｕｒｎａｌ  ｏｆ  Ｅｌｅｃｔｒｏｎｉｃ  Ｉｍａｇｉｎｇ，  ８（４），  （１９９９）  ４３９−４４５
【非特許文献７】Ｒ．  Ａ．  Ｕｌｉｃｈｎｅｙ，  Ｔｈｅ  ｖｏｉｄ−ａｎｄ−ｃｌｕｓｔｅｒ  ｍｅｔｈｏｄ  ｆｏｒ  ｄｉｔｈｅｒ  ａｒｒａｙ
【非特許文献８】梶光雄，  ストカスティックスクリーンとその周辺，  日本印刷学会誌，  第３２巻，  第１号，  （１９９５）  ２０−２７
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、画像処理用マスクの生成にあたって、クラスタの形状を指定することなく、画像処理用マスクを生成可能な画像処理用マスク生成方法、画像処理用マスク生成プログラム、画像処理装置及び画像処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【００１０】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１の発明は、画像処理用マスク内の各点におけるクラスタエネルギーを算出する算出ステップと、前記算出ステップによって算出されたクラスタエネルギーの値に基づいて、前記各点に対して昇順又は降順に順位付けを行う順位付ステップと、前記順位付ステップによる処理結果である順位に基づいて、画像処理用マスク内の閾値を割り当てる閾値割当ステップを行い、前記算出ステップによるクラスタエネルギーの算出は、前記各点であってクラスタに隣接する注目点ｘと、該注目点ｘを含まないクラスタに属する点ｙとの間の距離‖ｘ−ｙ‖を変数とする相互影響値ｆｒ（‖ｘ−ｙ‖）の総和により定義されることを特徴とする画像処理用マスク生成方法である。
【００１１】
請求項２の発明は、前記クラスタエネルギーはさらに、注目点ｘと未だ順位付けされていない点によって構成されている空白領域に属する点ｙとの間の距離‖ｘ−ｙ‖を変数とする相互影響値ｆｒ（‖ｘ−ｙ‖）の負総和との、重み付き平均で定義されることを特徴とする請求項１に記載の画像処理用マスク生成方法である。
【００１２】
請求項３の発明は、前記関数ｆｒは、予め定められた強度の凸性を有する２階微分可能関数により定められていることを特徴とする請求項１又は２に記載の画像処理用マスク生成方法である。
【００１３】
請求項４の発明は、前記順位付ステップは、順位ｉを与える際に、昇順に順位付けを行う場合には、より上位の順位が付された点全体を前記算出ステップにおけるクラスタエネルギー算出の対象とし、降順に順位付けを行う場合には、より下位の順位が付された点全体を前記算出ステップにおけるクラスタエネルギー算出の対象とし、前記いずれの場合も、まだ順位付けがされていない点について前記算出ステップによりクラスタエネルギーを算出し、クラスタエネルギーが最小である点に順位ｉを与えることを特徴とする請求項１から３のいずれか一項に記載の画像処理用マスク生成方法。
【００１４】
請求項５の発明は、前記算出ステップは、Ｋ個のクラスタの核点を画像処理用マスク内にランダムに配置し、該クラスタをエネルギー降下によって最適配置に収束させ、前記順位付ステップは、前記Ｋ個の核点にクラスタエネルギーの昇順に通し番号０〜Ｋ−１を与えることを特徴とする請求項１から４のいずれか一項に記載の画像処理用マスク生成方法である。
【００１５】
請求項６の発明は、前記算出ステップは、クラスタの形成を画像の黒色側から白色側又は白色側から黒色側へと成長させ、予め定められた濃度で白色側から黒色側又は黒色側から白色側へと成長を反転させることを特徴とする請求項１から５のいずれか一項に記載の画像処理用マスク生成方法である。
【００１６】
請求項７の発明は、コンピュータを、画像処理用マスク内の各点におけるクラスタエネルギーを算出する算出手段と、前記算出手段によって算出されたクラスタエネルギーの値に基づいて、前記各点に対して昇順又は降順に順位付けを行う順位付手段と、前記順位付手段による処理結果である順位に基づいて、画像処理用マスク内の閾値を割り当てる閾値割当手段として機能させ、前記算出手段によるクラスタエネルギーの算出は、前記各点であってクラスタに隣接する注目点ｘと、該注目点ｘを含まないクラスタに属する点ｙとの間の距離‖ｘ−ｙ‖を変数とする相互影響値ｆｒ（‖ｘ−ｙ‖）の総和により定義されることを特徴とする画像処理用マスク生成プログラムである。
【００１７】
請求項８の発明は、画像を受け付ける受付手段と、前記受付手段によって受け付けられた画像を対象として、該画像内の画素値と前記請求項１から６のいずれか一項に記載の画像処理用マスク生成方法、又は前記請求項７の画像処理用マスク生成プログラムによって生成された画像処理用マスク内の閾値とを比較するマスク処理を行うことによって、ハーフトーン画像を生成するマスク処理手段と、前記マスク処理手段によって生成されたハーフトーン画像を出力する出力手段を具備することを特徴とする画像処理装置である。
【００１８】
請求項９の発明は、画像処理装置を、画像を受け付ける受付手段と、前記受付手段によって受け付けられた画像を対象として、該画像内の画素値と前記請求項１から６のいずれか一項に記載の画像処理用マスク生成方法、又は前記請求項７の画像処理用マスク生成プログラムによって生成された画像処理用マスク内の閾値とを比較するマスク処理を行うことによって、ハーフトーン画像を生成するマスク処理手段と、前記マスク処理手段によって生成されたハーフトーン画像を出力する出力手段として機能させることを特徴とする画像処理プログラムである。
【発明の効果】
【００１９】
請求項１の画像処理用マスク生成方法によれば、画像処理用マスクの生成にあたって、クラスタの形状を指定することなく、画像処理用マスクを生成することができる。
【００２０】
請求項２の画像処理用マスク生成方法によれば、注目点ｘと空白領域に属する点ｙとの間の距離によって、クラスタエネルギーを算出することができる。
【００２１】
請求項３の画像処理用マスク生成方法によれば、本構成を有していない場合に比較して、よりざらつきの少ない雑音を有する画像処理用マスクを生成することができる。
【００２２】
請求項４の画像処理用マスク生成方法によれば、順位が未決定の点の中から、クラスタエネルギー最小の点に順位を与えることができる。
【００２３】
請求項５の画像処理用マスク生成方法によれば、エネルギー降下によってクラスタを配置させることができる。
【００２４】
請求項６の画像処理用マスク生成方法によれば、クラスタの成長を制御することができる。
【００２５】
請求項７の画像処理用マスク生成プログラムによれば、画像処理用マスクの生成にあたって、クラスタの形状を指定することなく、画像処理用マスクを生成することができる。
【００２６】
請求項８の画像処理装置によれば、前記請求項１から６のいずれか一項に記載の画像処理用マスク生成方法、又は前記請求項７の画像処理用マスク生成プログラムによって生成された画像処理用マスク内の閾値との比較するマスク処理を行うことによって、ハーフトーン画像を生成することができる。
【００２７】
請求項９の画像処理プログラムによれば、前記請求項１から６のいずれか一項に記載の画像処理用マスク生成方法、又は前記請求項７の画像処理用マスク生成プログラムによって生成された画像処理用マスク内の閾値との比較するマスク処理を行うことによって、ハーフトーン画像を生成することができる。
【図面の簡単な説明】
【００２８】
【図１】本実施の形態の構成例についての概念的なモジュール構成図である。
【図２】本実施の形態を画像形成装置に用いた場合のシステム構成例を示すモジュール構成図である。
【図３】ハーフトーン処理の例を示す説明図である。
【図４】マスク法の第２要素の観点での分類例を示す説明図である。
【図５】４種のハーフトーンマスクにより生成した２値画像の例を示す説明図である。
【図６】２種のランダム型分散ドットハーフトーンマスクによる２値化処理の結果例を示す説明図である。
【図７】本実施の形態による通し番号の生成例を示すフローチャートである。
【図８】図７のフローチャートにおいて使用される、クラスタエネルギー最小点の選択例を示すフローチャートである。
【図９】図７のフローチャートにおいて使用される、点エネルギー最小点の選択例を示すフローチャートである。
【図１０】通し番号ｉ−１が与えられた状態で、次の通し番号ｉを決める際の各点の関係例を示す説明図である。
【図１１】本実施の形態により生成されたランダム型クラスタドットハーフトーンマスクの例を示す説明図である。
【図１２】本実施の形態により生成されたランダム型クラスタドットハーフトーンマスクを用いて２値化処理を行った例を示す説明図である。
【図１３】本実施の形態により生成された２種のランダム型クラスタドットハーフトーンマスクを用いて２値化処理を行った例を示す説明図である。
【図１４】図７のフローチャートを高速化した例を示すフローチャートである。
【図１５】図１４のフローチャートにおいて使用される、クラスタエネルギー最小点の選択例を示すフローチャートである。
【図１６】図１４のフローチャートにおいて使用される、点エネルギー最小点の選択例を示すフローチャートである。
【図１７】図１４のフローチャートにおいて使用される、エネルギー値記憶メモリの更新処理例を示すフローチャートである。
【図１８】図１４のフローチャートにおいて使用される、接触クラスタ番号の定義、及び接触エネルギー値の更新処理例を示すフローチャートである。
【図１９】核点配置（収束前後）の例を示す説明図である。
【図２０】本実施の形態により生成されたランダム型クラスタドットハーフトーンマスクを用いて２値化処理を行った別の例を示す説明図である。
【図２１】ランダム型分散ドットマスクと本実施の形態により生成されたランダム型クラスタドットハーフトーンマスクによる２値化画像の周波数特性の比較例を示す説明図である。
【図２２】ランダム型分散ドットマスクと本実施の形態により生成されたランダム型クラスタドットハーフトーンマスクによる２値化画像の周波数特性の比較例を示す説明図である。
【図２３】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００２９】
本実施の形態の説明を行う前に、本実施の形態の前提となる技術について説明する。
ハーフトーン技術分野において、「ランダム型のクラスタドットハーフトーンマスク」という技術領域がある。ハーフトーン技術におけるこの技術領域の位置づけを、まず説明する。
＜１  従来ハーフトーン技術における本技術の位置づけ＞
Ｍ＞Ｎ（Ｍ、Ｎは２以上の整数）として、Ｍ値の原画像をＮ値の画像に変換する処理は減色処理と呼ばれる。デジタル文書／画像を印刷する際には、出力デバイスの出力階調数に合わせた減色処理が行われるが、この減色処理はＮ値の画像で擬似的にＭ値を表現するもので、特に、（デジタル）ハーフトーン処理（スクリーニング・スクリーン処理）と呼ばれる。例えば、Ｍ＝２５６，Ｎ＝２あるいはＮ＝４などがハーフトーン処理の典型的な例と言える。図３（ａ）にＭ＝２５６の原画像の例、図３（ｂ）にこの原画像に対応するＮ＝２の場合のハーフトーン画像の例を図示する。なお、カラーの画像をハーフトーン処理する際には、ＣＭＹＫあるいはＲＧＢなどの各プレーン毎にハーフトーン処理を行い、デバイスで出力する際に順次重ね合わされる。また、出力デバイスの出力解像度に応じて、多くの場合にはハーフトーン処理前に解像度変換（主に拡大）処理が行われる。
【００３０】
＜１．１  ハーフトーン技術の分類＞
従来のハーフトーン技術の概要については、非特許文献２、非特許文献８などを参考にすることができる。本節では、部分的にこれらの文献も参考にしながら、従来のハーフトーン技術を大局的な観点から整理する。ハーフトーン技術は、歴史的な流れの観点でそれぞれを括って整理するというのが一般的だが、数学的な観点から見ると遠回りになる傾向がある。そこで、ここでは従来のハーフトーン技術を並列に俯瞰して以下の３つの要素を抽出し、数学的に単純な形で全体をまとめて整理・分類する。
・第１要素：処理方法
・第２要素：ハーフトーン画像タイプ
・第３要素：志向モデル（より狭義には評価関数／生成アルゴリズム）
これらの３つの要素は、いずれも画質向上という目的のための異なる要素であり、任意のハーフトーン技術は基本的にこの３つの要素の掛け合わせで表現できる。直感的には、第３要素で決めたモデル（評価関数）を利用して、第２要素で決めたタイプのハーフトーン画像を、第１要素の処理方法で生成する、という見方ができる。以下、簡単のためにＭ＝２５６のグレー画像に対し、Ｎ＝２（つまり２値）でハーフトーン処理を行う場合を前提にして、上記３つの要素の詳細について説明する。なお、ＣＭＹＫ画像の場合や、Ｎ＞２（多値出力）での方法などに関しても、一部には固有の議論が必要だが、基本的には同様のことが当てはまる。
【００３１】
＜１．１．１    第１要素：処理方法＞
処理方法の観点からは、ハーフトーン技術は以下に大別される。
・単点処理法：原画像の１画素から２値画像の１画素を決定する方法
・適応処理法：原画像の複数画素から２値画像の１画素を決定する方法
単点処理法の代表的な方式としてマスク法がある。マスク法は、離散格子上に記憶したデータで原画像を周期的に覆い、原画像の各点で対応するマスク上の点のデータと一対比較を行って、その大小により出力画像のＯＮ／ＯＦＦを決定するもので、処理の高速性から広く用いられている。前記の格子上に記憶したデータはハーフトーンマスク（閾値マトリクス／ディザマスク）と呼ばれる。マスク法はディザ（リング法）などとも呼ばれるが、ディザという用語は後述の誤差拡散処理なども含んで使われる場合もあるので注意が必要である。マスク法の派生方式として、濃度毎に（マスク）パターンを定義しておいて使うという方法（ｍｕｌｔｉｐｌｅ  ｂｉｔｍａｐ法）もあるが、実用で使われる機会は少ない。また、単点処理法の他の方式として、濃度パターン法と呼ばれる、原画像の１点を複数のドットからなる２値画像で表現するという方式もあるが、これも近年では使われる機会は少ないと考えられる。したがって、現状では単点処理法と言ったらほぼマスク法であると考えてよい。マスク法の場合はマスク生成処理自体が本質的にハーフトーン処理の画質に関わっているので、単にマスク法ではなく、マスクの生成方法自体をこの第１要素に含めて考えてもよい。
適応処理法は、原画像の画素値を２値化する際に周囲の画素の２値化状態を加味する方式であり、一般に単点処理法と比較して処理負荷は掛かるが高画質な画像を得ることができる。代表的な方法に誤差拡散法があり、マスク法と同様に広く用いられている。平均誤差最小法と呼ばれる誤差拡散法と類似のアイデアに基づく方式もある。また、原画像と２値画像の（視覚上の）距離を最小化するという考え方のｄｉｒｅｃｔ  ｂｉｎａｒｙ  ｓｅａｒｃｈと呼ばれる方式も適応処理法に属する（この種の方式は反復計算法として小分類することもある）。
【００３２】
＜１．１．２    第２要素：ハーフトーン画像タイプ＞
一般に、ハーフトーン技術は、得られる画像の見た目の性質の観点からは、クラスタドット／分散ドットと、規則型／ランダム型という２つの観点の掛け合わせによって、以下に大別できる。
・規則型クラスタドットハーフトーン：格子状にクラスタを配置する
・規則型分散ドットハーフトーン：格子状に孤立点を配置する
・ランダム型分散ドットハーフトーン：ランダムに孤立点を配置する
・ランダム型クラスタドットハーフトーン：ランダムにクラスタを配置する
なお上記４種の並び順は、一応、歴史的に登場してきた順番で並べてある。慣習的に言えば、クラスタドットハーフトーンは、クラスタの面積の増減によって濃淡を表現する方式であり、分散ドットハーフトーンは、孤立点の個数の増減で濃淡を表現する方式である。クラスタドットハーフトーンは網点スクリーンとして古くから知られていたが、これに対して分散ドットハーフトーンが後発で登場してきた経緯から、クラスタドットハーフトーンはＡＭ（Ａｍｐｌｉｔｕｄｅ  Ｍｏｄｕｌａｔｉｏｎ：面積変調）スクリーン、分散ドットハーフトーンはＦＭ（Ｆｒｅｑｕｅｎｃｙ  Ｍｏｄｕｌａｔｉｏｎ：周波数変調）スクリーン、と対比的に呼ばれることも多い。後２者のランダム型ハーフトーンについては、確率的（ｓｔｏｃｈａｓｔｉｃ）スクリーンという呼び名も広く使われている。また慣習的にはランダム型ハーフトーン全体をＦＭスクリーンと呼ぶ場合もある。前記の単点処理法におけるマスク法についても、上記４種の要素が適用できる。マスク法におけるこれら４つのハーフトーンについては後述する。なお、第１要素における適応処理法は、本質的にランダム型のハーフトーンを志向したものであり、通常は規則型を志向することはない。したがって、実際には第２要素の４種のハーフトーンの全てを志向することができる（考慮する意味がある）のはマスク法だけと考えてよい。
【００３３】
＜１．１．３  第３要素：志向モデル（より狭義には評価関数／生成アルゴリズム）＞
さらに、ハーフトーン技術には、志向モデルという要素がある。代表的なものとしては、以下が挙げられる。
・周波数特性モデルによる方法（ノイズ特性／人間の目の視覚特性／その他数理モデル）
・空間特性モデルによる方法（デバイス出力ドット再現性／デバイス出力歪特性／その他数理モデル）
このような周波数／空間特性といった枠の他にも、デバイス依存／非依存といった観点の枠で見てもよいが、いずれにしても、より下位の要素が本質的な意味を持つ。多くの場合、モデルを特徴付ける評価関数がベースになり、評価関数の値ができるだけ良くなるように、何らかのアルゴリズムを用いて各濃度のパターンを生成してゆくことになる。そのため、この評価関数及びアルゴリズムが第３要素の実体だと考えてよい。また前記のとおり、アルゴリズムの部分は評価関数の適用方法を規定するものであるが、それがハーフトーン処理方法に直結するような場合は、むしろ第１要素の範疇とみなす方が自然かもしれない。また、評価関数についても第１、２要素に直接結びついている場合もあり、逆に第１、２要素に整合するように第３要素のモデルが考えられる場合もある。第３要素自体で複数を組み合わせるような場合も多い。
前述のように、異なる時代に各種のハーフトーン技術が現れてきたという経緯から、かつては、上記の第１要素、第２要素に技術の拠りどころを置くという考え方も多かったが、１９９０年代後半には、ベースとなる第１、２要素の各領域は実質的にほぼ出揃っており、近年では、第１、第２要素内での何らかの組み合わせや、あるいはこの第３要素の領域に拠りどころを置くことが多くなってきている。
【００３４】
＜１．２  マスク法・ハーフトーンマスクの性質＞
本技術は、前節の３つの要素の観点で言えば、以下で表現できる。
・第１要素：単点処理法におけるマスク法
・第２要素：ランダム型クラスタドットハーフトーン
・第３要素：エネルギー最小化理論
第３要素の「エネルギー最小化理論」（空間的な数理モデルの１つ）が本技術の核心となっている。その説明をする前に、本節ではまず第１要素におけるマスク法の概要を説明する。前述のように、マスク法はハーフトーンマスクにより原画像と画素一対比較をする方法で、得られる画像のタイプに応じて第２要素の４種に分けられる。はじめに、この４種のタイプのマスクの関係を図４に示す。なお、図４の対象領域４１０内に示した技術例が、本技術における対象となるものである。
また、図５にこれらのハーフトーンマスクで２値化した画像の例を示す。図５（ａ）の例に示す画像は、規則型クラスタドットハーフトーンマスクを用いて処理した画像である。図５（ｂ）の例に示す画像は、規則型分散ドットハーフトーンマスクを用いて処理した画像である。図５（ｃ）の例に示す画像は、ランダム型分散ドットハーフトーンマスクを用いて処理した画像である。図５（ｄ）の例に示す画像は、ランダム型クラスタドットハーフトーンマスクを用いて処理した画像である。以下、４種のマスクそれぞれを説明してゆく。
【００３５】
＜１．２．１  規則型クラスタドットハーフトーンマスク＞
規則型クラスタドットハーフトーンマスクは、原画像の濃淡を格子状に並んだクラスタの大小で表現するマスクで、古くから網点スクリーンとして知られてきた。塊状にドットを集めて出力するため出力デバイスの再現性能が低くても比較的安定した再現を得ることができ、印刷／デジタルプリントの領域で古くから用いられてきている。なお、ここで塊状というのは必ずしも円形に近いとは限らず、ライン形状なども可能であり、一般に複数の点を規則的に集合させて再現する場合を指すものとする。塊状に配置するクラスタは通常格子点上に並べられるため、カラー出力時には、例えば、Ｃ：１５度、Ｍ：７５度、Ｙ：０度、Ｋ：４５度などの角度を付けた格子を使用するなど、色間のモアレ（低周波の干渉パターン）が起こりにくくするよう工夫される。各格子の格子点の間隔がクラスタのサイズ、つまり出力時の分解能に対応しており、一般には線数（Ｌｉｎｅ  Ｐｅｒ  Ｉｎｃｈ）などの単位で分解能が表現され、例えば１７５線などが使用される。格子は直交格子のほか、直交格子を含む任意の２次元（斜交）格子が利用できる。前述のように塊状にドットを固めて出力するため、安定した出力を得ることができるが、分解能が低く、また色間の干渉としてロゼッタパターンが視覚されるという欠点もある。
【００３６】
＜１．２．２  規則型分散ドットハーフトーンマスク＞
規則型分散ドットハーフトーンマスクは、原画像の濃淡を格子状に並んだ孤立点の増減で表現するマスクを指す。孤立点で出力するため、クラスタドットハーフトーンマスクと比較して高分解能な出力が得られるが、格子状のパターンが目立つという欠点がある。なお実際は、この規則型分散ドットハーフトーンマスクは、規則型クラスタドットハーフトーンマスクでクラスタサイズが１である特別な場合として定義できる。そのため、規則型クラスタドットハーフトーンマスクと比較して種類（パラメータ）は少なく、厳密な意味では、Ｂａｙｅｒマスク（非特許文献１）のみとも言える、なお、前出の図５（ｂ）に示す例がＢａｙｅｒマスクでの２値化結果である。
【００３７】
＜１．２．３  ランダム型分散ドットハーフトーンマスク＞
ランダム型分散ドットハーフトーンマスクは、ランダムかつ歪が少ないように孤立点を分散させて画像を表現するためのマスクを指す。このマスクは規則型クラスタドットハーフトーンマスクと比較して、高分解能であり、カラー出力時の干渉（モアレ）にも比較的強く、規則型分散ドットハーフトーンのような格子状パターンの心配がない。その反面でザラツキやマスク周期パターンが見えやすいという欠点があるが、近年の出力デバイスの再現性能（主に分解能）の向上によりザラツキやかすれなどの問題が改善傾向にあるため、近年使用される機会が増えてきている。特に、孤立点の再現性のよいインクジェットプリンタでは、第１要素で挙げた誤差拡散法と共に広く使用されている。ブルーノイズマスク（特許文献６）やｖｏｉｄ−ａｎｄ−ｃｌｕｓｔｅｒマスク（非特許文献７）がこのタイプのマスクの例として知られる。なお、単にランダムな孤立点を持ったマスクとして、かつては「砂目スクリーン」などが知られていたが、画質の観点からは現在では対象外の技術と考えてよく、ここでは、ランダム型といったらランダムで低歪であるものとする。また、「ランダムかつ歪が少ない孤立点」という状態を概念的に表す語として、「低周波成分が少ないホワイトノイズ」という意味で、ブルーノイズという語が定着している。
【００３８】
＜１．２．４    ランダム型クラスタドットハーフトーンマスク＞
ランダム型クラスタドットハーフトーンマスクは、ランダムかつ歪が少ないようにクラスタを分散させて画像を表現するためのマスクであり、ランダム型分散ドットハーフトーンマスクと同様、モアレに強いという性質を持つ。また、規則型クラスタドットハーフトーンマスク法と同様に、出力デバイスの再現性能が低くても比較的安定な再現性を得ることができる。確率的クラスタドットハーフトーンマスク（非特許文献５，６）やグリーンノイズマスク（特許文献５、非特許文献４）がこのタイプのマスクの例として知られる。また、「ランダムかつ歪が少ないクラスタ」という状態を概念的に表す語として、「低周波／高周波成分が少ないホワイトノイズ」という意味で、グリーンノイズという語が定着している。なお正確には、前述のブルーノイズと共に、パワースペクトルのＲＡＰＳＤ（Ｒａｄｉａｌｌｙ  Ａｖｅｒａｇｅｄ  Ｐｏｗｅｒ  Ｓｐｅｃｔｒｕｍ  Ｄｅｎｓｉｔｙ：環状平均プロファイル）の形状によって規定される。
【００３９】
＜１．２．５  ４種のマスクの相互関係＞
以上４種のマスクに加えて、図４に示すように、規則型とランダム型との境界領域に近いタイプのマスクもある。また、クラスタドットがごく少数のドットで形成される場合は分散ドットに近い性質も持ち、これも境界領域と言える。これらにも簡単に言及しておくと、例えば無理正接スクリーンの一部や、Ｒｏｔａｔｅｄディザ、さらに特許文献４に記載されたマスクなどもこれらの領域に含めることができる。
マスク法はそれぞれ異なる年代に異なるタイプが登場してきたという経緯があるため、呼び方や概念などが整理されていない側面があるが、歴史的な経緯を除外して数学的な観点から整理すると、上記のように第２要素の形で単純に整理できる。マスクデザインの観点からは、このような第２要素の形を決めた上で、第３要素のモデルをどう決めてゆくか、ということになる。ランダム型分散ドットハーフトーンマスクとランダム型クラスタドットハーフトーンマスクは、前述のブルーノイズ／グリーンノイズという概念的で広義な周波数特性モデルによって、それぞれ広義に第２要素を直接規定しているように見られることもあるが、マスクをデザインする場合に、結果的にこれらの周波数特性モデルに近い特性を持つマスクが得られるにしても、実際には第３要素においてこれらの周波数特性モデルを使用しない方式も数多い。実際に、第１、第２要素と比較して、実質的に第３要素はずっと多くのアプローチが取られており、この部分で本質的に技術／画質の工夫／進展が現れる場合も多い。後述する本技術もこの範疇に属している。
【００４０】
＜１．３  ランダム型クラスタドットハーフトーンマスクの性質＞
以下、本技術が主眼とする「ランダム型クラスタドットハーフトーンマスク」に議論を移す。なお、規則型クラスタドットハーフトーンマスクがＡＭスクリーン、ランダム型分散ドットハーフトーンマスクがＦＭスクリーンと呼ばれてきた経緯から、ランダム型クラスタドットハーフトーンマスクは、場合によってＡＭ−ＦＭハイブリッドスクリーンなどと呼ばれることもある。前述のように、このランダム型クラスタドットハーフトーンマスクには、大きく分けて２つのタイプ、すなわち確率的クラスタドットハーフトーンマスクとグリーンノイズマスクとがある。以下、これらの２つのタイプの性質について述べる。
【００４１】
＜１．３．１  確率的クラスタドットハーフトーンマスク（非特許文献５、非特許文献６）＞
実用に耐えうるランダム型クラスタドットハーフトーンマスクが初めて発表されたのは、１９９３年のＯｓｔｒｏｍｏｕｋｈｏｖによる非特許文献５が初めてと考えられる。ここで提示された技術は、後に改良が加えられて確率的クラスタドットハーフトーンマスク（非特許文献６）として再発表された。この技術では、マスク内にランダムかつ歪が少ないように「核点」を配し、ボロノイ多角形分割を用いることにより各核点を含むクラスタ形状を決定し、後は段階的にクラスタが成長するように閾値を割り当てるという考え方を取っている。特許文献１に提示された技術は、この確率的クラスタドットハーフトーンマスクの領域の技術と言え、Ｏｓｔｒｏｍｏｕｋｈｏｖによる方式に似た考え方により、ボロノイ多角形分割してそれを網点セルとしてボロノイ母点からクラスタ成長させている。また、特許文献２，３に提示された技術もこの領域に入るタイプとみなされるが、周波数特性モデルなども利用している。
【００４２】
＜１．３．２  グリーンノイズマスク（特許文献５、非特許文献４）＞
ついで、１９９９年になって前記の確率的クラスタドットハーフトーンマスクとは少し異なるタイプのマスクが、グリーンノイズマスクと名付けられてＡｒｃｅ，Ｌａｕらによって発表された。この方法は、ランダム型分散ドットハーフトーンマスクの代表であるブルーノイズマスクの考え方を応用したもので、簡単に言えば「ブルーノイズマスクのクラスタ版」のようなものと言える。つまり、ブルーノイズマスクでは孤立点が徐々に点灯していくのに対し、グリーンノイズマスクでは、所定サイズのクラスタが徐々に点灯していく。なお、孤立点＝高周波の呼び名であるブルーノイズに比較して、「所定サイズのクラスタ」という概念は周波数特性として広い表現をすると「中周波域」に対応しており、その領域に対応する語としてグリーンノイズという語が充てられている。
【００４３】
＜１．３．３  ２方式の相違点と、一般的な問題点＞
前記の確率的クラスタドットハーフトーンマスクとグリーンノイズマスクは、共にランダムかつクラスタ状の構造を持つため視覚的にも類似の結果を与える。実際に、一部の濃度ではほとんど差異がないレベルに近い場合もある。しかし、確率的クラスタドットハーフトーンマスクが「クラスタが成長する」というＡＭスクリーンの流れをベースにしているのに対して、グリーンノイズマスクは、クラスタを点とみなしてしまえば、「点の個数が増大する」というＦＭスクリーンの流れをベースにしていると言うことができる。実際に、確率的クラスタドットハーフトーンマスクは、濃度の増大と共にピークとなる周波数成分には基本的な変化はないが、グリーンノイズマスクは、徐々にピークとなる周波数成分は高周波側に移行する、という特徴がある。
ランダム型のハーフトーンマスクのうちでは、クラスタドットの方が分散ドットに比べてマスク生成における調整要素がより広く、画質を安定させやすいという面がある。そのため、クラスタドットの方が分散ドットよりもマスク生成の自由度が高い。しかしそれでも第３要素のモデルが画質に影響を与え、少なくとも上記従来技術は規則型クラスタドットハーフトーンと比較してザラツキやマスク周期のパターン顕在化の懸念がある。よりよいモデル／アルゴリズムでマスク生成することが必要となっている。また、非特許文献５、特許文献１に記載の技術のようにボロノイ母点を核点としてボロノイ多角形を均一に埋めるように等方的にクラスタ成長させる、という概念は自然な考え方だが、核点から等方的にクラスタ成長させるという条件は、少なくとも単色での画質を考慮する上で必要条件でも充分条件でもなく、確率的クラスタドットハーフトーンマスクの技術領域においては、数学的な観点からはより最適な画質を追求し得る可能性が残されている。
【００４４】
＜２  エネルギーを用いたランダム型分散ドッハーフトーンマスクの生成方法＞
本技術では、数学的に正しく定義されたエネルギーを用いて、ランダム型クラスタドットハーフトーンの生成を行う。その説明をする前に、参考のために、エネルギーを用いてランダム型分散ドッハーフトーンマスクを生成する方法について説明する。
【００４５】
＜２．１  ランダム型分散ドットハーフトーンマスクの生成＞
以下、エネルギーを用いた、ランダム型分散ドットハーフトーンマスクの生成方法及びエネルギーの定義を簡単に説明する。
【００４６】
＜２．１．１  生成アルゴリズム＞
ランダム型分散ドットハーフトーンマスクの生成においては、ｗ×ｈサイズの閾値マトリクス内の全ての点を対象として、以下の工程により、マトリクス内の各点に０，…，ｌ−１の閾値番号を割り当てる。
１．エネルギーが最小となる順に０，…，ｗｈ−１までの通し番号を与え、
２．後に各通し番号をｗｈ／ｌで除算する
ここで、ｌは要求される階調数で、好適にはｌ＝２５６などが使われる。閾値マトリクス内から通し番号ｉ∈｛０，…，ｗｈ−１｝を与える点を選択する際には、まだ番号を与えていない点の中で、最もエネルギー値が低い点を選択して番号ｉを与える。この際に、既に０，…，ｉ−１の通し番号を与えた点をエネルギーの対象とする。各注目点でのエネルギーは、注目点と他の対象点との距離を変数とする関数の総和平均として定義される値であり、直感的な説明をすれば、注目点からより遠くにある点ほど値が小さい（影響が小さい）という性質を持つ。図６の例に示すとおり、従来方式であるｖｏｉｄ−ａｎｄ−ｃｌｕｓｔｅｒ法（図６（ａ）の例参照）と本技術による方法で生成した分散ドットハーフトーンマスク（図６（ｂ）の例参照）でそれぞれ２値化した画像を比較すると、本方式の方がザラツキの少ないことが確認できる。第３要素の観点で言えば、ｖｏｉｄ−ａｎｄ−ｃｌｕｓｔｅｒ法はガウシアンフィルタによるｖｏｉｄ／ｃｌｕｓｔｅｒ判別モデルに基づいており、画質上もランダム型分散ドットハーフトーンマスクの標準的な方式とみなされている。
【００４７】
＜２．１．２  エネルギー（点エネルギー）の定義＞
前節、ランダム型分散ドットハーフトーンマスク生成時に使用しているエネルギーについて説明する。なお、このエネルギーは後述の本技術におけるランダム型クラスタドットハーフトーンマスク生成においても使用され、そこでは便宜的に点エネルギーと呼んでいる。これは、ランダム型クラスタドットハーフトーンマスク生成において主に使用されるエネルギーがクラスタエネルギーと名付けるエネルギーであり、これと区別するためである。
２次元平面の部分集合[０，ｗ）×[０，ｈ）上の点集合をＸとして、点ｘ∈Ｘにおける点エネルギーＩ（Ｘ，ｘ，ｆｒ）を以下の（１）式で定義する。なお、以下の説明で点ｘ，ｙ，ｚなどは全て２次元ベクトルであり、例えばｘ＝（ｘ１，ｘ２）などの座標値により特定される。
【数１】
0005891865.tif 000002
ここで、ｆｒ（‖ｘ−ｙ‖）は、２点ｘ，ｙ∈Ｘの間で生じる相互影響値を意味しており、ｒは、‖ｘ−ｙ‖＞ｒの場合に相互影響値が０になることを明示するための添え字である。
｜Ｘ｜は点集合Ｘの点の総数を意味する。また、距離‖・‖は、空間[０，ｗ）×[０，ｈ）上の周期境界距離であり、以下の（２）式で定義される。
【数２】
0005891865.tif 000003
以上で定義されるＩは、注目点ｘ∈Ｘと、ｘから半径ｒ以内にある点ｙ∈Ｘ（ｘを含む）とのｆｒ値総和平均を意味する。
【００４８】
集合Ｘに対して、各点ｘの点エネルギーを最小化することによって、均一かつ等方な点分散が得られることを保証するためには、関数ｆｒに数学的に保証された条件を与える必要がある。表記を簡単化するために、エネルギー勢力半径ｒ＞０（定数）を導入し、区間[０，１]上で定義された関数ｈにより正規化して、以下の（３）式で表記する。
【数３】
0005891865.tif 000004
このとき、均一かつ等方的な点分散を保証するために、以下に示す３つの条件を課す必要がある。
Ｈ１：ｈはＣ２級で単調減少凸関数
Ｈ２：ｈ（１）＝ｌｉｍｘ→１ｈ’（ｘ）＝ｌｉｍｘ→１ｈ’’（ｘ）＝０
Ｈ３：（ｈ’’（ｘ１／２）／（ｘ１／２））ｐが凸関数（暫定的にはｐ＝１／２）
このような条件を満たすｈとしては、例えば以下の（４）式が挙げられる。
【数４】
0005891865.tif 000005
簡単な説明をするならば、各点が互いにより遠くに離れた状態にあるほど各点間に働く影響値ｆｒが小さくなりエネルギーが最も低くなる、というイメージであり、それを数学的に正しく保証するために、上記Ｈ１−Ｈ３が必要となる。このような定義を満たす関数h を使うことで、「エネルギー最小の状態が均等に散らばった点分散である」ということを保証することができる。なお、各点ｘでのエネルギー計算は、実用上はＩ（Ｘ，ｘ，ｆｒ）の代わりに、より簡単な以下の（５）式のエネルギー値を使ってもよい。
【数５】
0005891865.tif 000006
Ｊ１は、注目点ｘ∈Ｘと、ｘから半径ｒ以内にあるその他の点ｙ∈Ｘとのｆｒ値総和を意味する。
【００４９】
＜３  本実施の形態の構成例＞
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図１は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（コンピュータ・プログラム）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム（コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム）、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係等）の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、２以上の値（もちろんのことながら、全ての値も含む）が同じであってもよい。また、「Ａである場合、Ｂをする」という意味を有する記載は、「Ａであるか否かを判断し、Ａであると判断した場合はＢをする」の意味で用いる。ただし、Ａであるか否かの判断が不要である場合を除く。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」（社会システム）にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、外部記憶媒体、通信回線を介した記憶装置、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）内のレジスタ等を含んでいてもよい。
【００５０】
本実施の形態である画像処理用マスク（以下、単にマスクともいう）生成装置は、画像処理用マスクを生成するものであって、図１の例に示すように、エネルギー算出モジュール１１０、順位付モジュール１２０、閾値割当モジュール１３０、出力モジュール１４０を有している。ここで画像処理用マスクとは、多階調画像をハーフトーン画像に変換（減色処理）するために用いられるものである。特に、この画像処理用マスクは、エネルギー最小化理論を応用して生成される、「ランダム型のクラスタドットハーフトーンマスク」である。つまり、本画像処理用マスク生成装置は、「ランダム型のクラスタドットハーフトーンマスク」を生成する。
【００５１】
エネルギー算出モジュール１１０は、順位付モジュール１２０と接続されている。エネルギー算出モジュール１１０は、画像処理用マスク内の各点におけるクラスタエネルギーを算出する。なお、クラスタエネルギーの算出は、注目点ｘと、その注目点ｘを含まないクラスタに属する点ｙとの間の距離‖ｘ−ｙ‖を変数とする相互影響値ｆｒ（‖ｘ−ｙ‖）の総和により定義される。また、クラスタエネルギーはさらに、注目点ｘと空白領域に属する点ｙとの間の距離‖ｘ−ｙ‖を変数とする相互影響値ｆｒ（‖ｘ−ｙ‖）の負総和との、重み付き平均で定義されるようにしてもよい。また、関数ｆｒは、予め定められた強度の凸性を有する２階微分可能関数により定められているようにしてもよい。また、エネルギー算出モジュール１１０は、Ｋ個のクラスタの核点を画像処理用マスク内にランダムに配置し、そのクラスタをエネルギー降下させて生成するようにしてもよい。また、エネルギー算出モジュール１１０は、予め定められた濃度で、クラスタの形成を黒側から白側又は白側から黒側へと反転させるようにしてもよい。例えば、画像処理用マスクは、ｗ×ｈの大きさを有している矩形（マトリクス、行列）である。その場合、例えば、クラスタエネルギー最小順に通し番号０〜ｗｈ−１を与えながら成長させ、閾値割当モジュール１３０によって、その得られた通し番号を０〜ｌ−１（ｌは要求される階調数）に割り付けることになる。
【００５２】
順位付モジュール１２０は、エネルギー算出モジュール１１０、閾値割当モジュール１３０と接続されている。順位付モジュール１２０は、エネルギー算出モジュール１１０によって算出されたクラスタエネルギーの値に基づいて、昇順又は降順に順位付けを行う。
閾値割当モジュール１３０は、順位付モジュール１２０、出力モジュール１４０と接続されている。閾値割当モジュール１３０は、順位付モジュール１２０による処理結果である順位に基づいて、画像処理用マスク内の閾値を割り当てる。
出力モジュール１４０は、閾値割当モジュール１３０と接続されている。出力モジュール１４０は、閾値割当モジュール１３０によって閾値が割り当てられた画像処理用マスクを出力する。ここで、画像処理用マスクを出力するとは、例えば、他の画像処理装置（プリンタ等の印刷装置等）へ渡すこと、記憶装置（メモリーカード等の記憶媒体等を含む）へ書き込むこと等が含まれる。
【００５３】
図２は、本実施の形態を画像形成装置２００に用いた場合のシステム構成例を示すモジュール構成図である。
画像形成装置２００は、図２の例に示すように、画像受付モジュール２１０、マスク処理モジュール２２０、出力モジュール２３０、マスク生成装置１００を有している。画像形成装置２００は、多階調画像を対象として、画像処理用マスクを用いてハーフトーン化するものである。なお、画像形成装置２００は、マスク生成装置１００の替わりに、マスク生成装置１００が生成した画像処理用マスクを記憶しているマスク記憶モジュールを有していてもよい。
【００５４】
画像受付モジュール２１０は、マスク処理モジュール２２０と接続されており、画像を受け付けて、その画像をマスク処理モジュール２２０へ渡す。画像を受け付けるとは、例えば、スキャナ、カメラ等で画像を読み込むこと、ファックス等で通信回線を介して外部機器から画像を受信すること、ハードディスク（コンピュータに内蔵されているものの他に、ネットワークを介して接続されているもの等を含む）等に記憶されている画像を読み出すこと等が含まれる。画像は、多階調画像（カラー画像を含む）である。受け付ける画像は、１枚であってもよいし、複数枚であってもよい。また、画像の内容として、ビジネスに用いられる文書、広告宣伝用のパンフレット等であってもよい。
【００５５】
マスク処理モジュール２２０は、画像受付モジュール２１０、出力モジュール２３０、マスク生成装置１００と接続されており、画像受付モジュール２１０によって受け付けられた多階調画像を対象として、その多階調画像内の画素値とマスク生成装置１００によって生成された画像処理用マスク内の閾値とを比較するマスク処理を行うことによって、ハーフトーン画像を生成する。マスク生成装置１００から受け取る画像処理用マスクは、前述のように生成した画像処理用マスクであってもよいし、マスク生成装置１００が予め生成した画像処理用マスクを記憶しておき、マスク処理モジュール２２０からの要求によって記憶している画像処理用マスクを選択して渡すようにしてもよい。
【００５６】
出力モジュール２３０は、マスク処理モジュール２２０と接続されており、マスク処理モジュール２２０によって生成されたハーフトーン画像を受け取り、その画像を出力する。画像を出力するとは、例えば、プリンタ等の印刷装置で印刷すること、ディスプレイ等の表示装置に表示すること、ファックス等の画像送信装置で画像を送信すること、画像データベース等の画像記憶装置へ画像を書き込むこと、他の情報処理装置へ渡すこと等が含まれる。
【００５７】
＜４  本技術でのランダム型クラスタドットハーフトーンマスク生成＞
本実施の形態に用いる技術は、ランダム型クラスタドットハーフトーンマスクの２つのタイプの方式のうち、確率的クラスタドットハーフトーンマスクのタイプに属するマスクを生成する技術であり、以下のような特徴を備える。
・確率的クラスタドットハーフトーンマスクで通常行われる、ボロノイ多角形などのクラスタの形状（網点セル）の指定を行わない
・クラスタの成長を数学的に正しいエネルギーを用いて行う
クラスタ形状の指定を行わないことにより、マスク内でのクラスタ成長の自由度が高くなり、さらに数学的に正しいエネルギーの効果によって、画質の点でもより最適な結果を得ることができる。また、セル分割や周波数変換を行わないで、マスク生成を行い得る。
【００５８】
＜４．１  基本構成（例１）＞
以下、本技術におけるランダム型クラスタドットハーフトーンマスクの生成方法を説明してゆく。閾値マトリクス内の各データ（以下、点あるいは画素と呼ぶ）として、ランダム型分散ドットハーフトーンマスクと同様、０からｗｈ−１までの通し番号を一意に与え、例えば最後にｗｈ／ｌで各データ値を除算すれば、０からｌ−１までの閾値番号がマスク内の各画素に割り振られ、閾値マトリクスが生成される。通し番号順に点を点灯させたときに、歪がないランダムなクラスタ分布を実現するために、エネルギーの概念を使用する。
【００５９】
＜４．１．１  ステップ１：準備＞
はじめに、マスク生成に必要なパラメータやメモリの準備／初期化を行う。
まず、パラメータとして、以下を定める
・（ｗ，ｈ）：マスク縦横サイズ（各単位：ピクセル）
・Ｌｄ：出力デバイスの分解能（単位：ｄｐｉ）
・Ｌｏ：出力相当線数（単位：ｌｐｉ）
・Ｋ＝ＩＮＴ（ｗｈ・（Ｌｏ／Ｌｄ）２＋１）：総核点数（単位：個）
・ｒ：エネルギー勢力半径（単位：ピクセル）
・ｆｒ：相互影響値関数（条件Ｈ１−Ｈ３を満たす関数ｈにより（３）式で定義）
【００６０】
ここで、Ｌｄは出力デバイスの分解能で、単位は１インチ当たりの線数とし、Ｌｏはデバイスで出力時に所望とする分解能で、単位は同じく１インチ当たりの線数とする。一般に、（ｗ，ｈ）サイズマスクにＫ個の核点を配置して、分解能Ｌｄ（ｄｐｉ）で出力したときの相当線数Ｌｏは以下の（６）式で与えられる。
【数６】
0005891865.tif 000007
したがって、先にＬｏが与えられた場合は、上記のように逆算してＫを決めることができる。なお、ＩＮＴ（ｘ）はｘの整数部分を返す関数とする。総核点数Ｋは、最終的に生成されるマスクの分解能（総当線数）に直接的に影響を与え、Ｋを大きくするほど、マスク内に多くの核点が置かれ、結果的に出力時の分解能を上げることになる。逆にＫの値が小さければ分解能は小さくなる。エネルギー勢力半径（実数値）ｒは０＜ｒ≦ｍｉｎ{ｗ，ｈ}／２となるように定義すればよいが、一般には大きい値を設定する。大きい値を設定するとエネルギー計算の演算量は増えるが、より広い範囲でエネルギーが考慮され、マスク内の歪を小さくできる。相互影響値を決めるための関数ｈはＨ１−Ｈ３を満たせばよいが、必要以上に強い凸性を持つ関数を指定しない。ｒとｈを決めることにより、関数ｆｒが定まる。
【００６１】
以上のパラメータの例として、例えば、ｗ＝ｈ＝１６０、Ｌｄ＝２４００、Ｌｏ＝２５０等とすることができる。この例の場合、Ｋ＝２７８となる。つまり、１６０×１６０マトリクスに２７８個の核点をランダムかつ均等に配置することにより、２４００ｄｐｉの出力デバイスで２５０線相当の分解能を持つランダム型クラスタドットハーフトーンマスクを生成するということになる。ｆｒの定義には、例えば、前記（４）式のｈ（ｘ）＝（２／３−ｘ＋１／３・ｘ３）２とｒ＝４８．０などを用いて（３）式で定義することができる。あるいはｒ＝ｍｉｎ{ｗ，ｈ}／２＝８０．０としてもよい。
【００６２】
次に、以下に示すような定義及びメモリの準備／初期化を行う。
・ＢＬＡＣＫ＝０，ＷＨＩＴＥ＝１，ＥＭＰＴＹ＝２と定義
・Ｄ＝{０，…，ｗ−１}×{０，…，ｈ−１}：マスク定義域（メモリサイズ）
・ｖ（ｉ）：通し番号ｉ＝０，…，ｗｈ−１に対応するＤ上の点（ｘ，ｙ座標）
→  初期化不要
・ｃｎｕｍ（ｘ）：各点ｘ∈Ｄが属するクラスタ番号
→  全てのｘ∈Ｄに対してｃｎｕｍ（ｘ）＝−１で初期化
・ｐａｔｔ（ｘ）：各点ｘ∈Ｄの２値パターン
→  全てのｘ∈Ｄに対してｐａｔｔ（ｘ）＝ＥＭＰＴＹで初期化
・ｔｈ（ｘ）：各点ｘ∈Ｄに対する閾値マトリクスの閾値
→  初期化不要
【００６３】
以下に示すステップ２でｗ×ｈサイズマスク内に一意な通し番号０，…，ｗｈ−１を与え、必要に応じてステップ３で通し番号を０，…，ｌ−１の範囲の値に割り付け、これが最終的な閾値マトリクスの閾値になる。ｖ（ｉ）は、通し番号ｉを与える点ｘ∈Ｄが決まったときに、その点の位置を記憶するためのメモリである。また、ｃｎｕｍ（ｘ）はＫ個の核点に便宜的に０，…，Ｋ−１までの一意な識別番号を与え、ついで、各点ｘ∈Ｄに通し番号を与える際に、ｘがどのクラスタに属するかを記憶／参照するためのメモリとしても使用する。ｐａｔｔ（ｘ）は各通し番号ｉを生成して行く際に、０，…，ｉ−１までの通し番号が付された全点ｖ（ｉ）を点灯させた２値パターンを更新して行くためのメモリである。上記の他にも、必要なメモリは逐次確保して使用する。なお、ｖ（ｉ）は２次元メモリ、ｃｎｕｍ（ｘ）、ｐａｔｔ（ｘ）、ｔｈ（ｘ）は１次元メモリとして管理すると扱いやすい。
なお本技術では、次のステップ２において、上記の相互影響値関数ｆｒにより定義される２種類のエネルギー値Ｊ１、Ｊ２を算出して使用するが、説明上の混乱を避けるために、便宜的に、
・Ｊ１：点エネルギー  （（５）式）
・Ｊ２：クラスタエネルギー  （（７）式：後述）
と呼ぶこととする。Ｊ１については前記のランダム型分散ドットハーフトーンマスクの生成における（５）式で既に説明している。Ｊ２の定義については後述する。なお一般に「エネルギー」という用語はこれらを含めた全体の概念としても使用するので注意する。
【００６４】
＜４．１．２  ステップ２：通し番号０，…，ｗｈ−１の割り付け工程＞
次に、全ての点に対して、一意な通し番号０，…，ｗｈ−１を与える。そのための準備として、以下に示すような内部パラメータ／メモリを準備する。
・ｓａ：クラスタサイズ遊び
・ｓ（ｊ）：クラスタ番号ｊ＝０，…，Ｋ−１のクラスタを構成する総点数
→  ｓ（ｊ）＝０で初期化
・ｓｍｉｎ：現在の最小クラスタ構成点数
→  ｓｍｉｎ＝０で初期化
クラスタサイズ遊びｓａは、核点からクラスタ成長させる際に、クラスタを構成する総点数にどれくらいの差異を許容するかであり、通常はｓａ＝１とするが、場合によってより大きな値に変えてもよい。通し番号の割り付けは図７に例示する工程により行う。
本ステップ２の核心は、Ｄ上の点に通し番号０からｉ−１までがそれぞれ一意に与えられた状態で、既に配置済みのクラスタに接する点の中でクラスタエネルギー最小となる点に次の通し番号ｉを与える方法にある。概念的な理解として、ある点ｘにおけるクラスタエネルギーとは、ｘ（後述の図１０での×）と「ｘが所属しないクラスタ（図１０での黒点）上にある点ｙ」との間の距離を変数とする相互影響値の総和で定義される。そこで、概念的な理解の下でまず全体のフローを説明した後に、次節で実際のクラスタエネルギーの詳細な定義について説明する。
【００６５】
図７に例示するフローチャート１を参照しながら、Ｄ上に通し番号ｉ＝０，…，ｗｈ−１を一意的に定めてゆく工程を説明する。
まずＳ７０２においてｉ＝０と初期化する。Ｓ７０４において、Ｄ内で通し番号がまだ与えられていない点のうち、既に配置したクラスタに接する点の中でエネルギーが最小となる点ｘを選択する。なお、このエネルギー最小点の選択の詳細は図８のフローチャート１ａ、図９のフローチャート１ｂを用いて説明する。（ここで、「既に配置したクラスタに接する点」というのは大局的な意味であって、ｉ＝０，…，Ｋ−１の場合、つまりクラスタの始めの１点目が生成されていない段階では、この接触条件はつけない。これも図８、図９で説明する。）Ｓ７０４においてエネルギー最小点ｘを選択したら、Ｓ７０６に進んで、次の通し番号ｉ＋１を決める際に必要な更新処理を行う。具体的には、Ｓ７０６では、以下のように更新する。
・ｐａｔｔ（ｘ）＝ＢＬＡＣＫ：現時点での２値パターン（通し番号０，…，ｉ−１が付された点を点灯させたパターン）に、通し番号ｉを与えた点を新たに更新する
・ｖ（ｉ）＝ｘ：通し番号ｉを与えた点（の座標）を記憶
・ｃｎｕｍ（ｘ）＝ｊ：通し番号ｉを与えた点が所属するクラスタの番号を登録
・ｓ（ｊ）＝ｓ（ｊ）＋１：通し番号ｉを与えた点が所属するクラスタを構成する総点数の更新
・ｓｍｉｎ＝ｍｉｎ｛ｓ（ｉ）：ｉ＝０，…，Ｋ−１｝：通し番号ｉを与えた時点での最小クラスタ構成総点数を更新
【００６６】
Ｓ７０６の更新処理が終了したら、Ｓ７０８に進んで、通し番号をｉ：＝ｉ＋１と更新する。Ｓ７１０に進んで、ｉ＝ｗｈか否かを判定し、ｉ＝ｗｈであれば全ての通し番号が設定されたとみなし、処理を終了し、ｉ＜ｗｈの場合は、次の通し番号を与えるべく、Ｓ７０４に戻って上記の処理を繰り返す。
以上により、与えられたＤ上に通し番号ｉ＝０，…，ｗｈ−１が一意的に定められる。
この通し番号を後述するステップ３において閾値０，…，ｌ−１に割りつけることで、最終的な閾値マトリクスが決定するが、その説明を行う前に、前記Ｓ７０４において、エネルギー最小点を選択する際の具体的な処理について、以下に説明する。
図８に例示するフローチャート１ａを参照しながら、Ｄ内で通し番号がまだ与えられていない点の中から、既に配置したクラスタに接する点の中でクラスタエネルギーが最小となる点ｘを選択する方法を説明する。
まず、Ｓ８０２において、Ｊｍｉｎを充分大なる値で初期化する。例えばＪｍｉｎ＝１００００００などである。Ｓ８０４に進んで、Ｄ内で通し番号がまだ与えられていない点ｙを取る。例えば、Ｄ上を左上から右下に順に操作して順次設定してもよい。
【００６７】
続いて、Ｓ８０６において、前記点ｙがいずれかのクラスタに接触している場合、そのクラスタ番号を取得する。なおそのような接触があるとすると、定義によりその接触先の点は既に通し番号０〜ｉ−１のうちのいずれかが与えられている点であるということに注意する。具体的には、Ｓ８０６において、点ｙから見て、相対的に上下左右に接する４つの点の集合Ｔ（ｙ）（周期境界距離‖・‖において）のうちでクラスタ番号ｃｎｕｍが与えられた点ｚ∈Ｔ（ｙ）があれば、その中から任意に１点ｚを取って、ｊ＝ｃｎｕｍ（ｚ）と置く。いずれのクラスタとも接触していない場合には、ｊ＝−１と置く。
【００６８】
次に、Ｓ８０８において、選択した点ｙがクラスタサイズを規制しながらクラスタ成長させるための候補点の条件に合っているかをチェックし、合っている場合にのみ候補点とみなして、Ｓ８１０以下に進んでエネルギー計算を行う。具体的には、Ｓ８０８においては、以下の２つの制約条件を設け、２つの条件のうちどちらかが満たされた場合にのみエネルギー計算を行う。
・クラスタを構成する始めの１点目がまだ全ては配置されておらず、点ｙがいずれの配置済みクラスタとも接しない場合、つまり、ｙについてｊ＝−１かつｓｍｉｎ＝０である場合
・点ｙが既に配置したクラスタと接し、かつそのクラスタを構成する画素数が許容範囲内にある、つまり、ｙについてｊ≧０，ｓ（ｊ）≧ｓｍｉｎ，ｓ（ｊ）≦ｓｍｉｎ＋ｓａの場合
【００６９】
Ｓ８０８における上記条件のどちらかが満たされた場合、Ｓ８１０に進む。Ｓ８１０においては、点集合Ｘｉを既に０，…，ｉ−１の通し番号が与えられた点全体とし、点ｙとＸｉの点との間のクラスタエネルギーＪ２を計算し、Ｊｃｕｒｒｅｎｔに代入する。Ｊ２の詳しい計算方法については後述する。なお、ｉ＜Ｋである場合、実質的にクラスタエネルギーＪ２は点エネルギーＪ１と等しくなる。
続くＳ８１２においてＪｃｕｒｒｅｎｔ＜Ｊｍｉｎであれば選択した点ｙの方がエネルギーがより小さいと判断し、Ｓ８１４に進んでＪｍｉｎをＪｃｕｒｒｅｎｔに更新するとともに、最小エネルギー候補点ｘをｘ：＝ｙと更新する。
【００７０】
Ｓ８１６に進んで、ｓｍｉｎ＝０であれば、Ｓ８１８に進み、新たにｙのクラスタ番号をｊ＝ｉで登録する。つまり、ｓｍｉｎ＝０である間は全てのクラスタが発生し終わっていないため、新しいクラスタの核点を決めるたびに、通し番号ｉをそのままクラスタ番号として登録する。
一方、Ｓ８１６においてｓｍｉｎ≠０であれば、Ｓ８２０に進み、全てのＫ個のクラスタは少なくとも１点は配置されているので、新たなクラスタ番号を与えずに、ｙが接触しているクラスタのクラスタ番号ｊを取って、ｊ＝ｊと割り当てる。
【００７１】
Ｓ８２２に進んで、以上の処理を、通し番号が未決定の全てのＤの画素について行われたかどうかを判定し、行われていなければＳ８０４に戻り、次の候補点ｙについて処理を繰り返す。（なお、上記Ｓ８０８やＳ８１２において条件が満たされない場合も、選択した候補点ｙについての処理をやめ、該Ｓ８２２に進んで同様の判定処理が行われる。）
Ｓ８２２において、Ｄ上の全ての画素について処理が終了している場合、最小エネルギー点ｘ及びその点が属するクラスタ番号ｊが求められる。ただし、まれにｉの値がｗｈに近いような大きな値になると、ｓ（ｊ）≧ｓｍｉｎかつｓ（ｊ）≦ｓｍｉｎ＋ｓａというクラスタサイズの制約を満たす中で最小エネルギー点が選択できない場合がある。このような場合を考慮して、Ｓ８２４において、Ｊｍｉｎ値が更新されているかどうかを判定し、Ｊｍｉｎ値が更新されていない場合は、例外的にｓ（ｊ）≧ｓｍｉｎかつｓ（ｊ）≦ｓｍｉｎ＋ｓａというクラスタサイズの制約を外した状態でクラスタエネルギーが最小となる点を求めなおすか、あるいは図９に説明するフローチャート１ｂへ進んで（Ｓ８２６）、単純に点エネルギーが最小となる点を求めなおすかしてｘ及びｊを決定する。なお、上記においてＪｍｉｎ値が更新されているということは、少なくとも一つ最小エネルギー候補点ｘが定義されているということであり、逆にＪｍｉｎ値が更新されていない場合のみ、最小エネルギー候補点が決まっていないということに注意する。
最後にＳ８２８に進み、求めたｘ及びｊを元の図７の例に示すフローチャート１に返して、Ｓ７０６以降の通し番号ｉを与える処理に進む。これについては前述した。
【００７２】
前記、Ｓ８２４において、最小エネルギー候補点が求められてない場合に、再度最小エネルギー候補点を定める処理の例を、図９のフローチャート１ｂに例示する。クラスタ構成画素数などの条件を満たすようにクラスタエネルギーが最小となる点を選択することができない場合の方法として、フローチャート１ｂでは、点エネルギー最小となる点を選択している。全体のフローについては、図８に示すフローチャート１ａと同様であるから説明を省略するが、フローチャート１ｂではクラスタの接触制約を外して点エネルギー最小点を選択するため、クラスタの接触に関してはチェックが不要となり、例えばＳ９０８に示す判定処理においてｊ≠−１の場合、つまりいずれかのクラスタと接触する場合（接触先は問わない）に点エネルギー計算の候補点とすればよいことに注意する。
なお、このように最小クラスタエネルギー点が取得できない場合に最小点エネルギー点を取得しなおす構成にしているのは、ほとんどの場合に最小クラスタエネルギー点が取得できるため、僅かに失敗した場合に限って最小点エネルギー点を選択しなおすという方が効率的なためである。例えば図８と図９のフローチャートで共通な部分は共通化してもよい。その場合、効率は悪くなるが機能面には変わりはない。
【００７３】
＜４．１．３  クラスタエネルギーの定義＞
図１０を参照しながら、前記クラスタエネルギーＪ２計算の詳細を説明する。ｉ番目の点を選択する際には、具体的には、便宜的に
・Ｘｉ＝｛ｘ∈Ｄ：ｐａｔｔ（ｘ）＝ＢＬＡＣＫ｝
（既に通し番号０，…，ｉ−１が与えられた点全体）と定義して、前記ステップ２で、
・まだ通し番号が割り振られていない点ｙ∈Ｄ＼Ｘｉであって、
・ｙの上下左右に接触する４点Ｔ（ｙ）のどれかがいずれかのクラスタ（番号ｊ）に属していて、
・クラスタ（番号ｊ）を構成する点数が、現状の最小クラスタ構成点数からの差分が高々ｓａであること
を満たすような点の中で、クラスタエネルギーＪ２（Ｘｉ，ｙ，ｆｒ，ｉ）が最小の点を選択する。
【００７４】
この注目点ｘでのクラスタエネルギーＪ２（Ｘｉ，ｘ，ｆｒ，ｉ）は、以下の（７）式で定義される。
【数７】
0005891865.tif 000008
図１０と対応させて、（７）式の意味を説明する。まず、重みｐ（ｉ）はグレーレベル値を意味し、ｐ（ｉ）＝ｉ／ｗｈで定められる、０から１の間の実数として定義される。また、注目点をｘとして（図１０の１０１０に示す×）、Ｃｉは以下で定義する。
・Ｃｉ（ｘ）＝｛ｙ∈Ｘｉ：ｃｎｕｍ（ｘ）＝ｃｎｕｍ（ｙ）｝
つまり、Ｃｉ（ｘ）は０，…，ｉ−１までの通し番号が付された点全体のうちで、現在の注目点ｘが属するクラスタを構成する点全体を指す（図１０の１０２０内、斜め線で示した点全体）。従って、Ｘｉ＼Ｃｉ（ｘ）は、既に通し番号０，…，ｉ−１が与えられた点であって、注目点ｘが接触するクラスタに属さない点全体を表す（図１０の黒点全体）。またＤ＼Ｘｉはまだ通し番号が与えられていない点全体（図１０の空白領域の点全体）を指す。距離ｒ以上離れれば、ｆｒ＝０だから、ｙは‖ｘ−ｙ‖≦ｒの範囲に限定してよい。したがって、（７）式における２つの和は、それぞれ以下のような意味を持つ。
・「注目点ｘにおいて、ｘを含まないクラスタ上の全ての点（既に通し番号が与えられた点であって注目点ｘが属するクラスタに属さない点）ｙとの間の相互影響値総和」：
【数８】
0005891865.tif 000009
・「注目点ｘにおいて、空白領域上の全ての点（まだ通し番号が与えられていない点）ｙとの間の相互影響値総和」：
【数９】
0005891865.tif 000010
【００７５】
重みｐ（ｉ）により、通し番号ｉが小さい場合（ハイライト側に対応）には、（８）式のクラスタ間のエネルギーが相対的に重く評価され、通し番号ｉが大きい場合（シャドー側に対応）には、（９）式の空白領域に対するエネルギーが相対的に重く評価される。なお、（７）式の後ろ側の項（空白領域に対するエネルギー）が負の値になっているのは、点エネルギー評価計算における空白評価時には大小関係が逆になるためである（非特許文献３）。
説明の都合上、２値パターンｐａｔｔ（ｘ）＝ＢＬＡＣＫなる点集合をＸｉと置いたが、実際にはこのようなＸｉを定義／計算する必要はなく、注目点においてｐａｔｔ値を参照してＸｉに属するかどうかを判断すればよい。なお、重みｐ（ｉ）は上記においてはｐ（ｉ）＝ｉ／ｗｈと定めているが、ｐ（ｉ）＝０で固定したり、その他の取り方をしても良い。ｐ（ｉ）＝０とすると、（９）式に示す空白領域との相互影響値が無視され、純粋にクラスタ間のみの相互影響値が考慮される。
【００７６】
＜４．１．４  ステップ３：閾値０，…，ｌ−１の生成工程＞
ここまでの工程で、Ｘ上の各点には０，…，ｗｈ−１までの通し番号が一意に与えられている。最後に、必要に応じて通し番号を０，…，ｌ−１に割り付けることにより、閾値マトリクス内の各点ｘに閾値ｔｈ（ｘ）∈｛０，…，ｌ−１｝を割り当てることができる。例えば、各通し番号をｗｈ／ｌで除算することにより、各ｉ＝０，…，ｗｈ−１に対して、
【数１０】
0005891865.tif 000011
と設定することができる。
一般に、ＴＲＣなどをマスクデータに埋め込む際には、このように線形に割り付ける（均等割り）のではなく、任意のテーブルを利用したマッピング処理を行えば細かい制御ができる。このようにＴＲＣなどをマスクデータに埋め込む処理は、出力機器の特性に応じて行われることであるため細かい説明は省略する。なお、以上の説明では通し番号ｉを与えた点の座標をｖ（ｉ）に記憶してきたが、ｖを持たずにｔｈ（ｘ）＝ｉで設定する構成にしてもよい。ただし、閾値データは通常は８ビット値で記憶されることが多いため、通し番号を記憶するにはより大きなビット値のメモリを使用する必要があり、また通し番号ｉを与えた点を逆引きできる方が便利でもあるため、本技術ではｖ（ｉ）に記憶している。
【００７７】
＜４．１．５  具体例と性質＞
ｗ＝ｈ＝１６０，Ｋ＝２７８，ｌ＝２５６として、以上のステップにより生成したマスクデータ（閾値マトリクス）の例を図１１に画像として示す。ここではステップ３として（１０）式による２５６階調均等割りを用いている。本節の冒頭で述べたように、本技術では、確率的クラスタドットハーフトーンマスクで通常行われる、ボロノイ多角形などのクラスタの形状の指定を行わず、直接核点を成長させてゆく。したがって、従来のボロノイ多角形分割によりクラスタの成長形状を規定する方法や周波数変換して周波数特性を評価する方法と比較して、クラスタの成長の自由度が著しく高くなる上に、数学的に正しい関数ｆｒを用いているため、分散性の観点で見て最良の状態にクラスタ成長させることができる。その結果、ザラツキやマスク周期のパターン顕在化を極力抑えることができる。またこのような特徴により、より小さいマスクサイズで実用に耐えうる品質のマスクを生成することも可能となる。
また、図１２にこのマスクで２値化した画像の例を示す（２４００ｄｐｉ出力時に２５０線相当）。図１３（ａ）、１３（ｂ）には、本技術による方法で生成した別のマスクで２値化した自然画像の例を示す（それぞれ２４００ｄｐｉ出力時に３００線相当及び４００線相当）。
【００７８】
＜４．１．６  高速化＞
ステップ２において、新しい通し番号ｉを与える点を選択するのに、マスク内の全ての未処理点（通し番号を与えていない点）のうちでエネルギー最小の点を選択している。このエネルギー計算を高速化すると処理時間の短縮効果が高い。エネルギー計算を高速化する方法として、注目点ｘに対して所定距離ｒ１離れた点ｙとの間のエネルギー値ｆｒ（‖ｘ−ｙ‖）＝ｆｒ（ｒ１）は常に一定であり、離散空間の特徴から、ここで出てくる距離ｒ１は格子点間の距離のみとなることに注意すると、ｆｒ（ｒ１）値をテーブル化して記憶しておいて参照することで余計な計算を省略できる。具体的には、与えられたエネルギー勢力半径ｒに対して、
・ｒｉｎｔ＝ＩＮＴ（ｒ＋１）
・ｄ＝２ｒｉｎｔ+１
と置いて、Ｄｄ＝｛０，…，ｄ−１｝として、テーブルｔ（ｘ）（ｘ∈Ｄｄ）を、原点から距離ｒ以下の格子点ｘに対して、
・ｔ（ｘ＋（ｒｉｎｔ，ｒｉｎｔ）ｔ）＝ｆｒ（‖ｘ‖）
のように定義すればよい（上付き文字ｔは転置を意味する）。注目点ｘに対して距離ｒ以下にある点ｙでの点ｘからのエネルギー値は、
・ｆｒ（ｘ−ｙ）＝ｔ（ｘ−ｙ＋（ｒｉｎｔ，ｒｉｎｔ）ｔ）
により参照できる。また、このテーブルｔ（ｘ）は２次元テーブルだが、これを１次元テーブル化することでも高速化できる（この場合、アドレス計算での乗算が減るほか、半径ｒ以内の点だけを記憶することで、２次元テーブル時のような矩形領域を参照しなくて済むため高速化される）。
このような高速化の他に、プログラム上の自明な高速化や、ステップ２での構成の工夫などでも高速化することができる。しかしながら、次に説明する例２はこれら全ての高速化よりもずっと効果が大きい。
【００７９】
＜４．２  高速化（例２）＞
前記の一連のアルゴリズムでランダム型クラスタドットハーフトーンマスクが生成されるが、これには様々なバリエーションがある。ここでは、４．１．６節に説明したものとは本質的に異なる高速化について説明する。端的には、ある点ｘに通し番号ｉを決めた後で、エネルギー値の変化はその点から半径ｒの以内の各点のみに限られ、さらに各点でのその変位量はその点ｘとの間の相互影響値のみであるから、通し番号ｉ＋１を決める際に候補点でエネルギー値を全て計算しなおすのは効率が悪く、各点でのエネルギー値をメモリに記憶し、変位量のみ更新してゆくことで計算量を大幅に低減できる。
【００８０】
＜４．２．１  ステップ２Ａ＞
ステップ２のアルゴリズムにおいて、Ｊｃｕｒｒｅｎｔ＝Ｊ２（Ｘｉ，ｙ，ｆｒ，ｉ）あるいはＪｃｕｒｒｅｎｔ＝Ｊ１（Ｘｉ，ｙ，ｆｒ，ｉ）を計算するが、この計算をメモリ参照のみで済ますようにすると、マスク内の全ての通し番号未決定点のエネルギーを計算することなくメモリ参照で済むので、大きく高速化できる。本高速化の処理の流れは、「ステップ１→ステップ２Ａ→ステップ３」となり、ステップ１とステップ３は、上記例１に説明したものと同じであるが、ステップ１においては、以下のメモリを追加で準備して初期化する。
・ｅａｐａｒｔ（ｘ）（ｘとｘが属さないクラスタとのエネルギー値）：各点ｘ∈Ｄで（８）式の値を更新するために使用する
→  ｅａｐａｒｔ（ｘ）＝０で初期化
・ｅｔｏｕｃｈ（ｘ）（ｘとｘが属するクラスタとのエネルギー値）：各点ｘ∈Ｄで（９）式の値を更新するために使用する
→  ｅｔｏｕｃｈ（ｘ）＝０で初期化
【００８１】
ここで、
ｅｔｏｔａｌ＝Σｙ∈Ｄｆｒ（‖ｙ‖）  （定数）
とする。各点でエネルギーを計算する際には、注目点に対して（７）式及び図１０で示したように、それぞれ対非接触クラスタ（図１０の黒）、対空白（図１０の白）とのエネルギー値を算出する必要があるため、これらを記憶するために上記メモリを準備する。このとき、各点ｘ∈Ｄについて、成立する関係式：
Σｙ∈Ｄｆｒ（‖ｘ−ｙ‖）＝Σｙ∈Ｄｆｒ（‖ｙ‖）
により、
【数１１】
0005891865.tif 000012
という関係を利用することで、対接触クラスタ（図１０の斜め線）とのエネルギーを記憶しておけば、対空白クラスタのエネルギーを求められることが分かる。
【００８２】
したがって、点エネルギーＪ１は、
【数１２】
0005891865.tif 000013
と書け、クラスタエネルギーＪ２は、
ｅｅｍｐｔｙ＝ｅｔｏｔａｌ−ｅａｐａｒｔ（ｘ）−ｅｔｏｕｃｈ（ｘ）
と置けば、（７）式及び（１１）式より
【数１３】
0005891865.tif 000014
と書けることが分かる。
したがって、通し番号ｉ−１を生成した時点で、全ての点でｅａｐａｒｔ（ｘ），ｅｔｏｕｃｈ（ｘ）が更新されていれば、通し番号ｉを割り付ける最小エネルギー点を探索する際に、上記（１３）式によるメモリ参照でエネルギー値を求めることができる。
【００８３】
ステップ２Ａを図１４のフローチャートに従って説明する。なおステップ２Ａは、例１におけるステップ２を高速化するためのステップであり、ステップ１とステップ３は例１のものをそのまま使用できる。例１のステップ２のアルゴリズムとの違いは、エネルギー計算及びクラスタ番号の決定がメモリ参照で行われている点と、最小エネルギー点の選択の後に更新処理が追加される点のみとなる。したがって、図１４に示すフローチャートでは、ステップ２のフローチャート（図７）と異なる部分を太枠（Ｓ１４０４、Ｓ１４０８、Ｓ１４１０）にして示してある。
ステップ２Ａでは、Ｓ１４０４において、通し番号ｉに対してメモリ参照でエネルギー計算を行いながらエネルギー最小点ｘを求めて、Ｓ１４０６以下の更新処理を行う。エネルギー最小点は、候補点（ｃｎｕｍ（ｙ）≠−１である点ｙ）の中からクラスタエネルギー最小点を選択する。候補点とはステップ２と同じく既に配置したクラスタに接する点全体に他ならず、本ステップ２Ａでは、通し番号ｉ−１を生成した段階において後述の更新処理によってそのような候補点が更新登録されている。なお、クラスタエネルギー最小点の選択は、例１におけるステップでは、図８に示したフローチャート１ａ及び図９に示したフローチャート１ｂに進んで行った。本例２では、図１５に示したフローチャート２ａ及び図１６に示したフローチャート２ｂに進んで、メモリ参照による方法で行う。このことについては後述する。
Ｓ１４０４において、通し番号ｉを与える点ｘを決めて、Ｓ１４０６における、ステップ２のＳ７０６と同じ更新処理が終わった後に、次の通し番号ｉ＋１に進むための前処理として、Ｓ１４０８とＳ１４１０において２つの更新処理を行う。これらも後述する。
【００８４】
図１５に示したフローチャート２ａ及び図１６に示したフローチャート２ｂを参照しながら、Ｄ内で通し番号がまだ与えられていない点の中から、クラスタエネルギーが最小となる点ｘ（それが取れなければ点エネルギーが最小となる点ｘ）を選択する方法を説明する。この際にエネルギー値は逐次計算することなく、メモリを参照して決定する。図１５、図１６のフローチャートでは、図８、図９に示した、ステップ２における逐次計算によるフローチャートと比較して異なる部分を太枠（Ｓ１５０６、Ｓ１５１０、Ｓ１６０６、Ｓ１６１０、）にして示してある。その部分のみ説明する。
点ｙでの点エネルギーＪ１及びクラスタエネルギーＪ２は、ステップ２でのように逐次計算する必要はなく、それぞれ（１２）式及び（１３）式で説明したように、ｅａｐａｒｔ（ｙ），ｅｔｏｕｃｈ（ｙ）値を参照して決定できるから、Ｓ１５１０あるいはＳ１６１０において、それらをＪｃｕｒｒｅｎｔに代入すればよい。
【００８５】
また、ステップ２（Ｓ９０６）では、点ｙを選んだときに、ｙ∈Ｄから見て、相対的に上下左右に接する４つの点の集合Ｔ（ｙ）のうちでクラスタ番号ｃｎｕｍが与えられた点ｚ∈Ｔ（ｙ）があれば、ｊ＝ｃｎｕｍ（ｚ）と置き、いずれのクラスタとも接触していない場合には、ｊ＝−１と置いていた。しかし、本ステップ２Ａでは、後述の更新処理によって、通し番号ｉ−１を決定した後の段階で、通し番号が未決定の全ての点ｙ∈Ｄが属するクラスタ番号ｃｎｕｍ（ｙ）が更新されている（ｃｎｕｍ（ｙ）＝−１の場合も含む）。したがって、Ｓ１５０４あるいはＳ１６０４において、単純にｊ＝ｃｎｕｍ（ｙ）と置けばよい。
【００８６】
図１４のステップ２Ａのフローチャートに戻って、Ｓ１４０８における更新処理を、図１７のフローチャート２ｃを参照しながら説明する。
通し番号ｉに対応する点ｘ＝ｖ（ｉ）を新たに設定したことにより、残りの未処理点ｙ∈Ｄ＼（Ｘｉ∪｛ｘ｝）のエネルギー値は、点ｘとの間に働く項のみ値が変わる（逆に言えば、その他の点とｙとの関係は変わらない）。したがって、図１７に示すフローチャート２ｃで、この変更分だけを計算してエネルギー値記憶メモリを更新する。
【００８７】
通し番号ｉを付した点をｘとして、Ｓ１７０２において、ｊ：＝ｃｎｕｍ（ｘ）と置く。Ｓ１７０４に進んで、まだ通し番号が与えられていない点ｙ∈Ｄを取る。距離ｒ以上離れればｆｒ＝０だから、この場合もｙは‖ｘ−ｙ‖≦ｒの範囲に限定してよい。Ｓ１７０６に進んで、点ｙが、点ｘが属するクラスタに既に接触していると予め判断されている場合、つまり、ｃｎｕｍ（ｙ）＝ｃｎｕｍ（ｘ）＝ｊの場合には、Ｓ１７０８に進んで、ｙから見て点ｘは同じクラスタに属するとみなして、その点ｘとのｆｒ値をｅｔｏｕｃｈ値に加える。それ以外の場合には、Ｓ１７１０に進んで、点ｘは、ｙと異なるクラスタに属するためｅａｐａｒｔ値に加える。
これによって、通し番号ｉを点ｘに与えたことによる未処理点（まだ通し番号を与えていない点）ｙでのエネルギー値の変動分が計算／更新される。なお、未処理点の判定処理は、Ｓ１７１２において型通りに行われる。
【００８８】
図１４のステップ２Ａのフローチャートに戻って、Ｓ１４１０における更新処理を、図１８のフローチャート２ｄを参照しながら説明する。図１７に示したフローチャート２ｃによってエネルギー値は更新されたが、点ｘが所定のクラスタに加わったことにより、新たにその点ｘの上下左右４点（つまりＴ（ｘ）の点）のうちの未処理点が新たにこの点ｘと同じクラスタに接触するようになる。そこで、図１８のフローチャート２ｄにより、この点ｘの周囲４点で新たに生じたクラスタとの接触の定義と、エネルギー値の繰り替えを行う。
【００８９】
通し番号ｉを付した点ｘについて、Ｓ１８０２において、ｊ：＝ｃｎｕｍ（ｘ）と置く。Ｓ１８０４に進んで、ｘの周囲４点のうちで、まだクラスタ番号が与えられていない点ｙ（当然通し番号も与えられていない）を選択する。この点ｙは、これまでどのクラスタにも接触していなかったが、隣り合う点ｘが新たにクラスタに加わったことで、同じクラスタに接触することが判明した。これまでｙはどのクラスタとも接触していなかったため、このクラスタとｙとのエネルギーＪｔｏｕｃｈはｅａｐａｒｔに加算されていたが、点ｙと接触することが判明したので、Ｓ１８１０においてｅｔｏｕｃｈ側にＪｔｏｕｃｈを加算して、ｅａｐａｒｔからＪｔｏｕｃｈを減算する。なお具体的にＪｔｏｕｃｈ値は、点ｙと、点ｘと同じクラスタに所属して既に閾値を与えられた各点との間のエネルギーであることに注意して、Ｓ１８０６において、
・Ｘ＝｛ｘ∈Ｄ：ｐａｔｔ（ｘ）＝ＢＬＡＣＫ｝∩｛ｘ∈Ｄ：ｃｎｕｍ（ｘ）＝ｊ｝
と定義して、Ｓ１８０８でＪｔｏｕｃｈ＝Ｊ１（Ｘ，ｙ，ｆｒ）と定義される。さらに、Ｓ１８１０においては、ｙのクラスタ番号をｘと同じ番号ｊに設定する。なお、未処理点の判定処理は、Ｓ１８１２において型通りに行われる。
以上で通し番号ｉの付与に関わる全ての更新処理が終わる。
【００９０】
ステップ２Ａの本線に戻って、Ｓ１４１２においてｉ：＝ｉ＋１と更新する。以下帰納的に、全ての通し番号ｉ＝０，…，ｗｈ−１の付与が行われ、ステップ２Ａが完了する。Ｓ１４１４などの判定処理がこれに対応するが、これも型どおりである。ステップ２では通し番号ｉ毎に未決定点全てにおいてエネルギーを計算していたが、本ステップ２Ａではエネルギー値の計算やクラスタ番号の取得がメモリ参照で行われ、必要な計算が最小限に抑えられ、エネルギー勢力半径ｒやマスクサイズｗ×ｈが大きいほど高速化の効果が高い。なおステップ２では、全ての未処理点でクラスタとの接触の判定が上→右→下→左などの順で機械的に行われるが、ステップ２Ａでは、一つ前の通し番号を与えた点の周囲にある未処理点は同じクラスタに属するという判定を行っている。したがって、未処理点が複数のクラスタに接触する状態（ごくシャドー側）になると接触クラスタの判定は両ステップで異なる場合がある。結果として、ステップ２とステップ２Ａとでは、マスクパターンのごくシャドー側のパターンが異なることになるが、統計的な意味で画質に差はない。
【００９１】
＜４．３  核点配置の最適化（例３）＞
前記のステップ２又はステップ２Ａにおいては、Ｋ個のクラスタを構成する始めの点（核点）、つまり、ｉ＝０からｗｈ−１までの通し番号の生成工程のうち、始めのｉ＝０，…，Ｋ−１までの番号は、「既に配置済みのクラスタに接触するように」という制約を外した上で、点エネルギー最小順に順次選択されている。この、始めのＫ個の点について通し番号を与える際には、別の方法を用いてもよい。例えば、予めランダムにＫ個の点を配置した上で、エネルギー降下によって最適配置に収束させた上で、それらの点についてエネルギー最小順に通し番号を与えてもよい。ここでは、そのような方法について説明する。なお、Ｋ個の点を配置してエネルギー降下によって最適配置に収束させる方法自体は、例えば非特許文献３に記載されている。また、ｉ＝０からＫ−１までの通し番号生成工程は、前述の例１とほぼ同様に行うことができる。従って、いずれもフローチャートは省略して説明する。以下の説明においては、記号や用語は例１，２と同じものであるとする。
【００９２】
＜４．３．１  Ｋ個の核点の配置／収束工程＞
はじめに、例１の４．１．１節（ステップ１：準備）と同様にして初期化を行う。次に、Ｄ内からランダムに選択したＫ個の点を点集合Ｘとして、各ｘ∈Ｘに対して、ｐａｔｔ（ｘ）＝ＢＬＡＣＫと定める。次に、各点ｘをＸの他の点と重複しない様に局所的に移動させて、（１）式に示した各点の点エネルギーＩ（Ｘ，ｘ，ｆｒ）が最も低い状態に移動させる。その移動先をｘとして、ｐａｔｔ（ｘ）＝ＷＨＩＴＥ、ｐａｔｔ（ｘ）＝ＢＬＡＣＫと更新する。この工程を全ての点ｘ∈Ｘについて、よりエネルギーを低下できる点が存在しなくなるまで反復する。こうして最もエネルギーの低い状態に収束させたＫ個の点が核点に相当する。この工程においては、閾値ｔ≧０を設け、各点を移動させた際のエネルギー悪化がｔ未満の場合に常に移動を許容し、移動と共にｔを小さくしてゆくという方法を取っても良い。この方法によれば、単純に各点を最もエネルギーが低い点に移動する山登り法よりもよりエネルギーが低い状態に収束させることができる場合がある。なお上記において初めからｔ＝０で固定すれば、この山登り法に一致する。例として、図１９に、前記のｗ＝ｈ＝１６０，Ｋ＝２７８の場合の初期ランダム配置（図１９（ａ）参照（エネルギー降下前））と、上記工程による収束結果（図１９（ｂ）参照（エネルギー降下後））を図示する（ｐａｔｔ（ｘ）＝ＢＬＡＣＫとなる点ｘを図示したもの）。なおこの図１９では、エネルギーを完全に最小化していない状態で止めている。
【００９３】
＜４．３．２  核点への通し番号０，…，Ｋ−１の割り付け工程＞
次に、Ｋ個の核点について、最もエネルギーが低い点から順に通し番号０，…，Ｋ−１を与える。つまり、通し番号ｉに対して、既に与えたれた通し番号ｊ＝０，…，ｉ−１を持つ全ての点を点灯させたときに、まだ点灯してない核点のうち最も点エネルギーが最小の核点を選択して通し番号ｉを与える処理を行う。以下具体的に説明する。まず、各点の集合Ｘを、
・Ｘ＝｛ｘ∈Ｄ：ｐａｔｔ（ｘ）＝ＢＬＡＣＫ｝
と置き、各点ｘ∈Ｘに対してｐａｔｔ（ｘ）＝ＥＭＰＴＹと一旦リセットする。ｉ＝０として、
・Ｘｉ＝｛ｘ∈Ｘ：ｐａｔｔ（ｘ）＝ＢＬＡＣＫ｝
と置いて、ｙ∈Ｘ＼Ｘｉ中でＪｃｕｒｒｅｎｔ＝Ｊ１（Ｘｉ，ｙ，ｆｒ，ｉ）が最小となるｙを取って、ｘ＝ｙと置く。更にフローチャート１のＳ７０６と同様に、
・ｐａｔｔ（ｘ）＝ＢＬＡＣＫ
・ｖ（ｉ）＝ｘ
・ｃｎｕｍ（ｘ）＝ｉ
・ｓ（ｊ）＝ｓ（ｊ）＋１
・ｓｍｉｎ＝ｍｉｎ｛ｓ（ｉ）：ｉ＝０，…，Ｋ−１｝
と更新する。なおこれらの意味については例１の４．１．２節（ステップ２）に前述している。このようにして更新が終わったら、ｉ：＝ｉ+１と更新して、上記Ｘｉの定義以降の処理を繰り返し、ｉ＝Ｋ−１まで更新処理を行う。
【００９４】
以上により、Ｋ個の核点が定義され、さらにそれらに通し番号やクラスタ番号が与えられる。つまり、通し番号ｉ＝０，…，Ｋ−１に対応する点ｖ（ｉ）がそれぞれ一意的に定義され、ｐａｔｔ（ｖ（ｉ））＝ＢＬＡＣＫ及びｃｎｕｍ（ｖ（ｉ））＝ｉとなっている。また、残りのｗｈ−Ｋ個の点ｘについてはｐａｔｔ（ｘ）＝ＥＭＰＴＹ及びｃｎｕｍ（ｘ）＝−１となっている。残りの通し番号の割り付けはステップ２又はステップ２Ａに戻って行えばよい。また、本節で説明した通し番号ｉ＝０，…，Ｋ−１の割り付け処理についても、ステップ２Ａで説明したのと同様の高速化を行うこともできる。
なお、ステップ２で通し番号０，…，ｗｈ−１を得た後に、ステップ２において例えば（１０）式によりｗｈ／ｌで除算して、閾値マトリクス内の各点に閾値０，…，ｌ−１を割り当てると、本工程で決めた０，…，Ｋ−１の番号は最終的には閾値０，…，（Ｋ−１）・ｌ／（ｗｈ）に相当する。上記のｗ＝ｈ＝１６０，Ｋ＝２７８の場合で、ｌ＝２５６とすると、０，…，２．７７に相当するから、２５６階調のうちのハイライト側３階調目までに相当する。この範囲はクラスタが形成される前の段階であって、核点が順次点灯してゆく段階に対応している。一般には例１（２）の方法で充分な画質が得られるが、ハイライト側の画質が特に重視されるような場合には本例３の方法を用いても良い。
【００９５】
＜４．４  クラスタ成長順の制御（例４）＞
前述の例１〜例３では、ハイライト側（通し番号０）からシャドー側（通し番号ｗｈ−１）にクラスタ成長している（通し番号を割り付けている）が、例えば任意の中間濃度（通し番号ｐ）を用意して、
・ｉ＝０，１，…，ｐ−１，ｗｈ−１，ｗｈ−２，…，ｐの順、あるいは
・ｉ＝０，ｗｈ−１，１，ｗｈ−２，２，ｗｈ−３，…，ｐ−１，ｐの順
でクラスタ成長させることも可能である。
【００９６】
例えばステップ２Ａにおいてこれを実現する場合は、ｅｔｏｕｃｈ，ｅａｐａｒｔ，ｃｎｕｍ，ｓｍｉｎの４つのメモリを、黒ドット／白ドット用にそれぞれ取り直して、例えば、
・黒ドット用：ｅｔｏｕｃｈｂ，ｅａｐａｒｔｂ，ｃｎｕｍｂ，ｓｍｉｎｂ
・白ドット用：ｅｔｏｕｃｈｗ，ｅａｐａｒｔｗ，ｃｎｕｍｗ，ｓｍｉｎｗ
として、注目画素ｐａｔｔ（ｘ）がＢＬＡＣＫかＷＨＩＴＥかに応じてこれらのメモリをポインタで切り替えて使えばよい。（ステップ１において２値パターンメモリｐａｔｔ用に“ＷＨＩＴＥ”も定義してあるのはこのクラスタ成長順の制御を行う場合のためである。）通し番号の順番やこれらの注目画素色に応じたポインタ切り替え以外にステップ２Ａの処理フロー自体に代わりはなく、そのまま使える。これにより、それぞれＢＬＡＣＫとＷＨＩＴＥに着目して最小エネルギー点を選択して通し番号を与えることができる。
図２０に、ｗ＝ｈ＝１６０，Ｋ＝２７８，ｌ＝２５６でｐ＝ｗｈ／２、つまり濃度５０％を境にしてハイライト側（０％）とシャドー側（１００％）からそれぞれ５０％に向けてｉ＝０，ｗｈ−１，１，ｗｈ−２，２，ｗｈ−３，…，ｐ−１，ｐの順により黒クラスタと白クラスタをそれぞれクラスタ成長させて生成したマスクで２値化した画像の例を示す。
【００９７】
＜５  周波数特性＞
２．３節で説明したように、ランダム型クラスタドットハーフトーンマスクには、概念として確率的クラスタドットハーフトーンマスク（非特許文献５，６）とグリーンノイズマスク（特許文献５、非特許文献４）とがある。本節では、本技術が前者タイプに属する技術であるということを確認する。
図２１に分散ドットハーフトーンマスクと本技術の方法で生成されるマスクについて、閾値２４での２値パターンとＲＡＰＳＤを取った結果例を示す。図２１（ａ）は、分散ドットマスク（非特許文献３（前記、＜２．１  ランダム型分散ドットハーフトーンマスクの生成＞で説明した方法で生成したマスク））による閾値２４でのハーフトーンパターンの例であり、図２１（ｂ）は該パターンのＲＡＰＳＤを表している。一方、図２１（ｃ）は本技術により生成したマスクによる閾値２４でのハーフトーンパターンの例であり、図２１（ｄ）はこの該パターンのＲＡＰＳＤを表している。同様に、図２２（ａ）（ｃ）は、それぞれ、図２１（ａ）（ｃ）と同じマスクによる閾値８０でのハーフトーンパターンの例であり、図２２（ｂ）（ｄ）はそれぞれ、それらパターンのＲＡＰＳＤを表している。
分散ドットハーフトーンマスクは濃度の増減と共にＲＡＰＳＤのピーク周波数が高周波側に移動していくのが確認できる。この性質は、定義からグリーンノイズマスクでも同様である。一方で、本技術によるランダム型クラスタドットハーフトーンマスクでは、確率的クラスタドットハーフトーンマスクと同様に、濃度の増減に関わらずＲＡＰＳＤのピーク周波数は固定されることが確認できる。
【００９８】
＜６  ハードウェア構成＞
図２３を参照して、本実施の形態のマスク生成装置１００、画像形成装置２００のハードウェア構成例について説明する。図２３に示す構成は、例えばパーソナルコンピュータ（ＰＣ）などによって構成されるものであり、スキャナ等のデータ読み取り部２３１７と、プリンタなどのデータ出力部２３１８を備えたハードウェア構成例を示している。
【００９９】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２３０１は、前述の実施の形態において説明した各種のモジュール、すなわち、エネルギー算出モジュール１１０、順位付モジュール１２０、閾値割当モジュール１３０、出力モジュール１４０、画像受付モジュール２１０、マスク処理モジュール２２０、出力モジュール２３０等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがって処理を実行する制御部である。
【０１００】
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２３０２は、ＣＰＵ２３０１が使用するプログラムや演算パラメータ等を格納する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２３０３は、ＣＰＵ２３０１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはＣＰＵバスなどから構成されるホストバス２３０４により相互に接続されている。
【０１０１】
ホストバス２３０４は、ブリッジ２３０５を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの外部バス２３０６に接続されている。
【０１０２】
キーボード２３０８、マウス等のポインティングデバイス２３０９は、操作者により操作される入力デバイスである。ディスプレイ２３１０は、液晶表示装置又はＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）などがあり、各種情報をテキストやイメージ情報として表示する。
【０１０３】
ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）２３１１は、ハードディスクを内蔵し、ハードディスクを駆動し、ＣＰＵ２３０１によって実行するプログラムや情報を記録又は再生させる。ハードディスクには、マスクデータ、画像データなどが格納される。さらに、その他の各種のデータ処理プログラム等、各種コンピュータ・プログラムが格納される。
【０１０４】
ドライブ２３１２は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体２３１３に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース２３０７、外部バス２３０６、ブリッジ２３０５、及びホストバス２３０４を介して接続されているＲＡＭ２３０３に供給する。リムーバブル記録媒体２３１３も、ハードディスクと同様のデータ記録領域として利用可能である。
【０１０５】
接続ポート２３１４は、外部接続機器２３１５を接続するポートであり、ＵＳＢ、ＩＥＥＥ１３９４等の接続部を持つ。接続ポート２３１４は、インタフェース２３０７、及び外部バス２３０６、ブリッジ２３０５、ホストバス２３０４等を介してＣＰＵ２３０１等に接続されている。通信部２３１６は、通信回線に接続され、外部とのデータ通信処理を実行する。データ読み取り部２３１７は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部２３１８は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
【０１０６】
なお、図２３に示すハードウェア構成は、１つの構成例を示すものであり、本実施の形態は、図２３に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えば特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）等）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図２３に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、複写機、ファックス、スキャナ、プリンタ、複合機（スキャナ、プリンタ、複写機、ファックス等のいずれか２つ以上の機能を有している画像処理装置）などに組み込まれていてもよい。
【０１０７】
なお、数式を用いて説明したが、数式には、その数式と同等のものが含まれる。同等のものとは、その数式そのものの他に、最終的な結果に影響を及ぼさない程度の数式の変形、又は数式をアルゴリズミックな解法で解くこと等が含まれる。
【０１０８】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ（登録商標））、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリーカード等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【０１０９】
１００…マスク生成装置
１１０…エネルギー算出モジュール
１２０…順位付モジュール
１３０…閾値割当モジュール
１４０…出力モジュール
２００…画像形成装置
２１０…画像受付モジュール
２２０…マスク処理モジュール
２３０…出力モジュール
【図１】
0005891865.tif 000015
【図２】
0005891865.tif 000016
【図３】
0005891865.tif 000017
【図４】
0005891865.tif 000018
【図５】
0005891865.tif 000019
【図６】
0005891865.tif 000020
【図７】
0005891865.tif 000021
【図８】
0005891865.tif 000022
【図９】
0005891865.tif 000023
【図１０】
0005891865.tif 000024
【図１１】
0005891865.tif 000025
【図１２】
0005891865.tif 000026
【図１３】
0005891865.tif 000027
【図１４】
0005891865.tif 000028
【図１５】
0005891865.tif 000029
【図１６】
0005891865.tif 000030
【図１７】
0005891865.tif 000031
【図１８】
0005891865.tif 000032
【図１９】
0005891865.tif 000033
【図２０】
0005891865.tif 000034
【図２１】
0005891865.tif 000035
【図２２】
0005891865.tif 000036
【図２３】
0005891865.tif 000037