(57)【要約】【課題】  誤差拡散法において、文字や図形データにおける境界で発生するにじみや孤立点の発生を防ぎ、印刷品位を落とさないようにする。【解決手段】  誤差拡散法において、処理対象の画素と、誤差データを拡散する先の画素との画素データの特性を調べる。画素データの特性が異なる場合、拡散される誤差データを特性が異なる領域には拡散しないようにして誤差拡散処理を行う。画素データの特性が同じ場合、通常通り誤差拡散処理を行う。  この制御により、特性が異なる領域には誤差が拡散されず、文字データや線画におけるにじみや孤立点の発生を防ぎ、印刷品位を良好にすることができる。【選択図】  図１３
2006345385.tif 000002
【特許請求の範囲】
【請求項１】
誤差拡散法を用いる画像処理方法であり、
拡散元と拡散先の画像データの特性を判断し、
その判断した結果に基づき、誤差拡散法における誤差データを拡散する、
ことを特徴とする画像処理方法。
【請求項２】
前記判断方法において、
画像処理中の判断に用いるために、画像データもしくは属性データもしくは画像データの特性を判断するための情報を保持する、
ことを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記判断方法において、
画素間の画像データの差分を計算し、
その差分の値に基づき判断する、
ことを特徴とする請求項１に記載の画像処理方法。
【請求項４】
前記判断方法において、
画素間の画像データの差分を計算し、
その差分をある閾値と比較した結果に基づき判断する、
ことを特徴とする請求項１に記載の画像処理方法。
【請求項５】
前記判断方法において、
画素の画像データに含まれる属性データから判断する、
ことを特徴とする請求項１に記載の画像処理方法。
【請求項６】
前記誤差拡散法における誤差データを拡散する方法で、
誤差データを拡散する処理において、
前記判断方法により、
誤差データを拡散する処理時に判断を行い、
誤差データを拡散すると判断した場合、拡散データを拡散先の画像データに拡散する、
誤差データを拡散すると判断した場合、拡散データを拡散先の画像データに拡散しない、
ことを特徴とする請求項１に記載の画像処理方法。
【請求項７】
前記誤差拡散法における誤差データを拡散する方法で、
誤差データを加算する処理において、
前記判断方法により、
誤差データを加算する処理時に判断を行い、
誤差データを加算すると判断した場合、誤差データを画像データに加算する、
誤差データを加算しないと判断した場合、誤差データを画像データに加算しない、
ことを特徴とする請求項１に記載の画像処理方法。
【請求項８】
誤差拡散法を用いる画像処理方法を備えた画像処理装置であり、
拡散元と拡散先の画像データの特性を判断する判断手段と、
その判断した結果に基づき、誤差拡散法における誤差データを拡散する画像処理手段、
を備えたことを特徴とする画像処理装置。
【請求項９】
前記判断手段において、
画像処理中の判断に用いるために、画像データもしくは属性データもしくは画像データの特性を判断するための情報を保持する記憶手段、
を備えたことを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記判断手段において、
画素間の画像データの差分を計算し、
その差分を判断する判断手段、
を備えたことを特徴とする請求項８に記載の画像処理装置。
【請求項１１】
前記判断手段において、
画素間の画像データの差分を計算し、
その差分をある閾値と比較することにより判断する判断手段、
を備えたことを特徴とする請求項８に記載の画像処理装置。
【請求項１２】
前記判断手段において、
画素の画像データに含まれる属性データから判断する判断手段、
を備えたことを特徴とする請求項８に記載の画像処理装置。
【請求項１３】
前記画像処理手段で、
誤差データを拡散する処理において、
前記判断手段により、
誤差データを拡散する処理時に判断を行い、
誤差データを拡散すると判断した場合、拡散データを拡散先の画像データに拡散する、
誤差データを拡散すると判断した場合、拡散データを拡散先の画像データに拡散しない、
ことを特徴とする請求項８に記載の画像処理装置。
【請求項１４】
前記画像処理手段で、
誤差データを加算する処理において、
前記判断手段により、
誤差データを加算する処理時に判断を行い、
誤差データを加算すると判断した場合、誤差データを画像データに加算する、
誤差データを加算しないと判断した場合、誤差データを画像データに加算しない、
ことを特徴とする請求項８に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、誤差拡散法を用いる印刷において、孤立点の発生を防ぎ、良好な印刷品位を得ることが可能な、画像処理方法および画像形成装置に関するものである。
【背景技術】
【０００２】
昨今、インクジェット方式のプリンタが広く普及してきている。このインクジェット方式のプリンタは、カラー印刷のため複数の色のインクを保持している。この複数色のインクを、吐出量を調整しながら重ね打ちすることにより、多くの色を表現してカラー画像を印刷することができる。この複数の色は主に加法混色の３原色であるイエロー（Ｙ）、マゼンタ（Ｍ）、シアン（Ｃ）の色材を搭載している。また、インク量打ち込み制限、黒文字をはっきり印刷するためにブラック（Ｂｋ）を搭載したプリンタも多く存在する。
【０００３】
このようなインクジェットプリンタにおける画像処理方法として、誤差拡散法と呼ばれるものがある。
【０００４】
誤差拡散法の具体例を示す。
【０００５】
画像処理の該当画素を（ｋ、ｍ）とし、その該当画素の画像データをａ（ｋ、ｍ）とする。この画像データが８ビットデータであるとき、
０≦a（ｋ、ｍ）≦ＦＦ  …（１）
である。ここで画像データは１６進法で表現する。
【０００６】
該画像処理において、該当画素の画像データが
０≦ａ（ｋ、ｍ）＜Ｍ  ならば打たない。
【０００７】
Ｍ≦ａ（ｋ、ｍ）≦ＦＦ  ならば打つ。
という制御をする。ここでＭは０〜ＦＦの中である値を採る。
【０００８】
さらに、
０≦ａ（ｋ、ｍ）＜Ｍ  のとき〔Ｍ〕＝０
Ｍ≦ａ（ｋ、ｍ）≦ＦＦ  のとき〔Ｍ〕＝ＦＦ
とする。すると、画像データと、実際に印刷データとして表現したものとの間に誤差が生じる。この誤差をｅ（ｋ，ｍ）とするとｅ（ｋ，ｍ）は次のようにあらわされる。
【０００９】
ｅ（ｋ，ｍ）＝ａ（ｋ、ｍ）−〔Ｍ〕  …（２）
このｅ（ｋ，ｍ）は、周囲の画素に所定の割合で分散される。
【００１０】
このとき、図１に示すように、周辺画素（ｋ、ｍ＋１）、（ｋ＋１、ｍ−１）、（ｋ＋１、ｍ）、（ｋ＋１、ｍ＋１）に分散されるとする。そのときの割合を          α（ｋ、ｍ＋１）、α（ｋ＋１、ｍ−１）、α（ｋ＋１、ｍ）、α（ｋ＋１、ｍ＋１）とすると、（ｋ、ｍ＋１）の画像データは、もともとの画像データａ（ｋ、ｍ＋１）に対して
ａ（ｋ、ｍ＋１）＋ｅ（ｋ，ｍ）×α（ｋ、ｍ＋１）  …（３）
と加算する。このように誤差値を所定の割合で周辺画素に加算する処理を（ｋ＋１、ｍ−１）、（ｋ＋１、ｍ）、（ｋ＋１、ｍ＋１）に対しても行う。この処理を順次処理の対象画素に対して行う。この拡散の割合の総和が
Σα＝１  …（４）
となるようにすると濃度が保たれた状態で画像処理を行うことができる。この計算を一般的にしたものが図２である。
【００１１】
先に誤差データを分散させる割合をαとしたが、これは重み付け係数と呼ばれるものである。この重み付け係数としてよく知られたものに、「Floyd & Steinberg 型」と呼ばれるものがある。（図３）また、さらに滑らかな画像を得るため、誤差を拡散する領域を広げた「Jarvis, Judice & Ninke 型」と呼ばれるものもある。（図４）
図３、図４において、それぞれの領域は画素であり、斜線領域の画素は処理対象データである。その他の数字の記述された領域は誤差データの拡散先の画素であり、数字の割合に応じて、誤差データｅ（ｉ，ｊ）を分配する。以上の方式以外にも、いろいろな拡散方法が提案されており、この分配率と分配画素が誤差拡散法のノウハウとなっている。
【００１２】
以上に説明した誤差拡散法は、スムースな濃度変換を再現でき、滑らかな印刷ができる。特に写真画像のような印刷物を生成するときには非常に有効な画像処理方法である。このため現在多くの製品で誤差拡散法が用いられている。
【００１３】
又、従来例としては、例えば特許文献１と特許文献２をあげることが出来る。
【特許文献１】特登録２７０２５９３号公報
【特許文献２】特開平９−２１９７９１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかし、この誤差拡散法は、文字データや線画などでは細線がかすれたり、境界において輪郭がボケたり孤立点が生成されたりする場合がある。その理由は、この誤差拡散法は本来存在する場所の画像データを別の個所に配置するという操作を行っているため、印刷時に周囲の画素情報が付加されるためである。
【００１５】
この欠点をなくすため、文字データの場合は画像処理方法の設定を変更する、などの方法があるが、印刷データ中に画像と文字が混載されている場合には適当な設定ができず、良好な印刷ができない。特に画像データ中にある文字データは、画像と同様に処理されて、滲んだ印刷になってしまという問題がある。
【課題を解決するための手段】
【００１６】
この課題を解決するために、本発明に係る画像処理方法は、以下のような機能を備える。
【００１７】
請求項１の発明は、誤差拡散法を用いる画像処理方法であり、
拡散元と拡散先の画像データの特性を判断し、
その判断した結果に基づき、誤差拡散法における誤差データを拡散する、
ことを特徴とする画像処理方法である。
【００１８】
このように、画像データの特性を判断することにより、誤差の拡散方法を決めることができる。
【００１９】
請求項２の発明は、前記判断方法において、
画像処理中の判断に用いるために、画像データもしくは属性データもしくは画像データの特性を判断するための情報を保持する、
ことを特徴とする画像処理方法である。
【００２０】
このように、画像データの特性を保持することにより、画像処理時に参照することができる。
【００２１】
請求項３の発明は、前記判断方法において、
画素間の画像データの差分を計算し、
その差分を判断する、
ことを特徴とする画像処理方法である。
【００２２】
このように、画像データの差分を計算することにより、画像データの色調の変化を判断することができる。
【００２３】
請求項４の発明は、前記判断方法において、
画素間の画像データの差分を計算し、
その差分をある閾値と比較することにより判断する、
ことを特徴とする画像処理方法である。
【００２４】
このように、画像データの差分をある閾値と比較することにより、画像データの色調の変化が大きい点を検出することができる。
【００２５】
請求項５の発明は、前記判断方法において、
画素の画像データに含まれる属性データから判断する、
ことを特徴とする画像処理方法である。
【００２６】
このように、属性データを参照することのより、画像の特性を判断することができる。
【００２７】
請求項６の発明は、前記誤差拡散法における誤差データを拡散する方法で、
誤差データを拡散する処理において、
前記判断方法により、
誤差データを拡散する処理時に判断を行い、
誤差データを拡散すると判断した場合、拡散データを拡散先の画像データに拡散する、
誤差データを拡散すると判断した場合、拡散データを拡散先の画像データに拡散しない、
ことを特徴とする画像処理方法である。
【００２８】
このように、画像データの特性が異なる領域に誤差データを拡散しないように処理することにより、特性が異なる領域への拡散をしない制御をすることができる。
【００２９】
請求項７の発明は、前記誤差拡散法における誤差データを拡散する方法で、
誤差データを加算する処理において、
前記判断方法により、
誤差データを加算する処理時に判断を行い、
誤差データを加算すると判断した場合、誤差データを画像データに加算する、
誤差データを加算しないと判断した場合、誤差データを画像データに加算しない、
ことを特徴とする画像処理方法である。
【００３０】
このように、特性が同じ領域に誤差データを拡散することにより、画像濃度を保持して特性が異なる領域への拡散をしない制御をすることができる。
【００３１】
請求項８の発明は、誤差拡散法を用いる画像処理方法を備えた画像処理装置であり、
拡散元と拡散先の画像データの特性を判断する判断手段と、
その判断した結果に基づき、誤差拡散法における誤差データを拡散する画像処理手段、
を備えたことを特徴とする画像処理装置である。
【００３２】
このように、画像データの特性を判断することにより、誤差の拡散方法を決めることができる装置を提供できる。
【００３３】
請求項９の発明は、前記判断手段において、
画像処理中の判断に用いるために、画像データもしくは属性データもしくは画像データの特性を判断するための情報を保持する記憶手段、
を備えたことを特徴とする画像処理装置である。
【００３４】
このように、画像データの特性を保持することにより、画像処理時に参照することができる装置を提供できる。
【００３５】
請求項１０の発明は、前記判断手段において、
画素間の画像データの差分を計算し、
その差分を判断する判断手段、
を備えたことを特徴とする画像処理装置である。
【００３６】
このように、画像データの差分を計算することにより、画像データの色調の変化を判断することができる装置を提供できる。
【００３７】
請求項１１の発明は、前記判断手段において、
画素間の画像データの差分を計算し、
その差分をある閾値と比較することにより判断する判断手段、
を備えたことを特徴とする画像処理装置である。
【００３８】
このように、画像データの差分をある閾値と比較することにより、画像データの色調の変化が大きい点を検出することができる装置を提供できる。
【００３９】
請求項１２の発明は、前記判断手段において、
画素の画像データに含まれる属性データから判断する判断手段、
を備えたことを特徴とする画像処理装置である。
【００４０】
このように、属性データを参照することのより、画像の特性を判断することができる装置を提供できる。
【００４１】
請求項１３の発明は、前記画像処理手段で、
誤差データを拡散する処理において、
前記判断手段により、
誤差データを拡散する処理時に判断を行い、
誤差データを拡散すると判断した場合、拡散データを拡散先の画像データに拡散する、
誤差データを拡散すると判断した場合、拡散データを拡散先の画像データに拡散しない、
ことを特徴とする画像処理装置である。
【００４２】
このように、画像データの特性が異なる領域に誤差データを拡散しないように処理することにより、特性が異なる領域への拡散をしない制御をすることができる装置を提供できる。
【００４３】
請求項１４の発明は、前記画像処理手段で、
誤差データを加算する処理において、
前記判断手段により、
誤差データを加算する処理時に判断を行い、
誤差データを加算すると判断した場合、誤差データを画像データに加算する、
誤差データを加算しないと判断した場合、誤差データを画像データに加算しない、
ことを特徴とする画像処理装置である。
【００４４】
このように、画像データの特性が異なる領域に誤差データを拡散しないように処理することにより、特性が異なる領域への拡散をしない制御をすることができる装置を提供できる。
【発明の効果】
【００４５】
以上説明したように、本発明に係る画像処理方法は、以下のような機能を備える。
【００４６】
この画像処理方法は、画像処理を行う当該画素の画像データと、周囲の画素の画像データを比較し、その特性が異なる領域から拡散されてきた誤差データの加算を行わない。
【００４７】
この制御を行うことにより、誤差拡散法を用いたときに発生しやすい、文字データや線画などの画像におけるにじみや孤立点の発生を防ぐことができる。
【発明を実施するための最良の形態】
【００４８】
以下、本発明の実施の形態を説明する。
【００４９】
（第１実施例）
図５は本発明に関わる画像処理手順を示すブロック図である。以下各構成部の説明をする。
【００５０】
ここで入力される色情報はレッド（Ｒ）、グリーン（Ｇ）、ブルー（Ｂ）の濃度を表し、（Ｒ、Ｇ、Ｂ）というベクトル量で表す。
【００５１】
また出力される色情報はイエロー（Ｙ）、マゼンタ（Ｍ）、シアン（Ｃ）の濃度を表し、（Ｙ、Ｍ、Ｃ）というベクトル量で表す。これらの値は各色８ビットとし、
０≦Ｒ≦ＦＦ
０≦Ｇ≦ＦＦ
０≦Ｂ≦ＦＦ
また、
０≦Ｙ≦ＦＦ
０≦Ｍ≦ＦＦ
０≦Ｃ≦ＦＦ
とする。
【００５２】
＜入力γ補正＞入力されたＲＧＢの信号をデバイスの出力特性に合うようにγ補正が行われる。補正後の信号をＲｇ、Ｇｇ、Ｂｇとする。
【００５３】
＜色変換処理＞ＲＧＢデータをＣＭＹデータに変換する。このブロックは色変換のテーブルを持っており、入力値に対してタイムテーブルを参照して出力値を決定する。
【００５４】
＜出力γ変換＞入力の濃度と実際に打つインク量は一般に一致せず、インクの特性によるところが大きい。この濃度と実際に打つインク量を補正するための変換である。
【００５５】
＜２値化処理＞インクジェットプリンタではインクのドットをメディアに対して打つ。そのドットを密集、分散させることにより画像の濃淡を表し、画像を表現する。このドットを打つ・打たないという情報に変換する処理が２値化処理である。この２値化処理のとき、誤差拡散法を用いた処理を行う。本発明ではこの誤差拡散法の処理を行うときに、つぎのような処理を行う。
【００５６】
本発明の２値化処理における誤差拡散法の制御を説明する。
【００５７】
図６は本発明における処理の順序を示す図である。６０１は処理対象の画像の全領域を示している。６０２は画像を構成する画素データである。
【００５８】
処理の開始は左上の画素から始める。その位置から右方向に処理をしていく。一番右の画素データまで処理をしたら、同様に処理を行った下の行の処理を行う。この処理を繰り返し、最後に右下の画素を処理して終了する。
【００５９】
図７はある画素ａ（ｉ、ｊ）の処理を行うとき、加算される誤差データ元の画素を示す図である。本実施例においては「Floyd & Steinberg 型」の誤差拡散の処理を想定するが、本発明はこの方式に限定されるものではない。
【００６０】
図７においては、ある画素ａ（ｉ、ｊ）の処理時に拡散データ元の参照する画素を示しているが、画像中の端の画素データを処理する場合、どの画素を参照すればよいかという点に関しては考慮されてない。図８は画像中の端に画素データがある場合、この画素を処理するときに参照する画素を示す図である。（ａ）画像中の左上端の画素データ８１０を処理する場合は，参照する画素データがないので、初期設定された処理を行う。（ｂ）上端の画素データ８２０を処理する場合は、図中８２１の画素データを参照する。（ｃ）右上端の画素データ８３０を処理する場合は、図中８３１の画素データを参照する。（ｄ）左端の画素データ８４０を処理する場合は、図中８４１、８４２の画素データを参照する。（ｅ）端に接していない画素データ８５０を処理する場合は、図中８５１〜８５４の画素データを参照する。（ｆ）右端の画素データ８６０を処理する場合は、図中８６１〜８６３の画素データを参照する。（ｇ）左下端の画素データ８７０を処理する場合は、図中８７１、８７２の画素データを参照する。（ｈ）下端の画素データ８８０を処理する場合は、図中８８１〜８８４の画素データを参照する。（ｉ）右下端の画素データ８９０を処理する場合は、図中８９１〜８９３の画素データを参照する。
【００６１】
本実施例ではある画素を処理するときに参照する範囲を図７で示したが、拡散方法が本実施例で挙げた方法と異なる場合（例えば処理の順番が列方向の場合や、行方向を複数行にわたって処理を行う場合）であっても、拡散データ元の画素データを参照しているならば、図７の範囲に限定されない。また、処理対象の画素が端にある場合の参照方法も図８で示した方法には限定されない。
【００６２】
また本実施例においては処理する単位を画素にしているが、本発明を実施する場合、画素単位はではく、任意の領域を単位として実施してもよい。
【００６３】
図９は第１実施例における、誤差データの拡散元と拡散先の関係を示した図である。拡散元の画像データの座標を（ｋ、ｍ）、拡散先の画像データの座標を（ｉ、ｊ）と置く。上の図は誤差データを拡散するときの周囲画素との関係を示した図である。図中９０１の画素の誤差データｅ（ｋ、ｍ）は，拡散先によって異なる所定の係数αを乗算して拡散先の画素データに加算される。このときの（０、１）方向への加算を（１）、（１、−１）方向への加算を（２）、（１、０）方向への加算を（３）、（１、１）方向への加算を（４）とする。この後の画素の処理順序は９０２→９０３→９０４→９０５と進む。
【００６４】
一方、下の図は誤差データを加算するときの周囲画素との関係を示した図である。図中９１１が誤差データを加算する対象となる画素データである。2つの図の（１）、（２）、（３）、（４）は対応を取っている。加算されるときの順序は（４）、（３）、（２）、（１）となる。
【００６５】
図１０は本実施例における画像データを示す記号の定義を示す図である。
【００６６】
ａ（ｉ、ｊ）各色の画像データに関して、
イエロー（Ｙ）の画像データをＹ（ｉ、ｊ）
マゼンタ（Ｍ）の画像データをＭ（ｉ、ｊ）
シアン（Ｃ）の画像データをＣ（ｉ、ｊ）
とおく。また、誤差データを加算するか否かの判断をする閾値データを
イエロー（Ｙ）の閾値データをＭｙ
マゼンタ（Ｍ）の閾値データをＭｍ
シアン（Ｃ）の閾値データをＭｃ
とおく。
【００６７】
（式１０−１）は画像データａ（ｉ、ｊ）の要素がイエロー、マゼンタ、シアンの画像データからなることを示す式である。
【００６８】
（式１０−２）は画像データａ（ｉ、ｊ）の演算が各要素であるイエロー、マゼンタ、シアンの画像データ量を計算することを示す式である。
【００６９】
（式１０−３）は画像データａ（ｉ、ｊ）の演算の一例を示す式である。
【００７０】
（式１０−４）は画像データａ（ｉ、ｊ）の差分の絶対値を示す式である。
【００７１】
（式１０−５）は閾値Ｍがイエロー閾値データ（Ｍｙ）、マゼンタの閾値データを（Ｍｍ）、
シアンの閾値データ（Ｍｃ）の要素からなることを示す図である。
【００７２】
図１１は第１実施例における処理順序を示すフローチャートである。ａ（ｉ、ｊ）の画素の処理を開始すると、Ｓ１１０１において、ａ（ｉ、ｊ）とａ（ｉ−１、ｊ−１）画像データの差分を計算する。その差分が各要素（Ｃ，Ｍ，Ｙ）において閾値Ｍ以下ならば、Ｓ１１０２に進む。差分が各要素のうち１色でも閾値Ｍ以上ある場合はＳ１１０３に進む。Ｓ１１０２においては、ａ（ｉ−１、ｊ−１）の誤差データをａ（ｉ、ｊ）の画像データに加算しＳ１１０３に進む。
【００７３】
Ｓ１１０３において、ａ（ｉ、ｊ）とａ（ｉ−１、ｊ）画像データの差分を計算する。その差分が各要素（Ｃ，Ｍ，Ｙ）において閾値Ｍ以下ならば、Ｓ１１０４に進む。差分が各要素のうち１色でも閾値Ｍ以上ある場合はＳ１１０３に進む。Ｓ１１０４においては、ａ（ｉ−１、ｊ）の誤差データをａ（ｉ、ｊ）の画像データに加算しＳ１１０５に進む。
【００７４】
Ｓ１１０５において、ａ（ｉ、ｊ）とａ（ｉ−１、ｊ＋１）画像データの差分を計算する。その差分が各要素（Ｃ，Ｍ，Ｙ）において閾値Ｍ以下ならば、Ｓ１１０６に進む。差分が各要素のうち１色でも閾値Ｍ以上ある場合はＳ１１０５に進む。Ｓ１１０６においては、ａ（ｉ−１、ｊ＋１）の誤差データをａ（ｉ、ｊ）の画像データに加算しＳ１１０７に進む。
【００７５】
Ｓ１１０７において、ａ（ｉ、ｊ）とａ（ｉ、ｊ−１）画像データの差分を計算する。その差分が各要素（Ｃ，Ｍ，Ｙ）において閾値Ｍ以下ならば、Ｓ１１０８に進む。差分が各要素のうち１色でも閾値Ｍ以上ある場合はａ（ｉ、ｊ）の処理を終了する。Ｓ１１０８においては、ａ（ｉ、ｊ−１）の誤差データをａ（ｉ、ｊ）の画像データに加算し、ａ（ｉ、ｊ）の処理を終了する。
【００７６】
（第２実施例）
第１実施例では、図９にあるように、参照データである元画像データを保持し、画像データの差分をとり、色調の異なる領域の誤差データを加算しない制御を行った。しかし、この処理は画像の特性がわかるデータを保持することが必要であり、誤差を拡散する領域を広げた「Jarvis, Judice & Ninke 型」などで同様の制御をすると、メモリ領域の占有、実行速度の低下をもたらす。
【００７７】
そのため、本実施例においては、誤差を拡散時に処理を行う。この制御により、参照のための元画像データを保持せずに処理を行うことができる。
【００７８】
図１２は第２実施例における処理順序を示すフローチャートである。拡散元の画素であるａ（ｋ、ｍ）の画素の処理を開始すると、
Ｓ１２０１において、ａ（ｋ、ｍ）とａ（ｋ、ｍ＋１）の画像データの差分を計算する。その差分が各要素（Ｃ，Ｍ，Ｙ）において閾値Ｍ以下の場合、Ｓ１２０２に進む。閾値Ｍ以上の場合、Ｓ１２０３に進む。Ｓ１２０２においては、ａ（ｋ、ｍ）の誤差データｅ（ｋ、ｍ）×α（０、１）をａ（ｋ、ｍ＋１）に加算し、Ｓ１２０３に進む。
【００７９】
Ｓ１２０３において、ａ（ｋ、ｍ）とａ（ｋ＋１、ｍ−１）の画像データの差分を計算する。その差分が各要素（Ｃ，Ｍ，Ｙ）において閾値Ｍ以下の場合、Ｓ１２０４に進む。閾値Ｍ以上の場合、Ｓ１２０５に進む。Ｓ１２０４においては、ａ（ｋ、ｍ）の誤差データｅ（ｋ、ｍ）×α（１、−１）をａ（ｋ＋１、ｍ−１）に加算し、Ｓ１４０５に進む。
【００８０】
Ｓ１２０５において、ａ（ｋ、ｍ）とａ（ｋ＋１、ｍ）の画像データの差分を計算する。その差分が各要素（Ｃ，Ｍ，Ｙ）において閾値Ｍ以下の場合、Ｓ１２０６に進む。閾値Ｍ以上の場合、Ｓ１２０７に進む。Ｓ１２０６においては、ａ（ｋ、ｍ）の誤差データｅ（ｋ、ｍ）×α（１、０）をａ（ｋ＋１、ｍ）に加算し、Ｓ１４０７に進む。
【００８１】
Ｓ１２０７において、ａ（ｋ、ｍ）とａ（ｋ＋１、ｍ）の画像データの差分を計算する。その差分が各要素（Ｃ，Ｍ，Ｙ）において閾値Ｍ以下の場合、Ｓ１２０８に進む。閾値Ｍ以上の場合、ａ（ｋ、ｍ）を終了する。Ｓ１２０８においては、ａ（ｋ、ｍ）の誤差データｅ（ｋ、ｍ）×α（１、１）をａ（ｋ＋１、ｍ＋１）に加算し、ａ（ｋ、ｍ）の処理をする。
【００８２】
図１３は第１、２実施例を一般化した式である。θはステップ関数である。
【００８３】
（第３実施例）
第２実施例では、画像データを元に、差分を計算し処理を行った。本実施例では、画像データに属性データを付加させることにより、より高速で精度の高い処理を行う。
【００８４】
図１４は本実施例における画像データを示す記号の定義を示す図である。
【００８５】
ａ（ｉ、ｊ）各色の画像データに関して、
イエロー（Ｙ）の画像データをＹ（ｉ、ｊ）
マゼンタ（Ｍ）の画像データをＭ（ｉ、ｊ）
シアン（Ｃ）の画像データをＣ（ｉ、ｊ）
属性データをＺ（ｉ、ｊ）
とおく。
【００８６】
（式１４−１）は画像データａ（ｉ、ｊ）の要素がイエロー、マゼンタ、シアンの画像データ、および画像の特性を示す属性データからなることを示す式である。
【００８７】
図１５は、第３実施例における処理順序を示すフローチャートである。拡散元の画素であるａ（ｋ、ｍ）の画素の処理を開始すると、S１５０１において、ａ（ｋ、ｍ）とａ（ｋ、ｍ＋１）の属性データを比較する。その属性データが一致した場合、S１５０２に進む。一致しない場合、S１５０３に進む。S１５０２においては、ａ（ｋ、ｍ）の誤差データｅ（ｋ、ｍ）×α（０、１）をａ（ｋ、ｍ＋１）に加算し、S１５０３に進む。
【００８８】
S１５０３において、ａ（ｋ、ｍ）とａ（ｋ＋１、ｍ−１）の属性データを比較する。その属性データが一致した場合、S１５０４に進む。一致しない場合、S１５０５に進む。S１５０４においては、ａ（ｋ、ｍ）の誤差データｅ（ｋ、ｍ）×α（１、−１）をａ（ｋ＋１、ｍ−１）に加算し、S１５０５に進む。
【００８９】
S１５０５において、ａ（ｋ、ｍ）とａ（ｋ＋１、ｍ）の属性データを比較する。その属性データが一致した場合、S１５０６に進む。一致しない場合、S１５０７に進む。S１５０６においては、ａ（ｋ、ｍ）の誤差データｅ（ｋ、ｍ）×α（１、０）をａ（ｋ＋１、ｍ）に加算し、S１５０７に進む。
【００９０】
S１５０７において、ａ（ｋ、ｍ）とａ（ｋ＋１、ｍ）の属性データを比較する。その属性データが一致した場合、S１５０８に進む。一致しない場合、ａ（ｋ、ｍ）を終了する。S１５０８においては、ａ（ｋ、ｍ）の誤差データｅ（ｋ、ｍ）×α（１、１）をａ（ｋ＋１、ｍ＋１）に加算し、ａ（ｋ、ｍ）の処理をする。
【００９１】
図１６は、第３実施例における処理を、一般化した式である。δは単位インパルス関数である。
【００９２】
図１７は、第１〜３実施例が実際に画素レベルで処理させる様子を示した図である。
【００９３】
１７０１は通常の誤差拡散を行っている様子である。
【００９４】
１７０２は右と右下の画素には誤差を拡散できず、下と左下の画素に拡散している様子である。
【００９５】
１７０３は右の画素には誤差を拡散できず、右下と下と左下の画素に拡散している様子である。
【００９６】
１７０４は左下の画素には誤差を拡散できず、右と右下と下の画素に拡散している様子である。
【００９７】
１７０５は右と右下と下の画素には誤差を拡散できず、左下の画素に拡散している様子である。
【００９８】
図１８は、第１〜３実施例のフローを具体的な画像を処理するとき、どのように機能するかを示す図である。
【００９９】
この画像は濃度勾配がある画像中に文字が描かれている画像である。図中矢印で示した順に処理を行う。処理当初、滑らかな濃度勾配で始まるため、通常の誤差拡散の処理を行う。（１）の位置において文字領域に入るとき、画像データの差分が発生する。本発明の制御によって、色調が大きく異なる領域には誤差データを拡散しない。同様に実施例１においては（２）、（３）の位置においても誤差データを拡散しない。（４）においては、差分が閾値以下であるため誤差データを拡散する。この制御より（１）、（２）、（３）においては、画像データの誤差データが文字データに入らない、または文字データの誤差データが画像データに入らないため、文字データ、線画などの画像においてにじみの発生や孤立点の発生を防ぐことができる。また実施例２、３を実施することによって、（４）のように、色調が似ているが属性データが異なる場合においても、誤差データを拡散しないように制御することができる。
【図面の簡単な説明】
【０１００】
【図１】誤差拡散法の誤差データの拡散方法を示す図である。
【図２】誤差拡散法を説明する図である。
【図３】誤差拡散法における「Floyd & Steinberg 型」の拡散領域と重み付け係数を示す図である。
【図４】誤差拡散法における「Jarvis, Judice & Ninke 型」の拡散領域と重み付け係数を示す図である。
【図５】本発明の第１実施例において、画像処理手順を示す図である。
【図６】第１実施例において、画素の処理順序を示す図である。
【図７】第１実施例において、ある画素の処理時の誤差データの拡散元を示す図である。
【図８】第１実施例において、ある画素の処理時の誤差データの拡散元を示す図である。
【図９】第１実施例において、誤差拡散と周囲画素との関係を示す図である。
【図１０】第１実施例において、処理を説明するための定義式である。
【図１１】第１実施例において、処理手順を示すフローチャートである。
【図１２】第２実施例において、処理手順を示すフローチャートである。
【図１３】第１、２実施例において、処理方法を一般化した式である。
【図１４】第３実施例において、処理を説明するための定義式である。
【図１５】第３実施例において、処理手順を示すフローチャートである。
【図１６】第３実施例において、処理方法を一般化した式である。
【図１７】第１〜３実施例における、画素レベルでの処理の様子を示した図である。
【図１８】第１〜３実施例における、画像レベルでの処理の様子を示した図である。
【符号の説明】
【０１０１】
１０１  拡散元画素
１０２〜１０５  拡散先画素
５０１  入力γ変換部
５０２  色変換
５０３  出力γ変換部
５０４  ２値化処理
６０１  画素
６０２  画像データ全領域
７０１  処理対象画素
７０２〜７０５  誤差データ拡散元画素
８１０  処理対象画素
８２０  処理対象画素
８２１  参照画素
８３０  処理対象画素
８３１  参照画素
８４０  処理対象画素
８４１、８４２  参照画素
８５０  処理対象画素
８５１〜８５４  参照画素
８６０  処理対象画素
８６１〜８６３  参照画素
８７０  処理対象画素
８７１、８７２  参照画素
８８０  処理対象画素
８８１〜８８４  参照画素
８９０  処理対象画素
８９１〜８９３  参照画素
９０１  拡散元画素
９０２〜９０５  拡散先画素
９１１  処理対象画素
９１２〜９１５  誤差データ拡散元画素
１７０１  通常の誤差拡散を行っている画素
１７０２  右と右下の画素には誤差を拡散できず、下と左下の画素に拡散している画素
１７０３  右の画素には誤差を拡散できず、右下と下と左下の画素に拡散している画素
１７０４  左下の画素には誤差を拡散できず、右と右下と下の画素に拡散している画素
１７０５  右と右下と下の画素には誤差を拡散できず、左下の画素に拡散している画素
【図１】
2006345385.tif 000003
【図２】
2006345385.tif 000004
【図３】
2006345385.tif 000005
【図４】
2006345385.tif 000006
【図５】
2006345385.tif 000007
【図６】
2006345385.tif 000008
【図７】
2006345385.tif 000009
【図８】
2006345385.tif 000010
【図９】
2006345385.tif 000011
【図１０】
2006345385.tif 000012
【図１１】
2006345385.tif 000013
【図１２】
2006345385.tif 000014
【図１３】
2006345385.tif 000015
【図１４】
2006345385.tif 000016
【図１５】
2006345385.tif 000017
【図１６】
2006345385.tif 000018
【図１７】
2006345385.tif 000019
【図１８】
2006345385.tif 000020