説明

配信装置、配信プログラムおよび配信方法

【課題】映像情報を遅延することなく利用者端末に配信すること。
【解決手段】映像受信部110は、エンコーダから複数の区切りを含む映像情報を受信する。区切検出部120は、インターネットを介して利用者端末から映像情報の配信要求を受信した場合に、映像情報に含まれる区切りのうち、配信要求を受信したタイミング以降の最初の区切りを検出する。時間情報設定部130は、区切検出部120が検出した区切り以降の時間情報を初期値から開始して設定する。映像配信部140は、時間情報設定部130が時間情報を設定した後に、区切検出部120が検出した区切り以降の映像情報を利用者端末に配信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、配信装置、配信プログラムおよび配信方法に関する。
【背景技術】
【0002】
近年、インターネットを経由して、現場のライブ映像を利用者端末にオンデマンドで配信する映像配信システムが普及している。また、ファイルコンテンツをオンデマンドで配信するビデオオンデマンドの仕組みが標準化し、対応したデジタルテレビが普及している。これらの仕組みを活用して、ライブ映像を配信するニーズが高まっている。図16は、従来の映像配信システムの一例を示す図である。図16に示すように、この映像配信システムは、エンコーダ10a〜10d、蓄積サーバ20、ファイルサーバ30、配信サーバ群40、利用者端末50a〜50cを有する。エンコーダ10a〜10dは、インターネット60を介して蓄積サーバ20に接続する。利用者端末50a〜50cは、インターネット70を介して配信サーバ群40に接続する。
【0003】
エンコーダ10a〜10dは、カメラが撮影した映像情報をエンコードし、エンコードした映像情報を、インターネット60を介して蓄積サーバ20に送信する装置である。蓄積サーバ20は、エンコーダ10a〜10dからエンコードされた映像情報を受信し、受信した映像情報をファイルサーバ30に送信する装置である。ファイルサーバ30は、蓄積サーバ20から送信される映像情報を所定の時間毎にファイル化し、ファイル化した映像情報を記憶部30a〜30cに記憶する装置である。
【0004】
配信サーバ群40は、複数の配信サーバ40a〜40dを有する。配信サーバ40a〜40dは、利用者端末50a〜50cに映像情報をオンデマンドで配信する装置である。この配信サーバ40a〜40dは、利用者端末50a〜50cから映像情報の配信要求を受付けた場合に、ファイルサーバ30が有する記憶部30a〜30cにアクセスし、記憶部30a〜30cに記憶された映像情報を、利用者端末50a〜50cに配信する。
【0005】
利用者端末50a〜50cは、配信サーバ40a〜40dに映像情報の配信要求を行った後に、配信サーバ40a〜40dから送信される映像情報を受信し、受信した映像情報を表示する装置である。
【0006】
上記の映像配信システムにおいて、利用者端末50a〜50cは、映像情報の配信要求を配信サーバ群40に送信することで、現場のライブ映像を受信することができる。このため、利用者端末50a〜50cの利用者は、利用者の見たいタイミングで、所望のライブ映像を視聴することができる。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平10−313454号公報
【特許文献2】特開2009−44485号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、上述した従来の映像配信システムでは、リアルタイムにライブ映像を利用者端末50a〜50cに配信することができないという問題があった。
【0009】
ここで、従来の映像配信システムがリアルタイムにライブ映像を配信できない理由について説明する。上記の映像配信システムでは、ファイルサーバ30が映像情報を所定の時間毎にファイル化した後に、映像情報を記憶部30a〜30cに記憶している。このため、配信サーバ40a〜40dは、ファイル化が完了するまで、記憶部30a〜30cにアクセスして映像情報を受信することができなくなる。したがって、配信サーバ40a〜40dは、ファイル化が完了した後に映像情報を利用者端末50a〜50cに配信することになり、ファイル化の時間だけ映像情報を利用者端末50a〜50cに配信する時間が遅れてしまう。
【0010】
開示の技術は、上記に鑑みてなされたものであって、映像情報を遅延することなく利用者端末に配信することができる配信装置、配信プログラムおよび配信方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
本願の開示する配信装置は、一つの態様において、エンコーダから複数の区切りを含む映像情報を受信する映像受信部と、インターネットを介して利用者端末から前記映像情報の配信要求を受信した場合に、前記映像情報に含まれる区切りのうち、前記配信要求を受信したタイミング以降の最初の区切りを検出する区切検出部と、前記区切検出部が検出した区切り以降の時間情報を初期値から開始して設定する時間情報設定部と、前記時間情報設定部が前記時間情報を設定した後に、前記区切検出部が検出した区切り以降の映像情報を前記利用者端末に配信する映像配信部とを有することを要件とする。
【発明の効果】
【0012】
本願の開示する配信装置の一つの態様によれば、映像情報を遅延することなく利用者端末に配信することができるという効果を奏する。
【図面の簡単な説明】
【0013】
【図1】図1は、本実施例1にかかる配信装置の構成を示す図である。
【図2】図2は、本実施例2にかかる映像配信システムの構成を示す図である。
【図3】図3は、本実施例2にかかる映像配信システムの処理手順を説明するための図である。
【図4】図4は、中継サーバの構成を示す機能ブロック図である。
【図5】図5は、アドレス変換テーブルのデータ構造の一例を示す図である。
【図6】図6は、本実施例2にかかる配信サーバの構成を示す機能ブロック図である。
【図7】図7は、セッション管理テーブルのデータ構造の一例を示す図である。
【図8】図8は、仮想ファイル構成テーブルのデータ構造の一例を示す図である。
【図9】図9は、映像情報のデータ構造の一例を示す図である。
【図10】図10は、バッファのデータ構造の一例を示す図である。
【図11】図11は、データ変換部の処理を説明するための図(1)である。
【図12】図12は、データ変換部の処理を説明するための図(2)である。
【図13】図13は、本実施例2にかかる映像配信システムの処理手順を示すフローチャート(1)である。
【図14】図14は、本実施例2にかかる映像配信システムの処理手順を示すフローチャート(2)である。
【図15】図15は、配信サーバを構成するコンピュータのハードウェア構成を示す図である。
【図16】図16は、従来の映像配信システムの一例を示す図である。
【発明を実施するための形態】
【0014】
以下に、本願の開示する配信装置、配信プログラムおよび配信方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例1】
【0015】
本実施例1にかかる配信装置について説明する。図1は、本実施例1にかかる配信装置の構成を示す図である。図1に示すように、この配信装置100は、映像受信部110、区切検出部120、時間情報設定部130、映像配信部140を有する。
【0016】
映像受信部110は、エンコーダから複数の区切りを含む映像情報を受信する。区切検出部120は、インターネットを介して利用者端末から映像情報の配信要求を受信した場合に、映像情報に含まれる区切りのうち、配信要求を受信したタイミング以降の最初の区切りを検出する。
【0017】
時間情報設定部130は、区切検出部120が検出した区切り以降の時間情報を初期値から開始して設定する。映像配信部140は、時間情報設定部130が時間情報を設定した後に、区切検出部120が検出した区切り以降の映像情報を利用者端末に配信する。
【0018】
上述したように、本実施例1にかかる配信装置100は、利用者端末から映像情報の配信要求を受信したタイミング以降の最初の区切りを検出する。そして、配信装置100は、検出した区切り以降の時間情報を初期値から開始して設定した後、検出した最初の区切り以降の映像情報を利用者端末に配信する。かかる配信装置100は、映像情報をファイル化しないので、映像情報を遅延することなく利用者端末に配信することができる。また、配信装置100が映像情報を利用者端末に配信する場合には、時間情報を初期値から開始して設定する。このため、配信要求を行った利用者端末は、映像情報の時間情報が初期値から設定された状態で受信することができる。したがって、利用者端末は、特別な処理部を設けることなく、オンデマンドで映像情報を遅延することなく受信することができる。
【実施例2】
【0019】
本実施例2にかかる映像配信システムの構成について説明する。図2は、本実施例2にかかる映像配信システムの構成を示す図である。図2に示すように、エンコーダ10a〜10d、利用者端末50a〜50c、センタ200を有する。エンコーダ10a〜10dは、インターネット60を介してセンタ200に接続する。利用者端末50a〜50cは、インターネット70を介してセンタ200に接続する。
【0020】
エンコーダ10a〜10dは、カメラが撮影した映像情報をエンコードし、エンコードした映像情報を、インターネット60を介してセンタ200に送信する装置である。利用者端末50a〜50cは、センタ200に対して映像情報の配信要求を行った後に、センタ200から送信される映像情報を受信し、受信した映像情報を表示する装置である。
【0021】
センタ200は、エンコーダ10a〜10dから送信される映像情報をオンデマンドで利用者端末50a〜50cに配信する。図2に示すように、このセンタ200は、ポータルサーバ210、中継サーバ220、スイッチ230、配信サーバ300a〜300dを有する。
【0022】
ポータルサーバ210は、センタ200が配信するコンテンツの種別を利用者端末50a〜50cに通知する装置である。中継サーバ220は、エンコーダ10a〜10dから受信する映像情報を、配信サーバ300a〜300dにマルチキャストする装置である。スイッチ230は、中継サーバ220および配信サーバ300a〜300dから送信されるデータの転送制御を行うレイヤ3のスイッチである。
【0023】
配信サーバ300a〜300dは、中継サーバ220から転送される映像情報を仮想ファイル化し、仮想ファイル化した映像情報を利用者端末50a〜50cに配信する装置である。以下において、配信サーバ300aが映像情報を仮想ファイル化する処理について説明する。なお、配信サーバ300b〜300dが映像情報を仮想ファイル化する処理は、配信サーバ300aと同様である。
【0024】
配信サーバ300aは、例えば、利用者端末50aから映像情報の配信要求を受信した場合に、映像情報に含まれる複数の区切りのうち、配信要求を受信したタイミング以降の最初の区切りを検出する。そして、配信サーバ300aは、検出した最初の区切り以降のタイムスタンプ情報を初期値から開始して設定することで、映像情報を仮想ファイル化する。なお、上記の映像情報の区切りは、映像情報に周期的に含まれる先頭ヘッダである。この先頭ヘッダは、例えばPAT(Program Association Table)に対応し、タイムスタンプ情報を含む。
【0025】
ところで、図2において、中継サーバ220と配信サーバ300a〜300dとの間は、スイッチ230を介してマルチキャストを通すことができる。このため、中継サーバ220は、映像情報を配信サーバ300a〜300dに向けてマルチキャストする。一方、エンコーダ10a〜10dと中継サーバ220との間、および、配信サーバ300a〜300dと利用者端末50a〜50cとの間では、マルチキャストを通すことができない。このため、エンコーダ10a〜10dは、映像情報を中継サーバ220にユニキャストする。また、配信サーバ300a〜300dは、映像情報を利用者端末にユニキャストする。
【0026】
次に、図2に示した映像配信システムの処理手順について説明する。図3は、本実施例2にかかる映像配信システムの処理手順を説明するための図である。図3では一例として、利用者端末50aが、配信サーバ300aに映像情報の配信要求を行うものとし、配信サーバ300aは、エンコーダ10aから映像情報を受信するものとする。
【0027】
図3に示すように、まず利用者端末50aは、ポータルサーバ210にアクセスし、センタ200が配信するコンテンツの種別を受信する。図3の(1)参照。利用者端末50aは、ポータルサーバ210から受信したコンテンツの種別を表示する。利用者端末50aは、利用者によりコンテンツの種別内からコンテンツを選択された場合に、映像情報の配信要求を配信サーバ300aに送信する。図3の(2)参照。
【0028】
配信サーバ300aは、スイッチ230、中継サーバ220を介してエンコーダ10aに映像情報の転送要求を行う。図3の(3)参照。エンコーダ10aは、配信サーバ300aからの転送要求に応答して、映像情報を中継サーバ220にユニキャストする。図3の(4)参照。
【0029】
中継サーバ220は、エンコーダ10aから受信した映像情報をマルチキャストすることで、映像情報を配信サーバ300aに送信する。図3の(5)参照。ここで、中継サーバ220からマルチキャストされた映像情報は、各配信サーバ300a〜300dの転送要求の状況に応じて、スイッチ230により送信先を制限される。例えば、配信サーバ300a〜300dがエンコーダ10aに転送要求を行っている場合には、スイッチ230は、配信サーバ300a〜300dに映像情報を送信する。一方、配信サーバ300aだけが、エンコーダ10aに転送要求を行っている場合には、スイッチ230は、配信サーバ300aだけに映像情報を送信する。
【0030】
配信サーバ300aは、エンコーダ10aから映像情報を受信した場合に、受信した映像情報を仮想ファイル化し、仮想ファイル化した映像情報を利用者端末50aにユニキャストする。図3の(6)参照。このように、配信サーバ300aは、映像情報をファイル化することなく仮想ファイル化し、映像情報を利用者端末50aにユニキャストするので、映像情報を遅延することなく利用者端末にユニキャストすることができる。
【0031】
ところで、配信サーバ300aは、利用者端末50aから映像情報の配信要求を受信し、かかる映像情報を既にマルチキャストにて中継サーバ220から受け付けている場合には、映像情報の転送要求を行わない。この場合、配信サーバ300aは、既に受信している映像情報を利用者端末50aにユニキャストする。
【0032】
また、中継サーバ220は、映像情報の転送要求を受信し、該当する映像情報のユニキャストを受信していない場合にのみ、該当する映像情報をユニキャストするエンコーダに映像情報の転送要求を送信する。
【0033】
また、スイッチ230は配信サーバ300aから映像情報の転送要求を受信し、該当する映像情報が既に中継サーバ220からマルチキャストされている場合には、中継サーバ220からマルチキャストされている映像情報を配信サーバ300aに分配する。すなわち、スイッチ230は、配信サーバ300a〜300dから映像情報の転送要求を受信した場合には、該当する映像情報が既に中継サーバ220からマルチキャストされているか否かを判定する。そして、スイッチ230は、該当する映像情報がマルチキャストされていない場合には、映像情報の転送要求を中継サーバ220に転送する。一方、スイッチ230は、該当する映像情報がマルチキャストされている場合には、転送要求を転送しないで、映像情報を要求元の配信サーバに分配する。
【0034】
次に、図2に示した中継サーバ220の構成の一例について説明する。図4は、中継サーバの構成を示す機能ブロック図である。図4に示すように、この中継サーバ220は、転送要求受信部221、制御部222、ユニキャスト送信部223、ユニキャスト受信部224、記憶部225、データ変換部226、マルチキャスト送信部227を有する。
【0035】
転送要求受信部221は、スイッチ230を介して配信サーバ300a〜300dからエンコーダ10a〜10dに対する映像情報の転送要求を受信する処理部である。この映像情報の転送要求は、映像情報を要求するエンコーダの宛先情報を含むものとする。転送要求受信部221は、受信した転送要求を制御部222に出力する。
【0036】
制御部222は、転送要求受信部221から転送要求を取得し、ユニキャスト送信部223を制御して、転送要求の宛先情報に対応するエンコーダに転送要求を送信する処理部である。ユニキャスト送信部223は、制御部222の制御に応じて映像情報の転送要求をエンコーダにユニキャストする処理部である。
【0037】
ユニキャスト受信部224は、映像情報の転送要求を行ったエンコーダから映像情報を受信する処理部である。この映像情報は、エンコーダから中継サーバ220にユニキャストにて送信される。ユニキャスト受信部224は、映像情報をデータ変換部226に出力する。
【0038】
記憶部225は、アドレス変換テーブル225aを記憶する記憶部である。アドレス変換テーブル225aは、ユニキャストアドレスとマルチキャストアドレスとを対応付けたテーブルである。図5は、アドレス変換テーブルのデータ構造の一例を示す図である。図5に示すように、このアドレス変換テーブル225aは、ユニキャストアドレス、受信ポート、マルチキャストアドレス、送信ポートを対応付けて記憶する。
【0039】
図5において、ユニキャストアドレスは、中継サーバ220がエンコーダから受信する映像情報の宛先に含まれるアドレスである。受信ポートは、エンコーダから映像情報を受信するポートである。マルチキャストアドレスは、各配信サーバ300a〜300dに送信する映像情報の宛先に設定するアドレスである。中継サーバ220が映像情報にマルチキャストアドレスを設定することで、映像情報がマルチキャストされる。送信ポートは、映像情報を送信するポートである。
【0040】
データ変換部226は、ユニキャスト受信部224から取得した映像情報の宛先をアドレス変換テーブル225aに基づいて変換する処理部である。具体的にデータ変換部226は、映像情報に含まれるアドレスと同じユニキャストアドレスをアドレス変換テーブル225aから検索する。そして、データ変換部226は、検索したユニキャストアドレスに対応付けられたマルチキャストアドレスを映像情報の宛先に設定し、この映像情報をマルチキャスト送信部227に出力する。
【0041】
マルチキャスト送信部227は、映像情報を配信サーバ300a〜300dに向けてマルチキャストする処理部である。
【0042】
ここで、転送要求受信部221および制御部222は、例えば、ASIC(Application Specific Integrated Circuit)や、FPGA(Field Programmable Gate Array)などの集積装置に対応する。または、転送要求受信部221および制御部222は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等の電子回路に対応する。また、ユニキャスト送信部223、ユニキャスト受信部224、データ変換部226、マルチキャスト送信部227は、例えば、他の装置とデータ通信を実行するASIC、通信用カード等に対応する。記憶部225は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(flash memory)などの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。
【0043】
次に、図2に示した配信サーバ300aの構成について説明する。図6は、本実施例2にかかる配信サーバ300aの構成を示す機能ブロック図である。図6に示すように、この配信サーバ300aは、記憶部301、ユニキャスト受信部302、セッション制御部303、制御部304、マルチキャストデータ要求部305を有する。また、図6に示す配信サーバ300aは、マルチキャスト受信部306、バッファ307、バッファ管理部308、データ変換部309、ユニキャスト送信部310を有する。なお、配信サーバ300b〜300dの構成は、図6に示した配信サーバ300aの構成と同様である。
【0044】
記憶部301は、セッション管理テーブル301aと仮想ファイル構成テーブル301bとを記憶する記憶部である。セッション管理テーブル301aは、配信要求を行った利用者端末のアドレスや、配信対象のコンテンツのURL(Uniform Resource Locator)などを対応付けて記憶するテーブルである。
【0045】
図7は、セッション管理テーブル301aのデータ構造の一例を示す図である。図7に示すように、このセッション管理テーブル301aは、送信先アドレス、送信先ポート、最新接続時間、リクエストコンテンツURL、タイムスタンプを有する。送信先アドレスは、映像情報の配信要求を行った利用者端末のアドレスである。送信先ポートは、映像情報の配信要求を行った利用者端末と接続するポートである。最新接続時間は、映像情報の配信要求を受付けた最新の時間である。リクエストコンテンツURLは、配信対象となる映像情報のURLに対応する。タイムスタンプは、映像情報の先頭ヘッダに含まれるタイムスタンプを管理するための情報である。タイムスタンプの初期値は0となる。
【0046】
仮想ファイル構成テーブル301bは、配信対象の映像情報のURL、当該映像情報の送信元となるエンコーダの宛先情報などを対応付けて記憶するテーブルである。図8は、仮想ファイル構成テーブル301bのデータ構造の一例を示す図である。図8に示すように、この仮想ファイル構成テーブル301bは、リクエストコンテンツURL、マルチキャストアドレス、受信ポートを有する。このうち、リクエストコンテンツURLは、セッション管理テーブル301aのリクエストコンテンツURLと同様である。マルチキャストアドレスは、映像情報の送信元となるエンコーダの宛先情報に対応する。受信ポートは、映像情報を受信するポートである。
【0047】
ユニキャスト受信部302は、利用者端末50a〜50cから映像情報の配信要求を受信する処理部である。ユニキャスト受信部302は、受信した配信要求をセッション制御部303に出力する。利用者端末50a〜50cから受信する配信要求には、例えば、要求対象となる映像情報のURL、送信元の利用者端末のアドレス等が含まれる。
【0048】
セッション制御部303は、映像情報の配信要求とセッション管理テーブル301aとを基にして、制御部304およびバッファ管理部308を制御する処理部である。以下において、セッション制御部303の処理を具体的に説明する。
【0049】
まず、配信要求に含まれる映像情報のURLがセッション管理テーブル301aのリクエストコンテンツURLに含まれていない場合のセッション制御部303の処理について説明する。映像情報のURLがリクエストコンテンツURLに含まれていない場合には、配信要求された映像情報が配信サーバ300aに配信されていないことを示す。この場合、セッション制御部303は、映像情報のURLを制御部304に通知する。また、セッション制御部303は、配信要求された映像情報のURLと配信要求を行った利用者端末のアドレスとをバッファ管理部308に通知することで読み出し要求を行う。また、セッション制御部303は、配信要求された映像情報のURLと配信要求を行った利用者端末のアドレスとを組み合わせて、セッション管理テーブル301aのリクエストコンテンツURLと送信先アドレスとに登録する。また、セッション制御部303は、利用者端末と接続するポートをセッション管理テーブル301aの送信先ポートに登録する。また、セッション制御部303は、配信要求を受信した時刻をセッション管理テーブル301aに登録する。
【0050】
続いて、配信要求に含まれる映像情報のURLがリクエストコンテンツURLに含まれ、かつ、映像情報のURLと送信元の利用者端末のアドレスとの組みがセッション管理テーブル301aに含まれていない場合のセッション制御部303の処理について説明する。映像情報のURLがリクエストコンテンツURLに含まれている場合には、配信要求された映像情報は、配信サーバ300aに配信されている。しかし、この場合には、映像情報の配信要求を行った利用者端末には映像情報が配信されていないことを示す。セッション制御部303は、配信要求された映像情報のURLと配信要求を行った利用者端末のアドレスとをバッファ管理部308に通知することで読み出し要求を行う。また、セッション制御部303は、配信要求された映像情報のURLと配信要求を行った利用者端末のアドレスとを組み合わせて、セッション管理テーブル301aのリクエストコンテンツURLと送信先アドレスとに登録する。また、セッション制御部303は、利用者端末と接続するポートをセッション管理テーブル301aの送信先ポートに登録する。また、セッション制御部303は、配信要求を受信した時刻をセッション管理テーブル301aに登録する。
【0051】
続いて、配信要求に含まれる映像情報のURLと配信要求を行った利用者端末のアドレスとの組がセッション管理テーブル301aに登録されている場合のセッション制御部303の処理について説明する。この場合には、配信要求された映像情報は、既に配信サーバ300aに配信されており、かかる映像情報は配信要求を行った利用者端末に配信されていることを示す。セッション制御部303は、配信要求された映像情報のURLと配信要求を行った利用者端末のアドレスとをバッファ管理部308に通知することで読み出し要求を行う。また、セッション制御部303は、配信要求を受信した時刻をセッション管理テーブル301aに登録する。
【0052】
制御部304は、セッション制御部303から映像情報のURLを取得した場合に、マルチキャストデータ要求部305を制御して、映像情報の転送要求を中継サーバ220に送信する処理部である。制御部304は、映像情報の転送要求にエンコーダの宛先情報を格納する。なお、制御部304は、映像情報のURLと仮想ファイル構成テーブル301bとを比較して、映像情報のURLに対応するマルチキャストアドレスを、エンコーダの宛先情報として取得するものとする。
【0053】
マルチキャストデータ要求部305は、制御部304の制御に応じて映像情報の転送要求を中継サーバ220に送信する処理部である。マルチキャスト受信部306は、中継サーバ220からマルチキャストされる映像情報を受信し、受信した映像情報をバッファ管理部308に出力する処理部である。
【0054】
ここで、マルチキャスト受信部306が中継サーバ220から受信する映像情報のデータ構造の一例について説明する。図9は、映像情報のデータ構造の一例を示す図である。図9に示すように、この映像情報80は複数のフレーム81〜83を含む。各フレーム81〜83は先頭ヘッダ81a〜83aとデータ81b〜83bとをそれぞれ有する。先頭ヘッダ81a〜83aには、タイムスタンプ情報が含まれる。
【0055】
なお、マルチキャスト受信部306は、映像情報をフレームの最初から受信できない場合もある。以下において、映像情報のフレームを最初から受信できない理由を説明する。中継サーバ220が映像情報を他の配信サーバに配信している最中に、配信サーバ300aがこの映像情報の転送要求を中継サーバ220に送信した場合には、転送要求がスイッチ230に到達した時点で、配信途中の映像情報が配信サーバ300aに配信される。スイッチ230は、映像情報の区切りを参照して映像情報の配信先を切り替えることはしないので、フレームの途中から映像情報が配信サーバ300aに配信される。
【0056】
バッファ307は、種別毎に映像情報を一時的に記憶する記憶部である。図10は、バッファ307のデータ構造の一例を示す図である。図10に示すように、このバッファ307は、映像情報A、映像情報B、映像情報Cに分けて、各映像情報を記憶している。そして、例えば、映像情報Aには、複数のフレームA1,A2,A3が含まれ、映像情報Bには、複数のフレームB1,B2,B3が含まれ、映像情報Cには、複数のフレームC1,C2,C3が含まれる。なお、映像情報BのフレームB1には、図10に示すように、先頭ヘッダと一部のデータが含まれていないものとする。
【0057】
バッファ管理部308は、マルチキャスト受信部306から取得する映像情報をバッファ307に記憶させる処理、セッション制御部303からの読み出し要求に応じてバッファ307から映像情報を読み出す処理を実行する。
【0058】
まず、バッファ管理部308が映像情報をバッファ307に記憶させる処理について説明する。バッファ管理部308は、マルチキャスト受信部306から映像情報を取得し、取得した映像情報を順次バッファ307に記憶させていく。なお、バッファ管理部308は、映像情報を種別毎に分けてバッファ307に記憶させるものとする。
【0059】
続いて、バッファ管理部308がセッション制御部303から読み出し要求に応じてバッファ307から映像情報を読み出す処理について説明する。セッション制御部303から取得する読み出し要求には、上記のように、映像情報のURLと配信要求を行った利用者端末のアドレスが含まれる。バッファ管理部308は、セッション制御部303から映像情報の読み出し要求を取得した場合に、映像情報のURLに対応する種別の映像情報をバッファ307から順次読み出してデータ変換部309に出力する。また、映像情報をデータ変換部309に出力する場合に、バッファ管理部308は、利用者端末のアドレスをあわせてデータ変換部309に出力する。なお、バッファ管理部308は、例えば、映像情報のURLとバッファ307に格納された映像情報の種別とを対応付けたテーブルを保持し、かかるテーブルを利用して映像情報のURLに対応する映像情報を順次読み出す。
【0060】
データ変換部309は、バッファ管理部308から取得する映像情報を仮想ファイル化する処理部である。データ変換部309は、ユニキャスト送信部310を制御して、仮想ファイル化した映像情報を該当する利用者端末に配信する。データ変換部309は、映像情報を受信した場合に、受信した映像情報に含まれる各先頭ヘッダのうち、最初の先頭ヘッダを検出する。そして、データ変換部309は、検出した先頭ヘッダ以降のタイムスタンプ情報を初期値から開始して設定することで、映像情報を仮想ファイル化する。ユニキャスト送信部310は、データ変換部309の制御に応じて仮想ファイル化された映像情報を利用者端末に配信する処理部である。
【0061】
以下において、データ変換部309の処理を具体的に説明する。図11は、データ変換部の処理を説明するための図(1)である。ここでは、バッファ307に記憶された映像情報Bを利用者端末に配信する場合を例にして説明する。また、図11のS1のタイミングで、配信サーバ300aは、映像情報Bの配信要求を受付けたものとする。また、図11の縦軸は、時間軸である。
【0062】
まず、データ変換部309は、フレームB1を受信する。かかるフレームB1には先頭ヘッダが含まれていないので、データ変換部309は、フレームB1を廃棄する(ステップS10)。
【0063】
続いて、データ変換部309は、フレームB2を受信する。かかるフレームB2に含まれている先頭ヘッダは、最初の先頭ヘッダとなる。このため、データ変換部309は、フレームB2の先頭ヘッダに含まれるタイムスタンプ情報を初期値の「0」に設定することで仮想ファイル化する(ステップS11)。そして、データ変換部309は、仮想ファイル化した映像情報を利用者端末に配信する(ステップS12)。
【0064】
続いて、データ変換部309は、フレームB3を受信する。かかるフレームB3に含まれている先頭ヘッダは、2番目の先頭ヘッダとなる。このため、データ変換部309は、フレームB3の先頭ヘッダに含まれるタイムスタンプ情報を「1」に設定することで仮想ファイル化する(ステップS13)。そして、データ変換部309は、仮想ファイル化した映像情報を利用者端末に配信する(ステップS14)。
【0065】
データ変換部309は、映像情報を仮想ファイル化するたびに、送信先となる利用者端末毎にどの数字までタイムスタンプ情報を設定したのかをセッション管理テーブル301aのタイムスタンプに登録する。また、データ変換部309は、セッション管理テーブル302aを参照して、次のタイムスタンプ情報をどの数字に設定するのかを判定する。例えば、データ変換部309は、セッション管理テーブル302aのタイムスタンプに1を加算した値を次のタイムスタンプ情報に設定する。
【0066】
ところで、配信サーバ300aは、利用者端末に映像情報の配信を開始すると、利用者端末から同一の映像情報の配信要求を定期的に受付け、かかる配信要求に応答して映像情報を配信する。この場合、データ変換部309は、ひとつ前の配信要求を受けた時点で、きりのよいところまで映像情報を利用者端末に配信することで、切れ目のない映像情報を利用者端末に配信可能とする。
【0067】
図12は、データ変換部の処理を説明するための図(2)である。図12では一例として、映像情報Aを利用者端末に配信する場合を例にして説明する。また、図12のS1、S2のタイミングで、配信サーバ300aは同一の利用者端末から映像情報Aの配信要求を受付けたものとする。図12に示すように、S1とS2の間隔は、映像情報Aの区切りと一致していない。
【0068】
図12に示すように、データ変換部309は、フレームA1,A2,A3の先頭ヘッダのタイムスタンプ情報をそれぞれ0,1,2に設定することで、フレームA1,A2,A3を仮想ファイル化し、仮想ファイル化した映像情報を利用者端末に配信する(ステップS20)。続いて、データ変換部309は、フレームA4の先頭ヘッダのタイムスタンプ情報を3に設定することで、フレームA4を仮想ファイル化し、仮想ファイル化した映像情報を利用者端末に配信する(ステップS21)。図12に示すように、データ変換部309は、配信要求が遅れた場合でも映像情報を区切りまで配信するので、利用者端末は、映像情報Aを切れ目なく受信することができる。
【0069】
ここで、セッション制御部303、制御部304、バッファ管理部308、データ変換部309は、例えば、ASICや、FPGAなどの集積装置に対応する。または、セッション制御部303、制御部304、バッファ管理部308、データ変換部309は、CPUやMPU等の電子回路に対応する。また、ユニキャスト受信部302、マルチキャストデータ要求部305、マルチキャスト受信部306、ユニキャスト送信部310は、例えば、他の装置とデータ通信を実行するASIC、通信用カード等に対応する。記憶部301は、例えば、RAM、ROM、フラッシュメモリなどの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。また、バッファ307は、例えば、半導体メモリ素子に対応する。
【0070】
次に、図2に示した映像配信システムの処理手順について説明する。図13、図14は、本実施例2にかかる映像配信システムの処理手順を示すフローチャートである。ここでは説明の便宜上、利用者端末50aが配信サーバ300aに映像情報の配信要求を行った場合について説明する。また、配信サーバ300aと中継サーバ220との間には、スイッチ230が存在するものとする。
【0071】
図13に示すように、利用者端末50aは、配信サーバ300aに映像情報の配信要求を送信し(ステップS101)、配信サーバ300aは、映像情報の配信要求を利用者端末50aから受信する(ステップS102)。配信サーバ300aは、セッション管理テーブル301aを更新し(ステップS103)、中継サーバ220に映像情報の転送要求を送信する(ステップS104)。
【0072】
なお、配信サーバ300aは、利用者端末50aから映像情報の配信要求を受信した時点で、スイッチ230から該当する映像情報を受信している場合には、配信サーバ300aは、受信済みの映像情報を利用者端末50aにユニキャストする。以下の説明では、配信サーバ300aは、スイッチ230から該当する映像情報を受信していない場合について説明する。
【0073】
また、ステップS104において送信された映像情報の転送要求は、スイッチ230を介して中継サーバ220に送信される。ここで、該当する映像情報が既に中継サーバ220からマルチキャストされている場合には、スイッチ230は、かかる映像情報を配信サーバ300aに分配する。一方、スイッチ230は、該当する映像情報が中継サーバ220からマルチキャストされていない場合には、映像情報の転送要求を中継サーバ220に送信する。以下の説明では、スイッチ230が映像情報の転送要求を中継サーバ220に送信した場合を例に説明する。
【0074】
中継サーバ220は、映像情報の転送要求を配信サーバ300aから受信し(ステップS105)、エンコーダに映像情報を要求する(ステップS106)。中継サーバ220は、エンコーダから映像情報を受信し(ステップS107)、映像情報のユニキャストアドレスをマルチキャストアドレスに変換する(ステップS108)。そして、中継サーバ220は、映像情報をマルチキャストする(ステップS109)。
【0075】
ステップS109においてマルチキャストされた映像情報は、スイッチ230に到達する。そして、スイッチ230は、映像情報の転送要求の状況に応じて、映像情報を配信サーバ300a〜300dに分配する。例えば、該当する映像情報の配信要求を配信サーバ300aが行っている場合には、かかる映像情報を配信サーバ300aにのみ分配する。
【0076】
配信サーバ300aは、中継サーバ220から映像情報を受信し(ステップS110)、映像情報をバッファ307に格納する(ステップS111)。
【0077】
図14の説明に移行する。配信サーバ300aは、映像情報をバッファ307から読み出し(ステップS112)、映像情報の先頭ヘッダのタイムスタンプ情報を初期値に設定する(ステップS113)。配信サーバ300aは、映像情報を利用者端末50aに送信する(ステップS114)。
【0078】
利用者端末50aは、映像情報を受信し(ステップS115)、映像情報を継続して要求するか否かを判定する(ステップS116)。利用者端末50aは、映像情報を継続して要求しない場合には(ステップS117,No)、処理を終了する。
【0079】
利用者端末50aは、映像情報を継続して要求する場合には(ステップS117,Yes)、配信サーバ300aに映像情報の配信要求を送信し(ステップS118)、ステップS115に移行する。
【0080】
配信サーバ300aは、利用者端末50aから映像情報の配信要求を受信したか否かを判定する(ステップS119)。配信サーバ300aは、配信要求を受信していない場合には(ステップS120,No)、処理を終了する。一方、配信サーバ300aは、配信要求を受信した場合には(ステップS120,Yes)、映像情報の前回タイムスタンプ情報に1を加算した値を今回のタイムスタンプ情報に格納し(ステップS121)、ステップS114に移行する。
【0081】
上述してきたように、本実施例2にかかる配信サーバ300は、利用者端末50から映像情報の配信要求に応じてバッファに格納された映像情報を配信する場合に、映像情報に含まれる各先頭ヘッダうち、最初の先頭ヘッダを検出する。そして、配信サーバ300は、検出した先頭ヘッダ以降のタイムスタンプ情報を初期値から開始して設定することで、映像情報を仮想ファイル化し、利用者端末50に仮想ファイル化した映像情報を配信する。配信サーバ300は、映像情報をファイル化しないので、映像情報を遅延することなく利用者端末50に配信することができる。
【0082】
また、配信サーバ300が映像情報を利用者端末50に配信する場合には、タイムスタンプ情報を初期値から開始して設定する。このため、配信要求を行った利用者端末50は、映像情報のタイムスタンプ情報が初期値から設定された状態で受信することができる。したがって、利用者端末50は、特別な処理部を設けることなく、オンデマンドで映像情報を遅延することなく受信することができる。また、配信サーバ300は映像情報を配信する場合に、映像情報の区切りまで映像情報を配信するので、利用者端末50は、映像情報を切れ目なく受信することができる。
【0083】
ところで、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0084】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、映像情報をバッファ307の代わりに、記憶部301に記憶するようにしてもよい。また、配信サーバ300は、エンコーダ10から配信される映像情報をすべて記憶部301に格納しておき、リアルタイムの映像情報を見逃した利用者のために、記憶部301に格納した映像情報を要求に応じて利用者端末50に配信してもよい。
【0085】
なお、配信サーバ300aにて行われる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0086】
図15は、配信サーバを構成するコンピュータのハードウェア構成を示す図である。図15に示すように、このコンピュータ400は、各種演算処理を実行するCPU401と、ユーザからのデータの入力を受け付ける入力装置402と、モニタ403を有する。また、コンピュータ400は、記憶媒体からプログラム等を読取る媒体読み取り装置404と、ネットワークを介して他のコンピュータとの間でデータの授受を行うネットワークインターフェース装置405を有する。また、コンピュータ400は、各種情報を一時記憶するRAM406と、ハードディスク装置407を有する。各装置401〜407は、バス408に接続される。
【0087】
そして、ハードディスク装置407は、配信処理プログラム407aを記憶する。また、ハードディスク装置407は、図6に示したセッション管理テーブル301aに対応するセッション管理テーブル307bと図6に示した仮想ファイル構成テーブル301bに対応する仮想ファイル構成テーブル407cを記憶する。
【0088】
CPU401が配信処理プログラム407aをハードディスク装置407から読み出してRAM406に展開することにより、配信処理プログラム407aは、配信処理プロセス406aとして機能するようになる。この配信処理プロセス406aは、図6に示したセッション制御部403、制御部404、バッファ管理部408、データ変換部409に対応する配信処理プログラム407aを記憶する。そして、配信処理プロセス406aは、セッション管理テーブル407b、仮想ファイル構成テーブル407cを利用して、映像情報を仮想ファイル化し、仮想ファイル化した映像情報を利用者端末に配信する。
【0089】
なお、上記の配信処理プログラム407aは、必ずしもハードディスク装置407に格納されている必要はなく、CD−ROM等の記憶媒体に記憶されたプログラムを、コンピュータ400が読み出して実行するようにしてもよい。また、公衆回線、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等にこの配信処理プログラム407aを記憶させておき、コンピュータ400がこれらから配信処理プログラム407aを読み出して実行するようにしてもよい。
【符号の説明】
【0090】
100 配信装置
110 映像受信部
120 区切検出部
130 時間情報設定部
140 映像配信部

