(57)【要約】【課題】画像ファイルをより適切に管理する。【解決手段】カメラからサーバに画像ファイルを転送する場合は、予め、両者で重複している画像ファイルの有無を判断する。画像ファイルの一致性を判断する際には、まず、ファイルサイズが一致する画像ファイルを特定する（Ｓ１２〜Ｓ１６）。サイズ一致する画像ファイルが存在すれば、続いて、当該画像ファイルの先頭部分を要約した部分ハッシュ値を算出し、これを比較する（Ｓ１８〜Ｓ２４）。部分ハッシュ値が一致すれば、さらに、画像ファイル全体を要約した全ハッシュ値を算出し、これを比較する（Ｓ２８〜Ｓ３０）。ファイルサイズ、部分ハッシュ値、全ハッシュ値の全てが一致する画像ファイルは同一ファイルと判断する（Ｓ３４）。一方、いずれか一つが不一致の画像ファイルは別ファイルと判断し、当該画像ファイルの送信をカメラに要求する（Ｓ３２）。【選択図】図３
2007201861.tif 000002
【特許請求の範囲】
【請求項１】
所定のフォーマットに従って作成される画像ファイルの管理方法であって、
画像ファイルの少なくとも先頭部分のハッシュ値を部分ハッシュ値として得るとともに、得られた部分ハッシュ値を当該画像ファイルの識別のためのキーとしてファイル管理することを特徴とするファイル管理方法。
【請求項２】
請求項１に記載のファイル管理方法であって、
前記先頭部分は、少なくとも、サムネイル画像データ部分を含むことを特徴とするファイル管理方法。
【請求項３】
請求項１または２に記載のファイル管理方法であって、
前記先頭部分は、画像ファイルの先頭から、１回のＩ／Ｏ動作で取り出されるデータサイズに相当する部分であることを特徴とするファイル管理方法。
【請求項４】
請求項１から３のいずれか１項に記載のファイル管理方法であって、
部分ハッシュ値は、画像ファイルの先頭部分および末尾部分のハッシュ値であることを特徴とするファイル管理方法。
【請求項５】
請求項１から４のいずれか１項に記載のファイル管理方法であって、
カメラに記憶されているカメラ側画像ファイルと、当該カメラと相互通信可能なサーバに記憶されているサーバ側画像ファイルとの一致性を判断する場合に、
カメラが、カメラ側画像ファイルの部分ハッシュ値をカメラ側部分ハッシュ値として算出する工程と、
サーバが、サーバ側画像ファイルの部分ハッシュ値をサーバ側部分ハッシュ値として算出する工程と、
カメラ側部分ハッシュ値およびサーバ側部分ハッシュ値を、カメラまたはサーバのいずれか一方に集めるべく、部分ハッシュ値をカメラおよびサーバ間で送受する工程と、
集められた部分ハッシュ値の比較結果に基づいて、カメラ側画像ファイルとサーバ側画像ファイルとの一致性を判断する工程と、
を備えることを特徴とするファイル管理方法。
【請求項６】
請求項５に記載のファイル管理方法であって、
部分ハッシュ値は、画像ファイルの一致性判断が指示されるたびに算出されることを特徴とするファイル管理方法。
【請求項７】
請求項５または６に記載のファイル管理方法であって、
部分ハッシュ値は、サーバに集められ、
サーバが、部分ハッシュ値を比較して、ファイルの一致性判断を行うことを特徴とするファイル管理方法。
【請求項８】
請求項５から７のいずれか１項に記載のファイル管理方法であって、
部分ハッシュ値の比較に先立って、カメラ側画像ファイルの属性情報とサーバ側画像ファイルの属性情報との比較を行い、
前記属性情報が一致した画像ファイルについてのみ、前記部分ハッシュ値の比較を行うことを特徴とするファイル管理方法。
【請求項９】
請求項８に記載のファイル管理方法であって、
属性情報は、各画像ファイルのファイルサイズを含むことを特徴とするファイル管理方法。
【請求項１０】
請求項１から４のいずれか１項に記載のファイル管理方法であって、
高解像度画像ファイルと、当該高解像度画像ファイルに基づいて生成された低解像度画像ファイルと、の関連性を特定する場合に、
予め、高解像度画像ファイルの部分ハッシュ値を第一部分ハッシュ値として算出するとともに、算出された第一部分ハッシュ値を当該高解像度画像ファイルに対応する低解像度画像ファイルに関連付けて記憶しておく工程と、
関連性を特定する際に、高解像度画像ファイルの部分ハッシュ値を第二部分ハッシュ値として算出する工程と、
算出された第二部分ハッシュ値と低解像度画像ファイルに関連付けられた第一部分ハッシュ値との比較結果に基づいて、高解像度画像ファイルと低解像度画像ファイルとの関連性を特定する工程と、
を備えることを特徴とするファイル管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定のフォーマットに従って作成される画像ファイルの管理方法に関する。
【背景技術】
【０００２】
近年、撮像画像をデジタルファイルとして取得できるデジタルカメラが広く普及している。かかるデジタルカメラで得られた画像ファイルは、デジタルカメラに搭載されたメモリに記憶されるほか、他の情報処理装置（サーバ）にも記憶される。すなわち、比較的、記憶容量の小さいメモリに記憶されている画像ファイルを、適宜、サーバに転送することにより、メモリの空き容量を確保している。
【０００３】
また、近年では、一つの画像ファイルに基づいて、他の画像ファイルを生成することも行われている。例えば、高画素の画像ファイルに基づいて、低画素の画像ファイルを生成することなどが行われている。
【０００４】
このように、現状、デジタルカメラで撮像された画像ファイルは、複数の場所に分散して記憶されることが多く、また、一つの画像ファイルに関連する他の画像ファイルが存在する場合がある。かかる状態において、画像ファイルを的確に管理することは困難を伴うことが多い。
【０００５】
例えば、複数の場所に分散して記憶される場合には、複数の場所に重複して記憶されている画像ファイルを特定したい場合がある。しかし、デジタルカメラやサーバに記憶されている画像ファイルは、ユーザの指示によって適宜、その内容が変更される可能性がある。そのため、画像ファイルのファイル名やＩＤ番号等を比較しただけでは重複したファイルを特定することはできない。画像ファイルそのものを比較すれば正確に重複したファイルを特定できるが、その場合は、画像ファイルそのものを通信手段を介して異なる装置間で送受する必要がある。かかる画像ファイルの送受は、時間がかかり、ユーザに不快感を生じさせる。
【０００６】
また、高画素の画像ファイルと、これに基づいて生成された低画素の画像ファイルと、の関連性、すなわち、親子関係を特定する場合も困難を伴うことが多い。すなわち、高画素の画像ファイルおよび低画素の画像ファイルは、基本的には異なるファイルであるため、単なるファイル比較では、両者の親子関係を特定することはできない。ファイル名やＩＤ番号に基づいて親子関係を特定することも考えられるが、ユーザによりファイル名が変更されたり、高画素の画像ファイルの内容そのものが変更されることもある。その場合には、ファイル名やＩＤ番号等に基づいて親子関係を特定することはできない。
【０００７】
特許文献１，２には、ファイル管理を比較的容易にする技術が開示されている。特許文献１には、受信側コンピュータが送信側コンピュータから送信されるソースファイルと類似のリファレンスファイルを持っている場合、二つのファイルの差異部分のみを送信することが記載されている。差異部分の特定は、ソースファイルおよびリファレンスファイルをそれぞれ複数のブロックに分割するとともに、各ブロックに基づいてキー（ブロックのデータの各バイトの値など）を取得し、対応するブロックのキー同士を比較することにより行われる。
【０００８】
また、特許文献２には、撮像した画像の保存先を示す現在情報を記憶している撮像装置において、電源オンの度に、撮像装置で記憶されている現在情報と、サーバで記憶されている最新の現在情報と、を比較し、両者が不一致の場合にのみ、サーバから最新の現在情報を取得する撮像装置が開示されている。現在情報を比較する際には、撮像装置で記憶されている現在情報およびサーバで記憶されている現在情報それぞれのハッシュ値同士を比較する。
【０００９】
【特許文献１】特開平７―２９５８６７号公報
【特許文献２】特開２００４−１９３６９２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
これらの技術によれば、異なる装置間での通信時間を短縮しつつ、的確なファイル管理ができる。しかしながら、特許文献１は、受信側コンピュータが、送信されるソースファイルと類似のリファレンスファイルを有しており、また、そのリファレンスファイルを明確に特定できる場合に限定される技術である。また、特許文献２は、デジタルカメラおよびサーバそれぞれに一つしか存在しない現在情報を比較対象としている。したがって、異なる装置それぞれに複数存在する画像ファイルの中から重複した画像ファイルを特定したい場合には、適用しがたい。また、画像ファイルの親子関係を特定する場合にも適用できない。
【００１１】
そこで、本発明では、より的確に、画像ファイルを管理し得るファイル管理方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明のファイル管理方法は、所定のフォーマットに従って作成される画像ファイルの管理方法であって、画像ファイルの少なくとも先頭部分のハッシュ値を部分ハッシュ値として得るとともに、得られた部分ハッシュ値を当該画像ファイルの識別ためのキーとしてファイル管理することを特徴とする。ここで、画像ファイルとは、静止画像ファイル、動画像ファイルのいずれでもよい。
【００１３】
好適な態様では、前記先頭部分は、少なくとも、サムネイル画像データ部分を含む。また、前記先頭部分は、画像ファイルの先頭から、１回のＩ／Ｏ動作で取り出されるデータサイズに相当する部分であることが望ましい。部分ハッシュ値は、画像ファイルの先頭部分および末尾部分のハッシュ値であることも望ましい。
【００１４】
他の好適な態様では、カメラに記憶されているカメラ側画像ファイルと、当該カメラと相互通信可能なサーバに記憶されているサーバ側画像ファイルとの一致性を判断する場合に、カメラが、カメラ側画像ファイルの部分ハッシュ値をカメラ側部分ハッシュ値として算出する工程と、サーバが、サーバ側画像ファイルの部分ハッシュ値をサーバ側部分ハッシュ値として算出する工程と、カメラ側部分ハッシュ値およびサーバ側部分ハッシュ値を、カメラまたはサーバのいずれか一方に集めるべく、部分ハッシュ値をカメラおよびサーバ間で送受する工程と、集められた部分ハッシュ値の比較結果に基づいて、カメラ側画像ファイルとサーバ側画像ファイルとの一致性を判断する工程と、を備える。
【００１５】
この場合、部分ハッシュ値は、画像ファイルの一致性判断が指示されるたびに算出されることが望ましい。また、部分ハッシュ値は、サーバに集められ、サーバが、部分ハッシュ値を比較して、ファイルの一致性判断を行うことも望ましい。さらに、部分ハッシュ値の比較に先立って、カメラ側画像ファイルの属性情報とサーバ側画像ファイルの属性情報との比較を行い、前記属性情報が一致した画像ファイルについてのみ、前記部分ハッシュ値の比較を行うことも望ましい。なお、属性情報は、各画像ファイルのファイルサイズ、作成日、画像の撮影条件のいずれか一つを含む情報である。
【００１６】
他の好適な態様では、高解像度画像ファイルと、当該高解像度画像ファイルに基づいて生成された低解像度画像ファイルと、の関連性を特定する場合に、予め、高解像度画像ファイルの部分ハッシュ値を第一部分ハッシュ値として算出するとともに、算出された第一部分ハッシュ値を当該高解像度画像ファイルに対応する低解像度画像ファイルに関連付けて記憶しておく工程と、関連性を特定する際に、高解像度画像ファイルの部分ハッシュ値を第二部分ハッシュ値として算出する工程と、算出された第二部分ハッシュ値と、低解像度画像ファイルに関連付けられた第一部分ハッシュ値と、の比較結果に基づいて、高解像度画像ファイルと低解像度画像ファイルとの関連性を特定する工程と、を備える。
【発明の効果】
【００１７】
本発明によれば、画像ファイルの少なくとも先頭部分を要約した部分ハッシュ値を当該画像ファイルの識別のためのキーとしてファイル管理する。ハッシュ値は、周知の通り、データの内容に応じて高いユニーク性が保証された値である。かかるハッシュ値を識別用キーとして用いることにより、画像ファイルの内容が変更の有無が容易に認識できるため、適切なファイル管理ができる。さらに、画像ファイルの先頭部分には、サムネイル画像データをはじめとして、画像ファイルの内容に深く関与するデータが記録されている一方で、そのデータ量は少ない。かかる先頭部分のハッシュ値を用いることで、ハッシュ値算出に要する時間を短縮しつつも適切なファイル管理が可能となる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施形態について図面を参照して説明する。図１は、本発明の実施形態であるカメラシステム１０の概略構成を示すブロック図である。このカメラシステム１０は、デジタルカメラ１２と、当該デジタルカメラ１２との相互通信が可能なサーバ３０と、に大別される。
【００１９】
デジタルカメラ１２の撮像部１４は、ユーザからの指示に応じて、適宜、撮像動作を実行し、デジタルの画像ファイルを生成する。この撮像部１４の具体的構成は、周知のデジタルカメラと同様であるため、ここでは、その説明を省略する。生成された画像ファイルは、メモリ１６に記憶されるとともに、必要に応じて表示部１８に表示される。表示部１８は、撮像された画像を適宜表示するもので、ユーザは、当該表示部１８に表示された画像をみることで、撮像の良否を判断することができる。メモリ１６は、カメラ内蔵の固定メモリであってもよいし、メモリカード等のようにカメラに着脱自在のメモリであってもよい。このメモリ１６には、撮像により得られた画像ファイルが順次、記憶される。しかしながら、通常、メモリは、後述するサーバのハードディスクドライブ（ＨＤＤ）に比して記憶容量が小さく、大量の画像ファイルを記憶することが困難である。そこで、このデジタルカメラ１２では、メモリ１６に記憶されている画像ファイルを適宜サーバに転送できるように構成されている。サーバとの通信は、通信インターフェース２０（Ｉ／Ｆ）を介して実現されている。この通信Ｉ／Ｆ２０は、デジタルカメラに通信機能を提供するものである。提供される通信機能は、ＲＳ−２３２Ｃのような有線での通信機能、Ｂｌｕｅｔｏｏｔｈ等の無線での通信機能のいずれであってもよい。ＣＰＵ２２は、以上の各部を制御するもので、必要に応じて、各種演算を行ったり、各部への指令コマンドを出力したりする。
【００２０】
サーバ３０は、デジタルカメラ１２で生成された画像ファイルを記憶することができる情報処理装置である。このサーバ３０は、デジタルカメラ１２の通信Ｉ／Ｆ２０に対応した通信Ｉ／Ｆ３６を備えており、デジタルカメラ１２との相互通信が可能となっている。また、デジタルカメラ１２から送信された画像ファイルを記憶するためのハードディスクドライブ（ＨＤＤ）３２も備えている。このＨＤＤ３２は、既述のデジタルカメラ１２のメモリ１６に比して、その記憶容量が大きく、大量の画像ファイルを保存することができるようになっている。また、このサーバ３０は、通常の情報処理装置と同様に、各種のアプリケーションが搭載されている。搭載されるアプリケーションの一つとして画像処理アプリケーションが考えられる。画像処理アプリケーション３４は、デジタルカメラ１２から送信された画像ファイルをはじめとする各種画像ファイルについて、種々の画像処理、例えば、合成処理や、色補正、トリミングなどを施すためのアプリケーションである。ユーザは、かかる画像処理アプリケーションを利用することにより、より希望に沿った画像ファイルを得ることができる。ＣＰＵ４０は、以上の各部を制御するもので、必要に応じて、各種演算を行ったり、各部への指令コマンドを出力したりする。また、後述するファイルの一致性判断処理もこのＣＰＵ４０により行われる。
【００２１】
このようなカメラシステム１０における画像ファイルの管理について簡単に説明する。デジタルカメラ１２での撮像動作により生成された画像ファイルは、既述したとおり、カメラ１２のメモリ１６に記憶される。しかし、このメモリ１６は、比較的、低容量であるため、大量の画像ファイルを記憶することができない。そこで、ユーザは、適宜、メモリ１６に記憶されている画像ファイルをサーバ３０に転送することによりメモリ１６の空き容量を確保する。
【００２２】
このとき、転送される画像ファイルは、サーバ３０に存在しない画像ファイルだけに限定される。換言すれば、サーバ３０およびデジタルカメラ１２の両方で記憶している画像ファイルについては、改めて、転送されることなく削除される。これは、重複している画像ファイルの送信に要する通信時間を削減するためである。すなわち、近年、デジタルカメラ１２は、高画素化が進み、得られる画像ファイルのデータ量は非常に大きくなっている。そして、画像ファイルのデータ量が大きくなるにつれ、データ通信に必要な時間も長くなる。そこで、画像ファイルの転送数を少しでも削減し、総通信時間を少しでも短縮するために、本実施形態では、カメラ１２とサーバ３０の両方で重複している画像ファイルについては転送しないようになっている。
【００２３】
ところで、既述のように重複した画像ファイルの転送を防止するためには、当然、重複している画像ファイルを特定する必要がある。ここで、デジタルカメラ１２で生成された画像ファイルには、当然、ファイル名やＩＤ番号等の識別子が付与されており、当該識別子を比較することにより、重複した画像ファイルの特定はある程度可能である。しかし、ファイル名等はユーザにより適宜、変更される可能性が高く、ファイル名等だけでは正確に重複した画像ファイルを特定することはできない。また、ファイル名等は変更されなくても、画像データそのものが変更される場合がある。すなわち、既述したようにサーバ３０には、画像処理アプリケーション３４が搭載されており、当該アプリケーションにより、画像処理が施され、異なる内容のファイルに変更される場合がある。また、カメラ１２にも、簡易な画像処理アプリケーションは搭載されており、カメラ単独で簡易な画像処理、例えば、トリミングや回転等が施される場合がある。このような画像処理が施された場合、ファイル名等だけでは、重複した画像ファイルを特定することはできない。
【００２４】
したがって、カメラ１２およびサーバ３０の両方で重複した画像ファイルを特定するためには、各画像ファイルの内容そのものを詳細に比較する必要がある。しかし、この比較のために画像ファイルをサーバ３０に転送した場合には、膨大な転送時間が必要になり、実用に供しない。
【００２５】
かかる問題を解決するために、本実施形態では、画像ファイルそのものではなく、当該画像ファイルを要約したハッシュ値を比較して、重複した画像ファイルを特定している。これにより、不要な画像ファイルそのものの転送を防止できる。
【００２６】
このハッシュ値に基づく重複ファイルの特定について説明する前に、画像ファイルのフォーマットについて簡単に説明する。なお、以下で説明するフォーマットは一例であり、当然、他の形態のフォーマットであってもよい。また、ここでは、静止画像ファイル用のフォーマットについてのみ説明しているが、当然、動画像ファイルにも規格で規定された各種フォーマットがあり、本実施形態はかかる所定のフォーマットに従って作成された動画像ファイルの管理にも適用できる。図２は、静止画像ファイル４２のフォーマットの一例を示す図である。一般的にデジタルカメラ１２で生成される画像ファイル４２のフォーマットは、規格で規定されており、本実施形態のデジタルカメラ１２も当該規格に応じたフォーマットで画像ファイル４２を生成している。生成された画像ファイル４２には、図２に図示するように、先頭から順に、ヘッダ情報４８、サムネイル画像データ５０、主画像データ５２が記録されている。
【００２７】
ヘッダ情報４８は、当該画像ファイル４２に関する各種情報であり、主画像データ５２の画素数や圧縮形式などのファイル情報４４、および、主画像データ５２の撮影日時や撮影機種名、絞り値などの撮影条件情報４６などが含まれる。サムネイル画像データ５０は、主画像データ５２の縮小画像データであり、複数の画像ファイル４２の内容を一覧表示する場合などに利用される。なお、このサムネイル画像データ５０は、後述する主画像データ５２の画素数に関わらず、常に、１６０×１２０画素とすることが規定されている。主画像データ５２は、撮像により得られた撮像画像のデータである。
【００２８】
このヘッダ情報４８、サムネイル画像データ５０、主画像データ５２のうちデータサイズが最も大きいのは、当然ながら主画像データ５２であり、数Ｍ〜数百Ｍバイトとなる場合が多い。一方、主画像データ５２を除く先頭部分、すなわち、ヘッダ情報４８およびサムネイル画像データ５０のデータサイズは小さく、両者を合わせても、数Ｋ〜十数Ｋバイト程度である。しかしながら、この先頭部分にはサムネイル画像も含まれており、当該先頭部分が一致する場合には同一画像ファイルである可能性が高い。
【００２９】
そこで、本実施形態では、画像ファイル４２のうち先頭部分にハッシュ関数を適用して得られた部分ハッシュ値を比較して、画像ファイル４２の同一性を判断する。このとき、部分ハッシュ値は、画像ファイル４２の先頭から１６Ｋバイトの部分にのみハッシュ関数を適用することで得る。１６Ｋバイトは１回のＩ／Ｏ動作で取り出されるデータサイズである。したがって、部分ハッシュ値の対象となるデータ量を１６Ｋバイトと限定することにより、１回のＩ／Ｏ動作で部分ハッシュ値を得ることができ、部分ハッシュ値算出に要する時間を短縮できる。なお、既述のヘッダ情報４８およびサムネイル画像データ５０は、通常、部分ハッシュ値の対象となるデータ範囲、すなわち、ファイル先頭から１６Ｋバイトの範囲に収まるようになっている。
【００３０】
部分ハッシュ値の比較だけでファイルの一致性が判断できなかった場合には、更に、画像ファイル４２全体にハッシュ関数を適用して全ハッシュ値を算出し、算出された全ハッシュ値の比較に基づいて、より厳密な同一性を判断を行う。
【００３１】
この同一性判断に用いるハッシュ値は、同一性判断を行う直前に算出される。すなわち、一度、算出されたハッシュ値を常時、保持しておくのではなく、同一性判断を行うたびに、新たに、ハッシュ値の算出を行う。同一性判断の度に、ハッシュ値を算出することにより、前回の同一性判断の時からファイル内容が変更された場合であっても、変更後のファイル内容を反映したハッシュ値を得ることができ、より正確な同一性判断が行える。
【００３２】
ただし、画像ファイル４２の先頭部分にのみハッシュ関数を適用して得られた部分ハッシュ値であっても、その演算にはある程度の負荷がかかる。特に、デジタルカメラ１２のＣＰＵは、比較的、処理能力の低いことが多く、メモリ１６に記憶されている全ての画像ファイルについて部分ハッシュ値を算出することは負担となる場合が多い。そこで、本実施形態では、後に詳説するように、ハッシュ値の比較に先立って、ファイルサイズの比較を行い、ファイルサイズが一致した画像ファイルについてのみ、ハッシュ値の比較を行う。これにより、ハッシュ値演算量を低減でき、重複する画像ファイルの特定をより迅速に行うことができる。
【００３３】
次に、このカメラシステム１０における画像ファイルの転送の流れについて詳細に説明していく。図３は、カメラ１２からサーバに一つの画像ファイルを転送する際の流れを示すフローチャートである。図３では、左側にカメラ１２の処理内容を、右側にサーバ３０の処理内容を図示している。また、以下では、カメラ１２のメモリ１６に記憶されている画像ファイルを「カメラ側ファイル」、サーバ３０のＨＤＤ３２に記憶されている画像ファイルを「サーバ側ファイル」と呼ぶ。
【００３４】
ユーザからカメラ側ファイルの転送指示を受けた場合、サーバ３０は、まず、当該カメラ側ファイルのファイルサイズの送信をカメラ１２に要求する（Ｓ１２）。カメラ１２は、サーバ３０からの指示に応じて、当該カメラ側ファイルのファイルサイズをサーバ３０に送信する（Ｓ１４）。ファイルサイズを受信したサーバ３０は、ＨＤＤ３２に記憶されているサーバ側ファイルを検索し、送信されたファイルサイズと同じサイズのサーバ側ファイルがあるか否かを判断する（Ｓ１６）。カメラ側ファイルと同サイズのサーバ側ファイルがない場合、転送指示されたカメラ側ファイルと重複したサーバ側ファイルは存在しないと判断できる。したがって、その場合、サーバ３０は、当該カメラ側ファイルの送信をカメラ１２に要求する（Ｓ３２）。カメラ１２は、サーバ３０からの指示に従いカメラ側ファイルをサーバ３０に転送する（Ｓ３８）。
【００３５】
一方、当該カメラ側ファイルと同じサイズのサーバ側ファイルが存在した場合、両ファイルは同一ファイルである可能性がある。そこで、サーバ３０は、さらに、両ファイルのハッシュ値比較に基づき、その同一性を判断していく（Ｓ１８〜Ｓ３０）。具体的には、まず、サーバは、当該カメラ側ファイルの部分ハッシュ値をカメラ１２に要求する（Ｓ１８）。また、サーバ３０は、ステップＳ１６で特定されたカメラ側ファイルと同サイズのサーバ側ファイルの部分ハッシュ値を算出する（Ｓ２２）。一方、部分ハッシュ値の要求を受けたカメラ１２は、当該カメラ側ファイルの部分ハッシュ値を算出するとともに、これをサーバに送信する（Ｓ２０）。
【００３６】
カメラ側ファイルおよびサーバ側ファイルの両方の部分ハッシュ値を取得したサーバ３０は、両部分ハッシュ値を比較する（Ｓ２４）。周知のとおり、ハッシュ値は、指定されたデータを数学的関数（ハッシュ関数）を用いて要約したものであり、要約対象データ毎に固有で、かつ、対象データ毎に異なる値になるとみなせる。したがって、カメラ側ファイルの部分ハッシュ値と、サーバ側ファイルの部分ハッシュ値が一致した場合、両ファイルの先頭部分は等しい可能性が極めて高い。そして、この先頭部分には、既述したサムネイル画像が含まれており、このサムネイル画像も含めた先頭部分が一致している二つの画像ファイルは同一ファイルである可能性がある程度高いといえる。つまり、カメラ側ファイルの部分ハッシュ値と、サーバ側ファイルの部分ハッシュ値と、が一致する場合には、両ファイルは同一ファイルである可能性がある程度高いといえる。この場合は、より厳密に両ファイルの一致性判断を行うため、ステップＳ２８に進む。逆に、部分ハッシュ値が一致しなかった場合には、両ファイルは同一でないと判断できる。この場合、サーバ３０は、当該カメラ側ファイルの送信をカメラ１２に要求する（Ｓ３２）。
【００３７】
カメラ側ファイルおよびサーバ側ファイルの部分ハッシュ値が一致した場合、サーバ３０は、当該カメラ側ファイルの全ハッシュ値をカメラに要求する（Ｓ２８）。また、当該カメラ側ファイルに対応するサーバ側ファイルの全ハッシュ値を算出する（Ｓ２９）。
【００３８】
全ハッシュ値の要求を受けたカメラ１２は、指定されたカメラ側ファイルの全ハッシュ値を算出するとともに、算出された全ハッシュ値をサーバ３０に送信する（Ｓ２６）。サーバ３０は、カメラ１２から送信された全ハッシュ値と、対応するサーバ側ファイルの全ハッシュ値と、を比較する（Ｓ３０）。その結果、二つの全ハッシュ値が一致しなかった場合、サーバ３０は、当該カメラ側ファイルの転送をカメラに要求する（Ｓ３２）。一方、二つの全ハッシュ値が一致した場合、サーバ３０は、当該サーバ側ファイルとカメラ側ファイルは同一ファイルであると判断する。そして、その旨をカメラ側に通知する（Ｓ３４）。この通知を受けたカメラは、メモリ１６に記憶されている当該カメラ側ファイルをサーバに転送することなく、削除する（Ｓ３６）。以上で転送処理が終了となる。
【００３９】
以上の説明で明らかなように、本実施形態では、画像ファイルの転送に先立って、ファイルサイズおよびハッシュ値に基づいてファイルの一致性を判断している。そのため、画像ファイルの不要な送信を防止できる。また、一致性判断のために送信されるファイルサイズおよびハッシュ値は、画像ファイルそのものに比べてデータサイズが極めて小さい。そのため、画像ファイルそのものを送信するよりも短時間で一致性を判断できる。
【００４０】
また、本実施形態では、ハッシュ値の比較に先立ってファイルサイズの比較を行っている。その結果、不要なハッシュ値算出を防止できるため、画像ファイル転送に要する時間をより短縮できる。
【００４１】
また、図３のフローチャートから明らかなように、本実施形態では、ファイルサイズの比較やハッシュ値の比較は、カメラ１２ではなく、サーバ３０で行っている。一般に、サーバ３０は、カメラ１２に比して処理能力が高い場合が多い。かかるサーバ３０に各種比較を行わせることにより、カメラ１２の負荷を軽減し、ひいては、ファイルの一致性判断に要する時間をより短縮できる。
【００４２】
なお、ここで説明した流れは一例であり、少なくとも部分ハッシュ値の比較がなされるのであれば、適宜、変更されてもよい。例えば、本実施形態では、部分ハッシュ値が一致した場合には、更に、厳密な一致性判断を行うために全ハッシュ値の比較も行っている。しかし、一致性判断に要する時間をより短縮したい場合には、この全ハッシュ値の比較を省略し、部分ハッシュ値が一致する画像ファイルを同一ファイルとみなすようにしてもよい。また、本実施形態では、部分ハッシュ値同士の比較に先立って、ファイルサイズの比較も行っているが、これを省略してもよい。また、ファイルサイズではなく、他の属性情報、例えば、ファイル名やＩＤ番号、画像ファイルの作成日、撮影日時などを比較するようにしてもよい。また、本実施形態では、画像ファイルの先頭部分のハッシュ値を部分ハッシュ値として取り扱っている。しかし、先頭部分およびファイル末尾部分の両方にハッシュ関数を適用し、これを部分ハッシュ値として取り扱ってもよい。部分ハッシュ値に末尾部分の情報も反映させることにより、不完全転送された画像ファイルを同一ファイルと判断する可能性を低減できる。
【００４３】
次に、他の実施形態について説明する。既述の実施形態では、同じ形態の画像ファイルの一致性判断を行っていたが、場合によっては、異なる形態の画像ファイルの一致性（または関連性）を判断したい場合がある。
【００４４】
例えば、既述したように、通常のデジタルカメラ１２には、表示部１８が設けられており、メモリ１６に記憶された画像ファイルを表示できるようになっている。しかしながら、デジタルカメラ１２に設けられている表示部１８は、その解像度が低いことが多い。かかる表示部１８に表示するための画像ファイルは、高解像度である必要はない。一方、印刷等の処理を行う場合には、画像ファイルは高解像度であるべきである。この印刷等の処理は、情報処理装置であるサーバ３０により実行されるため、サーバ３０が高解像度の画像ファイルを有していれば、カメラ１２が高解像度の画像ファイルを有している必要は無い。
【００４５】
そこで、高解像度の画像ファイルはサーバ３０に記憶しておき、カメラ１２のメモリ１６には、当該高解像度の画像ファイルに基づいて生成された低解像度の画像ファイルのみを記憶しておくことが考えられる。これによれば、比較的、低容量であるカメラ１２のメモリ１６にも多数の画像ファイルを保存できるという利点がある。しかし、この方式では、カメラ１２に記憶されている低解像度の画像ファイルとサーバ３０に記憶されている高解像度の画像ファイルとの関連性が分かりづらいという問題がある。
【００４６】
例えば、ユーザがカメラ１２を介して、印刷すべき画像ファイルを指定する場合を考える。この場合、ユーザは、カメラ１２の表示部１８にメモリ１６に記憶されている低解像度の画像ファイルを表示させて各画像ファイルの内容を確認し、印刷すべき画像ファイルを指定する。カメラ１２は、ユーザから指示された低解像度の画像ファイルに対応する高解像度の画像ファイル（すなわち、低解像度画像ファイルの元になった元画像ファイル）の印刷指示をサーバ３０に出力する。当該印刷指示を受けたサーバ３０は、ユーザが指定した低解像度の画像ファイルに対応する高解像度の元画像ファイルを特定し、印刷処理を実行する。しかし、このとき、ユーザから指示された低解像度の画像ファイルと、これに対応する高解像度の元画像ファイルと、は全く別形態の画像ファイルであり、当該元画像ファイルを特定することは困難である。
【００４７】
もちろん、低解像度の画像ファイルと、対応する元画像ファイルに、関連性を示す識別子を付与したり、両画像ファイルの関係性をリストとして記憶しておくなどすれば、対応する元画像ファイルをある程度は特定できる。しかし、既述したように、サーバ３０に記憶された画像ファイルは、画像処理アプリケーション３４等の利用により適宜、その内容が変更される場合がある。かかる場合、既述の識別子やリストに基づいて低解像度画像ファイルと元画像ファイルとの関係性を特定することは困難である。
【００４８】
そこで、本実施形態では、異なる形態の二つの画像ファイルの関係性を特定するために、ハッシュ値を利用している。具体的には、高解像度画像ファイルに基づいて、低解像度画像ファイルを生成した際に、当該高解像度画像ファイルのハッシュ値も算出する。そして、カメラ１２のメモリ１６には、生成された低解像度画像ファイルとハッシュ値とを関連付けて記憶しておく。低解像度画像ファイルに基づいて、対応する高解像度画像ファイルを特定する場合には、改めて、サーバ３０に記憶されている高解像度画像ファイルのハッシュ値を生成する。そして、指定された低解像度画像ファイルに関連付けられたハッシュ値と同じハッシュ値を持つ高解像度画像ファイルを、対応する元画像ファイルとして特定する。
【００４９】
この高解像度画像ファイルと低解像度画像ファイルとの関連性特定の様子を図４を用いて説明する。図４（Ａ）に図示するように、サーバ３０には、高解像度画像ファイル５６が、カメラ１２には、当該高解像度画像ファイル５６に基づいて生成された低解像度画像ファイル５４が記憶されているとする。この場合、カメラ１２に記憶されている低解像度画像ファイル５４と、サーバ３０に記憶されている高解像度画像ファイル５６は、互いに異なる形態の画像ファイルであるため、同一性はない。したがって、低解像度画像ファイルに基づいて、その元になった高解像度の元画像ファイルを特定することは困難である。
【００５０】
そのため、本実施形態では、低解像度画像ファイルの生成時に元画像ファイルのハッシュ値５６ａを算出し、当該ハッシュ値５６ａを低解像度画像ファイルに関連付けた状態で、カメラ１２に記憶する。低解像度画像ファイル５４に対応する元画像ファイルを特定する場合には、低解像度画像ファイル５４に関連付けられたハッシュ値５６ａ、すなわち、低解像度画像ファイル生成時に生成されたハッシュ値５６ｂと、特定時に生成された高解像度画像ファイル５６のハッシュ値５６ａと、を比較する。元画像ファイルが変更されていない場合、低解像度画像ファイル生成時に生成されたハッシュ値５６ａと、元画像ファイルの特定時に生成されたハッシュ値５６ｂと、は一致する。したがって、このハッシュ値５６ａ，５６ｂの一致性をみれば、ほぼ確実に、低解像度画像ファイル５４に対応する元画像ファイルを特定できる。
【００５１】
次に、この低解像度画像ファイルと元画像ファイルの関連性特定の流れについて図５、図６を用いて説明する。図５は、画像撮像から画像ファイル記録までの流れを示すフローチャートである。また、図６は、ユーザから指定された低解像度画像ファイルに対応する元画像ファイルを特定する流れを示すフローチャートである。
【００５２】
デジタルカメラ１２は、ユーザから撮像指示があった場合、撮像動作を実行し、画像ファイルを生成する（Ｓ４０）。ここで、生成される画像ファイルは、高解像度の画像ファイルである。通常、生成された高解像度の画像ファイルは、カメラ１２のメモリ１６に一時記憶される。ただし、これは、一時記憶であり、サーバ３０との通信が可能な状態になれば、この高解像度画像ファイルは、サーバ３０に転送される（Ｓ４２）。高解像度画像ファイルを受信したサーバ３０は、この高解像度画像ファルに基づいて、低解像度画像ファイル、高解像度画像ファイルの部分ハッシュ値、高解像度画像ファイルの全ハッシュ値を算出する（Ｓ４４）。ここで、低解像度画像ファイルは、高解像度画像ファイルの画素数を低減した画像ファイルであり、カメラ１２の表示部１８の画素数に応じた画素数の画像ファイルである。部分ハッシュ値および全ハッシュ値は、上述の実施形態と同様、それぞれ、高解像度画像ファイルの先頭部分にのみハッシュ関数を適用して得られたハッシュ値、および、高解像度画像ファイルの全体にハッシュ関数を適用して得られたハッシュ値である。
【００５３】
続いて、サーバ３０は、得られた低解像度画像ファイル、二種類のハッシュ値、および、高解像度画像ファイルのファイルサイズをカメラに転送する（Ｓ４６）。また、高解像度画像ファイルは、そのまま、サーバ３０のＨＤＤ３２に記憶しておく（Ｓ５０）。一方、カメラ１２は、受信した低解像度画像ファイルを、高解像度画像ファイルのハッシュ値およびファイルサイズに関連づけた状態でメモリ１６に記憶する（Ｓ４８）。
【００５４】
以上の流れにより、記憶容量の小さいカメラ１２のメモリ１６には、低解像度画像ファイル、ハッシュ値およびファイルサイズのみが記憶されることになる。低解像度画像ファイル、ハッシュ値、ファイルサイズは、高解像度画像ファイルに比して、大幅にデータサイズが小さいため、カメラ１２のメモリ１６に大量の画像ファイルを記憶することができる。
【００５５】
次に、ユーザからカメラ１２を介して印刷すべき画像ファイルが指定された場合の流れについて説明する。ユーザがカメラ１２の表示部に表示される低解像度画像ファイルを介して印刷指示を行った場合、カメラ１２は、その旨をサーバ３０に通知する（Ｓ５２）。当該通知を受けたサーバ３０は、印刷指示された低解像度画像ファイルに関連付けられた高解像度画像ファイルのファイルサイズをカメラ１２に要求する（Ｓ５４）。
【００５６】
この要求に基づき、カメラ１２は、ユーザにより選択された低解像度画像ファイルに関連付けられたファイルサイズをサーバ３０に送信する（Ｓ５６）。サーバ３０は、カメラ１２から送信されたファイルサイズと同じサイズの高解像度画像ファイルがＨＤＤ３２に記憶されているいか否かを判断する（Ｓ５８）。同一サイズの高解像度画像ファイルが無い場合、サーバ３０は、選択された低解像度画像ファイルの元になった高解像度画像ファイルは無いと判断し、その旨をカメラ１２に通知する（Ｓ７８）。
【００５７】
一方、同サイズの高解像画像ファイルがＨＤＤ３２に記憶されている場合、サーバ３０はより正確な関連性判断を行う。すなわち、サーバ３０は、カメラ１２に対して選択された低解像度画像ファイルに関連付けられた部分ハッシュ値を要求する（Ｓ６０）。また、ステップＳ５８でファイルサイズが一致した高解像度画像ファイルの部分ハッシュ値を算出する（Ｓ６２）。カメラ１２は、サーバ３０からの要求に基づいて、選択された低解像度画像ファイルに対応付けられた部分ハッシュ値をサーバ３０に送信する（Ｓ６４）。サーバ３０は、カメラ１２から送信された部分ハッシュ値と、高解像度画像ファイルに基づいて改めて算出された部分ハッシュ値が一致するか否かを判断する（Ｓ６６）。
【００５８】
部分ハッシュ値が一致しなかった場合、サーバ３０は、ユーザが指定した低解像度画像ファイルに対応する元画像ファイル（高解像度画像ファイル）がないことを、カメラ１２に通知する（Ｓ７８）。一方、部分ハッシュ値が一致した場合、サーバ３０は、ユーザが指定した低解像度画像ファイルに関係付けられた全ハッシュ値をカメラ１２に要求する（Ｓ６８）。同時に、部分ハッシュ値が一致した高解像度画像ファイルの全ハッシュ値を算出する（Ｓ７０）。
【００５９】
全ハッシュ値の要求を受けたカメラ１２は、ユーザにより選択された低解像度画像ファイルに関係付けられた全ハッシュ値をサーバ３０に送信する（Ｓ７４）。サーバ３０は、算出された全ハッシュ値と、カメラ１２から送信されたハッシュ値と、を比較し、両者が一致するか否かを判断する（Ｓ７２）。両者が一致する場合には、当該高解像度画像ファイルを、ユーザが指定した低解像度画像ファイルに対応する元画像ファイルと判断し、当該画像ファイルの印刷処理を実行する（Ｓ７６）。一方、両者が不一致の場合、サーバ３０は、ユーザが指定した低解像度画像ファイルに対応する元画像ファイルがないことを、カメラ１２に通知する（Ｓ７８）。
【００６０】
印刷処理が実行された場合（Ｓ７６）、元画像ファイルが存在しないと判断された場合（Ｓ７８）、のいずれの場合でも、サーバ３０は、その処理結果をカメラ１２に通知する。カメラ１２は、その処理結果を取得すれば、表示画面等を介して、その処理結果をユーザに提示する。
【００６１】
以上、説明したように、本実施形態によれば、形態が異なる画像ファイルの関連性を特定できる。このとき、過去に算出された部分ハッシュ値と、関連性特定時に算出されたハッシュ値と、を比較している。そのため途中で最初にハッシュ値を算出してから、画像ファイルの内容が変更された場合に、誤って、関連性有りと判断することがない。その結果、適切なファイル管理が可能となる。なお、ここで説明した特定方法は、一例であり、適宜、変更されてもよい。例えば、上記実施形態では、部分ハッシュ値を比較するに先立って、ファイルサイズを比較しているが、これは省略してもよい。また、部分ハッシュ値と全ハッシュ値の両方を比較しているが、部分ハッシュ値のみを比較し、全ハッシュ値の比較は省略してもよい。
【図面の簡単な説明】
【００６２】
【図１】本発明の実施形態であるカメラシステムの概略構成を示すブロック図である。
【図２】画像ファイルのフォーマットを示す図である。
【図３】カメラからサーバへの画像ファイル転送の流れを示すフローチャートである。
【図４】他の実施形態における画像ファイルの管理態様を示すイメージ図である。
【図５】画像撮像から画像ファイルの記憶までの流れを示すフローチャートである。
【図６】カメラを介して印刷指示があった場合の流れを示すフローチャートである。
【符号の説明】
【００６３】
１０  カメラシステム、１２  デジタルカメラ、１６  メモリ、１８  表示部、２０，３６  通信インターフェース、３０  サーバ、３２  ハードディスクドライブ、４２  画像ファイル、５４  低解像度画像ファイル、５６  高解像度画像ファイル。
【図１】
2007201861.tif 000003
【図２】
2007201861.tif 000004
【図３】
2007201861.tif 000005
【図４】
2007201861.tif 000006
【図５】
2007201861.tif 000007
【図６】
2007201861.tif 000008