(57)【要約】【課題】  汎用インターフェースを介して接続された複数の機器間での新規なデータのやり取りを提案する。【解決手段】  汎用インターフェースを介して少なくとも３つの機器をサーバクライアント接続し、これら機器間でデータを転送して画像を出力する画像出力システムであって、ＤＳＣは記憶装置、プリンタに対してクライアントであり、ＤＳＣから、記憶装置が記憶している画像ファイルのリスト要求を記憶装置に送信し、そのリスト要求に応じて画像ファイルのリストデータにリスト要求の識別ＩＤを付してＤＳＣに送信する。そしてＤＳＣからプリンタに対して印刷するように指示されると、その指示された画像の画像データを、識別ＩＤとともに記憶装置に要求し、クライアントである記憶装置から画像データを取得して画像を出力する。【選択図】  図８
2004328725.tif 000002
【特許請求の範囲】
【請求項１】
汎用インターフェースを介して少なくとも３つの機器をサーバクライアント接続し、前記機器間でデータを転送して画像を出力する画像転送システムであって、
第１機器は第２及び第３機器に対してクライアントであり、前記第１機器から前記第２機器が記憶している画像ファイルのリスト要求を前記第２機器に送信し、
前記第２機器は、前記リスト要求に応じて前記画像ファイルのリストデータに前記リスト要求の識別ＩＤを付して前記第１機器に送信し、
前記第３機器は、前記第１機器から出力するように指示された画像の画像データを前記識別ＩＤとともに前記第２機器に要求し、前記第２機器から前記画像データを取得するようにしたことを特徴とする画像転送システム。
【請求項２】
前記第１機器はデジタルカメラであることを特徴とする請求項１に記載の画像出力システム。
【請求項３】
前記第２機器は、記憶装置であることを特徴とする請求項１に記載の画像出力システム。
【請求項４】
前記第３機器はプリンタ装置或は表示装置であることを特徴とする請求項１に記載の画    
【請求項５】
更に前記第２機器が前記画像を出力することを特徴とする請求項１に記載の画像転送システム。
【請求項６】
前記汎用インタフェースは、ＵＳＢ，Ｂｌｕｅｔｏｏｔｈ，ＩＥＥＥ８０２．１１系無線、10/100Base-T、ＩＥＥＥ１３９４のいずれかを含むことを特徴とする請求項１乃至５のいずれか１項に記載の画像転送システム。
【請求項７】
汎用インターフェースを介して少なくとも３つの機器をサーバクライアント接続し、前記機器間でデータを転送して画像を出力する画像出力システムであって、
第１機器と第３機器、及び前記第２機器と第３機器とをそれぞれ前記汎用インターフェースを介して接続し、前記第１機器及び前記第２機器は前記第３機器に対してクライアントであり、
前記第１機器は前記第３機器に対して、前記第２機器が記憶している画像ファイルのリスト要求を送信し、
前記第３機器は前記リスト要求に対応して、前記リスト要求の識別ＩＤを付して前記第２機器に送信し、
前記第２機器は、前記リスト要求に応じて前記画像ファイルのリストデータを前記第３機器に送信し、
前記第３機器は、前記第２機器からの前記リストデータを前記第１機器に送信し、これに応じて前記第１機器から出力するように指示された画像の画像データを前記識別ＩＤとともに前記第２機器に要求し、前記第２機器から前記画像データを取得して前記画像を出力するようにしたことを特徴とする画像出力システム。
【請求項８】
前記第１機器はデジタルカメラであることを特徴とする請求項７に記載の画像出力システム。
【請求項９】
前記第２機器は、記憶装置であることを特徴とする請求項７に記載の画像出力システム。
【請求項１０】
前記第３機器はプリンタ装置或は表示装置であることを特徴とする請求項７に記載の画像出力システム。
【請求項１１】
汎用インターフェースを介して少なくとも３つの機器をサーバクライアント接続し、前記機器間でデータを転送して画像を出力する画像出力システムであって、
第１機器と第２機器、及び第２機器と前記第３機器とをそれぞれ前記汎用インターフェースを介して接続し、前記第１機器は前記第２機器に対してクライアントで、前記第２機器は前記第３機器に対してクライアントであり、
前記第１機器は前記第２機器に対して、前記第２機器が記憶している画像ファイルのリスト要求を送信し、
前記第２機器は、前記リスト要求に応じて前記画像ファイルのリストデータに前記リスト要求の識別ＩＤを付して前記第１機器に送信し、
前記第１機器は、前記リストデータに基づいて出力するように指示された画像の出力を前記識別ＩＤとともに前記第２機器に要求し、
前記第３機器は前記第２機器から出力するように指示された画像の画像データを前記識別ＩＤとともに前記第２機器に要求し、前記第２機器から前記画像データを取得して前記画像を出力するようにしたことを特徴とする画像出力システム。
【請求項１２】
前記第１機器はデジタルカメラであることを特徴とする請求項１１に記載の画像出力システム。
【請求項１３】
前記第２機器は記憶装置であることを特徴とする請求項１１又は１２に記載の画像出力システム。
【請求項１４】
前記第３機器はプリンタ装置或は表示装置であることを特徴とする請求項１１乃至１３のいずれか１項に記載の画像出力システム。
【請求項１５】
汎用インターフェースを介して少なくとも３つの機器をサーバクライアント接続し、前記機器間でデータを転送して画像を出力する画像転送方法であって、
第１機器は第２及び第３機器に対してクライアントであり、前記第１機器から前記第２機器が記憶している画像ファイルのリスト要求を前記第２機器に送信する工程と、
前記第２機器から、前記リスト要求に応じて前記画像ファイルのリストデータに前記リスト要求の識別ＩＤを付して前記第１機器に送信する工程と、
前記第３機器から前記第１機器から出力するように指示された画像の画像データを前記識別ＩＤとともに前記第２機器に要求し、クライアントである前記第２機器から前記画像データを取得する工程と、
を有することを特徴とする画像転送方法。
【請求項１６】
汎用インターフェースを介して少なくとも３つの機器をサーバクライアント接続し、前記機器間でデータを転送して画像を出力する画像出力方法であって、
第１機器と第３機器、及び前記第２機器と第３機器とをそれぞれ前記汎用インターフェースを介して接続し、前記第１機器及び前記第２機器は前記第３機器に対してクライアントであり、
前記第１機器から前記第３機器に対して、前記第２機器が記憶している画像ファイルのリスト要求を送信する工程と、
前記第３機器から、前記リスト要求に対応して、前記リスト要求の識別ＩＤを付して前記第２機器に送信する工程と、
前記第２機器から、前記リスト要求に応じて前記画像ファイルのリストデータを前記第３機器に送信する工程と、
前記第３機器により、前記第２機器からの前記リストデータを前記第１機器に送信し、これに応じて前記第１機器から出力するように指示された画像の画像データを前記識別ＩＤとともに前記第２機器に要求し、前記第２機器から前記画像データを取得して前記画像を出力する工程と、
を有することを特徴とする画像出力方法。
【請求項１７】
汎用インターフェースを介して少なくとも３つの機器をサーバクライアント接続し、前記機器間でデータを転送して画像を出力する画像出力方法であって、
第１機器と第２機器、及び第２機器と前記第３機器とをそれぞれ前記汎用インターフェースを介して接続し、前記第１機器は前記第２機器に対してクライアントで、前記第２機器は前記第３機器に対してクライアントであり、
前記第１機器から前記第２機器に対して、前記第２機器が記憶している画像ファイルのリスト要求を送信する工程と、
前記第２機器から、前記リスト要求に応じて前記画像ファイルのリストデータに前記リスト要求の識別ＩＤを付して前記第１機器に送信する工程と、
前記第１機器により、前記リストデータに基づいて出力するように指示された画像の出力を前記識別ＩＤとともに前記第２機器に要求する工程と、
前記第３機器により、前記第２機器から出力するように指示された画像の画像データを前記識別ＩＤとともに前記第２機器に要求し、前記第２機器から前記画像データを取得して前記画像を出力する工程と、
を有することを特徴とする画像出力方法。
【請求項１８】
汎用インターフェースを介して撮像装置及び記憶装置と接続し、前記撮像装置からの印刷指示に応じて画像を印刷する印刷装置であって、
前記撮像装置から、画像ファイルのリストデータを印刷要求として受信する受信手段と、
前記画像ファイルのリストデータを前記記憶装置に送信して、前記記憶装置に対して画像データを要求する要求手段と、
前記要求手段による要求に応答して前記記憶装置から送信される画像データに基づいて画像を印刷する印刷手段と、
とを有することを特徴とする印刷装置。
【請求項１９】
汎用インターフェースを介して撮像装置及び記憶装置と接続し、前記撮像装置からの印刷指示に応じて画像を印刷する印刷装置であって、
前記撮像装置から、前記記憶装置に記憶されている画像ファイルのリストの要求を受信すると当該要求を前記記憶装置に送信する送信手段と、
前記送信手段による送信に応答して前記記憶装置から送信される前記画像ファイルのリストを前記撮像装置に送信する手段と、
前記撮像装置において、前記画像ファイルのリストを基に生成された印刷要求を受信すると、前記印刷要求に含まれる画像ファイルの画像データを前記記憶装置に要求する要求手段と、
前記要求手段による要求に応じて前記記憶装置から返送される画像データに基づいて画像を印刷する印刷手段と、
を有することを特徴とする印刷装置。
【請求項２０】
汎用インターフェースを介して印刷装置及び記憶装置と接続し、前記印刷装置に対して印刷指示を出力して画像を印刷させる撮像装置であって、
前記記憶装置に対して画像ファイルのリストデータを要求する要求手段と、
前記要求手段の要求に応答して前記記憶装置から送信される前記リストデータに基づいて印刷対象の画像を選択させる選択指示手段と、
前記選択指示手段により選択された画像の印刷を前記印刷装置に要求する印刷要求手段と、
とを有することを特徴とする撮像装置。
【請求項２１】
汎用インターフェースを介して印刷装置と接続し、前記印刷装置に対して印刷指示を出力して画像を印刷させる撮像装置であって、
前記印刷装置に対して、記憶装置に記憶されている画像ファイルのリストデータを要求する要求手段と、
前記要求手段の要求に応答して前記印刷装置から送信される前記リストデータに基づいて印刷対象の画像を選択させる選択指示手段と、
前記選択指示手段により選択された画像の印刷を前記印刷装置に要求する印刷要求手段とを有し、
前記印刷装置は、前記選択指示手段により選択された画像の画像データを前記記憶装置から取得して印刷することを特徴とする撮像装置。
【請求項２２】
汎用インターフェースを介して少なくとも１つの機器と通信する通信装置であって、
接続されているか、もしくは内臓の記憶装置が有するファイルのリストを要求するためのリスト要求を、第１機器から受信するリスト要求受信手段と、
前記リスト要求に応じて前記リストデータと当該リストデータの識別ＩＤとを前記第１機器に送信し、第２機器から前記識別ＩＤが付与されたファイル送信要求を受信するファイル送信要求受信手段と、
前記ファイル送信要求に付与された前記識別ＩＤに基づいて特定されるファイルを前記記憶装置から前記第２機器に送信する送信手段と、
を有することを特徴とする通信装置。
【請求項２３】
前記識別ＩＤが有効であるか否かを判別し、有効な場合には前記識別ＩＤに基づいて対応するファイルを前記第２機器に送信し、有効でない場合には有効な場合とは異なる処理を行うことを特徴とする請求項２２に記載の通信装置。
【請求項２４】
前記有効であるか否かの判断方法は、前記識別ＩＤが前記リスト要求に応答して送信した識別ＩＤと一致するか否かに基づくことを特徴とする請求項２３に記載の通信装置。
【請求項２５】
前記有効な場合とは異なる処理は、ファイルの送信を拒否することであることを特徴とする請求項２３に記載の通信装置。
【請求項２６】
前記汎用インタフェースはＵＳＢ，Ｂｌｕｅｔｏｏｔｈ，ＩＥＥＥ８０２．１１系無線、10/100Base-T，ＩＥＥＥ１３９４のいずれかを含むことを特徴とする請求項２２乃至２５のいずれか１項に記載の通信装置。
【請求項２７】
前記第２の通信機器は、前記第１の通信機器と同一であることを特徴とする請求項２２乃至２６のいずれか１項に記載の通信装置。
【請求項２８】
汎用インターフェースを介して少なくとも１つの外部機器と通信する通信装置であって、
前記外部機器の管理するファイルのリストデータと、当該リストデータに対応する識別ＩＤとを取得する取得手段と、
前記リストデータに含まれるファイルの送信を指示するために、送信すべきファイルを指定する情報と、前記識別ＩＤとに基づく要求とを生成する要求生成手段と、
前記要求生成手段が生成した要求を外部に出力する出力手段と、
を有することを特徴とする通信装置。
【請求項２９】
前記汎用インタフェースはＵＳＢ，Ｂｌｕｅｔｏｏｔｈ，ＩＥＥＥ８０２．１１系無線、10/100Base-T，ＩＥＥＥ１３９４、赤外線通信のいずれかを含むことを特徴とする請求項２８に記載の通信装置。
【請求項３０】
前記出力手段は、前記要求を前記外部機器とは異なる外部装置に送信することを特徴とする請求項２８又は２９に記載の通信装置。
【請求項３１】
汎用インターフェースを介して少なくとも１つの機器と通信する通信装置の制御方法であって、
接続されているか、もしくは内臓の記憶装置が有するファイルのリストを要求するためのリスト要求を、第１機器から受信するリスト要求受信工程と、
前記リスト要求に応じて前記リストデータと当該リストデータの識別ＩＤとを前記第１機器に送信し、第２機器から前記識別ＩＤが付与されたファイル送信要求を受信するファイル送信要求受信工程と、
前記ファイル送信要求に付与された前記識別ＩＤに基づいて特定されるファイルを前記記憶装置から前記第２機器に送信する送信工程と、
を有することを特徴とする通信装置の制御方法。
【請求項３２】
汎用インターフェースを介して少なくとも１つの外部機器と通信する通信装置の制御方法であって、
前記外部機器の管理するファイルのリストデータと、当該リストデータに対応する識別ＩＤとを取得する取得工程と、
前記リストデータに含まれるファイルの送信を指示するために、送信すべきファイルを指定する情報と、前記識別ＩＤとに基づく要求とを生成する要求生成工程と、
前記要求生成工程で生成された要求を外部に出力する出力工程と、
を有することを特徴とする通信装置の制御方法。
【請求項３３】
請求項３１又は３２に記載の制御方法を実行するプログラムを記憶していることを特徴とする、コンピュータにより読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＵＳＢインターフェースを介して少なくとも３つの機器をサーバ・クライアント接続して画像を出力する画像出力システムに関するものである。尚、本明細書中においてはデジタルカメラを仮にＤＳＣ(Digital Still Camera)と略して記述することとするが、静止画撮影に限るという意味ではなく、デジタルビデオカメラのような動画も取れるカメラもデジタルカメラ（ＤＳＣ）に含まれることを前提として本説明はなされるものとする。
【背景技術】
【０００２】
通常、デジタルカメラで撮影した映像をプリントする場合、そのデジタルカメラに記憶された画像をパーソナルコンピュータ（以下、ＰＣ）に取り込み、ＰＣ上のアプリケーションを用いて、そのＰＣに接続されたプリンタで印刷するという作業を踏む。つまり、画像データの流れとしては、ＤＳＣ→ＰＣ→プリンタという手順になり、ＰＣの介在を必須としている。これではＤＳＣに記憶されている画像を印刷するのに、一々ＰＣを起動しなければならないという問題もある。
【０００３】
かかる点に着目し、ＤＳＣとプリンタとをダイレクトに接続し、ＤＳＣが通常備えている表示器上でプリント指示を与える（以下、フォトダイレクトプリントという）ことにより、デジタルカメラで撮影された画像を印刷することができるプリンタ装置も市場に出ている。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、昨今のＤＳＣの多くは、ＰＣやプリンタ装置と接続するための汎用の通信手段を備えている。この通信手段は、典型的にはＵＳＢ（Universal Serial Bus）であるが、このＵＳＢを用いた接続の場合、ＤＳＣはスレーブ、プリンタ装置はホストとして通信が確立する。そして、このＵＳＢを介してＤＳＣからプリントを行うために、ＤＳＣとプリンタとが直接接続される。
【０００５】
これに対し更にＤＶＤ等の記憶装置を接続して、より大量の画像データをＤＳＣから取り込んで、その記憶装置に記憶させたり、或いはテレビジョン受像機等のディスプレイに接続して、そのＤＳＣで撮影された画像を、より大きい画面で見たいという要望が出てきている。
【０００６】
しかしながら、前述のＵＳＢを介した、ＤＳＣ−プリンタ−ＤＶＤといった接続形態では、各ネットワークトポロジーに１つのホストが存在し、そのトポロジー内での通信制御をホスト装置（例えばプリンタ）が行い、異なるネットワークトポロジー間での通信が出来ない。従って、上記のようにＤＳＣ−プリンタ−ＤＶＤと接続して、ＤＳＣがＤＶＤのホストとして機能するような場合には、ＤＳＣ−ＤＶＤと、プリンタ−ＤＳＣといった２つのネットワークトポロジーが形成され、例えばＤＳＣからの指示により、ＤＶＤに記憶されている画像データを用いてプリンタ装置により印刷させるといった操作を指示することができなかった。
【０００７】
本発明はかかる問題点に鑑みなされたものであり、ＵＳＢを介して接続された複数の機器間での新規なデータのやり取りを提案することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様によれば、本願発明の画像転送システムは以下のような構成を有する。即ち、
汎用インターフェースを介して少なくとも３つの機器をサーバクライアント接続し、前記機器間でデータを転送して画像を出力する画像転送システムであって、
第１機器は第２及び第３機器に対してクライアントであり、前記第１機器から前記第２機器が記憶している画像ファイルのリスト要求を前記第２機器に送信し、
前記第２機器は、前記リスト要求に応じて前記画像ファイルのリストデータに前記リスト要求の識別ＩＤを付して前記第１機器に送信し、
前記第３機器は、前記第１機器から出力するように指示された画像の画像データを前記識別ＩＤとともに前記第２機器に要求し、前記第２機器から前記画像データを取得するようにしたことを特徴とする。
【０００９】
本発明の一態様によれば、本願発明の画像転送方法は以下のような工程を有する。即ち、
汎用インターフェースを介して少なくとも３つの機器をサーバクライアント接続し、前記機器間でデータを転送して画像を出力する画像転送方法であって、
第１機器は第２及び第３機器に対してクライアントであり、前記第１機器から前記第２機器が記憶している画像ファイルのリスト要求を前記第２機器に送信する工程と、
前記第２機器から、前記リスト要求に応じて前記画像ファイルのリストデータに前記リスト要求の識別ＩＤを付して前記第１機器に送信する工程と、
前記第３機器から前記第１機器から出力するように指示された画像の画像データを前記識別ＩＤとともに前記第２機器に要求し、クライアントである前記第２機器から前記画像データを取得する工程とを有することを特徴とする。
【００１０】
本発明の一態様によれば、本願発明の印刷装置は以下のような構成を有する。即ち、
汎用インターフェースを介して撮像装置及び記憶装置と接続し、前記撮像装置からの印刷指示に応じて画像を印刷する印刷装置であって、
前記撮像装置から、画像ファイルのリストデータを印刷要求として受信する受信手段と、
前記画像ファイルのリストデータを前記記憶装置に送信して、前記記憶装置に対して画像データを要求する要求手段と、
前記要求手段による要求に応答して前記記憶装置から送信される画像データに基づいて画像を印刷する印刷手段ととを有することを特徴とする。
【００１１】
本発明の一態様によれば、本願発明の撮像装置は以下のような構成を有する。即ち、
汎用インターフェースを介して印刷装置及び記憶装置と接続し、前記印刷装置に対して印刷指示を出力して画像を印刷させる撮像装置であって、
前記記憶装置に対して画像ファイルのリストデータを要求する要求手段と、
前記要求手段の要求に応答して前記記憶装置から送信される前記リストデータに基づいて印刷対象の画像を選択させる選択指示手段と、
前記選択指示手段により選択された画像の印刷を前記印刷装置に要求する印刷要求手段ととを有することを特徴とする。
【００１２】
本発明の一態様によれば、本願発明の通信装置は以下のような構成を有する。即ち、
汎用インターフェースを介して少なくとも１つの機器と通信する通信装置であって、
接続されているか、もしくは内臓の記憶装置が有するファイルのリストを要求するためのリスト要求を、第１機器から受信するリスト要求受信手段と、
前記リスト要求に応じて前記リストデータと当該リストデータの識別ＩＤとを前記第１機器に送信し、第２機器から前記識別ＩＤが付与されたファイル送信要求を受信するファイル送信要求受信手段と、
前記ファイル送信要求に付与された前記識別ＩＤに基づいて特定されるファイルを前記記憶装置から前記第２機器に送信する送信手段とを有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、汎用インターフェースを介して接続された複数の機器間での新規なデータのやり取りを提案できる。
【発明を実施するための最良の形態】
【００１４】
以下、添付図面を参照して本発明の好適な実施の形態を詳細に説明する。
【００１５】
図１は、本発明の実施の形態に係るフォトダイレクトプリンタ装置（以下、ＰＤプリンタ装置）１０００の概観斜視図である。このＰＤプリンタ１０００は、ホストコンピュータ（ＰＣ）からデータを受信して印刷する通常のＰＣプリンタとしての機能と、メモリカードなどの記憶媒体に記憶されている画像データを直接読取って印刷したり、或いはデジタルカメラからの画像データを受信して印刷する機能を備えている。
【００１６】
図１において、本実施の形態に係るＰＤプリンタ１０００の外殻をなす本体は、ケースＭ１００１、上ケース１００２、アクセスカバー１００３及び排出トレイ１００４の外装部材を有している。また、下ケース１００１は、ＰＤプリンタ１０００の略下半部を、上ケース１００２は本体の略上半部をそれぞれ形成しており、両ケースの組合せによって内部に後述の各機構を収納する収納空間を有する中空体構造をなし、その上面部及び前面部にはそれぞれ開口部が形成されている。さらに、排出トレイ１００４は、その一端部が下ケース１００１に回転自在に保持され、その回転によって下ケース１００１の前面部に形成される開口部を開閉させ得るようになっている。このため、記録動作を実行させる際には、排出トレイ１００４を前面側へと回転させて開口部を開成させることにより、ここから記録シートが排出可能となると共に、排出された記録シートを順次積載し得るようになっている。また、排紙トレイ１００４には、２枚の補助トレイ１００４ａ，１００４ｂが収納されており、必要に応じて各トレイを手前に引き出すことにより、用紙の支持面積を３段階に拡大、縮小させ得るようになっている。
【００１７】
アクセスカバー１００３は、その一端部が上ケース１００２に回転自在に保持され、上面に形成される開口部を開閉し得るようになっており、このアクセスカバー１００３を開くことによって本体内部に収納されている記録ヘッドカートリッジ（不図示）あるいはインクタンク（不図示）等の交換が可能となる。なお、ここでは特に図示しないが、アクセスカバー１００３を開閉させると、その裏面に形成された突起がカバー開閉レバーを回転させるようになっており、そのレバーの回転位置をマイクロスイッチなどで検出することにより、アクセスカバーの開閉状態を検出し得るようになっている。
【００１８】
また、上ケース１００２の上面には、電源キー１００５が設けられている。また、上ケース１００２の右側には、液晶表示部１００６や各種キースイッチ等を備える操作パネル１０１０が設けられている。この操作パネル１０１０の構造は、図２を参照して詳しく後述する。１００７は自動給送部で、記録シートを装置本体内へと自動的に給送する。１００８は紙間選択レバーで、プリントヘッドと記録シートとの間隔を調整するためのレバーである。１００９はカードスロットで、ここにメモリカードを装着可能なアダプタが挿入され、このアダプタを介してメモリカードに記憶されている画像データを直接取り込んで印刷することができる。このメモリカード（ＰＣ）としては、例えばコンパクトフラッシュ（登録商標）メモリ、スマートメディア、メモリスティック等がある。１０１１はビューワ（液晶表示部）で、このＰＤプリンタ１０００の本体に着脱可能であり、ＰＣカードに記憶されている画像の中からプリントしたい画像を検索する場合などに、１コマ毎の画像やインデックス画像などを表示するのに使用される。１０１２は後述するデジタルカメラを接続するためのＵＳＢ端子である。また、このＰＤ装置１０００の後面には、パーソナルコンピュータ（ＰＣ）を接続するためのＵＳＢコネクタが設けられている。
【００１９】
図２は、本実施の形態に係るＰＤプリンタ１０００の操作パネル１０１０の概観図である。
【００２０】
同図において、液晶表示部１００６には、その左右に印刷されている項目に関するデータを各種設定するためのメニュー項目が表示される。ここに表示される項目としては、例えば、印刷したい範囲の先頭写真番号、指定コマ番号（開始コマ指定／印刷コマ指定）、印刷を終了した範囲の最後の写真番号（終了）、印刷部数（部数）、印刷に使用する用紙（記録シート）の種類（用紙種類）、１枚の用紙に印刷する写真の枚数設定（レイアウト）、印刷の品位の指定（品位）、撮影した日付を印刷するかどうかの指定（日付印刷）、写真を補正して印刷するかどうかの指定（画像補正）、印刷に必要な用紙枚数の表示（用紙枚数）等がある。これら各項目は、カーソルキー２００１を用いて選択、或いは指定される。２００２はモードキーで、このキーを押下する毎に、印刷の種類（インデックス印刷、全コマ印刷、１コマ印刷等）を切り替えることができ、これに応じてＬＥＤ２００３の対応するＬＥＤが点灯される。２００４はメンテナンスキーで、プリントヘッドのクリーニング等、プリンタのメンテナンスを行わせるためのキーである。２００５は印刷開始キーで、印刷の開始を指示する時、或いはメンテナンスの設定を確立する際に押下される。２００６は印刷中止キーで、印刷を中止させる時や、メンテナンスの中止を指示する際に押下される。
【００２１】
次に図３を参照して、本実施の形態に係るＰＤプリンタ１０００の制御に係る主要部の構成を説明する。尚、この図３において、前述の図面と共通する部分は同じ記号を付与して、それらの説明を省略する。
【００２２】
図３において、３０００は制御部（制御基板）を示している。３００１はＡＳＩＣ（専用カスタムＬＳＩ）を示し、その構成は図４のブロック図を参照して詳しく後述する。３００２はＤＳＰ（デジタル信号処理プロセッサ）で、内部にＣＰＵを有し、後述する各種制御処理及び、輝度信号（ＲＧＢ）から濃度信号（ＣＭＹＫ）への変換、スケーリング、ガンマ変換、誤差拡散等の画像処理等を担当している。３００３はメモリで、ＤＳＰ３００２のＣＰＵの制御プログラムを記憶するプログラムメモリ３００３ａ、及び実行時のプログラムを記憶するＲＡＭエリア、画像データなどを記憶するワークメモリとして機能するメモリエリアを有している。３００４はプリンタエンジンで、ここでは、複数色のカラーインクを用いてカラー画像を印刷するインクジェットプリンタのプリンタエンジンが搭載されている。３００５はデジタルカメラ（ＤＳＣ）３０１２を接続するためのポートとしてのＵＳＢコネクタである。３００６はビューワ１０１１を接続するためのコネクタである。３００８はＵＳＢハブ(USB HUB)で、このＰＤプリンタ１０００がＰＣ３０１０からの画像データに基づいて印刷を行う際には、ＰＣ３０１０からのデータをそのままスルーし、ＵＳＢ３０２１を介してプリンタエンジン３００４に出力する。これにより、接続されているＰＣ３０１０は、プリンタエンジン３００４と直接、データや信号のやり取りを行って印刷を実行することができる（一般的なＰＣプリンタとして機能する）。３００９は電源コネクタで、電源３０１９により、商用ＡＣから変換された直流電圧を入力している。ＰＣ３０１０は一般的なパーソナルコンピュータ、３０１１は前述したメモリカード（ＰＣカード）、３０１２はデジタルカメラ（ＤＳＣ：Digital Still Camera)である。３０３０は例えばハードディスクやＤＶＤドライブ等の記憶装置で、画像データを記憶している。この記憶装置３０３０は，ＵＳＢコネクタ３０３１を介してＵＳＢにより接続されている。
【００２３】
尚、この制御部３０００とプリンタエンジン３００４との間の信号のやり取りは、前述したＵＳＢ３０２１又はＩＥＥＥ１２８４バス３０２２を介して行われる。
【００２４】
図４は、ＡＳＩＣ３００１の構成を示すブロック図で、この図４においても、前述の図面と共通する部分は同じ記号を付与して、それらの説明を省略する。
【００２５】
４００１はＰＣカードインターフェース部で、装着されたＰＣカード３０１１に記憶されている画像データを読取ったり、或いはＰＣカード３０１１へのデータの書き込み等を行う。４００２はＩＥＥＥ１２８４インターフェース部で、プリンタエンジン３００４との間のデータのやり取りを行う。このＩＥＥＥ１２８４インターフェース部４００２は、デジタルカメラ３０１２或いはＰＣカード３０１１に記憶されている画像データを印刷する場合に使用されるバスである。４００３はＵＳＢインターフェース部で、ＰＣ３０１０との間でのデータのやり取りを行う。４００４はＵＳＢホストインターフェース部で、デジタルカメラ３０１２との間でのデータのやり取りを行う。４００５は操作パネル・インターフェース部で、操作パネル１０１０からの各種操作信号を入力したり、表示部１００６への表示データの出力などを行う。４００６はビューワ・インターフェース部で、ビューワ１０１１への画像データの表示を制御している。４００７は各種スイッチやＬＥＤ４００９等との間のインターフェースを制御するインターフェース部である。４００８はＣＰＵインターフェース部で、ＤＳＰ（ＣＰＵ）３００２との間でのデータのやり取りの制御を行っている。４０１０はこれら各部を接続する内部バス（ＡＳＩＣバス）である。４０１１はＵＳＢインターフェース部で、記憶装置３０３０との間でのデータのやり取りを行う。
【００２６】
図５は、本実施の形態に係るＤＳＣ３０１２の構成を示すブロック図である。なお、このようなデジタルカメラ（ＤＳＣ）のハードウェアそのものは公知であるので、簡単に説明する（ファームウェアはＤＰＳ（Direct Print System）対応になっている）。
【００２７】
同図において、３１はＤＳＣ３０１２全体の制御を司るＣＰＵであり、３２はＣＰＵ３１の処理手順（ファームウェア）を記憶しているＲＯＭである（ただし、ファームウェアは適宜バージョンアップが行われることを想定し、書き込み可能な不揮発性メモリ、例えばフラッシュメモリで構成される）。３３はＣＰＵ３３のワークエリアとして使用されるＲＡＭであり、３４は各種操作を行うスイッチ群である。３５は液晶表示器であり、撮像した画像を確認したり、各種設定を行う際のメニューを表示するために使用される。これら３４，３５は、本実施形態では、ダイレクトプリントシステムとして機能した場合、システム全体としてユーザインターフェースとして機能するようになる。３６は光学ユニットであり、主としてレンズ及びその駆動系で構成される。３７はＣＣＤ素子であり、３８はＣＰＵ３１の制御下において光学ユニット３６を制御するドライバである。３９は記憶媒体４０（コンパクトフラッシュ（登録商標）メモリカード、スマートメディア等）を接続するためのコネクタであり、４１はＰＣ或いは実施形態におけるＰＤプリンタ１０００と接続するためのＵＳＢインターフェース（ＵＳＢのスレーブ側）である。また後述するように、更にＵＳＢインターフェース４２を備えて、このＵＳＢインターフェースを介して直接記憶装置３０３０或いは後述のディスプレイ（テレビジョン受像機）に接続するように構成されていてもよい。
【００２８】
図６は、ＤＳＣ３０１２と同様に、このＰＤプリンタ１０００にＵＳＢを介して接続される記憶装置３０３０の構成を説明するブロック図である。
【００２９】
同図において、６０は記憶装置３０３０全体の制御を司るＣＰＵであり、６１はＣＰＵ６０の処理手順（ファームウェア）を記憶しているＲＯＭである（ただし、ファームウェアは適宜バージョンアップが行われることを想定し、書き込み可能な不揮発性メモリ、例えばフラッシュメモリで構成される）。６２はＣＰＵ６０のワークエリアとして使用されるＲＡＭである。６３は、本実施の形態に係るＰＤプリンタ１０００と接続するためのＵＳＢインターフェース（ＵＳＢのスレーブ側）である。また後述するように、更にＵＳＢインターフェース６７を備えて、このＵＳＢインターフェースを介して直接ＤＳＣ３０１２或いはディスプレイに接続するように構成されていてもよい。６５は、この記憶装置３０３０における記憶媒体であるディスク、６４はこのディスク６５へのデータの書込み、及びディスク６５からのデータの読み出しを制御するＲ／Ｗコントローラである。
【００３０】
図７は、本実施の形態に係るＰＤプリンタ１０００とＤＳＣ３０１２との間でのインターフェースを説明する図である。尚、このＰＤプリンタ１０００と記憶装置３０３０との間のインターフェースも基本的に同様の階層構造を有している。
【００３１】
同図において、６００はＵＳＢによるインターフェース、６０１はブルーツース（Bluetooth）によるインターフェースを示している。６０２はＤＰＳによるシステムを構築する際に組込まれるアプリケーションレイヤを示している。６０３は既存のプロトコル及びインターフェースを実行するためのレイヤで、ここではＰＴＰ（Picture Transfer Protocol），ＳＣＳＩ及びブルーツースのＢＩＰ（Basic Image Profile），ＵＳＢインターフェース等が実装されている。本実施の形態に係るＤＰＳは、このようなプロトコルレイヤ等のアーキテクチャが実装されていて、その上にアプリケーションとして実装されることが前提である。ここではＰＤプリンタ１０００はＵＳＢホスト、カメラ３０１２（記憶装置３０３０）はＵＳＢデバイスとして規定されており、図７に示すように、それぞれ同じＤＰＳ構成となっている（但し、図７では記憶装置３０３０の構成は不図示である）。
【００３２】
本実施の形態に係るＤＰＳを用いることのメリットは、ＰＤプリンタ１０００とＤＳＣ３０１２が互いにＤＰＳへ移行する際、及び移行した後において、互いに情報のやりとりを行う場合には、一連の情報、一連の動作手順をスクリプトで記述したファイル（テキストファイル）を生成し、それを相手側デバイスに送信し、受信側では受信したスクリプトを解釈して処理することにある。この結果、或る情報を相手側に伝えたい場合において、その情報が複数の要素で構成されている場合であっても、１つ１つの要素をハンドシェークでやりとりすることが少なくできる。これにより情報伝達に係るオーバーヘッドがなくなり、情報伝達の効率が向上する。例えば、ＤＳＣ３０１２側で、印刷させたい画像が複数存在する場合、その印刷させたい画像を所望の数選択し、それぞれに対して印刷条件を設定した場合、その一連の処理手順がスクリプトとして記述されてＰＤプリンタ１０００にテキストファイルの形式で通知することが可能になる。そしてＰＤプリンタ１０００側では、その受信したスクリプトを解釈し、処理することになる。
【００３３】
［実施の形態１］
図８は、本発明の実施の形態１においてＰＤプリンタ１０００、ＤＳＣ３０１２及び記憶装置３０３０とをＵＳＢインターフェースで接続した場合の例を示す図である。尚、図８の例では、ＰＤプリンタ１０００、ＤＳＣ３０１２及び記憶装置３０３０のそれぞれが２つのＵＳＢインターフェースを使用して互いに接続されている。また図において、「ＰＳ」はプリントサーバ、「ＰＣ」はプリントクライアント、「ＳＣ」はストレージクライアント、「ＳＳ」はストレージサーバをそれぞれ示しており、この図８の例では、ユーザがＤＳＣ３０１２を操作して、記憶装置３０３０に記憶されている画像データを指定してＰＤプリンタ１０００により印刷させる場合を示している。また記憶装置３０３０は、ＰＤプリンタ１０００と別体であっても、或いはＰＤプリンタ１０００に組込まれたものであっても良い。
【００３４】
本実施の形態では通信プロトコルとしてＰＴＰを用いた場合の各クライアント及びサーバの動作を図３、図５、図６及び図８を用いて説明する。
【００３５】
図８中のＰＤプリンタ１０００が担当している「ＰＳ」及び「ＳＣ」は、図３中のＤＳＰ（ＣＰＵ）３００２がプログラムメモリ３００３ａ中に格納された「ＰＳ」及び「ＳＣ」動作プログラムを読み出してステップ毎に実行することにより実現される。「ＰＳ」動作プログラムは、デジタルカメラ３０１が担当している「ＰＣ」からの印刷要求Ｓｃｒｉｐｔ等をＵＳＢ３００５、ＡＳＩＣ３００１を経由して受信して解析し、ＡＳＩＣ３００１を介してプリンタエンジン３００４を印刷要求に従って制御して印刷を行う。「ＳＣ」動作プログラムは、印刷に必要なファイルの取得要求が記述されたファイル要求Ｓｃｒｉｐｔ等を作成し、ＡＳＩＣ３００１、ＵＳＢＩ／Ｆ３０３１を介して記憶装置３０３０の担当している「ＳＳ」へ発行し、必要なファイル等を取得する。
【００３６】
図８中のＤＳＣ３０１２が担当している「ＰＣ」及び「ＳＣ」は、図５中のＣＰＵ３１がＲＯＭ３２中に格納された「ＰＣ」及び「ＳＣ」動作プログラムを読み出してステップ毎に実行することにより実現される。「ＰＣ」動作プログラムは印刷要求Ｓｃｒｉｐｔ等を作成し、Ｉ／Ｆ４１を介してＰＤプリンタ１０００が担当する「ＰＳ」に対して発行する。「ＳＣ」動作プログラムは写真画像の閲覧に必要なファイルの取得要求が記述されたファイル要求Ｓｃｒｉｐｔ等を作成し、ＵＳＢＩ／Ｆ４２を介して記憶装置３０３０の担当している「ＳＳ」へ発行し、必要なファイルを取得する。
【００３７】
図８中の記憶装置３０３０が担当している「ＳＳ」は、図６中のＣＰＵ６０がＲＯＭ６１中に格納された「ＳＳ」動作プログラムを読み出してステップ毎に実行することにより実現される。「ＳＳ」動作プログラムはＰＤプリンタ１０００が担当している「ＳＣ」からのファイル取得要求Ｓｃｒｉｐｔ等をＵＳＢＩ／Ｆ６３を経由して受信して解析し、要求に従ってＲ／Ｗコントローラ６４を介してディスク６５内に格納されている画像ファイル等をＵＳＢＩ／Ｆ６３経由でＰＤプリンタ１０００が担当している「ＳＣ」へ送信する。また、ＤＳＣ３０１２が担当する「ＳＣ」からのファイル取得要求Ｓｃｒｉｐｔ等をＵＳＢＩ／Ｆ６７を経由して受信して解析し、要求に従ってＲ／Ｗコントローラ６４を介してディスク６５内に格納されている画像ファイル等をＵＳＢＩ／Ｆ６７経由でＤＳＣ３０１２１０００が担当している「ＳＣ」へ送信する。
【００３８】
上記各プログラムは、必ずしも全てがソフトウェアで実現される必要は無く、一部、又は全部がハードウェアで実現されていても構わない事は言うまでも無い。
【００３９】
この場合は、まずＤＳＣ３０１２から記憶装置３０３０に対して「GetFileList」，「GetThumb」コマンドを送出して、記憶装置３０３０に記憶されている画像ファイルのリスト及びそのサムネイル画像を要求する。尚、この要求には、ＤＳＣ３０１２のＩＤが含まれている。これにより記憶装置３０３０は、このＤＳＣ３０１２のＩＤと、その要求を特定する要求ＩＤとを設定し、ディスク６５に記憶されている画像ファイルのリスト及びサムネイル画像を、その要求ＩＤと共にＤＳＣ３０１２に送る。これにより、それらサムネイル画像がインデックス画像としてＤＳＣ３０１２の表示器３５に表示される。そして、ユーザがＤＳＣ３０１２のＵＩを使用して、印刷したい画像を選択する。こうしてユーザが印刷したい画像を選択して印刷開始を指示すると、ＤＳＣ３０１２からＰＤプリンタ１０００に対して、その印刷したい画像を特定するファイルＩＤと前述の要求ＩＤとともに印刷開始を指示する「StartJob」コマンドが送信される。これによりＰＤプリンタ１０００は、その印刷指示されたファイルＩＤと要求ＩＤに基づいて記憶装置３０３０に対して、「GetFile」コマンドを発行し、その画像データを要求する。これにより記憶装置３０３０から、その指定した画像データがＰＤプリンタ１０００に送信されＰＤプリンタ１０００により印刷される。
【００４０】
尚、前述の要求ＩＤは、詳しく後述するように、記憶装置３０３０がＤＳＣ３０１２に応答した時のファイルリストと、ＰＤプリンタ１０００から画像データの要求があった時のファイルリストのファイルＩＤとの対応を取るためのものである。
【００４１】
図９（Ａ）は、実施の形態１においてＰＤプリンタ１０００、ＤＳＣ３０１２及び記憶装置３０３０とをＵＳＢインターフェースで接続した場合の他の例を示す図である。尚、図９（Ａ）及び９（Ｂ）の例では、ＰＤプリンタ１０００はＵＳＢのホストであり、ＵＳＢハブを介してＤＳＣ３０１２と記憶装置３０３０が接続されている（図９（Ｂ））。また図において、「ＰＳ」はプリントサーバ、「ＰＣ」はプリントクライアント、「ＳＣ」はストレージクライアント、「ＳＳ」はストレージサーバ、「ＶＳＳ」は仮想ストレージサーバ、「ＶＳＣ」は仮想ストレージクライアントをそれぞれ示しており、この図９（Ａ）の例では、ユーザがＤＳＣ３０１２を操作して、記憶装置３０３０に記憶されている画像データを指定してＰＤプリンタ１０００により印刷させる場合を示している。
【００４２】
図９（Ａ）中のＰＤプリンタ１０００が担当している「ＰＳ」及び「ＳＣ」は、図８で説明した内容と同じであるので省略する。「ＶＳＳ」及び「ＶＳＣ」は図３中のＤＳＰ（ＣＰＵ）３００２がプログラムメモリ３００３ａ中に格納された「ＶＳＳ」及び「ＶＳＣ」動作プログラムを読み出してステップ毎に実行する。「ＶＳＳ」動作プログラムはあたかも記憶装置３０３０の担当している「ＳＳ」の代理人の様に振るまい、「ＶＳＣ」動作プログラムはあたかもＤＳＣ３０１２の担当している「ＳＣ」の代理人の様に振舞う。まず、「ＶＳＳ」はデジタルカメラ３０１が担当している「ＳＣ」からのファイル取得要求Ｓｃｒｉｐｔ等をＵＳＢ３００５、ＡＳＩＣ３００１を経由して受信し解析する。次に「ＶＳＳ」は「ＶＳＣ」に対して解析内容の送付を行う。そして「ＶＳＣ」は、その解析内容に基づきファイルの取得要求が記述されたファイル要求Ｓｃｒｉｐｔ等を作成しＵＳＢＩ／Ｆ３０３１を介して記憶装置３０３０の担当している「ＳＳ」へ発行し、必要なファイル等を取得し、メモリ３００３に格納する。「ＶＳＣ」は必要なファイル等を取得した事実及びメモリ３００３内でのファイル等の格納位置情報を「ＶＳＳ」へ通達する。「ＶＳＳ」は通達された格納位置情報をもとに、取得したファイル等をＡＳＩＣ３００１、ＵＳＢ３００５を介してＤＳＣ３０１２の担当している「ＳＣ」へ送付する。ここまで見てきたように、「ＶＳＳ」と「ＶＳＣ」間のやり取りは純粋にＰＤプリンタ１０００の内部処理であるので、実際的にはＶＳＳとＶＳＣは独立して存在せずに一体のプログラムとしても実現され得る。
【００４３】
図９（Ａ）中のＤＳＣ３０１２が担当している「ＰＣ」は図８で説明した内容と同じであるので省略する。「ＳＣ」は、図５中のＣＰＵ３１がＲＯＭ３２中に格納された「ＳＣ」動作プログラムを読み出してステップ毎に実行することにより実現される。「ＳＣ」動作プログラムは、写真画像の閲覧に必要なファイルの取得要求が記述されたファイル要求Ｓｃｒｉｐｔ等を作成し、Ｉ／Ｆ４１を介してＰＤプリンタ１０００の担当している「ＶＳＳ」へ発行し、その結果必要なファイルを取得する。
【００４４】
図９（Ａ）中の記憶装置３０３０が担当している「ＳＳ」は、図６中のＣＰＵ６０がＲＯＭ６１中に格納された「ＳＳ」動作プログラムを読み出してステップ毎に実行することにより実現される。「ＳＳ」動作プログラムはＰＤプリンタ１０００が担当している「ＶＳＣ」からのファイル取得要求Ｓｃｒｉｐｔ等をＵＳＢＩ／Ｆ６３を経由して受信して解析し、要求に従ってＲ／Ｗコントローラ６４を介してディスク６５内に格納されている画像ファイル等をＵＳＢＩ／Ｆ６３経由でＰＤプリンタ１０００が担当している「ＶＳＣ」へ送信する。
【００４５】
上記各プログラムも、必ずしも全てがソフトウェアで実現される必要は無く、一部、又は全部がハードウェアで実現されていても構わない事は言うまでも無い。
【００４６】
また、上記プログラムの説明時には明記していないが、「ＶＳＳ」及び「ＶＳＣ」は自分が「代理人」である事を明言する事で以下に示す様なメリットを享受し得る。
・依頼人「ＳＣ」に対して自分「ＶＳＳ」の名前及び代理対象の「ＳＳ」の名前を通達し、依頼人「ＳＳ」に対して自分「ＶＳＣ」の名前及び代理対象の「ＳＣ」の名前を通達する事で、「ＶＳＳ」は理解出来ない、「ＳＣ」―「ＳＳ」間でのみ理解可能なストレージサービスを実現出来る。
・「ＶＳＳ」及び「ＶＳＣ」を担当している機器の利用可能なバッファメモリサイズが、「ＳＣ」及び「ＳＳ」を担当している機器の利用可能なバッファメモリサイズよりも小さい場合、「ＳＣ」−「ＳＳ」直接接続時にやり取りするファイルの最大サイズよりも「ＳＣ」−「ＶＳＳ」−「ＶＳＣ」−「ＳＳ」代理接続時にやり取りするファイルの最大サイズを小さく設定して「ＶＳＳ」−「ＶＳＣ」機器のバッファオーバーフローを回避する事が出来る。
【００４７】
この場合は、まずＤＳＣ３０１２からＰＤプリンタ１０００に対してＩＤと共に「GetFileList」，「GetThumb」コマンドを送出して、記憶装置３０３０に記憶されている画像ファイルのリスト及びそのサムネイル画像を、ＰＤプリンタ１０００に要求する。この場合、ＰＤプリンタ１０００は仮想ストレージサーバとして機能している。そして次に、ＰＤプリンタ１０００は仮想ストレージクライアントとして機能し、記憶装置３０３０に対して「GetFileList」，「GetThumb」コマンドを送出して、記憶装置３０３０に対して、ディスク６５に記憶されている画像データのファイルリスト及びサムネイル画像を要求する。これに応答して、画像ファイルリスト及びサムネイル画像が要求ＩＤと共に記憶装置３０３０からＰＤプリンタ１０００に送られると、ＰＤプリンタ１０００は、そのリスト及びサムネイル画像を要求ＩＤと共にＤＳＣ３０１２に送信する。これにより画像ファイルリスト及びサムネイル画像がＤＳＣ３０１２の表示器３５に表示される。そして、ユーザがＤＳＣ３０１２のＵＩを使用して印刷したい画像を選択する。こうしてユーザにより印刷したい画像が選択され、印刷開始が指示されるとＤＳＣ３０１２からＰＤプリンタ１０００に対して、その印刷したい画像を特定するファイルＩＤと要求ＩＤ、及び印刷開始を指示する「StartJob」コマンドが送信される。これによりＰＤプリンタ１０００は、その印刷指示されたファイルＩＤと要求ＩＤに基づいて記憶装置３０３０に対して、「GetFile」により、その画像データを要求する。これにより記憶装置３０３０から、その指定した画像データがＰＤプリンタ１０００に送信され、ＰＤプリンタ１０００により印刷される。
【００４８】
図９（Ｂ）は、図９（Ａ）に示す、ＰＤプリンタ１０００、ＤＳＣ３０１２及び記憶装置３０３０のＵＳＢ接続を説明する図で、ここではＰＤプリンタ１０００がホストで、ＤＳＣ３０１２及び記憶装置３０３０は共にスレーブに設定されている。
【００４９】
また図９（Ａ）に示す、ＰＤプリンタ１０００、ＤＳＣ３０１２及び記憶装置３０３０のＵＳＢ接続は、ＤＳＣ３０１２とＰＤプリンタ１０００とのＵＳＢ接続ではＰＤプリンタ１０００がホストであり、ＰＤプリンタ１０００と記憶装置３０３０とのＵＳＢ接続では、記憶装置３０３０はＵＳＢのホストであってもよい。
【００５０】
図１０（Ａ）は、実施の形態１においてＰＤプリンタ１０００、ＤＳＣ３０１２及び記憶装置３０３０とをＵＳＢインターフェースで接続した場合の更に他の例を示す図である。尚、図１０（Ａ）では、図１０（Ｂ）に示すように、ＤＳＣ３０１２と記憶装置３０３０とのＵＳＢ接続では記憶装置３０３０がホストであり、ＰＤプリンタ１０００と記憶装置３０３０とのＵＳＢ接続では、ＰＤプリンタ１０００はＵＳＢのホストである。また図において、「ＰＳ」はプリントサーバ、「ＰＣ」はプリントクライアント、「ＳＣ」はストレージクライアント、「ＳＳ」はストレージサーバ、「ＶＰＳ」は仮想プリントサーバ、「ＶＰＣ」は仮想プリントクライアントをそれぞれ示しており、この図１０（Ａ）の例では、ユーザがＤＳＣ３０１２を操作して、記憶装置３０３０に記憶されている画像データを指定してＰＤプリンタ１０００により印刷させる場合を示している。
【００５１】
この場合は、まずＤＳＣ３０１２から記憶装置３０３０に対して，ＩＤ及び「GetFileList」，「GetThumb」コマンドを送出して、記憶装置３０３０に記憶されている画像ファイルのリスト及びそのサムネイル画像を要求する。これにより、画像ファイルのリスト及びサムネイル画像が要求ＩＤと共に記憶装置３０３０からＤＳＣ３０１２に送られ、ユーザにより印刷したい画像が選択される。そして次に、印刷したい画像が選択されて印刷開始が指示されるとＤＳＣ３０１２からＰＤプリンタ１０００に対して、その印刷したい画像を特定するファイルＩＤと要求ＩＤ及び印刷開始を指示する「StartJob」コマンドが送信される。これにより記憶装置３０３０は、ＰＤプリンタ１０００に対して、その要求ＩＤに対応する印刷指示されたファイルＩＤを用いてＰＤプリンタ１０００に対して印刷を指示する（「StartJob」）。これによりＰＤプリンタ１０００は、その指示された要求ＩＤとファイルＩＤとを使用して、記憶装置３０３０に対して、「GetFile」により、その画像データを要求する。これにより記憶装置３０３０から、その指定した画像データが送信され、ＰＤプリンタ１０００により印刷される。最初にＤＳＣ３０１２から記憶装置３０３０に対して記憶されている画像ファイルのリスト及びそのサムネイル画像を要求する場合に、上記説明の様にリストとサムネイル画像を一括で取得しても良く、最初に「GetFileList」コマンドを送出してリストだけを取得し、取得したリスト中に記載されたファイルＩＤを用いて「GetThumb」コマンドを送出して必要な画像のサムネイルのみを逐次取得する様にしても良い。
【００５２】
図１１は、図８の構成におけるＤＳＣ３０１２，ＰＤプリンタ１０００及び記憶装置３０３０の動作を説明するフローチャートで、それぞれの処理を実行するプログラムは、ＰＤプリンタ１０００の場合はプログラムメモリ３００３ａに、ＤＳＣ３０１２の場合はＲＯＭ３２に，記憶装置３０３０の場合はＲＯＭ６１にそれぞれ記憶されている。
【００５３】
まずＤＳＣ３０１２がユーザにより操作されて、インデックス表示が指示されるとステップＳ１で、「GetFileList」，「GetThumb」コマンドを記憶装置３０３に出力して、記憶装置３０３０が記憶している画像データのリスト及びそのサムネイル画像を要求する。これにより記憶装置３０３０はステップＳ１１で、そのコマンドを送出してきたカメラのＩＤ及びその要求ＩＤをＲＡＭ６２に記憶する。ここで、カメラＩＤはコマンドに含まれており、要求ＩＤはそのコマンドによる要求に対して一意に割り当てられるＩＤである。そしてステップＳ１２に進み、記憶装置３０３０からＤＳＣ３０１２に対して、ファイルリスト及びそのサムネイル画像が送信される。これによりＤＳＣ３０１２では、ステップＳ２の応答受信待ちからステップＳ３に進み、その受信したサムネイル画像に基づいてインデックス画像を表示器３５に表示する。そしてユーザは、そのインデックス画像を見ながら操作ボタン３４を操作して印刷したい画像を選択し、印刷の開始を指示するとステップＳ４からステップＳ５に進み、コマンド「StartJob」を発行して、カメラＩＤ及び要求ＩＤ，そして選択されたファイルＩＤを、ＰＤプリンタ１０００に送信する。
【００５４】
これによりＰＤプリンタ１０００は、ステップＳ２１で、そのプリント要求を受信してステップＳ２２に進み、「StartJob」で指定された要求ＩＤと、ファイルＩＤに対応する画像データを記憶装置３０３に対して要求し（「GetFile」）、ステップＳ２３で画像データの受信待ちに入る。
【００５５】
これにより記憶装置３０３０は、ステップＳ１３からステップＳ１４に進み、カメラＩＤ、要求ＩＤ及びファイルＩＤに基づいて、プリンタ１０００から要求された画像データを検索し、ディスク６５からその画像データを読み出す。そしてステップＳ１５に進み、その読み出した画像データをＰＤプリンタ１０００に送信する。
【００５６】
これによりＰＤプリンタ１０００は、ステップＳ２３からステップＳ２４に進み、その画像データを受信し復号してプリントデータに展開し印刷を実行する。
【００５７】
図１２は、ファイルリストの要求に対して、記憶装置３０３０のＲＡＭ６２に記憶される、カメラＩＤと要求（リクエスト）ＩＤに対応付けて、応答した画像データ名と、実際にディスク６６に記憶されている画像データのとの関係を説明する図である。
【００５８】
これは例えば同じカメラ（ＤＳＣ）（ＩＤ：＃Ａ）からの「GetFileList」コマンドに対する応答であっても、例えば、時間的に古いリクエストＩＤ（＃００１）では、１２０で示すような画像データ名のリストを送信している。これに対して、例えば数日後、同じカメラからの要求を受取った時（ＩＤ：＃００２）に、ディスク６５内の画像データ「image002.jpg」が削除されている場合、その画像リストは、１２１で示すように、送信した画像データ名の「image02」以降では、ディスク６５に格納されている画像データ名と、送信したファイル名とが、１２０の場合と異なってしまう。従って記憶装置３０３０では、ファイルリストを要求したカメラＩＤと要求ＩＤとを対応付けて、送信画像データ名のリストを記憶しておき、そのカメラＩＤと要求ＩＤとに対応する画像ファイルリスト名を参照して、ディスク６５から対応する画像データを読み出すようにしている。これにより、図１２に示すように、ある画像データが削除されていても、ユーザが意図した画像でない画像が誤って印刷されるという不具合を無くすことが出来る。尚、要求ＩＤだけで、ＤＳＣ３０１２からの要求を特定できるのであれば、カメラＩＤは使用しなくても良いことはもちろんである。
【００５９】
また、記憶装置３０３０の記憶媒体が挿抜可能なカード媒体である場合、そのカード媒体を記憶装置３０３０の本体に装着した時点で、そのカード媒体に記憶されている各画像ファイルに対して画像データ名を割り振る方式も考えられる。その場合、ユーザが印刷希望画像を選択した後に、別のカード媒体への差し替えが発生すると、印刷対象の画像が、ユーザが意図した画像でなくなるという可能性もある。
【００６０】
また図１２において、フラグ１２２は、そのファイルリストが要求されてから、実際に、そのファイルリストに基づいて画像データが要求されたかどうかを示すフラグで、要求があるとオンに設定される。これは、例えば画像ファイルのリストが要求された後、そのリストに基づく印刷要求が入力されない前に、ディスク６５に記憶されている画像データが削除されてしまうことにより、画像ファイルリストで送信した画像のデータが実際には存在しなくなるという不具合を無くすためのもので、このフラグ１２２がオフの間は、そのリストに含まれている画像データの更新は禁止されるようにしてもよい。
【００６１】
しかし、仮に一旦画像ファイルリストを送信した後、画像データの更新を常時或は永久的に禁止するようにした場合には、実質上、記憶装置３０３０が不要な画像を削除することが殆どできなくなってしまうので、本来は更新を禁止しなくて良い状況になり次第画像データの更新禁止を解除することが好ましい。よって、記憶装置３０３０はＤＳＣ３０１２がただ単に画像を参照するためにファイルリストを取得しようとしているのか、それともＰＤプリンタ１０００に対して印刷要求を発行するためにファイルリストを取得しようとしているのかを判別できることが有効である。何故ならＤＳＣ３０１２が単に画像を参照する場合には、仮に対象の画像ファイルが削除された場合であっても、ＤＳＣ３０１２は記憶装置３０３０から該当する画像ファイルを取得しようとした際に、その対象としている画像データの取得に失敗するので、ユーザに対して「画像が削除された」旨を通知できる。よって、ＤＳＣ３０１２がただ単に画像を参照した場合には、該当する画像データの更新を禁止しなくても良い。
【００６２】
これに対してＰＤプリンタ１０００に対して印刷要求を発行するために、ＤＳＣ３０１２が記憶装置３０３０からファイルリストを取得した場合には、ＤＳＣ３０１２は記憶装置３０３０から画像ファイルのサムネイル画像（インデックス画像）を取得し、ユーザがそのインデックス画像を参照して印刷したい画像を決定して、ＤＳＣ３０１２からＰＤプリンタ１０００に対して印刷指示を発行する。こうしてＰＤプリンタ１０００に対して印刷指示が発行されてＰＤプリンタ１０００において印刷処理が開始された後、その印刷途中で、記憶装置３０３０内で該当画像ファイルが削除されると、ＰＤプリンタ１０００はその画像ファイルの取得に失敗してしまい、結果として印刷ができなくなる。従って、この場合には、以下のような理由で、該当する画像データの更新を禁止した方が良い。
（１）一旦ユーザがサムネイル画像で確認して印刷指示をしたにも拘わらず、画像ファイルの取得に失敗して印刷が実行されなくなる。
（２）印刷中での画像ファイルの授受は、ＰＤプリンタ１０００と記憶装置３０３０との間で行われているので、画像ファイルの取得エラーが発生した場合には、そのエラーはＰＤプリンタ１０００によってユーザに通達される必要がある。
【００６３】
一般的には、プリンタよりもカメラの方が表示能力に富んだ液晶ディスプレイ等のＵＩ機能を搭載している場合が多いのに対して、ＰＤプリンタ１０００によってエラー表示を行う場合には、ディスプレイを搭載していないプリンタの場合には、ＬＥＤの点滅やブザー音等で「該当するファイルが存在しない」旨をユーザに報知しなければならなくなる。無論、他の何らかの手法でプリンタからカメラに対して画像ファイルの取得エラーが発生した旨を通達し、ＤＳＣ３０１２のＵＩを通してユーザに報知することも可能である。しかしながら、原則として印刷指示がＤＳＣ３０１２からプリンタに発行された後は、プリンタと記憶装置３０３０との間の画像ファイル転送のみで印刷指示を完遂できる。このため、ＤＳＣ３０１２は印刷が開始されるとＰＤプリンタ１０００及び記憶装置３０３０との接続を切断し、撮影モード等に移行される可能性がある。このような理由により、印刷開始後に、ＰＤプリンタ１０００がＤＳＣ３０１２のＵＩを常に利用可能な状態にあることは保証されていない。このような事態を想定すると、印刷指示が発行された後は、該当する画像データの更新を禁止した方が良いことは明らかである。
【００６４】
以上説明したように、ＤＳＣ３０１２がＰＤプリンタ１０００に印刷指示を発行するために記憶装置３０３０に対して画像ファイルリストを要求しているのか、或は、単に画像を参照するためにＤＳＣ３０１２から記憶装置３０３０に対して画像ファイルリストが要求されたかどうかを区別することは非常に有効である。これにより、ファイルリストが要求された後の記憶装置３０３０は、そのファイルリスト要求の意図に応じて、記憶している画像ファイルの更新の可否を判定することができる。
【００６５】
また記憶装置３０３０側で、接続されているＰＤプリンタ１０００とＤＳＣ３０１２が電源が投入されていて印刷指示が可能な状態で接続されているか否かに基づいて、記憶している画像ファイルの更新の可否を自動的に判定しても良い。即ち、これらの機器が印刷指示が可能な状態で接続されている場合には、記憶装置３０３０における画像ファイルの更新を禁止し、そうでないときは記憶装置３０３０における画像ファイルの更新を許可するようにしても良い。
【００６６】
またＤＳＣ３０１２から記憶装置３０３０に対して、印刷目的で画像ファイルリストを取得するのか、それとも単にＤＳＣ３０１２のＵＩでの閲覧目的で画像ファイルリストを取得するのかを通知することにより、記憶装置３０３０が判定する様にしても良い。
【００６７】
また図１０（Ａ）の様な構成の場合、記憶装置３０３０の仮想プリントサーバＶＰＳの状態に基づいて判定しても良い。具体例としては、記憶装置３０３０の仮想プリントサーバＰＳＶに対して印刷指示が発行された時点で、該当する画像データの更新を禁止し、印刷処理が完了した時点で、その画像データの更新禁止を解除する、等の方法が考えられる。また、画像ファイルを参照しようとしている装置の種類によって変更してもよい。
【００６８】
図１３は前述の図１１と同様に、ＤＳＣ３０１２、ＰＤプリンタ１０００及び記憶装置３０３０との間の処理を説明するフローチャートで、この処理は図１０（Ａ）及び１０（Ｂ）に示す接続形態に対応している。尚、前述の図１１と同様の動作には同じステップ番号を付している。
【００６９】
まずＤＳＣ３０１２がユーザにより操作されて、インデックス表示が指示されるとステップＳ１で、「GetFileList」，「GetThumb」コマンドを記憶装置３０３０に出力して、記憶装置３０３０が記憶している画像データのリスト及びそのサムネイル画像を要求する。これにより記憶装置３０３０はステップＳ１１で、そのコマンドを送出してきたカメラのＩＤ及びその要求ＩＤをＲＡＭ６２に記憶する。ここで、カメラＩＤはコマンドに含まれており、要求ＩＤはそのコマンドによる要求に対して一意に割り当てられるＩＤである。そしてステップＳ１２に進み、記憶装置３０３０からＤＳＣ３０１２に対して、ファイルリスト及びそのサムネイル画像が送信される。これによりＤＳＣ３０１２では、ステップＳ２の応答受信待ちからステップＳ３に進み、その受信したサムネイル画像に基づいてインデックス画像を表示器３５に表示する。そしてユーザは、そのインデックス画像を見ながら操作ボタン３４を操作して印刷したい画像を選択し、印刷の開始を指示するとステップＳ４からステップＳ５に進み、コマンド「StartJob」を発行して、カメラＩＤ及び要求ＩＤ，そして選択されたファイルＩＤを，ＰＤプリンタ１０００に送信する。ここまでは図１１の処理と同じである。
【００７０】
これにより記憶装置３０３０は、ステップＳ３１でプリント要求を受信するとステップＳ３２に進み、ＤＳＣ３０１２からの「StartJob」に基づいて、ＰＤプリンタ１０００に対して「StartJob」を発行する。これらステップＳ３１，３２における処理が、前述した記憶装置３０３０における仮想プリントサーバ、仮想プリントクライアントとしての処理に対応している。
【００７１】
これにより前述の図１１の場合と同様にして、ＰＤプリンタ１０００は、ステップＳ２１で、この「StartJob」を受信してステップＳ２２に進み、「StartJob」で指定された要求ＩＤ、ファイルＩＤに対応する画像データを記憶装置３０３に対して要求し（「GetFile」）、ステップＳ２３で画像データの受信待ちに入る。これにより記憶装置３０３０は、ステップＳ１３からステップＳ１４に進み、カメラＩＤ、要求ＩＤ及びファイルＩＤに基づいて、その要求された画像データを検索し、ディスク６５からその画像データを読み出す。そしてステップＳ１５に進み、その読み出した画像データをＰＤプリンタ１０００に送信する。これによりＰＤプリンタ１０００は、ステップＳ２３からステップＳ２４に進み、その画像データを受信し復号してプリントデータに展開し印刷を実行する。
【００７２】
更に図１４は、前述の図９（Ａ）の場合における、ＤＳＣ３０１２、ＰＤプリンタ１０００及び記憶装置３０３０との間の処理を説明するフローチャートである。尚、前述の図１１と同様の動作には同じステップ番号を付している。
【００７３】
この場合もＤＳＣ３０１２の動作は基本的に前述の図１１及び図１３の場合と同様であり、ここではＰＤプリンタ１０００が仮想ストレージサーバ、仮想ストレージクライアントとして機能しているので、そのためのＰＤプリンタ１０００による処理（ステップＳ４１乃至Ｓ４３）の部分だけが、前述のフローチャートと異なっている。
【００７４】
即ち、プリンタ装置１０００は、ステップＳ４１で、ＤＳＣ３０１２より送信された「GetFileList」、「GetThumb」を受信すると、記憶装置３０３０に対して、そのコマンドを送出して画像ファイルリスト及びサムネイル画像を要求する。これに応答して記憶装置３０３０から応答があるとステップＳ４２からステップＳ４３に進み、その受信したファイルリスト及びサムネイル画像（要求ＩＤを含む）をＤＳＣ３０１２に送信する。これによりＤＳＣ３０１２で、ユーザが印刷したい画像を選択してプリント指示を行う処理は前述の図１１のフローチャートと同様であるため、その説明を省略する。
【００７５】
［実施の形態２］
図１５は、本発明の実施の形態２においてＰＤプリンタ１０００、ＤＳＣ３０１２及びディスプレイ（例えばテレビジョン受像機）３０４０とをＵＳＢインターフェースで接続した場合の例を示す図である。尚、図１５の例では、それぞれが２つのＵＳＢインターフェースを使用して互いに接続されている。また図において、「ＰＳ」はプリントサーバ、「ＰＣ」はプリントクライアント、「ＳＣ」はストレージクライアント、「ＳＳ」はストレージサーバ、「ＤＳ」は表示（ディスプレイ）サーバ、そして「ＤＣ」は表示クライアントをそれぞれ示しており、この図１５の例では、ユーザがディスプレイ３０４０を操作して、ＤＳＣ３０１２に記憶されている画像データを指定してディスプレイ３０４０に表示させると共に、ＰＤプリンタ１０００により印刷させる場合を示している。
【００７６】
この場合は、まずディスプレイ３０４０からＤＳＣ３０１２に対して「GetFileList」，「GetThumb」コマンドを送出して、ＤＳＣ３０１２のメモリカードに記憶されている画像ファイルのリスト及びそのサムネイル画像を要求する。これによりＤＳＣ３０１２から画像ファイルリスト及びサムネイル画像（要求ＩＤを含む）がディスプレイ３０４０に送られて画面に表示される。そして、ユーザがディスプレイ３０４０のＵＩ（例えばリモコン等）を使用して、インディスク画像の中から表示したい画像を選択する。ここでは既に取得済みのサムネイル画像を拡大して表示する事とするが、より良い画質で表示したい場合には「GetFile」で表示したい画像の元ファイルを取得して表示しても良い。
【００７７】
一方、ＤＳＣ３０１２も液晶ディスプレイを持ち、ユーザに対して表示情報を提供する事が出来、表示サービスを外部機器に対して提供する。この液晶ディスプレイでの表示に対しては、表示クライアントであるディスプレイ３０４０から所定のファイルＩＤを記述した「StartJob」を表示サーバであるＤＳＣ３０１２に対して発行する事で、所定画像の表示要求を行う事が出来る（現在ユーザがディスプレイ３０４０のＵＩを使用して選択した画像等）。こうする事で、ＤＳＣ３０１２がシステムの一部として動作している事をユーザに明示出来、またディスプレイ３０４０上での表示とＤＳＣ３０１２上での表示の同期を取る事が出来る。
【００７８】
上記「StartJob」で表示要求する内容は所定のファイルＩＤで示される画像のみでなく、スクリプト中に記述された文字列であっても、所定のコードに対応付けられた表示記号等であっても良い。（「現在接続中でケーブルを抜かない様に」や「現在印刷中」等のメッセージやエラー発生を示す記号等）
一方、ディスプレイ３０４０の画面に表示されたインデックス画像を参照してＰＤプリンタ１０００に対して印刷を指示すると、その印刷したい画像を特定するファイルＩＤと印刷開始を指示する「StartJob」コマンドが、ディスプレイ３０４０からＰＤプリンタ１０００に送信される。これによりＰＤプリンタ１０００は、その印刷指示されたファイルＩＤと要求ＩＤとに基づいてＤＳＣ３０１２に対して「GetFile」により、その画像データを要求する。これによりＤＳＣ３０１２から、その指定した画像データがＰＤプリンタ１０００に送信され、ＰＤプリンタ１０００により印刷される。
【００７９】
図１６は、本発明の実施の形態２に係るディスプレイ３０４０の構成を説明するブロック図である。
【００８０】
同図において、７０はディスプレイ３０４０全体の制御を司るＣＰＵであり、７１はＣＰＵ７０の処理手順（ファームウェア）を記憶しているＲＯＭである（但し、ファームウェアは適宜バージョンアップが行われることを想定し、書き込み可能な不揮発性メモリ、例えばフラッシュメモリで構成される）。７２はＣＰＵ７０のワークエリアとして使用されるＲＡＭである。７３は、実施の形態２に係るＰＤプリンタ１０００と接続するためのＵＳＢインターフェース（ＵＳＢのスレーブ側）である。また後述するように、更にＵＳＢインターフェース６７を備えて、このＵＳＢインターフェースを介して直接ＤＳＣ３０１２に接続するように構成されていてもよい。７４はディスプレイ３０４０コントローラで、表示部７５への画像表示を制御している。
【００８１】
図１７（Ａ）は、実施の形態２においてＰＤプリンタ１０００、ＤＳＣ３０１２及びディスプレイ３０４０とをＵＳＢインターフェースで接続した場合の他の例を示す図である。尚、図１７（Ｂ）の例では、ＰＤプリンタ１０００はＵＳＢのホストであり、ＵＳＢハブを介してＤＳＣ３０１２とディスプレイ３０４０が接続されている。また図において、「ＰＳ」はプリントサーバ、「ＰＣ」はプリントクライアント、「ＳＣ」はストレージクライアント、「ＳＳ」はストレージサーバ、「ＶＳＳ」は仮想ストレージサーバ、「ＶＳＣ」は仮想ストレージクライアント、「ＤＳ」は表示サーバ、「ＤＣ」は表示クライアント、「ＶＤＳ」は仮想表示サーバをそれぞれ示しており、この図１７（Ａ）の例では、ユーザがディスプレイ３０４０２を操作して、ＤＳＣ３０１２に記憶されている画像データを指定してディスプレイ３０４０及びＤＳＣ３０１２上の液晶ディスプレイに表示させたり、或いはＰＤプリンタ１０００により印刷させる場合を示している。
【００８２】
まず、ディスプレイ３０４０からＰＤプリンタ１０００に対して「GetFileList」，「GetThumb」コマンドを送出して、ＤＳＣ３０１２に記憶されている画像ファイルのリスト及びそのサムネイル画像を要求する。この場合、ＰＤプリンタ１０００は仮想ストレージサーバとして機能している。そして次に、ＰＤプリンタ１０００は仮想ストレージクライアントとして機能し、ＤＳＣ３０１２に対して「GetFileList」，「GetThumb」コマンドを送出して、ＤＳＣ３０１２に対して、そのメモリカード４０に記憶されている画像データのファイルリスト及びサムネイル画像を要求する。これにより、ＤＳＣ３０１２から画像ファイルリスト及びサムネイル画像（要求ＩＤを含む）がＰＤプリンタ１０００に送られると、ＰＤプリンタ１０００は、そのリスト及びサムネイル画像をディスプレイ３０４０に送信する。これによりディスプレイ３０４０の表示部７５にインデックス画像が表示される。そして、ユーザがディスプレイ３０４０のＵＩ（例えばリモコン等）を使用して、表示したい画像を選択する。ここでは既に取得済みのサムネイル画像を拡大して表示する事とするが、より良い画質で表示したい場合には上記「GetFileList」、「GetThumb」と同様にＰＤプリンタ１０００経由でＤＳＣ３０１２へ「GetFile」を発行して表示したい画像の元ファイルを取得して表示しても良い。ＤＳＣ３０１２上の液晶ディスプレイに所定の画像を表示させる場合には、ディスプレイ３０４０からＰＤプリンタ１０００に対して所定のファイルＩＤを記述した「StartJob」コマンドを送出して、ＤＳＣ３０１２に記憶されている画像ファイルの表示を要求する。この場合、ＰＤプリンタ１０００は仮想表示サーバとして機能している。そして次に、ＰＤプリンタ１０００は仮想表示クライアントとして機能し、ＤＳＣ３０１２に対して「StartJob」コマンドを送出して、ＤＳＣ３０１２に対して、そのメモリカード４０に記憶されている画像データの表示要求する。表示サーバであるＤＳＣ３０１２は、そのメモリカード４０に記憶されている画像データをＤＳＣ３０１２上の液晶ディスプレイ上に表示する。
【００８３】
一方、ディスプレイ３０４０にインデックス画像が表示された状態で印刷が指示されると、「StartJob」がディスプレイ３０４０からＰＤプリンタ１０００に送られる。これによりＰＤプリンタ１０００は、ストレージクライアントとして動作し、ＤＳＣ３０１２に対して、その印刷が指示された画像データを要求ＩＤと共に要求する（「GetFile」）。こうして印刷が指示された画像データが得られると、ＰＤプリンタ１０００はその画像データに基づいて画像を印刷する。
【００８４】
図１７（Ｂ）は、図１７（Ａ）に示す、ＰＤプリンタ１０００、ＤＳＣ３０１２及びディスプレイ３０４０のＵＳＢ接続を説明する図で、ここではＰＤプリンタ１０００がホストで、ＤＳＣ３０１２及びディスプレイ３０４０は共にスレーブに設定されている。
【００８５】
また図１７（Ａ）に示すＰＤプリンタ１０００、ＤＳＣ３０１２及び記憶装置３０３０のＵＳＢ接続の変形例としては、ＤＳＣ３０１２とＰＤプリンタ１０００とのＵＳＢ接続ではＰＤプリンタ１０００がホストであり、ＰＤプリンタ１０００とディスプレイ３０４０とのＵＳＢ接続では、ディスプレイ３０３０はＵＳＢのホストであってもよい。
【００８６】
図１８（Ａ）は、実施の形態２においてＰＤプリンタ１０００、ＤＳＣ３０１２及びディスプレイ３０４０とをＵＳＢインターフェースで接続した場合の更に他の例を示す図である。尚、図１８（Ａ）及び１８（Ｂ）では、図１８（Ｂ）に示すように、ＤＳＣ３０１２とディスプレイ３０４０とのＵＳＢ接続ではディスプレイ３０４０がホストであり、ＰＤプリンタ１０００とディスプレイ３０４０とのＵＳＢ接続では、ＰＤプリンタ１０００はＵＳＢのホストである。また図１８（Ａ）における「ＰＳ」等の表記は前述した例と同様である。図１８（Ａ）の例では、ユーザがディスプレイ３０４０を操作して、ＤＳＣ３０１２に記憶されている画像データを指定してディスプレイ３０４０及びＤＳＣ３０１２上の液晶ディスプレイに表示したり、或いはＰＤプリンタ１０００により印刷させる場合を示している。
【００８７】
まずディスプレイ３０４０からＤＳＣ３０１２に対して「GetFileList」，「GetThumb」コマンドを送出して、ＤＳＣ３０１２のメモリカード４０に記憶されている画像ファイルのリスト及びそのサムネイル画像を要求する。これにより、画像ファイルのリスト及びサムネイル画像（要求ＩＤを含む）がＤＳＣ３０１２からディスプレイ３０４０に送られ、ユーザにより表示したい画像が選択される。ここでは既に取得済みのサムネイル画像を拡大して表示する事とするが、より良い画質で表示したい場合には上記「GetFileList」、「GetThumb」と同様にＤＳＣ３０１２へ「GetFile」を発行して表示したい画像の元ファイルを取得して表示しても良い。
【００８８】
ＤＳＣ３０１２上の液晶ディスプレイに所定の画像を表示させる場合には、ディスプレイ３０４０からＤＳＣ３０１２に対して所定のファイルＩＤを記述した「StartJob」コマンドを送出して、そのメモリカード４０に記憶されている画像データの表示を要求する。表示サーバであるＤＳＣ３０１２は、そのメモリカード４０に記憶されている画像データをＤＳＣ３０１２上の液晶ディスプレイ上に表示する。
【００８９】
また印刷を行う場合には、サムネイル画像がＤＳＣ３０１２からディスプレイ３０４０に送られ、ユーザにより印刷したい画像が選択されると、「StartJob」コマンドがディスプレイ３０４０からＰＤプリンタ１０００に対して発行される。これにより、ＰＤプリンタ１０００は、ストレージクライアントとしてストレージの仮のサーバであるディスプレイ３０４０に対して画像データを要求する。これによりディスプレイ３０４０は、ストレージクライアントとして、サーバであるＤＳＣ３０１２に対して、その選択された画像データを要求ＩＤと共に要求する（「GetFile」）。これによりＤＳＣ３０１２から画像データがディスプレイ３０４０に送信され、更にディスプレイ３０４０からＰＤプリンタ１０００に対してその画像データが送信されて、その画像の印刷が実行される。
【００９０】
尚、この実施の形態２においても、前述の実施の形態１に係る図１１乃至図１４のフローチャートに示す処理と同様の処理で画像データのやり取りや印刷及び表示を行うことができるが、その説明は基本的に前述した説明に表示処理が加わるだけで、前述のフローチャートで示す処理と同様であるため、その説明を省略する。
【００９１】
図１９は、前述の図８に示す形態におけるＤＳＣ３０１２，ＰＤプリンタ１０００及び記憶装置３０３０間でのコマンドのやり取りを説明する図で、ストレージ及びプリントにおけるサーバ，クライアント表記は前述の図８と同じである。
【００９２】
図２０は、前述の図９（Ａ）及び９（Ｂ）に示す形態におけるＤＳＣ３０１２，ＰＤプリンタ１０００及び記憶装置３０３０間でのコマンドのやり取りを説明する図で、ストレージ及びプリントにおけるサーバ，クライアント表記は前述の図９（Ａ）及び９（Ｂ）と同じである。
【００９３】
更に図２１は、前述の図１０（Ａ）及び１０（Ｂ）に示す形態におけるＤＳＣ３０１２，ＰＤプリンタ１０００及び記憶装置３０３０間でのコマンドのやり取りを説明する図で、ストレージ及びプリントにおけるサーバ，クライアント表記は前述の図１０（Ａ）及び１０（Ｂ）と同じである。
【００９４】
次に、図１９〜図２１に記述された各コマンドについて説明する。
【００９５】
（Ａ）［ConfigurePrintService:］
プリントクライアント（ＰＣ）からプリントサーバ（ＰＳ）に対してプリントサービスの提供を要求する。
【００９６】
［Request Script:］
プリントクライアント（ＰＣ）がプリントサーバ（ＰＳ）に対して送信するスクリプト（Script）である。
＜Input＞
＜ConfigurePrintService＞
＜vendorName＞PCVN＜/vendorName＞
＜productName＞PCPN＜/productName＞
＜/ConfigurePrintService＞
＜/Input＞
ここで、「Input」はRequestである事を示すタグ、「vendorName」はプリントクライアント機器のベンダー名を記述する。「productName」は、プリントクライアント機器の機器名を記述する。
【００９７】
［Response Script:］
プリントサーバ（ＰＳ）がプリントクライアント（ＰＣ）に対して返答するScriptである。
＜Output＞
＜ConfigurePrintService＞
＜printServiceAvailable＞True＜/printServiceAvailable＞
＜vendorName＞PSVN＜/vendorName＞
＜productName＞PSPN＜/productName＞
＜/ConfigurePrintService＞
＜/Output＞
ここで「Output」はResponseである事を示すタグ、「printServiceAvailable」は、プリントサービス許可であればTrue、不許可であればFalseを記述する。「vendorName」は、プリントサーバ機器のベンダー名を記述する。「productName」は、プリントサーバ機器の機器名を記述する。
【００９８】
（Ｂ）［ConfigureStorageService:］
ストレージクライアント（ＳＣ）からストレージサーバ（ＳＳ）に対してストレージサービスの提供を要求する。
【００９９】
［Request Script:］
ストレージクライアント（ＳＣ）がストレージサーバ（ＳＳ）に対して送信するScriptである。
＜Input＞
＜ConfigureStorageService＞
＜vendorName＞SCVN＜/vendorName＞
＜productName＞SCPN＜/productName＞
＜/ConfigureStorageService＞
＜/Input＞
ここで「Input］は、Requestである事を示すタグ、「vendorName」は、ストレージクライアント機器のベンダー名を記述する。「productName］は、ストレージクライアント機器の機器名を記述する。
【０１００】
［Response Script:］
ストレージサーバ（ＳＳ）がストレージクライアント（ＳＣ）に対して返答するScriptである。
＜Output＞
＜ConfigureStorageService＞
＜StorageServiceAvailable＞True＜/StorageServiceAvailable＞
＜vendorName＞SSVN＜/vendorName＞
＜productName＞SSPN＜/productName＞
＜/ConfigureStorageService＞
＜/Output＞
ここで「Output］は、Responseである事を示すタグ、「StorageServiceAvailable」は、ストレージサービス許可であればTrue、不許可であればFalseを記述する。「vendorName］は、ストレージサーバ機器のベンダー名を記述する。「productName」は、ストレージサーバ機器の機器名を記述する。
【０１０１】
（Ｃ）GetFileList: (Storage Service Operation)
ストレージクライアント（ＳＣ）からストレージサーバ（ＳＳ）に対してストレージサーバの管理する全ファイルのIDリストを要求する。
【０１０２】
［Request Script:］
ストレージクライアント（ＳＣ）がストレージサーバ（ＳＳ）に対して送信するScriptである。
＜Input＞
＜GetFileList/＞
＜/Input＞
ここで「Input」は、Requestである事を示すタグである。
【０１０３】
［Response Script:］
ストレージサーバ（ＳＳ）がストレージクライアント（ＳＣ）に対して返答するScriptである。
＜Output＞
＜GetFileList＞
＜fileIDs＞0000 0001 0002 0003＜/fileIDs＞
＜requestID＞0000＜/requestIDs＞
＜/GetFileList＞
＜/Output＞
ここで「Output」は、Responseである事を示すタグ、「fileIDs」は、ストレージサーバが管理している全ファイルのファイルＩＤを列挙したもので、本例は全部で４つのファイルがあり、それぞれファイルＩＤ「0000」，「0001」、「0002」、「0003」が付与されている事を示す。
【０１０４】
また、「requestID」はファイルリストとファイルＩＤの整合性を取る為に付与されているＩＤで、実施の形態中で「要求ＩＤ」として記述されているものである。
【０１０５】
（Ｄ）GetThumb: (Storage Service Operation)
ストレージクライアント（ＳＣ）からストレージサーバ（ＳＳ）に対して、ファイルＩＤで指定したストレージサーバ（ＳＳ）が管理するファイルに対応するサムネイル画像データを要求する。
【０１０６】
［Request Script:］
ストレージクライアント（ＳＣ）がストレージサーバ（ＳＳ）に対して送信するScriptである。
＜Input＞
＜GetThumb＞
＜requestID＞0000＜/requestIDs＞
＜fileID＞0001＜fileID＞
＜/GetThumb＞
＜/Input＞
ここで「Input」は、Requestである事を示すタグ、「fileID」は、ストレージクライアントが要求するサムネイル画像データの元ファイルのファイルＩＤである。
【０１０７】
また、「requestID」はファイルリストとファイルＩＤの整合性を取る為に付与されているＩＤで、実施の形態中で「要求ＩＤ」として記述されているものである。
【０１０８】
［Response Script］
ストレージサーバ（ＳＳ）がストレージクライアント（ＳＣ）に対して返答するScriptである。
＜Output＞
＜GetThumb/＞
＜/Output＞
ここで「Output」は、Responseである事を示すタグである。
【０１０９】
（Ｅ）GetFile: (Storage Service Operation)
ストレージクライアント（ＳＣ）からストレージサーバ（ＳＳ）に対して、ファイルＩＤで指定したストレージサーバ（ＳＳ）が管理するファイルデータを要求する。
【０１１０】
［Request Script］
ストレージクライアント（ＳＣ）がストレージサーバ（ＳＳ）に対して送信するScriptである。
＜Input＞
＜GetFile＞
＜requestID＞0000＜/requestIDs＞
＜fileID＞0001＜fileID＞
＜/GetFile＞
＜/Input＞
ここで「Input」は、Requestである事を示すタグ、「fileID」は、ストレージクライアントが要求するファイルデータのファイルＩＤである。
【０１１１】
また、「requestID」はファイルリストとファイルＩＤの整合性を取る為に付与されているＩＤで、実施の形態中で「要求ＩＤ」として記述されているものである。
【０１１２】
［Response Script:］
ストレージサーバ（ＳＳ）がストレージクライアント（ＳＣ）に対して返答するScriptである。
＜Output＞
＜GetFile/＞
＜/Output＞
ここで「Output」は、Responseである事を示すタグである。
【０１１３】
（Ｆ）StartJob: (Print Service Operation)
プリントクライアント（ＰＣ）からプリントサーバ（ＰＳ）に対して、ファイルＩＤで指定した、ストレージサーバが管理しているファイルデータを記録紙に印刷するように要求する。この印刷方法はプリントクライアントから特に指定の無い項目はプリントサーバが任意に設定する。
【０１１４】
［Request Script:］
プリントクライアント（ＰＣ）がプリントサーバ（ＰＳ）に対して送信するScriptである。
＜Input＞
＜StartJob＞
＜requestID＞0000＜/requestIDs＞
＜fileIDs＞0001 0002＜fileIDs＞
＜/StartJob ＞
＜/Input＞
ここで「Input」は、Requestである事を示すタグ、「fileIDs」は、プリントクライアントが印刷要求するファイルのファイルＩＤである。本例では、ファイルＩＤ「0001」及び「0002」の２種類のファイルを印刷するようにを要求している。
【０１１５】
また、「requestID」はファイルリストとファイルＩＤの整合性を取る為に付与されているＩＤで、実施の形態中で「要求ＩＤ」として記述されているものである。
【０１１６】
［Response Script:］
プリントサーバ（ＰＳ）がプリントクライアント（ＰＣ）に対して返答するScriptである。
＜Output＞
＜StartJob/＞
＜/Output＞
ここで「Output」は、Responseであることを示すタグである。
【０１１７】
尚、上記実施の形態では、機器間の接続に用いる汎用インターフェースとしてＵＳＢを用いて説明しているが、例えば図７に記載のＢｌｕｅｔｏｏｔｈやＩＥＥＥ８０２．１１系、赤外線通信等の無線、10/100Base-TやＩＥＥＥ１３９４等の有線の他のインタフェースを用いた場合であっても有効である。その際にも図８の構成及び図９の構成のいずれの構成も取り得る。
【０１１８】
特にＩＥＥＥ８０２．１１系無線や10/100Base-T等を用いたネットワーク接続の場合には、「requestID」の機能として、ファイルリストとファイルＩＤの整合性を取るためだけでなく、認証の機能も併せ持つことが可能である。つまり、図８において、カメラ３０１２のストレージクライアント（ＳＣ）が何らかの既存の手法によって外部の記憶装置３０３０のストレージサーバ（ＳＳ）の正規のアクセス権を得て、ストレージサーバ（ＳＳ）に保存されている画像の「ファイルＩＤ」及び「requestID」を取得する。そして、カメラ３０１２のプリントクライアント（ＰＣ）が外部のプリンタ１０００のプリントサーバ（ＰＳ）に対して印刷を希望する画像の「ファイルＩＤ」及び「requestID」を通知する。この印刷希望を受け取ったプリンタ１０００のプリントサーバ（ＰＳ）は、印刷を希望する画像の「ファイルＩＤ」及び「requestID」を用いて外部の記憶装置３０３０のストレージサーバ（ＳＳ）に対して画像データを要求する。ここで記憶装置３０３０のストレージサーバは、「requestID」が事前に自分が正規のアクセス権を持ったストレージクライアントに対して発行した正規の「requestID」かどうかを判別し、正規だった場合にのみ画像転送要求を許可し、正規でなかった場合には画像転送を拒否する。こうすることにより、ネットワーク上に存在する不特定多数のストレージクライアントからの画像転送要求に対して転送の可否を判断することが可能となる。この方法を用いれば、カメラ３０１２のストレージクライアント（ＳＣ）と記憶装置３０３０のストレージサーバ（ＳＳ）間で行う認証方法が最新の方法に更新された場合であっても、プリンタ１０００のストレージクライアント（ＳＣ）を更新する必要がないというメリットがある。
【０１１９】
尚、画像出力要求、印刷要求を発行する場合に、送信すべきファイルを指定する情報とリストの識別ＩＤとをともに用いることによって、記憶装置の内容が更新された場合でも、ある機器が受け取ったリストの内容を活用してエラー処理の発生を防止することが可能になる。これは、特に３つ以上の機器間でファイル指定情報をやり取りする場合に大変有用であるが、２機器間でも構わない。なぜなら、例えばリストを受信した後に、他のユーザが強制的に一方の機器内の記憶装置の情報を更新することも有り得るからである。
【０１２０】
［その他の実施の形態］
なお本発明は、複数の機器（例えばホストコンピュータ、インターフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【０１２１】
また、本発明の目的は、前述した実施形態の機能(カメラ側や記憶装置で行われる処理、プリンタ側で行われる各種印刷処理)を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１２２】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１２３】
以上説明したように本実施の形態によれば、ＵＳＢにより接続された機器間でデータのやり取りを行うことができる。
【０１２４】
また、ファイルリストで要求されたファイルＩＤと、実際にそのファイルＩＤに対応する画像データとの対応を確実に取ることができる。
【０１２５】
また、ＵＳＢ接続された機器間でスクリプトによりデータをやり取りすることで、ＵＳＢ接続のホスト・スレーブ機器間で任意の方向にデータを転送して、データのやり取りを行うことができる。
【図面の簡単な説明】
【０１２６】
【図１】本発明の実施の形態に係るＰＤプリンタ装置の概観斜視図である。
【図２】本実施の形態に係るＰＤプリンタ装置の操作パネルの概観図である。
【図３】本実施の形態に係るＰＤプリンタ装置の制御に係る主要部の構成を示すブロック図である。
【図４】本実施の形態に係るＰＤプリンタ装置のＡＳＩＣの構成を示すブロック図である。
【図５】本実施の形態に係るＤＳＣの基本構成を説明するブロック図である。
【図６】本実施の形態に係る記憶装置の基本構成を説明するブロック図である。
【図７】本実施の形態に係るＰＤプリンタ装置とＤＳＣにおけるソフトウェア構成を説明する図である。
【図８】本発明の実施の形態１に係るＰＤプリンタ装置、ＤＳＣ及び記憶装置とをＵＳＢインターフェースで接続した場合の例を示す図である。
【図９】実施の形態１に係るＰＤプリンタ装置にＤＳＣと記憶装置とをＵＳＢインターフェースで接続した場合の例を説明する図である。
【図１０】実施の形態１に係る記憶装置にＰＤプリンタ装置とＤＳＣとをＵＳＢインターフェースで接続した場合の例を説明する図である。
【図１１】図８の接続例におけるＰＤプリンタ装置、記憶装置及びＤＳＣの動作を説明するフローチャートである。
【図１２】記憶装置で管理されているカメラＩＤ、要求ＩＤ及び画像データ名との関連を説明する図である。
【図１３】図１０の接続例におけるＰＤプリンタ装置、記憶装置及びＤＳＣの動作を説明するフローチャートである。
【図１４】図９の接続例におけるＰＤプリンタ装置、記憶装置及びＤＳＣの動作を説明するフローチャートである。
【図１５】本発明の実施の形態２に係るＰＤプリンタ装置、ＤＳＣ及び記憶装置とをＵＳＢインターフェースで接続した場合の例を示す図である。
【図１６】実施の形態２に係るディスプレイの構成を説明するブロック図である。
【図１７】実施の形態２に係るＰＤプリンタ装置にＤＳＣとディスプレイとをＵＳＢインターフェースで接続した場合の例を説明する図である。
【図１８】実施の形態２に係るディスプレイにＰＤプリンタ装置とＤＳＣとをＵＳＢインターフェースで接続した場合の例を説明する図である。
【図１９】図８に示す形態におけるＤＳＣ，ＰＤプリンタ装置及び記憶装置間でのコマンドのやり取りを説明する図である。
【図２０】図９に示す形態におけるＤＳＣ，ＰＤプリンタ装置及び記憶装置間でのコマンドのやり取りを説明する図である。
【図２１】図１０に示す形態におけるＤＳＣ，ＰＤプリンタ装置及び記憶装置間でのコマンドのやり取りを説明する図である。
【図１】
2004328725.tif 000003
【図２】
2004328725.tif 000004
【図３】
2004328725.tif 000005
【図４】
2004328725.tif 000006
【図５】
2004328725.tif 000007
【図６】
2004328725.tif 000008
【図７】
2004328725.tif 000009
【図８】
2004328725.tif 000010
【図９】
2004328725.tif 000011
【図１０】
2004328725.tif 000012
【図１１】
2004328725.tif 000013
【図１２】
2004328725.tif 000014
【図１３】
2004328725.tif 000015
【図１４】
2004328725.tif 000016
【図１５】
2004328725.tif 000017
【図１６】
2004328725.tif 000018
【図１７】
2004328725.tif 000019
【図１８】
2004328725.tif 000020
【図１９】
2004328725.tif 000021
【図２０】
2004328725.tif 000022
【図２１】
2004328725.tif 000023