(57)【特許請求の範囲】
【請求項１】
入力多値画像データの複数ライン分の各画素について周辺画素から分配された拡散誤差を保持する誤差メモリと、
入力多値画像データ中で２値化を行う注目画素ごとに、誤差メモリから対応する拡散誤差を読み出し、該注目画素の画素値に加算する誤差加算部と、
解像度を増加させる際、入力多値画像データ中の注目画素ごとに解像度の増大率に応じた所定の複数画素を生成するために使用する作業メモリと、
誤差加算部で拡散誤差を加算された結果の注目画素の画素値に基づいて、上記作業メモリ上に上記所定の複数画素を生成し、該生成した複数画素について順次白黒判定を行い、判定結果を２値化データとして出力するとともに、その際生じた２値化誤差を所定の配分方向と配分比にしたがって、上記作業メモリ上で該生成した複数画素間および該複数画素から外方に分配する白黒判定部と、
白黒判定部による上記複数画素の白黒判定で生じた２値化誤差の上記外方への分配部分を、誤差メモリにおいて上記注目画素に隣接する所定の画素間に分配する誤差演算部とを備え、
入力多値画像データの２値化と同時に解像度変換を行うことを特徴とする２値化処理回路。
【請求項２】
請求項１において、入力多値画像データの注目画素とその周囲の画素について、主走査方向と副走査方向における画素値の変化の方向を検出する変化方向検出部を設け、前記白黒判定部は、該変化方向検出部が検出した画素値の変化の方向および作業メモリの所定の複数画素について判定した結果の白の総数あるいは黒の総数との組み合わせにより、作業メモリの所定の複数画素の白黒配置パターンを決定することを特徴とする２値化処理回路。
【請求項３】
請求項１において、注目画素が変わるごとに乱数を発生する乱数発生部を設け、前記白黒判定部は、該乱数発生部が発生した乱数に基づき、作業メモリの所定の複数画素について判定した結果の白と黒の画素の配置パターンを決定することを特徴とする２値化処理回路。
【請求項４】
請求項１において、前記白黒判定部は、異なるレベルの複数の閾値を有しており、誤差メモリの拡散誤差を加算した結果の注目画素の画素値が上記複数の閾値の間のどの位置にあるかを検出し、該検出した位置に応じて白と黒の画素の配置パターンを決定することを特徴とする２値化処理回路。
【請求項５】
入力多値画像データの複数ライン分の各画素について周辺画素から分配された拡散誤差を誤差メモリに保持し、
入力多値画像データ中で２値化を行う注目画素ごとに、誤差メモリから対応する拡散誤差を読み出し、該注目画素の画素値に加算し、
解像度を増加させる際、入力多値画像データ中の注目画素ごとに解像度の増大率に応じた所定の複数画素を生成するために作業メモリを使用し、
上記拡散誤差を加算された結果の注目画素の画素値に基づいて、上記作業メモリ上に上記所定の複数画素を生成し、該生成した複数画素について順次白黒判定を行い、判定結果を２値化データとして出力するとともに、その際生じた２値化誤差を所定の配分方向と配分比にしたがって、上記作業メモリ上で該生成した複数画素間および該複数画素から外方に分配し、
上記複数画素の白黒判定で生じた２値化誤差の上記外方への分配部分を、誤差メモリにおいて上記注目画素に隣接する所定の画素間に分配し、
入力多値画像データの２値化と同時に解像度変換を行うことを特徴とする２値化処理方法。
【請求項６】
請求項５において、入力多値画像データの注目画素とその周囲の画素について、主走査方向と副走査方向における画素値の変化の方向を検出し、検出された画素値の変化の方向および作業メモリの所定の複数画素について判定した結果の白の総数あるいは黒の総数との組み合わせにより、作業メモリの所定の複数画素の白黒配置パターンを決定することを特徴とする２値化処理方法。
【請求項７】
請求項５において、注目画素が変わるごとに乱数を発生し、発生した乱数に基づき、作業メモリの所定の複数画素について判定した結果の白と黒の画素の配置パターンを決定することを特徴とする２値化処理方法。
【請求項８】
請求項５において、異なるレベルの複数の閾値を有しており、誤差メモリの拡散誤差を加算した結果の注目画素の画素値が上記複数の閾値の間のどの位置にあるかを検出し、該検出した位置に応じて白と黒の画素の配置パターンを決定することを特徴とする２値化処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、スキャナ装置やＦＡＸ装置、プリンタなどの画像の読取り、印刷を行う装置、あるいは画像の加工を行う画像処理システムにおける、多値画像データの２値化処理回路および２値化処理方法に関し、特に２値化の際に解像度変換が可能な２値化処理回路および２値化処理方法に関する。
【０００２】
【従来の技術】
従来、入力画像データの解像度を高めるには、スキャナなどでの画像読取り時に画像の光学的倍率を大きくするか、高解像度ＣＣＤの採用あるいはラインＣＣＤの場合はライン走査密度を増加させることにより物理的に画素密度を上げる方法と、読取り結果の画像データを対象に、ハードウエアあるいはソフトウエアにより画素の補間を行う方法とがある。
【０００３】
しかし、光学的倍率を大きくするには光学的な変倍機構が必要であり、また高解像度ＣＣＤを採用する場合には、ＣＣＤ自体が高価になることと高いクロック周波数を使用することによる周辺回路のコスト増が生じ、ラインＣＣＤについてライン走査密度を増加させる場合には、副走査（縦送り）速度が遅くなり、処理時間が長くなっていた。
【０００４】
一方、画素の補間を行う方法では、精度の低下を防ぐために多値の入力画像データの段階で解像度変換を行う必要があり、これをハードウエアで実現する場合には多値解像度変換器を設けなければならず、また２値化処理で誤差拡散を行うために用いられる誤差メモリの容量は、解像度を増加させた分だけ大きくなければならなかった。
【０００５】
図８の（ａ）に、従来の多値解像度変換を行うスキャナ装置の１例の基本回路構成を示す。ＣＣＤ１から出力される画像信号は、Ａ／Ｄ変換器２で多値画像データに変換され、シェーディング補正回路３でシェーディング補正されて、多値解像度変換器４に入力される。ここで入力された多値画像データは、所定の解像度に対応する画素の補間処理をされて、誤差拡散２値化回路５に入力される。
【０００６】
誤差拡散２値化回路５では、最大解像度のライン画素数の２ライン分に相当するメモリ容量をもつ誤差メモリ６に、先行して２値化された所定の画素の２値化誤差（いわゆる量子化誤差）を拡散させた誤差データがライン上の各画素対応で蓄積されており、誤差加算部７は、多値解像度変換器４からラインごとに画素単位で入力される多値画像データの順次の画素データに対して誤差メモリ６から対応する画素位置の誤差データを読み出し、両者を加算して、加算結果の画素値を白黒判定部８へ送る。白黒判定部８では、入力された画素値を所定の閾値と比較することにより白、黒を判定し、判定結果を２値画像データとして出力するとともに、その際生じた２値化誤差を誤差演算部９へ送る。
【０００７】
誤差演算部９では、入力された２値化誤差について、誤差拡散先の画素ごとに定められている配分比にしたがって拡散誤差を演算し、誤差メモリ６に蓄積されている対応画素の誤差に累算して誤差を更新する。
【０００８】
図８の（ｂ）は誤差拡散における誤差の配分方法の１例を示したものである。図示された３×３の画素マトリックスにおいて、中心画素が２値化対象画素を表している。ここで２値化誤差が生じると、その２値化誤差の１／２の値が右隣の画素に配分され、また１／８，１／４，１／８の各値がそれぞれ左下、真下、右下の各画素に配分される。多値画像データの２値化処理は、画像領域の左上隅の画素から始まり、ライン単位に順次下方へ進んで右下隅の画素で終了するから、２値化誤差の拡散先は、２値化処理をする中心画素に隣接する８画素のうち、まだ２値化が済んでいない右隣と、左下、真下、右下の４画素のみとされる。
【０００９】
【発明が解決しようとする課題】
誤差拡散法により多値画像データの２値化処理を行っている従来のスキャナ装置やプリンタ装置では、高解像度化を図ろうとした場合、結果的にハード量とコストの増加、あるいは処理時間の著しい増加を招くことになりがちであった。
【００１０】
本発明は、既存の低解像度でのハード量やコスト、処理時間を大幅に増加させることなしに高解像度化を可能にする２値化処理回路および２値化処理方法を提供することを目的としている。
【００１１】
【課題を解決するための手段】
本発明は、解像度増加によって新たに生成する画素の２値化および２値化誤差の拡散は小容量の作業メモリ上で注目画素ごとの一時的な処理として実行することにより、既存の解像度で用いられていた誤差メモリの容量を増加させる必要をなくすものである。また新たに生成する画素についての２値化処理では、簡易なアルゴリズムを用いて画像品質のよい白黒の配置パターンが決定されるようにした。
【００１２】
本発明による２値化処理回路および２値化処理方法は、次のように実現される。
（１）入力多値画像データの複数ライン分の各画素について周辺画素から分配された拡散誤差を保持する誤差メモリと、
入力多値画像データ中で２値化を行う注目画素ごとに、誤差メモリから対応する拡散誤差を読み出し、該注目画素の画素値に加算する誤差加算部と、
解像度を増加させる際、入力多値画像データ中の注目画素ごとに解像度の増大率に応じた所定の複数画素を生成するために使用する作業メモリと、
誤差加算部で拡散誤差を加算された結果の注目画素の画素値に基づいて、上記作業メモリ上に上記所定の複数画素を生成し、該生成した複数画素について順次白黒判定を行い、判定結果を２値化データとして出力するとともに、その際生じた２値化誤差を所定の配分方向と配分比にしたがって、上記作業メモリ上で該生成した複数画素間および該複数画素から外方に分配する白黒判定部と、
白黒判定部による上記複数画素の白黒判定で生じた２値化誤差の上記外方への分配部分を、誤差メモリにおいて上記注目画素に隣接する所定の画素間に分配する誤差演算部とを備え、
入力多値画像データの２値化と同時に解像度変換を行うことを特徴とする２値化処理回路の構成。
（２）前項１において、入力多値画像データの注目画素とその周囲の画素について、主走査方向と副走査方向における画素値の変化の方向を検出する変化方向検出部を設け、前記白黒判定部は、該変化方向検出部が検出した画素値の変化の方向および作業メモリの所定の複数画素について判定した結果の白の総数あるいは黒の総数との組み合わせにより、作業メモリの所定の複数画素の白黒配置パターンを決定するようにした２値化処理回路の構成。
（３）前項１において、注目画素が変わるごとに乱数を発生する乱数発生部を設け、前記白黒判定部は、該乱数発生部が発生した乱数に基づき、作業メモリの所定の複数画素について判定した結果の白と黒の画素の配置パターンを決定するようにした２値化処理回路の構成。
（４）前項１において、前記白黒判定部は、異なるレベルの複数の閾値を有しており、誤差メモリの拡散誤差を加算した結果の注目画素の画素値が上記複数の閾値の間のどの位置にあるかを検出し、該検出した位置に応じて白と黒の画素の配置パターンを決定するようにした２値化処理回路の構成。
（５）入力多値画像データの複数ライン分の各画素について周辺画素から分配された拡散誤差を誤差メモリに保持し、
入力多値画像データ中で２値化を行う注目画素ごとに、誤差メモリから対応する拡散誤差を読み出し、該注目画素の画素値に加算し、
解像度を増加させる際、入力多値画像データ中の注目画素ごとに解像度の増大率に応じた所定の複数画素を生成するために作業メモリを使用し、
上記拡散誤差を加算された結果の注目画素の画素値に基づいて、上記作業メモリ上に上記所定の複数画素を生成し、該生成した複数画素について順次白黒判定を行い、判定結果を２値化データとして出力するとともに、その際生じた２値化誤差を所定の配分方向と配分比にしたがって、上記作業メモリ上で該生成した複数画素間および該複数画素から外方に分配し、
上記複数画素の白黒判定で生じた２値化誤差の上記外方への分配部分を、誤差メモリにおいて上記注目画素に隣接する所定の画素間に分配し、
入力多値画像データの２値化と同時に解像度変換を行うことを特徴とする２値化処理方法の構成。
（６）前項５において、入力多値画像データの注目画素とその周囲の画素について、主走査方向と副走査方向における画素値の変化の方向を検出し、検出された画素値の変化の方向および作業メモリの所定の複数画素について判定した結果の白の総数あるいは黒の総数との組み合わせにより、作業メモリの所定の複数画素の白黒配置パターンを決定するようにした２値化処理方法の構成。
（７）前項５において、注目画素が変わるごとに乱数を発生し、発生した乱数に基づき、作業メモリの所定の複数画素について判定した結果の白と黒の画素の配置パターンを決定するようにした２値化処理方法の構成。
（８）前項５において、異なるレベルの複数の閾値を有しており、誤差メモリの拡散誤差を加算した結果の注目画素の画素値が上記複数の閾値の間のどの位置にあるかを検出し、該検出した位置に応じて白と黒の画素の配置パターンを決定するようにした２値化処理方法の構成。
【００１３】
図１に、本発明による２値化処理回路の基本構成を示す。
【００１４】
図１において、２値化処理回路１５は、誤差拡散により入力多値画像データを２値化処理するが、その際、１つの注目画素から複数画素を生成することにより、解像度を複数倍に高める処理を同時に行う。図示の例では、作業メモリ２０に示されているように、１注目画素に基づいて４画素を生成、つまり解像度を２倍（２×２）にする。しかし誤差メモリ１６のサイズは、基準となる入力多値画像データの低い解像度に対応するもののままでよい。
【００１５】
誤差メモリ１６には、ライン０、ライン１で例示されているように、前ラインからの繰越し誤差を読み取るためのラインバッファ（ライン０）と、２値化後に発生した誤差を次ラインへ繰越すためのラインバッファ（ライン１）の２本のラインバッファが設けられている。しかし遅延用の小容量のメモリあるいはレジスタを併用すれば、１本のラインバッファだけでも処理を行なうことができる。
【００１６】
入力多値画像データはラインごとに画素直列で誤差加算部１７の入力１７ａに与えられる。また誤差加算部１７の入力１７ｂには誤差メモリ１６から同様にラインごとに画素直列で読み出された拡散誤差が与えられ、さらに入力１７ｃには直前に２値化された画素の誤差が与えられる。これらの３つの入力は、誤差加算部１７で加算され、加算結果は白黒判定部１８へ送られる。
【００１７】
白黒判定部１８は、誤差加算部１７から注目画素の加算結果が入力されるごとに、その値を演算回路１８ａに入力し、注目画素について生成する４画素（００），（０１），（１０），（１１）の２値化処理を実行する。
【００１８】
まず画素（００）の２値化処理では画素値と閾値が比較され、白黒が判定される。判定結果の白か黒かは２値化データとして出力され、また２値化誤差が生じていれば拡散誤差として画素（０１）と画素（１０）に分配される。次に画素（０１）の２値化処理が行われる。画素（０１）の画素値は、最初に白黒判定部１８が入力した値に画素（００）から分配された拡散誤差を加算したものであり、この加算結果の画素値と閾値とが比較され、２値化が行われる。またここで２値化誤差が生じていれば誤差拡散が行われる。このようにして画素（１０），（１１）においても同様に２値化と誤差拡散とが行われる。なお画素（０１）と（１０）からは現在の注目画素の右、左下、真下、右下に隣接する所定の画素への分配が行われる。これらの誤差は、作業メモリ２０へ送られて、誤差演算部１９により誤差メモリ１６に書き込まれる。
【００１９】
図２の（ａ）は、誤差拡散の１例であり、注目画素について生成された４つの画素（００），（０１），（１０），（１１）の各々における誤差拡散の全体像を実線の矢印で示している。
【００２０】
図２（ａ）の例では、入力側の低解像度３×３画素配列の中心の注目画素から出力側の高解像度対応の４つの画素（００），（０１），（１０），（１１）が生成され、そのうち、（０１），（１０），（１１）の画素から外側の画素に向かって誤差拡散が行われる。実際には低解像度の注目画素を取り巻くいずれの画素からもそれぞれ高解像度対応の４つの画素が生成されるのであるが、誤差拡散処理が複雑になるため、注目画素から生じた高解像度対応の４画素から外側へ向かう誤差拡散は、低解像度対応の画素、つまり図１の誤差メモリ１６上の画素に対して実行されるように処理を縮退させている。
【００２１】
たとえば図２の（ａ）の高解像対応の２つの画素（０１），（１１）からそれぞれ右側に分配される拡散誤差は、誤差メモリ１６上では同じ１つの低解像対応画素Ａに分配されることになる。
【００２２】
図２の（ｂ）は誤差拡張の分配レートの例を示している。
【００２３】
【発明の実施の形態】
図３は、本発明による２値化処理回路の１実施の形態を示す。図３に示されている回路の構成は、図１に示した回路中の白黒判定部１８の機能を変形したものである。図３の回路における白黒判定部１８は、高解像度化のために生成した複数画素の配置を一義的に決定せず、生成画素中の白個数と注目画素周辺の輝度の変化方向に基づいて周辺と調和した白黒配置パターンが決定されるようにしている。
【００２４】
変化方向検出部２１は、入力多値画像データから注目画素とその周辺の画素のデータを取り込み、たとえばグラジェントフィルタを用いて輝度の変化方向を検出する。この場合、変化の大きさは一定値以上のものを検出する。図４の（ａ），（ｂ）は変化方向を検出するために、グラジェントフィルタを用いた時の、フィルタ係数を図式化したもので（ａ）,（ｂ）はそれぞれ副走査方向、主走査方向の変化を検出する。これらはそれぞれの画素データと積和演算されその演算結果がある定められたスライス値と比較され、スライス値より大きい場合にその方向に傾斜していると判定される。
【００２５】
白黒判定部１８は、白個数の検出処理２２により、生成した４つの画素について図４の（ｃ）に示すような誤差拡散を行って白画素の個数を検出する。この段階では、生成した４画素は１列に連続した配置とし、周辺画素から分配される誤差は左端の画素に集中し、４画素間では一方向だけに誤差を拡散させて、右端の画素から周辺の画素へ誤差を拡散させている。
【００２６】
次に白黒判定部１８は、検出された変化方向と白個数に基づいて、白黒配置パターン決定アルゴリズム２３により白黒配置パターンテーブル２４から１つの白黒配置パターンを選択し、生成画素の配置パターンとする。
【００２７】
図５に白黒配置パターンテーブルの構成例を示す。図示されているテーブルは、検出された９通りの変化方向ａ〜ｉと、生成画素数が４個の場合に起こり得る５通りの白の個数０〜４との組み合わせにより、１つの白黒配置パターンが選択されるように構成されている。基本的には、輝度の高い方向（＋）に白画素が、そして輝度の低い方向（−）に黒画素が多く配置されるようにして、生成した各画素が周辺の画素の変化に調和できるような白黒配置パターンが選択されるようにする。
【００２８】
図３の回路では、白黒配置パターンは生成画素中の白個数と変化方向で決定されたが、写真画像などでは規則性（パターン化）による擬似輪郭が発生する可能性がある。そこで変化方向の情報を用いる代わりに乱数を用いることにより、規則性が生じるのを回避することができる。図６にその処理例を示す。
【００２９】
図６において、乱数発生部２５は注目画素が更新されるごとに乱数を発生する。一方、白黒配置パターンテーブル２４には、白個数ごとに異なるパターンが固有のインデックスを付して設定されている。白黒配置パターン決定アルゴリズム２３は、生成画素の白個数あるいは黒個数と、発生された乱数とを用いてインデックスを作成し、白黒配置パターンテーブル２４を参照して、該当するインデックスの白黒配置パターンを取り出す。
【００３０】
また図１および図３の回路では、生成画素の白黒個数は、画素ごとに拡散誤差を加算し、閾値でスライスして白黒判定することにより検出していたが、これらは各画素に対して順次的な処理となるため効率的ではない。図７は、これを一括検出する処理方法を示している。
【００３１】
図７の（ａ）は検出処理の原理を示している。図示の例では、０〜５１２の階調範囲内に、異なる４つのレベルの閾値Ｓ1 ，Ｓ2 ，Ｓ3 ，Ｓ4 （Ｓ1 ＜Ｓ2 ＜Ｓ3 ＜Ｓ4 ）を設ける。入力（注目）画素値に周囲から分配された拡散誤差を加算した結果の画素値をＰとして、Ｐがどの閾値範囲に入るかにより白（Ｗ）と黒（Ｂ）の個数を決定する。たとえば０≦Ｐ＜Ｓ1 であればＷ０，Ｂ４とし、Ｓ3 ≦Ｐ＜Ｓ4 であればＷ３，Ｂ１とする。またＰよりも小さくてＰにもっとも近い閾値Ｓ1 とＰとの差は、２値化誤差として隣接未処理画素へ拡散される。
【００３２】
図７の（ｂ）は、（ａ）に示した処理の実現例のフローである。閾値をＳi （ｉ＝１，２，３，４）で表し、ｉ＝１と初期化して、値の小さい方の閾値から順に選択してＰと比較する。はじめてＰ＜Ｓi となったときのｉの値で白黒個数テーブルを参照し、対応するＷとＢの値を読み出す。
【００３３】
以上、図１ないし図７を用いて説明した本発明による２値化処理回路の各部の機能はプログラムにより実現されることができ、また自明の設計事項の範囲で多くの変形が可能である。
【００３４】
【発明の効果】
本発明によれば、従来の２値化処理回路の一部の構成を変更するだけで、ほとんどハードウエアの追加変更を行うことなしに、低コストで多値画像データの２値化と同時に高解像化を図ることができる。
【図面の簡単な説明】
【図１】  本発明による２値化処理回路の基本構成図である。
【図２】  本発明における誤差拡散の１例の説明図である。
【図３】  本発明による２値化処理回路の１実施の形態の説明図である。
【図４】  変化方向検出と生成画素の誤差拡散例の説明図である。
【図５】  白黒配置パターンテーブルの構成例の説明図である。
【図６】  乱数を用いて白黒配置パターンを決定する処理例の説明図である。
【図７】  生成画素の白黒個数を一括検出する処理例の説明図である。
【図８】  従来のスキャナ装置の基本回路構成図である。
【符号の説明】
１５：２値化処理回路
１６：誤差メモリ
１７：誤差加算部
１８：白黒判定部
１９：誤差演算部
２０：作業メモリ
【図１】
0003742227.tif 000002
【図２】
0003742227.tif 000003
【図３】
0003742227.tif 000004
【図４】
0003742227.tif 000005
【図５】
0003742227.tif 000006
【図６】
0003742227.tif 000007
【図７】
0003742227.tif 000008
【図８】
0003742227.tif 000009