画像処理装置、画像形成装置およびその制御方法
【課題】主走査毎に、前回の走査時におけるN値化結果に基づいて定められた制約情報に基づいたN値化処理を行うことにより、画像の低周波成分に依存した粒状性劣化を抑制し、高画質画像を形成する。
【解決手段】複数ノズルを備える記録ヘッドによる複数パス印字を行う際に、入力画像データに応じて、走査Duty設定部105で記録ヘッドの走査ごとに、ノズルごとの走査Dutyを算出する。ハーフトーン処理部108では、該算出された走査Dutyに対し、予め定められた制約情報に基づくN値化を施して形成対象となるドットパターンを作成する。そして制約情報演算部111では、算出された走査Dutyとドットパターンに基づいて、次の走査時にハーフトーン処理部108で参照される制約情報を作成する。このとき、既に記録されたドットパターンに対して次に作成されるドットパターンの位相が低周波域で逆位相となるように作成する。
【解決手段】複数ノズルを備える記録ヘッドによる複数パス印字を行う際に、入力画像データに応じて、走査Duty設定部105で記録ヘッドの走査ごとに、ノズルごとの走査Dutyを算出する。ハーフトーン処理部108では、該算出された走査Dutyに対し、予め定められた制約情報に基づくN値化を施して形成対象となるドットパターンを作成する。そして制約情報演算部111では、算出された走査Dutyとドットパターンに基づいて、次の走査時にハーフトーン処理部108で参照される制約情報を作成する。このとき、既に記録されたドットパターンに対して次に作成されるドットパターンの位相が低周波域で逆位相となるように作成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像処理装置、画像形成装置およびその制御方法に関し、特に、入力画像よりも低階調による画像形成を行うための画像処理装置、画像形成装置およびその制御方法に関する。
【背景技術】
【0002】
ワードプロセッサやパーソナルコンピュータ、ファクシミリ等の画像出力装置としては一般に、所望される文字や画像等の情報を、用紙やフィルム等のシート状の記録媒体に記録する記録装置が用いられる。このような記録装置としては様々な記録方式のものがあるが、なかでも記録媒体に記録剤を付着させることで記録媒体上に画像を形成する方式が広く実用化されており、このような方式の代表例として、インクジェット記録方式が知られている。
【0003】
インクジェット記録方式を適用した記録装置においては、記録速度の向上や高画質化等を実現するために、同一色同一濃度のインクを吐出可能なインク吐出口(ノズル)の複数を集積配列したノズル群を備える。さらに、画質の向上を実現するために、同一色で濃度の異なるインクを吐出可能としたノズル群や、同一色で同一濃度のインクの吐出量を何段階かに変えて吐出可能としたノズル群が設けられる場合もある。
【0004】
このような記録装置において、多値の入力画像データをドットの記録信号にあたる2値画像(またはN値:Nは2条の整数であり、入力画像データの階調数より少ない階調数)に変換する手法として、誤差拡散法が知られている。誤差拡散法によれば、ある画素で生じた2値化誤差(またはN値化誤差)を以降の複数画素へ拡散することにより、擬似的に階調表現を行う。
【0005】
また、上述した誤差拡散法のほかに、多値の入力画像データをドットの記録信号にあたる2値画像(またはN値)に変換する手段として、ディザ法が知られている。ディザ法によれば、予め用意した閾値マトリクスと多値の入力データを比較してN値化を行なうことで、擬似的に階調表現を行う。ディザ法は誤差拡散法よりも処理が単純であるため、より高速な処理を行うことが可能となる。
【0006】
上述した誤差拡散法やディザ法によって階調数が変換された画像を、実際に記録媒体上に形成する際に、その画質向上を目的として、形成順や配置を決定する技術が提案されている(例えば、特許文献1参照)。かかる技術によれば、走査毎に誤差拡散法を適用することにより、各走査のレジストレーションが変動した場合でも、濃度ムラなどによる画像品質の低下を抑えることが可能となる。具体的には、所定の記録媒体における同一の主走査記録領域に対して異なるノズル群によって複数回主走査を行い、その主走査毎に誤差拡散法により2値(またはN値)画像を形成する。このように主走査毎に誤差拡散法を実施して2値(またはN値)画像を生成する場合、主走査内のドット配置の分散性が高く均一となる。したがって、複数の主走査によって画像が形成される際に、記録媒体の送り量や記録素子の位置などの物理的なレジストレーションが変動しても、粒状性の変化は発生しにくくなるという効果がある。さらに、複数の走査間のドット配置において相関が少ないため、レジストレーションが変動しても、紙面に対するドットの被覆率変化が低減され、濃度ムラがかなり緩和される。
【特許文献1】特開2000-103088号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、上述した特許文献1に記載された手法によれば、主走査間のドット配置で相関性が小さいために、複数の走査によって生成される画像の低周波成分が強調されてしまうという問題がある。この低周波成分は、走査の回数が増えるほど強調されることになり、視覚上目障りな粒状性として認識されてしまう。
【0008】
本発明はこのような問題を解決するためになされたものであり、以下のような機能を有する画像形成装置およびその制御方法を提供することを目的とする。すなわち、主走査毎に、前回の主走査でのN値化結果(Nは2以上の整数)に基づいてリアルタイムに更新された制約情報に基づくN値化処理を行うことにより、画像の低周波成分に依存した粒状性劣化を抑制し、高画質画像を形成可能とする。
【課題を解決するための手段】
【0009】
上記目的を達成するための一手段として、本発明の画像形成装置は以下の構成を備える。
【0010】
すなわち、複数の記録素子を備えた記録ヘッドを、記録媒体上で走査することによって画像を形成する画像形成装置であって、画像データを入力する画像データ入力手段と、該画像データに応じて、前記記録ヘッドの主走査ごとに、前記記録素子ごとの記録量を算出する走査内記録量算出手段と、前記走査内記録量算出手段で算出された記録量に対し、予め定められた制約情報に基づくN値化処理(Nは2以上の整数)を施して形成対象となるドットパターンを作成するN値化手段と、前記走査内記録量算出手段で算出された記録量と、前記N値化手段で出力されたドットパターンに基づいて、次の主走査時に前記N値化手段で参照される前記制約情報を作成する制約情報作成手段と、を有し、前記制約情報作成手段は、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記N値化手段で作成されるドットパターンの位相が低周波域で逆位相となるように、前記制約情報を作成することを特徴とする。
【0011】
さらに、前記制約情報作成手段は、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記N値化手段で作成されるドットパターンの位相が高周波域で無相関となるように、前記制約情報を作成することを特徴とする。
【発明の効果】
【0012】
本発明によれば、主走査毎に、前回の主走査でのN値化結果に基づいてリアルタイムに更新された制約情報に基づくN値化処理を行うことにより、画像の低周波成分に依存した粒状性劣化を抑制し、高画質画像を形成することが可能となる。
【発明を実施するための最良の形態】
【0013】
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【0014】
<第1実施形態>
図1は、本実施形態による画像形成システムの構成を示したブロック図である。図1において、1は画像処理装置、2はプリンタを示す。なお、画像処理装置1は例えば一般的なパーソナルコンピュータにインストールされたプリンタドライバによって実施され得る。その場合、以下に説明する画像処理装置1の各部は、コンピュータが所定のプログラムを実行することにより実現されることになる。また、別の構成としては、例えば、プリンタ2が画像処理装置1を含む構成としてもよい。
【0015】
画像処理装置1とプリンタ2は、プリンタインタフェース又は回路によって接続されている。画像処理装置1は、画像データ入力端子101より印刷対象の画像データを入力し、これを入力画像バッファ102に格納する。色分解処理部103は、入力された画像データをプリンタ2が備えるインク色へ色分解する。この色分解処理に際しては、色分解用ルックアップテーブル(LUT)104が参照される。走査Duty設定部105は、走査Duty設定用LUT106に基づき、色分解処理部103にて分解された各インク色値をさらに走査毎の各インク色値へ変換し、走査Dutyバッファ107にそのデータを格納する。本実施形態における走査Dutyデータはすなわち、各走査における記録インク量を示すものである。
【0016】
ハーフトーン処理部108は、走査Duty設定部105によって得られた走査毎の各色の多階調(3階調以上)値を、後述する制約情報バッファ109に蓄えられた値に基づいて2値画像データに変換する。
【0017】
制約情報バッファ109には、記録される画像上のアドレスに、ドットが形成されやすいか否かを示す情報が蓄えられている。なお、制約情報バッファ109はインク色毎に確保するものとする。
【0018】
ハーフトーン画像格納バッファ110には、ハーフトーン処理部108にて得られた各色の2値画像データが格納される。制約情報演算部111は、ハーフトーン画像格納バッファ110に格納された2値画像データと、走査Dutyバッファ107に格納された走査毎Dutyデータに基づく所定の演算を行って制約情報を作成し、制約情報バッファ109の内容を更新する。
【0019】
ハーフトーン画像格納バッファ110に格納された2値画像データは、出力端子112よりプリンタ2へ出力される。
【0020】
プリンタ2においては、記録ヘッド201を記録媒体202に対して相対的に縦横に移動することにより、画像処理装置1にて形成された2値画像データを記録媒体上に形成する。記録ヘッド201としては熱転写方式、電子写真方式、インクジェット方式等のものを用いることができ、いずれも一つ以上の記録素子(インクジェット方式であればノズル)を有する。移動部203は、ヘッド制御部204の制御下で、記録ヘッド201を移動する。搬送部205は、ヘッド制御部204の制御下で、記録媒体を搬送する。また、インク色選択部206は、画像処理装置1により形成された各色の2値画像データに基づいて、記録ヘッド201に搭載されるインク色の中から、インク色を選択する。
【0021】
図2は、記録ヘッド201の構成例を示す図である。本実施形態ではシアン(C)、マゼンタ(M)、イエロー(Y)、ブラック(K)の4色のインクに加え、相対的にインク濃度が低い淡シアン(Lc)、淡マゼンタ(Lm)を含めた6色のインクを、記録ヘッド201に搭載している。
【0022】
なお、図2においては、説明を簡単にするため用紙搬送方向にノズルが一列に配置された構成を示しているが、ノズルの数、配置はこの例に限られるものではない。例えば、同一色でも吐出量が異なるノズル列を有しても良いし、同一吐出量ノズルが複数列あっても良いし、ノズルがジグザグに配置されているような構成であっても良い。また、図2ではインク色の配置順序はヘッド移動方向に一列となっているが、用紙搬送方向に一列に配置する構成であっても良い。
【0023】
次に、上述した機能構成を備えた本実施形態の画像処理装置1における画像形成処理について、図3のフローチャートを用いて説明する。
【0024】
まず、多階調のカラー入力画像データが入力端子101より入力され、入力画像バッファ102に格納される(S101)。ここで入力画像データは、レッド(R)、グリーン(G)、ブルー(B)の3つの色成分によりカラー画像データを構築している。
【0025】
次に、色分解処理部103にて、入力画像バッファ102に格納された多階調のカラー入力画像データに対し、色分解用LUT104を用いて、RGBからCMYK及びLcLmのインク色プレーンへの色分解処理を行う(S102)。本実施形態では、色分解処理後の各画素データを8ビットとして扱うが、それ以上の階調数への変換を行っても構わない。
【0026】
上述したように本実施形態における記録ヘッド201は、6種類の各インク色を保有する。そのため、RGBのカラー入力画像データは、CMYKLcLm各プレーンの計6プレーンの画像データへ変換される。即ち、6種類のインク色に対応した6種類のプレーンの画像データが生成される。
【0027】
以下、本実施形態における色分解処理の詳細について、図4を用いて説明する。
【0028】
図4は、色分解処理部103における入出力データの詳細を示している。同図に示すように入力された画像データR'G'B'は、色分解用LUT104を参照して次式の通りに、CMYKLcLmデータへ変換される。
【0029】
C=C_LUT_3D(R',G',B') ・・・(1)
K=M_LUT_3D(R',G',B') ・・・(2)
Y=Y_LUT_3D(R',G',B') ・・・(3)
K=K_LUT_3D(R',G',B') ・・・(4)
Lc=Lc_LUT_3D(R',G',B') ・・・(5)
Lm=Lm_LUT_3D(R',G',B') ・・・(6)
ここで、式(1)〜(6)の右辺に定義される各関数が、色分解用LUT104の内容に該当する。色分解用LUT104はレッド、グリーン、ブルーの3入力値から、各インク色への出力値を定める。本実施形態では、CMYKLcLmの6色を具備する構成であるため、3入力値から6出力値を得るLUT構成となる。
【0030】
以上の処理により、本実施形態における色分解処理が完了する。
【0031】
図3に戻り、次に、走査Duty設定部105は、走査番号k及び色分解データ切り出し位置としてのY座標を示すYcut(k)を設定する(S103)。Ycut(k)はすなわち、走査番号kにおける色分解データ切り出し位置であり、ノズル上端座標に相当する。なお、走査番号kの初期値は1であり、処理ループ毎に1づつインクリメントされる。
【0032】
ここで、16個のノズル列を具備し、画像上の同一主走査記録領域に対して4回のスキャンで画像を形成させる4パス印字の場合を例として、色分解データ切り出し位置Y座標Ycutの設定法を説明する。
【0033】
一般的に4パス印字の場合、図5に示すように、走査番号の初期値(k=1)では、ノズル下端1/4のみを使用して画像形成を行い、走査番号k=2では走査番号k=1に対してノズル長さ1/4分紙送りしてから画像形成を行う。さらに走査番号k=3では走査番号k=2に対してノズル長さ1/4分紙送りしてから画像を形成する。このような画像形成および紙送りを繰り返して、最終出力画像が形成される。そのため、走査番号k=1の場合、ノズル上端座標に相当する色分解データ切り出し位置Ycut=−12となる。
【0034】
上述した色分解データ切り出し位置Ycut(k)を一般化すると、ノズル列数:Nzzl、パス数:Pass、走査番号:k、として次式で与えられる。
【0035】
Ycut(k)=−Nzzl+(Nzzl/Pass)×k ・・・(7)
以上のようにYcut(k)が設定されると、次に走査Duty設定部105は、走査Duty設定用LUT106と各色分解処理プレーンの画像データに基づき、走査毎のDuty値を設定する(S104)。
【0036】
走査Duty設定用LUT106によれば、4パスの場合、図6に示すような値が与えられる。図6は16ノズル、4パスの例を表しており、縦軸がノズル位置、横軸がDuty分割率を示す。図6によれば、P1〜P4の変曲点を4ノズル毎に設定し、その各変曲点を線形補間した16ノズル分のDuty分割率が、走査Duty設定用LUT106として保持されている。ここで、P1〜P4の数値は、以下のように設定される。
【0037】
P1+P2+P3+P4=1.0 ・・・(8)
なお、走査Duty設定用LUT106として保持される値は上記設定法に限られるものではなく、例えば変曲点を細かく設定してもよいし、ノズル毎に直接指定しても良い。
【0038】
ステップS104で設定される走査Dutyは、図7に示すように、走査Duty設定用LUT106と色分解データの積として設定される。すなわち、図7の左項に示されるように、色分解後のデータに対して、ノズルごとに設定されたDuty分割率を乗じることにより、その結果が図7の右項に示されるように、ノズルごとの走査Dutyとして設定される。これにより、実際の走査時には、ターゲットとする色分解データに対し、各ノズルは走査Duty分のみのインクを吐出して画像を形成する。
【0039】
ここで本実施形態においては、対応するノズルが画像Yアドレスの領域外座標になるときは、走査Dutyを0とする。例えば、走査番号k=1では、図8に示すように、ノズル列上端3/4で画像Yアドレスが負になるため走査Duty値=0が代入され、ノズル列下端1/4には有意な値が代入される。
【0040】
また、色分解データ切り出し位置Ycut(k)は走査番号kによって決まるため、走査番号k=1〜7の場合、走査Dutyは図9に示すように決定される。図9においては、各走査番号ごとのノズル位置に対する走査Dutyが示されており、走査番号ごとに走査Dutyが異なっていることが分かる。図9における各走査Dutyは、色分解データと、走査Duty設定用LUT106の積により定まるため、紙送りしながらLUTとの積をとると、領域1の部分では、走査番号k=1〜4の4回の走査で形成される1ラスタの合計値が色分解データと同じになる。同様に領域2、3、4においても、1ラスタの合計値が色分解データと同じになる。
【0041】
本実施形態においては図9に示すように走査Dutyが分解されるが、予めDuty分解閾値D_Th3を用意しておき、該閾値と色分解データを比較する。そしてD_Th3よりも色分解データ値が小さい場合(後述する式(10)〜(15)に相当)には、4回の走査で画像形成を行うことはせず、1〜3回の走査で画像形成を行うようにする。
【0042】
上述したような走査Duty設定部105における走査Duty設定を、例えばシアンC(X,Y)に限って式で詳細に表すと、以下のように与えられる。なお、C_d(X,Y)はアドレス(X,Y)における走査Dutyを、S_LUT(Y)はアドレスYにおける走査Duty設定用LUT106の値をそれぞれ示す。また、0≦nx<画像Xサイズ、0≦ny<Nzzl(ノズル列数:この場合16)、である。また、Duty分解閾値として、上述したD_Th3に加えて、さらに小さい閾値を示すD_Th2,D_Th1(D_Th3>D_Th2>D_Th1)が定義されている。
【0043】
C(nx,Ycut(k)+ny)>D_Th3のとき、
C_d(nx,ny)=C(nx,Ycut(k)+ny)×S_LUT(ny)・・・(9)
C(nx,Ycut(k)+ny)≦D_Th1のとき、
「走査番号k=1,5,・・・,4n+1(nは0以上の整数)」については
C_d(nx,ny)=C(nx,Ycut(k)+ny) ・・・(10)
「上記以外の走査番号」については
C_d(nx,ny)=0 ・・・(11)
C(nx,Ycut(k)+ny)≦D_Th2のとき、
「走査番号k=1,5,・・・,4n+1」および
「走査番号k=2,6,・・・,4n+2」については、
C_d(nx,ny)=C(nx,Ycut(k)+ny)/2 ・・・(12)
「上記以外の走査番号」については、
C_d(nx,ny)=0 ・・・(13)
C(nx,Ycut(k)+ny)≦D_Th3のとき、
「走査番号k=1,5,・・・,4n+1」および
「走査番号k=2,6,・・・,4n+2」および
「走査番号k=3,7,・・・,4n+3」については、
C_d(nx,ny)=C(nx,Ycut(k)+ny)/3 ・・・(14)
「上記以外の走査番号」については、
C_d(nx,ny)=0 ・・・(15)
上記式(9)が通常のDuty分解処理であり、式(10)〜(15)が例外Duty分解処理を示す。色分解データ値がD_Th1よりも小さい場合には、式(10),(11)で示すように1回の走査で画像形成を行うようにし、D_Th2よりも小さい場合には、式(12),(13)で示すように2回の走査で画像形成を行うようにする。そして、D_Th3よりも小さい場合には、式(14),(15)で示すように3回の走査で画像形成を行うようにする。
【0044】
Lc(X,Y)、M(X,Y)、Lm(X,Y)、Y(X,Y)、K(X,Y)に対しても同様に、上記式により走査Dutyへの分解が行われる。
【0045】
なお、本実施形態では4パスを例として説明したため、式(10)〜(15)のように例外のDuty分解処理を設定したが、例えば8パスでも同様に、Duty分解閾値D_Th1〜D_Th7を設定して例外のDuty分解処理を行う必要がある。
【0046】
以上のように走査Duty設定部105で設定された走査Dutyデータは、走査Dutyバッファ107に格納される(S105)。すなわち、走査Dutyバッファ107は図10に示すように、縦方向がノズル数、横方向が画像のXサイズに相当するバンド状の走査Dutyデータ値を、各色毎に格納する。
【0047】
次にハーフトーン処理部108において、走査Dutyバッファ107に格納された走査Dutyデータと、制約情報バッファ109に格納された制約情報データの合計値を、2レベルの階調値(2値データ)に変換するハーフトーン処理を行う(S106)。
【0048】
制約情報バッファ109も図11に示すように、縦方向がノズル数、横方向が画像のXサイズに相当するバンド状の制約情報データ値を、各色毎に格納している。制約情報バッファ109には、記録される画像上のアドレスに2値画像が形成されやすいか否かを示す制約情報が格納され、走査番号kごとに更新される。ただし、走査番号k=1の処理開始時には、初期値として全て0が代入されている。すなわち、アドレス(X,Y)における各色の制約情報をC_r(X,Y)、Lc_r(X,Y)、M_r(X,Y)、Lm_r(X,Y)、Y_r(X,Y)、K_r(X,Y)とすると、これらは走査番号k=1のときは以下のように記述される。なお、0≦nx<画像Xサイズ、0≦ny<Nzzl(ノズル列数:この場合16)である。
【0049】
C_r(nx,ny)=0 ・・・(16)
Lc_r(nx,ny)=0 ・・・(17)
M_r(nx,ny)=0 ・・・(18)
Lm_r(nx,ny)=0 ・・・(19)
Y_r(nx,ny)=0 ・・・(20)
K_r(nx,ny)=0 ・・・(21)
そのため、実質的には走査番号k≧2の時に、制約情報バッファ109は有意な制約情報に更新されていくことになる。制約情報の値が小さいほど、その箇所にドットが形成されにくく、逆に値が大きいほどドットが形成されやすい。なお、制約情報バッファ109に格納される値は、どのような走査番号のタイミングであっても、平均値が0となるように各値が格納される。具体的には、その箇所にドットが形成されやすい場合には正の値が、その箇所にドットが形成されにくい場合は負の値が格納されるが、制約情報の更新についての詳細は後述する。
【0050】
本実施形態におけるハーフトーン処理は、多値の入力画像データを2値画像(または2値以上で入力階調数より少ない階調数の画像)に変換する処理として、例えば周知の誤差拡散法を用いる。以下、本実施形態におけるハーフトーン処理について、図12のブロック図と図13のフローチャートを用いて詳細に説明するが、説明を簡略化するため、4パス印字、走査番号k=1におけるシアンのハーフトーン処理を例として説明する。図12は、ハーフトーン処理部108の詳細構成を示すブロック図であり、図13はハーフトーン処理部108におけるハーフトーン処理の詳細を示すフローチャートである。
【0051】
まず図13に示すステップS201において、シアンの走査Dutyと制約情報の合計を入力する。すなわち、図12に示す制約情報加算部401において、シアン走査DutyであるC_dとシアン制約情報C_rの合計値データIcを以下のように算出する。ただし、走査番号k=1のとき、制約情報C_rは全て0である。
【0052】
Ic=C_d+C_r ・・・(22)
次にステップS202において、誤差拡散処理用に累積誤差を加算する。以下、累積誤差の加算処理について詳細に説明する。
【0053】
本実施形態においては、誤差拡散処理のための誤差拡散係数として、図14に示すようにK1〜K4の4つの係数を持つとする。例えば、K1=7/16、K2=3/16、K3=5/16、K4=1/16とする。ただし、拡散係数は上記のように固定とする必要はなく、階調に応じて(例えばC_dに応じて)変更させても良いし、上記4係数に限らずさらに多くの係数を持たせても良い。
【0054】
このような誤差拡散係数により誤差を拡散、累積するために、ハーフトーン処理部108では累積誤差ラインバッファをシアンに対して4組確保し(402〜405)、使用する累積誤差ラインバッファを走査番号ごとに、例えば以下のように切り替える。
【0055】
「走査番号k=1,5,・・・,4n+1(nは0以上の整数)のとき」
シアン(4n+1)累積誤差ラインバッファ402を使用
「走査番号k=2,6,・・・,4n+2のとき」
シアン(4n+2)累積誤差ラインバッファ403を使用
「走査番号k=3,7,・・・,4n+3のとき」
シアン(4n+3)累積誤差ラインバッファ404を使用
「走査番号k=4,8,・・・,4n+4のとき」
シアン(4n+4)累積誤差ラインバッファ405を使用
なお、各シアン累積誤差ラインバッファ402,403,404,405はそれぞれ、図15の1501〜1504に示す4組の記憶領域からなる。すなわち、「Ec1_0,Ec1(x)」、「Ec2_0,Ec2(x)」、「Ec3_0,Ec3(x)」、「Ec4_0,Ec4(x)」の4組である。例えば、シアン(4n+1)累積誤差バッファ402は、1個の記憶領域Ec1_0と、入力画像の横画素数Wと同数の記憶領域Ec1_(x)(x=1〜W)を有する。また、各シアン累積誤差ラインバッファ402,403,404,405はそれぞれ、走査番号k=1,2,3,4の処理開始時のみ、全て初期値0で初期化されている。例えば走査番号k=5の処理開始時には、(4n+1)累積誤差バッファ402は初期化されない。
【0056】
本実施形態では、1色あたり上述した4組の累積誤差ラインバッファが必要になるため、これを6色分用意する必要がある。すなわち、合計4×6=24組のラインバッファが必要になる。
【0057】
ここでは、走査番号k=1についてのハーフトーン処理を例として説明するため、シアン(4n+1)累積誤差バッファ402を使用して誤差拡散処理を実施するとする。すなわち、累積誤差加算部406において、走査Dutyと制約情報の合計である入力データ値に対して、入力画素データの横画素位置xに対応する誤差Ec1(x)が加算される。即ち、入力された注目データをIc、累積誤差加算後のデータをIc'とすると、以下の式が成り立つ。
【0058】
Ic'=Ic+Ec1(x) ・・・(23)
次にステップS203において、閾値選択部407は閾値Tを選択する。閾値Tは、例えば以下のように設定される。
【0059】
T=128 ・・・(24)
或いは、ドット生成遅延を回避するため、平均量子化誤差が小さくなるよう、C_dに応じて閾値Tを以下のように細かく変更しても良い。
【0060】
T=f(C_d) ・・・(25)
次にステップS204において、量子化部408は、誤差加算後の画素データIc'と閾値Tを比較し、ドットの2値化結果であるOut_cを決定する。その規則は次の通りである。
【0061】
Ic'<Tのとき、
Out_c=0 ・・・(26)
Ic'≧Tのとき、
Out_c=255 ・・・(27)
次にステップS205において、誤差演算部409は、注目画素Icに誤差を加算した画素データIc'と、出力画素値Out_cとの差分Err_cを、次のように算出する。
【0062】
Err_c(x)=Ic'−Out_c ・・・(28)
次にステップS206において、誤差拡散部410が誤差を拡散する。即ち、シアン(4n+1)累積誤差ラインバッファ402を用いて、横画素位置xに応じた誤差Err_c(x)の拡散処理が、以下のように行われる。
【0063】
Ec1(x+1)←Ec1(x+1)+Err_c(x)×7/16 (x<W)
Ec1(x−1)←Ec1(x−1)+Err_c(x)×3/16 (x>1)
Ec1(x)←Ec1_0+Err_c(x)×5/16 (1<x<W)
Ec1(x)←Ec1_0+Err_c(x)×8/16 (x=1)
Ec1(x)←Ec1_0+Err_c(x)×13/16 (x=W)
Ec1_0←Err_c(x)×1/16 (x<W)
Ec1_0←0 (x=W)
・・・(29)
以上で、走査番号k=1のシアン1画素分の2値化(量子化値0,255)が完了する。
【0064】
以上説明したステップS201〜S206の処理を、バンド内のアドレス(0,0)〜(W−1,Nzzl−1)まで行う(S207)ことにより、ハーフトーン画像データのドット位置、すなわちドットのオン/オフを決定することができる。
【0065】
なお、以上は走査番号k=1について説明したが、走査番号k=2〜4については、それぞれのシアン累積誤差ラインバッファ403〜405を用いて上記ハーフトーン処理を行う。走査番号k=5の処理では、走査番号k=1と同じシアン(4n+1)累積誤差ラインバッファ402を、初期化せずに(全0を代入せずに)そのまま用いる。これは図16に示すように、走査番号k=1と走査番号k=5の印字領域が上下に隣接しているため、保存されている累積誤差をそのまま、隣接下の領域に適用するためである。もしも、k=5でシアン累積誤差ラインバッファ402を初期化すると、k=1と隣接する境界部で誤差が保存されなくなり、ドットの連続性が保てなくなってしまう。
【0066】
図3に戻り、以上説明したようにステップS106におけるハーフトーン処理が終了すると、次に、ハーフトーン処理後の2値画像データはハーフトーン画像格納バッファ110に格納される(S107)。ここで図17に、走査番号k=1の走査Dutyをハーフトーン処理した結果が、ハーフトーン画像格納バッファ110に格納された様子を示す。同図に示されるようにハーフトーン画像格納バッファ110には、走査Dutyの画素位置に対応する(ノズル数:Nzzl)×(画像Xサイズ:W)分の2値画像データが格納される。
【0067】
以上により、走査番号k=1でのハーフトーン処理が終了し、その結果、各色分の一回のヘッド動作で形成される2値画像が、各色分のハーフトーン画像格納バッファ110に格納されることになる。
【0068】
次に、ハーフトーン画像格納バッファ110に蓄えられた、縦方向がノズル数(Nzzl)、横方向が画像のXサイズ(W)に相当するバンドデータが、画像出力端子112より出力される(S108)。
【0069】
すると次に、制約情報演算部111において制約情報を演算する(S109)。以下、本実施形態における制約情報演算処理について、図18のブロック図と図19のフローチャートを用いて詳細に説明するが、説明を簡略化するため、4パス印字、走査番号k=1におけるシアンの制約情報の演算を例として説明する。図18は、制約情報演算部111の詳細構成を示すブロック図であり、図19は制約情報演算処理部111における制約情報演算処理を示すフローチャートである。
【0070】
上述したように本実施形態における制約情報とは、現在の走査番号k=1の次の走査番号k=2におけるハーフトーン画像のドット配置を決める際に参照される、ドットが打たれやすいか否かを示す情報である。
【0071】
まず、図19に示すステップS301において、走査Dutyバッファ107のデータに対してフィルタ処理を行う。すなわち、図18に示す走査Dutyフィルタ処理部501において、走査Dutyバッファ107内のシアン走査DutyであるC_dに対して、下式のように所定のフィルタF_mによるフィルタ処理を行ってC_dfを算出する。図20に、フィルタ処理された走査Dutyデータの模式図を示す。
【0072】
C_df=C_d*F_m ・・・(30)
ただし、*はコンボリューションを示す
なお、本実施形態におけるフィルタF_mは、図24の2401に示すようにフィルタサイズが3×3正方形で、係数がほぼ同心円に並ぶ等方的加重平均フィルタとして説明するが、この形態に限るものではない。例えば、フィルタサイズは5×5,7×7,9×9のような正方形でも、3×5,5×7,5×9のような長方形でも良いし、フィルタ係数が楕円である非等方フィルタであっても良い。また、ローパス特性に限らず、バンドパス特性や、ハイパス特性のフィルタであっても良い。
【0073】
次にステップS302において、ハーフトーンデータフィルタ処理部502が、Out_cに対して、下式のように所定のローパスフィルタLPF_bによるフィルタ処理を行ってOut_c_LPFを算出する。図21に、フィルタ処理されたハーフトーンデータの模式図を示す。
【0074】
Out_c_LPF=Out_c*LPF_b ・・・(31)
本実施形態におけるLPF_bの係数もF_mと同様に、図24の2402に示すようにフィルタサイズが3×3正方形で、係数がほぼ同心円に並ぶ等方的加重平均フィルタとして説明するが、この形態に限るものではない。ただし、LPF_bはローパス特性を有することが好ましい。また、本実施形態ではF_mとLPF_bとして同じフィルタ係数を用いているが、もちろん異なる係数であっても良い。
【0075】
次にステップS303において、走査Dutyデータシフト部504は、走査Dutyフィルタ処理部501から出力されたデータC_dfを、一回の紙送り量LF=Nzzl/Pass=16/4=4だけ上にシフトする。図22に、シフトされた走査Dutyデータの模式図を示す。シフトした走査DutyデータC'_dfは、以下のように算出される。なお、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0076】
C'_df(nx,ny)=C_df(nx,ny+LF) ・・・(32)
式(32)において、ny+LF≧Nzzlのときは、C'_df(nx,ny)=0とする。すなわち、シフト後の下端LFノズル分(この場合4ノズル分)には0を代入する。
【0077】
そしてステップS304でも同様に、ハーフトーンデータシフト部505において、データOut_c_LPFを紙送り分上にシフトする。図23に、シフトされたハーフトーンデータの模式図を示す。シフトしたハーフトーンデータOut'_c_LPFは、以下のように算出される。なお、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0078】
Out'_c_LPF(nx,ny)=Out_c_LPF(nx,ny+LF) ・・・(33)
式(33)においても式(32)と同様に、ny+LF≧Nzzlのときは、Out'_c_LPF(nx,ny)=0とする。すなわち、シフト後の下端LFノズル分(この場合4ノズル分)には0を代入する。
【0079】
そしてステップS305でも同様に、更新前制約情報データシフト部505において、更新前の制約情報データC_rを紙送り分上にシフトする。シフトされた制約情報データをC'_rは、以下のように算出される。なお、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0080】
C'_r(nx,ny)=C_r(nx,ny+LF) ・・・(34)
式(34)においても式(32)と同様に、ny+LF≧Nzzlのときは、C'_r(nx,ny)=0とする。すなわち、シフト後の下端LFノズル分(この場合4ノズル分)には0を代入する。
【0081】
以上のように、ステップS303からS305において各バッファデータを紙送り量LF分だけシフトさせる理由は、次の走査番号にて形成されるハーフトーンドット配置が、記録媒体上で相対的に紙送り量LF分ずれるためである。
【0082】
次にステップS306では減算部506において、走査Dutyデータシフト処理部504で算出されたデータから、ハーフトーンデータシフト部505で算出されたデータを減算する。そしてステップS307で重み積算部507において、重み係数h(実数)を積算する。
【0083】
次にステップS308で加算部508において、重み積算部507で算出されたデータと、更新前制約情報データシフト部503にてシフトされたシアンの制約情報を加算して、更新後の制約情報C_rを算出する。下式に、上記ステップS306〜S308により算出される、更新後の制約情報C_rの演算式を示す。
【0084】
C_r←(−Out'_c_LPF+C'_df)×h+C'_r ・・・(35)
ここで算出された制約情報C_rは、次の走査番号k=2以降(すなわち現走査番号kに対する走査番号k+1)のハーフトーン処理用の制約情報として、制約情報バッファ109に保存される。
【0085】
以下、本実施形態における制約情報の更新方法を示す式(35)について、詳細に説明する。
【0086】
式(35)におけるOut'_c_LPFは、ハーフトーンデータフィルタ処理部502にてLPF_bを用いて、走査番号kのハーフトーン画像に対して低周波成分のみを取り出したデータである。式(35)においては、これに負号を付して−Out'_c_LPFとし、更新前の制約情報から減算することで、低周波成分が除去されたデータ、すなわち(−Out'_c_LPF+C'_df)を負の値にする。これにより、次の走査番号k+1以降でドットが打たれにくくなる。すなわちこの処理によって、次の走査番号k+1以降において、走査番号k以前に打たれたハーフトーン画像の低周波成分が逆位相となる効果がある。
【0087】
このように−Out'_c_LPFによって、直前に配置されたドットの低周波成分が逆位相となるが、低周波成分のみを逆位相とすることによって得られる効果について、図25を参照して説明する。
【0088】
図25はレジストレーションズレ(以下、レジズレ)に対する印刷画像の変化を、高周波領域と低周波領域に分けて模式的に表した図である。まず、印刷画像の高周波領域について考える。走査番号kと走査番号k+1の濃度分布が逆位相となる場合(2601)は、レジズレなしの時に濃度分布の山谷が補間されており、ドットが紙面を満遍なく埋めるため紙白部分が発生しづらい。そのため濃度が高くなるが、例えばわずかに(図25では20μm)がズレただけで、互いの濃度分布が重なる傾向になり、紙白部分が見えやすくなって濃度が薄くなる傾向になる。すなわち、印刷画像上、高周波成分で濃度分布が逆位相となると、レジズレに対する濃度耐性が低くなる。しかし、高周波成分で濃度分布が無相関となる場合(2602)は、多少レジズレが発生しても濃度は変わりづらく、粒状性悪化もほとんど起こらない。
【0089】
一方、印刷画像の低周波領域については、濃度分布が逆位相となる場合(2603)、視覚上目障りな低周波成分が少なくなり粒状性悪化が抑制される。さらに、多少レジズレが発生しても分布上の山谷の関係がほとんど変わらないので、濃度耐性は強い。しかし、低周波成分で濃度分布を無相関とする場合(2604)は、レジズレの発生の有無に関わらず、低周波成分が画像上に現れてしまうため、粒状性が悪化してしまう。
【0090】
以上のように図25によれば、印刷画像上のレジズレに対して濃度ムラ耐性が強く、かつ粒状性を良好とするためには、走査間において以下の2点を実現することが重要となることが分かる。すなわち、1)視覚上目障りな低周波成分は逆位相にする。2)高周波成分は逆位相にせず、無相関関係にする。
【0091】
ここで走査番号kとk+1のドット配置が実際にどのようになっているかを、走査番号1,2、ノズル数170、パス数2を例として以下に述べる。
【0092】
この時の走査番号kと走査番号k+1の同一記録媒体座標上に形成されるドット配置を、図51の(a),(b)にそれぞれ示す。さらに、この(a),(b)に示すドット配置が統合された最終出力画像を(c)に示す。(a)はノズル下端1/2のハーフトーン画像(縦サイズ170/2=85)であり、(b)はノズル上端1/2のハーフトーン画像(縦サイズ170/2=85)である。走査番号k+1のドット配置を算出する際に、走査番号k+1の画像(b)は、(a)と同一記録媒体上に画像を形成するため、ノズル上端1/2の画像となるのである。
【0093】
図51の(a)に対して、フーリエ解析を行うった結果を図52に示す。図51(a)は、多値データに対して誤差拡散処理を施すため、分散性が高く、図52に示すように低周波成分が除去された画像となる。
【0094】
また、図51の(a),(b)のクロススペクトルを算出し、空間周波数毎の位相差を算出したグラフを図53に示す。図53は、横軸の空間周波数と、縦軸の(a),(b)の平均位相差の関係を示しており、10[cycle/mm]以下では完全に逆位相ではないものの逆位相に近い値となっている。また10[cycle/mm]以上では逆位相と同位相の中間値となり、位相差が無相関となっている。よって、図53より、上述した1)視覚上目障りな低周波成分は逆位相にする、2)高周波成分は逆位相にせず、無相関関係にする、という関係が満足されることが理解できよう。
【0095】
これは、式(35)にて算出される制約情報が、走査番号kのノズル下端1/2に形成されたハーフトーン画像の低周波成分を減算したデータとなり、その制約情報データを式(22)で加算され、走査番号k+1のハーフトーン処理に渡されるためである。
【0096】
上記例では、走査番号kとk+1の隣り合う走査間における特性について言及したが、この特性は任意の走査間でも成り立つ。
【0097】
式(35)においては、ハーフトーンデータフィルタ処理部502にて算出されたOut'_c_LPFを減算することにより、低周波成分を逆位相とする効果がある。さらに、高周波成分については制約情報として何ら考慮しないことにより、高周波成分を無相関とする効果がある。
【0098】
次に、式(35)においてC'_dfに注目する。式(35)におけるC'_dfは、走査Dutyデータフィルタ処理部501にてF_mを用いて、走査番号kでのDutyデータに対するフィルタリングを行ったデータである。式(35)においてはこのC'_dfを加算しているが、その理由は以下の2点にある。
【0099】
まず1点目は、括弧内の平均値を0にすることで、制約情報C_rの平均を常に0に保ち、走査Duty濃度とハーフトーン処理の濃度を近づけるためである。これは、上述した−Out'_c_LPFによって負の値になったデータのみを制約情報として扱うと,式(22)に示すIcがC_dよりも小さくなってしまい、ハーフトーン処理におけるドット数が少なくなってしまうからである。誤差拡散法では入力濃度と出力濃度が常に同じになるよう動作するため,C_rは常に平均0に保たなければならない。ここで、C'_dfはOut'_c_LPFと同じ濃度であるため、C'_dfを加算することで,C_rは常に平均0を保つことができる。
【0100】
次に2点目の理由は、出力画像の空間周波数特性制御を行うことである。上述したように、式(35)の括弧内の平均値は0でなければならないが、Out'_c_LPFだけにLPF_bをかけると、括弧内のOut'_c_LPFとC'_dfが空間周波数的に異ってしまうため、エッジ強調が発生してしまう。言い換えると、Out_cだけぼかし処理を行い、C_dにぼかし処理を行なわないで減算を行うと、アンシャープマスキングと同等の処理となり、エッジ強調が起こってしまう。そこで、C_dにもOut_cと同じフィルタをかければ、エッジ強調抑制が可能となる。
【0101】
ただし、普通紙やマット紙などの非コート紙が記録媒体である場合、画像の輪郭がボケる傾向があるため、必ずしも双方に同じ処理を実施する必要はなく、たとえば、意図的にエッジ強調を起こさせるように、F_mの広がり度合いを狭くしたりしてもよい。
【0102】
式(35)においてはさらに、重み係数hにて制約情報の強度を調整できる。例えば、h=1.0のときは、フィルタにて演算された制約情報をそのまま出力でき、h=0.0のときは、制約情報を演算しないのと等価な出力が得られる。なお、式(35)の括弧内は平均0になっているため、hにどのような値を入れても、平均値0は保たれる。
【0103】
以上で図3のステップS109における制約情報演算処理が終了する。
【0104】
次にステップS110において、制約情報の演算結果で制約情報バッファ109を更新する。このように更新された制約情報は、次の走査番号以降(現走査番号がkならば次の走査番号はk+1)のドット配置を決定するための情報として参照される。
【0105】
ここで、制約情報バッファ109の更新について、図5の領域1を参照して詳細に説明する。
【0106】
本実施形態では、走査番号k=2におけるハーフトーン処理は、走査番号k=1において形成された領域1のドットパターンの低周波成分を逆位相にする必要がある。そのため、式(30)〜(35)によって、一回の紙送り量LF=Nzzl/Pass=16/4=4だけシフトされ、これを走査番号k=2の制約情報とするのは上述のとおりである。
【0107】
しかし、式(30)〜(35)は、走査番号k=1,とk=2の隣接関係において「低周波成分を逆位相にする」ことに限らない。例えば図5に示すように、走査番号k=3におけるハーフトーン処理では、走査番号k=1,2において形成された領域1のトータルドットパターンに対して、低周波成分を逆位相にする。これは、式(30)〜(35)では走査番号が1インクリメントされると、一回の紙送り量LF=Nzzl/Pass=16/4=4ずつシフトされながら、常に制約情報バッファ109に制約情報が保持されつつ、更新を繰り返すためである。
【0108】
同様に、走査番号k=4におけるハーフトーン処理では、走査番号k=1,2,3において形成された領域1のトータルドットパターンに対して、低周波成分を逆位相にする。
【0109】
すなわち本実施形態では、記録媒体上の同一領域において、既に記録されたトータルドットパターンの低周波成分を常に逆位相にするように、走査ごとのドットパターンが形成される。その結果、レジストレーションズレの発生の有無に関わらず、常に良好な粒状性を確保し、さらに、レジストレーションズレによる濃度ムラを低減することが可能となる。
【0110】
図3に戻り、次にステップS111において、ハーフトーンデータを受けたプリンタ2では、該画像データに適合するインク色が選択され、印字動作が開始される。ステップS111においては、記録ヘッド201が記録媒体に対して左から右に移動しながら、一定の駆動間隔で各ノズルを駆動して記録媒体上に画像を記録する主走査を1回行う。さらに該主走査が終了すると、主走査と垂直方向の走査である副走査が1回行なわれる。
【0111】
次にステップS112において、全ての走査が終了したか否かの判定を行う。終了した場合には一連の画像形成処理が完了し、終了していない場合にはステップS103に戻る。以上により、処理の全てが終了する。
【0112】
以上説明したように本実施形態によれば、主走査毎に2値化処理を実施する記録方式において、単一の主走査内で形成される出力ドット配置に高い分散性を持たせて、レジストレーションズレに対する粒状性劣化を抑制する際に、さらに以下の効果を得る。すなわち、複数の主走査間の出力ドット配置においては、低周波成分を逆位相にすることで、レジストレーションズレの発生有無に関わらず良好な粒状性を確保する。さらに、高周波成分では相関を少なくしてランダム性を持たせることで、レジストレーションズレによる濃度ムラを低減することが可能となる。
【0113】
具体的には、記録媒体上の同一領域において、既に記録された同一色ドットパターンの低周波成分を常に逆位相にするよう、走査ごとのドットパターンを誤差拡散法で形成する。すなわち式(22)に示すように、入力データC_dに対し、記録媒体上の同一箇所に既に形成されたドットパターンの低周波成分を取り出した制約情報C_rを反映させることによって、低周波成分を逆位相とし、高周波成分を無相関にする。これにより、印刷画像上のレジズレに対して濃度ムラ耐性が強く、かつ粒状性を良好とすることが可能となる。
【0114】
なお、低周波成分を逆位相とし、高周波成分を無相関となることの実現は、本実施形態の手法に限られるものではない。他の手法として、低周波成分を取り出した制約情報を、例えば閾値や量子化誤差に反映させても良い。
【0115】
また、本実施形態ではハーフトーン処理として誤差拡散法を用いる例を示したが、これに代えて平均誤差最小法を用いても良い。
【0116】
<第2実施形態>
以下、本発明に係る第2実施形態について説明する。上述した第1実施形態では、ハーフトーン処理部108にて誤差拡散処理を行う例を説明した。第2実施形態では、誤差拡散法に代えてディザ法を用いる例を示す。上述したように、ディザ法は誤差拡散法に比べて高速に処理を行えるため、第2実施形態では高速処理が可能となり、さらに第1実施形態と同様に低周波成分のみを制約情報とするため、第1実施形態と同様の効果が得られる。
【0117】
第2実施形態における画像形成装置の詳細構成は、ハーフトーン処理部108以外は第1実施形態と同様である。以下では説明を簡略化するため、第1実施形態と同様に4パス印字、走査番号k=1におけるシアンのハーフトーン処理の詳細について、図26のブロック図と図27のフローチャートを用いて説明する。図26は、第2実施形態におけるハーフトーン処理部108の詳細構成を示すブロック図であり、図27は第2実施形態におけるハーフトーン処理の詳細を示すフローチャートである。
【0118】
まず図27に示すステップS401において、図26に示す制約情報加算部601で下式に示すように、シアン走査DutyであるC_dと、シアン制約情報であるC_rの合計値データIcを算出する。ただし、走査番号k=1の制約情報C_rは全て0である。
【0119】
Ic=C_d+C_r ・・・(36)
次にステップS402で量子化部603において、上記I_cとしきい値マトリクス602の該当要素値との比較を行い、ステップS403にて2値化データを出力する。ここで図28に、第2実施形態におけるディザ処理による2値化の概要を示す。このときの2値化の規則は、しきい値マトリクス602の要素値Th(0〜255)が以下のように表される。なお、Thは図28に示すように、印刷画像上のアドレスに対応した閾値群である。
【0120】
I_c≦Thのとき、 Out_c=0 ・・・(37)
Th<I_cのとき、 Out_c=255 ・・・(38)
第2実施形態におけるThとしては、周知のしきい値マトリクスを使用すれば良い。例えばBayer配列であっても良いし、ドット集中型であっても良いし、ブルーノイズマスク配列であっても良い。また、しきい値マトリクス602は、走査番号毎に異なるマトリクスを用いても良いし、常に同一のマトリクスを用いても良い。
【0121】
そしてステップS404において、上述したステップS401〜S403の処理をバンド内のアドレス(0,0)〜(W−1,Nzzl−1)まで行なうことによって、ハーフトーンデータのドット位置が決定される。これにより、走査番号k=1でのハーフトーン処理が終了し、その結果、各色分の1回のヘッド動作で形成される2値画像が、各色分のハーフトーン画像格納バッファ110に格納される。
【0122】
以上説明したように第2実施形態によれば、ハーフトーン処理を誤差拡散に代えてディザ法で行うことによって、第1実施形態に比べて高速処理を可能としつつ、第1実施形態と同様にレジズレに対する耐性を持った高画質な画像形成が可能となる。
【0123】
<第3実施形態>
以下、本発明に係る第3実施形態について説明する。第3実施形態における画像形成装置の詳細構成は上述した第1実施形態と同様であるため、説明を省略する。
【0124】
上述した第1実施形態では、各色独立に制約情報バッファ109を各色で独立に設け、その制約情報と走査Dutyデータの合計値に対して誤差拡散処理を行う例を示した。上述した第1実施形態では、記録媒体上の同一領域において、既に記録された同一色ドットパターンの低周波成分を常に逆位相にするよう、走査ごとのドットパターンを形成する。これにより、レジストレーションズレの発生の有無に関わらず良好な粒状性を確保し、さらに、レジストレーションズレによる濃度ムラを低減することが可能となった。
【0125】
第3実施形態では、ハーフトーン処理において制約情報を2色以上で共用し、一方色による誤差拡散処理を、他方色の処理結果に従属して行うことを特徴とする。これにより、制約情報バッファ数を削減でき、さらに色間で低周波が逆位相になるため、例えばシアン、マゼンタドットが重なって濃いブルードットが発生することにより粒状性が悪化することも防げる。
【0126】
以下、第3実施形態におけるハーフトーン処理について、図29のフローチャートを参照して説明する。なお、図29におけるステップS501〜S505は、上述した第1実施形態において図3に示したステップS101〜S105と同様の処理であるため、説明を省略し、ステップS506以降の処理について説明する。
【0127】
ステップS506においてハーフトーン処理部108は、走査Dutyバッファ107のシアンデータと制約情報バッファ109の制約情報の合計値を、2レベルの階調値(2値データ)に変換するシアン用のハーフトーン処理を行う。なお、第3実施形態における制約情報バッファ109は図30に示すように、縦方向がノズル数(Nzzl)、横方向が画像のXサイズ(W)に相当するバンド状の制約情報データを有し、これをシアンとマゼンタで共用する。
【0128】
制約情報バッファ109には、記録される画像上のアドレスに2値画像が形成されやすいか否かを示す制約情報が格納され、走査番号kごとに更新される。ただし、走査番号k=1の処理開始時には、初期値として全て0が代入されている。
すなわち、制約情報をシアンとマゼンタで共用すると、アドレス(X,Y)における制約情報はCM_r(X,Y)、Lc_r(X,Y)、Lm_r(X,Y)、Y_r(X,Y)、K_r(X,Y)の5つとなり、これらの初期値は以下のように記述される。なお、0≦nx<画像Xサイズ、0≦ny<Nzzl(ノズル列数:この場合16)である。
【0129】
CM_r(nx,ny)=0 ・・・(39)
Lc_r(nx,ny)=0 ・・・(40)
Lm_r(nx,ny)=0 ・・・(41)
Y_r(nx,ny)=0 ・・・(42)
K_r(nx,ny)=0 ・・・(43)
そのため、Lc_r、Lm_r、Y_r、K_r、については走査番号k≧2の時に有意な制約情報に更新されていくことになるが、シアンマゼンタ共用の制約情報CM_rについては、同一走査番号内で制約情報を更新していく。CM_rの更新についての詳細は後述する。
【0130】
第3実施形態のハーフトーン処理においては、上述した第1実施形態と同様に、多値の入力画像データを2値画像(または2値以上で入力階調数より少ない階調数の画像)に変換する処理として、誤差拡散法を用いる。もちろん、これに代えて、平均誤差最小法や第2実施形態で説明したディザ法を使用することも可能である。
【0131】
以下、説明を簡略化するため、4パス印字、走査番号k=1におけるシアンのハーフトーン処理についての詳細を、図31のブロック図と図32のフローチャートを用いて説明する。図31は第3実施形態におけるハーフトーン処理部108において、特にシアンの処理に関する詳細構成を示すブロック図であり、図32は第3実施形態におけるシアンのハーフトーン処理の詳細を示すフローチャートである。
【0132】
まず図32に示すステップS601において、シアンの走査Dutyと制約情報の合計を入力する。すなわち、図31に示す制約情報加算部701において、シアン走査DutyであるC_dとシアンマゼンタ制約情報CM_rの合計値データIcを以下のように算出する。ただし、走査番号k=1のとき、制約情報C_rは全て0である。
【0133】
Ic=C_d+CM_r ・・・(44)
次にステップS602において、誤差拡散処理用に累積誤差を加算する。以下、第3実施形態における累積誤差の加算処理について詳細に説明する。
【0134】
第3実施形態においても、誤差拡散処理のための誤差拡散係数として、図14に示すようにK1〜K4の4つの係数を持つとする。例えば、K1=7/16、K2=3/16、K3=5/16、K4=1/16とする。ただし、拡散係数は上記のように固定とする必要はなく、階調に応じて変更させても良いし、上記4係数に限らずさらに多くの係数を持たせても良い。
【0135】
このような誤差拡散係数により誤差を拡散、累積するために、ハーフトーン処理部108では累積誤差ラインバッファをシアンに対して4組確保し(702〜705)、使用する累積誤差ラインバッファを走査番号ごとに、例えば以下のように切り替える。
【0136】
「走査番号k=1,5,・・・,4n+1(nは0以上の整数)のとき」
シアン(4n+1)累積誤差ラインバッファ702を使用
「走査番号k=2,6,・・・,4n+2のとき」
シアン(4n+2)累積誤差ラインバッファ703を使用
「走査番号k=3,7,・・・,4n+3のとき」
シアン(4n+3)累積誤差ラインバッファ704を使用
「走査番号k=4,8,・・・,4n+4のとき」
シアン(4n+4)累積誤差ラインバッファ705を使用
なお、各累積誤差ラインバッファ702,703,704,705はそれぞれ、図33の3301〜3304に示すような4組の記憶領域からなる。すなわち、「Ec1_0,Ec1(x)」、「Ec2_0,Ec2(x)」、「Ec3_0,Ec3(x)」、「Ec4_0,Ec4(x)」の4組である。例えば、シアン(4n+1)累積誤差バッファ702は、1個の記憶領域Ec1_0と、入力画像の横画素数Wと同数の記憶領域Ec1_(x)(x=1〜W)を有する。また、各シアン累積誤差ラインバッファ702,703,704,705はそれぞれ、走査番号k=1,2,3,4の処理開始時のみ、全て初期値0で初期化されている。例えば走査番号k=5の処理開始時には、シアン(4n+1)累積誤差バッファ702は初期化されない。第3実施形態では4パス印字を行うため、1色あたり上述した4組の累積誤差ラインバッファが必要になり、詳細は後述するが、マゼンタについての累積誤差ラインバッファも同様に4組必要となる。
【0137】
走査番号k=1の場合、シアン(4n+1)累積誤差バッファ702を使用した誤差拡散処理が実施される。すなわち、累積誤差加算部706において、シアン走査DutyとCM制約情報の合計である入力データ値に対して、入力画素データの横画素位置xに対応する誤差Ec1(x)が加算される。即ち、入力された注目データをIc、累積誤差加算後のデータをIc'とすると、以下の式が成り立つ。
【0138】
Ic'=Ic+Ec1(x) ・・・(45)
次にステップS603において、閾値選択部707は閾値Tを選択する。閾値Tは、例えば以下のように設定される。
【0139】
T=128 ・・・(46)
或いは、ドット生成遅延を回避するため、平均量子化誤差が小さくなるよう、C_dに応じて閾値Tを以下のように細かく変更しても良い。
【0140】
T=f(C_d) ・・・(47)
次にステップS604において、量子化部708は、誤差加算後の画素データIc'と閾値Tを比較し、ドットの2値化結果であるOut_cを決定する。その規則は次の通りである。
【0141】
Ic'<Tのとき、
Out_c=0 ・・・(48)
Ic'≧Tのとき、
Out_c=255 ・・・(49)
次にステップS605において、誤差演算部709は、注目画素Icに誤差を加算した画素データIc'と、出力画素値Out_cとの差分Err_cを、次のように算出する。
【0142】
Err_c(x)=Ic'−Out_c ・・・(50)
次にステップS606において、誤差拡散部710が誤差を拡散する。即ち、シアン(4n+1)累積誤差ラインバッファ702を用いて、横画素位置xに応じた誤差Err_c(x)の拡散処理が、以下のように行われる。
【0143】
Ec1(x+1)←Ec1(x+1)+Err_c(x)×7/16 (x<W)
Ec1(x−1)←Ec1(x−1)+Err_c(x)×3/16 (x>1)
Ec1(x)←Ec1_0+Err_c(x)×5/16 (1<x<W)
Ec1(x)←Ec1_0+Err_c(x)×8/16 (x=1)
Ec1(x)←Ec1_0+Err_c(x)×13/16 (x=W)
Ec1_0←Err_c(x)×1/16 (x<W)
Ec1_0←0 (x=W)
・・・(51)
以上で、走査番号k=1のシアン1画素分の2値化(量子化値0,255)が完了する。
【0144】
以上説明したステップS601〜S606の処理を、バンド内のアドレス(0,0)〜(W−1,Nzzl−1)まで行う(S607)ことにより、シアンハーフトーンデータのドット位置、すなわちシアンドットのオン/オフを決定することができる。
【0145】
図29に戻り、以上説明したようにステップS506におけるシアンのハーフトーン処理が終了すると、次に、ハーフトーン処理後のシアン2値画像データはハーフトーン画像格納バッファ110に格納される(S507)。ここで図34に、走査番号k=1のシアン走査Dutyをハーフトーン処理した結果が、ハーフトーン画像格納バッファ110に格納された様子を示す。同図に示されるようにハーフトーン画像格納バッファ110には、走査Dutyの画素位置に対応する(ノズル数:Nzzl)×(画像Xサイズ:W)分の2値画像データが格納される。
【0146】
次に、ハーフトーン画像格納バッファ110に蓄えられた、縦方向がノズル数(Nzzl)、横方向が画像のXサイズ(W)に相当するシアンハーフトーンのバンドデータが、画像出力端子112より出力される(S508)。
【0147】
すると次に、制約情報演算部111においてシアンドット配置に基づいてCM制約情報を演算する(S509)。なお、詳細は後述するが第3実施形態においては、まずシアンドット配置に基づいてCM制約情報を算出した後、該CM制約情報に基づいてマゼンタドット配置を決定する。そして、該決定されたマゼンタドット配置に基づいてCM制約情報を更新し、これを次の走査番号に対応する制約情報とする。
【0148】
以下、ステップS509におけるシアンドット配置に基づくCM制約情報の演算処理について、図35のブロック図と図36のフローチャートを用いて詳細に説明する。図35は、制約情報演算部111におけるシアンに関する詳細構成を示すブロック図であり、図36は該構成において行われる制約情報演算処理を示すフローチャートである。上述したように、第3実施形態における制約情報はシアンマゼンタ共用であるため、シアンドットの制約情報は、同一走査番号のマゼンタドット配置を決める上での制約となる。
【0149】
まず、図36に示すステップS701において、走査Dutyバッファ107のデータに対してフィルタ処理を行う。すなわち、図35に示す走査Dutyフィルタ処理部801において、走査Dutyバッファ107内のシアン走査DutyであるC_dに対して、下式のように所定のフィルタF_mによるフィルタ処理を行ってC_dfを算出する。図37に、フィルタ処理されたシアン走査Dutyデータの模式図を示す。
【0150】
C_df=C_d*F_m ・・・(52)
ただし、*はコンボリューションを示す
なお、第3実施形態におけるフィルタF_mは、図24の2401に示すようにフィルタサイズが3×3正方形で、係数がほぼ同心円に並ぶ等方的加重平均フィルタとして説明するが、この形態に限るものではない。例えば、フィルタサイズは5×5,7×7,9×9のような正方形でも、3×5,5×7,5×9のような長方形でも良いし、フィルタ係数が楕円である非等方フィルタであっても良い。また、ローパス特性に限らず、バンドパス特性や、ハイパス特性のフィルタであっても良い。
【0151】
次にステップS702において、ハーフトーンデータフィルタ処理部802が、Out_cに対して、下式のように所定のローパスフィルタLPF_bによるフィルタ処理を行ってOut_c_LPFを算出する。図38に、フィルタ処理されたシアンハーフトーンデータの模式図を示す。
【0152】
Out_c_LPF=Out_c*LPF_b ・・・(53)
本実施形態におけるLPF_bの係数もF_mと同様に、図24の2402に示すようにフィルタサイズが3×3正方形で、係数がほぼ同心円に並ぶ等方的加重平均フィルタとして説明するが、この形態に限るものではない。ただし、LPF_bはローパス特性を有することが好ましい。また、本実施形態ではF_mとLPF_bとして同じフィルタ係数を用いているが、もちろん異なる係数であっても良い。
【0153】
次にステップS703では減算部803において、走査Dutyフィルタ処理部801で算出されたデータから、ハーフトーンデータフィルタ処理部802で算出されたデータを減算する。そしてステップS704で重み積算部804において、重み係数h1(実数)を積算する。
【0154】
次にステップS705で加算部805において、重み積算部804で算出されたデータと、更新前のCM制約情報を加算して、シアン反映後の制約情報CM_rを算出し、これをマゼンタのハーフトーン処理の制約情報として保存しておく。
【0155】
下式に、上記ステップS703〜S705により算出される、シアン反映後の制約情報CM_rの演算式を示す。
【0156】
CM_r←(−Out_c_LPF+C_df)×h1+CM_r ・・・(54)
以上で、図29のステップS509におけるシアンドット配置に基づくCM制約情報の演算処理が終了する。
【0157】
次に、ステップS510において、CM制約情報の演算結果によりシアンマゼンタ共用の制約情報バッファ109を更新する。
【0158】
上述したように、第3実施形態においては第1実施形態と異なり、この段階では制約情報を相対的に紙送り量LF上方へシフトしない。これは、同一走査番号のマゼンタハーフトーン画像についてはまだ処理されておらず、制約情報はマゼンタハーフトーンデータの処理に利用されるためである。第3実施形態では、シアンマゼンタの制約情報を共用しているため、同一走査番号のマゼンタドット配置が決まるまで、制約情報のシフトを行わない。
【0159】
次にステップS511において、ハーフトーン処理部108にて、走査Dutyバッファ107のマゼンタデータと制約情報バッファ109の合計値に対し、2レベルの階調値(2値データ)へ変換する、マゼンタ用のハーフトーン処理を行う。なお、第3実施形態における制約情報バッファ109はシアンマゼンタ共用であるため、上述した図30に示すバッファ形態である。
【0160】
以下、マゼンタのハーフトーン処理についての詳細を、図39のブロック図と図40のフローチャートを用いて説明する。図39は第3実施形態におけるハーフトーン処理部108において、特にマゼンタの処理に関する詳細構成を示すブロック図であり、図40は第3実施形態におけるマゼンタのハーフトーン処理の詳細を示すフローチャートである。
【0161】
まず図40に示すステップS801において、マゼンタの走査Dutyと制約情報の合計を入力する。すなわち、図39に示す制約情報加算部901において、マゼンタ走査DutyであるM_dとシアンマゼンタ制約情報CM_rの合計値データImを以下のように算出する。ただし、ここで入力される制約情報CM_rには、上記(54)式により既にシアン制約情報が反映されている。
【0162】
Im=M_d+CM_r ・・・(55)
次にステップS802において、誤差拡散処理用に累積誤差を加算する。以下、第3実施形態における累積誤差の加算処理について詳細に説明する。ここでも、誤差拡散処理のための誤差拡散係数として、図14に示すようなK1〜K4の4つの係数を持つとする。 このような誤差拡散係数により誤差を拡散、累積するために、ハーフトーン処理部108では累積誤差ラインバッファをマゼンタに対して4組確保し(902〜905)、使用する累積誤差ラインバッファを走査番号ごとに、例えば以下のように切り替える。
【0163】
「走査番号k=1,5,・・・,4n+1(nは0以上の整数)のとき」
マゼンタ(4n+1)累積誤差ラインバッファ902を使用
「走査番号k=2,6,・・・,4n+2のとき」
マゼンタ(4n+2)累積誤差ラインバッファ903を使用
「走査番号k=3,7,・・・,4n+3のとき」
マゼンタ(4n+3)累積誤差ラインバッファ904を使用
「走査番号k=4,8,・・・,4n+4のとき」
マゼンタ(4n+4)累積誤差ラインバッファ905を使用
なお、各累積誤差ラインバッファ902,903,904,905はそれぞれ、図33の3305〜3308に示すような4組の記憶領域からなる。すなわち、「Em1_0,Em1(x)」、「Em2_0,Em2(x)」、「Em3_0,Em3(x)」、「Em4_0,Em4(x)」の4組である。例えば、マゼンタ(4n+1)累積誤差バッファ902は、1個の記憶領域Em1_0と、入力画像の横画素数Wと同数の記憶領域Em1_(x)(x=1〜W)を有する。また、各マゼンタ累積誤差ラインバッファ902,903,904,905はそれぞれ、走査番号k=1,2,3,4の処理開始時のみ、全て初期値0で初期化されている。例えば走査番号k=5の処理開始時には、マゼンタ(4n+1)累積誤差バッファ902は初期化されない。
【0164】
走査番号k=1の場合、マゼンタ(4n+1)累積誤差バッファ902を使用した誤差拡散処理を実施する。すなわち、累積誤差加算部906において、マゼンタ走査DutyとCM制約情報の合計である入力データ値に対して、入力画素データの横画素位置xに対応する誤差Em1(x)が加算される。即ち、入力された注目データをIm、累積誤差加算後のデータをIm'とすると、以下の式が成り立つ。
【0165】
Ic'=Ic+Ec1(x) ・・・(56)
次にステップS803において、閾値選択部907は閾値Tを選択する。閾値Tは、例えば以下のように設定される。
【0166】
T=128 ・・・(57)
或いは、ドット生成遅延を回避するため、平均量子化誤差が小さくなるよう、M_dに応じて閾値Tを以下のように細かく変更しても良い。
【0167】
T=f(M_d) ・・・(58)
次にステップS804において、量子化部908は、誤差加算後の画素データIm'と閾値Tを比較し、ドットの2値化結果であるOut_mを決定する。その規則は次の通りである。
【0168】
Im'<Tのとき、
Out_m=0 ・・・(59)
Im'≧Tのとき、
Out_m=255 ・・・(60)
次にステップS805において、誤差演算部909は、注目画素Imに誤差を加算した画素データIm'と、出力画素値Out_mとの差分Err_mを、次のように算出する。
【0169】
Err_m(x)=Im'−Out_m ・・・(61)
次にステップS806において、誤差拡散部910が誤差を拡散する。即ち、マゼンタ(4n+1)累積誤差ラインバッファ902を用いて、横画素位置xに応じた誤差Err_m(x)の拡散処理が、以下のように行われる。
【0170】
Em1(x+1)←Em1(x+1)+Err_m(x)×7/16 (x<W)
Em1(x−1)←Em1(x−1)+Err_m(x)×3/16 (x>1)
Em1(x)←Em1_0+Err_m(x)×5/16 (1<x<W)
Em1(x)←Em1_0+Err_m(x)×8/16 (x=1)
Em1(x)←Em1_0+Err_m(x)×13/16 (x=W)
Em1_0←Err_m(x)×1/16 (x<W)
Em1_0←0 (x=W)
・・・(62)
以上で、走査番号k=1のマゼンタ1画素分の2値化(量子化値0,255)が完了する。
【0171】
以上説明したステップS801〜S806の処理を、バンド内の全ての画素について行う(S807)ことにより、マゼンタのハーフトーンデータのドット位置、すなわちマゼンタドットのオン/オフを決定することができる。
【0172】
図29に戻り、以上説明したようにステップS511におけるマゼンタのハーフトーン処理が終了すると、次に、ハーフトーン処理後のマゼンタ2値画像データはハーフトーン画像格納バッファ110に格納される(S512)。ここで図41に、走査番号k=1のマゼンタ走査Dutyをハーフトーン処理した結果が、ハーフトーン画像格納バッファ110に格納された様子を示す。同図に示されるようにハーフトーン画像格納バッファ110には、走査Dutyの画素位置に対応する(ノズル数:Nzzl)×(画像Xサイズ:W)分の2値画像データが格納される。
【0173】
次に、ハーフトーン画像格納バッファ110に蓄えられた、縦方向がノズル数(Nzzl)、横方向が画像のXサイズ(W)に相当するマゼンタハーフトーンのバンドデータが、画像出力端子112より出力される(S513)。
【0174】
すると次に、制約情報演算部111においてマゼンタドット配置に基づいてCM制約情報を演算する(S514)。以下、ステップS514におけるCM制約情報の演算処理について、図42のブロック図と図43のフローチャートを用いて詳細に説明する。図42は、制約情報演算部111におけるマゼンタに関する詳細構成を示すブロック図であり、図43は該構成において行われる制約情報演算処理を示すフローチャートである。
【0175】
まず、図43に示すステップS901において、走査Dutyバッファ107のデータに対してフィルタ処理を行う。すなわち、図42に示す走査Dutyフィルタ処理部1001において、走査Dutyバッファ107内のマゼンタ走査DutyであるM_dに対して、下式のように所定のフィルタF_mによるフィルタ処理を行ってM_dfを算出する。図44に、フィルタ処理されたマゼンタ走査Dutyデータの模式図を示す。
【0176】
M_df=M_d*F_m ・・・(63)
ただし、*はコンボリューションを示す
なお、ここでのフィルタF_mとしては、シアン処理と同様のものを用いても良いが、他のフィルタであっても構わない。
【0177】
次にステップS902において、ハーフトーンデータフィルタ処理部1002が、Out_mに対して、下式のように所定のローパスフィルタLPF_bによるフィルタ処理を行ってOut_m_LPFを算出する。図45に、フィルタ処理されたマゼンタハーフトーンデータの模式図を示す。
【0178】
Out_m_LPF=Out_m*LPF_b ・・・(64)
なお、本実施形態におけるLPF_bとしても、シアン処理と同様のものを用いても、他のフィルタであっても構わない。
【0179】
次にステップS903において、走査Dutyデータシフト部1003は、走査Dutyフィルタ処理部1001から出力されたデータM_dfを、一回の紙送り量LF=Nzzl/Pass=16/4=4だけ上にシフトする。図46に、シフトされたマゼンタ走査Dutyデータの模式図を示す。シフトした走査DutyデータM'_dfは、以下のように算出される。なお、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0180】
M'_df(nx,ny)=M_df(nx,ny+LF) ・・・(65)
式(65)において、ny+LF≧Nzzlのときは、M'_df(nx,ny)=0とする。すなわち、シフト後の下端LFノズル分(この場合4ノズル分)には0を代入する。 そしてステップS904でも同様に、ハーフトーンデータシフト部1004において、データOut_m_LPFを紙送り分上にシフトする。図47に、シフトされたマゼンタハーフトーンデータの模式図を示す。シフトしたマゼンタハーフトーンデータOut'_m_LPFは、以下のように算出される。なお、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0181】
Out'_m_LPF(nx,ny)=Out_m_LPF(nx,ny+LF) ・・・(66)
式(66)においても、ny+LF≧Nzzlのときは、Out'_m_LPF(nx,ny)=0とする。すなわち、シフト後の下端LFノズル分(この場合4ノズル分)には0を代入する。
【0182】
そしてステップS905でも同様に、制約情報データシフト部1005において、シアン反映済みの制約情報データCM_rを紙送り分上にシフトする。シフトされた制約情報データをCM'_rは、以下のように算出される。なお、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0183】
CM'_r(nx,ny)=CM_r(nx,ny+LF) ・・・(67)
式(67)においても、ny+LF≧Nzzlのときは、CM'_r(nx,ny)=0とする。すなわち、シフト後の下端LFノズル分(この場合4ノズル分)には0を代入する。
【0184】
上述したように、次の走査番号用の制約情報を算出するためには、相対的に紙送り量LF上方にシフトさせ、さらに、下端LFノズル分は0を代入する必要がある。ここで、マゼンタ処理においてバッファデータを紙送り量LFだけシフトさせる理由は、同一走査番号におけるシアン、マゼンタのハーフトーン画像が、双方とも既に処理済みだからである。さらに、第3実施形態ではシアンマゼンタの制約情報を共用しているため、同一走査番号におけるシアン、マゼンタの双方のドット配置の決まった後、制約情報をLF分上方にシフトさせる。
【0185】
次にステップS906では減算部1006において、走査Dutyデータシフト部1003で算出されたデータから、ハーフトーンデータシフト部1004で算出されたデータを減算する。そしてステップS907で重み積算部1007において、重み係数h2(実数)を積算する。
【0186】
次にステップS908で加算部1008において、重み積算部1007で算出されたデータと、シフト済みのCM制約情報を加算して、シアンマゼンタ反映後の制約情報CM_rを算出する。
【0187】
下式に、上記ステップS906〜S908により算出される、シアンマゼンタ反映後の制約情報CM_rの演算式を示す。
【0188】
CM_r←(−Out'_m_LPF+M'_df)×h2+CM'_r ・・・(68)
以上で、図29のステップS514における、マゼンタドット配置に基づくCM制約情報の演算処理が終了する。
【0189】
次にステップS515において、CM制約情報の演算結果で制約情報バッファ109を更新する。このように更新されたCM制約情報は、次の走査番号k+1以降のドット配置を決定するための情報として参照される。
【0190】
第3実施形態では上述した処理によって第1実施形態と同様に、記録媒体上の同一領域において、既に記録されたドットパターンの低周波成分を常に逆位相にするように、走査ごとのドットパターンが形成される。ただし、第1実施形態では同一色のドットについて低周波成分を逆位相にするようドットパターンが形成されるが、第3実施形態では、共用の制約情報によって相互に低周波成分が逆位相にするようにドットパターンが形成されることを特徴とする。
【0191】
したがって第3実施形態によれば、制約情報バッファ数を削減できることはもちろんのこと、異色間において低周波が逆位相になるため、例えば、シアン、マゼンタドットが重なって濃いブルードットとなり粒状性が悪化するような不具合を防ぐことができる。
【0192】
次にステップS516において、ハーフトーンデータを受けたプリンタ2では、該画像データに適合するインク色が選択され、印字動作が開始される。ステップS516においては、記録ヘッド201が記録媒体に対して左から右に移動しながら、一定の駆動間隔で各ノズルを駆動して記録媒体上に画像を記録する主走査を一回行う。さらに該主走査が終了すると、主走査と垂直方向の走査である副走査が1回行なわれる。
【0193】
次にステップS517において、全ての走査が終了したか否かの判定を行う。終了した場合には一連の画像形成処理が完了し、終了していない場合にはステップS503に戻る。以上により、処理の全てが終了する。
【0194】
以上説明したように第3実施形態によれば、制約情報を2色以上で共用することにより、第1実施形態で同一色について実現されていた低周波成分の逆位相化および高周波成分の無相関化を、異色間においても実現する。これにより、制約情報バッファ数の削減のみならず、特に低周波領域における異色ドットの重なりによる粒状性悪化を防ぐことができる。
【0195】
<第4実施形態>
以下、本発明に係る第4実施形態について説明する。第4実施形態における画像形成装置の詳細構成は上述した第1実施形態と同様であるため、説明を省略する。
【0196】
上述した第1〜3実施形態では、画像の濃度に関わらず、常に同じフィルタを用いて制約情報バッファ109を更新する例を示した。しかしながら、一般にハーフトーン処理画像においては、濃度に応じて空間周波数特性が変化するため、常に同じフィルタを用いて制約情報を生成すると、以下のような問題が生じてしまう場合がある。例えば、低濃度域ではなんら問題がない画像であっても、高濃度域で粒状性が目立ってしまったり、逆に、高濃度域では問題ない画像が、低濃度域でムラが目立ってしまうこと等がある。
【0197】
第4実施形態では、画像の濃度値に応じてフィルタを変更することを特徴とする。これにより、濃度に応じた最適な処理を行うことが可能になり、上記のように、濃度依存の画質劣化を防ぐことが可能になる。
【0198】
以下、第4実施形態におけるハーフトーン処理について説明する。該処理は基本的に上述した第1実施形態に示した図3のフローチャートと同様であるが、ステップS109の制約情報演算処理についての詳細が第1実施形態とは異なる。したがって、以下では図3のステップS109の処理についてのみ、第4実施形態における詳細を説明し、他のステップについての説明は省略する。
【0199】
ステップS109においては制約情報を演算する。ここでは説明を簡略化するため、4パス印字、走査番号k=1、ノズル数Nzzl=16におけるシアンの制約情報の演算についての詳細を、図48のブロック図と図49のフローチャートを用いて詳細に説明する。
【0200】
図48は、制約情報演算部111におけるシアンに関する詳細構成を示すブロック図であり、図49は該構成において行われる制約情報演算処理を示すフローチャートである。図48によれば、第4実施形態の制約情報演算部111は、累積走査Dutyバッファ1103と累積ハーフトーンデータバッファ1104を備え、これらに格納される累積データを用いて、制約情報の演算を行うことを特徴とする。
【0201】
なお、ここで制約情報とは上述したとおり、現在の走査番号k=1の次の走査番号k=2におけるハーフトーン画像のドット配置を決める上で、ドットが打たれやすいか否かを示す情報である。なお、現在の走査番号がkのときは、次の走査番号はk+1である。
【0202】
まず、図49に示すステップS1001において、図48に示す加算部1101で、走査Dutyバッファ107内のシアンDutyデータと、累積走査Dutyバッファ1103に保持されているデータを加算する。ここで累積走査Dutyバッファ1103には、全0の初期値が代入されており、走査番号k=1のとき、各色のデータは以下のように記述される。なお、アドレス(X,Y)における各色のバッファデータをそれぞれ、C_sum_d(X,Y)、Lc_sum_d(X,Y)、M_sum_d(X,Y)、Lm_sum_d(X,Y)、Y_sum_d(X,Y)、K_sum_d(X,Y)とする。また、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0203】
C_sum_d(nx,ny)=0 ・・・(69)
Lc_sum_d(nx,ny)=0 ・・・(70)
M_sum_d(nx,ny)=0 ・・・(71)
Lm_sum_d(nx,ny)=0 ・・・(72)
Y_sum_d(nx,ny)=0 ・・・(73)
K_sum_d(nx,ny)=0 ・・・(74)
ここでシアンに限って説明すると、ステップS1001による加算後の累積走査DutyデータC_sum_d'は、以下のように算出される
C_sum_d'=C_d+C_sum_d ・・・(75)
次にステップS1002において、図48に示す加算部1102で、ハーフトーンデータと累積ハーフトーンデータバッファ1104に保持されているデータを加算する。ここで累積ハーフトーンデータバッファ1104にも、全0の初期値が代入されており、走査番号k=1のとき、各色のデータは以下のように記述される。なお、アドレス(X,Y)におけるC,Lc,M,Lm,Y,K各色のバッファデータをそれぞれ以下のように示すとする。すなわち、Out_c_sum(X,Y)、Out_lc_sum(X,Y)、Out_m_sum(X,Y)、Out_lm_sum(X,Y)、Out_y_sum(X,Y)、Out_k_sum(X,Y)とする。また、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0204】
Out_c_sum(nx,ny)=0 ・・・(76)
Out_lc_sum(nx,ny)=0 ・・・(77)
Out_m_sum(nx,ny)=0 ・・・(78)
Out_lm_sum(nx,ny)=0 ・・・(79)
Out_y_sum(nx,ny)=0 ・・・(80)
Out_k_sum(nx,ny)=0 ・・・(81)
ここでシアンに限って説明すると、ステップS1002による加算後の累積ハーフトーンデータOut_c_sum'は、以下のように算出される
Out_c_sum'=Out_c+Out_c_sum ・・・(82)
ここで、Out_cはハーフトーンデータであるので、0もしくは255の値である。また、Out_c_sumはOut_cの累積データであるので、0もしくは255の倍数の値である。例えば、Out_c=255、Out_c_sum=255の場合には、Out_c_sum'は510となるし、Out_c=255、Out_c_sum=510の場合には、Out_c_sum'は765となる。
【0205】
次にステップS1003において、上記式(75)にて算出された累積走査DutyデータC_sum_d'を、累積走査Dutyバッファ1103に書き込む。これにより、下式が成り立つ。
【0206】
C_sum_d←C_sum_d' ・・・(83)
次にステップS1004において、上記式(82)にて算出された累積ハーフトーンデータOut_c_sum'を、累積ハーフトーンデータバッファ1104に書き込む。これにより、下式が成り立つ。
【0207】
Out_c_sum←Out_c_sum' ・・・(84)
次にステップS1005で、累積走査Dutyフィルタ処理部1105において、累積走査Dutyバッファ1103に保持されたC_sum_dに対するフィルタ処理を行う。このフィルタ処理においては、C_sum_dに応じて変化する2次元ガウシアンフィルタF_m(C_sum_d,x,y)を用い、下式のようにC_sum_dfを算出する。
【0208】
C_sum_df=C_sum_d*F_m(C_sum_d,x,y) ・・・(85)
ただし、*はコンボリューションを示す
なお、2次元ガウシアンフィルタF_mは、下式のように表される。
【0209】
F_m=F'_m/Sum_m ・・・(86)
式(86)において、Sum_mは、F'_m係数の合計値である。また、F'_mは下式で表される。
【0210】
【0211】
式(87)において、σx(C_sum_d)、σy(C_sum_d)は、累積走査DutyデータであるC_sum_dに応じて値が変化する。
【0212】
ここで、フィルタF_mの具体例を図50の5001,5002に示す。第4実施形態では説明を簡略化するため、フィルタサイズが3×3正方形である例を示すが、この形態に限るものではない。例えば、フィルタサイズは5×5,7×7,9×9のような正方形でも、3×5,5×7,5×9のような長方形でも良い。また、ローパス特性に限らず、バンドパス特性や、ハイパス特性のフィルタであっても良い。
【0213】
なお、図50において、5001はサイズ3x3で、C_sum_d=30のとき、σx(C_sum_d)=1.0、σy(C_sum_d)=1.0となるフィルタ例を示す。また5002は、サイズ3x3で、C_sum_d=40のとき、σx(C_sum_d)=0.9、σy(C_sum_d)=0.9となるフィルタ例を示している。すなわち図50によれば、C_sum_dに応じてフィルタF_mのフィルタ係数が変化していることが分かる。
【0214】
次にステップS1006で、累積ハーフトーンデータフィルタ処理部1106において、累積ハーフトーンデータバッファ1104に保持されたOut_c_sumに対するフィルタ処理を行う。このフィルタ処理においては、C_sum_dに応じて変化する2次元ガウシアンフィルタLPF_b(C_sum_d,x,y)を用い、下式のようにOut_c_sum_LPFを算出する。
【0215】
Out_c_sum_LPF=Out_c_sum*LPF_b ・・・(88)
なお、2次元ガウシアンフィルタLFP_bは、下式のように表される。
【0216】
LPF_b=LPF'_b/Sum_b ・・・(89)
式(89)において、Sum_bは、LPF'_b係数の合計値である。また、LPF'_bは下式で表される。
【0217】
【0218】
式(90)において、σx(C_sum_d)、σy(C_sum_d)は、累積走査DutyデータであるC_sum_dに応じて値が変化する。
【0219】
ここで、フィルタLPF_bの具体例を図50の5003,5004に示す。第4実施形態ではLPF_bについてもF_mと同様に、フィルタサイズが3×3正方形である例を示すが、この形態に限るものではない。例えば、フィルタサイズは5×5,7×7,9×9のような正方形でも、3×5,5×7,5×9のような長方形でも良い。ただし、十分な効果を得るために、C_sum_dが小さいほどσ値が大きくなることが望ましい。また、LPF_bはローパス特性を有することが好ましい。
【0220】
図50に示すようにLFP_bもF_mと同様に、累積走査DutyデータであるC_sum_dに応じて、フィルタ係数が変化していることが分かる。なお、図50によれば、第4実施形態ではF_mとLPF_bとして同じフィルタ係数を用いているが、もちろん異なる係数であっても良い。
【0221】
次にステップS1007では減算部1107において、累積走査Dutyフィルタ処理部1105で算出されたデータから、累積ハーフトーンデータフィルタ処理部1106で算出されたデータを減算する。そしてステップS1008で重み積算部1108において、重み係数h(実数)を積算することによって、制約情報C_rを得る。ステップS1007およびS1008における処理は、下式のように表される。
【0222】
C_r←(−Out_c_sum_LPF+C_sum_df)×h ・・・(91)
次にステップS1009において、制約情報データバッファ書き込み部1109にて、式(91)で得られたデータC_rを制約情報データバッファ109に書き込む。
【0223】
次にステップS1010において、制約情報データバッファシフト部1110は、制約情報データバッファ109に書き込まれた制約情報C_rを、一回の紙送り量LF=Nzzl/Pass=16/4=4だけ上にシフトする。ここでシフトした走査Dutyデータは、下式により算出される。なお、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0224】
C_r(nx,ny)=C_r(nx,ny+LF) ・・・(92)
式(92)においてny+LF≧Nzzlのときは、C_r(nx,ny)=0とする。すなわち、シフト後の下端LFノズル分(この場合4ノズル分)には0を代入する。
【0225】
次にステップS1011において、累積走査Dutyデータシフト部1111は、累積走査Dutyバッファ1103に保持されたC_sum_dを、一回の紙送り量LF=Nzzl/Pass=16/4=4だけ上にシフトする。ここでシフトした累積走査Dutyデータは、下式のように算出される。なお、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0226】
C_sum_d(nx,ny)=C_sum_d(nx,ny+LF) ・・・(93)
式(93)においても、ny+LF≧Nzzlのときは、C_r(nx,ny)=0とする。すなわち、シフト後の下端LFノズル分(この場合4ノズル分)には0を代入する。
【0227】
そしてステップS1012でも同様に、累積ハーフトーンデータシフト部1112も、累積ハーフトーンデータバッファ1104に保持されたOut_c_sumを、一回の紙送り量だけ上にシフトする。ここでシフトした累積ハーフトーンデータは以下のように算出される。なお、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0228】
Out_c_sum(nx,ny)=Out_c_sum(nx,ny+LF)・・・(94)
式(94)においても、ny+LF≧Nzzlのときは、C_r(nx,ny)=0とする。すなわち、シフト後の下端LFノズル分(この場合4ノズル分)には0を代入する。
【0229】
以上で、第4実施形態のステップS109における制約情報演算処理が終了する。
【0230】
以上説明したように第4実施形態によれば、同一色について、累積走査Dutyデータに応じてフィルタ係数を変えることによって、濃度に応じた最適な制約情報を算出することが可能になり、濃度依存の画質劣化を防ぐことができる。
【0231】
なお、第4実施形態のフィルタ処理は、ディザ処理を行う第2実施形態に適用してもよいし、異なる色同士で制約情報を共有する第3実施形態に適用してもよい。
【0232】
<第5実施形態>
以下、本発明に係る第5実施形態について説明する。第5実施形態における画像形成装置の詳細構成は上述した第1実施形態と同様であるため、説明を省略する。
【0233】
上述した第1〜4実施形態では、C_dもしくはC_sum_dなどの多値データに対してもフィルタ処理を行い、画像の空間周波数特性の保存を前提とした処理を実施した。しかしながら、C_dもしくはC_sum_dなど、多値データに対してのフィルタ処理はハード、ソフト処理ともに処理コストがかかることが知られている。
【0234】
第5実施形態では、多値データのフィルタ処理を省略した処理を実施する。これにより、画像のエッジが強調されるが、処理コストを省いた構成が可能となる。
【0235】
以下、第5実施形態におけるハーフトーン処理について説明する。該処理は基本的に上述した第1実施形態に示した図3のフローチャートと同様であるが、ステップS109の制約情報演算処理についての詳細が第1実施形態とは異なる。したがって、以下では図3のステップS109の処理についてのみ、第5実施形態における詳細を説明し、他のステップについての説明は省略する。
【0236】
ステップS109においては制約情報を演算する。ここでは説明を簡略化するため、4パス印字、走査番号k=1、ノズル数Nzzl=16におけるシアンの制約情報の演算についての詳細を、図54のブロック図と図55のフローチャートを用いて詳細に説明する。図54は、制約情報演算部111におけるシアンに関する詳細構成を示すブロック図であり、図55は該構成において行われる制約情報演算処理を示すフローチャートである。 なお、ここで制約情報とは上述したとおり、現在の走査番号k=1の次の走査番号k=2におけるハーフトーン画像のドット配置を決める上で、ドットが打たれやすいか否かを示す情報である。なお、現在の走査番号がkのときは、次の走査番号はk+1である。
【0237】
まず、図55に示すステップS1101において、図54に示す加算部1201で、走査Dutyバッファ107内のシアンDutyデータと、累積走査Dutyバッファ1204に保持されているデータを加算する。ここで累積走査Dutyバッファ1204には、全0の初期値が代入されており、走査番号k=1のとき、各色のデータは以下のように記述される。なお、アドレス(X,Y)における各色のバッファデータをそれぞれ、C_sum_d(X,Y)、Lc_sum_d(X,Y)、M_sum_d(X,Y)、Lm_sum_d(X,Y)、Y_sum_d(X,Y)、K_sum_d(X,Y)とする。また、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0238】
C_sum_d(nx,ny)=0 ・・・(95)
Lc_sum_d(nx,ny)=0 ・・・(96)
M_sum_d(nx,ny)=0 ・・・(97)
Lm_sum_d(nx,ny)=0 ・・・(98)
Y_sum_d(nx,ny)=0 ・・・(99)
K_sum_d(nx,ny)=0 ・・・(100)
ここでシアンに限って説明すると、ステップS1101による加算後の累積走査DutyデータC_sum_d'は、以下のように算出される
C_sum_d'=C_d+C_sum_d ・・・(101)
次にステップS1102において、ハーフトーンデータフィルタ処理部1202は,Out_cに対して所定のローパスフィルタLPF_bによるフィルタ処理を施す。
【0239】
Out_c_LPF=Out_c*LPF_b ・・・(102)
第5実施形態におけるLPF_bの係数は、図24の2402に示すようにフィルタサイズが3×3正方形で、係数がほぼ同心円に並ぶ等方的加重平均フィルタとして説明するが、この形態に限るものではない。ただし、LPF_bはローパス特性を有することが好ましい。
【0240】
次にステップS1103において、図54に示す加算部1203で、フィルタ処理後のハーフトーンデータと累積ハーフトーンフィルタ後データバッファ1205に保持されているデータを加算する。ここで累積ハーフトーンフィルタ後データバッファ1205にも、全0の初期値が代入されており、走査番号k=1のとき、各色のデータは以下のように記述される。なお、アドレス(X,Y)におけるC,Lc,M,Lm,Y,K各色のバッファデータをそれぞれ以下のように示すとする。すなわち、Out_c_LPF_sum(X,Y)、Out_lc_LPF_sum(X,Y)、Out_m_LPF_sum(X,Y)、Out_lm_LPF_sum(X,Y)。および、Out_y_LPF_sum(X,Y)、Out_k_LPF_sum(X,Y)とする。また、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0241】
Out_c_LPF_sum(nx,ny)=0 ・・・(103)
Out_lc_LPF_sum(nx,ny)=0 ・・・(104)
Out_m_LPF_sum(nx,ny)=0 ・・・(105)
Out_lm_LPF_sum(nx,ny)=0 ・・・(106)
Out_y_LPF_sum(nx,ny)=0 ・・・(107)
Out_k_LPF_sum(nx,ny)=0 ・・・(108)
ここでシアンに限って説明すると、ステップS1103による加算後の累積ハーフトーンフィルタ後データOut_c_LPF_sum'は、以下のように算出される
Out_c_LPF_sum'=Out_c_LPF+Out_c_LPF_sum ・・・(109)
次にステップS1104において、上記式(101)にて算出された累積走査DutyデータC_sum_d'を、累積走査Dutyバッファ1204に書き込む。これにより、下式が成り立つ。
【0242】
C_sum_d←C_sum_d' ・・・(110)
次にステップS1105において、上記式(109)にて算出された累積ハーフトーンフィルタ後データOut_c_LPF_sum'を、累積ハーフトーンフィルタ後データバッファ1205に書き込む。これにより、下式が成り立つ。
【0243】
Out_c_LPF_sum←Out_c_LPF_sum' ・・・(111)
次にステップS1106では減算部1206において、累積走査Dutyバッファ1204に格納されたデータから、累積ハーフトーンフィルタ後データバッファ1205に格納されたデータを減算する。そしてステップS1107で重み積算部1207において、重み係数h(実数)を積算することによって、制約情報C_rを得る。ステップS1106およびS1107における処理は、下式のように表される。
【0244】
C_r←(−Out_c_LPF_sum+C_sum_d)×h ・・・(112)
次にステップS1108において、制約情報データバッファ書き込み部1208にて、式(112)で得られたデータC_rを制約情報データバッファ109に書き込む。
【0245】
次にステップS1109において、制約情報データバッファシフト部1209は、制約情報データバッファ109に書き込まれた制約情報C_rを、一回の紙送り量LF=Nzzl/Pass=16/4=4だけ上にシフトする。ここでシフトした走査Dutyデータは、下式により算出される。なお、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0246】
C_r(nx,ny)=C_r(nx,ny+LF) ・・・(113)
式(113)においてny+LF≧Nzzlのときは、C_r(nx,ny)=0とする。すなわち、シフト後の下端LFノズル分(この場合4ノズル分)には0を代入する。
【0247】
次にステップS1110において、累積走査Dutyデータシフト部1210は、累積走査Dutyバッファ1204に保持されたC_sum_dを、一回の紙送り量LF=Nzzl/Pass=16/4=4だけ上にシフトする。ここでシフトした累積走査Dutyデータは、下式のように算出される。なお、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0248】
C_sum_d(nx,ny)=C_sum_d(nx,ny+LF) ・・・(114)
式(114)においても、ny+LF≧Nzzlのときは、C_r(nx,ny)=0とする。すなわち、シフト後の下端LFノズル分(この場合4ノズル分)には0を代入する。
【0249】
そしてステップS1111でも同様に、累積ハーフトーンデータシフト部1211も、累積ハーフトーンフィルタ後データバッファ1205に保持されたOut_c_LPF_sumを、一回の紙送り量だけ上にシフトする。ここでシフトした累積ハーフトーンフィルタ後データは以下のように算出される。なお、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0250】
Out_c_LPF_sum(nx,ny)=
Out_c_LPF_sum(nx,ny+LF) ・・・(115)
式(115)においても、ny+LF≧Nzzlのときは、C_r(nx,ny)=0とする。すなわち、シフト後の下端LFノズル分(この場合4ノズル分)には0を代入する。
【0251】
以上で、第5実施形態のステップS109における制約情報演算処理が終了する。
【0252】
以上説明したように第4実施形態によれば、上述した第1乃至第4実施形態に対し、同一色について、多値データのフィルタ処理を省略した処理を実施する。これにより、画像のエッジが強調されるが、処理コストを省いた構成が可能となる。
【0253】
なお、第5実施形態のフィルタ処理は、ディザ処理を行う第2実施形態に適用してもよいし、異なる色同士で制約情報を共有する第3実施形態に適用してもよい。
【0254】
<他の実施形態>
上述した各実施形態では、所定方向に配列された複数のノズルを有する記録ヘッドをノズルの配列方向と交差する方向に記録媒体上で走査させて、記録媒体にインクを吐出することで画像を形成するインクジェット記録方式を用いた画像処理装置を説明した。しかしながら本発明は、インクジェット方式以外の他の方式に従って記録を行う記録装置(例えば熱転写方式や電子写真方式)に対しても適用できる。この場合、インク滴を吐出するノズルはドットを記録する記録素子やレーザー発光素子に対応することとなる。
【0255】
また本発明は例えば、記録媒体の記録幅に対応する長さの記録ヘッドを有し、記録ヘッドに対して記録媒体を移動させて記録を行う、いわゆるフルライン型の記録装置などにも適用できる。
【0256】
本発明は例えば、システム、装置、方法、プログラム若しくは記憶媒体(記録媒体)等としての実施態様をとることが可能である。具体的には、複数の機器(例えば、ホストコンピュータ、インタフェース機器、撮像装置、webアプリケーション等)から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0257】
尚本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される。なお、この場合のプログラムとは、実施形態において図に示したフローチャートに対応したプログラムである。
【0258】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【0259】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
【0260】
プログラムを供給するための記録媒体としては、以下に示す媒体がある。例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD-ROM、CD-R、CD-RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD-ROM,DVD-R)などである。
【0261】
プログラムの供給方法としては、以下に示す方法も可能である。すなわち、クライアントコンピュータのブラウザからインターネットのホームページに接続し、そこから本発明のコンピュータプログラムそのもの(又は圧縮され自動インストール機能を含むファイル)をハードディスク等の記録媒体にダウンロードする。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
【0262】
また、本発明のプログラムを暗号化してCD-ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせることも可能である。すなわち該ユーザは、その鍵情報を使用することによって暗号化されたプログラムを実行し、コンピュータにインストールさせることができる。
【0263】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【0264】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、実行されることによっても、前述した実施形態の機能が実現される。すなわち、該プログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行うことが可能である。
【図面の簡単な説明】
【0265】
【図1】本発明に係る一実施形態における画像形成システムの構成を示すブロック図である。
【図2】本実施形態のプリンタにおける記録ヘッドの構成例を示す図である。
【図3】本実施形態における画像形成処理を示すフローチャートである。
【図4】本実施形態の色分解処理部における入出力データの詳細を示す図である。
【図5】本実施形態における16ノズル、4パス印字による画像形成の概要を示す図である。
【図6】本実施形態における走査Duty設定用LUTに保持されたDuty分割率の一例を示す図である。
【図7】本実施形態における走査Dutyの設定方法の概要を示す図である。
【図8】本実施形態における走査Dutyの設定方法の概要を示す図である。
【図9】本実施形態における走査Dutyの設定方法の概要を示す図である。
【図10】本実施形態における走査Dutyバッファのバンド構成例を示す図である。
【図11】本実施形態における制約情報バッファのバンド構成例を示す図である。
【図12】本実施形態におけるハーフトーン処理部の詳細構成を示すブロック図である。
【図13】本実施形態におけるハーフトーン処理を示すフローチャートである。
【図14】本実施形態における誤差拡散係数の一例を示す図である。
【図15】本実施形態における各シアン累積誤差ラインバッファの記憶領域を示す図である。
【図16】本実施形態における印字領域の隣接の様子を示す図である。
【図17】本実施形態におけるハーフトーン処理結果の格納例を示す図である。
【図18】本実施形態における制約情報演算部の詳細構成を示すブロック図である。
【図19】本実施形態における制約情報演算処理を示すフローチャートである。
【図20】本実施形態の制約情報演算におけるフィルタ処理後の走査Dutyデータの模式図である。
【図21】本実施形態の制約情報演算におけるフィルタ処理後のハーフトーンデータの模式図である。
【図22】本実施形態の制約情報演算におけるシフト後の走査Dutyデータの模式図である。
【図23】本実施形態の制約情報演算におけるシフト後のハーフトーンデータの模式図である。
【図24】本実施形態の制約情報演算におけるフィルタの具体例を示す図である。
【図25】本実施形態における印刷画像の周波数領域による対レジズレ特性を示す図である。
【図26】第2実施形態におけるハーフトーン処理部の詳細構成を示すブロック図である。
【図27】第2実施形態におけるハーフトーン処理を示すフローチャートである。
【図28】第2実施形態におけるディザ処理の概要を示す図である。
【図29】第3実施形態におけるハーフトーン処理を示すフローチャートである。
【図30】第3実施形態における制約情報バッファのバンド構成例を示す図である。
【図31】第3実施形態におけるハーフトーン処理部のシアンに関する詳細構成を示すブロック図である。
【図32】第3実施形態におけるシアンのハーフトーン処理を示すフローチャートである。
【図33】第3実施形態における各累積誤差ラインバッファの記憶領域を示す図である。
【図34】第3実施形態におけるシアンのハーフトーン処理結果の格納例を示す図である。
【図35】第3実施形態における制約情報演算部のシアンに関する詳細構成を示すブロック図である。
【図36】第3実施形態におけるシアンの制約情報演算処理を示すフローチャートである。
【図37】第3実施形態におけるフィルタ処理後のシアン走査Dutyデータの模式図である。
【図38】第3実施形態におけるフィルタ処理後のシアンハーフトーンデータの模式図である。
【図39】第3実施形態におけるハーフトーン処理部のマゼンタに関する詳細構成を示すブロック図である。
【図40】第3実施形態におけるマゼンタのハーフトーン処理を示すフローチャートである。
【図41】第3実施形態におけるマゼンタのハーフトーン処理結果の格納例を示す図である。
【図42】第3実施形態における制約情報演算部のマゼンタに関する詳細構成を示すブロック図である。
【図43】第3実施形態におけるマゼンタの制約情報演算処理を示すフローチャートである。
【図44】第3実施形態におけるフィルタ処理後のマゼンタ走査Dutyデータの模式図である。
【図45】第3実施形態におけるフィルタ処理後のマゼンタハーフトーンデータの模式図である。
【図46】第3実施形態におけるシフト後のマゼンタ走査Dutyデータの模式図である。
【図47】第3実施形態におけるシフト後のマゼンタハーフトーンデータの模式図である。
【図48】第4実施形態における制約情報演算部のシアンに関する詳細構成を示すブロック図である。
【図49】第4実施形態における制約情報演算処理を示すフローチャートである。
【図50】第4実施形態の制約情報演算におけるフィルタの具体例を示す図である。
【図51】第5実施形態における隣接する走査番号同士のドット配置と、その統合例を示す図である。
【図52】第5実施形態におけるドット配置に対してフーリエ解析を行った例を示す図である。
【図53】第5実施形態における隣接するドット配置によるクロススペクトル例を示す図である。
【図54】第5実施形態における制約情報演算部の詳細構成を示すブロック図である。
【図55】第5実施形態における制約演算処理を示すフローチャートである。
【技術分野】
【0001】
本発明は画像処理装置、画像形成装置およびその制御方法に関し、特に、入力画像よりも低階調による画像形成を行うための画像処理装置、画像形成装置およびその制御方法に関する。
【背景技術】
【0002】
ワードプロセッサやパーソナルコンピュータ、ファクシミリ等の画像出力装置としては一般に、所望される文字や画像等の情報を、用紙やフィルム等のシート状の記録媒体に記録する記録装置が用いられる。このような記録装置としては様々な記録方式のものがあるが、なかでも記録媒体に記録剤を付着させることで記録媒体上に画像を形成する方式が広く実用化されており、このような方式の代表例として、インクジェット記録方式が知られている。
【0003】
インクジェット記録方式を適用した記録装置においては、記録速度の向上や高画質化等を実現するために、同一色同一濃度のインクを吐出可能なインク吐出口(ノズル)の複数を集積配列したノズル群を備える。さらに、画質の向上を実現するために、同一色で濃度の異なるインクを吐出可能としたノズル群や、同一色で同一濃度のインクの吐出量を何段階かに変えて吐出可能としたノズル群が設けられる場合もある。
【0004】
このような記録装置において、多値の入力画像データをドットの記録信号にあたる2値画像(またはN値:Nは2条の整数であり、入力画像データの階調数より少ない階調数)に変換する手法として、誤差拡散法が知られている。誤差拡散法によれば、ある画素で生じた2値化誤差(またはN値化誤差)を以降の複数画素へ拡散することにより、擬似的に階調表現を行う。
【0005】
また、上述した誤差拡散法のほかに、多値の入力画像データをドットの記録信号にあたる2値画像(またはN値)に変換する手段として、ディザ法が知られている。ディザ法によれば、予め用意した閾値マトリクスと多値の入力データを比較してN値化を行なうことで、擬似的に階調表現を行う。ディザ法は誤差拡散法よりも処理が単純であるため、より高速な処理を行うことが可能となる。
【0006】
上述した誤差拡散法やディザ法によって階調数が変換された画像を、実際に記録媒体上に形成する際に、その画質向上を目的として、形成順や配置を決定する技術が提案されている(例えば、特許文献1参照)。かかる技術によれば、走査毎に誤差拡散法を適用することにより、各走査のレジストレーションが変動した場合でも、濃度ムラなどによる画像品質の低下を抑えることが可能となる。具体的には、所定の記録媒体における同一の主走査記録領域に対して異なるノズル群によって複数回主走査を行い、その主走査毎に誤差拡散法により2値(またはN値)画像を形成する。このように主走査毎に誤差拡散法を実施して2値(またはN値)画像を生成する場合、主走査内のドット配置の分散性が高く均一となる。したがって、複数の主走査によって画像が形成される際に、記録媒体の送り量や記録素子の位置などの物理的なレジストレーションが変動しても、粒状性の変化は発生しにくくなるという効果がある。さらに、複数の走査間のドット配置において相関が少ないため、レジストレーションが変動しても、紙面に対するドットの被覆率変化が低減され、濃度ムラがかなり緩和される。
【特許文献1】特開2000-103088号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、上述した特許文献1に記載された手法によれば、主走査間のドット配置で相関性が小さいために、複数の走査によって生成される画像の低周波成分が強調されてしまうという問題がある。この低周波成分は、走査の回数が増えるほど強調されることになり、視覚上目障りな粒状性として認識されてしまう。
【0008】
本発明はこのような問題を解決するためになされたものであり、以下のような機能を有する画像形成装置およびその制御方法を提供することを目的とする。すなわち、主走査毎に、前回の主走査でのN値化結果(Nは2以上の整数)に基づいてリアルタイムに更新された制約情報に基づくN値化処理を行うことにより、画像の低周波成分に依存した粒状性劣化を抑制し、高画質画像を形成可能とする。
【課題を解決するための手段】
【0009】
上記目的を達成するための一手段として、本発明の画像形成装置は以下の構成を備える。
【0010】
すなわち、複数の記録素子を備えた記録ヘッドを、記録媒体上で走査することによって画像を形成する画像形成装置であって、画像データを入力する画像データ入力手段と、該画像データに応じて、前記記録ヘッドの主走査ごとに、前記記録素子ごとの記録量を算出する走査内記録量算出手段と、前記走査内記録量算出手段で算出された記録量に対し、予め定められた制約情報に基づくN値化処理(Nは2以上の整数)を施して形成対象となるドットパターンを作成するN値化手段と、前記走査内記録量算出手段で算出された記録量と、前記N値化手段で出力されたドットパターンに基づいて、次の主走査時に前記N値化手段で参照される前記制約情報を作成する制約情報作成手段と、を有し、前記制約情報作成手段は、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記N値化手段で作成されるドットパターンの位相が低周波域で逆位相となるように、前記制約情報を作成することを特徴とする。
【0011】
さらに、前記制約情報作成手段は、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記N値化手段で作成されるドットパターンの位相が高周波域で無相関となるように、前記制約情報を作成することを特徴とする。
【発明の効果】
【0012】
本発明によれば、主走査毎に、前回の主走査でのN値化結果に基づいてリアルタイムに更新された制約情報に基づくN値化処理を行うことにより、画像の低周波成分に依存した粒状性劣化を抑制し、高画質画像を形成することが可能となる。
【発明を実施するための最良の形態】
【0013】
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【0014】
<第1実施形態>
図1は、本実施形態による画像形成システムの構成を示したブロック図である。図1において、1は画像処理装置、2はプリンタを示す。なお、画像処理装置1は例えば一般的なパーソナルコンピュータにインストールされたプリンタドライバによって実施され得る。その場合、以下に説明する画像処理装置1の各部は、コンピュータが所定のプログラムを実行することにより実現されることになる。また、別の構成としては、例えば、プリンタ2が画像処理装置1を含む構成としてもよい。
【0015】
画像処理装置1とプリンタ2は、プリンタインタフェース又は回路によって接続されている。画像処理装置1は、画像データ入力端子101より印刷対象の画像データを入力し、これを入力画像バッファ102に格納する。色分解処理部103は、入力された画像データをプリンタ2が備えるインク色へ色分解する。この色分解処理に際しては、色分解用ルックアップテーブル(LUT)104が参照される。走査Duty設定部105は、走査Duty設定用LUT106に基づき、色分解処理部103にて分解された各インク色値をさらに走査毎の各インク色値へ変換し、走査Dutyバッファ107にそのデータを格納する。本実施形態における走査Dutyデータはすなわち、各走査における記録インク量を示すものである。
【0016】
ハーフトーン処理部108は、走査Duty設定部105によって得られた走査毎の各色の多階調(3階調以上)値を、後述する制約情報バッファ109に蓄えられた値に基づいて2値画像データに変換する。
【0017】
制約情報バッファ109には、記録される画像上のアドレスに、ドットが形成されやすいか否かを示す情報が蓄えられている。なお、制約情報バッファ109はインク色毎に確保するものとする。
【0018】
ハーフトーン画像格納バッファ110には、ハーフトーン処理部108にて得られた各色の2値画像データが格納される。制約情報演算部111は、ハーフトーン画像格納バッファ110に格納された2値画像データと、走査Dutyバッファ107に格納された走査毎Dutyデータに基づく所定の演算を行って制約情報を作成し、制約情報バッファ109の内容を更新する。
【0019】
ハーフトーン画像格納バッファ110に格納された2値画像データは、出力端子112よりプリンタ2へ出力される。
【0020】
プリンタ2においては、記録ヘッド201を記録媒体202に対して相対的に縦横に移動することにより、画像処理装置1にて形成された2値画像データを記録媒体上に形成する。記録ヘッド201としては熱転写方式、電子写真方式、インクジェット方式等のものを用いることができ、いずれも一つ以上の記録素子(インクジェット方式であればノズル)を有する。移動部203は、ヘッド制御部204の制御下で、記録ヘッド201を移動する。搬送部205は、ヘッド制御部204の制御下で、記録媒体を搬送する。また、インク色選択部206は、画像処理装置1により形成された各色の2値画像データに基づいて、記録ヘッド201に搭載されるインク色の中から、インク色を選択する。
【0021】
図2は、記録ヘッド201の構成例を示す図である。本実施形態ではシアン(C)、マゼンタ(M)、イエロー(Y)、ブラック(K)の4色のインクに加え、相対的にインク濃度が低い淡シアン(Lc)、淡マゼンタ(Lm)を含めた6色のインクを、記録ヘッド201に搭載している。
【0022】
なお、図2においては、説明を簡単にするため用紙搬送方向にノズルが一列に配置された構成を示しているが、ノズルの数、配置はこの例に限られるものではない。例えば、同一色でも吐出量が異なるノズル列を有しても良いし、同一吐出量ノズルが複数列あっても良いし、ノズルがジグザグに配置されているような構成であっても良い。また、図2ではインク色の配置順序はヘッド移動方向に一列となっているが、用紙搬送方向に一列に配置する構成であっても良い。
【0023】
次に、上述した機能構成を備えた本実施形態の画像処理装置1における画像形成処理について、図3のフローチャートを用いて説明する。
【0024】
まず、多階調のカラー入力画像データが入力端子101より入力され、入力画像バッファ102に格納される(S101)。ここで入力画像データは、レッド(R)、グリーン(G)、ブルー(B)の3つの色成分によりカラー画像データを構築している。
【0025】
次に、色分解処理部103にて、入力画像バッファ102に格納された多階調のカラー入力画像データに対し、色分解用LUT104を用いて、RGBからCMYK及びLcLmのインク色プレーンへの色分解処理を行う(S102)。本実施形態では、色分解処理後の各画素データを8ビットとして扱うが、それ以上の階調数への変換を行っても構わない。
【0026】
上述したように本実施形態における記録ヘッド201は、6種類の各インク色を保有する。そのため、RGBのカラー入力画像データは、CMYKLcLm各プレーンの計6プレーンの画像データへ変換される。即ち、6種類のインク色に対応した6種類のプレーンの画像データが生成される。
【0027】
以下、本実施形態における色分解処理の詳細について、図4を用いて説明する。
【0028】
図4は、色分解処理部103における入出力データの詳細を示している。同図に示すように入力された画像データR'G'B'は、色分解用LUT104を参照して次式の通りに、CMYKLcLmデータへ変換される。
【0029】
C=C_LUT_3D(R',G',B') ・・・(1)
K=M_LUT_3D(R',G',B') ・・・(2)
Y=Y_LUT_3D(R',G',B') ・・・(3)
K=K_LUT_3D(R',G',B') ・・・(4)
Lc=Lc_LUT_3D(R',G',B') ・・・(5)
Lm=Lm_LUT_3D(R',G',B') ・・・(6)
ここで、式(1)〜(6)の右辺に定義される各関数が、色分解用LUT104の内容に該当する。色分解用LUT104はレッド、グリーン、ブルーの3入力値から、各インク色への出力値を定める。本実施形態では、CMYKLcLmの6色を具備する構成であるため、3入力値から6出力値を得るLUT構成となる。
【0030】
以上の処理により、本実施形態における色分解処理が完了する。
【0031】
図3に戻り、次に、走査Duty設定部105は、走査番号k及び色分解データ切り出し位置としてのY座標を示すYcut(k)を設定する(S103)。Ycut(k)はすなわち、走査番号kにおける色分解データ切り出し位置であり、ノズル上端座標に相当する。なお、走査番号kの初期値は1であり、処理ループ毎に1づつインクリメントされる。
【0032】
ここで、16個のノズル列を具備し、画像上の同一主走査記録領域に対して4回のスキャンで画像を形成させる4パス印字の場合を例として、色分解データ切り出し位置Y座標Ycutの設定法を説明する。
【0033】
一般的に4パス印字の場合、図5に示すように、走査番号の初期値(k=1)では、ノズル下端1/4のみを使用して画像形成を行い、走査番号k=2では走査番号k=1に対してノズル長さ1/4分紙送りしてから画像形成を行う。さらに走査番号k=3では走査番号k=2に対してノズル長さ1/4分紙送りしてから画像を形成する。このような画像形成および紙送りを繰り返して、最終出力画像が形成される。そのため、走査番号k=1の場合、ノズル上端座標に相当する色分解データ切り出し位置Ycut=−12となる。
【0034】
上述した色分解データ切り出し位置Ycut(k)を一般化すると、ノズル列数:Nzzl、パス数:Pass、走査番号:k、として次式で与えられる。
【0035】
Ycut(k)=−Nzzl+(Nzzl/Pass)×k ・・・(7)
以上のようにYcut(k)が設定されると、次に走査Duty設定部105は、走査Duty設定用LUT106と各色分解処理プレーンの画像データに基づき、走査毎のDuty値を設定する(S104)。
【0036】
走査Duty設定用LUT106によれば、4パスの場合、図6に示すような値が与えられる。図6は16ノズル、4パスの例を表しており、縦軸がノズル位置、横軸がDuty分割率を示す。図6によれば、P1〜P4の変曲点を4ノズル毎に設定し、その各変曲点を線形補間した16ノズル分のDuty分割率が、走査Duty設定用LUT106として保持されている。ここで、P1〜P4の数値は、以下のように設定される。
【0037】
P1+P2+P3+P4=1.0 ・・・(8)
なお、走査Duty設定用LUT106として保持される値は上記設定法に限られるものではなく、例えば変曲点を細かく設定してもよいし、ノズル毎に直接指定しても良い。
【0038】
ステップS104で設定される走査Dutyは、図7に示すように、走査Duty設定用LUT106と色分解データの積として設定される。すなわち、図7の左項に示されるように、色分解後のデータに対して、ノズルごとに設定されたDuty分割率を乗じることにより、その結果が図7の右項に示されるように、ノズルごとの走査Dutyとして設定される。これにより、実際の走査時には、ターゲットとする色分解データに対し、各ノズルは走査Duty分のみのインクを吐出して画像を形成する。
【0039】
ここで本実施形態においては、対応するノズルが画像Yアドレスの領域外座標になるときは、走査Dutyを0とする。例えば、走査番号k=1では、図8に示すように、ノズル列上端3/4で画像Yアドレスが負になるため走査Duty値=0が代入され、ノズル列下端1/4には有意な値が代入される。
【0040】
また、色分解データ切り出し位置Ycut(k)は走査番号kによって決まるため、走査番号k=1〜7の場合、走査Dutyは図9に示すように決定される。図9においては、各走査番号ごとのノズル位置に対する走査Dutyが示されており、走査番号ごとに走査Dutyが異なっていることが分かる。図9における各走査Dutyは、色分解データと、走査Duty設定用LUT106の積により定まるため、紙送りしながらLUTとの積をとると、領域1の部分では、走査番号k=1〜4の4回の走査で形成される1ラスタの合計値が色分解データと同じになる。同様に領域2、3、4においても、1ラスタの合計値が色分解データと同じになる。
【0041】
本実施形態においては図9に示すように走査Dutyが分解されるが、予めDuty分解閾値D_Th3を用意しておき、該閾値と色分解データを比較する。そしてD_Th3よりも色分解データ値が小さい場合(後述する式(10)〜(15)に相当)には、4回の走査で画像形成を行うことはせず、1〜3回の走査で画像形成を行うようにする。
【0042】
上述したような走査Duty設定部105における走査Duty設定を、例えばシアンC(X,Y)に限って式で詳細に表すと、以下のように与えられる。なお、C_d(X,Y)はアドレス(X,Y)における走査Dutyを、S_LUT(Y)はアドレスYにおける走査Duty設定用LUT106の値をそれぞれ示す。また、0≦nx<画像Xサイズ、0≦ny<Nzzl(ノズル列数:この場合16)、である。また、Duty分解閾値として、上述したD_Th3に加えて、さらに小さい閾値を示すD_Th2,D_Th1(D_Th3>D_Th2>D_Th1)が定義されている。
【0043】
C(nx,Ycut(k)+ny)>D_Th3のとき、
C_d(nx,ny)=C(nx,Ycut(k)+ny)×S_LUT(ny)・・・(9)
C(nx,Ycut(k)+ny)≦D_Th1のとき、
「走査番号k=1,5,・・・,4n+1(nは0以上の整数)」については
C_d(nx,ny)=C(nx,Ycut(k)+ny) ・・・(10)
「上記以外の走査番号」については
C_d(nx,ny)=0 ・・・(11)
C(nx,Ycut(k)+ny)≦D_Th2のとき、
「走査番号k=1,5,・・・,4n+1」および
「走査番号k=2,6,・・・,4n+2」については、
C_d(nx,ny)=C(nx,Ycut(k)+ny)/2 ・・・(12)
「上記以外の走査番号」については、
C_d(nx,ny)=0 ・・・(13)
C(nx,Ycut(k)+ny)≦D_Th3のとき、
「走査番号k=1,5,・・・,4n+1」および
「走査番号k=2,6,・・・,4n+2」および
「走査番号k=3,7,・・・,4n+3」については、
C_d(nx,ny)=C(nx,Ycut(k)+ny)/3 ・・・(14)
「上記以外の走査番号」については、
C_d(nx,ny)=0 ・・・(15)
上記式(9)が通常のDuty分解処理であり、式(10)〜(15)が例外Duty分解処理を示す。色分解データ値がD_Th1よりも小さい場合には、式(10),(11)で示すように1回の走査で画像形成を行うようにし、D_Th2よりも小さい場合には、式(12),(13)で示すように2回の走査で画像形成を行うようにする。そして、D_Th3よりも小さい場合には、式(14),(15)で示すように3回の走査で画像形成を行うようにする。
【0044】
Lc(X,Y)、M(X,Y)、Lm(X,Y)、Y(X,Y)、K(X,Y)に対しても同様に、上記式により走査Dutyへの分解が行われる。
【0045】
なお、本実施形態では4パスを例として説明したため、式(10)〜(15)のように例外のDuty分解処理を設定したが、例えば8パスでも同様に、Duty分解閾値D_Th1〜D_Th7を設定して例外のDuty分解処理を行う必要がある。
【0046】
以上のように走査Duty設定部105で設定された走査Dutyデータは、走査Dutyバッファ107に格納される(S105)。すなわち、走査Dutyバッファ107は図10に示すように、縦方向がノズル数、横方向が画像のXサイズに相当するバンド状の走査Dutyデータ値を、各色毎に格納する。
【0047】
次にハーフトーン処理部108において、走査Dutyバッファ107に格納された走査Dutyデータと、制約情報バッファ109に格納された制約情報データの合計値を、2レベルの階調値(2値データ)に変換するハーフトーン処理を行う(S106)。
【0048】
制約情報バッファ109も図11に示すように、縦方向がノズル数、横方向が画像のXサイズに相当するバンド状の制約情報データ値を、各色毎に格納している。制約情報バッファ109には、記録される画像上のアドレスに2値画像が形成されやすいか否かを示す制約情報が格納され、走査番号kごとに更新される。ただし、走査番号k=1の処理開始時には、初期値として全て0が代入されている。すなわち、アドレス(X,Y)における各色の制約情報をC_r(X,Y)、Lc_r(X,Y)、M_r(X,Y)、Lm_r(X,Y)、Y_r(X,Y)、K_r(X,Y)とすると、これらは走査番号k=1のときは以下のように記述される。なお、0≦nx<画像Xサイズ、0≦ny<Nzzl(ノズル列数:この場合16)である。
【0049】
C_r(nx,ny)=0 ・・・(16)
Lc_r(nx,ny)=0 ・・・(17)
M_r(nx,ny)=0 ・・・(18)
Lm_r(nx,ny)=0 ・・・(19)
Y_r(nx,ny)=0 ・・・(20)
K_r(nx,ny)=0 ・・・(21)
そのため、実質的には走査番号k≧2の時に、制約情報バッファ109は有意な制約情報に更新されていくことになる。制約情報の値が小さいほど、その箇所にドットが形成されにくく、逆に値が大きいほどドットが形成されやすい。なお、制約情報バッファ109に格納される値は、どのような走査番号のタイミングであっても、平均値が0となるように各値が格納される。具体的には、その箇所にドットが形成されやすい場合には正の値が、その箇所にドットが形成されにくい場合は負の値が格納されるが、制約情報の更新についての詳細は後述する。
【0050】
本実施形態におけるハーフトーン処理は、多値の入力画像データを2値画像(または2値以上で入力階調数より少ない階調数の画像)に変換する処理として、例えば周知の誤差拡散法を用いる。以下、本実施形態におけるハーフトーン処理について、図12のブロック図と図13のフローチャートを用いて詳細に説明するが、説明を簡略化するため、4パス印字、走査番号k=1におけるシアンのハーフトーン処理を例として説明する。図12は、ハーフトーン処理部108の詳細構成を示すブロック図であり、図13はハーフトーン処理部108におけるハーフトーン処理の詳細を示すフローチャートである。
【0051】
まず図13に示すステップS201において、シアンの走査Dutyと制約情報の合計を入力する。すなわち、図12に示す制約情報加算部401において、シアン走査DutyであるC_dとシアン制約情報C_rの合計値データIcを以下のように算出する。ただし、走査番号k=1のとき、制約情報C_rは全て0である。
【0052】
Ic=C_d+C_r ・・・(22)
次にステップS202において、誤差拡散処理用に累積誤差を加算する。以下、累積誤差の加算処理について詳細に説明する。
【0053】
本実施形態においては、誤差拡散処理のための誤差拡散係数として、図14に示すようにK1〜K4の4つの係数を持つとする。例えば、K1=7/16、K2=3/16、K3=5/16、K4=1/16とする。ただし、拡散係数は上記のように固定とする必要はなく、階調に応じて(例えばC_dに応じて)変更させても良いし、上記4係数に限らずさらに多くの係数を持たせても良い。
【0054】
このような誤差拡散係数により誤差を拡散、累積するために、ハーフトーン処理部108では累積誤差ラインバッファをシアンに対して4組確保し(402〜405)、使用する累積誤差ラインバッファを走査番号ごとに、例えば以下のように切り替える。
【0055】
「走査番号k=1,5,・・・,4n+1(nは0以上の整数)のとき」
シアン(4n+1)累積誤差ラインバッファ402を使用
「走査番号k=2,6,・・・,4n+2のとき」
シアン(4n+2)累積誤差ラインバッファ403を使用
「走査番号k=3,7,・・・,4n+3のとき」
シアン(4n+3)累積誤差ラインバッファ404を使用
「走査番号k=4,8,・・・,4n+4のとき」
シアン(4n+4)累積誤差ラインバッファ405を使用
なお、各シアン累積誤差ラインバッファ402,403,404,405はそれぞれ、図15の1501〜1504に示す4組の記憶領域からなる。すなわち、「Ec1_0,Ec1(x)」、「Ec2_0,Ec2(x)」、「Ec3_0,Ec3(x)」、「Ec4_0,Ec4(x)」の4組である。例えば、シアン(4n+1)累積誤差バッファ402は、1個の記憶領域Ec1_0と、入力画像の横画素数Wと同数の記憶領域Ec1_(x)(x=1〜W)を有する。また、各シアン累積誤差ラインバッファ402,403,404,405はそれぞれ、走査番号k=1,2,3,4の処理開始時のみ、全て初期値0で初期化されている。例えば走査番号k=5の処理開始時には、(4n+1)累積誤差バッファ402は初期化されない。
【0056】
本実施形態では、1色あたり上述した4組の累積誤差ラインバッファが必要になるため、これを6色分用意する必要がある。すなわち、合計4×6=24組のラインバッファが必要になる。
【0057】
ここでは、走査番号k=1についてのハーフトーン処理を例として説明するため、シアン(4n+1)累積誤差バッファ402を使用して誤差拡散処理を実施するとする。すなわち、累積誤差加算部406において、走査Dutyと制約情報の合計である入力データ値に対して、入力画素データの横画素位置xに対応する誤差Ec1(x)が加算される。即ち、入力された注目データをIc、累積誤差加算後のデータをIc'とすると、以下の式が成り立つ。
【0058】
Ic'=Ic+Ec1(x) ・・・(23)
次にステップS203において、閾値選択部407は閾値Tを選択する。閾値Tは、例えば以下のように設定される。
【0059】
T=128 ・・・(24)
或いは、ドット生成遅延を回避するため、平均量子化誤差が小さくなるよう、C_dに応じて閾値Tを以下のように細かく変更しても良い。
【0060】
T=f(C_d) ・・・(25)
次にステップS204において、量子化部408は、誤差加算後の画素データIc'と閾値Tを比較し、ドットの2値化結果であるOut_cを決定する。その規則は次の通りである。
【0061】
Ic'<Tのとき、
Out_c=0 ・・・(26)
Ic'≧Tのとき、
Out_c=255 ・・・(27)
次にステップS205において、誤差演算部409は、注目画素Icに誤差を加算した画素データIc'と、出力画素値Out_cとの差分Err_cを、次のように算出する。
【0062】
Err_c(x)=Ic'−Out_c ・・・(28)
次にステップS206において、誤差拡散部410が誤差を拡散する。即ち、シアン(4n+1)累積誤差ラインバッファ402を用いて、横画素位置xに応じた誤差Err_c(x)の拡散処理が、以下のように行われる。
【0063】
Ec1(x+1)←Ec1(x+1)+Err_c(x)×7/16 (x<W)
Ec1(x−1)←Ec1(x−1)+Err_c(x)×3/16 (x>1)
Ec1(x)←Ec1_0+Err_c(x)×5/16 (1<x<W)
Ec1(x)←Ec1_0+Err_c(x)×8/16 (x=1)
Ec1(x)←Ec1_0+Err_c(x)×13/16 (x=W)
Ec1_0←Err_c(x)×1/16 (x<W)
Ec1_0←0 (x=W)
・・・(29)
以上で、走査番号k=1のシアン1画素分の2値化(量子化値0,255)が完了する。
【0064】
以上説明したステップS201〜S206の処理を、バンド内のアドレス(0,0)〜(W−1,Nzzl−1)まで行う(S207)ことにより、ハーフトーン画像データのドット位置、すなわちドットのオン/オフを決定することができる。
【0065】
なお、以上は走査番号k=1について説明したが、走査番号k=2〜4については、それぞれのシアン累積誤差ラインバッファ403〜405を用いて上記ハーフトーン処理を行う。走査番号k=5の処理では、走査番号k=1と同じシアン(4n+1)累積誤差ラインバッファ402を、初期化せずに(全0を代入せずに)そのまま用いる。これは図16に示すように、走査番号k=1と走査番号k=5の印字領域が上下に隣接しているため、保存されている累積誤差をそのまま、隣接下の領域に適用するためである。もしも、k=5でシアン累積誤差ラインバッファ402を初期化すると、k=1と隣接する境界部で誤差が保存されなくなり、ドットの連続性が保てなくなってしまう。
【0066】
図3に戻り、以上説明したようにステップS106におけるハーフトーン処理が終了すると、次に、ハーフトーン処理後の2値画像データはハーフトーン画像格納バッファ110に格納される(S107)。ここで図17に、走査番号k=1の走査Dutyをハーフトーン処理した結果が、ハーフトーン画像格納バッファ110に格納された様子を示す。同図に示されるようにハーフトーン画像格納バッファ110には、走査Dutyの画素位置に対応する(ノズル数:Nzzl)×(画像Xサイズ:W)分の2値画像データが格納される。
【0067】
以上により、走査番号k=1でのハーフトーン処理が終了し、その結果、各色分の一回のヘッド動作で形成される2値画像が、各色分のハーフトーン画像格納バッファ110に格納されることになる。
【0068】
次に、ハーフトーン画像格納バッファ110に蓄えられた、縦方向がノズル数(Nzzl)、横方向が画像のXサイズ(W)に相当するバンドデータが、画像出力端子112より出力される(S108)。
【0069】
すると次に、制約情報演算部111において制約情報を演算する(S109)。以下、本実施形態における制約情報演算処理について、図18のブロック図と図19のフローチャートを用いて詳細に説明するが、説明を簡略化するため、4パス印字、走査番号k=1におけるシアンの制約情報の演算を例として説明する。図18は、制約情報演算部111の詳細構成を示すブロック図であり、図19は制約情報演算処理部111における制約情報演算処理を示すフローチャートである。
【0070】
上述したように本実施形態における制約情報とは、現在の走査番号k=1の次の走査番号k=2におけるハーフトーン画像のドット配置を決める際に参照される、ドットが打たれやすいか否かを示す情報である。
【0071】
まず、図19に示すステップS301において、走査Dutyバッファ107のデータに対してフィルタ処理を行う。すなわち、図18に示す走査Dutyフィルタ処理部501において、走査Dutyバッファ107内のシアン走査DutyであるC_dに対して、下式のように所定のフィルタF_mによるフィルタ処理を行ってC_dfを算出する。図20に、フィルタ処理された走査Dutyデータの模式図を示す。
【0072】
C_df=C_d*F_m ・・・(30)
ただし、*はコンボリューションを示す
なお、本実施形態におけるフィルタF_mは、図24の2401に示すようにフィルタサイズが3×3正方形で、係数がほぼ同心円に並ぶ等方的加重平均フィルタとして説明するが、この形態に限るものではない。例えば、フィルタサイズは5×5,7×7,9×9のような正方形でも、3×5,5×7,5×9のような長方形でも良いし、フィルタ係数が楕円である非等方フィルタであっても良い。また、ローパス特性に限らず、バンドパス特性や、ハイパス特性のフィルタであっても良い。
【0073】
次にステップS302において、ハーフトーンデータフィルタ処理部502が、Out_cに対して、下式のように所定のローパスフィルタLPF_bによるフィルタ処理を行ってOut_c_LPFを算出する。図21に、フィルタ処理されたハーフトーンデータの模式図を示す。
【0074】
Out_c_LPF=Out_c*LPF_b ・・・(31)
本実施形態におけるLPF_bの係数もF_mと同様に、図24の2402に示すようにフィルタサイズが3×3正方形で、係数がほぼ同心円に並ぶ等方的加重平均フィルタとして説明するが、この形態に限るものではない。ただし、LPF_bはローパス特性を有することが好ましい。また、本実施形態ではF_mとLPF_bとして同じフィルタ係数を用いているが、もちろん異なる係数であっても良い。
【0075】
次にステップS303において、走査Dutyデータシフト部504は、走査Dutyフィルタ処理部501から出力されたデータC_dfを、一回の紙送り量LF=Nzzl/Pass=16/4=4だけ上にシフトする。図22に、シフトされた走査Dutyデータの模式図を示す。シフトした走査DutyデータC'_dfは、以下のように算出される。なお、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0076】
C'_df(nx,ny)=C_df(nx,ny+LF) ・・・(32)
式(32)において、ny+LF≧Nzzlのときは、C'_df(nx,ny)=0とする。すなわち、シフト後の下端LFノズル分(この場合4ノズル分)には0を代入する。
【0077】
そしてステップS304でも同様に、ハーフトーンデータシフト部505において、データOut_c_LPFを紙送り分上にシフトする。図23に、シフトされたハーフトーンデータの模式図を示す。シフトしたハーフトーンデータOut'_c_LPFは、以下のように算出される。なお、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0078】
Out'_c_LPF(nx,ny)=Out_c_LPF(nx,ny+LF) ・・・(33)
式(33)においても式(32)と同様に、ny+LF≧Nzzlのときは、Out'_c_LPF(nx,ny)=0とする。すなわち、シフト後の下端LFノズル分(この場合4ノズル分)には0を代入する。
【0079】
そしてステップS305でも同様に、更新前制約情報データシフト部505において、更新前の制約情報データC_rを紙送り分上にシフトする。シフトされた制約情報データをC'_rは、以下のように算出される。なお、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0080】
C'_r(nx,ny)=C_r(nx,ny+LF) ・・・(34)
式(34)においても式(32)と同様に、ny+LF≧Nzzlのときは、C'_r(nx,ny)=0とする。すなわち、シフト後の下端LFノズル分(この場合4ノズル分)には0を代入する。
【0081】
以上のように、ステップS303からS305において各バッファデータを紙送り量LF分だけシフトさせる理由は、次の走査番号にて形成されるハーフトーンドット配置が、記録媒体上で相対的に紙送り量LF分ずれるためである。
【0082】
次にステップS306では減算部506において、走査Dutyデータシフト処理部504で算出されたデータから、ハーフトーンデータシフト部505で算出されたデータを減算する。そしてステップS307で重み積算部507において、重み係数h(実数)を積算する。
【0083】
次にステップS308で加算部508において、重み積算部507で算出されたデータと、更新前制約情報データシフト部503にてシフトされたシアンの制約情報を加算して、更新後の制約情報C_rを算出する。下式に、上記ステップS306〜S308により算出される、更新後の制約情報C_rの演算式を示す。
【0084】
C_r←(−Out'_c_LPF+C'_df)×h+C'_r ・・・(35)
ここで算出された制約情報C_rは、次の走査番号k=2以降(すなわち現走査番号kに対する走査番号k+1)のハーフトーン処理用の制約情報として、制約情報バッファ109に保存される。
【0085】
以下、本実施形態における制約情報の更新方法を示す式(35)について、詳細に説明する。
【0086】
式(35)におけるOut'_c_LPFは、ハーフトーンデータフィルタ処理部502にてLPF_bを用いて、走査番号kのハーフトーン画像に対して低周波成分のみを取り出したデータである。式(35)においては、これに負号を付して−Out'_c_LPFとし、更新前の制約情報から減算することで、低周波成分が除去されたデータ、すなわち(−Out'_c_LPF+C'_df)を負の値にする。これにより、次の走査番号k+1以降でドットが打たれにくくなる。すなわちこの処理によって、次の走査番号k+1以降において、走査番号k以前に打たれたハーフトーン画像の低周波成分が逆位相となる効果がある。
【0087】
このように−Out'_c_LPFによって、直前に配置されたドットの低周波成分が逆位相となるが、低周波成分のみを逆位相とすることによって得られる効果について、図25を参照して説明する。
【0088】
図25はレジストレーションズレ(以下、レジズレ)に対する印刷画像の変化を、高周波領域と低周波領域に分けて模式的に表した図である。まず、印刷画像の高周波領域について考える。走査番号kと走査番号k+1の濃度分布が逆位相となる場合(2601)は、レジズレなしの時に濃度分布の山谷が補間されており、ドットが紙面を満遍なく埋めるため紙白部分が発生しづらい。そのため濃度が高くなるが、例えばわずかに(図25では20μm)がズレただけで、互いの濃度分布が重なる傾向になり、紙白部分が見えやすくなって濃度が薄くなる傾向になる。すなわち、印刷画像上、高周波成分で濃度分布が逆位相となると、レジズレに対する濃度耐性が低くなる。しかし、高周波成分で濃度分布が無相関となる場合(2602)は、多少レジズレが発生しても濃度は変わりづらく、粒状性悪化もほとんど起こらない。
【0089】
一方、印刷画像の低周波領域については、濃度分布が逆位相となる場合(2603)、視覚上目障りな低周波成分が少なくなり粒状性悪化が抑制される。さらに、多少レジズレが発生しても分布上の山谷の関係がほとんど変わらないので、濃度耐性は強い。しかし、低周波成分で濃度分布を無相関とする場合(2604)は、レジズレの発生の有無に関わらず、低周波成分が画像上に現れてしまうため、粒状性が悪化してしまう。
【0090】
以上のように図25によれば、印刷画像上のレジズレに対して濃度ムラ耐性が強く、かつ粒状性を良好とするためには、走査間において以下の2点を実現することが重要となることが分かる。すなわち、1)視覚上目障りな低周波成分は逆位相にする。2)高周波成分は逆位相にせず、無相関関係にする。
【0091】
ここで走査番号kとk+1のドット配置が実際にどのようになっているかを、走査番号1,2、ノズル数170、パス数2を例として以下に述べる。
【0092】
この時の走査番号kと走査番号k+1の同一記録媒体座標上に形成されるドット配置を、図51の(a),(b)にそれぞれ示す。さらに、この(a),(b)に示すドット配置が統合された最終出力画像を(c)に示す。(a)はノズル下端1/2のハーフトーン画像(縦サイズ170/2=85)であり、(b)はノズル上端1/2のハーフトーン画像(縦サイズ170/2=85)である。走査番号k+1のドット配置を算出する際に、走査番号k+1の画像(b)は、(a)と同一記録媒体上に画像を形成するため、ノズル上端1/2の画像となるのである。
【0093】
図51の(a)に対して、フーリエ解析を行うった結果を図52に示す。図51(a)は、多値データに対して誤差拡散処理を施すため、分散性が高く、図52に示すように低周波成分が除去された画像となる。
【0094】
また、図51の(a),(b)のクロススペクトルを算出し、空間周波数毎の位相差を算出したグラフを図53に示す。図53は、横軸の空間周波数と、縦軸の(a),(b)の平均位相差の関係を示しており、10[cycle/mm]以下では完全に逆位相ではないものの逆位相に近い値となっている。また10[cycle/mm]以上では逆位相と同位相の中間値となり、位相差が無相関となっている。よって、図53より、上述した1)視覚上目障りな低周波成分は逆位相にする、2)高周波成分は逆位相にせず、無相関関係にする、という関係が満足されることが理解できよう。
【0095】
これは、式(35)にて算出される制約情報が、走査番号kのノズル下端1/2に形成されたハーフトーン画像の低周波成分を減算したデータとなり、その制約情報データを式(22)で加算され、走査番号k+1のハーフトーン処理に渡されるためである。
【0096】
上記例では、走査番号kとk+1の隣り合う走査間における特性について言及したが、この特性は任意の走査間でも成り立つ。
【0097】
式(35)においては、ハーフトーンデータフィルタ処理部502にて算出されたOut'_c_LPFを減算することにより、低周波成分を逆位相とする効果がある。さらに、高周波成分については制約情報として何ら考慮しないことにより、高周波成分を無相関とする効果がある。
【0098】
次に、式(35)においてC'_dfに注目する。式(35)におけるC'_dfは、走査Dutyデータフィルタ処理部501にてF_mを用いて、走査番号kでのDutyデータに対するフィルタリングを行ったデータである。式(35)においてはこのC'_dfを加算しているが、その理由は以下の2点にある。
【0099】
まず1点目は、括弧内の平均値を0にすることで、制約情報C_rの平均を常に0に保ち、走査Duty濃度とハーフトーン処理の濃度を近づけるためである。これは、上述した−Out'_c_LPFによって負の値になったデータのみを制約情報として扱うと,式(22)に示すIcがC_dよりも小さくなってしまい、ハーフトーン処理におけるドット数が少なくなってしまうからである。誤差拡散法では入力濃度と出力濃度が常に同じになるよう動作するため,C_rは常に平均0に保たなければならない。ここで、C'_dfはOut'_c_LPFと同じ濃度であるため、C'_dfを加算することで,C_rは常に平均0を保つことができる。
【0100】
次に2点目の理由は、出力画像の空間周波数特性制御を行うことである。上述したように、式(35)の括弧内の平均値は0でなければならないが、Out'_c_LPFだけにLPF_bをかけると、括弧内のOut'_c_LPFとC'_dfが空間周波数的に異ってしまうため、エッジ強調が発生してしまう。言い換えると、Out_cだけぼかし処理を行い、C_dにぼかし処理を行なわないで減算を行うと、アンシャープマスキングと同等の処理となり、エッジ強調が起こってしまう。そこで、C_dにもOut_cと同じフィルタをかければ、エッジ強調抑制が可能となる。
【0101】
ただし、普通紙やマット紙などの非コート紙が記録媒体である場合、画像の輪郭がボケる傾向があるため、必ずしも双方に同じ処理を実施する必要はなく、たとえば、意図的にエッジ強調を起こさせるように、F_mの広がり度合いを狭くしたりしてもよい。
【0102】
式(35)においてはさらに、重み係数hにて制約情報の強度を調整できる。例えば、h=1.0のときは、フィルタにて演算された制約情報をそのまま出力でき、h=0.0のときは、制約情報を演算しないのと等価な出力が得られる。なお、式(35)の括弧内は平均0になっているため、hにどのような値を入れても、平均値0は保たれる。
【0103】
以上で図3のステップS109における制約情報演算処理が終了する。
【0104】
次にステップS110において、制約情報の演算結果で制約情報バッファ109を更新する。このように更新された制約情報は、次の走査番号以降(現走査番号がkならば次の走査番号はk+1)のドット配置を決定するための情報として参照される。
【0105】
ここで、制約情報バッファ109の更新について、図5の領域1を参照して詳細に説明する。
【0106】
本実施形態では、走査番号k=2におけるハーフトーン処理は、走査番号k=1において形成された領域1のドットパターンの低周波成分を逆位相にする必要がある。そのため、式(30)〜(35)によって、一回の紙送り量LF=Nzzl/Pass=16/4=4だけシフトされ、これを走査番号k=2の制約情報とするのは上述のとおりである。
【0107】
しかし、式(30)〜(35)は、走査番号k=1,とk=2の隣接関係において「低周波成分を逆位相にする」ことに限らない。例えば図5に示すように、走査番号k=3におけるハーフトーン処理では、走査番号k=1,2において形成された領域1のトータルドットパターンに対して、低周波成分を逆位相にする。これは、式(30)〜(35)では走査番号が1インクリメントされると、一回の紙送り量LF=Nzzl/Pass=16/4=4ずつシフトされながら、常に制約情報バッファ109に制約情報が保持されつつ、更新を繰り返すためである。
【0108】
同様に、走査番号k=4におけるハーフトーン処理では、走査番号k=1,2,3において形成された領域1のトータルドットパターンに対して、低周波成分を逆位相にする。
【0109】
すなわち本実施形態では、記録媒体上の同一領域において、既に記録されたトータルドットパターンの低周波成分を常に逆位相にするように、走査ごとのドットパターンが形成される。その結果、レジストレーションズレの発生の有無に関わらず、常に良好な粒状性を確保し、さらに、レジストレーションズレによる濃度ムラを低減することが可能となる。
【0110】
図3に戻り、次にステップS111において、ハーフトーンデータを受けたプリンタ2では、該画像データに適合するインク色が選択され、印字動作が開始される。ステップS111においては、記録ヘッド201が記録媒体に対して左から右に移動しながら、一定の駆動間隔で各ノズルを駆動して記録媒体上に画像を記録する主走査を1回行う。さらに該主走査が終了すると、主走査と垂直方向の走査である副走査が1回行なわれる。
【0111】
次にステップS112において、全ての走査が終了したか否かの判定を行う。終了した場合には一連の画像形成処理が完了し、終了していない場合にはステップS103に戻る。以上により、処理の全てが終了する。
【0112】
以上説明したように本実施形態によれば、主走査毎に2値化処理を実施する記録方式において、単一の主走査内で形成される出力ドット配置に高い分散性を持たせて、レジストレーションズレに対する粒状性劣化を抑制する際に、さらに以下の効果を得る。すなわち、複数の主走査間の出力ドット配置においては、低周波成分を逆位相にすることで、レジストレーションズレの発生有無に関わらず良好な粒状性を確保する。さらに、高周波成分では相関を少なくしてランダム性を持たせることで、レジストレーションズレによる濃度ムラを低減することが可能となる。
【0113】
具体的には、記録媒体上の同一領域において、既に記録された同一色ドットパターンの低周波成分を常に逆位相にするよう、走査ごとのドットパターンを誤差拡散法で形成する。すなわち式(22)に示すように、入力データC_dに対し、記録媒体上の同一箇所に既に形成されたドットパターンの低周波成分を取り出した制約情報C_rを反映させることによって、低周波成分を逆位相とし、高周波成分を無相関にする。これにより、印刷画像上のレジズレに対して濃度ムラ耐性が強く、かつ粒状性を良好とすることが可能となる。
【0114】
なお、低周波成分を逆位相とし、高周波成分を無相関となることの実現は、本実施形態の手法に限られるものではない。他の手法として、低周波成分を取り出した制約情報を、例えば閾値や量子化誤差に反映させても良い。
【0115】
また、本実施形態ではハーフトーン処理として誤差拡散法を用いる例を示したが、これに代えて平均誤差最小法を用いても良い。
【0116】
<第2実施形態>
以下、本発明に係る第2実施形態について説明する。上述した第1実施形態では、ハーフトーン処理部108にて誤差拡散処理を行う例を説明した。第2実施形態では、誤差拡散法に代えてディザ法を用いる例を示す。上述したように、ディザ法は誤差拡散法に比べて高速に処理を行えるため、第2実施形態では高速処理が可能となり、さらに第1実施形態と同様に低周波成分のみを制約情報とするため、第1実施形態と同様の効果が得られる。
【0117】
第2実施形態における画像形成装置の詳細構成は、ハーフトーン処理部108以外は第1実施形態と同様である。以下では説明を簡略化するため、第1実施形態と同様に4パス印字、走査番号k=1におけるシアンのハーフトーン処理の詳細について、図26のブロック図と図27のフローチャートを用いて説明する。図26は、第2実施形態におけるハーフトーン処理部108の詳細構成を示すブロック図であり、図27は第2実施形態におけるハーフトーン処理の詳細を示すフローチャートである。
【0118】
まず図27に示すステップS401において、図26に示す制約情報加算部601で下式に示すように、シアン走査DutyであるC_dと、シアン制約情報であるC_rの合計値データIcを算出する。ただし、走査番号k=1の制約情報C_rは全て0である。
【0119】
Ic=C_d+C_r ・・・(36)
次にステップS402で量子化部603において、上記I_cとしきい値マトリクス602の該当要素値との比較を行い、ステップS403にて2値化データを出力する。ここで図28に、第2実施形態におけるディザ処理による2値化の概要を示す。このときの2値化の規則は、しきい値マトリクス602の要素値Th(0〜255)が以下のように表される。なお、Thは図28に示すように、印刷画像上のアドレスに対応した閾値群である。
【0120】
I_c≦Thのとき、 Out_c=0 ・・・(37)
Th<I_cのとき、 Out_c=255 ・・・(38)
第2実施形態におけるThとしては、周知のしきい値マトリクスを使用すれば良い。例えばBayer配列であっても良いし、ドット集中型であっても良いし、ブルーノイズマスク配列であっても良い。また、しきい値マトリクス602は、走査番号毎に異なるマトリクスを用いても良いし、常に同一のマトリクスを用いても良い。
【0121】
そしてステップS404において、上述したステップS401〜S403の処理をバンド内のアドレス(0,0)〜(W−1,Nzzl−1)まで行なうことによって、ハーフトーンデータのドット位置が決定される。これにより、走査番号k=1でのハーフトーン処理が終了し、その結果、各色分の1回のヘッド動作で形成される2値画像が、各色分のハーフトーン画像格納バッファ110に格納される。
【0122】
以上説明したように第2実施形態によれば、ハーフトーン処理を誤差拡散に代えてディザ法で行うことによって、第1実施形態に比べて高速処理を可能としつつ、第1実施形態と同様にレジズレに対する耐性を持った高画質な画像形成が可能となる。
【0123】
<第3実施形態>
以下、本発明に係る第3実施形態について説明する。第3実施形態における画像形成装置の詳細構成は上述した第1実施形態と同様であるため、説明を省略する。
【0124】
上述した第1実施形態では、各色独立に制約情報バッファ109を各色で独立に設け、その制約情報と走査Dutyデータの合計値に対して誤差拡散処理を行う例を示した。上述した第1実施形態では、記録媒体上の同一領域において、既に記録された同一色ドットパターンの低周波成分を常に逆位相にするよう、走査ごとのドットパターンを形成する。これにより、レジストレーションズレの発生の有無に関わらず良好な粒状性を確保し、さらに、レジストレーションズレによる濃度ムラを低減することが可能となった。
【0125】
第3実施形態では、ハーフトーン処理において制約情報を2色以上で共用し、一方色による誤差拡散処理を、他方色の処理結果に従属して行うことを特徴とする。これにより、制約情報バッファ数を削減でき、さらに色間で低周波が逆位相になるため、例えばシアン、マゼンタドットが重なって濃いブルードットが発生することにより粒状性が悪化することも防げる。
【0126】
以下、第3実施形態におけるハーフトーン処理について、図29のフローチャートを参照して説明する。なお、図29におけるステップS501〜S505は、上述した第1実施形態において図3に示したステップS101〜S105と同様の処理であるため、説明を省略し、ステップS506以降の処理について説明する。
【0127】
ステップS506においてハーフトーン処理部108は、走査Dutyバッファ107のシアンデータと制約情報バッファ109の制約情報の合計値を、2レベルの階調値(2値データ)に変換するシアン用のハーフトーン処理を行う。なお、第3実施形態における制約情報バッファ109は図30に示すように、縦方向がノズル数(Nzzl)、横方向が画像のXサイズ(W)に相当するバンド状の制約情報データを有し、これをシアンとマゼンタで共用する。
【0128】
制約情報バッファ109には、記録される画像上のアドレスに2値画像が形成されやすいか否かを示す制約情報が格納され、走査番号kごとに更新される。ただし、走査番号k=1の処理開始時には、初期値として全て0が代入されている。
すなわち、制約情報をシアンとマゼンタで共用すると、アドレス(X,Y)における制約情報はCM_r(X,Y)、Lc_r(X,Y)、Lm_r(X,Y)、Y_r(X,Y)、K_r(X,Y)の5つとなり、これらの初期値は以下のように記述される。なお、0≦nx<画像Xサイズ、0≦ny<Nzzl(ノズル列数:この場合16)である。
【0129】
CM_r(nx,ny)=0 ・・・(39)
Lc_r(nx,ny)=0 ・・・(40)
Lm_r(nx,ny)=0 ・・・(41)
Y_r(nx,ny)=0 ・・・(42)
K_r(nx,ny)=0 ・・・(43)
そのため、Lc_r、Lm_r、Y_r、K_r、については走査番号k≧2の時に有意な制約情報に更新されていくことになるが、シアンマゼンタ共用の制約情報CM_rについては、同一走査番号内で制約情報を更新していく。CM_rの更新についての詳細は後述する。
【0130】
第3実施形態のハーフトーン処理においては、上述した第1実施形態と同様に、多値の入力画像データを2値画像(または2値以上で入力階調数より少ない階調数の画像)に変換する処理として、誤差拡散法を用いる。もちろん、これに代えて、平均誤差最小法や第2実施形態で説明したディザ法を使用することも可能である。
【0131】
以下、説明を簡略化するため、4パス印字、走査番号k=1におけるシアンのハーフトーン処理についての詳細を、図31のブロック図と図32のフローチャートを用いて説明する。図31は第3実施形態におけるハーフトーン処理部108において、特にシアンの処理に関する詳細構成を示すブロック図であり、図32は第3実施形態におけるシアンのハーフトーン処理の詳細を示すフローチャートである。
【0132】
まず図32に示すステップS601において、シアンの走査Dutyと制約情報の合計を入力する。すなわち、図31に示す制約情報加算部701において、シアン走査DutyであるC_dとシアンマゼンタ制約情報CM_rの合計値データIcを以下のように算出する。ただし、走査番号k=1のとき、制約情報C_rは全て0である。
【0133】
Ic=C_d+CM_r ・・・(44)
次にステップS602において、誤差拡散処理用に累積誤差を加算する。以下、第3実施形態における累積誤差の加算処理について詳細に説明する。
【0134】
第3実施形態においても、誤差拡散処理のための誤差拡散係数として、図14に示すようにK1〜K4の4つの係数を持つとする。例えば、K1=7/16、K2=3/16、K3=5/16、K4=1/16とする。ただし、拡散係数は上記のように固定とする必要はなく、階調に応じて変更させても良いし、上記4係数に限らずさらに多くの係数を持たせても良い。
【0135】
このような誤差拡散係数により誤差を拡散、累積するために、ハーフトーン処理部108では累積誤差ラインバッファをシアンに対して4組確保し(702〜705)、使用する累積誤差ラインバッファを走査番号ごとに、例えば以下のように切り替える。
【0136】
「走査番号k=1,5,・・・,4n+1(nは0以上の整数)のとき」
シアン(4n+1)累積誤差ラインバッファ702を使用
「走査番号k=2,6,・・・,4n+2のとき」
シアン(4n+2)累積誤差ラインバッファ703を使用
「走査番号k=3,7,・・・,4n+3のとき」
シアン(4n+3)累積誤差ラインバッファ704を使用
「走査番号k=4,8,・・・,4n+4のとき」
シアン(4n+4)累積誤差ラインバッファ705を使用
なお、各累積誤差ラインバッファ702,703,704,705はそれぞれ、図33の3301〜3304に示すような4組の記憶領域からなる。すなわち、「Ec1_0,Ec1(x)」、「Ec2_0,Ec2(x)」、「Ec3_0,Ec3(x)」、「Ec4_0,Ec4(x)」の4組である。例えば、シアン(4n+1)累積誤差バッファ702は、1個の記憶領域Ec1_0と、入力画像の横画素数Wと同数の記憶領域Ec1_(x)(x=1〜W)を有する。また、各シアン累積誤差ラインバッファ702,703,704,705はそれぞれ、走査番号k=1,2,3,4の処理開始時のみ、全て初期値0で初期化されている。例えば走査番号k=5の処理開始時には、シアン(4n+1)累積誤差バッファ702は初期化されない。第3実施形態では4パス印字を行うため、1色あたり上述した4組の累積誤差ラインバッファが必要になり、詳細は後述するが、マゼンタについての累積誤差ラインバッファも同様に4組必要となる。
【0137】
走査番号k=1の場合、シアン(4n+1)累積誤差バッファ702を使用した誤差拡散処理が実施される。すなわち、累積誤差加算部706において、シアン走査DutyとCM制約情報の合計である入力データ値に対して、入力画素データの横画素位置xに対応する誤差Ec1(x)が加算される。即ち、入力された注目データをIc、累積誤差加算後のデータをIc'とすると、以下の式が成り立つ。
【0138】
Ic'=Ic+Ec1(x) ・・・(45)
次にステップS603において、閾値選択部707は閾値Tを選択する。閾値Tは、例えば以下のように設定される。
【0139】
T=128 ・・・(46)
或いは、ドット生成遅延を回避するため、平均量子化誤差が小さくなるよう、C_dに応じて閾値Tを以下のように細かく変更しても良い。
【0140】
T=f(C_d) ・・・(47)
次にステップS604において、量子化部708は、誤差加算後の画素データIc'と閾値Tを比較し、ドットの2値化結果であるOut_cを決定する。その規則は次の通りである。
【0141】
Ic'<Tのとき、
Out_c=0 ・・・(48)
Ic'≧Tのとき、
Out_c=255 ・・・(49)
次にステップS605において、誤差演算部709は、注目画素Icに誤差を加算した画素データIc'と、出力画素値Out_cとの差分Err_cを、次のように算出する。
【0142】
Err_c(x)=Ic'−Out_c ・・・(50)
次にステップS606において、誤差拡散部710が誤差を拡散する。即ち、シアン(4n+1)累積誤差ラインバッファ702を用いて、横画素位置xに応じた誤差Err_c(x)の拡散処理が、以下のように行われる。
【0143】
Ec1(x+1)←Ec1(x+1)+Err_c(x)×7/16 (x<W)
Ec1(x−1)←Ec1(x−1)+Err_c(x)×3/16 (x>1)
Ec1(x)←Ec1_0+Err_c(x)×5/16 (1<x<W)
Ec1(x)←Ec1_0+Err_c(x)×8/16 (x=1)
Ec1(x)←Ec1_0+Err_c(x)×13/16 (x=W)
Ec1_0←Err_c(x)×1/16 (x<W)
Ec1_0←0 (x=W)
・・・(51)
以上で、走査番号k=1のシアン1画素分の2値化(量子化値0,255)が完了する。
【0144】
以上説明したステップS601〜S606の処理を、バンド内のアドレス(0,0)〜(W−1,Nzzl−1)まで行う(S607)ことにより、シアンハーフトーンデータのドット位置、すなわちシアンドットのオン/オフを決定することができる。
【0145】
図29に戻り、以上説明したようにステップS506におけるシアンのハーフトーン処理が終了すると、次に、ハーフトーン処理後のシアン2値画像データはハーフトーン画像格納バッファ110に格納される(S507)。ここで図34に、走査番号k=1のシアン走査Dutyをハーフトーン処理した結果が、ハーフトーン画像格納バッファ110に格納された様子を示す。同図に示されるようにハーフトーン画像格納バッファ110には、走査Dutyの画素位置に対応する(ノズル数:Nzzl)×(画像Xサイズ:W)分の2値画像データが格納される。
【0146】
次に、ハーフトーン画像格納バッファ110に蓄えられた、縦方向がノズル数(Nzzl)、横方向が画像のXサイズ(W)に相当するシアンハーフトーンのバンドデータが、画像出力端子112より出力される(S508)。
【0147】
すると次に、制約情報演算部111においてシアンドット配置に基づいてCM制約情報を演算する(S509)。なお、詳細は後述するが第3実施形態においては、まずシアンドット配置に基づいてCM制約情報を算出した後、該CM制約情報に基づいてマゼンタドット配置を決定する。そして、該決定されたマゼンタドット配置に基づいてCM制約情報を更新し、これを次の走査番号に対応する制約情報とする。
【0148】
以下、ステップS509におけるシアンドット配置に基づくCM制約情報の演算処理について、図35のブロック図と図36のフローチャートを用いて詳細に説明する。図35は、制約情報演算部111におけるシアンに関する詳細構成を示すブロック図であり、図36は該構成において行われる制約情報演算処理を示すフローチャートである。上述したように、第3実施形態における制約情報はシアンマゼンタ共用であるため、シアンドットの制約情報は、同一走査番号のマゼンタドット配置を決める上での制約となる。
【0149】
まず、図36に示すステップS701において、走査Dutyバッファ107のデータに対してフィルタ処理を行う。すなわち、図35に示す走査Dutyフィルタ処理部801において、走査Dutyバッファ107内のシアン走査DutyであるC_dに対して、下式のように所定のフィルタF_mによるフィルタ処理を行ってC_dfを算出する。図37に、フィルタ処理されたシアン走査Dutyデータの模式図を示す。
【0150】
C_df=C_d*F_m ・・・(52)
ただし、*はコンボリューションを示す
なお、第3実施形態におけるフィルタF_mは、図24の2401に示すようにフィルタサイズが3×3正方形で、係数がほぼ同心円に並ぶ等方的加重平均フィルタとして説明するが、この形態に限るものではない。例えば、フィルタサイズは5×5,7×7,9×9のような正方形でも、3×5,5×7,5×9のような長方形でも良いし、フィルタ係数が楕円である非等方フィルタであっても良い。また、ローパス特性に限らず、バンドパス特性や、ハイパス特性のフィルタであっても良い。
【0151】
次にステップS702において、ハーフトーンデータフィルタ処理部802が、Out_cに対して、下式のように所定のローパスフィルタLPF_bによるフィルタ処理を行ってOut_c_LPFを算出する。図38に、フィルタ処理されたシアンハーフトーンデータの模式図を示す。
【0152】
Out_c_LPF=Out_c*LPF_b ・・・(53)
本実施形態におけるLPF_bの係数もF_mと同様に、図24の2402に示すようにフィルタサイズが3×3正方形で、係数がほぼ同心円に並ぶ等方的加重平均フィルタとして説明するが、この形態に限るものではない。ただし、LPF_bはローパス特性を有することが好ましい。また、本実施形態ではF_mとLPF_bとして同じフィルタ係数を用いているが、もちろん異なる係数であっても良い。
【0153】
次にステップS703では減算部803において、走査Dutyフィルタ処理部801で算出されたデータから、ハーフトーンデータフィルタ処理部802で算出されたデータを減算する。そしてステップS704で重み積算部804において、重み係数h1(実数)を積算する。
【0154】
次にステップS705で加算部805において、重み積算部804で算出されたデータと、更新前のCM制約情報を加算して、シアン反映後の制約情報CM_rを算出し、これをマゼンタのハーフトーン処理の制約情報として保存しておく。
【0155】
下式に、上記ステップS703〜S705により算出される、シアン反映後の制約情報CM_rの演算式を示す。
【0156】
CM_r←(−Out_c_LPF+C_df)×h1+CM_r ・・・(54)
以上で、図29のステップS509におけるシアンドット配置に基づくCM制約情報の演算処理が終了する。
【0157】
次に、ステップS510において、CM制約情報の演算結果によりシアンマゼンタ共用の制約情報バッファ109を更新する。
【0158】
上述したように、第3実施形態においては第1実施形態と異なり、この段階では制約情報を相対的に紙送り量LF上方へシフトしない。これは、同一走査番号のマゼンタハーフトーン画像についてはまだ処理されておらず、制約情報はマゼンタハーフトーンデータの処理に利用されるためである。第3実施形態では、シアンマゼンタの制約情報を共用しているため、同一走査番号のマゼンタドット配置が決まるまで、制約情報のシフトを行わない。
【0159】
次にステップS511において、ハーフトーン処理部108にて、走査Dutyバッファ107のマゼンタデータと制約情報バッファ109の合計値に対し、2レベルの階調値(2値データ)へ変換する、マゼンタ用のハーフトーン処理を行う。なお、第3実施形態における制約情報バッファ109はシアンマゼンタ共用であるため、上述した図30に示すバッファ形態である。
【0160】
以下、マゼンタのハーフトーン処理についての詳細を、図39のブロック図と図40のフローチャートを用いて説明する。図39は第3実施形態におけるハーフトーン処理部108において、特にマゼンタの処理に関する詳細構成を示すブロック図であり、図40は第3実施形態におけるマゼンタのハーフトーン処理の詳細を示すフローチャートである。
【0161】
まず図40に示すステップS801において、マゼンタの走査Dutyと制約情報の合計を入力する。すなわち、図39に示す制約情報加算部901において、マゼンタ走査DutyであるM_dとシアンマゼンタ制約情報CM_rの合計値データImを以下のように算出する。ただし、ここで入力される制約情報CM_rには、上記(54)式により既にシアン制約情報が反映されている。
【0162】
Im=M_d+CM_r ・・・(55)
次にステップS802において、誤差拡散処理用に累積誤差を加算する。以下、第3実施形態における累積誤差の加算処理について詳細に説明する。ここでも、誤差拡散処理のための誤差拡散係数として、図14に示すようなK1〜K4の4つの係数を持つとする。 このような誤差拡散係数により誤差を拡散、累積するために、ハーフトーン処理部108では累積誤差ラインバッファをマゼンタに対して4組確保し(902〜905)、使用する累積誤差ラインバッファを走査番号ごとに、例えば以下のように切り替える。
【0163】
「走査番号k=1,5,・・・,4n+1(nは0以上の整数)のとき」
マゼンタ(4n+1)累積誤差ラインバッファ902を使用
「走査番号k=2,6,・・・,4n+2のとき」
マゼンタ(4n+2)累積誤差ラインバッファ903を使用
「走査番号k=3,7,・・・,4n+3のとき」
マゼンタ(4n+3)累積誤差ラインバッファ904を使用
「走査番号k=4,8,・・・,4n+4のとき」
マゼンタ(4n+4)累積誤差ラインバッファ905を使用
なお、各累積誤差ラインバッファ902,903,904,905はそれぞれ、図33の3305〜3308に示すような4組の記憶領域からなる。すなわち、「Em1_0,Em1(x)」、「Em2_0,Em2(x)」、「Em3_0,Em3(x)」、「Em4_0,Em4(x)」の4組である。例えば、マゼンタ(4n+1)累積誤差バッファ902は、1個の記憶領域Em1_0と、入力画像の横画素数Wと同数の記憶領域Em1_(x)(x=1〜W)を有する。また、各マゼンタ累積誤差ラインバッファ902,903,904,905はそれぞれ、走査番号k=1,2,3,4の処理開始時のみ、全て初期値0で初期化されている。例えば走査番号k=5の処理開始時には、マゼンタ(4n+1)累積誤差バッファ902は初期化されない。
【0164】
走査番号k=1の場合、マゼンタ(4n+1)累積誤差バッファ902を使用した誤差拡散処理を実施する。すなわち、累積誤差加算部906において、マゼンタ走査DutyとCM制約情報の合計である入力データ値に対して、入力画素データの横画素位置xに対応する誤差Em1(x)が加算される。即ち、入力された注目データをIm、累積誤差加算後のデータをIm'とすると、以下の式が成り立つ。
【0165】
Ic'=Ic+Ec1(x) ・・・(56)
次にステップS803において、閾値選択部907は閾値Tを選択する。閾値Tは、例えば以下のように設定される。
【0166】
T=128 ・・・(57)
或いは、ドット生成遅延を回避するため、平均量子化誤差が小さくなるよう、M_dに応じて閾値Tを以下のように細かく変更しても良い。
【0167】
T=f(M_d) ・・・(58)
次にステップS804において、量子化部908は、誤差加算後の画素データIm'と閾値Tを比較し、ドットの2値化結果であるOut_mを決定する。その規則は次の通りである。
【0168】
Im'<Tのとき、
Out_m=0 ・・・(59)
Im'≧Tのとき、
Out_m=255 ・・・(60)
次にステップS805において、誤差演算部909は、注目画素Imに誤差を加算した画素データIm'と、出力画素値Out_mとの差分Err_mを、次のように算出する。
【0169】
Err_m(x)=Im'−Out_m ・・・(61)
次にステップS806において、誤差拡散部910が誤差を拡散する。即ち、マゼンタ(4n+1)累積誤差ラインバッファ902を用いて、横画素位置xに応じた誤差Err_m(x)の拡散処理が、以下のように行われる。
【0170】
Em1(x+1)←Em1(x+1)+Err_m(x)×7/16 (x<W)
Em1(x−1)←Em1(x−1)+Err_m(x)×3/16 (x>1)
Em1(x)←Em1_0+Err_m(x)×5/16 (1<x<W)
Em1(x)←Em1_0+Err_m(x)×8/16 (x=1)
Em1(x)←Em1_0+Err_m(x)×13/16 (x=W)
Em1_0←Err_m(x)×1/16 (x<W)
Em1_0←0 (x=W)
・・・(62)
以上で、走査番号k=1のマゼンタ1画素分の2値化(量子化値0,255)が完了する。
【0171】
以上説明したステップS801〜S806の処理を、バンド内の全ての画素について行う(S807)ことにより、マゼンタのハーフトーンデータのドット位置、すなわちマゼンタドットのオン/オフを決定することができる。
【0172】
図29に戻り、以上説明したようにステップS511におけるマゼンタのハーフトーン処理が終了すると、次に、ハーフトーン処理後のマゼンタ2値画像データはハーフトーン画像格納バッファ110に格納される(S512)。ここで図41に、走査番号k=1のマゼンタ走査Dutyをハーフトーン処理した結果が、ハーフトーン画像格納バッファ110に格納された様子を示す。同図に示されるようにハーフトーン画像格納バッファ110には、走査Dutyの画素位置に対応する(ノズル数:Nzzl)×(画像Xサイズ:W)分の2値画像データが格納される。
【0173】
次に、ハーフトーン画像格納バッファ110に蓄えられた、縦方向がノズル数(Nzzl)、横方向が画像のXサイズ(W)に相当するマゼンタハーフトーンのバンドデータが、画像出力端子112より出力される(S513)。
【0174】
すると次に、制約情報演算部111においてマゼンタドット配置に基づいてCM制約情報を演算する(S514)。以下、ステップS514におけるCM制約情報の演算処理について、図42のブロック図と図43のフローチャートを用いて詳細に説明する。図42は、制約情報演算部111におけるマゼンタに関する詳細構成を示すブロック図であり、図43は該構成において行われる制約情報演算処理を示すフローチャートである。
【0175】
まず、図43に示すステップS901において、走査Dutyバッファ107のデータに対してフィルタ処理を行う。すなわち、図42に示す走査Dutyフィルタ処理部1001において、走査Dutyバッファ107内のマゼンタ走査DutyであるM_dに対して、下式のように所定のフィルタF_mによるフィルタ処理を行ってM_dfを算出する。図44に、フィルタ処理されたマゼンタ走査Dutyデータの模式図を示す。
【0176】
M_df=M_d*F_m ・・・(63)
ただし、*はコンボリューションを示す
なお、ここでのフィルタF_mとしては、シアン処理と同様のものを用いても良いが、他のフィルタであっても構わない。
【0177】
次にステップS902において、ハーフトーンデータフィルタ処理部1002が、Out_mに対して、下式のように所定のローパスフィルタLPF_bによるフィルタ処理を行ってOut_m_LPFを算出する。図45に、フィルタ処理されたマゼンタハーフトーンデータの模式図を示す。
【0178】
Out_m_LPF=Out_m*LPF_b ・・・(64)
なお、本実施形態におけるLPF_bとしても、シアン処理と同様のものを用いても、他のフィルタであっても構わない。
【0179】
次にステップS903において、走査Dutyデータシフト部1003は、走査Dutyフィルタ処理部1001から出力されたデータM_dfを、一回の紙送り量LF=Nzzl/Pass=16/4=4だけ上にシフトする。図46に、シフトされたマゼンタ走査Dutyデータの模式図を示す。シフトした走査DutyデータM'_dfは、以下のように算出される。なお、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0180】
M'_df(nx,ny)=M_df(nx,ny+LF) ・・・(65)
式(65)において、ny+LF≧Nzzlのときは、M'_df(nx,ny)=0とする。すなわち、シフト後の下端LFノズル分(この場合4ノズル分)には0を代入する。 そしてステップS904でも同様に、ハーフトーンデータシフト部1004において、データOut_m_LPFを紙送り分上にシフトする。図47に、シフトされたマゼンタハーフトーンデータの模式図を示す。シフトしたマゼンタハーフトーンデータOut'_m_LPFは、以下のように算出される。なお、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0181】
Out'_m_LPF(nx,ny)=Out_m_LPF(nx,ny+LF) ・・・(66)
式(66)においても、ny+LF≧Nzzlのときは、Out'_m_LPF(nx,ny)=0とする。すなわち、シフト後の下端LFノズル分(この場合4ノズル分)には0を代入する。
【0182】
そしてステップS905でも同様に、制約情報データシフト部1005において、シアン反映済みの制約情報データCM_rを紙送り分上にシフトする。シフトされた制約情報データをCM'_rは、以下のように算出される。なお、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0183】
CM'_r(nx,ny)=CM_r(nx,ny+LF) ・・・(67)
式(67)においても、ny+LF≧Nzzlのときは、CM'_r(nx,ny)=0とする。すなわち、シフト後の下端LFノズル分(この場合4ノズル分)には0を代入する。
【0184】
上述したように、次の走査番号用の制約情報を算出するためには、相対的に紙送り量LF上方にシフトさせ、さらに、下端LFノズル分は0を代入する必要がある。ここで、マゼンタ処理においてバッファデータを紙送り量LFだけシフトさせる理由は、同一走査番号におけるシアン、マゼンタのハーフトーン画像が、双方とも既に処理済みだからである。さらに、第3実施形態ではシアンマゼンタの制約情報を共用しているため、同一走査番号におけるシアン、マゼンタの双方のドット配置の決まった後、制約情報をLF分上方にシフトさせる。
【0185】
次にステップS906では減算部1006において、走査Dutyデータシフト部1003で算出されたデータから、ハーフトーンデータシフト部1004で算出されたデータを減算する。そしてステップS907で重み積算部1007において、重み係数h2(実数)を積算する。
【0186】
次にステップS908で加算部1008において、重み積算部1007で算出されたデータと、シフト済みのCM制約情報を加算して、シアンマゼンタ反映後の制約情報CM_rを算出する。
【0187】
下式に、上記ステップS906〜S908により算出される、シアンマゼンタ反映後の制約情報CM_rの演算式を示す。
【0188】
CM_r←(−Out'_m_LPF+M'_df)×h2+CM'_r ・・・(68)
以上で、図29のステップS514における、マゼンタドット配置に基づくCM制約情報の演算処理が終了する。
【0189】
次にステップS515において、CM制約情報の演算結果で制約情報バッファ109を更新する。このように更新されたCM制約情報は、次の走査番号k+1以降のドット配置を決定するための情報として参照される。
【0190】
第3実施形態では上述した処理によって第1実施形態と同様に、記録媒体上の同一領域において、既に記録されたドットパターンの低周波成分を常に逆位相にするように、走査ごとのドットパターンが形成される。ただし、第1実施形態では同一色のドットについて低周波成分を逆位相にするようドットパターンが形成されるが、第3実施形態では、共用の制約情報によって相互に低周波成分が逆位相にするようにドットパターンが形成されることを特徴とする。
【0191】
したがって第3実施形態によれば、制約情報バッファ数を削減できることはもちろんのこと、異色間において低周波が逆位相になるため、例えば、シアン、マゼンタドットが重なって濃いブルードットとなり粒状性が悪化するような不具合を防ぐことができる。
【0192】
次にステップS516において、ハーフトーンデータを受けたプリンタ2では、該画像データに適合するインク色が選択され、印字動作が開始される。ステップS516においては、記録ヘッド201が記録媒体に対して左から右に移動しながら、一定の駆動間隔で各ノズルを駆動して記録媒体上に画像を記録する主走査を一回行う。さらに該主走査が終了すると、主走査と垂直方向の走査である副走査が1回行なわれる。
【0193】
次にステップS517において、全ての走査が終了したか否かの判定を行う。終了した場合には一連の画像形成処理が完了し、終了していない場合にはステップS503に戻る。以上により、処理の全てが終了する。
【0194】
以上説明したように第3実施形態によれば、制約情報を2色以上で共用することにより、第1実施形態で同一色について実現されていた低周波成分の逆位相化および高周波成分の無相関化を、異色間においても実現する。これにより、制約情報バッファ数の削減のみならず、特に低周波領域における異色ドットの重なりによる粒状性悪化を防ぐことができる。
【0195】
<第4実施形態>
以下、本発明に係る第4実施形態について説明する。第4実施形態における画像形成装置の詳細構成は上述した第1実施形態と同様であるため、説明を省略する。
【0196】
上述した第1〜3実施形態では、画像の濃度に関わらず、常に同じフィルタを用いて制約情報バッファ109を更新する例を示した。しかしながら、一般にハーフトーン処理画像においては、濃度に応じて空間周波数特性が変化するため、常に同じフィルタを用いて制約情報を生成すると、以下のような問題が生じてしまう場合がある。例えば、低濃度域ではなんら問題がない画像であっても、高濃度域で粒状性が目立ってしまったり、逆に、高濃度域では問題ない画像が、低濃度域でムラが目立ってしまうこと等がある。
【0197】
第4実施形態では、画像の濃度値に応じてフィルタを変更することを特徴とする。これにより、濃度に応じた最適な処理を行うことが可能になり、上記のように、濃度依存の画質劣化を防ぐことが可能になる。
【0198】
以下、第4実施形態におけるハーフトーン処理について説明する。該処理は基本的に上述した第1実施形態に示した図3のフローチャートと同様であるが、ステップS109の制約情報演算処理についての詳細が第1実施形態とは異なる。したがって、以下では図3のステップS109の処理についてのみ、第4実施形態における詳細を説明し、他のステップについての説明は省略する。
【0199】
ステップS109においては制約情報を演算する。ここでは説明を簡略化するため、4パス印字、走査番号k=1、ノズル数Nzzl=16におけるシアンの制約情報の演算についての詳細を、図48のブロック図と図49のフローチャートを用いて詳細に説明する。
【0200】
図48は、制約情報演算部111におけるシアンに関する詳細構成を示すブロック図であり、図49は該構成において行われる制約情報演算処理を示すフローチャートである。図48によれば、第4実施形態の制約情報演算部111は、累積走査Dutyバッファ1103と累積ハーフトーンデータバッファ1104を備え、これらに格納される累積データを用いて、制約情報の演算を行うことを特徴とする。
【0201】
なお、ここで制約情報とは上述したとおり、現在の走査番号k=1の次の走査番号k=2におけるハーフトーン画像のドット配置を決める上で、ドットが打たれやすいか否かを示す情報である。なお、現在の走査番号がkのときは、次の走査番号はk+1である。
【0202】
まず、図49に示すステップS1001において、図48に示す加算部1101で、走査Dutyバッファ107内のシアンDutyデータと、累積走査Dutyバッファ1103に保持されているデータを加算する。ここで累積走査Dutyバッファ1103には、全0の初期値が代入されており、走査番号k=1のとき、各色のデータは以下のように記述される。なお、アドレス(X,Y)における各色のバッファデータをそれぞれ、C_sum_d(X,Y)、Lc_sum_d(X,Y)、M_sum_d(X,Y)、Lm_sum_d(X,Y)、Y_sum_d(X,Y)、K_sum_d(X,Y)とする。また、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0203】
C_sum_d(nx,ny)=0 ・・・(69)
Lc_sum_d(nx,ny)=0 ・・・(70)
M_sum_d(nx,ny)=0 ・・・(71)
Lm_sum_d(nx,ny)=0 ・・・(72)
Y_sum_d(nx,ny)=0 ・・・(73)
K_sum_d(nx,ny)=0 ・・・(74)
ここでシアンに限って説明すると、ステップS1001による加算後の累積走査DutyデータC_sum_d'は、以下のように算出される
C_sum_d'=C_d+C_sum_d ・・・(75)
次にステップS1002において、図48に示す加算部1102で、ハーフトーンデータと累積ハーフトーンデータバッファ1104に保持されているデータを加算する。ここで累積ハーフトーンデータバッファ1104にも、全0の初期値が代入されており、走査番号k=1のとき、各色のデータは以下のように記述される。なお、アドレス(X,Y)におけるC,Lc,M,Lm,Y,K各色のバッファデータをそれぞれ以下のように示すとする。すなわち、Out_c_sum(X,Y)、Out_lc_sum(X,Y)、Out_m_sum(X,Y)、Out_lm_sum(X,Y)、Out_y_sum(X,Y)、Out_k_sum(X,Y)とする。また、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0204】
Out_c_sum(nx,ny)=0 ・・・(76)
Out_lc_sum(nx,ny)=0 ・・・(77)
Out_m_sum(nx,ny)=0 ・・・(78)
Out_lm_sum(nx,ny)=0 ・・・(79)
Out_y_sum(nx,ny)=0 ・・・(80)
Out_k_sum(nx,ny)=0 ・・・(81)
ここでシアンに限って説明すると、ステップS1002による加算後の累積ハーフトーンデータOut_c_sum'は、以下のように算出される
Out_c_sum'=Out_c+Out_c_sum ・・・(82)
ここで、Out_cはハーフトーンデータであるので、0もしくは255の値である。また、Out_c_sumはOut_cの累積データであるので、0もしくは255の倍数の値である。例えば、Out_c=255、Out_c_sum=255の場合には、Out_c_sum'は510となるし、Out_c=255、Out_c_sum=510の場合には、Out_c_sum'は765となる。
【0205】
次にステップS1003において、上記式(75)にて算出された累積走査DutyデータC_sum_d'を、累積走査Dutyバッファ1103に書き込む。これにより、下式が成り立つ。
【0206】
C_sum_d←C_sum_d' ・・・(83)
次にステップS1004において、上記式(82)にて算出された累積ハーフトーンデータOut_c_sum'を、累積ハーフトーンデータバッファ1104に書き込む。これにより、下式が成り立つ。
【0207】
Out_c_sum←Out_c_sum' ・・・(84)
次にステップS1005で、累積走査Dutyフィルタ処理部1105において、累積走査Dutyバッファ1103に保持されたC_sum_dに対するフィルタ処理を行う。このフィルタ処理においては、C_sum_dに応じて変化する2次元ガウシアンフィルタF_m(C_sum_d,x,y)を用い、下式のようにC_sum_dfを算出する。
【0208】
C_sum_df=C_sum_d*F_m(C_sum_d,x,y) ・・・(85)
ただし、*はコンボリューションを示す
なお、2次元ガウシアンフィルタF_mは、下式のように表される。
【0209】
F_m=F'_m/Sum_m ・・・(86)
式(86)において、Sum_mは、F'_m係数の合計値である。また、F'_mは下式で表される。
【0210】
【0211】
式(87)において、σx(C_sum_d)、σy(C_sum_d)は、累積走査DutyデータであるC_sum_dに応じて値が変化する。
【0212】
ここで、フィルタF_mの具体例を図50の5001,5002に示す。第4実施形態では説明を簡略化するため、フィルタサイズが3×3正方形である例を示すが、この形態に限るものではない。例えば、フィルタサイズは5×5,7×7,9×9のような正方形でも、3×5,5×7,5×9のような長方形でも良い。また、ローパス特性に限らず、バンドパス特性や、ハイパス特性のフィルタであっても良い。
【0213】
なお、図50において、5001はサイズ3x3で、C_sum_d=30のとき、σx(C_sum_d)=1.0、σy(C_sum_d)=1.0となるフィルタ例を示す。また5002は、サイズ3x3で、C_sum_d=40のとき、σx(C_sum_d)=0.9、σy(C_sum_d)=0.9となるフィルタ例を示している。すなわち図50によれば、C_sum_dに応じてフィルタF_mのフィルタ係数が変化していることが分かる。
【0214】
次にステップS1006で、累積ハーフトーンデータフィルタ処理部1106において、累積ハーフトーンデータバッファ1104に保持されたOut_c_sumに対するフィルタ処理を行う。このフィルタ処理においては、C_sum_dに応じて変化する2次元ガウシアンフィルタLPF_b(C_sum_d,x,y)を用い、下式のようにOut_c_sum_LPFを算出する。
【0215】
Out_c_sum_LPF=Out_c_sum*LPF_b ・・・(88)
なお、2次元ガウシアンフィルタLFP_bは、下式のように表される。
【0216】
LPF_b=LPF'_b/Sum_b ・・・(89)
式(89)において、Sum_bは、LPF'_b係数の合計値である。また、LPF'_bは下式で表される。
【0217】
【0218】
式(90)において、σx(C_sum_d)、σy(C_sum_d)は、累積走査DutyデータであるC_sum_dに応じて値が変化する。
【0219】
ここで、フィルタLPF_bの具体例を図50の5003,5004に示す。第4実施形態ではLPF_bについてもF_mと同様に、フィルタサイズが3×3正方形である例を示すが、この形態に限るものではない。例えば、フィルタサイズは5×5,7×7,9×9のような正方形でも、3×5,5×7,5×9のような長方形でも良い。ただし、十分な効果を得るために、C_sum_dが小さいほどσ値が大きくなることが望ましい。また、LPF_bはローパス特性を有することが好ましい。
【0220】
図50に示すようにLFP_bもF_mと同様に、累積走査DutyデータであるC_sum_dに応じて、フィルタ係数が変化していることが分かる。なお、図50によれば、第4実施形態ではF_mとLPF_bとして同じフィルタ係数を用いているが、もちろん異なる係数であっても良い。
【0221】
次にステップS1007では減算部1107において、累積走査Dutyフィルタ処理部1105で算出されたデータから、累積ハーフトーンデータフィルタ処理部1106で算出されたデータを減算する。そしてステップS1008で重み積算部1108において、重み係数h(実数)を積算することによって、制約情報C_rを得る。ステップS1007およびS1008における処理は、下式のように表される。
【0222】
C_r←(−Out_c_sum_LPF+C_sum_df)×h ・・・(91)
次にステップS1009において、制約情報データバッファ書き込み部1109にて、式(91)で得られたデータC_rを制約情報データバッファ109に書き込む。
【0223】
次にステップS1010において、制約情報データバッファシフト部1110は、制約情報データバッファ109に書き込まれた制約情報C_rを、一回の紙送り量LF=Nzzl/Pass=16/4=4だけ上にシフトする。ここでシフトした走査Dutyデータは、下式により算出される。なお、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0224】
C_r(nx,ny)=C_r(nx,ny+LF) ・・・(92)
式(92)においてny+LF≧Nzzlのときは、C_r(nx,ny)=0とする。すなわち、シフト後の下端LFノズル分(この場合4ノズル分)には0を代入する。
【0225】
次にステップS1011において、累積走査Dutyデータシフト部1111は、累積走査Dutyバッファ1103に保持されたC_sum_dを、一回の紙送り量LF=Nzzl/Pass=16/4=4だけ上にシフトする。ここでシフトした累積走査Dutyデータは、下式のように算出される。なお、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0226】
C_sum_d(nx,ny)=C_sum_d(nx,ny+LF) ・・・(93)
式(93)においても、ny+LF≧Nzzlのときは、C_r(nx,ny)=0とする。すなわち、シフト後の下端LFノズル分(この場合4ノズル分)には0を代入する。
【0227】
そしてステップS1012でも同様に、累積ハーフトーンデータシフト部1112も、累積ハーフトーンデータバッファ1104に保持されたOut_c_sumを、一回の紙送り量だけ上にシフトする。ここでシフトした累積ハーフトーンデータは以下のように算出される。なお、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0228】
Out_c_sum(nx,ny)=Out_c_sum(nx,ny+LF)・・・(94)
式(94)においても、ny+LF≧Nzzlのときは、C_r(nx,ny)=0とする。すなわち、シフト後の下端LFノズル分(この場合4ノズル分)には0を代入する。
【0229】
以上で、第4実施形態のステップS109における制約情報演算処理が終了する。
【0230】
以上説明したように第4実施形態によれば、同一色について、累積走査Dutyデータに応じてフィルタ係数を変えることによって、濃度に応じた最適な制約情報を算出することが可能になり、濃度依存の画質劣化を防ぐことができる。
【0231】
なお、第4実施形態のフィルタ処理は、ディザ処理を行う第2実施形態に適用してもよいし、異なる色同士で制約情報を共有する第3実施形態に適用してもよい。
【0232】
<第5実施形態>
以下、本発明に係る第5実施形態について説明する。第5実施形態における画像形成装置の詳細構成は上述した第1実施形態と同様であるため、説明を省略する。
【0233】
上述した第1〜4実施形態では、C_dもしくはC_sum_dなどの多値データに対してもフィルタ処理を行い、画像の空間周波数特性の保存を前提とした処理を実施した。しかしながら、C_dもしくはC_sum_dなど、多値データに対してのフィルタ処理はハード、ソフト処理ともに処理コストがかかることが知られている。
【0234】
第5実施形態では、多値データのフィルタ処理を省略した処理を実施する。これにより、画像のエッジが強調されるが、処理コストを省いた構成が可能となる。
【0235】
以下、第5実施形態におけるハーフトーン処理について説明する。該処理は基本的に上述した第1実施形態に示した図3のフローチャートと同様であるが、ステップS109の制約情報演算処理についての詳細が第1実施形態とは異なる。したがって、以下では図3のステップS109の処理についてのみ、第5実施形態における詳細を説明し、他のステップについての説明は省略する。
【0236】
ステップS109においては制約情報を演算する。ここでは説明を簡略化するため、4パス印字、走査番号k=1、ノズル数Nzzl=16におけるシアンの制約情報の演算についての詳細を、図54のブロック図と図55のフローチャートを用いて詳細に説明する。図54は、制約情報演算部111におけるシアンに関する詳細構成を示すブロック図であり、図55は該構成において行われる制約情報演算処理を示すフローチャートである。 なお、ここで制約情報とは上述したとおり、現在の走査番号k=1の次の走査番号k=2におけるハーフトーン画像のドット配置を決める上で、ドットが打たれやすいか否かを示す情報である。なお、現在の走査番号がkのときは、次の走査番号はk+1である。
【0237】
まず、図55に示すステップS1101において、図54に示す加算部1201で、走査Dutyバッファ107内のシアンDutyデータと、累積走査Dutyバッファ1204に保持されているデータを加算する。ここで累積走査Dutyバッファ1204には、全0の初期値が代入されており、走査番号k=1のとき、各色のデータは以下のように記述される。なお、アドレス(X,Y)における各色のバッファデータをそれぞれ、C_sum_d(X,Y)、Lc_sum_d(X,Y)、M_sum_d(X,Y)、Lm_sum_d(X,Y)、Y_sum_d(X,Y)、K_sum_d(X,Y)とする。また、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0238】
C_sum_d(nx,ny)=0 ・・・(95)
Lc_sum_d(nx,ny)=0 ・・・(96)
M_sum_d(nx,ny)=0 ・・・(97)
Lm_sum_d(nx,ny)=0 ・・・(98)
Y_sum_d(nx,ny)=0 ・・・(99)
K_sum_d(nx,ny)=0 ・・・(100)
ここでシアンに限って説明すると、ステップS1101による加算後の累積走査DutyデータC_sum_d'は、以下のように算出される
C_sum_d'=C_d+C_sum_d ・・・(101)
次にステップS1102において、ハーフトーンデータフィルタ処理部1202は,Out_cに対して所定のローパスフィルタLPF_bによるフィルタ処理を施す。
【0239】
Out_c_LPF=Out_c*LPF_b ・・・(102)
第5実施形態におけるLPF_bの係数は、図24の2402に示すようにフィルタサイズが3×3正方形で、係数がほぼ同心円に並ぶ等方的加重平均フィルタとして説明するが、この形態に限るものではない。ただし、LPF_bはローパス特性を有することが好ましい。
【0240】
次にステップS1103において、図54に示す加算部1203で、フィルタ処理後のハーフトーンデータと累積ハーフトーンフィルタ後データバッファ1205に保持されているデータを加算する。ここで累積ハーフトーンフィルタ後データバッファ1205にも、全0の初期値が代入されており、走査番号k=1のとき、各色のデータは以下のように記述される。なお、アドレス(X,Y)におけるC,Lc,M,Lm,Y,K各色のバッファデータをそれぞれ以下のように示すとする。すなわち、Out_c_LPF_sum(X,Y)、Out_lc_LPF_sum(X,Y)、Out_m_LPF_sum(X,Y)、Out_lm_LPF_sum(X,Y)。および、Out_y_LPF_sum(X,Y)、Out_k_LPF_sum(X,Y)とする。また、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0241】
Out_c_LPF_sum(nx,ny)=0 ・・・(103)
Out_lc_LPF_sum(nx,ny)=0 ・・・(104)
Out_m_LPF_sum(nx,ny)=0 ・・・(105)
Out_lm_LPF_sum(nx,ny)=0 ・・・(106)
Out_y_LPF_sum(nx,ny)=0 ・・・(107)
Out_k_LPF_sum(nx,ny)=0 ・・・(108)
ここでシアンに限って説明すると、ステップS1103による加算後の累積ハーフトーンフィルタ後データOut_c_LPF_sum'は、以下のように算出される
Out_c_LPF_sum'=Out_c_LPF+Out_c_LPF_sum ・・・(109)
次にステップS1104において、上記式(101)にて算出された累積走査DutyデータC_sum_d'を、累積走査Dutyバッファ1204に書き込む。これにより、下式が成り立つ。
【0242】
C_sum_d←C_sum_d' ・・・(110)
次にステップS1105において、上記式(109)にて算出された累積ハーフトーンフィルタ後データOut_c_LPF_sum'を、累積ハーフトーンフィルタ後データバッファ1205に書き込む。これにより、下式が成り立つ。
【0243】
Out_c_LPF_sum←Out_c_LPF_sum' ・・・(111)
次にステップS1106では減算部1206において、累積走査Dutyバッファ1204に格納されたデータから、累積ハーフトーンフィルタ後データバッファ1205に格納されたデータを減算する。そしてステップS1107で重み積算部1207において、重み係数h(実数)を積算することによって、制約情報C_rを得る。ステップS1106およびS1107における処理は、下式のように表される。
【0244】
C_r←(−Out_c_LPF_sum+C_sum_d)×h ・・・(112)
次にステップS1108において、制約情報データバッファ書き込み部1208にて、式(112)で得られたデータC_rを制約情報データバッファ109に書き込む。
【0245】
次にステップS1109において、制約情報データバッファシフト部1209は、制約情報データバッファ109に書き込まれた制約情報C_rを、一回の紙送り量LF=Nzzl/Pass=16/4=4だけ上にシフトする。ここでシフトした走査Dutyデータは、下式により算出される。なお、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0246】
C_r(nx,ny)=C_r(nx,ny+LF) ・・・(113)
式(113)においてny+LF≧Nzzlのときは、C_r(nx,ny)=0とする。すなわち、シフト後の下端LFノズル分(この場合4ノズル分)には0を代入する。
【0247】
次にステップS1110において、累積走査Dutyデータシフト部1210は、累積走査Dutyバッファ1204に保持されたC_sum_dを、一回の紙送り量LF=Nzzl/Pass=16/4=4だけ上にシフトする。ここでシフトした累積走査Dutyデータは、下式のように算出される。なお、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0248】
C_sum_d(nx,ny)=C_sum_d(nx,ny+LF) ・・・(114)
式(114)においても、ny+LF≧Nzzlのときは、C_r(nx,ny)=0とする。すなわち、シフト後の下端LFノズル分(この場合4ノズル分)には0を代入する。
【0249】
そしてステップS1111でも同様に、累積ハーフトーンデータシフト部1211も、累積ハーフトーンフィルタ後データバッファ1205に保持されたOut_c_LPF_sumを、一回の紙送り量だけ上にシフトする。ここでシフトした累積ハーフトーンフィルタ後データは以下のように算出される。なお、0≦nx<画像Xサイズ、0≦ny<Nzzlとする。
【0250】
Out_c_LPF_sum(nx,ny)=
Out_c_LPF_sum(nx,ny+LF) ・・・(115)
式(115)においても、ny+LF≧Nzzlのときは、C_r(nx,ny)=0とする。すなわち、シフト後の下端LFノズル分(この場合4ノズル分)には0を代入する。
【0251】
以上で、第5実施形態のステップS109における制約情報演算処理が終了する。
【0252】
以上説明したように第4実施形態によれば、上述した第1乃至第4実施形態に対し、同一色について、多値データのフィルタ処理を省略した処理を実施する。これにより、画像のエッジが強調されるが、処理コストを省いた構成が可能となる。
【0253】
なお、第5実施形態のフィルタ処理は、ディザ処理を行う第2実施形態に適用してもよいし、異なる色同士で制約情報を共有する第3実施形態に適用してもよい。
【0254】
<他の実施形態>
上述した各実施形態では、所定方向に配列された複数のノズルを有する記録ヘッドをノズルの配列方向と交差する方向に記録媒体上で走査させて、記録媒体にインクを吐出することで画像を形成するインクジェット記録方式を用いた画像処理装置を説明した。しかしながら本発明は、インクジェット方式以外の他の方式に従って記録を行う記録装置(例えば熱転写方式や電子写真方式)に対しても適用できる。この場合、インク滴を吐出するノズルはドットを記録する記録素子やレーザー発光素子に対応することとなる。
【0255】
また本発明は例えば、記録媒体の記録幅に対応する長さの記録ヘッドを有し、記録ヘッドに対して記録媒体を移動させて記録を行う、いわゆるフルライン型の記録装置などにも適用できる。
【0256】
本発明は例えば、システム、装置、方法、プログラム若しくは記憶媒体(記録媒体)等としての実施態様をとることが可能である。具体的には、複数の機器(例えば、ホストコンピュータ、インタフェース機器、撮像装置、webアプリケーション等)から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0257】
尚本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される。なお、この場合のプログラムとは、実施形態において図に示したフローチャートに対応したプログラムである。
【0258】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【0259】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
【0260】
プログラムを供給するための記録媒体としては、以下に示す媒体がある。例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD-ROM、CD-R、CD-RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD-ROM,DVD-R)などである。
【0261】
プログラムの供給方法としては、以下に示す方法も可能である。すなわち、クライアントコンピュータのブラウザからインターネットのホームページに接続し、そこから本発明のコンピュータプログラムそのもの(又は圧縮され自動インストール機能を含むファイル)をハードディスク等の記録媒体にダウンロードする。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
【0262】
また、本発明のプログラムを暗号化してCD-ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせることも可能である。すなわち該ユーザは、その鍵情報を使用することによって暗号化されたプログラムを実行し、コンピュータにインストールさせることができる。
【0263】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【0264】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、実行されることによっても、前述した実施形態の機能が実現される。すなわち、該プログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行うことが可能である。
【図面の簡単な説明】
【0265】
【図1】本発明に係る一実施形態における画像形成システムの構成を示すブロック図である。
【図2】本実施形態のプリンタにおける記録ヘッドの構成例を示す図である。
【図3】本実施形態における画像形成処理を示すフローチャートである。
【図4】本実施形態の色分解処理部における入出力データの詳細を示す図である。
【図5】本実施形態における16ノズル、4パス印字による画像形成の概要を示す図である。
【図6】本実施形態における走査Duty設定用LUTに保持されたDuty分割率の一例を示す図である。
【図7】本実施形態における走査Dutyの設定方法の概要を示す図である。
【図8】本実施形態における走査Dutyの設定方法の概要を示す図である。
【図9】本実施形態における走査Dutyの設定方法の概要を示す図である。
【図10】本実施形態における走査Dutyバッファのバンド構成例を示す図である。
【図11】本実施形態における制約情報バッファのバンド構成例を示す図である。
【図12】本実施形態におけるハーフトーン処理部の詳細構成を示すブロック図である。
【図13】本実施形態におけるハーフトーン処理を示すフローチャートである。
【図14】本実施形態における誤差拡散係数の一例を示す図である。
【図15】本実施形態における各シアン累積誤差ラインバッファの記憶領域を示す図である。
【図16】本実施形態における印字領域の隣接の様子を示す図である。
【図17】本実施形態におけるハーフトーン処理結果の格納例を示す図である。
【図18】本実施形態における制約情報演算部の詳細構成を示すブロック図である。
【図19】本実施形態における制約情報演算処理を示すフローチャートである。
【図20】本実施形態の制約情報演算におけるフィルタ処理後の走査Dutyデータの模式図である。
【図21】本実施形態の制約情報演算におけるフィルタ処理後のハーフトーンデータの模式図である。
【図22】本実施形態の制約情報演算におけるシフト後の走査Dutyデータの模式図である。
【図23】本実施形態の制約情報演算におけるシフト後のハーフトーンデータの模式図である。
【図24】本実施形態の制約情報演算におけるフィルタの具体例を示す図である。
【図25】本実施形態における印刷画像の周波数領域による対レジズレ特性を示す図である。
【図26】第2実施形態におけるハーフトーン処理部の詳細構成を示すブロック図である。
【図27】第2実施形態におけるハーフトーン処理を示すフローチャートである。
【図28】第2実施形態におけるディザ処理の概要を示す図である。
【図29】第3実施形態におけるハーフトーン処理を示すフローチャートである。
【図30】第3実施形態における制約情報バッファのバンド構成例を示す図である。
【図31】第3実施形態におけるハーフトーン処理部のシアンに関する詳細構成を示すブロック図である。
【図32】第3実施形態におけるシアンのハーフトーン処理を示すフローチャートである。
【図33】第3実施形態における各累積誤差ラインバッファの記憶領域を示す図である。
【図34】第3実施形態におけるシアンのハーフトーン処理結果の格納例を示す図である。
【図35】第3実施形態における制約情報演算部のシアンに関する詳細構成を示すブロック図である。
【図36】第3実施形態におけるシアンの制約情報演算処理を示すフローチャートである。
【図37】第3実施形態におけるフィルタ処理後のシアン走査Dutyデータの模式図である。
【図38】第3実施形態におけるフィルタ処理後のシアンハーフトーンデータの模式図である。
【図39】第3実施形態におけるハーフトーン処理部のマゼンタに関する詳細構成を示すブロック図である。
【図40】第3実施形態におけるマゼンタのハーフトーン処理を示すフローチャートである。
【図41】第3実施形態におけるマゼンタのハーフトーン処理結果の格納例を示す図である。
【図42】第3実施形態における制約情報演算部のマゼンタに関する詳細構成を示すブロック図である。
【図43】第3実施形態におけるマゼンタの制約情報演算処理を示すフローチャートである。
【図44】第3実施形態におけるフィルタ処理後のマゼンタ走査Dutyデータの模式図である。
【図45】第3実施形態におけるフィルタ処理後のマゼンタハーフトーンデータの模式図である。
【図46】第3実施形態におけるシフト後のマゼンタ走査Dutyデータの模式図である。
【図47】第3実施形態におけるシフト後のマゼンタハーフトーンデータの模式図である。
【図48】第4実施形態における制約情報演算部のシアンに関する詳細構成を示すブロック図である。
【図49】第4実施形態における制約情報演算処理を示すフローチャートである。
【図50】第4実施形態の制約情報演算におけるフィルタの具体例を示す図である。
【図51】第5実施形態における隣接する走査番号同士のドット配置と、その統合例を示す図である。
【図52】第5実施形態におけるドット配置に対してフーリエ解析を行った例を示す図である。
【図53】第5実施形態における隣接するドット配置によるクロススペクトル例を示す図である。
【図54】第5実施形態における制約情報演算部の詳細構成を示すブロック図である。
【図55】第5実施形態における制約演算処理を示すフローチャートである。
【特許請求の範囲】
【請求項1】
複数の記録素子を備えた記録ヘッドを、記録媒体上で走査することによって画像を形成する画像形成装置であって、
画像データを入力する画像データ入力手段と、
該画像データに応じて、前記記録ヘッドの主走査ごとに、前記記録素子ごとの記録量を算出する走査内記録量算出手段と、
前記走査内記録量算出手段で算出された記録量に対し、予め定められた制約情報に基づくN値化処理(Nは2以上の整数)を施して形成対象となるドットパターンを作成するN値化手段と、
前記走査内記録量算出手段で算出された記録量と、前記N値化手段で出力されたドットパターンに基づいて、次の主走査時に前記N値化手段で参照される前記制約情報を作成する制約情報作成手段と、を有し、
前記制約情報作成手段は、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記N値化手段で作成されるドットパターンの位相が低周波域で逆位相となるように、前記制約情報を作成することを特徴とする画像形成装置。
【請求項2】
前記制約情報作成手段は、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記N値化手段で作成されるドットパターンの位相が高周波域で無相関となるように、前記制約情報を作成することを特徴とする請求項1に記載の画像形成装置。
【請求項3】
前記制約情報作成手段は、前記記録媒体上の同一領域に既に記録された同一色のドットパターンに対し、前記N値化手段で作成されるドットパターンの位相が低周波域で逆位相となるように、前記制約情報を作成することを特徴とする請求項1または2に記載の画像形成装置。
【請求項4】
前記制約情報作成手段は、前記記録媒体上の同一領域に既に記録された異なる色のドットパターンに対し、前記N値化手段で作成されるドットパターンの位相が低周波域で逆位相となるように、前記制約情報を作成することを特徴とする請求項1または2に記載の画像形成装置。
【請求項5】
前記走査内記録量算出手段は、前記記録ヘッドにおける前記記録素子の位置に応じて前記画像データに応じた記録量を分割することによって、前記記録素子ごとの記録量を算出することを特徴とする請求項1乃至4のいずれか1項に記載の画像形成装置。
【請求項6】
前記走査内記録量算出手段は、前記記録媒体上の同一領域に対する前記記録素子ごとの記録量の合計が、前記画像データに応じた記録量となるように、前記記録素子ごとの記録量を算出することを特徴とする請求項5に記載の画像形成装置。
【請求項7】
前記N値化手段は、誤差拡散法によるN値化を行うことを特徴とする請求項1乃至6のいずれか1項に記載の画像形成装置。
【請求項8】
前記N値化手段は、ディザ法によるN値化を行うことを特徴とする請求項1乃至6のいずれか1項に記載の画像形成装置。
【請求項9】
前記制約情報作成手段は、前記走査内記録量算出手段で算出された記録量の累積値に基づいて、前記制約情報を作成することを特徴とする請求項1乃至8のいずれか1項に記載の画像形成装置。
【請求項10】
前記記録ヘッドを複数の色ごとに備えることを特徴とする請求項1乃至9のいずれか1項に記載の画像形成装置。
【請求項11】
複数の記録素子を備えた記録ヘッドを、記録媒体上で走査することによって画像を形成する画像形成装置にドットパターンを出力する画像処理装置であって、
画像データを入力する画像データ入力手段と、
該画像データに応じて、前記記録ヘッドの主走査ごとに、前記記録素子ごとの記録量を算出する走査内記録量算出手段と、
前記走査内記録量算出手段で算出された記録量に対し、予め定められた制約情報に基づくN値化処理(Nは2以上の整数)を施して形成対象となるドットパターンを作成するN値化手段と、
前記走査内記録量算出手段で算出された記録量と、前記N値化手段で出力されたドットパターンに基づいて、次の主走査時に前記N値化手段で参照される前記制約情報を作成する制約情報作成手段と、を有し、
前記制約情報作成手段は、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記N値化手段で作成されるドットパターンの位相が低周波域で逆位相となるように、前記制約情報を作成することを特徴とする画像処理装置。
【請求項12】
前記制約情報作成手段は、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記N値化手段で作成されるドットパターンの位相が高周波域で無相関となるように、前記制約情報を作成することを特徴とする請求項11に記載の画像処理装置。
【請求項13】
複数の記録素子を備えた記録ヘッドを、記録媒体上で走査することによって画像を形成する画像形成装置の制御方法であって、
画像データ入力手段が、画像データを入力する画像データ入力ステップと、
走査内記録量算出手段が、該画像データに応じて、前記記録ヘッドの主走査ごとに、前記記録素子ごとの記録量を算出する走査内記録量算出ステップと、
N値化手段が、前記走査内記録量算出ステップにおいて算出された記録量に対し、予め定められた制約情報に基づくN値化(Nは2以上の整数)を施して形成対象となるドットパターンを作成するN値化ステップと、
制約情報作成手段が、前記走査内記録量算出ステップにおいて算出された記録量と、前記N値化ステップにおいて出力されたドットパターンに基づいて、次の主走査時に前記N値化手段で参照される前記制約情報を作成する制約情報作成ステップと、を有し、
前記制約情報作成ステップにおいては、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記N値化手段で作成されるドットパターンの位相が低周波域で逆位相となるように、前記制約情報を作成することを特徴とする画像形成装置の制御方法。
【請求項14】
前記制約情報作成ステップにおいては、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記N値化手段で作成されるドットパターンの位相が高周波域で無相関となるように、前記制約情報を作成することを特徴とする請求項13に記載の画像形成装置の制御方法。
【請求項15】
複数の記録素子を備えた記録ヘッドを、記録媒体上で走査することによって画像を形成する画像形成装置に対してドットパターンを出力する画像処理装置の制御方法であって、
画像データ入力手段が、画像データを入力する画像データ入力ステップと、
走査内記録量算出手段が、該画像データに応じて、前記記録ヘッドの主走査ごとに、前記記録素子ごとの記録量を算出する走査内記録量算出ステップと、
N値化手段が、前記走査内記録量算出ステップにおいて算出された記録量に対し、予め定められた制約情報に基づくN値化を施して形成対象となるドットパターンを作成するN値化ステップと、
制約情報作成手段が、前記走査内記録量算出ステップにおいて算出された記録量と、前記N値化ステップにおいて出力されたドットパターンに基づいて、次の主走査時に前記N値化手段で参照される前記制約情報を作成する制約情報作成ステップと、を有し、
前記制約情報作成ステップにおいては、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記N値化手段で作成されるドットパターンの位相が低周波域で逆位相となるように、前記制約情報を作成することを特徴とする画像処理装置の制御方法。
【請求項16】
前記制約情報作成ステップにおいては、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記N値化手段で作成されるドットパターンの位相が高周波域で無相関となるように、前記制約情報を作成することを特徴とする請求項15に記載の画像処理装置の制御方法。
【請求項17】
コンピュータで実行されることにより、該コンピュータに請求項13または14に記載の画像形成装置の制御方法を実現させることを特徴とするコンピュータプログラム。
【請求項18】
コンピュータで実行されることにより、該コンピュータに請求項15または16に記載の画像処理装置の制御方法を実現させることを特徴とするコンピュータプログラム。
【請求項19】
請求項17または18に記載のプログラムを記憶したことを特徴とするコンピュータ可読な記憶媒体。
【請求項1】
複数の記録素子を備えた記録ヘッドを、記録媒体上で走査することによって画像を形成する画像形成装置であって、
画像データを入力する画像データ入力手段と、
該画像データに応じて、前記記録ヘッドの主走査ごとに、前記記録素子ごとの記録量を算出する走査内記録量算出手段と、
前記走査内記録量算出手段で算出された記録量に対し、予め定められた制約情報に基づくN値化処理(Nは2以上の整数)を施して形成対象となるドットパターンを作成するN値化手段と、
前記走査内記録量算出手段で算出された記録量と、前記N値化手段で出力されたドットパターンに基づいて、次の主走査時に前記N値化手段で参照される前記制約情報を作成する制約情報作成手段と、を有し、
前記制約情報作成手段は、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記N値化手段で作成されるドットパターンの位相が低周波域で逆位相となるように、前記制約情報を作成することを特徴とする画像形成装置。
【請求項2】
前記制約情報作成手段は、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記N値化手段で作成されるドットパターンの位相が高周波域で無相関となるように、前記制約情報を作成することを特徴とする請求項1に記載の画像形成装置。
【請求項3】
前記制約情報作成手段は、前記記録媒体上の同一領域に既に記録された同一色のドットパターンに対し、前記N値化手段で作成されるドットパターンの位相が低周波域で逆位相となるように、前記制約情報を作成することを特徴とする請求項1または2に記載の画像形成装置。
【請求項4】
前記制約情報作成手段は、前記記録媒体上の同一領域に既に記録された異なる色のドットパターンに対し、前記N値化手段で作成されるドットパターンの位相が低周波域で逆位相となるように、前記制約情報を作成することを特徴とする請求項1または2に記載の画像形成装置。
【請求項5】
前記走査内記録量算出手段は、前記記録ヘッドにおける前記記録素子の位置に応じて前記画像データに応じた記録量を分割することによって、前記記録素子ごとの記録量を算出することを特徴とする請求項1乃至4のいずれか1項に記載の画像形成装置。
【請求項6】
前記走査内記録量算出手段は、前記記録媒体上の同一領域に対する前記記録素子ごとの記録量の合計が、前記画像データに応じた記録量となるように、前記記録素子ごとの記録量を算出することを特徴とする請求項5に記載の画像形成装置。
【請求項7】
前記N値化手段は、誤差拡散法によるN値化を行うことを特徴とする請求項1乃至6のいずれか1項に記載の画像形成装置。
【請求項8】
前記N値化手段は、ディザ法によるN値化を行うことを特徴とする請求項1乃至6のいずれか1項に記載の画像形成装置。
【請求項9】
前記制約情報作成手段は、前記走査内記録量算出手段で算出された記録量の累積値に基づいて、前記制約情報を作成することを特徴とする請求項1乃至8のいずれか1項に記載の画像形成装置。
【請求項10】
前記記録ヘッドを複数の色ごとに備えることを特徴とする請求項1乃至9のいずれか1項に記載の画像形成装置。
【請求項11】
複数の記録素子を備えた記録ヘッドを、記録媒体上で走査することによって画像を形成する画像形成装置にドットパターンを出力する画像処理装置であって、
画像データを入力する画像データ入力手段と、
該画像データに応じて、前記記録ヘッドの主走査ごとに、前記記録素子ごとの記録量を算出する走査内記録量算出手段と、
前記走査内記録量算出手段で算出された記録量に対し、予め定められた制約情報に基づくN値化処理(Nは2以上の整数)を施して形成対象となるドットパターンを作成するN値化手段と、
前記走査内記録量算出手段で算出された記録量と、前記N値化手段で出力されたドットパターンに基づいて、次の主走査時に前記N値化手段で参照される前記制約情報を作成する制約情報作成手段と、を有し、
前記制約情報作成手段は、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記N値化手段で作成されるドットパターンの位相が低周波域で逆位相となるように、前記制約情報を作成することを特徴とする画像処理装置。
【請求項12】
前記制約情報作成手段は、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記N値化手段で作成されるドットパターンの位相が高周波域で無相関となるように、前記制約情報を作成することを特徴とする請求項11に記載の画像処理装置。
【請求項13】
複数の記録素子を備えた記録ヘッドを、記録媒体上で走査することによって画像を形成する画像形成装置の制御方法であって、
画像データ入力手段が、画像データを入力する画像データ入力ステップと、
走査内記録量算出手段が、該画像データに応じて、前記記録ヘッドの主走査ごとに、前記記録素子ごとの記録量を算出する走査内記録量算出ステップと、
N値化手段が、前記走査内記録量算出ステップにおいて算出された記録量に対し、予め定められた制約情報に基づくN値化(Nは2以上の整数)を施して形成対象となるドットパターンを作成するN値化ステップと、
制約情報作成手段が、前記走査内記録量算出ステップにおいて算出された記録量と、前記N値化ステップにおいて出力されたドットパターンに基づいて、次の主走査時に前記N値化手段で参照される前記制約情報を作成する制約情報作成ステップと、を有し、
前記制約情報作成ステップにおいては、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記N値化手段で作成されるドットパターンの位相が低周波域で逆位相となるように、前記制約情報を作成することを特徴とする画像形成装置の制御方法。
【請求項14】
前記制約情報作成ステップにおいては、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記N値化手段で作成されるドットパターンの位相が高周波域で無相関となるように、前記制約情報を作成することを特徴とする請求項13に記載の画像形成装置の制御方法。
【請求項15】
複数の記録素子を備えた記録ヘッドを、記録媒体上で走査することによって画像を形成する画像形成装置に対してドットパターンを出力する画像処理装置の制御方法であって、
画像データ入力手段が、画像データを入力する画像データ入力ステップと、
走査内記録量算出手段が、該画像データに応じて、前記記録ヘッドの主走査ごとに、前記記録素子ごとの記録量を算出する走査内記録量算出ステップと、
N値化手段が、前記走査内記録量算出ステップにおいて算出された記録量に対し、予め定められた制約情報に基づくN値化を施して形成対象となるドットパターンを作成するN値化ステップと、
制約情報作成手段が、前記走査内記録量算出ステップにおいて算出された記録量と、前記N値化ステップにおいて出力されたドットパターンに基づいて、次の主走査時に前記N値化手段で参照される前記制約情報を作成する制約情報作成ステップと、を有し、
前記制約情報作成ステップにおいては、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記N値化手段で作成されるドットパターンの位相が低周波域で逆位相となるように、前記制約情報を作成することを特徴とする画像処理装置の制御方法。
【請求項16】
前記制約情報作成ステップにおいては、前記記録媒体上の同一領域に既に記録されたドットパターンに対し、前記N値化手段で作成されるドットパターンの位相が高周波域で無相関となるように、前記制約情報を作成することを特徴とする請求項15に記載の画像処理装置の制御方法。
【請求項17】
コンピュータで実行されることにより、該コンピュータに請求項13または14に記載の画像形成装置の制御方法を実現させることを特徴とするコンピュータプログラム。
【請求項18】
コンピュータで実行されることにより、該コンピュータに請求項15または16に記載の画像処理装置の制御方法を実現させることを特徴とするコンピュータプログラム。
【請求項19】
請求項17または18に記載のプログラムを記憶したことを特徴とするコンピュータ可読な記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図24】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図39】
【図40】
【図41】
【図42】
【図43】
【図48】
【図49】
【図50】
【図51】
【図52】
【図53】
【図54】
【図55】
【図10】
【図20】
【図21】
【図22】
【図23】
【図25】
【図37】
【図38】
【図44】
【図45】
【図46】
【図47】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図24】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図39】
【図40】
【図41】
【図42】
【図43】
【図48】
【図49】
【図50】
【図51】
【図52】
【図53】
【図54】
【図55】
【図10】
【図20】
【図21】
【図22】
【図23】
【図25】
【図37】
【図38】
【図44】
【図45】
【図46】
【図47】
【公開番号】特開2008−188805(P2008−188805A)
【公開日】平成20年8月21日(2008.8.21)
【国際特許分類】
【出願番号】特願2007−23515(P2007−23515)
【出願日】平成19年2月1日(2007.2.1)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成20年8月21日(2008.8.21)
【国際特許分類】
【出願日】平成19年2月1日(2007.2.1)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]