以下、本発明の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、配信システムに対して本発明を適用した場合の実施形態である。
[1.配信システムSの構成及び動作概要]
初めに、図1を参照して、本実施形態に係る配信システムSの構成及び動作概要について説明する。図1は、本実施形態に係る配信システムSの概要構成例を示す図である。図1に示すように、配信システムSは、エンコードサーバ1、配信サーバ2、及びクライアント端末3X(X=a,b,c・・・)等を含んで構成される。エンコードサーバ1及び配信サーバ2は、本発明のサーバ装置の一例である。なお、配信サーバ2がエンコードサーバ1の機能を有していてもよく、この場合、エンコードサーバ1は不要となる。エンコードサーバ1、配信サーバ2、及びクライアント端末3Xは、ネットワークNWに接続される。ネットワークNWは、例えば、インターネット等により構成される。
エンコードサーバ1は、ビデオカメラ(図示せず)により撮影された動画のデータと、動画の撮影に同期してマイクロフォン(図示せず)により集音された音声のデータとを外部機器から取得する。例えば、エンコードサーバ1には、有線または無線を介して、ビデオカメラ及びマイクロフォンが接続されており、ビデオカメラから動画のデータを、マイクロフォンから音声のデータをそれぞれ取得する。本実施形態では、ビデオカメラにより撮影された動画を例にとり、撮影範囲全体を表示する動画を、以下、「全体動画」というものとする。なお、ビデオカメラにより撮影された動画以外の、例えばCGやアニメーション等、動作作成ソフトウェアにより作成された動画を全体動画としてもよい。また、複数のビデオカメラのそれぞれにより撮影された動画を合成した動画を全体動画としてもよい。
エンコードサーバ1は、全体動画Mを複数の表示領域に分割した複数の分割動画DMn(n=1,2,3・・・)のうち、少なくとも何れか1つの分割動画DMnを、後述するセグメント単位Txで区切りつつエンコードすることで、複数の動画ブロックBn-m(m=1,2,3・・・)を生成する。なお、エンコードサーバ1は、分割動画DMn(n=1,2,3・・・)を、セグメント単位Txで区切ることで複数の動画ブロックBn-m(m=1,2,3・・・)を生成しておき、その後に生成した動画ブロックBn-mをエンコードしてもよい。ここで、セグメント単位Txは、クライアント端末3Xにおいて表示された分割動画DMnの表示時間、またはクライアント端末3Xからの分割動画DMnのリクエスト数(つまり、リクエストの数)に応じて変化する可変の時間単位である。また、エンコードとは、一般に、予め定められた規則に従って、データを符号化することをいい、さらに、例えばMPEG等の圧縮方式でデータを圧縮することを含む場合もある。図2は、エンコードサーバ1により生成された動画ブロックの一例を示す概念図である。ここで、図2の例では、全体動画Mが4×4の分割動画DMn(この例では、n=1〜16)に分割され、且つ再生時間軸tにおいてセグメント単位Txでエンコードされることで複数の動画ブロックBn-mが分割動画DMn毎に生成されている。
配信サーバ2は、クライアント端末3Xにおいて表示された分割動画DMnの表示時間に応じたセグメント単位Tx、またはクライアント端末3Xからの分割動画DMnのリクエスト数に応じたセグメント単位Txを取得する。セグメント単位Txの取得方法の詳細は後述する。また、配信サーバ2は、クライアント端末3Xからのリクエストに応じて、1つ以上の分割動画DMnのデータを含むコンテンツを、セグメント単位Txの動画ブロックBn-m毎にクライアント端末3Xへ送信する。つまり、配信サーバ2は、クライアント端末3Xからリクエストされた分割動画DMnの動画ブロックBn-mであってエンコードサーバ1によりセグメント単位Txでエンコードされた動画ブロックBn-mを含むコンテンツをネットワークNWを介してクライアント端末3Xへ送信する。コンテンツの送信は、例えば、ネットワークNWを介してストリーミング配信により行われる。
クライアント端末3Xは、ユーザ操作に応じて、全体動画Mにおいて表示画面における表示範囲に表示される表示領域(少なくとも一部の表示領域)を含む分割動画DMnに対応する動画ブロックBn-mだけを配信サーバ2へリクエストする。つまり、全体動画Mにおいて表示画面における表示範囲に収まる表示領域を含まない分割動画DMnに対応する動画ブロックBn-mはリクエストされない。クライアント端末3Xは、配信サーバ2から送信されたコンテンツを受信し、受信されたコンテンツに含まれる1つ以上の動画ブロックBn-mをデコードして分割動画DMnを再生する。
[2.各装置の構成及び機能]
次に、図1を参照して、本実施形態の配信システムSに含まれる各装置の構成について説明する。エンコードサーバ1は、図1に示すように、制御部11、記憶部12、通信部13、及びインターフェース部14等を備えて構成される。これらの構成要素は、バス15に接続されている。インターフェース部14は、例えばビデオカメラ及びマイクロフォンが接続される。通信部13は、ネットワークNWに接続される。記憶部12は、例えばハードディスクドライブ等からなり、OS(オペレーティングシステム)、及びエンコード処理プログラム等を記憶する。エンコード処理プログラムは、コンピュータとしての制御部11に、エンコード処理等を実行させるプログラムである。また、記憶部12には、外部機器から取得された全体動画Mのデータと、全体動画Mを複数の表示領域に分割した複数の分割動画DMnと、音声のデータとが全体動画M毎に対応付けられて記憶される。なお、全体動画Mには、全体動画Mを識別するための全体動画IDが付与されている。また、全体動画Mから分割された各分割動画DMnには、分割動画DMnを識別するための分割動画IDが上記全体動画IDに関連付けられて付与されている。また、分割動画DMnから生成された動画ブロックBn-mには、動画ブロックBn-mを識別するための動画ブロックIDが上記分割動画IDに関連付けられて付与される。
制御部11は、CPU(Central Processing Unit)、ROM(Read Only Memory)、及びRAM(Random Access Memory)等により構成される。制御部11は、エンコード処理プログラムにしたがって、エンコード処理を実行する。このエンコード処理において、制御部11は、分割動画DMnを、セグメント単位Txで区切りつつエンコードすることで、複数の動画ブロックBn-mを生成する。なお、セグメント単位Txは、例えば、配信サーバ2からの設定指令により設定される。また、動画ブロックBn-mは、生成される度にリアルタイムで配信サーバ2へ送信されてもよいし、後から一括で配信サーバ2へ送信されてもよい。
次に、配信サーバ2は、図1に示すように、制御部21、記憶部22、及び通信部23等を備えて構成される。これらの構成要素は、バス24に接続されている。記憶部22は、本発明における記憶手段の一例である。通信部23は、ネットワークNWに接続される。記憶部22は、例えばハードディスクドライブ等からなり、OS、及びコンテンツ配信処理プログラム等を記憶する。コンテンツ配信処理プログラムは、制御部21に、コンテンツ配信処理等を実行させるプログラムである。コンテンツ配信処理プログラムは、所定のサーバからダウンロードされてもよいし、CD、DVD等の記録媒体に記憶されて提供されてもよい。また、記憶部22には、例えば、エンコードサーバ1によりエンコードされた動画ブロックBn-mと、音声のデータとを含むコンテンツが記憶される。制御部21は、CPU、ROM、及びRAM等により構成される。制御部21は、コンテンツ配信処理プログラムにしたがって、本発明の取得手段、生成手段、送信手段(第2送信手段)、受信手段(第1受信手段)等として機能し、コンテンツ配信処理を実行する。このコンテンツ配信処理において、制御部21は、クライアント端末3Xからのリクエストに応じて、1つ以上の分割動画DMnのデータを含むコンテンツを、セグメント単位Txの動画ブロックBn-m毎にネットワークNWを介してクライアント端末3Xへ送信する。
具体的には、制御部21は、クライアント端末3Xから分割動画DMnのリクエストを受信した場合、この分割動画DMnのエンコード指令をネットワークNWを介してエンコードサーバ1へ送信する。これにより、エンコードサーバ1は、配信サーバ2からのエンコード指令された分割動画DMnを、配信サーバ2からの設定指令に応じて設定されているセグメント単位Txで区切りつつエンコードすることで動画ブロックBn-mを生成し、生成した1つ以上の動画ブロックBn-mを含むコンテンツをネットワークNWを介して配信サーバ2へ送信する。そして、制御部21は、エンコードサーバ1から送信されたコンテンツを受信し、受信されたコンテンツをネットワークNWを介してクライアント端末3Xへ送信する。なお、セグメント単位Txは、配信サーバ2からの設定指令に応じて適宜更新される。図3(A)は、1つの分割動画DMnから可変のセグメント単位Txで生成された動画ブロックBn-mを再生時間軸tに沿って示す図である。図3(A)に示すように、動画ブロックBn-mのセグメント単位Txは時間経過にしたがって変化している。特に、動画ブロックBn-5〜Bn-7のセグメント単位Txは3秒と短く、この再生時間帯は、表示範囲の変動が大きい時間帯である。
或いは、クライアント端末3Xからリクエストが受信される前に、エンコードサーバ1によって、時間長の互いに異なる複数のセグメント単位(固定のセグメント単位)で同一内容の分割動画DMnから生成された動画ブロックBn-mを含むコンテンツが配信サーバ2へ送信されてもよい。この場合、記憶部22には、同一内容の分割動画DMnのデータが、時間長の互いに異なる複数のセグメント単位毎に記憶される。図3(B)は、時間長の互いに異なる3つのセグメント単位(20秒、10秒、5秒)で同一内容の分割動画DMnから生成された動画ブロックBn-mを再生時間軸tに沿って示す図である。なお、図3(B)の例では、3つのセグメント単位T1〜T3毎に同一内容の分割動画DMnから生成された動画ブロックBn-mを示しているが、2つまたは4つ以上のセグメント単位毎に同一内容の分割動画DMnから動画ブロックBn-mが生成されてもよい。また、この場合、制御部21は、例えば、後述するように取得したセグメント単位Txを設定し、その後、セグメント単位Txを取得する度に更新する。そして、制御部21は、クライアント端末3Xから分割動画DMnのリクエストを受信した場合、リクエストされた分割動画DMnについて複数のセグメント単位毎に記憶された動画ブロックBn-m(図3(B)の例では、20秒版、10秒版、及び5秒版の動画ブロックBn-m)のうち、設定されているセグメント単位Txに対応する動画ブロックBn-mを記憶部22から取得してクライアント端末3Xへ送信する。ここで、セグメント単位Txに対応する動画ブロックBn-mとは、例えば、セグメント単位Txとの時間差が最も短いセグメント単位の動画ブロックBn-mを意味する。例えば、セグメント単位Txが6秒であった場合、図3(B)に示す5秒版の動画ブロックBn-mが該当する。
上述したコンテンツ配信処理において、制御部21は、分割動画DMnの表示時間に応じたセグメント単位Tx、または分割動画DMnのリクエスト数に応じたセグメント単位Txを取得する。ここで、先ず、分割動画DMnの表示時間に応じたセグメント単位Txの取得方法例について詳しく説明する。この場合、制御部21は、クライアント端末3Xにおいて分割動画DMnの少なくとも一部の表示領域が同時に表示された複数の分割動画DMnのうち、表示割合が相対的に大きい表示領域を含む分割動画DMnの表示時間に比例した時間を、セグメント単位Txとして取得する。ここで、表示割合とは、表示画面における表示範囲に対する、各分割動画DMnが占める割合を意味する。つまり、表示割合は、各分割動画DMnが表示範囲の何パーセントが表示されたかを示す。また、表示割合が相対的に大きい表示領域として、表示割合が最も大きい表示領域とすることが好ましいが、表示割合が2番目に大きい表示領域であっても構わない。表示時間に比例した時間は、表示時間×1倍の時間であってもよく、この場合、表示時間=セグメント単位Txとなる。
図4は、表示範囲における各分割動画DMnの表示割合と表示時間の一例を示す概念図である。図4(A)は、t-1秒(tは、例えば2以上の整数)時点の表示範囲Rt-1を示しており、この時点では、分割動画DM6の表示割合が90%と最も大きくなっている。また、図4(B)は、t秒時点の表示範囲Rtを示しており、この時点では、分割動画DM6とDM10の表示割合が80%と最も大きくなっている。また、図4(C)は、t+1秒時点の表示範囲Rt+1を示しており、この時点では、分割動画DM6とDM7の表示割合が60%と最も大きくなっている。図4(D)は、t-1秒〜t+1秒の時間範囲における平均の表示割合と表示時間を示している。図4(D)の例では、t-1秒〜t+1秒の各時点における表示時間を1秒として、t-1秒〜t+1秒の時間範囲で累積した累積値となっている。例えば、分割動画DM2は、t-1秒とt+1秒の各時点において一部が表示されているため、t-1秒の時点の表示時間を1秒とし、t+1秒の時点の表示時間を1秒として、これらを累積した累積値(2秒)が、t-1秒〜t+1秒の時間範囲における分割動画DM2の表示時間となっている。
なお、何れかの時点で、全ての表示領域が表示範囲外となった分割動画DMnについてはその時点で累積値がリセットされてもよい。この場合、リセットされる前の累積値は保持される。そして、分割動画DMnが再び表示範囲内に入った場合、表示時間の累積が開始され、t-1秒〜t+1秒の時間範囲において最大の累積値が分割動画DMnの表示時間となる。ただし、上述したリセットしない累積値を分割動画DMnの表示時間とした方が、この表示時間の算出処理負荷を軽減することができる。また、図4(D)の例では、分割動画DM6の表示割合が最も大きいので、t-1秒〜t+1秒の時間範囲では、分割動画DM6の表示時間に比例した時間がセグメント単位Tx(この例では、セグメント単位Tx=「分割動画DM6の表示時間」)として取得されることになる。なお、図4の例では、t-1秒時点、t秒時点、及びt+1秒時点の3つの時点で、各分割動画DMnの表示割合が算出され、t-1秒〜t+1秒の時間範囲における累積値が分割動画DMnの表示時間として算出される例を示したが、この時間範囲は任意に設定可能であり、また、この時間範囲で算出される時点の数も任意に設定可能である。
また、各分割動画DMnの表示時間の算出は、クライアント端末3Xにより行われてもよいし、配信サーバ2により行われてもよい。各分割動画DMnの表示時間の算出がクライアント端末3Xにより行われる場合、制御部21は、クライアント端末3Xにより算出された表示時間に応じたセグメント単位Txを、クライアント端末3Xから所定時間間隔で取得する。この場合、1つのクライアント端末3Xにおいて表示された分割動画DMnの上記表示時間に応じたセグメント単位Txが、その後に、そのクライアント端末3Xへ送信する動画ブロックBn-mを生成するために用いられる。分割動画DMnの表示時間がクライアント端末3X側で算出される構成によれば、配信サーバ2の負荷を低減することができる。別の例として、制御部21は、複数のクライアント端末3Xにおいて表示された同一内容の分割動画DMnの表示時間(セグメント単位でもよい)を、上記複数のクライアント端末3Xからそれぞれ取得し、取得した表示時間(セグメント単位でもよい)を集計してセグメント単位Txを取得するとよい。これにより、複数のクライアント端末3X間で共通するセグメント単位Txが、その後に、各クライアント端末3Xへ送信する動画ブロックBn-mを生成するために用いられるので、例えば同一の全体動画Mの視聴者数が多い場合であっても、配信サーバ2及びエンコードサーバ1の負荷を低減することができる。なお、上記集計では、例えば、取得された表示時間の統計処理が行われる。統計処理において、制御部21は、複数の表示時間の平均値または中央値をセグメント単位Txとして算出する。或いは、統計処理において、制御部21は、複数の表示時間をクラスタリングにより複数のクラスタ(例えば、差が近い表示時間をまとめたグループ)に分類し、最も多くの表示時間を含むクラスタにおける表示時間の平均値または中央値をセグメント単位Txを算出する。
一方、各分割動画DMnの表示時間の算出が配信サーバ2により行われる場合、制御部21は、クライアント端末3Xにおいて分割動画DMnの少なくとも一部の表示領域が同時に表示された複数の分割動画DMnのそれぞれの表示範囲を特定の時間毎に示すカメラワークデータ(表示範囲データの一例)をクライアント端末3Xから受信する。そして、制御部21は、受信されたカメラワークデータを解析することで、上記と同様の方法で、それぞれの分割動画DMnの表示時間を算出し、複数の分割動画DMnのうち、表示割合が相対的に大きい表示領域を含む分割動画DMnの表示時間に比例した時間をセグメント単位Txとして所定時間間隔で取得する。分割動画DMnの表示時間が配信サーバ2側で算出される構成によれば、クライアント端末3Xの負荷を低減することができる。この場合も、制御部21は、複数の表示時間を集計してセグメント単位Txを取得するとよい。すなわち、制御部21は、上記カメラワークデータを、上記複数のクライアント端末3Xからそれぞれ受信し、受信したカメラワークデータに基づいて、上記と同様の方法で、複数のクライアント端末3Xにおいて表示された同一内容の分割動画DMnの表示時間をそれぞれ取得し、取得した複数の表示時間を集計してセグメント単位Txを取得する。
なお、表示割合が相対的に大きい表示領域を含む分割動画DMnの表示時間に比例した時間をセグメント単位Txとして取得する構成に代えて、分割動画DMnの少なくとも一部の表示領域が同時に表示された複数の分割動画DMnそれぞれの表示時間のうち、相対的に長い(例えば、最も長い)表示時間に比例した時間をセグメント単位Txとして取得するように構成してもよい。
次に、分割動画DMnのリクエスト数に応じたセグメント単位Txの取得方法例について詳しく説明する。この場合、単位時間あたりのリクエスト数とセグメント単位Txとを対応付けた対応付けテーブルが予め記憶部22に記憶される。この対応付けテーブルには、例えば、リクエスト数“0〜5”に対してセグメント単位Tx“20秒”が対応付けられており、リクエスト数“6〜10”に対してセグメント単位Tx“10秒”が対応付けられており、リクエスト数“11〜15”に対してセグメント単位Tx“5秒”が対応付けられており、リクエスト数“16〜20”に対してセグメント単位Tx“3秒”が対応付けられている。つまり、単位時間あたりのリクエスト数が多いほど、セグメント単位Txが短くなるように対応付けられる。これは、単位時間あたりのリクエスト数が多いほど、クライアント端末3Xにおいて表示画面に表示される分割動画DMnが切り替わる頻度が高いため、セグメント単位Txを短くすることで不要なデータの送信を低減する趣旨である。なお、対応付けテーブルに代えて、単位時間あたりのリクエスト数からセグメント単位Txを算出する計算式が予め記憶部22に記憶されてもよい。
制御部21は、クライアント端末3Xから分割動画DMnのリクエストを受信する度に、リクエストの受信時刻を時系列で記憶する。そして、制御部21は、記憶された受信時刻から、所定時間間隔で単位時間あたりのリクエスト数を算出し、算出したリクエスト数に対応付けられたセグメント単位Txを対応付けテーブルまたは計算式を用いて取得する。この場合、1つのクライアント端末3Xからの単位時間あたりのリクエスト数に応じたセグメント単位Txが、その後に、そのクライアント端末3Xへ送信する動画ブロックBn-mを生成するために用いられる。別の例として、制御部21は、複数のクライアント端末3Xそれぞれからの分割動画DMnのリクエスト数(単位時間あたりのリクエスト数)を上述したように取得し、取得したリクエスト数を集計してセグメント単位Txを取得するとよい。これにより、複数のクライアント端末3X間で共通するセグメント単位Txが、各クライアント端末3Xへ送信する動画ブロックBn-mを生成するために用いられるので、例えば同一の全体動画Mの視聴者数が多い場合であっても、配信サーバ2及びエンコードサーバ1の負荷を低減することができる。なお、上記集計では、例えば、取得されたリクエスト数の統計処理が行われる。統計処理において、制御部21は、複数のリクエスト数の平均値または中央値に対応付けられたセグメント単位Txを対応付けテーブルまたは計算式を用いて取得する。或いは、統計処理において、制御部21は、複数のリクエスト数をクラスタリングにより複数のクラスタ(例えば、差が近いリクエスト数をまとめたグループ)に分類し、最も多くのリクエスト数を含むクラスタにおけるリクエスト数の平均値または中央値に対応付けられたセグメント単位Txを対応付けテーブルまたは計算式を用いて取得する。
そして、制御部21は、上述したようにセグメント単位Txを取得すると、取得したセグメント単位Txを示す設定指令をネットワークNWを介してエンコードサーバ1に送信する。これにより、エンコードサーバ1の制御部11は、受信した設定指令が示すセグメント単位Txを設定する。或いは、制御部21は、上述したようにセグメント単位Txを取得すると、取得したセグメント単位Txを設定する。なお、既に異なるセグメント単位Txが設定されている場合、新たなセグメント単位Txに変更設定される。
次に、クライアント端末3Xは、図1に示すように、制御部31、記憶部32、ビデオRAM33、映像処理部34、音声処理部35、操作処理部36、及び通信部37等を備えて構成される。これらの構成要素は、バス38に接続されている。映像処理部34には、表示部34aが接続される。表示部34aには表示画面が表示される。音声処理部35には、スピーカ35aが接続される。操作処理部36には、ユーザ操作を受け付ける操作部36aが接続される。操作部36aには、例えば、マウス、キーボード、リモコン等がある。なお、表示部34aと操作部36aとを兼ねるタッチパネルが適用されてもよい。通信部37は、ネットワークNWに接続される。記憶部32は、例えばハードディスクドライブ等からなり、OS、及びコンテンツ再生処理プログラム等を記憶する。コンテンツ再生処理プログラムは、コンテンツ再生処理を制御部31に実行させるプログラムである。制御部31は、CPU、ROM、及びRAM等により構成される。制御部31は、コンテンツ再生処理プログラムにしたがって、本発明の算出手段、決定手段、通知手段、第1送信手段、受信手段(第2受信手段)、及び表示手段等として機能し、コンテンツ再生処理を実行する。
このコンテンツ再生処理において、制御部31は、ユーザ操作に応じて全体動画M内で表示される表示範囲を特定し、特定した表示範囲に少なくとも一部の表示領域が含まれる分割動画DMnのリクエストをネットワークNWを介して配信サーバ2へ送信する。これにより、配信サーバ2から送信された動画ブロックBn-mを含むコンテンツが受信され、受信されたコンテンツは、例えばRAMに設けられたバッファメモリに一時的に保持される。そして、制御部31は、バッファメモリに保持されている動画ブロックBn-mをデコードして分割動画DMnを再生し、ビデオRAM33へ出力する。映像処理部34は、制御部31からの制御信号に従って、ビデオRAM33に書き込まれた分割動画DMnのうち表示画面における表示範囲に収まる動画を表示させる。なお、バッファメモリに保持されているコンテンツに音声のデータが含まれる場合、音声処理部35は、制御部31からの制御信号に従って、音声のデータからアナログ音声信号を生成し、生成したアナログ音声信号をスピーカ35aへ出力する。
全体動画M内で表示される表示範囲は、疑似的なカメラワークの操作(ユーザ操作の一例)により動作する仮想カメラの撮影範囲として特定される。疑似的なカメラワークの操作により、特定される表示範囲が変化し、この変化に追従して動画ブロックBn-mが配信サーバ2へリクエストされることになる。疑似的なカメラワークの操作には、例えば、仮想カメラを左右振りさせるパン操作、仮想カメラを上下振りさせるチルト操作、及び仮想カメラの画角を変化させるズーム操作がある。ここで、仮想カメラとは、二次元平面または三次元仮想空間における仮想スクリーンに投影される動画に対して仮想的に設定された視点をいう。パン及びチルト操作は、例えば、ユーザによるマウスのドラッグ操作や、ユーザによる指やペン等によるフリック操作により実現される。ズーム操作は、例えば、ユーザがマウス等の操作部に設けられたボタン、或いはユーザの指2本で表示画面をピンチするピンチ操作により実現される。
また、上述したように、各分割動画DMnの表示時間の算出がクライアント端末3Xにより行われる場合、制御部31は、表示画面に表示された分割動画DMnの表示時間を算出し、算出された表示時間に応じたセグメント単位Txを、所定時間間隔で決定する。例えば、制御部31は、クライアント端末3Xにおいて分割動画DMnの少なくとも一部の表示領域が同時に表示された複数の分割動画DMnのそれぞれの表示時間を算出する。そして、制御部31は、少なくとも一部の表示領域が同時に表示された複数の分割動画DMnのうち、図4を用いて説明したように算出した表示割合が相対的に大きい表示領域を含む分割動画DMnを特定し、特定した分割動画DMnの表示時間に比例した時間をセグメント単位Txとして決定する。なお、分割動画DMnの少なくとも一部の表示領域が同時に表示された複数の分割動画DMnそれぞれの表示時間のうち、相対的に長い(例えば、最も長い)表示時間に比例した時間をセグメント単位Txとして決定するように構成してもよい。そして、制御部31は、決定されたセグメント単位Txを配信サーバ2へ所定時間間隔で通知する。つまり、制御部31は、決定されたセグメント単位Txを示す情報をネットワークNWを介して配信サーバ2へ送信する。制御部31は、通知したセグメント単位Txに従って生成された動画ブロックBn-mを配信サーバ2から受信し、受信された動画ブロックBn-mを用いて分割動画DMnを表示画面に表示させる。
一方、上述したように、各分割動画DMnの表示時間の算出が配信サーバ2により行われる場合、制御部31は、分割動画DMnの再生中に、全体動画M内で表示される表示範囲を特定の時間毎に示すカメラワークデータを記録し、配信サーバ2へ所定時間間隔で送信する。ここで、カメラワークデータは、上記表示範囲を特定の時間毎に示すデータとして、例えば、全体動画Mの画像フレームにおける表示範囲の中心座標(x,y)(例えば画像フレームの上部左端を原点としたときの座標(x,y))、ズーム倍率、及び再生位置(動画の先頭からの再生時間)を含む。図5は、カメラワークデータの内容の一例を示す図である。このようなカメラワークデータによれば、疑似的なカメラワークの操作による中心点の移動や、ズーム倍率の変化が時系列で(つまり、特定の時間毎に)記憶されているので、配信サーバ2は、カメラワークデータを解析することによって、ある時点での中心座標、ズーム倍率が求められるため、クライアント端末3Xにおける表示範囲を特定の時間毎に特定することができる。なお、カメラワークデータは、上記表示範囲を特定の時間毎に示すデータとして、例えば、仮想カメラの左右振りの角度を示すパン(pan)、仮想カメラの上下振りの角度を示すチルト(tilt)、ズーム倍率(表示倍率)を示すズーム(zoom)、及び再生位置を含むように構成してもよい。
[2.配信システムSの動作]
次に、配信システムSの動作の詳細について、実施例1と実施例2に分けて説明する。なお、以下の説明では、クライアント端末3X(X=a,b,c・・・)のうち、クライアント端末3aを例にとって説明する。
(実施例1)
実施例1は、クライアント端末3aからの分割動画DMnのリクエストに応じて、リアルタイムに動画ブロックBn-mが生成されてクライアント端末3aへ配信される例である。
(実施例1におけるクライアント端末3aの動作)
先ず、図6を参照して、実施例1におけるクライアント端末3aの動作について説明する。図6(A)は、クライアント端末3aの制御部31により実行されるコンテンツ再生処理の一例を示すフローチャートである。図6(B)は、クライアント端末3aの制御部31により実行されるセグメント単位通知処理の一例を示すフローチャートである。図6(C)は、クライアント端末3aの制御部31により実行されるカメラワークデータ送信処理の一例を示すフローチャートである。なお、コンテンツ再生処理と、セグメント単位通知処理(またはカメラワークデータ送信処理)とは、それぞれ非同期で実行される。また、セグメント単位通知処理は、各分割動画DMnの表示時間の算出がクライアント端末3aにより行われる場合に実行される。一方、カメラワークデータ送信処理は、各分割動画DMnの表示時間の算出が配信サーバ2により行われる場合に実行される。
図6(A)に示すコンテンツ再生処理の前提として、クライアント端末3aは、配信サーバ2から取得したコンテンツリストを表示しているものとする。コンテンツリストには、配信サーバ2から配信可能なコンテンツのタイトル、代表画像、分割動画ID、及び全体動画ID等が含まれる。そして、ユーザ操作によりコンテンツリストから再生対象となるコンテンツが選択された場合に、図6(A)に示すコンテンツ再生処理が開始される。コンテンツ再生処理が開始されると、制御部31は、選択されたコンテンツに対応する全体動画M内で表示される表示範囲を特定する(ステップS1)。なお、コンテンツ再生処理の開始直後のステップS1は、例えばデフォルト設定された表示範囲が特定される。次いで、制御部31は、ステップS1で特定された表示範囲に少なくとも一部の表示領域が含まれる分割動画DMnを特定する(ステップS2)。例えば、ステップS1において図4(B)に示す表示範囲Rnが特定された場合、分割動画DM6,DM7,DM10,DM11がステップS2で特定される。
次いで、制御部31は、ステップS2で特定された分割動画DMnのリクエストを、ネットワークNWを介して配信サーバ2へ送信する(ステップS3)。なお、分割動画DMnのリクエストには、リクエスト対象となる分割動画DMnの分割動画IDが含まれる。次いで、制御部31は、上記リクエストに応じて、配信サーバ2から配信された動画ブロックBn-mを含むコンテンツを受信し(ステップS4)、受信されたコンテンツを例えばRAMに設けられたバッファメモリに保持する。なお、受信されたコンテンツには、例えば、受信された動画ブロックBn-mのブロックIDを示すプレイリストファイルが含まれる。
次いで、制御部31は、ステップS4で受信されたプレイリストファイルにしたがって分割動画DMnの表示処理を実行する(ステップS5)。分割動画DMnの表示処理では、制御部31は、プレイリストファイルに示され、且つバッファメモリに保持されている動画ブロックBn-mをデコードして分割動画DMnを再生し、ビデオRAM33へ出力する。そして、制御部31は、映像処理部34へ制御信号を出力することで、ビデオRAM33に書き込まれた分割動画DMnのうち表示画面における表示範囲に収まる動画を表示させる。なお、バッファメモリに保持されているコンテンツに音声のデータが含まれる場合、制御部31は、音声処理部35へ制御信号を出力することで、音声のデータからアナログ音声信号を生成し、生成したアナログ音声信号をスピーカ35aへ出力させる。
次いで、制御部31は、全体動画M内で表示される表示範囲が変位したか否かを判定する(ステップS6)。例えば、上記表示範囲の中心点が、所定距離以上変位した場合、上記表示範囲が変位したと判定され(ステップS6:YES)、ステップS1に戻る。ステップS1に戻ると、制御部31は、再生中のコンテンツに対応する全体動画M内で表示される表示範囲を特定し、上記と同様、ステップS2以降の処理を実行する。一方、制御部31は、全体動画M内で表示される表示範囲が変位していないと判定した場合(ステップS6:NO)、ステップS7へ進む。
ステップS7では、制御部31は、コンテンツ再生処理を終了するか否かを判定する。例えば、コンテンツが最後まで再生された場合、コンテンツ再生処理を終了すると判定される。また、例えば、ユーザ操作により再生終了指示が行われた場合、コンテンツ再生処理を終了すると判定される。制御部31は、コンテンツ再生処理を終了しないと判定した場合(ステップS7:NO)、ステップS4に戻る。一方、制御部31は、コンテンツ再生処理を終了すると判定した場合(ステップS7:YES)、コンテンツ再生処理を終了する。なお、ユーザ操作により再生終了指示が行われた場合、再生終了指示を示す情報が配信サーバ2へ送信される。
一方、図6(B)に示すセグメント単位通知処理は、例えば所定時間間隔で繰り返し実行される。セグメント単位通知処理が開始されると、制御部31は、少なくとも一部の表示領域が同時に表示(つまり、表示範囲内に表示)された複数の分割動画DMnのそれぞれの表示時間を算出する(ステップS11)。次いで、制御部31は、少なくとも一部の表示領域が同時に表示された複数の分割動画DMnのそれぞれの表示割合を算出する(ステップS12)。次いで、制御部31は、ステップS12で算出された表示割合が最も大きい表示領域を含む分割動画DMnを特定する(ステップS13)。次いで、制御部31は、ステップS13で特定された分割動画DMnの表示時間(ステップS11で算出された表示時間)に比例した時間をセグメント単位Txとして決定する(ステップS14)。なお、制御部31は、少なくとも一部の表示領域が同時に表示された複数の分割動画DMnそれぞれの表示時間のうち、相対的に長い表示時間に比例した時間をセグメント単位Txとして決定してもよい。次いで、制御部31は、ステップS14で決定されたセグメント単位Txを配信サーバ2へ通知し(ステップS15)、セグメント単位通知処理を終了する。なお、セグメント単位Txに代えて表示時間が配信サーバ2に通知されるように構成してもよい。
一方、図6(C)に示すカメラワークデータ送信処理は、図6(A)に示すコンテンツ再生処理が開始されたときに開始され、カメラワークデータ送信処理とコンテンツ再生処理はOSのマルチタスクにより並列的に実行される。カメラワークデータ送信処理が開始されると、ユーザ操作に応じて、表示範囲を示すデータと再生位置とを対応付けて記録する(ステップS21)。次いで、制御部31は、前回処理(つまり、前回のステップS22の処理)から所定時間が経過したか否かを判定する(ステップS22)。制御部31は、前回処理から所定時間が経過していないと判定した場合(ステップS22:NO)、ステップS21に戻る。一方、制御部31は、前回処理から所定時間が経過したと判定した場合(ステップS22:YES)、ステップS23へ進む。ステップS23では、制御部31は、ステップS21で記録された表示範囲を示すデータを上記記録された再生位置毎に示すカメラワークデータを生成する。次いで、制御部31は、ステップS23で生成されたカメラワークデータをネットワークを介して配信サーバ2へ送信する(ステップS24)。このとき、ステップS21で記録された表示範囲を示すデータと再生位置とは消去される。次いで、制御部31は、上記ステップS6と同様に、コンテンツの再生を終了するか否かを判定する(ステップS25)。制御部31は、コンテンツの再生を終了しないと判定した場合(ステップS25:NO)、ステップS21に戻る。一方、制御部31は、コンテンツの再生を終了すると判定した場合(ステップS25:YES)、カメラワークデータ送信処理を終了する。
(実施例1におけるエンコードサーバ1及び配信サーバ2の動作)
次に、図7及び図8を参照して、実施例1におけるエンコードサーバ1及び配信サーバ2の動作について説明する。図7(A)は、配信サーバ2の制御部21により実行されるセグメント単位取得処理の一例を示すフローチャートである。図7(B)は、配信サーバ2の制御部21により実行されるカメラワークデータ解析処理の一例を示すフローチャートである。図7(C)は、エンコードサーバ1の制御部11により実行されるセグメント単位設定処理の一例を示すフローチャートである。図8(A)は、配信サーバ2の制御部21により実行されるコンテンツ配信処理の一例を示すフローチャートである。図8(B)は、エンコードサーバ1の制御部11により実行されるエンコード処理の一例を示すフローチャートである。なお、配信サーバ2において、コンテンツ配信処理と、セグメント単位取得処理(またはカメラワークデータ解析処理)とは、それぞれ非同期で実行される。セグメント単位取得処理は、各分割動画DMnの表示時間の算出がクライアント端末3aにより行われる場合に実行される。一方、カメラワークデータ解析処理は、各分割動画DMnの表示時間の算出が配信サーバ2により行われる場合に実行される。また、エンコードサーバ1において、セグメント単位設定処理とエンコード処理とは、それぞれ非同期で実行される。
図7(A)に示すセグメント単位取得処理は、クライアント端末3aからのセグメント単位Txが受信された場合に開始される。セグメント単位取得処理が開始されると、制御部21は、受信されたセグメント単位Txを記録する(ステップS31)。制御部21は、前回処理(つまり、前回のステップS31の処理)から所定時間が経過したか否かを判定する(ステップS32)。制御部31は、前回処理から所定時間が経過していないと判定した場合(ステップS32:NO)、セグメント単位取得処理を終了する。一方、制御部31は、前回処理から所定時間が経過したと判定した場合(ステップS32:YES)、ステップS33へ進む。ステップS33では、制御部21は、記録されている全てのセグメント単位Tx(つまり、複数のクライアント端末3Xから送信され、記録されたセグメント単位Tx)を、上述したように集計して新たなセグメント単位Txを取得する。次いで、制御部21は、ステップS33で取得した新たなセグメント単位Txを示す設定指令をネットワークNWを介してエンコードサーバ1に送信し(ステップS34)、セグメント単位取得処理を終了する。なお、ステップS31の処理後、ステップS32及びS33が行われずに、ステップS34へ移行してセグメント単位Txがエンコードサーバ1へ送信されるように構成してもよい。この場合、セグメント単位Txは、これを送信したクライアント端末3aに限り、分割動画DMnのエンコードに用いられる。
一方、図7(B)に示すカメラワークデータ解析処理は、クライアント端末3aからのカメラワークデータが受信された場合に開始される。カメラワークデータ解析処理が開始されると、制御部21は、受信されたカメラワークデータを解析することで、少なくとも一部の表示領域が同時に表示された複数の分割動画DMnのそれぞれの表示時間を算出する(ステップS41)。次いで、制御部21は、少なくとも一部の表示領域が同時に表示された複数の分割動画DMnのそれぞれの表示割合を算出する(ステップS42)。次いで、制御部21は、ステップS42で算出された表示割合が最も大きい表示領域を含む分割動画DMnを特定する(ステップS43)。次いで、制御部21は、ステップS43で特定された分割動画DMnの表示時間(ステップS41で算出された表示時間)に比例した時間をセグメント単位Txとして決定する(ステップS44)。なお、制御部21は、少なくとも一部の表示領域が同時に表示された複数の分割動画DMnそれぞれの表示時間のうち、相対的に長い表示時間に比例した時間をセグメント単位Txとして決定してもよい。次いで、制御部21は、ステップS44で決定されたセグメント単位Txを記録する(ステップS45)。
次いで、制御部21は、前回処理(つまり、前回のステップS45の処理)から所定時間が経過したか否かを判定する(ステップS46)。制御部31は、前回処理から所定時間が経過していないと判定した場合(ステップS46:NO)、カメラワークデータ解析処理を終了する。一方、制御部31は、前回処理から所定時間が経過したと判定した場合(ステップS46:YES)、ステップS47へ進む。ステップS47では、制御部21は、記録されている全てのセグメント単位Txを、上述したように集計して新たなセグメント単位Txを取得する。次いで、制御部21は、ステップS47で取得した新たなセグメント単位Txを示す設定指令をネットワークNWを介してエンコードサーバ1に送信し(ステップS48)、カメラワークデータ解析処理を終了する。なお、ステップS45の処理後、ステップS46及びS47が行われずに、ステップS48へ移行してセグメント単位Txがエンコードサーバ1へ送信されるように構成してもよい。この場合、セグメント単位Txは、これを送信したクライアント端末3aに限り、分割動画DMnのエンコードに用いられる。
なお、図7(A)に示すセグメント単位取得処理及び図7(B)に示すカメラワークデータ解析処理に代えて、リクエスト数解析処理が行われてもよい。このリクエスト数解析処理は、クライアント端末3aからの分割動画DMnのリクエストが受信された場合に開始される。リクエスト数解析処理が開始されると、制御部21は、受信されたリクエストの受信時刻を記録する。次いで、制御部21は、前回処理から所定時間が経過したか否かを判定する。そして、制御部21は、前回処理から所定時間が経過したと判定した場合、単位時間あたりのリクエスト数を算出し、算出したリクエスト数に対応付けられたセグメント単位Txを、上述したように、対応付けテーブルまたは計算式を用いて取得する。なお、リクエスト数は、クライアント端末3X毎に算出されてもよいし、複数のクライアント端末3Xに跨って算出されてもよい。そして、制御部21は、取得した新たなセグメント単位Txを示す設定指令をネットワークNWを介してエンコードサーバ1に送信する。
一方、図7(C)に示すセグメント単位設定処理は、配信サーバ2からの設定指令が受信された場合に開始される。セグメント単位設定処理が開始されると、制御部11は、受信された設定指令が示すセグメント単位Txと、設定中のセグメント単位Txとが一致するか否かを判定する(ステップS51)。制御部11は、双方のセグメント単位Txが一致すると判定した場合(ステップS51:YES)、セグメント単位設定処理を終了する。この場合、設定中のセグメント単位Txは変更されない。一方、制御部11は、双方のセグメント単位Txが一致しないと判定した場合(ステップS51:NO)、受信された設定指令が示すセグメント単位Txを、設定中のセグメント単位Txに代えて設定(つまり、更新)し(ステップS52)、セグメント単位設定処理を終了する。この場合、設定中のセグメント単位Txは変更される。なお、配信サーバ2からエンコードサーバ1に上記設定指令が送信される構成に代えて、エンコードサーバ1が配信サーバ2へセグメント単位Txを問い合わせるように構成してもよい。この構成は、例えば、エンコードサーバ1はLAN内に設置されていて、配信サーバ2から直接アクセスできない場合に有効である。
次に、図8(A)に示すコンテンツ配信処理は、クライアント端末3aからの分割動画DMnのリクエストが受信された場合に開始される。コンテンツ配信処理が開始されると、制御部21は、受信された、分割動画DMnのリクエストから分割動画IDを取得する(ステップS61)。次いで、制御部21は、ステップS61で取得した分割動画IDを示すエンコード指令(分割動画DMnのエンコード指令)をネットワークNWを介してエンコードサーバ1へ送信する(ステップS62)。
一方、図8(B)に示すエンコード処理は、配信サーバ2からのエンコード指令が受信された場合に開始される。エンコード処理が開始されると、制御部11は、エンコード指令が示す分割動画IDが付与された分割動画DMnを記憶部12から1つ以上取得する(ステップS71)。次いで、制御部11は、上記ステップS52で設定された最新のセグメント単位Txを取得する(ステップS72)。次いで、制御部11は、ステップS71で取得された分割動画DMnを、前回処理における分割動画DMnの区切り終了位置からエンコードする(ステップS73)。
次いで、制御部11は、分割動画DMnを、ステップS72で取得されたセグメント単位Tx分エンコードしたか否かを判定する(ステップS74)。制御部11は、分割動画DMnを上記セグメント単位Tx分エンコードしていないと判定した場合(ステップS74:NO)、ステップS73に戻り、エンコードを継続する。一方、制御部11は、分割動画DMnをセグメント単位Tx分エンコードしていたと判定した場合(ステップS74:YES)、つまり、上記セグメント単位Txの動画ブロックBn-mが生成された場合、ステップS75へ進む。これにより、より柔軟に適切なセグメント単位Txの動画ブロックBn-mを生成することができる。なお、ステップS71で複数の分割動画DMnが取得された場合、それぞれの分割動画DMnについてステップS73〜S74の処理が行われる。
ステップS75では、制御部11は、ステップS73〜S74の処理で生成された1つ以上の動画ブロックBn-mと、動画ブロックBn-mのブロックIDを示すプレイリストファイルとを含むコンテンツを生成する。なお、コンテンツには、動画ブロックBn-mと再生時間が同期した音声のデータファイルが含まれる場合もある。次いで、制御部11は、ステップS75で生成されたコンテンツを配信サーバ2へ送信し(ステップS76)、ステップS77へ進む。
一方、図8(A)に示す処理において、制御部21は、ステップS76でエンコードサーバ1から送信されたコンテンツを受信する(ステップS63)。次いで、制御部21は、ステップS63で受信されたコンテンツを、ネットワークNWを介してクライアント端末3aへ配信する(ステップS64)。次いで、制御部21は、クライアント端末3aから、分割動画DMnのリクエストを、新たに受信したか否かを判定する(ステップS65)。制御部21は、分割動画DMnのリクエストを、新たに受信したと判定した場合(ステップS65:YES)、ステップS61に戻り、新たに受信されたリクエストから分割動画IDを取得し、この分割動画IDを示すエンコード指令をエンコードサーバ1へ新たに送信することとなる。このようなリクエストは、上述したステップS6で表示範囲が変位したと判定される度にクライアント端末3aから送信される。一方、制御部21は、分割動画DMnのリクエストを新たに受信していないと判定した場合(ステップS65:NO)、ステップS66へ進む。なお、ステップS64におけるコンテンツの配信中に、クライアント端末3aからのリクエストが受信される場合がある。この場合、後から受信されたリクエストに対するコンテンツの配信は、直前のリクエストに対するコンテンツの配信が終了したあとに実行される(つまり、後から受信されたリクエストに対するコンテンツの配信は待機される)。
ステップS66では、制御部21は、コンテンツ配信処理を終了するか否かを判定する。例えば、クライアント端末3aから、再生終了指示を示す情報が受信された場合、またはエンコードサーバ1からのコンテンツの送信が一定時間以上途絶えた場合、制御部21は、コンテンツ配信処理を終了すると判定し(ステップS66:YES)、コンテンツ配信処理を終了する。一方、制御部21は、コンテンツ配信処理を終了しないと判定した場合(ステップS66:NO)、ステップS63に戻り、コンテンツの受信、及び送信を継続する。
一方、図8(B)に示すステップS77において、制御部11は、配信サーバ2からエンコード指令を新たに受信したか否かを判定する。制御部11は、エンコード指令を受信したと判定した場合(ステップS77:YES)、ステップS71に戻り、新たに受信されたエンコード指令が示す分割動画IDが付与された分割動画DMnを取得して、ステップS72以降の処理を行う。一方、制御部11は、エンコード指令を新たに受信していないと判定した場合(ステップS77:NO)、制御部11は、エンコード処理を終了するか否かを判定する(ステップS78)。例えば、コンテンツが最後までエンコードされた場合、エンコード処理を終了すると判定される。制御部11は、エンコード処理を終了しないと判定した場合(ステップS78:NO)、ステップS72に戻り、上記と同様の処理を行う。一方、制御部11は、エンコード処理を終了すると判定した場合(ステップS78:YES)、エンコード処理を終了する。
上記実施例1によれば、クライアント端末3aからの分割動画DMnのリクエストに応じて、より適切なセグメント単位Txでリアルタイムに生成された動画ブロックBn-mを配信することができる。
(実施例2)
実施例2は、クライアント端末3aからの分割動画DMnのリクエストに応じて、事前に生成され配信サーバ2に記憶されている動画ブロックBn-mが、クライアント端末3aへ配信される例である。つまり、実施例2では、クライアント端末3aからのリクエストが受信される前に、エンコードサーバ1によって、時間長の互いに異なる複数のセグメント単位(固定のセグメント単位)で同一内容の分割動画DMnから生成された動画ブロックBn-mを含むコンテンツが配信サーバ2の記憶部22に記憶されているものとする。なお、記憶されたコンテンツには、上述したプレイリストファイルが含まれる。また、コンテンツには、動画ブロックBn-mと再生時間が同期した音声のデータファイルが含まれる場合もある。
(実施例2におけるクライアント端末3aの動作)
先ず、実施例2におけるクライアント端末3aの動作については、実施例1におけるクライアント端末3aの動作と同様であり、図6(A)〜図6(C)に示す処理は、実施例2におけるクライアント端末3aにおいても実行される。
(実施例2における配信サーバ2の動作)
次に、図9を参照して、実施例2における配信サーバ2の動作について説明する。図9(A)は、配信サーバ2の制御部21により実行されるセグメント単位取得・設定処理の一例を示すフローチャートである。図9(B)は、配信サーバ2の制御部21により実行されるカメラワークデータ解析・セグメント単位設定処理の一例を示すフローチャートである。図9(C)は、配信サーバ2の制御部21により実行されるコンテンツ配信処理の一例を示すフローチャートである。なお、配信サーバ2において、コンテンツ配信処理と、セグメント単位取得・設定処理(またはカメラワークデータ解析・セグメント単位設定処理)とは、それぞれ非同期で実行される。セグメント単位取得・設定処理は、各分割動画DMnの表示時間の算出がクライアント端末3aにより行われる場合に実行される。一方、カメラワークデータ解析・セグメント単位設定処理は、各分割動画DMnの表示時間の算出が配信サーバ2により行われる場合に実行される。
図9(A)に示すセグメント単位取得・設定処理は、クライアント端末3aからのセグメント単位Txが受信された場合に開始される。セグメント単位取得・設定処理が開始されると、制御部21は、受信により取得されたセグメント単位Txと、設定中のセグメント単位Txとが一致するか否かを判定する(ステップS81)。制御部21は、双方のセグメント単位Txが一致すると判定した場合(ステップS81:YES)、セグメント単位取得・設定処理を終了する。この場合、設定中のセグメント単位Txは変更されない。一方、制御部21は、双方のセグメント単位Txが一致しないと判定した場合(ステップS81:NO)、上記取得されたセグメント単位Txを、設定中のセグメント単位Txに代えて設定(つまり、更新)し(ステップS82)、セグメント単位取得・設定処理を終了する。この場合、設定中のセグメント単位Txは変更される。
一方、図9(B)に示すカメラワークデータ解析・セグメント単位設定処理は、クライアント端末3aからのカメラワークデータが受信された場合に開始される。カメラワークデータ解析・セグメント単位設定処理が開始されると、制御部21は、受信されたカメラワークデータを解析することで、少なくとも一部の表示領域が同時に表示された複数の分割動画DMnのそれぞれの表示時間を算出する(ステップS91)。次いで、制御部21は、少なくとも一部の表示領域が同時に表示された複数の分割動画DMnのそれぞれの表示割合を算出する(ステップS92)。次いで、制御部21は、ステップS92で算出された表示割合が最も大きい表示領域を含む分割動画DMnを特定する(ステップS93)。次いで、制御部21は、ステップS93で特定された分割動画DMnの表示時間に比例した時間をセグメント単位Txとして決定する(ステップS94)。なお、制御部21は、少なくとも一部の表示領域が同時に表示された複数の分割動画DMnそれぞれの表示時間のうち、相対的に長い表示時間に比例した時間をセグメント単位Txとして決定してもよい。次いで、制御部21は、ステップS94の決定により取得されたセグメント単位Txと、設定中のセグメント単位Txとが一致するか否かを判定する(ステップS95)。制御部21は、双方のセグメント単位Txが一致すると判定した場合(ステップS95:YES)、カメラワークデータ解析・セグメント単位設定処理を終了する。一方、制御部21は、双方のセグメント単位Txが一致しないと判定した場合(ステップS95:NO)、上記取得されたセグメント単位Txを、設定中のセグメント単位Txに代えて設定し(ステップS96)、セグメント単位取得・設定処理を終了する。
なお、図9(A)に示すセグメント単位取得・設定処理及び図9(B)に示すカメラワークデータ解析・セグメント単位設定処理に代えて、リクエスト数解析処理が行われてもよい。このリクエスト数解析処理は、クライアント端末3aからの分割動画DMnのリクエストが受信された場合に開始される。リクエスト数解析処理が開始されると、制御部21は、受信されたリクエストの受信時刻を記録する。次いで、制御部21は、前回処理から所定時間が経過したか否かを判定する。そして、制御部21は、前回処理から所定時間が経過したと判定した場合、単位時間あたりのリクエスト数を算出し、算出したリクエスト数に対応付けられたセグメント単位Txを、上述したように、対応付けテーブルまたは計算式を用いて取得する。そして、ステップS94〜S96と同様の処理を行うことで、上記取得されたセグメント単位Txを設定する。
次に、図9(C)に示すコンテンツ配信処理は、クライアント端末3aからの分割動画DMnのリクエストが受信された場合に開始される。コンテンツ配信処理が開始されると、制御部21は、受信された、分割動画DMnのリクエストから分割動画IDを取得する(ステップS101)。次いで、制御部21は、上記ステップS82またはステップS96で設定された最新のセグメント単位Txを取得する(ステップS102)。次いで、制御部21は、ステップS102で取得された分割動画IDが付与された分割動画DMnから生成された動画ブロックBn-mであって、ステップS102で取得されたセグメント単位Txとの時間差が最も短いセグメント単位の動画ブロックBn-mを記憶部22から取得する(ステップS103)。
次いで、制御部21は、ステップS103で取得された1つ以上の動画ブロックBn-mと、動画ブロックBn-mのブロックIDを示すプレイリストファイルとを含むコンテンツを生成する(ステップS104)。なお、コンテンツには、動画ブロックBn-mと再生時間が同期した音声のデータファイルが含まれる場合もある。次いで、制御部21は、ステップS104で生成されたコンテンツを、ネットワークNWを介してクライアント端末3aへ配信する(ステップS105)。
次いで、制御部21は、クライアント端末3aから、分割動画DMnのリクエストを、新たに受信したか否かを判定する(ステップS106)。制御部21は、分割動画DMnのリクエストを、新たに受信したと判定した場合(ステップS106:YES)、ステップS101に戻る。一方、制御部21は、分割動画DMnのリクエストを新たに受信していないと判定した場合(ステップS106:NO)、ステップS107へ進む。ステップS107では、制御部21は、コンテンツ配信処理を終了するか否かを判定する。制御部21は、コンテンツ配信処理を終了すると判定した場合(ステップS107:YES)、コンテンツ配信処理を終了する。一方、制御部21は、コンテンツ配信処理を終了しないと判定した場合(ステップS107:NO)、ステップS102に戻る。
上記実施例2によれば、クライアント端末3aからの分割動画DMnのリクエストに応じて、配信サーバ2の負荷を低減しつつ、より適切なセグメント単位Txで生成された動画ブロックBn-mを、より迅速に配信することができる。
以上説明したように、上記実施形態によれば、クライアント端末3Xにおいて表示された分割動画DMnの表示時間に応じたセグメント単位Tx、またはクライアント端末3Xからの分割動画DMnのリクエスト数に応じたセグメント単位Txの動画ブロックBn-m毎に、分割動画DMnのデータをクライアント端末3Xへ送信するように構成した。このため、クライアント端末3Xからリクエストされた分割動画DMnのデータを、クライアント端末3Xのユーザの視聴状況に応じた最適なセグメント単位Txで送信することができ、その結果、データ伝送量の無駄を低減しつつ、サーバ装置やネットワークにかかる負荷を低減することができる。また、上記実施形態によれば、視聴範囲の変動が大きい時間帯(例えば、スポーツの場合、試合中)、少ない時間帯(例えば、スポーツの場合、休憩中)がコンテンツにあっても、最適なセグメント単位Txで分割動画DMnのデータをクライアント端末3Xへ送信することができる。