以下、本発明を実施するための形態について図面を用いて説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものでなく、また実施形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
[第1の実施形態]
まず、第1実施形態について説明する。本実施形態では、本発明の画像処理装置の適用例として、電子写真方式による、中間転写ベルトを採用したタンデム方式の4ドラム・フルカラー画像形成装置について説明する。なお、後述するように、ホスト・コンピュータ(ホストPC)を本発明の画像処理装置として機能させることで、本発明を実施することも可能である。
<プリンタ10の構成>
まず、図1を参照して、画像形成装置10(以下では単に「プリンタ」と称する。)の構成について説明する。プリンタ10は、記録材(記録媒体)に画像を形成するための複数色の色材として、イエロー(Y)色、マゼンタ(M)色、シアン(C)色及びブラック(K)色の4色の現像剤(トナー)を使用して、記録材上にマルチカラー(多色)の画像を形成する。プリンタ10では、まず、パルス幅変調(PWM)処理部309(図3に図示)によって生成される露光制御信号に基づく露光によって、感光ドラム(感光体)22Y,22M,22C,22Kの表面に、それぞれ静電潜像が形成される。これらの静電潜像が各色のトナーを用いて現像されることで、モノカラー(単色)のトナー像が各感光ドラム(感光体)22Y,22M,22C,22Kの表面に形成される。最終的に、これらのトナー像が記録材の表面に重ね合わせて転写されることで、当該記録材の表面に多色のトナー像が形成される。以下では、プリンタ10が実行する画像形成動作について、より詳細に説明する。
プリンタ10は、それぞれが異なる色のトナーで単色のトナー像を対応する複数の感光ドラム22Y,22M,22C,22K上に形成する4個の画像形成ステーションを備える。4個の画像形成ステーションは、複数の感光ドラム22Y,22M,22C,22Kと、一次帯電器である注入帯電器23Y,23M,23C,23Kと、露光装置24Y,24M,24C,24Kとをそれぞれ備える。4個の画像形成ステーションは、更に、トナーカートリッジ25Y,25M,25C,25Kと、現像器26Y,26M,26C,26Kとをそれぞれ備える。プリンタ10は、これら4個の画像形成ステーションにおいて感光ドラム22Y,22M,22C,22K上に形成されたトナー像が転写される中間転写体(中間転写ベルト)27を備える。
感光ドラム22Y,22M,22C,22Kは、それぞれ異なる駆動モータ(不図示)の駆動力によって回転する。注入帯電器23Y,23M,23C,23Kは、それぞれスリーブ23YS,23MS,23CS,23KSを備え、それぞれ対応する感光ドラム22Y,22M,22C,22Kを帯電させる。露光装置24Y,24M,24C,24Kは、帯電した感光ドラム22Y,22M,22C,22Kの表面をレーザ光で露光することによって、対応する感光ドラム上に静電潜像を形成する。現像器26Y,26M,26C,26Kは、スリーブ26YS,26MS,26CS,26KSをそれぞれ備える。現像器26Y,26M,26C,26Kは、トナーカートリッジ25Y,25M,25C,25Kから供給されるそれぞれ異なる色のトナーで、感光ドラム22Y,22M,22C,22K上の静電潜像を現像する。具体的には、現像器26Y,26M,26C,26Kは、それぞれY色、M色、C色、K色のトナーを用いて各感光ドラム22Y,22M,22C,22K上の静電潜像を可視化することで、各感光ドラムの表面に各色のトナー像を形成する。
中間転写体27は、図1に示すように、感光ドラム22Y,22M,22C,22Kに接触する位置に配置されている。中間転写体27は、画像形成の際には、駆動ローラ16の駆動力によって回転しながら、その表面に各感光ドラム22Y,22M,22C,22Kから単色のトナー像が順に重ねて転写(1次転写)される。これにより、中間転写体27の表面に多色のトナー像が形成される。なお、駆動ローラ16は、中間転写体27用の駆動モータ(不図示)によって駆動される。
中間転写体27上に形成された多色のトナー像は、当該中間転写体の回転に伴って、当該中間転写体と転写ローラ28との間のニップ部に搬送される。トナー像が当該ニップ部に搬送されるタイミングに合わせて、記録材11が給紙部21a又は21bから給紙され、搬送路上を当該ニップ部まで搬送される。転写ローラ28は、当該ニップ部において、搬送された記録材11を介して中間転写体27に当接する。転写ローラ28が中間転写体27に当接している間に、中間転写体27上に形成された多色のトナー像が記録材11上に転写(2次転写)される。これにより、記録材11上に多色のトナー像が形成される。中間転写体27から記録材11への2次転写が終了すると、転写ローラ28は中間転写体27から離間する。
多色のトナー像が転写された記録材11は、その後、搬送路上を定着部30へ搬送される。定着部30は、搬送路上を搬送される記録材11上のトナー像を溶融させ、記録材11上に定着させる。定着部30は、記録材11を加熱するための定着ローラ31と、記録材11を定着ローラ31に圧接させるための加圧ローラ32とを備える。定着ローラ31及び加圧ローラ32は、中空状に形成され、定着ローラ31の内部にはヒータ33が内蔵されている。表面に多色のトナー像を保持した記録材11は、定着部30において、定着ローラ31及び加圧ローラ32によって搬送ながら、熱及び圧力を加えられる。これにより、記録材11の表面にトナーが定着する。トナーの定着後、記録材11は、排出ローラ(不図示)によって排紙トレイ(不図示)に排出される。以上により、記録材11への画像形成動作が終了する。
中間転写体27の近傍に設けられたクリーニング部29は、クリーナ容器を備え、記録材11へのトナー像の2次転写後に中間転写体27上に残留したトナー(廃トナー)を回収する。クリーニング部29は、回収した廃トナーを当該クリーナ容器に蓄える。このようにして、クリーニング部29は、中間転写体27の表面をクリーニングする。
なお、本実施形態では、中間転写体27を備えたプリンタ10(図1)について説明するが、本発明は、感光ドラム22Y,22M,22C,22K上に形成されたトナー像を記録材に直接転写する一次転写方式のプリンタに対しても適用できる。この場合、図1に示す中間転写体27は、搬送ベルトに置き換えられればよい。また、本実施形態では、感光ドラム22Y,22M,22C,22Kのそれぞれについて異なる駆動を設いているが、すべての感光ドラムについて共通の(単一の)モータが用いられてもよい。
<プリンタ10及びホストPC210のシステム構成>
次に、図2に示すプリンタ10のシステム構成を参照して、画像形成時において実行される処理について説明する。
(ホストPC210のシステム構成)
ホストPC210は、少なくとも、CPU211、RAM212、ネットワークIF213、表示部インタフェース(IF)214、入力IF215、及び不揮発性の記憶装置の一例としてハードディスクドライブ(HDD)216を備える。CPU211は、RAM212をメインメモリ及びワークエリアとして使用するとともに、HDD216に格納された各種の制御プログラムをRAM212に読み出して実行することで、ホストPC210全体の動作を制御する。HDD216には、各種アプリケーション及びプリンタドライバも格納されており、CPU211はそれらをRAM212に読み出して実行可能である。ネットワークIF213は、LAN等のネットワークに接続されており、ホストPC210はそのようなネットワークを介してプリンタ10と接続されている。なお、ホストPC210は、ネットワークを介することなく、USB接続等の接続方式によりプリンタ10と直接接続されていてもよい。
ホストPC210は、そのようなアプリケーション及びプリンタドライバを用いて、ネットワークIF213を介してプリンタ10へPDL(Page Description Language)ジョブデータを送信する。PDLジョブデータ(プリントジョブデータ)には、形成すべき画像の画像データである描画データと、当該描画データを用いた画像形成動作を制御するための制御データとが含まれる。また、表示部IF214は、液晶ディスプレイ等の表示部(不図示)に各種の表示を行うためのインタフェースである。また、入力IF215は、キーボードやマウス等の入力デバイスからの入力を受け付けるためのインタフェースである。
(プリンタ10のシステム構成)
プリンタ10は、大きく分けて、制御部220と機構部230とを備える。機構部230は、制御部220からの各種指示に応じて動作する。機構部230は、センサ系231、給紙・搬送系232、作像系233、及び、レーザスキャナ系234を備える。レーザスキャナ系234は、露光装置24Y,24M,24C,24Kで構成され、レーザ発光素子、レーザドライバ回路、スキャナモータ、回転多面鏡、スキャナドライバ等を備える。レーザスキャナ系234は、ASIC226から受信した描画データに従って感光ドラム22Y,22M,22C,22K上をレーザ光でそれぞれ露光及び走査することで、各感光ドラム上に静電潜像を形成する。
作像系233は、レーザスキャナ系234によって感光ドラム22Y,22M,22C,22K上に形成された静電潜像に基づいてトナー像を記録媒体上に形成する。作像系233は、トナーカートリッジ25Y,25M,25C,25K、中間転写体27、定着部30等のプロセス要素と、作像(画像形成)の際に各種のバイアス(高電圧)を生成する高圧電源回路とを備える。作像系233は、更に、除電器、注入帯電器23Y,23M,23C,23K、現像器26Y、26M,26C,26K,感光ドラム22Y,22M,22C,22K等を備える。給紙・搬送系232は、各種の搬送系モータ、給紙部21a及び21b、排紙トレイ、各種搬送ローラ等を備え、記録材の給紙及び搬送を行う。
センサ系231は、複数のセンサを含むセンサ群を備える。当該センサ群に含まれる各センサは、CPU225及びASIC226がレーザスキャナ系234、作像系233、給紙・搬送系232を制御するために必要とする情報を収集するために使用される。当該センサ群には、例えば、定着部30の温度センサ、トナー残量検知センサ、画像の濃度を検知する濃度センサ、用紙サイズを検知する用紙サイズセンサ、記録媒体の先端を検知する紙先端検知センサ、紙搬送検知センサ等が含まれる。これらのセンサで検知された情報は、CPU225へ送られて、CPU225によるプリントシーケンス制御に用いられる。なお、上述の各センサは、センサ系231ではなく、レーザスキャナ系234、作像系233、給紙・搬送系232の何れかに備えられていてもよい。
制御部220は、上述の機構部230を制御する。制御部220において、CPU225は、RAM222をメインメモリ及びワークエリアとして使用する。CPU225は、ROM221に格納された各種制御プログラムをRAM222へ読み出して実行することによって機構部230を制御する。システムバス228は、アドレスバス及びデータバスを有する。制御部220内の各構成要素は、システムバス228に接続されているため、システムバス228を介して他の構成要素にアクセス可能である。
ホストインタフェース(IF)部224は、ホストPC210との間で描画データ、制御データ等のデータをやり取りするためのインタフェースである。ホストIF部224において圧縮データとして受信された描画データは、RAM222に格納される。CPU225は、ホストIF部224で受信された圧縮データを描画データに伸張し、当該描画データをRAM222に格納する。DMA制御部223は、CPU225からの指示に応じて、RAM222内の描画データをASIC226に転送する。パネルIF部227は、プリンタ本体に設けられた表示パネル部を用いてユーザによって入力された設定及び指示を、当該表示パネル部から受信するインタフェースとして機能する。また、パネルIF部227は、表示パネル部の表示装置に操作画面等を表示するためのデータを当該表示パネル部に送信するインタフェースとしても機能する。なお、表示パネル部には、液晶ディスプレイ等の表示装置と、ハードキー、当該表示装置上に設けられたタッチパネル等の入力装置とが備わっている。
CPU225及びASIC226は、ホストIF部224を介して入力された制御データ及び描画データに基づいて、機構部230内のレーザスキャナ系234を駆動する。CPU225は、給紙・搬送系232及び作像系233を制御して、各種プリントシーケンスを実行する。また、CPU225は、センサ系231を駆動して、給紙・搬送系232及び作像系233を制御するために必要なセンサ情報を得る。
ASIC226は、上述の各種のプリントシーケンスが実行される際に、CPU225からの指示に応じて、機構部230に設けられた各モータの制御バイアス、現像バイアス等についての高圧電源制御を行う。また、ASIC226は、後述するように、色変換処理、ガンマ補正処理、ハーフトーン処理、量子化誤差演算処理、量子化誤差補正処理、PWM処理等を行う。なお、CPU225の機能の一部又は全てはASIC226において実行されてもよいし、逆にASIC226の機能の一部又は全てがCPU225において実行されてもよい。また、プリンタ10に別の専用ハードウェアを設け、当該専用ハードウェアにCPU225及びASIC226の機能の一部を実行させてもよい。
<プリンタ10及びホストPC210における処理>
次に、図3(a)を参照して、ホストPC210、並びにプリンタ10内のCPU225、ASIC226、及びレーザスキャナ系234において実行される処理について説明する。
文書作成ソフトウェア、図形描画ソフトウェア等の、ホストPC210において実行中のアプリケーション301は、印刷用の描画データ及び制御データを生成すると、生成したデータをプリンタドライバ上のPDL変換部302へ送信する。描画データは、例えば、印刷対象の画像の画素値(「階調値」とも称する。)及び属性情報を含むデータである。当該属性情報は、例えば、画像の種類(文字データ、グラフィクスデータ及びイメージデータ)を識別するための情報である。制御データは、例えば、印刷に使用される記録材のサイズ設定、印刷部数を含むデータである。PDL変換部302は、描画データを圧縮データに変換し、変換後のデータと制御データとを含むPDLデータを生成するとともに、生成した当該PDLデータをプリンタ10へ送信する。
プリンタ10のCPU225は、ホストPC210から送信されたPDLデータを、ホストIF部224を介して受信する。CPU225は、受信した当該PDLデータに対し、レンダラ303及び制御情報生成部304の機能に基づいて所定の処理を施した後、処理後のデータをRAM222へ一時的に格納する。CPU225は、制御プログラムを実行して、レンダラ303及び制御情報生成部304の機能を実現する。
具体的には、レンダラ303は、受信されたPDLデータに含まれる圧縮データを描画データへと伸張し、それをRAM222に格納する。本実施形態において、当該描画データ内の階調値は、RGB色空間で表現されたRGBデータである。RAM222に格納された描画データは、DMA制御部223による制御に応じてASIC226へ送信される。また、制御情報生成部304は、受信されたPDLデータに含まれる制御データから、ASIC226において用いられる制御情報を生成する。制御情報生成部304は、生成した制御情報をASIC226へ送信する。加えて、制御情報生成部304は、ASIC226によって実行される処理に必要となる他の制御情報を、ROM221から取り出して、PDLデータに含まれる制御データから生成された制御情報とともにASIC226へ送信する。なお、ROM221に格納された制御情報には、例えば、色変換テーブル、ガンマ補正テーブル、ハーフトーンテーブル、フィルタテーブル等が含まれる。
ASIC226で受信された制御情報は、色変換処理部305、ガンマ補正部306、ハーフトーン処理部307、及び、量子化誤差処理部308に供給される。また、ASIC226で受信された描画データ(RGB色空間で表現された階調値R,G,B)は、入力信号として色変換処理部305へ供給される。色変換処理部305は、入力信号である階調値R,G,Bを、CMYK色空間で表現された階調値C1,M1,Y1,K1に変換する。さらに、色変換処理部305は、変換後の階調値C1,M1,Y1,K1をガンマ補正部306に出力する。
ガンマ補正部306は、制御情報に含まれる、プリンタの階調−濃度特性を補正するためのガンマ補正テーブルを用いて、階調値C1,M1,Y1,K1の階調−濃度特性を補正した階調値C2,M2,Y2,K2を生成する。ガンマ補正部306は、生成した階調値C2,M2,Y2,K2を、ハーフトーン処理部307及び量子化誤差処理部308へ出力する。
ハーフトーン処理部307は、制御情報に含まれるハーフトーンテーブルを用いて、後述するディザ処理(組織的ディザ処理)によるハーフトーン処理を行うことによって、階調値C2,M2,Y2,K2を、ハーフトーン処理後の階調値C3,M3,Y3,K3へ変換する。さらに、ハーフトーン処理部307は、ハーフトーン処理後の階調値C3,M3,Y3,K3を量子化誤差処理部308に出力する。
量子化誤差処理部308は、後述するように、ガンマ補正部306及びハーフトーン処理部307から入力されたデータに対して、制御情報に含まれるフィルタテーブルを用いた量子化誤差演算処理と量子化誤差補正処理を行う。量子化誤差処理部308は、ガンマ補正部306から入力された階調値C2,M2,Y2,K2と、ハーフトーン処理部307から入力された階調値C3,M3,Y3,K3とから、量子化誤差の補正後の階調値C4,M4,Y4,K4を生成する。量子化誤差処理部308は、生成した階調値C4,M4,Y4,K4をPWM処理部309へ出力する。
PWM処理部309は、入力された階調値C4,M4,Y4,K4を、露光装置24Y,24M,24C,24Kのレーザ発光素子による露光を制御するための露光制御信号Tc,Tm,Ty,Tkへ変換する。この露光制御信号は、1ドット当たりのレーザ発光幅に相当し、PWM処理部309は、入力される階調値に応じて当該レーザ発光幅を決定する。PWM処理部309は、決定した露光制御信号Tc,Tm,Ty,Tkを、露光用の画像データ(PWMデータ)として露光装置24Y,24M,24C,24Kに出力する。露光装置24Y,24M,24C,24Kは、露光制御信号Tc,Tm,Ty,Tkに従って、対応するレーザ発光素子をそれぞれ発光させる。
なお、RGB色空間及びCMYK色空間の階調値は任意のビット数で表現でき、プリンタ10の色再現範囲の調整等を行うために、各階調値のビット数は増減され得る。本実施形態では、それぞれ8ビットで表現した場合について一例として説明する。
また、図3(a)を参照して上述したASIC226における処理は、図3(b)に示すようにホストPC210側で実現されてもよい。例えば、上述の図3(a)のASIC226で実行される機能を実現するためのソフトウェアを、ホストPC210上で実行可能にすればよい。図3(b)において、PDL変換部302は、量子化誤差処理部308による量子化誤差補正処理後の階調値C4,M4,Y4,K4を、描画データとしてPDLデータに変換する機能を有する。ホストPC210は、当該PDLデータをプリンタ10へ送信する。プリンタ10においてレンダラ310は、ホストPC210から受信されたPDLデータを元の階調値C4,M4,Y4,K4に変換して、それをPWM処理部309に出力する。
<プリンタ10におけるトナー像の形成>
次に、図4を参照して、プリンタ10において、露光制御信号Tc,Tm,Ty,Tkを使用してトナー像がどのように形成されるかについて説明する。ここでは、露光装置24Kを用いてK色のトナー像を形成する場合について説明するが、露光装置24C,24M,24Yをそれぞれ用いてC色、M色及びY色のトナー像を形成する場合も同様である。図4の(a)及び(b)はそれぞれ、露光装置24Kによって感光ドラム22Kの表面を露光制御信号Tkに従って露光した後の電位分布(表面電位41)と露光制御信号Tkとを、一例として示している。
まず、露光装置24Kによる露光が開始される前に、注入帯電器23Kは、感光ドラム22Kの表面を一定の電位VDに帯電させる。ここではVDを−400Vとする。感光ドラム22Kの帯電後、PWM処理部309が、露光制御信号Tkを露光装置24Kに入力する。露光制御信号Tkは、露光装置24Kによる露光状態を制御するための信号であり、図4(b)に示すように、HiとLoとの間で変化するパルス信号42で表される。露光装置24Kは、露光制御信号TkがHiの場合、レーザ発光素子を点灯(発光)させることで、感光ドラム22Kの表面にレーザ光を照射する。一方で、露光装置24Kは、露光制御信号TkがLoの場合、レーザ発光素子を消灯させる。このように、露光装置24Kは、入力された露光制御信号Tk(パルス信号42)に応じて、露光状態をON状態とOFF状態との間で切り替える。
感光ドラム22Kの表面において、露光装置24Kからレーザ光が照射された(露光された)領域は、表面電位の絶対値がVDから低下する。露光による表面電位の変化量は、露光装置24Kによる露光される時間(露光時間T)に依存する。また、露光装置24Kによる露光時間Tは、露光制御信号TkにおけるHiの継続時間に相当する。感光ドラム22Kの表面が十分な時間、露光された場合には、感光ドラム22Kの表面における露光された領域の表面電位は、VDからVLに変化する。ここではVLを−100Vとする。
露光装置24Kによる露光の結果、感光ドラム22Kの表面において、表面電位41の絶対値が現像バイアスVdevを下回ると、現像器26Kによる現像によって、K色のトナーが付着する。即ち、表面電位41の絶対値が現像バイアスVdevを下回った領域においては、潜像がトナーで現像されることで、トナー像が形成される。ここでは、Vdevを−250Vとする。感光ドラム22Kの表面に付着するトナーの量は、表面電位41と現像バイアスVdevとの差分に依存し、当該差分が大きいほど多くの付着するトナー量が多くなる。図4(a)の43は、形成されたトナー像の一例であり、表面電位41と現像バイアスVdevとの差分に対応する量のトナーによってトナー像が形成されることを示している。
また、図4では、露光制御信号Tkによる露光時間T(パルス信号42におけるHiの継続時間)に応じた露光によって、感光ドラム22Kの表面電位41がどのように変化するのかを示している。露光装置24Kのレーザ発光素子はパルス信号42に応じてレーザ光を発光するため、感光ドラム22Kに照射されるレーザ光の光量は、パルス信号42(即ち、露光時間T)と対応する。感光ドラム22Kに照射されるレーザ光の光量が大きくなるほど、感光ドラム22Kの表面において、より広い領域の電位が変化する。
しかし、図4に示すように、露光後の感光ドラム22Kの表面電位41の分布は、露光装置24Kによって照射されるレーザ光の光量(パルス信号42に対応)とは一致せず、露光制御信号Tkに相当するパルス信号42をガウシアン形状で近似した分布となる。感光ドラム22Kが有するこのような特性に起因して、感光ドラム22Kの表面にレーザ光を照射したにもかかわらず、トナー像が形成されない場合が起こりうるという問題がある。以下では、図4を参照しながら、この問題についてより詳しく説明する。
図4(b)において、T=1.0は、600dpiのプリンタによって1ドットを形成する場合に対応する。また、T=0.5,0.25,0.125,2.0は、それぞれ当該プリンタによって0.5,0.25,0.125,2.0ドットを形成する場合に対応する。これらの図4(b)に示す各露光時間Tに対応して、図4(a)に示すように感光ドラム22Kの表面電位が変化することで、感光ドラム22Kの表面に静電潜像が形成される。ここで、現像器26Kによる現像によって静電潜像が実際に現像されてトナー像が形成されるのは、上述したように、感光ドラム22Kの表面電位41の絶対値が現像バイアスVdevを下回っている領域である。
図4に示す例では、T=0.5以上、即ち、0.5ドット以上に対応した露光時間Tで感光ドラム22Kの表面を露光した場合にのみ、表面電位41の絶対値が現像バイアスVdevの絶対値を下回る。その結果、露光された領域にトナー像43が形成されている。一方で、T=0.25以下、即ち、0.25ドット以下に対応した露光時間Tで感光ドラム22Kの表面を露光した場合には、表面電位41の絶対値が現像バイアスVdevの絶対値を下回らない。その結果、図4(b)に示すように、露光された領域の静電潜像(図4の44)は現像されず、当該領域にトナー像が形成されない。
このように、感光ドラム22Kの表面にトナー像を形成するためには、感光ドラム22Kの表面電位の絶対値が現像バイアスVdevの絶対値を下回るのに十分な時間、感光ドラム22Kにレーザ光を連続的に照射する必要がある。従って、PDLジョブデータに含まれる描画データ(画像データ)に基づいて画像形成を行う際には、プリンタ10におけるこのような露光特性を考慮する必要がある。
ここで、上述したハーフトーン処理部307によってハーフトーン処理が施された画像データに基づいてトナー像を形成する場合、当該ハーフトーン処理による量子化誤差に起因して、その品質が劣化する可能性がある。この量子化誤差に伴う品質劣化を補償するために、量子化誤差処理部308は、ハーフトーン処理が施される前後の画像データに基づいて補正データを生成し、生成した補正データを用いて、ハーフトーン処理が施された画像データを補正する。ところが、後述するように、プリンタ10のこのような露光特性に依存して、生成した補正データによる量子化誤差の補正効果が十分に得られず、感光ドラム22Kに対してトナー像が適切に形成されない現象が起こりうる。
そこで、本実施形態では、量子化誤差の補正効果が十分に得られるように、ハーフトーン処理が施された入力画像データに対する補正データを生成する。具体的には、量子化誤差処理部308が、入力画像データと、ハーフトーン処理が施された入力画像データとの差分を評価して量子化誤差データを生成するとともに、生成したデータに適切なハーフトーン処理を施すことで補正データを生成する。さらに、量子化誤差処理部308は、生成した補正データを用いて、ハーフトーン処理が施された入力画像データを補正する。
<ハーフトーン処理部307及び量子化誤差処理部308の構成>
次に、図5を参照して、ハーフトーン処理部307及び量子化誤差処理部308の構成例について説明するとともに、それらによって実行される処理の概略を説明する。以下では主としてK色に関する処理について説明するが、他のC色、M色、Y色に関する処理も同様である。
(ハーフトーン処理部307)
ハーフトーン処理部307は、第1の量子化処理部5011を有する。第1の量子化処理部5011は、ガンマ補正部306から入力される画像データ(K2)に対して、組織的ディザ法によるハーフトーン処理(第1のハーフトーン処理)を行って、第1のハーフトーン画像データ(K3)を生成する。第1の量子化処理部5011は、生成した第1のハーフトーン画像データを、量子化誤差処理部308に対して出力する。
ここで、「ハーフトーン処理」とは、第1の階調数の画像データを、当該第1の階調数よりも少ない第2の階調数の画像データに変換する処理をいう。本明細書では、このような「ハーフトーン処理」を「量子化処理」とも称する。
(量子化誤差処理部308)
量子化誤差処理部308は、量子化誤差演算部502、及び量子化誤差補正部503を有する。量子化誤差演算部502は、第1のフィルタ処理部5021、第2のフィルタ処理部5022、及び差分演算部5023を有する。
第1のフィルタ処理部5021は、ハーフトーン処理部307によって生成された第1のハーフトーン画像データ(K3)の注目画素と、当該注目画素近傍の所定の画素群に含まれる画素とについて、画素値の総和を算出する。一方で、第2のフィルタ処理部5022は、ガンマ補正部306からの入力画像データ(K2)の注目画素と、当該注目画素近傍の所定の画素群に含まれる画素とについて、画素値の総和を算出する。なお、第1及び第2のフィルタ処理部5021、5022は、注目画素に対応して何れも同一の範囲内の画素、即ち、注目画素と当該注目画素近傍の同一の画素群に含まれる画素とを、演算対象の画素とする。このように、第1及び第2のフィルタ処理部5021、5022はそれぞれ、有限インパルス応答フィルタとして構成される。
第1及び第2のフィルタ処理部5021、5022による演算結果は、何れも差分演算部5023に入力される。ここで、差分演算部5023は、差分評価手段の一例として機能する。差分演算部5023は、第1のフィルタ処理部5021による演算結果と、第2のフィルタ処理部5022による演算結果との差分を評価することで、ハーフトーン処理に伴う量子化誤差(ハーフトーン量子化誤差)を検出する。ここで、第1のフィルタ処理部5021における演算に使用される、ハーフトーン処理部307によって生成された第1のハーフトーン画像データ(K3)は、入力画像データ(K2)から階調数が削減されている。このため、差分演算部5023では、第1及び第2のフィルタ処理部5021、5022のそれぞれから入力されるデータの階調数が異なることを考慮して、それらの差分を評価する必要がある。
そこで、差分演算部5023は、後述するように、第1及び第2のフィルタ処理部5021、5022のそれぞれの演算結果を正規化して、正規化後の値の差分を算出する。差分演算部5023は、算出した差分値を、ハーフトーン量子化誤差として量子化誤差補正部503に出力する。
量子化誤差補正部503は、第2の量子化処理部5031、及び出力演算部5032を有する。第2の量子化処理部5031は、差分演算部5023から入力されたハーフトーン量子化誤差を、適切な量子化幅で量子化して、当該量子化後の値を出力演算部5032に出力する。ここで、第2の量子化処理部5031に入力されるハーフトーン量子化誤差は、プラス及びマイナスの値をとりうるため、第2の量子化処理部5031が出力する量子化値も、プラスの値だけでなくマイナスの値もとりうる。
出力演算部5032は、第2の量子化処理部5031による処理結果を用いて、ハーフトーン処理部307よって生成された第1のハーフトーン画像データを補正して、補正後の画像データを、出力画像データとしてPWM処理部309に出力する。ここで、出力演算部5032は、第2の量子化処理部5031の出力がプラスの量子化値である場合、第1のハーフトーン画像データの階調値に対して当該量子化値に応じた加算処理を行う。一方で、出力演算部5032は、第2の量子化処理部5031の出力がマイナスの量子化値である場合、第1のハーフトーン画像データの階調値に対して当該量子化値に応じた減算処理を行う。これにより、出力演算部5032は、第1のハーフトーン画像データに含まれる量子化誤差を補正する。
このように、本実施形態では、入力画像データ(K2)と、第1のハーフトーン画像データ(K3)とに基づき、まず、量子化誤差演算部502がハーフトーン量子化誤差を算出する。量子化誤差補正部503は、算出されたハーフトーン量子化誤差をそのまま用いるのではなく、当該ハーフトーン量子化誤差を適切に量子化した値を用いて、第1のハーフトーン画像データ(K3)を補正する。量子化誤差補正部503は、ハーフトーン量子化誤差の補正後のデータを、第2のハーフトーン画像データ(K4)として出力する。
これにより、ハーフトーン処理部307によるハーフトーン処理に伴って生じる量子化誤差を安定して補正することができ、プリンタ10において、より適切なハーフトーン処理が実行可能となる。以下では、図5に示すハーフトーン処理部307、量子化誤差演算部502、及び量子化誤差補正部503において実行される処理について、より詳細に説明する。
<ハーフトーン処理部307による処理>
まず、図6〜図8を参照して、ハーフトーン処理部307による処理内容について説明する。ハーフトーン処理部307に入力された入力画像データ(K2)は、第1の量子化処理部5011に与えられる。第1の量子化処理部5011は、各画素が0〜255の整数の画素値からなる、グレースケールの256階調の入力画像データを、各画素が0、1及び2の整数の画素値からなる、3階調の第1のハーフトーン画像データに変換する。入力画像データについては、白色は画素値0、黒色は画素値255によって表現される。また、第1のハーフトーン画像データについては、白色は画素値0、黒色は画素値2によって表現される。なお、後述するように、量子化誤差処理部308が第1のハーフトーン画像データ(K3)の量子化誤差を補正して出力する第2のハーフトーン画像データ(K4)も、3階調の画像データとなる。
本実施形態では、第1及び第2のハーフトーン画像データと、PWM処理部309よって出力される露光制御信号Tkとは、同一の階調数(=3)で表現されるものとする。つまり、PWM処理部309は、各画素について、第2のハーフトーン画像データにおける0、1及び2の階調値に対応して、露光装置24Kの1ドット当たりのレーザ発光幅をそれぞれ0%、50%及び100%にする露光制御信号Tkを生成する。
なお、本実施形態では、256階調のグレースケールの画像データを、1画素当たり3階調で表現された第1のハーフトーン画像データに変換する例について説明しているが、これとは異なる階調数で表現されたハーフトーン画像データに変換してもよい。また、当然ながら、グレースケール(K色)の画像データだけでなく、Y色、M色及びC色のそれぞれの画像データについて同様の処理を実行することによって、カラー画像データに対してもハーフトーン処理を実行可能である。
ここで、図6に示すハーフトーンテーブルの一例を参照して、第1の量子化処理部5011によって実行される、当該ハーフトーンテーブルを用いたディザ処理によるハーフトーン処理(量子化)の具体例について説明する。ハーフトーンテーブルには、入力画像データ内の各画素のディザ処理を実行する際に使用すべき閾値に関する情報が含まれている。図6に示すように、ハーフトーンテーブルには、閾値番号テーブル600及び閾値テーブル610が含まれる。閾値番号テーブル600及び閾値テーブル610は、例えば、CPU225の制御情報生成部304によって生成され、ハーフトーン処理部307(第1の量子化処理部5011)に対して制御情報として提供される。
閾値番号テーブル600は、入力画像データに含まれる各画素と、各画素の画素値の量子化に使用すべき閾値Th1,Th2とを対応付けるためのテーブル(5×5の行列)である。ここで、入力画像データに含まれる各画素の画素値は行列形式で表現され、入力画像データ内の各画素は行番号及び列番号によって特定される。閾値番号テーブル600には、入力画像データ内の行番号及び列番号によって特定される画素に対して使用すべき2個の閾値Th1,Th2に対応する閾値番号(0〜4の整数)が規定されている。また、閾値テーブル610には、閾値番号テーブル600に含まれる各閾値番号に対応する閾値Th1,Th2が規定されている。本実施形態では、256階調の入力画像データを3階調のハーフトーン画像データに量子化するため、各画素について2個1組の閾値Th1,Th2が使用される。なお、図6に示すように、本実施形態ではTh1<Th2としている。
第1の量子化処理部5011は、閾値番号テーブル600を参照して、入力画像データに含まれる各画素を注目画素として、当該注目画素の行番号及び列番号に基づいて閾値番号を決定する。さらに、第1の量子化処理部5011は、閾値テーブル610を参照して、決定した閾値番号に対応する閾値Th1,Th2を、当該注目画素について使用すべき閾値として決定する。
具体的には、第1の量子化処理部5011は、入力画像データ内の注目画素の行番号及び列番号を、閾値番号テーブル600の行及び列のサイズに相当する5でそれぞれ割った剰余に応じて、閾値番号テーブル600における行及び列を選択する。例えば、第5行の画素については、第0行の画素と同一の閾値を使用し、第6行の画素については、第1行の画素と同一の閾値を使用する。列についても同様に、例えば、第5列の画素については、第0列の画素と同一の閾値を使用し、第6列の画素については、第1列の画素と同一の閾値を使用する。このように、第1の量子化処理部5011は、入力画像データに対して、図6に示す閾値番号テーブル600(によって特定される閾値Th1,Th2)が、5行ごと、5列ごとに繰り返し適用されることになる。
第1の量子化処理部5011は、入力画像データ内の注目画素について、その画素値を2個の閾値Th1,Th2とそれぞれ比較して、量子化後の画素値(ハーフトーン画素値)を決定し、量子化誤差処理部308に出力する。具体的には、第1の量子化処理部5011は、注目画素の画素値が、閾値Th1未満である場合には「0」を、閾値Th1以上で、かつ、閾値Th2未満である場合には「1」を、閾値Th2以上である場合には「2」を、ハーフトーン画素値として決定して出力する。
図6に示すように、閾値番号テーブル600は、閾値番号0〜4が規定された、5個の画素に対応する5個の要素から成るブロック601を最小単位として、同一のブロックが繰り返し敷き詰められた形式となっている。閾値番号テーブル600に含まれるブロック601内で、1要素(画素)ずつ階調を変化させて、面積率を変化させることによって、ハーフトーン処理後の画像データにおいてより多くの階調表現が可能になる。本実施形態では、プリンタ10は、1画素当たり3階調を表現可能であるため、閾値番号テーブル600を用いたハーフトーン処理によって、5×2+1=11階調を表現することができる。つまり、ブロック601のサイズが大きいほど、ハーフトーン処理による量子化幅(量子化のステップサイズ)が小さくなるため、より多くの階調数を表現することができる。ただし、ハーフトーン処理の対象となる入力画像が、ブロック601のサイズよりも大きな周期で変化する画像である場合には、ハーフトーン処理の結果、その入力画像の解像度を維持することはできないことに留意されたい。
次に、図7を参照して、第1の量子化処理部5011の動作の一例について説明する。図7は、第1の量子化処理部5011に入力される画像データの一例を示しており、当該画像データには平坦部とエッジ部とが含まれている。図7において(a)は、入力画像データに含まれる各画素の画素値を示しており、(b)は、画素記号71〜76を用いて、(a)の入力画像データを視覚的に示している。
例えば、第1行、第2列の画素P1は、画素値が「83」であり、その行番号及び列番号を5で割った剰余は、それぞれ「1」及び「2」である。このため、第1の量子化処理部5011は、閾値番号テーブル600を参照して、当該画素について使用する閾値番号として「0」を得る。さらに、第1の量子化処理部5011は、閾値テーブル610を参照して、閾値番号「0」に対応する閾値Th1=13、Th2=38を得るとともに、得られた閾値と画素値「83」とを比較して、ハーフトーン画素値として「2」を得る。
また、例えば、第0行、第7列の画素P2は、画素P1と同様、画素値が「83」である。しかし、その行番号及び列番号を5で割った剰余は、それぞれ「0」及び「2」であるため、閾値番号として閾値番号テーブル600から「4」が得られる。従って、第1の量子化処理部5011は、閾値テーブル610を参照して、閾値番号「4」に対応する閾値Th1=217、Th2=247を得るとともに、得られた閾値と画素値「83」とを比較して、ハーフトーン画素値として「0」を得る。
以上のように、第1の量子化処理部5011が、入力画像データに含まれるすべての画素について、上述のようなディザ処理によるハーフトーン処理を行った結果、図7に示す入力画像データから、図8に示す第1のハーフトーン画像データが得られる。ここで、図8において(a)は、当該画像データに含まれる各画素の画素値を示しており、(b)は、画素記号81〜83を用いて、(a)の画像データを視覚的に示している。このように、第1の量子化処理部5011によるハーフトーン処理によって、図7に示した256階調の入力画像データは、図8に示すように1画素当たり3階調(0,1,2)で表現された第1のハーフトーン画像データに変換される。
なお、本実施形態では、ブロック601に含まれる閾値番号に対応する閾値Th1,Th2を用いて、ブロック601によって規定される繰り返し周期でディザ処理を行う場合について説明しているが、これと異なる繰り返し周期でディザ処理を行ってもよい。また、ディザ処理による画像データの変換後の階調数は3に限らず、異なる階調数であってもよい。
<量子化誤差演算部502による処理>
次に、図7〜図11を参照して、量子化誤差処理部308の量子化誤差演算部502による処理内容について説明する。第1の量子化処理部5011によるハーフトーン処理によって得られた第1のハーフトーン画像データ(図8)は、量子化誤差処理部308に入力される。量子化誤差処理部308において、入力された第1のハーフトーン画像データは、量子化誤差演算部502内の第1のフィルタ処理部5021と、量子化誤差補正部503内の出力演算部5032とに与えられる。また、量子化誤差処理部308には、第1のハーフトーン画像データに加えて、ガンマ補正部306から入力画像データ(図7)が入力される。当該入力画像データは、量子化誤差演算部502内の第2のフィルタ処理部5022に与えられる。
(第1のフィルタ処理部5021)
第1のフィルタ処理部5021は、入力された第1のハーフトーン画像データ(図8)内の各画素を注目画素として、図9(a)に示すように、注目画素を含むフィルタ領域(注目領域)90内の画素の画素値の総和を計算する。フィルタ領域90には、注目画素と当該注目画素の近傍の4個の画素との、5個の画素が含まれる。第1のフィルタ処理部5021は、第1のハーフトーン画像データの注目画素に対して規定されるフィルタ領域90内の画素について、画素値の総和を算出することで、第1のハーフトーン画像データに対するフィルタ処理を行う。
本実施形態では、第1のフィルタ処理部5021において使用するフィルタ領域90が、第1の量子化処理部5011において使用するハーフトーンテーブルのブロック601と対応するようにする。具体的には、行方向及び列方向のそれぞれについて、第1の量子化処理部5011で各画素に対して用いた閾値の繰り返し周期(ブロック601のサイズ)と、フィルタ領域90のサイズとが等しくなるように、フィルタ領域90のサイズ及び形状を設定する。これにより、行方向及び列方向におけるそれぞれについて、第1のフィルタ処理部5021のフィルタ次数が、ハーフトーン処理に用いた閾値の繰り返し周期の整数倍に設定される。第1のフィルタ処理部5021は、ハーフトーン周期の画素のオンオフを除去するフィルタとして機能する。なお、ハーフトーン処理後に、ハーフトーン周期のオンオフが出てこない又はオンオフのみの出力で表現されないハーフトーン処理であれば、第1のフィルタ処理部5021を省略することが可能となる。
ただし、例えば、図8における第0行、第0列の画素P4を注目画素とした場合、図9(a)に示すフィルタ領域90内に処理対象のハーフトーン画像データの画素が含まれないことがある。このような場合には、第1のフィルタ処理部5021は、図9(b)に示すように、ハーフトーン画像データの外部に仮想的な画素を追加する。また、第1のフィルタ処理部5021は、ハーフトーン画像データの端部の列及び行を中心とした折り返し処理によって、当該追加した画素に画素値を与える。
図9(b)では、図8の左上部分のハーフトーン画像データ(実線部分)に対して、折り返し画像データ(破線部分)を追加した例を示している。例えば、ハーフトーン画像データの外部の仮想的な画素91bには、ハーフトーン画像データの端部に位置する画素91に対して対称となる位置の画素91aの画素値を使用する。同様に、ハーフトーン画像データの外部の仮想的な画素92bには、ハーフトーン画像データの端部に位置する画素P1に対して対称となる位置の画素92aの画素値を使用する。このようにして、第1のフィルタ処理部5021は、例えば、ハーフトーン画像データ(図8)において第0行、第0列の画素P1を注目画素とした場合には、図9(b)に示すフィルタ領域90に含まれる画素の画素値についての総和を計算する。
第1のフィルタ処理部5021は、ハーフトーン画像データ(図8)内のすべて画素をそれぞれ注目画素として、フィルタ領域90に含まれる画素の画素値の総和を計算する。即ち、第1のフィルタ処理部5021は、第1の量子化処理部5011によって生成された第1のハーフトーン画像データに対して、フィルタ領域90に対応するフィルタ係数によるフィルタ処理を実行する。これにより、第1のフィルタ処理部5021に入力されたハーフトーン画像データ(図8)が平滑化されて、図10(a)に示す画像データ(第1のフィルタ処理画像データ)が得られる。第1のフィルタ処理部5021は、得られた第1のフィルタ処理画像データを差分演算部5023に出力する。
(第2のフィルタ処理部5022)
第2のフィルタ処理部5022は、ガンマ補正部306から入力された画像データ(図7)内のすべての画素をそれぞれ注目画素として、図9(a)に示すフィルタ領域90に含まれる画素の画素値の総和を計算する。第2のフィルタ処理部5022は、処理対象の画像データが、第1の量子化処理部5011によって生成されたハーフトーン画像データではなく、ガンマ補正部306からの入力画像データである点を除いて、第1のフィルタ処理部5021と同様の処理を行う。即ち、第2のフィルタ処理部5022は、第1の量子化処理部5011によるハーフトーン処理が行われる前の入力画像データに対して、フィルタ領域90に対応するフィルタ係数によるフィルタ処理を実行する。これにより、入力画像データ(図7)が平滑化されて、図10(b)に示す画像データ(第2のフィルタ処理画像データ)が得られる。第2のフィルタ処理部5022は、得られた第2のフィルタ処理画像データを差分演算部5023に出力する。この第2のフィルタ処理部5022は、ハーフトーンによって発生した周期の画像のオンオフであって、ブロック601よりも高周波の画像のオンオフを高精度に抽出できるように、その抽出したい高周波成分を元画像データから除去するフィルタとして機能する。なお、元の画像データ中に高周波成分が含まれていなければ、第2のフィルタ処理部5022を省略することができる。
(差分演算部5023)
差分演算部5023は、第1及び第2のフィルタ処理部5021、5022のそれぞれから入力された第1及び第2のフィルタ処理画像データの差分を評価して、その評価結果を差分データ(量子化誤差データ)として第2の量子化処理部5031に出力する。当該量子化誤差データには、ハーフトーン画像データ(図8)に各画素について、ハーフトーン処理部307によるハーフトーン処理によって生じたハーフトーン量子化誤差を示す誤差値が含まれる。
ここで、第1のフィルタ処理画像データの元となる第1のハーフトーン画像データの階調数は3(最小値0、最大値2)である一方で、第2のフィルタ処理画像データの元となる入力画像データの階調数は256(最小値0、最大値255)である。即ち、差分演算部5023における演算対象の2個の画像データは、階調数と画素値の最大値とがそれぞれ異なっている。このため、差分演算部5023は、第1及び第2のフィルタ処理画像データを単純に比較することはできない。そこで、差分演算部5023は、第1及び第2のフィルタ処理画像データにおける1画素当たりの最大値が同一となるように、それぞれの画像データに含まれる各画素の画素値を、以下のように正規化する。
例えば、差分演算部5023は、第1及び第2のフィルタ処理画像データに含まれる画素値の最大値を255に正規化した上で、それらの画像データ間の画素ごとの画素値の差分値を計算する。なお、本実施形態では、一例として当該最大値255としているが、この値は任意に定めることが可能である。即ち、差分演算部5023では、入力画像データと第1のハーフトーン画像データ(第1及び第2のフィルタ処理画像データ)との階調数を合わせたうえで、それらの画像データの画素値の差分を評価すればよい。
まず、第1のフィルタ処理画像データに含まれる各画素値の最大値は、第1のフィルタ処理部5021による5画素分の加算に起因して10(=2×5)となっているため、各画素値を1/2倍し、かつ255倍、即ち、25.5倍(=255÷2÷5)する。一方、第2のフィルタ処理画像データに含まれる各画素値の最大値は、第2のフィルタ処理部5022による5画素分の加算に起因して1275(=255×5)となっているため、各画素値を1/5倍する。その結果、第1及び第2のフィルタ処理画像データに含まれる画素値の最大値は、いずれも255に正規化される。
その後、差分演算部5023は、第2のフィルタ処理画像データに含まれる各画素の画素値から、第1のフィルタ処理画像データに含まれる、対応する画素の画素値を減算することで、2個の画像データの差分値を計算する。この差分値は、ハーフトーン量子化誤差に相当し、第1及び第2のフィルタ処理画像データにおける正規化後の画素値が0〜255の整数値であるため、−255〜255の整数値をとりうる。差分演算部5023による処理の結果、図11(a)に示すような量子化誤差データが得られる。この量子化誤差データは、ハーフトーン処理部307(第1の量子化処理部5011)において実行されたハーフトーン処理(量子化)に起因した誤差を示すデータに相当する。なお、図11(b)は、画素記号121〜125を用いて、図11(a)に示す量子化誤差データを視覚的に示している。
図11に示す量子化誤差データにおいて、任意の画素の値(ハーフトーン量子化誤差)がプラスの値である場合、当該画素において、第2のフィルタ処理画像データの画素値が第1のフィルタ処理画像データの画素値よりも大きいことを表している。このことは、当該画素の濃度が、ハーフトーン処理に起因して、入力画像の濃度よりも薄くなっていることを意味している。一方で、図11に示す量子化誤差データにおいて、任意の画素の値(ハーフトーン量子化誤差)がマイナスの値である場合、当該画素において、第1のフィルタ処理画像データの画素値が第2のフィルタ処理画像データの画素値よりも大きいことを表している。このことは、当該画素の濃度が、ハーフトーン処理に起因して、入力画像の濃度よりも濃くなっていることを意味している。
また、量子化誤差データ(図11)内の各画素の絶対値は、その周辺の画素を考慮した、入力画像と当該入力画像に対するハーフトーン処理後の画像との濃度差を示している。本実施形態では、各画素について、量子化誤差データの値に応じて、量子化誤差補正部503において、ハーフトーン処理後の画像(第1のハーフトーン画像データ)の濃度を補正して、第2のハーフトーン画像データを生成する。即ち、各画素について、量子化誤差データの値がプラスの値である場合には、第1のハーフトーン画像データに対して加算処理を行うことで、濃度を高くする補正を行えばよい。一方で、各画素について、量子化誤差データの値がマイナスの値である場合には、第1のハーフトーン画像データに対して減算処理を行うことで、濃度を低くする補正を行えばよい。
なお、差分演算部5023は、第2フィルタ処理画像データの画素値から第1フィルタ処理画像データの画素値を減算するのではなく、逆に、第1フィルタ処理画像データの画素値から第2フィルタ処理画像データの画素値を減算してもよい。何れの場合にも、本実施形態の効果を得ることは可能である。
図11(a)に示す量子化誤差データにおいて、入力画像(図7)において濃度の変化がない平坦部の画素では、画素値(ハーフトーン量子化誤差)の絶対値が小さく、かつ、一定の値が隣接した画素間で連続していることがわかる。その一方で、濃度が高い周期で変化するエッジ部付近の画素では、そのエッジ部分に沿って、絶対値で30を超える比較的大きな負の値と正の値とが交互に出現している。このように、第1のハーフトーン画像データでは、入力画像データと比較して、濃度が大幅に濃くなっている部分と大幅に薄くなっている部分とが、エッジ部分に沿って、概ね周期的に表れることがわかる。このような画像データに基づく画像を表示又は印刷すると、エッジ部分に沿った濃度の変動が、ジャギー又は細線の途切れとして表れる可能性がある。
例えば、図11に示すように、画素P3については、画素値(ハーフトーン量子化誤差)が41であり、27以上のプラスの値(画素記号121)となっている。このことは、当該画素において、第1のフィルタ処理画像データの画素値よりも、第2のフィルタ処理画像データの値の方が大きいことを示しており、第1のハーフトーン画像よりも入力画像の方が濃度が高いことを示している。実際に、入力画像データ(図7)における画素P3の濃度と比較すると、ハーフトーン処理部307によるハーフトーン処理後の第1のハーフトーン画像データ(図8)では、画素P3において白抜けが発生していることがわかる。
ここで、本実施形態に係るプリンタ10では、入力画像データの階調数は256であるのに対して、ハーフトーン処理部307によるハーフトーン処理後の出力画像データ(第1のハーフトーン画像データ)の階調数は11となる。従って、入力画像が、異なる画素間で濃度が均一である平坦画像である場合、ハーフトーン処理による量子化に起因して出力画像に生じる誤差の最大値(絶対値)は、12.75(=255÷10÷2)と計算することができる。即ち、どのような入力画像においても、ハーフトーン処理に伴う量子化誤差は、最大±12.75程度は発生する可能性がある。一方で、濃度が高い周期で変化しているエッジ部分が入力画像に存在する場合、当該エッジ部分においてハーフトーン処理に起因して生じる量子化誤差の最大値(絶対値)は、12.75を超える可能性がある。
そこで、本実施形態では、後述するように、量子化誤差補正部503は、ハーフトーン処理によるハーフトーン量子化誤差の絶対値が所定値以下(本実施形態では13以下)である画素については、平坦部とみなす。さらに、量子化誤差補正部503は、かかる画素については、差分演算部5023によって得られたハーフトーン量子化誤差を0に置き換える。これにより、ハーフトーン処理によるハーフトーン量子化誤差を補正する際に、画像の低周波領域(平坦部)と高周波領域(エッジ部又は細線部)とを効率的に分離して、ハーフトーン量子化誤差を適切に補正することが可能になる。なお、上記の所定値は、一義的に定まるものではなく、入力画像の階調数、ハーフトーン処理によって表現可能な階調数等に基づいて、適宜変更可能である。
以上のようにして、量子化誤差演算部502は、第1及び第2のフィルタ処理部5021、5022によって得られる第1及び第2のフィルタ処理データ間の差分値を、差分演算部5023によって画素ごとに算出する。これにより、量子化誤差演算部502は、ハーフトーン処理部307によるハーフトーン処理に起因したハーフトーン量子化誤差を求めることができ、求めたハーフトーン量子化誤差を量子化誤差補正部503に対して出力する。
また、第1のハーフトーン画像データに対し、ハーフトーン処理で用いた閾値の周期(ブロック601の周期)に応じた平滑化を行い、ハーフトーン処理周期以外の周期の濃度を高精度に抽出することができる。また、入力画像データに対してハーフトーン処理で用いた閾値の周期(ブロック601の周期)に応じた平滑化を行い、ハーフトーン処理周期よりも高周波の成分を元画像データから抽出してしまうという誤抽出を防止することができる。そして、これら2つの濃度の差分を取ることにより、ハーフトーン処理に起因する濃度変動量を求め、該濃度変動量を量子化誤差とすることにより、網点線数や解像度によらず、簡易な方法で、精度良く量子化誤差を検出することができる。
<量子化誤差補正部503による処理>
次に、図12〜図17を参照して、量子化誤差処理部308の量子化誤差補正部503による処理内容について説明する。なお、他の図面についても併せて適宜参照しながらその処理内容を説明する。量子化誤差補正部503には、ハーフトーン処理部307によって生成された入力画像データ(図7)と、量子化誤差演算部502(差分演算部5023)によって生成された量子化誤差データ(図11)とが入力される。量子化誤差補正部503において、入力画像データは出力演算部5032に、量子化誤差データは第2の量子化処理部5031に、それぞれ与えられる。
(第2の量子化処理部5031)
第2の量子化処理部5031は、差分演算部5023から入力された量子化誤差データに対して、画素ごとに誤差拡散処理によるハーフトーン処理(第2のハーフトーン処理)を行う。図12は、第2の量子化処理部5031の構成を示すブロック図であり、入力される量子化誤差データに対して、誤差拡散処理によるハーフトーン処理(量子化処理)を行うための構成を示している。第2の量子化処理部5031は、入力された量子化誤差データ内の各画素を注目画素として、すべての画素について誤差拡散処理を行って、ハーフトーン補正データを生成し、生成したデータを出力演算部5032に対して出力する。以下では、図12を参照しながら、第2の量子化処理部5031によって行われる誤差拡散処理について詳しく説明する。
第2の量子化処理部5031は、誤差補正部131、量子化処理部132、及び誤差蓄積部133を有する。第2の量子化処理部5031に入力された量子化誤差データは、まず、誤差補正部131に与えられる。誤差補正部131には、量子化誤差データに含まれる各画素の画素値(ハーフトーン量子化誤差)が順に入力される。誤差補正部131は、ハーフトーン量子化誤差が入力されるごとに、当該入力値に対応する画素を注目画素として、誤差拡散処理を実行する。誤差補正部131は、後述するように、注目画素の周辺に位置する画素の量子化処理部132による量子化誤差値を、誤差蓄積部133が有する誤差バッファから読み出して、読み出した値に基づいて計算した補正値を当該注目画素の入力値に加算する。この処理の結果、第2の量子化処理部5031のハーフトーン処理(量子化処理)に伴う量子化誤差が低減されることになる。誤差補正部131から出力された値は、量子化処理部132及び誤差蓄積部133にそれぞれ入力される。
量子化処理部132は、誤差補正部131からの入力値に量子化を行って得られた量子化値を、第2の量子化処理部5031の出力値として出力演算部5032に出力する。ここで、差分演算部5023から第2の量子化処理部5031に入力される量子化誤差データに含まれる各画素のハーフトーン量子化誤差は、上述したように、プラスの値だけでなくマイナスの値もとりうる。このため、第2の量子化処理部5031は、入力された量子化誤差データを、誤差補正部131による補正後に量子化処理部132によって量子化すると、量子化値としてプラスの値だけでなくマイナスの値も出力しうる。本実施形態では、量子化処理部132は、プラスの値及びマイナスの値を含む量子化値として、5値(−2,−1,0,1,2)のうちの何れかの値を出力するものとする。
量子化処理部132は、量子化値の数(量子化数)よりも1少ない数の閾値を予め保持しておく。本実施形態では、量子化値が5値であるので、量子化処理部132は4個の予め定められた閾値(ETh1,ETh2,ETh3,ETh4)を保持しておく。なお、これらの閾値は、CPU225(制御情報生成部304)から制御情報として提供されてもよい。例えば、ETh1=−192,ETh2=−64,ETh3=64,ETh4=192とする。量子化処理部132は、入力値と、予め保持している閾値ETh1〜ETh4とを比較することによって、当該入力値を量子化した量子化値を決定する。
ここで、図13のフローチャートを参照して、量子化処理部132における量子化処理の手順について説明する。なお、量子化処理部132は、ラスタ順に注目画素をシフトさせながら、誤差補正部131からの出力値が入力されるごとに図13のフローチャートに示す処理を注目画素について実行する。
まず、量子化処理部132は、注目画素についての入力値とETh1とを比較する(S1301)。当該比較の結果、量子化処理部132は、入力値がETh1よりも低い場合、注目画素についての量子化値として「−2」を出力する一方で(S1302)、ETh1以上である場合、次に当該入力値とETh2とを比較する(S1303)。当該比較の結果、量子化処理部132は、入力値がETh2よりも低い場合、注目画素についての量子化値として「−1」を出力する一方で(S1304)、ETh2以上である場合、次に当該入力値とETh3とを比較する(S1305)。当該比較の結果、量子化処理部132は、入力値がETh3よりも低い場合、注目画素についての量子化値として「0」を出力する一方で(S1306)、ETh3以上である場合、次に当該入力値とETh4とを比較する(S1307)。当該比較の結果、量子化処理部132は、入力値がETh4よりも低い場合、注目画素についての量子化値として「1」を出力する一方で(S1308)、ETh4以上である場合、注目画素についての量子化値として「2」を出力する(S1309)。このように量子化処理を実行することによって、量子化処理部132は、プラス値だけでなくマイナス値も含む量子化値を出力する。
誤差蓄積部133は、ラスタ順に注目画素をシフトさせながら、注目画素について、量子化処理部132による量子化処理に伴って生じる量子化誤差を計算して、得られた量子化誤差値を、誤差補正部131による参照用の誤差バッファに蓄積させる。誤差蓄積部133には、量子化処理部132からの出力値と、量子化処理部132に対する入力値(誤差補正部131からの出力値)とが、画素ごとに入力される。誤差蓄積部133は、量子化処理部132の出力値を255/2倍して正規化することで、当該出力値の最大値(絶対値)を、誤差補正部131による補正前の最大値(絶対値)255に合わせる。なお、量子化処理部132の出力値を255/2倍するのは、当該出力値が上述のように−2〜2の整数値であり、最大値(絶対値)が2であるためである。誤差蓄積部133は、さらに、量子化処理部132の正規化後の出力値と、量子化処理部132に対する入力値との差分を計算し、得られた差分値を、注目画素についての量子化誤差値として誤差バッファに蓄積させる。
誤差補正部131は、ラスタ順に注目画素をシフトさせながら、量子化誤差データ(図11)に含まれる、注目画素についてのハーフトーン量子化誤差が、差分演算部5023から入力されるごとに、入力されたハーフトーン量子化誤差を補正して出力する。具体的には、まず、誤差補正部131は、誤差蓄積部133の誤差バッファから、注目画素の周辺に位置する複数の画素の量子化誤差値を読み出して、読み出した値に所定の分配係数を乗算して得られた値の総和を計算する。これによって、第2の量子化処理部5031における誤差拡散処理が実現される。
ここで、図14は、本実施形態において注目画素1400についての誤差拡散処理に用いられる周辺画素1401〜1404の位置関係と、それらの周辺画素の量子化誤差値に適用される分配係数の一例を示している。誤差補正部131は、注目画素1400に対して、図14に示す位置関係にある画素1401〜1404に対応する量子化誤差値を、誤差蓄積部133の誤差バッファからそれぞれ読み出して、読み出したそれぞれの値に、図14に示す分配係数を乗算する。具体的には、誤差補正部131は、画素1401〜1404に対応する量子化誤差値に対して、分配係数として、それぞれ1/16、5/16、3/16、7/16を乗算する。さらに、誤差補正部131は、画素1401〜1404についてそれぞれ得られた乗算値の総和を計算し、得られた値を、量子化処理部132における量子化処理に伴って生じる量子化誤差の補正値として使用する。
具体的には、誤差補正部131は、第2の量子化処理部5031に入力された量子化誤差データに含まれる、注目画素のハーフトーン量子化誤差に対して、計算された補正値を加算する。これにより、当該量子化誤差データを、量子化処理部132において量子化する際に生じる量子化誤差が、誤差拡散により予め補正される。誤差補正部131は、注目画素についての補正後のハーフトーン量子化誤差を、量子化処理部132に対して出力する。なお、当該出力値は、上述のように誤差蓄積部133に対しても与えられる。その結果、補正後のハーフトーン量子化誤差を、出力演算部5032における第1のハーフトーン画像データの補正に使用することで、ハーフトーン処理によって生じた量子化誤差を十分に低減することが可能になる。
このように、第2の量子化処理部5031は、量子化誤差データに対して誤差拡散処理によるハーフトーン処理を施すことで、第1のハーフトーン画像データの補正用データとして、ハーフトーン補正データを生成する。第2の量子化処理部5031は、生成したハーフトーン補正データを、出力演算部5032に提供する。
図15(a)は、図11(a)に示すハーフトーン量子化誤差の絶対値が13以下である画素については、当該誤差を0に置き換えて、第2の量子化処理部5031で誤差拡散処理による量子化したデータを示している。また、図15(b)は、画素記号161〜165を用いて、図15(a)に示す各画素値を視覚的に示している。図15に示すように、例えば画素P3については、第2の量子化処理部によって、プリンタ10にとって適切な濃度の補正値に量子化することができる。
(出力演算部5032)
出力演算部5032は、第2の量子化処理部5031によって生成されたハーフトーン補正データ(図15)を用いて、第1の量子化処理部5011において生成された第1のハーフトーン画像データ(図8)を補正する。具体的には、出力演算部5032は、第1のハーフトーン画像データに対して、ハーフトーン補正データを画素ごとに加算することで第1のハーフトーン画像データを補正して、補正後の画像データを第2のハーフトーン画像データとして出力する。ハーフトーン補正データの画素値がプラスの値である場合には、当該補正によって、第1のハーフトーン画像データにおける対応する画素の画素値は増加して、当該画素の濃度が高くなる。一方、ハーフトーン補正データの画素値がマイナスの値である場合には、当該補正によって、第1のハーフトーン画像データにおける対応する画素の画素値は減少して、当該画素の濃度が低くなる。
なお、第1の量子化処理部5011から入力される第1のハーフトーン画像データと、第2の量子化処理部5031から入力されるハーフトーン補正データとで、各画素値の最大値が異なる場合には、各データに対して、最大値を同一にする正規化処理を行う。本実施形態では、第1のハーフトーン画像データとハーフトーン補正データとで、各画素値の最大値は一致しているため(何れも絶対値で2)、正規化処理は行う必要はない。
<量子化誤差補正部503による処理結果>
図16は、第1のハーフトーン画像データ(図8)とハーフトーン補正データ(図15)とを画素ごとに加算処理して得られた、第2のハーフトーン画像データを示している。図16において(a)は、第2のハーフトーン画像データに含まれる各画素の画素値を示しており、(b)は、画素記号171〜173を用いて、(a)の画像データを視覚的に示している。
ここで、本実施形態の有効性を検討するために、第2の量子化処理部5031による処理を行わず、量子化誤差演算部502からの量子化誤差データを出力演算部5032における補正にそのまま使用した場合の結果を、図16に対する比較例として図17に示す。本比較例では、量子化誤差演算部502から出力された量子化誤差データ(図11)が、出力演算部5032に直接入力される。出力演算部5032は、入力された量子化誤差データを補正データとして用いて、第1のハーフトーン画像データを補正して、補正後のハーフトーン画像データを出力する。図17において(a)は、第2の量子化処理部5031による処理を行わない場合の、補正後のハーフトーン画像データに含まれる各画素の画素値を示しており、(b)は、画素記号181〜186を用いて、(a)の画像データを視覚的に示している。
なお、本比較例では、第1のハーフトーン画像データは3階調(最小0,最大2)のデータであり、補正データとして用いる量子化誤差データは256階調(最小0,最大255)のデータである。即ち、第1のハーフトーン画像データと補正データとで、各画素値の最大値が一致していないため、当該最大値を揃えるための正規化処理を行う必要がある。そこで、本比較例では、出力演算部5032は、補正処理の前に、第1のハーフトーン画像データに含まれる各画素値を255/2倍することで、各画素値の最大値を255に正規化して、当該最大値を補正データに含まれる画素値の最大値と同一にする。
まず、図17(比較例)に示す補正後のハーフトーン画像の画素のうち、第1のハーフトーン画像(図8)において入力画像(図7)よりも濃度が薄くなっている画素(例えば画素P3)では、ハーフトーン量子化誤差に相当する値が加算されている。一方で、第1のハーフトーン画像(図8)において入力画像(図7)よりも濃度が濃くなっている画素(例えばP6)では、ハーフトーン量子化誤差に相当する値が減算されている。なお、第1のハーフトーン画像データ(図8)の画素値が0であり、かつ、ハーフトーン量子化誤差がマイナスの値である画素(例えば画素P5)では、図17(a)ではマイナスの値(画素P5では「−78」)となっている。このように、補正データを用いた補正後の画素値がマイナスの値になった場合には、図17(b)に示すように、当該画素の画素値を0に置き換えている。
図17に示す補正後のハーフトーン画像データに基づいて、プリンタ10においてトナー像を形成する場合、出力演算部5032において用いる量子化誤差データ(補正データ)に含まれる値に依存して、トナー像が形成されない現象が起こりうる。図4を参照して説明したように、感光ドラム22Kの表面を露光してトナー像を形成するためには、感光ドラム22Kの表面に、十分な時間、レーザ光を連続的に照射する必要がある。ここで、図11に示す量子化誤差データ(補正データ)において、画素P3の画素値(補正値)は「41」である。この補正値を1ドットのレーザ発光幅に換算すると、当該補正値の最大値255で規格化して、0.16ドット(=41/255)となる。また、画素P3の周辺に位置する画素のうち、プラスの補正値を有する画素については、その補正値は「17〜50」である。この補正値を1ドットのレーザ発光幅に換算すると、0.07〜0.2ドットとなる。
しかし、図4を参照して説明したように、0.25ドット以下となる露光時間T、感光ドラム22Kの表面にレーザ光を連続的に照射したとしても、その表面電位の絶対値が現像バイアスの絶対値を下回るまで変化することはなく、トナー像は形成されない。このため、0.25ドット以下のレーザ発光幅に対応する補正値で第1のハーフトーン画像データを補正したとしても、当該補正値を適用した画素について、補正値が画像として再現されず(トナー像として表れず)、補正効果が得られないことになる。即ち、量子化誤差演算部502で生成された量子化誤差データを、そのまま第1のハーフトーン画像データに対する補正データとして用いた場合、当該補正データから、補正すべき画素は検出可能である一方で、十分な補正効果が得られないおそれがある。
本比較例の図17(b)に示す補正後のハーフトーン画像では、画素記号185、186で示す画素については、0.25ドット以下のレーザ発光幅に対応するため、プリンタ10の画像形成においてトナー像は形成されない。このため、図17に示す補正後のハーフトーン画像データに基づいて画像形成を行ったとしても、第1のハーフトーン画像(図8)に含まれるエッジ部分に沿って生じているジャギーが低減されず、画質を向上させることが難しい。
一方で、本実施形態の図16を参照すると、第2のハーフトーン画像の画素のうち、例えば画素P3(画素値=1)では、第1のハーフトーン画像データ(図8)の画素値(=0)から増加している。これは、ハーフトーン補正データ(図15)における対応する画素の画素値(=1)がプラスの値であるためである。即ち、当該画素P3では、出力演算部5032における補正によって濃度が濃くなっている。一方で、例えば画素P6(画素値=0)では、第1のハーフトーン画像データ(図8)の画素値(=1)から減少している。これは、ハーフトーン補正データ(図15)においける対応する画素の画素値(=−1)がマイナスの値であるためである。即ち、画素P6では、出力演算部5032における補正によって濃度が薄くなっている。
このように、図8と図16とを比較すると、第1のハーフトーン画像(図8)において、エッジ部分に沿って生じているジャギーが、第2のハーフトーン画像(図16)では低減されていることが確認できる。
以上説明したように、本実施形態では、入力画像データの局所平均と第1のハーフトーン画像データの局所平均との差分を算出することで、ハーフトーン処理による量子化誤差を示す量子化誤差データを生成する。これにより、ハーフトーン処理による量子化誤差に起因して画像の品質劣化が生じうる画素を高精度に検出することができる。さらに、生成した量子化誤差データに対して誤差拡散処理によってハーフトーン処理(量子化処理)を施して、ハーフトーン補正データを生成する。このようにして生成したハーフトーン補正データを使用することで、画像形成装置における画像形成に対してより適した補正値に変換される。その結果、第1のハーフトーン画像に生じているハーフトーン処理による量子化誤差をより適切に補正できるとともに、画像形成装置における出力画像の品質劣化を防ぐことが可能になる。
[第2の実施形態]
次に、本発明の第2の実施形態について説明する。なお、以下では、第1の実施形態と異なる部分を中心として説明することによって説明を簡略化する。第1の実施形態では、量子化誤差データに対して第2の量子化処理部5031で誤差拡散処理によってハーフトーン処理することで、ハーフトーン補正データを生成している。しかし、量子化誤差データには、プラスの誤差値(プラスデータ)とマイナスの誤差値(マイナスデータ)とが含まれるため、誤差値の符号が異なる隣接した画素間で、誤差拡散処理によって誤差値が打ち消し合ってしまう可能性がある。即ち、誤差拡散処理において、量子化に十分な誤差が蓄積されない可能性がある。
従って、このような誤差拡散処理に伴う誤差値の打ち消しを低減することができれば、第1のハーフトーン画像データに生じた量子化誤差を、より適切に補正可能なハーフトーン補正データを生成できると考えられる。そこで、本実施形態に係る量子化誤差処理部308は、入力される量子化誤差データのプラスデータとマイナスデータとを分離して、分離されたデータに対してそれぞれ誤差拡散処理によるハーフトーン処理を行うことを特徴とする。さらに、ハーフトーン処理が施されたデータを加算処理してハーフトーン補正データを生成することで、第1のハーフトーン画像データに対する補正効果をさらに向上させる。
まず、図18を参照して、本実施形態に係るハーフトーン処理部307及び量子化誤差処理部308の構成例について説明するとともに、それらによって実行される処理の概略を説明する。なお、ハーフトーン処理部307及び量子化誤差演算部502は、第1の実施形態(図5)と同様であるため、以下では説明を省略する。
第1の実施形態(図5)と比較すると、本実施形態の量子化誤差補正部503は、第2の量子化処理部5031に代えて、分離処理部1901、第2の量子化処理部1902、第3の量子化処理部1903、及び加算処理部1904を備えている。分離処理部1901は、量子化誤差演算部502から入力される量子化誤差データに含まれる、プラスの符号を有するプラスデータとマイナスの符号を有するマイナスデータとを分離する。また、分離処理部1901は、分離後のプラスデータ及びマイナスデータをそれぞれ第2及び第3の量子化処理部1902、1903に出力する。これにより、本実施形態では、量子化誤差データに含まれるプラスデータ及びマイナスデータに対して別々に量子化処理を施すことが可能になる。即ち、分離処理部1901は、量子化誤差データに含まれるプラスの画素値とマイナスの画素値とを分離して、当該プラスの画素値を含む第1の量子化誤差データと、当該マイナスの画素値を含む第2の量子化誤差データとを生成する分離手段として機能する。
分離処理部1901は、量子化誤差演算部502から入力された量子化誤差データに含まれる各画素について、画素値の正負を判定する。分離処理部1901は、画素データがプラスデータであると判定した画素(画素値>0)については、当該画素データを第2の量子化処理部1902へ、0値のデータを第3の量子化処理部1903へ、それぞれ出力する。一方で、分離処理部1901は、画素データがマイナスデータであると判定した画素(画素値<0)については、0値のデータを第2の量子化処理部1902へ、当該画素データを第3の量子化処理部1903へ、それぞれ出力する。なお、分離処理部1901は、画素データが0値のデータであると判定した画素(画素値=0)については、第2及び第3の量子化処理部1902、1903のそれぞれに0値のデータを出力する。
図19は、図11に示す量子化誤差データに含まれるプラスデータ及びマイナスデータを分離処理部1901で分離して得られた画像データの一例を示している。図19において、(a)及び(c)はプラスデータを分離して得られた画像データ(第1の量子化誤差データ)であり、(b)及び(d)はマイナスデータを分離して得られた画像データ(第2の量子化誤差データ)である。なお、量子化誤差データに含まれる画素のうち、その画素値の絶対値が13以下の画素については、当該画素値を0に置き換えて、分離処理部1901に入力している。また、図19において(c)及び(d)は、画素記号201〜205を用いて、(a)及び(b)に示す各画素の画素値を視覚的に示している。
第2及び第3の量子化処理部1902、1903は、入力された画像データに対してそれぞれ誤差拡散処理を施して出力する。本実施形態では、第2の量子化処理部1902はプラス側の3個の量子化値(0,1,2)の誤差拡散処理、第3の量子化処理部1903はマイナス側の3個の量子化値(−2,−1,0)の誤差拡散処理を用いるものとする。このため、第2及び第3の量子化処理部1902、1903の構成は、第1の実施形態における第2の量子化処理部5031(図12)と同様である。量子化誤差データは、上述したように、−255〜255の画素値を含む。このため、第2の量子化処理部1902には、プラス側の256階調(0〜255)の画像データが入力され、第3の量子化処理部1903には、マイナス側の256階調(−255〜0)の画像データが入力される。第2及び第3の量子化処理部1902、1903は、入力された画像データを、それぞれプラス側及びマイナス側の3階調の画像データに量子化して出力する。
図20は、図19に示す画像データに対して第2及び第3の量子化処理部1902、1903によって量子化処理を行って得られた画像データである。図20において(a)及び(b)は、図19(a)に示す画像データ及び図19(b)に示す画像データにそれぞれ第2及び第3の量子化処理部1902、1903によってそれぞれ誤差拡散処理を施して得られた画像データである。また、図20において(c)及び(d)は、画素記号201〜205を用いて、(a)及び(b)に示す各画素値を視覚的に示している。
ここで、第1の実施形態において第2の量子化処理部5031によって得られたハーフトーン補正データ(図15)と、本実施形態において第2及び第3の量子化処理部1902、1903によって得られた画像データ(図20)とを比較する。まず、量子化誤差データ(図11)においてプラス及びマイナスの値が混在していたエッジ部分付近の画素値の多くが、第1の実施形態のハーフトーン補正データ(図15)では0に量子化されていることがわかる。これは、エッジ部付近のプラス及びマイナスの画素値(誤差値)が、第2の量子化処理部5031の誤差拡散処理に起因して、相互に打ち消し合うことがあるためである。
一方で、本実施形態では、量子化誤差データをプラスデータ及びマイナスデータに分離してそれぞれ誤差拡散処理によって量子化した場合、図20に示すように、0以外の値に量子化されている画素の数が、第1の実施形態(図15)より多いことがわかる。これは、量子化誤差データをプラスデータとマイナスデータとに分離することによって、プラスの誤差値とマイナスの誤差値とが誤差拡散処理によって打ち消されることがなく、それぞれ独立して量子化が行われるためである。このため、本実施形態によれば、第2及び第3の量子化処理部1902、1903による誤差拡散処理によって、量子化誤差データに含まれる画素値(誤差値)が0以外の値に量子化されやすくなる。
再び図18を参照すると、加算処理部1904は、第2の量子化処理部1902の出力値と第3の量子化処理部1903の出力値とを、画素ごとに加算処理することで、ハーフトーン補正データを生成する。加算処理部1904は、生成したハーフトーン補正データを、出力演算部5032に入力する。出力演算部5032は、入力されたハーフトーン補正データを用いて、第1の量子化処理部5011において生成された第1のハーフトーン画像データ(図8)を補正する。具体的には、第1の実施形態と同様、出力演算部5032は、第1のハーフトーン画像データに対して、ハーフトーン補正データを画素ごとに加算することで第1のハーフトーン画像データを補正する。補正後の画像データは、第2のハーフトーン画像データとして出力される。
図21は、出力演算部5032において、第1のハーフトーン画像データ(図8)と、加算処理部1904から出力されたハーフトーン補正データとを、画素ごとに加算処理して得られた第2のハーフトーン画像データを示している。図21において(a)は、本実施形態に係る第2のハーフトーン画像データに含まれる各画素の画素値を示しており、(b)は、画素記号2201〜2203を用いて、(a)の画像データを視覚的に示している。
ここで、第1の実施形態において得られた第2のハーフトーン画像データ(図16)と、本実施形態において得られた第2のハーフトーン画像データ(図21)とを比較して、本実施形態の有効性について検討する。
上述したように、第1の実施形態では、第2及び第3の量子化処理部1902、1903による量子化処理において、量子化誤差データに含まれる誤差値が相互に打ち消されて量子化される画素が生じうる。このため、図16に示す第2のハーフトーン画像データを参照すると、特に、画素P3周辺では、画素P3においてハーフトーン補正データ(図15)に含まれる補正値が加算されているのみである。一方で、図21に示す、本実施形態に係る第2のハーフトーン画像データを参照すると、画素P3周辺では、画素P7、P8及びP9において、加算処理部1904から出力されたハーフトーン補正データに含まれる補正値が加算又は減算されている。このように、本実施形態では、第1の実施形態と比較して、より高解像度の補正処理を実行することが可能である。
以上説明したように、本実施形態では、入力画像データに対するハーフトーン処理に起因した量子化誤差を示すデータを、プラスデータとマイナスデータとに分離して、それぞれ独立に量子化処理を施すことによって、ハーフトーン補正データを生成する。これにより、第1の実施形態と比較して、ハーフトーン処理が行われた第1のハーフトーン画像データを、より高解像度に補正することが可能となる。特に、第1のハーフトーン画像データに対して、補正によって濃度を濃くすべき画素と、濃度を薄くすべき画素とに対して、別々に補正データを生成することで、ハーフトーン処理に起因した量子化誤差をより適切に補正可能である。
なお、本実施形態では、第2及び第3の量子化処理部1902、1903が、それぞれ入力されたデータをプラス側及びマイナス側の階調値に量子化する誤差拡散処理を行っているが、その両方で共通の誤差拡散処理を行うことも可能である。この場合、分離処理部1901によって分離されたプラスデータ及びマイナスデータをそれぞれ別々のバッファに格納しておく。さらに、それらのデータを共通の誤差拡散処理回路で順に量子化処理する。ただし、マイナスデータについては、誤差拡散処理の前に、データの極性をマイナスからプラスに反転させ、誤差拡散処理の後に、再びデータの極性をプラスからマイナスに反転させればよい。このような処理を用いた場合にも、上述の効果と同等の処理を実現し、同等の効果を得ることが可能である。
また、第2及び第3の量子化処理部1902、1903では、それぞれ異なるハーフトーン処理を行ってもよい。例えば、第2の量子化処理部1902では誤差拡散処理を行い、第3の量子化処理部1903では組織的ディザ法による処理を行ってもよい。なお、組織的ディザ法を用いる場合には、ディザ処理に必要な閾値に関する情報を、制御情報としてCPU225の制御情報生成部304から量子化誤差処理部308に与えればよい。
[第3の実施形態]
第1及び第2の実施形態では、ハーフトーン処理(第1の量子化)に基づく量子化誤差データを、第1のハーフトーン画像データに対する補正データとしてそのまま使用するのではなく、第2の量子化を行って得られたデータを補正データとして使用する。これに対して、本実施形態では、量子化誤差データを用いて第1のハーフトーン画像データを補正した後に、補正後のデータに対して第2の量子化を行うことを特徴としている。
まず、図22を参照して、本実施形態に係るハーフトーン処理部307及び量子化誤差処理部308の構成例について説明するとともに、それらによって実行される処理の概略を説明する。本実施形態では、第1の実施形態(図5)と比較して、量子化誤差演算部502から出力される出力される量子化誤差データが、量子化誤差補正部503において、第2の量子化処理部2302に入力される前に、まず出力演算部2301に入力される。なお、ハーフトーン処理部307及び量子化誤差演算部502は、第1の実施形態(図5)と同様であるため、以下では説明を省略する。
出力演算部2301は、量子化誤差演算部502から入力される量子化誤差データで、第1のハーフトーン画像データに含まれる、ハーフトーン処理に起因した量子化誤差を補正する。具体的には、出力演算部2301は、量子化誤差データを第1のハーフトーン画像データに画素ごとに加算することで、第1のハーフトーン画像データを補正する。ここで、第1のハーフトーン画像データは、3階調(最小0,最大2)のデータであり、量子化誤差データは、256階調(最小0,最大255)のデータである。
このため、出力演算部2301は、第1のハーフトーン画像データの各画素値を、その最大値が255となるように255/2倍することで、当該第1のハーフトーン画像データを正規化する。これにより、第1のハーフトーン画像データと量子化誤差データとの階調数をいずれも階調数を256に揃える。その後、出力演算部2301は、両データの加算処理を行う。
出力演算部2301による補正処理(加算処理)によって、図17に示す補正後のハーフトーン画像データが得られる。かかるハーフトーン画像データに基づいて、プリンタ10においてトナー像を形成する場合、第1の実施形態において説明したように、補正値が画像として再現されず、十分な補正効果が得られない可能性がある。即ち、トナー像が十分に形成できない可能性がある。
そこで、本実施形態では、出力演算部2301から出力される補正後のハーフトーン画像データを、第2の量子化処理部2302に入力して量子化処理を行う。本実施形態において、第2の量子化処理部2302による第2の量子化における量子化値の数(量子化数)は、第1の量子化処理部5011による第1の量子化における量子化数と同一に設定する。例えば、第1の量子化処理部5011が量子化数3、即ち3値(0,1,2)で量子化を行う場合、第2の量子化処理部2302も同様に、量子化数3、即ち3値(0,1,2)で量子化を行う。
これにより、第1の量子化による量子化後の画像データの階調性を、量子化誤差補正部503による補正前及び補正後で保つことができるとともに、本来は補正の必要のない平坦画像についてはその粒状性を保つことができる。なお、本実施形態では、第2の量子化処理部2302は、誤差拡散処理による量子化処理を行うため、その構成は第1の実施形態における第2の量子化処理部5031(図12)と同様である。
図23(a)は、出力演算部2301から出力される、図17に示す補正後のハーフトーン画像データに対して、第2の量子化処理部2302によって量子化処理を行って得られた画像データである。また、図23(b)は、画素記号241〜243を用いて、(a)に示す各画素値を視覚的に示している。図23において、例えば、画素P3の画素値は、第2の量子化処理部2302による量子化によって「0」から「1」に変化しており、ハーフトーン処理部307によるハーフトーン処理に起因した量子化誤差が補正されている。
以上のように、本実施形態によれば、第1の実施形態と同様、ハーフトーン処理によって生じる量子化誤差を安定的に補正することができるとともに、ジャギー、細線の途切れ等の画像劣化を低減することができる。
[第4の実施形態]
第2の実施形態では、ハーフトーン処理(第1の量子化)によって生じるハーフトーン量子化誤差に対する補正データに、第2及び第3の量子化処理部1902、1903において誤差拡散処理によって量子化(第2の量子化)を行う実施形態について説明した。本実施形態では、第2の実施形態に対する変形例として、第2及び第3の量子化処理部1902、1903における量子化に、組織的ディザ法を用いることを特徴とする。また、本実施形態では、入力画像データに対する第1の量子化を行う第1の量子化処理部5011について、より具体的な構成及び処理手順についても説明する。
本実施形態は、第2の量子化に組織的ディザ法を用いる点と、入力画像データを第1の量子化によって3階調ではなく5階調のハーフトーン画像データに量子化する点を除き、第2の実施形態とほぼ同様である。また、本実施形態においても主としてK色に関する処理について説明するが、他のC色、M色及びY色に関する処理を実行する場合には、K色に関する処理と同様の処理によって実現可能である。以下、第2の実施形態において説明した図18に示す構成に基づいて、ハーフトーン処理部307、量子化誤差演算部502、及び量子化誤差補正部503において実行される処理を順に説明する。
<ハーフトーン処理部307による処理>
まず、図24を参照して、ハーフトーン処理部307に含まれる第1の量子化処理部5011の構成例と、第1の量子化処理部5011によって実行される処理について説明する。本実施形態において、第1の量子化処理部5011は、ガンマ補正部306から入力される、各画素が0〜255の画素値からなるグレースケールの256階調の画像データを、0〜4の5階調の第1のハーフトーン画像データに変換(量子化)する。入力画像データについては、白色は画素値0、黒色は画素値255によって表現される。また、第1のハーフトーン画像データについては、白色は画素値0、黒色は画素値4によって表現される。なお、第2の実施形態と同様、量子化誤差処理部308が第1のハーフトーン画像データの量子化誤差を補正して出力する第2のハーフトーン画像データも、5階調の画像データとなる。
本実施形態では、第1及び第2のハーフトーン画像データと、PWM処理部309よって出力される露光制御信号Tkとは、同一の階調数(=5)で表現されるものとする。つまり、PWM処理部309は、第2のハーフトーン画像データに含まれる各画素について、0、1、2、3及び4の階調値に対応して、露光装置24Kの1ドット当たりのレーザ発光幅を、それぞれ0%、25%、50%、75%及び100%にする露光制御信号Tkを生成する。
なお、本実施形態では、256階調のグレースケールの画像データを、1画素当たり5階調で表現された第1のハーフトーン画像データに変換する例について説明しているが、これとは異なる階調数で表現されたハーフトーン画像データに変換してもよい。また、当然ながら、グレースケール(K色)の画像データだけでなく、Y色、M色及びC色のそれぞれの画像データについて同様の処理を実行することによって、カラー画像データに対してもハーフトーン処理を実行可能である。
図24(a)は、第1の量子化処理部5011の構成例を示している。第1の量子化処理部5011は、閾値読み出し部3001、ハーフトーンテーブルメモリ3002、及び量子化部3003を含む。また、図24(b)及び(c)は、量子化処理部5011が量子化処理(ディザ処理)を行う際に使用するハーフトーンテーブルの一例を示している。ハーフトーンテーブルには、第1の実施形態(図6)と同様、入力画像データ内の各画素のディザ処理を実行する際に使用すべき閾値に関する情報が含まれており、閾値番号テーブル3010及び閾値テーブル3020から構成される。このハーフトーンテーブルは、ハーフトーンテーブルメモリ3002に格納されて、閾値読み出し部3001によって読み出されて、量子化部3003における量子化処理に使用される。なお、ハーフトーンテーブルは、CPU225から、量子化誤差処理部308に対する制御情報として提供される。
図24(b)に示すように、ハーフトーンテーブルに含まれる閾値番号テーブル3010は、閾値番号0〜4が規定された、5個の画素に対応する5個の要素から成るブロック3011を最小単位として、同一のブロックが繰り返し敷き詰められた形式となっている。第2の実施形態と同様、閾値番号テーブル3010に含まれるブロック3011内で、1要素(画素)ずつ階調を変化させて、面積率を変化させることによって、ハーフトーン処理後の画像データにおいてより多くの階調表現が可能になる。
図24(d)は、ハーフトーンテーブルメモリ3002にハーフトーンテーブルが格納された状態の一例を示す。同図に示すように、ハーフトーンテーブルメモリ3002において、閾値番号テーブル3010の0行目のデータが0番地から4番地、1行目のデータが5番地から9番地に格納され、以降の2〜4行目のデータも同様に格納される。また、閾値テーブル3020の0行目のデータが100番地から103番地、1行目のデータが104番地から107番地に格納され、以降の2〜4行目のデータも同様に格納される。
閾値読み出し部3001は、ハーフトーンテーブルメモリ3002から、閾値番号テーブル3010及び閾値テーブル3020を含む閾値データ3004を読み出して、閾値データ3004として量子化部3003へ出力する。量子化部3003は、入力された閾値データ3004に基づいて入力画像データを量子化して、得られた画像データを第1のハーフトーン画像データとして出力する。量子化部3003は、閾値番号テーブル3010のブロック3011を最小単位として、閾値テーブル3020に含まれる、当該ブロック内の閾値番号に対応する閾値を用いて、当該ブロックによって規定される繰り返し周期で入力画像データにディザ処理を施す。これにより、量子化部3003は、入力画像データから第1のハーフトーン画像データを生成して出力する。
(閾値読み出し部3001の処理)
次に、図25を参照して、閾値読み出し部3001について説明する。図25において(a)は、閾値読み出し部3001の構成を示すブロック図であり、(b)は、閾値読み出し部3001によって実行される処理の手順を示すフローチャートである。閾値読み出し部3001は、行番号カウンタ3101、列番号カウンタ3102、読み出しアドレス演算部3103、及び閾値生成部3104を含む。行番号カウンタ3101及び列番号カウンタ3102は、入力画像データにおける、量子化処理の対象となる注目画素を順に特定するための、行番号及び列番号についてのカウンタである。
閾値読み出し部3001における閾値読み出し処理が開始されると、まず、読み出しアドレス演算部3103は、行番号カウンタ3101から行番号を読み出し、読み出した行番号を5で割った剰余を求める(S3101)。次に、読み出しアドレス演算部3103は、列番号カウンタ3102から列番号を読み出し、読み出した列番号を5で割った剰余を求める(S3102)。ここで、S3101で求められる値をMOD(行番号,5)と表記し、S3102で求められる値をMOD(列番号,5)と表記する。
次に、読み出しアドレス演算部3103は、ハーフトーンテーブルメモリ3002において閾値番号テーブル3010が格納された記憶領域を示す、閾値番号テーブルアドレスを計算する(S3103)。図24(d)の場合、閾値番号テーブルアドレスは、以下の式で計算できる。
(閾値番号テーブルアドレス)=MOD(行番号,5)×5+MOD(列番号,5)
次に、読み出しアドレス演算部3103は、上式を用いて計算した閾値番号テーブルアドレスを使用して、ハーフトーンテーブルメモリ3002に格納された閾値番号テーブル3010から閾値番号を読み出す(S3104)。次に、読み出しアドレス演算部3103は、読み出した閾値番号に基づいて、ハーフトーンテーブルメモリ3002において閾値テーブル3020が格納された記憶領域を示す、閾値テーブルアドレスを計算する(S3105)。図24(d)の場合、閾値テーブルアドレスは、以下の式で計算できる。
(閾値テーブルアドレス)=100+(閾値番号)×4
次に、読み出しアドレス演算部3103は、計算した閾値テーブルアドレスを使用して、閾値テーブル3020から閾値Th1〜Th4を読み出す(S3106)。なお、ハーフトーンテーブルメモリ3002において、Th1〜Th4は順に、(閾値テーブルアドレス+0)、(閾値テーブルアドレス+1)、(閾値テーブルアドレス+2)、(閾値テーブルアドレス+3)のアドレスに格納されている。読み出しアドレス演算部3103は、読み出した閾値Th1〜Th4を閾値生成部3104へ出力する。
閾値生成部3104は、読み出しアドレス演算部3103から入力された閾値Th1〜Th4を、閾値データ3004として量子化部3003に出力する(S3107)。次に、閾値読み出し部3001は、入力画像データの1行分の処理が終了したか判定し(S3108)、終了している場合、行番号カウンタ3101をインクリメントすることで更新する(S3109)とともに、列番号カウンタを0にクリアする(S3110)。一方で、入力画像データの1行分の処理が終了していない場合、閾値読み出し部3001は、列番号カウンタをインクリメントすることで更新する(S3111)。
最終的に、閾値読み出し部3001は、入力画像データの全画素の処理が終了したか判定し(S3112)、終了している場合、一連の処理を終了し、終了していない場合、S3101に処理を戻して、S3101〜S3112の処理を再び実行する。
以上の処理によって、入力画像データに含まれる画素のうち、例えば、第5行の画素と第0行の画素とは同一の閾値が適用され、第6行の画素と第1行の画素とは同一の閾値が適用されることになる。また、列についても同様であり、入力画像データに含まれる画素のうち、例えば、第5列の画素と第0列の画素とは同一の閾値が適用され、第6列の画素と第1列の画素とは同一の閾値が適用される。このようにして、図24(b)に示す閾値番号テーブル3010が、入力画像データに含まれる各行及び各列の画素に対して、周期的に適用されることになる。
(量子化部3003の処理)
図26を参照して、量子化部3003によって実行される処理について説明する。第1の量子化処理部5011において量子化が開始されると、量子化部3003は、入力画像データから、注目画素の1画素分の画素値を入力値として読み出して(S3201)、当該入力値を閾値Th1と比較する(S3202)。入力値が閾値Th1未満である場合、量子化部3003は、量子化値として「0」を出力する(S3203)。入力値が閾値Th1以上である場合、量子化部3003は、次に当該入力値を閾値Th2と比較する(S3204)。入力値が閾値Th2未満である場合、量子化部3003は、量子化値として「1」を出力する(S3205)。入力値が閾値Th2以上である場合、量子化部3003は、次に当該入力値を閾値Th3と比較する(S3206)。入力値が閾値Th3未満である場合、量子化部3003は、量子化値として「2」を出力する(S3207)。入力値が閾値Th3以上である場合、量子化部3003は、次に当該入力値を閾値Th4と比較する(S3208)。入力値が閾値Th4未満である場合、量子化部3003は、量子化値として「3」を出力する(S3209)。入力値が閾値Th4以上である場合、量子化部3003は、量子化値として「4」を出力する(S3210)。その後、量子化部3003は、処理を終了する。以上の処理によって、量子化部3003は、4個の閾値Th1〜Th4に基づいて、入力画像データに含まれる各画素値を、5個の量子化値の何れかに量子化する。
図27は、第1の量子化処理部5011に入力される画像データの一例を示しており、当該画像データには平坦部とエッジ部とが含まれている。図27において(a)は、入力画像データを示しており、(b)は、画素記号3301〜3306を用いて、(a)の入力画像データを視覚的に示している。
例えば、第1行、第2列のP1は、入力画像データの画素値が「87」であるため、
MOD(行番号,5)=1、MOD(列番号,5)=2
である。このため、閾値読み出し部3001は、ハーフトーンテーブルメモリ3002の7番地から閾値番号「0」を得る。次に、閾値読み出し部3001は、ハーフトーンテーブルメモリ3002の100〜103番地を参照し、閾値番号「0」に対応する閾値として、Th1=12,Th2=24、Th3=85、Th4=97を得る。量子化部3003は、閾値Th1〜Th4と入力画像データの画素値「87」とを比較し、図26の処理に基づいて量子化値として「3」を得る。
また、例えば、第0行、第7列の画素P2は、画素P1と同様、入力画像データの画素値が「87」である。しかし、
MOD(行番号,5)=0、MOD(列番号,5)=2
であるため、閾値読み出し部3001は、ハーフトーンテーブルメモリ3002の2番地から閾値番号「4」を得る。次に、閾値読み出し部3001は、ハーフトーンテーブルメモリ3002の116〜119番地を参照し、閾値番号「4」に対応する閾値として、Th1=194,Th2=200、Th3=219、Th4=243を得る。量子化部3003は、閾値Th1〜Th4と入力画像データの画素値「87」とを比較し、図26の処理に基づいて量子化値として「0」を得る。
第1の量子化処理部5011は、このようなディザ処理によるハーフトーン処理(量子化処理)を、入力画像データに対して、ブロック3011を最小単位として繰り返し適用することで、第1のハーフトーン画像データを生成する。第1の量子化処理部5011が入力画像データに含まれるすべての画素についてハーフトーン処理を行った結果、図27に示す入力画像データから、図28に示す第1のハーフトーン画像データが得られる。図28において(a)は、第1のハーフトーン画像データを示しており、(b)は、画素記号3401〜3405を用いて、(a)の第1のハーフトーン画像データを視覚的に示している。
本実施形態では、第1の量子化処理部5011によるハーフトーン処理によって、図27に示した256階調の入力画像データは、図28に示すように1画素当たり5階調(最小値0、最大値4)で表現された第1のハーフトーン画像データに変換される。図27に示す入力画像データと図28に示す第1のハーフトーン画像データとを比較すると、例えば、画素P3においてジャギーが発生していることがわかる。このようなジャギーは、第2の実施形態と同様、量子化誤差処理部308において補正される必要がある。
なお、本実施形態では、ブロック3011によって規定される繰り返し周期でディザ処理を行う場合について説明しているが、これと異なる周期でディザ処理を行ってもよい。また、ディザ処理による画像データの変換後の階調数は5に限らず、異なる階調数であってもよい。
<量子化誤差演算部502による処理>
第1の量子化処理部5011から出力された第1のハーフトーン画像データ(図28)は、第2の実施形態と同様、図18に示すように、量子化誤差処理部308に入力され、量子化誤差演算部502及び量子化誤差補正部503に与えられる。また、ガンマ補正部306から出力された入力画像データ(図27)も量子化誤差処理部308に入力され、量子化誤差演算部502に与えられる。量子化誤差演算部502は、入力された入力画像データ(図279と第1のハーフトーン画像データ(図28)とに基づいて、第2の実施形態と同様の処理を実行することで、量子化誤差データを生成する。第1及び第2のフィルタ処理部5021、5022におけるフィルタ処理は、第1の量子化処理部において使用するハーフトーンテーブルのブロック3011と対応するように実行される。また、第1及び第2のフィルタ処理部5021、5022による、処理対象の画像データ端部における折り返し処理についても、第2の実施形態と同様に実行される。量子化誤差演算部502における演算の結果、生成された量子化誤差データは、量子化誤差補正部503に出力される。
<量子化誤差補正部503による処理>
量子化誤差補正部503に入力された量子化誤差データは、図18に示すように、分離処理部1901に与えられる。分離処理部1901は、第2の実施形態と同様、入力された量子化誤差データに含まれる、プラスデータとマイナスデータとを分離して、得られたプラス側及びマイナス側の画像データをそれぞれ第2及び第3の量子化処理部1902、1903に出力する。
図29は、第1のハーフトーン画像データ(図28)に基づいて得られた量子化誤差データに含まれるプラスデータ及びマイナスデータを、分離処理部1901で分離して得られた画像データの一例を示している。図29において(a)及び(c)はプラスデータを分離して得られた画像データ(第1の補正データ)であり、(b)及び(d)はマイナスデータを分離して得られた画像データ(第2の補正データ)である。なお、図29において(c)及び(d)は、画素記号3501〜3505を用いて、(a)及び(b)に示す各画素の画素値を視覚的に示している。
本実施形態において、図18に示す第2及び第3の量子化処理部1902、1903のうち、第2の量子化処理部1902は、第1の量子化処理部5011(図24)と同様の構成を有し、かつ、同様の処理を実行する。ただし、第2の量子化処理部1902は、処理対象のデータが、ガンマ補正部306からの入力画像データではなく量子化誤差データのプラスデータに対応する画像データ(第1の補正データ)である点のみが、第1の量子化処理部5011とは異なる。さらに、第2の量子化処理部1902は、第1の量子化処理部5011において使用されるハーフトーンテーブル(閾値番号テーブル3010及び閾値テーブル3020)と同一のものを用いて、入力された第1の補正データに対する量子化処理を行う。このため、CPU225は、第2の量子化処理部1902に含まれるハーフトーンテーブルメモリ3002には、第1の量子化処理部5011のハーフトーンテーブルメモリ3002に書き込んだデータ(図24(c))と同一のデータを書き込めばよい。
一方で、本実施形態において、第3の量子化処理部1903の構成は、第1の量子化処理部5011及び第2の量子化処理部1902とは若干異なる。図30は、第3の量子化処理部1903の構成を示している。第3の量子化処理部1903は、第1の量子化処理部5011の構成に対して第1及び第2の符号反転部3601、3602が追加された構成を有する。このため、第1の量子化処理部5011と共通する部分については、図30において同一の参照符号を付し、その説明を省略する。
第3の量子化処理部1903は、量子化誤差データのマイナスデータに対応する第2のデータを処理対象のデータとして、量子化処理を行う。即ち、第2の量子化処理部1902に入力される第1の補正データの各画素値が、0又は正の値であるのに対して、第3の量子化処理部1903に入力される第2の補正データの各画素値は、0又は負の値である。第1の符号反転部3601は、入力された第2の補正データに含まれる各画素値の符号を反転させることで、負の画素値を正の画素値に変換する。なお、第1の符号反転部3601は、0の画素値については何らの変換を行わない。これにより、量子化部3003において、第1の量子化処理部5011及び第2の量子化処理部1902において実行される量子化処理と同様の量子化処理を実行することが可能になる。
量子化部3003は、第2の補正データに対して量子化処理を施して、得られたデータを第2の符号反転部3602に出力する。なお、量子化部3003は、第1の量子化処理部5011において使用されるハーフトーンテーブル(閾値番号テーブル3010及び閾値テーブル3020)と同一のものを用いて、第2の補正データに対する量子化処理を行う。このため、CPU225は、第3の量子化処理部1903に含まれるハーフトーンテーブルメモリ3002にも、第1の量子化処理部5011のハーフトーンテーブルメモリ3002に書き込んだデータ(図24(c))と同一のデータを書き込めばよい。最終的に、第2の符号反転部3602は、量子化部3003によって量子化された第2の補正データの各画素値の符号を再度反転させることで、各画素値を0又は負の画素値として出力する。
図31は、図29に示す、量子化誤差データのプラスデータ及びマイナスデータに対応する画像データ(第1及び第2の補正データ)に対して第2及び第3の量子化処理部1902、1903によって量子化処理を行って得られた画像データである。図31において、(a)及び(b)はそれぞれ、図29(a)に示す画像データ及び図29(b)に示す画像データに第2及び第3の量子化処理部1902、1903によってそれぞれ量子化処理を行うことで得られた画像データである。図31において(c)及び(d)は、画素記号3701〜3705を用いて、(a)及び(b)に示す各画素値を視覚的に示している。
図18に示すように、第2及び第3の量子化処理部1902、1903によって量子化された第1及び第2の補正データは、加算処理部1904に入力される。加算処理部1904は、第2の実施形態と同様、第2の量子化処理部1902の出力値と第3の量子化処理部1903の出力値とを、画素ごとに加算処理することで、ハーフトーン補正データを生成する。加算処理部1904は、生成したハーフトーン補正データを、出力演算部5032に入力する。
出力演算部5032は、第2の実施形態と同様、入力されたハーフトーン補正データを用いて、第1の量子化処理部5011において生成された第1のハーフトーン画像データ(図28)を補正する。具体的には、出力演算部5032は、第1のハーフトーン画像データに対して、ハーフトーン補正データを画素ごとに加算することで第1のハーフトーン画像データを補正する。補正後の画像データは、第2のハーフトーン画像データとして出力される。
図32(a)は、第1のハーフトーン画像データ(図28)と、ハーフトーン補正データとを、出力演算部5032において画素ごとに加算処理して得られた第2のハーフトーン画像データを示している。また、図32(b)は、画素記号3801〜3805を用いて、図32(a)を視覚的に示している。例えば、画素P10では、ハーフトーン補正データの画素値(補正値)がプラスの値(=1)であるため、第2のハーフトーン画像データの画素値(=1)は、加算処理により第1のハーフトーン画像データの画素値(=0)から1増加している。また、画素P11では、ハーフトーン補正データの画素値(補正値)がマイナスの値(=−1)であるため、第2のハーフトーン画像データの画素値(=2)は、加算処理により第1のハーフトーン画像データの画素値(=3)から1減少している。
第1のハーフトーン画像(図28)と、本実施形態において第1のハーフトーン画像を補正して得られた第2のハーフトーン画像(図32)とを比較すると、例えば、画素P10においてジャギーが低減されていることがわかる。また、本実施形態では、第1の量子化処理部5011と、第2及び第3の量子化処理部1902、1903とで、何れも同一のハーフトーンテーブルを使用してディザ処理による量子化処理を行っている。このため、量子化誤差補正部503における補正に使用されるハーフトーン補正データは、補正対象の第1のハーフトーン画像と、同様の周期特性を有する。従って、第1の量子化処理部5011によって生成された第1のハーフトーン画像データにおいて、正の画素値が存在する画素の近辺に、ハーフトーン補正データを用いた補正によって、正の画素値が付加されることになる。即ち、補正対象の画素の周辺に、正の画素値を有する画素がまとまって形成される。
上述したように、プリンタ10においてトナー像を形成するためには、感光ドラム22Kの表面を、露光装置24Kによって連続的に十分に露光する必要がある。即ち、ある程度のレーザ発光幅で、感光ドラム22Kの表面における十分な領域を、連続して露光する必要がある。本実施形態によれば、補正対象の画素の周辺に、正の画素値を有する画素をある程度まとまって形成されるように、第1のハーフトーン画像を補正することができる。その結果として、補正後の第2のハーフトーン画像を、感光ドラム22Kの表面にトナー像として形成する場合に、トナー像を安定して形成するのに必要な程度に十分な露光を行うことが可能になる。
以上説明したように、本実施形態によれば、ハーフトーン処理による量子化誤差に起因して画像の品質劣化が生じうる画素を高精度に検出することができる。また、本実施形態では、量子化誤差データに対して組織的ディザ処理によってハーフトーン処理(量子化処理)を施して、ハーフトーン補正データを生成する。このようにして生成したハーフトーン補正データを使用することで、画像形成装置における画像形成に対してより適した補正値に変換される。その結果、第1のハーフトーン画像に生じているハーフトーン処理による量子化誤差をより適切に補正できるとともに、画像形成装置における出力画像の品質劣化を防ぐことが可能になる。
[第5の実施形態]
第4の実施形態では、第1、第2及び第3の量子化処理部5011、1902及び1903が、個別にハーフトーンテーブルメモリ3002を有していた。しかし、第4の実施形態では、第1、第2及び第3の量子化処理部5011、1902及び1903の何れにおいても、使用するハーフトーンテーブル(即ち、ハーフトーンテーブルメモリ3002の記憶内容)は同一であった。そこで、第5の実施形態では、第4の実施形態において各量子化処理部に個別に設けていたハーフトーンテーブルメモリ3002を単一化して、各量子化処理部が単一のハーフトーンテーブルメモリ3002を共通的に参照することを特徴とする。
まず、図33を参照して、本実施形態に係るハーフトーン処理部307及び量子化誤差処理部308の構成例について説明する。なお、図33において、第4の実施形態(図18、図24及び図30)と同様の構成要素については、それらの実施形態と同一の参照符号を付し、その説明を省略する。第4の実施形態では、図24及び図30に示すように、閾値読み出し部3001及びハーフトーンテーブルメモリ3002は、第1、第2及び第3の量子化処理部5011、1902、1903に個別に設けられていた。これに対して、本実施形態では、ハーフトーン処理部307及び量子化誤差処理部308の外部に、単一の閾値読み出し部3001と、単一のハーフトーンテーブルメモリ3002とが設けられている。このため、後述するように、本実施形態では、第1、第2及び第3の量子化処理部5011、1902、1903から、閾値読み出し部3001及びハーフトーンテーブルメモリ3002が省かれている。
閾値読み出し部3001は、第4の実施形態と同様、ハーフトーンテーブルメモリ3002からハーフトーンテーブル(閾値番号テーブル3010及び閾値テーブル3020)を読み出して、読み出したデータを閾値データ3004として出力する。ただし、本実施形態では、第4の実施形態と異なり、閾値読み出し部3001から出力される閾値データ3004は、第1、第2及び第3の量子化処理部5011、1902及び1903のそれぞれに提供される。
次に、図34(a)は、第1及び第2の量子化処理部5011、1902の構成例を示しており、図34(b)は、第3の量子化処理部1903の構成例を示している。なお、第1及び第2の量子化処理部5011、1902の構成は同一である。第4の実施形態(図24及び図30)と比較すると、本実施形態では、第1、第2及び第3の量子化処理部5011、1902及び1903は、何れも閾値読み出し部3001及びハーフトーンテーブルメモリ3002が省かれた構成を有する。第1、第2及び第3の量子化処理部5011、1902及び1903の量子化部3003は、外部に設けられた単一の閾値読み出し部3001から提供される閾値データ3004を使用して、ディザ処理によるハーフトーン処理(量子化処理)を実行する。なお、量子化部3003の機能については、第4の実施形態と同様であるので、その説明を省略する。
本実施形態では、閾値読み出し部3001及びハーフトーンテーブルメモリ3002に関連した構成が異なるのみで、第1、第2及び第3の量子化処理部5011、1902及び1903は、第4の実施形態と同様に機能する。このため、本実施形態において得られる第2のハーフトーン画像データも、第4の実施形態と同様である。
以上説明したように、本実施形態では、単一の閾値読み出し部3001が、第1、第2及び第3の量子化処理部5011、1902及び1903のそれぞれに閾値データを提供する。このため、第1、第2及び第3の量子化処理部5011、1902及び1903に対してハーフトーンテーブルメモリ3002を個別に設ける必要はなく、単一のハーフトーンテーブルメモリ3002を用意すればよい。従って、本実施形態によれば、第4の実施形態による効果に加えて、ハーフトーンテーブルメモリ3002の数を削減することで、装置コストを低減することが可能である。
[第6の実施形態]
第4及び第5の実施形態では、第1、第2及び第3の量子化処理部5011、1902及び1903において、同一のハーフトーンテーブル(閾値番号テーブル3010及び閾値テーブル3020)を使用して、ディザ処理による量子化処理を行っている。これに対して、本実施形態では、第3の量子化処理部1903が、第1及び第2の量子化処理部5011及び1902において使用されるハーフトーンテーブルとは位相が異なるハーフトーンテーブルを使用して量子化処理を行うことを特徴とする。
まず、図35を参照して、本実施形態に係るハーフトーン処理部307及び量子化誤差処理部308の構成例について説明する。なお、図35において、第5の実施形態(図33)と同様の構成要素については、それらの実施形態と同一の参照符号を付し、その説明を省略する。図35に示すように、本実施形態では、第1、第2及び第3の量子化処理部5011、1902及び1903に対応して、それぞれ個別に第1、第2及び第3の閾値読み出し部4001、4002及び4003が設けられている。
第1、第2及び第3の閾値読み出し部4001、4002及び4003は、単一のハーフトーンテーブルメモリ3002から、閾値データ(閾値番号テーブル3010及び閾値テーブル3020)を読み出す。第1の閾値読み出し部4001は、第3及び4の実施形態の閾値読み出し部3001と同様の機能を有し、ハーフトーンテーブルメモリ3002から読み出したデータを閾値データ3004として出力する。第1の閾値読み出し部4001から出力された閾値データ3004は、ハーフトーン処理部307の第1の量子化処理部5011に提供される。
一方、第2及び第3の閾値読み出し部4002、4003は、ハーフトーンテーブルメモリ3002から読み出したハーフトーンテーブルの位相を、後述するように変化させる。さらに、第2及び第3の閾値読み出し部4002、4003は、得られたデータを、閾値データ4004、4005としてそれぞれ出力する。第2及び第3の閾値読み出し部4002、4003から出力された閾値データ4004、4005は、それぞれ第2及び第3の量子化処理部1902、1903に提供される。
<ハーフトーン処理部307及び量子化誤差処理部308による処理>
次に、図36〜図39を参照しながら、本実施形態においてハーフトーン処理部307及び量子化誤差処理部308において実行される処理について、特に第4及び第5の実施形態と異なる部分を中心として説明する。併せて、第3の量子化処理部1903が、第1及び第2の量子化処理部5011及び1902において使用されるハーフトーンテーブルとは位相が異なるハーフトーンテーブルを使用して量子化処理を行う必要性について説明する。
ハーフトーン処理部307において、第1の量子化処理部5011は、第5の実施形態と同様に、ガンマ補正部306からの入力画像データに対して、ハーフトーン処理(量子化処理)を行う。かかるハーフトーン処理には、図24(b)及び(c)に示したハーフトーンテーブル(閾値番号テーブル3010及び閾値テーブル3020)を適用したディザ処理が用いられる。
図36(a)及び(b)は、第1の量子化処理部5011に入力される画像データ(入力画像データ)の一例を示しており、当該画像データには平坦部とエッジ部とが含まれる。図36において(a)は入力画像データを示しており、(b)は、画素記号3301〜3306を用いて、(a)の入力画像データを視覚的に示している。図36(a)に示す入力画像データに対して第1の量子化処理部5011におけるハーフトーン処理が行われると、図36(c)及び(d)に示す第1のハーフトーン画像データが生成される。ここで、図36において(c)は、第1のハーフトーン画像データの各画素値を示しており、(d)は、画素記号3401〜3405を用いて、(c)の第1のハーフトーン画像データを視覚的に示している。
次に、量子化誤差演算部502は、第4及び第5の実施形態と同様に、入力画像データと、第1のハーフトーン画像データとから、量子化誤差データを生成して出力する。図37は、本実施形態に係る量子化誤差データの一例を示している。図37において(a)は、量子化誤差データの各画素の画素値を、(b)は、画素記号4201〜4205を用いて、(a)に示す量子化誤差データを視覚的に示している。
量子化誤差補正部503に量子化誤差データが入力されると、分離処理部1901は、第4及び第5の実施形態と同様、当該データに含まれるプラスデータとマイナスデータとを分離して、プラスデータ及びマイナスデータに対応する画像データを生成する。さらに、分離処理部1901は、プラスデータに対応する画像データ(第1の補正データ)を第2の量子化処理部1902に、マイナスデータに対応する画像データ(第2の補正データ)を第3の量子化処理部1903に、それぞれ出力する。第2及び第3の量子化処理部1902、1903はそれぞれ、第5の実施形態と同様に、入力された画像データに対して、量子化処理を行う。かかる量子化処理には、第2及び第3の閾値読み出し部4002、4003からそれぞれ提供される閾値データ4004、4005を適用したディザ処理が用いられる。
図38(a)及び(b)は、図37(a)に示した量子化誤差データから得られた、第1及び第2の補正データに対して、それぞれ第2及び第3の量子化処理部1902、1903で量子化処理を行って得られた画像データを示している。また、図38(c)及び(d)は、画素記号3701〜3705を用いて、(a)及び(b)に示す第1及び第2の補正データを視覚的に示している。
第2及び第3の量子化処理部1902、1903によって量子化された第1及び第2の補正データは、加算処理部1904によって加算処理されることで、ハーフトーン補正データが生成される。出力演算部5032は、加算処理部1904によって生成されたハーフトーン補正データで、第1のハーフトーン画像データ(図36(c)及び(d))を補正することで、第2のハーフトーン画像データを生成する。図39(a)は、第2のハーフトーン画像データを示しており、図39(b)は、画素記号4501〜4505を用いて、(a)を視覚的に示している。
図38(b)及び(d)に示す、量子化誤差データのマイナスデータに対応する画像データ(第2の補正データ)を第3の量子化処理部1903で量子化して得られた画像データにおける、画素P12〜P15に注目する。図38に示すように、当該画像データの画素P12〜P15の画素値(量子化値)は「−1」である。一方で、図36(c)及び(d)に示す第1のハーフトーン画像データにおける、画素P12〜P15の画素値は「0」である。このため、出力演算部5032が、第1及び第2の補正データから成るハーフトーン補正データで第1のハーフトーン画像データを補正して得られる第2のハーフトーン画像データの、画素P12〜P15の画素値は、図39(a)に示すように「−1」となる。
しかし、第2のハーフトーン画像データの取り得る画素値(量子化値)は0〜4の5値であり、画素P12〜P15のように「−1」とすることはできない。そこで、出力演算部5032は、第1のハーフトーン画像データを補正する際に、当該画像データにおいて画素値が0以下の画素については、補正後の量子化値を0として出力することになる。このため、ハーフトーン補正データの画素値(補正値)が「−1」であるにもかかわらず、その補正値に従った補正が第1のハーフトーン画像データに対して行われなくなる結果、その補正効果が不十分となってしまう可能性がある。
本実施形態では、このような場合にも補正効果を十分に得られるように、第3の量子化処理部1903は、第1の量子化処理部5011において使用するハーフトーンテーブルと位相が異なるハーフトーンテーブルを使用して、量子化処理(ディザ処理)を行う。
<第3の閾値読み出し部4003による処理>
次に、図40を参照して、第3の閾値読み出し部4003について説明する。図40(a)は、第3の閾値読み出し部4003の構成を示している。第3の閾値読み出し部4003は、第4及び第5の実施形態における閾値読み出し部3001と同様の構成を有するものの、読み出しアドレス演算部3103によって実行される処理が大きく異なる。読み出しアドレス演算部3103は、CPU225からの制御情報として提供されるアドレス変換テーブルに基づいて、ハーフトーンテーブルメモリ3002から読み出すべきデータのアドレスを決定するための演算を行う。なお、第2の閾値読み出し部4002も、第3の閾値読み出し部4003と同様の構成を有する。
以下、図40(b)のフローチャートを参照して、第3の閾値読み出し部4003の処理を説明する。図40(b)では、第4及び第5の実施形態(図25)と比較すると、S3104〜S3112については同様であり、読み出しアドレス演算部3103によって実行されるS3101〜S3103が、S4001〜S4004に置き換えられている。ここでは、第4及び第5の実施形態とは異なるS4001〜S4004を中心に説明していく。
S4001で、読み出しアドレス演算部3103は、制御情報に含まれる行列番号変換テーブルに基づいて、行番号カウンタ3101から読み出した行番号と、列番号カウンタ3102から読み出した列番号とを、それぞれ異なる番号に変換する。
ここで、図41は、一例として、行列番号変換テーブル4100を示している。行列番号変換テーブル4100には、第2及び第3の閾値読み出し部4002、4003において使用すべき行番号変換値及び列番号変換値が格納されている。ここでは、第2の閾値読み出し部4002については、行番号変換値及び列番号変換値を0、第3の閾値読み出し部4003については、行番号変換値を0、列番号変換値を4としている。
読み出しアドレス演算部3103は、行番号カウンタ3101から読み出した行番号と、列番号カウンタ3102から読み出した列番号とに、行列番号変換テーブル4100に格納された各変換値を、次式に従って加算する。これにより、読み出しアドレス演算部3103は、変換後の変換行番号と変換列番号とを得る。
(変換行番号)=(行番号)+(行番号変換値)
(変換列番号)=(列番号)+(列番号変換値)
次に、読み出しアドレス演算部3103は、S4002〜S4004において閾値番号テーブルアドレスを計算する際に、行番号カウンタ3101及び列番号カウンタ3102から得られる行番号及び列番号の代わりに、変換行番号及び変換列番号を使用する。即ち、閾値番号テーブルアドレスは、次式に従って計算できる。
(閾値番号テーブルアドレス)=MOD(変換行番号,5)×5+MOD(変換列番号,5)
一例として、行番号カウンタ3101の値が「1」、列番号カウンタ3102の値が「4」である場合を考える。まず、行番号及び列番号をS4001において変換しない場合には、
MOD(行番号,5)=1,MOD(列番号,5)=4
であり、閾値番号テーブルアドレスは9となる。その結果として、読み出しアドレス演算部3103は、閾値番号として、ハーフトーンテーブルメモリ3002に格納された閾値番号テーブル3010(図24)から、要素3012に規定された「4」を読み出すこととなる。
一方、本実施形態では、図41に示すように、第3の閾値読み出し部4003に対応する行番号変換値は0、列番号変換値は4であるので、変換行番号は1、変換列番号は8となる。このため、
MOD(変換行番号,5)=1,MOD(変換列番号,5)=3
であり、閾値番号テーブルアドレスは8となる。その結果として、読み出しアドレス演算部3103は、閾値番号として、ハーフトーンテーブルメモリ3002に格納された閾値番号テーブル3010から、要素3013に規定された「2」を読み出すこととなる。このことは、閾値番号テーブル3010において、行番号1、列番号4に対応する要素3012の閾値番号が、当該要素から1つ左の列に移動した要素3013の閾値番号に変換されることを意味する。
これに対して、第1の閾値読み出し処理部4001は、このような行列番号変換を行わないため、閾値読み出し部3001は、要素3012の閾値番号を、ハーフトーンテーブルメモリ3002からそのまま読み出す。つまり、第1の量子化処理部5011は、要素3012の閾値番号に対応する閾値で量子化処理を行うのに対して、第3の量子化処理部1903は、要素3013の閾値番号に対応する閾値で量子化処理を行う。
第3の量子化処理部1903が、以上のような処理を第2の補正データの全画素について行うことにより、結果として、第1の量子化処理部5011と比較して、使用するハーフトーンテーブルの位相が1画素分左にずらしていることになる。このように、本実施形態では、第3の量子化処理部1903は、第1の量子化処理部5011において使用するハーフトーンテーブルと位相が異なるハーフトーンテーブルを使用して、量子化処理(ディザ処理)を行う。
<量子化誤差補正部503による処理結果>
次に、図42及び図43を参照しながら、第3の量子化処理部1903が、第1の量子化処理部5011とは位相が異なるハーフトーンテーブルを使用した場合に得られる結果について説明する。図42(a)及び(b)は、図37(a)に示した量子化誤差データから得られた、第1及び第2の補正データに対して、それぞれ第2及び第3の量子化処理部1902、1903で量子化処理を行って得られた画像データを示している。また、図42(c)及び(d)は、画素記号3701〜3705を用いて、(a)及び(b)に示す第1及び第2の補正データを視覚的に示している。
図42(a)及び(c)に示す、第2の量子化処理部1902による量子化後の第1の補正データは、図38(a)及び(c)に示す、量子化後の第1の補正データは同一となっている。これは、第2の量子化処理部1902に対応する行番号変換値と列番号変換値とを、行列番号変換テーブル4100(図41)において0に設定したためである。即ち、第2の量子化処理部1902は、行番号及び列番号の変換を行わず、第4及び第5の実施形態と同一のハーフトーンテーブルを用いて、第1の補正データに対する量子化処理を行っているためである。一方で、図42(b)及び(d)に示す、第3の量子化処理部1903による量子化後の第2の補正データは、図38(b)及び(d)に示す、量子化後の第2の補正データと異なっている。これは、第3の量子化処理部1903が、行列番号変換テーブル4100に基づいて、行番号及び列番号の変換を行って位相を変化させたハーフトーンテーブルを用いて、第2の補正データに対する量子化処理を行っているためである。
次に、図43(a)は、本実施形態において出力演算部5032によって生成された第2のハーフトーン画像データを示しており、図43(b)は、画素記号3401〜3405を用いて、(a)を視覚的に示している。
ここで、図42(b)及び(d)に示す、量子化誤差データのマイナスデータに対応する画像データ(第2の補正データ)を第3の量子化処理部1903で量子化して得られた画像データにおける、画素P16〜P18に注目する。図42に示すように、当該画像データの画素P16〜P18の画素値(量子化値)は「−1」である。一方で、図36(c)及び(d)に示す第1のハーフトーン画像データにおける、画素P16〜P18の画素値は「2」である。このため、出力演算部5032が、第1及び第2の補正データから成るハーフトーン補正データで第1のハーフトーン画像データを補正して得られる第2のハーフトーン画像データの、画素P16〜P18の画素値は、図43(a)に示すように「1」となる。
このように、第1のハーフトーン画像データにおける画素P16〜P18の量子化値は「2」であるため、量子化後の第2の補正データにおける対応画素の画素値(補正値)「−1」で補正しても、補正後の量子化値は0未満の値にはならない。即ち、第1のハーフトーン画像データの画素P16〜P18の画素値を出力演算部5032によって補正した場合に、補正後の量子化値を強制的に0にして出力しない。このため、当該画素について、量子化誤差補正部503における第1のハーフトーン画像データに対する補正効果を十分に得ることができる。
以上説明したように、本実施形態では、第1の量子化処理部に適用するハーフトーンテーブルとは位相が異なるハーフトーンテーブルを、第2の量子化処理部及び第3の量子化処理部の少なくとも何れかに適用して、量子化誤差データを量子化処理する。さらに、当該量子化処理によって得られたハーフトーン補正データを用いて、第4及び第5の実施形態と同様に、ハーフトーン画像データを補正する。これにより、第4及び第5の実施形態による効果に加えて、ハーフトーン画像データの補正を十分に行うことが可能になる。
なお、本実施形態では、行列番号変換テーブルに含まれる、第2の量子化処理部1902に対応する行番号変換値及び列番号変換値を何れも0に設定しているため、第1及び第2の量子化処理部5011、1902では、同一のハーフトーンテーブルを用いている。しかし、第2の量子化処理部1902に対応する行番号変換値及び列番号変換値の少なくとも何れかを0以外の値に設定してもよい。これにより、第2の量子化処理部1902についても、第1の量子化処理部5011において用いるハーフトーンテーブルと異なる位相のハーフトーンテーブルを用いて量子化処理を実行できる。この処理は、例えば、第1のハーフトーン画像データを補正して得られた第2のハーフトーン画像データに含まれる量子化値が6以上となりうる場合に有効である。
また、本実施形態では、単一のハーフトーンテーブルメモリを使用し、当該メモリからの閾値を読み出す際の行列番号を変換する処理を行っている。しかし、第4の実施形態のように、複数のハーフトーンテーブルメモリを用意して、第1、第2及び第3の量子化処理部5011、1902及び1903に、それぞれ個別のハーフトーンテーブルメモリを使用させてもよい。この場合、相互に異なる位相のハーフトーンテーブルを、当該個別のハーフトーンテーブルメモリに予め格納しておけばよい。
[その他の実施形態]
上述の各実施形態において説明した、ハーフトーン処理によって生じる量子化誤差の補正処理は、ホストPC210から描画データを受信するプリンタ10(画像形成装置)に限られず、例えば、画像読取装置を備えた複写機においても実行されうる。その場合、画像形成のための描画データは、画像読取装置において原稿から読み取ることによって得られうる。また、色変換テーブル、ガンマ補正テーブル、ハーフトーンテーブル、フィルタテーブル、アドレス変換テーブル等のテーブルデータは、ROM221に予め格納されているのではなく、ホストPC210からプリンタ10に提供されてもよい。このような場合にも、プリンタ10がホストPC210から受信したテーブルデータを用いることで、上述の各実施形態の機能を実現し、その効果を得ることが可能である。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。