A.第1実施例
A−1.印刷システム1000の構成
図1は、印刷システムの構成を示すブロック図である。印刷システム1000は、印刷装置のための制御装置としての端末装置100と、印刷装置としてのプリンタ200と、を備えている。端末装置100とプリンタ200とは、LAN(Local Area Networkの略称)やUSBケーブルなどによって、通信可能に接続されている。
プリンタ200は、プリンタ200のコントローラとしてのCPU210と、DRAMなどの揮発性記憶装置220と、フラッシュメモリやハードディスクドライブなどの不揮発性記憶装置230と、ユーザインタフェース画面(以下、UI画面とも呼ぶ)を表示するための液晶ディスプレイなどの表示部240と、ユーザの操作を取得するためのタッチパネルやボタンなどの操作部250と、外部機器と通信を行う通信部270と、印刷機構290と、を備えている。例えば、通信部270は、LANなどのネットワークに接続するためのインタフェースや、外部装置と接続するためのUSBインタフェースを含んでいる。
印刷機構290は、色材として複数種類のインクを用いて画像の印刷を実行するインクジェット方式の印刷機構である。複数種類のインクは、本実施例では、シアン(C)、マゼンタ(M)、イエロー(Y)、ブラック(K)の4種類のインクである。変形例としては、C、M、Yの3種類のインクだけが用いられても良く、C、M、Y、Kに加えて、別の1種類以上のインク(例えば、ライトシアン(LC)、ライトマゼンタ(LM)など)が用いられても良い。また、印刷機構290は、他の方式の印刷機構でも良く、例えば、色材として複数種類のトナーを用いて画像を印刷するレーザ方式の印刷機構であっても良い。
複数種類のインクは、インクごとに異なるインクカートリッジに収容されており、該インクカートリッジから印刷機構290に供給される(図示省略)。印刷によって、特定種類のインクが消費されて、インクカートリッジ内のインクの残量が基準以下になると、さらに、該特定種類のインクを用いて印刷を行うためには、インクカートリッジの交換等により、該特定種類のインクを補充する必要がある。
印刷機構290は、複数種類のインクに対応する複数個のインクカートリッジに収容されたインクの残量をインクごとにそれぞれ実測するインクセンサ295を備えている。図2は、インクセンサ295の一例を示す図である。図2には、Cインク用のセンサ295Cが代表で示されている。CインクIkCを収容するインクカートリッジ10Cは、プリンタ200に装着された状態で、センサ295Cと対向する測面11Cが、光を透過する材料で形成されている。センサ295Cは、n個の素子ユニット29Cを備えている。素子ユニットの個数nは、2以上の整数であり、例えば、2〜10のいずれかである。
n個の素子ユニット29Cは、それぞれ、図示しない発光素子と受光素子とを含んでいる。n個の素子ユニット29Cは、インクカートリッジ10Cの測面11Cと対向する位置に、インクカートリッジ10Cの高さ方向に沿って、間隔を置いて並んでいる。各素子ユニット29Cは、CPU210の制御に従って、発光素子から測面11Cに向かって光を照射し、受光素子によって該光の反射光を受光する。素子ユニット29Cは、受光した光の強度をCPU210に出力する。光が照射された位置にCインクIkCが存在する場合には、存在しない場合と比較して、反射光の強度が大きくなる。このため、CPU210は、n個の素子ユニット29Cからのn個の出力に基づいて、(n+1)段階でCインクの残量を実測することができる。
例えば、図2の例では、素子ユニット29Cの個数は5個であるので、レベル0〜5の6段階でインクの残量が実測される。Cインクの液面の高さが破線L1より低い場合には、インクの残量は、Cインクの残量はレベル0であると測定される。Cインクの液面の高さが破線Lm以上であり、かつ、破線L(m+1)より低い場合には、Cインクの残量はレベルm(mは、1以上4以下の整数)であると測定される。Cインクの液面の高さが破線L5以上である場合には、Cインクの残量はレベル5であると判定される。
インクセンサ295は、図2のCインク用のセンサ295Cに加えて、同様のMインク、Yインク、Kインク用のセンサ295M、295Y、295K(図示省略)を備えている。これにより、CPU210は、C、M、Y、Kのそれぞれのインクの残量をn段階で実測することができる。
揮発性記憶装置220は、CPU210が処理を行う際に生成される種々のデータを一時的に格納するバッファ領域を提供する。不揮発性記憶装置230には、コンピュータプログラムPG1が格納されている。コンピュータプログラムPG1は、プリンタ200の製造時に不揮発性記憶装置230に予め格納されて提供される。これに代えて、コンピュータプログラムPG1は、例えば、インターネットを介して接続されたサーバからダウンロードされる形態、あるいは、DVD−ROMなどに記録された形態で提供され得る。
CPU210は、コンピュータプログラムPG1を実行することにより、プリンタ200の制御を実行する。例えば、CPU210は、端末装置100からの指示に従って、印刷機構290を制御して印刷を実行するとともに、端末装置100からの要求に応じて、インクセンサ295を制御してインクの残量を実測して、実測結果を端末装置100に送信することができる。
端末装置100は、プリンタ200のユーザが利用する公知の計算機であり、例えば、パーソナルコンピュータやスマートフォンである。端末装置100は、端末装置100のコントローラとしてCPU110と、DRAMなどの揮発性記憶装置120と、フラッシュメモリやハードディスクドライブなどの不揮発性記憶装置130と、UI画面を含む画像を表示するための液晶ディスプレイなどの表示部140と、ユーザの操作を取得するためのキーボードやマウスなどの操作部150と、プリンタ200などの外部機器と通信を行う通信部170と、を備えている。例えば、通信部170は、LANなどのネットワークに接続するためのインタフェースや、外部装置と接続するためのUSBインタフェースを含んでいる。
揮発性記憶装置120は、CPU110が処理を行う際に生成される種々のデータを一時的に格納するバッファ領域を提供する。不揮発性記憶装置130には、コンピュータプログラムPG2が格納されている。コンピュータプログラムPG2は、例えば、プリンタ200の製造者によって提供されるプリンタドライバプログラムである。コンピュータプログラムPG2は、例えば、インターネットを介して接続されたサーバからダウンロードされる形態で提供される。これに代えて、コンピュータプログラムPG2は、DVD−ROMなどに記録された形態で提供されても良い。
CPU110は、コンピュータプログラムPG2を実行することにより、プリンタ200用のプリンタドライバとしての処理、例えば、後述する印刷処理を実行する。
A−2.印刷処理
図3、図4は、第1実施例の印刷処理のフローチャートである。この印刷処理は、例えば、端末装置100において、文書作成ソフトや画像作成ソフトなどのアプリケーションプログラムを介して、プリンタドライバ(コンピュータプログラムPG2)が起動され、該プリンタドライバに、印刷指示が入力された場合に、開始される。本実施例では、印刷指示は、印刷に用いられる対象画像データを指定する指示を少なくとも含んでいる。対象画像データは、例えば、アプリケーションプログラムによって作成された画像データである。
S10で、CPU110は、複数種類のインクの残量の実測値Rm1を、インクごとにそれぞれ取得する。具体的には、CPU110は、C、M、Y、Kのインクの残量の測定要求を、プリンタ200に送信する。測定要求を受信したプリンタ200のCPU210は、上述したインクセンサ295を制御して、C、M、Y、Kのインクの残量を実測し、これらの実測値を端末装置100に送信する。ここで、取得される実測値は、上述したように、n段階のインクの残量を示す値である。CPU110は、n段階の値を、所定の単位(例えば、ml)に変換して、変換後の実測値Rm1_C、Rm1_M、Rm1_Y、Rm1_Kを取得する。以下では、変換後の実測値Rm1を、単に、実測値Rm1と呼ぶ。なお、本明細書では、実測値Rm1について、インクの種類ごとに区別する場合には、符号の末尾に、インクの種類を示す英字を含む記号を付す。例えば、Cインクの実測値Rm1は、実測値Rm1_C、Yインクの実測値R1mは、実測値Rm1_Yと表現する。インクの種類ごとに区別しない場合は、当該記号を省略する。他の各種の値についても同様である。
具体的には、CPU110は、n段階の値を、当該値と判定される残量のうちの最大値に変換する。例えば、図2の例では、CインクIkCの液面が、破線L2以上であり、かつ、破線L3より低い範囲内にあれば、レベル2であると判定される。CPU110は、変換前のレベル2の実測値を、レベル2と判定されるインクの残量のうちの最大値、すなわち、図2のハッチングで示す状態のインクの残量に変換する。本実施例では、後述するように、1個の印刷ジョブに対応する印刷が行われる度に、すなわち、印刷によってインクが少しずつ消費される度に、インクの残量の実測値が取得される。このために、インクの残量の実測値が変化した時点では、インクの残量は、変化後の実測値と判定されるインクの残量のうちの最大値にほぼ等しいと考えられる。本実施例では、インクの残量の実測結果が変化した時点でのインクの残量を、実測値Rmとして取得することが好ましいために、上述の変換が行われる。なお、図2の例におけるレベル5のような最大の実測値は、インクカートリッジの初期のインクの収容量に変換される。各レベルに対応する変換後の値は、予めコンピュータプログラムPG2に記述されている。
S15では、CPU110は、C、M、Y、Kの複数種類のインクから1個のインクを、処理対象のインクとして選択する。以下では、Cインクが処理対象であるとして説明するが、他のインクが処理対象であっても同様に処理が行われる。
S20では、CPU110は、S10にて取得されたCインクの実測値Rm1_Cが、Cインクの記録済みの実測値Rmr_Cと異なるか否かを判断する。記録済みの実測値Rmr_Cは、後述するS25またはS120で記録される実測値である。したがって、プリンタ200からの印刷要求に基づく初回の印刷処理では、この時点では、実測値Rmrが記録されていない。この場合には、取得された実測値Rm1_Cは、記録済みの実測値Rmr_Cと異なるものと判断される。ここで、取得された実測値Rm1_Cが、記録済みの実測値Rmr_Cと異なる場合として想定されるのは、Cインクのインクカートリッジが交換された場合である。したがって、取得された実測値Rm1_Cが記録済みの実測値Rmr_Cと異なる場合は、取得された実測値Rm1_Cが最大の残量(初期の収容量)を示す場合である。
取得された実測値Rm1_Cが、記録済みの実測値Rmr_Cと異なる場合には(S20:YES)、S25にて、CPU110は、取得された実測値Rm1_Cを、記憶済みの実測値Rmr_Cに代えて、不揮発性記憶装置130に記録する。すなわち、現在の記憶済みの実測値Rmr_Cが削除されて、取得された実測値Rm1_Cが、新たな記憶済みの実測値Rmr_Cとして記録される。
S30では、CPU110は、処理対象のCインクの記録済みの1以上の推定使用量Ue_Cを削除する。1以上の推定使用量Ue_Cは、後述する図4のS130にて、記録される値である。削除すべき記録済みの推定使用量Ue_Cが1個もない場合は、本ステップは行われない。
S35では、CPU110は、取得された実測値Rm1_Cを、現在のCインクの残量R_Cに決定する。
取得された実測値Rm1_Cが、記録済みの実測値Rmr_Cと同じである場合には(S20:NO)、S40にて、CPU110は、Cインクの累積推定使用量Us_Cを算出する。累積推定使用量Us_Cは、記録済みの1以上の推定使用量Ue_Cの合計である。
S42では、CPU110は、取得された実測値Rm1_Cから、Cインクの累積推定使用量Us_Cを減じた値を、Cインクの現在の残量R_Cに決定する。
S45では、CPU110は、C、M、Y、Kの全てのインクについて処理したか否かを判断する。未処理のインクがある場合には(S45:NO)、CPU110は、S15に戻って、未処理のインクを選択する。全てのインクについて処理された場合には(S45:YES)、CPU110は、S50に処理を進める。S50に処理が進められる時点で、C、M、Y、Kのそれぞれの現在のインクの残量R_C、R_M、R_Y、R_Kが決定されている。
S50では、CPU110は、C、M、Y、Kの現在のインクの残量の比率R_C:R_M:R_Y:R_Kを、C、M、Y、Kのインクの目標使用比率Rt_C:Rt_M:Rt_Y:Rt_Kに決定する。なお、目標使用比率Rt_C:Rt_M:Rt_Y:Rt_Kは、残量が最大のインクの値が、1になるように正規化される。例えば、インクの残量R_C、R_M、R_Y、R_Kが、200、100、200、100であれば、目標使用比率を示す値Rt_C、Rt_M、Rt_Y、Rt_Kは、1、(1/2)、1、(1/2)に決定される。
目標使用比率は、後述するS85での印刷時に使用されるC、M、Y、Kのインクの量の比率の目標値である。上記の決定方法によれば、現在のインクの残量が第1のインク(例えば、Cインク)より少ない第2のインク(例えば、Mインク)の使用量が、第1のインクの使用量より少なくなるように、目標使用率が決定される。この結果、後述するS72、S74の処理では、S85の印刷が実行された後のC、M、Y、Kの複数種類のインクの残量のばらつきが、印刷が実行される前の複数種類のインクの残量のばらつきより小さくなるように、印刷時に使用される複数種類のインクの量の比率を変更することができる。
S55では、CPU110は、1個の印刷ジョブに対応する対象画像データ、すなわち、本印刷処理の開始の契機となった印刷指示によって指定された対象画像データの全体を取得する。対象画像データは、例えば、複数個の画素にて構成されるビットマップデータであり、画素ごとの色をRGB値で表すRGB画像データである。1個の画素のRGB値は、赤(R)と緑(G)と青(B)との3個の色成分の階調値(例えば、256階調の階調値)を含んでいる。変形例としては、対象画像データは、所定の記述言語によって記述された画像データ(ベクトルデータとも呼ぶ)であっても良い。所定の記述言語は、例えば、端末装置100のオペレーティングシステム(以下、OSと略す)によって提供される記述言語、例えば、マイクロソフト社のWindows(登録商標)のGDI(Graphics Device Interfaceの略)の仕様に従う記述言語である。これに代えて、対象画像データは、PCL(Printer Control Languageの略)や、PostScriptなどのページ記述言語を用いて記述されていても良い。
S60では、CPU110は、対象画像データを解析して、C、M、Y、Kの各インクについて、対象画像データによって表される対象画像を印刷した場合に使用されるインク量の推定値である推定使用量OUe_C、OUe_M、OUe_Y、OUe_Kを算出する。ここで、算出される推定使用量OUe_C、OUe_M、OUe_Y、OUe_Kは、後述する図4のS130にて記録される、変更済画像を印刷した場合に使用されるインクの推定値である推定使用量Ue_C、Ue_M、Ue_Y、Ue_Kとは、異なる。前者を対象画像の推定使用量と呼び、後者を変更済画像の推定使用量と呼ぶ。
具体的には、CPU110は、対象画像データに対して色変換処理を実行して、画素ごとの色をCMYK値で表すCMYK画像データを生成する。CMYK値は、印刷機構290にて用いられる複数種類のインク(C、M、Y、K)に対応する複数種類の成分値(C値、M値、Y値、K値)を含んでいる。CMYK値の各成分値は、本実施例では、256階調の値である。色変換処理は、RGBの階調値とCMYKの階調値との対応関係を定める図示しないルックアップテーブルを用いて行われる。なお、対象画像データが、ベクトルデータである場合には、CPU110は、ベクトルデータに対してラスタライズ処理を実行して、RGB画像データを生成した後に、該RGB画像データに対して色変換処理を実行して、CMYK画像データを生成する。CPU110は、CMYK画像データに対してハーフトーン処理を実行して、ドットの形成状態を、画素ごと、かつ、インクの種類ごとに、表すドットデータを生成する。本実施例では、ハーフトーン処理は、誤差マトリクスを利用した誤差拡散処理を用いて実行される。これに代えて、ディザマトリクスを用いるハーフトーン処理が採用されてもよい。ドットの形成状態は、例えば、ドットの有無を含む。変形例では、ドットの形成状態は、ドットの有無と、ドットのサイズと、を含んでも良い。
さらに、CPU110は、ドットデータに基づいて、C、M、Y、Kの各インクについてドットの形成数をカウントすることにより、C、M、Y、Kのドットの形成数Dn_C、Cn_M、Cn_Y、Cn_Kを取得する。CPU110は、ドットの形成数Dn_C、Cn_M、Cn_Y、Cn_Kに、1ドット辺りのインク使用量を示す係数を乗じることによって、対象画像の推定使用量OUe_C、OUe_M、OUe_Y、OUe_Kを算出する。
S65では、CPU110は、後述するS72、S74の処理のために、C、M、Y、Kの各インクについて、インクの使用量の変更係数Cr_C、Cr_M、Cr_Y、Cr_Kを決定する。
具体的には、Cインクの使用量の変更係数Cr_Cは、対象画像のCインクの推定使用量OUe_Cに、該変更係数Cr_Cを乗じた値が、目標使用比率を示す値Rt_Cに、なるように算出される(Cr_C=(Rt_C/OUe_C))。他のインクについても同様である。そして、算出された各インクの変更係数Cr_C、Cr_M、Cr_Y、Cr_Kは、これらの値Cr_C、Cr_M、Cr_Y、Cr_Kのうちの最大値が1(すなわち、100%)になるように正規化される。さらに、正規化後の各インクの変更係数Cr_C、Cr_M、Cr_Y、Cr_Kに、所定の下限値(例えば、(1/4)=25%)未満の値が含まれる場合には、該下限値未満の値は、下限値に変更される。これにより、最終的な各インクの変更係数Cr_C、Cr_M、Cr_Y、Cr_Kが決定される。このように、各インクの変更係数の下限値を定めておくことによって、印刷される変更済画像(後述)において、一のインクの濃度が過度に薄くなる不具合を抑制できる。
例えば、対象画像の推定使用量OUe_C、OUe_M、OUe_Y、OUe_Kが、10、10、20、30であり、目標使用比率を示す値Rt_C、Rt_M、Rt_Y、Rt_Kは、1、(1/2)、1、(1/2)である場合には、各インクの変更係数Cr_C、Cr_M、Cr_Y、Cr_Kは、(1/10)、(1/20)、(1/20)、(1/60)と算出される。そして、各インクの変更係数Cr_C、Cr_M、Cr_Y、Cr_Kは、1、(1/2)、(1/2)、(1/6)と正規化される。これらの値のうち、Cr_K(=(1/6))は、下限値(1/4)未満であるので、下限値(1/4)に変更される。その結果、最終的に、各インクの変更係数Cr_C、Cr_M、Cr_Y、Cr_Kは、1、(1/2)、(1/2)、(1/4)に決定される。
S70では、CPU110は、各インクの使用量の変更係数Cr_C、Cr_M、Cr_Y、Cr_Kを、各インクに対応する補正パラメータAm_C、Am_M、Am_Y、Am_Kを用いて補正して、補正済変更係数Ca_C、Ca_M、Ca_Y、Ca_Kを決定する。具体的には、Cインクの補正済変更係数Ca_Cは、補正前のCインクの変更係数Cr_Cに、Cインクの補正パラメータAm_Cを乗じた値に決定される(Ca_C=Cr_C×Am_C)。なお、各インクの補正パラメータは、後述するS115にて生成、更新されるパラメータである。なお、初回の印刷処理である場合には、補正パラメータAmとして初期値(具体的には、1)が用いられる。
S72では、CPU110は、補正済変更係数Ca_C、Ca_M、Ca_Y、Ca_Kを用いて、C、M、Y、Kの各インクに対応する成分値(C値、M値、Y値、K値)用のトーンカーブを生成する。図5は、各成分値用のトーンカーブの一例を示す図である。図5(A)〜(D)には、C値、M値、Y値、K値用のトーンカーブがそれぞれ図示されている。
図5において、横軸は、ゼロから255の範囲内で変化し得る入力値Viを示し、縦軸は、出力値Voを示している。図中の破線RLsは、階調値を変化させない対応関係、すなわち、入力値Viの全範囲においてVo=Viである対応関係を示すラインである。図中の実線は、トーンカーブを示している。
トーンカーブは、入力値Viと出力値Voとの対応関係を表している。本実施例では、補正済変更係数Ca(Caは、下限値(1/4)≦Caを満たす値)のトーンカーブは、入力値Viと出力値Voと補正済変更係数Ca_Cとを用いて、以下の式(1)で表すことができる。
Vo=Ca×Vi(ただし、Ca×Vi>255の場合は、Vo=255)...(1)
すなわち、補正済変更係数Caのトーンカーブは、Ca<1の場合には、入力値Viに対して、入力値Viを{(1−Ca)×100}%だけ低減した値を、出力値Voとして対応付けるトーンカーブである。また、補正済変更係数Caのトーンカーブは、Ca>1の場合には、入力値Viに対して、入力値Viを{(Ca−1)×100}%だけ増加させた値を、出力値Voとして対応付けるトーンカーブである。ここで、補正前の変更係数Crは、1以下の値であるが、補正パラメータAmは、1より大きい場合があるので、補正済変更係数Caは、1より大きくなる場合がある。
S74では、CPU110は、生成されたトーンカーブによる色変換をCMYK画像データに適用して、変更済画像データを生成する。具体的には、CMYK画像データに含まれる複数個の画素のC値、M値、Y値、K値が、それぞれ対応するトーンカーブを用いて変換される。S50、S60〜S74の一連の処理は、印刷時に使用されるC、M、Y、Kの複数種類のインクの量の比率を変更して、変更済画像データを生成する変更済画像データ生成処理と、言うことができる。
S75では、CPU110は、生成された変更済画像データを用いて印刷データを生成する。具体的には、CPU110は、変更済画像データに対してハーフトーン処理を実行して、ドットデータを生成する。CPU110は、該ドットデータを含む印刷データを生成する。
S80では、CPU110は、印刷データ(ドットデータ)を解析して、C、M、Y、Kの各インクについて、印刷データを用いた印刷において使用されるインク量の推定値である推定使用量Ue_C、Ue_M、Ue_Y、Ue_Kを算出する。この推定使用量は、S72にて生成された変更済画像データによって表される変更済画像を印刷した場合に使用されるインク量の推定値と言うことができるので、変更済画像の推定使用量Ueとも呼ぶ。
具体的には、CPU110は、印刷データ(ドットデータ)に基づいて、C、M、Y、Kの各インクについてドットの形成数をカウントし、当該ドットの形成数に、1ドット辺りのインク使用量を示す係数を乗じることによって、変更済画像の推定使用量Ue_C、Ue_M、Ue_Y、Ue_Kを算出する。
S85では、CPU110は、生成された印刷データをプリンタ200に送信(供給)する。プリンタ200は、印刷データを受信すると、該印刷データを用いて印刷機構290を制御して、変更済画像の印刷を実行する。
変更済画像の印刷後のS90では、CPU110は、図3のS10と同様に、複数種類のインクの残量の実測値Rm2をインクごとにそれぞれ取得する。具体的には、CPU110は、各インクの残量の測定要求を、プリンタ200に送信し、プリンタ200から実測値Rm2_C、Rm2_M、Rm2_Y、Rm2_Kを取得する。
S95では、CPU110は、複数種類のインクから1個のインクを、処理対象のインクとして選択する。以下では、Cインクが処理対象であるとして説明するが、他のインクが処理対象であっても同様に処理が行われる。
S100では、S90にて取得されたCインクの実測値Rm2_Cが、Cインクの記録済みの実測値Rmr_Cと異なるか否かを判断する。ここで、取得された実測値Rm2_Cが、記録済みの実測値Rmr_Cと異なる場合として想定されるのは、S85での印刷によってCインクが消費されることによってCインクの残量の実測値が変化した場合である。したがって、取得された実測値Rm2_Cが記録済みの実測値Rmr_Cと異なる場合は、取得された実測値Rm2_Cが記録済みの実測値Rmr_Cより一段階少ない残量を示す場合である。
取得された実測値Rm2_Cが、記録済みの実測値Rmr_Cと異なる場合には(S100:YES)、S105にて、CPU110は、Cインクの累積推定使用量Us_Cを算出する。累積推定使用量Us_Cは、不揮発性記憶装置130に記録済みの1以上の推定使用量Ue_Cと、直前のS80にて算出された推定使用量Ue_Cと、の合計である。累積推定使用量Us_Cは、前回の補正パラメータの更新から現在までの推定使用量Ue_Cの合計値とも言うことができる。
S110では、CPU110は、Cインクについて、前回の補正パラメータの更新から現在までのインクの実測使用量Um_C(前回に実測値Rmr_Cが変化したときから現在までの実測使用量Um_Cとも言うことができる)を算出する。具体的には、S90にて今回取得されたCインクの実測値Rm2_Cと、記録済みの実測値Rmr_Cと、の差分が、実測使用量Um_Cとして算出される。例えば、記録済みの実測値Rmr_Cが、n段階の実測値のうち、レベル2に相当する実測値であり、今回取得された実測値Rm2_Cがレベル1に相当する実測値である場合には、図2のインクカートリッジ10Cの破線L3から破線L2までのインクの収容量に相当する量が、実測使用量Um_Cとして算出される。
S115では、CPU110は、Cインクの補正パラメータAm_Cを更新する。具体的には、S105にて算出された累積推定使用量Us_Cを、S110にて算出された実測使用量Um_Cで除した値(Us_C/Um_C)が、Cインクの新たな補正パラメータAm_Cとされる。この説明から解るように、本実施例における補正パラメータは、補正パラメータAm_Cは、実測使用量Um_Cに対する累積推定使用量Us_Cの比率である。
実測使用量Um_Cが累積推定使用量Us_Cより大きい場合には、実際の印刷では、推定されたインクの使用量より多量のインクが使用される可能性が高い。この場合には、補正パラメータAm_Cは、1より小さな値となる。したがって、このような補正パラメータAm_Cは、S70にて用いられると、該補正パラメータAm_Cを用いない場合と比較して、S85での印刷時の実際のCインクの使用量が減少する。
また、実測使用量Um_Cが累積推定使用量Us_Cより小さい場合には、実際の印刷では、推定されたインクの使用量より少量のインクが使用される可能性が高い。この場合には、補正パラメータAm_Cは、1より大きな値となる。したがって、このような補正パラメータAm_Cは、S70にて用いられると、該補正パラメータAm_Cを用いない場合と比較して、S85での印刷時の実際のCインクの使用量が増加する。このように、本実施例の補正パラメータAm_Cを用いれば、実測使用量Um_Cと累積推定使用量Us_Cとの間の差を低減するように、印刷時に使用されるCインクの量を適切に補正できる。すなわち、推定されたCインクの使用量と、印刷時の実際のCインクの使用量とが近づくように、適切に、変更係数Crを補正できる。
S120では、CPU110は、取得された実測値Rm2_Cを、記憶済みの実測値Rmr_Cに代えて、不揮発性記憶装置130に記録する。すなわち、現在の記憶済みの実測値Rmr_Cが削除されて、取得された実測値Rm2_Cが、新たな記憶済みの実測値Rmr_Cとして記録される。
S125では、CPU110は、Cインクの記録済みの1以上の推定使用量Ue_Cを削除する。削除すべき記録済みの推定使用量Ue_Cが1個もない場合は、本ステップは行われない。
取得された実測値Rm2_Cが、記録済みの実測値Rmr_Cと等しい場合には(S100:NO)、S130にて、CPU110は、今回の印刷(すなわち、直前のS85での印刷)におけるCインクの推定使用量Ue_C(すなわち、直前のS80で算出された推定使用量Ue_C)を、不揮発性記憶装置230に記録する。既に記録済みのCインクの推定使用量Ue_Cは、削除されないので、複数個の推定使用量Ue_Cが記録されることもある。
S135では、CPU110は、C、M、Y、Kの全てのインクについて処理したか否かを判断する。未処理のインクがある場合には(S135:NO)、CPU110は、S95に戻って、未処理のインクを選択する。全てのインクについて処理された場合には(S135:YES)、CPU110は、印刷処理を終了する。本印刷処理にて、記録された推定使用量Ue(S130)、更新された補正パラメータAm(S115)、記録された実測値Rmr(S25、S120)は、次回以降の印刷処理において、適宜に用いられる。
例えば、第1の画像を表す第1の画像データが、対象画像データとして指定されて、上述の印刷処理が行われる。その場合には、該第1の画像データに基づく印刷(S85での印刷)の前に、複数種類のインクの残量をインクごとにそれぞれ示す複数個の第1の印刷前残量として、S35、S42にて、インクの残量R_C、R_M、R_Y、R_Kが取得される。第1の画像データに対して、変更済画像データ生成処理が実行されて(S50、S60〜S74)、第1の変更済画像データが生成される。上述のように、変更済画像データ生成処理は、インクの残量Rと、各インクに対応する補正パラメータAmと、を用いて実行される(S50、S70)。具体的には、インクの残量Rに基づいて、目標使用比率が決定され(S50)、該目標使用比率に基づいて、各インクの変更量を定める変更係数Crが決定される(S65)。そして、補正パラメータAmは、該変更係数Crを補正するために用いられている(S70)。S70にて決定される補正済変更係数Caは、最終的に各インクの変更量を決定する係数であるので、補正済変更係数Caを決定することは、各インクの変更量を決定することに等しい。第1の変更済画像データを用いて、第1の変更済画像がプリンタ200によって印刷される(S75、S85)。第1の変更済画像が印刷された後に、インクセンサ295による実測結果に基づいて、特定の色材の実測使用量Umが取得される(S110)。また、第1の変更済画像データを解析することによって、第1の変更済画像の印刷に使用される複数種類のインクのうちの特定のインク(例えば、Cインク)の推定使用量Ueが算出され(S80)、該推定使用量Ueを含む累積推定使用量Usが取得される(S105)。累積推定使用量Usと、実測使用量Umと、を用いて、特定の色材に対応する補正パラメータAmが更新される(S115)。
その後に、第2の画像を表す第2の画像データが対象データとして指定されて、上述の印刷処理が行われると、複数種類のインクの残量をインクごとにそれぞれ示す複数個の第2の印刷前残量として、S35、S42にて、インクの残量Rが取得される。そして、インクの残量Rと、特定の色材に対応する更新後の補正パラメータを含む複数個の補正パラメータAmと、を用いて、第2の画像データに対して変更済画像データ生成処理が実行されて(S50、S60〜S74)、第2の変更済画像データが生成される。第2の変更済画像データを用いて、第2の変更済画像がプリンタ200によって印刷される(S75、S85)。
ここで、更新前の補正パラメータAm_Cを第1の補正パラメータAm1_Cとし、更新後の補正パラメータを第2の補正パラメータAm2_Cとする。第1の補正パラメータAm1_Cが決定された印刷処理において、第1の補正パラメータAm1_Cの決定に用いられた累積推定使用量Us_Cおよび実測使用量Um_Cを、第1の累積推定使用量Us1_Cおよび第1の実測使用量Um1_Cとする。第2の補正パラメータAm2_Cが決定された印刷処理において、第2の補正パラメータAm2_Cの決定に用いられた累積推定使用量Us_Cおよび実測使用量Um_Cを、第2の累積推定使用量Us2_Cおよび第2の実測使用量Um2_Cとする。第2の累積推定使用量Us2_Cに対する第2の実測使用量Um2_Cの比率(Um2_C/Us2_C)が、第1の累積推定使用量Us1_Cに対する第1の実測使用量Um1_Cの比率(Um1_C/Us1_C)と異なる場合には、第2の補正パラメータAm2_Cの決定時おいて、第1の補正パラメータAm1_Cの決定時と比較して、印刷の際に実際に使用されるCインクの量と推定されるCインクの使用量とのずれが変化していると言える。このようなずれの変化は、例えば、詳細は後述するように印刷ヘッドのノズルの経年劣化等によって生じ得る。
例えば、第2の累積推定使用量Us2_Cに対する第2の実測使用量Um2_Cの比率(Um2_C/Us2_C)が、第1の累積推定使用量Us1_Cに対する第1の実測使用量Um1_Cの比率(Um1_C/Us1_C)より大きいとする。この場合には、第2の補正パラメータAm2_Cの決定時おいて、第1の補正パラメータAm1_Cの決定時と比較して、同じ画像を印刷した場合であってもより多量のCインクが使用される状態に、プリンタ200が変化していると考えられる。このために、この場合には、第2の補正パラメータAm2_Cは、第1の補正パラメータAm1_Cを用いる場合と比較して印刷時に使用されるCインクの量が減少するように決定されることが好ましい。こうすれば、印刷の際に実際に使用されるCインクの量と推定されるCインクの使用量とのずれの変化に対応して、印刷において実際に使用されるCインクの量を適切に調整できる。その結果、印刷後のCインクの残量を適切に調整できる。本実施例では、上述したようにCインクの補正値パラメータAm_Cは、S105にて算出された累積推定使用量Us_Cを、S110にて算出された実測使用量Um_Cで除した値(Us_C/Um_C)に決定することで、これを実現している。すなわち、本実施例では、第2の補正パラメータAm2_Cは、第2の累積推定使用量Us2_Cに対する第2の実測使用量Um2_Cの比率(Um2_C/Us2_C)の逆数、換言すれば、第2の実測使用量Um2_Cに対する第2の累積推定使用量Us2_Cの比率(Us2_C/Um2_C)に決定される。この結果、印刷後のCインクの残量を適切に調整できる。
以上の説明から解るように、第1実施例によれば、第1の処理済画像が印刷された後に、実測結果に基づいて取得される特定の色材(例えば、Cインク)の実測使用量Umと、実測使用量Umに対応する累積推定使用量Usと、を用いて、特定の色材に対応する第1の補正パラメータが第2の補正パラメータに更新される。そして、第2の画像データに対する生成処理は、第2の補正パラメータを含む更新後の複数個の補正値を用いて実行される。第2の補正パラメータは、累積推定使用量Usに対する実測使用量Umの比率が、第1の補正パラメータの決定時と比較して大きい場合に、第1の補正パラメータを用いる場合と比較して印刷時に使用される特定の色材の量が減少するように決定される。この結果、例えば、特定の色材の推定使用量Ueよりも特定の色材の実際の使用量がより大きくなる経時変化が発生した場合であっても、印刷する際に使用される複数種類の色材の量の比率を変更する際に、特定の色材の使用量が過度に多くなることが抑制できる。したがって、画像の印刷に基づき、印刷後の特定の色材の残量を適切に調整し得る。
例えば、プリンタ200においてCインクを吐出するノズルの製造時のばらつき、経年劣化、インクによる目詰まりの状況、使用される温度条件によって、1ドット辺りのインクの使用量は異なり得る。対象画像の推定使用量OUe_Cは、印刷データを解析して得られる値であり、1ドット辺りのインクの使用量を示す1個の固定値である係数を用いて算出される。したがって、S60で算出される対象画像の推定使用量OUe_Cは、実際に使用されたCインクの量を正確に示していない場合がある。このような場合に、推定使用量OUe_Cに基づいて、Cインクの変更係数Cr_Cを決定しても、仮に変更係数Cr_Cを補正することなく、そのまま用いて、S72、S74の処理を行うとすれば、S85での印刷後のCインクの残量を適切に調整できない可能性がある。本実施例によれば、S70にて、Cインクの変更係数Cr_Cは、補正パラメータAm_Cを用いて補正されるので、このような不具合を抑制することができる。そして、補正値補正パラメータAm_Cは、実測使用量Um_Cと累積推定使用量Us_Cとを用いて、更新されるので、プリンタ200の特性の経時変化が発生したとしても、適切に、印刷後のインクの残量を調整することができる。
さらに、例えば、上述した第2の累積推定使用量Us2_Cに対する第2の実測使用量Um2_Cの比率(Um2_C/Us2_C)が、第1の累積推定使用量Us1_Cに対する第1の実測使用量Um1_Cの比率(Um1_C/Us1_C)より小さいとする。この場合には、第2の補正パラメータAm2_Cの決定時おいて、第1の補正パラメータAm1_Cの決定時と比較して、同じ画像を印刷した場合であってもより少量のCインクが使用される状態に、プリンタ200が変化していると考えられる。本実施例では、この場合には、第2の補正パラメータAm2_Cは、第1の補正パラメータAm1_Cを用いる場合と比較して印刷時に使用されるCインクの量が増加するように決定される。具体的には、上述したように、第2の補正パラメータAm2_Cは、第2の実測使用量Um2_Cに対する第2の累積推定使用量Us2_Cの比率(Us2_C/Um2_C)に決定される。この結果、例えば、特定の色材の推定使用量Ueよりも特定の色材の実際の使用量がより小さくなる経時変化が発生した場合であっても、印刷する際に使用される複数種類の色材の量の比率を変更する際に、特定の色材の使用量が過度に少なくなることが抑制できる。したがって、印刷の際に実際に使用されるCインクの量と、推定されるCインクの使用量と、のずれの変化に対応して、印刷において実際に使用されるCインクの量をさらに適切に調整できる。
さらに、S50の説明にて述べたように、本実施例の変更済画像データ生成処理(S50、S60〜S74)は、S85にて第1の変更済画像が印刷された後の複数種類のインクの残量のばらつきが、第1の変更済画像が印刷される前の複数種類のインクの残量のばらつきより小さくなるように、印刷時に使用される複数種類のインクの量の比率を変更する処理である。この結果、複数種類のインクのそれぞれの補充の時期が、集中して到来するように、印刷後の複数種類のインクの残量を適切に調整し得る。
例えば、インクの残量が基準値以下となってインクの補充が必要となるタイミングが、インクの種類ごとに大きく異なる場合には、インクの種類ごとに補充を行うタイミングが分散するので、ユーザが度々異なる種類のインクの補充を行う必要が生じる。このため、インクの補充が不要な比較的長い期間が発生し難い。この結果、ユーザの負担が増加する可能性がある。一方、本実施例の印刷処理のように、印刷後の複数種類のインクの残量のばらつきが印刷前より小さくなるように、インクの残量を調整すれば、複数種類のインクの補充(本実施例では、インクカートリッジの交換)が必要となるタイミングが、ほぼ同時期に集中しやすい。この場合には、複数種類のインクの補充を行うタイミングが集中するので、複数種類のインクをまとめて補充しやすくなる。また、複数種類のインクの補充が比較的短い期間内に集中して行われるので、比較的短い期間内に全ての種類のインクの補充が行われた後は、比較的長い期間に亘ってインクを補充しなくても良い。このように、インクの補充が不要な比較的長い期間が発生しやすい。この結果、ユーザの負担を軽減することができる。
さらに、本実施例のS110では、S90にて今回取得されたCインクの実測値Rm2_Cと、記録済みの実測値Rmr_Cと、の差分が、実測使用量Um_Cとして算出される。このように、実測値Rm2_Cと記録済みの実測値Rmr_Cとの差分に基づいて、容易に、適切な実測使用量Um_Cを取得することができる。第1の画像データが対象画像データである場合には、記録済みの実測値Rmr_Cは、第1の変更済画像が印刷される前にインクセンサ295によって取得されるCインクの残量と言うことができる。また、S90にて今回取得されたCインクの実測値Rm2_Cは、第1の変更済画像が印刷された後にインクセンサ295によって取得されるCインクの残量と言うことができる。
さらに、本実施例によれば、取得された実測値Rm2_Cが、記録済みの実測値Rmr_Cと等しい場合には(S100:NO)、S105〜S115は実行されないので、Cインクの補正パラメータAm_Cは更新されない。そして、取得された実測値Rm2_Cが、記録済みの実測値Rmr_Cより小さい場合には(S100:YES)、S105〜S115が実行されて、Cインクの補正パラメータAm_Cは更新される。この結果、インクセンサ295によるインクの色材の測定の分解能が低い場合(例えば、図2の例のように5段階程度の測定のみが可能である場合)であっても適切なタイミングで補正パラメータAm_Cを更新することができる。
さらに、本実施例によれば、取得された実測値Rm2_Cが、記録済みの実測値Rmr_Cより小さい場合に(S100:YES)、前回の補正パラメータAmの更新時から現在までに使用されたCインクの累積推定使用量Us_Cが、実測使用量Um_Cに対応する対応推定使用量として取得される(S105)。この結果、インクセンサ295によるインクの色材の測定の分解能が低い場合であっても適切に、実測使用量Um_Cに対応する対応推定使用量を取得することができる。
さらに、本実施例では、1回の印刷指示ごとに、すなわち、1個の印刷ジョブごとに、補正パラメータAmを更新するためのS95〜S135の処理が行われる。したがって、1個の印刷ジョブで印刷される画像において色の変化が生じることを抑制できる。例えば、1個の印刷ジョブに対応する対象画像データが、複数のページ画像データを含む場合において、同じ色で印刷されるべきオブジェクトが、1ページ目の画像と、2ページ目の画像と、の間で、異なる色で印刷される不具合を抑制できる。上述した第1の画像データは、第1の印刷ジョブに対応する画像データであり、第2の画像データは、第1の印刷ジョブの後に処理される第2の印刷ジョブに対応する画像データである、と言うことができる。
また、本実施例では、端末装置100は、プリンタ200の筐体とは異なる筐体に収容された計算機であり、プリンタ200と通信可能に接続される計算機である。この結果、プリンタ200と通信可能に接続される別体の端末装置100を用いて、プリンタ200のインクの残量を適切に調整できる。例えば、既存のプリンタ200に何ら機能を追加することなく、端末装置100にコンピュータプログラムPG2をインストールするだけで、プリンタ200のインクの残量を適切に調整できる。
以上の説明から解るように、本実施例では、図4のS105で算出される累積推定使用量Us_Cは、S110で算出される実測使用量Um_Cに対応する対応推定使用量の例である。
B.第2実施例
図6は、第2実施例の印刷処理のフローチャートである。この印刷処理は、第1実施例の印刷処理と同様に、例えば、端末装置100において起動されたプリンタドライバに、印刷指示が入力された場合に、開始される。第2実施例では、1個の印刷ジョブに対応する画像データ、すなわち、本印刷処理の開始の契機となった印刷指示によって指定された画像データは、複数ページ分のページ画像データを含む。すなわち、第2実施例の対象画像データは、第1のページ画像を示す第1のページ画像データと、第2のページ画像を示す第2のページ画像データと、を少なくとも含む。
S210では、図3のS10〜S45の処理が実行される。これによって、C、M、Y、Kのそれぞれの現在のインクの残量R_C、R_M、R_Y、R_Kが決定される。
S215では、CPU110は、図3のS50と同様に複数種類のインクの現在の残量の比率R_C:R_M:R_Y:R_Kを、複数種類のインクの目標使用比率Rt_C:Rt_M:Rt_Y:Rt_Kに決定する。S220では、CPU110は、1個の印刷ジョブに含まれる複数ページ分のページ画像データのうち、1ページ分のページ画像データを、対象画像データとして取得する。
S225では、S220で取得された1ページ分のページ画像データを対象画像データとして、図3のS60〜S72、および、図4のS74〜S90の処理が実行される。これによって、対象画像データとしてのページ画像データに対して、変更済画像データ生成処理が実行されることによって変更済ページ画像データが生成される(S60〜S74)。そして、該変更済ページ画像データを用いて、1ページ分の変更済画像が印刷される(S75、S80)。さらに、印刷後のC、M、Y、Kの各インクの実測値Rm2_C、Rm2_M、Rm2_Y、Rm2_Kが取得される(S90)。
S230では、CPU110は、図4のS95と同様に、複数種類のインクから1個のインクを、処理対象のインクとして選択する。以下では、Cインクが処理対象であるとして説明するが、他のインクが処理対象であっても同様に処理が行われる。
S240では、CPU110は、図4のS100と同様に、取得されたCインクの実測値Rm2_Cが、Cインクの記録済みの実測値Rmr_Cと異なるか否かを判断する。
取得された実測値Rm2_Cが、記録済みの実測値Rmr_Cと異なる場合には(S240:YES)、S250にて、CPU110は、図4のS105〜S125の処理を行う。これにより、Cインクの補正パラメータAm_Cが更新される(S105〜S115)。そして、取得されたCインクの実測値Rm2_Cが、Cインクの新たな記録済みの実測値Rmr_Cとして記録される(S120)。さらに、Cインクの記録済みの1以上の推定使用量Ue_Cが削除される(S125)。
S255では、CPU110は、取得された実測値Rm2_Cを、現在のCインクの残量R_Cに決定する。
取得された実測値Rm2_Cが、記録済みの実測値Rmr_Cと同じである場合には(S240:NO)、S260にて、図4のS130と同様に、今回の印刷におけるCインクの推定使用量Ue_Cを、不揮発性記憶装置230に記録する。そして、CPU110は、図3のS40と同様に、S270にて、Cインクの累積推定使用量Us_Cを算出し、S280にて、取得された実測値Rm2_Cから、Cインクの累積推定使用量Us_Cを減じた値を、Cインクの現在の残量R_Cに決定する。
S285では、CPU110は、C、M、Y、Kの全てのインクについて処理したか否かを判断する。未処理のインクがある場合には(S285:NO)、CPU110は、S230に戻って、未処理のインクを選択する。全てのインクについて処理された場合には(S285:YES)、CPU110は、S290に処理を進める。
S290では、CPU110は、1個の印刷ジョブに含まれる全てのページのページ画像データについて処理したか否かを判断する。未処理のページ画像データがある場合には(S290:NO)、CPU110は、S215に戻って、未処理のページ画像データの処理のために、目標使用比率を決定する。全てのページ画像データについて処理された場合には(S290:YES)、CPU110は、印刷処理を終了する。
本実施例の印刷処理では、第1のページ画像データを対象画像データとして、S215〜S285の処理が行われた後に、第2のページ画像データを対象画像データとして、S215〜S285の処理が行われる。このために、第1のページ画像データを対象画像データとした処理にて、記録された推定使用量Ue(S260)、更新された補正パラメータAm(S250)、記録された実測値Rmr(S250)は、第1のページ画像データの次に処理される第2のページ画像データの処理において、適宜に用いられる。
以上説明した第2実施例によれば、ページ画像が印刷されるごとに、補正パラメータAmを更新するためのS230〜S285の処理が行われる。したがって、印刷された1ページ分のページ画像内において色の変化が生じることを抑制できる。また、印刷ジョブごとに補正パラメータAmを更新するための処理が行われる場合と比較して、補正パラメータAmの更新頻度が高くなるので、より精度良くインクの残量を調整し得る。また、印刷ジョブごとに補正パラメータAmを更新する処理が行われる場合と比較して、より少量の印刷が行われる度に、インクの実測値Rm2の取得(S225)と、実測使用量Umの算出(S250)と、が行われるので、実測使用量Umの算出精度が向上する。この結果、補正パラメータAmをより精度良く決定することができる。
C.第3実施例
図7は、第3実施例の印刷処理のフローチャートである。この印刷処理は、第1実施例の印刷処理と同様に、例えば、端末装置100において起動されたプリンタドライバに、印刷指示が入力された場合に、開始される。
S310では、CPU110は、印刷指示に含まれる印刷条件を取得する。印刷条件は、例えば、印刷に用いられる画像データの指定、印刷すべき用紙のサイズ、および、印刷部数を含んでいる。S320では、CPU110は、取得された印刷条件から、印刷指示に対応する印刷ジョブの印刷量を特定する。例えば、指定された画像データに含まれるページ画像データの個数と、印刷部数と、を乗じることによって印刷すべきページ数の合計が算出され、当該合計値に、印刷すべき用紙の面積に比例する係数を乗じた値が、印刷量として算出される。
S330では、CPU110は、印刷量は、予め定められた基準値未満であるか否かを判断する。例えば、基準値は、所定のページ数分(例えば、3ページ分)の特定サイズ(例えば、A4サイズ)の印刷に相当する印刷量に定められている。
印刷量が基準値未満である場合には(S330:YES)、S340にて、CPU110は、第1実施例の印刷処理、すなわち、図3のS10〜S72、図4のS74〜S135の処理を実行する。実行後、印刷処理は、終了される。
印刷量が基準値以上である場合には(S330:NO)、S350にて、CPU110は、第2実施例の制御処理、すなわち、図6のS210〜S290の処理を実行する。実行後、印刷処理は、終了される。
以上説明した第3実施例によれば、1個の印刷ジョブの印刷量に応じて、補正パラメータAmの更新頻度が変更される(S330)。この結果、印刷量が過度に多い場合であっても、印刷後のインクの残量を適切に調整できるとともに、印刷量が少ない場合には、1個の印刷ジョブで印刷される画像において色の変化が生じることを抑制できる。
D.変形例
(1)上記第1実施例では、印刷ジョブ分の画像が印刷されるごとに、第2実施例では、ページ画像が印刷されるごとに、補正パラメータAmを更新するための処理が行われている。これに代えて、例えば、主走査と副走査とが繰り返し実行されるインクジェットプリンタにおいては、所定回数(例えば、1〜10回程度)の主走査分の画像が印刷されるごとに、補正パラメータAmを更新するための処理が行われても良い。また、対象画像が、副走査方向の位置が異なる複数個のオブジェクトを含む場合には、1個のオブジェクトが印刷されるごとに、補正パラメータAmを更新するための処理が行われても良い。こうすれば、1個の印刷されたオブジェクトにおいて色の変化が生じることを抑制しつつ、比較的高い頻度で補正パラメータAmを更新することができる。
(2)図2のインクセンサ295Cは、一例であり、これに限られない。例えば、色材のインクである場合には、例えば、インクカートリッジ10Cの上面を光を透過する材料で形成し、インクカートリッジ10Cの上方から下方に向かって、インクカートリッジ10C内のCインクに光を照射するセンサが用いられても良い。この場合には、例えば、インクの残量が多いほど反射率が高くなるので、反射光の強度が大きくなる。このために、当該反射光の強度を測定することによって、インクの残量を特定することができる。この場合には、インクの残量をより高い分解能で実測できる
なお、プリンタが、トナーやインクなどの色材を、十分に高い分解能(例えば、0.1ml刻み)で実測できるセンサを搭載している場合には、印刷を行う度に、実測値Rm2が変化するので、印刷を行う度に、補正パラメータAmを更新できる。このような高分解能で実測できるセンサとしては、例えば、インクカートリッジの質量を高精度で計測できる分析天秤を採用可能である。この場合には、図4のS100で、取得された実測値Rm2_Cが、記録済みの実測値Rmr_Cと等しくなることは、起こらない。したがって、この場合には、例えば、図4のS100、S105、S130、S125は、省略されても良い。そして、図4のS115では、累積推定使用量に代えて、S80にて算出された推定使用量Ue_Cを用いて、推定使用量Ue_Cを実測使用量Um_Cで除した値に、補正パラメータAm_Cが更新される。したがって、この場合には、S80にて算出された推定使用量Ue_Cが、実測使用量Um_Cに対応する対応推定使用量の例である。また、この場合には、S10にて取得されたC、M、Y、Kの実測値Rm1_C、Rm1_M、Rm1_Y、Rm1_Kが、そのまま、インクの残量R_C、R_M、R_Y、R_Kとして用いられても良い。したがって、この場合には、例えば、図3のS15〜S42は、省略されても良い。
(3)上記各実施例では、実測使用量Umが累積推定使用量Usより小さい場合には、補正パラメータAmは、1より大きな値とされ、補正パラメータAmを用いない場合と比較して、S85での印刷時の実際のインクの使用量が増加される。これに代えて、インクの節約の観点から、補正パラメータAmの上限値を1として、実際のインクの使用量を増加させる補正は行わないこととしても良い。
(4)上記各実施例では、印刷後の複数種類のインクの残量のばらつきが、印刷前の当該ばらつきより小さくなるように、変更済画像データ生成処理が実行される。これに限らず、例えば、ユーザによって指定された特定のインクの使用量を、他のインクと比較して低減するように、変更済画像データ生成処理が実行されても良い。例えば、ユーザは、スペアのインクカートリッジを保有していないインクを指定し、スペアを保有しているインクカートリッジを指定しないこととすれば良い。
(5)図4のS110では、Cインクの実測値Rm2_Cと、記録済みの実測値Rmr_Cと、の差分が、実測使用量Um_Cとして算出される。これに代えて、例えば、n段階のCインクの実測値Rm2_Cは、1段階ずつ小さくなる方向に変化することを前提として、Cインクの実測値Rm2_Cに、それぞれ、実測使用量Um_Cが予め対応付けられていても良い。そして、S110では、例えば、Cインクの実測値Rm2_Cに対応付けられた実測使用量Um_Cが取得されても良い。例えば、図2の例では、レベル1に相当する実測値Rm2_Cには、図2の破線L1から破線L2までの空間に収容されるインク量が対応付けられ、レベル2に相当するレベル1に相当する実測値Rm2_Cには、図2の破線L2から破線L3までの空間に収容されるインク量が対応付けられる。
(6)上記各実施例では、C、M、Y、Kの全てのインクが変更済画像データ生成処理の対象とされているが、一部の複数種類のインクのみが変更済画像データ生成処理の対象とされても良い。例えば、無彩色のKのインクを対象とせず、有彩色のC、M、Yのインクのみを変更済画像データ生成処理の対象としても良い。
(7)上記各実施例において端末装置100によって実行される印刷処理は、例えば、プリンタ200のCPU210によって実行されても良い。この場合には、端末装置100は、無くても良く、端末装置100は、単に、印刷指示に基づく印刷ジョブをプリンタ200に送信するだけでも良い。この場合には、プリンタ200の筐体内の印刷機構290が印刷装置の例であり、プリンタ200の筐体内のCPU210が、印刷装置のための制御装置の例である。
また、端末装置100に代えて、プリンタ200とインターネットなどのネットワークを介して接続されたサーバが、各実施例の印刷処理を実行しても良い。この場合には、端末装置100またはプリンタ200から印刷ジョブが、サーバに送信されたときに、各実施例の印刷処理が実行される。そして、サーバは、図4の85では、印刷データをプリンタ200に送信することによって、プリンタ200に印刷を実行させる。この場合には、サーバが、印刷装置のための制御装置の例である。該サーバは、1つの計算機であっても良く、互いに通信可能な複数個の計算機を含むいわゆるクラウドサーバであっても良い。
(8)上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
また、本発明の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体(例えば、一時的ではない記録媒体)に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体(コンピュータ読み取り可能な記録媒体)に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやCD−ROMのような携帯型の記録媒体に限らず、各種ROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含み得る。
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。