JP2024019858A - 画像処理装置、画像処理方法、およびプログラム - Google Patents
画像処理装置、画像処理方法、およびプログラム Download PDFInfo
- Publication number
- JP2024019858A JP2024019858A JP2022122596A JP2022122596A JP2024019858A JP 2024019858 A JP2024019858 A JP 2024019858A JP 2022122596 A JP2022122596 A JP 2022122596A JP 2022122596 A JP2022122596 A JP 2022122596A JP 2024019858 A JP2024019858 A JP 2024019858A
- Authority
- JP
- Japan
- Prior art keywords
- value
- pixel
- usage rate
- error
- quantization
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 225
- 238000003672 processing method Methods 0.000 title claims description 12
- 238000013139 quantization Methods 0.000 claims abstract description 258
- 238000000034 method Methods 0.000 claims abstract description 207
- 230000001186 cumulative effect Effects 0.000 claims abstract description 95
- 239000011159 matrix material Substances 0.000 claims abstract description 81
- 230000008569 process Effects 0.000 claims description 170
- 238000004364 calculation method Methods 0.000 claims description 42
- 230000006870 function Effects 0.000 claims description 16
- 230000003247 decreasing effect Effects 0.000 claims description 10
- 238000012937 correction Methods 0.000 claims description 9
- 238000009499 grossing Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 abstract description 22
- 238000009792 diffusion process Methods 0.000 description 61
- 238000005516 engineering process Methods 0.000 description 9
- 230000012447 hatching Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Abstract
【課題】高周波パターンの画像であっても、量子化の処理の際に領域としての濃度を保持可能な技術を提供する。【解決手段】量子化の対象とする注目画素を含む領域に位置する各画素の画素値に応じて、前記注目画素に対応する領域値を取得し、取得した前記領域値に基づいて、二次元マトリクスを前記量子化に影響させる度合いを示す第1使用率と、前記注目画素の周辺の画素に対する前記量子化で生じる量子化誤差値の累積値である累積誤差を前記量子化に影響させる度合いを示す第2使用率とを決定する。そして、前記第1使用率に応じて前記二次元マトリクスを使用し、前記第2使用率に応じて前記理宇隻誤差を使用して前記量子化を実行する。【選択図】図4
Description
本発明は、量子化の処理を行う画像処理装置、画像処理方法、およびプログラムに関する。
プリンタにより画像を印刷するには、通常、画像に対する量子化の処理が必要となる。量子化の処理とは、連続階調で表現された画像を、プリンタが表現できる階調数に変換するハーフトーン処理である。従来、量子化の処理として、例えば、ディザ処理および誤差拡散処理が知られている。
また、従来、ディザ処理と誤差拡散処理との双方を用いて量子化を行う方法が知られている。例えば、特許文献1には、ディザマトリクスノイズ、累計誤差を量子化の処理に影響させる度合いを示すパラメータであるノイズ使用率、誤差使用率を用いて、ディザ処理および誤差拡散処理の影響を割り振るようにして量子化する技術が開示されている。
しかしながら、例えば、中間階調値のハッチングパターンのような高周波パターンの画像では、ノイズ使用率および誤差使用率が領域内でばらつく。このため、誤差拡散で処理されているにも関わらず、誤差使用率によっては誤差の伝搬の少ない、もしくは誤差伝搬されなくなり、領域として濃度が保持されない場合があった。
本発明は、上記課題に鑑みてなされたものであり、高周波パターンの画像であっても、量子化の処理の際に領域としての濃度を保持可能な技術を提供することを目的とする。
上記目的を達成するために、本発明の一実施形態は、コンピュータを、入力画像における各画素の画素値を量子化する画像処理装置として機能させるプログラムであって、前記コンピュータを、前記量子化の対象とする注目画素を選択する画素選択手段と、前記注目画素を含む対象領域に位置する各画素の画素値に応じて、前記注目画素に対応する領域値を取得する領域値取得手段と、前記領域値に基づいて、二次元マトリクスを前記量子化に影響させる度合いを示す第1使用率と、前記注目画素の周辺の画素に対する前記量子化で生じる量子化誤差値の累積値である累積誤差を前記量子化に影響させる度合いを示す第2使用率とを決定する使用率決定手段と、前記注目画素に対応する前記累積誤差と前記第2使用率とに基づいて前記注目画素の前記量子化に適用する適用誤差値を取得する適用誤差値取得手段と、前記適用誤差値と前記注目画素の画素値とに基づいて累積画素値を取得する累積画素値取得手段と、前記二次元マトリクスと前記第1使用率とに基づいて前記注目画素の前記量子化に適用する量子化閾値を取得する閾値取得手段と、前記累積画素値と前記量子化閾値とに基づいて、量子化値および量子化誤差値を取得する量子化値取得手段と、として機能させることを特徴とする。
本発明によれば、中間階調値のハッチングパターンのような高周波パターンの画像であっても、量子化の処理の際に領域としての濃度を保持することができるようになる。
以下、添付の図面を参照しながら、画像処理装置、画像処理方法、およびプログラムの実施形態の一例を詳細に説明する。なお、以下の実施形態は、本発明を限定するものではなく、また、本実施形態で説明されている特徴の組み合わせのすべてが本発明の解決手段に必須のものとは限らない。また、実施形態に記載されている構成要素の位置、形状などはあくまで例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
(第1実施形態)
図1乃至図11を参照しながら、第1実施形態による画像処理装置を備えた印刷システムについて説明する。
図1乃至図11を参照しながら、第1実施形態による画像処理装置を備えた印刷システムについて説明する。
<印刷システムの構成>
図1(a)は、本実施形態による画像処理装置を備えた印刷システムの一例を示す図である。図1(a)の印刷システム10は、印刷媒体に対して印刷を行う印刷装置12と、入力された印刷データに基づいて、印刷装置12による印刷を実行可能な印刷可能データを生成可能な画像処理装置14とを備えている。印刷装置12は、例えば、インクジェットプリンタであり、画像処理装置14から入力された印刷可能データに基づいて、印刷媒体に対して印刷を実行する。また、印刷装置12は、シアンインク、マゼンタインク、イエローインク、およびブラックインクの各色をプロセスカラーとして使用し、カラー印刷を行う。なお、印刷装置12では、プロセスカラーインクのほかに、他の色のインクや、吐出後のインクに対して所定の処理を施す処理液などを吐出する構成としてもよい。
図1(a)は、本実施形態による画像処理装置を備えた印刷システムの一例を示す図である。図1(a)の印刷システム10は、印刷媒体に対して印刷を行う印刷装置12と、入力された印刷データに基づいて、印刷装置12による印刷を実行可能な印刷可能データを生成可能な画像処理装置14とを備えている。印刷装置12は、例えば、インクジェットプリンタであり、画像処理装置14から入力された印刷可能データに基づいて、印刷媒体に対して印刷を実行する。また、印刷装置12は、シアンインク、マゼンタインク、イエローインク、およびブラックインクの各色をプロセスカラーとして使用し、カラー印刷を行う。なお、印刷装置12では、プロセスカラーインクのほかに、他の色のインクや、吐出後のインクに対して所定の処理を施す処理液などを吐出する構成としてもよい。
図示は省略するが、画像処理装置14は、少なくとも、中央処理装置(CPU)と、CPUにおいて実行する各種処理のプログラムなどを記憶するROMと、CPUのワークメモリなどとして使用されるRAMとを備えている。また、画像処理装置14は、各種の情報を記憶可能な記憶部を備えている。画像処理装置14は、例えば、RIP(Raster Image Processor)処理などの画像形成処理を実行する。具体的には、画像処理装置14は、印刷データが示す原画像を展開することにより、印刷装置12が解釈可能な形式により画像を示す印刷可能データを形成する。
本実施形態では、画像処理装置14は、画像形成処理において、少なくとも原画像中の各画素の画素値である色の濃度を示す濃度値の量子化を行うものとする。従って、本実施形態では、画像処理装置14は、印刷装置12で使用されるプロセスカラーごとに量子化を行い、印刷データに基づき、各プロセスカラーに対応するハーフトーン画像を形成する。なお、画像処理装置14は、例えば、印刷装置12を制御するホスト装置であり、所定のプログラムに従って、画像処理装置として動作する。画像処理装置14は、印刷データを、例えば、画像処理装置14と接続される外部装置などから受け取ってもよい。あるいは、画像処理装置14は、ユーザによって印刷データを作成可能な構成としてもよい。
<量子化の概要>
次に、画像処理装置14で実行される量子化の処理の概要について説明する。図1(b)は、画像処理装置14で実行される量子化の処理の概要を示す図である。画像処理装置14は、プロセスカラーごとに、原画像に対する量子化により、ハーフトーン画像である疑似中間調画像を形成する。この量子化は、原画像の各座標における濃度値In(x、y)を、疑似中間調画像の同じ座標における量子化値out(x、y)に変換する処理である。
次に、画像処理装置14で実行される量子化の処理の概要について説明する。図1(b)は、画像処理装置14で実行される量子化の処理の概要を示す図である。画像処理装置14は、プロセスカラーごとに、原画像に対する量子化により、ハーフトーン画像である疑似中間調画像を形成する。この量子化は、原画像の各座標における濃度値In(x、y)を、疑似中間調画像の同じ座標における量子化値out(x、y)に変換する処理である。
画像処理装置14は、量子化として、ディザマトリクスノイズD(i、j)および累積誤差E(x、y)の両方を用いるハイブリッド誤差拡散処理を行う。また、画像処理装置14は、ディザマトリクスノイズD(i、j)および累積誤差E(x、y)に関連するパラメータとして、それぞれ0以上、1以下、つまり、0%~100%の範囲の値に設定されるノイズ使用率Rnおよび誤差使用率Reを用いる。
ノイズ使用率Rnは、二次元マトリクスであるディザマトリクスノイズD(i、j)を量子化の処理に影響させる度合いを示すパラメータである。量子化を行う画素に適用されるノイズ使用率Rnは、量子化を行う画素およびその周辺の画素を含む領域における各画素の濃度値から算出される領域値に応じて算出される。画像処理装置14では、ディザマトリクスノイズD(i、j)をそのまま用いるのではなく、ディザマトリクスD(i、j)とノイズ使用率Rnとの積を用いて量子化を行う。即ち、画像処理装置14では、量子化を行う画素に対応するノイズ使用率Rnに応じて、ディザマトリクスノイズD(i、j)を使用することとなる。
誤差使用率Reは、累積誤差E(x、y)を量子化の処理に影響させる度合いを示すパラメータである。量子化を行う画素に適用される誤差使用率Reは、量子化を行う画素およびその周辺の画素を含む領域における各画素の濃度値から算出される領域値に応じて算出される。画像処理装置14では、累積誤差E(x、y)をそのまま用いるのではなく、累積誤差E(x、y)と誤差使用率Reとの積を用いて、各画素の濃度値In(x、y)に対応する誤差補正済入力値In´(x、y)を算出する。そして、算出した誤差補正済入力値In´(x、y)を用いて量子化の処理を行う、即ち、画像処理装置14では、量子化を行う画素に対応する誤差使用率Reに応じて、累積誤差E(x、y)を使用する。なお、量子化の処理の詳細については、後述する。
<公知技術における懸念>
ここで、公知技術による量子化を行ったデータを用いて印刷した際の印刷結果について説明する。公知技術(例えば、特許文献1に開示の技術)では、画素に対するノイズ使用率Rnおよび誤差使用率Reは、その画素の濃度値In(x、y)によって決定される。図2は、入力画像に対する処理結果に応じた印刷結果の違いを示す図である。図2(a)は、所定のプロセスカラーにより印刷される入力画像を示す図である。図2(b)は、入力画像に対して公知技術を用いた処理結果に応じた印刷結果を示す図である。図2(c)は、入力画像に対して本実施形態による技術を用いた処理結果に応じた印刷結果を示す図である。図3は、図2(a)の入力画像から5×5画素で切り取った画像に対する量子化の結果を示す図である。図3(a)は、図2(a)の入力画像の中間調付近(濃度を持った画素の濃度値が125(8ビット))の画像を示す。図3(b)は、公知技術による量子化の結果を示す。図3(c)は、本実施形態による量子化の結果を示す。
ここで、公知技術による量子化を行ったデータを用いて印刷した際の印刷結果について説明する。公知技術(例えば、特許文献1に開示の技術)では、画素に対するノイズ使用率Rnおよび誤差使用率Reは、その画素の濃度値In(x、y)によって決定される。図2は、入力画像に対する処理結果に応じた印刷結果の違いを示す図である。図2(a)は、所定のプロセスカラーにより印刷される入力画像を示す図である。図2(b)は、入力画像に対して公知技術を用いた処理結果に応じた印刷結果を示す図である。図2(c)は、入力画像に対して本実施形態による技術を用いた処理結果に応じた印刷結果を示す図である。図3は、図2(a)の入力画像から5×5画素で切り取った画像に対する量子化の結果を示す図である。図3(a)は、図2(a)の入力画像の中間調付近(濃度を持った画素の濃度値が125(8ビット))の画像を示す。図3(b)は、公知技術による量子化の結果を示す。図3(c)は、本実施形態による量子化の結果を示す。
入力画像は、濃度0の画素と濃度を持った画素が千鳥状に配置され、濃度を持った画素は、画像の一方から他方に向かって徐々に濃度が高くなっている(図2(a)参照)。この入力画像における中間調付近を5×5画素で切り取った画像では、図3(a)のように、濃度値125が示された画素の周囲に、濃度値0の画素が位置している。濃度を持った(濃度値125の)画素では、誤差使用率100%、ノイズ使用率0%となる。そして、拡散フィルタは、図1(b)に示す拡散フィルタ102が用いられる。なお、濃度値に対する誤差使用率、ノイズ使用率の割合は、例えば、図6のようになっており、詳細は後述する。公知技術を用いた場合の図3(a)の画像の量子化の結果は、図3(b)のようになる。
即ち、図3(a)では、画素302は濃度値0である。このため、画素302では、ノイズ使用率100%、誤差使用率0%となる。画素302を量子化する場合、周辺に濃度値125の画素304が存在するため、周辺の画素で発生した誤差が伝搬することで画素302に適用される累積誤差Eは0でない値となる。しかしながら、画素302では誤差使用率が0%であるため、累積誤差Eは入力値に反映されず、誤差拡散済入力値は0(0+0)となる。従って、画素302のディザマトリクスの値が-108、初期閾値が128とすると、ノイズ補正済閾値が20(=-108×1.0+128)となる。その結果、入力値(濃度値)0と閾値20とが比較され、入力値が閾値未満であるため量子化の結果は0となる(図3(b)参照)。そして、誤差として0(0-0)が算出されるため、周囲へ拡散する誤差はない。
一方、図3(a)では、画素304は濃度値125である。このため、画素304では、ノイズ使用率0%、誤差使用率100%となる。画素304の周辺は濃度0の画素であるため、周辺の画素の量子化で発生した誤差がない。このため、画素304に適用される累計誤差Eは0となる。そして、画素304では誤差使用率は100%であるが、累積誤差Eが0のため、誤差拡散済入力値は125(125+0)となる。従って、画素304のディザマトリクスの値が-64、初期閾値が128とすると、ノイズ補正済閾値が128(=-64×0.0+128)となる。その結果、入力値(濃度値)125と閾値128とが比較され、入力値が閾値未満であるため量子化の結果は0となる(図3(b)参照)。そして、誤差として+125(125-0)が算出され、拡散フィルタによって周囲の画素へ誤差が拡散される。
このように、公知技術による量子化では、図3(a)の画像は、濃度を持った画素で発生した誤差が拡散されるが周辺の画素で適用されないため、図3(b)のように、領域中の出力値がすべて0となり、領域として濃度が保持されなくなる。このため、誤差使用率100%、ノイズ使用率0%となる入力値(濃度値)の場合、誤差拡散処理では基準の閾値を境に量子化の結果による濃度が急激に変化してしまう(図2(b)参照)。また、ノイズ使用率が低い階調では、量子化の結果において、領域として濃度が保持されなくなることがある。
図2(b)のように、明部側(図中左方側)では、量子化の結果の一部が255となり、暗部側(図中右方側)では、量子化の結果が、その一部において255となるべき位置で0となっている。これは、ノイズ使用率が100%に近づくことで、明部:ノイズ補正済閾値<画素濃度値、暗部:ノイズ補正済閾値>画素濃度値となる画素が生じるためである。つまり、図2(a)と図2(b)とを比較すると、図2(b)では濃度階調が保持されず、中央付近で急峻に濃度が変化しているだけでなく、明部と暗部で濃度の逆転が生じる箇所があることがわかる。
<本実施形態による技術の概要>
そこで、本実施形態では、量子化を行う画素とその周辺の画素とを含む領域における各画素の濃度値から、量子化を行う画素に対応する領域値を算出するようにした。そして、算出した領域値に応じて、量子化を行う画素に対応するノズル使用率Rnおよび誤差使用率Reを決定するようにした。
そこで、本実施形態では、量子化を行う画素とその周辺の画素とを含む領域における各画素の濃度値から、量子化を行う画素に対応する領域値を算出するようにした。そして、算出した領域値に応じて、量子化を行う画素に対応するノズル使用率Rnおよび誤差使用率Reを決定するようにした。
これにより、例えば、誤差拡散処理の空間周波数特性(誤差拡散特性)にディザ処理の空間周波数特性(ディザ特性)の影響を与えることができる。また、例えば、誤差拡散特性にディザ特性を組み込んだ方法により、量子化の処理を行うことができる。この場合、単に、ディザ処理と誤差拡散処理とを切り替える場合などと異なり、処理の切り替えに伴う境界線の発生などを抑制することができる。
さらに、領域の濃度を保持することを考慮したノイズ使用率Rnおよび誤差使用率Reを、量子化を行う画素に適用させることができる。この結果、ノイズ使用率Rnおよび画素使用率Reが領域内でばらつく中間調値のハッチングパターンのような高周波パターンの画像において、領域としての濃度を保持することができるようになる。このため、例えば、誤差拡散処理およびディザ処理のそれぞれが得意とする部分を適切に活かし、かつ、領域の濃度を保持して量子化の処理を行うことができるようになる。
なお、本実施形態では、ディザマトリクスノイズD(i、j)は、二次元マトリクスであり、例えば、予め設定されたディザマトリクスにより指定される値である。また、ディザマトリクスノイズD(i、j)は、例えば、従来のディザ処理において使用されるディザマトリクスノイズと同一または同様であってもよい。さらに、ディザマトリクスノイズD(i、j)は、例えば、ブルーノイズ特性のノイズを用いることが好ましい。画像処理装置14では、使用するディザマトリクスを、プロセスカラーごとに変更することが好ましい。
また、本実施形態では、累積誤差E(x、y)は、周辺の画素に対する量子化において生じる誤差である量子化誤差Q(x、y)を累積した値(つまり、量子化誤差値の累積値)であり、予め設定された拡散フィルタ(拡散マトリクス)を用いて算出される。また、算出された累積誤差E(x、y)は、例えば、累積誤差バッファに格納される。画像処理装置14では、累積誤差E(x、y)を、例えば、従来の誤差拡散処理で使用される累積誤差と同一または同様の方法により算出する。
<量子化処理>
次に、本実施形態による画像処理装置14において実行される量子化処理について説明する。この量子化処理は、原画像における各画素に対して量子化の処理を実行する処理となる。図4は、画像処理装置14で実行される量子化処理の詳細な処理ルーチンを示すフローチャートである。なお、画像処理装置14では、図4の量子化処理を、プロセスカラーごとに実行することとなる。図4のフローチャートで示される一連の処理は、CPUがROMに記憶されているプログラムコードをRAMに展開して実行されることにより行われる。あるいはまた、図4におけるステップの一部または全部の機能をASICまたは電気回路などのハードウェアで実行してもよい。なお、各処理の説明における符号Sは、フローチャートにおけるステップであることを意味する(以下、本明細書において同様である。)。
次に、本実施形態による画像処理装置14において実行される量子化処理について説明する。この量子化処理は、原画像における各画素に対して量子化の処理を実行する処理となる。図4は、画像処理装置14で実行される量子化処理の詳細な処理ルーチンを示すフローチャートである。なお、画像処理装置14では、図4の量子化処理を、プロセスカラーごとに実行することとなる。図4のフローチャートで示される一連の処理は、CPUがROMに記憶されているプログラムコードをRAMに展開して実行されることにより行われる。あるいはまた、図4におけるステップの一部または全部の機能をASICまたは電気回路などのハードウェアで実行してもよい。なお、各処理の説明における符号Sは、フローチャートにおけるステップであることを意味する(以下、本明細書において同様である。)。
量子化処理が開始されると、まず、S402において、CPUが、原画像から、量子化を実行する画素である注目画素を選択する画素選択処理を実行する。このように、本実施形態では、画像処理装置14のCPUが、注目画素選択部として機能している。次に、S404において、CPUが、量子化を行う画素を含む対象領域におけるそれぞれの画素の画素値である濃度値から、量子化を行う画素に対応する領域値を算出する領域値算出処理を実行する。このように、本実施形態では、画像処理装置14のCPUが、量子化を行う画素に対応する領域値を取得する領域値取得部として機能している。その後、S406において、CPUは、算出した領域値に基づいて、量子化を実行する画素に対応するノイズ使用率Rnおよび誤差使用率Reを算出する使用率算出処理を実行する。このように、本実施形態では、画像処理装置14のCPUが、領域値に基づいて、量子化を実行する画素に対応するノイズ使用率Rnおよび誤差使用率Reを決定する使用率決定部として機能している。なお、上記した画素選択処理、領域値算出処理、および使用率算出処理の詳細については、後述する。
そして、S408において、CPUは、累積誤差E(x,y)による補正を行った後の濃度値である誤差補正済入力値In´(x,y)を算出する。この処理では、例えば、S402の画素選択処理で選択された画素に対応する誤差使用率Reと累積誤差E(x,y)との積である適用誤差値を、その画素の濃度値In(x,y)に加算する。そして、加算後の値を累積画素値である誤差補正済入力値In´(x,y)として取得する。このように、本実施形態では、画像処理装置14のCPUが、適用誤差値を取得する適用誤差値取得部として機能している。また、本実施形態では、画像処理装置14のCPUが、累積画素値(誤差補正済入力値)を取得する累積画素値取得部(誤差補正済入力値算出部)として機能している。
さらに、S410において、CPUは、量子化で使用する閾値として、ディザマトリクスノイズD(i,j)を反映させた閾値であるノイズ補正済閾値Th´を算出する。この処理では、例えば、S402の画素選択処理で選択された画素に対応するノイズ使用率RnとディザマトリクスノイズD(i,j)との積を、予め設定された初期閾値Thに加算する。そして、加算後の値を、量子化閾値であるノイズ補正済閾値Th´として取得する。このように、本実施形態では、画像処理装置14のCPUが。量子化閾値(ノイズ補正済閾値)を取得する閾値取得部(ノイズ補正済閾値算出部)として機能している。
次に、S412において、CPUは、算出されたノイズ補正済閾値Th´と、誤差補正済入力値In´(x,y)とを比較し、S402の画素選択処理で選択された画素に対する量子化を実行することで量子化値を算出する量子化実行処理を行う。また、S412では、量子化誤差Q(x、y)も算出される。その後、S414において、CPUは、拡散フィルタに従って、この画素の量子化により生じる量子化誤差Q(x,y)を、周辺の画素に拡散させる誤差分配処理S107を行う。この誤差分配処理では、周辺画素の分配先座標に対応した拡散フィルタの値に量子化誤差Q(x,y)を積算し、周辺の画素のそれぞれに対応する累積誤差E(x,y)の値を更新する。このように、本実施形態では、画像処理装置14のCPUが、量子化値および量子化誤差値を取得する量子化値取得部として機能している。
そして、S416において、CPUは、量子化を実行した画素が原画像の最終の画素であるか否かを判定する。S416において、最終画素であると判定されると、この量子化処理を終了する。また、S416において、最終画素ではないと判定されると、S402の画素選択処理に戻り、次の画素を選択し、以降の処理を実行する。なお、量子化実行処理および誤差分配処理の詳細については、後述する。
=画素選択処理=
図5は、画素選択処理で選択される画素の順番の一例を示す図である。S402の画素選択処理では、例えば、図5のように、画素のラインを順次選択し、選択したライン中の画素を所定の処理方向に沿って、順次選択する。処理方向については、隣接するラインごとに切り替える。例えば、奇数ラインでは一方側から他方側へ、偶数ラインでは他方側から一方側へ、順次画素を選択する。このように、原画像の隣接するライン間で画素への量子化を実行する順番が逆方向となる双方向処理で量子化の処理を実行する場合、誤差の拡散方向が一定ではなくなるため、ドットをより適切に分散させることができる。この結果、例えば、原画像の隣接するライン間で画素への量子化の処理の順番が一方向のみとなる単方向処理で量子化の処理が実行される場合と比較して、ドット遅延やワームノイズの発生などを抑制することができるようになる。
図5は、画素選択処理で選択される画素の順番の一例を示す図である。S402の画素選択処理では、例えば、図5のように、画素のラインを順次選択し、選択したライン中の画素を所定の処理方向に沿って、順次選択する。処理方向については、隣接するラインごとに切り替える。例えば、奇数ラインでは一方側から他方側へ、偶数ラインでは他方側から一方側へ、順次画素を選択する。このように、原画像の隣接するライン間で画素への量子化を実行する順番が逆方向となる双方向処理で量子化の処理を実行する場合、誤差の拡散方向が一定ではなくなるため、ドットをより適切に分散させることができる。この結果、例えば、原画像の隣接するライン間で画素への量子化の処理の順番が一方向のみとなる単方向処理で量子化の処理が実行される場合と比較して、ドット遅延やワームノイズの発生などを抑制することができるようになる。
=使用率算出処理=
次に、図6乃至図8を参照しながら、S406において実行する使用率算出処理について説明する。図6は、誤差使用率Reおよびノイズ使用率Rnと、入力値(領域値)とを対応付けるグラフおよび計算式の一例を示す図である。図7は、誤差使用率Reを算出する第1算出処理の詳細な処理ルーチンを示すフローチャートである。また、図8は、ノイズ使用率Rnを算出する第2算出処理の詳細な処理ルーチンを示すフローチャートである。図7および図8のフローチャートで示される一連の処理は、CPUがROMに記憶されているプログラムコードをRAMに展開して実行されることにより行われる。あるいはまた、図7および図8におけるステップの一部または全部の機能をASICまたは電気回路などのハードウェアで実行してもよい。
次に、図6乃至図8を参照しながら、S406において実行する使用率算出処理について説明する。図6は、誤差使用率Reおよびノイズ使用率Rnと、入力値(領域値)とを対応付けるグラフおよび計算式の一例を示す図である。図7は、誤差使用率Reを算出する第1算出処理の詳細な処理ルーチンを示すフローチャートである。また、図8は、ノイズ使用率Rnを算出する第2算出処理の詳細な処理ルーチンを示すフローチャートである。図7および図8のフローチャートで示される一連の処理は、CPUがROMに記憶されているプログラムコードをRAMに展開して実行されることにより行われる。あるいはまた、図7および図8におけるステップの一部または全部の機能をASICまたは電気回路などのハードウェアで実行してもよい。
・使用率算出処理の概要
誤差使用率Reおよびノイズ使用率Rnは、最小入力値MinInである0以上、かつ、最大入力値MaxIn以下の範囲の領域値に対して連続的に変化する関数に基づいて算出される。最大入力値MaxInおよび最小入力値MinInは、例えば、入力値である領域値が取り得る範囲の最大値および最小値である。また、この関数において、ハイライト部にある領域値の範囲を示す基準として、以下の3つを用いる。
・第3ハイライト基準値の一例であるハイライト側誤差使用率最小領域値Hes
・第1ハイライト基準値の一例であるハイライト側ノイズ使用率最大領域値Hn
・第2ハイライト基準値の一例であるハイライト側誤差使用率最大領域値He
誤差使用率Reおよびノイズ使用率Rnは、最小入力値MinInである0以上、かつ、最大入力値MaxIn以下の範囲の領域値に対して連続的に変化する関数に基づいて算出される。最大入力値MaxInおよび最小入力値MinInは、例えば、入力値である領域値が取り得る範囲の最大値および最小値である。また、この関数において、ハイライト部にある領域値の範囲を示す基準として、以下の3つを用いる。
・第3ハイライト基準値の一例であるハイライト側誤差使用率最小領域値Hes
・第1ハイライト基準値の一例であるハイライト側ノイズ使用率最大領域値Hn
・第2ハイライト基準値の一例であるハイライト側誤差使用率最大領域値He
また、シャドウ部にある領域値の範囲を示す基準として、以下の3つを用いる。
・第1シャドウ基準値の一例であるシャドウ側誤差使用率最大領域値Se
・第2シャドウ基準値の一例であるシャドウ側ノイズ使用率最大領域値Sn
・第3シャドウ基準値の一例であるシャドウ側誤差使用率最小領域値Ses
さらに、中間調部の中央において初期閾値Thを挟む領域値の範囲を示す基準として、ハイライト側ノイズ使用率0%領域値Hnz、シャドウ側ノイズ使用率0%領域値Snz、第1中間調基準値C1、および第2中間調基準値C2を用いる。
・第1シャドウ基準値の一例であるシャドウ側誤差使用率最大領域値Se
・第2シャドウ基準値の一例であるシャドウ側ノイズ使用率最大領域値Sn
・第3シャドウ基準値の一例であるシャドウ側誤差使用率最小領域値Ses
さらに、中間調部の中央において初期閾値Thを挟む領域値の範囲を示す基準として、ハイライト側ノイズ使用率0%領域値Hnz、シャドウ側ノイズ使用率0%領域値Snz、第1中間調基準値C1、および第2中間調基準値C2を用いる。
また、これらのパラメータは、少なくとも、Hes≦Hn<He<Se<Sn≦Ses、およびHn<Hnz<Snz<Snとなるように設定される。また、本実施形態において、これらのパラメータは、グラフに示された大小関係で、0(MinIn)<Hes≦Hn<He<C1<Hnz<Th<Snz<C2<Se<Sn≦Ses<MaxInとなるように設定される。
そして、図6に示す計算式に基づいて、誤差使用率Reおよびノイズ使用率Rnを取得することとなる。なお、図6に示す計算式により算出されるノイズ使用率Rnが、所定の最低ノイズ使用率RnMinより小さくなる場合には、ノイズ使用率Rnは、最低ノイズ使用率RnMinに設定される。これにより、ノイズ使用率Rnは、入力値がいずれの場合にも、最低ノイズ使用率RnMax以上の値となる。なお、誤差使用率Reおよびノイズ使用率Rnは、0~100%(値0~1)の範囲内の値に設定される。図6に示した計算式において、100%以上となる場合には100%に設定され、0%以下となる場合には0%に設定される。
また、最低ノイズ使用率RnMinは、例えば、パラメータ設定時の調整時などに、0より大きな値に予め設定される。最低ノイズ使用率RnMinは、例えば、0.1(10%)以上の値とすることが考えられる。最低ノイズ使用率RnMinは、例えば、0.1~0.2(10~20%)とすることが好ましい。また、図6のグラフから分かるように、入力値Inが第1中間調基準値C1または第2中間調基準値C2と等しい場合には、計算式で算出されるノイズ使用率Rnは、最低ノイズ使用率RnMinと等しくなる。
以上の方法により、例えば、入力値Inがハイライト側誤差使用率最大領域値He以上、かつ、シャドウ側誤差使用率最大領域値Se以下の場合、誤差使用率Reは、1(100%)に設定される。また、例えば、入力値Inがハイライト側誤差使用率最小領域値Hes以下の場合、誤差使用率Reは0に設定される。さらに、入力値Inが、ハイライト側誤差使用率最小領域値Hes以上、かつ、ハイライト側誤差使用率最大領域値He以下の場合、誤差使用率Reは、(In-Hes)/(He-Hes)で計算される値に設定される。これにより、例えば、入力値Inがハイライト側誤差使用率最大領域値He以下の場合、誤差使用率Reは、0以上、1(100%)以下の値であり、ハイライト側誤差使用率最大領域値Heと入力値Inとの差に応じて1から漸減させた値に設定される。
また、例えば、入力値Inがシャドウ側誤差使用率最大領域値Se以上、かつ、シャドウ側誤差使用率最小領域値Ses以下の場合、誤差使用率Reは、(Ses-In)/(Ses-Se)で計算される値に設定される。さらに、入力値Inがシャドウ側誤差使用率最小領域値Ses以上の場合、誤差使用率Reは0に設定される。これにより、例えば、入力値Inが、シャドウ側誤差使用率最大領域値Se以上の場合、誤差使用率Reは、0以上、1(100%)以下の値であり、入力値Inとシャドウ側誤差使用率最大領域値Seとの差に応じて1から漸減させた値に設定される。
この場合、ハイライト部から中間調部にかけての誤差使用率Reは、入力値Inに対し、例えば、ハイライト側誤差使用率最小領域値Hesから徐々に増加し、ハイライト側誤差使用率最大領域値Heにおいて最大値となる。また、中間調部からシャドウ部にかけての誤差使用率Reは、入力値Inに対し、シャドウ側誤差使用率最大領域値Seから徐々に減少し、シャドウ側誤差使用率最小領域値Sesにおいて最小値となる。
これにより、例えば、入力値Inがハイライト部またはシャドウ部のいずれかに相当する領域値である場合の誤差使用率Reは、中間調部に相当する領域値である場合の誤差使用率Reよりも小さな値に設定される。また、この場合、誤差使用率Reは、例えば、領域値の範囲の両端では値が0(0%)であり、ディザ処理に特有のテクスチャが発生する領域値の範囲であるテクスチャ発生部Hd、Sdの範囲において値1(100%)となるように変化する。このように構成すれば、例えば、誤差使用率Reを中間調で主に使用する構成を適切に実現できる。
また、例えば、入力値Inがハイライト側ノイズ使用率最大領域値Hn以下の場合またはシャドウ側ノイズ使用率最大領域値Sn以上の場合、ノイズ使用率Rnは、1(100%)に設定される。また、入力値Inが第1中間調基準値C1以上、かつ、第2中間調基準値C2以下の場合、ノイズ使用率Rnは、最低ノイズ使用率RnMinに設定される。さらに、例えば、入力値Inがハイライト側ノイズ使用率最大領域値Hn以上、かつ、第1中間調基準値C1以下の場合、ノイズ使用率Rnは、最低ノイズ使用率RnMin以上、かつ、1(100%)以下の値となる。そして、入力値Inとハイライト側ノイズ使用率最大領域値Hnとの差に応じて1から漸減させた値に設定される。さらにまた、例えば、入力値Inが第2中間調基準値C2以上、かつ、シャドウ側ノイズ使用率最大領域値Sn以下の場合、ノイズ使用率Rnは、最低ノイズ使用率RnMin以上、かつ1(100%)以下の値となる。そして、入力値Inと第2中間調基準値C2との差に応じて最低ノイズ使用率RnMinから漸増させた値に設定される。
これにより、例えば、入力値Inがハイライト部またはシャドウ部のいずれかに相当する領域値である場合のノイズ使用率Rnは、中間調部に相当する領域値である場合のノイズ使用率Rnよりも大きな値に設定される。また、この場合、ノイズ使用率Rnは、例えば、ハイライト部及びシャドウ部での値が1(100%)であり、中間調になるにつれて徐々に値が下がるように変化する。
このようにして、誤差使用率Reおよびノイズ使用率Rnを取得することにより、例えば、誤差拡散特性の影響が強いとドット遅延が発生しやすいハイライト部(明部)およびシャドウ部(暗部)において、ノイズ使用率Rnを高くし、誤差使用率Reを低くする。これにより、ハイライト部およびシャドウ部において、ドットを分散して配置できるディザ特性の影響が大きくなるため、ドット遅延の発生を抑制することができる。さらに、注目画素とその周辺画素を含む領域のすべての画素の画素値が中間値よりも明るい(または暗い)第1画素値であるときの第1領域値と、当該画素値が第1画素値よりも中間値に近い第2画素値であるときの第2領域値とがある場合、次の条件を満たす。即ち、第1領域値に対する誤差使用率は、第2領域値に対する誤差使用率よりも低く、第1領域値に対するノイズ使用率は、第2領域値に対するノイズ使用率よりも高くなる領域値の組が存在する。中間値とは、本実施形態のように入力値が0から255の範囲である場合には、その中間の値、例えば、128を中間値とする。つまり、本実施形態では、ノイズ使用率Rnは、対象領域におけるすべての画素の画素値が中間値と異なる第1の画素値となる第1の領域値のときには、当該画素値が第1の画素値よりも中間値に近い第2画素値となる第2の領域値のときよりも、その値が高くなる。また、誤差使用率Reは、第1の領域値のときには、第2の領域値のときよりも低くなる。
また、誤差拡散特性の影響を大きくして中間調部での量子化の処理を行うことにより、例えば、より自然な擬似階調を得ることができる。また、例えば、テクスチャ発生部となる領域値の範囲において、ノイズ使用率Rnを低く、誤差使用率Reを高くすることにより、ドットの配置に変化を与えることができる。また、これにより、テクスチャの発生を抑制することができる。さらに、最低ノイズ使用率RnMinを設け、ノイズ使用率Rnが0にならないようにすることにより、例えば、中間調部において、僅かにディザ特性の影響を与えつつ、誤差拡散特性の影響を大きくできる。これにより、パタンノイズの発生を抑制することができる。
また、誤差使用率Reおよびノイズ使用率Rnを算出する計算式に従ってディザ特性の影響の大きさと、誤差拡散特性の影響の大きさとを徐々に変化させる。その結果、ディザ特性が支配的な領域と、誤差拡散特性が支配的な領域との切り替え部分で境界線が発生することを抑制することができる。これにより、量子化の処理の方法の切り替えを滑らかに行うことができる。従って、本実施形態によれば、例えば、領域値に応じて、誤差使用率Reおよびノイズ使用率Rnのそれぞれを適切に設定できる。これにより、誤差拡散処理およびディザ処理のそれぞれの処理が得意とする部分をより適切に活かした量子化の処理を実行することができる。
・第1算出処理および第2算出処理
ここで、誤差使用率Reおよびノイズ使用率Rnを算出する各処理の具体的な処理内容について説明する。S404では、第1算出処理および第2算出処理を実行して、量子化を実行する画素について、対応する領域値に応じた誤差使用率Reとノイズ使用率Rnとを算出する。
ここで、誤差使用率Reおよびノイズ使用率Rnを算出する各処理の具体的な処理内容について説明する。S404では、第1算出処理および第2算出処理を実行して、量子化を実行する画素について、対応する領域値に応じた誤差使用率Reとノイズ使用率Rnとを算出する。
まず、誤差使用率Reを算出する第1算出処理について説明する。第1算出処理が開始されると、まず、S702において、CPUは、対象となる画素の領域値である入力値Inがハイライト側誤差使用率最大領域値He以上、かつ、シャドウ側誤差使用率最大領域値Se以下の範囲にあるか否かを判定する。S702において、当該範囲にある、つまり、He≦In≦Seを満たすと判定されると、S704に進み、CPUは、誤差使用率Reを最大使用率である1(100%)に設定する。
また、S702において、当該範囲にない、つまり、He≦In≦Seを満たさないと判定されると、S706に進む。S706では、CPUは、入力値Inについて、ハイライト側誤差使用率最小領域値Hesよりも大きく、かつ、ハイライト側誤差使用率最大領域値Heよりも小さい範囲にあるか否かを判定する。S706において、当該範囲にある、つまり、Hes<In<Heを満たすと判定されると、S708に進み、CPUは、誤差使用率Reを(In-Hes)/(He-Hes)で算出される値に設定する。
また、S706において、当該範囲にない、つまり、Hes<In<Heを満たさないと判定されると、S710に進む。S710では、CPUは、入力値Inについて、シャドウ側誤差使用率最大領域値Seよりも大きく、かつシャドウ側誤差使用率最小領域値Sesよりも小さい範囲にあるか否かを判定する。S710において、当該範囲にある、つまり、Se<In<Sesを満たすと判定されると、S712に進み、CPUは、誤差使用率Reを(Ses-In)/(Ses-Se)で算出される値に設定する。
また、S710において、当該範囲にない、つまり、Se<In<Sesを満たさないと判定されると、S714に進み、CPUは、誤差使用率Reを0(0%)に設定する。そして、S704、S708、S712、またはS714で誤差使用率Reが設定されると、S716に進み、CPUは、設定された誤差使用率Reを、入力値Inに対応する、つまり、入力値Inを領域値とする画素の誤差使用率Reとして採用する。
次に、ノイズ使用率Rnを算出する第2算出処理について説明する。第2算出処理が開始されると、まず、S802では、CPUは、対象となる画素の領域値である入力値Inがハイライト側ノイズ使用率最大領域値Hnより大きく、かつ、ハイライト側ノイズ使用率0%領域値Hnzより小さい範囲にあるか否かを判定する。S802において、当該範囲にある、つまり、Hn<In<Hnzを満たすと判定されると、S804に進み、CPUは、ノイズ使用率Rnを(Hnz-In)/(Hnz-Hn)で算出される値に設定する。
また、S802において、当該範囲にない、つまり、Hn<In<Hnzを満たさないと判定されると、S806に進む。S806では、CPUは、入力値Inがシャドウ側ノイズ使用率0%領域値Snzより大きく、かつ、シャドウ側ノイズ使用率最大領域値Snより小さい範囲にあるか否かを判定する。S806において、当該範囲にある、つまり、Snz<In<Snを満たすと判定されると、S808に進み、CPUは、ノイズ使用率Rnを(In-Snz)/(Sn-Snz)で算出される値に設定する。
S804またはS808においてノイズ使用率Rnが設定されると、S810に進み、CPUは、設定されたノイズ使用率Rnが、最小の使用率である最低ノイズ使用率RnMinよりも大きいか否かを判定する。S810において、Rn>RnMinを満たすと判定されると、後述するS816に進む。また、S810において、Rn>RnMinを満たさないと判定されると、S812に進み、CPUは、ノイズ使用率Rnを最低ノイズ使用率RnMinに変更し、その後、S816に進む。
また、S806において、上記範囲にない、つまり、Snz<In<Snを満たさないと判定されると、S814に進み、CPUは、ノイズ使用率Rnを最大の使用率である1(100%)に設定し、その後、S816に進む。S816では、CPUは、設定されたノイズ使用率Rnを、入力値Inに対応する、つまり、入力値Inを領域値とする画素のノイズ使用率Rnとして採用する。
=量子化実行処理=
次に、S412で実行する量子化実行処理について説明する。図9は、量子化実行処理の詳細な処理ルーチンを示すフローチャートである。図9のフローチャートで示される一連の処理は、CPUがROMに記憶されているプログラムコードをRAMに展開して実行されることにより行われる。あるいはまた、図9におけるステップの一部または全部の機能をASICまたは電気回路などのハードウェアで実行してもよい。
次に、S412で実行する量子化実行処理について説明する。図9は、量子化実行処理の詳細な処理ルーチンを示すフローチャートである。図9のフローチャートで示される一連の処理は、CPUがROMに記憶されているプログラムコードをRAMに展開して実行されることにより行われる。あるいはまた、図9におけるステップの一部または全部の機能をASICまたは電気回路などのハードウェアで実行してもよい。
量子化実行処理が開始されると、まず、S902において、CPUは、入力値In(S402で選択した画素の濃度値)と最大入力値MaxInとが一致するか否かを判定する。S902において、入力値Inと最大入力値MaxInとが一致すると判定されると、S904に進み、CPUは、量子化の結果を示す出力値(量子化値)を1に設定する。なお、S904で出力値として設定する値「1」については、入力値Inが閾値Thよりも大きい場合に出力されるべき値の一例である。また、S904では、CPUは、出力値の設定とともに、S414で実行される誤差分配処理で使用する誤差値を、誤差補正済入力値In´と最大入力値MaxInとの差であるIn´-MaxInに設定する。
また、S902において、入力値Inと最大入力値MaxInとが一致しないと判定されると、S906に進み、CPUは、入力値Inと最小入力値MinInとが一致するか否かを判定する。S906において、入力値Inと最小入力値MinInとが一致すると判定されると、S908に進み、CPUは、出力値を0に設定する。なお、S908で出力値として設定する値「0」については、入力値Inが閾値Thよりも小さい場合に出力されるべき値の一例である。また、S908では、CPUは、出力値の設定とともに、誤差値を、誤差補正済入力値In´に設定する。
また、S906において、入力値Inと最小入力値MinInとが一致しないと判定されると、S910に進み、CPUは、誤差補正入力値In´がノイズ補正済閾値Th´よりも大きいか否かを判定する。S910において、誤差補正入力値In´がノイズ補正済閾値Th´よりも大きいと判定されると、S912に進み、CPUは、出力値を1に設定するとともに、誤差値をIn´-MaxInに設定する。また、S910において、誤差補正入力値In´がノイズ補正済閾値Th´以下であると判定されると、S914に進み、CPUは、出力値を0に設定するとともに、誤差値をIn´に設定する。そして、S904、S908、S912、またはS914で出力値(量子化値)および誤差値が設定されると、S916に進み、CPUは、設定された出力値および誤差値を取得し、量子化実行処理を終了する。
=領域値算出処理=
次に、S404で実行する領域値算出処理について説明する。量子化を行う画素に対応する領域値は、量子化を行う画素と、当該画素の周辺の画素を含む対象領域のそれぞれの画素の濃度値に基づいて算出される。本実施形態では、対象領域を、量子化を行う画素および当該画素の周囲1画素を含む3×3画素とした。このため、図3(a)のように、量子化を行う画素を画素304としたときの対象領域は、領域306となる。
次に、S404で実行する領域値算出処理について説明する。量子化を行う画素に対応する領域値は、量子化を行う画素と、当該画素の周辺の画素を含む対象領域のそれぞれの画素の濃度値に基づいて算出される。本実施形態では、対象領域を、量子化を行う画素および当該画素の周囲1画素を含む3×3画素とした。このため、図3(a)のように、量子化を行う画素を画素304としたときの対象領域は、領域306となる。
従って、画素304に対応する領域値を算出するためには、領域306におけるすべての画素の濃度値を用いることとなる。本実施形態では、各画素の濃度値の平均値を領域値とし、その後、算出した領域値から上記した方法でノイズ使用率Rnおよび誤差使用率Reを算出する。
具体的には、領域値は、例えば、図1(b)に示すように、対象領域の各画素の濃度値に1/9を乗算し、その値を足し合わせた値とする。なお、図1(b)では、フィルタ演算と同様であるため、入力値フィルタ104と記載している。即ち、画素304に対応する領域値は、(0×1/9)×8+125×1/9=14(本実施形態では小数点以下を四捨五入)となる。そして、上記した方法で領域値14を入力値として、画素304に対応するノイズ使用率Rnと誤差使用率Reとを算出すると、ノイズ使用率Rnは100%、誤差使用率Reは0%となる。なお、公知技術を用いた場合、濃度値125が入力値となり、ノイズ使用率Rnは0%、誤差使用率Reは100%となる。
このため、画素304のディザマトリクスの値が-64、初期閾値が128であるとすると、公知技術では、ノイズ補正済閾値が128(=-64×0.0+128)となる。その結果、入力値125(画素304の濃度値)と閾値128とが比較され、入力値が閾値未満であるため、量子化の結果は0となる(図3(b)参照)。一方、本実施形態では、ノイズ補正済閾値が64(=-64×1.0+128)となる。その結果、入力値125と閾値64とが比較され、入力値が閾値以上であるため、量子化の結果は255となる(図3(c)参照)。この結果、入力画像が図2(a)および図3(a)のときには、公知技術では、図2(b)および図3(b)のようになり、本実施形態による技術では、図2(c)および図3(c)のようになる。つまり、本実施形態による技術では、公知技術と比較して領域の濃度を保持した量子化の結果を得ることができるようになる。
なお、領域値は、量子化を行う画素およびその周辺の画素を含む対象領域におけるすべての画素の濃度値の平均値を用いるようにしたが、これに限定されるものではない。つまり、対象領域におけるすべての画素の濃度値を平滑化できれば、どのような方法であってもよい。例えば、対象領域におけるすべての画素の濃度値を順に並べたときの中央値を領域値としてもよいし、当該濃度値の中で最も頻度が高い、つまり、最も多く存在する濃度値を領域値としてもよい。また、図1(b)のように、領域サイズのフィルタを個別に作成し、当該フィルタを用いるようにしてもよい。
=誤差分配処理=
次に、S414で実行する誤差分配処理について説明する。図10は、誤差分配処理を説明する図であり、(a)は拡散フィルタの一例を示す図であり、(b)は誤差の分配の手法の一例を示す図である。本実施形態において、拡散フィルタは、例えば、Jarvis,Judice&Ninkeのマトリクスである。拡散フィルタは、双方向処理の各方向において異なるものが用いられる。図10(a)では、画像の一方側から他方側に向かう主走査方向で用いる拡散フィルタと、画像の他方側から一方側に向かう副走査方向で用いる拡散フィルタとを示している。また、拡散フィルタ中の記号*の位置は、入力値Inの座標[0,0](原点)であり、拡散フィルタの各マトリクス内の数値は、周辺の画素に誤差を分配する際の分配比率である。
次に、S414で実行する誤差分配処理について説明する。図10は、誤差分配処理を説明する図であり、(a)は拡散フィルタの一例を示す図であり、(b)は誤差の分配の手法の一例を示す図である。本実施形態において、拡散フィルタは、例えば、Jarvis,Judice&Ninkeのマトリクスである。拡散フィルタは、双方向処理の各方向において異なるものが用いられる。図10(a)では、画像の一方側から他方側に向かう主走査方向で用いる拡散フィルタと、画像の他方側から一方側に向かう副走査方向で用いる拡散フィルタとを示している。また、拡散フィルタ中の記号*の位置は、入力値Inの座標[0,0](原点)であり、拡散フィルタの各マトリクス内の数値は、周辺の画素に誤差を分配する際の分配比率である。
図10(b)のように、周辺の画素に誤差を分配する処理において、誤差の分配先の座標が画像幅から外れている場合、分配先の座標は、次のラインの先頭の座標に変更される。また、反対側の座標が範囲外となっている場合も、同様の処理を行う。さらに、分配先のラインが存在しない場合には、誤差を分配しない。さらにまた、分配先の座標が処理済みの画素である場合も、誤差を分配しない。
図11は、誤差分配処理の詳細な処理内容を示すフローチャートである。図11のフローチャートで示される一連の処理は、CPUがROMに記憶されているプログラムコードをRAMに展開して実行されることにより行われる。あるいはまた、図11におけるステップの一部または全部の機能をASICまたは電気回路などのハードウェアで実行してもよい。
誤差分配処理が開始されると、CPUは、図11のフローチャート中のS1102とS1126との間で、Y座標(画像の高さ方向の座標)を順次変化させるループを実行する。このループでは、0から拡散高さ-1(拡散高さを示す値から1を減算した値)までの間で、Yの値を1ずつ増加させる。ここで、拡散高さ(拡散高さを示す値)は、例えば、拡散マトリクス高さで計算される高さとする。拡散マトリクス高さとは、拡散フィルタとして用いるマトリクスの行数である。従って、図10の拡散フィルタを用いるとすると、「0」から、拡散高さを示す値3から1を減算した値である「2」までの間で、Yの値を1ずつ増加させることとなる。
また、S1104とS1124との間で、X座標(画像の幅方向の座標)を順次変化させるループを実行する。このループでは、-側の拡散幅を示す値から+側の拡散幅を示す値までの間で、Xの値を1ずつ増加させる。ここで、拡散幅を示す値は、例えば、(拡散マトリクス幅-1)/2で算出される値とする。拡散マトリクス幅とは、拡散フィルタとして用いるマトリクスの列数である。従って、図10の拡散フィルタを用いるときには、拡散マトリクス幅が5であるため、拡散幅を示す値は、(5-1)/2となり、「-2」から「+2」までの間で、Xを1ずつ増加させることとなる。
そして、S1106において、CPUは、分配先の座標(X´、Y´)を設定するとともに、拡散フィルタに基づいて分配比率を設定する。つまり、入力画素(図10(b)中アスタリスクが位置する画素)の座標を(x、y)とすると、X´=x+Xとなる。なお、Xは、S1104で設定した値である。また、Y´=y+Yとなる。なお、Yは、S1102、S1120、S1122などで設定した値である。また、分配比率は、拡散フィルタにおける座標(X、Y)のマトリクスに対応付けられた値となる。
次に、S1108において、CPUは、分配比率が0よりも大きいか否かを判定する。S1108において、分配比率が0以下であると判定されると、誤差を分配することなく、S1104に戻る。また、S1108において、分配比率が0よりも大きいと判定されると、S1110に進み、CPUは、分配先の座標X´が画像幅より小さいか否かを判定する。
S1110において、分配先の座標X´が画像幅より小さいと判定されると、S1112に進み、CPUは、座標X´が0以上であるか否かを判定する。S1112において、座標X´が0以上であると判定されると、S1114に進み、CPUは、分配先の座標Y´が画像高さより小さいか否かを判定する。S1114において、分配先の座標Y´が画像高さより小さいと判定されると、S1116に進み、CPUは、分配誤差値(量子化誤差値)を、誤差値と分配比率との積に設定する。そして、S1218において、CPUは、累積誤差バッファに格納されている累積誤差に、設定した分配誤差値を加算し、累積誤差バッファに格納された累積誤差を更新する。これにより、発生した量子化誤差値に応じて累積誤差が更新される。
S1110において、座標X´が画像幅以上であると判定されると、S1120において、CPUは、座標X´=X´-画像幅、座標Y´=Y´+1とし、S1114に進む。また、S1112において、座標X´が0より小さいと判定されると、S1122において、CPUは、座標X´=X´+画像幅、座標Y´=Y´+1とし、S1114に進む。さらに、S1114において、座標Y´が画像高さ以上であると判定されると、誤差を分配せずに、S1104に進む。このように、誤差拡散処理では、累積誤差バッファに格納されている値に、量子化誤差値を積算し、累積誤差を算出することとなる。
このように、本実施形態では、量子化を行う画素に対応するノイズ使用率Rnおよび誤差使用率Reを決定する際に、量子化を行う画素およびその周辺の画素を含む対象領域におけるすべての画素の濃度値から算出する領域値を用いるようにした。そして、こうして決定した誤差使用率Reを乗じた累積誤差Eを濃度値Inに加算することにより、誤差拡散特性を影響させる度合いを調節するようにした。また、決定したノイズ使用率Rnを乗じたディザマトリクスノイズDを初期閾値Thに加算することにより、ディザ特性を影響させる度合いを調節するようにした。これにより、例えば、入力値である濃度値In(x、y)とその周辺画素の濃度値に応じて、誤差拡散特性およびディザ特性のそれぞれを影響させる度合いを設定できる。また、誤差拡散処理およびディザ処理のそれぞれが得意とする部分を適切に活かした量子化の処理を行うことができる。
また、典型的な誤差拡散処理のみを行う場合、例えば、ハイライト部やシャドウ部では、ドットの遅延などの問題が発生する。また、ディザ処理のみを行う場合、例えば、ディザ処理に特有のテクスチャ等の問題が発生する。また、例えば、ハイライト部と中間調部との間や、中間調部をシャドウ部との間において、単にディザ処理と誤差拡散処理とを切り替える場合、例えば、切り替えにより境界線が発生する等の問題が生じる。これに対して、ノイズ使用率や誤差使用率を徐々に変化させ、切り替えて処理を実行する本実施形態では、例えば、ハイライト部やシャドウ部におけるドット遅延を適切に抑えることができる。また、中間調においてテクスチャが発生することや、切り替えにより境界線が発生する等も適切に防ぐことができる。そのため、本実施形態によれば、量子化の処理をより適切に行うことができる。
さらに、本実施形態では、対象領域のすべての画素における濃度値を平滑化して領域値を取得し、この領域値に基づいて、量子化を行う画素に対応するノイズ使用率および誤差使用率を決定するようにした。このため、画素に対する量子化の際に、領域の濃度の保持を考慮した適用ノイズ使用率と適用誤差使用率とを適用可能となる。その結果、公知技術ではノイズ使用率と誤差使用率が領域内でばらついてしまう中間調値のハッチングパターンのような高周波パターンの画像においても、従来よりも領域としての濃度を保持する量子化結果を得ることが可能となる。
(第2実施形態)
次に、図12を参照しながら、第2実施形態による画像処理装置を備えた印刷システムについて説明する。なお、以下の説明では、上記した第1実施形態による画像処理装置と同一または相当する構成については、第1実施形態で用いた符号と同一の符号を用いることにより、その詳細な説明を省略する。
次に、図12を参照しながら、第2実施形態による画像処理装置を備えた印刷システムについて説明する。なお、以下の説明では、上記した第1実施形態による画像処理装置と同一または相当する構成については、第1実施形態で用いた符号と同一の符号を用いることにより、その詳細な説明を省略する。
第1実施形態では、対象領域のすべての画素における濃度値を平滑化して領域値を取得するようにした。これに対して、第2実施形態では、対象領域のすべての画素における濃度値から、量子化を行う画素の濃度値を強調して領域値を取得するようにした。図12は、第2実施形態による画像処理装置で実行される量子化の処理の概要を示す図である。本実施形態では、入力値フィルタがエッジ強調フィルタ1202となっている。そして、このエッジ強調フィルタ1202を用いて領域値を取得して、当該領域値に基づいてノイズ使用率および誤差使用率を決定することとなる。なお、本実施形態では、領域値を取得するための入力値フィルタがエッジ強調フィルタを用いる点についてのみ第1実施形態と異なっている。従って、領域値の取得方法以外については、第1実施形態と同じであるので、以下の説明ではその説明を省略することとする。
本実施形態では、領域値は、エッジ強調フィルタを用いて、領域306のすべての画素の濃度値を変換し、その値を足し合わせて取得することとなる。具体的には、エッジ強調フィルタ1202に従って、量子化を行う画素の濃度値に9を乗算し、周辺の画素の濃度値に-1を乗算し、それらの値を足し合わせて取得することとなる。即ち、画素304に対応する領域値は、9×125+(0×-1)×8=1125となるが、小数点以下は四捨五入し、かつ、算出結果255を超える場合には255にクリップされるため、255となる。
そして、領域値255を入力値として、画素304に対応するノイズ使用率Rnおよび誤差使用率Reを算出すると、ノイズ使用率Rnは100%、誤差使用率Reは0%となる。なお、公知技術を用いた場合、濃度値125が入力値となり、ノイズ使用率Rnは0%、誤差使用率は100%となる。
このため、画素304のディザマトリクスの値が-64、初期閾値が128であるとすると、公知技術では、ノイズ補正済閾値が128(=-64×0.0+128)となる。その結果、入力値125(画素304の濃度値)と閾値128とが比較され、入力値が閾値未満であるため、量子化の結果は0となる(図3(b)参照)。一方、本実施形態では、ノイズ補正済閾値が64(=-64×1.0+128)となる。その結果、入力値125と閾値64とが比較され、入力値が閾値以上であるため、量子化の結果は255となる(図3(c)参照)。この結果、入力画像が図2(a)および図3(a)のときには、公知技術では、図2(b)および図3(b)のようになり、本実施形態による技術では、図2(c)および図3(c)のようになる。つまり、本実施形態による技術では、公知技術と比較して領域の濃度を保持した量子化の結果を得ることができるようになる。
なお、本実施形態では、エッジ強調フィルタ1202を用いて領域値を算出するようにしたが、対象領域のすべての画素の濃度値から、量子化を行う画素の濃度値を強調して領域値を取得することができれば、これに限定されるものではない。
このように、本実施形態では、対象領域において量子化を行う画素の濃度値を強調させた領域値を取得し、この領域値に基づいて、量子化を行う画素に対応するノイズ使用率Rnおよび誤差使用率Reを決定するようにした。これにより、第1実施形態と同様の作用効果を奏するようになる。
(他の実施形態)
以上、本実施形態を説明したが、本実施形態の技術的範囲は上記した範囲には限定されない。上記実施形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、請求の範囲の記載から明らかである。
以上、本実施形態を説明したが、本実施形態の技術的範囲は上記した範囲には限定されない。上記実施形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、請求の範囲の記載から明らかである。
また、以上において、量子化の処理の説明は、量子化後の階調数が2階調となる場合について行った。しかし、同様の方法による量子化は、例えば、階調数が3以上の場合の処理にも適用できる。階調数が3以上の場合とは、例えば、3種類以上のドットサイズを用いる場合である。この場合、例えば、それぞれのサイズのドット毎に対応する量子化の処理を、2階調の場合と同一または同様に、適用ノイズ使用率Rnaおよび適用誤差使用率Reaに応じて、ディザマトリクスノイズおよび累積誤差の両方を用いて行う。そして、それぞれのサイズのドットに対応する出力結果同士を比較して、サイズが最も大きくなるドットを最終出力とする。このようにすれば、例えば、階調数が3以上の場合にも、領域の濃度を保持して量子化の処理を行うことができる。
さらに、本実施形態においては、図2(a)から(c)に示すように、濃度0の画素と濃度を持った画素が千鳥状に配置されたハイライト側の画像に対する処理を例示した。本実施形態による技術は、これに限らず図13(a)から(c)に示すようなシャドウ側の画像の処理を含めて、その他の階調パターンでも従来と比べて領域の濃度を保持した量子化の結果を得ることができる。
さらにまた、本実施形態では、量子化を行う画素を中心とする3×3画素の対象領域におけるすべての画素の画素値から、量子化を行う画素に対応する領域値を取得するようにしたが、これに限定されるものではない。つまり、対象領域のサイズは量子化を行う画素およびその周辺画素を含んでいれば、どのようなサイズでもよく、本実施形態のような矩形でなくともよい。誤差の拡散範囲に応じたサイズとすることで誤差伝搬の影響を考慮したノイズ使用率、誤差使用率を使用でき領域の濃度再現性が向上する場合もある。また、領域を処理済みの画素とすることで処理におけるメモリ容量の削減、高速化できる場合もある。
本開示は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワークまたは印刷媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
上記実施形態の開示は、以下の構成および方法を含む。
(構成1)
コンピュータを、入力画像における各画素の画素値を量子化する画像処理装置として機能させるプログラムであって、前記コンピュータを、
前記量子化の対象とする注目画素を選択する画素選択手段と、
前記注目画素を含む対象領域に位置する各画素の画素値に応じて、前記注目画素に対応する領域値を取得する領域値取得手段と、
前記領域値に基づいて、二次元マトリクスを前記量子化に影響させる度合いを示す第1使用率と、前記注目画素の周辺の画素に対する前記量子化で生じる量子化誤差値の累積値である累積誤差を前記量子化に影響させる度合いを示す第2使用率とを決定する使用率決定手段と、
前記注目画素に対応する前記累積誤差と前記第2使用率とに基づいて前記注目画素の前記量子化に適用する適用誤差値を取得する適用誤差値取得手段と、
前記適用誤差値と前記注目画素の画素値とに基づいて累積画素値を取得する累積画素値取得手段と、
前記二次元マトリクスと前記第1使用率とに基づいて前記注目画素の前記量子化に適用する量子化閾値を取得する閾値取得手段と、
前記累積画素値と前記量子化閾値とに基づいて、量子化値および量子化誤差値を取得する量子化値取得手段と、として機能させることを特徴とするプログラム。
コンピュータを、入力画像における各画素の画素値を量子化する画像処理装置として機能させるプログラムであって、前記コンピュータを、
前記量子化の対象とする注目画素を選択する画素選択手段と、
前記注目画素を含む対象領域に位置する各画素の画素値に応じて、前記注目画素に対応する領域値を取得する領域値取得手段と、
前記領域値に基づいて、二次元マトリクスを前記量子化に影響させる度合いを示す第1使用率と、前記注目画素の周辺の画素に対する前記量子化で生じる量子化誤差値の累積値である累積誤差を前記量子化に影響させる度合いを示す第2使用率とを決定する使用率決定手段と、
前記注目画素に対応する前記累積誤差と前記第2使用率とに基づいて前記注目画素の前記量子化に適用する適用誤差値を取得する適用誤差値取得手段と、
前記適用誤差値と前記注目画素の画素値とに基づいて累積画素値を取得する累積画素値取得手段と、
前記二次元マトリクスと前記第1使用率とに基づいて前記注目画素の前記量子化に適用する量子化閾値を取得する閾値取得手段と、
前記累積画素値と前記量子化閾値とに基づいて、量子化値および量子化誤差値を取得する量子化値取得手段と、として機能させることを特徴とするプログラム。
(構成2)
前記第1使用率は、対象領域におけるすべての画素の画素値が中間値と異なる第1の画素値となる第1の領域値のときには、該画素値が前記第1の画素値よりも中間値に近い第2画素値となる第2の領域値のときよりも、その値が高くなり、
前記第2使用率は、前記第1の領域値のときには、前記第2の領域値のときよりも、その値が低くなる、ことを特徴とする構成1に記載のプログラム。
前記第1使用率は、対象領域におけるすべての画素の画素値が中間値と異なる第1の画素値となる第1の領域値のときには、該画素値が前記第1の画素値よりも中間値に近い第2画素値となる第2の領域値のときよりも、その値が高くなり、
前記第2使用率は、前記第1の領域値のときには、前記第2の領域値のときよりも、その値が低くなる、ことを特徴とする構成1に記載のプログラム。
(構成3)
前記対象領域は、前記注目画素を中心とする3×3画素を少なくとも含む、ことを特徴とする構成1または2に記載のプログラム。
前記対象領域は、前記注目画素を中心とする3×3画素を少なくとも含む、ことを特徴とする構成1または2に記載のプログラム。
(構成4)
前記領域値は、前記対象領域における各画素の画素値を平滑化した値である、ことを特徴とする構成1から3のいずれか1つに記載のプログラム。
前記領域値は、前記対象領域における各画素の画素値を平滑化した値である、ことを特徴とする構成1から3のいずれか1つに記載のプログラム。
(構成5)
前記領域値は、前記対象領域における各画素の画素値の平均値である、ことを特徴とする構成4に記載のプログラム。
前記領域値は、前記対象領域における各画素の画素値の平均値である、ことを特徴とする構成4に記載のプログラム。
(構成6)
前記領域値は、前記対象領域における各画素の画素値の中央値である、ことを特徴とする構成4に記載のプログラム。
前記領域値は、前記対象領域における各画素の画素値の中央値である、ことを特徴とする構成4に記載のプログラム。
(構成7)
前記領域値は、前記対象領域における各画素の画素値の中で最も多く存在する値である、ことを特徴とする構成4に記載のプログラム。
前記領域値は、前記対象領域における各画素の画素値の中で最も多く存在する値である、ことを特徴とする構成4に記載のプログラム。
(構成8)
前記領域値は、前記対象領域における各画素の画素値から、前記注目画素の濃度値を強調した値である、ことを特徴とする構成1から3のいずれか1つに記載のプログラム。
前記領域値は、前記対象領域における各画素の画素値から、前記注目画素の濃度値を強調した値である、ことを特徴とする構成1から3のいずれか1つに記載のプログラム。
(構成9)
前記領域値は、エッジ強調フィルタを用いて取得されることを特徴とする構成8に記載のプログラム。
前記領域値は、エッジ強調フィルタを用いて取得されることを特徴とする構成8に記載のプログラム。
(構成10)
入力画像における各画素から量子化の対象とする注目画素を選択する注目画素選択手段と、
前記注目画素を含む対象領域に位置する各画素の画素値に応じて、前記注目画素に対応する領域値を取得する領域値取得手段と、
前記領域値に基づいて、二次元マトリクスを前記量子化に影響させる度合いを示す第1使用率と、前記注目画素の周辺の画素に対する前記量子化で生じる量子化誤差値の累積値である累積誤差を前記量子化に影響させる度合いを示す第2使用率とを決定する使用率決定手段と、
前記注目画素に対応する前記累積誤差と前記第2使用率とに基づいて前記注目画素の前記量子化に適用する適用誤差値を取得する適用誤差値取得手段と、
前記適用誤差値と前記注目画素の画素値とに基づいて累積画素値を取得する累積画素値取得手段と、
前記二次元マトリクスと前記第1使用率とに基づいて前記注目画素の前記量子化に適用する量子化閾値を取得する閾値取得手段と、
前記累積画素値と前記量子化閾値とに基づいて、量子化値および量子化誤差値を取得する量子化値取得手段と、を有することを特徴とする画像処理装置。
入力画像における各画素から量子化の対象とする注目画素を選択する注目画素選択手段と、
前記注目画素を含む対象領域に位置する各画素の画素値に応じて、前記注目画素に対応する領域値を取得する領域値取得手段と、
前記領域値に基づいて、二次元マトリクスを前記量子化に影響させる度合いを示す第1使用率と、前記注目画素の周辺の画素に対する前記量子化で生じる量子化誤差値の累積値である累積誤差を前記量子化に影響させる度合いを示す第2使用率とを決定する使用率決定手段と、
前記注目画素に対応する前記累積誤差と前記第2使用率とに基づいて前記注目画素の前記量子化に適用する適用誤差値を取得する適用誤差値取得手段と、
前記適用誤差値と前記注目画素の画素値とに基づいて累積画素値を取得する累積画素値取得手段と、
前記二次元マトリクスと前記第1使用率とに基づいて前記注目画素の前記量子化に適用する量子化閾値を取得する閾値取得手段と、
前記累積画素値と前記量子化閾値とに基づいて、量子化値および量子化誤差値を取得する量子化値取得手段と、を有することを特徴とする画像処理装置。
(構成11)
入力画像における各画素の画素値を量子化する画像処理装置における画像処理方法であって、
前記量子化の対象とする注目画素を選択し、
前記注目画素を含む対象領域に位置する各画素の画素値に応じて、前記注目画素に対応する領域値を取得し、
前記領域値に基づいて、二次元マトリクスを前記量子化に影響させる度合いを示す第1使用率と、前記注目画素の周辺の画素に対する前記量子化で生じる量子化誤差値の累積値である累積誤差を前記量子化に影響させる度合いを示す第2使用率とを決定し、
前記注目画素に対応する前記累積誤差と前記第2使用率とに基づいて前記注目画素の前記量子化に適用する適用誤差値を取得し、
前記適用誤差値と前記注目画素の画素値とに基づいて累積画素値を取得し、
前記二次元マトリクスと前記第1使用率とに基づいて前記注目画素の前記量子化に適用する量子化閾値を取得し、
前記累積画素値と前記量子化閾値とに基づいて量子化値および量子化誤差値を取得する、ことを特徴とする画像処理方法。
入力画像における各画素の画素値を量子化する画像処理装置における画像処理方法であって、
前記量子化の対象とする注目画素を選択し、
前記注目画素を含む対象領域に位置する各画素の画素値に応じて、前記注目画素に対応する領域値を取得し、
前記領域値に基づいて、二次元マトリクスを前記量子化に影響させる度合いを示す第1使用率と、前記注目画素の周辺の画素に対する前記量子化で生じる量子化誤差値の累積値である累積誤差を前記量子化に影響させる度合いを示す第2使用率とを決定し、
前記注目画素に対応する前記累積誤差と前記第2使用率とに基づいて前記注目画素の前記量子化に適用する適用誤差値を取得し、
前記適用誤差値と前記注目画素の画素値とに基づいて累積画素値を取得し、
前記二次元マトリクスと前記第1使用率とに基づいて前記注目画素の前記量子化に適用する量子化閾値を取得し、
前記累積画素値と前記量子化閾値とに基づいて量子化値および量子化誤差値を取得する、ことを特徴とする画像処理方法。
(構成12)
画像中の各画素の色の濃度を示す濃度値の量子化をコンピュータに行わせるプログラムであって、
前記量子化を行うべき画素を順次選択する画素選択処理と、
前記画素選択処理で順次選択される前記画素を含む対象領域に位置する各画素の濃度値に応じて、前記画素選択処理で順次選択される前記画素に対応する領域値を取得する領域値取得処理と、
予め設定されたディザマトリクスにより指定されるノイズであるディザマトリクスノイズを前記量子化の処理に影響させる度合いを示すノイズ使用率と、周辺の画素に対する前記量子化において生じる誤差である量子化誤差を累積した累積誤差を前記量子化の処理に影響させる度合いを示す誤差使用率とを決定する処理であり、前記領域値取得処理で取得した前記領域値に応じて、前記画素選択処理で順次選択される前記画素に対応する前記ノイズ使用率および前記誤差使用率を決定する使用率決定処理と、
前記画素選択処理で順次選択される前記画素の前記濃度値に対する前記量子化を行う処理であり、当該画素に対応する前記ノイズ使用率に応じてディザマトリクスノイズを使用し、かつ、当該画素に対応する前記誤差使用率に応じて前記累積誤差を使用して前記量子化を行う量子化実行処理と、を前記コンピュータに実行させ、
前記プログラムは、前記画素選択処理で順次選択される前記画素に対し、
前記累積誤差による補正を行った後の濃度値である誤差補正済入力値を算出する処理であり、当該画素に対応する前記誤差使用率と前記累積誤差との積を当該画素の濃度値に加算した値を、前記誤差補正済入力値として算出する誤差補正済入力値算出処理と、
前記量子化で使用する閾値として前記ディザマトリクスノイズを反映させた閾値であるノイズ補正済閾値を算出する処理であり、当該画素に対応する前記ノイズ使用率と前記ディザマトリクスノイズとの積を予め設定された初期閾値に加算した値を、前記ノイズ補正済閾値として算出するノイズ補正済閾値算出処理と、を更に前記コンピュータに実行させ、
前記量子化実行処理は、前記ノイズ補正済閾値と前記誤差補正済入力値とを比較することにより、前記量子化を行い、
前記使用率決定処理は、前記ノイズ使用率及び誤差使用率の決定において、
前記対象領域における各画素の濃度値がハイライト部またはシャドウ部のいずれかに相当する濃度値となる前記領域値に基づく前記ノイズ使用率を、前記対象領域における各画素の濃度値がハイライト部とシャドウ部との中間の中間調部に相当する濃度値となる前記領域値に基づく前記ノイズ使用率よりも大きな値にし、
前記対象領域における各画素の濃度値がハイライト部またはシャドウ部のいずれかに相当する濃度値となる前記領域値に基づく前記誤差使用率を、前記対象領域における各画素の濃度値が前記中間調部に相当する濃度値となる前記領域値に基づく前記誤差使用率よりも小さな値にする、ことを特徴とするプログラム。
画像中の各画素の色の濃度を示す濃度値の量子化をコンピュータに行わせるプログラムであって、
前記量子化を行うべき画素を順次選択する画素選択処理と、
前記画素選択処理で順次選択される前記画素を含む対象領域に位置する各画素の濃度値に応じて、前記画素選択処理で順次選択される前記画素に対応する領域値を取得する領域値取得処理と、
予め設定されたディザマトリクスにより指定されるノイズであるディザマトリクスノイズを前記量子化の処理に影響させる度合いを示すノイズ使用率と、周辺の画素に対する前記量子化において生じる誤差である量子化誤差を累積した累積誤差を前記量子化の処理に影響させる度合いを示す誤差使用率とを決定する処理であり、前記領域値取得処理で取得した前記領域値に応じて、前記画素選択処理で順次選択される前記画素に対応する前記ノイズ使用率および前記誤差使用率を決定する使用率決定処理と、
前記画素選択処理で順次選択される前記画素の前記濃度値に対する前記量子化を行う処理であり、当該画素に対応する前記ノイズ使用率に応じてディザマトリクスノイズを使用し、かつ、当該画素に対応する前記誤差使用率に応じて前記累積誤差を使用して前記量子化を行う量子化実行処理と、を前記コンピュータに実行させ、
前記プログラムは、前記画素選択処理で順次選択される前記画素に対し、
前記累積誤差による補正を行った後の濃度値である誤差補正済入力値を算出する処理であり、当該画素に対応する前記誤差使用率と前記累積誤差との積を当該画素の濃度値に加算した値を、前記誤差補正済入力値として算出する誤差補正済入力値算出処理と、
前記量子化で使用する閾値として前記ディザマトリクスノイズを反映させた閾値であるノイズ補正済閾値を算出する処理であり、当該画素に対応する前記ノイズ使用率と前記ディザマトリクスノイズとの積を予め設定された初期閾値に加算した値を、前記ノイズ補正済閾値として算出するノイズ補正済閾値算出処理と、を更に前記コンピュータに実行させ、
前記量子化実行処理は、前記ノイズ補正済閾値と前記誤差補正済入力値とを比較することにより、前記量子化を行い、
前記使用率決定処理は、前記ノイズ使用率及び誤差使用率の決定において、
前記対象領域における各画素の濃度値がハイライト部またはシャドウ部のいずれかに相当する濃度値となる前記領域値に基づく前記ノイズ使用率を、前記対象領域における各画素の濃度値がハイライト部とシャドウ部との中間の中間調部に相当する濃度値となる前記領域値に基づく前記ノイズ使用率よりも大きな値にし、
前記対象領域における各画素の濃度値がハイライト部またはシャドウ部のいずれかに相当する濃度値となる前記領域値に基づく前記誤差使用率を、前記対象領域における各画素の濃度値が前記中間調部に相当する濃度値となる前記領域値に基づく前記誤差使用率よりも小さな値にする、ことを特徴とするプログラム。
(構成13)
前記領域値取得処理は、前記対象領域に位置する各画素の濃度値を平滑化した値を領域値として取得する、ことを特徴とする構成12に記載のプログラム。
前記領域値取得処理は、前記対象領域に位置する各画素の濃度値を平滑化した値を領域値として取得する、ことを特徴とする構成12に記載のプログラム。
(構成14)
前記領域値取得処理は、前記対象領域に位置する各画素の濃度値から、前記画素選択処理で順次選択される画素の濃度値を強調した値を領域値として取得する、ことを特徴とする構成12に記載のプログラム。
前記領域値取得処理は、前記対象領域に位置する各画素の濃度値から、前記画素選択処理で順次選択される画素の濃度値を強調した値を領域値として取得する、ことを特徴とする構成12に記載のプログラム。
(構成15)
前記量子化実行処理は、
前記量子化の入力値である前記画素の前記濃度値と、前記濃度値が取り得る範囲の最大値とが等しいか否かを判定する最大値判定処理と、
前記入力値である前記画素の前記濃度値と、前記濃度値が取り得る範囲の最小値とが等しいか否かを判定する最小値判定処理と、
前記量子化の結果である量子化値を取得する量子化値取得処理と、を有し、
前記最大値判定処理において前記入力値と前記最大値とが等しいと判定された場合、前記量子化値取得処理は、前記量子化値として、前記濃度値が前記閾値よりも大きい場合に出力されるべき値を取得し、
前記最小値判定処理において前記入力値と前記最小値とが等しいと判定された場合、前記量子化値取得処理は、前記量子化値として、前記濃度値が前記閾値よりも小さい場合に出力されるべき値を取得する、ことを特徴とする構成12から14のいずれか1つに記載のプログラム。
前記量子化実行処理は、
前記量子化の入力値である前記画素の前記濃度値と、前記濃度値が取り得る範囲の最大値とが等しいか否かを判定する最大値判定処理と、
前記入力値である前記画素の前記濃度値と、前記濃度値が取り得る範囲の最小値とが等しいか否かを判定する最小値判定処理と、
前記量子化の結果である量子化値を取得する量子化値取得処理と、を有し、
前記最大値判定処理において前記入力値と前記最大値とが等しいと判定された場合、前記量子化値取得処理は、前記量子化値として、前記濃度値が前記閾値よりも大きい場合に出力されるべき値を取得し、
前記最小値判定処理において前記入力値と前記最小値とが等しいと判定された場合、前記量子化値取得処理は、前記量子化値として、前記濃度値が前記閾値よりも小さい場合に出力されるべき値を取得する、ことを特徴とする構成12から14のいずれか1つに記載のプログラム。
(構成16)
前記使用率決定処理は、前記領域値がいずれの場合にも、前記ノイズ使用率を、0より大きな値に予め設定された最低ノイズ使用率以上の値に設定する、ことを特徴とする構成12から14のいずれか1つに記載のプログラム。
前記使用率決定処理は、前記領域値がいずれの場合にも、前記ノイズ使用率を、0より大きな値に予め設定された最低ノイズ使用率以上の値に設定する、ことを特徴とする構成12から14のいずれか1つに記載のプログラム。
(構成17)
前記使用率決定処理は、
ハイライト部にある前記領域値の範囲を示す基準として、予め設定された第1ハイライト基準値と、前記第1ハイライト基準値よりも大きな値の第2ハイライト基準値とを用い、
シャドウ部にある前記領域値の範囲を示す基準として、予め設定された第1シャドウ基準値と、前記第1シャドウ基準値よりも大きな値の第2シャドウ基準値とを用い、
中間調部の中央にある前記領域値の範囲を示す基準として、第2ハイライト基準値よりも大きく、かつ、前記第1シャドウ基準値よりも小さな第1中間調基準値と、前記第1中間調基準値よりも大きく、かつ、前記第1シャドウ基準値よりも小さな第2中間調基準値とを用い、
前記領域値が、前記第1ハイライト基準値以下の場合、または前記第2シャドウ基準値以上の場合、前記ノイズ使用率を、1に設定し、
前記領域値が、前記第1中間調基準値以上、かつ前記第2中間調基準値以下の場合、前記ノイズ使用率を、前記最低ノイズ使用率に設定し、
前記領域値が、前記第1ハイライト基準値以上、かつ前記第1中間調基準値以下の場合、前記ノイズ使用率を、前記最低ノイズ使用率以上、かつ1以下の値であり、前記領域値と前記第1ハイライト基準値との差に応じて1から漸減させた値に設定し、
前記領域値が、前記第2中間調基準値以上、かつ前記第2シャドウ基準値以下の場合、前記ノイズ使用率を、前記最低ノイズ使用率以上、かつ1以下の値であり、前記領域値と前記第2中間調基準値との差に応じて前記最低ノイズ使用率から漸増させた値に設定し、
前記領域値が、前記第2ハイライト基準値以上、かつ前記第1シャドウ基準値以下の場合、前記誤差使用率を、1に設定し、
前記領域値が、前記第2ハイライト基準値以下の場合、前記誤差使用率を、0以上1以下の値であり、前記第2ハイライト基準値と前記領域値との差に応じて1から漸減させた値に設定し、
前記領域値が、前記第1シャドウ基準値以上の場合、前記誤差使用率を、0以上1以下の値であり、前記領域値と前記第1シャドウ基準値との差に応じて1から漸減させた値に設定する、ことを特徴とする構成16に記載のプログラム。
前記使用率決定処理は、
ハイライト部にある前記領域値の範囲を示す基準として、予め設定された第1ハイライト基準値と、前記第1ハイライト基準値よりも大きな値の第2ハイライト基準値とを用い、
シャドウ部にある前記領域値の範囲を示す基準として、予め設定された第1シャドウ基準値と、前記第1シャドウ基準値よりも大きな値の第2シャドウ基準値とを用い、
中間調部の中央にある前記領域値の範囲を示す基準として、第2ハイライト基準値よりも大きく、かつ、前記第1シャドウ基準値よりも小さな第1中間調基準値と、前記第1中間調基準値よりも大きく、かつ、前記第1シャドウ基準値よりも小さな第2中間調基準値とを用い、
前記領域値が、前記第1ハイライト基準値以下の場合、または前記第2シャドウ基準値以上の場合、前記ノイズ使用率を、1に設定し、
前記領域値が、前記第1中間調基準値以上、かつ前記第2中間調基準値以下の場合、前記ノイズ使用率を、前記最低ノイズ使用率に設定し、
前記領域値が、前記第1ハイライト基準値以上、かつ前記第1中間調基準値以下の場合、前記ノイズ使用率を、前記最低ノイズ使用率以上、かつ1以下の値であり、前記領域値と前記第1ハイライト基準値との差に応じて1から漸減させた値に設定し、
前記領域値が、前記第2中間調基準値以上、かつ前記第2シャドウ基準値以下の場合、前記ノイズ使用率を、前記最低ノイズ使用率以上、かつ1以下の値であり、前記領域値と前記第2中間調基準値との差に応じて前記最低ノイズ使用率から漸増させた値に設定し、
前記領域値が、前記第2ハイライト基準値以上、かつ前記第1シャドウ基準値以下の場合、前記誤差使用率を、1に設定し、
前記領域値が、前記第2ハイライト基準値以下の場合、前記誤差使用率を、0以上1以下の値であり、前記第2ハイライト基準値と前記領域値との差に応じて1から漸減させた値に設定し、
前記領域値が、前記第1シャドウ基準値以上の場合、前記誤差使用率を、0以上1以下の値であり、前記領域値と前記第1シャドウ基準値との差に応じて1から漸減させた値に設定する、ことを特徴とする構成16に記載のプログラム。
(構成18)
前記使用率決定処理は、
ハイライト部にある前記領域値の範囲を示す基準として、0より大きく、かつ前記第1ハイライト基準値以下の値の第3ハイライト基準値を更に用い、
シャドウ部にある前記領域値の範囲を示す基準として、前記第2シャドウ基準値以上、かつ前記領域値が取り得る範囲の最大値よりも小さな値の第3シャドウ基準値を更に用い、
前記領域値が、前記第3ハイライト基準値以下の場合、前記誤差使用率を0に設定し、
前記領域値が、前記第3ハイライト基準値以上、かつ前記第2ハイライト基準値以下の場合、前記誤差使用率を、前記領域値と前記第3ハイライト基準値との差を前記第2ハイライト基準値と前記第3ハイライト基準値との差で除した値に設定し、
前記領域値が、前記第1シャドウ基準値以上、かつ前記第3シャドウ基準値以下の場合、前記誤差使用率を、前記第3シャドウ基準値と前記領域値との差を前記第3シャドウ基準値と前記第1シャドウ基準値との差で除した値に設定し、
前記領域値が、前記第3シャドウ基準値以上の場合、前記誤差使用率を0に設定することを特徴とする構成17に記載のプログラム。
前記使用率決定処理は、
ハイライト部にある前記領域値の範囲を示す基準として、0より大きく、かつ前記第1ハイライト基準値以下の値の第3ハイライト基準値を更に用い、
シャドウ部にある前記領域値の範囲を示す基準として、前記第2シャドウ基準値以上、かつ前記領域値が取り得る範囲の最大値よりも小さな値の第3シャドウ基準値を更に用い、
前記領域値が、前記第3ハイライト基準値以下の場合、前記誤差使用率を0に設定し、
前記領域値が、前記第3ハイライト基準値以上、かつ前記第2ハイライト基準値以下の場合、前記誤差使用率を、前記領域値と前記第3ハイライト基準値との差を前記第2ハイライト基準値と前記第3ハイライト基準値との差で除した値に設定し、
前記領域値が、前記第1シャドウ基準値以上、かつ前記第3シャドウ基準値以下の場合、前記誤差使用率を、前記第3シャドウ基準値と前記領域値との差を前記第3シャドウ基準値と前記第1シャドウ基準値との差で除した値に設定し、
前記領域値が、前記第3シャドウ基準値以上の場合、前記誤差使用率を0に設定することを特徴とする構成17に記載のプログラム。
(構成19)
画像中の各画素の色の濃度を示す濃度値の量子化を行う画像処理装置であって、
前記量子化を行うべき画素を順次選択する画素選択処理部と、
前記画素選択処理で順次選択される前記画素を含む対象領域に位置する各画素の濃度値に応じて、前記画素選択処理で順次選択される前記画素に対応する領域値を取得する領域値取得部と、
予め設定されたディザマトリクスにより指定されるノイズであるディザマトリクスノイズを前記量子化の処理に影響させる度合いを示すノイズ使用率と、周辺の画素に対する前記量子化において生じる誤差である量子化誤差を累積した累積誤差を前記量子化の処理に影響させる度合いを示す誤差使用率とを決定する処理部であり、前記領域値取得部で取得した前記領域値に応じて、前記画素選択処理部で順次選択される前記画素に対応する前記ノイズ使用率および前記誤差使用率を決定する使用率決定処理部と、
前記画素選択処理部により順次選択される前記画素の前記濃度値に対する前記量子化を行う処理部であり、当該画素に対応する前記ノイズ使用率に応じてディザマトリクスノイズを使用し、かつ、当該画素に対応する前記誤差使用率に応じて前記累積誤差を使用して前記量子化を行う量子化実行処理部と、
前記画素選択処理部により順次選択される前記画素に対し、前記累積誤差による補正を行った後の濃度値である誤差補正済入力値を算出する処理部であり、当該画素に対応する前記誤差使用率と前記累積誤差との積を当該画素の濃度値に加算した値を、前記誤差補正済入力値として算出する誤差補正済入力値算出処理部と、
前記画素選択処理部により順次選択される前記画素に対し、前記量子化で使用する閾値として前記ディザマトリクスノイズを反映させた閾値であるノイズ補正済閾値を算出する処理部であり、当該画素に対応する前記ノイズ使用率と前記ディザマトリクスノイズとの積を予め設定された初期閾値に加算した値を、前記ノイズ補正済閾値として算出するノイズ補正済閾値算出処理部と、を備え、
前記量子化実行処理部は、前記ノイズ補正済閾値と前記誤差補正済入力値とを比較することにより、前記量子化を行い、
前記使用率決定処理部は、前記ノイズ使用率及び誤差使用率の決定において、
前記対象領域における各画素の濃度値がハイライト部またはシャドウ部のいずれかに相当する濃度値となる前記領域値に基づく前記ノイズ使用率を、前記対象領域における各画素の濃度値がハイライト部とシャドウ部との中間の中間調部に相当する濃度値となる前記領域値に基づく前記ノイズ使用率よりも大きな値にし、
前記対象領域における各画素の濃度値がハイライト部またはシャドウ部のいずれかに相当する濃度値となる前記領域値に基づく前記誤差使用率を、前記対象領域における各画素の濃度値が前記中間調部に相当する濃度値となる前記領域値に基づく前記誤差使用率よりも小さな値にする、ことを特徴とする画像処理装置。
画像中の各画素の色の濃度を示す濃度値の量子化を行う画像処理装置であって、
前記量子化を行うべき画素を順次選択する画素選択処理部と、
前記画素選択処理で順次選択される前記画素を含む対象領域に位置する各画素の濃度値に応じて、前記画素選択処理で順次選択される前記画素に対応する領域値を取得する領域値取得部と、
予め設定されたディザマトリクスにより指定されるノイズであるディザマトリクスノイズを前記量子化の処理に影響させる度合いを示すノイズ使用率と、周辺の画素に対する前記量子化において生じる誤差である量子化誤差を累積した累積誤差を前記量子化の処理に影響させる度合いを示す誤差使用率とを決定する処理部であり、前記領域値取得部で取得した前記領域値に応じて、前記画素選択処理部で順次選択される前記画素に対応する前記ノイズ使用率および前記誤差使用率を決定する使用率決定処理部と、
前記画素選択処理部により順次選択される前記画素の前記濃度値に対する前記量子化を行う処理部であり、当該画素に対応する前記ノイズ使用率に応じてディザマトリクスノイズを使用し、かつ、当該画素に対応する前記誤差使用率に応じて前記累積誤差を使用して前記量子化を行う量子化実行処理部と、
前記画素選択処理部により順次選択される前記画素に対し、前記累積誤差による補正を行った後の濃度値である誤差補正済入力値を算出する処理部であり、当該画素に対応する前記誤差使用率と前記累積誤差との積を当該画素の濃度値に加算した値を、前記誤差補正済入力値として算出する誤差補正済入力値算出処理部と、
前記画素選択処理部により順次選択される前記画素に対し、前記量子化で使用する閾値として前記ディザマトリクスノイズを反映させた閾値であるノイズ補正済閾値を算出する処理部であり、当該画素に対応する前記ノイズ使用率と前記ディザマトリクスノイズとの積を予め設定された初期閾値に加算した値を、前記ノイズ補正済閾値として算出するノイズ補正済閾値算出処理部と、を備え、
前記量子化実行処理部は、前記ノイズ補正済閾値と前記誤差補正済入力値とを比較することにより、前記量子化を行い、
前記使用率決定処理部は、前記ノイズ使用率及び誤差使用率の決定において、
前記対象領域における各画素の濃度値がハイライト部またはシャドウ部のいずれかに相当する濃度値となる前記領域値に基づく前記ノイズ使用率を、前記対象領域における各画素の濃度値がハイライト部とシャドウ部との中間の中間調部に相当する濃度値となる前記領域値に基づく前記ノイズ使用率よりも大きな値にし、
前記対象領域における各画素の濃度値がハイライト部またはシャドウ部のいずれかに相当する濃度値となる前記領域値に基づく前記誤差使用率を、前記対象領域における各画素の濃度値が前記中間調部に相当する濃度値となる前記領域値に基づく前記誤差使用率よりも小さな値にする、ことを特徴とする画像処理装置。
(構成20)
画像中の各画素の色の濃度を示す濃度値の量子化を行う画像処理方法であって、
前記量子化を行うべき画素を順次選択する画素選択処理段階と、
前記画素選択処理段階で順次選択される前記画素を含む対象領域に位置する各画素の濃度値に応じて、前記画素選択処理段階で選択される前記画素に対応する領域値を取得する領域値取得処理段階と、
予め設定されたディザマトリクスにより指定されるノイズであるディザマトリクスノイズを前記量子化の処理に影響させる度合いを示すノイズ使用率と、周辺の画素に対する前記量子化において生じる誤差である量子化誤差を累積した累積誤差を前記量子化の処理に影響させる度合いを示す誤差使用率とを決定する処理段階であり、前記領域値取得処理段階で取得した領域値に応じて、前記画素選択処理段階で順次選択される前記画素に対応する前記ノイズ使用率および前記誤差使用率を決定する使用率決定処理段階と、
前記画素選択処理段階において順次選択される前記画素の前記濃度値に対する前記量子化を行う処理段階であり、当該画素に対応する前記ノイズ使用率に応じてディザマトリクスノイズを使用し、かつ、当該画素に対応する前記誤差使用率に応じて前記累積誤差を使用して前記量子化を行う量子化実行処理段階と、
前記画素選択処理段階において順次選択される前記画素に対し、前記累積誤差による補正を行った後の濃度値である誤差補正済入力値を算出する処理段階であり、当該画素に対応する前記誤差使用率と前記累積誤差との積を当該画素の濃度値に加算した値を、前記誤差補正済入力値として算出する誤差補正済入力値算出処理段階と、
前記画素選択処理段階において順次選択される前記画素に対し、前記量子化で使用する閾値として前記ディザマトリクスノイズを反映させた閾値であるノイズ補正済閾値を算出する処理段階であり、当該画素に対応する前記ノイズ使用率と前記ディザマトリクスノイズとの積を予め設定された初期閾値に加算した値を、前記ノイズ補正済閾値として算出するノイズ補正済閾値算出処理段階と
を備え、
前記量子化実行処理段階は、前記ノイズ補正済閾値と前記誤差補正済入力値とを比較することにより、前記量子化を行い、
前記使用率決定処理段階は、前記ノイズ使用率及び誤差使用率の決定において、
前記対象領域における各画素の濃度値がハイライト部またはシャドウ部のいずれかに相当する濃度値となる前記領域値に基づく前記ノイズ使用率を、前記対象領域における各画素の濃度値がハイライト部とシャドウ部との中間の中間調部に相当する濃度値となる前記領域値に基づく前記ノイズ使用率よりも大きな値にし、
前記対象領域における各画素の濃度値がハイライト部またはシャドウ部のいずれかに相当する濃度値となる前記領域値に基づく前記誤差使用率を、前記対象領域における各画素の濃度値が前記中間調部に相当する濃度値となる前記領域値に基づく前記誤差使用率よりも小さな値にする、ことを特徴とする画像処理方法。
画像中の各画素の色の濃度を示す濃度値の量子化を行う画像処理方法であって、
前記量子化を行うべき画素を順次選択する画素選択処理段階と、
前記画素選択処理段階で順次選択される前記画素を含む対象領域に位置する各画素の濃度値に応じて、前記画素選択処理段階で選択される前記画素に対応する領域値を取得する領域値取得処理段階と、
予め設定されたディザマトリクスにより指定されるノイズであるディザマトリクスノイズを前記量子化の処理に影響させる度合いを示すノイズ使用率と、周辺の画素に対する前記量子化において生じる誤差である量子化誤差を累積した累積誤差を前記量子化の処理に影響させる度合いを示す誤差使用率とを決定する処理段階であり、前記領域値取得処理段階で取得した領域値に応じて、前記画素選択処理段階で順次選択される前記画素に対応する前記ノイズ使用率および前記誤差使用率を決定する使用率決定処理段階と、
前記画素選択処理段階において順次選択される前記画素の前記濃度値に対する前記量子化を行う処理段階であり、当該画素に対応する前記ノイズ使用率に応じてディザマトリクスノイズを使用し、かつ、当該画素に対応する前記誤差使用率に応じて前記累積誤差を使用して前記量子化を行う量子化実行処理段階と、
前記画素選択処理段階において順次選択される前記画素に対し、前記累積誤差による補正を行った後の濃度値である誤差補正済入力値を算出する処理段階であり、当該画素に対応する前記誤差使用率と前記累積誤差との積を当該画素の濃度値に加算した値を、前記誤差補正済入力値として算出する誤差補正済入力値算出処理段階と、
前記画素選択処理段階において順次選択される前記画素に対し、前記量子化で使用する閾値として前記ディザマトリクスノイズを反映させた閾値であるノイズ補正済閾値を算出する処理段階であり、当該画素に対応する前記ノイズ使用率と前記ディザマトリクスノイズとの積を予め設定された初期閾値に加算した値を、前記ノイズ補正済閾値として算出するノイズ補正済閾値算出処理段階と
を備え、
前記量子化実行処理段階は、前記ノイズ補正済閾値と前記誤差補正済入力値とを比較することにより、前記量子化を行い、
前記使用率決定処理段階は、前記ノイズ使用率及び誤差使用率の決定において、
前記対象領域における各画素の濃度値がハイライト部またはシャドウ部のいずれかに相当する濃度値となる前記領域値に基づく前記ノイズ使用率を、前記対象領域における各画素の濃度値がハイライト部とシャドウ部との中間の中間調部に相当する濃度値となる前記領域値に基づく前記ノイズ使用率よりも大きな値にし、
前記対象領域における各画素の濃度値がハイライト部またはシャドウ部のいずれかに相当する濃度値となる前記領域値に基づく前記誤差使用率を、前記対象領域における各画素の濃度値が前記中間調部に相当する濃度値となる前記領域値に基づく前記誤差使用率よりも小さな値にする、ことを特徴とする画像処理方法。
14 画像処理装置
Claims (20)
- コンピュータを、入力画像における各画素の画素値を量子化する画像処理装置として機能させるプログラムであって、前記コンピュータを、
前記量子化の対象とする注目画素を選択する画素選択手段と、
前記注目画素を含む対象領域に位置する各画素の画素値に応じて、前記注目画素に対応する領域値を取得する領域値取得手段と、
前記領域値に基づいて、二次元マトリクスを前記量子化に影響させる度合いを示す第1使用率と、前記注目画素の周辺の画素に対する前記量子化で生じる量子化誤差値の累積値である累積誤差を前記量子化に影響させる度合いを示す第2使用率とを決定する使用率決定手段と、
前記注目画素に対応する前記累積誤差と前記第2使用率とに基づいて前記注目画素の前記量子化に適用する適用誤差値を取得する適用誤差値取得手段と、
前記適用誤差値と前記注目画素の画素値とに基づいて累積画素値を取得する累積画素値取得手段と、
前記二次元マトリクスと前記第1使用率とに基づいて前記注目画素の前記量子化に適用する量子化閾値を取得する閾値取得手段と、
前記累積画素値と前記量子化閾値とに基づいて、量子化値および量子化誤差値を取得する量子化値取得手段と、として機能させることを特徴とするプログラム。 - 前記第1使用率は、対象領域におけるすべての画素の画素値が中間値と異なる第1の画素値となる第1の領域値のときには、該画素値が前記第1の画素値よりも中間値に近い第2画素値となる第2の領域値のときよりも、その値が高くなり、
前記第2使用率は、前記第1の領域値のときには、前記第2の領域値のときよりも、その値が低くなる、ことを特徴とする請求項1に記載のプログラム。 - 前記対象領域は、前記注目画素を中心とする3×3画素を少なくとも含む、ことを特徴とする請求項1または2に記載のプログラム。
- 前記領域値は、前記対象領域における各画素の画素値を平滑化した値である、ことを特徴とする請求項1または2に記載のプログラム。
- 前記領域値は、前記対象領域における各画素の画素値の平均値である、ことを特徴とする請求項4に記載のプログラム。
- 前記領域値は、前記対象領域における各画素の画素値の中央値である、ことを特徴とする請求項4に記載のプログラム。
- 前記領域値は、前記対象領域における各画素の画素値の中で最も多く存在する値である、ことを特徴とする請求項4に記載のプログラム。
- 前記領域値は、前記対象領域における各画素の画素値から、前記注目画素の濃度値を強調した値である、ことを特徴とする請求項1または2に記載のプログラム。
- 前記領域値は、エッジ強調フィルタを用いて取得されることを特徴とする請求項8に記載のプログラム。
- 入力画像における各画素から量子化の対象とする注目画素を選択する注目画素選択手段と、
前記注目画素を含む対象領域に位置する各画素の画素値に応じて、前記注目画素に対応する領域値を取得する領域値取得手段と、
前記領域値に基づいて、二次元マトリクスを前記量子化に影響させる度合いを示す第1使用率と、前記注目画素の周辺の画素に対する前記量子化で生じる量子化誤差値の累積値である累積誤差を前記量子化に影響させる度合いを示す第2使用率とを決定する使用率決定手段と、
前記注目画素に対応する前記累積誤差と前記第2使用率とに基づいて前記注目画素の前記量子化に適用する適用誤差値を取得する適用誤差値取得手段と、
前記適用誤差値と前記注目画素の画素値とに基づいて累積画素値を取得する累積画素値取得手段と、
前記二次元マトリクスと前記第1使用率とに基づいて前記注目画素の前記量子化に適用する量子化閾値を取得する閾値取得手段と、
前記累積画素値と前記量子化閾値とに基づいて、量子化値および量子化誤差値を取得する量子化値取得手段と、を有することを特徴とする画像処理装置。 - 入力画像における各画素の画素値を量子化する画像処理装置における画像処理方法であって、
前記量子化の対象とする注目画素を選択し、
前記注目画素を含む対象領域に位置する各画素の画素値に応じて、前記注目画素に対応する領域値を取得し、
前記領域値に基づいて、二次元マトリクスを前記量子化に影響させる度合いを示す第1使用率と、前記注目画素の周辺の画素に対する前記量子化で生じる量子化誤差値の累積値である累積誤差を前記量子化に影響させる度合いを示す第2使用率とを決定し、
前記注目画素に対応する前記累積誤差と前記第2使用率とに基づいて前記注目画素の前記量子化に適用する適用誤差値を取得し、
前記適用誤差値と前記注目画素の画素値とに基づいて累積画素値を取得し、
前記二次元マトリクスと前記第1使用率とに基づいて前記注目画素の前記量子化に適用する量子化閾値を取得し、
前記累積画素値と前記量子化閾値とに基づいて量子化値および量子化誤差値を取得する、ことを特徴とする画像処理方法。 - 画像中の各画素の色の濃度を示す濃度値の量子化をコンピュータに行わせるプログラムであって、
前記量子化を行うべき画素を順次選択する画素選択処理と、
前記画素選択処理で順次選択される前記画素を含む対象領域に位置する各画素の濃度値に応じて、前記画素選択処理で順次選択される前記画素に対応する領域値を取得する領域値取得処理と、
予め設定されたディザマトリクスにより指定されるノイズであるディザマトリクスノイズを前記量子化の処理に影響させる度合いを示すノイズ使用率と、周辺の画素に対する前記量子化において生じる誤差である量子化誤差を累積した累積誤差を前記量子化の処理に影響させる度合いを示す誤差使用率とを決定する処理であり、前記領域値取得処理で取得した前記領域値に応じて、前記画素選択処理で順次選択される前記画素に対応する前記ノイズ使用率および前記誤差使用率を決定する使用率決定処理と、
前記画素選択処理で順次選択される前記画素の前記濃度値に対する前記量子化を行う処理であり、当該画素に対応する前記ノイズ使用率に応じてディザマトリクスノイズを使用し、かつ、当該画素に対応する前記誤差使用率に応じて前記累積誤差を使用して前記量子化を行う量子化実行処理と、を前記コンピュータに実行させ、
前記プログラムは、前記画素選択処理で順次選択される前記画素に対し、
前記累積誤差による補正を行った後の濃度値である誤差補正済入力値を算出する処理であり、当該画素に対応する前記誤差使用率と前記累積誤差との積を当該画素の濃度値に加算した値を、前記誤差補正済入力値として算出する誤差補正済入力値算出処理と、
前記量子化で使用する閾値として前記ディザマトリクスノイズを反映させた閾値であるノイズ補正済閾値を算出する処理であり、当該画素に対応する前記ノイズ使用率と前記ディザマトリクスノイズとの積を予め設定された初期閾値に加算した値を、前記ノイズ補正済閾値として算出するノイズ補正済閾値算出処理と、を更に前記コンピュータに実行させ、
前記量子化実行処理は、前記ノイズ補正済閾値と前記誤差補正済入力値とを比較することにより、前記量子化を行い、
前記使用率決定処理は、前記ノイズ使用率及び誤差使用率の決定において、
前記対象領域における各画素の濃度値がハイライト部またはシャドウ部のいずれかに相当する濃度値となる前記領域値に基づく前記ノイズ使用率を、前記対象領域における各画素の濃度値がハイライト部とシャドウ部との中間の中間調部に相当する濃度値となる前記領域値に基づく前記ノイズ使用率よりも大きな値にし、
前記対象領域における各画素の濃度値がハイライト部またはシャドウ部のいずれかに相当する濃度値となる前記領域値に基づく前記誤差使用率を、前記対象領域における各画素の濃度値が前記中間調部に相当する濃度値となる前記領域値に基づく前記誤差使用率よりも小さな値にする、ことを特徴とするプログラム。 - 前記領域値取得処理は、前記対象領域に位置する各画素の濃度値を平滑化した値を領域値として取得する、ことを特徴とする請求項12に記載のプログラム。
- 前記領域値取得処理は、前記対象領域に位置する各画素の濃度値から、前記画素選択処理で順次選択される画素の濃度値を強調した値を領域値として取得する、ことを特徴とする請求項12に記載のプログラム。
- 前記量子化実行処理は、
前記量子化の入力値である前記画素の前記濃度値と、前記濃度値が取り得る範囲の最大値とが等しいか否かを判定する最大値判定処理と、
前記入力値である前記画素の前記濃度値と、前記濃度値が取り得る範囲の最小値とが等しいか否かを判定する最小値判定処理と、
前記量子化の結果である量子化値を取得する量子化値取得処理と、を有し、
前記最大値判定処理において前記入力値と前記最大値とが等しいと判定された場合、前記量子化値取得処理は、前記量子化値として、前記濃度値が前記閾値よりも大きい場合に出力されるべき値を取得し、
前記最小値判定処理において前記入力値と前記最小値とが等しいと判定された場合、前記量子化値取得処理は、前記量子化値として、前記濃度値が前記閾値よりも小さい場合に出力されるべき値を取得する、ことを特徴とする請求項12から14のいずれか1項に記載のプログラム。 - 前記使用率決定処理は、前記領域値がいずれの場合にも、前記ノイズ使用率を、0より大きな値に予め設定された最低ノイズ使用率以上の値に設定する、ことを特徴とする請求項12から14のいずれか1項に記載のプログラム。
- 前記使用率決定処理は、
ハイライト部にある前記領域値の範囲を示す基準として、予め設定された第1ハイライト基準値と、前記第1ハイライト基準値よりも大きな値の第2ハイライト基準値とを用い、
シャドウ部にある前記領域値の範囲を示す基準として、予め設定された第1シャドウ基準値と、前記第1シャドウ基準値よりも大きな値の第2シャドウ基準値とを用い、
中間調部の中央にある前記領域値の範囲を示す基準として、第2ハイライト基準値よりも大きく、かつ、前記第1シャドウ基準値よりも小さな第1中間調基準値と、前記第1中間調基準値よりも大きく、かつ、前記第1シャドウ基準値よりも小さな第2中間調基準値とを用い、
前記領域値が、前記第1ハイライト基準値以下の場合、または前記第2シャドウ基準値以上の場合、前記ノイズ使用率を、1に設定し、
前記領域値が、前記第1中間調基準値以上、かつ前記第2中間調基準値以下の場合、前記ノイズ使用率を、前記最低ノイズ使用率に設定し、
前記領域値が、前記第1ハイライト基準値以上、かつ前記第1中間調基準値以下の場合、前記ノイズ使用率を、前記最低ノイズ使用率以上、かつ1以下の値であり、前記領域値と前記第1ハイライト基準値との差に応じて1から漸減させた値に設定し、
前記領域値が、前記第2中間調基準値以上、かつ前記第2シャドウ基準値以下の場合、前記ノイズ使用率を、前記最低ノイズ使用率以上、かつ1以下の値であり、前記領域値と前記第2中間調基準値との差に応じて前記最低ノイズ使用率から漸増させた値に設定し、
前記領域値が、前記第2ハイライト基準値以上、かつ前記第1シャドウ基準値以下の場合、前記誤差使用率を、1に設定し、
前記領域値が、前記第2ハイライト基準値以下の場合、前記誤差使用率を、0以上1以下の値であり、前記第2ハイライト基準値と前記領域値との差に応じて1から漸減させた値に設定し、
前記領域値が、前記第1シャドウ基準値以上の場合、前記誤差使用率を、0以上1以下の値であり、前記領域値と前記第1シャドウ基準値との差に応じて1から漸減させた値に設定する、ことを特徴とする請求項16に記載のプログラム。 - 前記使用率決定処理は、
ハイライト部にある前記領域値の範囲を示す基準として、0より大きく、かつ前記第1ハイライト基準値以下の値の第3ハイライト基準値を更に用い、
シャドウ部にある前記領域値の範囲を示す基準として、前記第2シャドウ基準値以上、かつ前記領域値が取り得る範囲の最大値よりも小さな値の第3シャドウ基準値を更に用い、
前記領域値が、前記第3ハイライト基準値以下の場合、前記誤差使用率を0に設定し、
前記領域値が、前記第3ハイライト基準値以上、かつ前記第2ハイライト基準値以下の場合、前記誤差使用率を、前記領域値と前記第3ハイライト基準値との差を前記第2ハイライト基準値と前記第3ハイライト基準値との差で除した値に設定し、
前記領域値が、前記第1シャドウ基準値以上、かつ前記第3シャドウ基準値以下の場合、前記誤差使用率を、前記第3シャドウ基準値と前記領域値との差を前記第3シャドウ基準値と前記第1シャドウ基準値との差で除した値に設定し、
前記領域値が、前記第3シャドウ基準値以上の場合、前記誤差使用率を0に設定することを特徴とする請求項17に記載のプログラム。 - 画像中の各画素の色の濃度を示す濃度値の量子化を行う画像処理装置であって、
前記量子化を行うべき画素を順次選択する画素選択処理部と、
前記画素選択処理で順次選択される前記画素を含む対象領域に位置する各画素の濃度値に応じて、前記画素選択処理で順次選択される前記画素に対応する領域値を取得する領域値取得部と、
予め設定されたディザマトリクスにより指定されるノイズであるディザマトリクスノイズを前記量子化の処理に影響させる度合いを示すノイズ使用率と、周辺の画素に対する前記量子化において生じる誤差である量子化誤差を累積した累積誤差を前記量子化の処理に影響させる度合いを示す誤差使用率とを決定する処理部であり、前記領域値取得部で取得した前記領域値に応じて、前記画素選択処理部で順次選択される前記画素に対応する前記ノイズ使用率および前記誤差使用率を決定する使用率決定処理部と、
前記画素選択処理部により順次選択される前記画素の前記濃度値に対する前記量子化を行う処理部であり、当該画素に対応する前記ノイズ使用率に応じてディザマトリクスノイズを使用し、かつ、当該画素に対応する前記誤差使用率に応じて前記累積誤差を使用して前記量子化を行う量子化実行処理部と、
前記画素選択処理部により順次選択される前記画素に対し、前記累積誤差による補正を行った後の濃度値である誤差補正済入力値を算出する処理部であり、当該画素に対応する前記誤差使用率と前記累積誤差との積を当該画素の濃度値に加算した値を、前記誤差補正済入力値として算出する誤差補正済入力値算出処理部と、
前記画素選択処理部により順次選択される前記画素に対し、前記量子化で使用する閾値として前記ディザマトリクスノイズを反映させた閾値であるノイズ補正済閾値を算出する処理部であり、当該画素に対応する前記ノイズ使用率と前記ディザマトリクスノイズとの積を予め設定された初期閾値に加算した値を、前記ノイズ補正済閾値として算出するノイズ補正済閾値算出処理部と、を備え、
前記量子化実行処理部は、前記ノイズ補正済閾値と前記誤差補正済入力値とを比較することにより、前記量子化を行い、
前記使用率決定処理部は、前記ノイズ使用率及び誤差使用率の決定において、
前記対象領域における各画素の濃度値がハイライト部またはシャドウ部のいずれかに相当する濃度値となる前記領域値に基づく前記ノイズ使用率を、前記対象領域における各画素の濃度値がハイライト部とシャドウ部との中間の中間調部に相当する濃度値となる前記領域値に基づく前記ノイズ使用率よりも大きな値にし、
前記対象領域における各画素の濃度値がハイライト部またはシャドウ部のいずれかに相当する濃度値となる前記領域値に基づく前記誤差使用率を、前記対象領域における各画素の濃度値が前記中間調部に相当する濃度値となる前記領域値に基づく前記誤差使用率よりも小さな値にする、ことを特徴とする画像処理装置。 - 画像中の各画素の色の濃度を示す濃度値の量子化を行う画像処理方法であって、
前記量子化を行うべき画素を順次選択する画素選択処理段階と、
前記画素選択処理段階で順次選択される前記画素を含む対象領域に位置する各画素の濃度値に応じて、前記画素選択処理段階で選択される前記画素に対応する領域値を取得する領域値取得処理段階と、
予め設定されたディザマトリクスにより指定されるノイズであるディザマトリクスノイズを前記量子化の処理に影響させる度合いを示すノイズ使用率と、周辺の画素に対する前記量子化において生じる誤差である量子化誤差を累積した累積誤差を前記量子化の処理に影響させる度合いを示す誤差使用率とを決定する処理段階であり、前記領域値取得処理段階で取得した領域値に応じて、前記画素選択処理段階で順次選択される前記画素に対応する前記ノイズ使用率および前記誤差使用率を決定する使用率決定処理段階と、
前記画素選択処理段階において順次選択される前記画素の前記濃度値に対する前記量子化を行う処理段階であり、当該画素に対応する前記ノイズ使用率に応じてディザマトリクスノイズを使用し、かつ、当該画素に対応する前記誤差使用率に応じて前記累積誤差を使用して前記量子化を行う量子化実行処理段階と、
前記画素選択処理段階において順次選択される前記画素に対し、前記累積誤差による補正を行った後の濃度値である誤差補正済入力値を算出する処理段階であり、当該画素に対応する前記誤差使用率と前記累積誤差との積を当該画素の濃度値に加算した値を、前記誤差補正済入力値として算出する誤差補正済入力値算出処理段階と、
前記画素選択処理段階において順次選択される前記画素に対し、前記量子化で使用する閾値として前記ディザマトリクスノイズを反映させた閾値であるノイズ補正済閾値を算出する処理段階であり、当該画素に対応する前記ノイズ使用率と前記ディザマトリクスノイズとの積を予め設定された初期閾値に加算した値を、前記ノイズ補正済閾値として算出するノイズ補正済閾値算出処理段階と
を備え、
前記量子化実行処理段階は、前記ノイズ補正済閾値と前記誤差補正済入力値とを比較することにより、前記量子化を行い、
前記使用率決定処理段階は、前記ノイズ使用率及び誤差使用率の決定において、
前記対象領域における各画素の濃度値がハイライト部またはシャドウ部のいずれかに相当する濃度値となる前記領域値に基づく前記ノイズ使用率を、前記対象領域における各画素の濃度値がハイライト部とシャドウ部との中間の中間調部に相当する濃度値となる前記領域値に基づく前記ノイズ使用率よりも大きな値にし、
前記対象領域における各画素の濃度値がハイライト部またはシャドウ部のいずれかに相当する濃度値となる前記領域値に基づく前記誤差使用率を、前記対象領域における各画素の濃度値が前記中間調部に相当する濃度値となる前記領域値に基づく前記誤差使用率よりも小さな値にする、ことを特徴とする画像処理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022122596A JP2024019858A (ja) | 2022-08-01 | 2022-08-01 | 画像処理装置、画像処理方法、およびプログラム |
US18/350,931 US20240037895A1 (en) | 2022-08-01 | 2023-07-12 | Storage medium, image processing apparatus, and image processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022122596A JP2024019858A (ja) | 2022-08-01 | 2022-08-01 | 画像処理装置、画像処理方法、およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2024019858A true JP2024019858A (ja) | 2024-02-14 |
Family
ID=89853922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022122596A Pending JP2024019858A (ja) | 2022-08-01 | 2022-08-01 | 画像処理装置、画像処理方法、およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2024019858A (ja) |
-
2022
- 2022-08-01 JP JP2022122596A patent/JP2024019858A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5067276B2 (ja) | 色変換方法、該色変換方法で生成された色変換テーブル、画像処理装置および色変換プログラム | |
KR101350881B1 (ko) | 프로그램, 화상처리장치, 및 화상처리방법 | |
US8208172B2 (en) | Image forming apparatus and image forming method | |
JPH11239275A (ja) | 画像処理方法および装置 | |
JP2001103307A (ja) | デジタル画像中間調処理方法及び装置、並びに、デジタル画像中間調処理プログラムを記録した記録媒体 | |
US7315398B2 (en) | Multi-level error diffusion with color image data | |
US8139267B2 (en) | Method, apparatus and program for creating a threshold value matrix | |
JP2024019858A (ja) | 画像処理装置、画像処理方法、およびプログラム | |
JP2024019857A (ja) | 画像処理装置、画像処理方法、およびプログラム | |
KR100621097B1 (ko) | 화상처리방법 및 화상처리장치 | |
US7292728B1 (en) | Block quantization method for color halftoning | |
JP4539979B2 (ja) | 画像処理装置および画像処理方法 | |
JP2005182824A (ja) | イメージ・データを処理する方法 | |
JP6525518B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
JP4148443B2 (ja) | 画像形成装置 | |
JP2024019908A (ja) | プログラム、画像処理装置、及び画像処理方法 | |
JP2024019937A (ja) | プログラム、画像処理装置、及び画像処理方法 | |
JP2024019939A (ja) | プログラム、画像処理装置、及び画像処理方法 | |
JP4067538B2 (ja) | 画像処理方法、画像処理装置、画像形成装置、コンピュータプログラム、及び記録媒体 | |
KR20050081532A (ko) | 국부 특성을 고려한 영상 이진화 방법 | |
US20240037895A1 (en) | Storage medium, image processing apparatus, and image processing method | |
JP4031442B2 (ja) | 画像処理装置、及びそれを備える画像形成装置 | |
JP2018160883A (ja) | 画像処理装置、画像形成装置、画像処理方法及び画像処理プログラム | |
JP2009135637A (ja) | 画像処理装置、画像処理方法及びプログラム | |
JP2003116014A (ja) | 画像処理装置及び方法及びコンピュータプログラム及びコンピュータ可読記憶媒体 |