(第1実施例)
(システムの構成)
図面を参照して第1実施例を説明する。図1は、本実施例のネットワークシステム2の概略図を示す。ネットワークシステム2は、LAN4と、ルータ6と、インターネット8と、PC10と、プリンタ50と、サーバ100と、を備える。ルータ6、PC10、及び、プリンタ50は、LAN4に接続されている。ルータ6は、インターネット8に接続されている。サーバ100は、インターネット8に接続されている。PC10、プリンタ50、及び、サーバ100は、相互に通信可能である。
(PC10の構成)
PC10は、操作部12と、表示部14と、ネットワークインターフェイス16と、メモリ20と、制御部30と、を備える。操作部12は、マウスとキーボードとによって構成される。ユーザは、操作部12を操作することによって、様々な指示をPC10に入力することができる。表示部14は、様々な情報を表示するためのディスプレイである。ネットワークインターフェイス16は、LAN4に接続されている。
メモリ20は、ワーク領域22を備える。ワーク領域22は、例えば、印刷対象のデータを記憶する。印刷対象のデータは、例えば、PC10内のアプリケーションによって生成されるデータであってもよいし、外部装置から取得されるデータであってもよい。PC10内のアプリケーションの例として、ワープロソフト、表計算ソフト等を挙げることができる。外部装置の例として、インターネット8上のサーバ、LAN4に接続されているデバイス、持ち運び可能な記憶媒体等を挙げることができる。メモリ20は、さらに、プリンタ50のためのプリンタドライバ24を記憶する。プリンタドライバ24は、プリンタ50に様々な指示(例えば印刷指示)を送信するためのソフトウェアである。プリンタドライバ24は、例えば、プリンタドライバ24を格納しているコンピュータ読取可能媒体からPC10にインストールされてもよいし、インターネット8上のサーバからPC10にインストールされてもよい。
制御部30は、メモリ20に格納されているプログラム(例えばプリンタドライバ24)に従って、様々な処理を実行する。制御部30がプリンタドライバ24に従って処理を実行することによって、画像処理部32の機能が実現される。
(プリンタ50の構成)
プリンタ50は、ネットワークインターフェイス52と、操作部53と、表示部54と、制御部55と、メモリ56と、を備える。さらに、プリンタ50には、第1の印刷ヘッド80が着脱可能に搭載されている。ネットワークインターフェイス52は、LAN4に接続されている。操作部53は、複数個のキーによって構成される。表示部54は、様々な情報を表示するためのディスプレイである。制御部55は、メモリ56に記憶されているプログラム64に従って、様々な処理を実行する。制御部55がプログラム64に従って処理を実行することによって、第1のデータ取得部70、生成部72、印刷制御部74、第2のデータ取得部76、及び、第3のデータ取得部78、の各機能が実現される。メモリ56は、プログラム64の他に、第1の印刷ヘッド用の特性データテーブル60(図3参照)を記憶する。特性データテーブル60には、第1の印刷ヘッド80に形成された複数個のノズルのそれぞれについて、当該ノズルから吐出されるインク滴の吐出量に関係する特性データが登録されている。第1の印刷ヘッド80は、プリンタ50の出荷段階において、プリンタ50に搭載されている印刷ヘッドである。第1の印刷ヘッド80には、3種類の有彩色(シアン、マゼンタ、イエロー)のインク滴を吐出するための3組のノズル群(C用ノズル群84c,M用ノズル群84m,Y用ノズル群84y)と、ブラックのインク滴を吐出するための1組のノズル群(K用ノズル群84k)と、が形成されている。また、プリンタ50は、自身に搭載されている印刷ヘッド(例えば、第1の印刷ヘッド80、後述の第2の印刷ヘッド122等)の駆動機構、印刷媒体の搬送機構等(これらは図示省略)を備える。
印刷ヘッドの駆動機構は、キャリッジと、キャリッジを移動させるモータと、を備える。印刷ヘッドは、キャリッジに着脱可能に搭載される。キャリッジは、プリンタ50の筐体内を所定方向に往復移動する。キャリッジが移動すると、印刷ヘッドも移動する。キャリッジの往復移動方向、即ち、印刷ヘッドの往復移動方向のことを「主走査方向」と呼ぶ(図2参照)。また、印刷ヘッドが1回の往復移動を行うことを「1回の主走査」と呼ぶ。印刷ヘッドの駆動機構は、さらに、印刷ヘッドに駆動信号を供給する回路を備える。印刷ヘッドに駆動信号が供給されると、印刷ヘッドに形成されたノズル群からインク滴が吐出される。1回の主走査の往路の間に、ノズル群からインク滴が吐出されるように、駆動信号が印刷ヘッドに供給される。なお、1回の主走査の復路の間には、ノズル群からインク滴が吐出されない。印刷媒体の搬送機構は、主走査方向に垂直の方向に印刷媒体を搬送する。印刷媒体の搬送方向のことを「副走査方向」と呼ぶ。なお、別の実施例では、印刷ヘッドの1回の往復移動の往路と復路の両方の間に、ノズル群からインク滴が吐出されるように、駆動信号が印刷ヘッドに供給されてもよい。この場合、印刷ヘッドの1回の往復移動のうち、往路と復路のそれぞれを「1回の主走査」ということができる。
図2に示されるように、第1の印刷ヘッド80は、4組のノズル群84k,84c,84m,84yが形成されたノズル面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が同じ位置に配置されている。
第1の印刷ヘッド用の特性データテーブル60について説明する。図3に示されるように、特性データテーブル60には、第1の印刷ヘッド80に形成された4n個のノズルのそれぞれについて、当該ノズルのノズル番号と、当該ノズルから吐出されるインク滴の吐出量に関係する特性データと、が対応づけて登録されている。図3の特性データテーブル60では、ノズルのノズル番号として、当該ノズルの参照番号(図2のNk1等)を採用している。例えば、ノズル番号Nk1に対応する特性データ「6」は、ブラックのインク滴を吐出するためのK用ノズルNk1(図2参照)の特性データを示す。特性データテーブル60に登録されている各特性データは、プリンタ50のベンダによって予め調査されている。具体的には、次の手法によって調査される。
図示省略しているが、第1の印刷ヘッド80は、4n個のノズルからインク滴を吐出させるためのアクチュエータユニットを備える。アクチュエータユニットは、4n個のノズルに対応する4n個の個別電極を備える。個別電極に上記の駆動信号が供給されると、当該個別電極に対応するノズルから1個のインク滴が吐出される。プリンタ50のベンダは、K用ノズル群84kに属するn個のK用ノズルに対応するn個の個別電極のそれぞれに1個の駆動信号を供給する。なお、ここで供給されるn個の駆動信号は、同じ信号である。上記のn個の駆動信号が供給されると、n個のK用ノズルから所定の媒体に向けてn個のブラックのインク滴が吐出される。この結果、n個のK用ノズルに対応するn個のブラックのドットが上記の所定の媒体上に形成される。
ベンダは、n個のブラックのドットのそれぞれについて、当該ドットの濃度(例えば単位面積当りのブラックの濃さ)を測定する。ベンダは、K用ノズル群84kのうち、最も濃度が低い特定のドットの濃度を256階調の最大値である「255」に決定する。次いで、ベンダは、他のK用ノズルが形成するドットの濃度を、最も濃度が低い特定のドットの濃度を基準にして特定する。このため、他のK用ノズルが形成するドットの濃度は、255以上の値で特定される。続いて、ベンダは、各K用ノズルが形成したドットの濃度と、もっとも濃度が低い特定のドットの濃度(即ち255)と、の差分に基づいて、当該K用ノズルの特性データを決定する。このため、本実施例では、最も濃度が低い特定のドットを形成するK用ノズルの特性データは、ゼロに決定される。そして、他のK用ノズルが形成するドットの濃度は、ゼロ以上の値に決定される。例えば、図3に示されるノズル番号Nk1に対応する特性データは「6」である。これは、K用ノズルNk1が形成したドットの濃度(261)と、最も濃度が低い特定のドットの濃度(255)と、の差分が、「6」であることを意味する。ベンダは、ブラックの場合と同様に、シアン、マゼンタ、イエロのそれぞれについても、各ノズルの特性データを決定する。例えば、ベンダは、C用ノズル群84cのうち、最も濃度が低い特定のドットを形成する特定のC用ノズルの特性データをゼロに決定する。さらに、ベンダは、他のC用ノズルが形成するドットの濃度と、上記の特定のドットの濃度と、の差分に基づいて、当該他のC用ノズルの特性データを決定する。ベンダは、調査結果に基づいて特性データテーブル60を生成し、特性データテーブル60を記憶部56に格納させる。プリンタ50は、出荷段階において、特性データテーブル60を既に記憶している。
(サーバ100の構成)
続いて、サーバ100の構成について説明する。サーバ100は、第3種の特性データテーブル102を格納する。第3種の特性データテーブル102には、後述する印刷ヘッドセット120を構成する印刷ヘッド122に形成された4n個のノズルに対応する4n個の特性データが登録されている。
(プリンタ50が実行する印刷手法)
続いて、プリンタ50が実行する印刷手法について説明する。PC10の画像処理部32(図1参照)は、後述する二値データ生成処理(図5参照)を実行することによって、二値データを生成する。PC10の制御部30(図1参照)は、画像処理部32によって生成された二値データをプリンタ50に送信する。プリンタ50の印刷制御部74は、PC10から二値データが供給される場合に、プリンタ50に搭載されている印刷ヘッドに印刷を実行させる。なお、プリンタ50に第1の印刷ヘッド80が搭載されている場合を例として、説明を続ける。
図4に示されるPk1,Pk2等は、副走査方向に沿って伸びる投影線PLが設定された場合に、K用ノズル群84kを構成するK用ノズルNk1,Nk2等を主走査方向に投影することによって得られる投影点を示す。印刷ヘッドの駆動機構は、第1の印刷ヘッド80の1回の主走査の間に、二値データに基づいて、各K用ノズルNk1等からインク滴を吐出させる。この結果、例えば、K用ノズルNk1から吐出される複数個のブラックのインク滴によって、主走査方向に沿って並ぶ複数個のブラックのドットが印刷媒体上に形成される。同様に、K用ノズルNk2から吐出される複数個のブラックのインク滴によって、主走査方向に沿って並ぶ複数個のブラックのドットが印刷媒体上に形成される。白黒印刷の場合には、第1の印刷ヘッド80の1回の主走査において、1個のK用ノズルによって形成される複数個のブラックのドットの並びのことを「1本のラスタ(raster)」と呼ぶ。従って、各ラスタは、主走査方向に沿って伸びる。白黒印刷の場合には、第1の印刷ヘッド80の1回の主走査において、例えば、7個のK用ノズルNk1〜Nk7は、7本のラスタR1〜R7を形成する。
上述したように、例えば、ノズルNk1とノズルNc1とノズルNm1とノズルNy1とは、副走査方向において同じ位置に配置されている(図2参照)。従って、カラー印刷の場合には、第1の印刷ヘッド80の1回の主走査において、4個のノズルNk1,Nc1,Nm1,Ny1は、副走査方向において同じ位置にドットを形成する。従って、カラー印刷の場合には、第1の印刷ヘッド80の1回の主走査において、4個のノズルNk1,Nc1,Nm1,Ny1によって形成される複数個のCMYKのドットの並びのことを「1本のラスタ」と呼ぶ。
本実施例では、第1の印刷ヘッド80の1回目の主走査において、副走査方向に沿って並ぶn本のラスタが形成される。印刷制御部74は、第1の印刷ヘッド80の1回目の主走査が終了すると、印刷媒体の搬送を実行する。本実施例では、ここでの搬送距離として、特定の距離を採用している。上記の特定の距離は、nノズルピッチ分の距離である。1ノズルピッチは、副走査方向において隣接する2個のノズル(例えばNk1とNk2)の間の距離である。即ち、1ノズルピッチは、隣接する2個の投影点(例えばPk1とPk2)の間の距離である。次いで、印刷制御部74は、第1の印刷ヘッド80の2回目の主走査を実行する。これにより、n本のラスタが新たに形成される。印刷制御部74は、印刷媒体の上記の特定の距離の搬送と、第1の印刷ヘッド80の主走査と、の組合せを繰り返し実行する。これにより、二値データによって表わされる画像が、印刷媒体に印刷される。上述した説明から明らかなように、本実施例では、隣接する2本のラスタの間の距離が、ほぼ1ノズルピッチである。
(PC10の二値データ生成処理)
次いで、PC10の制御部30が実行する処理について説明する。ユーザは、所望のデータを選択し、当該データによって表わされる画像を印刷するための操作を操作部12に加えることができる。なお、本実施例では、RGBのビットマップ形式の画像データ(以下では「RGB画像データ」と呼ぶ)がユーザによって選択されたものとして、処理の内容を説明する。他の形式のデータ(例えば、テキストデータ、RGB以外のビットマップ形式の画像データ、テキストとビットマップとの複合データ等)が選択された場合には、制御部30は、ユーザによって選択されたデータを、公知の手法を用いて、RGB画像データに変換する。制御部30は、上記の操作が実行されると、プリンタドライバ24に従って、図5の二値データ生成処理を実行する。
画像処理部32(図1参照)は、RGB画像データを取得し、当該RGB画像データをワーク領域22に格納する(S10)。次いで、制御部30は、プリンタ50に現在格納されている特性データテーブルを取得するための所定のコマンドをプリンタ50に送信する。なお、プリンタ50に第1の印刷ヘッド用の特性データテーブル60が格納されている場合を例として、説明を続ける。プリンタ50は、上記の所定のコマンドに応じて、メモリ56に格納されている特性データテーブル60をPC10に送信する。この結果、制御部30は、特性データテーブル60を取得する(S12)。制御部30は、特性データテーブル60を、ワーク領域22に格納する。
次いで、画像処理部32は、公知の手法を用いて、RGB画像データに対して解像度変換処理を実行することによって、変換済みRGB画像データを生成する(S14)。S14では、画像処理部32は、RGB画像データを、プリンタ50が採用している印刷解像度に応じた解像度に変換する。解像度変換処理によって、図6に示される変換済み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)の多値データである。なお、図6に示される各画素内のx座標は、各画素の列番号を示し、y座標は、各画素の行番号を示す。
次いで、画像処理部32は、公知の手法を用いて、色変換処理を実行する(S16)。S16では、画像処理部32は、変換済みRGB画像データ200を、CMYKのビットマップ形式の画像データ(以下では「CMYK画像データ」と呼ぶ)に変換する。色変換処理によって、図7に示される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)の多値データである。なお、図7に示される各画素内のx座標は、各画素の列番号を示し、y座標は、各画素の行番号を示す。
続いて、画像処理部32は、CMYK画像データ210を用いて、ハーフトーン処理を実行する。ハーフトーン処理は、S18〜S36の処理を含む。画像処理部32は、まず、CMYK画像データ210内の1個の画素を特定する(S18)。S18における画素の特定順序は、予め決められている。具体的に言うと、1回目のS18の処理では、画像処理部32は、CMYK画像データ210のうち、図7の最も上の行に属する複数個の画素のうち、最も左の列に属する1個の画素を特定する。2回目以降のS18の処理では、画像処理部32は、前回に特定された画素(以下では「前回特定画素」と呼ぶ)と同じ行に属する1個の画素であって、前回特定画素の右隣の列に属する1個の画素を特定する。なお、前回特定画素が最も右の列に属する場合には、画像処理部32は、前回特定画素が属する行の1つ下の行に属する複数個の画素のうち、最も左の列に属する1個の画素を特定する。
以下では、S18で特定される1個の画素のことを「注目画素」と呼ぶ。画像処理部32は、注目画素を構成するCMYKの4個の値の中から、1個の値(例えばK値)を特定する(S20)。以下では、S20で特定される1個の値のことを「PV(Pixel Value)」と呼ぶ。続いて、画像処理部32は、S20で特定されたPVを補正する(S22)。具体的に言うと、画像処理部32は、注目画素より前にS18〜S32の処理が終了している処理済み画素群のうち、注目画素の近傍に位置する複数個の近傍画素について算出された複数個の誤差値を用いて、注目画素のPVを補正する。例えば、注目画素が図8の画素216である場合には、画素211〜215についてのS18〜S32の処理が終了している。従って、画素211〜215のそれぞれについては、後述のS30で、CMYKに対応する4個の誤差値が算出済みである。例えば、画素211については、Cに対応する誤差値と、Mに対応する誤差値と、Yに対応する誤差値と、Kに対応する誤差値と、が算出済みである。なお、図8では、図示の便宜上、CMYKの4色に対応する4個の誤差値を区別することなく「ΔE」で表現している。なお、以下では、例えば、Kに対応する誤差値を「ΔEk」と表現することがある。本実施例では、注目画素216の左上、上、右上、及び、左に位置する4個の画素211,212,213,215を、注目画素216の近傍画素として採用する。なお、別の実施例では、注目画素216の近傍画素として、さらに、注目画素211の左の画素、画素212の上の画素、画素214、画素215の左の画素等を採用してもよい。
画像処理部32は、注目画素216の4個の近傍画素211,212,213,215のうちの1個の近傍画素211について算出済みの4個の誤差値ΔE(i−1,j−1)の中から、現在の補正対象のPVの色(例えばK)に対応する1個の誤差値(例えばKに対応する誤差値ΔEk(i−1,j−1)を特定する。同様に、画像処理部32は、他の3個の近傍画素212,213,215のそれぞれについて、当該近傍画素について算出済みの4個の誤差値の中から、現在の補正対象のPVの色に対応する1個の誤差値を特定する。この結果、現在の補正対象のPVの色に対応する4個の誤差値が特定される。次いで、画像処理部32は、特定された4個の誤差値を用いて、図8の画素216内に示される数式に従って、注目画素216のPVを補正することによって、補正済みの値PV’を算出する。なお、数式内のs1,s2,s3,s4は、注目画素216と各近傍画素との間の位置関係に応じて、予め決められている係数である。例えば、注目画素216のPV(i,j)がK値(K(i,j))である場合には、画像処理部32は、4個の近傍画素211,212,213,215のそれぞれについて、当該近傍画素の誤差値ΔEk(例えば近傍画素211のΔEk(i−1,j−1))と、当該近傍画素に対応する係数(例えば近傍画素211に対応するs1)と、を乗算することによって、乗算値を算出する。次いで、画像処理部32は、注目画素216のK値(i,j)(即ちPV(i,j))と、4個の近傍画素211,212,213,215bについて算出された4個の乗算値と、の和を算出することによって、補正済みの値K’(i,j)(即ちPV’(i,j))を算出する。
続いて、画像処理部32は、S22で得られた補正済みの値PV’(例えばK’(i,j))が、予め決められている閾値Th(例えば128)よりも大きいのか否かを判断する(S24)。ここでYESの場合、画像処理部32は、判断対象の補正済みの値PV’に対応する色のドットを印刷媒体に形成することを決定する。次いで、画像処理部32は、補正済みの値PV’に対応する色のドット出力値「1」を記憶する(S26)。例えば、注目画素216の補正済みの値PV’がK’(i,j)である場合には、S26では、注目画素216と同じ位置の新たな画素の値として「K=1」を記憶する。画像処理部32は、注目画素216の座標(i,j)と、K=1と、を対応づけて記憶する。このような情報を含む二値データがプリンタ50に供給されると、注目画素216に対応する印刷媒体上の位置に向けて、ブラックのインク滴が吐出される。即ち、注目画素216に対応する印刷媒体上の位置にブラックのドットが形成される。S26を終えると、S30に進む。
一方において、S24でNOの場合、画像処理部32は、判断対象の補正済みの値PV’に対応する色のドットを印刷媒体に形成しないことを決定する。次いで、画像処理部32は、補正済みの値PV’に対応する色のドット出力値「0」を記憶する(S28)。例えば、注目画素216の補正済みの値PV’がK’(i,j)である場合には、S28では、画像処理部32は、注目画素216と同じ位置の新たな画素の値として「K=0」を記憶する。このような情報を含む二値データがプリンタ50に供給されると、注目画素216に対応する印刷媒体上の位置に向けて、ブラックのインク滴が吐出されない。即ち、注目画素216に対応する印刷媒体上の位置にブラックのドットが形成されない。
なお、例えば、S20においてPVとしてC値が特定された場合には、S26では、注目画素と同じ位置の新たな画素の値として「C=1」が記憶され、S28では、注目画素と同じ位置の新たな画素の値として「C=0」が記憶される。前者の場合には、注目画素に対応する印刷媒体上の位置にシアンのドットが形成され、後者の場合には、注目画素に対応する印刷媒体上の位置にシアンのドットが形成されない。S20においてM値又はY値が特定された場合も、S20でK値又はC値が特定された場合と同様に処理が実行される。
次いで、制御部30は、誤差値を算出する(S30)。S30の処理は、S24の判断結果に応じて変わる。まず、S24でYESと判断された場合(S26が実行された場合)のS30の処理について説明する。制御部30は、注目画素(例えば画素216)に対応する印刷媒体上の位置にドットを形成するノズルのノズル番号(以下では「注目ノズル番号」と呼ぶ)を特定する。なお、例えば、PV’に対応する色がKである場合には、注目ノズルとしてK用ノズルが特定される。以下では、注目ノズルとしてK用ノズルが特定されるべき場合には、「注目K用ノズル」と呼ぶ。注目K用ノズル番号を特定するための手法について、次に詳しく説明する。
上述したように、本実施例では、プリンタ50は、図4に示されるように印刷を実行する。即ち、1回目の主走査では、K用ノズルNk1〜Nknが、第1の印刷解像度のCMYK画像データ210の1〜n行目に対応するラスタを形成する。さらに、第1の印刷モードの搬送距離(上記の第1の距離)は、nノズルピッチ分の距離である。これらの内容に基づけば、第1の印刷解像度のCMYK画像データ210のL行目に対応するラスタを形成する注目K用ノズルを特定することができる。プリンタドライバ24(図1参照)には、CMYK画像データ210の各画素の行番号(y座標)から注目K用ノズル番号を特定するためのK用ノズル番号テーブルが、予め登録されている。画像処理部32は、CMYK画像データ210内での注目画素の行番号(注目画素のy座標)と、上記のK用ノズル番号テーブルと、に基づいて、注目K用ノズル番号を特定する。
プリンタドライバ24には、3種類の有彩色CMYのそれぞれについて、上記のK用ノズル番号テーブルと同様のノズル番号テーブルが予め登録されている。S20で特定されるPVに対応する色が3種類の有彩色CMYのいずれかである場合には、画像処理部32は、上記のKの場合と同様に、注目ノズル番号を特定する。例えば、S20で特定されるPVに対応する色がCである場合には、画像処理部32は、C用ノズル番号テーブルを用いて、1個の注目C用ノズル番号を特定する。
上述したように、制御部30は、S12において、特性データテーブル60を取得済みである。画像処理部32は、特性データテーブル60から、注目ノズル番号に対応づけられている特性データ(以下では「注目特性データ」と呼ぶ)を特定する。次いで、制御部30は、注目特性データに「255」を加算することによって補正用データ(以下では「注目補正用データ」と呼ぶ)を算出する。制御部30は、S22で得られた補正済みの値PV’から注目補正用データを減算することによって、誤差値を算出する。このようにして誤差値を算出するための式が、図9の画素216内に示されている。即ち、注目画素が図9の画素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でNOと判断された場合(S28が実行された場合)のS30の処理について説明する。S24でNOの場合、制御部30は、S22で得られた補正済みの値PV’を誤差値として特定する。このようにして誤差値を算出するための式が、図9の画素217内に示されている。即ち、注目画素が図9の画素217であり、S22において得られるPV’(i+1,j)が閾値Thより小さい場合(S24でNOの場合)には、制御部30は、図9の画素217内の式を用いて、画素217に対応する誤差値ΔE(i+1,j)を特定する。即ち、制御部30は、注目補正用データを用いずに、補正済みの画素値PV’を用いて、誤差値を算出する。
S30を終えると、制御部30は、注目画素に対応する誤差値として、S30で特定された誤差値(例えばΔE(i,j))と、を記憶する(S32)。ここで記憶された誤差値は、後に実行されるS22の処理で利用される。例えば、S32で画素216のKに対応する誤差値ΔE(i,j)が記憶された場合には、当該誤差値ΔE(i,j)は、S22で画素217のK値に対応するK’(i,j)を算出する際に利用される。
上述したように、ドット出力値=1の場合に実行されるS30では、ΔE=PV’−注目補正用データ(255+注目特性データ)という数式によって、誤差値ΔEを算出する。注目補正用データとして「255+注目特性データ」を利用するということは、注目ノズルが形成するドットの濃度を「255+注目特性データ」と仮定していることを意味する。例えば、最小の吐出量のノズルに対応する特性データ(以下では「最小特性データ」と呼ぶ)は「0」であるために、最小の吐出量のノズルが形成するドットの濃度が「255」と仮定されている。このような手法で誤差値を算出することにより、各ノズルの吐出量のバラツキを補償することができる。S30では、実際に表現されるべき注目画素の値PV’と、仮定されたドットの濃度「255+注目特性データ」と、の差分が、誤差値ΔEとして算出される。この差分が、上記のS22の処理で近傍画素に拡散される。一方において、ドット出力値=0の場合に実行されるS30では、ΔE=PV’という数式によって、誤差値ΔEを算出する。即ち、実際に表現されるべき注目画素の値PV’と、ドットが形成されない場合の濃度「0」と、の差分が、誤差値ΔEとして算出される。この差分が、上記のS22の処理で近傍画素に拡散される。
続いて、制御部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の画素数に等しい。制御部30(図1参照)は、二値データをプリンタ50に送信する。この結果、プリンタ50の印刷制御部74は、二値データに応じて、印刷処理を実行する。具体的には、印刷制御部74は、プリンタ50に現在搭載されている印刷ヘッド(例えば第1の印刷ヘッド80)に印刷を実行させる。即ち、印刷制御部74は、二値データに含まれるK=1を示す画素に対応する印刷媒体上の位置にブラックのドットが形成されるように、当該ドットを形成するK用ノズルに対応する個別電極に、駆動信号を供給する。同様に、印刷制御部74は、二値データに従って、他の色のドットが形成されるように、駆動信号を供給する。この結果、図5のS10で取得されるRGB画像データによって表わされる画像(即ち、S14で得られる変換済みRGB画像データ200によって表わされる画像、S16で得られるCMYK画像データ210によって表わされる画像、二値データによって表わされる画像)が、印刷媒体に形成される。
(印刷ヘッドセット120の構成)
プリンタ50の出荷段階で装着済みの第1の印刷ヘッド80は、例えばノズルの吐出不良が発生する場合などに、交換されることが好ましい。ユーザは、プリンタ50に装着される第1の印刷ヘッド80を新たな印刷ヘッドに交換すべき場合に、印刷ヘッドセット120(図1参照)を用意する。印刷ヘッドセット120は、第2の印刷ヘッド122と、記録媒体125と、を備える。第2の印刷ヘッド122は、第1の印刷ヘッド80と同じ構成を備える。即ち、第2の印刷ヘッド122には、CMYKの4色に対応する4組のノズル群124k、124c、124m、124yが形成されている。各ノズル群124k等は、n個のノズルによって構成される。記録媒体125は、文字コード126と、二次元コード128と、URL(Uniform Resource Locator)130と、が記述されている。記録媒体125は、上記の各情報126〜130が記述された面がおもて面になるように、第2の印刷ヘッド122に貼り付けられている。
文字コード126は、4組のノズル群124k等のそれぞれについて、当該ノズル群に対応する4個の座標値(合計16個の座標値)を示す。これらの座標値は、プリンタ50のベンダによって予め抽出されている。具体的には、ベンダは、前述した特性データテーブル60の各特性データの調査手法と同様の手法を用いて、第2の印刷ヘッド122のK用ノズル群124kに属するn個のK用ノズルに対応するn個の特性データを調査する。ベンダは、n個の特性データがプロットされたグラフを生成する。図10は、ここで生成されるグラフを示す。図10では、左から右に向かうにつれて、ノズル番号が大きくなる。なお、第2の印刷ヘッド122では、第1の印刷ヘッド80と同様に、ノズル番号が設定されている。即ち、第2の印刷ヘッド122がプリンタ50に装着された場合には、副走査方向の最も下流側に位置するK用ノズルのノズル番号が「Nk1」であり、副走査方向の最も上流側に位置するK用ノズルのノズル番号が「Nkn」である(図2参照)。ベンダは、図10のグラフから、両端の2個の座標値D1(a1,b1),D4(a4,b4)を抽出する。座標値D1のx座標「a1」は、ノズル番号Nk1に対応し、座標値D1のy座標「b1」は、ノズル番号Nk1に対応するノズルの特性データを示す。座標値D4のx座標「a4」は、ノズル番号Nknに対応し、座標値D1のy座標「b4」は、ノズル番号Nknに対応するノズルの特性データを示す。
次いで、ベンダは、図10のグラフから、2個の特徴点の座標値D2(a2,b2),D3(a3,b3)を抽出する。ここに言う特徴点とは、図10のグラフに近似するグラフ(関数)を生成可能な2個の点を意味する。なお、特徴点の数は、2個に限られず、1個であってもよいし、3個以上であってもよい。本実施例では、ベンダは、図10のグラフから目視によって特徴点を抽出する。ただし、ベンダは、ソフトウェアを用いた解析によって特徴点を抽出してもよい。例えば、図10に示されるn個の点から所定の近似曲線を得る手法を採用する場合には、その近似曲線の変曲点、極値等を、特徴点として採用してもよい。以上の方法によって、K用ノズル群124kに対応する4個の座標値が抽出される。他の色のノズル群124c等についても同様の方法で座標値が抽出される。文字コード126では、CMYKの4色のそれぞれについて、当該色を示すアルファベット(例えば「K」)と、当該色に対応する4個の座標値D1〜D4と、が対応づけて記述されている。なお、詳しくは後述するが、プリンタ50は、文字コード126として記述された16個の座標値に基づいて、第2の印刷ヘッド122に形成された4n個のノズルに対応する4n個の特性データを生成する。以下では、このようにして生成される特性データのことを「第1種の特性データ」と呼ぶ。
二次元コード128は、印刷ヘッド122に形成された4n個のノズルに対応する4n個の特性データに変換可能なデータがコード化されたものである。二次元コード128は、例えば、マトリックスコード(例えば、QRコード(登録商標))、スタックコード等である。ベンダは、上記と同様の手法を用いて、印刷ヘッド122に形成された4n個のノズルに対応する4n個の特性データを調査し、4n個の特性データをコード化することによって二次元コード128を生成する。ベンダは、二次元コード128を記録媒体125に記述する。なお、以下では、二次元コード128から得られる特性データ(即ちベンダによって調査された特性データ)のことを「第2種の特性データ」と呼ぶ。
URL130は、上記のサーバ100内の第3種の特性データテーブル102の所在を示すURLである。ベンダは、上記と同様の手法を用いて、印刷ヘッド122に形成された4n個のノズルに対応する4n個の特性データを調査し、4n個の特性データを含む第3種の特性データテーブル102をサーバ100内に格納する。ベンダは、第3種の特性データテーブル102の格納場所を示すURL130を記録媒体125に記述する。なお、以下では、サーバ100内に格納されている特性データ(即ちベンダによって調査された特性データ)のことを「第3種の特性データ」と呼ぶ。上述した説明から明らかなように、4n個の第3種の特性データは、4n個の第2種の特性データと同じものである。ただし、4n個の第1種の特性データは、文字コード126として記述された座標値からプリンタ50によって生成されるものであり、4n個の第2種及び第3種の特性データと異なる。
(特性データテーブル更新処理)
続いて、図12を参照して、プリンタ50の制御部55が実行する特性データテーブル更新処理の内容を説明する。ユーザは、第1の印刷ヘッド80をプリンタ50から取り外し、印刷ヘッドセット120(即ち第2の印刷ヘッド122)をプリンタ50に装着する。次いで、ユーザは、プリンタ50の操作部53を操作する。これにより、特性データテーブル更新処理が開始される。
制御部30は、第1〜第3のモードを示す情報を表示部14に表示させる。第1のモードは、文字コード126として記述されている座標値に基づいて4n個の第1種の特性データを生成するためのモードである。第2のモードは、PC10を介して、4n個の第2種の特性データを取得するためのモードである。第3のモードは、PC10を介して、4n個の第3種の特性データを取得するためのモードである。制御部30は、第1〜第3のモードの中から1つのモードをユーザが選択することを監視する(S50,S56,S62)。
第1のモードが選択された場合に、制御部30は、S50でYESと判断する。ユーザは、操作部53を操作することによって、文字コード126として記述されている合計16個の座標値をプリンタ50に順次入力する。これにより、第1のデータ取得部70(図1参照)は、ユーザによって入力された合計16個の座標値のデータを取得する(S52)。次いで、生成部72(図1参照)は、16個の座標値のデータを利用して、CMYKの4色のそれぞれについて、当該色に対応するn個の第1種の特性データを生成する(S54)。
図11に示されるように、生成部72は、第2の印刷ヘッド122のK用ノズル群に対応する4個の座標値を直線で結ぶことによって得られるK用関数(y=fk(x))を生成する。生成部72は、上記のK用関数に基づいて、n個のK用ノズルに対応するn個の第1種の特性データを抽出する。即ち、生成部72は、「x=m(mは1〜nの各整数)」の場合にK用関数から得られるy座標を、K用ノズル番号Nkmに対応する第1種の特性データとして抽出する。例えば、生成部72は、「x=5」の場合にK用関数から得られるy座標を、K用ノズル番号Nk5に対応する第1種の特性データとして抽出する。Kの場合と同様に、生成部72は、他の色に対応する4個の座標値に基づいて、当該色に対応する関数(例えばy=fc(x))を生成し、当該色に対応するn個の第1種の特性データを抽出する。これにより、生成部72は、4n個のノズル番号と、4n個の第1種の特性データと、が対応づけられたテーブル(以下では「第1種の特性データテーブル」と呼ぶ)を生成することができる。S54を終えると、S68に進む。
第2のモードが選択された場合に、制御部30は、S56でYESと判断する。ユーザは、第2のモードを選択する前に、以下の作業を予め実行しておく。即ち、ユーザは、所定のバーコードリーダを用意し、記録媒体125に記述された二次元コード128をバーコードリーダに読取らせる。次いで、ユーザは、バーコードリーダをPC10に接続し、バーコードリーダによって読取られたデータをPC10に入力する。PC10に格納されているプリンタドライバ24は、バーコードリーダによって読取られたデータを、4n個のノズルに対応する4n個の第2種の特性データに変換するためのプログラムを含む。PC10の制御部30は、プリンタドライバ24に従って、4n個の第2種の特性データを生成する。制御部30は、4n個のノズルのノズル番号と、4n個の第2種の特性データと、が対応づけられたテーブル(以下では「第2種の特性データテーブル」と呼ぶ)をメモリ20に格納する。プリンタ50の第2のデータ取得部76(図1参照)は、ユーザによって第2のモードが選択された場合に、PC10にアクセスする(S58)。具体的には、第2のデータ取得部76は、第2種の特性データテーブルを取得するためのコマンドをPC10に送信する。上述したように、PC10のメモリ20には、第2種の特性データテーブルが格納されている。PC10の制御部30は、プリンタ50から上記のコマンドが受信される場合に、第2種の特性データテーブルをプリンタ50に送信する。これにより、第2のデータ取得部76は、第2種の特性データテーブルを取得する(S60)。S60を終えると、S68に進む。
第3のモードが選択された場合に、制御部30は、S62でYESと判断する。ユーザは、第3のモードを選択する前に、以下の作業を予め実行しておく。即ち、ユーザは、PC10の操作部12を用いて、記録媒体125に記述されたURL130をPC10に入力する。これにより、PC10の制御部30は、サーバ100にアクセスし、サーバ100から第3種の特性データテーブル102をダウンロード(取得)する。制御部30は、第3種の特性データテーブル102をメモリ20に格納する。プリンタ50の第3のデータ取得部78(図1参照)は、ユーザによって第3のモードが選択された場合に、PC10にアクセスする(S64)。具体的には、第3のデータ取得部78は、第3種の特性データテーブル102を取得するためのコマンドをPC10に送信する。上述したように、PC10のメモリ20には、第3種の特性データテーブル102が格納されている。PC10の制御部30は、プリンタ50から上記のコマンドが受信される場合に、第3種の特性データテーブル102をプリンタ50に送信する。これにより、第3のデータ取得部78は、第3種の特性データテーブル102を取得する(S66)。S66を終えると、S68に進む。
S68では、制御部55は、メモリ56内の特性データテーブル60を新たな特性データテーブルに更新する。例えば、S54を経て実行されるS68では、制御部55は、特性データテーブル60を、S54で生成された第1種の特性データテーブルに更新する。また、例えば、S60又はS66を経て実行されるS68では、制御部55は、特性データテーブル60を、S60又はS66で取得された第2種又は第3種の特性データテーブルに更新する。S68を終えると、特性データテーブル更新処理が終了する。
上記の特性データテーブル更新処理が終了した後に、上述した二値データ生成処理(図5)が実行される場合には、PC10の制御部30が図5のS12で取得する特性データテーブルは、図12のS68で得られる更新後の特性データテーブルである。例えば、図12のS68で第1種の特性データテーブルに更新された場合には、制御部30は、図5のS12で第1種の特性データテーブルを取得する。この場合、画像処理部32は、図5のS30において、注目ノズル番号に対応する第1種の注目特性データを用いて、注目補正用データ(255+第1種の注目特性データ)を算出する。同様に、例えば、図12のS68で第2種又は第3種の特性データテーブルに更新された場合には、制御部30は、図5のS12で第2種又は第3種の特性データテーブルを取得する。この場合、画像処理部32は、図5のS30において、注目ノズル番号に対応する第2種又は第3種の注目特性データを用いて、注目補正用データ(255+第2種又は第3種の注目特性データ)を算出する。従って、画像処理部32は、プリンタ50に新たに搭載された第2の印刷ヘッド122に形成された各ノズルに対応する特性データを用いて、各ノズルのインク滴の吐出量のバラツキを補償する処理(図5のS30参照)を実行することができる。
本実施例について詳しく説明した。本実施例によると、プリンタ50は、図12のS50でYESの場合(第1のモードが選択された場合)に、ユーザから与えられる16個の座標値のデータを用いて、第2の印刷ヘッド122に形成された4n個のノズルに対応する4n個の第1種の特性データを生成する(図12のS54)。従って、4n個の特性データのそれぞれを入力する作業をユーザが実行せずに済み、4n個よりも少ない16個の座標値のデータをプリンタ50に入力する作業をユーザが実行すれば足りる。ユーザの作業負担が低減する。なお、第2又は第3のモードではPC10が利用されるが、第1のモードではPC10を利用せずに済む。従って、例えば、PC10が存在しない環境であっても、プリンタ50は、4n個の第1種の特性データを生成することできる。上記の第1のモードは、特に、途上国のようにネットワーク環境が整っていない状況下でプリンタ50が使用される場合に有用である。入力すべきデータが少ないので、ユーザが手入力する場合に、負荷を低減できる。
また、プリンタ50は、図12のS56でYESの場合(第2のモードが選択された場合)に、二次元コード128を読み取ることによって得られる4n個の第2種の特性データを取得する。ユーザは、バーコードリーダを用いて二次元コード128を読み取るための作業を実行し、さらに、バーコードリーダが読み取ったデータをPC10に入力するための作業を実行すれば、4n個の第2種の特性データを、プリンタ50に与えることができる。4n個の特性データのそれぞれを入力する作業をユーザが実行する手法と比べると、ユーザの作業負担が低減する。上記の第2のモードは、ネットワーク環境が整っていない状況下でプリンタ50が使用される場合であって、例えば作業員がヘッドを交換する際等に、特に有用である。また、補正の精度も上記の第1のモードと比較して高い。
プリンタ50は、図12のS62でYESの場合(第3のモードが選択された場合)に、URL130に基づいて得られる4n個の第3種の特性データを取得する。ユーザは、PC10からサーバ100にアクセスする作業を実行すれば、4n個の第3種の特性データを、プリンタ50に与えることができる。4n個の特性データのそれぞれを入力する作業をユーザが実行する手法と比べると、ユーザの作業負担が低減する。上記の第3のモードは、ネットワーク環境が整っている状況下でプリンタ50が使用される場合に特に有用である。また、補正の精度も上記の第1のモードと比較して高い。
なお、本実施例の図5の二値データ生成処理は、以下のように表現することができる。即ち、PC10の画像処理部32は、第1種の色空間(例えばRGB)で表現される特定の画像データ(例えば変換済みRGB画像データ200)内の各画素に対して、色変換処理を実行することによって、第2種の色空間(例えばCMYK)で表現される対象の画像データ(例えばCMYK画像データ210)を生成する。画像処理部32は、対象の画像データに対して、ハーフトーン処理を実行することによって、処理済み画像データ(例えば二値データ)を生成する。画像処理部32は、ハーフトーン処理において、以下の処理を実行する。即ち、画像処理部32は、対象の画像データ内の注目画素の値(例えばPV)を、注目画素の近傍の複数個の近傍画素に対応する複数個の誤差値を用いて補正することによって、補正済みの値(例えばPV’)を生成する。画像処理部32は、補正済みの値(例えばPV’)と、注目画素に対応する閾値(例えばTh)と、に基づいて、注目画素に対応する印刷媒体上の位置にドットを形成するのか否かを決定する。画像処理部32は、注目画素についてドットを形成するのか否かに関する決定に応じて、注目画素に対応する誤差値を算出する。画像処理部32は、注目画素についてドットを形成することが決定される場合に、補正済みの値(例えばPV’)と、注目補正用データ(例えば255+注目特性データ)と、を用いて、注目画素に対応する誤差値を算出する特定の処理を実行する。
本実施例の各要素と本発明の各要素との対応関係を記載しておく。変換済みRGB画像データ200、CMYK画像データ210、図5で生成される二値データが、それぞれ、「特定の画像データ」、「対象の画像データ」、「処理済み画像データ」の一例である。また、色変換処理とハーフトーン処理とが「画像処理」の一例である。また、図5のS30において、ドット出力=1の場合に実行される誤差値算出処理が「特定の処理」の一例である。さらに、図5のS30で算出される(255+注目特性データ)が「補正用データ」の一例である。
また、図12のS52で取得される4個の座標値、S60で取得されるn個の第2種の特性データ、S66で取得されるn個の第3種の特性データが、それぞれ、「M個の第1のデータ(M個の第1のデータを含む情報)」、「第2のデータ」、「第3のデータ」の一例である。なお、Mは2以上かつNより小さい整数であってもよい。また、図12のS54を経てS68が実行された後に、図5のS30で利用される注目特性データが、「特定の第1種の特性データ」の一例である。同様に、図12のS60又はS66を経てS68が実行された後に、図5のS30で利用される注目特性データが、「特定の第2種又は第3種の特性データ」の一例である。図10の座標値D1,D4が「プリンタの副走査方向の両端に位置する2個のノズルに対応する2個の第1種の特性データ」の一例であり、図10の座標値D2,D3が「特徴点の座標値」の一例である。図11の関数が「特定の関数」の一例である。
(第2実施例)
本実施例では、PC10の制御部30が実行する二値データ生成処理の内容が第1実施例と異なる。図5を参照しながら、本実施例の二値データ生成処理の内容について説明する。S10〜S16は、第1実施例と同様である。S16を終えると、画像処理部32は、CMYK画像データ210(図7参照)から補正済み画像データ250(図13参照)を生成する補正処理を実行する。
図13を参照しながら、補正処理の内容を説明する。補正処理では、画像処理部32は、CMYK画像データ210の中から1個の画素(以下では「注目画素」と呼ぶ)を特定する。以下では、画素216が注目画素である場合を例として、説明を続ける。次いで、画像処理部32は、注目画素216を構成する4個の値の中から、1個の値PV(i,j)を特定する。画像処理部32は、PV(i,j)を補正することによって、補正済みの値PV’’(i,j)を算出する。具体的に言うと、画像処理部32は、第1実施例の図5のS30の場合と同様の手法を用いて、PV(i,j)に対応する注目ノズル番号を特定する。次いで、画像処理部32は、特性データテーブル60から、注目ノズル番号に対応する注目特性データを特定する。続いて、画像処理部32は、(255+最小の特性データ)/(255+注目特性データ)を計算することによって、注目補正用データCD(i,j)を算出する。なお、上記の「最小の特性データ」は、PV(i,j)に対応する色のインク滴を吐出するn個のノズルに対応するn個の特性データのうち、最小の吐出量を示す特性データ(即ち「0」)である。画像処理部32は、PV(i,j)に注目補正用データCD(i,j)を乗算することによって、補正済みの値PV’’(i,j)を算出する。画像処理部32は、注目画素216を構成する他の3個の値のそれぞれについて、補正済みの値PV’’(i,j)を算出する。これにより、注目画素216に対応する4個の補正済みの値PV’’(i,j)が生成される。さらに、画像処理部32は、画素216以外の各画素についても、同様の手法を用いて、4個の補正済みの値PV’’(i,j)を算出する。これにより、補正済み画像データ250が生成される。
補正済み画像データ250を生成すると、画像処理部32は、ハーフトーン処理(図5のS18〜S36参照)を実行する。本実施例のハーフトーン処理では、S18において、画像処理部32は、補正済み画像データ250内の1個の画素を注目画素として特定する。次いで、S20において、画像処理部32は、注目画素の4個の補正済みの値PV’’(i,j)の中から、1個の補正済みの値PV’’(i,j)を特定する。さらに、S22において、画像処理部32は、S20で特定されたPV’’(i,j)に誤差値を加算することによって、PV’を算出する。さらに、S30において、画像処理部32は、ドット出力=1の場合に、PV’から固定値255を減算することによって、誤差値を算出する。その他の処理は、第1実施例の場合と同様である。
本実施例の二値データ生成処理は、以下のように表現することができる。即ち、PC10の画像処理部32は、第1種の色空間(例えばRGB)で表現される対象の画像データ(例えば変換済みRGB画像データ200)内の各画素に対して、色変換処理と補正処理とを含む特定の処理を実行することによって、第2種の色空間(例えばCMYK)で表現される色変換済み画像データ(例えば処理済み画像データ250)を生成する。画像処理部32は、色変換済み画像データに対してハーフトーン処理を実行することによって、処理済み画像データ(例えば二値データ)を生成する。画像処理部32は、対象の画像データ(例えば変換済みRGB画像データ200)内の注目画素に対して、色変換処理を実行することによって、第2種の色空間で表現される色変換済みの画素(例えばPV)を生成する。画像処理部32は、第2種の色空間内で、色変換済みの画素に対して、第1種の補正用データ(例えばCD)を用いて、補正処理を実行することによって、補正済みの画素(例えばPV’’)を生成する。
本実施例では、色変換処理と補正処理とハーフトーン処理とが「画像処理」の一例である。変換済みRGB画像データ200が、「特定の画像データ」及び「対象の画像データ」の一例である。また、変換済みRGB画像データ200内の各画素に対して実行される色変換処理及び補正処理が「特定の処理」の一例である。
上記の各実施例の変形例を以下に列挙する。
(1)上記の実施例では、PC10の制御部30が画像処理部32を備えているが、プリンタ50の制御部55が画像処理部32を備えていてもよい。この構成の場合、ネットワークシステム2内にPC10が存在しなくても、プリンタ50は、印刷対象のRGB画像データから二値データを生成することができる。PC10が存在しない場合でも、図12のS50でYESの場合の技術、即ち、プリンタ50が第1種の特性データを生成する技術は、有用である。なお、PC10の制御部30が画像処理部32の一部分を備えており、プリンタ50の制御部55が画像処理部32の他の部分を備えていてもよい。例えば、プリンタ50に設けられた画像処理部32は、4n個の第1種の特性データから4n個の補正用データを生成する処理を実行し、4n個の補正用データ(255+第1種の特性データ)をPC10に供給してもよい。PC10に設けられた画像処理部32は、図5の二値データ生成処理を実行する際に、S12においてプリンタ50から4n個の補正用データを取得してもよい。この場合、PC10に設けられた画像処理部32は、図5のS30において、S12で取得された4n個の補正用データのうち、注目ノズルに対応する注目補正用データを用いて、誤差値を算出してもよい。
(2)プリンタ50は、上記の実施例の印刷解像度と異なる印刷解像度で印刷可能であってもよい。例えば、副走査方向において、上記の実施例の印刷解像度の二倍以上の印刷解像度を採用してもよい。即ち、プリンタ50は、インタレース印刷を実行可能であってもよい。また、プリンタ50は、同じ色に対応する複数個のノズル(例えば複数個のK用ノズル)が、印刷ヘッドの複数回の主走査によって、1本のラスタを形成する印刷(シングリング、オーバーラップ方式)を実行可能であってもよい。
(3)上記の実施例では、文字コード126は、16個の第1種の特性データの値(16個の座標値)そのものである。しかしながら、文字コード126は、16個の第1種の特性データに変換可能な複数個の記号(アルファベット、数字、それらの組合せ等)であってもよい。この場合、文字コード126は、ユーザが認識可能な記号であれば、どのような種類の記号であってもよい。本変形例の場合、図12のS52では、ユーザは、操作部53を操作することによって、文字コード126として記述された複数個の記号をプリンタ50に入力してもよい。プリンタ50の生成部72は、ユーザによって入力された複数個の記号を、16個の第1種の特性データの値(16個の座標値)に変換してもよい。この例の場合、上記の複数個の記号が「M個の第1のデータを含む情報」の一例であり、変換後の16個の座標値が「M個の第1のデータ」の一例である。
(4)上記の実施例では、図11に示されるように、4個の座標値を直線で結ぶことによって、関数が生成される。しかしながら、4個の座標値から、曲線(例えば、ベジエ曲線、スプライン曲線等)で表現される関数が生成されてもよい。
(5)上記の実施例では、記録媒体125には二次元コード128が記述されているが、二次元コード128に代えて、一次元コードを用いることもできる。一次元コードは、例えば、バーコード等である。この場合、一次元コードは、印刷ヘッド122に形成された4n個のノズルに対応する4n個の特性データに変換可能なデータがコード化されたものとなる。
(6)記録媒体125は、第2の印刷ヘッド122に貼り付けられてなくてもよい。例えば、記録媒体125は、第2の印刷ヘッド122と共に梱包される紙媒体であってもよいし、第2の印刷ヘッド122の説明書に貼り付けられていてもよい。
(7)上記の実施例では、画像処理部32は、ドット出力=1と、ドット出力=0と、を示す二値データを生成する。しかしながら、画像処理部32は、三値以上のデータを生成してもよい。例えば、画像処理部32は、大ドットに対応する値「3」と、中ドットに対応する値「2」と、小ドットに対応する値「1」と、ドット無に対応する「0」と、を示す四値データを生成してもよい。この場合、画像処理部32は、図5のS24で利用する閾値として、大ドットと中ドットとを区分するための閾値Th1(例えば191)と、中ドットと大ドットとを区分するための閾値Th2(例えば127)と、小ドットとドット無とを区分するための閾値Th3(例えば63)と、を利用してもよい。この例の場合、ハーフトーン処理部40は、形成されるべきドットサイズに応じて、図5のS30で算出される注目補正用データを変えてもよい。例えば、画像処理部32は、中ドットが形成される場合には、(255+注目特性データ)×(中ドットで表現されるべき濃度)/(大ドットで表現されるべき濃度(例えば255))を注目補正用データとして特定し、小ドットが形成される場合には、(255+注目特性データ)×(小ドットで表現されるべき濃度)/(大ドットで表現されるべき濃度(例えば255))を注目補正用データとして特定してもよい。
(8)上記した実施例では、図5のS32において、S30で算出された誤差値が記憶される。図5のS22では、画像処理部32は、S32で記憶された誤差値(注目画素の近傍の画素に対応する誤差値)を収集することによってPV’を算出する。この構成に代えて、画像処理部32は、S32において、注目画素の近傍の未処理の各画素に、S34で算出された誤差値を割り当ててもよい。例えば、図8の画素216のKに対応する誤差値ΔEk(i,j)が算出された場合に、画像処理部32は、S32において、未処理の画素217のK値であるK(i+1,j)と、誤差値ΔEkと係数sとを乗算した値と、の和を算出することによって、画素217の新たなK値を算出してもよい。この構成を採用する場合、図5のS20で特定されるPVがPV’に等しく、図5のS22の処理が実行されない。
(9)上記の第2実施例では、画像処理部32は、誤差拡散法を用いて、ハーフトーン処理を実行しているが、これに代えて、ディザ法を用いて、ハーフトーン処理を実行してもよい。
(10)図3の特性データテーブル60において、吐出量が最小であるノズルに対応する特性データを255に設定してもよい。即ち、特性データは、図3に示される値に255を加算することによって得られる値でもよい。この場合、図5のS30で注目特性データ(例えば255)を取得することは、注目補正用データを取得することに等しい。即ち、本変形例では、「特性データ」と「補正用データ」とが等しい。本変形例も、「補正用データは、注目ノズルに対応する特定の第1種(又は、第2種、第3種)の特性データを用いて得られるデータである」という構成に含まれる。
(11)上記の各実施例では、1つの印刷ヘッド(例えば80)に複数色分のノズル群(例えば84k等)が形成されている。しかしながら、1つの印刷ヘッドには、1色分のノズル群のみが形成されていてもよい。
(12)本明細書で開示される技術は、インク滴を用いた印刷以外に、基板のパターンを形成するためのパターニング装置等にも利用することができる。
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。