(57)【要約】    【課題】  画像データの送信中断後に再び送信を開始する場合、ユーザの複雑な操作を介さずに、送信が中断されたところから継続して確実且つ効率良く画像データを送信することを可能とした画像送信装置を提供する。    【解決手段】  撮像装置１０１は、画像データを外部機器に送信するデータ送受信部２０４、画像データを送信する度に送信済み情報を生成する送信情報生成部２０５、画像データの送信中の送信中断要因に基づく送信中断及び送信再開を指示する送受信判定部２０２、送信済み情報を記憶する不揮発性メモリ１０４、画像送信処理を制御する中央処理装置１０２を備える。画像データの送信中断後に送信を再開する場合、不揮発性メモリ１０４に記憶されている送信済み情報を基に、送信が完了していない画像データを送信が中断したところから送信を再開する。【選択図】      図２
2006053863.tif 000002
【特許請求の範囲】
【請求項１】
画像データを外部機器に送信する通信手段と、
前記通信手段により画像データを送信する度に送信済み情報を生成する生成手段と、
前記生成手段により生成した送信済み情報を記憶する記憶手段と、
画像データの送信中の送信中断要因に基づく送信中断及び送信再開を指示する指示手段と、
前記指示手段による画像データの送信中断後に送信を再開する場合、前記記憶手段に記憶されている前記送信済み情報を基に、送信が完了していない画像データを送信が中断したところから送信を再開する制御手段と、
を備えることを特徴とする画像送信装置。
【請求項２】
前記画像データの送信単位は、バッファサイズ単位、ファイル単位を含む群から選択されることを特徴とする請求項１記載の画像送信装置。
【請求項３】
前記画像データの送信要因は、撮影後、指定枚数の撮影後を含む群から選択されることを特徴とする請求項１記載の画像送信装置。
【請求項４】
前記画像データの送信中断要因は、電源オフ操作、撮影操作、外部機器からの撮影コマンド受信を含む群から選択されることを特徴とする請求項１記載の画像送信装置。
【請求項５】
前記送信済み情報は、画像データの総バイト数、画像データの送信済みバイト数を含むことを特徴とする請求項１記載の画像送信装置。
【請求項６】
前記請求項１乃至５の何れかに記載の画像送信装置と、被写体を撮像する撮像手段とを備えることを特徴とする撮像装置。
【請求項７】
画像データを外部機器に送信する通信工程と、
前記通信工程により画像データを送信する度に送信済み情報を生成する生成工程と、
前記生成工程により生成した送信済み情報を記憶手段に記憶する記憶工程と、
画像データの送信中の送信中断要因に基づく送信中断及び送信再開を指示する指示工程と、
前記指示工程による画像データの送信中断後に送信を再開する場合、前記記憶手段に記憶されている前記送信済み情報を基に、送信が完了していない画像データを送信が中断したところから送信を再開する制御工程と、
を備えることを特徴とする画像送信方法。
【請求項８】
画像データを外部機器に送信する通信機能と、
前記通信機能により画像データを送信する度に送信済み情報を生成する生成機能と、
前記生成機能により生成した送信済み情報を記憶手段に記憶する記憶機能と、
画像データの送信中の送信中断要因に基づく送信中断及び送信再開を指示する指示機能と、
前記指示機能による画像データの送信中断後に送信を再開する場合、前記記憶手段に記憶されている前記送信済み情報を基に、送信が完了していない画像データを送信が中断したところから送信を再開する制御機能を、
コンピュータに実現させるためのプログラム。
【請求項９】
画像受信装置に送信した画像ファイル送信要求に伴い、前記画像受信装置から返信される通信セッション識別用のセッション識別子を記憶手段に保存する記憶制御手段と、
前記画像受信装置に画像ファイルを送信中に送信中断事象が発生した場合は、送信を中断し、送信再開事象が発生した場合は、送信再開要求及び前記記憶手段に保存されているセッション識別子を前記画像受信装置に送信する第１の送信制御手段と、
前記画像受信装置に対する前記送信再開要求及びセッション識別子の送信に伴い、前記画像受信装置から返信される受信未完情報で指定された画像ファイルを前記画像受信装置に送信する第２の送信制御手段と、
を備えることを特徴とする画像送信装置。
【請求項１０】
前記画像ファイルの送信中断事象は、撮影モードへの移行、送信中断時刻の到来、電源オフ操作を含む群から選択されることを特徴とする請求項９記載の画像送信装置。
【請求項１１】
前記画像ファイルの送信再開事象は、再生モードへの移行、撮影モードのタイムアウトを含む群から選択されることを特徴とする請求項９記載の画像送信装置。
【請求項１２】
前記請求項９乃至１１の何れかに記載の画像送信装置と、被写体を撮像する撮像手段とを備えることを特徴とする撮像装置。
【請求項１３】
画像送信装置からの画像ファイル送信要求に伴い、通信セッション識別用のセッション識別子を前記画像送信装置に送信する第１の送信制御手段と、
前記画像送信装置による送信対象の画像ファイルのリストと前記セッション識別子との関連付けと、前記画像送信装置から送信される画像ファイルの受信状況を記憶手段に記憶する記憶制御手段と、
前記画像送信装置による画像ファイルの送信中断後の送信再開に伴い、前記画像送信装置から前記セッション識別子を受信した場合、前記記憶手段の記憶内容を基に、受信が未完である画像ファイルを示す受信未完情報を前記画像送信装置に送信する第２の送信制御手段と、
を備えることを特徴とする画像受信装置。
【請求項１４】
前記記憶制御手段は、前記画像ファイルの受信状況として画像ファイルの受信済みバイト数を前記記憶手段に記憶すると共に、画像ファイル受信の進捗に応じて前記受信済みバイト数を更新することを特徴とする請求項１３記載の画像受信装置。
【請求項１５】
画像受信装置に送信した画像ファイル送信要求に伴い、前記画像受信装置から返信されるセッション識別子を記憶手段に保存する記憶制御工程と、
前記画像受信装置に画像ファイルを送信中に送信中断事象が発生した場合は、送信を中断し、送信再開事象が発生した場合は、送信再開要求及び前記記憶手段に保存されているセッション識別子を前記画像受信装置に送信する第１の送信制御工程と、
前記画像受信装置に対する前記送信再開要求及びセッション識別子の送信に伴い、前記画像受信装置から返信される受信未完情報で指定された画像ファイルを前記画像受信装置に送信する第２の送信制御工程と、
を備えることを特徴とする画像送信方法。
【請求項１６】
画像受信装置に送信した画像ファイル送信要求に伴い、前記画像受信装置から返信されるセッション識別子を記憶手段に保存する記憶制御機能と、
前記画像受信装置に画像ファイルを送信中に送信中断事象が発生した場合は、送信を中断し、送信再開事象が発生した場合は、送信再開要求及び前記記憶手段に保存されているセッション識別子を前記画像受信装置に送信する第１の送信制御機能と、
前記画像受信装置に対する前記送信再開要求及びセッション識別子の送信に伴い、前記画像受信装置から返信される受信未完情報で指定された画像ファイルを前記画像受信装置に送信する第２の送信制御機能を、
コンピュータに実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルカメラやデジタルビデオカメラ等の撮像装置で撮影した画像データを外部機器に送信する場合に適用される画像送信装置に関する。
【背景技術】
【０００２】
従来、デジタルカメラやデジタルビデオカメラ等の撮像装置から外部機器に画像データを送信する送信時には、送信中の状態に応じて画像データの送信を中止するか、或いは、撮影を優先するために画像データの送信を中断する等の方法が採られていた。
【０００３】
例えば、デジタルカメラが画像送信に適したタイミングで画像データを自動送信する技術が提案されている。該提案は、画像データを送信する際、未送信の画像データ（写真）が所定の枚数に達した時点でまとめて送信するが、送信中にデジタルカメラの電源をＯＦＦにする操作があると、未送信の画像データをまとめて送信した後に電源ＯＦＦし、その後、電源をＯＮにした時点で未送信の画像データがあればまとめて伝送する。また、送信中に撮影動作が開始された時に送信を中断し、撮影動作が停止した後に送信を再開するものである（例えば、特許文献１参照）。
【０００４】
また、デジタルカメラでの撮影が、画像データを外部に送信する通信処理によって阻害されることがないよう、撮影準備動作を検出すると外部との通信を禁止し、通信中に撮影準備動作を検出すると外部との通信を中断する技術が提案されている（例えば、特許文献２参照）。
【０００５】
また、撮像装置の画像データを外部の記録装置に効率良く確実に記録すると共に、外部機器との通信状態に応じて画像データを無線伝送する技術が提案されている。該提案では、撮像装置が撮像状態である場合は無線伝送を中断し、通信状態が良好になった場合に無線伝送を再開する（例えば、特許文献３参照）。
【０００６】
また、撮像装置で撮像された電子情報を、コンピュータを介してプリント出力したり、或いは、通信手段を介してプリント出力するが、プリントが中断した場合は中断までに完了しているプリントに関わる中断情報を記憶し、中断情報に基づいてプリントを再開する技術が提案されている（例えば、特許文献４参照）。
【０００７】
また、デジタルカメラ等の撮像装置で撮影した画像を無線通信で外部機器へ送信中に、通信が切断した後の通信路の再開時に、撮像装置から外部機器に送信していた主画像を特定し、通信の切断前に外部機器で受信完了した通信単位の次の通信単位から受信を再開するようにした技術が提案されている（例えば、特許文献５参照）。
【特許文献１】特開２００２−１０１８８号公報
【特許文献２】特開２００３−１９８９０１号公報
【特許文献３】特開２０００−２７０２４９号公報
【特許文献４】特開２００２−３２６４０４号公報
【特許文献５】特開２００３−１０８４６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記従来例（特許文献１〜４）では、撮像装置で撮影した画像データを他の機器に送信する際に、画像データをまとめて送信するか、或いは、画像データの送信中断後に再び送信を開始する場合、中断した時点から継続して送信するために未送信の画像データそのものを不揮発性メモリに記憶していた。しかし、不揮発性メモリの容量には限界があるため、大量の画像データを記憶するのは非現実的であった。
【０００９】
また、撮影後直ちに画像データを他の機器に送信する場合については考慮されていなかった。更に、画像データの送信を中断する際のトリガとして、撮影動作が行われた場合やユーザが撮像装置の電源をＯＦＦした場合については考慮されているが、ユーザが撮像装置を直接操作するのではなく、撮像装置を遠隔地から制御する場合については考慮されていなかった。
【００１０】
また、上記従来例（特許文献５）では、撮像装置と外部機器との間の通信が中断するのは、無線通信においてキャリア電波を喪失する等、通信路の切断を検出した時であり、撮像装置が撮影モードに入った時等のような撮像装置の状態遷移によって、通信を中断させるようなことはしていない。そのため、例えば撮像装置で画像送信中に送信を中断して撮影を行い、撮影終了後に画像送信を再開したいという要望に応えることはできなかった。
【００１１】
本発明の第１の目的は、画像データの送信中断後に再び送信を開始する場合、ユーザの複雑な操作を介さずに、送信が中断されたところから継続して確実且つ効率良く画像データを送信することを可能とした画像送信装置を提供することにある。
【００１２】
本発明の第２の目的は、画像送信側の状態遷移に応じて画像ファイルの送信を中断し、的確に画像ファイルの送信を再開することを可能とした画像送信装置を提供することにある。
【課題を解決するための手段】
【００１３】
上述の目的を達成するために、本発明の画像送信装置は、画像データを外部機器に送信する通信手段と、前記通信手段により画像データを送信する度に送信済み情報を生成する生成手段と、前記生成手段により生成した送信済み情報を記憶する記憶手段と、画像データの送信中の送信中断要因に基づく送信中断及び送信再開を指示する指示手段と、前記指示手段による画像データの送信中断後に送信を再開する場合、前記記憶手段に記憶されている前記送信済み情報を基に、送信が完了していない画像データを送信が中断したところから送信を再開する制御手段と、を備えることを特徴とする。
【００１４】
上述の目的を達成するために、本発明の画像送信装置は、画像受信装置に送信した画像ファイル送信要求に伴い、前記画像受信装置から返信されるセッション識別子を記憶手段に保存する記憶制御手段と、前記画像受信装置に画像ファイルを送信中に送信中断事象が発生した場合は、送信を中断し、送信再開事象が発生した場合は、送信再開要求及び前記記憶手段に保存されているセッション識別子を前記画像受信装置に送信する第１の送信制御手段と、前記画像受信装置に対する前記送信再開要求及びセッション識別子の送信に伴い、前記画像受信装置から返信される受信未完情報で指定された画像ファイルを前記画像受信装置に送信する第２の送信制御手段と、を備えることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、画像送信装置で画像データの送信中断後に送信を再開する場合、記憶手段に記憶されている送信済み情報を基に、送信が完了していない画像データを送信が中断したところから送信を再開するので、画像データ送信中に電源オフ操作や撮影操作等が行われた場合でも、未送信画像データを最初から送信する必要はない。従って、ユーザの複雑な操作を介さずに、画像データの送信が中断されたところから継続して確実且つ効率良く画像データを送信することができる。
【００１６】
また、画像データをバッファサイズ単位で送信するかファイル単位で送信するかを選択できるので、通信状態に応じた柔軟な送信が可能となる。
【００１７】
また、画像データを撮影後直ちに送信するか指定枚数の撮影後直ちに送信するかを選択できるので、ユーザの撮影頻度に応じた柔軟な送信を行うことが可能となる。
【００１８】
本発明によれば、画像送信装置から画像受信装置に画像ファイルを送信中に、撮影モードに移行したり電源がオフされたりする等の画像送信側の状態遷移に応じて、画像ファイルの送信を中断することができると共に、画像受信装置からの受信未完情報で指定された画像ファイルを画像受信装置に送信することで、的確に画像ファイルの送信を再開することができる。
【００１９】
また、上記のような画像ファイルの送信を中断せねばならない事象が発生した場合でも、送信中断までの途中の状態（送信対象画像ファイルのリスト、受信済みバイト数）を画像受信装置側で記憶させるようにしたことで、画像送信装置に余計な負荷を掛けることなく、正確な位置から画像ファイルの送信を再開することができる。
【００２０】
また、画像送信装置は記憶手段に複雑な送信対象画像ファイルのリストを記憶させておく必要がなく、記憶手段上で送信済みバイト数をその都度更新する必要もなく、画像受信装置から送信される単に通信セッションに関連付けられたセッション識別子を最初に一度、記憶手段に記憶するだけで済むため、画像ファイル送信に関わる記憶制御処理の簡易化や、画像送信装置の記憶資源の有効活用等が可能となる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施の形態を図面に基づき説明する。
【００２２】
［第１の実施の形態］
図１は、本発明の第１の実施の形態に係る画像送信装置としての撮像装置の概略構成を示すブロック図である。
【００２３】
図１において、撮像装置１０１は、デジタルカメラ或いはデジタルビデオカメラとして構成されており、中央処理装置（ＣＰＵ）１０２、主記憶装置１０３、不揮発性メモリ１０４、撮像部１０５、画像処理部１０６、表示装置１０７、操作部１０８、記憶媒体１０９、通信インタフェース（Ｉ／Ｆ）１１０、バス１１１を備えている。１１２は携帯電話機、１１３はパーソナルコンピュータ（ＰＣ）、１１４は無線ルータである。
【００２４】
中央処理装置１０２は、後述する各種の処理を実行するマイクロプロセッサ等から構成されており、図４、図５、図７、図９、図１０の各フローチャートに示す処理を実行する。主記憶装置１０３は、ＲＡＭ等から構成されており、撮像等の機器制御を行うオペレーティングシステム（ＯＳ）、画像データを送信する処理を行うプログラム（図４、図５、図７、図９、図１０に示すプログラムコード群）を格納している。不揮発性メモリ１０４は、フラッシュメモリ等から構成されており、ユーザの設定情報等の撮像装置の電源がＯＦＦの間も保持すべき情報、画像データを送信する度に生成される送信済み情報、等を記憶するものであり、後述の「他の実施の形態」で説明するように、上記プログラムコード群を格納することも可能である。
【００２５】
撮像部１０５は、被写体（デジタルカメラの場合は静止画（写真）、デジタルビデオカメラの場合は動画）の撮影を行う。画像処理部１０６は、撮影した画像の圧縮等の画像処理を行う。表示装置１０７は、撮影した画像の表示やユーザ設定画面の表示等を行う。操作部１０８は、実際の撮影の操作を行う場合やユーザ設定画面から所望の設定を入力する場合に用いる。記憶媒体１０９は、コンパクトフラッシュ（登録商標）メモリ或いはＳＤ（Secure Digital）メモリから構成されており、撮影した画像データを保存する。通信Ｉ／Ｆ１１０は、携帯電話機１１２または無線ルータ１１４を介し外部機器と接続する際のインタフェースを司る。バス１１１は、上記構成要素間でデータや信号を授受する際の伝送路である。
【００２６】
携帯電話機１１２は、撮像装置１０１から無線で送信された画像データを保存したり、或いは画像データを携帯電話機１１２を介して外部機器であるＰＣ１１３に送信したりする際に利用される。ＰＣ１１３は、撮像装置１０１から携帯電話機１１２を介して送信された画像データ、撮像装置１０１から無線ルータ１１４を介して送信された画像データ、更には撮像装置１０１の通信Ｉ／Ｆ１１０と直接ケーブルを介して送信された画像データを保存する際に利用される。無線ルータ１１４は、撮像装置１０１から無線で送信された画像データをＰＣ１１３に送信する。
【００２７】
上記構成を有する撮像装置１０１では、撮像部１０５で撮影した画像を画像処理部１０６で画像処理し、その画像データを記憶媒体１０９に保存する。中央処理装置１０２は、記憶媒体１０９に格納されている画像データを読み出して主記憶装置１０３に格納し、その画像データは通信Ｉ／Ｆ１１０を介して携帯電話機１１２や無線ルータ１１４に送信される。この時、撮像装置１０１から外部機器に画像データを送信する度に送信情報生成部（後述）で生成される送信済み情報を不揮発性メモリ１０４に記憶する。
【００２８】
図２は、撮像装置の制御機能を示すブロック図である。
【００２９】
図２において、撮像装置１０１は、中央処理装置１０２がプログラムコードを実行することで実現される画像読み書き部２０１、送受信判定部２０２、操作イベント解析部２０３、データ送受信部２０４、送信情報生成部２０５、送信情報読み書き部２０６を機能として備えている。
【００３０】
図２において、画像読み書き部２０１は、撮影した画像データを記憶媒体１０９に書き込む処理や、記憶媒体１０９に格納されている画像データを読み出す処理を行う。送受信判定部２０２は、データ送受信部２０４に画像データの送受信の開始、送信中断、送信再開を指示する。画像データ送信のタイミングとしては、撮影後（撮影後直ちに）、指定枚数の撮影後（指定枚数の撮影後直ちに）があり、ユーザが操作部１０８から任意に選択することが可能である。また、画像データ送信中断のタイミングとしては、撮像装置の電源がＯＦＦにされた時、操作部１０８を介して撮影操作が行われた時、通信Ｉ／Ｆ１１０を介して外部機器から撮影を指示する撮影コマンドを受信した時がある。
【００３１】
操作イベント解析部２０３は、操作部１０８により撮影操作が行われた（例えばシャッタが押された）場合や撮像装置の電源がＯＦＦにされた場合に、画像データの送信を中断すべきである旨を送受信判定部２０２に通知する。また、操作イベント解析部２０３は、撮像装置の電源がＯＮにされた場合は、送信が中断されている画像データの送信を再開するよう送受信判定部２０２に通知する。
【００３２】
データ送受信部２０４は、送受信判定部２０２から画像データの送信が指示された場合は通信Ｉ／Ｆ１１０を介して外部機器に画像データを送信し、画像データ送信の中断が指示された場合は送信を中断する。また、データ送受信部２０４は、画像データの送信中断後に送信を再開する場合、後述の送信済み情報を基に送信が完了していない画像データを送信が中断したところから送信を再開する。また、データ送受信部２０４は、通信Ｉ／Ｆ１１０を介して外部機器から撮影コマンドを受信する。
【００３３】
送信情報生成部２０５は、データ送受信部２０４によって画像データが送信される度に、どこまで送信が行われたかを示す送信済み情報を生成する。送信情報読み書き部２０６は、送信情報生成部２０５によって生成された送信済み情報を不揮発性メモリ１０４に書き込む。また、送信情報読み書き部２０６は、撮像装置の電源がＯＮにされた場合や画像データ送信が再開される場合には、不揮発性メモリ１０４に格納されている送信済み情報を読み出す。
【００３４】
図３は、撮像装置の送信情報生成部２０５で生成される送信済み情報の一例を示す図である。
【００３５】
図３において、画像データはある一定のバッファサイズ単位で外部機器に送信し、画像データの送信を行う度に送信済み情報を不揮発性メモリ１０４に記憶する。３０１は送信ファイル数であり、図示の”２”は撮像装置で２枚撮影した後で外部機器に送信される画像ファイルの数であり、また２つの画像ファイルの送信が完了したら送信が停止することを意味する。
【００３６】
３０２は最初に送信される画像のファイル名であり、”IMG_001.JPG”というファイル名が設定されている。３０３は画像ファイル”IMG_001.JPG”の総バイト数であり、”32,768byte”が設定されている。３０４は送信済みバイト数であり、”32,768byte”が設定されている。即ち、画像ファイル”IMG_001.JPG”の全ての画像データを送信したことを意味する。３０５は送信済みフラグであり、画像ファイル”IMG_001.JPG”の全ての画像データが送信されているので、”YES”が設定されている。
【００３７】
３０６は２番目に送信される画像のファイル名であり、”IMG_002.JPG”というファイル名が設定されている。３０７は画像ファイル”IMG_002.JPG”の総バイト数であり、”43,008byte”が設定されている。３０８は送信済みバイト数であり、 ”28,672byte”が設定されている。即ち、画像ファイル”IMG_002.JPG”の全ての画像データがまだ送信完了となっていないことを意味する。３０９は送信済みフラグあり、画像ファイル”IMG_002.JPG”の全ての画像データがまだ送信完了となっていないので、”NO”が設定されている。
【００３８】
次に、上記構成を有する本実施の形態の撮像装置の動作を図１乃至図５を参照しながら説明する。
【００３９】
図４は、撮像装置の制御手順を示すフローチャートである。
【００４０】
本制御手順を示すプログラムコードは主記憶装置１０３に格納されている。撮像装置の中央処理装置１０２が該プログラムコードを実行することで実現される画像読み書き部２０１、送受信判定部２０２、操作イベント解析部２０３、データ送受信部２０４、送信情報生成部２０５、送信情報読み書き部２０６により、本フローチャートに示す処理が行われる。
【００４１】
該プログラムコードは、撮像装置が撮影した画像データを外部機器（図１のＰＣ１１３）に送信するが、画像データの送信中に撮影操作が始まると送信を中断し、その後、画像データの送信を再開する場合は、画像データの送信が行われる度に不揮発性メモリ１０４に記憶していた送信済み情報を基に、送信が完了していない画像データを送信が中断したところから送信を再開するまでの制御手順に対応する。
【００４２】
図４において、撮像装置の電源がＯＮになると（ステップＳ４００）、中央処理装置１０２は、送信情報読み書き部２０６を用いて不揮発性メモリ１０４に格納されている送信済み情報を読み出し（ステップＳ４０１）、次に操作イベント解析部２０３から撮影モードを取得する（ステップＳ４０２）。中央処理装置１０２は、取得した撮影モードが電源ＯＦＦを示すモードかどうかを調べ（ステップＳ４０３）、取得した撮影モードが電源ＯＦＦを示すモードの場合は、このまま本処理を終了する。
【００４３】
取得した撮影モードが電源ＯＦＦを示すモードでない場合は、中央処理装置１０２は、取得した撮影モードが撮影操作（例えばシャッタを押す操作）に関するモードかどうかを調べ（ステップＳ４０４）、取得した撮影モードが撮影操作に関するモードである場合は、撮像部１０５による撮影を実行し（ステップＳ４０５）、次に撮影した枚数が送信枚数に達したかどうかを調べる（ステップＳ４０６）。撮影した枚数が送信枚数に達していない場合は、中央処理装置１０２は、ステップＳ４０２に戻り、再び撮影モードを取得する処理を繰り返す。
【００４４】
撮影した枚数が送信枚数に達した場合は、中央処理装置１０２は、撮像装置から外部機器に送信する画像データのファイル数を送信済み情報の送信ファイル数の項目（図３）に設定し（ステップＳ４０７）、画像データを送信する処理に進む（ステップＳ４０８）。中央処理装置１０２は、画像データの送信後はステップＳ４０２に戻り、再び撮影モードを取得する処理を繰り返す。
【００４５】
一方、上記取得した撮影モードが撮影操作に関するモードでない場合は、中央処理装置１０２は、ステップＳ４０１で取得した送信済み情報を解析して未送信の画像データがあるかどうかを調べる（ステップＳ４０９）。中央処理装置１０２は、未送信の画像データがある場合は、ステップＳ４０８に進み、画像データを送信する処理を行うが、未送信の画像データがない場合は、ステップＳ４０２に戻り、再び撮影モードを取得する処理を繰り返す。
【００４６】
図５は、撮像装置の画像データ送信処理の制御手順を示すフローチャートである。
【００４７】
図５において、中央処理装置１０２は、撮像装置から外部機器に送信する画像データを記憶媒体１０９から読み込み（ステップＳ５００）、図４のステップＳ４０１で読み出した送信済み情報のファイル名を調べ、この送信する画像データが初めて送信する画像データかどうかを判断する（ステップＳ５０１）。送信する画像データが初めて送信する画像データの場合は、中央処理装置１０２は、送信する画像データのファイル名を送信済み情報のファイル名の項目に設定し（ステップＳ５０２）、送信する画像データの総バイト数を送信済み情報の総バイト数の項目に設定する（ステップＳ５０３）。
【００４８】
送信する画像データが初めて送信する画像データでない場合は、中央処理装置１０２は、画像データを送信する前に再度撮影モードを検知したかどうかを調べ（ステップＳ５０４）、撮影モードを検知した場合は、画像データを送信する処理からリターンする。撮影モードを検知していない場合は、中央処理装置１０２は、画像データを一定のバイト数単位で通信Ｉ／Ｆ１１０により外部機器に送信し（ステップＳ５０５）、送信済み情報の送信済みバイト数の項目を送信済みの画像データのバイト数で更新する（ステップＳ５０６）。
【００４９】
次に、中央処理装置１０２は、送信対象の画像ファイルの全画像データの送信が行われたかどうかを判定し（ステップＳ５０７）、全画像データの送信が行われた場合は、送信済み情報の送信済みフラグの項目を”YES”で更新し（ステップＳ５０８）、画像データを送信する処理からリターンする。全画像データの送信が行われていない場合は、中央処理装置１０２は、ステップＳ５０４に戻り、撮影モードを検知したかどうかを調べる。
【００５０】
以上説明したように、本実施の形態によれば、撮像装置で撮影した画像データを外部機器に送信する場合、送信対象の画像データを一定のバッファサイズ単位で送信し、画像データを送信する度に送信済み情報を不揮発性メモリ１０４に記憶する。これにより、画像データ送信中に例えユーザが撮像装置の電源をＯＦＦにした場合でも、その後、電源をＯＮにした際に、画像データ送信を中断したところから送信が再開されるので、未送信画像データを最初から送信する必要はない。従って、ユーザの複雑な操作を介さずに、画像データの送信が中断されたところから継続して確実且つ効率良く画像データを送信することができるという効果がある。
【００５１】
また、画像データを撮影後直ちに送信するか指定枚数の撮影後直ちに送信するかを選択できるので、ユーザの撮影頻度に応じた柔軟な送信を行うことが可能となる。
【００５２】
［第２の実施の形態］
本発明の第２の実施の形態は、上述した第１の実施の形態に対して、下記の点において相違する。本実施の形態のその他の要素は、上述した第１の実施の形態（図１、図２）の対応するものと同一なので、説明を省略する。
【００５３】
上述した第１の実施の形態では、撮像装置から外部機器に対して画像データをある一定のバッファサイズ単位で送信し、画像データを送信する度に送信済み情報を不揮発性メモリ１０４に記憶する場合の例を説明した。
【００５４】
これに対し、本実施の形態は、撮像装置から外部機器（図１のＰＣ１１３）に対して画像データの１ファイル（デジタルカメラの場合は写真１枚分の画像データ）の全ての送信が完了した時点で送信済み情報を不揮発性メモリ１０４に記憶するものである。これにより、第１の実施の形態と同様の効果を得ることを可能としている。
【００５５】
次に、本実施の形態を図６及び図７を参照しながら説明する。本実施の形態は、画像データの１ファイルの送信が完了した時点で送信済み情報を不揮発性メモリ１０４に記憶する点以外は、第１の実施の形態と同じ処理を行うため、ここでは撮像装置における送信済み情報の例と制御手順のみ説明する。
【００５６】
図６は、撮像装置の送信情報生成部２０５で生成される送信済み情報の一例を示す図である。
【００５７】
図６において、６０１は送信ファイル数であり、図示の”２”は撮像装置で２枚撮影した後で外部機器に送信される画像ファイルの数であり、また２つの画像ファイルの送信が完了したら送信が停止することを意味する。
【００５８】
６０２は最初に送信される画像のファイル名であり、”IMG_001.JPG”というファイル名が設定されている。６０３は送信済みフラグあり、画像ファイル”IMG_001.JPG”の全ての画像データが送信されているので、”YES”が設定されている。
【００５９】
６０４は２番目に送信される画像のファイル名であり、”IMG_002.JPG”というファイル名が設定されている。６０５は送信済みフラグあり、画像ファイル”IMG_002.JPG”の全ての画像データがまだ送信完了となっていないので、”NO”が設定されている。
【００６０】
図７は、撮像装置の画像データ送信処理の制御手順を示すフローチャートである。
【００６１】
図７において、中央処理装置１０２は、撮像装置から外部機器に送信する画像データを記憶媒体１０９から読み込み（ステップＳ７００）、図４のステップＳ４０１で読み出した送信済み情報のファイル名を調べ、この送信する画像データが初めて送信する画像データかどうかを判断する（ステップＳ７０１）。中央処理装置１０２は、送信する画像データが初めて送信する画像データの場合のみ、送信する画像データのファイル名を送信済み情報のファイル名の項目に設定する（ステップＳ７０２）。
【００６２】
次に、中央処理装置１０２は、画像データを送信する前に再度撮影モードを検知したかどうかを調べ（ステップＳ７０３）、撮影モードを検知した場合は、画像データを送信する処理からリターンする。撮影モードを検知していない場合は、中央処理装置１０２は、画像データを一定のバイト数単位で通信Ｉ／Ｆ１１０により外部機器に送信する（ステップＳ７０４）。
【００６３】
次に、中央処理装置１０２は、送信対象の画像ファイルの全画像データの送信が行われたかどうかを判定し（ステップＳ７０５）、全画像データの送信が行われていない場合は、ステップＳ７０３に戻り、撮影モードを検知したかどうかを調べる。全画像データの送信が行われた場合は、中央処理装置１０２は、送信済み情報の送信済みフラグの項目を”YES”で更新し（ステップＳ７０６）、画像データを送信する処理からリターンする。
【００６４】
以上説明したように、本実施の形態によれば、撮像装置で撮影した画像データを外部機器に送信する場合、送信対象の画像データは一定のバッファサイズ単位で送信するが、画像データの１ファイルの送信が完了した時点で送信済み情報を不揮発性メモリ１０４に記憶する。これにより、不揮発性メモリ１０４に対する画像データ書き込みの頻度を少なくすることができる。従って、撮像装置から外部機器に対する画像データの送信速度を速くすることができるという効果がある。
【００６５】
［第３の実施の形態］
本発明の第３の実施の形態は、上述した第１の実施の形態に対して、下記の点において相違する。本実施の形態のその他の要素は、上述した第１の実施の形態（図１、図２）の対応するものと同一なので、説明を省略する。
【００６６】
上述した第１及び第２の実施の形態では、撮像装置から外部機器に対する画像データの送信を中断する要因として、撮像装置の電源ＯＦＦやユーザの撮影操作（例えばシャッタを押す操作）を例に挙げた。
【００６７】
これに対し、本実施の形態は、撮像装置が撮影した画像データを外部機器に送信中に、撮像装置が遠隔に存在する別の外部機器から通信手段通信手段（携帯電話機や無線ルータ等）を介して送信された撮影コマンドを受信し、その撮影コマンドが撮影を指示する場合にも、画像データの送信を中断するものである。
【００６８】
次に、本実施の形態を図８乃至図１０を参照しながら説明する。
【００６９】
図８は、撮像装置に対し遠隔から送信される撮影コマンドの一例を示す図である。
【００７０】
図８において、８０１のコマンドは、撮像装置のシャッタスピードを1/250secに設定することを示す。８０２のコマンドは、絞りをF8.0に設定することを示す。８０３のコマンドは、フォーカスを合わせることを示す。８０４のコマンドは、ズームをワイド側に設定することを示す。８０５のコマンドは、シャッタを押すことを示す。８０６のコマンドは、フラッシュをＯＮにすることを示す。８０７のコマンドは、電源をＯＦＦにすることを示す。
【００７１】
図９は、撮像装置の制御手順を示すフローチャートである。
【００７２】
本制御手順を示すプログラムコードは、撮像装置が撮影した画像データを外部機器（図１のＰＣ１１３）に送信中に、撮像装置が遠隔に存在する別の外部機器（図１では不図示）から撮影コマンドを受信し、その撮影コマンドが撮影を指示するものであった場合には画像データの送信を中断し、その後、画像データ送信を再開する場合は、画像データを送信する度に不揮発性メモリ１０４に記憶していた送信済み情報を基に、画像データの送信を中断したところから送信を再開するまでの制御手順に対応する。
【００７３】
図９において、撮像装置の電源がＯＮになると（ステップＳ９００）、中央処理装置１０２は、送信情報読み書き部２０６を用いて不揮発性メモリ１０４に格納されている送信済み情報を読み出し（ステップＳ９０１）、次に遠隔の外部機器から送信された撮影コマンドを取得する（ステップＳ９０２）。中央処理装置１０２は、取得した撮影コマンドが撮像装置を電源ＯＦＦにすることを示すコマンドかどうかを調べ（ステップＳ９０３）、取得した撮影コマンドが電源ＯＦＦコマンドの場合は、このまま本処理を終了する。
【００７４】
取得した撮影コマンドが電源ＯＦＦコマンドでない場合は、中央処理装置１０２は、取得した撮影コマンドが撮影操作に関するコマンドかどうかを調べる（ステップＳ９０４）。取得した撮影コマンドが撮影操作に関するコマンドの場合は、中央処理装置１０２は、撮像部１０５により撮影を実行し（ステップＳ９０５）、次に撮影した枚数が送信枚数に達したかどうかを調べる（ステップＳ９０６）。撮影した枚数が送信枚数に達していない場合は、中央処理装置１０２は、ステップＳ９０２に戻り、再び撮影コマンドを取得する処理を繰り返す。
【００７５】
撮影した枚数が送信枚数に達した場合は、中央処理装置１０２は、撮像装置から外部機器に送信する画像データのファイル数を送信済み情報の送信ファイル数の項目に設定し（ステップＳ９０７）、画像データを送信する処理に進む（ステップＳ９０８）。中央処理装置１０２は、画像データの送信後はステップＳ９０２に戻り、再び撮影コマンドを取得する処理を繰り返す。
【００７６】
一方、上記取得した撮影コマンドが撮影操作に関するコマンドでない場合は、中央処理装置１０２は、ステップＳ９０１で取得した送信済み情報を解析して未送信の画像データがあるかどうかを調べる（ステップＳ９０９）。中央処理装置１０２は、未送信の画像データがある場合は、ステップＳ９０８に進み、画像データを送信する処理を行うが、未送信の画像データがない場合は、ステップＳ９０２に戻り、再び撮影コマンドを取得する処理を繰り返す。
【００７７】
図１０は、撮像装置の画像データ送信処理の制御手順を示すフローチャートである。
【００７８】
図１０において、中央処理装置１０２は、撮像装置から外部機器に送信する画像データを記憶媒体１０９から読み込み（ステップＳ１０００）、図９のステップＳ９０１で読み出した送信済み情報のファイル名を調べ、この送信する画像データが初めて送信する画像データかどうかを判断する（ステップＳ１００１）。送信する画像データが初めて送信する画像データの場合は、中央処理装置１０２は、送信する画像データのファイル名を送信済み情報のファイル名の項目に設定し（ステップＳ１００２）、送信する画像データの総バイト数を送信済み情報の総バイト数の項目に設定する（ステップＳ１００３）。
【００７９】
送信する画像データが初めて送信する画像データでない場合は、中央処理装置１０２は、画像データを送信する前に再度撮影コマンドを受信したかどうかを調べ（ステップＳ１００４）、撮影コマンドを受信した場合は、画像データを送信する処理からリターンする。撮影コマンドを受信していない場合は、中央処理装置１０２は、画像データを一定のバイト数単位で通信Ｉ／Ｆ１１０により外部機器に送信し（ステップＳ１００５）、送信済み情報の送信済みバイト数の項目を送信済みの画像データのバイト数で更新する（ステップＳ１００６）。
【００８０】
次に、中央処理装置１０２は、送信対象の画像ファイルの全画像データの送信が行われたかどうかを判定し（ステップＳ１００７）、全画像データの送信が行われた場合は、送信済み情報の送信済みフラグの項目を”YES”で更新し（ステップＳ１００８）、画像データを送信する処理からリターンする。全画像データの送信が行われていない場合は、中央処理装置１０２は、ステップＳ１００４に戻り、撮影コマンドを受信したかどうか調べる。
【００８１】
以上説明したように、本実施の形態によれば、撮像装置から画像データを外部機器に送信する場合、送信対象の画像データを一定のバッファサイズ単位で送信し、画像データを送信する度に送信済み情報を不揮発性メモリ１０４に記憶する。これにより、撮像装置が遠隔の別の外部機器から撮影コマンドを受信し、該撮影コマンドが撮影を指示する場合にも、送信済み情報を不揮発性メモリ１０４に記憶してあるため、画像データの送信を中断することができる。従って、ユーザの直接的な撮影操作に対してだけでなく、撮像装置外部からの撮影指示などの多様な要求にも応えることができるという効果がある。
【００８２】
［第４の実施の形態］
図１２は、本発明の第４の実施の形態に係る画像送信装置としてのデジタルカメラと画像受信装置としてのサーバからなるクライアントサーバシステムの概略構成を示す図である。
【００８３】
図１２において、クライアントサーバシステムは、画像送信クライアントであるデジタルカメラ１１０１と、画像受信サーバであるサーバ１１０２から構成されている。デジタルカメラ１１０１とサーバ１１０２との間は、ネットワークを介して通信可能に接続されており、通信方式は有線通信または無線通信の何れでもよい。
【００８４】
本構成はデジタルカメラ１１０１とサーバ１１０２の仮想的な接続を意味しており、ネットワークを介して直接接続されていることを意味するものではない。従って、デジタルカメラ１１０１とサーバ１１０２は、他の機器或いはインターネット等の他のネットワークを介して接続されている可能性はある。本実施の形態では、デジタルカメラ１１０１からサーバ１１０２に向けて撮影画像が送信される。
【００８５】
図１３は、デジタルカメラ１１０１の内部構成を示すブロック図である。
【００８６】
図１３において、デジタルカメラ１１０１は、中央制御装置（以下ＣＰＵと称す）１２０１、ＲＯＭ１２０２、ＲＡＭ１２０３、タイマ１２０４、ディスプレイ１２０５、マイク１２０６、スピーカ１２０７、各種操作ボタン１２０８、フラッシュＲＯＭ１２０９、ネットワークインタフェース（Ｉ／Ｆ）１２１０、電荷結合素子（以下ＣＣＤと称す）１２１１、撮影モード・再生モード切替スイッチ１２１２、電源ボタン１２１３、バッテリ１２１４を備えており、相互にバスあるいは電源ラインで接続されている。
【００８７】
ＣＰＵ１２０１は、デジタルカメラ全体の制御を司るものであり、動作プログラムに基づき図１６、図１７、図２２、図２４、図２５、図２９、図３１のフローチャートに示す処理を実行する。ＲＯＭ１２０２には、各種動作プログラムが読み出し可能に格納されている。ＲＡＭ１２０３は、プログラム動作中の一時的な値の保存に用いる。タイマ１２０４は、各種時間を計測する。ディスプレイ１２０５は、各種設定メニュー及び画像を表示する。マイク１２０６は、音声録音に用いる。スピーカ１２０７は、音声出力を行う。各種操作ボタン１２０８は、デジタルカメラ１１０１の各種操作に用いる。
【００８８】
フラッシュＲＯＭ１２０９は、デジタルカメラ１１０１で撮影した画像ファイルや各種設定データファイルを保存しておく不揮発性メモリである。ネットワークＩ／Ｆ１２１０は、デジタルカメラ１１０１の外部と接続する際のインタフェースを司る。ＣＣＤ１２１１は、不図示のレンズを通して集めた光を電気信号に変換する。撮影モード・再生モード切替スイッチ１２１２は、撮影モードと再生モードの切り替えに用いる。電源ボタン１２１３は、電源のオン／オフに用いる。バッテリ１２１４は、各部に電源を供給する。
【００８９】
尚、デジタルカメラ１１０１は、撮影するのに不可欠なシャッタやレンズも備えているが、それらについては図示を省略する。また、フラッシュＲＯＭ１２０９は、デジタルカメラ１１０１に内蔵されていてもよいし、外部から着脱可能なメモリカード上に搭載されているものでもよい。また、デジタルカメラ１１０１が撮影した画像ファイルの格納場所はフラッシュＲＯＭ１２０９の他、ＲＡＭ１２０３でもよいし、または図示しないがハードディスク等の記憶媒体でもよい。以後の例では、画像ファイルの代表的な格納場所として、フラッシュＲＯＭ１２０９についてのみ言及する。
【００９０】
図１４は、サーバ１１０２の内部構成を示すブロック図である。
【００９１】
図１４において、サーバ１１０２は、一般的なコンピュータと同様な構成をとっており、中央制御装置（以下ＣＰＵと称す）１７０１、ＲＯＭ１７０２、ＲＡＭ１７０３、タイマ１７０４、ディスプレイ１７０５、ハードディスクドライブ（以下ＨＤＤと称す）１７０６、ネットワークＩ／Ｆ１７０７を備えている。
【００９２】
ＣＰＵ１７０１は、サーバ全体の制御を司るものであり、動作プログラムに基づき図１８、図１９、図２３、図２６、図２７、図３２のフローチャートに示す処理を実行する。ＲＯＭ１７０２には、各種動作プログラムが読み出し可能に格納されている。ＲＡＭ１７０３は、プログラム動作中の一時的な値の保存に用いる。タイマ１７０４は、各種時間を計測する。ディスプレイ１７０５は、各種設定メニュー及び画像を表示する。ＨＤＤ１７０６は、デジタルカメラ１１０１から送信される画像ファイルを含む各種データやプログラムを格納する。ネットワークＩ／Ｆ１７０７は、外部と接続する際のインタフェースを司る。
【００９３】
次に、デジタルカメラ１１０１とサーバ１１０２の間の画像送信手順及び画像受信手順について、図１５のシーケンス図、図１６・図１７のフローチャート、及び図１８・図１９のフローチャートを参照しながら説明する。
【００９４】
図１５は、デジタルカメラ１１０１とサーバ１１０２の間の画像通信シーケンス（両者間のメッセージの流れ）を示す図、図１６・図１７は、デジタルカメラ１１０１の画像送信手順を示すフローチャート、図１８・図１９は、サーバ１１０２の画像受信手順を示すフローチャートである。
【００９５】
図１５の画像通信シーケンスを実行するに先立ち、デジタルカメラ１１０１のユーザは既に何枚かの写真を撮影し、撮影した画像をフラッシュＲＯＭ１２０９に保存しているものとする。デジタルカメラ１１０１が採用している撮影画像の記録方式は、社団法人日本電子工業振興協会（ＪＥＩＤＡ）が定めたカメラファイルシステム規格（Design rule for Camera File System：略称ＤＣＦ）バージョン１．０に適合しているものとする。
【００９６】
また、フラッシュＲＯＭ１２０９に保存されている画像ファイルのフォーマットはＪＰＥＧ（Joint Photographic Experts Group）とする。尚、本発明はＪＰＥＧファイルのみの適用に限定されるものではなく、ＲＡＷ画像ファイルフォーマット等の別のフォーマットにも問題なく適用することが可能である。また、デジタルカメラ１１０１は再生モードにあるものとする。
【００９７】
図１５〜図１９において、まず、デジタルカメラ１１０１のユーザは、ディスプレイ１２０５に表示される不図示のメニューから画像送信機能を選択する（ステップＳ１００１）。次に、ユーザは、既に撮影済みの画像ファイルの中から、サーバ１１０２に送信する画像ファイルを１乃至複数個選択する（ステップＳ１００２）。ＣＰＵ１２０１は、選択された画像ファイルのパス名から、その画像ファイルのサーバ１１０２における格納位置を決定する（ステップＳ１００３）。画像ファイルの格納位置の決定は例えば以下のように行われる。
【００９８】
その１：フラッシュＲＯＭ１２０９上のルートディレクトリ直下に、img_0001.jpg、img_0002.jpg、img_0003.jpgが存在するなら、これらにデフォルトの画像格納ディレクトリ/picturesをそれぞれ加え、/pictures/img_0001.jpg, /pictures/img_0002.jpg, /pictures/img_0003.jpgとする。
【００９９】
更に、サーバ１１０２がHTTP（Hiper Text Transfer Protocol）サーバを兼ねており、そのドキュメントルートがhttp://xyz.jp/でアクセスされるという条件のもとで、これらの画像ファイルがURL(Uniform Resource Locator)で指定されるように（サーバ１１０２においてそのURLで画像が取得されるように）するなら、これらの画像ファイルの格納位置は、http://xyz.jp/pictures/img_0001.jpg, http://xyz.jp/pictures/img_0002.jpg, http://xyz.jp/pictures/img_0003.jpgとなる。これについては、以下同様なので省略する。
【０１００】
その２：その１と同条件において、ＲＡＭ１２０３に記憶されたデジタルカメラ１１０１の所有者名（ユーザの名前）を追加する。所有者名をokadaとすると、/~okada/img_0001.jpg, /~okada/img_0002.jpg, /~okada/img_0003.jpgとなる。
【０１０１】
その３：その１と同条件で、しかも上記３つの画像ファイルが２００３年１２月３１日に撮影されたとして、撮影日付をディレクトリ名に加える。/2003_12_31/img_0001.jpg, /2003_12_31/img_0002.jpg, /2003_12_31/img_0003.jpgとなる。
【０１０２】
あるいは、これらの組み合わせでもよい。３つを組み合わせた場合は、例えば/~okada/pictures/2003_12_31/img_0001.jpgとなる。複数の画像ファイルが全て同じディレクトリに存在していなければならないということはない。
【０１０３】
その４：フラッシュＲＯＭ１２０９上のルートディレクトリ直下に、/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とする。
【０１０４】
その５：フラッシュＲＯＭ１２０９上のルートディレクトリ直下に、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とする。
【０１０５】
以上のように、画像ファイルのサーバ１１０２における格納位置は自由に決定することができる。但し、ここでは、決定された格納位置から、元のフラッシュＲＯＭ１２０９上の画像ファイルのパスを復元できるようにしている。例えば、決定された格納位置を示すパスの最後の要素であるファイル名がimg_0001.jpgならば、フラッシュＲＯＭ１２０９上のimg_0001.jpgのことであると特定できる。もう一つの例で言えば、決定された格納位置を示すパスの最後のファイル名と、その上のディレクトリ名が/100/img_1001.jpgであれば、フラッシュＲＯＭ１２０９上の/100/img_1001.jpgのことであると特定できる。
【０１０６】
ここの例では、ディレクトリ名、ファイル名とも変更していないが、画像ファイルのプレフィクスは"img_"であり、不変であるというなら、ファイル名の数字下４けたを残して変更しても良い。
【０１０７】
画像ファイルのパスを復元できるようになっている理由は、後述するが、デジタルカメラ１１０１がサーバ１１０２から受信未完画像ファイルの情報を受信したとき、受信未完画像ファイルの情報には、その画像ファイルのサーバ１１０２における格納位置が含まれるので、デジタルカメラ１１０１がサーバ１１０２にその画像ファイルの送信を再開するためには、画像ファイルの格納位置から、元のフラッシュＲＯＭ１２０９上の画像ファイルのパスを復元できなければならないからである。
【０１０８】
もっとも、デジタルカメラ１１０１がフラッシュＲＯＭ１２０９上の画像ファイルのパスと画像ファイルの格納位置との対応関係を示す対応テーブルを有するなら、上記のような制限なく、どのような格納位置に決定してもよいことになる。
【０１０９】
また、画像ファイルの格納位置は必ずデジタルカメラ１１０１が決定しなければならないということはない。サーバ１１０２がデジタルカメラ１１０１から受け取った画像ファイルの格納位置をサーバ１１０２側で決定し、デジタルカメラ１１０１は単にファイル名を指定してくれればよいというのであれば、デジタルカメラ１１０１側ではimg_0001.jpg, img_0002.jpg, img_0003.jpgと指定することもあり得る。
【０１１０】
次に、デジタルカメラ１１０１のユーザは、接続先のサーバ１１０２を予め入力しておいた接続先候補の中から選択する（ステップＳ１００４）。勿論、そのサーバ１１０２への接続が初めてなら、ここでアドレスを入力しても良い。
【０１１１】
ここからは、デジタルカメラ１１０１とサーバ１１０２のお互いが使用する通信の環境とプロトコルに従って実際の通信が行われる。本発明は特別なプロトコルに限定されるものではないが、例えば、一般的なTCP/IP（Transmission Control Protocol/Internet Protocol）プロトコルが用いられる。
【０１１２】
図１５に示す画像通信シーケンスはステートを有するシーケンスであり、TCP/IPプロトコルの上位プロトコルとしては、独自のプロトコルを使用しても良いが、標準技術をできるだけ使うのであれば、１つ１つのメッセージはステートレスなプロトコル、例えばHTTPを使用することが可能である。そのようにすれば、サーバ１１０２ではWebアプリケーションを作ることで、本発明の実現が可能になる。とにかく、どのようなプロトコルを用いるとしても、デジタルカメラ１１０１とサーバ１１０２の間でやり取りされるデータを本実施の形態ではメッセージと呼ぶことにする。
【０１１３】
図１５に示すように最初のメッセージである送信要求（１３０１）がデジタルカメラ１１０１からサーバ１１０２に送られる（ステップＳ１００５）。サーバ１１０２のＣＰＵ１７０１は、この送信要求（１３０１）を受け付ける（ステップＳ１４０１）。ＣＰＵ１７０１は、他の接続状況や、各種リソースの逼迫の具合、ＣＰＵの負荷を見ながら、送信の要求を受け付けてもよいと判断したら、送信許可（１３０２）メッセージをデジタルカメラ１１０１に送信する（ステップＳ１４０２）。
【０１１４】
デジタルカメラ１１０１のＣＰＵ１２０１は、送信許可（１３０２）メッセージを受け付ける（ステップＳ１００６）。送信が許可されたＣＰＵ１２０１は、カメラＩＤ（１３０３）、送信しようとしている画像ファイルの格納場所（１３０４）、及び送信ファイルリスト（１３０５）をサーバ１１０２に送信する（ステップＳ１００７）。
【０１１５】
ここで、カメラＩＤ（３０３）としては、デジタルカメラ１１０１の製造シリアル番号を用いることが考えられる。但し、様々なメーカのデジタルカメラをサポートするのであれば、製造シリアル番号だけでは重複しないとも限らないので、メーカ名＋カメラ型名＋製造シリアル番号のような形式を使っても良い。
【０１１６】
画像ファイルの格納場所（１３０４）としては、上記ステップＳ１００３で決定した各画像ファイルの格納位置に共通部分があれば、それを指定する。例えば、img_0001.jpgの格納位置をhttp://xyz.jp/pictures/img_0001.jpgなどとしたのであれば、"http://xyz.jp/pictures/"を格納場所（１３０４）とする。
【０１１７】
送信ファイルリスト（１３０５）としては、各々の画像ファイルの格納位置の上記格納場所（１３０４）からの相対パスをリストで指定する。例えば、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となる。
【０１１８】
一方、サーバ１１０２のＣＰＵ１７０１は、デジタルカメラ１１０１からカメラＩＤ（１３０３）、格納場所（１３０４）、及び送信ファイルリスト（１３０５）を受信する（ステップＳ１４０３）。これに伴い、ＣＰＵ１７０１は、これから開始しようとしている通信セッションを識別するためのセッションＩＤ（１３０６）を生成する（ステップＳ１４０４）。セッションＩＤ（１３０６）は通信セッションを識別できるものであればどのようなものでもよい。
【０１１９】
次に、ＣＰＵ１７０１は、このセッションＩＤ（１３０６）、カメラＩＤ（１３０３）、格納場所（１３０４）、及び送信ファイルリスト（１３０５）を関連付けて、ＲＡＭ１７０３に記憶する（ステップＳ１４０５）。
【０１２０】
図２０にサーバ１１０２のＲＡＭ１７０３に記憶される関連付けテーブルの例を示す。１５０１は、セッションＩＤ（１３０６）、カメラＩＤ（１３０３）、格納場所（１３０４）、及び送信ファイルリスト（１３０５）中の各画像ファイルの情報のエントリを指すポインタの関連付けを示すセッションＩＤテーブルである。セッションＩＤテーブル１５０１には、便宜上、１つのエントリしか書かれていないが、当然、複数のエントリを持つことができ、同時に複数のセッションについて処理することができる。
【０１２１】
１５０２は、送信ファイルリスト中の各画像ファイルの情報のエントリを示すファイル情報エントリであり、相対パス、ファイル長、受信済みバイト数、受信終了フラグから構成されている。図２０は、上記で説明した格納場所（１３０４）と送信ファイルリスト（１３０５）の相対パスが格納されている様子を示している。
【０１２２】
図２１もセッションＩＤテーブル１５０１とファイル情報エントリ１５０２の例を示すものであるが、サーバ１１０２が異なる格納場所（１３０４）と送信ファイルリスト（１３０５）をデジタルカメラ１１０１から受信した場合の例を示している。この場合は、格納場所（１３０４）を示す情報はなく、送信ファイルリスト（１３０５）として、各画像ファイルがURLで指定されている。画像ファイルをこのように指定することも可能である。
【０１２３】
画像ファイルは必ずURLで指定しなければならないというものではない。例えば、上記においてデジタルカメラ１１０１で画像ファイルの格納位置を考えたときのように、サーバ１１０２で画像ファイルの格納位置を決定するために、デジタルカメラ１１０１が指定する格納位置を単にimg_0001.jpg, img_0002.jpg, img_0003.jpgとしたとすると、これをそのまま送信ファイルリストとしてもよい。また、図２０と図２１では送信ファイルリスト（１３０５）の各画像ファイルの情報を相対パスとURLと分けたが、実際は区別する必要はなく、どちらかの情報が入っていれば良い。
【０１２４】
さて、サーバ１１０２のＣＰＵ１７０１は、セッションＩＤ（１３０６）をデジタルカメラ１１０１に送信する（ステップＳ１４０６）。デジタルカメラ１１０１では、ＣＰＵ１２０１がサーバ１１０２からセッションＩＤ（１３０６）を受信し（ステップＳ１００８）、このセッションＩＤ（１３０６）と、接続先サーバであるサーバ１１０２のアドレス（必要であればポート番号も）を、フラッシュＲＯＭ１２０９に保存する(ステップＳ１００９)。この場合、画像送信機能が読み出せる形式で保存しておけばよい。
【０１２５】
そしていよいよ、デジタルカメラ１１０１では各画像ファイルの送信処理に入る。デジタルカメラ１１０１のＣＰＵ１２０１は、処理すべき次の画像ファイルを選択する（ステップＳ１０１０）。１回目にステップＳ１０１０の処理を行うときは、最初の画像ファイルが選択されることになる。次に、ＣＰＵ１２０１は、選択した画像ファイルに関するファイル情報（１３０７）をサーバ１１０２に送信する（ステップＳ１０１１）。画像ファイルの情報とは、送信ファイルリストの中で、これから送ろうとしている画像ファイルはどの画像ファイルかを示す画像ファイルの名前（必要に応じて相対パスやURLを使えばよい）、及び画像ファイルのバイト長である。
【０１２６】
サーバ１１０２のＣＰＵ１７０１は、このファイル情報（１３０７）を受信すると（ステップＳ１４０７）、画像ファイルの名前からファイル情報エントリを特定し、そのファイル情報エントリに、受信した画像ファイルのバイト長を書き込む。通信エラーが発生しなければ（ステップＳ１４０８でＮ）、ＣＰＵ１７０１は、ＯＫ（１３０８）メッセージをデジタルカメラ１１０１に送信する（ステップＳ１４０９）。この送信にエラーが発生しなければ（ステップＳ１４１０でＮ）、ＣＰＵ１７０１は、デジタルカメラ１１０１からの画像ファイルの受信を待つ。
【０１２７】
デジタルカメラ１１０１のＣＰＵ１２０１は、ファイル情報送信（ステップＳ１０１１）の際、通信エラーが起こらなければ（ステップＳ１０１２でＮ）、サーバ１１０２からＯＫ（１３０８）メッセージを受信する（ステップＳ１０１３）。ＯＫ（１３０８）メッセージを受信時にエラーがなければ（ステップＳ１０１４でＮ）、次にＣＰＵ１２０１は、画像ファイルそのもの（１３０９）をサーバ１１０２に送信する（ステップＳ１０１５）。この画像ファイル送信にエラーが発生しなければ（ステップＳ１０１６でＮ）、ＣＰＵ１２０１は、ＯＫ（１３１０）メッセージの受信を待つ。
【０１２８】
サーバ１１０２のＣＰＵ１７０１は、デジタルカメラ１０１１から画像ファイルを受信する（ステップＳ１４１１）。ＣＰＵ１７０１は、画像ファイルを受信している間、受信に成功した画像ファイルのバイト数に従って（画像ファイル受信の進捗に応じて）、ファイル情報エントリ１５０２の受信済みバイト数を更新しておく。通信エラーが発生しなければ（ステップＳ１４１２でＮ）、ＣＰＵ１７０１は、ＯＫ（１３１０）メッセージをデジタルカメラ１１０１に送信する（ステップＳ１４１３）。
【０１２９】
次に、ＣＰＵ１７０１は、ＯＫ（１３１０）メッセージの送信にエラーが発生しなかったかどうかをチェックし（ステップＳ１４１４）、エラーが発生しなければ、デジタルカメラ１１０１から受信が終了した画像ファイルについて、ファイル情報エントリ１５０２の受信終了フラグを「終了」にしておく（ステップＳ１４１５）。
【０１３０】
次に、ＣＰＵ１７０１は、受信が終了した画像ファイルをＨＤＤ１７０６における指定された格納位置に置く（ステップＳ１４１６）。処理中の画像ファイルの格納場所がhttp://xyz.jp/pictures/、相対パスが100/img_1001.jpgの場合は、http://xyz.jp/pictures/100/img_1001.jpgとして外部からアクセス可能な格納位置に置かれる。当然、サーバ１１０２は、URLがhttpで始まる場合はサーバ１１０２上で動作するHTTPサーバの、URLがftpで始まる場合はFTPサーバの（その他のサーバも同様である）、ドキュメントルートやエイリアス情報を知っており、それらのURLから画像ファイルを置くべきファイルシステム上の位置を特定できるものとする。
【０１３１】
もしくは、少なくとも、画像ファイルを置くURLに関しては、ファイルシステム上の位置を特定できるものとする。勿論、画像ファイルの格納場所や相対パスの指定が独自の形式に従っており、サーバ１１０２がそれからファイルシステム上の格納位置を決定してもよい。
【０１３２】
上述したように、送信ファイルリストが単にファイル名の形式で、img_0001.jpgとなっていた場合は、所定の方法（デジタルカメラ１１０１で格納位置を決定する個所で述べたように、特定のディレクトリに置く、デジタルカメラのユーザ名を使用する、画像ファイルの日付情報を使用する等、様々な方法が考えられる）でファイルシステム上の格納位置を決定し、そこに画像ファイルを置く。
【０１３３】
最後に、ＣＰＵ１７０１は、送信ファイルリスト中の全画像ファイルについて受信終了フラグが「終了」になったかどうかを調べ（ステップＳ１４１７）、受信終了フラグが「終了」になっていれば、受信手順を終了する。ＣＰＵ１７０１は、受信終了フラグが「終了」になっていなければ、ステップＳ１４０７に戻り、残っている画像ファイルのファイル情報を受信する。
【０１３４】
デジタルカメラ１１０１のＣＰＵ１２０１は、ＯＫ（１３１０）メッセージを受信すると（ステップＳ１０１７）、その受信にエラーがない場合は（ステップＳ１０１８でＮ）、送信ファイルリストの中で、もう処理すべき画像ファイルはないかどうかを調べ（ステップＳ１０１９）、処理すべき画像ファイルがあれば、ステップＳ１０１０に戻り、次の画像ファイルを処理する。ＣＰＵ１２０１は、処理すべき画像ファイルがなければ、最後にフラッシュＲＯＭ１２０９に記憶していたセッションＩＤと接続先サーバのアドレスを削除して（ステップＳ１０２０）、送信手順を終了する。
【０１３５】
尚、上記ステップＳ１０２０の処理が必要なのは、セッションＩＤと接続先サーバのアドレスを残しておくと、後述するように送信再開手順と間違えてしまうからである。
【０１３６】
次に、上述した画像ファイルの送信が中断される場合の手順について、図１５のシーケンス図、図２２のフローチャート、及び図２３のフローチャートを参照しながら説明する。
【０１３７】
図２２は、デジタルカメラ１０１１の送信中断手順１を示すフローチャート、図２３は、サーバ１１０２の受信中断手順を示すフローチャートである。
【０１３８】
図１５、図２２、図２３において、デジタルカメラ１１０１がサーバ１１０２に対して上記で述べた画像ファイルの送信を行っている間に（再生モードであったときに）、例えば、ユーザが急に撮影しようとして撮影モード・再生モード切替スイッチ２１２により撮影モードに切り替え、撮影モードに入ったとする（ステップＳ１５０１）。
【０１３９】
撮影モードでは、当然のことながら、シャッタの制御、ズームの制御、ＣＣＤ１２１１の読み出し、ディスプレイ１２０５へのプレビュー表示等、様々なリアルタイム処理を行わなければならない。まして、シャッタが切られれば、ＣＣＤ１２１１の読み出し、画像処理、JPEGエンコード化、フラッシュＲＯＭ１２０９への記録等の処理も重なり、優先すべき処理が数多くある。撮影以外の機能を実行するために、撮影のレスポンスが悪くなったのでは本末転倒である。画像ファイル送信のような後回しできる処理は、できるだけ後回しした方が望ましい。そこで、撮影モードに入った時は、一旦、画像ファイル送信を中断する。
【０１４０】
デジタルカメラ１１０１のＣＰＵ１２０１は、送信中断要求（１３１２）メッセージをサーバ１１０２に送る（ステップＳ１５０２）。サーバ１１０２のＣＰＵ１７０１は、このメッセージを受け付け（ステップＳ１６０１）、送信中断に必要な処理を行う。例えば、サーバ１１０２において現在の画像ファイル受信処理数を管理しているなら、これを１つ減らすことが考えられる。サーバ１１０２がリソース管理を行っており、同時に画像ファイル受信処理を受け付ける数を制限しているなら、この１つ減らすという操作によって、他のデジタルカメラ１１０１からの画像ファイル送信を受け付けるというようにすることもできる。
【０１４１】
他には、タイマ１７０４を用いて、画像ファイルの送信中断時刻を計測する中断タイマを開始するということも考えられる。中断タイマがタイムアウト（送信中断時刻の到来）した後は、受信途中の画像ファイルと未受信の画像ファイルについては受信中止となり、セッションが破棄される。該当するセッションＩＤテーブル１５０１及びファイル情報エントリ１５０２はクリアされる。従って、そのセッションＩＤを用いて画像ファイル送信を再開しようとしても、再開不可となる。
【０１４２】
次に、サーバ１１０２のＣＰＵ１７０１は、ＯＫ（１３１３）メッセージをデジタルカメラ１１０１に送信する（ステップＳ１６０２）。デジタルカメラ１１０１のＣＰＵ１２０１は、メッセージを受信して（ステップＳ１５０３）、送信中断手順を終了する。
【０１４３】
ところで、図２２のフローチャートに示したシーケンスは、デジタルカメラ１１０１で撮影モードに入るという事象が発生したときに実行される。つまり、デジタルカメラ１１０１の動作プログラムにとっては割り込み処理のような扱いである。デジタルカメラ１１０１で図１６・図１７の送信手順が実行されている間に図２２のシーケンスが実行されることが当然あり得る。
【０１４４】
デジタルカメラ１１０１で画像ファイル送信中に撮影モードに入るという事象が発生した場合、デジタルカメラ１１０１とサーバ１１０２の間で何らかのデータを送受信中の場合は、送受信を即座に中止する。一例として、ソケットインタフェースを用いてTCP/IP通信を行っている場合は、ソケットを即座にクローズする。これにより、送受信処理がエラーとなる。また、何らかのデータを送受信中でなくとも、通信エラーが発生したのと同様な状態にしておく。
【０１４５】
これらの処理により、デジタルカメラ１１０１側の図１７のステップＳ１０１２、ステップＳ１０１４、ステップＳ１０１６、あるいはステップＳ１０１８において、エラーとなり、以降の画像ファイル送信処理が停止される。サーバ１１０２側にとっても、デジタルカメラ１１０１で画像ファイル送信処理が停止されるので、画像ファイル受信処理が停止される。
【０１４６】
次に、デジタルカメラ１１０１からサーバ１１０２に画像ファイルの送信を再開する時の手順について、図１５のシーケンス図、図２４・図２５のフローチャート、及び図２６・図２７のフローチャートを参照しながら説明する。
【０１４７】
図２４・図２５は、デジタルカメラ１１０１の送信再開手順１を示すフローチャート、図２６・図２７は、サーバ１１０２の受信再開手順１を示すフローチャートである。
【０１４８】
デジタルカメラ１１０１で撮影モードに入った後、撮影が終了し、またユーザが撮影モード・再生モード切替スイッチ１２１２を操作して再生モードに戻ったとする。デジタルカメラ１１０１の再生モードでは、サーバ１１０２に画像ファイル送信を行う余裕があるので、画像ファイル送信を再開する。
【０１４９】
画像ファイル送信を再開する他の機会としては、撮影モードのまま何も操作しないでタイムアウトした場合が考えられる。通常、このような場合は、電源を節約するために電源が切れるが、本実施の形態のデジタルカメラ１１０１では、画像ファイルの送信中断状態であった場合、再生モードに戻って画像ファイル送信を再開するようになっている。以下の手順では、ユーザが撮影モード・再生モード切替スイッチ１２１２を操作して再生モードに戻った場合を考える。
【０１５０】
図１５、図２４〜図２７において、まず、デジタルカメラ１１０１のユーザが撮影モード・再生モード切替スイッチ１２１２を操作して再生モードに入る（ステップＳ１７０１）。これに伴い、デジタルカメラ１１０１のＣＰＵ１２０１は、フラッシュＲＯＭ１２０９上にセッションＩＤが保存されているかどうかを調べる（ステップＳ１７０２）。図１６のステップＳ１００９で保存されるはずのセッションＩＤが存在するかどうかを調べるわけである。
【０１５１】
セッションＩＤが存在しない理由としては、画像ファイルの送信中断の間にフラッシュＲＯＭ１２０９が交換されたことが考えられる。撮影モードが続いている間にフラッシュＲＯＭ１２０９が交換されることはないかも知れないが、撮影モードから一旦電源がオフされてフラッシュＲＯＭ１２０９が交換されるというのはあり得る。
【０１５２】
フラッシュＲＯＭ１２０９が交換された場合は、当然、記録されている画像ファイルの内容が異なるので、例え送信ファイルリストの中の送信しようとする画像ファイルの名前が一致するとしても、その画像ファイルを送信するわけにはいかない。フラッシュＲＯＭ１２０９上のセッションＩＤの存在を確認するのは、そのような間違いを防止するのに役立つ。
【０１５３】
さて、デジタルカメラ１１０２のＣＰＵ１２０１は、フラッシュＲＯＭ１２０９上にセッションＩＤが残っていない場合は、画像ファイルの送信再開処理を行わず、送信再開手順を終了する。ＣＰＵ１２０１は、フラッシュＲＯＭ１２０９上にセッションＩＤが残っていた場合は、図１６のステップＳ１００９で同時に保存された接続先サーバのアドレスを読み出す（ステップＳ１７０３）。そして、ＣＰＵ１２０１は、送信再開要求（１３１４）メッセージと、送信を再開するセッションのセッションＩＤ（１３１５）をサーバ１１０２に送信する（ステップＳ１７０４）。
【０１５４】
一方、サーバ１１０２のＣＰＵ１７０１は、デジタルカメラ１１０１から送信再開要求（１３１４）メッセージと、送信を再開するセッションのセッションＩＤ（１３１５）を受信する（ステップＳ１８０１）。これに伴い、ＣＰＵ１７０１は、セッションＩＤテーブル１５０１とファイル情報エントリ１５０２を調べて、まだ受信が終了していない画像ファイルを抽出し、受信未完ファイルリスト（１３１６）として構成し、デジタルカメラ１１０１に送信する（ステップＳ１８０２）。
【０１５５】
受信未完ファイルリスト（１３１６）のデータの形式は、送信ファイルリスト（１３０５）で指定したものと同様になっている。図２０の例で言えば、100/img_1001.jpgのみが受信終了していた場合、受信未完ファイルリスト（１３１６）には、200/img_2001.jpg, 300/img_3001.jpgが含まれる。尚、受信未完ファイルリスト（１３１６）は、ファイル名（もしくはパスの一部）だけでなく、その画像ファイルに関する受信済みバイト数を含んでいても良い。
【０１５６】
デジタルカメラ１１０１のＣＰＵ１２０１は、受信未完ファイルリスト（１３１６）を受信する（ステップＳ１７０５）。そして、ＣＰＵ１２０１は、この受信未完ファイルリストで指定された画像ファイルを順次、サーバ１１０２に送信する。ここから先のステップＳ１７０６〜ステップＳ１７１６は、図１６・図１７の送信手順におけるステップＳ１０１０〜ステップＳ１０２０と同様である。
【０１５７】
尚、上述したように、受信未完ファイルリスト（１３１６）が画像ファイルに関する受信済みバイト数を含んでいる場合は、画像ファイルを先頭から送信するのではなく、受信済みバイト数をスキップして、次のバイト位置から送信するようにする。このようにすれば、送信量、送信時間が少なくて済む。
【０１５８】
サーバ１１０２においてデジタルカメラ１１０１から画像ファイルを順次受信するステップＳ１８０３〜ステップＳ１８１３は、図１８・図１９の受信手順におけるステップＳ１４０７〜ステップＳ１４１７と同様である。
【０１５９】
次に、デジタルカメラ１１０１で画像ファイルの送信手順実行中に電源がオフされ、画像ファイルの送信が中断される手順について、図２８のシーケンス図及び図２９のフローチャートを参照しながら説明する。
【０１６０】
図２８は、デジタルカメラ１１０１とサーバ１１０２の間の画像通信シーケンスを示す図、図２９は、デジタルカメラ１１０１の送信中断手順２を示すフローチャートである。
【０１６１】
デジタルカメラ１１０１で画像ファイルの送信中に撮影モードに入った時と同様、電源がオフされたときも、画像ファイルの送信が中断される。これは、ネットワークＩ／Ｆ１２１０に電源が供給されなくなるのであるから、当然である。本実施の形態では、このような場合も画像ファイル送信が後で再開できるようになっている。
【０１６２】
画像ファイルの送信手順の実行中、例えば、デジタルカメラ１１０１のユーザがいきなり電源ボタン１２１３をオフ操作したとする（ステップＳ１９０１）。これにより、デジタルカメラ１１０１内の各部に供給されていた電源が遮断され、デジタルカメラ１１０１とサーバ１１０２の間の通信は中断する（ステップＳ１９０２）。
【０１６３】
この場合は、図１６・図１７のフローチャートに示したシーケンスはエラーの発生を待たずに、強制終了となる。サーバ１１０２側でも受信が中断される。但し、画像ファイル受信状態は記録されているので、送信再開は可能である。
【０１６４】
サーバ１１０２側でこのままの状態が続いた場合はどうなるかを説明する。この場合はデジタルカメラ１１０１から中断要求（１３１２）メッセージが来ないので、上記のように中断タイマを働かせるわけにはいかないが、やはりこの場合も、何らかの受信タイマが動いていることが望ましい。受信タイマは図１８のステップＳ１４０４でセッションＩＤを生成したときに動作を開始する。受信タイマは中断タイマよりタイムアウト時間は長く取る。
【０１６５】
受信タイマがタイムアウトしたら、中断タイマのタイムアウト時と同様、サーバ１１０２で受信途中の画像ファイルと未受信の画像ファイルについては受信中止となり、セッションが破棄される。該当するセッションＩＤテーブル１５０１及びファイル情報エントリ１５０２はクリアされる。従って、デジタルカメラ１１０１でそのセッションＩＤを用いてサーバ１１０２に画像ファクシミリの送信を再開しようとしても、再開不可となる。
【０１６６】
上記受信タイマがタイムアウトする前に、デジタルカメラ１１０１の電源がオンされた場合は、図２４・図２５のフローチャートに示したシーケンスで説明したのと同様に、デジタルカメラ１１０１からサーバ１１０２への画像ファイルの送信が再開される。但し、デジタルカメラ１１０１の電源オン直後のモードが再生モードであった場合の話である。デジタルカメラ１１０１が撮影モードであった場合は、送信中断状態が続く。デジタルカメラ１１０１がこの状態から再生モードに入ると、サーバ１０１２への画像ファイルの送信が再開される。
【０１６７】
次に、デジタルカメラ１１０１からサーバ１１０２に対するもう１つの送信再開手順について、図３０のシーケンス図、図３１のフローチャート、及び図３２のフローチャートを参照しながら説明する。
【０１６８】
図３０は、デジタルカメラ１１０１とサーバ１１０２の間の画像通信シーケンスを示す図、図３１は、デジタルカメラ１１０１の送信再開手順２を示すフローチャート、図３２は、サーバ１１０２の受信再開手順２を示すフローチャートである。
【０１６９】
以下の手順では、それまで撮影モードであったデジタルカメラ１１０１において、ユーザが撮影モード・再生モード切替スイッチ１２１２を操作して再生モードに戻った場合を考える。
【０１７０】
図３０、図３１、図３２において、まず、デジタルカメラ１１０１のユーザが撮影モード・再生モード切替スイッチ１２１２を操作して再生モードに入る（ステップＳ２００１）。これに伴い、デジタルカメラ１１０１のＣＰＵ１２０１は、フラッシュＲＯＭ１２０９上にセッションＩＤが保存されているかどうかを調べる（ステップＳ２００２）。ＣＰＵ１２０１は、フラッシュＲＯＭ１２０９上にセッションＩＤが残っていない場合は、送信再開処理を行わず、送信再開手順を終了する。
【０１７１】
ＣＰＵ１２０１は、フラッシュＲＯＭ１２０９上にセッションＩＤが残っていた場合は、図１６のステップＳ１００９でセッションＩＤと同時に保存された接続先サーバのアドレスを読み出す（ステップＳ２００３）。そして、ＣＰＵ１２０１は、送信再開要求（１３１４）メッセージと、送信を再開するセッションのセッションＩＤ（１３１５）をサーバ１１０２に送信する（ステップＳ２００４）。
【０１７２】
一方、サーバ１１０２のＣＰＵ１７０１は、デジタルカメラ１１０１から送信再開要求（１３１４）メッセージと、送信を再開するセッションのセッションＩＤ（１３１５）を受信する（ステップＳ２１０１）。これに伴い、ＣＰＵ１７０１は、セッションＩＤテーブル１５０１とファイル情報エントリ１５０２を調べて、まだ受信が終了していない画像ファイルを抽出し、最初の受信未完ファイル情報（１８０１）としてデジタルカメラ１１０１に送信する（ステップＳ２１０２）。
【０１７３】
受信未完ファイル情報（１８０１）のデータの形式は、送信ファイルリスト（１３０５）の中の１つのファイルに関する指定と同様である。図２０の例で言えば、100/img_1001.jpgのみが受信終了していた場合、最初の受信未完ファイル情報（１８０１）は、200/img_2001.jpgとなる。300/img_3001.jpgは次の受信未完ファイル情報（１８０１）である。尚、受信未完ファイル情報（１８０１）は、ファイル名（もしくはパスの一部）だけでなく、その画像ファイルに関する受信済みバイト数を含んでいても良い。
【０１７４】
デジタルカメラ１１０１のＣＰＵ１２０１は、サーバ１１０２から受信未完ファイル情報（１８０１）を受信する（ステップＳ２００５）。そして、ＣＰＵ１２０１は、この受信未完ファイル情報（１８０１）で指定された画像ファイルを特定し、該当する画像ファイル（１８０２）をサーバ１１０２に送信する（ステップＳ２００６）。
【０１７５】
尚、上述したように、受信未完ファイル情報（１８０１）が画像ファイルに関する受信済みバイト数を含んでいる場合は、画像ファイルを先頭から送信するのではなく、受信済みバイト数をスキップして、次のバイト位置から送信するようにする。このようにすれば、送信量、送信時間が少なくて済む。
【０１７６】
サーバ１１０２のＣＰＵ１７０１は、デジタルカメラ１１０１から画像ファイル（１８０２）を受信すると（ステップＳ２１０３）、エラーが発生しなかった場合は（ステップＳ２１０４でＮ）、この画像ファイルの受信フラグを「終了」にすると共に（ステップＳ２１０５）、格納位置に画像ファイルを置く（ステップＳ２１０６）。そして、ＣＰＵ１７０１は、全画像ファイルについて受信が終了していなければ（ステップＳ２１０７でＮ）、次の受信未完画像ファイルを選択し、そのファイル情報（１８０３）をデジタルカメラ１１０１に送信する（ステップＳ２１０２）。
【０１７７】
サーバ１１０２でこうして全画像ファイルを受信終了すると、ＣＰＵ１７０１は、最後にＯＫ（１８０６）メッセージをデジタルカメラ１１０１に送信する（ステップＳ２１０８）。デジタルカメラ１１０１のＣＰＵ１２０１は、サーバ１１０２から次の受信未完ファイル情報（１８０３）を受信すると（ステップＳ２００７）、この画像ファイルをサーバ１１０２に送信する（ステップＳ２００６）。
【０１７８】
こうして、デジタルカメラ１１０１のＣＰＵ１２０１は、サーバ１１０２が要求する画像ファイルを次々とサーバ１１０２に送り込む。最後に、ＣＰＵ１２０１は、サーバ１１０２からＯＫ（１８０６）メッセージを受け取ると（ステップＳ２００７でＮ）、送信再開手順を終了する。
【０１７９】
以上説明したように、本実施の形態によれば、デジタルカメラ１１０１からサーバ１１０２に画像ファイルを送信中に、デジタルカメラ１１０１が突然撮影モードに入ったり電源がオフされたりする等のデジタルカメラ側の状態遷移に応じて、画像ファイルの送信を中断することができると共に、サーバ１１０２からの受信未完情報で指定された画像ファイルをサーバ１１０２に送信することで、的確に画像ファイルの送信を再開することができる。
【０１８０】
また、上記のような画像ファイルの送信を中断せねばならない事象が発生した場合でも、送信中断までの途中の状態（送信ファイルリスト、受信済みバイト数）をサーバ１１０２側で記憶させるようにしたことで、デジタルカメラ１１０１に余計な負荷を掛けることなく、正確な位置から画像ファイルの送信を再開することができる。
【０１８１】
また、デジタルカメラ１１０１はフラッシュＲＯＭ１２０９に複雑な送信ファイルリストを記憶させておく必要がなく、フラッシュＲＯＭ１２０９上で送信済みバイト数をその都度更新する必要もなく、サーバ１１０２から送信される単に通信セッションに関連付けられたセッションＩＤを最初に一度、フラッシュＲＯＭ１２０９に記憶するだけで済むため、画像ファイル送信に関わる記憶制御処理の簡易化や、デジタルカメラ１１０１の記憶資源の有効活用等が可能となる。
【０１８２】
［他の実施の形態］
上記第１乃至第３の実施の形態では、図４、図５、図７、図９、図１０に示すプログラムコード群を主記憶装置１０３に格納し、主記憶装置１０３から中央処理装置１０２がプログラムコード群を読み出して実行する例を説明したが、これに限定されるものではない。プログラムコード群を不揮発性メモリ１０４または撮像装置内部の記憶資源に格納し、不揮発性メモリ１０４または記憶資源から中央処理装置１０２がプログラムコード群を読み出して実行するようにしてもよい。
【０１８３】
図１１は、中央処理装置１０２で読み出し可能な各種制御プログラムのプログラムコード群を格納する記憶媒体のメモリマップを示す図である。この記憶媒体には、図４、図５のフローチャートに示すプログラムコード、即ち、第１の実施の形態におけるプログラムコードが第１の制御プログラムに対応するプログラムコード群として格納されている。また、第２の実施の形態におけるプログラムコードが第２の制御プログラムに対応するプログラムコード群として格納されている。更に、第３の実施の形態におけるプログラムコードが第３の制御プログラムに対応するプログラムコード群として格納されている。
【０１８４】
特に図示しないが、この記憶媒体には、記憶されるプログラム群を管理する情報、例えばバージョン情報、作成者等を記憶し、かつプログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等を記憶するようにしてもよい。
【０１８５】
更に、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムを撮像装置にインストールするためのプログラムや、インストールするプログラムが圧縮されている場合、解凍するプログラム等を記憶するようにしてもよい。
【０１８６】
また、図１１に示すプログラムコード群の機能が、外部からインストールされるプログラムによって本システムにより遂行されてもよい。この場合、フラッシュメモリ、ＳＤメモリ等の記憶媒体により、或いはネットワークを介して外部の記憶媒体からプログラムを含む情報群を本システムに供給することが可能である。
【０１８７】
上記第１及び第２の実施の形態では、撮像装置から外部機器に画像データを一定のバッファサイズ単位で送信する例、ファイル単位で送信する例をそれぞれ説明したが、これに限定されるものではない。画像データを一定のバッファサイズ単位で送信するかファイル単位で送信するかを操作部１０８から選択可能としてもよい。これにより、通信状態に応じた柔軟な送信が可能となる。
【０１８８】
上記第４の実施の形態では、図１２にデジタルカメラ１１０１とサーバ１１０２の仮想的な接続例を説明したが、上記第１乃至第３の実施の形態と同様にデジタルカメラ１１０１とサーバ１１０２を携帯電話機や無線ルータを介して接続することも可能である。
【０１８９】
本発明は、上述した実施の形態の機能を実現するソフトウェアのプログラム（第１乃至第３の実施の形態では図４、図５、図７、図９、図１０のフローチャート、第４の実施の形態では図１６〜図１９、図２２〜図２７、図２９、図３１、図３２のフローチャート）をコンピュータ又はＣＰＵに供給し、そのコンピュータ又はＣＰＵが該供給されたプログラムを読出して実行することによって、達成することができる。
【０１９０】
この場合、上記プログラムは、該プログラムを記録した記憶媒体から直接供給されるか、又はインターネット、商用ネットワーク、若しくはローカルエリアネットワーク等に接続される不図示の他のコンピュータやデータベース等からダウンロードすることにより供給される。
【０１９１】
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、ＯＳ（オペレーティングシステム）に供給されるスクリプトデータ等の形態から成ってもよい。
【０１９２】
また、本発明は、上述した実施の形態の機能を実現するソフトウェアのプログラムを記憶した記憶媒体をコンピュータ又はＣＰＵに供給し、そのコンピュータ又はＣＰＵが記憶媒体に記憶されたプログラムを読出して実行することによっても、達成することができる。
【０１９３】
この場合、記憶媒体から読出されたプログラムコード自体が上述した各実施の形態の機能を実現すると共に、そのプログラムコードを記憶した記憶媒体は本発明を構成する。
【０１９４】
プログラムコードを記憶する記憶媒体としては、例えば、ＲＯＭ、ＲＡＭ、ＮＶ−ＲＡＭ、フロッピー（登録商標）ディスク、ハードディスク、光ディスク（登録商標）、光磁気ディスク、ＣＤ−ＲＯＭ、ＭＯ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード等がある。
【０１９５】
上述した実施の形態の機能は、コンピュータから読出されたプログラムコードを実行することによるばかりでなく、コンピュータ上で稼動するＯＳ等がプログラムコードの指示に基づいて実際の処理の一部又は全部を行うことによっても実現することができる。
【図面の簡単な説明】
【０１９６】
【図１】本発明の第１の実施の形態に係る画像送信装置としての撮像装置の概略構成を示すブロック図である。
【図２】撮像装置の制御機能を示すブロック図である。
【図３】撮像装置の送信情報生成部で生成される送信済み情報の一例を示す図である。
【図４】撮像装置の制御手順を示すフローチャートである。
【図５】撮像装置の画像データ送信処理の制御手順を示すフローチャートである。
【図６】本発明の第２の実施の形態に係る画像送信装置としての撮像装置の送信情報生成部で生成される送信済み情報の一例を示す図である。
【図７】撮像装置の画像データ送信処理の制御手順を示すフローチャートである。
【図８】本発明の第３の実施の形態に係る画像送信装置としての撮像装置に対し遠隔から送信される撮影コマンドの一例を示す図である。
【図９】撮像装置の制御手順を示すフローチャートである。
【図１０】撮像装置の画像データ送信処理の制御手順を示すフローチャートである。
【図１１】ＣＰＵで読み出し可能な各種制御プログラムのプログラムコード群を格納する記憶媒体のメモリマップを示す図である。
【図１２】本発明の第４の実施の形態に係る画像送信装置としてのデジタルカメラと画像受信装置としてのサーバからなるクライアントサーバシステムの概略構成を示す図である。
【図１３】デジタルカメラの内部構成を示すブロック図である。
【図１４】サーバの内部構成を示すブロック図である。
【図１５】デジタルカメラとサーバの間の画像通信シーケンスを示す図である。
【図１６】デジタルカメラの画像送信手順を示すフローチャートである。
【図１７】図１６のフローチャートの続きである。
【図１８】サーバの画像受信手順を示すフローチャートである。
【図１９】図１８のフローチャートの続きである。
【図２０】サーバのセッションＩＤテーブル及びファイル情報エントリの例を示す図である。
【図２１】サーバのセッションＩＤテーブル及びファイル情報エントリの例を示す図である。
【図２２】デジタルカメラの送信中断手順１を示すフローチャートである。
【図２３】サーバの受信中断手順を示すフローチャートである。
【図２４】デジタルカメラの送信再開手順１を示すフローチャートである。
【図２５】図２４のフローチャートの続きである。
【図２６】サーバの受信再開手順１を示すフローチャートである。
【図２７】図２６のフローチャートの続きである。
【図２８】デジタルカメラとサーバの間の画像通信シーケンスを示す図である。
【図２９】デジタルカメラの送信中断手順２を示すフローチャートである。
【図３０】デジタルカメラとサーバの間の画像通信シーケンスを示す図である。
【図３１】デジタルカメラの送信再開手順２を示すフローチャートである。
【図３２】サーバの受信再開手順２を示すフローチャートである。
【符号の説明】
【０１９７】
１０１  撮像装置（画像送信装置、撮像装置に対応）
１０２  中央処理装置（制御手段に対応）
１０４  不揮発性メモリ（記憶手段に対応）
１０５  撮像部（撮像手段に対応）
１１０  通信Ｉ／Ｆ（通信手段に対応）
２０２  送受信判定部（指示手段に対応）
２０４  データ送受信部（通信手段に対応）
２０５  送信情報生成部（生成手段に対応）
１１０１  デジタルカメラ（画像送信装置、撮像装置に対応）
１１０２  サーバ（画像受信装置に対応）
１２０１  デジタルカメラのＣＰＵ（記憶制御手段、第１の送信制御手段、第２の送信制御手段に対応）
１２０９  フラッシュＲＯＭ（記憶手段に対応）
１２１１  ＣＣＤ（撮像手段に対応）
１７０１  サーバのＣＰＵ（記憶制御手段、第１の送信制御手段、第２の送信制御手段に対応）
１７０３  ＲＡＭ（記憶手段に対応）
【図１】
2006053863.tif 000003
【図２】
2006053863.tif 000004
【図３】
2006053863.tif 000005
【図４】
2006053863.tif 000006
【図５】
2006053863.tif 000007
【図６】
2006053863.tif 000008
【図７】
2006053863.tif 000009
【図８】
2006053863.tif 000010
【図９】
2006053863.tif 000011
【図１０】
2006053863.tif 000012
【図１１】
2006053863.tif 000013
【図１２】
2006053863.tif 000014
【図１３】
2006053863.tif 000015
【図１４】
2006053863.tif 000016
【図１５】
2006053863.tif 000017
【図１６】
2006053863.tif 000018
【図１７】
2006053863.tif 000019
【図１８】
2006053863.tif 000020
【図１９】
2006053863.tif 000021
【図２０】
2006053863.tif 000022
【図２１】
2006053863.tif 000023
【図２２】
2006053863.tif 000024
【図２３】
2006053863.tif 000025
【図２４】
2006053863.tif 000026
【図２５】
2006053863.tif 000027
【図２６】
2006053863.tif 000028
【図２７】
2006053863.tif 000029
【図２８】
2006053863.tif 000030
【図２９】
2006053863.tif 000031
【図３０】
2006053863.tif 000032
【図３１】
2006053863.tif 000033
【図３２】
2006053863.tif 000034