(57)【特許請求の範囲】
【請求項１】
エンコーダによって生成された複数の区切りを周期的に含む映像情報を、区切りを基に配信制御を行わないスイッチを介して順次、種別毎にグループに分けてバッファに格納する映像受信部と、
インターネットを介して利用者端末から前記映像情報の配信要求を、前記複数の区切りのいずれのタイミングとも異なるタイミングで受信した場合に、種類毎に格納された映像情報のグループから、配信要求に対応する映像情報のグループについて、前記映像情報を格納した前記バッファを参照して、前記映像情報に含まれる区切りのうち、前記配信要求を受信したタイミング以降の最初の区切りを検出する区切検出部と、
前記区切検出部が検出した前記最初の区切り以降の各区切りに含まれる各映像情報の時間情報の値をそれぞれ、初期値から順に昇順に設定する時間情報設定部と、
前記配信要求を受信したタイミングから前記区切検出部が検出した前記最初の区切りまでの映像情報を前記利用者端末に配信しないで、前記時間情報設定部が前記時間情報を設定した後に、前記区切検出部が検出した前記最初の区切り以降の映像情報を前記利用者端末に配信する映像配信部と
を有することを特徴とする配信装置。
【請求項２】
前記映像配信部は、前記映像情報に含まれる複数の区切りのうち、前記利用者端末から配信要求を受信したタイミング以降の前記最初の区切りから、前記最初の区切り以降の区切りまでの映像情報を前記利用者端末に配信することを特徴とする請求項１に記載の配信装置。
【請求項３】
コンピュータに、
エンコーダによって生成された複数の区切りを周期的に含む映像情報を、区切りを基に配信制御を行わないスイッチを介して順次、種別毎にグループに分けてバッファに格納する映像受信手順と、
インターネットを介して利用者端末から前記映像情報の配信要求を、前記複数の区切りのいずれのタイミングとも異なるタイミングで受信した場合に、種類毎に格納された映像情報のグループから、配信要求に対応する映像情報のグループについて、前記映像情報を格納した前記バッファを参照して、前記映像情報に含まれる区切りのうち、前記配信要求を受信したタイミング以降の最初の区切りを検出する区切検出手順と、
前記区切検出手順が検出した前記最初の区切り以降の各区切りに含まれる各映像情報の時間情報の値をそれぞれ、初期値から順に昇順に設定する時間情報設定手順と、
前記配信要求を受信したタイミングから前記区切検出手順で検出した前記最初の区切りまでの映像情報を前記利用者端末に配信しないで、前記時間情報設定手順が前記時間情報を設定した後に、前記区切検出手順が検出した前記最初の区切り以降の映像情報を前記利用者端末に配信する映像配信手順と
を実行させることを特徴とする配信プログラム。
【請求項４】
前記映像配信手順は、前記映像情報に含まれる複数の区切りのうち、前記利用者端末から配信要求を受信したタイミング以降の前記最初の区切りから、前記最初の区切り以降の区切りまでの映像情報を前記利用者端末に配信することを特徴とする請求項３に記載の配信プログラム。
【請求項５】
配信装置が、
エンコーダによって生成された複数の区切りを周期的に含む映像情報を、区切りを基に配信制御を行わないスイッチを介して順次、種別毎にグループに分けてバッファに格納する映像受信ステップと、
インターネットを介して利用者端末から前記映像情報の配信要求を、前記複数の区切りのいずれのタイミングとも異なるタイミングで受信した場合に、種類毎に格納された映像情報のグループから、配信要求に対応する映像情報のグループについて、前記映像情報を格納した前記バッファを参照して、前記映像情報に含まれる区切りのうち、前記配信要求を受信したタイミング以降の最初の区切りを検出する区切検出ステップと、
前記区切検出ステップが検出した前記最初の区切り以降の各区切りに含まれる各映像情報の時間情報の値をそれぞれ、初期値から順に昇順に設定する時間情報設定ステップと、
前記配信要求を受信したタイミングから前記区切検出ステップで検出した前記最初の区切りまでの映像情報を前記利用者端末に配信しないで、前記時間情報設定ステップが前記時間情報を設定した後に、前記区切検出ステップが検出した前記最初の区切り以降の映像情報を前記利用者端末に配信する映像配信ステップと
を実行することを特徴とする配信方法。
【請求項６】
前記映像配信ステップは、前記映像情報に含まれる複数の区切りのうち、前記利用者端末から配信要求を受信したタイミング以降の前記最初の区切りから、前記最初の区切り以降の区切りまでの映像情報を前記利用者端末に配信することを特徴とする請求項５に記載の配信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、配信装置、配信プログラムおよび配信方法に関する。
【背景技術】
【０００２】
近年、インターネットを経由して、現場のライブ映像を利用者端末にオンデマンドで配信する映像配信システムが普及している。また、ファイルコンテンツをオンデマンドで配信するビデオオンデマンドの仕組みが標準化し、対応したデジタルテレビが普及している。これらの仕組みを活用して、ライブ映像を配信するニーズが高まっている。図１６は、従来の映像配信システムの一例を示す図である。図１６に示すように、この映像配信システムは、エンコーダ１０ａ〜１０ｄ、蓄積サーバ２０、ファイルサーバ３０、配信サーバ群４０、利用者端末５０ａ〜５０ｃを有する。エンコーダ１０ａ〜１０ｄは、インターネット６０を介して蓄積サーバ２０に接続する。利用者端末５０ａ〜５０ｃは、インターネット７０を介して配信サーバ群４０に接続する。
【０００３】
エンコーダ１０ａ〜１０ｄは、カメラが撮影した映像情報をエンコードし、エンコードした映像情報を、インターネット６０を介して蓄積サーバ２０に送信する装置である。蓄積サーバ２０は、エンコーダ１０ａ〜１０ｄからエンコードされた映像情報を受信し、受信した映像情報をファイルサーバ３０に送信する装置である。ファイルサーバ３０は、蓄積サーバ２０から送信される映像情報を所定の時間毎にファイル化し、ファイル化した映像情報を記憶部３０ａ〜３０ｃに記憶する装置である。
【０００４】
配信サーバ群４０は、複数の配信サーバ４０ａ〜４０ｄを有する。配信サーバ４０ａ〜４０ｄは、利用者端末５０ａ〜５０ｃに映像情報をオンデマンドで配信する装置である。この配信サーバ４０ａ〜４０ｄは、利用者端末５０ａ〜５０ｃから映像情報の配信要求を受付けた場合に、ファイルサーバ３０が有する記憶部３０ａ〜３０ｃにアクセスし、記憶部３０ａ〜３０ｃに記憶された映像情報を、利用者端末５０ａ〜５０ｃに配信する。
【０００５】
利用者端末５０ａ〜５０ｃは、配信サーバ４０ａ〜４０ｄに映像情報の配信要求を行った後に、配信サーバ４０ａ〜４０ｄから送信される映像情報を受信し、受信した映像情報を表示する装置である。
【０００６】
上記の映像配信システムにおいて、利用者端末５０ａ〜５０ｃは、映像情報の配信要求を配信サーバ群４０に送信することで、現場のライブ映像を受信することができる。このため、利用者端末５０ａ〜５０ｃの利用者は、利用者の見たいタイミングで、所望のライブ映像を視聴することができる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１０−３１３４５４号公報
【特許文献２】特開２００９−４４４８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した従来の映像配信システムでは、リアルタイムにライブ映像を利用者端末５０ａ〜５０ｃに配信することができないという問題があった。
【０００９】
ここで、従来の映像配信システムがリアルタイムにライブ映像を配信できない理由について説明する。上記の映像配信システムでは、ファイルサーバ３０が映像情報を所定の時間毎にファイル化した後に、映像情報を記憶部３０ａ〜３０ｃに記憶している。このため、配信サーバ４０ａ〜４０ｄは、ファイル化が完了するまで、記憶部３０ａ〜３０ｃにアクセスして映像情報を受信することができなくなる。したがって、配信サーバ４０ａ〜４０ｄは、ファイル化が完了した後に映像情報を利用者端末５０ａ〜５０ｃに配信することになり、ファイル化の時間だけ映像情報を利用者端末５０ａ〜５０ｃに配信する時間が遅れてしまう。
【００１０】
開示の技術は、上記に鑑みてなされたものであって、映像情報を遅延することなく利用者端末に配信することができる配信装置、配信プログラムおよび配信方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本願の開示する配信装置は、一つの態様において、エンコーダから複数の区切りを含む映像情報を受信する映像受信部と、インターネットを介して利用者端末から前記映像情報の配信要求を受信した場合に、前記映像情報に含まれる区切りのうち、前記配信要求を受信したタイミング以降の最初の区切りを検出する区切検出部と、前記区切検出部が検出した区切り以降の時間情報を初期値から開始して設定する時間情報設定部と、前記時間情報設定部が前記時間情報を設定した後に、前記区切検出部が検出した区切り以降の映像情報を前記利用者端末に配信する映像配信部とを有することを要件とする。
【発明の効果】
【００１２】
本願の開示する配信装置の一つの態様によれば、映像情報を遅延することなく利用者端末に配信することができるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】図１は、本実施例１にかかる配信装置の構成を示す図である。
【図２】図２は、本実施例２にかかる映像配信システムの構成を示す図である。
【図３】図３は、本実施例２にかかる映像配信システムの処理手順を説明するための図である。
【図４】図４は、中継サーバの構成を示す機能ブロック図である。
【図５】図５は、アドレス変換テーブルのデータ構造の一例を示す図である。
【図６】図６は、本実施例２にかかる配信サーバの構成を示す機能ブロック図である。
【図７】図７は、セッション管理テーブルのデータ構造の一例を示す図である。
【図８】図８は、仮想ファイル構成テーブルのデータ構造の一例を示す図である。
【図９】図９は、映像情報のデータ構造の一例を示す図である。
【図１０】図１０は、バッファのデータ構造の一例を示す図である。
【図１１】図１１は、データ変換部の処理を説明するための図（１）である。
【図１２】図１２は、データ変換部の処理を説明するための図（２）である。
【図１３】図１３は、本実施例２にかかる映像配信システムの処理手順を示すフローチャート（１）である。
【図１４】図１４は、本実施例２にかかる映像配信システムの処理手順を示すフローチャート（２）である。
【図１５】図１５は、配信サーバを構成するコンピュータのハードウェア構成を示す図である。
【図１６】図１６は、従来の映像配信システムの一例を示す図である。
【発明を実施するための形態】
【００１４】
以下に、本願の開示する配信装置、配信プログラムおよび配信方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１５】
本実施例１にかかる配信装置について説明する。図１は、本実施例１にかかる配信装置の構成を示す図である。図１に示すように、この配信装置１００は、映像受信部１１０、区切検出部１２０、時間情報設定部１３０、映像配信部１４０を有する。
【００１６】
映像受信部１１０は、エンコーダから複数の区切りを含む映像情報を受信する。区切検出部１２０は、インターネットを介して利用者端末から映像情報の配信要求を受信した場合に、映像情報に含まれる区切りのうち、配信要求を受信したタイミング以降の最初の区切りを検出する。
【００１７】
時間情報設定部１３０は、区切検出部１２０が検出した区切り以降の時間情報を初期値から開始して設定する。映像配信部１４０は、時間情報設定部１３０が時間情報を設定した後に、区切検出部１２０が検出した区切り以降の映像情報を利用者端末に配信する。
【００１８】
上述したように、本実施例１にかかる配信装置１００は、利用者端末から映像情報の配信要求を受信したタイミング以降の最初の区切りを検出する。そして、配信装置１００は、検出した区切り以降の時間情報を初期値から開始して設定した後、検出した最初の区切り以降の映像情報を利用者端末に配信する。かかる配信装置１００は、映像情報をファイル化しないので、映像情報を遅延することなく利用者端末に配信することができる。また、配信装置１００が映像情報を利用者端末に配信する場合には、時間情報を初期値から開始して設定する。このため、配信要求を行った利用者端末は、映像情報の時間情報が初期値から設定された状態で受信することができる。したがって、利用者端末は、特別な処理部を設けることなく、オンデマンドで映像情報を遅延することなく受信することができる。
【実施例２】
【００１９】
本実施例２にかかる映像配信システムの構成について説明する。図２は、本実施例２にかかる映像配信システムの構成を示す図である。図２に示すように、エンコーダ１０ａ〜１０ｄ、利用者端末５０ａ〜５０ｃ、センタ２００を有する。エンコーダ１０ａ〜１０ｄは、インターネット６０を介してセンタ２００に接続する。利用者端末５０ａ〜５０ｃは、インターネット７０を介してセンタ２００に接続する。
【００２０】
エンコーダ１０ａ〜１０ｄは、カメラが撮影した映像情報をエンコードし、エンコードした映像情報を、インターネット６０を介してセンタ２００に送信する装置である。利用者端末５０ａ〜５０ｃは、センタ２００に対して映像情報の配信要求を行った後に、センタ２００から送信される映像情報を受信し、受信した映像情報を表示する装置である。
【００２１】
センタ２００は、エンコーダ１０ａ〜１０ｄから送信される映像情報をオンデマンドで利用者端末５０ａ〜５０ｃに配信する。図２に示すように、このセンタ２００は、ポータルサーバ２１０、中継サーバ２２０、スイッチ２３０、配信サーバ３００ａ〜３００ｄを有する。
【００２２】
ポータルサーバ２１０は、センタ２００が配信するコンテンツの種別を利用者端末５０ａ〜５０ｃに通知する装置である。中継サーバ２２０は、エンコーダ１０ａ〜１０ｄから受信する映像情報を、配信サーバ３００ａ〜３００ｄにマルチキャストする装置である。スイッチ２３０は、中継サーバ２２０および配信サーバ３００ａ〜３００ｄから送信されるデータの転送制御を行うレイヤ３のスイッチである。
【００２３】
配信サーバ３００ａ〜３００ｄは、中継サーバ２２０から転送される映像情報を仮想ファイル化し、仮想ファイル化した映像情報を利用者端末５０ａ〜５０ｃに配信する装置である。以下において、配信サーバ３００ａが映像情報を仮想ファイル化する処理について説明する。なお、配信サーバ３００ｂ〜３００ｄが映像情報を仮想ファイル化する処理は、配信サーバ３００ａと同様である。
【００２４】
配信サーバ３００ａは、例えば、利用者端末５０ａから映像情報の配信要求を受信した場合に、映像情報に含まれる複数の区切りのうち、配信要求を受信したタイミング以降の最初の区切りを検出する。そして、配信サーバ３００ａは、検出した最初の区切り以降のタイムスタンプ情報を初期値から開始して設定することで、映像情報を仮想ファイル化する。なお、上記の映像情報の区切りは、映像情報に周期的に含まれる先頭ヘッダである。この先頭ヘッダは、例えばＰＡＴ（Program  Association  Table）に対応し、タイムスタンプ情報を含む。
【００２５】
ところで、図２において、中継サーバ２２０と配信サーバ３００ａ〜３００ｄとの間は、スイッチ２３０を介してマルチキャストを通すことができる。このため、中継サーバ２２０は、映像情報を配信サーバ３００ａ〜３００ｄに向けてマルチキャストする。一方、エンコーダ１０ａ〜１０ｄと中継サーバ２２０との間、および、配信サーバ３００ａ〜３００ｄと利用者端末５０ａ〜５０ｃとの間では、マルチキャストを通すことができない。このため、エンコーダ１０ａ〜１０ｄは、映像情報を中継サーバ２２０にユニキャストする。また、配信サーバ３００ａ〜３００ｄは、映像情報を利用者端末にユニキャストする。
【００２６】
次に、図２に示した映像配信システムの処理手順について説明する。図３は、本実施例２にかかる映像配信システムの処理手順を説明するための図である。図３では一例として、利用者端末５０ａが、配信サーバ３００ａに映像情報の配信要求を行うものとし、配信サーバ３００ａは、エンコーダ１０ａから映像情報を受信するものとする。
【００２７】
図３に示すように、まず利用者端末５０ａは、ポータルサーバ２１０にアクセスし、センタ２００が配信するコンテンツの種別を受信する。図３の（１）参照。利用者端末５０ａは、ポータルサーバ２１０から受信したコンテンツの種別を表示する。利用者端末５０ａは、利用者によりコンテンツの種別内からコンテンツを選択された場合に、映像情報の配信要求を配信サーバ３００ａに送信する。図３の（２）参照。
【００２８】
配信サーバ３００ａは、スイッチ２３０、中継サーバ２２０を介してエンコーダ１０ａに映像情報の転送要求を行う。図３の（３）参照。エンコーダ１０ａは、配信サーバ３００ａからの転送要求に応答して、映像情報を中継サーバ２２０にユニキャストする。図３の（４）参照。
【００２９】
中継サーバ２２０は、エンコーダ１０ａから受信した映像情報をマルチキャストすることで、映像情報を配信サーバ３００ａに送信する。図３の（５）参照。ここで、中継サーバ２２０からマルチキャストされた映像情報は、各配信サーバ３００ａ〜３００ｄの転送要求の状況に応じて、スイッチ２３０により送信先を制限される。例えば、配信サーバ３００ａ〜３００ｄがエンコーダ１０ａに転送要求を行っている場合には、スイッチ２３０は、配信サーバ３００ａ〜３００ｄに映像情報を送信する。一方、配信サーバ３００ａだけが、エンコーダ１０ａに転送要求を行っている場合には、スイッチ２３０は、配信サーバ３００ａだけに映像情報を送信する。
【００３０】
配信サーバ３００ａは、エンコーダ１０ａから映像情報を受信した場合に、受信した映像情報を仮想ファイル化し、仮想ファイル化した映像情報を利用者端末５０ａにユニキャストする。図３の（６）参照。このように、配信サーバ３００ａは、映像情報をファイル化することなく仮想ファイル化し、映像情報を利用者端末５０ａにユニキャストするので、映像情報を遅延することなく利用者端末にユニキャストすることができる。
【００３１】
ところで、配信サーバ３００ａは、利用者端末５０ａから映像情報の配信要求を受信し、かかる映像情報を既にマルチキャストにて中継サーバ２２０から受け付けている場合には、映像情報の転送要求を行わない。この場合、配信サーバ３００ａは、既に受信している映像情報を利用者端末５０ａにユニキャストする。
【００３２】
また、中継サーバ２２０は、映像情報の転送要求を受信し、該当する映像情報のユニキャストを受信していない場合にのみ、該当する映像情報をユニキャストするエンコーダに映像情報の転送要求を送信する。
【００３３】
また、スイッチ２３０は配信サーバ３００ａから映像情報の転送要求を受信し、該当する映像情報が既に中継サーバ２２０からマルチキャストされている場合には、中継サーバ２２０からマルチキャストされている映像情報を配信サーバ３００ａに分配する。すなわち、スイッチ２３０は、配信サーバ３００ａ〜３００ｄから映像情報の転送要求を受信した場合には、該当する映像情報が既に中継サーバ２２０からマルチキャストされているか否かを判定する。そして、スイッチ２３０は、該当する映像情報がマルチキャストされていない場合には、映像情報の転送要求を中継サーバ２２０に転送する。一方、スイッチ２３０は、該当する映像情報がマルチキャストされている場合には、転送要求を転送しないで、映像情報を要求元の配信サーバに分配する。
【００３４】
次に、図２に示した中継サーバ２２０の構成の一例について説明する。図４は、中継サーバの構成を示す機能ブロック図である。図４に示すように、この中継サーバ２２０は、転送要求受信部２２１、制御部２２２、ユニキャスト送信部２２３、ユニキャスト受信部２２４、記憶部２２５、データ変換部２２６、マルチキャスト送信部２２７を有する。
【００３５】
転送要求受信部２２１は、スイッチ２３０を介して配信サーバ３００ａ〜３００ｄからエンコーダ１０ａ〜１０ｄに対する映像情報の転送要求を受信する処理部である。この映像情報の転送要求は、映像情報を要求するエンコーダの宛先情報を含むものとする。転送要求受信部２２１は、受信した転送要求を制御部２２２に出力する。
【００３６】
制御部２２２は、転送要求受信部２２１から転送要求を取得し、ユニキャスト送信部２２３を制御して、転送要求の宛先情報に対応するエンコーダに転送要求を送信する処理部である。ユニキャスト送信部２２３は、制御部２２２の制御に応じて映像情報の転送要求をエンコーダにユニキャストする処理部である。
【００３７】
ユニキャスト受信部２２４は、映像情報の転送要求を行ったエンコーダから映像情報を受信する処理部である。この映像情報は、エンコーダから中継サーバ２２０にユニキャストにて送信される。ユニキャスト受信部２２４は、映像情報をデータ変換部２２６に出力する。
【００３８】
記憶部２２５は、アドレス変換テーブル２２５ａを記憶する記憶部である。アドレス変換テーブル２２５ａは、ユニキャストアドレスとマルチキャストアドレスとを対応付けたテーブルである。図５は、アドレス変換テーブルのデータ構造の一例を示す図である。図５に示すように、このアドレス変換テーブル２２５ａは、ユニキャストアドレス、受信ポート、マルチキャストアドレス、送信ポートを対応付けて記憶する。
【００３９】
図５において、ユニキャストアドレスは、中継サーバ２２０がエンコーダから受信する映像情報の宛先に含まれるアドレスである。受信ポートは、エンコーダから映像情報を受信するポートである。マルチキャストアドレスは、各配信サーバ３００ａ〜３００ｄに送信する映像情報の宛先に設定するアドレスである。中継サーバ２２０が映像情報にマルチキャストアドレスを設定することで、映像情報がマルチキャストされる。送信ポートは、映像情報を送信するポートである。
【００４０】
データ変換部２２６は、ユニキャスト受信部２２４から取得した映像情報の宛先をアドレス変換テーブル２２５ａに基づいて変換する処理部である。具体的にデータ変換部２２６は、映像情報に含まれるアドレスと同じユニキャストアドレスをアドレス変換テーブル２２５ａから検索する。そして、データ変換部２２６は、検索したユニキャストアドレスに対応付けられたマルチキャストアドレスを映像情報の宛先に設定し、この映像情報をマルチキャスト送信部２２７に出力する。
【００４１】
マルチキャスト送信部２２７は、映像情報を配信サーバ３００ａ〜３００ｄに向けてマルチキャストする処理部である。
【００４２】
ここで、転送要求受信部２２１および制御部２２２は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）や、ＦＰＧＡ（Field  Programmable  Gate  Array）などの集積装置に対応する。または、転送要求受信部２２１および制御部２２２は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等の電子回路に対応する。また、ユニキャスト送信部２２３、ユニキャスト受信部２２４、データ変換部２２６、マルチキャスト送信部２２７は、例えば、他の装置とデータ通信を実行するＡＳＩＣ、通信用カード等に対応する。記憶部２２５は、例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（flash  memory）などの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。
【００４３】
次に、図２に示した配信サーバ３００ａの構成について説明する。図６は、本実施例２にかかる配信サーバ３００ａの構成を示す機能ブロック図である。図６に示すように、この配信サーバ３００ａは、記憶部３０１、ユニキャスト受信部３０２、セッション制御部３０３、制御部３０４、マルチキャストデータ要求部３０５を有する。また、図６に示す配信サーバ３００ａは、マルチキャスト受信部３０６、バッファ３０７、バッファ管理部３０８、データ変換部３０９、ユニキャスト送信部３１０を有する。なお、配信サーバ３００ｂ〜３００ｄの構成は、図６に示した配信サーバ３００ａの構成と同様である。
【００４４】
記憶部３０１は、セッション管理テーブル３０１ａと仮想ファイル構成テーブル３０１ｂとを記憶する記憶部である。セッション管理テーブル３０１ａは、配信要求を行った利用者端末のアドレスや、配信対象のコンテンツのＵＲＬ（Uniform  Resource  Locator）などを対応付けて記憶するテーブルである。
【００４５】
図７は、セッション管理テーブル３０１ａのデータ構造の一例を示す図である。図７に示すように、このセッション管理テーブル３０１ａは、送信先アドレス、送信先ポート、最新接続時間、リクエストコンテンツＵＲＬ、タイムスタンプを有する。送信先アドレスは、映像情報の配信要求を行った利用者端末のアドレスである。送信先ポートは、映像情報の配信要求を行った利用者端末と接続するポートである。最新接続時間は、映像情報の配信要求を受付けた最新の時間である。リクエストコンテンツＵＲＬは、配信対象となる映像情報のＵＲＬに対応する。タイムスタンプは、映像情報の先頭ヘッダに含まれるタイムスタンプを管理するための情報である。タイムスタンプの初期値は０となる。
【００４６】
仮想ファイル構成テーブル３０１ｂは、配信対象の映像情報のＵＲＬ、当該映像情報の送信元となるエンコーダの宛先情報などを対応付けて記憶するテーブルである。図８は、仮想ファイル構成テーブル３０１ｂのデータ構造の一例を示す図である。図８に示すように、この仮想ファイル構成テーブル３０１ｂは、リクエストコンテンツＵＲＬ、マルチキャストアドレス、受信ポートを有する。このうち、リクエストコンテンツＵＲＬは、セッション管理テーブル３０１ａのリクエストコンテンツＵＲＬと同様である。マルチキャストアドレスは、映像情報の送信元となるエンコーダの宛先情報に対応する。受信ポートは、映像情報を受信するポートである。
【００４７】
ユニキャスト受信部３０２は、利用者端末５０ａ〜５０ｃから映像情報の配信要求を受信する処理部である。ユニキャスト受信部３０２は、受信した配信要求をセッション制御部３０３に出力する。利用者端末５０ａ〜５０ｃから受信する配信要求には、例えば、要求対象となる映像情報のＵＲＬ、送信元の利用者端末のアドレス等が含まれる。
【００４８】
セッション制御部３０３は、映像情報の配信要求とセッション管理テーブル３０１ａとを基にして、制御部３０４およびバッファ管理部３０８を制御する処理部である。以下において、セッション制御部３０３の処理を具体的に説明する。
【００４９】
まず、配信要求に含まれる映像情報のＵＲＬがセッション管理テーブル３０１ａのリクエストコンテンツＵＲＬに含まれていない場合のセッション制御部３０３の処理について説明する。映像情報のＵＲＬがリクエストコンテンツＵＲＬに含まれていない場合には、配信要求された映像情報が配信サーバ３００ａに配信されていないことを示す。この場合、セッション制御部３０３は、映像情報のＵＲＬを制御部３０４に通知する。また、セッション制御部３０３は、配信要求された映像情報のＵＲＬと配信要求を行った利用者端末のアドレスとをバッファ管理部３０８に通知することで読み出し要求を行う。また、セッション制御部３０３は、配信要求された映像情報のＵＲＬと配信要求を行った利用者端末のアドレスとを組み合わせて、セッション管理テーブル３０１ａのリクエストコンテンツＵＲＬと送信先アドレスとに登録する。また、セッション制御部３０３は、利用者端末と接続するポートをセッション管理テーブル３０１ａの送信先ポートに登録する。また、セッション制御部３０３は、配信要求を受信した時刻をセッション管理テーブル３０１ａに登録する。
【００５０】
続いて、配信要求に含まれる映像情報のＵＲＬがリクエストコンテンツＵＲＬに含まれ、かつ、映像情報のＵＲＬと送信元の利用者端末のアドレスとの組みがセッション管理テーブル３０１ａに含まれていない場合のセッション制御部３０３の処理について説明する。映像情報のＵＲＬがリクエストコンテンツＵＲＬに含まれている場合には、配信要求された映像情報は、配信サーバ３００ａに配信されている。しかし、この場合には、映像情報の配信要求を行った利用者端末には映像情報が配信されていないことを示す。セッション制御部３０３は、配信要求された映像情報のＵＲＬと配信要求を行った利用者端末のアドレスとをバッファ管理部３０８に通知することで読み出し要求を行う。また、セッション制御部３０３は、配信要求された映像情報のＵＲＬと配信要求を行った利用者端末のアドレスとを組み合わせて、セッション管理テーブル３０１ａのリクエストコンテンツＵＲＬと送信先アドレスとに登録する。また、セッション制御部３０３は、利用者端末と接続するポートをセッション管理テーブル３０１ａの送信先ポートに登録する。また、セッション制御部３０３は、配信要求を受信した時刻をセッション管理テーブル３０１ａに登録する。
【００５１】
続いて、配信要求に含まれる映像情報のＵＲＬと配信要求を行った利用者端末のアドレスとの組がセッション管理テーブル３０１ａに登録されている場合のセッション制御部３０３の処理について説明する。この場合には、配信要求された映像情報は、既に配信サーバ３００ａに配信されており、かかる映像情報は配信要求を行った利用者端末に配信されていることを示す。セッション制御部３０３は、配信要求された映像情報のＵＲＬと配信要求を行った利用者端末のアドレスとをバッファ管理部３０８に通知することで読み出し要求を行う。また、セッション制御部３０３は、配信要求を受信した時刻をセッション管理テーブル３０１ａに登録する。
【００５２】
制御部３０４は、セッション制御部３０３から映像情報のＵＲＬを取得した場合に、マルチキャストデータ要求部３０５を制御して、映像情報の転送要求を中継サーバ２２０に送信する処理部である。制御部３０４は、映像情報の転送要求にエンコーダの宛先情報を格納する。なお、制御部３０４は、映像情報のＵＲＬと仮想ファイル構成テーブル３０１ｂとを比較して、映像情報のＵＲＬに対応するマルチキャストアドレスを、エンコーダの宛先情報として取得するものとする。
【００５３】
マルチキャストデータ要求部３０５は、制御部３０４の制御に応じて映像情報の転送要求を中継サーバ２２０に送信する処理部である。マルチキャスト受信部３０６は、中継サーバ２２０からマルチキャストされる映像情報を受信し、受信した映像情報をバッファ管理部３０８に出力する処理部である。
【００５４】
ここで、マルチキャスト受信部３０６が中継サーバ２２０から受信する映像情報のデータ構造の一例について説明する。図９は、映像情報のデータ構造の一例を示す図である。図９に示すように、この映像情報８０は複数のフレーム８１〜８３を含む。各フレーム８１〜８３は先頭ヘッダ８１ａ〜８３ａとデータ８１ｂ〜８３ｂとをそれぞれ有する。先頭ヘッダ８１ａ〜８３ａには、タイムスタンプ情報が含まれる。
【００５５】
なお、マルチキャスト受信部３０６は、映像情報をフレームの最初から受信できない場合もある。以下において、映像情報のフレームを最初から受信できない理由を説明する。中継サーバ２２０が映像情報を他の配信サーバに配信している最中に、配信サーバ３００ａがこの映像情報の転送要求を中継サーバ２２０に送信した場合には、転送要求がスイッチ２３０に到達した時点で、配信途中の映像情報が配信サーバ３００ａに配信される。スイッチ２３０は、映像情報の区切りを参照して映像情報の配信先を切り替えることはしないので、フレームの途中から映像情報が配信サーバ３００ａに配信される。
【００５６】
バッファ３０７は、種別毎に映像情報を一時的に記憶する記憶部である。図１０は、バッファ３０７のデータ構造の一例を示す図である。図１０に示すように、このバッファ３０７は、映像情報Ａ、映像情報Ｂ、映像情報Ｃに分けて、各映像情報を記憶している。そして、例えば、映像情報Ａには、複数のフレームＡ１，Ａ２，Ａ３が含まれ、映像情報Ｂには、複数のフレームＢ１，Ｂ２，Ｂ３が含まれ、映像情報Ｃには、複数のフレームＣ１，Ｃ２，Ｃ３が含まれる。なお、映像情報ＢのフレームＢ１には、図１０に示すように、先頭ヘッダと一部のデータが含まれていないものとする。
【００５７】
バッファ管理部３０８は、マルチキャスト受信部３０６から取得する映像情報をバッファ３０７に記憶させる処理、セッション制御部３０３からの読み出し要求に応じてバッファ３０７から映像情報を読み出す処理を実行する。
【００５８】
まず、バッファ管理部３０８が映像情報をバッファ３０７に記憶させる処理について説明する。バッファ管理部３０８は、マルチキャスト受信部３０６から映像情報を取得し、取得した映像情報を順次バッファ３０７に記憶させていく。なお、バッファ管理部３０８は、映像情報を種別毎に分けてバッファ３０７に記憶させるものとする。
【００５９】
続いて、バッファ管理部３０８がセッション制御部３０３から読み出し要求に応じてバッファ３０７から映像情報を読み出す処理について説明する。セッション制御部３０３から取得する読み出し要求には、上記のように、映像情報のＵＲＬと配信要求を行った利用者端末のアドレスが含まれる。バッファ管理部３０８は、セッション制御部３０３から映像情報の読み出し要求を取得した場合に、映像情報のＵＲＬに対応する種別の映像情報をバッファ３０７から順次読み出してデータ変換部３０９に出力する。また、映像情報をデータ変換部３０９に出力する場合に、バッファ管理部３０８は、利用者端末のアドレスをあわせてデータ変換部３０９に出力する。なお、バッファ管理部３０８は、例えば、映像情報のＵＲＬとバッファ３０７に格納された映像情報の種別とを対応付けたテーブルを保持し、かかるテーブルを利用して映像情報のＵＲＬに対応する映像情報を順次読み出す。
【００６０】
データ変換部３０９は、バッファ管理部３０８から取得する映像情報を仮想ファイル化する処理部である。データ変換部３０９は、ユニキャスト送信部３１０を制御して、仮想ファイル化した映像情報を該当する利用者端末に配信する。データ変換部３０９は、映像情報を受信した場合に、受信した映像情報に含まれる各先頭ヘッダのうち、最初の先頭ヘッダを検出する。そして、データ変換部３０９は、検出した先頭ヘッダ以降のタイムスタンプ情報を初期値から開始して設定することで、映像情報を仮想ファイル化する。ユニキャスト送信部３１０は、データ変換部３０９の制御に応じて仮想ファイル化された映像情報を利用者端末に配信する処理部である。
【００６１】
以下において、データ変換部３０９の処理を具体的に説明する。図１１は、データ変換部の処理を説明するための図（１）である。ここでは、バッファ３０７に記憶された映像情報Ｂを利用者端末に配信する場合を例にして説明する。また、図１１のＳ１のタイミングで、配信サーバ３００ａは、映像情報Ｂの配信要求を受付けたものとする。また、図１１の縦軸は、時間軸である。
【００６２】
まず、データ変換部３０９は、フレームＢ１を受信する。かかるフレームＢ１には先頭ヘッダが含まれていないので、データ変換部３０９は、フレームＢ１を廃棄する（ステップＳ１０）。
【００６３】
続いて、データ変換部３０９は、フレームＢ２を受信する。かかるフレームＢ２に含まれている先頭ヘッダは、最初の先頭ヘッダとなる。このため、データ変換部３０９は、フレームＢ２の先頭ヘッダに含まれるタイムスタンプ情報を初期値の「０」に設定することで仮想ファイル化する（ステップＳ１１）。そして、データ変換部３０９は、仮想ファイル化した映像情報を利用者端末に配信する（ステップＳ１２）。
【００６４】
続いて、データ変換部３０９は、フレームＢ３を受信する。かかるフレームＢ３に含まれている先頭ヘッダは、２番目の先頭ヘッダとなる。このため、データ変換部３０９は、フレームＢ３の先頭ヘッダに含まれるタイムスタンプ情報を「１」に設定することで仮想ファイル化する（ステップＳ１３）。そして、データ変換部３０９は、仮想ファイル化した映像情報を利用者端末に配信する（ステップＳ１４）。
【００６５】
データ変換部３０９は、映像情報を仮想ファイル化するたびに、送信先となる利用者端末毎にどの数字までタイムスタンプ情報を設定したのかをセッション管理テーブル３０１ａのタイムスタンプに登録する。また、データ変換部３０９は、セッション管理テーブル３０２ａを参照して、次のタイムスタンプ情報をどの数字に設定するのかを判定する。例えば、データ変換部３０９は、セッション管理テーブル３０２ａのタイムスタンプに１を加算した値を次のタイムスタンプ情報に設定する。
【００６６】
ところで、配信サーバ３００ａは、利用者端末に映像情報の配信を開始すると、利用者端末から同一の映像情報の配信要求を定期的に受付け、かかる配信要求に応答して映像情報を配信する。この場合、データ変換部３０９は、ひとつ前の配信要求を受けた時点で、きりのよいところまで映像情報を利用者端末に配信することで、切れ目のない映像情報を利用者端末に配信可能とする。
【００６７】
図１２は、データ変換部の処理を説明するための図（２）である。図１２では一例として、映像情報Ａを利用者端末に配信する場合を例にして説明する。また、図１２のＳ１、Ｓ２のタイミングで、配信サーバ３００ａは同一の利用者端末から映像情報Ａの配信要求を受付けたものとする。図１２に示すように、Ｓ１とＳ２の間隔は、映像情報Ａの区切りと一致していない。
【００６８】
図１２に示すように、データ変換部３０９は、フレームＡ１，Ａ２，Ａ３の先頭ヘッダのタイムスタンプ情報をそれぞれ０，１，２に設定することで、フレームＡ１，Ａ２，Ａ３を仮想ファイル化し、仮想ファイル化した映像情報を利用者端末に配信する（ステップＳ２０）。続いて、データ変換部３０９は、フレームＡ４の先頭ヘッダのタイムスタンプ情報を３に設定することで、フレームＡ４を仮想ファイル化し、仮想ファイル化した映像情報を利用者端末に配信する（ステップＳ２１）。図１２に示すように、データ変換部３０９は、配信要求が遅れた場合でも映像情報を区切りまで配信するので、利用者端末は、映像情報Ａを切れ目なく受信することができる。
【００６９】
ここで、セッション制御部３０３、制御部３０４、バッファ管理部３０８、データ変換部３０９は、例えば、ＡＳＩＣや、ＦＰＧＡなどの集積装置に対応する。または、セッション制御部３０３、制御部３０４、バッファ管理部３０８、データ変換部３０９は、ＣＰＵやＭＰＵ等の電子回路に対応する。また、ユニキャスト受信部３０２、マルチキャストデータ要求部３０５、マルチキャスト受信部３０６、ユニキャスト送信部３１０は、例えば、他の装置とデータ通信を実行するＡＳＩＣ、通信用カード等に対応する。記憶部３０１は、例えば、ＲＡＭ、ＲＯＭ、フラッシュメモリなどの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。また、バッファ３０７は、例えば、半導体メモリ素子に対応する。
【００７０】
次に、図２に示した映像配信システムの処理手順について説明する。図１３、図１４は、本実施例２にかかる映像配信システムの処理手順を示すフローチャートである。ここでは説明の便宜上、利用者端末５０ａが配信サーバ３００ａに映像情報の配信要求を行った場合について説明する。また、配信サーバ３００ａと中継サーバ２２０との間には、スイッチ２３０が存在するものとする。
【００７１】
図１３に示すように、利用者端末５０ａは、配信サーバ３００ａに映像情報の配信要求を送信し（ステップＳ１０１）、配信サーバ３００ａは、映像情報の配信要求を利用者端末５０ａから受信する（ステップＳ１０２）。配信サーバ３００ａは、セッション管理テーブル３０１ａを更新し（ステップＳ１０３）、中継サーバ２２０に映像情報の転送要求を送信する（ステップＳ１０４）。
【００７２】
なお、配信サーバ３００ａは、利用者端末５０ａから映像情報の配信要求を受信した時点で、スイッチ２３０から該当する映像情報を受信している場合には、配信サーバ３００ａは、受信済みの映像情報を利用者端末５０ａにユニキャストする。以下の説明では、配信サーバ３００ａは、スイッチ２３０から該当する映像情報を受信していない場合について説明する。
【００７３】
また、ステップＳ１０４において送信された映像情報の転送要求は、スイッチ２３０を介して中継サーバ２２０に送信される。ここで、該当する映像情報が既に中継サーバ２２０からマルチキャストされている場合には、スイッチ２３０は、かかる映像情報を配信サーバ３００ａに分配する。一方、スイッチ２３０は、該当する映像情報が中継サーバ２２０からマルチキャストされていない場合には、映像情報の転送要求を中継サーバ２２０に送信する。以下の説明では、スイッチ２３０が映像情報の転送要求を中継サーバ２２０に送信した場合を例に説明する。
【００７４】
中継サーバ２２０は、映像情報の転送要求を配信サーバ３００ａから受信し（ステップＳ１０５）、エンコーダに映像情報を要求する（ステップＳ１０６）。中継サーバ２２０は、エンコーダから映像情報を受信し（ステップＳ１０７）、映像情報のユニキャストアドレスをマルチキャストアドレスに変換する（ステップＳ１０８）。そして、中継サーバ２２０は、映像情報をマルチキャストする（ステップＳ１０９）。
【００７５】
ステップＳ１０９においてマルチキャストされた映像情報は、スイッチ２３０に到達する。そして、スイッチ２３０は、映像情報の転送要求の状況に応じて、映像情報を配信サーバ３００ａ〜３００ｄに分配する。例えば、該当する映像情報の配信要求を配信サーバ３００ａが行っている場合には、かかる映像情報を配信サーバ３００ａにのみ分配する。
【００７６】
配信サーバ３００ａは、中継サーバ２２０から映像情報を受信し（ステップＳ１１０）、映像情報をバッファ３０７に格納する（ステップＳ１１１）。
【００７７】
図１４の説明に移行する。配信サーバ３００ａは、映像情報をバッファ３０７から読み出し（ステップＳ１１２）、映像情報の先頭ヘッダのタイムスタンプ情報を初期値に設定する（ステップＳ１１３）。配信サーバ３００ａは、映像情報を利用者端末５０ａに送信する（ステップＳ１１４）。
【００７８】
利用者端末５０ａは、映像情報を受信し（ステップＳ１１５）、映像情報を継続して要求するか否かを判定する（ステップＳ１１６）。利用者端末５０ａは、映像情報を継続して要求しない場合には（ステップＳ１１７，Ｎｏ）、処理を終了する。
【００７９】
利用者端末５０ａは、映像情報を継続して要求する場合には（ステップＳ１１７，Ｙｅｓ）、配信サーバ３００ａに映像情報の配信要求を送信し（ステップＳ１１８）、ステップＳ１１５に移行する。
【００８０】
配信サーバ３００ａは、利用者端末５０ａから映像情報の配信要求を受信したか否かを判定する（ステップＳ１１９）。配信サーバ３００ａは、配信要求を受信していない場合には（ステップＳ１２０，Ｎｏ）、処理を終了する。一方、配信サーバ３００ａは、配信要求を受信した場合には（ステップＳ１２０，Ｙｅｓ）、映像情報の前回タイムスタンプ情報に１を加算した値を今回のタイムスタンプ情報に格納し（ステップＳ１２１）、ステップＳ１１４に移行する。
【００８１】
上述してきたように、本実施例２にかかる配信サーバ３００は、利用者端末５０から映像情報の配信要求に応じてバッファに格納された映像情報を配信する場合に、映像情報に含まれる各先頭ヘッダうち、最初の先頭ヘッダを検出する。そして、配信サーバ３００は、検出した先頭ヘッダ以降のタイムスタンプ情報を初期値から開始して設定することで、映像情報を仮想ファイル化し、利用者端末５０に仮想ファイル化した映像情報を配信する。配信サーバ３００は、映像情報をファイル化しないので、映像情報を遅延することなく利用者端末５０に配信することができる。
【００８２】
また、配信サーバ３００が映像情報を利用者端末５０に配信する場合には、タイムスタンプ情報を初期値から開始して設定する。このため、配信要求を行った利用者端末５０は、映像情報のタイムスタンプ情報が初期値から設定された状態で受信することができる。したがって、利用者端末５０は、特別な処理部を設けることなく、オンデマンドで映像情報を遅延することなく受信することができる。また、配信サーバ３００は映像情報を配信する場合に、映像情報の区切りまで映像情報を配信するので、利用者端末５０は、映像情報を切れ目なく受信することができる。
【００８３】
ところで、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００８４】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、映像情報をバッファ３０７の代わりに、記憶部３０１に記憶するようにしてもよい。また、配信サーバ３００は、エンコーダ１０から配信される映像情報をすべて記憶部３０１に格納しておき、リアルタイムの映像情報を見逃した利用者のために、記憶部３０１に格納した映像情報を要求に応じて利用者端末５０に配信してもよい。
【００８５】
なお、配信サーバ３００ａにて行われる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００８６】
図１５は、配信サーバを構成するコンピュータのハードウェア構成を示す図である。図１５に示すように、このコンピュータ４００は、各種演算処理を実行するＣＰＵ４０１と、ユーザからのデータの入力を受け付ける入力装置４０２と、モニタ４０３を有する。また、コンピュータ４００は、記憶媒体からプログラム等を読取る媒体読み取り装置４０４と、ネットワークを介して他のコンピュータとの間でデータの授受を行うネットワークインターフェース装置４０５を有する。また、コンピュータ４００は、各種情報を一時記憶するＲＡＭ４０６と、ハードディスク装置４０７を有する。各装置４０１〜４０７は、バス４０８に接続される。
【００８７】
そして、ハードディスク装置４０７は、配信処理プログラム４０７ａを記憶する。また、ハードディスク装置４０７は、図６に示したセッション管理テーブル３０１ａに対応するセッション管理テーブル３０７ｂと図６に示した仮想ファイル構成テーブル３０１ｂに対応する仮想ファイル構成テーブル４０７ｃを記憶する。
【００８８】
ＣＰＵ４０１が配信処理プログラム４０７ａをハードディスク装置４０７から読み出してＲＡＭ４０６に展開することにより、配信処理プログラム４０７ａは、配信処理プロセス４０６ａとして機能するようになる。この配信処理プロセス４０６ａは、図６に示したセッション制御部４０３、制御部４０４、バッファ管理部４０８、データ変換部４０９に対応する配信処理プログラム４０７ａを記憶する。そして、配信処理プロセス４０６ａは、セッション管理テーブル４０７ｂ、仮想ファイル構成テーブル４０７ｃを利用して、映像情報を仮想ファイル化し、仮想ファイル化した映像情報を利用者端末に配信する。
【００８９】
なお、上記の配信処理プログラム４０７ａは、必ずしもハードディスク装置４０７に格納されている必要はなく、ＣＤ−ＲＯＭ等の記憶媒体に記憶されたプログラムを、コンピュータ４００が読み出して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等にこの配信処理プログラム４０７ａを記憶させておき、コンピュータ４００がこれらから配信処理プログラム４０７ａを読み出して実行するようにしてもよい。
【符号の説明】
【００９０】
１００    配信装置
１１０    映像受信部
１２０    区切検出部
１３０    時間情報設定部
１４０    映像配信部
【図１】
0006029805.tif 000002
【図２】
0006029805.tif 000003
【図３】
0006029805.tif 000004
【図４】
0006029805.tif 000005
【図５】
0006029805.tif 000006
【図６】
0006029805.tif 000007
【図７】
0006029805.tif 000008
【図８】
0006029805.tif 000009
【図９】
0006029805.tif 000010
【図１０】
0006029805.tif 000011
【図１１】
0006029805.tif 000012
【図１２】
0006029805.tif 000013
【図１３】
0006029805.tif 000014
【図１４】
0006029805.tif 000015
【図１５】
0006029805.tif 000016
【図１６】
0006029805.tif 000017