(57)【要約】【課題】複数の機器間でファイルを送受信処理する際に、無駄なファイルの送受信処理を省くことができる技術の提供。【解決手段】複数の装置間でファイルを送受信する通信システムにおいて、送信側装置は、自装置の識別情報を送信する識別情報送信手段と、自装置が所有するファイル及びファイル名を送信するファイル送信手段とを備え、受信側装置は、前記送信側装置の識別情報を受信する識別情報受信手段と、前記送信側装置から送信されるファイル及びファイル名を受信するファイル受信手段と、前記送信側装置から受信した識別情報及びファイル名に基づいて、自装置に格納する際に付与するファイル名を決定するファイル名決定手段とを具備する。【選択図】      図１
2006079551.tif 000002
【特許請求の範囲】
【請求項１】
複数の装置間でファイルを送受信する通信システムにおいて、
送信側装置は、
自装置の識別情報を送信する識別情報送信手段と、
自装置が所有するファイル及びファイル名を送信するファイル送信手段とを備え、
受信側装置は、
前記送信側装置の識別情報を受信する識別情報受信手段と、
前記送信側装置から送信されるファイル及びファイル名を受信するファイル受信手段と、
前記送信側装置から受信した識別情報及びファイル名に基づいて、自装置に格納する際に付与するファイル名を決定するファイル名決定手段とを具備することを特徴とするシステム。
【請求項２】
前記送信側装置は、自装置が所有するファイルのリストを送信するリスト送信手段を更に備え、
前記受信側装置は、
前記送信側装置から受信したファイルのリストから未所有のファイルを判別する判別手段と、
前記送信側装置から受信したファイルに前記ファイル名決定手段により決定されたファイル名を付与して格納する格納手段と、
前記格納手段に格納されたファイル名から前記送信側装置で付与されていた元のファイル名及び識別情報を復元するファイル名復元手段と、
前記復元されたファイル名及び識別情報を含む自己の所有するファイルのリストを作成するリスト作成手段とを更に備えることを特徴とする請求項１に記載のシステム。
【請求項３】
前記受信側装置は、
前記識別情報に基づいて、ファイルを収容するディレクトリの名前を決定するディレクトリ名決定手段と、
前記決定された名前のディレクトリを前記格納手段上に作成するディレクトリ作成手段とを備え、
前記格納手段は、前記作成されたディレクトリにファイルを格納することを特徴とする請求項１又は２に記載のシステム。
【請求項４】
前記受信側装置は、前記格納手段に作成されたディレクトリ名から前記送信側装置の識別情報を復元する識別情報復元手段を更に備え、
前記リスト作成手段は、前記復元された識別情報を含む自己の所有するファイルのリストを作成することを特徴とする請求項３に記載のシステム。
【請求項５】
前記受信側装置は、前記送信側装置の識別情報と前記決定されたファイル名と前記復元されたファイル名とを関連付けて記憶するファイル関連付け手段を更に備えることを特徴とする請求項２乃至４のいずれか１項に記載のシステム。
【請求項６】
前記受信側装置は、前記送信側装置の識別情報と前記決定されたディレクトリ名とを関連付けて記憶するディレクトリ関連付け手段を更に備えることを特徴とする請求項２乃至４のいずれか１項に記載のシステム。
【請求項７】
前記受信側装置は、
前記送信側装置が所有するファイルからファイル識別情報を取得する受信ファイル識別情報受信手段と、
自装置が所有するファイルからファイル識別情報を取得する送信ファイル識別情報取得手段とを備え、
前記判別手段は、前記各ファイル識別情報を比較することにより自装置が所有していないファイルを判別し、未所有であると判別したファイルを受信するファイル受信手段を更に備えることを特徴とする請求項１乃至６のいずれか１項に記載のシステム。
【請求項８】
前記ファイル名決定手段は、前記ファイル識別情報に含まれるファイル名及び前記装置の識別情報に基づいて第１のファイル名を決定し、当該第１のファイル名を持つファイルが既にある場合は、第１のファイル名と異なる第２のファイル名を決定することを特徴とする請求項７に記載のシステム。
【請求項９】
前記ファイル識別情報には、ファイル名、ファイルを作成した時刻情報、及びファイルを作成した装置の識別情報が含まれることを特徴とする請求項７又は８に記載のシステム。
【請求項１０】
前記受信側装置は、
自装置が所有するファイルから、前記送信側装置に送信するファイルを選択する送信ファイル選択手段を更に備えることを特徴とする請求項１乃至９のいずれか１項に記載のシステム。
【請求項１１】
前記送信側装置は、
前記受信側装置に送信するファイルに電子透かし情報を付加する電子透かし付加手段を更に備えることを特徴とする請求項１乃至１０に記載のシステム。
【請求項１２】
前記送信側装置及び受信側装置は、被写体の画像を光電変換により撮像する撮像手段を備え、前記ファイルは前記撮像手段により撮像された画像ファイルであることを特徴とする請求項１乃至１１に記載のシステム。
【請求項１３】
他の装置からファイルを受信する通信装置において、
送信側装置から送信される識別情報を受信する識別情報受信手段と、
前記送信側装置から送信されるファイル及びファイル名を受信するファイル受信手段と、
前記送信側装置から受信した識別情報及びファイル名に基づいて、自装置に格納する際に付与するファイル名を決定するファイル名決定手段とを具備することを特徴とする装置。
【請求項１４】
第１の装置からファイルを受信する第２の装置が、当該第１の装置から受信したファイルを第３の装置に送信する通信システムにおいて、
第１の装置は、
自装置が所有するファイルと、当該ファイルの前記第３の装置への送信を不許可とする不許可情報とを送信する送信手段を備え、
前記第２の装置は、
前記第１の装置が所有するファイルと、前記不許可メッセージとを受信する受信手段と、
前記第１の装置が所有するファイルを前記不許可情報に関連付けして記憶する記憶手段と、
前記不許可情報が付されたファイルを除く、自装置が所有するファイルを第３の装置に送信する送信手段とを備えることを特徴とするシステム。
【請求項１５】
他の装置からファイルを受信する通信装置において、
通信が完了した装置の情報を記憶する記憶手段と、
自装置との通信が可能な装置であって、前記通信が完了していない装置があるか判定する判定手段と、
前記判定された装置からファイルを受信する受信手段と、
前記判定手段により前記通信が完了していない装置がないと判定されるまで前記受信手段によるファイルの受信を実行し、前記判定手段により前記通信が完了していない装置がないと判定された場合、前記記憶手段に記憶されている装置の情報を消去する制御手段とを具備することを特徴とする装置。
【請求項１６】
複数の装置間でファイルを送受信する通信方法であって、
送信側は、
自装置の識別情報を送信する識別情報送信工程と、
自装置が所有するファイル及びファイル名を送信するファイル送信工程とを備え、
受信側は、
前記送信側の識別情報を受信する識別情報受信工程と、
前記送信側から送信されるファイル及びファイル名を受信するファイル受信工程と、
前記送信側から受信した識別情報及びファイル名に基づいて、自装置に格納する際に付与するファイル名を決定するファイル名決定工程とを備えることを特徴とする方法。
【請求項１７】
他の装置からファイルを受信する通信方法であって、
送信側から送信される識別情報を受信する識別情報受信工程と、
前記送信側から送信されるファイル及びファイル名を受信するファイル受信工程と、
前記送信側から受信した識別情報及びファイル名に基づいて、自装置に格納する際に付与するファイル名を決定するファイル名決定工程とを備えることを特徴とする方法。
【請求項１８】
第１の装置からファイルを受信する第２の装置が、当該第１の装置から受信したファイルを第３の装置に送信する通信方法であって、
第１の装置は、
自装置が所有するファイルと、当該ファイルの前記第３の装置への送信を不許可とする不許可情報とを送信する送信工程を備え、
前記第２の装置は、
前記第１の装置が所有するファイルと、前記不許可メッセージとを受信する受信工程と、
前記第１の装置が所有するファイルを前記不許可情報に関連付けして記憶する記憶工程と、
前記不許可情報が付されたファイルを除く、自装置が所有するファイルを第３の装置に送信する送信工程とを備えることを特徴とする通信方法。
【請求項１９】
他の装置からファイルを受信する通信方法であって、
通信が完了した装置の情報を記憶する記憶工程と、
自装置との通信が可能な装置であって、前記通信が完了していない装置があるか判定する判定工程と、
前記判定された装置からファイルを受信する受信工程と、
前記判定手段により前記通信が完了していない装置がないと判定されるまで前記受信手段によるファイルの受信を実行し、前記判定手段により前記通信が完了していない装置がないと判定された場合、前記記憶手段に記憶されている装置の情報を消去する制御工程とを備えることを特徴とする方法。
【請求項２０】
請求項１６乃至１９のいずれか１項に記載の通信方法をコンピュータにより実現するためのプログラム。
【請求項２１】
請求項２０に記載のプログラムを記憶したコンピュータ読取可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の装置間でファイルを送受信する通信技術に関するものである。
【背景技術】
【０００２】
従来の情報処理機器として、データをファイル単位で取り扱い、他の機器との間でファイルの送受信処理（同期処理）を行うものが存在する。
【０００３】
例えば、特許文献１は、共有機器がユーザを識別し、端末との同期処理によって得たファイルをユーザ毎に管理するものである。
【０００４】
また、特許文献２は、他のカメラが撮影した画像を自カメラに送ってもらうものである。
【特許文献１】特開２００１−１１７８００号公報
【特許文献２】特開２００３−１０１８３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記先行技術には、以下のような課題が存在する。すなわち、相手からファイルをもらうときにどのような名前付けを行うかという問題である。
【０００６】
相手からファイルを一旦もらったら、後で利用することはしないというなら、どのような名前付けをしても困ることはない。しかし、ある端末との間で同期処理を繰り返し行うのであれば、そのファイルは既に所有しているということを示すために、一貫した名前付け方法を採ることが望ましい。その際、最も簡便なのがファイルの送信元と同じファイル名を採用することである。しかし、そのような名前付けをした場合、第３の端末と同期処理を行ったときに、既に第１の端末が異なる内容で同じ名前のファイルを持っていた場合に（このファイルは第２の端末との同期処理で得たファイルとする。）どうするかが問題となる。
【０００７】
近年、デジタルスチルカメラ（以下、デジタルカメラと略称する。）のように、機器が記憶媒体にファイルを蓄積するものが登場してきた。ファイル保存には人間が介在せず、機械的にファイルの名前付けが行われるものも多い。この場合、ある一定の規則に基づいてファイルの名前付けが行われるので、異なる機器の間において、異なるファイルであるにもかかわらず同じファイル名が付けられることは当然のこととなっている。そして、このような状況下で同期処理を行おうとすると、上記のような名前付けの問題が発生することとなる。
【０００８】
本発明は、上記問題点に鑑みてなされ、その第１の目的は、不特定の３台以上の機器間でファイルを送受信処理する際に、同じ名前であっても他の機器から得たファイルと区別できるようなファイルの名前付けを行うことができ、無駄なファイルの送受信処理を省くことができる技術を提供することである。
【０００９】
また、第２の目的は、機器が記憶媒体にファイルを書き込む際のファイルシステム規格に適合するようなファイルの名前付けを行うことができる技術を提供することである。
【００１０】
また、第３の目的は、送信相手から受け取ったファイルの名前が、それ以前に受け取ったファイルの名前と同じ場合であっても、ファイルの内容が異なるときは、そのファイルを以前受け取ったファイルと異なるファイルとして受け取ることができる技術を提供することである。
【００１１】
また、第４の目的は、２台の機器間でファイルを送受信するときに、その２台の機器以外へのファイルの送信を禁止することができる技術を提供することである。
【００１２】
また、第５の目的は、複数（５台以上）の機器間でのファイルの送受信処理を、全ての機器の間で効率よく完了させることができる技術を提供することである。
【００１３】
また、第６の目的は、不特定多数機器間でファイルを送受信処理する際に、著作権による保護を可能とする技術を提供することである。
【課題を解決するための手段】
【００１４】
上述した問題を解決し、目的を達成するために、本発明の通信システムは、複数の装置間でファイルを送受信する通信システムにおいて、送信側装置は、自装置の識別情報を送信する識別情報送信手段と、自装置が所有するファイル及びファイル名を送信するファイル送信手段とを備え、受信側装置は、前記送信側装置の識別情報を受信する識別情報受信手段と、前記送信側装置から送信されるファイル及びファイル名を受信するファイル受信手段と、前記送信側装置から受信した識別情報及びファイル名に基づいて、自装置に格納する際に付与するファイル名を決定するファイル名決定手段とを具備する。
【００１５】
また、本発明の通信装置は、他の装置からファイルを受信する通信装置において、送信側装置から送信される識別情報を受信する識別情報受信手段と、前記送信側装置から送信されるファイル及びファイル名を受信するファイル受信手段と、前記送信側装置から受信した識別情報及びファイル名に基づいて、自装置に格納する際に付与するファイル名を決定するファイル名決定手段とを具備する。
【００１６】
また、本発明の通信システムは、第１の装置からファイルを受信する第２の装置が、当該第１の装置から受信したファイルを第３の装置に送信する通信システムにおいて、第１の装置は、自装置が所有するファイルと、当該ファイルの前記第３の装置への送信を不許可とする不許可情報とを送信する送信手段を備え、前記第２の装置は、前記第１の装置が所有するファイルと、前記不許可メッセージとを受信する受信手段と、前記第１の装置が所有するファイルを前記不許可情報に関連付けして記憶する記憶手段と、前記不許可情報が付されたファイルを除く、自装置が所有するファイルを第３の装置に送信する送信手段とを備える。
【００１７】
また、本発明の通信装置は、他の装置からファイルを受信する通信装置において、通信が完了した装置の情報を記憶する記憶手段と、自装置との通信が可能な装置であって、前記通信が完了していない装置があるか判定する判定手段と、前記判定された装置からファイルを受信する受信手段と、前記判定手段により前記通信が完了していない装置がないと判定されるまで前記受信手段によるファイルの受信を実行し、前記判定手段により前記通信が完了していない装置がないと判定された場合、前記記憶手段に記憶されている装置の情報を消去する制御手段とを具備する。
【００１８】
また、本発明の通信方法は、複数の装置間でファイルを送受信する通信方法であって、送信側は、自装置の識別情報を送信する識別情報送信工程と、自装置が所有するファイル及びファイル名を送信するファイル送信工程とを備え、受信側は、前記送信側の識別情報を受信する識別情報受信工程と、前記送信側から送信されるファイル及びファイル名を受信するファイル受信工程と、前記送信側から受信した識別情報及びファイル名に基づいて、自装置に格納する際に付与するファイル名を決定するファイル名決定工程とを備える。
【００１９】
また、本発明の通信方法は、他の装置からファイルを受信する通信方法であって、送信側から送信される識別情報を受信する識別情報受信工程と、前記送信側から送信されるファイル及びファイル名を受信するファイル受信工程と、前記送信側から受信した識別情報及びファイル名に基づいて、自装置に格納する際に付与するファイル名を決定するファイル名決定工程とを備える。
【００２０】
また、本発明の通信方法は、第１の装置からファイルを受信する第２の装置が、当該第１の装置から受信したファイルを第３の装置に送信する通信方法であって、第１の装置は、自装置が所有するファイルと、当該ファイルの前記第３の装置への送信を不許可とする不許可情報とを送信する送信工程を備え、前記第２の装置は、前記第１の装置が所有するファイルと、前記不許可メッセージとを受信する受信工程と、前記第１の装置が所有するファイルを前記不許可情報に関連付けして記憶する記憶工程と、前記不許可情報が付されたファイルを除く、自装置が所有するファイルを第３の装置に送信する送信工程とを備える。
【００２１】
また、本発明の通信方法は、他の装置からファイルを受信する通信方法であって、通信が完了した装置の情報を記憶する記憶工程と、自装置との通信が可能な装置であって、前記通信が完了していない装置があるか判定する判定工程と、前記判定された装置からファイルを受信する受信工程と、前記判定手段により前記通信が完了していない装置がないと判定されるまで前記受信手段によるファイルの受信を実行し、前記判定手段により前記通信が完了していない装置がないと判定された場合、前記記憶手段に記憶されている装置の情報を消去する制御工程とを備える。
【００２２】
なお、本発明は、上記通信方法をコンピュータに実行させるためのプログラムや当該プログラムを記憶したコンピュータ読取可能な記憶媒体によっても実現可能である。
【発明の効果】
【００２３】
以上説明したように、本発明によれば、不特定の３台以上の機器間でファイルを送受信処理する際に、同じ名前であっても他の機器から得たファイルと区別できるようなファイルの名前付けを行うことができ、無駄なファイルの送受信処理を省くことができる。
【００２４】
具体的には、第１の装置が第２及び第３の装置との間でファイルの送受信を行う場合、第２の装置と第３の装置が同じ名前のファイルを持っていたとしても、それらを区別して送受信できるように、他の装置から得たファイルを格納するときのファイルの名前付けを一貫性のあるものにする。これにより、ある装置と繰り返して送受信を行ったとしても、それ以前にそのファイルを受け取ったかどうかを判別でき、無駄なファイル送受信処理を省くことができる。
【００２５】
また、機器が記憶媒体にファイルを書き込む時に所定のファイルシステム規格（例えば、デジタルカメラにおけるカメラファイルシステム規格（Design rule for Camera File system（以下、ＤＣＦと略称する。））に適合するようなファイルの名前付けを行うことができる。
【００２６】
また、送信相手から受け取ったファイルの名前が、それ以前に受け取ったファイルの名前と同じ場合であっても、ファイルの内容が異なるときは、そのファイルを以前受け取ったファイルと異なるファイルとして受け取ることができる。
【００２７】
また、２台の機器間でファイルを送受信するときに、その２台の機器以外へのファイルの送信を禁止することができる。
【００２８】
また、複数（５台以上）の機器間でのファイルの送受信処理を、全ての機器の間で効率よく完了させることができる。
【００２９】
また、不特定多数機器間でファイルを送受信処理する際に、著作権による保護を可能とする技術を提供することができる。
【発明を実施するための最良の形態】
【００３０】
以下に、添付図面を参照して本発明を実施するための最良の形態について詳細に説明する。
【００３１】
尚、以下に説明する実施の形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されるべきものであり、本発明は以下の実施の形態に限定されるものではない。
【００３２】
また、本発明は、後述する実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはCPUやMPU）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
【００３３】
図１は本発明に係る一つの実施形態であるデジタルカメラのネットワーク構成を示した図である。
【００３４】
同図において、１０１はデジタルカメラ（図示のように単にカメラと記述した場合には、デジタルカメラを意味するものとする。）。１０２はＬＡＮ。１０３はインターネットである。デジタルカメラ１０１ａと１０１ｂは無線接続されている。無線接続の方式は、赤外線、無線ＬＡＮ、Ｂｌｕｅｔｏｏｔｈ、あるいはその他のいずれでもよく、方式を問わない。デジタルカメラ１０１ａと１０１ｃはＬＡＮ１０２経由で有線接続されている。デジタルカメラ１０１ａと１０１ｄはインターネット１０３経由で接続されている。
【００３５】
同図はデジタルカメラが上記の接続形態のいずれにおいても、本発明が適用可能なことを示しており、接続形態如何には関わらない。
【００３６】
図２はデジタルカメラの内部構成を示したブロック図である。
【００３７】
同図において、デジタルカメラ１０１は、デジタルカメラ１０１全体を制御するところの中央制御装置（以下、ＣＰＵと称す。）２０１、各種動作プログラムを読み取り可能に格納したＲＯＭ２０２、プログラム動作中の一時的な値の保存に用いるＲＡＭ２０３、各種時間を計測するタイマ２０４、各種設定メニュー及び画像を表示するディスプレイ２０５、音声録音に用いるマイク２０６、音声出力に用いるスピーカ２０７、各種操作ボタン２０８、撮影した画像ファイルや各種設定データファイルを保存しておくための不揮発性メモリであるＦｌａｓｈＲＯＭ２０９、ＬＡＮ１０２と接続するインタフェースとなるネットワークＩ／Ｆ２１０、図示しないレンズを通して集めた光を電気信号に置き換える電荷結合素子（以下、ＣＣＤと称す。）２１１からなり、相互にバスで接続されている。
【００３８】
なお、ＦｌａｓｈＲＯＭ２０９はデジタルカメラ１０１に内蔵されていてもよいし、外部から挿入可能なメモリカード上に搭載されているものでもよい。
【００３９】
また、デジタルカメラ１０１が撮影した画像ファイルの格納場所はＦｌａｓｈＲＯＭ２０９のほか、ＲＡＭ２０３でもよいし、または図示しないがハードディスク等の記憶媒体でもよい。一般に書き込み可能な記憶媒体であってファイルシステムを作成できるものなら何でもよいが、ここでは、ＦｌａｓｈＲＯＭ２０９に画像ファイルが記録されているものとする。
【００４０】
次に、図３を用いて、カメラＡ（例えばデジタルカメラ１０１ａ）とカメラＢ（例えばデジタルカメラ１０１ｂ）の間でファイルの送受信処理（同期処理）を行った場合の各々のＦｌａｓｈＲＯＭ２０９に格納されたファイルの状態について説明する。
【００４１】
同図において、同期前にカメラＡが所有しているファイルの状態はルートディレクトリ以下にディレクトリＤＣＩＭが存在し、ＤＣＩＭディレクトリ以下にディレクトリ１００ＡＡＡＡＡが存在し、ディレクトリ１００ＡＡＡＡＡ以下に３個のＪＰＥＧ画像ファイル（ＡＡＡＡ０００１．ＪＰＧ、ＡＡＡＡ０００２．ＪＰＧ、ＡＡＡＡ０００３．ＪＰＧ）が存在しているものとする。
【００４２】
以降の同様の図ではＪＰＧの拡張子がついたＪＰＥＧファイル以外はディレクトリの名前を示すものとする。
【００４３】
また、同期前にカメラＢが所有しているファイルの状態は図３に示す通りである。
【００４４】
なお、この画像ファイルの格納形式は、社団法人日本電子工業振興協会（ＪＥＩＤＡ）が定めたカメラファイルシステム規格（ＤＣＦ）バージョン１．０に適合している。
【００４５】
カメラＡがカメラＢとファイルの同期処理を行った場合、同期後のファイルの状態は図３のようになる。つまり、カメラＡにおいて、カメラＢから受け取ったファイルは新規に作成されたディレクトリ９９９ＧＩＶＥＮ以下に置かれる。その際、カメラＢのＢＢＢＢ０００１．ＪＰＧファイルはＢＢＢＢ０００１＿ＦｒｏｍＢ．ＪＰＧと名前が変更される。ＢＢＢＢ０００２．ＪＰＧ及びＢＢＢＢ０００３．ＪＰＧについても同様である。
【００４６】
ＢＢＢＢ０００１．ＪＰＧという名前のままだと、もし第３のカメラであるカメラＣ（図示せず）が同一名称のファイルを持っていて、カメラＡがカメラＣと同期処理を行った場合、これと区別がつかなくなる。そこで“＿ＦｒｏｍＢ”という文字列がファイル名に付け加わることにより、そのファイルがカメラＢから受け取ったファイルであることをＣＰＵ２０１が知ることができるようになっている。
【００４７】
なお、ここでＢというのは、カメラＢのＢであるが、カメラＢにユーザが別の名前をつけている場合はその名前がついていてもよい。また、ユーザがつけた名前でなくとも、機器のシリアル番号のようなカメラ個体を識別するようなものでもよい。要するにカメラを識別できるものであればよい。また、カメラのネットワークＩ／Ｆ２１０の識別番号で区別する手もある。例えばネットワークＩ／Ｆ２１０がInternet Protocol Version 6(IPv6)に対応している場合は、そのネットワークＩ／Ｆ２１０が世界で一意に識別されるので、これをカメラの識別に使ってもよい。ネットワークＩ／Ｆ２１０がカメラに内蔵されている場合は、まさにカメラの識別が可能であるし、外付けの場合でも、ネットワークＩ／Ｆ２１０を取り替えることは少ないので、実用上問題がない。
【００４８】
同期処理により得たファイルをＢＢＢＢ０００１＿ＦｒｏｍＢ．ＪＰＧと名づけた場合は、ファイル名がいわゆる８．３形式（ファイル名の拡張子の前が８文字以内かつ拡張子が３文字以内）のルールから外れ、かつ、ＤＣＦ規格からも外れることになる。
【００４９】
カメラＡはこのようなファイルの名前付けを許容しているものとする。このような名前付けを許容したことにより、どのカメラからファイルを得ようとただ１つのディレクトリに収めることができ、またファイル名だけでどのカメラからファイルを得たのか判別できるという効果がある。
【００５０】
例えば、この後、カメラＡがＢＢＢＢ０００１．ＪＰＧというファイルを持っているカメラＣと同期処理を行った場合、そのファイルはディレクトリ９９９ＧＩＶＥＮ以下にＢＢＢＢ０００１＿ＦｒｏｍＣ．ＪＰＧという名前で置けばよいことになる。
【００５１】
図３において、カメラＡとカメラＢが同期処理を行った場合のカメラＢが所有することになるファイルの状態についても図示している。これも上記と同様に同期処理される。以降、一のカメラのファイルの状態さえ示せば十分であるので、他のカメラの状態についての説明は省略する。
【００５２】
次に、図４のフローチャートを用いて、図３の同期処理が行われる際の、カメラＡとカメラＢの同期手順１について説明する。
【００５３】
最初に、カメラＡのユーザが、カメラＢに対して、カメラＢが所有していないファイルをカメラＡから渡すために、所定の同期処理操作を行うと、ＣＰＵ２０１は同期開始コマンドをカメラＢに対して送信する（ステップＳ４０１）。
【００５４】
上記同期開始コマンドには、カメラの識別符号であるカメラＩＤ、この場合は“Ａ”がパラメータとして付加される。なお、上述したように、これはユーザが自由にカメラＡに設定したデータでもよいし、機器にあらかじめ設定されたデータでもよいし、あるいはそれらの組み合わせでも何でもよい。カメラＢはそのデータをファイルの名前付けに用いるだけである。
【００５５】
ここで、もしカメラが異なるのにカメラＩＤが同一である場合はどうなるのかが問題になるが、その時は、ファイルの名前付けに用いる文字列を新しいカメラＩＤでは従来のカメラＩＤとは異ならせ、それを対応テーブルで管理する方法をとることが考えられる。この対応テーブルを用いる方法については、同様の手法を後で詳しく述べることにする。
【００５６】
ステップＳ４０１で同期開始コマンドが送られてくると、カメラＢのＣＰＵ２０１はこれを受信する（ステップＳ４０８）。カメラＢはユーザの所定の操作により、このコマンドが受信できる状態になっているものとする。
【００５７】
なお、以降のフローチャートでは行為の主体は制御手段であるところのＣＰＵ２０１であることがほとんどである。行為主体を明示しないときはＣＰＵ２０１が主体であるものとする。
【００５８】
次に、カメラＡは自分が所有しているファイルのリストをカメラＢに対して送信する（ステップＳ４０２）。
【００５９】
所有しているファイルのリストはファイル名の列挙となり、図３の例で言えば、ＡＡＡＡ０００１．ＪＰＧ、ＡＡＡＡ０００２．ＪＰＧ及びＡＡＡＡ０００３．ＪＰＧのようになる。
【００６０】
ステップＳ４０９で上記ファイルリストを受信したカメラＢは、上記ファイルリストで示されたファイルの内、カメラＢが所有していないファイルのリストをカメラＡに対して送り返す（ステップＳ４１０）。
【００６１】
図３の例では、上記の３つのファイル共、カメラＢは所有していないので、上記３つのファイルのリストを返すことになる。
【００６２】
ステップＳ４０３でカメラＢが未所有のファイルリストを受信したカメラＡは、ステップＳ４０４からステップＳ４０６にかけてのループ処理で上記未所有ファイルリストに載ったファイルをカメラＢに送信する。
【００６３】
その際、一つのファイルにつき、まずこれから送ろうとするファイル名を送信し（ステップＳ４０５）、次にそのファイルの中身を送信する（ステップＳ４０６）。
【００６４】
一方、カメラＢでも、未所有ファイルリストをカメラＡに対して送ったことから、いくつのファイルをカメラＡから受信することになるのかわかっているので、ステップＳ４１１からステップＳ４１５にかけて、受信するファイルの数分、ループを回す。
【００６５】
カメラＡのファイル送信に合わせて、まずファイル名を受信し（ステップＳ４１２）、次にファイルの中身を受信する（ステップＳ４１３）。
【００６６】
このとき、カメラＡからファイル名の長さや、ファイルの中身の長さ、あるいはファイルの中身の送信の終わりを通知しないと、カメラＢでは正常にデータが受信できないことはもちろんであるが、通信プロトコルとしては当然のことであるので、そのような詳細は省いて説明している。
【００６７】
次に、カメラＢはステップＳ４１２で受信したファイル名に基づき、ファイルをＦｌａｓｈＲＯＭ２０９に格納する際の名前を決定する（ステップＳ４１４）。ここでは、図３に従い、ＡＡＡＡ０００１．ＪＰＧの場合、ＡＡＡＡ０００１＿ＦｒｏｍＡ．ＪＰＧと決定する。
【００６８】
そして、ステップＳ４１３で受信したファイルをＡＡＡＡ０００１＿ＦｒｏｍＡ．ＪＰＧという名前でＦｌａｓｈＲＯＭ２０９のディレクトリ／ＤＣＩＭ／９９９ＧＩＶＥＮ（ディレクトリの区切りを“／”で示している）以下に格納する（ステップＳ４１５）。上記ディレクトリは存在しなければ、ステップＳ４１５の前に作成される（図示せず）。
上述のようにして全てのファイルについて送信が終了すると、カメラＡは同期終了コマンドをカメラＢに対して送信して（ステップＳ４０７）、終了する。
【００６９】
カメラＢでは同期終了コマンドを受信すると（ステップＳ４１６）、終了する。
【００７０】
同期終了コマンドがあれば、カメラＢは同期処理の終了を知ることができる。したがって、ステップＳ４１１の代わりに、同期終了コマンドを受信したかどうかで、ファイル受信の終了を判定することもできる。
【００７１】
以上、図４を用いてカメラＡが所有するファイルをカメラＢに対して同期処理する手順について説明した。逆にカメラＢが所有するファイルをカメラＡに対して同期処理させる場合は、図４のフローにおいて、カメラＡとカメラＢの立場を逆にすればよい。
【００７２】
そして、カメラＡからカメラＢに対して同期させる処理に続いて、カメラＢからカメラＡに対して同期させる処理を行えば、カメラＡとカメラＢの間の相互同期処理が可能になる。
【００７３】
なお、図４の例では、図３においてカメラＡが所有しているファイル全てについて同期処理を行ったが、ファイルの一部を選択するようにしてもよい。つまり、所定の操作によって、前もって一乃至複数のファイルを選択しておく。これら選択したファイルがカメラＡ所有ファイルのファイルリストの中にリストアップされる。選択されなかったファイルはファイルリストの中には入らない。
【００７４】
このようにすることによって、カメラＡはカメラＢに渡すファイルを限定することができる。
【００７５】
なお、選択するのはファイルに限らず、ディレクトリであってもよい。図３では画像ファイルが存在するディレクトリは１００ＡＡＡＡＡしか存在しないが、例えば、他にもディレクトリが存在する場合、これらの中から一乃至複数のディレクトリを選択してもよい。また、選択対象はファイルとディレクトリの組み合わせでもよい。
【００７６】
次に、図５のフローチャートを用いて、カメラＡとカメラＢの間の相互の同期手順の別の例（同期手順２）について説明する。
【００７７】
同図において、まずカメラＡのユーザが所定の同期処理操作を行うと、カメラＡから同期開始コマンドがカメラＢに対して送信される（ステップＳ５０１）。
【００７８】
その時、カメラＢでは同期開始コマンドを受信する（ステップＳ５０６）。
【００７９】
次に、カメラＡは自分が所有するファイルについて同期処理を行う（ステップＳ５０２）。この処理は図４におけるステップＳ４０２からステップＳ４０６までの処理に相当する。
【００８０】
上記同期処理に合わせてカメラＢでも同期処理が行われる（ステップＳ５０７）。この処理は図４におけるステップＳ４０９からステップＳ４１５までの処理に相当する。
【００８１】
次に、カメラＢはカメラＡに対し同期開始コマンドを送信する（ステップＳ５０８）。その時、同期開始コマンドのパラメータであるカメラＩＤとしては”Ｂ”が入る。カメラＡはこの同期開始コマンドを受信する（ステップＳ５０３）。
【００８２】
次に、カメラＢが所有しているファイルについて、カメラＢからカメラＡに対して同期処理が行われる（ステップＳ５０９及びステップＳ５０４）。丁度、ステップＳ５０２及びステップＳ５０７とは逆の関係になる。
【００８３】
最後に、カメラＡからカメラＢに対して同期終了コマンドが送信され（ステップＳ５０５及びステップＳ５１０）、終了する。
【００８４】
以上のように、図５に示すシーケンスでは、カメラＡとカメラＢの間の同期処理が一気に行われ、図４のシーケンスを２回繰り返す必要がない。つまり、同期処理開始のための操作が１回で済む。また、同期終了コマンド送信も１回で済むという効果がある。
【００８５】
次に、カメラＡとカメラＢの間の同期手順３について、図６及び図７のフローチャートを用いて説明する。
【００８６】
図６におけるステップＳ６０１〜ステップＳ６０７及びステップＳ６０８〜ステップＳ６１６は、図４におけるステップＳ４０１〜ステップＳ４０７及びステップＳ４０８〜ステップＳ４１６と同様であり、ここまでの処理でカメラＡからカメラＢに対する同期処理が終了する。
【００８７】
この時点で、カメラＢはカメラＡに送るべきファイルを知っている。なぜなら、ステップＳ６０９において、カメラＡが所有しているファイルのリストを受信しているので、カメラＡが未所有で、かつ、カメラＢが所有しているファイルがどれかが分かるからである。
【００８８】
そこで、これらのファイルを、図７のステップＳ７０７〜ステップＳ７０９にかけてのループでカメラＡに送信する。
【００８９】
一方、カメラＡはステップＳ７０１からステップＳ７０５にかけてのループで送られてきたファイルを受信する。
【００９０】
そして、カメラＢから同期終了コマンドがカメラＡに対して送られると（ステップＳ７１０及びステップＳ７０６）、終了する。
【００９１】
以上のようにすると、カメラＡとカメラＢの間の同期処理を行うのに、ファイルリストの送信が４回ではなく、２回で済ませることができる。
【００９２】
次に、カメラＡとカメラＢの間の同期手順１０について、図３４及び図３５のフローチャートを用いて説明する。
【００９３】
図３４及び図３５のフローは図６及び図７のフローと３つのステップで異なっている。すなわち、ステップＳ６１０でカメラＢが未所有ファイルリストを送信する代わりに、ステップＳ３５１０でカメラＢは所有ファイルリストを送信している。つまり、ステップＳ３５０９で受信したカメラＡの所有ファイルリストには関係なく、自分の所有ファイルリストを送信している。これにより、カメラＡは自分の送るべきファイルを（ａ∩ｂ’）（但し、ａはＡ所有ファイルリストが示すファイルの集合、ｂはＢ所有ファイルリストが示すファイルの集合、∩は積集合を表す記号、’は補集合を表す記号）の演算により求めることができる。こうして求めたファイルをカメラＡはステップＳ３５０６でカメラＢに送信する。
【００９４】
一方、カメラＢは自分の送るべきファイルを（ｂ∩ａ’）の演算で求めることができる。こうして求めたファイルをカメラＢはステップＳ３６０９でカメラＡに送信する。
【００９５】
以上のようにすると、同期手順３（図６及び図７）の所で述べたのと同様、カメラＡとカメラＢの間の同期処理を行うのに、ファイルリストの送信が４回ではなく、２回で済ませることができる。
【００９６】
次に、図１０のフローチャートを用いて、ファイルリストにファイル名だけではなく、カメラＩＤも含めた場合の同期手順４について説明する。
【００９７】
最初に、カメラＡのユーザが所定の操作を行うことにより、カメラＡはカメラＢに対し同期開始コマンドを送信する（ステップＳ１００１及びステップＳ１００８）。
【００９８】
次に、カメラＡは所有ファイルリストを送信する（ステップＳ１００２及びステップＳ１００９）。
【００９９】
カメラＡが所有ファイルリストを送信する際の送信手順１の詳細を図８のフローチャートを用いて説明する。
【０１００】
最初に、ファイルリストを空にする（ステップＳ８０１）。
【０１０１】
次に、自分が撮影したファイルはもうないかチェックする（ステップＳ８０２）。撮影したファイルがまだある場合は、次のファイルを選択し、そのファイルのファイル名及び自カメラのカメラＩＤをファイルリストに加える（ステップＳ８０３）。
【０１０２】
その後、ステップＳ８０２に戻り、自分が撮影した全てのファイルについて処理する。
【０１０３】
なお、自分が撮影した全てのファイルについて処理する代わりに、上述したように前もって選択したファイルの全てについて上記のファイルリストに加える処理を行ってもよい。
【０１０４】
自分が撮影したファイルについて全て終了した後、今度は他のカメラとの同期処理により得たファイルはもうないかチェックする（ステップＳ８０４）。
【０１０５】
同期処理で得たファイルがまだある場合は、次のファイルを選び（ステップＳ８０５）、その選択したファイルから元のファイル名を復元する（ステップＳ８０６）。
【０１０６】
例えば、図３の同期処理後のカメラＡが所有しているファイルの状態であれば、ＢＢＢＢ０００１＿ＦｒｏｍＢ．ＪＰＧというファイル名からＢＢＢＢ０００１．ＪＰＧというファイル名を得る処理がこの処理にあたる。
【０１０７】
次に、選択したファイルのファイル名からそのファイルを得たカメラのカメラＩＤを得る（ステップＳ８０７）。上記のＢＢＢＢ０００１＿ＦｒｏｍＢ．ＪＰＧというファイルであれば、ＢというカメラＩＤを得る処理がこの処理にあたる。
【０１０８】
以上のようにして得たファイル名及びカメラＩＤをファイルリストに加える（ステップＳ８０８）。
【０１０９】
そして、ステップＳ８０４に戻り、同期処理で得た全てのファイルについて処理を行う。同期処理で得た全てのファイルについて処理が終了すると、最後に、ファイルリストをカメラＢに対して送信する（ステップＳ８０９）。なお、カメラＢが所有していたはずのＢＢＢＢ０００１＿ＦｒｏｍＢ．ＪＰＧをファイルリストに入れて、カメラＢに対して送信するというのは奇異に見えるかも知れないが、同じ手順は他のカメラ（例えばカメラＣ）に対しても適用される。また、後述するように、カメラＢが既にＢＢＢＢ０００１＿ＦｒｏｍＢ．ＪＰＧを削除する等して、失っていた場合に、これをカメラＡからもらい受けて、ファイルを復活させることができるという効果もある。
【０１１０】
ステップＳ１００９でＡ所有ファイルリストを受信したカメラＢは、自分が所有していないファイルのリストをカメラＡに送信する（ステップＳ１０１０及びステップＳ１００３）。
【０１１１】
カメラＢが未所有ファイルリストを送信する際の送信手順１の詳細について、図９のフローチャートを用いて説明する。
【０１１２】
まず、カメラＡから所有ファイルリストを受信する（ステップＳ９０１）。これはステップＳ１００９に当たる。
【０１１３】
次いで、未所有ファイルリストを空にする（ステップＳ９０２）。
【０１１４】
次いで、ステップＳ９０１で受信したカメラＡの所有ファイルリストについて処理は全て終わったか、リストの残りはもうないかをチェックする（ステップＳ９０３）。
【０１１５】
リストの残りがある場合は、リストの次の要素を選択する（ステップＳ９０４）。リストの要素には、ステップＳ８０８でリストに加えられたファイル名及びカメラＩＤが含まれる。
【０１１６】
その要素のカメラＩＤは自カメラのＩＤかどうかを判別する（ステップＳ９０５）。
【０１１７】
自カメラＩＤである場合は、選択した要素のファイル名を持つファイルを自分が持っているかをチェックする（ステップＳ９０６）。持っている場合は、ステップＳ９０３に戻る。持っていない場合は、未所有ファイルリストにカメラＩＤ及びファイル名を加え（ステップＳ９０７）、ステップＳ９０３に戻る。前述したように、この手順によって既に失ったファイルをカメラＡからもらい受けることができる。ファイルを持っていないが、欲しくない場合は、そのファイルを未所有ファイルリストに加えなければよい。
【０１１８】
ステップＳ９０５で要素のカメラＩＤが自カメラのＩＤでない場合は、要素のファイル名をもつファイルは、同期処理で得たファイルを格納するディレクトリ、つまり図３の例で言えば、９９９ＧＩＶＥＮの下に存在するかどうかを調べる（ステップＳ９０８）。存在する場合は、ステップＳ９０３に戻る。存在しない場合は、未所有ファイルリストに処理中の要素のカメラＩＤ及びファイル名を加え（ステップＳ９０９）、ステップＳ９０３に戻る。
【０１１９】
こうして、カメラＡの所有ファイルリスト中の全てのファイルについて処理が終了すると、未所有ファイルリストをカメラＡに送信する（ステップＳ９１０）。
【０１２０】
ステップＳ１００３でカメラＡがＢ未所有ファイルリストを受信すると、カメラＡは送信すべきファイルの各々に対して、ファイルリストに記述されたファイル名及びカメラＩＤをカメラＢに対して送信する（ステップＳ１００５及びステップＳ１０１２）。
【０１２１】
その後、ファイルの中身がカメラＡからカメラＢに送信される（ステップＳ１００６及びステップＳ１０１３）。
【０１２２】
カメラＢでは、ステップＳ１０１２で受信したファイル名及びカメラＩＤからＦｌａｓｈＲＯＭ２０９に格納するファイルのファイル名を決定する（ステップＳ１０１４）。決定したファイル名でＦｌａｓｈＲＯＭ２０９にファイルを格納し（ステップＳ１０１５）、同期終了コマンドの送受信を経て（ステップＳ１００７及びステップＳ１０１６）、終了する。
【０１２３】
以上のように、ファイルリストにファイル名及びカメラＩＤを含むことにより、他のカメラから得たファイルも自分の所有物として、同期処理を行うことができる。その場合、完全に自分の所有物となるのではなく、その画像ファイルを撮影したカメラのＩＤが保持されるという特徴がある。
【０１２４】
従って、例えばカメラＡとカメラＢの間で同期処理を行い、次に、カメラＡとカメラＣの間で同期処理を行って、カメラＢのファイルがカメラＣに送られた場合、カメラＣではそれらのファイルはカメラＢが撮影したものであると認識できるので、最後にカメラＣとカメラＢの間で同期処理が行われたときに、既にカメラＣが所有しているファイルをカメラＢが送るということはない。
【０１２５】
次に、図１１を用いて、他のカメラから同期処理で得たファイルをカメラ毎にディレクトリで管理する場合の実施の形態について説明する。
【０１２６】
同期前のカメラＡ、Ｂ、及びＣが所有しているファイルが図１１のようであるとすると、カメラＡが他のカメラから同期処理で得たファイルをカメラ毎にディレクトリで管理する方法として、図１１に示すごとく３種類の方法が考えられる。
【０１２７】
同期後その１に示す例は、他のカメラから得たファイルはディレクトリ９９９ＧＩＶＥＮの下に置かれるが、９９９ＧＩＶＥＮの直下は同期相手のカメラＩＤを示すディレクトリが置かれ、同期処理で得たファイルはそのディレクトリの下に置かれる方法である。
【０１２８】
同期後その２に示す例は、他のカメラから得たファイルを置くディレクトリ９９９ＧＩＶＥＮが存在せず、ディレクトリＤＣＩＭの直下に同期相手のカメラＩＤを示すディレクトリが置かれ、同期処理で得たファイルはそのディレクトリの下に置かれる方法である。
【０１２９】
同期後その３に示す例は、ディレクトリＤＣＩＭの直下に同期相手のカメラＩＤを示すディレクトリであって、数字３桁＋”ＦＲＯＭ”＋カメラＩＤという名前を持つディレクトリが置かれ、同期処理で得たファイルはそのディレクトリの下に置かれる方法である。
【０１３０】
次に、カメラＡとカメラＢの間の同期手順５について、図１２のフローチャートを用いて説明する。
【０１３１】
ステップＳ１２１３でカメラＢがカメラＡからファイルを受信するステップまでは、図１０のステップＳ１０１３までの処理と同様である（詳細に見ていくと、所有ファイルリスト送信手順（ステップＳ１２０２）及び未所有ファイルリスト送信手順（ステップＳ１２１０）は上述した手順と異なるが、それについては後述する。）。
【０１３２】
ステップＳ１２１３でカメラＢがファイルを受信後、ステップＳ１２１２で受信したカメラＩＤに対して、ディレクトリ名を決定する（ステップＳ１２１４）。
【０１３３】
例えば、図１１の同期後その１に準じた場合は、／ＤＣＩＭ／９９９ＧＩＶＥＮ／Ａというディレクトリ名に決定される。同期後その２及びその３についても同様である。
【０１３４】
決定したディレクトリ名を持つディレクトリが存在しない場合は（ステップＳ１２１５）、そのディレクトリが作成される（ステップＳ１２１６）。ディレクトリが存在する場合、作成ステップはスキップされる。
【０１３５】
次いで、格納される際のファイル名が決定されるが（ステップＳ１２１７）、既にカメラＩＤはディレクトリで区別されているので、ファイル名にカメラＩＤを組み込む必要はなく、ステップＳ１２１２で得たファイル名がそのまま用いられる。
【０１３６】
ファイル格納（ステップＳ１２１８）から先は図１０と同様である。
【０１３７】
次に、図１２のステップＳ１２０２で示した、カメラＡによる所有ファイルリストの送信手順２について、図１３のフローチャートを用いて説明する。
【０１３８】
図１３の手順は図８の手順と共通しており、ステップＳ８０７とステップＳ１３０７のみが異なる。
【０１３９】
ステップＳ１３０７では、選択したファイルが存在するディレクトリの名前からそのファイルを得たカメラのカメラＩＤを得る。図１１の同期後その１、その２、あるいはその３のいずれにおいても、カメラＩＤを求めることができる。
【０１４０】
次に、図１２のステップＳ１２１０で示した、カメラＢによる未所有ファイルリストの送信手順２について、図１４のフローチャートを用いて説明する。
【０１４１】
図１４の手順は図９の手順と共通しており、ステップＳ９０８とステップＳ１４０８のみが異なる。
【０１４２】
ステップＳ１４０８では、ステップＳ１４０４で選択した要素のファイル名を持つファイルは、選択した要素のカメラＩＤから得られるディレクトリ以下に存在するかどうかをチェックする。ここでもやはり要素のカメラＩＤから得られるディレクトリというのは、図１１の同期後その１、その２、あるいはその３のごとく求められる。
【０１４３】
以上、図１１乃至図１４を用いて説明したように、同期相手から得るファイルをカメラＩＤから求められるディレクトリに置くようにしたことにより、ファイル名を変更する手間はなくなる。元のファイル名が８．３形式に適合していれば、格納されたファイルもそうである。カメラＩＤから求められるディレクトリ名が短ければ、これも８．３形式に適合させることができ、ＤＯＳ  ＦＡＴファイルシステム（DOSはMS-DOS等のDisk Operating Systemを指す。MS-DOSは米国Microsoft Corporationの米国及びその他の国における登録商標である。）の規則に適合させることができる。
【０１４４】
次に、図１５を用いて、他のカメラから同期処理で得たファイルをカメラ毎にディレクトリで管理し、かつ、他のカメラにおいて格納されていたディレクトリパスを保持する場合の実施の形態について説明する。
【０１４５】
この実施の形態では、同期前にカメラＡ、Ｂ、及びＣが所有しているファイルが図１５にようになっていたとして、カメラＡがカメラＢと同期処理を行い、次いでカメラＡがカメラＣと同期した後のファイルシステムの様子は図１５の同期後その１に示すようになる。
【０１４６】
つまり、ディレクトリ９９９ＧＩＶＥＮの直下にカメラＩＤを示すディレクトリが置かれ、そのディレクトリ以下には、他のカメラがディレクトリＤＣＩＭ以下に保持しているのと同じディレクトリが置かれる。そしで他のカメラから得たファイルはそのディレクトリの下に置かれる。すなわち、カメラＩＤを示すディレクトリの下は、そのカメラＩＤが示すカメラのＤＣＩＭディレクトリの下と同じ構成になる。
【０１４７】
次に、図１５に示すファイルの同期処理を行う際の同期手順６について、図１６のフローチャートを用いて説明する。
【０１４８】
図１６のシーケンスは図１２のシーケンスと共通しており、異なる点は、ステップＳ１６０２でカメラＡが所有しているファイルのリストを送信するところである。
【０１４９】
ステップＳ１６０２のＡ所有ファイルリストの送信手順３の詳細を図１７のフローチャートを用いて説明する。
【０１５０】
図１７のステップＳ１７０５までのフローは、図１３のステップＳ１３０５までのフローと同様である。
【０１５１】
ステップＳ１７０５では次のファイルを選択しているが、このとき、カメラＡはディレクトリ９９９ＧＩＶＥＮの下を、他のカメラから同期処理で得たファイルを求めて探す。
【０１５２】
ステップＳ１７０６ではカメラＡはステップＳ１７０５で選択したファイルのファイル名を得る。
【０１５３】
次に、選択したファイルが存在するディレクトリ名を得る（ステップＳ１７０７）。もっと正確に言えば、カメラＩＤが指すディレクトリの下のディレクトリの名前である。例えば、図１５のカメラＡにおける同期後その１のファイルシステムの状態であって、ＢＢＢＢ０００１．ＪＰＧが選択中のファイルである場合は、１００ＢＢＢＢＢがステップＳ１７０７で得るディレクトリ名である。
【０１５４】
次に、選択したファイルが存在するディレクトリ名からそのファイルを得たカメラのカメラＩＤを得る（ステップＳ１７０８）。上記の例で言えば、ディレクトリ１００ＢＢＢＢＢの親ディレクトリ名からカメラＩＤ”Ｂ”を得る。
【０１５５】
そして、得たファイル名、ディレクトリ名、及びカメラＩＤをファイルリストに加え（ステップＳ１７０９）、最後にできたファイルリストをカメラＢに送信する（ステップＳ１７１０）。
【０１５６】
図１６でステップＳ１６１０ではカメラＢが未所有ファイルリストを送信する。
【０１５７】
ステップＳ１６１０のＢ所有ファイルリストの送信手順３の詳細について、図１８のフローチャートを用いて説明する。
【０１５８】
図１８のステップＳ１８０３までのフローは、図１４のステップＳ１４０３までのフローと同様である。
【０１５９】
ステップＳ１８０４ではステップＳ１８０１で受信したＡ所有ファイルリストから次の要素を選択する。
【０１６０】
このファイルリストは図１７のシーケンスで作成されたものであるから、ファイルリストの要素には、ファイル名、ディレクトリ名、及びカメラＩＤが含まれている。
【０１６１】
要素のカメラＩＤが自カメラかどうかを見る（ステップＳ１８０５）。自カメラである場合は、要素のディレクトリ名及びファイル名を持つファイルは存在するかどうかを調べる（ステップＳ１８０６）。
【０１６２】
存在する場合は、ステップＳ１８０３に戻る。存在しない場合は、未所有ファイルリストに処理中の要素のファイル名、ディレクトリ名、及びカメラＩＤを加える（ステップＳ１８０７）。
【０１６３】
ステップＳ１８０５で要素のカメラＩＤが自カメラＩＤでない場合は、要素のディレクトリ名及びファイル名を持つファイル（例えば、図１５のディレクトリ１００ＣＣＣＣＣでファイル名ＣＣＣＣ０００１．ＪＰＧのファイル）が要素のカメラＩＤから得られるディレクトリ（図１５の例で言えば、ディレクトリＣ）以下に存在するかどうかを調べる（ステップＳ１８０８）。
【０１６４】
存在する場合は、ステップＳ１８０３に戻る。存在しない場合は、未所有ファイルリストに処理中の要素のファイル名、ディレクトリ名、及びカメラＩＤを加える（ステップＳ１８０９）。
【０１６５】
こうして所有ファイルリストの全てについて処理が終了した後、未所有ファイルリストをカメラＡに送信する（ステップＳ１８１０）。
【０１６６】
図１６に戻ると、以上のようにしてカメラＡはＢ未所有ファイルリストを受信する（ステップＳ１６０３）。
【０１６７】
そのＢ未所有ファイルリストにあるファイルの各々について、ファイル名、ディレクトリ名、及びカメラＩＤをカメラＢに対して送信する（ステップＳ１６０５及びステップＳ１６１２）。その後、ファイルの中身を送信する（ステップＳ１６０６及びステップＳ１６１３）。
【０１６８】
カメラＢでは受信したディレクトリ名及びファイル名から受信ファイルを格納する際のディレクトリ名を決定する（ステップＳ１６１４）。
【０１６９】
図１５の例では、ディレクトリ名１００ＢＢＢＢＢ、ファイル名ＢＢＢＢ０００１．ＪＰＧ、カメラＩＤ”Ｂ”とすると、格納するディレクトリはＢ／１００ＢＢＢＢＢと決定する。
【０１７０】
次に、上記決定したディレクトリが存在するかどうかを調べる（ステップＳ１６１５）。存在しない場合は、ディレクトリを作成する（ステップＳ１６１６）。上記の例では、まずディレクトリＢを作成し、その次に、ディレクトリＢの下にディレクトリ１００ＢＢＢＢＢを作成する。
【０１７１】
ステップＳ１６１７以降は図１２のステップＳ１２１７以降と同様である。
【０１７２】
以上、図１５乃至図１８で示したようにすると、他のカメラのディレクトリ構造を保持したまま同期処理を行うことができる。このことにより、例えば他のカメラが異なるディレクトリに同一名を持つファイルを所有していたとしても、正しく同期処理を行うことができる。
【０１７３】
例えば、カメラＢが１００ＢＢＢＢＢ／ＢＢＢＢ０００１．ＪＰＧというファイルを持っているとする。カメラＢからカメラＡに対して同期させたとき、上記ファイルがカメラＡに対して送られる。その次に、カメラＢに１０１ＢＢＢＢＢ／ＢＢＢＢ０００１．ＪＰＧというファイルが追加されたとする。それから再びカメラＢからカメラＡに対して同期させたとき、１０１ＢＢＢＢＢ／ＢＢＢＢ０００１．ＪＰＧもカメラＡに格納される。カメラＡにおいて、１００ＢＢＢＢＢ／ＢＢＢＢ０００１．ＪＰＧは上書きされることなく、そのまま存在する。このときカメラＡからカメラＣに対して同期処理を行うと、上記のファイルが２つとも同期処理される。
【０１７４】
次に、図１９を用いて、同期後のファイルをＤＣＦに適合する形式で記憶媒体に書き込む実施の形態について述べる。
【０１７５】
図１９はカメラＡがカメラＢと同期処理を行い、その後カメラＡとカメラＣが同期した後のカメラＡのファイルシステムの様子を示したものである。
【０１７６】
カメラＢとカメラＣが有していたファイルが共通のディレクトリ９９９ＧＩＶＥＮに収められている。９９９ＧＩＶＥＮは３文字の数字＋５文字の英数大文字というＤＣＦディレクトリの規則に適合するよう選ばれている。
【０１７７】
また、カメラＢとカメラＣが有していたファイルの名前が変更されているものもある。
【０１７８】
ファイルの名前が変更された場合は、元のファイル名を得るために、図２０に示すテーブルが用いられる。
【０１７９】
図２０は同期後、カメラＡのディレクトリ９９９ＧＩＶＥＮに収められたファイル名、そのファイルを送信したカメラのカメラＩＤ、及びカメラＢあるいはカメラＣにおける元のファイル名の間の対応関係を示したテーブルである。
【０１８０】
同期処理によって得たファイルを格納する際に名づけられるファイル名は、ＤＣＦファイル名の規則（拡張子を除くファイル名は８文字で、４文字の英数大文字＋４文字の数字からなる）に従う。
【０１８１】
元のファイル名がＤＣＦファイル名に従っており、そのファイル名を持つファイルを自分が持っていない場合は、同じ名前をつければよい。（図２０のＢＢＢＢ０００１．ＪＰＧの例）
元のファイル名がＤＣＦファイル名に従っているが、そのファイル名を持つファイルを自分が持っていたり（カメラＡが、カメラＢと同期処理を行った後にカメラＣと同期処理を行った場合、カメラＣのＢＢＢＢ０００３．ＪＰＧが該当する。）、ファイル名下位４文字のファイル名番号が一致するファイルを自分が持っていたり（カメラＡが、カメラＢと同期処理を行った後にカメラＣと同期処理を行った場合、図２０のＣＣＣＣ０００１．ＪＰＧが該当する。）する場合は、ＤＣＦ規則に従うように格納するファイルの名前を付ける。
【０１８２】
図２０のテーブルはカメラＡのＣＰＵ２０１が作成し、ＲＡＭ２０３に置かれる。あるいは電源断に備えて、ＦｌａｓｈＲＯＭ２０９上にファイルとして置かれる。
【０１８３】
図１９及び図２０を用いた同期処理の手順としては、例えば図８、図９及び図１０に示したシーケンスを用いる。
【０１８４】
ステップＳ８０２で自身が撮影したファイルを探すときは、自身が撮影したファイルを置くディレクトリから探す。この実施例では、ＤＣＦディレクトリ名の上位３文字が示すディレクトリ番号が１００からインクリメントされる若い番号であるときは、そのディレクトリは自身が撮影したファイルを置く所と判断している。一方、ステップＳ８０４において同期処理で得たファイルを探すときは、同期処理で得たファイルを置くディレクトリから探す。この例では、ＤＣＦのディレクトリ番号が９９９からデクリメントされる大きな番号であるときは、そのディレクトリは同期処理で得たファイルを置くところと判断している。
【０１８５】
ステップＳ８０６で選択したファイルのファイル名から元のファイル名を復元することは、図２０のテーブルを用いることで簡単に行える。
【０１８６】
ステップＳ８０７でカメラＩＤを得るのも同様である。
【０１８７】
次に、図２１を用いて同期後のファイルをＤＣＦに適合する形式で記憶媒体に書き込む、さらに、同期相手のカメラ毎にＤＣＦディレクトリを作成して、同期処理で得たファイルをそこに置く実施の形態について説明する。
【０１８８】
図２１はカメラＡがカメラＢ及びカメラＣと同期処理を行った場合のファイルシステムの様子を示した図である。
【０１８９】
カメラＢが所有していたファイルはディレクトリ９９９ＧＩＶＥＮに置かれる。カメラＣが所有していたファイルはディレクトリ９９８ＧＩＶＥＮに置かれる。新たな同期相手と同期したとき、ＤＣＦディレクトリ番号９９９からデクリメントされたディレクトリ名が用いられる。
【０１９０】
カメラＩＤとは関連がないディレクトリ名が用いられるので、ＣＰＵ２０１はディレクトリ名とカメラＩＤの対応関係を覚えておく必要がある。
【０１９１】
それが図２２のテーブルである。このテーブルはＲＡＭ２０３に置かれる。あるいは電源断に備えて、ＦｌａｓｈＲＯＭ２０９上にファイルとして置かれる。
【０１９２】
図２１及び図２２を用いた同期処理の手順としては、例えば図１３、図１４及び図２８に示したシーケンスを用いる。
【０１９３】
ステップＳ１３０６で選択したファイルのファイル名から元のファイル名を得る処理では、格納するときにファイル名は変更されていないので、そのまま元のファイル名として扱えばよい。
【０１９４】
ステップＳ１３０７で選択したファイルのディレクトリ名からそのファイルを得たカメラのカメラＩＤを得るというのは、図２２のテーブルを用いて簡単に行える。
【０１９５】
図１３及び図１４のファイルリスト送信手順を用いた場合のカメラＡからカメラＢに対する同期手順９について、図２８のフローチャートを用いて説明する。
【０１９６】
同図において、最初にカメラＡのユーザが所定の操作を行うことにより、カメラＡはカメラＢに対し同期開始コマンドを送信する（ステップＳ２９０１及びステップＳ２９０８）。
【０１９７】
次に、カメラＡは図１３のシーケンスに従い、所有ファイルリストを送信する（ステップＳ２９０２及びステップＳ２９０９）。
【０１９８】
ステップＳ２９０９でＡ所有ファイルリストを受信したカメラＢは、自分が所有していないファイルのリストをカメラＡに送信する（ステップＳ２９１０及びステップＳ２９０３）。送信手順は図１４のシーケンスに従う。
【０１９９】
ステップＳ２９０３でカメラＡがＢ未所有ファイルリストを受信すると、カメラＡは送信すべきファイルの各々に対して、ファイルリストに記述されたファイル名及びカメラＩＤをカメラＢに対して送信する（ステップＳ２９０５及びステップＳ２９１２）。
【０２００】
その後、ファイルの中身がカメラＡからカメラＢに送信される（ステップＳ２９０６及びステップＳ２９１３）。
【０２０１】
カメラＢではステップＳ２９１２で受信したカメラＩＤからディレクトリ名を決定する（ステップＳ２９１４）。上述の例では、ＤＣＦディレクトリ名規則に従うようにカメラＩＤ”Ｂ”に対するディレクトリ名９９９ＧＩＶＥＮと決めた。この際、まず図２２に示したテーブルをチェックし、そのカメラＩＤに既に割り当てられたディレクトリ名はないかどうかを見て、あるディレクトリ名が既に割り当てられている場合はその名前に決定し、まだ割り当てられていない場合は既に他のカメラＩＤに割り当てられたのとは別の名前のディレクトリ名に決定するようにしている。具体的には、ディレクトリ番号を９９９からデクリメントしていき、まだ割り当てられていない番号を採用している。このようにすることによって、同じカメラＩＤに異なるディレクトリ名が割り当てられるのを防止する。また、異なるカメラＩＤに同じディレクトリ名が割り当てられることも防止する。
このように決定したディレクトリ名を持つディレクトリが存在するかどうか調べる（ステップＳ２９１５）。
【０２０２】
ディレクトリが存在しない場合はそれを作成する（ステップＳ２９１６）。
【０２０３】
そして、決定したディレクトリ名に対応付けてカメラＩＤを図２２に示すごとく記憶する（ステップＳ２９１７）。
【０２０４】
ステップＳ２９１５でディレクトリが存在した場合は、ステップＳ２９１６及びステップＳ２９１７はスキップされる。
【０２０５】
次にステップＳ２９１２で受信したファイル名からＦｌａｓｈＲＯＭ２０９に格納するファイルのファイル名を決定する（ステップＳ２９１８）。とは言っても、ここではステップＳ２９１２で受信したファイル名をそのまま用いる。
【０２０６】
決定したファイル名でＦｌａｓｈＲＯＭ２０９にファイルを格納し（ステップＳ２９１９）、同期終了コマンドの送受信を経て（ステップＳ２９０７及びステップＳ２９２０）、終了する。
【０２０７】
次に、図２３を用いて同期後のファイルをＤＣＦに適合する形式で記憶媒体に書き込む、さらに、同期相手のカメラが持つＤＣＦディレクトリ毎にＤＣＦディレクトリを作成して、同期処理で得たファイルをそこに置く実施の形態について説明する。
【０２０８】
図２３はカメラＡがカメラＢ及びカメラＣと同期した場合のファイルシステムの様子を示した図である。
【０２０９】
カメラＢが所有していたディレクトリ１００ＢＢＢＢＢとそれ以下のファイルはディレクトリ９９９ＧＩＶＥＮに置かれる。カメラＢが所有していたディレクトリ１０１ＢＢＢＢＢとそれ以下のファイルはディレクトリ９９８ＧＩＶＥＮに置かれる。カメラＣが所有していたディレクトリ１００ＣＣＣＣＣとそれ以下のファイルはディレクトリ９９７ＧＩＶＥＮに置かれる。新たなディレクトリを同期受信したとき（新たな同期相手の時は必然的に新たなディレクトリとして扱われる）、ＤＣＦディレクトリ番号９９９からデクリメントされたディレクトリ名が用いられる。
【０２１０】
図２３の例では、同期ファイル格納用のディレクトリ名、カメラＩＤ及び同期相手が持つ元のディレクトリ名の対応関係をＣＰＵ２０１は管理している。
その対応関係を示したのが、図２４に示したテーブルである。
【０２１１】
図２３及び図２４を用いた同期処理の手順としては、例えば図１６、図１７及び図１８に示したシーケンスを用いる。
【０２１２】
ステップＳ１７０７において、選択したファイルのディレクトリ名を得る場合は、そのファイルが存在するディレクトリ名から、図２４のテーブルを用いて、元のディレクトリ名を復元する。
【０２１３】
ステップＳ１７０８において、選択したファイルのディレクトリ名からそのファイルを得たカメラのカメラＩＤを得ることは、図２４のテーブルを用いて簡単に行える。
【０２１４】
次にファイル名だけでファイルを識別せず、ファイルの作成時刻（撮影した画像ファイルの場合、ファイル作成時刻イコール撮影時刻となることが多い）も含めてファイルを識別して同期処理を行うようにした実施の形態について説明する。
【０２１５】
デジタルカメラの場合、ＤＣＦファイル番号のリセット機能というものを有しており、新しい記憶媒体を使用するとＤＣＦファイル番号がリセットされ、０００１から再度始まることがある。このような場合、同じファイル名を持つがファイルの中身としては異なるので、異なるファイルとして同期処理を行うことが望ましい。
【０２１６】
デジタルカメラでなくても、同じファイル名を持つがファイルの中身としては異なる状況は容易に考えられるので、これに対応しておくことが必要である。
【０２１７】
図２５はカメラＡによる所有ファイルリスト送信手順４を示したフローチャートである。
【０２１８】
同図において、最初にファイルリストを空にする（ステップＳ２５０１）。
【０２１９】
次に自分が撮影したファイルはもうないかチェックする（ステップＳ２５０２）。撮影したファイルがまだある場合は、次のファイルを選択し、そのファイルのファイル名、撮影時刻及び自カメラのカメラＩＤをファイルリストに加える（ステップＳ２５０３）。
【０２２０】
撮影した画像ファイルのフォーマットがＥｘｉｆ（社団法人日本電子工業振興協会が定めたデジタルスチルカメラ用画像ファイルフォーマット規格Ｖｅｒｓｉｏｎ２．１）である場合は、撮影時刻は画像ファイル中に含まれているので、これを用いて撮影時刻を求めてよい。または、撮影時刻を別データあるいは別ファイルとしてＣＰＵ２０１が管理しておき、それを利用するようにしてもよい。あるいは、ステップＳ２７１５の説明で後述するように、格納するファイル名に対応付けて元のファイル名、撮影時刻及びカメラＩＤを図示しない対応テーブルに記憶しておき、それを利用するようにしてもよい。
【０２２１】
その後、ステップＳ２５０２に戻り、自分が撮影した全てのファイルについて処理する。
【０２２２】
なお、自分が撮影した全てのファイルについて処理する代わりに、上述したように前もって選択したファイルの全てについて上記のファイルリストに加える処理を行ってもよい。
【０２２３】
自分が撮影したファイルについて全て終了した後、今度は他のカメラから同期処理により得たファイルはもうないかチェックする（ステップＳ２５０４）。
【０２２４】
同期で得たファイルがまだある場合は、次のファイルを選び（ステップＳ２５０５）、その選択したファイルから元のファイル名を復元する（ステップＳ２５０６）。
【０２２５】
その方法は、上述したファイル名変換方法のいずれをとるかで異なってくるが、変換方法に適した方法を用いればよい。
【０２２６】
次に選択したファイルの撮影時刻を得る（ステップＳ２５０７）。
【０２２７】
次に選択したファイルのファイル名からそのファイルを得たカメラのカメラＩＤを得る（ステップＳ２５０８）。
【０２２８】
以上のようにして得たファイル名、撮影時刻及びカメラＩＤをファイルリストに加える（ステップＳ２５０９）。
【０２２９】
そして、ステップＳ２５０４に戻り、同期処理で得た全てのファイルについて処理を行う。
【０２３０】
同期処理で得た全てのファイルについて処理が終了すると、最後に、ファイルリストをカメラＢに対して送信する（ステップＳ２５１０）。
【０２３１】
次に、撮影時刻を用いてファイルを識別する実施の形態として、カメラＢから未所有ファイルリストを送信する手順４について、図２６のフローチャートを用いて説明する。
【０２３２】
まず、カメラＡから所有ファイルリストを受信する（ステップＳ２６０１）。
【０２３３】
次いで、未所有ファイルリストを空にする（ステップＳ２６０２）。
【０２３４】
次いで、ステップＳ２６０１で受信したカメラＡの所有ファイルリストについて処理は全て終わったか、リストの残りはもうないかをチェックする（ステップＳ２６０３）。
【０２３５】
リストの残りがある場合は、リストの次の要素を選択する（ステップＳ２６０４）。リストの要素には、ステップＳ２５０９でリストに加えられたファイル名、撮影時刻及びカメラＩＤが含まれる。
【０２３６】
その要素のカメラＩＤは自カメラのＩＤかどうかを判別する（ステップＳ２６０５）。自カメラＩＤである場合は、選択した要素のファイル名及び撮影時刻を持つファイルを自分が持っているかをチェックする（ステップＳ２６０６）。持っている場合は、ステップＳ２６０３に戻る。
【０２３７】
持っていない場合は、未所有ファイルリストにファイル名、撮影時刻、及びカメラＩＤを加え（ステップＳ２６０７）、ステップＳ２６０３に戻る。
ステップＳ２６０５で要素のカメラＩＤが自カメラのＩＤでない場合は、要素のファイル名及び撮影時刻を持つファイルは、同期処理で得たファイルを格納するディレクトリ、つまり図３の例で言えば、９９９ＧＩＶＥＮの下に存在するかどうかを調べる（ステップＳ２６０８）。
【０２３８】
存在する場合は、ステップＳ２６０３に戻る。存在しない場合は、未所有ファイルリストに処理中の要素のファイル名、撮影時刻及びカメラＩＤを加え（ステップＳ２６０９）、ステップＳ２６０３に戻る。
【０２３９】
こうして、カメラＡ所有ファイルリスト中の全てのファイルについて処理が終了すると、未所有ファイルリストをカメラＡに送信する（ステップＳ２６１０）。
【０２４０】
次に、図２５及び図２６のファイルリスト送信手順を用いた場合のカメラＡからカメラＢに対する同期手順７について、図２７のフローチャートを用いて説明する。
【０２４１】
同図において、最初にカメラＡのユーザが所定の操作を行うことにより、カメラＡはカメラＢに対し同期開始コマンドを送信する（ステップＳ２７０１及びステップＳ２７０８）。
【０２４２】
次に、カメラＡは図２５のシーケンスに従い、所有ファイルリストを送信する（ステップＳ２７０２及びステップＳ２７０９）。
【０２４３】
ステップＳ２７０９でＡ所有ファイルリストを受信したカメラＢは、自分が所有していないファイルのリストをカメラＡに送信する（ステップＳ２７１０及びステップＳ２７０３）。送信手順は図２６のシーケンスに従う。
【０２４４】
ステップＳ２７０３でカメラＡがＢ未所有ファイルリストを受信すると、カメラＡは送信すべきファイルの各々に対して、ファイルリストに記述されたファイル名、撮影時刻、及びカメラＩＤをカメラＢに対して送信する（ステップＳ２７０５及びステップＳ２７１２）。
【０２４５】
その後、ファイルの中身がカメラＡからカメラＢに送信される（ステップＳ２７０６及びステップＳ２７１３）。
【０２４６】
カメラＢでは、ステップＳ２７１２で受信したファイル名からＦｌａｓｈＲＯＭ２０９に格納するファイルのファイル名を決定する（ステップＳ２７１４）。ファイル名を決定する際にカメラＩＤあるいは撮影時刻データを使用してもよい。
【０２４７】
ステップＳ２７１４で説明したファイル名決定手順の詳細について、図２９のフローチャートを用いて説明する。
【０２４８】
同図において、ステップＳ２７１２で与えられたファイル名から格納するファイル名を一つ決定する（ステップＳ３００１）。
【０２４９】
決定したファイル名を持つファイルは存在するかどうかを判断する（ステップＳ３００２）。
【０２５０】
存在しない場合は、そのファイル名に確定して終了する。
【０２５１】
存在する場合は、その存在するファイルの撮影時刻はステップＳ２７１２で与えられた撮影時刻と一致するかどうかを判断する（ステップＳ３００３）。
【０２５２】
一致しない場合は、それらのファイルは異なるものと見なし、ステップＳ２７１２で与えられたファイル名から、前に決定したファイル名とは異なるファイル名を決定し（ステップＳ３００４）、ステップＳ３００２に戻る。
【０２５３】
ステップＳ３００３で一致した場合、そのファイルは既に持っているものとして処理する（ステップＳ３００５）。図２７のシーケンスではカメラＢが未所有であるとカメラＡに通知したファイルについてだけカメラＡから送られてくるので、通常このステップを通ることはない。しかし、カメラＢが所有しているファイルでも送られる可能性のあるプロトコルを用いた場合は、このようにファイルを既に持っていると判断すると、そのファイルについては無視したり、送られたファイルで現在持っているファイルを上書きするようにしたりすればよい。
【０２５４】
図２７の説明に戻る。決定したファイル名に対応付けて元のファイル名、撮影時刻及びカメラＩＤを図示しない対応テーブルに記憶しておく（ステップＳ２７１５）。
【０２５５】
決定したファイル名でＦｌａｓｈＲＯＭ２０９にファイルを格納し（ステップＳ２７１６）、同期終了コマンドの送受信を経て（ステップＳ２７０７及びステップＳ２７１７）、終了する。
【０２５６】
なお、ステップＳ２７１５では撮影時刻データも対応テーブルに記憶すると述べたが、上述したように撮影時刻データがファイル名中、もしくはファイル中に含まれる場合は、対応テーブルに撮影時刻を記憶する必要はない。
【０２５７】
次に、カメラＡからカメラＢに対してファイルを同期させるとき、あるファイルについてはカメラＢが他のカメラに送ることをカメラＡが不許可にすることができる実施の形態について、図３０のフローチャートを用いて説明する。
【０２５８】
図３０は同期の際、カメラＡからカメラＢに対して一つのファイルを送信する手順１を示した図である。上述した同期手順のフローチャートから同期開始、終了手順及びファイルリスト送受信手順を除いたものとなっている。また、複数のファイルを送信するためのループ処理も除いている。
【０２５９】
同期処理が開始され、ファイルリストの送受信が行われた後、カメラＡにおいて送信すべきファイルを選択する（ステップＳ３１０１）。
【０２６０】
次に、カメラＡは、選択したファイルについて、現在同期処理中のカメラＢがカメラＡ以外のカメラ（例えば、カメラＣ）に後で送信することを不許可とするかどうかを判断する（ステップＳ３１０２）。この判断のためにＲＡＭ２０３あるいはＦｌａｓｈＲＯＭ２０９等の記憶媒体上にファイル毎の送信不許可かどうかを示すフラグを記憶しているものとする。
【０２６１】
送信が不許可であるファイルである場合は、送信不許可メッセージをカメラＢに対して送信する（ステップＳ３１０３及びステップＳ３１０８）。
【０２６２】
送信が不許可でないファイルの場合、つまり誰にでも送信できるファイルの場合はステップＳ３１０３をスキップする。
【０２６３】
次に、カメラＡはファイル名を送信する（ステップＳ３１０４及びステップＳ３１０９）。
【０２６４】
カメラＢではステップＳ３１０７で送信不許可メッセージを受信したかどうか、それともファイル名を受信したかどうかを判別することで、送信不許可メッセージが送られてこない場合にも対応している。
【０２６５】
次にカメラＡは送ろうとするファイルに、カメラＡが撮影したことを示す電子透かしを加える（ステップＳ３１０５）。
【０２６６】
電子透かしを入れることで、もしカメラＢが送信不許可の取り決めを守らず他のカメラに送ってしまった場合、それを検出しやすくする。その意味では、カメラＢと同期処理を行った際、カメラＢと同期処理を行ったことを示す電子透かし情報を付加すると、さらに効果が上がる。
【０２６７】
また、電子透かしは著作権を行使する際の無断複製等の証明手段であるので、電子透かしを付加する手順を図３０以外の同期手順に加えることもできる。
【０２６８】
複数装置間で同期処理を許可すると、受け取ったファイルを上述したファイル名やディレクトリ名による方法で厳密に管理していないと、どのファイルが誰から受け取ったものか分からなくなる恐れがある。
【０２６９】
特に、ファイルが挿抜可能なメモリカードに置かれ、そのメモリカードの内容が他のコンピュータ機器によって他の記憶媒体にコピーされた時などはその心配がある。したがって、電子透かしを付加しておいて、ファイルのオリジナリティが誰のものかを示しておくことは良いことである。
【０２７０】
図３０に戻る。ステップＳ３１０５で電子透かしを付加したファイルをカメラＡはカメラＢに送信する（ステップＳ３１０６及びステップＳ３１１０）。
【０２７１】
カメラＢはステップＳ３１０９で受信したファイル名に基づき格納するファイル名を決定する（ステップＳ３１１１）。
【０２７２】
次にそのファイルに対し送信不許可メッセージを受信したかどうかを判断する（ステップＳ３１１２）。
【０２７３】
受信した場合、決定したファイル名に対応付けて送信不許可フラグをセットして記憶媒体に記憶する（ステップＳ３１１３）。受信しない場合はこのステップはスキップする。
【０２７４】
そして、最後に決定したファイル名でファイルを格納して（ステップＳ３１１４）、終了する。
【０２７５】
以上のように送信不許可設定が可能になると、カメラＢが他のカメラと同期処理を行う際は送信不許可設定されたファイルを所有していないものとしなければならない。その場合の所有ファイルリスト送信手順５について、図３１のフローチャートを用いて説明する。
【０２７６】
同図において、最初にファイルリストを空にする（ステップＳ３２０１）。
【０２７７】
次に自分が撮影したファイルはもうないかチェックする（ステップＳ３２０２）。撮影したファイルがまだある場合は、次のファイルを選択し、そのファイルのファイル名及び自カメラのカメラＩＤをファイルリストに加える（ステップＳ３２０３）。
【０２７８】
その後、ステップＳ３２０２に戻り、自分が撮影した全てのファイルについて処理する。
【０２７９】
なお、自分が撮影した全てのファイルについて処理する代わりに、上述したように前もって選択したファイルの全てについて上記のファイルリストに加える処理を行ってもよい。
【０２８０】
自分が撮影したファイルについて全て終了した後、今度は同期で他のカメラから得たファイルはもうないかチェックする（ステップＳ３２０４）。
【０２８１】
同期処理で得たファイルがまだある場合は、次のファイルを選ぶ（ステップＳ３２０５）。
【０２８２】
次に選択したファイルは送信不許可フラグがセットされているかどうかを判断する（ステップＳ３２０６）。この判断にはステップＳ３１１３で記憶したデータを用いる。送信不許可フラグがセットされている場合はこのファイルをファイルリストに加えることなくステップＳ３２０４に戻る。送信不許可フラグがセットされていない場合は次に進み、選択したファイルから元のファイル名を復元する（ステップＳ３２０７）。
【０２８３】
次に選択したファイルのファイル名からそのファイルを得たカメラのカメラＩＤを得る（ステップＳ３２０８）。
【０２８４】
以上のようにして得たファイル名及びカメラＩＤをファイルリストに加える（ステップＳ３２０９）。
【０２８５】
そして、ステップＳ３２０４に戻り、同期処理で得た全てのファイルについて処理を行う。
【０２８６】
同期処理で得た全てのファイルについて処理が終了すると、最後に、ファイルリストを送信する（ステップＳ３２１０）。
【０２８７】
以上、図３０及び図３１に示すごとくすれば、同期相手に対してこのファイルは送信不許可にすることを指定できる。
【０２８８】
ここで、カメラＡからカメラＢに対しては送信不許可と指定されたファイルが、カメラＡからカメラＣに対しては送信不許可とは指定されず、その後カメラＢとカメラＣの間で同期処理を行った場合を考える。
【０２８９】
この場合、カメラＢからカメラＣへの同期処理に関しては、カメラＢは問題のファイルを所有ファイルリストには入れないので、カメラＢからカメラＣに問題のファイルが送られることはない。
【０２９０】
しかし、カメラＣからカメラＢへの同期処理に関しては、カメラＣは問題のファイルを所有ファイルリストに入れるので、カメラＢは未所有ファイルリストに問題のファイルを入れてしまうと、カメラＣからファイルを受け取ってしまう。
【０２９１】
その場合は、カメラＣからファイルを受け取っておいて無視する、つまり格納はしないという方法がある。
【０２９２】
あるいは、カメラＣからファイルを受け取っておいて、カメラＡから受信した古いファイルを上書きしてもよい。このとき、そのファイルに対する送信不許可フラグもクリアされる。つまり、これ以後の他のカメラとの同期処理時にはこのファイルは所有ファイルリストに載ることになる。
【０２９３】
もちろん、単純にカメラＢは問題のファイルを未所有ファイルリストに含めないという方法もある。その場合はカメラＣからそのファイルが送られないだけである。
【０２９４】
上記図３１のシーケンスは同期処理で得たファイルを自分が所有しているファイルに加えない手順を示したものであった。
【０２９５】
次に、図３３のフローチャートを用いて、自分が撮影したファイルを、自分が所有しているファイルに加えない場合の所有ファイルリスト送信手順６について説明する。
【０２９６】
同図において、最初にファイルリストを空にする（ステップＳ３４０１）。次に自分が撮影したファイルはもうないかチェックする（ステップＳ３４０２）。撮影したファイルがまだある場合は、次のファイルを選択する（ステップＳ３４０３）。
【０２９７】
次に選択したファイルが送信してもよいかどうか判断する（ステップＳ３４０４）。これを判断するために、自分が撮影したファイル毎に送信してもよいかどうかを示すフラグが記憶媒体に記憶されているものとする。送信したくないファイルの場合はファイルリストに加えることなくステップＳ３４０２に戻る。送信してもよいファイルの場合は、そのファイルのファイル名及び自カメラのカメラＩＤをファイルリストに加える（ステップＳ３４０５）。
【０２９８】
その後、ステップＳ３４０２に戻り、自分が撮影した全てのファイルについて処理する。
【０２９９】
ステップＳ３４０６以降は図８のステップＳ８０４以降と同様である。
【０３００】
次に、３台以上の装置で相互に同期処理する場合の実施の形態について、図３２のフローチャートを用いて説明する。
【０３０１】
３台以上の装置で完全に相互に同期処理を行う場合、最も単純な方法としては各装置が全ての他の装置と同期処理を行えばよい。
【０３０２】
全部でｎ個の装置がある場合、各装置が全ての他の装置と同期処理を行うにはnＣ2（ｎ個から２個を取る組み合わせの数。ｎ＊（ｎ−１）／２となる。）回の同期処理が必要にある。ｎが大きくなると、この回数は大きくなる。そこでもっと少ない回数で同期処理を完了できる方法が望ましい。
【０３０３】
図３２はそのような手順を示したものであり、同図において、まずマスター装置となる装置が他の装置の探索を開始する（ステップＳ３３０１）。
【０３０４】
マスター装置となるには、ユーザが所定の操作を行うものとする。
【０３０５】
具体的な装置探索方法はその装置に備えられたネットワーク手段に依存する。カメラ１０１ａがＬＡＮ１０２上に接続されたカメラを探す場合は、ＴＣＰ／ＩＰのブロードキャストパケットを用いるかもしれない。インターネット１０３上のカメラを探す場合は、個々のカメラ位置を把握している、図示しないサーバを用いたり、P2P(Peer To Peer)技術を用いたりする方法が考えられる。また、無線接続している場合は使用する無線プロトコルに応じた探索方法を使えばよい。
【０３０６】
次にマスター装置は同期処理が終了したかどうか判断する（ステップＳ３３０２）。始めたばかりのときはもちろん終了はしていない。
【０３０７】
そして同期処理が終了していない装置を選択し（ステップＳ３３０３）、上述した同期処理のいずれかを行う（ステップＳ３３０４）。
【０３０８】
同期処理が終了すれば、その装置を記憶しておく（ステップＳ３３０５）。ステップＳ３３０３で同期処理が終了していない装置を選択するためである。
【０３０９】
そしてステップＳ３３０２に戻り、一旦全ての他の装置と同期処理を終了する。
【０３１０】
この時点でマスター装置には他のカメラのファイルが全て入っている。他のカメラはマスター装置のファイルを得ている。
【０３１１】
次にマスター装置は同期処理が終了した装置についての情報を消去する（ステップＳ３３０６）。これにより、またステップ３３０７から始まる同期処理を他の全ての装置に対し行えるようになる。
【０３１２】
そしてステップＳ３３０７からステップＳ３３１０まではステップＳ３３０２からステップＳ３３０５と同様にして同期処理が行われて、終了する。
【０３１３】
ステップＳ３３０６の時点でマスター装置には他の全ての装置のファイルが入っているので、ステップＳ３３０７以降の同期処理により、マスター装置以外の装置も他の全ての装置のファイルを得ることができる。
【０３１４】
以上のようにすると、２＊（ｎ−１）回の同期処理で装置間相互での同期処理が完全に行われることになる。
【０３１５】
したがって、ｎが５以上のとき、各装置が他の全ての装置と同期処理を行うより本手順の方が少ない同期回数で済むという効果がある。
【０３１６】
以上、本発明について説明してきたが、本発明は上述したデジタルカメラにのみ適用されるものではなく、ファイルを送受信する方法一般に適用可能なものであるから、通信機能を持ったコンピュータ一般も本発明の適用範囲内である。
【０３１７】
一般的なコンピュータに本発明を応用するとなると、ファイルは画像ファイルばかりではないので、ファイルを識別するのにファイルの撮影時刻という概念は用いることはできないが、その場合はファイルの作成時刻を使えばよい。
【０３１８】
あるいは、ファイルを作成した時点でファイルというリソースを世界でただ一つに識別できる識別子、例えばＵＲＩ(Universal Resource Identifier)を付けて、ファイルを識別するという方法もある。
【０３１９】
あるいは、ファイルの中身が同じかどうかを示すのに、Message Digestによって得られた値で電子署名するような方法でも良い。
【図面の簡単な説明】
【０３２０】
【図１】本発明に係る実施の形態のデジタルカメラのネットワーク構成図である。
【図２】デジタルカメラの内部構成を示すブロック図である。
【図３】デジタルカメラの同期前と同期後のディレクトリ構成を示す図である。
【図４】２台のカメラ間の同期手順１を示すフローチャートである。
【図５】２台のカメラ間の同期手順２を示すフローチャートである。
【図６】２台のカメラ間の同期手順３を示すフローチャートである。
【図７】２台のカメラ間の同期手順３を示すフローチャートである。
【図８】所有ファイルリストの送信手順１を示すフローチャートである。
【図９】未所有ファイルリストの送信手順１を示すフローチャートである。
【図１０】２台のカメラ間の同期手順４を示すフローチャートである。
【図１１】他のカメラから同期処理で得たファイルをカメラ毎にディレクトリで管理する場合のディレクトリ構成を示す図である。
【図１２】２台のカメラ間の同期手順５を示すフローチャートである。
【図１３】所有ファイルリストの送信手順２を示すフローチャートである。
【図１４】未所有ファイルリストの送信手順２を示すフローチャートである。
【図１５】他のカメラから同期処理で得たファイルをカメラ毎にディレクトリで管理し、かつ、他のカメラにおいて格納されていたディレクトリパスを保持する場合のディレクトリ構成を示す図である。
【図１６】図１５に示すファイル及びディレクトリ構成を実現するための同期手順６を示すフローチャートである。
【図１７】所有ファイルリストの送信手順３を示すフローチャートである。
【図１８】未所有ファイルリストの送信手順３を示すフローチャートである。
【図１９】カメラＡがカメラＢ及びＣと同期した場合の同期前後のディレクトリ及びファイルの構成例を示す図である。
【図２０】格納ファイル名、カメラＩＤ、及び元のファイル名の間の対応テーブルである。
【図２１】カメラＡがカメラＢ及びＣと同期した場合の同期前後のディレクトリ及びファイルの構成例を示す図である。
【図２２】ディレクトリ名とカメラＩＤの対応テーブルである。
【図２３】カメラＡがカメラＢ及びＣと同期した場合の同期前後のディレクトリ及びファイルの構成例を示す図である。
【図２４】格納ディレクトリ名、カメラＩＤ、及び元のディレクトリ名の間の対応テーブルである。
【図２５】所有ファイルリストの送信手順４を示すフローチャートである。
【図２６】未所有ファイルリストの送信手順４を示すフローチャートである。
【図２７】図２５及び図２６のファイルリスト送信手順４を用いた場合のカメラＡからカメラＢに対する同期手順７を示すフローチャートである。
【図２８】図１３及び図１４のファイルリスト送信手順２を用いた場合のカメラＡからカメラＢに対する同期手順９を示すフローチャートである。
【図２９】ファイル名決定手順を示したフローチャートである。
【図３０】ファイル送受信手順を示したフローチャートである。
【図３１】送信不許可設定時の所有ファイルリスト送信手順５を示すフローチャートである。
【図３２】３台以上の装置間で相互に同期する場合の同期手順を示すフローチャートである。
【図３３】自分が撮影したファイルを、自分が所有しているファイルに加えない場合の所有ファイルリスト送信手順６を示すフローチャートである。
【図３４】２台のカメラ間の同期手順１０を示すフローチャートである。
【図３５】２台のカメラ間の同期手順１０を示すフローチャートである。
【符号の説明】
【０３２１】
１０１ａ−１０１ｄ  デジタルカメラ
１０２  ＬＡＮ
１０３  インターネット
２０１  ＣＰＵ
２０２  ＲＯＭ
２０３  ＲＡＭ
２０４  タイマ
２０５  ディスプレイ
２０６  マイク
２０７  スピーカ
２０８  操作ボタン
２０９  ＦｌａｓｈＲＯＭ
２１０  ネットワークＩ／Ｆ
２１１  ＣＣＤ
【図１】
2006079551.tif 000003
【図２】
2006079551.tif 000004
【図３】
2006079551.tif 000005
【図４】
2006079551.tif 000006
【図５】
2006079551.tif 000007
【図６】
2006079551.tif 000008
【図７】
2006079551.tif 000009
【図８】
2006079551.tif 000010
【図９】
2006079551.tif 000011
【図１０】
2006079551.tif 000012
【図１１】
2006079551.tif 000013
【図１２】
2006079551.tif 000014
【図１３】
2006079551.tif 000015
【図１４】
2006079551.tif 000016
【図１５】
2006079551.tif 000017
【図１６】
2006079551.tif 000018
【図１７】
2006079551.tif 000019
【図１８】
2006079551.tif 000020
【図１９】
2006079551.tif 000021
【図２０】
2006079551.tif 000022
【図２１】
2006079551.tif 000023
【図２２】
2006079551.tif 000024
【図２３】
2006079551.tif 000025
【図２４】
2006079551.tif 000026
【図２５】
2006079551.tif 000027
【図２６】
2006079551.tif 000028
【図２７】
2006079551.tif 000029
【図２８】
2006079551.tif 000030
【図２９】
2006079551.tif 000031
【図３０】
2006079551.tif 000032
【図３１】
2006079551.tif 000033
【図３２】
2006079551.tif 000034
【図３３】
2006079551.tif 000035
【図３４】
2006079551.tif 000036
【図３５】
2006079551.tif 000037