(57)【要約】【課題】  デジタルスチルカメラなどの画像データ供給装置に保存されている画像データファイルに基づき画像などを印刷すること。【解決手段】  印刷処理中継装置２は、プリンタと１対１対応にて直接接続可能な画像データ供給装置１から、画像データファイルに基づく画像の印刷処理指示を受信する受信手段と、受信手段が受信した印刷処理指示の内容を解釈し、この指示された印刷処理と等価な印刷処理を行うための複数の印刷処理指示を生成する分割手段と、分割手段が生成した複数の印刷処理指示を、それぞれが画像データ供給装置１と１対１対応にて直接接続し、印刷処理指示に基づき印刷処理を実行可能な複数のプリンタ３へ所定の方式で分散して送信する送信手段と、を有する。【選択図】  図１２
2005222232.tif 000002
【特許請求の範囲】
【請求項１】
プリンタと１対１対応にて直接接続可能な画像データ供給装置から、画像データファイルに基づく画像の印刷処理指示を受信する受信手段と、
上記受信手段が受信した印刷処理指示の内容を解釈し、この指示された印刷処理と等価な印刷処理を行うための複数の印刷処理指示を生成する分割手段と、
上記分割手段が生成した複数の印刷処理指示を、それぞれが上記画像データ供給装置と１対１対応にて直接接続し、印刷処理指示に基づき印刷処理を実行可能な複数のプリンタへ所定の方式で分散して送信する送信手段と、
を有することを特徴とする印刷処理中継装置。
【請求項２】
前記分割手段は、前記受信手段が受信した印刷処理指示にて指定されている全印刷枚数を、前記送信手段の送信先となるプリンタの数に分割した印刷枚数を指定した複数の印刷処理指示を生成することを特徴とする請求項１記載の印刷処理中継装置。
【請求項３】
前記分割手段は、前記受信手段が受信した印刷処理指示にて指定されている印刷枚数を、印刷の最小単位毎に分割した複数の印刷処理指示を生成し、
前記送信手段は、上記印刷の最小単位毎の印刷処理指示を複数のプリンタへ送信し、且つ、印刷処理が完了したプリンタあるいは印刷処理が完了する直前のプリンタへ、未処理の上記印刷の最小単位毎の印刷処理指示をさらに送信することを特徴とする請求項１記載の印刷処理中継装置。
【請求項４】
前記複数のプリンタからそれぞれの処理能力に関する情報を取得する取得手段を有し、
前記分割手段は、プリンタの上記処理能力に関する情報に応じて、そのプリンタへの印刷処理指示を生成することを特徴とする請求項１記載の印刷処理中継装置。
【請求項５】
前記取得手段は、プリンタの処理能力に関する情報として、単位時間当たりの印刷枚数の情報を取得することを特徴とする請求項４記載の印刷処理中継装置。
【請求項６】
プリンタと１対１対応にて直接接続可能な画像データ供給装置から、画像データファイルに基づく画像の印刷処理指示を受信するステップと、
受信した印刷処理指示の内容を解釈し、この指示された印刷処理と等価な印刷処理を行うための複数の印刷処理指示を生成するステップと、
上記生成した複数の印刷処理指示を、それぞれが上記画像データ供給装置と１対１対応にて直接接続し、印刷処理指示に基づき印刷処理を実行可能な複数のプリンタへ所定の方式で分散して送信するステップと、
を有することを特徴とする印刷処理の中継方法。
【請求項７】
請求項１から請求項５のうちのいずれか１項記載の印刷処理中継装置と、
上記印刷処理中継装置に接続され、印刷処理指示を上記印刷処理中継装置へ送信する画像データ供給装置と、
上記印刷処理中継装置に接続され、それぞれ上記印刷処理中継装置から印刷処理指示を受信し、その印刷処理指示に基づき印刷処理を行う複数のプリンタと、
を有することを特徴とする分散印刷システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルスチルカメラなどの画像データ供給装置に保存されている画像データファイルに基づき画像などを印刷するための印刷処理中継装置、印刷処理の中継方法および分散印刷システムに関する。
【背景技術】
【０００２】
特許文献１には、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）を介して、ＵＳＢストレージクラスデバイスのデジタルカメラと、ＵＳＢホストのプリンタとを直接に接続したシステムが開示されている。このシステムでは、カメラは、そのボタンの操作に応じて、プリンタに対するプリンタステータス要求や印刷要求や印刷中止要求などをファイルの形で生成し、カメラ内のメモリに書き込む。プリンタは、カメラ内のメモリを高速レートで周期的にチェックし、要求のファイルを見つけると、そのファイルを読み込み、要求された動作を実行する。
【０００３】
【特許文献１】特開２００３−２５９２７４号公報（図面、発明の詳細な説明）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１にあるように、デジタルカメラとプリンタとを直接に接続し、このデジタルカメラに保存されている画像データをそのプリンタで印刷させる場合、その印刷が完了するまでに長い時間がかかることがある。
【０００５】
特に、近年のようにデジタルカメラの撮像画像の解像度が上がるとともに、大容量の記録媒体がデジタルカメラに内蔵されている状態では、大量の印刷要求がなされた場合には、印刷処理に非常に長い時間がかかってしまう。
【０００６】
本発明は、デジタルスチルカメラなどの画像データ供給装置に保存されている画像データファイルに基づき画像などを印刷することができる印刷処理中継装置、印刷処理の中継方法および分散印刷システムを得ることを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る印刷処理中継装置は、プリンタと１対１対応にて直接接続可能な画像データ供給装置から、画像データファイルに基づく画像の印刷処理指示を受信する受信手段と、受信手段が受信した印刷処理指示の内容を解釈し、この指示された印刷処理と等価な印刷処理を行うための複数の印刷処理指示を生成する分割手段と、分割手段が生成した複数の印刷処理指示を、それぞれが画像データ供給装置と１対１対応にて直接接続し、印刷処理指示に基づき印刷処理を実行可能な複数のプリンタへ所定の方式で分散して送信する送信手段と、を有するものである。
【０００８】
この構成を採用すれば、画像データ供給装置から出力される印刷処理指示を、複数のプリンタで分散処理することができ、画像データ供給装置に保存されている画像データファイルに基づく画像などを効率よく印刷することができる。
【０００９】
また、このような印刷処理中継装置を使用することで、画像データ供給装置およびプリンタそのものには、１対１の印刷処理（すなわち、ダイレクト印刷）に対応したものを使用することができる。したがって、１対多の印刷処理に対応した特別な画像データ供給装置およびプリンタを使用することなく、１対多による印刷処理が可能となる。その結果、１対１の印刷処理に対応した汎用的な画像データ供給装置およびプリンタを使用して、１対多による印刷処理を、安価に且つメンテナンスや維持が容易に実現することができる。また、そのように汎用的な画像データ供給装置およびプリンタを使用することができるので、たとえば大量印刷などの頻度が多くない場合であっても、わずかな投資でこの効率の良い分散印刷処理の利益を享受することができる。
【００１０】
本発明に係る印刷処理中継装置は、上述した発明の構成に加えて、分割手段が、受信手段が受信した印刷処理指示にて指定されている全印刷枚数を、送信手段の送信先となるプリンタの数に分割した印刷枚数を指定した複数の印刷処理指示を生成するものである。
【００１１】
この構成を採用すれば、複数のプリンタは、ほぼ均等に割り当てられた枚数の印刷処理をそれぞれ実行し、印刷処理を短時間で完了させることができる。
【００１２】
本発明に係る印刷処理中継装置は、上述した各発明の構成に加えて、分割手段が、受信手段が受信した印刷処理指示にて指定されている印刷枚数を、印刷の最小単位毎に分割した複数の印刷処理指示を生成し、送信手段が、印刷の最小単位毎の印刷処理指示を複数のプリンタへ送信し、且つ、印刷処理が完了したプリンタあるいは印刷処理が完了する直前のプリンタへ、未処理の印刷の最小単位毎の印刷処理指示をさらに送信するものである。
【００１３】
この構成を採用すれば、各プリンタは、未処理の最小単位毎の印刷処理を繰り返し実行する。これにより、複数のプリンタの単位時間あたりの印刷可能枚数が異なる場合には、処理能力が高いプリンタがより多くの印刷処理を実行し、その結果として、それら複数のプリンタに均等に印刷処理を割り当てた場合に比べて、短い期間でその印刷処理を完了することができる。
【００１４】
本発明に係る印刷処理中継装置は、上述した各発明の構成に加えて、複数のプリンタからそれぞれの処理能力に関する情報を取得する取得手段を有し、分割手段が、プリンタの処理能力に関する情報に応じて、そのプリンタへの印刷処理指示を生成するものである。
【００１５】
この構成を採用すれば、分割手段は、複数のプリンタの処理能力に応じて振り分け、各プリンタは、それぞれの能力に応じた枚数、種類の印刷処理を実行する。したがって、複数のプリンタの能力を組み合わせた最短の時間にて、その印刷処理を完了することができる。この能力としては、たとえば単位時間当たりの印刷枚数で考慮されたりする。
【００１６】
本発明に係る印刷処理中継装置は、上述した各発明の構成に加えて、取得手段が、プリンタの処理能力に関する情報として、単位時間当たりの印刷枚数の情報を取得するものである。
【００１７】
この構成を採用することで、分割手段は、複数のプリンタの単位時間当たりの印刷枚数に応じて振り分け、各プリンタは、それぞれのその能力に応じた枚数の印刷処理を実行する。
【００１８】
本発明に係る印刷処理の中継方法は、プリンタと１対１対応にて直接接続可能な画像データ供給装置から、画像データファイルに基づく画像の印刷処理指示を受信するステップと、受信した印刷処理指示の内容を解釈し、この指示された印刷処理と等価な印刷処理を行うための複数の印刷処理指示を生成するステップと、生成した複数の印刷処理指示を、それぞれが画像データ供給装置と１対１対応にて直接接続し、印刷処理指示に基づき印刷処理を実行可能な複数のプリンタへ所定の方式で分散して送信するステップと、を有するものである。
【００１９】
この方法を採用すれば、画像データ供給装置から出力される印刷処理指示を、複数のプリンタで分散処理することができ、画像データ供給装置に保存されている画像データファイルに基づく画像を効率よく印刷することができる。
【００２０】
また、このような印刷処理の中継方法によることで、画像データ供給装置およびプリンタそのものには、１対１の印刷処理（すなわち、ダイレクト印刷）に対応したものを使用することができる。したがって、１対多の印刷処理に対応した特別な画像データ供給装置およびプリンタを使用することなく、１対多による印刷処理が可能となる。その結果、１対１の印刷処理に対応した汎用的な画像データ供給装置およびプリンタを使用して、１対多による印刷処理を、安価に且つメンテナンスや維持が容易に実現することができる。また、そのように汎用的な画像データ供給装置およびプリンタを使用することができるので、たとえば大量印刷の頻度が多くない場合であっても、わずかな投資でこの効率の良い分散印刷処理の利益を享受することができる。
【００２１】
本発明に係る分散印刷システムは、上述したいずれか１つの発明に係る印刷処理中継装置と、印刷処理中継装置に接続され、印刷処理指示を印刷処理中継装置へ送信する画像データ供給装置と、印刷処理中継装置に接続され、それぞれ印刷処理中継装置から印刷処理指示を受信し、その印刷処理指示に基づき印刷処理を行う複数のプリンタと、を有するものである。
【００２２】
この構成を採用すれば、画像データ供給装置から出力される印刷処理指示を、複数のプリンタで分散処理することができ、画像データ供給装置に保存されている画像データファイルに基づく画像を効率よく印刷することができる。
【００２３】
また、このような分散印刷システムを使用することで、画像データ供給装置およびプリンタそのものには、１対１の印刷処理（すなわち、ダイレクト印刷）に対応したものを使用することができる。したがって、１対多の印刷処理に対応した特別な画像データ供給装置およびプリンタを使用することなく、１対多による印刷処理が可能となる。その結果、１対１の印刷処理に対応した汎用的な画像データ供給装置およびプリンタを使用して、１対多による印刷処理を、安価に且つメンテナンスや維持が容易に実現することができる。また、そのように汎用的な画像データ供給装置およびプリンタを使用することができるので、たとえば大量印刷の頻度が多くない場合であっても、わずかな投資でこの効率の良い分散印刷処理の利益を享受することができる。
【発明の効果】
【００２４】
本発明では、デジタルスチルカメラなどの画像データ供給装置に保存されている画像データファイルに基づき画像などを効率よく印刷することができる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施の形態に係る印刷処理中継装置、印刷処理の中継方法および分散印刷システムを、図面に基づいて説明する。なお、印刷処理中継装置は、分散印刷システムの構成の一部として説明する。印刷処理の中継方法は、分散印刷システムの動作の一部として説明する。
【００２６】
実施の形態１．
図１は、本発明の実施の形態１に係る分散印刷システムを示す構成図である。分散印刷システムは、画像データファイルを格納・出力可能な画像データ供給装置であるデジタルスチルカメラ（ＤＳＣ：Ｄｉｇｉｔａｌ  Ｓｔｉｌｌ  Ｃａｍｅｒａ）１と、印刷処理中継装置としてのボックス機器２と、複数台のプリンタ３と、を有する。ＤＳＣ１は、ＵＳＢケーブル４によってボックス機器２と直接に接続されている。複数台のプリンタ３は、複数本のＵＳＢケーブル４によってボックス機器２とそれぞれ直接に接続されている。
【００２７】
このＤＳＣ１と各プリンタ３は、ＵＳＢケーブル４によって１対１対応にて直接接続可能である。その場合には、ＤＳＣ１と各プリンタ３によりダイレクト印刷が可能となる。また、インタフェースとしてＵＳＢを使用する場合、ＤＳＣ１とプリンタ３のうちの一方が、ＵＳＢデバイスとして機能し、他方が、ＵＳＢホストとして機能する。このため、これらのＤＳＣ１と各プリンタ３とに接続されるボックス機器２には、ＵＳＢホストとしての機能と、ＵＳＢデバイスとしての機能が実装される。また、この場合、ＤＳＣ１とプリンタ３とを直接接続する際に使用されるＵＳＢケーブルをボックス機器２とＤＳＣ１、およびボックス機器２と各プリンタ３とを接続するＵＳＢケーブル４として使用することが可能である。
【００２８】
図２は、図１中のＤＳＣ１のハードウェア構成を示すブロック図である。ＤＳＣ１は、プログラムを実行する中央処理装置１１（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、フラッシュメモリ１２と、ＵＳＢケーブル４が接続されるＵＳＢ通信回路１３と、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）ポート１４と、カードリーダ１５と、これらを接続するバス１６と、を有する。Ｉ／Ｏポート１４には、撮像によって画像データを生成する撮像部１７と、各種データや画像を表示する表示デバイス１８と、操作に応じた入力データを生成する入力デバイス１９と、が接続される。カードリーダ１５には、半導体メモリなどによるリムーバブルメモリ２０が脱着される。
【００２９】
図３は、図２中のフラッシュメモリ１２の記憶内容を示す図である。フラッシュメモリ１２には、プログラム群が記憶される。フラッシュメモリ１２のプログラム群には、撮像制御プログラム２１と、ＵＳＢデバイスコントローラプログラム２２と、ＵＳＢスティルイメージクラスドライバプログラム２３と、ＰＴＰ（Ｐｉｃｔｕｒｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）ドライバプログラム２４と、オペレーションコントローラプログラム２５と、ストレージコントローラプログラム２６と、ストレージデバイスプログラム２７と、が含まれる。
【００３０】
撮像制御プログラム２１は、中央処理装置１１によって実行されることで、撮像制御部を実現する。撮像制御部は、撮像部１７を制御する。そして、その撮像部１７が撮像した画像データを、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐ），ＥＸＩＦ（Ｅｘｃｈａｎｇｅａｂｌｅ  Ｉｍａｇｅ  Ｆｉｌｅ  Ｆｏｒｍａｔ）などといった形式の画像データファイルとしてリムーバブルメモリ２０に記憶させる。
【００３１】
ＵＳＢデバイスコントローラプログラム２２は、中央処理装置１１によって実行されることで、ＵＳＢデバイスコントローラを実現する。ＵＳＢデバイスコントローラは、ＵＳＢ通信回路１３による通信データの送受信を制御する。
【００３２】
ＵＳＢスティルイメージクラスドライバプログラム２３は、中央処理装置１１によって実行されることで、ＵＳＢスティルイメージクラスドライバを実現する。スティルイメージクラスは、ＵＳＢのクラスの中の１つであり、ＵＳＢケーブル４を用いた静止画像の転送のためのクラスである。ＵＳＢスティルイメージクラスドライバは、このＵＳＢの規格に準拠した静止画像の通信制御を行う。
【００３３】
ＰＴＰドライバプログラム２４は、中央処理装置１１によって実行されることで、ＰＴＰドライバを実現する。ＰＴＰは、ＤＳＣ１からプリンタ３へ画像データを送信するためのプロトコルである。ＰＴＰドライバは、このＰＴＰに準拠した画像データの送信制御を行う。
【００３４】
オペレーションコントローラプログラム２５は、中央処理装置１１によって実行されることで、印刷処理の進行の制御や印刷処理に関するリクエストやレスポンスを送受するオペレーションコントローラを実現する。ストレージコントローラプログラム２６は、中央処理装置１１によって実行されることで、ストレージに関するリクエストやレスポンスを送受するストレージコントローラを実現する。ストレージデバイスプログラム２７は、中央処理装置１１によって実行されることで、ストレージに対する入出力処理を行うストレージデバイスを実現する。
【００３５】
図４は、図２中のリムーバブルメモリ２０の記憶内容を示す図である。リムーバブルメモリ２０には、データ群が記憶される。リムーバブルメモリ２０のデータ群には、複数の画像データファイル２８が含まれる。画像データファイル２８には、１つの画像データが格納される。ＤＳＣ１では、この画像データに、撮像部１７により生成された画像データが含まれる。また、画像データファイル２８は、互いに異なるファイル名およびファイルＩＤ（アドレス）を有する。
【００３６】
なお、リムーバブルメモリ２０のデータ群には、ＤＰＯＦ（Ｄｉｇｉｔａｌ  Ｐｒｉｎｔ  Ｏｒｄｅｒ  Ｆｏｒｍａｔ）データファイル２９が含まれてもよい。ＤＰＯＦデータファイル２９には、ＤＰＯＦデータが格納される。ＤＰＯＦデータは、画像データの印刷をＤ＆Ｐショップなどに依頼するために規格されたフォーマットのデータである。このデータでは、印刷する画像データのファイル名、印刷する印画紙などのサイズ、画像データの印刷サイズ、画像データのレイアウト、印刷枚数などが指定される。
【００３７】
図５は、図１中のプリンタ３のハードウェア構成を示すブロック図である。１つのプリンタ３は、中央処理装置３１と、メモリ３２と、ＵＳＢケーブル４が接続されるＵＳＢ通信回路３３と、Ｉ／Ｏポート３４と、これらを接続するバス３５と、を有する。Ｉ／Ｏポート３４には、所定のプリンタコードにしたがって紙やＯＨＰシートなどに印刷処理を行うプリンタ部３６が接続される。
【００３８】
図６は、図５中のメモリ３２の記憶内容を示す図である。メモリ３２には、プログラム群が記憶される。メモリ３２のプログラム群には、プリンタコード生成プログラム４１と、ＵＳＢホストコントローラプログラム４２と、ＵＳＢスティルイメージクラスドライバプログラム４３と、ＰＴＰドライバプログラム４４と、プリントコントローラプログラム４５と、が含まれる。
【００３９】
プリンタコード生成プログラム４１は、中央処理装置３１によって実行されることで、プリンタコード生成部を実現する。プリンタコード生成部は、画像データおよびその印刷設定情報に基づいて、たとえばＥＳＣ／Ｐ（Ｅｐｓｏｎ  Ｓｔａｎｄａｒｄ  Ｃｏｄｅ／Ｐａｇｅ）コマンドといったプリンタコードを生成する。このプリンタコードは、Ｉ／Ｏポート３４を介してプリンタ部３６へ出力される。
【００４０】
ＵＳＢホストコントローラプログラム４２は、中央処理装置３１によって実行されることで、ＵＳＢホストコントローラを実現する。ＵＳＢホストコントローラは、ＵＳＢ通信回路３３による通信データの送受信を制御する。
【００４１】
ＵＳＢスティルイメージクラスドライバプログラム４３は、中央処理装置３１によって実行されることで、ＵＳＢスティルイメージクラスドライバを実現する。ＰＴＰドライバプログラム４４は、中央処理装置３１によって実行されることで、ＰＴＰドライバを実現する。プリントコントローラプログラム４５は、中央処理装置３１によって実行されることで、プリントコントローラを実現する。
【００４２】
ところで、図１中のＤＳＣ１とプリンタ３とは、上述のように、ＵＳＢケーブル４によって直接に接続することができる。図７は、図１中のＤＳＣ１とプリンタ３とをＵＳＢケーブル４によって１対１対応にて接続した状態を示す構成図である。図７の接続状態で、プリンタ３の電源を入れると、プリンタ３の中央処理装置３１は、メモリ３２に記憶されているプログラムを実行する。また、ＤＳＣ１の電源を入れると、ＤＳＣ１の中央処理装置３１は、フラッシュメモリ１２に記憶されているプログラムを実行する。
【００４３】
図８は、図７の接続状態でプリンタ３の電源およびＤＳＣ１の電源が投入されることで実現される通信プロトコルのスタック構造を示す説明図である。
【００４４】
ＤＳＣ１では、物理層としてのＵＳＢ通信回路１３の上位に、データリンク層としてのＵＳＢデバイスコントローラ５１と、ネットワーク層としてのＵＳＢスティルイメージクラスドライバ５２と、トランスポート層としてのＰＴＰドライバ５３とが存在する。また、このＰＴＰドライバ５３の上位には、アプリケーション層として、オペレーションコントローラ５４と、ストレージコントローラ５５と、ストレージデバイス５６と、が存在する。
【００４５】
プリンタ３では、物理層としてのＵＳＢ通信回路３３の上位に、データリンク層としてのＵＳＢホストコントローラ６１と、ネットワーク層としてのＵＳＢスティルイメージクラスドライバ６２と、トランスポート層としてのＰＴＰドライバ６３とが存在する。また、このＰＴＰドライバ６３の上位には、アプリケーション層として、プリントコントローラ６４が存在する。
【００４６】
また、ＤＳＣ１のＵＳＢ通信回路１３と、プリンタ３のＵＳＢ通信回路３３とは、ＵＳＢケーブル４によって接続される。
【００４７】
そして、図７に示す接続状態において、ＤＳＣ１の入力デバイス１９が操作され、この入力デバイス１９から印刷指示が出力されると、オペレーションコントローラ５４は、その印刷を指示するためのスタートプリントリクエスト（印刷処理指示）を生成する。
【００４８】
図９は、オペレーションコントローラ５４が生成するスタートプリントリクエストの一例を示す図である。このスタートプリントリクエストは、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式で記述されたリクエストである。リクエストを示す一対のタグ７１の間に、そのリクエストがプリントジョブ（印刷処理）であることを示す一対のタグ７２が記述される。また、プリントジョブを示す一対のタグ７２の間に、印刷指示の内容を示すテキストデータがそれぞれの属性を示す一対のタグ７３に挟まれた状態で記述される。図９の例のスタートプリントリクエストでは、Ｌ版のフォトペーパに、ファイルＩＤ（ファイル名と１対１に対応した識別番号）が「０００１」のＪＰＥＧ形式の画像データを、「２００２／０５／３０」の日付とともに、ベストクオリティで３０部印刷することを指示するものである。なお、このスタートプリントリクエストにおいて、画像データのファイルＩＤの代わりに、ＤＰＯＦデータファイル２９のファイル名を指定してもよい。
【００４９】
オペレーションコントローラ５４で生成されたスタートプリントリクエストは、ＰＴＰドライバ５３によってＰＴＰ規格の通信データへ変換され、ＵＳＢスティルイメージクラスドライバ５２によってＵＳＢ規格の通信データへ変換される。ＵＳＢデバイスコントローラ５１は、ＵＳＢ通信回路３３を制御し、ＵＳＢ通信回路３３にこのＵＳＢ規格の通信データをＵＳＢケーブル４へ送出させる。
【００５０】
プリンタ３のＵＳＢ通信回路３３は、この通信データを受信する。ＵＳＢホストコントローラ６１は、このプリンタ３のＵＳＢ通信回路３３が受信した通信データを、ＵＳＢスティルイメージクラスドライバ６２へ渡す。この通信データは、ＵＳＢスティルイメージクラスドライバ６２によってＰＴＰ規格の通信データへ逆変換され、ＰＴＰドライバ６３によってスタートプリントリクエストへ逆変換されてプリントコントローラ６４に渡される。これにより、オペレーションコントローラ５４からプリントコントローラ６４へスタートプリントリクエストが伝送される。
【００５１】
プリントコントローラ６４は、逆変換されたそのスタートプリントリクエストの印刷指示の内容を解釈する。そして、たとえば図９の例ではファイルＩＤが「０００１」である画像データファイルに基づく画像の印刷が指示されているので、プリントコントローラ６４は、その印刷処理に必要な画像データファイル（図９の例ではファイルＩＤが「０００１」である画像データファイル）を取得するためのゲットイメージファイルリクエストを生成する。このゲットイメージファイルリクエストは、ＸＭＬ形式で記述されたものであり、そのリクエストを示す一対のタグの間に、そのリクエストがゲットイメージファイルであることを示す一対のタグが記述され、ゲットイメージファイルを示す一対のタグの間に、その取得に係る画像データのファイルＩＤのテキストデータ（図９の例では「０００１」）がそれぞれの属性を示す一対のタグに挟まれた状態で記述される。
【００５２】
プリントコントローラ６４により生成されたゲットイメージファイルリクエストは、プリンタ３のＰＴＰドライバ６３およびＵＳＢスティルイメージクラスドライバ６２を介して、ＵＳＢ通信回路３３から通信データとしてＵＳＢケーブル４へ送出される。また、ＤＳＣ１では、ＵＳＢ通信回路１３が、このゲットイメージファイルリクエストの通信データを受信する。ゲットイメージファイルリクエストは、ＵＳＢスティルイメージクラスドライバ５２、ＰＴＰドライバ５３を介してストレージコントローラ５６へ渡される。
【００５３】
ストレージコントローラ５６は、ゲットイメージファイルリクエストの内容を解釈し、ストレージデバイス５５へそのリクエストに係る画像データファイル（図９の例ではファイルＩＤが「０００１」である画像データファイル）の送信処理を指示する。ストレージデバイス５５の管理の下で、そのリクエストされた画像データは、ＤＳＣ１のＵＳＢ通信回路１３からプリンタ３のＵＳＢ通信回路３３へ送信され、プリンタ３のメモリ３２に画像データファイルとして記憶される。なお、このＤＳＣ１とプリンタ３との間での画像データファイルの送受信は、ＤＳＣ１のＰＴＰドライバ５３とプリンタ３のＰＴＰドライバ６３とによって制御される。
【００５４】
画像データがメモリ３２に取得されると、プリントコントローラ６４は、プリントコード生成部６５へ印刷を指示する。プリントコード生成部６５は、スタートプリントリクエストの印刷指示の内容にしたがって、そのメモリ３２に記憶されている画像データを印刷するためのプリンタコードを生成する。このプリンタコードは、Ｉ／Ｏポート３４を介してプリンタ部３６へ出力される。プリンタ部３６は、プリンタコードにしたがって印刷処理を実行する。これにより、プリンタ３からは、スタートプリントリクエストの印刷指示の内容にしたがった印刷物が出力される。図９の例では、Ｌ版のフォトペーパに、ファイルＩＤ「０００１」のＪＰＥＧ形式の画像データが、「２００２／０５／３０」の日付とともに、ベストクオリティで３０部印刷される。
【００５５】
なお、スタートプリントリクエストにおいて画像データファイルのファイルＩＤの代わりにＤＰＯＦデータファイル２９が指定されるなどして、複数の画像データファイルについての印刷が指示されている場合には、プリントコード生成部６５は、それら複数の画像データファイルの取得が完了してからプリンタコードを生成すればよい。ただし、このように複数の画像データファイルの取得が完了するまでプリンタコードの生成を開始しない場合には、プリントコード生成部６５がプリンタコードの生成を開始するまでに時間がかかってしまうことがある。したがって、プリントコード生成部６５は、１枚のプリンタ用紙に印刷する画像データがそろったら、順番にプリンタコードを生成するとよい。これにより、プリントコード生成部６５の待ち時間を減らして、最初の１枚の印刷物がプリンタ３から出力されるまでの待ち時間や、プリンタ３の印刷処理が完了するまでの時間を短縮することができる。
【００５６】
ＤＳＣ１とプリンタ３とを直接接続した場合には、以上のように、ダイレクト印刷が実行される。
【００５７】
図１０は、図１の分散印刷システム中のボックス機器２のハードウェア構成を示すブロック図である。ボックス機器２は、中央処理装置８１と、一時記憶用のメモリ８２と、ＵＳＢケーブル４が接続される３つ以上のＵＳＢ通信回路８３と、不揮発性のメモリ８４と、これらを接続するバス８５と、を有する。
【００５８】
図１１は、図１０中のメモリ８４の記憶内容を示す図である。メモリ８４には、プログラム群が記憶される。メモリ８４のプログラム群には、ＵＳＢホストコントローラプログラム９１と、ＵＳＢスティルイメージクラスドライバプログラム９２と、ＰＴＰドライバプログラム９３と、プリントコントローラプログラム９４と、ＵＳＢデバイスコントローラプログラム９５と、クラスタ処理プログラム９６と、ストレージコントローラプログラム９７と、ストレージデバイスプログラム９８と、が含まれる。
【００５９】
ＵＳＢホストコントローラプログラム９１は、中央処理装置８１で実行されることで、ＵＳＢホストコントローラを実現する。ＵＳＢスティルイメージクラスドライバプログラム９２は、中央処理装置８１で実行されることで、ＵＳＢスティルイメージクラスドライバを実現する。ＰＴＰドライバプログラム９３は、中央処理装置８１で実行されることで、ＰＴＰドライバを実現する。プリントコントローラプログラム９４は、中央処理装置８１で実行されることで、プリントコントローラを実現する。ＵＳＢデバイスコントローラプログラム９５は、中央処理装置８１で実行されることで、ＵＳＢデバイスコントローラ５１を実現する。クラスタ処理プログラム９６は、中央処理装置８１で実行されることで、クラスタ処理部を実現する。ストレージコントローラプログラム９７は、中央処理装置８１で実行されることで、ストレージコントローラを実現する。ストレージデバイスプログラム９８は、中央処理装置８１で実行されることで、ストレージデバイスを実現する。
【００６０】
そして、電源が入ると、ボックス機器２の中央処理装置８１は、メモリ８４に記憶されているプログラムを実行する。図１２は、図１の接続状態でＤＳＣ１、ボックス機器２およびプリンタ３の電源が投入されることで実現される通信プロトコルのスタック構造を示す説明図である。ＤＳＣ１およびプリンタ３に実現される通信プロトコルのスタック構造は、図８の場合と同様であり、同一の符号を付して説明を省略する。
【００６１】
ボックス機器２では、ＤＳＣ１が接続されるＵＳＢ通信回路８３ａの上位に、ＵＳＢホストコントローラ１０１と、ＵＳＢスティルイメージクラスドライバ１１２と、ＰＴＰドライバ１１３と、受信手段としてのプリントコントローラ１０４とが存在する。
【００６２】
また、プリンタ３が接続されるＵＳＢ通信回路８３ｂの上位には、ＵＳＢデバイスコントローラ１１１と、ＵＳＢスティルイメージクラスドライバ１１２と、ＰＴＰドライバ１１３とが存在する。また、このＰＴＰドライバ１１３の上位には、アプリケーション層として、分割手段および送信手段としてのクラスタ処理部１１４と、ストレージコントローラ１１６と、ストレージデバイス１１５と、が存在する。
【００６３】
次に、以上の構成を有する分散印刷システムの動作を説明する。
【００６４】
図１３は、分散印刷システムの全体の処理シーケンスを示す図である。ＤＳＣ１の入力デバイス１９が印刷実行のための操作がされると、この入力デバイス１９からその操作に応じた信号がオペレーションコントローラ５４へ供給され、オペレーションコントローラ５４は、スタートプリントリクエストを生成する（ステップＳ１）。このスタートプリントリクエストは、ＤＳＣ１のＰＴＰドライバ５３、ＵＳＢスティルイメージクラスドライバ５２、ＵＳＢ通信回路１３、ボックス機器２のＵＳＢ通信回路８３ｂ、ＵＳＢスティルイメージクラスドライバ１０２およびＰＴＰドライバ１０３を介して、ボックス機器２のプリントコントローラ１０４へ送信される（ステップＳ２）。
【００６５】
プリントコントローラ１０４は、このスタートプリントリクエストをメモリ８２に記憶させるとともに、そのリクエストの印刷指示の内容を解釈してその印刷に必要な画像データファイル２８をＤＳＣ１から取得するためのゲットイメージファイルリクエストを生成する（ステップＳ３，Ｓ４）。ゲットイメージファイルリクエストは、ＤＳＣ１のストレージコントローラ５６へ送信され（ステップＳ５）、このプリントコントローラ１０４の指示にしたがってＤＳＣ１のストレージデバイス５５は、画像データファイルをボックス機器２へ送信する（ステップＳ６）。取得した画像データは、ボックス機器２のメモリ８２に記憶される。
【００６６】
また、スタートプリントリクエストは、プリントコントローラ１０４からクラスタ処理部１１４へ渡される（ステップＳ７）。クラスタ処理部１１４は、スタートプリントリクエストの印刷指示の内容を解釈し（ステップＳ８）、その指示された印刷処理を分散して実行するための複数のスタートプリントリクエストを生成する（ステップＳ９）。
【００６７】
図１４は、たとえば５台（ｎ＝５）のプリンタ３がボックス機器２に接続されている場合に、図９のＤＳＣ１で生成されたスタートプリントリクエストに基づいて、クラスタ処理部１１４が生成するスタートプリントリクエストの一例を示す図である。このボックス機器２で生成されたスタートプリントリクエストは、図９のＤＳＣ１で生成されたスタートプリントリクエストと比較した場合、枚数を指定する一対のコピータグに挟まれた数値が「００３０」（３０枚）からその５分の１の「０００６」（６枚）へ変更されている。また、クラスタ処理部１１４は、このスタートプリントリクエストを５（＝ｎ）個生成する。
【００６８】
クラスタ処理部１１４で生成された複数のスタートプリントリクエストは、ボックス機器２のＰＴＰドライバ１１３、ＵＳＢスティルイメージクラスドライバ１１２を介して、ボックス機器２の複数のＵＳＢ通信回路８３ｂから複数のプリンタ３のＵＳＢ通信回路３３へそれぞれ送信される（ステップＳ１０−１〜Ｓ１０−ｎ）。
【００６９】
各プリンタ３では、そのＵＳＢ通信回路３３がスタートプリントリクエストを受信すると、このスタートプリントリクエストが、ＵＳＢスティルイメージクラスドライバ６２およびＰＴＰドライバ６３を介して、プリントコントローラ６４へ渡される。プリントコントローラ６４は、そのリクエストの印刷指示の内容を解釈し（ステップＳ１１−１〜Ｓ１１−ｎ）、その印刷処理に必要な画像データファイルを取得するためのゲットイメージファイルリクエストを生成し（ステップＳ１２−１〜Ｓ１２−ｎ）、ボックス機器２のストレージコントローラ１１６へ送信する（ステップＳ１３−１〜Ｓ１３−ｎ）。ボックス機器２のストレージコントローラ１１６は、要求された画像データファイルの送信処理をストレージデバイス１１５へ指示する。ストレージデバイス１１５は、その要求に係る画像データを送信する（ステップＳ１４−１〜Ｓ１４−ｎ）。これにより、各プリンタ３のメモリ３２には、印刷に必要な画像データが画像データファイルとして記憶される。
【００７０】
なお、ボックス機器２がゲットイメージファイルリクエストをプリンタ３から受信した際に、その要求に係る画像データファイルがメモリ８２に記憶されていない場合には、その画像データがメモリ８２に記憶されるまで画像データの送信処理は待つことになる。このような待ち時間が発生すると、印刷完了までの時間が長引いてしまう。そのため、ボックス機器２のプリントコントローラ１０４は、ＤＳＣ１からのスタートプリントリクエストを受け取ったら直ちにその解釈を実行し、ＤＳＣ１へゲットイメージファイルリクエストを直ちに応答送信するとよい。これにより、このような待ち時間の発生を効果的に抑制することができる。
【００７１】
また、ボックス機器２のメモリ８２の記憶容量（すなわち、バッファ容量）に比べて、印刷要求に係る画像データの総データ量が大きい場合には、そのすべての画像データをボックス機器２のメモリ８２にまとめてキャッシュせずに、ボックス機器２のプリントコントローラ１０４が、たとえばボックス機器２のストレージデバイス１１５の読出処理を監視し、このストレージデバイス１１５によって読み出された画像データファィルの上（あるいはその画像データの記憶領域）に、新たな画像データを順次書き込むようにしてもよい。これにより、所望の印刷処理に必要なすべての画像データファイルを、ボックス機器２にキャッシュし、プリンタ３へ送信することができる。
【００７２】
各プリンタ３のメモリ３２に画像データファイルが取得されると、プリントコントローラ６４の指示に基づいて、プリンタコード生成部６５は、プリンタコードを生成する（ステップＳ１５−１〜Ｓ１５−ｎ）。プリンタ部３６は、プリンタコードにしたがって印刷処理を実行する（ステップＳ１６−１〜Ｓ１６−ｎ）。これにより、プリンタ３からは、ボックス機器２のクラスタ処理部１１４が生成したスタートプリントリクエストの印刷指示の内容にしたがった印刷物が出力される。図１４に示すように各プリンタ３への印刷処理指示がボックス機器２により生成された場合、各プリンタ３では、Ｌ版のフォトペーパに、ファイルＩＤ「０００１」のＪＰＥＧ形式の画像データが、１１６２／０５／３０の日付とともに、ベストクオリティで５部印刷される。
【００７３】
以上のように、この実施の形態１では、クラスタ処理部１１４は、ＤＳＣ１で生成された１つのスタートプリントリクエストによる印刷処理を、ボックス機器２に接続されている複数のプリンタ３の台数分の印刷処理に分け、複数のプリンタ３は、均等枚数の印刷処理を並行して実行する。したがって、ＤＳＣ１で生成された１つのスタートプリントリクエストを１台のプリンタ３で処理する場合に比べて、半分以下の格段に短い期間でその印刷処理を完了することができる。
【００７４】
なお、ＤＳＣ１のスタートプリントリクエストにおいて画像データのファイルＩＤの替わりに複数の画像データの印刷を指示するＤＰＯＦデータファイル２９が指定されている場合には、クラスタ処理部１１４は、ＤＰＯＦデータを解釈し、その印刷処理を、各画像データのコピー部数をプリンタ３の個数に分割しても、画像データファイルを最小単位としてプリンタ３の個数に分割しても、あるいは、それらを組み合わせた分割にしてもよい。
【００７５】
実施の形態２．
図１５は、本発明の実施の形態２に係るボックス機器２のメモリ８４の記憶内容を示す図である。実施の形態２の分散印刷システムのボックス機器２のハードウェア構成、ＤＳＣ１およびプリンタ３の構成、これらボックス機器２、ＤＳＣ１およびプリンタ３の接続状態は、実施の形態１に係る分散印刷システムのものと同様のものであり、同一の符号を使用して図示および説明を省略する。
【００７６】
ボックス機器２のメモリ８４には、プログラム群が記憶される。実施の形態２においては、メモリ８４のプログラム群には、ＵＳＢホストコントローラプログラム９１と、ＵＳＢスティルイメージクラスドライバプログラム９２と、ＰＴＰドライバプログラム９３と、プリントコントローラプログラム９４と、ＵＳＢデバイスコントローラプログラム９５と、クラスタ処理プログラム１２１と、ストレージコントローラプログラム９７と、ストレージデバイスプログラム９８と、が含まれる。クラスタ処理プログラム１２１以外のプログラムは、実施の形態１のボックス機器２のメモリ８４のプログラムと同様のものであり、同一の符号を使用して説明を省略する。
【００７７】
図１６は、本発明の実施の形態２に係る分散印刷システムの通信プロトコルのスタック構造である。ボックス機器２のプリンタ３が接続されるＵＳＢ通信回路８３ｂの上位には、ＵＳＢデバイスコントローラ１１１と、ＵＳＢスティルイメージクラスドライバ１１２と、ＰＴＰドライバ１１３とが存在する。また、このＰＴＰドライバ１１３の上位には、アプリケーション層として、分割手段および送信手段としてのクラスタ処理部１２２と、ストレージコントローラ１１６と、ストレージデバイス１１５と、が存在する。クラスタ処理部１２２以外のものは、実施の形態１の同名のものと同様のものであり、同一の符号を使用して説明を省略する。
【００７８】
次に、以上の構成を有する分散印刷システムの動作を説明する。
【００７９】
図１７は、分散印刷システムの全体の処理シーケンスを示す図である。図１７において、ステップＳ１からステップＳ６までの処理は、実施の形態１の場合と同様である。そして、ＤＳＣ１のスタートプリントリクエストがプリントコントローラ１０４から渡されると（ステップＳ２１）、クラスタ処理部１２２は、そのＤＳＣ１のスタートプリントリクエストの印刷指示の内容を解釈し（ステップＳ２２）、その指示された印刷処理を印刷の最小単位毎に分割して実行するための複数のスタートプリントリクエストを生成する（ステップＳ２３）。
【００８０】
図１８は、図９のＤＳＣ１で生成されたスタートプリントリクエストに基づいてクラスタ処理部１２２が生成する、印刷の最小単位毎に分割されたスタートプリントリクエストの一例を示す図である。このボックス機器２で生成されたスタートプリントリクエストは、図９のＤＳＣ１で生成されたスタートプリントリクエストと比較した場合、枚数を指定する一対のコピータグに挟まれた数値が「００３０」（３０枚）から、印刷の最小単位である「０００１」（１枚）へ変更されている。
【００８１】
また、クラスタ処理部１２２は、生成した複数のスタートプリントリクエストを、複数のプリンタ３のプリントコントローラ１０４へ送信する（ステップＳ２４−１〜Ｓ２４−ｎ）。生成した複数のスタートプリントリクエストの数がプリンタ３の個数より多い場合には、クラスタ処理部１２２は、各プリンタ３へスタートプリントリクエストを１つずつ送信し、その他のスタートプリントリクエストは送信待ち状態にする。
【００８２】
スタートプリントリクエストを受信したプリンタ３では、プリントコントローラ６４が、そのリクエストを解釈し（ステップＳ２５−１〜Ｓ２５−ｎ）、必要な画像データファイルの取得を要求するゲットイメージファイルリクエストを生成して送信する（ステップＳ２６−１〜Ｓ２６−ｎ，Ｓ２７−１〜Ｓ２７−ｎ）。プリンタコード生成部６５は、これに応じて取得した画像データを印刷するためのプリンタコードを生成する。プリンタ部３６は、プリンタコードにしたがって印刷処理を実行する（ステップＳ２８−１〜Ｓ２８−ｎ）。これにより、プリンタ３からは、スタートプリントリクエストの印刷指示の内容にしたがって、印刷物が１枚（あるいは別の最小単位分だけ）出力される。
【００８３】
印刷処理が正常に完了すると、プリントコントローラ１０４は、ＸＭＬ形式で記述された印刷完了通知を生成し、ボックス機器２のクラスタ処理部１２２へ送信する（ステップＳ２９）。クラスタ処理部１２２は、この印刷完了通知を受信すると、順番待ちをしているスタートプリントリクエストをそのプリントコントローラ６４へ送信する（ステップＳ３０）。プリンタ３は、その新たなスタートプリントリクエストの印刷指示の内容にしたがって、印刷物をさらに１枚（あるいは別の最小単位分だけ）出力する（ステップＳ３１，Ｓ３２，Ｓ３３，Ｓ３４）。
【００８４】
用紙切れ、インク切れ、紙詰まりなどによって印刷処理が正常に完了しなかった場合、プリントコントローラ６４は、ＸＭＬ形式で記述されたエラー通知を生成し、ボックス機器２のクラスタ処理部１２２へ送信する。クラスタ処理部１２２は、このエラー通知を受信すると、順番待ち行列に、そのプリンタ３へ送信していたスタートプリントリクエストを追加する。なお、このエラー通知に、エラー発生時に実行中であったスタートプリントリクエストを付加してもよい。また、クラスタ処理部１２２は、それ以降、そのプリンタ３へスタートプリントリクエストを送信しないようにする。
【００８５】
この順番待ち行列に追加されたスタートプリントリクエストは、その後、他のプリンタ３のプリントコントローラ６４へ送信され、その他のプリンタ３において印刷処理が実行される。
【００８６】
以降、クラスタ処理部１２２は、順番待ちのスタートプリントリクエストが無くなるまで、上述のようにして、プリンタ３へのスタートプリントリクエストの割り当てを繰り返し行う。
【００８７】
以上のように、この実施の形態２では、クラスタ処理部１２２は、ＤＳＣ１で生成された１つのスタートプリントリクエストの印刷処理を、印刷の最小単位毎に分割し、複数のプリンタ３は、順次この最小単位毎の印刷処理を繰り返し実行する。したがって、たとえば、複数のプリンタ３の単位時間あたりの印刷可能枚数が異なる場合には、処理能力が高いプリンタ３がより多くの印刷処理を実行し、その結果として、それら複数のプリンタ３に均等に印刷処理を割り当てた場合に比べて、短い期間でその印刷処理を完了することができる。
【００８８】
しかも、複数のプリンタ３は、エラーが発生したことをボックス機器２のクラスタ処理部１２２へ通知し、クラスタ処理部１２２はこのエラー通知を受信すると、そのプリンタ３へ送信したスタートプリントリクエストを、スタートプリントリクエストの待ち行列に追加する。したがって、エラーが発生したプリンタ３が実行していた印刷処理と同じ印刷処理を、他のプリンタ３にて再度実行することができる。
【００８９】
なお、この実施の形態２では、プリンタ３のプリントコントローラ６４が、クラスタ処理部１２２へ印刷完了を通知し、クラスタ処理部１２２が、この印刷完了通知に応じて次のスタートプリントリクエストをそのプリントコントローラ６４へ送信している。この他にもたとえば、クラスタ処理部１２２は、ボックス機器２のストレージデバイス１１５による画像データの読出し処理を監視し、印刷処理に係る画像データの読み出しが完了したら、あるいはその読み出しの完了から所定の時間が経過したら、次のスタートプリントリクエストをそのプリントコントローラ６４へ自動的に送信してもよい。これにより、各プリンタ３での印刷処理完了から次の印刷処理開始までのアイドル期間を短くすることができる。また、プリンタ３のプリントコントローラ６４が自主的に完了を通知するのではなく、クラスタ処理部１２２が周期的に複数のプリントコントローラ６４へ問い合わせを行い、各プリントコントローラ６４がこれに応答することで完了が通知されるようにしてもよい。
【００９０】
実施の形態３．
本発明の実施の形態３に係る分散印刷システムにおいて、ボックス機器２のハードウェア構成、ＤＳＣ１のハードウェア構成、プリンタ３のハードウェア構成、および、これらボックス機器２、ＤＳＣ１およびプリンタ３の接続状態は、実施の形態１に係る分散印刷システムのものと同様のものであり、同一の符号を使用して図示および説明を省略する。
【００９１】
図１９は、本発明の実施の形態３に係るＤＳＣ１のフラッシュメモリ１２の記憶内容を示す図である。フラッシュメモリ１２には、プログラム群が記憶される。実施の形態３では、フラッシュメモリ１２のプログラム群に、撮像制御プログラム２１と、ＵＳＢデバイスコントローラプログラム２２と、ＵＳＢスティルイメージクラスドライバプログラム２３と、ＰＴＰドライバプログラム２４と、オペレーションコントローラプログラム２５と、ストレージコントローラプログラム２６と、ストレージデバイスプログラム２７と、コンフィグレーションコントローラプログラム１３１と、が含まれる。コンフィグレーションコントローラプログラム１３１以外のプログラムは、実施の形態１のＤＳＣ１のフラッシュメモリ１２のプログラムと同様のものであり、同一の符号を使用して説明を省略する。
【００９２】
図２０は、本発明の実施の形態３に係るプリンタ３のメモリ３２の記憶内容を示す図である。メモリ３２には、プログラム群が記憶される。実施の形態３では、メモリ３２のプログラム群に、プリンタコード生成プログラム４１と、ＵＳＢホストコントローラプログラム４２と、ＵＳＢスティルイメージクラスドライバプログラム４３と、ＰＴＰドライバプログラム４４と、プリントコントローラプログラム４５と、コンフィグレーションコントローラプログラム１３２と、が含まれる。コンフィグレーションコントローラプログラム１３２以外のプログラムは、実施の形態１のプリンタ３のメモリ３２のプログラムと同様のものであり、同一の符号を使用して説明を省略する。
【００９３】
図２１は、本発明の実施の形態３に係るボックス機器２のメモリ８４の記憶内容を示す図である。メモリ８４には、プログラム群が記憶される。実施の形態３では、メモリ８４のプログラム群に、ＵＳＢホストコントローラプログラム９１と、ＵＳＢスティルイメージクラスドライバプログラム９２と、ＰＴＰドライバプログラム９３と、プリントコントローラプログラム９４と、ＵＳＢデバイスコントローラプログラム９５と、クラスタ処理プログラム１３４と、ストレージコントローラプログラム９７と、ストレージデバイスプログラム９８と、コンフィグレーションコントローラプログラム１３３と、が含まれる。クラスタ処理プログラム１３４およびコンフィグレーションコントローラプログラム１３３以外のプログラムは、実施の形態１のボックス機器２のメモリ８２のプログラムと同様のものであり、同一の符号を使用して説明を省略する。
【００９４】
図２２は、図１の接続状態でＤＳＣ１、ボックス機器２およびプリンタ３の電源が投入されることで実現される通信プロトコルのスタック構造を示す説明図である。ＤＳＣ１のコンフィグレーションコントローラ１３６、取得手段としてのボックス機器２のコンフィグレーションコントローラ１３７、分割手段および送信手段としてのボックス機器２のクラスタ処理部１３９、およびプリンタ３のコンフィグレーションコントローラ１３８以外のスタック構造は、実施の形態１の図１２の場合と同様であり、同一の符号を付して説明を省略する。
【００９５】
次に、以上の構成を有する分散印刷システムの動作を説明する。
【００９６】
ボックス機器２の電源が投入されると、ボックス機器２のＵＳＢデバイスコントローラ１１１と、ＵＳＢスティルイメージクラスドライバ１１２と、ＰＴＰドライバ１１３とが起動する。また、ボックス機器２では、クラスタ処理部１３９、ストレージデバイス１１５、ストレージコントローラ１１６、およびコンフィグレーションコントローラ１３７が実現される。
【００９７】
次に、ボックス機器２のＵＳＢ通信回路８３ｂとプリンタ３のＵＳＢ通信回路３３とがＵＳＢケーブル４で接続されると、プリンタ３のＵＳＢホストコントローラ６１は、周期的に検出信号を送信し、ボックス機器２のＵＳＢデバイスコントローラ１１１は、この検出信号に応答する。プリンタ３のＵＳＢホストコントローラ６１は、この応答に基づいて、ボックス機器２のＵＳＢデバイスコントローラ１１１からＵＳＢのディスクリプタを取得する。
【００９８】
このボックス機器２のディスクリプタには、ボックス機器２がＵＳＢスティルイメージクラスおよびＰＴＰに対応していることを示す情報が記述されている。このディスクリプタを受信すると、プリンタ３では、ＵＳＢスティルイメージクラスドライバ６２と、ＰＴＰドライバ６３とが起動する。
【００９９】
また、ボックス機器２のディスクリプタには、ボックス機器２がＤＳＣ１とプリンタ３との１対１接続による所定のダイレクト印刷プロトコルに対応していることを示す所定の文字列が記述されている。このディスクリプタを受信すると、それに対応して、プリンタ３では、プリントコントローラ６４、およびコンフィグレーションコントローラ１３８が実現される。
【０１００】
プリンタ３のコンフィグレーションコントローラ１３８は、このディスクリプタの受信に応じて先の１対１接続による印刷プロトコルにしたがって、ＸＭＬ形式で記述された自身の認証用データを、ボックス機器２へ送信する。この認証用データには、たとえばプリンタ３の１分当たりの印刷枚数（ｐｐｍ：ｐａｇｅ  ｐｅｒ  ｍｉｎｕｔｅ）、印刷可能な用紙のサイズや種類、用紙別の印刷モードの種類などのプリンタ３の印刷能力に関する情報が記述されている。ボックス機器２のコンフィグレーションコントローラ１３７は、このプリンタ３の認証用データをメモリ８２に記憶させる。
【０１０１】
プリンタ３の認証用データを受信したら、ボックス機器２のコンフィグレーションコントローラ１３７は、自身の認証用データをプリンタ３へ送信する。プリンタ３のコンフィグレーションコントローラ１３８は、このボックス機器２の認証用データをメモリ３２に記憶させる。
【０１０２】
以上のようなボックス機器２と各プリンタ３との間での認証用データの交換処理が完了すると、ボックス機器２のメモリ８２には、ボックス機器２に接続されている複数のプリンタ３の認証用データが記憶された状態になる。
【０１０３】
次に、ＤＳＣ１の電源が投入されると、ＤＳＣ１のＵＳＢデバイスコントローラ５１と、ＵＳＢスティルイメージクラスドライバ５２と、ＰＴＰドライバ５３とが起動する。また、ＤＳＣ１では、オペレーションコントローラ５４、ストレージデバイス５５、ストレージコントローラ５６、およびコンフィグレーションコントローラ１３６が実現される。
【０１０４】
ＤＳＣ１のＵＳＢ通信回路１３とボックス機器２のＵＳＢ通信回路８３ａとがＵＳＢケーブル４で接続されると、ＤＳＣ１のＵＳＢデバイスコントローラ５１は、ボックス機器２のＵＳＢホストコントローラ１０１の周期的な検出信号に応答する。ボックス機器２のＵＳＢホストコントローラ１０１は、この応答に基づいて、ＤＳＣ１のＵＳＢデバイスコントローラ５１からＵＳＢのディスクリプタを取得する。
【０１０５】
このＤＳＣ１のディスクリプタには、ＤＳＣ１がＵＳＢスティルイメージクラスおよびＰＴＰに対応していることを示す情報が記述されている。このディスクリプタを受信すると、ボックス機器２では、ＵＳＢスティルイメージクラスドライバ１０２と、ＰＴＰドライバ１０３とが起動する。
【０１０６】
また、ＤＳＣ１のディスクリプタには、ＤＳＣ１がＤＳＣ１とプリンタ３との１対１接続による所定のダイレクト印刷プロトコルに対応していることを示す所定の文字列が記述されている。このディスクリプタを受信すると、それに対応して、ボックス機器２では、プリントコントローラ１０４が実現される。なお、ボックス機器２のコンフィグレーションコントローラ１３７は既に実現されている。
【０１０７】
ボックス機器２のコンフィグレーションコントローラ１３７は、このディスクリプタの受信に応じて先の１対１接続による印刷プロトコルにしたがって、ＸＭＬ形式で記述された自身の認証用データを、ＤＳＣ１へ送信する。この認証用データには、たとえばボックス機器２に仮想的に実現される１台のプリンタの印刷能力に関する情報が記述されている。この情報は、予め複数のプリンタ３から収集してあるプリンタ３の認証用データを統合して生成すればよい。ＤＳＣ１のコンフィグレーションコントローラ１３６は、この仮想的なプリンタの認証用データをフラッシュメモリ１２などに記憶させる。
【０１０８】
このようにＤＳＣ１とボックス機器２とがＵＳＢケーブル４で接続され、且つ、ボックス機器２と複数のプリンタ３とがＵＳＢケーブル４で接続され、図２２に示す通信プロトコルのスタック構造が実現される。
【０１０９】
次に、ＤＳＣ１のオペレーションコントローラ５４は、ユーザの入力デバイス１９の操作に応じて、ＤＳＣ１の表示デバイス１８に、既に受信している先の仮想的なプリンタの認証用データを表示させ、その中から所望の印刷処理を選択する、入力デバイス１９への操作に基づき、印刷処理指示において指定される印刷条件を決定する。また、ＤＳＣ１のオペレーションコントローラ５４は、その印刷条件での印刷処理についてのスタートプリントリクエストをボックス機器２のプリントコントローラ１０４へ送信する。
【０１１０】
ボックス機器２のプリントコントローラ１０４は、受信したスタートプリントリクエストをメモリ８２に記憶させるとともに、そのリクエストの印刷指示の内容を解釈してその印刷に必要な画像データファイルをＤＳＣ１から取得させる。取得した画像データファイルは、ボックス機器２のメモリ８２に記憶される。
【０１１１】
また、スタートプリントリクエストは、プリントコントローラ１０４からクラスタ処理部１３９へ渡される。クラスタ処理部１３９は、スタートプリントリクエストの印刷指示の内容を解釈し、その指示された印刷処理を分散して実行するための複数のスタートプリントリクエストを生成する。
【０１１２】
具体的には、この実施の形態３のクラスタ処理部１３９は、予め取得してある複数のプリンタ３の認証用データを参考にして、指定された印刷処理が最短時間で処理されるように、複数のスタートプリントリクエストを生成する。たとえば、４０ｐｐｍのプリンタ３と、２０ｐｐｍのプリンタ３との２つのプリンタ３が接続されている場合には、クラスタ処理部１３９は、４０ｐｐｍのプリンタ３に、２０ｐｐｍのプリンタ３の処理枚数の２倍の枚数を割り当てるように、２つのスタートプリントリクエスト（つまり、４０ｐｐｍのプリンタ３用と、２０ｐｐｍのプリンタ３用との２つ）を生成する。
【０１１３】
なお、クラスタ処理部１３９は、プリンタ３の１分当たりの印刷枚数以外の印刷能力に関する情報を含めて、複数のスタートプリントリクエストを生成してもよい。たとえば、クラスタ処理部１３９は、プリンタ３の１分当たりの印刷枚数と印刷モード（たとえば普通、ファイン、ドラフトなど）とを組み合わせて、印刷モード毎の処理時間などを勘案した複数のスタートプリントリクエストを生成してもよい。
【０１１４】
そして、クラスタ処理部１３９は、生成した複数のスタートプリントリクエストを、複数のプリンタ３のプリントコントローラ６４へそれぞれ送信する。各プリンタ３のプリントコントローラ６４は、そのリクエストの印刷指示の内容を解釈し、その印刷処理に必要な画像データをボックス機器２から取得する。各プリンタ３のプリンタコード生成部６５は、その画像データを印刷するためのプリンタコードを生成する。各プリンタ３のプリンタ部３６は、プリンタコードにしたがって印刷処理を実行する。
【０１１５】
以上のように、この実施の形態３では、クラスタ処理部１３９は、ＤＳＣ１で生成された１つのスタートプリントリクエストの印刷処理を、ボックス機器２に接続されている複数のプリンタ３の処理能力に応じて振り分け、複数のプリンタ３は、同時にそれぞれの能力に応じた枚数の印刷処理を実行する。したがって、複数のプリンタ３の能力を組み合わせた最短の時間にて、その印刷処理を完了することができる。
【０１１６】
以上の各実施の形態は、本発明の好適な実施の形態の例であるが、本発明はこれに限定されるものではなく、種々の変形、変更が可能である。たとえば、上記各実施の形態では、ＤＳＣ１と複数のプリンタ３との間で、スタートプリントリクエストおよび画像データを中継する装置は、その処理専用のボックス機器２として実現されている。この他にもたとえば、その中継装置は、オペレーティングシステムプログラムを実行する汎用的なコンピュータにおいて中継装置を実現してもよい。
【０１１７】
また、上記各実施の形態では、ＵＳＢケーブルによって、ＤＳＣ１とボックス機器２とを接続し、複数のプリンタ３とボックス機器２とを接続している。この他にもたとえば、電話線などのその他のシリアルケーブル、プリンタケーブルなどのパラレルケーブル、イーサネット（登録商標）ケーブルなどのネットワークケーブルを介して、これらの装置同士を接続してもよい。また、無線通信回線を介して、これらの装置同士を接続してもよい。さらには、ＤＳＣ１とボックス機器２とを接続する通信回線と、複数のプリンタ３とボックス機器２とを接続する通信回線とが異なる媒体であってもよい。
【０１１８】
また、上記各実施の形態では、画像データ供給装置としてＤＳＣ１が使用されているが、撮像機能の無いストレージ機器の形態としてもよく、また、ＭＯ、ＣＤ、ＤＶＤなどのプレーヤ、携帯型フラッシュメモリのリーダ、携帯電話機といった種々の電子機器の形態としてもよい。
【産業上の利用可能性】
【０１１９】
本発明に係る印刷処理中継装置、印刷処理の中継方法および分散印刷システムは、デジタルスチルカメラなどの画像データ供給装置に保存されている画像データファイルに基づき画像などをプリンタで印刷するために利用することができる。
【図面の簡単な説明】
【０１２０】
【図１】図１は、本発明の実施の形態１に係る分散印刷システムを示す構成図である。
【図２】図２は、図１中のＤＳＣのハードウェア構成を示すブロック図である。
【図３】図３は、図２中のフラッシュメモリの記憶内容を示す図である。
【図４】図４は、図２中のリムーバブルメモリの記憶内容を示す図である。
【図５】図５は、図１中のプリンタのハードウェア構成を示すブロック図である。
【図６】図６は、図５中のメモリの記憶内容を示す図である。
【図７】図７は、図１中のＤＳＣとプリンタとをＵＳＢケーブルによって１対１対応にて接続した状態を示す構成図である。
【図８】図８は、図７の接続状態でプリンタの電源およびＤＳＣの電源が投入されることで実現される通信プロトコルのスタック構造を示す説明図である。
【図９】図９は、オペレーションコントローラが生成するスタートプリントリクエストの一例を示す図である。
【図１０】図１０は、図１の分散印刷システム中のボックス機器のハードウェア構成を示すブロック図である。
【図１１】図１１は、図１０中のメモリの記憶内容を示す図である。
【図１２】図１２は、図１の接続状態でＤＳＣ、ボックス機器およびプリンタの電源が投入されることで実現される通信プロトコルのスタック構造を示す説明図である。
【図１３】図１３は、分散印刷システムの全体の処理シーケンスを示す図である。
【図１４】図１４は、たとえば５台（ｎ＝５）のプリンタがボックス機器に接続されている場合に、図９のＤＳＣで生成されたスタートプリントリクエストに基づいて、クラスタ処理部が生成するスタートプリントリクエストの一例を示す図である。
【図１５】図１５は、本発明の実施の形態２に係るボックス機器のメモリの記憶内容を示す図である。
【図１６】図１６は、本発明の実施の形態２に係る分散印刷システムの通信プロトコルのスタック構造である。
【図１７】図１７は、分散印刷システムの全体の処理シーケンスを示す図である。
【図１８】図１８は、図９のＤＳＣで生成されたスタートプリントリクエストに基づいてクラスタ処理部が生成する、印刷の最小単位毎に分割されたスタートプリントリクエストの一例を示す図である。
【図１９】図１９は、本発明の実施の形態３に係るＤＳＣのフラッシュメモリの記憶内容を示す図である。
【図２０】図２０は、本発明の実施の形態３に係るプリンタのメモリの記憶内容を示す図である。
【図２１】図２１は、本発明の実施の形態３に係るボックス機器のメモリの記憶内容を示す図である。
【図２２】図２２は、図１の接続状態でＤＳＣ、ボックス機器およびプリンタの電源が投入されることで実現される通信プロトコルのスタック構造を示す説明図である。
【符号の説明】
【０１２１】
１  デジタルスチルカメラ（画像データ供給装置）
３  プリンタ
２  ボックス機器（印刷処理中継装置）
１０４  プリントコントローラ（受信手段）
１１４，１２２，１３９  クラスタ処理部（分割手段、送信手段）
１３７  コンフィグレーションコントローラ（取得手段）
【図１】
2005222232.tif 000003
【図２】
2005222232.tif 000004
【図３】
2005222232.tif 000005
【図４】
2005222232.tif 000006
【図５】
2005222232.tif 000007
【図６】
2005222232.tif 000008
【図７】
2005222232.tif 000009
【図８】
2005222232.tif 000010
【図９】
2005222232.tif 000011
【図１０】
2005222232.tif 000012
【図１１】
2005222232.tif 000013
【図１２】
2005222232.tif 000014
【図１３】
2005222232.tif 000015
【図１４】
2005222232.tif 000016
【図１５】
2005222232.tif 000017
【図１６】
2005222232.tif 000018
【図１７】
2005222232.tif 000019
【図１８】
2005222232.tif 000020
【図１９】
2005222232.tif 000021
【図２０】
2005222232.tif 000022
【図２１】
2005222232.tif 000023
【図２２】
2005222232.tif 000024