(57)【特許請求の範囲】
【請求項１】
ネットワークを介して画像共有グループのメンバを構成するそれぞれのデジタルカメラが撮影して得られる画像データを該画像共有グループ内で共有するデジタルカメラであって、
被写体を撮影して得られる画像データを出力する撮影回路と、
前記撮影回路から画像データが出力されるごとに、配信先アドレス及び保存先ディレクトリを含むメンバ情報が前記メンバごとに登録されたグループリストを参照して、前記画像データの保存元ディレクトリと配信先アドレスと保存先ディレクトリとを含む配信情報を前記メンバごとに生成し、各配信情報を登録した配信リストを生成する配信リスト生成モジュールと、
前記配信リストから順次配信情報を読み出して、読み出した配信情報に基づいて前記メンバとなる他のデジタルカメラへそれぞれ画像データを配信する配信モジュールと、
を備えることを特徴とするデジタルカメラ。
【請求項２】
請求項１に記載のデジタルカメラにおいて、
前記配信モジュールは、
読み出した配信情報に基づく画像データの配信ができなかった場合、当該配信情報を未配信リストに待避させておき、前記配信リストに登録されたすべての配信情報に対する配信を試みた後、前記未配信リストに待避させておいた配信情報に対する配信を再度試みることを特徴とするデジタルカメラ。
【請求項３】
ネットワークを介して画像共有グループのメンバを構成するそれぞれのデジタルカメラが撮影して得られる画像データを該画像共有グループ内で共有する画像共有方法であって、
撮影回路から画像データが出力されるごとに、配信先アドレス及び保存先ディレクトリを含むメンバ情報が前記メンバごとに登録されたグループリストを参照して、前記画像データの保存元ディレクトリと配信先アドレスと保存先ディレクトリとを含む配信情報を前記メンバごとに生成し、各配信情報を登録した配信リストを生成する配信リスト生成ステップと、
前記配信リストから順次配信情報を読み出して、読み出した配信情報に基づいて前記メンバとなる他のデジタルカメラへそれぞれ画像データを配信する配信ステップと、
を含む画像共有方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して他のデジタルカメラと通信可能なデジタルカメラに関する。
【背景技術】
【０００２】
この分野における従来の技術として、例えば、特許文献１に示される技術がある。この技術では、複数のデジタルカメラを１つのグループとして構成し、そのグループに属する１台のデジタルカメラを代表カメラと決定する。そして、代表カメラは、グループに属する他のデジタルカメラが撮影して得られる画像データを収集して、１つのまとまりある画像データ群を生成する。
【０００３】
特許文献１に示される技術では、代表カメラとして設定されたデジタルカメラが他のデジタルカメラで撮影した画像データを集約する。そのため、代表カメラとして設定されていない他のデジタルカメラからは、集約された画像データ群をすぐに確認することができない。
【０００４】
【特許文献１】特開２００３−８７６１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、各デジタルカメラで撮影して得られた画像データを各デジタルカメラで共有することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、ネットワークを介して画像共有グループのメンバを構成するそれぞれのデジタルカメラが撮影して得られる画像データを該画像共有グループ内で共有するデジタルカメラであって、被写体を撮影して得られる画像データを出力する撮影回路と、
前記撮影回路から画像データが出力されるごとに、配信先アドレス及び保存先ディレクトリを含むメンバ情報が前記メンバごとに登録されたグループリストを参照して、前記画像データの保存元ディレクトリと配信先アドレスと保存先ディレクトリとを含む配信情報を前記メンバごとに生成し、各配信情報を登録した配信リストを生成する配信リスト生成モジュールと、前記配信リストから順次配信情報を読み出して、読み出した配信情報に基づいて前記メンバとなる他のデジタルカメラへそれぞれ画像データを配信する配信モジュールと、を備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、ネットワークを介して画像共有グループを構成する各デジタルカメラで撮影して得られた画像データを各デジタルカメラで共有することができる。
【発明を実施するための最良の形態】
【０００８】
本発明を実施するための最良の形態（以下、実施形態とする）について、以下、図面を用いて説明する。
【０００９】
図１は、本実施形態におけるデジタルカメラ１の機能ブロックを示す図である。デジタルカメラ１は、３つの主要コンポーネントとして、操作部１０と実行部２０と無線通信デバイス３０とを含み構成される。
【００１０】
操作部１０は、ユーザとの対話を行うＵＩコンポーネントであり、ユーザがデジタルカメラ１を操作する際に使用する操作ボタン等のユーザインタフェースの制御を行う。実行部２０は、デジタルカメラ１の撮影や画像データ保存等の機能を統合するコンポーネントである。操作部１０および実行部２０は、下記に示す操作側通信インタフェース１０３、実行側通信インタフェース２０３を介し、汎用の通信プロトコルを用いて相互に通信を行う。
【００１１】
本実施形態では、各通信インタフェース１０３，２０３の実装プロトコルとしてＰＴＰ（Picture Transfer Protocol）を用い、そのインタフェースのベースとなる通信プロトコルにはＴＣＰ／ＩＰを用いる。そして、操作部１０と実行部２０は、ＰＴＰコマンド及びその応答を通信路４０であるソケットストリームを介して交換しあうことで、相互に通信を行う。
【００１２】
さらに、デジタルカメラ１は、ネットワークを介して他のデジタルカメラ等と通信を行うために、無線通信デバイス３０を備える。デジタルカメラ１は、無線通信デバイス３０を介して、通信規格８０２．１１（ＷｉＦｉ）の通信方式に基づき、他のデジタルカメラ等と無線通信を行う。
【００１３】
図２は、操作部１０および実行部２０のさらに詳細の機能ブロックを示す図である。操作部１０は、シャッタボタンや各種撮影モードの切り替えボタン等の操作ボタン、画像を表示するディスプレイ等を含むＵＩ回路１０１と、操作部１０全体の制御を行う操作側制御回路１０２と、実行部２０との通信や無線通信デバイスを介した他のデジタルカメラ等との通信を行うための操作側通信インタフェース１０３とを含む。
【００１４】
実行部２０は、撮影処理を行う撮影処理回路２０１と、実行部２０全体の制御を行う実行側制御回路２０２と、操作部１０との通信や無線通信デバイスを介した他のデジタルカメラ等との通信を行うための実行側通信インタフェース２０３とを含む。
【００１５】
図３は、実行部２０に含まれる撮影処理回路２０１をより詳細に示した機能ブロック図である。図３において、レンズ２１１を通過した画像の光量は、露光制御機構２１２で制御され、撮像素子２１３の撮像画面上に被写体像が結像される。撮像素子２１３は、所定のクロックにより結像された被写体像を撮像信号として信号処理回路２１４に出力する。信号処理回路２１４は、入力された撮像信号に対して輝度信号処理、色分離等の信号処理を行う。Ａ／Ｄ回路２１５は、信号処理後の撮像信号をアナログ信号からデジタル信号に変換する。Ａ／Ｄ変換された信号は、画像処理回路２１６でガンマ補正などの種々の画像処理が施されて、画像データとしてメモリ２１７に保存される。また、ストロボ機構２１８において、必要に応じて被写体２にストロボ光が照射される。
【００１６】
このように構成されたデジタルカメラにおいて、ユーザからの操作指示をＵＩ回路１０１を介して操作側制御回路１０２が受け取り、操作側制御回路１０２がその操作指示に応じた制御信号を操作側通信インタフェース１０３を介して実行部２０に出力する。実行側制御回路２０２は、実行側通信インタフェース２０３を介して操作部１０から制御信号を受け取り、その制御信号に基づいて撮影処理回路２０１を制御し、撮影処理を行う。
【００１７】
本実施形態では、上記のように構成されたデジタルカメラを複数台用意して、画像共有グループを構成し、各デジタルカメラはネットワークを介して接続して画像共有システムを構築する。例えば、画像共有グループをカメラＡ〜カメラＣで構成し、画像共有システムを構築した場合に、撮影を行うと、図４Ａ、図４Ｂのような処理が各カメラで行われる。まず、図４Ａにおいて、操作部Ｂおよび操作部Ｃの撮影指示に基づいて、実行部Ｂおよび実行部Ｃが撮影処理を行う。これにより、画像データＢおよび画像データＣが生成され、メモリＢおよびメモリＣにそれぞれ格納される。その後、図４Ｂに示す通り、操作部Ｂは、実行部Ａおよび実行部Ｃに接続し、画像データＢをカメラＡおよびカメラＣに配信する。一方、操作部Ｃは、実行部Ａおよび実行部Ｂに接続し、画像データＣをカメラＡおよびカメラＢに配信する。これにより、画像共有グループを構成する各カメラＡ〜Ｃは、各カメラで撮影して得られた画像データを共有する。
【００１８】
以下、本システムにおける各デジタルカメラの処理手順についてさらに説明する。
【００１９】
ユーザは、まず、画像共有を行う前の準備として、各デジタルカメラにそれぞれユーザＩＤとＩＰアドレスの設定を行う。ユーザＩＤは、画像共有グループ内のメンバを識別するためのＩＤであり、例えば、グループを構成する各デジタルカメラの所有者のユーザ名を用いることができる。ユーザは、ＵＩ回路１０１を介して、それぞれのデジタルカメラにユーザ名を登録する。なお、ユーザＩＤは、画像共有を行うごとにその都度設定する必要はなく、一度設定したユーザＩＤをデジタルカメラのメモリに保持しておけばよい。
【００２０】
さらに、ユーザは、各デジタルカメラに、画像共有グループを構成するカメラの台数分用意された番号札を撮影させることで、それぞれのデジタルカメラにＩＰアドレスを登録する。番号札は、例えば、１，２，３・・・のように数字が書かれたボードである。
【００２１】
より具体的には、ユーザは各カメラを操作して、各カメラの操作部にＩＰアドレス登録指令を出す。この登録指令を受けて、各操作部１０は、図５のフローチャートに示す処理を行う。以下、ｎ番（ｎは、１〜Ｎまでの整数である。Ｎは、画像共有グループを構成するカメラの総台数とする。）の数字が書かれた番号札を撮影したカメラの操作部及び実行部を、操作部［ｎ］及び実行部［ｎ］と表現する。
【００２２】
図５において、操作部［ｎ］は、ＩＰアドレス登録指令を受け取り（Ｓ１００）、その指令に基づいて実行部［ｎ］に撮影処理を実行させ、番号札を撮影させる（Ｓ１０２）。次いで、操作部［ｎ］は、撮影して得られた画像データを実行部［ｎ］から取得して、その画像データについて文字認識処理を実行する（Ｓ１０４）。さらにその処理結果に基づいて、自身の番号を特定し、その番号に応じたＩＰアドレスを決定した後、それらをメモリに登録する（Ｓ１０６）。なお、文字認識処理は、ＯＣＲ（Optical Character Recognition）等の一般的な文字認識の技術を用いればよく、例えば、各番号札を撮影して得られた各番号の画像データを数字と対応付けて予め記憶しておき、それらの画像データと、実行部［ｎ］が撮影して得られた画像データとの類似度を計算し、類似度が最も高い画像データに対応する数字を自身に割り当てられた番号と決定する。
【００２３】
決定した番号に応じたＩＰアドレスは、次のように決定する。まず、ＩＰアドレスのネットワーク部については予め定めておく。ＩＰｖ４の場合、例えば、ネットワーク部を上位２４ビットと定め、「１６９．２５４．０．＊」をネットワーク部として定める。そして、各番号の数字をホスト部に割り当てる。よって、この場合、カメラに、「１」の番号札を撮影させると、ＩＰアドレスとして「１６９．２５４．０．１」が登録され、カメラに、「３」の番号札を撮影させることで、ＩＰアドレスとして「１６９．２５４．０．３」が登録される。
【００２４】
以上のようにして、画像共有グループを構成する各カメラにユーザＩＤ及びＩＰアドレスを設定した後、「１」番目の番号札を撮影したカメラ［１］は、ユーザ指示に基づいて、グループリストを生成し、画像共有グループを構成する他のカメラにグループリストを配信する。グループリストは、画像共有グループを構成するメンバのメンバ情報である。具体的には、図６に示すように、グループリストは、メンバとなるカメラのＩＰアドレス１２０と、共有する画像データを保存する先のドライブ（記憶装置）を識別するためのドライブレター１２２と、共有する画像データの保存場所を示すディレクトリ１２４とが関連づけられてなるメンバ情報のリストである。
【００２５】
このようなグループリストを、カメラ［１］の操作部［１］は、図７に示すようなフローチャートに基づいて生成する。
【００２６】
まず、操作部［１］は、変数ｘに自身の番号「１」を代入し（Ｓ２００）、さらにその変数ｘをインクリメント（１だけ増加）する（Ｓ２０２）。次いで、操作部［１］は、実行部［ｘ］へ接続要求をする（Ｓ２０４）。つまり、実行部［１］は、ＩＰアドレス［１６９．２５４．０．ｘ］をアクセス先とする接続要求をネットワークに送信する。その後、操作部［１］は、実行部［ｘ］への接続に成功すると（Ｓ２０６での判定結果が、肯定「Ｙ」）、実行部［ｘ］からユーザＩＤ［ｘ］を取得し（Ｓ２０８）、ユーザＩＤ［ｘ］の承認を行う。
【００２７】
ここでの承認は、ユーザが画像共有グループを構成する予定のカメラと接続したことを確認するために行われる。本実施形態が行われる環境は、画像共有グループを構成するカメラだけが存在する閉空間だけを想定しているわけではない。つまり、本実施形態が行われる環境は、画像共有グループを構成するカメラ以外にも多数の無線通信可能なカメラ等が存在する公衆の空間も想定している。そこで、上記の通り、接続に成功した場合に、そのカメラが画像共有グループを構成する予定のカメラかどうかをユーザが確認するために、ユーザＩＤ［ｘ］の承認を行う。操作部［１］は、ディスプレイ等にＳ２０８において取得したユーザＩＤ［ｘ］を表示して、承認するかどうかの指示をユーザからＵＩ回路１０１を介して受け取ることで行えばよい。
【００２８】
上記によって、ユーザＩＤ［ｘ］が承認された場合（Ｓ２１０での判定結果が、肯定「Ｙ」）、操作部［１］は、実行部［ｘ］から画像共有用のドライブのドライブレターを取得して（Ｓ２１２）、グループリストを更新する（Ｓ２１４）。つまり、操作部［１］は、接続した実行部［ｘ］に対応するＩＰアドレス［１６９．２５４．０．ｘ］と、取得したドライブレターとに基づいて、図６に示すようなメンバ情報を生成し、グループリストに追加する。
【００２９】
グループリストを更新後、操作部［１］は、ユーザにＵＩ回路１０１を介してグループリストの生成を続行するかどうかを確認する（Ｓ２１６）。つまり、他のデジタルカメラを画像共有グループへさらに登録するかどうかを確認する。確認の結果、グループリストの生成を続行する場合には（Ｓ２１８での判定結果が、肯定「Ｙ」）、Ｓ２０２以降処理を繰り返す。つまり、インクリメントした変数ｘに対応する実行部［ｘ］への接続を試みて、グループリストの更新を試みる。
【００３０】
なお、実行部［ｘ］への接続に失敗した場合（Ｓ２０６での判定結果が、否定「Ｎ」）、およびユーザＩＤ［ｘ］の承認が得られなかった場合には（Ｓ２１０での判定結果が、否定「Ｎ」）、操作部［１］は、Ｓ２１６と同様に、ユーザにＵＩ回路１０１を介してグループリストの生成を続行するかどうかを確認する（Ｓ２２０）。確認の結果、グループリストの生成を続行する場合（Ｓ２２２での判定結果が、肯定「Ｙ」）、操作部［１］は、変数ｘをインクリメントせずに、再度同じ変数ｘに対応する実行部［ｘ］への接続を試みて、グループリストの更新を試みる。
【００３１】
上記処理を行った後、画像共有グループの構成が完了した場合もしくは、画像共有グループの構成を中止する場合には、操作部［１］は、ユーザからグループリストの生成を終了する旨の指示を受ける（Ｓ２１８での判定結果が、否定「Ｎ」もしくはＳ２２２での判定結果が、否定「Ｎ」）。次いで、操作部［１］は、ユーザにＵＩ回路１０１を介してグループリストの配信を行うかどうかの確認をする（Ｓ２２４）。つまり、操作部［１］は、生成したグループリストに示された各デジタルカメラ同士で、画像共有を行うかどうかをユーザに確認する。確認の結果、グループリストを配信する確認が取れた場合には（Ｓ２２６での判定結果が、肯定「Ｙ」）、操作部［１］は、操作部［１］に接続されている各実行部にこのグループリストを配信する（Ｓ２２８）。言い換えれば、操作部［１］は、各実行部２０に対して、各実行側制御回路２０２が備えるＲＡＭに配信されたグループリストを書き込ませる。なお、操作部［１］は、実行部［１］にもグループリストを配信するものとする。
【００３２】
一方、Ｓ２２４での確認の結果、グループリストを配信しない場合には（Ｓ２２６での判定結果が、否定「Ｎ」）、操作部［１］は、グループリストを消去する（Ｓ２３０）。
【００３３】
以上の処理手順により、図６に示すようなグループリストが生成され、画像共有グループを構成する各デジタルカメラの実行部２０に生成したグループリストが配信される。なお、グループリストは、上記示した手順によりデジタルカメラ同士をネットワークに接続することで生成せずに、例えばパーソナルコンピュータなどを用いて生成し、各デジタルカメラに転送してもよい。
【００３４】
続いて、本実施形態に係るデジタルカメラによる撮影時における処理手順について、図面を用いて説明する。
【００３５】
図８Ａ及び図８Ｂは、撮影指示を受けた場合の操作部１０および実行部２０の処理手順を示すフローチャートである。
【００３６】
図８Ａにおいて、実行部２０は、操作部１０からの撮影指示を受けて、被写体の撮影を行い（Ｓ４００）、得られた画像データをメモリ２１７に記憶する（Ｓ４０２）。次いで、実行部２０は、グループリストが登録されているかどうかを確認する。つまり、実行側制御回路２０２のＲＡＭにグループリストが書き込まれているかどうかを確認する。確認の結果、グループリストが登録されている場合には（Ｓ４０４の判定結果が、肯定「Ｙ」）、操作部１０は、その結果を実行部２０から受けて、配信リストの更新処理を実行する（Ｓ４０６）。次いで、操作部１０は、配信プロセスを起動する（Ｓ４０８）。なお、配信リストの更新処理で行われる配信リストへの書き込み等は排他的に行う必要がある。そこで、本実施形態では、排他制御を行う周知の技術の１つであるMutex（Mutal  Exclusion：相互排他ロック）を用いて排他制御を行う。操作部１０は、配信リスト用に用意されたMutex（以下、MutexＡと称す）を取得することで、排他的に配信リストへの書き込み等を行う。図９Ａは、MutexＡのイメージを示す。図９Ａに示すように、操作部１０は、MutexＡを取得することで、配信リストが保護され、現在実行している更新処理において、配信リスト１３０を排他的に処理することができる。
【００３７】
図８Ｂは、配信リストの更新処理における手順を示すフローチャートである。操作部１０は、まず、MutexＡを取得することで（Ｓ４０６−１）、配信リストを他のプロセスからアクセスされないように保護した後、配信リストに配信情報を追加する（Ｓ４０６−２）。その後、配信情報の追加が終了すると、操作部１０は、取得したMutexＡを廃棄して（Ｓ４０６−３）、配信リストへの保護を解除する。
【００３８】
ここで、配信情報は、配信すべき画像データの記録場所と、画像データを配信すべきデジタルカメラの宛先と、配信先での画像データの記録場所とが関連づけられて示される情報であり、配信リストは、配信情報群が登録されたリストである。本実施形態では、撮影によって画像データが生成されると、画像共有グループを構成する他のすべてのデジタルカメラごとに配信情報が生成される。図１０に配信リストの一例を示す。図１０に示す通り、配信情報１４０は、配信すべき画像データの記録場所１４２と、画像データを配信すべきデジタルカメラのＩＰアドレス１４４と、配信先のデジタルカメラにおける画像データの記録場所１４６とからなる情報である。本実施形態では、配信先のデジタルカメラのドライブに、配信元のユーザＩＤをファイル名とするディレクトリを追加し、そのディレクトリ下にそのユーザＩＤからの画像データを保管する。
【００３９】
続いて、Ｓ４０８で行われる配信プロセスについて説明する。配信プロセスでは、配信リストに基づいて画像共有グループを構成する各デジタルカメラに画像データを配信する処理を行う。
【００４０】
図１１は、配信プロセスの状態遷移を示す。図１１に示す通り、配信プロセスは、起動した後（起動）、配信処理を行う（配信処理中）。配信先となるデジタルカメラと通信ができなかった場合には（通信不能）、一定期間待機して（タイマ待機）、再び配信処理を開始する（タイマ切れ）。また、一定期間が経過しなくても、配信先となるデジタルカメラと通信が可能な状態になった場合など、操作部１０からの指示に応じて再び配信処理を開始する（タイマキャンセル）。その後、配信リストに配信情報が無くなると、配信プロセスは、画像共有グループを構成するすべてのデジタルカメラに配信対象となる全画像データの配信が完了したと判断して、処理を終了する（全ジョブ終了）。
【００４１】
本実施形態において、配信プロセスは、撮影とは独立して行われる処理である。そのため、操作部１０は、配信プロセスが画像データを配信している最中に、実行部２０に撮影指示を出すことが可能である。そのため、配信プロセスが処理中に新たな撮影が行われたり、配信プロセスが起動処理中に新たな撮影が行われ新たに配信プロセスの起動処理が行われる可能性がある。そのため、配信リストの更新はもとより、配信プロセスの起動処理も、排他的に制御を行う必要がある。そこで、配信リストの更新処理と同様に、配信プロセスも排他的に行うために、Mutexを用いる（以下、配信プロセス用のMutexをMutexＢと称する）。図９Ｂに、MutexＢのイメージを示す。図９Ｂに示すように、操作部１０は、MutexＢを取得することで、配信プロセス起動中フラグ１３２と新規画像フラグ１３４とを保護する。
【００４２】
ここで、配信プロセス起動中フラグは、配信プロセスの状態を示すフラグである。つまり、図１１に示す状態遷移からも分かる通り、配信プロセス起動中フラグには、起動中であることを示す「ＯＮ」、起動していないことを示す「ＯＦＦ」、そしてタイマ待機中であることを示す「ＳＬＥＥＰ」の３つの状態を表すフラグがある。配信プロセスは、配信処理状態に応じて、このフラグを書き替える。また、操作部１０は、配信プロセス起動中フラグを参照することで、配信プロセスの状態を確認することができる。
【００４３】
また、新規画像フラグは、撮影により新たな画像データが生成されているため配信処理を行う必要があることを示すフラグである。これは、上記の通り、撮影処理と配信処理とは独立して行われる処理であるため、配信処理中に新規の画像データが生成される場合がある。そのため、配信プロセスが、現在行われている配信処理が終了した後に、さらに画像データの配信を行う必要があるか否かを確認する必要がある。新規画像フラグは、その時配信プロセスが参照するフラグである。つまり、配信プロセスは、新規画像フラグが「ＯＮ」かどうかを確認することで、さらに配信対象の画像データが存在するか否かを判断することができる。
【００４４】
図１２は、操作部１０が配信プロセスを起動する際の手順を示すフローチャートである。図１２において、操作部１０は、配信プロセスを起動しようとする際のMutexＢを取得する（Ｓ５００）。このMutexＢを取得することで、配信プロセスと操作部との間で排他制御を行う。続いて、操作部１０は、新規画像フラグをＯＮにする（Ｓ５０２）。操作部１０は、新規画像フラグをＯＮにした後、配信プロセス起動中フラグを参照することで、現在配信プロセスが起動しているか否かを確認する（Ｓ５０４）。確認の結果、配信プロセス起動中フラグが「ＯＦＦ」であれば、配信プロセスが起動していないと判断し（Ｓ５０６での判定結果が、否定「Ｎ」）、操作部１０は、配信プロセスを起動させた後（Ｓ５０８）、Ｓ５００で取得したMutexＢを破棄し（Ｓ５１０）、配信処理を開始する。
【００４５】
一方、配信プロセス起動中フラグが「ＯＦＦ」でなければ、配信プロセスが起動していると判断して（Ｓ５０６での判定結果が、肯定「Ｙ」）、操作部１０は、さらに配信プロセス起動中フラグを参照することで、起動中の配信プロセスにおいて配信処理が行われているか否かを確認する。その結果、配信プロセス起動中フラグが「ＯＮ」であれば、配信プロセスが配信処理中であると判断して（Ｓ５１２での判定結果が、肯定「Ｙ」）、MutexＢを破棄する（Ｓ５１０）。また、配信プロセス起動中フラグが「ＳＬＥＥＰ」であれば、操作部１０は、配信プロセスがタイマ待機中であると判断して（Ｓ５１２での判定結果が、否定「Ｎ」）、そのタイマをキャンセルし（Ｓ５１４）、その後、Ｓ５００で取得したMutexＢを破棄する（Ｓ５１０）。
【００４６】
以上の処理により、二重に配信プロセスが起動することはなく、排他的に配信処理を行うことができ、共有資源（画像データや配信リストなど）の競合を防ぎ、撮影処理と配信処理とをそれぞれ独立して実行することができる。
【００４７】
続いて、配信プロセスの配信処理の手順について図１３Ａ及び１３Ｂに示すフローチャートを用いて説明する。
【００４８】
図１３Ａにおいて、配信プロセスは、MutexＡを取得後（Ｓ６００）、配信リストを参照して、配信情報が存在する否かを確認する。そして、配信情報が存在する場合には（Ｓ６０１での判定結果が、肯定「Ｙ」）、配信プロセスは、配信リストに存在する配信情報を参照することで、配信先を１つ選択（つまり、配信先となるＩＰアドレスを１つ選択）して、その配信先に対応する配信情報を全て読み出し、一時バッファに読み出したすべての配信情報を書き込み、さらに読み出した全ての配信情報を配信リストから消去して（Ｓ６０２）、MutexＡを廃棄する（Ｓ６０３）。次いで、配信プロセスは、Ｓ６０２で選択した配信先の実行部２０への接続処理を実行する（Ｓ６０４）。その結果、その実行部２０と通信路を確立できた場合には（Ｓ６０６での判定結果が、肯定「Ｙ」）、配信プロセスは、Ｓ６０２で一時バッファに書き込んだ配信情報を１つ選択して、その配信情報を一時バッファから消去する（Ｓ６０８）。そして、配信プロセスは、選択した配信情報に示された画像データの記録場所から画像データを取り出して、配信情報に示された配信先の実行部２０に配信して、実行部２０の記録場所にコピーする（Ｓ６１０）。
【００４９】
その結果、画像データの配信に成功した場合（Ｓ６１２での判定結果が、肯定「Ｙ」）、配信プロセスは、一時バッファにまだ配信情報が残っているかどうかを判定する（Ｓ６１４）。その結果、まだ配信情報が一時バッファに残っている場合には（Ｓ６１４の判定結果が、肯定「Ｙ」）、配信プロセスは、Ｓ６０８からの処理を繰り返す。また、配信情報が一時バッファに残っていない場合には（Ｓ６１４の判定結果が、否定「Ｎ」）、配信プロセスは、実行部２０との通信路を切断して（Ｓ６１５）、Ｓ６００からの処理を繰り返す。なお、Ｓ６１２での判定の結果、画像データの配信に失敗した場合には（Ｓ６１２での判定結果が、否定「Ｎ」）、配信プロセスは、この実行部２０との通信路を切断し（Ｓ６１３）、未配信リストに失敗した配信情報を追加した後に（Ｓ６１６）、次の実行部が存在すれば、その実行部との通信を試みる。
【００５０】
また、Ｓ６０６において、その実行部２０と通信路を確立できなかった場合（Ｓ６０６での判定結果が、否定「Ｎ」）、配信プロセスは、未配信リストに一時バッファに書き込んだ配信情報を書き込み（Ｓ６１６）、Ｓ６００からの処理を繰り返す。
【００５１】
その後、配信リストに配信情報が存在しなくなると（Ｓ６０１での判定結果が、否定「Ｎ」）、配信プロセスは、さらに図１３Ｂに示すフローチャートに基づく処理を行う。
【００５２】
図１３Ｂにおいて、配信リストに配信情報が存在しなくなると、配信プロセスは、MutexＡを破棄した後（Ｓ７００）、未配信リストに配信情報が存在するかどうかを判定する（Ｓ７０２）。その結果、未配信リストに配信情報が存在する場合には（Ｓ７０２での判定結果が、肯定「Ｙ」）、配信プロセスは、MutexＡを取得した後（Ｓ７０４）、未配信リストに存在するすべての配信情報を再び配信リストに書き込んで（Ｓ７０６）、MutexＡを廃棄する（Ｓ７０８）。さらに配信プロセスは、MutexＢを取得した後（Ｓ７１０）、配信プロセス起動中フラグを「ＳＬＥＥＰ」に書き替えて（Ｓ７１２）、MutexＢを廃棄する（Ｓ７１４）。これにより、配信プロセスは、一定時間後再び通信を試みるために、自らタイマを起動して、タイマ待機状態となる（Ｓ７１６）。その後、配信プロセスは、タイマ経過後もしくはタイマキャンセル後、再び図１３Ａに示すＳ６００以降の処理を繰り返す。
【００５３】
一方、未配信リストに配信情報が存在しない場合は（Ｓ７０２での判定結果が、否定「Ｎ」）、配信プロセスは、MutexＢを取得した後（Ｓ７１８）、新規画像フラグがＯＮかどうかを確認する（Ｓ７２０）。その結果、新規画像フラグがＯＮの場合には（Ｓ７２０の判定結果が、肯定「Ｙ」）、配信プロセスは、配信処理中に新たに撮影が行われ、配信対象の新たな画像データが生成されたと判断して、新規画像フラグを「ＯＦＦ」にした後（Ｓ７２２）、MutexＢを廃棄して（Ｓ７２４）、再び図１３ＡのＳ６００からの処理を繰り返す。また、Ｓ７２０において、新規画像フラグが「ＯＦＦ」の場合には（Ｓ７２０での判定結果が、否定「Ｎ」）、配信プロセスは、配信する画像データがないと判断して、配信プロセス起動中フラグを「ＯＦＦ」にして（Ｓ７２６）、MutexＢを廃棄した後（Ｓ７２８）、プロセスを終了する。
【００５４】
このように、配信プロセスは、配信リストに存在する配信情報の中で、配信に失敗した配信情報は、一時的に未配信リストに待避させておき、配信リストに存在する残りの配信情報を優先させて配信処理を行い、配信リストに存在するすべての配信情報について配信処理を試みた後に、未配信リストに待避されておいた配信情報を改めて配信リストに書き込んで、一定時間経過後に配信処理を再度試みる。これにより、撮影を行ったデジタルカメラが、画像共有グループを構成する他のデジタルカメラと通信することができずに、画像データの配信ができなかった場合でも、撮影を行ったデジタルカメラは、画像データが配信されるまで、画像データの配信を試みるため、確実に画像共有グループを構成する各デジタルカメラで画像データを共有することができる。
【００５５】
なお、画像共有グループを構成するデジタルカメラが、遠方に存在する場合など他のデジタルカメラと通信不能状態にあるために、未配信の画像データがまだ残っている場合には、例えば、デジタルカメラが備えるＬＥＤランプを点灯させるなどして、ユーザに通知してもよい。これにより、ユーザは、例えば、画像共有グループを構成する各デジタルカメラを近傍に配置して、改めて配信処理を行うなどの処置を執ることができる。
【００５６】
また、一度生成したグループリストの消去は、例えば、配信リストに配信情報が存在しない場合のみ、ユーザからの指示を許可するようにしてもよい。さらに、デジタルカメラがグループリストを消去する際に、画像共有グループを構成する他のデジタルカメラのグループリストも併せて、そのデジタルカメラが消去してもよい。
【００５７】
図１４は、本実施形態における変形例のシステム構成を示す図である。図１４において、アクセスポイント（ＡＰ）１６０は、デジタルカメラ１がインターネットに接続するための中継ポイントである。サーバ１６２は、実行部を実装する。このように、インターネット上のサーバ１６２に実行部を実装することで、デジタルカメラ（操作部Ａ）は、ＡＰ１６０を介して、インターネット上のサーバ（実行部Ｚ）にアクセスすることができる。サーバに実装した実行部Ｚも上記の実施形態と同様に画像共有グループに組み込むことで、ユーザは、デジタルカメラで撮影した画像データを自動的にインターネット上の記憶装置に転送することができる。なお、本変形例では、例えば、グループリストは予めパーソナルコンピュータ等で作成しておき、デジタルカメラに転送しておけばよい。この時、図１５に示すように、転送先のＩＰアドレス１２０と関連づけて、デジタルカメラ１がＡＰ１６０に接続する際に必要なパスワードやユーザ名などの識別情報１２６をグループリストに登録しておいてもよい。これにより、ユーザは、デジタルカメラ１がＡＰ１６０に接続するごとにパスワードなどの入力を行う手間を省くことができる。
【００５８】
また、デジタルカメラ自身のメモリ容量が不足していて、自身が撮影した画像データを記録できない場合には、例えば、図８ＡにおけるＳ４０２の処理を省いて、画像配信を行ってもよい。本実施形態によれば、他のデジタルカメラやインターネット上のサーバなどに画像データがすべて転送されているため、デジタルカメラのメモリ容量が空いた時点で、グループリストを参照して、画像共有グループのいずれかのメンバから自身が撮影した画像データを容易に取得することができる。
【００５９】
メモリ容量が不足している場合に、他のメンバに転送する処理は、例えば、図１６に示すフローチャートのように行えばよい。
【００６０】
すなわち、図１６において、デジタルカメラは、撮影を行った後（Ｓ８００）、一旦得られた画像データをＲＡＭに保存する（Ｓ８０２）。その後、自分の記録装置にその画像データを記録するだけの容量があるかどうかを判定する（Ｓ８０４）。判定の結果、容量が残っていれば、画像共有処理を続行する（Ｓ８０６）。つまり、図８Ａに示すＳ４０２以降の処理を行う。一方、記録装置の容量が不足している場合には、デジタルカメラは、グループリストを参照して、いずれかのメンバを選択して、そのメンバに画像データの転送処理を行う（Ｓ８０８）。その結果、転送に失敗した場合には（Ｓ８１０での判定結果が、否定「Ｎ」）、デジタルカメラは、画面にメッセージを表示するなどして、画像データを転送できなかった旨のエラーをユーザに通知する（Ｓ８１４）。一方、転送に成功した場合には（Ｓ８１０での判定結果が、肯定「Ｙ」）、デジタルカメラは、メモリ容量が空いた後に転送した画像データを、転送先から取得するために、配信リストの更新処理を行う（Ｓ８１２）。
【００６１】
Ｓ８１２で行われる処理により、配信リストには、例えば、図１７に示す転送情報が登録される。図１７に示す通り、転送情報には、画像データの転送先となるデジタルカメラなど記録装置を備えた通信装置のＩＰアドレス１５０、転送された画像データの保存先のドライブレター及びディレクトリ名１５２、転送された画像データのファイル名１５４、転送先から取得した画像データの保存先のドライブレター及びディレクトリ１５６などが示される。つまり、デジタルカメラは、自己の記憶装置の容量が空いた後に、配信リストに示される転送情報を参照することで、転送先のＩＰアドレスや画像データの保存先を特定して、その転送先から画像データを取得する。そして、同じく転送情報を参照することで、取得した画像データの保存先を特定して、その画像データを改めて自己の記憶装置に記憶する。これにより、撮影したデジタルカメラで画像データを記録できない場合でも、一旦他のデジタルカメラ等に画像データを待避させることができる。さらに、配信リストに転送情報を登録しておくことで、メモリ容量が空いた段階で、デジタルカメラは、撮影して得られた画像データを容易に転送先から取得して自己の記録装置に記憶することができる。
【図面の簡単な説明】
【００６２】
【図１】本実施形態におけるデジタルカメラの機能ブロックを示す図である。
【図２】本実施形態におけるデジタルカメラを構成する操作部と実行部とをより詳細に示した機能ブロック図である。
【図３】本実施形態におけるデジタルカメラを構成する実行部の撮影処理回路をより詳細に示した機能ブロック図である。
【図４Ａ】本実施形態のおける画像共有システムの処理手順を説明するための図である。
【図４Ｂ】本実施形態のおける画像共有システムの処理手順を説明するための図である。
【図５】各デジタルカメラがＩＰアドレスの登録を行う際の処理手順を示すフローチャートである。
【図６】各デジタルカメラが保持するグループリストの一例を示す図である。
【図７】デジタルカメラがグループリストの生成を行う際の処理手順を示すフローチャートである。
【図８Ａ】本実施形態に係るデジタルカメラによる撮影時における処理手順を示すフローチャートである。
【図８Ｂ】更新処理の手順を示すフローチャートである。
【図９Ａ】配信リストを排他的に扱うために用いるMutexを説明するための図である。
【図９Ｂ】配信プロセスを排他的に実行するために用いるMutexを説明するための図である。
【図１０】各デジタルカメラが保持する配信リストの一例を示す図である。
【図１１】配信プロセスの状態遷移を示す図である。
【図１２】配信プロセスの起動処理の手順を示すフローチャートである。
【図１３Ａ】配信プロセスによる配信処理の手順を示すフローチャートである（その１）。
【図１３Ｂ】配信プロセスによる配信処理の手順を示すフローチャートである（その２）。
【図１４】本実施形態の変形例における画像共有システムのシステム構成を示す図である。
【図１５】本変形例におけるデジタルカメラが保持するグループリストの一例を示す図である。
【図１６】本実施形態の変形例において、メモリ容量が不足している場合に他のメンバに画像データを転送する処理の手順を示すフローチャートである。
【図１７】配信リストに登録される転送情報の一例を示す図である。
【符号の説明】
【００６３】
１  デジタルカメラ、１０  操作部、２０  実行部、３０  無線通信デバイス、４０  通信路、１０１  ＵＩ回路、１０２  操作側制御回路、１０３  操作側通信インタフェース、２０１  撮影処理回路、２０２  実行側制御回路、２０３  実行側通信インタフェース  、２１１  レンズ、２１２  露光制御機構、２１３  撮像素子、２１４  信号処理回路、２１５  Ａ／Ｄ回路、２１６  画像処理回路、２１７  メモリ、２１８  ストロボ機構。
【図１】
0004573729.tif 000002
【図２】
0004573729.tif 000003
【図３】
0004573729.tif 000004
【図４Ａ】
0004573729.tif 000005
【図４Ｂ】
0004573729.tif 000006
【図５】
0004573729.tif 000007
【図６】
0004573729.tif 000008
【図７】
0004573729.tif 000009
【図８Ａ】
0004573729.tif 000010
【図８Ｂ】
0004573729.tif 000011
【図９Ａ】
0004573729.tif 000012
【図９Ｂ】
0004573729.tif 000013
【図１０】
0004573729.tif 000014
【図１１】
0004573729.tif 000015
【図１２】
0004573729.tif 000016
【図１３Ａ】
0004573729.tif 000017
【図１３Ｂ】
0004573729.tif 000018
【図１４】
0004573729.tif 000019
【図１５】
0004573729.tif 000020
【図１６】
0004573729.tif 000021
【図１７】
0004573729.tif 000022