本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る動画像配信装置1は、図1に例示するように、制御部11と、記憶部12と、通信部13とを含んで構成され、ネットワーク等の通信手段を介して端末2との間で通信可能に接続される。
ここで制御部11はCPU等のプログラム制御デバイスであり、記憶部12に格納されたプログラムに従って動作する。本実施の形態の一例では、この制御部11は、配信の対象とする動画像データの元となる動画像元データを受け入れ、当該受け入れた動画像元データを所定の方法で符号化して、配信の対象とする動画像データを生成する。ここで符号化の方法は、例えばMPEG等で定められた方法であり、生成される動画像データはそれぞれ、静止画の全体を含み、再生の起点となり得るキーフレーム(MPEGであればIフレームに相当するフレーム)を少なくとも一つ含む。
またこの制御部11は、追加動画像データとともに、当該追加動画像データを配信するべきタイミングを指定するタイミング指定情報を受け入れる。そして制御部11は、当該タイミング指定情報により指定されるタイミングで配信されているべき動画像データと、それ以外の動画像データとで、キーフレームの挿入頻度を異ならせる。
制御部11はさらに、受け入れたタイミング指定情報で指定されるタイミングの直後にあるキーフレームを検索し、当該キーフレームの直前のフレームで配信を中断して、当該タイミング指定情報とともに受け入れた追加動画像に基づいて生成される動画像データを割り込んで配信する。制御部11は、当該割り込んで配信した動画像データの配信が終了すると、中断していた動画像データの配信を再開する。この制御部11の動作については後に詳しく述べる。
記憶部12は、ディスクデバイスやメモリデバイス等であり、制御部11によって実行されるプログラムを保持している。この記憶部12に保持されるプログラムは、DVD−ROM等のコンピュータ可読、かつ非一時的(Non-transitory)な記憶媒体に格納されて提供され、この記憶部12に複写されたものであってもよい。本実施の形態では、この記憶部12は、制御部11のワークメモリとしても動作する。
通信部13は、ネットワークインタフェース等であり、制御部11から入力される指示に従って、指示された宛先に対してネットワークを介してデータを送出する。またこの通信部13はネットワークを介して受信したデータを制御部11に出力する。
また端末2は、例えばスマートフォンや、パーソナルコンピュータ等のデバイスであり、MPEG等の方式で符号化された動画像データを受信して、当該受信した動画像データに基づいて動画像の再生処理を行う。この端末2による再生処理の方法は広く知られているので、ここでの詳しい説明を省略する。
本実施の形態において動画像配信装置1の制御部11は、機能的には図2に例示するように、元データ受入部31と、追加動画像受入部32と、動画像データ生成部33と、プレイリスト生成部34と、配信制御部35とを含んで構成される。
元データ受入部31は、配信の対象とする動画像データの元となる動画像元データを受け入れる。本実施の形態において動画像元データは、再生時刻「0」から「T」までの動画像を表すデータであり、具体的には単位時間あたりNフレーム(Nは1以上の自然数)の一連の静止画像データ(RAWデータ)であってもよいし、当該RAWデータを、MPEGその他の所定の方法で符号化したデータ(この場合は、単位時間あたりNフレーム分の、キーフレームと予測フレームとの組)であってもよい。また元データ受入部31は、この再生時刻「0」から「T」までの全体を一度に受け入れる必要はなく、例えばΔT(ΔT<T)ずつ逐次的に受け入れてもよい。
本実施の形態の例では、この元データ受入部31は、動画像元データに含まれる各フレームのデータを、当該フレームの先頭(再生時刻「0」の位置)から昇順に付されたフレーム番号に関連付けて記憶部12に格納する(図3(a))。ここでの例では単位時間あたりNフレームとしているので、フレーム番号F(Fは1以上の自然数)のフレームが再生されるべき時刻(再生時刻)はF/Nで表される。
追加動画像受入部32は、配信の対象となった動画像データの配信中に割り込んで配信するべき少なくとも一つの動画像データと、当該動画像データを割り込んで再生するべき再生時刻(配信中の動画像データの再生時刻)を表すタイミング指定情報とを受け入れて、これらを関連付けて、追加動画像データベースとして記憶部12に格納する(図3(b))。
動画像データ生成部33は、元データ受入部31が受け入れた動画像元データを所定の方法で符号化し、配信の対象となる動画像データを生成する。本実施の形態の一例において、この動画像データ生成部33は、元データ受入部31が受け入れた動画像元データを所定の時間(例えば1秒)ごとの動画像情報に分割し、分割して得られた各動画像情報を符号化して、配信の対象となる上記所定の時間ごとの動画像データを生成する。
一例として動画像データ生成部33は、図4に例示する処理を実行する。すなわち、動画像データ生成部33は、動画像元データとして単位時間あたりNフレーム分のRAWデータを、Nフレームずつ、つまりフレーム番号F=fiから、F=fi+N−1までのフレームのデータを取り出す(S1)。ここでi=1,2,…なる整数であり、iは当初は「1」に初期化されているものとする。また、f1=0、fn+1=fn+Nとする。
また動画像データ生成部33は、記憶部12に格納されている追加動画像データベースに記録されたタイミング指定情報を参照し、再生時刻fi/Nから(fi+N−1)/Nまでの間に、当該タイミング指定情報で指定される時刻が含まれているか否か(タイミング指定情報が複数あれば、そのいずれかが含まれているか否か)を調べる(S2)。
ここで再生時刻fi/Nから(fi+N−1)/Nまでの間に、当該タイミング指定情報で指定される時刻が含まれていなければ(Noならば)、つまり、処理S1で取り出したフレームのデータの再生中に割り込んで再生する追加動画像データがなければ、動画像データ生成部33は、当該取り出したフレームのうち、先頭のフレーム(再生時刻が最も早いフレーム)fiをキーフレーム(例えばMPEGにおけるIフレーム)として、処理S1で取り出したフレームのデータを符号化する(第1符号化したデータを取得:S3)。この処理S3における符号化においては、例えばmフレーム(mは2≦m≦Nなる整数)ごとのフレームをキーフレームとして、残りのフレーム(キーフレームとしていないフレームのデータ)を、直前のキーフレームのデータを用いて再生される予測フレーム(例えばMPEGにおけるPフレームまたはBフレーム)として符号化する。
そして動画像データ生成部33は、符号化により得られた動画像データをプレイリスト生成部34に出力し(S4)、さらに符号化していないフレームのデータがあるか否か(フレーム番号fi+1=fi+Nのデータがあるか)を調べる(S5)。ここで符号化していないフレームのデータがあれば(Yesならば)、動画像データ生成部33は、iを「1」だけインクリメントして(S6)、処理S1に戻って処理を続ける。また処理S5において符号化していないフレームのデータがなければ(Noならば)、動画像データ生成部33は処理を終了する。
また処理S2において、再生時刻fi/Nから(fi+N−1)/Nまでの間に、当該タイミング指定情報で指定される時刻が含まれていれば(Yesならば)、つまり、処理S1で取り出したフレームのデータの再生中に割り込んで再生する追加動画像データがあるならば、動画像データ生成部33は、当該取り出したフレームのうち、先頭のフレーム(再生時刻が最も早いフレーム)fiをキーフレーム(例えばMPEGにおけるIフレーム)として、処理S1で取り出したフレームのデータを符号化する(第2符号化したデータを取得:S7)。この処理S7における符号化においては、例えばm′フレーム(m′は1≦m′<m≦Nなる整数)ごとのフレームをキーフレームとして、残りのフレーム(キーフレームとしていないフレームのデータ)を、直前のキーフレームのデータを用いて再生される予測フレーム(例えばMPEGにおけるPフレームまたはBフレーム)として符号化する。なお、m′=1の場合はすべてのフレームをキーフレームとして符号化する(つまり、キーフレームのみを含んだ動画像データを生成する)こととなる。そして動画像データ生成部33は、処理S4に移行して処理を続ける。
なお、ここでの説明では、動画像データ生成部33が処理S3,S7において、第1符号化または第2符号化の処理を行うこととして説明したが、本実施の形態では、例えば処理S1と処理S2との間で、第1符号化したデータと、第2符号化したデータとをそれぞれ生成しておき、処理S3では当該事前に生成したデータのうち、第1符号化したデータを取得することとし、処理S7では当該事前に生成したデータのうち、第2符号化したデータを取得することとしてもよい。
これら追加動画像受入部32と、動画像データ生成部33との動作により、追加動画像データが割り込んで配信されるべき時刻を表すタイミング指定情報により指定されるタイミングで配信されているべき動画像データ(その配信中に追加動画像データが割り込んで配信される動画像データ)と、それ以外の動画像データ(その配信中に追加動画像データが割り込んで配信されることがない動画像データ)とで、キーフレームの挿入頻度が異ならされる。
プレイリスト生成部34は、動画像データ生成部33が、動画像元データを分割し、当該分割された動画像情報をそれぞれ符号化して得た複数の動画像データを受け入れる。ここで受け入れる動画像データのうち、その配信中に追加動画像データが割り込んで配信される動画像データは図4の処理S7にて第2符号化された動画像データ(m′フレームごとにキーフレームが含まれる動画像データ)であり、その配信中に追加動画像データが割り込んで配信されることがない動画像データは図4の処理S3にて第1符号化された動画像データ(m′<mなる、mフレームごとにキーフレームが含まれる動画像データ)となっている。
プレイリスト生成部34は、動画像データ生成部33が出力する動画像データ(F=fiから、F=fi+N−1の動画像元データを符号化したデータ)を、その配信順を表す情報である値iに関連付けて記憶部12に格納する(図3(c))。また、このプレイリスト生成部34は、次の処理を実行する。すなわちプレイリスト生成部34は、図5に示すように、変数iを「1」に初期化し、空のプレイリストデータを生成して記憶部12に格納してから(初期化処理:S11)、配信順の値iに関連付けて記憶部12に格納した動画像データを読み出す(S12)。また、記憶部12に格納されている追加動画像データベースに記録されたタイミング指定情報を参照し、処理S12で読み出した動画像データの再生時間である再生時刻fi/Nから(fi+N−1)/Nまでの間に、当該タイミング指定情報で指定される時刻が含まれているか否か(タイミング指定情報が複数あれば、そのいずれかが含まれているか否か)を調べる(S13)。
ここで、再生時刻fi/Nから(fi+N−1)/Nまでの間に、当該タイミング指定情報で指定される時刻が含まれていなければ(Noならば)、つまり、処理S12で読み出した動画像データの配信中に追加動画像データを割り込み配信しないならば、プレイリスト生成部34は、プレイリストデータの末尾に、配信順を表す値iを追記する(S14)。そして配信順の値i+1に関連付けて記憶部12に格納された動画像データがあるか否かを調べ(S15)、配信順の値i+1に関連付けて記憶部12に格納された動画像データがあるならば(Yesならば)、iを「1」だけインクリメントして(S16)、処理S12に戻って処理を続ける。またこの処理S15において、配信順の値i+1に関連付けて記憶部12に格納された動画像データがなければ(Noならば)、プレイリスト生成部34は、処理を終了するか、あるいは配信順の値i+1に関連付けて動画像データを記憶部12に格納するまで待機する。
プレイリスト生成部34は、また、処理S13において、再生時刻fi/Nから(fi+N−1)/Nまでの間に、タイミング指定情報で指定される時刻が含まれていたときには(Yesならば)、処理S12で読み出した動画像データに含まれるキーフレームのうち、タイミング指定情報で指定される時刻に最も近いキーフレーム(あるいはタイミング指定情報で指定される時刻の直後にあるキーフレーム、以下、これらをまとめて分割位置キーフレームと呼ぶ)を検索する(S17)。
プレイリスト生成部34は、処理S12で読み出した動画像データを、その先頭のフレームから処理S17の検索により見出した分割位置キーフレームの一つ前のフレームまでの部分(第1部分)と、処理S17の検索により見出した分割位置キーフレームから最後のフレームまでの部分(第2部分)とに分割して、配信順iと、第1部分と第2部分とのいずれであるかを識別する情報(部分識別情報と呼ぶ;例えば配信順iに連接して第1部分については符号「a」を付し、第2部分については符号「b」を付すものでもよい)とに関連付けて記憶部12に格納する(S18)。
プレイリスト生成部34は、配信順iと第1部分であることを表す部分識別情報とをプレイリストデータの末尾に追記し、さらに処理S13において再生時刻fi/Nから(fi+N−1)/Nまでの間に含まれると判断されたタイミング指定情報に関連付けて記憶部12に格納されている追加動画像データを特定する情報(例えば追加動画像データのファイル名等)をプレイリストデータの末尾に追記し、次いで、配信順iと第2部分であることを表す部分識別情報とをプレイリストデータの末尾に追記する(S19)。そしてプレイリスト生成部34は、処理S15に移行して処理を続ける。
配信制御部35は、プレイリスト生成部34が生成しているプレイリストデータを記憶部12から読み出して、当該プレイリストデータの先頭から順に、記録されている情報を取り出す。そして配信制御部35は、取り出した情報で特定される動画像データを記憶部12から読み出して、動画像データを要求している端末2に対して配信する。ここで動画像データを要求する端末2を認証して管理し、当該端末2を特定する情報(ネットワークアドレス等)を得て、配信を行う処理については広く知られているので、詳しい説明を省略する。
本実施の形態は、以上の構成を備えており、次のように動作する。以下の例では、本実施の形態の動画像配信装置1には、単位時間あたりNフレーム分のRAWデータが動画像元データとして入力されるものとする。また動画像配信装置1は、利用者から予め、動画像データの配信中に割り込んで配信されるべき追加動画像データと、その割り込みの時点(動画像データの再生時刻)を表すタイミング指定情報との入力を受けて、図3(b)に例示した追加動画像データベースを記憶部12に格納しておくものとする。
動画像配信装置1は、入力された動画像元データを受け入れて記憶し、当該記憶した動画像元データを予め定めた単位で、例えばNフレームずつ取り出す。ここで動画像配信装置1がi回目に取り出したNフレーム分のデータは、動画像元データの先頭からfi+1番目から、fi+N−1番目のフレームのデータとなる。
動画像配信装置1は、また、記憶部12に格納されている追加動画像データベースに記録されたタイミング指定情報を参照し、取り出したNフレーム分のデータから得られる動画像データの再生中に追加動画像データを割り込んで配信するか否か、つまり再生時刻fi/Nから(fi+N−1)/Nまでの間に、タイミング指定情報で指定される時刻が含まれているか否かを調べる。
ここで、取り出したNフレーム分のデータから得られる動画像データの再生中に追加動画像データを割り込んで配信しないと判断したときには、動画像配信装置1は、当該取り出したNフレーム分のデータについて、例えば従来と同様に、mフレーム(mは2≦m≦Nなる整数)ごとのフレームをキーフレームとして、残りのフレーム(キーフレームとしていないフレームのデータ)を、直前のキーフレームのデータを用いて再生される予測フレーム(例えばMPEGにおけるPフレームまたはBフレーム)として符号化して、動画像データを生成する。本実施の形態の一例では、m=N、つまり取り出したNフレーム分のデータの最初のフレームのみをキーフレームとし、残るフレームを予測フレームとして符号化して、動画像データを生成する。
動画像配信装置1は、この符号化の結果として得られた動画像データを、取り出した回数iを、配信順を表す情報として、この配信順を表す情報に関連付けて記憶部12に蓄積する。
また、取り出したNフレーム分のデータから得られる動画像データの再生中に追加動画像データを割り込んで配信すると判断したときには、動画像配信装置1は、当該取り出したNフレーム分のデータについて、m′フレーム(m′は1≦m′<m≦Nなる整数)ごとのフレームをキーフレームとして、残りのフレーム(キーフレームとしていないフレームのデータ)を、直前のキーフレームのデータを用いて再生される予測フレーム(例えばMPEGにおけるPフレームまたはBフレーム)として符号化して動画像データを生成する。本実施の形態のある例では、m′=1とする。この場合、すべてのフレームがキーフレームとして符号化される。動画像配信装置1は、この符号化の結果として得られた動画像データを、取り出した回数iを、配信順を表す情報として、この配信順を表す情報に関連付けて記憶部12に蓄積する。
この符号化の処理により、動画像配信装置1の記憶部12には、図3(c)に例示したように、配信の対象となる一連の動画像データが配信順を表す情報に関連付けて格納される。
また動画像配信装置1は、この符号化の処理と並行して、動画像の配信のためのプレイリストを生成して配信を実行する。つまり動画像配信装置1は、j=1から順にj=1,2,3…と昇順にカウントしつつ、動画像元データを分割し、符号化して得られた複数の動画像データのうち、再生時刻fj/Nから(fj+N−1)/Nまでの間の動画像データ(配信順jに関連付けられている動画像データ)を読み出して配信を行う。このとき動画像配信装置1は、読み出したj番目の配信順の動画像データを配信する間に、割り込み配信をするべき追加動画像データがあるか否かを調べる。つまり、読み出したj番目の配信順の動画像データに対応する再生時刻fj/Nから(fj+N−1)/Nまでの間の時刻を表すタイミング指定情報が追加動画像データベースに記録されているか否かを調べる。
ここで、読み出したj番目の配信順の動画像データを配信する間に、割り込み配信をするべき追加動画像データがなければ、動画像配信装置1は、プレイリストデータに当該動画像データを特定する情報(例えば配信順の情報j)を追記する。また、読み出したj番目の配信順の動画像データを配信する間に、割り込み配信をするべき追加動画像データがあれば、動画像配信装置1は、読み出した動画像データに含まれるキーフレームのうち、タイミング指定情報で指定される時刻に最も近いキーフレームを検索する。動画像配信装置1は、検索により見出したキーフレームを分割位置キーフレームとし、読み出した動画像データの最初のフレームから、分割位置キーフレームの一つ前のフレームまでのフレームを第1部分、分割位置キーフレームから、読み出した動画像データの最後のフレームまでのフレームを第2部分として、j番目の配信順の動画像データを、第1部分の動画像データと第2部分の動画像データとに分割する。
本実施の形態では、この分割位置キーフレームを含んだ動画像データが、キーフレームのみの動画像データとして符号化されているので、どのフレームも分割位置キーフレームとなり得る。つまり、フレームの単位で分割が可能となっている。
動画像配信装置1は、ここで分割して得られた動画像データを、配信順j、及び、第1部分と第2部分とのいずれであるかを識別する部分識別情報に関連付けて記憶部12に格納する。ここでは配信順jの動画像データを分割して得た第1部分の動画像データをja(例えばj=3ならば「3a」)、第2部分の動画像データをjb(例えばj=3ならば「3b」)としたものとする。
動画像配信装置1は、そして、第1部分の動画像データjaと、割り込み配信をするべき追加動画像データを特定する情報と、第2部分の動画像データjbとをこの順に、プレイリストデータに追記する。
この処理により、例えば配信順が「3」である動画像データの配信中に、追加動画像データを配信するべきタイミングが含まれる場合、プレイリストデータは、
1,2,3a,X,3b,4…
という順となる。ここでXは追加動画像データを意味するものとする。
動画像配信装置1は、こうしてプレイリストデータを生成しつつ、プレイリストデータの先頭から順に、当該プレイリストデータに記録された情報で特定される動画像データを、端末2に対して配信する。そして端末2では、このプレイリストによって定められる動画像データを受信し、当該受信した動画像データを再生する。
この場合は、端末2において図6(a)に例示するように、配信順1,2の動画像データが再生された後、配信順「3」の動画像データの第1部分(動画像データ3a)が再生され、次に追加動画像データXが再生され、次いで配信順「3」の動画像データの第2部分(動画像データ3b)が再生され、以下、配信順4以降の動画像データが再生される。
上述の例では、配信順が1,2,4…の動画像データについては従来と同様、mフレーム(ここでの例ではm=Nとしている)に一つがキーフレームとなっている。また、配信順が「3」である動画像データについては、すべてのフレームがキーフレームであるので、追加動画像データの割り込み配信のタイミングがフレーム単位で設定可能となる。これより、例えばタイトルのスーパーインポーズが終了した時点のタイミングを表すタイミング指定情報に関連付けて広告用の動画像データを追加動画像データとして設定することで、タイトルのスーパーインポーズが終了した時点のフレームをキーフレームとして符号化し、このタイトルのスーパーインポーズが終了した時点のフレームの前後で広告用の動画像データを割り込み配信できるようになり、配信側にとって意図したタイミングで広告等、追加的な動画像データが配信可能となる。
なお、ここでの例では、追加動画像データは、配信対象となっている動画像データに単に割り込んで配信され、割り込み配信後、割り込み前の時点の続きから配信が再開されることとしていたが本実施の形態はこれだけに限られない。
例えば追加動画像データの再生時間がτであるとき、動画像配信装置1は次のように動作してもよい。この例では動画像配信装置1は、追加動画像データベースに追加動画像データを格納する際、当該追加動画像データの割り込み配信のタイミングを表すタイミング指定情報のほか、この追加動画像データの再生時間の長さτを、追加動画像データに関連付けて格納する。
動画像配信装置1は、動画像元データの入力を受け入れて記憶し、当該記憶した動画像元データを予め定めた単位で、例えばNフレームずつ取り出す。動画像配信装置1は、また、記憶部12に格納されている追加動画像データベースに記録されたタイミング指定情報と追加動画像データの長さτとを参照し、取り出したNフレーム分のデータから得られる動画像データの再生中に追加動画像データの再生開始時点または再生終了時点が含まれるか否か、つまり再生時刻fi/Nから(fi+N−1)/Nまでの間に、タイミング指定情報で指定される時刻ts(再生開始時点)が含まれている(fj/N≦ts≦(fj+N−1)/Nである)か、または当該時刻ts+τで表される時刻(再生終了時点)が含まれる(fj/N≦te≦(fj+N−1)/Nである)か否かを調べる。
ここで、取り出したNフレーム分のデータから得られる動画像データの再生中に追加動画像データの再生開始時点または再生終了時点が含まれないと判断したときには、動画像配信装置1は、当該取り出したNフレーム分のデータについて、例えば従来と同様に、mフレーム(mは2≦m≦Nなる整数)ごとのフレームをキーフレームとして、残りのフレーム(キーフレームとしていないフレームのデータ)を、直前のキーフレームのデータを用いて再生される予測フレーム(例えばMPEGにおけるPフレームまたはBフレーム)として符号化して、動画像データを生成する。本実施の形態の一例では、m=N、つまり取り出したNフレーム分のデータの最初のフレームのみをキーフレームとし、残るフレームを予測フレームとして符号化して、動画像データを生成する。
動画像配信装置1は、この符号化の結果として得られた動画像データを、取り出した回数iを配信順を表す情報として、この配信順を表す情報に関連付けて記憶部12に蓄積する。
また、取り出したNフレーム分のデータから得られる動画像データの再生中に追加動画像データの再生開始時点または再生終了時点が含まれると判断したときには、動画像配信装置1は、当該取り出したNフレーム分のデータについて、m′フレーム(m′は1≦m′<m≦Nなる整数)ごとのフレームをキーフレームとして、残りのフレーム(キーフレームとしていないフレームのデータ)を、直前のキーフレームのデータを用いて再生される予測フレーム(例えばMPEGにおけるPフレームまたはBフレーム)として符号化して動画像データを生成する。本実施の形態のある例では、m′=1とする。この場合、すべてのフレームがキーフレームとして符号化される。動画像配信装置1は、この符号化の結果として得られた動画像データを、取り出した回数iを配信順を表す情報として、この配信順を表す情報に関連付けて記憶部12に蓄積する。
この符号化の処理により、動画像配信装置1の記憶部12には、図3(c)に例示したように、配信の対象となる一連の動画像データが配信順を表す情報に関連付けて格納される。
また動画像配信装置1は、この符号化の処理と並行して、動画像の配信のためのプレイリストを生成して配信を実行する。つまり動画像配信装置1は、追記フラグを「1」にセットし、j=1から順にj=1,2,3…と昇順にカウントしつつ、動画像元データを分割し、符号化して得られた複数の動画像データのうち、再生時刻fj/Nから(fj+N−1)/Nまでの間の動画像データ(配信順jに関連付けられている動画像データ)を読み出して配信を行う。このとき動画像配信装置1は、読み出したj番目の配信順の動画像データを配信する時間に、割り込み配信をするべき追加動画像データの再生開始時点または再生終了時点が含まれるか否かを調べる。つまり、読み出したj番目の配信順の動画像データに対応する再生時刻fj/Nから(fj+N−1)/Nまでの間に、追加動画像データベースに記録されているかタイミング指定情報が表す時刻tsが含まれる(fj/N≦ts≦(fj+N−1)/Nである)または、タイミング指定情報が表す時刻tsに対応する追加動画像データの再生時間の長さτを加算した時刻te=ts+τが含まれる(fj/N≦te≦(fj+N−1)/Nである)か否かを調べる。
ここで、読み出したj番目の配信順の動画像データを配信するべき時間に、割り込み配信をするべき追加動画像データの再生開始時点または再生終了時点が含まれなければ、動画像配信装置1は、追記フラグを参照し、追記フラグが「1」であれば、プレイリストデータに当該動画像データを特定する情報(例えば配信順の情報j)を追記する。ここで追記フラグが「0」であれば、追記を行わない。
また、読み出したj番目の配信順の動画像データを配信する間に、割り込み配信をするべき追加動画像データの再生開始時点または再生終了時点が含まれるならば、動画像配信装置1は、読み出した動画像データに含まれるキーフレームのうち、タイミング指定情報で指定される時刻に最も近いキーフレームを検索する。動画像配信装置1は、検索により見出したキーフレームを分割位置キーフレームとし、読み出した動画像データの最初のフレームから、分割位置キーフレームの一つ前のフレームまでのフレームを第1部分、分割位置キーフレームから、読み出した動画像データの最後のフレームまでのフレームを第2部分として、j番目の配信順の動画像データを、第1部分の動画像データと第2部分の動画像データとに分割する。
動画像配信装置1は、ここで分割して得られた動画像データを、配信順j、及び、第1部分と第2部分とのいずれであるかを識別する部分識別情報に関連付けて記憶部12に格納する。ここでは配信順jの動画像データを分割して得た第1部分の動画像データをja(例えばj=3ならば「3a」)、第2部分の動画像データをjb(例えばj=3ならば「3b」)としたものとする。
動画像配信装置1は、そして、読み出したj番目の配信順の動画像データを配信するべき時間に、割り込み配信をするべき追加動画像データの再生開始時点が含まれるときには、第1部分の動画像データjaと、割り込み配信をするべき追加動画像データを特定する情報とをこの順に、プレイリストデータに追記し、追記フラグを「0」とする。
また動画像配信装置1は、読み出したj番目の配信順の動画像データを配信するべき時間に、割り込み配信をするべき追加動画像データの再生終了時点が含まれるときには、その第2部分の動画像データjbをプレイリストデータに追記し、追記フラグを「1」とする。
この処理により、例えば配信順が「3」である動画像データの配信中に、追加動画像データの再生開始時点が含まれ、配信順が「5」である動画像データを配信すべき時間の間に追加動画像データの再生終了時点が含まれる場合、プレイリストデータは、
1,2,3a,X,5b,6…
という順となる。ここでXは追加動画像データを意味するものとする。
動画像配信装置1は、こうしてプレイリストデータを生成しつつ、プレイリストデータの先頭から順に、当該プレイリストデータに記録された情報で特定される動画像データを、端末2に対して配信する。そして端末2では、このプレイリストによって定められる動画像データを受信し、当該受信した動画像データを再生する。
この例の場合は、端末2において図6(b)に例示するように、配信順1,2の動画像データが再生された後、配信順「3」の動画像データの第1部分(動画像データ3a)が再生され、次に追加動画像データXが再生される。この追加動画像データXが再生されている時間は、実際には配信順「3」の動画像データの第2部分(動画像データ3b)、配信順「4」の動画像データ、配信順「5」の動画像データの第1部分(動画像データ5a)が再生されるべき時間であるが(本来のタイムライン)、本実施の形態のここでの例では、追加動画像データXがこれらの代わりに再生されることとなり、これら配信順「3」の動画像データの第2部分(動画像データ3b)、配信順「4」の動画像データ、配信順「5」の動画像データの第1部分(動画像データ5a)はスキップされる。
つまり、追加動画像データXの再生が終了すると、次いで配信順「5」の動画像データの第2部分(動画像データ5b)が再生され、以下、配信順6以降の動画像データが再生される。
本実施の形態のこの例では、あたかも、配信対象の動画像データの配信は、追加動画像データの有無に関わらず続けられており、追加動画像データの配信終了後、その時点から配信対象の動画像データの配信が再開されたかのように処理される。この例では配信対象の動画像データの一部は配信されないこととなるが、実時間で配信されるべき動画像などの場合に用いることができる。
また本実施の形態の動画像配信装置1は、追加動画像データを、配信対象となっている動画像データに単に割り込んで配信し、割り込み配信後、割り込み前の時点の続きから配信対象の動画像データの配信を再開する図6(a)に例示するプレイリストデータ(以下、第1種プレイリストデータと呼ぶ)と、追加動画像データを、配信対象となっている動画像データに割り込んで配信した後、割り込み配信の終了の時点で配信されているべきであった(追加動画像データを配信しなければその時点で配信しているはずであった)動画像データの続きから配信する、図6(b)に例示するプレイリストデータ(以下、第2種プレイリストデータと呼ぶ)との双方を生成してもよい。
この例では、実時間の配信では、第2種プレイリストデータを用いて配信を行い、実時間の配信でないとき(タイムシフト再生の要求に応答する場合等)には、第1種プレイリストデータを用いて配信を行うようにしてもよい。
さらに、本実施の形態においては、配信制御部35が、プレイリストデータを記憶部12から読み出して、当該プレイリストデータの先頭から順に、記録されている情報を取り出し、当該取り出した情報で特定される動画像データを記憶部12から読み出して配信する際に、当該取り出した情報で特定される動画像データが追加動画像データであったときには、配信先の端末2ごとに、配信する追加動画像データを異ならせてもよい。
この場合、同じタイミングで割り込み配信の対象となる追加動画像データを複数用意しておく。そして動画像配信装置1が、配信先となった端末2に係る条件(例えば端末2の利用者に関する情報や、端末2の所在する地域の情報等)に基づいて、複数用意された追加動画像データのうち、どの追加動画像データを配信するかを選択して配信することとすればよい。