以下、この発明の実施の形態を図面を参照しながら説明する。
[基本的構成]
図1を参照して、この発明の画像処理装置は、基本的に次のように構成される。検出手段1は、記録媒体2に記録された画像データから特徴画像情報を検出する。再生手段3は、記録媒体2に記録された画像データの一部を検出手段1の検出処理の後に再生する。探索手段4は、再生手段3によって再生された画像データの特徴画像情報を検出手段1によって検出された特徴画像情報と照合して、符合条件を満足する他の一部の画像データを記録媒体2から探索する。指定手段5は、更新指示を受け付けたとき、探索手段4によって発見された画像データを再生手段3の再生対象として指定する。
したがって、記録媒体2に記録された画像データから特徴画像情報を検出する処理は、一部の画像データの再生処理に先立って実行される。また、符合条件を満足する他の一部の画像データを探索する処理は、再生された一部の画像データに現れた特徴画像情報を再生処理に先立って検出された特徴画像情報と照合することによって探索される。これによって、再生された一部の画像データに関連する他の一部の画像データの探索性能が向上する。
[実施例]
図2を参照して、この実施例のディジタルカメラ10は、ドライバ18aおよび18bによってそれぞれ駆動されるフォーカスレンズ12および絞りユニット14を含む。これらの部材を経た被写界の光学像は、イメージャ16の撮像面に照射され、光電変換を施される。これによって、被写界像を表す電荷が生成される。
キー入力装置28上のモード切り換えボタン28swによってカメラモードが選択されると、CPU26は、撮像タスクの下で動画取り込み処理を開始するべく、ドライバ18cに露光動作および電荷読み出し動作の繰り返しを命令する。ドライバ18cは、図示しないSG(Signal Generator)から周期的に発生する垂直同期信号Vsyncに応答して、撮像面を露光し、かつ撮像面で生成された電荷をラスタ走査態様で読み出す。イメージャ16からは、読み出された電荷に基づく生画像データが周期的に出力される。
前処理回路20は、イメージャ16から出力された生画像データにディジタルクランプ,画素欠陥補正,ゲイン制御などの処理を施す。前処理を施された生画像データは、メモリ制御回路30を通してSDRAM32の生画像エリア32aに書き込まれる。
後処理回路34は、生画像エリア32aに格納された生画像データをメモリ制御回路30を通して読み出し、読み出された生画像データに白バランス調整,色分離,YUV変換,縮小ズームなどの処理を施す。これによって生成された画像データ(形式:YUV,解像度:低)は、メモリ制御回路30を通してSDRAM32の動画像エリア32bに書き込まれる。
LCDドライバ36は、動画像エリア32bに格納された画像データをメモリ制御回路30を通して繰り返し読み出し、読み出された画像データに基づいてLCDモニタ38を駆動する。この結果、被写界のリアルタイム動画像(スルー画像)がモニタ画面に表示される。
前処理回路20は、上述した処理に加えて、生画像データを簡易的にRGBデータに変換する簡易RGB変換処理を実行し、変換されたRGBデータをAE評価回路22およびAF評価回路24に与える。
AE評価回路22は、前処理回路20から与えられたRGBデータのうち撮像面に割り当てられた調整エリア(図示せず)に属するRGBデータを垂直同期信号Vsyncが発生する毎に積分し、これによって算出された積分値をAE評価値としてCPU26に与える。AF評価回路24は、前処理回路20から与えられたRGBデータのうち調整エリアに属するRGBデータをYデータに変換し、変換されたYデータの高周波成分を垂直同期信号Vsyncが発生する毎に積分し、これによって算出された積分値をAF評価値としてCPU26に与えられる。
CPU26は、撮像タスクと並列する撮像条件調整タスクの下で、AE評価値に基づく動画用AE処理を実行し、適正EV値および適正白バランス調整ゲインを算出する。算出された適正EV値を定義する絞り量および露光時間は、ドライバ18bおよび18cにそれぞれ設定される。この結果、スルー画像の明るさが適度に調整される。
CPU26はまた、上述した撮像条件調整タスクの下で、AF評価値に基づく動画用AF処理を実行する。フォーカスレンズ12は、AF評価回路24の出力がAF起動条件を満足するとき、ドライバ18aによって合焦点に設定される。これによって、スルー画像のフォーカスが適度に調整される。
キー入力装置28上のシャッタボタン28shが半押しされると、CPU26は、撮像条件調整タスクの下で静止画用AF処理を実行する。静止画用AF処理もまたAF評価値に基づいて実行される。これによって、フォーカスが厳格に調整される。CPU26は続いて、AE評価値に基づいて静止画用AE処理を実行し、最適EV値を算出する。算出された最適EV値を定義する絞り量および露光時間は、上述と同様、ドライバ18bおよび18cにそれぞれ設定される。この結果、スルー画像の明るさが厳格に調整される。
シャッタボタン28shが全押しされると、CPU26は、静止画記録処理の実行を後処理回路34およびI/F40に命令する。後処理回路34は、シャッタボタン28shが操作された時点の被写界を表す1フレームの画像データ(形式:YUV,解像度:高)を作成し、作成された画像データをメモリ制御回路30を通して静止画像エリア32cに書き込む。I/F40は、静止画像エリア32cに格納された1フレームの画像データをメモリ制御回路30を通して読み出し、読み出された画像データを含む静止画ファイルを記録媒体42に作成する。
動画取込み処理の途中でキー入力装置28上のムービボタン28mvが操作されると、CPU26は、動画記録処理の開始をI/F40に命令する。I/F40は、動画像エリア32bに格納された画像データをメモリ制御回路32を通して繰り返し読み出し、読み出された画像データを含む動画ファイルを記録媒体52に作成する。ムービボタン28mvが再度操作されると、CPU26は、動画記録処理の終了をI/F40に命令する。I/F40は、動画像エリア32bからの画像データの読み出しを終了し、記録先の動画ファイルをクローズする。
なお、この実施例では、シャッタボタン28shの操作に応答して作成される静止画ファイルおよびムービボタン28mvの操作に応答して作成される動画ファイルを
“画像ファイル”と総称する。
撮像タスクの下では、静止画記録処理の対象である1フレームの画像データ、或いは動画記録処理の対象である複数フレームの画像データに対する顔認識処理が追加的に実行される。顔認識処理は、静止画記録処理に対応して1回だけ実行され、動画記録処理に対応して1フレーム毎に実行される。また、顔認識処理は、顔検出回路44を利用して実行される。
したがって、CPU26は、シャッタボタン28shが操作されたとき探索要求を顔検出回路44に向けて1回だけ発行し、ムービボタン28mvが操作されたとき探索要求を顔検出回路44に向けて1フレーム毎に発行する。
発行される探索要求には、静止画像エリア32cまたは動画像エリア32bが探索エリアとして記述される。シャッタボタン28shが操作されたときは静止画像エリア32cが探索エリアとして記述され、ムービボタン28mvが操作されたときは動画像エリア32bが探索エリアとして記述される。
顔検出回路44は、具体的には図3に示すように構成される。コントローラ44bは、CPU26から与えられた探索要求を参照して、動画像エリア32bおよび静止画像エリア32cの一方を探索エリアとして指定し、探索エリアの画像データをメモリ制御回路32を通して既定量ずつ読み出す。読み出された画像データは、SRAM44aに書き込まれる。
コントローラ44bは続いて、照合枠をSRAM44a上に定義し、定義された照合枠に属する一部の画像データをSRAM44aから照合回路44cに転送する。照合回路44cは、SRAM44bから与えられた画像データを人物の顔部を表すテンプレートと照合する。画像データがテンプレートと符合すれば、照合回路44cは、探索エリアの画像データのうち現時点の照合枠に属する一部の画像データを人物の顔部画像に相当するデータとみなし、認識された顔部画像の位置およびサイズを定義する顔枠と認識された顔部画像のパターンを定義する顔パターンとを図4に示すレジスタRGST1に記述する。
照合枠の定義は、照合枠が探索エリア上をラスタ方向に既定量ずつ移動するように繰り返し変更される。照合処理は、照合枠が探索エリアの末尾位置に到達するまで繰り返し実行される。照合枠が探索エリアの末尾位置に到達すると、探索終了通知が照合回路44cからCPU26に向けて返送される。
CPU26は、探索終了通知の返送に応答して顔認識処理を終了し、顔認識に成功したか否かをレジスタRGST1を参照して判別する。レジスタRGST1に少なくとも1つの顔枠/顔パターンが登録されていれば、CPU26は顔認識に成功したとみなす。一方、レジスタRGST1に1つの顔枠/顔パターンも登録されていなければ、CPU26は、顔認識に失敗したか或いは被写界に人物の顔部画像が1つも存在しないとみなされる。
静止画像エリア32cに格納された画像データに対する顔認識に成功した場合、CPU26は、レジスタRGST1に登録された顔パターンと静止画記録処理によって作成された静止画ファイルのファイル名とを検出し、検出された顔パターンおよびファイル名とフレーム番号(=0)とをテーブルTBL1に記述する。
また、動画像エリア32bに格納された画像データに対する顔認識に成功した場合、CPU26は、レジスタRGST1に登録された顔パターン,動画記録処理によって作成されえた動画ファイルのファイル名,および動画像エリア32bに格納された画像データのフレーム番号を検出し、検出された顔パターン,ファイル名およびフレーム番号をテーブルTBL1に記述する。
したがって、図6に示す被写界に対する静止画記録処理によってファイル名が“DC001.STL”の静止画ファイルが作成された場合、図6に示す被写界に現れた人物F_Aの顔パターンとファイル名“DC001.STL”とフレーム番号“0”とがテーブルTBL1に記述される。
また、図7に示す被写界に対する動画記録処理によってファイル名が“DC001.MV”の動画ファイルが作成された場合、図7に示す被写界に現れた人物F_BおよびF_Cの各々の顔パターンとファイル名“DC001.MV”と現時点の画像データのフレーム番号である“15”とがテーブルTBL1に記述される。
さらに、図8に示す被写界に対する静止画記録処理によってファイル名が“DC002.STL”の静止画ファイルが作成された場合、図8に示す被写界に現れた人物F_Bの顔パターンとファイル名“DC001.STL”とフレーム番号“0”とがテーブルTBL1に記述される。
また、図9に示す被写界に対する動画記録処理によってファイル名が“DC002.MV”の動画ファイルが作成された場合、図9に示す被写界に現れた人物F_CおよびF_Aの各々の顔パターンとファイル名“DC002.MV”と現時点の画像データのフレーム番号である“26”とがテーブルTBL1に記述される。
さらに、図10に示す被写界に対する静止画記録処理によってファイル名が“DC003.STL”の静止画ファイルが作成された場合、図10に示す被写界に現れた人物F_Bの顔パターンとファイル名“DC003.STL”とフレーム番号“0”とがテーブルTBL1に記述される。
この結果、図10に示す被写界に対する静止画処理が完了した時点において、顔パターン,ファイル名およびフレーム番号は、図11に示す要領でテーブルTBL1に記述される。
CPU26は、カメラモードが選択されたとき、図12〜図13に示す撮像タスクおよび図示しない撮像条件調整タスクを含む複数のタスクを並列的に実行する。なお、これらのタスクに対応する制御プログラムは、フラッシュメモリ46に記憶される。
図12を参照して、まずステップS1で動画取込み処理を実行する。この結果、スルー画像がLCDモニタ38から出力される。ステップS3ではシャッタボタン28shが全押しされたか否かを判別し、ステップS13ではムービボタン28mvが操作されたか否かを判別する。ステップS3でYESであればステップS5に進み、ステップS13でYESであればステップS15に進み、ステップS3およびS13のいずれもNOであればステップS3に戻る。
ステップS5では、静止画記録処理を実行する。この結果、シャッタボタン28shが操作された時点の被写界を表す画像データが静止画ファイルとして記録媒体42に記録される。ステップS7では、顔認識処理を実行するべく、探索要求を顔検出回路44に向けて発行する。探索要求に記述された探索エリアは静止画像エリア32cを示し、顔検出回路44は静止画像エリア32cに格納された1フレームの画像データに対して顔検出処理を実行する。検出された顔枠および顔パターンは、レジスタRGST1に記述される。
探索終了通知が返送されるとステップS9からステップS11に進み、顔認識に成功したか否かを判別する。レジスタRGST1に少なくとも1つの顔枠/顔パターンが登録されていれば、顔認識に成功したとみなし(つまり判別結果はYESとみなし)、ステップS11に進む。一方、レジスタRGST1に1つの顔枠/顔パターンも登録されていなければ、顔認識に失敗したか或いは被写界に人物の顔部画像が1つも存在しないとみなし(つまり判別結果はNOとみなし)、ステップS3に戻る。
ステップS11では、レジスタRGST1に登録された顔パターンとステップS5で記録された静止画ファイルのファイル名とを検出し、検出された顔パターンおよびファイル名と“0”を示すフレーム番号とをテーブルTBL1に記述する。ステップS11の処理が完了すると、ステップS3に戻る。
図13に示すステップS15では、動画記録処理の開始をI/F40に命令する。これによって、動画ファイルが記録媒体42に作成され、画像データがこの動画ファイルに蓄積されていく。ステップS17〜S19ではステップS7〜S9と同様の処理を実行し、ステップS9の判別結果がYESであればステップS21に進む一方、判別結果がNOであればステップS23に進む。
ステップS21では、レジスタRGST1に登録された顔パターン,ステップS5で記録された動画ファイルのファイル名,および動画像エリア32cに格納された画像データのフレーム番号を検出し、検出された顔パターン,ファイル名およびフレーム番号をテーブルTBL1に記述する。ステップS21の処理が完了すると、ステップS23に進む。
ステップS23では、ムービボタン28mvが再度操作されたか否かを判別する。判別結果がNOであればステップS17に戻り、判別結果がYESであればステップS25に進む。ステップS25では動画記録処理の終了をI/F40に命令する。この結果、動画像エリア32bからの画像データの読み出しが終了され、記録先の動画ファイルをクローズされる。ステップS25の処理が完了すると、ステップS3に戻る。
モード切り換えボタン28swによって再生モードが選択されかつ静止画ファイルが再生ファイルとして指定されると、CPU26は、再生タスクの下で記録媒体42に記録された最新の画像ファイルを指定し、指定された画像ファイルが静止画ファイルおよび動画ファイルのいずれであるかを判別する。
指定された画像ファイルが静止画ファイルであれば、CPU26は、指定された静止画ファイルを再生するべく、静止画再生処理をI/F40およびドライバ36に命令する。I/F40は、指定された静止画ファイルの画像データを記録媒体42から読み出し、読み出された画像データをメモリ制御回路30を通してSDRAM32の静止画像エリア32cに書き込む。
LCDドライバ36は、静止画像エリア34cに格納された画像データをメモリ制御回路32を通して読み出し、読み出された画像データに基づいてLCDモニタ38を駆動する。この結果、指定された静止画ファイルに格納された画像データに基づく静止画像がLCDモニタ38に表示される。
静止画再生処理が完了すると、上述と同様の顔認識処理が実行される。顔認識に成功すれば、顔認識処理によってレジスタRGST1に登録された顔パターンを参照して、後述する顔探索&ファイル指定処理が実行される。一方、顔認識に失敗するか或いは再生された静止画像に人物の顔部画像が1つも存在しなければ、送り/戻しボタン28frの操作が許可される。許可された送り/戻しボタン28frが操作されると、後続する画像ファイルまたは先行する画像ファイルが次に再生すべき画像ファイルとして指定される。
指定された画像ファイルが動画ファイルであれば、動画ファイルの指定態様に応じて異なるフレームが再生フレームとして指定される。つまり、動画ファイルが再生モードの選択に応答して指定された最新の画像ファイルであるか、或いは送り/戻しボタン28frの操作によって指定された画像ファイルであれば、先頭フレームが再生フレームとして指定される。
これに対して、指定された動画ファイルが顔探索&ファイル指定処理によって指定された画像ファイルであれば、顔探索&ファイル指定処理において作成されたテーブルTBL2(後述)を参照して再生フレームが指定される。再生フレームは、指定された動画ファイルに対応してテーブルTBL2に記述されたフレーム番号のフレームに相当する。
再生フレームが指定されると、この再生フレームの画像データを再生するべく、1フレーム再生処理をI/F40に命令する。I/F40は、指定フレームの画像データを動画ファイルから読み出し、読み出された画像データをメモリ制御回路30を通してSDRAM32の動画像エリア32bに書き込む。LCDドライバ36は、動画像エリア32bに格納された画像データをメモリ制御回路32を通して読み出し、読み出された画像データに基づいてLCDモニタ38を駆動する。この結果、指定フレームの画像がLCDモニタ38に表示される。
この状態で送り/戻しボタン28frが操作されると、後続する画像ファイルまたは先行する画像ファイルが次に再生すべき画像ファイルとして指定される。これに対して、再生ボタン28rpが操作されると、動画再生処理のために、再生フレームが順次更新され、上述の1フレーム再生処理が更新された再生フレームに対して順次実行される。この結果、動画像がLCDモニタ38に表示される。
再生フレームが動画ファイルの末尾フレームに達すると、再生画像は先頭フレームの静止画像に戻る。再生フレームが動画ファイルの末尾フレームに到達する前に一時停止ボタン28stpが操作されると、上述した顔認識処理が実行される。
顔認識に成功すれば、顔認識処理によってレジスタRGST1に登録された顔パターンを参照して、顔探索&ファイル指定処理が実行される。顔認識に失敗するか或いは再生静止画像に人物の顔部画像が1つも存在しなければ、一時停止ボタン28stpの操作が許可される。許可された一時停止ボタン28stpが操作されると、動画像の再生が再開される。
顔探索&ファイル指定処理は、顔認識処理によってレジスタRGST1に登録された顔パターンを参照して、次の要領で実行される。
まず、レジスタRGST1を形成する複数のカラムの中から注目カラムが指定され、注目カラムに登録された顔パターンがテーブルTBL1に記述された1または2以上の顔パターンの各々と照合される。ただし、テーブルTBL1を形成する複数のカラムのうち再生処理の対象となった画像ファイルに対応するカラムは照合処理の対象から除外される。
レジスタRGST1の注目カラムに記述された顔パターンと符合する1または2以上の顔パターンがテーブルTBL1から発見されれば、レジスタRGST1の注目カラムに記述された顔枠と、テーブルTBL1から発見された顔パターンを有する画像データのファイル名/フレーム番号とが、図14に示すテーブルTBL2の共通カラムに記述される。発見された顔パターンの数が“3”であれば、この3つの顔パターンにそれぞれ対応する3つのファイル名/フレーム番号が共通カラムに記述される。
こうして、再生画像に現れた1または2以上の顔部画像のうち符合条件に合致する顔部画像を囲う顔枠が、符合する顔パターンを有する画像データのファイル名/フレーム番号とともに抽出される。
したがって、図15(A)に示す被写界像が収められた静止画ファイル“DC001.STL”が再生されたとき、テーブルTBL2は図15(B)に示す要領で作成される。また、動画ファイル“DC001.MV”が再生され、図16(A)に示す15フレーム目の被写界像が表示された時点で動画再生が一時停止されたとき、テーブルTBL2は図16(B)に示す要領で作成される。
さらに、図17(A)に示す被写界像が収められた静止画ファイル“DC002.STL”が再生されたとき、テーブルTBL2は図17(B)に示す要領で作成される。また、動画ファイル“DC002.MV”が再生され、図18(A)に示す26フレーム目の被写界像が表示された時点で動画再生が一時停止されたとき、テーブルTBL2は図18(B)に示す要領で作成される。さらに、図19(A)に示す被写界像が収められた静止画ファイル“DC003.STL”が再生されたとき、テーブルTBL2は図19(B)に示す要領で作成される。
テーブルTBL2が完成するとテーブルTBL2上の1つのカラムが指定され、指定されたカラムに記述された顔枠に対応するようにカーソルCSがLCDモニタ38にOSD表示される。
カーソルCSは、図15(B)に示す1番目のカラムが指定されたとき図15(A)に示す要領でOSD表示され、図16(B)に示す2番目のカラムが指定されたとき図16(A)に示す要領でOSD表示され、図17(B)に示す1番目のカラムが指定されたとき図17(A)に示す要領でOSD表示される。また、カーソルCSは、図18(B)に示す2番目のカラムが指定されたとき図18(A)に示す要領でOSD表示され、図19(B)に示す1番目のカラムが指定されたとき図19(A)に示す要領でOSD表示される。
続いて、テーブルTBL2上で指定されたカラムに記述された画像ファイルの数がリンクファイル数として検出される。検出されたリンクファイル数が“2”以上であれば、リンクファイル数がLCDモニタ38にOSD表示される。リンクファイル数は、カーソルCSが図17(A)に示す人物F_Bを指向するとき、画面の左上に表示される。リンクファイル数は、カーソルCSが図19(A)に示す人物F_Bを指向するときにも、画面の左上に表示される。
この状態でカーソルボタン28csが操作されると、テーブルTBL2上のカラム指定が更新される。カーソルCSおよびリンクファイル数のOSD表示処理は、別のカラムに注目して実行される。
カーソルCSが所望の人物の指向している状態で決定ボタン28selが操作されると、テーブルTBL2上の指定カラムに記述された1または2以上のファイル名の1つがランダムに選択され、選択されたファイル名を有する画像ファイルが次に再生すべき画像ファイルとして指定される。
したがって、カーソルCSが図15(A)に示す人物F_Aを指向している状態で決定ボタン28selが操作されたときは、動画ファイル“DC002.MV”が次に再生すべき画像ファイルとして指定される。
また、カーソルCSが図16(A)に示す人物F_Cを指向している状態で決定ボタン28selが操作されたときは、動画ファイル“DC002.MV”が次に再生すべき画像ファイルとして指定される。
さらに、カーソルCSが図17(A)に示す人物F_Bを指向している状態で決定ボタン28selが操作されたときは、動画ファイル“DC001.MV”または静止画ファイル“DC003.STL”が次に再生すべき画像ファイルとして指定される。
また、カーソルCSが図18(A)に示す人物F_Aを指向している状態で決定ボタン28selが操作されたときは、静止画ファイル“DC001.STL”が次に再生すべき画像ファイルとして指定される。
さらに、カーソルCSが図19(A)に示す人物F_Bを指向している状態で決定ボタン28selが操作されたときは、動画ファイル“DC001.MV”または静止画ファイル“DC002.STL”が次に再生すべき画像ファイルとして指定される。
なお、動画ファイルが次に再生すべき画像ファイルとして指定されたときは、指定された動画ファイルのファイル名に付随してテーブルTBL2に記述されたフレーム番号のフレームが再生処理の対象となる。
再生モードが選択されている状態でファイル削除ボタン28delが操作されると、現時点で指定されている画像ファイルが記録媒体42から削除される。テーブルTBL1の記述は、削除された画像ファイルに対応して部分的に削除される。これによって、削除された画像ファイルのファイル名/フレーム番号が誤ってテーブルTBL2に記述される事態が回避される。
CPU26は、再生モードが選択されたとき、図20〜図24に示す再生タスクおよび図25に示すファイル管理タスクを含む複数のタスクを並列的に実行する。なお、これらのタスクに対応する制御プログラムも、フラッシュメモリ46に記憶される。
図20を参照して、ステップS31では記録媒体42に記録された最新の画像ファイルを指定し、ステップS33ではフラグFLGを“0”に設定する。ステップS35では、指定された画像ファイルが静止画ファイルおよび動画ファイルのいずれであるかを判別する。指定された画像ファイルが静止画ファイルであればステップS37に進み、指定された画像ファイルが動画ファイルであればステップS53に進む。
ステップS37では、指定された静止画ファイルに対して静止画再生処理を実行する。この結果、指定された静止画ファイルに格納された画像データに基づく静止画像がLCDモニタ38に表示される。ステップS39では図10に示すステップS7と同様の顔認識処理を実行し、ステップS41では図10に示すステップS9と同様の判別処理を実行する。顔認識に成功すれば、ステップS45に進む。顔認識に失敗するか或いは再生静止画像に人物の顔部画像が1つも存在しなければ、ステップS47に進む。
ステップS45では、顔探索&ファイル指定処理を実行する。この処理が実行されることで、レジスタRGST1に登録された顔パターンに符合する顔パターンがテーブルTBL1から検出され、検出された顔パターンを有する画像データのファイル名/フレーム番号がテーブルTBL2に記述され、そしてテーブルTBL2に記述されたファイル名を有する画像ファイルが次に再生すべき画像ファイルとして指定される。
なお、レジスタRGST1に登録された顔パターンに符合する顔パターンがテーブルTBL1から1つも検出されなければ、テーブルTBL2はクリアなままである。このときは、符合顔パターンが検出されなかったことを表明するべく、変数ERRORが“1”に設定される。
ステップS43の処理が完了すると、変数ERRORが“0”であるか否かをステップS44で判別する。判別結果がNOであればステップS47に進み、判別結果がYESであればステップS45でフラグFLGを“1”に設定してからステップS35に戻る。
ステップS47では、送り/戻しボタン28frが操作されたか否かを判別する。判別結果がNOからYESに更新されるとステップS49に進み、後続する画像ファイルまたは先行する画像ファイルを次に再生すべき画像ファイルとして指定する。ステップS51ではフラグFLGを“0”に設定し、設定処理が完了するとステップS35に戻る。
なお、フラグFLGは、再生すべき画像ファイルの指定態様を識別するためのフラグであり、顔探索&ファイル指定処理によって指定された画像ファイルに対応して“1”に設定され、再生モードの選択に応答して指定された画像ファイルまたは送り/戻しボタン28frの操作によって指定された画像ファイルに対応して“0”を示す。
ステップS53では、フラグFLGの状態を判別する。フラグFLGが“0”であれば、ステップS55で変数Kを“1”に設定する。一方、フラグFLGが“1”であれば、ステップS57に進み、顔探索&ファイル指定処理において作成されたテーブルTBL2を参照して変数Kを設定する。変数Kは、指定された動画ファイルに対応してテーブルTBL2に記述されたフレーム番号に相当する。
ステップS59では、指定された動画ファイルに格納されたKフレーム目の画像データに1フレーム再生処理を施す。この結果、Kフレーム目の画像がLCDモニタ38に表示される。フラグFLGが“0”であれば、先頭フレーム(フレーム番号=1)の画像がLCDモニタ38に表示される。一方、フラグFLGが“1”であれば、テーブルTBL2に記述されたフレーム番号に対応するフレームの画像がLCDモニタ38に表示される。
ステップS61では再生ボタン28rpが操作されたか否かを判別し、ステップS63では送り/戻しボタン28frが操作されたか否かを判別する。ステップS63でYESであれば、ステップS71〜S73で上述のステップS49〜S51と同様の処理を実行する。ステップS73の処理が完了すると、ステップS35に戻る。
ステップS61でYESであれば、ステップS65で変数Kをインクリメントし、ステップS67でステップS59と同様の1フレーム再生処理を実行する。続くステップS69では、変数Kが変数Kmax(Kmax:指定された動画ファイルの末尾フレーム番号)に達したか否かを判別する。判別結果がYESであればステップS55に戻り、判別結果がNOであればステップS75に進む。
ステップS75では一時停止ボタン28stpが操作されたか否かを判別し、判別結果がNOであればステップS65に戻る一方、判別結果がYESであればステップS77に進む。ステップS77〜S79では上述のステップS39〜S41と同様の処理を実行し、ステップS79の判別結果がYESであればステップS81〜S83で上述のステップS43〜S45と同様の処理を実行する。ステップS83の処理が完了すると、ステップS35に戻る。
ステップS79の判別結果がNOであれば、一時停止ボタン28stpが再度操作されたか否かをステップS85で判別する。判別結果がNOからYESに更新されると、ステップS65に戻る。
図20に示すステップS43および図22に示すステップS81の顔探索&ファイル指定処理は、図23〜図24に示すサブルーチンに従って実行される。
まずステップS91で、テーブルTBL2をクリアし、変数ERRORを“0”に設定し、そして変数Lを“1”に設定する。ステップS93では、レジスタRGST1のL番目のカラムに登録された顔パターンをテーブルTBL1に記述された1または2以上の顔パターンの各々と照合する。ただし、テーブルTBL1を形成する複数のカラムのうち現時点で再生されている画像ファイルのファイル名が記述されたカラムは照合処理の対象から除外される。
ステップS95では、レジスタRGST1のL番目のカラムに記述された顔パターンと符合する1または2以上の顔パターンがテーブルTBL1から発見されたか否かを判別する。判別結果がYESであればステップS97に進み、判別結果がNOであればステップS99に進む。
ステップS97では、レジスタRGST1のL番目のカラムに記述された顔枠と、テーブルTBL1から発見された顔パターンを有する画像データのファイル名/フレーム番号とをテーブルTBL2の共通カラムに記述する。発見された顔パターンの数が“3”であれば、この3つの顔パターンにそれぞれ対応する3つのファイル名/フレーム番号が共通カラムに記述される。ステップS97の処理が完了すると、ステップS99に進む。
ステップS99では、変数Lが変数Lmax(Lmax:レジスタRGST1に登録された顔パターンの総数)に達したか否かを判別する。判別結果がNOであれば、ステップS101で変数Lをインクリメントし、その後にステップS93に戻る。判別結果がYESであれば、テーブルTBL2がクリア状態であるか否かをステップS102で判別する。判別結果がYESであれば、ステップS103で変数ERRORを“1”に設定し、上階層のルーチンに復帰する。一方、判別結果がNOであれば、ステップS104で変数Mを“1”に設定し、ステップS105に進む。
ステップS105では、テーブルTBL2のM番目のカラムに記述された顔枠に対応してカーソルCSをLCDモニタ38にOSD表示する。ステップS107では、テーブルTBL2のM番目のカラムに記述された画像ファイルの数をリンクファイル数として検出し、検出されたリンクファイル数が“2”以上であるか否かを判別する。判別結果がNOであればそのままステップS111に進み、判別結果がYESであればステップS109に進む。ステップS109では、リンクファイル数をLCDモニタ38にOSD表示し、その後にステップS111に進む。
ステップS111ではカーソルボタン28csが操作されたか否かを判別し、ステップS115では決定ボタン28seが操作されたか否かを判別する。ステップS111でYESであればステップS113で変数Mを更新し、その後にステップS105に戻る。ステップS115でYESであればステップS117に進み、テーブルTBL2のM番目のカラムの記述に対応する1または2以上の画像ファイルの1つをランダムに選択する。ステップS117の処理が完了すると、上階層のルーチンに復帰する。
図25を参照して、ステップS121ではファイル削除ボタン28delが操作されたか否かを判別し、ステップS123では現時点の動作モードが再生モードであるか否かを判別する。いずれの判別結果もYESであればステップS125に進み、現時点で再生されている画像ファイルを記録媒体42から削除する。続くステップS127では、削除された画像ファイルに対応する記述をテーブルTBL1から削除する。削除処理が完了すると、ステップS121に戻る。
以上の説明から分かるように、カメラモードが選択されたとき、CPU26は、記録媒体42に記録される画像データから顔パターンを検出する(S7, S17)。検出された顔パターンは、顔パターンが現れた画像データを収める画像ファイルのファイル名および顔パターンが現れた画像データのフレーム番号とともに、テーブルTBL1に記述される(S11, S21)。記録媒体42に記録された画像データの一部は、再生モードが選択されたとき、CPU26によって再生される(S37, S59, S67)。CPU26は、再生された画像データに現れた顔パターンをテーブルTBL1に記述された顔パターンと照合して、符合条件を満足する他の画像データを記録媒体42から探索する(S39, S77, S93)。発見された画像データを収める画像ファイルのファイル名および発見された画像データのフレーム番号は、テーブルTBL2に記述される(S97)。決定ボタン28selが操作されると、CPU26は、テーブルTBL2の記述によって特定される画像データを再生対象として指定する(S115~S117)。
したがって、テーブルTBL1を作成する処理は、一部の画像データの再生処理に先立って実行される。また、符合条件を満足する他の一部の画像データを探索する処理は、再生された一部の画像データに現れた顔パターンをテーブルTBL1に記述された顔パターンと照合することによって探索される。これによって、再生された一部の画像データに関連する他の一部の画像データの探索性能が向上する。
なお、この実施例では、特定物体として人物の顔部を想定しているが、これに代えて、オレンジ色のバスケットボールや茶色の犬の顔部などの物体を想定するようにしてもよい。
また、この実施例では、カーソルCS(図15(A)〜図19(A)参照)が所望の人物の指向している状態で決定ボタン28selが操作されると、テーブルTBL2(図15(B)〜図19(B)参照)上の対応するカラムに記述された1または2以上のファイル名の1つがランダムに選択され、選択されたファイル名を有する画像ファイルが次に再生すべき画像ファイルとして指定される。しかし、このようなランダムなファイル選択機能に代えて、操作者の操作に従う画像ファイルを次に再生すべき画像ファイルとして指定する機能を設けるようにしてもよい。