画像送信装置、撮像装置、画像受信装置、画像送信方法、及びプログラム
【課題】 画像データの送信中断後に再び送信を開始する場合、ユーザの複雑な操作を介さずに、送信が中断されたところから継続して確実且つ効率良く画像データを送信することを可能とした画像送信装置を提供する。
【解決手段】 撮像装置101は、画像データを外部機器に送信するデータ送受信部204、画像データを送信する度に送信済み情報を生成する送信情報生成部205、画像データの送信中の送信中断要因に基づく送信中断及び送信再開を指示する送受信判定部202、送信済み情報を記憶する不揮発性メモリ104、画像送信処理を制御する中央処理装置102を備える。画像データの送信中断後に送信を再開する場合、不揮発性メモリ104に記憶されている送信済み情報を基に、送信が完了していない画像データを送信が中断したところから送信を再開する。
【解決手段】 撮像装置101は、画像データを外部機器に送信するデータ送受信部204、画像データを送信する度に送信済み情報を生成する送信情報生成部205、画像データの送信中の送信中断要因に基づく送信中断及び送信再開を指示する送受信判定部202、送信済み情報を記憶する不揮発性メモリ104、画像送信処理を制御する中央処理装置102を備える。画像データの送信中断後に送信を再開する場合、不揮発性メモリ104に記憶されている送信済み情報を基に、送信が完了していない画像データを送信が中断したところから送信を再開する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタルカメラやデジタルビデオカメラ等の撮像装置で撮影した画像データを外部機器に送信する場合に適用される画像送信装置に関する。
【背景技術】
【0002】
従来、デジタルカメラやデジタルビデオカメラ等の撮像装置から外部機器に画像データを送信する送信時には、送信中の状態に応じて画像データの送信を中止するか、或いは、撮影を優先するために画像データの送信を中断する等の方法が採られていた。
【0003】
例えば、デジタルカメラが画像送信に適したタイミングで画像データを自動送信する技術が提案されている。該提案は、画像データを送信する際、未送信の画像データ(写真)が所定の枚数に達した時点でまとめて送信するが、送信中にデジタルカメラの電源をOFFにする操作があると、未送信の画像データをまとめて送信した後に電源OFFし、その後、電源をONにした時点で未送信の画像データがあればまとめて伝送する。また、送信中に撮影動作が開始された時に送信を中断し、撮影動作が停止した後に送信を再開するものである(例えば、特許文献1参照)。
【0004】
また、デジタルカメラでの撮影が、画像データを外部に送信する通信処理によって阻害されることがないよう、撮影準備動作を検出すると外部との通信を禁止し、通信中に撮影準備動作を検出すると外部との通信を中断する技術が提案されている(例えば、特許文献2参照)。
【0005】
また、撮像装置の画像データを外部の記録装置に効率良く確実に記録すると共に、外部機器との通信状態に応じて画像データを無線伝送する技術が提案されている。該提案では、撮像装置が撮像状態である場合は無線伝送を中断し、通信状態が良好になった場合に無線伝送を再開する(例えば、特許文献3参照)。
【0006】
また、撮像装置で撮像された電子情報を、コンピュータを介してプリント出力したり、或いは、通信手段を介してプリント出力するが、プリントが中断した場合は中断までに完了しているプリントに関わる中断情報を記憶し、中断情報に基づいてプリントを再開する技術が提案されている(例えば、特許文献4参照)。
【0007】
また、デジタルカメラ等の撮像装置で撮影した画像を無線通信で外部機器へ送信中に、通信が切断した後の通信路の再開時に、撮像装置から外部機器に送信していた主画像を特定し、通信の切断前に外部機器で受信完了した通信単位の次の通信単位から受信を再開するようにした技術が提案されている(例えば、特許文献5参照)。
【特許文献1】特開2002−10188号公報
【特許文献2】特開2003−198901号公報
【特許文献3】特開2000−270249号公報
【特許文献4】特開2002−326404号公報
【特許文献5】特開2003−108461号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、上記従来例(特許文献1〜4)では、撮像装置で撮影した画像データを他の機器に送信する際に、画像データをまとめて送信するか、或いは、画像データの送信中断後に再び送信を開始する場合、中断した時点から継続して送信するために未送信の画像データそのものを不揮発性メモリに記憶していた。しかし、不揮発性メモリの容量には限界があるため、大量の画像データを記憶するのは非現実的であった。
【0009】
また、撮影後直ちに画像データを他の機器に送信する場合については考慮されていなかった。更に、画像データの送信を中断する際のトリガとして、撮影動作が行われた場合やユーザが撮像装置の電源をOFFした場合については考慮されているが、ユーザが撮像装置を直接操作するのではなく、撮像装置を遠隔地から制御する場合については考慮されていなかった。
【0010】
また、上記従来例(特許文献5)では、撮像装置と外部機器との間の通信が中断するのは、無線通信においてキャリア電波を喪失する等、通信路の切断を検出した時であり、撮像装置が撮影モードに入った時等のような撮像装置の状態遷移によって、通信を中断させるようなことはしていない。そのため、例えば撮像装置で画像送信中に送信を中断して撮影を行い、撮影終了後に画像送信を再開したいという要望に応えることはできなかった。
【0011】
本発明の第1の目的は、画像データの送信中断後に再び送信を開始する場合、ユーザの複雑な操作を介さずに、送信が中断されたところから継続して確実且つ効率良く画像データを送信することを可能とした画像送信装置を提供することにある。
【0012】
本発明の第2の目的は、画像送信側の状態遷移に応じて画像ファイルの送信を中断し、的確に画像ファイルの送信を再開することを可能とした画像送信装置を提供することにある。
【課題を解決するための手段】
【0013】
上述の目的を達成するために、本発明の画像送信装置は、画像データを外部機器に送信する通信手段と、前記通信手段により画像データを送信する度に送信済み情報を生成する生成手段と、前記生成手段により生成した送信済み情報を記憶する記憶手段と、画像データの送信中の送信中断要因に基づく送信中断及び送信再開を指示する指示手段と、前記指示手段による画像データの送信中断後に送信を再開する場合、前記記憶手段に記憶されている前記送信済み情報を基に、送信が完了していない画像データを送信が中断したところから送信を再開する制御手段と、を備えることを特徴とする。
【0014】
上述の目的を達成するために、本発明の画像送信装置は、画像受信装置に送信した画像ファイル送信要求に伴い、前記画像受信装置から返信されるセッション識別子を記憶手段に保存する記憶制御手段と、前記画像受信装置に画像ファイルを送信中に送信中断事象が発生した場合は、送信を中断し、送信再開事象が発生した場合は、送信再開要求及び前記記憶手段に保存されているセッション識別子を前記画像受信装置に送信する第1の送信制御手段と、前記画像受信装置に対する前記送信再開要求及びセッション識別子の送信に伴い、前記画像受信装置から返信される受信未完情報で指定された画像ファイルを前記画像受信装置に送信する第2の送信制御手段と、を備えることを特徴とする。
【発明の効果】
【0015】
本発明によれば、画像送信装置で画像データの送信中断後に送信を再開する場合、記憶手段に記憶されている送信済み情報を基に、送信が完了していない画像データを送信が中断したところから送信を再開するので、画像データ送信中に電源オフ操作や撮影操作等が行われた場合でも、未送信画像データを最初から送信する必要はない。従って、ユーザの複雑な操作を介さずに、画像データの送信が中断されたところから継続して確実且つ効率良く画像データを送信することができる。
【0016】
また、画像データをバッファサイズ単位で送信するかファイル単位で送信するかを選択できるので、通信状態に応じた柔軟な送信が可能となる。
【0017】
また、画像データを撮影後直ちに送信するか指定枚数の撮影後直ちに送信するかを選択できるので、ユーザの撮影頻度に応じた柔軟な送信を行うことが可能となる。
【0018】
本発明によれば、画像送信装置から画像受信装置に画像ファイルを送信中に、撮影モードに移行したり電源がオフされたりする等の画像送信側の状態遷移に応じて、画像ファイルの送信を中断することができると共に、画像受信装置からの受信未完情報で指定された画像ファイルを画像受信装置に送信することで、的確に画像ファイルの送信を再開することができる。
【0019】
また、上記のような画像ファイルの送信を中断せねばならない事象が発生した場合でも、送信中断までの途中の状態(送信対象画像ファイルのリスト、受信済みバイト数)を画像受信装置側で記憶させるようにしたことで、画像送信装置に余計な負荷を掛けることなく、正確な位置から画像ファイルの送信を再開することができる。
【0020】
また、画像送信装置は記憶手段に複雑な送信対象画像ファイルのリストを記憶させておく必要がなく、記憶手段上で送信済みバイト数をその都度更新する必要もなく、画像受信装置から送信される単に通信セッションに関連付けられたセッション識別子を最初に一度、記憶手段に記憶するだけで済むため、画像ファイル送信に関わる記憶制御処理の簡易化や、画像送信装置の記憶資源の有効活用等が可能となる。
【発明を実施するための最良の形態】
【0021】
以下、本発明の実施の形態を図面に基づき説明する。
【0022】
[第1の実施の形態]
図1は、本発明の第1の実施の形態に係る画像送信装置としての撮像装置の概略構成を示すブロック図である。
【0023】
図1において、撮像装置101は、デジタルカメラ或いはデジタルビデオカメラとして構成されており、中央処理装置(CPU)102、主記憶装置103、不揮発性メモリ104、撮像部105、画像処理部106、表示装置107、操作部108、記憶媒体109、通信インタフェース(I/F)110、バス111を備えている。112は携帯電話機、113はパーソナルコンピュータ(PC)、114は無線ルータである。
【0024】
中央処理装置102は、後述する各種の処理を実行するマイクロプロセッサ等から構成されており、図4、図5、図7、図9、図10の各フローチャートに示す処理を実行する。主記憶装置103は、RAM等から構成されており、撮像等の機器制御を行うオペレーティングシステム(OS)、画像データを送信する処理を行うプログラム(図4、図5、図7、図9、図10に示すプログラムコード群)を格納している。不揮発性メモリ104は、フラッシュメモリ等から構成されており、ユーザの設定情報等の撮像装置の電源がOFFの間も保持すべき情報、画像データを送信する度に生成される送信済み情報、等を記憶するものであり、後述の「他の実施の形態」で説明するように、上記プログラムコード群を格納することも可能である。
【0025】
撮像部105は、被写体(デジタルカメラの場合は静止画(写真)、デジタルビデオカメラの場合は動画)の撮影を行う。画像処理部106は、撮影した画像の圧縮等の画像処理を行う。表示装置107は、撮影した画像の表示やユーザ設定画面の表示等を行う。操作部108は、実際の撮影の操作を行う場合やユーザ設定画面から所望の設定を入力する場合に用いる。記憶媒体109は、コンパクトフラッシュ(登録商標)メモリ或いはSD(Secure Digital)メモリから構成されており、撮影した画像データを保存する。通信I/F110は、携帯電話機112または無線ルータ114を介し外部機器と接続する際のインタフェースを司る。バス111は、上記構成要素間でデータや信号を授受する際の伝送路である。
【0026】
携帯電話機112は、撮像装置101から無線で送信された画像データを保存したり、或いは画像データを携帯電話機112を介して外部機器であるPC113に送信したりする際に利用される。PC113は、撮像装置101から携帯電話機112を介して送信された画像データ、撮像装置101から無線ルータ114を介して送信された画像データ、更には撮像装置101の通信I/F110と直接ケーブルを介して送信された画像データを保存する際に利用される。無線ルータ114は、撮像装置101から無線で送信された画像データをPC113に送信する。
【0027】
上記構成を有する撮像装置101では、撮像部105で撮影した画像を画像処理部106で画像処理し、その画像データを記憶媒体109に保存する。中央処理装置102は、記憶媒体109に格納されている画像データを読み出して主記憶装置103に格納し、その画像データは通信I/F110を介して携帯電話機112や無線ルータ114に送信される。この時、撮像装置101から外部機器に画像データを送信する度に送信情報生成部(後述)で生成される送信済み情報を不揮発性メモリ104に記憶する。
【0028】
図2は、撮像装置の制御機能を示すブロック図である。
【0029】
図2において、撮像装置101は、中央処理装置102がプログラムコードを実行することで実現される画像読み書き部201、送受信判定部202、操作イベント解析部203、データ送受信部204、送信情報生成部205、送信情報読み書き部206を機能として備えている。
【0030】
図2において、画像読み書き部201は、撮影した画像データを記憶媒体109に書き込む処理や、記憶媒体109に格納されている画像データを読み出す処理を行う。送受信判定部202は、データ送受信部204に画像データの送受信の開始、送信中断、送信再開を指示する。画像データ送信のタイミングとしては、撮影後(撮影後直ちに)、指定枚数の撮影後(指定枚数の撮影後直ちに)があり、ユーザが操作部108から任意に選択することが可能である。また、画像データ送信中断のタイミングとしては、撮像装置の電源がOFFにされた時、操作部108を介して撮影操作が行われた時、通信I/F110を介して外部機器から撮影を指示する撮影コマンドを受信した時がある。
【0031】
操作イベント解析部203は、操作部108により撮影操作が行われた(例えばシャッタが押された)場合や撮像装置の電源がOFFにされた場合に、画像データの送信を中断すべきである旨を送受信判定部202に通知する。また、操作イベント解析部203は、撮像装置の電源がONにされた場合は、送信が中断されている画像データの送信を再開するよう送受信判定部202に通知する。
【0032】
データ送受信部204は、送受信判定部202から画像データの送信が指示された場合は通信I/F110を介して外部機器に画像データを送信し、画像データ送信の中断が指示された場合は送信を中断する。また、データ送受信部204は、画像データの送信中断後に送信を再開する場合、後述の送信済み情報を基に送信が完了していない画像データを送信が中断したところから送信を再開する。また、データ送受信部204は、通信I/F110を介して外部機器から撮影コマンドを受信する。
【0033】
送信情報生成部205は、データ送受信部204によって画像データが送信される度に、どこまで送信が行われたかを示す送信済み情報を生成する。送信情報読み書き部206は、送信情報生成部205によって生成された送信済み情報を不揮発性メモリ104に書き込む。また、送信情報読み書き部206は、撮像装置の電源がONにされた場合や画像データ送信が再開される場合には、不揮発性メモリ104に格納されている送信済み情報を読み出す。
【0034】
図3は、撮像装置の送信情報生成部205で生成される送信済み情報の一例を示す図である。
【0035】
図3において、画像データはある一定のバッファサイズ単位で外部機器に送信し、画像データの送信を行う度に送信済み情報を不揮発性メモリ104に記憶する。301は送信ファイル数であり、図示の”2”は撮像装置で2枚撮影した後で外部機器に送信される画像ファイルの数であり、また2つの画像ファイルの送信が完了したら送信が停止することを意味する。
【0036】
302は最初に送信される画像のファイル名であり、”IMG_001.JPG”というファイル名が設定されている。303は画像ファイル”IMG_001.JPG”の総バイト数であり、”32,768byte”が設定されている。304は送信済みバイト数であり、”32,768byte”が設定されている。即ち、画像ファイル”IMG_001.JPG”の全ての画像データを送信したことを意味する。305は送信済みフラグであり、画像ファイル”IMG_001.JPG”の全ての画像データが送信されているので、”YES”が設定されている。
【0037】
306は2番目に送信される画像のファイル名であり、”IMG_002.JPG”というファイル名が設定されている。307は画像ファイル”IMG_002.JPG”の総バイト数であり、”43,008byte”が設定されている。308は送信済みバイト数であり、 ”28,672byte”が設定されている。即ち、画像ファイル”IMG_002.JPG”の全ての画像データがまだ送信完了となっていないことを意味する。309は送信済みフラグあり、画像ファイル”IMG_002.JPG”の全ての画像データがまだ送信完了となっていないので、”NO”が設定されている。
【0038】
次に、上記構成を有する本実施の形態の撮像装置の動作を図1乃至図5を参照しながら説明する。
【0039】
図4は、撮像装置の制御手順を示すフローチャートである。
【0040】
本制御手順を示すプログラムコードは主記憶装置103に格納されている。撮像装置の中央処理装置102が該プログラムコードを実行することで実現される画像読み書き部201、送受信判定部202、操作イベント解析部203、データ送受信部204、送信情報生成部205、送信情報読み書き部206により、本フローチャートに示す処理が行われる。
【0041】
該プログラムコードは、撮像装置が撮影した画像データを外部機器(図1のPC113)に送信するが、画像データの送信中に撮影操作が始まると送信を中断し、その後、画像データの送信を再開する場合は、画像データの送信が行われる度に不揮発性メモリ104に記憶していた送信済み情報を基に、送信が完了していない画像データを送信が中断したところから送信を再開するまでの制御手順に対応する。
【0042】
図4において、撮像装置の電源がONになると(ステップS400)、中央処理装置102は、送信情報読み書き部206を用いて不揮発性メモリ104に格納されている送信済み情報を読み出し(ステップS401)、次に操作イベント解析部203から撮影モードを取得する(ステップS402)。中央処理装置102は、取得した撮影モードが電源OFFを示すモードかどうかを調べ(ステップS403)、取得した撮影モードが電源OFFを示すモードの場合は、このまま本処理を終了する。
【0043】
取得した撮影モードが電源OFFを示すモードでない場合は、中央処理装置102は、取得した撮影モードが撮影操作(例えばシャッタを押す操作)に関するモードかどうかを調べ(ステップS404)、取得した撮影モードが撮影操作に関するモードである場合は、撮像部105による撮影を実行し(ステップS405)、次に撮影した枚数が送信枚数に達したかどうかを調べる(ステップS406)。撮影した枚数が送信枚数に達していない場合は、中央処理装置102は、ステップS402に戻り、再び撮影モードを取得する処理を繰り返す。
【0044】
撮影した枚数が送信枚数に達した場合は、中央処理装置102は、撮像装置から外部機器に送信する画像データのファイル数を送信済み情報の送信ファイル数の項目(図3)に設定し(ステップS407)、画像データを送信する処理に進む(ステップS408)。中央処理装置102は、画像データの送信後はステップS402に戻り、再び撮影モードを取得する処理を繰り返す。
【0045】
一方、上記取得した撮影モードが撮影操作に関するモードでない場合は、中央処理装置102は、ステップS401で取得した送信済み情報を解析して未送信の画像データがあるかどうかを調べる(ステップS409)。中央処理装置102は、未送信の画像データがある場合は、ステップS408に進み、画像データを送信する処理を行うが、未送信の画像データがない場合は、ステップS402に戻り、再び撮影モードを取得する処理を繰り返す。
【0046】
図5は、撮像装置の画像データ送信処理の制御手順を示すフローチャートである。
【0047】
図5において、中央処理装置102は、撮像装置から外部機器に送信する画像データを記憶媒体109から読み込み(ステップS500)、図4のステップS401で読み出した送信済み情報のファイル名を調べ、この送信する画像データが初めて送信する画像データかどうかを判断する(ステップS501)。送信する画像データが初めて送信する画像データの場合は、中央処理装置102は、送信する画像データのファイル名を送信済み情報のファイル名の項目に設定し(ステップS502)、送信する画像データの総バイト数を送信済み情報の総バイト数の項目に設定する(ステップS503)。
【0048】
送信する画像データが初めて送信する画像データでない場合は、中央処理装置102は、画像データを送信する前に再度撮影モードを検知したかどうかを調べ(ステップS504)、撮影モードを検知した場合は、画像データを送信する処理からリターンする。撮影モードを検知していない場合は、中央処理装置102は、画像データを一定のバイト数単位で通信I/F110により外部機器に送信し(ステップS505)、送信済み情報の送信済みバイト数の項目を送信済みの画像データのバイト数で更新する(ステップS506)。
【0049】
次に、中央処理装置102は、送信対象の画像ファイルの全画像データの送信が行われたかどうかを判定し(ステップS507)、全画像データの送信が行われた場合は、送信済み情報の送信済みフラグの項目を”YES”で更新し(ステップS508)、画像データを送信する処理からリターンする。全画像データの送信が行われていない場合は、中央処理装置102は、ステップS504に戻り、撮影モードを検知したかどうかを調べる。
【0050】
以上説明したように、本実施の形態によれば、撮像装置で撮影した画像データを外部機器に送信する場合、送信対象の画像データを一定のバッファサイズ単位で送信し、画像データを送信する度に送信済み情報を不揮発性メモリ104に記憶する。これにより、画像データ送信中に例えユーザが撮像装置の電源をOFFにした場合でも、その後、電源をONにした際に、画像データ送信を中断したところから送信が再開されるので、未送信画像データを最初から送信する必要はない。従って、ユーザの複雑な操作を介さずに、画像データの送信が中断されたところから継続して確実且つ効率良く画像データを送信することができるという効果がある。
【0051】
また、画像データを撮影後直ちに送信するか指定枚数の撮影後直ちに送信するかを選択できるので、ユーザの撮影頻度に応じた柔軟な送信を行うことが可能となる。
【0052】
[第2の実施の形態]
本発明の第2の実施の形態は、上述した第1の実施の形態に対して、下記の点において相違する。本実施の形態のその他の要素は、上述した第1の実施の形態(図1、図2)の対応するものと同一なので、説明を省略する。
【0053】
上述した第1の実施の形態では、撮像装置から外部機器に対して画像データをある一定のバッファサイズ単位で送信し、画像データを送信する度に送信済み情報を不揮発性メモリ104に記憶する場合の例を説明した。
【0054】
これに対し、本実施の形態は、撮像装置から外部機器(図1のPC113)に対して画像データの1ファイル(デジタルカメラの場合は写真1枚分の画像データ)の全ての送信が完了した時点で送信済み情報を不揮発性メモリ104に記憶するものである。これにより、第1の実施の形態と同様の効果を得ることを可能としている。
【0055】
次に、本実施の形態を図6及び図7を参照しながら説明する。本実施の形態は、画像データの1ファイルの送信が完了した時点で送信済み情報を不揮発性メモリ104に記憶する点以外は、第1の実施の形態と同じ処理を行うため、ここでは撮像装置における送信済み情報の例と制御手順のみ説明する。
【0056】
図6は、撮像装置の送信情報生成部205で生成される送信済み情報の一例を示す図である。
【0057】
図6において、601は送信ファイル数であり、図示の”2”は撮像装置で2枚撮影した後で外部機器に送信される画像ファイルの数であり、また2つの画像ファイルの送信が完了したら送信が停止することを意味する。
【0058】
602は最初に送信される画像のファイル名であり、”IMG_001.JPG”というファイル名が設定されている。603は送信済みフラグあり、画像ファイル”IMG_001.JPG”の全ての画像データが送信されているので、”YES”が設定されている。
【0059】
604は2番目に送信される画像のファイル名であり、”IMG_002.JPG”というファイル名が設定されている。605は送信済みフラグあり、画像ファイル”IMG_002.JPG”の全ての画像データがまだ送信完了となっていないので、”NO”が設定されている。
【0060】
図7は、撮像装置の画像データ送信処理の制御手順を示すフローチャートである。
【0061】
図7において、中央処理装置102は、撮像装置から外部機器に送信する画像データを記憶媒体109から読み込み(ステップS700)、図4のステップS401で読み出した送信済み情報のファイル名を調べ、この送信する画像データが初めて送信する画像データかどうかを判断する(ステップS701)。中央処理装置102は、送信する画像データが初めて送信する画像データの場合のみ、送信する画像データのファイル名を送信済み情報のファイル名の項目に設定する(ステップS702)。
【0062】
次に、中央処理装置102は、画像データを送信する前に再度撮影モードを検知したかどうかを調べ(ステップS703)、撮影モードを検知した場合は、画像データを送信する処理からリターンする。撮影モードを検知していない場合は、中央処理装置102は、画像データを一定のバイト数単位で通信I/F110により外部機器に送信する(ステップS704)。
【0063】
次に、中央処理装置102は、送信対象の画像ファイルの全画像データの送信が行われたかどうかを判定し(ステップS705)、全画像データの送信が行われていない場合は、ステップS703に戻り、撮影モードを検知したかどうかを調べる。全画像データの送信が行われた場合は、中央処理装置102は、送信済み情報の送信済みフラグの項目を”YES”で更新し(ステップS706)、画像データを送信する処理からリターンする。
【0064】
以上説明したように、本実施の形態によれば、撮像装置で撮影した画像データを外部機器に送信する場合、送信対象の画像データは一定のバッファサイズ単位で送信するが、画像データの1ファイルの送信が完了した時点で送信済み情報を不揮発性メモリ104に記憶する。これにより、不揮発性メモリ104に対する画像データ書き込みの頻度を少なくすることができる。従って、撮像装置から外部機器に対する画像データの送信速度を速くすることができるという効果がある。
【0065】
[第3の実施の形態]
本発明の第3の実施の形態は、上述した第1の実施の形態に対して、下記の点において相違する。本実施の形態のその他の要素は、上述した第1の実施の形態(図1、図2)の対応するものと同一なので、説明を省略する。
【0066】
上述した第1及び第2の実施の形態では、撮像装置から外部機器に対する画像データの送信を中断する要因として、撮像装置の電源OFFやユーザの撮影操作(例えばシャッタを押す操作)を例に挙げた。
【0067】
これに対し、本実施の形態は、撮像装置が撮影した画像データを外部機器に送信中に、撮像装置が遠隔に存在する別の外部機器から通信手段通信手段(携帯電話機や無線ルータ等)を介して送信された撮影コマンドを受信し、その撮影コマンドが撮影を指示する場合にも、画像データの送信を中断するものである。
【0068】
次に、本実施の形態を図8乃至図10を参照しながら説明する。
【0069】
図8は、撮像装置に対し遠隔から送信される撮影コマンドの一例を示す図である。
【0070】
図8において、801のコマンドは、撮像装置のシャッタスピードを1/250secに設定することを示す。802のコマンドは、絞りをF8.0に設定することを示す。803のコマンドは、フォーカスを合わせることを示す。804のコマンドは、ズームをワイド側に設定することを示す。805のコマンドは、シャッタを押すことを示す。806のコマンドは、フラッシュをONにすることを示す。807のコマンドは、電源をOFFにすることを示す。
【0071】
図9は、撮像装置の制御手順を示すフローチャートである。
【0072】
本制御手順を示すプログラムコードは、撮像装置が撮影した画像データを外部機器(図1のPC113)に送信中に、撮像装置が遠隔に存在する別の外部機器(図1では不図示)から撮影コマンドを受信し、その撮影コマンドが撮影を指示するものであった場合には画像データの送信を中断し、その後、画像データ送信を再開する場合は、画像データを送信する度に不揮発性メモリ104に記憶していた送信済み情報を基に、画像データの送信を中断したところから送信を再開するまでの制御手順に対応する。
【0073】
図9において、撮像装置の電源がONになると(ステップS900)、中央処理装置102は、送信情報読み書き部206を用いて不揮発性メモリ104に格納されている送信済み情報を読み出し(ステップS901)、次に遠隔の外部機器から送信された撮影コマンドを取得する(ステップS902)。中央処理装置102は、取得した撮影コマンドが撮像装置を電源OFFにすることを示すコマンドかどうかを調べ(ステップS903)、取得した撮影コマンドが電源OFFコマンドの場合は、このまま本処理を終了する。
【0074】
取得した撮影コマンドが電源OFFコマンドでない場合は、中央処理装置102は、取得した撮影コマンドが撮影操作に関するコマンドかどうかを調べる(ステップS904)。取得した撮影コマンドが撮影操作に関するコマンドの場合は、中央処理装置102は、撮像部105により撮影を実行し(ステップS905)、次に撮影した枚数が送信枚数に達したかどうかを調べる(ステップS906)。撮影した枚数が送信枚数に達していない場合は、中央処理装置102は、ステップS902に戻り、再び撮影コマンドを取得する処理を繰り返す。
【0075】
撮影した枚数が送信枚数に達した場合は、中央処理装置102は、撮像装置から外部機器に送信する画像データのファイル数を送信済み情報の送信ファイル数の項目に設定し(ステップS907)、画像データを送信する処理に進む(ステップS908)。中央処理装置102は、画像データの送信後はステップS902に戻り、再び撮影コマンドを取得する処理を繰り返す。
【0076】
一方、上記取得した撮影コマンドが撮影操作に関するコマンドでない場合は、中央処理装置102は、ステップS901で取得した送信済み情報を解析して未送信の画像データがあるかどうかを調べる(ステップS909)。中央処理装置102は、未送信の画像データがある場合は、ステップS908に進み、画像データを送信する処理を行うが、未送信の画像データがない場合は、ステップS902に戻り、再び撮影コマンドを取得する処理を繰り返す。
【0077】
図10は、撮像装置の画像データ送信処理の制御手順を示すフローチャートである。
【0078】
図10において、中央処理装置102は、撮像装置から外部機器に送信する画像データを記憶媒体109から読み込み(ステップS1000)、図9のステップS901で読み出した送信済み情報のファイル名を調べ、この送信する画像データが初めて送信する画像データかどうかを判断する(ステップS1001)。送信する画像データが初めて送信する画像データの場合は、中央処理装置102は、送信する画像データのファイル名を送信済み情報のファイル名の項目に設定し(ステップS1002)、送信する画像データの総バイト数を送信済み情報の総バイト数の項目に設定する(ステップS1003)。
【0079】
送信する画像データが初めて送信する画像データでない場合は、中央処理装置102は、画像データを送信する前に再度撮影コマンドを受信したかどうかを調べ(ステップS1004)、撮影コマンドを受信した場合は、画像データを送信する処理からリターンする。撮影コマンドを受信していない場合は、中央処理装置102は、画像データを一定のバイト数単位で通信I/F110により外部機器に送信し(ステップS1005)、送信済み情報の送信済みバイト数の項目を送信済みの画像データのバイト数で更新する(ステップS1006)。
【0080】
次に、中央処理装置102は、送信対象の画像ファイルの全画像データの送信が行われたかどうかを判定し(ステップS1007)、全画像データの送信が行われた場合は、送信済み情報の送信済みフラグの項目を”YES”で更新し(ステップS1008)、画像データを送信する処理からリターンする。全画像データの送信が行われていない場合は、中央処理装置102は、ステップS1004に戻り、撮影コマンドを受信したかどうか調べる。
【0081】
以上説明したように、本実施の形態によれば、撮像装置から画像データを外部機器に送信する場合、送信対象の画像データを一定のバッファサイズ単位で送信し、画像データを送信する度に送信済み情報を不揮発性メモリ104に記憶する。これにより、撮像装置が遠隔の別の外部機器から撮影コマンドを受信し、該撮影コマンドが撮影を指示する場合にも、送信済み情報を不揮発性メモリ104に記憶してあるため、画像データの送信を中断することができる。従って、ユーザの直接的な撮影操作に対してだけでなく、撮像装置外部からの撮影指示などの多様な要求にも応えることができるという効果がある。
【0082】
[第4の実施の形態]
図12は、本発明の第4の実施の形態に係る画像送信装置としてのデジタルカメラと画像受信装置としてのサーバからなるクライアントサーバシステムの概略構成を示す図である。
【0083】
図12において、クライアントサーバシステムは、画像送信クライアントであるデジタルカメラ1101と、画像受信サーバであるサーバ1102から構成されている。デジタルカメラ1101とサーバ1102との間は、ネットワークを介して通信可能に接続されており、通信方式は有線通信または無線通信の何れでもよい。
【0084】
本構成はデジタルカメラ1101とサーバ1102の仮想的な接続を意味しており、ネットワークを介して直接接続されていることを意味するものではない。従って、デジタルカメラ1101とサーバ1102は、他の機器或いはインターネット等の他のネットワークを介して接続されている可能性はある。本実施の形態では、デジタルカメラ1101からサーバ1102に向けて撮影画像が送信される。
【0085】
図13は、デジタルカメラ1101の内部構成を示すブロック図である。
【0086】
図13において、デジタルカメラ1101は、中央制御装置(以下CPUと称す)1201、ROM1202、RAM1203、タイマ1204、ディスプレイ1205、マイク1206、スピーカ1207、各種操作ボタン1208、フラッシュROM1209、ネットワークインタフェース(I/F)1210、電荷結合素子(以下CCDと称す)1211、撮影モード・再生モード切替スイッチ1212、電源ボタン1213、バッテリ1214を備えており、相互にバスあるいは電源ラインで接続されている。
【0087】
CPU1201は、デジタルカメラ全体の制御を司るものであり、動作プログラムに基づき図16、図17、図22、図24、図25、図29、図31のフローチャートに示す処理を実行する。ROM1202には、各種動作プログラムが読み出し可能に格納されている。RAM1203は、プログラム動作中の一時的な値の保存に用いる。タイマ1204は、各種時間を計測する。ディスプレイ1205は、各種設定メニュー及び画像を表示する。マイク1206は、音声録音に用いる。スピーカ1207は、音声出力を行う。各種操作ボタン1208は、デジタルカメラ1101の各種操作に用いる。
【0088】
フラッシュROM1209は、デジタルカメラ1101で撮影した画像ファイルや各種設定データファイルを保存しておく不揮発性メモリである。ネットワークI/F1210は、デジタルカメラ1101の外部と接続する際のインタフェースを司る。CCD1211は、不図示のレンズを通して集めた光を電気信号に変換する。撮影モード・再生モード切替スイッチ1212は、撮影モードと再生モードの切り替えに用いる。電源ボタン1213は、電源のオン/オフに用いる。バッテリ1214は、各部に電源を供給する。
【0089】
尚、デジタルカメラ1101は、撮影するのに不可欠なシャッタやレンズも備えているが、それらについては図示を省略する。また、フラッシュROM1209は、デジタルカメラ1101に内蔵されていてもよいし、外部から着脱可能なメモリカード上に搭載されているものでもよい。また、デジタルカメラ1101が撮影した画像ファイルの格納場所はフラッシュROM1209の他、RAM1203でもよいし、または図示しないがハードディスク等の記憶媒体でもよい。以後の例では、画像ファイルの代表的な格納場所として、フラッシュROM1209についてのみ言及する。
【0090】
図14は、サーバ1102の内部構成を示すブロック図である。
【0091】
図14において、サーバ1102は、一般的なコンピュータと同様な構成をとっており、中央制御装置(以下CPUと称す)1701、ROM1702、RAM1703、タイマ1704、ディスプレイ1705、ハードディスクドライブ(以下HDDと称す)1706、ネットワークI/F1707を備えている。
【0092】
CPU1701は、サーバ全体の制御を司るものであり、動作プログラムに基づき図18、図19、図23、図26、図27、図32のフローチャートに示す処理を実行する。ROM1702には、各種動作プログラムが読み出し可能に格納されている。RAM1703は、プログラム動作中の一時的な値の保存に用いる。タイマ1704は、各種時間を計測する。ディスプレイ1705は、各種設定メニュー及び画像を表示する。HDD1706は、デジタルカメラ1101から送信される画像ファイルを含む各種データやプログラムを格納する。ネットワークI/F1707は、外部と接続する際のインタフェースを司る。
【0093】
次に、デジタルカメラ1101とサーバ1102の間の画像送信手順及び画像受信手順について、図15のシーケンス図、図16・図17のフローチャート、及び図18・図19のフローチャートを参照しながら説明する。
【0094】
図15は、デジタルカメラ1101とサーバ1102の間の画像通信シーケンス(両者間のメッセージの流れ)を示す図、図16・図17は、デジタルカメラ1101の画像送信手順を示すフローチャート、図18・図19は、サーバ1102の画像受信手順を示すフローチャートである。
【0095】
図15の画像通信シーケンスを実行するに先立ち、デジタルカメラ1101のユーザは既に何枚かの写真を撮影し、撮影した画像をフラッシュROM1209に保存しているものとする。デジタルカメラ1101が採用している撮影画像の記録方式は、社団法人日本電子工業振興協会(JEIDA)が定めたカメラファイルシステム規格(Design rule for Camera File System:略称DCF)バージョン1.0に適合しているものとする。
【0096】
また、フラッシュROM1209に保存されている画像ファイルのフォーマットはJPEG(Joint Photographic Experts Group)とする。尚、本発明はJPEGファイルのみの適用に限定されるものではなく、RAW画像ファイルフォーマット等の別のフォーマットにも問題なく適用することが可能である。また、デジタルカメラ1101は再生モードにあるものとする。
【0097】
図15〜図19において、まず、デジタルカメラ1101のユーザは、ディスプレイ1205に表示される不図示のメニューから画像送信機能を選択する(ステップS1001)。次に、ユーザは、既に撮影済みの画像ファイルの中から、サーバ1102に送信する画像ファイルを1乃至複数個選択する(ステップS1002)。CPU1201は、選択された画像ファイルのパス名から、その画像ファイルのサーバ1102における格納位置を決定する(ステップS1003)。画像ファイルの格納位置の決定は例えば以下のように行われる。
【0098】
その1:フラッシュROM1209上のルートディレクトリ直下に、img_0001.jpg、img_0002.jpg、img_0003.jpgが存在するなら、これらにデフォルトの画像格納ディレクトリ/picturesをそれぞれ加え、/pictures/img_0001.jpg, /pictures/img_0002.jpg, /pictures/img_0003.jpgとする。
【0099】
更に、サーバ1102がHTTP(Hiper Text Transfer Protocol)サーバを兼ねており、そのドキュメントルートがhttp://xyz.jp/でアクセスされるという条件のもとで、これらの画像ファイルがURL(Uniform Resource Locator)で指定されるように(サーバ1102においてそのURLで画像が取得されるように)するなら、これらの画像ファイルの格納位置は、http://xyz.jp/pictures/img_0001.jpg, http://xyz.jp/pictures/img_0002.jpg, http://xyz.jp/pictures/img_0003.jpgとなる。これについては、以下同様なので省略する。
【0100】
その2:その1と同条件において、RAM1203に記憶されたデジタルカメラ1101の所有者名(ユーザの名前)を追加する。所有者名をokadaとすると、/~okada/img_0001.jpg, /~okada/img_0002.jpg, /~okada/img_0003.jpgとなる。
【0101】
その3:その1と同条件で、しかも上記3つの画像ファイルが2003年12月31日に撮影されたとして、撮影日付をディレクトリ名に加える。/2003_12_31/img_0001.jpg, /2003_12_31/img_0002.jpg, /2003_12_31/img_0003.jpgとなる。
【0102】
あるいは、これらの組み合わせでもよい。3つを組み合わせた場合は、例えば/~okada/pictures/2003_12_31/img_0001.jpgとなる。複数の画像ファイルが全て同じディレクトリに存在していなければならないということはない。
【0103】
その4:フラッシュROM1209上のルートディレクトリ直下に、/100/img_1001.jpg、/200/img_2001.jpg、/300/img_3001.jpgが存在するなら、これらにデフォルトの画像格納ディレクトリ/picturesをそれぞれ加え、/pictures/100/img_1001.jpg,/pictures/200/img_2001.jpg, pictures/300/img_3001.jpgとする。
【0104】
その5:フラッシュROM1209上のルートディレクトリ直下に、img_0001.jpg、img_0002.jpg、img_0003.jpgが存在していて、これらの撮影日付がそれぞれ2003-12-29, 2003-12-30, 2003-12-31なら、/03_12_29/img_0001.jpg, /03_12_30/img_0002.jpg, /03_12_31/img_0003.jpgとする。
【0105】
以上のように、画像ファイルのサーバ1102における格納位置は自由に決定することができる。但し、ここでは、決定された格納位置から、元のフラッシュROM1209上の画像ファイルのパスを復元できるようにしている。例えば、決定された格納位置を示すパスの最後の要素であるファイル名がimg_0001.jpgならば、フラッシュROM1209上のimg_0001.jpgのことであると特定できる。もう一つの例で言えば、決定された格納位置を示すパスの最後のファイル名と、その上のディレクトリ名が/100/img_1001.jpgであれば、フラッシュROM1209上の/100/img_1001.jpgのことであると特定できる。
【0106】
ここの例では、ディレクトリ名、ファイル名とも変更していないが、画像ファイルのプレフィクスは"img_"であり、不変であるというなら、ファイル名の数字下4けたを残して変更しても良い。
【0107】
画像ファイルのパスを復元できるようになっている理由は、後述するが、デジタルカメラ1101がサーバ1102から受信未完画像ファイルの情報を受信したとき、受信未完画像ファイルの情報には、その画像ファイルのサーバ1102における格納位置が含まれるので、デジタルカメラ1101がサーバ1102にその画像ファイルの送信を再開するためには、画像ファイルの格納位置から、元のフラッシュROM1209上の画像ファイルのパスを復元できなければならないからである。
【0108】
もっとも、デジタルカメラ1101がフラッシュROM1209上の画像ファイルのパスと画像ファイルの格納位置との対応関係を示す対応テーブルを有するなら、上記のような制限なく、どのような格納位置に決定してもよいことになる。
【0109】
また、画像ファイルの格納位置は必ずデジタルカメラ1101が決定しなければならないということはない。サーバ1102がデジタルカメラ1101から受け取った画像ファイルの格納位置をサーバ1102側で決定し、デジタルカメラ1101は単にファイル名を指定してくれればよいというのであれば、デジタルカメラ1101側ではimg_0001.jpg, img_0002.jpg, img_0003.jpgと指定することもあり得る。
【0110】
次に、デジタルカメラ1101のユーザは、接続先のサーバ1102を予め入力しておいた接続先候補の中から選択する(ステップS1004)。勿論、そのサーバ1102への接続が初めてなら、ここでアドレスを入力しても良い。
【0111】
ここからは、デジタルカメラ1101とサーバ1102のお互いが使用する通信の環境とプロトコルに従って実際の通信が行われる。本発明は特別なプロトコルに限定されるものではないが、例えば、一般的なTCP/IP(Transmission Control Protocol/Internet Protocol)プロトコルが用いられる。
【0112】
図15に示す画像通信シーケンスはステートを有するシーケンスであり、TCP/IPプロトコルの上位プロトコルとしては、独自のプロトコルを使用しても良いが、標準技術をできるだけ使うのであれば、1つ1つのメッセージはステートレスなプロトコル、例えばHTTPを使用することが可能である。そのようにすれば、サーバ1102ではWebアプリケーションを作ることで、本発明の実現が可能になる。とにかく、どのようなプロトコルを用いるとしても、デジタルカメラ1101とサーバ1102の間でやり取りされるデータを本実施の形態ではメッセージと呼ぶことにする。
【0113】
図15に示すように最初のメッセージである送信要求(1301)がデジタルカメラ1101からサーバ1102に送られる(ステップS1005)。サーバ1102のCPU1701は、この送信要求(1301)を受け付ける(ステップS1401)。CPU1701は、他の接続状況や、各種リソースの逼迫の具合、CPUの負荷を見ながら、送信の要求を受け付けてもよいと判断したら、送信許可(1302)メッセージをデジタルカメラ1101に送信する(ステップS1402)。
【0114】
デジタルカメラ1101のCPU1201は、送信許可(1302)メッセージを受け付ける(ステップS1006)。送信が許可されたCPU1201は、カメラID(1303)、送信しようとしている画像ファイルの格納場所(1304)、及び送信ファイルリスト(1305)をサーバ1102に送信する(ステップS1007)。
【0115】
ここで、カメラID(303)としては、デジタルカメラ1101の製造シリアル番号を用いることが考えられる。但し、様々なメーカのデジタルカメラをサポートするのであれば、製造シリアル番号だけでは重複しないとも限らないので、メーカ名+カメラ型名+製造シリアル番号のような形式を使っても良い。
【0116】
画像ファイルの格納場所(1304)としては、上記ステップS1003で決定した各画像ファイルの格納位置に共通部分があれば、それを指定する。例えば、img_0001.jpgの格納位置をhttp://xyz.jp/pictures/img_0001.jpgなどとしたのであれば、"http://xyz.jp/pictures/"を格納場所(1304)とする。
【0117】
送信ファイルリスト(1305)としては、各々の画像ファイルの格納位置の上記格納場所(1304)からの相対パスをリストで指定する。例えば、http://xyz.jp/pictures/100/img_1001.jpg, ttp://xyz.jp/pictures/200/img_2001.jpg, http://xyz.jp/pictures/300/img_3001.jpgという画像ファイルを送信するのであれば、リストは、100/img_1001.jpg, 200/img_2001.jpg, 300/img_3001.jpgとなる。
【0118】
一方、サーバ1102のCPU1701は、デジタルカメラ1101からカメラID(1303)、格納場所(1304)、及び送信ファイルリスト(1305)を受信する(ステップS1403)。これに伴い、CPU1701は、これから開始しようとしている通信セッションを識別するためのセッションID(1306)を生成する(ステップS1404)。セッションID(1306)は通信セッションを識別できるものであればどのようなものでもよい。
【0119】
次に、CPU1701は、このセッションID(1306)、カメラID(1303)、格納場所(1304)、及び送信ファイルリスト(1305)を関連付けて、RAM1703に記憶する(ステップS1405)。
【0120】
図20にサーバ1102のRAM1703に記憶される関連付けテーブルの例を示す。1501は、セッションID(1306)、カメラID(1303)、格納場所(1304)、及び送信ファイルリスト(1305)中の各画像ファイルの情報のエントリを指すポインタの関連付けを示すセッションIDテーブルである。セッションIDテーブル1501には、便宜上、1つのエントリしか書かれていないが、当然、複数のエントリを持つことができ、同時に複数のセッションについて処理することができる。
【0121】
1502は、送信ファイルリスト中の各画像ファイルの情報のエントリを示すファイル情報エントリであり、相対パス、ファイル長、受信済みバイト数、受信終了フラグから構成されている。図20は、上記で説明した格納場所(1304)と送信ファイルリスト(1305)の相対パスが格納されている様子を示している。
【0122】
図21もセッションIDテーブル1501とファイル情報エントリ1502の例を示すものであるが、サーバ1102が異なる格納場所(1304)と送信ファイルリスト(1305)をデジタルカメラ1101から受信した場合の例を示している。この場合は、格納場所(1304)を示す情報はなく、送信ファイルリスト(1305)として、各画像ファイルがURLで指定されている。画像ファイルをこのように指定することも可能である。
【0123】
画像ファイルは必ずURLで指定しなければならないというものではない。例えば、上記においてデジタルカメラ1101で画像ファイルの格納位置を考えたときのように、サーバ1102で画像ファイルの格納位置を決定するために、デジタルカメラ1101が指定する格納位置を単にimg_0001.jpg, img_0002.jpg, img_0003.jpgとしたとすると、これをそのまま送信ファイルリストとしてもよい。また、図20と図21では送信ファイルリスト(1305)の各画像ファイルの情報を相対パスとURLと分けたが、実際は区別する必要はなく、どちらかの情報が入っていれば良い。
【0124】
さて、サーバ1102のCPU1701は、セッションID(1306)をデジタルカメラ1101に送信する(ステップS1406)。デジタルカメラ1101では、CPU1201がサーバ1102からセッションID(1306)を受信し(ステップS1008)、このセッションID(1306)と、接続先サーバであるサーバ1102のアドレス(必要であればポート番号も)を、フラッシュROM1209に保存する(ステップS1009)。この場合、画像送信機能が読み出せる形式で保存しておけばよい。
【0125】
そしていよいよ、デジタルカメラ1101では各画像ファイルの送信処理に入る。デジタルカメラ1101のCPU1201は、処理すべき次の画像ファイルを選択する(ステップS1010)。1回目にステップS1010の処理を行うときは、最初の画像ファイルが選択されることになる。次に、CPU1201は、選択した画像ファイルに関するファイル情報(1307)をサーバ1102に送信する(ステップS1011)。画像ファイルの情報とは、送信ファイルリストの中で、これから送ろうとしている画像ファイルはどの画像ファイルかを示す画像ファイルの名前(必要に応じて相対パスやURLを使えばよい)、及び画像ファイルのバイト長である。
【0126】
サーバ1102のCPU1701は、このファイル情報(1307)を受信すると(ステップS1407)、画像ファイルの名前からファイル情報エントリを特定し、そのファイル情報エントリに、受信した画像ファイルのバイト長を書き込む。通信エラーが発生しなければ(ステップS1408でN)、CPU1701は、OK(1308)メッセージをデジタルカメラ1101に送信する(ステップS1409)。この送信にエラーが発生しなければ(ステップS1410でN)、CPU1701は、デジタルカメラ1101からの画像ファイルの受信を待つ。
【0127】
デジタルカメラ1101のCPU1201は、ファイル情報送信(ステップS1011)の際、通信エラーが起こらなければ(ステップS1012でN)、サーバ1102からOK(1308)メッセージを受信する(ステップS1013)。OK(1308)メッセージを受信時にエラーがなければ(ステップS1014でN)、次にCPU1201は、画像ファイルそのもの(1309)をサーバ1102に送信する(ステップS1015)。この画像ファイル送信にエラーが発生しなければ(ステップS1016でN)、CPU1201は、OK(1310)メッセージの受信を待つ。
【0128】
サーバ1102のCPU1701は、デジタルカメラ1011から画像ファイルを受信する(ステップS1411)。CPU1701は、画像ファイルを受信している間、受信に成功した画像ファイルのバイト数に従って(画像ファイル受信の進捗に応じて)、ファイル情報エントリ1502の受信済みバイト数を更新しておく。通信エラーが発生しなければ(ステップS1412でN)、CPU1701は、OK(1310)メッセージをデジタルカメラ1101に送信する(ステップS1413)。
【0129】
次に、CPU1701は、OK(1310)メッセージの送信にエラーが発生しなかったかどうかをチェックし(ステップS1414)、エラーが発生しなければ、デジタルカメラ1101から受信が終了した画像ファイルについて、ファイル情報エントリ1502の受信終了フラグを「終了」にしておく(ステップS1415)。
【0130】
次に、CPU1701は、受信が終了した画像ファイルをHDD1706における指定された格納位置に置く(ステップS1416)。処理中の画像ファイルの格納場所がhttp://xyz.jp/pictures/、相対パスが100/img_1001.jpgの場合は、http://xyz.jp/pictures/100/img_1001.jpgとして外部からアクセス可能な格納位置に置かれる。当然、サーバ1102は、URLがhttpで始まる場合はサーバ1102上で動作するHTTPサーバの、URLがftpで始まる場合はFTPサーバの(その他のサーバも同様である)、ドキュメントルートやエイリアス情報を知っており、それらのURLから画像ファイルを置くべきファイルシステム上の位置を特定できるものとする。
【0131】
もしくは、少なくとも、画像ファイルを置くURLに関しては、ファイルシステム上の位置を特定できるものとする。勿論、画像ファイルの格納場所や相対パスの指定が独自の形式に従っており、サーバ1102がそれからファイルシステム上の格納位置を決定してもよい。
【0132】
上述したように、送信ファイルリストが単にファイル名の形式で、img_0001.jpgとなっていた場合は、所定の方法(デジタルカメラ1101で格納位置を決定する個所で述べたように、特定のディレクトリに置く、デジタルカメラのユーザ名を使用する、画像ファイルの日付情報を使用する等、様々な方法が考えられる)でファイルシステム上の格納位置を決定し、そこに画像ファイルを置く。
【0133】
最後に、CPU1701は、送信ファイルリスト中の全画像ファイルについて受信終了フラグが「終了」になったかどうかを調べ(ステップS1417)、受信終了フラグが「終了」になっていれば、受信手順を終了する。CPU1701は、受信終了フラグが「終了」になっていなければ、ステップS1407に戻り、残っている画像ファイルのファイル情報を受信する。
【0134】
デジタルカメラ1101のCPU1201は、OK(1310)メッセージを受信すると(ステップS1017)、その受信にエラーがない場合は(ステップS1018でN)、送信ファイルリストの中で、もう処理すべき画像ファイルはないかどうかを調べ(ステップS1019)、処理すべき画像ファイルがあれば、ステップS1010に戻り、次の画像ファイルを処理する。CPU1201は、処理すべき画像ファイルがなければ、最後にフラッシュROM1209に記憶していたセッションIDと接続先サーバのアドレスを削除して(ステップS1020)、送信手順を終了する。
【0135】
尚、上記ステップS1020の処理が必要なのは、セッションIDと接続先サーバのアドレスを残しておくと、後述するように送信再開手順と間違えてしまうからである。
【0136】
次に、上述した画像ファイルの送信が中断される場合の手順について、図15のシーケンス図、図22のフローチャート、及び図23のフローチャートを参照しながら説明する。
【0137】
図22は、デジタルカメラ1011の送信中断手順1を示すフローチャート、図23は、サーバ1102の受信中断手順を示すフローチャートである。
【0138】
図15、図22、図23において、デジタルカメラ1101がサーバ1102に対して上記で述べた画像ファイルの送信を行っている間に(再生モードであったときに)、例えば、ユーザが急に撮影しようとして撮影モード・再生モード切替スイッチ212により撮影モードに切り替え、撮影モードに入ったとする(ステップS1501)。
【0139】
撮影モードでは、当然のことながら、シャッタの制御、ズームの制御、CCD1211の読み出し、ディスプレイ1205へのプレビュー表示等、様々なリアルタイム処理を行わなければならない。まして、シャッタが切られれば、CCD1211の読み出し、画像処理、JPEGエンコード化、フラッシュROM1209への記録等の処理も重なり、優先すべき処理が数多くある。撮影以外の機能を実行するために、撮影のレスポンスが悪くなったのでは本末転倒である。画像ファイル送信のような後回しできる処理は、できるだけ後回しした方が望ましい。そこで、撮影モードに入った時は、一旦、画像ファイル送信を中断する。
【0140】
デジタルカメラ1101のCPU1201は、送信中断要求(1312)メッセージをサーバ1102に送る(ステップS1502)。サーバ1102のCPU1701は、このメッセージを受け付け(ステップS1601)、送信中断に必要な処理を行う。例えば、サーバ1102において現在の画像ファイル受信処理数を管理しているなら、これを1つ減らすことが考えられる。サーバ1102がリソース管理を行っており、同時に画像ファイル受信処理を受け付ける数を制限しているなら、この1つ減らすという操作によって、他のデジタルカメラ1101からの画像ファイル送信を受け付けるというようにすることもできる。
【0141】
他には、タイマ1704を用いて、画像ファイルの送信中断時刻を計測する中断タイマを開始するということも考えられる。中断タイマがタイムアウト(送信中断時刻の到来)した後は、受信途中の画像ファイルと未受信の画像ファイルについては受信中止となり、セッションが破棄される。該当するセッションIDテーブル1501及びファイル情報エントリ1502はクリアされる。従って、そのセッションIDを用いて画像ファイル送信を再開しようとしても、再開不可となる。
【0142】
次に、サーバ1102のCPU1701は、OK(1313)メッセージをデジタルカメラ1101に送信する(ステップS1602)。デジタルカメラ1101のCPU1201は、メッセージを受信して(ステップS1503)、送信中断手順を終了する。
【0143】
ところで、図22のフローチャートに示したシーケンスは、デジタルカメラ1101で撮影モードに入るという事象が発生したときに実行される。つまり、デジタルカメラ1101の動作プログラムにとっては割り込み処理のような扱いである。デジタルカメラ1101で図16・図17の送信手順が実行されている間に図22のシーケンスが実行されることが当然あり得る。
【0144】
デジタルカメラ1101で画像ファイル送信中に撮影モードに入るという事象が発生した場合、デジタルカメラ1101とサーバ1102の間で何らかのデータを送受信中の場合は、送受信を即座に中止する。一例として、ソケットインタフェースを用いてTCP/IP通信を行っている場合は、ソケットを即座にクローズする。これにより、送受信処理がエラーとなる。また、何らかのデータを送受信中でなくとも、通信エラーが発生したのと同様な状態にしておく。
【0145】
これらの処理により、デジタルカメラ1101側の図17のステップS1012、ステップS1014、ステップS1016、あるいはステップS1018において、エラーとなり、以降の画像ファイル送信処理が停止される。サーバ1102側にとっても、デジタルカメラ1101で画像ファイル送信処理が停止されるので、画像ファイル受信処理が停止される。
【0146】
次に、デジタルカメラ1101からサーバ1102に画像ファイルの送信を再開する時の手順について、図15のシーケンス図、図24・図25のフローチャート、及び図26・図27のフローチャートを参照しながら説明する。
【0147】
図24・図25は、デジタルカメラ1101の送信再開手順1を示すフローチャート、図26・図27は、サーバ1102の受信再開手順1を示すフローチャートである。
【0148】
デジタルカメラ1101で撮影モードに入った後、撮影が終了し、またユーザが撮影モード・再生モード切替スイッチ1212を操作して再生モードに戻ったとする。デジタルカメラ1101の再生モードでは、サーバ1102に画像ファイル送信を行う余裕があるので、画像ファイル送信を再開する。
【0149】
画像ファイル送信を再開する他の機会としては、撮影モードのまま何も操作しないでタイムアウトした場合が考えられる。通常、このような場合は、電源を節約するために電源が切れるが、本実施の形態のデジタルカメラ1101では、画像ファイルの送信中断状態であった場合、再生モードに戻って画像ファイル送信を再開するようになっている。以下の手順では、ユーザが撮影モード・再生モード切替スイッチ1212を操作して再生モードに戻った場合を考える。
【0150】
図15、図24〜図27において、まず、デジタルカメラ1101のユーザが撮影モード・再生モード切替スイッチ1212を操作して再生モードに入る(ステップS1701)。これに伴い、デジタルカメラ1101のCPU1201は、フラッシュROM1209上にセッションIDが保存されているかどうかを調べる(ステップS1702)。図16のステップS1009で保存されるはずのセッションIDが存在するかどうかを調べるわけである。
【0151】
セッションIDが存在しない理由としては、画像ファイルの送信中断の間にフラッシュROM1209が交換されたことが考えられる。撮影モードが続いている間にフラッシュROM1209が交換されることはないかも知れないが、撮影モードから一旦電源がオフされてフラッシュROM1209が交換されるというのはあり得る。
【0152】
フラッシュROM1209が交換された場合は、当然、記録されている画像ファイルの内容が異なるので、例え送信ファイルリストの中の送信しようとする画像ファイルの名前が一致するとしても、その画像ファイルを送信するわけにはいかない。フラッシュROM1209上のセッションIDの存在を確認するのは、そのような間違いを防止するのに役立つ。
【0153】
さて、デジタルカメラ1102のCPU1201は、フラッシュROM1209上にセッションIDが残っていない場合は、画像ファイルの送信再開処理を行わず、送信再開手順を終了する。CPU1201は、フラッシュROM1209上にセッションIDが残っていた場合は、図16のステップS1009で同時に保存された接続先サーバのアドレスを読み出す(ステップS1703)。そして、CPU1201は、送信再開要求(1314)メッセージと、送信を再開するセッションのセッションID(1315)をサーバ1102に送信する(ステップS1704)。
【0154】
一方、サーバ1102のCPU1701は、デジタルカメラ1101から送信再開要求(1314)メッセージと、送信を再開するセッションのセッションID(1315)を受信する(ステップS1801)。これに伴い、CPU1701は、セッションIDテーブル1501とファイル情報エントリ1502を調べて、まだ受信が終了していない画像ファイルを抽出し、受信未完ファイルリスト(1316)として構成し、デジタルカメラ1101に送信する(ステップS1802)。
【0155】
受信未完ファイルリスト(1316)のデータの形式は、送信ファイルリスト(1305)で指定したものと同様になっている。図20の例で言えば、100/img_1001.jpgのみが受信終了していた場合、受信未完ファイルリスト(1316)には、200/img_2001.jpg, 300/img_3001.jpgが含まれる。尚、受信未完ファイルリスト(1316)は、ファイル名(もしくはパスの一部)だけでなく、その画像ファイルに関する受信済みバイト数を含んでいても良い。
【0156】
デジタルカメラ1101のCPU1201は、受信未完ファイルリスト(1316)を受信する(ステップS1705)。そして、CPU1201は、この受信未完ファイルリストで指定された画像ファイルを順次、サーバ1102に送信する。ここから先のステップS1706〜ステップS1716は、図16・図17の送信手順におけるステップS1010〜ステップS1020と同様である。
【0157】
尚、上述したように、受信未完ファイルリスト(1316)が画像ファイルに関する受信済みバイト数を含んでいる場合は、画像ファイルを先頭から送信するのではなく、受信済みバイト数をスキップして、次のバイト位置から送信するようにする。このようにすれば、送信量、送信時間が少なくて済む。
【0158】
サーバ1102においてデジタルカメラ1101から画像ファイルを順次受信するステップS1803〜ステップS1813は、図18・図19の受信手順におけるステップS1407〜ステップS1417と同様である。
【0159】
次に、デジタルカメラ1101で画像ファイルの送信手順実行中に電源がオフされ、画像ファイルの送信が中断される手順について、図28のシーケンス図及び図29のフローチャートを参照しながら説明する。
【0160】
図28は、デジタルカメラ1101とサーバ1102の間の画像通信シーケンスを示す図、図29は、デジタルカメラ1101の送信中断手順2を示すフローチャートである。
【0161】
デジタルカメラ1101で画像ファイルの送信中に撮影モードに入った時と同様、電源がオフされたときも、画像ファイルの送信が中断される。これは、ネットワークI/F1210に電源が供給されなくなるのであるから、当然である。本実施の形態では、このような場合も画像ファイル送信が後で再開できるようになっている。
【0162】
画像ファイルの送信手順の実行中、例えば、デジタルカメラ1101のユーザがいきなり電源ボタン1213をオフ操作したとする(ステップS1901)。これにより、デジタルカメラ1101内の各部に供給されていた電源が遮断され、デジタルカメラ1101とサーバ1102の間の通信は中断する(ステップS1902)。
【0163】
この場合は、図16・図17のフローチャートに示したシーケンスはエラーの発生を待たずに、強制終了となる。サーバ1102側でも受信が中断される。但し、画像ファイル受信状態は記録されているので、送信再開は可能である。
【0164】
サーバ1102側でこのままの状態が続いた場合はどうなるかを説明する。この場合はデジタルカメラ1101から中断要求(1312)メッセージが来ないので、上記のように中断タイマを働かせるわけにはいかないが、やはりこの場合も、何らかの受信タイマが動いていることが望ましい。受信タイマは図18のステップS1404でセッションIDを生成したときに動作を開始する。受信タイマは中断タイマよりタイムアウト時間は長く取る。
【0165】
受信タイマがタイムアウトしたら、中断タイマのタイムアウト時と同様、サーバ1102で受信途中の画像ファイルと未受信の画像ファイルについては受信中止となり、セッションが破棄される。該当するセッションIDテーブル1501及びファイル情報エントリ1502はクリアされる。従って、デジタルカメラ1101でそのセッションIDを用いてサーバ1102に画像ファクシミリの送信を再開しようとしても、再開不可となる。
【0166】
上記受信タイマがタイムアウトする前に、デジタルカメラ1101の電源がオンされた場合は、図24・図25のフローチャートに示したシーケンスで説明したのと同様に、デジタルカメラ1101からサーバ1102への画像ファイルの送信が再開される。但し、デジタルカメラ1101の電源オン直後のモードが再生モードであった場合の話である。デジタルカメラ1101が撮影モードであった場合は、送信中断状態が続く。デジタルカメラ1101がこの状態から再生モードに入ると、サーバ1012への画像ファイルの送信が再開される。
【0167】
次に、デジタルカメラ1101からサーバ1102に対するもう1つの送信再開手順について、図30のシーケンス図、図31のフローチャート、及び図32のフローチャートを参照しながら説明する。
【0168】
図30は、デジタルカメラ1101とサーバ1102の間の画像通信シーケンスを示す図、図31は、デジタルカメラ1101の送信再開手順2を示すフローチャート、図32は、サーバ1102の受信再開手順2を示すフローチャートである。
【0169】
以下の手順では、それまで撮影モードであったデジタルカメラ1101において、ユーザが撮影モード・再生モード切替スイッチ1212を操作して再生モードに戻った場合を考える。
【0170】
図30、図31、図32において、まず、デジタルカメラ1101のユーザが撮影モード・再生モード切替スイッチ1212を操作して再生モードに入る(ステップS2001)。これに伴い、デジタルカメラ1101のCPU1201は、フラッシュROM1209上にセッションIDが保存されているかどうかを調べる(ステップS2002)。CPU1201は、フラッシュROM1209上にセッションIDが残っていない場合は、送信再開処理を行わず、送信再開手順を終了する。
【0171】
CPU1201は、フラッシュROM1209上にセッションIDが残っていた場合は、図16のステップS1009でセッションIDと同時に保存された接続先サーバのアドレスを読み出す(ステップS2003)。そして、CPU1201は、送信再開要求(1314)メッセージと、送信を再開するセッションのセッションID(1315)をサーバ1102に送信する(ステップS2004)。
【0172】
一方、サーバ1102のCPU1701は、デジタルカメラ1101から送信再開要求(1314)メッセージと、送信を再開するセッションのセッションID(1315)を受信する(ステップS2101)。これに伴い、CPU1701は、セッションIDテーブル1501とファイル情報エントリ1502を調べて、まだ受信が終了していない画像ファイルを抽出し、最初の受信未完ファイル情報(1801)としてデジタルカメラ1101に送信する(ステップS2102)。
【0173】
受信未完ファイル情報(1801)のデータの形式は、送信ファイルリスト(1305)の中の1つのファイルに関する指定と同様である。図20の例で言えば、100/img_1001.jpgのみが受信終了していた場合、最初の受信未完ファイル情報(1801)は、200/img_2001.jpgとなる。300/img_3001.jpgは次の受信未完ファイル情報(1801)である。尚、受信未完ファイル情報(1801)は、ファイル名(もしくはパスの一部)だけでなく、その画像ファイルに関する受信済みバイト数を含んでいても良い。
【0174】
デジタルカメラ1101のCPU1201は、サーバ1102から受信未完ファイル情報(1801)を受信する(ステップS2005)。そして、CPU1201は、この受信未完ファイル情報(1801)で指定された画像ファイルを特定し、該当する画像ファイル(1802)をサーバ1102に送信する(ステップS2006)。
【0175】
尚、上述したように、受信未完ファイル情報(1801)が画像ファイルに関する受信済みバイト数を含んでいる場合は、画像ファイルを先頭から送信するのではなく、受信済みバイト数をスキップして、次のバイト位置から送信するようにする。このようにすれば、送信量、送信時間が少なくて済む。
【0176】
サーバ1102のCPU1701は、デジタルカメラ1101から画像ファイル(1802)を受信すると(ステップS2103)、エラーが発生しなかった場合は(ステップS2104でN)、この画像ファイルの受信フラグを「終了」にすると共に(ステップS2105)、格納位置に画像ファイルを置く(ステップS2106)。そして、CPU1701は、全画像ファイルについて受信が終了していなければ(ステップS2107でN)、次の受信未完画像ファイルを選択し、そのファイル情報(1803)をデジタルカメラ1101に送信する(ステップS2102)。
【0177】
サーバ1102でこうして全画像ファイルを受信終了すると、CPU1701は、最後にOK(1806)メッセージをデジタルカメラ1101に送信する(ステップS2108)。デジタルカメラ1101のCPU1201は、サーバ1102から次の受信未完ファイル情報(1803)を受信すると(ステップS2007)、この画像ファイルをサーバ1102に送信する(ステップS2006)。
【0178】
こうして、デジタルカメラ1101のCPU1201は、サーバ1102が要求する画像ファイルを次々とサーバ1102に送り込む。最後に、CPU1201は、サーバ1102からOK(1806)メッセージを受け取ると(ステップS2007でN)、送信再開手順を終了する。
【0179】
以上説明したように、本実施の形態によれば、デジタルカメラ1101からサーバ1102に画像ファイルを送信中に、デジタルカメラ1101が突然撮影モードに入ったり電源がオフされたりする等のデジタルカメラ側の状態遷移に応じて、画像ファイルの送信を中断することができると共に、サーバ1102からの受信未完情報で指定された画像ファイルをサーバ1102に送信することで、的確に画像ファイルの送信を再開することができる。
【0180】
また、上記のような画像ファイルの送信を中断せねばならない事象が発生した場合でも、送信中断までの途中の状態(送信ファイルリスト、受信済みバイト数)をサーバ1102側で記憶させるようにしたことで、デジタルカメラ1101に余計な負荷を掛けることなく、正確な位置から画像ファイルの送信を再開することができる。
【0181】
また、デジタルカメラ1101はフラッシュROM1209に複雑な送信ファイルリストを記憶させておく必要がなく、フラッシュROM1209上で送信済みバイト数をその都度更新する必要もなく、サーバ1102から送信される単に通信セッションに関連付けられたセッションIDを最初に一度、フラッシュROM1209に記憶するだけで済むため、画像ファイル送信に関わる記憶制御処理の簡易化や、デジタルカメラ1101の記憶資源の有効活用等が可能となる。
【0182】
[他の実施の形態]
上記第1乃至第3の実施の形態では、図4、図5、図7、図9、図10に示すプログラムコード群を主記憶装置103に格納し、主記憶装置103から中央処理装置102がプログラムコード群を読み出して実行する例を説明したが、これに限定されるものではない。プログラムコード群を不揮発性メモリ104または撮像装置内部の記憶資源に格納し、不揮発性メモリ104または記憶資源から中央処理装置102がプログラムコード群を読み出して実行するようにしてもよい。
【0183】
図11は、中央処理装置102で読み出し可能な各種制御プログラムのプログラムコード群を格納する記憶媒体のメモリマップを示す図である。この記憶媒体には、図4、図5のフローチャートに示すプログラムコード、即ち、第1の実施の形態におけるプログラムコードが第1の制御プログラムに対応するプログラムコード群として格納されている。また、第2の実施の形態におけるプログラムコードが第2の制御プログラムに対応するプログラムコード群として格納されている。更に、第3の実施の形態におけるプログラムコードが第3の制御プログラムに対応するプログラムコード群として格納されている。
【0184】
特に図示しないが、この記憶媒体には、記憶されるプログラム群を管理する情報、例えばバージョン情報、作成者等を記憶し、かつプログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等を記憶するようにしてもよい。
【0185】
更に、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムを撮像装置にインストールするためのプログラムや、インストールするプログラムが圧縮されている場合、解凍するプログラム等を記憶するようにしてもよい。
【0186】
また、図11に示すプログラムコード群の機能が、外部からインストールされるプログラムによって本システムにより遂行されてもよい。この場合、フラッシュメモリ、SDメモリ等の記憶媒体により、或いはネットワークを介して外部の記憶媒体からプログラムを含む情報群を本システムに供給することが可能である。
【0187】
上記第1及び第2の実施の形態では、撮像装置から外部機器に画像データを一定のバッファサイズ単位で送信する例、ファイル単位で送信する例をそれぞれ説明したが、これに限定されるものではない。画像データを一定のバッファサイズ単位で送信するかファイル単位で送信するかを操作部108から選択可能としてもよい。これにより、通信状態に応じた柔軟な送信が可能となる。
【0188】
上記第4の実施の形態では、図12にデジタルカメラ1101とサーバ1102の仮想的な接続例を説明したが、上記第1乃至第3の実施の形態と同様にデジタルカメラ1101とサーバ1102を携帯電話機や無線ルータを介して接続することも可能である。
【0189】
本発明は、上述した実施の形態の機能を実現するソフトウェアのプログラム(第1乃至第3の実施の形態では図4、図5、図7、図9、図10のフローチャート、第4の実施の形態では図16〜図19、図22〜図27、図29、図31、図32のフローチャート)をコンピュータ又はCPUに供給し、そのコンピュータ又はCPUが該供給されたプログラムを読出して実行することによって、達成することができる。
【0190】
この場合、上記プログラムは、該プログラムを記録した記憶媒体から直接供給されるか、又はインターネット、商用ネットワーク、若しくはローカルエリアネットワーク等に接続される不図示の他のコンピュータやデータベース等からダウンロードすることにより供給される。
【0191】
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、OS(オペレーティングシステム)に供給されるスクリプトデータ等の形態から成ってもよい。
【0192】
また、本発明は、上述した実施の形態の機能を実現するソフトウェアのプログラムを記憶した記憶媒体をコンピュータ又はCPUに供給し、そのコンピュータ又はCPUが記憶媒体に記憶されたプログラムを読出して実行することによっても、達成することができる。
【0193】
この場合、記憶媒体から読出されたプログラムコード自体が上述した各実施の形態の機能を実現すると共に、そのプログラムコードを記憶した記憶媒体は本発明を構成する。
【0194】
プログラムコードを記憶する記憶媒体としては、例えば、ROM、RAM、NV−RAM、フロッピー(登録商標)ディスク、ハードディスク、光ディスク(登録商標)、光磁気ディスク、CD−ROM、MO、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW、磁気テープ、不揮発性のメモリカード等がある。
【0195】
上述した実施の形態の機能は、コンピュータから読出されたプログラムコードを実行することによるばかりでなく、コンピュータ上で稼動するOS等がプログラムコードの指示に基づいて実際の処理の一部又は全部を行うことによっても実現することができる。
【図面の簡単な説明】
【0196】
【図1】本発明の第1の実施の形態に係る画像送信装置としての撮像装置の概略構成を示すブロック図である。
【図2】撮像装置の制御機能を示すブロック図である。
【図3】撮像装置の送信情報生成部で生成される送信済み情報の一例を示す図である。
【図4】撮像装置の制御手順を示すフローチャートである。
【図5】撮像装置の画像データ送信処理の制御手順を示すフローチャートである。
【図6】本発明の第2の実施の形態に係る画像送信装置としての撮像装置の送信情報生成部で生成される送信済み情報の一例を示す図である。
【図7】撮像装置の画像データ送信処理の制御手順を示すフローチャートである。
【図8】本発明の第3の実施の形態に係る画像送信装置としての撮像装置に対し遠隔から送信される撮影コマンドの一例を示す図である。
【図9】撮像装置の制御手順を示すフローチャートである。
【図10】撮像装置の画像データ送信処理の制御手順を示すフローチャートである。
【図11】CPUで読み出し可能な各種制御プログラムのプログラムコード群を格納する記憶媒体のメモリマップを示す図である。
【図12】本発明の第4の実施の形態に係る画像送信装置としてのデジタルカメラと画像受信装置としてのサーバからなるクライアントサーバシステムの概略構成を示す図である。
【図13】デジタルカメラの内部構成を示すブロック図である。
【図14】サーバの内部構成を示すブロック図である。
【図15】デジタルカメラとサーバの間の画像通信シーケンスを示す図である。
【図16】デジタルカメラの画像送信手順を示すフローチャートである。
【図17】図16のフローチャートの続きである。
【図18】サーバの画像受信手順を示すフローチャートである。
【図19】図18のフローチャートの続きである。
【図20】サーバのセッションIDテーブル及びファイル情報エントリの例を示す図である。
【図21】サーバのセッションIDテーブル及びファイル情報エントリの例を示す図である。
【図22】デジタルカメラの送信中断手順1を示すフローチャートである。
【図23】サーバの受信中断手順を示すフローチャートである。
【図24】デジタルカメラの送信再開手順1を示すフローチャートである。
【図25】図24のフローチャートの続きである。
【図26】サーバの受信再開手順1を示すフローチャートである。
【図27】図26のフローチャートの続きである。
【図28】デジタルカメラとサーバの間の画像通信シーケンスを示す図である。
【図29】デジタルカメラの送信中断手順2を示すフローチャートである。
【図30】デジタルカメラとサーバの間の画像通信シーケンスを示す図である。
【図31】デジタルカメラの送信再開手順2を示すフローチャートである。
【図32】サーバの受信再開手順2を示すフローチャートである。
【符号の説明】
【0197】
101 撮像装置(画像送信装置、撮像装置に対応)
102 中央処理装置(制御手段に対応)
104 不揮発性メモリ(記憶手段に対応)
105 撮像部(撮像手段に対応)
110 通信I/F(通信手段に対応)
202 送受信判定部(指示手段に対応)
204 データ送受信部(通信手段に対応)
205 送信情報生成部(生成手段に対応)
1101 デジタルカメラ(画像送信装置、撮像装置に対応)
1102 サーバ(画像受信装置に対応)
1201 デジタルカメラのCPU(記憶制御手段、第1の送信制御手段、第2の送信制御手段に対応)
1209 フラッシュROM(記憶手段に対応)
1211 CCD(撮像手段に対応)
1701 サーバのCPU(記憶制御手段、第1の送信制御手段、第2の送信制御手段に対応)
1703 RAM(記憶手段に対応)
【技術分野】
【0001】
本発明は、デジタルカメラやデジタルビデオカメラ等の撮像装置で撮影した画像データを外部機器に送信する場合に適用される画像送信装置に関する。
【背景技術】
【0002】
従来、デジタルカメラやデジタルビデオカメラ等の撮像装置から外部機器に画像データを送信する送信時には、送信中の状態に応じて画像データの送信を中止するか、或いは、撮影を優先するために画像データの送信を中断する等の方法が採られていた。
【0003】
例えば、デジタルカメラが画像送信に適したタイミングで画像データを自動送信する技術が提案されている。該提案は、画像データを送信する際、未送信の画像データ(写真)が所定の枚数に達した時点でまとめて送信するが、送信中にデジタルカメラの電源をOFFにする操作があると、未送信の画像データをまとめて送信した後に電源OFFし、その後、電源をONにした時点で未送信の画像データがあればまとめて伝送する。また、送信中に撮影動作が開始された時に送信を中断し、撮影動作が停止した後に送信を再開するものである(例えば、特許文献1参照)。
【0004】
また、デジタルカメラでの撮影が、画像データを外部に送信する通信処理によって阻害されることがないよう、撮影準備動作を検出すると外部との通信を禁止し、通信中に撮影準備動作を検出すると外部との通信を中断する技術が提案されている(例えば、特許文献2参照)。
【0005】
また、撮像装置の画像データを外部の記録装置に効率良く確実に記録すると共に、外部機器との通信状態に応じて画像データを無線伝送する技術が提案されている。該提案では、撮像装置が撮像状態である場合は無線伝送を中断し、通信状態が良好になった場合に無線伝送を再開する(例えば、特許文献3参照)。
【0006】
また、撮像装置で撮像された電子情報を、コンピュータを介してプリント出力したり、或いは、通信手段を介してプリント出力するが、プリントが中断した場合は中断までに完了しているプリントに関わる中断情報を記憶し、中断情報に基づいてプリントを再開する技術が提案されている(例えば、特許文献4参照)。
【0007】
また、デジタルカメラ等の撮像装置で撮影した画像を無線通信で外部機器へ送信中に、通信が切断した後の通信路の再開時に、撮像装置から外部機器に送信していた主画像を特定し、通信の切断前に外部機器で受信完了した通信単位の次の通信単位から受信を再開するようにした技術が提案されている(例えば、特許文献5参照)。
【特許文献1】特開2002−10188号公報
【特許文献2】特開2003−198901号公報
【特許文献3】特開2000−270249号公報
【特許文献4】特開2002−326404号公報
【特許文献5】特開2003−108461号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、上記従来例(特許文献1〜4)では、撮像装置で撮影した画像データを他の機器に送信する際に、画像データをまとめて送信するか、或いは、画像データの送信中断後に再び送信を開始する場合、中断した時点から継続して送信するために未送信の画像データそのものを不揮発性メモリに記憶していた。しかし、不揮発性メモリの容量には限界があるため、大量の画像データを記憶するのは非現実的であった。
【0009】
また、撮影後直ちに画像データを他の機器に送信する場合については考慮されていなかった。更に、画像データの送信を中断する際のトリガとして、撮影動作が行われた場合やユーザが撮像装置の電源をOFFした場合については考慮されているが、ユーザが撮像装置を直接操作するのではなく、撮像装置を遠隔地から制御する場合については考慮されていなかった。
【0010】
また、上記従来例(特許文献5)では、撮像装置と外部機器との間の通信が中断するのは、無線通信においてキャリア電波を喪失する等、通信路の切断を検出した時であり、撮像装置が撮影モードに入った時等のような撮像装置の状態遷移によって、通信を中断させるようなことはしていない。そのため、例えば撮像装置で画像送信中に送信を中断して撮影を行い、撮影終了後に画像送信を再開したいという要望に応えることはできなかった。
【0011】
本発明の第1の目的は、画像データの送信中断後に再び送信を開始する場合、ユーザの複雑な操作を介さずに、送信が中断されたところから継続して確実且つ効率良く画像データを送信することを可能とした画像送信装置を提供することにある。
【0012】
本発明の第2の目的は、画像送信側の状態遷移に応じて画像ファイルの送信を中断し、的確に画像ファイルの送信を再開することを可能とした画像送信装置を提供することにある。
【課題を解決するための手段】
【0013】
上述の目的を達成するために、本発明の画像送信装置は、画像データを外部機器に送信する通信手段と、前記通信手段により画像データを送信する度に送信済み情報を生成する生成手段と、前記生成手段により生成した送信済み情報を記憶する記憶手段と、画像データの送信中の送信中断要因に基づく送信中断及び送信再開を指示する指示手段と、前記指示手段による画像データの送信中断後に送信を再開する場合、前記記憶手段に記憶されている前記送信済み情報を基に、送信が完了していない画像データを送信が中断したところから送信を再開する制御手段と、を備えることを特徴とする。
【0014】
上述の目的を達成するために、本発明の画像送信装置は、画像受信装置に送信した画像ファイル送信要求に伴い、前記画像受信装置から返信されるセッション識別子を記憶手段に保存する記憶制御手段と、前記画像受信装置に画像ファイルを送信中に送信中断事象が発生した場合は、送信を中断し、送信再開事象が発生した場合は、送信再開要求及び前記記憶手段に保存されているセッション識別子を前記画像受信装置に送信する第1の送信制御手段と、前記画像受信装置に対する前記送信再開要求及びセッション識別子の送信に伴い、前記画像受信装置から返信される受信未完情報で指定された画像ファイルを前記画像受信装置に送信する第2の送信制御手段と、を備えることを特徴とする。
【発明の効果】
【0015】
本発明によれば、画像送信装置で画像データの送信中断後に送信を再開する場合、記憶手段に記憶されている送信済み情報を基に、送信が完了していない画像データを送信が中断したところから送信を再開するので、画像データ送信中に電源オフ操作や撮影操作等が行われた場合でも、未送信画像データを最初から送信する必要はない。従って、ユーザの複雑な操作を介さずに、画像データの送信が中断されたところから継続して確実且つ効率良く画像データを送信することができる。
【0016】
また、画像データをバッファサイズ単位で送信するかファイル単位で送信するかを選択できるので、通信状態に応じた柔軟な送信が可能となる。
【0017】
また、画像データを撮影後直ちに送信するか指定枚数の撮影後直ちに送信するかを選択できるので、ユーザの撮影頻度に応じた柔軟な送信を行うことが可能となる。
【0018】
本発明によれば、画像送信装置から画像受信装置に画像ファイルを送信中に、撮影モードに移行したり電源がオフされたりする等の画像送信側の状態遷移に応じて、画像ファイルの送信を中断することができると共に、画像受信装置からの受信未完情報で指定された画像ファイルを画像受信装置に送信することで、的確に画像ファイルの送信を再開することができる。
【0019】
また、上記のような画像ファイルの送信を中断せねばならない事象が発生した場合でも、送信中断までの途中の状態(送信対象画像ファイルのリスト、受信済みバイト数)を画像受信装置側で記憶させるようにしたことで、画像送信装置に余計な負荷を掛けることなく、正確な位置から画像ファイルの送信を再開することができる。
【0020】
また、画像送信装置は記憶手段に複雑な送信対象画像ファイルのリストを記憶させておく必要がなく、記憶手段上で送信済みバイト数をその都度更新する必要もなく、画像受信装置から送信される単に通信セッションに関連付けられたセッション識別子を最初に一度、記憶手段に記憶するだけで済むため、画像ファイル送信に関わる記憶制御処理の簡易化や、画像送信装置の記憶資源の有効活用等が可能となる。
【発明を実施するための最良の形態】
【0021】
以下、本発明の実施の形態を図面に基づき説明する。
【0022】
[第1の実施の形態]
図1は、本発明の第1の実施の形態に係る画像送信装置としての撮像装置の概略構成を示すブロック図である。
【0023】
図1において、撮像装置101は、デジタルカメラ或いはデジタルビデオカメラとして構成されており、中央処理装置(CPU)102、主記憶装置103、不揮発性メモリ104、撮像部105、画像処理部106、表示装置107、操作部108、記憶媒体109、通信インタフェース(I/F)110、バス111を備えている。112は携帯電話機、113はパーソナルコンピュータ(PC)、114は無線ルータである。
【0024】
中央処理装置102は、後述する各種の処理を実行するマイクロプロセッサ等から構成されており、図4、図5、図7、図9、図10の各フローチャートに示す処理を実行する。主記憶装置103は、RAM等から構成されており、撮像等の機器制御を行うオペレーティングシステム(OS)、画像データを送信する処理を行うプログラム(図4、図5、図7、図9、図10に示すプログラムコード群)を格納している。不揮発性メモリ104は、フラッシュメモリ等から構成されており、ユーザの設定情報等の撮像装置の電源がOFFの間も保持すべき情報、画像データを送信する度に生成される送信済み情報、等を記憶するものであり、後述の「他の実施の形態」で説明するように、上記プログラムコード群を格納することも可能である。
【0025】
撮像部105は、被写体(デジタルカメラの場合は静止画(写真)、デジタルビデオカメラの場合は動画)の撮影を行う。画像処理部106は、撮影した画像の圧縮等の画像処理を行う。表示装置107は、撮影した画像の表示やユーザ設定画面の表示等を行う。操作部108は、実際の撮影の操作を行う場合やユーザ設定画面から所望の設定を入力する場合に用いる。記憶媒体109は、コンパクトフラッシュ(登録商標)メモリ或いはSD(Secure Digital)メモリから構成されており、撮影した画像データを保存する。通信I/F110は、携帯電話機112または無線ルータ114を介し外部機器と接続する際のインタフェースを司る。バス111は、上記構成要素間でデータや信号を授受する際の伝送路である。
【0026】
携帯電話機112は、撮像装置101から無線で送信された画像データを保存したり、或いは画像データを携帯電話機112を介して外部機器であるPC113に送信したりする際に利用される。PC113は、撮像装置101から携帯電話機112を介して送信された画像データ、撮像装置101から無線ルータ114を介して送信された画像データ、更には撮像装置101の通信I/F110と直接ケーブルを介して送信された画像データを保存する際に利用される。無線ルータ114は、撮像装置101から無線で送信された画像データをPC113に送信する。
【0027】
上記構成を有する撮像装置101では、撮像部105で撮影した画像を画像処理部106で画像処理し、その画像データを記憶媒体109に保存する。中央処理装置102は、記憶媒体109に格納されている画像データを読み出して主記憶装置103に格納し、その画像データは通信I/F110を介して携帯電話機112や無線ルータ114に送信される。この時、撮像装置101から外部機器に画像データを送信する度に送信情報生成部(後述)で生成される送信済み情報を不揮発性メモリ104に記憶する。
【0028】
図2は、撮像装置の制御機能を示すブロック図である。
【0029】
図2において、撮像装置101は、中央処理装置102がプログラムコードを実行することで実現される画像読み書き部201、送受信判定部202、操作イベント解析部203、データ送受信部204、送信情報生成部205、送信情報読み書き部206を機能として備えている。
【0030】
図2において、画像読み書き部201は、撮影した画像データを記憶媒体109に書き込む処理や、記憶媒体109に格納されている画像データを読み出す処理を行う。送受信判定部202は、データ送受信部204に画像データの送受信の開始、送信中断、送信再開を指示する。画像データ送信のタイミングとしては、撮影後(撮影後直ちに)、指定枚数の撮影後(指定枚数の撮影後直ちに)があり、ユーザが操作部108から任意に選択することが可能である。また、画像データ送信中断のタイミングとしては、撮像装置の電源がOFFにされた時、操作部108を介して撮影操作が行われた時、通信I/F110を介して外部機器から撮影を指示する撮影コマンドを受信した時がある。
【0031】
操作イベント解析部203は、操作部108により撮影操作が行われた(例えばシャッタが押された)場合や撮像装置の電源がOFFにされた場合に、画像データの送信を中断すべきである旨を送受信判定部202に通知する。また、操作イベント解析部203は、撮像装置の電源がONにされた場合は、送信が中断されている画像データの送信を再開するよう送受信判定部202に通知する。
【0032】
データ送受信部204は、送受信判定部202から画像データの送信が指示された場合は通信I/F110を介して外部機器に画像データを送信し、画像データ送信の中断が指示された場合は送信を中断する。また、データ送受信部204は、画像データの送信中断後に送信を再開する場合、後述の送信済み情報を基に送信が完了していない画像データを送信が中断したところから送信を再開する。また、データ送受信部204は、通信I/F110を介して外部機器から撮影コマンドを受信する。
【0033】
送信情報生成部205は、データ送受信部204によって画像データが送信される度に、どこまで送信が行われたかを示す送信済み情報を生成する。送信情報読み書き部206は、送信情報生成部205によって生成された送信済み情報を不揮発性メモリ104に書き込む。また、送信情報読み書き部206は、撮像装置の電源がONにされた場合や画像データ送信が再開される場合には、不揮発性メモリ104に格納されている送信済み情報を読み出す。
【0034】
図3は、撮像装置の送信情報生成部205で生成される送信済み情報の一例を示す図である。
【0035】
図3において、画像データはある一定のバッファサイズ単位で外部機器に送信し、画像データの送信を行う度に送信済み情報を不揮発性メモリ104に記憶する。301は送信ファイル数であり、図示の”2”は撮像装置で2枚撮影した後で外部機器に送信される画像ファイルの数であり、また2つの画像ファイルの送信が完了したら送信が停止することを意味する。
【0036】
302は最初に送信される画像のファイル名であり、”IMG_001.JPG”というファイル名が設定されている。303は画像ファイル”IMG_001.JPG”の総バイト数であり、”32,768byte”が設定されている。304は送信済みバイト数であり、”32,768byte”が設定されている。即ち、画像ファイル”IMG_001.JPG”の全ての画像データを送信したことを意味する。305は送信済みフラグであり、画像ファイル”IMG_001.JPG”の全ての画像データが送信されているので、”YES”が設定されている。
【0037】
306は2番目に送信される画像のファイル名であり、”IMG_002.JPG”というファイル名が設定されている。307は画像ファイル”IMG_002.JPG”の総バイト数であり、”43,008byte”が設定されている。308は送信済みバイト数であり、 ”28,672byte”が設定されている。即ち、画像ファイル”IMG_002.JPG”の全ての画像データがまだ送信完了となっていないことを意味する。309は送信済みフラグあり、画像ファイル”IMG_002.JPG”の全ての画像データがまだ送信完了となっていないので、”NO”が設定されている。
【0038】
次に、上記構成を有する本実施の形態の撮像装置の動作を図1乃至図5を参照しながら説明する。
【0039】
図4は、撮像装置の制御手順を示すフローチャートである。
【0040】
本制御手順を示すプログラムコードは主記憶装置103に格納されている。撮像装置の中央処理装置102が該プログラムコードを実行することで実現される画像読み書き部201、送受信判定部202、操作イベント解析部203、データ送受信部204、送信情報生成部205、送信情報読み書き部206により、本フローチャートに示す処理が行われる。
【0041】
該プログラムコードは、撮像装置が撮影した画像データを外部機器(図1のPC113)に送信するが、画像データの送信中に撮影操作が始まると送信を中断し、その後、画像データの送信を再開する場合は、画像データの送信が行われる度に不揮発性メモリ104に記憶していた送信済み情報を基に、送信が完了していない画像データを送信が中断したところから送信を再開するまでの制御手順に対応する。
【0042】
図4において、撮像装置の電源がONになると(ステップS400)、中央処理装置102は、送信情報読み書き部206を用いて不揮発性メモリ104に格納されている送信済み情報を読み出し(ステップS401)、次に操作イベント解析部203から撮影モードを取得する(ステップS402)。中央処理装置102は、取得した撮影モードが電源OFFを示すモードかどうかを調べ(ステップS403)、取得した撮影モードが電源OFFを示すモードの場合は、このまま本処理を終了する。
【0043】
取得した撮影モードが電源OFFを示すモードでない場合は、中央処理装置102は、取得した撮影モードが撮影操作(例えばシャッタを押す操作)に関するモードかどうかを調べ(ステップS404)、取得した撮影モードが撮影操作に関するモードである場合は、撮像部105による撮影を実行し(ステップS405)、次に撮影した枚数が送信枚数に達したかどうかを調べる(ステップS406)。撮影した枚数が送信枚数に達していない場合は、中央処理装置102は、ステップS402に戻り、再び撮影モードを取得する処理を繰り返す。
【0044】
撮影した枚数が送信枚数に達した場合は、中央処理装置102は、撮像装置から外部機器に送信する画像データのファイル数を送信済み情報の送信ファイル数の項目(図3)に設定し(ステップS407)、画像データを送信する処理に進む(ステップS408)。中央処理装置102は、画像データの送信後はステップS402に戻り、再び撮影モードを取得する処理を繰り返す。
【0045】
一方、上記取得した撮影モードが撮影操作に関するモードでない場合は、中央処理装置102は、ステップS401で取得した送信済み情報を解析して未送信の画像データがあるかどうかを調べる(ステップS409)。中央処理装置102は、未送信の画像データがある場合は、ステップS408に進み、画像データを送信する処理を行うが、未送信の画像データがない場合は、ステップS402に戻り、再び撮影モードを取得する処理を繰り返す。
【0046】
図5は、撮像装置の画像データ送信処理の制御手順を示すフローチャートである。
【0047】
図5において、中央処理装置102は、撮像装置から外部機器に送信する画像データを記憶媒体109から読み込み(ステップS500)、図4のステップS401で読み出した送信済み情報のファイル名を調べ、この送信する画像データが初めて送信する画像データかどうかを判断する(ステップS501)。送信する画像データが初めて送信する画像データの場合は、中央処理装置102は、送信する画像データのファイル名を送信済み情報のファイル名の項目に設定し(ステップS502)、送信する画像データの総バイト数を送信済み情報の総バイト数の項目に設定する(ステップS503)。
【0048】
送信する画像データが初めて送信する画像データでない場合は、中央処理装置102は、画像データを送信する前に再度撮影モードを検知したかどうかを調べ(ステップS504)、撮影モードを検知した場合は、画像データを送信する処理からリターンする。撮影モードを検知していない場合は、中央処理装置102は、画像データを一定のバイト数単位で通信I/F110により外部機器に送信し(ステップS505)、送信済み情報の送信済みバイト数の項目を送信済みの画像データのバイト数で更新する(ステップS506)。
【0049】
次に、中央処理装置102は、送信対象の画像ファイルの全画像データの送信が行われたかどうかを判定し(ステップS507)、全画像データの送信が行われた場合は、送信済み情報の送信済みフラグの項目を”YES”で更新し(ステップS508)、画像データを送信する処理からリターンする。全画像データの送信が行われていない場合は、中央処理装置102は、ステップS504に戻り、撮影モードを検知したかどうかを調べる。
【0050】
以上説明したように、本実施の形態によれば、撮像装置で撮影した画像データを外部機器に送信する場合、送信対象の画像データを一定のバッファサイズ単位で送信し、画像データを送信する度に送信済み情報を不揮発性メモリ104に記憶する。これにより、画像データ送信中に例えユーザが撮像装置の電源をOFFにした場合でも、その後、電源をONにした際に、画像データ送信を中断したところから送信が再開されるので、未送信画像データを最初から送信する必要はない。従って、ユーザの複雑な操作を介さずに、画像データの送信が中断されたところから継続して確実且つ効率良く画像データを送信することができるという効果がある。
【0051】
また、画像データを撮影後直ちに送信するか指定枚数の撮影後直ちに送信するかを選択できるので、ユーザの撮影頻度に応じた柔軟な送信を行うことが可能となる。
【0052】
[第2の実施の形態]
本発明の第2の実施の形態は、上述した第1の実施の形態に対して、下記の点において相違する。本実施の形態のその他の要素は、上述した第1の実施の形態(図1、図2)の対応するものと同一なので、説明を省略する。
【0053】
上述した第1の実施の形態では、撮像装置から外部機器に対して画像データをある一定のバッファサイズ単位で送信し、画像データを送信する度に送信済み情報を不揮発性メモリ104に記憶する場合の例を説明した。
【0054】
これに対し、本実施の形態は、撮像装置から外部機器(図1のPC113)に対して画像データの1ファイル(デジタルカメラの場合は写真1枚分の画像データ)の全ての送信が完了した時点で送信済み情報を不揮発性メモリ104に記憶するものである。これにより、第1の実施の形態と同様の効果を得ることを可能としている。
【0055】
次に、本実施の形態を図6及び図7を参照しながら説明する。本実施の形態は、画像データの1ファイルの送信が完了した時点で送信済み情報を不揮発性メモリ104に記憶する点以外は、第1の実施の形態と同じ処理を行うため、ここでは撮像装置における送信済み情報の例と制御手順のみ説明する。
【0056】
図6は、撮像装置の送信情報生成部205で生成される送信済み情報の一例を示す図である。
【0057】
図6において、601は送信ファイル数であり、図示の”2”は撮像装置で2枚撮影した後で外部機器に送信される画像ファイルの数であり、また2つの画像ファイルの送信が完了したら送信が停止することを意味する。
【0058】
602は最初に送信される画像のファイル名であり、”IMG_001.JPG”というファイル名が設定されている。603は送信済みフラグあり、画像ファイル”IMG_001.JPG”の全ての画像データが送信されているので、”YES”が設定されている。
【0059】
604は2番目に送信される画像のファイル名であり、”IMG_002.JPG”というファイル名が設定されている。605は送信済みフラグあり、画像ファイル”IMG_002.JPG”の全ての画像データがまだ送信完了となっていないので、”NO”が設定されている。
【0060】
図7は、撮像装置の画像データ送信処理の制御手順を示すフローチャートである。
【0061】
図7において、中央処理装置102は、撮像装置から外部機器に送信する画像データを記憶媒体109から読み込み(ステップS700)、図4のステップS401で読み出した送信済み情報のファイル名を調べ、この送信する画像データが初めて送信する画像データかどうかを判断する(ステップS701)。中央処理装置102は、送信する画像データが初めて送信する画像データの場合のみ、送信する画像データのファイル名を送信済み情報のファイル名の項目に設定する(ステップS702)。
【0062】
次に、中央処理装置102は、画像データを送信する前に再度撮影モードを検知したかどうかを調べ(ステップS703)、撮影モードを検知した場合は、画像データを送信する処理からリターンする。撮影モードを検知していない場合は、中央処理装置102は、画像データを一定のバイト数単位で通信I/F110により外部機器に送信する(ステップS704)。
【0063】
次に、中央処理装置102は、送信対象の画像ファイルの全画像データの送信が行われたかどうかを判定し(ステップS705)、全画像データの送信が行われていない場合は、ステップS703に戻り、撮影モードを検知したかどうかを調べる。全画像データの送信が行われた場合は、中央処理装置102は、送信済み情報の送信済みフラグの項目を”YES”で更新し(ステップS706)、画像データを送信する処理からリターンする。
【0064】
以上説明したように、本実施の形態によれば、撮像装置で撮影した画像データを外部機器に送信する場合、送信対象の画像データは一定のバッファサイズ単位で送信するが、画像データの1ファイルの送信が完了した時点で送信済み情報を不揮発性メモリ104に記憶する。これにより、不揮発性メモリ104に対する画像データ書き込みの頻度を少なくすることができる。従って、撮像装置から外部機器に対する画像データの送信速度を速くすることができるという効果がある。
【0065】
[第3の実施の形態]
本発明の第3の実施の形態は、上述した第1の実施の形態に対して、下記の点において相違する。本実施の形態のその他の要素は、上述した第1の実施の形態(図1、図2)の対応するものと同一なので、説明を省略する。
【0066】
上述した第1及び第2の実施の形態では、撮像装置から外部機器に対する画像データの送信を中断する要因として、撮像装置の電源OFFやユーザの撮影操作(例えばシャッタを押す操作)を例に挙げた。
【0067】
これに対し、本実施の形態は、撮像装置が撮影した画像データを外部機器に送信中に、撮像装置が遠隔に存在する別の外部機器から通信手段通信手段(携帯電話機や無線ルータ等)を介して送信された撮影コマンドを受信し、その撮影コマンドが撮影を指示する場合にも、画像データの送信を中断するものである。
【0068】
次に、本実施の形態を図8乃至図10を参照しながら説明する。
【0069】
図8は、撮像装置に対し遠隔から送信される撮影コマンドの一例を示す図である。
【0070】
図8において、801のコマンドは、撮像装置のシャッタスピードを1/250secに設定することを示す。802のコマンドは、絞りをF8.0に設定することを示す。803のコマンドは、フォーカスを合わせることを示す。804のコマンドは、ズームをワイド側に設定することを示す。805のコマンドは、シャッタを押すことを示す。806のコマンドは、フラッシュをONにすることを示す。807のコマンドは、電源をOFFにすることを示す。
【0071】
図9は、撮像装置の制御手順を示すフローチャートである。
【0072】
本制御手順を示すプログラムコードは、撮像装置が撮影した画像データを外部機器(図1のPC113)に送信中に、撮像装置が遠隔に存在する別の外部機器(図1では不図示)から撮影コマンドを受信し、その撮影コマンドが撮影を指示するものであった場合には画像データの送信を中断し、その後、画像データ送信を再開する場合は、画像データを送信する度に不揮発性メモリ104に記憶していた送信済み情報を基に、画像データの送信を中断したところから送信を再開するまでの制御手順に対応する。
【0073】
図9において、撮像装置の電源がONになると(ステップS900)、中央処理装置102は、送信情報読み書き部206を用いて不揮発性メモリ104に格納されている送信済み情報を読み出し(ステップS901)、次に遠隔の外部機器から送信された撮影コマンドを取得する(ステップS902)。中央処理装置102は、取得した撮影コマンドが撮像装置を電源OFFにすることを示すコマンドかどうかを調べ(ステップS903)、取得した撮影コマンドが電源OFFコマンドの場合は、このまま本処理を終了する。
【0074】
取得した撮影コマンドが電源OFFコマンドでない場合は、中央処理装置102は、取得した撮影コマンドが撮影操作に関するコマンドかどうかを調べる(ステップS904)。取得した撮影コマンドが撮影操作に関するコマンドの場合は、中央処理装置102は、撮像部105により撮影を実行し(ステップS905)、次に撮影した枚数が送信枚数に達したかどうかを調べる(ステップS906)。撮影した枚数が送信枚数に達していない場合は、中央処理装置102は、ステップS902に戻り、再び撮影コマンドを取得する処理を繰り返す。
【0075】
撮影した枚数が送信枚数に達した場合は、中央処理装置102は、撮像装置から外部機器に送信する画像データのファイル数を送信済み情報の送信ファイル数の項目に設定し(ステップS907)、画像データを送信する処理に進む(ステップS908)。中央処理装置102は、画像データの送信後はステップS902に戻り、再び撮影コマンドを取得する処理を繰り返す。
【0076】
一方、上記取得した撮影コマンドが撮影操作に関するコマンドでない場合は、中央処理装置102は、ステップS901で取得した送信済み情報を解析して未送信の画像データがあるかどうかを調べる(ステップS909)。中央処理装置102は、未送信の画像データがある場合は、ステップS908に進み、画像データを送信する処理を行うが、未送信の画像データがない場合は、ステップS902に戻り、再び撮影コマンドを取得する処理を繰り返す。
【0077】
図10は、撮像装置の画像データ送信処理の制御手順を示すフローチャートである。
【0078】
図10において、中央処理装置102は、撮像装置から外部機器に送信する画像データを記憶媒体109から読み込み(ステップS1000)、図9のステップS901で読み出した送信済み情報のファイル名を調べ、この送信する画像データが初めて送信する画像データかどうかを判断する(ステップS1001)。送信する画像データが初めて送信する画像データの場合は、中央処理装置102は、送信する画像データのファイル名を送信済み情報のファイル名の項目に設定し(ステップS1002)、送信する画像データの総バイト数を送信済み情報の総バイト数の項目に設定する(ステップS1003)。
【0079】
送信する画像データが初めて送信する画像データでない場合は、中央処理装置102は、画像データを送信する前に再度撮影コマンドを受信したかどうかを調べ(ステップS1004)、撮影コマンドを受信した場合は、画像データを送信する処理からリターンする。撮影コマンドを受信していない場合は、中央処理装置102は、画像データを一定のバイト数単位で通信I/F110により外部機器に送信し(ステップS1005)、送信済み情報の送信済みバイト数の項目を送信済みの画像データのバイト数で更新する(ステップS1006)。
【0080】
次に、中央処理装置102は、送信対象の画像ファイルの全画像データの送信が行われたかどうかを判定し(ステップS1007)、全画像データの送信が行われた場合は、送信済み情報の送信済みフラグの項目を”YES”で更新し(ステップS1008)、画像データを送信する処理からリターンする。全画像データの送信が行われていない場合は、中央処理装置102は、ステップS1004に戻り、撮影コマンドを受信したかどうか調べる。
【0081】
以上説明したように、本実施の形態によれば、撮像装置から画像データを外部機器に送信する場合、送信対象の画像データを一定のバッファサイズ単位で送信し、画像データを送信する度に送信済み情報を不揮発性メモリ104に記憶する。これにより、撮像装置が遠隔の別の外部機器から撮影コマンドを受信し、該撮影コマンドが撮影を指示する場合にも、送信済み情報を不揮発性メモリ104に記憶してあるため、画像データの送信を中断することができる。従って、ユーザの直接的な撮影操作に対してだけでなく、撮像装置外部からの撮影指示などの多様な要求にも応えることができるという効果がある。
【0082】
[第4の実施の形態]
図12は、本発明の第4の実施の形態に係る画像送信装置としてのデジタルカメラと画像受信装置としてのサーバからなるクライアントサーバシステムの概略構成を示す図である。
【0083】
図12において、クライアントサーバシステムは、画像送信クライアントであるデジタルカメラ1101と、画像受信サーバであるサーバ1102から構成されている。デジタルカメラ1101とサーバ1102との間は、ネットワークを介して通信可能に接続されており、通信方式は有線通信または無線通信の何れでもよい。
【0084】
本構成はデジタルカメラ1101とサーバ1102の仮想的な接続を意味しており、ネットワークを介して直接接続されていることを意味するものではない。従って、デジタルカメラ1101とサーバ1102は、他の機器或いはインターネット等の他のネットワークを介して接続されている可能性はある。本実施の形態では、デジタルカメラ1101からサーバ1102に向けて撮影画像が送信される。
【0085】
図13は、デジタルカメラ1101の内部構成を示すブロック図である。
【0086】
図13において、デジタルカメラ1101は、中央制御装置(以下CPUと称す)1201、ROM1202、RAM1203、タイマ1204、ディスプレイ1205、マイク1206、スピーカ1207、各種操作ボタン1208、フラッシュROM1209、ネットワークインタフェース(I/F)1210、電荷結合素子(以下CCDと称す)1211、撮影モード・再生モード切替スイッチ1212、電源ボタン1213、バッテリ1214を備えており、相互にバスあるいは電源ラインで接続されている。
【0087】
CPU1201は、デジタルカメラ全体の制御を司るものであり、動作プログラムに基づき図16、図17、図22、図24、図25、図29、図31のフローチャートに示す処理を実行する。ROM1202には、各種動作プログラムが読み出し可能に格納されている。RAM1203は、プログラム動作中の一時的な値の保存に用いる。タイマ1204は、各種時間を計測する。ディスプレイ1205は、各種設定メニュー及び画像を表示する。マイク1206は、音声録音に用いる。スピーカ1207は、音声出力を行う。各種操作ボタン1208は、デジタルカメラ1101の各種操作に用いる。
【0088】
フラッシュROM1209は、デジタルカメラ1101で撮影した画像ファイルや各種設定データファイルを保存しておく不揮発性メモリである。ネットワークI/F1210は、デジタルカメラ1101の外部と接続する際のインタフェースを司る。CCD1211は、不図示のレンズを通して集めた光を電気信号に変換する。撮影モード・再生モード切替スイッチ1212は、撮影モードと再生モードの切り替えに用いる。電源ボタン1213は、電源のオン/オフに用いる。バッテリ1214は、各部に電源を供給する。
【0089】
尚、デジタルカメラ1101は、撮影するのに不可欠なシャッタやレンズも備えているが、それらについては図示を省略する。また、フラッシュROM1209は、デジタルカメラ1101に内蔵されていてもよいし、外部から着脱可能なメモリカード上に搭載されているものでもよい。また、デジタルカメラ1101が撮影した画像ファイルの格納場所はフラッシュROM1209の他、RAM1203でもよいし、または図示しないがハードディスク等の記憶媒体でもよい。以後の例では、画像ファイルの代表的な格納場所として、フラッシュROM1209についてのみ言及する。
【0090】
図14は、サーバ1102の内部構成を示すブロック図である。
【0091】
図14において、サーバ1102は、一般的なコンピュータと同様な構成をとっており、中央制御装置(以下CPUと称す)1701、ROM1702、RAM1703、タイマ1704、ディスプレイ1705、ハードディスクドライブ(以下HDDと称す)1706、ネットワークI/F1707を備えている。
【0092】
CPU1701は、サーバ全体の制御を司るものであり、動作プログラムに基づき図18、図19、図23、図26、図27、図32のフローチャートに示す処理を実行する。ROM1702には、各種動作プログラムが読み出し可能に格納されている。RAM1703は、プログラム動作中の一時的な値の保存に用いる。タイマ1704は、各種時間を計測する。ディスプレイ1705は、各種設定メニュー及び画像を表示する。HDD1706は、デジタルカメラ1101から送信される画像ファイルを含む各種データやプログラムを格納する。ネットワークI/F1707は、外部と接続する際のインタフェースを司る。
【0093】
次に、デジタルカメラ1101とサーバ1102の間の画像送信手順及び画像受信手順について、図15のシーケンス図、図16・図17のフローチャート、及び図18・図19のフローチャートを参照しながら説明する。
【0094】
図15は、デジタルカメラ1101とサーバ1102の間の画像通信シーケンス(両者間のメッセージの流れ)を示す図、図16・図17は、デジタルカメラ1101の画像送信手順を示すフローチャート、図18・図19は、サーバ1102の画像受信手順を示すフローチャートである。
【0095】
図15の画像通信シーケンスを実行するに先立ち、デジタルカメラ1101のユーザは既に何枚かの写真を撮影し、撮影した画像をフラッシュROM1209に保存しているものとする。デジタルカメラ1101が採用している撮影画像の記録方式は、社団法人日本電子工業振興協会(JEIDA)が定めたカメラファイルシステム規格(Design rule for Camera File System:略称DCF)バージョン1.0に適合しているものとする。
【0096】
また、フラッシュROM1209に保存されている画像ファイルのフォーマットはJPEG(Joint Photographic Experts Group)とする。尚、本発明はJPEGファイルのみの適用に限定されるものではなく、RAW画像ファイルフォーマット等の別のフォーマットにも問題なく適用することが可能である。また、デジタルカメラ1101は再生モードにあるものとする。
【0097】
図15〜図19において、まず、デジタルカメラ1101のユーザは、ディスプレイ1205に表示される不図示のメニューから画像送信機能を選択する(ステップS1001)。次に、ユーザは、既に撮影済みの画像ファイルの中から、サーバ1102に送信する画像ファイルを1乃至複数個選択する(ステップS1002)。CPU1201は、選択された画像ファイルのパス名から、その画像ファイルのサーバ1102における格納位置を決定する(ステップS1003)。画像ファイルの格納位置の決定は例えば以下のように行われる。
【0098】
その1:フラッシュROM1209上のルートディレクトリ直下に、img_0001.jpg、img_0002.jpg、img_0003.jpgが存在するなら、これらにデフォルトの画像格納ディレクトリ/picturesをそれぞれ加え、/pictures/img_0001.jpg, /pictures/img_0002.jpg, /pictures/img_0003.jpgとする。
【0099】
更に、サーバ1102がHTTP(Hiper Text Transfer Protocol)サーバを兼ねており、そのドキュメントルートがhttp://xyz.jp/でアクセスされるという条件のもとで、これらの画像ファイルがURL(Uniform Resource Locator)で指定されるように(サーバ1102においてそのURLで画像が取得されるように)するなら、これらの画像ファイルの格納位置は、http://xyz.jp/pictures/img_0001.jpg, http://xyz.jp/pictures/img_0002.jpg, http://xyz.jp/pictures/img_0003.jpgとなる。これについては、以下同様なので省略する。
【0100】
その2:その1と同条件において、RAM1203に記憶されたデジタルカメラ1101の所有者名(ユーザの名前)を追加する。所有者名をokadaとすると、/~okada/img_0001.jpg, /~okada/img_0002.jpg, /~okada/img_0003.jpgとなる。
【0101】
その3:その1と同条件で、しかも上記3つの画像ファイルが2003年12月31日に撮影されたとして、撮影日付をディレクトリ名に加える。/2003_12_31/img_0001.jpg, /2003_12_31/img_0002.jpg, /2003_12_31/img_0003.jpgとなる。
【0102】
あるいは、これらの組み合わせでもよい。3つを組み合わせた場合は、例えば/~okada/pictures/2003_12_31/img_0001.jpgとなる。複数の画像ファイルが全て同じディレクトリに存在していなければならないということはない。
【0103】
その4:フラッシュROM1209上のルートディレクトリ直下に、/100/img_1001.jpg、/200/img_2001.jpg、/300/img_3001.jpgが存在するなら、これらにデフォルトの画像格納ディレクトリ/picturesをそれぞれ加え、/pictures/100/img_1001.jpg,/pictures/200/img_2001.jpg, pictures/300/img_3001.jpgとする。
【0104】
その5:フラッシュROM1209上のルートディレクトリ直下に、img_0001.jpg、img_0002.jpg、img_0003.jpgが存在していて、これらの撮影日付がそれぞれ2003-12-29, 2003-12-30, 2003-12-31なら、/03_12_29/img_0001.jpg, /03_12_30/img_0002.jpg, /03_12_31/img_0003.jpgとする。
【0105】
以上のように、画像ファイルのサーバ1102における格納位置は自由に決定することができる。但し、ここでは、決定された格納位置から、元のフラッシュROM1209上の画像ファイルのパスを復元できるようにしている。例えば、決定された格納位置を示すパスの最後の要素であるファイル名がimg_0001.jpgならば、フラッシュROM1209上のimg_0001.jpgのことであると特定できる。もう一つの例で言えば、決定された格納位置を示すパスの最後のファイル名と、その上のディレクトリ名が/100/img_1001.jpgであれば、フラッシュROM1209上の/100/img_1001.jpgのことであると特定できる。
【0106】
ここの例では、ディレクトリ名、ファイル名とも変更していないが、画像ファイルのプレフィクスは"img_"であり、不変であるというなら、ファイル名の数字下4けたを残して変更しても良い。
【0107】
画像ファイルのパスを復元できるようになっている理由は、後述するが、デジタルカメラ1101がサーバ1102から受信未完画像ファイルの情報を受信したとき、受信未完画像ファイルの情報には、その画像ファイルのサーバ1102における格納位置が含まれるので、デジタルカメラ1101がサーバ1102にその画像ファイルの送信を再開するためには、画像ファイルの格納位置から、元のフラッシュROM1209上の画像ファイルのパスを復元できなければならないからである。
【0108】
もっとも、デジタルカメラ1101がフラッシュROM1209上の画像ファイルのパスと画像ファイルの格納位置との対応関係を示す対応テーブルを有するなら、上記のような制限なく、どのような格納位置に決定してもよいことになる。
【0109】
また、画像ファイルの格納位置は必ずデジタルカメラ1101が決定しなければならないということはない。サーバ1102がデジタルカメラ1101から受け取った画像ファイルの格納位置をサーバ1102側で決定し、デジタルカメラ1101は単にファイル名を指定してくれればよいというのであれば、デジタルカメラ1101側ではimg_0001.jpg, img_0002.jpg, img_0003.jpgと指定することもあり得る。
【0110】
次に、デジタルカメラ1101のユーザは、接続先のサーバ1102を予め入力しておいた接続先候補の中から選択する(ステップS1004)。勿論、そのサーバ1102への接続が初めてなら、ここでアドレスを入力しても良い。
【0111】
ここからは、デジタルカメラ1101とサーバ1102のお互いが使用する通信の環境とプロトコルに従って実際の通信が行われる。本発明は特別なプロトコルに限定されるものではないが、例えば、一般的なTCP/IP(Transmission Control Protocol/Internet Protocol)プロトコルが用いられる。
【0112】
図15に示す画像通信シーケンスはステートを有するシーケンスであり、TCP/IPプロトコルの上位プロトコルとしては、独自のプロトコルを使用しても良いが、標準技術をできるだけ使うのであれば、1つ1つのメッセージはステートレスなプロトコル、例えばHTTPを使用することが可能である。そのようにすれば、サーバ1102ではWebアプリケーションを作ることで、本発明の実現が可能になる。とにかく、どのようなプロトコルを用いるとしても、デジタルカメラ1101とサーバ1102の間でやり取りされるデータを本実施の形態ではメッセージと呼ぶことにする。
【0113】
図15に示すように最初のメッセージである送信要求(1301)がデジタルカメラ1101からサーバ1102に送られる(ステップS1005)。サーバ1102のCPU1701は、この送信要求(1301)を受け付ける(ステップS1401)。CPU1701は、他の接続状況や、各種リソースの逼迫の具合、CPUの負荷を見ながら、送信の要求を受け付けてもよいと判断したら、送信許可(1302)メッセージをデジタルカメラ1101に送信する(ステップS1402)。
【0114】
デジタルカメラ1101のCPU1201は、送信許可(1302)メッセージを受け付ける(ステップS1006)。送信が許可されたCPU1201は、カメラID(1303)、送信しようとしている画像ファイルの格納場所(1304)、及び送信ファイルリスト(1305)をサーバ1102に送信する(ステップS1007)。
【0115】
ここで、カメラID(303)としては、デジタルカメラ1101の製造シリアル番号を用いることが考えられる。但し、様々なメーカのデジタルカメラをサポートするのであれば、製造シリアル番号だけでは重複しないとも限らないので、メーカ名+カメラ型名+製造シリアル番号のような形式を使っても良い。
【0116】
画像ファイルの格納場所(1304)としては、上記ステップS1003で決定した各画像ファイルの格納位置に共通部分があれば、それを指定する。例えば、img_0001.jpgの格納位置をhttp://xyz.jp/pictures/img_0001.jpgなどとしたのであれば、"http://xyz.jp/pictures/"を格納場所(1304)とする。
【0117】
送信ファイルリスト(1305)としては、各々の画像ファイルの格納位置の上記格納場所(1304)からの相対パスをリストで指定する。例えば、http://xyz.jp/pictures/100/img_1001.jpg, ttp://xyz.jp/pictures/200/img_2001.jpg, http://xyz.jp/pictures/300/img_3001.jpgという画像ファイルを送信するのであれば、リストは、100/img_1001.jpg, 200/img_2001.jpg, 300/img_3001.jpgとなる。
【0118】
一方、サーバ1102のCPU1701は、デジタルカメラ1101からカメラID(1303)、格納場所(1304)、及び送信ファイルリスト(1305)を受信する(ステップS1403)。これに伴い、CPU1701は、これから開始しようとしている通信セッションを識別するためのセッションID(1306)を生成する(ステップS1404)。セッションID(1306)は通信セッションを識別できるものであればどのようなものでもよい。
【0119】
次に、CPU1701は、このセッションID(1306)、カメラID(1303)、格納場所(1304)、及び送信ファイルリスト(1305)を関連付けて、RAM1703に記憶する(ステップS1405)。
【0120】
図20にサーバ1102のRAM1703に記憶される関連付けテーブルの例を示す。1501は、セッションID(1306)、カメラID(1303)、格納場所(1304)、及び送信ファイルリスト(1305)中の各画像ファイルの情報のエントリを指すポインタの関連付けを示すセッションIDテーブルである。セッションIDテーブル1501には、便宜上、1つのエントリしか書かれていないが、当然、複数のエントリを持つことができ、同時に複数のセッションについて処理することができる。
【0121】
1502は、送信ファイルリスト中の各画像ファイルの情報のエントリを示すファイル情報エントリであり、相対パス、ファイル長、受信済みバイト数、受信終了フラグから構成されている。図20は、上記で説明した格納場所(1304)と送信ファイルリスト(1305)の相対パスが格納されている様子を示している。
【0122】
図21もセッションIDテーブル1501とファイル情報エントリ1502の例を示すものであるが、サーバ1102が異なる格納場所(1304)と送信ファイルリスト(1305)をデジタルカメラ1101から受信した場合の例を示している。この場合は、格納場所(1304)を示す情報はなく、送信ファイルリスト(1305)として、各画像ファイルがURLで指定されている。画像ファイルをこのように指定することも可能である。
【0123】
画像ファイルは必ずURLで指定しなければならないというものではない。例えば、上記においてデジタルカメラ1101で画像ファイルの格納位置を考えたときのように、サーバ1102で画像ファイルの格納位置を決定するために、デジタルカメラ1101が指定する格納位置を単にimg_0001.jpg, img_0002.jpg, img_0003.jpgとしたとすると、これをそのまま送信ファイルリストとしてもよい。また、図20と図21では送信ファイルリスト(1305)の各画像ファイルの情報を相対パスとURLと分けたが、実際は区別する必要はなく、どちらかの情報が入っていれば良い。
【0124】
さて、サーバ1102のCPU1701は、セッションID(1306)をデジタルカメラ1101に送信する(ステップS1406)。デジタルカメラ1101では、CPU1201がサーバ1102からセッションID(1306)を受信し(ステップS1008)、このセッションID(1306)と、接続先サーバであるサーバ1102のアドレス(必要であればポート番号も)を、フラッシュROM1209に保存する(ステップS1009)。この場合、画像送信機能が読み出せる形式で保存しておけばよい。
【0125】
そしていよいよ、デジタルカメラ1101では各画像ファイルの送信処理に入る。デジタルカメラ1101のCPU1201は、処理すべき次の画像ファイルを選択する(ステップS1010)。1回目にステップS1010の処理を行うときは、最初の画像ファイルが選択されることになる。次に、CPU1201は、選択した画像ファイルに関するファイル情報(1307)をサーバ1102に送信する(ステップS1011)。画像ファイルの情報とは、送信ファイルリストの中で、これから送ろうとしている画像ファイルはどの画像ファイルかを示す画像ファイルの名前(必要に応じて相対パスやURLを使えばよい)、及び画像ファイルのバイト長である。
【0126】
サーバ1102のCPU1701は、このファイル情報(1307)を受信すると(ステップS1407)、画像ファイルの名前からファイル情報エントリを特定し、そのファイル情報エントリに、受信した画像ファイルのバイト長を書き込む。通信エラーが発生しなければ(ステップS1408でN)、CPU1701は、OK(1308)メッセージをデジタルカメラ1101に送信する(ステップS1409)。この送信にエラーが発生しなければ(ステップS1410でN)、CPU1701は、デジタルカメラ1101からの画像ファイルの受信を待つ。
【0127】
デジタルカメラ1101のCPU1201は、ファイル情報送信(ステップS1011)の際、通信エラーが起こらなければ(ステップS1012でN)、サーバ1102からOK(1308)メッセージを受信する(ステップS1013)。OK(1308)メッセージを受信時にエラーがなければ(ステップS1014でN)、次にCPU1201は、画像ファイルそのもの(1309)をサーバ1102に送信する(ステップS1015)。この画像ファイル送信にエラーが発生しなければ(ステップS1016でN)、CPU1201は、OK(1310)メッセージの受信を待つ。
【0128】
サーバ1102のCPU1701は、デジタルカメラ1011から画像ファイルを受信する(ステップS1411)。CPU1701は、画像ファイルを受信している間、受信に成功した画像ファイルのバイト数に従って(画像ファイル受信の進捗に応じて)、ファイル情報エントリ1502の受信済みバイト数を更新しておく。通信エラーが発生しなければ(ステップS1412でN)、CPU1701は、OK(1310)メッセージをデジタルカメラ1101に送信する(ステップS1413)。
【0129】
次に、CPU1701は、OK(1310)メッセージの送信にエラーが発生しなかったかどうかをチェックし(ステップS1414)、エラーが発生しなければ、デジタルカメラ1101から受信が終了した画像ファイルについて、ファイル情報エントリ1502の受信終了フラグを「終了」にしておく(ステップS1415)。
【0130】
次に、CPU1701は、受信が終了した画像ファイルをHDD1706における指定された格納位置に置く(ステップS1416)。処理中の画像ファイルの格納場所がhttp://xyz.jp/pictures/、相対パスが100/img_1001.jpgの場合は、http://xyz.jp/pictures/100/img_1001.jpgとして外部からアクセス可能な格納位置に置かれる。当然、サーバ1102は、URLがhttpで始まる場合はサーバ1102上で動作するHTTPサーバの、URLがftpで始まる場合はFTPサーバの(その他のサーバも同様である)、ドキュメントルートやエイリアス情報を知っており、それらのURLから画像ファイルを置くべきファイルシステム上の位置を特定できるものとする。
【0131】
もしくは、少なくとも、画像ファイルを置くURLに関しては、ファイルシステム上の位置を特定できるものとする。勿論、画像ファイルの格納場所や相対パスの指定が独自の形式に従っており、サーバ1102がそれからファイルシステム上の格納位置を決定してもよい。
【0132】
上述したように、送信ファイルリストが単にファイル名の形式で、img_0001.jpgとなっていた場合は、所定の方法(デジタルカメラ1101で格納位置を決定する個所で述べたように、特定のディレクトリに置く、デジタルカメラのユーザ名を使用する、画像ファイルの日付情報を使用する等、様々な方法が考えられる)でファイルシステム上の格納位置を決定し、そこに画像ファイルを置く。
【0133】
最後に、CPU1701は、送信ファイルリスト中の全画像ファイルについて受信終了フラグが「終了」になったかどうかを調べ(ステップS1417)、受信終了フラグが「終了」になっていれば、受信手順を終了する。CPU1701は、受信終了フラグが「終了」になっていなければ、ステップS1407に戻り、残っている画像ファイルのファイル情報を受信する。
【0134】
デジタルカメラ1101のCPU1201は、OK(1310)メッセージを受信すると(ステップS1017)、その受信にエラーがない場合は(ステップS1018でN)、送信ファイルリストの中で、もう処理すべき画像ファイルはないかどうかを調べ(ステップS1019)、処理すべき画像ファイルがあれば、ステップS1010に戻り、次の画像ファイルを処理する。CPU1201は、処理すべき画像ファイルがなければ、最後にフラッシュROM1209に記憶していたセッションIDと接続先サーバのアドレスを削除して(ステップS1020)、送信手順を終了する。
【0135】
尚、上記ステップS1020の処理が必要なのは、セッションIDと接続先サーバのアドレスを残しておくと、後述するように送信再開手順と間違えてしまうからである。
【0136】
次に、上述した画像ファイルの送信が中断される場合の手順について、図15のシーケンス図、図22のフローチャート、及び図23のフローチャートを参照しながら説明する。
【0137】
図22は、デジタルカメラ1011の送信中断手順1を示すフローチャート、図23は、サーバ1102の受信中断手順を示すフローチャートである。
【0138】
図15、図22、図23において、デジタルカメラ1101がサーバ1102に対して上記で述べた画像ファイルの送信を行っている間に(再生モードであったときに)、例えば、ユーザが急に撮影しようとして撮影モード・再生モード切替スイッチ212により撮影モードに切り替え、撮影モードに入ったとする(ステップS1501)。
【0139】
撮影モードでは、当然のことながら、シャッタの制御、ズームの制御、CCD1211の読み出し、ディスプレイ1205へのプレビュー表示等、様々なリアルタイム処理を行わなければならない。まして、シャッタが切られれば、CCD1211の読み出し、画像処理、JPEGエンコード化、フラッシュROM1209への記録等の処理も重なり、優先すべき処理が数多くある。撮影以外の機能を実行するために、撮影のレスポンスが悪くなったのでは本末転倒である。画像ファイル送信のような後回しできる処理は、できるだけ後回しした方が望ましい。そこで、撮影モードに入った時は、一旦、画像ファイル送信を中断する。
【0140】
デジタルカメラ1101のCPU1201は、送信中断要求(1312)メッセージをサーバ1102に送る(ステップS1502)。サーバ1102のCPU1701は、このメッセージを受け付け(ステップS1601)、送信中断に必要な処理を行う。例えば、サーバ1102において現在の画像ファイル受信処理数を管理しているなら、これを1つ減らすことが考えられる。サーバ1102がリソース管理を行っており、同時に画像ファイル受信処理を受け付ける数を制限しているなら、この1つ減らすという操作によって、他のデジタルカメラ1101からの画像ファイル送信を受け付けるというようにすることもできる。
【0141】
他には、タイマ1704を用いて、画像ファイルの送信中断時刻を計測する中断タイマを開始するということも考えられる。中断タイマがタイムアウト(送信中断時刻の到来)した後は、受信途中の画像ファイルと未受信の画像ファイルについては受信中止となり、セッションが破棄される。該当するセッションIDテーブル1501及びファイル情報エントリ1502はクリアされる。従って、そのセッションIDを用いて画像ファイル送信を再開しようとしても、再開不可となる。
【0142】
次に、サーバ1102のCPU1701は、OK(1313)メッセージをデジタルカメラ1101に送信する(ステップS1602)。デジタルカメラ1101のCPU1201は、メッセージを受信して(ステップS1503)、送信中断手順を終了する。
【0143】
ところで、図22のフローチャートに示したシーケンスは、デジタルカメラ1101で撮影モードに入るという事象が発生したときに実行される。つまり、デジタルカメラ1101の動作プログラムにとっては割り込み処理のような扱いである。デジタルカメラ1101で図16・図17の送信手順が実行されている間に図22のシーケンスが実行されることが当然あり得る。
【0144】
デジタルカメラ1101で画像ファイル送信中に撮影モードに入るという事象が発生した場合、デジタルカメラ1101とサーバ1102の間で何らかのデータを送受信中の場合は、送受信を即座に中止する。一例として、ソケットインタフェースを用いてTCP/IP通信を行っている場合は、ソケットを即座にクローズする。これにより、送受信処理がエラーとなる。また、何らかのデータを送受信中でなくとも、通信エラーが発生したのと同様な状態にしておく。
【0145】
これらの処理により、デジタルカメラ1101側の図17のステップS1012、ステップS1014、ステップS1016、あるいはステップS1018において、エラーとなり、以降の画像ファイル送信処理が停止される。サーバ1102側にとっても、デジタルカメラ1101で画像ファイル送信処理が停止されるので、画像ファイル受信処理が停止される。
【0146】
次に、デジタルカメラ1101からサーバ1102に画像ファイルの送信を再開する時の手順について、図15のシーケンス図、図24・図25のフローチャート、及び図26・図27のフローチャートを参照しながら説明する。
【0147】
図24・図25は、デジタルカメラ1101の送信再開手順1を示すフローチャート、図26・図27は、サーバ1102の受信再開手順1を示すフローチャートである。
【0148】
デジタルカメラ1101で撮影モードに入った後、撮影が終了し、またユーザが撮影モード・再生モード切替スイッチ1212を操作して再生モードに戻ったとする。デジタルカメラ1101の再生モードでは、サーバ1102に画像ファイル送信を行う余裕があるので、画像ファイル送信を再開する。
【0149】
画像ファイル送信を再開する他の機会としては、撮影モードのまま何も操作しないでタイムアウトした場合が考えられる。通常、このような場合は、電源を節約するために電源が切れるが、本実施の形態のデジタルカメラ1101では、画像ファイルの送信中断状態であった場合、再生モードに戻って画像ファイル送信を再開するようになっている。以下の手順では、ユーザが撮影モード・再生モード切替スイッチ1212を操作して再生モードに戻った場合を考える。
【0150】
図15、図24〜図27において、まず、デジタルカメラ1101のユーザが撮影モード・再生モード切替スイッチ1212を操作して再生モードに入る(ステップS1701)。これに伴い、デジタルカメラ1101のCPU1201は、フラッシュROM1209上にセッションIDが保存されているかどうかを調べる(ステップS1702)。図16のステップS1009で保存されるはずのセッションIDが存在するかどうかを調べるわけである。
【0151】
セッションIDが存在しない理由としては、画像ファイルの送信中断の間にフラッシュROM1209が交換されたことが考えられる。撮影モードが続いている間にフラッシュROM1209が交換されることはないかも知れないが、撮影モードから一旦電源がオフされてフラッシュROM1209が交換されるというのはあり得る。
【0152】
フラッシュROM1209が交換された場合は、当然、記録されている画像ファイルの内容が異なるので、例え送信ファイルリストの中の送信しようとする画像ファイルの名前が一致するとしても、その画像ファイルを送信するわけにはいかない。フラッシュROM1209上のセッションIDの存在を確認するのは、そのような間違いを防止するのに役立つ。
【0153】
さて、デジタルカメラ1102のCPU1201は、フラッシュROM1209上にセッションIDが残っていない場合は、画像ファイルの送信再開処理を行わず、送信再開手順を終了する。CPU1201は、フラッシュROM1209上にセッションIDが残っていた場合は、図16のステップS1009で同時に保存された接続先サーバのアドレスを読み出す(ステップS1703)。そして、CPU1201は、送信再開要求(1314)メッセージと、送信を再開するセッションのセッションID(1315)をサーバ1102に送信する(ステップS1704)。
【0154】
一方、サーバ1102のCPU1701は、デジタルカメラ1101から送信再開要求(1314)メッセージと、送信を再開するセッションのセッションID(1315)を受信する(ステップS1801)。これに伴い、CPU1701は、セッションIDテーブル1501とファイル情報エントリ1502を調べて、まだ受信が終了していない画像ファイルを抽出し、受信未完ファイルリスト(1316)として構成し、デジタルカメラ1101に送信する(ステップS1802)。
【0155】
受信未完ファイルリスト(1316)のデータの形式は、送信ファイルリスト(1305)で指定したものと同様になっている。図20の例で言えば、100/img_1001.jpgのみが受信終了していた場合、受信未完ファイルリスト(1316)には、200/img_2001.jpg, 300/img_3001.jpgが含まれる。尚、受信未完ファイルリスト(1316)は、ファイル名(もしくはパスの一部)だけでなく、その画像ファイルに関する受信済みバイト数を含んでいても良い。
【0156】
デジタルカメラ1101のCPU1201は、受信未完ファイルリスト(1316)を受信する(ステップS1705)。そして、CPU1201は、この受信未完ファイルリストで指定された画像ファイルを順次、サーバ1102に送信する。ここから先のステップS1706〜ステップS1716は、図16・図17の送信手順におけるステップS1010〜ステップS1020と同様である。
【0157】
尚、上述したように、受信未完ファイルリスト(1316)が画像ファイルに関する受信済みバイト数を含んでいる場合は、画像ファイルを先頭から送信するのではなく、受信済みバイト数をスキップして、次のバイト位置から送信するようにする。このようにすれば、送信量、送信時間が少なくて済む。
【0158】
サーバ1102においてデジタルカメラ1101から画像ファイルを順次受信するステップS1803〜ステップS1813は、図18・図19の受信手順におけるステップS1407〜ステップS1417と同様である。
【0159】
次に、デジタルカメラ1101で画像ファイルの送信手順実行中に電源がオフされ、画像ファイルの送信が中断される手順について、図28のシーケンス図及び図29のフローチャートを参照しながら説明する。
【0160】
図28は、デジタルカメラ1101とサーバ1102の間の画像通信シーケンスを示す図、図29は、デジタルカメラ1101の送信中断手順2を示すフローチャートである。
【0161】
デジタルカメラ1101で画像ファイルの送信中に撮影モードに入った時と同様、電源がオフされたときも、画像ファイルの送信が中断される。これは、ネットワークI/F1210に電源が供給されなくなるのであるから、当然である。本実施の形態では、このような場合も画像ファイル送信が後で再開できるようになっている。
【0162】
画像ファイルの送信手順の実行中、例えば、デジタルカメラ1101のユーザがいきなり電源ボタン1213をオフ操作したとする(ステップS1901)。これにより、デジタルカメラ1101内の各部に供給されていた電源が遮断され、デジタルカメラ1101とサーバ1102の間の通信は中断する(ステップS1902)。
【0163】
この場合は、図16・図17のフローチャートに示したシーケンスはエラーの発生を待たずに、強制終了となる。サーバ1102側でも受信が中断される。但し、画像ファイル受信状態は記録されているので、送信再開は可能である。
【0164】
サーバ1102側でこのままの状態が続いた場合はどうなるかを説明する。この場合はデジタルカメラ1101から中断要求(1312)メッセージが来ないので、上記のように中断タイマを働かせるわけにはいかないが、やはりこの場合も、何らかの受信タイマが動いていることが望ましい。受信タイマは図18のステップS1404でセッションIDを生成したときに動作を開始する。受信タイマは中断タイマよりタイムアウト時間は長く取る。
【0165】
受信タイマがタイムアウトしたら、中断タイマのタイムアウト時と同様、サーバ1102で受信途中の画像ファイルと未受信の画像ファイルについては受信中止となり、セッションが破棄される。該当するセッションIDテーブル1501及びファイル情報エントリ1502はクリアされる。従って、デジタルカメラ1101でそのセッションIDを用いてサーバ1102に画像ファクシミリの送信を再開しようとしても、再開不可となる。
【0166】
上記受信タイマがタイムアウトする前に、デジタルカメラ1101の電源がオンされた場合は、図24・図25のフローチャートに示したシーケンスで説明したのと同様に、デジタルカメラ1101からサーバ1102への画像ファイルの送信が再開される。但し、デジタルカメラ1101の電源オン直後のモードが再生モードであった場合の話である。デジタルカメラ1101が撮影モードであった場合は、送信中断状態が続く。デジタルカメラ1101がこの状態から再生モードに入ると、サーバ1012への画像ファイルの送信が再開される。
【0167】
次に、デジタルカメラ1101からサーバ1102に対するもう1つの送信再開手順について、図30のシーケンス図、図31のフローチャート、及び図32のフローチャートを参照しながら説明する。
【0168】
図30は、デジタルカメラ1101とサーバ1102の間の画像通信シーケンスを示す図、図31は、デジタルカメラ1101の送信再開手順2を示すフローチャート、図32は、サーバ1102の受信再開手順2を示すフローチャートである。
【0169】
以下の手順では、それまで撮影モードであったデジタルカメラ1101において、ユーザが撮影モード・再生モード切替スイッチ1212を操作して再生モードに戻った場合を考える。
【0170】
図30、図31、図32において、まず、デジタルカメラ1101のユーザが撮影モード・再生モード切替スイッチ1212を操作して再生モードに入る(ステップS2001)。これに伴い、デジタルカメラ1101のCPU1201は、フラッシュROM1209上にセッションIDが保存されているかどうかを調べる(ステップS2002)。CPU1201は、フラッシュROM1209上にセッションIDが残っていない場合は、送信再開処理を行わず、送信再開手順を終了する。
【0171】
CPU1201は、フラッシュROM1209上にセッションIDが残っていた場合は、図16のステップS1009でセッションIDと同時に保存された接続先サーバのアドレスを読み出す(ステップS2003)。そして、CPU1201は、送信再開要求(1314)メッセージと、送信を再開するセッションのセッションID(1315)をサーバ1102に送信する(ステップS2004)。
【0172】
一方、サーバ1102のCPU1701は、デジタルカメラ1101から送信再開要求(1314)メッセージと、送信を再開するセッションのセッションID(1315)を受信する(ステップS2101)。これに伴い、CPU1701は、セッションIDテーブル1501とファイル情報エントリ1502を調べて、まだ受信が終了していない画像ファイルを抽出し、最初の受信未完ファイル情報(1801)としてデジタルカメラ1101に送信する(ステップS2102)。
【0173】
受信未完ファイル情報(1801)のデータの形式は、送信ファイルリスト(1305)の中の1つのファイルに関する指定と同様である。図20の例で言えば、100/img_1001.jpgのみが受信終了していた場合、最初の受信未完ファイル情報(1801)は、200/img_2001.jpgとなる。300/img_3001.jpgは次の受信未完ファイル情報(1801)である。尚、受信未完ファイル情報(1801)は、ファイル名(もしくはパスの一部)だけでなく、その画像ファイルに関する受信済みバイト数を含んでいても良い。
【0174】
デジタルカメラ1101のCPU1201は、サーバ1102から受信未完ファイル情報(1801)を受信する(ステップS2005)。そして、CPU1201は、この受信未完ファイル情報(1801)で指定された画像ファイルを特定し、該当する画像ファイル(1802)をサーバ1102に送信する(ステップS2006)。
【0175】
尚、上述したように、受信未完ファイル情報(1801)が画像ファイルに関する受信済みバイト数を含んでいる場合は、画像ファイルを先頭から送信するのではなく、受信済みバイト数をスキップして、次のバイト位置から送信するようにする。このようにすれば、送信量、送信時間が少なくて済む。
【0176】
サーバ1102のCPU1701は、デジタルカメラ1101から画像ファイル(1802)を受信すると(ステップS2103)、エラーが発生しなかった場合は(ステップS2104でN)、この画像ファイルの受信フラグを「終了」にすると共に(ステップS2105)、格納位置に画像ファイルを置く(ステップS2106)。そして、CPU1701は、全画像ファイルについて受信が終了していなければ(ステップS2107でN)、次の受信未完画像ファイルを選択し、そのファイル情報(1803)をデジタルカメラ1101に送信する(ステップS2102)。
【0177】
サーバ1102でこうして全画像ファイルを受信終了すると、CPU1701は、最後にOK(1806)メッセージをデジタルカメラ1101に送信する(ステップS2108)。デジタルカメラ1101のCPU1201は、サーバ1102から次の受信未完ファイル情報(1803)を受信すると(ステップS2007)、この画像ファイルをサーバ1102に送信する(ステップS2006)。
【0178】
こうして、デジタルカメラ1101のCPU1201は、サーバ1102が要求する画像ファイルを次々とサーバ1102に送り込む。最後に、CPU1201は、サーバ1102からOK(1806)メッセージを受け取ると(ステップS2007でN)、送信再開手順を終了する。
【0179】
以上説明したように、本実施の形態によれば、デジタルカメラ1101からサーバ1102に画像ファイルを送信中に、デジタルカメラ1101が突然撮影モードに入ったり電源がオフされたりする等のデジタルカメラ側の状態遷移に応じて、画像ファイルの送信を中断することができると共に、サーバ1102からの受信未完情報で指定された画像ファイルをサーバ1102に送信することで、的確に画像ファイルの送信を再開することができる。
【0180】
また、上記のような画像ファイルの送信を中断せねばならない事象が発生した場合でも、送信中断までの途中の状態(送信ファイルリスト、受信済みバイト数)をサーバ1102側で記憶させるようにしたことで、デジタルカメラ1101に余計な負荷を掛けることなく、正確な位置から画像ファイルの送信を再開することができる。
【0181】
また、デジタルカメラ1101はフラッシュROM1209に複雑な送信ファイルリストを記憶させておく必要がなく、フラッシュROM1209上で送信済みバイト数をその都度更新する必要もなく、サーバ1102から送信される単に通信セッションに関連付けられたセッションIDを最初に一度、フラッシュROM1209に記憶するだけで済むため、画像ファイル送信に関わる記憶制御処理の簡易化や、デジタルカメラ1101の記憶資源の有効活用等が可能となる。
【0182】
[他の実施の形態]
上記第1乃至第3の実施の形態では、図4、図5、図7、図9、図10に示すプログラムコード群を主記憶装置103に格納し、主記憶装置103から中央処理装置102がプログラムコード群を読み出して実行する例を説明したが、これに限定されるものではない。プログラムコード群を不揮発性メモリ104または撮像装置内部の記憶資源に格納し、不揮発性メモリ104または記憶資源から中央処理装置102がプログラムコード群を読み出して実行するようにしてもよい。
【0183】
図11は、中央処理装置102で読み出し可能な各種制御プログラムのプログラムコード群を格納する記憶媒体のメモリマップを示す図である。この記憶媒体には、図4、図5のフローチャートに示すプログラムコード、即ち、第1の実施の形態におけるプログラムコードが第1の制御プログラムに対応するプログラムコード群として格納されている。また、第2の実施の形態におけるプログラムコードが第2の制御プログラムに対応するプログラムコード群として格納されている。更に、第3の実施の形態におけるプログラムコードが第3の制御プログラムに対応するプログラムコード群として格納されている。
【0184】
特に図示しないが、この記憶媒体には、記憶されるプログラム群を管理する情報、例えばバージョン情報、作成者等を記憶し、かつプログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等を記憶するようにしてもよい。
【0185】
更に、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムを撮像装置にインストールするためのプログラムや、インストールするプログラムが圧縮されている場合、解凍するプログラム等を記憶するようにしてもよい。
【0186】
また、図11に示すプログラムコード群の機能が、外部からインストールされるプログラムによって本システムにより遂行されてもよい。この場合、フラッシュメモリ、SDメモリ等の記憶媒体により、或いはネットワークを介して外部の記憶媒体からプログラムを含む情報群を本システムに供給することが可能である。
【0187】
上記第1及び第2の実施の形態では、撮像装置から外部機器に画像データを一定のバッファサイズ単位で送信する例、ファイル単位で送信する例をそれぞれ説明したが、これに限定されるものではない。画像データを一定のバッファサイズ単位で送信するかファイル単位で送信するかを操作部108から選択可能としてもよい。これにより、通信状態に応じた柔軟な送信が可能となる。
【0188】
上記第4の実施の形態では、図12にデジタルカメラ1101とサーバ1102の仮想的な接続例を説明したが、上記第1乃至第3の実施の形態と同様にデジタルカメラ1101とサーバ1102を携帯電話機や無線ルータを介して接続することも可能である。
【0189】
本発明は、上述した実施の形態の機能を実現するソフトウェアのプログラム(第1乃至第3の実施の形態では図4、図5、図7、図9、図10のフローチャート、第4の実施の形態では図16〜図19、図22〜図27、図29、図31、図32のフローチャート)をコンピュータ又はCPUに供給し、そのコンピュータ又はCPUが該供給されたプログラムを読出して実行することによって、達成することができる。
【0190】
この場合、上記プログラムは、該プログラムを記録した記憶媒体から直接供給されるか、又はインターネット、商用ネットワーク、若しくはローカルエリアネットワーク等に接続される不図示の他のコンピュータやデータベース等からダウンロードすることにより供給される。
【0191】
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、OS(オペレーティングシステム)に供給されるスクリプトデータ等の形態から成ってもよい。
【0192】
また、本発明は、上述した実施の形態の機能を実現するソフトウェアのプログラムを記憶した記憶媒体をコンピュータ又はCPUに供給し、そのコンピュータ又はCPUが記憶媒体に記憶されたプログラムを読出して実行することによっても、達成することができる。
【0193】
この場合、記憶媒体から読出されたプログラムコード自体が上述した各実施の形態の機能を実現すると共に、そのプログラムコードを記憶した記憶媒体は本発明を構成する。
【0194】
プログラムコードを記憶する記憶媒体としては、例えば、ROM、RAM、NV−RAM、フロッピー(登録商標)ディスク、ハードディスク、光ディスク(登録商標)、光磁気ディスク、CD−ROM、MO、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW、磁気テープ、不揮発性のメモリカード等がある。
【0195】
上述した実施の形態の機能は、コンピュータから読出されたプログラムコードを実行することによるばかりでなく、コンピュータ上で稼動するOS等がプログラムコードの指示に基づいて実際の処理の一部又は全部を行うことによっても実現することができる。
【図面の簡単な説明】
【0196】
【図1】本発明の第1の実施の形態に係る画像送信装置としての撮像装置の概略構成を示すブロック図である。
【図2】撮像装置の制御機能を示すブロック図である。
【図3】撮像装置の送信情報生成部で生成される送信済み情報の一例を示す図である。
【図4】撮像装置の制御手順を示すフローチャートである。
【図5】撮像装置の画像データ送信処理の制御手順を示すフローチャートである。
【図6】本発明の第2の実施の形態に係る画像送信装置としての撮像装置の送信情報生成部で生成される送信済み情報の一例を示す図である。
【図7】撮像装置の画像データ送信処理の制御手順を示すフローチャートである。
【図8】本発明の第3の実施の形態に係る画像送信装置としての撮像装置に対し遠隔から送信される撮影コマンドの一例を示す図である。
【図9】撮像装置の制御手順を示すフローチャートである。
【図10】撮像装置の画像データ送信処理の制御手順を示すフローチャートである。
【図11】CPUで読み出し可能な各種制御プログラムのプログラムコード群を格納する記憶媒体のメモリマップを示す図である。
【図12】本発明の第4の実施の形態に係る画像送信装置としてのデジタルカメラと画像受信装置としてのサーバからなるクライアントサーバシステムの概略構成を示す図である。
【図13】デジタルカメラの内部構成を示すブロック図である。
【図14】サーバの内部構成を示すブロック図である。
【図15】デジタルカメラとサーバの間の画像通信シーケンスを示す図である。
【図16】デジタルカメラの画像送信手順を示すフローチャートである。
【図17】図16のフローチャートの続きである。
【図18】サーバの画像受信手順を示すフローチャートである。
【図19】図18のフローチャートの続きである。
【図20】サーバのセッションIDテーブル及びファイル情報エントリの例を示す図である。
【図21】サーバのセッションIDテーブル及びファイル情報エントリの例を示す図である。
【図22】デジタルカメラの送信中断手順1を示すフローチャートである。
【図23】サーバの受信中断手順を示すフローチャートである。
【図24】デジタルカメラの送信再開手順1を示すフローチャートである。
【図25】図24のフローチャートの続きである。
【図26】サーバの受信再開手順1を示すフローチャートである。
【図27】図26のフローチャートの続きである。
【図28】デジタルカメラとサーバの間の画像通信シーケンスを示す図である。
【図29】デジタルカメラの送信中断手順2を示すフローチャートである。
【図30】デジタルカメラとサーバの間の画像通信シーケンスを示す図である。
【図31】デジタルカメラの送信再開手順2を示すフローチャートである。
【図32】サーバの受信再開手順2を示すフローチャートである。
【符号の説明】
【0197】
101 撮像装置(画像送信装置、撮像装置に対応)
102 中央処理装置(制御手段に対応)
104 不揮発性メモリ(記憶手段に対応)
105 撮像部(撮像手段に対応)
110 通信I/F(通信手段に対応)
202 送受信判定部(指示手段に対応)
204 データ送受信部(通信手段に対応)
205 送信情報生成部(生成手段に対応)
1101 デジタルカメラ(画像送信装置、撮像装置に対応)
1102 サーバ(画像受信装置に対応)
1201 デジタルカメラのCPU(記憶制御手段、第1の送信制御手段、第2の送信制御手段に対応)
1209 フラッシュROM(記憶手段に対応)
1211 CCD(撮像手段に対応)
1701 サーバのCPU(記憶制御手段、第1の送信制御手段、第2の送信制御手段に対応)
1703 RAM(記憶手段に対応)
【特許請求の範囲】
【請求項1】
画像データを外部機器に送信する通信手段と、
前記通信手段により画像データを送信する度に送信済み情報を生成する生成手段と、
前記生成手段により生成した送信済み情報を記憶する記憶手段と、
画像データの送信中の送信中断要因に基づく送信中断及び送信再開を指示する指示手段と、
前記指示手段による画像データの送信中断後に送信を再開する場合、前記記憶手段に記憶されている前記送信済み情報を基に、送信が完了していない画像データを送信が中断したところから送信を再開する制御手段と、
を備えることを特徴とする画像送信装置。
【請求項2】
前記画像データの送信単位は、バッファサイズ単位、ファイル単位を含む群から選択されることを特徴とする請求項1記載の画像送信装置。
【請求項3】
前記画像データの送信要因は、撮影後、指定枚数の撮影後を含む群から選択されることを特徴とする請求項1記載の画像送信装置。
【請求項4】
前記画像データの送信中断要因は、電源オフ操作、撮影操作、外部機器からの撮影コマンド受信を含む群から選択されることを特徴とする請求項1記載の画像送信装置。
【請求項5】
前記送信済み情報は、画像データの総バイト数、画像データの送信済みバイト数を含むことを特徴とする請求項1記載の画像送信装置。
【請求項6】
前記請求項1乃至5の何れかに記載の画像送信装置と、被写体を撮像する撮像手段とを備えることを特徴とする撮像装置。
【請求項7】
画像データを外部機器に送信する通信工程と、
前記通信工程により画像データを送信する度に送信済み情報を生成する生成工程と、
前記生成工程により生成した送信済み情報を記憶手段に記憶する記憶工程と、
画像データの送信中の送信中断要因に基づく送信中断及び送信再開を指示する指示工程と、
前記指示工程による画像データの送信中断後に送信を再開する場合、前記記憶手段に記憶されている前記送信済み情報を基に、送信が完了していない画像データを送信が中断したところから送信を再開する制御工程と、
を備えることを特徴とする画像送信方法。
【請求項8】
画像データを外部機器に送信する通信機能と、
前記通信機能により画像データを送信する度に送信済み情報を生成する生成機能と、
前記生成機能により生成した送信済み情報を記憶手段に記憶する記憶機能と、
画像データの送信中の送信中断要因に基づく送信中断及び送信再開を指示する指示機能と、
前記指示機能による画像データの送信中断後に送信を再開する場合、前記記憶手段に記憶されている前記送信済み情報を基に、送信が完了していない画像データを送信が中断したところから送信を再開する制御機能を、
コンピュータに実現させるためのプログラム。
【請求項9】
画像受信装置に送信した画像ファイル送信要求に伴い、前記画像受信装置から返信される通信セッション識別用のセッション識別子を記憶手段に保存する記憶制御手段と、
前記画像受信装置に画像ファイルを送信中に送信中断事象が発生した場合は、送信を中断し、送信再開事象が発生した場合は、送信再開要求及び前記記憶手段に保存されているセッション識別子を前記画像受信装置に送信する第1の送信制御手段と、
前記画像受信装置に対する前記送信再開要求及びセッション識別子の送信に伴い、前記画像受信装置から返信される受信未完情報で指定された画像ファイルを前記画像受信装置に送信する第2の送信制御手段と、
を備えることを特徴とする画像送信装置。
【請求項10】
前記画像ファイルの送信中断事象は、撮影モードへの移行、送信中断時刻の到来、電源オフ操作を含む群から選択されることを特徴とする請求項9記載の画像送信装置。
【請求項11】
前記画像ファイルの送信再開事象は、再生モードへの移行、撮影モードのタイムアウトを含む群から選択されることを特徴とする請求項9記載の画像送信装置。
【請求項12】
前記請求項9乃至11の何れかに記載の画像送信装置と、被写体を撮像する撮像手段とを備えることを特徴とする撮像装置。
【請求項13】
画像送信装置からの画像ファイル送信要求に伴い、通信セッション識別用のセッション識別子を前記画像送信装置に送信する第1の送信制御手段と、
前記画像送信装置による送信対象の画像ファイルのリストと前記セッション識別子との関連付けと、前記画像送信装置から送信される画像ファイルの受信状況を記憶手段に記憶する記憶制御手段と、
前記画像送信装置による画像ファイルの送信中断後の送信再開に伴い、前記画像送信装置から前記セッション識別子を受信した場合、前記記憶手段の記憶内容を基に、受信が未完である画像ファイルを示す受信未完情報を前記画像送信装置に送信する第2の送信制御手段と、
を備えることを特徴とする画像受信装置。
【請求項14】
前記記憶制御手段は、前記画像ファイルの受信状況として画像ファイルの受信済みバイト数を前記記憶手段に記憶すると共に、画像ファイル受信の進捗に応じて前記受信済みバイト数を更新することを特徴とする請求項13記載の画像受信装置。
【請求項15】
画像受信装置に送信した画像ファイル送信要求に伴い、前記画像受信装置から返信されるセッション識別子を記憶手段に保存する記憶制御工程と、
前記画像受信装置に画像ファイルを送信中に送信中断事象が発生した場合は、送信を中断し、送信再開事象が発生した場合は、送信再開要求及び前記記憶手段に保存されているセッション識別子を前記画像受信装置に送信する第1の送信制御工程と、
前記画像受信装置に対する前記送信再開要求及びセッション識別子の送信に伴い、前記画像受信装置から返信される受信未完情報で指定された画像ファイルを前記画像受信装置に送信する第2の送信制御工程と、
を備えることを特徴とする画像送信方法。
【請求項16】
画像受信装置に送信した画像ファイル送信要求に伴い、前記画像受信装置から返信されるセッション識別子を記憶手段に保存する記憶制御機能と、
前記画像受信装置に画像ファイルを送信中に送信中断事象が発生した場合は、送信を中断し、送信再開事象が発生した場合は、送信再開要求及び前記記憶手段に保存されているセッション識別子を前記画像受信装置に送信する第1の送信制御機能と、
前記画像受信装置に対する前記送信再開要求及びセッション識別子の送信に伴い、前記画像受信装置から返信される受信未完情報で指定された画像ファイルを前記画像受信装置に送信する第2の送信制御機能を、
コンピュータに実現させるためのプログラム。
【請求項1】
画像データを外部機器に送信する通信手段と、
前記通信手段により画像データを送信する度に送信済み情報を生成する生成手段と、
前記生成手段により生成した送信済み情報を記憶する記憶手段と、
画像データの送信中の送信中断要因に基づく送信中断及び送信再開を指示する指示手段と、
前記指示手段による画像データの送信中断後に送信を再開する場合、前記記憶手段に記憶されている前記送信済み情報を基に、送信が完了していない画像データを送信が中断したところから送信を再開する制御手段と、
を備えることを特徴とする画像送信装置。
【請求項2】
前記画像データの送信単位は、バッファサイズ単位、ファイル単位を含む群から選択されることを特徴とする請求項1記載の画像送信装置。
【請求項3】
前記画像データの送信要因は、撮影後、指定枚数の撮影後を含む群から選択されることを特徴とする請求項1記載の画像送信装置。
【請求項4】
前記画像データの送信中断要因は、電源オフ操作、撮影操作、外部機器からの撮影コマンド受信を含む群から選択されることを特徴とする請求項1記載の画像送信装置。
【請求項5】
前記送信済み情報は、画像データの総バイト数、画像データの送信済みバイト数を含むことを特徴とする請求項1記載の画像送信装置。
【請求項6】
前記請求項1乃至5の何れかに記載の画像送信装置と、被写体を撮像する撮像手段とを備えることを特徴とする撮像装置。
【請求項7】
画像データを外部機器に送信する通信工程と、
前記通信工程により画像データを送信する度に送信済み情報を生成する生成工程と、
前記生成工程により生成した送信済み情報を記憶手段に記憶する記憶工程と、
画像データの送信中の送信中断要因に基づく送信中断及び送信再開を指示する指示工程と、
前記指示工程による画像データの送信中断後に送信を再開する場合、前記記憶手段に記憶されている前記送信済み情報を基に、送信が完了していない画像データを送信が中断したところから送信を再開する制御工程と、
を備えることを特徴とする画像送信方法。
【請求項8】
画像データを外部機器に送信する通信機能と、
前記通信機能により画像データを送信する度に送信済み情報を生成する生成機能と、
前記生成機能により生成した送信済み情報を記憶手段に記憶する記憶機能と、
画像データの送信中の送信中断要因に基づく送信中断及び送信再開を指示する指示機能と、
前記指示機能による画像データの送信中断後に送信を再開する場合、前記記憶手段に記憶されている前記送信済み情報を基に、送信が完了していない画像データを送信が中断したところから送信を再開する制御機能を、
コンピュータに実現させるためのプログラム。
【請求項9】
画像受信装置に送信した画像ファイル送信要求に伴い、前記画像受信装置から返信される通信セッション識別用のセッション識別子を記憶手段に保存する記憶制御手段と、
前記画像受信装置に画像ファイルを送信中に送信中断事象が発生した場合は、送信を中断し、送信再開事象が発生した場合は、送信再開要求及び前記記憶手段に保存されているセッション識別子を前記画像受信装置に送信する第1の送信制御手段と、
前記画像受信装置に対する前記送信再開要求及びセッション識別子の送信に伴い、前記画像受信装置から返信される受信未完情報で指定された画像ファイルを前記画像受信装置に送信する第2の送信制御手段と、
を備えることを特徴とする画像送信装置。
【請求項10】
前記画像ファイルの送信中断事象は、撮影モードへの移行、送信中断時刻の到来、電源オフ操作を含む群から選択されることを特徴とする請求項9記載の画像送信装置。
【請求項11】
前記画像ファイルの送信再開事象は、再生モードへの移行、撮影モードのタイムアウトを含む群から選択されることを特徴とする請求項9記載の画像送信装置。
【請求項12】
前記請求項9乃至11の何れかに記載の画像送信装置と、被写体を撮像する撮像手段とを備えることを特徴とする撮像装置。
【請求項13】
画像送信装置からの画像ファイル送信要求に伴い、通信セッション識別用のセッション識別子を前記画像送信装置に送信する第1の送信制御手段と、
前記画像送信装置による送信対象の画像ファイルのリストと前記セッション識別子との関連付けと、前記画像送信装置から送信される画像ファイルの受信状況を記憶手段に記憶する記憶制御手段と、
前記画像送信装置による画像ファイルの送信中断後の送信再開に伴い、前記画像送信装置から前記セッション識別子を受信した場合、前記記憶手段の記憶内容を基に、受信が未完である画像ファイルを示す受信未完情報を前記画像送信装置に送信する第2の送信制御手段と、
を備えることを特徴とする画像受信装置。
【請求項14】
前記記憶制御手段は、前記画像ファイルの受信状況として画像ファイルの受信済みバイト数を前記記憶手段に記憶すると共に、画像ファイル受信の進捗に応じて前記受信済みバイト数を更新することを特徴とする請求項13記載の画像受信装置。
【請求項15】
画像受信装置に送信した画像ファイル送信要求に伴い、前記画像受信装置から返信されるセッション識別子を記憶手段に保存する記憶制御工程と、
前記画像受信装置に画像ファイルを送信中に送信中断事象が発生した場合は、送信を中断し、送信再開事象が発生した場合は、送信再開要求及び前記記憶手段に保存されているセッション識別子を前記画像受信装置に送信する第1の送信制御工程と、
前記画像受信装置に対する前記送信再開要求及びセッション識別子の送信に伴い、前記画像受信装置から返信される受信未完情報で指定された画像ファイルを前記画像受信装置に送信する第2の送信制御工程と、
を備えることを特徴とする画像送信方法。
【請求項16】
画像受信装置に送信した画像ファイル送信要求に伴い、前記画像受信装置から返信されるセッション識別子を記憶手段に保存する記憶制御機能と、
前記画像受信装置に画像ファイルを送信中に送信中断事象が発生した場合は、送信を中断し、送信再開事象が発生した場合は、送信再開要求及び前記記憶手段に保存されているセッション識別子を前記画像受信装置に送信する第1の送信制御機能と、
前記画像受信装置に対する前記送信再開要求及びセッション識別子の送信に伴い、前記画像受信装置から返信される受信未完情報で指定された画像ファイルを前記画像受信装置に送信する第2の送信制御機能を、
コンピュータに実現させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【公開番号】特開2006−53863(P2006−53863A)
【公開日】平成18年2月23日(2006.2.23)
【国際特許分類】
【出願番号】特願2004−236601(P2004−236601)
【出願日】平成16年8月16日(2004.8.16)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成18年2月23日(2006.2.23)
【国際特許分類】
【出願日】平成16年8月16日(2004.8.16)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]