(57)【要約】【課題】  人の視覚特性に基づき階調再現がより滑らかな誤差拡散を行う。【解決手段】  画像処理装置における階調再現処理部２０９において誤差算出部３０５を備えている。上記誤差算出部３０５にはレチネックス計算部Ａ５０２、レチネックス計算部Ｂ５０３、差分絶対値計算部５０４、判定部５０５、拡散誤差計算部５０６を備えている。これにより、レチネックス計算部Ａ５０２、レチネックス計算部Ｂ５０３でレチネックス値Ｒｘ・Ｒｘ’を計算した後、両値の差分絶対値を差分絶対値計算部５０４において算出し、判定部５０５において閾値との比較等をして適正な総誤差を求め拡散誤差を算出することで、より人の視覚特性に一致した滑らかな階調再現が可能となる。【選択図】  図１
2006025378.tif 000002
【特許請求の範囲】
【請求項１】
入力画像データに誤差拡散処理を施して出力画像データとする階調再現処理部を備える画像処理装置において、
上記階調再現処理部は、上記入力画像データ内にある所定の注目画素の注目画素画像データと、上記注目画素の周辺に存在する周辺画素の周辺画素画像データとを用いて、人の視覚特性における空間的対比効果に基づいて上記周辺画素画像データを修正するための拡散誤差を算出する誤差算出部を備えていることを特徴とする画像処理装置。
【請求項２】
上記誤差算出部は、
上記入力画像データに上記注目画素及び周辺画素の拡散誤差の総和である蓄積誤差を加算した蓄積誤差画像データに対して、予め定められる評価関数を用いて第１評価値を求める第１計算部と、
上記蓄積誤差画像データと当該蓄積誤差画像データを量子化処理した量子化処理画像データとに対して、予め定められている拡散係数及び上記周辺画素の各拡散誤差の総和とを用いて、上記周辺画素の各拡散誤差の総和を拡散後、上記注目画素画像データを求める誤差拡散部と、
上記誤差拡散部で求められた上記注目画素画像データに対して、予め定められる評価関数を用いて第２評価値を求める第２計算部とを備えており、
上記第１評価値と第２評価値を用いて拡散誤差を算出することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
上記誤差算出部は、
上記周辺画素画像データを修正するための各拡散誤差の総和を変化させる調整部を備えていることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
上記誤差算出部は、蓄積誤差を加算した画像データ内の注目画素における第１のレチネックス値及び各拡散誤差の総和を拡散後、画像データ内の注目画素における第２のレチネックス値を算出し、両者の差分の絶対値を閾値と比較して、各拡散誤差の総和の最適値を求めるものであることを特徴とする請求項１に記載の画像処理装置。
【請求項５】
請求項１から４のいずれか１項に記載の画像処理装置を備えることを特徴とする画像形成装置。
【請求項６】
入力画像データに誤差拡散処理を施して出力画像データとする画像処理方法において、
上記入力画像データ内にある上記注目画素画像データと、上記周辺画素画像データとを用いて、人の視覚特性における空間的対比効果に基づいて上記周辺画素画像データを修正するための拡散誤差を算出する誤差算出工程を含むことを特徴とする画像処理方法。
【請求項７】
上記誤差算出工程にて、
上記入力画像データに上記注目画素及び周辺画素の各拡散誤差の総和である蓄積誤差を加算した蓄積誤差画像データに対して、予め定められる評価関数を用いて第１評価値を求める第１計算工程と、
上記蓄積誤差画像データと当該蓄積誤差画像データを量子化処理した量子化処理画像データとに対して、予め定められている拡散係数及び上記周辺画素の各拡散誤差の総和とを用いて、上記周辺画素の各拡散誤差の総和を拡散後、上記注目画素画像データを求める誤差拡散工程と、
上記誤差拡散工程で求められた上記注目画素画像データに対して、予め定められる評価関数を用いて第２評価値を求める第２計算工程とを含むことを特徴とする請求項６に記載の画像処理方法。
【請求項８】
上記誤差算出工程にて、
上記周辺画素画像データを修正するための各拡散誤差の総和を変更する調整工程を含むことを特徴とする請求項７に記載の画像処理方法。
【請求項９】
請求項１から４のいずれか１項に記載の画像処理装置が備える各部をコンピュータに実行させるための画像処理プログラム。
【請求項１０】
請求項９に記載の画像処理プログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力画像データに誤差拡散法により中間調処理を施す画像処理方法および画像処理装置並びにそれを備えた画像形成装置、画像処理プログラム、コンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【０００２】
多値出力の出力装置を用いて中間調を含む階調画像を擬似的に形成するためには、階調再現性を考慮しつつ階調画像を多値画像に変換する階調再現処理を行う必要がある。このような多値化方法として、組織的ディザ法をはじめとして種々の方法が従来から用いられているが、その中でも誤差拡散法は、高画質の画像が得られる手法として広く知られている。
【０００３】
誤差拡散法は、或る注目画素に関して、注目画素の濃度を所定の閾値と比較して量子化値を求める量子化を行い、量子化値に対して量子化前の濃度の差分を誤差として求め、求めた誤差を、注目画素の周辺に位置する量子化前の画素の濃度に拡散することにより階調数を削減し、かつ画像全体としての濃度階調を維持するものである。
【０００４】
誤差拡散法は、２値化した画像に再現時においてモアレ模様が出にくく、ディザ法などと比較して画質が優れているという長所を有している（例えば、非特許文献１）。
【非特許文献１】角谷  繁明、”誤差拡散法における閾値操作手法”、電子写真学会誌、１９９８年、第３７巻、第２号、ｐ．１８６−１９２
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の構成では、誤差拡散法で用いられているＣＭＹＫの各値は測色値であるため、人の視覚特性と必ずしも線形関係を維持しておらず、また、人が画像を見る場合、注目している画素からの反射光だけではなく、その周辺に存在する画素の反射光の影響をうけるという空間的対比効果が考慮されていないため、人の視覚特性に一致する滑らかな階調再現が困難である。
【０００６】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、人の視覚特性に基づいて、階調再現がより滑らかな誤差拡散を行うことができる画像処理方法および画像処理装置並びにそれを備えた画像形成装置、画像処理プログラム、コンピュータ読み取り可能な記録媒体を実現することにある。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、本発明に係る画像処理装置は、入力画像データに誤差拡散処理を施して出力画像データとする階調再現処理部を備える画像処理装置において、上記階調再現処理部は、上記入力画像データ内にある所定の注目画素の注目画素画像データと、上記注目画素の周辺に存在する周辺画素の周辺画素画像データとを用いて、人の視覚特性における空間的対比効果に基づいて上記周辺画素画像データを修正するための拡散誤差を算出する誤差算出部を備えていることを特徴とする。
【０００８】
上記の構成によれば、本発明の画像処理装置は、階調再現処理部において、空間的対比効果に基づいて周辺画素に拡散させる拡散誤差を算出する。この空間的対比効果とは、注目画素の階調が周辺画素の階調に対して差が大きい場合に、注目画素がより鮮明に見える効果がある。このように、空間的対比効果を考慮することで、従来よりも人の視覚特性に一致した滑らかな階調再現の誤差拡散を実現することができる。
【０００９】
さらに、本発明に係る画像処理装置は、上記誤差算出部が、上記入力画像データに上記注目画素及び周辺画素の各拡散誤差の総和である蓄積誤差を加算した蓄積誤差画像データに対して、予め定められる評価関数を用いて第１評価値を求める第１計算部と、上記蓄積誤差画像データと上記蓄積誤差画像データを量子化処理した量子化処理画像データとに対して、予め定められている拡散係数及び上記周辺画素の各拡散誤差の総和とを用いて、周辺画素の各拡散誤差の総和を拡散後、上記注目画素画像データを求める誤差拡散部と、誤差拡散部で求められた各拡散誤差の総和を拡散後の上記注目画素画像データに対して、予め定められる評価関数を用いて第２評価値を求める第２計算部とを備えていることが好ましい。
【００１０】
ここで、上記拡散誤差とは各画素における２値化処理によって生ずる誤差のことである。また、上記予め定められる評価関数とは、人の視覚特性を考慮したレチネックス理論に基づく関数（例えば、周辺分布関数としてガウシアン係数データを使った関数）のことである。また、上記予め定められている拡散係数とは、上記周辺画素に誤差を拡散させるための係数である。
【００１１】
上記の構成によれば、さらに、上記第１計算部と第２計算部において第１評価値と第２評価値を求める計算をすることで、注目画素の値だけでなく周辺画素も含めた空間的対比効果を考慮することができる。つまり、上記第１計算部では、量子化前の空間的対比効果を考慮した注目画素における評価値を第１評価値として算出し、上記第２計算部では、量子化を施し一旦周辺画素へ誤差を拡散した後の空間的対比効果を考慮した注目画素における評価値を第２評価値として算出する。そして、これらの第１評価値と第２評価値が一致するよう量子化後の周辺画素へ拡散するための拡散誤差の総和を決定することで、人の視覚特性に一致した滑らかな階調再現を実現することができる。
【００１２】
さらに、本発明に係る画像処理装置は、上記誤差算出部が、上記周辺画素画像データを修正するための拡散誤差の総和を変更する調整部を備えていることが好ましい。
【００１３】
上記の構成によれば、上記第１評価値と第２評価値を比較し、第１評価値と第２評価値の差が所定の範囲内になるように、量子化後の周辺画素へ拡散するための拡散誤差の総和を変更することにより上記２つの評価値をほぼ等しい値に調整する。これにより、さらに人の視覚特性に一致したより滑らかな階調再現を実現することができる。
【００１４】
さらに、本発明に係る画像処理装置は、上記誤差算出部が、蓄積誤差を加算した画像データ内の注目画素における第１のレチネックス値および各拡散誤差の総和を拡散した後の画像データ内の注目画素における第２のレチネックス値を算出し、両者の差分の絶対値を閾値と比較して、各拡散誤差の総和の最適値を求めることが好ましい。
【００１５】
これにより、さらに、人の視覚特性を考慮した階調再現処理（人の視覚特性を考慮した量子化と周辺画素へ総誤差の拡散）を行うことができる。なお、第１のレチネックス値とは、蓄積誤差を加算した画像データ内の注目画素における第１評価値として、レチネックス理論に基づき算出したレチネックス値である。また、第２のレチネックス値とは、各拡散誤差の総和を拡散した後の画像データ内の注目画素における第２評価値として、レチネックス理論に基づき算出したレチネックス値である。
【００１６】
また、本発明に係る画像形成装置は、上記画像処理装置を備えていることを特徴としている。これにより、注目画素に対する周辺画素が人の視覚特性に一致した滑らかな階調再現を実現することができるので、品質のよい画像を出力（形成）することが可能となる。
【００１７】
また、本発明の画像処理方法は、入力画像データに誤差拡散処理を施して出力画像データとする階調再現処理工程を備える画像処理方法において、上記階調再現処理工程は、上記入力画像データ内にある上記注目画素画像データと、上記周辺画素画像データとを用いて、人の視覚特性における空間的対比効果に基づいて上記周辺画素画像データを修正するための拡散誤差を算出する誤差算出工程を含むことを特徴とする。
【００１８】
さらに、本発明の画像処理方法は、上記誤差算出工程にて、上記入力画像データに蓄積誤差を加算した蓄積誤差画像データに対して、予め定められる評価関数を用いて第１評価値を求める第１計算工程と、上記蓄積誤差画像データと上記蓄積誤差画像データを量子化処理した量子化処理画像データとに対して、予め定められている拡散係数及び上記周辺画素の各拡散誤差の総和とを用いて、上記周辺画素の各拡散誤差の総和を拡散後の上記注目画素画像データを求める誤差拡散工程で求められた各拡散誤差の総和を、拡散後の上記注目画素画像データに対して、予め定められる評価関数を用いて第２評価値を求める第２計算工程とを含むことが好ましい。
【００１９】
さらに、本発明の画像処理方法は、上記誤差算出工程にて、上記周辺画素画像データを修正するための各拡散誤差の総和を変更して算出する調整工程を含むことが好ましい。
【００２０】
なお、上記画像処理装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記の各部として動作させることにより上記画像処理装置をコンピュータにて実現させる画像処理装置の画像処理制御プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【発明の効果】
【００２１】
以上のように、本発明に係る画像処理装置は、上記階調再現処理部が上記入力画像データ内にある所定の注目画素の注目画素画像データと、上記注目画素の周辺に存在する周辺画素の周辺画素画像データとを用いて、人の視覚特性における空間的対比効果に基づいて上記周辺画素画像データを修正するための拡散誤差を算出する誤差算出部を備えていることを特徴とする。
【００２２】
それゆえ、人の視覚特性に基づき階調再現がより滑らかな誤差拡散を行うことで、入力画像データにおける所定の注目画素だけでなく周辺画素も考慮し、人の視覚特性における空間的対比効果に基づいて滑らかな階調再現性を実現することができるという効果を奏する。
【発明を実施するための最良の形態】
【００２３】
本発明の一実施の形態について図面に基づいて説明すると以下の通りである。
【００２４】
図２を参照して、本発明のカラー画像処理装置を備えたデジタルカラー複写機の構成を説明する。
【００２５】
図２に示すように、デジタルカラー複写機１００は、カラー画像入力装置１０１とカラー画像処理装置１０２とカラー画像出力装置１０３と操作パネル１０４とを含んだ構成となっている。
【００２６】
カラー画像入力装置１０１は例えばＣＣＤ（Charge Coupled Device）を備えたスキャナ部より構成され、原稿からの反射光像を、ＲＧＢ（Ｒ：赤・Ｇ：緑・Ｂ：青）のアナログ信号としてＣＣＤにて読み取り、カラー画像処理装置１０２に入力するものである。
【００２７】
カラー画像処理装置１０２は、上記カラー画像入力装置１０１で取り込んだ画像データをカラー画像出力装置１０３に対応するデータに変換するための装置である。具体的には、後述するように、カラー画像処理装置１０２は、カラー画像入力装置１０１にて読み取られたアナログ信号をＡ／Ｄ変換部２０１、シェーディング補正部２０２、入力階調補正部２０３、領域分離処理部２０４、色補正部２０５、黒生成下色除去部２０６、空間フィルタ処理部２０７、出力階調補正部２０８、及び階調再現処理部２０９の順で処理し、ＣＭＹＫのデジタルカラー信号として、カラー画像出力装置１０３へ出力する。
【００２８】
カラー画像出力装置１０３は、上記カラー画像処理装置１０２によって処理された画像データを出力する装置である。
【００２９】
操作パネル１０４は、デジタル複写機の動作モードを設定する設定ボタンやテンキー、液晶ディスプレイなどを備える表示部より構成されるものである。
【００３０】
以下にカラー画像処理装置１０２内の各処理部について詳述する。
【００３１】
カラー画像処理装置１０２は、Ａ／Ｄ変換部２０１、シェーディング補正部２０２、入力階調補正部２０３、領域分離処理部２０４、色補正部２０５、黒生成下色除去部２０６、空間フィルタ処理部２０７、出力階調補正部２０８、階調再現処理部２０９、及び記憶部３０２を備えた構成となっている。
【００３２】
Ａ／Ｄ（アナログ／デジタル）変換部２０１は、ＲＧＢのアナログ信号をデジタル信号に変換する。
【００３３】
シェーディング補正部２０２は、Ａ／Ｄ変換部２０１より送られてきたデジタルのＲＧＢ信号に対して、カラー画像入力装置１０１の照明系、結像系、撮像系で生じる各種の歪みを取り除く処理を施す。
【００３４】
入力階調補正部２０３は、シェーディング補正部２０２にて各種の歪みが取り除かれたＲＧＢ信号（ＲＧＢの反射率信号）に対して、カラーバランスを整えると同時に、濃度信号などカラー画像処理装置１０２に採用されている画像処理システムの扱い易い信号に変換する処理を施す。
【００３５】
領域分離処理部２０４は、ＲＧＢ信号より、入力画像中の各画素を文字領域、網点領域、写真領域の何れかに分離する。領域分離処理部２０４は、分離結果に基づき、画素がどの領域に属しているかを示す領域識別信号を、黒生成下色除去部２０６、空間フィルタ処理部２０７、及び階調再現処理部２０９へと出力すると共に、入力階調補正部２０３より出力された入力信号をそのまま後段の色補正部２０５に出力する。
【００３６】
色補正部２０５は、色再現の忠実化実現のために、不要吸収成分を含むＣＭＹ（Ｃ：シアン・Ｍ：マゼンタ・Ｙ：イエロー）色材の分光特性に基づいた色濁りを取り除く処理を行う。
【００３７】
黒生成下色除去部２０６は、色補正後のＣＭＹの３色信号から黒（Ｋ）信号を生成して、元のＣＭＹ信号から得られたＫ信号を差し引いて新たなＣＭＹ信号を生成する処理を行い、ＣＭＹの３色信号をＣＭＹＫの４色信号に変換する。
【００３８】
黒生成処理の一例として、スケルトンブラックによる黒生成を行う方法（一般的方法）がある。この方法では、スケルトンカーブの入出力特性をｙ＝ｆ（ｘ）、入力されるデータをＣ、Ｍ、Ｙ、出力されるデータをＣ’、Ｍ’、Ｙ’、Ｋ’、ＵＣＲ（Under Color Removal）率をα（０＜α＜１）とすると、黒生成／下色除去処理は以下の数式（１）として表すことができる。
【００３９】
Ｋ’＝ｆ｛ｍｉｎ（Ｃ，Ｍ，Ｙ）｝
Ｃ’＝Ｃ−αＫ’
Ｍ’＝Ｍ−αＫ’                                （１）
Ｙ’＝Ｙ−αＫ’
空間フィルタ処理部２０７は、黒生成下色除去部２０６から入力されるＣＭＹＫ信号の画像データに対して、領域識別信号を基にデジタルフィルタによる空間フィルタ処理を行い、空間周波数特性を補正することによって出力画像のぼやけや粒状性劣化を防ぐように処理する。
【００４０】
例えば、領域分離処理部２０４にて文字に分離された領域は、特に黒文字あるいは色文字の再現性を高めるために、空間フィルタ処理部２０７による空間フィルタ処理における鮮鋭強調処理で高周波数の強調量を大きくする。同時に、階調再現処理部２０９においては、高域周波数の再現に適した高解像度のスクリーンでの二値化または多値化処理を選択する。また、領域分離処理部２０４にて網点に分離された領域に関しては、空間フィルタ処理部２０７において、入力網点成分を除去するためのローパス・フィルタ処理を施す。
【００４１】
そして出力階調補正部２０８では、濃度信号などの信号をカラー画像出力装置の特性値である網点面積率に変換する出力階調補正処理を行った後、階調再現処理部２０９で、最終的に画像を画素に分離してそれぞれの階調を再現できるように処理する階調再現処理（中間調生成）を施す。領域分離処理部２０４にて写真に分離された領域に関しては、階調再現性を重視したスクリーンでの２値化または多値化処理を行う。
【００４２】
また階調再現処理部２０９では、空間フィルタ処理部２０７と同様に、ＣＭＹＫ信号の画像データに対して、領域識別信号を基に所定の処理を施す。階調再現処理部２０９の詳細については後述する。
【００４３】
カラー画像処理装置１０２は、上記一連の処理を施した画像データを一旦記憶手段（図示せず）に記憶し、所定のタイミングで読み出してカラー画像出力装置１０３に入力する。
【００４４】
このカラー画像出力装置１０３は、画像データを記録媒体（例えば紙等）上に出力するもので、例えば、電子写真方式やインクジェット方式を用いたカラー画像形成装置等を挙げることができるが特に限定されるものではない。尚、以上の処理は図示しないＣＰＵ（Central Processing Unit）により制御される。
【００４５】
また、図３に示すように、上記階調再現処理部２０９及び記憶部３０２は、以下を備えた構成となっている。
【００４６】
階調再現処理部２０９は、画像処理部３０３と、加算処理部３０４と、誤差算出部３０５と、量子化処理部３０６と、判定部３１３を備えている。また、上記記憶部３０２は、ラインメモリ３０７と、誤差格納部３０８と、総誤差メモリ３０９と、関数係数格納部３１０と、拡散係数格納部３１１と、量子化閾値格納部３１２とを備えている。
【００４７】
画像処理部３０３は、出力階調補正部２０８から出力された画像データをラインメモリ３０７へ書き込む。
【００４８】
加算処理部３０４は、上記ラインメモリ３０７から入力画像データを画素毎に抽出し、誤差格納部３０８に格納された注目画素を中心とする蓄積誤差を加算し、その結果を次の処理に移行させる。加算処理部３０４の詳細については後述する。
【００４９】
誤差算出部３０５は、上記蓄積誤差を加算した画像データと量子化された注目画素の値（出力画像データ）とを入力し、人の視覚特性に関する関数の係数データならびに拡散係数を用いて、上記蓄積誤差を加算した画像データの注目画素の周辺に存在する周辺画素に拡散するための誤差の総和（以下、総誤差とする）を一旦求める。その後その総誤差を上記総誤差メモリ３０９に保存する。そして、上記蓄積誤差を加算した画像データの上記周辺画素に拡散するための拡散誤差値を、上記総誤差メモリ３０９に一旦保存した総誤差と拡散係数格納部３１１に格納されているあらかじめ定められた拡散係数とを用いて算出し、その値を蓄積誤差加算処理部３１４へ送る。誤差算出部３０５の詳細については後述する。
【００５０】
量子化処理部３０６は、蓄積誤差を加算した画像データの注目画素の値を、量子化閾値格納部３１２に格納されている量子化閾値と比較して量子化を行う。
【００５１】
判定部３１３は、注目画素が終点にあるかを判定する。注目画素が終点にある場合、処理が終了し、判定部３１３は画像データをカラー画像出力装置１０３へ送る。また、注目画素が終点にない場合、判定部３１３は画像データを画像処理部３０３へ送る。
【００５２】
蓄積誤差加算処理部３１４は上記誤差算出部３０５から得られた拡散誤差と誤差格納部３０８に格納されている蓄積誤差とを加算する。その後加算された蓄積誤差を誤差格納部３０８に格納されている蓄積誤差に上書き保存する。加算処理部３０４はこの蓄積誤差を読み出す。
【００５３】
上記ラインメモリ３０７は複数用いられ、入力画像データを保持するものである。例えば、図４に示すように、画像処理部３０３は入力画像データを複数のラインメモリを用いて保持し、加算処理部３０４は注目画素を中心としたＭ×Ｎ画素のマスク（例えば、５×５画素）のデータを抽出する。以下の処理では、特にことわらない限り、Ｍ×Ｎ画素のブロック単位で処理を行うものとして説明する。また本実施の形態では、入力画像データとは、図４に示すように、注目画素を中心としたＭ×Ｎ画素よりなるブロックの画像データを意味する。
【００５４】
誤差格納部３０８は、注目画素及び周辺画素の誤差の総和である蓄積誤差を格納するものである。
【００５５】
総誤差メモリ３０９は、誤差算出部３０５において算出された上記総誤差を格納するものである。
【００５６】
関数係数格納部３１０は、ガウシアン周辺関数に相当するガウシアン係数データを格納するものである。
【００５７】
拡散係数格納部３１１は、予め定められた上記拡散係数を格納するものである。
【００５８】
量子化閾値格納部３１２は、量子化閾値を格納するものである。また、量子化閾値は注目画素の濃度を量子化処理する際に使われる閾値である。
【００５９】
以下に上記加算処理部３０４について詳述する。
【００６０】
加算処理部３０４は、上記誤差格納部３０８に蓄積されている蓄積誤差の中から注目画素を中心とするＭ×Ｎ画素の蓄積誤差を読み出す。そして、Ｍ×Ｎ画素の入力画像データに対して、画素毎に上記蓄積誤差を加算する。具体的には、Ｍ×Ｎ画素の入力画像データをＤａｔａ＿Ｐ（ｉ，ｊ）とし、Ｍ×Ｎ画素の蓄積誤差データをＤａｔａ＿Ｓ（ｉ，ｊ）とし、蓄積誤差拡散マスクをＥＤ＿Ｍａｓｋ（ｉ，ｊ）とすると、蓄積誤差が加算された画像データＤａｔａ＿Ｘ（ｉ，ｊ）は、
Ｄａｔａ＿Ｘ（ｉ，ｊ）
＝Ｄａｔａ＿Ｐ（ｉ，ｊ）＋Ｄａｔａ＿Ｓ（ｉ，ｊ）×ＥＤ＿Ｍａｓｋ（ｉ，ｊ）
と表すことができる。ただし、ｉ，ｊはＭ×Ｎマスク内の座標とする。
【００６１】
このとき、どの画素へ上記蓄積誤差データを加算するかは、上記蓄積誤差拡散マスクＥＤ＿Ｍａｓｋを用いて決定する。
【００６２】
図５は、蓄積誤差拡散マスクＥＤ＿Ｍａｓｋを示す図である。図５に示すように、このマスクは、例として注目画素を中心とする５×５画素のデータを処理する。ただし、これに限定されない。
【００６３】
加算処理部３０４が、注目画素を中心とする蓄積誤差データＤａｔａ＿Ｓを上記入力画像データＤａｔａ＿Ｐに加算するとき、加算すべき座標に関しては、上記蓄積誤差拡散マスクＥＤ＿Ｍａｓｋ内に各座標に「１」をセットしておき、加算する必要がない各座標については、「０」をセットしておく。図５では、未処理の画像データに対して「１」がセットされている。これにより、注目画素以降の周辺画素にのみ蓄積誤差が加算される。
【００６４】
また、以下に上記誤差算出部３０５について詳述する。
【００６５】
誤差算出部３０５は、図１に示すように、誤差拡散部５０１、レチネックス計算部Ａ（第１計算部）５０２、レチネックス計算部Ｂ（第２計算部）５０３、差分絶対値計算部５０４、判定部５０５、拡散誤差計算部５０６、調整部５０７を備えている。また、記憶部３０２の一部である総誤差メモリ３０９、関数係数格納部３１０、拡散係数格納部３１１は上記と同様であるため説明は省略する。
【００６６】
誤差拡散部５０１では、上記蓄積誤差を加算した画像データと、上記量子化した注目画素のデータ（出力画像データ）と、総誤差メモリ３０９に保存されている上記注目画素の周辺画素における総誤差値とを用いて、上記拡散係数格納部３１１に予め格納されている上記拡散係数データに基づき上記総誤差を拡散した後の注目画素を中心とした画像データを算出する。
【００６７】
ここで、蓄積誤差が加算された画像データをＤａｔａ＿Ｘ（ｉ，ｊ）とし、量子化処理した注目画素のデータ（出力画像データ）をＸ’とし、拡散係数データをＥＤ＿Ｘ（ｉ，ｊ）とし、総誤差値をＥとすると、総誤差を注目画素周辺へ拡散した後の注目画素を中心とした画像データ（総誤差を拡散した後の画像データ）であるＤａｔａ＿Ｘ’（ｉ，ｊ）は、
Ｄａｔａ＿Ｘ’（ｉ＿ｒｏｉ，ｊ＿ｒｏｉ）＝Ｘ’
Ｄａｔａ＿Ｘ’（ｉ，ｊ）＝Ｄａｔａ＿Ｘ（ｉ，ｊ）＋ＥＤ＿Ｘ（ｉ，ｊ）×Ｅ
と表せる。ただし、ｉ，ｊはＭ×Ｎマスク内の座標であり、ｉ＿ｒｏｉ，ｊ＿ｒｏｉは注目画素の座標であり、ｉ≠ｉ＿ｒｏｉ，ｊ≠ｊ＿ｒｏｉである。
【００６８】
上記数式で表されるように、総誤差を拡散した後の画像データの注目画素の値は、量子化画像データを用いる。このとき、総誤差Ｅは、後述する拡散誤差計算部５０６で利用されるため総誤差メモリ３０９に格納される。例えば、注目画素を中心とする５×５画素のデータを処理している場合、拡散係数ＥＤ＿Ｘの比率は、図６に示すような値を用いる。実際は、上記比率に基づき、各画素の拡散係数データＥＤ＿Ｘの総和が１になるような拡散係数データＥＤ＿Ｘが用いられる。また、この拡散係数データとしては、従来の誤差拡散で用いられる拡散係数を用いることができる。具体的には、注目画素に近い画素の拡散係数を大きく設定し、遠い画素程小さい値に設定する。
【００６９】
上記レチネックス計算部Ａ５０２、レチネックス計算部Ｂ５０３は、蓄積誤差が加算された画像データおよび上記総誤差を拡散した後の画像データを用いて、関数係数格納部３１０に予め格納されている係数を用いて、視覚特性を考慮したレチネックス（Retinex）理論に基づく関数（以下、レチネックス関数とする）により、それぞれの注目画素に対する値（以下、レチネックス値とする）を算出する。つまり、レチネックス計算部Ａ５０２においては、蓄積誤差を加算した画像データＤａｔａ＿Ｘ内の注目画素におけるレチネックス値Ｒｘを算出し、レチネックス計算部Ｂ５０３においては、上記総誤差を拡散した後の画像データＤａｔａ＿Ｘ’内の注目画素におけるレチネックス値Ｒｘ’を算出する。レチネックス理論およびそのモデルについては後述する。
【００７０】
具体的には、レチネックス計算部Ａ５０２において、蓄積誤差を加算した画像データＤａｔａ＿Ｘ（ｉ，ｊ）内における注目画素（ｉ＿ｒｏｉ，ｊ＿ｒｏｉ）のレチネックス値Ｒｘは、
【００７１】
【数１】
2006025378.tif 000003
【００７２】
となる。ただし、Ｘは蓄積誤差を加算した注目画素のデータであり、Ｇ（ｉ，ｊ）は予め関数係数格納部３１０に格納されているガウシアン周辺関数に相当するガウシアン係数データである。このガウシアン係数データＧ（ｉ，ｊ）は、
【００７３】
【数２】
2006025378.tif 000004
【００７４】
を満たす。
【００７５】
例えば、注目画素を中心とする５×５画素のデータの場合、上記ガウシアン係数データＧ（ｉ，ｊ）の比率は、図７に示すような値を用いる。実際は、上記比率に基づき、上記式を満たすように上記ガウシアン係数データＧ（ｉ，ｊ）の総和が１となるような設定しておく。また、上記ガウシアン係数データは、注目画素に対する値を大きくし、注目画素から離れる程小さい値に設定しておく。
【００７６】
同様に、レチネックス計算部Ｂ５０３において、総誤差を拡散した後の画像データＤａｔａ＿Ｘ’（ｉ，ｊ）内における注目画素（ｉ＿ｒｏｉ，ｊ＿ｒｏｉ）のレチネックス値Ｒｘ’は、
【００７７】
【数３】
2006025378.tif 000005
【００７８】
である。ただし、Ｘ’は量子化された注目画素のデータ（出力画像データ）である。
【００７９】
今回、本発明のレチネックス計算部Ａ５０２・レチネックス計算部Ｂ５０３には、後述するレチネックス理論をモデル化した１手法であるＳＳＲモデルを適用したが、レチネックス理論を表現している手法であるならば、他の手法であっても同様に適用可能である。      
【００８０】
差分絶対値計算部５０４では、注目画素の上記両レチネックス値Ｒｘ、Ｒｘ’の差分値の絶対値｜ｈ｜（以下、レチネックス差分絶対値とする）を算出する。レチネックス差分絶対値｜ｈ｜は、
｜ｈ｜＝｜Ｒｘ−Ｒｘ’｜
と表せる。
【００８１】
判定部５０５では、上記レチネックス差分絶対値｜ｈ｜は、
｜ｈ｜  ≦  Ｔｈ
を満たすか否か判定する。上式を満たさない場合は、上記調整部５０７において、上記総誤差メモリ３０９に格納されている総誤差Ｅを読み出し、その値を変化させて、再び上記誤差拡散部５０１に入力する。上式を満たす場合は、拡散誤差計算部５０６で次の処理が行われる。
【００８２】
ここで、Ｔｈは限りなくゼロに近い正値を設定する。例えば、Ｔｈ＝０．００１などである。そして差分絶対値｜ｈ｜が閾値Ｔｈ以下になるということは、上記レチネックス計算部Ａ５０２、レチネックス計算部Ｂ５０３で算出した上記レチネックス値ＲｘとＲｘ’がほぼ等しいということである。これは、誤差拡散前後で、注目画素が後述するレチネックス理論的に一致するということを意味しており、レチネックス理論に基づき、人の視覚特性を考慮した量子化と、周辺画素に総誤差の拡散が行われることを意味している。
【００８３】
また、誤差算出部３０５では、量子化前後のレチネックス値を比較することにより、適正な総誤差を求め、拡散誤差を算出する。なお、従来の誤差算出部における誤差拡散法では、注目画素の量子化後の値と量子化前の値の差分値を誤差として、予め決められた誤差拡散係数に基づき周辺画素へ拡散していた。
【００８４】
その後、上記調整部５０７で上記総誤差Ｅを変化させ、｜ｈ｜≦Ｔｈを満たすように調整することにより、後述するレチネックス理論に基づき、人の視覚特性を考慮した量子化後の周辺画素に拡散すべき総誤差の最適値Ｅｔ（以下、総誤差最適値とする）を見つけ出すことが可能となる。この総誤差最適値Ｅｔが総誤差Ｅとして総誤差メモリ３０９に格納される。すなわち、総誤差Ｅは注目画素が処理される毎に更新される。
【００８５】
拡散誤差計算部５０６は、算出した上記総誤差最適値Ｅｔを用いて、拡散係数格納部３１１に格納されている予め定められた拡散係数ＥＤ＿Ｘ（ｉ，ｊ）に応じた注目画素の周辺の各画素における拡散すべき誤差Ｄａｔａ＿Ｅ（ｉ，ｊ）を求めると、
Ｄａｔａ＿Ｅ（ｉ，ｊ）＝ＥＤ＿Ｘ（ｉ，ｊ）×Ｅｔ
ただし、ｉ≠ｉ＿ｒｏｉ，ｊ≠ｊ＿ｒｏｉ
と表すことができる。
【００８６】
調整部５０７は、上記判定部５０５において｜ｈ｜≦Ｔｈを満たさない場合に総誤差メモリ３０９から総誤差Ｅを読み出し、値を変化させて誤差拡散部５０１に入力する。
【００８７】
これは、例えば、注目画素値Ｘが１３５、注目画素の量子化値が１２０とする。この時、初期の総誤差Ｅは、１３５−１２０＝１５となる。そして、図１に示すように、誤差拡散部５０１にて、一旦、予め決められた誤差拡散係数データを用いて、周辺画素へ誤差を拡散する。量子化前の注目画素及び誤差拡散する前の周辺画素を含めたデータをＤａｔａ＿Ｘとし、量子化後の注目画素および誤差拡散した後の周辺画素を含めたデータをＤａｔａ＿Ｘ’とする。その後、レチネックス計算部Ａ５０２で、Ｄａｔａ＿Ｘを用いて、量子化前の注目画素のレチネックス値Ｒｘを算出し、同様に、レチネックス計算部Ｂ５０３でＤａｔａ＿Ｘ’を用いて、量子化後の注目画素のレチネックス値Ｒｘ’を算出する。ここで、仮に、レチネックス値Ｒｘが１３０、レチネックス値Ｒｘ’が１２４とすると、レチネックスの差分値は１３０−１２４＝６となる。そこで、これらのレチネックスの差分値である６が、閾値より大きい場合は、調整部５０７へ処理が移行する。
【００８８】
調整部５０７では、例えば、レチネックス差分値６の半分である３を、総誤差メモリに格納されている総誤差Ｅ（この場合、初期の総誤差Ｅの１５である）に３を加算した１８を新たな総誤差とし、再び総誤差メモリに、新たな総誤差１８を格納する。レチネックス差分値を用いて総誤差をどのように変化させるかは事前に定めておく。そして、再び、その新たな総誤差１８を用いて、誤差拡散部５０１にて、周辺画素へ誤差を拡散する。この時、初期に算出された誤差とは異なる値が周辺画素へ拡散される。そして、再度、レチネックス計算部Ｂ５０３で、レチネックス値Ｒｘ’を算出する。このように、判定部５０５において、レチネックスの差分値が予め定められた閾値以下になるまで、上記の処理を繰り返す。例えば、レチネックス差分値が、マイナスになれば、調整部５０７では、総誤差メモリに格納されている総誤差Ｅからマイナス値を加算することになり、結果として総誤差メモリに格納されている総誤差Ｅより小さな値を、再格納することになる。
【００８９】
上記は、単色の場合を示したが、ＣＭＹＫそれぞれ独立に、同様の処理を施すことにより画像全体としての階調再現処理が可能となる。
【００９０】
ここに上記レチネックス理論について詳述する。
【００９１】
レチネックス理論は、１９７１年にＥ．ランドとＪ．マッキャンにより提案された視覚系の色や明るさに対する色恒常性についての新しい色彩理論である。
【００９２】
色恒常性とは、人間の視覚系には、照明の変化に対して物体の色の見えが大きく変化しないという能力があり、その現象のことを言う。例えば、木々の葉は、昼光の青空の下でも、夕方の赤い空の下でも、緑に見える。このような色恒常性を成立させるメカニズムとして、色順応、空間的対比効果、色の記憶という３つの要素が挙げられる。
【００９３】
これらの中で、上記空間的対比効果は、注目している場所（例えば、注目画素）からの反射光だけではなく、その周辺に存在する画素の反射光の影響をうけるというメカニズムのことである。例えば、図８のような白黒のパターンは、白から黒へなだらかに背景の明るさが変化しているパターンの上に、小さな灰色の四角形を５つ載せられている。小さな灰色の四角はどれも同じ中程度の明るさの灰色である(中央の一つは、背景と同じ明度のためほとんど見えない)。しかしながら、背景が黒(右端)の時には背景が白(左端)の時よりも明るく見える。
【００９４】
また、以下に上記レチネックスモデルについて詳述する。
【００９５】
１９９７年Jobsonらは、上記レチネックス理論を画質改善（色補正やコントラスト最適化）へ応用する目的で、ＳＳＲ（Single-Scale  Retinex）モデルを提案した。ＳＳＲモデルは、上記空間的対比効果のメカニズムも含まれる。上記ＳＳＲモデルは、下記の式により表される。
【００９６】
【数４】
2006025378.tif 000006
【００９７】
ここで、Ｉｉ（ｘ，ｙ）は座標（ｘ，ｙ）におけるＲＧＢの画素値とし、「＊」はコンボリューション積分である。
【００９８】
Ｆ（ｘ，ｙ）は周辺関数であり、次式で表される。
【００９９】
【数５】
2006025378.tif 000007
【０１００】
ｃはガウス周辺関数の標準偏差であり、周辺領域の面積によって決められる。
【０１０１】
Ｒｉ（ｘ，ｙ）は、レチネックス値の対数であり、レチネックス変換した後の画像ＩｉＲ（ｘ，ｙ）は、次式で表せる。
【０１０２】
【数６】
2006025378.tif 000008
【０１０３】
ここで、ａは、ゲインを示す係数であり、画像のダイナミックレンジを調整するときに使用する。ＩｉＲ（ｘ，ｙ）は、レチネックス理論に基づき周辺画像情報（空間的対比効果）を考慮した後のＲＧＢ画像のｉプレーン画像である。つまり、ＩｉＲ（ｘ，ｙ）は、レチネックス理論に基づき周辺画像情報が加味されたＩｉ（ｘ，ｙ）画像であり、Ｉｉ（ｘ，ｙ）と同等の使用が可能である。
【０１０４】
この手法により注目画素値だけでなく周辺画素も考慮した空間的対比効果を表すことができ、上記ＳＳＲモデルを階調再現処理に応用することにより、人の視覚特性の一つである色恒常性（上記空間対比効果）に基づく、注目画素値だけでなく周辺画素も考慮した照明光に依存しにくい滑らかな階調再現性が実現でき、結果として、デジタル複写機・複合機・プリンタなどの画像形成装置から出力される画像品質が改善できる。
【０１０５】
次に図９に示すフローチャートを参照して、階調再現処理部２０９における画像データの流れについて説明する。
【０１０６】
まず、画像処理部３０３は画像データ内の注目画素の位置を決定する（Ｓ１０１）。例えば、５×５マスクの場合、ｘ方向（主走査方向）へ３画素、ｙ方向（副走査方向）へ３ライン走査した地点を始点位置とする。
【０１０７】
Ｓ１０２において、画像処理部３０３は誤差格納用のメモリを初期化する。つまり、各画素にゼロを入れる。また、画像処理部３０３は上記注目画素の位置を決定したＭ×Ｎマスクの画像データをラインメモリ３０７に書き込む。
【０１０８】
次にＳ１０３において、加算処理部３０４は上記Ｍ×Ｎマスクの画像データをラインメモリ３０７から抽出する。
【０１０９】
また、Ｓ１０４にて、加算処理部３０４は上記蓄積誤差を上記Ｍ×Ｎマスクの画像データに加算する。その後、加算処理部３０４は上記蓄積誤差を加算したＭ×Ｎマスクの画像データを量子化処理部３０６へ送る。
【０１１０】
Ｓ１０５にて、量子化処理部３０６は注目画素を量子化する。
【０１１１】
Ｓ１０６において、誤差算出部３０５は誤差算出処理を行う。誤差算出部３０５における誤差算出処理工程については後に記述する。
【０１１２】
また、Ｓ１０７において、蓄積誤差加算処理部３１４は拡散誤差を蓄積誤差に加算する。これにより蓄積誤差加算処理部３１４は、誤差格納部３０８に格納されている蓄積誤差を更新する。
【０１１３】
その後Ｓ１０８にて、蓄積誤差加算処理部３１４は加算した蓄積誤差を格納する。上記更新された蓄積誤差を誤差格納部３０８に格納することにより、誤差算出部３０５より算出した結果が反映されることになる。
【０１１４】
Ｓ１０９において、判定部３１３は注目画素が終点にあるか否かを判定する。このとき、注目画素が終点にある場合、処理を完了する。また、終点にない場合、処理はＳ１１０へ移行する。
【０１１５】
例えば、５×５マスクの場合、ｘ方向（主走査方向）への残り３画素、ｙ方向（副走査方向）への残り３ラインに達した時を終点位置とする。
【０１１６】
Ｓ１１０にて、判定部３１３は注目画素を１画素隣りへ移動する。その後、処理はＳ１０３へ移行し、一連の処理を繰り返す。
【０１１７】
図１０は、誤差算出処理の流れを示すフローチャートである。以下、各ステップについて詳細を説明する。
【０１１８】
まずＳ２０１において、誤差拡散部５０１は総誤差メモリ３０９を初期化（ゼロにセット）する。
【０１１９】
次にＳ２０２において、誤差拡散部５０１は総誤差を総誤差メモリ３０９に格納する。
【０１２０】
Ｓ２０３にて、誤差拡散部５０１は蓄積誤差を加算した画像データに対して、総誤差および拡散係数を用いて誤差拡散処理を行う。
【０１２１】
Ｓ２０４において、レチネックス計算部Ｂ５０３はＳ２０３で求めた誤差拡散後の注目画素のレチネックス値Ｒｘ’を計算する。その後、処理はＳ２０６へ移行する。
【０１２２】
また、レチネックス計算部Ａ５０２は上記レチネックス計算部Ｂ５０３と平行して蓄積誤差を加算した画像データ内の注目画素のレチネックス値Ｒｘを計算する（Ｓ２０５）。
【０１２３】
Ｓ２０６において、差分絶対値計算部５０４はＳ２０４とＳ２０５で求められた注目画素のレチネックス値ＲｘとＲｘ’の差分を計算する。
【０１２４】
Ｓ２０７において、差分絶対値計算部５０４は上記差分の絶対値を算出する。
【０１２５】
Ｓ２０８において、判定部５０５は注目画素のレチネックス値の差分絶対値が閾値以下か否かを判定する。差分絶対値が閾値以下の場合、判定部５０５はレチネックス値ＲｘとＲｘ’の値がほぼ等しいと判断し、処理はＳ２１０へ移行する。また、閾値以上の場合、判定部５０５はレチネックス値ＲｘとＲｘ’の値の差が大きいと判断し、処理はＳ２０９へ移行する。
【０１２６】
Ｓ２０９において、調整部５０７は総誤差メモリ３０９から総誤差値を読み出し、総誤差値を変更し、誤差拡散部５０１に総誤差値を送る。このように調整後にまたレチネックス計算を行うことでレチネックス値ＲｘとＲｘ’の値がほぼ等しくなるまで繰り返す。
【０１２７】
Ｓ２１０において、拡散誤差計算部５０６は格納されている総誤差値を総誤差メモリ３０９から読み出す。その後、処理はＳ２１１へ移行する。
【０１２８】
Ｓ２１１において、拡散誤差計算部５０６は注目画素の周囲にある周辺画素への拡散誤差を計算する。この計算後、誤差算出部３０５は、拡散誤差計算部５０６で計算した拡散誤差を蓄積誤差加算処理部３１４へ送る。つまり、処理は上記Ｓ１０７へ移行する。
【０１２９】
次に、図１１を参照しながら、階調再現処理部２０９の機能を備えたプリンタ・ドライバについて説明する。
【０１３０】
コンピュータ９００において、プリンタ・ドライバ９０１と通信ポートドライバ９０４と通信ポート９０５を備えており、コンピュータ９００はプリンタ（画像出力装置）９０６へ画像データを送り、画像データを出力する。
【０１３１】
プリンタ・ドライバ９０１は、色補正部９０２と階調再現処理部２０９とプリンタ言語翻訳部９０３と記憶部３０２を備えており、各種のアプリケーションプログラムを実行することにより生成された画像データは、色補正部９０２で色補正処理、階調再現処理部２０９で中間調生成処理がなされる。また、色補正部９０２には黒生成／下色除去処理も含まれる。
【０１３２】
上記処理がなされた画像データは、プリンタ言語翻訳部９０３でプリンタ言語に変換され、通信ポートドライバ９０４・通信ポート９０５（ＲＳ２３２Ｃ・ＬＡＮ等）を介してプリンタ（画像出力装置）９０６に入力される。プリンタ９０６は、プリンタ機能の他にコピー機能およびファックス機能を有するデジタル複合機であっても良い。
【０１３３】
このように、上記階調再現処理部２０９は、プリンタ等にも適用できる。
【０１３４】
また、本発明はコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体に、画像処理方法を記録するものとすることもできる。
【０１３５】
この結果、画像処理方法を行うプログラムを記録した記録媒体を持ち運び自在に提供することができる。
【０１３６】
上記カラー画像処理装置１０２は、ＣＰＵが記憶装置に格納されたプログラムを実行し、図示しない入出力回路などの周辺回路を制御することによって実現される機能ブロックである。
【０１３７】
また、上記実施形態では、カラー画像処理装置１０２を構成する各部が、「ＣＰＵなどの演算手段がＲＯＭやＲＡＭなどの記録媒体に格納されたプログラムコードを実行することで実現される機能ブロックである」場合を例にして説明したが、同様の処理を行うハードウェアで実現してもよい。また、処理の一部を行うハードウェアと、当該ハードウェアの制御や残余の処理を行うプログラムコードを実行する上記演算手段とを組み合わせても実現することができる。さらに、上記各部のうち、ハードウェアとして説明した部分であっても、処理の一部を行うハードウェアと、当該ハードウェアの制御や残余の処理を行うプログラムコードを実行する上記演算手段とを組み合わせても実現することができる。なお、上記演算手段は、単体であってもよいし、装置内部のバスや種々の通信路を介して接続された複数の演算手段が共同してプログラムコードを実行してもよい。また、上記各部のうちの記憶部３０２は、メモリなどの記憶装置自体であってもよい。
【０１３８】
上記演算手段によって直接実行可能なプログラムコード自体、または、後述する解凍などの処理によってプログラムコードを生成可能なデータとしてのプログラムは、当該プログラム（プログラムコードまたは上記データ）を記録媒体に格納し、当該記録媒体を配付したり、あるいは、上記プログラムを、有線または無線の通信路を介して伝送するための通信手段で送信したりして配付され、上記演算手段で実行される。
【０１３９】
なお、通信路を介して伝送する場合、通信路を構成する各伝送媒体が、プログラムを示す信号列を伝搬し合うことによって、当該通信路を介して、上記プログラムが伝送される。また、信号列を伝送する際、送信装置が、プログラムを示す信号列により搬送波を変調することによって、上記信号列を搬送波に重畳してもよい。この場合、受信装置が搬送波を復調することによって信号列が復元される。一方、上記信号列を伝送する際、送信装置が、デジタルデータ列としての信号列をパケット分割して伝送してもよい。この場合、受信装置は、受信したパケット群を連結して、上記信号列を復元する。また、送信装置が、信号列を送信する際、時分割／周波数分割／符号分割などの方法で、信号列を他の信号列と多重化して伝送してもよい。この場合、受信装置は、多重化された信号列から、個々の信号列を抽出して復元する。いずれの場合であっても、通信路を介してプログラムを伝送できれば、同様の効果が得られる。
【０１４０】
ここで、プログラムを配付する際の記録媒体は、取外し可能である方が好ましいが、プログラムを配付した後の記録媒体は、取外し可能か否かを問わない。また、上記記録媒体は、プログラムが記憶されていれば、書換え（書き込み）可能か否か、揮発性か否か、記録方法および形状を問わない。記録媒体の一例として、磁気テープやカセットテープなどのテープ、あるいは、フロッピー（登録商標）ディスクやハードディスクなどの磁気ディスク、または、ＣＤ−ＲＯＭや光磁気ディスク（ＭＯ）、ミニディスク（ＭＤ）やデジタルビデオディスク（ＤＶＤ）などのディスクが挙げられる。また、記録媒体は、ＩＣカー
ドや光カードのようなカード、あるいは、マスクＲＯＭやＥＰＲＯＭ、ＥＥＰＲＯＭまたはフラッシュＲＯＭなどのような半導体メモリであってもよい。あるいは、ＣＰＵなどの演算手段内に形成されたメモリであってもよい。
【０１４１】
なお、上記プログラムコードは、上記各処理の全手順を上記演算手段へ指示するコードであってもよいし、所定の手順で呼び出すことで、上記各処理の一部または全部を実行可能な基本プログラム（例えば、オペレーティングシステムやライブラリなど）が既に存在していれば、当該基本プログラムの呼び出しを上記演算手段へ指示するコードやポインタなどで、上記全手順の一部または全部を置き換えてもよい。
【０１４２】
また、上記記録媒体にプログラムを格納する際の形式は、例えば、実メモリに配置した状態のように、演算手段がアクセスして実行可能な格納形式であってもよいし、実メモリに配置する前で、演算手段が常時アクセス可能なローカルな記録媒体（例えば、実メモリやハードディスクなど）にインストールした後の格納形式、あるいは、ネットワークや搬送可能な記録媒体などから上記ローカルな記録媒体にインストールする前の格納形式などであってもよい。また、プログラムは、コンパイル後のオブジェクトコードに限るものではなく、ソースコードや、インタプリトまたはコンパイルの途中で生成される中間コードとして格納されていてもよい。いずれの場合であっても、圧縮された情報の解凍、符号化された情報の復号、インタプリト、コンパイル、リンク、または、実メモリへの配置などの処理、あるいは、各処理の組み合わせによって、上記演算手段が実行可能な形式に変換可能であれば、プログラムを記録媒体に格納する際の形式に拘わらず、同様の効果を得ることができる。
【０１４３】
なお、本発明の画像処理装置は、入力画像データに誤差拡散処理を施して出力画像データとする階調再現処理部が備えられる画像処理装置において、階調再現処理部には、入力画像データのある注目画素と、注目画素の周辺に存在する周辺画素の画像データとを用い、人の視覚特性に基づいて周辺画素に拡散させる拡散誤差を算出する誤差算出部が備えられていてもよい。
【０１４４】
これにより、注目画素値だけでなく周辺画素も考慮し、人の視覚特性的に一致した滑らかな階調再現性が実現することができる。
【０１４５】
さらに、本発明の画像処理装置は、誤差算出部は、入力画像データに誤差（蓄積誤差）が加算された画像データと誤差（蓄積誤差）が加算された注目画素を量子化処理した注目画素のデータに対して、予め定められる拡散係数および上記周辺画素に拡散される各拡散誤差の総和（総誤差）を用いて、各拡散誤差の総和が拡散された後の注目画素を中心とする画像データを求める誤差拡散部と、入力画像データに誤差（蓄積誤差）が加算された画像データに対して、予め定められる評価関数を用いて第１評価値を求める第１計算部（レチネックス計算部Ａ）と、誤差拡散部で求められた拡散誤差の総和が拡散された後の注目画素を中心とする画像データに対して、予め定められる評価関数を用いて第２評価値を求める第２計算部（レチネックス計算部Ｂ）と、第１評価値と第２評価値の差分の絶対値を求める差分絶対値計算部と、第１評価値と第２評価値の差分の絶対値と予め定められる閾値との比較を行う判定部と、第１評価値と第２評価値の差分の絶対値が上記閾値より大きい時、上記周辺画素に拡散される拡散誤差の総和の値を変更して誤差拡散部に入力する調整部と、第１評価値と第２評価値の差分の絶対値が上記閾値以下の時、上記周辺画素に拡散される拡散誤差を算出する拡散誤差計算部よりなっていてもよい。
【０１４６】
ここで、上記評価関数は、レチネックス理論に基づく関数で、例えば、ＳＳＲモデルで表される。一般式として、以下の式として与えられる。
【０１４７】
【数７】
2006025378.tif 000009
【０１４８】
これにより、蓄積誤差が加算された画像データ内の注目画素におけるレチネックス値Ｒｘおよび拡散誤差の総和（総誤差）が拡散された後の画像データ内の注目画素におけるレチネックス値Ｒｘ’を算出し、両者の差分の絶対値を閾値と比較して、拡散誤差の総和の最適値を求めることにより、人の視覚特性を考慮した階調再現処理（人の視覚特性を考慮した量子化と周辺画素へ総誤差の拡散）を行うことができる。
【０１４９】
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【０１５０】
本発明に係る画像処理装置は、人の視覚特性に基づき階調再現がより滑らかな誤差拡散を行うことができるため、誤差拡散を行うものに広く適用可能であり、特に、デジタル複写機やスキャナ等に好適に利用可能である。
【図面の簡単な説明】
【０１５１】
【図１】図３に示した階調再現処理部が備える誤差算出部のブロック図である。
【図２】本発明に係る一実施の形態のデジタルカラー画像形成装置に用いられる画像処理装置のブロック図である。
【図３】図２に示した画像処理装置が備える階調再現処理部のブロック図である。
【図４】Ｍ×Ｎ画素マスクの模式図である。
【図５】蓄積誤差拡散マスクの模式図である。
【図６】誤差拡散係数データの比率の例を示す模式図である。
【図７】ガウシアン係数データの比率の例を示す模式図である。
【図８】色恒常性の一つのメカニズムである空間的対比効果を示す画像の例である。
【図９】画像処理装置における階調再現処理の全体の流れを示すフローチャートである。
【図１０】画像処理装置における誤差算出処理の流れを示すフローチャートである。
【図１１】図３に示した階調再現処理部を搭載したプリンタ・ドライバの構成図である。
【符号の説明】
【０１５２】
２０９    階調再現処理部
３０２    記憶部
３０３    画像処理部
３０５    誤差算出部
３０９    総誤差メモリ
３１０    関数係数格納部
３１１    拡散係数格納部
５０１    誤差拡散部
５０２    レチネックス計算部Ａ（第１計算部）
５０３    レチネックス計算部Ｂ（第２計算部）
５０４    差分絶対値計算部
５０５    判定部
５０６    拡散誤差計算部
５０７    調整部
【図１】
2006025378.tif 000010
【図２】
2006025378.tif 000011
【図３】
2006025378.tif 000012
【図４】
2006025378.tif 000013
【図５】
2006025378.tif 000014
【図７】
2006025378.tif 000015
【図８】
2006025378.tif 000016
【図９】
2006025378.tif 000017
【図１０】
2006025378.tif 000018
【図１１】
2006025378.tif 000019
【図６】
2006025378.tif 000020