A.第1実施例
A−1.印刷システム1000の構成
図1は、印刷システムの構成を示すブロック図である。印刷システム1000は、印刷装置のための制御装置としてのサーバ100と、印刷装置としてのプリンタ200、200A、200Bと、を備えている。サーバ100とプリンタ200、200A、200Bとは、それぞれ、インターネット70に接続されている。この結果、サーバ100とプリンタ200、200A、200Bとは、インターネット70とを介して、通信可能である。
プリンタ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は、1以上の整数であり、より好ましくは、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、200A、200Bの製造者によって運用・管理されている公知の計算機である。サーバ100は、サーバ100のコントローラとしてCPU110と、DRAMなどの揮発性記憶装置120と、フラッシュメモリやハードディスクドライブなどの不揮発性記憶装置130と、外部機器と通信を行う通信部170と、を備えている。例えば、通信部170は、インターネット70などのネットワークに接続するためのインタフェースを含んでいる。サーバ100は、1つの計算機であっても良く、互いに通信可能な複数個の計算機を含むいわゆるクラウドサーバであっても良い。
揮発性記憶装置120は、CPU110が処理を行う際に生成される種々のデータを一時的に格納するバッファ領域を提供する。不揮発性記憶装置130には、コンピュータプログラムPG2と、記録テーブルRTと、が格納されている。
コンピュータプログラムPG2は、例えば、サーバ100の管理者によって、インターネット70を介してサーバ100にアップロードされることにより、サーバ100にインストールされる。コンピュータプログラムPG2は、例えば、DVD−ROMなどに格納された形態で提供され、サーバ100の管理者によって、サーバ100にインストールされても良い。CPU110は、コンピュータプログラムPG2を実行することにより、プリンタ200のユーザに印刷サービスを提供する。具体的には、CPU110は、クライアントとしてのプリンタ(例えば、プリンタ200)と協働して、後述する印刷処理を実行することによって、印刷サービスを提供する。
記録テーブルRTは、プリンタ200、200B、200Cを含むクライアントとしての複数個のプリンタに関する各種の情報を記録する。図3は、記録テーブルRTの一例を示す図である。本実施例の記録テーブルRTは、補正パラメータ記録テーブルRTaと、インク情報記録テーブルRTbと、を含んでいる。
補正パラメータ記録テーブルRTaには、クライアントである複数個のプリンタのそれぞれのために使用された補正パラメータAmが、クライアントの識別子としてのユーザ名と、使用されたプリンタに関する情報(以下、装置情報とも呼ぶ)と、該補正パラメータAmの記録日と、に関連付けて記録されている。すなわち、補正パラメータ記録テーブルRTaの各エントリEaは、ユーザ名と、補正パラメータAmと、該補正パラメータAmの記録日と、装置情報と、を含んでいる。装置情報は、プリンタのモデル名、プリンタの製造日、プリンタの製造から現在までの累積の印刷枚数(以下、累積印刷枚数と呼ぶ)と、を含んでいる。なお、1個のエントリEaに含まれる補正パラメータAm(例えば、図3のAm_2)は、詳細は後述するが、C、M、Y、Kの複数種類のインクに対応する複数個の補正パラメータAm_C、Am_M、Am_Y、Am_Kを含んでいる。なお、本明細書では、補正パラメータAmについて、インクの種類ごとに区別する場合には、符号の末尾に、インクの種類を示す英字を含む記号を付す。例えば、Cインクの補正パラメータAmは、補正パラメータAm_C、Yインクの補正パラメータAmは、補正パラメータAm_Yと表現する。インクの種類ごとに区別しない場合は、当該記号を省略する。他の各種の値についても同様である。
インク情報記録テーブルRTbには、クライアントである複数個のプリンタのそれぞれについて、インクの実測値Rmrと累積推定使用量Usとが、ユーザ名と、実測値Rmrと累積推定使用量Usの記録日と、に関連付けて記録されている。すなわち、インク情報記録テーブルRTbの各エントリEbは、ユーザ名と、実測値Rmrと、累積推定使用量Usと、これらの記録日と、を含んでいる。なお、1個のエントリEbに含まれる実測値Rmr(例えば、図3のRmr_2)は、詳細は後述するが、複数種類のインクに対応する複数個の実測値Rmr_C、Rmr_M、Rmr_Y、Rmr_Kを含んでいる。同様に、累積推定使用量Us(例えば、図3のUs_2)も、詳細は後述するが、複数種類のインクに対応する複数個の累積推定使用量Us_C、Us_M、Us_Y、Us_Kを含んでいる。
A−2.印刷処理
図4〜図6は、第1実施例の印刷処理のフローチャートである。この印刷処理は、例えば、ユーザの指示に基づいてクライアントのプリンタが、印刷要求をサーバ100に送信し、該印刷要求をサーバ100が受信したときに、開始される。この印刷処理は、サーバ100のCPU110によって実行される。以下では、印刷要求をサーバ100に送信したプリンタ、すなわち、印刷要求元のプリンタは、プリンタ200であるとして説明する。他のプリンタ(例えば、プリンタ200A)が、印刷要求元である場合にも、同様の処理が実行される。
S10では、CPU110は、印刷要求元のプリンタ200のユーザ名と、装置情報と、を取得する。該ユーザ名と装置情報は、例えば、印刷要求に含まれている。取得される装置情報は、プリンタ200のモデル名、プリンタ200の製造日、プリンタ200の累積印刷枚数と、を含んでいる。
S20では、CPU110は、使用補正パラメータ生成処理を実行する。図7は、使用補正パラメータ生成処理のフローチャートである。使用補正パラメータ生成処理は、補正パラメータ記録テーブルRTaに記録された補正パラメータAmを用いて、印刷処理にて使用すべき使用補正パラメータAmuを生成する処理である。
S210では、CPU110は、補正パラメータ記録テーブルRTaの複数個のエントリEaから、1個の処理対象のエントリを選択する。ただし、本ステップでは、印刷要求元のプリンタ200に対応するエントリは、選択の対象から除かれる。S215では、CPU110は、処理対象のエントリに対応するプリンタ(処理対象のプリンタとも呼ぶ)が抽出条件を満たすか否かを判断する。具体的には、以下の条件(A)〜(C)が全て満たされる場合に、抽出条件が満たされると判断される。
条件(A)処理対象のプリンタのモデル名が、印刷要求元のプリンタ200のモデル名と同一である
条件(B)処理対象のプリンタの使用期間と、印刷要求元のプリンタ200の使用期間と、の差が、基準TH1以下である
条件(C)処理対象のプリンタの累積印刷枚数と、印刷要求元のプリンタ200の累積印刷枚数と、の差が、基準TH2以下である
基準TH1、TH2は、補正パラメータ記録テーブルRTaに記録されたエントリの個数に応じて、適切な個数の補正パラメータAmが抽出されるように、予め設定されている。抽出される補正パラメータAmの個数は、例えば、20個〜200個程度が想定される。これらの条件(A)〜(C)は、印刷要求元のプリンタ200と印刷に関する特性が類似することを示す条件である、と言うことができる。例えば、モデル名が互いに同一であるプリンタは、印刷ヘッド等の部品や制御プログラムが同一であるので、印刷に関する特性が互いに類似している可能性が高い。また、使用期間が比較的近いプリンタは、印刷ヘッド等の部品の経年劣化の程度が互いに類似しているので、印刷に関する特性が互いに類似している可能性が高い。また、累積印刷枚数が比較的近いプリンタは、印刷ヘッド等の部品の使用による消耗や劣化の程度が互いに類似しているので、印刷に関する特性が互いに類似している可能性が高い。このような条件(A)〜(C)を用いることで、印刷要求元のプリンタ200と印刷に関する特性が類似したプリンタの補正パラメータAmを適切に抽出できる。この結果、適切な使用補正パラメータAmuを生成することができる。
これらの条件は、いずれも処理対象のエントリに含まれる装置情報と、S10にて取得された装置情報と、を参照して判断される。例えば、処理対象のエントリに含まれる製造日と、印刷要求元のプリンタ200の製造日と、の違いが、所定の基準期間以下である場合に、条件(B)が満たされると判断される。
処理対象のプリンタが抽出条件を満たす場合には(S215:YES)、S220にて、CPU110は、処理対象のエントリ内の補正パラメータAm(すなわち、処理対象のプリンタに対応する補正パラメータAm)を抽出して、S230に処理を進める。処理対象のプリンタが抽出条件を満たさない場合には(S215:NO)、CPU110は、S220をスキップして、すなわち、処理対象のエントリ内の補正パラメータAmを抽出せずに、S230に処理を進める。
S230では、CPU110は、全てのエントリEaについて処理したか否かを判断する。未処理のエントリEaがある場合には(S230:NO)、CPU110は、S210に戻って、未処理のエントリEaを選択する。全てのエントリEaについて処理された場合には(S230:YES)、CPU110は、S235に処理を進める。
S235では、CPU110は、抽出された複数個の補正パラメータAmの平均値を算出する。具体的には、C、M、Y、Kの複数種類のインクに対応する複数個の補正パラメータAm_C、Am_M、Am_Y、Am_Kのそれぞれについて、平均補正パラメータAma_C、Ama_M、Ama_Y、Ama_Kが算出される。
S240では、CPU110は、補正パラメータ記録テーブルRTaに、印刷要求元のプリンタ200のために使用された補正パラメータAmoが、記録されているか否かを判断する。該補正パラメータAmoは、本実施例では、過去に実行された印刷処理にて生成され、図6のS190にて、補正パラメータ記録テーブルRTaに記録された使用補正パラメータAmuである。このため、プリンタ200からの最初の印刷要求に基づく印刷処理では、本ステップの時点で、補正パラメータ記録テーブルRTaにプリンタ200の補正パラメータAmoは記録されていない。プリンタ200からの2回目以降の印刷要求に基づく印刷処理では、本ステップの時点で、補正パラメータ記録テーブルRTaにプリンタ200の補正パラメータAmoが記録されている。
補正パラメータ記録テーブルRTaに、印刷要求元のプリンタ200の補正パラメータAmoが記録されている場合には(S240:YES)、S245にて、CPU110は、印刷要求元のプリンタ200の補正パラメータAmoと、その記録日(記録時期)と、を補正パラメータ記録テーブルRTaから取得する。
S250では、CPU110は、印刷要求元のプリンタ200の補正パラメータAmoの記録日に応じた重み係数WT(0≦WT≦1)を決定する。具体的には、該補正パラメータAmoの記録日から現在の日時までの経過時間Teが短いほど、大きな係数WTが決定され、該補正パラメータAmoの記録日から現在の日時までの経過時間Teが長いほど、小さな係数WTが決定される。換言すれば、経過時間Teが第1の時間である場合には、第1の係数WT1が決定され、経過時間Teが第1の時間より長い第2の時間である場合には、第1の係数WT1より小さな第2の係数WT2が決定される。例えば、該経過時間Teが、1ヶ月未満であれば、1が係数WTとして決定され、経過時間Teが3年以上であれば、0が係数1として決定される。そして、該経過時間Teが、1ヶ月以上、かつ、3年未満である場合には、経過時間Teが増加するに連れて、1から0まで直線的に減少するように、係数WTが決定される。
S255では、CPU110は、S235で算出された平均補正パラメータAmaと、印刷要求元のプリンタ200の補正パラメータAmoと、を用いて、使用補正パラメータAmuを算出する。具体的には、Cインクに対応する使用補正パラメータAmu_Cは、平均補正パラメータAma_Cと、プリンタ200の補正パラメータAmo_Cと、重み係数WTと、を用いて、以下の式(1)によって算出される。
Amu_C=WT×Amo_C+(1−WT)×Ama_C ...(1)
式(1)から解るように、重み係数WTは、過去に生成されたプリンタ200の補正パラメータAmoの使用補正パラメータAmuに対する寄与の大きさを示す係数である。なお、M、Y、Kインクに対応する使用補正パラメータについても同様に算出される。
補正パラメータ記録テーブルRTaに、印刷要求元のプリンタ200の補正パラメータAmoが記録されていない場合には(S240:NO)、S260にて、CPU110は、平均補正パラメータAmaを、使用補正パラメータAmuとして決定する。使用補正パラメータAmuが決定されると、使用補正パラメータ生成処理は終了される。
図4のS40では、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と呼ぶ。
具体的には、CPU110は、n段階の値を、当該値と判定される残量のうちの最大値に変換する。例えば、図2の例では、CインクIkCの液面が、破線L2以上であり、かつ、破線L3より低い範囲内にあれば、レベル2であると判定される。CPU110は、変換前のレベル2の実測値を、レベル2と判定されるインクの残量のうちの最大値、すなわち、図2のハッチングで示す状態のインクの残量に変換する。本実施例では、後述するように、1個の印刷ジョブに対応する印刷が行われる度に、すなわち、印刷によってインクが少しずつ消費される度に、インクの残量の実測値が取得される。このために、インクの残量の実測値が変化した時点では、インクの残量は、変化後の実測値と判定されるインクの残量のうちの最大値にほぼ等しいと考えられる。本実施例では、インクの残量の実測結果が変化した時点でのインクの残量を、実測値Rmとして取得することが好ましいために、上述の変換が行われる。なお、図2の例におけるレベル5のような最大の実測値は、インクカートリッジの初期のインクの収容量に変換される。各レベルに対応する変換後の値は、予めコンピュータプログラムPG2に記述されている。
S45では、CPU110は、C、M、Y、Kの複数種類のインクから1個のインクを、処理対象のインクとして選択する。以下では、Cインクが処理対象であるとして説明するが、他のインクが処理対象であっても同様に処理が行われる。
S50では、CPU110は、S40にて取得されたCインクの実測値Rm1_Cが、図3のインク情報記録テーブルRTbに記録済のCインクの実測値Rmr_Cと異なるか否かを判断する。具体的には、CPU110は、図3のインク情報記録テーブルRTbから、印刷要求元のプリンタ200のユーザ名を検索する。そして、インク情報記録テーブルRTbから該ユーザ名が検索された場合には、該ユーザ名を含むエントリEb(すなわち、印刷要求元のプリンタ200に対応するエントリEb)の実測値Rmr(例えば、図3のRmr_2)に含まれるCインクの実測値Rmr_Cが取得される。記録済みの実測値Rmr_Cは、後述するS55またはS170で、インク情報記録テーブルRTbに記録される実測値である。したがって、プリンタ200からの印刷要求に基づく初回の印刷処理では、この時点では、インク情報記録テーブルRTbに、印刷要求元のプリンタ200の実測値Rmrが記録されていない。この場合には、取得された実測値Rm1_Cは、記録済みの実測値Rmr_Cと異なるものと判断される。なお、印刷要求元のプリンタ200の実測値Rmrが記録されている場合において、取得された実測値Rm1_Cが、記録済みの実測値Rmr_Cと異なる場合として想定されるのは、Cインクのインクカートリッジが交換された場合である。したがって、取得された実測値Rm1_Cが記録済みの実測値Rmr_Cと異なる場合は、取得された実測値Rm1_Cが最大の残量(初期の収容量)を示す場合である。
取得された実測値Rm1_Cが、記録済みの実測値Rmr_Cと異なる場合には(S50:YES)、S55にて、CPU110は、取得された実測値Rm1_Cを、記憶済みの実測値Rmr_Cに代えて、インク情報記録テーブルRTbに記録する。すなわち、印刷要求元のプリンタ200に対応するエントリEbにおいて、現在の記憶済みの実測値Rmr_Cが削除されて、取得された実測値Rm1_Cが、新たな記憶済みの実測値Rmr_Cとして記録される。なお、現在の記憶済みの実測値Rmr_Cがない場合には、取得された実測値Rm1_Cが、新たな記憶済みの実測値Rmr_Cとして記録される。
S60では、CPU110は、処理対象のCインクの記録済みの累積推定使用量Us_Cを削除する。具体的には、図3のインク情報記録テーブルRTbにおいて、印刷要求元のプリンタ200に対応するエントリEbの累積推定使用量Us(例えば、図3のUs_2)に含まれるCインクの累積推定使用量Us_Cが削除される。インク情報記録テーブルRTbから該ユーザ名が検索されない場合には、本ステップは行われない。
S65では、CPU110は、取得された実測値Rm1_Cを、現在のCインクの残量R_Cに決定する。
取得された実測値Rm1_Cが、記録済みの実測値Rmr_Cと同じである場合には(S50:NO)、S70にて、CPU110は、Cインクの累積推定使用量Us_Cを取得する。具体的には、図3のインク情報記録テーブルRTbにおいて、印刷要求元のプリンタ200に対応するエントリEbの累積推定使用量Us(例えば、図3のUs_2)に含まれるCインクの累積推定使用量Us_Cが取得される。
S75では、CPU110は、取得された実測値Rm1_Cから、Cインクの累積推定使用量Us_Cを減じた値を、Cインクの現在の残量R_Cに決定する。
S80では、CPU110は、C、M、Y、Kの全てのインクについて処理したか否かを判断する。未処理のインクがある場合には(S80:NO)、CPU110は、S45に戻って、未処理のインクを選択する。全てのインクについて処理された場合には(S80:YES)、CPU110は、図5のS85に処理を進める。S85に処理が進められる時点で、印刷要求元のプリンタ200におけるC、M、Y、Kのそれぞれの現在のインクの残量R_C、R_M、R_Y、R_Kが決定されている。
S85では、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)に決定される。
目標使用比率は、後述する図5のS130での印刷時に使用されるC、M、Y、Kのインクの量の比率の目標値である。上記の決定方法によれば、現在のインクの残量が第1のインク(例えば、Cインク)より少ない第2のインク(例えば、Mインク)の使用量が、第1のインクの使用量より少なくなるように、目標使用率が決定される。この結果、後述するS110、S115の処理では、印刷要求元のプリンタ200において、S130の印刷が実行された後のC、M、Y、Kの複数種類のインクの残量のばらつきが、印刷が実行される前の複数種類のインクの残量のばらつきより小さくなるように、印刷時に使用される複数種類のインクの量の比率を変更することができる。
S90では、CPU110は、1個の印刷ジョブに対応する対象画像データ、すなわち、本印刷処理の開始の契機となった印刷要求に対応する対象画像データの全体を取得する。具体的には、CPU110は、プリンタ200に対して対象画像データの送信要求を送信し、プリンタ200から対象画像データを取得する。対象画像データは、例えば、複数個の画素にて構成されるビットマップデータであり、画素ごとの色をRGB値で表すRGB画像データである。1個の画素のRGB値は、赤(R)と緑(G)と青(B)との3個の色成分の階調値(例えば、256階調の階調値)を含んでいる。変形例としては、対象画像データは、所定の記述言語によって記述された画像データ(ベクトルデータとも呼ぶ)であっても良い。所定の記述言語は、例えば、PCL(Printer Control Languageの略)や、PostScriptなどのページ記述言語を用いて記述されていても良い。
S95では、CPU110は、対象画像データを解析して、C、M、Y、Kの各インクについて、対象画像データによって表される対象画像を印刷した場合に使用されるインク量の推定値である推定使用量OUe_C、OUe_M、OUe_Y、OUe_Kを算出する。ここで、算出される推定使用量OUe_C、OUe_M、OUe_Y、OUe_Kは、後述する図5のS125にて算出される、変更済画像を印刷した場合に使用されるインクの推定値である推定使用量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を算出する。
S100では、CPU110は、後述するS110、S115の処理のために、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)に決定される。
S105では、CPU110は、各インクの使用量の変更係数Cr_C、Cr_M、Cr_Y、Cr_Kを、各インクに対応する使用補正パラメータAmu_C、Amu_M、Amu_Y、Amu_Kを用いて補正して、補正済変更係数Ca_C、Ca_M、Ca_Y、Ca_Kを決定する。具体的には、Cインクの補正済変更係数Ca_Cは、補正前のCインクの変更係数Cr_Cに、Cインクの使用補正パラメータAmu_Cを乗じた値に決定される(Ca_C=Cr_C×Amu_C)。なお、各インクの使用補正パラメータAmuは、上述したS20の使用補正パラメータ生成処理にて生成された値である。
S110では、CPU110は、補正済変更係数Ca_C、Ca_M、Ca_Y、Ca_Kを用いて、C、M、Y、Kの各インクに対応する成分値(C値、M値、Y値、K値)用のトーンカーブを生成する。図8は、各成分値用のトーンカーブの一例を示す図である。図8(A)〜(D)には、C値、M値、Y値、K値用のトーンカーブがそれぞれ図示されている。
図8において、横軸は、ゼロから255の範囲内で変化し得る入力値Viを示し、縦軸は、出力値Voを示している。図中の破線RLsは、階調値を変化させない対応関係、すなわち、入力値Viの全範囲においてVo=Viである対応関係を示すラインである。図中の実線は、トーンカーブを示している。
トーンカーブは、入力値Viと出力値Voとの対応関係を表している。本実施例では、補正済変更係数Ca(Caは、下限値(2/5)≦Caを満たす値)のトーンカーブは、入力値Viと出力値Voと補正済変更係数Ca_Cとを用いて、以下の式(2)で表すことができる。
Vo=Ca×Vi(ただし、Ca×Vi>255の場合は、Vo=255)...(2)
すなわち、補正済変更係数Caのトーンカーブは、Ca<1の場合には、入力値Viに対して、入力値Viを{(1−Ca)×100}%だけ低減した値を、出力値Voとして対応付けるトーンカーブである。また、補正済変更係数Caのトーンカーブは、Ca>1の場合には、入力値Viに対して、入力値Viを{(Ca−1)×100}%だけ増加させた値を、出力値Voとして対応付けるトーンカーブである。ここで、補正前の変更係数Crは、1以下の値であるが、使用補正パラメータAmuは、1より大きい場合があるので、補正済変更係数Caは、1より大きくなる場合がある。
S115では、CPU110は、生成されたトーンカーブによる色変換をCMYK画像データに適用して、変更済画像データを生成する。具体的には、CMYK画像データに含まれる複数個の画素のC値、M値、Y値、K値が、それぞれ対応するトーンカーブを用いて変換される。S85、S95〜S115の一連の処理は、印刷時に使用されるC、M、Y、Kの複数種類のインクの量の比率を変更して、変更済画像データを生成する変更済画像データ生成処理と、言うことができる。
S120では、CPU110は、生成された変更済画像データを用いて印刷データを生成する。具体的には、CPU110は、変更済画像データに対してハーフトーン処理を実行して、ドットデータを生成する。CPU110は、該ドットデータを含む印刷データを生成する。
S125では、CPU110は、印刷データ(ドットデータ)を解析して、C、M、Y、Kの各インクについて、印刷データを用いた印刷において使用されるインク量の推定値である推定使用量Ue_C、Ue_M、Ue_Y、Ue_Kを算出する。この推定使用量は、S115にて生成された変更済画像データによって表される変更済画像を印刷した場合に使用されるインク量の推定値と言うことができるので、変更済画像の推定使用量Ueとも呼ぶ。
具体的には、CPU110は、印刷データ(ドットデータ)に基づいて、C、M、Y、Kの各インクについてドットの形成数をカウントし、当該ドットの形成数に、1ドット辺りのインク使用量を示す係数を乗じることによって、変更済画像の推定使用量Ue_C、Ue_M、Ue_Y、Ue_Kを算出する。
S130では、CPU110は、生成された印刷データをプリンタ200に送信(供給)する。プリンタ200は、印刷データを受信すると、該印刷データを用いて印刷機構290を制御して、変更済画像の印刷を実行する。
変更済画像の印刷後のS135では、CPU110は、図4のS40と同様に、複数種類のインクの残量の実測値Rm2をインクごとにそれぞれ取得する。具体的には、CPU110は、各インクの残量の測定要求を、プリンタ200に送信し、プリンタ200から実測値Rm2_C、Rm2_M、Rm2_Y、Rm2_Kを取得する。
図6のS140では、CPU110は、複数種類のインクから1個のインクを、処理対象のインクとして選択する。以下では、Cインクが処理対象であるとして説明するが、他のインクが処理対象であっても同様に処理が行われる。
S145では、S135にて取得されたCインクの実測値Rm2_Cが、補正パラメータ記録テーブルRTaに記録済のCインクの実測値Rmr_Cと異なるか否かを判断する。ここで、取得された実測値Rm2_Cが、記録済みの実測値Rmr_Cと異なる場合として想定されるのは、S130での印刷によってCインクが消費されることによってCインクの残量の実測値が変化した場合である。したがって、取得された実測値Rm2_Cが記録済みの実測値Rmr_Cと異なる場合は、取得された実測値Rm2_Cが記録済みの実測値Rmr_Cより一段階少ない残量を示す場合である。
取得された実測値Rm2_Cが、記録済みの実測値Rmr_Cと異なる場合には(S145:YES)、S150にて、CPU110は、Cインクの累積推定使用量Us_Cを算出する。すなわち、CPU110は、インク情報記録テーブルRTbから、印刷要求元のプリンタ200に対応するエントリEaの累積推定使用量Usに含まれるCインクの累積推定使用量Us_Cを取得する。そして、CPU110は、該累積推定使用量Us_Cに、S125にて算出されたCインクの推定使用量Ue_Cを加算することによって、新たなCインクの累積推定使用量Us_Cを算出する。なお、インク情報記録テーブルRTbに、印刷要求元のプリンタ200の累積推定使用量Us_Cが記録されていない場合には、S125にて算出されたCインクの推定使用量Ue_Cが、そのまま、Cインクの累積推定使用量Us_Cとされる。
S155では、CPU110は、Cインクについて、前回に実測値Rmr_Cが変化したときから現在までのインクの実測使用量Um_Cを算出する。具体的には、S135にて今回取得されたCインクの実測値Rm2_Cと、記録済みの実測値Rmr_Cと、の差分が、実測使用量Um_Cとして算出される。例えば、記録済みの実測値Rmr_Cが、n段階の実測値のうち、レベル2に相当する実測値であり、今回取得された実測値Rm2_Cがレベル1に相当する実測値である場合には、図2のインクカートリッジ10Cの破線L3から破線L2までのインクの収容量に相当する量が、実測使用量Um_Cとして算出される。
S165では、CPU110は、インクの使用補正パラメータAmu_Cを更新する。具体的には、S150にて算出された累積推定使用量Us_Cを、S155にて算出された実測使用量Um_Cで除した値(Us_C/Um_C)が、Cインクの新たな使用補正パラメータAmu_Cとされる。この説明から解るように、本実施例における更新後の使用補正パラメータAmu_Cは、実測使用量Um_Cに対する累積推定使用量Us_Cの比率である。
実測使用量Um_Cが累積推定使用量Us_Cより大きい場合には、実際の印刷では、推定されたインクの使用量より多量のインクが使用される可能性が高い。この場合には、使用補正パラメータAmu_Cは、1より小さな値となる。したがって、このような使用補正パラメータAmu_Cは、S105にて用いられると、該使用補正パラメータAmu_Cを用いない場合と比較して、S130での印刷時の実際のCインクの使用量が減少する。
また、実測使用量Um_Cが累積推定使用量Us_Cより小さい場合には、実際の印刷では、推定されたインクの使用量より少量のインクが使用される可能性が高い。この場合には、使用補正パラメータAmu_Cは、1より大きな値となる。したがって、このような使用補正パラメータAmu_Cは、S105にて用いられると、該使用補正パラメータAmu_Cを用いない場合と比較して、S130での印刷時の実際のCインクの使用量が増加する。このように、本実施例の使用補正パラメータAmu_Cを用いれば、実測使用量Um_Cと累積推定使用量Us_Cとの間の差を低減するように、印刷時に使用されるCインクの量を適切に補正できる。すなわち、推定されたCインクの使用量と、印刷時の実際のCインクの使用量とが近づくように、適切に、変更係数Crを補正できる。
S170では、CPU110は、取得された実測値Rm2_Cを、記憶済みの実測値Rmr_Cに代えて、インク情報記録テーブルRTbに記録する。すなわち、インク情報記録テーブルRTbの要求元のプリンタ200のエントリEbにおいて、現在の記憶済みの実測値Rmr_Cが削除されて、取得された実測値Rm2_Cが、新たな記憶済みの実測値Rmr_Cとして記録される。
S175では、CPU110は、Cインクの記録済みの累積推定使用量Us_Cを削除する。すなわち、インク情報記録テーブルRTbから、印刷要求元のプリンタ200のエントリEbに記録済みの累積推定使用量Us_Cが削除される。削除すべき記録済みの累積推定使用量Us_Cがない場合は、本ステップは行われない。
取得された実測値Rm2_Cが、記録済みの実測値Rmr_Cと等しい場合には(S145:NO)、S180にて、CPU110は、Cインクの累積推定使用量Us_Cをインク情報記録テーブルRTbに記録する。すなわち、CPU110は、インク情報記録テーブルRTbから、印刷要求元のプリンタ200に対応するエントリEaの累積推定使用量Usに含まれるCインクの累積推定使用量Us_Cを取得する。CPU110は、該累積推定使用量Us_Cに、S125にて算出されたCインクの推定使用量Ue_Cを加算することによって、新たなCインクの累積推定使用量Us_Cを算出する。CPU110は、印刷要求元のプリンタ200に対応するエントリEaに、新たなCインクの累積推定使用量Us_Cを記録する。
S185では、CPU110は、C、M、Y、Kの全てのインクについて処理したか否かを判断する。未処理のインクがある場合には(S185:NO)、CPU110は、S140に戻って、未処理のインクを選択する。全てのインクについて処理された場合には(S185:YES)、CPU110は、S190に処理を進める。
S190では、CPU110は、補正パラメータ記録テーブルRTaおよびインク情報記録テーブルRTbを更新する。具体的には、補正パラメータ記録テーブルRTaにおいて、印刷要求元のプリンタ200のエントリEaに、S105で使用した使用補正パラメータAmuが記録される。ただし、S165にて、使用補正パラメータAmuが更新されている場合には、更新後の使用補正パラメータAmu_Cが記録される。また、プリンタ200の印刷要求に基づく最初の印刷処理である場合には、印刷要求元のプリンタ200のエントリEaが存在しない。この場合には、補正パラメータ記録テーブルRTaに、印刷要求元のプリンタ200のエントリEaが作成され、該作成されたエントリEaに使用補正パラメータAmuが記録される。また、本ステップでは、印刷要求元のプリンタ200のエントリEaの累計印刷枚数と記録日の更新も行われる。
さらに、ここまでの処理にて、インク情報記録テーブルRTbにおいて、累積推定使用量Usや実測値Rmrの記録が行われているので、本ステップにて、記録日の更新が行われる。補正パラメータ記録テーブルRTaおよびインク情報記録テーブルRTbの更新が終了すると、印刷処理は、終了される。
以上説明した本実施例によれば、図4のS20の使用補正パラメータ生成処理にて、印刷要求元のプリンタ200のための複数個の使用補正パラメータAmu_C、Amu_M、Amu_Y、Amu_Kが取得される。使用補正パラメータAmu_Cは、印刷要求元のプリンタ200とは異なるプリンタ(例えば、プリンタ200A、200B)による印刷のために使用された補正パラメータ(補正パラメータ記録テーブルRTaに記録された補正パラメータ)を用いて生成される(図7)。ここで、使用補正パラメータAmu_Cの生成に用いられる補正パラメータAmは、上述した条件(A)〜(C)を満たすプリンタである(S215)。そして、対象画像データに基づく印刷(S130での印刷)の前に、複数種類のインクの残量をインクごとにそれぞれ示す複数個の印刷前残量として、図4のS65、S75にて、インクの残量R_C、R_M、R_Y、R_Kが取得される。対象画像データに対して、変更済画像データ生成処理が実行されて(S85、S95〜S115)、変更済画像データが生成される。上述のように、変更済画像データ生成処理は、インクの残量Rと、各インクに対応する使用補正パラメータAmuと、を用いて実行される(S85、S105)。具体的には、インクの残量Rに基づいて、目標使用比率が決定され(S85)、該目標使用比率に基づいて、各インクの変更量を定める変更係数Crが決定される(S100)。そして、使用補正パラメータAmu_Cは、該変更係数Crを補正するために用いられている(S105)。S105にて決定される補正済変更係数Caは、最終的に各インクの変更量を決定する係数であるので、補正済変更係数Caを決定することは、各インクの変更量を決定することに等しい。この結果、印刷要求元のプリンタ200と印刷に関する特性が類似することを示す特定の条件を満たすプリンタによる印刷のための使用補正パラメータ生成処理にて使用された補正パラメータAmを用いて、今回の使用補正パラメータAmuが生成される。そして、該使用補正パラメータAmuを用いて、対象画像データに対して変更済画像データ生成処理が実行される。この結果、変更済画像データ生成処理において、印刷要求元のプリンタ200の特性に適した使用補正パラメータAmuを用いて、複数種類のインクの比率を適切に調整することができる。したがって、印刷後のインクの残量を適切に調整し得る。
例えば、プリンタ200においてCインクを吐出するノズルの製造時のばらつき、経年劣化、インクによる目詰まりの状況、使用される温度条件によって、1ドット辺りのインクの使用量は異なり得る。対象画像の推定使用量OUe_Cは、印刷データを解析して得られる値であり、1ドット辺りのインクの使用量を示す1個の固定値である係数を用いて算出される。したがって、図5のS90で算出される対象画像の推定使用量OUe_Cは、実際に使用されたCインクの量を正確に示していない場合がある。このような場合に、推定使用量OUe_Cに基づいて、Cインクの変更係数Cr_Cを決定しても、仮に変更係数Cr_Cを補正することなく、そのまま用いて、S110、S115の処理を行うとすれば、S130での印刷後のCインクの残量を適切に調整できない可能性がある。本実施例によれば、S105にて、Cインクの変更係数Cr_Cは、使用補正パラメータAmu_Cを用いて補正されるので、このような不具合を抑制することができる。
ここで、プリンタ200からの印刷要求に基づく初回の印刷処理では、当該プリンタ200のために過去に使用された使用補正パラメータAmuは存在しない。また、プリンタ200からの印刷要求に基づく2回目以降の印刷処理であっても、前回の印刷処理から比較的長い期間(例えば、数年)が経過している場合には、その間に、プリンタ200の経年劣化が進んでいる場合がある。この場合には、過去に使用された使用補正パラメータAmuをそのまま使用することが不適切である場合もある。このような場合であっても、本実施例によれば、S20の使用補正パラメータ生成処理において、他のプリンタで使用された補正パラメータAm_Cを用いて、プリンタ200のための適切な使用補正パラメータAmuを取得することができる。
さらに、本実施例によれば、サーバ100は、プリンタ200とは異なる複数個のプリンタによる印刷のための変更済画像データ生成処理にてそれぞれ使用された複数個の補正パラメータAmが記録された補正パラメータ記録テーブルRTaが格納される不揮発性記憶装置130を備える(図1)。そして、不揮発性記憶装置130に格納される複数個の補正パラメータAmから、上述の条件(A)〜(C)を満たすプリンタに対応する補正パラメータAmが、使用補正パラメータAmuを生成するための補正パラメータとして選択される(図7のS210〜S230)。この結果、過去に使用された複数個の補正パラメータAmから選択された補正パラメータを用いて、適切な使用補正パラメータAmuを生成することができる。
さらに、本実施例によれば、図7のS210〜S230にて抽出された複数個の補正パラメータAmを用いて得られる統計量が、使用補正パラメータAmuとして取得される。具体的には、複数個の補正パラメータAmの平均補正パラメータAma(図7のS260)や、該平均補正パラメータAmaと、過去にプリンタ200のために使用された補正パラメータAmoと、の重み付き平均値(図7のS255)が、使用補正パラメータAmuとして取得される。この結果、他のプリンタのために過去に使用された1個の補正パラメータAmを用いて使用補正パラメータAmuを取得する場合と比較して、適切な使用補正パラメータAmuを取得することができる。例えば、1個の補正パラメータAmが使用された他のプリンタが、使用環境等が特殊なために、プリンタ200とはかけ離れた特性を有する可能性もある。このような場合に、他のプリンタのために過去に使用された1個の補正パラメータAmを、そのまま、使用補正パラメータAmuとする場合には、使用補正パラメータAmuが不適切な値となり得る。本実施例では、このような不都合を抑制できる。
さらに、本実施例によれば、プリンタ200による印刷のために過去に実行済みの印刷処理にて使用された補正パラメータAmが、補正パラメータ記録テーブルRTaから取得される(図7のS245)。そして、他のプリンタのために使用された補正パラメータAmと、プリンタ200のために過去に使用された補正パラメータAmoと、を用いて、使用補正パラメータAmuが取得される(図7のS255)。この結果、プリンタ200のために過去に使用された補正パラメータAmoを用いて、より適切な使用補正パラメータAmuを取得することができる。
さらに、本実施例によれば、プリンタ200のために過去に使用された補正パラメータAmoが使用された時期からの経過時間Teが第1の時間である場合には、該補正パラメータAmの寄与の大きさを示す第1の係数WT1を用いて、使用補正パラメータAmuが取得される(図7のS250、S255)。該補正パラメータAmが使用された時期からの経過時間Teが第1の時間より長い第2の時間である場合には、該補正パラメータAmoの寄与の大きさを示す第2の係数WT2であって、第1の係数WT1より小さな寄与を示す第2の係数WT2を用いて、使用補正パラメータAmuが取得される(図7のS250、S255)。この結果、より適切な使用補正パラメータAmuが取得される。例えば、補正パラメータAmoが使用された時期からの経過時間Teが比較的短いほど、該使用された時期と現在とを比較した場合におけるプリンタ200の特性の変化は小さいと考えられる。したがって、補正パラメータAmoが使用された時期からの経過時間Teが比較的短いほど、係数WTを大きくすることが好ましい。
さらに、本実施例によれば、変更済画像が印刷された後に、インクセンサ295による実測結果に基づいて、特定の色材の実測使用量Umが取得される(図5のS135)。また、変更済画像データを解析することによって、変更済画像の印刷に使用される複数種類のインクのうちの特定のインク(例えば、Cインク)の推定使用量Ueが算出され(S125)、該推定使用量Ueを含む累積推定使用量Usが取得される(S150)。そして、累積推定使用量Usと、実測使用量Umと、を用いて、特定の色材に対応する使用補正パラメータAmuが更新される(図6のS165)。
S165では、上述したように、更新後の使用補正パラメータAmuは、実測使用量Umが、累積推定使用量Usより大きい場合には、更新後の使用補正パラメータAmuを用いない場合と比較して印刷時に使用される特定の色材の量が減少するように決定される。
この結果、例えば、特定のインクの推定使用量が、特定のインクの実際の使用量より大きい場合であっても、変更済画像データ生成処理において、インクの使用量の比率を適切に調整することができる。したがって、印刷後の特定のインクの残量を適切に調整し得る。
また、S165では、上述したように、更新後の使用補正値補正パラメータAmuは、実測使用量Umが累積推定使用量Usより小さい場合には、更新後の使用補正パラメータAmuを用いない場合と比較して印刷時に使用される特定の色材の量が増加するように決定される。この結果、例えば、特定のインクの推定使用量が、特定のインクの実際の使用量より小さい場合であっても、変更済画像データ生成処理において、インクの使用量の比率を適切に調整することができる。
さらに、図5のS85の説明にて述べたように、本実施例の変更済画像データ生成処理(S85、S95〜S115)は、S130にて変更済画像が印刷された後の複数種類のインクの残量のばらつきが、変更済画像が印刷される前の複数種類のインクの残量のばらつきより小さくなるように、印刷時に使用される複数種類のインクの量の比率を変更する処理である。この結果、複数種類のインクのそれぞれの補充の時期が、集中して到来するように、印刷後の複数種類のインクの残量を適切に調整し得る。
例えば、インクの残量が基準値以下となってインクの補充が必要となるタイミングが、インクの種類ごとに大きく異なる場合には、インクの種類ごとに補充を行うタイミングが分散するので、ユーザが度々異なる種類のインクの補充を行う必要が生じる。このため、インクの補充が不要な比較的長い期間が発生し難い。この結果、ユーザの負担が増加する可能性がある。一方、本実施例の印刷処理のように、印刷後の複数種類のインクの残量のばらつきが印刷前より小さくなるように、インクの残量を調整すれば、複数種類のインクの補充(本実施例では、インクカートリッジの交換)が必要となるタイミングが、ほぼ同時期に集中しやすい。この場合には、複数種類のインクの補充を行うタイミングが集中するので、複数種類のインクをまとめて補充しやすくなる。また、複数種類のインクの補充が比較的短い期間内に集中して行われるので、比較的短い期間内に全ての種類のインクの補充が行われた後は、比較的長い期間に亘ってインクを補充しなくても良い。このように、インクの補充が不要な比較的長い期間が発生しやすい。この結果、ユーザの負担を軽減することができる。
さらに、本実施例の図6のS155では、S135にて今回取得されたCインクの実測値Rm2_Cと、記録済みの実測値Rmr_Cと、の差分が、実測使用量Um_Cとして算出される。このように、実測値Rm2_Cと記録済みの実測値Rmr_Cとの差分に基づいて、容易に、適切な実測使用量Um_Cを取得することができる。記録済みの実測値Rmr_Cは、変更済画像が印刷される前にインクセンサ295によって取得されるCインクの残量と言うことができる。また、S135にて今回取得されたCインクの実測値Rm2_Cは、変更済画像が印刷された後にインクセンサ295によって取得されるCインクの残量と言うことができる。
さらに、本実施例によれば、取得された実測値Rm2_Cが、記録済みの実測値Rmr_Cと等しい場合には(S145:NO)、S150〜S165は実行されないので、Cインクの使用補正パラメータAmu_Cは更新されない。そして、取得された実測値Rm2_Cが、記録済みの実測値Rmr_Cより小さい場合には(S145:YES)、S150〜S165が実行されて、Cインクの使用補正パラメータAmu_Cが更新される。この結果、インクセンサ295によるインクの色材の測定の分解能が低い場合(例えば、図2の例のように5段階程度の測定のみが可能である場合)であっても適切なタイミングで使用補正パラメータAmuを更新することができる。
さらに、本実施例では、1回の印刷指示ごとに、すなわち、1個の印刷ジョブごとに、使用補正パラメータAmuを更新するためのS140〜S185の処理が行われる。したがって、1個の印刷ジョブで印刷される画像において色の変化が生じることを抑制できる。例えば、1個の印刷ジョブに対応する対象画像データが、複数のページ画像データを含む場合において、同じ色で印刷されるべきオブジェクトが、1ページ目の画像と、2ページ目の画像と、の間で、異なる色で印刷される不具合を抑制できる。
また、本実施例では、サーバ100は、プリンタ200の筐体とは異なる筐体に収容された計算機であり、プリンタ200と通信可能に接続される計算機である。この結果、プリンタ200と通信可能に接続される別体のサーバ100を用いて、プリンタ200のインクの残量を適切に調整できる。例えば、既存のプリンタ200に何ら機能を追加することなく、サーバ100にコンピュータプログラムPG2をインストールするだけで、プリンタ200のインクの残量を適切に調整できる。
以上の説明から解るように、上記実施例の使用補正パラメータAmuは、第1の補正パラメータの例であり、印刷要求元のプリンタ200とは異なる他のプリンタのために使用された補正パラメータAmは、第2の補正パラメータの例である。また、印刷要求元のプリンタ200のために過去に使用された補正パラメータAmoは、第3の補正パラメータの例である。また、図6のS150で算出される累積推定使用量Us_Cは、S125で算出される実測使用量Um_Cに対応する対応推定使用量の例である。
B.第2実施例
図9は、第2実施例の印刷処理のフローチャートである。この印刷処理は、第1実施例の印刷処理と同様に、例えば、クライアントのプリンタが、印刷要求をサーバ100に送信し、該印刷要求をサーバ100が受信したときに、開始される。第2実施例では、1個の印刷ジョブに対応する画像データ、すなわち、本印刷処理の開始の契機となった印刷要求に対応する対象画像データは、複数ページ分のページ画像データを含む。すなわち、第2実施例の対象画像データは、第1のページ画像を示す第1のページ画像データと、第2のページ画像を示す第2のページ画像データと、を少なくとも含む。
S310では、図4のS10〜S80の処理が実行される。これによって、C、M、Y、Kのそれぞれの使用補正パラメータAmu_C、Amu_M、Amu_Y、Amu_Kと、C、M、Y、Kのそれぞれの現在のインクの残量R_C、R_M、R_Y、R_Kと、が決定される。
S315では、CPU110は、図5のS85と同様に複数種類のインクの現在の残量の比率R_C:R_M:R_Y:R_Kを、複数種類のインクの目標使用比率Rt_C:Rt_M:Rt_Y:Rt_Kに決定する。S320では、CPU110は、1個の印刷ジョブに含まれる複数ページ分のページ画像データのうち、1ページ分のページ画像データを、対象画像データとして取得する。
S325では、S320で取得された1ページ分のページ画像データを対象画像データとして、図5のS95〜S135の処理が実行される。これによって、対象画像データとしてのページ画像データに対して、変更済画像データ生成処理が実行されることによって変更済ページ画像データが生成される(S100〜S125)。そして、該変更済ページ画像データを用いて、1ページ分の変更済画像が印刷される(S120、S130)。さらに、印刷後のC、M、Y、Kの各インクの実測値Rm2_C、Rm2_M、Rm2_Y、Rm2_Kが取得される(S135)。
S330では、CPU110は、図6のS140と同様に、複数種類のインクから1個のインクを、処理対象のインクとして選択する。以下では、Cインクが処理対象であるとして説明するが、他のインクが処理対象であっても同様に処理が行われる。
S340では、CPU110は、図6のS145と同様に、取得されたCインクの実測値Rm2_Cが、Cインクの記録済みの実測値Rmr_Cと異なるか否かを判断する。
取得された実測値Rm2_Cが、記録済みの実測値Rmr_Cと異なる場合には(S340:YES)、S350にて、CPU110は、図6のS150〜S175の処理を行う。これにより、Cインクの使用補正パラメータAmu_Cが更新される(S150〜S165)。そして、取得されたCインクの実測値Rm2_Cが、Cインクの新たな記録済みの実測値Rmr_Cとして記録される(S170)。さらに、Cインクの記録済みの累積推定使用量Us_Cが削除される(S175)。
S355では、CPU110は、取得された実測値Rm2_Cを、現在のCインクの残量R_Cに決定する。
取得された実測値Rm2_Cが、記録済みの実測値Rmr_Cと同じである場合には(S340:NO)、S360にて、CPU110は、図6のS180と同様に、今回の印刷後の新たなCインクの累積推定使用量Us_Cを、インク情報記録テーブルRTbに記録する。そして、S380にて、CPU110は、図4のS75と同様に、取得された実測値Rm2_Cから、Cインクの累積推定使用量Us_Cを減じた値を、Cインクの現在の残量R_Cに決定する。
S385では、CPU110は、C、M、Y、Kの全てのインクについて処理したか否かを判断する。未処理のインクがある場合には(S385:NO)、CPU110は、S330に戻って、未処理のインクを選択する。全てのインクについて処理された場合には(S385:YES)、CPU110は、S390に処理を進める。
S390では、CPU110は、1個の印刷ジョブに含まれる全てのページのページ画像データについて処理したか否かを判断する。未処理のページ画像データがある場合には(S390:NO)、CPU110は、S315に戻って、未処理のページ画像データの処理のために、目標使用比率を決定する。全てのページ画像データについて処理された場合には(S390:YES)、CPU110は、S395にて、図6のS190と同様に、補正パラメータ記録テーブルRTaおよびインク情報記録テーブルRTbを更新して、印刷処理を終了する。
本実施例の印刷処理では、第1のページ画像データを対象画像データとして、S315〜S385の処理が行われた後に、第2のページ画像データを対象画像データとして、S315〜S385の処理が行われる。このために、第1のページ画像データを対象画像データとした処理にて、記録された推定使用量Ue(S360)、更新された使用補正パラメータAmu(S350)、記録された実測値Rmr(S250)は、第1のページ画像データの次に処理される第2のページ画像データの処理において、適宜に用いられる。
以上説明した第2実施例によれば、ページ画像が印刷されるごとに、使用補正パラメータAmuを更新するためのS330〜S385の処理が行われる。したがって、印刷された1ページ分のページ画像内において色の変化が生じることを抑制できる。また、印刷ジョブごとに使用補正パラメータAmu_Cを更新するための処理が行われる場合と比較して、使用補正パラメータAmuの更新頻度が高くなるので、より精度良くインクの残量を調整し得る。また、印刷ジョブごとに使用補正パラメータAmuを更新する処理が行われる場合と比較して、より少量の印刷が行われる度に、インクの実測値Rm2の取得(S325)と、実測使用量Umの算出(S350)と、が行われるので、実測使用量Umの算出精度が向上する。この結果、使用補正パラメータAmuをより精度良く決定することができる。
C.第3実施例
図10は、第3実施例の印刷処理のフローチャートである。この印刷処理は、第1実施例の印刷処理と同様に、例えば、クライアントのプリンタが、印刷要求をサーバ100に送信し、該印刷要求をサーバ100が受信したときに、開始される。
S410では、CPU110は、印刷要求に含まれる印刷条件を取得する。印刷条件は、例えば、印刷に用いられる画像データの指定、印刷すべき用紙のサイズ、および、印刷部数を含んでいる。S420では、CPU110は、取得された印刷条件から、印刷要求に対応する印刷ジョブの印刷量を特定する。例えば、指定された画像データに含まれるページ画像データの個数と、印刷部数と、を乗じることによって印刷すべきページ数の合計が算出され、当該合計値に、印刷すべき用紙の面積に比例する係数を乗じた値が、印刷量として算出される。
S430では、CPU110は、印刷量は、予め定められた基準値未満であるか否かを判断する。例えば、基準値は、所定のページ数分(例えば、3ページ分)の特定サイズ(例えば、A4サイズ)の印刷に相当する印刷量に定められている。
印刷量が基準値未満である場合には(S430:YES)、S440にて、CPU110は、第1実施例の印刷処理、すなわち、図4のS10〜S80、図5のS85〜S135、図6のS140〜S190の処理を実行する。実行後、印刷処理は、終了される。
印刷量が基準値以上である場合には(S430:NO)、S450にて、CPU110は、第2実施例の制御処理、すなわち、図9のS310〜S395の処理を実行する。実行後、印刷処理は、終了される。
以上説明した第3実施例によれば、1個の印刷ジョブの印刷量に応じて、使用補正パラメータAmuの更新頻度が変更される(S430)。この結果、印刷量が過度に多い場合であっても、印刷後のインクの残量を適切に調整できるとともに、印刷量が少ない場合には、1個の印刷ジョブで印刷される画像において色の変化が生じることを抑制できる。
D.変形例
(1)上記各実施例では、クライアントの各プリンタのインクの実測値Rmrと、インクの累積推定使用量Usは、サーバ100のインク情報記録テーブルRTbに記録されている。これに代えて、実測値Rmrと累積推定使用量Usは、各プリンタに記録されても良い。この場合には、例えば、第1実施例の図4のS20の前に、CPU110は、印刷要求元のプリンタ200から、実測値Rmrと累積推定使用量Usとを取得して、揮発性記憶装置120に記憶する。そして、CPU210は、図4のS55や図6のS170では、CPU110は、揮発性記憶装置120上において、記録済みの実測値Rmr_Cや累積推定使用量Us_Cの更新等を行う(図4のS55、S70、図6のS170、S180等)。そして、図6のS190において、CPU210は、最新の実測値Rmr_Cや累積推定使用量Us_Cを、印刷要求元のプリンタ200に送信する。プリンタ200は、サーバ100から送信された実測値Rmr_Cや累積推定使用量Us_Cを、不揮発性記憶装置230に記録する。
(2)上記各実施例において、他のプリンタで使用された補正パラメータAmを抽出するための条件(A)〜(C)は、一例であり、これに限られない。例えば、以下に示す他の条件が用いられても良い。
条件(D)処理対象のプリンタの補正パラメータAmの記録日から現在までの期間が基準以下である
条件(E)処理対象のプリンタの製造ラインと、印刷要求元のプリンタ200の製造ラインが同一である
条件(F)処理対象のプリンタの使用地と、印刷要求元のプリンタ200の使用地とが基準より近い
上記の条件(D)、(E)、(F)が採用される場合には、条件(D)、(E)、(F)を満たすか否かを判定するための情報が、補正パラメータ記録テーブルRTaに記録されていれば良い。例えば、条件(E)の判定のためには、プリンタの製造ラインを示す情報(例えば、シリアル番号)、条件(F)の判定のためには、プリンタの使用地を示す情報(例えば、GPS情報、使用地域名)が記録されていれば良い。
上記条件(A)〜(F)の全部または一部を十分条件および必要条件の少なくとも一方とする条件が、抽出条件として採用され得る。
(3)上記各実施例では、抽出条件を満たす複数個の補正パラメータAmの平均補正パラメータAmaを用いて、使用補正パラメータAmuが算出されている。これに代えて、複数個の補正パラメータAmの中央値などの他の統計量を用いて、使用補正パラメータAmuが算出されてもよい。また、抽出条件を満たす1個の補正パラメータAmが、そのまま使用補正パラメータAmuとして決定されても良い。
(4)また、上記各実施例では、印刷要求元のプリンタ200のために過去に使用された補正パラメータAmoがある場合には、当該補正パラメータAmoと、他のプリンタのために使用された複数個の補正パラメータAmの平均補正パラメータAmaと、を用いて、使用補正パラメータAmuが算出されている。これに代えて、プリンタ200のために過去に使用された補正パラメータAmoを用いずに、使用補正パラメータAmuが算出されても良い。例えば、常に、平均補正パラメータAmaが、使用補正パラメータAmuとして用いられても良い。また、プリンタ200のために過去に使用された補正パラメータAmoがある場合には、当該補正パラメータAmoを、そのまま使用補正パラメータAmuとして用いても良い。また、使用補正パラメータAmuの算出に用いられる係数WTは、常に一定値が用いられても良い。
(5)上記第1実施例では、印刷ジョブ分の画像が印刷されるごとに、第2実施例では、ページ画像が印刷されるごとに、使用補正パラメータAmuを更新するための処理が行われている。これに代えて、例えば、主走査と副走査とが繰り返し実行されるインクジェットプリンタにおいては、所定回数(例えば、1〜10回程度)の主走査分の画像が印刷されるごとに、使用補正パラメータAmuを更新するための処理が行われても良い。また、対象画像が、副走査方向の位置が異なる複数個のオブジェクトを含む場合には、1個のオブジェクトが印刷されるごとに、使用補正パラメータAmuを更新するための処理が行われても良い。こうすれば、1個の印刷されたオブジェクトにおいて色の変化が生じることを抑制しつつ、比較的高い頻度で使用補正パラメータAmuを更新することができる。
(6)図2のインクセンサ295Cは、一例であり、これに限られない。例えば、色材のインクである場合には、例えば、インクカートリッジ10Cの上面を、光を透過する材料で形成し、インクカートリッジ10Cの上方から下方に向かって、インクカートリッジ10C内のCインクに光を照射するセンサが用いられても良い。この場合には、例えば、インクの残量が多いほど反射率が高くなるので、反射光の強度が大きくなる。このために、当該反射光の強度を測定することによって、インクの残量を特定することができる。この場合には、インクの残量をより高い分解能で実測できる
なお、プリンタが、トナーやインクなどの色材を、十分に高い分解能(例えば、0.1ml刻み)で実測できるセンサを搭載している場合には、印刷を行う度に、実測値Rm2が変化するので、印刷を行う度に、使用補正パラメータAmuを更新できる。このような高分解能で実測できるセンサとしては、例えば、インクカートリッジの質量を高精度で計測できる分析天秤を採用可能である。この場合には、図6のS145で、取得された実測値Rm2_Cが、記録済みの実測値Rmr_Cと等しくなることは、起こらない。したがって、この場合には、例えば、図6のS145、S150、S170、S180は、省略されても良い。そして、図6のS165では、累積推定使用量に代えて、S125にて算出された推定使用量Ue_Cを用いて、推定使用量Ue_Cを実測使用量Um_Cで除した値に、使用補正パラメータAmu_Cが更新される。したがって、この場合には、S125にて算出された推定使用量Ue_Cが、実測使用量Um_Cに対応する対応推定使用量の例である。また、この場合には、図4のS40にて取得されたC、M、Y、Kの実測値Rm1_C、Rm1_M、Rm1_Y、Rm1_Kが、そのまま、インクの残量R_C、R_M、R_Y、R_Kとして用いられても良い。したがって、この場合には、例えば、図4のS45〜S80は、省略されても良い。
(7)上記各実施例では、実測使用量Umが累積推定使用量Usより小さい場合には、補正パラメータAmは、1より大きな値とされ、補正パラメータAmを用いない場合と比較して、S130での印刷時の実際のインクの使用量が増加される。これに代えて、インクの節約の観点から、補正パラメータAmの上限値を1として、実際のインクの使用量を増加させる補正は行わないこととしても良い。
(8)上記各実施例では、印刷後の複数種類のインクの残量のばらつきが、印刷前の当該ばらつきより小さくなるように、変更済画像データ生成処理が実行される。これに限らず、例えば、ユーザによって指定された特定のインクの使用量を、他のインクと比較して低減するように、変更済画像データ生成処理が実行されても良い。例えば、ユーザは、スペアのインクカートリッジを保有していないインクを指定し、スペアを保有していないインクカートリッジを指定いることとすれば良い。
(9)図6のS155では、Cインクの実測値Rm2_Cと、記録済みの実測値Rmr_Cと、の差分が、実測使用量Um_Cとして算出される。これに代えて、例えば、n段階のCインクの実測値Rm2_Cは、1段階ずつ小さくなる方向に変化することを前提として、Cインクの実測値Rm2_Cに、それぞれ、実測使用量Um_Cが予め対応付けられていても良い。そして、S155では、例えば、Cインクの実測値Rm2_Cに対応付けられた実測使用量Um_Cが取得されても良い。例えば、図2の例では、レベル1に相当する実測値Rm2_Cには、図2の破線L1から破線L2までの空間に収容されるインク量が対応付けられ、レベル2に相当するレベル1に相当する実測値Rm2_Cには、図2の破線L2から破線L3までの空間に収容されるインク量が対応付けられる。
(10)上記各実施例では、C、M、Y、Kの全てのインクが変更済画像データ生成処理の対象とされているが、一部の複数種類のインクのみが変更済画像データ生成処理の対象とされても良い。例えば、無彩色のKのインクを対象とせず、有彩色のC、M、Yのインクのみを変更済画像データ生成処理の対象としても良い。
(11)上記各実施例においてサーバ100によって実行される印刷処理は、例えば、プリンタ200のCPU210によって実行されても良い。この場合には、例えば、図4のS20では、CPU210は、サーバ100に対して、使用補正パラメータAmuを要求しても良い。そして、サーバ100は、図7の使用補正パラメータ生成処理を実行して、生成された使用補正パラメータAmuを、プリンタ200に送信しても良い。そして、プリンタ200のCPU210は、受信した使用補正パラメータAmuを用いて、図4のS40以降の印刷処理を実行しても良い。
あるいは、プリンタ200のCPU210は、自身と同じLANに接続された他のプリンタから、該他のプリンタにて過去に使用された補正パラメータAmを取得しても良い。そして、該補正パラメータAmを用いて、使用補正パラメータAmuを生成しても良い。この場合には、サーバ100は、無くても良い。この場合には、プリンタ200の筐体内の印刷機構290が印刷装置の例であり、プリンタ200の筐体内のCPU210が、印刷装置のための制御装置の例である。
また、サーバ100に代えて、プリンタ200と接続されたユーザの端末装置、例えば、パーソナルコンピュータやスマートフォンが、印刷処理を実行しても良い。この場合には、端末装置は、例えば、プリンタ200の製造者から提供されるプリンタドライバプログラムを実行することによって、印刷処理を実行する。この場合には、プリンタ200のCPU210が印刷処理を実行する場合と同様に、端末装置は、サーバ100から使用補正パラメータAmuを取得しても良いし、他のプリンタから過去に使用された補正パラメータAmを取得して、該補正パラメータAmを用いて、使用補正パラメータAmuを取得しても良い。この場合には、プリンタ200が印刷装置の例であり、端末装置のCPUが、印刷装置のための制御装置の例である。
(12)上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
また、本発明の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体(例えば、一時的ではない記録媒体)に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体(コンピュータ読み取り可能な記録媒体)に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやCD−ROMのような携帯型の記録媒体に限らず、各種ROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含み得る。
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。