以下、本発明の実施の形態による画像処理装置について図面を参照して説明する。
図1は、本発明の実施の形態による画像処理装置を有する撮像装置の一例の外観を背面側から示す斜視図である。
図示の撮像装置は、所謂デジタルカメラ(以下単にカメラと呼ぶ)であり、少なくとも静止画の撮影を行うことができる。図示のカメラ100はその背面側に表示部28が配置されており、この表示部28には画像および各種情報が表示される。カメラの上面には電源オンおよび電源オフを切り替える電源スイッチ72が配置されるとともに、シャッターボタン61が配置されている。
表示部28の右側には、各種モードを切り替えるモード切替スイッチ60が配置されるとともに、ユーザからの各種操作を受け付ける操作部70が配されている。なお、シャッターボタン61は操作部70の1つである。
図示の例では、カメラにはカメラと外部機器(図示せず)とを接続するための接続ケーブル111が接続されている。接続ケーブル111はコネクタ112によってカメラに接続される。
カメラには記録媒体スロット201が形成されており、この記録媒体スロット201にはメモリカード又はハードディスクなどの記録媒体200が収納される。記録媒体スロット201に記録媒体200を収納する際には、カメラに設けられた蓋部202を開いて、記録媒体スロット201に記録媒体200を収納する。
図2は、図1に示すカメラ100の構成の一例を示すブロック図である。
図2において、カメラ100は撮影レンズユニット(以下単に撮影レンズと呼ぶ)103を備えており、撮影レンズ103の後段には絞り機能を備えるシャッター101が配置されている。そして、シャッター101の後側には、光学像を電気信号に変換するCCD又はCMOS素子を有する撮像部22が配されている。そして、撮像部22の出力であるアナログ信号はA/D変換器23によってデジタル信号(画像信号)に変換される。
なお、撮影レンズ103の前面側にはバリア102が配置されており、このバリア102は撮影レンズ103、シャッター101、および撮像部22などを覆って、汚れおよび破損を防止するためのものである。
タイミング発生部12は撮像部22、A/D変換器23、およびD/A変換器13にクロック信号又は制御信号を供給する。このタイミング発生部12はメモリ制御部15およびシステム制御部50によって制御される。
画像処理部24はA/D変換器23の出力である画像データ、又はメモリ制御部15から画像データを受けて、所定の画素補間および縮小などのリサイズ処理と色変換処理とを行う。また、画像処理部24は撮像の結果得られた画像データを用いて所定の演算処理を行う。そして、システム制御部50は当該演算結果に基づいて露光制御および測距制御を行う。
これにより、TTL(スルー・ザ・レンズ)方式のAF(オートフォーカス)処理、AE(自動露出)処理、およびEF(フラッシュプリ発光)処理が行われる。
さらに、画像処理回路24は撮像の結果得られた画像データを用いて所定の演算処理を行って、当該演算結果に基づいてTTL方式のAWB(オートホワイトバランス)処理を行う。
A/D変換器23からの出力である画像データは、画像処理部24およびメモリ制御部15を介して、或いは直接メモリ制御部15を介して、メモリ32に書き込まれる。メモリ32は、所定枚数の静止画像又は所定時間の動画像および音声を格納するための十分な記憶容量を備えている。
圧縮・伸張部16は、適応離散コサイン変換(ADCT)などによって画像データを圧縮伸張する。圧縮・伸張部16は、シャッター101の動作をトリガとしてメモリ32に格納された画像データを読み込んで圧縮処理を行い、圧縮処理後の画像データをメモリ32に書き込む。
また、圧縮・伸張部16は後述の記録部19からメモリ32に読み込まれた圧縮処理後の画像データを読み込んで伸張処理を行って、伸張処理後の画像データをメモリ32に書き込む。圧縮・伸張部16によってメモリ32に書き込まれた画像データは、システム制御部50においてファイル化されて、インターフェース(I/F)18を介して記録媒体200(つまり、記録部19)に記録される。
図示のメモリ32は画像表示用のメモリを兼ねており、メモリに書き込まれた表示用の画像データはD/A変換器13を介して表示部28に与えられて、画像として表示される。なお、表示部28は、例えば、LCDである。
システム制御部50はカメラ100全体の制御を司る。システムメモリ52にはシステム制御部50の動作用の定数、変数、およびプログラムなどが格納されている。図示の不揮発性メモリ56は電気的に消去・記録可能なメモリであって、例えば、EEPROMが用いられる。
前述のモード切替スイッチ60は、例えば、システム制御部50の動作モードを静止画撮影モード、連続撮影(連写)モード、動画モード、および再生モードのいずれかに切り替えるためのスイッチである。
シャッターボタン61が操作途中(半押し)であると、第1のシャッタースイッチがオンとなって、第1のシャッタースイッチ信号SW1がシステム制御部50に与えられる。これによって、システム制御部50はAF(オートフォーカス)処理、AE(自動露出)処理、AWB(オートホワイトバランス)処理、およびEF(フラッシュプリ発光)処理などの動作開始を指示する。
シャッターボタン61が操作完了(全押し)すると、第2のシャッタースイッチがオンとなって、第2のシャッタースイッチ信号SW2がシステム制御部50に与えられる。これによって、システム制御部50は撮像部22の信号読み出しから記録媒体200に画像データを書き込むまでの一連の撮像処理の動作開始を指示する。
前述の操作部70は各種ボタンおよびタッチパネルなどを有している。各種ボタンとして、例えば、消去ボタン、メニューボタン、SETボタン、十字に配置された4方向キー、およびコネクタ112に接続されたプリンタ(図示せず)に対して印刷予約を行うための印刷予約ボタンがある。
メニューボタンが操作されると、システム制御部50は各種設定を行うためのメニュー画面を表示部28に表示する。ユーザは表示部28に表示されたメニュー画面を見て、4方向キーおよびSETボタンを用いて直感的に各種設定を行うことができる。
電源制御部39は電池検出回路、DC−DCコンバータ、および通電するブロックを切り替えるスイッチ回路などを備えている。そして、電源制御部39は電池の装着の有無、電池の種類、および電池残量の検出を行う。また、電源制御部39は上記の検出結果およびシステム制御回路50の指示に基づいてDC−DCコンバータを制御して、所定の電圧を必要な期間の間記録媒体200を含む各部に供給する。
電源部30はアルカリ電池又はリチウム電池などの一次電池、又はNiCd電池、NiMH電池、又はLi電池などの二次電池を備えるとともに、ACアダプターなどを有している。そして、電源部30はコネクタ33および34によって電源制御部39に接続される。
RTC(Real Time Clock)部40は、電源制御部39とは別にその内部に電源部(図示せず)を有し、電源部30が落ちた状態であっても時計動作(計時動作)を行う。システム制御部50はカメラ起動の際(電源スイッチオン)、RTC40から取得した日時を用いてタイマー制御を行う。
インターフェース(I/F)18は記録媒体200とのインターフェースであり、コネクタ35によって記録媒体200に備えられたコネクタ36に接続される。記録媒体200はI/F37および前述の記録部19を有しており、記録部19として半導体メモリ又は磁気ディスクが用いられる。
なお、記録媒体着脱検知部98は、コネクタ35に記録媒体200が装着されているか否かを検知して、その結果をシステム制御部50に通知する。
通信部110は、RS232C、USB、IEEE1394、P1284、SCSI、モデム、LAN、又は無線通信などに係る各種通信処理を行う。コネクタ(無線通信の場合はアンテナ)112は、通信部110をカメラ100をプリンタなどの外部機器と接続する。コネクタ112にプリンタが接続された場合、例えば、記録媒体200に記録された画像ファイルがプリンタに転送されて、PCなどを用いることなく直接プリンタによって画像の印刷を行うことができる。
図3は、図2に示すカメラの電源がオンされた際の動作を説明するためのフローチャートである。なお、以下の説明においては、システム制御部50がメモリ32に格納されたプログラムをシステムメモリ52に読み出して当該プログラムに応じて処理を行うものとする。
電源スイッチ72が操作されて電源がオンに切り替わると、システム制御部50はフラグおよび制御変数などを初期化する(ステップS301)。続いて、システム制御部50はモード切替ボタン60の設定が撮影モードであるか否かを判定する(ステップS302)。モード切替ボタン60の設定が撮影モードでないと(ステップS302において、NO)、システム制御部50はモード切替ボタン60の設定が再生モードであるか否かを判定する(ステップS303)。
モード切替ボタン60の設定が撮影モードであると(ステップS302において、YES)、システム制御部50は、後述の撮影モードに係る処理(撮影モード処理)を行う(ステップS304)。一方、モード切替ボタン60の設定が再生モードであると(ステップS303において、YES)、システム制御部50は、後述の再生モードに係る処理(再生モード処理)を行う(ステップS305)。
モード切替ボタン60の設定が再生モードでないと(ステップS303において、NO)、システム制御部50は、モード切替ボタン60で設定された処理(その他のモード処理)を行う(ステップS306)。なお、その他のモード処理には記録媒体200に格納された画像ファイルの送受信を行う通信モードが含まれる。
ステップS304、S305、又はS306の処理を行った後、システム制御部50は電源スイッチ72がオフされたか否かを判定する(ステップS307)。電源スイッチ72がオンであると(ステップS307において、NO)、システム制御部50はステップS302の処理に戻る。
一方、電源スイッチ72がオフされると(ステップS307において、YES)、システム制御部50は所定の終了処理を行って(ステップS308)、処理を終了する。
なお、終了処理には、例えば、表示部28の表示を終了状態に変更して、レンズバリア102を閉じて撮像部を保護する処理、そして、フラグおよび制御変数などを含むパラメータおよび設定値と設定モードとを不揮発性メモリ56に記録する処理および電源供給が不要な部分に対する電源を遮断する処理がある。
さらには、後述するモニタ表示用画像の記録画素数、および撮影画像の記録サイズ設定を不揮発性メモリ56に記録する処理も終了処理に含まれる。なお、モニタ表示用画像の記録画素数は固定値でもよく、ステップS306におけるその他のモード処理における変更に伴って更新するようにしてもよい。そして、記録サイズ設定はその他のモード処理で変更があれば当該変更に伴って更新される。
図4は、図3に示す撮影モード処理を説明するためのフローチャートである。
撮影モード処理を開始すると、システム制御部50は、まず表示部28に画像を表示する所謂スルー表示を行う(ステップS401)。続いて、システム制御部50は電源制御部39によって検知された電源30の残容量を受けるとともに、記録媒体200の有無および記録媒体200のの残容量を受ける。そして、システム制御部50は撮影モード処理に問題があるか否かを判定する(ステップS402)。つまり、システム制御部50はバッテリーOKでかつ記録媒体OKであるか否かを判定することになる。
バッテリーおよび記録媒体の少なくとも一方がOKでないと(ステップS402において、NG)、システム制御部50はメモリ制御部15を介して表示部28に所定の警告表示を行う(ステップS403)。なお、図示はしないが、システム制御部50は音声によって警告を行うようにしてもよい。その後、システム制御部50はステップS401の処理に戻る。
バッテリーおよび記録媒体がともにOKであると(ステップS402において、OK)、システム制御部50は第1のシャッタースイッチ(SW1)がオンであるか否かを判定する(ステップS404)。第1のシャッタースイッチ(SW1)がオフであると(ステップS404において、OFF)、システム制御部50は待機する。
一方、第1のシャッタースイッチ(SW1)がオンであると(ステップS404において、ON)、システム制御部50は測距処理を行って、撮影レンズ103の焦点を被写体に合わせる。続いて、システム制御部50は測光処理を行って、絞り値およびシャッター時間(シャッタースピード)を決定する(ステップS405)。なお、図示はしないが、測光処理において必要であれば、システム制御部50はフラッシュの設定を行う。
続いて、システム制御部50は第2のシャッタースイッチ(SW2)がオンされたか否かを判定する(ステップS406)。第2のシャッタースイッチ(SW2)がオフであると(ステップS406において、OFF)、システム制御部50は第1のシャッタースイッチ(SW1)がオンであるか否かを判定する(ステップS407)。
第1のシャッタースイッチ(SW1)がオフとされると(ステップS407において、OFF)、システム制御部50はステップS404の処理に戻る。一方、第1のシャッタースイッチ(SW1)がオンの状態であると(ステップS407において、ON)、システム制御部50はステップS406の処理に戻る。
第2のシャッタースイッチ(SW2)がオンとなると(ステップS406において、ON)、システム制御部50は表示部28の表示を固定色表示状態に設定する(ステップS408)。そして、システム制御部50は、後述する撮影処理を行う(ステップS409)。
この撮影処理においては、例えば、撮像部22、A/D変換器23、画像処理回路24、メモリ制御回路15を介して、或いはA/D変換器23から直接メモリ制御回路15を介してメモリ32に撮影の結果得られた画像データを書き込む露光処理が行われる。さらに、撮影処理では、メモリ制御回路15、そして必要に応じて画像処理回路24によって、メモリ32から読み出された画像データに対して各種処理を施す現像処理が行われる。
次に、システム制御部50は、表示部28に撮影の結果得られた画像データに応じた画像をクイックレビュー表示する(ステップS410)。そして、クイックレビュー表示の後、システム制御部50は撮影処理で得られた画像データを画像ファイルとして記録媒体200に書き込む記録処理を行う(ステップS411)。この記録処理S411については後述する。
記録処理を行った後、システム制御部50は第2のシャッタースイッチ(SW2)がオフとなるまで表示部28にクイックレビューを継続して表示する(ステップS412)。これによって、ユーザは撮影画像の確認を入念に行うことができる(レックレビュー機能)。
続いて、システム制御部50は第2のシャッタースイッチ(SW2)がオンであるか否かを判定する(ステップS413)。第2のシャッタースイッチ(SW2)がオンであれば(ステップS413において、ON)、システム制御部50はステップS412の処理に戻ってレックビューを継続する。
一方、第2のシャッタースイッチ(SW2)がオフとなると(ステップS413において、OFF)、システム制御部50は所定のミニマムレビュー時間が経過したか否かを判定する(ステップS414)。ミニマムレビュー時間が経過しないと(ステップS414において、NO)、システム制御部50は待機する。
ミニマムレビュー時間が経過すると(ステップS414において、YES)、システム制御部50は表示部28の表示をスルー表示状態に設定する(ステップS415)。ここでは、表示部28にクイックレビュー表示を行ってユーザに撮影画像を確認させた後、システム制御部50は次の撮影のために画像を逐次表示するスルー表示状態とする。
その後、システム制御部50は第1のシャッタースイッチ(SW1)がオンであるか否かを判定する(ステップS416)。第1のシャッタースイッチ(SW1)がオンであれば(ステップS416において、ON)、システム制御部50はステップS406の処理に移行する。一方、第1のシャッタースイッチ(SW1)がオフとされると(ステップS416において、OFF)、システム制御部50は一連の撮影動作を終了してステップS404の処理に移行する。
図5は、図4に示す撮影処理を説明するためのフローチャートである。
撮影処理を開始すると、システム制御部50は撮影日時をシステムタイマー(図示せず)から取得して、システムメモリ52に記憶する(ステップS501)。次に、システム制御部50はシステムメモリ52又はメモリ32に記憶された測光データを参照してシャッター101を絞り値に応じて開放する(ステップS502)。そして、システム制御部50は撮像部22を露光する(ステップS503)。
システム制御部50は測光データに基づいて撮像部22の露光が終了したか否かを判定する(ステップS504)。撮像部22の露光が終了しないと(ステップS504において、NO)、システム制御部50は待機する。
撮像部22の露光が終了すると(ステップS504において、YES)、システム制御部50はシャッター101を閉じる(ステップS505)。そして、システム制御部50はタイミング発生部12を制御して撮像部22から電気信号を読み出す。これによって、電気信号はA/D変換器23、画像処理回路20、メモリ制御回路22を介して、或いはA/D変換器23から直接メモリ制御回路22を介して、メモリ32に画像データとして書き込まれる(ステップS506)。この際、システム制御部50はシステムメモリ52に当該画像データのサイズを記憶する。
続いて、システム制御部50は、メモリ制御回路15、そして必要に応じて画像処理回路24によって、メモリ30に書き込まれた画像データを読み出して、圧縮伸張部16による圧縮処理などの画像処理を行う(ステップS507)。そして、システム制御部50は圧縮処理後の画像データをメモリ32に書き込む。
次に、システム制御部50は、メモリ32から画像データを読み出してメモリ制御回路15を介して表示用の画像データとして表示部28に転送する(ステップS508)。そして、一連の処理を終えると、システム制御部50は撮影処理ルーチンを終了して、ステップS410(図4)の処理に進む。
図6は、図4に示す記録処理を説明するためのフローチャートである。
図5で説明した撮影処理で得られた画像データの記録処理を開始すると、システム制御部50はファイル名生成ルールに従ってファイル名を生成する(ステップS601)。そして、システム制御部50は図5のステップS501においてシステムメモリ52に記憶した日時情報を取得する(ステップS602)。
続いて、システム制御部50はシステムメモリ52から画像データのサイズを取得する(ステップS603)。その後、システム制御部50は画像ファイルを格納するディレクトリが記録媒体200に存在するか否かを判定する(ステップS604)。
ディレクトリが記録媒体200に存在しないと(ステップS604において、NO)、システム制御部50は画像ファイルを格納するディレクトリを作成する(ステップS605)。続いて、システム制御部50はステップS601で生成したファイル名およびステップS602で取得した日時情報を用いてディレクトリエントリを作成する。
続いて、システム制御部50は、撮影処理においてメモリ32に格納した画像データについて撮影日時などの撮影時条件から構成されるファイルヘッダを作成する(ステップS606)。なお、ディレクトリが記録媒体200に存在すれば(ステップS604において、YES)、システム制御部50はステップS606の処理に進む。
ファイルヘッダを作成した後、システム制御部50は当該画像データが関連する画像データの一部に係る撮影であるか否かを判定する(ステップS607)。つまり、システム制御部50は関連画像撮影であるか否かを判定する。ステップS607の判定は、例えば、操作部70におけるスティッチ撮影、ブラケット撮影、又は連写撮影モードなどが設定又はモード切替スイッチ60の設定によって行われる。
関連画像撮影であると判定すると(ステップS607において、YES)、システム制御部50はファイルヘッダに一連の画像撮影が関連することを示す関連画像情報を記録する(ステップS608)。そして、システム制御部50は画像データをファイル名によって記録媒体200に記録し(ステップS609)、ステップS412(図4)の処理に進む。
なお、関連画像撮影でないと判定すると(ステップS607において、NO)、システム制御部50はステップS609の処理に進む。
続いて、前述の記録処理において記録媒体200に記録される画像ファイル(ここでは、静止画像データファイル)について説明する。
まず、図2に示すカメラ100における画像データを記録する際のファイル形式の概念について説明する。
図7は、図2に示すカメラ100において画像データを記録する際のファイル形式を簡単に説明するための図である。
図7に示すように、画像ファイル(以下画像ファイルのことを単にファイルとも呼ぶ)は、ヘッダ(Header)、サムネイル画像部(サムネイル画像データ)、JPEG画像部(表示用画像データ)、RAWヘッダ部(TWAIN)、およびRAWデータ部(RAW画像データ:第1の画像データ)を有している。そして、サムネイル画像部は第1のサムネイル画像部(THM1:第4の画像データ)を有し、第1のサムネイル画像部(THM1)の後に第2のサムネイル画像部(THM2:第5の画像データ)が記録されている。
また、JPEG画像部は第1のJPEG画像部(JPG1:第2の画像データ)を有し、第1のJPEG画像部(JPG1)の後に第2のJPEG画像部(JPG2:第3の画像データ)が記録されている。
いま、カメラ100において、アスペクト比(つまり、画角)を選択して撮影を行って、図7に示すファイルフォーマットで画像ファイルが記録媒体200に記録されるとする。
この際、Headerに選択アスペクト比情報(選択画角情報)が記録され、THM1が全面画角で記録される。そして、THM2が選択画角(黒枠付き:枠領域)で記録される。さらに、JPG1が全面画角で記録され、JPG2が選択画角で記録される。また、RAWが選択画角に拘わらず全面画角で記録される。
図7に示す画像ファイルにおけるRAWを再生する際には、例えば、サイズの大きいRAWを読み込む前にJPG1又はJPG2が簡易表示され、その後、RAWが再生される。
図7に示す画像ファイルを再生する際、アスペクト比の判定を行うことができるカメラでは、Headerに記録された選択画角情報に応じてRAWのサイズをトリミング表示するか又は枠表示することができる。一方、アスペクト比の判定を行うことができないカメラでは、全面画角で記録されたJPG1を再生した後、全面画角でRAWを再生する。
このため、サムネイル画像とRAWとを互いに異なるアスペクト比で記録しなければならない場合においても画像再生の際にアスペクトの不自然な変化が生じることがなく、RAWの再生の際、RAWの画像が簡易表示と繋がりがなくその画角が不自然に変化して表示されてしまうことがない。
図8は、図6で説明した記録処理で記録媒体に記録される画像ファイルのデータ構造を具体的に説明するための図である。そして、図8(a)はJPEGファイルを示す図であり、図8(b)は第1のサムネイル画像を示す図である。また、図8(c)は第2のサムネイル画像を示す図である。
図8(a)において、画像ファイル701は、その先頭に画像の開始を示すマーカー(SOI)702を有し、当該SOI702の後にアプリケーションマーカー(APP1)703および本画像データ731を有している。APP1(703)には、APP1のサイズ(APP1 Length)704、APP1の識別コード(APP1 Identifier Code)705、画像の作成日時を示すDate Time706、および画像データが生成された日時を示すDate Time Original707が格納される。さらに、ClassIn formation708には、後述ようにしてシステムメモリ52に記憶された分類情報が格納される。
さらに、APP1(703)には、本画像データの記録画素数を示すPixel Dimension709、撮影の際に設定した記録サイズ設定を示すImage Size710、本画像データのサイズを示すCompressed data Size711、および撮影の際のアスペクト情報712が格納される。また、APP1(703)には、その他の撮影情報713、画像開始を示すマーカー(SOI)714、アプリケーションマーカーAPP2(715)、第1のサムネイル画像(1st Thumbnail Data)720、画像データの最後を示すマーカー(EOI)721、画像開始を示すマーカー(SOI)722、アプリケーションマーカーAPP1(722)、第2のサムネイル画像(2nd Thumbnail Data)727、および画像データの最後を示すマーカー(EOI)728が格納される。
なお、第1のサムネイル画像720はDCF規格に従ったアスペクト比および画像サイズで記録される(図8(b)参照)。
図6で説明したステップS608で説明した関連画像情報を生成する際、Date Time706およびDate Time Original707には、図5のステップS501でシステムメモリ52に記憶した撮影日時情報が格納される。
APP2(715)には、APP2のサイズ(APP2 Length)716、APP2の識別コード(APP2 Identifier Code)717、および第2のサムネイル画像に係るAPP1(723)の先頭オフセット(2nd Thumbnail Offset)718、およびその他の撮影情報719が格納される。
アプリケーションマーカーAPP1(723)には、APP1のサイズ724、APP1の識別コード725、および第2のサムネイル画像727に係る記録画素数を示すPixel Dimension726が格納される。
なお、第2のサムネイル画像はDCF規格に従ったアスペクト比および画像サイズで記録しなければならないものの、記録の際、任意のアスペクト比で切り出したサムネイル画像と切り出し外のマスクとを記録すれば、任意のアスペクト比の画像として記録することができる(図8(c)参照)。任意のアスペクト比が第1のサムネイル画像と同一のアスペクト比の場合、第2のサムネイル画像を記録しなくてもよい。その際には、第2のサムネイル画像に関連するAPP2(715〜719)およびAPP1(723〜726)も記録しなくてもよい。
また、APP1(701)に続いて記録される本画像データは、量子化テーブル(DQT)729、ハフマンテーブル(DHT)730、フレーム開始マーカー(SOF)731、スキャン開始マーカー(SOS)732、および圧縮データ(Compressed Data)733を有している。そして、画像ファイルの最後を示すマーカー(EOI)734で終端される。
なお、圧縮データ733は撮影の際のアスペクト情報712ではなく、撮像部22に応じて決定されるアスペクトサイズで記録されている。
上述した画像ファイルのデータ構造はExif規格として定義された構造であり、APP1(703)コードおよび識別コード705を参照することによって、Exif構造であると認識することができる。
図9は、図2に示すカメラ100における再生モードの動作を説明するためのフローチャートである。
再生モードを開始すると、システム制御部50は記憶媒体200から初期画像情報を取得する(ステップS801)。ここで、初期画像とは最新の画像又は前回の再生において表示した画像のことをいい、初期画像情報とは、初期画像のデータと、ファイル名や日時情報などの初期画像に関連した情報のことをいう。
なお、初期画像情報の取得を、画像の総枚数計算および検索管理ファイル作成よりも先に行うことによって、後述するように、再生モードに入るとすばやく画像表示ができるというメリットがある。初期画像情報取得処理について後述する。
続いて、システム制御部50は初期画像情報の取得が正しく行われたか否かをチェックする。ここでは、例えば、システム制御部50は記録媒体200に画像が存在するか否かをチェックする(ステップS802)。なお、記録媒体200の不良によって画像が取得できない場合には、システム制御部50は画像なしと判定する。また、システム制御部50は初期画像情報が取得できれば、少なくとも1枚の画像が記録媒体200に存在すると判定する。
記録媒体200に画像が存在すると(ステップS802において、YES)、システム制御部50は初期画像情報、つまり、最新の画像情報に基づいて記憶媒体200から最新画像ファイルを読み込む(ステップS803)。
続いて、システム制御部50は最新画像ファイルに係る撮影情報および属性情報などのファイル解析処理を行う(ステップS804)。そして、システム制御部50はファイル解析結果に応じて、最新の画像を表示部28に表示するとともに、撮影情報および属性情報なども設定に応じて表示部28に表示する(ステップS805)。なお、ファイル解析の結果によって、最新画像ファイルの一部が壊れているなど不正なファイルである判定すると、システム制御部50は表示部28にエラー表示を行う。
次に、システム制御部50は記憶媒体200に収められている再生対象のリストの作成を開始する(ステップS806)。ここで、再生対象リストとは、例えば、DCF規格に従った再生機器においてはDCFルートディレクトリのディレクトリエントリを解析して当該再生機器において再生可能な画像を予め取得して管理するリストのことをいう。
ステップS806に係る処理は非同期で行われ、その完了を待たずに次の処理に進むことができる。これによって、多数の画像ファイルが記憶媒体200に格納されて、再生対象リストの検索に時間が掛かる場合であってもユーザは素早く画像の閲覧を行うことができる。
続いて、システム制御部50は検索管理ファイル(以下検索リストともいう)の作成を開始する(ステップS807)。ここで、検索管理ファイルとは、画像ファイルに付加された属性情報を予め取得して管理するための管理ファイルである。予め検索管理ファイルを生成することによって、属性毎の再生又は消去などの処理を素早く行うことが可能となる。検索管理ファイル作成処理についてもその完了を待たことなく、システム制御部50は再生モード入力待ち状態となる(ステップS808)。
記録媒体200に画像が存在しないと(ステップS802において、NO)、システム制御部50は、例えば、「画像がありません」などのメッセージ表示によって画像なし表示を行って(ステップS809)、ステップS808の再生モード入力待ち状態となる。
図10は、図9に示す再生モード入力待ち状態を説明するためのフローチャートである。
再生モード入力待ち状態となると、システム制御部50は入力イベントがあるか否かをチェックする(ステップS901)。ここでいう入力イベントとは、例えば、ユーザによるボタン又は電池蓋に対する操作、電源の低下などを知らせるイベント、起動の際に開始された検索リスト処理の完了通知をいう。
入力イベントがないと(ステップS901において、NO)、システム制御部50は待機する。一方、入力イベントがあると(ステップS901において、YES)、システム制御部50は当該入力イベントが画像送りボタンの操作であるか否かを判定する(ステップS902)。
入力イベントが画像送りボタンの操作であると(ステップS902において、YES)、システム制御部50は記録媒体200から次の表示画像(つまり、画像ファイル)を読み込む(ステップS903)。なお、画像送りボタンは前送りおよび後送りの対の方向を有しており、その送り方向によって次表示画像は変わることになる。
続いて、システム制御部50は、読み込んだ画像ファイルの撮影情報および属性情報などのファイル解析処理を行う(ステップS904)。そして、システム制御部50はファイル解析の結果に応じて表示部28に画像を表示する(ステップS905)。この際、システム制御部50は撮影情報および属性情報などをその設定に応じて表示部28に表示する。
なお、ファイル解析の結果によって、最新画像ファイルの一部が壊れているなど不正なファイルである判定すると、システム制御部50は表示部28にエラー表示を行う。その後、システム制御部50はステップS901の処理に戻る。
入力イベントが画像送りボタンの操作でないと(ステップS902において、NO)、システム制御部50は入力イベントが終了ボタンの操作であるか否かを判定する(ステップS906)。入力イベントが終了ボタンの操作であると(ステップS906において、YES)、システム制御部50は検索リスト作成処理を終了する(ステップS907)。ここでは、検索リストの作成途中ならば、その処理を中断し、既に検索リストの作成が完了していれば、それ以後システム制御部50は何も行わない。
その後、システム制御部50は総画像枚数の計算終了処理を行う(ステップS908)。この処理についても、総枚数計算が途中であれば計算を中断し、既に総枚数計算が完了していれば、それ以後システム制御部50は何も行わない。そして、システム制御部50は再生モード入力状態を終了して、図3に示すステップS307の処理に進む。
入力イベントが終了ボタンの操作ではないと(ステップS906において、NO)、システム制御部50は図9に示すステップS806で行った総画像枚数計算が完了しているか否かチェックする(ステップS910)。総画像枚数の計算が完了していないと(ステップS910において、NO)、システム制御部50はステップS901の処理に戻る。この際には、システム制御部50は総画像枚数計算が完了していない旨のメッセージ又はアイコンを表示部28に表示するようにしてもよい。
一方、総画像枚数の計算が完了すると(ステップS910において、YES)、システム制御部50は図9に示すステップS807で行った検索リストの作成が完了しているか否かをチェックする(ステップS911)。検索リストの作成が完了していないと(ステップS911において、NO)、システム制御部50はステップS901の処理に戻る。この際には、システム制御部50は検索リストの作成が完了していない旨のメッセージ又はアイコンを表示部28に表示するようにしてもよい。
検索リストの作成が完了すると(ステップS911において、YES)、システム制御部50は入力イベントが消去ボタンの操作であるか否かを判定する(ステップS912)。入力イベントが消去ボタンの操作であると(ステップS912において、YES)、システム制御部50は後述するようにして消去を行う(ステップS913)。そして、システム制御部50は消去処理後の総画像枚数をチェックして、総画像枚数がゼロであるか否かを判定する(ステップS914)。
総画像枚数がゼロであると(ステップS914において、YES)、システム制御部50は表示部28に画像なしの旨を表示して(ステップS915)、ステップS901の処理に戻る。ここでは、「画像がありません」などのメッセージが表示部28に表示される。
総画像枚数がゼロでないと(ステップS914において、NO)、システム制御部50は記録媒体200から次の画像ファイルを読み込む(ステップS916)。ここで、次の画像ファイルとは、消去された画像ファイルの次のファイル番号の画像ファイルをいう。最新の画像ファイルが消去された場合には、消去された画像ファイルの1つ前の画像ファイルが消去後の画像ファイル、つまり、最新の画像ファイルとなる。
続いて、システム制御部50は読み込んだ画像ファイルについて撮影情報および属性情報などのファイル解析処理を行う(ステップS917)。そして、システム制御部50はファイル解析の結果に応じて表示部28に画像を表示する(ステップS918)。この際、システム制御部50は撮影情報および属性情報などをその設定に応じて表示部28に表示する。
なお、ファイル解析の結果によって、画像ファイルの一部が壊れているなど不正なファイルである判定すると、システム制御部50は表示部28にエラー表示を行う。その後、システム制御部50はステップS901の処理に戻る。
入力イベントが消去ボタンの操作でないと(ステップS912において、NO)、システム制御部50は入力イベントがメニューボタンの操作であるか否かを判定をする(ステップS919)。入力イベントがメニューボタンの操作であると(ステップS919において、YES)。システム制御部50は、後述する印刷メニュー処理を行って(ステップS920)、ステップS901の処理に戻る。
入力イベントがメニューボタンの操作でないと(ステップS919において、NO)、システム制御部50は入力イベントに応じたその他の処理を行って(ステップS921)、ステップS901の処理に戻る。なお、その他の処理とは、例えば、マルチ再生への切り替え又はメニューボタンによるメニュー表示などである。
図11は、図9のステップS804と図10のステップ904およびS917に示すファイル解析処理を説明するためのフローチャートである。
ファイル解析処理を開始すると、システム制御部50は解析対象の画像ファイルに、撮影情報と分類情報などの属性情報とが記載されたファイルヘッダがあるか否か判定する(ステップS1001)。ファイルヘッダがあると判定すると(ステップS1001において、YES)、システム制御部50は当該ファイルヘッダから撮影情報を取得する(ステップS1002)。続いて、システム制御部50は当該ファイルヘッダから分類情報などを取得する(ステップS1003)。
ここで、撮影情報とは、撮影日時に関する情報および撮影の際の撮影モードなどの情報である。一方、分類情報とは、画像検索に用いるための識別情報のことをいい、例えば、タグ情報である。
続いて、システム制御部50は後述する画像情報取得処理を行う(ステップS1004)。なお、ファイルヘッダがないと判定すると(ステップS1001において、NO)、システム制御部50はステップS1004の処理に進む。
次に、システム制御部50は、前述の撮影情報、分類情報、および画像情報が検索管理ファイルの内容と同一であるか否かを判定する(ステップS1005)。撮影情報、分類情報、および画像情報が検索管理ファイルの内容と同一であると(ステップS1005において、YES)、システム制御部50はファイル解析処理を完了する。
一方、撮影情報、分類情報、および画像情報の少なくとも1つが検索管理ファイルの内容と相違すると(ステップS1005において、NO)、システム制御部50は検索管理ファイルの該当ファイル情報を更新する(ステップS1006)。そして、システム制御部50は検索管理ファイルを記録媒体200に書込んで(ステップS1007)、ファイル解析処理を完了する。
このように、画像の再生の際に画像ファイルを読み出してファイルヘッダを解析する時、同時に検索管理ファイルを参照して画像ファイル単位で照合を行うことによって別に処理時間を要することなく検索管理ファイルの照合および訂正を行うことができる。
また、検索管理ファイル自体の改竄、管理対象ファイルの変更などを検知できなかった場合においても、検索管理ファイルの内容を正しく再構築することが可能となる。
図12は、図11のステップS1004における画像情報取得処理を説明するためのフローチャートである。
画像情報取得処理を開始すると、システム制御部50は画像ファイルのファイルフォーマットに関する情報およびアスペクト情報を抽出する(ステップS1101)。次に、システム制御部50はファイルフォーマットを参照して本体画像データの開始位置および画像圧縮方法などの本体画像データに係る情報を取得する(ステップS1102)。
続いて、システム制御部50は画像ファイルからサムネイル情報を読み出して(ステップS1103)、第1のサムネイル画像とは別に第2のサムネイル画像が存在するか否かを判定する(ステップS1104)。例えば、図8に示すファイルフォーマットの場合には、システム制御部50はアプリケーションマーカーAPP2(714)をみて、APP2に記載された第2のサムネイル画像に係るAPP1の先頭位置を読み出すことができたか否かによって第2のサムネイル画像の有無を判定する。
なお、第2のサムネイル画像のアスペクト比がアスペクト情報712と同一の場合にのみ第2のサムネイル画像が存在すると判定するようにしてもよい。
第2のサムネイル画像が存在すると判定すると(ステップS1104において、YES)、システム制御部50は第2のサムネイル画像に関する情報をAPP1(722)から読み出して、第2のサムネイル画像の開始位置を取得する(ステップS1105)。そして、システム制御部50は画像情報取得処理を終了する。
一方、第2のサムネイルが存在しないと判定すると(ステップS1106において、NO)、システム制御部50は同様にして第1のサムネイル画像の開始位置を取得する(ステップS1106)。そして、システム制御部50は画像情報取得処理を終了する。
図13は、図9のステップS806に示す再生対象リスト作成処理を説明するためのフローチャートである。
再生対象リスト作成処理を開始すると、システム制御部50は最新画像確定フラグをゼロに初期化する(ステップS1201)。続いて、システム制御部50は総ファイル数確定フラグをゼロに初期化した(ステップS1202)後、検索許可フラグをゼロに初期化する(ステップS1203)。
次に、システム制御部50は再生対象ディレクトリリストを作成する(ステップS1204)。この処理では、例えば、DCF規格に従った再生機器においてはDCFルートディレクトリのディレクトリエントリを解析してDCFディレクトリを検索し、再生対象ディレクトリリストに追加する。
続いて、システム制御部50は再生対象ディレクトリの存否を判定する(ステップS1205)。再生対象ディレクトリがないと(ステップS1205において、NO)、つまり、カメラ100が取り扱い可能なディレクトリおよび取り扱い可能なファイルが無い場合、システム制御部50は総ファイル数を0に設定した後、総ファイル数確定フラグを1に設定する(ステップS1214)。そして、システム制御部50は再生対象リスト作成処理を終了する。
一方、再生対象ディレクトリがあると判定すると(ステップS1205において、YES)、システム制御部50は画像検索対象ディレクトリを初期化する(ステップS1206)。この初期化においては、例えば、DCF規格の再生機器では最大番号のDCFディレクトリが画像検索対象ディレクトリに設定される。
次に、システム制御部50は画像検索対象に設定されたディレクトリにおける画像総数を、当該ディレクトリのディレクトリエントリを解析することによって算出する(ステップS1207)。そして、システム制御部50は当該ディレクトリの画像総数を記録媒体200の画像総数に加算する。
さらに、システム制御部50は、DCFルートディレクトリのディレクトリエントリに記載されたファイル情報を取得する(ステップS1208)。具体的には、システム制御部50は最小ファイル番号、最大ファイル番号、ファイル番号総和、タイムスタンプ総和、ファイルサイズ総和、および総ファイル数などを取得する。そして、システム制御部50はファイル情報をディレクトリエントリ情報としてシステムメモリ52に記憶する。
続いて、システム制御部50は再生対象画像ファイル(つまり、カメラ100が取り扱い可能なファイル)が存在するか否かを判定する(ステップS1209)。再生対象画像ファイルが存在すると判定すると(ステップS1209において、YES)、システム制御部50は最新画像ファイルを決定して、最新画像確定フラグを1に設定する(ステップS1210)。
次に、システム制御部50は終了ボタンなどの操作によって総数計算終了の指示があったか否かを判定する(ステップS1211)。総数計算終了の指示があると(ステップS1211において、YES)、システム制御部50はステップS1214の処理に進む。
なお、再生対象画像ファイルが存在しないと判定すると(ステップS1209において、NO)、システム制御部50はステップS1211の処理に進む。
総数計算終了の指示がなければ(ステップS1211において、NO)、システム制御部50は未検索のディレクトリが存在するか否かを判定する(ステップS1213)。未検索のディレクトリが存在すると判定すると(ステップS1213において、YES)、システム制御部50は画像検索対象ディレクトリを未処理のディレクトリ(画像検索対象ディレクトリ再設定)に設定して(ステップS1212)、ステップS1207の処理に戻る。
一方、未検索のディレクトリが存在しないと判定すると(ステップS1213において、NO)、システム制御部50はステップS1214の処理に進む。
このようにして、ステップS1207〜S1210の処理がステップS1204で作成した再生対象ディレクトリリストにある全てのディレクトリについて行われる。全てのディレクトリについてステップS1207〜S1210の処理が終了すると、システム制御部50はステップ1214の処理に進む。ステップS1214において、システム制御部50は、最新画像確定を通知するとともに画像総数を算出して、総ファイル数確定フラグを設定し処理を終了する。
なお、再生対象ディレクトリが存在しても、ディレクトリに再生対象画像がない場合には、画像総数0として総ファイル数確定フラグを立てて処理を終了するものとする。
図14は、図9のステップS807に示す検索管理ファイル作成処理を説明するためのフローチャートである。
検索管理ファイル作成処理を開始すると、システム制御部50は検索管理ファイルの作成指示があったか否かを判定する(ステップS1301)。作成指示がないと(ステップS1301において、NO)、システム制御部50は待機する。
一方、作成指示があると(ステップS1301において、YES)、システム制御部50は信頼性未確認ディレクトリの有無を確認する(ステップ1303)。全ての再生対象ディレクトリについて信頼性を確認済みであれば(ステップS1303において、NO)、システム制御部50は検索許可フラグ=1をシステムメモリ52に設定して(ステップS1316)、検索管理ファイル作成処理を終了する。
一方、信頼性未確認のディレクトリがあると判定すると(ステップS1303において、YES)、システム制御部50は当該ディレクトリを信頼性確認をすべき対象ディレクトリに設定する(ステップS1304)。そして、システム制御部50は当該対象ディレクトリに対応する検索管理ファイルが記録媒体200に存在するか否かを判定する(ステップS1305)。
検索管理ファイルが存在すると(ステップS1305において、YES)、システム制御部50は当該検索管理ファイルをシステムメモリ52に読み込む(ステップS1306)。そして、システム制御部50はこの検索管理ファイルに対して後述する信頼性の確認を行う(ステップS1307)。
続いて、システム制御部50は全データに信頼性があるか否かを確認する(ステップS1308)。その確認の結果、全データに信頼性ありと判定すると(ステップS1308において、YES)、システム制御部50は対象ディレクトリ信頼性確認済みを記憶する記憶処理を行う(ステップS1315)。そして、システム制御部50は検索管理ファイルの作成中断の指示があったか否かを確認する(ステップS1302)。
作成中断の指示があると(ステップS1302において、YES)、システム制御部50はステップS1301の処理に進む。一方、作成中断の指示がなければ(ステップS1302において、NO)、システム制御部50はステップS1303の処理に進む。そして、システム制御部50は一連の処理を信頼性未確認のディレクトリがなくなるまで行う。
全データには信頼性かないと判定すると(ステップS1308において、NO)、システム制御部50は一部のデータに信頼性があるか否かを判定する(ステップS1309)。そして、認処理の結果、一部のデータにも信頼性がないと判定すると(ステップS1309において、NO)、システム制御部50はディレクトリ内の全データを再検査対象に設定する(ステップS1311)。
一方、確認処理の結果、一部のデータにのみ信頼性が確認されると(ステップS1309において、YES)、システム制御部50は、信頼性の確認されていない一部データを再検査対象として設定する(ステップS1310)。そして、システム制御部50は再検査対象に設定した画像ファイルについて検索管理ファイルの生成を行う(ステップS1313)。
なお、ステップS1311の処理を行った後、システム制御部50はステップS1313の処理に進み、全データについて、つまり、検査対象とした全画像ファイルについて検索管理ファイルの生成を行う。
その後、システム制御部50は、生成した検索管理ファイルを記録媒体200に書き込んで(ステップS1314)、ステップS1315の処理に進む。ここでは、例えば、検索管理ファイルを格納するディレクトリ(XXXMSC)を生成して、当該ディレクトリの中に生成した検索管理ファイル(M100.CTG、M101.CTG)を格納する。
なお、本実施形態では、ディレクトリ毎に検索管理ファイルが生成されて、記録媒体200に格納する。例えば、M100.CTG(2001)はディレクトリ100XXX(2002)の検索管理ファイルであり、M101.CTG(2003)はディレクトリ101XXX(2004)の検索管理ファイルである。
なお、ステップS1305において、検索管理ファイルが存在しないと判定すると(ステップS1305において、NO)、システム制御部50はステップS1311の処理に進む。
このようにして、全ての再生対象ディレクトリに対して処理が終了したならば、ステップS1303からステップS1316に処理が進み、システム制御部50は検索許可フラグを1に設定して検索管理ファイル作成処理を終了することになる。
図15は、図14のステップS1307に示す信頼性確認処理を説明するためのフローチャートである。
また、図19は、図2に示すカメラ100で用いられる検索管理ファイルを説明するための図である。そして、図19(a)はディレクトリの構成を示す図であり、図19(b)は検索管理ファイルの構成を示す図である。
信頼性確認処理を開始すると、システム制御部50は、記録媒体200からシステムメモリ52に読み込んだ検索管理ファイルの整合性の確認を行う(ステップS1401)。この整合性の確認は検索管理ファイル信頼性情報に基づいて行われる。検索管理ファイル信頼性情報は、検索管理ファイルバージョン、検索管理ファイルサイズ、および検索管理ファイルチェックサムのような検索管理ファイル内の検索情報ではなく、検索管理ファイル自体の整合情報であって、検索管理ファイル自体の改ざんを確認する際などに用いられる。
なお、検索管理ファイル信頼性情報としては、例えば、タイムスタンプおよびハッシュ値などを用いることができる。
検索管理ファイルの整合性が確認できないと(ステップS1401において、NO)、システム制御部50はデータ信頼性なしと判定して(ステップS1411)、信頼性確認処理を終了する。これによって、検索管理ファイルが改ざんされたことによって正常な検索ができないという事態を防止することが可能となる。
検索管理ファイルの整合性が確認できると(ステップS1401において、YES)、システム制御部50は前述の再生対象リスト作成処理においてシステムメモリ52に記憶されたディレクトリエントリ情報を取得する(ステップS1402)。そして、システム制御部50は、前述の検索管理ファイル作成処理において記録媒体200から読み出した検索管理ファイルに記載のディレクトリエントリ情報とステップS1402で取得したディレクトリエントリ情報とを比較する(ステップS1403)。
ここでは、例えば、最小ファイル番号、最大ファイル番号、ファイル番号総和、タイムスタンプ総和、ファイルサイズ総和、および総ファイル数などの対象ディレクトリの構成を示す情報を用いて比較が行われる。なお、本実施形態ではDCF規格に従ってファイル番号をエントリ情報としているが、もちろんファイル名又はファイル名の文字コードの総和、記録媒体上のディレクトリエントリのハッシュ値などをディレクトリエントリ情報としてもよい。
システム制御部50は比較結果に応じて両者の情報が同一であるか否かを判定する(ステップS1404)。両者の情報が同一である場合(ステップS1404において、YES)、システム制御部50は全データ信頼性有りと判定して(ステップS1412)、信頼性確認処理を終了する。これによって、対象ディレクトリ内のファイル自体の変更およびファイル構成の変更によって正常な検索ができないという事態を防止することが可能となる。
両者の情報が同一でないと(ステップS1404において、NO)、システム制御部50は検索管理ファイルにのみ存在するファイルがあるか否かを判定する(ステップS1405)。検索管理ファイルにのみ存在するファイルがあると(ステップS1405において、YES)、システム制御部50は検索管理ファイルとディレクトリエントリ情報との両方に存在する共通ファイルがあるか否かを判定する(ステップS1406)。
共通ファイルがあると判定すると(ステップS1406において、YES)、システム制御部50は共通ファイルのディレクトリエントリ情報を記録媒体200から取得する(ステップS1407)。そして、システム制御部50は共通ファイルについて、検索管理ファイルに記載のディレクトリエントリ情報と比較する(ステップS1408)。
ステップS1408におけるエントリ情報を用いた比較では、タイムスタンプ、ファイルサイズ、ファイル名、プロテクト属性、隠し属性、およびアーカイブ属性などが用いられる。
続いて、システム制御部50は比較結果に応じて共通ファイルにおいてディレクトリエントリ情報が同一であるか否かを判定する(ステップS1409)。共通ファイルにおいてディレクトリエントリ情報が同一であると(ステップS1409において、YES)、システム制御部50は一部データ信頼性有りと判定して(ステップS1410)、信頼性確認処理を終了する。
なお、検索管理ファイルにのみ存在するファイルがないと(ステップS1405において、NO)、システム制御部50はステップS1411の処理に進む。同様に、共通ファイルがないと判定すると(ステップS1406において、NO)、システム制御部50はステップS1411の処理に進む。また、共通ファイルにおいてディレクトリエントリ情報が同一でないと(ステップS1409において、NO)、システム制御部50はステップS1411の処理に進む。
例えば、パソコンなどで記録媒体200に画像ファイルが追加され、カメラ100において検索管理ファイルにそれが反映される前に電源遮断などがなされると、一部の画像ファイルのみの情報が検索管理ファイルに記載されていない事態が生じる。本実施形態によれば、このような場合でも、既に信頼性があると確認されているデータを有効に使用することが可能となる。
以上の検索管理処理によれば、記録媒体200内の管理対象ファイルの構成の変更、管理対象ファイル自体の変更を検知して検索管理ファイルを自動的に再構築することが可能となる。
また、記録媒体内の管理対象ファイル構成の変更、管理対象ファイルの変更の検知をディレクトリエントリ上に記載のデータで行うので、ファイルの内容を参照しないので高速に処理を実行することができる。さらに、検索管理ファイルの再構築は、記録媒体内の管理対象ファイル構成の変更、管理対象ファイルの変更の検知のあったディレクトリに対してのみ行われるので、変更の無いディレクトリに対しては検索管理ファイルを再構築する必要がない。
加えて、共通ファイルについて変更がなければ、共通ファイルの検索管理ファイルの情報はそのまま利用される。このため、他の装置でディレクトリにファイルが追加された場合又はカメラ100でディレクトリにファイルを追加して検索管理ファイルを更新前にカメラ100の電源を断とした場合などにおいても、構築済みの検索管理ファイルを有効に使用することができる。
検索管理ファイルの再構築は、共通ファイルに変化がなければ、記録媒体内の管理対象ファイル構成の変更、管理対象ファイルの変更の検知のあったディレクトリのうち重複しない管理対象ファイルに対してのみ行われる。このため、既に構築済みのファイル情報については再構築する必要がなく、追加が検出されたファイルのみについて再検査を行うことができる。
信頼性の確認ついては、検索管理ファイルに検索管理ファイル自体のファイル属性を記載して、ファイル属性を照合することによって行うので、検索管理ファイル自体の改竄を検知することが可能となって、誤った管理を行うことを防止することができる。そして、検索管理ファイル自体の改竄確認の際には、検索管理ファイル自体およびのそのディレクトリエントリ上の情報を用いるので、検索管理ファイル単位で高速に確認を行うことができる。
図16は、図14のステップS1313に示す検索管理ファイル生成処理を説明するためのフローチャートである。
検索管理ファイルの生成処理を開始すると、システム制御部50は解析ファイルの設定を行う(ステップS1501)。ここでは、前述の検索管理ファイル作成処理(図14)で設定されたディレクトリ内の全ファイル又は信頼性が確認ができなかった一部のファイルのうちの未解析のファイルが解析ファイルとして設定される。
次に、システム制御部50は後述する属性情報取得処理を行って解析ファイルの属性情報を取得する(ステップS1502)。そして、システム制御部50は属性情報に応じて検索管理ファイルに記載する情報を生成して検索管理ファイルに登録する(ステップS1503)。当該検索管理ファイルに登録する情報は、例えば、ファイル情報であり、このファイル情報には分類情報、撮影情報、および被写体情報などが含まれる。そして、このファイル情報はファイルを特定する情報と関連付けて登録される。
なお、ファイルを特定する情報として、例えば、ファイル名およびファイル番号などを登録するようにしてもよく、リストの並び順によってファイルと関連付けるようにしてもよい。
属性情報取得処理においてファイルヘッダがないと判定しても、システム制御部50は、ステップS1503においてその旨の情報を検索管理ファイルに登録する。
このようにして、解析ファイルの属性情報に応じた情報が検索管理ファイルに登録される。
続いて、システム制御部50は、未解析のファイルの有無を確認する(ステップS1504)。未解析のファイルがあると(ステップS1504において、YES)、システム制御部50はステップS1501の処理に戻る。一方、未解析のファイルがなければ(ステップS1504において、NO)、システム制御部50は検索管理ファイル生成処理を終了する。
以上のように、撮影などによってキャッシュ上に存在する属性情報について改めて記録媒体内のファイルを読み出して解析することを行う必要がないので、高速に検索管理ファイルの構築を行うことができる。
ところで、前述のように、記録媒体200の画像ファイルを検索して総枚数が確定すると、分類情報設定および画像消去が可能となる。そして、その間、記録媒体200内の検索管理ファイルの信頼性確認処理が並行して行われている。
まず、信頼性の確認が行われる前に、画像ファイルが消去された場合について説明する。
画像ファイルの消去に伴って当該画像ファイルが属するディレクトリのディレクトリエントリが更新される。従って、検索管理ファイルに記載の信頼性確認情報と上記のディレクトリエントリとの間に不整合が生じる。この結果、信頼性確認処理において、処理はステップS1404からステップS1405へ進むことになる。
消去された画像ファイルはディレクトリエントリに存在しないので、当該画像ファイルは検索管理ファイルにのみ存在することになる。このため、検索管理ファイルのデータは信頼性なしと判定されて、全データが再検査対象に設定されて検索管理ファイルの生成が行われることになる。
次に、信頼性確認が行われる前の画像ファイルについてその分類情報が変更された場合について説明する。
画像ファイルの分類情報の変更に伴って当該画像ファイルが属するディレクトリのディレクトリエントリ(タイムスタンプなど)が更新される。従って、検索管理ファイルに記載の信頼性確認情報と上記のディレクトリエントリとの間に不整合が生じる。その結果、信頼性確認処理において、処理はステップS1404からステップS1405へ進む。
分類情報の変更においては画像ファイルは消去されていないので、検索管理ファイルにのみ存在する画像ファイルは発生しない。しかしながら、分類情報が変更されているので、当該画像ファイルに関してはディレクトリエントリと検索管理ファイルに共通に存在する画像ファイルとの間で不整合が生じる。
このため、処理はステップS1409からステップS1411に進んで、検索管理ファイルのデータは信頼性なしと判定される。その結果、全データが再検査対象に設定されて検索管理ファイルの生成が行われることになる。
以上のようにして、信頼性確認の前に削除又は分類情報の変更が行われた画像ファイルについては、カメラ100において管理される画像ファイルの対象から外されることになる。
図17は、図16のステップS1502に示す属性情報取得処理を説明するためのフローチャートである。
属性情報取得処理を開始すると、システム制御部50は解析ファイルの属性情報がシステムメモリ52のキャッシュエリアにキャッシュ情報として存在するか否かを判定する(ステップS1600)。このキャッシュ情報は、例えば、画像の撮影の際にシステムメモリ52のキャッシュエリアに保持される。
キャッシュ情報があると判定すると(ステップS1600において、YES)、システム制御部50はキャッシュ情報に応じて検索管理ファイルに記載する情報を取得する(ステップS1605)。そして、システム制御部50は属性情報取得処理を終了する。
一方、キャッシュに属性情報がないと判定すると(ステップS1600において、NO)、システム制御部50は対象ファイルを記録媒体200から読み込む(ステップS1601)。そして、システム制御部50は当該対象ファイルに属性情報の記載されたファイルヘッダがあるか否かを判定する(ステップS1602)。
ファイルヘッダがあると判定すると(ステップS1602において、YES)、システム制御部50はまず属性情報のうち撮影情報を取得し(ステップS1603)、続いて、システム制御部50は分類情報などを取得する(ステップS1604)。そして、システム制御部50は属性情報取得処理を終了する。
ファイルヘッダがないと判定すると(ステップS1602において、NO)、システム制御部50は属性情報取得処理を終了する。
図18は、図2に示すカメラ100における画像表示処理を説明するためのフローチャートである。
画像表示にあたっては、システム制御部50はまずユーザからサムネイル画像の表示要求が行われているか否かを判定する(ステップS1701)。例えば、本画像の読み出しに時間が掛かる場合には、本画像よりもサイズの小さいサムネイル画像を事前に読み出しておけば、画像表示を速やかに行うことができる。なお、ユーザによる設定又は画像表示モードに応じてサムネイル表示が行われることになる。
サムネイル画像の表示要求があると(ステップS1701において、YES)、システム制御部50はサムネイル画像の読み出しを行って当該サムネイル画像を表示部28に表示して、画像表示処理を終了する。
この際、図12のステップS1105において第2のサムネイルの開始位置を読み出している場合には、システム制御部50は第2のサムネイル画像の表示を行う。一方、ステップS1106において第1のサムネイル画像を読み出している場合には、システム制御部50は第1のサムネイル画像の表示を行う。
サムネイル画像の表示要求がないと(ステップS1701において、NO)、システム制御部50はアスペクト画像表示を行うか否かを判定する(ステップS1703)。なお、アスペクト画像表示を行う際には、例えば、その旨の指示がユーザから与えられる。
アスペクト画像表示を行うと判定すると(ステップS1703において、YES)、システム制御部50は本画像を読み出して所定のアスペクト比で本画像を表示部28に表示する(ステップS1704)。そして、システム制御部50は画像表示処理を終了する。
なお、所定のアスペクト比は、例えば、画像ファイル内のアスペクト情報を用いてもよいし、サムネイル画像のアスペクト比を用いるようにしてもよい。また、アスペクト画像表示の際には、例えば、アスペクト比に合わせて画像の切り出を行って、所謂マスク表示が行われる。
アスペクト画像表示を行わないと判定すると(ステップS1703において、NO)、システム制御部50は本画像を読み出して本画像が記録されたアスペクト比でそのまま表示部28に表示する。そして、システム制御部50は画像表示処理を終了する。
このようにして、サイズの大きな本画像を表示する際、撮影時におけるアスペクト比でアスペクト画像表示を行うことによって、事前に表示するサムネイル画像のアスペクト比と同一にすることが可能となって、ユーザに画像表示の際にアスペクト比の変化による違和感を抱かせないようにすることができる。
以上のように、本発明の実施の形態では、画像再生の際にアスペクト比(つまり、画角)の不自然な変化が生じることがなく、ユーザに違和感を与えることがない。
上述の説明から明らかなように、図2に示す例においては、システム制御部50、画像処理部24、およびメモリ制御部15が第1の画像生成手段、第2の画像生成手段、第3の画像生成手段、第4の画像生成手段、第5の画像生成手段、記録手段、解析手段、および画像読み出し手段として機能する。また、図2に示す例では、少なくとも画像処理部24、メモリ制御部15、システム制御部50、システムメモリ52、不揮発性メモリ56、および操作部70が画像処理装置を構成する。
以上、本発明について実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
例えば、上記の実施の形態の機能を制御方法として、この制御方法を画像処理装置に実行させるようにすればよい。また、上述の実施の形態の機能を有するプログラムを制御プログラムとして、当該制御プログラムを画像処理装置が備えるコンピュータに実行させるようにしてもよい。なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。
また、本発明は、以下の処理を実行することによっても実現される。つまり、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種の記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPUなど)がプログラムを読み出して実行する処理である。