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