以下、図面を参照して本発明の実施形態を説明する。
図1は、本発明の一実施形態に係る電子機器の外観を示す斜視図である。この電子機器は、例えばノートブックタイプのパーソナルコンピュータ10として実現されている。図1に示すように、本コンピュータ10は、コンピュータ本体11と、ディスプレイユニット12とから構成されている。ディスプレイユニット12には、LCD(liquid crystal display)17が組み込まれている。ディスプレイユニット12は、コンピュータ本体11の上面が露出される開放位置とコンピュータ本体11の上面を覆う閉塞位置との間を回動自在にコンピュータ本体11に取り付けられている。
コンピュータ本体11は、薄い箱形の筐体を有しており、その上面には、キーボード13、本コンピュータ10を電源オン/電源オフするためのパワーボタン14、入力操作パネル15、タッチパッド16、スピーカ18A,18Bなどが配置されている。入力操作パネル15上には、各種操作ボタンが設けられている。
また、コンピュータ本体11の右側面には、例えばUSB(universal serial bus)2.0規格のUSBケーブルやUSBデバイスを接続するためのUSBコネクタ19が設けられている。
図2は、本コンピュータ10のシステム構成を示す図である。
本コンピュータ10は、図2に示されているように、CPU(central processing unit)101、ノースブリッジ102、主メモリ103、サウスブリッジ104、GPU(Graphics Processing Unit)105、VRAM(ビデオRAM:random access memory)105A、サウンドコントローラ106、BIOS−ROM(basic input/output system-read only memory)107、LAN(local area network)コントローラ108、ハードディスクドライブ(HDD)109、光ディスクドライブ(ODD)110、USBコントローラ111A、カードコントローラ111B、無線LANコントローラ112、エンベデッドコントローラ/キーボードコントローラ(EC/KBC)113、EEPROM(electrically erasable programmable ROM)114等を備える。
CPU101は、本コンピュータ10内の各部の動作を制御するプロセッサである。CPU101は、HDD109から主メモリ103にロードされる、オペレーティングシステム(OS)201、及び動画像再生アプリケーションプログラム202のような各種アプリケーションプログラムを実行する。動画像再生アプリケーションプログラム202は、例えばHDD109等に格納された各種デジタルコンテンツを再生するソフトウェアである。この動画像再生アプリケーションプログラム202は、動画像生成機能を有している。この動画像生成機能は、例えば、HDD109等に格納された写真等の素材(デジタルコンテンツ)を用いて、合成動画(動画像)を作成する機能である。さらに、この動画像生成機能は、動画像に用いる素材を複数のグループに分類し、素材を分析する機能を含む。動画像再生アプリケーションプログラム202は、素材を用いて作成された動画像を再生し、画面(LCD17)に表示する。
また、CPU101は、BIOS−ROM107に格納されたBIOSも実行する。BIOSは、ハードウェア制御のためのプログラムである。
ノースブリッジ102は、CPU101のローカルバスとサウスブリッジ104との間を接続するブリッジデバイスである。ノースブリッジ102には、主メモリ103をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ102は、例えば、PCI EXPRESS規格のシリアルバスなどを介してGPU105との通信を実行する機能も有している。
GPU105は、本コンピュータ10のディスプレイモニタとして使用されるLCD17を制御する表示コントローラである。このGPU105によって生成される表示信号はLCD17に送られる。
サウスブリッジ104は、PCI(Peripheral Component Interconnect)バス上の各デバイス及びLPC(Low Pin Count)バス上の各デバイスを制御する。また、サウスブリッジ104は、HDD109及びODD110を制御するためのIDE(Integrated Drive Electronics)コントローラを内蔵している。さらに、サウスブリッジ104は、サウンドコントローラ106との通信を実行する機能も有している。
サウンドコントローラ106は音源デバイスであり、再生対象のオーディオデータをスピーカ18A,18Bに出力する。LANコントローラ108は、例えばIEEE 802.3規格の有線通信を実行する有線通信デバイスであり、一方、無線LANコントローラ112は、例えばIEEE 802.11g規格の無線通信を実行する無線通信デバイスである。USBコントローラ111Aは、(USBコネクタ19を介して接続される)例えばUSB 2.0規格に対応した外部機器との通信を実行する。例えば、USBコントローラ111Aは、例えば、デジタルカメラに格納されている画像データファイルを受信するために使用される。カードコントローラ111Bは、コンピュータ本体11に設けられたカードスロットに挿入される、SDカードのようなメモリカードに対するデータの書き込み及び読み出しを実行する。
EC/KBC113は、電力管理のためのエンベデッドコントローラと、キーボード13及びタッチパッド16を制御するためのキーボードコントローラとが集積された1チップマイクロコンピュータである。EC/KBC113は、ユーザによるパワーボタン14の操作に応じて本コンピュータ10を電源オン/電源オフする機能を有している。
次に、図3を参照して、以上のような構成を有するコンピュータ10上で動作する動画像再生アプリケーションプログラム202の一機能構成を説明する。ここでは、動画像再生アプリケーションプログラム202が有する機能のうち、動画像生成機能を実現するための構成例について説明する。この動画像生成機能は、インタフェース部(上述のUSBコントローラ111A、カードコントローラ111B等)を介して外部デバイス(デジタルカメラ、メモリカード等)から格納された素材データ51だけでなく、HDD109内の所定のディレクトリに格納された素材データ51やネットワークを介して格納された素材データ51等に対しても適用することができる。なお、この素材データ51は、例えば、静止画像データ301A、音声データ301B、動画像データ301C等である。
動画像再生アプリケーションプログラム202は、素材入力部210、素材分析部211及び動画再生部220を備える。
素材入力部210は、USBコントローラ111A、カードコントローラ111B等のインタフェース部を介して、素材データ51が入力されたことに応答して、素材データ51をHDD109内の素材データベース301に格納する。素材データベース301は、生成される動画像に用いられる素材データ51を格納するためのデータベースである。具体的には、素材データベース301には、素材データ51である、静止画像データ301A、音声データ301B、動画像データ301C等が格納される。素材データベース301に格納された素材データ51は、合成動画の素材候補として用いられる。また、素材入力部210は、素材データ51がHDD109に格納されたことを素材分析部211及び動画再生部220に通知する。
素材分析部211と動画再生部220とは並列して処理を行う。具体的には、素材分析部211は、素材入力部210からの通知に応答して、素材データ51をグループ化し、グループ毎に分析する処理を開始する。素材分析部211は、素材データ51に付加された素材情報302A、グループ化により生成されたグループ情報302B、及びグループ毎の分析により生成された分析情報302Cを、HDD109内の素材情報データベース302に格納する。一方、動画再生部220は、素材入力部210からの通知に応答して、素材データ51を用いて合成動画(動画像)を生成し、生成された合成動画を再生(表示)する処理を開始する。その際、動画再生部220は、素材情報データベース302を参照することにより、所定の条件を満たす素材データ51を素材データベース301から抽出し、合成動画を生成する。
素材分析部211は、素材データ51のグループ化が完了したとき、素材情報302Aとグループ情報302Bとを、素材情報データベース302に格納する。そして、素材分析部211は、グループ毎に素材データ51を分析する処理により生成された分析情報302Cを順次、素材情報データベース302に追加する。そのため、素材分析部211によるグループ化、及びグループ毎の分析が進行することに伴って、動画再生部220が、合成動画に用いる素材データ51を抽出する際に参照できる、素材情報データベース302内の情報が増加する。
具体的には、素材分析部211によって、分析対象の一つのグループに属する素材データ51が分析されている期間内、及び分析される前の期間内(分析情報302Cが生成される前の期間)では、動画再生部220は、当該グループに属する素材データ51に対応する素材情報302Aとグループ情報302Bとを用いて、合成動画を生成する。したがって、動画再生部220は、素材データ51が素材データベース301に格納されるとすぐに(素材分析部211による素材情報302A及びグループ情報302Bの格納に応答して)、素材データ51を用いた合成動画を再生することができる。
また、素材分析部211によって、分析対象のグループに属する素材データ51の分析が完了した後(分析情報302Cが生成された後の期間)では、動画再生部220は、当該グループに属する素材データ51に対応する素材情報302Aとグループ情報302Bに加えて、分析情報302Cも用いて合成動画を生成する。分析情報302Cが追加されることにより、動画再生部220は、登場する人物やイベント、場所等が考慮された、ユーザによる視聴により適した合成動画を再生することができる。以下では、素材分析部211と動画再生部220による処理についてそれぞれ説明する。
素材分析部211は、素材51を分析し、素材51に対応する素材情報302A、グループ情報302B及び分析情報302Cを生成する。素材情報302A、グループ情報302B及び分析情報302Cは、素材データベース301(HDD109)に格納された素材データ51の中から目的の素材を探し出すために用いられる。素材分析部211は、素材情報生成部212、グループ情報生成部213及び分析情報生成部214を備える。
素材情報生成部212は、各素材51に付加された素材情報302Aを素材情報データベース302に格納する。また、素材情報生成部212は、生成した素材情報302Aをグループ情報生成部213に出力する。図4は、素材情報302Aの一構成例を示す。素材情報302Aは、例えば、素材ID、ファイルパス、ファイルサイズ、ファイル形式、生成日時、生成地点、種類、画像サイズ、再生時間、入力経路を示す情報を含む。「素材ID」は、素材51に一意に割り当てられる識別情報である。「ファイルパス」は、素材51が格納される場所を示す。「ファイルサイズ」は、素材51のデータサイズを示す。「ファイル形式」は、素材51のファイルのタイプ(例えば、mpeg,jpeg,mp3等)を示す。「生成日時」は、素材51が生成された日時を表す時刻情報を示す。「生成地点」は、素材51が生成された場所を表す位置情報を示す。「種類」は、素材51の種類(例えば、静止画像、音声、動画像等)を示す。「画像サイズ」は、素材51が静止画像301A又は動画像301Cであるときに、その画像サイズを示す。「再生時間」は、素材51が音声301B又は動画像301Cであるときに、その再生時間を示す。「入力経路」は、素材51がコンピュータ10に入力された経路(例えば、外部記憶メディア、外部記憶装置、ネットワーク上のサーバ等)を示す。
図3に戻り、グループ情報生成部213は、素材入力部210を介して入力された複数の素材51を、各素材51に対応する素材情報302Aに基づいて複数のグループに分類する。グループ情報生成部213は、入力された複数の素材を、例えば生成日時(時刻情報)に基づいて複数のグループに分類する。具体的には、グループ情報生成部213は、例えば、生成日時が時間的に連続する2つの素材データ51において、その生成日時の差がしきい値より小さいときに、これら2つの素材データ51を同一のグループに分類する。また、グループ情報生成部213は、例えば、生成日時の差がしきい値以上であるときに、これら2つの素材データ51を別のグループに分類する。グループ情報生成部213は、各素材51が分類されたグループを示すグループ情報302Bを生成し、素材情報データベース302に格納する。グループ情報生成部213は、生成したグループ情報302Bを分析情報生成部214に出力する。
図5は、グループ情報302Bの一構成例を示す。グループ情報302Bは、素材ID及びグループIDを含む。素材IDは、上述のように、素材51に一意に割り当てられる識別情報である。グループIDは、グループに一意に割り当てられる識別情報である。
なお、素材51が生成日時に基づいてグループに分類される際には、一つのグループに属する素材51が一つのイベント中に生成された素材51であることが想定される。例えば、「入学式」や「運動会」、「結婚式」等のイベントに対応する期間内に撮影された写真が、一つのグループに分類されることが想定される。その際には、グループ情報302Bにイベント名を示す情報を加えてもよい。すなわち、グループ情報生成部213は、例えば、イベント名に「入学式」が設定されたグループ情報302Bを生成する。このイベント名は、例えば、スケジュール管理ソフトウェア等により、ユーザのカレンダーに記載されたイベント情報を用いて設定される。
図3に戻り、分析情報生成部214は、素材データ51が分類された複数のグループの各々について、当該グループに属する素材データ51を分析する。すなわち、分析情報生成部214は、グループ毎に当該グループに属する素材データ51を分析する。なお、以下では、分析対象の素材データ51が静止画像データ301Aである場合を想定する。
分析情報生成部214は、例えば、静止画像データ301Aから顔画像を検出する顔検出処理を実行する。顔画像は、例えば、静止画像データ301Aの特徴を解析し、予め用意された顔画像特徴サンプルと類似する特徴を有する領域を探索することによって検出することができる。顔画像特徴サンプルは、多数の人物それぞれの顔画像特徴を統計的に処理することによって得られた特徴データである。顔検出処理により、静止画像301A内に含まれる各顔画像の位置(座標)、サイズ、正面度等が検出される。また、分類情報生成部214は、検出された顔画像が笑顔である度合いを示す笑顔度を算出してもよい。
さらに、分類情報生成部214は検出された顔画像を分類してもよい。分類情報生成部214は、静止画像データ301Aから検出された複数の顔画像を、同一の人物と推定される顔画像別のグループに分類する。また、分類情報生成部214は検出された顔画像に対応する人物を識別してもよい。その場合、分類情報生成部214は、例えば、識別する人物の顔画像特徴サンプルを用いて、検出された顔画像がその人物であるか否かを判定する。分類情報生成部214は、上述の結果に基づき、検出された顔画像に人物毎の顔IDを付与する。分析情報生成部214は、以上のような分析の結果を示す分析情報302Cを生成する。
図6は、分析情報302Cの一構成例を示す。分析情報302Cは、例えば、素材IDと顔画像情報とを含む。素材IDは、素材51(静止画像データ301A)に一意に割り当てられる識別情報である。顔画像情報は、上述の顔検出処理による分析結果に基づく情報を示す。したがって、顔画像情報は、例えば、顔画像、サイズ、位置、笑顔度、顔IDを示す情報を含む。なお、分析情報302Cには、1つの静止画像301Aから検出された顔画像に対応する数だけ、顔画像情報が格納される。
また、分類情報生成部214は、静止画像データ301Aから人物(顔画像を含む全身や体の一部等)、風景(海、山、花等)、動物(犬、猫、魚等)等のオブジェクトを検出(認識)し、それら分析結果(検出結果)を示す情報を含む分析情報302Cを生成してもよい。さらに、分類情報生成部214は、素材情報302Aや静止画像データ301Aから撮影時刻、撮影位置等を推定し、それら分析結果(推定結果)を示す情報を含む分析情報302Cを生成してもよい。その場合、図6に示すように、分析情報302Cには、人物画像、サイズ、位置、及び人物IDを含む人物画像情報、風景画像、サイズ、位置、及び属性を含む風景情報、動物画像、サイズ、位置、及び属性を含む動物情報、撮影時刻、並びに撮影位置が含まれる。
なお、分析情報生成部214は、音声データ301Bを分析し、検出された声に対応する人物の情報等を含む分析情報302Cを生成してもよい。また、分析情報生成部214は、動画像データ301Cに含まれる各画像フレームを、静止画像データ301Aと同様に分析し、上述の顔画像情報等を含む分析情報302Cを生成してもよい。
分析情報生成部214は、生成された分析情報302Cを分析情報データベース302に格納する。なお、素材情報302A、グループ情報302B及び分析情報302Cは、各々が生成されたときに限らず、一つの素材51に対応する情報(素材情報302A、グループ情報302B及び分析情報302C)が生成されたとき、一つのグループに属する全ての素材51に対応する情報が生成されたとき等に、素材情報データベース302に格納されてもよい。また、分析情報生成部214は、一つのグループに属する全ての素材51の分析が完了したことに応答して、動画再生部220(素材情報抽出部221)に当該グループの分析が完了した旨を通知する。
動画再生部220は、素材情報抽出部221、合成動画生成部222、合成動画出力部223、及び生成通知部224を備える。
素材情報抽出部221は、素材情報データベース302から、格納されている素材情報302A、グループ情報302B及び分析情報302Cを抽出する。また、素材情報抽出部221は、分析情報生成部214からの通知に応答して、分析が完了したグループに対応する分析情報302Cを素材情報データベース302から抽出する。素材抽出部214は、抽出した素材情報302A、グループ情報302B及び分析情報302Cを合成動画生成部222に出力する。
合成動画生成部222は、抽出された素材情報302A、グループ情報302B及び分析情報302Cに基づいて、所定の条件を満たす素材データ51を素材データベース301から抽出する。より具体的には、合成動画生成部222は、分析情報302Cが生成される前の期間において、素材情報302A及びグループ情報302Bに基づいて、所定の条件(第1の条件)を満たす素材データ51を素材データベース301から抽出する。また、合成動画生成部222は、分析情報302Cが生成された後の期間において、素材情報302A、グループ情報302B及び分析情報302Cに基づいて、所定の条件(第2の条件)を満たす素材データ51を素材データベース301から抽出する。上述のように、分析情報生成部214は、グループ毎に、当該グループに属する素材データ51を分析する。そのため、分析が完了したグループに属する素材データ51の分析情報302Cが、素材情報データベース302に格納されている際には、合成動画生成部222は、素材情報302A、グループ情報302B、及び分析が既に完了したグループに対応する分析情報302Cに基づいて、所定の条件を満たす素材データ51を素材データベース301から抽出する。また、合成動画生成部222は、分析情報302Cに基づいて、分析が完了したグループに属する素材51から、所定の条件を満たす素材51を抽出してもよい。この「所定の条件」は、例えば、日時、人物、場所(地点)等を指定する条件である。
合成動画生成部222は、例えば、素材情報302Aに基づいて、指定された期間に生成された素材51を抽出する。また、合成動画生成部222は、例えば、分析情報302Cに含まれる顔画像情報に基づいて、指定された人物の顔画像を含む素材51を抽出する。さらに、合成動画生成部222は、例えば、グループ情報302B及び分析情報302Cに基づいて、指定されたイベントに対応するグループに属する素材51のうち、指定された人物の顔画像を含む素材51を抽出する。
次いで、合成動画生成部222は、抽出された素材51を含む合成動画を生成する。合成動画生成部222は、例えば、各々が所定のタイミング(順序)で表示される複数の静止画像301Aを含む合成動画を生成する。また、この合成動画は、所定のタイミングで出力される音声データ301Bを含んでもよい。合成動画生成部222は、生成した合成動画を合成動画出力部223に出力する。また、合成動画生成部222は、合成動画が生成されたことを生成通知部224に通知する。
合成動画出力部223は、合成動画生成部222から入力された合成動画を出力する。合成動画出力部223は、合成動画を再生し、画面(LCD17)に表示する。また、合成動画出力部223は、合成動画をエンコードし、エンコードした合成動画のファイルを所定の記憶装置(例えば、HDD109等)に格納してもよい。
また、生成通知部224は、合成動画が生成されたことをユーザに通知する。具体的には、生成通知部224は、例えば、合成動画が生成されたことを示すメッセージを画面(LCD17)に表示する。また、生成通知部224は、例えば、合成動画を再生することを選択するボタンと合成動画をファイルに出力することを選択するボタンとを表示してもよい。その場合、合成動画出力部223は、選択されたボタンに応じて合成動画を再生又はファイル出力する。
なお、生成通知部224は、分析情報生成部214からの、グループ毎の素材51の分析処理が完了したことを示す通知に応答して、グループ毎の素材51の分析処理が完了したことを示すメッセージを表示してもよい。その場合、ユーザは、分析処理によって生成された分析情報302Cを用いて、合成動画に用いる素材データ51を選択してもよい。例えば、ユーザは、分析情報302Cに含まれる顔画像情報を用いて作成された顔画像のリストから、合成動画に用いたい人物を選択する。合成動画生成部222は、選択された人物の顔画像を含む素材51を抽出し、この素材51を含む合成動画を生成する。
上述のように、素材分析部211は、素材51に予め付加された情報を含む素材情報302A、素材51を分類したグループの情報を示すグループ情報302B、及び素材51を分析した結果を示す分析情報302Cを生成する。なお、分析情報302Cを生成する処理は、グループ情報302Bを生成する処理よりも、処理量が多いことがある。例えば、静止画像301A(素材51)内に含まれる顔画像を検出した結果を示す、分析情報302Cを生成する処理は、素材51に付加された素材情報302A(例えば、時刻情報)に基づいて決定されるグループを示すグループ情報302Bを生成する処理よりも、一般に処理負荷(処理量)が大きい。換言すると、分析情報302Cを生成する処理に要する時間は、グループ情報302Bを生成する処理に要する時間よりも長い可能性が高い。そのため、例えば、多数の素材51が入力され、全ての素材51に対する分析が完了した後に、それら素材51を用いた合成動画を再生する際には、入力された素材51をユーザが観賞(視聴)できるまでに長い時間を要する可能性がある。
また、素材51を用いた合成動画の生成では、入力された全ての素材51を一度に分析する必要がないことも想定される。例えば、一つのイベント(入学式、結婚式等)に対応する合成動画が生成される際には、当該イベントに対応するグループに属する素材51が分析されていればよい。つまり、分析情報302Cを生成する処理(分析処理)がグループ毎に完了した時点で、当該グループに属する素材51の分析情報302Cに基づく、合成動画が生成され得る。
したがって本実施形態では、処理負荷が小さい素材情報302A及びグループ情報302Bを生成する処理が完了した後、生成されたグループ情報302Bに基づいて、グループ毎に、当該グループに属する素材51の分析情報302Cを生成する。そして、動画再生部220は、グループ毎に、当該グループに属する全ての素材51の分析情報302Cが生成されたことに応答して、生成された分析情報302Cを用いて、所定の条件を満たす素材51を抽出する。また、グループが「入学式」等のイベントに対応する際には、動画再生部220は、グループ毎に、当該グループに属する全ての素材51の分析情報302Cが生成されたことに応答して、グループに属する素材51を用いた合成動画を生成する。つまり、動画再生部220は、グループ毎に素材51の分析処理が完了した時点で、当該グループに属する素材51を用いた合成動画を生成することができる。したがって、動画再生部220は、素材51が入力されてから、当該素材51を用いた動画像が生成されるまでの時間を短縮することができる。
次いで、図7のフローチャートを参照して、動画像再生アプリケーション202によって実行される素材分析処理の手順を説明する。
まず、素材入力部210は、インタフェース部等を介して素材データ51が入力されたか否かを判定する(B101)。素材データ51が入力された場合(B101のYES)、素材入力部210は、入力された素材データ51を素材データベース301に格納する(B102)。素材情報生成部212は、素材データ51に付加された時刻情報等の情報(メタデータ)を含む素材情報302Aを、素材情報データベース302に格納する。素材データ51が入力されていない場合(B101のNO)、素材入力部210は、再度B101の処理を行う。
次いで、グループ情報生成部213は、入力された素材51をグループ化する(B103)。グループ情報生成部213は、例えば、素材情報302Aに含まれる、素材51の生成日時に基づいて、複数の素材51を複数のグループに分類する。具体的には、グループ情報生成部213は、例えば、生成日時が時間的に連続する2つの素材データ51において、その生成日時の差がしきい値未満である場合に、これら2つの素材データ51を同一のグループに分類し、生成日時の差がしきい値以上である場合に、これら2つの素材データ51を別のグループに分類する。上述のように、生成日時の差がしきい値未満である素材データ51が同一のグループに分類されることにより、例えば、「入学式」や「結婚式」で撮影された写真のような、イベントで生成された複数の素材51が、イベント毎に同一のグループに分類される。グループ情報生成部213は、複数の素材51が分類されたグループを示すグループ情報302Bを生成する。
そして、素材情報生成部212は素材情報302Aを素材情報データベース302に格納し、グループ情報生成部213はグループ情報302Bを素材情報データベース302に格納する(B104)。
次いで、分析情報生成部214は、一つのグループ(分析対象のグループ)に属する全ての素材51を分析し、その分析結果を示す分析情報302Cを生成する(B105)。具体的には、分析情報生成部214は、素材51に含まれるオブジェクト(例えば、顔画像)を分析する処理(例えば、検出処理や認識処理)を行い、顔画像情報、人物情報、風景情報、動物情報、撮影時刻情報、撮影位置情報等を含む分析情報302Cを生成する。
分析情報生成部214は、生成された分析情報302Cを素材情報データベース302に格納する(B106)。そして、分析情報生成部214は、分析対象のグループに属する全ての素材51の分析が完了したことを素材情報抽出部221に通知する(B107)。素材情報抽出部221は、この通知に応答して、素材情報データベース302から、分析対象のグループの分析情報302Cを読み出す。素材情報抽出部221による処理の詳細は、図8を参照して後述する。
そして、分析情報生成部214は、B101で入力された素材51が分類された全てのグループについて、分析が完了したか否かを判定する(B108)。分析が完了していない場合(B108のNO)、分析情報生成部214は、分析が完了していないグループを新たな分析対象のグループに設定し(B109)、B105以降の処理を実行する。分析が完了している場合(B108のYES)、分析情報生成部214は素材分析処理を終了する。
また、図8は、動画像再生アプリケーション202によって実行される合成動画生成処理の手順を示すフローチャートである。この合成動画生成処理は、上述の素材分析処理と並行して実行される。すなわち、素材分析部211による素材51の分析と、動画再生部220による合成動画の生成(再生)とが並行して行われる。
まず、素材情報抽出部221は、素材情報データベース302から、素材情報302A、グループ情報302B及び分析情報302Cを抽出する(B201)。これら情報は、素材データベース301に格納された素材51に対応する情報である。つまり、これら情報は、素材情報302A、グループ情報302B及び分析情報302Cを生成(格納)するための素材分析処理が既に施された素材51に対応する情報である。
次に、合成動画生成部222は、抽出された情報(素材情報302A、グループ情報302B及び分析情報302C)に基づいて、所定の条件を満たす素材51を選択する(B202)。具体的には、合成動画生成部222は、抽出された情報に基づいて、所定の条件を満たす素材51の素材IDを抽出する。この所定の条件は、例えば、ユーザにより指定される。例えば、合成動画生成部222により、抽出された情報に基づいて選択可能な条件の候補(例えば、期間、人物、場所(地点)、イベント等)が提示され、ユーザは、合成動画を生成する条件(合成動画に用いる素材51を抽出するための条件)を該候補から選択する。合成動画生成部222は、素材情報データベース302を参照して、選択された条件を満たす素材51の素材IDを抽出する。なお、この所定の条件は、合成動画生成部222によりランダムに設定されてもよい。その場合、例えば、合成動画が生成される度に、ランダムに設定される条件に基づく、異なる合成動画が生成され得る。
合成動画生成部222は、素材データベース301から選択した素材51を抽出する(B203)。すなわち、合成動画生成部222は、抽出した素材IDに基づいて、対応する素材51を素材データベース301から抽出する。次いで、合成動画生成部222は、抽出した素材51を用いて合成動画を生成する(B204)。合成動画生成部222は、生成した合成動画を合成動画出力部223に出力する。
合成動画出力部223は、合成動画の出力方法が再生とファイル出力のいずれであるかを判定する(B205)。合成動画を再生する出力方法が選択されている場合(B205の再生)、合成動画出力部223は、合成動画を再生し、画面に出力する(B206)。一方、合成動画をファイル出力する出力方法が選択されている場合(B205のファイル出力)、合成動画出力部223は、合成動画を所定の形式でファイルに出力する(B207)。
次いで、素材情報抽出部221は、分析情報生成部214から、分析対象のグループに属する全ての素材51の分析が完了したことが通知されたか否かを判定する(B208)。分析対象のグループに属する全ての素材51の分析が完了したことが通知されている場合(B208のYES)、分析情報抽出部221は、素材情報データベース302から、この分析対象のグループ(分析が完了したことが通知されたグループ)に属する素材51の分析情報302Cを抽出する(B209)。
分析対象のグループに属する全ての素材51の分析が完了したことが通知されていない場合(B208のNO)、又はB209における分析情報302Cの抽出が完了したとき、合成動画生成部222は、B202以降の処理を再度実行する。
以上の処理により、素材情報生成部212、グループ情報生成部213及び分析情報生成部214は、それぞれ、入力された素材51の素材情報302A、グループ情報302B及び分析情報302Cを生成する。分析情報生成部214は、一つのグループ(分析対象グループ)に属する全ての素材51の分析が完了したことに応答して、素材情報抽出部221にその旨を通知する。素材情報抽出部221は、この通知に応じて、分析が完了したグループの分析情報302Cを抽出する。つまり、グループ毎の分析情報302Cが生成される度に、合成動画生成に用いられる分析情報302Cが更新(追加)される。合成動画生成部222は、更新された分析情報302Cに基づいて、合成動画に用いる素材51を選択し、選択した素材51を用いて合成動画を生成する。したがって、グループ毎の分析情報302Cが生成される度に、使用できる分析情報302Cが増加するため、合成動画生成部222は、指定される条件により適した素材51を抽出することができる。また、一つのグループに属する全ての素材51に対する分析が完了した時点で、当該グループに属する素材51の分析情報302Cが使用できるようになるため、つまり、入力された全ての素材51に対する分析が完了することを待たずに、分析が完了したグループ毎に素材51の分析情報302Cが使用できるようになるため、素材51が入力されてから、当該素材51の分析情報302Cを用いて動画像が生成されるまでの時間を短縮できる。
次いで、図9のフローチャートを参照して、動画像再生アプリケーション202によって実行される素材分析処理の別の手順を説明する。
まず、素材入力部210は、インタフェース部等を介して素材データ51が入力されたか否かを判定する(B301)。素材データ51が入力された場合(B301のYES)、素材入力部210は、入力された素材データ51を素材データベース301に格納する(B302)。素材情報生成部212は、素材データ51に付加された時刻情報等の情報(メタデータ)を用いて、素材情報302Aを生成する。
次いで、グループ情報生成部213は、入力された素材51をグループ化する(B303)。グループ情報生成部213は、例えば、素材情報302Aに含まれる、素材51の生成日時に基づいて、複数の素材51を複数のグループに分類する。具体的には、グループ情報生成部213は、例えば、生成日時が時間的に連続する2つの素材データ51において、その生成日時の差がしきい値未満である場合に、これら2つの素材データ51を同一のグループに分類し、生成日時の差がしきい値以上である場合に、これら2つの素材データ51を別のグループに分類する。上述のように、生成日時の差がしきい値未満である素材データ51が同一のグループに分類されることにより、例えば、「入学式」や「結婚式」のようなイベントで生成された複数の素材51が、イベント毎に同一のグループに分類される。グループ情報生成部213は、素材51が分類されたグループを示すグループ情報302Bを生成する。
次いで、分析情報生成部214は、一つのグループ(分析対象のグループ)に属する全ての素材51を分析し、その分析結果を示す分析情報302Cを生成する(B304)。具体的には、分析情報生成部214は、素材51に含まれるオブジェクト(例えば、顔画像)を分析する処理(例えば、検出処理や認識処理)を行い、顔画像情報、人物情報、風景情報、動物情報、撮影時刻情報、撮影位置情報等を含む分析情報302Cを生成する。
分析情報生成部214は、生成された素材情報302A、グループ情報302B及び分析情報302Cを素材情報データベース302に格納する(B305)。そして、分析情報生成部214は、分析対象のグループに属する全ての素材51の分析が完了したことを素材情報抽出部221に通知する(B306)。素材情報抽出部221は、この通知に応答して、素材情報データベース302から、分析対象のグループの素材情報302A、グループ情報302B及び分析情報302Cを読み出す。素材情報抽出部221による処理の詳細は、図8を参照して上述した通りである。
そして、分析情報生成部214は、B301で入力された素材51が分類された全てのグループについて、分析が完了したか否かを判定する(B307)。分析が完了していない場合(B307のNO)、分析情報生成部214は、分析が完了していないグループを新たな分析対象のグループに設定し、B305以降の処理を実行する(B308)。分析が完了している場合(B307のYES)、分析情報生成部214は素材分析処理を終了する。
以上の処理により、素材情報生成部212、グループ情報生成部213及び分析情報生成部214は、それぞれ、入力された素材51の素材情報302A、グループ情報302B及び分析情報302Cを生成(格納)する。分析情報生成部214は、一つのグループ(分析対象グループ)に属する全ての素材51の分析が完了したことに応答して、素材情報抽出部221にその旨を通知する。素材情報抽出部221は、この通知に応じて、分析が完了したグループの素材情報302A、グループ情報302B及び分析情報302Cを抽出する。つまり、グループ毎の分析が完了する度に、合成動画生成に用いられる素材情報302A、グループ情報302B及び分析情報302Cが更新(追加)される。合成動画生成部222は、更新された素材情報302A、グループ情報302B及び分析情報302Cに基づいて、合成動画に用いる素材51を選択し、選択した素材51を用いて合成動画を生成する。したがって、グループ毎の分析が完了する度に、使用できる素材情報302A、グループ情報302B及び分析情報302Cが増加するため、合成動画生成部222は、指定される条件により適した素材51を抽出することができる。また、一つのグループに属する全ての素材51に対する分析が完了した時点で、当該グループに属する素材51が使用できるようになるため、つまり、入力された全ての素材51に対する分析が完了することを待たずに、分析が完了したグループ毎に素材51が使用できるようになるため、素材51が入力されてから、当該素材51を用いた動画像が生成されるまでの時間を短縮できる。
以上説明したように、本実施形態によれば、素材が入力されてから、解析された当該素材を用いた動画像が生成されるまでの時間を短縮できる。本実施形態の動画像再生アプリケーション202は、入力された素材51に対応する素材情報302A、グループ情報302B及び分析情報302Cを生成する。動画像再生アプリケーション202は、一つのグループ(分析対象グループ)に属する全ての素材51の分析が完了したことに応答して、当該完了したグループの分析情報302Cを用いて、合成動画に用いる素材51を選択し、選択した素材51を用いて合成動画を生成する。したがって、グループ毎の分析情報302Cが生成される度に、使用できる分析情報302Cが増加するため、合成動画生成部222は、指定される条件により適した素材51を抽出することができる。また、入力された全ての素材51に対する分析が完了することを待たずに、分析が完了したグループ毎に素材51の分析情報302Cが使用できるようになるため、素材51が入力されてから、当該素材51を用いた動画像が生成されるまでの時間を短縮できる。
なお、本実施形態の素材分析処理及び合成動画生成処理の手順は全てソフトウェアによって実行することができる。このため、素材分析処理及び合成動画生成処理の手順を実行するプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのプログラムを通常のコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
また本発明の実施形態は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。