(57)【特許請求の範囲】
【請求項１】
入力画像データにおける注目画素の濃度を示す入力値と、前記注目画素の少なくとも１つの周辺画素で発生する誤差値とを加算して、補正値を算出する補正値算出手段と、
前記補正値を、予め設定した大ドット用閾値（Thre_L）、中ドット用閾値（Thre_M）及び小ドット用閾値（Thre_S）と比較して、４値の出力値を生成する出力値生成手段と、
前記４値の出力値の内、最高濃度を示す出力値を基準として前記４値の出力値の各々が示す相対的な濃度関係を数値化した相対濃度値を、
最高濃度を示す出力値に対応する前記相対濃度値は大ドット相対濃度値=Den_L、
２番目の濃度を示す出力値に対応する相対濃度値は中ドット相対濃度値=Den_M、
３番目の濃度を示す出力値に対応する相対濃度値は小ドット相対濃度値=Den_S
として設定し、記憶保存する相対濃度値記憶手段と、
前記相対濃度値記憶手段を参照し、前記出力値生成手段で生成する出力値に対応する相対濃度値を設定する相対濃度値設定手段と、
前記相対濃度値設定手段で設定される前記相対濃度値と、前記補正値との差分を算出し、前記誤差値として求める誤差値算出手段と、
を備える多値出力装置において、
前記中ドット相対濃度値=Den_Mと前記小ドット相対濃度値=Den_Sの中間値をthreA、前記小ドット相対濃度値=Den_Sと濃度値０との中間値をthreBとし、
前記入力値に応じて、
（イ）入力値（input）が中ドット相対濃度値=Den_M超で大ドット相対濃度値=Den_L以下のときは、下記の式（１）、（２）、（３）に従って、
【数１】
0004016743.tif 000011
（ロ）入力値（input）が小ドット相対濃度値=Den_S超で中ドット相対濃度値=Den_M以下のときは、下記の式（４）、（５）、（６）に従って、
【数２】
0004016743.tif 000012
（ハ）入力値（input）が０超で小ドット相対濃度値=Den_S以下の範囲になるときは、下記の式（７）、（８）、（９）に従って、
【数３】
0004016743.tif 000013
前記大ドット用閾値（Thre_L）、中ドット用閾値（Thre_M）及び小ドット用閾値（Thre_S）を設定する閾値設定手段を備えた
ことを特徴とする多値出力装置。
【請求項２】
前記閾値設定手段は、
入力値（input）が０以下のときは、下記の式（１０）、（１１）、（１２）に従って、
【数４】
0004016743.tif 000014
大ドット用閾値（Thre_L）、中ドット用閾値（Thre_M）及び小ドット用閾値（Thre_S）を設定する
ことを特徴とする請求項１に記載の多値出力装置。
【請求項３】
請求項１又は２に記載の多値出力装置としてコンピュータを機能させるためのプログラム。
【請求項４】
請求項１又は２に記載の多値出力装置としてコンピュータを機能させるためのプログラムが記録された、コンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像データの有する階調性を例えばドットの分布により表現するために３値以上の多値に量子化した信号を出力する多値出力技術に関する。
【０００２】
【従来の技術】
画像データの有する階調性を例えばドットの分布により表現するための画像処理技術であるハーフトーン処理の１つに誤差拡散処理がある。この誤差拡散処理は、注目画素の濃度を示す入力値が量子化される際に発生した量子化誤差を周囲へ分散させることで画像自体が所持する階調性を維持するハーフトーニング法であり、高画質を再現できることから、現在のところ、最も使用頻度が高い。
【０００３】
その具体的な手順の一例を図５により説明する。
入力として注目画素の濃度を示す入力値（図示の例では８ビット値）と誤差補正値（詳細は後述）とを加算して補正値を得る。次に、その補正値と予め定められた複数の閾値Ａ、Ｂ、Ｃ・・・とを比較することで多値の出力値（この例では４値）を得る。
【０００４】
一方、出力し得る最大濃度を基準として多値の出力値の各々を正規化することで相対濃度値（最大濃度を示す出力値を基準として多値の出力値の各々が示す相対的な濃度関係を各出力値と対応付けた換算値）を求めて、各々の出力値と相対濃度値との関係を、相対濃度記憶部に予め記憶させておく。
【０００５】
そして、上述の出力値に基づいて相対濃度記憶部を参照して、その出力値に対応する相対濃度値を選択し、この選択された相対濃度値と補正値との差分から誤差値を求め、既処理画素（複数）の誤差値を誤差記憶部に記憶する。
分散マトリクスには前述の注目画素の周辺画素に対する重み係数が記憶されていて、その重み係数と誤差記憶部に記憶された周辺画素の誤差値とから誤差補正値を算出する。この誤差補正値を上述したとおり注目画素の入力値に加算（未処理画素の入力値にフィードバック）して補正値を得る。
【０００６】
このような誤差拡散処理においては、入力値は０〜２５５の様に多様な値をとるのに対し、出力は多値とはいえ０，５０，１３０，２５５の様にごくわずかな値しか再現できない。すなわち、１つの画素で再現できる濃度はわずか４種類しか存在しないが、図中太線で示した部分、すなわち出力値に対応する相対濃度値の選択（参照）、相対濃度値と補正値とによる誤差値の算出（差分）、複数の誤差値の記憶（誤差値記憶部）、分散マトリクスに基づく誤差補正値の算出（分散マトリクス）及び誤差値を入力値に加算する補正処理（加算）が、１画素では再現できない濃度の差分を、未処理の画素で補償するフィードバック機構となり、ミクロ的には離散的な例えば４種の濃度しか再現しないが、マクロ的には所望の濃度すなわち階調性を再現できる。
【０００７】
【発明が解決しようとする課題】
ここで、図６に示すような閾値特性を持つ誤差拡散処理に、図７のＢで示される様な（すなわち、いずれかの相対濃度値をまたぐ様なグラデーション）画像を処理させた、従来技術で再現される出力濃度値を図７のＣとして示す。
【０００８】
図６は、横軸が入力値、縦軸がその入力値の時に設定される複数の閾値を示すものであり、入力値が変動しても常に各々の閾値はある一定値に固定されている、いわゆる固定閾値の状態を示すものである。
図７は、横軸に画素（画像データを構成する最小要素）の位置座標を示し、縦軸に各々の処理レベルで表示される値を示すものである。
【０００９】
ここで、出力濃度値Ｃは、当該画素位置近傍で発生する出力値の平均値を示すものであり、前述の誤差拡散処理から出力される出力値そのものを示すものではないことに留意されたい。これは、誤差拡散処理法は、ミクロ的には３値程度の粗い離散的な数値しか採ることができず、その処理が再現しようとする濃度はマクロ的に（すなわち平均化して）捉えないと正しく認識できない為である。
【００１０】
この図７のグラフにおいて入力値を示す曲線Ｂは緩やかな傾斜を形成しているにも関わらず、出力濃度値Ｃは相対濃度値Ａ付近で一時的に階調性が劣化している（入力値に追随していない）ことが確認できる。
この原因は、入力値が相対濃度値近傍の場合には誤差拡散処理で発生する誤差が小さいために、誤差が多数回蓄積されるまでは出力値がある特定の値に収束してしまうためである。そのために、マッハバンド効果といわれる視覚特性により、擬似的な輪郭を視認させてしまう。
【００１１】
本発明は、このような相対濃度値近傍における階調性の劣化を防止して、階調の再現性を向上させることを目的としている。
［別視点］
また、本発明の課題は別な視点からも説明できる。
【００１２】
図８（ａ）に示すのはディザ処理の機能ブロック図である。入力に加算処理して得られる補正値を閾値と比較して出力値を得る処理は、上述の誤差拡散処理における対応部分と同等である。
このディザ処理において閾値として任意の固定値を与え、入力値にノイズの加算処理をせずに、そのまま入力値と大小比較して出力値を求めた場合には、図８（ｂ）に示すように、入力値が徐々に変化したとしても、出力値は前述の固定された閾値よりも大きい値と小さい値の２つに分離するだけで、精細な階調がまったく表現できないことが分かる。なお、図８（ｂ）では、横軸は画素位置、縦軸は各処理部における個々の変数の値を示す。
【００１３】
これに対して、入力値に任意のノイズを加算する場合、例えば図９（ａ）に示すように正弦波ノイズを加算する場合（横軸、縦軸は、図８（ｂ）と同じく、それぞれ画素位置、各処理部における個々の変数の値を示す。）、入力値にノイズが加算されると、その補正値は、入力値に応じた確率で閾値を上回ることが分かる。
【００１４】
すなわち、入力値に応じた確率で出力値が変動することとなる。これが、出力濃度の形態としては２つの値しか表現できないが、出力値の発生頻度を変化させることで階調を表現する面積階調の表現手法につながる。
図９（ｂ）は、この面積階調の様子を示すものであり、出力値の発生頻度に応じて明暗表現が行えていることが分かる。
【００１５】
すなわち、ディザ処理は、ノイズ成分を付加させることで、入力値に応じた面積階調を表現できているといえるし、適当なノイズが付加されないと、適切な階調表現ができないともいえる。
ここで図５に示した誤差拡散処理とディザ処理（図８、９参照）とを対比すると、誤差拡散処理におけるフィードバック機構はディザ処理におけるノイズ加算機構と同義であることが分かる。すなわち、フィードバック機構によってフィードバックされる誤差量が著しく減少すると、ノイズ付加が０のときのディザ処理と同等となって、適当な階調再現ができなくなることが分かる。
【００１６】
つまり、本発明は、補正値が出力の相対濃度値に近似するときに、フィードバック機構によってフィードバックされる誤差量が著しく減少して階調性が劣化するのを防止して、階調の再現性を向上させるものでもある。
【００１７】
【課題を解決するための手段および発明の効果】
請求項１記載の多値出力装置は、入力画像データにおける注目画素の濃度を示す入力値と、前記注目画素の少なくとも１つの周辺画素で発生する誤差値とを加算して、補正値を算出する補正値算出手段と、前記補正値を、予め設定した大ドット用閾値（Thre_L）、中ドット用閾値（Thre_M）及び小ドット用閾値（Thre_S）と比較して、４値の出力値を生成する出力値生成手段と、前記４値の出力値の内、最高濃度を示す出力値を基準として前記４値の出力値の各々が示す相対的な濃度関係を数値化した相対濃度値を、最高濃度を示す出力値に対応する前記相対濃度値は大ドット相対濃度値=Den_L、２番目の濃度を示す出力値に対応する相対濃度値は中ドット相対濃度値=Den_M、３番目の濃度を示す出力値に対応する相対濃度値は小ドット相対濃度値=Den_Sとして設定し、記憶保存する相対濃度値記憶手段と、前記相対濃度値記憶手段を参照し、前記出力値生成手段で生成する出力値に対応する相対濃度値を設定する相対濃度値設定手段と、前記相対濃度値設定手段で設定される前記相対濃度値と、前記補正値との差分を算出し、前記誤差値として求める誤差値算出手段と、を備える多値出力装置において、
前記中ドット相対濃度値=Den_Mと前記小ドット相対濃度値=Den_Sの中間値をthreA、前記小ドット相対濃度値=Den_Sと濃度値０との中間値をthreBとし、
前記入力値に応じて、
（イ）入力値（input）が中ドット相対濃度値=Den_M超で大ドット相対濃度値=Den_L以下のときは、下記の式（１）、（２）、（３）に従って、
【数５】
0004016743.tif 000002
（ロ）入力値（input）が小ドット相対濃度値=Den_S超で中ドット相対濃度値=Den_M以下のときは、下記の式（４）、（５）、（６）に従って、
【数６】
0004016743.tif 000003
（ハ）入力値（input）が０超で小ドット相対濃度値=Den_S以下の範囲になるときは、下記の式（７）、（８）、（９）に従って、
【数７】
0004016743.tif 000004
前記大ドット用閾値（Thre_L）、中ドット用閾値（Thre_M）及び小ドット用閾値（Thre_S）を設定する閾値設定手段を備えた
ことを特徴とする。
【００１８】
この多値出力装置においては、閾値設定手段は、（イ）入力値（input）が中ドット相対濃度値=Den_M超で大ドット相対濃度値=Den_L以下のときは、上記の式（１）、（２）、（３）に従って、（ロ）入力値（input）が小ドット相対濃度値=Den_S超で中ドット相対濃度値=Den_M以下のときは、上記の式（４）、（５）、（６）に従って、（ハ）入力値（input）が０超で小ドット相対濃度値=Den_S以下の範囲になるときは、上記の式（７）、（８）、（９）に従って、それぞれ大ドット用閾値（Thre_L）、中ドット用閾値（Thre_M）及び小ドット用閾値（Thre_S）を設定するので、入力値が相対濃度値の近傍にあって相対濃度値と補正値との差分（誤差値）が小さい場合でも、出力値がある特定の値に収束するのを防止できる。これにより、階調性の劣化が防止され、階調の再現性が向上する。
【００１９】
【００２０】
【００２１】
請求項２記載の多値出力装置は、
前記閾値設定手段は、
入力値（input）が０以下のときは、下記の式（１０）、（１１）、（１２）に従って、
【数８】
0004016743.tif 000005
大ドット用閾値（Thre_L）、中ドット用閾値（Thre_M）及び小ドット用閾値（Thre_S）を設定する
ことを特徴とする請求項１に記載の多値出力装置である。
【００２２】
【００２３】
【００２４】
【００２５】
上記の相対濃度値記憶手段は公知の記憶手段、例えばＲＡＭを使用できる。
上記の補正値算出手段、出力値生成手段、相対濃度値設定手段、誤差値算出手段及び閾値設定手段は電気回路（ハードウェア）で構成することができる。
また、コンピュータをこれら各手段として機能させることでも実現できる。その場合、請求項３記載のプログラム、すなわち請求項１又は２に記載の多値出力装置としてコンピュータを機能させるためのプログラムを使用すればよい。
【００２６】
このプログラムは、請求項４記載の記録媒体、すなわち請求項１又は２に記載の多値出力装置としてコンピュータを機能させるためのプログラムが記録された、コンピュータが読み取り可能な記録媒体によって保存し、頒布できる。記録媒体の種類には特に限定はなく、例えばフレキシブルディスク、ＣＤ−ＲＯＭ等の公知の記録媒体を使用できる。また、コンピュータのＲＯＭに予め格納しておいてもよい。
【００２７】
【００２８】
【００２９】
【００３０】
【００３１】
【００３２】
【００３３】
【発明の実施の形態】
次に、本発明の実施例により発明の実施の形態を説明する。
【００３４】
【実施例】
図１に示すのは、請求項５記載のプログラムに該当するプリンタドライバをパーソナルコンピュータ（ＰＣ）にインストールして多値出力装置として機能させる際の多値出力装置としての機能ブロック図である。また、図２は、その際にＰＣが実行する誤差拡散処理のフローチャートである。
【００３５】
まず、図１により多値出力装置としての処理の概要を説明する。
処理対象となる注目画素の濃度を示す入力値（本実施例では８ビットデータ）が入力されると、この注目画素の周辺画素で発生した誤差値を分散マトリクスに基づいて収集した累計を補正量として加算して補正値を算出する（補正値算出手段）。
【００３６】
本実施例では、画像のｘ軸に沿う１ラインの画素を順に注目画素として処理し、１ラインの処理が済むとｙ軸に沿って１ライン移動することを繰り返して画像処理が行われる。
ある画素で発生した誤差値は、分散マトリクスに基づいて、例えば右隣の画素に７／１６、左下の画素に３／１６、直下の画素に５／１６、右下の画素に１／１６というように、係数に従って分配される。このように分配された誤差を注目画素について収集した値が上述の補正量とされる。
【００３７】
次に、この補正値を予め設定した複数の閾値と比較して、３値以上の多値の出力値を生成する（閾値処理、出力値生成手段）。
閾値の設定については後述するが、本実施例の場合、大ドット用閾値（Thre_L）、中ドット用閾値（Thre_M）及び小ドット用閾値（Thre_S）が設定されており、閾値処理では、補正値を大ドット用閾値（Thre_L）、中ドット用閾値（Thre_M）、小ドット用閾値（Thre_S）の順で比較して、大ドット用閾値（Thre_L）以上か、中ドット用閾値（Thre_M）以上か、小ドット用閾値（Thre_S）以上かにより、それぞれ出力値を３、２、１とし、小ドット用閾値（Thre_S）未満なら出力値を０とする。そして出力値に対応する出力信号が出力される。
【００３８】
また、出力値に基づいて相対濃度値記憶手段（例えばハードディスク、図示は省略）を参照し、その出力値と対応付けられている相対濃度値を読み込んで誤差値算出用の基準値として設定する（相対濃度値設定手段）。
本実施例では、最高濃度を示す出力値３に対応する相対濃度値である大ドット相対濃度値、２番目の濃度を示す出力値２に対応する相対濃度値である中ドット相対濃度値及び３番目の濃度を示す出力値１に対応する相対濃度値である小ドット相対濃度値が予め設定されて、各出力値と対応付けて相対濃度値記憶手段に記憶されている。
【００３９】
そして、誤差値算出用の基準値として設定した相対濃度値と前述の補正値との差分を誤差値として算出し（誤差値算出手段）、これをバッファに格納する。
バッファに格納された誤差値は、分散マトリクスに基づいて、例えば右隣の画素に７／１６、左下の画素に３／１６、直下の画素に５／１６、右下の画素に１／１６というように、係数に従って分配される。このように分配された誤差を注目画素について収集した値が上述の補正量とされる。
［閾値設定処理例］
次に、本発明に独特な処理である閾値設定処理の一例を説明する。なお、この処理は図２に示す誤差拡散処理に先立って実行される。
【００４０】
この例では、入力画素の濃度値（input）に応じた大ドット用閾値（Thre_L）、中ドット用閾値（Thre_M）及び小ドット用閾値（Thre_S）が以下の手順で定められる。
なお、濃度値（input）は０〜２５５の範囲であり、大ドット相対濃度値=Den_L（本実施例では２５５）、中ドット相対濃度値=Den_M（本実施例では２００）、小ドット相対濃度値=Den_S（本実施例では６０）である。
【００４１】
まず、中ドット相対濃度値=Den_Mと小ドット相対濃度値=Den_Sの中間値であるthreA、小ドット相対濃度値=Den_Sと濃度値０との中間値であるthreBを、それぞれ下記の式（１３）、（１４）により演算する。threA、threBは、大ドット用閾値（Thre_L）、中ドット用閾値（Thre_M）、小ドット用閾値（Thre_S）の各変曲点（図３に示すＰ、Ｑ）を設定するための値である。
【００４２】
【数９】
0004016743.tif 000006
【００４３】
本実施例ではthreA=130,threB=30である。
そして、場合分けにより、大ドット用閾値（Thre_L）、中ドット用閾値（Thre_M）及び小ドット用閾値（Thre_S）を次のように設定する。
（イ）1==(Den_M<input≦255)
入力値（input）が中ドット相対濃度値=Den_M超で最大濃度である２５５以下のときは、下記の式（１５）、（１６）、（１７）に従って大ドット用閾値（Thre_L）、中ドット用閾値（Thre_M）及び小ドット用閾値（Thre_S）を設定する。
【００４４】
【数１０】
0004016743.tif 000007
【００４５】
式（１４）による大ドット用閾値（Thre_L）は、図３において入力値（横軸）２５５、閾値（縦軸）２５５で示される点と同じく入力値２００、閾値１３０で示される点Ｐとを結ぶ直線になる。そして、入力値（input）が中ドット相対濃度値（Den_M）の時、大ドット用閾値（Thre_L）と中ドット用閾値（Thre_M）とは等しくなる。
（ロ）1==(Den_S<input≦Den_M)
入力値（input）が小ドット相対濃度値=Den_S超で中ドット相対濃度値=Den_M以下のときは、下記の式（１８）、（１９）、（２０）に従って大ドット用閾値（Thre_L）、中ドット用閾値（Thre_M）及び小ドット用閾値（Thre_S）を設定する。
【００４６】
【数１１】
0004016743.tif 000008
【００４７】
式（１８）による中ドット用閾値（Thre_M）は、図３において入力値２００、閾値１３０で示される点Ｐと同じく入力値６０、閾値３０で示される点Ｑとを結ぶ直線になる。そして、入力値（input）が小ドット相対濃度値（Den_S）の時、中ドット用閾値（Thre_M）と小ドット用閾値（Thre_S）とは等しくなる。
（ハ）1==(0<input≦Den_S)
入力値（input）が０超で小ドット相対濃度値=Den_S以下の範囲になるときは、下記の式（２１）、（２２）、（２３）に従って大ドット用閾値（Thre_L）、中ドット用閾値（Thre_M）及び小ドット用閾値（Thre_S）を設定する。
【００４８】
【数１２】
0004016743.tif 000009
【００４９】
式（２２）による小ドット用閾値（Thre_S）は、図３において入力値６０、閾値３０で示される点Ｑと入力値０、閾値０で示される点とを結ぶ直線になる。
（ニ）1==(input≦0)
入力値（input）が０以下のときは、下記の式（２４）、（２５）、（２６）に従って大ドット用閾値（Thre_L）、中ドット用閾値（Thre_M）及び小ドット用閾値（Thre_S）を設定する。
【００５０】
【数１３】
0004016743.tif 000010
【００５１】
以上の処理を、全インク（例えばブラック、マゼンタ、シアン、イエロー）における全入力濃度において実施することで、インク毎の大ドット用閾値（Thre_L）、中ドット用閾値（Thre_M）及び小ドット用閾値（Thre_S）を設定して、閾値記憶手段（例えばハードディスク）に記憶する。
【００５２】
図３に示すとおり、この処理により設定された各閾値の関係は図３に示すとおりであり、大ドット用閾値（Thre_L）は、入力値（input）が最大濃度（本実施例では２５５）から中ドット相対濃度値=Den_M（本実施例では２００）までの範囲では入力値（input）が小さくなるに従ってリニヤに減少し、中ドット相対濃度値=Den_Mにおいて中ドット用閾値（Thre_M）=threAと等しい値となり、入力値（input）が中ドット相対濃度値=Den_M以下の範囲では一定値（threA）となる。
【００５３】
中ドット用閾値（Thre_M）は、入力値（input）が最大濃度（２５５）から中ドット相対濃度値=Den_Mまでの範囲では一定値（threA）、中ドット相対濃度値=Den_Mから小ドット相対濃度値=Den_S（本実施例では６０）までの範囲では入力値（input）が小さくなるに従ってリニヤに減少し、小ドット相対濃度値=Den_Sにおいて小ドット用閾値（Thre_S）=threBと等しい値となり、入力値（input）が小ドット相対濃度値=Den_S以下の範囲では一定値（threB）となる。
【００５４】
小ドット用閾値（Thre_S）は、入力値（input）が最大濃度（２５５）から小ドット相対濃度値=Den_Sまでの範囲では一定値（threB）、小ドット相対濃度値=Den_S以下では入力値（input）が小さくなるに従ってリニヤに減少し、入力値（input）０で小ドット用閾値（Thre_S）も０になる。
【００５５】
図３には示さないが、入力値（input）が０以下のときは、大ドット用閾値（Thre_L）、中ドット用閾値（Thre_M）、小ドット用閾値（Thre_S）は、それぞれ上述のとおりに一定値となる。
［誤差拡散処理］
上述のようにして各閾値の設定が済んでいるとして、図２の誤差拡散処理を説明する。
【００５６】
本処理では、まず画素値の初期設定としてX=0,Y=0をセットする（Ｓ００）。Xは画素の横方向の座標値、Yは縦方向の座標値であり、X<X_SIZE,Y<Y_SIZE（X_SIZE:入力データ横サイズ(Pixel),Y_SIZE:入力データ縦サイズ(Pixel)）。
次に、入力値input(X,Y)に対応する大ドット用閾値（Thre_L）、中ドット用閾値（Thre_M）及び小ドット用閾値（Thre_S）を設定する（Ｓ０１）。本例では上記の閾値設定処理例により演算した大ドット用閾値（Thre_L）、中ドット用閾値（Thre_M）及び小ドット用閾値（Thre_S）を入力値input(X,Y)に基づいて読み出して用いる。
【００５７】
続いて、入力値（input）の座標値（X,Y）周辺の画素で発生した誤差ED(x,y)を分散マトリクスmtr(x,y)により集積して、補正量MTR(X,Y)を得る（Ｓ０２）。
次に、Ｓ０２で得た補正量MTR(X,Y)に本画素(X,Y)の入力値input(X,Y)を加算して、補正値newdataを得る（Ｓ０３）。
【００５８】
そして、この補正値newdataとＳ０１で設定した大ドット用閾値（Thre_L）、中ドット用閾値（Thre_M）及び小ドット用閾値（Thre_S）とを値の大きな閾値から順に比較する（Ｓ０４）。
ここで補正値newdataが大ドット用閾値（Thre_L）を上回っていれば大ドットの出力ドットレベルLに対応した相対濃度値Relative_Lとの差を、大ドット用閾値（Thre_L）以下であるが中ドット用閾値（Thre_M）を上回っていれば中ドットの出力ドットレベルMに対応した相対濃度値Relative_Mとの差を、中ドット用閾値（Thre_M）以下であるが小ドット用閾値（Thre_S）を上回っていれば小ドットの出力ドットレベルSに対応した相対濃度値Relative_Sとの差を、誤差バッファED(X,Y)に格納する（Ｓ０５）。続いて、Ｓ０５での出力ドットレベル(L,M,S)に対応した量子化レベル値Outlevel_L,M,Sを出力値Outdataに代入する（Ｓ０７）。本例では量子化レベル値Outlevel_Lは３、量子化レベル値Outlevel_Mは２、量子化レベル値Outlevel_Sは１である。
【００５９】
一方、補正値newdataが小ドット用閾値（Thre_S）以下のときは（Ｓ０４：ＮＯ）、補正値newdataを誤差バッファED(X,Y)に格納し（Ｓ０６）、出力値Outdataに０を代入する（Ｓ０８）。
Ｓ０７又はＳ０８の出力値Outdataはプリンタに出力される。
【００６０】
Ｓ０７又はＳ０８に続くＳ０９にては、Xをインクリメントする。この際、Xの値がX_SIZEを越えた場合は、X=0としてYをインクリメントする。
そして、Xの値がX_SIZEを越え且つYの値がY_SIZEを越えるまでは（Ｓ１０：ＹＥＳ）Ｓ０１に回帰して上記の処理を繰り返し、Xの値がX_SIZEを越え且つYの値がY_SIZEを越えたなら（Ｓ１０：ＮＯ）、全画素についての処理が終わったので本ルーチンを終了する。
【００６１】
この誤差拡散処理を、相対濃度値をまたぐ様なグラデーション画像を処理させた際の出力濃度値Ｃを相対濃度値Ａ及び入力値Ｂと共に図４に示す。なお、図４は、図７と同様に、横軸に画素（画像データを構成する最小要素）の位置座標を示し、縦軸に各々の処理レベルで表示される値を示すものである。また、出力濃度値Ｃも、図７と同様に、当該画素位置近傍で発生する出力値の平均値を示すものであり、誤差拡散処理から出力される出力値そのものを示すものではない。
【００６２】
この図４のグラフにて明らかなように、入力値Ｂが相対濃度値Ａに近い領域においても出力濃度値Ｃは入力値Ａに良好に追随しており、階調性が劣化していない。
このように、本実施例の閾値設定処理により設定される閾値は、入力値が中ドット相対濃度値（Den_M）に近似する場合には、大ドット用閾値（Thre_L）と中ドット用閾値（Thre_M）とが近似し（入力値が中ドット相対濃度値（Den_M）と等しいときは大ドット用閾値（Thre_L）と中ドット用閾値（Thre_M）とが同じ値となる。）、小ドット相対濃度値（Den_S）に近似する場合には、中ドット用閾値（Thre_M）と小ドット用閾値（Thre_S）とが近似する（入力値が小ドット相対濃度値（Den_S）と等しいときは中ドット用閾値（Thre_M）と小ドット用閾値（Thre_S）とが同じ値になる。）様に設定されるので、入力値がこれらの相対濃度値の近傍にあって、１画素毎に発生する相対濃度値と補正値との差分（誤差値）が小さくても、それが多数回蓄積されるのを待たずにより高濃度な出力値の出力判定を行う閾値（例えば中ドット相対濃度値（Den_M）近傍での大ドット用閾値（Thre_L））以上となる。
【００６３】
このため、入力値が相対濃度値近傍の場合でも、出力値がある特定の値に収束せず、複数種類のドットが混在するパターンが形成されるので、擬似的な輪郭を視認させることがなくなり、階調の再現性が向上する。
しかも、２つの閾値が最近似する個所を境として入力値が示す濃度が濃い場合、近似する閾値の内より高濃度な出力値の出力判定を行う閾値が滑らかに変化するので、閾値が最近似する個所を境として入力値が示す濃度が濃い側においても良好な階調再現が得られ、２つの閾値が最近似する個所を境として入力値が示す濃度が淡い場合、近似する閾値の内より低濃度な出力値の出力判定を行う閾値が滑らかに変化するので、閾値が最近似する個所を境として入力値が示す濃度が淡い側においても良好な階調再現が得られる。
【００６４】
また、本実施例においては、大ドット用閾値（Thre_L）、中ドット用閾値（Thre_M）、小ドット用閾値（Thre_S）が上記のように設定されるので、入力値が中ドット相対濃度値（Den_M）に近似して補正値もこれに近似する場合には、中ドット相対濃度値（Den_M）に対応する出力値２の出力信号が発生し難くなる。補正値が小ドット相対濃度値（Den_S）に近似する場合には、同様に小ドット相対濃度値（Den_S）に対応する出力値１の出力信号が発生し難くなる。
【００６５】
つまり、補正値≒相対濃度値のときに、補正値が近似した相対濃度値に対応する出力信号を発生し難くするので、誤差値≒０となることがきわめて少なく、これにより階調性の劣化を防止して階調の再現性を向上できる。
以上、実施例に従って、本発明の実施の形態について説明したが、本発明はこのような実施例に限定されるものではなく、本発明の要旨を逸脱しない範囲でさまざまに実施できることは言うまでもない。
【００６６】
実施例では入力値が中ドット相対濃度値（Den_M）と等しいときは大ドット用閾値（Thre_L）と中ドット用閾値（Thre_M）とは同じ値に設定されているが、必ずしも同じ値にする必要はない。入力値が中ドット相対濃度値（Den_M）に近づくにしたがって、大ドット用閾値（Thre_L）と中ドット用閾値（Thre_M）の値が近づけばよいのである。このことは、入力値が小ドット相対濃度値（Den_S）と等しい場合における中ドット用閾値（Thre_M）と小ドット用閾値（Thre_S）との関係でも同様である。
【００６７】
また、実施例では本発明のプログラムをインストールしたコンピュータを多値出力装置として機能させているが、本発明の多値出力装置をハードウェアで構成することもできる。また、本発明のプログラムをプリンタに内蔵されているコンピュータにインストールして、これを多値出力装置として機能させることもできる。
【図面の簡単な説明】
【図１】  実施例の多値出力装置の機能ブロック図である。
【図２】  多値出力装置が実行する誤差拡散処理のフローチャートである。
【図３】  多値出力装置によって設定される可変閾値の例示図である。
【図４】  本発明の多値出力装置における入力値と出力濃度値の対比グラフである。
【図５】  従来技術の多値出力装置の機能ブロック図である。
【図６】  従来技術の固定閾値の例示図である。
【図７】  従来技術の多値出力装置における問題点を示す入力値と出力濃度値の対比グラフである。
【図８】  ディザ処理の説明図である。
【図９】  ディザ処理においてノイズを付加した場合の説明図である
【図１】
0004016743.tif 000015
【図２】
0004016743.tif 000016
【図３】
0004016743.tif 000017
【図４】
0004016743.tif 000018
【図５】
0004016743.tif 000019
【図６】
0004016743.tif 000020
【図７】
0004016743.tif 000021
【図８】
0004016743.tif 000022
【図９】
0004016743.tif 000023