(57)【要約】【課題】  ドット生成遅延や細線再現性を解決しつつ、好ましいパラメータを設定可能とする。【解決手段】  入力画像データの階調変換を行う画像処理装置において、入力画像データを量子化する際の閾値を設定する。そして、入力画像データを量子化誤差に基づいて補正し、補正された入力画像データを量子化し、その量子化の際に発生する量子化誤差を拡散する。そして、量子化誤差の総和を用いて、量子化の閾値を補正するための補正量を設定する。【選択図】      図１
2010093763.tif 000002
【特許請求の範囲】
【請求項１】
入力画像データの階調変換を行う画像処理装置であって、
前記入力画像データを量子化する際の閾値を設定する閾値設定手段と、
前記入力画像データを量子化誤差に基づいて補正するデータ補正手段と、
前記データ補正手段によって補正された入力画像データを量子化する量子化手段と、
前記量子化手段での量子化の際に発生する量子化誤差を拡散する誤差拡散手段と、
前記量子化誤差の総和を用いて、前記閾値設定手段で設定される閾値を補正するための補正量を設定する補正量設定手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記入力画像データは、均一濃度画像の画像データであることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記入力画像データは、ｍ値（ｍは自然数）の階調を有する画像の領域毎の画像データであることを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記量子化は、２値化であることを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記補正量設定手段は、前記入力画像データの量子化誤差の総和に基づいて入力画像の平均濃度と出力画像の平均濃度とが等しくなるような補正量を設定することを特徴とする請求項１乃至４の何れか１項に記載の画像処理装置。
【請求項６】
入力画像データの階調変換を行う画像処理装置にて実行される画像処理方法であって、
前記入力画像データを量子化する際の閾値を設定する閾値設定工程と、
前記入力画像データを量子化誤差に基づいて補正するデータ補正工程と、
前記データ補正工程において補正された入力画像データを量子化する量子化工程と、
前記量子化工程における量子化の際に発生する量子化誤差を拡散する誤差拡散工程と、
前記量子化誤差の総和を用いて、前記閾値設定工程で設定される閾値を補正するための補正量を設定する補正量設定工程と、
を有することを特徴とする画像処理方法。
【請求項７】
コンピュータを請求項１乃至５の何れか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【請求項８】
請求項７に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力画像データの階調変換を行う画像処理装置及び画像処理方法に関するものである。
【背景技術】
【０００２】
従来、スキャナなどの画像入力装置で読み取られた多階調画像データやコンピュータを用いて演算された多階調グラフィック画像データなどを、例えばディスプレイやプリンタなどを用いて再生表示することが行われている。また、ファクシミリやデジタル複写機などを用いて再生表示することも行われている。
【０００３】
このとき、画像出力装置として、多階調データを保存し、転送するために、そのデータ容量を減らそうとする場合には、同様に各画素の階調を減らす階調変換処理を行う必要がある。
【０００４】
この階調変換手法としては、各種の方法がある。例えば、誤差拡散法（例えば、非特許文献１参照）やそれとほぼ等価な平均誤差最小法は、好ましい画質を実現する手法として広く用いられている。
【特許文献１】特開2002-374412号公報
【非特許文献１】"An adaptive algorithm for spatial gray scale", SID International Symposium Digest of Technical Papers, vol4.3, 1975, pp.36-37
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、上記誤差拡散法や平均誤差最小法には、以下のような問題があった。
（１）ドット生成遅延：低濃度領域の立ち上がり部における黒ドットの生成及び、高濃度領域における白ドットの生成が遅延する。
（２）細線再現性：背景領域との濃度差が小さく、幅の細い線が途切れる、又は出力されない。
【０００６】
上記問題は、拡散された量子化誤差が周辺画素に悪影響を及ぼしているために発生する。このような問題を解決するために、例えば、特許文献１では、以下の式によって量子化閾値を設定している。
【０００７】
【数１】
2010093763.tif 000003
【０００８】
ここで、ｘ，ｙは画像の画素位置であり、Ｔ（ｘ，ｙ）は閾値、Ｉ（ｘ，ｙ）は原画像データの値である。また、Ｋは２以上の任意の自然数である。
【０００９】
上記の方法では、量子化閾値Ｔ（ｘ，ｙ）を原画像データＩ（ｘ，ｙ）から一意に設定しており、ドット生成遅延には一定の効果が認められるが、細線の再現性は不十分であり、細線の途切れ・消失が起きてしまう。
【００１０】
本発明は、ドット生成遅延や細線再現性を解決しつつ、好ましいパラメータを設計可能とすることを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、入力画像データの階調変換を行う画像処理装置であって、
前記入力画像データを量子化する際の閾値を設定する閾値設定手段と、
前記入力画像データを量子化誤差に基づいて補正するデータ補正手段と、
前記データ補正手段によって補正された入力画像データを量子化する量子化手段と、
前記量子化手段での量子化の際に発生する量子化誤差を拡散する誤差拡散手段と、
前記量子化誤差の総和を用いて、前記閾値設定手段で設定される閾値を補正するための補正量を設定する補正量設定手段と、
を有することを特徴とする。
【００１２】
また、本発明は、入力画像データの階調変換を行う画像処理装置にて実行される画像処理方法であって、
前記入力画像データを量子化する際の閾値を設定する閾値設定工程と、
前記入力画像データを量子化誤差に基づいて補正するデータ補正工程と、
前記データ補正工程において補正された入力画像データを量子化する量子化工程と、
前記量子化工程における量子化の際に発生する量子化誤差を拡散する誤差拡散工程と、
前記量子化誤差の総和を用いて、前記閾値設定工程で設定される閾値を補正するための補正量を設定する補正量設定工程と、
を有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、好適な補正量を高精度に得ることが可能となる。また、少ないコストで、画像毎に好ましい補正量を得ることが可能となる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【００１５】
本実施形態として、均一濃度画像や入力画像（自然画）を量子化したときの量子化誤差の総和を用いて、最適なパラメータ（補正量ｋ）を設定する処理を説明する。
【００１６】
ここで、均一濃度画像は全階調（０〜２５５）に対する所定サイズの画像であり、簡易なパラメータ設定用画像である。一方、入力画像（自然画）の場合、ｍ値（ｍは自然数）の階調を有する入力画像をｎ値（ｎはｍより小さい自然数）の階調に変換する際に、画像の領域毎に最適なパラメータを設定可能であり、計算量は多くなるが、画質は最適なものになる。
【００１７】
以下では、誤差拡散法に本発明を適用した場合を例に挙げて説明する。尚、説明の都合上、以降の説明では階調変換後の階調数を２としているが、階調数は限定されない。
【００１８】
図１は、本実施形態における画像処理装置の機能ブロックを示す図である。図１に示すように、画像処理装置には、階調画像データ入力部１０１、閾値設定部１０２、２値化部１０３、２値画像データ出力部１０４、誤差拡散部１０５、データ補正部１０６、総和誤差記憶部１０７、補正量設定部１０８が含まれる。
【００１９】
尚、上述の機能ブロックを有する画像処理装置は、例えばプリンタのコントローラ部やプリンタドライバとして実装される。
【００２０】
以上の構成において、所定階調を有する入力画像データの階調を変換する階調変換処理の詳細を説明する。
【００２１】
まず、階調画像データ入力部１０１が階調変換対象の原画像データＩ（ｘ，ｙ）を取得する。ここで、（ｘ，ｙ）は画像の画素位置であり、Ｉ（ｘ，ｙ）は画素位置（ｘ，ｙ）における原画像データである。尚、原画像データは濃度値に限定されず、任意の画像信号であって良い。
【００２２】
次に、閾値設定部１０２が原画像データＩ（ｘ，ｙ）と総和誤差ΣＥ（ｉ，ｊ）に基づいて閾値Ｔ（ｘ，ｙ）を設定する。ここで、閾値Ｔ（ｘ，ｙ）は、例えば以下の式で算出される。
【００２３】
【数２】
2010093763.tif 000004
【００２４】
ここで、Ｔbaseは原画像データＩ（ｘ，ｙ）の値から一意に決定される基準閾値であり、Noise（ｘ，ｙ）は画素位置に応じて設定された閾値ノイズである。尚、閾値ノイズNoise（ｘ，ｙ）としては、高周波のノイズを用いることが好適である。
【００２５】
また、総和誤差ΣＥ（ｉ，ｊ）は、後述する総和誤差記憶部１０７で得られるもので、階調変換処理済みの任意領域において発生した量子化誤差の総和である。尚、詳細は後述するが、誤差拡散部１０５によって得られる拡散誤差積算値Ｄ（ｘ，ｙ）とは異なるものである。
【００２６】
また、ｋは総和誤差を小さくするための補正量であり、後述する補正量設定部１０８で設定される。
【００２７】
次に、２値化部１０３が閾値Ｔ（ｘ，ｙ）と補正データ｛Ｉ（ｘ，ｙ）＋Ｄ（ｘ，ｙ）｝とを比較し、２値化結果Ｏ（ｘ，ｙ）及び発生誤差Ｅ（ｘ，ｙ）を決定する。この処理は以下の式で算出される。
【００２８】
【数３】
2010093763.tif 000005
【００２９】
ここで、Ｄ（ｘ，ｙ）は後述する誤差拡散部１０５によって得られる拡散誤差積算値である。
【００３０】
また、２値画像データ出力部１０４が印刷装置の場合には、２値化結果Ｏ（ｘ，ｙ）が“１”であれば印刷媒体上にドットを生成し、“０”であればドットを生成しないことを意味する。
【００３１】
次に、２値画像データ出力部１０４が２値化部１０３によって２値化された２値化結果Ｏ（ｘ，ｙ）を出力する。一般的に、出力先は印刷装置であるが、これに限定されるものではない。
【００３２】
次に、誤差拡散部１０５が発生誤差Ｅ（ｘ，ｙ）を注目画素の近傍画素に拡散する。このとき、近傍画素の位置及び誤差拡散の割合は、図２に示すような誤差拡散係数によって決定される。図２に示す拡散係数を適用した場合には、任意の画素は、近傍の４画素から拡散された量子化誤差を全て受け取る（但し、画像端は例外である）。この拡散誤差積算値をＤ（ｘ，ｙ）とする。
【００３３】
次に、データ補正部１０６が原画像データＩ（ｘ，ｙ）と、このＩ（ｘ，ｙ）に対応する拡散誤差積算値Ｄ（ｘ，ｙ）とを加算し、補正データ｛Ｉ（ｘ，ｙ）＋Ｄ（ｘ，ｙ）｝を出力する。
【００３４】
次に、総和誤差記憶部１０７が発生誤差Ｅ（ｘ，ｙ）の総和ΣＥ（ｉ，ｊ）を計算する。この例では、ΣＥ（ｉ，ｊ）は既処理の全画素位置（ｉ，ｊ）において発生した誤差Ｅ（ｉ，ｊ）の総和としている。但し、（ｉ，ｊ）の範囲は既処理の全画素に限定されず、例えば１ライン毎であっても良く、領域分割された任意の範囲であっても良い。
【００３５】
また、原画像データＩ（ｘ，ｙ）が０である画素は２値化結果Ｏ（ｘ，ｙ）が必ず０になり、その画素における誤差Ｅ（ｉ，ｊ）を総和誤差ΣＥ（ｉ，ｊ）に加算しないようにしても良い。即ち、総和誤差の計算範囲は限定されない。
【００３６】
ここで、総和誤差ΣＥ（ｉ，ｊ）の値として上限値α及び下限値βを設定し、以下の式で求めても良い。
【００３７】
【数４】
2010093763.tif 000006
【００３８】
これにより、総和誤差ΣＥ（ｉ，ｊ）の値を適当な範囲に収めることができる。
【００３９】
従来の方法では、拡散誤差積算値Ｄ（ｘ，ｙ）が過大な値となった場合に、画質に問題が発生することから、拡散誤差積算値Ｄ（ｘ，ｙ）に、上記のような上限値及び下限値を設定している例があった。しかし、拡散されるべき量子化誤差が失われてしまうために、入力画像の平均濃度と出力画像の平均濃度が異なってしまうという問題があった。一方、本実施形態のように、総和誤差ΣＥ（ｉ，ｊ）に上限値及び下限値を設定する場合には、拡散されるべき量子化誤差は失われず、このような問題は発生しない。
【００４０】
尚、総和誤差ΣＥ（ｉ，ｊ）の値を適切な範囲に収める処理としては、この例に限らず、例えば１画素処理する度に指定の値を加算又は減算するようにしても良く、その方法は限定されない。
【００４１】
また、発生誤差Ｅ（ｘ，ｙ）の総和でなく、以下の式で表されるＥ’（ｘ，ｙ）の総和を用いても良い。
【００４２】
【数５】
2010093763.tif 000007
【００４３】
次に、補正量設定部１０８が補正量ｋを設定する。ここで設定された補正量ｋは、閾値設定部１０２に出力される。
【００４４】
この補正量ｋは、ドット生成遅延及び細線再現性を改善する効果の強さを制御するために導入されるパラメータである。しかし、発明者の実験によると、補正量ｋを大きく設定すると、高濃度部及び低濃度部において若干の粒状性悪化が確認されている。即ち、粒状性とのトレードオフが存在する。
【００４５】
そこで、ドット生成遅延が発生しやすい領域、及び細線を含む領域においては補正量ｋを大きく設定することにより、ドット生成遅延及び細線再現の問題を解決する。そして、それ以外の領域においては補正量ｋを小さく設定することにより（ゼロにしても良い）、粒状性を保証することが望ましい。
【００４６】
しかし、全ての条件の組み合わせに対して適切な補正量ｋの値を設定することは困難である。以下では、その原因について述べる。
原因１．パラメータの定量評価が困難である
あるパラメータが適切であるかを判定するためには、出力された画像にドット生成遅延や細線途切れが発生していないか、評価する必要がある。しかし、上記現象を高速・高精度に定量評価することは困難である。
原因２．領域の判定が困難である
ドット生成遅延や細線途切れが起こり易い領域において補正量ｋの値を大きくすることが望ましい。しかし、上記領域の判定には周辺画素値を参照し、画像領域特徴を取得して判定する処理が必要である。誤判定の恐れがある上、計算量の観点からも課題が残る。
原因３．条件の組み合わせが膨大である
補正量ｋの値は、入力階調数の数だけ設定することが好ましい。また、誤差拡散係数や出力階調数が変われば、その都度最適なｋの値を設定しなければならず、全パラメータを手動で設計することは困難である。
【００４７】
このように、適切な補正量を常に選択することは困難であり、本実施形態では、階調毎に補正量を設定する方法を適用する。
【００４８】
次に、補正量設定部１０８によって実行される補正量設定処理の詳細を、図３を用いて説明する。
【００４９】
図３は、本実施形態における補正量設定処理を示すフローチャートである。この処理は、ある１つの階調に対するパラメータ（補正量ｋ）を設定する処理であり、同様の処理を全ての階調に対する補正量ｋの値を設定完了するまで繰り返す。
【００５０】
まず、ステップＳ３０１で、補正量ｋの値を設定する階調と等しい階調値の画像として画像Ｇ（ｘ，ｙ）を取得する。ここで、画像Ｇ（ｘ，ｙ）は、均一濃度画像や入力画像（自然画）である。
【００５１】
また、任意の領域に分割した部分画像を取得しても良く、ＣＡＤ用途に用いられる画像のように、図形情報が付加されている画像の場合、付加情報を用いて部分画像を取得しても良い。これにより、画像の領域毎に適切なパラメータを設定することが可能になる。
【００５２】
次に、ステップＳ３０２で、画像Ｇ（ｘ，ｙ）に対して階調変換処理を施す。このとき、階調変換処理としては、２値化部１０３と同一の階調変換処理を用い、補正量ｋの値は初期値としてｋ＝０とする。
【００５３】
次に、ステップＳ３０３で、ステップＳ３０２での発生誤差Ｅ（ｘ，ｙ）から総和誤差ΣＥ（ｉ，ｊ）の最小の絶対値ｍｉｎ｜ΣＥ（ｉ，ｊ）｜を１つ以上取得し、補正量ｋの値が「適切」であるか「不適切」であるかを判定する。
【００５４】
ここで、最小の絶対値を計算する範囲が画像全体であれば最小の絶対値の値は１つ取得され、また最小の絶対値を計算する範囲が１行毎であれば画像Ｇ（ｘ，ｙ）の行数分取得される。尚、最小の絶対値を計算する範囲は限定されず、最小の絶対値の数もこれに限定されない。
【００５５】
また、補正量ｋが適切であるか判定する基準としては、ある小さい閾値εを定め、最小の絶対値が以下の式を満たす場合に、補正量ｋは適切と判定する。
【００５６】
ｍｉｎ｜ΣＥ（ｉ，ｊ）｜＜ε
また、最小の絶対値を複数取得している場合には、各最小の絶対値が上記条件を満たす場合に、補正量ｋは適切であると判定する。尚、一定数以上の最小の絶対値が上記条件を満たす場合に、補正量ｋは適切であると判定しても良い。
【００５７】
ここで、ステップＳ３０３の判定結果が「不適切」であった場合は、ステップＳ３０４へ処理を進め、補正量ｋの値を所定の値だけ増加させ、ステップＳ３０２に戻り、上述の処理を繰り返す。
【００５８】
尚、増加させる値は一定値でなくても良く、最小の絶対値の値に応じて変更しても良い。また、ニュートン法などの公知の探索手法を用いても良い。
【００５９】
一方、ステップＳ３０３の判定結果が「適切」であった場合は、ステップＳ３０５へ処理を進め、現在の階調に対する補正量ｋの値を出力し、次の階調に対する補正量ｋの値を設定する処理に移行する。
【００６０】
尚、この補正量設定処理は、一度実行されれば以降は実行不要であるため、最初に設定された値を保持し続ける実施形態が好適である。
【００６１】
ここで、ある補正量ｋが上記条件を満たす場合に、「適切」と判定される理由を、図４を用いて説明する。
【００６２】
図４は、それぞれ異なる補正量ｋの値を用いて階調変換処理を行った際の、総和誤差ΣＥ（ｉ，ｊ）の推移を示す図である。図４に示す（ａ）は、総和誤差ΣＥ（ｉ，ｊ）の値に補正がかかった結果、総和誤差ΣＥ（ｉ，ｊ）が０に近づいている。
【００６３】
ここで、総和誤差ΣＥ（ｉ，ｊ）が０になるということは、その時点で入力画像の平均濃度と出力画像の平均濃度とが等しくなっていることを意味する。即ち、過不足ない適切な濃度補正が行われている状態である。
【００６４】
また、図４に示す（ｂ）は、補正量ｋの値を小さくした時の総和誤差ΣＥ（ｉ，ｊ）の推移を示しており、総和誤差ΣＥ（ｉ，ｊ）が十分に０に近づいていない例である。この例では、入力画像の平均濃度と出力画像の平均濃度とが等しくなっていない。そのため、ドット生成遅延や細線途切れといった現象が発生してしまう。
【００６５】
また、図４に示す（ｃ）は、補正量ｋの値を小さくした時の総和誤差ΣＥ（ｉ，ｊ）の推移を示しており、総和誤差ΣＥ（ｉ，ｊ）が０をオーバーしている例である。これは、過剰な濃度補正が行われている状態であり、特に、粒状性に対して悪影響を及ぼすことがわかっている。
【００６６】
このように、適切な補正量の値を設定し、総和誤差に基づいて量子化閾値を変動させることにより、ドット生成遅延及び細線再現性の問題を解決することが可能となる。
【００６７】
尚、本実施形態では、総和誤差を量子化閾値に反映させた場合を例に挙げて説明したが、原画像データや補正データに反映させてもほぼ等価な結果が得られる。
【００６８】
また、本実施形態における走査方向、誤差拡散係数、基準閾値などの設定は任意であることは言うまでもない。
【００６９】
更に、本実施形態では、誤差拡散法により本発明を実現する例を説明したが、階調変換方法は誤差拡散法に限らず、平均誤差最小法であっても良い。即ち、階調変換処理は限定されない。
【００７０】
尚、本発明は複数の機器（例えば、ホストコンピュータ、インターフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用しても良い。
【００７１】
また、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成されることは言うまでもない。
【００７２】
この場合、コンピュータ読み取り可能な記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【００７３】
このプログラムコードを供給するための記録媒体として、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００７４】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、次の場合も含まれることは言うまでもない。即ち、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合である。
【００７５】
更に、記録媒体から読出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００７６】
【図１】本実施形態における画像処理装置の機能ブロックを示す図である。
【図２】近傍４画素に誤差を拡散する誤差拡散係数の例を示す図である。
【図３】本実施形態における補正量設定処理を示すフローチャートである。
【図４】それぞれ異なる補正量ｋの値を用いて階調変換処理を行った際の、総和誤差ΣＥ（ｉ，ｊ）の推移を示す図である。
【符号の説明】
【００７７】
１０１  階調画像データ入力部
１０２  閾値設定部
１０３  ２値化部
１０４  ２値画像データ出力部
１０５  誤差拡散部
１０６  データ補正部
１０７  総和誤差記憶部
１０８  補正量設定部
【図１】
2010093763.tif 000008
【図２】
2010093763.tif 000009
【図３】
2010093763.tif 000010
【図４】
2010093763.tif 000011