(57)【要約】【課題】可変ビットレートのストリーミングデータを安定的に再生する。【解決手段】配信装置１０は、可変ビットレートのストリーミングデータ１１をパケット化して再生装置２０ａ，２０ｂへ配信する。配信されたストリーミングデータ１１は、再生装置２０ａから再生装置２０ｂへ転送される。再生装置２０ａは、転送先の他の再生装置である再生装置２０ｂとの間の通信品質を計測する。再生装置２０ａは、受信したストリーミングデータ１１における単位再生時間毎の再生データ量と、計測された通信品質とに基づいて、受信したストリーミングデータ１１をパケット＃１１、＃１２に分割し直して転送する。【選択図】図１
2015177344.tif 000002
【特許請求の範囲】
【請求項１】
可変ビットレートのストリーミングデータがパケット化されて配信装置から複数の再生装置へ配信され、配信された前記ストリーミングデータが前記複数の再生装置のうち一の再生装置から他の１以上の再生装置へ転送される配信システムにおける配信方法であって、
前記複数の再生装置のうち、受信した前記ストリーミングデータを他の再生装置へ転送する再生装置が、
転送先の前記他の再生装置との間の通信品質を計測し、
受信した前記ストリーミングデータにおける単位再生時間毎の再生データ量と、計測された前記通信品質とに基づいて、受信した前記ストリーミングデータをパケットに分割し直して転送する、
ことを特徴とする配信方法。
【請求項２】
前記配信装置は、当該配信装置と前記複数の再生装置のそれぞれとの間の通信品質と、前記複数の再生装置それぞれの相互間の通信品質とに基づいて、前記ストリーミングデータが前記複数の再生装置の間でデイジーチェーン方式により転送されるように、前記ストリーミングデータの配信経路を決定する、
ことを特徴とする請求項１記載の配信方法。
【請求項３】
可変ビットレートのストリーミングデータをパケット化された状態で受信し、受信した前記ストリーミングデータを再生すると共に他の再生装置へ転送する再生装置において、
前記他の再生装置との間の通信品質を計測する計測部と、
受信した前記ストリーミングデータにおける単位再生時間毎の再生データ量と、計測された前記通信品質とに基づいて、受信した前記ストリーミングデータをパケットに分割し直して転送する転送制御部と、
を有することを特徴とする再生装置。
【請求項４】
前記転送制御部は、分割し直したパケットに含まれる前記ストリーミングデータが、当該パケットに含まれる前記ストリーミングデータを再生する際の再生時間以下の時間で送信されるように、受信した前記ストリーミングデータをパケットに分割し直すことを特徴とする請求項３記載の再生装置。
【請求項５】
前記転送制御部は、受信したパケットに含まれる前記ストリーミングデータについての単位再生時間毎の再生データ量と、計測された前記通信品質に応じた判定閾値との比較に基づいて、前記受信したパケットに含まれる前記ストリーミングデータを別のパケットに分割し直すかを判定することを特徴とする請求項３記載の再生装置。
【請求項６】
前記転送制御部は、前記受信したパケットに含まれる前記ストリーミングデータを別のパケットに分割し直すと判定した場合、前記受信したパケットおよびその前後の少なくとも一方のパケットに含まれる前記ストリーミングデータを複数の分割区間に分割し直して、前記複数の分割区間それぞれに含まれる前記ストリーミングデータを個別のパケットに格納して送信し、前記複数の分割区間に分割する際に、一の分割区間に含まれる前記ストリーミングデータが、当該一の分割区間に含まれる前記ストリーミングデータを再生する際の再生時間以下の時間で送信されるように前記複数の分割区間を決定することを特徴とする請求項５記載の再生装置。
【請求項７】
ストリーミングデータを複数の再生装置へ配信する配信装置において、
前記配信装置と前記複数の再生装置のそれぞれとの間の通信品質と、前記複数の再生装置それぞれの相互間の通信品質とを取得する取得部と、
取得された前記各通信品質に基づいて、前記ストリーミングデータが前記複数の再生装置の間でデイジーチェーン方式により転送されるように、前記ストリーミングデータの配信経路を決定する経路制御部と、
を有することを特徴とする配信装置。
【請求項８】
前記経路制御部は、決定された前記配信経路を示す情報を、前記複数の再生装置それぞれに通知することを特徴とする請求項７記載の配信装置。
【請求項９】
前記経路制御部は、前記複数の再生装置をデイジーチェーン方式で接続して得られる複数の配信経路パターンのうち、配信経路における装置間の通信品質を示す数値の合計値が最大となる配信経路パターンを、前記ストリーミングデータの前記配信経路に決定することを特徴とする請求項７または８のいずれかに記載の配信装置。
【請求項１０】
可変ビットレートのストリーミングデータをパケット化された状態で受信し、受信した前記ストリーミングデータを再生すると共に他の再生装置へ転送するコンピュータが実行する転送制御プログラムにおいて、
前記コンピュータに、
前記他の再生装置との間の通信品質を計測し、
受信した前記ストリーミングデータにおける単位再生時間毎の再生データ量と、計測された前記通信品質とに基づいて、受信した前記ストリーミングデータをパケットに分割し直して転送する、
処理を実行させることを特徴とする転送制御プログラム。
【請求項１１】
ストリーミングデータを複数の再生装置へ配信するコンピュータが実行する配信制御プログラムにおいて、
前記コンピュータに、
前記コンピュータと前記複数の再生装置のそれぞれとの間の通信品質と、前記複数の再生装置それぞれの相互間の通信品質とを取得し、
取得された前記各通信品質に基づいて、前記ストリーミングデータが前記複数の再生装置の間でデイジーチェーン方式により転送されるように、前記ストリーミングデータの配信経路を決定する、
処理を実行させることを特徴とする配信制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、配信方法、再生装置、配信装置、転送制御プログラムおよび配信制御プログラムに関する。
【背景技術】
【０００２】
近年、動画や音声等のコンテンツをストリーミングにより配信する技術が広く普及している。ストリーミングとは、コンテンツのデータを再生装置が受信しながら、同時に再生を行う方式である。
【０００３】
ストリーミングに関する技術としては、例えば、次のような技術が提案されている。この技術では、サーバは、グループ内の各クライアントの実行スループットに基づいて、１つのクライアントを中間ノードとして選択し、選択されたクライアントに対してソース・パケットを送信する。中間ノードとして機能するクライアントは、受信したパケットを、グループ内に含まれる他のクライアントへ送信する。
【０００４】
また、ストリーミングにより配信されるデータ（ストリーミングデータ）は、可変ビットレート（ＶＢＲ：Variable Bit Rate）方式により圧縮された状態で配信される場合がある。可変ビットレート方式とは、単位時間あたりの再生に必要なデータ量が変化する圧縮方式である。可変ビットレート方式によれば、動画や音声の品質を維持しながら、全体のデータ量を抑制できるというメリットがある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開２００３−１０５４２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、ストリーミングデータを受信したある再生装置が、そのデータを再生すると共に、他の１以上の再生装置へ転送するというシステムが考えられている。このようなシステムは、例えば、再生装置間がピアツーピア（Ｐ２Ｐ：Peer To Peer）で通信できるシステムに適している。
【０００７】
このようなシステムにおいては、ある再生装置の受信側の通信速度が十分に高く、その再生装置での再生動作を正常に実行できている場合でも、転送先の再生装置との間の通信速度も十分に高いとは限らない。転送先の再生装置との間の通信速度が低くなると、転送されたデータの遅配や欠落が生じて、転送先の再生装置での再生動作が途切れてしまう可能性がある。特に、可変ビットレートのストリーミングデータにおいて、単位再生時間あたりのデータ量が大きい区間が連続して現れると、通信速度が低下した場合に転送先の再生装置での再生動作が途切れやすくなるという問題がある。
【０００８】
１つの側面では、本発明は、可変ビットレートのストリーミングデータを安定的に再生可能にする配信方法、再生装置、配信装置、転送制御プログラムおよび配信制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
１つの案では、可変ビットレートのストリーミングデータがパケット化されて配信装置から複数の再生装置へ配信され、配信されたストリーミングデータが複数の再生装置のうち一の再生装置から他の１以上の再生装置へ転送される配信システムにおける配信方法が提供される。複数の再生装置のうち、受信したストリーミングデータを他の再生装置へ転送する再生装置が、転送先の他の再生装置との間の通信品質を計測する。そして、複数の再生装置のうち、受信したストリーミングデータを他の再生装置へ転送する再生装置が、受信したストリーミングデータにおける単位再生時間毎の再生データ量と、計測された通信品質とに基づいて、受信したストリーミングデータをパケットに分割し直して転送する。
【００１０】
また、１つの案では、可変ビットレートのストリーミングデータをパケット化された状態で受信し、受信したストリーミングデータを再生すると共に他の再生装置へ転送する再生装置が提供される。再生装置は、計測部および転送制御部を有する。計測部は、他の再生装置との間の通信品質を計測する。転送制御部は、受信したストリーミングデータにおける単位再生時間毎の再生データ量と、計測された通信品質とに基づいて、受信したストリーミングデータをパケットに分割し直して転送する。
【００１１】
また、１つの案では、ストリーミングデータを複数の再生装置へ配信する配信装置が提供される。配信装置は、取得部および経路制御部を有する。取得部は、配信装置と複数の再生装置のそれぞれとの間の通信品質と、複数の再生装置それぞれの相互間の通信品質とを取得する。経路制御部は、取得された各通信品質に基づいて、ストリーミングデータが複数の再生装置の間でデイジーチェーン方式により転送されるように、ストリーミングデータの配信経路を決定する。
【００１２】
また、１つの案では、上記再生装置と同様の処理をコンピュータに実行させる転送制御プログラムが提供される。
さらに、１つの案では、上記配信装置と同様の処理をコンピュータに実行させる配信制御プログラムが提供される。
【発明の効果】
【００１３】
一側面では、可変ビットレートのストリーミングデータを安定的に再生できる。
【図面の簡単な説明】
【００１４】
【図１】第１の実施の形態の配信システムの構成例および処理例を示す図である。
【図２】第２の実施の形態のデータ配信システムの例を示す図である。
【図３】動画データの配信経路の例を示す図である。
【図４】配信装置のハードウェア構成例を示す図である。
【図５】端末装置のハードウェア構成例を示す図である。
【図６】配信装置、端末装置および認証サーバの機能例を示す図である。
【図７】グループ情報テーブルの例を示す図である。
【図８】配信経路情報テーブルを用いて経路を選択する例を示す図である。
【図９】動画データを分割する際の動画解析情報の例を示す図である。
【図１０】動画データを分割する際の再生区間情報テーブルの例を示す図である。
【図１１】動画データを分割する際の動画解析情報の例を示す図（続き）である。
【図１２】動画データを分割する際の再生区間情報テーブルの例を示す図（続き）である。
【図１３】利用者情報テーブルの例を示す図である。
【図１４】パケットのフォーマット例を示す図である。
【図１５】動画をパケット化する例を示す図である。
【図１６】参加者確認画面を示す図である。
【図１７】動画選択画面を示す図である。
【図１８】配信先のアドレスを取得するシーケンス例を示す図である。
【図１９】配信経路の選択およびパケットの生成のシーケンス例を示す図である。
【図２０】動画データの配信時のシーケンス例を示す図である。
【図２１】配信準備処理の例を示すフローチャートである。
【図２２】動画データの配信処理の例を示すフローチャートである。
【図２３】動画データの配信処理の例を示すフローチャート（続き）である。
【図２４】パケット生成処理の例を示すフローチャートである。
【図２５】パケット生成処理の例を示すフローチャート（続き）である。
【図２６】パケットの受信処理の例を示すフローチャートである。
【図２７】パケットの再生成処理の例を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本実施の形態について図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態の配信システムの構成例および処理例を示す図である。第１の実施の形態の配信システムは、ストリーミングデータ１１を配信するシステムである。本配信システムは、配信装置１０および再生装置２０ａ，２０ｂを有する。なお、再生装置は、３台以上であってもよい。
【００１６】
配信装置１０は、ストリーミングデータ１１をパケット化して配信する。ストリーミングデータ１１は、可変ビットレートのデータであり、例えば、動画データであってもよいし、音声データであってもよい。
【００１７】
再生装置２０ａは、配信装置１０から配信されたストリーミングデータ１１を受信する。再生装置２０ａは、受信したストリーミングデータ１１を再生すると共に、再生装置２０ｂに転送する。再生装置２０ｂは、再生装置２０ａから転送されたストリーミングデータ１１を受信して、再生する。
【００１８】
このように、本配信システムでは、ストリーミングデータ１１を受信したある再生装置が、他の１以上の再生装置に対してストリーミングデータ１１を転送する。これにより、配信システムに含まれるすべての再生装置にストリーミングデータ１１が配信され、各再生装置でストリーミングデータ１１が再生される。
【００１９】
次に、本配信システムに含まれる再生装置のうち、受信したストリーミングデータ１１を他の再生装置に転送する再生装置での処理について説明する。以下、図１の構成例において、このような再生装置は再生装置２０ａに該当する。
【００２０】
再生装置２０ａは、転送先の再生装置２０ｂとの間の通信品質を計測する。通信品質の例として、通信速度や、ＲＴＴ（Round Trip Time）等が挙げられる。また、再生装置２０ａは、受信したストリーミングデータ１１における単位再生時間毎の再生データ量と、計測された通信品質とに基づいて、受信したストリーミングデータ１１をパケットに分割し直して転送する。これにより、ストリーミングデータ１１を、転送先の再生装置２０ｂにおいて安定的に再生できるようにする。
【００２１】
ここで、ストリーミングデータ１１における再生区間Ｒ１〜Ｒ３のデータが、パケット＃１に格納されて再生装置２０ａに送信されたとする。さらに、それに続けて、ストリーミングデータ１１における再生区間Ｒ４〜Ｒ６のデータが、パケット＃２に格納されて再生装置２０ａに送信されたとする。
【００２２】
“再生区間”とは、ストリーミングデータ１１の再生時間を一定時間（単位再生時間）毎に区切った区間である。可変ビットレートであるので、各再生区間における再生データ量は変動し得る。図１の例では、再生区間Ｒ１，Ｒ２，Ｒ３，Ｒ４，Ｒ５，Ｒ６の再生データ量は、それぞれ５Ｍｂ，５Ｍｂ，１０Ｍｂ，３５Ｍｂ，２５Ｍｂ，２０Ｍｂであるとする。以下、説明を簡単にするために、各再生区間の時間（単位再生時間）を１秒とする。
【００２３】
また、再生装置２０ａは、再生装置２０ｂとの間の通信品質として、通信速度を計測するものとする。ここでは、再生装置２０ｂとの間の通信速度が２５Ｍｂｐｓと計測されたとする。
【００２４】
ここで、仮に再生装置２０ａがパケット＃１，＃２をそのまま再生装置２０ｂへ転送した場合を考える。
パケット＃１には、３秒かけて再生されるデータが格納されている。また、パケット＃１に含まれる再生データ量の合計は、２０Ｍｂである。このため、パケット＃１が再生装置２０ａから２５Ｍｂｐｓで送信された場合、送信開始から３秒以内で、再生装置２０ｂでのパケット＃１の受信が完了する。
【００２５】
一方、パケット＃２にも、３秒かけて再生されるデータが格納されている。また、パケット＃２に含まれる再生データ量の合計は、８０Ｍｂである。このため、パケット＃２が再生装置２０ａから２５Ｍｂｐｓで送信された場合、送信開始から３秒以内では、再生装置２０ｂでのパケット＃２の受信が完了しない。この場合、再生装置２０ｂでのパケット＃２の受信完了が遅れ、再生装置２０ｂでパケット＃２内のデータを再生すべき時刻までに、そのデータの到着が間に合わなくなる可能性が生じる。また、通信速度に対するパケット＃２の相対的なデータ量が大き過ぎるため、伝送路の途中でパケット＃２が欠落する可能性もある。このようなパケット受信完了の遅延やパケット欠落により、再生装置２０ｂでのストリーミングデータ１１の再生が途切れてしまう可能性がある。
【００２６】
そこで、再生装置２０ａは、ストリーミングデータ１１をパケットに分割し直して転送する。再生装置２０ａは、少なくともパケット＃２に含まれるデータを送信パケットに含める際の分割位置を変更する。図１の例では、パケット＃１，＃２に含まれるデータを新たなパケットに分割し直す。この場合、ストリーミングデータ１１は、再生区間Ｒ１〜Ｒ６のそれぞれの再生データ量と、計測された通信速度“２５Ｍｂｐｓ”とに基づいて、パケット＃１，＃２に含まれるデータを新たなパケットに分割し直す。
【００２７】
例えば、再生時間４秒分に相当する再生区間Ｒ１〜Ｒ４の再生データ量の合計は、５５Ｍｂであり、２５Ｍｂｐｓの速度で４秒間に送信可能なデータ量“１００Ｍｂ”より小さい。そこで、再生装置２０ａは、再生区間Ｒ１〜Ｒ４の再生データを新たなパケット＃１１に格納して、再生装置２０ｂに送信する。この場合、パケット＃１１が再生装置２０ａから送信されてから４秒以内で、再生装置２０ｂにおけるパケット＃１１の受信が完了する。
【００２８】
また、再生時間２秒分に相当する再生区間Ｒ５，Ｒ６の再生データ量の合計は、４５Ｍｂであり、２５Ｍｂｐｓの速度で２秒間に送信可能なデータ量“５０Ｍｂ”より小さい。そこで、再生装置２０ａは、再生区間Ｒ５，Ｒ６の再生データを新たなパケット＃１２に格納して、再生装置２０ｂに送信する。この場合、パケット＃１２が再生装置２０ａから送信されてから２秒以内で、再生装置２０ｂにおけるパケット＃１２の受信が完了する。
【００２９】
このように、パケット＃１，＃２に格納されていたデータがパケット＃１１，＃１２に分割し直されて転送されることで、再生装置２０ｂにおけるストリーミングデータ１１のバッファ量の余裕度が改善される可能性が高まる。また、伝送路上でパケットが欠落する可能性も低減される。従って、再生装置２０ｂでストリーミングデータ１１の再生が途切れる可能性が低下し、安定的な再生が可能になる。
【００３０】
なお、再生装置２０ａは、単位再生時間毎の再生データ量と、計測された通信品質とに基づき、必要な場合のみパケットを分割し直し、必要でない場合には受信したパケットをそのまま転送してもよい。例えば、再生装置２０ａは、受信したパケットを分割し直すかを、そのパケットをそのまま転送した場合に、そのパケットに格納されている再生データの再生時間以内に、転送先でそのパケットの受信を完了できるか否かによって判定する。
【００３１】
また、受信したパケットを分割し直すべきかの判定処理は、次のように簡略化されてもよい。再生装置２０ａは、転送先との間の通信品質を示す指標に基づいて、閾値を設定する。例えば、再生装置２０ａは、転送先との間の通信速度に所定の係数を乗じた値を閾値とする。そして、再生装置２０ａは、受信したパケットに含まれるデータを解析し、再生データ量が閾値を超える再生区間が所定数存在する場合に、受信したパケットを分割し直すと判定する。これにより、再生装置２０ａの処理負荷が軽減される。
【００３２】
［第２の実施の形態］
図２は、第２の実施の形態のデータ配信システムの例を示す図である。データ配信システム１は、システムの利用者にストリーミングにより動画データを配信するシステムである。第２の実施の形態において、データ配信システム１は、ｅラーニング（Electronic Learning）を利用した学習システムに用いるが、それ以外のシステムに適用してもよい。データ配信システム１は、所定の時刻にｅラーニングに用いる動画を、端末装置へストリーミングにより配信する。端末装置は、本システムのｅラーニングの参加者により使用されるものである。
【００３３】
データ配信システム１は、配信装置１００、端末装置２００ａ，２００ｂ，２００ｃおよび認証サーバ３００を有する。配信装置１００は、ルータ４１を介してネットワーク３０と接続可能であり、端末装置２００ａは、ルータ４２を介してネットワーク３０と接続可能である。端末装置２００ｂは、ルータ４３を介してネットワーク３０と接続可能であり、端末装置２００ｃは、ルータ４４を介してネットワーク３０と接続可能である。配信装置１００、端末装置２００ａ，２００ｂ，２００ｃおよび認証サーバ３００は、ネットワーク３０を介して、相互に接続可能である。
【００３４】
なお、配信装置１００および端末装置２００ａ，２００ｂ，２００ｃは、１つのルータを介してネットワーク３０と接続されていてもよい。また、配信装置１００は、第１の実施の形態の配信装置１０の一例である。また、端末装置２００ａ，２００ｂ，２００ｃのうちの１つは、第１の実施の形態の再生装置２０ｂの一例であり、残りは再生装置２０ａの一例である。
【００３５】
配信装置１００は、動画を配信する機能を有するコンピュータである。配信装置１００は、例えば、デスクトップ型のコンピュータ、ノート型のコンピュータ等が挙げられる。
配信装置１００は、端末装置２００ａ，２００ｂ，２００ｃのアドレスを認証サーバ３００から取得する。配信装置１００は、各端末装置と配信装置１００との間の有効帯域幅と、端末装置間の有効帯域幅とを収集する。有効帯域幅とは、単位時間（ここでは、１秒）あたりに送信可能なデータ量（すなわち、通信速度）を意味する。配信装置１００は、収集した有効帯域幅に基づいて、動画を配信するための配信経路を決定する。配信経路は、端末装置がデイジーチェーン方式で接続されるように決定される。
【００３６】
また、配信装置１００は、決定した配信経路に従って、配信経路を示す情報を各端末装置へ配信する。これにより、各端末装置は、配信経路を認識できる。以下、配信経路を示す情報を“配信経路情報”と記載する場合がある。また、配信装置１００は、決定した配信経路に従って、動画をパケット化して各端末装置へ配信する。各パケットのデータ長は、送信先の端末装置との間の有効帯域幅等に基づいて算出される。
【００３７】
端末装置２００ａ，２００ｂ，２００ｃは、動画を再生する機能を有する装置である。データ配信システム１では、端末装置２００ａ，２００ｂ，２００ｃとして、タブレット型のコンピュータ、スマートホン等、携帯可能な装置を用いるが、デスクトップ型のコンピュータ等の所定の場所に配置される装置を用いてもよい。
【００３８】
また、端末装置２００ａ，２００ｂ，２００ｃは、配信装置１００の要求に応じて、他の各端末装置との間の有効帯域幅とを計測し、計測した各装置との間の有効帯域幅を配信装置１００へ送信する。なお、他の端末装置のアドレスは、配信装置１００からの要求の際に各端末装置へ通知される。
【００３９】
また、端末装置２００ａ，２００ｂ，２００ｃは、配信経路情報を受信する。端末装置２００ａ，２００ｂ，２００ｃは、パケット化された動画データを受信しながら、動画データに基づく動画を再生する。
【００４０】
また、端末装置２００ａ，２００ｂ，２００ｃは、配信経路情報に基づいて、デイジーチェーン方式で接続される。そして、配信装置１００から送信された動画データは、デイジーチェーン方式で端末装置２００ａ，２００ｂ，２００ｃに転送される。従って、端末装置２００ａ，２００ｂ，２００ｃのうち、末端を除く２つの端末装置は、受信した動画データの再生処理を行うと共に、その動画データを他の端末装置へ転送する。また、これら２つの端末装置は、受信した動画データを必要に応じてパケット化し直して、転送先の端末装置へ転送する。
【００４１】
配信装置１００および端末装置２００ａ，２００ｂ，２００ｃは、認証サーバ３００を用いてハイブリッドピアツーピア（ハイブリッドＰ２Ｐ：Hybrid Peer To Peer）方式により相互に通信を行う。ここで、Ｐ２Ｐ方式とは、クライアントサーバ方式とは異なり、複数のノード（例えば、配信装置１００や端末装置２００ａ，２００ｂ，２００ｃ）同士が対等の機能または立場で直接通信を行う方式である。これに対して、ハイブリッドＰ２Ｐ方式は、実体的なデータはノード間で直接送受信されるものの、サーバが各ノードのアドレスや利用者のＩＤ（Identification）を管理する方式である。
【００４２】
例えば、ハイブリッドＰ２Ｐ方式において、各ノードは他のノードのアドレスを認識していない。そこで、通信を行う一方のノードは、例えば、利用者ＩＤなどの識別情報を指定してサーバに問い合わせることで、他方のノードのアドレスを取得する。その後、一方のノードは、取得したアドレスを用いて他方のノードと直接通信する。
【００４３】
図２に示すデータ配信システム１では、認証サーバ３００がハイブリッドＰ２Ｐにおけるサーバに相当し、配信装置１００および端末装置２００ａ，２００ｂ，２００ｃがノードに相当する。すなわち、配信装置１００または端末装置２００ａ，２００ｂ，２００ｃが認証サーバ３００から通信相手のアドレスを取得した後、配信装置１００と端末装置２００ａ，２００ｂ，２００ｃとの間で画像データが直接的に送受信される。
【００４４】
認証サーバ３００は、利用者のＩＤや、配信装置１００および各端末装置のアドレスを管理する。認証サーバ３００は、端末装置２００ａ，２００ｂ，２００ｃの何れかの要求に応じて、データ配信システム１の利用者を認証する。認証サーバ３００は、配信装置１００の要求に応じて、認証済の利用者のＩＤや、認証済の利用者が使用する装置（例えば、端末装置２００ａ）のアドレスを通知する。
【００４５】
図３は、動画データの配信経路の例を示す図である。データ配信システム１において動画は、デイジーチェーン方式により接続された配信経路に従って、配信装置１００から端末装置２００ａ，２００ｂ，２００ｃへ配信される。
【００４６】
図３上段に示すように、配信装置１００および端末装置２００ａ，２００ｂ，２００ｃは相互に接続されている。そのため、配信装置１００からデイジーチェーン方式で端末装置２００ａ，２００ｂ，２００ｃへ動画を配信する場合、複数の配信経路が存在する。例えば、図３上段の場合、動画の配信経路の例として、配信装置１００から端末装置２００ａ、端末装置２００ｂ、端末装置２００ｃの順に経由するものや、端末装置２００ｂ、端末装置２００ｃ、端末装置２００ａの順に経由するもの等が挙げられる。
【００４７】
そこで、配信装置１００は、各端末装置との間の有効帯域幅および端末装置間の有効帯域幅を収集し、収集した有効帯域幅に基づいて、動画を配信するために最適な配信経路を、複数の配信経路から１つ選択する。そして、選択した配信経路に従って、各端末装置へ動画を配信する。
【００４８】
例えば、端末装置２００ａ、端末装置２００ｂ、端末装置２００ｃの順に経由する配信経路が、配信装置１００により選択されたとする。この場合、データ配信システム１において配信される動画は、図３下段に示すように、配信装置１００から、端末装置２００ａ、端末装置２００ｂ、端末装置２００ｃの順に経由することで、各端末装置に配信される。
【００４９】
このように、デイジーチェーン方式により接続された配信経路に従って動画を配信することで、動画の配信による負荷が特定の装置に集中しないため、負荷の集中による動画データの欠落や、動画データの到着の遅延を抑制できる。よって、配信装置１００は、各端末装置に連続的に再生可能な状態で動画を配信できる。また、有効帯域幅に基づいて配信経路を決定することで、動画がすべての端末装置に安定的に配信される可能性が高められる。
【００５０】
図４は、配信装置のハードウェア構成例を示す図である。配信装置１００は、プロセッサ１０１、ＲＡＭ（Random Access Memory）１０２、ＨＤＤ（Hard Disk Drive）１０３、画像信号処理部１０４、入力信号処理部１０５、ディスクドライブ１０６および通信インタフェース１０７を有する。これらのユニットは、配信装置１００内でバス１０８に接続されている。
【００５１】
プロセッサ１０１は、プログラムの命令を実行する演算器を含み、例えばＣＰＵ（Central Processing Unit）である。プロセッサ１０１は、ＨＤＤ１０３に記憶されているプログラムやデータの少なくとも一部をＲＡＭ１０２にロードしてプログラムを実行する。なお、プロセッサ１０１は複数のプロセッサコアを備えてもよい。また、配信装置１００は、複数のプロセッサを備えてもよい。また、配信装置１００は、複数のプロセッサまたは複数のプロセッサコアを用いて並列処理を行ってもよい。また、２以上のプロセッサの集合、ＦＰＧＡ（Field Programmable Gate Array）やＡＳＩＣ（Application Specific Integrated Circuit）等の専用回路、２以上の専用回路の集合、プロセッサと専用回路の組み合わせ等を「プロセッサ」と呼んでもよい。
【００５２】
ＲＡＭ１０２は、プロセッサ１０１が実行するプログラムやプログラムから参照されるデータを一時的に記憶する揮発性メモリである。なお、配信装置１００は、ＲＡＭ以外の種類のメモリを備えてもよく、複数個の揮発性メモリを備えてもよい。
【００５３】
ＨＤＤ１０３は、ＯＳ（Operating System）やファームウェアやアプリケーションソフトウェア等のソフトウェアのプログラムおよびデータを記憶する不揮発性の記憶装置である。なお、配信装置１００は、フラッシュメモリ等の他の種類の記憶装置を備えてもよく、複数個の不揮発性の記憶装置を備えてもよい。
【００５４】
画像信号処理部１０４は、プロセッサ１０１からの命令に従って、配信装置１００に接続されたディスプレイ５１に画像を出力する。ディスプレイ５１としては、ＣＲＴ（Cathode Ray Tube）ディスプレイや液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）等を用いることができる。
【００５５】
入力信号処理部１０５は、配信装置１００に接続された入力デバイス５２から入力信号を取得し、プロセッサ１０１に通知する。入力デバイス５２としては、マウスやタッチパネル等のポインティングデバイス、キーボード等を用いることができる。
【００５６】
ディスクドライブ１０６は、記録媒体５３に記録されたプログラムやデータを読み取る駆動装置である。記録媒体５３として、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤ等の磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）等の光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）を使用できる。ディスクドライブ１０６は、プロセッサ１０１からの命令に従って、記録媒体５３から読み取ったプログラムやデータをＲＡＭ１０２またはＨＤＤ１０３に格納する。
【００５７】
通信インタフェース１０７は、ルータ４１等のルータおよびネットワーク３０等のネットワークを介して他の情報処理装置（例えば、端末装置２００ａ等）と通信を行う。
なお、配信装置１００はディスクドライブ１０６を備えていなくてもよく、専ら他の端末装置から制御される場合には、画像信号処理部１０４や入力信号処理部１０５を備えていなくてもよい。また、ディスプレイ５１や入力デバイス５２は、配信装置１００の筐体と一体に形成されていてもよい。
【００５８】
なお、認証サーバ３００も、配信装置１００と同様のハードウェアを用いて実現できる。
図５は、端末装置のハードウェア構成例を示す図である。なお、端末装置２００ａ，２００ｂ，２００ｃはそれぞれ同様のハードウェア構成を有するので、図５ではこれらを“端末装置２００”と表す。また、これ以降、端末装置２００ａ，２００ｂ，２００ｃを区別せずに説明する場合には、“端末装置２００”という表記を使用する。
【００５９】
端末装置２００は、プロセッサ２０１、ＲＡＭ２０２、フラッシュメモリ２０３、ディスプレイ２０４、タッチパネル２０５および無線インタフェース２０６を有する。これらのユニットは、端末装置２００内でバス２０７に接続されている。
【００６０】
プロセッサ２０１は、前述のプロセッサ１０１と同様に、プログラムの命令を実行する演算器を含むプロセッサである。ＲＡＭ２０２は、前述のＲＡＭ１０２と同様に、プロセッサ２０１が実行するプログラムやデータを一時的に記憶する揮発性メモリである。
【００６１】
フラッシュメモリ２０３は、ＯＳやファームウェアやアプリケーションソフトウェア等のプログラムおよびデータを記憶する不揮発性の記憶装置である。なお、端末装置２００は、ＨＤＤ等の他の種類の記憶装置を備えてもよく、複数個の不揮発性の記憶装置を備えてもよい。
【００６２】
ディスプレイ２０４は、プロセッサ２０１からの命令に従って画像を表示する。ディスプレイ２０４としては、液晶ディスプレイや有機ＥＬ（Electro Luminescence）ディスプレイ等を用いることができる。
【００６３】
タッチパネル２０５は、ディスプレイ２０４に重ねて設けられており、ディスプレイ２０４に対するユーザのタッチ操作を検出してタッチ位置を入力信号としてプロセッサ２０１に通知する。タッチ操作には、タッチペン等のポインティングデバイスまたはユーザの指が用いられる。タッチ位置の検出方式には、例えば、マトリクススイッチ方式、抵抗膜方式、表面弾性波方式、赤外線方式、電磁誘導方式、静電容量方式等様々な検出方式があり、いずれの方式を採用してもよい。なお、端末装置２００は、複数の入力キーを備えたキーパッド等、他の種類の入力デバイスを備えてもよい。
【００６４】
無線インタフェース２０６は、無線通信を行う通信インタフェースである。無線インタフェース２０６は、受信信号の復調・復号や送信信号の符号化・変調等を行う。例えば、無線インタフェース２０６は、ルータ４２等のルータを介してネットワーク３０等に接続する。端末装置２００は、複数の無線インタフェースを備えてもよい。
【００６５】
なお、プロセッサ２０１に実行させるプログラムは、フラッシュメモリ２０３に他の記憶装置からコピーするようにしてもよい。また、プロセッサ２０１に実行させるプログラムは、無線インタフェース２０６がネットワーク３０等からダウンロードするようにしてもよい。
【００６６】
図６は、配信装置、端末装置および認証サーバの機能例を示す図である。配信装置１００は、管理情報記憶部１１０、動画情報記憶部１２０、配信準備部１３０、通信品質取得部１４０、配信経路選択部１５０、パケット生成部１６０および動画配信部１７０を有する。管理情報記憶部１１０および動画情報記憶部１２０は、ＲＡＭ１０２またはＨＤＤ１０３に確保した記憶領域として実現できる。配信準備部１３０、通信品質取得部１４０、配信経路選択部１５０、パケット生成部１６０および動画配信部１７０の処理は、例えば、配信装置１００が備えるプロセッサ１０１が所定のプログラムを実行することで実現できる。
【００６７】
管理情報記憶部１１０は、データ配信システム１の利用者のグループ（利用者グループ）に関する情報を予め格納したグループ情報テーブルを記憶する。また、管理情報記憶部１１０は、選択可能な配信経路に関する情報を格納した配信経路情報テーブルを記憶する。
【００６８】
動画情報記憶部１２０は、配信装置１００が配信可能な１または２以上の動画データを予め記憶する。動画情報記憶部１２０に記憶された動画データは、可変ビットレートで圧縮符号化されたデータである。また、動画情報記憶部１２０は、動画データの解析結果を示す動画解析情報を一時的に記憶する。さらに、動画情報記憶部１２０は、動画データを再生区間毎に分割するときの再生区間に関する情報を一時的に格納する再生区間情報テーブルを記憶する。再生区間とは、再生時間に基づいて動画データを分割する際の各分割区間を示し、１つの再生区間に含まれる動画データが１つのパケットに格納される。
【００６９】
配信装置１００は、動画の配信先となる端末装置のアドレスを認識していないため、直接データを送信できない。そこで、配信準備部１３０は、次に説明する機能により、配信先となる端末装置のアドレスを取得し、配信先の端末装置に配信装置１００が直接データを送信できるようにする。
【００７０】
配信準備部１３０は、参加確認要求を認証サーバ３００へ送信する。参加確認要求は、ｅラーニングに参加可能な利用者グループに属する利用者のＩＤを含む。この利用者グループは、配信装置１００の管理者が入力操作等により選択してもよいし、配信する動画に対応するグループを配信準備部１３０等が検索してもよい。利用者のＩＤは、利用者グループに対応付けられてグループ情報テーブルに登録されている。
【００７１】
配信準備部１３０は、確認結果通知を認証サーバ３００から受信する。確認結果通知は、ｅラーニングに参加する利用者（参加者）のＩＤを含む。ｅラーニングに参加する利用者のＩＤは、参加確認要求に含まれる利用者のうち、ｅラーニングに参加する利用者のＩＤである。
【００７２】
また、配信準備部１３０は、確認結果通知に含まれる利用者のＩＤを指定して、宛先要求を認証サーバ３００へ送信する。配信準備部１３０は、宛先通知を認証サーバ３００から受信する。宛先通知は、動画の配信先の端末装置のアドレスを含む。動画の配信先の端末装置は、宛先要求に含まれる利用者が使用するものである。宛先通知を受信することで、配信装置１００は、ｅラーニングに参加する利用者が使用する端末装置へ、直接データを送信できる。
【００７３】
通信品質取得部１４０は、配信準備部１３０の処理によりデータが送信可能となった各端末装置へ通信品質要求を送信する。通信品質要求は、送信先の端末装置へ、各端末装置との間の有効帯域幅を要求するための通知である。このとき、通信品質要求は、配信準備部１３０により取得された各配信先の端末装置のアドレスを含む。
【００７４】
通信品質取得部１４０は、通信品質要求が送信された各端末装置から通信品質通知を受信する。通信品質通知は、通信品質通知の送信元の端末装置と、他の各端末装置との間の有効帯域幅を含む。通信品質取得部１４０は、受信した有効帯域幅を配信経路情報テーブルに登録する。
【００７５】
また、通信品質取得部１４０は、配信準備部１３０によりデータが送信可能となった各端末装置との間の有効帯域幅を計測し、計測した有効帯域幅を配信経路情報テーブルに登録する。
【００７６】
配信経路選択部１５０は、配信経路情報テーブルに登録された有効帯域幅に基づいて、複数の配信経路の候補から１つの配信経路を選択する。複数の配信経路の候補は、配信経路情報テーブルに予め登録されている。
【００７７】
パケット生成部１６０は、動画情報記憶部１２０から配信する動画を選択する。動画を選択する例として、ディスプレイ５１に表示させた画面から、配信する動画を配信装置１００の管理者に選択させる方法が挙げられる。あるいは、記憶された配信する動画に関する情報を配信装置１００に予め記憶し、記憶した情報に基づいて配信する動画をパケット生成部１６０が選択する方法が挙げられる。本データ配信システム１では、前者により配信する動画を選択するものとする。
【００７８】
パケット生成部１６０は、選択した動画のデータを解析することで動画解析情報を生成する。送信先の端末装置との間の有効帯域幅と、動画解析情報とに基づいて、動画を分割するときの各再生区間を決定する。パケット生成部１６０は、決定した再生区間で配信する動画を分割する。パケット生成部１６０は、分割された動画データ毎に、パケットを生成する。このとき、パケット生成部１６０は、再生時刻が最も小さい再生区間に分割された動画を含むパケットに、配信経路選択部１５０が選択した配信経路情報を含めるようにする。
【００７９】
動画配信部１７０は、パケット生成部１６０により生成された各パケットを送信先の端末装置へ送信する。このとき、動画配信部１７０は、再生時刻が小さい動画が含まれているパケットから順に送信する。また、２つ目以降のパケットは、端末装置２００からパケットの要求があったときに送信される。
【００８０】
端末装置２００は、参加要求部２１０、通信品質計測部２２０、パケット受信部２３０、パケット再生成部２４０、パケット送信部２５０、動画再生部２６０および管理情報記憶部２７０を有する。参加要求部２１０、通信品質計測部２２０、パケット受信部２３０、パケット再生成部２４０、パケット送信部２５０および動画再生部２６０の処理は、端末装置２００が備えるプロセッサ２０１が所定のプログラムを実行することで実現できる。
【００８１】
参加要求部２１０は、認証サーバ３００に参加要求を送信する。参加要求は、利用者のＩＤとパスワードを含む。参加要求部２１０は、認証サーバ３００による認証結果を受信する。
【００８２】
通信品質計測部２２０は、配信装置１００から通信品質要求を受信する。通信品質計測部２２０は、配信装置１００の通信品質要求に応じて、他の各端末装置との間の有効帯域幅を計測する。通信品質計測部２２０は、計測した有効帯域幅を含む通信品質通知を配信装置１００へ送信する。
【００８３】
パケット受信部２３０は、パケット化された動画データを、配信装置１００または他の端末装置から受信する。１つ目に受信するパケットには、配信経路情報が含まれる。パケット受信部２３０は、受信が完了したパケットに含まれる動画データをデコーダバッファに格納する。また、動画データが転送される場合、パケット受信部２３０は、受信したパケットを送信バッファに格納する。後述するように、送信バッファ上で、必要に応じてパケットの再生成が行われる。これらのバッファ領域は、端末装置２００の備える記憶装置（例えば、ＲＡＭ２０２）に確保された記憶領域である。
【００８４】
また、パケット受信部２３０は、２つ目以降のパケットを受信する際、デコーダバッファ上のデータ蓄積量を確認し、データ蓄積量が閾値未満である場合、配信装置１００にパケット要求を送信する。すると、パケット要求に応じて配信装置１００から２つ目以降のパケットが１つ受信される。
【００８５】
パケット再生成部２４０は、受信した動画データを解析して、単位再生時間毎のデータ量を算出する。算出されたデータ量は、管理情報記憶部２７０の動画解析情報に登録される。パケット再生成部２４０は、動画データの転送先の端末装置との間の有効帯域幅と、単位再生時間毎のデータ量とに基づいて、必要に応じて動画データをパケット化し直す。転送先の端末装置は、パケット受信部２３０が受信した配信経路情報に基づいて取得できる。転送先の端末装置との間の有効帯域幅は、取得した送信先の端末装置と、通信品質計測部２２０により計測された有効帯域幅とに基づいて取得できる。
【００８６】
パケット送信部２５０は、パケット化された動画データを転送先の端末装置に送信する。パケット再生成部２４０によってパケット再生成の対象にならなかった受信パケットについては、送信先アドレス等のヘッダ情報のみが書き替えられてそのまま送信される。また、パケット再生成部２４０によってパケット再生成の対象になった受信パケットの動画データについては、再生成されたパケットに格納されて送信される。
【００８７】
動画再生部２６０は、パケット受信部２３０によりデコーダバッファに格納された動画データに対して伸張復号化処理を行うことで、動画を再生する。
管理情報記憶部２７０は、例えば、端末装置２００の備える記憶装置（例えば、ＲＡＭ２０２）によって実現される。管理情報記憶部２７０は、単位再生時間毎のデータ量を格納した動画解析情報を記憶する。
【００８８】
認証サーバ３００は、利用者情報記憶部３１０、認証部３２０および配信先提供部３３０を有する。利用者情報記憶部３１０は、認証サーバ３００が備えるＲＡＭまたはＨＤＤ等の記憶装置に確保した記憶領域として実現できる。認証部３２０および配信先提供部３３０の処理は、例えば、認証サーバ３００が備えるプロセッサが所定のプログラムを実行することで実現できる。
【００８９】
利用者情報記憶部３１０は、データ配信システム１の利用者に関する情報を予め格納した利用者情報テーブルを記憶する。
認証部３２０は、端末装置２００から参加要求を受信する。参加要求は、利用者のＩＤとパスワードとを含む。認証部３２０は、受信した利用者のＩＤとパスワードとを用いて、利用者を認証する。認証部３２０は、認証に成功した場合、利用者情報テーブルにその旨を登録する。認証部３２０は、参加要求を送信した端末装置へ認証結果を通知する。認証に成功した利用者は、認証サーバ３００に参加者として認識される。
【００９０】
配信先提供部３３０は、参加確認要求を配信装置１００から受信する。認証部３２０は、確認結果通知を配信装置１００へ送信する。確認結果通知は、受信した参加確認要求に含まれる利用者のうち、認証済の利用者（すなわち、参加者）のＩＤを含む。認証済か否かは、利用者情報テーブルを参照することで判定できる。
【００９１】
また、配信先提供部３３０は、宛先要求を配信装置１００から受信する。配信先提供部３３０は、宛先通知を配信装置１００へ送信する。宛先通知は、各宛先要求に含まれている参加者についての端末装置のアドレスを含む。端末装置のアドレスは、認証済の各利用者のＩＤに基づいて、利用者情報テーブルから取得できる。
【００９２】
次に、図７〜１７を用いて、データ配信システム１が用いるテーブルおよびデータについて説明する。まず、図７〜１２を用いて、配信装置１００が用いるテーブルについて説明する。具体的には、まず、図７では、グループ情報テーブルについて説明し、次に、図８では、配信経路情報テーブルを用いて配信する動画の配信経路を決定する方法について説明する。そして、図９〜１２では、配信装置１００が、動画解析情報および再生区間情報テーブルを用いて、動画を分割する方法について説明する。
【００９３】
図７は、グループ情報テーブルの例を示す図である。グループ情報テーブル１１１は、データ配信システム１の利用者グループに関する情報を予め格納する。グループ情報テーブル１１１は、管理情報記憶部１１０に記憶されている。
【００９４】
グループ情報テーブル１１１は、グループＩＤおよび利用者ＩＤの項目を有する。グループＩＤの項目には、データ配信システム１の利用者グループを識別するための識別子が設定される。利用者ＩＤには、グループに属するデータ配信システム１の利用者を識別するための識別子が設定される。
【００９５】
図８は、配信経路情報テーブルを用いて経路を選択する例を示す図である。図８において、配信装置１００の識別子は“配”であり、端末装置２００ａの識別子が“＃Ａ”であり、端末装置２００ｂの識別子が“＃Ｂ”であり、端末装置２００ｃの識別子が“＃Ｃ”であるものとする。
【００９６】
配信経路情報テーブル１１２は、端末装置２００ａ，２００ｂ，２００ｃをデイジーチェーン方式で接続した場合の接続パターン（すなわち、配信経路の候補）に関する情報を格納する。配信経路情報テーブル１１２は、配信装置１００が複数の配信経路の候補から１つの配信経路を選択する際に用いられる。配信経路情報テーブル１１２は、管理情報記憶部１１０に記憶されている。
【００９７】
配信経路情報テーブル１１２は、配信経路、有効帯域幅１、有効帯域幅２、有効帯域幅３および合計の項目を有する。
配信経路の項目には、動画の配信経路の候補を示す情報が設定される。例えば、配信装置１００から端末装置２００ａ，２００ｂ，２００ｃの順に経由する配信経路を示す場合、配信経路の項目には、“配，＃Ａ，＃Ｂ，＃Ｃ”が設定される。
【００９８】
有効帯域幅１には、対応する配信経路における１つ目の送信先の端末装置と、その端末装置の送信元の装置との間の有効帯域幅を示す情報が設定される。有効帯域幅２には、対応する配信経路における２つ目の送信先の端末装置と、その端末装置の送信元の装置との間の有効帯域幅を示す情報が設定される。有効帯域幅３には、対応する配信経路における３つ目の送信先の端末装置と、その端末装置の送信元の装置との間の有効帯域幅を示す情報が設定される。
【００９９】
例えば、配信経路の項目に“配，＃Ａ，＃Ｂ，＃Ｃ”が設定されているとすると、有効帯域幅１には、配信装置１００が計測した端末装置２００ａとの間の有効帯域幅を示す情報が設定される。同様の場合において、有効帯域幅２には、端末装置２００ａが計測した端末装置２００ｂとの間の有効帯域幅を示す情報が設定され、有効帯域幅３には、端末装置２００ｂが計測した端末装置２００ｃとの間の有効帯域幅を示す情報が設定される。なお、有効帯域幅１、有効帯域幅２、有効帯域幅３に登録される値の単位は、“Ｍｂｐｓ”であるものとする。
【０１００】
合計の項目には、有効帯域幅１、有効帯域幅２および有効帯域幅３の合計値を示す情報が設定される。配信装置１００は、複数の配信経路の候補から１つの配信経路を選択する際、合計の項目に設定されている値が最も大きい配信経路を選択する。
【０１０１】
例えば、図８上段に示すような、配信経路情報テーブル１１２が管理情報記憶部１１０に記憶されているとする。配信経路情報テーブル１１２に登録されている合計のうち、最も大きい値は“１４０”である。そのため、合計が“１４０”であるレコードの配信経路の項目に示す“配，＃Ａ，＃Ｃ，＃Ｂ”が、配信される動画の配信経路として決定される。この場合、図８下段に示すように、動画データは、配信装置１００から端末装置２００ａ，２００ｃ，２００ｂの順に経由して配信される。これにより、分割された動画データを含むパケットの欠落や、パケットの到着の遅延のリスクが軽減されるため、配信先のすべての端末装置で連続的に動画を再生できる可能性が高くなる。
【０１０２】
なお、配信装置１００は、有効帯域幅１、有効帯域幅２および有効帯域幅３の項目の少なくとも１つに所定値を下回る有効帯域幅が登録されている配信経路を、配信経路の候補から除外してもよい。また、有効帯域幅の合計値が最大である配信経路が複数存在する場合、有効帯域幅１、有効帯域幅２および有効帯域幅３の項目に登録された値の最小値が、最も大きい通信配信経路を選択してもよい。
【０１０３】
さらに、配信装置１００は、上記の方法の他、次のように配信経路を選択してもよい。まず、配信装置１００は、有効帯域幅１が最も大きい配信経路を選択する。有効帯域幅１の最大である配信経路が複数存在する場合、配信装置１００は、有効帯域幅２が最も大きい配信経路を選択する。さらに、有効帯域幅２が最も大きい配信経路が複数存在する場合、配信装置１００は、有効帯域幅３が最も大きい配信経路を選択する。
【０１０４】
図９は、動画データを分割する際の動画解析情報の例を示す図であり、図１０は、動画データを分割する際の再生区間情報テーブルの例を示す図である。
動画解析情報１２１は、配信する動画データの解析結果を示す情報である。動画解析情報１２１は、動画データを一定の再生時間毎の区間に区切り、区切られた各区間について、再生に必要なデータ量（再生データ量）を記録したものである。以下、上記のように区切られた区間を“単位区間”と記載する場合があり、単位区間の再生時間を"単位再生時間"と記載する場合がある。以下、例として、単位再生時間は１／８秒であるものとする。データ配信システム１において、単位区間を最小単位として動画データが分割され、パケットが生成される。以下、単位区間の再生データを“単位区間データ”と記載する場合がある。
【０１０５】
動画解析情報１２１は、動画情報記憶部１２０に一時的に記憶されている。実際の動画解析情報１２１は、例えば、単位区間毎に再生データ量が対応付けられたテーブル情報として実現される。図９では、このようなテーブル情報に記録された情報をグラフ化して表している。図９の動画解析情報１２１において、横軸は、再生時刻を表し、縦軸は、データ量を表す。例えば、図９の動画解析情報１２１に対応する動画について、０秒から１／８秒までの単位区間における単位区間データのデータ量は、“１Ｍｂ”となる。
【０１０６】
図１０に示す再生区間情報テーブル１２２は、動画データを再生区間毎に分割するときの再生区間に関する情報を一時的に格納する。再生区間情報テーブル１２２は、動画データにおける各再生区間の分割位置を算出するときや、各再生区間の再生データをパケットに格納する際に用いられる。
【０１０７】
再生区間情報テーブル１２２は、再生区間、単位区間数および再生データ量の項目を有する。再生区間の項目には、再生区間を識別するための識別子が設定される。前述のように、再生区間とは、再生時間に基づいて動画データを分割する際の各分割区間を示す。再生区間は、動画像データの先頭から順に設定される。単位区間数の項目には、再生区間に含まれる単位区間の数が設定される。再生データ量の項目には、再生区間の再生データ量を示す情報が設定される。すなわち、再生データ量の項目には、再生区間に含まれる単位区間データのデータ量の合計が設定される。
【０１０８】
ここで、動画解析情報１２１および再生区間情報テーブル１２２を用いて、配信する動画データを分割する方法について説明する。
まず、配信装置１００は、初期設定として、動画データを一定再生時間間隔の再生区間に区切り、区切られた各再生区間に関する情報を算出し、再生区間情報テーブル１２２に登録する。以下、初期設定時には再生区間の長さが１秒に設定されるものとする。各再生区間に関する情報には、再生区間に含まれる単位区間数や、再生区間の再生データ量が含まれる。
【０１０９】
例えば、図９上段に示す動画解析情報１２１に対応する動画データを分割する場合、まず、配信装置１００は、配信する動画を“０〜１秒”である再生区間＃１と、“１〜２秒”である再生区間＃２と、“２〜３秒”である再生区間＃３に区切る。
【０１１０】
次に、配信装置１００は、１秒間隔に区切られた再生区間＃１，＃２，＃３に関する情報を算出して、再生区間情報テーブル１２２に登録する。図９の動画解析情報１２１が示すように、再生区間＃１，＃２，＃３は、それぞれに８個の単位区間を含む。また、再生区間＃１に含まれる単位区間データの合計（すなわち、再生区間＃１の再生データ量）は、“１＋１＋２＋２＋１＋１＋１＋１＝１０［Ｍｂ］”となる。同様に、再生区間＃２の再生データ量は、“７＋７＋７＋７＋７＋７＋２＋４＝４８［Ｍｂ］”となり、再生区間＃３の再生データ量は“１＋１＋１＋２＋２＋１＋１＋７＝１６［Ｍｂ］”となる。
【０１１１】
そのため、図１０の再生区間情報テーブル１２２が示すように、再生区間＃１，＃２，＃３に対応する単位区間数の項目には、それぞれ“８”が登録される。また、再生区間＃１に対応する再生データ量の項目には“１０”が登録され、再生区間＃２に対応する再生データ量の項目には“４８”が登録され、再生区間＃３に対応する再生データ量の項目には“１６”が登録される。  なお、図９の下段に示す“動画＃１”、“動画＃２”、“動画＃３”の各ブロックは、その面積がそれぞれ再生区間＃１，＃２，＃３における再生データ量を模式的に示す。各ブロックの高さは、対応する再生区間のデータを１パケットに格納して一定速度で送信した場合の、速度の最低値を模式的に示す。
【０１１２】
次に、配信装置１００は、区間の調整の対象となる再生区間を判定する。具体的には、まず、配信装置１００は、データ量が閾値１２１ａを超える単位区間データの数が２以上連続している再生区間を、動画解析情報１２１に基づいて検索する。次に、配信装置１００は、検索された再生区間とその前後の再生区間とを、調整の対象となる再生区間と判定する。
【０１１３】
閾値１２１ａは、送信先の端末装置との間の有効帯域幅に基づいて設定される。例えば、閾値１２１ａは、有効帯域幅に対して（１／単位再生時間）および補正値を乗算することで算出される。この閾値１２１ａは、再生区間の再生データを１つのパケットに格納して送信した際に、パケットの遅配や欠落により送信先の端末装置での再生動作が途切れる可能性があるかを、簡易的に判定するための値となる。
【０１１４】
例えば、閾値１２１ａが“６Ｍｂ”とすると、図９上段の場合、まず、データ量が“６Ｍｂ”を超える単位区間データの数が２以上連続している再生区間として再生区間＃２が検索される。そして、検索された再生区間＃２と、再生区間＃２の前後の再生区間＃１，＃３とが、調整の対象となる再生区間と判定される。
【０１１５】
なお、配信装置１００は、上記方法の他、再生区間のデータ量が、その再生区間の再生時間以内に送信可能なデータ量を超えている場合に、その再生区間とその前後の再生区間とを調整の対象と判定してもよい。再生区間の再生時間以内に送信可能な再生データ量は、“送信先の端末装置との間の有効帯域幅×単位区間数×単位再生時間”により算出される。配信装置１００の送信先の端末装置との間の有効帯域幅が“４０Ｍｂｐｓ”であり、各再生区間の再生時間が１秒であるとすると、再生時間（すなわち１秒）以内に送信可能なデータ量は、“４０×８×（１／８）＝４０［Ｍｂ］”となる。
【０１１６】
図９の例では、再生区間＃２の再生データ量が“４８Ｍｂ”であり、再生時間以内に送信可能なデータ量“４０Ｍｂ”を超えている。この場合、再生区間＃２とその前後の再生区間＃１，＃３とが、調整の対象となる再生区間と判定される。
【０１１７】
以上のように、再生区間のデータ量が、その再生区間の再生時間以内に送信可能なデータ量を超えているかに基づいて、再生区間を調整の対象とするかを判定する場合には、閾値１２１ａを用いた判定処理と比較して、調整の対象とすべき再生区間を正確に判定できる。その反面、閾値１２１ａを用いた判定処理と比較して処理負荷が高くなる。
【０１１８】
また、これらの２つの判定方法を組み合わせてもよい。具体的には、配信装置１００は、まず、データ量が閾値１２１ａを超える単位区間データの数が所定数以上連続している再生区間を検索する。次に、配信装置１００は、検索された再生区間のデータ量が、その再生区間の再生時間以内に送信可能なデータ量を超えているかを判定し、超えている場合に、その再生区間およびその前後の再生区間を、調整の対象となる再生区間と判定する。これにより、調整の対象とすべき再生区間を正確に判定でき、なおかつ処理負荷を低減できる。
【０１１９】
図１１は、動画データを分割する際の動画解析情報の例を示す図（続き）であり、図１２は、動画データを分割する際の再生区間情報テーブルの例を示す図（続き）である。
次に、配信装置１００は、再生区間の再生時間以内に送信可能なデータ量を、再生区間の再生データ量が超えないように、調整の対象と判定した各再生区間を調整する。そして、配信装置１００は、調整後の各再生区間に関する情報を算出し、算出した各再生区間に関する情報で再生区間情報テーブル１２２を更新する。
【０１２０】
例えば、図１１上段に示すように、再生区間＃１は“０〜１．３秒”となり、再生区間＃２は“１．３〜２．５秒”となり、再生区間＃３は“２．５〜３秒”となるように、各再生区間が調整されたとする。
【０１２１】
この場合、図１２の再生区間情報テーブル１２２に示すように、再生区間＃１において、単位区間数が“１１”となり、再生データ量は“３１Ｍｂ”となる。再生区間＃２において、単位区間数が“９”となり、再生データ量は“３２Ｍｂ”となる。再生区間＃３において、単位区間数が“４”となり、再生データ量は“１１Ｍｂ”となる。
【０１２２】
また、図１２右側に示すように、再生区間＃１において、再生時間以内に送信可能なデータ量は、“４０×１１×（１／８）＝５５［Ｍｂ］”となる。再生区間＃２において、再生時間以内に送信可能なデータ量は、“４０×９×（１／８）＝４５［Ｍｂ］”となる。再生区間＃３において、再生時間以内に送信可能なデータ量は、“４０×４×（１／８）＝２０［Ｍｂ］”となる。
【０１２３】
ここで、図１０の再生区間情報テーブル１２２に示すように、調整前における再生区間＃２の再生データ量は“４８Ｍｂ”であり、再生時間以内に送信可能なデータ量を超えている。この場合、再生区間＃２で分割される動画データを１パケットに格納して送信しようとすると、有効帯域幅に対するパケットの相対的なデータ量が大き過ぎるため、そのパケットが伝送路上で欠落する確率が上がる。また、再生区間＃２の動画データを１パケットに格納して送信した場合、その送信開始から、送信先の端末装置でパケットの受信が完了するまでの時間が、再生時間“１秒”より長くなる。このため、送信先の端末装置でのパケットの到着が遅れ、パケット内の動画データを再生すべき時刻までに、その動画データの到着が間に合わなくなる可能性も生じる。これらの要因により、送信先の端末装置で再生動作を継続できなくなるリスクが高まる。
【０１２４】
そこで、配信装置１００は、再生区間のデータ量が、その再生区間の再生時間以内に送信可能なデータ量を超えないように、再生区間を調整する。すると、図１２に示すように、いずれの再生区間の再生データ量も、対応する再生区間の再生時間以内に送信可能なデータ量を超えなくなる。この場合、図１１下段に示すように、調整後の各再生区間のデータをそれぞれ個別のパケットに格納して一定速度で送信した場合の速度の最低値が、有効帯域幅以下となる。よって、調整後の再生区間で分割された各動画データをそれぞれパケットに格納して送信する際、欠落や遅延のリスクが軽減される。
【０１２５】
なお、再生区間のデータがその再生時間より短い時間で送信されるように、再生区間を調整してもよい。具体的には、再生区間のデータ量が、“有効帯域幅×補正係数×単位区間数×単位再生時間”の値を超えないようにし、補正係数を０より大きく１より小さい値に設定する。ここで、送信先の端末装置との間の有効帯域幅は、動画の配信中に変動する可能性がある。そのため、上記の補正係数を１とした場合、動画の配信中に有効帯域幅が下がると、その動画データのパケットが欠落したり遅延したりする可能性がある。上記のように補正係数を１より小さくすることにより、有効帯域幅に対して１パケットに割り当てる単位区間数に余裕を持たせるように、再生区間を調整して動画データを分割することで、動画の配信中に有効帯域幅が変動してもパケットが欠落したり遅延したりするリスクが軽減される。
【０１２６】
また、上記の例では、調整の対象とされた３つのパケットが新たな３つのパケットに分割し直されたが、データ量によっては、３つのパケットが４つ以上の新たなパケットに分割し直される場合もある。
【０１２７】
次に、図１３を用いて、認証サーバ３００が用いるテーブルについて説明する。
図１３は、利用者情報テーブルの例を示す図である。利用者情報テーブル３１１は、利用者情報記憶部３１０に記憶されている。利用者情報テーブル３１１は、利用者ＩＤ、端末ＩＤ、アドレス、パスワードおよび参加フラグの項目を有する。利用者ＩＤの項目には、データ配信システム１の利用者を識別するための識別子が設定される。端末ＩＤの項目には、利用者が使用する装置（例えば、端末装置２００ａ）を識別するための識別子が設定される。アドレスの項目には、本データ配信システム１の利用者が使用する装置のアドレスが設定される。パスワードの項目には、データ配信システム１の利用者のパスワードが設定される。
【０１２８】
参加フラグの項目には、認証サーバ３００による認証済であるか（すなわち、ｅラーニングに参加するか）を示す情報が設定される。例えば、利用者がｅラーニングに参加する場合、参加フラグの項目に“ＴＲＵＥ”が設定され、利用者がｅラーニングに参加しない場合、参加フラグの項目に“ＦＡＬＳＥ”が設定される。また、参加フラグの項目には、初期値として“ＦＡＬＳＥ”が設定されている。その後、認証サーバ３００が利用者の認証に成功したときに“ＴＲＵＥ”に更新され、認証サーバ３００が宛先通知を送信するときに“ＦＡＬＳＥ”に更新される。
【０１２９】
次に、図１４〜１５を用いて、配信装置１００等が動画を配信する際に用いられるパケットのフォーマットについて説明する。
図１４は、パケットのフォーマット例を示す図である。配信装置１００は、動画を配信する際、図１４に示すようなパケットを用いてパケット化する。このパケットには、ＩＰ（Internet Protocol）ヘッダ、ＵＤＰ（User Datagram Protocol）ヘッダ、ＲＴＰ（Real-time Transport Protocol）ヘッダおよびＲＴＰペイロードを含む。
【０１３０】
ＩＰヘッダは、ＩＰのヘッダ部であり、４ビットのヘッダ長と、４バイトの送信元ＩＰアドレスと、４バイトの送信先ＩＰアドレスとを含む。さらに、１つ目に送信されるパケットのＩＰヘッダは、可変長のオプション部を含む。
【０１３１】
ヘッダ長は、ＩＰヘッダのデータ長を４バイト単位で示す。ＩＰヘッダのデータ長は、オプション部のデータ長により可変する。オプション部にデータが存在しない場合、ＩＰヘッダは２０バイトとなり、ＩＰヘッダには０ｘ５が設定される。オプション部に１２バイトのデータが設定されている場合、ＩＰヘッダは“２０＋１２＝３２バイト”となり、ヘッダ長には０ｘ８が設定される。
【０１３２】
送信元ＩＰアドレスは、パケットの送信元のＩＰアドレスを示し、送信先ＩＰアドレスは、パケットの送信先のＩＰアドレスを示す。
１つ目のパケットのオプション部には、動画データの配信経路を示す配信経路情報が設定される。配信経路情報には、配信先の端末装置のＩＰアドレス（配信先ＩＰアドレス＃１，＃２，…）が、配信経路上の端末装置を動画データが経由する順に設定される。例えば、端末装置２００ａ，２００ｂ，２００ｃの順に経由して動画が配信される場合、端末装置２００ａのＩＰアドレス、端末装置２００ｂのＩＰアドレス、端末装置２００ｃのＩＰアドレスの順に、配信経路情報に各配信先ＩＰアドレスが設定される。オプション部のデータ長は、“４×配信先ＩＰアドレスの数”となる。
【０１３３】
なお、データ配信システム１において、ＩＰヘッダは、ＩＰｖ４（Version4）ヘッダを用いるが、ＩＰｖ６（Version6）ヘッダを用いてもよい。
ＵＤＰヘッダは、ＵＤＰのヘッダ部である。ＵＤＰヘッダは、図示しない２バイトの送信元ポート番号と、図示しない２バイトの送信先のポート番号を有する。送信元ポート番号は、パケットの送信元の装置が使用するポート番号を示し、送信先ポート番号は、パケットの送信先の端末装置が使用するポート番号を示す。
【０１３４】
ＲＴＰヘッダは、ＲＴＰのヘッダ部である。ＲＴＰヘッダは、７ビットのペイロードタイプと、２バイトのシーケンス番号と、４バイトのタイムスタンプとを含む。ペイロードタイプは、ＲＴＰペイロードのデータの種別を示す。シーケンス番号は、パケットのシーケンス番号を示す。１つ目のパケットのシーケンス番号には、ランダムに値が設定される。２つ目以降のパケットのシーケンス番号には、１つ前のパケットのシーケンス番号に１加算した値が設定される。タイムスタンプは、ＲＴＰペイロードに格納された動画データのうち、先頭データの再生時刻を示す。
【０１３５】
ＲＴＰペイロードは、ＲＴＰのデータ部であり、分割された動画を示す。ＲＴＰペイロードは、ペイロードヘッダとペイロードデータとを含む。ペイロードヘッダは、分割された動画データのヘッダ部であり、“Ｆｔｙｐ  Ｂｏｘ”と、“Ｍｏｏｖ  Ｂｏｘ”とを有する。“Ｆｔｙｐ  Ｂｏｘ”は、分割された動画データのフォーマット種別を示す。“Ｍｏｏｖ  Ｂｏｘ”は、動画データのデータ長、動画データの再生時間など動画に関する情報を示す。ペイロードデータには、分割された動画データが格納され、“Ｍｄａｔ  Ｂｏｘ”が含まれる。
【０１３６】
各端末装置は、パケットの送信元ＩＰアドレスを参照することで、パケットの要求先となる装置のＩＰアドレスを取得できる。各端末装置は、１つ目のパケットに含まれる配信経路情報を参照することで、転送先の端末装置のＩＰアドレスを取得できる。
【０１３７】
また、各端末装置は、ペイロードタイプを参照することで、ペイロードデータの種別を取得でき、種別に応じた方法でペイロードデータを再生できる。また、各端末装置は、シーケンス番号を参照することで、受信側が分割後の動画の欠落や、パケットの受信順序の入替わりを検出できる。
【０１３８】
なお、配信経路情報は、例えば、ＩＰヘッダの代わりに、１つ目のパケットのペイロードデータの欄に設定されてもよい。この場合、例えば、分割された動画データは２つ目のパケットから送信されてもよい。
【０１３９】
図１５は、動画データをパケット化する例を示す図である。例えば、配信装置１００が、“０〜１０秒”の再生区間に対応する分割データ＃１１と、“１０〜２０秒”の再生区間に対応する分割データ＃１２とに動画データを分割して、分割データ＃１１を含むパケット６１と分割データ＃１２を含むパケット６２とを生成したとする。パケット６１は、ＲＴＰヘッダ＃１１、ペイロードヘッダ＃１１およびペイロードデータ＃１１を含み、パケット６２は、ＲＴＰヘッダ＃１２、ペイロードヘッダ＃１２およびペイロードデータ＃１２を含む。
【０１４０】
この場合、例えば、図１５上段に示すように、ＲＴＰヘッダ＃１１のシーケンス番号には“１０１”が設定され、図１５下段に示すように、ＲＴＰヘッダ＃１２のシーケンス番号には“１０２”が設定される。また、図１５上段に示すように、ＲＴＰヘッダ＃１１のタイムスタンプには、分割データ＃１１に対応する再生区間の始点となる“００：００：００”が設定され、図１５下段に示すように、ＲＴＰヘッダ＃１２のシーケンス番号には、分割データ＃１２に対応する再生区間の始点となる“００：００：１０”が設定される。
【０１４１】
また、ペイロードヘッダ＃１１には、分割データ＃１１のヘッダ部が設定され、ペイロードデータ＃１１には、分割データ＃１１が設定される。また、同様に、ペイロードヘッダ＃１２には、分割データ＃１２のヘッダ部が設定され、ペイロードデータ＃１２には、分割データ＃１２が設定される。
【０１４２】
次に、図１６〜１７を用いて、配信装置１００が表示させる画面について説明する。
図１６は、参加者確認画面を示す図である。参加者確認画面１３１は、配信装置１００の管理者がｅラーニングの参加者を確認するための画面である。参加者確認画面１３１は、配信装置１００が宛先要求を受信したとき、ディスプレイ５１に表示される。参加者確認画面１３１の右側には、ｅラーニングに参加可能なグループに属する利用者のＩＤが表示され、各利用者ＩＤの右側にチェックボックスが表示される。このとき、ｅラーニングに参加する利用者のＩＤの右側のチェックボックスには、チェックマークが表示される。
例えば、図１６の参加者確認画面１３１では、表示されている複数の利用者のＩＤに対応するいずれのチェックボックスにもチェックマークが表示されている。そのため、配信装置１００が指定した利用者のいずれもがｅラーニングに参加することを示す。
【０１４３】
管理者は、例えば、ｅラーニングの参加者を確認し、ＯＫボタンを押す。配信装置１００は、参加者確認画面１３１上のＯＫボタンが押下されたことを検出すると、動画を配信する処理を続行する。
【０１４４】
なお、配信装置１００の管理者がｅラーニングの参加者を確認する必要が無い場合、配信装置１００は、ＯＫボタンの押下の検出を待たずに、動画を配信する処理を続行してもよい。また、同様の場合、配信装置１００は、参加者確認画面１３１を表示させずに、動画を配信する処理を続行してもよい。
【０１４５】
図１７は、動画選択画面を示す図である。動画選択画面１３２は、配信装置１００の管理者に、ｅラーニングに用いる動画を選択させるための画面である。管理者は、例えば、ｅラーニングにおける参加者の理解度や修得度等を考慮して、配信する動画を選択する。動画選択画面１３２は、配信装置１００が宛先通知の受信後にディスプレイ５１に表示される。
【０１４６】
動画選択画面１３２の右側には、配信装置１００が配信可能な動画を示す情報（例えば、動画の名称）が表示され、各情報の右側にチェックボックスが表示される。このとき、管理者は、配信する動画の右側のチェックボックスにチェックマークを入力し、ＯＫボタンを押下する。配信装置１００は、動画選択画面１３２上のＯＫボタンが押下されたことを検出すると、チェックマークが入力されたチェックボックスに対応する動画を配信する。例えば、図１７の動画選択画面１３２では、“動画Ａ”の右側のチェックボックスにはチェックマークが入力され、“動画Ｂ”および“動画Ｃ”の右側のチェックボックスにはチェックマークが入力されていない。この状態で、動画選択画面１３２上のＯＫボタンが押下されると、“動画Ａ”は配信され、“動画Ｂ”および“動画Ｃ”は配信されない。
【０１４７】
なお、配信する動画が予め決定されている場合、配信装置１００は、動画選択画面１３２を表示させずに、予め決定されている動画を配信してもよい。この場合、予め決定されている動画を示す情報は、例えば、動画情報記憶部１２０に予め格納される。
【０１４８】
次に、図１８〜２０を用いて、データ配信システム１において動画を配信される際のシーケンス例について説明する。図１８〜２０では、配信装置１００が端末装置２００ａ，２００ｂ，２００ｃに動画を配信するシーケンス例について説明する。
【０１４９】
図１８は、配信先のアドレスを取得するシーケンス例を示す図である。配信装置１００および端末装置２００ａ，２００ｂ，２００ｃは、互いのアドレスを認識しておらず、認証サーバ３００のアドレスのみを認識している。そこで、データ配信システム１では、次のシーケンスを実行することにより、ｅラーニングの各参加者が使用する端末装置のアドレスが、配信装置１００へ提供される。以下、図１８に示す処理をステップ番号に沿って説明する。
【０１５０】
（Ｓ１）端末装置２００ａは、参加要求を認証サーバ３００へ送信する。参加要求には、利用者のＩＤとパスワードが含まれる。認証サーバ３００は、参加要求を端末装置２００ａから受信し、受信した利用者ＩＤとパスワードを用いて利用者を認証する。具体的には、認証サーバ３００は、受信した利用者ＩＤとパスワードとを含むレコードが利用者情報テーブル３１１から検索されるか判定する。レコードが検索された場合、認証に成功したと判定し、レコードが検索されなかった場合、認証に失敗したと判定する。認証に成功したと判定した場合、認証サーバ３００は、検索されたレコードの参加フラグを“ＴＲＵＥ”に更新する。図１８では、認証に成功したものとし、以下、ステップＳ２〜Ｓ３においても同様とする。
【０１５１】
その後、図示しないが、認証サーバ３００は、認証結果を端末装置２００ａに送信し、端末装置２００ａは、認証結果を認証サーバ３００から受信する。
（Ｓ２）端末装置２００ｂは、参加要求を認証サーバ３００へ送信する。認証サーバ３００は、参加要求を端末装置２００ｂから受信し、受信した利用者ＩＤとパスワードを用いて、ステップＳ１と同様の方法で、利用者を認証して、認証に成功した場合、利用者情報テーブル３１１を更新する。
【０１５２】
その後、図示しないが、認証サーバ３００は、認証結果を端末装置２００ｂに送信し、端末装置２００ｂは、認証結果を認証サーバ３００から受信する。
（Ｓ３）端末装置２００ｃは、参加要求を認証サーバ３００へ送信する。認証サーバ３００は、参加要求を端末装置２００ｃから受信し、受信した利用者ＩＤとパスワードを用いて、ステップＳ１と同様の方法で、利用者を認証して、認証に成功した場合、利用者情報テーブル３１１を更新する。
【０１５３】
その後、図示しないが、認証サーバ３００は、認証結果を端末装置２００ｃに送信し、端末装置２００ｃは、認証結果を認証サーバ３００から受信する。
（Ｓ４）配信装置１００は、ｅラーニングの開始の所定時間前（例えば、１５分前）になると、参加確認要求を認証サーバ３００へ送信する。参加確認要求には、ｅラーニングに参加可能な利用者のＩＤが含まれる。認証サーバ３００は、参加確認要求を配信装置１００から受信する。
【０１５４】
（Ｓ５）認証サーバ３００は、確認結果通知を配信装置１００へ送信する。確認結果通知には、参加確認要求に含まれる利用者のＩＤのうち、ステップＳ１〜Ｓ３で認証済である利用者のＩＤが含まれる。
【０１５５】
認証済である各利用者のＩＤは、参加フラグが“ＴＲＵＥ”であるレコードを利用者情報テーブル３１１から検索し、検索したレコードの利用者ＩＤを読み出すことで取得できる。
【０１５６】
配信装置１００は、確認結果通知を認証サーバ３００から受信する。
（Ｓ６）配信装置１００は、宛先要求を認証サーバ３００へ送信する。宛先要求には、確認結果通知に含まれる各利用者のＩＤ、すなわち、ｅラーニングの各参加者のＩＤが含まれる。認証サーバ３００は、宛先要求を配信装置１００から受信する。
【０１５７】
（Ｓ７）認証サーバ３００は、宛先通知を配信装置１００へ送信する。宛先通知には、宛先要求に含まれる各利用者（すなわち、ｅラーニングの参加者）が使用する端末装置のアドレスが設定される。
【０１５８】
ｅラーニングの各参加者のアドレスは、ステップＳ５で利用者情報テーブル３１１から検索されたレコードから、宛先要求に含まれる利用者のいずれかと一致するレコードを検索し、検索したレコードのアドレスを読み出すことで取得できる。その後、認証サーバ３００は、検索されたレコードの参加フラグを“ＦＡＬＳＥ”に更新する。
【０１５９】
配信装置１００は、宛先通知を認証サーバ３００から受信する。これにより、配信装置１００は、配信先の端末装置２００ａ，２００ｂ，２００ｃと直接通信することが可能となる。
【０１６０】
（Ｓ８）配信装置１００は、動画確認通知を端末装置２００ａへ送信する。動画確認通知には、配信する動画を示す情報が含まれる。配信する動画を示す情報は、ステップＳ７のシーケンス後に、配信装置１００が管理者により動画選択画面１３２から選択されたものを用いる。ステップＳ９，Ｓ１０についても同様である。端末装置２００ａは、動画確認通知を配信装置１００から受信する。
【０１６１】
（Ｓ９）配信装置１００は、動画確認通知を端末装置２００ｂへ送信する。端末装置２００ｂは、動画確認通知を配信装置１００から受信する。
（Ｓ１０）配信装置１００は、動画確認通知を端末装置２００ｃへ送信する。端末装置２００ｃは、動画確認通知を配信装置１００から受信する。
【０１６２】
（Ｓ１１）端末装置２００ａは、了承通知を配信装置１００へ送信する。
（Ｓ１２）端末装置２００ｂは、了承通知を配信装置１００へ送信する。
（Ｓ１３）端末装置２００ｃは、了承通知を配信装置１００へ送信する。
【０１６３】
図１９は、配信経路の選択およびパケットの生成のシーケンス例を示す図である。前述のように、配信装置１００から各端末装置へデイジーチェーン方式により動画データを配信する際、複数の配信経路の候補が存在することになる。そこで、データ配信システム１では、次のシーケンスの実行により、動画データを配信するための配信経路が選択される。図１９において、配信装置１００は、認証サーバ３００から受信した宛先通知により、端末装置２００ａ，２００ｂ，２００ｃのアドレスを取得済であるものとする。以下、図１９に示す処理をステップ番号に沿って説明する。
【０１６４】
（Ｓ２１）配信装置１００は、通信品質要求を端末装置２００ａへ送信する。通信品質要求には、端末装置２００ａ，２００ｂ，２００ｃのアドレスが含まれる（ステップＳ２２，Ｓ２３についても同様）。端末装置２００ａは、通信品質要求を配信装置１００から受信する。端末装置２００ａは、通信品質要求を参照することで、計測先の各端末装置のアドレスを取得する。
【０１６５】
（Ｓ２２）配信装置１００は、通信品質要求を端末装置２００ｂへ送信する。端末装置２００ｂは、通信品質要求を配信装置１００から受信する。端末装置２００ｂは、通信品質要求を参照することで、計測先の各端末装置のアドレスを取得する。
【０１６６】
（Ｓ２３）配信装置１００は、通信品質要求を端末装置２００ｃへ送信する。端末装置２００ｃは、通信品質要求を配信装置１００から受信する。端末装置２００ｃは、通信品質要求を参照することで、計測先の各端末装置のアドレスを取得する。
【０１６７】
（Ｓ２４）端末装置２００ａは、端末装置２００ｂとの間の有効帯域幅と、端末装置２００ｃとの間の有効帯域幅とを計測し、計測された各有効帯域幅を含む通信品質通知を配信装置１００へ送信する。配信装置１００は、通信品質通知を端末装置２００ａから受信する。これにより、配信装置１００は、端末装置２００ａと端末装置２００ｂとの間の有効帯域幅と、端末装置２００ａと端末装置２００ｃとの間の有効帯域幅とを取得できる。
【０１６８】
（Ｓ２５）端末装置２００ｂは、端末装置２００ａとの間の有効帯域幅と、端末装置２００ｃとの間の有効帯域幅とを計測し、計測された各有効帯域幅を含む通信品質通知を配信装置１００へ送信する。配信装置１００は、通信品質通知を端末装置２００ｂから受信する。これにより、配信装置１００は、端末装置２００ｂと端末装置２００ａとの間の有効帯域幅と、端末装置２００ｂと端末装置２００ｃとの間の有効帯域幅とを取得できる。
【０１６９】
（Ｓ２６）端末装置２００ｃは、端末装置２００ａとの間の有効帯域幅と、端末装置２００ｂとの間の有効帯域幅とを計測し、計測された各有効帯域幅を含む通信品質通知を配信装置１００へ送信する。配信装置１００は、通信品質通知を端末装置２００ｃから受信する。これにより、配信装置１００は、端末装置２００ｃと端末装置２００ａとの間の有効帯域幅と、端末装置２００ｃと端末装置２００ｂとの間の有効帯域幅とを取得できる。
【０１７０】
（Ｓ２７）配信装置１００は、端末装置２００ａとの間の有効帯域幅と、端末装置２００ｂとの間の有効帯域幅と、端末装置２００ｃとの間の有効帯域幅とを計測する。
（Ｓ２８）配信装置１００は、ステップＳ２４〜Ｓ２７で取得した有効帯域幅に基づいて、図８で説明した方法で、複数の配信経路の候補の中から１つの配信経路を選択する。
【０１７１】
（Ｓ２９）配信装置１００は、配信する動画をパケット化する。
図２０は、動画データの配信時のシーケンス例を示す図である。配信装置１００がパケットを生成した時点において、端末装置２００ａ，２００ｂ，２００ｃは、動画データの配信経路を認識していない。そこで、データ配信システム１では、次のシーケンスの実行により、動画データが配信装置１００により選択された配信経路を経由して配信される。図２０では、配信装置１００から、端末装置２００ａ，２００ｂ，２００ｃの順に経由する配信経路が、配信装置１００により選択されたものとする。また、パケット＃１〜＃３は、配信する動画データがパケット化されたときのパケットの一部である。“パケット＃１”は、ＲＴＰヘッダのシーケンス番号が“１”であるパケットであることを示す。すなわち、パケット＃１は、１つ目に端末装置へ送信されるパケットとなる。同様に、“パケット＃２”は、ＲＴＰヘッダのシーケンス番号が“２”であるパケットであることを示す。“パケット＃３”は、ＲＴＰヘッダのシーケンス番号が“３”であるパケットであることを示す。
【０１７２】
（Ｓ３１）配信装置１００は、配信経路情報を含む１つ目のパケット＃１を端末装置２００ａへ送信する。端末装置２００ａは、パケット＃１を配信装置１００から受信する。
（Ｓ３２）端末装置２００ａは、パケット要求を配信装置１００へ送信する。パケット要求の送信先アドレスは、受信したパケット＃１の送信元アドレスから取得できる。配信装置１００は、パケット要求を端末装置２００ａから受信する。
【０１７３】
（Ｓ３３）配信装置１００は、パケット要求に応じて、パケット＃２を端末装置２００ａへ送信する。端末装置２００ａは、パケット＃２を配信装置１００から受信する。
（Ｓ３４）端末装置２００ａは、パケット要求を配信装置１００へ送信する。配信装置１００は、パケット要求を端末装置２００ａから受信する。
【０１７４】
（Ｓ３５）配信装置１００は、パケット要求に応じて、パケット＃３を端末装置２００ａへ送信する。端末装置２００ａは、パケット＃３を配信装置１００から受信する。
なお、ステップＳ３１でパケット＃１を受信した後、端末装置２００ａは、デコーダバッファのデータ蓄積量を確認し、データ蓄積量が所定の閾値未満である場合に、配信装置１００へパケット要求を送信する。
【０１７５】
（Ｓ３６）端末装置２００ａは、配信経路情報を含む１つ目のパケット＃１を端末装置２００ｂへ送信する。端末装置２００ｂのアドレス、すなわち動画データの転送先アドレスは、ステップＳ３１で受信した配信経路情報から自己の配信先アドレスを検索し、検索された配信先アドレスの次の配信先アドレスを参照することで取得される。端末装置２００ｂは、パケット＃１を端末装置２００ａから受信する。
【０１７６】
（Ｓ３７）端末装置２００ｂは、パケット要求を端末装置２００ａへ送信する。パケット要求の送信先アドレスは、受信したパケット＃１の送信元アドレスを参照することで取得できる。端末装置２００ａは、パケット要求を端末装置２００ｂから受信する。
【０１７７】
（Ｓ３８）端末装置２００ａは、パケット要求に応じて、パケット＃２を端末装置２００ｂへ送信する。端末装置２００ｂは、パケット＃２を端末装置２００ａから受信する。
（Ｓ３９）端末装置２００ｂは、パケット要求を端末装置２００ａへ送信する。端末装置２００ａは、パケット要求を端末装置２００ｂから受信する。
【０１７８】
（Ｓ４０）端末装置２００ａは、パケット要求に応じて、パケット＃３を端末装置２００ｂへ送信する。端末装置２００ｂは、パケット＃３を端末装置２００ａから受信する。
なお、ステップＳ３６でパケット＃１を受信した後、端末装置２００ｂは、デコーダバッファのデータ蓄積量を確認し、データ蓄積量が所定の閾値未満である場合に、端末装置２００ａへパケット要求を送信する。
【０１７９】
（Ｓ４１）端末装置２００ｂは、配信経路情報を含む１つ目のパケット＃１を端末装置２００ｃへ送信する。端末装置２００ｃのアドレス、すなわち動画データの転送先アドレスは、ステップＳ３６で受信した配信経路情報から自己の配信先アドレスを検索し、検索された配信先アドレスの次の配信先アドレスを参照することで取得される。端末装置２００ｃは、パケット＃１を端末装置２００ｂから受信する。
【０１８０】
（Ｓ４２）端末装置２００ｃは、パケット要求を端末装置２００ｂへ送信する。パケット要求の送信先アドレスは、１つ目のパケット＃１の送信元アドレスから取得できる。端末装置２００ｂは、パケット要求を端末装置２００ｃから受信する。
【０１８１】
（Ｓ４３）端末装置２００ｂは、パケット要求に応じて、パケット＃２を端末装置２００ｃへ送信する。端末装置２００ｃは、パケット＃２を端末装置２００ｂから受信する。
（Ｓ４４）端末装置２００ｃは、パケット要求を端末装置２００ｂへ送信する。端末装置２００ｂは、パケット要求を端末装置２００ｃから受信する。
【０１８２】
（Ｓ４５）端末装置２００ｂは、パケット要求に応じて、パケット＃３を端末装置２００ｃへ送信する。端末装置２００ｃは、パケット＃３を端末装置２００ｂから受信する。
なお、ステップＳ４１でパケット＃１を受信した後、端末装置２００ｃは、デコーダバッファのデータ蓄積量を確認し、データ蓄積量が所定の閾値未満である場合に、端末装置２００ｂへパケット要求を送信する。
【０１８３】
ここで、端末装置２００ｃは、自己の配信先アドレスがステップＳ４１で受信した配信経路情報のうち最後の配信先アドレスであることを確認することで、転送先の端末装置がないことを認識できる。
【０１８４】
また、動画データの転送を行う端末装置２００ａ，２００ｂは、自己の送信バッファに格納した受信パケットの解析結果に基づき、必要に応じて再生区間を調整し、調整後の再生区間毎に送信パケットを再作成する。転送されるパケットは、再生区間が確定したパケットであることが望ましい。そのため、端末装置２００ａ，２００ｂでは、図２０に示すように、複数のパケットを受信した後に、パケットを転送するようにしている。
【０１８５】
なお、データ配信システム１では、配信経路情報は、１つ目のパケットに含めてデイジーチェーン方式により接続された配信経路を経由して配信装置１００から配信されるが、配信装置１００から各端末装置へ一斉送信されてもよい。また、１つ目のパケットが送信される前に、配信経路情報のみを含むパケットが、デイジーチェーン方式により接続された配信経路を経由して配信装置１００から配信されてもよい。
【０１８６】
次に、図２１〜２６を用いて、データ配信システムを用いて動画データを配信する処理について、フローチャートを用いて説明する。
図２１は、配信準備処理の例を示すフローチャートである。図２１を用いて説明する処理は、配信装置１００で実行される。図２１では、認証サーバ３００がｅラーニングの参加者を認証済であるものとする。以下、図２１に示す処理をステップ番号に沿って説明する。
【０１８７】
（Ｓ５１）配信準備部１３０は、ｅラーニングに参加可能なグループに属する全利用者がｅラーニングに参加済か確認するために、参加確認要求を認証サーバ３００へ送信する。参加確認要求には、ｅラーニングに参加可能なグループに属する各利用者のＩＤが含まれる。
【０１８８】
ｅラーニングに参加可能なグループは、配信装置１００の管理者の入力操作を検出することで取得してもよいし、ｅラーニングに参加可能なグループを示す情報を予め管理情報記憶部１１０など記憶領域に格納し、その格納先から取得してもよい。そのグループに属する各利用者は、上記方法により取得したグループを含むレコードをグループ情報テーブル１１１から検索し、検索した各レコードの利用者を読み出すことで取得できる。
【０１８９】
（Ｓ５２）配信準備部１３０は、確認結果通知を認証サーバ３００から受信する。確認結果通知は、ステップＳ５１で送信した参加確認要求に含まれる利用者のＩＤのうち、ｅラーニングに参加する利用者のＩＤ（すなわち、ｅラーニングの参加者のＩＤ）が含まれる。
【０１９０】
（Ｓ５３）配信準備部１３０は、ｅラーニングに参加可能なグループに属する全利用者がｅラーニングに参加済か判定する。具体的には、配信準備部１３０は、ステップＳ５１で送信した参加確認要求に含まれる利用者が、ステップＳ５２で送信した確認結果通知に全て含まれているか判定する。全利用者がｅラーニングに参加済である場合、処理をステップＳ５４へ進める。参加済でない利用者が含まれている場合、処理をステップＳ５５へ進める。
【０１９１】
（Ｓ５４）配信準備部１３０は、宛先要求を認証サーバ３００へ送信する。宛先要求には、ｅラーニングの参加者のＩＤが含まれている。ｅラーニングの参加者のＩＤは、ステップＳ５２で受信した確認結果通知から取得できる。
【０１９２】
（Ｓ５５）配信準備部１３０は、動画を配信しない旨を出力する。出力方法として、例えば、ディスプレイ５１にその旨を表示させる方法が挙げられるが、これに限定されるものではない。
【０１９３】
（Ｓ５６）配信準備部１３０は、宛先通知を認証サーバ３００から受信する。宛先通知には、動画の配信先となる端末装置のアドレスが含まれる。動画の配信先となる端末装置は、ｅラーニングの参加者が使用する端末装置である。ｅラーニングの参加者は、ステップＳ５４で送信した宛先要求に含まれる参加者のＩＤにより特定できる。
【０１９４】
（Ｓ５７）配信準備部１３０は、図１６で説明したような、参加者確認画面１３１をディスプレイ５１に表示させる。
（Ｓ５８）配信準備部１３０は、参加者確認画面１３１上のＯＫボタンの押下が検出されたか判定する。ＯＫボタンは、例えば、配信装置１００の管理者により押下され、後で説明する動画選択画面１３２についても同様である。ＯＫボタンの押下が検出された場合、処理をステップＳ５９へ進める。ＯＫボタンの押下が検出されていない場合、処理をステップＳ５８へ進める。
【０１９５】
すなわち、配信準備部１３０は、参加者確認画面１３１上のＯＫボタンの押下が検出されるまで、待機する。
（Ｓ５９）配信準備部１３０は、図１７で説明したような、動画選択画面１３２をディスプレイ５１に表示させる。
【０１９６】
（Ｓ６０）配信準備部１３０は、動画選択画面１３２上のＯＫボタンの押下が検出されたか判定する。ＯＫボタンの押下が検出された場合、処理をステップＳ６１へ進める。ＯＫボタンの押下が検出されていない場合、処理をステップＳ６０へ進める。
【０１９７】
すなわち、配信準備部１３０は、動画選択画面１３２上のＯＫボタンの押下が検出されるまで、待機する。
（Ｓ６１）配信準備部１３０は、動画確認通知を配信先の各端末装置へ送信する。動画確認通知には、配信する動画を示す情報が含まれる。動画を示す情報は、配信装置１００の管理者により動画選択画面１３２上から選択されたものである。配信先の各端末装置のアドレスは、ステップＳ５６で受信した宛先通知から取得できる。
【０１９８】
（Ｓ６２）配信準備部１３０は、了承通知を全端末装置から受信済か判定する。了承通知を全端末装置から受信済である場合、処理を終了する。了承通知を受信済でない端末装置が存在する場合、処理をステップＳ６２へ進める。すなわち、配信準備部１３０は、了承通知を全端末装置から受信するまで待機する。
【０１９９】
なお、データ配信システム１では、ｅラーニングに参加可能なグループに属する全利用者が、ｅラーニングに参加しない場合に動画を配信しないこととしているが、グループの一部の利用者のみが参加する場合でも動画を配信してもよい。この場合、ステップＳ５３，Ｓ５５は不要となる。
【０２００】
また、図１６で説明したように、配信準備部１３０は、ＯＫボタンの押下の検出を待たずに、配信準備処理を続行してもよい。この場合、ステップＳ５８の処理は不要となる。また、同様の場合、配信準備部１３０は、動画選択画面１３２を表示させずに、配信準備処理を続行してもよい。この場合、ステップＳ５９，Ｓ６０の処理は不要となる。
【０２０１】
さらに、配信準備部１３０は、ステップＳ６１，Ｓ６２の処理を省略することで、配信する動画を、ｅラーニングの参加者に確認させないことも可能である。
図２２は、動画データの配信処理の例を示すフローチャートである。図２２〜２３を用いて説明する処理は、図２１で説明した配信準備処理の実行後に、配信装置１００で実行される。以下、図２２〜２３に示す処理をステップ番号に沿って説明する。
【０２０２】
（Ｓ７１）通信品質取得部１４０は、通信品質要求を動画の配信先の各端末装置へ送信する。通信品質要求には、動画の配信先となる各端末装置のアドレスが含まれる。各端末装置のアドレスは、図２１のステップＳ５６で配信準備部１３０により取得されている。
【０２０３】
（Ｓ７２）通信品質取得部１４０は、動画の配信先の全端末装置から通信品質通知を受信済か判定する。通信品質通知には、通信品質通知の送信元の端末装置と他の各端末装置との間の有効帯域幅を示す情報が含まれる。
【０２０４】
全端末装置から通信品質通知を受信済である場合、通信品質取得部１４０は、受信した有効帯域幅を配信経路情報テーブル１１２へ登録し、処理をステップＳ７５へ進める。
通信品質通知を受信済でない端末装置が存在する場合、処理をステップＳ７３へ進める。
【０２０５】
（Ｓ７３）通信品質取得部１４０は、１回目のステップＳ７２の処理の実行から所定時間が経過したか判定する。所定時間が経過した場合、処理をステップＳ７４へ進める。所定時間が経過していない場合、処理をステップＳ７２へ進める。
【０２０６】
すなわち、通信品質取得部１４０は、１回目のステップＳ７２の処理の実行から所定時間が経過するまでの間、動画の配信先の全端末装置から通信品質通知を受信するまで待機する。
【０２０７】
（Ｓ７４）通信品質取得部１４０は、データ配信システム１を利用できない旨を、図２１のステップＳ５５と同様の方法で出力する。そして、処理を終了する。
（Ｓ７５）通信品質取得部１４０は、動画の配信先の各端末装置との間の有効帯域幅を計測する。有効帯域幅は、例えば、計測先の端末装置にｐｉｎｇを送信し、送信したｐｉｎｇの応答結果を受信し、受信した応答結果に基づいて計測できる。また、例えば、計測先の端末装置にＲＴＰＣ（Real-time Transport Protocol Control protocol）に規定されるＳＲ（Sender Report）パケットを送信し、送信したＳＲパケットに対応するＲＲ（Receiver Report）パケット（ＲＴＰＣに規定）を受信する。そして、受信したＲＲパケットおよびＳＲパケットの送信からＲＲパケットの受信までの時間に基づいて計測してもよい。通信品質取得部１４０は、計測した各有効帯域幅を配信経路情報テーブル１１２へ登録する。
【０２０８】
（Ｓ７６）配信経路選択部１５０は、配信経路情報テーブル１１２に登録されている配信経路の候補から、図８で説明した方法で、１つの配信経路を選択する。
（Ｓ７７）パケット生成部１６０は、配信する動画データをパケット化する。動画データをパケット化する処理の詳細は、図２４を用いて後で説明する。
【０２０９】
図２３は、動画データの配信処理の例を示すフローチャート（続き）である。
（Ｓ８１）動画配信部１７０は、図２２のステップＳ７７でパケット化された複数のパケットから未送信のパケットを１つ選択する。その際、動画配信部１７０は、上記複数のパケットのうち、ＲＴＰヘッダに含まれるシーケンス番号が一番小さいパケットを選択する。
【０２１０】
（Ｓ８２）動画配信部１７０は、１つ目のパケットを送信済か判定する。１つ目のパケットであるかは、例えば、パケットに配信経路情報が含まれているかにより判定できる。１つ目のパケットである場合、処理をステップＳ８４へ進める。２つ目以降のパケットである場合、処理をステップＳ８３へ進める。
【０２１１】
（Ｓ８３）動画配信部１７０は、パケット要求を送信先の端末装置から受信する。
（Ｓ８４）動画配信部１７０は、パケットを送信先の端末装置へ送信する。送信先の端末装置は、図２２のステップＳ７６で決定した配信経路から取得できる。
【０２１２】
（Ｓ８５）動画配信部１７０は、図２２のステップＳ７７でパケット化された全パケットを、送信先の端末装置へ送信済か判定する。全パケットを送信済である場合、処理を終了する。送信済でないパケットが存在する場合、処理をステップＳ８１へ進める。
【０２１３】
図２４は、パケット生成処理の例を示すフローチャートである。図２４〜２５を用いて説明する処理は、図２２のステップＳ７７で実行される。以下、図２４〜２５に示す処理をステップ番号に沿って説明する。
【０２１４】
（Ｓ７７１）パケット生成部１６０は、配信する動画データを解析し、動画解析情報１２１を生成する。具体的には、パケット生成部１６０は、動画データにおける単位区間毎の再生データ量を動画解析情報１２１に登録する。
【０２１５】
（Ｓ７７２）パケット生成部１６０は、再生区間情報テーブル１２２を初期設定する。具体的には、パケット生成部１６０は、図９〜１０で説明した方法で、配信する動画データを一定の再生時間（ここでは、１秒）毎の再生区間に区切る。以下、この区切られた再生区間の再生時間を"初期再生時間"と記載する場合がある。パケット生成部１６０は、動画解析情報１２１に基づき、区切られた再生区間それぞれについて、単位区間数および再生データ量を再生区間情報テーブル１２２に登録する。
【０２１６】
（Ｓ７７３）パケット生成部１６０は、送信先の端末装置との間の有効帯域幅を配信経路情報テーブル１１２から取得する。具体的には、パケット生成部１６０は、選択した配信経路を含むレコードを配信経路情報テーブル１１２から検索し、検索したレコードの有効帯域幅１の項目の値を、送信先の端末装置との間の有効帯域幅として取得する。
【０２１７】
（Ｓ７７４）パケット生成部１６０は、ステップＳ７７３で取得した有効帯域幅と、動画解析情報１２１で用いられる単位再生時間に基づいて、閾値を算出する。閾値は、例えば、“ステップＳ７７３で取得した有効帯域幅／（１／単位再生時間）×補正値”により算出される。補正値は、１より大きい値に設定され、例えば１．３である。なお、閾値は、予め設定された固定値を用いてもよい。この場合、閾値は、例えば、動画情報記憶部１２０上の記憶領域に格納される。
【０２１８】
（Ｓ７７５）パケット生成部１６０は、動画データの先頭からｉ番目の再生区間を、処理の対象として選択する。変数ｉの初期値は１である。
（Ｓ７７６）パケット生成部１６０は、動画解析情報１２１に登録された、ステップＳ７７５で選択した再生区間に含まれる単位区間に関する情報を参照する。パケット生成部１６０は、単位区間に関する情報に基づいて、処理対象の再生区間においてステップＳ７７４で算出した閾値を超えるデータ量の単位区間が２以上連続して存在しているか判定する。閾値を超える単位区間が２以上連続して存在している場合、処理をステップＳ７７７へ進める。閾値を超える単位区間が２以上連続して存在していない場合、処理をステップＳ７７９へ進める。
【０２１９】
（Ｓ７７７）パケット生成部１６０は、ステップＳ７７５で選択した再生区間とその前後の再生区間を、調整の対象となる再生区間と判定する。
（Ｓ７７８）パケット生成部１６０は、図１１〜１２で説明した方法で、ステップＳ７７７で調整の対象とされた再生区間の分割位置を調整する。そして、パケット生成部１６０は、調整後の再生区間に関する情報を算出し、算出した再生区間に関する情報で再生区間情報テーブル１２２を更新する。
【０２２０】
（Ｓ７７９）パケット生成部１６０は、全再生区間を選択済か判定する。全再生区間を選択済である場合、処理をステップＳ７８１へ進める。選択済でない再生区間が存在する場合、処理をステップＳ７８０へ進める。
【０２２１】
（Ｓ７８０）パケット生成部１６０は、変数ｉを１だけインクリメントする。そして、処理をステップＳ７７５に進める。
図２５は、パケット生成処理の例を示すフローチャート（続き）である。
【０２２２】
（Ｓ７８１）パケット生成部１６０は、再生区間情報テーブル１２２に登録されている再生区間毎に、配信する動画データを分割する。
（Ｓ７８２）パケット生成部１６０は、ステップＳ７８１で分割後の動画データを１つ選択する。
【０２２３】
（Ｓ７８３）パケット生成部１６０は、ステップＳ７８２で選択した動画のタイムスタンプを取得する。タイムスタンプには、例えば、選択した動画が分割されたときの再生区間の始点の再生時刻を示す情報が設定される。
【０２２４】
（Ｓ７８４）パケット生成部１６０は、ステップＳ７８２で選択した動画データを配信するためのパケットを、図１４〜１５で説明したフォーマットに従って生成する。このとき、ＲＴＰヘッダのシーケンス番号には、任意の値から始まるシーケンス番号を設定し、ＲＴＰヘッダのタイムスタンプには、ステップＳ７８２で算出したタイムスタンプを設定する。また、ＲＴＰペイロードに選択した動画データを設定する。
【０２２５】
（Ｓ７８５）パケット生成部１６０は、ステップＳ７８１で分割された全動画データを選択済か判定する。全動画データを選択済である場合、処理を終了する。選択済でない動画データが存在する場合、処理をステップＳ７８２へ進める。
【０２２６】
図２６は、パケットの受信処理の例を示すフローチャートである。図２６を用いて説明する処理は、受信した動画データを他の端末装置に転送する端末装置２００で実行される。以下、図２６に示す処理をステップ番号に沿って説明する。
【０２２７】
（Ｓ９１）パケット再生成部２４０は、送信先の端末装置との間の有効帯域幅を取得する。送信先の端末装置との間の有効帯域幅は、図１９のステップＳ２４等の方法で計測したものを用いる。
【０２２８】
（Ｓ９２）パケット再生成部２４０は、ステップＳ９１で取得した有効帯域幅と、単位再生時間に基づいて、図２４のステップＳ７７４と同様の方法で、閾値を計算する。単位再生時間は、配信装置１００が用いる単位再生時間と同じ値であり、例えば、端末装置２００の備える記憶装置に確保された記憶領域に格納されている。
【０２２９】
（Ｓ９３）パケット受信部２３０は、配信装置１００または他の端末装置からパケットを受信する。パケット受信部２３０は、受信したパケットを送信バッファに格納する。
（Ｓ９４）パケット再生成部２４０は、ステップＳ９３で受信されたパケット内の動画データを解析し、単位区間毎の再生データ量を取得する。パケット再生成部２４０は、取得した単位区間毎の再生データ量を、管理情報記憶部１１０の動画解析情報に登録する。
【０２３０】
（Ｓ９５）パケット受信部２３０は、配信される動画データの全パケットの受信が終了したかを判定する。受信が終了していない場合、処理をステップＳ９３に進める。この場合、次のパケットの受信が待機される。一方、受信が終了した場合、処理が終了する。
【０２３１】
なお、図示しないが、パケット送信部２５０は、送信先の他の端末装置からパケット要求を受信するたびに、送信バッファ内の先頭パケットを他の端末装置へ送信する。パケットが送信されると、そのパケットは送信バッファから消去される。
【０２３２】
図２７は、パケットの再生成処理の例を示すフローチャートである。図２７の処理は、図２６の処理と並行して、同じ端末装置２００により実行される。以下、図２７に示す処理をステップ番号に沿って説明する。
【０２３３】
（Ｓ１０１）送信バッファに格納される各パケットは、動画データの受信開始から通し番号が付加されることで管理される。パケット再生成部２４０は、ｉ番目のパケットを処理の対象として選択する。変数ｉの初期値は１である。
【０２３４】
（Ｓ１０２）パケット再生成部２４０は、管理情報記憶部２７０の動画解析情報のうち、ステップＳ１０１で選択したパケット内の動画データに含まれる単位区間の情報を参照する。パケット再生成部２４０は、単位区間の情報に基づいて、処理対象のパケット内の動画データに、データ量がステップＳ９２で算出した閾値を超える単位区間が２以上連続して存在しているかを判定する。閾値を超える単位区間が２以上連続して存在している場合、処理をステップＳ１０３へ進める。閾値を超える単位区間が２以上連続して存在していない場合、処理をステップＳ１０５へ進める。後者の場合、処理対象のパケットは、そのままの状態で送信バッファに残る。
【０２３５】
（Ｓ１０３）パケット再生成部２４０は、送信バッファ内のパケットのうち、ステップＳ１０１で選択したパケットとその前後のパケットを、再分割の対象となるパケットと判定する。
【０２３６】
なお、送信バッファに処理対象のパケットの前のパケットが存在しない場合（例えば、前のパケットが送信済みの場合）、処理対象のパケットとその後のパケットとが再分割の対象となる。また、送信バッファに処理対象のパケットの後のパケットが存在しない場合（例えば、処理対象のパケットが最終パケットの場合）、処理対象のパケットとその前のパケットとが再分割の対象となる。
【０２３７】
（Ｓ１０４）パケット再生成部２４０は、ステップＳ１０３で再分割の対象としたパケット内の動画データを合成する。パケット再生成部２４０は、図２６のステップＳ９１で取得した有効帯域幅の情報と、管理情報記憶部２７０の動画解析情報に基づいて、合成した動画データを図２４のステップＳ７７８と同様の方法で分割し直す。
【０２３８】
すなわち、パケット再生成部２４０は、再生区間の再生データ量が、その再生区間の再生時間以内で送信可能なデータ量以下となるように、合成した動画データに対して再生区間を設定する。そして、パケット再生成部２４０は、設定された再生区間毎の動画データを個別のパケットに格納することで、パケットを再生成する。パケット再生成部２４０は、送信バッファに記憶された、ステップＳ１０３で再分割の対象としたパケットを、再生成したパケットによって置き換える。
【０２３９】
（Ｓ１０５）パケット再生成部２４０は、配信される動画データについての全パケットを処理対象として選択済みかを判定する。選択済みでない場合、処理をステップＳ１０６へ進める。選択済みである場合、処理が終了する。
【０２４０】
（Ｓ１０６）パケット再生成部２４０は、変数ｉを１だけインクリメントする。そして、処理をステップＳ１０１に進める。
以上説明した第２の実施の形態のデータ配信システム１によれば、パケット化した動画をデイジーチェーン方式により接続された配信経路を用いて配信する際、その配信経路上の各端末装置は、転送先の他の端末装置との間の有効帯域幅と、分割された各動画に含まれる各単位区間データのデータ量とに基づいて、動画データをパケット化し直す。これにより、パケット化された動画データを転送する際に発生するパケットの欠落や遅延のリスクを軽減することができる。よって、転送先の各端末装置は、配信された動画を連続的に再生することができる。
【０２４１】
また、デイジーチェーン方式により接続された配信経路を用いて動画を配信することにより、動画を配信する際、配信装置や１つの端末装置に処理負荷が集中しなくなり、パケットの欠落や遅延のリスクを軽減できる。
【０２４２】
また、配信経路上の各端末装置は、転送先の他の端末装置との間の有効帯域幅と、分割された各動画に含まれる各単位区間データのデータ量とに基づいて、受信した複数のパケットに含まれる動画のうち、パケット化し直す動画を判定する。これにより、動画データにおける必要な箇所のみパケット化し直されるようになり、動画データを転送する各端末装置の処理負荷が下がる。
【０２４３】
また、配信装置１００は、配信装置１００と各端末装置との間の有効帯域幅、および端末装置の相互間の有効帯域幅を取得し、取得した有効帯域幅に基づいてデイジーチェーン方式による配信経路を決定する。これにより、通信品質の高い配信経路で動画データを配信することができるようになるため、動画データの配信中に配信経路上で発生するパケットの欠落や遅延のリスクを抑制できる。
【０２４４】
また、配信装置１００は、決定した配信経路を示す情報を動画の配信先となる各端末装置へ送信する。これにより、動画の配信先となる各端末装置は、パケット化された動画の転送先を認識することができる。
【０２４５】
なお、前述のように、第１の実施の形態の情報処理は、配信装置１０や再生装置２０ａ，２０ｂにプログラムを実行させることで実現でき、第２の実施の形態の情報処理は、配信装置１００や端末装置２００，２００ａ，２００ｂ，２００ｃや認証サーバ３００にプログラムを実行させることで実現できる。このようなプログラムは、コンピュータ読み取り可能な記録媒体（例えば、記録媒体５３）に記録しておくことができる。記録媒体としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、ＦＤおよびＨＤＤが含まれる。光ディスクには、ＣＤ、ＣＤ−Ｒ（Recordable）／ＲＷ（Rewritable）、ＤＶＤおよびＤＶＤ−Ｒ／ＲＷが含まれる。
【０２４６】
プログラムを流通させる場合、例えば、当該プログラムを記録した可搬記録媒体が提供される。また、プログラムを他のコンピュータの記憶装置に格納しておき、ネットワーク３０経由でプログラムを配布することもできる。コンピュータは、例えば、可搬記録媒体に記録されたプログラムまたは他のコンピュータから受信したプログラムを、記憶装置（例えば、ＨＤＤ１０３）に格納し、当該記憶装置からプログラムを読み込んで実行する。ただし、可搬記録媒体から読み込んだプログラムを直接実行してもよく、他のコンピュータからネットワーク３０を介して受信したプログラムを直接実行してもよい。また、上記の情報処理の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ、ＰＬＤ（Programmable Logic Device）等の電子回路で実現することも可能である。
【０２４７】
以上の第１および第２の実施の形態を含む実施の形態に関し、さらに以下の付記を開示する。
（付記１）  可変ビットレートのストリーミングデータがパケット化されて配信装置から複数の再生装置へ配信され、配信された前記ストリーミングデータが前記複数の再生装置のうち一の再生装置から他の１以上の再生装置へ転送される配信システムにおける配信方法であって、
前記複数の再生装置のうち、受信した前記ストリーミングデータを他の再生装置へ転送する再生装置が、
転送先の前記他の再生装置との間の通信品質を計測し、
受信した前記ストリーミングデータにおける単位再生時間毎の再生データ量と、計測された前記通信品質とに基づいて、受信した前記ストリーミングデータをパケットに分割し直して転送する、
ことを特徴とする配信方法。
【０２４８】
（付記２）  前記配信装置は、当該配信装置と前記複数の再生装置のそれぞれとの間の通信品質と、前記複数の再生装置それぞれの相互間の通信品質とに基づいて、前記ストリーミングデータが前記複数の再生装置の間でデイジーチェーン方式により転送されるように、前記ストリーミングデータの配信経路を決定する、
ことを特徴とする付記１記載の配信方法。
【０２４９】
（付記３）  可変ビットレートのストリーミングデータをパケット化された状態で受信し、受信した前記ストリーミングデータを再生すると共に他の再生装置へ転送する再生装置において、
前記他の再生装置との間の通信品質を計測する計測部と、
受信した前記ストリーミングデータにおける単位再生時間毎の再生データ量と、計測された前記通信品質とに基づいて、受信した前記ストリーミングデータをパケットに分割し直して転送する転送制御部と、
を有することを特徴とする再生装置。
【０２５０】
（付記４）  前記転送制御部は、分割し直したパケットに含まれる前記ストリーミングデータが、当該パケットに含まれる前記ストリーミングデータを再生する際の再生時間以下の時間で送信されるように、受信した前記ストリーミングデータをパケットに分割し直すことを特徴とする付記３記載の再生装置。
【０２５１】
（付記５）  前記転送制御部は、受信したパケットに含まれる前記ストリーミングデータについての単位再生時間毎の再生データ量と、計測された前記通信品質に応じた判定閾値との比較に基づいて、前記受信したパケットに含まれる前記ストリーミングデータを別のパケットに分割し直すかを判定することを特徴とする付記３記載の再生装置。
【０２５２】
（付記６）  前記転送制御部は、前記受信したパケットに含まれる前記ストリーミングデータを別のパケットに分割し直すと判定した場合、前記受信したパケットおよびその前後の少なくとも一方のパケットに含まれる前記ストリーミングデータを複数の分割区間に分割し直して、前記複数の分割区間それぞれに含まれる前記ストリーミングデータを個別のパケットに格納して送信し、前記複数の分割区間に分割する際に、一の分割区間に含まれる前記ストリーミングデータが、当該一の分割区間に含まれる前記ストリーミングデータを再生する際の再生時間以下の時間で送信されるように前記複数の分割区間を決定することを特徴とする付記５記載の再生装置。
【０２５３】
（付記７）  ストリーミングデータを複数の再生装置へ配信する配信装置において、
前記配信装置と前記複数の再生装置のそれぞれとの間の通信品質と、前記複数の再生装置それぞれの相互間の通信品質とを取得する取得部と、
取得された前記各通信品質に基づいて、前記ストリーミングデータが前記複数の再生装置の間でデイジーチェーン方式により転送されるように、前記ストリーミングデータの配信経路を決定する経路制御部と、
を有することを特徴とする配信装置。
【０２５４】
（付記８）  前記経路制御部は、決定された前記配信経路を示す情報を、前記複数の再生装置それぞれに通知することを特徴とする付記７記載の配信装置。
（付記９）  前記経路制御部は、前記複数の再生装置をデイジーチェーン方式で接続して得られる複数の配信経路パターンのうち、配信経路における装置間の通信品質を示す数値の合計値が最大となる配信経路パターンを、前記ストリーミングデータの前記配信経路に決定することを特徴とする付記７または８のいずれかに記載の配信装置。
【０２５５】
（付記１０）  可変ビットレートのストリーミングデータをパケット化された状態で受信し、受信した前記ストリーミングデータを再生すると共に他の再生装置へ転送するコンピュータが実行する転送制御プログラムにおいて、
前記コンピュータに、
前記他の再生装置との間の通信品質を計測し、
受信した前記ストリーミングデータにおける単位再生時間毎の再生データ量と、計測された前記通信品質とに基づいて、受信した前記ストリーミングデータをパケットに分割し直して転送する、
処理を実行させることを特徴とする転送制御プログラム。
【０２５６】
（付記１１）  前記ストリーミングデータをパケットに分割し直す際、分割し直したパケットに含まれる前記ストリーミングデータが、当該パケットに含まれる前記ストリーミングデータを再生する際の再生時間以下の時間で送信されるように分割し直すことを特徴とする付記１０記載の転送制御プログラム。
【０２５７】
（付記１２）  前記パケット化された状態の前記ストリーミングデータを受信したとき、前記受信したパケットに含まれる前記ストリーミングデータについての単位再生時間毎の再生データ量と、計測された前記通信品質に応じた判定閾値との比較に基づいて、前記受信したパケットに含まれる前記ストリーミングデータを別のパケットに分割し直すかを判定することを特徴とする付記１０記載の転送制御プログラム。
【０２５８】
（付記１３）  前記受信したパケットに含まれる前記ストリーミングデータを別のパケットに分割し直すと判定した場合、前記受信したパケットおよびその前後の少なくとも一方のパケットに含まれる前記ストリーミングデータを複数の分割区間に分割し直して、前記複数の分割区間それぞれに含まれる前記ストリーミングデータを個別のパケットに格納して送信し、前記複数の分割区間に分割する際に、一の分割区間に含まれる前記ストリーミングデータが、当該一の分割区間に含まれる前記ストリーミングデータを再生する際の再生時間以下の時間で送信されるように前記複数の分割区間を決定することを特徴とする付記１２記載の転送制御プログラム。
【０２５９】
（付記１４）  ストリーミングデータを複数の再生装置へ配信するコンピュータが実行する配信制御プログラムにおいて、
前記コンピュータに、
前記コンピュータと前記複数の再生装置のそれぞれとの間の通信品質と、前記複数の再生装置それぞれの相互間の通信品質とを取得し、
取得された前記各通信品質に基づいて、前記ストリーミングデータが前記複数の再生装置の間でデイジーチェーン方式により転送されるように、前記ストリーミングデータの配信経路を決定する、
処理を実行させることを特徴とする配信制御プログラム。
【０２６０】
（付記１５）  前記配信経路を決定したとき、決定された前記配信経路を示す情報を、前記複数の再生装置それぞれに通知することを特徴とする付記１４記載の配信制御プログラム。
【０２６１】
（付記１６）  前記配信経路を決定する際、前記複数の再生装置をデイジーチェーン方式で接続して得られる複数の配信経路パターンのうち、配信経路における装置間の通信品質を示す数値の合計値が最大となる配信経路パターンを、前記ストリーミングデータの前記配信経路に決定することを特徴とする付記１４または１５のいずれかに記載の配信制御プログラム。
【符号の説明】
【０２６２】
１０  配信装置
１１  ストリーミングデータ
２０ａ，２０ｂ  再生装置
Ｒ１〜Ｒ６  再生区間
【図１】
2015177344.tif 000003
【図２】
2015177344.tif 000004
【図３】
2015177344.tif 000005
【図４】
2015177344.tif 000006
【図５】
2015177344.tif 000007
【図６】
2015177344.tif 000008
【図７】
2015177344.tif 000009
【図８】
2015177344.tif 000010
【図９】
2015177344.tif 000011
【図１０】
2015177344.tif 000012
【図１１】
2015177344.tif 000013
【図１２】
2015177344.tif 000014
【図１３】
2015177344.tif 000015
【図１４】
2015177344.tif 000016
【図１５】
2015177344.tif 000017
【図１６】
2015177344.tif 000018
【図１７】
2015177344.tif 000019
【図１８】
2015177344.tif 000020
【図１９】
2015177344.tif 000021
【図２０】
2015177344.tif 000022
【図２１】
2015177344.tif 000023
【図２２】
2015177344.tif 000024
【図２３】
2015177344.tif 000025
【図２４】
2015177344.tif 000026
【図２５】
2015177344.tif 000027
【図２６】
2015177344.tif 000028
【図２７】
2015177344.tif 000029