【特許請求の範囲】
【請求項1】
エンコーダから複数の区切りを含む映像情報を受信する映像受信部と、
インターネットを介して利用者端末から前記映像情報の配信要求を受信した場合に、前記映像情報に含まれる区切りのうち、前記配信要求を受信したタイミング以降の最初の区切りを検出する区切検出部と、
前記区切検出部が検出した区切り以降の時間情報を初期値から開始して設定する時間情報設定部と、
前記時間情報設定部が前記時間情報を設定した後に、前記区切検出部が検出した区切り以降の映像情報を前記利用者端末に配信する映像配信部と
を有することを特徴とする配信装置。
【請求項2】
前記映像配信部は、前記利用者端末から受信する配信要求の受信間隔と前記映像情報に含まれる区切りのタイミングとが異なる場合に、次の区切りまで映像情報を前記利用者端末に配信することを特徴とする配信装置。
【請求項3】
コンピュータに、
エンコーダから複数の区切りを含む映像情報を受信し、受信した映像情報をバッファに記憶する映像受信手順と、
インターネットを介して利用者端末から前記映像情報の配信要求を受信した場合に、前記映像情報に含まれる区切りのうち、前記配信要求を受信したタイミング以降の最初の区切りを検出する区切検出手順と、
前記区切検出部が検出した区切り以降の時間情報を初期値から開始して設定する時間情報設定手順と、
前記時間情報設定手順が前記時間情報を設定した後に、前記区切検出手順が検出した区切り以降の映像情報を前記利用者端末に配信する映像配信手順と
を実行させることを特徴とする配信プログラム。
【請求項4】
前記映像配信手順は、前記利用者端末から受信する配信要求の受信間隔と前記映像情報に含まれる区切のタイミングとが異なる場合に、次の区切りまで映像情報を前記利用者端末に配信することを特徴とする配信プログラム。
【請求項5】
配信装置が、
エンコーダから複数の区切りを含む映像情報を受信し、受信した映像情報をバッファに記憶する映像受信ステップと、
インターネットを介して利用者端末から前記映像情報の配信要求を受信した場合に、前記映像情報に含まれる区切りのうち、前記配信要求を受信したタイミング以降の最初の区切りを検出する区切検出ステップと、
前記区切検出部が検出した区切り以降の時間情報を初期値から開始して設定する時間情報設定ステップと、
前記時間情報設定ステップが前記時間情報を設定した後に、前記区切検出ステップが検出した区切り以降の映像情報を前記利用者端末に配信する映像配信ステップと
を実行することを特徴とする配信方法。
【請求項6】
前記映像配信ステップは、前記利用者端末から受信する配信要求の受信間隔と前記映像情報に含まれる区切のタイミングとが異なる場合に、次の区切りまで映像情報を前記利用者端末に配信することを特徴とする配信方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2011−147025(P2011−147025A)
【公開日】平成23年7月28日(2011.7.28)
【国際特許分類】
【出願番号】特願2010−7322(P2010−7322)
【出願日】平成22年1月15日(2010.1.15)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】