図1は、本発明に係る画像再生装置の一実施例の概略構成ブロック図である。
画像再生装置100は、着脱自在なメモリカード等からなる記録媒体120から動画像を再生し、再生画像に重畳して表示する被写体軌跡により再生を制御するできる。記録媒体120に記録される動画像は、例えば、撮影画像(動画像)をMPEG(Moving Picture Expert Group)方式等の標準的な方式で符号化された符号化画像データである。画像再生装置100は、動画を撮影記録可能な撮像装置に組み込まれる。
101は、画像再生装置100のメインメモリとなるDRAM(Dynamic Random Access Memory)であり、記録媒体120から読み出した符号化画像データ、及び復号化された画像データ等を一時保持可能である。
102は、DRAM101へのアクセスするためのデータバスである。
103は、DRAM101上に一時保持される画像データから被写体領域を検出する被写体検出部である。
104は、被写体検出部103が検出した被写体画像から特徴情報を抽出し、登録されている特徴情報と比較し、類似度を算出することで被写体を認証判定する被写体認証部である。
105は、液晶パネル等の表示装置に一体化されたタッチパネルであり、画面にユーザが接触することで接触位置情報を検出し出力する。タッチパネル105は、抵抗膜方式、静電容量方式、表面弾性波方式、赤外線方式、電磁誘導方式、画像認識方式又は光センサ方式等の様々な方式のタッチパネルのうちいずれの方式のものでもよい。静電容量式タッチパネルの場合、直接の接触を必要とせず、タッチパネル面への近接であっても、接触と検知できる。
106は、DRAM101に一時保持される符号化画像データを復号化し、画像データ(再生画像データ)をDRAM101に出力するデコーダ(復号化手段)である。
107は、画像再生装置100に装着されている記録媒体120から符号化画像データをDRAM101に読み込む可能なメディアインターフェース(I/F)である。
108は、CPU109からブロック101〜107への制御信号を伝送する制御バスである。
109は、画像再生装置100全体を制御するCPUである。
110は、CPU109とROM111及びRAM112とを接続するプログラムバスである。
111は、CPU109で動作するプログラムが格納されているROM(Read Only Memory)である。112は、CPU109の主メモリ及びワークメモリとなるRAM(Random Access Memory)である。
ROM111には、以下に説明する処理を実現するプログラムが格納されており、CPU109は、適宜にこれらのプログラムを実行する。
再生軌跡情報生成処理は、通常動画再生動作時に、デコーダ106によって復号化された画像データから、被写体検出部103を用いて被写体位置を検出し、再生軌跡情報を生成する。
再生軌跡描画処理は、再生軌跡情報を用いて、DRAM101上に存在する表示再生画像に軌跡を描画する。
軌跡情報解析処理は、再生軌跡情報を解析し、再生軌跡情報が存在しない動画像のシーンを検出する。
予測軌跡情報生成処理は、軌跡情報解析処理によって検出された動画像のシーンから予め復号化するシーンを抽出し、抽出されたシーンをデコーダ106によって復号化させ、被写体検出部103によって検出された位置情報から予測軌跡情報を生成する。予測軌跡の生成対象となるシーンは、例えば、その動画像の、まだ再生に至らない将来のシーンである。
予測軌跡情報補間処理は、軌跡情報解析処理の結果と予測軌跡情報から軌跡がないシーンを検出し、前後の軌跡情報から軌跡がないシーンの軌跡情報を補間する。
予測軌跡描画処理は、予測軌跡情報を用いて、DRAM101上に存在する表示再生画像に軌跡を描画する。
フレームインアウト検出処理は、再生軌跡情報生成処理、および予測軌跡情報生成処理を実行中に、被写体がフレームアウト及びフレームインしたシーンを検出する。
CPU109(上で動作するプログラム)は、タッチパネル105に対する図2に示すユーザ操作/状態を検出する操作判定機能を有する。タッチパネル105は、ペンや指が触れている位置座標を、データバス108を介してCPU109に通知する。CPU109は、タッチパネル105から通知された位置情報に基づいてタッチパネル105に対する上記の操作/状態を判定する。タッチパネル105上で移動するペンや指の移動方向についても、CPU109は、位置座標の変化に基づいて、タッチパネル105上の垂直成分・水平成分毎に判定できる。
図2(1)に示すように、タッチパネル105を指やペンで触れる操作を、「タッチオン」と称する。図2(2)に示すように、タッチパネル105を指やペンで触れたまま移動する操作を、「ムーブ」と称する。図2(3)に示すように、タッチパネル105へ触れていた指やペンを離す操作を、「タッチアップ」と称する。図2(4)に示すように、タッチパネル105に何も触れていない状態を、「タッチオフ」と称する。タッチパネル105上をタッチダウンから一定のムーブを経てタッチアップしたとき、ストロークを描いたこととする。図2(5)に示すように、素早くストロークを描く操作を、「フリック」と呼ぶ。フリックは、タッチパネル105上に指を触れたままある程度の距離だけ素早く動かして、そのまま離すといった操作であり、言い換えればタッチパネル105上を指ではじくように素早くなぞる操作である。所定距離以上を所定速度以上でムーブしたことが検出され、そのままタッチアップが検出されると、CPU109は、フリックが行われたと判定する。また、所定距離以上を所定速度未満でムーブしたことが検出された場合、CPU109は、ドラッグが行われたと判定する。
静電容量式タッチパネルの場合、指などが実際にパネル面に接触していなくても、ある程度パネル面に近づくことで、タッチ状態と検出することができる。このようなケースも、以下の説明におけるタッチパネル105に対するタッチ操作ないしユーザ操作と同視できることは明らかである。
図3は、再生画像から被写体を検出し、検出された被写体の位置情報を保持しながら再生する被写体検出動画再生のイメージ図である。図3に示す例では、動画像のシーンとしてScene0〜Scene7があり、再生シーン時間情報はそれぞれ以下のようになっている。すなわち、
同じ被写体AがScene0〜Scene5に含まれている。
図3に示す動画像に対して、被写体を検出しつつ動画再生を行ったとする。Scene0を再生時に被写体Aが検出される。CPU109は、被写体Aに対応する被写体再生軌跡データAとして、その時の位置情報(x0,y0)と再生時間情報00:00を追記する。
CPU109は、Scene1を再生時に検出された被写体がすでに登録されている被写体Aと同一かどうかを判断する。被写体Aと同一であるので、CPU109は、Scene1での検出位置情報(x1,y1)と再生時間情報00:01を被写体再生軌跡データAに追記する。CPU109は、Scene2からScene7に対して同様に、被写体の検出と同一性の判定、軌跡データの登録を実行する。
図3に示す例に対して、被写体再生軌跡データAは、以下のような情報となる。すなわち、
Scene6で被写体Aが検出されなくなるので、フレームアウトマーカとして、検出位置情報(−1,−1)と、その時の再生時間情報00:06を追記する。Scene7では被写体が検出されないので、検出位置情報と再生時間情報は追記されない。
図4は、図3で説明した被写体検出動画再生の動作フローチャートである。CPU109は、ユーザからの再生指示をタッチパネル105の出力により検出すると、記録媒体120に記録されている符号化画像データをメディアI/F107を介してDRAM101に読み込む(S401)。
デコーダ106は、読み込まれた符号化画像データをデコードし、生成した再生画像データをDRAM101に書き込む(S402)。
被写体検出部103は、S402で生成された再生画像データに所望の被写体が存在するかを検出する(S403)。例えば、被写体検出モードが顔検出だった場合、被写体検出部103は、画像データから輪郭情報を抽出し、その輪郭情報と、一般的多数の顔画像から標準化した顔特徴情報とを比較し、一定以上の合致率で一致する領域があるかを検出する。
CPU109は、S403で被写体が検出されたかを判断する(S404)。
S404でNoの場合、CPU109は、S408に移行する。
S404でYesの場合、CPU109は、既に検出されている被写体と同一かどうかを判断する(S405)。例えば、直前の画像で検出された被写体の位置とS403で検出された被写体の位置が所定距離以内であれば、同一被写体と判断する方法がある。又は、直前の画像で検出された被写体の輪郭情報とS403で抽出した輪郭情報とを比較し、一定以上の確度で一致した場合に同一被写体と判断する。
S405でYesの場合、CPU109は、S407に移行する。
S405でNoの場合、CPU109は、新規被写体としてこの被写体のための被写体再生軌跡データを登録する(S406)。この被写体再生軌跡データは、S403で検出した被写体の輪郭情報と検出位置情報と検出位置に応じた再生シーン時間情報とを登録可能なデータ構造であって、位置情報と再生シーン時間を時系列に追記可能なデータ構造を有している。S406では、CPU109は、被写体再生軌跡データを登録する際に、S403で検出した被写体の輪郭情報を登録する。
S405でNoの場合、CPU109は、S406で被写体再生軌跡データを登録した後にS403で検出された被写体位置情報と再生シーン時間情報を該当する被写体再生軌跡データに追記する(S407)。
S404でNoの場合又はS407の後、CPU109は、S402で生成したDRAM101の再生画像データを読み込み、図示しない表示部に表示する(S408)。
CPU109は、タッチパネル105に対するユーザからの再生ポーズ指示の操作受け付けの有無を判断する(S409)。
S409でYesの場合、CPU109は、再生ポーズ動作に遷移する。
S409でNoの場合、CPU109は、タッチパネル105に対するユーザからの再生終了指示の操作受け付けの有無を判断する(S410)。
S409でNoの場合、CPU109は、S401へ戻る。S409でYesの場合、CPU109は、動画再生を終了する。
CPU109は、ステップS401〜S410の動作を動画像の再生フレームレートに応じて繰り返すことで、被写体検出動画再生を実現する。
図5は、ユーザが画面内の被写体を直接つかんで動かすドラッグ操作による動画像の早送り再生と巻き戻し再生のイメージ図である。
図5(1)は、Scene5の再生表示例を示す。Scene5では被写体Aが検出され、被写体Aは、位置(x5,y5)に存在する。
ユーザから再生ポーズ指示があると、被写体再生軌跡データAが存在するので、CPU109は、図5(2)に示すように、被写体再生軌跡データAに登録されている位置情報(x0,y0)〜(x5,y5)を使って被写体Aの軌跡を描画する。
ここで、図5(3)に示すように、ユーザが、Scene5における被写体検出位置(x5,y5)を、タッチパネル105を用いて選択したとする。
ユーザが被写体Aの選択を解除することなく、図5(4)に示すように、タッチパネル105のタッチ位置を位置(x1,y1)に移動したとする。すると、CPU109は、位置(x1,y1)に対応した再生時間情報を被写体再生軌跡データAから検索し、対応する再生時間00:01であるScene1を再生表示する。
図6は、再生ポーズ状態での動作フローチャートである。S409でYesの場合に、CPU109は、再生ポーズ状態に遷移して、図6に示すフローを実行する。
CPU109は先ず、S406において登録される被写体再生軌跡データが存在するかを判断する(S601)。S601でNoの場合、CPU109は、S610に移行する。
S601でYesの場合、CPU109は、被写体再生軌跡データの検出位置情報を使って被写体の軌跡データを生成し、DRAM101上のOSD(On Screen Display)などの描画スクリーンエリアに描画する(S602)。例えば、被写体再生軌跡データの検出位置情報を描画スクリーンエリアの相対する座標にプロットし、プロットされた座標を直線又は曲線で結ぶことで軌跡を描画する。この描画処理は、CPU109の再生軌跡描画処理によって実行される。
CPU109は、ユーザが被写体をタッチパネル105によって選択したか否かを判断する(S603)。S603でNoの場合、CPU109は、S609に移行する。S603でYesの場合、CPU109は、タッチパネル105の出力により、ユーザが現在タッチしている位置を検出する(S604)。
CPU109は、現在表示している画像データ内の被写体位置とS604で検出した位置が一致しているか否かを判断する(S605)。S605でYesの場合、CPU109は、S609に移行する。
S605でNoの場合、CPU109は、S604で検出した現在位置に対応する被写体位置情報が被写体再生軌跡データ内に存在するか否かを判断する(S606)。このとき、現在位置と一致する情報が被写体再生軌跡データ内に存在しなくとも、画像データ上の座標距離が所定範囲内であれば、一致と判断する。S606でNoの場合、CPU109は、S609に移行する。
S606でYesの場合、CPU109は、一致した被写体位置情報に応じた再生シーンに対応する符号化画像データを記録媒体120から読み込む(S607)。
CPU109は、S607で読み込んだ符号化画像データをデコーダ106にデコードさせる(S608)。これにより、一致した被写体位置情報に応じた再生シーンの画像データを取得できる。
CPU109は、S602で軌跡データを描画した描画スクリーンデータを画像データに重畳又は合成処理することで表示用画像データを生成し、この表示用画像データを表示部に表示する(S609)。軌跡データを合成又は重畳すべき画像データは、S608でデコード処理した場合は、S608で生成した画像データであり、S608でデコード処理していない場合は、現在表示出力している画像データである。
CPU109は、ユーザが再生ポーズ動作の終了指示をしたか否かを判断する(S610)。S610でNoの場合、CPU109は、S601に戻る。S610でYesの場合、CPU109は、図6に示すフローを終了する。
図7は、本実施例による予測軌跡表示のイメージ図である。図7(1)は、Scene0から再生を開始して、Scene1を再生表示している状態を示す。Scene1における被写体Aが検出され、被写体Aが位置(x1,y1)に存在している。
図7(1)に示す状態で、ユーザが再生停止(ポーズ)をCPU109に指示したとする。被写体再生軌跡データAが存在するので、CPU109は、図7(2)に示すように、被写体再生軌跡データAに登録されている検出位置情報から被写体Aの軌跡を生成して描画する。このとき、被写体再生軌跡データAには、Scene0からScene1までの再生軌跡情報が格納されており、以下のような内容になっている。すなわち、
図7(2)に示す状態では、被写体再生軌跡データには、Scene0とScene1の検出位置情報が格納されているので、CPU109は、これらの検出位置情報に基づき軌跡を描画する。
CPU109は、再生ポーズ中に、未再生のシーンの軌跡を描画するために予測軌跡情報生成処理を実行する。
まず、CPU109はデコーダ106に指示して、被写体Aがフレームアウトするシーンを検出するために、未再生のシーンから所定時間以内のフレームのうち通常再生より間引いたシーンを早送り方向にデコードさせる。例えば、Scene2を間引いてScene3をデコードし、被写体検出部103が、Scene3で被写体を検出する。Scene3で被写体位置(x3,y3)が検出されるので、CPU109は、位置(x3,y3)を被写体再生軌跡データAに追記する。同様に、Scene4を間引いてScene5をデコードし、被写体検出部103が、Scene5で被写体を検出する。Scene5で被写体位置(x5,y5)が検出されるので、CPU109は、位置(x5,y5)を被写体再生軌跡データAに追記する。
次に、Scene7をデコードし、被写体検出部103が、Scene7で被写体を検出しない。被写体はScene5で検出されるが、Scene7では検出されないので、CPU109は、Scene5をフレームアウト直前のシーンと認識する。CPU109は、Scene7の再生時間情報の欄にフレームアウトマーカを追記し、デコード処理を終了する。
この状態での被写体再生軌跡データは以下となる。すなわち、
デコードしなかったScene2、Scene4、Scene6について説明する。CPU109は、被写体Aに対する予測軌跡データAPを生成し、被写体再生軌跡データAを用いて、Scene2とScene4での被写体Aの予測位置を格納する。Scene6については、フレームアウトマーカの直前シーンであるScene5が被写体検出最終シーンとなるので、予測位置データは作成されない。
この時点での被写体予測軌跡データAPは以下のようになる。すなわち、
図6(3)は、このようにして得られた予測軌跡情報生成処理後の被写体再生軌跡データAを用いた再生軌跡と、被写体予測軌跡データAPを用いた予測軌跡とを描画した結果を示す。再生軌跡と予測軌跡は、互いに異なる線形状又は色で表現するのが好ましい。図6(3)に示す例では、再生軌跡を実線で描画し、予測軌跡を破線で描画している。
ユーザが、図7(4)に示すように、Scene1における被写体検出位置(x1,y1)をタッチパネル105上で選択し、タッチパネル105の接触(現在)位置を位置(x5,y5)に移動したとする。CPU109は、移動後の接触位置(x5,y5)に対応した再生時間情報を被写体再生軌跡データA及び被写体予測軌跡データAPから検索する。接触位置(x5,y5)に対応する再生時間は00:05でありScene5に対応するので、CPU109は、Scene5以降を再生表示する。
図8は、早送り又は巻き戻し再生の場合の予測軌跡生成描画処理の動作フローチャートである。
CPU109は、被写体再生軌跡データにフレームアウトマーカが存在するか否かを判断する(S801)。
S801でYesの場合、CPU109は、予測軌跡表示の動作を終了する。
S801でNoの場合、CPU109は、被写体予測軌跡データを生成する(S802)。
S802に続いて、CPU109は、デコーダ106に通常再生時よりフレームを間引いたデコードレートでデコードを実行させる(S803)。すなわち、デコーダ106は、一部のシーンを間引き、残ったシーンをデコードする。
CPU109は、被写体検出部103に、S803でデコードされた画像に被写体が存在するかを検出させる(S804)。
S804で被写体が検出された場合、CPU109は、検出された位置情報とシーンの再生時間情報を被写体再生軌跡データに追記する(S805)。
CPU109は、S805で追記された被写体再生軌跡データを再生軌跡描画処理に適用して再生軌跡を描画し、現在再生表示している画像に合成又は重畳して表示用画像データを生成する(S806)。CPU109は、タッチパネル105を装備する表示部に表示する。図7に示す例では、再生軌跡描画処理は、再生軌跡を実線で描画する。
CPU109は、S803で間引かれてデコードされなかったシーンの被写体位置を被写体再生軌跡データから被写体位置情報補間処理により算出し、被写体予測軌跡データに追記する(S807)。
予測軌跡の算出方法を説明する。間引かれたフレーム数をmとする。S805で被写体再生軌跡データに追記したフレームをF(n)とし、その直前に追記されているフレームをF(n−m)とする。フレームF(n)での被写体検出位置を(x(n),y(n))とし、フレームF(n−m)での被写体検出位置を(x(n−m),y(n−m))とする。間引かれたシーンは、F(n−m+1)からF(n−1)となり、各フレームの被写体予測位置は、以下のように算出される。
CPU109は、S807で追記更新された被写体予測軌跡データを予測軌跡描画処理により描画し、現在表示している画像に合成して表示する(S808)。図7に示す例では、予測軌跡描画処理は、予測軌跡描画を破線で描画する。
S804で被写体が検出されなかった場合、CPU109は、S803でデコードしたシーンの再生時間情報を用いて被写体再生軌跡データにフレームアウトマーカを追記する(S809)。
S808およびS809の処理後、CPU109は、S801に戻る。
本実施例では、ステップS803で所定フレームを間引いた間隔でデコード処理をおこなったが、動画圧縮のMPEG方式におけるイントラフレーム(フレーム内符号化フレーム)のみをデコードするようにしてもよい。又は、再生表示のフレーム間隔よりも広いフレーム間隔のフレーム又はシーンを予測軌跡生成の対象とする。
本実施例では、ステップS804で被写体のフレームアウトを検知し予測軌跡の生成を終了したが、現在再生表示しているシーンから所定フレームまでの範囲に対して予測軌跡の生成を行ってもよい。
再生軌跡と予測軌跡を実線と破線で区別したが、その表示色で区別しても良いことはいうまでもない。
ユーザが被写体を選択しているか否かを判断せずに予測軌跡データを生成したが、ユーザによる被写体の選択に応じて予測軌跡データの生成を開始してもよい。
被写体検出部103により検出される被写体に予測軌跡データを生成したが、被写体検出部103で検出される被写体を被写体認証部104で被写体認証し、認証された被写体のみに予測軌跡データ生成処理を適用しても良い。
図9は、再生ポーズ状態で予測軌跡を表示した後に、通常再生し、再度再生ポーズ状態にした場合の、再生軌跡データと予測軌跡データを更新する処理のイメージ図である。
図9(1)は、Scene0から再生を開始し、Scene1を再生表示している状態を示す。このとき、Scene1で被写体Aが検出され、被写体Aは位置(x1,y1)に存在する。
ユーザから再生ポーズ指示があると、CPU109は、被写体再生軌跡データAが存在するので、図9(2)に示すように、被写体再生軌跡データAに登録されている検出位置情報から被写体Aの軌跡を描画する。このとき、被写体再生軌跡データAには、下記のように、Scene0からScene1までの再生軌跡情報が格納されている。すなわち、
図9(2)には、再生軌跡データAに基づき、Scene0とScene1の位置情報に基づく軌跡が描画される。
CPU109は、再生していないシーンの予測軌跡を描画するために、予測軌跡情報生成処理を実行する。
まず、CPU109は、被写体Aがフレームアウトするシーンを検出するために、早送り方向にシーンを間引いてデコーダ106にデコードを行わせる。
例えば、Scene2のデコードを省略して、Scene3をデコードし、被写体検出を行う。Scene3では被写体Aが位置(x3,y3)で検出されるので、CPU109は、位置(x3,y3)を被写体再生軌跡データAに追記する。また、Scene4のデコードを省略して、Scene5をデコードし、被写体検出を行う。Scene5では被写体Aが位置(x5,y5)で検出されるので、CPU109は、位置(x5,y5)を被写体再生軌跡データAに追記する。次にScene7をデコードして被写体検出を行っても、Scene7では被写体が検出されない。被写体はScene5で検出されるが、Scene7では検出されないので、CPU109は、Scene5をフレームアウト直前のシーンと認識する。従って、CPU109は、Scene7に対する再生時間情報の欄にフレームアウトマーカを追記し、デコード処理を終了する。
予測軌跡情報生成処理を終了した後の画面例を図9(3)に示す。図9(3)に示す状態での被写体再生軌跡データは以下となる。すなわち、
CPU109は、予測軌跡情報補間処理により、デコードしなかったScene2、Scene4、Scene6での被写体位置を、デコードしたシーンの位置情報から補間する。先ず、CPU109は、被写体Aに対する予測軌跡データAPを生成する。そして、CPU109は、被写体再生軌跡データAを用いてScene2とScene4での被写体Aの位置と再生時間を補間し、予測軌跡情報として予測軌跡データAPに格納する。Scene6については、フレームアウトマーカの直前シーンであるScene5が被写体検出最終シーンとなるので、予測軌跡データは作成されない。この時点での被写体予測軌跡データAPは、以下のようになる。すなわち、
CPU109は、予測軌跡情報生成処理後の被写体再生軌跡データAを用いて再生軌跡を描画し、被写体予測軌跡データAPを用いて予測軌跡を描画する。描画後の表示画像を図9(3)に示す。図9(3)では、両者を視覚的に識別できるように、再生軌跡は実線で描画され、予測軌跡は破線で描画されている。
次に、ユーザが、再生指示に応じて、図9(4)に示すように、Scene1からScene5までの再生を指示したとする。この指示によるScene1からScene5までの再生の間に、CPU109は、各シーンで被写体を検出し、被写体再生軌跡データAを各シーンでの再生軌跡情報で更新する。すなわち、被写体再生軌跡データAに未登録であったシーンScene2,Scene4の再生軌跡情報が、被写体再生軌跡データAに追記される。被写体再生軌跡データAに追記したシーンに対応する予測軌跡情報が、被写体予測軌跡データAPに存在する場合、CPU109は、被写体再生軌跡データAに追記したシーンに対応する予測軌跡情報を被写体予測軌跡データAPから削除する。ここでの説明例では、シーンScene2,Scene4の予測軌跡情報が被写体予測軌跡データAPから削除される。
Scene1からScene5までを通常再生した時点での、被写体再生軌跡データAと被写体予測軌跡データAPは以下のようになる。すなわち、
Scene5を再生表示中にユーザから再生ポーズ指示があると、CPU109は、図9(5)に示すように、被写体再生軌跡と被写体予測軌跡の描画処理を再度実行する。ただし、被写体予測軌跡データAPには予測軌跡情報が存在しないので、被写体再生軌跡データAに基づく軌跡のみが表示される。
図10は、被写体検出動画再生動作時に予測軌跡情報を破棄する処理の動作フローチャートである。
ユーザからの再生指示をタッチパネル105が検出すると、CPU109は、記録媒体120に記録されている符号化画像データをメディアI/F107を介してDRAM101に読み込む(S1001)。
デコーダ106が、DRAM101に読み込んだ符号化画像データをデコードし、得られた画像データ(再生画像データ)をDRAM101に書き込む(S1002)。
CPU109は、被写体検出部103にS1002で生成された画像データに所望の被写体を検出させる(S1003)。例えば、被写体検出モードが顔検出だった場合、被写体検出部103は、画像データから輪郭情報を抽出し、その輪郭情報と多数の顔画像から標準化した顔特徴情報とを比較し、マッチングする領域(被写体領域)を検出する。
CPU109は、被写体検出部103の検出出力により、S1003で被写体が検出されたかを判断する(S1004)。
S1004でNoの場合、CPU109は、S1008に移行する。
S1004でYesの場合、CPU109は、検出済みの被写体と同一かどうかを判断する(S1005)。検出済みの被写体との同一性を判断する方法として、例えば、直前の画像で検出された被写体の位置とS1003で検出された被写体の位置が所定距離以内であれば、同一被写体と判断する。又は、直前の画像で検出された被写体の輪郭情報とS1003で抽出した輪郭情報とを比較し、一致した場合に同一被写体と判断する。
S1005でYesの場合、CPU109は、S1007に移行する。
S1005でNoの場合、CPU109は、新規被写体として被写体再生軌跡データを新規登録する(S1006)。被写体再生軌跡データは、S1003で検出した被写体の輪郭情報、検出位置情報、及び検出位置に応じた再生シーン時間情報を登録可能であって、位置情報と再生シーン時間は時系列に追記可能なデータ構造を有している。
S1005でYesの場合、又はS1006の後、CPU109は、S1003で検出された被写体位置情報と再生シーン時間情報を、該当する被写体再生軌跡データに追記する(S1007)。
CPU109は、S1007の処理後に、S1004で検出された被写体に対して予測軌跡データが存在するか判断する(S1011)。
S1011でNoの場合、CPU109は、S1008に移行する。
S1011でYesの場合、CPU109は、予測軌跡データ内にS1002でデコードしたシーンに対応する予測軌跡位置情報が存在するか判断する(S1012)。
S1012でNoの場合、CPU109は、S1008に移行する。
S1012でYesの場合、CPU109は、S1002でデコードしたシーンに対応する予測軌跡位置情報を予測軌跡データから破棄し、S1008に移行する(S1013)。
S1004でNoの場合、S1011でNoの場合、S1012でNoの場合、又は、S1013の後、CPU109は、DRAM101に保持するS1002で生成した再生画像データを表示する(S1008)。
CPU109は、ユーザからの再生ポーズ指示をタッチパネル105が受けつけたかどうかを判断する(S1009)。
S1009でYesの場合、CPU109は、再生ポーズ動作に遷移する。
S1009でNoの場合、CPU109は、ユーザからの再生終了指示をタッチパネル105が受けつけたかどうかを判断する(S1010)。
S1009でNoの場合、CPU109はS1001に戻る。Yesの場合、CPU109は、図10に示すフローを終了する。
CPU109は、ステップS1001〜S1010の動作を動画像の再生フレームレートに応じて繰り返す。これにより、動画を再生しながら被写体を検出する被写体検出動画再生を実現する。
本実施例は、特定被写体がフレームアウトするシーンまでの早送りや、フレームインするシーンまでの巻き戻しをフリック操作により実現できる。以下、その動作を説明する。
図11A及び図11Bは、再生ポーズ動作において、ユーザが被写体を選択した後にフリック操作を行った場合の動作フローチャートである。S1009でYesの場合に、CPU109は、再生ポーズ状態に遷移して、図11A及び図11Bに示すフローを実行する。
CPU109は先ず、S406において登録される被写体再生軌跡データが存在するかを判断する(S1101)。S1101でNoの場合、CPU109は、ユーザが再生ポーズ動作の終了を指示したか否かを判断する(S1115)。S1101でYesの場合、CPU109は、被写体再生軌跡データの検出位置情報を使って被写体の軌跡を算出し、DRAM101上の描画スクリーンエリアに当該軌跡を描画する(S1102)。例えば、被写体再生軌跡データに存在する検出位置情報を描画スクリーンエリアの相対する座標にプロットし、プロットされた座標を直線又は曲線で結ぶことで軌跡を描画できる。
CPU109は、ユーザがタッチパネル105へのタッチにより被写体を選択したかどうかを判断する(S1103)。S1103でNoの場合、CPU109は、軌跡データと画像データを合成表示する(S1114)。S1103でYesの場合、CPU109は、タッチパネル105の出力により、ユーザが現在タッチしている位置を検出する(S1104)。
CPU109は、タッチパネル105によって位置検出されたか否かを判断する(S1105)。S1105でYesの場合、CPU109は、現在表示している画像データ内の被写体位置とS1104でタッチパネル105によって検出された位置が一致しているかを判断する(S1106)。S1105でNoの場合、CPU109は、軌跡データと画像データを合成表示する(S1114)。
S1106でYesの場合、CPU109は、タッチパネル105への操作がフリック操作かどうかを判定する(S1107)。S1106でNoの場合、CPU109は、S1105でタッチパネル105によって検出された現在位置に対応する被写体位置情報が被写体再生軌跡データに存在するかどうかを判断する(S1108)。例えば、現在位置と一致する情報が被写体再生軌跡データ内に存在しなくとも、画像データ上の座標距離が所定範囲以内であれば一致と判断する。
S1108でNoの場合、CPU109は、軌跡データと画像データを合成表示する(S1114)。S1108でYesの場合、CPU109は、メディアI/F107を介して、一致した被写体位置情報に応じたシーンの符号化画像データを記録媒体120から読み込む(S1109)。デコーダ106は、S1109で記録媒体120から読み込んだ符号化画像データをデコードし、画像データ(再生画像データ)を生成する(S1113)。
S1107でNoの場合、CPU109は、軌跡データと画像データを合成表示する(S1114)。
S1107でYesの場合、CPU109は、タッチパネル105へのフリック操作の方向が被写体の移動方向かその逆方向かを判断する(S1110)。S1110で、被写体の進行方向とフリック方向が同方向である場合、CPU109は、選択中の被写体位置情報を参照し、被写体がフレームアウトする直前の時間に対応する符号化画像データを記録媒体120からDRAM101に読み込む(S1112)。なお、被写体がフレームアウトするシーンが存在しない場合、CPU109は、動画像の再生終了時間に対応する(最後のシーンの)符号化画像データを記録媒体120からDRAM101に読み込む。デコーダ106は、DRAM101に読み込んだ符号化画像データをデコードし、再生画像データを生成する(S1113)。
S1110で被写体の進行方向とフリック方向が同方向である場合、CPU109は、選択中の被写体位置情報を参照し、被写体がフレームインした直後の時間に対応する画像符号化データを記録媒体120からDRAM101に読み込む(S1111)。なお、被写体がフレームインするシーンが存在しない場合は、CPU109は、動画像の再生開始時間に対応する画像符号化データを記録媒体120からDRAM101に読み込む。デコーダ106は、画像符号化データをデコードし、画像データを生成する(S1113)。
CPU109は、S1102で軌跡を描画した描画スクリーンデータと、画像データとを合成し表示する(S1114)。合成対象となる画像データは、S1113でデコーダ106がデコード処理した場合はS1113で生成した画像データであり、そうでない場合は、現在表示出力している画像データである。
CPU109は、タッチパネル105の出力により、ユーザが再生ポーズ動作の終了を指示したか否かを判断する(S1115)。S1115でNoの場合、CPU109は、S1101へ戻る。S1115でYesの場合、CPU109は、図10のS1001に戻る。
図11A及び図11Bを参照して説明したフリック操作による動画像の早送り/巻き戻し再生を、図12に示すイメージ図を用いて説明する。
図12(1)はScene2の再生表示状態であり、Scene2における被写体Aは、位置(x2,y2)で検出される。
ユーザから再生ポーズ指示があると、被写体再生軌跡データAが存在するので、CPU109は、図12(2)に示すように、被写体再生軌跡データAに登録されている検出位置情報から被写体Aの軌跡を描画する(S1101〜S1102)。
ユーザは、図12(3)に示すように、Scene2における被写体検出位置(x2,2)をタッチパネル105上で選択したとする(S1103〜S1106)。
そして、ユーザが、図12(4)に示すように、被写体の選択を解除することなく、タッチパネル105上で被写体の移動方向にフリック操作したとする(S1107)。このフリック操作に応じて、CPU109は、図12(5)に示すように、被写体がフレームアウトする位置(x5,y5)に対応した再生位置情報を被写体再生軌跡データAから検索する(S1110〜S1112)。説明例では、CPU109は、対応する再生時間00:05であるScene5を再生表示する(S1113〜S1114)。
動画像の再生中に特定の被写体がフレームアウトするシーンまで早送りをしたい場合、又は特定の被写体がフレームインするシーンまで巻き戻しをしたいする場合、本実施例では、軌跡をなぞることなくフリック操作で済ませることができ、操作性が向上する。
フレームアウトした被写体の被写体再生軌跡データの保持可能数よりも多くの被写体がフレームアウトする場合の処理を説明する。説明上、画像再生装置100は、フレームアウトした被写体再生軌跡データを1つしか保持できないとする。
図16は説明例として画像例であり、動画像のシーンとしてScene0〜Scene6があり、それぞれの再生シーン時間情報および被写体検出は以下の表のようになっているとする。すなわち、
この動画像に対して被写体検出動画再生を行った場合、Scene0の再生時に、被写体検出部103は被写体A,Bを検出し、CPU109は、被写体Aの被写体再生軌跡データAと被写体Bの被写体再生軌跡データBを登録する。被写体再生軌跡データAには位置情報(x0,y0)と再生時間情報00:00が追記される。被写体再生軌跡データBには位置情報(xb0,yb0)と再生時間情報00:00が追記される。
CPU109は、Scene1の再生時に被写体検出部103が検出した被写体がすでに登録されている被写体A,Bと同一であると判定する。CPU109は、この判定に基づき、被写体再生軌跡データAにScene1での被写体Aの検出位置情報(x1,y1)と再生時間情報00:01を追記する。CPU109は更に、被写体再生軌跡データBにScene1での被写体Bの検出位置情報(xb1,yb1)と再生時間情報00:01を追記する。この結果、Scene2まで再生した後の、被写体再生軌跡データA,Bは、以下のような内容となる。すなわち、
Scene3〜Scene5では被写体Aは検出されるが、被写体Bはフレームアウトしているので検出されない。この場合、被写体再生軌跡データAにはそれぞれのSceneに応じた検出位置情報と再生時間情報が追記されるが、被写体再生軌跡データBにはこのようなデータは追記されない。Scene3において被写体Bは検出されないので、フレームアウトした被写体と判断され、CPU109は、被写体再生軌跡データBをフレームアウト被写体再生軌跡データとして再登録する。
Scene5まで再生した後の被写体再生軌跡データは、以下のような内容となる。すなわち、
Scene6では被写体が検出されないので、被写体Aがフレームアウトしたと判断される。フレームアウト被写体再生軌跡データは1つしか保持できないので、CPU109は、Scene5の段階で保持されていたフレームアウト被写体再生軌跡データを破棄し、被写体再生軌跡データAをフレームアウト被写体再生軌跡データとして再登録する。この結果、Scene6まで再生した後の被写体再生軌跡データは、以下のような内容となる。すなわち、
新たにフレームアウトした被写体が発生した場合に、当該被写体の被写体再生起動データをフレームアウト被写体再生起動データとして再登録する例を説明したが、認証された被写体の被写体再生起動データを優先するようにしてもよい。ここでも、説明上、画像再生装置100はフレームアウトした被写体再生軌跡データを1つしか保持できないとする。
図17は、この動作の説明例としての動画像の再生画像遷移例を示す。動画像のシーンとしてScene0〜Scene6があり、それらの再生シーン時間情報および被写体検出が、それぞれ以下のようになっているとする。すなわち、
この動画像に被写体検出動画再生動作を行ったとする。被写体検出部103は、Scene0の再生時に被写体A,Bを検出する。被写体認証部104は、検出された被写体A,Bが認証登録されている被写体かどうかを判定し、判定結果をCPU109に通知する。ここでは、被写体Aが認証登録された被写体であるとする。
CPU109は、被写体Aの被写体再生軌跡データAと、被写体Bの被写体再生軌跡データBを登録する。被写体Aが認証被写体なので、CPU109は、認証情報を被写体再生軌跡データAに追記する。被写体再生軌跡データAには被写体Aの検出位置情報(x0,y0)と再生時間情報00:00が追記され、被写体再生軌跡データBには被写体Bの検出位置情報(xb0,yb0)と再生時間情報00:00が追記される。
CPU109は、Scene1の再生時に被写体検出部103が検出した被写体がすでに登録されている被写体A,Bと同一であると判定する。CPU109は、この判定に基づき、被写体再生軌跡データAにScene1での被写体Aの検出位置情報(x1,y1)と再生時間情報00:01を追記する。CPU109は更に、被写体再生軌跡データBにScene1での被写体Bの検出位置情報(xb1,yb1)と再生時間情報00:01を追記する。この結果、Scene2まで再生した後の、被写体再生軌跡データA,Bは、以下のような内容となる。すなわち、
Scene3〜Scene5では被写体Bは検出されるが、被写体Aはフレームアウトしているので検出されない。この場合、被写体再生軌跡データBにはそれぞれのSceneに応じた検出位置情報と再生時間情報が追記されるが、被写体再生軌跡データAにはこのようなデータは追記されない。Scene3において被写体Aは検出されないので、フレームアウトした被写体と判断され、CPU109は、被写体再生軌跡データAをフレームアウト被写体再生軌跡データとして再登録する。
Scene5まで再生した後の被写体再生軌跡データは、以下のような内容となる。すなわち、
Scene6では被写体が検出されないので、被写体Bがフレームアウトしたと判断される。フレームアウト被写体再生軌跡データは1つしか保持できないので、CPU109は、Scene5の段階で保持されていたフレームアウト被写体再生軌跡データに認証被写体情報が含まれているかどうかを調べる。現在のフレームアウト被写体再生軌跡データは、被写体再生軌跡データAを再登録したものであるので、認証被写体情報を含む。この場合、CPU109は、現在のフレームアウト被写体再生軌跡データを保持し続け、被写体再生軌跡データBを破棄する。
この結果、Scene6まで再生した後の被写体再生軌跡データは、以下のような内容なる。すなわち、
図18A及び図18Bは、図16及び図17を参照して説明したフレームアウト被写体再生軌跡データ登録処理の動作フローチャートである。
被写体検出部103は、DRAM101上にある画像データから被写体を検出し、被写体検出数NをCPU109に通知する(S1801)。
CPU109は、被写体検出数Nが0か否かを判断する(S1802)。
S1802でNoの場合、CPU109は、S1801で検出されたN番目の被写体が登録済みの被写体再生軌跡データに対応するかどうかを判断する(S1803)。
S1803でNoの場合、CPU109は、N番目の被写体に対応する被写体再生軌跡データを新規に登録し、S1805に移行する(S1804)。S1804の後に、CPU109は、S1801で検出されたN番目の被写体が認証被写体かどうかを被写体認証部104に判定させる(S1805)。
S1803でYesの場合にも、CPU109は、S1801で検出されたN番目の被写体が認証被写体かどうかを被写体認証部104に判定させる(S1805)。
S1805でYesの場合、CPU109は、対応する被写体再生軌跡データに認証被写体情報を追記する(S1806)。
S1805でNoの場合又はS1806の後、CPU109は、被写体再生軌跡データに検出位置情報と再生シーン時間情報を追記する(S1807)。
S1807の後、CPU109は、被写体検出数NにN−1を代入し、S1802に戻る(S1808)
S1802でYesの場合、CPU109は、登録済みの被写体再生軌跡データにS1807で情報追記がされなかった被写体再生軌跡データが存在するかどうかを判断する(S1809)。
S1809でYesの場合、CPU109は、フレームアウト被写体再生軌跡データが登録済みかを判断する(S1810)。
S1810でYesの場合、CPU109は、登録済みのフレームアウト被写体再生軌跡データに認証被写体情報が存在するか否かを判断する(S1811)。
S1811でNoの場合、CPU109は、登録済みのフレームアウト被写体再生軌跡データを破棄する(S1812)。
S1810でNoの場合又はS1812の後、CPU109は、追記されなかった被写体再生軌跡データをフレームアウト被写体再生軌跡データとして再登録する(S1813)。追記されなかった被写体再生軌跡データが複数ある場合、CPU109は、認証被写体情報が存在する被写体再生軌跡データを優先的に登録する。
S1809でNoの場合、S1811でYesの場合、又は、S1813の後、CPU109は、図18A及び図18Bに示すフローを終了する。
単一の動画シーンの場合を説明したが、再生される動画シーンのシーンチェンジを検知し、シーンチェンジが検知された場合に登録済みのフレームアウト被写体再生軌跡データを破棄してもよい。
図16、図17及び図18A及び図18Bを参照して説明したように、新たにフレームアウトした被写体の情報を優先的に保持することで、再生ポーズを指示したシーンに対して、より近傍のシーンでフレームアウトした被写体を選択することが可能になる。
認証された被写体のフレームアウト情報を優先的に保持することで、再生ポーズ動作時に、ユーザは、フレームアウトした所望の被写体を選択できるようになる。
画像再生装置100は、被写体検出動画再生中に被写体がフレームアウトしたことを検知すると、フレームアウト直前の再生画像の一部を保持し、この保持した画像の一部を使ってフレームアウトした被写体を選択可能にする。
図19は、説明に使用する動画像のイメージ図であり、動画像のシーンとしてScene0〜Scene6があり、再生シーン時間情報がそれぞれ以下のようになっている。すなわち、
この動画像に対して被写体検出動画再生を行った場合に、被写体検出部103はScene0の再生時に被写体Aを検出する。CPU109は、被写体Aに対応する被写体再生軌跡データAを登録し、その時の位置情報(x0,y0)と再生時間情報00:00を追記する。CPU109は、Scene1の再生時に検出された被写体を登録済みの被写体Aと同一と判断し、Scene1での検出位置情報(x1,y1)と再生時間情報00:01を被写体再生軌跡データAに追記する。Scene3の再生後の被写体再生軌跡データAは、以下のような内容となる。すなわち、
Scene4で、被写体検出部103は、被写体Aと被写体Cとを検出し、CPU109は、被写体Cに対応する被写体再生軌跡データCを登録する。CPU109は、被写体再生軌跡データAに被写体Aの検出位置情報(x4,y4)と再生時間情報00:04を追記し、被写体再生軌跡データCには被写体Cの検出位置情報(xc4,yc4)と再生時間情報00:04を追記する。
Scene5で、被写体検出部103は、被写体Aと被写体Cを検出する。CPU109は、被写体再生軌跡データAに被写体Aの検出位置情報(x5,y5)と再生時間情報00:05を追記し、被写体再生軌跡データCには被写体Cの検出位置情報(xc5,yc5)と再生時間情報00:05を追記する。Scene5の再生後に登録されている被写体再生軌跡データA,Cは、以下のような内容となる。すなわち、
Scene6で、被写体検出部103は被写体Cを検出するが、被写体Aはフレームアウトしているので検出されない。CPU109は、被写体再生軌跡データCに被写体Cの検出位置情報と再生時間情報を追記する。
被写体Aがフレームアウトしたので、CPU109は、被写体再生軌跡データAをフレームアウト被写体再生軌跡データとして再登録する。このとき、CPU109は、被写体Aがフレームアウトする直前のScene5の被写体検出位置(x5,y5)を含む画像データ領域の一部を切り出し、DRAM101の再生画像データとは別領域に一時保持する。CPU109はまた、Scene5から切り出した画像を一時保持するDRAM101の領域を示す切出し画像領域情報を、フレームアウト被写体再生軌跡データに追記する。この切出し画像領域情報は、例えば切出し画像を一時保持するDRAM101上のアドレス情報、切出し画像の座標、幅及び高さ、切り出した再生画像の再生時間、並びに切出し時の被写体検出位置情報などからなる。
Scene6の再生後の被写体再生軌跡データおよびフレームアウト被写体再生軌跡データは、以下のような内容となる。すなわち、
図20は、図19で説明した動画像においてScene6で再生ポーズしたときの動作説明の模式図を示す。
図20(1)は、Scene6の再生表示状態であり、Scene6では被写体Cは検出されているが、被写体Aは検出されていない。
Scene6でユーザが再生ポーズをCPU109に指示したとする。この時点で、フレームアウト被写体再生軌跡データが存在し、フレームアウト被写体再生軌跡データに切出し画像領域情報が登録されている。そこで、CPU109は、図20(2)に示すように、切出し画像領域を現在表示出力しているScene6の再生画像に対して合成表示する。合成表示位置は、切出し画像領域情報にある切出し位置と同じ位置である。さらに、CPU109は、フレームアウト被写体再生軌跡データに登録されている検出位置情報を参照して、図20(2)に示すように、フレームアウト被写体の軌跡を描画する。
図20(3)に示すように、ユーザが、切出し画像領域情報にある切出し時の被写体検出位置(x5,y5)をタッチパネル105上で選択したとする。切出し時の被写体検出位置をユーザが選択されると、CPU109は、この選択に従い、図20(4)に示すように、被写体Aがフレームアウトする直前のScene5(再生時間00:05)を再生表示する。このとき、CPU109は、切出し画像の合成表示をオフにする。
ここで、ユーザが被写体の選択を解除することなく、図20(5)に示すように、タッチパネル105のタッチ(現在)位置を位置(x1,y1)に移動したとする。このドラッグ操作に応じて、CPU109は、タッチ位置(x1,y1)に対応した再生時間情報を被写体再生軌跡データAから検索し、Scene1(再生時間00:01)が再生表示される。
また、ユーザが、図20(4)に示す状態からタッチ位置を移動することなく、操作を解除したとする。CPU109は、この操作に応じて、再生ポーズ動作開始直前に表示されていたScene6(再生時間00:06)を再生表示し、切出し画像をScene6に合成した図20(2)に示す状態に遷移する。
図21A及び図21Bは、被写体検出動画再生中に被写体がフレームアウトする場合に、フレームアウト直前の再生画像の一部を切出し保持する動作のフローチャートである。ここでも、説明上、画像再生装置100はフレームアウトした被写体再生軌跡データを1つしか保持することができないとする。
被写体検出部103は、DRAM101上にある画像データから被写体を検出し、被写体検出数NをCPU109に通知する(S2101)。
CPU109は、被写体検出数Nが0か否かを判断する(S2102)。
S2102でNoの場合、CPU109は、S1801で検出されたN番目の被写体が登録済みの被写体再生軌跡データに対応するかどうかを判断する(S2103)。
S2103でNoの場合、CPU109は、N番目の被写体に対応する被写体再生軌跡データを新規に登録し、S2105に移行する(S2104)。S2104の後に、CPU109は、S2101で検出されたN番目の被写体が認証被写体かどうかを被写体認証部104に判定させる(S2105)。
S2103でYesの場合にも、CPU109は、S2101で検出されたN番目の被写体が認証被写体かどうかを被写体認証部104に判定させる(S2105)。
S2105でYesの場合、CPU109は、対応する被写体再生軌跡データに認証被写体情報を追記する(S2106)。
S2105でNoの場合又はS2106の後、CPU109は、被写体再生軌跡データに検出位置情報と再生シーン時間情報を追記する(S2107)。
S2107の後、CPU109は、被写体検出数NにN−1を代入し、S2102に戻る(S2108)
S2102でYesの場合、CPU109は、登録済みの被写体再生軌跡データにS2107で情報追記がされなかった被写体再生軌跡データが存在するかどうかを判断する(S2109)。
S2109でYesの場合、CPU109は、フレームアウト被写体再生軌跡データが登録済みかを判断する(S2110)。
S2110でYesの場合、CPU109は、登録済みのフレームアウト被写体再生軌跡データに認証被写体情報が存在するか否かを判断する(S2111)。
S2111でNoの場合、CPU109は、登録済みのフレームアウト被写体再生軌跡データを破棄する(S2112)。このとき、CPU109は、フレームアウト被写体再生軌跡データに登録されている切出し画像情報に対応する、DRAM101に一時保持する切出し画像データも破棄する。
S2111でNoの場合、又はS2112の後、CPU109は、追記されなかった被写体再生軌跡データをフレームアウト被写体再生軌跡データとして再登録する(S2113)。追記されなかった被写体再生軌跡データが複数ある場合、CPU109は、認証被写体情報が存在する被写体再生軌跡データを優先的に登録する。
S2113の後に、CPU109は、登録されているフレームアウト被写体再生軌跡データに対応する被写体がフレームアウトする直前の画像から、フレームアウトした被写体検出位置を含む画像領域を切り出し、DRAM101に一時保持する。このような画像の一時保持は、DRAM101上でのメモリコピーによって高速に実現できる。CPU109はまた、切り出した画像を一時保持するDRAM101の領域を示す切出し画像領域情報を、フレームアウト被写体再生軌跡データに追記する(S2114)。この切出し画像領域情報は、例えば切出し画像を一時保持するDRAM101上のアドレス情報、切出し画像の座標、幅及び高さ、切り出した再生画像の再生時間、並びに切出し時の被写体検出位置情報などからなる。
S2109でNoの場合、S2111でYesの場合、又はS2114の後、CPU109は、図21A及び図21Bに示すフローを終了する。
図22A及び図22Bは、図20で説明した切出し画像を用いて再生ポーズにした場合の動作フローチャートである。
CPU109は、図19および図21A及び図21Bで示した被写体検出動画再生において、被写体再生軌跡データが登録されているかどうかを判断する(S2201)。
S2201でNoの場合、CPU109は、S2212へ移行する。
S2201でYesの場合、CPU109は、登録済みの被写体再生軌跡データの対象となっている被写体が現在表示出力中の画像データからフレームアウトしているかどうかを判断する(S2202)。このときフレームアウトしているかどうかは、現在表示出力中の画像データから被写体を検出し、その輪郭情報が被写体再生軌跡データに格納されている輪郭情報と実質的に一致するかどうかで判断する。被写体が検出され、かつ検出された被写体から生成された輪郭情報と被写体再生軌跡データに格納されている輪郭情報が実質一致する場合、CPU109は、Noと判断する。逆に、被写体が検出されない場合、又は輪郭情報が一致しない場合には、CPU109は、フレームアウトと判断し、Yesとなる。
S2202でNoの場合、CPU109は、S2204に移行する。
S2202でYesの場合、CPU109は、被写体再生軌跡データに格納されている切出し画像領域情報を参照して、DRAM101に一時保持されている切出し画像データを読み出し、現在表示出力中の画像データと合成する(S2203)。ここでは、切出し画像領域情報に格納されている切り出した画像の座標と幅と高さで規定される位置及びサイズで、切出し画像を表示中の画像に合成する。
CPU109は、フレームアウト被写体再生軌跡データに存在する検出位置情報を被写体の軌跡として、DRAM101上に存在する描画スクリーンエリアに描画する(S2204)。例えば、被写体再生軌跡データに存在する検出位置情報を描画スクリーンエリアの相対する座標にプロットし、プロットされた座標を直線又は曲線で結ぶことで軌跡を描画できる。
タッチパネル105は、ユーザが現在タッチしているか否か及びタッチ位置を検出し、CPU109に通知する(S2205)。
CPU109は、S2205で位置検出されたか否かを判断する(S2214)。
S2214でYesの場合、CPU109は、S2203でフレームアウト被写体再生軌跡データの切出し画像領域情報から切出しシーンでの被写体検出位置を取得し、S2205で検出した位置との一致を判断する(S2206)。
S2206でYesの場合、CPU109は、S2203で検索された再生時間(フレームアウト直前の時間)に対応する符号化画像データを記録媒体120からDRAM101に読み込み(S2211)、S2210に移行する。
S2206でNoの場合、CPU109は、現在表示している画像データ内の被写体位置とS2205で検出した位置が実質一致しているか否かを判断する(S2207)。
S2207でYesの場合、CPU109は、S2212に移行する。
S2207でNoの場合、CPU109は、S2205で検出した現在位置に対応する被写体位置情報が被写体再生軌跡データ内に存在するかを判断する(S2208)。例えば、現在位置と一致する情報が被写体再生軌跡データ内に存在しなくとも、画像データ上の座標距離が所定範囲内であれば一致と判断する。
S2208でNoの場合、CPU109は、S2212に移行する。
S2208でYesの場合、CPU109は、一致した被写体位置情報に対応する再生シーン時間情報を取得し、取得した再生シーン情報に応じた符号化画像データを記録媒体120からDRAM101に読み込み(S2209)、S2210に移行する。
S2214でNoの場合、CPU109は、フレームアウト被写体再生軌跡データの切出し画像領域情報から切出しシーンでの被写体検出位置を取得し、切出し時の被写体検出位置が直前の位置検出時に選択されていたか否かを判断する(S2215)。
S2215でNoの場合、CPU109は、S2212に移行する。
S2215でYesの場合、CPU109は、この再生ポーズ動作へ遷移する直前に表示していた再生シーン情報に応じた符号化画像データを記録媒体120からDRAM101に読み込み(S2216)、S2210に移行する。
デコーダ106は、CPU109の制御下で、S2209またはS2211で読み込んだ画像符号化データをデコードし、画像データを生成する(S2210)。
CPU109は、S2204での軌跡データを描画した描画スクリーンデータと、画像データを合成処理し、表示する(S2212)。合成に使用する画像データは、S2210でデコード処理した場合は、S2210で生成した画像データであり、S2210でデコード処理していない場合は、現在表示出力している画像データである。
CPU109は、ユーザが再生ポーズ動作の終了指示をしたか否かを判断する(S2213)。S2213でNoの場合、CPU109は、S2201に戻る。S2213でYesの場合、CPU109は、図22A及び図22Bに示すフローを終了し、呼び出し元に戻る。
図19、図20、図21A、図21B、図22A及び図22Bを参照して説明したように、被写体がフレームアウトする直前の画像の一部を保持し、再生ポーズ時に画像合成を行って表示することで、ユーザは、フレームアウトした被写体を選択することが可能になる。
フレームアウトした被写体に関する情報を複数、記憶できるようにすることで、フレームアウトした複数の被写体に対応可能になる。その場合、フレームアウトの位置と前記軌跡を示す情報が所定数を超える場合に、フレームアウトを検知した順に古いものを破棄する。
上述の実施例は、互いに矛盾しない範囲で組み合わせて実施することが可能である。また、上述の実施例の一部又は全部の機能は、コンピュータ上で動作するコンピュータプログラムにもよって実現されうる。