(57)【要約】【課題】より適切な方法で多階調の量子化の処理を行う。【解決手段】多階調の量子化の処理をコンピュータに行わせるプログラムであって、量子化を行うべき画素を順次選択する画素選択処理と、ディザマトリクスノイズを量子化の処理に影響させる度合いを示すノイズ使用率と、累積誤差を量子化の処理に影響させる度合いを示す誤差使用率とを決定する処理であり、画素選択処理で順次選択される画素の濃度値に応じて、当該画素に対応するノイズ使用率及び誤差使用率を決定する使用率決定処理と、画素選択処理で順次選択される画素の濃度値に対する量子化を行う処理であり、当該画素に対応するノイズ使用率に応じてディザマトリクスノイズを使用し、かつ、当該画素に対応する誤差使用率に応じて累積誤差を使用して量子化を行う量子化実行処理とをコンピュータに実行させる。【選択図】図１
2011071882.tif 000002
【特許請求の範囲】
【請求項１】
画像中の各画素の色の濃度を示す濃度値を３段階以上の離散的な値に変換する処理である多階調の量子化の処理をコンピュータに行わせるプログラムであって、
前記量子化を行うべき画素を順次選択する画素選択処理と、
予め設定されたディザマトリクスにより指定されるノイズであるディザマトリクスノイズを前記量子化の処理に影響させる度合いを示すノイズ使用率と、周辺の画素に対する前記量子化において生じる誤差である量子化誤差を累積した累積誤差を前記量子化の処理に影響させる度合いを示す誤差使用率とを決定する処理であり、前記画素選択処理で順次選択される画素の前記濃度値に応じて、当該画素に対応する前記ノイズ使用率及び前記誤差使用率を決定する使用率決定処理と、
前記画素選択処理で順次選択される前記画素の前記濃度値に対する前記量子化を行う処理であり、当該画素に対応する前記ノイズ使用率に応じてディザマトリクスノイズを使用し、かつ、当該画素に対応する前記誤差使用率に応じて前記累積誤差を使用して前記量子化を行う量子化実行処理と
を前記コンピュータに実行させることを特徴とするプログラム。
【請求項２】
前記３段階以上の離散的な値は、最小の前記濃度値を量子化した結果に対応する値である最低量子化値と、最小の前記濃度値よりもそれぞれ所定量以上大きな値を量子化した結果に対応する値であり、前記最低量子化値よりも大きな離散的な値である２段階以上の量子化結果値とを少なくとも含み、
前記量子化実行処理は、前記２段階以上の量子化結果値のそれぞれに対応して行う処理であり、前記濃度値を量子化した結果を当該量子化結果値以上の値とすべきか否かを判定する段階毎判定処理を含み、
前記２段階以上の量子化結果値の少なくともいずれかに対応して行われる前記段階毎判定処理は、処理の対象となる前記画素に対応する前記ノイズ使用率に応じて前記ディザマトリクスノイズを使用し、かつ、当該画素に対応する前記誤差使用率に応じて前記累積誤差を使用して、前記最低量子化値と、当該量子化結果値との２階調の間での２階調の量子化の処理を行い、
前記量子化実行処理は、前記２段階以上の量子化結果値のそれぞれに対応する前記段階毎判定処理の結果に基づき、前記３段階以上の離散的な値のいずれかの値を、前記画素選択処理で順次選択される画素の濃度値に対する前記多階調の量子化の結果に決定することを特徴とすることを特徴とする請求項１に記載のプログラム。
【請求項３】
前記プログラムは、印刷装置が解釈可能な形式により画像を示す印刷可能データを形成する画像形成処理中において、前記多階調の量子化を前記コンピュータに行わせ、
前記印刷装置は、ドットサイズの異なる複数種類のインク滴を吐出することで多階調の印刷を行うインクジェットプリンタであり、
前記２段階以上の量子化結果値のそれぞれは、前記複数種類のインク滴のそれぞれのドットサイズと対応付けられており、
前記段階毎判定処理は、前記２階調の量子化の処理を行うことにより、当該段階毎判定処理に対応する前記ドットサイズのインク滴のドットを形成するか否かを判定し、
いずれの前記段階毎判定処理においても前記ドットを形成すると判定されなかった場合、前記量子化実行処理は、前記最低量子化値を、前記多階調の量子化の結果に決定し、
いずれかの前記段階毎判定処理において前記ドットを形成すると判定された場合、前記量子化実行処理は、前記ドットを形成すると判定された前記段階毎判定処理のうち、最大の前記ドットサイズに対応する前記量子化結果値を、前記多階調の量子化の結果に決定することを特徴とする請求項２に記載のプログラム。
【請求項４】
前記量子化実行処理は、より大きなドットサイズに対応する前記段階毎判定処理をより先に行い、
いずれかの前記ドットサイズに対応する前記段階毎判定処理において、当該ドットサイズのインク滴のドットを形成すると判定された場合、当該ドットサイズよりも小さな前記ドットサイズに対応する前記段階毎判定処理は、前記画素の濃度値にかかわらず、前記ドットを形成しないと判定することを特徴とする請求項３に記載のプログラム。
【請求項５】
前記プログラムは、それぞれの前記ドットサイズに対応する前記段階毎判定処理で入力値として用いる値である段階毎入力値を算出する処理であり、前記画素選択処理で順次選択される前記画素の前記濃度値に応じて、予め設定された入力値算出用データに基づき、それぞれの前記ドットサイズに対応する前記段階毎入力値を算出する入力値算出処理を更に前記コンピュータに実行させ、
前記段階毎入力値算出用データは、前記画素の濃度値に応じて単位面積あたりに形成すべきインク滴のドット数を、それぞれの前記ドットサイズ毎に定めるデータであり、
前記入力値算出処理は、前記画素選択処理で順次選択される前記画素の前記濃度値に対し、それぞれの前記ドットサイズに対応する前記段階毎入力値を、前記入力値算出用データにおいて当該ドットサイズに対して当該濃度値と対応付けられている前記ドット数に応じて算出し、
前記２階調の量子化を行う場合、それぞれの前記ドットサイズに対応する前記段階毎判定処理は、当該ドットサイズに対応する前記段階毎入力値に対し、前記２階調の量子化の処理を行うことを特徴とする請求項３又は４に記載のプログラム。
【請求項６】
前記量子化実行処理は、前記２段階以上の量子化結果値のそれぞれに対応して、当該量子化結果値に対応する前記累積誤差をそれぞれ算出する段階毎累積誤差算出処理を更に含み、
前記段階毎判定処理は、前記累積誤差として、当該段階毎判定処理と同じ前記量子化結果値に対応する前記累積誤差を使用し、
当該段階毎判定処理による処理の結果に基づき、前記段階毎累積誤差算出処理は、当該量子化結果値に対応する前記累積誤差を更新することを特徴とする請求項２から５のいずれかに記載のプログラム。
【請求項７】
画像中の各画素の色の濃度を示す濃度値を３段階以上の離散的な値に変換する処理である多階調の量子化の処理を行う画像処理装置であって、
前記量子化を行うべき画素を順次選択する画素選択処理部と、
予め設定されたディザマトリクスにより指定されるノイズであるディザマトリクスノイズを前記量子化の処理に影響させる度合いを示すノイズ使用率と、周辺の画素に対する前記量子化において生じる誤差である量子化誤差を累積した累積誤差を前記量子化の処理に影響させる度合いを示す誤差使用率とを決定する処理部であり、前記画素選択処理部により順次選択される画素の前記濃度値に応じて、当該画素に対応する前記ノイズ使用率及び前記誤差使用率を決定する使用率決定処理部と、
前記画素選択処理部により順次選択される前記画素の前記濃度値に対する前記量子化を行う処理部であり、当該画素に対応する前記ノイズ使用率に応じてディザマトリクスノイズを使用し、かつ、当該画素に対応する前記誤差使用率に応じて前記累積誤差を使用して前記量子化を行う量子化実行処理部と
を備えることを特徴とする画像処理装置。
【請求項８】
画像中の各画素の色の濃度を示す濃度値を３段階以上の離散的な値に変換する処理である多階調の量子化の処理を行う画像処理方法であって、
前記量子化を行うべき画素を順次選択する画素選択処理段階と、
予め設定されたディザマトリクスにより指定されるノイズであるディザマトリクスノイズを前記量子化の処理に影響させる度合いを示すノイズ使用率と、周辺の画素に対する前記量子化において生じる誤差である量子化誤差を累積した累積誤差を前記量子化の処理に影響させる度合いを示す誤差使用率とを決定する処理段階であり、前記画素選択処理段階において順次選択される画素の前記濃度値に応じて、当該画素に対応する前記ノイズ使用率及び前記誤差使用率を決定する使用率決定処理段階と、
前記画素選択処理段階において順次選択される前記画素の前記濃度値に対する前記量子化を行う処理段階であり、当該画素に対応する前記ノイズ使用率に応じてディザマトリクスノイズを使用し、かつ、当該画素に対応する前記誤差使用率に応じて前記累積誤差を使用して前記量子化を行う量子化実行処理段階と
を備えることを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、画像処理装置、及び画像処理方法に関する。
【背景技術】
【０００２】
プリンタで画像を出力するためには、通常、画像に対する量子化の処理が必要になる。量子化の処理とは、連続階調で表現された画像を、プリンタが表現できる階調数に変換するハーフトーン処理である。従来、量子化の処理方法として、例えば、ディザ処理や誤差拡散処理が知られている。
【０００３】
また、従来、ディザ処理と誤差拡散処理とを選択的に使用して量子化を行う方法が知られている（例えば、特許文献１、２参照。）。例えば、特許文献１に開示されている方法では、濃度範囲によってディザ処理と誤差拡散処理とを使い分けている。また、特許文献２に開示されている方法では、サイズが異なるＮ種類のドットを形成可能な印刷ヘッドを用い、ドットサイズに応じてディザ処理と誤差拡散処理とを使い分けている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２４００５４号公報
【特許文献２】特開２００８−８７３８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ディザ処理は、ディザマトリクスの値（ノイズ）を画素のデータに当てはめ、中間調のドットの有無を決定する方法であり、ディザマトリクスを原画像にパネリングして量子化を行う。そのため、マトリクス内で発生した特定の模様が繰り返し発生してしまうテクスチャの問題が生じる場合がある。また、その結果、画質の劣化が生じる場合がある。
【０００６】
尚、例えばディザ処理に特有のテクスチャの発生を防ぐためには、ディザマトリクスの値（ノイズ）を適切な値に調整することも考えられる。しかし、このような調整によりテクスチャの発生を抑えることが、多くの作業時間を要するため、実用上は困難である。
【０００７】
一方、誤差拡散処理は、画素のデータと比較する閾値が用意され、予め算出された累積誤差で補正した画素のデータの値とその閾値とを比較し、その大小によって中間調のドットの有無を決定する方法である。誤差拡散処理を用いた場合、量子化によって生じる誤差を画像全体で軽減することができるため、ディザ処理で発生するようなテクスチャは発生しない。
【０００８】
しかし、誤差拡散処理を用いる場合には、ハイライト部やシャドウ部での出力結果においてドットの配置が遅れてしまうドット遅延や、ドットが連なってしまうワームノイズや、中間調部でドット配置が部分的に市松模様とランダムな配置になるパタンノイズの問題が生じる場合がある。また、その結果、ドット遅延による画像のずれや、ワームノイズによる縞の発生等により、画質の劣化が生じる場合がある。
【０００９】
また、例えば特許文献１のようにディザ処理と誤差拡散処理とを使い分けた場合、ディザ処理から誤差拡散処理に切り替わる部分等で、量子化の処理方法の違いによる境界線が出てしまい、画質が劣化する問題等が生じるおそれがある。また、特許文献２のような方法を用いた場合、例えば、ハイライト部において誤差拡散処理を用いるため、ドットの遅延の発生による画質の劣化に繋がる問題等が生じるおそれがある。
【００１０】
そのため、従来、より適切な方法で量子化の処理を行うことが望まれている。より具体的には、例えば、テクスチャ、ドットの遅延、ワームノイズ、パタンノイズの発生等を抑制して、高画質のハーフトーン処理を実現できる量子化の処理が望まれている。
【００１１】
また、近年、求められる印刷品質の高まり等に応じて、ドットサイズの異なる複数種類のインク滴を吐出することで多階調の印刷を行うインクジェットプリンタ等が用いられる場合がある。この場合、量子化の処理においては、例えば、複数種類のドットサイズに対応して、多階調の量子化を行うことが必要となる。この場合、例えば、多階調の量子化にも適用可能な、より適切な方法で量子化の処理を行うことが望まれる。そこで、本発明は、上記の課題を解決できるプログラム、画像処理装置、及び画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本願の発明者は、鋭意研究により、ディザ処理においては、画素の濃度により、テクスチャの発生のしやすさが異なることに着目した。また、誤差拡散法においても、画素の濃度により、ドット遅延やワームノイズの発生のしやすさが異なることに着目した。そして、例えばディザ処理又は誤差拡散処理を切り替えて一方の処理を行うのではなく、ディザ処理及び誤差拡散処理の影響力を割り振るようにして量子化を行うことにより、テクスチャ、ドット遅延、及びワームノイズ等の発生を抑えつつ、適切に量子化をし得ることを見出した。
【００１３】
また、本願の発明者は、更に鋭意研究を行うことにより、この方法が、多階調の量子化を行う場合にも有効であることを見出した。本発明は、以下の構成を有する。
【００１４】
（構成１）画像中の各画素の色の濃度を示す濃度値を３段階以上の離散的な値に変換する処理である多階調の量子化の処理をコンピュータに行わせるプログラムであって、量子化を行うべき画素を順次選択する画素選択処理と、予め設定されたディザマトリクスにより指定されるノイズであるディザマトリクスノイズを量子化の処理に影響させる度合いを示すノイズ使用率と、周辺の画素に対する量子化において生じる誤差である量子化誤差を累積した累積誤差を量子化の処理に影響させる度合いを示す誤差使用率とを決定する処理であり、画素選択処理で順次選択される画素の濃度値に応じて、当該画素に対応するノイズ使用率及び誤差使用率を決定する使用率決定処理と、画素選択処理で順次選択される画素の濃度値に対する量子化を行う処理であり、当該画素に対応するノイズ使用率に応じてディザマトリクスノイズを使用し、かつ、当該画素に対応する誤差使用率に応じて累積誤差を使用して量子化を行う量子化実行処理とをコンピュータに実行させる。多階調の量子化とは、例えば、画素の濃度値に対して多値の量子化を行う多値化処理である。
【００１５】
ディザ処理及び誤差拡散処理は、良質な画質が得られる濃度範囲が異なる。そのため、これらのいずれかを単独で使用する場合、一部の濃度範囲で量子化による画質の劣化が生じるおそれがある。また、例えば濃度範囲によって単にディザ処理と誤差拡散処理とを切り替えるとすれば、処理が切り替わる部分に、境界線等が生じるおそれがある。
【００１６】
これに対し、このように構成すれば、例えば、誤差拡散処理の空間周波数特性（以下、誤差拡散特性）にディザ処理の空間周波数特性（以下、ディザ特性）の影響を与えることができる。また、これにより、例えば、誤差拡散特性にディザ特性を組み込んだ方法により、量子化を行うことができる。尚、空間周波数特性とは、例えば、画質を評価する特性の一つである、出力結果のドットのオン、オフの繰り返しパタンを周波数として捉えたときの特性である。
【００１７】
更には、このように構成した場合、例えば単にディザ処理と誤差拡散処理とを切り替える場合等と異なり、それぞれの処理が得意とする部分をより適切に活かした量子化の処理を行うことができる。そのため、このように構成すれば、例えば、量子化の処理において生じる印刷に関しての種々の問題点を適切に解消し、より適切な方法で量子化の処理を行うことができる。
【００１８】
また、このように構成した場合、多階調の量子化の処理を行う場合であっても、処理が切り替わる部分に目立つ境界線等を発生させることなく、ディザ処理及び誤差拡散処理のそれぞれの処理が得意とする部分をより適切に活かした量子化の処理を行うことができる。そのため、このように構成すれば、例えば、より適切な方法で多階調の量子化の処理を行うことが可能となる。
【００１９】
尚、画素選択処理は、例えば、画素のラインを順次選択し、選択したライン中の画素を所定の処理方向に沿って、順次選択する。この場合、画素選択処理は、処理方向を、処理するライン毎に切り替えてもよい。例えば、奇数ラインにおいては左から右へ、偶数ラインにおいては右から左へ、順次画素を選択することが考えられる。このように構成すれば、例えば、量子化の処理が双方向処理となり、誤差の拡散方向が一定ではなくなるため、ドットをより適切に分散させることができる。
【００２０】
使用率決定処理は、例えば、予め設定された計算式に従い、ノイズ使用率及び誤差使用率を決定する。この場合、例えば、式中のパラメータを適切に設定することにより、ディザ特性が支配的な領域と、誤差拡散特性が支配的な領域との切り替え部分で境界線が発生することを適切に抑えることができる。また、これにより、量子化の処理の方法の切り替えを滑らかに行うことができる。パラメータの最適値は、例えば実験等により適切に求めることができる。
【００２１】
また、このプログラムは、例えば、コンピュータに、プロセスカラー毎に、各処理を実行させる。この場合、例えば、使用するディザマトリクスを、プロセスカラー毎に変更してもよい。このように構成すれば、例えば、同じ画素に対する量子化において用いられるディザマトリクスの値を、プロセスカラー毎に異ならせることができる。また、これにより、ドットの重なりが生じることを適切に防ぐことができる。
【００２２】
ディザマトリクスノイズとしては、例えば、ブルーノイズ特性のノイズを用いることが好ましい。ブルーノイズ特性とは、例えば、空間周波数特性で表現した場合に高い周波数に偏ったノイズであり、人間の視覚では知覚されにくい特性を有している。また、ブルーノイズ特性は、誤差拡散処理の周波数特性に類似している。そのため、このようなディザマトリクスを用いることにより、ディザ特性と誤差拡散特性の切り替えをより滑らかに行いやすくなる。
【００２３】
また、このプログラムは、コンピュータに、例えば、累積誤差を算出する処理等を更に行わせてよい。例えば、このプログラムは、コンピュータに、誤差分配処理等を更に実行させてよい。誤差分配処理は、例えば、画素の量子化により生じる量子化誤差を分配する処理であり、例えば、予め設定された拡散フィルタ（拡散マトリクス）に従って、量子化誤差を、当該画素の周辺の画素に拡散させる。また、これにより、当該周辺の画素のそれぞれに対応する累積誤差の値を更新する。拡散フィルタとしては、例えば、Ｊａｒｖｉｓ，Ｊｕｄｉｃｅ＆Ｎｉｎｋｅのマトリクスを好適に用いることができる。
【００２４】
（構成２）３段階以上の離散的な値は、最小の濃度値を量子化した結果に対応する値である最低量子化値と、最小の濃度値よりもそれぞれ所定量以上大きな値を量子化した結果に対応する値であり、最低量子化値よりも大きな離散的な値である２段階以上の量子化結果値とを少なくとも含み、量子化実行処理は、２段階以上の量子化結果値のそれぞれに対応して行う処理であり、濃度値を量子化した結果を当該量子化結果値以上の値とすべきか否かを判定する段階毎判定処理を含み、２段階以上の量子化結果値の少なくともいずれかに対応して行われる段階毎判定処理は、処理の対象となる画素に対応するノイズ使用率に応じてディザマトリクスノイズを使用し、かつ、当該画素に対応する誤差使用率に応じて累積誤差を使用して、最低量子化値と、当該量子化結果値との２階調の間での２階調の量子化の処理を行い、量子化実行処理は、２段階以上の量子化結果値のそれぞれに対応する段階毎判定処理の結果に基づき、３段階以上の離散的な値のいずれかの値を、画素選択処理で順次選択される画素の濃度値に対する多階調の量子化の結果に決定する。最低量子化値とは、例えば、値０である。この場合、２段階以上の量子化結果値は、例えば、０より大きな２段階以上の離散的な値となる。
【００２５】
このように構成すれば、例えば、多階調の量子化の処理において、ディザ処理及び誤差拡散処理のそれぞれの特性を適切に活かした処理を行うことができる。また、これにより、多階調の量子化の処理を適切に行うことができる。
【００２６】
尚、濃度値を量子化した結果を当該量子化結果値以上の値とすべきか否かを判定するとは、例えば、量子化の結果を当該量子化結果値と等しくすべきか否かを判定することであってもよく、量子化の結果を、当該量子化結果値自体以外の値も含め、当該量子化結果以上の値とすべきか否かを判定することであってもよい。後者の場合、段階毎判定処理は、例えば、対応する量子化結果値自体ではなく、より大きな量子化結果値を量子化の結果とすべき場合にも、量子化の結果を当該量子化結果値以上の値とすべきと判定してよい。
【００２７】
各量子化結果値に対応する段階毎判定処理は、例えば、他の段階の量子化結果値に対応する段階毎判定処理の結果に応じて、行う処理を変更してもよい。例えば、より大きな量子化結果値（以下、上位結果値とする）に対応する段階毎判定処理が、量子化の結果を当該上位結果値以上の値とすべきと判定した場合、より小さな量子化結果値（以下、下位結果値とする）に対応する段階毎判定処理は、例えば、ディザ処理及び誤差拡散処理を用いた量子化の処理を省略してもよい。
【００２８】
この場合、量子化の結果を下位結果値よりも大きな上位結果値以上とすることが既知となっているため、下位結果値に対応する段階毎判定処理は、例えば、下位結果値についての２階調の量子化の処理を省略しつつ、量子化の結果を当該下位結果値以上の値とすべきと判定してよい。
【００２９】
また、量子化の処理は、より具体的に、例えば以下のように行うことが好ましい。量子化実行処理は、例えば、それぞれの段階毎判定処理において２階調の量子化の処理を行う場合の処理として、以下の処理を行う。
【００３０】
例えば、プログラムは、画素選択処理で順次選択される画素に対し、累積誤差による補正を行った後の濃度値である誤差補正済入力値を算出する処理であり、当該画素に対応する誤差使用率と累積誤差との積を当該画素の濃度値に加算した値を、誤差補正済入力値として算出する誤差補正済入力値算出処理と、量子化で使用する閾値としてディザマトリクスノイズを反映させた閾値であるノイズ補正済閾値を算出する処理であり、当該画素に対応するノイズ使用率とディザマトリクスノイズとの積を予め設定された初期閾値に加算した値を、ノイズ補正済閾値として算出するノイズ補正済閾値算出処理とを更にコンピュータに実行させ、量子化実行処理は、ノイズ補正済閾値と誤差補正済入力値とを比較することにより、量子化を行う。
【００３１】
このように構成した場合、誤差使用率を乗じた累積誤差を量子化の入力値である画素の濃度値に加算することにより、誤差拡散特性を影響させる度合いを適切に調節できる。また、ノイズ使用率を乗じたディザマトリクスノイズを初期閾値に加算することにより、ディザ特性を影響させる度合いを適切に調節できる。
【００３２】
そのため、このように構成すれば、例えば、入力値に応じて、誤差拡散特性及びディザ特性のそれぞれを影響させる度合いを適切に設定できる。また、これにより、入力値に応じて、それぞれの処理が得意とする部分をより適切に活かした量子化の処理を行うことができる。
【００３３】
また、例えば、量子化実行処理は、量子化の入力値である画素の濃度値と、濃度値が取り得る範囲の最大値とが等しいか否かを判定する最大値判定処理と、入力値である画素の濃度値と、濃度値が取り得る範囲の最小値とが等しいか否かを判定する最小値判定処理と、量子化の結果である量子化値を取得する量子化値取得処理とを有し、最大値判定処理において入力値と最大値とが等しいと判定された場合、量子化値取得処理は、量子化値として、濃度値が閾値よりも大きい場合に出力されるべき値を取得し、最小値判定処理において入力値と最小値とが等しいと判定された場合、量子化値取得処理は、量子化値として、濃度値が閾値よりも小さい場合に出力されるべき値を取得する。
【００３４】
例えば、入力値が最大値と等しい場合、誤差補正済入力値やノイズ補正済閾値がいずれの場合であっても、量子化の結果は、濃度値が閾値よりも大きい場合に出力されるべき出力値（例えば１）とする必要がある。また、入力値が最小値と等しい場合、誤差補正済入力値やノイズ補正済閾値がいずれの場合であっても、量子化の結果は、濃度値が閾値よりも小さい場合に出力されるべき出力値（例えば０）とする必要がある。
【００３５】
これに対し、このように構成すれば、入力値が最大値又は最小値の場合の出力値を、容易かつ適切に設定できる。また、これにより、累積誤差及びディザマトリクスノイズの両方を用いて行う量子化の処理を、より適切に行うことが可能になる。尚、濃度値が閾値よりも大きい場合、及び小さい場合のそれぞれに出力されるべき出力値とは、例えば、累積誤差及びディザマトリクスノイズの両方を０として濃度値と閾値とを比較した結果を示す出力値である。
【００３６】
また、例えば、使用率決定処理は、ノイズ使用率及び誤差使用率の決定において、画素の濃度値がハイライト部又はシャドウ部のいずれかに相当する濃度値である場合のノイズ使用率を、ハイライト部とシャドウ部との中間の中間調部に相当する濃度値である場合のノイズ使用率よりも大きな値にし、画素の濃度値がハイライト部又はシャドウ部のいずれかに相当する濃度値である場合の誤差使用率を、中間調部に相当する濃度値である場合の誤差使用率よりも小さな値にする。
【００３７】
ノイズ使用率は、例えば、ハイライト部及びシャドウ部での値が１（１００％）であり、中間調になるにつれて徐々に値が下がるように変化する。誤差使用率は、例えば、濃度範囲の両端では値が０（０％）であり、テクスチャ発生部の濃度範囲の手前で値１（１００％）となるように変化する。
【００３８】
このように構成した場合、例えば、誤差拡散特性の影響が強いとドット遅延が発生しやすいハイライト部及びシャドウ部において、ノイズ使用率を高くし、誤差使用率を低くすることとなる。これにより、例えば、ハイライト部及びシャドウ部において、ドットを分散して配置できるディザ特性の影響が大きくなるため、ドット遅延の発生を適切に抑えることができる。
【００３９】
また、誤差拡散特性の影響を大きくして中間調部での量子化の処理を行うことにより、例えば、より自然な擬似階調を得ることができる。また、例えば、テクスチャ発生部の濃度範囲において、ノイズ使用率を低く、誤差使用率を高くすることにより、ドットの配置に変化を与え、例えば、テクスチャの発生を適切に抑えることができる。
【００４０】
また、例えば、使用率決定処理は、画素の濃度値がいずれの場合にも、ノイズ使用率を、０より大きな値に予め設定された最低ノイズ使用率以上の値に設定する。
【００４１】
中間調部において、ノイズ使用率を０（０％）とし、誤差使用率を１（１００％）とすると、誤差拡散特性に特有のパタンノイズが発生するおそれがある。パタンノイズが中間調部で発生する原因は、例えば、中間調部での誤差拡散特性が非常に高周波であることからドットの配置が市松模様になりやすく、また、ディザ処理のようにドット配置パタンが一定でないことで、市松模様が部分的に発生することがあるためである。これに対し、最低ノイズ使用率を設け、ノイズ使用率が０にならないようにすることにより、例えば、中間調部において、僅かにディザ特性の影響を与えつつ、誤差拡散特性の影響を大きくすることで、ディザ処理のドット配置パタンの影響を僅かに受けるので、全体的な配置パタンが一定になりやすく、部分的な市松模様が発生しにくくなる。また、これにより、例えば、パタンノイズを適切に抑制できる。
【００４２】
また、例えば、使用率決定処理は、ハイライト部にある濃度範囲を示す基準として、予め設定された第１ハイライト基準値と、第１ハイライト基準値よりも大きな値の第２ハイライト基準値とを用い、シャドウ部にある濃度範囲を示す基準として、予め設定された第１シャドウ基準値と、第１シャドウ基準値よりも大きな値の第２シャドウ基準値とを用い、中間調部の中央にある濃度範囲を示す基準として、第２ハイライト基準値よりも大きく、かつ、第１シャドウ基準値よりも小さな第１中間調基準値と、第１中間調基準値よりも大きく、かつ、第１シャドウ基準値よりも小さな第２中間調基準値とを用い、画素の濃度値が、第１ハイライト基準値以下の場合、又は第２シャドウ基準値以上の場合、ノイズ使用率を、１に設定し、画素の濃度値が、第１中間調基準値以上、かつ第２中間調基準値以下の場合、ノイズ使用率を、最低ノイズ使用率に設定し、画素の濃度値が、第１ハイライト基準値以上、かつ第１中間調基準値以下の場合、ノイズ使用率を、最低ノイズ使用率以上、かつ１以下の値であり、画素の濃度値と第１ハイライト基準値との差に応じて１から漸減させた値に設定し、画素の濃度値が、第２中間調基準値以上、かつ第２シャドウ基準値以下の場合、ノイズ使用率を、最低ノイズ使用率以上、かつ１以下の値であり、画素の濃度値と第２中間調基準値との差に応じて最低ノイズ使用率から漸増させた値に設定し、画素の濃度値が、第２ハイライト基準値以上、かつ第１シャドウ基準値以下の場合、誤差使用率を、１に設定し、画素の濃度値が、第２ハイライト基準値以下の場合、誤差使用率を、０以上１以下の値であり、第２ハイライト基準値と濃度値との差に応じて１から漸減させた値に設定し、画素の濃度値が、第１シャドウ基準値以上の場合、誤差使用率を、０以上１以下の値であり、画素の濃度値と第１シャドウ基準値との差に応じて１から漸減させた値に設定する。
【００４３】
このように構成すれば、例えば、画素の濃度値に応じて、誤差使用率及びノイズ使用率のそれぞれを適切に設定できる。また、これにより、誤差拡散処理及びディザ処理のそれぞれの処理が得意とする部分をより適切に活かした量子化の処理を適切に行うことができる。
【００４４】
また、例えば、使用率決定処理は、ハイライト部にある濃度範囲を示す基準として、０より大きく、かつ第１ハイライト基準値以下の値の第３ハイライト基準値を更に用い、シャドウ部にある濃度範囲を示す基準として、第２シャドウ基準値以上、かつ濃度値が取り得る範囲の最大値よりも小さな値の第３シャドウ基準値を更に用い、画素の濃度値が、第３ハイライト基準値以下の場合、誤差使用率を０に設定し、画素の濃度値が、第３ハイライト基準値以上、かつ第２ハイライト基準値以下の場合、誤差使用率を、濃度値と第３ハイライト基準値との差を第２ハイライト基準値と第３ハイライト基準値との差で除した値に設定し、画素の濃度値が、第１シャドウ基準値以上、かつ第３シャドウ基準値以下の場合、誤差使用率を、第３シャドウ基準値と濃度値との差を第３シャドウ基準値と第１シャドウ基準値との差で除した値に設定し、画素の濃度値が、第３シャドウ基準値以上の場合、誤差使用率を０に設定する。このように構成すれば、例えば、誤差使用率をより適切に設定できる。
【００４５】
（構成３）プログラムは、印刷装置が解釈可能な形式により画像を示す印刷可能データを形成する画像形成処理中において、多階調の量子化をコンピュータに行わせ、印刷装置は、ドットサイズの異なる複数種類のインク滴を吐出することで多階調の印刷を行うインクジェットプリンタであり、２段階以上の量子化結果値のそれぞれは、複数種類のインク滴のそれぞれのドットサイズと対応付けられており、段階毎判定処理は、２階調の量子化の処理を行うことにより、当該段階毎判定処理に対応するドットサイズのインク滴のドットを形成するか否かを判定し、いずれの段階毎判定処理においてもドットを形成すると判定されなかった場合、量子化実行処理は、最低量子化値を、多階調の量子化の結果に決定し、いずれかの段階毎判定処理においてドットを形成すると判定された場合、量子化実行処理は、ドットを形成すると判定された段階毎判定処理のうち、最大のドットサイズに対応する量子化結果値を、多階調の量子化の結果に決定する。
【００４６】
このように構成すれば、例えば、多階調の量子化の結果に応じて、多階調の印刷を適切に行うことができる。また、これにより、高精細な印刷をより適切に行うことができる。
【００４７】
（構成４）量子化実行処理は、より大きなドットサイズに対応する段階毎判定処理をより先に行い、いずれかのドットサイズに対応する段階毎判定処理において、当該ドットサイズのインク滴のドットを形成すると判定された場合、当該ドットサイズよりも小さなドットサイズに対応する段階毎判定処理は、画素の濃度値にかかわらず、ドットを形成しないと判定する。ドットサイズに対応する段階毎判定処理とは、例えば、ドットサイズに対応する量子化結果値に対し、当該量子化結果値に更に対応する量子化実行処理である。
【００４８】
このように構成した場合、いずれかのドットサイズに対応する段階毎判定処理がドットを形成すると判定した場合、以降の段階毎判定処理で行う処理を省略又は簡略化できる。そのため、このように構成すれば、多階調の量子化をより効率的に行うことができる。
【００４９】
尚、このように構成した場合、例えば、より大きな量子化結果値に対応する段階毎判定処理から順に、処理を行うこととなる。そして、先に行われたいずれの段階毎判定処理においてもドットを形成すると判定されていない場合、段階毎判定処理は、２階調の量子化の処理を行い、量子化の結果を対応する量子化結果値とすべきか否かを判定する。そして、量子化の結果を当該量子化結果値とすべきと判定した場合、ドットを形成すると判定する。
【００５０】
また、先に行われたいずれかの段階毎判定処理において、ドットを形成すると判定された場合、段階毎判定処理は、２階調の量子化の処理を省略する。この場合、この段階毎判定処理は、先に行われた段階毎判定処理の結果に基づき、量子化の結果を、対応する量子化結果値よりも大きな量子化結果値とすべきと判定する。また、これにより、この段階毎判定処理に対応するドットサイズについては、ドットを形成しないと判定する。このように構成すれば、例えば、いずれか１の段階毎判定処理のみにドットを形成すると適切に判定させ、かつ、他の段階毎判定処理には、ドットを形成しないと適切に判定させることができる。
【００５１】
（構成５）プログラムは、それぞれのドットサイズに対応する段階毎判定処理で入力値として用いる値である段階毎入力値を算出する処理であり、画素選択処理で順次選択される画素の濃度値に応じて、予め設定された入力値算出用データに基づき、それぞれのドットサイズに対応する段階毎入力値を算出する入力値算出処理を更にコンピュータに実行させ、段階毎入力値算出用データは、画素の濃度値に応じて単位面積あたりに形成すべきインク滴のドット数を、それぞれのドットサイズ毎に定めるデータであり、入力値算出処理は、画素選択処理で順次選択される画素の濃度値に対し、それぞれのドットサイズに対応する段階毎入力値を、入力値算出用データにおいて当該ドットサイズに対して当該濃度値と対応付けられているドット数に応じて算出し、２階調の量子化を行う場合、それぞれのドットサイズに対応する段階毎判定処理は、当該ドットサイズに対応する段階毎入力値に対し、２階調の量子化の処理を行う。段階毎入力値算出用データとしては、例えば、濃度毎に出力するドットサイズの割合を示すドットサイズ決定テーブルを用いることができる。
【００５２】
このように構成すれば、画素の濃度値に合わせて、形成すべきドットサイズをより適切に設定できる。また、これにより、多階調の量子化をより適切に行い、高い品質の画像を適切に印刷できる。
【００５３】
（構成６）量子化実行処理は、２段階以上の量子化結果値のそれぞれに対応して、当該量子化結果値に対応する累積誤差をそれぞれ算出する段階毎累積誤差算出処理を更に含み、段階毎判定処理は、累積誤差として、当該段階毎判定処理と同じ量子化結果値に対応する累積誤差を使用し、当該段階毎判定処理による処理の結果に基づき、段階毎累積誤差算出処理は、当該量子化結果値に対応する累積誤差を更新する。
【００５４】
このように構成すれば、例えば、それぞれの段階毎累積誤差算出処理で行う処理において、適切な累積誤差を用いることができる。また、これにより、例えば、ディザ処理及び誤差拡散処理のそれぞれの処理が得意とする部分を活かした量子化の処理を、より適切に行うことができる。
【００５５】
（構成７）画像中の各画素の色の濃度を示す濃度値を３段階以上の離散的な値に変換する処理である多階調の量子化の処理を行う画像処理装置であって、量子化を行うべき画素を順次選択する画素選択処理部と、予め設定されたディザマトリクスにより指定されるノイズであるディザマトリクスノイズを量子化の処理に影響させる度合いを示すノイズ使用率と、周辺の画素に対する量子化において生じる誤差である量子化誤差を累積した累積誤差を量子化の処理に影響させる度合いを示す誤差使用率とを決定する処理部であり、画素選択処理部により順次選択される画素の濃度値に応じて、当該画素に対応するノイズ使用率及び誤差使用率を決定する使用率決定処理部と、画素選択処理部により順次選択される画素の濃度値に対する量子化を行う処理部であり、当該画素に対応するノイズ使用率に応じてディザマトリクスノイズを使用し、かつ、当該画素に対応する誤差使用率に応じて累積誤差を使用して量子化を行う量子化実行処理部とを備える。このように構成すれば、例えば、構成１と同様の効果を得ることができる。
【００５６】
尚、この画像処理装置は、例えば、所定のプログラムに従って動作するコンピュータであってよい。この場合、例えばコンピュータのＣＰＵが、プログラムに従って、画像処理装置の各部として動作する。
【００５７】
（構成８）画像中の各画素の色の濃度を示す濃度値を３段階以上の離散的な値に変換する処理である多階調の量子化の処理を行う画像処理方法であって、量子化を行うべき画素を順次選択する画素選択処理段階と、予め設定されたディザマトリクスにより指定されるノイズであるディザマトリクスノイズを量子化の処理に影響させる度合いを示すノイズ使用率と、周辺の画素に対する量子化において生じる誤差である量子化誤差を累積した累積誤差を量子化の処理に影響させる度合いを示す誤差使用率とを決定する処理段階であり、画素選択処理段階において順次選択される画素の濃度値に応じて、当該画素に対応するノイズ使用率及び誤差使用率を決定する使用率決定処理段階と、画素選択処理段階において順次選択される画素の濃度値に対する量子化を行う処理段階であり、当該画素に対応するノイズ使用率に応じてディザマトリクスノイズを使用し、かつ、当該画素に対応する誤差使用率に応じて累積誤差を使用して量子化を行う量子化実行処理段階とを備える。このようにすれば、例えば、構成１と同様の効果を得ることができる。
【発明の効果】
【００５８】
本発明によれば、例えば、より適切な方法で多階調の量子化の処理を行うことができる。また、これにより、例えば、ハーフトーン処理において、テクスチャ、ドットの遅延、パタンノイズの発生等を適切に抑制できる。
【図面の簡単な説明】
【００５９】
【図１】２階調の量子化の処理を行うプログラムの一例について説明する図である。図１（ａ）は、このプログラムを使用する印刷システム１０の構成の一例を示す。図１（ｂ）は、画像処理装置１２が行う量子化の処理の概要を示す図である。
【図２】量子化を行う動作の一例を示すフローチャートである。
【図３】画素選択処理Ｓ１０２について更に詳しく説明する図である。図３（ａ）は、画素を順次選択する順番の一例を示す。図３（ｂ）は、双方向処理の効果の一例を示す図である。
【図４】誤差使用率Ｒｅ、及びノイズ使用率Ｒｎと、濃度値Ｉｎ（ｘ，ｙ）とを対応付けるグラフ及び計算式の一例を示す。
【図５】誤差使用率Ｒｅを算出する処理の一例を示すフローチャートである。
【図６】ノイズ使用率Ｒｎを算出する処理の一例を示すフローチャートである。
【図７】量子化実行処理Ｓ１１０の動作の一例を示すフローチャートである。
【図８】本例において使用する拡散フィルタの一例を示す図である。図８（ａ）は、双方向処理の各方向で用いる拡散フィルタの一例を示す。図８（ｂ）は、誤差の分配の仕方の一例を示す。
【図９】誤差分配処理Ｓ１１２の動作の一例を示すフローチャートである。
【図１０】本例による印刷結果の一例を参考例による印刷結果と共に示す。図１０（ａ）は、従来公知の典型的な誤差拡散処理のみを行った場合の印刷結果の一例を示す。図１０（ｂ）は、従来公知のディザ処理のみを行った場合の印刷結果の一例を示す。図１０（ｃ）は、濃度範囲によって単にディザ処理と誤差拡散処理とを切り替えた場合の印刷結果の一例を示す。図１０（ｄ）は、本例による印刷結果の一例を示す。
【図１１】本発明の一実施形態に係る多階調の量子化の処理の第１の例を示すフローチャートである。
【図１２】入力値算出処理Ｓ６０８及び入力値閾値補正処理Ｓ６１０について更に詳しく説明する図である。図１２（ａ）は、入力値算出処理Ｓ６０８で用いるドットサイズ決定テーブルの一例を示すグラフである。図１２（ｂ）は、入力値閾値補正処理Ｓ６１０について説明する図である。
【図１３】入力値閾値補正処理Ｓ６１０における具体的な処理の一例を示すフローチャートである。
【図１４】量子化実行処理Ｓ６１２における処理の一例を示すフローチャートである。
【図１５】Ｌａｒｇｅ用量子化処理Ｓ６４２における処理の一例を示すフローチャートである。
【図１６】量子化実行処理Ｓ６１２における処理の変形例を示すフローチャートである。
【図１７】多階調の量子化の処理の第２の例を示すフローチャートである。
【図１８】算出したノイズ使用率を補正する処理の一例を示すフローチャートである。
【図１９】ノイズ使用率の補正を行う範囲の一例を示す図である。図１９（ａ）は、ドットサイズ決定テーブルの一例を示す。図１９（ｂ）は、ドットサイズ決定テーブルの他の例を示す。
【発明を実施するための形態】
【００６０】
以下、本発明に係る実施形態を、図面を参照しながら説明する。最初に、本発明に係る多階調の量子化の処理に先立ち、多階調の量子化の処理と関連する２階調の量子化の処理について、図１〜図１０を用いて説明する。
【００６１】
図１は、２階調の量子化の処理を行うプログラムの一例について説明する図である。図１（ａ）は、このプログラムを使用する印刷システム１０の構成の一例を示す。本例において、印刷システム１０は、画像処理装置１２及び印刷装置１４を備える。
【００６２】
画像処理装置１２は、例えばＲＩＰ（Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ）処理等の画像形成処理を行う装置である。画像処理装置１２は、印刷データが示す原画像を展開することにより、印刷装置１４が解釈可能な形式により画像を示す印刷可能データを形成する。
【００６３】
また、本例において、画像処理装置１２は、この画像形成処理において、少なくとも、原画像中の各画素の色の濃度を示す濃度値の量子化を行う。また、この場合、画像処理装置１２は、印刷装置１４で使用される各プロセスカラー毎に量子化を行う。これにより、画像処理装置１２は、印刷データに基づき、各プロセスカラーに対応するハーフトーン画像を形成する。
【００６４】
尚、画像処理装置１２は、例えば印刷装置１４を制御するホストＰＣであり、所定のプログラムに従って、画像処理装置として動作する。画像処理装置１２は、印刷データを、例えば他のＰＣから受け取ってよい。また、印刷データは、ユーザにより、画像処理装置１２上で作成されてもよい。
【００６５】
印刷装置１４は、例えばインクジェットプリンタであり、画像処理装置１２から受け取る印刷可能データに従い、画像の印刷を実行する。また、本例において、印刷装置１４は、ＣＭＹＫインクの各色をプロセスカラーとして使用し、カラー印刷を行う。印刷装置１４は、更に他の色のインクを用いて印刷を行ってもよい。
【００６６】
図１（ｂ）は、画像処理装置１２が行う量子化の処理の概要を示す図である。画像処理装置１２は、プロセスカラー毎に、原画像に対する量子化により、ハーフトーン画像である擬似中間調画像を形成する。この量子化は、原画像の各座標における濃度値Ｉｎ（ｘ，ｙ）を、擬似中間調画像の同じ座標における量子化値ｏｕｔ（ｘ，ｙ）に変換する処理である。
【００６７】
本例において、画像処理装置１２は、この量子化を、ディザマトリクスノイズＤ（ｉ，ｊ）、及び累積誤差Ｅ（ｘ，ｙ）の両方を用いる方法（ハイブリッド誤差拡散処理）により行う。また、画像処理装置１２は、ディザマトリクスノイズＤ（ｉ，ｊ）、及び累積誤差Ｅ（ｘ，ｙ）に関連するパラメータとして、それぞれ０以上１以下（０％〜１００％）の範囲の値に設定されるノイズ使用率Ｒｎ、及び誤差使用率Ｒｅを更に用いる。
【００６８】
ノイズ使用率Ｒｎは、ディザマトリクスノイズＤ（ｉ，ｊ）を量子化の処理に影響させる度合いを示すパラメータであり、量子化を行う画素の濃度値Ｉｎ（ｘ，ｙ）に応じて算出される。画像処理装置１２は、ディザマトリクスノイズＤ（ｉ，ｊ）をそのまま用いるのではなく、ディザマトリクスノイズＤ（ｉ，ｊ）とノイズ使用率Ｒｎとの積を用いて量子化を行う。これにより、画像処理装置１２は、各画素に対応するノイズ使用率Ｒｎに応じて、ディザマトリクスノイズＤ（ｉ，ｊ）を使用する。
【００６９】
また、誤差使用率Ｒｅは、累積誤差Ｅ（ｘ，ｙ）を量子化の処理に影響させる度合いを示すパラメータであり、量子化を行う画素の濃度値Ｉｎ（ｘ，ｙ）に応じて算出される。画像処理装置１２は、累積誤差Ｅ（ｘ，ｙ）をそのまま用いるのではなく、累積誤差Ｅ（ｘ，ｙ）と誤差使用率Ｒｅとの積を用いて、各画素の濃度値Ｉｎ（ｘ，ｙ）に対応する誤差補正済入力値Ｉｎ’（ｘ，ｙ）を算出する。そして、算出した誤差補正済入力値Ｉｎ’（ｘ，ｙ）を用いて、量子化の処理を行う。これにより、画像処理装置１２は、各画素に対応する誤差使用率Ｒｅに応じて、累積誤差Ｅ（ｘ，ｙ）を使用する。尚、量子化の処理については、後に更に詳しく説明する。
【００７０】
本例によれば、例えば、誤差拡散処理の空間周波数特性（誤差拡散特性）にディザ処理の空間周波数特性（ディザ特性）の影響を与えることができる。また、これにより、例えば、誤差拡散特性にディザ特性を組み込んだ方法により、量子化を行うことができる。また、この場合、例えば単にディザ処理と誤差拡散処理とを切り替える場合等と異なり、処理の切り替えに伴う境界線が発生すること等を適切に防ぐことができる。
【００７１】
そのため、本例によれば、例えば、それぞれの処理が得意とする部分を適切に活かした量子化の処理を行うことができる。また、これにより、例えば、量子化の処理において生じる印刷に関しての種々の問題点を適切に解消し、より適切な方法で量子化の処理を行うことができる。
【００７２】
尚、ディザマトリクスノイズＤ（ｉ，ｊ）は、例えば、予め設定されたディザマトリクスにより指定される値である。ディザマトリクスノイズＤ（ｉ，ｊ）は、例えば従来のディザ処理において使用されるディザマトリクスノイズと同一又は同様であってよい。ディザマトリクスノイズＤ（ｉ，ｊ）としては、例えば、ブルーノイズ特性のノイズを用いることが好ましい。また、画像処理装置１２は、使用するディザマトリクスを、プロセスカラー毎に変更することが好ましい。
【００７３】
累積誤差Ｅ（ｘ，ｙ）は、周辺の画素に対する量子化において生じる誤差である量子化誤差Ｑ（ｘ，ｙ）を累積した値であり、予め設定された拡散フィルタ（拡散マトリクス）を用いて算出される。また、算出された累積誤差Ｅ（ｘ，ｙ）は、例えば誤差バッファに格納される。画像処理装置１２は、累積誤差Ｅ（ｘ，ｙ）を、例えば従来の誤差拡散処理で使用される累積誤差と同一又は同様の方法により算出する。
【００７４】
図２は、量子化を行う動作の一例を示すフローチャートである。画像処理装置１２は、以下の処理を例えば、プロセスカラー毎に行う。
【００７５】
量子化を行う動作において、本例の画像処理装置１２は、先ず、原画像から、量子化を行うべき画素を選択する（画素選択処理Ｓ１０２）。そして、選択される画素の濃度値Ｉｎ（ｘ，ｙ）に応じて、その画素に対応するノイズ使用率Ｒｎ、及び誤差使用率Ｒｅを算出する。これにより、画像処理装置１２は、その画素の量子化に使用するノイズ使用率Ｒｎ、及び誤差使用率Ｒｅを決定する（使用率決定処理Ｓ１０４）。
【００７６】
続いて、画像処理装置１２は、累積誤差Ｅ（ｘ，ｙ）による補正を行った後の濃度値である誤差補正済入力値Ｉｎ’（ｘ，ｙ）を算出する（誤差補正済入力値算出処理Ｓ１０６）。この処理において、画像処理装置１２は、例えば、画素選択処理Ｓ１０２で選択された画素に対応する誤差使用率Ｒｅと、累積誤差Ｅ（ｘ，ｙ）との積を、その画素の濃度値Ｉｎ（ｘ，ｙ）に加算し、加算後の値を、誤差補正済入力値Ｉｎ’（ｘ，ｙ）として算出する。
【００７７】
また、画像処理装置１２は、更に、量子化で使用する閾値として、ディザマトリクスノイズＤ（ｉ，ｊ）を反映させた閾値であるノイズ補正済閾値Ｔｈ’を算出する（ノイズ補正済閾値算出処理Ｓ１０８）。この処理において、画像処理装置１２は、例えば、画素選択処理Ｓ１０２で選択された画素に対応するノイズ使用率Ｒｎと、ディザマトリクスノイズＤ（ｉ，ｊ）との積を、予め設定された初期閾値Ｔｈに加算し、加算後の値を、ノイズ補正済閾値Ｔｈ’として算出する。
【００７８】
そして、画像処理装置１２は、算出されたノイズ補正済閾値Ｔｈ’と、誤差補正済入力値Ｉｎ’（ｘ，ｙ）とを比較する。これにより、画像処理装置１２は、画素選択処理Ｓ１０２で選択された画素に対する量子化を実行する（量子化実行処理Ｓ１１０）。
【００７９】
続いて、画像処理装置１２は、拡散フィルタに従って、この画素の量子化により生じる量子化誤差Ｑ（ｘ，ｙ）を、周辺の画素に拡散させる（誤差分配処理Ｓ１１２）。これにより、画像処理装置１２は、周辺画素の分配先座標に対応した拡散フィルタの値に量子化誤差Ｑ（ｘ，ｙ）を積算し、周辺の画素のそれぞれに対応する累積誤差Ｅ（ｘ，ｙ）の値を更新する。
【００８０】
また、誤差分配処理Ｓ１１２の後、画像処理装置１２は、量子化を実行した画素が原画像の最終の画素であるか否かを判定する（最終画素判定処理Ｓ１１４）。そして、最終画素であると判定した場合（Ｓ１１４：Ｙｅｓ）、原画像に対する量子化の処理を終了する。また、最終画素ではないと判定した場合（Ｓ１１４：Ｎｏ）、画素選択処理Ｓ１０２へ再度進み、次の画素を選択する。これにより、画像処理装置１２は、画素選択処理Ｓ１０２において、量子化を行うべき画素を順次選択する。また、順次選択される画素に対して画素選択処理Ｓ１０２の以降の処理を行うことにより、その画素に対する量子化を実行する。
【００８１】
本例によれば、例えば、誤差使用率Ｒｅを乗じた累積誤差Ｅ（ｘ，ｙ）を濃度値Ｉｎ（ｘ，ｙ）に加算することにより、誤差拡散特性を影響させる度合いを適切に調節できる。また、ノイズ使用率Ｒｎを乗じたディザマトリクスノイズＤ（ｉ，ｊ）を初期閾値Ｔｈに加算することにより、ディザ特性を影響させる度合いを適切に調節できる。
【００８２】
これにより、例えば、入力値である濃度値Ｉｎ（ｘ，ｙ）に応じて、誤差拡散特性及びディザ特性のそれぞれを影響させる度合いを適切に設定できる。また、誤差拡散処理及びディザ処理のそれぞれが得意とする部分を適切に活かした量子化の処理を行うことができる。以下、量子化を行う動作中の各処理について、更に詳しく説明する。
【００８３】
図３は、画素選択処理Ｓ１０２について更に詳しく説明する図である。図３（ａ）は、画素を順次選択する順番の一例を示す。本例の画素選択処理Ｓ１０２において、画像処理装置１２は、例えば、画素のラインを順次選択し、選択したライン中の画素を所定の処理方向に沿って、順次選択する。また、画像処理装置１２は、更に、この処理方向を、処理するライン毎に切り替える。例えば、画像処理装置１２は、奇数ラインにおいては左から右へ、偶数ラインにおいては右から左へ、順次画素を選択する。これにより、画像処理装置１２は、量子化の処理を、双方向処理により行う。
【００８４】
図３（ｂ）は、双方向処理の効果の一例を示す図であり、処理方向を一定の一方向のみとした単方向処理を行った場合、及び双方向処理を行った場合のそれぞれについて、量子化の結果の一例を示す。双方向処理を行った場合、誤差の拡散方向が一定ではなくなるため、ドットをより適切に分散させることができる。また、その結果、例えば単方向処理により量子化を行う場合と比べ、ワームノイズの発生等をより適切に防ぐことができる。
【００８５】
図４〜６は、使用率決定処理Ｓ１０４について更に詳しく説明する図である。図４は、誤差使用率Ｒｅ、及びノイズ使用率Ｒｎと、濃度値Ｉｎ（ｘ，ｙ）（以下、入力値Ｉｎとする）とを対応付けるグラフ及び計算式の一例を示す。
【００８６】
本例において、画像処理装置１２は、最小入力値ＭｉｎＩｎである０以上、かつ最大入力値ＭａｘＩｎ以下の範囲の入力値Ｉｎに対して連続的に変化する関数に基づき、誤差使用率Ｒｅ及びノイズ使用率Ｒｎを算出する。最大入力値ＭａｘＩｎ、及び最小入力値ＭｉｎＩｎは、例えば、入力値Ｉｎとなる濃度値が取り得る範囲の最大値及び最小値である。
【００８７】
また、この関数において、画像処理装置１２は、ハイライト部にある濃度範囲を示す基準として、第３ハイライト基準値の一例であるハイライト側誤差使用率最小濃度値Ｈｅｓと、第１ハイライト基準値の一例であるハイライト側ノイズ使用率最大濃度値Ｈｎと、第２ハイライト基準値の一例であるハイライト側誤差使用率最大濃度値Ｈｅとを用いる。また、シャドウ部にある濃度範囲を示す基準として、第１シャドウ基準値の一例であるシャドウ側誤差使用率最大濃度値Ｓｅと、第２シャドウ基準値の一例であるシャドウ側ノイズ使用率最大濃度値Ｓｎと、第３シャドウ基準値の一例であるシャドウ側誤差使用率最小濃度値Ｓｅｓとを用いる。更に、中間調部の中央において初期閾値Ｔｈを挟む濃度範囲を示す基準として、ハイライト側ノイズ使用率０％濃度値Ｈｎｚ、シャドウ側ノイズ使用率０％濃度値Ｓｎｚ、第１中間調基準値Ｃ１、及び第２中間調基準値Ｃ２を用いる。
【００８８】
また、これらのパラメータは、少なくとも、Ｈｅｓ≦Ｈｎ＜Ｈｅ＜Ｓｅ＜Ｓｎ≦Ｓｅｓ、及びＨｎ＜Ｈｎｚ＜Ｓｎｚ＜Ｓｎとなるように設定される。また、本例において、これらのパラメータは、グラフに示された大小関係で、０（ＭｉｎＩｎ）＜Ｈｅｓ≦Ｈｎ＜Ｈｅ＜Ｃ１＜Ｈｎｚ＜Ｔｈ＜Ｓｎｚ＜Ｃ２＜Ｓｅ＜Ｓｎ≦Ｓｅｓ＜ＭａｘＩｎとなるように設定される。
【００８９】
そして、使用率決定処理Ｓ１０４において、画像処理装置１２は、グラフの下に示した計算式に従い、誤差使用率Ｒｅ、及びノイズ使用率Ｒｎを決定する。但し、この数式により算出されるノイズ使用率Ｒｎが、所定の最低ノイズ使用率ＲｎＭｉｎより小さくなる場合、画像処理装置１２は、ノイズ使用率Ｒｎを、最低ノイズ使用率ＲｎＭｉｎに設定する。これにより、画像処理装置１２は、画素の濃度値がいずれの場合にも、ノイズ使用率Ｒｎを、最低ノイズ使用率ＲｎＭｉｎ以上の値に設定する。
【００９０】
尚、誤差使用率Ｒｅ、及びノイズ使用率Ｒｎは、０〜１００％（値０〜１）の範囲内の値に設定される。グラフの下に示した計算式において、１００％以上となる場合には、１００％に設定される。また、０％以下となる場合には、０％に設定される。
【００９１】
また、最低ノイズ使用率ＲｎＭｉｎは、例えばパラメータ設定時の調整時等に、０より大きな値に予め設定される。最低ノイズ使用率ＲｎＭｉｎは、例えば０．１（１０％）以上の値とすることが考えられる。例えば、最低ノイズ使用率ＲｎＭｉｎは、例えば０．１〜０．２（１０〜２０％）とすることが好ましい。また、グラフから分かるように、入力値Ｉｎが第１中間調基準値Ｃ１、又は第２中間調基準値Ｃ２と等しい場合に、計算式で算出されるノイズ使用率Ｒｎは、最低ノイズ使用率ＲｎＭｉｎと等しくなる。
【００９２】
以上の方法により、例えば、入力値Ｉｎが、ハイライト側誤差使用率最大濃度値Ｈｅ以上、かつシャドウ側誤差使用率最大濃度値Ｓｅ以下の場合、画像処理装置１２は、誤差使用率Ｒｅを、１（１００％）に設定する。また、例えば、入力値Ｉｎがハイライト側誤差使用率最小濃度値Ｈｅｓ以下の場合、誤差使用率Ｒｅを０に設定する。入力値Ｉｎが、ハイライト側誤差使用率最小濃度値Ｈｅｓ以上、かつハイライト側誤差使用率最大濃度値Ｈｅ以下の場合、誤差使用率Ｒｅを、（Ｉｎ−Ｈｅｓ）／（Ｈｅ−Ｈｅｓ）で計算される値に設定する。これにより、例えば、入力値Ｉｎがハイライト側誤差使用率最大濃度値Ｈｅ以下の場合、誤差使用率Ｒｅを、０以上１（１００％）以下の値であり、ハイライト側誤差使用率最大濃度値Ｈｅと入力値Ｉｎとの差に応じて１から漸減させた値に設定する。
【００９３】
また、例えば、入力値Ｉｎが、シャドウ側誤差使用率最大濃度値Ｓｅ以上、かつシャドウ側誤差使用率最小濃度値Ｓｅｓ以下の場合、誤差使用率Ｒｅを、（Ｓｅｓ−Ｉｎ）／（Ｓｅｓ−Ｓｅ）で計算される値に設定する。入力値Ｉｎがシャドウ側誤差使用率最小濃度値Ｓｅｓ以上の場合、誤差使用率Ｒｅを０に設定する。これにより、例えば、入力値Ｉｎが、シャドウ側誤差使用率最大濃度値Ｓｅ以上の場合、誤差使用率Ｒｅを、０以上１（１００％）以下の値であり、入力値Ｉｎとシャドウ側誤差使用率最大濃度値Ｓｅとの差に応じて１から漸減させた値に設定する。
【００９４】
この場合、ハイライト部から中間調部にかけての誤差使用率Ｒｅは、入力値Ｉｎに対し、例えば、ハイライト側誤差使用率最小濃度値Ｈｅｓから徐々に増加し、ハイライト側誤差使用率最大濃度値Ｈｅにおいて最大値となる。また、シャドウ部から中間調部にかけての誤差使用率Ｒｅは、入力値Ｉｎに対し、シャドウ側誤差使用率最大濃度値Ｓｅから徐々に減少し、シャドウ側誤差使用率最小濃度値Ｓｅｓにおいて最小値となる。
【００９５】
これにより、画像処理装置１２は、例えば、入力値Ｉｎがハイライト部又はシャドウ部のいずれかに相当する濃度値である場合の誤差使用率Ｒｅを、中間調部に相当する濃度値である場合の誤差使用率Ｒｅよりも小さな値に設定する。また、この場合、誤差使用率Ｒｅは、例えば、濃度範囲の両端では値が０（０％）であり、ディザ処理に特有のテクスチャが発生する濃度範囲であるテクスチャ発生部Ｈｄ、Ｓｄの手前で値１（１００％）となるように変化する。このように構成すれば、例えば、誤差使用率Ｒｅを中間調で主に使用する構成を適切に実現できる。
【００９６】
また、例えば、入力値Ｉｎが、ハイライト側ノイズ使用率最大濃度値Ｈｎ以下の場合、又はシャドウ側ノイズ使用率最大濃度値Ｓｎ以上の場合、画像処理装置１２は、ノイズ使用率Ｒｎを、１（１００％）に設定する。また、入力値Ｉｎが、第１中間調基準値Ｃ１以上、かつ第２中間調基準値Ｃ２以下の場合、ノイズ使用率Ｒｎを、最低ノイズ使用率ＲｎＭｉｎに設定する。
【００９７】
また、例えば、入力値Ｉｎがハイライト側ノイズ使用率最大濃度値Ｈｎ以上、かつ第１中間調基準値Ｃ１以下の場合、画像処理装置１２は、ノイズ使用率Ｒｎを、最低ノイズ使用率ＲｎＭｉｎ以上、かつ１（１００％）以下の値であり、入力値Ｉｎとハイライト側ノイズ使用率最大濃度値Ｈｎとの差に応じて１から漸減させた値に設定する。更に、例えば、入力値Ｉｎが、第２中間調基準値Ｃ２以上、かつシャドウ側ノイズ使用率最大濃度値Ｓｎ以下の場合、画像処理装置１２は、ノイズ使用率Ｒｎを、最低ノイズ使用率ＲｎＭｉｎ以上、かつ１（１００％）以下の値であり、入力値Ｉｎと第２中間調基準値Ｃ２との差に応じて最低ノイズ使用率ＲｎＭｉｎから漸増させた値に設定する。
【００９８】
これにより、画像処理装置１２は、例えば、入力値Ｉｎがハイライト部又はシャドウ部のいずれかに相当する濃度値である場合のノイズ使用率Ｒｎを、中間調部に相当する濃度値である場合のノイズ使用率Ｒｎよりも大きな値に設定する。また、この場合、ノイズ使用率Ｒｎは、例えば、ハイライト部及びシャドウ部での値が１（１００％）であり、中間調になるにつれて徐々に値が下がるように変化する。
【００９９】
本例によれば、例えば、誤差拡散特性の影響が強いとドット遅延が発生しやすいハイライト部及びシャドウ部において、ノイズ使用率Ｒｎを高くし、誤差使用率Ｒｅを低くすることとなる。これにより、例えば、ハイライト部及びシャドウ部において、ドットを分散して配置できるディザ特性の影響が大きくなるため、ドット遅延の発生を適切に抑えることができる。
【０１００】
また、誤差拡散特性の影響を大きくして中間調部での量子化の処理を行うことにより、例えば、より自然な擬似階調を得ることができる。また、例えば、テクスチャ発生部となる濃度範囲において、ノイズ使用率Ｒｎを低く、誤差使用率Ｒｅを高くすることにより、ドットの配置に変化を与えることができる。また、これにより、例えば、テクスチャの発生を適切に抑えることができる。
【０１０１】
更には、例えば、最低ノイズ使用率ＲｎＭｉｎを設け、ノイズ使用率Ｒｎが０にならないようにすることにより、例えば、中間調部において、僅かにディザ特性の影響を与えつつ、誤差拡散特性の影響を大きくできる。また、これにより、例えば、パタンノイズを適切に抑制できる。
【０１０２】
また、例えば、誤差使用率Ｒｅ、及びノイズ使用率Ｒｎを算出する計算式に従ってディザ特性の影響の大きさと、誤差拡散特性の影響の大きさを徐々に変化させることにより、ディザ特性が支配的な領域と、誤差拡散特性が支配的な領域との切り替え部分で境界線が発生することを適切に抑えることができる。また、これにより、量子化の処理の方法の切り替えを滑らかに行うことができる。
【０１０３】
従って、本例によれば、例えば、画素の濃度値に応じて、誤差使用率Ｒｅ、及びノイズ使用率Ｒｎのそれぞれを適切に設定できる。また、これにより、誤差拡散処理及びディザ処理のそれぞれの処理が得意とする部分をより適切に活かした量子化の処理を適切に行うことができる。
【０１０４】
続いて、誤差使用率Ｒｅ、及びノイズ使用率Ｒｎを算出する処理について、更に詳しく説明する。図５は、誤差使用率Ｒｅを算出する処理の一例を示すフローチャートである。
【０１０５】
誤差使用率Ｒｅの算出において、画像処理装置１２は、先ず、入力値Ｉｎがハイライト側誤差使用率最大濃度値Ｈｅ以上、かつシャドウ側誤差使用率最大濃度値Ｓｅ以下の範囲にあるか否かを判定する（Ｓ２０２）。そして、この範囲にあると判定した場合（Ｓ２０２：Ｙｅｓ）、誤差使用率Ｒｅを、最大使用率である１（１００％）に設定する（Ｓ２０４）。
【０１０６】
また、この範囲にないと判定した場合（Ｓ２０２：Ｎｏ）、更に、入力値Ｉｎについて、ハイライト側誤差使用率最小濃度値Ｈｅｓよりも大きく、かつハイライト側誤差使用率最大濃度値Ｈｅよりも小さい範囲にあるか否かを判定する（Ｓ２０６）。そして、この範囲にあると判定した場合（Ｓ２０６：Ｙｅｓ）、誤差使用率Ｒｅを、Ｒｅ＝（Ｉｎ−Ｈｅｓ）／（Ｈｅ−Ｈｅｓ）で計算される値に設定する（Ｓ２０８）。
【０１０７】
また、Ｓ２０６において、入力値Ｉｎが範囲内にないと判定した場合（Ｓ２０６：Ｎｏ）、画像処理装置１２は、更に、入力値Ｉｎについて、シャドウ側誤差使用率最大濃度値Ｓｅよりも大きく、かつシャドウ側誤差使用率最小濃度値Ｓｅｓよりも小さい範囲にあるか否かを判定する（Ｓ２１０）。そして、この範囲にあると判定した場合（Ｓ２１０：Ｙｅｓ）、誤差使用率Ｒｅを、Ｒｅ＝（Ｓｅｓ−Ｉｎ）／（Ｓｅｓ−Ｓｅ）で計算される値に設定する（Ｓ２１２）。また、Ｓ２１０において、入力値Ｉｎが範囲内にないと判定した場合（Ｓ２１０：Ｎｏ）、画像処理装置１２は、誤差使用率Ｒｅを、０（０％）に設定する（Ｓ２１４）。
【０１０８】
そして、画像処理装置１２は、Ｓ２０４、Ｓ２０８、Ｓ２１２、又はＳ２１４のいずれかで設定した誤差使用率Ｒｅを、入力値Ｉｎに対応する誤差使用率Ｒｅとして採用する（Ｓ２１６）。本例によれば、誤差使用率Ｒｅを適切に算出できる。
【０１０９】
図６は、ノイズ使用率Ｒｎを算出する処理の一例を示すフローチャートである。ノイズ使用率Ｒｎの算出において、画像処理装置１２は、先ず、入力値Ｉｎが、ハイライト側ノイズ使用率最大濃度値Ｈｎより大きく、かつハイライト側ノイズ使用率０％濃度値Ｈｎｚより小さい範囲にあるか否かを判定する（Ｓ３０２）。そして、この範囲にあると判定した場合（Ｓ３０２：Ｙｅｓ）、ノイズ使用率Ｒｎを、Ｒｎ＝（Ｈｎｚ−Ｉｎ）／（Ｈｎｚ−Ｈｎ）で計算される値に設定する（Ｓ３０４）。
【０１１０】
また、この範囲にないと判定した場合（Ｓ３０２：Ｎｏ）、更に、入力値Ｉｎが、シャドウ側ノイズ使用率０％濃度値Ｓｎｚより大きく、かつシャドウ側ノイズ使用率最大濃度値Ｓｎより小さい範囲にあるか否かを判定する（Ｓ３０６）。そして、この範囲にあると判定した場合（Ｓ３０６：Ｙｅｓ）、ノイズ使用率Ｒｎを、Ｒｎ＝（Ｉｎ−Ｓｎｚ）／（Ｓｎ−Ｓｎｚ）で計算される値に設定する（Ｓ３０８）。
【０１１１】
そして、Ｓ３０４又はＳ３０８においてノイズ使用率Ｒｎを計算値に設定した後、最小の使用率である最低ノイズ使用率ＲｎＭｉｎよりも設定したノイズ使用率Ｒｎが大きいか否かを判定する（Ｓ３１０）。そして、ノイズ使用率Ｒｎが最低ノイズ使用率ＲｎＭｉｎ以下である場合（Ｓ３１０：Ｎｏ）、ノイズ使用率Ｒｎの値を、最低ノイズ使用率ＲｎＭｉｎに変更し（Ｓ３１２）Ｓ３１６へ進む。また、ノイズ使用率Ｒｎが最低ノイズ使用率ＲｎＭｉｎより大きい場合（Ｓ３１０：Ｙｅｓ）、ノイズ使用率Ｒｎの値の変更を行うことなく、Ｓ３１６へ進む。
【０１１２】
また、Ｓ３０６において、入力値Ｉｎが上記の範囲にないと判定した場合（Ｓ３０６：Ｎｏ）、画像処理装置１２は、ノイズ使用率Ｒｎを、最大の使用率である１（１００％）に設定する（Ｓ３１４）。そして、画像処理装置１２は、Ｓ３０４、Ｓ３０８、Ｓ３１２、又はＳ３１４のいずれかで設定したノイズ使用率Ｒｎを、入力値Ｉｎに対応するノイズ使用率Ｒｎとして採用する（Ｓ３１６）。本例によれば、ノイズ使用率Ｒｎを適切に算出できる。
【０１１３】
図７は、量子化実行処理Ｓ１１０の動作の一例を示すフローチャートである。本例の量子化実行処理Ｓ１１０において、画像処理装置１２は、先ず、入力値Ｉｎと最大入力値ＭａｘＩｎとが等しいか否かを判定する（最大値判定処理Ｓ４０２）。そして、等しいと判定した場合（Ｓ４０２：Ｙｅｓ）、量子化の結果を示す出力値を、１に設定する（Ｓ４０４）。この値１は、入力値Ｉｎが閾値Ｔｈよりも大きい場合に出力されるべき値の一例である。また、この出力値の設定と共に、後の誤差分配処理Ｓ１１２で使用する誤差値を、誤差補正済入力値Ｉｎ’と最大入力値ＭａｘＩｎの差であるＩｎ’−ＭａｘＩｎに設定する。
【０１１４】
また、Ｓ４０２において、入力値Ｉｎと最大入力値ＭａｘＩｎとが等しくないと判定した場合（Ｓ４０２：Ｎｏ）、画像処理装置１２は、更に、入力値Ｉｎと最小入力値ＭｉｎＩｎとが等しいか否かを判定する（最小値判定処理Ｓ４０６）。そして、等しいと判定した場合（Ｓ４０６：Ｙｅｓ）、出力値を、０に設定する（Ｓ４０８）。この値０は、入力値Ｉｎが閾値Ｔｈよりも小さい場合に出力されるべき値の一例である。また、この出力値の設定と共に、誤差値を、誤差補正済入力値Ｉｎ’に設定する。
【０１１５】
また、Ｓ４０６において、入力値Ｉｎと最小入力値ＭｉｎＩｎとが等しくないと判定した場合（Ｓ４０６：Ｎｏ）、画像処理装置１２は、誤差補正済入力値Ｉｎ’がノイズ補正済閾値Ｔｈ’よりも大きいか否かを判定する（Ｓ４１０）。そして、大きいと判定した場合（Ｓ４１０：Ｙｅｓ）、出力値を１に、誤差値を、Ｉｎ’−ＭａｘＩｎにそれぞれ設定する（Ｓ４１２）。また、Ｓ４１０において、誤差補正済入力値Ｉｎ’がノイズ補正済閾値Ｔｈ’以下であると判定した場合（Ｓ４１０：Ｎｏ）、出力値を０に、誤差値をＩｎ’にそれぞれ設定する（Ｓ４１４）。
【０１１６】
そして、画像処理装置１２は、量子化実行処理Ｓ１１０の結果となる量子化値及び誤差値として、Ｓ４０４、Ｓ４０８、Ｓ４１２、又はＳ４１４で設定した出力値及び誤差値を取得する（量子化値取得処理Ｓ４１６）。また、取得した誤差値を、後の誤差分配処理Ｓ１１２へ受け渡す。本例によれば、例えば、出力値及び誤差値を、容易かつ適切に設定できる。
【０１１７】
図８及び図９は、誤差分配処理Ｓ１１２について更に詳しく説明する図である。図８は、本例において使用する拡散フィルタの一例を示す。図８（ａ）は、双方向処理の各方向で用いる拡散フィルタの一例を示す。
【０１１８】
本例において、拡散フィルタは、例えば、Ｊａｒｖｉｓ，Ｊｕｄｉｃｅ＆Ｎｉｎｋｅのマトリクスである。また、双方向処理の各方向である主走査方向及び逆主走査方向のそれぞれについて、図示の各フィルタを使用する。また、図示したフィルタにおいて、記号＊が記入されている位置は、入力値Ｉｎの座標［０，０］（原点）である。また、各マトリクス内の数値は、周辺の画素に誤差を分配する際の分配比率である。
【０１１９】
図８（ｂ）は、誤差の分配の仕方の一例を示す。周辺の画素に誤差を分配する処理において、誤差の分配先の座標が画像幅から外れている場合、画像処理装置１２は、分配先の座標を、次のラインの先頭の座標に変更する。また、反対側の座標が範囲外となっている場合も、同様の処理を行う。また、分配先のラインが存在しない場合、画像処理装置１２は、誤差を分配しない。また、分配先の座標が処理済みの画素である場合も、誤差を分配しない。
【０１２０】
図９は、誤差分配処理Ｓ１１２の動作の一例を示すフローチャートである。誤差分配処理Ｓ１１２において、画像処理装置１２は、フローチャート中のステップＳ５０２とＳ５２６との間で、Ｙ座標を順次変化させるループを実行する。このループにおいて、画像処理装置１２は、０から拡散マトリクス高さまでの間で、Ｙの値を１ずつ増加させる。拡散マトリクス高さとは、例えば、拡散フィルタとして用いるマトリクスの行数である。
【０１２１】
また、ステップＳ５０４とＳ５２４との間で、Ｘ座標を順次変化させるループを実行する。このループにおいて、画像処理装置１２は、０から拡散マトリクス幅までの間で、Ｘの値を１ずつ増加させる。拡散マトリクス幅とは、例えば、拡散フィルタとして用いるマトリクスの列数である。
【０１２２】
そして、これらのループの中で、画像処理装置１２は、先ず、フローチャート内に示したように、分配先の座標（Ｘ’、Ｙ’）を設定する。また、拡散フィルタに従い、分配比率を設定する（Ｓ５０６）。そして、先ず、この時点で、分配比率が０より大きいか否かを判定し（Ｓ５０８）、分配比率が０以下である場合（Ｓ５０８：Ｎｏ）、誤差を分配せずに、再度Ｓ５０４へ進む。
【０１２３】
また、分配比率が０よりも大きい場合（Ｓ５０８：Ｙｅｓ）、Ｓ５１０以降の処理へ進む。この処理において、分配先の座標Ｘ’が画像幅より小さく（Ｓ５１０：Ｙｅｓ）、座標Ｘ’が０以上であり（Ｓ５１２：Ｙｅｓ）、分配先の座標Ｙ’が画像高さより小さければ（Ｓ５１４：Ｙｅｓ）、分配する誤差値（量子化誤差）を、誤差値と、分配比率との積に設定し（Ｓ５１６）、累積誤差バッファに格納されている分配誤差値に加算する（Ｓ５１８）。これにより、画像処理装置１２は、発生した量子化誤差に応じて、累積誤差を更新する。
【０１２４】
また、Ｓ５１０において、座標Ｘ’が画像幅以上である場合（Ｓ５１０：Ｎｏ）、座標Ｘ’＝Ｘ’−画像幅、座標Ｙ’＝Ｙ’＋１として（Ｓ５２０）、Ｓ５１４へ進む。Ｓ５１２において、座標Ｘ’が０よりも小さい場合（Ｓ５１２：Ｎｏ）、座標Ｘ’＝Ｘ’＋画像幅、座標Ｙ’＝Ｙ’＋１として（Ｓ５２２）、Ｓ５１４へ進む。また、Ｓ５１４において、座標Ｙ’が画像高さ以上である場合（Ｓ５１４：Ｎｏ）、誤差を分配せずに、Ｓ５０４へ進む。
【０１２５】
以上の動作により、画像処理装置１２は、累積誤差バッファに格納されている値に量子化誤差を積算し、累積誤差を算出する。本例によれば、誤差を適切に分配できる。また、これにより、累積誤差を適切に算出できる。
【０１２６】
図１０は、本例による印刷結果の一例を参考例による印刷結果と共に示す。図１０（ａ）〜（ｃ）は、図１から９を用いて説明した本例と異なる参考例による印刷結果である。図１０（ａ）は、従来公知の典型的な誤差拡散処理のみを行った場合の印刷結果の一例を示す。図１０（ｂ）は、従来公知のディザ処理のみを行った場合の印刷結果の一例を示す。
【０１２７】
典型的な誤差拡散処理のみを行う場合、例えば、ハイライト部やシャドウ部では、ドットの遅延等の問題が発生する。また、ディザ処理のみを行う場合、例えば、ディザ処理に特有のテクスチャ等の問題が発生する。
【０１２８】
図１０（ｃ）は、濃度範囲によって単にディザ処理と誤差拡散処理とを切り替えた場合の印刷結果の一例を示す。この例においては、例えばハイライト部と中間調部との間や、中間調部をシャドウ部との間において、本例のようにノイズ使用率や誤差使用率を徐々に変化させる切り替え処理を行わずに、ディザ処理と誤差拡散処理とを切り替えている。このように、適切な切り替え処理を行わずに、単にディザ処理と誤差拡散処理とを切り替える場合、切り替えにより境界線が発生する等の問題が生じる。
【０１２９】
図１０（ｄ）は、本例による印刷結果の一例を示す。図から分かるように、本例によれば、例えば、ハイライト部やシャドウ部におけるドット遅延を適切に抑えることができる。また、中間調においてテクスチャが発生することや、切り替えにより境界線が発生する等も適切に防ぐことができる。そのため、本例によれば、量子化の処理をより適切に行うことができる。
【０１３０】
ここで、以上において説明したのと同一又は同様の量子化の処理は、多階調の量子化にも適用可能である。そこで、以下において、多階調の量子化の処理について説明する。
【０１３１】
多階調の量子化の処理とは、例えば、画像中の各画素の色の濃度を示す濃度値を３段階以上の離散的な値に変換する処理である。この３段階以上の離散的な値は、例えば、最小の濃度値を量子化した結果に対応する値である最低量子化値と、最低量子化値よりも大きな離散的な値である２段階以上の量子化結果値とを少なくとも含む。２段階以上の量子化結果値は、例えば、最小の濃度値よりもそれぞれ所定量以上大きな値を量子化した結果に対応する値である。
【０１３２】
多階調の量子化は、例えば図１（ａ）に示した構成と同一又は同様の構成により行うことができる。この場合、画像処理装置１２は、画像形成処理中において、予め設定されたプログラムに基づき、多階調の量子化の処理を行う。また、印刷装置１４は、ドットサイズの異なる複数種類のインク滴を吐出することで多階調の印刷を行う。この場合、量子化の結果のうち、最低量子化値は、ドットを形成しない状態と対応付けられる。また、各段階の量子化結果値は、それぞれのドットサイズと対応付けられる。
【０１３３】
図１１は、本発明の一実施形態に係る多階調の量子化の処理の第１の例を示すフローチャートである。印刷装置１４は、予め設定されたプログラムに従って、以下の処理を行う。
【０１３４】
尚、以下において説明する構成において、印刷装置１４は、大（Ｌａｒｇｅ）、中（Ｍｉｄｄｌｅ）、小（Ｓｍａｌｌ）の３種類のサイズのドットに対応するインク滴を吐出する。この場合、量子化の結果として取り得る値は、ドットを形成しない状態に対応する最低量子化値と、大、中、小のドットサイズにそれぞれ対応する３段階の量子化結果値とを含む合計４段階の離散的な値となる。また、この４段階の離散的な値は、例えば、２ビットの数値００、０１、１０、１１と対応付けられる。
【０１３５】
また、印刷装置１４は、例えば、インクジェットヘッドのノズルから吐出する液滴のサイズを変化させることにより、ドットサイズの異なる複数種類のインク滴を吐出する。印刷装置１４は、媒体上の１箇所へ重ねて着弾させるインク滴の数を変化させることにより、ドットサイズの異なる複数種類のインク滴を吐出してもよい。
【０１３６】
本フローチャートにおいて、画像処理装置１２は、ステップＳ６０２とＳ６１６との間で、Ｙ座標を順次変化させるループを実行する。このループにおいて、画像処理装置１２は、０から画像高さまでの間で、Ｙの値を１ずつ増加させる。また、ステップＳ６０４とＳ６１４との間で、Ｘ座標を順次変化させるループを実行する。このループにおいて、画像処理装置１２は、０から画像幅までの間で、Ｘの値を１ずつ増加させる。尚、本フローチャートにおけるこのループの実行は、図２に示したフローチャートにおいて最終画素判定処理Ｓ１１４を行うのと同一又は同様の処理である。
【０１３７】
そして、画像処理装置１２は、量子化を行うべき画素を順次選択する（画素選択処理Ｓ６０６）。このステップは、例えば、図２に示したフローチャートにおける画素選択処理Ｓ１０２と同一又は同様の処理である。画像処理装置１２は、例えば、上記のループに従い、画素のラインを順次選択し、選択したライン中の画素を所定の処理方向に沿って、順次選択する。また、画像処理装置１２は、更に、この処理方向を、処理するライン毎に切り替える。例えば、画像処理装置１２は、奇数ラインにおいては左から右へ、偶数ラインにおいては右から左へ、順次画素を選択する。これにより、画像処理装置１２は、量子化の処理を、双方向処理により行う。
【０１３８】
続いて、画像処理装置１２は、多階調の量子化の処理全体に対する入力値である画素の濃度値に基づき、以降に行う処理において各ドットサイズに対応する入力値としてそれぞれ用いる値である段階毎入力値を算出する（入力値算出処理Ｓ６０８）。この処理において、画像処理装置１２は、予め設定されたドットサイズ決定テーブルに基づき、画素選択処理Ｓ６０６で順次選択される画素の濃度値に応じて、それぞれのドットサイズに対応する段階毎入力値を算出する。
【０１３９】
尚、ドットサイズ決定テーブルについては、後に更に詳しく説明する。また、以下の説明においては、大サイズのドットサイズ（以下、Ｌａｒｇｅドットとする）に対応する段階毎入力値を、Ｌカーブ値とする。中サイズのドットサイズ（以下、Ｍｉｄｄｌｅドットとする）に対応する段階毎入力値を、Ｍカーブ値とする。小サイズのドットサイズ（以下、Ｓｍａｌｌドットとする）に対応する段階毎入力値を、Ｓカーブ値とする。
【０１４０】
また、本例の入力値算出処理Ｓ６０８において、画像処理装置１２は、更に、画素選択処理Ｓ６０６で選択される画素に対する多階調の量子化の結果となる出力値（出力ドットサイズ）の値を、ドットを形成しない状態に対応する値である０に初期化する。
【０１４１】
続いて、画像処理装置１２は、誤差補正済入力値及びノイズ補正済閾値を算出する（入力値閾値補正処理Ｓ６１０）。本例において、画像処理装置１２は、各ドットサイズに対応する段階毎入力値に対し、図２を用いて説明した使用率決定処理Ｓ１０４、誤差補正済入力値算出処理Ｓ１０６、ノイズ補正済閾値算出処理Ｓ１０８と同一又は同様の処理を行う。これにより、画像処理装置１２は、ドットサイズ毎に、それぞれ別の誤差補正済入力値及びノイズ補正済閾値を算出する。
【０１４２】
続いて、画像処理装置１２は、量子化を実行する（量子化実行処理Ｓ６１２）。本例の量子化実行処理Ｓ６１２において、画像処理装置１２は、例えば、各ドットサイズに対応する段階毎入力値、誤差補正済入力値、及びノイズ補正済閾値を用いて、ドットサイズ毎に行う処理である段階毎判定処理を行う。そして、それらの結果に基づき、多階調の量子化の結果を決定する。これにより、画像処理装置１２は、例えば、画素選択処理Ｓ６０６で順次選択される画素の濃度値に対し、当該画素に対応するノイズ使用率に応じてディザマトリクスノイズを使用し、かつ、当該画素に対応する誤差使用率に応じて累積誤差を使用して、多階調の量子化を行う。
【０１４３】
また、本例において、画像処理装置１２は、量子化実行処理Ｓ６１２の中で、誤差の分配処理を行う。画像処理装置１２は、誤差の分配処理を、例えば、量子化実行処理Ｓ６１２と分離して、別のステップにおいて実行してもよい。
【０１４４】
そして、量子化実行処理Ｓ６１２の後、画像処理装置１２は、ステップＳ６１４へ進み、次の回のループの処理を進める。本例によれば、多階調の量子化の処理を適切に行うことができる。
【０１４５】
続いて、図１１を用いて説明した各処理について、更に詳しく説明する。図１２は、入力値算出処理Ｓ６０８及び入力値閾値補正処理Ｓ６１０について更に詳しく説明する図である。図１２（ａ）は、入力値算出処理Ｓ６０８で用いるドットサイズ決定テーブルの一例を示すグラフである。
【０１４６】
ドットサイズ決定テーブルは、濃度毎に出力するドットサイズの割合を示すデータであり、例えば、ある濃度における単位面積あたりのドット数について、それぞれのドットサイズが占める割合を決定する。この場合、それぞれのドットサイズを合計した割合は、０から１００％となる。また、ドットサイズ決定テーブルは、段階毎入力値算出用データの一例である。段階毎入力値算出用データは、例えば、画素の濃度値に応じて単位面積あたりに形成すべきインク滴のドット数を、それぞれのドットサイズ毎に定めるデータである。
【０１４７】
本例において、ドットサイズ決定テーブルは、グラフに示したように、画素の濃度値に対し、Ｌａｒｇｅドット、Ｍｉｄｄｌｅドット、Ｓｍａｌｌドットのそれぞれに対応する段階毎入力値を定める。このようなドットサイズ決定テーブルに基づき、入力値算出処理Ｓ６０８において、画像処理装置１２は、画素選択処理Ｓ６０６で順次選択される画素の濃度値に対し、それぞれのドットサイズに対応する段階毎入力値を、ドットサイズ決定テーブルにおいて当該ドットサイズに対して当該濃度値と対応付けられているドット数に応じて算出する。
【０１４８】
尚、本例のドットサイズ決定テーブルにおいて、所定の濃度Ｎ１以下において、Ｍカーブ値及びＬカーブ値は、０である。また、Ｎ１よりも大きな所定の濃度Ｎ２以下において、Ｌカーブ値は、０である。
【０１４９】
Ｓカーブ値は、濃度値が０と、Ｎ１又はその近傍との間の範囲において、所定の傾きｍ１で漸増し、かつ、濃度値がそれ以上となる範囲で、ｍ１よりも小さな傾きｍ２で漸増する。Ｍカーブ値は、濃度値がＮ１と、Ｎ２又はその近傍との間の範囲において、所定の傾きｍ３で漸増し、かつ、濃度値がそれ以上となる範囲で、ｍ３よりも小さな傾きｍ４で漸増する。Ｌカーブ値は、濃度値がＮ２と、Ｎ２よりも大きな所定の濃度Ｎ３との間の範囲において、所定の傾きｍ５で漸増し、かつ、濃度値がそれ以上となる範囲で、ｍ５よりも大きな傾きｍ６で漸増する。
【０１５０】
また、Ｓカーブ値と、Ｍカーブ値は、Ｎ１とＮ２との間の濃度値Ｃ１において交わる。Ｓカーブ値と、Ｌカーブ値は、Ｎ３よりも大きな濃度値Ｃ２において交わる。また、Ｍカーブ値と、Ｌカーブ値は、Ｃ２よりも大きな濃度値Ｃ３において交わる。その結果、濃度値がＣ１未満の範囲では、Ｓカーブ値＞Ｍカーブ値＞Ｌカーブ値となる。濃度値がＣ１からＣ２の範囲では、Ｍカーブ値＞Ｓカーブ値＞Ｌカーブ値となる。濃度値がＣ２からＣ３の範囲では、Ｍカーブ値＞Ｌカーブ値＞Ｓカーブ値となる。また、濃度値がＣ３を超える範囲では、Ｌカーブ値＞Ｍカーブ値＞Ｓカーブ値となる。
【０１５１】
図１２（ｂ）は、入力値閾値補正処理Ｓ６１０について説明する図であり、誤差使用率Ｒｅ、及びノイズ使用率Ｒｎと、段階毎入力値とを対応付けるグラフを示す。本例において、画像処理装置１２は、入力値算出処理Ｓ６０８において算出される段階毎入力値であるＬカーブ値、Ｍカーブ値、Ｓカーブ値のそれぞれに対し、グラフに示した関係に基づき、対応する誤差使用率Ｒｅ及びノイズ使用率Ｒｎを算出する。そして、画像処理装置１２は、算出した誤差使用率Ｒｅ及びノイズ使用率Ｒｎに基づき、各ドットサイズ毎に、誤差補正済入力値、及びノイズ補正済閾値を算出する。
【０１５２】
尚、図１２（ｂ）に示したグラフは、例えば、図４に示したグラフに対し、入力値Ｉｎの代わりに段階毎入力値を用い、図１２（ａ）に合わせて表示の向きを変えたものである。このように構成すれば、例えば、各ドットサイズに対応する誤差使用率Ｒｅ及びノイズ使用率Ｒｎを適切に算出できる。
【０１５３】
また、本例において、画像処理装置１２は、例えば、全てのドットサイズに対し、同じグラフに基づき、誤差使用率Ｒｅ及びノイズ使用率Ｒｎを算出する。この場合、グラフ中の各パラメータ（Ｈｅｓ、Ｈｎ、・・・等）としては、例えば、図４と同じパラメータを用いることができる。また、各パラメータを、ドットサイズ毎に変更してもよい。
【０１５４】
図１３は、入力値閾値補正処理Ｓ６１０におけるより具体的な処理の一例を示すフローチャートである。本例の入力値閾値補正処理Ｓ６１０において、画像処理装置１２は、先ず、例えば、入力値算出処理Ｓ６０８で算出された段階毎入力値であるＬカーブ値、Ｍカーブ値、及びＳカーブ値、及び図１２（ｂ）においてグラフに示した関係式に基づき、各ドットサイズに対応するノイズＬカーブ値、Ｍカーブ値、及びＳカーブ値使用率、及び誤差使用率を算出する（ノイズ使用率算出処理Ｓ６２０、誤差使用率算出処理Ｓ６２２）。これらの処理において、画像処理装置１２は、例えば、図６及び図５を用いて説明した処理において、入力値Ｉｎに代えてＬカーブ値、Ｍカーブ値、及びＳカーブ値のそれぞれを用いることにより、ドットサイズ毎のノイズ使用率及び誤差使用率を算出する。
【０１５５】
そして、算出した誤差使用率に基づき、Ｌカーブ値、Ｍカーブ値、及びＳカーブ値のそれぞれを補正することにより、各ドットサイズに対応する誤差補正済入力値を算出する（誤差補正済入力値算出処理Ｓ６２４）。また、算出したノイズ使用率に基づき、予め設定された閾値を補正することにより、ノイズ補正済閾値を算出する（ノイズ補正済閾値算出処理Ｓ６２６）。
【０１５６】
尚、本例の誤差補正済入力値算出処理Ｓ６２４において、画像処理装置１２は、ドットサイズ毎に用意された累積誤差を用いて、誤差補正済入力値を算出する。また、誤差補正済入力値算出処理Ｓ６２４及びノイズ補正済閾値算出処理Ｓ６２６において、画像処理装置１２は、例えば、図１（ｂ）を用いて説明した処理において、入力値Ｉｎに代えてＬカーブ値、Ｍカーブ値、及びＳカーブ値のそれぞれを用いることにより、各ドットサイズに対応する誤差補正済入力値、及びノイズ補正済閾値を算出する。これにより、画像処理装置１２は、ドットサイズ毎の誤差補正済入力値及びノイズ補正済閾値を取得し、次の量子化実行処理Ｓ６１２へ進む。
【０１５７】
図１４は、量子化実行処理Ｓ６１２における処理の一例を示すフローチャートである。本例において、画像処理装置１２は、Ｌａｒｇｅドットに対応する量子化及び誤差配分の処理であるＬａｒｇｅ用処理Ｓ６４０、Ｍｉｄｄｌｅドットに対応する量子化及び誤差配分の処理であるＭｉｄｄｌｅ用処理Ｓ６５０、及びＳｍａｌｌドットに対応する量子化及び誤差配分の処理であるＳｍａｌｌ用処理Ｓ６６０を、この順番で行う。
【０１５８】
これにより、画像処理装置１２は、各ドットサイズに対応する量子化の処理の優先順位について、ドットサイズのより大きいものに対応する処理を優先する。より具体的には、例えば、本例のように、Ｌａｒｇｅドット、Ｍｉｄｄｌｅドット、及びＳｍａｌｌドットの３種類のドットサイズが設定されている場合、画像処理装置１２は、Ｌａｒｇｅドットに対応する量子化の処理の優先度を最も高く、Ｓｍａｌｌドットに対応する量子化の処理の優先度を最も低く設定して、多階調の量子化の処理を行う。
【０１５９】
続いて、Ｌａｒｇｅ用量子化処理Ｓ６４２、Ｍｉｄｄｌｅ用量子化処理Ｓ６５２、及びＳｍａｌｌ用量子化処理Ｓ６６２の内容について、説明する。本例のＬａｒｇｅ用処理Ｓ６４０において、画像処理装置１２は、Ｌａｒｇｅ用量子化処理Ｓ６４２、及びＬａｒｇｅ用誤差分配処理Ｓ６４４を行う。Ｌａｒｇｅ用量子化処理Ｓ６４２は、Ｌａｒｇｅドットに対応する段階毎判定処理の一例である。Ｌａｒｇｅ用量子化処理Ｓ６４２において、画像処理装置１２は、例えば、Ｌａｒｇｅドットに対応する誤差補正済入力値及びノイズ補正済閾値を用いて、２階調の量子化の処理を行う。これにより、画像処理装置１２は、Ｌａｒｇｅドットに対応する段階毎入力値であるＬカーブ値に対し、２階調の量子化の処理を行う。また、本例において、画像処理装置１２は、Ｌａｒｇｅ用量子化処理Ｓ６４２の中で、更に、量子化により生じる誤差値の設定を行う。
【０１６０】
Ｌａｒｇｅ用誤差分配処理Ｓ６４４は、Ｌａｒｇｅドットに対応する段階毎累積誤差算出処理の一例である。Ｌａｒｇｅ用誤差分配処理Ｓ６４４において、画像処理装置１２は、例えば、Ｌａｒｇｅ用量子化処理Ｓ６４２において設定された誤差値を、Ｌａｒｇｅドットの専用の誤差として、周辺の画素へ分配する。これにより、画像処理装置１２は、Ｌａｒｇｅ用量子化処理Ｓ６４２の結果に応じて累積誤差を更新し、Ｌａｒｇｅドットに対応する新たな累積誤差を算出する。
【０１６１】
また、Ｍｉｄｄｌｅ用処理Ｓ６５０において、画像処理装置１２は、Ｌａｒｇｅ用処理Ｓ６４０と同様にして、Ｍｉｄｄｌｅ用量子化処理Ｓ６５２、及びＭｉｄｄｌｅ用誤差分配処理Ｓ６５４を行う。Ｍｉｄｄｌｅ用量子化処理Ｓ６５２、及びＭｉｄｄｌｅ用誤差分配処理Ｓ６５４は、Ｌａｒｇｅドットに対応する各パラメータの代わりにＭｉｄｄｌｅドットに対応する各パラメータを使用する以外は、Ｌａｒｇｅ用量子化処理Ｓ６４２、及びＬａｒｇｅ用誤差分配処理Ｓ６４４と、同一の処理である。また、この場合、Ｍｉｄｄｌｅ用量子化処理Ｓ６５２、及びＭｉｄｄｌｅ用誤差分配処理Ｓ６５４は、Ｍｉｄｄｌｅドットに対応する段階毎判定処理、及び段階毎累積誤差算出処理の一例となる。
【０１６２】
また、Ｓｍａｌｌ用処理Ｓ６６０において、画像処理装置１２は、Ｌａｒｇｅ用処理Ｓ６４０と同様にして、Ｓｍａｌｌ用量子化処理Ｓ６６２、及びＳｍａｌｌ用誤差分配処理Ｓ６６４を行う。Ｓｍａｌｌ用量子化処理Ｓ６６２、及びＳｍａｌｌ用誤差分配処理Ｓ６６４は、Ｌａｒｇｅドットに対応する各パラメータの代わりにＳｍａｌｌドットに対応する各パラメータを使用する以外は、Ｌａｒｇｅ用量子化処理Ｓ６４２、及びＬａｒｇｅ用誤差分配処理Ｓ６４４と、同一の処理である。また、この場合、Ｓｍａｌｌ用量子化処理Ｓ６６２、及びＳｍａｌｌ用誤差分配処理Ｓ６６４は、Ｓｍａｌｌドットに対応する段階毎判定処理、及び段階毎累積誤差算出処理の一例となる。
【０１６３】
尚、本例において、画像処理装置１２は、Ｌａｒｇｅ用誤差分配処理Ｓ６４４、Ｍｉｄｄｌｅ用誤差分配処理Ｓ６５４、Ｓｍａｌｌ用誤差分配処理Ｓ６６４のそれぞれで用いる累積誤差バッファとして、各ドットサイズ毎に別に設けた累積誤差バッファを使用する。例えば、Ｌａｒｇｅ用誤差分配処理Ｓ６４４において、画像処理装置１２は、Ｌａｒｇｅ用量子化処理Ｓ６４２で発生した誤差を、Ｌａｒｇｅドット用の累積誤差バッファに蓄積する。Ｍｉｄｄｌｅドット、及びＳｍａｌｌドットについても同様である。
【０１６４】
続いて、Ｌａｒｇｅ用量子化処理Ｓ６４２について、更に詳しく説明する。図１５は、Ｌａｒｇｅ用量子化処理Ｓ６４２における処理の一例を示すフローチャートである。本例のＬａｒｇｅ用量子化処理Ｓ６４２において、画像処理装置１２は、先ず、多階調の量子化の結果となる出力値について、ドットを形成しない場合に対応する値である０以外の値に設定されているか否かを判定する（Ｓ７０２）。そして、出力値が０以外の値に設定されている場合（Ｓ７０２：Ｙｅｓ）、出力値の変更を行わず、誤差値の設定のみを行う（Ｓ７０４）。このステップＳ７０４において、画像処理装置１２は、誤差値を、誤差補正済入力値Ｉｎ’に設定する。そして、誤差値の設定後、ステップＳ７２０へ進む。
【０１６５】
尚、本例において、Ｓ７０２で判定の対象となる出力値は、量子化実行処理Ｓ６１２（図１１参照）の前に、入力値算出処理Ｓ６０８（図１１参照）において、０に初期化される。そのため、Ｌａｒｇｅ用量子化処理Ｓ６４２、Ｍｉｄｄｌｅ用量子化処理Ｓ６５２、及びＳｍａｌｌ用量子化処理Ｓ６６２のうち、少なくとも最初に実行されるＬａｒｇｅ用量子化処理Ｓ６４２の開始時点において、出力値は０になっている。これにより、画像処理装置１２は、少なくともＬａｒｇｅ用量子化処理Ｓ６４２のステップＳ７０２において、出力値が０に設定されていると判定し、以降で説明する２階調の量子化の処理を行う。
【０１６６】
出力値が０に設定されている場合（Ｓ７０２：Ｎｏ）、画像処理装置１２は、更に、入力値Ｉｎと最大入力値ＭａｘＩｎとが等しいか否かを判定する（最大値判定処理Ｓ７０６）。そして、等しいと判定した場合（Ｓ７０６：Ｙｅｓ）、出力値を、Ｌａｒｇｅドットに対応する値に設定する（Ｓ７０８）。また、出力値の設定と共に、誤差値を、誤差補正済入力値Ｉｎ’と最大入力値ＭａｘＩｎの差であるＩｎ’−ＭａｘＩｎに設定する。そして、これらの値の設定後、ステップＳ７２０へ進む。
【０１６７】
また、Ｓ７０６において、入力値Ｉｎと最大入力値ＭａｘＩｎとが等しくないと判定した場合（Ｓ７０６：Ｎｏ）、画像処理装置１２は、更に、入力値Ｉｎと、最小入力値ＭｉｎＩｎの値である０とが等しいか否かを判定する（最小値判定処理Ｓ７１０）。そして、等しいと判定した場合（Ｓ７１０：Ｙｅｓ）、出力値を、０に設定する（Ｓ７１２）。また、出力値の設定と共に、誤差値を、誤差補正済入力値Ｉｎ’に設定する。そして、これらの値の設定後、ステップＳ７２０へ進む。
【０１６８】
また、Ｓ７１０において、入力値Ｉｎと０とが等しくないと判定した場合（Ｓ７１０：Ｎｏ）、画像処理装置１２は、誤差補正済入力値Ｉｎ’がノイズ補正済閾値Ｔｈ’よりも大きいか否かを判定する（Ｓ７１４）。そして、大きいと判定した場合（Ｓ７１４：Ｙｅｓ）、出力値を、Ｌａｒｇｅドットに対応する値に設定する。また、誤差値を、Ｉｎ’−ＭａｘＩｎに設定する（Ｓ７１６）。また、Ｓ７１４において、誤差補正済入力値Ｉｎ’がノイズ補正済閾値Ｔｈ’以下であると判定した場合（Ｓ７１４：Ｎｏ）、出力値を０に、誤差値をＩｎ’にそれぞれ設定する（Ｓ７１６）。そして、これらの値の設定後、ステップＳ７２０へ進む。
【０１６９】
以上の処理の後、画像処理装置１２は、Ｌａｒｇｅ用量子化処理Ｓ６４２の結果として、上記の処理の後に設定されている出力値と、誤差値とを取得する（Ｓ７２０）。このステップＳ７２０は、量子化値取得処理の一例である。そして、これらの値を、後の処理へ受け渡す。後の処理においては、例えばＬａｒｇｅ用誤差分配処理Ｓ６４４において、誤差値に基づき、誤差の分配を行う。本例によれば、Ｌａｒｇｅ用量子化処理Ｓ６４２を適切に行うことができる。また、Ｌａｒｇｅ用誤差分配処理Ｓ６４４において、量子化で発生した誤差の周辺画素への分配を適切に行うことができる。
【０１７０】
ここで、本例において、画像処理装置１２は、Ｍｉｄｄｌｅ用量子化処理Ｓ６５２、及びＳｍａｌｌ用量子化処理Ｓ６６２についても、図１５に示したフローチャートに従った処理を行う。例えば、Ｍｉｄｄｌｅ用量子化処理Ｓ６５２において、画像処理装置１２は、Ｌａｒｇｅドットに対応するパラメータに代えてＭｉｄｄｌｅドットに対応するパラメータを使用する以外は、上記と同様にして処理を行う。この場合、Ｍｉｄｄｌｅ用量子化処理Ｓ６５２のＳ７０８、Ｓ７１６において、画像処理装置１２は、出力値を、Ｍｉｄｄｌｅドットに対応する値に設定する。また、Ｓｍａｌｌ用量子化処理Ｓ６６２において、画像処理装置１２は、Ｌａｒｇｅドットに対応するパラメータに代えてＳｍａｌｌドットに対応するパラメータを使用する以外は上記と同様にして処理を行う。この場合、Ｓｍａｌｌ用量子化処理Ｓ６６２のＳ７０８、Ｓ７１６において、画像処理装置１２は、出力値を、Ｓｍａｌｌドットに対応する値に設定する。
【０１７１】
そして、この場合、Ｌａｒｇｅ用量子化処理Ｓ６４２以降に行われるＭｉｄｄｌｅ用量子化処理Ｓ６５２、及びＳｍａｌｌ用量子化処理Ｓ６６２においては、先に行われた処理において出力値が０以外の値に設定されているか否かに応じて、Ｓ７０２における判定の結果が変わる。また、その結果、Ｍｉｄｄｌｅ用量子化処理Ｓ６５２、及びＳｍａｌｌ用量子化処理Ｓ６６２において、画像処理装置１２は、出力値が０以外の値に設定されているか否かに応じて、行う処理を変更する。以下、この点について、更に詳しく説明する。
【０１７２】
例えば、Ｌａｒｇｅ用量子化処理Ｓ６４２の処理結果が、ドットを形成する場合に対応する結果（ドットがＯＮの状態）であり、画像処理装置１２が、出力値を、Ｌａｒｇｅドットに対応する値に設定した場合、Ｍｉｄｄｌｅ用量子化処理Ｓ６５２、及びＳｍａｌｌ用量子化処理Ｓ６６２中のステップＳ７０２において、画像処理装置１２は、出力値が０以外であると判定し、ステップＳ７０４へ進み、２階調の量子化を省略する。この場合、Ｍｉｄｄｌｅ用量子化処理Ｓ６５２、及びＳｍａｌｌ用量子化処理Ｓ６６２の処理結果は、強制的に、ドットを形成しない場合に対応する結果（ドットがＯＦＦの状態）となる。
【０１７３】
また、Ｌａｒｇｅ用量子化処理Ｓ６４２の処理結果が、ドットを形成しない場合に対応する結果（ＯＦＦ）であり、Ｌａｒｇｅ用量子化処理Ｓ６４２の後においても出力値が０のままである場合、Ｍｉｄｄｌｅ用量子化処理Ｓ６５２において、画像処理装置１２は、ステップＳ７０６以降へ進み、Ｍｉｄｄｌｅドット用の誤差補正済入力値及びノイズ補正済閾値を用い、Ｌａｒｇｅ用量子化処理Ｓ６４２と同様の処理を行う。これにより、画像処理装置１２は、ＭｉｄｄｌｅドットのＯＮ／ＯＦＦの判定を行う。
【０１７４】
そして、Ｍｉｄｄｌｅドットの量子化結果がＯＮになった場合、上記と同様にして、Ｓｍａｌｌドットの量子化結果は、強制的にＯＦＦとなる。また、Ｍｉｄｄｌｅドットの量子化結果がＯＦＦになった場合、Ｓｍａｌｌ用量子化処理Ｓ６６２において、画像処理装置１２は、ステップＳ７０６以降へ進み、Ｓｍａｌｌドット用の誤差補正済入力値及びノイズ補正済閾値を用い、Ｌａｒｇｅ用量子化処理Ｓ６４２と同様の処理を行う。これにより、画像処理装置１２は、ＳｍａｌｌドットのＯＮ／ＯＦＦの判定を行う。
【０１７５】
そのため、本例においては、例えば、いずれかのドットサイズに対応する段階毎判定処理（Ｌａｒｇｅ用量子化処理Ｓ６４２、Ｍｉｄｄｌｅ用量子化処理Ｓ６５２、又はＳｍａｌｌ用量子化処理Ｓ６６２）において、その処理に対応するドットサイズのインク滴のドットを形成すると判定された場合、そのドットサイズよりも小さなドットサイズに対応する段階毎判定処理において、画像処理装置１２は、画素の濃度値にかかわらず、ドットを形成しないと判定する。そして、例えば、いずれかの段階毎判定処理においてドットを形成すると判定された場合、画像処理装置１２は、ドットを形成すると判定された段階毎判定処理のうち、最大のドットサイズに対応する量子化結果値を、量子化の結果に決定する。
【０１７６】
また、いずれの段階毎判定処理においてもドットを形成すると判定されなかった場合、画像処理装置１２は、ドットを形成しない場合に対応する値を、量子化の結果に決定する。これにより、量子化実行処理Ｓ６１２において、画像処理装置１２は、Ｌａｒｇｅ用量子化処理Ｓ６４２、Ｍｉｄｄｌｅ用量子化処理Ｓ６５２、及びＳｍａｌｌ用量子化処理Ｓ６６２の結果に基づき、各ドットサイズにそれぞれ対応する離散的な値のいずれかの値を、量子化の結果に決定し、出力値に設定する。本例によれば、多階調の量子化の処理を適切に行うことができる。
【０１７７】
尚、例えば従来の方法により多階調の量子化を行う場合、画素の濃度によって、ドットサイズが異なるインク滴のドットが混在して形成される場合がある。例えば、本例のように、Ｌａｒｇｅドット、Ｍｉｄｄｌｅドット、及びＳｍａｌｌドットの３種類のドットサイズを用いる場合、画素の濃度が小さい範囲では、Ｓｍａｌｌドットのみを用いて印刷が行われる。そして、濃度が大きくなると、Ｓｍａｌｌドットと、Ｍｉｄｄｌｅドットが混在して形成されることとなる。この場合、サイズの異なるドットが混ざり始める濃度において、例えば、よりサイズの大きなＭｉｄｄｌｅドットだけで見ると、ハイライト部の濃度値にあたることとなる。この場合、量子化の処理において、例えば誤差拡散処理のみを行うとすれば、ドットの遅延が発生し、画質が低下することとなる。そのため、多階調の量子化においては、サイズの異なるドットが混ざり始める部分で発生するドットの遅延についても、適切に解消することが望まれる。
【０１７８】
これに対し、本例においては、例えば、Ｌａｒｇｅ用量子化処理Ｓ６４２、Ｍｉｄｄｌｅ用量子化処理Ｓ６５２、及びＳｍａｌｌ用量子化処理Ｓ６６２のそれぞれにおいて、処理の開始時点において出力値が０であった場合、画像処理装置１２は、最低量子化値である０と、対応するドットサイズに対応する値との２階調の間での量子化の処理を行う。また、この２階調の量子化の処理において、処理の対象となる画素に対応するノイズ使用率に応じてディザマトリクスノイズを使用し、かつ、当該画素に対応する誤差使用率に応じて累積誤差を使用する。そのため、本例によれば、例えば、多階調の量子化を行う場合においても、例えば、ディザ処理及び誤差拡散処理のそれぞれの処理が得意とする部分を活かした量子化の処理を、適切に行うことができる。
【０１７９】
また、この場合、ハイライト部におけるドットの遅延の発生を適切に抑えることができるため、例えば、サイズの異なるドットが混ざり始める部分においても、ドットの遅延の発生を適切に解消できる。また、これにより、例えば、ドットサイズの変化を滑らかにできる。更には、ディザ処理と誤差拡散処理とを濃度値によって単に切り替える場合等と異なり、ディザ処理と誤差拡散処理の切り替え部分で境界線が発生することもない。そのため、本例によれば、例えば、多階調の量子化をより適切に行うことができる。これにより、例えば、画素の濃度値に合わせて、形成すべきドットサイズを適切に設定できる。また、多階調の量子化をより適切に行い、高精細な高い品質の画像を適切に印刷できる。
【０１８０】
図１６は、量子化実行処理Ｓ６１２における処理の変形例を示すフローチャートである。尚、以下に説明する点を除き、図１６において、図１４と同じ符号を付したステップは、図１４におけるステップと同一又は同様の処理を行う。
【０１８１】
本例において、画像処理装置１２は、多階調の量子化の結果を示す出力値の設定を、Ｌａｒｇｅ用量子化処理Ｓ６４２、Ｍｉｄｄｌｅ用量子化処理Ｓ６５２、Ｓｍａｌｌ用量子化処理Ｓ６６２の外部の別のステップにおいて行う。
【０１８２】
例えば、Ｌａｒｇｅ用処理Ｓ６４０において、画像処理装置１２は、Ｌａｒｇｅ用量子化処理Ｓ６４２、及びＬａｒｇｅ用誤差分配処理Ｓ６４４を行った後、Ｌａｒｇｅ用量子化処理Ｓ６４２の結果の判定を行う（量子化結果判定処理Ｓ６４６）。そして、Ｌａｒｇｅドットについての量子化結果がＯＦＦ、すなわち、誤差補正済入力値がノイズ補正済閾値以下であった場合（Ｓ６４６：Ｙｅｓ）、出力値の値を変更することなく、次のＭｉｄｄｌｅ用処理Ｓ６５０へ進む。また、Ｌａｒｇｅドットについての量子化結果がＯＮ、すなわち、誤差補正済入力値がノイズ補正済閾値より大きかった場合（Ｓ６４６：Ｎｏ）、出力値を、Ｌａｒｇｅドットに対応する値に設定し（出力値設定処理Ｓ６４８）、次のＭｉｄｄｌｅ用処理Ｓ６５０へ進む。
【０１８３】
尚、本例のＬａｒｇｅ用処理Ｓ６４０において、画像処理装置１２は、例えば、図１５を用いて説明した処理のように出力値の変更を行う代わりに、量子化結果がＯＮ又はＯＦＦのいずれであったかを示す情報を、後の処理へ受け渡す。量子化結果判定処理Ｓ６４６において、画像処理装置１２は、この情報に基づき、量子化結果を判定する。
【０１８４】
Ｍｉｄｄｌｅ用処理Ｓ６５０において、画像処理装置１２は、Ｌａｒｇｅ用処理Ｓ６４０と同様にして、Ｍｉｄｄｌｅ用量子化処理Ｓ６５２、Ｍｉｄｄｌｅ用誤差分配処理Ｓ６５４、量子化結果判定処理Ｓ６５６、及び出力値設定処理Ｓ６５８を行う。Ｍｉｄｄｌｅ用量子化処理Ｓ６５２、Ｍｉｄｄｌｅ用誤差分配処理Ｓ６５４、量子化結果判定処理Ｓ６５６、及び出力値Ｍ設定処理Ｓ６５８のそれぞれは、Ｌａｒｇｅドットに対応する各パラメータの代わりにＭｉｄｄｌｅドットに対応する各パラメータを使用する以外は、Ｌａｒｇｅ用量子化処理Ｓ６４２、Ｌａｒｇｅ用誤差分配処理Ｓ６４４、量子化結果判定処理Ｓ６４６、及び出力値設定処理Ｓ６４８のそれぞれと、同一又は同様の処理である。
【０１８５】
また、Ｓｍａｌｌ用処理Ｓ６６０において、画像処理装置１２は、Ｌａｒｇｅ用処理Ｓ６４０と同様にして、Ｓｍａｌｌ用量子化処理Ｓ６６２、Ｓｍａｌｌ用誤差分配処理Ｓ６６４、量子化結果判定処理Ｓ６６６、出力値設定処理Ｓ６６８、及び出力値０設定処理Ｓ６７０を行う。このうち、Ｓｍａｌｌ用量子化処理Ｓ６６２、Ｓｍａｌｌ用誤差分配処理Ｓ６６４、量子化結果判定処理Ｓ６６６、及び出力値設定処理Ｓ６６８のそれぞれは、Ｌａｒｇｅドットに対応する各パラメータの代わりにＳｍａｌｌドットに対応する各パラメータを使用する以外は、Ｌａｒｇｅ用量子化処理Ｓ６４２、Ｌａｒｇｅ用誤差分配処理Ｓ６４４、量子化結果判定処理Ｓ６４６、及び出力値設定処理Ｓ６４８のそれぞれと、同一又は同様の処理である。
【０１８６】
また、Ｓｍａｌｌ用処理Ｓ６６０の量子化結果判定処理Ｓ６６６において、Ｓｍａｌｌドットについての量子化結果がＯＦＦであった場合（Ｓ６６６：Ｙｅｓ）、画像処理装置１２は、出力値０設定処理Ｓ６７０に進み、出力値を、ドットを形成しない場合に対応する値である０に設定する。本例においても、多階調の量子化の処理を適切に行うことができる。
【０１８７】
図１７は、多階調の量子化の処理の第２の例を示すフローチャートであり、図１１におけるステップＳ６０４とＳ６１４との間で実行される処理の変形例を示す。尚、以下に説明する点を除き、図１７において、図１１〜図１６と同じ符号を付したステップは、図１１〜図１６におけるステップと同一又は同様の処理を行う。
【０１８８】
本例において、画像処理装置１２は、Ｓ６０４に続いて、画素選択処理Ｓ６０６及び入力値算出処理Ｓ６０８を行う。これらの処理は、例えば、図１１を用いて説明した画素選択処理Ｓ６０６及び入力値算出処理Ｓ６０８と同じ処理であってよい。また、画像処理装置１２は、例えば入力値算出処理Ｓ６０８において、図１１の処理とは異なるドットサイズ決定テーブルを用いて、Ｌカーブ値、Ｍカーブ値、Ｓカーブ値等を算出してもよい。
【０１８９】
続いて、画像処理装置１２は、Ｌａｒｇｅ用処理Ｓ６４０、Ｍｉｄｄｌｅ用処理Ｓ６５０、及びＳｍａｌｌ用処理Ｓ６６０を並列に行う。これらの処理は、各ドットサイズに対応する量子化及び誤差配分の処理である。画像処理装置１２は、これらの処理において、例えば図１４を用いて説明したＬａｒｇｅ用処理Ｓ６４０、Ｍｉｄｄｌｅ用処理Ｓ６５０、及びＳｍａｌｌ用処理Ｓ６６０と同様に、それぞれのドットサイズに対応する量子化処理と、誤差配分処理とを行う。
【０１９０】
この量子化処理において、画像処理装置１２は、例えば、図１５を用いて説明したＬａｒｇｅ用量子化処理Ｓ６４２と同様の処理を行う。但し、この場合、画像処理装置１２は、例えば、図１５におけるステップＳ７０２、Ｓ７０４を省略し、ステップＳ７０６から処理を開始する。また、Ｓ７０８、及びＳ７１６に対応する処理において、画像処理装置１２は、例えば、出力値を直接変更する代わりに、量子化処理の出力結果を示す別のパラメータに、各ドットサイズに対応する値を設定する。
【０１９１】
尚、本例において、各ドットサイズに対応する値とは、Ｌａｒｇｅドット、Ｍｉｄｄｌｅドット、及びＳｍａｌｌドットのそれぞれに対応する値である。また、本例において、Ｌａｒｇｅドットに対応する値は、Ｍｉｄｄｌｅドットに対応する値よりも大きな値である。Ｍｉｄｄｌｅドットに対応する値は、Ｓｍａｌｌドットに対応する値よりも大きな値である。Ｓｍａｌｌドットに対応する値は、ドットを形成しない状態を示す値である０よりも大きな値である。また、Ｌａｒｇｅ用処理Ｓ６４０、Ｍｉｄｄｌｅ用処理Ｓ６５０、及びＳｍａｌｌ用処理Ｓ６６０において、画像処理装置１２は、例えば、図１４におけるＬａｒｇｅ用誤差分配処理Ｓ６４４、Ｍｉｄｄｌｅ用誤差分配処理Ｓ６５４、及びＳｍａｌｌ用誤差分配処理Ｓ６６４と同様に、誤差配分の処理を行う。
【０１９２】
これらの並列処理の後、画像処理装置１２は、次の処理を行うＳ６８２へ進み、入力値算出処理Ｓ６０８において０に初期化した出力値と、Ｌａｒｇｅ用処理Ｓ６４０中の量子化処理の出力結果とを比較する（Ｓ６８２）。そして、量子化処理の出力結果の方が出力値よりも大きい場合（Ｓ６８２：Ｙｅｓ）、出力値を、Ｌａｒｇｅドットに対応する値に設定し（Ｓ６８４）、次のステップＳ６１４へ進む。
【０１９３】
また、Ｓ６８２において、量子化処理の出力結果が出力値以下であった場合（Ｓ６８２：Ｎｏ）、画像処理装置１２は、出力値と、Ｍｉｄｄｌｅ用処理Ｓ６５０中の量子化処理の出力結果とを比較する（Ｓ６８６）。そして、量子化処理の出力結果の方が出力値よりも大きい場合（Ｓ６８６：Ｙｅｓ）、出力値を、Ｍｉｄｄｌｅドットに対応する値に設定し（Ｓ６８８）、次のステップＳ６１４へ進む。
【０１９４】
また、Ｓ６８６において、量子化処理の出力結果が出力値以下であった場合（Ｓ６８６：Ｎｏ）、画像処理装置１２は、出力値と、Ｓｍａｌｌ用処理Ｓ６５０中の量子化処理の出力結果とを比較する（Ｓ６９０）。そして、量子化処理の出力結果の方が出力値よりも大きい場合（Ｓ６９０：Ｙｅｓ）、出力値を、Ｓｍａｌｌドットに対応する値に設定し（Ｓ６９２）、次のステップＳ６１４へ進む。また、Ｓ６９０において、量子化処理の出力結果が出力値以下であった場合（Ｓ６９０：Ｎｏ）、画像処理装置１２は、出力値を初期化値である０に保ったまま、次のステップＳ６１４へ進む。
【０１９５】
このように構成した場合、画像処理装置１２は、多階調の量子化の処理のそれぞれ一部として、２階調の量子化の処理を、Ｌａｒｇｅドット用処理Ｓ６４０、Ｍｉｄｄｌｅドット用処理Ｓ６５０、及びＳｍａｌｌドット用処理Ｓ６６０のそれぞれにおいて実行する。そして、それぞれのドットサイズ毎の処理の後、それぞれの処理の出力結果に基づく比較を順次行い、ドットがＯＮの状態となったドットサイズのうち、最も大きなドットサイズに対応する値を、多階調の量子化の処理の出力値に設定する。また、全てのドットサイズに対応する処理においてドットが配置されない結果（ＯＦＦ）となった場合、出力値として、ドットを形成しない状態に対応する値０を設定する。本例においても、例えば、ディザ処理及び誤差拡散処理のそれぞれの処理が得意とする部分を活かして、多階調の量子化の処理を適切に行うことができる。
【０１９６】
以下、本発明の更なる変形例について説明する。図１８は、算出したノイズ使用率を補正する処理の一例を示すフローチャートである。画像処理装置１２は、このフローチャートの処理を、例えば、Ｌａｒｇｅドット用処理Ｓ６４０、Ｍｉｄｄｌｅドット用処理Ｓ６５０、及びＳｍａｌｌドット用処理Ｓ６６０の中で、量子化の処理の前に実行する。
【０１９７】
尚、以下に説明する処理は、例えば、図１７を用いて説明した多階調の量子化の処理に対して適用できる。また、例えば、図１１〜１６を用いて説明した多階調の量子化の処理に対して適用してもよい。
【０１９８】
ディザマトリクスノイズ及び累積誤差の両方を用いる２階調の量子化の処理（ハイブリッド誤差拡散処理）を、例えば図１７を用いて説明した処理のように、各ドットサイズ毎に行った場合、ドットサイズによって，誤差使用率及びノイズ使用率が異なり、ドットの配置に若干の相違が生じる場合がある。そして、その結果、干渉が生じ、印刷結果においてドットが玉状となる部分が生じる場合がある。
【０１９９】
これに対しては、例えば、各ドットサイズ毎のノイズ使用率の差を小さくする補正を行うことにより、玉状となる部分の発生を抑えることができる。この補正の処理は、例えば、予め設定された関係式から算出したノイズ使用率に対し、処理中のドットサイズ以外のドットサイズに対応するカーブ値に応じて、ノイズ使用率を変動させることで実行できる。
【０２００】
より具体的には、例えば、Ｌａｒｇｅドット用処理Ｓ６４０の中でノイズ使用率の補正を行う場合、画像処理装置１２は、図１８のフローチャートに示すように、先ず、図１３を用いて説明したノイズ使用率算出処理Ｓ６２０で算出したノイズ使用率に対し、ノイズ使用率が最大値であるか否かを判定する（Ｓ８０２）。そして、最大値ではない場合（Ｓ８０２：Ｎｏ）、Ｍｉｄｄｌｅドット及びＳｍａｌｌドットのそれぞれに対応する段階毎入力値であるＭカーブ値及びＳカーブ値のそれぞれについて、シャドウ側ノイズ使用率最大濃度値Ｓｎよりも大きいか否かを判定する（Ｓ８０４）。
【０２０１】
そして、いずれかのカーブ値がシャドウ側ノイズ使用率最大濃度値Ｓｎよりも大きい場合（Ｓ８０４：Ｙｅｓ）、Ｌａｒｇｅドットに対応するノイズ使用率に対し、予め設定された使用率加算値ＲｎＡｄｄを加算する。これにより、画像処理装置１２は、処理中のドットサイズ以外のカーブ値がシャドウ側ノイズ使用率最大濃度値Ｓｎよりも大きい場合、ノイズ使用率算出処理Ｓ６２０で算出したノイズ使用率を、少し大きな値に補正する（Ｓ８０６）。そして、補正後のノイズ使用率を、量子化の処理で用いる新たなノイズ使用率に決定する（Ｓ８０８）。
【０２０２】
尚、Ｓ８０２において、ノイズ使用率が最大値であると判定した場合（Ｓ８０２：Ｙｅｓ）、画像処理装置１２は、ノイズ使用率の補正を行わず、そのままのノイズ使用率を、量子化の処理で用いるノイズ使用率に決定する（Ｓ８０８）。また、Ｍｉｄｄｌｅドット用処理Ｓ６５０の中でノイズ使用率の補正を行う場合、Ｓ８０４において、画像処理装置１２は、Ｌカーブ値又はＳカーブ値のいずれかがシャドウ側ノイズ使用率最大濃度値Ｓｎよりも大きいか否かを判定する。Ｓｍａｌｌドット用処理Ｓ６６０の中でノイズ使用率の補正を行う場合、Ｓ８０４において、画像処理装置１２は、Ｌカーブ値又はＭカーブ値のいずれかがシャドウ側ノイズ使用率最大濃度値Ｓｎよりも大きいか否かを判定する。
【０２０３】
このようにした場合、例えば、処理中のドットサイズについて誤差使用率が大きく、ノイズ使用率が小さな状態であり、他のドットサイズについてはノイズ使用率が大きい場合に、処理中のドットサイズのノイズ使用率を、少し大きな値に適切の補正できる。また、少し大きな値のノイズ使用率を使用することにより、各ドットサイズに対応するノイズ使用率の差が小さくなり、均一化する。そのため、本例によれば、例えば、ドットの配置にドットサイズ毎の相違が生じることを適切に抑えることができる。また、これにより、印刷結果においてドットが玉状となる部分が生じることを適切に抑えることができる。
【０２０４】
図１９は、ノイズ使用率の補正を行う範囲の一例を、ドットサイズ決定テーブルの例と共に示す。尚、以下に説明するドットサイズ決定テーブルは、図１２を用いて説明したドットサイズ決定テーブルの変形例であり、例えば図１７を用いて説明した多階調の量子化の処理において使用できる。また、これらのドットサイズ決定テーブルは、例えば、図１１〜図１６を用いて説明した多階調の量子化の処理において使用してもよい。
【０２０５】
図１９（ａ）は、ドットサイズ決定テーブルの一例を示す。図１９（ｂ）は、ドットサイズ決定テーブルの他の例を示す。ドットサイズ決定テーブルは、例えば印刷装置の性能、画像形成処理の内容、又は求める印刷結果等に応じて、様々に変更可能である。そのため、図１７を用いて説明した多階調の量子化の処理においては、図１２（ａ）に示したドットサイズ決定テーブルに代えて、図１９（ａ）のようなドットサイズ決定テーブルを用いることもできる。
【０２０６】
この場合、例えば、図１７における入力値算出処理Ｓ６０８において、画像処理装置１２は、入力値である濃度値に応じて、Ｌａｒｇｅドットカーブが示す値を、Ｌカーブ値に設定する。また、Ｍｉｄｄｌｅドットカーブが示す値と、Ｌカーブ値とを加算した値を、Ｍカーブ値に設定する。Ｓｍａｌｌドットカーブが示す値と、Ｍカーブ値とを加算した値を、Ｓカーブ値に設定する。
【０２０７】
また、ドットサイズ決定テーブルとしては、例えば、図１９（ｂ）のようなドットサイズ決定テーブルを用いることもできる。この場合、例えば、図１７における入力値算出処理Ｓ６０８において、画像処理装置１２は、図１１における入力値算出処理Ｓ６０８と同一又は同様にして、Ｌカーブ値、Ｍカーブ値、及びＳカーブ値を算出する。
【０２０８】
以上のようにした場合も、Ｌカーブ値、Ｍカーブ値、及びＳカーブ値をそれぞれ適切に算出できる。また、これら場合、画像処理装置１２は、各図において、網掛けの四角で囲った範囲において、ノイズ使用率の補正を行う。以上のようにすれば、例えば、ノイズ使用率の補正を適切に行うことができる。また、これにより、高い品質の印刷をより適切に行うことができる。
【０２０９】
以上、本発明を実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。上記実施形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。その様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【産業上の利用可能性】
【０２１０】
本発明は、例えば、量子化をコンピュータに行わせるプログラムに好適に利用できる。
【符号の説明】
【０２１１】
１０・・・印刷システム、１２・・・画像処理装置、１４・・・印刷装置
【図１】
2011071882.tif 000003
【図２】
2011071882.tif 000004
【図３】
2011071882.tif 000005
【図４】
2011071882.tif 000006
【図５】
2011071882.tif 000007
【図６】
2011071882.tif 000008
【図７】
2011071882.tif 000009
【図８】
2011071882.tif 000010
【図９】
2011071882.tif 000011
【図１０】
2011071882.tif 000012
【図１１】
2011071882.tif 000013
【図１２】
2011071882.tif 000014
【図１３】
2011071882.tif 000015
【図１４】
2011071882.tif 000016
【図１５】
2011071882.tif 000017
【図１６】
2011071882.tif 000018
【図１７】
2011071882.tif 000019
【図１８】
2011071882.tif 000020
【図１９】
2011071882.tif 000021