以下に、本発明の実施の形態による表示制御装置の一例について図面を参照して説明する。
[第1の実施形態]
図1は、本発明の第1の実施形態による表示制御装置を備える撮像装置の一例についてその構成を示すブロック図である。
図示の撮像装置は、例えば、デジタルビデオカメラ(以下単にカメラと呼ぶ)100であり、実時間と異なる記録倍速で記録された区間を含む動画を再生可能である。カメラ100は、CPU101、メモリ102、不揮発性メモリ103、画像処理部104、ディスプレイ(表示部)105、操作部106、記録媒体I/F107、および外部I/F109を有している。そして、これらブロックは内部バス150によって相互に接続されている。
メモリ102は、例えば、RAMであり、CPU101は不揮発性メモリ103に格納されたプログラムに従ってメモリ102をワークメモリとして用いて、カメラ100を制御する。
不揮発性メモリ103には、画像データ、音声データ、およびその他のデータ、そして、CPU101において動作する各種プログラムなどが格納される。不揮発性メモリ103は、例えば、ハードディスク(HD)又はROMである。
画像処理部104は、CPU101の制御下で画像データについて所定の画像処理を施す。画像処理を行う画像データとして、例えば、不揮発性メモリ103および記録媒体108に格納された画像データ、そして、外部I/F109を介して取得した画像データなどがある。画像処理部104で行われる画像処理には、例えば、A/D変換処理、D/A変換処理、符号化処理、圧縮処理、デコード処理、拡大/縮小処理(リサイズ)、ノイズ低減処理、色変換処理、現像処理、およびリフォーカス処理がある。
なお、図示の例では、画像処理部104は専用の回路ブロックで示されているが、画像処理の種類によってはCPU101が画像処理を行うようにしてもよい。
ディスプレイ105には、CPU101の制御下で、画像およびGUI(Graphical User Interface)を構成するGUI画面などが表示される。例えば、CPU101は表示制御信号によってディスプレイ105を制御して、画像データに応じた映像信号をディスプレイ105に出力する。そして、ディスプレイ105には映像信号に応じた映像(画像)が表示される。
操作部106はユーザー操作を受け付けるための入力デバイスである。操作部106には、例えば、キーボードなどの文字情報入力デバイス、マウスおよびタッチパネル120などのポインティングデバイス、ボタン、ダイヤル、ジョイスティック、タッチセンサ、およびタッチパッドが備えられている。なお、タッチパネル120は、ディスプレイ105に重ね合されて配置されており、指などの接触位置に応じた座標情報を出力する。
記憶媒体I/F107には、メモリーカード、CD、およびDVDなどの記録媒体108が装着される。CPU101は記憶媒体I/F107を介して記録媒体108から画像データの読み出しを行うともに、記録媒体108に画像データの書き込みを行う。
外部I/F109は、外部機器と有線ケーブル又は無線によって接続され、画像データおよび音声信号の入出力を行うためのインターフェースである。
CPU101はタッチパネル120に対する次の操作又は状態を検出する。
タッチパネル120を指又はペンで触れたこと(以下タッチダウンという)。タッチパネル120を指又はペンで触れている状態(以下タッチオンという)。タッチパネル120を指又はペンで触れたままの状態で指又はペンを移動させること(以下ムーブという)。タッチパネル120に触れた状態から指又はペンを離したこと(以下タッチアップという)。タッチパネル120に何も触れていない状態(以下タッチオフという)。
上記の操作又は状態、そして、タッチパネル120に指又はペンが触れている位置座標は内部バス150を介してCPU101に送られる。そして、CPU101は通知された情報に基づいてタッチパネル120においてどのような操作が行なわれたかを判定する。CPU101は位置座標の変化に基づいて、ムーブにおける指又はペンの移動方向を判定する。この際、CPU101は位置座標の変化に基づいて移動方向の垂直成分および水平成分を判定する。
タッチパネル120上においてタッチダウンから一定のムーブを経てタッチアップが行われた際、これをストロークを描いたとする。素早くストロークを描く操作をフリックと呼ぶ。フリックは、タッチパネル120上に指を触れたままある程度の距離だけ素早く動かして、そのまま離す操作である。言い替えると、フリックはタッチパネル120を指で弾くように素早くなぞる操作である。
CPU101は所定距離以上を所定速度以上でムーブが行われたことを検出し、そのままタッチアップを検出するとフリックが行なわれたと判定する。また、所定距離以上を所定速度未満でムーブが行われたことを検出すると、CPU101はドラッグが行なわれたと判定する。
なお、タッチパネル120には、例えば、抵抗膜方式、静電容量方式、表面弾性波方式、赤外線方式、電磁誘導方式、画像認識方式、および光センサ方式を用いたものがあるが、ここでは、いずれの方式を用いるようにしてもよい。
図示の例では、カメラ100は動画再生に係る操作を行うためのGUIをディスプレイ105に表示するモードを有している。この際、再生対象の動画は各種操作を受け付けるためのボタンと重畳されて表示される。
図2は、図1に示すカメラにおいてディスプレイに表示される画面の一例を説明するための図である。そして、図2(a)は再生動画ファイルを選択する際に表示される再生動画選択画面を示す図であり、図2(b)は動画再生画面の一例を示す図である。また、図2(c)はタイムライン表示画面の一例を示す図である。
図2(a)に示す再生動画選択画面においては、複数の動画ファイルについてその先頭フレームに位置する画像が縮小されてサムネイル画像201として表示される。つまり、1つの動画ファイルについて1つのサムネイル画像が表示される。そして、ユーザーがサムネイル画像201の1つをタッチすると、CPU101は当該サムネイル画像に対応する動画ファイルの再生を開始する。動画ファイルの再生制御が開始されると、画面は、図2(b)に示す動画再生画面に遷移する。
動画再生画面においては、動画再生停止ボタン202が表示される。ユーザーが動画再生停止ボタン202をタッチすると、CPU101は動画ファイルの再生を停止する。そして、CPU101は画面を再生動画選択画面に遷移させる。
動画再生画面には、タイムライン表示ボタン203が表示される。ユーザーがタイムライン表示ボタン203をタッチすると、CPU101は画面をタイムライン表示画面に遷移させる。この際には、CPU101は現在再生中の動画において所定の時間間隔毎にフレームを抽出する処理を行う。そして、CPU101は抽出したフレームに位置する画像を縮小表示して並べてタイムライン表示を行う。
図2(c)に示すタイムライン表示画面には、タイムライン表示エリア204が表示される。当該タイムライン表示エリア204には、動画ファイルから抽出したフレームに位置する画像を縮小処理したサムネイル画像が、図中左側から順に表示される。また、タイムライン表示画面には、表示間隔選択ボタン205が表示される。ユーザーが表示間隔選択ボタン205をタッチすると、CPU101は、画面をタイムライン表示エリア204に表示するサムネイル画像の抽出間隔を選択するための表示間隔選択画面に遷移させる。
ユーザーが戻るボタン206をタッチすると、CPU101は画面を動画再生画面に遷移させる。また、ユーザーが比較表示ボタン207をタッチすると、CPU101は、比較表示モードとなって、画面を、現在タイムライン表示中の動画ファイルと比較表示を行う動画ファイルを選択する比較先動画選択画面に遷移させる。
図3(a)および図3(b)は、図2(c)に示すタイムライン表示エリアに表示されるサムネイル画像の一例を説明するための図である。図3(a)および図3(b)においては、双方ともに表示間隔が2秒という設定で、同一の動画ファイルについてタイムライン表示を行っているが、タイムライン表示処理の方法が異なっている。また、この動画ファイルは、30FPSの再生フレームレートを有する動画ファイルである。そして、最初の120フレーム(0番目~119番目のフレーム)は、30FPSの記録フレームレートで記録されており、その後の、720フレーム(120番目~839番目のフレーム)は、60FPSの記録フレームレートで記録されている。動画全体で840フレームあるため、再生フレームレートの30FPSで再生すると、再生時間は28秒となるが、実際に記録された記録時間は16秒の動画である。
図3(a)において、タイムライン表示エリアには複数のサムネイル画像が順次表示される。サムネイル画像(つまり、フレーム)の各々には記録倍速901およびタイムカウント902が表示される。
記録倍速901は、フレームを記録した際の記録倍速を示しており、例えば、「×1/2」は1/2倍速で記録(倍速記録)されたフレームであることを示す。なお、記録倍速901が表示されないフレームは通常倍速(再生フレームレートと記録フレームレートとが同じ)で記録されたフレームであることを示す。タイムカウント902は記録開始からの経過時間を示す。例えば、「0:04」は、当該フレームの記録が記録開始から4秒経過後であることを示す。本実施形態では、タイムカウント902は記録時間に対応する時間であるが、再生時間に対応するタイムカウントを表示するようにしてもよい。また、本実施形態において、記録倍速901とは、(再生フレームレート)/(記録フレームレート)を示しており、記録フレームレートに対する再生フレームレートの比率を示している。つまり、記録フレームレートが高い場合、記録倍速が小さくなり、再生フレームレートで再生した場合にスロー再生となり、記録フレームレートが小さい場合、記録倍速が大きくなり、再生フレームレートで再生した場合に高速再生となる。
図3(a)に示す例では、動画ファイルの先頭フレームを起点として2秒毎にフレームを抽出して縮小表示する処理が行われている。つまり、30FPSの再生フレームレートの動画ファイルにおいて、再生フレームレートに対して2秒毎、つまり、60フレーム間隔でフレームを抽出して縮小表示している。図3(a)に示すようにタイムライン表示を行う方法については、図8(a)および図8(b)で詳細に説明する。
通常倍速(再生フレームレート)が30FPSであるので、再生時間に対して2秒間隔、つまり、60フレーム間隔でフレームを抽出すると、通常倍速(30FPS)で記録されたフレームについては記録時間の2秒間隔でフレームの抽出を行うことができる。一方、1/2倍速(60FPS)で記録されたフレームについては、記録時間の1秒間隔でフレームの抽出が行われてしまう。
一方、図3(b)に示す例では、動画の先頭フレームを起点として、記録時間に対して2秒毎にフレーム抽出して縮小表示する場合を示している。この場合、フレームを抽出する時間間隔(2秒間隔)と記録倍速(記録フレームレート)とに基づいて抽出するフレームを決定する。これによって、1/2倍速で記録されたフレームであっても2秒間隔でフレームの抽出を行うことができる。図3(b)のようにタイムライン表示を行う方法については、図5(a)および図5(b)で詳細に説明する。
図4は、図1に示すカメラにおいてディスプレイに表示される表示間隔選択画面の一例を示す図である。
図示の例では、表示間隔を選択するためボタンとして、1秒ボタン401、4秒ボタン402、15秒ボタン403、および60秒ボタン404が表示されている。ユーザーがこれらのボタン401~404のいずれかをタッチすると、CPU101は、タッチしたボタンに応じた表示間隔を設定する。その後、CPU101はタイムライン表示画面をディスプレイ105に表示し、設定された表示間隔に応じてタイムライン表示エリア204に表示するサムネイル画像を更新する。
図5Aおよび図5Bは、図1に示すカメラで行われるタイムライン表示処理を説明するためのフローチャートである。この、図5Aおよび図5Bに示すタイムライン表示処理(以下タイムライン表示1と呼ぶ)により、図3(b)に示すタイムライン表示が行われる。ここでは、CPU101は、動画再生画面においてユーザーがタイムライン表示ボタン203をタッチするとタイムライン表示処理を実行する。なお、図示の例では、初期状態においては、表示間隔設定時間として1秒を示す”1”が設定されているものとする。
まず、CPU101は画像処理部104を制御してタイムライン表示画面をディスプレイ105に表示する(ステップS101)。そして、CPU101は変数Nに”0”を代入する(ステップS102)。変数Nは、動画ファイルから抽出した画像を縮小表示する際、当該画像をタイムライン表示エリア204の左端から何番目に表示するかを示すためのものである。そして、変数Nが”0”である場合には、画像を縮小表示する位置はタイムライン表示エリア204の左端枠(位置)となる。なお、以下の説明では、タイムライン表示エリア204においてサムネイル画像(以下縮小画像ともいう)を表示する枠をタイムライン表示枠と呼ぶ。
続いて、CPU101は変数Fに”0”を代入する(ステップS103)。変数Fは、動画ファイルにおいてフレームの番号を示すためのものである。変数Fが”0”である場合には、変数Fは動画ファイルの先頭フレームを示すことになる。
次に、CPU101は変数Sに”0”を代入する(ステップS104)。変数Sは、前回サムネイル画像をタイムライン表示エリア204に表示した後、どれだけの長さの時間分のフレームを処理したかを示すためのものであり、その単位は秒である。
続いて、CPU101はF番目のフレームの画像データを記録媒体108から読み込み、画像処理部104によって画像データをデコードし、縮小(サムネイル画像化)する(ステップS105)。ここでは、変数Fは”0”であるので、動画ファイルの先頭フレームの画像データがデコードされる。そして、画像処理部104はデコードし、縮小した画像データをメモリ102に書き込む。
次に、CPU101は画像処理部104を制御して、メモリ102に書き込んだ画像データ(サムネイル画像データ)をタイムライン表示エリア204のN番目のタイムライン表示枠に表示する(ステップS106)。そして、CPU101はF番目のフレームの記録フレームレートを記録媒体108から読み込む(ステップS107)。なお、記録フレームレートの単位はFPSである。
続いて、CPU101は、変数Sに、変数Fが示すフレーム(つまり、フレームF)とその次のフレームを記録するまでに撮影時に経過した時間とを加算する(ステップS108)。この経過時間はステップS107で読み込んだ記録フレームレートを用いて、1/記録フレームレートによって得られる。そして、CPU101は、変数Fをインクリメントする。つまり、CPU101は変数Fに”1”を加算する(ステップS109)。これによって、動画ファイル中の処理対象のフレームが1つ先のフレームに変更される。
次に、CPU101は現在設定されている表示間隔設定時間を用いて、S/表示間隔設定時間を求めて(少数点以下は切り捨てる)、その値を変数Dに代入する(ステップS110)。
なお、変数Sには前回タイムライン表示エリア204に表示したフレームからF番目のフレームまでに経過した時間が代入されているので、変数Dが”1”であれば表示間隔設定時間分のフレームを処理したことになる。一方、変数Dが、例えば”2”以上であれば、表示間隔設定時間×変数D(=2以上の数値)分のフレームを処理したことになる。
続いて、CPU101は変数Dが”1”以上であるか否かを判定する(ステップS111)。変数Dが”1”未満であると(ステップS111において、NO)、CPU101はステップS107の処理に戻り、Dが1以上となるまで繰り返す。一方、変数Dが”1”以上であると(ステップS111において、YES)、CPU101はタイムライン表示エリア204に表示したフレームからF番目のフレームまでに経過した時間が表示間隔設定時間分以上になったと判定する。通常の動画のフレームレートであれば、タイムライン表示エリア204に表示される2つのフレーム間の撮影時の経過時間が表示間隔設定時間以下であるので、Dは、S107とS108を繰り返し実行して経過時間が積算されることにより徐々に0から増大して、ステップS111では、Dが1に達する。しかし、フレームレートが極端に小さく、2つのフレーム間の撮影時の経過時間が表示間隔設定時間よりも大きい場合は、Dが、例えば”2”以上となることがある。次に、CPU101は表示間隔設定時間×変数Dを求めて、当該値を変数Sから減算する(ステップS112)。
続いて、CPU101は、前記ステップS109によって更新されたF番目のフレームの画像データを記録媒体108から読み込み、画像処理部104によって当該画像データをデコードし、縮小(サムネイル画像化)する(ステップS113)。そして、画像処理部104はデコードし、縮小した画像データをメモリ102に書き込む。
次に、CPU101は画像処理部104を制御して、メモリ102に書き込んだ画像データ(サムネイル画像データ)をタイムライン表示エリア204のN+D番目のタイムライン表示枠に表示する(ステップS114)。通常の動画であれば、Dは1となるので、F番目のフレームの縮小画像が、前回縮小画像が表示された枠(N)の次の枠(N+1)に表示される。そして、Dが、例えば2以上の場合、前回表示したフレームからの経過時間が表示間隔設定時間の2倍以上であるため、F番目のフレームの縮小画像が、前回縮小画像が表示された枠(N)から離れた枠(N+D)に表示されることになる。
続いて、CPU101は変数Nに変数Dを加算して、変数Nが今回縮小画像を表示した枠を示すようにする(ステップS115)。そして、CPU101は表示可能なタイムライン表示枠数分の縮小画像の表示が終了したか否かを判定する(ステップS116)。ここでは、CPU101は変数Nが表示可能なタイムライン表示枠数に達したか否かを判定する。変数Nが表示可能なタイムライン表示枠数に達した、つまり、変数Nが表示可能なタイムライン表示枠数以上となった場合は、CPU101は表示可能なタイムライン表示枠数分の縮小画像の表示が終了したと判定する。
変数Nが表示可能なタイムライン表示枠数に達していないと(ステップS116において、NO)、CPU101はサムネイル表示されたF番目のフレームが動画ファイルの終端フレームであるか否かを判定する(ステップS117)。サムネイル表示されたF番目のフレームが動画ファイルの終端フレームでないと(ステップS117において、NO)、CPU101はステップS107の処理に戻る。
サムネイル表示されたF番目のフレームが動画ファイルの終端フレームであると(ステップS117において、YES)、CPU101は表示間隔選択ボタン205がタッチされたか否かを判定する(ステップS118)。なお、変数Nが表示可能なタイムライン表示枠に達した場合も(ステップS116において、YES)、CPU101はステップS118の処理に進む。
表示間隔選択ボタン205がタッチされると(ステップS118において、YES)、CPU101は画像処理部104を制御して、表示間隔選択画面を表示する(ステップS119)。その後、CPU101はディスプレイ105に表示された1秒ボタン401、4秒ボタン402、15秒ボタン403、および60秒ボタン404のいずれかがタッチされたか否かを判定する(ステップS120)。
いずれのボタンもタッチされないと(ステップS120において、NO)、CPU101は待機する。いずれかボタンがタッチされると(ステップS120において、YES)、CPU101は、タッチされたボタンに基づいて表示間隔設定時間を設定する(ステップS121)。例えば、1秒ボタン401がタッチされると、CPU101は表示間隔設定時間として”1”を設定する。同様に、4秒ボタン402、15秒ボタン403、および60秒ボタン404がタッチされると、CPU101はそれぞれ表示間隔設定時間として、”4”、”15”、および”60”を設定する。その後、CPU101はステップS101の処理に戻る。
表示間隔選択ボタン205がタッチされないと(ステップS118において、NO)、CPU101は戻るボタン206がタッチされたか否かを判定する(ステップS122)。戻るボタン206がタッチされないと(ステップS122において、NO)、CPU101はステップS118の処理に戻る。一方、戻るボタン206がタッチされると(ステップS122において、YES)、CPU101は画像処理部104を制御して、ディスプレイ105に図2(b)に示す動画再生画面を表示する(ステップS123)。そして、CPU101はタイムライン表示処理を終了する。
このようにして、動画ファイルにおいて特定のフレームが記録された際の記録倍速(記録フレームレート)に基づいて動画ファイルから抽出するフレーム間隔を決定する。これによって、動画ファイル全体を記録の際の実時間(記録時間)に基づいて設定された時間間隔でタイムライン表示することができる。この結果、複数の異なる記録倍速で記録した画像を含む動画であっても、記録倍速の異なる区間ごとに異なるフレーム間隔でタイムラインが表示されるため、ユーザーが指定した時間間隔でタイムライン表示を行うことができる。
なお、タイムライン表示画面において、操作部106を用いて表示されている縮小画像のうちの1つが選択された場合に、CUP101は、その縮小画像が示すフレームから動画を再生する再生処理を行うようにしてもよい。その場合、再生が指定されたフレームから、記録フレームレートに拘わらず、動画の再生フレームレートで動画が再生される。図5(a)および図5(b)に示すタイムライン表示処理1では、表示される縮小画像(フレーム)の記録時間の間隔が、設定された時間間隔となるようにフレームを抽出している。つまり、動画の記録時間に対応したタイムラインが表示される。そのため、再生フレームレートと記録フレームレートが異なる動画の区間では、タイムラインで設定された時間間隔と異なる間隔で、動画の再生が行われることになる。
1つの動画ファイルと他の動画ファイルとの比較表示処理を行う場合について説明する。
図6)は、図1に示すカメラで行われる比較表示処理を説明するための図である。そして、図6(a)は比較先動画選択画面の一例を示す図であり、図6(b)は比較表示画面の一例を示す図である。また、図6(c)はタイムライン表示画面の一例を示す図である。
図6(a)に示す比較先動画選択画面には、比較対象である動画ファイルの先頭フレームのサムネイル画像601が表示される。図示のように、1つの動画ファイルについて1つのサムネイル画像601が表示され、ユーザーが1つのサムネイル画像601をタッチすると、CPU101は当該動画ファイルと比較元の動画ファイルとの比較表示処理を実行して、ディスプレイ105に図6(b)に示す比較表示画面を表示する。
比較表示画面は1つの動画ファイルを他の動画ファイルと比較表示する際に用いられる。図6(b)に示す比較表示画面には、比較元タイムライン表示エリア701および比較先タイムライン表示エリア702が表示される。比較元タイムライン表示エリア701には、比較元動画ファイルから抽出したサムネイル画像がその枠に左側から順に表示される。比較先タイムライン表示エリア702には、比較先動画ファイルから抽出したサムネイル画像がその枠に左側から順に表示される。
さらに、比較表示画面には、表示間隔選択ボタン703および戻るボタン704が表示される。ユーザーが表示間隔選択ボタン703をタッチすると、CPU101は比較元タイムライン表示エリア701および比較先タイムライン表示エリア702に表示する縮小画像の抽出間隔を選択するための表示間隔選択画面を表示する。また、ユーザーが戻るボタン704をタッチすると、CPU101は画面をタイムライン表示画面に遷移させる。
図7は、比較元タイムライン表示エリアおよび比較先タイムライン表示エリアに表示されるサムネイル画像を説明するための図である。そして、図7(a)は比較元タイムライン表示エリアの一例を示す図であり、図7(b)は比較先タイムライン表示エリアの一例を示す図である。
図7(a)において、比較元タイムライン表示エリア1101には複数のサムネイル画像が順次表示される。ここでは、2秒間隔でフレームの抽出が行われ、記録の開始から4秒以降のフレームが1/2倍速で記録されている。
図7(b)において、比較先タイムライン表示エリア1102には複数のサムネイル画像が順次表示される。ここでは、2秒間隔でフレームの抽出が行われ、記録の開始から標準倍速でフレームが記録されている。
図示のように、ここでは、比較元タイムライン表示エリア1101および比較先タイムライン表示エリア1102において、時間軸において同一の位置にあるタイムライン表示枠には記録開始からの時間が同一のフレームが表示される。
図8Aおよび図8Bは、図1に示すカメラで行われるタイムライン表示処理の他の例を説明するためのフローチャートである。図8Aおよび図8Bに示すタイムライン表示処理(以下タイムライン表示処理2と呼ぶ)により、図3(a)に示すタイムライン表示が行われる。ここでは、CPU101は、動画再生画面においてユーザーがタイムライン表示ボタン203をタッチするとタイムライン表示処理を実行する。なお、図示のフローチャートにおいて、図5Aおよび図5Bに示タイムライン表示処理1のステップと同一のステップについては同一の参照符号を付して説明を省略する。また、図5Aおよび図5Bに示すタイムライン表示処理1を行うか、図8Aおよび図8Bに示すタイムライン表示処理2を行うかについては、ユーザーの選択に応じて切り替え可能にしてもよい。
ステップS106の処理の後、CPU101は変数Fに表示間隔設定時間分に相当するフレーム数を加算する(ステップS201)。ここでは、CPU101は表示間隔設定時間×通常記録フレームレートを求めて得られた値を変数Fに加算する。通常記録フレームレートは再生フレームレートと同じであるため、表示間隔設定時間×再生フレームレートにより加算する値、つまり、抽出するフレーム間隔を求めてもよい。その後、CPU101はF番目のフレームの画像データを記録媒体108から読み込んで、画像処理部104によって当該画像データをデコードし、縮小する(ステップS202)。そして、画像処理部104はデコードし、縮小した画像データをメモリ102に書き込む。
続いて、CPU101は画像処理部104を制御して、メモリ102に書き込んだ画像データをタイムライン表示エリア204のN+1番目の枠に表示する(ステップS203)。そして、CPU101は、変数Nに”1”を加算する。これによって、変数Nが今回縮小画像を表示した枠を示すようにする。その後、CPU101は前述のステップS116~S121の処理を行う。なお、タイムライン表示画面において、操作部106を用いて表示されている縮小画像のうちの1つが選択された場合に、CUP101は、その縮小画像が示すフレームから動画を再生する再生処理を行うようにしてもよい。その場合、再生が指定されたフレームから、動画の再生フレームレートで動画が再生される。タイムライン表示処理2では、表示される縮小画像(フレーム)の再生時間の間隔が、設定された時間間隔となるようにフレームを抽出している。そのため、通常記録倍速の区間だけでなく、再生フレームレートと記録フレームレートが異なる動画の区間においても、動画の再生時間に対応したタイムライン表示が行われる。つまり、動画の再生時間に対応したタイムラインが表示される。
ステップS118において、表示間隔選択ボタン205がタッチされないと(ステップS118において、NO)、CPU101は比較表示ボタン207がタッチされたか否かを判定する(ステップS205)。比較表示ボタン207がタッチされると(ステップS205において、YES)、CPU101は後述する比較先動画選択画面処理を行う(ステップS206)。この比較先動画選択画面処理は現在タイムライン表示中の動画ファイルに対して比較対象となる動画ファイルを選択するための処理である。
続いて、CPU101は後述する比較表示画面処理を行う(ステップS207)。この比較表示画面処理は、現在タイムライン表示中の動画ファイルと比較対象となる動画ファイルとを比較表示するための処理である。その後、CPU101はステップS101の処理に戻る。
比較表示ボタン207がタッチされないと(ステップS205において、NO)、CPU101は戻るボタン206がタッチされたか否かを判定する(ステップS208)。戻るボタン206がタッチされないと(ステップS208において、NO)、CPU101はステップS118の処理に戻る。
戻るボタン206がタッチされると(ステップS208において、YES)、CPU101は画像処理部104を制御して、動画再生画面をディスプレイ105に表示する(ステップS209)。そして、CPU101はタイムライン表示処理を終了する。
図9は、図8Bに示す比較先動画選択画面処理を説明するためのフローチャートである。
まず、CPU101は画像処理部104を制御して、比較先動画選択画面をディスプレイ105に表示する(ステップS301)。そして、CPU101は比較対象となる動画ファイル群の各動画ファイルの先頭フレームの画像データを記録媒体108から読み込み、画像処理部104によって当該画像データをデコードし、縮小する(ステップS302)。画像処理部104はデコードし、縮小した各画像データをメモリ102に書き込む。
続いて、CPU101は画像処理部104を制御して、メモリ102に書き込んだ各画像データ(サムネイル画像601)を動画ファイル選択枠に表示する(ステップS303)。そして、CPU101はサムネイル画像601のいずれかがタッチされたか否かを判定する(ステップS304)。
サムネイル画像601のいずれもタッチされないと(ステップS304において、NO)、CPU101は待機する。一方、サムネイル画像601の1つがタッチされると(ステップS304において、YES)、CPU101は、タッチされたサムネイル画像601に対応する動画ファイルを比較先動画として設定する(ステップS305)。そして、CPU101は比較先動画選択画面処理を終了する。
図10Aおよび図10Bは、図8Bに示す比較表示画面処理を説明するためのフローチャートである。なお、図示のフローチャートにおいて、図5Aおよび図5Bに示す比較表示画面処理のステップと同一のステップについては同一の参照符号を付して説明を省略する。
比較表示画面処理を開始すると、CPU101は画像処理部104を制御して、ディスプレイ105に比較表示画面を表示する(ステップS402)。そして、CPU101はフレーム抽出処理を行う対象の動画ファイルを比較元動画に設定する(ステップS402)。その後、CPU101はステップS102の処理に進む。ステップS102~S122の処理は、図5Aおよび図5Bの対応するステップと同様である。
変数Nが表示可能なタイムライン表示枠数に達すると(ステップS116において、YES)、CPU101は現在処理対象である動画が比較元動画であるか否かを判定する(ステップS403)。比較元動画であると(ステップS403において、YES)、CPU101はフレーム抽出処理を行う対象の動画を比較先動画に設定する(ステップS404)。その後、CPU101はステップS102の処理に戻る。一方、比較元動画でないと(ステップS403において、NO)、CPU101はステップS118の処理に進む。
このようにすれば、複数の異なる記録倍速で記録した画像を含む動画と通常記録のみで記録した動画とをタイムライン表示する場合であっても、抽出表示されるフレームが同一の記録時間間隔となるので、ユーザーはこれら動画を容易に比較することができる。複数の動画を比較する際に、異なる記録倍速で記録された区間があると、同じ再生時間であっても、記録時間は全く異なってしまうことがある。そのため、本実施形態では、比較表示を行う場合は、同じ記録時間間隔となるようにフレームを抽出することで、複数の動画の比較をしやすくしている。このように、一定のフレーム間隔(再生時間間隔)でフレームを抽出する図3(a)に示すタイムライン表示が選択されていたとしても、比較表示が選択された場合は、図7(a)および図7(b)を参照して説明したように、記録時間間隔でフレームを抽出するように、自動的に切り換えている。
続いて、タイムライン表示を行う際、抽出するフレームを記録倍速によって決定し、当該抽出したフレームの縮小画像を表示する位置を再生する時間によって決定する例について説明する。
前述の図6(c)を参照して、図示のタイムライン表示画面には、タイムライン表示エリア801が表示される。タイムライン表示エリア801は図2(c)に示すタイムライン表示エリア204と異なり、縮小画像と縮小画像との間にスペースが存在する。
図11は、図6(c)に示すタイムライン表示エリアを説明するための図である。そして、図11(a)はその一例を示す図であり、図11(b)は他の例を示す図である。
図11(a)においては、記録時間の2秒間隔で動画ファイルからフレーム抽出された縮小画像が表示されている。そして、1/2倍速で記録された4秒以降においては、1枠分のスペースを空けて次の縮小画像が表示される。つまり、縮小画像の表示位置は当該フレームが再生される時間によって決定されるので、1/2倍速で記録された画像については通常倍速で記録された画像に比べて2倍の再生時間が掛かる。よって、縮小画像を表示する際に1つの縮小画像について2倍のスペースを使用する。
図11(b)においては、通常倍速よりも速い記録倍速で記録された画像を含む動画に係るタイムライン表示が示されている。図示の例では、記録時間の2秒間隔で動画ファイルからフレーム抽出された縮小画像が表示されている。そして、2倍速で記録された4秒以降においては、枠の右半分に次の縮小画像が重なるように表示される。つまり、縮小画像の表示位置は当該フレームが再生される時間によって決定されるので、2倍速で記録された画像については通常倍速で記録された画像に比べて1/2倍の再生時間で済む。よって、縮小画像を表示する際に1つの縮小画像について1/2のスペースを使用する。
図12Aおよび図12Bは、図1に示すカメラで行われるタイムライン表示処理のさらに他の例を説明するためのフローチャートである。図12Aおよび図12Bに示すタイムライン表示処理(以下タイムライン表示処理3と呼ぶ)により、図11(a)又は図11(b)に示すタイムライン表示が行われることになる。ここでは、CPU101は、動画再生画面においてユーザーがタイムライン表示ボタン203をタッチするとタイムライン表示処理を実行する。なお、図示のフローチャートにおいて、図5Aおよび図5Bに示す比較表示画面処理のステップと同一のステップについては同一の参照符号を付して説明を省略する。また、タイムライン表示処理1を行うか、タイムライン表示処理2を行うか、タイムライン表示処理3を行うかを、ユーザーの選択に応じて切り替え可能にしてもよい。
ステップS104の処理の後、CPU101は変数Pに”0”を代入し、縮小画像の表示位置を示す変数Nに”0”を代入する(ステップS501)。ここで、変数Pは、直前に動画ファイルから抽出したフレームが動画ファイルの先頭フレームから何フレーム目であるかを示す数である。変数Pが”0”である場合には、直前に抽出したフレームが先頭フレームであることを示す。変数Nは、直前に動画ファイルから抽出したフレームの縮小画像がタイムライン上に表示された表示開始位置を示している。変数Nが”0”である場合には、まだタイムライン上に縮小画像が表示されていないことを示している。その後、CPU101はステップS105の処理に進む。
ステップS105の処理の後、CPU101は画像処理部104を制御してメモリ102に書き込んだ画像データをタイムライン表示エリア801の左端の枠に表示する(ステップS502)。その後、CPU101はステップS107の処理に進む。
ステップS112の処理の後、CPU101は、変数Wに値を設定する(ステップS503)。ここで、変数Wは、前回縮小画像を表示開始した位置からどれだけ表示位置をずらして表示を行うかを示す数である。ここでは、CPU101は、{(F―P)/(フレームレート×表示間隔設定時間)}×標準枠幅を求めて、これを変数Wとして設定する。(F―P)は現在のフレーム番号と前回縮小画像を表示したときのフレーム番号の差である。標準枠幅には、(再生フレームレート×表示間隔設定時間)のフレーム間隔でフレームが抽出して表示されるようにするため、変数Wを設定している。
続いて、CPU101は、変数Pに変数Fを代入する(ステップS504)。そして、CPU101はステップS113の処理に進む。
ステップS113の処理の後、CPU101は画像処理部104を制御し、メモリ102に書き込んだ画像データをタイムライン表示エリア801においてN+Wの位置から表示する(ステップS505)。つまり、前回縮小画像を表示開始した位置から、変数W分右側にずらした位置から縮小画像が表示されることになる。そして、変数Nに“N+W”を代入し、Nが今回表示した(最後に表示した)縮小画像の表示開始位置となるようにする(ステップS506)。このように、変数Wを用いて縮小画像の表示位置を決定するため、縮小画像間の表示間隔は、記録フレームレートによって変わってきてしまう。しかし、標準枠幅には、再生フレームレート×表示間隔設定時間で決定されるフレーム間隔で表示されるようになるため、縮小画像の表示開始位置は、そのフレームの再生時間に対応する位置に表示されることになる。
続いて、CPU101は、ステップS506において最後に表示した縮小画像の表示開始位置Nが、タイムライン表示エリア801の右端に近接したか否かを判定する(ステップS507)。ここでは、CPU101は、タイムライン表示エリア801の右端を示す位置の値から、変数Nを減算して、その値が所定値以下であれば近接したと判定する。
画面の右端に近接すると(ステップS506において、YES)、CPU101はステップS118の処理に進む。一方、画面の右端に近接しないと(ステップS506において、NO)、CPU101はステップS117の処理に進む。
このようにして、通常倍速よりも遅い記録倍速で記録した画像については縮小画像の表示間隔を広くする。一方、通常倍速よりも速い記録倍速で記録した画像については縮小画像の表示間隔を狭くする。これによって、ユーザーは記録倍速の相違を直感的に把握することができる。
なお、本発明の実施の形態においては、動画の特定のフレームが記録された際の記録倍速と設定された時間間隔とに応じて動画ファイルからフレームを抽出するフレーム間隔を決定するようにした。一方、特定のフレームが記録された際の記録開始時点からの経過時間に基づいて動画ファイルからフレームを抽出するフレーム間隔を決定するようにしてもよい。
以上のように、本発明の実施形態では、動画の特定のフレームが記録された際の記録倍速に基づいて動画からフレームを抽出する抽出間隔(フレーム間隔)を決定する。これによって、動画を所定の時間間隔でタイムライン表示することができる。この結果、複数の異なる記録倍速で記録した画像を含む動画であっても、ユーザーが指定した時間間隔でタイムライン表示を行うことができる。
さらには、複数の異なる記録倍速で記録した画像を含む動画と通常倍速で記録した動画についてタイムライン表示を並べて行う際において、フレームの画像が同一のとなるので、ユーザーは動画の比較をように行うことができる。
さらには、複数の異なる記録倍速で記録した画像を含む動画と通常倍速で記録した動画についてタイムライン表示を並べて行う際において、フレームの画像が同一のとなるので、ユーザーは動画の比較を容易に行うことができる。
以上、本発明について実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
例えば、上記の実施の形態の機能を制御方法として、この制御方法を表示制御装置に実行させるようにすればよい。また、上述の実施の形態の機能を有するプログラムを制御プログラムとして、当該制御プログラムを表示制御装置が備えるコンピュータに実行させるようにしてもよい。なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。
[その他の実施形態]
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。