(第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は、例えば、印刷対象の元画像データ(例えば図10に示す元画像データ100)を記憶する。印刷対象の元画像データは、例えば、PC10内のアプリケーションによって生成されるデータであってもよいし、外部装置から取得されるデータであってもよい。PC10内のアプリケーションの例として、ワープロソフト、表計算ソフト等を挙げることができる。外部装置の例として、インターネット上のサーバ、LAN4に接続されているデバイス、持ち運び可能な記憶媒体等を挙げることができる。記憶部20は、さらに、プリンタ50のためのプリンタドライバ24を記憶する。プリンタドライバ24は、プリンタ50に様々な指示(例えば印刷指示)を送信するためのソフトウェアである。プリンタドライバ24は、例えば、プリンタドライバ24を格納しているコンピュータ読取可能媒体からPC10にインストールされてもよいし、インターネット上のサーバからPC10にインストールされてもよい。
制御部30は、記憶部20に格納されているプログラム(例えばプリンタドライバ24)に従って、様々な処理を実行する。制御部30がプリンタドライバ24に従って処理を実行することによって、画像処理部32と供給部48の機能が実現される。画像処理部32は、色変換処理部34と、選択部36と、補正用データ算出部39と、閾値決定部40と、種類判別部41と、ハーフトーン処理部42と、を備える。選択部36は、判断部38を備える。ハーフトーン処理部42は、補正部43と、決定部44と、誤差値算出部45と、を備える。
(プリンタ50の構成)
プリンタ50は、ネットワークインターフェイス52と、表示部54と、記憶部56と、印刷実行部70と、を備える。ネットワークインターフェイス52は、LAN4に接続されている。表示部54は、様々な情報を表示するためのディスプレイである。印刷実行部70は、記憶部56に記憶されているプログラム64に従って、PC10から供給される二値データによって表される画像を印刷媒体に印刷する。印刷実行部70は、印刷ヘッド80を備える。印刷実行部70は、上記の他にも、印刷ヘッド80の駆動機構、印刷媒体の搬送機構等(これらは図示省略)を備える。
印刷ヘッド80の駆動機構は、キャリッジと、キャリッジを移動させるモータと、を備える。印刷ヘッド80は、キャリッジに着脱可能に搭載される。キャリッジは、プリンタ50の筐体内を所定方向に往復移動する。キャリッジが移動すると、印刷ヘッド80も移動する。キャリッジの往復移動方向、即ち、印刷ヘッド80の往復移動方向のことを「主走査方向」と呼ぶ。また、本実施例では、印刷ヘッド80が1回の往復移動を行うことを「1回の主走査」と呼ぶ。印刷ヘッド80の駆動機構は、さらに、印刷ヘッド80に駆動信号を供給する回路を備える。印刷ヘッド80に駆動信号が供給されると、印刷ヘッド80に形成されたノズル群84k等(図2参照)からインク滴が吐出される。本実施例では、1回の主走査の往路の間に、ノズル群84k等からインク滴が吐出されるように、駆動信号が印刷ヘッド80に供給される。なお、1回の主走査の復路の間には、ノズル群84k等からインク滴が吐出されない。印刷媒体の搬送機構は、主走査方向に垂直の方向に印刷媒体を搬送する。印刷媒体の搬送方向のことを「副走査方向」と呼ぶ。なお、別の実施例では、印刷ヘッド80の1回の往復移動の往路と復路の両方の間に、ノズル群84k等からインク滴が吐出されるように、駆動信号が印刷ヘッド80に供給されてもよい。この場合、印刷ヘッド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が同じ位置に配置されている。
記憶部56は、特性データテーブル60と、閾値テーブル62と、プログラム64と、を記憶する。プログラム64は、印刷実行部70によって実行される印刷のためのプログラムを含む。図3に示されるように、特性データテーブル60には、印刷ヘッド80に形成された4n個のノズルのそれぞれについて、当該ノズルのノズル番号と、当該ノズルから吐出されるインク滴の吐出量に関係する特性データと、が対応づけて登録されている。図3の特性データテーブル60では、ノズルのノズル番号として、当該ノズルの参照番号(図2のNk1等)を採用している。例えば、ノズル番号Nk1に対応する特性データ「6」は、ブラックのインク滴を吐出するためのK用ノズルNk1(図2参照)の特性データを示す。特性データテーブル60に登録されている各特性データは、プリンタ50のベンダによって予め調査されている。具体的には、次の手法によって調査される。
図示省略しているが、印刷ヘッド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に対応する特性データは「36」である。これは、K用ノズルNk1が形成したドットの濃度(291)と、最も濃度が低い特定のドットの濃度(255)と、の差分が、「36」であることを意味する。ベンダは、ブラックの場合と同様に、シアン、マゼンタ、イエロのそれぞれについても、各ノズルの特性データを決定する。例えば、ベンダは、C用ノズル群84cのうち、最も濃度が低い特定のドットを形成する特定のC用ノズルの特性データをゼロに決定する。さらに、ベンダは、他のC用ノズルが形成するドットの濃度と、上記の特定のドットの濃度と、の差分に基づいて、当該他のC用ノズルの特性データを決定する。ベンダは、調査結果に基づいて特性データテーブル60を生成し、特性データテーブル60を記憶部56に格納させる。プリンタ50は、出荷段階において、特性データテーブル60を既に記憶している。
図4に示されるように、閾値テーブル62には、後述するデータの種類と、範囲と、閾値と、が対応付けて登録されている。ベンダは、閾値テーブル62を生成し、記憶部56に格納させる。プリンタ50は、出荷段階において、閾値テーブル62を既に記憶している。
(印刷モードについて)
続いて、プリンタ50の印刷実行部70が動作可能な印刷モードについて説明する。PC10の画像処理部32(図1参照)は、後述の二値データ生成処理を実行することによって、二値データを生成する。二値データ生成処理は、画像データ変換処理(図9参照)と、ハーフトーン処理(図13参照)と、を含む。画像処理部32は、比較的低い第1の印刷解像度(例えば300dpi)で印刷されるべき場合(後述する「高精細」が指定されない場合)に、第1の印刷解像度に対応する二値データを生成する。本実施例では、第1の印刷解像度の印刷は、後述する単走査印刷とシングリングとで実現可能である。単走査印刷で印刷されるべき場合(後述する「きれい」が指定されなかった場合)には、PC10の供給部48(図1参照)は、単走査印刷で第1の印刷解像度の印刷を実現するための二値データと、第1の印刷モードを示すモード情報と、をプリンタ50に送信する。また、多走査印刷で印刷されるべき場合(後述する「きれい」が指定されなかった場合)には、供給部48は、シングリングで第1の印刷解像度の印刷を実現するための二値データと、第3の印刷モードを示すモード情報と、をプリンタ50に送信する。一方において、PC10の画像処理部32は、比較的高い第2の印刷解像度(例えば600dpi)で印刷されるべき場合(後述する「高精細」が指定された場合)に、第2の印刷解像度に対応する二値データを生成する。本実施例では、第2の印刷解像度の印刷は、後述するインターレース印刷で実現される。この場合、供給部48は、インターレース印刷で第2の印刷解像度の印刷を二値データと、第2の印刷モードを示すモード情報と、をプリンタ50に送信する。プリンタ50の印刷実行部70は、PC10から二値データとモード情報とが供給される場合に、当該モード情報に従って、第1〜第3の印刷モードのいずれかの印刷モードで動作する。
(第1の印刷モード)
図5に示されるPk1,Pk2等は、副走査方向に沿って伸びる投影線PLが設定された場合に、K用ノズル群84kを構成するK用ノズルNk1,Nk2等を主走査方向に投影することによって得られる投影点を示す。印刷実行部70は、印刷ヘッド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本のラスタが形成される。印刷実行部70は、印刷ヘッド80の1回目の主走査が終了すると、印刷媒体の搬送を実行する。第1の印刷モードでは、ここでの搬送距離として第1の距離を採用している。第1の距離は、nノズルピッチ分の距離である。1ノズルピッチは、副走査方向において隣接する2個のノズル(例えばNk1とNk2)の間の距離である。即ち、1ノズルピッチは、隣接する2個の投影点(例えばPk1とPk2)の間の距離である。次いで、印刷実行部70は、印刷ヘッド80の2回目の主走査を実行する。これにより、n本のラスタが新たに形成される。印刷実行部70は、印刷媒体の第1の距離の搬送と、印刷ヘッド80の主走査と、の組合せを繰り返し実行する。これにより、二値データによって表わされる画像が、印刷媒体に印刷される。
上述した説明から明らかなように、第1の印刷モードでは、隣接する2本のラスタの間の距離が、ほぼ1ノズルピッチである。上記の第1の印刷解像度は、副走査方向の印刷解像度を意味する。即ち、上記の第1の印刷解像度は、「隣接する2本のラスタの間の距離が、ほぼ1ノズルピッチである印刷解像度」と言い換えることができる。なお、以下では、第1の印刷モードに対応する印刷のことを「単走査印刷」と呼ぶことがある。
(第2の印刷モード)
白黒印刷の場合を例にして、第2の印刷モードについて説明する。図6に示されるように、第2の印刷モードでは、印刷実行部70は、まず、印刷媒体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を形成する様子が示されている。
次いで、印刷実行部70は、印刷媒体150の搬送を実行する。第2の印刷モードでは、ここでの搬送距離として第2の距離を採用している。例えば、nが奇数である場合には、第2の距離は、n/2ノズルピッチ分の距離である。この搬送が実行されると、図7に示されるように、副走査方向の下流側(図6の上側)に存在する(n−1)/2個のK用ノズルNk1〜Nkm−1のそれぞれが、1回目の主走査によって形成された隣接する2本のラスタ(例えばRkmとRkm+1)の間に位置する。この状態で、印刷実行部70は、印刷ヘッド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の上流側に位置する部分である。
印刷実行部70は、印刷媒体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の上流側に位置する部分である。印刷実行部70は、印刷媒体の第2の距離の搬送と、印刷ヘッド80の主走査と、の組合せを繰り返し実行する。これにより、二値データによって表わされる画像が、印刷媒体に印刷される。なお、カラー印刷の場合の第2の印刷モードは、他の色のノズル群84c等が利用される点を除けば、白黒印刷の場合と同様である。
上述した説明から明らかなように、第2の印刷モードでは、隣接する2本のラスタの間の距離が、ほぼ1/2ノズルピッチである。上記の第2の印刷解像度は、副走査方向において、上記の第1の印刷解像度の2倍の印刷解像度である。上記の第2の印刷解像度は、「隣接する2本のラスタの間の距離が、ほぼ1/2ノズルピッチである印刷解像度」と言い換えることができる。なお、以下では、第2の印刷モードに対応する印刷のことを「インターレース印刷」と呼ぶことがある。
(第3の印刷モード)
続いて、第3の印刷モードについて説明する。なお、以下では、第3の印刷モードに従って実行される印刷のことを「シングリング(singling)」と呼ぶことがある。なお、シングリングのことを「オーバーラップ方式」と言い換えることもできる。
図8を参照しながら、本実施例の白黒印刷のシングリングについて説明する。なお、カラー印刷の場合には、K用ノズル群84kに加えて、他の色のノズル群84c等も利用して、白黒印刷の場合と同様に、シングリングが実行される。第1の印刷モード及び第2の印刷モードのいずれでも、印刷ヘッド80の1回の主走査によって、1個のK用ノズルが1本のラスタを形成する。これに対し、シングリングでは、印刷ヘッド80の2回の主走査によって、2個のK用ノズルが1本のラスタを形成する。例えば、図8に示されるように、印刷ヘッド80の1回目の主走査において、K用ノズルNkm+3が、ドット群Dkm+3を形成する。次いで、印刷ヘッド80の2回目の主走査において、K用ノズルNk4が、ドット群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のドット群(図8のドットDkm+3参照)を形成する。次いで、印刷実行部70は、印刷媒体150の搬送を実行する。シングリングでは、ここでの搬送距離として第3の距離を採用している。第3の距離は、(n−1)/2ノズルピッチ分の距離である。この搬送が実行されると、図8に示されるように、(n−1)/2個のK用ノズルNk1〜Nkm−1のそれぞれが、副走査方向において、上記の第1のドット群と同じ位置に配置される。例えば、K用ノズルNk4が、ドットDkm+3と同じ位置に配置される。この状態で、印刷実行部70は、印刷ヘッド80の2回目の主走査を実行する。これにより、下流側に配置された(n−1)/2個のK用ノズルNk1〜Nkm−1のそれぞれが、第2のドット群(図8のドットDk4参照)を形成する。上記の第1のドット群と上記の第2のドット群とによって、(n−1)/2本のラスタR1等が構成される。なお、2回目の主走査では、上流側に配置された(n−1)/2個のK用ノズルNkm〜Nkn−1も、ドット群を形成する。印刷実行部70は、印刷媒体150の第3の距離の搬送と、印刷ヘッド80の主走査と、の組合せを繰り返し実行する。これにより、二値データによって表わされる画像が、印刷媒体に印刷される。
上記の説明から明らかなように、シングリングの副走査方向の印刷解像度は、単走査印刷の第1の印刷解像度と同じである。ただし、シングリングの印刷結果は、単走査印刷の印刷結果よりも高画質である。例えば、単走査印刷では、1個のノズルが1本のラスタを形成するために、各ノズルの吐出量の差が、各ラスタの濃度差として顕著に現れる。これに対し、シングリングでは、2個のノズルが1本のラスタを形成するために、各ノズルの吐出量の差が、各ラスタの濃度差として現れ難い。
(PC10の画像データ変換処理)
次いで、PC10の制御部30が実行する処理について説明する。ユーザは、所望のデータを選択し、当該データによって表わされる画像を印刷するための操作を操作部12に加えることができる。図10は、ユーザによって選択される元画像データ100の一例を示す。元画像データ100は、テキストデータ110とビットマップデータ120とを含む。例えば、テキスト形式でテキストが記述されたデータファイル内に、写真等のビットマップデータ120が貼り付けられることによって、元画像データ100が得られる。本実施例では、このような元画像データ100において、ビットマップデータ120以外の全ての部分が、テキストデータ110である。なお、以下では、元画像データ100によって表わされる画像の全領域のうち、テキストデータ110に対応する領域のことを「テキスト領域112」と呼び、当該全領域のうち、ビットマップデータ120に対応する領域のことを「ビットマップ領域122」と呼ぶ。
上記の操作が実行された場合には、制御部30は、ユーザが指定可能なオプションを表示部14に表示させる。表示部14には、「高精細」と「きれい」と「はやい」と「選択なし」の4種類の文字列が表示される。ユーザは、上記の4種類の文字列の中から、1種類の文字列を指定するためのオプション指定操作を実行することができる。制御部30は、ユーザによって、オプション指定操作が実行されると、プリンタドライバ24に従って、図9の画像データ変換処理を実行する。
画像処理部32(図1参照)は、元画像データ100を取得し、元画像データ100をワーク領域22に格納する(S10)。次いで、選択部36(図1参照)は、上記のオプション指定操作において、「高精細」が指定されたか否かを判断する(S12)。ここでYESの場合にS18に進み、NOの場合にS14に進む。S14では、選択部36は、上記のオプション指定操作において「きれい」が指定されたか否かを判断する。ここでYESの場合にS18に進み、NOの場合にS16に進む。S16では、選択部36は、上記のオプション指定操作において「はやい」が指定された否かを判断する。ここでYESの場合にS18に進み、NOの場合にS20に進む。
S18では、画像処理部32は、公知の手法を用いて、元画像データ100の全てを、RGB形式で記述されたビットマップデータに変換する。なお、元画像データ100の全てが、RGB形式で記述されたビットマップデータによって構成される場合には、上記の変換が行なわれない。さらに、画像処理部32は、公知の手法を用いて、RGB画像データに対して解像度変換処理を実行することによって、変換済みRGB画像データを生成する。解像度変換処理では、画像処理部32は、RGB画像データを、上記のオプション指定操作に応じた印刷解像度に変換する。即ち、ユーザによって「高精細」が指定されなかった場合には、第1の印刷解像度に対応する変換済みRGB画像データが生成され、ユーザによって「高精細」が指定された場合には、第2の印刷解像度に対応する変換済みRGB画像データが生成される。解像度変換処理によって、図11に示される変換済み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)の多値データである。なお、各画素内に示す座標のx座標は、各画素の列番号を示し、y座標は、各画素の行番号を示す。
S18を終えると、選択部36は、第2の処理モードを選択する(S19)。即ち、S19では、選択部36は、変換済みRGB画像データ200内の全ての画素群を特定するための情報(例えば各画素の行番号及び列番号)と、第2の処理モードを示す情報をワーク領域22に格納する。なお、以下では、変換済みRGB画像データ200内の全ての画素群を特定するための情報のことを「全画素特定情報」と呼ぶ。S19を終えると、S44の色変換処理に進む。
S20では、制御部30は、プリンタ50に格納されている特性データテーブル60と閾値テーブル62とを取得するための所定のコマンドをプリンタ50に送信する。プリンタ50は、上記の所定のコマンドに応じて、記憶部56に格納されている特性データテーブル60と閾値テーブル62とをPC10に送信する。この結果、制御部30は、特性データテーブル60と閾値テーブル62とを取得する。制御部30は、特性データテーブル60と閾値テーブル62とを、ワーク領域22に格納する。
次いで、種類判別部41は、元画像データ100の種類を判別する(S22)。種類判別部41は、まず、元画像データ100のデータ構造を解析することによって、元画像データ100が、テキストデータのみによって構成される文字データと、ビットマップデータのみによって構成されるパターンデータと、テキストデータとビットマップデータとの両方によって構成される複合データと、のいずれであるのかを判別する。元画像データ100が文字データである場合には、種類判別部41は、元画像データ100がテキストデータである、と判別する。
また、元画像データ100がイメージデータである場合には、種類判別部41は、元画像データ100(即ちビットマップデータ)に含まれる各画素の値に基づいて評価値を算出する。種類判別部41は、RGBで記述されたビットマップデータを用いて、評価値を算出する。なお、元画像データ100のビットマップデータがCMYKで記述されている場合、種類判別部41は、CMYKで記述されたビットマップデータを、RGBで記述されたビットマップデータに変換する。評価値は、RGBで記述されたビットマップデータに含まれる各画素を構成する3つの値(R値、G値、B値)のうちの最小値の平均値である。例えば、ビットマップデータが2個の画素のみによって構成され、一方の画素を構成する3つの値のうちの最小値がR値であり、他方の画素を構成する3つの値のうちの最小値がG値である場合には、当該ビットマップデータの評価値は、当該R値と当該G値との平均値である。ビットマップデータの評価値は、当該ビットマップデータの濃度に関する値、換言すれば、使用されるインク量に関する値と言い換えることができる。種類判別部41は、算出済みの評価値と、S20で取得された閾値テーブル62(図4参照)の範囲と、に基づいて、元画像データ100が閾値テーブル62の低濃度〜高濃度ビットマップデータのいずれであるのかを判別する。
また、元画像データ100が図10に示すような複合データである場合には、種類判別部41は、以下の処理を実行する。種類判別部41は、元画像データ100の縦及び横のサイズに基づいて、元画像データ100によって表わされる画像の全体の領域を特定する。なお、種類判別部41は、当該全体の領域として、全体座標群を特定する。さらに、種類判別部41は、ビットマップデータ120に対応するビットマップ領域122を特定する。なお、種類判別部41は、ビットマップ領域122として、ビットマップ座標群を特定する。さらに、種類判別部41は、全体の領域のうち、ビットマップ領域122以外の領域を、テキスト領域112として特定する。なお、種類判別部41は、テキスト領域112として、テキスト座標群を特定する。種類判別部41は、ビットマップデータ120に含まれる各画素の値に基づいて上記の評価値を算出する。次いで、種類判別部41は、算出済みの評価値と、S20で取得された閾値テーブル62(図4参照)の範囲と、に基づいて、ビットマップデータ120が、閾値テーブル62の低濃度〜高濃度のビットマップデータのいずれであるのかを判別する。また、種類判別部41は、テキスト領域112を、テキストデータと判別する。
閾値テーブル62について説明する。図4に示すように、閾値テーブル62には、データの種類と、範囲と、閾値と、が対応付けて登録されている。「データの種類」は、テキストデータと、ビットマップデータと、に大きく分類される。テキストデータは、テキスト形式で記述されたデータを意味する。テキストデータには、範囲が設定されておらず、閾値として「30」が設定されている。第1及び第2の処理モードのうちの一方の処理モードを選択するための閾値であり、S30の処理で決定される。ビットマップデータは、3種類のビットマップデータに分類される。具体的に言うと、ビットマップデータに含まれる各画素の値に基づいて決定される評価値が、図4に示される3つの範囲のいずれに属するのかに応じて、当該ビットマップデータの種類が決定される。例えば、ビットマップデータの上記の評価値が「0〜84」に属する場合には、当該ビットマップデータは、高濃度ビットマップデータである。なお、図4から明らかなように、ビットマップデータの濃度に関する値(評価値)が大きい程、閾値が小さくなるように、閾値テーブル62が設定されている。また、テキストデータの閾値が、ビットマップデータの3つの閾値のいずれよりも大きくなるように、閾値テーブル62が設定されている。なお、詳しくは後述するが、閾値が小さくなる程、第1の処理モードが選択され易い。なお、別の実施例では、種類判別部41は、CMYKで記述されたビットマップデータの種類を判別してもよい。この場合、当該ビットマップデータの評価値は、当該ビットマップデータに含まれる各画素を構成する4つの値(C値,M値,Y値,K値)の和であってもよい。
S24では、画像処理部32は、S18の処理と同様の解像度変換処理を実行する。以下では、S22において、テキストデータのみが判別された場合、ビットマップデータのみが判別された場合、及び、テキストデータとビットマップデータの両方が判別された場合、のそれぞれについて、画像処理部32が実行するS24の処理を説明する。S22において、テキストデータのみが判別された場合(元画像データ100が文字データの場合)には、S24では、画像処理部32は、全画素特定情報と、テキストデータを示す情報と、を対応づけて、ワーク領域22に格納する。S22において、ビットマップデータのみが判別された場合(元画像データ100がパターンデータの場合)には、S24では、画像処理部32は、全画素特定情報と、判別されたビットマップデータの種類を示す情報と、を対応づけて、ワーク領域22に格納する。また、例えば、S22において、テキストデータとビットマップデータの両方が判別された場合(元画像データ100が複合データの場合)、には、S24では、画像処理部32は、さらに、以下の処理を実行する。上述したように、上記の全体座標群は、元画像データ110によって表される画像の全体の領域を特定するための座標群であり、上記のビットマップ座標群は、第2の領域122を特定するための座標群である。従って、画像処理部32は、全体及びビットマップ座標群に基づいて、元画像データ110によって表される画像の全体に対するビットマップ領域122の相対的な位置関係を知ることができる。画像処理部32は、上記の相対的な位置関係に基づいて、変換済みRGB画像データ200を構成する全ての画素の中で、ビットマップ領域122に対応する画素群を特定する。ビットマップ領域122に対応する画素群を特定することができるということは、残りの画素群は、テキスト領域112に対応する画素群である。画像処理部32は、テキスト領域112に対応する画素群を特定するための情報(例えば各画素の列番号及び行番号)と、テキストデータを示す情報と、を対応づけて、ワーク領域22に格納する。さらに、画像処理部32は、ビットマップ領域122に対応する画素群を特定するための情報(例えば各画素の列番号及び行番号)と、S22で判別されたビットマップデータの種類を示す情報と、を対応づけて、ワーク領域22に格納する。
S28では、閾値決定部40(図1参照)は、1個の領域に含まれる画素群と、当該領域に対応するデータの種類と、を特定する。例えば、S24において、全画素特定情報と、テキストデータを示す情報と、がワーク領域22に格納された場合には、閾値決定部40は、それらの情報を特定することによって、S28の処理を実行する。同様に、例えば、S24において、全画素特定情報と、S22で判別されたビットマップデータの種類を示す情報と、がワーク領域22に格納された場合には、閾値決定部40は、それらの情報を特定することによって、S28の処理を実行する。即ち、これらの場合には、元画像データ100によって表わされる画像の全てが、1個の領域として扱われることになる。また、例えば、S24において、テキスト領域112及びビットマップ領域122のそれぞれの情報がワーク領域22に格納された場合には、閾値決定部40は、1個の領域(例えばテキスト領域112)に対応する画素群を特定するための情報と、当該領域に対応するデータの種類を示す情報(例えばテキストデータを示す情報)と、を特定することによって、S28の処理を実行する。なお、この場合、後で実行される2回目のS28の処理では、閾値決定部40は、残りの1個の領域(例えばビットマップ領域122)に対応する画素群を特定するための情報と、当該領域に対応するデータの種類を示す情報(例えばS22で判別されたビットマップデータの種類を示す情報)と、を特定することによって、S28の処理を実行する。
次いで、閾値決定部40は、閾値テーブル62に基づいて、S28で特定された画素群(即ち1個の領域)のための閾値を決定する(S30)。例えば、S28でテキストデータが特定された場合には、閾値決定部40は、閾値として「30」を決定する。また、例えば、S28で低濃度ビットマップデータが特定された場合には、閾値決定部40は、閾値として「20」を決定する。
次いで、画像処理部32は、ワーク領域22に格納された特性データテーブル60から、4種類の色のうち、特定の色(例えばK)に対応するn個の特性データを取得する(S32)。判断部38(図1参照)は、S32で特定されたn個の特性データの中から、最大値と最小値とを特定する。続いて、判断部38は、特定した最大値と最小値(本実施例ではゼロ)との差分(即ち、特定した最大値と等しい)と、S30で決定された閾値と、を比較する(S34)。この場合、特性データの最大値と特性データの最小値との差分が「特性データのバラツキに関する指標」の一例である。なお、別の実施例では、S32で特定されたn個の特性データの標準偏差と、S28で決定された閾値と、を比較してもよい。この場合、特性データの標準偏差が「特性データのバラツキに関する指標」の一例である。判断部38は、上記の差分が閾値よりも大きい場合に、S34でYESと判断し、S36に進み、上記の差分が閾値以下の場合に、S34でNOと判断し、S38に進む。S36では、選択部36は、第1の処理モードを選択する。また、S38では、選択部36は、第2の処理モードを選択する。S36又はS38を終えると、S40に進む。
S40では、画像処理部32は、CMYKの全ての色について、S32〜S38の処理が終了したのか否かを判断する。S40でNOの場合、S32に戻って、S32〜S38の処理が終了していない種類の色のうち、1種類の特定の色について、S32〜S38の処理を実行する。CMYKの全ての色について、S32〜S38の処理が終了すると、S40でYESと判断される。この場合、画像処理部32は、全ての領域について、S28〜S40の処理が終了したのか否かを判断する(S42)。例えば、元画像データ100がテキストデータ又はビットマップデータのみによって構成される場合には、元画像データ100が1個の領域のみを含むために、1回目のS42の処理でYESと判断される。また、例えば、元画像データ100がテキスト領域112とビットマップ領域122とを含み、1回目のS28の処理でテキスト領域112に対応する画素群が特定された場合には、1回目のS42の処理でNOと判断される。この場合、S28に戻って、ビットマップ領域122に対応する画素群が特定される。S42でYESの場合、S44に進む。
上記の説明から明らかなように、S28〜S42の処理が実行されると、元画像データ100によって表わされる画像を構成する領域毎に、当該領域に対応する画素群のCMYKのそれぞれについて、処理モードが選択される。なお、例えば、S28で1個の領域に対応する画素群が特定された場合に、CMYKの4色のそれぞれについて、S30〜S38の処理が実行される。従って、同じ領域であっても、色が異なれば、異なる処理モードが選択され得る。即ち、例えば、第1の領域112に対応する画素群のKについて、第1の処理モードが選択される場合に、同じ第1の領域112に対応する画素群のCについて、第2の処理モードが選択され得る。
S44では、色変換処理部34(図1参照)は、公知の手法を用いて、色変換処理を実行する。色変換処理部34は、変換済みRGB画像データ200を、CMYKのビットマップ形式の画像データ(以下では「CMYK画像データ」と呼ぶ)に変換する。色変換処理によって、図12に示される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)の多値データである。また、各画素内に示す座標のx座標は、各画素の列番号を示し、y座標は、各画素の行番号を示す。
続いて、ハーフトーン処理部42等(図1参照)は、CMYK画像データ210を用いて、ハーフトーン処理を実行する。ハーフトーン処理は、図13に示すS52〜S80の処理を含む。補正部43(図1参照)は、まず、CMYK画像データ210内の1個の画素を特定する(S52)。S52における画素の特定順序は、予め決められている。具体的に言うと、1回目のS52の処理では、補正部43は、CMYK画像データ210のうち、図12の最も上の行に属する複数個の画素のうち、最も左の列に属する1個の画素を特定する。2回目以降のS52の処理では、補正部43は、前回に特定された画素(以下では「前回特定画素」と呼ぶ)と同じ行に属する1個の画素であって、前回特定画素の右隣の列に属する1個の画素を特定する。なお、前回特定画素が最も右の列に属する場合には、補正部43は、前回特定画素が属する行の1つ下の行に属する複数個の画素のうち、最も左の列に属する1個の画素を特定する。
以下では、S52で特定される1個の画素のことを「注目画素」と呼ぶ。補正部43は、注目画素を構成するCMYKの4個の値の中から、1個の値(例えばK値)を特定する(S54)。以下では、S54で特定される1個の値のことを「PV(Pixel Value)」と呼ぶ。また、以下では、S54で特定される1個の値に対応する色のことを「注目色」と呼ぶ。続いて、補正部43は、S54で特定されたPVを補正する(S56)。具体的に言うと、補正部43は、注目画素より前にS58〜S76の処理が終了している処理済み画素群のうち、注目画素の近傍に位置する複数個の近傍画素について算出された複数個の誤差値を用いて、注目画素のPVを補正する。例えば、注目画素が図14の画素216である場合には、画素211〜215についてのS58〜S76の処理が終了している。従って、画素211〜215のそれぞれについては、後述のS70〜S74で、CMYKに対応する4個の誤差値が算出済みである。例えば、画素211については、Cに対応する誤差値と、Mに対応する誤差値と、Yに対応する誤差値と、Kに対応する誤差値と、が算出済みである。なお、図14では、図示の便宜上、CMYKの4色に対応する4個の誤差値を区別することなく「ΔE」で表現している。なお、以下では、例えば、Kに対応する誤差値を「ΔEk」と表現することがある。本実施例では、注目画素216の左上、上、右上、及び、左に位置する4個の画素211,212,213,215を、注目画素216の近傍画素として採用する。なお、別の実施例では、注目画素216の近傍画素として、さらに、画素211の左の画素、画素212の上の画素、画素214、画素215の左の画素等を採用してもよい。
補正部43は、注目画素216の4個の近傍画素211,212,213,215のうちの1個の近傍画素211について算出済みの4個の誤差値ΔE(i−1,j−1)の中から、現在の注目色(例えばK)に対応する1個の誤差値(例えばKに対応する誤差値ΔEk(i−1,j−1)を特定する。同様に、補正部43は、他の3個の近傍画素212,213,215のそれぞれについて、当該近傍画素について算出済みの4個の誤差値の中から、現在の注目色に対応する1個の誤差値を特定する。この結果、現在の注目色に対応する4個の誤差値が特定される。次いで、補正部43は、特定された4個の誤差値を用いて、図14の画素216内に示される数式に従って、注目画素216のPVを補正することによって、補正済みの値PV’を算出する。なお、数式内のs1,s2,s3,s4は、注目画素216と各近傍画素との間の位置関係に応じて、予め決められている係数である。例えば、注目画素216のPV(i,j)がK値(K(i,j))である場合には、補正部43は、4個の近傍画素211,212,213,215のそれぞれについて、当該近傍画素の誤差値ΔEk(例えば近傍画素211のΔEk(i−1,j−1))と、当該近傍画素に対応する係数(例えば近傍画素211に対応するs1)と、を乗算することによって、乗算値を算出する。次いで、補正部43は、注目画素216のK値(i,j)(即ちPV(i,j))と、4個の近傍画素211,212,213,215について算出された4個の乗算値と、の和を算出することによって、補正済みの値K’(i,j)(即ちPV’(i,j))を算出する。
続いて、決定部44(図1参照)は、S56で得られた補正済みの値PV’(例えばK’(i,j))が、予め決められているドット出力用閾値Th(例えば128)よりも大きいのか否かを判断する(S58)。ここでYESの場合、決定部44は、判断対象の補正済みの値PV’に対応する注目色のドットを印刷媒体に形成することを決定する。(S60)。ここで決定される値は、補正済みの値PV’に対応する注目色のドット出力値「1」である。例えば、注目画素216の補正済みの値PV’がK’(i,j)である場合には、S60では、決定部44は、注目画素と同じ位置の新たな画素の値として「K=1」を決定する。このような情報を含む二値データがプリンタ50に供給されると、注目画素216に対応する印刷媒体上の位置に向けて、ブラックのインク滴が吐出される。即ち、注目画素216に対応する印刷媒体上の位置にブラックのドットが形成される。
次いで、ハーフトーン処理部42は、注目画素(例えば画素216)の注目色(例えばK)に対応する処理モードが第1の処理モードであるのか否かを判断する(S64)。上述したように、図9のS19,S36,S38では、1個の領域毎に、当該領域に含まれる画素群を特定するための情報と、色を示す情報と、処理モードを示す情報と、が対応づけて格納される。ハーフトーン処理部42は、これらの情報に基づいて、注目画素の注目色に対応する処理モードを特定することができ、特定した処理モードが第1の処理モードであるのか否かを判断する。S64でYESの場合にS66に進み、S64でNOの場合にS72に進む。
S66では、ハーフトーン処理部42は、注目画素(例えば画素216)に対応する印刷媒体上の位置に、PV’に対応する注目色(例えばK)のドットを形成するノズル(以下では「注目ノズル」と呼ぶ)のノズル番号(以下では「注目ノズル番号」と呼ぶ)を特定する。なお、例えば、PV’に対応する注目色がKである場合には、注目ノズルとしてK用ノズルが特定される。以下では、注目ノズルとしてK用ノズルが特定されるべき場合には、「注目K用ノズル」と呼ぶ。注目K用ノズル番号を特定するための手法について、次に詳しく説明する。
S64でYESと判断される場合(S66の処理が実行される場合)、即ち、S64で第1の処理モードと判断される場合とは、上記のオプション指定操作において「高精細」、「きれい」が指定されていない場合(図9のS12,S14でNOの場合)である。従って、上述したように、プリンタ50において第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用ノズル番号テーブルが、予め登録されている。ハーフトーン処理部42は、S66では、CMYK画像データ210内での注目画素の行番号と、上記のK用ノズル番号テーブルと、に基づいて、注目K用ノズル番号を特定する。
プリンタドライバ24には、3種類の有彩色CMYのそれぞれについて、K用ノズル番号テーブルと同様のノズル番号テーブルが予め登録されている。S54で特定されるPVに対応する注目色が3種類の有彩色CMYのいずれかである場合には、ハーフトーン処理部42は、上記のKの場合と同様に、注目ノズル番号を特定する。例えば、S54で特定されるPVに対応する注目色がCである場合には、ハーフトーン処理部42は、C用ノズル番号テーブルを用いて、注目C用ノズル番号を特定する。
続いて、補正用データ算出部39(図1参照)は、補正用データを算出する(S68)。補正用データ算出部39は、図9のS20においてワーク領域22に格納された特性データテーブル60から、S66で特定された注目ノズル番号に対応する特性データ(以下では「注目特性データ」と呼ぶ)を取得する。次いで、補正用データ算出部39は、取得された注目特性データに255を加算することによって、補正用データ(以下では「注目補正用データ」と呼ぶ)を算出する。次いで、誤差値算出部45(図1参照)は、S56で得られた補正済みの値PV’から、S68で得られた注目補正用データを減算することによって、誤差値ΔEを算出する(S70)。このようにして誤差値を算出するための数式が、図15の画素216内に示されている。即ち、注目画素が図15の画素216であり、S56で得られるPV’(i,j)が閾値Thより大きく(S58でYES)、第1の処理モードに対応する(S64でYES)場合には、誤差値算出部45は、PV’(i,j)から注目補正用データを減算することによって、画素216に対応する誤差値ΔE(i,j)を算出する。例えば、S54で特定されるPVに対応する注目色がKである場合には、画素216のKに対応する誤差値が算出される。同様に、S54で特定されるPVに対応する注目色が他の色である場合には、画素216のうちの上記の他の色に対応する誤差値が算出される。
一方において、S72では、誤差値算出部45は、S56で得られた補正済みの値PV’から、予め決められた固定値(本実施例では「255」)を減算することによって、誤差値ΔEを算出する。例えば、注目画素が図15の画素216であり、S56で得られるPV’(i,j)が閾値Thより大きく(S58でYES)、第2の処理モードに対応する(S64でNO)場合には、誤差値算出部45は、PV’(i,j)から固定値「255」を減算することによって、画素216に対応する誤差値ΔE(i,j)を算出する。
S58でNOの場合、決定部44は、判断対象の補正済みの値PV’に対応する注目色のドットを印刷媒体に形成しないことを決定する。(S62)。ここで決定される値は、補正済みの値PV’に対応する注目色のドット出力値「0」である。例えば、注目画素216の補正済みの値PV’がK’(i,j)である場合には、S60では、決定部44は、注目画素と同じ位置の新たな画素の値として「K=0」を決定する。このような情報を含む二値データがプリンタ50に供給されると、注目画素216に対応する印刷媒体上の位置に向けて、ブラックのインク滴が吐出されない。即ち、注目画素216に対応する印刷媒体上の位置にブラックのドットが形成されない。
次いで、誤差値算出部45は、S56で得られた補正済みの値PV’を誤差値として特定する(S74)。このようにして誤差値を算出するための式が、図15の画素217内に示されている。即ち、注目画素が図15の画素217であり、S56において得られるPV’(i+1,j)が閾値Thより小さい場合(S58でNOの場合)には、誤差値算出部45は、図15の画素217内の式を用いて、画素217に対応する誤差値ΔE(i+1,j)を特定する。即ち、誤差値算出部45は、注目補正用データ及び上記の固定値「255」を用いずに、補正済みの画素値PV’を用いて、誤差値を算出する。
なお、S54においてPVとしてC値、M値、Y値が特定された場合も、S54でK値が特定された場合と同様に処理が実行される。
S70,S72,又はS74が終了すると、誤差値算出部45は、注目画素の注目色に対応する誤差値として、S70,S72,又はS74で特定された誤差値(例えばΔE(i,j))をワーク領域22に記憶する(S76)。ここで記憶された誤差値は、後に実行されるS56の処理で利用される。例えば、S76で画素216のKに対応する誤差値ΔE(i,j)が記憶された場合には、当該誤差値ΔE(i,j)は、S76で画素217のK値に対応するK’(i,j)を算出する際に利用される。
上述したように、ドット出力値=1の場合のS72では、注目特性データを用いずに、ΔE=PV’−固定値「255」という数式によって、誤差値ΔEを算出する。ここで固定値「255」を利用するということは、4n個のノズルが形成する4n個のドットのそれぞれの濃度を「255」と仮定していることを意味する。上記の数式では、実際に表現されるべき注目画素の値PV’と、仮定されたドットの濃度「255」と、の差分が、誤差値ΔEとして算出される。この差分を注目画素の周囲の近傍画素に拡散するために、上記のS56の処理が実行される。同様に、ドット出力値=0の場合のS74では、ΔE=PV’という数式によって、誤差値ΔEを算出する。即ち、実際に表現されるべき注目画素の値PV’と、ドットが形成されない場合の濃度「0」と、の差分が、誤差値ΔEとして算出される。この差分が、上記のS56の処理で近傍画素に拡散される。
なお、ドット出力値=1の場合のS70では、注目特性データを用いて、ΔE=PV’−注目補正用データ(255+注目特性データ)という数式によって、誤差値ΔEを算出する。ここで、最小の吐出量のノズルに対応する特性データ(以下では「最小特性データ」と呼ぶ)は「0」である。従って、注目特性データが最小特性データである場合には、ΔE=PV’−255という数式になる。これは、最小の吐出量のノズルが形成するドットの濃度を「255」と仮定していることを意味する。即ち、注目補正用データとして「255+注目特性データ」を利用するということは、注目ノズルが形成するドットの濃度を「255+注目特性データ」と仮定していることを意味する。S70では、実際に表現されるべき注目画素の値PV’と、仮定されたドットの濃度「255+注目特性データ」と、の差分が、誤差値ΔEとして算出される。この差分が、上記のS56の処理で近傍画素に拡散される。
続いて、ハーフトーン処理部42は、注目画素を構成するCMYKの4個の画素値(C値、M値、Y値、K値)の全てについて、S54〜S76の処理を実行したのか否かを判断する(S78)。ここでNOの場合、ハーフトーン処理部42は、S54に戻って、注目画素を構成するCMYKの4個の値の中から、S54〜S76の処理が実行されていない値を特定する。S78でYESの場合には、ハーフトーン処理部42は、CMYK画像データ210を構成する全ての画素について、S52〜S78の処理が終了したのか否かを判断する(S80)。ここでNOの場合、ハーフトーン処理部42は、S52に戻って、現在の注目画素の次の画素(基本的には右隣りの画素)を、新たな注目画素として特定する。S80でYESの場合には、ハーフトーン処理が終了する。
上記の説明から明らかなように、ハーフトーン処理では、CMYK画像データ210を構成する1個の画素から、C=0又は1と、M=0又は1と、Y=0又は1と、K=0又は1と、によって構成される新たな1個の画素が生成される。従って、二値データの画素数は、CMYK画像データ210の画素数に等しい。供給部48(図1参照)は、二値データと、第1〜第3の印刷モードのいずれが選択されたのかを示すモード情報と、をプリンタ50に送信する。この結果、プリンタ50の印刷実行部70は、二値データに応じて、印刷処理を実行する。即ち、印刷実行部70は、二値データに含まれるK=1を示す画素に対応する印刷媒体上の位置にブラックのドットが形成されるように、当該ドットを形成するK用ノズルに対応する個別電極に、駆動信号を供給する。同様に、印刷実行部70は、二値データに従って、他の色のドットが形成されるように、駆動信号を供給する。この結果、図9のS10で取得される元画像データ100によって表わされる画像(即ち、S18又はS24で得られる変換済みRGB画像データ200によって表わされる画像、S44で得られるCMYK画像データ210によって表わされる画像、二値データによって表わされる画像)が、印刷媒体に形成される。
本実施例について詳しく説明した。本実施例では、ユーザによって、「きれい」が指定された場合(図9のS14でYES)、制御部30は、変換済みRGB画像データ200内の全ての画素群に対して、第2の処理モードを選択する(図9のS19)。上述したように、多走査印刷(即ちシングリング)の印刷結果は、単走査印刷の印刷結果よりも各ノズルの吐出量の差が現れ難い。また、通常、プリンタ50が第3の印刷モード(シングリングに対応する印刷モード)で動作する場合、プリンタ50が第1の印刷モードで動作する場合と比べて、印刷時間が長くなる。このために、本実施例では、シングリングのための二値データが生成される場合、制御部30は、第2の処理モードを選択することによって、処理負荷を低減させる。この結果、制御部30は、二値データを高速で生成することができる。即ち、制御部30は、吐出量のバラツキに起因する画質の低下が目立ち難く、かつ、印刷時間が長くなり得る状況では、第2の処理モードを適切に選択することができる。
本実施例では、ユーザによって、「高精細」(即ち第2の印刷解像度)が指定された場合(図9のS12でYES)、制御部30は、変換済みRGB画像データ200内の全ての画素群に対して、第2の処理モードを選択する(図9のS19)。通常、第1の印刷解像度よりも高解像度である第2の印刷解像度で印刷される場合には、第1の印刷解像度で印刷される場合と比べて、吐出量のバラツキに起因する画質の低下が目立ち難い。また、通常、第2の印刷解像度で印刷される場合には、第1の印刷解像度で印刷される場合と比べて、印刷時間が長くなる。このために、本実施例では、第2の印刷解像度が選択された場合、制御部30は、第2の処理モードを選択することによって、二値データを高速で生成することができる。この場合も、上記と同様に、制御部30は、吐出量のバラツキに起因する画質の低下が目立ち難く、かつ、印刷時間が長くなり得る状況では、第2の処理モードを適切に選択することができる。
ユーザが高画質の画像の印刷を望むのか否かについては、通常、印刷対象のデータに含まれるデータの種類に依存する。ビットマップデータ120(例えば写真等のデータ)については、高画質の画像が印刷されることをユーザが望む可能性が高い。これに対して、テキストデータ110(文字等のデータ)については、通常、高画質の画像が印刷されることをユーザが望む可能性が低い。本実施例では、元画像データ100を構成するデータの種類(テキストデータかビットマップデータ)に応じて、制御部30によって決定される閾値が異なる(図9のS30)。データの種類がビットマップデータである場合に決定される閾値は、データの種類がテキストデータである場合に決定される閾値と比べて、小さい。これにより、図9のS34において、ビットマップデータについては、第1の処理モードが選択され易く、テキストデータについては、第2の処理モードが選択され易くなる。即ち、制御部30は、データの種類に応じて、適切な処理を選択することができる。
また、本実施例では、ビットマップデータは、低濃度〜高濃度ビットマップデータに分類される。ビットマップデータの種類は、濃度に関する値(評価値)によって分類される。評価値が小さい程、低輝度、即ち、濃度が濃い画像が印刷される。通常、画像の濃度が濃くなるほど、吐出量のバラツキが目立ち易い。本実施例では、制御部30は、評価値が小さい程、閾値が小さくなるように、閾値を決定する(図9のS30)。また、評価値が大きい程、高輝度、即ち、低濃度の画像が印刷される。この場合、評価値が小さい場合と比較して、閾値が大きくなるように決定されている。この結果、評価値が小さい程、第1の処理モードが選択され易くなる。即ち、制御部30は、吐出量のバラツキが目立ち易い状況では、第1の処理モードを適切に選択することができる。
また、本実施例では、制御部30は、吐出量のバラツキが大きいノズルに対応する色については、第1の処理モードを選択し(図9のS36)、吐出量のバラツキが小さいノズルに対応する色については、第2の処理モードを選択する(図9のS38)。吐出量のバラツキが比較的に大きい場合には、吐出量のバラツキに起因する画質の低下の程度が大きく、吐出量のバラツキが比較的に小さい場合には、吐出量のバラツキに起因する画質の低下の程度が小さい。制御部30は、吐出量のバラツキが比較的に大きいために画質の低下の程度が大きい状況では、第1の処理モードを適切に選択することができる。また、選択部は、吐出量のバラツキが比較的に小さいために画質の低下の程度が小さい状況では、印刷時間を短縮し得る第2の処理モードを適切に選択することができる。また、本実施例では、制御部30は、4種類の色のそれぞれについて、処理モードを選択する。即ち、制御部30は、吐出量のバラツキが大きいノズル群に対応する色については、第1の処理モードを選択し、吐出量のバラツキが小さいノズル群に対応する色については、第2の処理モードを選択することができる。この結果、吐出量のバラツキが大きいノズル群に対応する色について、制御部30は、第1の処理モードを実行することによって、吐出量のバラツキを補償する。これに対して、吐出量のバラツキが小さいノズル群に対応する色について、制御部30は、第2の処理モードを実行することによって、処理時間を短縮することができる。
また、本実施例では、1個の領域内の画素のRGBそれぞれの値のうち最小値の平均値(即ち上記の評価値)によって、ビットマップデータの種類が区別される。上記の評価値が最も小さい範囲に対応するビットマップデータの場合の閾値が最も小さく、上記の評価値の範囲が大きくなるのに従って、上記の閾値は大きくなる。上述したように、上記の評価値が小さくなるほど、濃度が濃い画像が印刷される。画像の濃度が濃くなるほど、吐出量のバラツキが現れ易い。本実施例では、吐出量のバラツキが現れ易いビットマップデータに対して、上記の閾値を小さくすることによって、第1の処理モードが選択され易くなる。これに対して、吐出量のバラツキが現れ難いビットマップデータに対して、上記の閾値を大きくすることによって、第2の処理モードが選択され易くなる。即ち、制御部30は、吐出量のバラツキが目立ち易い状況では、第1の処理モードを適切に選択することができる。
なお、本実施例の二値データ生成処理は、以下のように表現することができる。即ち、PC10の画像処理部32は、色変換処理部34とハーフトーン処理部42とを備える。色変換処理部34は、第1種の色空間(例えばRGB)で表現される特定の画像データ内(例えば変換済みRGB画像データ200)の各画素に対して、色変換処理を実行することによって、第2種の色空間(例えばCMYK)で表現される対象の画像データ(例えばCMYK画像データ210)を生成する。ハーフトーン処理部42は、上記の対象の画像データに対して、ハーフトーン処理を実行することによって、処理済み画像データ(例えば二値データ)を生成する。ハーフトーン処理部42は、補正部43と決定部44と誤差値算出部45とを備える。補正部43は、上記の対象の画像データ内の注目画素の値(例えばPV)を、注目画素の近傍の複数個の近傍画素に対応する複数個の誤差値を用いて補正することによって、補正済みの値(例えばPV’)を生成する。決定部44は、上記の補正済みの値(例えばPV’)と、注目画素に対応するドット出力用閾値(例えばTh)と、に基づいて、注目画素に対応する印刷媒体上の位置にドットを形成するのか否かを決定する。誤差値算出部45は、注目画素についてドットを形成するのか否かに関する決定に応じて、注目画素に対応する誤差値を算出する。誤差値算出部45は、注目画素についてドットを形成することが決定される場合に、補正済みの値(例えばPV’)と、補正用データ(例えば255+注目特性データ)と、を用いて、注目画素に対応する誤差値を算出する上記の特定の処理を実行する。
本実施例の各要素と本発明の各要素との対応関係を記載しておく。制御部30を含むPC10が「制御装置」の一例である。変換済みRGB画像データ200、CMYK画像データ210、図13で生成される二値データが、それぞれ、「特定の画像データ」、「対象の画像データ」、「処理済み画像データ」の一例である。また、色変換処理とハーフトーン処理とが「画像処理」の一例であり、図13のS60でドット出力=1の場合に実行される、S70の誤差値算出処理が「補正用データを用いた特定の処理」の一例であり、S72,S74の誤差値算出処理が「補正用データを用いない特定の処理」の一例である。
(第2実施例)
第1実施例と異なる点を説明する。本実施例では、PC10の制御部30が実行する画像データ変換処理の内容が第1実施例と異なる。図16を参照しながら、本実施例の画像データ変換処理の内容について説明する。S10〜S19は、第1実施例と同様である。S20において、画像処理部32は、特性データテーブル60をPC50から取得するが、閾値テーブル62を取得しない。S22において、種類判別部41は、元画像データ100が上記のパターンデータ,複合データである場合、ビットマップデータが、低濃度〜高濃度ビットマップデータのいずれであるのかを判別しない。S22において、ビットマップデータのみが判別された場合(元画像データ100がパターンデータの場合)には、S24では、画像処理部32は、全画素特定情報と、ビットマップデータを示す情報と、を対応づけて、ワーク領域22に格納する。また、S22において、テキストデータと、ビットマップデータと、が判別された場合には、画像処理部32は、第1の領域112に対応する画素群を特定するための情報とテキストデータを示す情報とを対応づけて、ワーク領域22に格納するとともに、第2の領域122に対応する画素群を特定するための情報とビットマップデータを示す情報とを対応づけて、ワーク領域22に格納する。
S28は、第1実施例と同様である。選択部36は、S30〜S34を実行しない。選択部36は、S28において、画素群(即ち1個の領域)と、ビットマップを示す情報と、が特定されたのか否かを判断する(S100)。ここでYESの場合にS36に進み、S100でNOの場合にS38に進む。即ち、本実施例では、選択部36は、吐出量のバラツキに関する指標(第1実施例では、吐出量の最大値と最小値との差分)と、閾値と、を比較することによって、処理モードを選択しない。本実施例では、選択部36は、S28で特定されたデータの種類に応じて、処理モードを選択する。即ち、選択部36は、S28で特定された画素群が、ビットマップデータに対応する場合(S100でYESの場合)に第1の処理モードを選択し(S36)、テキストデータに対応する場合(S100でNOの場合)に第2の処理モードを選択する(S38)。本実施例では、第1実施例と異なり、4種類の色のそれぞれについて、処理モードが選択されない。S36又はS38を終えると、S42に進む。S42〜S44は、第1実施例と同様である。なお、図16の画像データ変換処理が終了すると、ハーフトーン処理部42等は、ハーフトーン処理(図13参照)を実行する。但し、本実施例では、図13のS64において、ハーフトーン処理部42は、注目画素に対応する処理モードが第1の処理モードであるのか否かを判断する。その他の処理は、図13と同様である。
第2実施例について詳しく説明した。本実施例においても、第1実施例と同様に、制御部30は、状況に応じて、適切な処理モードを選択することができる。
(第3実施例)
第1実施例と異なる点を説明する。本実施例では、PC10の制御部30は、画像データ変換処理(図9)を終えると、補正処理を実行する。補正処理は、図17のS110〜S126の処理を含む。補正処理では、まず、色変換処理部34(図1参照)は、CMYK画像データ210内の1個の画素(即ち注目画素)を特定する(S110)。S110における画素の特定順序は、図13のS52と同様である。次いで、色変換処理部34は、注目画素を構成するCMYKの4個の値の中から、1個の値(例えばK値)を特定する(S112)。色変換処理部34は、注目画素の注目色(例えばK)に対応する処理モードが第1の処理モードであるのか否かを判断する(S116)。S116における判断処理は、図13のS64と同様である。S116でNOの場合、S118〜S122をスキップしてS124に進む。一方において、S116でYESの場合、色変換処理部34は、図13のS66と同様の手法を用いて、注目ノズル番号を特定するS118の処理を実行する。次いで、補正用データ算出部39は、(255+最小の特性データ)/(255+注目特性データ)を計算することによって、注目補正用データCD(i,j)を算出する。例えばj行目の各注目画素のための注目補正用データCD(i,j)は、同じ値である。なお、上記の「最小の特性データ」は、S114で特定されたPVに対応する注目色のn個のノズルに対応する特性データのうち、最小の吐出量を示す特性データである。上述したように、本実施例では、「最小の特性データ」はゼロである。S120を終えると、S122に進む。S122では、色変換処理部34は、PV(i,j)に注目補正用データCD(i,j)を乗算することによって、補正済みの値PV’’(i,j)を算出する。S124及びS126は、図13のS78及びS80と同様である。
色変換処理部34は、注目画素216を構成する4個の値CMYKのそれぞれについて、補正済みの値PV’’(i,j)を算出する。この結果、注目画素216に基づいて、CMYKの4色に対応する4個の補正済みの値を有する補正済みの画素が生成される。色変換処理部34は、画素216以外の各画素についても、同様に、補正済みの画素を生成する。これにより、図18に示す補正済み画像データ250が得られる。上述したように、色変換処理部34は、CMYK色空間内で上記の補正処理を実行することによって、CMYK画像データ210から補正済み画像データ250を生成する。
上述したように、S110において、色変換処理部34が、注目画素の注目色に対応する処理モードが第1の処理モードであると判断される場合に、注目画素の注目色の値PVが補正される。図18に示す補正済み画像データ250は、上の行の画素の4種類の全ての色に対応する処理モードが第2の処理モードであり、下の行の画素の4種類の全ての色に対応する処理モードが第1の処理モードである場合の例である。
補正処理が終了すると、ハーフトーン処理部42は、補正済み画像データ250に対して、ハーフトーン処理を実行する。本実施例のハーフトーン処理は、第1実施例における図13のハーフトーン処理(S52〜S80)と以下の点で相違する。S52では、補正済み画像データ250内の注目画素が特定され、S54では、当該注目画素を構成する4個の値の中から1個の値PV’’(上記の補正済みの値)が特定される。S56では、S54で特定されたPV’’に誤差値(即ちΣs・ΔE)を加算することによって、PV’が算出される。図13に示すS64〜S70の処理が実行されない。即ち、ハーフトーン処理部42は、S60を実行すると、次いで、S72を実行する。その他の処理は、第1実施例の場合と同様である。
本実施例の二値データ生成処理(画像データ変換処理、補正処理、及びハーフトーン処理を含む)は、以下のように表現することができる。即ち、画像処理部32は、色変換処理部34とハーフトーン処理部42とを備える。色変換処理部34は、第1種の色空間(例えばRGB)で表現される上記の対象の画像データ(例えば変換済みRGB画像データ200)内の各画素に対して、色変換処理と補正処理とを含む特定の処理を実行することによって、第2種の色空間(例えばCMYK)で表現される色変換済み画像データ(例えば補正済み画像データ250)を生成する。ハーフトーン処理部42は、色変換済み画像データに対してハーフトーン処理を実行することによって、処理済み画像データ(例えば二値データ)を生成する。色変換処理部34は、上記の対象の画像データ(例えば変換済みRGB画像データ200)内の注目画素に対して、色変換処理を実行することによって、第2種の色空間で表現される色変換済みの画素(例えばPV)を生成し、第2種の色空間内で、色変換済みの画素に対して、補正用データ(例えばCD)を用いて、補正処理を実行することによって、補正済みの画素(例えばPV’’)を生成する。
第3実施例について詳しく説明した。本実施例においても、第1実施例と同様の効果を奏することができる。本実施例の各要素と本発明の各要素との対応関係を記載しておく。図16のS24で生成される変換済みRGB画像データ200が、「特定の画像データ」及び「対象の画像データ」の一例である。また、色変換処理と補正処理とハーフトーン処理とが「画像処理」の一例であり、色変換処理と補正処理とが「特定の処理」の一例である。
(変形例)
(1)図10の元画像データ100は、1個のビットマップデータ120のみを含む。但し、元画像データ100は、複数個のビットマップデータを含んでもよい。この場合、図9のS22では、複数個のビットマップデータに対応する複数個の領域のそれぞれについて、当該領域に対応するビットマップデータの種類が判別されてもよい。この場合には、上記の複数個の領域のそれぞれが「部分領域」の一例であり、上記の複数個のビットマップデータのそれぞれが「部分データ」の一例である。
(2)上記の実施例では、元画像データ100は、テキストデータとビットマップデータを含み得る。但し、元画像データ100は、他に四角形等を描画するための描画コマンドで表わされる描画データを含んでもよい。この場合、制御部30は、描画データをテキストデータと同様に処理してもよい。
(3)図9において、S12〜S16の全部を省略してもよいし、S12〜S16のうちの1つ又は2つのステップを省略してもよい。また、図9において、S12、S14、及び、S16のいずれでもNOの場合に、S20,S22,S28〜S42の処理を省略し、第1処理モードが選択されるようにしてもよい。なお、この場合に、S12、S14、及び、S16のうちの1つ又は2つのステップを省略してもよい。例えば、「きれい」が指定された場合に、必ず、第2の処理モードが選択され、「きれい」が指定されなかった場合に、必ず、第1の処理モードが選択されるようにしてもよい。同様に、例えば、「高精細」が指定されなかった場合に、必ず、第1の処理モードが選択され、「高精細」(又は「はやい」)が指定された場合に、必ず、第2の処理モードが選択されるようにしてもよい。
(4)上記の実施例では、PC10の制御部30が画像処理部32と供給部48とを備えているが、これに代えて、プリンタ50が画像処理部32と供給部48とを備えていてもよい。この場合には、プリンタが「制御装置」の一例である。
(5)上記した実施例では、PC10は、ユーザからの印刷指示があった後に、特性データテーブル60をプリンタ50から取得する。しかしながら、PC10は、プリンタドライバ24がPC10にインストールされたタイミングで、特性データテーブル60をプリンタ50から取得し、特性データテーブル60を保持しておいてもよい。また、PC10は、図9のS32の処理、図13のS68を実行する毎に、必要な特性データをプリンタ50から取得してもよい。
(6)上記した実施例では、上記の第2の印刷モードに対応する第2の印刷解像度は、第1の印刷モードに対応する第1の印刷解像度の2倍である。しかしながら、第2の印刷解像度は、第1の印刷解像度の3倍以上であってもよい。例えば、第2の印刷解像度が第1の印刷解像度の3倍である場合には、1回目の主走査によって形成された隣接する2本のラスタの間に、2回目の主走査によって1本のラスタが形成され、さらに、上記の隣接する2本のラスタの間に、3回目の主走査によって1本のラスタが形成される。
(7)上記した実施例では、ハーフトーン処理部42は、ドット出力=1と、ドット出力=0と、を示す二値データを生成する。しかしながら、ハーフトーン処理部42は、三値以上のデータを生成してもよい。例えば、ハーフトーン処理部42は、大ドットに対応する値「3」と、中ドットに対応する値「2」と、小ドットに対応する値「1」と、ドット無に対応する「0」と、を示す四値データを生成してもよい。この場合、ハーフトーン処理部42は、図9のS34で利用する閾値として、大ドットと中ドットとを区分するための閾値Th1(例えば191)と、中ドットと小ドットとを区分するための閾値Th2(例えば127)と、小ドットとドット無とを区分するための閾値Th3(例えば63)と、を利用してもよい。この例の場合、ハーフトーン処理部42は、形成されるべきドットサイズに応じて、図13のS68で算出される注目補正用データを変えてもよい。例えば、ハーフトーン処理部42は、中ドットが形成される場合には、(255+注目特性データ)×(中ドットで表現されるべき濃度)/(大ドットで表現されるべき濃度(例えば255))を注目補正用データとして特定し、小ドットが形成される場合には、(255+注目特性データ)×(小ドットで表現されるべき濃度)/(大ドットで表現されるべき濃度(例えば255))を注目補正用データとして特定してもよい。
(8)上記した実施例では、図13のS76において、注目画素と、S70〜S74で算出された誤差値と、が対応付けて記憶される。図13のS56では、補正部43は、S76で記憶された誤差値(注目画素の近傍の画素に対応する誤差値)を収集することによってPV’を算出する。この構成に代えて、補正部43は、S76において、注目画素の近傍の未処理の各画素に、図13のS70〜S74で算出された誤差値を割り当ててもよい。例えば、図14の画素216のKに対応する誤差値ΔEk(i,j)が算出された場合に、補正部43は、S76において、未処理の画素217のK値であるK(i+1,j)と、誤差値ΔEkと係数sとを乗算した値と、の和を算出することによって、画素217の新たなK値を算出してもよい。この構成を採用する場合、図13のS54で特定されるPVがPV’に等しく、図13のS56の処理が実行されない。
(9)上記の第3実施例では、ハーフトーン処理部42は、誤差拡散法を用いて、ハーフトーン処理を実行しているが、これに代えて、ディザ法を用いて、ハーフトーン処理を実行してもよい。
(10)上記の実施例では、シングリングは、2回の主走査によって2個のノズルが1本のラスタを形成するが、これに代えて、2回の主走査によって1個のノズルが1本のラスタを形成してもよい。また、3回以上の主走査によって3個以上のノズルで1本のラスタを形成してもよい。
(11)図3の特性データテーブル60では、CMYKのそれぞれの色について、最小の吐出量のノズルに対応する特性データがゼロに設定される。しかしながら、例えば、所定の基準の吐出量のノズルに対応する特性データがゼロに設定されてもよい。この場合、図3の特性データテーブル60では、マイナスの値の特性データが存在し得る。
(12)上記の第1実施例では、図13のS68で注目補正用データ(255+注目特性データ)を算出するために、「255」という数値を採用しているが、「255」以外の数値を用いてもよい。また、上記の第2実施例でも、注目補正用データを算出する際に、(255+最小の特性データ)/(255+注目特性データ)を採用しているが、「255」以外の数値を用いてもよい。
(13)上記した実施例では、補正用データ算出部39は、注目ノズルの注目特性データを用いて、補正用データを算出している。しかしながら、補正用データ算出部39は、注目ノズルの注目特性データと、特定ノズルの特性データと、を用いて、補正用データを算出してもよい。上記の特定ノズルは、注目ノズルが形成するドットを含むラスタ(以下では「注目ラスタ」と呼ぶ)に隣接するラスタを形成するノズルである。例えば、図5(第1の印刷モード)において、注目K用ノズルがノズルNk4である場合(注目ラスタがR4である場合)、上記の特定ノズルは、ラスタR2,R3,R5〜R7を形成するノズルNk2,Nk3,Nk5〜Nk7であってもよい。この場合、図13のS66において、ハーフトーン処理部42は、注目ノズル番号と上記の特定ノズルのノズル番号(以下では「特定ノズル番号」と呼ぶ)とを取得してもよい。図13のS68において、注目補正用データを算出する場合には、ハーフトーン処理部42は、特性データテーブル60から、注目ノズル番号に対応する注目特性データのみならず、複数個の特定ノズル番号のそれぞれについて、当該特定ノズル番号に対応する特性データを取得してもよい。次いで、補正用データ算出部39は、上記した実施例において注目特性データを特定する手法と同様に、複数個の特定ノズルのそれぞれについて、特性データを特定してもよい。続いて、補正用データ算出部39は、注目ノズルに対応する注目特性データと、複数個の特定ノズルに対応する複数個の特性データと、の平均値に、255を加算することによって、注目補正用データを算出してもよい。
(14)図3の特性データテーブル60において、吐出量が最小であるノズルに対応する特性データを255に設定してもよい。即ち、特性データは、図3に示される値に255を加算することによって得られる値でもよい。この場合、図13のS68で注目特性データ(例えば255)を取得することは、注目補正データを取得することに等しい。即ち、本変形例では、「注目特性データ」と「補正用データ」とが等しい。本変形例も、「補正用データは、注目特性データを用いて得られるデータである」という構成に含まれる。
(15)本明細書で開示される技術は、プリンタ以外に、基板のパターンを形成するためのパターニング装置等にも利用することができる。
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。