(57)【特許請求の範囲】
【請求項１】
情報処理装置と通信可能に接続されるファイル処理装置であって、
複数のファイルをフォルダに分けて管理可能な態様で記憶媒体に記憶する記憶手段と、
所定の通信インターフェースを介して前記情報処理装置と通信するための通信手段と、
前記通信手段を介した前記情報処理装置との通信におけるデータの単位であるオブジェクトを、前記記憶媒体に記憶されている複数のファイルに割り当てる制御手段と、
前記通信手段を介して前記オブジェクトを前記情報処理装置に送信する送信手段と、を有し、
前記制御手段は、前記記憶媒体に記憶されている複数のファイルのうち、同一のフォルダによって管理される複数のファイルに１つのオブジェクトであるグループオブジェクトを割り当ててグループ化するとともに、グループ化された各ファイルを管理するフォルダにもオブジェクトを割り当てることを特徴とするファイル処理装置。
【請求項２】
オブジェクトの送信要求を前記情報処理装置から受信する受信手段を更に有し、
前記受信手段によりグループオブジェクトが要求された場合、前記送信手段は、前記グループオブジェクトが割り当てられているすべてのファイルを前記情報処理装置に送信することを特徴とする請求項１に記載のファイル処理装置。
【請求項３】
前記制御手段は、前記記憶媒体に記憶された１つのフォルダによって管理される複数のファイルが所定の数を超える場合、前記所定の数ごとに１つのグループオブジェクトを割り当ててグループ化することを特徴とする請求項１または２に記載のファイル処理装置。
【請求項４】
前記情報処理装置からの要求に応じて、前記送信手段は、前記グループオブジェクトに対応する属性情報を前記情報処理装置に送信し、
前記属性情報は、グループオブジェクトを構成するファイル名、撮影日時、およびファイルサイズに関する情報のうちの少なくとも１つを含むことを特徴とする請求項１乃至３のいずれか１項に記載のファイル処理装置。
【請求項５】
前記通信手段は、Ｐｉｃｔｕｒｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌを用いて前記情報処理装置と通信することを特徴とする請求項１乃至４のいずれか１項に記載のファイル処理装置。
【請求項６】
被写体を撮像して画像データを生成する撮像手段を更に有し、
前記記憶手段は、前記撮像手段により生成された複数の画像データを、前記複数のファイルとして、フォルダに分けて管理可能な態様で記憶媒体に記憶することを特徴とする請求項１乃至５のいずれか１項に記載のファイル処理装置。
【請求項７】
複数のファイルをフォルダに分けて管理可能な態様で記憶媒体に記憶する記憶手段を有し、情報処理装置と通信可能に接続されるファイル処理装置の制御方法であって、
前記情報処理装置との通信におけるデータの単位であるオブジェクトを、前記記憶媒体に記憶されている複数のファイルに割り当てる制御工程と、
前記オブジェクトを前記情報処理装置に送信する送信工程と、を有し、
前記制御工程では、前記記憶媒体に記憶されている複数のファイルのうち、同一のフォルダによって管理される複数のファイルに１つのオブジェクトであるグループオブジェクトを割り当ててグループ化するとともに、グループ化された各ファイルを管理するフォルダにもオブジェクトを割り当てることを特徴とするファイル処理装置の制御方法。
【請求項８】
コンピュータを、請求項１乃至６のいずれか１項に記載のファイル処理装置の各手段として機能させるためのコンピュータが読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
装置間のデータ通信技術に関する。
【背景技術】
【０００２】
従来、デジタルカメラで撮影された画像データや音声データ等は、デジタルカメラに内蔵されたフラッシュメモリ等の記憶媒体や、カメラに対して着脱可能な記憶媒体に記憶される。また、デジタルカメラとパーソナルコンピュータ（以下、ＰＣ）等の情報処理装置とを通信ケーブル等で接続し、当該カメラに内蔵された記憶装置や、カメラに着脱可能な記憶媒体に格納された画像データ等をＰＣに転送する技術が開発、製品化されている。
【０００３】
また、ＯＳ（オペレーティングシステム）であるＷｉｎｄｏｗｓ（登録商標） ＸＰやＭａｃ ＯＳ（登録商標）では、ＯＳベンダが標準でＰＴＰ（Ｐｉｃｔｕｒｅ Ｔｒａｎｓｆｅｒ Ｐｒｏｔｏｃｏｌ）対応のドライバを用意している。このため、特別なドライバソフトウェアを用意しないで利用することができる。このようにＰＴＰ等のデジタルカメラに特化した標準的なプロトコルを使用してカメラとＰＣを接続すると、ＭＳＣ（Ｍａｓｓ Ｓｔｏｒａｇｅ Ｃｌａｓｓ）のようなプロトコルとは異なり、単に記憶媒体としてではなくＯＳ上でカメラとして取り扱われる。このため、ユーザにとってわかりやすく、操作性も向上できる余地が多いと考えられる。ＰＴＰはカメラに特化しているため、画像ファイル等をオブジェクトとして定義し、オブジェクトの管理はカメラ側で行う。
【０００４】
ＰＴＰでは、カメラとＰＣとを接続すると、カメラ内部の全オブジェクトの属性情報をカメラ側で生成し、それをＰＣで取得することをシステム構築の前提としている。そのため、カメラ内部に大量の画像ファイルがあると、カメラからＰＣへのデータ転送に長時間がかかり、ユーザはこのデータ転送中に他の操作ができないまま待たされることになる。
【０００５】
そこで、例えば特許文献１は、ＰＣがオブジェクトを取得する前に予めカメラから返信すべきオブジェクトの属性情報をキャッシュとして持つことで、カメラ内部に大量の画像ファイルが存在する場合でも、ユーザに比較的軽快な操作環境を提供している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２９７１７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記特許文献１に記載の技術を用いても、転送すべきファイルの全オブジェクトを用意する必要があるため、ファイルの枚数が増えるのに比例して、転送開始までに用意しなくてはならないオブジェクトの総量も増加することになる。その結果、実際に転送を開始するまでにかかる時間がやはり長くなる。
【０００８】
本発明は、上記課題に鑑みてなされ、装置内部に大量のファイルが存在する場合であっても、ユーザに比較的軽快な操作環境を提供できる技術を実現する。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明のファイル処理装置は、情報処理装置と通信可能に接続されるファイル処理装置であって、複数のファイルをフォルダに分けて管理可能な態様で記憶媒体に記憶する記憶手段と、所定の通信インターフェースを介して前記情報処理装置と通信するための通信手段と、前記通信手段を介した前記情報処理装置との通信におけるデータの単位であるオブジェクトを、前記記憶媒体に記憶されている複数のファイルに割り当てる制御手段と、前記通信手段を介して前記オブジェクトを前記情報処理装置に送信する送信手段と、を有し、前記制御手段は、前記記憶媒体に記憶されている複数のファイルのうち、同一のフォルダによって管理される複数のファイルに１つのオブジェクトであるグループオブジェクトを割り当ててグループ化するとともに、グループ化された各ファイルを管理するフォルダにもオブジェクトを割り当てる。
【発明の効果】
【００１１】
本発明によれば、装置内部に大量のファイルが存在する場合であっても、ユーザに比較的軽快な操作環境を提供できる。
【図面の簡単な説明】
【００１２】
【図１】本発明に係る実施形態のデータ通信システムの構成図である。
【図２】図１のＰＣの機能ブロック図である。
【図３】（ａ）はデジタルカメラ内部に記憶される画像ファイルの構成を例示する図、（ｂ）はＰＣアプリケーションによって作成されるオブジェクトツリー構成を例示する図である。
【図４】カメラ内部に記憶された大量の画像ファイルに対して、従来の手法によりオブジェクトハンドルを割り当てた状態を例示する図（ａ）、本実施形態によりオブジェクトハンドルを割り当てた状態を例示する図（ｂ）である。
【図５】従来のオブジェクト構成において従来の手法によりカメラとＰＣとを接続した場合のシーケンスを示す図（ａ）、本実施形態のオブジェクト構成において本実施形態によりカメラとＰＣとを接続した場合のシーケンスを示す図（ｂ）である。
【図６】本実施形態により作成されたグループオブジェクトを分解するためのカメラとＰＣとの間のシーケンスを示す図である。
【図７】本実施形態のＰＣアプリケーションによりグループオブジェクトを分解する処理を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下に、添付図面を参照して本発明を実施するための形態について詳細に説明する。尚、以下に説明する実施の形態は、本発明を実現するための一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されるべきものであり、本発明は以下の実施の形態に限定されるものではない。
【００１４】
［システム構成］図１は、本発明に係る実施形態のデータ通信システムの構成図である。本実施形態では、撮像装置としてのカメラ１００と情報処理装置としてのコンピュータ（以下、ＰＣ）１０１とが通信インターフェース１０２を介して通信可能に接続され、ＰＴＰ規格に準拠した通信を行う。カメラ１００は、通信インターフェース１０２を介してＰＣ１０１が接続されたことを検知すると、再生モードから通信モードに移行する。ＰＣ１０１には、ＰＴＰ規格に準拠してカメラ１００に対して、画像ファイルをオブジェクトとして定義した属性情報やオブジェクトを構成するデータを転送要求する後述するアプリケーションソフトウエア（以下、アプリケーション）がインストールされている。また、ＰＣ１０１のアプリケーションは、ＰＣ１０１からカメラ１００へのデータ転送が可能である。なお、ＰＴＰ規格の参考文献としては、ＰＩＭＡ １５７４０：２０００， ＰＨＯＴＯＧＲＡＰＩＨＩＣ ＡＮＤ ＩＭＡＧＩＮＧ ＭＡＮＵＦＡＣＴＵＲＥＲＳ ＡＳＳＯＣＩＡＴＩＯＮ， ＩＮＣ．が挙げられる。オブジェクト単位の通信プロトコルとしては、ＭＴＰ（Ｍｅｄｉａ Ｔｒａｎｓｆｅｒ Ｐｒｏｔｏｃｏｌ）もＰＴＰの拡張仕様であるため適用可能である。
【００１５】
カメラ１００では、被写体からの光束が光学系２０１を通して撮像素子２０２へ電荷として保持される。撮像素子２０２で蓄積された電荷が撮像プロセス部２０３で画像信号として変換される。撮像プロセス部２０３から出力された信号は、Ａ／Ｄコンバータ２０４によりデジタル信号に変換されて、データバス２０５を介してＲＡＭ２１０に保存される。中央処理プロセス部２１３は、画像処理部２０７、圧縮伸張部２０８、表示制御部２０９、記録再生制御部２１１、通信制御部２１２、中央制御部２１５から構成されている。画像処理部２０７はホワイトバランス、シャープ、ぼかし、カラーバランス、レベル補正等の処理を行う。圧縮伸張部２０８は、画像処理部２０７で処理されたデジタル画像をＪＰＥＧ、ＪＰＥＧ２０００等の画像圧縮方法に従って圧縮する機能と、圧縮されたデジタル画像を伸張する機能とを有する。圧縮率は、ユーザによる設定が可能である。表示制御部２０９は表示器２１７へのＵＩ（ユーザインターフェース）の描画処理を行う。記録再生制御部２１１は記憶媒体２１８へのＩ／Ｏ制御を行う。通信制御部２１２は通信器２１９へのデータのＩ／Ｏ制御を行う。中央制御部２１５は上記各制御部を統括する。
【００１６】
システム制御部２１４は、データバス２０５に接続されており、ＲＯＭ２００に記憶された制御プログラムに従ってカメラ１００を制御するマイクロコンピュータを有する。また、システム制御部２１４は、圧縮伸張部２０８で圧縮されたデジタル画像データと、このデジタル画像データの付加情報とを含む画像ファイルを生成し、生成した画像ファイルをＲＡＭ２１０に格納する機能を有する。付加情報には、デジタル画像に関する情報、カメラ１００に関する情報、デジタル画像のサムネイル等が含まれる。ＲＡＭ２１０は、複数の画像ファイルを記憶する容量を有する。また、システム制御部２１４は、カメラ１００を省電力状態にする機能を有する。ここで、カメラ１００が省電力状態である場合、システム制御部２１４は、カメラ１００の機能の一部をオフにしてバッテリの消費電力を削減する。ＲＯＭ２００は、カメラ１００を制御するための制御プログラム、カメラ１００に関する情報等が記憶されている。また、ＲＯＭ２００には、表示器２１７に表示される設定メニューに対応する画像データも記憶されている。
【００１７】
操作器２１６は、カメラ１００を操作するためのユーザインターフェースであり、カメラ１００の電源をオン又はオフするための電源スイッチ、シャッターボタン、表示器２１７に設定メニューを表示するためのメニューボタンを有する。さらに、操作器２１６は、表示器２１７に表示されたカーソルを上、下、左又は右に移動するための十字ボタン、カーソルが選択している画像、項目、値等をカメラ１００に設定又は選択させるためのＳＥＴボタン等を有する。シャッターボタンには、半押し状態と全押し状態とがある。シャッターボタンが半押し状態にされると、ＡＥ／ＡＦ制御部２０６が光学系２０１を駆動して、ＡＦ、ＡＥ等を実行し、シャッターボタンが全押し状態にされると、カメラ１００はデジタル画像の撮影を実行する。
【００１８】
表示器２１７は、表示制御部２０９によって要求された描画を表示するものであり、デバイスとしては液晶等の表示パネルを有し、その表示パネルに様々な情報を表示する。表示器２１７は、カメラ１００に関する情報を表示する機能、撮影画像を表示する機能、記憶媒体２１８に保存された撮影画像を表示する機能等を有する。記憶媒体２１８に保存された撮影画像を表示する場合にはそのデジタル画像に関する情報も表示することができる。また、表示器２１７は、設定メニュー等のＧＵＩ（グラフィカルユーザインターフェース）を提供する機能を有する。
【００１９】
記録再生制御部２１１は、ＲＡＭ２１０に格納された画像ファイルを記憶媒体２１８に書き込む機能と、記憶媒体２１８に保存された画像ファイルを記憶媒体２１８から読み出してＲＡＭ２１０に書き込む機能とを有する。記憶媒体２１８から読み出されてＲＡＭ２１０に書き込まれた画像ファイル内の撮影画像は、システム制御部２１４によって表示器２１７に表示される。
【００２０】
記憶媒体２１８は、ＲＡＭ２１０に保存されたＪＰＥＧ等の画像ファイルを記録再生制御部２１１を介して記憶する。記憶媒体２１８は、カメラ１００に着脱可能な形態や装置に組み込まれた形態のいずれでもよく、カメラ１００に電源が投入されていない状態でも記憶を保持することが可能な媒体である。通信器２１９は、有線通信または無線通信によるほか、有線通信機能を持たな場合はメディア経由で情報を更新する形態でもよい。また通信器２１９のカメラ１００に対する着脱可、不可は問わない。また、記録再生制御部２１１が情報の読み出し／書き込みを行えるよう、ＤＣＦ規格で保存されるものとし、動画ファイルはＤＣＦ基本ファイルとＤＣＦサムネイルファイルの２つのファイル構成で１つのマルチメディアデータとして扱われる。ＤＣＦ規格（Ｄｅｓｉｇｎ ｒｕｌｅ ｆｏｒ Ｃａｍｅｒａ Ｆｉｌｅ Ｓｙｓｔｅｍ）の参考文献としてはＪＥＩＤＡ規格ＪＥＩＤＡ４９−２−１９９８がある。実際のファイル構成は、ＤＣＦ規格に限らず、複数のファイルで構成しているマルチメディアデータでもかまわない。
【００２１】
通信制御部２１２では、ＰＴＰ規格に準拠した通信が可能である。実際の通信方式は、ＰＴＰ規格でなくとも、マルチメディアデータを一つのオブジェクトとして扱うようなオブジェクトベースのプロトコルであっても良い。
【００２２】
ＰＣ１０１の操作器２２１は、キーボードやマウス等であり、システム制御部２２５で操作の制御が行われる。表示器２２２は、出力モニタであり、表示制御部２２８により描画されたＵＩを出力する。ＲＡＭ２２９は、ＰＣ１０１のＯＳや、アプリケーション５０を動作させるための揮発性のメモリである。記憶媒体２２３は、記憶制御部２３０によるデータの要求に応じて入出力をする装置であり、不揮発性の記憶装置である。記憶媒体２２３には、ＯＳやアプリケーション５０が格納されている。通信器２２４は、通信インターフェース１０２と接続可能な通信装置であり、通信制御部２３１によりデータの入出力を行う。通信器２２４は、有線通信または無線通信によるほか、有線通信機能を持たな場合はメディア経由で情報を更新する形態でもよい。また通信器２２４のカメラ１００に対する着脱可、不可は問わない。中央処理プロセス部２２７は、表示制御部２２８、記憶制御部２３０、通信制御部２３１、各制御部を統括する中央制御部２２６から構成される。
【００２３】
図２は、図１のＰＣ１０１の構成を示すブロック図である。図２において、ＰＣ１０１のハードウエア上でＯＳ１５が動作し、このＯＳ１５上でアプリケーション５０が稼働し、カメラ１００と通信を行う。ＰＣ１０１は、ＲＡＭやＲＯＭに加えて補助記憶装置としてハードディスク（ＨＤＤ）３０、ＯＳ１５のファイルシステム３２からＨＤＤ３０に対してデータを読み出し／書き込みするためのディスク入出力（ＩＯ）Ｉ／Ｆ３４を備える。また、ＰＣ１０１は、描画管理システム３６で生成される画像データをモニタ１２に適合するビデオ信号に変換するビデオＩ／Ｆ３８と、キーボード１８とのインターフェースであるキーボードインターフェース（Ｉ／Ｆ）４２を備える。さらに、ＰＣ１０１は、マウス１４とのインターフェースであるマウスＩ／Ｆ４４と、ＵＳＢケーブルを介してカメラ１００に接続するＵＳＢ Ｉ／Ｆ４６とを備える。
【００２４】
ファイルシステム３２は、ＯＳ１５を構成しており、アプリケーション５０がハードウエアを直接制御せずに、画像データ等のファイルの入出力を可能にする。また、ＯＳ１５に含まれる描画管理システム３６は、アプリケーション５０がハードウエアを直接制御せずにビデオ信号を生成する。ＯＳ１５は、ＰＣ１０１に接続されたデバイスに適合したデバイスドライバ４０を自動的に割り振る。デバイスドライバ４０は、カメラ１００やスキャナ（不図示）等の画像データを扱う周辺機器（デバイス）を管理する機能を有し、アプリケーション５０がハードウエアを直接制御せずに、デバイスからの画像データの入出力を管理する。カメラ１００は、ＵＳＢケーブルを介してＵＳＢ Ｉ／Ｆ４６に接続可能であり、デバイスドライバ４０を介して、アプリケーション５０との間で制御コマンド、状態信号、及び画像データ等のやり取りを行う。
【００２５】
アプリケーション５０は、ソフトウエアモジュールとして、デバイスドライバ４０にアクセスすることでカメラ１００との通信を行う通信管理部５２、カメラ１００で撮影された画像データを取得する画像転送管理部５３を備える。また、アプリケーション５０は、カメラ１００に制御コマンドを送信してストロボの設定等の撮影パラメータを指定したり、撮影指示を行ったりするカメラ制御部５４を備える。さらに、アプリケーション５０は、カメラ１００から転送されたデータ及び各種情報をモニタ１２に表示するデータ表示部５６と、カメラ１００から転送されたデータをＨＤＤ３０に格納して管理するファイル管理部５８を備える。
【００２６】
ＰＣ１０１は、ＣＰＵ、ＣｈｉｐＳｅｔ、ＤＲＡＭ、ＢＩＯＳ−ＲＯＭ、ＨＤＤ、グラフィックスデバイス、電源装置等を備え、カメラ１００との間でデータ通信を行うためのアプリケーション５０やデバイスドライバがＤＲＡＭ上に展開されて実行される。アプリケーション５０は、カメラ１００とのデータ通信を行う基本モジュールを含んでおり、カメラ１００がＰＣ１０１に接続された時に実行が開始される。また、アプリケーション５０は、ユーザにＧＵＩ等の操作部材を提示してカメラ１００から画像データ等を取得したり、削除したり、またはカメラ１００の動作を制御する機能を提供する。また、デバイスドライバ４０もカメラ１００とのデータ通信を行う基本モジュールを含み、カメラ１００がＰＣ１０１に接続された時にＯＳ１５によりロードされ実行が開始される。
【００２７】
以下、シーケンス図やフローチャートを用いてカメラ１００及びＰＣ１０１の動作について説明する。これらの動作は入力信号やプログラムにしたがって、中央制御部２１５がカメラ１００の各ハードウェアを、中央制御部２２６がＰＣ１０１の各ハードウェアを制御することにより実現される。
【００２８】
次に、デバイスドライバ４０によるカメラ１００内のデータの取り扱いについて説明する。例えば、図３（ａ）に示すデータ構成でカメラ１００内に画像ファイルが格納されているとする。図３（ａ）の“１００ＧＡＮＯＮ”、“１０１ＧＡＮＯＮ”、“１０２ＧＡＮＯＮ”はフォルダを表しており、拡張子にＪＰＧが付されたものが画像ファイルを表している。“１００ＧＡＮＯＮ”フォルダ内にはＩＭＧ＿０００１．ＪＰＧ、ＩＭＧ＿０００２．ＪＰＧ、ＩＭＧ＿０００３．ＪＰＧが格納されているとする。“１０１ＧＡＮＯＮ”フォルダ内にはＩＭＧ＿０１０１．ＪＰＧ、ＩＭＧ＿０１０２．ＪＰＧが格納されているとする。また、“１０２ＧＡＮＯＮ”フォルダ内にはＩＭＧ＿０２０１．ＪＰＧが格納されているとする。図３（ａ）のデータ構成のもとでカメラ１００をＰＣ１０１に接続すると、ＰＣ１０１が接続を検知した時にＯＳ１５がそのカメラ用のデバイスドライバ４０を検索し、ＤＲＡＭ上にロードする。
【００２９】
ロードされたデバイスドライバ４０は、カメラ１００から画像ファイルやフォルダの情報を取得し、図３（ｂ）に例示するオブジェクトツリーを作成して管理する。デバイスドライバ４０では、カメラ１００内のフォルダやファイルは、オブジェクトとして再定義され、各オブジェクトのインスタンスをカメラ１００内のフォルダやファイルの構成に関連付けて記憶する。すなわち、カメラ１００をＰＣ１０１に接続した時に、アプリケーション５０はカメラ１００内の全てのフォルダやファイルの構成に基づいてオブジェクトツリーを構築する。よって、ＳＤ（登録商標）等のメディアに画像ファイルが大量に記憶されていれば、それだけツリーの構築に多くの時間を要することになる。その結果、アプリケーションを立ち上げるまでに時間がかかり、ユーザが次の操作に移行できないで待たされてしまう。
【００３０】
図４（ａ）は、カメラ内に記憶された大量の画像ファイルに対して従来の手法によりオブジェクトハンドルを割り当てた状態を例示する図である。ファイル名の後にカッコ書きで示した値はオブジェクトハンドルである。図５（ａ）は、図４（ａ）の従来のオブジェクト構成において従来の手法によりカメラとＰＣとを接続した場合のシーケンスを示す図である。例えば、カメラ内のＤＣＩＭフォルダ内に５つのフォルダがあり、各フォルダに２０００枚の画像ファイルが格納されている場合、従来の手法では１つのファイルやフォルダに対して１つのオブジェクトハンドルを割り当てている。このため、図４（ａ）に示すように、１つのファイルやフォルダが１つのオブジェクトとして取り扱われ、１０００５個のオブジェクトが生成されることになる。その結果、カメラをＰＣに接続すると、図５（ａ）に示すように、ＰＣがカメラに対して１０００５回ＧｅｔＯｂｊｅｃｔＩｎｆｏ（１〜１０００５）を送信し、各オブジェクトのデータを取得し、デバイスドライバがオブジェクトツリーを作成することになる。
【００３１】
このような課題に対して、本実施形態では、カメラ内に大量の画像ファイルが記憶されている場合であっても、複数のオブジェクトを１つのオブジェクトに割り当てることによって、短時間でオブジェクトツリーを作成できるようにした。以下に、本実施形態のデバイスドライバ４０によるカメラ１００内の画像ファイルの取り扱いについて説明する。図４（ｂ）は、カメラ１００内に記憶された大量の画像ファイルに対して本実施形態によりオブジェクトハンドルを割り当てた状態を例示する図である。図５（ｂ）は、図４（ｂ）の本実施形態のオブジェクト構成において本実施形態によりカメラ１００とＰＣ１０１とを接続した場合のシーケンスを示す図である。
【００３２】
図４（ｂ）では、図４（ａ）と同様にカメラ１００内のＤＣＩＭフォルダ内に５つのフォルダがあり、各フォルダに２０００枚の画像ファイル（ＩＭＧ＿０００１．ＪＰＧ〜ＩＭＧ＿２０００．ＪＰＧ）が格納されている。ここで、カメラ１００内の１つのフォルダ内にある複数の画像ファイルが１つのＰＴＰオブジェクトとして割り当てられる。例えば図４（ｂ）の例では、カメラ１００は「ＩＭＧ０００１．ＪＰＧ」から「ＩＭＧ２０００．ＪＰＧ」までを１つのオブジェクトとして取り扱うよう、オブジェクトハンドル（３）を割り当てる。このようにオブジェクトを再定義することで、カメラ１００をＰＣ１０１に接続した時に、図５（ｂ）のように、ＰＣ１０１はカメラ１００に対して１１回ＧｅｔＯｂｊｅｃｔＩｎｆｏ（１〜１１）を送信するだけで済む。すなわち、ＰＣ１０１からカメラ１００へのＧｅｔＯｂｊｅｃｔＩｎｆｏ送信回数が９９９４回減ることになる。なお、ＧｅｔＯｂｊｅｃｔＩｎｆｏに対してカメラ１００から返信されるオブジェクトの属性情報には、オブジェクトを構成するファイル名、撮影日時、ファイルサイズ等が含まれる。
【００３３】
以上のように、本実施形態では、複数のオブジェクトを１つのオブジェクトに割り当てることで、カメラ１００とＰＣ１０１との間の通信トランザクション時間を大幅に低減でき、カメラ１００をＰＣ１０１に接続した時の処理時間を大幅に低減できる。なお、図４（ｂ）ではデバイスドライバ４０に対してカメラ１００内の各フォルダの画像ファイルを１つのグループオブジェクトとして送信したが、グループ化の単位は所定のファイル数やカテゴリ、撮影日時等、ユーザ操作により選択可能としてもよい。さらに、その設定はカメラ側もしくはアプリケーション側で可能である。
【００３４】
デバイスドライバ４０は、ＤＣＩＭ、１００ＧＡＮＯＮ、１０１ＧＡＮＯＮ、・・・、１０４ＧＡＮＯＮ、ＩＭＧ＿０００１．ＪＰＧ、ＩＭＧ＿２００１．ＪＰＧ、・・・、ＩＭＧ＿８００１．ＪＰＧの１１個のオブジェクト属性情報を記憶している。しかし、グループ化されたオブジェクトであることを認識できないアプリケーションやＥｘｐｌｏｒｅ等のＯＳ付属のツール等では、１１個のオブジェクトとしてしか取り扱うことができない。このため、ＰＣ１０１でグループオブジェクトを構成する各ファイルに分解できる仕組みが必要である。そこで、以下では、アプリケーション５０においてグループオブジェクトを各ファイルに分解し保存する方法について、図６、７を参照して説明する。
【００３５】
図６は、グループオブジェクトを分解するためのカメラ１００とＰＣ１０１のアプリケーションとの間のシーケンスを例示する図である。図７は、ＰＣ１０１のアプリケーションによりグループオブジェクトを分解する処理を示すフローチャートである。図６において、まず、アプリケーション５０はＧｅｔＧｒｏｕｐＯｂｊｅｃｔＮｕｍをカメラ１００に送信し、カメラ１００からグループオブジェクトの数を取得する。さらに、アプリケーション５０は、ＧｅｔＧｒｏｕｐＯｂｊｅｃｔＨａｎｄｌｅｓをカメラ１００に送信し、各グループオブジェクトハンドルを取得する。図４（ｂ）の構成ならば、アプリケーション５０は、ＧｅｔＧｒｏｕｐＯｂｊｅｃｔＨａｎｄｌｅｓを受信したカメラ１００から返信されたハンドル値として、３，５，７，９，１１のグループオブジェクトハンドルを取得する。そして、アプリケーション５０は、ＧｅｔＯｂｊｅｃｔＮｕｍＩｎＧｒｏｕｐＯｂｊｅｃｔの引数にＧｅｔＧｒｏｕｐＯｂｊｅｃｔＨａｎｄｌｅｓにより取得したハンドル番号を指定してカメラ１００に送信し、オブジェクト数を取得する。次に、アプリケーション５０は、ＧｅｔＧｒｏｕｐＯｂｊｅｃｔの引数に、直前のＧｅｔＧｒｏｕｐＯｂｊｅｃｔで指定した引数と同じグループオブジェクトを指定してカメラ１００に送信し、カメラ１００から指定したグループオブジェクト全体を取得する。そして、カメラ１００から指定したグループオブジェクト全体を取得したアプリケーション５０は、個々のオブジェクトに分解しＨＤＤ３０等に保存する。このように、アプリケーション５０が、カメラ１００にＧｅｔＧｒｏｕｐＯｂｊｅｃｔＨａｎｄｌｅｓを送信して取得したハンドル数の分だけ、ＧｅｔＯｂｊｅｃｔＮｕｍＩｎＧｒｏｕｐＯｂｊｅｃｔとＧｅｔＧｒｏｕｐＯｂｊｅｃｔの送信を繰り返す。
【００３６】
次に、図７のフローを参照して、カメラ１００からグループオブジェクトを取得したアプリケーション５０が、個々のオブジェクトに分解し保存する処理について説明する。図７において、まず、アプリケーション５０は、カメラ１００からＧｅｔＧｒｏｕｐＯｂｊｅｃｔを指定して取得したグループオブジェクトの先頭画像ファイルのＥｘｉｆヘッダを解析し、ファイルサイズを取得する（Ｓ１００１）。次に、アプリケーション５０は、上記Ｅｘｉｆヘッダを解析して取得した第１ファイルサイズと、ＧｅｔＯｂｊｅｃｔＩｎｆｏによりカメラ１００から取得したグループオブジェクト全体の第２ファイルサイズとを比較する（Ｓ１００２）。そして、第１ファイルサイズの方が大きい場合、先頭画像ファイル受信中に通信が切断されたと判断し、本処理を終了する。
【００３７】
一方、第１ファイルサイズの方が小さい場合、グループオブジェクトを構成する先頭の画像ファイル分が取得できたと判断し、第１ファイルサイズ分を取り出して保存する（Ｓ１００３）。次に、アプリケーション５０は、次回以降の画像ファイルに対するループを開始する（Ｓ１００４）。ループ内では、前回処理で保存したファイルサイズ分だけメモリ領域をずらして次画像ファイルの先頭位置に移動し、次画像ファイルのＥｘｉｆヘッダを解析し、ファイルサイズを取得する（Ｓ１００４）。次に、第３ファイルサイズと、第２ファイルサイズから保存済みのファイルサイズを差し引いた第４ファイルサイズとを比較する（Ｓ１００５）。そして、第３ファイルサイズの方が大きい場合、次画像ファイル受信中に通信が切断されたと判断し、本処理を終了する。
【００３８】
一方、第３ファイルサイズの方が小さい場合、グループオブジェクトを構成する次画像ファイルが取得できたと判断し、第３ファイルサイズ分を取り出して保存する（Ｓ１００６）。Ｓ１００４〜Ｓ１００６のループをグループオブジェクトを構成するファイル数分だけ繰り返す。
【００３９】
以上述べた処理によって、ＰＣ１０１のアプリケーション５０において、グループオブジェクトを各ファイルに分解し保存することができる。
【図１】
0005574633.tif 000002
【図２】
0005574633.tif 000003
【図３】
0005574633.tif 000004
【図４】
0005574633.tif 000005
【図５】
0005574633.tif 000006
【図６】
0005574633.tif 000007
【図７】
0005574633.tif 000008