(57)【特許請求の範囲】
【請求項１】
多階調画像データを、誤差拡散法または平均誤差最小法を用いて、第１階調値および第２階調値（第１階調値＜第２階調値）からなる２階調画像データに２値化変換する画像処理装置において、
注目画素の多階調画像データを、周辺の既２値化済画素から拡散された誤差を加えて補正し、補正画素データとして出力する誤差補正手段と、
前記注目画素の多階調画像データの階調値に応じて２値化のためのしきい値に異なる値を設定し得るしきい値設定手段と、
前記設定されたしきい値に基づき、前記補正画素データを前記２階調画像データに２値化変換する２値化手段と、
を有し、前記注目画素の多階調画像データの階調値をdata、前記第１階調値および第２階調値の中間値をｍ、前記しきい値をslshとすると、
前記しきい値設定手段は、
dataが第１階調値近辺の値の場合には、data≦slsh≦(m+data)/2
dataが第２階調値近辺の値の場合には、(m+data)/2≦slsh≦data
のいずれかを満たすようにしきい値slshを設定し、
前記２値化手段は、
設定されたしきい値または前記補正画素データにランダムノイズを加えた上で２値化処理を行う画像処理装置。
【請求項２】
前記しきい値設定手段は、
slsh＝（data＊（Ｋ−１）＋ｍ）／Ｋ（ただし、Ｋは２以上の整数で表される定数）
を満たすようにしきい値slshを設定する請求項１記載の画像処理装置。
【請求項３】
前記しきい値設定手段は、
前記階調値dataの値に応じて、前記しきい値slshを段階的に設定する請求項１記載の画像処理装置。
【請求項４】
前記しきい値設定手段は、
data＜ｍ−Ｌ1の場合には、slsh＝data＋Ｌ1
ｍ−Ｌ1＜data＜ｍ＋Ｌ2の場合には、s lsh＝ｍ
ｍ＋Ｌ2＜dataの場合には、slsh＝data−Ｌ2
（ただし、Ｌ1，Ｌ2は０〜ｍの間の整数で表される定数）
を満たすようにしきい値slshを設定する請求項１記載の画像処理装置。
【請求項５】
多階調画像データを、誤差拡散法または平均誤差最小法を用いて、第１階調値および第２階調値（第１階調値＜第２階調値）からなる２階調画像データに２値化変換する画像処理方法において、
注目画素の多階調画像データを、周辺の既２値化済画素から拡散された誤差を加えて補正し、補正画素データとして出力する誤差補正工程と、
２値化のためのしきい値を設定するしきい値設定工程と、
前記設定されたしきい値に基づき、前記補正画素データを前記２階調画像データに２値化変換する２値化工程と、
を含み、前記注目画素の多階調画像データの階調値をdata、前記第１階調値および第２階調値の中間値をｍ、前記しきい値をslshとすると、
前記しきい値設定工程では、
dataが第１階調値近辺の値、または第２階調値近辺の値であるかを判別し、
dataが第１階調値近辺の値の場合には、data≦slsh≦(m+data)/2
dat aが第２階調値近辺の値の場合には、(m+data)/2≦slsh≦data
を満たすようにしきい値slshを設定し、
前記２値化工程では、
設定されたしきい値または前記補正画素データにランダムノイズを加えた上で２値化処理を行う画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、多階調画像データを、中間調表示可能な２階調画像データに変換出力する画像処理装置、特に多階調画像データを誤差拡散法または平均誤差拡散最小法を用い、中間調表示な２階調画像データに変換出力する画像処理装置及び方法の改良に関する。
【０００２】
【背景技術】
従来より、スキャナなどの画像入力を用いて読み取った多階調画像データや、コンピュータを用いて演算された多階調グラフィック画像データ等を、例えばディスプレイやプリンタ等を用いて再生表示させたり、あるいはファクシミリやデジタル複写機等を用いて再生表示させることが行われている。
【０００３】
このとき、画像出力装置として、多階調の画像データが再生表示できるものを用いる場合には問題はないが、例えばドット単位での階調制御ができないプリンタ装置や、ディスプレイ装置を用いた場合には、各画素の階調を２階調に減らす二値化処理を行う必要がある。
【０００４】
さらに、前記多階調画像データを保存し、あるいは転送するために、そのデータ容量を減らそうとする場合には、同様に各画素の階調数を２階調に減らす二値化処理することが広く行われている。
【０００５】
このように、多階調画像データを二値化処理する手法としては、各種のものがある。その中で、最も画質の優れたものとして、誤差拡散法や、それと等価な平均誤差最小法が広く用いられている。前記誤差拡散法や平均誤差最小法は、高解像度でありながら、連続的な階調制御が可能であるという優れた特徴をもつ。
【０００６】
前記誤差拡散法は、ある画素の二値化時に生じた量子化誤差を、周辺のまだ二値化していない画素に拡散して加えるものである。一方、平均誤差最小法は、周辺の二値化済みの画素に生じた量子化誤差の重み付き平均値で、次の注目画素のデータ値を修正するものである。誤差拡散法と、平均誤差最小法は、誤差の拡散作業をいつ行うかが異なるだけであり、論理的には等価である。誤差拡散法を使用した例としては、例えば特開平１−２８４１７３号公報の「画像処理方法及び装置」等がある。
【０００７】
【発明が解決しようとする課題】
しかし誤差拡散法や平均誤差最小法を用いた従来の画像処理装置では、多階調画像データを２階調画像データに変換する際に、次のような問題があった。
【０００８】
［第１の問題点］
低濃度領域（黒ドットが疎な領域）の立上がり部における黒ドットの生成および、高濃度領域（白ドットが疎な領域）の立上がり部における白ドットの生成が、大幅に遅延し、その結果、最悪の場合には画像が変形してしまう場合があるという問題があった。
【０００９】
［第２の問題点］
また、低濃度領域や高濃度領域が終わった後も、周辺画素に対する異常な誤差の拡散が残り、低濃度領域の後に続く画像データは高濃度側に、高濃度領域の後に続く画像データは低濃度側に歪む「尾引き」という現象が生じるという問題があった。
【００１０】
前記第１の問題点を、白い紙上に黒インクのドットを印画する２階調プリンタ装置の場合について考えると、黒ドットはインクが滲んで大きくなるのに対し、白ドットは周囲の黒ドットからの滲みで潰れて目立ちにくくなるので、前記第１の問題点は特に低濃度部で目立つ結果となる。
【００１１】
前記第１の問題点および第２の問題点を、図面を用いてより詳細に説明する。
【００１２】
図１３は、多階調を用いて表示された原画像１００である。この原画像１００は、濃度階調値２５２（２５５で最高値）の正方形をした高濃度領域１１０の中に、濃度階調値３（０が最低濃度）の正方形の低濃度領域１２０が存在し、さらにこの低濃度領域１２０の右下に濃度階調値２３１（背景濃度２５２よりやや低濃度）の傾き４５度の直線１３０が引いてある。
【００１３】
図１４（Ａ）には、誤差拡散法を用いた従来技術により、図１３に示す原画像１００の多階調画像データを二値化した画像が示されている。なお、図１４（Ｂ）には、図１４（Ａ）の場所を示すための概略図が示されている。この二値化画像は、原画像１００の左上隅画素を二値化開始点とし、右方向に１行分二値化した後、１画素下の行の左端に移る、という二値化作業を繰り返し得られたものである。これに対し、図１２は、同じ原画像１００が理想的に二値化された場合の出力例であり、本発明の画像処理装置によるものである。
【００１４】
両者を比較すると、図１４では、正方形をした高濃度領域１１０の上辺および左辺の領域１４０（図１４（Ｂ）参照）で白ドットの生成が遅延し、さらに正方形の低濃度領域１２０の上辺および左辺の領域１４２では、黒ドットの生成の遅延が生じている。すなわち、領域１４０，１４２では、前述した第１の問題が発生している。
【００１５】
さらに、階調値３の正方形をした低濃度領域１２０の尾引きの影響で、その右下にある領域１５０において、直線１３０の一部１３２が消失してしまっている。このように、領域１５０では、前述した第２の問題が発生している。
【００１６】
このような、第１および第２の問題を解決するために、特開平１−１３０９４５号公報にかかる「画像処理装置」の提案がなされている。
【００１７】
この提案に記載の第１の実施例は、０〜２５５の２５６階調の入力濃度データを扱う場合に、入力濃度データ値が１以上２９以下の場合に、しきい値が以下に示すようにランダムに変化するようにしている。
【００１８】
入力データが１〜４の時は、２０〜２３０、入力データが５〜１４のときは５０〜２００、入力データが１５〜２９のときは１００〜１５０の幅でしきい値をランダムに変化させる。ランダムノイズの幅は、データが１〜４の時はプラスマイナス１０５、データが５〜１４のときはプラスマイナス７５、データが１５〜２９のときはプラスマイナス２５というふうになっており、０に近い低濃度領域ほど、大きなノイズを加える結果となっている。ただし、しきい値の期待値はいずれも１２５で一定となっている。
【００１９】
このようにすると、低濃度時には大きなしきい値ノイズによってしきい値が非常に小さな値になるケースが生じる。このため、低濃度領域の立上り部でも２５５側に二値化される画素が発生し、ドット生成の遅延が改善される。しかし、この手法によって前記第１の問題点を改善しようとした場合には、低濃度領域は非常にノイズの多い、低品位な画像となってしまう。また、この従来例では、判定回路という特別な機構を設け、この判定回路を用い、注目画素周辺の二値化済み画素の二値化結果を調べ、周辺に既にドットがある場合には、注目画素をドット有りに二値化しないような判定処理を行っている。これは、前記問題を少しでも改善するためであろうと思われる。しかし、そのためには、判定回路が近傍の１２画素という多くの画素の二値化結果を参照するという複雑な判定処理が必要となり、処理時間がかかる上に、画質的にもまだ十分ではないという問題があった。これに加えて、この従来技術では、第２の問題点の改善も不十分であった。
【００２０】
また、この従来技術に記載の「その他の実施例１」には、信号４１０を定義する式と、その例を示す図１とが食い違って記載されており、その正確な理解は難しい。しかし、この従来技術には、「前述の実施例の場合と同じような閾値設定の機能をもたせて、かつハード規模を小さくできる」と述べられていることから、第１の実施例同様に、低濃度領域ではしきい値に大量のノイズを加えていると考えられる。従って、この従来例に記載の「その他の実施例１」は、「第１の実施例」と同様な問題点を有している。
【００２１】
また、前記第１および第２の問題点を改善するための別の手法として、特開平３−１１２２６９号公報にかかる「画像処理装置」や、特開平４−１２６４６４号公報にかかる「画像形成装置」などの提案がある。これらの従来技術は、注目画素近傍の複数画素の二値化結果を参照することによって、平均濃度値を推定し、それをしきい値として注目画素の二値化を行っている。
【００２２】
しかし、これらの従来技術は、次の▲１▼、▲２▼の問題があった。
【００２３】
（１）周辺の１０以上もの画素の二値化結果を参照する必要があり、処理時間がかかったり、複雑な処理回路が必要となったりするという問題があった。
【００２４】
（２）さらに、データが急に変化しているエッジ部分では、周辺画素の平均濃度値を用いるのは適切でなく、この結果、不適切な二値化が行われ、ノイズが発生してしまうという問題があった。
【００２５】
本発明は、このような従来の課題に鑑みなされたものであり、その目的は、低濃度領域、高濃度領域の立上り部でのドット生成の遅延や、低濃度領域、高濃度領域が終わった後の尾引きの問題を解決する事ができるとともに、画質劣化につながるがる副作用がなく、複雑な処理回路などを用いなくても多階調画像データを高速に二階調画像データに画像処理できる画像処理装置及び方法を得ることにある。
【００２６】
【課題を解決するための手段】
（１）前記目標を達成するため、本発明は、
多階調画像データを、誤差拡散法または平均誤差最小法を用いて、第１階調値および第２階調値（第１階調値＜第２階調値）からなる２階調画像データに２値化変換する画像処理装置において、
注目画素の多階調画像データを、周辺の既２値化済画素から拡散された誤差を加えて補正し、補正画素データとして出力する誤差補正手段と、
前記注目画素の多階調画像データの階調値に応じて２値化のためのしきい値に異なる値を設定し得るしきい値設定手段と、
前記設定されたしきい値に基づき、前記補正画素データを前記２階調画像データに２値化変換する２値化手段と、
を有し、
所定の多階調画像データ領域において、所定の多階調画像データの階調値に対して設定するしきい値は、該所定の階調値よりも大きい階調値に対して設定するしきい値以下となる関係が成り立ち、
前記２値化手段は、
設定されたしきい値または前記補正画素データにランダムノイズを加えた上で２値化処理を行う。
【００２７】
前記所定の多階調画像データの領域とは、
実質的に前記第１階調値から前記第２階調値の全ての範囲とすることが可能である。
【００２８】
前記所定の多階調画像データの領域とは、
前記第１階調値の近傍または前記第２階調値の近傍の少なくとも片方とすることが可能である。
【００２９】
前記第１階調値と第２階調値の中間値をｍとして、
前記所定の多階調画像データの領域とは前記第１階調値近傍であり、該所定の階調値よりも大きい階調値はｍ近傍であるか、または、
前記所定の多階調画像データの領域とは前記ｍ近傍であり、該所定の階調値よりも大きい階調値は前記第２階調値近傍である、
の少なくとも片方を実質的に満たすようにすることが可能である。
【００３０】
（２）また、本発明は、多階調画像データを、誤差拡散法または平均誤差最小法を用いて、第１階調値および第２階調値（第１階調値＜第２階調値）からなる２階調画像データに２値化変換する画像処理装置において、
注目画素の多階調画像データを、周辺の既２値化済画素から拡散された誤差を加えて補正し、補正画素データとして出力する誤差補正手段と、
前記注目画素の多階調画像データの階調値に応じて２値化のためのしきい値に異なる値を設定し得るしきい値設定手段と、
前記設定されたしきい値に基づき、前記補正画素データを前記２階調画像データに２値化変換する２値化手段と、
を有し、前記注目画素の多階調画像データの階調値をdata、前記第１階調値および第２階調値の中間値をｍ、前記しきい値をslshとすると、
前記しきい値設定手段は、
dataが第１階調値近辺の値の場合には、data≦slsh≦(m+data)/2
dataが第２階調値近辺の値の場合には、(m+data)/2≦slsh≦data
のいずれかを満たすようにしきい値slshを設定し、
前記２値化手段は、
設定されたしきい値または前記補正画素データにランダムノイズを加えた上で２値化処理を行う。
【００３１】
前記しきい値設定手段は、
slsh＝（data＊（Ｋ−１）＋ｍ）／Ｋ（ただし、Ｋは２以上の整数で表される定数）
を満たすようにしきい値slshを設定することが可能である。
【００３２】
前記しきい値設定手段は、
前記階調値dataの値に応じて、前記しきい値slshを段階的に設定することが可能である。
【００３３】
前記しきい値設定手段は、
data＜ｍ−Ｌ1の場合には、slsh＝data＋Ｌ1
ｍ−Ｌ1＜data＜ｍ＋Ｌ2の場合には、slsh＝ｍ
ｍ＋Ｌ2＜dataの場合には、slsh＝data−Ｌ2
（ただし、Ｌ1 ，Ｌ2 は０〜ｍの間の整数で表される定数）
を満たすようにしきい値slshを設定することが可能である。
【００３４】
（３）また、本発明は、多階調画像データを、誤差拡散法または平均誤差最小法を用いて、第１階調値および第２階調値（第１階調値＜第２階調値）からなる２階調画像データに２値化変換する画像処理方法において、
注目画素の多階調画像データを、周辺の既２値化済画素から拡散された誤差を加えて補正し、補正画素データとして出力する誤差補正工程と、
２値化のためのしきい値を設定するしきい値設定工程と、
前記設定されたしきい値に基づき、前記補正画素データを前記２階調画像データに２値化変換する２値化工程と、
を含み、所定の多階調画像データの階調値に対してしきい値設定工程において設定するしきい値は、該所定の階調値よりも大きい階調値に対して設定するしきい値よりも低い関係が所定の多階調画像データ領域において成り立ち、
前記２値化工程では、
設定されたしきい値または前記補正画素データにランダムノイズを加えた上で２値化処理を行う。
【００３５】
（４）また、本発明は、多階調画像データを、誤差拡散法または平均誤差最小法を用いて、第１階調値および第２階調値（第１階調値＜第２階調値）からなる２階調画像データに２値化変換する画像処理方法において、
注目画素の多階調画像データを、周辺の既２値化済画素から拡散された誤差を加えて補正し、補正画素データとして出力する誤差補正工程と、
２値化のためのしきい値を設定するしきい値設定工程と、
前記設定されたしきい値に基づき、前記補正画素データを前記２階調画像データに２値化変換する２値化工程と、
を含み、前記注目画素の多階調画像データの階調値をdata、前記第１階調値および第２階調値の中間値をｍ、前記しきい値をslshとすると、
前記しきい値設定工程では、
dataが第１階調値近辺の値、または第２階調値近辺の値であるかを判別し、
dataが第１階調値近辺の値の場合には、data≦slsh≦(m+data)/2
dataが第２階調値近辺の値の場合には、(m+data)/2≦slsh≦data
を満たすようにしきい値slshを設定し、
前記２値化工程では、
設定されたしきい値または前記補正画素データにランダムノイズを加えた上で２値化処理を行う。
【００３６】
【発明の実施の形態】
（１）本実施の形態は、
多階調画像データを、誤差拡散法または平均誤差最小法を用いて、第１階調値および第２階調値（第１階調値＜第２階調値）からなる２階調画像データに変換出力する画像処理装置において、
注目画素の多階調画像データに、周辺の既に二値化済の画素から拡散された誤差を加えて補正し、補正画素データとして出力する誤差補正手段と、
前記注目画素の多階調画像データの階調値に基づき、２値化しきい値を設定するしきい値設定手段と、
設定されたしきい値に基づき、前記補正画素データを前記２階調画像データに変換出力する二値化手段と、
を含み、
前記注目画素の多階調画像データの階調値をdata、前記第１階調値および第２階調値の中間の値をｍ、前記しきい値をslshとすると、
前記しきい値設定手段は、
前記二値化しきい値ｓｌｓｈを、前記注目画素の多階調画像データの階調値ｄａｔａに応じて、次式に示す許容範囲の少なくともいずれか一方を満たすように設定することを特徴とする。
【００３７】
dataが第１階調値近辺の値の場合には、data≦slsh≦(m+data)/2
dataが第２階調値近辺の値の場合には、(m+data)/2≦slsh≦data
ここにおいて、前記しきい値設定手段は、
前記注目画素の多階調画像データの階調値dataが、前記第１階調値および第２階調値の付近の値であるとき、前記二値化しきい値slshを前記許容範囲に設定するよう形成できる。
【００３８】
また、必要に応じ、前記しきい値設定手段は、
前記注目画素の多階調画像データの階調値dataが、前記第１階調値または第２階調値の付近の値であるとき、前記二値化しきい値slshを前記許容範囲に設定するよう形成することもできる。
【００３９】
また、前記しきい値設定手段は、
前記注目画素の多階調画像データの階調値dataの値に基づき、次式に従い前記二値化しきい値slshを設定することも可能である。
【００４０】
slsh＝（data＊（Ｋ−１）＋ｍ）／Ｋ
ただし、Ｋは２以上の整数で表される定数。
【００４１】
また、前記しきい値設定手段は、
前記注目画素の多階調画像データの階調値dataの値に応じて、前記二値化しきい値slshを段階的に設定することも可能である。
【００４２】
また、前記しきい値設定手段は、
前記注目画素の多階調画像データの階調値dataの値に基づき、次式に従い前記二値化しきい値slshを設定することも可能である。
【００４３】
data＜ｍ−Ｌ1のときには、slsh＝data＋Ｌ1
ｍ−Ｌ1＜data＜ｍ＋Ｌ2のときには、slsh＝ｍ
ｍ＋Ｌ2＜dataのときには、slsh＝data−Ｌ2
ただし、Ｌ２，Ｌ２は０〜ｍの間の整数で表される定数。
【００４４】
また、前記二値化手段は、
設定されたしきい値または前記補正画素データにランダムノイズを加え、前記補正画素データに対する前記二値化処理を行うことも可能である。
【００４５】
また、前記誤差補正手段は、
各画素毎の拡散誤差積算値を記憶する拡散誤差記憶部と、
補正画素データと二値化結果との二値化誤差を演算し、その二値化誤差を誤差拡散法を用い注目画素近傍の未二値化画素へ分配して拡散する演算を行い、前記拡散誤差記憶部に記憶された各画素毎の拡散誤差積算値に、前記注目画素からの拡散誤差を加算して新たな拡散誤差積算値を求め、前記拡散誤差記憶部に記憶された各画素毎の拡散誤差積算値を更新する誤差拡散部と、
注目画素の多階調画像データと、前記拡散誤差記憶部に記憶された注目画素の拡散誤差積算値とを加算し、前記補正画素データを演算するデータ補正部と、
を含み、注目画素の多階調画像データを誤差拡散法を用い補正し、補正画素データとして出力することも可能である。
【００４６】
また、前記誤差補正手段は、
各画素毎の誤差を記憶する誤差記憶部と、
補正画素データと二値化結果との二値化誤差を演算し、その二値化誤差を前記誤差記憶部に記憶する誤差拡散部と、
前記誤差記憶部に記憶された注目画素の周辺の画素の二値化誤差を読み出し所定の重み付けをすることにより平均誤差を求め、この平均誤差を注目画素の多階調画像データに加算し、前記補正画素データを演算するデータ補正部と、
を含み、注目画素の多階調画像データを平均誤差最小法を用い補正し、補正画素データとして出力することも可能である。
【００４７】
本実施の形態において、多階調画像データは、誤差補正手段およびしきい値決定手段に入力される。
【００４８】
誤差補正手段は、注目画素の多階調データに、周辺の既に二値化済の画素から拡散された誤差を加えて補正し、補正画素データとして出力する。
【００４９】
前記しきい値設定手段は、注目画素の多階調画像データの階調に基づき、二値化しきい値を設定する。このとき、注目画素の多階調画像データの階調値ｄａｔａが、二値化された後の画像の第１階調値および第２階調値（第１階調値＜第２階調値）の少なくともいづれか一方の付近の値を取るとき、二値化しきい値ｓｌｓｈを次式に示す許容範囲内に設定する。
【００５０】
dataが第１階調値近辺の値の時には、data≦slsh≦(m＋data)/2
dataが第２階調値近辺の値の時には、(m＋data)/2≦slsh≦data
そして、二値化設定手段は、設定されたしきい値に基づき、前記補正画素データを、中間調表示可能な第１階調値および第２階調値からなる２階調画像データに変換出力する。
【００５１】
このように、本実施の形態では、多階調画像データ値が小さいときには、しきい値を小さく、画像データ値が大きいときには、しきい値も大きくするよう注目画素の多階調画像データの階調値に応じて二値化しきい値を最適化することで、二値化に伴い発生する誤差の蓄積を解消し、注目画素のドット生成を良好に行うことができる。
【００５２】
また、本実施の形態のように、誤差拡散法または平均誤差最小法を用い二値化処理を行う場合には、二値化しきい値を変化させても、全体としての出力濃度はほとんど変動しないことが確認された。
【００５３】
以上説明したように、本実施の形態によれば、低濃度領域や高濃度領域で、多量の誤差の蓄積が発生するという現象を解消することができ、それに起因して生じていた、低濃度または高濃度領域の立上り部でのドット生成の遅延や、低濃度領域または高濃度領域が終わった後の尾引きなどの問題を画質劣化につながる副作用なしに根本的に解決することができる。
【００５４】
すなわち、本実施の形態によれば、多階調画像データを、誤差拡散法または平均誤差最小法を用いて補正し、しかも、注目画素の階調値画像データの階調値に基づき、二値化しきい値を最適化するしきい値設定手段を設けることにより、低濃度領域や高濃度領域で多量の誤差の蓄積が生じているという現象を解消することができ、それに起因して発生していた、低濃度領域や高濃度領域の立上り部でのドット生成の遅延や、低濃度領域や高濃度領域が終わった後の「尾引き」などの問題を、画質劣化に繋がる副作用なしに根本的に解消できる画像処理装置を得ることができるという効果がある。
【００５５】
さらに、本実施の形態によれば、しきい値設定手段を、簡単な演算を行うか、または変換テーブルを参照するなどの単純な構成で実現できるため、複雑な処理回路を必要とせず、高速にかつ良好な画像処理を行うことができる。
【００５６】
さらに、本実施の形態では、しきい値設定手段が設定するしきい値を増減させることで、ドット生成速度の調整が可能となり、必要に応じ過補正状態を設定することで、例えばエッジ強調的な効果を期待できるという副次的な効果が得られる。
【００５７】
次に、本発明の好適な実施例を図面に基づき詳細に説明する。
【００５８】
［システム全体の説明］
図１には、本発明にかかる画像処理装置を用いたシステムの概略が示されている。
【００５９】
階調画像データ出力装置１０から出力される原画像の多階調画像データ２００は、画像処理装置３０へ入力される。
【００６０】
画像処理装置３０は、入力された原画像の多階調画像データ２００を、二値画像出力装置２０の出力可能な２階調に階調数変換して出力する。すなわち、多階調画像データ２００を、誤差拡散法または平均誤差最小法を用いて補正し、中間調表示可能な第１階調値および第２階調値のみからなる２階調画像データ２３０に変換して出力する。
【００６１】
二値画像出力装置２０は、画像処理装置３０から出力される２階調画像データ２３０に基づき、原画像を再生出力する。
【００６２】
本実施例において、前記階調画像データ出力装置１０は、コンピュータを用いて形成されている。そして、このコンピュータは、ハードディスク等に記憶された多階調画像データ２００を画像処理装置３０へ向け出力するように構成されている。前記多階調画像データ２００は、０〜２５５の２５６階調の濃度データとして表されている。なお、この階調画像データ出力装置１０は、これ以外に、例えばコンピュータグラフィックの多階調画像データを出力するように形成してもよく、また、コンピュータ以外でも、例えば、スキャナ、ビデオカメラなど各種の手段を用いてもよい。
【００６３】
そして、実施例の画像処理装置３０は、入力される２５６階調の画像データを、誤差拡散法により、０（白）または２５５（黒）のみからなる２階調画像データ２３０に変換出力する。
【００６４】
また、実施例の二値画像出力装置２０は、画素単位での階調制御ができないプリンタを用いて形成され、入力される２階調画像データ２３０に基づき、原画像を中間調表示可能に再生出力する。なお、前記二値画像出力装置２０は、プリンタ以外に、必要に応じ、ディスプレイや、ファクシミリ装置、デジタル複写機等を用いてもよい。
【００６５】
［システムの具体例］
本実施例において、前記画像処理装置３０は、階調画像データ出力装置１０または二値画像出力装置２０と別体に形成してもよいが、必要に応じ、これら各装置１０，２０と一体に形成してもよい。
【００６６】
例えば、図１５に示すよう、階調画像データ出力装置１０としてホストコンピュータ１２を用い、二値画像出力装置２０としてプリンタ２０を用いた場合には、本実施例の画像処理装置３０を、プリンタ２２内へ一体的に組み込んで形成することができる。この場合には、プリンタ２２は、ホストコンピュータ１２より出力する多階調画像データ２００が入力されるデータ入力部２４と、本実施例の画像処理装置３０と、二値化ドット印画手段２６とを含んで構成される。
【００６７】
また、本実施例の画像処理装置３０を、図１６に示すよう、ホストコンピュータ１２内へ一体的に組み込んで形成してもよい。この場合、ホストコンピュータ１２は、階調画像ファイルの読込手段１４と、プリンタドライバ１６と、データ出力手段１８とを含むように構成される。そして、前記プリンタドライバ１６は、階調画像ファイル読込手段１４から多階調画像データ２００が入力される本実施例の画像処理装置３０と、この画像処理装置３０の出力に基づき、プリンタ制御コマンドを生成するプリンタ制御コマンド生成手段１６ａとを含み、プリンタ制御コマンドに基づき、プリンタ２２を制御するように構成されている。
【００６８】
なお、図１７に示すよう、階調画像データ出力装置１０としてスキャナ５０を用い、このスキャナ５０で読み込んだ多階調画像データを二値化データとしてホストコンピュータ６０へ出力する場合には、スキャナ５０に本実施例の画像処理装置３０を一体的に組み込んで形成すればよい。この場合には、スキャナ５０は、画像を光学的に読み取る階調画像データ読み取り部５２と、読み取られた多階調画像データ２００を２階調画像データ２３０として出力する本実施例の画像処理装置３０と、出力された２階調画像データ２３０のデータをホストコンピュータへ向け出力する二値化データ出力部５４とを含んで構成される。
【００６９】
なお、本実施例の画像処理装置は必要に応じ、前述以外の装置に一体的に組み込んで形成することもできる。
【００７０】
なお、説明の都合上、以降の説明では、図１に示すよう、本実施例の画像処理装置３０は、階調画像データ出力装置１０および二値画像データ出力装置２０とは別体に形成されるものとして、その説明を行う。
【００７１】
［画像処理装置］
図２には、前記画像処理装置３０の機能ブロック図が示されている。
【００７２】
実施例の画像処理装置３０は、最適しきい値設定手段３２と、誤差補正手段３４と、二値化手段３６とを含んで構成される。
【００７３】
前記最適しきい値設定手段３２および誤差補正手段３４には、注目画素の多階調画像データ２００として、ｉ行ｊ列目の画素Ｐ［ｉ，ｊ］のデータdata（ｉ，ｊ）が入力されている。
【００７４】
前記最適しきい値設定手段３２は、この注目画素Ｐ［ｉ，ｊ］の多階調画像データ２００を二値化するのに用いるslsh（ｉ，ｊ）を、注目画素の多階調画像データdata（ｉ，ｊ）に応じ、次式に基づき設定する。
【００７５】
slsh（ｉ，ｊ）＝（data（ｉ，ｊ）＊（Ｋ−１）＋１２８）／Ｋ  …（１）
ここで、Ｋは、２以上の整数で表される定数である。
【００７６】
前記誤差補正手段３４は、注目画素Ｐ［ｉ，ｊ］の多階調画像データdata（ｉ，ｊ）を、周辺画素の二値化によって生じる二値化誤差に基づき誤差拡散法を用いて補正し、補正画素データdata  c（ｉ，ｊ）として二値化手段３６へ向け出力する。
【００７７】
二値化手段３６は、入力される注目画素Ｐ［ｉ，ｊ］の補正画素データdata  c（ｉ，ｊ）を、しきい値slsh（ｉ，ｊ）と比較して二値化し、その二値化結果result（ｉ，ｊ）を２階調画像データ２３０として出力する。すなわち、補正画素データを、次のように二値化して出力する。
【００７８】
data  c(i,j)≧slsh(i,j)ならば、result(i,j)＝255
data  c(i,j)＜slsh(i,j)ならば、result(i,j)＝０          …（２）
前記実施例の誤差補正手段３４は、データ補正手段３８、誤差拡散手段４０、拡散誤差記憶手段４２を含んで構成される。
【００７９】
前記拡散誤差記憶手段４２は、原画像の各画素毎の拡散誤差積算値total  err（ｎ，ｍ）を記憶している。
【００８０】
そして、誤差拡散手段４０は、まず、二値化結果result（ｉ，ｊ）と補正データdata  c（ｉ，ｊ）とにより、二値化誤差errを、
err(i,j)=data  c(i,j)−result(i,j)                           …（３）
のようにして求める。次にその二値化誤差err （ｉ，ｊ）を近傍の未二値化画素Ｐ［ｍ，ｎ］（Ｐ［ｉ，ｊ＋１］、Ｐ［ｉ＋１，ｊ］等）へ分配して拡散する。具体的には、拡散誤差記憶手段４０が記憶している各画素毎の拡散誤差積算値total  err（ｎ，ｍ）に、注目画素Ｐ［ｉ，ｊ］からの拡散誤差分を加算していく。いま、図３（ａ）のような誤差拡散重みマトリクスを用いるとする。図３の＊が注目画素を示す。重みの合計値は１６なので、注目画素での二値化誤差に、分配対象の画素位置に応じた重み値を乗じた後、１６で割った値を、以下のようにtotal  err（ｍ，ｎ）に加算する。
【００８１】
total  err(i  ,j+1)=total  err(i  ,j+1)+err(i,j)*3/16
total  err(i  ,j+2)=total  err(i  ,j+2)+err(i,j)  /16
total  err(i+1,j-2)=total  err(i+1,j-2)+err(i,j)  /16
total  err(i+1,j-1)=total  err(i+1,j-1)+err(i,j)*2/16
total  err(i+1,j  )=total  err(i+1,j  )+err(i,j)*3/16
total  err(i+1,j+1)=total  err(i+1,j+1)+err(i,j)*2/16
total  err(i+1,j+2)=total  err(i+1,j+2)+err(i,j)  /16
total  err(i+2,j-1)=total  err(i+2,j-1)+err(i,j)  /16
total  err(i+2,j  )=total  err(i+2,j  )+err(i,j)  /16
total  err(i+2,j+1)=total  err(i+2,j+1)+err(i,j)  /16         …（４）
以上の工程により注目画素Ｐ［ｉ，ｊ］の二値化に伴う誤差拡散は終わる。
【００８２】
以上の工程を、二値化手段３６から二値化結果が出力される毎に繰り返して行う。なお、誤差拡散法の重みマトリクスの例としてはこれ以外にも、必要に応じ、例えば図３（ｂ）、図３（ｃ）など各種のものを採用することができる。
【００８３】
そして、データ補正手段３８は、注目画素Ｐ［ｉ，ｊ］の多階調画像データdata（ｉ，ｊ）が入力されると、その注目画素Ｐ［ｉ，ｊ］に対応した拡散誤差積算値total  err（ｉ，ｊ）を拡散誤差記憶手段４２から読み出し、これを次式に基づき注目画素の多階調画像データdata（ｉ，ｊ）に加え、補正画像データdata  c（ｉ，ｊ）を求める。
【００８４】
datac(i,j)=data(i,j)+total  err(i,j)                        …（５）
このような動作を、全画素について繰り返し行うことで、全画面の二値化を行う。
【００８５】
［第１，第２の問題点の解消］
このようにして、実施例の画像処理装置３０は、入力される注目画素の多階調画像データ２００を、誤差拡散法を用い、中間調表示可能な０階調値および２５５階調値のみからなる２階調画像データ２３０に変換出力する。
【００８６】
本実施例の画像処理装置３０の特徴は、低濃度領域や高濃度領域で多量の二値化誤差の蓄積が生じていたのを、最適しきい値設定手段３２を用い解消し、それに起因して発生していた、低濃度領域または高濃度領域の立上り部でのドット生成の遅延や、低濃度領域または高濃度領域が終わった後の尾引き等の問題を解消したことにある。
【００８７】
以下、本実施例の画像処理装置によって、前述した第１の問題点（ドット生成の遅延）および第２の問題点（尾引きの問題）の双方が解決される理由について説明する。
【００８８】
本発明者は、まず、前記第１および第２の問題点の原因の解明を行った。このために、図２に示す画像処理装置３０において、最適しきい値設定手段３２が設定する二値化しきい値を１２８に固定し、しかも画像データ２００として、全画素が一定階調値であるような画像のデータを入力した。そして、前記数式（５）で原画像データに加えられる二値化誤差err（ｉ，ｊ）の平均値がどうなるかを調べてみた。
【００８９】
具体的には、図２に示す実施例の画像処理装置から最適しきい値設定手段３２を取り除き、二値化しきい値を１２８にほぼ固定した。そして、図４に示すよう、原画像サイズが６００画素×４００画素であり、全画素が一定の階調値であるような原画像１６０を、その左上隅を出発点として二値化処理した。そして、ドット形成が安定状態に達したと思われる、右下隅の２００画素×１００画素の領域１７０について、前記数式（５）で原画像データに加えられる二値化誤差err（ｉ，ｊ）の平均値を、平均二値化誤差として求めた。ただし、しきい値は１２８に完全固定ではなく、特定の規則的パターンが生じる事態を回避する目的で、プラスマイナス６の範囲の少量のランダムノイズを加えてある。このノイズは、原画像データが本例のようにコンピュータで作り出した人工的なデータの場合に、パターンが規則的に生じるのを防ぐために付加したものである。
【００９０】
図５には、以上の実験を、異なる階調値の原画像１６０について行った結果を表したものである。この実験結果から明らかなように、原画像１６０は、その階調値が１〜４という低濃度のものや、階調値が２５１〜２５４という高濃度のものでは、その平均二値化誤差が０になるどころか、絶対値で１００にも達するような大きな値となっていることがわかる。平均二値化誤差は、定常状態における誤差の拡散、蓄積量の期待値に相当するものである。誤差拡散法は、二値化誤差の局所的平均値を最小にする手法であると考えられているから、低濃度領域や高濃度領域で平均二値化誤差が０ではなく、このような絶対値の大きな値を取るということは、非常に興味深い発見であった。
【００９１】
この図５に示す実験データから、前述した第１および第２の問題点の生じるメカニズムを、次のように解析することができる。
【００９２】
（１）原画像１６０の階調値が、１〜８や、２４７〜２５４というように０または２５５近辺の値をとる場合には、二値化しきい値を１２８のように固定すると、ドットが安定して形成される定常状態に落ち着くまでには、平均二値化誤差の絶対値が８０以上に達するような多量の誤差蓄積がなされる必要がある。特に、階調値が１〜４や２５１〜２５４の値の原画像データ１６０では、ドットが安定して形成される定常状態に落ち着くまでに、１００以上の多量の誤差が蓄積される必要がある。この誤差蓄積量は、多階調画像データ２００の濃度値が二値化濃度値である０および２５５に近付くほど大きくなる。
【００９３】
（２）誤差の蓄積時間
また、画像データの濃度が０付近の値の場合、それを０に二値化してもわずかな二値化誤差しか生じない。そのため、この二値化誤差が拡散・蓄積して８０〜１００前後の値に達するまでには、かなりの蓄積期間が必要となる。また、画像データの濃度が２５５付近の値の場合にも、その二値化誤差が拡散・蓄積して、８０〜１００前後の値に達するまでには、同様にかなりの蓄積期間が必要となる。しかも、蓄積速度も、画像データの濃度値が二値化濃度値である０および２５５に近付くほど遅くなる。
【００９４】
（３）第１の問題点
誤差が蓄積されて、定常状態での蓄積量に達するまでの蓄積期間中は、ドットは形成されない。このため、ドット形成のために多量の誤差蓄積量が必要とされ、しかも、必要とされる誤差蓄積量に達するまでにかなりの蓄積期間が必要になると、ドット生成の遅延が発生することになる。これが、第１の問題の原因となる。
【００９５】
（４）第２の問題点
ドット形成のために多量の誤差蓄積量が必要になると、多量に蓄積された誤差が、領域外部にまで拡散されて周辺の画像データを歪ませる。これが、第２の問題の原因となり、前述した尾引きの問題が生じる。
【００９６】
以上、（１）〜（４）で述べたように、画像データが二値化濃度値である０および２５５付近の値をとる場合に、平均二値化誤差が非常に大きな絶対値を取り、「誤差の蓄積」現象が生じる。この「誤差の蓄積」現象が、前記第１および第２の問題点の発生原因である。
【００９７】
本実施例の画像処理装置において、最適しきい値設定手段３２は、この「誤差の蓄積」という根本原因を解消し、前記第１および第２の問題点を本質的に解決するものである。すなわち、原画像データ２００が低濃度の時には、二値化しきい値を小さく、高濃度の時にはしきい値を大きくするようにして、原画像データ２００の濃度に応じて二値化しきい値を最適化することで、「誤差の蓄積」自体を解消しつつ、「誤差の蓄積」なしでドット生成を行うことを可能とするものである。
【００９８】
ここで、「低濃度領域でのしきい値を勝手に小さくしたりすると、２５５（黒ドット）に二値化される画素が増えて、濃度が大幅に上昇してしまうのではないか？」というような疑問が生じるかもしれない。確かに誤差拡散を行わない一般のディザ法においてはしきい値の変動は即濃度の変化に繋がる。しかし、本発明者が確認したところでは、誤差拡散法ではしきい値を変えてもトータルでの出力濃度はほとんど変動しなかった。すなわち、しきい値を１２８に固定して二値化した場合と、６４や１９２に固定して二値化した場合とで、出力濃度はほとんど変わらないのである。これは、誤差拡散法では二値化誤差を捨て去ることなく、周辺の未二値化画素に拡散させるためである。例えば、しきい値を小さくしたために従来ならば０に二値化されていた画素が２５５に二値化される事態が生じても、その画素にはより絶対値の大きな負の二値化誤差が生じる。それが周辺の未二値化画素に拡散され、周辺画素階調レベルを下げる方向に働いて帳尻を合わせる。
【００９９】
図６には、本実施例による「誤差の蓄積」の解消効果が示されている。すなわち、図６は、本実施例の最適しきい値設定手段３２を用いた場合に、図５と同様にして調べた平均二値化誤差がどのようになるかを明らかにしたもので、図５に示したしきい値が１２８固定の場合に加えて、本実施例の数式（１）におけるＫの値を、２，４，８，∞とした場合の結果がプロットしてある。Ｋ＝∞の場合、slsh＝dataとなる。ただし図６の場合も、図５の場合同様、数式（１）で決まったしきい値に、最大でプラスマイナス６の少量のランダムノイズを加えている。
【０１００】
図６より、Ｋ＝２、すなわち、slsh＝（data＋１２８）／２とすれば、平均二値化誤差が最大でも５０以下と半分以下に減少し、誤差の蓄積量を大きく減少させる効果があるのがわかる。さらに、Ｋ＝４とすると、全体的に平均二値化誤差が０に近付き、Ｋ＝８とすると、画像データの濃度が１，２や２５３，２５４といった０や２５５に極めて近い階調値の場合でも、平均二値化誤差はほぼ０になる。
【０１０１】
図１に示す画像処理装置３０から出力される２階調画像データ２３に基づき、実際にプリンタを用いて印画を行い、前述した第２の問題点の「尾引き」の影響を評価する実験を行った。この評価実験の結果、平均二値化誤差の絶対値を５０以下に押さえることにより、第２の問題点の「尾引き」の影響を大幅に軽減できることが確認された。このことから、前記数式（１）のＫの値をＫ＝２〜∞の範囲に設定することにより、すなわち、しきい値slshを画像データdataの階調値に応じて、
data＜１２８のときには  data≦slsh≦（１２８＋data）／２
data＞１２８のときには  （１２８＋data）／２≦slsh≦data      …（６）
の範囲になるよう設定することにより、平均二値化誤差の絶対値を５０以下に納めることができ、第２の問題点を解決することができる。
【０１０２】
次に、前記第１の問題点の「ドット生成遅れ」の影響を評価する実験も行った。この実験の結果、ドット生成遅れも、平均二値化誤差が減るに従って改善されることが確認された。前記数式（１）のＫを大きくしすぎると、平均二値化誤差が０を越えて、その符号が逆転してしまう「過補正状態」が生じる。しかし、実際の印字結果の主観評価では、やや過補正状態にまでドット生成速度を早めたほうが、印字強調的な効果が生じて好ましい画質になった。data値が、１，２や２５３，２５４といったドット生成の遅れの最も大きいデータ領域の再現性を重視した主観評価結果では、Ｋ＝８〜２４程度の範囲が非常に良好で、Ｋ＝１６は最適であった。
【０１０３】
図７には、平均二値化誤差が常に０になる二値化しきい値が示されている。この二値化しきい値は、図６を基にして補間演算による推定値として求めた。
【０１０４】
実施例の画像処理装置の最適しきい値設定手段３２を、図７に基づいて原画像データから二値化しきい値を決定するように形成すれば、前記第２の問題点の「尾引き」の期待値が０になる最良の最適しきい値設定手段が実現できる。なお、図７には、同時に、数式（１）のＫの値が２，８，∞の場合の特性図が描かれている。これらの特性曲線から、Ｋの値をＫ＝８前後に設定した場合に、平均二値化誤差を０にするための好適な近似値が得られることがわかる。また、先に述べたように、第１の問題点のドット生成の遅延の改善の点から、平均二値化誤差が０を越えて符号が逆転した「過補正状態」気味のほうがよい主観評価が得られる場合があり、主観評価では、Ｋ＝１６程度の近似式を用いた場合に最良の結果が得られた。Ｋ＝∞までいくと、データ変化部のエッジがかなり強調される結果となるが、これも画像の使用目的によっては十分に有用なものとなる。
【０１０５】
また、図７では、原画像データ２００が０または２５５の場合の最適しきい値を１２８としたが、データ階調値と二値化結果値が等しい場合のしきい値は、どのように設定しても大差なくなる。したがって、本実施例の最適しきい値設定手段３２でも、データ値が０または２５５の場合には、しきい値をどのように設定してもよい。
【０１０６】
このように、本実施例によれば、多階調画像データ２００を誤差拡散法を用いて、中間調表示可能な２階調画像データ２３０に変換出力するとともに、その二値化処理に使用する二値化しきい値を、多階調画像データ２００の階調値に基づき、前記数式（６）の範囲に設定することにより、前記第１および第２の問題点を、画質劣化に繋がる副作用なしに根本的に解決することができた。
【０１０７】
しかも、本実施例によれば、数式（１）の定数Ｋの設定の仕方により、所望の特性をもった二値化出力画像を得ることができる。
【０１０８】
なお、図６，図７に示した補正データは、図３（ａ）に示した誤差拡散重みマトリクスを用いて誤差拡散した場合の例である。異なる重みマトリクスを用いた場合は、定量的には多少異なった結果が得られるが、定性的な傾向はほとんど変わりがない。このように、本発明は、異なる誤差拡散重みマトリクスを用いた場合にも、有効である。
【０１０９】
［本実施例と従来例との比較］
本実施例と同様に、原画像データ２００の階調値に応じて、二値化しきい値を変化させるものとしては、特開平４−１５４３７０号公報の「画像処理装置及び画像処理方法」があった。しかし、この手法は、文字・線画部でのノイズの抑制に主目的をおいて、「原画濃度データが大きいほど、小さい二値化しきい値が対応させられる」ように、本実施例とは正反対の方向にしきい値を変化させるものであり、第１，第２の問題点の改善効果はほとんどなかった。なお、二値化手法に平均誤差最小法を用いた例については、特開平４−１５４３７０号公報を参照すればよい。
【０１１０】
図１２は、図２に示す本実施例の画像処理装置３０を用いて、図３に示す原画像１００をした場合の出力例を示す図である。図１４で問題となった、ドット生成の遅延や、低濃度領域１２０からの尾引きによる直線１３０の中央部の消失等の問題点が、完璧に解消しているのがわかる。
【０１１１】
このように、本実施例によれば、第１，第２の問題点を理想的に解決できることが確認された。さらに、本実施例によれば、有害な副作用を伴うことなく、第１，第２の問題点を解決できることも確認できた。
【０１１２】
［最適しきい値設定手段の他の実施例］
前記実施例において、最適しきい値設定手段３２は、数式（１）に基づき二値化しきい値の設定を行っている。本発明はこれに限らず、必要に応じて他の手法を用い二値化しきい値の設定を行うようにしてもよい。
【０１１３】
図８には、最適しきい値設定手段３２の他の実施例が示されている。
【０１１４】
本実施例の最適しきい値設定手段３２は、注目画素の多階調画像データ２００として入力されるデータdata［ｉ，ｊ］に基づき、次式に示すようにしてしきい値を設定するように形成されている。
【０１１５】
0≦data(i,j)＜128-L1ならばslsh(i,j)=data(i,j)+L1
128-L1≦data(i,j)≦128+L2ならばslsh(i,j)=128
128+L2＜data(i,j)≦255ならばslsh(i,j)=data(i,j)-L2        …（７）
ここにおいて、Ｌ１，Ｌ２は０〜６４の適当な値でよいが、８〜１６の範囲とすると最適となる。なお、Ｌ１，Ｌ２は同じ値に設定してもよい。本実施例の場合は、data値が１２８前後の場合には、数式（６）で示した
data＜128の時にはdata≦slsh≦(128+data)/2
data＞128の時には(128+data)/2≦slsh≦data
という範囲からはずれることになるが、本発明が解決しようとしている第１，第２の問題点が特に顕著になるのは、dataが０または２５５近辺の値（０および２５５は含まない）の場合である。したがって、全データ領域で数式（６）が満たされる必要はなく、dataが０または２５５近辺の値の場合に数式（６）が満たされればよい。
【０１１６】
したがって、二値化しきい値を、前記数式（７）に示すように設定することによっても、前記第１および第２の問題点を解決し、前記第１実施例と同様に良好な二値化画像を得ることができる。
【０１１７】
図８には、最適しきい値設定手段３２のさらに別の実施例が示されている。
【０１１８】
実施例の最適しきい値設定手段３２では、原画像データ２００の階調値に応じ、二値化しきい値を連続的ではなく、段階的に設定する。このようにしても、前記実施例と同様に第１および第２の問題点を解決し、良好な二値化画像を得ることができる。
【０１１９】
また、図１０には、最適しきい値設定手段３２のさらに別の実施例が示されている。実施例の最適しきい値設定手段３２は、低濃度領域のみに、本発明の特徴とするしきい値最適化動作が働くように形成されている。すなわち、画像データ２００のしきい値が高濃度領域側にある場合には、二値化しきい値は１２８に固定され、画像データ２００が低濃度領域側の０近辺の値にあった時に、最適しきい値を前記数式（６）を満足するように設定するよう形成されている。
【０１２０】
例えば、ドットの滲み量の大きいプリンタ装置では、高濃度部の孤立した白ドットがほとんど潰れてしまうため、高濃度部では、第１の問題点がもともと顕著に現われない。そのため、第１の問題点が目立ちやすい低濃度部のみを、本発明により改善しようとするものである。
【０１２１】
なお、画像出力装置の特性に応じ、これとは逆に高濃度部領域のみに本発明のしきい値最適化動作が働くように形成してもよい。
【０１２２】
このように、本発明の最適しきい値設定手段３２は、その画像出力装置に応じて、必要な原画像濃度領域にのみ、最適しきい値設定するように形成してもよい。
【０１２３】
［しきい値設定手段の具体例］
前述した各実施例における最適しきい値設定手段３２は、原画像データから二値化しきい値を設定するために、前記した数式（１）のような演算をその都度行うように形成してもよく、また原画像データの階調値と二値化しきい値との対応関係をあらかじめ変換テーブル内に記憶しておき、それを参照するように形成してもよい。
【０１２４】
図１１には、最適しきい値設定手段３２を、ＲＯＭを用いて構成した具体例が示されている。ＲＯＭのアドレスバスＡ０〜Ａ７に８ビット原画像データを入力すると、それに対応した８ビットの二値化しきい値がデータバスＤ０〜Ｄ７に出力されるよう形成されている。
【０１２５】
また、各実施例の中には、最適しきい値設定手段３２によって設定された二値化しきい値に、さらに少量のランダムノイズを加えている例があった。これは、原画像データが、コンピュータ等で描いた非常に整然としたデータの場合に、誤差拡散法での二値化により特定の規則的パターンが生じてしまうことがあるのを防ぐために行うものである。したがって、原画像データが、階調値の適当なばらつきをもった自然画の場合には、このようなランダムノイズを加える処理は不必要になる。
【０１２６】
また、ランダムノイズを付加した結果、しきい値が数式（６）で示した範囲からはずれてしまうことがありうるが、しきい値の期待値が数式（６）の範囲に入っていればよいものとする。
【０１２７】
また、しきい値ではなく、原画像データ側にノイズを付加しても、同様の効果が得られる。
【０１２８】
［他の実施例］
なお、本発明は前記各実施例に限定されるものではなく、本発明の要旨の範囲内で各種の変形実施が可能である。
【０１２９】
例えば、前記実施例では、原画像データが０で白、２５５で黒となるような濃度データである場合を例にとり説明したが、原画像データが０で黒、２５５で白となるような、明度データである場合も、本発明を同様に適用できることはいうまでもない。
【０１３０】
また、原画像データがＡ〜Ｂ（Ａ＞Ｂ）の範囲の値をとる場合に、この原画像データをａまたはｂ（ａ＞ｂ）に二値化する場合には、第１の実施例の数式（１）を、
slsh(i,j)=(data(i,j)*(K-1)+(a+b)/2)/K                     …（１）'
に変換し、数式（２）を
dataC(i,j)≧slsh(i,j)ならば、result(i,j)=a
dataC(i,j)＜slsh(i,j)ならば、result(i,j)=b             …（２）'
のように変更すればよい。一般にはＡ＝ａ、Ｂ＝ｂであるが、出力装置の出力可能濃度が原画像データの範囲と大きく異なっている場合には、Ａとａ、Ｂとｂが一致しない例もある。
【０１３１】
この場合、数式（６）のしきい値設定のための条件式は、ｍ＝（ａ＋ｂ）／２として、
data＜ｍの時にはdata≦slsh≦(m+data)/2
data＞ｍの時には(m+data)/2≦slsh≦data                      …（８）
のようになる。
【０１３２】
また、前記実施例では、多階調画像データ２００を、誤差拡散法を用いて補正する場合を例にとり説明したが、本発明はこれに限らず、平均誤差最小法を用いて補正する場合にも適用できる。
【０１３３】
図１８には、平均誤差最小法を用いた画像処理装置３０の好適な実施例が示されている。なお、図２に示す前記実施例と対応する部材には同一の符号を付しその説明は省略する。
【０１３４】
本実施例において、誤差補正手段３４は、データ補正手段３８と、誤差計算手段４４と、誤差記憶手段４６とを含んで構成される。
【０１３５】
前記誤差計算手段４４は、前記数式（３）に基づき、注目画素の二値化誤差errを演算し、誤差記憶手段４６の注目画素に対応したアドレスにその値を書き込むよう形成されている。この結果、誤差記憶手段４６の各画素アドレスに対応した記憶エリアには、二値化済みの画素の二値化誤差が順次書き込み記憶されていく。
【０１３６】
データ補正手段３８は、注目画素Ｐ［ｉ，ｊ］の多階調画像データdata（ｉ，ｊ）が入力されると、その注目画素Ｐ［ｉ，ｊ］近傍の二値化済みの画素の誤差を誤差記憶手段４６から読み出す。そして、読み出した誤差データに所定の重みを付けをして平均誤差を求め、この平均誤差を注目画素の多階調画像データdata（ｉ，ｊ）に加え、これを補正画像データdata c（ｉ，ｊ）として二値化手段３６へ向け出力する。
【０１３７】
なお、これ以外の構成は、前記第１実施例と同様であるので、ここではその説明は省略する。
【０１３８】
このような平均誤差最小法を用いた場合でも、前記第１実施例と同様な効果を奏することができる。
【図面の簡単な説明】
【図１】本発明が適用された画像処理システムの概略説明図である。
【図２】図１に示す画像処理システムに用いられる画像処理装置の機能ブロック図である。
【図３】本実施例で用いられる拡散重みマトリクスの具体例の説明図である。
【図４】平均二値化誤差を求めるために使用した原画像データと、平均二値化誤差を求める領域との関係を示す説明図である。
【図５】原画像データの階調値と、平均二値化誤差の関係を示す説明図である。
【図６】本発明の第１実施例で、平均二値化誤差がどのように発生するかを示す説明図である。
【図７】平均二値化誤差が常に０になる二値化しきい値の説明図である。
【図８】本発明に用いられるしきい値設定手段の他の実施例の説明図である。
【図９】本発明に用いられるしきい値設定手段の他の実施例の説明図である。
【図１０】本発明に用いられるしきい値設定手段の他の実施例の説明図である。
【図１１】本発明に用いられるしきい値設定手段をハードウェアにて構成した例の説明図である。
【図１２】本発明の画像処理装置を用いて得られる二値化結果の説明図である。
【図１３】図１２，図１４に示す二値化画像を得るために用いた原画像の説明図である。
【図１４】従来の誤差拡散法により得られた、二値化結果の説明図である。
【図１５】本発明の画像処理装置を組み込んだ画像処理システムの全体概略説明図である。
【図１６】図１５のシステムの他の実施例の説明図である。
【図１７】図１５のシステムの他の実施例の説明図である。
【図１８】多階調画像データの補正に平均誤差最小法を用いる画像処理装置の実施例のブロック図である。
【符号の説明】
３０  画像処理装置
３２  しきい値設定手段
３４  誤差補正手段
３６  二値化手段
３８  データ補正手段
４０  誤差拡散手段
４２  拡散誤差記憶手段
２００  多階調画像データ
【図１】
0003646694.tif 000002
【図２】
0003646694.tif 000003
【図３】
0003646694.tif 000004
【図４】
0003646694.tif 000005
【図５】
0003646694.tif 000006
【図６】
0003646694.tif 000007
【図７】
0003646694.tif 000008
【図８】
0003646694.tif 000009
【図９】
0003646694.tif 000010
【図１０】
0003646694.tif 000011
【図１１】
0003646694.tif 000012
【図１２】
0003646694.tif 000013
【図１３】
0003646694.tif 000014
【図１４】
0003646694.tif 000015
【図１５】
0003646694.tif 000016
【図１６】
0003646694.tif 000017
【図１７】
0003646694.tif 000018
【図１８】
0003646694.tif 000019