(57)【要約】【課題】ディザ閾値誤差拡散処理によって、プリンタの記録特性に合った高品質な出力画像データを得る装置及び方法を提供する。【解決手段】出力階調値決定部１０３は３個の閾値マトリクス中の注目画素位置の値を量子化閾値として修正入力値を４値量子化し、出力階調値０，８５，１７０又は２５５を出力する。修正出力値決定部１０４Ａは出力階調値８５，１７０，２５５に対応した修正出力値マトリクスを持ち、出力階調値が０のときは０を、それ以外の出力階調値のときは対応した修正出力値マトリクス中の注目画素位置の値を修正出力値として出力する。量子化誤差算出部１０４Ｂは修正入力値と修正出力値の差を量子化誤差値として出力する。【選択図】図１
2008078733.tif 000002
【特許請求の範囲】
【請求項１】
多値入力画像データを、より少値のＮ値（Ｎは２以上の整数）の出力画像データへ変換する画像処理装置であって、
前記多値入力画像データの注目画素位置の階調値である入力階調値に、前記注目画素位置に対する拡散誤差量を加算した修正入力値を算出して出力する修正入力値算出手段と、
（Ｎ−１）個の閾値マトリクスを持ち、前記各閾値マトリクス中の前記注目画素位置に対応した値を量子化閾値として用いて前記修正入力値をＮ値量子化した値を、前記出力画像データの前記注目画素位置の階調値である出力階調値として出力する出力階調値決定手段と、
前記出力画像データの０以外の各階調値に対応した（Ｎ−１）個の修正出力値マトリクスを持ち、前記出力階調値が０のときは０を修正出力値として出力し、前記出力階調値が０以外のときには前記出力階調値に対応した前記修正出力値マトリクス中の前記注目画素位置に対応した値を出力修正値として出力する修正出力値決定手段と、
前記修正入力値から前記修正出力値を減じた量子化誤差値を算出して出力する量子化誤差算出手段と、
前記量子化誤差値を記憶する量子化誤差値記憶手段と、
前記量子化誤差記憶手段に記憶されている前記注目画素位置の近傍の複数の処理済み画素位置での量子化誤差値を重み付け加算することにより、前記注目画素位置に対する前記拡散誤差量を算出する拡散誤差量算出手段と、
を有することを特徴とする画像処理装置。
【請求項２】
多値入力画像データを、より少値のＮ値（Ｎは２以上の整数）の出力画像データへ変換する画像処理方法であって、
前記多値入力画像データの注目画素位置の階調値である入力階調値に、前記注目画素位置に対する拡散誤差量を加算した修正入力値を算出して出力する修正入力値算出工程と、
（Ｎ−１）個の閾値マトリクスを持ち、前記各閾値マトリクス中の前記注目画素位置に対応した値を量子化閾値として用いて前記修正入力値をＮ値量子化した値を、前記出力画像データの前記注目画素位置の階調値である出力階調値として出力する出力階調値決定工程と、
前記出力画像データの０以外の各階調値に対応した（Ｎ−１）個の修正出力値マトリクスを持ち、前記出力階調値が０のときは０を修正出力値として出力し、前記出力階調値が０以外のときには前記出力階調値に対応した前記修正出力値マトリクス中の前記注目画素位置に対応した値を出力修正値として出力する修正出力値決定工程と、
前記修正入力値から前記修正出力値を減じた量子化誤差値を算出して出力する量子化誤差算出工程と、
前記量子化誤差値を記憶手段に格納する量子化誤差値記憶工程と、
前記記憶手段に記憶されている前記注目画素位置の近傍の複数の処理済み画素位置での量子化誤差値を重み付け加算することにより、前記注目画素位置に対する前記拡散誤差量を算出する拡散誤差量算出工程と、
を有することを特徴とする画像処理方法。
【請求項３】
請求項１記載の画像処理装置の各手段としてコンピュータを機能させるプログラム。
【請求項４】
請求項１記載の画像処理装置の各手段としてコンピュータを機能させるプログラムが記録された、コンピュータが読み取り可能な情報記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多値画像データを、より少値の出力画像データへ変換する中間調処理を行う画像処理装置及び方法に関する。
【背景技術】
【０００２】
多値の入力画像データの階調を２値や３値といった少値のデータのみ出力可能なプリンタ等で表現する目的、あるいは、多値入力画像データのデータ量を削減する目的などで、多値入力画像データをより少値の出力画像データに変換する中間調処理が用いられる。
【０００３】
代表的な中間調処理として誤差拡散処理がある。誤差拡散処理においては、算出される誤差量が実際のプリンタの記録特性に対して不正確であるという問題がある（例えば特許文献１の段落［０００３］参照）。そして、この問題点を改善し、実際のプリンタの記録特性に合う誤差量を算出して高品質な誤差拡散画像を得ることが可能な画像処理装置を実現するための技術が特許文献１に記載されている。
【０００４】
他の中間調処理方法として、粒状性に優れたディザ法と鮮鋭性に優れた誤差拡散法を組み合わせたディザ閾値誤差拡散処理がある。これは、多値の入力画像データを誤差拡散法により量子化するが、その量子化閾値としてディザ処理同様の画素位置に応じた値を用いるものである。このディザ閾値誤差拡散処理においても、特許文献１記載の技術を応用することにより、実際のプリンタの記録特性に合う量子化誤差量を算出して高品質な誤差拡散画像を得ることが可能であろう。
【０００５】
【特許文献１】特開２００２−３６８９９１号公報
【特許文献２】特開２００６−１０９２６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１記載の技術によって、誤差拡散処理もしくはディザ閾値誤差拡散処理においてプリンタの記録特性に合う量子化誤差量を算出しようとすると、周辺画素の出力状態を参照する必要があり、このことが処理負荷の増加や装置構成の複雑化を招くという課題がある。
【０００７】
よって、本発明の目的は、処理負荷の増大や装置構成の複雑化を招くことなく、ディザ閾値誤差拡散処理においてプリンタの記録特性に合う高品質な出力画像データを得ることが可能な画像処理装置及び画像処理方法を提供することにある。
【課題を解決するための手段】
【０００８】
請求項１記載の発明に係る画像処理装置は、多値入力画像データを、より少値のＮ値（Ｎは２以上の整数）の出力画像データへ変換する画像処理装置であって、
前記多値入力画像データの注目画素位置の階調値である入力階調値に、前記注目画素位置に対する拡散誤差量を加算した修正入力値を算出して出力する修正入力値算出手段と、
（Ｎ−１）個の閾値マトリクスを持ち、前記各閾値マトリクス中の前記注目画素位置に対応した値を量子化閾値として用いて前記修正入力値をＮ値量子化した値を、前記出力画像データの前記注目画素位置の階調値である出力階調値として出力する出力階調値決定手段と、
前記出力画像データの０以外の各階調値に対応した（Ｎ−１）個の修正出力値マトリクスを持ち、前記出力階調値が０のときは０を修正出力値として出力し、前記出力階調値が０以外のときには前記出力階調値に対応した前記修正出力値マトリクス中の前記注目画素位置に対応した値を出力修正値として出力する修正出力値決定手段と、
前記修正入力値から前記修正出力値を減じた量子化誤差値を算出して出力する量子化誤差算出手段と、
前記量子化誤差値を記憶する量子化誤差値記憶手段と、
前記量子化誤差記憶手段に記憶されている前記注目画素位置の近傍の複数の処理済み画素位置での量子化誤差値を重み付け加算することにより、前記注目画素位置に対する前記拡散誤差量を算出する拡散誤差量算出手段と、
を有することを特徴とする。
【０００９】
請求項２記載の発明に係る画像処理方法は、多値入力画像データを、より少値のＮ値（Ｎは２以上の整数）の出力画像データへ変換する画像処理方法であって、
前記多値入力画像データの注目画素位置の階調値である入力階調値に、前記注目画素位置に対する拡散誤差量を加算した修正入力値を算出して出力する修正入力値算出工程と、
（Ｎ−１）個の閾値マトリクスを持ち、前記各閾値マトリクス中の前記注目画素位置に対応した値を量子化閾値として用いて前記修正入力値をＮ値量子化した値を、前記出力画像データの前記注目画素位置の階調値である出力階調値として出力する出力階調値決定工程と、
前記出力画像データの０以外の各階調値に対応した（Ｎ−１）個の修正出力値マトリクスを持ち、前記出力階調値が０のときは０を修正出力値として出力し、前記出力階調値が０以外のときには前記出力階調値に対応した前記修正出力値マトリクス中の前記注目画素位置に対応した値を出力修正値として出力する修正出力値決定工程と、
前記修正入力値から前記修正出力値を減じた量子化誤差値を算出して出力する量子化誤差算出工程と、
前記量子化誤差値を記憶手段に格納する量子化誤差値記憶工程と、
前記記憶手段に記憶されている前記注目画素位置の近傍の複数の処理済み画素位置での量子化誤差値を重み付け加算することにより、前記注目画素位置に対する前記拡散誤差量を算出する拡散誤差量算出工程と、
を有することを特徴とする。
【００１０】
請求項３記載の発明に係るプログラムは、請求項１記載の発明に係る画像処理装置の各手段としてコンピュータを機能させるプログラムである。
【００１１】
請求項４記載の発明に係る情報記録媒体は、請求項１記載の発明に係る画像処理装置の各手段としてコンピュータを機能させるプログラムが記録された、コンピュータが読み取り可能な情報記録媒体である。
【発明の効果】
【００１２】
請求項１又は２記載の発明に係る画像処理装置又は画像処理方法は、量子化誤差決定の際に注目画素の周辺画素の出力状態を参照しないため、処理負荷の増大や装置構成の複雑化を招くことがない。そして、閾値マトリクス及び修正出力値マトリクスを適切に設計することにより、プリンタ等の出力媒体の記録特性に合った高品質な出力画像データを得ることが可能である。また、請求項３記載の発明に係るプログラム又は請求項４記載の発明に係る情報記録媒体に記録されたプログラムをコンピュータにロードすることにより、コンピュータを請求項１記載の発明に係る画像処理装置として動作させることができる。
【００１３】
なお、請求項１又は２記載の発明に係る画像処理装置又は画像処理方法には、以下のような態様も包含される。
（１）出力画像データをプリンタ等の出力媒体で表現した画像が、入力画像に対して明度、濃度、もしくは反射率のいずれかに関してリニアな特性をとるように設計された閾値マトリクス及び出力修正値マトリクスを用いることを特徴とする画像処理装置又は画像処理方法。
（２）当該画素位置で当該出力階調値のドットを打つ出力画像データとドットを打たない出力画像データをそれぞれ出力媒体で表現した画像の、明度差、濃度差、もしくは反射率差のいずれかに応じて設定した修正出力値マトリクスを用いることを特徴とする画像処理装置又は画像処理方法。
（３）複数種類の出力ドットパターンを与え、各出力ドットパターンに対応する定常状態での修正入力値を求めて、前記各出力ドットパターンを発生させるために量子化閾値が存在すべき範囲に基づき設定された閾値マトリクスを使用することを特徴とする画像処理装置又は画像処理方法。
（４）入力階調値が一定である場合に量子化誤差の平均値がほぼ０となる閾値マトリクスを使用することを特徴とする画像処理装置又は画像処理方法。
（５）入力階調値によらず量子化誤差の平均値がほぼ０となる閾値マトリクスを使用することを特徴とする画像処理装置又は画像処理方法。
【発明を実施するための最良の形態】
【００１４】
図１は、本発明の一実施形態に係る画像処理装置のブロック図である。この画像処理装置は、画像入力部１０１、修正入力値修正部１０２、出力階調値決定部１０３、修正出力値決定部１０４Ａ、量子化誤差算出部１０４Ｂ、量子化誤差バッファ１０５、拡散誤差量算出部１０６から構成されるもので、外部から入力画像データと注目画素位置情報とが入力し、外部へ出力画像データを出力する。
【００１５】
入力画像データは、例えばカラー複写機などにおいて、スキャナで読み取った画像データを、濃度補正処理、周波数補正処理を行い、ＣＭＹＫ各版毎の画像に変換したものである。ここでは、入力画像データは、１画素１版あたり０以上２５５以下の整数値を取る２５６値データであって、値が大きいほど濃度が高いものとする。また、出力画像データは、０、８５、１７０又は２５５の４値データであって、値が大きいほど濃度が高いものとする。
【００１６】
画像入力部１０１は、入力画像データの値（入力階調値）を画素毎に順次、修正入力値算出部１０２へ送る手段である。
【００１７】
修正入力値算出部１０２は、画像入力部１０１から入力された注目画素位置の入力階調値と、拡散誤差量算出部１０６から入力される注目画素位置に対する拡散誤差量との和である修正入力値を算出して出力する手段である。
【００１８】
出力階調値決定部１０３は、修正入力値を３個の閾値を用いて４値量子化し、０（最低濃度），８５，１７０又は２５５（最高濃度）の出力階調値を出力する手段である。
【００１９】
より詳しくは、出力階調値決定部１０３は、図２に示す閾値マトリクスＡ（２０１）、閾値マトリクスＢ（２０２）、閾値マトリクスＣ（２０３）を持つ。これら閾値マトリクスＡ，Ｂ，Ｃは、６００ｄｐｉの出力解像度において約２１２線、４５度の網点スクリーンを表現する４値出力用の閾値マトリクスであり、閾値マトリクスＡの閾値は出力階調値８５に相当するドットを、閾値マトリクスＢの閾値は出力階調値１７０に相当するドットを、閾値マトリクスＣの閾値は出力階調値２５５に相当するドットを、それぞれ出すか否かを決定する量子化用閾値である。
【００２０】
そして、出力階調値決定部１０３は、注目画素位置情報に従って閾値マトリクスＡ，Ｂ，Ｃ中の注目画素位置に対応した閾値（これを閾値Ａ，Ｂ，Ｃと記す）と修正入力値との大小関係を比較することによって出力階調値を決定する。すなわち、図３に示すように、修正入力値が閾値Ｃを超えるならば（ｓｔｅｐ１，Ｙｅｓ）、出力階調値を２５５とする（ｓｔｅｐ２）。修正入力値が閾値Ｃ以下であって（ｓｔｅｐ１，Ｎｏ）、閾値Ｂを超えるならば（ｓｔｅｐ３，Ｙｅｓ）、出力階調値を１７０とする（ｓｔｅｐ４）。修正入力値が閾値Ｂ以下であって（ｓｔｅｐ３，Ｎｏ）、閾値Ａを超えるならば（ｓｔｅｐ５，Ｙｅｓ）、出力階調値を８５とする（ｓｔｅｐ６）。修正入力値が閾値Ａ以下ならば（ｓｔｅｐ５，Ｎｏ）、出力階調値を０とする（ｓｔｅｐ７）。
【００２１】
閾値マトリクスＡ，Ｂ，Ｃ中のどの閾値を用いるかは、閾値マトリクスＡ，Ｂ，Ｃを出力画像にタイル状に繰り返し敷き詰めたとして、注目画素が閾値マトリクス中のどの位置に相当するかによって決定される。すなわち、閾値マトリクスのサイズが横ｗ画素×縦ｈ画素の場合、出力画像座標で横Ｘ、縦Ｙの注目画素に対しては、閾値マトリクス座標で横（Ｘ％ｗ）、縦（Ｙ％ｈ）の閾値を用いる。ここで、（Ｘ％ｗ）はＸをｗで除したときの剰余を意味する。注目画素位置情報として、このような閾値マトリクス状の横座標（Ｘ％ｗ）と縦座標（Ｙ％ｈ）が入力される。
【００２２】
図２においては、ｗ＝ｈ＝４であるので、例えば出力画像座標（Ｘ，Ｙ）＝（９，６）の注目画素に対しては、閾値マトリクス座標で（ｘ，ｙ）＝（１，２）の位置の閾値を用いる。すなわち、出力階調値８５、１７０、２５５に相当するドットを出すか否かを決定するための閾値Ａ、閾値Ｂ、閾値Ｃはそれぞれ２０９、２２３、２３６となり、注目画素の修正入力値が２３６より大きければ出力階調値は２５５、そうでなくて修正入力値が２２３より大きければ出力階調値は１７０、そうでなくて修正入力値が２０９より大きければ出力階調値は８５、そうでなければ出力階調値は０となるわけである。
【００２３】
このようにして画素毎に決定された出力階調値が出力画像データとして外部のプリンタ等へ出力される。
【００２４】
なお、図２に示した閾値マトリクスＡ，Ｂ，Ｃの閾値の決定は重要である。その設計方法について後に詳述する。
【００２５】
本発明の画像処理装置においては、出力階調値決定部１０３より出力される出力画像データの出力階調値をそのまま用いて量子化誤差値を算出するのではなく、修正出力値決定部１０４Ａで出力階調値を修正した値（修正出力値）を用いて量子化誤差値を算出する。
【００２６】
修正出力値決定部１０４Ａは、図４に示すような、出力階調値８５に対応した修正出力値マトリクスＡ（４０１）、出力階調値１７０に対応した修正出力値マトリクスＢ（４０２）、及び、出力階調値２５５に対応した修正出力値マトリクスＣ（４０３）を持つ。そして、修正出力値決定部１０４Ａは、注目画素位置情報に従って修正出力値マトリクスＡ，Ｂ，Ｃの注目画素位置に対応した修正出力値（これを修正出力値Ａ，Ｂ，Ｃと記す）を選び、出力階調値に応じて修正出力値Ａ，Ｂ，Ｃ又は０のいずれかを出力する。すなわち、図５に示すように、出力階調値が０ならば（ｓｔｅｐ１１，Ｙｅｓ）０を修正出力値として出力し（ｓｔｅｐ１２）、出力階調値が８５ならば（ｓｔｅｐ１３，Ｙｅｓ）修正出力値Ａを出力し（ｓｔｅｐ１４）、出力階調値が１７０ならば（ｓｔｅｐ１５，Ｙｅｓ）修正出力値Ｂを出力し（ｓｔｅｐ１６）、以上のいずれでもなければ、つまり出力階調値が２５５ならば（ｓｔｅｐ１５，Ｎｏ）修正出力値Ｃを出力する。修正出力値マトリクスＡ，Ｂ，Ｃ中の値と注目画素位置との対応は閾値マトリクスＡ，Ｂ，Ｃの場合と同様である。
【００２７】
なお、修正出力値マトリクスＡ，Ｂ，Ｃをどのように決定するかは重要である。その設計方法について後に詳述する。
【００２８】
量子化誤差算出部１０４Ｂは、修正入力値から、修正出力値決定部１０４Ａより出力された修正出力値を減じた値を求め、その値を量子化誤差値として出力する。この量子化誤差値は量子化誤差バッファ１０５に格納される。
【００２９】
拡散誤差量算出部１０６は、量子化誤差バッファ１０５に記憶されている量子化誤差値に基づいて、次に処理すべき注目画素位置の入力階調値に加算すべき拡散誤差量を算出する手段であり、ここでは図６に示す誤差拡散マトリクスを用いた重み付け加算を行う。図５において、ｘが次の注目画素位置を意味し、その左又は上の数値は、その位置に対応した処理済み画素位置での量子化誤差値に対する重み係数値である。例えば、注目画素の１ライン真上の画素位置での量子化誤差値が３２であった場合、誤差マトリクス中のその画素位置に対応する重み係数値は４／３２であるから、その画素位置から注目画素位置への拡散誤差量は両者の積である４となる。このようにして、１つの注目画素位置に対して２ライン上の７画素、１ライン上の７画素、同一ラインの３画素の計１７画素における量子化誤差値を量子化誤差バッファ１０５から読み出し、それに対応した重み係数値を用いた重み付け加算（積和演算）を行うことで、次の注目画素位置の入力階調値に加算すべき拡散誤差量を求める。この拡散誤差量は修正入力値算出部１０２へ与えられ、注目画素位置の入力階調値と加算されることによって修正入力値が求められることは上に述べた通りである。
【００３０】
図６に示した誤差拡散マトリクスは、全ての要素（重み係数値）の合計が１となるように設計されている。これは、発生した量子化誤差値を過不足なく周囲の画素へ拡散させるためである。
【００３１】
ここで、拡散誤差量算出部１０６において、図７に示すような誤差拡散マトリクスを利用してもよい。図７の誤差拡散マトリクスは、図６の誤差拡散マトリクス中の各重み係数値を３２倍したものである。図７の誤差拡散マトリクス中の重み係数値は０、１又は２のべき乗であるので、重み係数値と量子化誤差値との乗算を高速なシフト演算や整数演算で行うことができる。そして、重み係数値と量子化誤差値との積和演算値を最終的に３２で除することなるが、これもシフト演算によって高速に行うことができる。
【００３２】
以上説明した本発明に係る画像処理装置によれば、プリンタ等の出力媒体の記録特性に合う高品質な出力画像データを得ることができる。すなわち、閾値マトリクスと修正出力値マトリクスを適切に設計するならば、プリンタ等の出力媒体で出力画像データを表現した画像に、入力画像に対し明度（又は濃度もしくは反射率）に関してリニアな特性を持たせることができる。
【００３３】
なお、本実施形態に係る画像処理装置は、ＣＰＵ、メモリなどから構成される一般的なコンピュータを利用し実現することもできる。そのためのプログラム、すなわち、図１に示す各部としてコンピュータを機能させるプログラムをコンピュータのメモリにロードし、それをＣＰＵで実行させることによって、本実施形態に係る画像処理装置としてコンピュータを動作させ、上に述べたような中間調処理を行わせることができる。このようなプログラムは請求項３記載の発明に係るプログラムの一実施形態であり、また、同プログラムが記録された磁気ディスク、光ディスク、光磁気ディスク、半導体記憶素子などのコンピュータが読み取り可能な各種記録（記憶）媒体は、請求項４記載の発明に係る情報記録媒体の一実施形態である。
【００３４】
次に、図２に示した閾値マトリクス及び図４に示した修正出力値マトリクスの設計方法について説明する。その設計の方法によって、明度、濃度又は反射率リニアな入出力特性を実現できるが、ここでは明度リニアな入出力特性を実現する場合について説明する。
【００３５】
設計方法の概略手順は以下の通りである。まず、得たい出力ドットパターンを繰り返した画像を、紙などの画像記録媒体に出力して平均明度を測定して、入出力特性が明度リニアとなるよう、その出力ドットパターンを得るための入力階調値の条件を求め、画素位置毎の出力階調値に対応する修正出力値を決定する（段階１）。次に、前記出力ドットパターンで定常状態となるときの、各画素位置での修正入力値を求める（段階２）。ここで、「定常状態」とは、一定の入力階調値であるベタ画像を中間調処理した結果、安定して同じパターンが繰り返し発生している状態である。この修正入力値から、与えた出力ドットパターンとなるための閾値の範囲を求める（段階３）。
【００３６】
以下、詳細に説明する。ここでは、図８に示した７０１から７２５までの各出力ドットパターンが得たい出力ドットパターンであるとする。図８の各出力ドットパターンは、各画素の出力階調値が０、８５、１７０、２５５のいずれかである４値出力の約２１２線、４５度の網点スクリーンを表現する出力ドットパターンである。
【００３７】
ここで、出力ドットパターンの各座標を図９のように表すとする。すなわち、（ｘ，ｙ）＝（０，０）の画素位置はｐ０、（ｘ，ｙ）＝（１，０）の画素位置はｐ１、というように表す。また、ｐ０の修正出力値をｂ０、ｐ０で発生する量子化誤差値をｅ０、ｐ０での修正入力値をｆ０、入力階調値をｄと表す。ここで、入力画像はベタ画像、すなわち入力階調値ｄは画素位置によらず一定であることを前提とし、入力階調値の平均値と入力階調値ｄとは一致していることに注意されたい。また、入力階調値０のときは全画素の出力階調値が０である出力ドットパターン７０１が対応し、入力階調値２５５のときは全画素の出力階調値が２５５である出力ドットパターン７２５を対応させる。
【００３８】
最初に、図８の各出力ドットパターンを十分広く繰り返した画像を紙に出力して平均明度を測定する。ここでは、図１０に示す測定結果が得られたとする。入力階調値０に対応する出力ドットパターン７０１では平均明度９４．６、入力階調値２５５に対応する出力ドットパターン７２５では平均明度２５．８となっている。
【００３９】
次に、出力ドットパターン７０１と出力ドットパターン７０２との平均明度の差から、出力ドットパターン７０２が発生すべき入力階調値を求める。すなわち、明度リニアな入出力特性を持つためには、
入力階調値＝（パターン７０１の入力階調値）＋（パターン７０２の平均明度−パターン７０１の平均明度）÷（パターン７２５の平均明度−パターン７０１の平均明度）×｛（パターン７２５の入力階調値）−（パターン７０１の入力階調値）｝＝０＋（９３．４−９４．６）÷（２５．８−９４．６）×２５５≒４．４４７
であるときに、出力ドットパターン７０２が発生する必要がある。
【００４０】
そこで、前記入力階調値のときに出力ドットパターン７０２を発生させるための条件を考える。すると、前述のように、発生した量子化誤差値を過不足なく周囲の画素に拡散させる誤差マトリクスを利用していることから、定常状態において修正出力値の平均値と入力階調値とは等しい。
【００４１】
出力ドットパターン７０２の出力ドットパターン７０１との違いに注目すると、全画素の１／８の面積に相当するｐ５の出力値が０から８５に変わったことで、修正出力値の平均値が０から４．４４７に変化すれば良い。よって、ｐ５における出力値が８５の場合の修正出力値を、４．４４７×８＝３５．５７６を整数に丸めた値３６とする。
【００４２】
同様にして、出力ドットパターン７０１と出力ドットパターン７０４の違いから、出力ドットパターン７０４が発生すべき入力階調値を求める。
【００４３】
明度リニアな入出力特性を持つためには、入力階調値＝（パターン７０１の入力階調値）＋（パターン７０４の平均明度−パターン７０１の平均明度）÷（パターン７２５の平均明度−パターン７０１の平均明度）×｛（パターン７２５の入力階調値）−（パターン７０１の入力階調値）｝＝０＋（８７．４−９４．６）÷（２５．８−９４．６）×２５５≒２６．６８６
であるときに出力ドットパターン７０４が発生する必要がある。
【００４４】
出力ドットパターン７０１の出力ドットパターン７０１との違いに注目すると、全画素の１／８の面積に相当するｐ５の出力値が０から２５５に変わったことで、修正出力値の平均値が０から２６．６８６に変化すれば良い。よって、ｐ５における出力値が２５５の場合の修正出力値を、２６．６８６×８＝２１３．４８８を整数に丸めた値２１３とする。
【００４５】
さらに同様にして、出力ドットパターン７０４と出力ドットパターン７０５の違いから、出力ドットパターン７０５が発生すべき入力階調値を求める。
【００４６】
明度リニアな入出力特性を持つためには、入力階調値＝（パターン７０４の入力階調値）＋（パターン７０５の平均明度−パターン７０４の平均明度）÷（パターン７２５の平均明度−パターン７０１の平均明度）×｛（パターン７２５の入力階調値）−（パターン７０１の入力階調値）｝＝２６．６８６＋（８５．１−８７．４）÷（２５．８−９４．６）×２５５≒３５．２１０
であるときに出力ドットパターン７０５が発生する必要がある。
【００４７】
出力ドットパターン７０４との違いから、全画素の１／８の面積に相当するｐ４の出力値が０から８５に変わったことで、修正出力値の平均値が２６．６８６から３５．２１０に変化すれば良い。よって、ｐ４における出力値が８５の場合の修正出力値を、（３５．２１０−２６．６８６）×８＝６８．１９２を整数に丸めた値６８とする。
【００４８】
以上のようにして各出力ドットパターンに対応する入力階調値を求め、さらに画素位置毎の出力階調値に対応する修正出力値を決定する。
【００４９】
上述の方法により求めた各出力ドットパターンに対応する入力階調値を図１１に、画素位置毎の出力階調値に対応する修正出力値を図１２にそれぞれ示す。ただし、図１２を用いる場合、全ての画素位置で出力階調値を２５５としたときに修正出力値の平均が２５５とならない。そのため、全ての画素位置で出力階調値を２５５としたときに修正出力値の平均が２５５となるようするため、図１２の修正出力値マトリクスＡ（１１０１）の各要素の平均値が２５５となるように補正する。このような補正後の修正出力値マトリクスが図４に示したものである。
【００５０】
以上が段階１の説明である。
【００５１】
次に、各出力ドットパターンで定常状態となるときの、各画素位置での修正入力値を求める。
【００５２】
例えば、図８の出力ドットパターン７１１を出力したときの各画素位置での修正出力値は図１２に基づき、図１３に示す値となる。すなわち、ｐ１、ｐ４、ｐ５では２５５、ｐ０では８５、その他の位置では０を出力階調値とした修正出力値となる。
【００５３】
このときの修正出力値の平均は、
（２１４＋３１７＋４１５＋９８＋０＋０＋０＋０）÷８＝１３０．５
であることから、入力階調値１３０．５の画像に対して、定常状態では図８の出力ドットパターン７１１が繰り返して出現すると言える。
【００５４】
そうすると、図１６に示す式１が成り立つ。これは、例えば、ｐ０での修正入力値ｆ０は図１４に示すように、入力階調値と、図中で網掛けをした画素位置からの量子化誤差値に重み付けした値とを加算して求めることから、
f0＝d＋1/32×（0・e3＋1・e0＋1・e1＋2・e2＋1・e3＋1・e0＋0・e1＋1・e7＋1・e4
＋2・e5＋4・e6＋2・e7＋1・e4＋1・e5＋2・e1＋4・e2＋8・e3）
＝d＋1/32×（2・e0＋3・e1＋6・e2＋9・e3＋2・e4＋3・e5＋4・e6＋3・e7）
で表される。
【００５５】
また、ｐ０での量子化誤差値ｅ０は、修正入力値から修正出力値を減じて求めることから、
式２：ｆｎ＝ｅｎ＋ｂｎ（ただし、０≦ｎ≦７）
が成り立ち、これを式１に代入することにより図１６に示す式３が導かれる。この式３では、量子化誤差値ｅｎや修正入力値ｆｎにそれぞれ無数の解が存在して一意に求めることができない。一意の解を得るためには、条件式を加える必要がある。
【００５６】
ところで、グラデーション画像に対する階調段差の発生の抑制を図るためには、量子化誤差値の総和が入力階調値の変化によって急激に変化しないことが必要である（例えば特許文献２参照）。
【００５７】
そこで量子化誤差値の総和が０である条件、すなわち式４を加える。
式４：０＝ｅ０＋ｅ１＋ｅ２＋ｅ３＋ｅ４＋ｅ５＋ｅ６＋ｅ７
この式４を前記式３の中の行のひとつと置き換える。図１６に示した式５は、最上位の行を置き換えた例である。ここで、ｄ、ｂｎは定常状態の出力ドットパターンを与えることでいずれも既知の定数となっていることから量子化誤差値ｅｎが求まる。そして、量子化誤差値ｅｎを基に、式１もしくは式２から修正入力値ｆｎが求まる。
【００５８】
このようにして求めた、図８の出力ドットパターンに対応する修正入力値を図１５−１及び図１５−２に示す。例えば、図８の出力ドットパターン７１１を与えた場合は、図１５の１４１１に示す修正入力値となる。
【００５９】
以上は段階２である。以下は段階３の説明である。
【００６０】
ここで、図８の出力ドットパターンを得るためには、例えば、ｐ０においては、図１５の１４０１から１４１０の修正入力値に対しては出力階調値０、１４１１の修正入力値に対しては出力階調値８５、１４１２の修正入力値に対しては出力階調値１７０、１４１３から１４２５までの修正入力値に対しては出力階調値２５５を、それぞれ発生させる閾値である必要がある。
【００６１】
そこで、ｐ０で出力階調値８５を出すか否かを決定する閾値Ａは、ｐ０における１４０１から１４１０の修正入力値の最大値１４６．７より大きく、ｐ０における１４１１から１４２５の修正入力値の最小値１６４．４以下である必要がある。よって、１４６．７より大きく、１６４．４以下である数値のうち両者の平均値を整数に丸めた値１５６をｐ０における閾値Ａとする。
【００６２】
なお、条件を満たす数値がない場合、例えば、ｐ０における１４０１から１４１０の修正入力値の最大値が２００、ｐ０における１４１１から１４２５の修正入力値の最小値が１８０である場合は、両者の平均値を整数に丸めた値である１９０をｐ０における閾値Ａとする。
【００６３】
同様に出力階調値１７０を出すか否かを決定する閾値Ｂは、１４０１から１４１１の修正入力値の最大値１６４．４より大きく、１４１２から１４２５の修正入力値の最小値１８８．８以下である必要があることから１７７、出力階調値２５５を出すか否かを決定する閾値Ｃは、１４０１から１４１２の修正入力値の最大値１８８．８より大きく、１４１３から１４２５の修正入力値の最小値２０５．９以下である必要があることから１９７とする。
【００６４】
このように閾値の範囲を絞り込み、各画素位置、各出力階調値に対応する閾値を求めることにより、図２に示した閾値マトリクスを得ることができる。
【００６５】
以上、各出力ドットパターンの平均明度に基づいて閾値マトリクスや修正出力値マトリクスを作成し、入出力特性が明度リニアになるような構成を示した。しかし、本発明に基づく構成としてはこれに限らず、例えば濃度又は反射率に基づいて閾値マトリクスや修正出力値マトリクス作成し、入出力特性を濃度又は反射率リニアにすることも可能であり、かかる態様も本発明に包含されることは云うまでもない。
【００６６】
また、以上に説明した実施形態では、網点スクリーンの出力ドットパターンを与えたが、本発明に基づく構成としてはこれに限らず、例えば、万線スクリーンであっても良く、かかる態様も当然に本発明に包含される。
【００６７】
また、以上に説明した実施形態では出力階調数を４としたが、本発明に基づく構成としてはこれに限らず、２や３、もしくは１６といった出力階調数を持つ構成としてもよい。この場合でも、同様の方法で閾値マトリクスや修正出力値マトリクスを設計することができる。例えば、出力階調数を２とした場合は、図８の出力ドットパターン７０１，７０４，７０７，７１０，７１３，７１６，７１９，７２２，７２５のみに対して求めた修正入力値から閾値を決定すればよい。
【００６８】
なお、以上の説明は本発明に係る画像処理方法の実施形態の説明でもあることは明らかである。よって、本発明に係る画像処理方法についての説明は繰り返さない。
【図面の簡単な説明】
【００６９】
【図１】本発明の一実施形態に係る画像処理装置のブロック図である。
【図２】出力階調値決定部で用いられる４値量子化のための閾値マトリクスを示す図である。
【図３】出力階調値決定部における出力階調値決定アルゴリズムを示すフローチャートである。
【図４】修正出力値決定部で用いられる修正出力値マトリクスを示す図である。
【図５】修正出力値決定部における修正出力値決定アルゴリズムを示すフローチャートである。
【図６】拡散誤差量算出部で用いられる誤差拡散マトリクスを示す図である。
【図７】誤差拡散マトリクスの別の例を示す図である。
【図８】出力ドットパターンを示す図である。
【図９】出力ドットパターンの画素位置の記号表現を示す図である。
【図１０】出力ドットパターン対応の平均明度の測定結果例を示す図である。
【図１１】図１０の測定結果を基に決定された出力ドットパターン対応の入力階調値を示す図である。
【図１２】図１１の入力階調値に基づき決定された修正出力値マトリクスを示す図である。
【図１３】図８の出力ドットパターン７１１を出力したときの各画素位置での修正出力値を示す図である。
【図１４】画素位置ｐ０の修正入力値の算出の説明のための図である。
【図１５−１】図８の出力ドットパターン７０１〜７２１に対応した修正入力値を示す図である。
【図１５−２】図８の出力ドットパターン７２２〜７２５に対応した修正入力値を示す図である。
【図１６】説明のために用いられる式１，式３及び式５を示す図である。
【符号の説明】
【００７０】
１０１  画像入力部
１０２  修正入力値算出部
１０３  出力階調値決定部
１０４Ａ  修正出力値決定部
１０４Ｂ  量子化誤差算出部
１０５  量子化誤差バッファ
１０６  拡散誤差量算出部
２０１，２０２，２０３  閾値マトリクス
４０１，４０２，４０３  修正出力値マトリクス
【図１】
2008078733.tif 000003
【図２】
2008078733.tif 000004
【図３】
2008078733.tif 000005
【図４】
2008078733.tif 000006
【図５】
2008078733.tif 000007
【図６】
2008078733.tif 000008
【図７】
2008078733.tif 000009
【図８】
2008078733.tif 000010
【図９】
2008078733.tif 000011
【図１０】
2008078733.tif 000012
【図１１】
2008078733.tif 000013
【図１２】
2008078733.tif 000014
【図１３】
2008078733.tif 000015
【図１４】
2008078733.tif 000016
【図１５−１】
2008078733.tif 000017
【図１５−２】
2008078733.tif 000018
【図１６】
2008078733.tif 000019