以下、本発明の実施形態を図面に基づいて説明する。
[1.通信システムSの構成及び動作概要]
始めに、図1等を参照して、本実施形態の通信システムの構成及び動作概要について説明する。図1は、本実施形態の通信システムSの概要構成例を示す図である。図1に示すように、通信システムSは、配信サーバ1、及び複数のクライアント2を含んで構成される。配信サーバ1は、本発明の情報処理装置の一例である。クライアント2は、本発明の端末装置の一例である。また、配信サーバ1とクライアント2とはネットワークNWを介して通信可能になっている。ネットワークNWは、例えば、インターネット等により構成される。
配信サーバ1は、例えばクライアント2からのコンテンツ、またはコンテンツのカメラワークデータのアップロードを受け付ける。配信サーバ1は、例えばクライアント2からのコンテンツ要求に応じて、コンテンツをクライアント2へ送信する。コンテンツは、動画データを含む。動画データは、動画を構成する画像フレーム内で、表示手段により表示される表示範囲が、動画の再生位置に応じて変化可能な動画を表すデータである。このような動画には、例えばパノラマ動画がある。パノラマ動画は、例えば高解像度のカメラで、且つ広範囲を撮影可能なレンズを搭載するカメラにより被写体が撮影された動画である。広範囲を撮影可能なレンズには、ワイドレンズ、魚眼レンズ、360レンズ等がある。再生位置とは、動画データの再生開始からの経過時間である。なお、コンテンツは、音声データを含んでもよい。コンテンツの送信は、例えば、ネットワークNWを介してストリーミング配信により行われる。クライアント2は、配信サーバ1からストリーミング配信されたコンテンツを受信する。
また、配信サーバ1は、例えばクライアント2からカメラワークデータのリクエストに応じて、コンテンツのカメラワークデータをクライアント2へ送信する。カメラワークデータは、動画を構成する画像フレーム内で表示手段により表示される表示範囲を再生位置ごとに示す表示範囲情報の一例である。この表示範囲は、1画像フレームのうち表示手段の画面に描画される描画領域に相当する。言い換えれば、表示範囲は、画像フレームで画定される撮影範囲から切り出される範囲である。このような表示範囲は、例えば、疑似的なカメラワーク(以下、「疑似カメラワーク」という)により指定される。例えば、動画を構成する画像フレームが三次元仮想空間に配置された仮想スクリーンに投影されるものとし、三次元仮想空間において動画を見る人物が存在すると仮定する。疑似カメラワークとは、例えば仮想スクリーンに投影された動画を見る人物の視点位置、視線方向、及び視野面積の少なくともいずれか一つを決めることをいう。言い換えれば、疑似カメラワークとは、仮想カメラの向きや視界の広さなどを決めることをいう。ここで、仮想カメラは、動画を構成する画像フレーム内の描画領域を決定する仮想的なカメラをいう。上記カメラワークデータ(以下、「疑似カメラワークデータ」という)により疑似カメラワークを再現することができる。1つの疑似カメラワークデータは、例えば、動画データの再生開始からの再生終了までの再生時間に含まれる全ての画像フレームにおける表示範囲が示されるとは限らない。つまり、1つの疑似カメラワークデータは、再生時間における一部の時間範囲に含まれる画像フレームにおける表示範囲が示される場合もある。クライアント2は、例えば、ストリーミングでコンテンツを受信しながら、取得された疑似カメラワークデータが示す表示範囲に従って、動画を表示させる。
配信サーバ1は、記憶装置3と接続可能になっている。記憶装置3は、例えばハードディスクドライブ(HDD)により構成される。記憶装置3は、配信サーバ1に備えられる。或いは、記憶装置3は、配信サーバ1とは異なるサーバに備えられてもよい。記憶装置3は、クライアント2からの要求に応じて、クライアント2へ送信されるWebページのデータが記憶される。さらに、記憶装置3には、動画データ記憶領域31a、音声データ記憶領域31b、ワークファイル記憶領域31c、及びシーン情報記憶領域31dが設けられている。
動画データ記憶領域31aには、複数の動画データが記憶される。動画データ記憶領域31aに記憶された動画データは、配信サーバ1にアクセス可能な複数のクライアント2間で共有することができる。音声データ記憶領域31bには、複数の音声データが記憶される。音声データ記憶領域31bに記憶された音声データは、配信サーバ1にアクセス可能な複数のクライアント間で共有することができる。
次に、ワークファイル記憶領域31cには、ワークファイルがコンテンツごとに対応付けられて記憶される。ワークファイルには、コンテンツのタイトル、及び疑似カメラワークデータ等が格納される。疑似カメラワークデータには、シーン情報が付与されている場合もある。シーン情報は、動画のシーンの特徴を示す情報である。ここで、動画のシーンとは、動画上のある動作の一区切りとなる範囲を示す。このようなシーンには、例えば、歌手が歌唱するシーン、俳優が演じるシーン、又はイベントの様子を映し出すシーンなどがある。シーン情報には、例えば、シーンに表れる歌手や俳優等の被写体を示すテキスト情報や被写体を識別する識別情報等が含まれる。ワークファイルには、例えば、このワークファイルを識別するワークIDが付与される。なお、ワークファイルには、コンテンツを識別するコンテンツIDが含まれてもよい。ワークファイル記憶領域31cに記憶されるワークファイルには、例えば、クライアント2からアップロードされたワークファイルも含まれる。1つのコンテンツには、複数のワークファイルが対応付けられる場合もある。例えば、あるコンテンツに対して、複数のユーザそれぞれにより行われた疑似カメラワークにより指定された表示範囲を示す疑似カメラワークデータが対応付けられる。
シーン情報記憶領域31dは、シーン情報データベースがコンテンツごとに対応付けられて記憶される。シーン情報データベースは、動画を構成する画像フレームにおける部分領域ごと、且つ再生位置ごとにシーン情報を対応付けて登録可能なデータベースである。部分領域とは、画像フレームにおける1以上のピクセル(画素)から構成される領域である。部分領域は、動画の再生位置と、この再生位置における画像フレーム上の位置とによって決定される。シーン情報データベースに登録されるシーン情報は、領域の特徴を示す第2の検索情報の一例である。なお、シーン情報データベースには、動画のシーン以外の特徴を示す情報が部分領域に対応つけられて登録されるように構成してもよい。なお、部分領域を、1画像フレームにおける1ピクセルとしてもよいが、この場合、シーン情報を管理するための負荷が大きくなる。そのため、動画を、「縦ピクセル(複数ピクセル)H×横ピクセル(複数ピクセル)W×再生時間(複数フレーム)F」の立体的なブロックに分けて、ブロックごとにシーン情報が対応付けられて登録されることが望ましい。このようなブロックを、以下、「動画ブロック」という。図2は、3次元動画空間を、複数の動画ブロックに分けた例を示す概念図である。図2の例では、各動画ブロックには、それぞれ、固有のブロックIDが付与されている。各動画ブロックには、それぞれ、動画を構成する画像フレームF上の座標位置、及び再生位置が対応付けられている。この再生位置は、例えば、動画ブロックに含まれる複数の画像フレームの中で、先頭の画像フレームの再生位置である。この場合の画像フレームは、図2に示すように分割された画像フレームである。そして、シーン情報データベースには、例えば、クライアント2からアップロードされた疑似カメラワークデータに付与されたシーン情報が、ブロックIDに対応付けられて登録される。この場合のシーン情報は、クライアント2のユーザにより投稿されたシーン情報である。同一の動画ブロックに対して、同一又は類似するシーン情報が複数のユーザにより投稿される場合がある。そのため、シーン情報データベースには、図2に示すように、シーン情報の投稿回数がブロックIDに対応付けられて登録される。なお、図2に示すように、全ての動画ブロックにシーン情報及びシーン情報の投稿回数が登録されるとは限らない。また、シーン情報データベースは、クライアント2から提供されるシーン情報に依らず、例えばシステム運営者側で生成、更新されるようにしてもよい。
そして、配信サーバ1は、図1に示すように、制御部11及びインターフェース部12を備えて構成される。制御部11は、コンピュータとしてのCPU、ROM、及びRAM等により構成される。制御部11は、本発明の受信手段、第1決定手段、及び第2決定手段の一例である。制御部11は、コンテンツの送信又は受信制御、及び疑似カメラワークデータの送信又は受信制御等を行う。制御部11は、クライアント2から、疑似カメラワークデータのリクエストを受信したとき、リクエストに基づいて、クライアント2へ返信する疑似カメラワークデータを決定する。なお、疑似カメラワークデータの決定方法については後述する。
次に、クライアント2は、図1に示すように、制御部21、記憶部22、ビデオRAM23、映像制御部24、操作処理部25、音声制御部26、インターフェース部27、及びバス28等を備えて構成される。これらの構成要素は、バス28に接続されている。映像制御部24には、ディスプレイを備える表示部24aが接続される。ディスプレイは、表示手段の一例である。操作処理部25には、操作部25aが接続される。操作部25aには、例えば、マウス、キーボード、リモコン等がある。表示部24aと操作部25aとを兼ねるタッチパネルが適用されてもよい。制御部21は、ユーザによる操作部25aからの操作指示を、操作処理部25を介して受け付ける。ユーザは、操作部25aを用いて、上述した疑似カメラワークの操作を行うことができる。音声制御部26には、スピーカ26aが接続される。インターフェース部27は、ネットワークNWに接続される。
制御部21は、コンピュータとしてのCPU、ROM、及びRAM等により構成される。制御部21は、タイマー機能を備える。記憶部22は、例えば、例えばハードディスクドライブ(HDD)により構成される。記憶部22には、OS(Operating System)、及びプレイヤーソフトウェア等が記憶されている。プレイヤーソフトウェアは、コンテンツを再生するためのプログラムである。なお、プレイヤーソフトウェアは、例えば、ネットワークNWに接続された所定のサーバからダウンロードされるようにしてもよい。或いは、プレイヤーソフトウェアは、例えば、記録媒体に記録されて記録媒体のドライブを介して読み込まれるようにしてもよい。
制御部21は、プレイヤーソフトウェアを実行することでコンテンツを再生するプレイヤーとして機能する。制御部21はプレイヤーの機能により、配信サーバ1からストリーミング配信されたコンテンツを順次取得し、コンテンツを再生させる。制御部21におけるRAMにはバッファメモリが設けられている。バッファメモリには、例えば配信サーバ1からストリーミング配信されたコンテンツに含まれる動画データ等が一時的に保持される。また、バッファメモリには、例えば配信サーバ1から配信された疑似カメラワークデータが一時的に保持される。制御部21は、バッファメモリからビデオRAM23へ動画データを出力する。ビデオRAM23には、フレームバッファがRAMに設けられている。例えば、フレームバッファには、動画データにより再生される動画を構成する画像フレームにおいて、疑似カメラワークデータが示す表示範囲に対応する部分の画像データが書き込まれる。映像制御部24は、制御部21からの制御信号に従って、フレームバッファに書き込まれた画像データを、それぞれに対応する画面に描画することで表示させる。なお、例えば配信サーバ1からバッファメモリに保持されたコンテンツに音声データが含まれる場合がある。この場合、制御部21は、バッファメモリから音声データを再生して音声制御部26へ出力する。音声制御部26は、音声データからアナログ音声信号を生成し、生成したアナログ音声信号をスピーカ26aへ出力する。
また、制御部21は、ユーザの疑似カメラワークの操作により、ディスプレイの画面に表示中の動画を構成する画像フレームにおける一部分の表示範囲の指示を受け付ける。例えば、制御部21は、画面に表示中の動画を構成する画像フレームにおいて表示される表示範囲の変更指示を受け付ける。制御部21は、この変更指示に応じて、画面に表示される表示範囲を変更表示する。言い換えれば、ユーザは、疑似カメラワークの操作により、視点位置、視線方向及び視野面積のうち少なくとも何れか1つを変更することで、画面に表示中の動画の表示範囲を変更させることができる。例えば、動画を構成する画像フレームが三次元仮想空間に配置された仮想スクリーンに投影されるものとし、三次元仮想空間において動画を見る人物が存在すると仮定する。視点位置は、その人物が動画を見ている位置である。視線方向は、その人物の動画に対する視線の方向である。視野面積は、例えば、三次元仮想空間に配置された仮想スクリーン上において、その人物の視野の範囲にある領域の面積である。なお、視野面積は、その人物の視野の範囲としてもよい。そして、疑似カメラワークの操作により、仮想スクリーン上において、動画の表示範囲が決定される。つまり、仮想スクリーンから、表示範囲として決定された範囲の画像が切り出され、切り出された画像が画面に表示される。
図3(A)〜(C)は、仮想スクリーンの例と、仮想スクリーンに対する表示範囲の例とを示す図である。図3(A)の例では、仮想スクリーンとしてスクリーンSC1が定義される。スクリーンSC1は、長方形の平面スクリーンであり、長方形の平面に動画が投影される。スクリーンSC1上の表示範囲R1は、例えば、X座標、Y座標、幅及び高さにより規定される。例えば、スクリーンSC1の左上の頂点をスクリーンSC1の座標系における原点とする。X座標及びY座標は、視点位置を定める。X座標は、表示範囲R1の左上の頂点の横方向の座標であり、Y座標は、表示範囲R1の左上の頂点の縦方向の座標である。例えば三次元仮想空間において、スクリーンSC1から所定距離離れている点を視点と仮定してもよい。例えば、視点を通り、スクリーンSC1と垂直に交わる線を、視線とする。視線とスクリーンSC1とが交わる点が、表示範囲R1の中心となる。幅及び高さは、視野面積を定める。幅及び高さは、表示範囲R1の横の長さ及び縦の長さである。視線方向は、予め定められている。
図3(B)の例では、仮想スクリーンとしてスクリーンSC2が定義される。スクリーンSC2は、円筒形のスクリーンであり、円筒の側面に動画が投影される。円筒の側面は、仮想立体面の一例である。スクリーンSC2には、例えば円筒状のパノラマ動画が投影される。パノラマ動画は、例えば、全方位映像である。パノラマ動画は、360度より視野角が狭い部分方位映像であってもよい。スクリーンSC2上の表示範囲R2は、例えば、方位角、横視野角、及び高さにより規定される。方位角は、視線方向を定める。例えば、スクリーンSC2の円筒の中心軸の中点を、視点とする。また、視点を、三次元仮想空間の座標系における原点とし、スクリーンSC2の中心軸をZ軸とする。X軸は、原点を通り、Y軸及びZ軸に垂直である。Y軸は、原点を通り、X軸及びZ軸に垂直である。方位角は、視点からの視線の方向を定める。視線は、例えば、Z軸と垂直である。方位角は、例えば、X軸と視線とがなす角度である。横視野角及び高さは、視野面積を定める。横視野角は、視線の方向を中心とした横方向の視野の範囲を示す角度である。高さは、表示範囲R2の縦の長さである。方位角、横視野角及び高さに基づいて、三次元仮想空間における視野範囲を示す四角錐が定義される。この四角錐がビューボリュームである。ビューボリュームとは、三次元仮想空間において、投影変換の対象となる範囲をいう。実際のビューボリュームは四角錐台であるが、説明の便宜上、四角錐を用いる。ビューボリュームの頂点が視点であり、ビューボリュームの底面の中心を視線が通る。ビューボリュームの側面P21〜P24のうち、Z軸と平行な側面P21と側面P22とがなす角度が横視野角である。ビューボリュームとスクリーンSC2とが交わる面の縦方向の長さが、高さである。そして、ビューボリュームとスクリーンSC2とが交わる面が、表示範囲R2である。視点位置は、予め定められている。
図3(C)の例では、仮想スクリーンとしてスクリーンSC3が定義される。スクリーンSC3は、球状のスクリーンであり、球面に動画が表示される。スクリーンSC3には、例えば球状のパノラマ動画が表示される。スクリーンSC3上の表示範囲R3は、例えば、方位角、仰俯角、横視野角、縦視野角により規定される。方位角及び仰俯角は、視線方向を定める。三次元仮想空間において、例えば、スクリーンSC3に囲まれている範囲内に、視点が位置する。例えば、スクリーンSC3の球の中心を、視点とする。また、視点を、三次元仮想空間の座標系における原点とし、縦方向の座標軸をZ軸とする。X軸は、原点を通り、Y軸及びZ軸に垂直である。Y軸は、原点を通り、X軸及びZ軸に垂直である。方位角は、例えば、XZ平面と視線とがなす角度である。仰俯角は、例えば、XY平面と視線とがなす角度である。横視野角及び縦視野角は、視野面積を定める。横視野角は、視線の方向を中心とした横方向の視野の範囲を示す角度である。縦視野角は、視線の方向を中心とした縦方向の視野の範囲を示す角度である。XY平面上の線であって、原点を通り、視線と垂直に交わる線を、視線の縦回転軸とする。原点を通り、視線と縦回転軸とのそれぞれに垂直に交わる線を、視線の横回転軸とする。方位角、仰俯角、横視野角及び縦視野角に基づいて、三次元仮想空間における視野範囲を示す四角錐が定義される。この四角錐がビューボリュームである。ビューボリュームの頂点が視点であり、ビューボリュームの底面の中心を視線が通る。ビューボリュームの側面P31〜P34のうち、Z軸と平行な側面P31と側面P32とがなす角度が横視野角である。側面P33と側面P34とがなす角度が縦視野角である。そして、ビューボリュームとスクリーンSC3とが交わる面が、表示範囲R3である。視点位置は、予め定められている。透視変換により、視点位置、視線方向及び視野面積に基づいて、仮想スクリーン上の表示範囲の三次元座標が、二次元座標に変換される。変換された二次元座標により、例えばパノラマ動画を構成する画像フレームのうちどの部分が表示範囲内にあるかを特定することができる。方位角及び仰俯角の少なくとも何れかが変化することにより、視線方向が変化すると、視線方向に応じて表示範囲R3が変化する。また、縦視野角および横視野角の少なくとも何れかが変化することにより、視野面積が変化すると、視野面積に応じて表示範囲R3は変化する。つまり、表示範囲R3は、視線方向および視野面積に応じた範囲となる。なお、スクリーンSC3は、一般に視点を完全に覆う立体であればよく、例えば、立方体等の形状をしたスクリーンであってもよい。
なお、スクリーンSC1〜SC3のうち何れの仮想スクリーンが用いられるかは、例えば、動画データの種類に応じて、仮想スクリーンが決定されてもよい。例えば、パノラマ動画以外の動画に対しては、スクリーンSC1が決定され、円筒状のパノラマ動画に対しては、スクリーンSC2が決定され、球状のパノラマ動画に対しては、スクリーンSC3が決定されてもよい。
また、制御部21は、画面に表示中の動画の上記表示範囲を示す疑似カメラワークデータを生成する。図4(A)〜(C)は、制御部21により生成された疑似カメラワークデータの一例である。図4(A)は、仮想スクリーンが長方形のスクリーンSC1である場合の例を示す。図4(B)は、仮想スクリーンが円筒形のスクリーンSC2である場合の例を示す。図4(C)は、仮想スクリーンが球形のスクリーンSC3である場合の例を示す。なお、図4(A)の例において、例えば、アスペクト比が16対9のように決まっている場合、幅と高さの何れか一方が決まれば他方が決まるので、疑似カメラワークデータには幅と高さの何れか一方が含まれればよい。図4(A)〜図4(C)の例では、0ミリ秒、16ミリ秒、33ミリ秒、49ミリ秒等のそれぞれの再生位置の画像フレームにおける表示範囲を示す疑似カメラワークデータを示している。なお、16ミリ秒は、ディスプレイのリフレッシュレート(60Hz)と同程度である。
[2.通信システムSの動作]
次に、本実施形態の通信システムSの動作について説明する。
(2−1.疑似カメラワークデータのアップロード動作)
先ず、クライアント2においてコンテンツ再生中に疑似カメラワークデータが配信サーバ1へアップロードされる際の動作について説明する。
(2−1−1.クライアント2の処理)
図5を参照して、疑似カメラワークデータのアップロード動作におけるクライアント2の処理を説明する。図5(A)は、クライアント2の制御部21におけるメイン処理を示すフローチャートである。図5(B)は、図5(A)に示すステップS4における入力処理の一例を示すフローチャートである。
例えばクライアント2においてプレイヤーソフトウェアが起動すると、クライアント2はページリクエストを配信サーバ1へ送信する。そして、クライアント2は、ページリクエストに応じて配信サーバ1から送信されたWebページを受信して表示部24aにおけるディスプレイに表示する。このWebページには、例えば、コンテンツの情報が選択可能に表示される。Webページに表示されるコンテンツの情報は、配信サーバ1にアップロードされた複数のコンテンツの中の一部のコンテンツの情報である。これには、例えば、ユーザに推奨されるコンテンツの情報、またはユーザにより入力されたキーワードに基づき検索されたコンテンツの情報が該当する。コンテンツの情報には、例えば、コンテンツのタイトル等の情報が含まれる。
そして、ユーザが操作部25aを操作して再生対象のコンテンツの情報を選択すると、図5(A)に示すメイン処理を開始する。メイン処理が開始されると、制御部21は、ワークファイルを初期化し、選択されたコンテンツの再生を開始する(ステップS1)。これにより、配信サーバ1からストリーミング配信されたコンテンツに含まれる動画データにより再生された動画がディスプレイのメイン画面に表示される。ワークファイルは、疑似カメラワークデータをアップロードするためのファイルである。ワークファイルは、記憶部22に予め記憶される。ワークファイルの初期化により、再生が開始されたコンテンツのタイトルがワークファイルに設定される。ワークファイルには、コンテンツIDが設定されてもよい。
なお、図5(A)の例では、メイン画面に表示された動画に対する疑似カメラワークの操作入力は「手動」に設定されているものとする。これにより、メイン画面に表示される動画の表示範囲は、例えば配信サーバ1から取得される疑似カメラワークデータに依らず、ユーザの疑似カメラワークの操作により変化することになる。
次いで、制御部21は、現在の再生位置における動画の表示範囲を示す疑似カメラワークデータをワークファイルに格納する(ステップS2)。次いで、制御部21は、現在の再生位置に対してユーザによるシーン情報の入力があるか否かを判定する(ステップS3)。
図5(C),(D)は、シーン情報を入力するための画面例を示す図である。図5(C)に示す画面には、再生された動画が表示されていると共に、表示中の動画のシーンに表れる複数の人物それぞれに対応するボタンが選択可能に表示されている。この人物は、例えば歌手であり、被写体の一例である。これらのボタンは、シーン情報を入力するためのボタン(以下、「シーン情報入力ボタン」という)である。各シーン情報入力ボタンは、例えばコンテンツ再生中に、ユーザから操作部25aを介してシーン情報入力ボタンの表示指示があった場合に表示される。各シーン情報入力ボタンには、それぞれ、人物を識別するID(識別情報)が対応付けられている。この対応付けは、例えば配信サーバ1側でコンテンツ生成時に行われる。なお、図5(C)の例では、人物を識別するIDがシーン情報入力ボタンに対応付けられている。しかし、人物以外の動物や建物等の被写体が表示される動画である場合、これらの被写体を識別するIDがシーン情報入力ボタンに対応付けられる。一方、図5(D)に示す画面には、再生された動画が表示されていると共に、文字列等のテキスト情報を入力するためのテキスト入力欄が表示されている。テキスト入力欄は、例えばコンテンツ再生中に、ユーザから操作部25aを介してテキスト入力欄の表示指示があった場合に表示される。
例えば、図5(C)に示す画面の表示状態で、ユーザが好きな人物に対応するシーン情報入力ボタンを選択すると、制御部21は、シーン情報の入力があると判定し(ステップS3:YES)、ステップS4の入力処理へ進む。シーン情報入力ボタンの選択は、例えばマウスによりシーン情報入力ボタンをクリック、または指やペン等でシーン情報入力ボタンをタップすることにより行われる。また、例えば、図5(D)に示す画面の表示状態で、ユーザがテキスト入力欄を指定すると、制御部21は、シーン情報の入力があると判定し(ステップS3:YES)、ステップS4の入力処理へ進む。テキスト入力欄の指定は、例えばマウスによりテキスト入力欄をクリック、または指やペン等でテキスト入力欄をタップすることにより行われる。一方、ユーザによるシーン情報の入力がないと判定された場合(ステップS3:NO)、ステップS6へ進む。
ステップS4の入力処理では、図5(B)に示すように、制御部21は、シーン情報の入力がシーン情報入力ボタンによる「ID入力」であるか否かを判定する。例えば、図5(C)に示す画面の表示状態でシーン情報入力ボタンが選択された場合、シーン情報入力ボタンによる「ID入力」であると判定され(ステップS41:YES)、ステップS42へ進む。一方、例えば、図5(D)に示す画面の表示状態でテキスト入力欄が指定された場合、シーン情報入力ボタンによる「ID入力」でないと判定され(ステップS41:NO)、ステップS43へ進む。
ステップS42では、制御部21は、選択されたシーン情報入力ボタンに対応するIDをシーン情報として記憶し、且つ、このシーン情報入力ボタンが選択された時の動画の再生位置を示す再生位置情報をシーン情報に対応付けて記憶する。一方、ステップS43では、制御部21は、テキスト入力と判断して、ユーザが例えばキーボード等から最初の1文字目を入力した時の動画の再生位置を示す再生位置情報を記憶する。なお、最初の1文字目を入力した時の動画の再生位置でなく、2文字目からテキスト入力完了までの間の何れかの時点における動画の再生位置を示す再生位置情報が記憶されるように構成してもよい。そして、制御部21は、ユーザによりテキスト入力欄に入力されたテキスト情報をシーン情報として、ステップS43で記憶された再生位置情報に対応付けて記憶する(ステップS44)。
図5(A)に示す処理に戻り、ステップS5では、制御部21は、図5(B)の処理で記憶されたシーン情報と再生位置情報とを、ステップS2で格納された疑似カメラワークデータに対応付けてワークファイルに格納する。これにより、疑似カメラワークデータにはシーン情報と再生位置情報とが付与される。次いで、制御部21は、ユーザによる疑似カメラワークデータのアップロード指示があるか否かを判定する(ステップS6)。アップロード指示があったと判定された場合(ステップS6:YES)、ステップS7へ進む。一方、アップロード指示がないと判定された場合(ステップS6:NO)、ステップS9へ進む。
ステップS7では、制御部21は、少なくとも、疑似カメラワークデータが格納されたワークファイルをネットワークNWを介して配信サーバ1へ送信する。これにより、動画の再生開始から再生終了までの一部分の疑似カメラワークデータがアップロードされる。次いで、制御部21は、ワークファイルの内容をクリアし(ステップS8)、ステップS2に戻る。これにより、空のワークファイルが記憶部22に残る。
ステップS9では、制御部21は、コンテンツの終了位置まで再生したか否かを判定する。コンテンツの終了位置まで再生していないと判定された場合(ステップS9:NO)、ステップS2に戻り、上記処理を繰り返す。一方、コンテンツの終了位置まで再生したと判定された場合(ステップS9:YES)、ステップS10へ進む。
ステップS10では、制御部21は、疑似カメラワークデータをアップロードするかをユーザに問い合わせるメッセージとともにアップロードボタンを画面に表示する。次いで、制御部21は、ユーザによる疑似カメラワークデータのアップロード指示があるか否かを判定する(ステップS11)。例えば、ユーザがアップロードボタンを選択すると、制御部21は、アップロード指示があったと判定し(ステップS11:YES)、ステップS12へ進む。一方、アップロード指示がないと判定された場合(ステップS11:NO)、図5(A)に示す処理を終了する。ステップS12では、少なくとも疑似カメラワークデータが格納されたワークファイルをネットワークNWを介して配信サーバ1へ送信し、図5(A)に示す処理を終了する。
(2−1−2.配信サーバ1の処理)
図6を参照して、疑似カメラワークデータのアップロード動作における配信サーバ1の処理を説明する。図6は、配信サーバ1の制御部11における処理を示すフローチャートである。図6に示す処理は、配信サーバ1がクライアント2からワークファイルを受信した場合に開始される。図6に示す処理が開始されると、制御部11は、受信されたワークファイルをワークファイル記憶領域31cに記憶する(ステップS101)。次いで、制御部11は、受信されたワークファイルに設定されたコンテンツのタイトルからコンテンツの動画データを動画データ記憶領域31aから特定する(ステップS102)。
次いで、制御部11は、受信されたワークファイルに格納された疑似カメラワークデータの中で、シーン情報及び再生位置情報が付与されている疑似カメラワークデータを特定する(ステップS103)。次いで、制御部11は、ステップS102で特定された動画データを構成する動画ブロックに対応付けられた座標位置及び再生位置と、特定した疑似カメラワークデータが示す表示範囲及び疑似カメラワークデータに付与された再生位置情報とに基づいて、1以上の動画ブロックを特定する(ステップS104)。例えば、動画データを構成する複数の動画ブロックの中から、特定された疑似カメラワークデータが示す表示範囲に上記座標位置が含まれ、且つ、特定された疑似カメラワークデータに付与された再生位置情報が示す再生位置における画像フレームの一部が含まれる動画ブロックが特定される。
次いで、制御部11は、ステップS103で特定された疑似カメラワークデータに付与されたシーン情報中にテキスト情報が含まれているか否かを判定する(ステップS105)。シーン情報中にテキスト情報が含まれていると判定された場合(ステップS105:YES)、ステップS106へ進む。一方、シーン情報中にテキスト情報が含まれていないと判定された場合(ステップS105:NO)、ステップS108へ進む。この場合、シーン情報中には、例えば、人物を識別するIDが含まれていることになる。
ステップS106では、制御部11は、シーン情報中に含まれるテキスト情報を構文解析して単語情報を取り出す。これにより、例えばテキスト情報が例えば文章であった場合、文章中からワード(単語)が1以上取り出される。次いで、制御部11は、例えば予め記憶されたキーワード辞書を用いて、ステップS106で取り出された単語情報の中からキーワードを、登録対象となるシーン情報として抽出する(ステップS107)。
ステップS108では、制御部11は、疑似カメラワークデータに付与されたシーン情報またはステップS107で抽出されたシーン情報と同一又は類似するシーン情報が、ステップS104で特定された動画ブロックに既に対応付けられてシーン情報データベースに登録されているか否かを判定する。ここで、このシーン情報データベースは、ステップS102で特定された動画データに対応するシーン情報データベースである。シーン情報データベースは、ステップS108の処理前にシーン情報記憶領域31dから特定される。また、類似するシーン情報であるか否かの判定は、例えば予め記憶された同義語辞書又は類義語辞書が用いられて判定される。例えばステップS107で抽出されたシーン情報と同義語又は類義語の関係にあるシーン情報は、類似するシーン情報として判定される。そして、ステップS104で特定された動画ブロックに既に対応付けられてシーン情報データベースに登録されていないと判定された場合(ステップS108:NO)、ステップS109へ進む。一方、ステップS104で特定された動画ブロックに既に対応付けられてシーン情報データベースに登録されていると判定された場合(ステップS108:YES)、ステップS110へ進む。
ステップS109では、制御部11は、疑似カメラワークデータに付与されたシーン情報またはステップS107で抽出されたシーン情報を、ステップS104で特定された動画ブロックに対応付けてシーン情報データベースに登録し、図6に示す処理を終了する。このように、ユーザにより入力されたシーン情報が、このシーン情報に対応するシーンが表示される動画ブロックに対応付けられてシーン情報データベースに登録される。そのため、複数のユーザの嗜好が反映されたシーン情報データベースを効率良く生成することができる。ステップS110では、制御部11は、ステップS104で特定された動画ブロックに対応付けて登録されているシーン情報の投稿回数を1インクリメントし、図6に示す処理を終了する。つまり、ステップS104で特定された動画ブロックに対応付けられた投稿回数に「1」が加算されてシーン情報データベースに更新登録される。このように、ユーザにより入力されたシーン情報の投稿回数が、このシーン情報に対応するシーンが表示される動画ブロックに対応付けられてシーン情報データベースに登録される。そのため、シーン情報が、ユーザから、より多く投稿されている注目度の高いシーンが表示される動画ブロックは、どの動画ブロックであるかを判定可能なシーン情報データベースを効率良く生成することができる。
(2−2.疑似カメラワークデータのリクエスト動作)
次に、クライアント2から配信サーバ1へ疑似カメラワークデータがリクエストされる際の動作について説明する。
(2−2−1.クライアント2の処理)
図7を参照して、疑似カメラワークデータのリクエスト動作におけるクライアント2の処理を説明する。図7(A)は、クライアント2の制御部21における処理を示すフローチャートである。
図7(A)に示す処理は、例えば、プレイヤーソフトウェアの実行中に、ユーザから操作部25aを介して疑似カメラワークデータの検索指示があった場合に開始される。図7(A)に示す処理が開始されると、制御部21は、ユーザによる検索キーの入力があるか否かを判定する(ステップS21)。検索キーは、例えば、ユーザが好きな人物が表れるシーンを検索するためのキーである。検索キーは、動画の部分領域の検索に用いられる第1の検索情報の一例である。
図7(B),(C)は、検索キーを入力するための画面例を示す図である。図7(B)に示す画面には、再生された動画が表示されていると共に、表示中の動画のシーンに表れる複数の人物それぞれに対応するボタンが選択可能に表示されている。これらのボタンは、検索キーを入力するためのボタン(以下、「検索キー入力ボタン」という)である。各検索キー入力ボタンは、例えばコンテンツ再生中に、ユーザから操作部25aを介して検索キー入力ボタンの表示指示があった場合に表示される。各検索キー入力ボタンには、図5(C)に示すシーン情報入力ボタンと同様、人物を識別するIDが対応付けられている。一方、図7(C)に示す画面には、再生された動画が表示されていると共に、検索キーワードを含むテキスト情報を入力するための検索キーワード入力欄が表示されている。検索キーワード入力欄は、例えばコンテンツ再生中に、ユーザから操作部25aを介して検索キーワード入力欄の表示指示があった場合に表示される。
例えば、図7(B)に示す画面の表示状態で、ユーザが好きな人物に対応する検索キー入力ボタンを選択すると、制御部21は、ユーザによる検索キーの入力があると判定し(ステップS21:YES)、ステップS22へ進む。検索キー入力ボタンの選択方法は、シーン情報入力ボタンと同様である。また、例えば、図7(C)に示す画面の表示状態で、ユーザが検索キーワード入力欄を指定すると、制御部21は、ユーザによる検索キーの入力と判定し(ステップS21:YES)、ステップS22へ進む。検索キーワード入力欄の指定方法は、テキスト入力欄と同様である。一方、ユーザによる検索キーの入力がないと判定された場合(ステップS21:NO)、ステップS28へ進む。
ステップS22では、制御部21は、検索キーの入力が検索キー入力ボタンによる「ID入力」であるか否かを判定する。例えば、図7(B)に示す画面の表示状態で検索キー入力ボタンが選択された場合、検索キー入力ボタンによる「ID入力」であると判定され(ステップS22:YES)、ステップS23進む。一方、例えば、図7(C)に示す画面の表示状態で検索キーワード入力欄が指定された場合、検索キー入力ボタンによる「ID入力」でないと判定され(ステップS22:NO)、ステップS24へ進む。
ステップS23では、制御部21は、選択された検索キー入力ボタンに対応するIDを検索キーとして記憶する。ここで、検索キー入力ボタンが選択された時の動画の再生位置を示す再生位置情報を検索キーに対応付けて記憶するように構成してもよい。ステップS24では、制御部21は、ユーザにより検索キーワード入力欄に入力されたテキスト情報を検索キーとして記憶する。ここで、ユーザが例えばキーボード等から最初の1文字目を入力した時の動画の再生位置を示す再生位置情報を検索キーに対応付けて記憶するように構成してもよい。なお、最初の1文字目を入力した時の動画の再生位置でなく、2文字目からテキスト入力完了までの間の何れかの時点における動画の再生位置を示す再生位置情報が記憶されるように構成してもよい。
次いで、制御部21は、疑似カメラワークデータのリクエストを、ネットワークNWを介して配信サーバ1へ送信する(ステップS25)。このリクエストは、疑似カメラワークデータの要求である。疑似カメラワークデータのリクエストには、例えばユーザにより選択されたコンテンツのタイトル、及びステップS23またはステップS24で記憶された検索キーが含まれる。疑似カメラワークデータのリクエストには、コンテンツの識別するコンテンツIDが含まれてもよい。また、疑似カメラワークデータのリクエストには、検索キーに対応付けられた再生位置情報が含まれるように構成してもよい。そして、制御部21は、疑似カメラワークデータのリクエストに応じて配信サーバ1から送信されたワークファイルを受信する(ステップS26)。次いで、制御部21は、受信したワークファイルに格納された疑似カメラワークデータに従って、メイン画面とは異なるサブ画面に動画を表示させる(ステップS27)。ここで、配信サーバ1から複数のワークファイルが受信される場合がある。この場合、サブ画面は、サムネイル画面として複数表示される。このサムネイル画面により、疑似カメラワークデータの一覧を表示することができる。
図7(D)は、メイン画面MVとサブ画面SV1〜SV5の一例を示す図である。図7(D)の例では、サブ画面SV1〜SV5には、配信サーバ1から受信されたそれぞれの疑似カメラワークデータに従って、動画が表示されている。受信された疑似カメラワークデータが示す表示範囲には、上述した検索キーに基づいて検索された動画ブロックに含まれるシーンが含まれる。また、サブ画面SV1〜SV5に表示されている動画の再生位置は同一になっている。つまり、サブ画面SV1〜SV5に表示されている画像フレームは同一であるが、この画像フレームにおける表示範囲が互いに異なっている。これは、例えば仮想カメラのアングルや視界の広さなどが異なることを意味する。ユーザは、サブ画面SV1〜SV5に表示された動画により、ユーザは、コンテンツ再生中に見たいシーンを見ることができる。なお、サブ画面SV1〜SV5に表示中の何れかの動画が、ユーザにより選択指示された場合、メイン画面MVに表示中の動画が、選択指示された動画に切換えられる。
ステップS28では、例えばユーザからプレイヤーの終了指示があるか否かを判定する。プレイヤーの終了指示があったと判定された場合(ステップS28:YES)、図7(A)に示す処理は終了する。一方、プレイヤーの終了指示がないと判定された場合(ステップS28:NO)、ステップS21に戻り、上記処理を継続する。
(2−2−2.配信サーバ1の処理)
図8を参照して、疑似カメラワークデータのリクエスト動作における配信サーバ1の処理を説明する。図8は、配信サーバ1の制御部11における処理を示すフローチャートである。図8に示す処理は、配信サーバ1がクライアント2から疑似カメラワークデータのリクエストを受信した場合に開始される。図8に示す処理が開始されると、制御部11は、受信されたリクエストから検索キーを取得する(ステップS111)。ここで、リクエストには、文章から構成されたテキスト情報が含まれる場合がある。この場合、制御部11は、テキスト情報を構文解析することで文章中から検索キーとして検索キーワードを取得する。また、リクエストには、再生位置情報が含まれる場合がある。この場合、制御部11は、リクエストから検索キー及び再生位置情報を取得する。
次いで、制御部11は、リクエストに含まれるコンテンツのタイトルまたはコンテンツIDに対応付けられたシーン情報データベースをシーン情報記憶領域31dから特定する(ステップS112)。次いで、制御部11は、ステップS111で取得された検索キーと、ステップS112で特定されたシーン情報データベースに登録されたシーン情報とに基づいて、検索キーに対応するシーン情報が対応付けられた動画ブロックをシーン情報データベースから検索する(ステップS113)。ここで、検索キーに対応するシーン情報とは、検索キーと一致するシーン情報である。また、検索キーが複数ある場合、検索キーに対応するシーン情報とは、全ての検索キーを含むシーン情報である。なお、ステップS111で再生位置情報が取得される場合がある。この場合、制御部11は、シーン情報データベースを参照して、取得された再生位置情報が示す再生位置の画像フレームにおける動画ブロックの中から、検索キーに対応するシーン情報が対応付けられた動画ブロックを検索する。
次いで、制御部11は、ステップS113の検索結果、動画ブロックが検索されたか否かを判定する(ステップS114)。そして、動画ブロックが検索されないと判定された場合(ステップS114:NO)、ステップS115へ進む。ステップS115では、制御部11は、検索対象のシーンが存在しないことを示す情報をクライアント2へ通知し、図8に示す処理を終了する。一方、動画ブロックが検索されたと判定された場合(ステップS114:YES)、ステップS116へ進む。
ステップS116では、制御部11は、ステップS113で検索された動画ブロックを、検索対象のシーンを含む動画ブロックとして決定する。例えば、検索キーが示す人物等の被写体が表れる動画ブロックを含むシーンが決定される。次いで、制御部11は、ステップS116で決定された動画ブロックが含まれる表示範囲を示す疑似カメラワークデータをワークファイル記憶領域31cから取得する(ステップS117)。つまり、ステップS116で決定された動画ブロックを通過する疑似カメラワークデータが取得される。
次いで、制御部11は、ステップS117で取得された疑似カメラワークデータが所定数以上あるか否かを判定する(ステップS118)。ここで、所定数は、例えばクライアント2におけるサブ画面の数に設定される。そして、ステップS117で取得された疑似カメラワークデータが所定数以上ないと判定された場合(ステップS118:NO)、ステップS119へ進む。一方、ステップS117で取得された疑似カメラワークデータが所定数以上あると判定された場合(ステップS118:YES)、ステップS120へ進む。
ステップS119では、制御部11は、ステップS117で取得された疑似カメラワークデータを、クライアント2のユーザへ提供する疑似カメラワークデータとして決定する。ステップS120では、制御部11は、ステップS116で決定された動画ブロックに対応付けられたシーン情報の投稿回数に基づいて、ステップS117で取得された疑似カメラワークデータを順位付けする。例えば、制御部11は、疑似カメラワークデータが示す表示範囲を含む各動画ブロックに対応付けられた投稿回数の総和が多い順に、ステップS117で取得された疑似カメラワークデータを順位付けする。そして、制御部11は、順位付けされた順位が高い上位所定数の疑似カメラワークデータを、クライアント2のユーザへ提供する疑似カメラワークデータとして決定する(ステップS121)。ここで、上位所定数は、例えばクラアイント2で表示可能なサブ画面の数(図7(D)の例では、5つ)に基づき設定されるように構成するとよい。この場合、上述したリクエストには、サブ画面の数を示す情報が含まれる。これにより、シーン情報がより多く投稿されている注目度が高い動画ブロックを通過する疑似カメラワークデータを、クライアント2のユーザへ提供する疑似カメラワークデータとして決定することができる。
次いで、制御部11は、ステップS119またはステップS121で決定された疑似カメラワークデータが格納されたワークファイルを、クライアント2へ送信し(ステップS122)、図8に示す処理を終了する。
なお、疑似カメラワークデータのリクエスト動作において、メイン画面に動画が表示されているときに、ユーザによる検索キーの入力される場合を例で示した。しかし、ユーザによる検索キーの入力、及びクライアント2から配信サーバ1へのリクエストの送信は、メイン画面に動画が表示されていないときに行われるものであってもよい。例えば、クライアント2のユーザの携帯端末から入力された検索キーを含むリクエストが配信サーバ1へ送信されるように構成してもよい。この場合、配信サーバ1の制御部11は、リクエストの受信後、ステップS119またはステップS121で決定された疑似カメラワークデータが格納されたワークファイルを、リクエストを送信した携帯端末へは送信しない。配信サーバ1の制御部11は、このワークファイルを、クライアント2及び携帯端末のユーザを識別するユーザIDに対応付けてワークファイル記憶領域31cに記憶する。その後、クライアント2が配信サーバ1へアクセスし、例えばユーザIDを用いてユーザのログインが行われた場合、配信サーバ1は、ユーザIDに対応付けられて記憶されたワークファイルを、クライアント2へ送信する。これにより、クライアント2は、受信したワークファイルに格納された疑似カメラワークデータに従って、メイン画面とは異なるサブ画面に動画を表示させる。
以上説明したように、上記実施形態によれば、配信サーバ1は、疑似カメラワークデータのリクエストをクライアント2から受信したとき、動画を構成する画像フレームにおける部分領域に対応付けられて予め記憶されたシーン情報に基づいて、リクエストに含まれる検索キーに対応するシーン情報に対応付けられた部分領域を決定し、決定された部分領域を含む表示範囲を示す疑似カメラワークデータを、クライアント2のユーザへ提供する疑似カメラワークデータとして決定する。そのため、検索キーを入力するユーザが所望する疑似カメラワークに対応する表示範囲を示す疑似カメラワークデータを効率良く検索し、ユーザに対して提供することができる。例えば、ユーザが見たい人物等の被写体が表れるシーンを含む表示範囲を示す疑似カメラワークデータをユーザに対して提供することができる。
また、ユーザにより検索キーが入力されたときの動画の再生位置を示す再生位置情報が上記リクエストに含まれる場合、配信サーバ1は、この再生位置情報が示す再生位置の画像フレームにおける部分領域の中から、リクエストに含まれる検索キーに対応するシーン情報に対応付けられた部分領域を決定する。そのため、動画の再生時間全体においてユーザが所望するタイミングにおける表示範囲を示す疑似カメラワークデータを効率良く検索し、ユーザに対して提供することができる。
なお、図8に示すステップS117において、制御部11は、ステップS112で特定されたシーン情報データベースに基づいて、ステップS116で決定された動画ブロックが含まれる表示範囲を示す疑似カメラワークデータを生成することで取得するように構成してもよい。例えば、制御部11は、上述したシーン情報データベースにおける動画ブロックに対応付けられた投稿回数の中で、投稿回数が最も多い動画ブロックを中心とするか又は投稿回数が多い上位の複数の動画ブロックの重心を中心とする表示範囲を動画ブロックの再生位置ごとに決定し、決定した表示範囲を再生位置ごとに示す疑似カメラワークデータを生成する。
図9(A)は、動画を構成する1画像フレームにおける部分領域をピクセルとした場合の表示範囲を示す図である。図9(B)は、動画を構成する1画像フレームにおける部分領域を動画ブロックとした場合の表示範囲を示す図である。図9(A)の例では、投稿回数が最も多いピクセルPを中心として、1画像フレームF全体の合計投稿回数の50%が含まれる領域が表示範囲R21として決定されている。この50%は、表示割合である。例えば、1画像フレームF全体の合計投稿回数が「30」であるとすると、表示範囲R21内の合計投稿回数は「15」になる。なお、投稿回数が最も多いピクセルが複数ある場合、これらのピクセルの重心が表示範囲の中心とされる。一方、図9(B)の例では、投稿回数が最も多い動画ブロックB1の中心を中心として、1画像フレームF全体の合計投稿回数の50%が含まれる領域が表示範囲R22になっている。なお、投稿回数が最も多い動画ブロックが複数ある場合、これらの動画ブロックの中心から求まる重心が表示範囲の中心とされる。また、図9(B)において、動画ブロックB1の隣接する動画ブロックB2〜B9は、一部分の領域が表示範囲R22に含まれている。例えば、動画ブロックB2の30%の領域が表示範囲R22に含まれているとすると、動画ブロックB2の投稿回数の30%が表示範囲R22の投稿回数に含まれることになる。つまり、表示範囲R22の投稿回数が、1画像フレームF全体の合計投稿回数の50%になるように、隣接する動画ブロックB2〜B9が分割されることになる。
表示範囲R21又はR22の投稿回数が1画像フレームF全体の合計投稿回数の50%以上になるように決定すれば、より多く投稿されている注目度の高いシーンを表示する疑似カメラワークデータを生成することができる。ただし、1画像フレームF全体の合計投稿回数の50%という表示割合に限定されるものではない。例えば、表示範囲R21又はR22の投稿回数が1画像フレームF全体の合計投稿回数の40%以上になるように表示割合を決定してもよい。なお、仮想スクリーンが長方形のスクリーンSC1の場合、例えばアスペクト比を16:9などに固定して、表示範囲のサイズが調整される。
ところで、疑似カメラワークデータの自動生成処理により1画像フレームFごとに表示範囲を決定すると再生したときに、動画が連続せず見づらくなることがある。そのため、画像フレームFにおける表示範囲を、単位再生時間ごとに決定して、その間が連続的に変化するように補完してもよい。図9(C)は、5秒間隔ごとに決定された表示範囲R31〜R33の間が連続的に変化するように補完された例を示す概念図である。図9(C)の例では、「0秒〜5秒」の単位再生時間範囲、「5秒〜10秒」の単位再生時間範囲、及び「10秒〜15秒」の単位再生時間範囲のそれぞれにおいて表示範囲が決定されている。「0秒〜5秒」の単位再生時間範囲における表示範囲R31は、この単位再生時間範囲の真中の2.5秒の再生位置における表示範囲として決定されている。5秒〜10秒の単位再生時間範囲における表示範囲R32は、この単位再生時間範囲の真中の7.5秒の再生位置における表示範囲として決定されている。「10秒〜15秒」の単位再生時間範囲における表示範囲R33は、この単位再生時間範囲の真中の12.5秒の再生位置における表示範囲として決定されている。そして、2.5秒の再生位置と5秒の再生位置との間に位置する画像フレームFにおける表示範囲、及び5秒の再生位置と7.5秒の再生位置との間に位置する画像フレームFにおける表示範囲は連続的に変化するように補完されている。このような補完は、図9(C)に示すように直線的でなくともよく、滑らかな曲線になるようにした方が望ましい。
図10(A)は、配信サーバ1の制御部11における疑似カメラワークデータの自動生成処理を示すフローチャートである。このフローチャートは、図9に示す例を考慮したものである。図10(A)に示す疑似カメラワークデータの自動生成処理は、例えば、シーン情報データベースが更新される度に、または所定回数(例えば、10回)更新される度に実行される。或いは、疑似カメラワークデータの自動生成処理は、定期的に実行されるように構成してもよい。あるいは、運用者等の判断で任意のタイミングで実行しても良い。疑似カメラワークデータの自動生成処理が開始されると、新規の疑似カメラワークデータが生成される。生成された疑似カメラワークデータは、この段階では、空の疑似カメラワークデータである。次いで、制御部11は、先頭要素として再生位置「0」における表示範囲を再生位置「0」に対応付けて新規の疑似カメラワークデータに登録する(ステップS201)。再生位置「0」における表示範囲は、例えば、再生位置「0」における画像フレームF全体として決定される。
次いで、制御部11は、変数iに「0」をセットする(ステップS202)。次いで、制御部11は、上述した単位再生時間範囲「T×i〜T×(i+1)」に含まれる各再生位置における画像フレームFの集合を処理対象として決定する(ステップS203)。ここで、「T」は、1つの単位再生時間範囲の時間的な長さである。次いで、制御部11は、シーン情報データベースを参照して、ステップS203で決定された処理対象の中で、投稿回数が最も多い部分領域の中心を表示範囲の中心として決定する(ステップS204)。
次いで、制御部11は、シーン情報データベースを参照して、表示割合が例えば0.5となるように画像フレームFにおける表示範囲を決定する(ステップS205)。この表示割合は、例えば、動画の再生時間全体の合計投稿回数を、ステップS203で決定された処理対象の合計投稿回数で除算することにより算出される。次いで、制御部11は、ステップS205で決定した表示範囲の再生位置を「T×i+T/2)」として決定する(ステップS206)。例えば、0秒〜5秒の単位再生時間範囲である場合、再生位置「T×i+T/2)」は2.5秒として決定される。
次いで、制御部11は、新規の疑似カメラワークデータに登録された再生位置の中で、最後に登録された再生位置から、再生位置「T×i+T/2)」までの間の各再生位置における表示範囲を補完計算により決定する(ステップS207)。補完計算では、例えば、再生位置「0」における表示範囲と再生位置「2.5秒」における表示範囲とに基づき、再生位置「0」〜再生位置「2.5秒」の間に位置する画像フレームFにおける表示範囲が連続的に変化するように計算される。なお、このような補完計算自体は、公知の方法を適用することができるので詳しい説明は省略する。
次いで、制御部11は、ステップS205で決定された表示範囲、及びステップS207で決定された表示範囲を、それぞれの再生位置に対応付けて新規の疑似カメラワークデータに登録する(ステップS208)。次いで、制御部11は、変数iを1インクリメントする(ステップS209)。次いで、制御部11は、「T×i」が動画の再生時間全体より大きいか否かを判定する(ステップS210)。「T×i」が動画の再生時間全体より大きくないと判定された場合(ステップS210:NO)、ステップS203に戻る。これにより、次の単位再生時間範囲において上記と同様の処理が実行される。「T×i」が動画の再生時間全体より大きいと判定された場合(ステップS210:YES)、疑似カメラワークデータの自動生成処理を終了する。
次に、図11は、疑似カメラワークデータの自動生成処理の他の例を示す概念図である。図11の例では、ある再生位置における画像フレームFにおける部分領域を動画ブロックとした場合に、表示範囲が決定されるまでの様子を示している。図11に示す数値は、各動画ブロックの投稿回数である。疑似カメラワークデータの自動生成処理では、先ず、図11(A)に示すように、最も投稿回数の大きい動画ブロックB1が選定される。このときの表示割合は、1画像フレームF全体の合計投稿回数が「30」であるとすると、20%(=6/30)となる。この表示割合が、例えば50%を超えるまで動画ブロックの選定が繰り返される。次に、図11(B)に示すように、選定された動画ブロックB1に隣接する動画ブロックの中で最も投稿回数の大きい動画ブロックB3が選定される。このときの表示割合は、33%(=10/30)となる。次に、図11(C)に示すように、選定された動画ブロックB1に隣接する動画ブロックの中で動画ブロックB3の次に投稿回数の大きい動画ブロックB5が選定される。このときの表示割合は、43%(=13/30)となる。次に、図11(D)に示すように、選定された動画ブロックB1に隣接する動画ブロックの中で動画ブロックB3及びB5の次に投稿回数の大きい動画ブロックB8が選定される。このときの表示割合は、53%(=16/30)となる。このように表示割合が50%を超えた場合、図11(E)に示すように、上記選定された動画ブロックB1,B2,B4,及びB8を全て含む最小の領域が表示範囲R41として決定される。なお、アスペクト比が固定の場合、決定された表示範囲R41はアスペクト比に応じた表示範囲に調整される。
図10(B)は、疑似カメラワークデータの自動生成処理の他の例を示すフローチャートである。このフローチャートは、図11に示す例を考慮したものである。図10(B)に示す疑似カメラワークデータの自動生成処理の開始条件は、図10(A)に示す疑似カメラワークデータの自動生成処理の開始条件と同様である。なお、図10(B)に示すステップS211〜S213の処理は、図10(A)に示すステップS201〜S203の処理と同様である。
図10(B)に示すステップS214では、制御部11は、シーン情報データベースを参照して、ステップS213で決定された処理対象の中で、投稿回数が最も多い動画ブロックを選定する。次いで、制御部11は、シーン情報データベースを参照して、ステップS214で選定された動画ブロックが配置された画像フレームFにおいて、ステップS214で選定された動画ブロックに隣接する動画ブロックの中で最も投稿回数の大きい動画ブロックを選定する(ステップS215)。なお、ステップS215で選定された動画ブロックは以降のステップS216の処理で選定対象外に設定される。
次いで、制御部11は、シーン情報データベースを参照して、表示割合が例えば0.5以上になったか否かを判定する(ステップS216)。ここで、表示割合は、図10(A)に示すステップS205の処理の場合と同様である。表示割合が例えば0.5以上になっていないと判定された場合(ステップS216:NO)、ステップS215に戻る。これにより、例えば、ステップS214で選定された動画ブロックに隣接する動画ブロックの中で次に投稿回数の大きい動画ブロックが選定される。一方、表示割合が例えば0.5以上になったと判定された場合(ステップS216:YES)、ステップS217へ進む。ステップS217では、制御部11は、ステップS214及びステップS215で選定された動画ブロックを全て含む最小の領域を表示範囲として決定し、ステップS218へ移行する。図10(B)に示すステップS218〜S222の処理は、図10(A)に示すステップS206〜S210の処理と同様である。以上のように、疑似カメラワークデータの自動生成処理により生成された疑似カメラワークデータは、図8に示すステップS122において、クライアント2へ送信される。
以上説明したように、疑似カメラワークデータの自動生成処理によれば、シーン情報データベースを利用して、より多く投稿されている注目度の高いシーンを含む表示範囲を示す疑似カメラワークデータを自動的に生成して、生成された疑似カメラワークデータを、ユーザに対して推奨する適切な疑似カメラワークデータとして決定することができる。
なお、上記実施形態において、クライアント2は配信サーバ1からコンテンツ及びコンテンツの疑似カメラワークデータを受信する構成を示した。しかし、ハイブリッド型またはピア型のピアツーピアネットワークにおいて、クライアント2が他のクライアント2からコンテンツ及びコンテンツの疑似カメラワークデータを受信する場合に対しても本発明は適用できる。この場合、クライアント2が本発明の情報処理装置として機能する。また、上記実施形態において、クライアント2が記憶装置3と接続可能であるように構成してもよい。この場合、クライアント2は記憶装置3から取得したコンテンツを再生する。そして、クライアント2は、記憶装置3から取得した疑似カメラワークデータに従って、動画を表示することになる。