(57)【要約】【課題】入力階調値に応じて拡散係数を選択する誤差拡散法を用いた多値画像の擬似中間調表現処理において、全階調に渡ってドット分散性に優れた出力画像を生成する。【解決手段】ハーフトーン処理部１００にて多階調の入力画像を該入力画像の階調数より少ない階調数を有する画像に変換する際の拡散係数を拡散係数設定部１１０が予め拡散係数ＬＵＴ１０７に記憶し、入力画像の画素値に応じて、拡散係数ＬＵＴ１０７から拡散係数が選択され、選択された拡散係数に基づき、誤差拡散部１０６が着目画素の値を量子化する際に発生した誤差値をその着目画素の近傍の未処理の画素に拡散させる。【選択図】　　　図１
2004007259.tif 000002
【特許請求の範囲】
【請求項１】
多階調の入力画像を該入力画像の階調数より少ない階調数を有する画像に変換する画像処理装置において、
多階調の入力画像を該入力画像の階調数より少ない階調数を有する画像に変換する際のパラメータを記憶するパラメータ記憶手段と、
前記入力画像の特徴に応じて、前記パラメータ記憶手段からパラメータを選択するパラメータ選択手段と、
選択されたパラメータに基づき前記入力画像の着目画素の値を量子化する際に発生する誤差値を前記着目画素の近傍の未処理の画素に拡散させる誤差拡散手段とを有することを特徴とする画像処理装置。
【請求項２】
前記入力画像の特徴は、前記入力画像の画素値であることを特徴とする請求項１記載の画像処置装置。
【請求項３】
前記入力画像の特徴は、前記入力画像の画素値の下位Ｎビット（１≦Ｎ≦Ｂ（入力階調のビット数）を満足する整数）であることを特徴とする請求項２記載の画像処置装置。
【請求項４】
前記パラメータは、前記誤差拡散手段で用いられる拡散係数であることを特徴とする請求項１記載の画像処置装置。
【請求項５】
前記パラメータ記憶手段は、参照階調値に対応した前記拡散係数を記憶することを特徴とする請求項１記載の画像処理装置。
【請求項６】
前記参照階調値は、０から２（Ｂ−Ｎ）（１≦Ｎ≦Ｂ（入力階調のビット数）を満足する整数）の範囲にある階調値であることを特徴とする請求項５記載の画像処理装置。
【請求項７】
前記パラメータ選択手段は、前記拡散係数を選択することを特徴とする請求項１記載の画像処理装置。
【請求項８】
前記拡散係数は、予め出力画像の画質評価値に基づいて設定されていることを特徴とする請求項１記載の画像処理装置。
【請求項９】
前記出力画像の画質評価値は、前記出力画像の周波数領域への変換及び周波数領域における処理により算出されることを特徴とする請求項８記載の画像処理装置。
【請求項１０】
前記拡散係数は、各評価階調値における前記画質評価値に基づいて設定されることを特徴とする請求項８記載の画像処理装置。
【請求項１１】
前記各評価階調値は、０から２（Ｂ−Ｎ）（１≦Ｎ≦Ｂ（入力階調のビット数）を満足する整数）の範囲にある階調値であることを特徴とする請求項１０記載の画像処理装置。
【請求項１２】
多階調の入力画像を該入力画像の階調数より少ない階調数を有する画像に変換する画像処理方法において、
多階調の入力画像を該入力画像の階調数より少ない階調数を有する画像に変換する際のパラメータをパラメータ記憶手段に記憶する工程と、
前記入力画像の特徴に応じて、前記パラメータ記憶手段からパラメータを選択するパラメータ選択工程と、
選択されたパラメータに基づき前記入力画像の着目画素の値を量子化する際に発生する誤差値を前記着目画素の近傍の未処理の画素に拡散させる誤差拡散工程とを有することを特徴とする画像処理方法。
【請求項１３】
コンピュータを、請求項１乃至請求項１１の何れか一項に記載の画像処理装置として機能させるためのプログラム。
【請求項１４】
請求項１３に記載のプログラムが記録されたコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、多階調の入力画像を該入力画像の階調数より少ない階調数を有する画像に変換する画像処理装置及び方法、プログラム並びに記録媒体に関するものである。
【０００２】
【従来の技術】
従来、多値画像データを２値画像に変換する手段としてＲ．Ｆｌｏｙｄらによる誤差拡散法（“Ａｎ　ａｄａｐｔｉｖｅ　ａｌｇｏｒｉｔｈｍ　ｆｏｒ　ｓｐａｔｉａｌ　ｇｒａｙ　ｓｃａｌｅ”，　ＳＩＤ　Ｉｎｔｅｒｎａｔｉｏｎａｌ　Ｓｙｍｐｏｓｉｕｍ　Ｄｉｇｅｓｔ　ｏｆ　Ｔｅｃｈｎｉｃａｌ　Ｐａｐｅｒｓ，　ｖｏｌ４．３，　１９７５，　ｐｐ．３６−３７）が開示されている。この誤差拡散法は、ある画素で生じた量子化誤差をその画素以降の複数画素へ拡散することにより、擬似的に階調表現を行うものである。
【０００３】
更に、この誤差拡散処理を２値だけでなく、３値以上の階調数にも適応させたものとして、多値誤差拡散処理が存在する。２値誤差拡散処理と同様に、階調性と解像性に優れた処理が可能である。また、一般的な誤差拡散法では、量子化誤差を拡散する際の重み付け（拡散係数）を入力データの値に関わらず固定としている。
【０００４】
【発明が解決しようとする課題】
しかしながら、上記従来例における多値誤差拡散法では、出力装置の持つ階調近辺（量子化レベル）の階調値を出力する際に、擬似輪郭が発生するという問題があった。図１８は、従来の多値誤差拡散法による出力画像例を示す図である。図１８からも明らかなように、これら擬似輪郭は画像品位を大きく損ねることが確認できる。この擬似輪郭が発生する原因は、原画信号が量子化レベル近傍の場合にディザパターンが生じないためテクスチャ変化が目立つことによる。特に、量子化誤差を拡散する際の重み付け（拡散係数）を入力データの値に関わらず固定とした場合は、量子化レベル近傍の階調においてドットが均一に分散されず、鎖状に連なったドットが発生し、擬似輪郭を助長する問題点があった。
【０００５】
ここで、上述した多値誤差拡散法によって生成されるドットパターンについて考察する。使用する多値誤差拡散法は、入力画像を量子化した後の量子化レベル数を５とし、４つの閾値と累積誤差加算後の画素データとの比較により出力画素値を決定するものとする。
【０００６】
尚、入力画素値は０〜２５５の範囲の整数値とし、量子化出力値は２５５階調をほぼ均等に分割した０、６４、１２８、１９２、２５５とする。
【０００７】
図１７は、量子化レベルの近傍付近の画素値１或いは６５の一様な入力画像に対するドットパターンを示す図である。図１７において、１７０１は入力画素値１のドットパターン、１７０２は入力画素値６５のドットパターンである。いずれの画像もドットが鎖状に連結するパターンとなり、視覚的に好ましい画像とは言い難い。
【０００８】
尚、出力階調数を５レベルに設定すると、ドットが鎖状に連結する階調は、上記の階調以外にも、１、６５、１２９、１９３付近に出現する。２値に量子化する場合には、階調値１付近にのみ、このようなドットパターンが発生していたことを考慮すると、５値に量子化する場合には、上述の問題画像を生成する階調は４倍に増大されることになる。つまり、多値誤差拡散法では、２値誤差拡散の場合以上に擬似輪郭を発生する階調が多く存在する問題点があった。
【０００９】
また、図１７より、画素値１と画素値６５に対して同一の拡散係数を使用すると、各ドット位置に対応する出力画素値は異なるものの、形成されるドットパターンは全く同じであることが確認できる。つまり、画素値１で良好とされる拡散係数は画素値６５においても比較的良好な係数であると考えることができ、階調１における最適な拡散係数を求めることにより、階調値６５の拡散係数も同時に決定することができる。
【００１０】
本発明は、上述の課題を解決するためになされたもので、入力階調値に応じて拡散係数を選択する誤差拡散法を用いた多値画像の擬似中間調表現処理において、全階調に渡ってドット分散性に優れた出力画像を生成することができる画像処理装置及び方法、プログラム並びに記録媒体を提供することを目的とする。
【００１１】
また、本発明は、多値の誤差拡散法によって発生し易い擬似輪郭を低減させた高品位な画像を出力でき、拡散係数を用意する階調数を削減することで小メモリ化並びにシステムの簡素化を達成できる画像処理装置及び方法、プログラム並びに記録媒体を提供することを目的とする。
【００１２】
【課題を解決するための手段】
上記目的を達成するために、本発明は、多階調の入力画像を該入力画像の階調数より少ない階調数を有する画像に変換する画像処理装置において、多階調の入力画像を該入力画像の階調数より少ない階調数を有する画像に変換する際のパラメータを記憶するパラメータ記憶手段と、前記入力画像の特徴に応じて、前記パラメータ記憶手段からパラメータを選択するパラメータ選択手段と、選択されたパラメータに基づき前記入力画像の着目画素の値を量子化する際に発生する誤差値を前記着目画素の近傍の未処理の画素に拡散させる誤差拡散手段とを有することを特徴とする。
【００１３】
また、上記目的を達成するために、本発明は、多階調の入力画像を該入力画像の階調数より少ない階調数を有する画像に変換する画像処理方法において、多階調の入力画像を該入力画像の階調数より少ない階調数を有する画像に変換する際のパラメータをパラメータ記憶手段に記憶する工程と、前記入力画像の特徴に応じて、前記パラメータ記憶手段からパラメータを選択するパラメータ選択工程と、選択されたパラメータに基づき前記入力画像の着目画素の値を量子化する際に発生する誤差値を前記着目画素の近傍の未処理の画素に拡散させる誤差拡散工程とを有することを特徴とする。
【００１４】
【発明の実施の形態】
以下、図面を参照しながら本発明に係る実施の形態を詳細に説明する。
【００１５】
［第１の実施形態］
図１は、第１の実施形態による画像処理装置の構成を示すブロック図である。図１において、１００はハーフトーン処理部であり、入力画像の画素値を後述する拡散係数を用いて誤差拡散処理して出力する。１１０は拡散係数設定部であり、ハーフトーン処理部１００で用いられる拡散係数を設定する。そして、１２０は出力画像格納メモリであり、誤差拡散処理された出力画像を格納する。
【００１６】
ハーフトーン処理部１００において、１０１は各画素値を入力する入力端子、１０２は拡散された累積誤差を加算する累積誤差加算部、１０３は複数の量子化閾値を設定する閾値設定端子、１０４は設定された複数の量子化閾値により画素値を量子化する量子化部、１０５は量子化の際に発生する量子化誤差を演算する誤差演算部、１０６は量子化誤差を着目画素の近隣画素へ拡散する誤差拡散部、１０７は入力画素値の階調値に対応した拡散係数を格納してある拡散係数ルックアップテーブル（ＬＵＴ）、１０８は累積誤差メモリ、そして、１０９はハーフトーン処理部１００で擬似中間調処理された画像の各画素値を出力する出力端子である。
【００１７】
拡散係数設定部１１０において、１１１は出力画像の評価値演算部、１１２はその評価値演算部１１１が出力した評価値の結果を格納する評価値格納メモリ、１１３はその評価値を参照して入力画素データの階調値に応じて拡散係数を選択する拡散係数選択部である。
【００１８】
以下、以上の構成において、入力画像の階調値に応じて誤差拡散の拡散係数を選択する第１の実施形態における誤差拡散処理について説明する。
【００１９】
図２は、第１の実施形態における誤差拡散処理を示すフローチャートである。まず、不図示の画像走査部により入力画像が順次走査され、各画素値が入力端子１０１より入力される（ステップＳ２０１）。図３は、本実施形態における入力画像の走査例を示す図である。図３において、３０１は入力画像の左上端の画素、３０２は入力画像の右下端の画素である。図３に示すように、画像の走査は、画像領域の左上端の画素３０１から開始し、右方向に１画素毎に進む。そして、画像データ列の右端に達すると、その１画素下の画像データ列の左端画素に移る。上述の処理を繰り返し、右下端の画素３０２まで到達すると、画像の走査処理は完了する。
【００２０】
図２に戻り、累積誤差加算部１０２において、入力端子１０１より入力された画素値に累積誤差メモリ１０８の画素位置に対応する累積誤差値が加算される（ステップＳ２０２）。この累積誤差メモリ１０８は、１個の記憶領域Ｅ０と入力画像の横画素数ｗに相当する記憶領域Ｅ（１）〜Ｅ（ｗ）があり、後述する方法により量子化誤差が格納されている。図４は、この累積誤差メモリ１０８の詳細な構成を示す図である。
【００２１】
尚、累積誤差メモリ１０８は、処理開始前に全て初期値“０”で初期化されているものとする。
【００２２】
上述の累積誤差加算部１０１では、入力画素値の横画素位置ｘに対応した誤差メモリＥ（ｘ）の値が入力画素値に加算される。即ち、入力画素値Ｉは累積誤差加算後の画素値をＩ’とすると、
Ｉ’＝Ｉ＋Ｅ（ｘ）
となる。
【００２３】
次に、量子化部１０４において、累積誤差加算後の画素値Ｉ’と閾値設定端子１０３から設定された複数の閾値とを比較し、出力画素値を決定する（ステップＳ２０３）。本実施形態では、例えば量子化後の出力階調数Ｎを５とし、４つの閾値と累積誤差加算後の画素値Ｉ’との比較により、出力画素値を決定するものとする。即ち、入力画素値が０から２５５の範囲の整数値とすれば、出力画素値Ｏは次式により決定される。
【００２４】
Ｏ＝０　　　（Ｉ’＜３２）
Ｏ＝６４　　（３２≦Ｉ’＜９６）
Ｏ＝１２８　（９６≦Ｉ’＜１６０）
Ｏ＝１９２　（１６０≦Ｉ’＜２２４）
Ｏ＝２５５　（Ｉ’≧２２４）
次に、誤差演算部１０５において、累積誤差加算後の画素値Ｉ’と、出力画素値Ｏとの差分、即ち、量子化誤差Ｅｒｒを計算する（ステップＳ２０４）。
【００２５】
Ｅｒｒ＝Ｉ’−Ｏ
更に、入力画素値Ｉの下位６ビットを参照して、拡散係数設定部１１０により後述する方法に従って決定された拡散係数ＬＵＴ１０７から拡散係数を決定する（ステップＳ２０５）。
【００２６】
図５は、第１の実施形態における拡散係数ＬＵＴ１０７から拡散係数を選択する方法を示す図である。入力画素値Ｉは、０から２５５の８ビットで与えられるため、入力画素値の８ビットのうち下位６ビットの値を参照して拡散係数を決定する。具体的には、入力画素値ＩがＩ＝１（２進数表記では０００００００１）の場合、拡散係数ＬＵＴ１０７の階調値「１」に格納されている拡散係数が選択される。また、Ｉ＝８１（２進数表記では０１０１０００１）の場合、拡散係数ＬＵＴ１０７の階調値「１７」に格納されている拡散係数が選択される。
【００２７】
本実施形態では、量子化誤差Ｅｒｒを拡散する画素位置を、図６に示すように、注目画素６０１の４近傍画素と定め、各画素位置に対応する拡散係数をそれぞれＣ１、Ｃ２、Ｃ３、Ｃ４とする。図６は、注目画素と近傍画素との関係を示す図である。図７は、第１の実施形態における拡散係数ＬＵＴ１０７の一例を示す図である。入力画素値（入力階調）の下位６ビットに対応して０から１の範囲内の実数が拡散係数として格納されている。
【００２８】
次に、誤差拡散部１０６において、着目している画素の横方向位置ｘに応じて以下のように量子化誤差Ｅｒｒの拡散処理が行われる（ステップＳ２０６）。
【００２９】
Ｅ（ｘ＋１）←Ｅ（ｘ＋１）＋　Ｅｒｒ×Ｃ１　（ｘ＜ｗ）
Ｅ（ｘ−１）←Ｅ（ｘ−１）＋　Ｅｒｒ×Ｃ２　（ｘ＞１）
Ｅ（ｘ）←Ｅ０＋　Ｅｒｒ×Ｃ３　　　　　　　（１＜ｘ＜ｗ）
Ｅ（ｘ）←Ｅ０＋　Ｅｒｒ×（Ｃ２＋Ｃ３）　　　（ｘ＝１）
Ｅ（ｘ）←Ｅ０＋　Ｅｒｒ×（Ｃ１＋Ｃ３＋Ｃ４）（ｘ＝ｗ）
Ｅ０←　Ｅｒｒ×Ｃ４　　　　　　　　　　　　（ｘ＜ｗ）
Ｅ０←０　　　　　　　　　　　　　　　　（ｘ＝ｗ）
以上の処理により、入力画像の１画素分の誤差拡散処理を終了する。そして、誤差拡散処理を入力画像の全画素に対して施されたか否かを判定し（ステップＳ２０７）、全画素に対して以上の処理を実行したと判断した場合は、入力画像の擬似中間調処理を完了する。
【００３０】
次に、拡散係数設定部１１０の拡散係数選択部１１３によって拡散係数ＬＵＴ１０７の拡散係数を作成する処理について説明する。
【００３１】
図８は、後述する評価値Ｇの算出時に使用される画像を示す図である。図８において、８０１は量子化処理が施される全画像領域であり、８０２は評価値Ｇを算出する際の対象となる画像領域である。次式は、この拡散係数ＬＵＴ１０７を作成する時に使用される拡散係数の全候補を算出する式である。
【００３２】
【数１】
2004007259.tif 000003
【００３３】
入力階調値毎に、上述の候補に挙げられる拡散係数の中から１つの係数が選択された後、拡散係数ＬＵＴ１０７に格納される。ここで、入力階調ｇに対応する拡散係数設定手順について説明する。
【００３４】
図９は、入力階調値に対応する拡散係数を選択する処理を示すフローチャートである。まず入力階調値ｇをｇ＝１に初期化（ステップＳ９０１）した後、図８に示すように、５１２×５１２画素の一様な階調値ｇ＝１を持つ入力画像データを作成し（ステップＳ９０２）、この入力画像データに対して量子化処理を行う（ステップＳ９０３）。このとき、拡散係数ＬＵＴ１０７のｇ＝１に対応する位置には、上記式で算出された拡散係数の全候補のうち何れかが格納されている。更に、生成した量子化画像に対して、図８に示すドットの形成が安定状態に達したと思われる、画像の下端付近における２５６×２５６画素の画像領域８０２における評価値を後述する方法によって計算する（ステップＳ９０４）。
【００３５】
その後、候補に挙げられた全拡散係数の評価値の算出が終了したか否かを確認し（ステップＳ９０５）、終了していなければステップＳ９０１からステップＳ９０４の処理を繰り返す。また、全候補の拡散係数について評価値の算出が終了したならば、算出された全拡散係数の評価結果のうち、最良の評価値をもたらす拡散係数を拡散係数ＬＵＴ１０７のｇ＝１に対応する位置に格納する（ステップＳ９０６）。そして、対象とする入力階調値ｇを１階調増加させる（ステップＳ９０７）。
【００３６】
以上の処理を階調値ｇがｇ＝６３までの全階調に対して行うことで（ステップＳ９０８）、拡散係数ＬＵＴ１０７が完成する。尚、階調値ｇがｇ＝０の場合については、何れの拡散係数を用いても出力２値画像の記録ドットが全て非記録となるため、階調値ｇ＝０の拡散係数は階調値ｇ＝１の場合と同じ拡散係数を拡散係数ＬＵＴ１０７に格納する。
【００３７】
次に、図９に示すステップＳ９０２，Ｓ９０３において、入力階調値ｇで生成した量子化画像に対して図８に示すドットの形成が安定状態に達したと思われる画像の下端付近における２５６×２５６画素の画像領域８０２における評価値Ｇを算出する方法について説明する。
【００３８】
図１０は、評価値Ｇの算出方法を示すフローチャートである。まず評価の対象となる２５６×２５６画素の量子化画像８０２を不図示の入力端子より入力する（ステップＳ１００１）。そして、入力された２値画像に対して二次元フーリエ変換処理を施し、二次元パワースペクトルＰ（ｕ、ｖ）を求める（ステップＳ１００２）。尚、ｕ、ｖは、−１２８から＋１２８の範囲の値にある二次元パワースペクトル上の空間周波数値を表す。
【００３９】
図１１は、二次元パワースペクトルの一例を示す図である。図１１において、画像の中心は直流（ＤＣ）成分に相当し、そのパワーの強弱は濃淡によって表現され、明るい箇所は相当する周波数成分が強いことを意味し、逆に、暗い箇所は相当する周波数成分が弱いことを意味する。こうして求められた入力２値画像の二次元パワースペクトルに対して、視覚特性フィルタ（ＶＴＦ）によるフィルタリング処理を行う（ステップＳ１００３）。尚、本実施形態で使用する視覚特性フィルタＶＴＦ（ｆ）は、次式で定義される。
【００４０】
【数２】
2004007259.tif 000004
【００４１】
ここで、ｆは空間周波数を表し、視野角１度あたりの周期（ｃｙｃｌｅｓ／ｄｅｇｒｅｅ）として与えられる。尚、観察距離を３００ｍｍとし、２値画像の解像度を１２００ｄｐｉに設定している。また、図１２は、空間周波数ｆとＶＴＦ（ｆ）の関係を示す図である。このように求めた視覚特性フィルタＶＴＦ（ｆ）によるフィルタリング処理を二次元パワースペクトルＰ（ｕ、ｖ）に施し、次式に示されるＰ’（ｕ、ｖ）を求める。
【００４２】
Ｐ’（ｕ、ｖ）＝ＶＴＦ（ｆ）＊Ｐ（ｕ、ｖ）
次に、視覚特性フィルタ処理を行ったＰ’（ｕ、ｖ）に対して二次元逆フーリエ変換処理を施し、ｐ’（ｘ、ｙ）を求める（ステップＳ１００４）。ここで、ｘ、ｙは逆フーリエ変換処理で求められた画像の画素位置であり、０から２５５の範囲内にある。最後に、ｐ’（ｘ、ｙ）における画素値の標準偏差を出力画像の評価値Ｇとし（ステップＳ１００５）、入力画像に対する評価値の演算処理を終了する。
【００４３】
【数３】
2004007259.tif 000005
【００４４】
以上の処理により、出力画像の評価値を用いて階調毎に最適な拡散係数を選択することにより、分散性に優れたドットパターンを生成し、擬似輪郭を排除した高画質な出力画像を得ることができる。また、拡散係数ＬＵＴに格納される階調数を削減することができ、ＬＵＴの小メモリ化、並びにシステムの簡素化を達成することができる。
【００４５】
［第２の実施形態］
次に、図面を参照しながら本発明に係る第２の実施形態を詳細に説明する。
【００４６】
第２の実施形態は、図１に示した第１の実施形態の構成に対して出力階調数を設定するための出力階調数設定端子を付加したものである。
【００４７】
図１３は、第２の実施形態による画像処理装置の構成を示すブロック図である。図１３において、１３００は出力階調数設定端子であり、入力画像を量子化する際の階調数を設定するための端子である。
【００４８】
以下、図１３に示される第２の実施形態における画像処理装置の誤差拡散処理について説明する。
【００４９】
図１４は、第２の実施形態における誤差拡散処理を示すフローチャートである。まず、出力階調数設定端子１３００より、入力画像に対する量子化の階調数を設定する（ステップＳ１４０１）。但し、量子化の階調数は２Ｎ＋１（Ｎは１＜Ｎ＜８を満たす整数）とする。次に、不図示の画像走査部により入力画像が順次走査され、入力画像の各画素値が入力端子１０１より入力される（ステップＳ１４０２）。図３は、本実施形態における入力画像の走査例を示す図である。図３において、３０１は入力画像の左上端の画素、３０２は入力画像の右下端の画素である。図３に示すように、画像の走査は画像領域の左上端の画素３０１から開始し、右方向に１画素毎に進む。そして、画像データ列の右端に達すると、その１画素下の画像データ列の左端画素に移る。上述の処理を繰り返し、右下端の画素３０２まで到達すると、画像の走査処理は完了する。
【００５０】
図１３に戻り、累積誤差加算部１０２において、入力端子１０１より入力された画素値に累積誤差メモリ１０８の画素位置に対応する累積誤差値が加算される（ステップＳ１４０３）。この累積誤差メモリ１０８は、１個の記憶領域Ｅ０と入力画像の横画素数ｗに相当する記憶領域Ｅ（１）〜Ｅ（ｗ）があり、後述する方法により量子化誤差が格納されている。図４は、この累積誤差メモリ１０８の詳細な構成を示す図である。
【００５１】
尚、累積誤差メモリ１０８は、処理開始前に全て初期値“０”で初期化されているものとする。
【００５２】
上述の累積誤差加算部１０１では、入力画素値の横画素位置ｘに対応した誤差メモリＥ（ｘ）の値が入力画素値に加算される。即ち、入力画素値Ｉは累積誤差加算後の画素値をＩ’とすると、
Ｉ’＝Ｉ＋Ｅ（ｘ）
となる。
【００５３】
次に、量子化部１０４において、累積誤差加算後の画素値Ｉ’と閾値設定端子１０３から設定された複数の閾値とを比較し、出力画素値を決定する（ステップＳ１４０４）。入力画素値が０から２５５の範囲の整数値とすれば、出力画素値Ｏは次式により決定される。
【００５４】
Ｏ＝Ｉ’ＡＮＤ（２８−２８‐Ｎ）
ここで、ＡＮＤは論理積演算を表す。更に、拡散係数選択部１１３により後述する方法に従って決定された拡散係数ＬＵＴ１０７を参照して、入力画素値Ｉの階調値の下位８−Ｎビットを参照して拡散係数を決定する（ステップＳ１４０６）。
【００５５】
図１５は、第２の実施形態における拡散係数ＬＵＴ１０７から拡散係数を選択する方法を示す図である。入力画素値Ｉは、０から２５５の８ビットで与えられるため、入力画素値の８ビットのうち下位８−Ｎビットの値によって拡散係数を決定する。具体的には、出力階調数をＮ＝４とした時、入力画素値ＩがＩ＝１（２進数表記では０００００００１）の場合、拡散係数ＬＵＴ１０７の階調値「１」に格納されている拡散係数が選択される。また、Ｉ＝８１（２進数表記では０１０１０００１）の場合、同様に拡散係数ＬＵＴ１０７の階調値「１」に格納されている拡散係数が選択される。
【００５６】
本実施形態では、量子化誤差Ｅｒｒを拡散する画素位置を、図６に示すように、注目画素６０１の４近傍画素と定め、各画素位置に対応する拡散係数をそれぞれＣ１、Ｃ２、Ｃ３、Ｃ４とする。また、図１６は、第２の実施形態における拡散係数ＬＵＴ１０７の一例を示す図である。図１６に示すように、０から１の範囲内の実数が拡散係数として格納されている。
【００５７】
次に、誤差拡散部１０６において、着目している画素の横方向位置ｘに応じて以下のように量子化誤差Ｅｒｒの拡散処理が行われる（ステップＳ１４０７）。
【００５８】
Ｅ（ｘ＋１）←Ｅ（ｘ＋１）＋　Ｅｒｒ×Ｃ１　（ｘ＜ｗ）
Ｅ（ｘ−１）←Ｅ（ｘ−１）＋　Ｅｒｒ×Ｃ２　（ｘ＞１）
Ｅ（ｘ）←Ｅ０＋　Ｅｒｒ×Ｃ３　　　　　　　（１＜ｘ＜ｗ）
Ｅ（ｘ）←Ｅ０＋　Ｅｒｒ×（Ｃ２＋Ｃ３）　　　（ｘ＝１）
Ｅ（ｘ）←Ｅ０＋　Ｅｒｒ×（Ｃ１＋Ｃ３＋Ｃ４）（ｘ＝ｗ）
Ｅ０←　Ｅｒｒ×Ｃ４　　　　　　　　　　　　（ｘ＜ｗ）
Ｅ０←０　　　　　　　　　　　　　　　　（ｘ＝ｗ）
以上の処理により、入力画像の１画素分の誤差拡散処理を終了する。そして、誤差拡散処理を入力画像の全画素に対して施されたか否かを判定し（ステップＳ１４０８）、全画素に対して以上の処理を実行したと判断された場合、入力画像の擬似中間調処理を完了する。
【００５９】
尚、拡散係数選択部１１３による拡散係数ＬＵＴ１０７の作成手順については、階調値ｇ＝０から２Ｎ−１までの各階調における最適な拡散係数を設定することを除いては、第１の実施形態と同様であり、説明は省略する。
【００６０】
以上の処理により、入力画像の出力階調数を自由に設定でき、その出力階調数に応じて拡散係数ＬＵＴに格納されるパターン数の削除、並びに拡散係数の最適化処理の時間短縮ができ、要求される処理速度と画像品位に応じて出力階調数を切り替えることが可能となる。
【００６１】
以上説明したように、実施形態によれば、出力画像の評価値を用いて入力画像の画素値に応じて適切な拡散係数を設定することにより、ドット分散性に優れた出力画像を形成することができ、擬似輪郭を排除した高画質な出力画像を得ることができる。
【００６２】
尚、本発明の目的は、実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読み出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【００６３】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【００６４】
このプログラムコードを供給するための記録媒体としては、例えばフロッピー（登録商標）ディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００６５】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６６】
更に、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６７】
【発明の効果】
以上説明したように、本発明によれば、入力階調値に応じて拡散係数を選択する誤差拡散法を用いた多値画像の擬似中間調表現処理において、全階調に渡ってドット分散性に優れた出力画像を生成することができる。
【００６８】
また、本発明によれば、多値の誤差拡散法によって発生し易い擬似輪郭を低減させた高品位な画像を出力でき、拡散係数を用意する階調数を削減することで小メモリ化並びにシステムの簡素化を達成できる。
【図面の簡単な説明】
【図１】第１の実施形態による画像処理装置の構成を示すブロック図である。
【図２】第１の実施形態における誤差拡散処理を示すフローチャートである。
【図３】本実施形態における入力画像の走査例を示す図である。
【図４】累積誤差メモリ１０８の詳細な構成を示す図である。
【図５】第１の実施形態における拡散係数ＬＵＴ１０７から拡散係数を選択する方法を示す図である。
【図６】注目画素と近傍画素との関係を示す図である。
【図７】第１の実施形態における拡散係数ＬＵＴ１０７の一例を示す図である。
【図８】後述する評価値Ｇの算出時に使用される画像を示す図である。
【図９】入力階調値に対応する拡散係数を選択する処理を示すフローチャートである。
【図１０】評価値Ｇの算出方法を示すフローチャートである。
【図１１】二次元パワースペクトルの一例を示す図である。
【図１２】空間周波数ｆとＶＴＦ（ｆ）の関係を示す図である。
【図１３】第２の実施形態による画像処理装置の構成を示すブロック図である。
【図１４】第２の実施形態における誤差拡散処理を示すフローチャートである。
【図１５】第２の実施形態における拡散係数ＬＵＴ１０７から拡散係数を選択する方法を示す図である。
【図１６】第２の実施形態における拡散係数ＬＵＴ１０７の一例を示す図である。
【図１７】量子化レベルの近傍付近の画素値１或いは６５の一様な入力画像に対するドットパターンを示す図である。
【図１８】従来の多値誤差拡散法による出力画像例を示す図である。
【符号の説明】
１００　ハーフトーン処理部
１０１　画像データ入力端子
１０２　累積誤差加算部
１０３　閾値設定端子
１０４　量子化部
１０５　誤差演算部
１０６　誤差拡散部
１０７　拡散係数ＬＵＴ
１０８　累積誤差メモリ
１０９　画像データ出力端子
１１０　拡散係数設定部
１１１　評価値演算部
１１２　評価値格納メモリ
１１３　拡散係数選択部
１２０　出力画像格納メモリ
【図１】
2004007259.tif 000006
【図２】
2004007259.tif 000007
【図３】
2004007259.tif 000008
【図４】
2004007259.tif 000009
【図５】
2004007259.tif 000010
【図６】
2004007259.tif 000011
【図７】
2004007259.tif 000012
【図８】
2004007259.tif 000013
【図９】
2004007259.tif 000014
【図１０】
2004007259.tif 000015
【図１１】
2004007259.tif 000016
【図１２】
2004007259.tif 000017
【図１３】
2004007259.tif 000018
【図１４】
2004007259.tif 000019
【図１５】
2004007259.tif 000020
【図１６】
2004007259.tif 000021
【図１７】
2004007259.tif 000022
【図１８】
2004007259.tif 000023