(57)【要約】【課題】コンピュータ等の情報処理装置と通信可能な電子カメラなどの電子機器において、情報処理装置から電子機器の記憶媒体に格納されているデータを要求された場合の応答時間の短縮を行い、情報処理装置のユーザビリティの向上を図る。【解決手段】主記憶装置と補助記憶装置とを有し、外部装置と接続され、外部装置とデータの送受信を行うことが可能な電子機器において、外部装置との接続が確立された後、外部装置からデータを要求される前に、外部装置から要求される予定のデータを補助記憶装置から主記憶装置に前もって読み込んでおく。【選択図】      図４
2006085377.tif 000002
【特許請求の範囲】
【請求項１】
主記憶装置と補助記憶装置とを有し、外部装置と接続され、該外部装置とデータの送受信を行うことが可能な電子機器において、
前記外部装置からデータを要求される前に、該外部装置から要求される予定のデータを前記補助記憶装置から前記主記憶装置に前もって読み込んでおくことを特徴とする電子機器。
【請求項２】
前記外部装置との接続が確立された後、該外部装置からデータを要求される前に、該外部装置から要求される予定のデータを前記補助記憶装置から前記主記憶装置に前もって読み込んでおくことを特徴とする請求項１に記載の電子機器。
【請求項３】
前記補助記憶装置にはデータがファイルとして保存されており、前もって前記主記憶装置に読み込んでおくデータとは、前記補助記憶装置に格納されているファイルの一部、または全部であることを特徴とする請求項１に記載の電子機器。
【請求項４】
前記主記憶装置に読み込んでおくデータのための領域に空きが無くなった場合には、直接前記補助記憶装置から情報を読み出して、前記外部装置からの要求に応ずることを特徴とする請求項１に記載の電子機器。
【請求項５】
前記外部装置から要求される予定のデータを前記主記憶装置に前もって読み込んでいる処理の途中に、前記外部装置からのデータ要求がきた場合で、必要なデータが前記主記憶装置にない場合には、相当する情報を前記補助記憶装置から前記主記憶装置に読み込んでから、前記外部装置にデータを返すことを特徴とする請求項１に記載の電子機器。
【請求項６】
前記電子機器はデジタルカメラであり、前記外部装置はコンピュータであることを特徴とする請求項１に記載の電子機器。
【請求項７】
主記憶装置と補助記憶装置とを有し、外部装置と接続され、該外部装置とデータの送受信を行うことが可能な電子機器を制御する方法であって、
前記外部装置からデータを要求される前に、該外部装置から要求される予定のデータを前記補助記憶装置から前記主記憶装置に前もって読み込んでおくように制御することを特徴とする電子機器の制御方法。
【請求項８】
前記外部装置との接続が確立された後、該外部装置からデータを要求される前に、該外部装置から要求される予定のデータを前記補助記憶装置から前記主記憶装置に前もって読み込んでおくように制御することを特徴とする請求項７に記載の電子機器の制御方法。
【請求項９】
前記補助記憶装置にはデータがファイルとして保存されており、前もって前記主記憶装置に読み込んでおくデータとは、前記補助記憶装置に格納されているファイルの一部、または全部であることを特徴とする請求項７に記載の電子機器の制御方法。
【請求項１０】
前記主記憶装置に読み込んでおくデータのための領域に空きが無くなった場合には、直接前記補助記憶装置から情報を読み出して、前記外部装置からの要求に応ずるように制御することを特徴とする請求項７に記載の電子機器の制御方法。
【請求項１１】
前記外部装置から要求される予定のデータを前記主記憶装置に前もって読み込んでいる処理の途中に、前記外部装置からのデータ要求がきた場合で、必要なデータが前記主記憶装置にない場合には、相当する情報を前記補助記憶装置から前記主記憶装置に読み込んでから、前記外部装置にデータを返すように制御することを特徴とする請求項７に記載の電子機器の制御方法。
【請求項１２】
前記電子機器はデジタルカメラであり、前記外部装置はコンピュータであることを特徴とする請求項７に記載の電子機器の制御方法。
【請求項１３】
請求項７乃至１２のいずれか１項に記載の制御方法をコンピュータに実行させることを特徴とするプログラム。
【請求項１４】
請求項１３に記載のプログラムをコンピュータ読み取り可能に記憶したことを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ等の情報処理装置と通信可能な電子カメラなどの電子機器において、情報処理装置から電子機器の記憶媒体に格納されているデータを要求された場合の応答時間の短縮を行い、情報処理装置のユーザビリティの向上を図る技術に関するものである。
【背景技術】
【０００２】
一般的に、デジタルカメラで撮影した画像はデジタルカメラに装着されているＣＦ（コンパクトフラッシュ（登録商標）メモリ）等の補助記憶装置にファイルとして格納される。その画像をコンピュータに取り込むのに、デジタルカメラをコンピュータと接続し、コンピュータ上でホストアプリケーションを起動し、画像を転送する方法が一般的に行われている。
【０００３】
通常、アプリケーションは、デジタルカメラの補助記憶装置に格納されている画像の一覧を縮小画像（サムネイル画像）で表示し、その中から所望のものをユーザが選択して、サムネイル画像に対応する画像ファイルをコンピュータに取り込み、コンピュータの表示画面上で表示、または、コンピュータの補助記憶装置に保存するような操作が行われる。
【０００４】
デジタルカメラで一般的に採用されている画像ファイルフォーマットのExif-Jpegでは、サムネイル画像は主画像データと同じ画像ファイルに格納されており、上記の場合、一覧表示の時点では、デジタルカメラからコンピュータには、画像ファイル中のサムネイル画像データが含まれる領域が送られるため、画像ファイル全てをコンピュータに転送する必要は無い。よって、ファイル全てを転送してサムネイル画像を表示するよりは、はるかに処理が早い。
【０００５】
例えば、送信側で、記憶されている原画像を縮小した縮小画像を作成し、縮小画像の画像データを受信側に伝送し、受信側で受信した縮小画像の一覧を表示し、一覧の中で選択された１つ又は複数の縮小画像に対応する原画像の画像データを送信側から受信側に伝送することが、特開平１０−０８４４７３号公報（特許文献１）に開示されていて公知である。
【特許文献１】特開平１０−０８４４７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、近年、デジタルカメラに装着される補助記憶装置の大容量化に伴い、補助記憶装置に格納される画像ファイルの数も膨大なものになってきており、縮小画像だけを転送する場合でも、補助記憶装置に格納されている全画像分の縮小画像を転送する場合には、かなりの時間を要するようになってきており、サムネイル画像の一覧表示時などでは、ユーザビリティの低下の原因となっている。
【０００７】
従って、本発明は上述した課題に鑑みてなされたものであり、その目的は、コンピュータ等の情報処理装置と通信可能な電子カメラなどの電子機器において、情報処理装置から電子機器の記憶媒体に格納されているデータを要求された場合の応答時間の短縮を行い、情報処理装置のユーザビリティの向上を図ることである。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明に係わる電子機器は、主記憶装置と補助記憶装置とを有し、外部装置と接続され、該外部装置とデータの送受信を行うことが可能な電子機器において、前記外部装置からデータを要求される前に、該外部装置から要求される予定のデータを前記補助記憶装置から前記主記憶装置に前もって読み込んでおくことを特徴とする。
【０００９】
また、この発明に係わる電子機器において、前記外部装置との接続が確立された後、該外部装置からデータを要求される前に、該外部装置から要求される予定のデータを前記補助記憶装置から前記主記憶装置に前もって読み込んでおくことを特徴とする。
【００１０】
また、この発明に係わる電子機器において、前記補助記憶装置にはデータがファイルとして保存されており、前もって前記主記憶装置に読み込んでおくデータとは、前記補助記憶装置に格納されているファイルの一部、または全部であることを特徴とする。
【００１１】
また、この発明に係わる電子機器において、前記主記憶装置に読み込んでおくデータのための領域に空きが無くなった場合には、直接前記補助記憶装置から情報を読み出して、前記外部装置からの要求に応ずることを特徴とする。
【００１２】
また、この発明に係わる電子機器において、前記外部装置から要求される予定のデータを前記主記憶装置に前もって読み込んでいる処理の途中に、前記外部装置からのデータ要求がきた場合で、必要なデータが前記主記憶装置にない場合には、相当する情報を前記補助記憶装置から前記主記憶装置に読み込んでから、前記外部装置にデータを返すことを特徴とする。
【００１３】
また、この発明に係わる電子機器において、前記電子機器はデジタルカメラであり、前記外部装置はコンピュータであることを特徴とする。
【００１４】
また、本発明に係わる電子機器の制御方法は、主記憶装置と補助記憶装置とを有し、外部装置と接続され、該外部装置とデータの送受信を行うことが可能な電子機器を制御する方法であって、前記外部装置からデータを要求される前に、該外部装置から要求される予定のデータを前記補助記憶装置から前記主記憶装置に前もって読み込んでおくように制御することを特徴とする。
【００１５】
また、この発明に係わる電子機器の制御方法において、前記外部装置との接続が確立された後、該外部装置からデータを要求される前に、該外部装置から要求される予定のデータを前記補助記憶装置から前記主記憶装置に前もって読み込んでおくように制御することを特徴とする。
【００１６】
また、この発明に係わる電子機器の制御方法において、前記補助記憶装置にはデータがファイルとして保存されており、前もって前記主記憶装置に読み込んでおくデータとは、前記補助記憶装置に格納されているファイルの一部、または全部であることを特徴とする。
【００１７】
また、この発明に係わる電子機器の制御方法において、前記主記憶装置に読み込んでおくデータのための領域に空きが無くなった場合には、直接前記補助記憶装置から情報を読み出して、前記外部装置からの要求に応ずるように制御することを特徴とする。
【００１８】
また、この発明に係わる電子機器の制御方法において、前記外部装置から要求される予定のデータを前記主記憶装置に前もって読み込んでいる処理の途中に、前記外部装置からのデータ要求がきた場合で、必要なデータが前記主記憶装置にない場合には、相当する情報を前記補助記憶装置から前記主記憶装置に読み込んでから、前記外部装置にデータを返すように制御することを特徴とする。
【００１９】
また、この発明に係わる電子機器の制御方法において、前記電子機器はデジタルカメラであり、前記外部装置はコンピュータであることを特徴とする。
【００２０】
また、本発明に係わるプログラムは、上記の制御方法をコンピュータに実行させることを特徴とする。
【００２１】
また、本発明に係わる記憶媒体は、上記のプログラムをコンピュータ読み取り可能に記憶したことを特徴とする。
【発明の効果】
【００２２】
本発明によれば、コンピュータ等の情報処理装置と通信可能な電子カメラなどの電子機器において、情報処理装置から電子機器の記憶媒体に格納されているデータを要求された場合の応答時間の短縮を行い、情報処理装置のユーザビリティの向上を図ることが可能となる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の好適な一実施形態について説明する。
【００２４】
デジタルカメラの補助記憶装置に格納されている画像の縮小画像をコンピュータに転送するのに要する時間としては、大きく分けて、
（１）補助記憶装置から画像ファイル中の縮小画像領域を読み出すのに要する読み出し時間
（２）縮小画像領域をコンピュータに転送するのに要するデータ転送時間
の２つとなる。
【００２５】
本発明の一実施形態では、このうちの読み出し時間に注目する。そして、デジタルカメラがコンピュータに接続されると、アプリケーションから縮小画像領域を要求される前に、前もって、デジタルカメラの補助記憶装置からＲＡＭなどの主記憶装置に縮小画像領域を読み出して格納しておくようにする。コンピュータから、縮小画像領域の転送要求があった場合には、主記憶装置に読み込んでおいた縮小画像データを返す。
【００２６】
本実施形態のシステムは、大きく分けて、撮影した画像データをファイルで記録する補助記憶手段と主記憶手段とを備えるデジタルカメラ等の電子機器と、その電子機器を接続することができるコンピュータなどの情報処理装置と、この情報処理装置上で動作するアプリケーションソフトウェアとからなっている。
【００２７】
以下、本発明の一実施形態について具体的に説明する。
【００２８】
本実施形態は、デジタルカメラとコンピュータがＰＴＰ(Picture Transfer Protocol)通信で接続されてから、アプリケーションがデジタルカメラに対してサムネイルデータを要求するまでの時間に、サムネイルデータの主記憶装置への読み込みを実施しておくことで、アプリケーションにおける縮小画像（サムネイル画像）の一覧表示の高速化を実現するものである。
【００２９】
本実施形態のシステムは、図１に示すように、ＰＴＰ通信機能を有するデジタルカメラ１００とＰＴＰ通信可能なコンピュータ１０１とを備えており、これらは、ＰＴＰ通信可能な通信インターフェース１０２で通信可能である。このデジタルカメラ１００は、コンピュータ１０１との通信インターフェース１０２による接続を検知し、通信モードに遷移する。それ以前のモードは、再生モードになっているものである。コンピュータには、ＰＴＰで通信することができるアプリケーション、ドライバ(ＯＳ機能含む)がインストールされている。
【００３０】
図２は、図１におけるデジタルカメラ１００とコンピュータ１０１とを備えるシステムのブロック図である。
【００３１】
２０１は光学系を示す。被写体からの光束が光学系２０１を通して結像され、撮像素子２０２で電荷として保持される。撮像素子２０２で蓄積された電荷が撮像プロセス部２０３で画像信号に変換される。撮像プロセス部２０３から出力された信号は、Ａ／Ｄコンバータ２０４によりデジタル信号に変換されて、データバス２０５を介してＲＡＭ２１０に保存される。
【００３２】
中央処理プロセス部２１３の構成は、画像処理部２０７（ホワイトバランス、シャープ、ぼかし、カラーバランス、レベル補正等）、圧縮伸張部２０８（ＪＰＥＧの伸張等）、表示制御部２０９(表示器２１７へのＵＩ（ユーザインターフェイス）の描画）、記録再生制御部２１１（記憶媒体２１８へのＩ／Ｏ制御）、通信制御部２１２(通信器２１９へのデータのＩ／Ｏ制御)、中央制御部２１５(各制御部の統括)の６つから概略成り立っている。
【００３３】
システム制御部２１４は、データバス２０５と接続されており、操作器２１６によるユーザによって行われる操作の制御を行なう。表示器２１７は、表示制御部２０９によって要求された描画を表示するものである。記憶媒体２１８には、ＲＡＭ２１０に保存された画像(ＪＰＥＧ画像など)が記録再生制御部２１１を介して格納される。この記憶媒体２１８は、脱着可能な媒体でも装置に組み込まれた記憶媒体でもどちらでもかまわず、デジタルカメラに電源が投入されていない状態でも記憶を保持することが可能な媒体である。なお、本実施形態では、記憶媒体に格納されるＪＰＥＧ画像ファイルは、ＤＣＦ規格に準拠したもので、ファイルの先頭部分にサムネイルデータが格納されているものとする。通信器２１９は、無線、有線どちらでもかまわず、脱着可、不可を問わない。通信制御部２１２では、ＰＴＰの通信が可能である。
【００３４】
コンピュータ１０１の操作器２２１は、キーボードやマウスなどであり、システム制御部２２５で操作の制御が行われる。表示器２２２は、出力モニタであり、表示制御部２２８により描画されたＵＩを出力する。ＲＡＭ２２９は、コンピュータのＯＳや、ＰＴＰに対応したアプリケーション（ＯＳ含む）が格納される揮発性のメモリである。記憶媒体２２３は、記憶制御部２３０によるデータの要求に応じて入出力をする装置であり、不揮発性の記憶装置である。記憶媒体２２３には、ＯＳやＰＴＰに対応したアプリケーションが格納されている。通信器２２４は、通信インターフェース１０２と接続可能な通信装置であり、通信制御部２３１によりデータの入出力を行なう。通信器２２４は、無線、有線どちらでもかまわず、脱着可、不可を問わない。中央処理プロセス部２２７は、表示制御部２２８、記憶制御部２３０、通信制御部２３１、中央制御部２２６(各制御部の統括等)で構成される。データバス２３２は、システム制御部２２５、表示制御部２２８、ＲＡＭ２２９、記憶制御部２３０、通信制御部２３１と接続されている。
【００３５】
図３は、コンピュータ１０１とデジタルカメラ１００において、通信インターフェース１０２によって接続が行われるときに、主要となるモジュール構成を示す図である。
【００３６】
Application３０１は、コンピュータで動作するデジタルカメラ用アプリケーションである。事前にＯＳ３０２に登録されており、デジタルカメラの接続をトリガーに自動起動されるものでもよいし、ユーザの操作によって起動されるものでもよい。本実施形態では、主としてＯＳ３０２によってデジタルカメラ１００が接続されたことを通知されて起動されるもので、デジタルカメラ内に格納されている画像の縮小画像を一覧表示するものを想定している。そのため、Application３０１は、ＰＴＰに対応しているアプリケーションである。ＯＳ３０２がデジタルカメラ１００の接続を確立していれば、Application３０１は、デジタルカメラ１００とアクセス可能になる。
【００３７】
ＯＳ３０２は、コンピュータ１０１のOperating Systemである。Microsoft社のWindows（登録商標）のようなＰＴＰ通信を解釈できる機能を有するものや、DriverをインストールしてＰＴＰ通信ができるようになったＯＳを想定している。ＯＳ３０２は、ＰＴＰで通信可能なデバイスを認識し、デジタルカメラ１００にあるマルチメディア情報を取得・管理する機能も有する。全情報を取得後、ＯＳ３０２は、アプリケーションとデジタルカメラを接続可能状態にし、アプリケーションからの要求にデバイスハンドルを渡すことができる。今回は、全情報取得後、Application３０１を自動起動する設定がされているものとする。
【００３８】
PTPInitiatorDriver３０３は、ＯＳ３０２にインストールされているＰＴＰのイニシエータドライバであり、ＯＳの要求によってロードされる。
【００３９】
通信インターフェース１０２は、ＰＴＰ通信可能な通信インターフェースであり、ＰＴＰ通信が可能であるならば、有線、無線を問わず、また脱着可能、不可能を問わない。
【００４０】
デジタルカメラ１００は、ＰＴＰ通信が可能なデジタルカメラであり、その内部には、PTPResponderDriver３０６、PTPCacheTable３０７、FileEntryCache３０８、FileHeaderCache３０９がある。
【００４１】
PTPResponderDriver３０６は、デジタルカメラ１００に組み込まれているＰＴＰのレスポンダドライバを想定している。
【００４２】
PTPCacheTable３０７は、ＰＴＰで要求される情報のキャッシュテーブルであり、一度利用されたものに関しては、キャッシュの整合性が保証されている限り、ここを参照して情報を取得できる様になっている。これはデジタルカメラ１００のＲＡＭに作られるものである。一般的に、ＲＡＭへのアクセスは記憶媒体へのアクセスに比べ高速である。よって、記憶媒体に直接アクセスして、情報を解析するよりも、ＲＡＭ上にキャッシュを作成することで、高速化を実現できる。ここでは、キャッシュの構造については問わないこととする。
【００４３】
FileEntryCache３０８は、ファイルのエントリ情報、すなわち、ファイル名、ファイルサイズ、属性、作成日時や更新日時、アクセス日時など、ファイルエントリに書かれる項目をキャッシュするためのものである。PTPCacheTable３０７と同様に、キャッシュの整合性が保証されている限り参照できるため、アクセスの高速化を実現することができる。
【００４４】
FileHeaderCache３０９は、画像ファイルのヘッダ領域をキャッシュするためのものである。本実施形態のデジタルカメラは、ＤＣＦ準拠のExif-Jpegを生成するものとしており、ヘッダ領域には、サムネイルデータも含まれている。これも、PTPCacheTable３０７と同様に、キャッシュの整合性が保証されている限り参照できるため、アクセスの高速化を実現することができる。
【００４５】
図４は、デジタルカメラ１００が通信インターフェース１０２によってコンピュータ１０１と接続されるのを検知してから、ＯＳ３０２がApplication３０１へ起動通知するまでの時間において、デジタルカメラ１００が行なう処理のフローチャートである。
【００４６】
Ｓｔａｒｔ４００によって、デジタルカメラは起動される。Ｓｔａｒｔ４００の後、デジタルカメラ１００は、再生モードで起動を行い（ステップＳ４０１）、FileEntryCache３０８へ、全メディア情報のファイルエントリをキャッシュする(ステップＳ４０２)。このとき、キャッシュされるメディアの順番については問わないものとする。その後、通信インターフェース１０２を介して、コンピュータと接続を行ったとする(ステップＳ４０３)。このとき物理層による通信の接続を検知し、通信モードに遷移する(ステップＳ４０４)。
【００４７】
通信モードになると、FileEntryCache３０８にあるデータを基にして、フォルダ構成の作成を行ない、PTPCacheTable３０７ を作成する(ステップＳ４０５)。このとき、ＯＳ３０２が要求するであろうメディア情報とＯＳ３０２が要求するフォルダ構成を考慮してテーブルを作成する。より具体的には、ＯＳ３０２が要求するマルチメディア情報を満たすため、FileEntryCache３０８にある情報に加え、ＰＴＰ情報として必要な、ObjectHandleやObjectFormatCodeも作成して、PTPCacheTable３０７を作成する。この時、記憶媒体にアクセスすることはないため、高速に処理を完了することが可能である。
【００４８】
このタイミングとは別にコンピュータから、ＰＴＰの拡張オペレーションである一括転送オペレーションをサポートしているかどうかの問い合わせを受ける。本実施形態のデジタルカメラ１００は、一括転送オペレーションをサポートしているので、サポートしていると応答する。ここで、一括転送とは、PTPCacheTableにある全マルチメディア情報をそのまま転送することである。コンピュータで動作するPTPInitiatorDriverは受信したPTPCacheTableの情報を解析して、処理を行うことになる。
【００４９】
一括転送の要求がコンピュータ１０１から行われたとき(ステップＳ４０６)に、ステップＳ４０５が終了していれば、一括転送に応答する(ステップＳ４０８)が、そうでなければ、ステップＳ４０５の処理が終了するまで、ブロックする(ステップＳ４０７)。ステップＳ４０８の処理で、PTPCacheTableにある全マルチメディア情報を転送する。このとき、PTPCacheTableをサイズ固定で渡す方法もあるが、ＰＴＰオブジェクト数分のサイズだけ渡す可変長サイズでの転送も考えられる。図４の処理では、通信回数が一度のみになっているが、一括転送で行なうオペレーションのデータサイズが可変長である場合は、コンピュータ側でどの程度のサイズを確保して準備すればよいかわからないため、事前にそのサイズを問い合わせたりするオペレーションや、PTPCacheTable３０８につめられている構造体が、ＯＳ３０２が要求する情報の変更によって変化できるように、バージョンを取得して変化できるようにして、冗長性を持たせる方法もある。このことを考慮した場合でも数回程度の通信で、全マルチメディア情報を転送することができる。
【００５０】
一方、ステップＳ４０５の処理が終了すると、デジタルカメラ１００内では、別スレッドが起動され、FileHeaderCache３０９の作成が開始される(ステップＳ４１８)。ここでは、記憶媒体２１８に格納されている画像ファイルの先頭部分をあらかじめ決められているサイズ分、読み込み、FileHeaderCache３０９に詰め込んでいく。読み込むファイルの先頭サイズとFileHeaderCache３０９ のサイズはあらかじめ決められているものとする。本実施形態では、読み込むファイルの先頭サイズは１０KByte、FileHeaderCache３０９ のサイズは１００００KByteとされており、つまり、１０００画像ファイル分のファイルヘッダをFileHeaderCache３０９に格納することが可能である。なお、これらのサイズは、記憶媒体に格納されている画像ファイルや数に応じて、変更されるものでもかまわない。
【００５１】
コンピュータ１０１からヘッダ情報の転送要求オペレーションがきた場合、所望のファイルのヘッダがFileHeaderCache３０９ に格納されていれば、記録媒体へのアクセスが発生せず、迅速にコンピュータへヘッダ情報を返すことができる。結果として、Application３０１はサムネイルデータを含んだファイルヘッダ情報を高速に取得できるので、サムネイルの一覧表示を高速に行なうことが可能となる。
【００５２】
なお、FileHeaderCache３０９には１０００画像分しか入らないので、それを超える画像がある場合には、超えた部分のファイルヘッダを取得しようとすると、記録媒体へのアクセスが発生することになり、従来どおりの反応時間となる。しかし、１０００画像というのは、実用上、十分な数値であることと、FileHeaderCache３０９はデジタルカメラ１００のＲＡＭに作成されるので、主記憶容量が十分に余裕があるデジタルカメラの場合には、さらに多くの画像ファイル分のFileHeaderCache３０９が用意できる。その場合には、１０００画像分より多い枚数まで高速化することが可能となる。
【００５３】
なお、FileHeaderCache３０９は一般的なFIFOではなく、一度、参照されても、キャッシュからは削除されないものである。削除されるのは、対応する画像ファイルが削除されるときのみとなる。
【００５４】
図５は、コンピュータ１０１が通信インターフェース１０２によってデジタルカメラ１００と接続されるのを検知してから、ＯＳ３０２がApplication３０１へ起動通知し、Application３０１でサムネイル画像の一覧が表示されるまでの、コンピュータで行われるフローチャートを示す。
【００５５】
Ｓｔａｒｔ５００は、コンピュータが起動している状態を示す。
【００５６】
次に、通信インターフェース１０２を介した接続により、コンピュータ側で物理層の接続検知が行われる（ステップＳ５０１）。そして、ＯＳ３０２では、接続されたデバイスに関して、過去に接続されたデータに基づいて接続されたデバイスの認識を行なう(ステップＳ５０２)。ここでは、ＰＴＰ対応のデジタルカメラ１００が、過去に最低一度接続されて、ドライバがインストールされているものとする。その後、ＯＳ３０２は、PTPInitiatorDriver３０３に対して、デジタルカメラ１００の全マルチメディア情報とそのフォルダ構成の要求を行なう(ステップＳ５０３)。ここで要求するものは、ファイル名、ファイルサイズ、ファイル属性、ファイル作成日時、ＰＴＰのObjectHandle、ＰＴＰのObjectFormatCode、ＯＳ３０２が要求する形のフォルダ構成である。ＯＳ３０２の要求を受けた、PTPInitiatorDriver３０３は、一括データ転送機能をサポートしているかどうかの問い合わせを行なう(ステップＳ５０４)。本実施形態では、ＰＴＰオペレーションのGetDeviceInfoを用いて問い合わせを行う。問い合わせの結果、一括データ転送機能をサポートしている場合（ステップＳ５０５Ｙｅｓ）には、PTPInitiatorDeriver３０３は、一括データ転送の要求を行なう(ステップＳ５０７)。データを受信後、PTPInitiatorDriver３０３は、受信データを基にしてＯＳ３０２が要求する形に見合ったデータに解析を行い、ＯＳ３０２に応答する(ステップＳ５０９)。
【００５７】
一方、ステップＳ５０５の処理でＮｏと判定された場合、PTPInitiatorDriver３０３は、ＰＴＰオペレーションのGetStorageIDs、GetStorageInfo、GetObjectHandles、GetObjectInfoを用いるなどして、デジタルカメラ１００内の全マルチメディア情報を取得する。その後、ステップＳ５０８の処理へ遷移する過程を取る。
【００５８】
ＯＳ３０２は、PTPInitiatorDriver３０３に対して行なった要求に対する応答を受信した後、Application３０１を起動する(ステップＳ５１０)。Application３０１は、起動され、画像ファイルのヘッダデータを要求する(ステップＳ５１１)。ヘッダデータを受信すると、データを解析し、サムネイルデータを抽出し(ステップＳ５１２)、それを、表示画面に表示する(ステップＳ５１３)。これを表示するサムネイルの数の分だけ、繰り返す。
【００５９】
図７は、デジタルカメラ１００とコンピュータ１０１が接続を行い、ＯＳ３０２がApplication３０１を起動するまでのシーケンス図である。これは図３のモジュール構成と対応した図である。
【００６０】
通信インターフェース１０２によって、物理層の接続が行なわれると(７０９)、デジタルカメラ１００とコンピュータ１０１は、接続が検知される。デジタルカメラ１００は、物理層の接続が行なわれる前、もしくは後に、一度再生モードに突入する(本実施形態のデジタルカメラ１００では、通信モードの前は必ず再生モードであるとする)。再生モードの場合では、ファイルエントリ情報はすべて、FileEntryCache３０８に書き込まれてキャッシュされている。ここで作成されるキャッシュ項目は、ファイル名、ファイルサイズ、ファイル属性、ファイル作成日時であり、ファイルキャッシュの順序に対しては、特に規定はない。
【００６１】
その後、通信モードが起動されると、通信モードの起動時に別スレッドを立ち上げて、事前にＯＳ３０２が要求する情報をPTPCacheTable３０７に作成する。ここでは、FileEntryCache３０８の情報を基にして作成するため、記憶媒体２１８へのアクセスが発生せず、高速に処理できる。
【００６２】
別スレッドが起動されている間に、コンピュータ３００側では、物理層の接続後(７０９)、ＯＳ３０２が接続検知を行い、デバイスとのネゴシエーションを始める(７１０)。ネゴシエーションの終了後に、イメージングデバイスの認識をし、デバイスの情報をPTPInitiatorDriver３０３へ対し要求する。ここで要求するものは、ファイル名、ファイルサイズ、ファイル属性、ファイル作成日時、PTPのObjectHandle、PTPのObjectFormatCode、フォルダ構成である。ＯＳ３０２の要求を受けたPTPInitiatorDriver３０３は、データの一括転送をサポートしているかどうかを知るために、GetDeviceInfoオペレーションコマンドを発行し、デジタルカメラ１００へ問い合わせる。要求を受けたデジタルカメラのPTPResponderDriver３０６は、一括転送をサポートしているという情報で応答する。
【００６３】
ここで一括転送とは、PTPCacheTable３０７に含まれる情報をそのままＰＣへ転送する機能のことを言う。
【００６４】
コンピュータのPTPInitiatorDriver３０３は、次にPTPの拡張オペレーションである一括転送オペレーションGetPTPCacheTableを実行する。
【００６５】
デジタルカメラ１００は、GetPTPCacheTableを受信し、PTPCacheTable３０７がＯＳ３０２の要求にこたえられる状態になっているかどうかを判定し、答えられる場合は、即答する。そうでない場合、Table作成が完了するまで応答をブロックする。
【００６６】
PTPInitiatorDriver３０３は、GetPTPCacheTableの応答を受信した後、受信したテーブル情報を解析し、カメラ内のマルチメディアオブジェクト構成を解析して、ＯＳ３０２が要求する構造に変更してＯＳ３０２に応答する。ＯＳ３０２は受信後、Application３０１を起動する。
【００６７】
デジタルカメラ１００では、PTPCacheTableの作成を終えると、すぐにFileHeaderCache３０９ の作成を開始する(７２９)。
【００６８】
FileHeaderCache３０９の作成が完了した後に、ファイルヘッダ情報の取得オペレーションGetFileHeaderが実行された場合には、FileHeaderCache３０９にある情報を応答として返すことができる。本実施形態では、PTPCacheTableの作成が完了してから、GetFileHeaderオペレーションが実行されるまでの時間を利用し、GetFileHeaderで要求される情報を、あらかじめ記憶媒体から、ＲＡＭ（FileHeaderCache３０９）に読み出しておく。記憶媒体よりＲＡＭの方がデータの読み込みが早いため、こうしておくことにより、GetFileCacheに対する応答が迅速におこなえることになる。
【００６９】
図７によると、画像ファイルが多い場合、FileHeaderCache３０９が全ての画像をキャッシュする前に、アプリケーションからのヘッダ取得要求GetFileHeaderオペレーションが実行されることも考えられる。つまり、図７におけるキャッシュ作業完了７３０の前にGetFileCache７４０が実行された場合である。この場合、キャッシュ作業完了７３０までGetFileCache７４０をエラー終了、または待機させることも可能であるが、そうすると、その間、アプリケーションは、サムネイルを表示することが出来なくなり、ユーザビリティの低下をもたらす。これを避けるため、本実施形態のデジタルカメラでは、FileHeaderCache３０９が作成されている最中、つまり、図４におけるステップＳ４１０の処理が実行されている途中に、ヘッダ取得要求GetFileHeaderが実行された場合には、キャッシュ作業を行っているスレッドに対して割り込みを行い、キャッシュ処理を中断して、割り込み処理を行い、GetFileHeaderに対する応答を優先的に行なうようになっている。
【００７０】
図６に、この割り込み処理でのフローチャートを示す。
【００７１】
Ｓｔａｒｔ８００は割り込み処理の開始を表す。ステップＳ８１０において、GetFileHeaderで要求されているファイルヘッダがFileHeaderCache３０９にキャッシュ済みかを判定する。キャッシュ済みの場合には、ステップＳ８３０にて、FileHeaderCache３０９にキャッシュされているデータをGetFileHeaderの応答として返す。一方、まだ、キャッシュ済みでは無い場合には、ステップＳ８２０にて、所望のファイルヘッダを記録媒体から読み込み、FileHeaderCache３０９にキャッシュする。その後、そのキャッシュしたデータをステップＳ８３０にて、GetFileHeaderの応答として返す。
【００７２】
図８はこの時のFileHeaderCache３０９の状態を説明するための概念図である。
【００７３】
FileHeaderCache３０９を作成するスレッドが起動されると、記憶媒体に格納されている画像ファイルのヘッダが順にFileHeaderCache３０９に格納され始める。本実施形態では、記憶媒体に格納されているファイルのファイル名順に格納していく。ただし、これに限定されるものではない。図８の９０２はファイルＦ１，Ｆ２，Ｆ３に対する処理までが完了している状態で、FileHeaderCache３０９には、各ファイルに対応するヘッダＨ１，Ｈ２，Ｈ３ が格納されている。通常ならば、次に処理するのはファイルＦ４であり、FileHeaderCache３０９には、Ｆ４のヘッダであるＨ４が格納されるはずである。しかし、コンピュータから、GetFileHeaderが実行され、要求されているファイルが Ｆｎのものの場合、ＦｎのヘッダＨｎはFileHeaderCache３０９に存在しないため、Ｆｎに対する処理が行なわれ、ＦｎのヘッダであるＨｎがFileHeaderCache３０９に格納されて、そのデータがGetFileHeaderの応答として返される。この割り込み処理が終了すると、FileHeaderCache３０９を作成するスレッドは処理を続行し、ファイルF４に対する処理を行う。この結果、FileHeaderCache３０９の状態は、９０３のようになる。 
以上、説明してきたように、本実施形態では、デジタルカメラとコンピュータの接続が確立されるとすぐに記憶媒体からファイルヘッダを読み出し、キャッシュしている。多くの場合、コンピュータがデジタルカメラなどのデバイスを認識すると、ＯＳやドライバでのなんらかの処理が行われ、その処理が完了した後に、コンピュータ上で動作するアプリケーションがデバイスにアクセスできるようになる。本実施形態では、この、ＯＳやドライバで必要とされる時間に注目し、その間に、デジタルカメラ内で、アプリケーションから要求されると予想されるサムネイルデータを含んだ領域（ファイルのヘッダ部分）を記憶媒体から読み出しＲＡＭ内にキャッシュするようにしている。一般的に、記憶媒体とＲＡＭからの読み出し速度を比較すると、ＲＡＭの方がはるかに高速である。これらのことから、アプリケーションから、デジタルカメラに対して、サムネイルデータを要求されたときに、迅速にデータを返すことが可能となり、結果として、アプリケーションでのサムネイル一覧表示が高速に可能となる。
【００７４】
以上詳述したように、上記の実施形態によれば、電子機器の補助記憶装置に格納されているファイルの、電子機器と接続される外部装置から転送を要求される予定のデータ領域を、あらかじめ主記憶装置にキャッシュしておくことで、外部装置からのデータの要求に迅速に応じることが可能となる。また、キャッシュ途中にデータ転送の要求が来た場合には、割り込み処理により、キャッシュを中断して、要求に対応することで、このような場合にも迅速に対応できる。
【００７５】
なお、上記の実施形態では、ＰＴＰ通信で接続されてから、アプリケーションがデジタルカメラに対してサムネイルデータを要求するまでの時間に、サムネイルデータの主記憶装置への読み込みを実施する例について説明したが、アプリケーションがデジタルカメラに対してサムネイルデータを要求するまでの時間であれば、ＰＴＰ通信による接続前や接続のための処理中であっても良い。
【００７６】
（他の実施形態）
また、各実施形態の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７７】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７８】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明した手順に対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【００７９】
【図１】本発明の一実施形態のデジタルカメラとコンピュータとを備えるシステムを示す図である。
【図２】本発明の一実施形態のデジタルカメラとコンピュータとを備えるシステムの機能ブロック図である
【図３】本発明の一実施形態のデジタルカメラとコンピュータとを備えるシステムの主要モジュール構成を表す図である。
【図４】本発明の一実施形態におけるデジタルカメラの動作を示すフローチャートである。
【図５】本発明の一実施形態におけるアプリケーションの動作を示すフローチャートである。
【図６】本発明の一実施形態におけるデジタルカメラの動作を示すフローチャートである。
【図７】本発明の一実施形態におけるデジタルカメラとコンピュータの動作を示すシーケンス図である。
【図８】本発明の一実施形態におけるファイルヘッダキャッシュを説明する概念図である。
【符号の説明】
【００８０】
１００  デジタルカメラ
１０１  コンピュータ
１０２  通信インターフェース
【図１】
2006085377.tif 000003
【図２】
2006085377.tif 000004
【図３】
2006085377.tif 000005
【図４】
2006085377.tif 000006
【図５】
2006085377.tif 000007
【図６】
2006085377.tif 000008
【図７】
2006085377.tif 000009
【図８】
2006085377.tif 000010