以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。なお、以下に説明する実施形態は飽くまでも一例であり、各種条件に応じて、本発明が適用可能な装置の構成は適宜修正又は変更してもよい。また、以下では、撮像装置の一例として、静止画データや動画データが撮影可能なデジタルカメラについて説明する。なお、いわゆるカメラ付き携帯電話も撮像装置の一例である。
図1は、本発明の実施形態に係るデジタルカメラ100の構成を示す図である。制御部101は、例えば、CPU(MPU)及びメモリ(DRAM、SRAM)等から成り、各種処理(プログラム)を実行してデジタルカメラ100の各構成を制御したり、各構成間でのデータ送信を制御したりする。また、制御部101は、ユーザからの操作を受け付ける操作部102からの操作信号に応じて、デジタルカメラ100の各構成を制御する。
操作部102は、例えば、電源ボタン、ズーム調整ボタン及びオートフォーカスボタン等の撮影に関連する各種操作を入力するスイッチ類から成る。また、操作部102は、メニュー表示ボタン、決定ボタン、その他、カーソルキー、ポインティングデバイス、又は、タッチパネル等で構成することが可能であり、ユーザによりこれらのキーやボタンが操作されると、操作部102は、制御部101に対して操作信号を送信する。さらに操作部102はレリーズボタンを含み、レリーズボタンは、いわゆる半押し状態で押下されるSW1と、いわゆる全押し状態で押下されるSW2とから構成される。SW1の押下により撮影準備指示が出力され、SW2の押下により撮影指示が出力される。なお、本実施形態では、静止画撮影のためのレリーズボタンと動画撮影のためのレリーズボタンとを共用しているが、別のボタンとすることも可能である。バス103は、各種データ、制御信号及び指示信号等をデジタルカメラ100の各ブロックに送るための汎用バスである。
撮像部110は、レンズにより取り込まれた被写体の光学像を、絞りにより光量を制御して、CCDセンサやCMOSセンサ等の撮像素子により画像信号に変換する。また、音声入力部120は、例えば、内蔵された無指向性のマイク又は音声入力端子を介して接続された外部マイク等により、デジタルカメラ100の周囲の音声を集音する。メモリ104は、例えばRAM(Random Access Memory)やフラッシュメモリであって、画像信号及び音声信号、デジタルカメラ100の設定情報等を一時的に記録する揮発性メモリと不揮発性メモリとの双方が備えられる。
記録媒体141は、デジタルカメラ100に接続可能な記録媒体である。記録媒体141は、デジタルカメラ100で生成された各種データ等を記録することができる。記録媒体141の例としては、例えば、ハードディスク、光ディスク、フラッシュメモリ等が挙げられる。本実施形態では、いわゆるメモリカードと呼ばれるデジタルカメラ100に装着可能なフラッシュメモリ装置を例に挙げて説明する。
音声出力部151は、例えば音声出力端子から成り、接続されたイヤホンやスピーカ等から音声を出力させるために音声信号を送信する。また、音声出力部151は、デジタルカメラ100に内蔵されてもよい。映像出力部150は、例えば映像出力端子から成り、接続された外部ディスプレイ等に映像を表示させるための画像信号を送信する。また、音声出力部151及び映像出力部150は、統合された1つの端子、例えばHDMI(登録商標)端子のような端子であってもよい。
通信部152は、RS232C、USB、IEEE1394、P1284、SCSI、モデム、LAN、IEEE802.11の無線通信等の通信インタフェースにより、外部デバイスとの間でシリアル又はパラレル通信によるデータの送受信を有線又は無線で行う。また、上記通信インタフェースに則って通信プロトコルを実行することにより、外部デバイスとデータを送受信することが可能となる。通信プロトコルの一例として、HTTP(Hyper Text Transfer Protocol)やPTP−IP(Picture Transfer Protocol over IP)等が挙げられる。表示部130は、記録媒体141に記録された画像データや各種メニュー等のGUIを表示する。表示部130は、例えば液晶ディスプレイ又は有機ELディスプレイ等を用いることができる。
また、以下では、情報処理装置の一例として、静止画データや動画データが取り込み可能なパーソナルコンピュータ(PC)について説明する。なお、タブレット型PCやいわゆるスマートフォンなどの携帯電話も情報処理装置の一例である。
図2は、本実施形態に係るPC200の構成を示す図である。PC200は、表示部201、操作部202、CPU203、一次記憶装置204、二次記憶装置205及び通信装置206を備える。各構成の基本的な機能は、デジタルカメラ100と同様であるから、詳細な説明は省略する。なお、表示部201には、LCD等のディスプレイ装置が用いられる。また、表示部201は、PC200が備える必要はなく、PC200は、表示部201の表示を制御する表示制御機能を有していればよい。また、二次記憶装置205は、ハードディスクドライブ、DVD−RWドライブ、CD−ROM、CD−R又はDVD−RAM等の光ディスクや、フレキシブルディスク又はMO等の磁気ディスク、また、フラッシュメモリ等の不揮発性メモリ等の外部記憶媒体を読み出し、及び、書き込みを行う装置であってもよい。さらに、操作部202としては、キーボード、マウス又はタッチパネルを用いることが可能である。
通信装置206に用いられる通信インタフェースやプロトコルは、デジタルカメラ100と同様であるため、説明は割愛する。PC200は、通信装置206を用いて、外部デバイスとデータを送受信することが可能となる。
以下では、外部装置の一例として、外部デバイスとの通信が可能なサーバについて説明する。サーバの各構成は、PC200と同様であるため、ここでは説明を省略する。サーバは、通信装置を用いて、外部デバイスとデータを送受信することが可能である。サーバは、外部デバイスからの通信要求に対して応答することにより、外部デバイスとのデータの送受信を行う。サーバが扱うことができる通信インタフェース及び通信プロトコルは、PC200と同様であるため、ここでは説明は省略する。
以下では、デジタルカメラ100、PC200及びサーバ300の接続形態の一例として、インフラストラクチャでの接続形態について説明する。図3は、本実施形態に係るデジタルカメラ100、PC200及びサーバ300の接続形態の例を示す図である。
デジタルカメラ100とPC200とは、通信ケーブルを介して接続される。通信ケーブルとしては、PTP規格に従ってデータを送受信できるものである限り、いかなるものでも構わない。一例として、USBケーブルが利用可能である。また、デジタルカメラ100とPC200とは、有線ではなく、例えば、IEEE802.11x(xはa,b,g,n等)に準拠した無線インタフェースによって接続されていてもよい。
デジタルカメラ100及びサーバ300とPC200及びサーバ300とは、インターネットを介して接続される。インターネットを構成する機器として、ルータやアクセスポイント等の機器が存在するが、ここでの説明は省略する。
以下、図4及び図5を用いて、PC200がデジタルカメラ100に送信先情報を設定する処理について説明する。なお、図4に示す処理は、PC200において、CPU203が二次記憶装置205から必要なデータ及びプログラムを読み出して実行することにより、実現する処理である。
ステップS101において、PC200は、デジタルカメラ100と接続したか否かを判定する。デジタルカメラ100と接続した場合、処理はステップS102に移行する。一方、デジタルカメラ100と接続していない場合、処理はステップS101に戻る。
ステップS102において、PC200は、デジタルカメラ100に機器情報取得要求を送信する。ステップS103において、PC200は、デジタルカメラ100から機器情報を取得したか否かを判定する。機器情報を取得した場合、処理はステップS104に移行する。一方、機器情報を取得していない場合、処理はステップS103に戻る。ここで、機器情報は、サーバ300にデジタルカメラ100を登録し、デジタルカメラ100を一意に識別するための識別子を取得するために用いられる情報である。なお、上記識別子は、デジタルカメラ100のMACアドレス、機器名称又はModelID等から構成される。
ステップS104において、PC200は、デジタルカメラ100に送信先情報取得要求を送信する。ステップS105において、PC200は、デジタルカメラ100に設定されている送信先情報を取得したか否かを判定する。送信先情報を取得した場合、処理はステップS106に移行する。一方、送信先情報を取得していない場合、処理はステップS105に戻る。
ステップS106において、PC200は、デジタルカメラ100の機器情報とともにカメラ登録要求をサーバ300に対して送信する。ステップS107において、PC200は、デジタルカメラ100の識別子(ID)をサーバ300から取得したか否かを判定する。デジタルカメラ100の識別子を取得した場合、処理はステップS108に移行する。一方、デジタルカメラ100の識別子を取得していない場合、処理はステップS107に移行する。
ステップS108において、PC200は、PC200の機器情報とともにPC登録要求をサーバ300に対して送信する。ここで、PC200の機器情報は、サーバ300に対して、送信先としてPC200を登録するための情報であり、PC200のMACアドレス又はGUID(PC200で発行される、機器を一意に特定するための識別子)から構成される。
ステップS109において、PC200は、サーバ300からPC200の識別子(ID)を取得したか否かを判定する。PC200の識別子を取得した場合、処理はステップS110に移行する。一方、PC200の識別子を取得していない場合、処理はステップS109に戻る。
次に、接続中のデジタルカメラ100のファイル送信先として、PC200を登録する際の処理について説明する。ステップS110において、PC200は、ペアリング確認要求をサーバ300に対して送信する。この処理は、デジタルカメラ100が未転送ファイルを全て送信する際に、送信先として設定されている機器を確認するための処理である。
ステップS111において、PC200は、サーバ300からペアリング情報を取得したか否かを判定する。ペアリング情報を取得した場合、処理はステップS112に移行する。一方、ペアリング情報を取得していない場合、処理はステップS111に戻る。
ステップS112において、PC200は、ペアリング情報に基づいて、デジタルカメラ100の送信先としてPC200が設定されているか否か、即ち、デジタルカメラ100とペアリング中であるか否かを判定する。デジタルカメラ100のファイル送信先としてPC200が設定されている場合(デジタルカメラ100とペアリング中である場合)、ペアリング登録処理は行われず、処理はステップS117に移行する。一方、デジタルカメラ100のファイル送信先として他の機器が設定されている場合(他の機器とペアリング中である場合)、処理はステップS113に移行する。また一方、デジタルカメラ100のファイル送信先が未だ設定されていない場合(ペアリング中ではない場合)、処理はステップS115に移行する。
ステップS113において、PC200は、図5(b)に示すペアリング警告画面を表示部201に表示する。このペアリング警告画面については後述する。ステップS114において、PC200は、ユーザによりペアリング要求が指示されたか否かを判定する。ここでは、ユーザが操作部202を操作することにより、ペアリング警告画面上でペアリング要求が指示されたか否かが判定される。ペアリング要求が指示された場合、処理はステップS115に移行する。一方、ペアリング要求が中断された場合、ペアリング登録が中断され、処理はステップS117に移行する。
ステップS115において、PC200は、ペアリング要求をサーバ300に対して送信する。ペアリング要求には、サーバ300にて機器を一意に特定することが可能な情報として、デジタルカメラ100の識別子及びPC200の識別子が含まれる。
ステップS116において、PC200は、サーバ300から未転送ファイルリストを取得したか否かを判定する。この未転送ファイルリストは、デジタルカメラ100からサーバ300に送信されたファイルをPC200が取得する際に利用される。未転送ファイルリストの取得処理については、後述する。
ステップS117において、PC200は、サーバ300に送信先情報取得要求を送信する。ステップS118において、PC200は、サーバ300から送信先情報を取得したか否かを判定する。送信先情報を取得した場合、処理はステップS119に移行する。ここで、送信先情報には、送信先に送信可能なファイルサイズ、ファイルフォーマット等の制約情報、並びに、送信元を一意に識別するための識別子(送信元の識別子)及び送信先を一意に識別するための識別子(送信先の識別子)等の管理情報が含まれる。
ステップS119において、PC200は、図5(a)に示す送信先設定画面を表示する。なお、図5(a)に示す送信先設定画面については後述する。ステップS120において、PC200は、ユーザが操作部202を操作することにより、デジタルカメラ100のファイル送信先の編集を行う。これにより、送信先情報の編集が行われる。このとき、送信先情報に含まれる送信先の識別子は、全ての未転送ファイルが送信される送信先であるか否かに応じて、値が変化する。即ち、ユーザにより選択されたファイルが送信される送信先である場合、当該送信先(例えば、PC200)の識別子が設定される。一方、未転送ファイルが全て送信される送信先である場合、デジタルカメラ100の識別子が設定される。なお、この処理は、ステップS120で行ってもよいし、後述する図8のステップS314で行ってもよい。このように本実施形態では、どのような送信処理が実効されるかに応じて、送信先の識別子を設定するか、デジタルカメラ100の識別子が設定されるかが決定される。
ステップS121において、PC200は、デジタルカメラ100に送信先情報設定要求及び送信先情報を送信する。ここで送信される送信先情報は、ステップS119で編集された送信先情報である。
図5(a)は、PC200において表示される送信先設定画面の一例を示す図である。図5(a)において、釦501は、送信先の選択を指示するための送信先選択指示部であり、ユーザが操作部202を操作することによって送信先を選択すると、当該送信先がデジタルカメラ100に設定される送信先として選択される。釦502は、デジタルカメラ100に設定される送信先の編集を指示する送信先編集指示部であり、ユーザが操作部202を操作することによって押下すると、上記送信先選択指示部501で選択された送信先がデジタルカメラ100の送信先として設定される。釦503は、PC200で編集された送信先をデジタルカメラ100に設定することを指示するための送信先設定指示部であり、ユーザが操作部202を操作することによって押下すると、編集された送信先がデジタルカメラ100に設定される。
図5(b)は、PC200において表示されるペアリング警告画面の一例を示す図である。図5(b)において、釦511は、デジタルカメラ100の送信先として接続中のPC200を設定することを指示するためのペアリング設定指示部である。ユーザが操作部202を操作することによって釦511が押下されると、ペアリング要求が指示される。釦512は、デジタルカメラ100の送信先として接続中のPC200を設定することを中断するためのペアリング中断指示部である。ユーザが操作部202を操作することによって釦512が押下されると、ペアリング要求が中断される。
次に、図6を用いて、デジタルカメラ100における送信先情報設定処理について説明する。なお、図6に示す処理は、デジタルカメラ100において、制御部101がメモリ104から必要なデータ及びプログラムを読み出して実行することにより実現する処理である。
ステップS201において、デジタルカメラ100は、通信部152を介して、PC200と接続したか否かを判定する。PC200と接続した場合、処理はステップS202に移行する。一方、PC200と接続していない場合、処理はステップS201に戻る。
ステップS202において、デジタルカメラ100は、PC200から機器情報取得要求を受信したか否かを判定する。機器情報取得要求を受信した場合、処理はステップS203に移行する。一方、機器情報取得要求を受信していない場合、処理はステップS204に移行する。
ステップS203において、デジタルカメラ100は、デジタルカメラ100の機器情報をPC200に送信する。ステップS204において、デジタルカメラ100は、PC200から送信先情報取得要求を受信したか否かを判定する。送信先情報取得要求を受信した場合、処理はステップS205に移行する。一方、送信先情報取得要求を受信していない場合、処理はステップS206に移行する。
ステップS205において、デジタルカメラ100は、メモリ104に記録されている送信先情報をPC200に送信する。ステップS206において、デジタルカメラ100は、PC200から送信先情報設定要求を受信したか否かを判定する。送信先情報設定要求を受信した場合、処理はステップS207に移行する。一方、送信先情報設定要求を受信していない場合、処理はステップS208に移行する。
ステップS207において、デジタルカメラ100は、PC200から受信した送信先情報をメモリ104に記録する。これにより、PC200からデジタルカメラ100に対して送信先情報の設定が行われる。ステップS208において、デジタルカメラ100は、PC200との接続を切断したか否かを判定する。PC200との接続を切断した場合、処理は終了する。一方、PC200との接続が切断されていない場合、処理はステップS201に戻る。
また、デジタルカメラ100に送信先情報が設定される際におけるデジタルカメラ100の処理において、デジタルカメラ100の表示部130には、図7(a)に示すように何も表示せず、ブラックアウトしてもよいし、図7(b)に示すように設定中であることを表示してもよい。
次に、図8を用いて、デジタルカメラ100において送信先情報が設定される際におけるサーバ300の処理について説明する。なお、図8に示す処理は、サーバ300において、CPU203が二次記憶装置205から必要なデータ及びプログラムを読み出して実行することにより実現する処理である。
ステップS301において、サーバ300は、PC200からデジタルカメラ100の登録要求を受信したか否かを判定する。登録要求を受信した場合、処理はステップS302に移行する。一方、登録要求を受信していない場合、処理はステップS305に移行する。
ステップS302において、サーバ300は、ステップS301にて登録要求されたデジタルカメラ100の機器情報に基づいて、当該デジタルカメラ100がサーバ300に登録済みであるか否かを判定する。デジタルカメラ100が登録済みである場合、処理はステップS304に移行する。一方、デジタルカメラ100が未だ登録されていない場合、処理はステップS303に移行する。
ステップS303において、サーバ300は、デジタルカメラ100の機器情報からデジタルカメラ100をサーバ300で一意に特定するための識別子(デジタルカメラ100の識別子)を発行する。ステップS304において、サーバ300は、デジタルカメラ100の識別子をPC200に送信する。
ステップS305において、サーバ300は、PC200の登録要求をPC200から受信したか否かを判定する。PC200の登録要求を受信した場合、処理はステップS306に移行する。一方、PC200の登録要求を受信していない場合、処理はステップS309に移行する。
ステップS306において、サーバ300は、登録要求されたPC200の機器情報に基づいて、当該PC200がサーバ300に登録済みであるか否かを判定する。PC200が登録済みである場合、処理はステップS308に移行する。一方、PC200が未だ登録されていない場合、処理はステップS307に移行する。
ステップS307において、サーバ300は、PC200の機器情報からPC200をサーバ300で一意に特定するための識別子(PC200の識別子)を発行する。ステップS308において、サーバ300は、PC200の識別子をPC200に送信する。
ステップS309において、サーバ300は、PC200からペアリング確認要求を受信したか否かを判定する。ペアリング確認要求を受信した場合、処理はステップS310に移行する。一方、ペアリング確認要求を受信しなかった場合、処理はステップS311に移行する。ステップS310において、サーバ300は、ペアリング確認処理を行う。このペアリング確認処理の詳細については後述する。
ステップS311において、サーバ300は、PC200からペアリング要求を受信したか否かを判定する。ペアリング要求を受信した場合、処理はステップS312に移行する。一方、ペアリング要求を受信しなかった場合、処理はステップS313に移行する。
ステップS312において、サーバ300は、PC200からのペアリング要求に応じてペアリング情報を更新し、デジタルカメラ100のファイル送信先としてPC200を設定し、未転送ファイルリストを更新する。そして、サーバ300は、更新した未転送ファイルリストをPC200に送信する。
ステップS313において、サーバ300は、PC200から送信先情報取得要求を受信したか否かを判定する。送信先情報取得要求を受信した場合、処理はステップS314に移行する。一方、送信先情報取得要求を受信していない場合、処理はステップS301に戻る。ステップS314において、サーバ300は、送信先情報をPC200に送信する。
ステップS314において、サーバ300は、送信先情報をPC200に送信する。このとき、サーバ300は、デジタルカメラ100のファイル送信先が、ユーザにより選択されたファイルが送信される送信先である場合、当該送信先の識別子を含む送信先情報を送信する。一方、デジタルカメラ100のファイル送信先が、未転送ファイルが全て送信される送信先である場合、サーバ300は、デジタルカメラ100の識別子を含む送信先情報を送信する。なお、この処理は、ステップS314で行ってもよいし、上述したステップS120で行ってもよい。また、デジタルカメラ100のファイル送信先が、ユーザにより選択されたファイルが送信される送信先であるか、未転送ファイルが全て送信される送信先であるか、サーバ300において予め管理されている。サーバ300は、この管理内容に基づいて、送信先情報を生成してPC200に送信する。
ここで、図8(a)のステップS310におけるペアリング確認処理について説明する。図8(b)は、図8(a)のステップS310におけるペアリング確認処理の詳細を示すフローチャートである。
ステップS3101において、サーバ300は、ステップS309で受信したペアリング確認要求に含まれる、デジタルカメラ100の識別子とPC200の識別子とからペアリング状況を判定する。デジタルカメラ100とPC200とがペアリングされている場合、処理はステップS3102に移行する。一方、デジタルカメラ100がPC200以外の機器とペアリングされている場合、処理はステップS3103に移行する。また一方、デジタルカメラ100が機器とペアリングされていない場合、処理はステップS3104に移行する。
ステップS3102において、サーバ300は、デジタルカメラ100がPC200とペアリング中であるというペアリング情報をPC200に対して通知する。ステップS3103において、サーバ300は、デジタルカメラ100がPC200以外の機器とペアリング中であるというペアリング情報をPC200に対して通知する。ステップS3104において、サーバ300は、デジタルカメラ100が機器とペアリングされていないというペアリング情報をPC200に対して通知する。
なお、上述した送信先情報設定処理では、PC200を介して、デジタルカメラ100に対して送信先情報の設定を行ったが、PC200を介さなくてもよい。例えば、デジタルカメラ100からサーバ300に接続して、デジタルカメラ100の登録処理及び送信先情報設定処理を行ってもよい。また、本実施形態では、PC200を送信先として設定したが、PC200に限らなくてもよい。例えば、スマートフォンやタブレット等の情報機器やネットワークHDDを送信先として設定してもよい。
次に、図9及び図10を参照しながら、ユーザにより選択されたファイルを送信する際のデジタルカメラ100の処理について説明する。なお、図9に示す処理は、ユーザが操作部102を操作して電源をオンすることにより開始される処理である。また、図9に示す処理は、デジタルカメラ100において、制御部101がメモリ104から必要なデータ及びプログラムを読み出して実行することにより実現する処理である。
先ず、デジタルカメラ100は、図10(a)に示す画像再生画面を表示部130において表示する。ステップS401において、デジタルカメラ100は、ユーザが操作部102を介して送信処理開始を指示したか否かを判定する。図10(a)に示す画像再生画面にてユーザが操作部102を操作することにより、ファイル送信処理開始が指示される。ファイル送信処理開始が指示された場合、図10(b)に示す送信先選択画面が表示部130に表示され、処理はステップS402に移行する。一方、ファイル送信処理開始が指示されていない場合、処理はステップS401に戻る。
ステップS402において、デジタルカメラ100は、ユーザが操作部102を操作して、図10(b)に示す送信先選択画面上で送信先が選択されたか否かを判定する。送信先が選択された場合、処理はステップS403に移行する。一方、送信先が選択されていない場合、処理はステップS402に戻る。
ステップS403において、デジタルカメラ100は、ユーザによって選択された送信先が、未転送ファイルを全て送信する送信先であるか否かを判定する。未転送ファイルを全て送信する送信先であるか否かは、上述した送信先情報に基づいて判定される。
送信先情報には、送信先情報として送信元の識別子、及び、送信先の識別子が含まれる。この二つの情報を比較し、送信元の識別子と送信先の識別子とが同一であった場合、ユーザによって選択された送信先が未転送ファイルを全て送信する送信先であると判定される。一方、送信元の識別子と送信先の識別子とが同一でない場合、ユーザによって選択された送信先が未転送ファイルを全て送信する送信先ではない(ユーザによって選択されたファイルを送信する送信先である)と判定される。このように識別子を区別することによって、デジタルカメラ100は送信先に関する詳細な情報を保持しなくとも、どのような送信処理を行えばよいかを判断することが可能となる。
ユーザによって選択された送信先が、未転送ファイルを全て送信する送信先ではない場合、処理はステップS404に移行する。一方、ユーザによって選択された送信先が、未転送ファイルを全て送信する送信先である場合、記録媒体141に記録されている全ての未転送ファイルが送信される。この未転送ファイルの送信処理については後述する。
ステップS404において、デジタルカメラ100は、図10(c)に示す送信ファイル選択画面を表示部130に表示する。この送信ファイル選択画面については、後述する。ユーザが操作部102を操作することにより、送信ファイル選択画面上で送信対象ファイルが選択される。
ステップS405において、デジタルカメラ100は、ユーザにより選択されたファイルのサイズが送信先に送信可能なサイズであるか否かを判定する。送信先に送信可能なサイズであるか否かは、上述した送信先情報に基づいて判定される。選択されたファイルサイズが送信先に送信可能なサイズより大きい場合、処理はステップS406に移行する。一方、選択されたファイルサイズが送信先に送信可能なサイズ以下である場合、処理はステップS407に移行する。
ステップS406において、デジタルカメラ100は、図10(d)に示すファイル選択失敗画面を表示部130に表示し、ファイルの選択を解除する。このファイル選択失敗画面については後述する。ステップS407において、デジタルカメラ100は、ユーザが操作部102を操作することにより、送信ファイル選択画面上で、選択されたファイルの送信開始指示が行われたか否かを判定する。送信開始指示が行われた場合、処理はステップS408に移行する。一方、送信開始指示が行われていない場合、処理はステップS404に戻る。
ステップS408において、デジタルカメラ100は、送信対象ファイルのファイル情報をサーバ300に送信し、送信情報管理データ(以下、トークンと称す)の取得要求を行う。なお、上記ファイル情報には、ファイルサイズやファイルフォーマット等のファイル(画像データ)の属性情報が含まれる。
ステップS409において、デジタルカメラ100は、サーバ300からトークンを取得したか否かを判定する。トークンを取得した場合、処理はステップS410に移行する。一方、トークンを取得していない場合、処理はステップS409に戻る。
ステップS410において、デジタルカメラ100は、ユーザにより選択されたファイルを送信する。このとき、デジタルカメラ100は、図10(e)に示すファイル送信進捗画面を表示部130に表示する。このファイル送信進捗画面については後述する。デジタルカメラ100は、ユーザによって選択されたファイルの数だけステップS410におけるファイル送信処理を繰り返す。ユーザによって選択されたファイルの数だけサーバ300にファイルを送信すると、処理は終了する。
図10(a)は、デジタルカメラ100において表示される画像再生画面の一例を示す図である。図10(a)において、釦1001は、ファイル送信処理開始を指示するためのファイル送信処理開始指示部であり、ユーザが操作部102を操作することによって押下すると、デジタルカメラ100は、ファイル送信処理を開始する。
図10(b)は、デジタルカメラ100において表示される送信先選択画面の一例を示す図である。図10(b)において、釦1002は、送信先選択を指示するための送信先指示部であり、ユーザが操作部102を操作することによって押下すると、デジタルカメラ100は、送信先選択の指示を受け付ける。
図10(c)は、デジタルカメラ100において表示される送信ファイル選択画面の一例を示す図である。図10(c)において、釦1003は、送信ファイルの選択を指示するための送信ファイル選択指示部であり、ユーザが操作部102を操作することによって押下すると、デジタルカメラ100は、送信対象ファイルとしてファイル選択の指示を受け付ける。
図10(d)は、デジタルカメラ100において表示されるファイル選択失敗画面の一例を示す図である。ファイル選択失敗画面1005は、ユーザが操作部102を操作してファイルサイズ超過により送信不可なファイルが選択された場合に表示される画面である。
図10(e)は、デジタルカメラ100において表示されるファイル送信進捗画面の一例を示す図である。デジタルカメラ100は、送信したファイルの枚数、並びに、送信対象ファイルの枚数及び送信データ量の進捗をファイル送信進捗画面に表示する。釦1006は、送信中断を指示するための送信中断指示部であり、ユーザが操作部102を操作することによって押下すると、デジタルカメラ100は、送信中断の指示を受け付ける。
次に、図11を参照しながら、ユーザにより選択されたファイルがデジタルカメラ100から送信される際におけるサーバ300の処理について説明する。なお、図11に示す処理は、サーバ300において、CPU203が二次記憶装置205から必要なデータ及びプログラムを読み出して実行することにより実現する処理である。
ステップS501において、サーバ300は、デジタルカメラ100からトークン取得要求を受信したか否かを判定する。デジタルカメラ100からトークン取得要求を受信した場合、処理はステップS502に移行する。一方、デジタルカメラ100からトークン取得要求を受信していない場合、処理はステップS503に移行する。
ステップS502において、サーバ300は、トークン取得要求に応じてトークンを生成し、デジタルカメラ100に送信する。生成されたトークンは、ファイルの送信進捗管理やファイル情報管理に利用される。
ステップS503において、サーバ300は、デジタルカメラ100からファイル送信要求を受信したか否かを判定する。デジタルカメラ100からファイル送信要求を受信した場合、処理はステップS504に移行する。デジタルカメラ100からファイル送信要求を受信していない場合、処理はステップS501に戻る。ステップS504において、サーバ300は、デジタルカメラ100からファイルを受信する。
次に、図12乃至図14を参照しながら、デジタルカメラ100が全ての未転送ファイルを送信する処理について説明する。
図12は、デジタルカメラ100から全ての未転送ファイルが送信される際におけるデジタルカメラ100の処理を示すフローチャートである。図12に示す処理は、デジタルカメラ100において、制御部101がメモリ104から必要なデータ及びプログラムを読み出して実行することにより実現する処理である。
ステップS601において、デジタルカメラ100は、送信途中ファイル情報がメモリ104に記録されているか否かを判定する。送信途中ファイル情報は、少なくとも、ファイルパス、ファイルを一意に特定する識別子(以下、UUIDと称す)、及び、ファイルサイズから構成される情報であり、ファイルの存在の有無及び更新の有無等を判定するために利用される情報である。送信途中ファイル情報がメモリ104に記録されている場合、処理はステップS602に移行する。一方、送信途中ファイル情報がメモリ104に記録されていない場合、処理はステップS603に移行する。ステップS602において、デジタルカメラ100は、ファイルレジューム送信処理を行う。ステップS603において、デジタルカメラ100は、ファイル送信処理を行う。
次に、ステップS603のファイル送信処理について詳細に説明する。図13は、ステップS603におけるファイル送信処理の詳細を示すフローチャートである。
ステップS6031において、デジタルカメラ100は、記録媒体141に記録されているファイルの中から未転送ファイルを検索する。ステップS6032において、デジタルカメラ100は、記録媒体141に未転送ファイルがあるか否かを判定する。未転送ファイルがある場合、処理はステップS6033に移行する。一方、未転送ファイルがない場合、処理は終了する。ファイルが未転送であるか否かは、ファイルのタグ情報にファイルが送信済みであるか否かを記載し、その情報を基に判定される。また、判定方法としては、ファイルの転送状況を管理する管理ファイルを作成し、その管理ファイルを基に判定するようにしてもよい。
ステップS6033において、デジタルカメラ100は、サーバ300に送信対象ファイルのファイル情報を送信し、トークンの取得要求を行う。ステップS6034において、デジタルカメラ100は、サーバ300からトークンを取得したか否かを判定する。サーバ300からトークンを取得した場合、処理はステップS6035に移行する。一方、サーバ300からトークンを取得していない場合、処理はステップS6034に戻る。
ステップS6035において、デジタルカメラ100は、送信対象ファイルのファイルパス、UUID、ファイルサイズ及びトークンをメモリ104に記録する。そして、デジタルカメラ100は、図10(e)に示す送信進捗表示画面を表示部130に表示させる。ステップS6036において、デジタルカメラ100は、サーバ300に対する送信対象ファイルの送信を開始する。
ステップS6037において、デジタルカメラ100は、送信対象ファイルの送信が完了したか否かを判定する。通信エラーやバッテリー切れ等の要因で送信対象ファイルの送信が中断した場合、処理は終了する。これにより、ユーザが意図しない送信中断が発生した場合には、次回送信開始指示が行われた際に、ファイルレジューム送信処理が行われる。一方、ユーザが操作部102を操作することにより送信キャンセルが指示された場合、処理はステップS6038に移行する。また一方、送信対象ファイルの送信が完了した場合、処理はステップS6039に移行する。
ステップS6038において、デジタルカメラ100は、送信対象ファイルのファイルパス、UUID、ファイルサイズ及びトークンをメモリ104から削除する。そして、処理は終了する。これにより、ユーザが明示的に送信キャンセルの操作を行った場合、ファイルの途中から再送は行わない。また、送信対象ファイルの送信が完了した場合、ステップS6039に移行する。
ステップS6039において、デジタルカメラ100は、送信対象ファイルのファイルパス、UUID、ファイルサイズ及びトークンをメモリ104から削除する。そして、処理はステップS6031に移行する。
次に、ステップS602のファイルレジューム送信処理について詳細に説明する。図14は、ステップS602のファイルレジューム送信処理の詳細を示すフローチャートである。
ステップS6021において、デジタルカメラ100は、送信途中ファイル情報をメモリ104から読み出し、送信途中ファイル情報に格納されたファイルパスについて、記録媒体141内にファイルが存在するか否かを判定する。ファイルが存在する場合、処理はステップS6022に移行する。一方、ファイルが存在しない場合、処理はステップS6029に移行する。ステップS6029において、デジタルカメラ100は、送信途中ファイルが削除されたか、又は移動されたと判断し、ファイルパス、UUID、ファイルサイズ及びトークンをメモリ104から削除する。そして、処理はファイル送信処理に移行する。
ステップS6022において、デジタルカメラ100は、送信途中ファイル情報に格納されたファイルパスと同一の場所にあるファイルを送信対象ファイルとして設定する。ステップS6023において、デジタルカメラ100は、送信対象ファイルのUUIDと、メモリ104に記録されたUUIDとが一致し、且つ、送信対象ファイルのファイルサイズと、メモリ104に記録されたファイルサイズとが一致するか否かを判定する。UUIDが一致し、且つ、ファイルサイズが一致する場合、記録媒体141に記録されている送信対象ファイルが、前回送信時に送信対象ファイルとして指定されていたファイルと同一ファイルであると判定され、処理はステップS6024に移行する。一方、UUIDが一致しない、又は、ファイルサイズが一致しない場合、記録媒体141に記録されている送信対象ファイルが更新されたと判定され、処理はステップS6029に移行する。ここでは、ファイルを一意に特定するための識別子としてUUIDを使用しているが、ファイルを一意に特定できる識別子情報であれば、他の情報を用いてもよい。また、ファイルサイズではなく、例えば、ファイルの最終更新日時等、ファイル更新の有無を特定することができる情報であれば、他の情報を用いてもよい。本実施形態において、このようにファイル更新の有無を確認しているのは、サーバ300に格納されている送信途中ファイルと、これから送信を再開する送信対象ファイルとが異なると、ファイル送信完了時にサーバ300でファイルを結合する場合、異なる二種類のファイルが結合されてしまう可能性があるためである。
サーバ300に格納されている送信途中ファイルと、これから送信を再開する送信対象ファイルとが異なる場合、ステップS6029において、デジタルカメラ100は、送信対象ファイルのファイルパス、UUID、ファイルサイズ及びトークンをメモリ104から削除する。そして、処理はファイル送信処理に移行する。
ステップS6024において、デジタルカメラ100は、サーバ300に対してトークンを送信し、送信対象ファイルの送信済みデータ量の取得要求を行う。ステップS6025において、デジタルカメラ100は、サーバ300から送信済みデータ量を取得したか否かを判定する。送信済みデータ量を取得した場合、処理はステップS6026に移行する。一方、送信済みデータ量を取得していない場合、処理はステップS6025に戻る。
ステップS6026において、デジタルカメラ100は、送信済みデータ量から未転送ファイルを判断し、サーバ300に未転送ファイルの送信を開始する。ステップS6027において、デジタルカメラ100は、未転送ファイルの送信が完了したか否かを判定する。通信エラーやバッテリー切れ等の要因で未転送ファイルの送信が中断した場合、処理は終了する。これにより、ユーザが意図しない送信中断が発生した場合には、次回送信開始指示が行われた際に、ファイルレジューム送信処理が行われる。一方、ユーザが操作部102を操作し、送信キャンセルを指示した場合、処理はステップS6028に移行する。また一方で、ファイル送信が完了した場合、処理はステップS6029に移行する。
ステップS6028において、デジタルカメラ100は、送信対象ファイルのファイルパス、UUID、ファイルサイズ及びトークンをメモリ104から削除する。これにより、ユーザが明示的に送信キャンセルの操作を行った場合には、ファイルの途中から再送は行われない。ステップS6029において、デジタルカメラ100は、送信対象ファイルのファイルパス、UUID、ファイルサイズ及びトークンをメモリ104から削除する。そして、処理はファイル送信処理に移行する。
次に、図15を参照しながら、デジタルカメラ100から全ての未転送ファイルが送信される際におけるサーバ300の処理について説明する。なお、図15は、サーバ300において、CPU203が二次記憶装置205から必要なデータ及びプログラムを読み出して実行することにより実現する処理である。
ステップS701において、サーバ300は、デジタルカメラ100からトークン取得要求を受信したか否かを判定する。デジタルカメラ100からトークン取得要求を受信した場合、処理はステップS702に移行する。一方、デジタルカメラ100からトークン取得要求を受信していない場合、処理はステップS703に移行する。
ステップS702にて、サーバ300は、トークン取得要求に応じてトークンを生成し、当該トークンをデジタルカメラ100に送信する。生成されたトークンは、ファイルの送信進捗管理やファイル情報管理に利用される。
ステップS703において、サーバ300は、デジタルカメラ100からファイル送信要求を受信したか否かを判定する。デジタルカメラ100からファイル送信要求を受信した場合、処理はステップS704に移行する。一方、デジタルカメラ100からファイル送信要求を受信していない場合、処理はステップS705に移行する。
ステップS704において、サーバ300は、デジタルカメラ100からファイルを受信する。受信したファイルのデータ量情報は、トークンから送信済みデータ量を取得することができるよう、トークンとともに管理される。サーバ300は、受信したファイルのデータ量情報からファイルの送信完了を検知すると、ファイルが中断により分割送信されていた場合には、ファイルの結合を行う。
ステップS705において、サーバ300は、デジタルカメラ100から送信済みデータ量取得要求を受信したか否かを判定する。デジタルカメラ100から送信済みデータ量取得要求を受信した場合、処理はステップS706に移行する。一方、デジタルカメラ100から送信済みデータ量取得要求を受信していない場合、ステップS707に移行する。
ステップS706において、サーバ300は、送信済みデータ量取得要求に応じて、送信済みデータ量をデジタルカメラ100に送信する。ステップS707において、サーバ300は、未転送ファイルリスト取得要求をPC200から受信したか否かを判定する。PC200から未転送ファイルリスト取得要求を受信した場合、処理はステップS708に移行する。PC200から未転送ファイルリスト取得要求を受信していない場合、処理はステップS709に移行する。
ステップS708において、サーバ300は、未転送ファイルリストの取得要求に応じて、PC200からファイル取得完了通知を受信していないファイルの保存先URLのリストを、未転送ファイルリストとしてPC200に送信する。
ステップS709において、サーバ300は、PC200からファイル取得要求を受信したか否かを判定する。PC200からファイル取得要求を受信した場合、処理はステップS710に移行する。一方、PC200からファイル取得要求を受信していない場合、処理はステップS711に移行する。
ステップS710において、サーバ300は、ファイル取得要求により指定されたファイルをPC200に送信する。ステップS711において、サーバ300は、PC200からファイル取得完了通知を受信したか否かを判定する。PC200からファイル取得完了通知を受信した場合、処理はステップS712に移行する。一方、PC200からファイル取得完了通知を受信していない場合、処理はステップS701に戻る。
ステップS712において、サーバ300は、ファイル取得完了通知に該当するファイルの管理情報を転送済みに変更する。これにより、今後PC200から未転送ファイルリスト取得要求を受信した際、当該ファイルは未転送ファイルリストに含まれないようになる。また、PC200にてファイルの取得が完了したため、サーバ300は、当該ファイルをサーバの記憶領域から削除してもよい。
次に、図16及び図17を参照しながら、デジタルカメラ100から全ての未転送ファイルが送信される際における、PC200の処理について説明する。なお、図16に示す処理は、PC200において、CPU203が二次記憶装置205から必要なデータ及びプログラムを読み込んで実行することにより実現する処理である。
ステップS801において、PC200は、未転送ファイルリストの取得要求をサーバ300に送信する。ステップS802において、PC200は、サーバ300から未転送ファイルリストを取得完了したか否かを判定する。未転送ファイルリストを取得完了した場合、処理はステップS803に移行する。一方、未転送ファイルリストを取得完了していない場合、処理はステップS802に戻る。PC200は、未転送ファイルリスト取得要求をサーバ300に送信してから、未転送ファイルリスト取得完了するまで、図17(a)に示す未転送リスト受信通知画面を表示する。この未転送リスト受信通知画面については後述する。
ステップS803において、PC200は、未転送ファイルリストに未だ受信していないファイルがあるか否かを判定する。未転送ファイルリストに未だ受信していないファイルがある場合、処理はステップS804に移行する。一方、未転送ファイルリストに受信していないファイルがない場合(全てのファイルを受信した場合)、処理はステップS807に移行する。
ステップS804において、PC200は、未転送ファイルリストに記録されているファイルのURLを用いて、ファイル取得要求をサーバ300に対して送信する。ステップS805において、PC200は、サーバ300からのファイル取得が完了したか否かを判定する。ファイル取得が完了した場合、当該ファイルは二次記憶装置205に保存され、処理はステップS806に移行する。一方、サーバ300からのファイル取得が完了していない場合、処理はステップS805に戻る。
ステップS806において、PC200は、ファイル取得完了通知をサーバ300に送信する。なお、本通知は、PC200がファイルを取得し、二次記憶装置205に保存が完了したことをサーバ300に検知させるため行われる処理である。PC200は、未転送ファイルリストに記録されているファイルの数だけサーバ300からファイル取得を完了するまで、ステップS804からステップS806までの処理を繰り返す。また、PC200は、未転送ファイルリストに記録されている全てのファイルの取得を完了するまで、図17(b)に示すファイル受信通知画面を表示する。このファイル受信通知画面については後述する。未転送ファイルリストに記録されている全てのファイルの取得を完了すると、処理はステップS807に移行する。ファイル取得を完了すると、PC200は、図17(c)に示す受信完了通知画面を表示する。この受信完了通知画面については後述する。
ステップS807において、PC200は、一定時間未転送ファイルリスト取得要求を待機する。サーバ300に対して一定時間待機せずに、未転送ファイルリスト取得要求を送信すると、未転送ファイルがない場合に、サーバ300に要求を送信し続けることになるため、一連の処理完了後に一定時間待機する。
図17(a)は、PC200において表示される未転送リスト受信通知画面の一例を示す図である。図17(b)は、PC200において表示されるファイル受信通知画面の一例を示す図である。図17(c)は、PC200において表示される受信完了通知画面の一例を示す図である。リンク1801は、受信したファイルを保存したフォルダの表示を指示させる保存先表示指示部であり、ユーザが操作部202を操作することによって保存先表示指示部1701を押下すると、PC200は、受信したファイルを保存しているフォルダを表示する。
本実施形態によれば、ウェブサービスや機能の種類をハードコードしなくても、また送信先専用の情報を持たなくても、未転送ファイルの全てを送信するのか、未転送ファイルのうちユーザにより選択されたファイルを送信するのかを適切に判断することが可能になる。なお、本実施形態においては、送信元の識別子と送信先の識別子とを用いて、未転送ファイルの全てを送信する送信先であるか否かを判定したが、これらの識別子ではなく、送信元と送信先とを夫々特定可能な文字列を用いてもよい。また、全ての未転送ファイルを送信する処理において、PC200は、1つの送信先を指定することを前提としたが、複数の送信先を指定してもよい。この場合、デジタルカメラ100がサーバ300へファイルを送信した後、サーバ300は、ペアリングされている複数の送信先全てに対してファイルを送信することになる。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。