(第1実施例)
(システムの構成)
図面を参照して第1実施例を説明する。図1は、本実施例のネットワークシステム2の概略図を示す。ネットワークシステム2は、LAN4とPC10とプリンタ50とを備える。PC10とプリンタ50とは、LAN4に接続されている。PC10とプリンタ50とは、LAN4を介して、相互に通信可能である。
(PC10の構成)
PC10は、操作部12と、表示部14と、ネットワークインターフェイス16と、記憶部20と、制御部30と、を備える。操作部12は、マウスとキーボードとによって構成される。ユーザは、操作部12を操作することによって、様々な指示をPC10に入力することができる。表示部14は、様々な情報を表示するためのディスプレイである。ネットワークインターフェイス16は、LAN4に接続されている。
記憶部20は、ワーク領域22を備える。ワーク領域22は、例えば、印刷対象のデータを記憶する。印刷対象のデータは、例えば、PC10内のアプリケーションによって生成されるデータであってもよいし、外部装置から取得されるデータであってもよい。PC10内のアプリケーションの例として、ワープロソフト、表計算ソフト等を挙げることができる。外部装置の例として、インターネット上のサーバ、LAN4に接続されているデバイス、持ち運び可能な記憶媒体等を挙げることができる。記憶部20は、さらに、プリンタ50のためのプリンタドライバ24を記憶する。プリンタドライバ24は、プリンタ50に様々な指示(例えば印刷指示)を送信するためのソフトウェアである。プリンタドライバ24は、例えば、プリンタドライバ24を格納しているコンピュータ読取可能媒体からPC10にインストールされてもよいし、インターネット上のサーバからPC10にインストールされてもよい。制御部30は、記憶部20に格納されているプログラム(例えばプリンタドライバ24)に従って、様々な処理を実行する。
(プリンタ50の構成)
プリンタ50は、ネットワークインターフェイス52と、表示部54と、記憶部56と、制御部70と、印刷ヘッド80と、を備える。ネットワークインターフェイス52は、LAN4に接続されている。表示部54は、様々な情報を表示するためのディスプレイである。記憶部56は、ワーク領域58を備える。ワーク領域58は、制御部70が処理を実行する過程で生成される様々なデータを記憶する。記憶部56は、さらに、特性データテーブル60と、振幅変更データ62と、プログラム64と、を記憶する。特性データテーブル60には、印刷ヘッド80に形成された複数個のノズルのそれぞれについて、当該ノズルから吐出されるインク滴の吐出量に関係する特性データが登録されている。振幅変更データ62は、印刷ヘッド80に供給される駆動信号の振幅(電圧)を変更するためのデータである。プログラム64は、制御部70によって実行される様々なプログラムを含む。
制御部70は、記憶部56に記憶されているプログラム64に従って、様々な処理を実行する。制御部70がプログラム64に従って処理を実行することによって、取得部72及び印刷制御部74の機能が実現される。取得部72は、PC10から後述の二値データを取得する。印刷制御部74は、印刷ヘッド80の駆動機構、印刷媒体の搬送機構等(これらは図示省略)を制御することによって、印刷ヘッド80に印刷を実行させる。印刷制御部74は、さらに、印刷ヘッド80に供給される駆動信号の駆動波形を決定する決定部76を備える。
印刷ヘッド80の駆動機構は、キャリッジと、キャリッジを移動させるモータと、を備える。印刷ヘッド80は、キャリッジに着脱可能に搭載される。キャリッジは、プリンタ50の筐体内を所定方向に往復移動する。キャリッジが移動すると、印刷ヘッド80も移動する。キャリッジの往復移動方向、即ち、印刷ヘッド80の往復移動方向のことを「主走査方向」と呼ぶ。1回の主走査の往路の間に、印刷ヘッド80に形成された複数個のノズルからインク滴が吐出され、1回の主走査の復路の間に、複数個のノズルからインク滴が吐出されない。本実施例では、印刷ヘッド80が1回の往復移動を行うことを「1回の主走査」と呼ぶ。なお、別の実施例では、印刷ヘッド80の1回の往復移動の往路と復路の両方の間に、複数個のノズルからインク滴が吐出されてもよい。この場合、印刷ヘッド80の1回の往復移動のうち、往路と復路のそれぞれを「1回の主走査」ということができる。印刷媒体の搬送機構は、主走査方向に垂直の方向に印刷媒体を搬送する。印刷媒体の搬送方向のことを「副走査方向」と呼ぶ。
図2に示されるように、印刷ヘッド80は、3種類の有彩色(シアン、マゼンタ、イエロ)のインク滴を吐出するための3組のノズル群84c,84m,84yと、ブラックのインク滴を吐出するための1組のノズル群84kと、が形成されたノズル面82を備える。K用ノズル群84kは、n個(nは2以上の整数)のK用ノズルによって構成される。K用ノズル群84kは、副走査方向に伸びる6本のノズル列Lk1〜Lk6を形成する。K用ノズル群84kのn個のK用ノズルは、6本のノズル列Lk1等のいずれかに属する。例えば、K用ノズルNk1,Nk7等はノズル列Lk1に属し、K用ノズルNk4等はノズル列Lk2に属し、K用ノズルNk2等はノズル列Lk3に属する。1本のノズル列に属する隣接する2個のK用ノズル(例えばノズル列Lk1に属するK用ノズルNk1とK用ノズルNk7)の間には、副走査方向において、他の5本のノズル列に属する5個のK用ノズル(例えばNK2〜NK6)が位置する。なお、本明細書では、K用ノズル群84kのうち、副走査方向の最も下流側(図2の上側)に存在するK用ノズルの参照番号として「Nk1」を採用しており、副走査方向の上流側(図2の下側)に向かうにつれて、K用ノズルの参照番号が大きくなる(例えばNk2、Nk3・・・)。
他の色に対応するノズル群84c等は、K用ノズル群84kと同様の構成を備える。従って、ノズル面82には、合計で4n個のノズルが形成されている。なお、以下では、CMYKの4色のインク滴を吐出する全てのノズルのことを「4n個のノズル」と呼ぶ。他の色のノズル群84c等についても、K用ノズル群84kの場合と同様に参考番号が設定されている。なお、4個のノズル群84k等が同様の構成を備えるために、CMYKの4色に対応する4個のノズルは、副走査方向において同じ位置に配置されている。例えば、副走査方向において、4個のノズルNk1,Nc1,Nm1,Ny1が同じ位置に配置されていると共に、4個のノズルNk2,Nc2,Nm2,Ny2が同じ位置に配置されている。
図3を参照して、印刷ヘッド80の内部構成について説明する。印刷ヘッド80は、インク流路ユニット112と、CMYKの4色に対応する4個のアクチュエータユニット110と、を備える。インク流路ユニット112には、4n個の圧力室114が形成されている。4n個のノズルのそれぞれは、異なる1個の圧力室114に連通している。例えば、n個のK用ノズルが連通しているn個のK用圧力室114には、ブラックのインクが満たされる。同様に、他の色のための圧力室には、対応する色のインクが満たされる。また、例えば、K用アクチュエータユニット110は、n個のK用圧力室114に対向する位置に配置されている。K用アクチュエータユニット110は、積層体110aと、n個のK用個別電極110bと、備える。積層体110aは、複数の圧電層と、共通電極シートと、が積層されたものである。n個のK用個別電極110bのそれぞれは、異なる1個のK用圧力室114に対向する位置に配置されている。他の色に対応するアクチュエータユニットも、K用アクチュエータユニットと同様の構成を備える。
例えば、K用アクチュエータユニット110を構成するK用個別電極110bに後述の駆動信号が供給されると、当該K用個別電極110bに対応する積層体110aの部分(図3の2本の破線の内側の部分)が変形し、この結果、当該部分に対向するK用圧力室114内の圧力が変化する。これにより、K用圧力室114に連通するK用ノズルNkからインク滴が吐出される。K用個別電極110bに供給される駆動信号の振幅(電圧)が大きい程、上記の部分が大きく変形する。この場合、K用圧力室114内の圧力変化の程度が大きくなり、K用ノズルNkから吐出されるインク滴の吐出量が多くなる。
図4に示されるように、特性データテーブル60には、印刷ヘッド80に形成された4n個のノズルのそれぞれについて、当該ノズルのノズル番号と、当該ノズルの特性データと、が対応づけて登録されている。図4のノズル番号Nk1〜Nknは、K用ノズル群84k(図2参照)の各ノズルのノズル番号を示す。同様に、ノズル番号Nc1〜Ncn、ノズル番号Nm1〜Nmn、ノズル番号Ny1〜Nynは、それぞれ、ノズル群84c,84m,84y(図2参照)の各ノズルのノズル番号を示す。なお、本実施例では、各ノズルのノズル番号として、図2に示される各ノズルの参照番号(例えばNk1等)を採用している。特性データテーブル60に登録されている各特性データは、プリンタ50のベンダによって予め調査されている。具体的には、次の手法によって調査される。
プリンタ50のベンダは、後述の1個の基準駆動波形120(図3参照)を有する駆動信号を、K用ノズル群84kからインク滴を吐出させるためのK用アクチュエータユニット110に供給する。これにより、n個のK用ノズルのそれぞれから、所定の媒体上にブラックの1個のインク滴が吐出される。この結果、上記の所定の媒体上に、n個のK用ノズルに対応するn個のブラックのドットが形成される。ベンダは、n個のブラックのドットのそれぞれについて、当該ドットの濃度(例えば単位面積当りのブラックの濃さ)を測定する。ベンダは、K用ノズル群84kのうち、最も濃度が低い特定のドットの濃度を256階調の最大値である「255」に決定する。次いで、ベンダは、他のK用ノズルが形成するドットの濃度を、最も濃度が低い特定のドットの濃度を基準にして特定する。このため、他のK用ノズルが形成するドットの濃度は、255以上の値で特定される。続いて、ベンダは、各K用ノズルが形成したドットの濃度と、最も濃度が低い特定のドットの濃度(即ち255)と、の差分に基づいて、当該K用ノズルの特性データを決定する。このため、本実施例では、最も濃度が低い特定のドットを形成するK用ノズルの特性データは、ゼロに決定される。そして、他のK用ノズルが形成するドットの濃度は、ゼロ以上の値に決定される。例えば、図4に示されるノズル番号Nk1に対応する特性データは「6」である。これは、K用ノズルNk1が形成したドットの濃度(261)と、最も濃度が低い特定のドットの濃度(255)と、の差分が、「6」であることを意味する。ベンダは、ブラックの場合と同様に、シアン、マゼンタ、イエローのそれぞれについても、各ノズルの特性データを決定する。例えば、ベンダは、C用ノズル群84cのうち、最も濃度が低い特定のドットを形成するC用ノズルの特性データをゼロに決定する。さらに、ベンダは、他のC用ノズルが形成するドットの濃度と、上記の特定のドットの濃度と、の差分に基づいて、当該他のC用ノズルの特性データを決定する。ベンダは、調査結果に基づいて特性データテーブル60を生成し、特性データテーブル60を記憶部56に格納させる。プリンタ50は、出荷段階において、特性データテーブル60を既に記憶している。
図3に示されるように、印刷ヘッド80の駆動機構は、さらに、基準駆動信号供給回路100と、CMYKの4色に対応する4個の振幅変更回路102k,102c,102m,102yと、を備える。基準駆動波形信号回路100は、例えばパルス形状を有する基準駆動波形120を有する基準駆動信号を生成し、当該基準駆動信号を各振幅変更回路102k等に供給するための回路である。各振幅変更回路102k等は、基準駆動波形120の振幅(即ち電圧)を調整することによって、最終駆動波形を有する最終駆動信号を生成する。最終駆動波形の形状は、振幅変更データ62(図1参照)に従って、決定部74(図1参照)によって決定される。図1に示されるように、振幅変更データ62は、CMYKの4色のそれぞれについて、当該色に対応する第1の振幅変更データ(例えばΔVk1)と、当該色に対応する第2の振幅変更データ(例えばΔVk2)と、を含む。
例えば、K用振幅回路102kは、第1のK用振幅変更データΔVk1に従って、基準駆動波形120から第1のK用駆動波形122を生成する。次いで、K用振幅回路102kは、第2のK用振幅変更データΔVk2に従って、第1のK用駆動波形122から第2のK用駆動波形124を生成する。第1のK用振幅変更データΔVk1は、基準駆動波形の振幅Vbaseを、第1のK用駆動波形122の振幅Vkmに変更するための変更量に相当するデータである。第2のK用振幅変更データΔVk2は、第1のK用駆動波形122の振幅Vkmを、第2のK用駆動波形124の振幅Vktargetに変更するための変更量に相当するデータである。なお、他の色に対応する第1の振幅変更データ(例えばΔVc1)、第2の振幅変更データ(例えばΔVc2)についても同様である。
K用振幅回路102kは、K用アクチュエータユニット110を構成するn個のK用個別電極110bに接続されている。K用振幅回路102kは、自身が生成した最終駆動波形を有する駆動信号をn個のK用個別電極110bに供給する。例えば、後述の第1の印刷モードが実行されるべき場合には、K用振幅回路102kは、第2のK用駆動波形124を有する駆動信号をn個のK用個別電極110bに供給する。即ち、第1の印刷モードが実行されるべき場合には、第2のK用駆動波形124が最終駆動波形である。また、例えば、後述の第2の印刷モードが実行されるべき場合には、K用振幅回路102kは、第1のK用駆動波形122を有する駆動信号をn個のK用個別電極110bに供給する。即ち、即ち、第2の印刷モードが実行されるべき場合には、第1のK用駆動波形122が最終駆動波形である。
他の色に対応する振幅変更回路(例えばC用幅変更回路102c)は、K用振幅回路102kと同様に動作する。上述したように、各振幅変更回路102k等は、自身に対応する振幅変更データに従って、最終駆動波形を生成する。従って、4個の振幅変更回路102k等によって生成される4個の最終駆動波形は異なり得る。
振幅変更データ62は、プリンタ50のベンダによって予め決定されたデータである。図14を参照しながら、各色に対応する振幅変更データ62(例えば第1及び第2の振幅変更データΔVk1,ΔVk2)がどのようにして決定されるのかについて、詳しく説明する。図14は、各K用ノズルから吐出されるインク滴で実現される濃度を示す。換言すれば、図14は、各K用ノズルの吐出量を示す。ベンダは、まず、n個のK用ノズルに対応するn個の濃度の平均値Daveを算出する。次いで、ベンダは、予め決められているKに対応する目標の吐出量に対応する目標濃度(以下では「目標値Dtarget」と呼ぶ)から、平均値Daveを減算することによって、差分D1を算出する。ベンダは、K用ノズルに対応する濃度を単位量(例えば「+1」)だけ変化させるために、駆動信号の振幅をどれだけ変化させる必要があるのか、を示すデータを予め調査している。以下では、上記のデータのことを「K用単位変化量」と呼ぶ。ベンダは、差分D1にK用単位変化量を乗算することによって、第1のK用振幅変更データΔVk1を算出する。次いで、ベンダは、n個のK用ノズルに対応するn個の濃度の中から、最小の吐出量に対応する最小濃度(以下では「最小値Dmin」と呼ぶ)を特定する。ベンダは、平均値Daveから最小値Dminを減算することによって、差分D2(即ちDave)を算出する。ベンダは、差分D2にK用単位変化量を乗算することによって、第2のK用振幅変更データΔVk2を算出する。
ベンダは、C用単位変化量、M用単位変化量、及び、Y用単位変化量も予め調査している。また、CMYのそれぞれについて、当該色に対応する目標の吐出量に対応する目標値が予め決められている。ベンダは、同様の手法を用いて、CMYのそれぞれについて、第1及び第2の振幅変更データΔVc1,ΔVc2,ΔVm1,ΔVm2,ΔVy1,ΔVy2を算出する。
(印刷モードについて)
続いて、プリンタ50の印刷制御部74が動作可能な印刷モードについて説明する。PC10は、後述する二値データ生成処理(図8参照)を実行することによって、二値データを生成する。PC10は、ユーザによって第1の印刷解像度(例えば300dpi)が指定された場合に、第1の印刷解像度に対応する二値データを生成する。一方において、PC10は、ユーザによって第1の印刷解像度よりも高い第2の印刷解像度(例えば600dpi)が指定された場合に、第2の印刷解像度に対応する二値データを生成する。PC10は、二値データをプリンタ50に送信する。プリンタ50の印刷制御部74は、PC10から第1の印刷解像度に対応する二値データが供給される場合に、第1の印刷モードで動作する。一方において、印刷制御部74は、PC10から第2の印刷解像度に対応する二値データが供給される場合に、第2の印刷モードで動作する。
(第1の印刷モード)
図5に示されるPk1,Pk2等は、副走査方向に沿って伸びる投影線PLが設定された場合に、K用ノズル群84kを構成するK用ノズルNk1,Nk2等を主走査方向に投影することによって得られる投影点を示す。印刷制御部74は、印刷ヘッド80の1回の主走査の間に、二値データに基づいて、各K用ノズルNk1等からインク滴を吐出させる。この結果、例えば、K用ノズルNk1から吐出される複数個のブラックのインク滴によって、主走査方向に沿って並ぶ複数個のブラックのドットが印刷媒体上に形成される。同様に、K用ノズルNk2から吐出される複数個のブラックのインク滴によって、主走査方向に沿って並ぶ複数個のブラックのドットが印刷媒体上に形成される。白黒印刷の場合には、印刷ヘッド80の1回の主走査において、1個のK用ノズルによって形成される複数個のブラックのドットの並びのことを「1本のラスタ(raster)」と呼ぶ。従って、各ラスタは、主走査方向に沿って伸びる。白黒印刷の場合には、印刷ヘッド80の1回の主走査において、例えば、7個のK用ノズルNk1〜Nk7は、7本のラスタR1〜R7を形成する。
上述したように、例えば、ノズルNk1とノズルNc1とノズルNm1とノズルNy1とは、副走査方向において同じ位置に配置されている(図2参照)。従って、カラー印刷の場合には、印刷ヘッド80の1回の主走査において、4個のノズルNk1,Nc1,Nm1,Ny1は、副走査方向において同じ位置にドットを形成する。従って、カラー印刷の場合には、印刷ヘッド80の1回の主走査において、4個のノズルNk1,Nc1,Nm1,Ny1によって形成される複数個のCMYKのドットの並びのことを「1本のラスタ」と呼ぶ。
第1の印刷モードでは、印刷ヘッド80の1回目の主走査において、副走査方向に沿って並ぶn本のラスタが形成される。印刷制御部74は、印刷ヘッド80の1回目の主走査が終了すると、印刷媒体の搬送を実行する。第1の印刷モードでは、ここでの搬送距離として第1の距離を採用している。第1の距離は、nノズルピッチ分の距離である。1ノズルピッチは、副走査方向において隣接する2個のノズル(例えばNk1とNk2)の間の距離である。即ち、1ノズルピッチは、隣接する2個の投影点(例えばPk1とPk2)の間の距離である。次いで、印刷制御部74は、印刷ヘッド80の2回目の主走査を実行する。これにより、n本のラスタが新たに形成される。印刷制御部74は、印刷媒体の第1の距離の搬送と、印刷ヘッド80の主走査と、の組合せを繰り返し実行する。これにより、二値データによって表わされる画像が、印刷媒体に印刷される。
上述した説明から明らかなように、第1の印刷モードでは、隣接する2本のラスタの間の距離が、ほぼ1ノズルピッチである。上記の第1の印刷解像度は、副走査方向の印刷解像度を意味する。即ち、上記の第1の印刷解像度は、「隣接する2本のラスタの間の距離が、ほぼ1ノズルピッチである印刷解像度」と言い換えることができる。
(第2の印刷モード)
白黒印刷の場合を例にして、第2の印刷モードについて説明する。図6に示されるように、第2の印刷モードでは、印刷制御部74は、まず、印刷媒体150の部分152に対して印刷が実行されるように、印刷ヘッド80の1回目の主走査を実行する。部分152は、印刷媒体150のうち、副走査方向の最も下流側に位置する部分である。例えば、nが奇数である場合には、1回目の主走査では、n個のK用ノズルNk1等のうち、副走査方向の上流側(図6の下側)に存在する(n+1)/2個のK用ノズルNkm〜Nknが、部分152上に(n+1)/2本のラスタを形成する。なお、上記の「m」は、(n+1)/2である。図7には、1回目の主走査によって、(n+1)/2個のK用ノズルNkm〜Nknのうちの8個のK用ノズルNkm〜Nkm+7(図7では投影点Pkm〜Pkm+7を示す)が、8本のラスタRm〜Rm+7を形成する様子が示されている。
次いで、印刷制御部74は、印刷媒体150の搬送を実行する。第2の印刷モードでは、ここでの搬送距離として第2の距離を採用している。例えば、nが奇数である場合には、第2の距離は、n/2ノズルピッチ分の距離である。この搬送が実行されると、図7に示されるように、副走査方向の下流側(図6の上側)に存在する(n−1)/2個のK用ノズルNk1〜Nkm−1のそれぞれが、1回目の主走査によって形成された隣接する2本のラスタ(例えばRkmとRkm+1)の間に位置する。この状態で、印刷制御部74は、印刷ヘッド80の2回目の主走査を実行する。これにより、(n−1)/2個のK用ノズルNk1〜Nkm−1のそれぞれが、1回目の主走査によって印刷媒体150の部分152に形成された隣接する2本のラスタの間に、1本のラスタを形成する。図7には、2回目の主走査において、(n−1)/2個のK用ノズルNk1〜Nkm−1のうちの7個のK用ノズルNk1〜Nk7(図7では投影点Pk1〜Pk7を示す)が、7本のラスタR1〜R7を形成する様子が示されている。2回目の主走査では、さらに、副走査方向の上流側(図6の下側)に存在する(n+1)/2個のK用ノズルNkm〜Nknが、印刷媒体150の部分154(図6の中央の図参照)上に(n+1)/2本のラスタを形成する。部分154は、部分152に隣接する部分であり、副走査方向において、部分152の上流側に位置する部分である。
印刷制御部74は、印刷媒体150の第2の距離の搬送と、印刷ヘッド80の主走査と、の組合せを繰り返し実行する。これにより、例えば、3回目の主走査では、(n−1)/2個のK用ノズルNk1〜Nkm−1のそれぞれが、2回目の主走査によって印刷媒体150の部分154に形成された隣接する2本のラスタの間に、1本のラスタを形成する。3回目の主走査では、さらに、(n+1)/2個のK用ノズルNkm〜Nknが、印刷媒体150の部分156(図6の最も右の図参照)上に(n+1)/2本のラスタを形成する。部分156は、部分154に隣接する部分であり、副走査方向において、部分154の上流側に位置する部分である。印刷制御部74は、印刷媒体の第2の距離の搬送と、印刷ヘッド80の主走査と、の組合せを繰り返し実行する。これにより、二値データによって表わされる画像が、印刷媒体に印刷される。なお、カラー印刷の場合の第2の印刷モードは、他の色のノズル群84c等が利用される点を除けば、白黒印刷の場合と同様である。
上述した説明から明らかなように、第2の印刷モードでは、隣接する2本のラスタの間の距離が、ほぼ1/2ノズルピッチである。上記の第2の印刷解像度は、副走査方向において、上記の第1の印刷解像度の2倍の印刷解像度である。上記の第2の印刷解像度は、「隣接する2本のラスタの間の距離が、ほぼ1/2ノズルピッチである印刷解像度」と言い換えることができる。なお、以下では、第2の印刷モードに対応する印刷のことを「インターレース印刷」と呼ぶことがある。
(PC10の二値データ生成処理)
次いで、PC10の制御部30が実行する処理について説明する。ユーザは、所望のデータを選択し、当該データによって表わされる画像を印刷するための操作を操作部12に加えることができる。上記の操作は、ユーザが第1の印刷解像度と第2の印刷解像度との中から、1つの印刷解像度を選択する操作を含む。なお、本実施例では、RGBのビットマップ形式の画像データ(以下では「RGB画像データ」と呼ぶ)がユーザによって選択されたものとして、処理の内容を説明する。他の形式のデータ(例えば、テキストデータ、RGB以外のビットマップ形式の画像データ、テキストとビットマップとの複合データ等)が選択された場合には、制御部30は、ユーザによって選択されたデータを、公知の手法を用いて、RGB画像データに変換する。制御部30は、上記の操作が実行されると、プリンタドライバ24に従って、図8の二値データ生成処理を実行する。
制御部30は、RGB画像データを取得し、当該RGB画像データをワーク領域22に格納する(S10)。次いで、制御部30は、プリンタ50に格納されている特性データテーブル60を取得するための所定のコマンドをプリンタ50に送信する。プリンタ50は、上記の所定のコマンドに応じて、記憶部56に格納されている特性データテーブル60をPC10に送信する。この結果、制御部30は、特性データテーブル60を取得する(S12)。制御部30は、特性データテーブル60を、ワーク領域22に格納する。
次いで、制御部30は、公知の手法を用いて、RGB画像データに対して解像度変換処理を実行することによって、変換済みRGB画像データを生成する(S14)。S14では、制御部30は、RGB画像データを、ユーザによって選択された印刷解像度に応じた解像度に変換する。即ち、ユーザによって第1の印刷解像度が選択された場合には、第1の印刷解像度に対応する変換済みRGB画像データが生成され、ユーザによって第2の印刷解像度が選択された場合には、第2の印刷解像度に対応する変換済みRGB画像データが生成される。解像度変換処理によって、図9に示される変換済みRGB画像データ200が得られる。変換済みRGB画像データ200内の各画素201,202,206,207等は、R値(例えばR(i,j))と、G値(例えばG(i,j))と、B値(例えばB(i,j))と、によって構成される。R値、G値、B値は、それぞれ、256階調(0〜255)の多値データである。なお、図9に示される各画素内のx座標は、各画素の列番号を示し、y座標は、各画素の行番号を示す。
次いで、制御部30は、公知の手法を用いて、色変換処理を実行する(S16)。S16では、制御部30は、変換済みRGB画像データ200を、CMYKのビットマップ形式の画像データ(以下では「CMYK画像データ」と呼ぶ)に変換する。色変換処理によって、図10に示されるCMYK画像データ210が得られる。変換済みRGB画像データ200内の1個の画素(例えば画素201)から、CMYK形式で記述された1個の画素(例えば画素211)が得られる。従って、CMYK画像データ210の画素数は、変換済みRGB画像データ200の画素数に等しい。CMYK画像データ210内の各画素211,212,216,217等は、C値(例えばC(i,j))と、M値(例えばM(i,j))と、Y値(例えばY(i,j))と、K値(例えばK(i,j))と、によって構成される。C値、M値、Y値、K値は、それぞれ、256階調(0〜255)の多値データである。なお、図10に示される各画素内のx座標は、各画素の列番号を示し、y座標は、各画素の行番号を示す。
続いて、制御部30は、CMYK画像データ210を用いて、ハーフトーン処理を実行する。ハーフトーン処理は、S18〜S36の処理を含む。制御部30は、まず、CMYK画像データ210内の1個の画素を特定する(S18)。S18における画素の特定順序は、予め決められている。具体的に言うと、1回目のS18の処理では、制御部30は、CMYK画像データ210のうち、図10の最も上の行に属する複数個の画素のうち、最も左の列に属する1個の画素を特定する。2回目以降のS18の処理では、制御部30は、前回に特定された画素(以下では「前回特定画素」と呼ぶ)と同じ行に属する1個の画素であって、前回特定画素の右隣の列に属する1個の画素を特定する。なお、前回特定画素が最も右の列に属する場合には、制御部30は、前回特定画素が属する行の1つ下の行に属する複数個の画素のうち、最も左の列に属する1個の画素を特定する。
以下では、S18で特定される1個の画素のことを「注目画素」と呼ぶ。制御部30は、注目画素を構成するCMYKの4個の値の中から、1個の値(例えばK値)を特定する(S20)。以下では、S20で特定される1個の値のことを「PV(Pixel Value)」と呼ぶ。続いて、制御部30は、S20で特定されたPVを補正する(S22)。具体的に言うと、制御部30は、注目画素より前にS18〜S32の処理が終了している処理済み画素群のうち、注目画素の近傍に位置する複数個の近傍画素について算出された複数個の誤差値を用いて、注目画素のPVを補正する。例えば、注目画素が図11の画素216である場合には、画素211〜215についてのS18〜S32の処理が終了している。従って、画素211〜215のそれぞれについては、後述のS32で、CMYKに対応する4個の誤差値が算出済みである。例えば、画素211については、Cに対応する誤差値と、Mに対応する誤差値と、Yに対応する誤差値と、Kに対応する誤差値と、が算出済みである。なお、図11では、図示の便宜上、CMYKの4色に対応する4個の誤差値を区別することなく「ΔE」で表現している。以下では、例えば、Kに対応する誤差値を「ΔEk」と表現することがある。本実施例では、注目画素216の左上、上、右上、及び、左に位置する4個の画素211,212,213,215を、注目画素216の近傍画素として採用する。なお、別の実施例では、注目画素216の近傍画素として、さらに、画素211の左の画素、画素212の上の画素、画素214、画素215の左の画素等を採用してもよい。
制御部30は、注目画素216の4個の近傍画素211,212,213,215のうちの1個の近傍画素211について算出済みの4個の誤差値ΔE(i−1,j−1)の中から、現在の補正対象のPVの色(例えばK)に対応する1個の誤差値(例えばKに対応する誤差値ΔEk(i−1,j−1)を特定する。同様に、制御部30は、他の3個の近傍画素212,213,215のそれぞれについて、当該近傍画素について算出済みの4個の誤差値の中から、現在の補正対象のPVの色に対応する1個の誤差値を特定する。この結果、現在の補正対象のPVの色に対応する4個の誤差値が特定される。次いで、制御部30は、特定された4個の誤差値を用いて、図11の画素216内に示される数式に従って、注目画素216のPVを補正することによって、補正済みの値PV’を算出する。なお、数式内のs1,s2,s3,s4は、注目画素216と各近傍画素との間の位置関係に応じて、予め決められている係数である。例えば、注目画素216のPV(i,j)がK値(K(i,j))である場合には、制御部30は、4個の近傍画素211,212,213,215のそれぞれについて、当該近傍画素の誤差値ΔEk(例えば近傍画素211のΔEk(i−1,j−1))と、当該近傍画素に対応する係数(例えば近傍画素211に対応するs1)と、を乗算することによって、乗算値を算出する。次いで、制御部30は、注目画素216のK値(i,j)(即ちPV(i,j))と、4個の近傍画素211,212,213,215について算出された4個の乗算値と、の和を算出することによって、補正済みの値K’(i,j)(即ちPV’(i,j))を算出する。
続いて、制御部30は、S22で得られた補正済みの値PV’(例えばK’(i,j))が、予め決められている閾値Th(例えば128)よりも大きいのか否かを判断する(S24)。ここでYESの場合、制御部30は、判断対象の補正済みの値PV’に対応する色のドットを印刷媒体に形成することを決定する。次いで、制御部30は、注目画素と同じ位置の新たな画素の値をワーク領域22に格納する(S26)。ここで格納される値は、補正済みの値PV’に対応する色のドット出力値「1」である。例えば、注目画素216の補正済みの値PV’がK’(i,j)である場合には、S26では、制御部30は、注目画素216と同じ位置の新たな画素の値として「K=1」をワーク領域22に格納する。このような情報を含む二値データがプリンタ50に供給されると、注目画素216に対応する印刷媒体上の位置に向けて、ブラックのインク滴が吐出される。即ち、注目画素216に対応する印刷媒体上の位置にブラックのドットが形成される。
一方において、S24でNOの場合、制御部30は、判断対象の補正済みの値PV’に対応する色のドットを印刷媒体に形成しないことを決定する。次いで、制御部30は、注目画素と同じ位置の新たな画素の値をワーク領域22に格納する(S28)。ここで格納される値は、補正済みの値PV’に対応する色のドット出力値「0」である。例えば、注目画素216の補正済みの値PV’がK’(i,j)である場合には、S28では、制御部30は、注目画素216と同じ位置の新たな画素の値として「K=0」をワーク領域22に格納する。このような情報を含む二値データがプリンタ50に供給されると、注目画素216に対応する印刷媒体上の位置に向けて、ブラックのインク滴が吐出されない。即ち、注目画素216に対応する印刷媒体上の位置にブラックのドットが形成されない。
なお、例えば、S20においてPVとしてC値が特定された場合には、S26では、注目画素と同じ位置の新たな画素の値として「C=1」が格納され、S28では、注目画素と同じ位置の新たな画素の値として「C=0」が格納される。前者の場合には、注目画素に対応する印刷媒体上の位置にシアンのドットが形成され、後者の場合には、注目画素に対応する印刷媒体上の位置にシアンのドットが形成されない。S20においてM値又はY値が特定された場合も、S20でK値又はC値が特定された場合と同様に処理が実行される。
次いで、制御部30は、誤差値を算出する(S30)。S30の処理は、S24の判断結果に応じて変わる。まず、S24でYESと判断された場合(ドット出力値=1の場合)のS30の処理について説明する。S24でYESと判断された場合(ドット出力値=1の場合)のS30の処理は、さらに、第1の印刷解像度と第2の印刷解像度のどちらが選択されたのかに応じて変わる。まず、第1の印刷解像度が選択された場合の処理について説明する。制御部30は、注目画素(例えば画素216)に対応する印刷媒体上の位置にドットを形成するノズルのノズル番号(以下では「注目ノズル番号」と呼ぶ)を特定する。なお、例えば、PV’に対応する色がKである場合には、注目ノズルとしてK用ノズルが特定される。以下では、注目ノズルとしてK用ノズルが特定されるべき場合には、「注目K用ノズル」と呼ぶ。注目K用ノズル番号を特定するための手法について、次に詳しく説明する。
上述したように、第1の印刷解像度に対応する第1の印刷モードは、図5に示されるように実行される。即ち、1回目の主走査では、K用ノズルNk1〜Nknが、第1の印刷解像度のCMYK画像データ210の1〜n行目に対応するラスタを形成する。さらに、第1の印刷モードの搬送距離(上記の第1の距離)は、nノズルピッチ分の距離である。これらの内容に基づけば、第1の印刷解像度のCMYK画像データ210のL行目に対応するラスタを形成する注目K用ノズルを特定することができる。プリンタドライバ24(図1参照)には、第1の印刷解像度のCMYK画像データ210の各画素の行番号から注目K用ノズル番号を特定するためのK用ノズル番号テーブルが、予め登録されている。制御部30は、第1の印刷解像度がユーザによって選択された場合には、CMYK画像データ210内での注目画素の行番号と、K用ノズル番号テーブルと、に基づいて、注目K用ノズル番号を特定する。
プリンタドライバ24には、3種類の有彩色CMYのそれぞれについて、K用ノズル番号テーブルと同様のノズル番号テーブルが予め登録されている。S20で特定されるPVに対応する色が3種類の有彩色CMYのいずれかである場合には、制御部30は、上記のKの場合と同様に、注目ノズル番号を特定する。例えば、S20で特定されるPVに対応する色がCである場合には、制御部30は、C用ノズル番号テーブルを用いて、注目C用ノズル番号を特定する。
上述したように、制御部30は、S12において、特性データテーブル60を取得済みである。制御部30は、特性データテーブル60から、注目ノズル番号に対応づけられている特性データ(以下では「注目特性データ」と呼ぶ)を特定する。次いで、制御部30は、注目特性データに「255」を加算することによって補正用データ(以下では「注目補正用データ」と呼ぶ)を算出する。制御部30は、S22で得られた補正済みの値PV’から注目補正用データを減算することによって、誤差値を算出する。このようにして誤差値を算出するための式が、図12の画素216内に示されている。即ち、注目画素が図12の画素216であり、S22で得られるPV’(i,j)が閾値Thより大きい場合(S24でYESの場合)には、制御部30は、PV’(i,j)から注目補正用データを減算することによって、画素216に対応する誤差値ΔE(i,j)を算出する。例えば、S20で特定されるPVに対応する色がKである場合には、画素216のKに対応する誤差値が算出される。同様に、S20で特定されるPVに対応する色が他の色である場合には、画素216のうちの上記の他の色に対応する誤差値が算出される。
続いて、S24でYESと判断され(ドット出力値=1)、かつ、第2の印刷解像度が選択された場合の処理について説明する。制御部30は、注目特性データを用いずに、S22で得られた補正済みの値PV’から固定値255を減算することによって、誤差値を算出する。即ち、制御部30は、注目補正用データを用いずに、補正済みの画素値PV’を用いて、誤差値を算出する。
続いて、S24でNOと判断された場合(ドット出力値=0の場合)のS30の処理について説明する。S24でNOの場合には、第1の印刷解像度と第2の印刷解像度のどちらが選択された場合であっても、同様の処理が実行される。制御部30は、S22で得られた補正済みの値PV’を誤差値として特定する。このようにして誤差値を算出するための式が、図12の画素217内に示されている。即ち、注目画素が図12の画素217であり、S22において得られるPV’(i+1,j)が閾値Thより小さい場合(S24でNOの場合)には、制御部30は、図12の画素217内の式を用いて、画素217に対応する誤差値ΔE(i+1,j)を特定する。即ち、制御部30は、注目補正用データを用いずに、補正済みの画素値PV’を用いて、誤差値を算出する。
S30を終えると、制御部30は、注目画素に対応する誤差値として、S30で特定された誤差値(例えばΔE(i,j))をワーク領域22に記憶する(S32)。ここで記憶された誤差値は、後に実行されるS22の処理で利用される。例えば、S32で画素216のKに対応する誤差値ΔE(i,j)が記憶された場合には、当該誤差値ΔE(i,j)は、S22で画素217のK値に対応するK’(i,j)を算出する際に利用される。
上述したように、ドット出力値=1であり、かつ、第1の印刷解像度が選択された場合に実行されるS30では、ΔE=PV’−注目補正用データ(255+注目特性データ)という数式によって、誤差値ΔEを算出する。注目補正用データとして「255+注目特性データ」を利用するということは、注目ノズルが形成するドットの濃度を「255+注目特性データ」と仮定していることを意味する。例えば、最小の吐出量のノズルに対応する特性データ(以下では「最小特性データ」と呼ぶ)は「0」であるために、最小の吐出量のノズルが形成するドットの濃度が「255」と仮定されている。このような手法で誤差値を算出することにより、各ノズルの吐出量のバラツキを補償することができる。S30では、実際に表現されるべき注目画素の値PV’と、仮定されたドットの濃度「255+注目特性データ」と、の差分が、誤差値ΔEとして算出される。この差分が、上記のS22の処理で近傍画素に拡散される。一方において、ドット出力値=1であり、かつ、第2の印刷解像度が選択された場合に実行されるS30では、ΔE=PV’−固定値255という数式によって、誤差値ΔEを算出する。これは、全てのノズルが形成するドットの濃度を同じ値「255」と仮定していることを意味する。この場合、各ノズルの吐出量のバラツキを補償することができない。なお、ドット出力値=0の場合に実行されるS30では、ΔE=PV’という数式によって、誤差値ΔEを算出する。即ち、実際に表現されるべき注目画素の値PV’と、ドットが形成されない場合の濃度「0」と、の差分が、誤差値ΔEとして算出される。
続いて、制御部30は、注目画素を構成するCMYKの4個の画素値(C値、M値、Y値、K値)の全てについて、S20〜S32の処理を実行したのか否かを判断する(S34)。ここでNOの場合、制御部30は、S20に戻って、注目画素を構成するCMYKの4個の値の中から、S20〜S32の処理が実行されていない値を特定する。S34でYESの場合には、制御部30は、CMYK画像データ210を構成する全ての画素について、S18〜S34の処理が終了したのか否かを判断する(S36)。ここでNOの場合、制御部30は、S18に戻って、現在の注目画素の次の画素(基本的には右隣りの画素)を、新たな注目画素として特定する。S36でYESの場合には、二値データ生成処理が終了する。
上記の説明から明らかなように、二値データ生成処理では、CMYK画像データ210を構成する1個の画素から、C=0又は1と、M=0又は1と、Y=0又は1と、K=0又は1と、によって構成される新たな1個の画素が生成される。従って、二値データの画素数は、CMYK画像データ210の画素数に等しい。なお、第1の印刷解像度が選択された場合には、S30で注目補正用データを用いて誤差値が算出されるために、各ノズルの吐出量のバラツキが補償された二値データが生成される。また、第2の印刷解像度が選択された場合には、S30で注目補正用データを用いずに誤差値が算出されるために、各ノズルの吐出量のバラツキが補償されていない二値データが生成される。PC10は、二値データと、第1の印刷モード(即ち第1の印刷解像度)と第2の印刷モード(即ち第2の印刷解像度)のいずれが選択されたのかを示すモード情報と、をプリンタ50に送信する。この結果、プリンタ50は、二値データに応じて、以下の処理を実行する。
(プリンタ50の駆動波形決定処理)
次いで、プリンタ50の制御部70が実行する処理について説明する。取得部72(図1参照)は、PC10から送信される二値データとモード情報とを取得する(S50)。印刷制御部74(図1参照)は、モード情報が第1の印刷モードを示す場合(S52でYESの場合)にS54に進み、モード情報が第2の印刷モードを示す場合(S52でNOの場合)にS60に進む。
S54では、印刷制御部74は、CMYKの4色の中から、1色を特定する。以下では、S54で特定される色のことを「特定の色」と呼ぶ。次いで、印刷制御部74の決定部76(図1参照)は、記憶部56から、上記の特定の色に対応する第1及び第2の振幅変更データを特定する。例えば、上記の特定の色がKである場合には、決定部76は、ΔVk1とΔVk2とを特定する。次いで、決定部76は、まず、基準駆動波形120(図3参照)の振幅Vbaseと、特定された第1の振幅変更データ(例えばΔVk1)と、の和を算出することによって、上記の特定の色に対応する第1の駆動波形の振幅(例えば第1のK用駆動波形122の振幅Vkm)を算出する。次いで、決定部76は、算出された振幅と、特定された第2の振幅変更データ(例えばΔVk2)と、の和を算出することによって、上記の特定の色に対応する第2の駆動波形の振幅(例えば第2のK用駆動波形124の振幅Vktarget)を算出する。ここで算出される第2の駆動波形の振幅が、上記の特定の色に対応するアクチュエータユニット(例えばK用アクチュエータユニット110)に供給されるべき駆動信号の最終駆動波形の振幅である。続いて、印刷制御部74は、第2の駆動波形の振幅が得られるように、上記の特定の色に対応する振幅変更回路(例えばK用振幅変更回路102k)を制御する(S56)。例えば、振幅変更回路が可変抵抗を有する場合には、印刷制御部74は、当該可変抵抗の抵抗値が第2の駆動波形の振幅に対応する抵抗値になるように、当該振幅変更回路を制御する。
印刷制御部74は、CMYKの4色の全てについて、S54及びS56の処理を実行したのか否かを判断する(S58)。ここでNOの場合、印刷制御部74は、S54に戻って、他の色を特定する。一方において、S58でYESの場合には、駆動波形決定処理が終了する。
S60では、S54と同様に、印刷制御部74は、1色(即ち特定の色)を特定する。次いで、決定部76は、記憶部56から、上記の特定の色に対応する第1の振幅変更データを特定する。ここでは、上記の特定の色に対応する第2の振幅変更データは特定されない。次いで、決定部76は、基準駆動波形120(図3参照)の振幅Vbaseと、特定された第1の振幅変更データ(例えばΔVk1)と、の和を算出することによって、上記の特定の色に対応する第1の駆動波形の振幅を算出する。ここで算出される第1の駆動波形の振幅が、上記の特定の色に対応するアクチュエータユニット(例えばK用アクチュエータユニット110)に供給されるべき駆動信号の最終駆動波形の振幅である。続いて、印刷制御部74は、第1の駆動波形の振幅が得られるように、上記の特定の色に対応する振幅変更回路(例えばK用振幅変更回路102k)を制御する(S62)。続いて、印刷制御部74は、S58と同様の処理を実行し(S64)、S64でNOの場合にはS60に戻る。S64でYESの場合には、駆動波形決定処理が終了する。
図13の駆動波形決定処理が終了すると、印刷制御部74は、S50で取得された二値データに従って、印刷処理を実行する。なお、印刷制御部74は、S50で取得されたモード情報が第1の印刷モードを示す場合には、第1の印刷モードで動作し(図5参照)、S50で取得されたモード情報が第2の印刷モードを示す場合には、第2の印刷モードで動作する(図6及び7参照)。印刷制御部74は、二値データに含まれるK=1を示す画素に対応する印刷媒体上の位置にブラックのドットが形成されるように、当該ドットを形成するK用ノズルに対応する個別電極に駆動信号を供給する。同様に、印刷制御部74は、二値データに従って、他の色のドットが形成されるように、駆動信号を供給する。上述したように、図13の駆動波形決定処理では、S56又はS62で決定された最終駆動波形(第1の駆動波形又は第2の駆動波形)を有する駆動信号が供給されるように、4個の振幅変更回路102k等のそれぞれが調整されている。従って、第1の印刷モードの場合には、例えば、K用ノズル群84kは、ΔVk1とΔVk2との両方を用いて決定される第2のK用駆動波形124を有する駆動信号に応じて、インク滴を吐出する。また、第2の印刷モードの場合には、例えば、K用ノズル群84kは、ΔVk1のみを用いて決定される第1のK用駆動波形122を有する駆動信号に応じて、インク滴を吐出する。上記の印刷処理が実行されると、図8のS10で取得されるRGB画像データによって表わされる画像(即ち、S14で得られる変換済みRGB画像データ200によって表わされる画像、S16で得られるCMYK画像データ210によって表わされる画像、二値データによって表わされる画像)が、印刷媒体に形成される。
本実施例について詳しく説明した。仮に、各ノズルの吐出量のバラツキを補償するための補償処理(ドット出力値=1であり、かつ、第1の印刷解像度が選択された場合に実行される図8のS30の処理)を実行せずに生成される二値データを用いて印刷する際に、基準駆動波形120を有する駆動信号が供給されると、n個のK用ノズルに対応するn個の濃度の平均値Dave(図14参照)に対応するKの濃度の画像が印刷される。この場合、DaveとDtargetとの差分に対応するΔVk1のみを用いて、基準駆動波形120から第1のK用駆動波形122を決定すれば、印刷済み画像の濃度を目標値Dtargetにすることができる。
しかしながら、比較的に低い第1の印刷解像度で印刷される場合には、比較的に高い第2の印刷解像度で印刷される場合と比べて、各ノズルの吐出量のバラツキに起因する印刷済み画像の濃度ムラが目立ってしまう。このために、本実施例では、第1の印刷解像度で印刷される場合に、各ノズルの吐出量のバラツキを補償するための補償処理を実行する。ただし、補償処理が実行される場合に、ΔVk1のみを用いて第1のK用駆動波形122を決定しても、印刷済み画像の濃度が、目標値Dtargetよりも低くなる。その理由を説明する。補償処理が実行されない場合には、注目画素のKに対応する誤差値を算出するための数式として、「ΔEk=PV’(即ちK’)−固定値255」が採用される。これに対し、補償処理において注目画素のKに対応する誤差値を算出するための数式は、「ΔEk=PV’(即ちK’)−注目補正用データ(=255+注目特性データ)」である。これらの2つの数式から明らかなように、補償処理が実行される場合には、補償処理が実行されない場合と比べると、PV’から減算される値(即ち注目補正用データ)が大きくなる。この場合、誤差値が小さくなり(例えば誤差値がマイナスの場合には誤差値の絶対値が大きくなり)、その誤差値が拡散される近傍画素のK値(即ち近傍画素が表現すべきKの濃度)が小さくなる。この結果、補償処理に起因する濃度低下が起こる。
本実施例の補償処理で採用している数式では、基準駆動波形120を有する駆動信号が供給される場合に、最小の吐出量を有する最小K用ノズルが形成するドットの濃度を「255(CMYK画像データ210内のK値が採り得る最大値)」と仮定している。即ち、最小K用ノズルのインク滴の吐出量を基準として補償処理が実行される。この場合、補償処理が実行されない場合と比較して、平均値Daveと最小値Dminとの差分(即ちD2)に対応する濃度低下が起こる。従って、補償処理が実行される場合に、ΔVk1のみを用いて第1のK用駆動波形122を決定すると、印刷済み画像の濃度が、目標値DtargetよりもD2ほど低くなる。このような濃度低下を抑制するために、プリンタ50は、第1の印刷解像度で印刷される場合に、ΔVk1のみならず、D2に対応するΔVk2も用いて、第2のK用駆動波形124を決定する。これにより、第1の印刷解像度で印刷される場合に、D2に対応する濃度低下が抑制され、この結果、印刷済み画像の濃度が、目標値Dtargetになる。
本実施例では、Kの場合と同様に、他の特定の色(例えばC)についても、上記の特定の色に対応する最小ノズル(例えば最小C用ノズル)のインク滴の吐出量を基準として補償処理が実行される。従って、プリンタ50は、第1の印刷解像度で印刷される場合に、第1及び第2の振幅変更データ(例えばΔVc1,ΔVc2)を用いて、上記の特定の色に対応する第2の駆動波形を決定する。これにより、上記の特定の色の濃度の目標値に対応する濃度の画像が印刷される駆動波形を決定することができる。
一方において、比較的に高い第2の印刷解像度で印刷される場合には、各ノズルの吐出量のバラツキに起因する印刷済み画像の濃度ムラが目立ちにくい。従って、本実施例では、第2の印刷解像度で印刷される場合に、各ノズルの吐出量のバラツキを補償するための補償処理を実行しない。この結果、補償処理に起因する濃度低下が起こらない二値データが生成される。従って、プリンタ50は、平均値Daveと目標値Dtargetとの差分D1に対応するΔVk1のみを用いて、基準駆動波形120から第1のK用駆動波形122を決定する。これにより、第2の印刷解像度で印刷される場合に、印刷済み画像の濃度が、目標値Dtargetになる。本実施例によると、第1の印刷解像度で印刷される場合(第1の印刷モードで印刷される場合)であっても、第2の印刷解像度で印刷される場合(第2の印刷モードで印刷される場合)であっても、印刷済み画像の濃度を目標値Dtargetにすることができる。
なお、第1の印刷解像度が選択された場合に実行される図8の二値データ生成処理は、以下のように表現することができる。即ち、PC10の制御部30は、第1種の色空間(例えばRGB)で表現される特定の画像データ(例えば変換済みRGB画像データ200)内の各画素に対して、色変換処理を実行することによって、第2種の色空間(例えばCMYK)で表現される対象の画像データ(例えばCMYK画像データ210)を生成する。制御部30は、対象の画像データに対して、ハーフトーン処理を実行することによって、第1の処理済み画像データ(例えば二値データ)を生成する。制御部30は、ハーフトーン処理において、以下の処理を実行する。即ち、制御部30は、対象の画像データ内の注目画素の値(例えばPV)を、注目画素の近傍の複数個の近傍画素に対応する複数個の誤差値を用いて補正することによって、補正済みの値(例えばPV’)を生成する。制御部30は、補正済みの値(例えばPV’)と、注目画素に対応する閾値(例えばTh)と、に基づいて、注目画素に対応する印刷媒体上の位置にドットを形成するのか否かを決定する。制御部30は、注目画素についてドットを形成するのか否かに関する決定に応じて、注目画素に対応する誤差値を算出する。制御部30は、注目画素についてドットを形成することが決定される場合に、補正済みの値(例えばPV’)と、第1種の補正用データ(例えば255+注目特性データ)と、を用いて、注目画素に対応する誤差値を算出する第1種の特定の処理を実行する。
本実施例の各要素と本発明の各要素との対応関係を記載しておく。変換済みRGB画像データ200、CMYK画像データ210が、それぞれ、「特定の画像データ」、「対象の画像データ」の一例である。また、第1の印刷解像度が選択された場合に生成される二値データ、第2の印刷解像度が選択された場合に生成される二値データが、それぞれ、「第1の処理済み画像データ」、「第2の処理済み画像データ」の一例である。また、例えば、n個のK用ノズル(K用ノズル群84k)が「M個の第1種のノズル」の一例である。K用ノズルに対応する特性データが「第1種の特性データ」の一例である。また、図8のPVがKである場合に、S30で特定される注目ノズル、S30で特定される注目補正用データが、それぞれ、「第1種の注目ノズル」、「第1種の補正用データ」の一例である。また、色変換処理とハーフトーン処理とが「画像処理」の一例である。さらに、図8のS30において、K=1の場合に実行される誤差値算出処理が、「第1種の特定の処理」の一例である。
図14に示されるKに対応する平均値Dave、最小値Dmin、目標値Dtargetが、それぞれ、「第1種の基準濃度(平均濃度)」、「最小濃度」、「目標濃度」の一例である。ΔVk2、ΔVk1が、それぞれ、「第1種の調整データ」、「平均濃度調整データ」の一例である。また、図13のS56で決定される第2のK用駆動波形124、図13のS62で決定される第1のK用駆動波形122が、それぞれ、「第1種の駆動波形」、「特定の駆動波形」の一例である。
(第2実施例)
第1実施例と異なる点を説明する。本実施例のプリンタ50は、各色に対応する第2の振幅変更データΔVk2,ΔVc2,ΔVm2,ΔVy2の代わりに、各色に対応する第3の振幅変更データΔVk3,ΔVc3,ΔVm3,ΔVy3(図1参照)を記憶する。各色に対応する第3の振幅変更データΔVk3等がどのようにして決定されるのかについて説明する。ベンダは、まず、n個のK用ノズルに対応するn個の濃度の中から、最小の吐出量に対応する最小濃度データDminを特定する。ベンダは、予め決められている目標の吐出量に対応する目標値Dtargetから、最小の吐出量を示す最小濃度Dminを減算することによって、差分D3を算出する。ベンダは、差分D3に上記のK用単位変化量を乗算することによって、第3のK用振幅変更データΔVk3を算出する。図15に示されるように、DminとDtargetとの差分D3に対応するΔVk3を用いれば、Dminに対応するKの濃度の画像が印刷される駆動波形を、Dtarget(即ちKの濃度の目標値)に対応するKの濃度の画像が印刷される駆動波形に変更することができる。Kの場合と同様の手法を用いて、ベンダは、CMYの3色のそれぞれについて、第3の振幅変更データΔVc3,ΔVm3,ΔVy3を算出する。
なお、第3の振幅変更データを算出する手法は、上記の手法に限られない。図3及び図14から明らかなように、例えば、第3のK用振幅変更データΔVk3は、ΔVk1とΔVk2との和である。従って、ベンダは、ΔVk1とΔVk2との和を算出することによって、ΔVk3を算出してもよい。
本実施例では、プリンタ50の印刷制御部74の決定部76は、図13のS56において、S54で特定された色に対応する第3の振幅変更データ(例えばΔVk3)を特定する。次いで、決定部76は、基準駆動波形120(図3参照)の振幅Vbaseと、特定された第3の振幅変更データ(例えばΔVk3)と、の和を算出することによって、上記の特定された色に対応する第2の駆動波形の振幅(例えば第2のK用駆動波形124の振幅Vktarget)を算出する。その他の処理は、第1実施例と同様である。
本実施例によっても、第1実施例と同様の効果が得られる。特に、本実施例では、第1の印刷解像度が選択された場合に、第1の振幅変更データ(例えばΔVk1)と第2の振幅変更データ(例えばΔVk2)の2つの値を用いて最終駆動波形の振幅を決定せずに、第3の振幅変更データ(例えばΔVk3)のみを用いてK用最終駆動波形の振幅を決定することができる。仮に、第2の印刷モードが存在しない場合には、第1の振幅変更データ(例えばΔVk1)を記憶せずに済むので、第3の振幅変更データ(例えばΔVk3)のみを記憶すれば足りる。この場合、記憶部56が記憶すべきデータの容量を低減させることができる。本実施例では、Dtarget、ΔVk3が、それぞれ、「第1種の基準濃度(目標濃度)」、「第1種の調整データ」の一例である。
(第3実施例)
本実施例では、プリンタ50の印刷制御部74が上記の第1及び第2の印刷モードの他に、第3の印刷モードを実行することができる。なお、以下では、第3の印刷モードによって実行される印刷のことを「シングリング(singling)」と呼ぶことがある。なお、シングリングのことを「オーバーラップ方式」と言い換えることもできる。
図16を参照しながら、本実施例の白黒印刷のシングリングについて説明する。なお、カラー印刷の場合には、K用ノズル群84kに加えて、他の色のノズル群84c等も利用して、白黒印刷の場合と同様に、シングリングが実行される。第1実施例の第1の印刷モード及び第2の印刷モードのいずれでも、印刷ヘッド80の1回の主走査によって、1個のK用ノズルが1本のラスタを形成する。これに対し、シングリングでは、印刷ヘッド80の2回の主走査によって、2個のK用ノズルが1本のラスタを形成する。例えば、図16に示されるように、印刷ヘッド80の1回目の主走査において、K用ノズルNkm+3が、ドット群Dkm+3を形成する。次いで、印刷ヘッド80の2回目の主走査において、K用ノズルNk+4が、ドット群Dk4を形成する。ドット群Dkm+3とドット群Dk4とによって、1本のラスタR4が構成される。上記の説明から明らかなように、1回目の主走査において、二値データの特定の行を構成する複数個の画素のうちの半分に相当する第1の画素群に従って、ドット群Dkm+3が形成され、2回目の主走査において、上記の特定の行を構成する残りの第2の画素群に従って、ドット群Dk4が形成される。第1の画素群と第2の画素群とは、二値データの上記の特定の行において、交互に位置する関係を有する。即ち、第1の画素群のそれぞれは、例えば偶数列に属する画素であり、第2の画素群のそれぞれは、例えば奇数列に属する画素である。
例えば、nが奇数である場合に、シングリングでは、副走査方向の最も上流側に配置された1個のK用ノズルNKnを使用しない。1回目の主走査では、上流側に配置された(n−1)/2個のK用ノズルNkm〜Nkn−1のそれぞれが、第1のドット群(図16のドットDkm+3参照)を形成する。次いで、印刷制御部74は、印刷媒体150の搬送を実行する。シングリングでは、ここでの搬送距離として第3の距離を採用している。第3の距離は、(n−1)/2ノズルピッチ分の距離である。この搬送が実行されると、図16に示されるように、下流側に配置された(n−1)/2個のK用ノズルNk1〜Nkm−1のそれぞれが、副走査方向において、上記の第1のドット群と同じ位置に配置される。例えば、K用ノズルNk4が、ドットDkm+3と同じ位置に配置される。この状態で、印刷制御部74は、印刷ヘッド80の2回目の主走査を実行する。これにより、下流側に配置された(n−1)/2個のK用ノズルNk1〜Nkm−1のそれぞれが、第2のドット群(図16のドットDk4参照)を形成する。上記の第1のドット群と上記の第2のドット群とによって、(n−1)/2本のラスタR1等が構成される。なお、2回目の主走査では、上流側に配置された(n−1)/2個のK用ノズルNkm〜Nkn−1も、ドット群を形成する。即ち、2回目以降の主走査では、(n−1)個のK用ノズルNk1〜Nkn−1が、ドット群を形成する。印刷制御部74は、印刷媒体150の第3の距離の搬送と、印刷ヘッド80の主走査と、の組合せを繰り返し実行する。これにより、二値データによって表わされる画像が、印刷媒体に印刷される。
上記の説明から明らかなように、シングリングの副走査方向の印刷解像度は、第1の印刷モードの第1の印刷解像度と同じである。ただし、シングリングの印刷結果は、第1の印刷モードの印刷結果よりも画像ムラが目立ちにくい。例えば、第1の印刷モードでは、1個のノズルが1本のラスタを形成するために、各ノズルの吐出量の差が、各ラスタの濃度差として顕著に現れる。これに対し、シングリングでは、2個のノズルが1本のラスタを形成するために、各ノズルの吐出量の差が、各ラスタの濃度差として現れ難い。
本実施例では、ユーザは、所望の画像データを印刷するための操作をPC10の操作部12に実行する際に、第1,第2及び第3の印刷モードの中から、1つの印刷モードを選択することができる。PC10の制御部30は、第3の印刷モードが選択された場合に、図8のS14において、上記の第1の印刷解像度に対応する変換済みRGB画像データ200を生成する。次いで、制御部30は、第2の印刷モードの場合と同様に、図8のS16以降の処理を実行する。即ち、制御部30は、第3の印刷モードが選択された場合に、各ノズルの吐出量のバラツキを補償する補償処理を実行せずに、二値データを生成する。なお、第3の印刷モードがユーザによって選択された場合には、PC10の制御部30は、二値データと、第3の印刷モードを示すモード情報と、をプリンタ50に送信する。
プリンタ50の制御部70が実行する処理は、第1実施例と同様である。即ち、図13のS50において第3の印刷モードを示すモード情報が取得された場合には、印刷制御部74は、S52でNOと判断し、S60に進む。即ち、本実施例では、第3の印刷モードの場合に、印刷制御部74は、第1の振幅変更データのみを用いて、第1の駆動波形を決定する(図13のS62参照)。
上述したように、第3の印刷モード(シングリング)で印刷される画像は、第1の印刷モードで印刷される画像と比べると、画像ムラが目立ちにくい。このために、本実施例のPC10は、第3の印刷モードの場合に、各ノズルの吐出量のバラツキを補償する補償処理を実行せずに、二値データを生成する。補償処理に起因する濃度低下が起こらないために、プリンタ50は、平均値Daveと目標値Dtargetとの差分D1に対応するΔVk1のみを用いて、基準駆動波形120から第1のK用駆動波形122を決定する。これにより、第3の印刷モードで印刷される場合に、印刷済み画像の濃度が、目標値Dtargetになる。上記の説明から明らかなように、本実施例の第3の印刷モードが、第1の印刷解像度と第2の印刷解像度とが同じ場合の「第2の印刷モード」の一例である。
(第4実施例)
本実施例では、第1の印刷解像度が選択された場合に、PC10の制御部30が実行する二値データ生成処理の内容が第1実施例と異なる。図8を参照しながら、本実施例の二値データ生成処理の内容について説明する。S10〜S16は、第1実施例と同様である。S16を終えると、制御部30は、CMYK画像データ210(図10参照)から補正済み画像データ250(図17参照)を生成する補正処理を実行する。
図17を参照しながら、補正処理の内容を説明する。補正処理では、制御部30は、CMYK画像データ210の中から1個の画素(以下では「注目画素」と呼ぶ)を特定する。以下では、画素216が注目画素である場合を例として、説明を続ける。次いで、制御部30は、注目画素216を構成する4個の値の中から、1個の値PV(i,j)を特定する。制御部30は、PV(i,j)を補正することによって、補正済みの値PV’’(i,j)を算出する。具体的に言うと、制御部30は、第1実施例の図8のS30の場合と同様の手法を用いて、PV(i,j)に対応する注目ノズル番号を特定する。次いで、制御部30は、特性データテーブル60から、注目ノズル番号に対応する注目特性データを特定する。続いて、制御部30は、(255+最小の特性データ)/(255+注目特性データ)を計算することによって、注目補正用データCD(i,j)を算出する。なお、上記の「最小の特性データ」は、PV(i,j)に対応する色のインク滴を吐出するn個のノズルに対応するn個の特性データのうち、最小の吐出量を示す特性データ(即ち「0」)である。制御部30は、PV(i,j)に注目補正用データCD(i,j)を乗算することによって、補正済みの値PV’’(i,j)を算出する。制御部30は、注目画素216を構成する他の3個の値のそれぞれについて、補正済みの値PV’’(i,j)を算出する。これにより、注目画素216に対応する4個の補正済みの値PV’’(i,j)が生成される。さらに、制御部30は、画素216以外の各画素についても、同様の手法を用いて、4個の補正済みの値PV’’(i,j)を算出する。これにより、補正済み画像データ250が生成される。なお、補正済み画像データ250の同じ行に属する複数個の画素に対応する複数個のドットは、同じノズルによって形成される(即ち同じ注目ノズルである)。従って、図17において、同じ行に属する複数個の画素内のCDは同じ値になる。例えば、CD(i,j)とCD(i+1,j)とは同じ値である。
補正済み画像データ250を生成すると、制御部30は、ハーフトーン処理(図8のS18〜S36参照)を実行する。本実施例のハーフトーン処理では、S18において、制御部30は、補正済み画像データ250内の1個の画素を注目画素として特定する。次いで、S20において、制御部30は、注目画素の4個の補正済みの値PV’’(i,j)の中から、1個の補正済みの値PV’’(i,j)を特定する。さらに、S22において、制御部30は、S20で特定されたPV’’(i,j)に誤差値を加算することによって、PV’を算出する。さらに、S30において、制御部30は、ドット出力=1の場合に、PV’から固定値255を減算することによって、誤差値を算出する。その他の処理は、第1実施例の場合と同様である。
本実施例では、PC10の制御部30は、CMYK画像データ210内の各画素の値を補正する。制御部30は、例えば、CMYK画像データ210内の注目画素のK値に注目補正用データCDを乗算することによって、補正済みの値K’’を生成する。注目補正用データCDは、(255+最小の特性データ(即ち0))/(255+注目特性データ)である。注目特性データが最小の特性データである場合には、注目補正用データが(255+0)/(255+0)=1になる。即ち、注目特性データが最小の特性データである場合には、K値が補正されない。これは、基準駆動波形120が供給される場合に、最小K用ノズルが形成するブラックのドットの濃度値として、「255(CMYK画像データ210内の画素のK値が採り得る最大の値)」を採用していることを意味する。即ち、本実施例でも、制御部30は、最小K用ノズルのインク滴の吐出量を基準として補償処理を実行する。従って、プリンタ50の印刷制御部74は、第1の印刷モードの場合に、第1及び第2の振幅変更データ(例えばΔVk1,ΔVk2)を用いて、第2の駆動波形を決定する。これにより、目標値に対応する濃度の画像が印刷される駆動波形を決定することができる。
本実施例の図8の二値データ生成処理は、以下のように表現することができる。即ち、PC10の制御部30は、第1種の色空間(例えばRGB)で表現される対象の画像データ(例えば変換済みRGB画像データ200)内の各画素に対して、色変換処理と補正処理とを含む第1種の特定の処理を実行することによって、第2種の色空間(例えばCMYK)で表現される色変換済み画像データ(例えば処理済み画像データ250)を生成する。制御部30は、色変換済み画像データに対してハーフトーン処理を実行することによって、処理済み画像データ(例えば二値データ)を生成する。制御部30は、対象の画像データ(例えば変換済みRGB画像データ200)内の注目画素に対して、色変換処理を実行することによって、第2種の色空間で表現される色変換済みの画素(例えばPV)を生成する。制御部30は、第2種の色空間内で、色変換済みの画素に対して、第1種の補正用データ(例えばCD)を用いて、補正処理を実行することによって、補正済みの画素(例えばPV’’)を生成する。
本実施例では、色変換処理と補正処理とハーフトーン処理とが「画像処理」の一例である。変換済みRGB画像データ200が、「特定の画像データ」及び「対象の画像データ」の一例である。また、変換済みRGB画像データ200内の各画素に対して実行される色変換処理及び補正処理が、「第1種の特定の処理」の一例である。
上記の各実施例の変形例を以下に列挙する。
(1)上記した実施例では、PC10の制御部30が画像処理部としてのプリンタドライバを備えており、図8の画像処理を実行することによって二値データを生成するが、これに代えて、プリンタ50の制御部70が画像処理部を備え、当該画像処理部が図8の画像処理を実行することによって二値データを生成してもよい。この場合、取得部72は、制御部70の画像処理部から二値データを取得すればよい。
(2)上記した実施例では、PC10は、ユーザからの印刷指示があった後に、特性データテーブル60をプリンタ50から取得する。しかしながら、PC10は、プリンタドライバ24がPC10にインストールされたタイミングで、特性データテーブル60をプリンタ50から取得し、特性データテーブル60を保持しておいてもよい。また、PC10は、図8のS30の処理を実行する毎に、必要な特性データをプリンタ50から取得してもよい。
(3)上記した実施例では、上記の第2の印刷モードに対応する第2の印刷解像度は、第1の印刷モードに対応する第1の印刷解像度の2倍である。しかしながら、第2の印刷解像度は、第1の印刷解像度の3倍以上であってもよい。例えば、第2の印刷解像度が第1の印刷解像度の3倍である場合には、1回目の主走査によって形成された隣接する2本のラスタの間に、2回目の主走査によって1本のラスタが形成され、さらに、上記の隣接する2本のラスタの間に、3回目の主走査によって1本のラスタが形成される。
(4)上記した実施例では、PC10の制御部30は、ドット出力=1と、ドット出力=0と、を示す二値データを生成する。しかしながら、制御部30は、三値以上のデータを生成してもよい。例えば、制御部30は、大ドットに対応する値「3」と、中ドットに対応する値「2」と、小ドットに対応する値「1」と、ドット無に対応する「0」と、を示す四値データを生成してもよい。この場合、制御部30は、図8のS24で利用する閾値として、大ドットと中ドットとを区分するための閾値Th1(例えば191)と、中ドットと大ドットとを区分するための閾値Th2(例えば127)と、小ドットとドット無とを区分するための閾値Th3(例えば63)と、を利用してもよい。この例の場合、制御部30は、形成されるべきドットサイズに応じて、図8のS30で算出される注目補正用データを変えてもよい。例えば、制御部30は、中ドットが形成される場合には、(255+注目特性データ)×(中ドットで表現されるべき濃度)/(大ドットで表現されるべき濃度(例えば255))を注目補正用データとして特定し、小ドットが形成される場合には、(255+注目特性データ)×(小ドットで表現されるべき濃度)/(大ドットで表現されるべき濃度(例えば255))を注目補正用データとして特定してもよい。
(5)上記した実施例では、図8のS32において、注目画素に対応する誤差値として、S30で算出された誤差値がワーク領域22に記憶される。図8のS22では、PC10の制御部30は、S32で記憶された誤差値(注目画素の近傍の画素に対応する誤差値)を収集することによってPV’を算出する。この構成に代えて、制御部30は、S32において、注目画素の近傍の未処理の各画素に、S30で算出された誤差値を割り当ててもよい。例えば、図11の画素216のKに対応する誤差値ΔEk(i,j)が算出された場合に、制御部30は、S32において、未処理の画素217のK値であるK(i+1,j)と、誤差値ΔEk(i,j)と係数sとを乗算した値と、の和を算出することによって、画素217の新たなK値を算出してもよい。この構成を採用する場合、図8のS20で特定されるPVがPV’に等しく、図8のS22の処理が実行されない。
(6)上記の第4実施例では、PC10の制御部30は、誤差拡散法を用いて、ハーフトーン処理を実行しているが、これに代えて、ディザ法を用いて、ハーフトーン処理を実行してもよい。
(7)上記の第3実施例では、シングリングは、2回の主走査によって2個のノズルが1本のラスタを形成するが、これに代えて、2回の主走査によって1個のノズルが1本のラスタを形成してもよい。また、3回以上の主走査によって3個以上のノズルで1本のラスタを形成してもよい。
(8)図4の特性データテーブル60では、CMYKのそれぞれの色について、最小の吐出量のノズルに対応する特性データがゼロに設定される。しかしながら、例えば、所定の基準の吐出量のノズルに対応する特性データがゼロに設定されてもよい。この場合、図4の特性データテーブル60では、マイナスの値の特性データが存在し得る。本変形例では、図8のS30で利用されるΔE=PV’−(255+注目特性データ)という数式を変更してもよい。例えば、最小ノズルに対応する特性データが「−5」である場合には、ΔE=PV’−(260+注目特性データ)という数式を利用してもよい。この数式を利用すると、注目特性データが最小の特性データ(即ち「−5」)である場合には、注目補正用データが「255」になる。即ち、最小K用ノズルのインク滴の吐出量を基準として補償処理を実行することができる。また、最小ノズルに対応する特性データが「−5」である場合には、第4実施例において、CD=(260+最小の特性データ(即ち−5))/(260+注目特性データ)という数式を用いてもよい。この場合も、最小K用ノズルのインク滴の吐出量を基準として補償処理を実行することができる。
(9)なお、最小K用ノズルの吐出量を基準として補償処理が実行されなくてもよい。例えば、最小K用ノズルの吐出量よりも大きい所定の吐出量に対応する特性データをゼロに設定し、かつ、数式「ΔE=PV’−(255+注目特性データ)」を採用してもよい。この場合、最小K用ノズルの吐出量よりも大きい上記の所定の吐出量を基準として補償処理が実行される。この場合、濃度低下の程度は、平均値Daveと最小値Dminとの差分D2よりも小さくなる。従って、第1の印刷解像度が選択された場合に、上記の実施例の図13の処理が実行されると、印刷済み画像の濃度は、目標値Dtargetより大きくなり得る。この場合も、補償処理に起因する濃度低下を抑制することができ、高濃度の画像、即ち、高画質の画像を印刷することができる。
(10)図8のS30において、PC10の制御部30は、注目ノズルに対応する注目特性データと、特定ノズルに対応する特性データと、を用いて、注目補正用データを算出してもよい。上記の特定ノズルは、注目ノズルが形成するドットを含むラスタ(以下では「注目ラスタ」と呼ぶ)に隣接するラスタを形成するノズルである。例えば、図5(第1の印刷モード)において、注目K用ノズルがノズルNk4である場合(注目ラスタがR4である場合)、上記の特定ノズルは、ラスタR2,R3,R5〜R7を形成するノズルNk2,Nk3,Nk5〜Nk7であってもよい。この場合、図8のS30において、制御部30は、注目ノズル番号と上記の特定ノズルのノズル番号(以下では「特定ノズル番号」と呼ぶ)とを取得してもよい。制御部30は、注目ノズル番号に対応する注目特性データと、複数個の特定ノズル番号に対応する複数個の特性データと、の平均値AVEに、255を加算することによって、注目補正用データを算出してもよい。同様に、第4実施例においても、CD=(255+最小の特性データ)/(255+AVE)という数式を用いて、注目補正用データを算出してもよい。
(11)本明細書で開示される技術は、インク滴を用いた印刷以外に、基板のパターンを形成するためのパターニング装置等にも利用することができる。
(12)図4の特性データテーブル60において、吐出量が最小であるノズルに対応する特性データを255に設定してもよい。即ち、特性データは、図4に示される値に255を加算することによって得られる値でもよい。この場合、図8のS30で注目特性データ(例えば255)を取得することは、注目補正用データを取得することに等しい。即ち、本変形例では、「第1種の特性データ」と「第1種の補正用データ」とが等しい。本変形例も、「第1種の補正用データは、第1種の注目ノズルに対応する第1種の特性データを用いて得られるデータである」という構成に含まれる。
(13)上記の各実施例において、プリンタ50は、例えば、ΔVk1の代わりに、DaveとDTargetとの差分D1から、ΔVk1を算出するための数式を記憶しておいてもよい。プリンタ50の印刷制御部74は、図13のS56において、DaveとDtargetとの差分D1を算出し、その差分D1からΔVk1を算出してもよい。同様に、プリンタ50は、例えば、ΔVk2の代わりに、DaveとDminとの差分D2から、ΔVk2を算出するための数式を記憶しておいてもよい。なお、プリンタ50は、ΔVk1及び/又はΔVk2を算出するための係数を記憶しておいてもよい。例えば、プリンタ50は、n個のK用ノズルに対応するn個の特性データを用いて、平均値と最小値との差分を算出し、当該差分に上記の係数を乗算することによって、ΔVk2を算出してもよい。
(14)上記の各実施例では、基準駆動波形120の振幅(電圧)を変更することによって、インク滴の吐出量を調整している。しかしながら、これに代えて、基準駆動波形120の振幅を変更せずに、インク滴の吐出量を調整してもよい。例えば、基準駆動波形120の立ち上がりと立ち下がりとの間の間隔(パルス幅)を変更することによって、インク滴の吐出量を調整してもよい。
(15)プリンタ50の印刷制御部74は、第2及び/又は第3の印刷モードの場合に、第1の印刷モードと同様に処理を実行してもよい。即ち、印刷制御部74は、いずれのモードを示すモード情報が図13のS50で取得されても、図13のS52〜S58の処理を実行するように構成されていてよい。即ち、一般的に言うと、第1の処理済み画像データが取得される場合(第1の印刷モードで動作する場合)であっても、第2の処理済み画像データが取得される場合(第2の印刷モードで動作する場合)であっても、第1種の調整データを用いて、第1種の駆動波形を決定してもよい。
(16)PC10の制御部30は、第1の印刷モードが選択された場合のみならず、第2及び/又は第3の印刷モードが選択された場合にも、図8の二値データ生成処理のS30において、注目補正用データを用いて誤差値を算出してもよい。即ち、いずれのモードが選択された場合でも、補償処理が実行された二値データが生成されてもよい。即ち、一般的に言うと、第2の処理済み画像データは、対象の画像データ内の注目画素に対して、第1種の補正用データを用いて、第1種の特定の処理を実行することによって生成されるデータであってもよい。
(17)上記の実施例では、n個のK用ノズルに対応するn個の濃度の平均値Daveに基づいて、ΔVk1が求められるが、これに代えて、n個のK用ノズルのうちの副走査方向の端部を除くn’個のノズルに対応するn’個の濃度の平均値Daveに基づいて、ΔVk1が求められてもよい。一般的には、平均値Daveは、n個のノズルのうちの少なくとも一部のノズルから吐出されるインク滴の吐出量の平均に対応する平均濃度であればよい。
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。