(57)【要約】【課題】  メモリカードに記憶されている画像の数が非常に多い場合には、コンピュータとデジタルカメラとが論理的に接続されてからユーザに応答するまでの時間が極端に遅くなってしまう。【解決手段】  再生モードで、記憶媒体にアクセスしてその記憶しているファイルの情報をキャッシュし（Ｓ２）、デジタルカメラとコンピュータとが物理的に接続されて通信モードになると、そのコンピュータが最終的に要求しようとする情報を生成して記憶する（Ｓ５）。この後、コンピュータからのデータ転送要求を受けると、Ｓ５で記憶されている情報を一括してコンピュータに送信する（Ｓ９）。【選択図】  図３
2006086862.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置と通信して前記情報処理装置に接続されている記憶媒体に記憶しているファイル情報を転送する撮像装置であって、
記憶媒体に記憶している画像を再生する再生モードで、当該記憶媒体に記憶されているファイルのファイルエントリをキャッシュメモリにキャッシュするキャッシュ手段と、
所定の通信プロトコルで通信可能に、情報処理装置と接続するインターフェース手段と、
前記インターフェース手段による接続に応じて、前記所定の通信プロトコルで転送するための情報を、前記キャッシュ手段によりキャッシュされたファイルエントリに基づいて生成する転送情報生成手段と、
前記情報処理装置からの要求に応答して、前記転送情報生成手段により生成された情報を前記インターフェース手段により前記情報処理装置に送信させるように制御する送信制御手段と、
を有することを特徴とする撮像装置。
【請求項２】
前記インターフェース手段による接続は、前記撮像装置及び前記情報処理装置との間での通信の物理層の接続であることを特徴とする請求項１に記載の撮像装置。
【請求項３】
前記送信制御手段は、前記転送情報生成手段により生成された前記情報を一括して前記情報処理装置に転送するように制御することを特徴とする請求項１又は２に記載の撮像装置。
【請求項４】
前記送信制御手段は、前記転送情報生成手段による前記情報の生成が完了していない場合には、前記転送情報生成手段による前記情報の生成の完了を待って送信するように制御することを特徴とする請求項３に記載の撮像装置。
【請求項５】
情報処理装置と通信して前記情報処理装置に記憶媒体に記憶しているファイル情報を転送する撮像装置の制御方法であって、
記憶媒体に記憶している画像を再生する再生モードで、当該記憶媒体に記憶されている全てのファイルのファイルエントリをキャッシュメモリにキャッシュするキャッシュ工程と、
所定の通信プロトコルで通信可能に情報処理装置と接続する工程と、
前記接続に応じて、前記所定の通信プロトコルで転送するための情報を、前記キャッシュ工程でキャッシュされたファイルエントリに基づいて生成する転送情報生成工程と、
前記情報処理装置からの要求に応答して、前記転送情報生成工程で生成された情報を前記情報処理装置に送信するように制御する送信制御工程と、
を有することを特徴とする撮像装置の制御方法。
【請求項６】
前記接続は、前記撮像装置及び前記情報処理装置との間での通信の物理層の接続であることを特徴とする請求項５に記載の撮像装置の制御方法。
【請求項７】
前記送信制御工程は、前記転送情報生成工程で生成された前記情報を一括して前記情報処理装置に転送するように制御することを特徴とする請求項５又は６に記載の撮像装置の制御方法。
【請求項８】
前記送信制御工程は、前記転送情報生成工程で前記情報の生成が完了していない場合には、前記転送情報生成工程における前記情報の生成の完了を待って送信するように制御することを特徴とする請求項７に記載の撮像装置の制御方法。
【請求項９】
情報処理装置と撮像装置との間で通信を行って、前記撮像装置の記憶媒体に記憶しているファイル情報を前記情報処理装置に転送する通信システムであって、
前記撮像装置は、
記憶媒体に記憶している画像を再生する再生モードで、当該記憶媒体に記憶されている全てのファイルのファイルエントリをキャッシュメモリにキャッシュするキャッシュ手段と、
所定の通信プロトコルで通信可能に、前記情報処理装置と接続するインターフェース手段と、
前記インターフェース手段による接続に応じて、前記所定の通信プロトコルで転送するための情報を、前記キャッシュ手段によりキャッシュされたファイルエントリに基づいて生成する転送情報生成手段と、
前記情報処理装置からの要求に応答して、前記転送情報生成手段により生成された情報を前記インターフェース手段により前記情報処理装置に送信させるように制御する送信制御手段とを有し、
前記情報処理装置は、前記インターフェース手段による接続に応じて、前記記憶媒体に記憶されているファイルの情報を前記撮像装置に要求するデータ要求手段と、
を有することを特徴とする通信システム。
【請求項１０】
前記インターフェース手段による接続は、前記撮像装置及び前記情報処理装置との間での通信の物理層の接続であることを特徴とする請求項９に記載の通信システム。
【請求項１１】
前記データ要求手段は、前記ファイルの情報を一括して転送するように要求し、
前記送信制御手段は、前記転送情報生成手段により生成された前記情報を一括して前記情報処理装置に転送するように制御することを特徴とする請求項９又は１０に記載の通信システム。
【請求項１２】
前記送信制御手段は、前記データ要求手段によるデータ要求時、前記転送情報生成手段による前記情報の生成が完了していない場合には、前記転送情報生成手段による前記情報の生成の完了を待って送信するように制御することを特徴とする請求項１１に記載の通信システム。
【請求項１３】
請求項５に記載の撮像装置の制御方法を実行することを特徴とするプログラム。
【請求項１４】
請求項１３に記載のプログラムを記憶していることを特徴とする、コンピュータにより読み取り可能な記憶媒体。
【請求項１５】
それぞれのファイルに割り当てたユニークな番号を用いて、記憶媒体に記憶している画像ファイルを一つずつ指定し、前記画像ファイルそれぞれに有する属性情報を送信することが可能な通信プロトコルで通信する画像供給装置であって、
前記記憶媒体に記憶している画像ファイルを再生する際に、前記記憶媒体に記憶されている複数の画像ファイルについて前記属性情報の少なくとも一部と、それぞれの画像ファイルに割り当てる番号とをキャッシュするキャッシュ手段と、
前記情報処理装置と接続するインターフェース手段と、
前記インターフェース手段により、前記情報処理装置と接続したこと応じて、前記キャッシュ手段によりキャッシュされた情報を前記情報処理装置に送信する送信手段と、
を有することを特徴とする画像供給装置。
【請求項１６】
前記送信手段に送信した情報に含まれる、それぞれの画像に割り当てた前記番号に基づく画像送信指示を、前記情報処理装置から受け付ける受付手段を更に有することを特徴とする請求項１５に記載の画像供給装置。
【請求項１７】
それぞれのファイルに割り当てたユニークな番号を用いて、画像供給装置に接続されている記憶媒体に記憶している画像ファイルを一つずつ指定し、前記画像ファイルそれぞれに有する属性情報を取得することが可能な通信プロトコルで通信する情報処理装置であって、
前記画像供給装置と接続するインターフェース手段と、
前記インターフェース手段を介して前記画像供給装置と接続したこと応じて、前記記憶媒体に記憶している複数の画像ファイルについての前記属性情報の少なくとも一部と、それぞれの画像ファイルに割り当てる番号とを含む情報を受信する受信手段と、
、前記受信手段で受信された情報に含まれる、前記複数の画像それぞれに割り当てられた番号を用いて前記画像供給装置に画像の送信要求を送信する送信手段と、
を有することを特徴とする情報処理装置。
【請求項１８】
更に、前記受信手段で受信した情報を解析して、前記記憶媒体内のフォルダ構造を認識する解析手段を有することを特徴とする請求項１７に記載の情報処理装置。
【請求項１９】
それぞれのファイルに割り当てたユニークな番号を用いて、記憶媒体に記憶している画像ファイルを一つずつ指定し、前記画像ファイルそれぞれに有する属性情報を送信することが可能な通信プロトコルで通信する画像供給装置の制御方法であって、
前記記憶媒体に記憶している画像ファイルを再生する際に、前記記憶媒体に記憶されている複数の画像ファイルについて前記属性情報の少なくとも一部と、それぞれの画像ファイルに割り当てる番号とをキャッシュするキャッシュ工程と、
前記情報処理装置と接続するインターフェースを介して前記情報処理装置と接続したこと応じて、前記キャッシュ工程でキャッシュされた情報を前記情報処理装置に送信する送信工程と、
を有することを特徴とする画像供給装置の制御方法。
【請求項２０】
前記送信工程で送信した情報に含まれる、それぞれの画像に割り当てた前記番号に基づく画像送信指示を、前記情報処理装置から受け付ける工程を更に有することを特徴とする請求項１９に記載の画像供給装置の制御方法。
【請求項２１】
それぞれのファイルに割り当てたユニークな番号を用いて、画像供給装置に接続されている記憶媒体に記憶している画像ファイルを一つずつ指定し、前記画像ファイルそれぞれに有する属性情報を取得することが可能な通信プロトコルで通信する情報処理装置の制御方法であって、
インターフェースを介して前記画像供給装置と接続したこと応じて、前記記憶媒体に記憶している複数の画像ファイルについての前記属性情報の少なくとも一部と、それぞれの画像ファイルに割り当てる番号とを含む情報を受信する受信工程と、
、前記受信工程で受信された情報に含まれる、前記複数の画像それぞれに割り当てられた番号を用いて、前記画像供給装置に画像の送信要求を送信する送信工程と、
を有することを特徴とする情報処理装置の制御方法。
【請求項２２】
更に、前記受信工程で受信した情報を解析して、前記記憶媒体内のフォルダ構造を認識する解析工程を有することを特徴とする請求項２１に記載の情報処理装置の制御方法。
【請求項２３】
請求項１９乃至２２のいずれか１項に記載の制御方法を実行することを特徴とするプログラム。
【請求項２４】
請求項２３に記載のプログラムを記憶していることを特徴とする、コンピュータにより読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置との間で通信プロトコルＰＴＰ（Picture Transfer Protocol）に基づいて通信を行って、記憶しているオブジェクトの情報を当該情報処理装置に供給する画像供給装置と撮像装置、情報処理装置及びその制御方法と通信システムに関するものである。
【背景技術】
【０００２】
コンピュータとデジタルカメラとを接続し、互いに通信プロトコルＰＴＰに基づいてデータのやり取りを行う場合、ＰＴＰでは、記憶されている１つのオブジェクト（画像や音声、テキストなどのデータ）の情報をコンピュータが取得するためには、まず[GetObjectInfo]を送信して、その後、Objectデータを受信、Ackを受信するという１シーケンスを行なうことになる。  ここで、[GetObjectInfo]で取得できる情報は、そのobjectそのものではなく、ファイル名や、ファイルサイズ、ディレクトリ構造、ファイルの形式など、そのobjectの属性情報を取得できる。
つまり、あるobjectのデータを取得するには、[GetObjectInfo]で取得する属性情報を取得し、その後にデータ本体を取得することが行われる。
【０００３】
一方、記憶媒体の複数のobjectをやり取りする場合には、まず始めにコンピュータのＯＳは、デジタルカメラが保持している記憶媒体（メモリカード等）のフォルダ構成を知るために、その記憶媒体に記憶されている全画像ファイルや音声やテキストなどのデータに関する属性情報と、そのフォルダ構成の情報を要求する。よって、デジタルカメラに記憶されている画像や音声等のデータのすべてのオブジェクトについての属性情報を取得するためには、その記憶されているオブジェクトの数分の上記コマンドのやり取りを繰り返し実行することになる。
【特許文献１】特開２００４−１５２３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記説明したように、ＰＴＰを用いてコンピュータのＯＳがデジタルカメラに記憶されている全ての画像の情報を取得するためには、少なくともその記憶されている画像の数分、上述したの通信が必要となる。
つまり、デジタルカメラが記憶している全ての画像の情報を取得するのに要する時間は、単純に、その記憶されている画像の数に比例することがわかる。
特に、画像受信側（例えばPC）では、上述属性情報などの情報を取得してフォルダ構成を再現するまで、PTP上でのデータの送受信が出来ないとなると、そのフォルダ構成やディレクトリ構成を再現するまでの時間が長くなる。
つまり、デジタルカメラに大容量のメモリカードが装着されていて、そのメモリカードに記憶されている画像やその他のオブジェクト（データ）の数が非常に多い場合には、コンピュータとデジタルカメラとが論理的に接続されてからユーザに応答するまでの時間が極端に遅くなってしまう。このためユーザビリティが悪くなり、これがＰＴＰの通信の弱点にもなっていた。
【０００５】
本発明は上記問題点に鑑みてなされたもので、本願発明の特徴は、情報処置装置との通信が確立する前に、記憶媒体にアクセスして予め記憶媒体に記憶されている情報をキャッシュしておくことにより、情報処置装置に接続されてからユーザに応答するまでの時間を短縮できる画像供給装置と撮像装置、情報処理装置及びその制御方法と通信システムを提供することにある。
【課題を解決するための手段】
【０００６】
本発明の一態様に係る撮像装置は以下のような構成を備える。即ち、
情報処理装置と通信して前記情報処理装置に接続されている記憶媒体に記憶しているファイル情報を転送する撮像装置であって、
記憶媒体に記憶している画像を再生する再生モードで、当該記憶媒体に記憶されているファイルのファイルエントリをキャッシュメモリにキャッシュするキャッシュ手段と、
所定の通信プロトコルで通信可能に、情報処理装置と接続するインターフェース手段と、
前記インターフェース手段による接続に応じて、前記所定の通信プロトコルで転送するための情報を、前記キャッシュ手段によりキャッシュされたファイルエントリに基づいて生成する転送情報生成手段と、
前記情報処理装置からの要求に応答して、前記転送情報生成手段により生成された情報を前記インターフェース手段により前記情報処理装置に送信させるように制御する送信制御手段とを有することを特徴とする。
【０００７】
本発明の一態様に係る撮像装置の制御方法は以下のような工程を備える。即ち、
情報処理装置と通信して前記情報処理装置に記憶媒体に記憶しているファイル情報を転送する撮像装置の制御方法であって、
記憶媒体に記憶している画像を再生する再生モードで、当該記憶媒体に記憶されている全てのファイルのファイルエントリをキャッシュメモリにキャッシュするキャッシュ工程と、
所定の通信プロトコルで通信可能に情報処理装置と接続する工程と、
前記接続に応じて、前記所定の通信プロトコルで転送するための情報を、前記キャッシュ工程でキャッシュされたファイルエントリに基づいて生成する転送情報生成工程と、
前記情報処理装置からの要求に応答して、前記転送情報生成工程で生成された情報を前記情報処理装置に送信するように制御する送信制御工程と、
を有することを特徴とする。
【０００８】
本発明の一態様に係る通信システムは以下のような構成を備える。即ち、
情報処理装置と撮像装置との間で通信を行って、前記撮像装置の記憶媒体に記憶しているファイル情報を前記情報処理装置に転送する通信システムであって、
前記撮像装置は、
記憶媒体に記憶している画像を再生する再生モードで、当該記憶媒体に記憶されている全てのファイルのファイルエントリをキャッシュメモリにキャッシュするキャッシュ手段と、
所定の通信プロトコルで通信可能に、前記情報処理装置と接続するインターフェース手段と、
前記インターフェース手段による接続に応じて、前記所定の通信プロトコルで転送するための情報を、前記キャッシュ手段によりキャッシュされたファイルエントリに基づいて生成する転送情報生成手段と、
前記情報処理装置からの要求に応答して、前記転送情報生成手段により生成された情報を前記インターフェース手段により前記情報処理装置に送信させるように制御する送信制御手段とを有し、
前記情報処理装置は、前記インターフェース手段による接続に応じて、前記記憶媒体に記憶されているファイルの情報を前記撮像装置に要求するデータ要求手段と、
を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、撮像装置と情報処置装置とが接続されてから、情報処理装置のユーザに応答するまでの時間を短縮できる。
【００１０】
また、情報処理装置から撮像装置の記憶媒体に記憶されているファイルの情報が要求された場合に、その要求に速やかに応答して、当該情報をその情報処理に送信することができる。
【発明を実施するための最良の形態】
【００１１】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、この実施の形態では、デジタルカメラとコンピュータとを、例えばＵＳＢ等の汎用インターフェースで接続し、デジタルカメラとコンピュータとがＰＴＰにより通信する例で説明する。しかし、本発明のインターフェース及び通信プロトコルなどは本実施の形態に限定されるものでない。
【００１２】
図１は、本実施の形態に係るデジタルカメラ（ＤＳＣ）とコンピュータとを有するシステムの構成を示すブロック図である。
【００１３】
ＰＴＰ通信を有するデジタルカメラ１００と、ＰＴＰ通信可能なコンピュータ１０１とが汎用インターフェース１０２（例えばＵＳＢ）を介して接続されている。この汎用インターフェース１０２は、ＰＴＰでの通信が可能な通信インターフェースであり、有線に限定されるものでなく、例えばブルーツースなどの無線通信インターフェースでも良い。このデジタルカメラ１００は、通信インターフェース１０２を介して、コンピュータ１０１との接続を検知すると通信モードに遷移する。デジタルカメラ１００におけるそれ以前のモードは再生モードに設定されている。尚、コンピュータ１０１には、ＰＴＰにより通信することができるアプリケーション（ＯＳ機能含む）がインストールされている。
【００１４】
まず最初にデジタルカメラ１００の構成を説明する。
【００１５】
被写体からの光束が光学系２０１を通して撮像素子２０２に照射され、その映像が電荷として撮像素子２０２に保持される。こうして撮像素子２０２で蓄積された電荷が撮像プロセス部２０３で画像信号に変換される。この撮像プロセス部２０３から出力された画像信号は、Ａ／Ｄ変換器２０４によりデジタル信号に変換され、データバス２０５を介してＲＡＭ２１０に保存される。
【００１６】
中央処理プロセス部２１３は、画像処理部２０７（ホワイトバランス、シャープ、ぼかし、カラーバランス、レベル補正等）、圧縮伸張部２０８（ＪＰＥＧの伸張等）、表示制御部２０９（表示器２１７へのＵＩの描画）、記録再生制御部２１１（記憶媒体２１８へのＩ／Ｏ制御）、通信制御部２１２（通信器２１９へのデータのＩ／Ｏ制御）、中央制御部（ＣＰＵ）２１５（各制御部を統括制御している）を備えている。システム制御部２１４は、データバス２０５と接続されており、操作器２１６によるユーザによって行われる操作に基づく制御を行う。表示器２１７は、ユーザの操作により要求された画像を、表示制御部２０９の制御の下で表示する。記憶媒体２１８は、ＲＡＭ２１０に保存された画像（ＪＰＥＧ画像など）を記録再生制御部２１１を介して格納する。この記憶媒体２１８は、カメラ本体に脱着可能な媒体（例えばメモリカード等）でもあっても良く、或はカメラ本体に組み込まれた記憶媒体のいずれでも良く、デジタルカメラ１００に電源が投入されていない状態でも記憶を保持することが可能な不揮発の記憶媒体である。通信器２１９は、無線、有線どちらでもかまわず、本体に脱着可、不可を問わない。通信制御部２１２はＰＴＰの通信が可能である。
【００１７】
次にコンピュータ１０１の構成について説明する。
【００１８】
コンピュータ１０１の操作器２２１は、キーボードやマウスなどを含み、システム制御部２２５により操作に基づく制御が行われる。表示器２２２は表示用モニタであり、表示制御部２２８により描画されたＵＩ等を出力する。ＲＡＭ２２９は、コンピュータ１０１のＯＳや、ＰＴＰに対応したアプリケーション（ＯＳ含む）等を記憶する揮発性のメモリ（例えばＤＲＡＭ）である。記憶媒体２２３は、記憶制御部２３０によるデータの要求に応じて入出力をする装置（例えばハードディスクなど）であり、不揮発性の記憶装置である。この記憶媒体２２３には、ＯＳやＰＴＰに対応したアプリケーションが格納されている。通信器２２４は、通信インターフェース１０２と接続可能な通信ユニットであり、通信制御部２３１によりデータの入出力を行う。通信器２２４は、無線或は有線のいずれでも構わず、脱着可、不可を問わない。中央処理プロセス部２２７は、表示制御部２２８、記憶制御部２３０、通信制御部２３１、中央制御部２２６（ＣＰＵ、各制御部の統括制御等を行っている）を備えている。データバス２３２は、システム制御部２２５、表示制御部２２８、ＲＡＭ２２９、記憶制御部２３０、通信制御部２３１と接続されている。
【００１９】
図２は、本実施の形態に係るデジタルカメラ１００とコンピュータ１０１とが通信インターフェース１０２を介して接続されたときに、主要となるモジュール構成を示すブロック図である。
【００２０】
まずコンピュータ１０１について説明する。アプリケーション３０１は、ユーザへデジタルカメラ１００が接続されたことを通知するためのアプリケーションである。このアプリケーション３０１は、事前にＯＳ３０２に登録されており、自動的に起動されるアプリケーションでもよい。またユーザの操作によって起動されるものでもよい。本実施の形態では、このアプリケーション３０１は、ＯＳ３０２によってデジタルカメラ１００が接続されたことを検知されることにより起動されるものを想定している。
【００２１】
ＯＳ３０２はコンピュータ１０１のオペレーティングシステムで、例えば、Microsoft社のWindows（登録商標）やアップル社のMacintosh（登録商標）のようなＰＴＰ通信を解釈できる機能を有するものや、ドライバをインストールしてＰＴＰ通信が解釈できるようになったＯＳを想定している。ＰＴＰイニシエータドライバ（PTPInitiatorDriver）３０３（以下、ＰＴＰ起動ドライバ）は、ＯＳ３０２にインストールされているＰＴＰのイニシエータドライバである。
【００２２】
次にデジタルカメラ１００のモジュールについて説明する。
【００２３】
ＰＴＰレスポンダドライバ（PTPResponderDriver）３０６（以下、ＰＴＰ応答ドライバ）は、デジタルカメラ１００に組み込まれているＰＴＰのレスポンスドライバを想定している。ＰＴＰキャッシュテーブル（PTPCacheTable）３０７（以下、ＰＴＰキャッシュテーブル）は、ＰＴＰオペレーションによって要求される内容に対して、一度利用されたものをキャッシュし、再度同じ要求がなされた場合には、このキャッシュされている内容を用いて高速に応答する。そのキャッシュの構造については、ここでは問わない。ファイルエントリーキャッシュ（FileEntryCache）３０８（以下、ファイルキャッシュ）は、ファイルのエントリ情報をキャッシュする。これは利用手段としてデジタルカメラ１００がプレビューモードで、記憶媒体２１８に記憶されている画像を表示器２１７に表示するときのファイル情報のキャッシュを想定している。ここにはファイルそれぞれが有している多くの属性情報の少なくとも一部をコピーしていて、例えばファイルサイズ、ファイル属性、ファイル作成日時、ファイル更新日時、ファイルアクセス日時、ファイル名などが書き込まれる。
【００２４】
本実施の形態の目的は、デジタルカメラ１００とコンピュータ１０１との接続開始から、ＯＳ３０２がアプリケーション３０１へ何らかのアクションを起こすまでの時間を短縮することにある。
【００２５】
アプリケーション３０１はＰＴＰに対応しているアプリケーションであり、ＯＳ３０２から起動されるか、或は、ユーザの操作によって起動される。ＯＳ３０２がデジタルカメラ１００との接続を確立していれば、アプリケーション３０１は、デジタルカメラ１００にアクセス可能になる。ＯＳ３０２は、コンピュータ１０１に搭載されるオペレーティングシステムで、ＰＴＰで通信可能なデバイスを認識し、ドライバ３０３を利用してデジタルカメラ１００の記憶媒体２１８に記憶されている画像の情報を取得する。全ての情報を取得した後、ＯＳ３０２はカメラ１００が接続可能な状態にし、アプリケーション１０１からの要求に対してデバイスハンドルを渡すことができる。本実施の形態では、全ての情報を取得した後、アプリケーション３０１へ自動起動するように設定されているものとする。ＰＴＰ起動ドライバ３０３は、デジタルカメラ１００とＰＴＰ接続を行なうことができるドライバであり、ＯＳ３０２の要求によってＲＡＭ２２９にロードされて起動される。
【００２６】
通信インターフェース１０２は、ＰＴＰ通信可能な通信インターフェースであり、ＰＴＰ通信が可能であるならば、有線、無線問わず、また脱着可能、不可能を問わない。デジタルカメラ１００はＰＴＰ通信可能なデジタルカメラであり、その内部には、ＰＴＰ応答ドライバ３０６、キャッシュテーブル３０７、ファイルキャッシュ３０８が含まれている。ＰＴＰ応答ドライバ３０６は、ＰＴＰのレスポンとして振舞う機能がある。キャッシュテーブル３０７は、ＰＴＰで要求される項目をキャッシュするためのキャッシュテーブルであり、一度利用された画像ファイルは、キャッシュの整合性が保証されている限り、ここを参照して取得することができる。これにより記憶媒体２１８に直接アクセスして画像ファイルを読み出して解析するよりも、遥かに高速にファイルを読み出すことができる。ファイルキャッシュ３０８は、ファイルの情報、即ち、ファイル名、ファイルサイズ、属性、作成日時や更新日時、アクセス日時など、ファイルエントリ情報に書かれる項目をキャッシュしている。これにより、キャッシュテーブル３０７と同様に、キャッシュの整合性が保証されている限り、これらファイルの情報を参照できるため、アクセスの高速化を実現することができる。
【００２７】
図３は、本実施の形態に係るデジタルカメラ１００が通信インターフェース１０２を介してコンピュータ１０１と接続されてから、ＯＳ３０２がアプリケーション３０１へ起動通知するまでの間に、デジタルカメラ１００が実行する処理を示すフローチャートである。
【００２８】
この処理はデジタルカメラ１００の電源がオンされて起動されることにより開始され、まずステップＳ１で、再生モードで起動する。次にステップＳ２で、ファイルキャッシュ３０８へ、記憶媒体２１８に記憶されている全ての画像ファイルのファイルエントリをキャッシュする。このとき、キャッシュされるファイルの順番については問わない。次にステップＳ３で、通信インターフェース１０２を介してコンピュータ１０１と接続する。このとき物理層によって通信が可能になったことを検知し、ステップＳ４で通信モードに遷移する。こうして通信モードに移行するとステップＳ５で、ファイルキャッシュ３０８にキャッシュされている（ステップＳ２でキャッシュ済み）情報を基に、記憶媒体２１８のフォルダ構成を作成する。このときコンピュータ１０１のＯＳ３０２が要求するであろうファイル情報と、ＯＳ３０２が要求するフォルダ構成を考慮したテーブルを作成する。ここではファイルキャッシュ３０８にキャッシュされている情報に基づいて、ＯＳ３０２が要求するファイルの情報を作成する。このため、ここでは記憶媒体２１８にアクセスすることなくキャッシュテーブル３０７を作成できる。これによりデジタルカメラ１００とコンピュータ１０１とが接続され、これらの間での通信が起動された後、ユーザがコンピュータ１０１に対して何らかのアクションを起こすことができるようになるまでの時間を短縮している。更に、これと同時に、ＰＴＰで送信するためのオブジェクトハンドルやオブジェクトフォーマットコードも作成する。
【００２９】
このオブジェクトハンドルとは、記憶媒体中の画像ファイルや音声ファイル等の各オブジェクトそれぞれにユニークに割り当てられる番号のことであり、ＰＣ及びデジタルカメラは、この番号（ハンドル）を用いて画像ファイルの指定などを行うことが出来る。通常のＰＴＰでは、このハンドルを用いて、各オブジェクトがどのようなファイルであるかを調べるためにいつのオブジェクトごとにその属性情報と少なくとも一部のデータ（ファイル名、ファイルサイズ等）やディレクトリ構造を問い合わせている。
【００３０】
このタイミングとは別に、コンピュータ１０１から、ＰＴＰの拡張オペレーションである一括転送オペレーションをサポートしているかどうかの問い合わせを受ける。この実施の形態の処理では、GetDeviceInfoを受信すると、その応答に、一括転送オペレーションをサポートしていれば、対応していることを示すデータを含めて応答する。
【００３１】
その後ステップＳ６で、コンピュータ１０１から一括転送の要求が発行されるとステップＳ７に進み、ステップＳ５のテーブル作成処理が完了しているかどうかを調べ、完了していないときはステップＳ５に戻って前述の処理を実行する。一方、完了していればステップＳ８に進み、一括転送をサポートしているかを調べ、サポートしていればステップＳ９で、ステップＳ５で作成したテーブルに基づいて一括転送する。このステップＳ９では、キャッシュテーブル３０７にある全てのファイルの情報（ファイル名、ファイルサイズ、ファイル属性、ファイルスタンプ、オブジェクトハンドル、オブジェクトフォーマットコード、フォルダの親子関係を示す情報）を転送する。このとき、キャッシュテーブル３０７をサイズ固定で渡す方法もあるが、ＰＴＰオブジェクト数分のサイズだけ渡す可変長サイズでの転送も考えられる。
【００３２】
尚、このフローチャートのステップＳ９では、一度の一括転送処理で示しているが、一括転送するデータサイズが可変長である場合は、コンピュータ１０１でどの程度のデータサイズを受信するか分からないため、事前に、コンピュータ１０１からデジタルカメラ１００に対してそのデータサイズを問い合わせても良い。
【００３３】
また、キャッシュテーブル３０７に詰められている構造体を、拡張オペレーションにより、或はＯＳ３０２が要求する情報の変更によって変えられるように、冗長性を持たせても良い。以上の点を考慮した場合でも、数回程度の通信で、記憶媒体２１８に記憶している全ての情報を転送することができるので、記憶媒体２１８の情報を１つずつ転送する場合よりも遥かに通信のオーバーヘッドが小さくなり高速化が実現できる。
【００３４】
図４は、本実施の形態に係るコンピュータ１０１による処理を説明するフローチャートで、ここでは通信インターフェース１０２を介してデジタルカメラ１００と接続されたことを検知してから、ＯＳ３０２がアプリケーション３０１へ起動を通知するまでの時間にコンピュータが実行する処理を示している。
【００３５】
ステップＳ１１で、通信インターフェース１０２を介した接続により、物理層でのカメラ１００との接続を検知する。次にステップＳ１２で、ＯＳ３０２では、接続されたデバイスに関して、過去に接続されたデータを基に接続されたデバイスを認識する。この段階では、ＰＴＰ対応のデジタルカメラ１００が、過去に最低一度接続されて、ドライバがインストールされていることが前提である。次にステップＳ１３で、ＯＳ３０２は、ＰＴＰ起動ドライバ３０３に対して、デジタルカメラ１００のが記憶している全ての情報と、そのフォルダ構成を要求する。ここで要求するものは、ファイルそれぞれが有している多くの属性情報の少なくとも一部としてのて、例えばファイル名、ファイルサイズ、ファイル属性、ファイル作成日時と、さらにはＰＴＰのオブジェクトハンドル、ＰＴＰのオブジェクトフォーマットコードと、ＯＳ３０２が要求する形のフォルダ構成である。このＯＳ３０２の要求を受けたＰＴＰ起動ドライバ３０３は、ステップＳ１５で、一括転送をサポートしているかどうかを、デジタルカメラ１００に問い合わせす。この問合せコマンドとしては例えば、ＰＴＰの「GetDeviceInfo」等が挙げられる。一括転送がサポートされていればステップＳ１７に進み、ＰＴＰ起動ドライバ３０３は、デジタルカメラ１００に対して一括データ転送を要求する。
【００３６】
これによりデジタルカメラ１００は、図３のステップＳ６で一括データ転送要求を受信し、ステップＳ９で、テーブルの内容を一括転送して、これに応答する。
【００３７】
これによりステップＳ１８で、デジタルカメラ１００からのデータを受信して解析し、次にステップ１９で、ＰＴＰ起動ドライバ３０３は、その受信したデータを基にしてＯＳ３０２が要求する形に見合ったデータに解析してＯＳ３０２に応答する。次にステップＳ２０で、ＯＳ３０２は、ＰＴＰ起動ドライバ３０３に対して行なったデータ転送要求に対し送られてきたデバイスハンドルが利用可能の状態でアプリケーション３０１を起動する。こうしてアプリケーション３０１が起動されると、ユーザに対して、接続されているデジタルカメラ１００の記憶媒体２１８の情報が通知される。
【００３８】
一方、ステップＳ１５で、一括転送をサポートしていないと判定した場合はステップＳ１６に進み、ＰＴＰ起動ドライバ３０３は、ＰＴＰオペレーションの「GetStorageIDs」,「GetStorageInfo」,「GetObjectHandles」,「GetObjectInfo」などを用いて、デジタルカメラ１００の記憶媒体２１８に記憶されている情報を取得する必要がある。その後、ステップＳ１８に進み、前述の処理を実行する。
【００３９】
図５は、従来のデジタルカメラとコンピュータとが接続されて、ＯＳがアプリケーションを起動するまでのシーケンスを説明する図である。
【００４０】
デジタルカメラ６００とコンピュータ６０４がそれぞれ起動されて、物理層の接続６１１により、接続が行なわれたとする。デジタルカメラ６００は、接続される前の段階で、再生モードとして起動しており、ファイルキャッシュ（FileEntryCache）６０１へ記憶媒体の情報のファイルエントリ情報を全てキャッシュしている。このキャッシュ情報は、ファイル名、ファイルサイズ、ファイル属性、ファイル作成日時等を含む。こうして物理層の接続６１１が行なわれると、デジタルカメラ６００では、通信制御部により接続が検知され通信モードを起動する。コンピュータ６０４では、この接続をＯＳが検知し、デバイスとネゴシエーションを開始する（６１２）。次にコンピュータのＯＳ（６０６）は、カメラ６００を認識し、ＰＴＰ起動ドライバ（PTPInitiatorDriver）６０５に対してカメラ６００の情報を要求する。ここで要求するものは、ファイル名、ファイルサイズ、ファイル属性、ファイルスタンプ、ＰＴＰフォーマットのオブジェクトハンドル、同様にオブジェクトフォーマットコード、そして、そのフォルダ構成である。ＯＳ６０６の要求を受けたＰＴＰ起動ドライバ（PTPInitiator）６０５は、この要求に対して、「GetStorageIDs」を用いて、デジタルカメラ６００の記憶媒体のＩＤ（StorageID）を取得する。次に「GetStorageInfo」により、その記憶媒体の情報を取得する。次に「GetObjectHandle」を使用して、オブジェクトハンドルの列挙を行い、その一階層下のオブジェクトハンドルに対して「GetObjectInfo」を繰り返す（６０８）。この「GetObjectHandle」と「GetObjectInfo」の組み合わせは、１ディレクトリ当りの処理であり、この処理をディレクトリの数分繰り返す（６１０）。こうしてディレクトリの数分繰り返した後、ＰＴＰ起動ドライバ６０５は、デジタルカメラ６００の記憶媒体の全ての情報を取得することになり、これらをＯＳが要求した情報のフォーマットに作成して応答する。ＯＳ６０６は、ＰＴＰ起動ドライバ６０５の情報を取得してアプリケーション６０７を起動する。
【００４１】
一方、デジタルカメラ６００では、ＰＴＰオペレーションがくる度に、キャッシュテーブル（PTPCacheTable）６０２へキャッシュし、デジタルカメラ６００の記憶媒体６１３へアクセスし、ＰＴＰ応答ドライバ（PTPResponderDriver）による解釈、コンピュータ６０４へ応答するという手順を辿る。
【００４２】
ここで、コンピュータ６０４のＯＳ６０６が記憶媒体の全ての情報を取得しようとするのは通常一度だけである。従って、このキャッシュテーブル（PTPCacheTable）にキャッシュされたとしても、このＯＳがこのキャッシュメモリに再度アクセスされることは、コンピュータ６０４とデジタルカメラ６００との間の通常の通信では無くてよい。そのため、このキャッシュメモリによる効果は薄い。逆に、記憶媒体６１３へのアクセスのたびに、PTPの通信のコマンドのやり取り、及びデータ転送処理を行うことは、ファイル数が多くなるほど、全ての情報を転送するのに要する時間が長くなる。即ち、ＰＴＰ通信ではオブジェクトハンドルの数が大きくなるほどその数だけ通信回数が増えるため、単純比例で、全ての情報を取得するまでの時間が長くなる。つまりファイル数が多くなるほど通信のオーバーヘッドが大きくなり速度低下を招く。例えば、５０枚画像が記憶媒体に記憶されているデジタルカメラと、３０００枚の画像が記憶媒体に記憶されているデジタルカメラとの接続時間は、単純比例して約６０倍になる。
【００４３】
その他、デジタルカメラが記憶媒体６１３に何度もアクセスするため、ＲＡＭへのアクセス速度と比べても数桁のオーダで時間が長くなることが分かっている。
【００４４】
図６は、本実施の形態に係るデジタルカメラ１００とコンピュータ１０１とが接続され、コンピュータ１０１のＯＳ３０２がアプリケーション３０１を起動するまでの動作シーケンスを説明する図である。これは図３のモジュール構成と対応した図である。
【００４５】
通信インターフェース１０２によって物理層の接続が行なわれると（７０９）、デジタルカメラ１００とコンピュータ１０１は接続を検知する。デジタルカメラ１００は、物理層の接続が行なわれる前に、もしくはその後に、一度再生モードに突入する（通信モードの前は必ず再生モードである）。この再生モードにおいては、記憶媒体２１８の全てのファイルの情報は、全てファイルキャッシュ３０８に書き込まれてキャッシュされている。ここで作成されるキャッシュ項目は、ファイル名、ファイルサイズ、ファイル属性、ファイル作成日時であり、ファイルキャッシュの順序に対しては特に規定はない。その後、通信モードが起動されると、この通信モードでは、起動時に別スレッドを立ち上げて、ＯＳ３０２が要求する情報を、事前にキャッシュテーブル３０７に作成する。ここでは、ファイルキャッシュ３０８の情報を基にして作成し、ＰＴＰで必要な情報も作成する。ここでは既にファイルキャッシュ３０８で記憶媒体２１８の全てのファイルの情報がキャッシュされているため、記憶媒体２１８にアクセスすることなく、ＯＳ３０２が要求する情報をキャッシュテーブル３０７に作成する。よって、このときの速度は、図５に示すシーケンスに比べて数桁のオーダで高速にキャッシュテーブル３０７を作成できる。
【００４６】
別スレッドが起動されている間に、コンピュータ１０１では、物理層の接続の後（７０９）、ＯＳ３０２が接続を検知し、デジタルカメラ１００とのネゴシエーションを開始する（７１０）。このネゴシエーションの終了後に、デジタルカメラ１００を認識をし、そのデバイスの情報をＰＴＰ起動ドライバ３０３に要求する。ここで要求するものは、ファイル名、ファイルサイズ、ファイル属性、ファイル作成日時、ＰＴＰのオブジェクトハンドル、ＰＴＰのオブジェクトフォーマットコード、フォルダの構成を示す情報である。このＯＳ３０２の要求を受けたＰＴＰ起動ドライバ３０３は、デジタルカメラ１００がデータの一括転送をサポートしているかどうかを判別するために、「GetDeviceInfo」コマンドを発行してデジタルカメラ１００へ問い合わせる。このコマンドを受信したデジタルカメラ１００のＰＴＰ応答ドライバ３０６は、このコマンドに対して応答する。ここでは、一括転送をサポートしている旨を応答することとする。
【００４７】
これによりコンピュータ１０１のＰＴＰ起動ドライバ３０３は、次にＰＴＰの拡張オペレーションとして一括データ転送を要求する。これによりデジタルカメラ１００は、その一括データ転送要求を受信すると、キャッシュテーブル３０７がＯＳ３０２の要求に応えられる状態になっているかどうかを判定し、応えられる状態になっている場合は、ＯＫ回答で即答する。そうでない場合には、キャッシュテーブル３０７の作成処理が完了するまで待機する。尚、ここでブロックタイムアウトが行なわれるかどうかについての懸念が考えられるが、実際には記憶媒体２１８にアクセスすることなくキャッシュテーブル３０７が作成されるため、この処理は高速で実施される。従って、たとえデジタルカメラ１００がサポートする最大オブジェクト数に相当する数のファイルが記憶媒体２１８に記憶されていたとしても、まずブロックタイムアウトが発生することは有り得ないと考えられる。また万が一、ブロックタイムアウトが発生してエラーになったとしても、再度、コンピュータ１０１のＰＴＰ起動ドライバ３０３がリトライを行うように設計されていても良い。
【００４８】
こうしてコンピュータ１０１のＰＴＰ起動ドライバ３０３は、その要求に対する応答を受信すると、その受信したキャッシュテーブル３０７のデータを解析し、ＯＳ３０２が要求する構造に変更してＯＳ３０２に応答する。これによりＯＳ３０２は、そのデータを受信した後アプリケーション３０１を起動する。
これにより、アプリケーション３０１またはCPU226は、従来よりも大幅に短時間で、受信した情報を解析して、デジタルカメラの記憶媒体内のディレクトリ構造やフォルダ構造、ファイル名などの情報を認識できる。また受信したハンドル（番号）に基づいて、所望の画像データなどの送信要求を、通信インターフェースを介してデジタルカメラに送信することが出来る。このデータの解析は、コンピュータ１０１で解析の種類を判別し、それに応じてＯＳ３０２に応答することができる。またコンピュータ１０１が、そのデータ解析の種類を判別するために、デジタルカメラ１００へＰＴＰ拡張オペレーションで問い合わせるという方法も考えられる。
【００４９】
これにより、デジタルカメラ１００における記憶媒体２１８へのアクセスは、再生モードで起動した時にすべてのobjectに付いて一括で行なわれるため、コンピュータ１０１との間での通信中でも高速で処理される。また、この一括データ転送を採用することにより、通信回数が画像ファイルの数に拘わらずに、ほんの数回（キャッシュされたデータのObjectInfoと、そのobjectそのものの最低２回）、で行なうことができる。これにより、デジタルカメラ１００の記憶媒体２１８に画像ファイルが５０個格納されている場合でも、３０００個格納されている場合でも同じ通信回数でデータ転送できる。なお、キャッシュテーブル~作成したobjectを分割的に送受信する場合には、そのやり方により例えば３，４回と回数を増やすこともありえるが、やはり、高速化の効果は十分に有る。
【００５０】
この実施の形態の特徴は、コンピュータ１０１のＯＳ３０２が要求すると想定される情報を、デジタルカメラ１００が事前に認知している点にある。
【００５１】
またデジタルカメラ１００が再生モードで使用するキャッシュ情報を全て利用し、かつコンピュータ１０１のＰＴＰ起動ドライバ３０３から呼ばれる前に、別スレッドで、コンピュータ１０１に転送するデータを準備する点にある。尚、このキャッシュデータは、元々転送する予定のデータをキャッシュしているため、そのキャッシュヒット率は１００％である。
【００５２】
このようの本実施の形態によれば、コンピュータとデジタルカメラとの間での物理層の接続から、コンピュータのアプリケーションが起動されるまで、デジタルカメラにおいて記憶媒体へのアクセスが発生せず、デジタルカメラ１００の内部メモリ（ＲＡＭ）へのアクセスだけで処理できるため、高速に応答することができる。
【００５３】
［他の実施の形態］
本発明の目的は前述したように、実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フロッピィ（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ，ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００５４】
またコンピュータが読み出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれる。
【００５５】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含む。
【図面の簡単な説明】
【００５６】
【図１】本実施の形態に係るデジタルカメラ（ＤＳＣ）とコンピュータとを有するシステムの構成を示すブロック図である。
【図２】本実施の形態に係るデジタルカメラとコンピュータとが通信インターフェースを介して接続されたときに、主要となるモジュール構成を示すブロック図である。
【図３】本実施の形態に係るデジタルカメラが通信インターフェースを介してコンピュータと接続されてから、ＯＳがアプリケーションへ起動通知するまでの間に、デジタルカメラが実行する処理を示すフローチャートである。
【図４】本実施の形態に係るコンピュータによる処理を説明するフローチャートである。
【図５】従来のデジタルカメラとコンピュータとが接続されて、ＯＳがアプリケーションを起動するまでのシーケンスを説明する図である。
【図６】本実施の形態に係るデジタルカメラとコンピュータとが接続され、コンピュータのＯＳがアプリケーションを起動するまでの動作シーケンスを説明する図である。
【図１】
2006086862.tif 000003
【図２】
2006086862.tif 000004
【図３】
2006086862.tif 000005
【図４】
2006086862.tif 000006
【図５】
2006086862.tif 000007
【図６】
2006086862.tif 000008