(57)【特許請求の範囲】
【請求項１】
複数の色成分プレーンを有するカラー画像データを量子化する画像処理装置であって、
２つの異なるノイズ制御情報が同数ずつ一様に分散した疑似周期的な２次元配列であるノイズマトリックスを記憶するノイズマトリックス記憶手段と、
画素位置を用いて前記ノイズマトリックスを参照することにより注目画素に対応するノイズ制御情報を求め、該ノイズ制御情報に基づき、入力画素値に対応する量子化閾値に対してノイズ振幅量を加算および減算することにより求められる２つの異なる量子化閾値のいずれかを設定する閾値設定手段と、
前記注目画素の周辺画素から該注目画素に対して拡散された量子化誤差の累積値を、前記注目画素の画素値に加算する加算手段と、
前記閾値設定手段により設定された量子化閾値を用いて、前記加算手段から出力された画素値を量子化する量子化手段と、
前記量子化手段による注目画素の量子化誤差を前記注目画素近傍の画素に拡散する誤差拡散手段とを有し、
前記ノイズマトリクス記憶手段は、前記複数の色成分プレーンのそれぞれに対応させてノイズマトリックスを記憶し、
出力画像におけるドットを重なりにくくすべき、前記複数の色成分プレーンにおける第１色成分プレーンと第２色成分プレーンにおけるノイズマトリクスは、ノイズ制御情報が反転していることを特徴とする画像処理装置。
【請求項２】
複数の色成分プレーンを有するカラー画像データを量子化する画像処理装置であって、
２つの異なるノイズ制御情報が同数ずつ一様に分散した疑似周期的な２次元配列であるノイズマトリックスを記憶するノイズマトリックス記憶手段と、
画素位置を用いて前記ノイズマトリックスを参照することにより注目画素に対応するノイズ制御情報を求め、該ノイズ制御情報に基づき、入力画素値に対応する量子化閾値に対してノイズ振幅量を加算および減算することにより求められる２つの異なる量子化閾値のいずれかを設定する閾値設定手段と、
前記注目画素の周辺画素から該注目画素に対して拡散された量子化誤差の累積値を、前記注目画素の画素値に加算する加算手段と、
前記閾値設定手段により設定された量子化閾値を用いて、前記加算手段から出力された画素値を量子化する量子化手段と、
前記量子化手段による注目画素の量子化誤差を前記注目画素近傍の画素に拡散する誤差拡散手段とを有し、
前記閾値設定手段は、出力画像におけるドットを重なりにくくすべき前記複数の色成分プレーンにおける第１色成分プレーンと第２色成分プレーンに対して、異なる量子化閾値を設定することを特徴とする画像処理装置。
【請求項３】
前記閾値設定手段は、入力画素値と該入力画素値に対応する量子化閾値に対してノイズ振幅量を加算および減算することにより求められる前記２つの異なる量子化閾値との対応関係を記憶するノイズ量テーブルを使用することを特徴とする請求項１又は２記載の画像処理装置。
【請求項４】
請求項１乃至３のいずれか一項に記載の画像処理装置の各手段としてコンピュータを機能させるためのプログラム。
【請求項５】
２つの異なるノイズ制御情報が同数ずつ一様に分散した疑似周期的な２次元配列であるノイズマトリックスを記憶するノイズマトリックス記憶手段を有する画像処理装置により、複数の色成分プレーンを有するカラー画像データを量子化する画像処理方法であって、
画素位置を用いて前記ノイズマトリックスを参照することにより注目画素に対応するノイズ制御情報を求め、該ノイズ制御情報に基づき、入力画素値に対応する量子化閾値に対してノイズ振幅量を加算および減算することにより求められる２つの異なる量子化閾値のいずれかを設定する閾値設定工程と、
前記注目画素の周辺画素から該注目画素に対して拡散された量子化誤差の累積値を、前記注目画素の画素値に加算する加算工程と、
前記閾値設定工程により設定された量子化閾値を用いて、前記加算工程の出力である画素値を量子化する量子化工程と、
前記量子化工程による注目画素の量子化誤差を前記注目画素近傍の画素に拡散する誤差拡散工程とを有し、
前記ノイズマトリクス記憶手段は、前記複数の色成分プレーンのそれぞれに対応させてノイズマトリックスを記憶し、
出力画像におけるドットを重なりにくくすべき、前記複数の色成分プレーンにおける第１色成分プレーンと第２色成分プレーンにおけるノイズマトリクスは、ノイズ制御情報が反転していることを特徴とする画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば、入力された多階調画像を入力画像の階調数より少ない階調数を有する画像に変換する画像処理方法及び装置に関する。
【０００２】
【従来の技術】
従来、多値画像データを2値画像（または2値以上で入力階調数より少ない階調数を有する画像）に変換する手段としてR.Floydらによる誤差拡散法（"An adaptive algorithm for spatial gray scale", SID International Symposium Digest of Technical Papers, vol4.3, 1975, pp.36-37）がある。この誤差拡散法は、ある画素で生じた2値化誤差を以降の複数画素へ拡散することにより、擬似的に階調表現を行うものである。しかし、誤差拡散法を用いた従来の画像処理装置では、低濃度領域の立ち上り部におけるドット生成が大幅に遅延するという問題があった。また、特定の入力階調においては、出力２値画像に規則的パターンが発生し、それが目について画質を劣化させることがあった。
【０００３】
上記問題点を解決するため、特開平８−３０７６８０では、多値画像データの階調値に基づいて閾値を設定する誤差拡散法が開示されている。この方法を概略すると、多階調画像データを誤差拡散法又は平均誤差最小法を用いて第1階調値及び第2階調値に変換する画像処理装置において、注目画素の多階調画像データの階調値に基づいて閾値のベース成分を設定し、さらにそのベース成分に乱数値を加えて２値化のための閾値を設定するものである。この方法によれば、注目画素の多階調画像データの階調値に応じて閾値を最適化することにより、上記ドット生成遅延を解消し、さらに注目画素の階調値に応じて閾値にノイズを印加することにより、上記規則的パターンの発生を防止している。
【０００４】
【発明が解決しようとする課題】
しかしながら、上記従来例では、閾値に印加するノイズとして乱数を使用するため、前記ノイズの特性を二次元的に制御することが困難であるという欠点があった。このため、複数のプレーンからなるカラー多値画像において、プレーン毎の量子化を行った場合、異なる色成分のドットの重なりを制御することも困難であった。
【０００５】
本発明は、上記課題を解決するためになされたものであり、誤差拡散法を用いた多値画像の擬似中間調表現処理に際し、閾値に印加するノイズの二次元的な特性を制御しながら上記規則的パターンを防止し、かつドット生成遅延を解消する画像処理方法及び装置を提供することを目的とする。
【０００６】
【課題を解決するための手段】
上記目的を達成するため、本発明は次のような構成から成る。
【０００７】
複数の色成分プレーンを有するカラー画像データを量子化する画像処理装置であって、
２つの異なるノイズ制御情報が同数ずつ一様に分散した疑似周期的な２次元配列であるノイズマトリックスを記憶するノイズマトリックス記憶手段と、
画素位置を用いて前記ノイズマトリックスを参照することにより注目画素に対応するノイズ制御情報を求め、該ノイズ制御情報に基づき、入力画素値に対応する量子化閾値に対してノイズ振幅量を加算および減算することにより求められる２つの異なる量子化閾値のいずれかを設定する閾値設定手段と、
前記注目画素の周辺画素から該注目画素に対して拡散された量子化誤差の累積値を、前記注目画素の画素値に加算する加算手段と、
前記閾値設定手段により設定された量子化閾値を用いて、前記加算手段から出力された画素値を量子化する量子化手段と、
前記量子化手段による注目画素の量子化誤差を前記注目画素近傍の画素に拡散する誤差拡散手段とを有し、
前記ノイズマトリクス記憶手段は、前記複数の色成分プレーンのそれぞれに対応させてノイズマトリックスを記憶し、
出力画像におけるドットを重なりにくくすべき、前記複数の色成分プレーンにおける第１色成分プレーンと第２色成分プレーンにおけるノイズマトリクスは、ノイズ制御情報が反転している。
【０００８】
あるいは、複数の色成分プレーンを有するカラー画像データを量子化する画像処理装置であって、
２つの異なるノイズ制御情報が同数ずつ一様に分散した疑似周期的な２次元配列であるノイズマトリックスを記憶するノイズマトリックス記憶手段と、
画素位置を用いて前記ノイズマトリックスを参照することにより注目画素に対応するノイズ制御情報を求め、該ノイズ制御情報に基づき、入力画素値に対応する量子化閾値に対してノイズ振幅量を加算および減算することにより求められる２つの異なる量子化閾値のいずれかを設定する閾値設定手段と、
前記注目画素の周辺画素から該注目画素に対して拡散された量子化誤差の累積値を、前記注目画素の画素値に加算する加算手段と、
前記閾値設定手段により設定された量子化閾値を用いて、前記加算手段から出力された画素値を量子化する量子化手段と、
前記量子化手段による注目画素の量子化誤差を前記注目画素近傍の画素に拡散する誤差拡散手段とを有し、
前記閾値設定手段は、出力画像におけるドットを重なりにくくすべき前記複数の色成分プレーンにおける第１色成分プレーンと第２色成分プレーンに対して、異なる量子化閾値を設定する。
【００１６】
【発明の実施の形態】
（第１の実施形態）
図１は、第1の実施形態による画像処理装置の構成を示したブロック図である。同図において、１０は画素データの入力部、１１は累積誤差加算部、１２は各要素が１又は−1の値をもつ2次元のノイズマトリックスが格納されたノイズマトリックスメモリ、１３は量子化のための閾値に加えるノイズ量が入力画素データ毎に格納されたノイズ量ルックアップテーブル（LUT）、１４は入力画素データと画素位置に従い量子化に用いる閾値を設定する閾値設定部、１５は量子化部、１６は処理後のデータの出力部、１７は誤差演算部、１８は誤差拡散部、１９は累積誤差を格納する誤差バッファである。なおここで、入力画素データとは０から２５５の範囲の整数値である。
【００１７】
＜２値化処理手順＞
以下、図１の画像処理装置の動作について図２のフローチャートに従って説明する。
【００１８】
まず、図示しない画像走査部により入力画像が順次走査され、各画素データが入力部１０より入力される（ステップS１００）。画像の走査は、画像領域の左上画素から開始し右方向に1画素ずつ進み、右端に達したら1画素下の左端画素から同様に右下画素まで行う。
【００１９】
次に、累積誤差加算部１１において、入力画素データIに誤差バッファ１９の画素位置に対応する値が加算される（ステップS１０１）。なお、ここでは注目されている入力画素を注目画素と呼ぶ場合もある。注目画素とは注目している画素の位置により同一性が保持されるものとする。すなわち、入力された値に対して何らかの加工がされた場合であっても、位置が変わらない限り注目画素であることには変わらない。
【００２０】
誤差バッファ１９には、1個の記憶領域Etempと、画像の横画素数Ｗと同数の記憶領域E(x)とが含まれ、後述する方法で量子化誤差が格納されている。なお、誤差バッファ１９は処理開始前に全て初期値０で初期化されているものとする。
【００２１】
図３は、誤差バッファ１９の詳細を示した図である。累積誤差加算部１１では、入力画素データIに横画素位置ｘに対応する誤差E(x)が加えられる。即ち、誤差加算後のデータをI'とすると、
Ｉ'＝Ｉ＋Ｅ(x)
となる。
【００２２】
次に、閾値設定部１４において、後述する方法により閾値Tを設定する（ステップS１０２）。次に、量子化部１５において、誤差加算後の画素データI'と閾値Tとを比較し、出力画素値Oを決定する（ステップS１０３）。その規則は次の通りである。
Ｏ＝０      （Ｉ'＜Ｔ）
Ｏ＝２５５  （Ｉ'≧Ｔ）
次に、誤差演算部１７において、注目画素Iに誤差加算後の画素データI'と出力画素値Oとの差分Errを、次のようにして計算する（ステップS１０４）。
Ｅｒｒ＝Ｉ'−Ｏ
次に、誤差拡散部１８において、横画素位置ｘに応じて以下の様に誤差Errの拡散処理が行われる（ステップS１０５）。
0004587153.tif 000002
すなわち、注目画素の画素位置ｘが１ラインの両端以外である場合には、二値化誤差Errの値は、その７／１６が注目画素の直後の画素に分配され、残りの９／１６は注目画素の属するラインの次のラインに分配される。注目画素の次のラインにおいては、注目画素と同じ横画素位置ｘを有する画素（すなわち注目画素の真下の画素）にErrの５／１６が、その直前の画素（すなわち、注目画素の左下の画素）と直後の画素（すなわち、注目画素の右下の画素）に、Errのそれぞれ３／１６と１／１６が分配される。
【００２３】
また、注目画素の位置ｘが１ラインの先頭である場合には、誤差Errの値は、その７／１６が注目画素の直後の画素に、８／１６が注目画素の真下の画素に、１／１６が注目画素の右下の画素に分配される。
【００２４】
また、注目画素の位置ｘが１ラインの末尾である場合には、誤差Errの値は、すべて次のラインに分配される。その内訳は、Errの３／１６が注目画素の左下の画素に、１３／１６が注目画素の真下の画素に分配される。
【００２５】
以上で、１画素分の２値化処理が完了する。以上の処理を全ての画素について行うことで、画像の擬似中間調処理が行われる。
【００２６】
＜閾値設定処理＞
次に、閾値設定部１４における閾値Tの設定手順を説明する。まず入力画素データの横と縦の画素位置をそれぞれｘ、ｙとし、ノイズマトリックスメモリ１２に格納されているノイズマトリックスより画素位置ｘ、ｙに対応するノイズ符号を求める。ノイズマトリックスは、後述する方法であらかじめ作成され、ノイズマトリックスメモリ１２に格納されている。
【００２７】
図４はノイズマトリックスの一例であり、マトリックスの各要素は＋１又は−1の何れかの値をもつ。本実施形態では、ノイズマトリックスの縦横の要素数を１６×１６とした。ここで、ノイズマトリックスにおける（i，j）番目の要素をN（i，ｊ）とすると、入力画素データの画素位置（ｘ，ｙ）に対応するノイズ符号Nは、
N＝N（ｘ％１６，ｙ％１６）
となる。なお、％は剰余演算を表す。
【００２８】
次に、このノイズ符号Nと入力画素データIに従い、ノイズ量LUT１３より閾値Tを求める。ノイズ量LUT１３には、０から２５５までの入力画素データ毎に、Nの値に対応する２個の整数値が格納されている。図５は、ノイズ量LUT１３の詳細を示す図であり、このLUTから上記ノイズ符号Nと入力画素データIに対応する値を読み込んで閾値Tとし、閾値設定処理を終了する。
【００２９】
すなわち、二値化処理は、二値化しようとする画素の値に応じた値に、その画素の位置に応じたノイズ値を加算した値を閾値として行われる。ノイズは、所定サイズの領域（ここでは１６×１６）中における総和が０となるように与えられるために、閾値の平均は変わらず、その結果、平均濃度もノイズを加算しない場合と同様に保たれる。
【００３０】
次に、ノイズマトリックス１２の作成手順を図６のフローチャートに従って説明する。ここで作成するノイズマトリックス１２は、最も均一に２つの値が分散した周期的パターンに多少のランダム性を取り入れた擬似周期的なパターンをもつ。本実施形態において前記擬似周期的パターンは、ランダムに初期要素を求め、求めた要素位置に対して一定の斥力ポテンシャルを付与し、該ポテンシャルが最小となる位置に新たな要素を設定する処理を繰り返すことにより生成されるものであり、斥力ポテンシャルは、要素からの位置に従って減衰する関数で表される。まず、１要素目をランダムにひとつ選び、当該要素のみを１、他の要素の値を−１に初期化する（ステップS２００）。ここでは、最初に１の値を与えられた要素の位置を（ｘ０，ｙ０）とする。次に、ポテンシャルの初期化を行う（ステップS２０１）。ポテンシャルは値１をもつ要素からの距離ｒに対して以下の関数ｆ（ｒ）で与えられるものとする。
ｆ（ｒ）＝−０．４１ｒ＋１．２１  （ｒ＜２）
ｆ（ｒ）＝２．７６ｅｘｐ（−ｒ）  （２≦ｒ＜１０）
ｆ（ｒ）＝０                      （ｒ≧１０）
従って、要素（ｘ０，ｙ０）による、マトリックス内の要素（ｘ，ｙ）に対するポテンシャルP（ｘ，ｙ）は次の式で求められる。
P（ｘ，ｙ）＝ｆ（√（｛（ｘ−ｘ０＋１６）％１６｝2＋｛（ｙ−ｙ０＋１６）％１６｝2））
ただし、ｘ０−１０＜ｘ＜ｘ０＋１０、ｙ０−１０＜ｙ＜ｙ０＋１０
次に、ポテンシャルの最も小さい要素を検索し、その値を１とする（ステップS２０２）。ポテンシャルの最小値を持つ要素が複数ある場合は、ランダムに一つの要素を選択する。次に、新たに１とした要素に対するポテンシャルを計算する（ステップS２０３）。ステップS２０２において１とした要素の位置を（ｘ１、ｙ１）とすると、新たなポテンシャルは次式により求められる。
P（ｘ，ｙ）＝ｆ（√（｛（ｘ−ｘ１＋１６）％１６｝2＋｛（ｙ−ｙ１＋１６）％１６｝2））
ただし、ｘ１−１０＜ｘ＜ｘ１＋１０、ｙ１−１０＜ｙ＜ｙ１＋１０
前記ステップS２０２、S２０３を、１の値をもつ要素と−１の値をもつ要素の数が等しくなるまで繰り返す。以上のようにしてノイズマトリックスの生成が行われる。上記の手順により、１と−１の値をもつ要素が一様に分散した視覚的に好ましい疑似周期的ノイズパターンを生成することができる。このように擬似周期的パターンをノイズパターンとして使用する場合、一様乱数をノイズとして使用した場合と比べて低周波が少ないため、粒状性の悪化を防止するように働く。
なお、ノイズマトリックス生成のための手段は本画像処理装置に組み込まれる必要はなく、予め別個のノイズマトリックス生成装置によりノイズマトリックスを生成し、結果マトリックスのみをノイズマトリックスメモリに格納するものとする。
【００３１】
＜ノイズ量ＬＵＴ作成手順＞
次に、ノイズ量LUT１３の作成手順を図７のフローチャートに従って説明する。図８は後述する量子化（二値化）誤差平均値a v e _E（ｇ）の算出時に使用される画像を示しており、８０は二値化処理が施される全画像領域であり、８１は量子化誤差平均値a v e _E（ｇ）を算出する際の対象となる画像領域である。図９は、入力画素の階調データと、後述する手順で得られる平均量子化誤差ａｖｅ_E（ｇ）との関係を示している。以下、例として入力階調g＝１に対応する閾値ノイズ量設定手順について説明する。
【００３２】
まず、ノイズ量LUT１３の値を全ての入力階調データに対して０に初期化する（ステップS３００）。
【００３３】
次に、５１２×５１２画素の一様な階調値ｇ＝１をもつ画像データに対して量子化（二値化）処理を行い、量子化誤差の平均値a v e_ E（ｇ）を求める（ステップS３０１）。画像の走査は画像領域の左上端の画素から開始し、画像の右下端の画素に向かって二値化処理が行われる。この手順は、ノイズ量ＬＵＴの内容をすべて０とした場合の図２の手順である。そして、図８に示される、ドットの形成が安定状態に達したと思われる、画像の下端付近における２５６×２５６画素の画像領域８１に対して、累積誤差加算後の画素データI'と出力画素値Oとの差分、すなわち量子化誤差Eの平均値ａｖｅ_E（ｇ）を求める。すなわち、図２のステップＳ１０４において誤差演算を行い差分Ｅｒｒを計算するが、その値を画像領域８１について積算し、２５６×２５６画素で割ることで平均化して平均値ａｖｅ_E（ｇ）が得られる。
【００３４】
次に、量子化誤差の平均値a v e _E（ｇ）の符号を反転させ、その値にノイズ振幅量＋１０及び−１０をそれぞれ加算し、さらにその値に二値化に通常用いられる閾値１２８を加えた値T１、T２をノイズ量LUT１３に格納する（ステップS３０２）。すなわち、Ｔ１，Ｔ２は次のように与えられる。
T１＝−a v e _E（ｇ）＋１０＋１２８
T２＝−a v e _E（ｇ）−１０＋１２８
つまり、入力階調ｇ＝１の場合の量子化誤差平均値a v e _E （ｇ）を７７とすると、ノイズ量LUT１３に格納する値は、−７７±１０＋１２８であり、６１及び４１となる。
【００３５】
次に、入力画素の階調データｇが取り得る全ての値（２５６階調）について上記処理が終了したか確認し（ステップS３０３）、終了していればノイズ量LUT１３作成処理を終了する。終了していなければｇの値を変えて、全ての画素がその値をもつ画像の二値化処理における二値化誤差の平均値を求め、ノイズ量ＬＵＴへの登録値を求める処理を繰り返す。
【００３６】
すなわち、ノイズ量ＬＵＴ１３においては、平均の閾値１２８に、平均量子化誤差ａｖｅ_E（ｇ）の符号を反転させた値−ａｖｅ_E（ｇ）が加えられ、さらにノイズ振幅量として±１０が加算されている。ノイズ振幅量の＋１０と−１０は、分布の比率が一定であるために、一定の広がりに対しては平均値が０となる。
そのため、ノイズ量ＬＵＴ１３においては、ある画素値に対しては、その画素の二値化処理時の平均二値化誤差が０となるように閾値が与えられることになる。
【００３７】
以上の手順で生成されるノイズマトリックス１２及びノイズ量ＬＵＴ１３を用いて、図２の手順に従って多値画像の二値化処理を行うことで、次のような効果がある。
【００３８】
すなわち、本実施形態では、量子化のための閾値に加算するノイズ平均値を、平均量子化誤差ａｖｅ_E（ｇ）の符号を反転させた値とすることで、平均量子化誤差ａｖｅ_E（ｇ）が全ての入力階調に対して０となる。一般に、ドットの生成遅延は、平均量子化誤差ａｖｅ_E（ｇ）が０とならない階調において発生するとされている（特開平07-111591）。そのため、本実施形態の画像処理装置においては、二値化処理においてドットの生成遅延を発生させず、原多値画像に忠実な二値画像を生成することができる。
【００３９】
また、ノイズ振幅量である±１０は、入力階調に応じて変化させることも可能である。例えば、誤差拡散法による二値化を行った際に、６４、１２８等の入力階調においては規則的パターンが発生しやすく、それが目について画質を劣化させることがある。図１０は上記規則的パターンの一例であり、パターン１００は入力階調６４に対応する出力パターン、パターン１０１は入力階調１２８に対応する出力パターンである。このような階調においては、ノイズ振幅量を他階調よりも大きく設定することにより、上記規則的パターンの発生を低減できる。逆に、ノイズの印加による粒状性の悪化が目立ちやすい低濃度部においては、ノイズ振幅を小さくすることもできる。
【００４０】
以上のような構成により、出力画像の粒状性を悪化させずに誤差拡散法特有の周期性が緩和され、かつドットの生成遅延が低減するような閾値を設定することができる。
【００４１】
ここで、図２の二値化処理や、図６のノイズマトリックス作成処理、図７のノイズ量ＬＵＴ作成処理の手順を行うためのコンピュータの構成を図２０に示す。これらの手順は同一のコンピュータにより処理することもできるが、図２の二値化処理時にノイズマトリックス１２及びノイズ量ＬＵＴ１３が用意されていればよいことから、それぞれ別個のコンピュータにより処理することもできる。
【００４２】
図２０において、ホストコンピュータ３０００は、ＲＯＭ３のプログラム用ＲＯＭやＲＡＭ２に記憶された、図２、図６、図７の手順のコンピュータプログラム等に基づいて、それら手順を実行するＣＰＵ１を備え、システムバス４に接続される各デバイスをＣＰＵ１が統括的に制御する。ＲＡＭ２は、ＣＰＵ１の主メモリ、ワークエリア等として機能する。ノイズマトリックス１２やノイズ量ＬＵＴ１３もＲＡＭ２に格納される。
【００４３】
キーボードコントローラ（ＫＢＣ）５は、キーボード９や不図示のポインティングデバイスからのキー入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）６は、ＣＲＴディスプレイ１０の表示を制御する。ディスクコントローラ（ＤＫＣ）７は、ブートプログラム、種々のアプリケーション、フォントデータ、ユーザファイル、編集ファイル等を記憶するハードディスク（ＨＤ）、フロッピーディスク（ＦＤ）等の外部メモリ１１とのアクセスを制御する。プリンタコントローラ（ＰＲＴＣ）８は、所定の双方向インターフェース（双方向Ｉ／Ｆ）２１を介して不図示のプリンタに接続されて、プリンタとの通信制御処理を実行する。
【００４４】
図１に示した各ブロックも、ＣＰＵ１により所定のプログラムを実行することで実現できる。その場合、入力部１０は、外部メモリ１１等からの画像の読み込みを行うためのプログラムにより、出力部１０は、二値化処理後の画像データをＲＡＭ２や外部メモリ１１に書き出すプログラムにより実現される。
【００４５】
（第２の実施形態）
図１１は、本発明の第２の実施形態である画像処理装置の構成を示したブロック図である。本実施形態の画像処理装置は、第１の実施形態の画像処理装置に対して、入力階調毎の閾値平均値が記憶された閾値平均値LUT２１と、入力階調毎の閾値ノイズ振幅が記憶されたノイズ量LUT１３が追加及び変更された構成となっている。以下、図１１の画像処理装置を用いた閾値設定手順を図１２のフローチャートに従って説明する。なお、本実施例における入力画像の量子化手順は、図２のフローチャートに示される量子化手順と同様であるため、説明を省略する。
【００４６】
まず、入力画素データの横と縦の画素位置をそれぞれｘ、ｙとし、ノイズマトリックスメモリ１２に格納されているノイズマトリックスより画素位置ｘ、ｙに対応するノイズ符号Nを、第１の実施形態と同じ図６の手順により求める（ステップS４００）。
【００４７】
次に、入力画素データIに従い、ノイズ量LUT１３よりノイズ振幅N_ a m pを求める（ステップS４０１）。ノイズ量LUT１３には、０から２５５までの入力階調毎に１個の値が格納されており、規則的パターンの発生しやすい階調においては他の階調より大きい値が格納されている。図１３は、ノイズ量LUT１３の詳細を示す図である。
【００４８】
次に、入力画素データIに従い、閾値平均値LUT２１より閾値平均値Th_a v eを求める（ステップS４０２）。図１４は閾値平均値LUT２１の詳細を示す図であり、図９に示される入力階調毎の平均量子化誤差a v e_ E (g)の符号を反転し、１２８を加算した値が格納されている。すなわち、第１実施形態の図７のステップＳ３０１で説明した手順と同様の手順で平均量子化誤差a v e_ E (g)を求め、Th_a v e＝１２８−a v e_ E (g)として求めることができる。
【００４９】
次に、位置（ｘ，ｙ）における値ｇの画素の量子化のための閾値Tを、
T＝N（ｘ％１６，ｙ％１６）× N_a m p（ｇ）＋ Th_a v e（ｇ）
により求め（ステップS４０３）、閾値設定処理を終了する。ただし、％は剰余を求める演算であり、Ｎ(ｉ，ｊ)は、画素位置（ｉ，ｊ）に対応するノイズ符号、N_a m p（ｇ）は、画素値ｇに対応する図１３のノイズ量ＬＵＴ１３に登録されたノイズ振幅である。
【００５０】
このように、閾値平均値と閾値ノイズ振幅を別個に記憶させることにより、前記閾値平均値又はノイズ振幅を個別に変更することが容易となる。
【００５１】
（第３の実施形態）
図１５は、本発明の第３の実施形態である画像処理装置の構成を示したブロック図である。本実施形態は、シアン（C）、マゼンタ（M）、イエロー（Y）、ブラック（K）の４つのプレーンからなるカラー画像に適用するものであり、本実施形態の画像処理装置は、第１の実施形態の画像処理装置に対して、ノイズ量LUT２２が複数の色に対応するLUTに変更されている。
【００５２】
図１６は、本実施形態におけるノイズ量LUT２２の詳細を示した図である。図１６においてM、K用の閾値ノイズ量を示す2個の値は、C、Y用の閾値ノイズ量の組み合わせを逆にしたものとなっている。例えば、図１６において、入力値が０の場合、Ｃ，Ｙ用の閾値ノイズ量は、ノイズ符号Ｎ＝１に対して１１８、ノイズ符号Ｎ＝−１に対して１３８であるが、Ｍ，Ｋ用の閾値ノイズ量は、ノイズ符号Ｎ＝１に対して１３８、ノイズ符号Ｎ＝−１に対して１１８となっている。また、ノイズマトリックスメモリ１２には2個のマトリックス１７０，１７１が格納されている。ノイズ量ＬＵＴの値は、第１実施形態の図７の手順でＣ，Ｙ用あるいはＭ，Ｋ用のいずれかを求めた後、同一の画素値における、各ノイズ符号値に対する閾値を互いに交換することで得ることができる。
【００５３】
図１７は、ノイズマトリックスメモリ１２の詳細を示す図である。マトリックス１７０はC、M用ノイズマトリックス、マトリックス１７１はY、K用ノイズマトリックスである。なおノイズマトリックス１７０は第１の実施形態と同様に図６の手順により作成されたものである。またノイズマトリックス１７１の各要素は、前記ノイズマトリックス１７０を９０度回転させる処理を行って得られる値となっている。
【００５４】
閾値設定部１４では、処理しようとする色に応じた閾値ノイズ量とノイズマトリックスを選択し、第１の実施形態と同様に閾値設定処理を行う。なお本実施例における色毎の量子化処理は第１の実施形態と同様であるため、説明を省略する。
【００５５】
このように、CとM、YとK用の閾値ノイズの上限と下限を各画素位置において反転させることにより、出力画像における上記各色のドットを重なりにくくすることができる。なお、CとM、YとK用のノイズマトリクスを共用せず、マトリクスの要素である１と−１を互いに反転させることで、C,M,Y,Kそれぞれのカラープレーンごとに独立したノイズマトリクスを割り当ててもよい。例えば、図１７のマトリクス１７０はＣとＹとで共用されるが、これを反転させ、一方をＣ用に、他方をＹ用に割り当てる。マトリクス１７１についても同様である。このようにした場合には、各カラープレーンについての量子化処理を全く同一の手順で行う。色によってノイズの上限を取るか下限を取るか切り替える必要はない。こうすることで、上述した処理と同様の結果を得られることに加えて、各カラープレーンについての量子化処理を全く同一の手順で行うことができ、処理対象の色を参酌する必要がなくなり、処理の簡単迅速化を図ることができる。
【００５６】
なお上記CとMの閾値ノイズ設定手順を、同色（例えばC）の異なる濃度をもつ２つのプレーンに対して使用することも可能である。
【００５７】
以上のような構成により、２つのプレーンにおける入力画素値がほぼ等しい領域において、ドットを重なりにくくなるような閾値を設定することが可能となる。
【００５８】
（第４の実施形態）
第３の実施形態では、＋１と−１の値をもつ要素（ノイズ符号）の比率が同一であるノイズマトリックスを2個用いて色毎に閾値の設定を行ったが、本実施形態では＋１と−1の比率が異なる４つのノイズマトリックスを用いて閾値を設定する。
【００５９】
以下、CMYK各色に対応する4個のノイズマトリックス作成手順を図１８のフローチャートに従って説明する。なお、各マトリックスは１６×１６のサイズをもつ。
【００６０】
まず、各マトリックスの要素をすべて−1に初期化する（ステップS５００）。
次に、C用マトリックスから１要素目をランダムにひとつ選択し、その値を１とする（ステップS５０１）。次に、ポテンシャルの計算を第１実施形態と同様に行う（ステップS５０２）。
【００６１】
次に、ポテンシャルの最も小さい要素位置を検索し、M用マトリックスにおける当該要素の値を１とする（ステップS５０３）。ポテンシャルの最小値を持つ要素が複数ある場合は、ランダムに一つの要素を選択する。
【００６２】
次に、新たに１とした要素に対するポテンシャルを加算し（ステップS５０４）、最小ポテンシャルをもつY用マトリックス要素の値を１とする（ステップS５０５）。K用マトリックスにも同様のステップを繰り返す（ステップS５０６−５０８）。
【００６３】
前記ステップS５０１からS５０８を、各マトリックスにおいて１の値をもつ要素がマトリックスの総要素数の１/４となるまで繰り返す（ステップS５０９）。
以上のようにしてノイズマトリックスの生成を行う。
【００６４】
図１９は、本実施形態におけるノイズマトリックスの例であり、マトリックス１９０から１９３は、それぞれC、M、Y、K用ノイズマトリックスを示す。上記の手順により、１の値をもつ要素の位置が色毎に全て異なり、かつ各マトリックスにおける１の値をもつ要素が一様に分散した擬似周期的パターンとなるような4個のノイズマトリックスを作成することができる。
【００６５】
なおノイズ量LUT１２には、第１の実施形態と同様の手順により求めた各入力階調における量子化誤差平均値a v e_E（ｇ）に対して、予め以下の演算により入力階調毎にT１、T２の値を求め、格納しておく。
【００６６】
T1 ＝ −a v e_E（ｇ）＋１５＋１２８
T2 ＝ −a v e_E（ｇ）−５＋１２８
つまり、入力階調ｇ＝１の場合の量子化誤差平均値a v e_E （ｇ）を７７とすると、ノイズ量LUT１３に格納する値は、６６及び４６となる。Ｔ１がノイズ符号Ｎ＝１に対応し、Ｔ２がノイズ符号−１に対応する。各色のノイズマトリックスにおける、ノイズ符号の分布の不均等さ、すなわち＋１が１個に対して−１が３個となる分布の不均等さを、ノイズ振幅に、ノイズ符号が＋１の場合に対応する振幅を、ノイズ符号が−１の場合に対応する振幅の３倍とするよう重みを付けることで補償している。このため、一定の画像の広がりについては、ノイズ振幅の平均値は０となる。
【００６７】
さらに、各カラープレーンに対応するノイズマトリックスを、あたかもひとつのノイズマトリックスを作成するかのようにして作成することで、各カラープレーンにおいて、ノイズマトリックス中の符号が＋１となる画素位置が重複することを防止できる。
【００６８】
以上のような構成により、特にC、M、Y、Kの各色成分の入力画素値がほぼ等しい領域において、色の異なるドットが重なりにくくなるような閾値を設定することが可能となる。
【００６９】
なお本発明の目的は前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラム読出し実行することによっても、本発明の目的が達成される。
【００７０】
この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００７１】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００７２】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００７３】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００７４】
【発明の効果】
以上説明したように、本発明によれば、出力画像の粒状性を悪化させずに誤差拡散法特有の周期性を緩和し、かつドットの生成遅延を軽減することができる。
【図面の簡単な説明】
【図１】本発明の第一の実施例である画像処理装置のブロック図
【図２】第一の実施例である画像処理装置の動作を説明するフローチャート
【図３】誤差バッファの構成例の図
【図４】ノイズマトリックスの一例を示す図
【図５】ノイズ量LUT１３の一例を示す図
【図６】閾値ノイズの設定手順を説明するフローチャート
【図７】ノイズ量LUT１３の生成手順を説明するフローチャート
【図８】平均量子化誤差量算出時に使用する画像を示す図
【図９】入力階調データと平均量子化誤差の関係を示す図
【図１０】特定の入力階調において出力画像に発生する規則的パターンを示す図
【図１１】本発明の第二の実施例である画像処理装置のブロック図
【図１２】閾値設定手順を説明するフローチャート
【図１３】ノイズ量LUT１３の一例を示す図
【図１４】閾値平均値LUT２１の一例を示す図
【図１５】本発明の第三の実施例である画像処理装置のブロック図
【図１６】ノイズ量LUT１３の一例を示す図
【図１７】第三の実施例におけるノイズマトリックスメモリを示す図
【図１８】ノイズマトリックスの生成手順を説明するフローチャート
【図１９】第四の実施例におけるノイズマトリックスメモリを示す図
【図２０】実施形態の画像処理装置として機能し得るコンピュータのブロック図
【図１】
0004587153.tif 000003
【図２】
0004587153.tif 000004
【図３】
0004587153.tif 000005
【図４】
0004587153.tif 000006
【図５】
0004587153.tif 000007
【図６】
0004587153.tif 000008
【図７】
0004587153.tif 000009
【図８】
0004587153.tif 000010
【図９】
0004587153.tif 000011
【図１０】
0004587153.tif 000012
【図１１】
0004587153.tif 000013
【図１２】
0004587153.tif 000014
【図１３】
0004587153.tif 000015
【図１４】
0004587153.tif 000016
【図１５】
0004587153.tif 000017
【図１６】
0004587153.tif 000018
【図１７】
0004587153.tif 000019
【図１８】
0004587153.tif 000020
【図１９】
0004587153.tif 000021
【図２０】
0004587153.tif 000022