以下に、本発明を実施するための形態について、添付の図面を用いて詳細に説明する。
なお、以下に説明する実施の形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されてもよい。また、各実施の形態を適宜組み合せることも可能である。
[第1の実施形態]
<システムの概要>
図1はデジタルカメラ100およびデジタルカメラ150と、情報処理装置の一例であるパーソナルコンピュータ200とがUSB(Universal Serial Bus)ケーブルにより接続されているシステムのブロック図である。ここで、デジタルカメラ100は、測位方式情報の記録に対応した撮像装置の一例である。一方、デジタルカメラ150は、測位方式情報の記録に対応していない撮像装置の一例である。
本実施形態では、デジタルカメラ100およびデジタルカメラ150が、位置情報付きの画像データを画像ファイルとして記録媒体に記録する。そして、この画像ファイルをパーソナルコンピュータ200へUSBケーブルを介して送信する。結果、パーソナルコンピュータ200は、測位方式情報が記録された画像データと、測位方式情報が記録されていない画像データとを保持することになる。なお、後述するように、デジタルカメラ100およびコンピュータ200はそれぞれ無線通信部を備えている。そのため、USBケーブルを介して通信する代わりに、無線通信を介して通信してもよい。
また、パーソナルコンピュータ200では、これらの画像データの閲覧を楽しむためのアプリケーションを保持している。このアプリケーションは、画像データの位置情報に基づき、地図上に撮像位置を示すマークを表示することができる。このアプリケーションの詳細については後述する。
なお、ここでは撮像装置としてデジタルカメラを例に挙げて述べるが、撮像装置はこれに限られない。例えば撮像装置はカメラ付き携帯電話や、いわゆるタブレットデバイス、パーソナルコンピュータなどの情報処理装置であってもよい。
また、ここでは情報処理装置としてパーソナルコンピュータを例に挙げて述べるが、情報処理装置はこれに限られない。例えば情報処理装置は、カメラ付き携帯電話やいわゆるタブレットデバイスなどであってもよい。
<デジタルカメラの構成>
図2(a)に、図1のデジタルカメラ100のブロック図を示す。
撮像部101は、例えば、光学レンズユニットと絞り・ズーム・フォーカスなど制御する光学系と、光学レンズユニットを経て導入された光(映像)を電気的な映像信号に変換するための撮像素子などで構成される。撮像素子としては、一般的には、CMOS(Complementary Metal Oxide Semiconductor)や、CCD(Charge Coupled Device)が利用される。撮像部101は、制御部103に制御されることにより、撮像部101に含まれるレンズで結像された被写体光を、撮像素子により電気信号に変換し、ノイズ低減処理などを行いデジタルデータを画像データとして出力する。本実施形態のデジタルカメラ100では、画像データは、DCF(Design rule for Camera File system)の規格に従って、記録メディア106に記録される。
GPS受信部102は、GPS衛星からの信号を受信し、受信した信号を基に現在位置を算出する。また、現在位置と同時に受信したUTC(協定世界時:Universal Time,Coordinated)を制御部103に提供する。
制御部103は、入力された信号やプログラムに従って、各種の演算や、デジタルカメラ100を構成する各部分の制御を行う。具体的には、撮像制御、表示制御、記録制御、通信制御などを行う。なお、制御部103が装置全体を制御する代わりに、複数のハードウエアが処理を分担することで、装置全体を制御してもよい。
RAM(Random Access Memory)104は、撮像部101で撮像された画像データを一時的に保持するバッファメモリや、表示部107の画像表示用メモリ、制御部103の作業領域等として使用される。
フラッシュメモリ105は、デジタルカメラ100を制御するためのプログラム(ファームウェア)や各種の設定情報を記録するための、電気的にデータを消去・記録可能な不揮発性のメモリである。
記録メディア106は、撮像部101から出力された画像データを記録することができる。記録メディア106は、デジタルカメラ100に着脱可能なよう構成してもよいし、デジタルカメラ100に内蔵されていてもよい。すなわち、デジタルカメラ100は少なくとも記録メディア106にアクセスする手段を有していればよい。なお、本実施形態では、記録メディア106として、いわゆる着脱可能なメモリーカードを用いる場合を例に挙げて説明する。
表示部107は、撮像時のビューファインダー画像の表示、撮像画像の表示、対話的な操作のための文字表示などを行う。なお、表示部107は必ずしもデジタルカメラ100が内蔵する必要はない。デジタルカメラ100は内部又は外部の表示部107と接続することができ、表示部107の表示を制御する表示制御機能を少なくとも有していればよい。
操作部108は、使用者の操作を受け付けるために用いられる。ユーザがデジタルカメラ100の電源のON/OFFを指示するための電源ボタンや、撮像を指示するためのレリーズスイッチ、画像データの再生を指示するための再生ボタン、さらに、タッチパネルなどを含む。
USB通信部109は、外部装置とUSBインターフェースで接続し制御コマンドや画像データの送受信を行うためのインターフェースである。外部装置との接続を確立し、データ通信するためのプロトコルとしては、例えばPTP(Picture Transfer Protocol)が用いられる。
無線通信部110は、外部装置と無線通信を介して接続するためのインターフェースである。本実施形態のデジタルカメラ100は、無線通信部110を介して、インターネットに接続し、外部装置とデータのやりとりを行うことができる。例えば、撮像部101で生成した画像データを、無線通信部110を介して外部装置に送信することができる。なお、本実施形態では、無線通信部110は外部装置とIEEE802.11x(xは例えばa/b/n/ac等)の規格に従った、いわゆる無線LAN(Local Area Network)で通信するためのインターフェースを含む。制御部103は、無線通信部110を制御することで外部装置との無線通信を実現する。なお、通信方式は無線LANに限定されるものではない。
なお、デジタルカメラ150の構成については、測位方式情報の記録に対応していないというソフトウェアの機能の面で異なるのみであるため、ハードウエアに関する説明は省略する。
<パーソナルコンピュータ200の構成>
図2(b)に図1のコンピュータ200のブロック図を示す。
制御部203は、入力された信号やプログラムに従って、各種の演算やデータの再生、コンピュータ各部の制御を行う。なお、制御部203が装置全体を制御する代わりに、複数のハードウエアが処理を分担することで、装置全体を制御してもよい。
RAM204は、表示部207の画像表示用メモリ、制御部203の作業領域等として使用される。
記録メディア206は、コンピュータ200を制御するためのプログラム(ファームウェア)や各種の設定情報を記録するための、ハードディスクドライブ(HDD)である。なお、記録メディア206は、コンピュータ200に着脱可能なよう構成してもよいし、コンピュータ200に内蔵されていてもよい。すなわち、コンピュータ200は少なくとも記録メディア206にアクセスする手段を有していればよい。
表示部207は、記録メディア206に記録されている各種データを表示するためのディスプレイである。なお、表示部207は必ずしもコンピュータ200が内蔵する必要はない。コンピュータ200は内部又は外部の表示部107と接続することができ、表示部207の表示を制御する表示制御機能を少なくとも有していればよい。
操作部208は、ユーザからの入力を受け付けるインターフェースである。操作部208としては、例えばキーボードやマウス、タッチパネルなどが含まれる。
USB通信部209は、外部装置とUSBインターフェースで接続し制御コマンドや画像データの送受信を行うためのインターフェースである。外部装置との接続を確立し、データ通信するためのプロトコルとしては、例えばPTPが用いられる。
無線通信部210は、外部装置と無線通信を介して接続するためのインターフェースである。本実施形態のコンピュータ200は、無線通信部210を介して、インターネットに接続し、外部装置とデータのやりとりを行うことができる。例えば、外部装置で生成された画像データを、無線通信部210を介して外部装置から受信することができる。なお、本実施形態では、無線通信部210は外部装置とIEEE802.11(xは例えばa/b/n/ac等)の規格に従った、いわゆる無線LANで通信するためのインターフェースを含む。制御部203は、無線通信部210を制御することで外部装置との無線通信を実現する。なお、通信方式は無線LANに限定されるものではない。
<デジタルカメラ100で生成される画像データの構造>
次に画像データの構造について説明する。図3は、本発明実施形態での画像データの構成の概念図である。この画像データは、例えばデジタルカメラ100により生成され、USB通信部109や無線通信部110を介してコンピュータに転送後、コンピュータのHDDにファイルとして記録されるものである。
本実施形態の画像ファイルのデータ構造は、画像ファイルの形式にExif−JPEGを用いるが、Exif−TIFFやRAW画像、動画など、画像ファイルにメタデータが記録できるデータ構造になっている形式でも実施は可能である。なお、Exif(Exchangeable image file format)とは、JEIDA(日本電子工業振興協会)が策定したデジタルカメラ用の画像メタデータのフォーマットである。
図3のExif−JPEG300において、SOI301は、Exif−JPEG300の開始を示すマーカーである。APP1 302は、Exif−JPEG300のヘッダ部に相当するアプリケーションマーカである。データブロック303は、量子化テーブル(DQT)、ハフマンテーブル(DHT)、フレーム開始マーカー(SOF)、スキャン開始マーカ(SOS)で構成されるデータブロックである。Compressed Data304は、本体画像の圧縮データである。EOI305は、Exif−JPEG300の終端を示すマーカーである。
また、APP1 302は、図3のデータブロック306〜312で示すように構成される。データブロック306は、APP1 302のサイズを示すAPP1 Length、APP1 302の識別コードを示すExif Identifier Codeで構成されるデータブロックである。0th IFD307は、圧縮された本体画像に関する付属情報を記録するデータブロックである。例えば、撮像したデジタルカメラのモデル名3071の情報が含まれる。0th IFD307の一部には、Exif IFD308とGPS IFD310のデータブロックが存在する。
Exif IFD308は、Exifバージョンに関するタグ、画像データの特性や構造に関するタグ、撮像日時3081に関するタグ、シャッタースピードやレンズ焦点距離などが記録された撮像条件に関するタグなどで構成される。また、Exif IFD308には、MakerNote309のデータブロックが存在する。MakerNote309は、ファイルを生成したメーカ固有の情報が記録されている。例えば、本実施形態で使用する時差情報3091や、撮像に用いられたデジタルカメラ100のユニークな番号を表すシリアル番号3092などの情報が含まれる。
GPS IFD310は、GPS情報に関するタグで構成される。その中には、本実施例で使用する緯度3101、経度3102といった位置情報や、衛星測位日時(UTC)3103が記録される。UTCとは、原子時計が刻む国際原子時をもとに決定している、国際協定による標準時である。より具体的には、緯度3101は、GPS info IFDのGPSLatitudeのタグ、およびGPSLatitudeRefのタグで規定される領域に記録される。また、経度3102は、GPSLongitudeのタグ、およびGPSLongitudeRefのタグで規定される領域に記録される。衛星測位日時(UTC)3103については、GPSDateStampのタグ、およびGPSTimeStampのタグで規定される領域に記録される。
また、測位方式情報3104については、GPSProcessingMethodのタグで規定される領域に記録される。なお、GPSProcessingMethodは、Exifで規定されているとおり、文字列で記録される。
本実施形態における測位方式情報は4種類の値をとり得る。
測位方式情報の1つ目はCELLIDである。これは携帯電話の基地局情報を用いた測位方法である。携帯電話基地局からの現在位置の取得は、次のような方法が存在する。例えば、携帯電話が通信している基地局の位置をそのまま携帯電話の現在位置とする方法や、複数の基地局からの電波の到達時間差と各基地局の設置位置から現在位置を推定する方法などである。
測位方式情報の2つ目はWLANである。これは無線LANを用いた測位方法である。無線LANからの現在位置の取得は、次のように行う。単数または複数の無線LANアクセスポイントからの電波を受信し、それぞれの電波の強度とアクセスポイントの設置位置から、現在位置を推定する。
測位方式情報の3つ目はGPSである。これは複数の衛星から情報を受信し、自機の現在位置を算出する方法である。
測位方式情報の4つ目はMANUALである。これは一般に、ユーザが手動で位置情報を入力したことを示す。この値が入力される場合は実装に依存する部分が大きいが、例えば緯度・経度を直接入力した場合や、ユーザ操作により地図の特定の箇所が指定されることで緯度・経度を入力した場合などに用いることが考えられる。
また、GPSProcessingMethodの領域には、複数個の測位方式を記録することができる。領域内での測位方式の区別は、文字列中にスペースを挟むことにより実現される。近年のカメラ付きの携帯電話などは、複数の測位方式を組み合わせてより精度の高い地点情報を得る、いわゆるハイブリッド型の測位を行うものもある。このような場合には、利用した複数の測位方式をすべて測位方式情報として記録することとした。つまり、例えばGPSと無線LANのアクセスポイントの情報とに基づいて位置情報を決定した場合、測位方式情報は「GPS WLAN」となる。
1st IFD311は、サムネイル画像に関する付属情報を記録するデータブロックである。Thumbnail312は、サムネイルの画像データである。
ここで時差情報3091について説明する。
本実施形態のデジタルカメラ100は、時計機能を有しており、撮像すると、そのタイミングの図3に示す撮像日時3081が撮像して得られる画像データの属性情報として記録される。さらに、本実施形態におけるデジタルカメラ100では、カメラの時計に設定されている日時について、UTCからの時差を設定することが可能である。撮像日時3081同様、生成される画像データには、カメラに設定されている時差も記録される。図3における時差情報3091がこれに相当する。
例えば、ユーザが日本に滞在している場合、デジタルカメラ100の時計設定を日本の現地時間に、UTCからの時差を9時間(540分)と設定しておく。これにより、撮像して生成される画像データの撮像日時3081には、撮像した時の日本の現地時間、時差情報3091には、9時間(540分)を示す値が記録されることになる。この時差情報の設定は、例えばデジタルカメラ100のユーザがメニュー操作等によってメニューを選択し、時差情報を入力する画面を表示させることにより行うことができる。
<コンピュータ200内で動作するアプリケーションソフトウェアによるUIについて>
次に、本実施形態のコンピュータ200で実行されるアプリケーションソフトウェア(以下、アプリ)について説明する。
図4にコンピュータ200の制御部203がアプリを実行することにより、表示部207に表示される画面の一例を示す。本実施形態でのアプリでは、画面上に地図を表示可能である。また、コンピュータ200の記録メディア206に記録されている画像ファイルに記録されている位置情報(すなわち撮像位置)に応じて、例えば図4の画面400のように、前記地図上に画像データの存在を示すマークを表示することができる。
なお、ここで参照する画像ファイルは、例えばデジタルカメラ100から受信した画像ファイルである。つまり、上述の図3で説明したフォーマットで記録されている画像ファイルである。このアプリはコンピュータ200の記録メディア206に記録されており、ユーザの指示に応じて制御部203が記録メディア206から読み出し、RAM204に展開することで実行される。
図4の画面400において、領域401はアプリでの処理対象とする画像データを指定するためのフォルダ指定部401である。フォルダ指定部401では、コンピュータ200の記録メディア206内に構成されたフォルダを選択可能になっている。本アプリでは、ここで選択されたフォルダ、および、サブフォルダに格納されている画像ファイルが処理対処となる。
ボタン430はデバイスからの取り込みボタンであり、例えばデジタルカメラなどのデバイスがコンピュータ200のUSB通信部209に接続されている状態で、このボタンを選択することにより、デバイスから画像ファイルをコピーすることができる。この処理の詳細については後述する。
領域402はサムネイルリスト表示部であり、フォルダ指定部401で選択されたフォルダに含まれている画像ファイルに応じたサムネイル画像(縮小画像)がリスト表示される。
領域403は地図表示部であり、地図移動ボタン404や、地図スケール変更バー405をユーザが操作することで、任意の範囲の地図を表示可能である。なお本実施形態のアプリでは地図を構成するための地図データは一般的なWebサービスを参照して表示するが、これに限定するものではない。例えば、予め記録メディア206に地図データを記録しておき、この地図データを表示してもよい。
本アプリでは、サムネイルリスト表示部402に表示されているサムネイル画像に対応した画像データに含まれる位置情報に応じて、画像データの存在を示すマークが410のように表示される。このマークの表示の態様は、その画像ファイルに記録されている測位方式情報に応じて異なる態様をとる。これについては後述する。
<デジタルカメラ100からの画像データの取り込み>
次に、図4を例に挙げて説明した上述のアプリを実行中のコンピュータ200がデジタルカメラ100から画像ファイルを取り込む際の処理について説明する。
図5は、コンピュータ200がデジタルカメラ100から画像ファイルを受信する際の処理を示すフローチャートである。本フローチャートの処理は、記録メディア206に記録されているアプリを制御部203が読み出し、RAM204に展開・実行することで実現される。また、本フローチャートの処理は、デジタルカメラ100とコンピュータ200との通信が確立している状態で、図4に示したデバイスからの取り込みボタン430が選択されたことに応じて開始される。
まず、図5のステップS501で、制御部203は、接続されているデバイスの情報を取得する。取得する情報の中には、デバイスのモデル名、デバイスの種類(カメラ、携帯電話など)、能力(GPS搭載、Wi−Fi機能搭載など)が含まれる。ここではデジタルカメラ100との通信が確立しているので、デジタルカメラ100に関する情報が取得される。
ステップS502では、制御部203は、デジタルカメラ100から画像データを取得する。具体的には、制御部203は、画像データを送信させるための要求をデジタルカメラ100に対して送信する。これを受信したデジタルカメラ100は、応答として記録メディア106に記録されている画像データをコンピュータ200に送信する。この結果、デジタルカメラ100内の画像データがコンピュータ200にコピーされる。なお、コピーした画像データを保存するフォルダについては、あらかじめユーザにより設定されているものとする。
また、これに併せて、画像データの更新日時も取得する。具体的には、受信する画像データの更新日時を、デジタルカメラ100に対して要求する。この要求に応答して、デジタルカメラ100はコンピュータ200に画像データの更新日時を送信する。これを受信することにより、コンピュータ200は画像データの更新日時を取得する。このステップの処理を実行する制御部203は、日時取得手段の一例である。なお、ここでいう更新日時とは、最後に画像データが編集された日時を示す日時情報である。例えば画像データに対する編集処理(色変換や、トリミング、ネーム変更等)が行われた際に、その編集処理が行われたタイミングで更新日時の情報は更新される。
上記のように、画像データの受信に併せて更新日時も受信するのは、以下の理由による。
一般に、データをファイルとして扱う場合、そのファイルの更新日時は、ファイルのヘッダ領域に記録されるのではなく、ファイルシステムの管理領域(いわゆるディレクトリエントリ)に保持される。このファイルシステムの管理領域は、例えばフォルダ毎に設定されるものであって、ファイルそのものとは別の領域に設定される。つまり、ファイルそのものをコピーしたとしても、そのファイルの更新日時まではコピーされない。単にファイルを受信した場合、ファイルの更新日時はコンピュータ200のファイルシステムによって新たに設定され、管理されることになる。例えば、受信したファイルが保存されるフォルダの管理領域に、新たに受信したファイルの更新日時が保持される。このため、受信したファイルの更新日時は、受信したタイミングの日時を示すことになる。
しかしながら、単に画像データをデジタルカメラ100からコンピュータ200にコピーした場合に更新日時が変わってしまうのは、ユーザに違和感を与える恐れがある。なぜなら、ユーザは、画像ファイルに対して編集処理を行っているわけではなく、単にコンピュータ200に移動させただけという意識でいる可能性が高いからである。
そこで、本実施形態では、上記のようにデジタルカメラ100から更新日時も併せて受信し、受信したタイミングを示す日時ではなく併せて受信した更新日時が示す日時を、受信した画像データの更新日時として設定する。つまり、画像データの更新日時が、デジタルカメラ100が保持していた時と、コンピュータ200にコピーされた後とで、変わらないようにする。これにより、ユーザに違和感を与える可能性を低減させることができる。
次にステップS503にて、制御部203は、ステップS502で受信した画像ファイルを解析して、緯度経度の情報が記録されているかどうかを判断する。具体的には、図3で説明した画像ファイルのヘッダ領域のうち、GPS IFD310の緯度3101および経度3102が記録される領域を参照することにより判断する。緯度経度の情報が記録されていないと判断した場合、ステップS516にて、制御部203は取得した画像ファイルを記録媒体に記録して本フローチャートを終了する。
一方、緯度経度の情報が記録されていると判断した場合、処理はステップS504に進む。
ステップS504では、制御部203は、画像ファイルのGPSProcessingMethodの領域を参照し、測位方式情報が記録されているか否かを判断する。測位方式情報が既に記録されていると判断した場合、処理はステップS516に進み、制御部203は取得した画像ファイルを記録媒体に記録して本フローチャートを終了する。
一方、測位方式情報が記録されていないと判断した場合、処理はステップS505に進む。この場合は、受信した画像ファイルに位置情報が記録されているにもかかわらず、その位置情報がどのような方法で記録されたかを示す測位方式情報が記録されていない場合である。本実施形態のコンピュータ200では、以降の処理を実行することにより、この測位方式情報を補う。
まず、ステップS505では、制御部203は、衛星測位日時(UTC)がGPSTimeStampの領域に記録されているか否かを判断する。ここで、衛星測位日時(UTC)を参照するのは以下の理由による。衛星測位日時(UTC)は、一般に、GPS衛星からの信号を受信することで位置情報を算出した場合、GPS衛星からの信号に含まれる日時情報を、衛星測位日時(UTC)として記録する。そのため、画像ファイルに衛星測位日時(UTC)が記録されている場合には、画像ファイルの位置情報は、GPSを利用して位置情報を決定された可能性が高いと考えられる。つまり、衛星測位日時(UTC)の記録の有無を参照することで、画像ファイルの位置情報がGPSを利用して得られたものかどうかを判断することができる。
なお、本ステップでの判断に用いる情報としては、衛星測位日時(UTC)3103に限定されるものではない。例えば、測位に用いた衛星の数を示すGPSSatelitesの領域や、GPS測位の信頼性を表すGPSDOP(B.H)の領域に記録されている情報を利用してもよい。つまり、GPS衛星からの信号に含まれる情報であれば、他の情報を利用しても構わない。
制御部203が、衛星測位日時(UTC)が記録されていると判断した場合、画像ファイルに記録されている位置情報は、GPSを利用して得られたものであると判断することになる。この場合、処理はステップS506に進み、制御部203は、測位方式情報として、GPSProcessingMethodの領域に“GPS”という文字列を付加し、画像ファイルを記録媒体に記録する。図3の例では、測位方式情報3104として「GPS」という文字列が記録されることになる。
一方、制御部203が、衛星測位日時(UTC)等が記録されていないと判断した場合、処理はステップS507に進む。
ステップS507では、制御部203は、画像ファイルのヘッダ領域に記録されているモデル名と、ステップS501でデジタルカメラ100から受信したデバイスのモデル名とが一致するか否かを判断する。これにより、画像ファイルが、デジタルカメラ100で生成されたものかどうかを判断することができる。制御部203が、モデル名が一致しないと判断した場合、処理はステップS515に進む。
この場合は、デジタルカメラ100で生成された画像ファイルではないため、生成した機器の機能や、生成したあとに画像ファイルが編集されたかどうかを判断することができない。そのため、ステップS515にて、制御部203は、測位方式情報として、GPSProcessingMethodの領域に“?”という文字列を付加し、画像ファイルを記録媒体に記録する。図3の例では、測位方式情報3104として「?」という文字列が記録されることになる。
一方、ステップS507で制御部203が、モデル名が一致すると判断した場合、処理はステップS508に進む。
ステップS508では、制御部203は、画像ファイルの更新日時と画像ファイルの撮像日時とを比較する。なお、ここでは、制御部203は、画像ファイルのヘッダ領域のうち、EXIFで規定されるDateTimeの領域に記録されている情報を参照することで撮像日時を取得する。また、画像ファイルの更新日時は、ステップS502で画像ファイルと併せて受信した更新日時である。
まず、制御部203が、更新日時と撮像日時とが一致しないと判断した場合について述べる。本実施形態では、更新日時と撮像日時とが一致しない場合は、画像ファイルに記録されている位置情報が、後から入力されたものであると判断する。このように判断するのは、以下のような状況が考えられるためである。
すなわち、例えば、画像ファイルが記録メディア106に記録された後に、その記録メディア106が外されて、他のコンピュータに装着される。そして、そのコンピュータを用いて記録メディア106に記録されている画像ファイルのEXIFのGPSIDFのタグ情報を書きかえる処理が行われる。この際、画像ファイルの更新日時が、タグ情報を書き変えたタイミングの日時に書き換えられる。この結果、撮像日時と更新日時の異なる位置情報付きの画像ファイルが記録媒体に記録されることになる。
そこで、本実施形態では、ステップS508で制御部203が更新日時と撮像日時とが一致しないと判断した場合、処理をステップS514に進める。ステップS514では、制御部203は、測位方式情報として、GPSProcessingMethodの領域に“Manual”という文字列を付加し、画像ファイルを記録媒体に記録する。図3の例では、測位方式情報3104として「Manual」という文字列が記録されることになる。
次に、ステップS508で制御部203が、更新日時と撮像日時とが一致すると判断した場合について述べる。この場合、処理はステップS509に進む。
ステップS509では、制御部203は、ステップS501で受信したデジタルカメラ100の情報を参照して、デジタルカメラ100がGPS信号を受信して位置情報を算出する機能を有しているかどうかを判断する。ここでは、例えば、受信したデジタルカメラ100の情報と、予め不揮発性メモリ103に記録されている製品情報とを比較することにより判断する。このステップの処理を実行する制御部203は、機能判定手段の一例である。制御部203が、デジタルカメラ100がGPSを利用して位置情報を算出する機能を有していると判断した場合、処理はステップS506に進む。ステップS506の処理は上述のとおりである。
一方、制御部203が、デジタルカメラ100がGPSを利用して位置情報を算出する機能を有していないと判断した場合、処理はステップS510に進む。
ステップS510では、制御部203は、ステップS501で受信したデジタルカメラ100の情報を参照して、デジタルカメラ100が無線LANからの信号を利用して位置情報を算出する機能を有しているかどうかを判断する。制御部203が、デジタルカメラ100が無線LANからの信号を利用して位置情報を算出する機能を有していると判断した場合、処理はステップS511に進む。このステップの処理を実行する制御部203は、機能判定手段の一例である。
ステップS511では、制御部203は、測位方式情報として、GPSProcessingMethodの領域に“WLAN”という文字列を付加し、画像ファイルを記録媒体に記録する。図3の例では、測位方式情報3104として「WLAN」という文字列が記録されることになる。
一方、制御部203が、デジタルカメラ100が無線LANからの信号を利用して位置情報を算出する機能を有していないと判断した場合、処理はステップS512に進む。
ステップS512では、制御部203は、ステップS501で受信したデジタルカメラ100の情報を参照して、デジタルカメラ100が携帯電話であるかどうかを判断する。このステップの処理を実行する制御部203は、種類判定手段の一例である。制御部203が、デジタルカメラ100が携帯電話でないと判断した場合、処理はステップS515に進む。ステップS515の処理は上述の通りである。一方、制御部203が、デジタルカメラ100が携帯電話であると判断した場合、処理はステップS513に進む。
ステップS513では、制御部203は、測位方式情報として、GPSProcessingMethodの領域に“CELLID”という文字列を付加し、画像ファイルを記録媒体に記録する。図3の例では、測位方式情報3104として「CELLID」という文字列が記録されることになる。
以上の処理により、本実施形態のコンピュータ200は、デジタルカメラ100から画像ファイルを受信する際に、その画像ファイルに記録されている他の情報に基づく測位方式情報を付加することで、測位方式情報を適切に補うことができる。
なお、デジタルカメラ100が複数の測位方式を利用する機能を備えている場合、測位方式情報3104には、複数の測位方式を併記してもよい。例えば、GPSを利用して位置情報を算出する機能と、無線LANからの信号を利用して位置情報を算出する機能の両方を備える場合、測位方式情報3104に“GPS WLAN”または、“WLAN GPS”と併記する。この場合、どちらの情報を先頭に記録するかは、位置情報の決定に寄与している度合いに応じてデバイスが決定する。決定された情報はデバイスからコンピュータ200に送信され、該情報に基づく順番で記録する。
<測位方式情報の利用について>
次に、上述の処理によって補足された測位方式情報の利用について説明する。本実施形態では、測位方式情報の利用の一例として、図4で述べたような地図上に画像の存在を示すマーカーを表示する処理について述べる。
図6は、図4のアプリを実行中のコンピュータ200の動作を示すフローチャートである。本フローチャートは、コンピュータ200にて図4を例に挙げて説明した上述のアプリを起動する指示を受け付けたことに応じて開始される。
まず、ステップS601では、制御部203は、初期画面を表示する。具体的には、図4のような画面を表示するために、表示領域の確保や、地図データの読み出しと出力が行われる。なお、初期状態では、領域401に表示されるフォルダは未選択の状態であり、領域402にはサムネイルは表示されない。
続いて、ステップS602では、制御部203は、領域401にツリー構造で表示されるフォルダの選択を受け付ける。ユーザは、操作部208を介して、領域401に表示されているフォルダのうち、いずれか1つまたは複数のフォルダを選択することができる。そして、この選択により、フォルダ内の画像のサムネイル一覧を領域402に表示させると共に、フォルダ内の画像の撮像位置を、領域403に表示させる指示を入力することができる。
ステップS602でフォルダの選択を受け付けた場合、制御部203は、選択されたフォルダ内の画像のサムネイルや撮像位置を表示する処理に先立って、選択されたフォルダ内の各画像のヘッダ領域を解析する。また、これに合わせて、ヘッダ領域に記録されているサムネイルを読み出し、領域402に表示する。本ステップでの解析は、フォルダ内の画像のそれぞれのヘッダ領域のうち、位置情報を記録するための領域および測位方式情報を記録するための領域を参照するために行われる。これらの情報は、以降のステップS604、S605、S607、S609、S611の判断に利用される。なお、本実施形態ではこれらの判断を各ステップに分けて説明するが、一度に判定するような構成でも構わない。以下、これらの判断について述べる。
ステップS604では、制御部203は、画像に位置情報が記録されているか否かを判断する。まず、制御部203が画像に位置情報が記録されていないと判断した場合について述べる。この場合、画像の撮像位置を地図上に表示することはできないため、地図上にマーカーを表示することなく、処理はステップS614に進む。
ステップS614では、制御部203は、フォルダ内の全ての画像に対して上記の処理を行ったか否かを判断する。まだ未処理の画像が残っている場合、処理はステップS603に戻る。全ての画像に対して処理を終えた場合、ステップS602に戻る。
ステップS604で、制御部203が、位置情報が記録されていると判断した場合、処理はステップS605に進む。
ステップS605では、制御部203は、測位方式情報の選択に記録されている文字列が「GPS」であるか否かを判断する。
ステップS605で、制御部203が、測位方式情報の先頭に「GPS」が記録されていると判断した場合について述べる。この場合、処理はステップS606に進む。ステップS606では、制御部203は、領域402に表示されている地図上のうち、位置情報に対応する表示位置に、GPS用のマーカーで画像の撮像位置を表示する。例えば、図4のマーカー420のような態様で表示する。その後、処理はステップS614に進む。
一方、ステップS605で制御部203が、測位方式情報の先頭に「GPS」が記録されていないと判断した場合、処理はステップS607に進む。
ステップS607では、制御部203は、測位方式情報の選択に記録されている文字列が「WLAN」であるか否かを判断する。
ステップS607で、制御部203が、測位方式情報の先頭に「WLAN」が記録されていると判断した場合について述べる。この場合、処理はステップS608に進む。ステップS608では、制御部203は、領域402に表示されている地図上のうち、位置情報に対応する表示位置に、WLAN用のマーカーで画像の撮像位置を表示する。例えば、図4のマーカー421のような態様で表示する。その後、処理はステップS614に進む。
一方、ステップS607で制御部203が、測位方式情報の先頭に「WLAN」が記録されていないと判断した場合、処理はステップS609に進む。
ステップS609では、制御部203は、測位方式情報の選択に記録されている文字列が「MANUAL」であるか否かを判断する。
ステップS609で、制御部203が、測位方式情報の先頭に「MANUAL」が記録されていると判断した場合について述べる。この場合、処理はステップS610に進む。ステップS610では、制御部203は、領域402に表示されている地図上のうち、位置情報に対応する表示位置に、MANUAL用のマーカーで画像の撮像位置を表示する。例えば、図4のマーカー422のような態様で表示する。その後、処理はステップS614に進む。
一方、ステップS609で制御部203が、測位方式情報の先頭に「MANUAL」が記録されていないと判断した場合、処理はステップS611に進む。
ステップS611では、制御部203は、測位方式情報の選択に記録されている文字列が「?」であるか否かを判断する。
ステップS611で、制御部203が、測位方式情報の先頭に「?」が記録されていると判断した場合について述べる。この場合、処理はステップS612に進む。ステップS612では、制御部203は、領域402に表示されている地図上のうち、位置情報に対応する表示位置に、「?」用のマーカーで画像の撮像位置を表示する。例えば、図4のマーカー424のような態様で表示する。その後、処理はステップS614に進む。
一方、ステップS611で制御部203が、測位方式情報の先頭に「?」が記録されていないと判断した場合、処理はステップS613に進む。
ステップS613まで進んだ場合、制御部203は、測位方式情報を記録するための領域には、情報が記録されていないと判断し、通常のマーカーで画尾図の撮像位置を表示する。例えば、図4のマーカー423のような態様で表示する。その後、処理はステップS614に進む。
なお、ステップS602で制御部203が、フォルダの選択を受け付けていないと判断した場合、処理はステップS615に進む。ステップS615では、制御部203は、アプリの終了の指示を受け付けたか否かを判断する。アプリの終了指示を受け付けていないと判断した場合、処理はステップS602に戻る。一方、アプリの終了指示を受け付けたと判断した場合、本フローチャートの処理を終了する。
以上が、測位方式情報の利用の一例である。
以上、本実施形態では、測位方式情報を補足する手順について述べた。これにより、画像の測位方式情報を利用する際に不都合が生じる可能性を低減することができる。
[その他の実施形態]
上述の実施形態では、コンピュータ200がデジタルカメラ100から画像を取り込むタイミングで、測位方式情報を補足する場合について述べた。しかしながら、測位方式情報の補足のタイミングは、画像ファイルを取り込むタイミングに限られるものではない。例えば、アプリを起動時に取り扱うフォルダ内の画像を走査して補足してもよい。あるいは、アプリ起動後のフォルダが選択されたタイミング(すなわち図6のステップS603)で補足してもよい。なお、上記のタイミングで補足する場合は、カメラと繋がっているとは限らないため、カメラの情報を用いた判断は省く。つまりステップS507の処理が省かれることになる。
また、上述の実施形態に加えて、測位方式を補足できなかった場合、すなわち測位方式情報として「?」が付加された場合、ユーザによって測位方式情報を編集できるようにしてもよい。具体的には、図4のように表示されているマーカーの表示領域あるいはその近傍にマウスカーソルが位置する場合、制御部203は、マーカーの補足情報を表示させるよう制御する。
例えば図7(a)は、測位方式情報に「GPS」が記録されている画像の撮像位置を示すマーカーにマウスオーバーした際の表示の一例である。また、測位方式情報が複数記録されている場合は、例えば図7(b)のように補足情報として二つの測位方式情報が表示される。また、測位方式情報に何も記録されていない場合は、図7(c)のように、補足情報は何も表示されない。そして、測位方式情報に?が記録されている場合は、図7(d)のようにユーザの選択を受け付けることが可能な補足情報を表示させる。
ユーザは、補足情報に表示されるGPSやWLAN,MANUALに対応するラジオボタンを選択し、OKボタンを選択することができる。これにより、マーカー700に対応する画像の測位方式情報を、選択したラジオボタンに対応する測位方式情報に書き換える指示を入力することができる。制御部203は、この指示を受け付けることで、マーカー700に対応する画像の測位方式情報を、ユーザが選択した方式に書き換える。これにより、自動的に補足することが難しい場合でも、ユーザ操作によって補足することができる。
また、本発明は、以下の処理を実行することによっても実現される。すなわち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。