図1(A),(B)を参照して、この発明の一実施例の携帯電話機10は、一例としてスマートフォンであり、縦長の扁平矩形のハウジング12を含む。ただし、この発明は、スマートフォン以外の携帯電話機や、タブレット端末およびPDAなど任意の通信端末に適用可能であることを予め指摘しておく。
ハウジング12の主面(表面)には、表示部として機能する、たとえば液晶や有機ELなどのディスプレイ14が設けられる。ディスプレイ14の上には、タッチパネル16が設けられる。したがって、この実施例の携帯電話機10では、後述のハードキーの操作によるものを除く大部分の入力操作は、このタッチパネル16を介して行われる。
ハウジング12の縦方向一端の表面側にスピーカ18が内蔵され、縦方向他端の表面側にマイク20が内蔵される。タッチパネル16と共に、入力操作手段を構成するハードキーとして、この実施例では、通話キー22a、終話キー22bおよびメニューキー22cが設けられる。
また、ハウジング12の他面(裏面)の縦方向一端には、カメラモジュール24が設けられている。
たとえば、ユーザは、ディスプレイ14に表示されたダイヤルキー(図示せず)に対して、タッチパネル16によってタッチ操作を行うことで電話番号を入力でき、通話キー22aを操作して音声通話を開始することが出来る。終話キー22bを操作すれば、音声通話を終了することが出来る。なお、ユーザは、この終話キー22bを長押しすることによって、携帯電話機10の電源をオン/オフすることが出来る。
また、メニューキー22cを操作すれば、ディスプレイ14にメニュー画面が表示され、その状態でディスプレイ14に表示されているソフトキーやメニューアイコン(ともに図示せず)などに対して、タッチパネル16によるタッチ操作を行うことによってメニューを選択し、その選択を確定させることが出来る。
さらに、詳細な説明は後述するが、カメラ機能が実行されると、カメラモジュール24が起動し、ディスプレイ14に被写界と対応するプレビュー画像(スルー画像)が表示される。そして、ユーザは、カメラモジュール24が設けられている他面を被写体に向けて撮影操作を行うことで、被写体を撮影することが出来る。
図2を参照して、図1に示す実施例の携帯電話機10は、コンピュータまたはCPUと呼ばれるプロセッサ30を含む。プロセッサ30には、カメラモジュール24、無線通信回路32、A/D変換器36、D/A変換器38、入力装置40、表示ドライバ42、フラッシュメモリ44、RAM46、タッチパネル制御回路48およびGPS回路50などが接続される。
また、無線通信回路32はアンテナ34を介して、ネットワーク(通信網、電話網)100と無線接続される。ネットワーク100には、有線または無線で、サーバ102と接続される。さらに、GPS回路50は、GPSアンテナ52によって、GPS衛星200が送信するGPS信号を受信する。
プロセッサ30は、携帯電話機10の全体制御を司る。RAM46には、フラッシュメモリ44に予め設定されているプログラムの全部または一部が使用に際して展開され、プロセッサ30はこのRAM46上のプログラムに従って動作する。なお、RAM46はさらに、プロセッサ30のワーキング領域ないしバッファ領域として用いられる。
入力装置40は、図1に示すタッチパネル16、ハードキー22a−22cを含むものであり、操作部または入力部を構成する。ユーザが操作したハードキーの情報(キーデータ)はプロセッサ30に入力される。
無線通信回路32は、アンテナ34を通して、音声通話やメールなどのための電波を送受信するための回路である。実施例では、無線通信回路32は、CDMA方式での無線通信を行うための回路である。たとえば、ユーザがハードキー22を操作して電話発信(発呼)を指示すると、無線通信回路32は、プロセッサ30の指示の下、電話発信処理を実行し、アンテナ34を介して電話発信信号を出力する。電話発信信号は、基地局および通信網を経て相手の電話機に送信される。そして、相手の電話機において着信処理が行われると、通信可能状態が確立され、プロセッサ30は通話処理を実行する。
通常の通話処理について具体的に説明すると、相手の電話機から送られてきた変調音声信号はアンテナ34によって受信される。受信された変調音声信号には、無線通信回路32によって復調処理および復号処理が施される。そして、これらの処理によって得られた受話音声信号は、D/A変換器38によって音声信号に変換された後、スピーカ18から出力される。一方、マイク20を通して取り込まれた送話音声信号は、A/D変換器36によって音声データに変換された後、プロセッサ30に与えられる。音声データには、プロセッサ30の指示の下、無線通信回路32によって符号化処理および変調処理が施され、アンテナ34を介して出力される。したがって、変調音声信号は、相手の電話機に送信される。
また、相手の電話機からの電話発信信号がアンテナ34によって受信されると、無線通信回路32は、電話着信(着呼)をプロセッサ30に通知する。これに応じて、プロセッサ30は、表示ドライバ42を制御して、着信通知に記述された発信元情報(電話番号など)をディスプレイ14に表示する。また、上記処理に伴い、プロセッサ30は、スピーカ18から着信音(着信メロディ、着信音声と言うこともある。)を出力させる。
そして、ユーザが入力装置40に含まれる通話キー22aを用いて応答操作を行うと、無線通信回路32は、プロセッサ30の指示の下、電話着信処理を実行する。さらに、通信可能状態が確立され、プロセッサ30は上述した通話処理を実行する。
また、通話可能状態に移行した後に入力装置40に含まれる終話キー22b(図1)によって通話終了操作が行われると、プロセッサ30は、無線通信回路32を制御して、通話相手に通話終了信号を送信する。そして、通話終了信号の送信後、プロセッサ30は通話処理を終了する。また、先に通話相手から通話終了信号を受信した場合も、プロセッサ30は通話処理を終了する。さらに、通話相手によらず、移動通信網から通話終了信号を受信した場合も、プロセッサ30は通話処理を終了する。
A/D変換器36には図1に示すマイク20が接続され、上述のようにマイク20からの音声信号はこのA/D変換器36でデジタルの音声データに接続され、プロセッサ30に入力される。一方、D/A変換器38にはスピーカ18が接続される。D/A変換器38は、デジタルの音声データを音声信号に変換して、アンプを介してスピーカ18に与える。したがって、音声データの音声がスピーカ18から出力される。
なお、プロセッサ30は、たとえばユーザによるボリュームの操作に応答して、D/A変換器38に接続されるアンプの増幅率を制御することによって、スピーカ18から出力される音声の音量を調整することが出来る。
表示ドライバ42はディスプレイ14およびプロセッサ30と接続され、プロセッサ30から出力される画像データは、表示ドライバ42のVRAMに記憶される。そして、表示ドライバ42は、VRAMのデータに対応する画像を、ディスプレイ14に表示する。つまり、表示ドライバ42は、プロセッサ30の指示の下、当該表示ドライバ42に接続されたディスプレイ14の表示を制御する。また、ディスプレイ14には、たとえばLEDなどを光源とするバックライトが設けられており、表示ドライバ42はプロセッサ30の指示に従って、そのバックライトの明るさや、点灯/消灯を制御する。なお、ディスプレイ14は表示部として機能する。
タッチパネル制御回路48には、図1に示すタッチパネル16が接続される。タッチパネル制御回路48は、タッチパネル16に必要な電圧などを付与するとともに、タッチパネル16に対するユーザによるタッチの開始を示す開始信号、ユーザによるタッチの終了を示す終了信号、およびユーザがタッチしたタッチ位置を示す座標データをプロセッサ30に入力する。したがって、プロセッサ30はこの座標データに基づいて、そのときユーザが操作したアイコンやキーを判断することが出来る。
実施例では、タッチパネル16は、指などの物体が表面に接近して生じた電極間の静電容量の変化を検出する静電容量方式で、たとえば1本または複数本の指がタッチパネル16に触れたことを検出する。また、タッチパネル16は、ディスプレイ14の上に設けられ、その画面内で、任意の位置を指示するためのポインティングデバイスである。タッチパネル制御回路48はタッチパネル16のタッチ有効範囲内でのタッチ操作を検出して、そのタッチ操作の位置を示す座標データをプロセッサ30に出力する。つまり、ユーザは、タッチパネル16の表面をタッチ、リリース、スライド、フリックおよびそれらの組み合わせることで、操作位置や、操作方向などを携帯電話機10に入力する。
なお、タッチパネル16の検出方式には、表面型の静電容量方式が採用されてもよいし、抵抗膜方式、超音波方式、赤外線方式および電磁誘導方式などが採用されてもよい。また、タッチ操作はユーザの指だけに限らず、スタイラスペンなどによって行われてもよい。
GPS回路50は、現在位置を測位するときに起動される。GPS回路50は、GPSアンテナ52によって受信されたGPS衛星200の信号が入力されると、その信号に基づいて測位処理を実行する。その結果、GPS情報(位置情報)として、緯度、経度および標高(高度)が算出される。
また、図2では簡単のために1つのGPS衛星200しか描画していないが、現在位置を三次元測位するためには、4つ以上のGPS衛星200からGPS信号を受信する必要がある。ただし、4つ以上のGPS衛星からGPSを受信できなくても、3つのGPS衛星200からGPS信号を受信できていれば、二次元測位によって経度および緯度を算出することは可能である。
なお、サーバ102には、地図データが記憶されている。また、携帯電話機10は、GPS回路50によって算出されたGPS情報に基づいて、サーバ102から地図データをダウンロード(受信)することが出来る。この場合、ディスプレイ14には、ダウンロードされた地図データに基づいて、現在位置に対応する地図が表示される。
カメラモジュール24は制御回路、レンズおよびイメージセンサなどを含む。プロセッサ30は、カメラ機能を実行する操作がされると、制御回路およびイメージセンサを起動する。そして、イメージセンサから出力された信号に基づく画像データがプロセッサ30に入力されると、被写体に対応するプレビュー画像がディスプレイ14に表示される。
図3(A)はプレビュー画像の一例を示す図解図である。図3(A)を参照して、ディスプレイ14には、状態表示領域70および機能表示領域72が含まれる。状態表示領域70には、アンテナ34による電波受信状態を示すアイコン(ピクト)、二次電池の残電池容量を示すアイコンおよび日時が表示される。そして、機能表示領域72には、被写体のリアルタイム動画像つまりプレビュー画像が表示される。なお、プレビュー画像が表示される機能表示領域72は「プレビュー画面」と言う。
プレビュー画像が表示されているときに、図3(B)に示すように、機能表示領域72の任意の位置に対してタッチ操作がされると、そのタッチ操作が撮影操作として受け付けられる。その結果、カメラモジュール50が本撮影処理を実行し、プレビュー画像に対応する画像データが保存される。
具体的には、本撮影処理が実行されると、撮影操作が行われたときの日時およびGPS情報が取得され、画像データに対応するメタデータが作成される。このメタデータには、データ名、経度、緯度、標高および撮影日時などの情報が含まれる。そして、プロセッサ30は、撮影によって得られた画像データにメタデータを対応付けて、1つの画像ファイルとしてフラッシュメモリ44に保存する。このとき、プロセサ30は、スピーカ18から、本撮影処理が実行されていること通知する音を出力させる。
なお、フラッシュメモリ44には、少なくとも1つ以上のフォルダが設定されており、画像ファイルは、そのフォルダに保存される。そして、上記のように、フラッシュメモリ44には画像ファイルが保存されるため、フラッシュメモリ44は保存部と呼ばれることもある。
たとえば、図4(A),(B)を参照して、図3(B)のように撮影操作が行われると、図4(A)に示す画像データが得られると共に、図4(B)に示すメタデータが作成される。このメタデータには、データ名として「201203070630. jpg」、GPS情報として緯度「34.X56924,N」、経度「130.X78636,E」、標高「35m」、撮影日時として「2012/3/7 6:30(2012年3月7日6時30分)」などが記録されている。また、データ名は、撮影日時に基づいて決められ、GPS情報は測位処理によって算出され、撮影日時はRTCから得られる。なお、メタデータには、画像サイズおよび携帯端末10の機種名(型番)などが含まれていてもよい。
ここで、本実施例の携帯電話機10は、プレビュー画面に、現在の撮影状況に類似する撮影状況の画像を、参照画像として表示させる参照画像機能を有している。参照画像機能が有効にされている場合、ユーザは、似た撮影状況で撮影した画像の構図と現在の構図とを比較したうえで、撮影を行うことが出来る。なお、本実施例で言う「撮影状況」とは、ユーザの周囲の環境を表す。そのため、「撮影状況」は、撮影位置(ユーザ)の周囲にある建物、施設および自然物などに基づいて決められる。
図5(A)−(C)を参照して、参照画像機能の初期設定について説明する。カメラ機能のメニュー画面を表示させる操作がされると、図5(A)に示すメニュー画面が表示される。メニュー画面には、変更キー80aおよび設定キー80bなどが表示される。変更キー80aは、画像サイズを変更するためのキーであり、このキーにタッチ操作がされると画像サイズを変更するためのGUIが表示される。設定キー80bは、撮影状況に基づいて参照画像を表示させるかを設定するためのキーである。
設定キー80にタッチ操作がされると、図5(B)に示す設定画面が表示される。設定画面には、プレビュー画面に参照画像を表示させるかを確認する文章と、参照画像を表示させるように設定するための設定キー82aと、参照画像を表示させないようにするための解除キー82bと、現時点の状態を示すカーソルCUとが含まれる。たとえば、図5(B)では、解除キー82bがカーソルCUによって選択されているため、参照画像がプレビュー画面に表示されないように設定されている。
設定画面で設定キー82aにタッチ操作がされると、図5(C)に示す詳細設定画面が表示される。詳細設定画面には、範囲判定キー84a、位置判定キー84b、標高判定キー84cおよびカーソルCUが含まれる。範囲判定キー84a、位置判定キー84bおよび標高判定キー84cは、撮影状況を判定する条件を設定するためのキーである。カーソルCUは、先のカーソルCUと同じで、現時点の状態を示す。たとえば、図5(C)では、範囲判定が設定された状態を示す。
範囲判定キー84aにタッチ操作がされカーソルCUによって選択されると、範囲判定の設定が有効になり、範囲判定の判定結果に基づいて撮影状況が決められる。範囲判定では、画像ファイルのGPS情報、つまり画像データに対応付けられたメタデータに含まれるGPS情報が示す撮影位置(経緯度)から所定範囲(たとえば、100m)内にある地点情報に基づいて、撮影状況が決められる。地点情報とは、地図上の施設および山などの名称および座標のことである。なお、範囲判定キー84aに対してタッチ操作が行われると、所定範囲を入力するGUIが表示される。そして、入力結果は、範囲判定キー84aに表示される。
位置判定キー84bがカーソルCUによって選択されると、位置判定の設定が有効になり、位置判定の判定結果に基づいて撮影状況が決められる。位置判定では、画像ファイルのGPS情報および領域情報に基づいて撮影状況が決められる。領域情報とは、地図上で施設などの領域を示す名称とベクトル情報である。なお、領域情報については図面を利用して後述するため、ここでの詳細な説明は省略する。
標高判定キー84cがカーソルCUによって選択されると、標高判定の設定が有効になり、標高判定の結果に基づいて撮影状況が決められる。標高判定では、画像ファイルのGPS情報が示す標高に基づいて撮影状況が決められる。
なお、詳細設定を終了する場合、ユーザは機能表示領域72の任意の位置で右方向にフリックを行えばよい。フリックされると詳細設定画面が閉じされると共に、詳細設定画面から設定画面に戻る。また、設定画面を閉じる場合も同様の操作を行えばよい。
このようにして撮影状況の判定に対する設定が終了すると、撮影済みの画像ファイルに対して撮影状況を登録する処理が実行される。そして、カメラ機能が実行されると、登録されている撮影状況に基づいて、参照画像が読み出される。以下、範囲判定、位置判定および標高判定による撮影状況の登録と、参照画像の表示とについて説明する。
まず、位置判定について説明する。図6は、図4(A),(B)に示す画像ファイルのGPS情報に基づいて取得される地図データである。この地図データには、撮影位置が図4(B)に示す緯度「34.X56924,N」、経度「130.X78636,E」で示される撮影位置が含まれる。点線で示される円は所定範囲(100m)を示す。所定範囲の中には、地点情報として、「+山」および海岸線が含まれる。そして、「+山」および海岸線の地点情報に基づいて、撮影状況が特定される。
「+山」は、サーバ102において「山」として分類されている。そのため、撮影状況として「山」と特定される。次に、所定範囲に海岸線が含まれる場合、所定範囲内に海も含まれることが自明であるため、撮影状況として「海」と特定される。
このように、GPS情報が示す撮影位置とその撮影位置を中心とする所定範囲とに基づいて、撮影状況を特定することが出来る。そして、このようにして撮影状況が特定されると、図7に示すように、画像ファイルのメタデータに撮影状況が登録(登録)される。具体的には、GPS情報(緯度、経度、高度)の次に「撮影状況」の行が加えられ、その行に「山」および「海」が記録される。
なお、位置情報には、「山」以外に、「橋」、「学校」および「駅」などがある。また、海岸線ではなく湖岸線が含まれている場合、撮影状況は「湖沼」と判定される。
図8(A)を参照して、緯度「33.X72231,N」、経度「129.X38383,E」でカメラ機能を実行させると、図8(B)に示す地図データがサーバ102からダウンロードされる。この場合、所定範囲に含まれる位置情報は、「*山」および海岸線である。そのため、図8(A),(B)における撮影位置の撮影状況は、図6における撮影位置の撮影状況と同様に、撮影状況が「山」および「海」と特定される。そして、フラッシュメモリ44から、撮影状況が「山」、「海」と登録されている画像ファイルが検索される。
図9を参照して、ここでは、フラッシュメモリ44から図4に示す画像ファイルが読み出され、プレビュー画面にその画像ファイルに対応する参照画像74が表示される。また、プレビュー画面には、現在の撮影状況を示す通知アイコン76も表示される。これにより、ユーザは、現在の撮影状況および現在の撮影状況と類似する撮影状況で撮影された画像を、プレビュー画像と共に確認することが出来る。
ここで、ユーザは、通知アイコン76に対してタッチ操作を行うことで、現在の撮影状況を修正することが出来る。たとえば、図10(A)に示すように、「山」、「海」と書かれた通知アイコン76にタッチ操作がされると、図10(B)に示す修正画面が表示される。修正画面では、「山」キー86a、「海」キー86b、「テーマパーク」キー86cおよび「新規作成」キー86dが表示される。
また、現在の撮影状況を示すカーソルCUaおよびカーソルCUbも修正画面に表示される。たとえば、現在の撮影状況は「山」および「海」であるため、「山」キー86aおよび「海」キー86bが、カーソルCUaおよびカーソルCUbによって選択されている。
ここで、カーソルCUによって選択されていないキーに対してタッチ操作がされると、現在の撮影状況として追加される。また、カーソルCUによって選択されているキーに対してタッチ操作がされると、現在の撮影状況から削除される。たとえば、カーソルCUによって選択されていない「テーマパーク」キー86cにタッチ操作がされると、現在の撮影状況として「テーマパーク」が追加される。また、カーソルCUbによって選択されている「海」キー86bにタッチ操作がされると、現在の撮影状況から「海」が削除される。
そして、ユーザは「新規作成」キー86dを利用することで、任意の撮影状況を追加することが出来る。たとえば、「新規作成」キー86dにタッチ操作がされると、撮影状況を示す文字列の入力画面が表示される。このとき、「スタジアム」と入力した後に入力が確定されると、「スタジアム」の撮影状況が新たに選択できるようになる。
次に、位置判定について説明する。たとえば、図11に示す「A」というテーマパークの中で撮影されると、図12(A),(B)に示す画像ファイルがフラッシュメモリ44に保存される。このとき、撮影位置(GPS情報)と対応する緯度「34.X00461,N」、経度「135.X59108,E」は、「A」を規定する領域(ベクトル情報)内に含まれる。「A」は、サーバ102の地図データにおいて、「テーマパーク」として分類されている。そのため、「A」が分類されている「テーマパーク」が、撮影状況として特定される。このように、GPS情報が示す撮影位置と、その撮影位置を含む領域情報とに基づいて撮影状況を特定することが出来る。
ここで、地図上では、或る施設を規定する領域は多角形で示されている。また、上述のベクトル情報とは、複数の頂点とその頂点を結ぶベクトル(線分)、上記の多角形を表す情報である。そして、地図データでは、ベクトル情報と名称とが対応付けられているため、撮影位置がベクトル情報で示される領域に含まれている場合、そのベクトル情報と対応する名称が領域情報となる。
図13(A)を参照して、「B」と言うテーマパークの中でカメラ機能が実行されると、「B」を規定する領域内に撮影位置が含まれているため、撮影状況は「テーマパーク」として特定される。そのため、フラッシュメモリ44から撮影状況として「テーマパーク」が特定されている画像ファイルが読み出される。その結果、図13(B)のように、プレビュー画面に図12(A)と対応する参照画像が表示されると共に、「テーマパーク」と書かれた通知アイコン76が表示される。
このように、範囲判定および位置判定では、地図データを利用して撮影状況を決めることが出来る。また、本実施例では、サーバ102から地図データを受信するため、フラッシュメモリ44の容量を有効活用することが出来る。
なお、他の実施例では、「テーマパーク」だけでなく、「スタジアム」および「デパート」などの撮影状況が特定されてもよい。
次に、標高判定について説明する。たとえば、図14(A)を参照して、標高が34mの位置でカメラ機能が実行されると、撮影状況は現在の標高を含む一定範囲(「標高30−39m」)が特定される。そのため、フラッシュメモリ44から、撮影状況として「標高30−39m」の間に収まる標高が記録されている画像ファイルが読み出される。
たとえば、ここでは標高が35mの位置で撮影された画像データ(図4(A)参照)と、標高が39mの位置で撮影された画像データ(図9参照)とが読み出される。その結果、図14(B)に示すように、プレビュー画面にはこれらの画像データと対応する参照画像74aおよび参照画像74bが表示されると共に、「標高30−39m」と書かれた通知アイコン76が表示される。
このように、地図データを利用せずに、撮影状況を特定することが出来る。この場合、撮影状況を判定するために地図データを必要としないため、参照画像を表示するまでの処理時間を短くなる。
なお、標高における一定範囲を、上記実施例では10mとしたが、他の実施例では100mとしてもよい。また、現在の撮影位置の標高を中央値として、一定範囲が規定されてもよい。
以上で実施例の特徴を概説したが、以下には、図15に示す携帯電話機10のRAM46のメモリマップ、図16−図20に示す携帯電話機10のプロセッサ30によるフロー図を用いて詳細に説明する。
図15を参照して、図2に示すRAM46には、プログラム記憶領域302とデータ記憶領域304とが形成される。プログラム記憶領域302は、先に説明したように、フラッシュメモリ44(図2)に予め設定しているプログラムデータの一部または全部を読み出して記憶(展開)しておくための領域である。
プログラム記憶領域302には、設定プログラム310、登録プログラム312、特定プログラム314およびカメラ機能プログラム316などが含まれる。設定プログラム310は、撮影状況を判定する方法を設定するためのプログラムである。登録プログラム312は、撮影状況をメタデータに登録するためのプログラムである。特定プログラム314は、設定された判定方法の判定結果に基づいて撮影状況を特定するためのプログラムである。そして、カメラ機能プログラム316は、プレビュー画面を表示し、本撮影処理を実行するためのプログラムである。なお、プログラム記憶領域302には、電話機能などを実行するためのプログラムも含まれる。
RAM46のデータ記憶領域304には、タッチバッファ330、GPS情報バッファ332、地図データバッファ334、撮影状況バッファ336およびプレビュー画像バッファ338などが設けられる。また、データ記憶領域304には、タッチ座標マップデータ、GUIデータおよびGUI座標データなどが記憶されるとともに、参照画像フラグ346、範囲判定フラグ348、位置判定フラグ350および標高判定フラグ352などが設けられる。
タッチバッファ330には、タッチパネル制御回路48が出力するタッチ座標のデータが記憶される。GPS情報バッファ332には、GPS回路50によって算出されたり、画像ファイルから読み出されたりしたGPS情報、つまり緯度、経度および標高が一時的に記憶される。地図データバッファ334には、サーバ102から受信した地図データが一時的に記憶される。撮影状況バッファ336には、特定された撮影状況が一時的に記憶される。プレビュー画像バッファ338は、プレビュー画面に表示される画像が一時的に記憶される。
タッチ座標マップデータ340は、タッチ操作におけるタッチ座標と、ディスプレイ14の表示座標とを対応付けるためのデータである。つまり、タッチ座標マップデータ340に基づいて、タッチパネル16に対して行われたタッチ操作の結果が、ディスプレイ14の表示に反映される。
GUIデータ342は、キーやアイコンなどを表示するための画像データや文字列データを含む。GUI座標データ344は、表示されているGUIの表示座標データを含む。したがって、タッチが検出されると、タッチバッファ330に記録されているタッチ座標と、GUI座標データとに基づいて、キーなどのGUIに対してタッチ操作が行われたかが判断される。
参照画像フラグ346は、参照画像を表示する設定がされているかを判断するためのフラグである。たとえば、参照画像フラグ346は、1ビットのレジスタで構成される。参照画像フラグ346がオン(成立)されると、レジスタにはデータ値「1」が設定される。一方、参照画像フラグ346がオフ(不成立)されると、レジスタにはデータ値「0」が設定される。なお、参照画像フラグ346は、図5(B)に示す設定キー82aが選択されるとオンとなり、解除キー82bが選択されるとオフになる。
範囲判定フラグ348は、撮影状況を範囲判定によって特定する設定がされているかを判断するためのフラグである。位置判定フラグ350は、撮影状況を位置判定によって特定する設定がされているかを判断さするためのフラグである。標高判定フラグ352は、撮影状況を標高判定によって特定する設定がされているかを判断するためのフラグである。
なお、データ記憶領域304には、待機状態で表示される画像データや、文字列のデータなどが記憶されると共に、携帯電話機10の動作に必要なカウンタや、フラグも設けられる。
プロセッサ30は、Android(登録商標)およびREXなどのLinux(登録商標)ベースのOSや、その他のOSの制御下で、図16に示す設定処理、図17に示す登録処理、図18に示す特定処理および図19、図20に示すカメラ機能処理などを含む、複数のタスクを並列的に処理する。
設定処理は、たとえば参照画像フラグ346がオンにされ詳細設定画面が表示されると開始される。ステップS1でプロセッサ30は、範囲判定が選択されたかが判断される。つまり、プロセッサ30は、範囲判定キー84aに対してタッチ操作がされたかを判断する。ステップS1で“YES”であれば、つまり範囲判定キー84aに対してタッチ操作がされると、ステップS3でプロセッサ30は範囲判定フラグ348をオンにする。また、範囲判定フラグ348がオンにされると、範囲判定キー84aがカーソルCUによって選択された状態になる。続いて、ステップS5でプロセッサ30は、範囲入力処理を実行する。つまり、範囲入力処理が実行されると、地点情報を取得する所定範囲を入力するためのGUIが表示される。なお、ステップS5の処理が終了すれば、プロセッサ30はステップS15に進む。
ステップS1で“NO”であれば、つまり範囲判定キー84aに対してタッチ操作がされていない場合、ステップS7でプロセッサ30は、位置判定が選択されたかを判断する。つまり、位置判定キー84bに対してタッチ操作がされたかを判断する。ステップS7で“YES”であれば、つまり位置判定キー84bにタッチ操作がされると、ステップS9でプロセッサ30は、位置判定フラグ350をオンにする。なお、ステップS9の処理が終了すれば、プロセッサ30はステップS15に進む。
ステップS7で“NO”であれば、つまり位置判定キー84bに対してタッチ操作がされていなければ、ステップS11でプロセッサ30は、標高判定が選択されたか否かを判断する。つまり、標高判定キー84cに対してタッチ操作がされたかを判断する。ステップS11で “NO”であれば、ステップS15に進む。一方、ステップS11で“YES”であれば、つまり標高判定キー84cに対してタッチ操作がされると、ステップS13でプロセッサ30は、標高判定フラグ352をオンにする。なお、ステップS13の処理が終了すれば、プロセッサ30はステップS15に進む。
続いて、ステップS15でプロセッサ30は、終了操作か否かを判断する。たとえば、
詳細設定画面を閉じる操作がされたかを判断する。ステップS15で“NO”でれば、つまり終了操作がされなければ、プロセッサ30はステップS1に戻る。一方、ステップS15で“YES”であれば、つまり終了操作がされると、プロセッサ30は設定処理を終了する。
図17は登録処理のフロー図である。たとえば、設定処理が終了すると、登録処理が実行される。ステップS31でプロセッサ30は、保存されている画像ファイルのメタデータを読み出す。つまり、フラッシュメモリ44に保存されている全ての画像ファイルから、メタデータを読み出す。続いて、ステップS33でプロセッサ30は、全ての画像ファイルに撮影状況が登録されているかを判断する。つまり、読み出した全ての画像ファイルのメタ―データに撮影状況が記録されているかを判断する。
ステップS33で“NO”であれば、つまり全ての画像ファイルに撮影状況が登録されていなければ、ステップS35でプロセッサ30は、撮影状況が登録されていない画像ファイルを抽出する。たとえばステップS35では、撮影状況が登録されていない画像ファイルのファイル名などが登録されるリストを作成する。次に、全ての画像ファイルのメタデータに撮影状況が記録されているかを判断し、記録されていない画像ファイルのファイル名などを、作成したリストに登録する。
続いて、ステップS37でプロセッサ30は、抽出された画像ファイルからGPS情報を読み出す。たとえば、上述したリストに登録されているファイル名に基づいて読み出されたメタデータを特定し、そのメタデータからGPS情報を読み出す。なお、読み出されたGPS情報は、GPS情報バッファ332に登録される。
続いて、ステップS39でプロセッサ30は、特定処理を実行する。なお、特定処理については、図18のフロー図を利用して詳細に説明するため、ここでの説明は省略する。
続いて、ステップS41でプロセッサ30は、特定された撮影状況を画像ファイルに登録する。たとえば、図4(A),(B)に示す画像ファイルからGPS情報が読み出され他場合、図7に示すように「山」、「海」の撮影状況がメタデータに記録される。そして、ステップS41の処理が終了すると、プロセッサ30はステップS33に戻る。なお、標高判定が設定されている場合は、標高はメタデータに登録されており、撮影状況を新たに登録する必要が無いため、ステップS33の処理は省略される。
ステップS33で“NO”であれば、つまり全ての画像ファイルに対して撮影状況が登録されていれば、プロセッサ30は登録処理を終了する。
図18は特定処理のフロー図である。たとえば、登録処理でステップS39が実行されると、ステップS51でプロセッサ30は、GPS情報に基づいて地図データを受信する。つまり、GPS情報バッファ332に含まれる緯度および経度を含む地図データを、サーバ102から受信する。なお、サーバ102からダウンロードした地図データは、地図データバッファ334に記憶される。また、ステップS51の処理を実行するプロセッサ30は地図データ取得部として機能する。
続いて、ステップS53でプロセッサ30は、範囲判定設定されているかを判断する。つまり、プロセッサ30は、範囲判定フラグ348がオンであるかを判断する。ステップS53で“YES”であれば、つまり範囲判定フラグ348がオンであれば、ステップS55でプロセッサ30は、所定範囲内の地点情報を取得する。たとえば、図6に示すように、所定範囲内の地点情報、つまり「+山」および海岸線が取得される。なお、ステップS55の処理が終了すれば、ステップS67に進む。また、ステップS55の処理を実行するプロセッサ30は地点情報取得部として機能する。
ステップS53で“NO”であれば、つまり範囲判定フラグ348がオフであれば、ステップS57でプロセッサ30は、位置判定が設定されているか否かを判断する。つまり、プロセッサ30は、位置判定フラグ350がオンであるかを判断する。ステップS57で“YES”であれば、つまり位置判定フラグ350がオンであれば、ステップS59でプロセッサ30は、撮影位置が含まれる領域情報を取得する。たとえば、図11に示すように、GPS情報の経緯度が含まれる領域、つまり「A」を規定する領域情報が取得される。なお、ステップS59の処理を実行するプロセッサ30は領域情報取得部として機能する。
続いて、ステップS61でプロセッサ30は、領域情報を取得できたか否かを判断する。つまり、撮影位置を示す経緯度が、何らかの施設を規定する領域に含まれているかが判断される。ステップS61で“YES”であれば、たとえば図11に示すように領域情報が取得されていれば、プロセッサ30はステップS67に進む。一方、ステップS61で“NO”であれば、たとえば図6のように撮影位置が、領域に含まれていなければ、プロセッサ30はステップS55に進み、所定範囲の地点情報が取得される。この場合、所定範囲は規定値(たとえば、50mなど)として、地点情報が取得される。
ステップS57で“NO”であれば、つまり位置判定フラグ350がオフであれば、ステップS63でプロセッサ30は、標高判定が設定されているか否かを判断する。つまり、プロセッサ30は、標高判定フラグ352がオンであるかを判断する。ステップS63で“NO”であれば、つまり標高判定フラグ352がオフであれば、プロセッサ30はステップS71に進む。一方、ステップS63で“YES”であれば、つまり標高判定フラグ352がオンであれば、ステップS65でプロセッサ30は、GPS情報から標高を取得する。そして、ステップS65の処理が終了すれば、プロセッサ30はステップS67に進む。なお、ステップS65の処理を実行するプロセッサ30は標高取得部として機能する。
続いて、ステップS67でプロセッサ30は、取得できたか否かを判断する。つまり、プロセッサ30は、地点情報、領域情報または標高が取得できたを判断する。たとえば、撮影位置の周囲に地点情報が存在していなかったり、撮影位置が領域に含まれていなかったり、メタデータに標高が記録されていなかったりすれば、ステップS55,S61,S65の処理を実行したとしても、撮影状況を取得することはできない。そのために、特定処理では、ステップS67の処理が実行される。
ステップS67で“YES”であれば、つまり地点情報、領域情報または標高のいずれかが取得されていれば、ステップS69でプロセッサ30は、取得した内容に基づいて撮影状況をバッファに記録する。たとえば、「+山」および海岸線の地点情報が取得されていれば、上述したように「山」および「海」が撮影状況バッファ336に記録される。また、「A」を規定する領域情報が取得されていれば、上述したように「テーマパーク」が撮影状況バッファ336に記録される。そして、標高が取得されていれば、その標高を含む一定範囲(たとえば、30−39m)が求められ、その一定範囲が撮影状況バッファ336に記録される。
一方、ステップS67で“NO”であれば、地点情報、領域情報または標高が取得されていなければ、ステップS71でプロセッサ30は、NULLデータをバッファに記録する。つまり、撮影状況を特定できなかったことを示すために、撮影状況バッファ336にはNULLデータが記録される。
そして、ステップS69またはステップS71の処理が終了すれば、プロセッサ30は特定処理を終了して、上位の処理に戻る。
図19はカメラ機能処理のフロー図である。たとえば、カメラ機能を実行する操作がされると、カメラ機能処理は開始される。ステップS91でプロセッサ30は、GPS情報を算出する。つまり、GPS衛星200から送信されたGPS信号を受信した後、測位処理によってGPS情報が算出される。なお、算出されたGPS情報は、GPS情報バッファ332に記録される。続いて、ステップS93でプロセッサ30は、特定処理を実行する。なお、特定処理につては、既に詳細な説明をしているため、ここでの説明は省略する。また、ステップS93の処理を実行するプロセッサ30は特定部として機能する。
続いて、図20のステップS95でプロセッサ30は、プレビュー画像を表示する。つまり、プレビュー画像バッファ338から読み出した画像データに基づいて、ディスプレイ14にプレビュー画像を表示させる。
続いて、ステップS97でプロセッサ30は、撮影状況を表示する。つまり、ステップS93の特定処理で特定された現在の撮影状況を、撮影状況バッファ336から読み出す。そして、図9に示すように、現在の撮影状況が書かれた通知アイコン76が、ディスプレイ14に表示される。
続いて、ステップS99でプロセッサ30は、参照画像を読み出す。つまり、プロセッサ30は、現在の撮影状況が登録されているメタデータを含む画像ファイルをフラッシュメモリ44から検索する。続いて、ステップS101でプロセッサ30は、参照画像が読み出されたか否かを判断する。つまり、現在の撮影状況が登録されたメタデータを含む画像ファイルが、検索によって発見されたかが判断される。
ステップS101で“NO”であれば、つまり現在の撮影状況が登録されたメタデータを含む画像ファイルが発見されなければ、プロセッサ30はステップS107に進む。ただし、他の実施例では、複数の撮影状況が登録されている場合、少なくとも1つが一致すれば、その画像ファイルが参照画像として読み出されてもよい。なお、現在の撮影状況が特定されていない場合も、ステップS101で“NO”と判断される。
一方、ステップS101で“YES”であれば、つまり現在の撮影状況が登録されたメタデータを含む画像ファイルが発見されると、ステップS103で並び替え処理が実行される。たとえば、複数の画像ファイルが発見された場合、それらの画像ファイルがフラッシュメモリ44から読み出される。そして、それらの画像ファイルは、メタデータの撮影日時に基づいて、時系列順に並び替えられる。ただし、発見された画像ファイルが1つだけの場合は、ステップS103の処理は省略される。また、複数の撮影状況が登録されている場合、一致した撮影状況の数に基づいて順番が決められてもよい。
続いて、ステップS105でプロセッサ30は、参照画像を表示する。つまり、読み出された画像ファイルの画像データを、ステップS103で並び替えられた順番で、参照画像としてディスプレイ14に表示する。なお、ステップS105の処理を実行するプロセッサ30は表示処理部として機能する。
続いて、ステップS107でプロセッサ30は、修正操作がされたか否かを判断する。つまり、通知アイコン76をタッチする操作がされたかが判断される。ステップS107で“YES”であれば、つまり修正操作がされると、プロセッサ30はステップS109で修正処理を実行して、ステップS95に戻る。たとえば、図9に示すように、通知アイコン76に対して修正操作がされると、修正処理が実行される。そして、図10(B)に示す修正画面が表示される。
ステップS107で“NO”であれば、つまり修正操作がされていなければ、ステップS111でプロセッサ30は、撮影操作がされたか否かを判断する。たとえば、図3(B)に示すような撮影操作がされたかが判断される。ステップS111で“NO”であれば、つまり撮影操作がされなければ、ステップS107に戻る。一方、ステップS111で“YES”であれば、つまり撮影操作がされると、ステップS113でプロセッサ30は、本撮影処理を実行する。つまり、プレビュー画像に対応する画像データと、その画像データに対応するメタデータが作成される。続いて、ステップS115でプロセッサ30は、画像ファイルを保存する。つまり、上述した画像データとメタデータとを1つの画像ファイルとして、フラッシュメモリ44に保存する。
続いて、ステップS115でプロセッサ30は、撮影状況を画像ファイルに登録する。たとえば、現在の撮影状況として、「山」および「海」が撮影状況バッファ336に記録されている場合、フラッシュメモリ44に保存された画像ファイルのメタデータに対して、「山」および「海」の撮影状況が登録される。
続いて、ステップS119でプロセッサ30は、終了操作か否かを判断する。たとえば、終話キー22bが操作されたかが判断される。ステップS119で“NO”であれば、つまり終了操作がされていなければ、ステップS95に戻る。一方、ステップS119で“YES”であれば、つまり終了操作がされると、プロセッサ30はカメラ機能処理を終了する。
なお、参照画像フラグ346がオフの場合、カメラ機能処理では、ステップS91,93,S97−S109,S117は省略される。つまり、参照画像を表示する必要が無いため、撮影状況を特定する処理および参照画像を表示する処理については、省略される。
また、他の実施例では、範囲判定または位置判定によって絞り込まれた参照画像の数が多い場合、標高判定を組み合わせることで、参照画像の数が調整されてもよい。
また、他の実施例では、地図データがフラッシュメモリ44に保存されていてもよい。この場合、地図データを得るためにサーバ102との通信を行う必要が無いため、撮影状況を特定するまでの処理を単純化することが出来る。この場合、フラッシュメモリ44は、記憶部として機能する。
また、本実施例で用いられたプログラムは、データ配信用のサーバのHDDに記憶され、ネットワークを介して携帯電話機10に配信されてもよい。また、CD,DVD,BD(Blue-Ray Disk)などの光学ディスク、USBメモリおよびメモリカードなどの記憶媒体に複数のプログラムを記憶させた状態で、その記憶媒体が販売または配布されてもよい。そして、上記したサーバや記憶媒体などを通じてダウンロードされた、プログラムが本実施例と同等の構成の通信端末にインストールされた場合、本実施例と同等の効果が得られる。
そして、本明細書中で挙げた、具体的な数値は、いずれも単なる一例であり、製品の仕様変更などに応じて適宜変更可能である。