(57)【特許請求の範囲】
【請求項１】
画像処理装置であって、
第１の階調数の入力画像データに対して第１のハーフトーン処理を行って、前記第１の階調数よりも少ない第２の階調数のハーフトーン画像データを生成するハーフトーン処理手段と、
前記入力画像データと前記ハーフトーン画像データとの画素値の差分に基づき、前記第１のハーフトーン処理によって前記ハーフトーン画像データに生じた量子化誤差を示す量子化誤差データを算出する算出手段と、
前記算出手段によって算出された前記量子化誤差データに対して第２のハーフトーン処理を行って、前記第１のハーフトーン処理による量子化誤差を補正するための前記第２の階調数の補正データを生成する生成手段と、
前記生成手段によって生成された前記補正データを用いて前記ハーフトーン画像データを補正する補正手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記算出手段は、前記入力画像データの階調数と前記ハーフトーン画像データとの階調数を合わせたうえで、前記入力画像データと、前記ハーフトーン画像データとの画素値の差分を評価する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記算出手段は、
前記ハーフトーン画像データに対して、注目領域を対象としたフィルタ処理を、前記注目領域を変更させながら行うことで、前記ハーフトーン画像データを平滑化する第１のフィルタ処理手段と、
前記入力画像データに対して、前記注目領域を対象としたフィルタ処理を、前記注目領域を変化させながら行うことで、前記入力画像データを平滑化する第２のフィルタ処理手段と、
前記第１のフィルタ処理手段によって平滑化されたハーフトーン画像データの画素値と、前記第２のフィルタ処理手段によって平滑化された入力画像データの画素値との差分に基づき前記量子化誤差データを算出する差分評価手段と
を備えることを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記差分評価手段は、前記第１のフィルタ処理手段によって平滑化されたハーフトーン画像データの階調数と、前記第２のフィルタ処理手段によって平滑化された入力画像データの階調数とを同数として、前記量子化誤差データを算出する
ことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記差分評価手段は、前記第１のフィルタ処理手段によって平滑化されたハーフトーン画像データの各画素値の階調数を、前記第２の階調数から前記第１の階調数に変換し、当該平滑化されたハーフトーン画像データの画素値と、前記第２のフィルタ処理手段によって平滑化された入力画像データの画素値との差分に基づき前記量子化誤差データを算出する
ことを特徴とする請求項３に記載の画像処理装置。
【請求項６】
前記第１のフィルタ処理手段は、前記注目領域にハーフトーン画像データが含まれない場合は、仮想的な画素を追加することを特徴とする請求項３に記載の画像処理装置。
【請求項７】
前記第１のフィルタ処理手段は、ハーフトーン画像データ内のすべての画素をそれぞれ注目画素として、前記注目領域に含まれる画素値の総和を算出することを特徴とする請求項３に記載の画像処理装置。
【請求項８】
前記第２のフィルタ処理手段は、前記注目領域に入力画像データが含まれない場合は、仮想的な画素を追加することを特徴とする請求項３に記載の画像処理装置。
【請求項９】
前記第２のフィルタ処理手段は、入力画像データ内のすべての画素をそれぞれ注目画素として、前記注目領域に含まれる画素値の総和を算出することを特徴とする請求項３に記載の画像処理装置。
【請求項１０】
前記ハーフトーン処理手段は、前記入力画像データに対して、注目領域を対象とした組織的ディザ処理に基づくハーフトーン処理を、前記第１のハーフトーン処理として前記注目領域を変更させながら行う
ことを特徴とする請求項２乃至９の何れか１項に記載の画像処理装置。
【請求項１１】
前記ハーフトーン処理手段は、注目画素の位置に応じて選択される第１の閾値及び第２の閾値と、前記注目画素の画素値とを比較することで、前記第１のハーフトーン処理を行うことを特徴とする請求項２乃至１０の何れか１項に記載の画像処理装置。
【請求項１２】
前記補正手段は、前記ハーフトーン画像データに対して、前記補正データを画素ごとに加算することで、前記ハーフトーン画像データを補正することを特徴とする請求項１乃至１１の何れか１項に記載の画像処理装置。
【請求項１３】
前記補正手段は、前記生成手段によって生成された補正データの取りうる最大値と、前記ハーフトーン画像データの取りうる最大値とが一致するように正規化を行い、前記ハーフトーン画像データの補正を行う
ことを特徴とする請求項１乃至１２の何れか１項に記載の画像処理装置。
【請求項１４】
前記生成手段は、
前記量子化誤差データに含まれるプラスの画素値とマイナスの画素値とを分離して、当該プラスの画素値を含む第１の量子化誤差データと、当該マイナスの画素値を含む第２の量子化誤差データとを生成する分離手段と、
前記第１の量子化誤差データに対して前記第２のハーフトーン処理を行って、前記第２の階調数の第１の補正データを生成する第１の量子化処理手段と、
前記第２の量子化誤差データに対して前記第２のハーフトーン処理を行って、前記第２の階調数の第２の補正データを生成する第２の量子化処理手段と、
前記第１の補正データと前記第２の補正データとを加算して、前記補正データを生成する加算手段と
を備えることを特徴とする請求項１乃至１３の何れか１項に記載の画像処理装置。
【請求項１５】
前記生成手段は、前記量子化誤差データに対して、誤差拡散処理に基づくハーフトーン処理を、前記第２のハーフトーン処理として行うことを特徴とする請求項１乃至１４の何れか１項に記載の画像処理装置。
【請求項１６】
前記生成手段は、前記量子化誤差データに対して、組織的ディザ処理に基づくハーフトーン処理を、前記第２のハーフトーン処理として行うことを特徴とする請求項１４に記載の画像処理装置。
【請求項１７】
前記第２のハーフトーン処理において処理対象のデータに含まれる画素値を量子化するために使用される複数の閾値を含むハーフトーンテーブルを記憶する記憶手段をさらに備え、
前記ハーフトーン処理手段、前記第１の量子化処理手段、及び前記第２の量子化処理手段は、
前記記憶手段に記憶されているハーフトーンテーブルを使用して、前記第１のハーフトーン処理又は前記第２のハーフトーン処理を実行する
ことを特徴とする請求項１６に記載の画像処理装置。
【請求項１８】
前記ハーフトーン処理手段、前記第１の量子化処理手段、及び前記第２の量子化処理手段は、共通のハーフトーンテーブルを使用して、前記第１のハーフトーン処理又は前記第２のハーフトーン処理を実行することを特徴とする請求項１７に記載の画像処理装置。
【請求項１９】
前記第１の量子化処理手段及び前記第２の量子化処理手段の少なくとも何れかは、前記ハーフトーン処理手段とは異なるハーフトーンテーブルを使用して、前記第２のハーフトーン処理を実行することを特徴とする請求項１７に記載の画像処理装置。
【請求項２０】
前記生成手段は、前記第２のハーフトーン処理を行う前に、前記量子化誤差データに含まれる画素値のうち、画素値の絶対値が所定値以下の画素値を０に置き換えることを特徴とする請求項１乃至１９の何れか１項に記載の画像処理装置。
【請求項２１】
画像処理装置であって、
第１の階調数の入力画像データに対して第１のハーフトーン処理を行って、前記第１の階調数よりも少ない第２の階調数の第１のハーフトーン画像データを生成する第１のハーフトーン処理手段と、
前記入力画像データと前記第１のハーフトーン画像データとの差分に基づき、前記第１のハーフトーン処理によって前記第１のハーフトーン画像データに生じた量子化誤差を示す量子化誤差データを算出する算出手段と、
前記算出手段によって算出された前記量子化誤差データを、前記第１のハーフトーン処理による量子化誤差を補正するための補正データとして用いて、前記第１のハーフトーン画像データを補正する補正手段と、
前記補正手段によって補正された前記第１のハーフトーン画像データに対して第２のハーフトーン処理を行って、前記第２の階調数の第２のハーフトーン画像データを生成する第２のハーフトーン処理手段と
を備えることを特徴とする画像処理装置。
【請求項２２】
コンピュータを、請求項１乃至２１の何れか１項に記載の画像処理装置における各手段として機能させるためのプログラム。
【請求項２３】
画像処理装置の制御方法であって、
第１の階調数の入力画像データに対して第１のハーフトーン処理を行って、前記第１の階調数よりも少ない第２の階調数のハーフトーン画像データを生成するハーフトーン処理工程と、
前記入力画像データと前記ハーフトーン画像データとの画素値の差分に基づき、前記第１のハーフトーン処理によって前記ハーフトーン画像データに生じた量子化誤差を示す量子化誤差データを算出する算出工程と、
前記算出工程で算出された前記量子化誤差データに対して第２のハーフトーン処理を行って、前記第１のハーフトーン処理による量子化誤差を補正するための前記第２の階調数の補正データを生成する生成工程と、
前記生成工程で生成された前記補正データを用いて前記ハーフトーン画像データを補正する補正工程と
を含むことを特徴とする画像処理装置の制御方法。
【請求項２４】
画像処理装置の制御方法であって、
第１の階調数の入力画像データに対して第１のハーフトーン処理を行って、前記第１の階調数よりも少ない第２の階調数の第１のハーフトーン画像データを生成する第１のハーフトーン処理工程と、
前記入力画像データと前記第１のハーフトーン画像データとの差分に基づき、前記第１のハーフトーン処理によって前記第１のハーフトーン画像データに生じた量子化誤差を示す量子化誤差データを算出する算出工程と、
前記算出工程で算出された前記量子化誤差データを、前記第１のハーフトーン処理による量子化誤差を補正するための補正データとして用いて、前記第１のハーフトーン画像データを補正する補正工程と、
前記補正工程で補正された前記第１のハーフトーン画像データに対して第２のハーフトーン処理を行って、前記第２の階調数の第２のハーフトーン画像データを生成する第２のハーフトーン処理工程と
を含むことを特徴とする画像処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及びプログラムに関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータ（ＰＣ）で処理した画像データに基づく画像を、記録材に印刷し、又は表示装置に表示することが広く行われている。このような印刷処理又は表示処理において、１画素あたりの階調数を印刷又は表示の前後で比較すると、ＰＣ上で画像データを表現する階調数に対して、印刷装置又は表示装置によって表現可能な階調数が少ない場合がある。このため、多くの場合、このような印刷装置又は表示装置へ画像データを出力する際には、多階調の画像データをより少ない階調数の画像データに変換するためのハーフトーン処理が行われる。しかし、ハーフトーン処理によって、画像に含まれるエッジ部分にジャギーが発生し、又は細線に途切れが発生することで、印刷又は表示される画像の品質が劣化する場合がある。
【０００３】
ハーフトーン処理の１つとして、周期的に繰り返す閾値と入力値との比較によって出力値（量子化値）を決定する組織的ディザ法が知られている。組織的ディザ法は、閾値の周期に対応する空間周波数に近い空間周波数成分を入力画像が含む場合、閾値の空間周波数との差分に相当するモアレを出力画像に生じさせることが知られている。このため、中間調の文字部分又は細線のエッジ部分のような、高い空間周波数成分が含まれる部分においては、ハーフトーン処理による量子化の影響で、入力画像と出力画像との間に量子化による誤差が発生し、出力画像の見た目の解像度が低下する。その結果、文字のがたつき、線の途切れ等が発生し、文字等の輪郭部分が不明瞭となる画質劣化が発生する問題があった。
【０００４】
このような画質劣化を抑制する技術として、例えば、特許文献１及び２の技術が提案されている。特許文献１では、入力された画像データとハーフトーン処理を行った後の画像データとの差分からモアレ成分を検出し、検出したモアレ成分を抑制する技術が開示されている。特許文献１によれば、入力された画像データとハーフトーン処理を行った後の画像データとの差分データを求め、得られた差分データに対して帯域通過フィルタによるフィルタ処理を行うことでモアレ成分を抽出する。さらに、抽出したモアレ成分に応じて、入力画像と入力画像の低周波成分信号とを合成し、得られたデータに対して再びハーフトーン処理を行うことで、モアレ成分を抑制する。
【０００５】
また、特許文献２では、ハーフトーン処理を適用した画像データに対して、視覚特性に基づくフィルタ処理を行うことによってモアレ成分を検出する技術が開示されている。特許文献２では、ハーフトーン処理を適用した画像データと、入力された画像データを半位相分シフトさせた後にハーフトーン処理を適用した画像データとのそれぞれに対して、視覚特性に基づくフィルタ処理を行い、得られたデータの差分を評価する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平９−２３８２５９号公報
【特許文献２】特開２００１−８６３５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
既にハーフトーン処理が行われた画像データに基づいて記録材に印刷された画像等をコピーする場合や、ハーフトーン処理が施されて記録材に印刷された画像等をスキャナで読み取って、入力された画像データを加工して、記録材に画像を印刷する場合がある。このような場合、コピー機、スキャナ等によって、印刷された画像を読み取って入力される画像データは、印刷前の画像データよりも解像度が劣化する。このため、前述の方法では、入力された画像データからモアレのみ十分な精度で検出することが難しい。この問題に対処するために、例えば、入力された画像データからパターン検出等により網点検出を行って、網点が検出された部分を平滑化処理した後に、ハーフトーン処理を行っていた。
【０００８】
しかし、パターン検出により画像データから網点を検出する場合は、網点の線数又は読み取り解像度に応じてパターンマッチング用のパターンを用意する必要があるため、処理量や回路が増大してしまう。また、パターンマッチングにおいて誤検出又は検出漏れが発生するおそれもある。このような場合、網点の検出精度を上げるためには、広い範囲の画素を参照する処理、孤立点処理、膨張処理等の複雑な処理が必要となる。さらには、平滑化処理による解像度変換に起因して、画像のエッジ付近等の高周波成分が含まれる画素において画像解像度が失われてしまい、画質が劣化する問題がある。
【０００９】
更なる課題として、上記従来の方法においては、入力画像データに、モアレ成分の周波数成分と近い周波数成分が含まれている場合に、ハーフトーン処理によって発生したモアレ成分なのか、入力画像データに含まれている成分なのかを識別することが難しかった。
【００１０】
本発明は、上述の問題に鑑みてなされたものである。本発明は、ハーフトーン処理が施された画像データについて、ハーフトーン処理による画像の品質低下を高精度に検出し、画像の品質低下を防ぐことを目的としている。
【課題を解決するための手段】
【００１１】
本発明は、例えば、画像処理装置として実現できる。本発明の一態様に係る画像処理装置は、第１の階調数の入力画像データに対して第１のハーフトーン処理を行って、第１の階調数よりも少ない第２の階調数のハーフトーン画像データを生成するハーフトーン処理手段と、入力画像データとハーフトーン画像データとの画素値の差分を評価して、第１のハーフトーン処理によってハーフトーン画像データに生じた量子化誤差を示す量子化誤差データを算出する算出手段と、算出手段によって算出された量子化誤差データに対して第２のハーフトーン処理を行って、第１のハーフトーン処理による量子化誤差を補正するための第２の階調数の補正データを生成する生成手段と、生成手段によって生成された補正データを用いてハーフトーン画像データを補正する補正手段とを備えることを特徴とする。
【００１２】
また、本発明の別の態様に係る画像処理装置は、第１の階調数の入力画像データに対して第１のハーフトーン処理を行って、第１の階調数よりも少ない第２の階調数のハーフトーン画像データを生成する第１のハーフトーン処理手段と、入力画像データと第１のハーフトーン画像データとの差分を評価して、第１のハーフトーン処理によって第１のハーフトーン画像データに生じた量子化誤差を示す量子化誤差データを算出する算出手段と、算出手段によって算出された量子化誤差データを、第１のハーフトーン処理による量子化誤差を補正するための補正データとして用いて、第１のハーフトーン画像データを補正する補正手段と、補正手段によって補正された第１のハーフトーン画像データに対して第２のハーフトーン処理を行って、第２の階調数の第２のハーフトーン画像データを生成する第２のハーフトーン処理手段とを備えることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、ハーフトーン処理が施された画像データについて、ハーフトーン処理による画像の品質低下を高精度に検出し、画像の品質低下を防ぐことができる。
【図面の簡単な説明】
【００１４】
【図１】プリンタ１０における画像形成ユニットの構成例を示す図である。
【図２】プリンタ１０のシステム構成例を示す図である。
【図３】ホストＰＣ及びプリンタ１０のシステム構成例を示す図である。
【図４】感光ドラムの表面にトナー像が形成される様子を示す図である。
【図５】ハーフトーン処理部３０７及び量子化誤差処理部３０８の構成例を示すブロック図である。
【図６】組織的ディザ法に使用するハーフトーンテーブルの一例を示す図である。
【図７】入力画像データの一例を示す図である。
【図８】組織的ディザ法による第１のハーフトーン画像データの一例を示す図である。
【図９】ハーフトーン処理の最小セルの一例と画像端部における処理の一例とを示す図である。
【図１０】フィルタ処理をされた画像データの一例を示す図である。
【図１１】量子化誤差データの一例を示す図である。
【図１２】第２の量子化処理装部５０３１の構成例を示すブロック図である。
【図１３】量子化処理部１３２によって実行される処理の手順を示すフローチャートである。
【図１４】誤差拡散処理の拡散係数テーブルの一例を示すテーブルである。
【図１５】ハーフトーン補正データの一例を示す図である。
【図１６】第１の実施形態に係る画像処理装置で補正した画像データの一例である。
【図１７】第２のハーフトーン画像データの一例を示す図である。
【図１８】第２の実施形態に係るハーフトーン処理部３０７及び量子化誤差処理部３０８の構成例を示すブロック図である。
【図１９】量子化誤差データのプラス成分とマイナス成分とを分離して得られたデータの一例を示す図である。
【図２０】量子化誤差データのプラス成分とマイナス成分とを量子化して得られたデータの一例を示す図である。
【図２１】第２の実施形態に係るプリンタ１０で得られた第２のハーフトーン画像データの一例である。
【図２２】第３の実施形態に係るハーフトーン処理部３０７及び量子化誤差処理部３０８の構成例を示すブロック図である。
【図２３】第３の実施形態に係るプリンタ１０で得られた第２のハーフトーン画像データの一例である。
【図２４】第４の実施形態に係る第１及び第２の量子化処理部５０１１、１９０２の構成例を示すブロック図と、ハーフトーンテーブルの一例を示す図である。
【図２５】第４の実施形態に係る閾値読み出し部３００１の構成例と、閾値読み出し部３００１によって実行される処理の手順を示すフローチャートである。
【図２６】第４の実施形態に係る量子化部３００３によって実行される処理の手順を示すフローチャートである。
【図２７】第４の実施形態に係る入力画像データの一例を示す図である。
【図２８】第４の実施形態に係る第１のハーフトーン画像データの一例を示す図である。
【図２９】第４の実施形態に係る量子化誤差データのプラス成分とマイナス成分とを分離して得られたデータの一例を示す図である。
【図３０】第４の実施形態に係る第３の量子化処理部１９０３の構成例を示すブロック図である。
【図３１】第４の実施形態に係る量子化誤差データのプラス成分とマイナス成分とを量子化して得られたデータの一例を示す図である。
【図３２】第４の実施形態に係る第２のハーフトーン画像データの一例を示す図である。
【図３３】第５の実施形態に係るハーフトーン処理部３０７及び量子化誤差処理部３０８の構成例を示すブロック図である。
【図３４】第５の実施形態に係る第１、第２及び第３の量子化処理部５０１１、１９０２及び１９０３の構成例を示すブロック図である。
【図３５】第６の実施形態に係るハーフトーン処理部３０７及び量子化誤差処理部３０８の構成例を示すブロック図である。
【図３６】第６の実施形態に係る入力画像データ及び第１のハーフトーン画像データの一例を示す図である。
【図３７】第６の実施形態に係る量子化誤差データの一例を示す図である。
【図３８】第６の実施形態に係る量子化誤差データのプラス成分とマイナス成分とを量子化して得られたデータの第１の例を示す図である。
【図３９】第６の実施形態に係る第２のハーフトーン画像データの第１の例を示す図である。
【図４０】第６の実施形態に係る第２及び第３の閾値読み出し部４００２、４００３の構成例と、第３の閾値読み出し部４００３によって実行される処理の手順を示すフローチャートである。
【図４１】第６の実施形態に係る行列番号変換テーブルの一例を示す図である。
【図４２】第６の実施形態に係る量子化誤差データのプラス成分とマイナス成分とを量子化して得られたデータの第２の例を示す図である。
【図４３】第６の実施形態に係る第２のハーフトーン画像データの第２の例を示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明を実施するための形態について図面を用いて説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものでなく、また実施形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【００１６】
［第１の実施形態］
まず、第１実施形態について説明する。本実施形態では、本発明の画像処理装置の適用例として、電子写真方式による、中間転写ベルトを採用したタンデム方式の４ドラム・フルカラー画像形成装置について説明する。なお、後述するように、ホスト・コンピュータ（ホストＰＣ）を本発明の画像処理装置として機能させることで、本発明を実施することも可能である。
【００１７】
＜プリンタ１０の構成＞
まず、図１を参照して、画像形成装置１０（以下では単に「プリンタ」と称する。）の構成について説明する。プリンタ１０は、記録材（記録媒体）に画像を形成するための複数色の色材として、イエロー（Ｙ）色、マゼンタ（Ｍ）色、シアン（Ｃ）色及びブラック（Ｋ）色の４色の現像剤（トナー）を使用して、記録材上にマルチカラー（多色）の画像を形成する。プリンタ１０では、まず、パルス幅変調（ＰＷＭ）処理部３０９（図３に図示）によって生成される露光制御信号に基づく露光によって、感光ドラム（感光体）２２Ｙ，２２Ｍ，２２Ｃ，２２Ｋの表面に、それぞれ静電潜像が形成される。これらの静電潜像が各色のトナーを用いて現像されることで、モノカラー（単色）のトナー像が各感光ドラム（感光体）２２Ｙ，２２Ｍ，２２Ｃ，２２Ｋの表面に形成される。最終的に、これらのトナー像が記録材の表面に重ね合わせて転写されることで、当該記録材の表面に多色のトナー像が形成される。以下では、プリンタ１０が実行する画像形成動作について、より詳細に説明する。
【００１８】
プリンタ１０は、それぞれが異なる色のトナーで単色のトナー像を対応する複数の感光ドラム２２Ｙ，２２Ｍ，２２Ｃ，２２Ｋ上に形成する４個の画像形成ステーションを備える。４個の画像形成ステーションは、複数の感光ドラム２２Ｙ，２２Ｍ，２２Ｃ，２２Ｋと、一次帯電器である注入帯電器２３Ｙ，２３Ｍ，２３Ｃ，２３Ｋと、露光装置２４Ｙ，２４Ｍ，２４Ｃ，２４Ｋとをそれぞれ備える。４個の画像形成ステーションは、更に、トナーカートリッジ２５Ｙ，２５Ｍ，２５Ｃ，２５Ｋと、現像器２６Ｙ，２６Ｍ，２６Ｃ，２６Ｋとをそれぞれ備える。プリンタ１０は、これら４個の画像形成ステーションにおいて感光ドラム２２Ｙ，２２Ｍ，２２Ｃ，２２Ｋ上に形成されたトナー像が転写される中間転写体（中間転写ベルト）２７を備える。
【００１９】
感光ドラム２２Ｙ，２２Ｍ，２２Ｃ，２２Ｋは、それぞれ異なる駆動モータ（不図示）の駆動力によって回転する。注入帯電器２３Ｙ，２３Ｍ，２３Ｃ，２３Ｋは、それぞれスリーブ２３ＹＳ，２３ＭＳ，２３ＣＳ，２３ＫＳを備え、それぞれ対応する感光ドラム２２Ｙ，２２Ｍ，２２Ｃ，２２Ｋを帯電させる。露光装置２４Ｙ，２４Ｍ，２４Ｃ，２４Ｋは、帯電した感光ドラム２２Ｙ，２２Ｍ，２２Ｃ，２２Ｋの表面をレーザ光で露光することによって、対応する感光ドラム上に静電潜像を形成する。現像器２６Ｙ，２６Ｍ，２６Ｃ，２６Ｋは、スリーブ２６ＹＳ，２６ＭＳ，２６ＣＳ，２６ＫＳをそれぞれ備える。現像器２６Ｙ，２６Ｍ，２６Ｃ，２６Ｋは、トナーカートリッジ２５Ｙ，２５Ｍ，２５Ｃ，２５Ｋから供給されるそれぞれ異なる色のトナーで、感光ドラム２２Ｙ，２２Ｍ，２２Ｃ，２２Ｋ上の静電潜像を現像する。具体的には、現像器２６Ｙ，２６Ｍ，２６Ｃ，２６Ｋは、それぞれＹ色、Ｍ色、Ｃ色、Ｋ色のトナーを用いて各感光ドラム２２Ｙ，２２Ｍ，２２Ｃ，２２Ｋ上の静電潜像を可視化することで、各感光ドラムの表面に各色のトナー像を形成する。
【００２０】
中間転写体２７は、図１に示すように、感光ドラム２２Ｙ，２２Ｍ，２２Ｃ，２２Ｋに接触する位置に配置されている。中間転写体２７は、画像形成の際には、駆動ローラ１６の駆動力によって回転しながら、その表面に各感光ドラム２２Ｙ，２２Ｍ，２２Ｃ，２２Ｋから単色のトナー像が順に重ねて転写（１次転写）される。これにより、中間転写体２７の表面に多色のトナー像が形成される。なお、駆動ローラ１６は、中間転写体２７用の駆動モータ（不図示）によって駆動される。
【００２１】
中間転写体２７上に形成された多色のトナー像は、当該中間転写体の回転に伴って、当該中間転写体と転写ローラ２８との間のニップ部に搬送される。トナー像が当該ニップ部に搬送されるタイミングに合わせて、記録材１１が給紙部２１ａ又は２１ｂから給紙され、搬送路上を当該ニップ部まで搬送される。転写ローラ２８は、当該ニップ部において、搬送された記録材１１を介して中間転写体２７に当接する。転写ローラ２８が中間転写体２７に当接している間に、中間転写体２７上に形成された多色のトナー像が記録材１１上に転写（２次転写）される。これにより、記録材１１上に多色のトナー像が形成される。中間転写体２７から記録材１１への２次転写が終了すると、転写ローラ２８は中間転写体２７から離間する。
【００２２】
多色のトナー像が転写された記録材１１は、その後、搬送路上を定着部３０へ搬送される。定着部３０は、搬送路上を搬送される記録材１１上のトナー像を溶融させ、記録材１１上に定着させる。定着部３０は、記録材１１を加熱するための定着ローラ３１と、記録材１１を定着ローラ３１に圧接させるための加圧ローラ３２とを備える。定着ローラ３１及び加圧ローラ３２は、中空状に形成され、定着ローラ３１の内部にはヒータ３３が内蔵されている。表面に多色のトナー像を保持した記録材１１は、定着部３０において、定着ローラ３１及び加圧ローラ３２によって搬送ながら、熱及び圧力を加えられる。これにより、記録材１１の表面にトナーが定着する。トナーの定着後、記録材１１は、排出ローラ（不図示）によって排紙トレイ（不図示）に排出される。以上により、記録材１１への画像形成動作が終了する。
【００２３】
中間転写体２７の近傍に設けられたクリーニング部２９は、クリーナ容器を備え、記録材１１へのトナー像の２次転写後に中間転写体２７上に残留したトナー（廃トナー）を回収する。クリーニング部２９は、回収した廃トナーを当該クリーナ容器に蓄える。このようにして、クリーニング部２９は、中間転写体２７の表面をクリーニングする。
【００２４】
なお、本実施形態では、中間転写体２７を備えたプリンタ１０（図１）について説明するが、本発明は、感光ドラム２２Ｙ，２２Ｍ，２２Ｃ，２２Ｋ上に形成されたトナー像を記録材に直接転写する一次転写方式のプリンタに対しても適用できる。この場合、図１に示す中間転写体２７は、搬送ベルトに置き換えられればよい。また、本実施形態では、感光ドラム２２Ｙ，２２Ｍ，２２Ｃ，２２Ｋのそれぞれについて異なる駆動を設いているが、すべての感光ドラムについて共通の（単一の）モータが用いられてもよい。
【００２５】
＜プリンタ１０及びホストＰＣ２１０のシステム構成＞
次に、図２に示すプリンタ１０のシステム構成を参照して、画像形成時において実行される処理について説明する。
【００２６】
（ホストＰＣ２１０のシステム構成）
ホストＰＣ２１０は、少なくとも、ＣＰＵ２１１、ＲＡＭ２１２、ネットワークＩＦ２１３、表示部インタフェース（ＩＦ）２１４、入力ＩＦ２１５、及び不揮発性の記憶装置の一例としてハードディスクドライブ（ＨＤＤ）２１６を備える。ＣＰＵ２１１は、ＲＡＭ２１２をメインメモリ及びワークエリアとして使用するとともに、ＨＤＤ２１６に格納された各種の制御プログラムをＲＡＭ２１２に読み出して実行することで、ホストＰＣ２１０全体の動作を制御する。ＨＤＤ２１６には、各種アプリケーション及びプリンタドライバも格納されており、ＣＰＵ２１１はそれらをＲＡＭ２１２に読み出して実行可能である。ネットワークＩＦ２１３は、ＬＡＮ等のネットワークに接続されており、ホストＰＣ２１０はそのようなネットワークを介してプリンタ１０と接続されている。なお、ホストＰＣ２１０は、ネットワークを介することなく、ＵＳＢ接続等の接続方式によりプリンタ１０と直接接続されていてもよい。
【００２７】
ホストＰＣ２１０は、そのようなアプリケーション及びプリンタドライバを用いて、ネットワークＩＦ２１３を介してプリンタ１０へＰＤＬ（Page Description Language）ジョブデータを送信する。ＰＤＬジョブデータ（プリントジョブデータ）には、形成すべき画像の画像データである描画データと、当該描画データを用いた画像形成動作を制御するための制御データとが含まれる。また、表示部ＩＦ２１４は、液晶ディスプレイ等の表示部（不図示）に各種の表示を行うためのインタフェースである。また、入力ＩＦ２１５は、キーボードやマウス等の入力デバイスからの入力を受け付けるためのインタフェースである。
【００２８】
（プリンタ１０のシステム構成）
プリンタ１０は、大きく分けて、制御部２２０と機構部２３０とを備える。機構部２３０は、制御部２２０からの各種指示に応じて動作する。機構部２３０は、センサ系２３１、給紙・搬送系２３２、作像系２３３、及び、レーザスキャナ系２３４を備える。レーザスキャナ系２３４は、露光装置２４Ｙ，２４Ｍ，２４Ｃ，２４Ｋで構成され、レーザ発光素子、レーザドライバ回路、スキャナモータ、回転多面鏡、スキャナドライバ等を備える。レーザスキャナ系２３４は、ＡＳＩＣ２２６から受信した描画データに従って感光ドラム２２Ｙ，２２Ｍ，２２Ｃ，２２Ｋ上をレーザ光でそれぞれ露光及び走査することで、各感光ドラム上に静電潜像を形成する。
【００２９】
作像系２３３は、レーザスキャナ系２３４によって感光ドラム２２Ｙ，２２Ｍ，２２Ｃ，２２Ｋ上に形成された静電潜像に基づいてトナー像を記録媒体上に形成する。作像系２３３は、トナーカートリッジ２５Ｙ，２５Ｍ，２５Ｃ，２５Ｋ、中間転写体２７、定着部３０等のプロセス要素と、作像（画像形成）の際に各種のバイアス（高電圧）を生成する高圧電源回路とを備える。作像系２３３は、更に、除電器、注入帯電器２３Ｙ，２３Ｍ，２３Ｃ，２３Ｋ、現像器２６Ｙ、２６Ｍ，２６Ｃ，２６Ｋ，感光ドラム２２Ｙ，２２Ｍ，２２Ｃ，２２Ｋ等を備える。給紙・搬送系２３２は、各種の搬送系モータ、給紙部２１ａ及び２１ｂ、排紙トレイ、各種搬送ローラ等を備え、記録材の給紙及び搬送を行う。
【００３０】
センサ系２３１は、複数のセンサを含むセンサ群を備える。当該センサ群に含まれる各センサは、ＣＰＵ２２５及びＡＳＩＣ２２６がレーザスキャナ系２３４、作像系２３３、給紙・搬送系２３２を制御するために必要とする情報を収集するために使用される。当該センサ群には、例えば、定着部３０の温度センサ、トナー残量検知センサ、画像の濃度を検知する濃度センサ、用紙サイズを検知する用紙サイズセンサ、記録媒体の先端を検知する紙先端検知センサ、紙搬送検知センサ等が含まれる。これらのセンサで検知された情報は、ＣＰＵ２２５へ送られて、ＣＰＵ２２５によるプリントシーケンス制御に用いられる。なお、上述の各センサは、センサ系２３１ではなく、レーザスキャナ系２３４、作像系２３３、給紙・搬送系２３２の何れかに備えられていてもよい。
【００３１】
制御部２２０は、上述の機構部２３０を制御する。制御部２２０において、ＣＰＵ２２５は、ＲＡＭ２２２をメインメモリ及びワークエリアとして使用する。ＣＰＵ２２５は、ＲＯＭ２２１に格納された各種制御プログラムをＲＡＭ２２２へ読み出して実行することによって機構部２３０を制御する。システムバス２２８は、アドレスバス及びデータバスを有する。制御部２２０内の各構成要素は、システムバス２２８に接続されているため、システムバス２２８を介して他の構成要素にアクセス可能である。
【００３２】
ホストインタフェース（ＩＦ）部２２４は、ホストＰＣ２１０との間で描画データ、制御データ等のデータをやり取りするためのインタフェースである。ホストＩＦ部２２４において圧縮データとして受信された描画データは、ＲＡＭ２２２に格納される。ＣＰＵ２２５は、ホストＩＦ部２２４で受信された圧縮データを描画データに伸張し、当該描画データをＲＡＭ２２２に格納する。ＤＭＡ制御部２２３は、ＣＰＵ２２５からの指示に応じて、ＲＡＭ２２２内の描画データをＡＳＩＣ２２６に転送する。パネルＩＦ部２２７は、プリンタ本体に設けられた表示パネル部を用いてユーザによって入力された設定及び指示を、当該表示パネル部から受信するインタフェースとして機能する。また、パネルＩＦ部２２７は、表示パネル部の表示装置に操作画面等を表示するためのデータを当該表示パネル部に送信するインタフェースとしても機能する。なお、表示パネル部には、液晶ディスプレイ等の表示装置と、ハードキー、当該表示装置上に設けられたタッチパネル等の入力装置とが備わっている。
【００３３】
ＣＰＵ２２５及びＡＳＩＣ２２６は、ホストＩＦ部２２４を介して入力された制御データ及び描画データに基づいて、機構部２３０内のレーザスキャナ系２３４を駆動する。ＣＰＵ２２５は、給紙・搬送系２３２及び作像系２３３を制御して、各種プリントシーケンスを実行する。また、ＣＰＵ２２５は、センサ系２３１を駆動して、給紙・搬送系２３２及び作像系２３３を制御するために必要なセンサ情報を得る。
【００３４】
ＡＳＩＣ２２６は、上述の各種のプリントシーケンスが実行される際に、ＣＰＵ２２５からの指示に応じて、機構部２３０に設けられた各モータの制御バイアス、現像バイアス等についての高圧電源制御を行う。また、ＡＳＩＣ２２６は、後述するように、色変換処理、ガンマ補正処理、ハーフトーン処理、量子化誤差演算処理、量子化誤差補正処理、ＰＷＭ処理等を行う。なお、ＣＰＵ２２５の機能の一部又は全てはＡＳＩＣ２２６において実行されてもよいし、逆にＡＳＩＣ２２６の機能の一部又は全てがＣＰＵ２２５において実行されてもよい。また、プリンタ１０に別の専用ハードウェアを設け、当該専用ハードウェアにＣＰＵ２２５及びＡＳＩＣ２２６の機能の一部を実行させてもよい。
【００３５】
＜プリンタ１０及びホストＰＣ２１０における処理＞
次に、図３（ａ）を参照して、ホストＰＣ２１０、並びにプリンタ１０内のＣＰＵ２２５、ＡＳＩＣ２２６、及びレーザスキャナ系２３４において実行される処理について説明する。
【００３６】
文書作成ソフトウェア、図形描画ソフトウェア等の、ホストＰＣ２１０において実行中のアプリケーション３０１は、印刷用の描画データ及び制御データを生成すると、生成したデータをプリンタドライバ上のＰＤＬ変換部３０２へ送信する。描画データは、例えば、印刷対象の画像の画素値（「階調値」とも称する。）及び属性情報を含むデータである。当該属性情報は、例えば、画像の種類（文字データ、グラフィクスデータ及びイメージデータ）を識別するための情報である。制御データは、例えば、印刷に使用される記録材のサイズ設定、印刷部数を含むデータである。ＰＤＬ変換部３０２は、描画データを圧縮データに変換し、変換後のデータと制御データとを含むＰＤＬデータを生成するとともに、生成した当該ＰＤＬデータをプリンタ１０へ送信する。
【００３７】
プリンタ１０のＣＰＵ２２５は、ホストＰＣ２１０から送信されたＰＤＬデータを、ホストＩＦ部２２４を介して受信する。ＣＰＵ２２５は、受信した当該ＰＤＬデータに対し、レンダラ３０３及び制御情報生成部３０４の機能に基づいて所定の処理を施した後、処理後のデータをＲＡＭ２２２へ一時的に格納する。ＣＰＵ２２５は、制御プログラムを実行して、レンダラ３０３及び制御情報生成部３０４の機能を実現する。
【００３８】
具体的には、レンダラ３０３は、受信されたＰＤＬデータに含まれる圧縮データを描画データへと伸張し、それをＲＡＭ２２２に格納する。本実施形態において、当該描画データ内の階調値は、ＲＧＢ色空間で表現されたＲＧＢデータである。ＲＡＭ２２２に格納された描画データは、ＤＭＡ制御部２２３による制御に応じてＡＳＩＣ２２６へ送信される。また、制御情報生成部３０４は、受信されたＰＤＬデータに含まれる制御データから、ＡＳＩＣ２２６において用いられる制御情報を生成する。制御情報生成部３０４は、生成した制御情報をＡＳＩＣ２２６へ送信する。加えて、制御情報生成部３０４は、ＡＳＩＣ２２６によって実行される処理に必要となる他の制御情報を、ＲＯＭ２２１から取り出して、ＰＤＬデータに含まれる制御データから生成された制御情報とともにＡＳＩＣ２２６へ送信する。なお、ＲＯＭ２２１に格納された制御情報には、例えば、色変換テーブル、ガンマ補正テーブル、ハーフトーンテーブル、フィルタテーブル等が含まれる。
【００３９】
ＡＳＩＣ２２６で受信された制御情報は、色変換処理部３０５、ガンマ補正部３０６、ハーフトーン処理部３０７、及び、量子化誤差処理部３０８に供給される。また、ＡＳＩＣ２２６で受信された描画データ（ＲＧＢ色空間で表現された階調値Ｒ，Ｇ，Ｂ）は、入力信号として色変換処理部３０５へ供給される。色変換処理部３０５は、入力信号である階調値Ｒ，Ｇ，Ｂを、ＣＭＹＫ色空間で表現された階調値Ｃ1，Ｍ1，Ｙ1，Ｋ1に変換する。さらに、色変換処理部３０５は、変換後の階調値Ｃ1，Ｍ1，Ｙ1，Ｋ1をガンマ補正部３０６に出力する。
【００４０】
ガンマ補正部３０６は、制御情報に含まれる、プリンタの階調−濃度特性を補正するためのガンマ補正テーブルを用いて、階調値Ｃ1，Ｍ1，Ｙ1，Ｋ1の階調−濃度特性を補正した階調値Ｃ2，Ｍ2，Ｙ2，Ｋ2を生成する。ガンマ補正部３０６は、生成した階調値Ｃ2，Ｍ2，Ｙ2，Ｋ2を、ハーフトーン処理部３０７及び量子化誤差処理部３０８へ出力する。
【００４１】
ハーフトーン処理部３０７は、制御情報に含まれるハーフトーンテーブルを用いて、後述するディザ処理（組織的ディザ処理）によるハーフトーン処理を行うことによって、階調値Ｃ2，Ｍ2，Ｙ2，Ｋ2を、ハーフトーン処理後の階調値Ｃ3，Ｍ3，Ｙ3，Ｋ3へ変換する。さらに、ハーフトーン処理部３０７は、ハーフトーン処理後の階調値Ｃ3，Ｍ3，Ｙ3，Ｋ3を量子化誤差処理部３０８に出力する。
【００４２】
量子化誤差処理部３０８は、後述するように、ガンマ補正部３０６及びハーフトーン処理部３０７から入力されたデータに対して、制御情報に含まれるフィルタテーブルを用いた量子化誤差演算処理と量子化誤差補正処理を行う。量子化誤差処理部３０８は、ガンマ補正部３０６から入力された階調値Ｃ2，Ｍ2，Ｙ2，Ｋ2と、ハーフトーン処理部３０７から入力された階調値Ｃ3，Ｍ3，Ｙ3，Ｋ3とから、量子化誤差の補正後の階調値Ｃ4，Ｍ4，Ｙ4，Ｋ4を生成する。量子化誤差処理部３０８は、生成した階調値Ｃ4，Ｍ4，Ｙ4，Ｋ4をＰＷＭ処理部３０９へ出力する。
【００４３】
ＰＷＭ処理部３０９は、入力された階調値Ｃ4，Ｍ4，Ｙ4，Ｋ4を、露光装置２４Ｙ，２４Ｍ，２４Ｃ，２４Ｋのレーザ発光素子による露光を制御するための露光制御信号Ｔc，Ｔm，Ｔy，Ｔkへ変換する。この露光制御信号は、１ドット当たりのレーザ発光幅に相当し、ＰＷＭ処理部３０９は、入力される階調値に応じて当該レーザ発光幅を決定する。ＰＷＭ処理部３０９は、決定した露光制御信号Ｔc，Ｔm，Ｔy，Ｔkを、露光用の画像データ（ＰＷＭデータ）として露光装置２４Ｙ，２４Ｍ，２４Ｃ，２４Ｋに出力する。露光装置２４Ｙ，２４Ｍ，２４Ｃ，２４Ｋは、露光制御信号Ｔc，Ｔm，Ｔy，Ｔkに従って、対応するレーザ発光素子をそれぞれ発光させる。
【００４４】
なお、ＲＧＢ色空間及びＣＭＹＫ色空間の階調値は任意のビット数で表現でき、プリンタ１０の色再現範囲の調整等を行うために、各階調値のビット数は増減され得る。本実施形態では、それぞれ８ビットで表現した場合について一例として説明する。
【００４５】
また、図３（ａ）を参照して上述したＡＳＩＣ２２６における処理は、図３（ｂ）に示すようにホストＰＣ２１０側で実現されてもよい。例えば、上述の図３（ａ）のＡＳＩＣ２２６で実行される機能を実現するためのソフトウェアを、ホストＰＣ２１０上で実行可能にすればよい。図３（ｂ）において、ＰＤＬ変換部３０２は、量子化誤差処理部３０８による量子化誤差補正処理後の階調値Ｃ4，Ｍ4，Ｙ4，Ｋ4を、描画データとしてＰＤＬデータに変換する機能を有する。ホストＰＣ２１０は、当該ＰＤＬデータをプリンタ１０へ送信する。プリンタ１０においてレンダラ３１０は、ホストＰＣ２１０から受信されたＰＤＬデータを元の階調値Ｃ4，Ｍ4，Ｙ4，Ｋ4に変換して、それをＰＷＭ処理部３０９に出力する。
【００４６】
＜プリンタ１０におけるトナー像の形成＞
次に、図４を参照して、プリンタ１０において、露光制御信号Ｔc，Ｔm，Ｔy，Ｔkを使用してトナー像がどのように形成されるかについて説明する。ここでは、露光装置２４Ｋを用いてＫ色のトナー像を形成する場合について説明するが、露光装置２４Ｃ，２４Ｍ，２４Ｙをそれぞれ用いてＣ色、Ｍ色及びＹ色のトナー像を形成する場合も同様である。図４の（ａ）及び（ｂ）はそれぞれ、露光装置２４Ｋによって感光ドラム２２Ｋの表面を露光制御信号Ｔkに従って露光した後の電位分布（表面電位４１）と露光制御信号Ｔkとを、一例として示している。
【００４７】
まず、露光装置２４Ｋによる露光が開始される前に、注入帯電器２３Ｋは、感光ドラム２２Ｋの表面を一定の電位ＶDに帯電させる。ここではＶDを−４００Ｖとする。感光ドラム２２Ｋの帯電後、ＰＷＭ処理部３０９が、露光制御信号Ｔkを露光装置２４Ｋに入力する。露光制御信号Ｔkは、露光装置２４Ｋによる露光状態を制御するための信号であり、図４（ｂ）に示すように、ＨｉとＬｏとの間で変化するパルス信号４２で表される。露光装置２４Ｋは、露光制御信号ＴkがＨｉの場合、レーザ発光素子を点灯（発光）させることで、感光ドラム２２Ｋの表面にレーザ光を照射する。一方で、露光装置２４Ｋは、露光制御信号ＴkがＬｏの場合、レーザ発光素子を消灯させる。このように、露光装置２４Ｋは、入力された露光制御信号Ｔk（パルス信号４２）に応じて、露光状態をＯＮ状態とＯＦＦ状態との間で切り替える。
【００４８】
感光ドラム２２Ｋの表面において、露光装置２４Ｋからレーザ光が照射された（露光された）領域は、表面電位の絶対値がＶDから低下する。露光による表面電位の変化量は、露光装置２４Ｋによる露光される時間（露光時間Ｔ）に依存する。また、露光装置２４Ｋによる露光時間Ｔは、露光制御信号ＴkにおけるＨｉの継続時間に相当する。感光ドラム２２Ｋの表面が十分な時間、露光された場合には、感光ドラム２２Ｋの表面における露光された領域の表面電位は、ＶDからＶLに変化する。ここではＶLを−１００Ｖとする。
【００４９】
露光装置２４Ｋによる露光の結果、感光ドラム２２Ｋの表面において、表面電位４１の絶対値が現像バイアスＶdevを下回ると、現像器２６Ｋによる現像によって、Ｋ色のトナーが付着する。即ち、表面電位４１の絶対値が現像バイアスＶdevを下回った領域においては、潜像がトナーで現像されることで、トナー像が形成される。ここでは、Ｖdevを−２５０Ｖとする。感光ドラム２２Ｋの表面に付着するトナーの量は、表面電位４１と現像バイアスＶdevとの差分に依存し、当該差分が大きいほど多くの付着するトナー量が多くなる。図４（ａ）の４３は、形成されたトナー像の一例であり、表面電位４１と現像バイアスＶdevとの差分に対応する量のトナーによってトナー像が形成されることを示している。
【００５０】
また、図４では、露光制御信号Ｔkによる露光時間Ｔ（パルス信号４２におけるＨｉの継続時間）に応じた露光によって、感光ドラム２２Ｋの表面電位４１がどのように変化するのかを示している。露光装置２４Ｋのレーザ発光素子はパルス信号４２に応じてレーザ光を発光するため、感光ドラム２２Ｋに照射されるレーザ光の光量は、パルス信号４２（即ち、露光時間Ｔ）と対応する。感光ドラム２２Ｋに照射されるレーザ光の光量が大きくなるほど、感光ドラム２２Ｋの表面において、より広い領域の電位が変化する。
【００５１】
しかし、図４に示すように、露光後の感光ドラム２２Ｋの表面電位４１の分布は、露光装置２４Ｋによって照射されるレーザ光の光量（パルス信号４２に対応）とは一致せず、露光制御信号Ｔkに相当するパルス信号４２をガウシアン形状で近似した分布となる。感光ドラム２２Ｋが有するこのような特性に起因して、感光ドラム２２Ｋの表面にレーザ光を照射したにもかかわらず、トナー像が形成されない場合が起こりうるという問題がある。以下では、図４を参照しながら、この問題についてより詳しく説明する。
【００５２】
図４（ｂ）において、Ｔ＝１．０は、６００ｄｐｉのプリンタによって１ドットを形成する場合に対応する。また、Ｔ＝０．５，０．２５，０．１２５，２．０は、それぞれ当該プリンタによって０．５，０．２５，０．１２５，２．０ドットを形成する場合に対応する。これらの図４（ｂ）に示す各露光時間Ｔに対応して、図４（ａ）に示すように感光ドラム２２Ｋの表面電位が変化することで、感光ドラム２２Ｋの表面に静電潜像が形成される。ここで、現像器２６Ｋによる現像によって静電潜像が実際に現像されてトナー像が形成されるのは、上述したように、感光ドラム２２Ｋの表面電位４１の絶対値が現像バイアスＶdevを下回っている領域である。
【００５３】
図４に示す例では、Ｔ＝０．５以上、即ち、０．５ドット以上に対応した露光時間Ｔで感光ドラム２２Ｋの表面を露光した場合にのみ、表面電位４１の絶対値が現像バイアスＶdevの絶対値を下回る。その結果、露光された領域にトナー像４３が形成されている。一方で、Ｔ＝０．２５以下、即ち、０．２５ドット以下に対応した露光時間Ｔで感光ドラム２２Ｋの表面を露光した場合には、表面電位４１の絶対値が現像バイアスＶdevの絶対値を下回らない。その結果、図４（ｂ）に示すように、露光された領域の静電潜像（図４の４４）は現像されず、当該領域にトナー像が形成されない。
【００５４】
このように、感光ドラム２２Ｋの表面にトナー像を形成するためには、感光ドラム２２Ｋの表面電位の絶対値が現像バイアスＶdevの絶対値を下回るのに十分な時間、感光ドラム２２Ｋにレーザ光を連続的に照射する必要がある。従って、ＰＤＬジョブデータに含まれる描画データ（画像データ）に基づいて画像形成を行う際には、プリンタ１０におけるこのような露光特性を考慮する必要がある。
【００５５】
ここで、上述したハーフトーン処理部３０７によってハーフトーン処理が施された画像データに基づいてトナー像を形成する場合、当該ハーフトーン処理による量子化誤差に起因して、その品質が劣化する可能性がある。この量子化誤差に伴う品質劣化を補償するために、量子化誤差処理部３０８は、ハーフトーン処理が施される前後の画像データに基づいて補正データを生成し、生成した補正データを用いて、ハーフトーン処理が施された画像データを補正する。ところが、後述するように、プリンタ１０のこのような露光特性に依存して、生成した補正データによる量子化誤差の補正効果が十分に得られず、感光ドラム２２Ｋに対してトナー像が適切に形成されない現象が起こりうる。
【００５６】
そこで、本実施形態では、量子化誤差の補正効果が十分に得られるように、ハーフトーン処理が施された入力画像データに対する補正データを生成する。具体的には、量子化誤差処理部３０８が、入力画像データと、ハーフトーン処理が施された入力画像データとの差分を評価して量子化誤差データを生成するとともに、生成したデータに適切なハーフトーン処理を施すことで補正データを生成する。さらに、量子化誤差処理部３０８は、生成した補正データを用いて、ハーフトーン処理が施された入力画像データを補正する。
【００５７】
＜ハーフトーン処理部３０７及び量子化誤差処理部３０８の構成＞
次に、図５を参照して、ハーフトーン処理部３０７及び量子化誤差処理部３０８の構成例について説明するとともに、それらによって実行される処理の概略を説明する。以下では主としてＫ色に関する処理について説明するが、他のＣ色、Ｍ色、Ｙ色に関する処理も同様である。
【００５８】
（ハーフトーン処理部３０７）
ハーフトーン処理部３０７は、第１の量子化処理部５０１１を有する。第１の量子化処理部５０１１は、ガンマ補正部３０６から入力される画像データ（Ｋ2）に対して、組織的ディザ法によるハーフトーン処理（第１のハーフトーン処理）を行って、第１のハーフトーン画像データ（Ｋ3）を生成する。第１の量子化処理部５０１１は、生成した第１のハーフトーン画像データを、量子化誤差処理部３０８に対して出力する。
【００５９】
ここで、「ハーフトーン処理」とは、第１の階調数の画像データを、当該第１の階調数よりも少ない第２の階調数の画像データに変換する処理をいう。本明細書では、このような「ハーフトーン処理」を「量子化処理」とも称する。
【００６０】
（量子化誤差処理部３０８）
量子化誤差処理部３０８は、量子化誤差演算部５０２、及び量子化誤差補正部５０３を有する。量子化誤差演算部５０２は、第１のフィルタ処理部５０２１、第２のフィルタ処理部５０２２、及び差分演算部５０２３を有する。
【００６１】
第１のフィルタ処理部５０２１は、ハーフトーン処理部３０７によって生成された第１のハーフトーン画像データ（Ｋ3）の注目画素と、当該注目画素近傍の所定の画素群に含まれる画素とについて、画素値の総和を算出する。一方で、第２のフィルタ処理部５０２２は、ガンマ補正部３０６からの入力画像データ（Ｋ2）の注目画素と、当該注目画素近傍の所定の画素群に含まれる画素とについて、画素値の総和を算出する。なお、第１及び第２のフィルタ処理部５０２１、５０２２は、注目画素に対応して何れも同一の範囲内の画素、即ち、注目画素と当該注目画素近傍の同一の画素群に含まれる画素とを、演算対象の画素とする。このように、第１及び第２のフィルタ処理部５０２１、５０２２はそれぞれ、有限インパルス応答フィルタとして構成される。
【００６２】
第１及び第２のフィルタ処理部５０２１、５０２２による演算結果は、何れも差分演算部５０２３に入力される。ここで、差分演算部５０２３は、差分評価手段の一例として機能する。差分演算部５０２３は、第１のフィルタ処理部５０２１による演算結果と、第２のフィルタ処理部５０２２による演算結果との差分を評価することで、ハーフトーン処理に伴う量子化誤差（ハーフトーン量子化誤差）を検出する。ここで、第１のフィルタ処理部５０２１における演算に使用される、ハーフトーン処理部３０７によって生成された第１のハーフトーン画像データ（Ｋ3）は、入力画像データ（Ｋ2）から階調数が削減されている。このため、差分演算部５０２３では、第１及び第２のフィルタ処理部５０２１、５０２２のそれぞれから入力されるデータの階調数が異なることを考慮して、それらの差分を評価する必要がある。
【００６３】
そこで、差分演算部５０２３は、後述するように、第１及び第２のフィルタ処理部５０２１、５０２２のそれぞれの演算結果を正規化して、正規化後の値の差分を算出する。差分演算部５０２３は、算出した差分値を、ハーフトーン量子化誤差として量子化誤差補正部５０３に出力する。
【００６４】
量子化誤差補正部５０３は、第２の量子化処理部５０３１、及び出力演算部５０３２を有する。第２の量子化処理部５０３１は、差分演算部５０２３から入力されたハーフトーン量子化誤差を、適切な量子化幅で量子化して、当該量子化後の値を出力演算部５０３２に出力する。ここで、第２の量子化処理部５０３１に入力されるハーフトーン量子化誤差は、プラス及びマイナスの値をとりうるため、第２の量子化処理部５０３１が出力する量子化値も、プラスの値だけでなくマイナスの値もとりうる。
【００６５】
出力演算部５０３２は、第２の量子化処理部５０３１による処理結果を用いて、ハーフトーン処理部３０７よって生成された第１のハーフトーン画像データを補正して、補正後の画像データを、出力画像データとしてＰＷＭ処理部３０９に出力する。ここで、出力演算部５０３２は、第２の量子化処理部５０３１の出力がプラスの量子化値である場合、第１のハーフトーン画像データの階調値に対して当該量子化値に応じた加算処理を行う。一方で、出力演算部５０３２は、第２の量子化処理部５０３１の出力がマイナスの量子化値である場合、第１のハーフトーン画像データの階調値に対して当該量子化値に応じた減算処理を行う。これにより、出力演算部５０３２は、第１のハーフトーン画像データに含まれる量子化誤差を補正する。
【００６６】
このように、本実施形態では、入力画像データ（Ｋ2）と、第１のハーフトーン画像データ（Ｋ3）とに基づき、まず、量子化誤差演算部５０２がハーフトーン量子化誤差を算出する。量子化誤差補正部５０３は、算出されたハーフトーン量子化誤差をそのまま用いるのではなく、当該ハーフトーン量子化誤差を適切に量子化した値を用いて、第１のハーフトーン画像データ（Ｋ3）を補正する。量子化誤差補正部５０３は、ハーフトーン量子化誤差の補正後のデータを、第２のハーフトーン画像データ（Ｋ4）として出力する。
【００６７】
これにより、ハーフトーン処理部３０７によるハーフトーン処理に伴って生じる量子化誤差を安定して補正することができ、プリンタ１０において、より適切なハーフトーン処理が実行可能となる。以下では、図５に示すハーフトーン処理部３０７、量子化誤差演算部５０２、及び量子化誤差補正部５０３において実行される処理について、より詳細に説明する。
【００６８】
＜ハーフトーン処理部３０７による処理＞
まず、図６〜図８を参照して、ハーフトーン処理部３０７による処理内容について説明する。ハーフトーン処理部３０７に入力された入力画像データ（Ｋ2）は、第１の量子化処理部５０１１に与えられる。第１の量子化処理部５０１１は、各画素が０〜２５５の整数の画素値からなる、グレースケールの２５６階調の入力画像データを、各画素が０、１及び２の整数の画素値からなる、３階調の第１のハーフトーン画像データに変換する。入力画像データについては、白色は画素値０、黒色は画素値２５５によって表現される。また、第１のハーフトーン画像データについては、白色は画素値０、黒色は画素値２によって表現される。なお、後述するように、量子化誤差処理部３０８が第１のハーフトーン画像データ（Ｋ3）の量子化誤差を補正して出力する第２のハーフトーン画像データ（Ｋ4）も、３階調の画像データとなる。
【００６９】
本実施形態では、第１及び第２のハーフトーン画像データと、ＰＷＭ処理部３０９よって出力される露光制御信号Ｔkとは、同一の階調数（＝３）で表現されるものとする。つまり、ＰＷＭ処理部３０９は、各画素について、第２のハーフトーン画像データにおける０、１及び２の階調値に対応して、露光装置２４Ｋの１ドット当たりのレーザ発光幅をそれぞれ０％、５０％及び１００％にする露光制御信号Ｔkを生成する。
【００７０】
なお、本実施形態では、２５６階調のグレースケールの画像データを、１画素当たり３階調で表現された第１のハーフトーン画像データに変換する例について説明しているが、これとは異なる階調数で表現されたハーフトーン画像データに変換してもよい。また、当然ながら、グレースケール（Ｋ色）の画像データだけでなく、Ｙ色、Ｍ色及びＣ色のそれぞれの画像データについて同様の処理を実行することによって、カラー画像データに対してもハーフトーン処理を実行可能である。
【００７１】
ここで、図６に示すハーフトーンテーブルの一例を参照して、第１の量子化処理部５０１１によって実行される、当該ハーフトーンテーブルを用いたディザ処理によるハーフトーン処理（量子化）の具体例について説明する。ハーフトーンテーブルには、入力画像データ内の各画素のディザ処理を実行する際に使用すべき閾値に関する情報が含まれている。図６に示すように、ハーフトーンテーブルには、閾値番号テーブル６００及び閾値テーブル６１０が含まれる。閾値番号テーブル６００及び閾値テーブル６１０は、例えば、ＣＰＵ２２５の制御情報生成部３０４によって生成され、ハーフトーン処理部３０７（第１の量子化処理部５０１１）に対して制御情報として提供される。
【００７２】
閾値番号テーブル６００は、入力画像データに含まれる各画素と、各画素の画素値の量子化に使用すべき閾値Ｔｈ１，Ｔｈ２とを対応付けるためのテーブル（５×５の行列）である。ここで、入力画像データに含まれる各画素の画素値は行列形式で表現され、入力画像データ内の各画素は行番号及び列番号によって特定される。閾値番号テーブル６００には、入力画像データ内の行番号及び列番号によって特定される画素に対して使用すべき２個の閾値Ｔｈ１，Ｔｈ２に対応する閾値番号（０〜４の整数）が規定されている。また、閾値テーブル６１０には、閾値番号テーブル６００に含まれる各閾値番号に対応する閾値Ｔｈ１，Ｔｈ２が規定されている。本実施形態では、２５６階調の入力画像データを３階調のハーフトーン画像データに量子化するため、各画素について２個１組の閾値Ｔｈ１，Ｔｈ２が使用される。なお、図６に示すように、本実施形態ではＴｈ１＜Ｔｈ２としている。
【００７３】
第１の量子化処理部５０１１は、閾値番号テーブル６００を参照して、入力画像データに含まれる各画素を注目画素として、当該注目画素の行番号及び列番号に基づいて閾値番号を決定する。さらに、第１の量子化処理部５０１１は、閾値テーブル６１０を参照して、決定した閾値番号に対応する閾値Ｔｈ１，Ｔｈ２を、当該注目画素について使用すべき閾値として決定する。
【００７４】
具体的には、第１の量子化処理部５０１１は、入力画像データ内の注目画素の行番号及び列番号を、閾値番号テーブル６００の行及び列のサイズに相当する５でそれぞれ割った剰余に応じて、閾値番号テーブル６００における行及び列を選択する。例えば、第５行の画素については、第０行の画素と同一の閾値を使用し、第６行の画素については、第１行の画素と同一の閾値を使用する。列についても同様に、例えば、第５列の画素については、第０列の画素と同一の閾値を使用し、第６列の画素については、第１列の画素と同一の閾値を使用する。このように、第１の量子化処理部５０１１は、入力画像データに対して、図６に示す閾値番号テーブル６００（によって特定される閾値Ｔｈ１，Ｔｈ２）が、５行ごと、５列ごとに繰り返し適用されることになる。
【００７５】
第１の量子化処理部５０１１は、入力画像データ内の注目画素について、その画素値を２個の閾値Ｔｈ１，Ｔｈ２とそれぞれ比較して、量子化後の画素値（ハーフトーン画素値）を決定し、量子化誤差処理部３０８に出力する。具体的には、第１の量子化処理部５０１１は、注目画素の画素値が、閾値Ｔｈ１未満である場合には「０」を、閾値Ｔｈ１以上で、かつ、閾値Ｔｈ２未満である場合には「１」を、閾値Ｔｈ２以上である場合には「２」を、ハーフトーン画素値として決定して出力する。
【００７６】
図６に示すように、閾値番号テーブル６００は、閾値番号０〜４が規定された、５個の画素に対応する５個の要素から成るブロック６０１を最小単位として、同一のブロックが繰り返し敷き詰められた形式となっている。閾値番号テーブル６００に含まれるブロック６０１内で、１要素（画素）ずつ階調を変化させて、面積率を変化させることによって、ハーフトーン処理後の画像データにおいてより多くの階調表現が可能になる。本実施形態では、プリンタ１０は、１画素当たり３階調を表現可能であるため、閾値番号テーブル６００を用いたハーフトーン処理によって、５×２＋１＝１１階調を表現することができる。つまり、ブロック６０１のサイズが大きいほど、ハーフトーン処理による量子化幅（量子化のステップサイズ）が小さくなるため、より多くの階調数を表現することができる。ただし、ハーフトーン処理の対象となる入力画像が、ブロック６０１のサイズよりも大きな周期で変化する画像である場合には、ハーフトーン処理の結果、その入力画像の解像度を維持することはできないことに留意されたい。
【００７７】
次に、図７を参照して、第１の量子化処理部５０１１の動作の一例について説明する。図７は、第１の量子化処理部５０１１に入力される画像データの一例を示しており、当該画像データには平坦部とエッジ部とが含まれている。図７において（ａ）は、入力画像データに含まれる各画素の画素値を示しており、（ｂ）は、画素記号７１〜７６を用いて、（ａ）の入力画像データを視覚的に示している。
【００７８】
例えば、第１行、第２列の画素Ｐ１は、画素値が「８３」であり、その行番号及び列番号を５で割った剰余は、それぞれ「１」及び「２」である。このため、第１の量子化処理部５０１１は、閾値番号テーブル６００を参照して、当該画素について使用する閾値番号として「０」を得る。さらに、第１の量子化処理部５０１１は、閾値テーブル６１０を参照して、閾値番号「０」に対応する閾値Ｔｈ１＝１３、Ｔｈ２＝３８を得るとともに、得られた閾値と画素値「８３」とを比較して、ハーフトーン画素値として「２」を得る。
【００７９】
また、例えば、第０行、第７列の画素Ｐ２は、画素Ｐ１と同様、画素値が「８３」である。しかし、その行番号及び列番号を５で割った剰余は、それぞれ「０」及び「２」であるため、閾値番号として閾値番号テーブル６００から「４」が得られる。従って、第１の量子化処理部５０１１は、閾値テーブル６１０を参照して、閾値番号「４」に対応する閾値Ｔｈ１＝２１７、Ｔｈ２＝２４７を得るとともに、得られた閾値と画素値「８３」とを比較して、ハーフトーン画素値として「０」を得る。
【００８０】
以上のように、第１の量子化処理部５０１１が、入力画像データに含まれるすべての画素について、上述のようなディザ処理によるハーフトーン処理を行った結果、図７に示す入力画像データから、図８に示す第１のハーフトーン画像データが得られる。ここで、図８において（ａ）は、当該画像データに含まれる各画素の画素値を示しており、（ｂ）は、画素記号８１〜８３を用いて、（ａ）の画像データを視覚的に示している。このように、第１の量子化処理部５０１１によるハーフトーン処理によって、図７に示した２５６階調の入力画像データは、図８に示すように１画素当たり３階調（０，１，２）で表現された第１のハーフトーン画像データに変換される。
【００８１】
なお、本実施形態では、ブロック６０１に含まれる閾値番号に対応する閾値Ｔｈ１，Ｔｈ２を用いて、ブロック６０１によって規定される繰り返し周期でディザ処理を行う場合について説明しているが、これと異なる繰り返し周期でディザ処理を行ってもよい。また、ディザ処理による画像データの変換後の階調数は３に限らず、異なる階調数であってもよい。
【００８２】
＜量子化誤差演算部５０２による処理＞
次に、図７〜図１１を参照して、量子化誤差処理部３０８の量子化誤差演算部５０２による処理内容について説明する。第１の量子化処理部５０１１によるハーフトーン処理によって得られた第１のハーフトーン画像データ（図８）は、量子化誤差処理部３０８に入力される。量子化誤差処理部３０８において、入力された第１のハーフトーン画像データは、量子化誤差演算部５０２内の第１のフィルタ処理部５０２１と、量子化誤差補正部５０３内の出力演算部５０３２とに与えられる。また、量子化誤差処理部３０８には、第１のハーフトーン画像データに加えて、ガンマ補正部３０６から入力画像データ（図７）が入力される。当該入力画像データは、量子化誤差演算部５０２内の第２のフィルタ処理部５０２２に与えられる。
【００８３】
（第１のフィルタ処理部５０２１）
第１のフィルタ処理部５０２１は、入力された第１のハーフトーン画像データ（図８）内の各画素を注目画素として、図９（ａ）に示すように、注目画素を含むフィルタ領域（注目領域）９０内の画素の画素値の総和を計算する。フィルタ領域９０には、注目画素と当該注目画素の近傍の４個の画素との、５個の画素が含まれる。第１のフィルタ処理部５０２１は、第１のハーフトーン画像データの注目画素に対して規定されるフィルタ領域９０内の画素について、画素値の総和を算出することで、第１のハーフトーン画像データに対するフィルタ処理を行う。
【００８４】
本実施形態では、第１のフィルタ処理部５０２１において使用するフィルタ領域９０が、第１の量子化処理部５０１１において使用するハーフトーンテーブルのブロック６０１と対応するようにする。具体的には、行方向及び列方向のそれぞれについて、第１の量子化処理部５０１１で各画素に対して用いた閾値の繰り返し周期（ブロック６０１のサイズ）と、フィルタ領域９０のサイズとが等しくなるように、フィルタ領域９０のサイズ及び形状を設定する。これにより、行方向及び列方向におけるそれぞれについて、第１のフィルタ処理部５０２１のフィルタ次数が、ハーフトーン処理に用いた閾値の繰り返し周期の整数倍に設定される。第１のフィルタ処理部５０２１は、ハーフトーン周期の画素のオンオフを除去するフィルタとして機能する。なお、ハーフトーン処理後に、ハーフトーン周期のオンオフが出てこない又はオンオフのみの出力で表現されないハーフトーン処理であれば、第１のフィルタ処理部５０２１を省略することが可能となる。
【００８５】
ただし、例えば、図８における第０行、第０列の画素Ｐ４を注目画素とした場合、図９（ａ）に示すフィルタ領域９０内に処理対象のハーフトーン画像データの画素が含まれないことがある。このような場合には、第１のフィルタ処理部５０２１は、図９（ｂ）に示すように、ハーフトーン画像データの外部に仮想的な画素を追加する。また、第１のフィルタ処理部５０２１は、ハーフトーン画像データの端部の列及び行を中心とした折り返し処理によって、当該追加した画素に画素値を与える。
【００８６】
図９（ｂ）では、図８の左上部分のハーフトーン画像データ（実線部分）に対して、折り返し画像データ（破線部分）を追加した例を示している。例えば、ハーフトーン画像データの外部の仮想的な画素９１ｂには、ハーフトーン画像データの端部に位置する画素９１に対して対称となる位置の画素９１ａの画素値を使用する。同様に、ハーフトーン画像データの外部の仮想的な画素９２ｂには、ハーフトーン画像データの端部に位置する画素Ｐ１に対して対称となる位置の画素９２ａの画素値を使用する。このようにして、第１のフィルタ処理部５０２１は、例えば、ハーフトーン画像データ（図８）において第０行、第０列の画素Ｐ１を注目画素とした場合には、図９（ｂ）に示すフィルタ領域９０に含まれる画素の画素値についての総和を計算する。
【００８７】
第１のフィルタ処理部５０２１は、ハーフトーン画像データ（図８）内のすべて画素をそれぞれ注目画素として、フィルタ領域９０に含まれる画素の画素値の総和を計算する。即ち、第１のフィルタ処理部５０２１は、第１の量子化処理部５０１１によって生成された第１のハーフトーン画像データに対して、フィルタ領域９０に対応するフィルタ係数によるフィルタ処理を実行する。これにより、第１のフィルタ処理部５０２１に入力されたハーフトーン画像データ（図８）が平滑化されて、図１０（ａ）に示す画像データ（第１のフィルタ処理画像データ）が得られる。第１のフィルタ処理部５０２１は、得られた第１のフィルタ処理画像データを差分演算部５０２３に出力する。
【００８８】
（第２のフィルタ処理部５０２２）
第２のフィルタ処理部５０２２は、ガンマ補正部３０６から入力された画像データ（図７）内のすべての画素をそれぞれ注目画素として、図９（ａ）に示すフィルタ領域９０に含まれる画素の画素値の総和を計算する。第２のフィルタ処理部５０２２は、処理対象の画像データが、第１の量子化処理部５０１１によって生成されたハーフトーン画像データではなく、ガンマ補正部３０６からの入力画像データである点を除いて、第１のフィルタ処理部５０２１と同様の処理を行う。即ち、第２のフィルタ処理部５０２２は、第１の量子化処理部５０１１によるハーフトーン処理が行われる前の入力画像データに対して、フィルタ領域９０に対応するフィルタ係数によるフィルタ処理を実行する。これにより、入力画像データ（図７）が平滑化されて、図１０（ｂ）に示す画像データ（第２のフィルタ処理画像データ）が得られる。第２のフィルタ処理部５０２２は、得られた第２のフィルタ処理画像データを差分演算部５０２３に出力する。この第２のフィルタ処理部５０２２は、ハーフトーンによって発生した周期の画像のオンオフであって、ブロック６０１よりも高周波の画像のオンオフを高精度に抽出できるように、その抽出したい高周波成分を元画像データから除去するフィルタとして機能する。なお、元の画像データ中に高周波成分が含まれていなければ、第２のフィルタ処理部５０２２を省略することができる。
【００８９】
（差分演算部５０２３）
差分演算部５０２３は、第１及び第２のフィルタ処理部５０２１、５０２２のそれぞれから入力された第１及び第２のフィルタ処理画像データの差分を評価して、その評価結果を差分データ（量子化誤差データ）として第２の量子化処理部５０３１に出力する。当該量子化誤差データには、ハーフトーン画像データ（図８）に各画素について、ハーフトーン処理部３０７によるハーフトーン処理によって生じたハーフトーン量子化誤差を示す誤差値が含まれる。
【００９０】
ここで、第１のフィルタ処理画像データの元となる第１のハーフトーン画像データの階調数は３（最小値０、最大値２）である一方で、第２のフィルタ処理画像データの元となる入力画像データの階調数は２５６（最小値０、最大値２５５）である。即ち、差分演算部５０２３における演算対象の２個の画像データは、階調数と画素値の最大値とがそれぞれ異なっている。このため、差分演算部５０２３は、第１及び第２のフィルタ処理画像データを単純に比較することはできない。そこで、差分演算部５０２３は、第１及び第２のフィルタ処理画像データにおける１画素当たりの最大値が同一となるように、それぞれの画像データに含まれる各画素の画素値を、以下のように正規化する。
【００９１】
例えば、差分演算部５０２３は、第１及び第２のフィルタ処理画像データに含まれる画素値の最大値を２５５に正規化した上で、それらの画像データ間の画素ごとの画素値の差分値を計算する。なお、本実施形態では、一例として当該最大値２５５としているが、この値は任意に定めることが可能である。即ち、差分演算部５０２３では、入力画像データと第１のハーフトーン画像データ（第１及び第２のフィルタ処理画像データ）との階調数を合わせたうえで、それらの画像データの画素値の差分を評価すればよい。
【００９２】
まず、第１のフィルタ処理画像データに含まれる各画素値の最大値は、第１のフィルタ処理部５０２１による５画素分の加算に起因して１０（＝２×５）となっているため、各画素値を１／２倍し、かつ２５５倍、即ち、２５．５倍（＝２５５÷２÷５）する。一方、第２のフィルタ処理画像データに含まれる各画素値の最大値は、第２のフィルタ処理部５０２２による５画素分の加算に起因して１２７５（＝２５５×５）となっているため、各画素値を１／５倍する。その結果、第１及び第２のフィルタ処理画像データに含まれる画素値の最大値は、いずれも２５５に正規化される。
【００９３】
その後、差分演算部５０２３は、第２のフィルタ処理画像データに含まれる各画素の画素値から、第１のフィルタ処理画像データに含まれる、対応する画素の画素値を減算することで、２個の画像データの差分値を計算する。この差分値は、ハーフトーン量子化誤差に相当し、第１及び第２のフィルタ処理画像データにおける正規化後の画素値が０〜２５５の整数値であるため、−２５５〜２５５の整数値をとりうる。差分演算部５０２３による処理の結果、図１１（ａ）に示すような量子化誤差データが得られる。この量子化誤差データは、ハーフトーン処理部３０７（第１の量子化処理部５０１１）において実行されたハーフトーン処理（量子化）に起因した誤差を示すデータに相当する。なお、図１１（ｂ）は、画素記号１２１〜１２５を用いて、図１１（ａ）に示す量子化誤差データを視覚的に示している。
【００９４】
図１１に示す量子化誤差データにおいて、任意の画素の値（ハーフトーン量子化誤差）がプラスの値である場合、当該画素において、第２のフィルタ処理画像データの画素値が第１のフィルタ処理画像データの画素値よりも大きいことを表している。このことは、当該画素の濃度が、ハーフトーン処理に起因して、入力画像の濃度よりも薄くなっていることを意味している。一方で、図１１に示す量子化誤差データにおいて、任意の画素の値（ハーフトーン量子化誤差）がマイナスの値である場合、当該画素において、第１のフィルタ処理画像データの画素値が第２のフィルタ処理画像データの画素値よりも大きいことを表している。このことは、当該画素の濃度が、ハーフトーン処理に起因して、入力画像の濃度よりも濃くなっていることを意味している。
【００９５】
また、量子化誤差データ（図１１）内の各画素の絶対値は、その周辺の画素を考慮した、入力画像と当該入力画像に対するハーフトーン処理後の画像との濃度差を示している。本実施形態では、各画素について、量子化誤差データの値に応じて、量子化誤差補正部５０３において、ハーフトーン処理後の画像（第１のハーフトーン画像データ）の濃度を補正して、第２のハーフトーン画像データを生成する。即ち、各画素について、量子化誤差データの値がプラスの値である場合には、第１のハーフトーン画像データに対して加算処理を行うことで、濃度を高くする補正を行えばよい。一方で、各画素について、量子化誤差データの値がマイナスの値である場合には、第１のハーフトーン画像データに対して減算処理を行うことで、濃度を低くする補正を行えばよい。
【００９６】
なお、差分演算部５０２３は、第２フィルタ処理画像データの画素値から第１フィルタ処理画像データの画素値を減算するのではなく、逆に、第１フィルタ処理画像データの画素値から第２フィルタ処理画像データの画素値を減算してもよい。何れの場合にも、本実施形態の効果を得ることは可能である。
【００９７】
図１１（ａ）に示す量子化誤差データにおいて、入力画像（図７）において濃度の変化がない平坦部の画素では、画素値（ハーフトーン量子化誤差）の絶対値が小さく、かつ、一定の値が隣接した画素間で連続していることがわかる。その一方で、濃度が高い周期で変化するエッジ部付近の画素では、そのエッジ部分に沿って、絶対値で３０を超える比較的大きな負の値と正の値とが交互に出現している。このように、第１のハーフトーン画像データでは、入力画像データと比較して、濃度が大幅に濃くなっている部分と大幅に薄くなっている部分とが、エッジ部分に沿って、概ね周期的に表れることがわかる。このような画像データに基づく画像を表示又は印刷すると、エッジ部分に沿った濃度の変動が、ジャギー又は細線の途切れとして表れる可能性がある。
【００９８】
例えば、図１１に示すように、画素Ｐ３については、画素値（ハーフトーン量子化誤差）が４１であり、２７以上のプラスの値（画素記号１２１）となっている。このことは、当該画素において、第１のフィルタ処理画像データの画素値よりも、第２のフィルタ処理画像データの値の方が大きいことを示しており、第１のハーフトーン画像よりも入力画像の方が濃度が高いことを示している。実際に、入力画像データ（図７）における画素Ｐ３の濃度と比較すると、ハーフトーン処理部３０７によるハーフトーン処理後の第１のハーフトーン画像データ（図８）では、画素Ｐ３において白抜けが発生していることがわかる。
【００９９】
ここで、本実施形態に係るプリンタ１０では、入力画像データの階調数は２５６であるのに対して、ハーフトーン処理部３０７によるハーフトーン処理後の出力画像データ（第１のハーフトーン画像データ）の階調数は１１となる。従って、入力画像が、異なる画素間で濃度が均一である平坦画像である場合、ハーフトーン処理による量子化に起因して出力画像に生じる誤差の最大値（絶対値）は、１２．７５（＝２５５÷１０÷２）と計算することができる。即ち、どのような入力画像においても、ハーフトーン処理に伴う量子化誤差は、最大±１２．７５程度は発生する可能性がある。一方で、濃度が高い周期で変化しているエッジ部分が入力画像に存在する場合、当該エッジ部分においてハーフトーン処理に起因して生じる量子化誤差の最大値（絶対値）は、１２．７５を超える可能性がある。
【０１００】
そこで、本実施形態では、後述するように、量子化誤差補正部５０３は、ハーフトーン処理によるハーフトーン量子化誤差の絶対値が所定値以下（本実施形態では１３以下）である画素については、平坦部とみなす。さらに、量子化誤差補正部５０３は、かかる画素については、差分演算部５０２３によって得られたハーフトーン量子化誤差を０に置き換える。これにより、ハーフトーン処理によるハーフトーン量子化誤差を補正する際に、画像の低周波領域（平坦部）と高周波領域（エッジ部又は細線部）とを効率的に分離して、ハーフトーン量子化誤差を適切に補正することが可能になる。なお、上記の所定値は、一義的に定まるものではなく、入力画像の階調数、ハーフトーン処理によって表現可能な階調数等に基づいて、適宜変更可能である。
【０１０１】
以上のようにして、量子化誤差演算部５０２は、第１及び第２のフィルタ処理部５０２１、５０２２によって得られる第１及び第２のフィルタ処理データ間の差分値を、差分演算部５０２３によって画素ごとに算出する。これにより、量子化誤差演算部５０２は、ハーフトーン処理部３０７によるハーフトーン処理に起因したハーフトーン量子化誤差を求めることができ、求めたハーフトーン量子化誤差を量子化誤差補正部５０３に対して出力する。
【０１０２】
また、第１のハーフトーン画像データに対し、ハーフトーン処理で用いた閾値の周期（ブロック６０１の周期）に応じた平滑化を行い、ハーフトーン処理周期以外の周期の濃度を高精度に抽出することができる。また、入力画像データに対してハーフトーン処理で用いた閾値の周期（ブロック６０１の周期）に応じた平滑化を行い、ハーフトーン処理周期よりも高周波の成分を元画像データから抽出してしまうという誤抽出を防止することができる。そして、これら２つの濃度の差分を取ることにより、ハーフトーン処理に起因する濃度変動量を求め、該濃度変動量を量子化誤差とすることにより、網点線数や解像度によらず、簡易な方法で、精度良く量子化誤差を検出することができる。
【０１０３】
＜量子化誤差補正部５０３による処理＞
次に、図１２〜図１７を参照して、量子化誤差処理部３０８の量子化誤差補正部５０３による処理内容について説明する。なお、他の図面についても併せて適宜参照しながらその処理内容を説明する。量子化誤差補正部５０３には、ハーフトーン処理部３０７によって生成された入力画像データ（図７）と、量子化誤差演算部５０２（差分演算部５０２３）によって生成された量子化誤差データ（図１１）とが入力される。量子化誤差補正部５０３において、入力画像データは出力演算部５０３２に、量子化誤差データは第２の量子化処理部５０３１に、それぞれ与えられる。
【０１０４】
（第２の量子化処理部５０３１）
第２の量子化処理部５０３１は、差分演算部５０２３から入力された量子化誤差データに対して、画素ごとに誤差拡散処理によるハーフトーン処理（第２のハーフトーン処理）を行う。図１２は、第２の量子化処理部５０３１の構成を示すブロック図であり、入力される量子化誤差データに対して、誤差拡散処理によるハーフトーン処理（量子化処理）を行うための構成を示している。第２の量子化処理部５０３１は、入力された量子化誤差データ内の各画素を注目画素として、すべての画素について誤差拡散処理を行って、ハーフトーン補正データを生成し、生成したデータを出力演算部５０３２に対して出力する。以下では、図１２を参照しながら、第２の量子化処理部５０３１によって行われる誤差拡散処理について詳しく説明する。
【０１０５】
第２の量子化処理部５０３１は、誤差補正部１３１、量子化処理部１３２、及び誤差蓄積部１３３を有する。第２の量子化処理部５０３１に入力された量子化誤差データは、まず、誤差補正部１３１に与えられる。誤差補正部１３１には、量子化誤差データに含まれる各画素の画素値（ハーフトーン量子化誤差）が順に入力される。誤差補正部１３１は、ハーフトーン量子化誤差が入力されるごとに、当該入力値に対応する画素を注目画素として、誤差拡散処理を実行する。誤差補正部１３１は、後述するように、注目画素の周辺に位置する画素の量子化処理部１３２による量子化誤差値を、誤差蓄積部１３３が有する誤差バッファから読み出して、読み出した値に基づいて計算した補正値を当該注目画素の入力値に加算する。この処理の結果、第２の量子化処理部５０３１のハーフトーン処理（量子化処理）に伴う量子化誤差が低減されることになる。誤差補正部１３１から出力された値は、量子化処理部１３２及び誤差蓄積部１３３にそれぞれ入力される。
【０１０６】
量子化処理部１３２は、誤差補正部１３１からの入力値に量子化を行って得られた量子化値を、第２の量子化処理部５０３１の出力値として出力演算部５０３２に出力する。ここで、差分演算部５０２３から第２の量子化処理部５０３１に入力される量子化誤差データに含まれる各画素のハーフトーン量子化誤差は、上述したように、プラスの値だけでなくマイナスの値もとりうる。このため、第２の量子化処理部５０３１は、入力された量子化誤差データを、誤差補正部１３１による補正後に量子化処理部１３２によって量子化すると、量子化値としてプラスの値だけでなくマイナスの値も出力しうる。本実施形態では、量子化処理部１３２は、プラスの値及びマイナスの値を含む量子化値として、５値（−２，−１，０，１，２）のうちの何れかの値を出力するものとする。
【０１０７】
量子化処理部１３２は、量子化値の数（量子化数）よりも１少ない数の閾値を予め保持しておく。本実施形態では、量子化値が５値であるので、量子化処理部１３２は４個の予め定められた閾値（ＥＴｈ１，ＥＴｈ２，ＥＴｈ３，ＥＴｈ４）を保持しておく。なお、これらの閾値は、ＣＰＵ２２５（制御情報生成部３０４）から制御情報として提供されてもよい。例えば、ＥＴｈ１＝−１９２，ＥＴｈ２＝−６４，ＥＴｈ３＝６４，ＥＴｈ４＝１９２とする。量子化処理部１３２は、入力値と、予め保持している閾値ＥＴｈ１〜ＥＴｈ４とを比較することによって、当該入力値を量子化した量子化値を決定する。
【０１０８】
ここで、図１３のフローチャートを参照して、量子化処理部１３２における量子化処理の手順について説明する。なお、量子化処理部１３２は、ラスタ順に注目画素をシフトさせながら、誤差補正部１３１からの出力値が入力されるごとに図１３のフローチャートに示す処理を注目画素について実行する。
【０１０９】
まず、量子化処理部１３２は、注目画素についての入力値とＥＴｈ１とを比較する（Ｓ１３０１）。当該比較の結果、量子化処理部１３２は、入力値がＥＴｈ１よりも低い場合、注目画素についての量子化値として「−２」を出力する一方で（Ｓ１３０２）、ＥＴｈ１以上である場合、次に当該入力値とＥＴｈ２とを比較する（Ｓ１３０３）。当該比較の結果、量子化処理部１３２は、入力値がＥＴｈ２よりも低い場合、注目画素についての量子化値として「−１」を出力する一方で（Ｓ１３０４）、ＥＴｈ２以上である場合、次に当該入力値とＥＴｈ３とを比較する（Ｓ１３０５）。当該比較の結果、量子化処理部１３２は、入力値がＥＴｈ３よりも低い場合、注目画素についての量子化値として「０」を出力する一方で（Ｓ１３０６）、ＥＴｈ３以上である場合、次に当該入力値とＥＴｈ４とを比較する（Ｓ１３０７）。当該比較の結果、量子化処理部１３２は、入力値がＥＴｈ４よりも低い場合、注目画素についての量子化値として「１」を出力する一方で（Ｓ１３０８）、ＥＴｈ４以上である場合、注目画素についての量子化値として「２」を出力する（Ｓ１３０９）。このように量子化処理を実行することによって、量子化処理部１３２は、プラス値だけでなくマイナス値も含む量子化値を出力する。
【０１１０】
誤差蓄積部１３３は、ラスタ順に注目画素をシフトさせながら、注目画素について、量子化処理部１３２による量子化処理に伴って生じる量子化誤差を計算して、得られた量子化誤差値を、誤差補正部１３１による参照用の誤差バッファに蓄積させる。誤差蓄積部１３３には、量子化処理部１３２からの出力値と、量子化処理部１３２に対する入力値（誤差補正部１３１からの出力値）とが、画素ごとに入力される。誤差蓄積部１３３は、量子化処理部１３２の出力値を２５５／２倍して正規化することで、当該出力値の最大値（絶対値）を、誤差補正部１３１による補正前の最大値（絶対値）２５５に合わせる。なお、量子化処理部１３２の出力値を２５５／２倍するのは、当該出力値が上述のように−２〜２の整数値であり、最大値（絶対値）が２であるためである。誤差蓄積部１３３は、さらに、量子化処理部１３２の正規化後の出力値と、量子化処理部１３２に対する入力値との差分を計算し、得られた差分値を、注目画素についての量子化誤差値として誤差バッファに蓄積させる。
【０１１１】
誤差補正部１３１は、ラスタ順に注目画素をシフトさせながら、量子化誤差データ（図１１）に含まれる、注目画素についてのハーフトーン量子化誤差が、差分演算部５０２３から入力されるごとに、入力されたハーフトーン量子化誤差を補正して出力する。具体的には、まず、誤差補正部１３１は、誤差蓄積部１３３の誤差バッファから、注目画素の周辺に位置する複数の画素の量子化誤差値を読み出して、読み出した値に所定の分配係数を乗算して得られた値の総和を計算する。これによって、第２の量子化処理部５０３１における誤差拡散処理が実現される。
【０１１２】
ここで、図１４は、本実施形態において注目画素１４００についての誤差拡散処理に用いられる周辺画素１４０１〜１４０４の位置関係と、それらの周辺画素の量子化誤差値に適用される分配係数の一例を示している。誤差補正部１３１は、注目画素１４００に対して、図１４に示す位置関係にある画素１４０１〜１４０４に対応する量子化誤差値を、誤差蓄積部１３３の誤差バッファからそれぞれ読み出して、読み出したそれぞれの値に、図１４に示す分配係数を乗算する。具体的には、誤差補正部１３１は、画素１４０１〜１４０４に対応する量子化誤差値に対して、分配係数として、それぞれ１／１６、５／１６、３／１６、７／１６を乗算する。さらに、誤差補正部１３１は、画素１４０１〜１４０４についてそれぞれ得られた乗算値の総和を計算し、得られた値を、量子化処理部１３２における量子化処理に伴って生じる量子化誤差の補正値として使用する。
【０１１３】
具体的には、誤差補正部１３１は、第２の量子化処理部５０３１に入力された量子化誤差データに含まれる、注目画素のハーフトーン量子化誤差に対して、計算された補正値を加算する。これにより、当該量子化誤差データを、量子化処理部１３２において量子化する際に生じる量子化誤差が、誤差拡散により予め補正される。誤差補正部１３１は、注目画素についての補正後のハーフトーン量子化誤差を、量子化処理部１３２に対して出力する。なお、当該出力値は、上述のように誤差蓄積部１３３に対しても与えられる。その結果、補正後のハーフトーン量子化誤差を、出力演算部５０３２における第１のハーフトーン画像データの補正に使用することで、ハーフトーン処理によって生じた量子化誤差を十分に低減することが可能になる。
【０１１４】
このように、第２の量子化処理部５０３１は、量子化誤差データに対して誤差拡散処理によるハーフトーン処理を施すことで、第１のハーフトーン画像データの補正用データとして、ハーフトーン補正データを生成する。第２の量子化処理部５０３１は、生成したハーフトーン補正データを、出力演算部５０３２に提供する。
【０１１５】
図１５（ａ）は、図１１（ａ）に示すハーフトーン量子化誤差の絶対値が１３以下である画素については、当該誤差を０に置き換えて、第２の量子化処理部５０３１で誤差拡散処理による量子化したデータを示している。また、図１５（ｂ）は、画素記号１６１〜１６５を用いて、図１５（ａ）に示す各画素値を視覚的に示している。図１５に示すように、例えば画素Ｐ３については、第２の量子化処理部によって、プリンタ１０にとって適切な濃度の補正値に量子化することができる。
【０１１６】
（出力演算部５０３２）
出力演算部５０３２は、第２の量子化処理部５０３１によって生成されたハーフトーン補正データ（図１５）を用いて、第１の量子化処理部５０１１において生成された第１のハーフトーン画像データ（図８）を補正する。具体的には、出力演算部５０３２は、第１のハーフトーン画像データに対して、ハーフトーン補正データを画素ごとに加算することで第１のハーフトーン画像データを補正して、補正後の画像データを第２のハーフトーン画像データとして出力する。ハーフトーン補正データの画素値がプラスの値である場合には、当該補正によって、第１のハーフトーン画像データにおける対応する画素の画素値は増加して、当該画素の濃度が高くなる。一方、ハーフトーン補正データの画素値がマイナスの値である場合には、当該補正によって、第１のハーフトーン画像データにおける対応する画素の画素値は減少して、当該画素の濃度が低くなる。
【０１１７】
なお、第１の量子化処理部５０１１から入力される第１のハーフトーン画像データと、第２の量子化処理部５０３１から入力されるハーフトーン補正データとで、各画素値の最大値が異なる場合には、各データに対して、最大値を同一にする正規化処理を行う。本実施形態では、第１のハーフトーン画像データとハーフトーン補正データとで、各画素値の最大値は一致しているため（何れも絶対値で２）、正規化処理は行う必要はない。
【０１１８】
＜量子化誤差補正部５０３による処理結果＞
図１６は、第１のハーフトーン画像データ（図８）とハーフトーン補正データ（図１５）とを画素ごとに加算処理して得られた、第２のハーフトーン画像データを示している。図１６において（ａ）は、第２のハーフトーン画像データに含まれる各画素の画素値を示しており、（ｂ）は、画素記号１７１〜１７３を用いて、（ａ）の画像データを視覚的に示している。
【０１１９】
ここで、本実施形態の有効性を検討するために、第２の量子化処理部５０３１による処理を行わず、量子化誤差演算部５０２からの量子化誤差データを出力演算部５０３２における補正にそのまま使用した場合の結果を、図１６に対する比較例として図１７に示す。本比較例では、量子化誤差演算部５０２から出力された量子化誤差データ（図１１）が、出力演算部５０３２に直接入力される。出力演算部５０３２は、入力された量子化誤差データを補正データとして用いて、第１のハーフトーン画像データを補正して、補正後のハーフトーン画像データを出力する。図１７において（ａ）は、第２の量子化処理部５０３１による処理を行わない場合の、補正後のハーフトーン画像データに含まれる各画素の画素値を示しており、（ｂ）は、画素記号１８１〜１８６を用いて、（ａ）の画像データを視覚的に示している。
【０１２０】
なお、本比較例では、第１のハーフトーン画像データは３階調（最小０，最大２）のデータであり、補正データとして用いる量子化誤差データは２５６階調（最小０，最大２５５）のデータである。即ち、第１のハーフトーン画像データと補正データとで、各画素値の最大値が一致していないため、当該最大値を揃えるための正規化処理を行う必要がある。そこで、本比較例では、出力演算部５０３２は、補正処理の前に、第１のハーフトーン画像データに含まれる各画素値を２５５／２倍することで、各画素値の最大値を２５５に正規化して、当該最大値を補正データに含まれる画素値の最大値と同一にする。
【０１２１】
まず、図１７（比較例）に示す補正後のハーフトーン画像の画素のうち、第１のハーフトーン画像（図８）において入力画像（図７）よりも濃度が薄くなっている画素（例えば画素Ｐ３）では、ハーフトーン量子化誤差に相当する値が加算されている。一方で、第１のハーフトーン画像（図８）において入力画像（図７）よりも濃度が濃くなっている画素（例えばＰ６）では、ハーフトーン量子化誤差に相当する値が減算されている。なお、第１のハーフトーン画像データ（図８）の画素値が０であり、かつ、ハーフトーン量子化誤差がマイナスの値である画素（例えば画素Ｐ５）では、図１７（ａ）ではマイナスの値（画素Ｐ５では「−７８」）となっている。このように、補正データを用いた補正後の画素値がマイナスの値になった場合には、図１７（ｂ）に示すように、当該画素の画素値を０に置き換えている。
【０１２２】
図１７に示す補正後のハーフトーン画像データに基づいて、プリンタ１０においてトナー像を形成する場合、出力演算部５０３２において用いる量子化誤差データ（補正データ）に含まれる値に依存して、トナー像が形成されない現象が起こりうる。図４を参照して説明したように、感光ドラム２２Ｋの表面を露光してトナー像を形成するためには、感光ドラム２２Ｋの表面に、十分な時間、レーザ光を連続的に照射する必要がある。ここで、図１１に示す量子化誤差データ（補正データ）において、画素Ｐ３の画素値（補正値）は「４１」である。この補正値を１ドットのレーザ発光幅に換算すると、当該補正値の最大値２５５で規格化して、０．１６ドット（＝４１／２５５）となる。また、画素Ｐ３の周辺に位置する画素のうち、プラスの補正値を有する画素については、その補正値は「１７〜５０」である。この補正値を１ドットのレーザ発光幅に換算すると、０．０７〜０．２ドットとなる。
【０１２３】
しかし、図４を参照して説明したように、０．２５ドット以下となる露光時間Ｔ、感光ドラム２２Ｋの表面にレーザ光を連続的に照射したとしても、その表面電位の絶対値が現像バイアスの絶対値を下回るまで変化することはなく、トナー像は形成されない。このため、０．２５ドット以下のレーザ発光幅に対応する補正値で第１のハーフトーン画像データを補正したとしても、当該補正値を適用した画素について、補正値が画像として再現されず（トナー像として表れず）、補正効果が得られないことになる。即ち、量子化誤差演算部５０２で生成された量子化誤差データを、そのまま第１のハーフトーン画像データに対する補正データとして用いた場合、当該補正データから、補正すべき画素は検出可能である一方で、十分な補正効果が得られないおそれがある。
【０１２４】
本比較例の図１７（ｂ）に示す補正後のハーフトーン画像では、画素記号１８５、１８６で示す画素については、０．２５ドット以下のレーザ発光幅に対応するため、プリンタ１０の画像形成においてトナー像は形成されない。このため、図１７に示す補正後のハーフトーン画像データに基づいて画像形成を行ったとしても、第１のハーフトーン画像（図８）に含まれるエッジ部分に沿って生じているジャギーが低減されず、画質を向上させることが難しい。
【０１２５】
一方で、本実施形態の図１６を参照すると、第２のハーフトーン画像の画素のうち、例えば画素Ｐ３（画素値＝１）では、第１のハーフトーン画像データ（図８）の画素値（＝０）から増加している。これは、ハーフトーン補正データ（図１５）における対応する画素の画素値（＝１）がプラスの値であるためである。即ち、当該画素Ｐ３では、出力演算部５０３２における補正によって濃度が濃くなっている。一方で、例えば画素Ｐ６（画素値＝０）では、第１のハーフトーン画像データ（図８）の画素値（＝１）から減少している。これは、ハーフトーン補正データ（図１５）においける対応する画素の画素値（＝−１）がマイナスの値であるためである。即ち、画素Ｐ６では、出力演算部５０３２における補正によって濃度が薄くなっている。
【０１２６】
このように、図８と図１６とを比較すると、第１のハーフトーン画像（図８）において、エッジ部分に沿って生じているジャギーが、第２のハーフトーン画像（図１６）では低減されていることが確認できる。
【０１２７】
以上説明したように、本実施形態では、入力画像データの局所平均と第１のハーフトーン画像データの局所平均との差分を算出することで、ハーフトーン処理による量子化誤差を示す量子化誤差データを生成する。これにより、ハーフトーン処理による量子化誤差に起因して画像の品質劣化が生じうる画素を高精度に検出することができる。さらに、生成した量子化誤差データに対して誤差拡散処理によってハーフトーン処理（量子化処理）を施して、ハーフトーン補正データを生成する。このようにして生成したハーフトーン補正データを使用することで、画像形成装置における画像形成に対してより適した補正値に変換される。その結果、第１のハーフトーン画像に生じているハーフトーン処理による量子化誤差をより適切に補正できるとともに、画像形成装置における出力画像の品質劣化を防ぐことが可能になる。
【０１２８】
［第２の実施形態］
次に、本発明の第２の実施形態について説明する。なお、以下では、第１の実施形態と異なる部分を中心として説明することによって説明を簡略化する。第１の実施形態では、量子化誤差データに対して第２の量子化処理部５０３１で誤差拡散処理によってハーフトーン処理することで、ハーフトーン補正データを生成している。しかし、量子化誤差データには、プラスの誤差値（プラスデータ）とマイナスの誤差値（マイナスデータ）とが含まれるため、誤差値の符号が異なる隣接した画素間で、誤差拡散処理によって誤差値が打ち消し合ってしまう可能性がある。即ち、誤差拡散処理において、量子化に十分な誤差が蓄積されない可能性がある。
【０１２９】
従って、このような誤差拡散処理に伴う誤差値の打ち消しを低減することができれば、第１のハーフトーン画像データに生じた量子化誤差を、より適切に補正可能なハーフトーン補正データを生成できると考えられる。そこで、本実施形態に係る量子化誤差処理部３０８は、入力される量子化誤差データのプラスデータとマイナスデータとを分離して、分離されたデータに対してそれぞれ誤差拡散処理によるハーフトーン処理を行うことを特徴とする。さらに、ハーフトーン処理が施されたデータを加算処理してハーフトーン補正データを生成することで、第１のハーフトーン画像データに対する補正効果をさらに向上させる。
【０１３０】
まず、図１８を参照して、本実施形態に係るハーフトーン処理部３０７及び量子化誤差処理部３０８の構成例について説明するとともに、それらによって実行される処理の概略を説明する。なお、ハーフトーン処理部３０７及び量子化誤差演算部５０２は、第１の実施形態（図５）と同様であるため、以下では説明を省略する。
【０１３１】
第１の実施形態（図５）と比較すると、本実施形態の量子化誤差補正部５０３は、第２の量子化処理部５０３１に代えて、分離処理部１９０１、第２の量子化処理部１９０２、第３の量子化処理部１９０３、及び加算処理部１９０４を備えている。分離処理部１９０１は、量子化誤差演算部５０２から入力される量子化誤差データに含まれる、プラスの符号を有するプラスデータとマイナスの符号を有するマイナスデータとを分離する。また、分離処理部１９０１は、分離後のプラスデータ及びマイナスデータをそれぞれ第２及び第３の量子化処理部１９０２、１９０３に出力する。これにより、本実施形態では、量子化誤差データに含まれるプラスデータ及びマイナスデータに対して別々に量子化処理を施すことが可能になる。即ち、分離処理部１９０１は、量子化誤差データに含まれるプラスの画素値とマイナスの画素値とを分離して、当該プラスの画素値を含む第１の量子化誤差データと、当該マイナスの画素値を含む第２の量子化誤差データとを生成する分離手段として機能する。
【０１３２】
分離処理部１９０１は、量子化誤差演算部５０２から入力された量子化誤差データに含まれる各画素について、画素値の正負を判定する。分離処理部１９０１は、画素データがプラスデータであると判定した画素（画素値＞０）については、当該画素データを第２の量子化処理部１９０２へ、０値のデータを第３の量子化処理部１９０３へ、それぞれ出力する。一方で、分離処理部１９０１は、画素データがマイナスデータであると判定した画素（画素値＜０）については、０値のデータを第２の量子化処理部１９０２へ、当該画素データを第３の量子化処理部１９０３へ、それぞれ出力する。なお、分離処理部１９０１は、画素データが０値のデータであると判定した画素（画素値＝０）については、第２及び第３の量子化処理部１９０２、１９０３のそれぞれに０値のデータを出力する。
【０１３３】
図１９は、図１１に示す量子化誤差データに含まれるプラスデータ及びマイナスデータを分離処理部１９０１で分離して得られた画像データの一例を示している。図１９において、（ａ）及び（ｃ）はプラスデータを分離して得られた画像データ（第１の量子化誤差データ）であり、（ｂ）及び（ｄ）はマイナスデータを分離して得られた画像データ（第２の量子化誤差データ）である。なお、量子化誤差データに含まれる画素のうち、その画素値の絶対値が１３以下の画素については、当該画素値を０に置き換えて、分離処理部１９０１に入力している。また、図１９において（ｃ）及び（ｄ）は、画素記号２０１〜２０５を用いて、（ａ）及び（ｂ）に示す各画素の画素値を視覚的に示している。
【０１３４】
第２及び第３の量子化処理部１９０２、１９０３は、入力された画像データに対してそれぞれ誤差拡散処理を施して出力する。本実施形態では、第２の量子化処理部１９０２はプラス側の３個の量子化値（０，１，２）の誤差拡散処理、第３の量子化処理部１９０３はマイナス側の３個の量子化値（−２，−１，０）の誤差拡散処理を用いるものとする。このため、第２及び第３の量子化処理部１９０２、１９０３の構成は、第１の実施形態における第２の量子化処理部５０３１（図１２）と同様である。量子化誤差データは、上述したように、−２５５〜２５５の画素値を含む。このため、第２の量子化処理部１９０２には、プラス側の２５６階調（０〜２５５）の画像データが入力され、第３の量子化処理部１９０３には、マイナス側の２５６階調（−２５５〜０）の画像データが入力される。第２及び第３の量子化処理部１９０２、１９０３は、入力された画像データを、それぞれプラス側及びマイナス側の３階調の画像データに量子化して出力する。
【０１３５】
図２０は、図１９に示す画像データに対して第２及び第３の量子化処理部１９０２、１９０３によって量子化処理を行って得られた画像データである。図２０において（ａ）及び（ｂ）は、図１９（ａ）に示す画像データ及び図１９（ｂ）に示す画像データにそれぞれ第２及び第３の量子化処理部１９０２、１９０３によってそれぞれ誤差拡散処理を施して得られた画像データである。また、図２０において（ｃ）及び（ｄ）は、画素記号２０１〜２０５を用いて、（ａ）及び（ｂ）に示す各画素値を視覚的に示している。
【０１３６】
ここで、第１の実施形態において第２の量子化処理部５０３１によって得られたハーフトーン補正データ（図１５）と、本実施形態において第２及び第３の量子化処理部１９０２、１９０３によって得られた画像データ（図２０）とを比較する。まず、量子化誤差データ（図１１）においてプラス及びマイナスの値が混在していたエッジ部分付近の画素値の多くが、第１の実施形態のハーフトーン補正データ（図１５）では０に量子化されていることがわかる。これは、エッジ部付近のプラス及びマイナスの画素値（誤差値）が、第２の量子化処理部５０３１の誤差拡散処理に起因して、相互に打ち消し合うことがあるためである。
【０１３７】
一方で、本実施形態では、量子化誤差データをプラスデータ及びマイナスデータに分離してそれぞれ誤差拡散処理によって量子化した場合、図２０に示すように、０以外の値に量子化されている画素の数が、第１の実施形態（図１５）より多いことがわかる。これは、量子化誤差データをプラスデータとマイナスデータとに分離することによって、プラスの誤差値とマイナスの誤差値とが誤差拡散処理によって打ち消されることがなく、それぞれ独立して量子化が行われるためである。このため、本実施形態によれば、第２及び第３の量子化処理部１９０２、１９０３による誤差拡散処理によって、量子化誤差データに含まれる画素値（誤差値）が０以外の値に量子化されやすくなる。
【０１３８】
再び図１８を参照すると、加算処理部１９０４は、第２の量子化処理部１９０２の出力値と第３の量子化処理部１９０３の出力値とを、画素ごとに加算処理することで、ハーフトーン補正データを生成する。加算処理部１９０４は、生成したハーフトーン補正データを、出力演算部５０３２に入力する。出力演算部５０３２は、入力されたハーフトーン補正データを用いて、第１の量子化処理部５０１１において生成された第１のハーフトーン画像データ（図８）を補正する。具体的には、第１の実施形態と同様、出力演算部５０３２は、第１のハーフトーン画像データに対して、ハーフトーン補正データを画素ごとに加算することで第１のハーフトーン画像データを補正する。補正後の画像データは、第２のハーフトーン画像データとして出力される。
【０１３９】
図２１は、出力演算部５０３２において、第１のハーフトーン画像データ（図８）と、加算処理部１９０４から出力されたハーフトーン補正データとを、画素ごとに加算処理して得られた第２のハーフトーン画像データを示している。図２１において（ａ）は、本実施形態に係る第２のハーフトーン画像データに含まれる各画素の画素値を示しており、（ｂ）は、画素記号２２０１〜２２０３を用いて、（ａ）の画像データを視覚的に示している。
【０１４０】
ここで、第１の実施形態において得られた第２のハーフトーン画像データ（図１６）と、本実施形態において得られた第２のハーフトーン画像データ（図２１）とを比較して、本実施形態の有効性について検討する。
【０１４１】
上述したように、第１の実施形態では、第２及び第３の量子化処理部１９０２、１９０３による量子化処理において、量子化誤差データに含まれる誤差値が相互に打ち消されて量子化される画素が生じうる。このため、図１６に示す第２のハーフトーン画像データを参照すると、特に、画素Ｐ３周辺では、画素Ｐ３においてハーフトーン補正データ（図１５）に含まれる補正値が加算されているのみである。一方で、図２１に示す、本実施形態に係る第２のハーフトーン画像データを参照すると、画素Ｐ３周辺では、画素Ｐ７、Ｐ８及びＰ９において、加算処理部１９０４から出力されたハーフトーン補正データに含まれる補正値が加算又は減算されている。このように、本実施形態では、第１の実施形態と比較して、より高解像度の補正処理を実行することが可能である。
【０１４２】
以上説明したように、本実施形態では、入力画像データに対するハーフトーン処理に起因した量子化誤差を示すデータを、プラスデータとマイナスデータとに分離して、それぞれ独立に量子化処理を施すことによって、ハーフトーン補正データを生成する。これにより、第１の実施形態と比較して、ハーフトーン処理が行われた第１のハーフトーン画像データを、より高解像度に補正することが可能となる。特に、第１のハーフトーン画像データに対して、補正によって濃度を濃くすべき画素と、濃度を薄くすべき画素とに対して、別々に補正データを生成することで、ハーフトーン処理に起因した量子化誤差をより適切に補正可能である。
【０１４３】
なお、本実施形態では、第２及び第３の量子化処理部１９０２、１９０３が、それぞれ入力されたデータをプラス側及びマイナス側の階調値に量子化する誤差拡散処理を行っているが、その両方で共通の誤差拡散処理を行うことも可能である。この場合、分離処理部１９０１によって分離されたプラスデータ及びマイナスデータをそれぞれ別々のバッファに格納しておく。さらに、それらのデータを共通の誤差拡散処理回路で順に量子化処理する。ただし、マイナスデータについては、誤差拡散処理の前に、データの極性をマイナスからプラスに反転させ、誤差拡散処理の後に、再びデータの極性をプラスからマイナスに反転させればよい。このような処理を用いた場合にも、上述の効果と同等の処理を実現し、同等の効果を得ることが可能である。
【０１４４】
また、第２及び第３の量子化処理部１９０２、１９０３では、それぞれ異なるハーフトーン処理を行ってもよい。例えば、第２の量子化処理部１９０２では誤差拡散処理を行い、第３の量子化処理部１９０３では組織的ディザ法による処理を行ってもよい。なお、組織的ディザ法を用いる場合には、ディザ処理に必要な閾値に関する情報を、制御情報としてＣＰＵ２２５の制御情報生成部３０４から量子化誤差処理部３０８に与えればよい。
【０１４５】
［第３の実施形態］
第１及び第２の実施形態では、ハーフトーン処理（第１の量子化）に基づく量子化誤差データを、第１のハーフトーン画像データに対する補正データとしてそのまま使用するのではなく、第２の量子化を行って得られたデータを補正データとして使用する。これに対して、本実施形態では、量子化誤差データを用いて第１のハーフトーン画像データを補正した後に、補正後のデータに対して第２の量子化を行うことを特徴としている。
【０１４６】
まず、図２２を参照して、本実施形態に係るハーフトーン処理部３０７及び量子化誤差処理部３０８の構成例について説明するとともに、それらによって実行される処理の概略を説明する。本実施形態では、第１の実施形態（図５）と比較して、量子化誤差演算部５０２から出力される出力される量子化誤差データが、量子化誤差補正部５０３において、第２の量子化処理部２３０２に入力される前に、まず出力演算部２３０１に入力される。なお、ハーフトーン処理部３０７及び量子化誤差演算部５０２は、第１の実施形態（図５）と同様であるため、以下では説明を省略する。
【０１４７】
出力演算部２３０１は、量子化誤差演算部５０２から入力される量子化誤差データで、第１のハーフトーン画像データに含まれる、ハーフトーン処理に起因した量子化誤差を補正する。具体的には、出力演算部２３０１は、量子化誤差データを第１のハーフトーン画像データに画素ごとに加算することで、第１のハーフトーン画像データを補正する。ここで、第１のハーフトーン画像データは、３階調（最小０，最大２）のデータであり、量子化誤差データは、２５６階調（最小０，最大２５５）のデータである。
このため、出力演算部２３０１は、第１のハーフトーン画像データの各画素値を、その最大値が２５５となるように２５５／２倍することで、当該第１のハーフトーン画像データを正規化する。これにより、第１のハーフトーン画像データと量子化誤差データとの階調数をいずれも階調数を２５６に揃える。その後、出力演算部２３０１は、両データの加算処理を行う。
【０１４８】
出力演算部２３０１による補正処理（加算処理）によって、図１７に示す補正後のハーフトーン画像データが得られる。かかるハーフトーン画像データに基づいて、プリンタ１０においてトナー像を形成する場合、第１の実施形態において説明したように、補正値が画像として再現されず、十分な補正効果が得られない可能性がある。即ち、トナー像が十分に形成できない可能性がある。
【０１４９】
そこで、本実施形態では、出力演算部２３０１から出力される補正後のハーフトーン画像データを、第２の量子化処理部２３０２に入力して量子化処理を行う。本実施形態において、第２の量子化処理部２３０２による第２の量子化における量子化値の数（量子化数）は、第１の量子化処理部５０１１による第１の量子化における量子化数と同一に設定する。例えば、第１の量子化処理部５０１１が量子化数３、即ち３値（０，１，２）で量子化を行う場合、第２の量子化処理部２３０２も同様に、量子化数３、即ち３値（０，１，２）で量子化を行う。
【０１５０】
これにより、第１の量子化による量子化後の画像データの階調性を、量子化誤差補正部５０３による補正前及び補正後で保つことができるとともに、本来は補正の必要のない平坦画像についてはその粒状性を保つことができる。なお、本実施形態では、第２の量子化処理部２３０２は、誤差拡散処理による量子化処理を行うため、その構成は第１の実施形態における第２の量子化処理部５０３１（図１２）と同様である。
【０１５１】
図２３（ａ）は、出力演算部２３０１から出力される、図１７に示す補正後のハーフトーン画像データに対して、第２の量子化処理部２３０２によって量子化処理を行って得られた画像データである。また、図２３（ｂ）は、画素記号２４１〜２４３を用いて、（ａ）に示す各画素値を視覚的に示している。図２３において、例えば、画素Ｐ３の画素値は、第２の量子化処理部２３０２による量子化によって「０」から「１」に変化しており、ハーフトーン処理部３０７によるハーフトーン処理に起因した量子化誤差が補正されている。
【０１５２】
以上のように、本実施形態によれば、第１の実施形態と同様、ハーフトーン処理によって生じる量子化誤差を安定的に補正することができるとともに、ジャギー、細線の途切れ等の画像劣化を低減することができる。
【０１５３】
［第４の実施形態］
第２の実施形態では、ハーフトーン処理（第１の量子化）によって生じるハーフトーン量子化誤差に対する補正データに、第２及び第３の量子化処理部１９０２、１９０３において誤差拡散処理によって量子化（第２の量子化）を行う実施形態について説明した。本実施形態では、第２の実施形態に対する変形例として、第２及び第３の量子化処理部１９０２、１９０３における量子化に、組織的ディザ法を用いることを特徴とする。また、本実施形態では、入力画像データに対する第１の量子化を行う第１の量子化処理部５０１１について、より具体的な構成及び処理手順についても説明する。
【０１５４】
本実施形態は、第２の量子化に組織的ディザ法を用いる点と、入力画像データを第１の量子化によって３階調ではなく５階調のハーフトーン画像データに量子化する点を除き、第２の実施形態とほぼ同様である。また、本実施形態においても主としてＫ色に関する処理について説明するが、他のＣ色、Ｍ色及びＹ色に関する処理を実行する場合には、Ｋ色に関する処理と同様の処理によって実現可能である。以下、第２の実施形態において説明した図１８に示す構成に基づいて、ハーフトーン処理部３０７、量子化誤差演算部５０２、及び量子化誤差補正部５０３において実行される処理を順に説明する。
【０１５５】
＜ハーフトーン処理部３０７による処理＞
まず、図２４を参照して、ハーフトーン処理部３０７に含まれる第１の量子化処理部５０１１の構成例と、第１の量子化処理部５０１１によって実行される処理について説明する。本実施形態において、第１の量子化処理部５０１１は、ガンマ補正部３０６から入力される、各画素が０〜２５５の画素値からなるグレースケールの２５６階調の画像データを、０〜４の５階調の第１のハーフトーン画像データに変換（量子化）する。入力画像データについては、白色は画素値０、黒色は画素値２５５によって表現される。また、第１のハーフトーン画像データについては、白色は画素値０、黒色は画素値４によって表現される。なお、第２の実施形態と同様、量子化誤差処理部３０８が第１のハーフトーン画像データの量子化誤差を補正して出力する第２のハーフトーン画像データも、５階調の画像データとなる。
【０１５６】
本実施形態では、第１及び第２のハーフトーン画像データと、ＰＷＭ処理部３０９よって出力される露光制御信号Ｔkとは、同一の階調数（＝５）で表現されるものとする。つまり、ＰＷＭ処理部３０９は、第２のハーフトーン画像データに含まれる各画素について、０、１、２、３及び４の階調値に対応して、露光装置２４Ｋの１ドット当たりのレーザ発光幅を、それぞれ０％、２５％、５０％、７５％及び１００％にする露光制御信号Ｔkを生成する。
【０１５７】
なお、本実施形態では、２５６階調のグレースケールの画像データを、１画素当たり５階調で表現された第１のハーフトーン画像データに変換する例について説明しているが、これとは異なる階調数で表現されたハーフトーン画像データに変換してもよい。また、当然ながら、グレースケール（Ｋ色）の画像データだけでなく、Ｙ色、Ｍ色及びＣ色のそれぞれの画像データについて同様の処理を実行することによって、カラー画像データに対してもハーフトーン処理を実行可能である。
【０１５８】
図２４（ａ）は、第１の量子化処理部５０１１の構成例を示している。第１の量子化処理部５０１１は、閾値読み出し部３００１、ハーフトーンテーブルメモリ３００２、及び量子化部３００３を含む。また、図２４（ｂ）及び（ｃ）は、量子化処理部５０１１が量子化処理（ディザ処理）を行う際に使用するハーフトーンテーブルの一例を示している。ハーフトーンテーブルには、第１の実施形態（図６）と同様、入力画像データ内の各画素のディザ処理を実行する際に使用すべき閾値に関する情報が含まれており、閾値番号テーブル３０１０及び閾値テーブル３０２０から構成される。このハーフトーンテーブルは、ハーフトーンテーブルメモリ３００２に格納されて、閾値読み出し部３００１によって読み出されて、量子化部３００３における量子化処理に使用される。なお、ハーフトーンテーブルは、ＣＰＵ２２５から、量子化誤差処理部３０８に対する制御情報として提供される。
【０１５９】
図２４（ｂ）に示すように、ハーフトーンテーブルに含まれる閾値番号テーブル３０１０は、閾値番号０〜４が規定された、５個の画素に対応する５個の要素から成るブロック３０１１を最小単位として、同一のブロックが繰り返し敷き詰められた形式となっている。第２の実施形態と同様、閾値番号テーブル３０１０に含まれるブロック３０１１内で、１要素（画素）ずつ階調を変化させて、面積率を変化させることによって、ハーフトーン処理後の画像データにおいてより多くの階調表現が可能になる。
【０１６０】
図２４（ｄ）は、ハーフトーンテーブルメモリ３００２にハーフトーンテーブルが格納された状態の一例を示す。同図に示すように、ハーフトーンテーブルメモリ３００２において、閾値番号テーブル３０１０の０行目のデータが０番地から４番地、１行目のデータが５番地から９番地に格納され、以降の２〜４行目のデータも同様に格納される。また、閾値テーブル３０２０の０行目のデータが１００番地から１０３番地、１行目のデータが１０４番地から１０７番地に格納され、以降の２〜４行目のデータも同様に格納される。
【０１６１】
閾値読み出し部３００１は、ハーフトーンテーブルメモリ３００２から、閾値番号テーブル３０１０及び閾値テーブル３０２０を含む閾値データ３００４を読み出して、閾値データ３００４として量子化部３００３へ出力する。量子化部３００３は、入力された閾値データ３００４に基づいて入力画像データを量子化して、得られた画像データを第１のハーフトーン画像データとして出力する。量子化部３００３は、閾値番号テーブル３０１０のブロック３０１１を最小単位として、閾値テーブル３０２０に含まれる、当該ブロック内の閾値番号に対応する閾値を用いて、当該ブロックによって規定される繰り返し周期で入力画像データにディザ処理を施す。これにより、量子化部３００３は、入力画像データから第１のハーフトーン画像データを生成して出力する。
【０１６２】
（閾値読み出し部３００１の処理）
次に、図２５を参照して、閾値読み出し部３００１について説明する。図２５において（ａ）は、閾値読み出し部３００１の構成を示すブロック図であり、（ｂ）は、閾値読み出し部３００１によって実行される処理の手順を示すフローチャートである。閾値読み出し部３００１は、行番号カウンタ３１０１、列番号カウンタ３１０２、読み出しアドレス演算部３１０３、及び閾値生成部３１０４を含む。行番号カウンタ３１０１及び列番号カウンタ３１０２は、入力画像データにおける、量子化処理の対象となる注目画素を順に特定するための、行番号及び列番号についてのカウンタである。
【０１６３】
閾値読み出し部３００１における閾値読み出し処理が開始されると、まず、読み出しアドレス演算部３１０３は、行番号カウンタ３１０１から行番号を読み出し、読み出した行番号を５で割った剰余を求める（Ｓ３１０１）。次に、読み出しアドレス演算部３１０３は、列番号カウンタ３１０２から列番号を読み出し、読み出した列番号を５で割った剰余を求める（Ｓ３１０２）。ここで、Ｓ３１０１で求められる値をＭＯＤ（行番号，５）と表記し、Ｓ３１０２で求められる値をＭＯＤ（列番号，５）と表記する。
【０１６４】
次に、読み出しアドレス演算部３１０３は、ハーフトーンテーブルメモリ３００２において閾値番号テーブル３０１０が格納された記憶領域を示す、閾値番号テーブルアドレスを計算する（Ｓ３１０３）。図２４（ｄ）の場合、閾値番号テーブルアドレスは、以下の式で計算できる。
（閾値番号テーブルアドレス）＝ＭＯＤ（行番号，５）×５＋ＭＯＤ（列番号，５）
【０１６５】
次に、読み出しアドレス演算部３１０３は、上式を用いて計算した閾値番号テーブルアドレスを使用して、ハーフトーンテーブルメモリ３００２に格納された閾値番号テーブル３０１０から閾値番号を読み出す（Ｓ３１０４）。次に、読み出しアドレス演算部３１０３は、読み出した閾値番号に基づいて、ハーフトーンテーブルメモリ３００２において閾値テーブル３０２０が格納された記憶領域を示す、閾値テーブルアドレスを計算する（Ｓ３１０５）。図２４（ｄ）の場合、閾値テーブルアドレスは、以下の式で計算できる。
（閾値テーブルアドレス）＝１００＋（閾値番号）×４
【０１６６】
次に、読み出しアドレス演算部３１０３は、計算した閾値テーブルアドレスを使用して、閾値テーブル３０２０から閾値Ｔｈ１〜Ｔｈ４を読み出す（Ｓ３１０６）。なお、ハーフトーンテーブルメモリ３００２において、Ｔｈ１〜Ｔｈ４は順に、（閾値テーブルアドレス＋０）、（閾値テーブルアドレス＋１）、（閾値テーブルアドレス＋２）、（閾値テーブルアドレス＋３）のアドレスに格納されている。読み出しアドレス演算部３１０３は、読み出した閾値Ｔｈ１〜Ｔｈ４を閾値生成部３１０４へ出力する。
【０１６７】
閾値生成部３１０４は、読み出しアドレス演算部３１０３から入力された閾値Ｔｈ１〜Ｔｈ４を、閾値データ３００４として量子化部３００３に出力する（Ｓ３１０７）。次に、閾値読み出し部３００１は、入力画像データの１行分の処理が終了したか判定し（Ｓ３１０８）、終了している場合、行番号カウンタ３１０１をインクリメントすることで更新する（Ｓ３１０９）とともに、列番号カウンタを０にクリアする（Ｓ３１１０）。一方で、入力画像データの１行分の処理が終了していない場合、閾値読み出し部３００１は、列番号カウンタをインクリメントすることで更新する（Ｓ３１１１）。
【０１６８】
最終的に、閾値読み出し部３００１は、入力画像データの全画素の処理が終了したか判定し（Ｓ３１１２）、終了している場合、一連の処理を終了し、終了していない場合、Ｓ３１０１に処理を戻して、Ｓ３１０１〜Ｓ３１１２の処理を再び実行する。
【０１６９】
以上の処理によって、入力画像データに含まれる画素のうち、例えば、第５行の画素と第０行の画素とは同一の閾値が適用され、第６行の画素と第１行の画素とは同一の閾値が適用されることになる。また、列についても同様であり、入力画像データに含まれる画素のうち、例えば、第５列の画素と第０列の画素とは同一の閾値が適用され、第６列の画素と第１列の画素とは同一の閾値が適用される。このようにして、図２４（ｂ）に示す閾値番号テーブル３０１０が、入力画像データに含まれる各行及び各列の画素に対して、周期的に適用されることになる。
【０１７０】
（量子化部３００３の処理）
図２６を参照して、量子化部３００３によって実行される処理について説明する。第１の量子化処理部５０１１において量子化が開始されると、量子化部３００３は、入力画像データから、注目画素の１画素分の画素値を入力値として読み出して（Ｓ３２０１）、当該入力値を閾値Ｔｈ１と比較する（Ｓ３２０２）。入力値が閾値Ｔｈ１未満である場合、量子化部３００３は、量子化値として「０」を出力する（Ｓ３２０３）。入力値が閾値Ｔｈ１以上である場合、量子化部３００３は、次に当該入力値を閾値Ｔｈ２と比較する（Ｓ３２０４）。入力値が閾値Ｔｈ２未満である場合、量子化部３００３は、量子化値として「１」を出力する（Ｓ３２０５）。入力値が閾値Ｔｈ２以上である場合、量子化部３００３は、次に当該入力値を閾値Ｔｈ３と比較する（Ｓ３２０６）。入力値が閾値Ｔｈ３未満である場合、量子化部３００３は、量子化値として「２」を出力する（Ｓ３２０７）。入力値が閾値Ｔｈ３以上である場合、量子化部３００３は、次に当該入力値を閾値Ｔｈ４と比較する（Ｓ３２０８）。入力値が閾値Ｔｈ４未満である場合、量子化部３００３は、量子化値として「３」を出力する（Ｓ３２０９）。入力値が閾値Ｔｈ４以上である場合、量子化部３００３は、量子化値として「４」を出力する（Ｓ３２１０）。その後、量子化部３００３は、処理を終了する。以上の処理によって、量子化部３００３は、４個の閾値Ｔｈ１〜Ｔｈ４に基づいて、入力画像データに含まれる各画素値を、５個の量子化値の何れかに量子化する。
【０１７１】
図２７は、第１の量子化処理部５０１１に入力される画像データの一例を示しており、当該画像データには平坦部とエッジ部とが含まれている。図２７において（ａ）は、入力画像データを示しており、（ｂ）は、画素記号３３０１〜３３０６を用いて、（ａ）の入力画像データを視覚的に示している。
【０１７２】
例えば、第１行、第２列のＰ１は、入力画像データの画素値が「８７」であるため、
ＭＯＤ（行番号，５）＝１、ＭＯＤ（列番号，５）＝２
である。このため、閾値読み出し部３００１は、ハーフトーンテーブルメモリ３００２の７番地から閾値番号「０」を得る。次に、閾値読み出し部３００１は、ハーフトーンテーブルメモリ３００２の１００〜１０３番地を参照し、閾値番号「０」に対応する閾値として、Ｔｈ１＝１２，Ｔｈ２＝２４、Ｔｈ３＝８５、Ｔｈ４＝９７を得る。量子化部３００３は、閾値Ｔｈ１〜Ｔｈ４と入力画像データの画素値「８７」とを比較し、図２６の処理に基づいて量子化値として「３」を得る。
【０１７３】
また、例えば、第０行、第７列の画素Ｐ２は、画素Ｐ１と同様、入力画像データの画素値が「８７」である。しかし、
ＭＯＤ（行番号，５）＝０、ＭＯＤ（列番号，５）＝２
であるため、閾値読み出し部３００１は、ハーフトーンテーブルメモリ３００２の２番地から閾値番号「４」を得る。次に、閾値読み出し部３００１は、ハーフトーンテーブルメモリ３００２の１１６〜１１９番地を参照し、閾値番号「４」に対応する閾値として、Ｔｈ１＝１９４，Ｔｈ２＝２００、Ｔｈ３＝２１９、Ｔｈ４＝２４３を得る。量子化部３００３は、閾値Ｔｈ１〜Ｔｈ４と入力画像データの画素値「８７」とを比較し、図２６の処理に基づいて量子化値として「０」を得る。
【０１７４】
第１の量子化処理部５０１１は、このようなディザ処理によるハーフトーン処理（量子化処理）を、入力画像データに対して、ブロック３０１１を最小単位として繰り返し適用することで、第１のハーフトーン画像データを生成する。第１の量子化処理部５０１１が入力画像データに含まれるすべての画素についてハーフトーン処理を行った結果、図２７に示す入力画像データから、図２８に示す第１のハーフトーン画像データが得られる。図２８において（ａ）は、第１のハーフトーン画像データを示しており、（ｂ）は、画素記号３４０１〜３４０５を用いて、（ａ）の第１のハーフトーン画像データを視覚的に示している。
【０１７５】
本実施形態では、第１の量子化処理部５０１１によるハーフトーン処理によって、図２７に示した２５６階調の入力画像データは、図２８に示すように１画素当たり５階調（最小値０、最大値４）で表現された第１のハーフトーン画像データに変換される。図２７に示す入力画像データと図２８に示す第１のハーフトーン画像データとを比較すると、例えば、画素Ｐ３においてジャギーが発生していることがわかる。このようなジャギーは、第２の実施形態と同様、量子化誤差処理部３０８において補正される必要がある。
【０１７６】
なお、本実施形態では、ブロック３０１１によって規定される繰り返し周期でディザ処理を行う場合について説明しているが、これと異なる周期でディザ処理を行ってもよい。また、ディザ処理による画像データの変換後の階調数は５に限らず、異なる階調数であってもよい。
【０１７７】
＜量子化誤差演算部５０２による処理＞
第１の量子化処理部５０１１から出力された第１のハーフトーン画像データ（図２８）は、第２の実施形態と同様、図１８に示すように、量子化誤差処理部３０８に入力され、量子化誤差演算部５０２及び量子化誤差補正部５０３に与えられる。また、ガンマ補正部３０６から出力された入力画像データ（図２７）も量子化誤差処理部３０８に入力され、量子化誤差演算部５０２に与えられる。量子化誤差演算部５０２は、入力された入力画像データ（図２７９と第１のハーフトーン画像データ（図２８）とに基づいて、第２の実施形態と同様の処理を実行することで、量子化誤差データを生成する。第１及び第２のフィルタ処理部５０２１、５０２２におけるフィルタ処理は、第１の量子化処理部において使用するハーフトーンテーブルのブロック３０１１と対応するように実行される。また、第１及び第２のフィルタ処理部５０２１、５０２２による、処理対象の画像データ端部における折り返し処理についても、第２の実施形態と同様に実行される。量子化誤差演算部５０２における演算の結果、生成された量子化誤差データは、量子化誤差補正部５０３に出力される。
【０１７８】
＜量子化誤差補正部５０３による処理＞
量子化誤差補正部５０３に入力された量子化誤差データは、図１８に示すように、分離処理部１９０１に与えられる。分離処理部１９０１は、第２の実施形態と同様、入力された量子化誤差データに含まれる、プラスデータとマイナスデータとを分離して、得られたプラス側及びマイナス側の画像データをそれぞれ第２及び第３の量子化処理部１９０２、１９０３に出力する。
【０１７９】
図２９は、第１のハーフトーン画像データ（図２８）に基づいて得られた量子化誤差データに含まれるプラスデータ及びマイナスデータを、分離処理部１９０１で分離して得られた画像データの一例を示している。図２９において（ａ）及び（ｃ）はプラスデータを分離して得られた画像データ（第１の補正データ）であり、（ｂ）及び（ｄ）はマイナスデータを分離して得られた画像データ（第２の補正データ）である。なお、図２９において（ｃ）及び（ｄ）は、画素記号３５０１〜３５０５を用いて、（ａ）及び（ｂ）に示す各画素の画素値を視覚的に示している。
【０１８０】
本実施形態において、図１８に示す第２及び第３の量子化処理部１９０２、１９０３のうち、第２の量子化処理部１９０２は、第１の量子化処理部５０１１（図２４）と同様の構成を有し、かつ、同様の処理を実行する。ただし、第２の量子化処理部１９０２は、処理対象のデータが、ガンマ補正部３０６からの入力画像データではなく量子化誤差データのプラスデータに対応する画像データ（第１の補正データ）である点のみが、第１の量子化処理部５０１１とは異なる。さらに、第２の量子化処理部１９０２は、第１の量子化処理部５０１１において使用されるハーフトーンテーブル（閾値番号テーブル３０１０及び閾値テーブル３０２０）と同一のものを用いて、入力された第１の補正データに対する量子化処理を行う。このため、ＣＰＵ２２５は、第２の量子化処理部１９０２に含まれるハーフトーンテーブルメモリ３００２には、第１の量子化処理部５０１１のハーフトーンテーブルメモリ３００２に書き込んだデータ（図２４（ｃ））と同一のデータを書き込めばよい。
【０１８１】
一方で、本実施形態において、第３の量子化処理部１９０３の構成は、第１の量子化処理部５０１１及び第２の量子化処理部１９０２とは若干異なる。図３０は、第３の量子化処理部１９０３の構成を示している。第３の量子化処理部１９０３は、第１の量子化処理部５０１１の構成に対して第１及び第２の符号反転部３６０１、３６０２が追加された構成を有する。このため、第１の量子化処理部５０１１と共通する部分については、図３０において同一の参照符号を付し、その説明を省略する。
【０１８２】
第３の量子化処理部１９０３は、量子化誤差データのマイナスデータに対応する第２のデータを処理対象のデータとして、量子化処理を行う。即ち、第２の量子化処理部１９０２に入力される第１の補正データの各画素値が、０又は正の値であるのに対して、第３の量子化処理部１９０３に入力される第２の補正データの各画素値は、０又は負の値である。第１の符号反転部３６０１は、入力された第２の補正データに含まれる各画素値の符号を反転させることで、負の画素値を正の画素値に変換する。なお、第１の符号反転部３６０１は、０の画素値については何らの変換を行わない。これにより、量子化部３００３において、第１の量子化処理部５０１１及び第２の量子化処理部１９０２において実行される量子化処理と同様の量子化処理を実行することが可能になる。
【０１８３】
量子化部３００３は、第２の補正データに対して量子化処理を施して、得られたデータを第２の符号反転部３６０２に出力する。なお、量子化部３００３は、第１の量子化処理部５０１１において使用されるハーフトーンテーブル（閾値番号テーブル３０１０及び閾値テーブル３０２０）と同一のものを用いて、第２の補正データに対する量子化処理を行う。このため、ＣＰＵ２２５は、第３の量子化処理部１９０３に含まれるハーフトーンテーブルメモリ３００２にも、第１の量子化処理部５０１１のハーフトーンテーブルメモリ３００２に書き込んだデータ（図２４（ｃ））と同一のデータを書き込めばよい。最終的に、第２の符号反転部３６０２は、量子化部３００３によって量子化された第２の補正データの各画素値の符号を再度反転させることで、各画素値を０又は負の画素値として出力する。
【０１８４】
図３１は、図２９に示す、量子化誤差データのプラスデータ及びマイナスデータに対応する画像データ（第１及び第２の補正データ）に対して第２及び第３の量子化処理部１９０２、１９０３によって量子化処理を行って得られた画像データである。図３１において、（ａ）及び（ｂ）はそれぞれ、図２９（ａ）に示す画像データ及び図２９（ｂ）に示す画像データに第２及び第３の量子化処理部１９０２、１９０３によってそれぞれ量子化処理を行うことで得られた画像データである。図３１において（ｃ）及び（ｄ）は、画素記号３７０１〜３７０５を用いて、（ａ）及び（ｂ）に示す各画素値を視覚的に示している。
【０１８５】
図１８に示すように、第２及び第３の量子化処理部１９０２、１９０３によって量子化された第１及び第２の補正データは、加算処理部１９０４に入力される。加算処理部１９０４は、第２の実施形態と同様、第２の量子化処理部１９０２の出力値と第３の量子化処理部１９０３の出力値とを、画素ごとに加算処理することで、ハーフトーン補正データを生成する。加算処理部１９０４は、生成したハーフトーン補正データを、出力演算部５０３２に入力する。
【０１８６】
出力演算部５０３２は、第２の実施形態と同様、入力されたハーフトーン補正データを用いて、第１の量子化処理部５０１１において生成された第１のハーフトーン画像データ（図２８）を補正する。具体的には、出力演算部５０３２は、第１のハーフトーン画像データに対して、ハーフトーン補正データを画素ごとに加算することで第１のハーフトーン画像データを補正する。補正後の画像データは、第２のハーフトーン画像データとして出力される。
【０１８７】
図３２（ａ）は、第１のハーフトーン画像データ（図２８）と、ハーフトーン補正データとを、出力演算部５０３２において画素ごとに加算処理して得られた第２のハーフトーン画像データを示している。また、図３２（ｂ）は、画素記号３８０１〜３８０５を用いて、図３２（ａ）を視覚的に示している。例えば、画素Ｐ１０では、ハーフトーン補正データの画素値（補正値）がプラスの値（＝１）であるため、第２のハーフトーン画像データの画素値（＝１）は、加算処理により第１のハーフトーン画像データの画素値（＝０）から１増加している。また、画素Ｐ１１では、ハーフトーン補正データの画素値（補正値）がマイナスの値（＝−１）であるため、第２のハーフトーン画像データの画素値（＝２）は、加算処理により第１のハーフトーン画像データの画素値（＝３）から１減少している。
【０１８８】
第１のハーフトーン画像（図２８）と、本実施形態において第１のハーフトーン画像を補正して得られた第２のハーフトーン画像（図３２）とを比較すると、例えば、画素Ｐ１０においてジャギーが低減されていることがわかる。また、本実施形態では、第１の量子化処理部５０１１と、第２及び第３の量子化処理部１９０２、１９０３とで、何れも同一のハーフトーンテーブルを使用してディザ処理による量子化処理を行っている。このため、量子化誤差補正部５０３における補正に使用されるハーフトーン補正データは、補正対象の第１のハーフトーン画像と、同様の周期特性を有する。従って、第１の量子化処理部５０１１によって生成された第１のハーフトーン画像データにおいて、正の画素値が存在する画素の近辺に、ハーフトーン補正データを用いた補正によって、正の画素値が付加されることになる。即ち、補正対象の画素の周辺に、正の画素値を有する画素がまとまって形成される。
【０１８９】
上述したように、プリンタ１０においてトナー像を形成するためには、感光ドラム２２Ｋの表面を、露光装置２４Ｋによって連続的に十分に露光する必要がある。即ち、ある程度のレーザ発光幅で、感光ドラム２２Ｋの表面における十分な領域を、連続して露光する必要がある。本実施形態によれば、補正対象の画素の周辺に、正の画素値を有する画素をある程度まとまって形成されるように、第１のハーフトーン画像を補正することができる。その結果として、補正後の第２のハーフトーン画像を、感光ドラム２２Ｋの表面にトナー像として形成する場合に、トナー像を安定して形成するのに必要な程度に十分な露光を行うことが可能になる。
【０１９０】
以上説明したように、本実施形態によれば、ハーフトーン処理による量子化誤差に起因して画像の品質劣化が生じうる画素を高精度に検出することができる。また、本実施形態では、量子化誤差データに対して組織的ディザ処理によってハーフトーン処理（量子化処理）を施して、ハーフトーン補正データを生成する。このようにして生成したハーフトーン補正データを使用することで、画像形成装置における画像形成に対してより適した補正値に変換される。その結果、第１のハーフトーン画像に生じているハーフトーン処理による量子化誤差をより適切に補正できるとともに、画像形成装置における出力画像の品質劣化を防ぐことが可能になる。
【０１９１】
［第５の実施形態］
第４の実施形態では、第１、第２及び第３の量子化処理部５０１１、１９０２及び１９０３が、個別にハーフトーンテーブルメモリ３００２を有していた。しかし、第４の実施形態では、第１、第２及び第３の量子化処理部５０１１、１９０２及び１９０３の何れにおいても、使用するハーフトーンテーブル（即ち、ハーフトーンテーブルメモリ３００２の記憶内容）は同一であった。そこで、第５の実施形態では、第４の実施形態において各量子化処理部に個別に設けていたハーフトーンテーブルメモリ３００２を単一化して、各量子化処理部が単一のハーフトーンテーブルメモリ３００２を共通的に参照することを特徴とする。
【０１９２】
まず、図３３を参照して、本実施形態に係るハーフトーン処理部３０７及び量子化誤差処理部３０８の構成例について説明する。なお、図３３において、第４の実施形態（図１８、図２４及び図３０）と同様の構成要素については、それらの実施形態と同一の参照符号を付し、その説明を省略する。第４の実施形態では、図２４及び図３０に示すように、閾値読み出し部３００１及びハーフトーンテーブルメモリ３００２は、第１、第２及び第３の量子化処理部５０１１、１９０２、１９０３に個別に設けられていた。これに対して、本実施形態では、ハーフトーン処理部３０７及び量子化誤差処理部３０８の外部に、単一の閾値読み出し部３００１と、単一のハーフトーンテーブルメモリ３００２とが設けられている。このため、後述するように、本実施形態では、第１、第２及び第３の量子化処理部５０１１、１９０２、１９０３から、閾値読み出し部３００１及びハーフトーンテーブルメモリ３００２が省かれている。
【０１９３】
閾値読み出し部３００１は、第４の実施形態と同様、ハーフトーンテーブルメモリ３００２からハーフトーンテーブル（閾値番号テーブル３０１０及び閾値テーブル３０２０）を読み出して、読み出したデータを閾値データ３００４として出力する。ただし、本実施形態では、第４の実施形態と異なり、閾値読み出し部３００１から出力される閾値データ３００４は、第１、第２及び第３の量子化処理部５０１１、１９０２及び１９０３のそれぞれに提供される。
【０１９４】
次に、図３４（ａ）は、第１及び第２の量子化処理部５０１１、１９０２の構成例を示しており、図３４（ｂ）は、第３の量子化処理部１９０３の構成例を示している。なお、第１及び第２の量子化処理部５０１１、１９０２の構成は同一である。第４の実施形態（図２４及び図３０）と比較すると、本実施形態では、第１、第２及び第３の量子化処理部５０１１、１９０２及び１９０３は、何れも閾値読み出し部３００１及びハーフトーンテーブルメモリ３００２が省かれた構成を有する。第１、第２及び第３の量子化処理部５０１１、１９０２及び１９０３の量子化部３００３は、外部に設けられた単一の閾値読み出し部３００１から提供される閾値データ３００４を使用して、ディザ処理によるハーフトーン処理（量子化処理）を実行する。なお、量子化部３００３の機能については、第４の実施形態と同様であるので、その説明を省略する。
【０１９５】
本実施形態では、閾値読み出し部３００１及びハーフトーンテーブルメモリ３００２に関連した構成が異なるのみで、第１、第２及び第３の量子化処理部５０１１、１９０２及び１９０３は、第４の実施形態と同様に機能する。このため、本実施形態において得られる第２のハーフトーン画像データも、第４の実施形態と同様である。
【０１９６】
以上説明したように、本実施形態では、単一の閾値読み出し部３００１が、第１、第２及び第３の量子化処理部５０１１、１９０２及び１９０３のそれぞれに閾値データを提供する。このため、第１、第２及び第３の量子化処理部５０１１、１９０２及び１９０３に対してハーフトーンテーブルメモリ３００２を個別に設ける必要はなく、単一のハーフトーンテーブルメモリ３００２を用意すればよい。従って、本実施形態によれば、第４の実施形態による効果に加えて、ハーフトーンテーブルメモリ３００２の数を削減することで、装置コストを低減することが可能である。
【０１９７】
［第６の実施形態］
第４及び第５の実施形態では、第１、第２及び第３の量子化処理部５０１１、１９０２及び１９０３において、同一のハーフトーンテーブル（閾値番号テーブル３０１０及び閾値テーブル３０２０）を使用して、ディザ処理による量子化処理を行っている。これに対して、本実施形態では、第３の量子化処理部１９０３が、第１及び第２の量子化処理部５０１１及び１９０２において使用されるハーフトーンテーブルとは位相が異なるハーフトーンテーブルを使用して量子化処理を行うことを特徴とする。
【０１９８】
まず、図３５を参照して、本実施形態に係るハーフトーン処理部３０７及び量子化誤差処理部３０８の構成例について説明する。なお、図３５において、第５の実施形態（図３３）と同様の構成要素については、それらの実施形態と同一の参照符号を付し、その説明を省略する。図３５に示すように、本実施形態では、第１、第２及び第３の量子化処理部５０１１、１９０２及び１９０３に対応して、それぞれ個別に第１、第２及び第３の閾値読み出し部４００１、４００２及び４００３が設けられている。
【０１９９】
第１、第２及び第３の閾値読み出し部４００１、４００２及び４００３は、単一のハーフトーンテーブルメモリ３００２から、閾値データ（閾値番号テーブル３０１０及び閾値テーブル３０２０）を読み出す。第１の閾値読み出し部４００１は、第３及び４の実施形態の閾値読み出し部３００１と同様の機能を有し、ハーフトーンテーブルメモリ３００２から読み出したデータを閾値データ３００４として出力する。第１の閾値読み出し部４００１から出力された閾値データ３００４は、ハーフトーン処理部３０７の第１の量子化処理部５０１１に提供される。
【０２００】
一方、第２及び第３の閾値読み出し部４００２、４００３は、ハーフトーンテーブルメモリ３００２から読み出したハーフトーンテーブルの位相を、後述するように変化させる。さらに、第２及び第３の閾値読み出し部４００２、４００３は、得られたデータを、閾値データ４００４、４００５としてそれぞれ出力する。第２及び第３の閾値読み出し部４００２、４００３から出力された閾値データ４００４、４００５は、それぞれ第２及び第３の量子化処理部１９０２、１９０３に提供される。
【０２０１】
＜ハーフトーン処理部３０７及び量子化誤差処理部３０８による処理＞
次に、図３６〜図３９を参照しながら、本実施形態においてハーフトーン処理部３０７及び量子化誤差処理部３０８において実行される処理について、特に第４及び第５の実施形態と異なる部分を中心として説明する。併せて、第３の量子化処理部１９０３が、第１及び第２の量子化処理部５０１１及び１９０２において使用されるハーフトーンテーブルとは位相が異なるハーフトーンテーブルを使用して量子化処理を行う必要性について説明する。
【０２０２】
ハーフトーン処理部３０７において、第１の量子化処理部５０１１は、第５の実施形態と同様に、ガンマ補正部３０６からの入力画像データに対して、ハーフトーン処理（量子化処理）を行う。かかるハーフトーン処理には、図２４（ｂ）及び（ｃ）に示したハーフトーンテーブル（閾値番号テーブル３０１０及び閾値テーブル３０２０）を適用したディザ処理が用いられる。
【０２０３】
図３６（ａ）及び（ｂ）は、第１の量子化処理部５０１１に入力される画像データ（入力画像データ）の一例を示しており、当該画像データには平坦部とエッジ部とが含まれる。図３６において（ａ）は入力画像データを示しており、（ｂ）は、画素記号３３０１〜３３０６を用いて、（ａ）の入力画像データを視覚的に示している。図３６（ａ）に示す入力画像データに対して第１の量子化処理部５０１１におけるハーフトーン処理が行われると、図３６（ｃ）及び（ｄ）に示す第１のハーフトーン画像データが生成される。ここで、図３６において（ｃ）は、第１のハーフトーン画像データの各画素値を示しており、（ｄ）は、画素記号３４０１〜３４０５を用いて、（ｃ）の第１のハーフトーン画像データを視覚的に示している。
【０２０４】
次に、量子化誤差演算部５０２は、第４及び第５の実施形態と同様に、入力画像データと、第１のハーフトーン画像データとから、量子化誤差データを生成して出力する。図３７は、本実施形態に係る量子化誤差データの一例を示している。図３７において（ａ）は、量子化誤差データの各画素の画素値を、（ｂ）は、画素記号４２０１〜４２０５を用いて、（ａ）に示す量子化誤差データを視覚的に示している。
【０２０５】
量子化誤差補正部５０３に量子化誤差データが入力されると、分離処理部１９０１は、第４及び第５の実施形態と同様、当該データに含まれるプラスデータとマイナスデータとを分離して、プラスデータ及びマイナスデータに対応する画像データを生成する。さらに、分離処理部１９０１は、プラスデータに対応する画像データ（第１の補正データ）を第２の量子化処理部１９０２に、マイナスデータに対応する画像データ（第２の補正データ）を第３の量子化処理部１９０３に、それぞれ出力する。第２及び第３の量子化処理部１９０２、１９０３はそれぞれ、第５の実施形態と同様に、入力された画像データに対して、量子化処理を行う。かかる量子化処理には、第２及び第３の閾値読み出し部４００２、４００３からそれぞれ提供される閾値データ４００４、４００５を適用したディザ処理が用いられる。
【０２０６】
図３８（ａ）及び（ｂ）は、図３７（ａ）に示した量子化誤差データから得られた、第１及び第２の補正データに対して、それぞれ第２及び第３の量子化処理部１９０２、１９０３で量子化処理を行って得られた画像データを示している。また、図３８（ｃ）及び（ｄ）は、画素記号３７０１〜３７０５を用いて、（ａ）及び（ｂ）に示す第１及び第２の補正データを視覚的に示している。
【０２０７】
第２及び第３の量子化処理部１９０２、１９０３によって量子化された第１及び第２の補正データは、加算処理部１９０４によって加算処理されることで、ハーフトーン補正データが生成される。出力演算部５０３２は、加算処理部１９０４によって生成されたハーフトーン補正データで、第１のハーフトーン画像データ（図３６（ｃ）及び（ｄ））を補正することで、第２のハーフトーン画像データを生成する。図３９（ａ）は、第２のハーフトーン画像データを示しており、図３９（ｂ）は、画素記号４５０１〜４５０５を用いて、（ａ）を視覚的に示している。
【０２０８】
図３８（ｂ）及び（ｄ）に示す、量子化誤差データのマイナスデータに対応する画像データ（第２の補正データ）を第３の量子化処理部１９０３で量子化して得られた画像データにおける、画素Ｐ１２〜Ｐ１５に注目する。図３８に示すように、当該画像データの画素Ｐ１２〜Ｐ１５の画素値（量子化値）は「−１」である。一方で、図３６（ｃ）及び（ｄ）に示す第１のハーフトーン画像データにおける、画素Ｐ１２〜Ｐ１５の画素値は「０」である。このため、出力演算部５０３２が、第１及び第２の補正データから成るハーフトーン補正データで第１のハーフトーン画像データを補正して得られる第２のハーフトーン画像データの、画素Ｐ１２〜Ｐ１５の画素値は、図３９（ａ）に示すように「−１」となる。
【０２０９】
しかし、第２のハーフトーン画像データの取り得る画素値（量子化値）は０〜４の５値であり、画素Ｐ１２〜Ｐ１５のように「−１」とすることはできない。そこで、出力演算部５０３２は、第１のハーフトーン画像データを補正する際に、当該画像データにおいて画素値が０以下の画素については、補正後の量子化値を０として出力することになる。このため、ハーフトーン補正データの画素値（補正値）が「−１」であるにもかかわらず、その補正値に従った補正が第１のハーフトーン画像データに対して行われなくなる結果、その補正効果が不十分となってしまう可能性がある。
【０２１０】
本実施形態では、このような場合にも補正効果を十分に得られるように、第３の量子化処理部１９０３は、第１の量子化処理部５０１１において使用するハーフトーンテーブルと位相が異なるハーフトーンテーブルを使用して、量子化処理（ディザ処理）を行う。
【０２１１】
＜第３の閾値読み出し部４００３による処理＞
次に、図４０を参照して、第３の閾値読み出し部４００３について説明する。図４０（ａ）は、第３の閾値読み出し部４００３の構成を示している。第３の閾値読み出し部４００３は、第４及び第５の実施形態における閾値読み出し部３００１と同様の構成を有するものの、読み出しアドレス演算部３１０３によって実行される処理が大きく異なる。読み出しアドレス演算部３１０３は、ＣＰＵ２２５からの制御情報として提供されるアドレス変換テーブルに基づいて、ハーフトーンテーブルメモリ３００２から読み出すべきデータのアドレスを決定するための演算を行う。なお、第２の閾値読み出し部４００２も、第３の閾値読み出し部４００３と同様の構成を有する。
【０２１２】
以下、図４０（ｂ）のフローチャートを参照して、第３の閾値読み出し部４００３の処理を説明する。図４０（ｂ）では、第４及び第５の実施形態（図２５）と比較すると、Ｓ３１０４〜Ｓ３１１２については同様であり、読み出しアドレス演算部３１０３によって実行されるＳ３１０１〜Ｓ３１０３が、Ｓ４００１〜Ｓ４００４に置き換えられている。ここでは、第４及び第５の実施形態とは異なるＳ４００１〜Ｓ４００４を中心に説明していく。
【０２１３】
Ｓ４００１で、読み出しアドレス演算部３１０３は、制御情報に含まれる行列番号変換テーブルに基づいて、行番号カウンタ３１０１から読み出した行番号と、列番号カウンタ３１０２から読み出した列番号とを、それぞれ異なる番号に変換する。
【０２１４】
ここで、図４１は、一例として、行列番号変換テーブル４１００を示している。行列番号変換テーブル４１００には、第２及び第３の閾値読み出し部４００２、４００３において使用すべき行番号変換値及び列番号変換値が格納されている。ここでは、第２の閾値読み出し部４００２については、行番号変換値及び列番号変換値を０、第３の閾値読み出し部４００３については、行番号変換値を０、列番号変換値を４としている。
【０２１５】
読み出しアドレス演算部３１０３は、行番号カウンタ３１０１から読み出した行番号と、列番号カウンタ３１０２から読み出した列番号とに、行列番号変換テーブル４１００に格納された各変換値を、次式に従って加算する。これにより、読み出しアドレス演算部３１０３は、変換後の変換行番号と変換列番号とを得る。
（変換行番号）＝（行番号）＋（行番号変換値）
（変換列番号）＝（列番号）＋（列番号変換値）
【０２１６】
次に、読み出しアドレス演算部３１０３は、Ｓ４００２〜Ｓ４００４において閾値番号テーブルアドレスを計算する際に、行番号カウンタ３１０１及び列番号カウンタ３１０２から得られる行番号及び列番号の代わりに、変換行番号及び変換列番号を使用する。即ち、閾値番号テーブルアドレスは、次式に従って計算できる。
（閾値番号テーブルアドレス）＝ＭＯＤ（変換行番号，５）×５＋ＭＯＤ（変換列番号，５）
【０２１７】
一例として、行番号カウンタ３１０１の値が「１」、列番号カウンタ３１０２の値が「４」である場合を考える。まず、行番号及び列番号をＳ４００１において変換しない場合には、
ＭＯＤ（行番号，５）＝１，ＭＯＤ（列番号，５）＝４
であり、閾値番号テーブルアドレスは９となる。その結果として、読み出しアドレス演算部３１０３は、閾値番号として、ハーフトーンテーブルメモリ３００２に格納された閾値番号テーブル３０１０（図２４）から、要素３０１２に規定された「４」を読み出すこととなる。
【０２１８】
一方、本実施形態では、図４１に示すように、第３の閾値読み出し部４００３に対応する行番号変換値は０、列番号変換値は４であるので、変換行番号は１、変換列番号は８となる。このため、
ＭＯＤ（変換行番号，５）＝１，ＭＯＤ（変換列番号，５）＝３
であり、閾値番号テーブルアドレスは８となる。その結果として、読み出しアドレス演算部３１０３は、閾値番号として、ハーフトーンテーブルメモリ３００２に格納された閾値番号テーブル３０１０から、要素３０１３に規定された「２」を読み出すこととなる。このことは、閾値番号テーブル３０１０において、行番号１、列番号４に対応する要素３０１２の閾値番号が、当該要素から１つ左の列に移動した要素３０１３の閾値番号に変換されることを意味する。
【０２１９】
これに対して、第１の閾値読み出し処理部４００１は、このような行列番号変換を行わないため、閾値読み出し部３００１は、要素３０１２の閾値番号を、ハーフトーンテーブルメモリ３００２からそのまま読み出す。つまり、第１の量子化処理部５０１１は、要素３０１２の閾値番号に対応する閾値で量子化処理を行うのに対して、第３の量子化処理部１９０３は、要素３０１３の閾値番号に対応する閾値で量子化処理を行う。
【０２２０】
第３の量子化処理部１９０３が、以上のような処理を第２の補正データの全画素について行うことにより、結果として、第１の量子化処理部５０１１と比較して、使用するハーフトーンテーブルの位相が１画素分左にずらしていることになる。このように、本実施形態では、第３の量子化処理部１９０３は、第１の量子化処理部５０１１において使用するハーフトーンテーブルと位相が異なるハーフトーンテーブルを使用して、量子化処理（ディザ処理）を行う。
【０２２１】
＜量子化誤差補正部５０３による処理結果＞
次に、図４２及び図４３を参照しながら、第３の量子化処理部１９０３が、第１の量子化処理部５０１１とは位相が異なるハーフトーンテーブルを使用した場合に得られる結果について説明する。図４２（ａ）及び（ｂ）は、図３７（ａ）に示した量子化誤差データから得られた、第１及び第２の補正データに対して、それぞれ第２及び第３の量子化処理部１９０２、１９０３で量子化処理を行って得られた画像データを示している。また、図４２（ｃ）及び（ｄ）は、画素記号３７０１〜３７０５を用いて、（ａ）及び（ｂ）に示す第１及び第２の補正データを視覚的に示している。
【０２２２】
図４２（ａ）及び（ｃ）に示す、第２の量子化処理部１９０２による量子化後の第１の補正データは、図３８（ａ）及び（ｃ）に示す、量子化後の第１の補正データは同一となっている。これは、第２の量子化処理部１９０２に対応する行番号変換値と列番号変換値とを、行列番号変換テーブル４１００（図４１）において０に設定したためである。即ち、第２の量子化処理部１９０２は、行番号及び列番号の変換を行わず、第４及び第５の実施形態と同一のハーフトーンテーブルを用いて、第１の補正データに対する量子化処理を行っているためである。一方で、図４２（ｂ）及び（ｄ）に示す、第３の量子化処理部１９０３による量子化後の第２の補正データは、図３８（ｂ）及び（ｄ）に示す、量子化後の第２の補正データと異なっている。これは、第３の量子化処理部１９０３が、行列番号変換テーブル４１００に基づいて、行番号及び列番号の変換を行って位相を変化させたハーフトーンテーブルを用いて、第２の補正データに対する量子化処理を行っているためである。
【０２２３】
次に、図４３（ａ）は、本実施形態において出力演算部５０３２によって生成された第２のハーフトーン画像データを示しており、図４３（ｂ）は、画素記号３４０１〜３４０５を用いて、（ａ）を視覚的に示している。
【０２２４】
ここで、図４２（ｂ）及び（ｄ）に示す、量子化誤差データのマイナスデータに対応する画像データ（第２の補正データ）を第３の量子化処理部１９０３で量子化して得られた画像データにおける、画素Ｐ１６〜Ｐ１８に注目する。図４２に示すように、当該画像データの画素Ｐ１６〜Ｐ１８の画素値（量子化値）は「−１」である。一方で、図３６（ｃ）及び（ｄ）に示す第１のハーフトーン画像データにおける、画素Ｐ１６〜Ｐ１８の画素値は「２」である。このため、出力演算部５０３２が、第１及び第２の補正データから成るハーフトーン補正データで第１のハーフトーン画像データを補正して得られる第２のハーフトーン画像データの、画素Ｐ１６〜Ｐ１８の画素値は、図４３（ａ）に示すように「１」となる。
【０２２５】
このように、第１のハーフトーン画像データにおける画素Ｐ１６〜Ｐ１８の量子化値は「２」であるため、量子化後の第２の補正データにおける対応画素の画素値（補正値）「−１」で補正しても、補正後の量子化値は０未満の値にはならない。即ち、第１のハーフトーン画像データの画素Ｐ１６〜Ｐ１８の画素値を出力演算部５０３２によって補正した場合に、補正後の量子化値を強制的に０にして出力しない。このため、当該画素について、量子化誤差補正部５０３における第１のハーフトーン画像データに対する補正効果を十分に得ることができる。
【０２２６】
以上説明したように、本実施形態では、第１の量子化処理部に適用するハーフトーンテーブルとは位相が異なるハーフトーンテーブルを、第２の量子化処理部及び第３の量子化処理部の少なくとも何れかに適用して、量子化誤差データを量子化処理する。さらに、当該量子化処理によって得られたハーフトーン補正データを用いて、第４及び第５の実施形態と同様に、ハーフトーン画像データを補正する。これにより、第４及び第５の実施形態による効果に加えて、ハーフトーン画像データの補正を十分に行うことが可能になる。
【０２２７】
なお、本実施形態では、行列番号変換テーブルに含まれる、第２の量子化処理部１９０２に対応する行番号変換値及び列番号変換値を何れも０に設定しているため、第１及び第２の量子化処理部５０１１、１９０２では、同一のハーフトーンテーブルを用いている。しかし、第２の量子化処理部１９０２に対応する行番号変換値及び列番号変換値の少なくとも何れかを０以外の値に設定してもよい。これにより、第２の量子化処理部１９０２についても、第１の量子化処理部５０１１において用いるハーフトーンテーブルと異なる位相のハーフトーンテーブルを用いて量子化処理を実行できる。この処理は、例えば、第１のハーフトーン画像データを補正して得られた第２のハーフトーン画像データに含まれる量子化値が６以上となりうる場合に有効である。
【０２２８】
また、本実施形態では、単一のハーフトーンテーブルメモリを使用し、当該メモリからの閾値を読み出す際の行列番号を変換する処理を行っている。しかし、第４の実施形態のように、複数のハーフトーンテーブルメモリを用意して、第１、第２及び第３の量子化処理部５０１１、１９０２及び１９０３に、それぞれ個別のハーフトーンテーブルメモリを使用させてもよい。この場合、相互に異なる位相のハーフトーンテーブルを、当該個別のハーフトーンテーブルメモリに予め格納しておけばよい。
【０２２９】
［その他の実施形態］
上述の各実施形態において説明した、ハーフトーン処理によって生じる量子化誤差の補正処理は、ホストＰＣ２１０から描画データを受信するプリンタ１０（画像形成装置）に限られず、例えば、画像読取装置を備えた複写機においても実行されうる。その場合、画像形成のための描画データは、画像読取装置において原稿から読み取ることによって得られうる。また、色変換テーブル、ガンマ補正テーブル、ハーフトーンテーブル、フィルタテーブル、アドレス変換テーブル等のテーブルデータは、ＲＯＭ２２１に予め格納されているのではなく、ホストＰＣ２１０からプリンタ１０に提供されてもよい。このような場合にも、プリンタ１０がホストＰＣ２１０から受信したテーブルデータを用いることで、上述の各実施形態の機能を実現し、その効果を得ることが可能である。
【０２３０】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005767523.tif 000002
【図２】
0005767523.tif 000003
【図３】
0005767523.tif 000004
【図４】
0005767523.tif 000005
【図５】
0005767523.tif 000006
【図６】
0005767523.tif 000007
【図７】
0005767523.tif 000008
【図８】
0005767523.tif 000009
【図９】
0005767523.tif 000010
【図１０】
0005767523.tif 000011
【図１１】
0005767523.tif 000012
【図１２】
0005767523.tif 000013
【図１３】
0005767523.tif 000014
【図１４】
0005767523.tif 000015
【図１５】
0005767523.tif 000016
【図１６】
0005767523.tif 000017
【図１７】
0005767523.tif 000018
【図１８】
0005767523.tif 000019
【図１９】
0005767523.tif 000020
【図２０】
0005767523.tif 000021
【図２１】
0005767523.tif 000022
【図２２】
0005767523.tif 000023
【図２３】
0005767523.tif 000024
【図２４】
0005767523.tif 000025
【図２５】
0005767523.tif 000026
【図２６】
0005767523.tif 000027
【図２７】
0005767523.tif 000028
【図２８】
0005767523.tif 000029
【図２９】
0005767523.tif 000030
【図３０】
0005767523.tif 000031
【図３１】
0005767523.tif 000032
【図３２】
0005767523.tif 000033
【図３３】
0005767523.tif 000034
【図３４】
0005767523.tif 000035
【図３５】
0005767523.tif 000036
【図３６】
0005767523.tif 000037
【図３７】
0005767523.tif 000038
【図３８】
0005767523.tif 000039
【図３９】
0005767523.tif 000040
【図４０】
0005767523.tif 000041
【図４１】
0005767523.tif 000042
【図４２】
0005767523.tif 000043
【図４３】
0005767523.tif 000044