以下では、上述した本願発明の内容を明確にするために、次のような順序に従って実施例を説明する。
A.全体構成:
B.実施例の概要:
C.第1実施例:
D.第2実施例:
A.全体構成 :
図1は、デジタル画像の画像データを生成して印刷する本実施例の印刷システムを例示した説明図である。図示されているように、本実施例の印刷システムは、大きくは、デジタル画像の画像データを生成する画像機器と、画像データに所定の画像処理を施して印刷可能なデータに変換するプリンタドライバと、画像処理が施された画像データに基づいて画像を印刷するプリンタなどから構成されている。本実施例の印刷システムにおいては、プリンタドライバはプリンタに搭載されている。すなわち、据置型のカラーインクジェットプリンタ40には、プリンタドライバDRV−aが搭載されており、可搬型のカラーインクジェットプリンタ50にはプリンタドライバDRV−bが搭載され、そして、据置型のモノクロレーザープリンタ60にはプリンタドライバDRV−cが搭載されている。また、これらのプリンタは、互いに仕様や動作原理が大きく異なっており、各プリンタに搭載されたプリンタドライバも大きく異なったドライバとなっている。
このように、本実施例の印刷システムでは、プリンタ内にプリンタドライバが搭載されていることから、デジタル画像を生成して出力し得る機器であれば、どのような機器であっても画像機器として用いることができる。たとえば、コンピュータ10は、各種のアプリケーションプログラムを動作させることによってデジタル画像を作成し、得られたデジタル画像の画像データを出力することができるから、本実施例の印刷システムにおける画像機器として用いることができる。また、デジタルカメラ20も撮影した画像をデジタル画像として保存し、画像データを外部に出力することができるから、本実施例の印刷システムにおける画像機器として用いることができる。更に、ゲーム機30なども、内部でデジタル画像を生成していることから、生成したデジタル画像の画像データを外部に出力する機能を搭載すれば、本実施例の印刷システムにおける画像機器として用いることが可能となる。
また、本実施例の印刷システムでは、それぞれの画像機器10,20,30の内部には簡易なプリンタドライバP−DRVが搭載されている。本明細書中では、この簡易なプリンタドライバを簡易ドライバと称するものとする。簡易ドライバP−DRVは、画像機器で生成されたデジタル画像の画像データを、プリンタに搭載されたプリンタドライバに供給する機能を有している。本実施例の印刷システムでは、このように画像機器10,20,30に搭載された簡易ドライバP−DRVを介して、画像データをプリンタドライバに供給しているために、画像機器にどのようなプリンタが接続された場合でも、適切に画像データを供給して画像を印刷することが可能となっている。
たとえば、図1に示した例では、デジタルカメラ20で撮影した画像を、据置型のカラーインクジェットプリンタ40、可搬型のカラーインクジェットプリンタ50、据置型のモノクロレーザープリンタ60のそれぞれのプリンタで印刷する場合が示されている。前述したように、これらプリンタは仕様や動作原理が大きく異なっており、このことに対応して、各プリンタに搭載されたプリンタドライバも大きく異なったものとなっている。しかし、簡易ドライバP−DRVを介して画像データを供給することで、各プリンタドライバの違いを簡易ドライバP−DRVとの間で吸収することが可能となり、延いてはプリンタの違いを意識することなく適切に画像を印刷することが可能となる。また、プリンタ側に着目すれば、画像データをどのような画像機器から受け取る場合でも、各画像機器に搭載された簡易ドライバP−DRVを介して受け取ることで、画像機器の違いに影響されることなく画像データを受け取って、適切に画像を印刷することが可能となる。
もちろん、プリンタが異なれば、画像の印刷に際して指定可能な印刷条件は異なったものとなる。たとえば、可搬型のカラーインクジェットプリンタ50では、据置型のカラーインクジェットプリンタ40のようには、高画質な画像を印刷することはできないし、指定可能な用紙サイズにも制限がある。また、据置型のモノクロレーザープリンタ60で印刷する場合は、指定可能な印刷条件はモノクロ印刷に限られる。これらの指定可能な印刷条件はプリンタ毎に異なっているから、それぞれのプリンタに搭載されたプリンタドライバから、画像機器側の簡易ドライバP−DRVに選択可能な印刷条件を出力してやればよい。
尚、本実施例では、画像機器中に組み込まれた簡易ドライバP−DRVが、本願発明の「画像データ供給装置」に対応している。もちろん、画像データ供給装置を実現する態様は、画像機器に組み込まれたプログラムとしての態様に限られるものではなく、たとえば画像機器に組み込まれたハードウェアとして、あるいは画像機器とは別体に設けられたハードウェアによって実現することも可能である。
以下では、以上に説明した本実施例の印刷システムによって、各種の画像機器で生成したデジタル画像を印刷する処理について詳しく説明するが、かかる処理は、画像機器および、画像機器に搭載された簡易ドライバP−DRV、プリンタなどが、それぞれの処理を実行しながら、各処理が協働することによって実現されている。そこで、処理の全体像を提示して理解を容易にするために、初めに実施例の概要について説明しておく。
B.実施例の概要 :
図2は、画像機器からデジタル画像の画像データをプリンタに供給して、画像を印刷する処理の大まかな流れを示したブロック図である。デジタル画像を印刷する処理は、各種の画像機器に搭載されたアプリケーションプログラムから「画像印刷処理」を起動することによって開始される。たとえば、画像機器がコンピュータ10である場合は、フォトレタッチソフトや、CADソフト、ワープロソフトなどの各種アプリケーションプログラムを使用してコンピュータ10上でデジタル画像を作成した後、アプリケーションプログラムに対して画像の印刷を指示すると、これを受けて「画像印刷処理」が起動する。また、画像機器がデジタルカメラ20やゲーム機30である場合は、デジタルカメラ20あるいはゲーム機30の全体的な動作を制御する専用プログラムに向かって、撮影された画像や画面上に表示されている画像の印刷を指示すると、専用プログラムによって「画像印刷処理」が起動される。尚、デジタルカメラ20やゲーム機30などでは、画像の印刷指示をオペレーションシステム(OS)と呼ばれる特殊なプログラムに向かって出力し、OSによって「画像印刷処理」が起動されるようにすることも可能である。
「画像印刷処理」が開始されると、簡易ドライバP−DRVに向かって印刷命令が出力される。印刷命令を受け取ると、簡易ドライバP−DRVでは「画像データ供給処理」が開始されて、プリンタに搭載されたプリンタドライバに対して印刷条件の問い合わせを行う。図2では、このように画像機器からプリンタに向かって印刷条件を問い合わせる一連の動作が、太い実線によって模式的に表されている。
プリンタに搭載されたプリンタドライバは、簡易ドライバP−DRVから印刷条件の問い合わせを受け取ると「印刷実行処理」を開始して、プリンタに搭載されたメモリから印刷条件を読み出した後、簡易ドライバP−DRVに向かって印刷条件についての応答を行う。詳細には後述するが、プリンタに搭載されたメモリには、そのプリンタが対応可能な印刷条件(個別印刷条件)が記憶されており、この個別印刷条件が、印刷条件の問い合わせに対する応答として、簡易ドライバP−DRVに返信される。
簡易ドライバP−DRVの「画像データ供給処理」では、プリンタドライバから個別印刷条件を受け取ると、画像機器に搭載されたメモリからも印刷条件を読み出す動作を行う。画像機器のメモリには、多くのプリンタで対応可能な印刷条件(標準印刷条件)が記憶されている。そして「画像データ供給処理」では、この標準印刷条件と、プリンタドライバから受け取った個別印刷条件とが1つにまとめられた後、得られた印刷条件が、「画像印刷処理」に返信される。図2では、このようにプリンタから画像機器に向かって印刷条件が返される一連の動作が、太い破線によって模式的に表されている。
画像機器の「画像印刷処理」では、機器に搭載されたモニタを駆動することによって、こうして供給された印刷条件を選択可能な状態で表示する。そして、画像機器の操作者(ユーザー)によって印刷条件が選択されると、先に印刷を指示された画像の画像データとともに、簡易ドライバP−DRVの「画像データ供給処理」に出力する。簡易ドライバP−DRVの「画像データ供給処理」では、受け取った画像データおよび印刷条件を、直ちにプリンタドライバに転送する。プリンタドライバの「印刷実行処理」では、このようにして供給された画像データおよび印刷条件を受け取ると、受け取った印刷条件を考慮しながら画像データに適切な画像処理を施して、プリンタが印刷可能なデータに変換した後、画像を印刷する。その結果、画像機器の操作者(ユーザー)は、画像機器内のメモリに記憶された標準印刷条件、あるいはプリンタ内のメモリに記憶された個別印刷条件の中から選択した所望の印刷条件を用いて、デジタル画像を印刷することが可能となる。
近年では、ユーザーニーズの多様化に応えるために、各プリンタが対応可能な印刷条件は増加の一途を辿っているが、本実施例では、このように印刷条件がプリンタ内のメモリと画像機器のメモリとに分散して記憶されているので、プリンタ内のメモリを圧迫することなく、印刷条件の増加に対応することが可能となっている。この点についても、以下の実施例において詳しく説明する。
C.第1実施例 :
図3は、画像機器内で実施される第1実施例の画像印刷処理の流れを示すフローチャートである。かかる処理は、上述したように、画像機器で動作しているアプリケーションプログラムやオペレーションシステムなどに対して、ユーザーが印刷を指示すると、画像機器に搭載された図示しないCPUによって開始される処理である。
図4は、デジタルカメラ20で撮影した画像を印刷する場合を例に取って、印刷を指示する様子を示した説明図である。デジタルカメラ20に搭載されている専用プログラムを起動して、モニタ22上にデジタル画像を表示させ、所定のボタンを押すと、モニタ22上の画像に重ねて、「印刷」と表示された印刷ボタンと、「取消」と表示された取消ボタンと、カーソルが表示される。この画面上で、デジタルカメラ20に設けられた十字ボタン24を操作すれば、画面上のカーソルを移動させることができる。こうした一連の操作は、デジタルカメラ20に搭載された専用プログラムによって実現されている。そして、モニタ22上で印刷ボタンを選択すると、専用プログラムに対して印刷が指示されて、図3に示した画像印刷処理が開始されるようになっている。
このようにして画像印刷処理が開始されると、先ず初めに簡易ドライバP−DRVに対して印刷命令を出力する(ステップS100)。ここで簡易ドライバP−DRVとは、前述したように、プリンタに搭載されたプリンタドライバと必要に応じて情報をやり取りしながら、画像機器で生成された画像データをプリンタドライバに供給する機能を備えたモジュールであり、本実施例では画像機器に搭載されたソフトウェアプログラムによって実現されている。もちろん、簡易ドライバP−DRVは、上述した機能を実現可能であれば、どのような形態をとることもでき、たとえば、画像機器内に組み込まれたハードウェアあるいはファームウェアの形態を取っても良いし、更には、画像機器とは別体の機器として構成することも可能である。
そして、簡易ドライバP−DRVに向かって印刷命令を出力した後は、簡易ドライバP−DRVから印刷条件を受け取ったか否かを判断する(ステップS102)。すなわち、図2を用いて前述したように、画像印刷処理では、印刷しようとする画像データを出力するに先立って、ユーザーが画像の印刷条件を選べるように、選択可能な印刷条件を簡易ドライバP−DRVから受け取ってモニタ22上に表示する処理を行う。そこで、印刷命令を出力したら、モニタ22に表示すべき印刷条件が簡易ドライバP−DRVから送られてきたか否かを判断するのである。そして、簡易ドライバP−DRVから印刷条件を受け取っていない場合は(ステップS102:no)、印刷条件を受け取るまで待機する。
一方、簡易ドライバP−DRVでは、画像印刷処理から印刷命令が供給されると(ステップS100)、画像データ供給処理を開始する。
図5は、簡易ドライバP−DRV内で実行される画像データ供給処理の流れを示すフローチャートである。本実施例の簡易ドライバP−DRVは、画像機器に搭載されたソフトウェアプログラムとして実現されているから、画像データ供給処理は、図3に示した画像印刷処理と同様に、画像機器に搭載された図示しないCPUによって実行される処理である。
画像データ供給処理を開始すると、先ず初めに、画像印刷処理から出力された印刷命令を受け取ったか否かを判断し(ステップS200)、印刷命令を受け取ったら(ステップS200:yes)、プリンタに搭載されたプリンタドライバに対して、印刷条件の問い合わせを行う(ステップS202)。かかる問い合わせは、記憶されている印刷条件を読み出して返信する旨を要求する返信命令を、プリンタドライバに対して出力することによって行う。そして、プリンタドライバに印刷条件を問い合わせたら、プリンタドライバから印刷条件の応答があったか否かを判断し(ステップS204)、応答がなければ(ステップS204:no)、応答があるまで待機する。一方、プリンタに搭載されたプリンタドライバでは、返信命令を受け取ると、印刷実行処理が開始される。
図6は、プリンタドライバ内で実行される印刷実行処理の流れを示すフローチャートである。かかる処理は、プリンタに搭載された図示しないCPUによって実行される処理であり、画像データに所定の画像処理を施して印刷可能なデータに変換した後、プリンタが実際に画像を印刷する動作を制御する処理である。
印刷実行処理では、先ず初めに、簡易ドライバP−DRVから印刷条件の問い合わせがあったか否か(すなわち、返信命令を受け取ったか否か)を判断し(ステップS300)、問い合わせを受け取っていたら(ステップS300:yes)、プリンタに搭載された図示しないメモリに記憶されている印刷条件を読み出した後、簡易ドライバP−DRVに対して返信する処理を行う(ステップS302)。詳細には後述するが、各プリンタのメモリには、それぞれのプリンタが個別に対応可能な印刷条件(個別印刷条件)が記憶されている。「プリンタが個別に対応可能」の意味する処については、別図を用いて後述する。ステップS302では、メモリに記憶されている個別印刷条件を読み出して、簡易ドライバP−DRVに出力する処理を行う。
こうして印刷条件を出力したら、簡易ドライバP−DRVから、今度は、画像データおよび印刷条件を受け取ったか否かを判断する(ステップS304)。すなわち、図2を用いて前述したように、印刷実行処理では、簡易ドライバP−DRVに向けて印刷条件を出力すると、やがて、処理対象となる画像データ(印刷しようとするデジタル画像の画像データ)が、ユーザーによって選択された印刷条件とともに供給されるので、これら画像データおよび印刷条件を受け取ったか否かを判断するのである。そして、未だ、簡易ドライバP−DRVから画像データおよび印刷条件を受け取っていないと判断された場合は(ステップS304:no)、これらを受け取るまで待機する。
前述したように、図5に示した画像データ供給処理では、プリンタドライバに対して印刷条件を問い合わせると(図5のS202)、プリンタドライバから印刷条件の応答があるまで待機している(S204)。そして、プリンタドライバが出力した個別印刷条件を受け取ると(ステップS204:yes)、今度は、標準印刷条件を読み出す処理を行う(ステップS206)。詳細には後述するが、本実施例のデジタルカメラ20に搭載された図示しないメモリには、デジタルカメラ20が想定する全プリンタで対応可能な、標準的な印刷条件(標準印刷条件)が予め記憶されている。「想定する全プリンタで対応可能」の意味する処については、別図を用いて後述する。
そして、記憶されている標準印刷条件を読み出すと、プリンタドライバから受け取った印刷条件(個別印刷条件)とを合わせた印刷条件を、アプリケーションプログラムに向かって出力する処理を行う(ステップS208)。かかる処理の詳細についても別図を用いて説明する。
図3を用いて前述したように、アプリケーションプログラムの元で実行されている画像印刷処理は、簡易ドライバP−DRVに向かって印刷命令を出力した後は(図3のステップS100)、簡易ドライバP−DRVから印刷条件が返信されるまで待機状態となっている(ステップS102)。そして、簡易ドライバP−DRVから印刷条件を受け取ると(ステップS102:yes)、印刷条件を選択するための画面を、モニタ22上に表示する(ステップS104)。
図7は、デジタルカメラ20のモニタ22上に、印刷条件を選択するための画面が表示されている様子を例示した説明図である。図示した例では、印刷条件として「用紙サイズ」、「用紙種類」、「印刷部数」、「縁無し印刷の有無」、「カラー印刷の有無」、「給紙方法」、「印刷品質」の各項目が表示されており、デジタルカメラ20に搭載された十字ボタン24を操作して画面上のカーソル26を移動させることにより、これら各項目についての印刷条件を設定することが可能となっている。以下では、「用紙サイズ」に関する印刷条件を選択する場合を例に用いて、デジタルカメラ20のユーザーが、モニタ22上の表示を見ながら、所望の印刷条件を選択する様子について説明する。
用紙サイズを選択するためには、先ず、モニタ22の画面上でカーソル26を移動させて、「用紙サイズ」と表示された欄に設けられた設定ボタンを選択する。すると、モニタ22の画面が、用紙サイズについての詳細な印刷条件を選択する画面に切り換わる。
図8は、用紙サイズについての詳細な印刷条件を選択するための画面が、モニタ22上に表示されている様子を示す説明図である。図示した例では、用紙サイズに関する印刷条件として、8種類の印刷条件が選択可能に表示されている。この画面上でカーソル26を移動させることにより、所望の印刷条件を選択することができる。図8では、画像を印刷する用紙サイズとして、「2L版」を選択した様子が例示されている。
ここで画面上に表示された8つの印刷条件は、一部はデジタルカメラ20に搭載されたメモリから読み出された標準的な印刷条件(標準印刷条件)であり、一部はプリンタのメモリにプリンタ毎に記憶されているプリンタ個別の印刷条件(個別印刷条件)となっている。この点について、具体的に説明する。
先ず、画像を印刷しようとしているプリンタが可搬型の小さなカラーインクジェットプリンタ50であるものとする。可搬型のプリンタ50は、主にデジタルカメラ20で撮影した画像を、写真やハガキの大きさに印刷することを想定して開発されている。このため、大きなサイズの印刷用紙に印刷することは想定されておらず、印刷可能な最も大きな用紙サイズは「A4縦」までとなっている。一方、小さなサイズの印刷用紙については、通常のプリンタでは必ずしも対応していない「L版」や、「2L版」、「ハガキ縦」の印刷用紙にも印刷することが可能となっている。可搬型のプリンタ50に搭載されたメモリには、通常のプリンタでは必ずしも対応していない用紙サイズ(すなわち、「L版」、「2L版」、「ハガキ縦」)が設定されており、通常のプリンタでも印刷可能な標準的な用紙サイズ(すなわち、「ハガキ横」より大きく「A4縦」より小さな用紙サイズ)については、プリンタ50で対応可能な全ての用紙サイズが記憶されているわけではない。そして、プリンタ50で対応可能であり、通常のプリンタでも印刷可能な標準的な用紙サイズについては、全ての用紙サイズがデジタルカメラ20のメモリに記憶されている。
このように、本実施例では、ユーザーが選択可能な態様で表示される印刷条件は、画像機器(ここでは、デジタルカメラ20)に搭載されたメモリと、プリンタに搭載されたメモリとに分散した状態で記憶されている。そして、デジタルカメラ20のメモリには、そのデジタルカメラ20に接続される一般的なプリンタであれば、どのようなプリンタであっても対応可能な標準的な印刷条件(標準印刷条件:図8に示した例では、ハガキ横、A5縦、A5横、B5縦、A4縦の5つの用紙サイズ)が記憶されている。「想定する全プリンタで対応可能」な印刷条件とは、このような印刷条件を意味している。また、プリンタのメモリには、そのプリンタでは対応可能なであるが、必ずしも全てのプリンタで対応可能であるとは限らない印刷条件(個別印刷条件:図8に示した例では、L版、2L版、ハガキ縦の3つの用紙サイズ)が記憶されている。「プリンタが個別に対応可能」な印刷条件とは、このような印刷条件を意味している。
図8に例示したモニタ22の画面には、このようにデジタルカメラ20のメモリから読み出された標準印刷条件と、プリンタのメモリから読み出された個別印刷条件とが、ユーザーに選択可能な状態で表示されているのである。
以上、用紙サイズに関する印刷条件を選択する場合について説明したが、用紙種類に関する印刷条件や、印刷品質に関する印刷条件についても、同様にして、ユーザーが所望の印刷条件を選択することができる。また、印刷部数に関する印刷条件は、次のように選択することができる。
図9は、モニタ22上に、印刷部数を設定する画面が表示されている様子を例示した説明図である。印刷部数を設定する場合は、カーソル26を移動させて、印刷部数を設定するための領域を選択した後、画面上に表示されている10キーを操作することにより、印刷部数を設定する。また、標準部数を設定する場合も同様に、カーソル26を移動させて印刷部数を設定する領域を選択した後、10キーを操作して標準の部数を設定する。こうして所望の部数を設定したら、画面上に「OK」と表示されたボタン(OKボタン)にカーソル26を移動させてOKボタンを選択することにより、印刷部数に関する印刷条件を設定することができる。
また、「縁なし印刷の有無」に関する印刷条件としては、縁無し印刷を行うか否かの何れかの印刷条件しか存在していない。このことに対応して、モニタ22に表示された印刷条件選択用の画面には、「縁あり印刷」、「縁なし印刷」の2つの印刷条件が、何れかを選択可能に表示されている。また、デジタルカメラ20に接続される一般的なプリンタであれば、「縁あり印刷」あるいは「縁なし印刷」の何れの印刷も実行可能である。従って、これらの印刷条件は、前述した標準印刷条件に該当しており、デジタルカメラ20のメモリに記憶されている。
「カラー印刷の有無」に関する印刷条件についても、カラー印刷を行うか否かの何れかの印刷条件しか存在していない。このことに対応して、モニタ22に表示された印刷条件選択用の画面には、「モノクロ印刷」、「カラー印刷」の2つの印刷条件が選択可能に表示されている。また、モノクロレーザープリンタ60をデジタルカメラ20に接続可能なことからも明らかなように(図2参照)、「モノクロ印刷」については、デジタルカメラ20に接続される一般的なプリンタであれば必ず対応可能と考えることができるが、「カラー印刷」については、必ずしも全てのプリンタで対応可能なわけではない。すなわち、「モノクロ印刷」という印刷条件は標準印刷条件であり、デジタルカメラ20のメモリに記憶されているが、「カラー印刷」については個別印刷条件であり、プリンタのメモリに記憶されている。換言すれば、図7に示した画面上では、「モノクロ印刷」と「カラー印刷」とが同じ欄に並べて表示されているものの、「モノクロ印刷」という印刷条件はデジタルカメラ20のメモリから読み出されており、「カラー印刷」という印刷条件はプリンタのメモリから読み出されているのである。
更に、印刷用紙の「給紙方法」については、「手差し」および「カセット」の2つの方法が存在するが、可搬型のプリンタ50は「手差し」給紙のみに対応しており、「カセット」給紙には対応していない。このことに対応して、モニタ22に表示された画面の「給紙方法」を選択する欄には、「手差し」のみが選択可能に表示されており、「カセット」についてはグレーアウトされて、選択不能な状態で表示されている。また、「手差し」による給紙は、どのようなプリンタでも対応していることから、「手差し」という印刷条件は標準印刷条件であり、「手差し」という表示はデジタルカメラ20のメモリから読み出されて表示されている。
このように、モニタ22上に、ユーザーに選択可能に表示されている印刷条件は、デジタルカメラ20のメモリから読み出された標準印刷条件か、プリンタのメモリから読み出された個別印刷条件の何れかとなっている。そして、個別印刷条件はプリンタドライバによって読み出されて簡易ドライバに供給され、標準印刷条件は簡易ドライバによって読み出され、プリンタドライバから供給された個別印刷条件とともに、アプリケーションプログラムに供給された後、モニタ22に表示されている。図10には、プリンタのメモリに記憶された個別印刷条件がプリンタドライバに読み出され、画像機器のメモリに記憶された標準印刷条件が簡易ドライバに読み出されて、アプリケーションプログラムに渡される様子が模式的に表されている。
以上のようにして、モニタ22の表示を確認しながら印刷条件を選択し、画面上で「印刷実行」と表示されたボタンを選択する。すると、図3に示した画像印刷処理において、印刷条件の選択が終了したと判断されて(ステップS106:yes)、印刷しようとする画像データと選択された印刷条件とが簡易ドライバP−DRVに出力され(ステップS108)、画像印刷処理を終了する。
図5を用いて前述したように、簡易ドライバP−DRVでは画像データ供給処理が実行されており、図3に示した画像印刷処理に向かって、標準印刷条件および個別印刷条件を出力すると(ステップS208)、印刷しようとする画像データおよび印刷条件が、画像印刷処理から供給されるまで待機している(ステップS210)。そして、画像データおよび印刷条件を受け取ると(ステップS210:yes)、これらをプリンタドライバに転送した後、画像データ供給処理を終了する。
図6を用いて前述したように、プリンタドライバにおいては印刷実行処理が行われており、簡易ドライバP−DRVに向かって個別印刷条件を出力した後は(ステップS302)、印刷しようとする画像データおよび印刷条件が簡易ドライバから転送されてくるまで待機している(ステップS304)。そして、画像データおよび印刷条件が簡易ドライバから供給されると(ステップS304:yes)、供給された印刷条件を考慮しながら、受け取った画像データに対して以下のような画像処理を施すことにより、プリンタが印刷可能なデータ形式に変換した後、印刷用紙上に画像を印刷する処理を行う。
先ず、受け取った画像データの解像度を、指定された印刷条件に応じた印刷解像度に変換する処理を行う(ステップS306)。すなわち、簡易ドライバP−DRVから受け取った画像データの解像度が、印刷条件に対応する印刷解像度よりも低い場合は、隣接する画素の間に補間演算を行って新たな画像データを設定することで、より高い解像度に変換する。逆に、受け取った画像データの解像度が印刷解像度よりも高い場合は、隣接する画素の間から一定の割合で画像データを間引くことによって、より低い解像度に変換する処理を行う。
画像データの解像度を印刷解像度に変換したら、色変換と呼ばれる処理を開始する(ステップS308)。すなわち、簡易ドライバP−DRVから供給される画像データは、R,G,Bの階調値の組合せによって表現されたRGBカラー画像データとなっているが、プリンタはインクを用いて画像を印刷しているため、このままでは画像を印刷することができない。そこで、RGBカラー画像データを、プリンタが印刷に用いるインクの各色の階調値によって表現された画像データに変換する処理を行う。こうした処理が、色変換と呼ばれる処理である。一般に、プリンタは、シアンインク(Cインク),マゼンタインク(Mインク),イエロインク(Yインク),黒色インク(Kインク)を用いて画像を印刷することから、色変換処理では、RGB画像データをCMYK各色の階調値によって表された画像データに変換する。
色変換処理は、色変換テーブル(LUT)と呼ばれる3次元の数表を参照することによって行う。図11は、色変換処理のために参照される色変換テーブル(LUT)を概念的に示した説明図である。図示されているように、直交する3つの軸にR軸、G軸、B軸を取って色空間を考えると、全てのRGB画像データは、必ず色空間内の座標点に対応付けて表示することができる。このことから、R軸、G軸、B軸のそれぞれを細分して色空間内に多数の格子点を設定し、それぞれの格子点がRGB画像データを表していると見れば、各RGB画像データに対応するC,M,Y,K各色の階調値を、各格子点に対応付けておくことができる。LUTは、こうして色空間内に設けた格子点に、C,M,Y,K各色の階調値を対応付けて記憶した3次元の数表である。このような、LUTに記憶されているRGBカラー画像データとC,M,Y,K各色の階調データとの対応関係に基づいて色変換処理を行えば、RGBカラー画像データを、インクの各色についての階調データに迅速に変換することができる。
こうした色変換テーブル(LUT)の格子点に設定される階調値は、印刷条件(特に用紙種類)に応じて最適な値が異なっている。このため、プリンタドライバには、予め複数のLUTが設定されており、簡易ドライバから供給された印刷条件に応じて適切なLUTが選択されて、色変換処理が行われる。
以上のようにして色変換処理を終了したら、得られた画像データに対してハーフトーンとよばれる処理を開始する(ステップS310)。ハーフトーン処理とは、次のような処理である。色変換処理によって得られたインク各色についての画像データは、画素毎に、階調値0から階調値255までの値を取ることができる。これに対してプリンタは、ドットを形成することによって画像を表示しているから、それぞれの画素についてはドットを形成するか否かの状態しか取り得ない。そこで、256階調を有する画像データを、画素毎にドット形成の有無によって表現されたデータ(ドットデータ)に変換しておく必要がある。ハーフトーン処理とは、このように画像データをドットデータに変換する処理である。
ハーフトーン処理を行う手法としては、誤差拡散法やディザ法などの種々の手法を適用することができる。誤差拡散法は、ある画素についてドットの形成有無を判断したことでその画素に発生する階調表現の誤差を、周辺の画素に拡散するとともに、周囲から拡散されてきた誤差を解消するように、各画素についてのドット形成の有無を判断していく手法である。また、ディザ法は、ディザマトリックスにランダムに設定されている閾値と画像データの階調値とを画素毎に比較して、画像データの方が大きい画素にはドットを形成すると判断し、逆に閾値の方が大きい画素についてはドットを形成しないと判断することで、各画素についてのドットデータを得る手法である。
得られる印刷画質の観点からは、ディザ法よりも誤差拡散法の方が良好な結果が得られるが、印刷速度の観点からは、誤差拡散法よりもディザ法の方が優れている。そこで、簡易ドライバP−DRVから画像データとともに供給された印刷条件に応じて、何れか適切な手法を用いてハーフトーン処理が行われる。ここでは、供給された印刷条件には、印刷速度を優先する旨が設定されているものとして、ディザ法を用いてハーフトーン処理が行われるものとする。
図12は、ディザマトリックスの一部を拡大して例示した説明図である。図示したマトリックスには、縦横それぞれ64画素、合計4096個の画素に、階調値0〜255の範囲から万遍なく選択された閾値がランダムに記憶されている。ここで、閾値の階調値が0〜255の範囲から選択されているのは、本実施例では画像データが1バイトデータであり、画素に割り当てられる階調値が0〜255の値を取り得ることに対応するものである。尚、ディザマトリックスの大きさは、図12に例示したように縦横64画素分に限られるものではなく、縦と横の画素数が異なるものも含めて、種々の大きさに設定することが可能である。
図13は、ディザマトリックスを参照しながら、画素毎にドット形成の有無を判断している様子を概念的に示した説明図である。ドット形成有無の判断に際しては、先ず、判断の対象として着目している画素(着目画素)の階調値と、ディザマトリックス中の対応する位置に記憶されている閾値とを比較する。図中に示した細い破線の矢印は、着目画素の階調値を、ディザマトリックス中の対応する位置に記憶されている閾値と比較していることを模式的に表したものである。そして、ディザマトリックスの閾値よりも着目画素の階調値の方が大きい場合には、その画素にはドットを形成するものと判断する。逆に、ディザマトリックスの閾値の方が大きい場合には、その画素にはドットを形成しないものと判断する。図13に示した例では、画像データの左上隅にある画素の画像データは階調値97であり、ディザマトリックス上でこの画素に対応する位置に記憶されている閾値は1である。従って、左上隅の画素については、画像データの階調値97の方がディザマトリックスの閾値1よりも大きいから、この画素にはドットを形成すると判断する。図13中に実線で示した矢印は、この画素にはドットを形成すると判断して、判断結果をメモリに書き込んでいる様子を模式的に表したものである。一方、この画素の右隣の画素については、画像データの階調値は97、ディザマトリックスの閾値は177であり、閾値の方が大きいので、この画素についてはドットを形成しないものと判断する。このように、画像データの階調値とディザマトリックスに設定された閾値とを比較することにより、ドットの形成有無を画素毎に決定することができる。
以上のようにしてハーフトーン処理を行うことにより、画像データをドットデータに変換したら、今度は、インターレースと呼ばれる処理を開始する(ステップS312)。インターレース処理とは、次のような処理である。画像データは画素の並びに従って供給され、ドットデータも画像上で画素が並んでいる順番でドット形成の有無を表したデータとなっている。しかし、プリンタが実際にドットを形成する際には、画像の端の画素から順番にドットを形成しているわけではなく、プリンタの仕様や、印刷条件(特に印刷品質)に応じて適切な順序でドットを形成している。そこで、画素の並びに従ってドット形成の有無が表されたドットデータを、プリンタが実際にドットを形成する順番に並べ替える処理を行う。かかる処理が、インターレースと呼ばれる処理である。
インターレース処理を終了したら、得られたデータを順次読み出して印刷用紙上にドットを形成する(ステップS314)。そして、全てのドットを形成したら、図6に示した印刷実行処理を終了する。こうしてドットを形成することにより、印刷用紙上に適切な分布でインクドットが形成されて、画像が印刷されることになる。
以上に説明したように、第1実施例の印刷システムにおいては、画像機器のモニタ上にユーザーが選択可能な態様で表示される印刷条件は、プリンタが個別に対応している個別印刷条件については、プリンタ内のメモリに記憶され、想定している全てのプリンタが標準的に対応している標準印刷条件については、画像機器のメモリに記憶されている。このように印刷条件を、プリンタと画像機器とに分散した状態で記憶しておけば、プリンタ内のメモリに記憶しておくべき印刷条件が減少するので、メモリ容量を節約することができる。
尚、以上の説明では、プリンタ内に記憶されている個別印刷条件と、画像機器内に記憶されている標準印刷条件とに、同じ印刷条件が重複して記憶されることはないものとした。しかし、同じ印刷条件を重複して記憶することが許されないわけではなく、一部の印刷条件を重複して記憶することとしてもよい。
D.第2実施例 :
以上に説明した第1実施例の印刷システムでは、プリンタドライバが読み出した個別印刷条件と、簡易ドライバP−DRVが読み出した標準印刷条件とを、選択可能な印刷条件として表示した。換言すれば、プリンタドライバは、標準印刷条件に追加するべき個別印刷条件を読み出して、簡易ドライバP−DRVに出力していることになる。これに対して、標準印刷条件に追加して表示するべき印刷条件だけでなく、表示の際に標準印刷条件から削除するべき印刷条件を、プリンタドライバから簡易ドライバP−DRVに供給する事としてもよい。こうすれば、各々の画像機器が想定するプリンタが増加した場合でも、画像機器側に記憶する標準印刷条件が減少してしまうことを回避して、プリンタ側に記憶しておく印刷条件を減少させることが可能となる。以下、こうした第2実施例の印刷システムについて説明する。
図14は、第2実施例の簡易ドライバP−DRVによって実行される画像データ供給処理の流れを示したフローチャートである。また、図15は、第2実施例のプリンタドライバによって実行される印刷実行処理の流れを示したフローチャートである。第2実施例の印刷実行処理は、図6を用いて前述した第1実施例の印刷実行処理に対して、個別印刷条件に加えて、削除指定条件を出力する点が大きく異なっている。また、第2実施例の画像データ供給処理は、図5を用いて前述した第1実施例の画像データ供給処理と比べて、読み出した標準印刷条件の中から指定された印刷条件を削除した後、個別印刷条件とともに、印刷条件としてアプリケーションプログラムに出力する点が大きく異なっている。以下では、かかる相違点を中心として、第2実施例の画像データ供給処理および第2実施例の印刷実行処理について説明する。
図14に示されるように、第2実施例の画像データ供給処理を開始すると、先ず初めに、画像印刷処理から出力された印刷命令を受け取ったか否かを判断し(ステップS250)、印刷命令を受け取ったら(ステップS250:yes)、プリンタに搭載されたプリンタドライバに対して、印刷条件の問い合わせを行う(ステップS252)。そして、プリンタドライバに印刷条件を問い合わせたら、プリンタドライバから印刷条件の応答があったか否かを判断し(ステップS252)、応答があるまで待機する。
一方、プリンタに搭載されたプリンタドライバでは、返信命令を受け取ると、印刷実行処理が開始される。
図15に示されるように、第2実施例の印刷実行処理では、先ず初めに、簡易ドライバP−DRVから印刷条件の問い合わせがあったか否かを判断する(ステップS350)。以上に説明した一連の処理内容は、第1実施例と同様である。
第2実施例の印刷実行処理では、問い合わせを受け取ったと判断された場合には(ステップS350:yes)、プリンタに記憶されている個別の印刷条件と、削除指定条件とを読み出して、簡易ドライバP−DRVに対して返信する処理を行う(ステップS352)。ここで、前述したように個別印刷条件とは、画像機器側に記憶されている標準印刷条件に対して追加して表示される印刷条件であるが、削除指定条件とは、標準印刷条件から削除して表示するよう指定する印刷条件である。削除指定条件は、個別印刷条件と同様に、プリンタに搭載された図示しないメモリに記憶されている。
こうして個別の印刷条件および削除指定条件を出力したら、続いて、簡易ドライバP−DRVから、画像データおよび印刷条件を受け取ったか否かを判断し(ステップS354)、これらを受け取るまで待機する。
一方、画像データ供給処理では、図14に示したように、プリンタドライバに対して印刷条件を問い合わせると(図14のS252)、プリンタドライバから、個別印刷条件および削除指定条件を受け取るまで待機している(S254)。そして、プリンタドライバから、これらを受け取ると(ステップS254:yes)、メモリから標準印刷条件を読み出した後(ステップS256)、標準印刷条件から削除指定条件を除去する処理を行う(ステップS258)。
次いで、残った印刷条件すなわち、プリンタドライバから受け取った個別印刷条件および簡易ドライバが読み出した標準印刷条件の中から、削除指定条件を除いた残りの印刷条件を、アプリケーションプログラムに向かって出力する処理を行う(ステップS260)。そして、印刷条件を出力したら、印刷しようとする画像データおよび印刷条件を受け取るまで、そのまま待機する(ステップS262)。
一方、アプリケーションプログラムの側では、前述した第1実施例と同様な画像印刷処理が行われている。そして、モニタ22の画面に表示されている印刷条件の中から、ユーザーが所望の印刷条件を選択して、印刷実行ボタンを選択すると(図7参照のこと)、印刷しようとする画像データと選択された印刷条件とが簡易ドライバに向かって出力される。
図14に示した第2実施例の画像データ供給処理では、このようにしてアプリケーションプログラムの側から出力されてきた画像データおよび印刷条件を受け取ると(図14のステップS262:yes)、受け取った画像データおよび印刷条件をプリンタドライバに転送した後(ステップS264)、第2実施例の画像データ供給処理を終了する。
前述したように、プリンタドライバでは、図15に示した印刷実行処理が行われており、簡易ドライバP−DRVに向かって個別印刷条件および削除指定条件を出力した後は(ステップS352)、印刷しようとする画像データおよび印刷条件が簡易ドライバから転送されてくるまで待機状態となっている(ステップS354)。そして、画像データおよび印刷条件が簡易ドライバから供給されると(ステップS354:yes)、前述した第1実施例と同様に、供給された印刷条件を考慮しながら、受け取った画像データに対して所定の画像処理を施すことにより、プリンタが印刷可能なデータ形式に変換した後、印刷用紙上に画像を印刷する処理を行う。すなわち、画像データの解像度を印刷解像度に変換し(ステップS366)、色変換を行ってプリンタで使用されるインクの色によって表現された画像データに変換する(ステップS368)。次いで、ハーフトーン処理を行って画素毎にドットを形成するか否かを判断し(ステップS370)、得られたドットデータの順序をプリンタがドットを形成する順番に並べ替えた後(ステップS372)、実際にドットを形成する(ステップS374)。こうして画像を印刷したら、図15に示した第2実施例の印刷実行処理を終了する。
以上に説明した第2実施例の印刷実行処理では、プリンタのメモリに記憶されている個別印刷条件に加えて、削除指定条件を、簡易ドライバP−DRVに出力する。そして、第2実施例の画像データ供給処理では、画像機器のメモリから読み出した標準印刷条件およびプリンタドライバから供給された個別印刷条件の中から、削除指定条件によって指定された印刷条件を削除して、残った印刷条件をアプリケーションプログラムに供給している。こうすれば、たとえ画像機器が想定するプリンタが増加した場合でも、画像機器とプリンタとに分散した状態で印刷条件を記憶しておくことが可能となり、プリンタ側のメモリを節約することが可能となる。以下、この点について詳しく説明する。
図16は、プリンタから削除指定条件を出力可能とすることで、プリンタ側に記憶しておくべき印刷条件を抑制することが可能な理由を示す説明図である。今、ある画像機器に接続され得るプリンタとして、「プリンタ1」ないし「プリンタ5」の5つのプリンタが想定されているとして、各プリンタでは、それぞれに対応可能な印刷条件が異なっているものとする。たとえば、図16(a)に示すように、「プリンタ1」は条件aないし条件cに対応しているが、条件dには対応しておらず、「プリンタ2」は条件aないし条件dの何れにも対応しているものとする。ここで、条件a,b,c,dとは、たとえば「用紙サイズ」についての「L版」、「2L版」、「A3縦」など、モニタ画面上に表示される具体的な印刷条件を表している。
図16(a)に示されているように、この画像機器に接続されることが想定されている全てのプリンタで対応している印刷条件(すなわち標準印刷条件)は存在しないから、画像機器側のメモリには何れの印刷条件も記憶されず、全ての印刷条件が個別印刷条件としてプリンタ側のメモリに記憶されることになる。たとえば「プリンタ1」のメモリには、条件a〜cの3つの印刷条件が記憶され、「プリンタ2」のメモリには条件a〜dの4つの印刷条件が記憶されることになる。
このように標準印刷条件が存在せず、全ての印刷条件をプリンタ側で記憶しておかなければならないという状態は、画像機器に接続されることが想定されているプリンタの種類が増加する程、生じ易くなる。たとえば、図16(a)に示した例では、想定しているプリンタから「プリンタ5」を外して、接続されるプリンタを「プリンタ1」ないし「プリンタ4」の4つのプリンタに絞ってしまえば、条件bは標準印刷条件となって画像機器側に記憶しておくことができる。同様に、「プリンタ4」も外して、画像機器に接続されるプリンタを「プリンタ1」ないし「プリンタ3」の3つに絞ってしまえば、条件aも標準印刷条件となって、画像機器側に記憶しておくことが可能となる。これを逆から見れば、画像機器に接続されるプリンタの種類が増加するほど、標準印刷条件として画像機器側に記憶可能な印刷条件が減少し、その結果として、プリンタのメモリを節約することが困難になると考えられる。これに対して、印刷条件の削除をプリンタ側から指定可能とすれば、画像機器に接続され得るものとして想定されたプリンタの種類が増加しても、標準印刷条件が減少することを回避することが可能となる。
図16(b)は、印刷条件の削除をプリンタ側から指定可能として、各プリンタが対応可能な印刷条件を表現した様子を例示した説明図である。たとえば「プリンタ3」は、条件aおよび条件bの2つの条件しか対応していないが、便宜的に条件cにも対応していることにしておき、便宜的に設定された条件cをプリンタ側から削除することで、本当に対応可能な2つの条件(条件aおよび条件b)を表現するものとする。同様に、「プリンタ4」については、便宜的に条件aも対応可能として、条件aないし条件dの全条件に対応可能であることにしておき、その後、プリンタ側から条件aを削除することで、実際に対応可能な条件bないし条件dの3つの条件を表現する。更に、「プリンタ5」については、便宜的に条件bも対応可能としておき、プリンタ側から条件bを削除してやればよい。図16(b)では、各プリンタで便宜的に設定された条件は()を付けて表している。
このように便宜的に条件を設定した結果、図16(b)に示されているように、条件a、条件b、条件cの3つの条件は、想定している全てのプリンタで対応可能な印刷条件(標準印刷条件)となり、プリンタ側に記憶しておくべき個別印刷条件は、「プリンタ2」および「プリンタ4」が対応している条件dのみとなる。
図16(c)は、このようにして、各プリンタが対応可能な印刷条件を、標準印刷条件と、個別印刷条件と、削除指定条件を用いて表した様子を示している。図示されているように、たとえば「プリンタ1」については、画像機器側に標準印刷条件が記憶されているので、プリンタ側で個別印刷条件や削除指定条件を記憶しておく必要はない。また、「プリンタ2」については、プリンタ側で個別印刷条件として条件dのみ記憶しておけばよい。「プリンタ3」に記憶しておくべき条件は、削除指定条件の条件cのみで足り、「プリンタ4」については、個別印刷条件の条件bおよび削除指定条件の条件aを記憶しておけばよい。更に「プリンタ5」については、削除指定条件として条件bのみを記憶しておけばよい。
プリンタ側から印刷条件の削除を指定可能としなければ、各プリンタのメモリには、図16(a)に示された全ての条件を記憶しておく必要があったことと比較すれば、図16(c)に示した個別印刷条件および削除指定条件を記憶する方が、各プリンタに記憶しておくべきデータ量が低減されていることが了解できる。このように、削除指定条件を使用すれば、たとえ想定しているプリンタの種類が増加した場合でも、画像機器側とプリンタ側とで印刷条件を分散して記憶することが可能となり、プリンタ側のメモリ量を節約することが可能となるのである。
以上、各種の実施例について説明したが、本発明は上記すべての実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することができる。