(57)【特許請求の範囲】
【請求項１】
Ｐ２Ｐネットワークにより、上流の端末装置から映像ストリームのデータを受信しバッファメモリに蓄積して再生し、前記バッファメモリから映像ストリームのデータを読み出して下流の端末装置へ送信する端末装置において、
前記上流の端末装置のバッファメモリに蓄積された映像ストリームのデータを識別するバッファマップを取得するためのバッファマップ要求を前記上流の端末装置へ送信し、前記上流の端末装置から前記バッファマップを取得するバッファマップ取得手段と、
前記バッファマップ取得手段により取得されたバッファマップに基づいて、前記映像ストリームのデータを通常レートにて取得するためのデータ要求を前記上流の端末装置へ送信し、前記上流の端末装置から通常レートのデータを受信して前記バッファメモリに蓄積するデータ取得手段と、
前記バッファメモリに蓄積された映像ストリームのデータが所定量以下になった場合、前記映像ストリームのデータを通常レートよりも低速のレートにて取得するための低レートデータ要求を、前記映像ストリームのデータを蓄積しているサーバへ送信し、前記サーバから低レートのデータを受信して前記バッファメモリに蓄積し、前記バッファメモリに蓄積された映像ストリームのデータをパッチングするパッチング手段と、
前記サーバとの間の通信回線の速度を測定し、前記速度に基づいて、前記サーバとの間の通信回線が混雑しているか否かを判定し、前記パッチング手段により前記サーバから低レートのデータを取得しているときの前記サーバとの間の通信回線の速度を測定し、前記速度に基づいて、前記低レートのデータを取得しているときの前記サーバとの間の通信回線が混雑しているか否かを判定する回線状況判定手段とを備え、
前記パッチング手段は、
前記バッファメモリに蓄積された映像ストリームのデータが所定量以下になり、かつ、前記通信回線が混雑していない場合、前記映像ストリームのデータを通常レートにて取得するためのデータ要求を前記サーバへ送信し、前記サーバから通常レートのデータを受信して前記バッファメモリに蓄積し、前記バッファメモリに蓄積された映像ストリームのデータが所定量以下になり、かつ、前記通信回線が混雑している場合、前記映像ストリームのデータを通常レートよりも低速のレートにて取得するための低レートデータ要求を前記サーバへ送信し、前記サーバから低レートのデータを受信して前記バッファメモリに蓄積し、
さらに、前記サーバから低レートのデータを受信している場合に、前記低レートのデータを取得しているときの前記サーバとの間の通信回線が混雑していないとき、前記低レートデータ要求を前記サーバへ送信し、前記サーバから低レートのデータを受信して前記バッファメモリに蓄積し、前記低レートのデータを取得しているときの前記サーバとの間の通信回線が混雑しているとき、前記映像ストリームにおける音声データを取得するための音声データ要求を前記サーバへ送信し、前記サーバから音声データを受信して前記バッファメモリに蓄積する、ことを特徴とする端末装置。
【請求項２】
請求項１に記載の端末装置において、
前記低レートのデータを、前記映像ストリームにおける通常レートよりも低速の映像データ及び音声データとし、または、前記映像ストリームにおける通常レートよりも低速の映像データのみとする、ことを特徴とする端末装置。
【請求項３】
請求項１に記載の端末装置とサーバとを含む通信システムであって、
前記サーバは、
前記映像ストリームにおける通常レートのデータ、及び前記通常レートのデータに対応する低レートのデータを蓄積する記憶装置と、
前記通常レートのデータを低レートのデータに変換し、前記低レートのデータを前記記憶装置に蓄積する映像データ変換手段と、
前記端末装置から低レートデータ要求を受信し、前記記憶装置から低レートデータ要求に対応する低レートのデータを読み出し、前記低レートのデータを前記端末装置へ送信する送受信手段と、
を備えたことを特徴とする通信システム。
【請求項４】
コンピュータを、請求項１または２に記載の端末装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ライブ映像配信ネットワーク、アプリケーションレイヤマルチキャスト技術等におけるＰ２Ｐネットワークサービスに関し、特に、多数の利用者にシームレスなサービスを提供するＰ２Ｐネットワークサービスに用いる端末装置、通信システム及びプログラムに関するものである。
【背景技術】
【０００２】
従来、ライブ映像等を配信するＰ２Ｐネットワークサービスが知られている。Ｐ２Ｐネットワークサービスは、ネットワーク上で対等な関係にある端末装置間を相互に接続することにより、ライブ映像等のデータを送受信する通信サービスをいう。Ｐ２Ｐネットワークサービスを実現するための端末装置間の接続構造の例として、メッシュ型、ツリー型があり、端末装置間でデータを中継する手法の例として、プル型、プッシュ型がある。以下に説明するＰ２Ｐネットワークは、接続構造がメッシュ型であり、データ中継手法がプル型であるものとして説明する。
【０００３】
図１９（１）は、Ｐ２Ｐネットワークにおけるメッシュ型接続構造を説明する図であり、図１９（２）は、Ｐ２Ｐネットワークにおけるプル型中継手法を説明する図である。図１９（１）を参照して、メッシュ型接続構造は、上流の端末装置と下流の端末装置との間の接続数の関係が、ｍ：ｎ（ｍ，ｎは正の整数）となる構造をいう。このようなメッシュ型接続構造のＰ２Ｐネットワークにおいて、例えば、波長分割多重伝送を行うことで、安定した通信及びスケーラビリティを実現する手法が提案されている（例えば、特許文献１を参照）。
【０００４】
図１９（２）を参照して、プル型中継手法は、下流の端末装置からの要求に従って上流の端末装置がデータを送信する手法である。具体的には、端末装置１００Ａ，１００Ｂ，１００Ｃを含むＰ２Ｐネットワークの通信システムにおいて、以下のステップＳ１〜ステップＳ３の処理を行うことにより、上流の端末装置１００Ａ，１００Ｂが保持しているデータが下流の端末装置１００Ｃへ送信される。まず、上流の端末装置１００Ａは、保持しているデータのシーケンス番号（データチャンク（ＤＣ）番号）をバッファマップとして下流の端末装置１００Ｃへ通知する（ステップＳ１）。ＤＣについては後述する。端末装置１００Ｃは、端末装置１００Ａからバッファマップを受信し、バッファマップが示すシーケンス番号に基づいて、保持していないデータを取得するための要求を端末装置１００Ａへ通知する（ステップＳ２）。そして、端末装置１００Ａは、端末装置１００Ｃからの要求に従って、要求されたデータを端末装置１００Ｃへ送信する（ステップＳ３）。例えば、端末装置１００Ｃは、端末装置１００Ａ，１００Ｂから取得したバッファマップが示すシーケンス番号に基づいて、データ「１」「３」を取得するための要求を端末装置１００Ａへ送信することでデータ「１」「３」を受信し、データ「２」「４」を取得するための要求を端末装置１００Ｂへ送信することでデータ「２」「４」を受信する。これにより、端末装置１００Ｃは、上流の端末装置１００Ａ，１００Ｂからデータ「１」「２」「３」「４」を取得することができる。
【０００５】
また、端末装置１００Ｃは、自らが保持しているデータのシーケンス番号をバッファマップとして、図示しない下流の端末装置へ通知する。そして、端末装置１００Ｃは、下流の端末装置から要求に従って、要求されたデータを下流の端末装置へ送信する。これにより、端末装置１００Ｃは、下流の端末装置へデータを送信することができる。
【０００６】
このように、Ｐ２Ｐネットワークは、ライブ映像等の配信サービスを受ける複数の端末装置により構成されるＰ２Ｐグループを形成し、１台の端末装置に対し、上流側に複数の端末装置を接続し、下流側に複数の端末装置を接続する。１台の端末装置は、複数の上流の端末装置からデータを取得し、取得したデータを中継することで複数の下流の端末装置へデータを提供する。このようなＰ２Ｐネットワークの通信システムによれば、端末装置は、ライブ映像等を配信する配信サーバから直接的にデータを受信することなく、上流の端末装置からデータを受信するから、効率的な配信サービスを実現することができる。
【０００７】
図２０は、従来のＰ２Ｐネットワークにおける処理の概要を説明する図である。このＰ２Ｐネットワークを含む通信システムは、ライブ映像等のデータを配信する図示しない配信サーバ、配信サーバからのデータを中継する複数の端末装置、及び、配信サーバからのデータを蓄積し、Ｐ２Ｐネットワークに新たに参加する端末装置へ視聴ポイント及びデータを送信するパッチングサーバ１０３を備えて構成される。このようなＰ２Ｐネットワークに新たに端末装置１００Ｃが参加した場合、端末装置１００Ｃは、まず、パッチングサーバ３から視聴ポイント及びデータを取得する。そして、端末装置１００Ｃは、上流の端末装置１００Ａ，１００Ｂのバッファメモリに蓄積されているライブ映像等のデータに関する情報が示されたバッファマップＡ，Ｂを取得する。そして、端末装置１００Ｃは、このバッファマップＡ，Ｂに基づいて、上流の端末装置１００Ａ，１００Ｂへデータ要求を送信し、データ要求に対応するデータを取得して自らのバッファメモリに蓄積し、データを再生する。
【０００８】
ここで、バッファマップは、バッファメモリに蓄積されている映像データの状態（データチャンクの蓄積状態）を示す保管情報であり、データチャンク番号を識別可能な情報からなる。データチャンク（ＤＣ）とは、映像データを所定のサイズで分割したときのデータをいい、例えば１秒間の映像データをいう。データチャンク番号（ＤＣ番号）とは、映像データを所定のサイズ毎のＤＣに時間軸上で順番に分割したときのＤＣの番号をいい、映像データのＤＣを識別するためのシーケンシャルな番号をいう。
【０００９】
いま、端末装置１００Ａのバッファメモリには、ＤＣ８〜ＤＣ２２が蓄積され、端末装置１００Ｂのバッファメモリにも、ＤＣ８〜ＤＣ２２が蓄積され、端末装置１００Ｃのバッファメモリには、ＤＣ８〜ＤＣ１９が蓄積されているものとする。
【００１０】
端末装置１００Ｃは、所定の時間間隔にて、上流の端末装置１００Ａ，１００ＢからバッファマップＡ，Ｂを取得する。取得した最新のバッファマップＡには、端末装置１００ＡのバッファメモリにＤＣ８〜ＤＣ２２が蓄積されていることが示され、取得したバッファマップＢには、端末装置１００ＢのバッファメモリにＤＣ８〜ＤＣ２２が蓄積されていることが示されている。端末装置１００Ｃは、バッファマップＡ，Ｂに基づいて、ＤＣ２０，ＤＣ２１を端末装置１００Ａから取得することを決定すると共に、ＤＣ２２を端末装置１００Ｂから取得することを決定する。バッファマップＡ，Ｂに基づいてＤＣの取得先を決定する手法として、例えばランダムに取得先を決定する。端末装置１００Ｃは、ＤＣ２０，ＤＣ２１を取得するためのデータ要求を端末装置１００Ａへ送信し、端末装置１００ＡからＤＣ２０，ＤＣ２１を受信してバッファメモリに蓄積する。そして、端末装置１００Ｃは、ＤＣ２２を取得するためのデータ要求を端末装置１００Ｂへ送信し、端末装置１００ＢからＤＣ２２を受信してバッファメモリに蓄積する。これにより、端末装置１００Ｃのバッファメモリには、図２０に示すように、ＤＣ８〜ＤＣ２２が蓄積されることになる。尚、視聴ポイント及び再生スレッショルドについては後述する。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】国際公開第２００６／０４６５７６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、端末装置１００Ｃが接続された回線は、必ずしも十分な速度を有するとは限らない。すなわち、端末装置１００Ｃは、バッファマップＡ，Ｂを取得した後、データ要求を上流の端末装置１００Ａ，１００Ｂへ送信したとしても、このデータ要求に対するデータを、すぐに取得できるとは限らない。そのため、回線が混雑している場合には、端末装置１００Ｃは、データを取得するのが遅れることになる。また、上流の端末装置１００Ａ，１００Ｂは、データ要求を受信するのが遅くなり、データ要求に対応するデータが既にバッファメモリから消失していることもあり得る。この場合、端末装置１００Ｃは、上流の端末装置１００Ａ，１００Ｂからデータを取得することができなくなる。その結果、配信サービスを受ける利用者は、再生された映像がフリーズする等して、継続したサービスを受けることができないという問題があった。
【００１３】
一方で、上流の端末装置１００Ａ，１００Ｂからデータを取得することができない場合、端末装置１００Ｃは、映像データを蓄積しているパッチングサーバ１０３からデータを取得することが考えられる。しかしながら、回線が混雑すると、多くの端末装置がデータ要求をパッチングサーバ１０３へ送信するから、複数のデータ要求がパッチングサーバ１０３に集中することになる。この場合、端末装置１００Ｃは、パッチングサーバ１０３からもデータを取得することが困難になり、利用者は、継続したサービスを受けることができない。
【００１４】
そこで、本発明は前記課題を解決するためになされたものであり、その目的は、Ｐ２Ｐネットワークを含む通信システムにおいて、通信回線が混雑している場合であっても、配信サービスを継続させることが可能な端末装置、通信システム及びプログラムを提供することにある。
【課題を解決するための手段】
【００１５】
前記課題を解決するため、本発明による請求項１の端末装置は、Ｐ２Ｐネットワークにより、上流の端末装置から映像ストリームのデータを受信しバッファメモリに蓄積して再生し、前記バッファメモリから映像ストリームのデータを読み出して下流の端末装置へ送信する端末装置において、前記上流の端末装置のバッファメモリに蓄積された映像ストリームのデータを識別するバッファマップを取得するためのバッファマップ要求を前記上流の端末装置へ送信し、前記上流の端末装置から前記バッファマップを取得するバッファマップ取得手段と、前記バッファマップ取得手段により取得されたバッファマップに基づいて、前記映像ストリームのデータを通常レートにて取得するためのデータ要求を前記上流の端末装置へ送信し、前記上流の端末装置から通常レートのデータを受信して前記バッファメモリに蓄積するデータ取得手段と、前記バッファメモリに蓄積された映像ストリームのデータが所定量以下になった場合、前記映像ストリームのデータを通常レートよりも低速のレートにて取得するための低レートデータ要求を、前記映像ストリームのデータを蓄積しているサーバへ送信し、前記サーバから低レートのデータを受信して前記バッファメモリに蓄積し、前記バッファメモリに蓄積された映像ストリームのデータをパッチングするパッチング手段と、前記サーバとの間の通信回線の速度を測定し、前記速度に基づいて、前記サーバとの間の通信回線が混雑しているか否かを判定し、前記パッチング手段により前記サーバから低レートのデータを取得しているときの前記サーバとの間の通信回線の速度を測定し、前記速度に基づいて、前記低レートのデータを取得しているときの前記サーバとの間の通信回線が混雑しているか否かを判定する回線状況判定手段とを備え、前記パッチング手段が、前記バッファメモリに蓄積された映像ストリームのデータが所定量以下になり、かつ、前記通信回線が混雑していない場合、前記映像ストリームのデータを通常レートにて取得するためのデータ要求を前記サーバへ送信し、前記サーバから通常レートのデータを受信して前記バッファメモリに蓄積し、前記バッファメモリに蓄積された映像ストリームのデータが所定量以下になり、かつ、前記通信回線が混雑している場合、前記映像ストリームのデータを通常レートよりも低速のレートにて取得するための低レートデータ要求を前記サーバへ送信し、前記サーバから低レートのデータを受信して前記バッファメモリに蓄積し、さらに、前記サーバから低レートのデータを受信している場合に、前記低レートのデータを取得しているときの前記サーバとの間の通信回線が混雑していないとき、前記低レートデータ要求を前記サーバへ送信し、前記サーバから低レートのデータを受信して前記バッファメモリに蓄積し、前記低レートのデータを取得しているときの前記サーバとの間の通信回線が混雑しているとき、前記映像ストリームにおける音声データを取得するための音声データ要求を前記サーバへ送信し、前記サーバから音声データを受信して前記バッファメモリに蓄積する、ことを特徴とする。
【００１９】
また、本発明による請求項２の端末装置は、請求項１に記載の端末装置において、前記低レートのデータを、前記映像ストリームにおける通常レートよりも低速の映像データ及び音声データとし、または、前記映像ストリームにおける通常レートよりも低速の映像データのみとする、ことを特徴とする。
【００２４】
また、本発明による請求項３の通信システムは、請求項１に記載の端末装置とサーバとを含む通信システムであって、前記サーバが、前記映像ストリームにおける通常レートのデータ、及び前記通常レートのデータに対応する低レートのデータを蓄積する記憶装置と、前記通常レートのデータを低レートのデータに変換し、前記低レートのデータを前記記憶装置に蓄積する映像データ変換手段と、前記端末装置から低レートデータ要求を受信し、前記記憶装置から低レートデータ要求に対応する低レートのデータを読み出し、前記低レートのデータを前記端末装置へ送信する送受信手段と、を備えたことを特徴とする。
【００２６】
また、本発明による請求項１２のプログラムは、コンピュータを、請求項１または２に記載の端末装置として機能させることを特徴とする。
【発明の効果】
【００２７】
以上のように、本発明によれば、端末装置は、途切れることなくデータを取得することができるから、通信回線が混雑している場合であっても、配信サービスを継続させることが可能となる。したがって、再生された映像はフリーズしないから、端末装置を用いる利用者は、継続した配信サービスを受けることができる。
【図面の簡単な説明】
【００２８】
【図１】本発明の実施形態によるＰ２Ｐネットワークを含む通信システムの全体構成を示す概略図である。
【図２】本発明の第１の実施形態（実施例１）におけるＰ２Ｐネットワークの処理の概要を説明する図である。
【図３】実施例１による端末装置の構成を示すブロック図である。
【図４】送受信手段の構成を示すブロック図である。
【図５】バッファメモリに蓄積されるデータの量と、視聴ポイント、パッチングスレッショルド及び再生スレッショルドとの関係を説明する図である。
【図６】視聴ポイント及び再生スレッショルドを基準位置としたデータ再生処理を示すフローチャートである。
【図７】パッチングスレッショルドを基準位置とした通常のパッチング処理を示すフローチャートである。
【図８】実施例１による端末装置の処理を示すフローチャートである。
【図９】図８に示す映像データ取得処理（ステップＳ８０４）の詳細を示すフローチャートである。
【図１０】図８に示す映像データ送信処理（ステップＳ８０５）の詳細を示すフローチャートである。
【図１１】ネットワーク参加処理を説明する図である。
【図１２】実施例１によるパッチングサーバの構成を示すブロック図である。
【図１３】パッチングサーバの処理を示すフローチャートである。
【図１４】本発明の第２の実施形態（実施例２）におけるＰ２Ｐネットワークの処理の概要を説明する図である。
【図１５】実施例２による端末装置の構成を示すブロック図である。
【図１６】実施例２における映像データ取得処理（ステップＳ８０４）の詳細を示すフローチャートである。
【図１７】実施例２における映像データ送信処理（ステップＳ８０５）の詳細を示すフローチャートである。
【図１８】本発明の第３の実施形態（実施例３）におけるＰ２Ｐネットワークの処理の概要を説明する。
【図１９】（１）は、Ｐ２Ｐネットワークにおけるメッシュ型接続構造を説明する図である。（２）は、Ｐ２Ｐネットワークにおけるプル型中継手法を説明する図である。
【図２０】従来のＰ２Ｐネットワークにおける処理の概要を説明する図である。
【図２１】実施例２の変形例による端末装置の構成を示すブロック図である。
【図２２】実施例２の変形例におけるバッファメモリを説明する図である。
【図２３】映像データ分離／結合手段の処理を説明する図である。
【図２４】実施例２の変形例における映像データ取得処理（ステップＳ８０４）の詳細を示すフローチャートである。
【図２５】実施例２の変形例における映像データ送信処理（ステップＳ８０５）の詳細を示すフローチャートである。
【発明を実施するための形態】
【００２９】
以下、本発明を実施するための形態について図面を用いて詳細に説明する。以下に説明する実施例１〜３は、Ｐ２Ｐネットワークを構成する複数の端末装置、ライブ映像等の映像ストリームを配信する配信サーバ、及び、端末装置からの要求に従って映像データを送信するパッチングサーバを含む通信システムを対象とする。実施例１の端末装置は、パッチング処理（詳細については後述する）を行う際に、パッチングサーバとの間の通信回線が混雑しているとき、パッチングサーバから低レート（通常レートよりも低速のレート）の映像データを取得し、通信回線が混雑していないとき、通常レートの映像データを取得することを特徴とする。実施例２の端末装置は、Ｐ２Ｐネットワークにより上流の端末装置から映像データを取得する際に、上流の端末装置との間の通信回線が混雑しているとき、上流の端末装置から低レートの映像データを取得し、通信回線が混雑していないとき、通常レートの映像データを取得することを特徴とする。実施例３の端末装置は、実施例２において、低レートの映像データの代わりに音声データのみを取得することを特徴とする。これにより、端末装置は、途切れることなく映像ストリームのデータを取得することができ、通信回線が混雑している場合であっても、配信サービスを継続させることが可能となる。
【００３０】
〔Ｐ２Ｐネットワークの通信システム〕
図１は、本発明の実施形態によるＰ２Ｐネットワークを含む通信システムの全体構成を示す概略図である。この通信システム５は、図１９（１）（２）に示したメッシュ型接続構造及びプル型中継手法のＰ２Ｐネットワークを構成し、複数の端末装置（以下、「ノード」という。）１Ａ，１Ｂ，１Ｃ，・・・（総称して「ノード１」という。）、配信サーバ２、パッチングサーバ３及びディレクトリサーバ４を備えている。これらの装置は、インターネット等の通信回線を介して接続される。
【００３１】
ノード１は、Ｐ２Ｐネットワークにより、配信サーバ２から配信された映像ストリームのデータを、上流側に接続されたノード１（以下、「上流ノード１」という。）から受信して蓄積し、下流側に接続されたノード１（以下、「下流ノード１」という。）へ送信すると共に、蓄積したデータをデコードして再生する。また、ノード１は、蓄積している映像ストリームのデータが所定量以下になったときに行うパッチング処理の際に、パッチングサーバ３から映像ストリームのデータを受信する。パッチング処理については後述する。
【００３２】
配信サーバ２は、映像ストリームをエンコードし、エンコードした映像ストリームのデータをＤＣ毎に、Ｐ２Ｐネットワークによりそれぞれのノード１へ配信すると共に、パッチングサーバ３へ送信する。映像ストリームのデータには、映像データに加え音声データも含まれる。
【００３３】
パッチングサーバ３は、映像ストリームのデータを配信サーバ２から連続的に受信し、受信したデータに基づいて、現在の視聴ポイントを設定する。そして、パッチングサーバ３は、ノード１から視聴ポイント要求を受信し、設定した現在の視聴ポイントを、視聴ポイント要求を送信してきたノード１へ送信する。また、パッチングサーバ３は、ノード１からデータ要求を受信し、データ要求に対応した映像ストリームのデータを、データ要求を送信してきたノード１へ送信する。
【００３４】
ディレクトリサーバ４は、Ｐ２Ｐネットワークに参加しているノード１、配信サーバ２及びパッチングサーバ３のアドレス等の情報を管理する。ディレクトリサーバ４は、Ｐ２Ｐネットワークに新たに参加したノード１から当該ノード１に関する情報を受信し、通信システム５を構成する配信サーバ２及びパッチングサーバ３に関する情報、Ｐ２Ｐネットワークに参加している全てまたは一部のノード１に関する情報、並びに、上流ノード１に関する情報及び下流ノード１に関する情報を、新たに参加したノード１へ送信する。これにより、新たに参加したノード１は、配信サーバ２、パッチングサーバ３、上流ノード１及び下流ノード１との間で通信を行うことができる。
【００３５】
〔実施例１〕
まず、実施例１について説明する。実施例１のノード１は、蓄積している映像ストリームのデータが所定量以下になったときに行うパッチング処理の際に、パッチングサーバ３との間の回線が混雑しているとき、パッチングサーバ３から低レートの映像データを取得する例である。図２は、実施例１におけるＰ２Ｐネットワークの処理の概要を説明する図である。図２に示すように、ノード１Ｃの上流ノードがノード１Ａ，１Ｂであり、ノード１Ａ，１Ｂのバッファメモリには、ＤＣ８〜ＤＣ２２がそれぞれ蓄積され、ノード１Ｃのバッファメモリには、ＤＣ８〜ＤＣ１４が蓄積されているものとする。また、ノード１Ｃは、上流ノード１Ａ，１ＢからバッファマップＡ，Ｂを取得しているものとする。
【００３６】
ノード１Ｃは、パッチング処理の際に、パッチングサーバ３との間の回線状況をチェックし、この回線が混雑していることを判定すると、ＤＣ１５における低レートの映像データを取得するための低レートデータ要求をパッチングサーバ３へ送信し、パッチングサーバ３からＤＣ１５の低レートの映像データ（以下、「低レートデータ」という。）を受信し、ＤＣ１５の低レートデータをバッファメモリに蓄積する。同様に、ノード１Ｃは、パッチングサーバ３からＤＣ１６〜ＤＣ１９の低レートデータを受信してバッファメモリに蓄積する。ここで、ノード１Ｃは、バッファメモリに蓄積されたＤＣが視聴ポイント以下になった場合に、再生を停止するが、視聴ポイント要求をパッチングサーバ３へ送信し、パッチングサーバ３から視聴ポイントを受信し、視聴ポイント以降のＤＣを取得するための低レートデータ要求をパッチングサーバ３へ送信し、パッチングサーバ３からそのＤＣの低レートデータを受信することで、再生を継続する。
【００３７】
尚、ノード１Ｃは、視聴ポイント要求、及び当該視聴ポイントの低レートデータを取得するための低レートデータ要求をパッチングサーバ３へ送信し、パッチングサーバ３から視聴ポイント、及び当該視聴ポイントの低レートデータを取得するようにしてもよい。
【００３８】
そして、ノード１Ｃは、パッチング処理が終了すると、ＤＣ２０，ＤＣ２１について通常レートの映像データを取得するためのデータ要求をノード１Ａへ送信し、ノード１ＡからＤＣ２０，ＤＣ２１の通常レートの映像データ（以下、「通常レートデータ」という。）を受信してバッファメモリに蓄積する。また、ノード１Ｃは、ＤＣ２２について映像データを取得するためのデータ要求をノード１Ｂへ送信し、ノード１ＢからＤＣ２２のデータを受信してバッファメモリに蓄積する。
【００３９】
これにより、パッチング処理の際に、パッチングサーバ３との間の回線が混雑しているとき、パッチングサーバ３からノード１Ｃへ低レートの映像データが送信されるから、送信データ量が低減し、ノード１Ｃとパッチングサーバ３との間の輻輳を回避することができ、ノード１Ｃにおける映像データの再生は途切れることなく低遅延とすることができる。
【００４０】
（実施例１によるノードの構成）
実施例１によるノード１の構成について説明する。図３は、実施例１によるノード１の構成を示すブロック図である。このノード１は、送受信手段１０、バッファメモリ１１、再生手段１２、バッファマップ保存手段１３、バッファマップ作成手段１４及び回線状況管理（判定）手段１５を備えている。図３に示す構成は、図１に示した通信システム５に含まれるノード１Ａ，１Ｂ，１Ｃ，・・・に共通である。送受信手段１０は、配信サーバ２、パッチングサーバ３、ディレクトリサーバ４、上流ノード１及び下流ノード１との間で通信を行う。
【００４１】
図４は、図３に示した送受信手段１０の構成を示すブロック図である。送受信手段１０は、ネットワーク参加処理手段５１、バッファマップ取得手段５２、視聴ポイント取得手段５３、データ取得手段５４、パッチング手段５５、バッファマップ送信手段５６及びデータ送信手段５７等を備えている。
【００４２】
送受信手段１０のネットワーク参加処理手段５１は、当該ノード１がＰ２Ｐネットワークに新たに参加するときに、当該ノード１のアドレス等の情報を含む参加要求をディレクトリサーバ４へ送信する。これにより、ディレクトリサーバ４は、当該ノード１に関する情報を管理する。また、ネットワーク参加処理手段５１は、ディレクトリサーバ４から、Ｐ２Ｐネットワークに参加しているノード１に関する情報、配信サーバ２及びパッチングサーバ３に関する情報、並びに、上流ノード１に関する情報及び下流ノード１に関する情報を受信する。これにより、当該ノード１は、上流ノード１及び下流ノード１、配信サーバ２及びパッチングサーバ３との間で通信を行うことができる。
【００４３】
バッファマップ取得手段５２は、バッファマップ保存手段１３からの取得要求に基づいて、所定の時間間隔にて、バッファマップを取得するためのバッファマップ要求を上流ノード１へ送信し、バッファマップを上流ノード１から受信してバッファマップ保存手段１３に出力する。上流ノード１から受信したバッファマップは、バッファマップ保存手段１３によりバッファメモリ１１に保存され、所定の時間間隔にて更新される。
【００４４】
視聴ポイント取得手段５３は、当該ノード１がＰ２Ｐネットワークに参加したとき、または再生が停止したとき、視聴ポイントを取得するための視聴ポイント要求をパッチングサーバ３へ送信し、パッチングサーバ３から視聴ポイントを受信する。
【００４５】
データ取得手段５４は、視聴ポイント以降の未取得の映像データを取得するために、上流ノード１から取得したバッファマップをバッファメモリ１１から読み出し、バッファマップに基づいて、取得したいデータが蓄積されている上流ノード１（データの取得先）を特定し、データ要求を取得先の上流ノード１へ送信する。そして、データ取得手段５４は、取得先の上流ノード１からデータ要求に対応するデータを受信し、バッファメモリ１１に蓄積する。
【００４６】
パッチング手段５５は、パッチング処理の際に、回線状況管理手段１５によりパッチングサーバ３との間の回線が混雑していないと判定された場合、通常レートデータを取得するためのデータ要求をパッチングサーバ３へ送信し、回線が混雑していると判定された場合、低レートデータを取得するための低レートデータ要求をパッチングサーバ３へ送信する。そして、パッチング手段５５は、パッチングサーバ３から通常レートデータまたは低レートデータを受信し、バッファメモリ１１に蓄積する。
【００４７】
バッファマップ送信手段５６は、下流ノード１からバッファマップ要求を受信し、バッファマップ作成手段１４により作成された当該ノード１のバッファマップを、バッファマップ要求を送信してきた下流ノード１へ送信する。
【００４８】
データ送信手段５７は、下流ノード１からデータ要求を受信し、データ要求に対応したデータをバッファメモリ１１から読み出し、読み出したデータを、データ要求を送信してきた下流ノード１へ送信する。
【００４９】
図３に戻って、バッファメモリ１１には、映像データを所定のサイズに分割したＤＣがそのＤＣ番号と共に、時間軸上のシーケンシャル番号順に蓄積されている。また、バッファメモリ１１には、上流ノード１のバッファマップが保存されている。バッファメモリ１１の詳細については後述する。
【００５０】
再生手段１２は、バッファメモリ１１から視聴ポイントのデータを読み出して再生を行う。再生手段１２によるデータ再生処理の詳細については後述する。バッファマップ保存手段１３は、所定の時間間隔にて、上流ノード１のバッファマップを取得するための取得要求を送受信手段１０に出力し、送受信手段１０から上流ノード１のバッファマップを入力し、バッファメモリ１１に保存する。
【００５１】
バッファマップ作成手段１４は、所定の時間間隔にて、バッファメモリ１１に蓄積されたデータに基づいて、当該ノード１のバッファマップを作成し、作成したバッファマップを送受信手段１０に出力する。バッファマップ作成手段１４により作成されたバッファマップは、下流ノード１からのバッファマップ要求に従って送信される。
【００５２】
回線状況管理手段１５は、送受信手段１０を介して、パッチングサーバ３との間の回線状況（パッチングサーバ３から当該ノード１への回線状況）をチェックして回線速度を測定し、測定した回線速度が所定速度よりも低い場合、回線が混雑していると判定し、測定した回線速度が所定速度以上である場合、回線が混雑していないと判定し、回線状況を送受信手段１０に出力する。
【００５３】
（バッファメモリ）
図５は、バッファメモリ１１に蓄積されるデータの量と、視聴ポイント、パッチングスレッショルド及び再生スレッショルドとの関係を説明する図である。図５に示すように、バッファメモリ１１には、例えば、１４個のＤＣを蓄積する領域が確保されており、時間軸上に番号が若い順にＤＣが蓄積される。バッファメモリ１１は、新たなＤＣが蓄積されるときに、最も古いＤＣが廃棄される。図５の例は、バッファメモリ１１にＤＣ９〜ＤＣ２２が蓄積されており、新たなＤＣ２２が蓄積されたことにより、最も古いＤＣ８が廃棄されたことを示している。
【００５４】
また、バッファメモリ１１には、視聴ポイントを基準位置にして、これよりも番号が新しい方、すなわちこれから視聴するデータの所定位置にパッチングスレッショルド及び再生スレッショルドが予め設定されている。視聴ポイントは、再生手段１２により映像データが再生される現在の位置であって、当該ノード１を用いて配信サービスを受ける利用者が視聴する現時点の映像データの位置を示している。パッチングスレッショルドは、上流ノード１の代わりにパッチングサーバ３からＤＣが取得される位置を示している。バッファメモリ１１に蓄積されたＤＣの位置がパッチングスレッショルド以下になると、パッチング処理が行われる。送受信手段１０のパッチング手段５５は、バッファメモリ１１を検索することにより、再生に伴ってＤＣが減少し、バッファメモリ１１の先頭から隙間なく蓄積された末尾のＤＣの位置を示すポインタがパッチングスレッショルド以下になった場合に（または、視聴ポイントからパッチングスレッショルドまでの間に存在しないＤＣがある場合に（ＤＣは存在するが、連番のＤＣが抜けている場合に、））、パッチングサーバ３からＤＣを取得する。再生スレッショルドは、再生手段１２が再生を最初に開始するために必要なデータ量の位置、または再生を再開するために必要なデータ量の位置を示している。再生手段１２は、バッファメモリ１１からＤＣを読み出して再生を開始または再開する際に、ＤＣが再生スレッショルドの位置まで蓄積されるのを待って、視聴ポイントの位置のＤＣを読み出して再生を行う。
【００５５】
（データ再生処理）
図６は、視聴ポイント及び再生スレッショルドを基準位置としたデータ再生処理を示すフローチャートである。このデータ再生処理は、再生手段１２により行われる。再生手段１２は、再生中であるか否かを判定し（ステップＳ６０１）、再生中であると判定した場合（ステップＳ６０１：Ｙ）、ステップＳ６０２へ移行し、再生中でない（再生が停止中である）と判定した場合（ステップＳ６０１：Ｎ）、ステップＳ６０５へ移行する。
【００５６】
再生手段１２は、再生中の場合、ステップＳ６０１から移行してバッファメモリ１１を検索し、バッファメモリ１１の先頭から隙間なく蓄積された末尾のＤＣの位置を示すポインタが視聴ポイント以下であるか否かを判定する（ステップＳ６０２）。再生手段１２は、ステップＳ６０２において、ＤＣのポインタが視聴ポイント以下でないと判定した場合（ステップＳ６０２：Ｎ）、再生を継続する（ステップＳ６０３）。つまり、再生手段１２は、バッファメモリ１１から視聴ポイントのＤＣを読み出し、ＤＣにより映像データを再生する。一方、再生手段１２は、ステップＳ６０２において、ＤＣのポインタが視聴ポイント以下であると判定した場合（ステップＳ６０２：Ｙ）、再生を停止する（ステップＳ６０４）。この場合、ノード１の送受信手段１０は、バッファメモリ１１をクリアし、視聴ポイント取得手段５３は、パッチングサーバ３から視聴ポイントを取得し、パッチング手段５５は、視聴ポイント以降のデータをパッチングサーバ３から取得する。
【００５７】
再生手段１２は、再生中でない（再生が停止中である）場合、ステップＳ６０１から移行してバッファメモリ１１を検索し、ＤＣのポインタが再生スレッショルド以下であるか否かを判定する（ステップＳ６０５）。再生手段１２は、ステップＳ６０５において、ＤＣのポインタが再生スレッショルド以下でないと判定した場合（ステップＳ６０５：Ｎ）、再生を開始する（ステップＳ６０６）。つまり、再生手段１２は、バッファメモリ１１から視聴ポイントのＤＣを読み出し、ＤＣにより映像データを再生する。一方、再生手段１２は、ステップＳ６０５において、ＤＣのポインタが再生スレッショルド以下であると判定した場合（ステップＳ６０５：Ｙ）、再生停止を継続する。
【００５８】
このように、データ再生処理を行う再生手段１２は、バッファメモリ１１から視聴ポイントのＤＣを読み出し、ＤＣにより映像データを再生し、ＤＣが視聴ポイント以下になった場合に再生を停止し、ＤＣが再生スレッショルドの位置まで蓄積されるのを待って、再生を開始する。
【００５９】
（パッチング処理）
図７は、パッチングスレッショルドを基準位置とした通常のパッチング処理を示すフローチャートである。このパッチング（手当て）処理は、送受信手段１０のパッチング手段５５により行われ、バッファメモリ１１に蓄積されたＤＣのポインタがパッチングスレッショルド以下になった場合に、上流ノード１からＤＣを取得する代わりに、緊急にパッチングサーバ３からＤＣを取得するものである。
【００６０】
送受信手段１０のパッチング手段５５は、バッファメモリ１１を検索し、ＤＣのポインタがパッチングスレッショルド以下であるか否かを判定し（ステップＳ７０１）、ＤＣのポインタがパッチングスレッショルド以下であると判定した場合（ステップＳ７０１：Ｙ）、パッチング処理を行う。すなわち、パッチング手段５５は、データ要求を上流ノード１へ送信する代わりに、パッチングサーバ３へ送信し（ステップＳ７０２）、パッチングサーバ３からデータ（ＤＣ）を受信し、ＤＣをバッファメモリ１１に蓄積する（ステップＳ７０３）。一方、パッチング手段５５は、ステップＳ７０１において、ＤＣのポインタがパッチングスレッショルド以下でないと判定した場合（ステップＳ７０１：Ｎ）、パッチング処理を行わない。
【００６１】
このように、パッチング処理を行うパッチング手段５５は、バッファメモリ１１に蓄積されたＤＣのポインタがパッチングスレッショルド以下になった場合に、上流ノード１からＤＣを取得する代わりに、緊急にパッチングサーバ３からＤＣを取得する。尚、実施例１では、パッチング手段５５は、図７に示した通常のパッチング処理を改良した処理を行い、回線状況に応じてレートの異なる映像データをパッチングサーバ３から取得する。詳細については後述する。
【００６２】
（実施例１によるノードの処理）
次に、実施例１によるノード１の処理について説明する。図８は、実施例１によるノード１の処理を示すフローチャートである。
【００６３】
ノード１が、配信サービスを行うＰ２Ｐネットワークに新たに参加すると、ノード１は、ネットワーク参加処理を行う（ステップＳ８０１）。図１１は、ネットワーク参加処理を説明する図であり、ノード１ＣがＰ２Ｐネットワークに新たに参加した場合を示している。ノード１ＣがＰ２Ｐネットワークに新たに参加すると、ノード１Ｃにおける送受信手段１０のネットワーク参加処理手段５１は、ディレクトリサーバ４へアクセスし、当該ノード１Ｃに関する情報（ＵＲＬ、ＩＰアドレス等）をディレクトリサーバ４へ送信する（ステップＳ１１０１）。ディレクトリサーバ４は、ノード１Ｃからノード１Ｃに関する情報を受信すると、当該情報を記憶装置に登録して管理する。そして、ディレクトリサーバ４は、通信システム５を構成する配信サーバ２、パッチングサーバ３及びＰ２Ｐネットワークに参加している全てまたは一部のノード１に関する情報、並びに上流ノード１に関する情報及び下流ノード１に関する情報（ＵＲＬ、ＩＰアドレス等）を、ノード１Ｃへ送信する（ステップＳ１１０２）。これにより、ノード１Ｃは、配信サーバ２、パッチングサーバ３、上流ノード１及び下流ノード１へアクセスすることができ、通信を行うことができる。すなわち、図１１に示すように、ノード１Ｃは、パッチングサーバ３へアクセスして視聴ポイント及び映像ストリームのデータを取得することができ、上流ノード１Ａ，１Ｂへアクセスしてバッファマップ及び映像ストリームのデータを取得することができる。
【００６４】
図８に戻って、ノード１は、上流ノード１からバッファマップを取得する（ステップＳ８０２）。具体的には、ノード１における送受信手段１０のバッファマップ取得手段５２は、ディレクトリサーバ４から受信した上流ノード１に関する情報に基づいて、バッファマップ要求を上流ノード１へ送信し、上流ノード１からバッファマップを受信し、バッファマップ保存手段１３に出力する。バッファマップ保存手段１３は、バッファマップをバッファメモリ１１に保存する。通常、複数台の上流ノード１が存在する。
【００６５】
ノード１は、パッチングサーバ３から視聴ポイントを取得する（ステップＳ８０３）。具体的には、ノード１における送受信手段１０の視聴ポイント取得手段５３は、ディレクトリサーバ４から受信したパッチングサーバ３に関する情報に基づいて、視聴ポイント要求をパッチングサーバ３へ送信し、パッチングサーバ３から視聴ポイントを受信する。尚、ノード１は、パッチングサーバ３から視聴ポイント、及び当該視聴ポイント以降の映像ストリームのデータを取得するようにしてもよい。これにより、新たなノード１がＰ２Ｐネットワークに参加したときに、新たなノード１は、上流ノード１から映像ストリームのデータを取得する場合に比べ、迅速かつ低遅延に映像ストリームのデータを取得することができる。
【００６６】
ノード１は、通常時に、上流ノード１から映像ストリームのデータを取得し、パッチング処理時に、パッチングサーバ３から映像ストリームのデータを取得し、バッファメモリ１１に蓄積する（ステップＳ８０４）。この映像データ取得処理の詳細については後述する。また、ノード１は、バッファメモリ１１から映像ストリームのデータを読み出し、下流ノード１へ送信する（ステップＳ８０５）。この映像データ送信処理の詳細については後述する。
【００６７】
ノード１は、Ｐ２Ｐネットワークから離脱したか否かを判定し（ステップＳ８０６）、Ｐ２Ｐネットワークから離脱していない場合（ステップＳ８０６：Ｎ）、映像データ取得処理（ステップＳ８０４）及び映像データ送信処理（ステップＳ８０５）を行い、Ｐ２Ｐネットワークから離脱した場合（ステップＳ８０６：Ｙ）、所定のネットワーク離脱処理を行う（ステップＳ８０７）。ノード１は、Ｐ２Ｐネットワークに参加している間、前述の映像データ取得処理（ステップＳ８０４）及び映像データ送信処理（ステップＳ８０５）を繰り返す。
【００６８】
（映像データ取得処理）
次に、図８に示した映像データ取得処理（ステップＳ８０４）について詳細に説明する。図９は、その詳細な処理を示すフローチャートである。ノード１における送受信手段１０のデータ取得手段５４は、図８に示したステップＳ８０２または後述するステップＳ９０３にて取得した複数のバッファマップ（上流ノード１のバッファマップ）に基づいて、上流ノード１からデータを取得し、バッファメモリ１１に蓄積する（ステップＳ９０１）。具体的には、データ取得手段５４は、複数のバッファマップのうち、視聴中の上流ノード１から取得したバッファマップであること等、予め定められた条件により、いずれか一つのバッファマップを選択し、この選択したバッファマップに基づいて、バッファメモリ１１内において視聴ポイント以降の未取得データを特定し、そのデータを取得するためのデータ要求を、選択したバッファマップに対応する上流ノード１へ送信する。そして、データ取得手段５４は、データ要求を送信した上流ノード１からデータを受信し、バッファメモリ１１に蓄積する。例えば、データ取得手段５４は、バッファマップに基づいて、未取得データのＤＣ番号を特定し、このＤＣ番号の通常レートデータを蓄積している上流ノード１を特定し、データ要求を、特定した上流ノード１へ送信し、通常レートデータを受信する。
【００６９】
送受信手段１０の再生手段１２は、図６に示したデータ再生処理を行う（ステップＳ９０２）。すなわち、再生手段１２は、バッファメモリ１１から視聴ポイントのデータを読み出して映像データを再生し、バッファメモリ１１に蓄積されたデータが視聴ポイント以下になった場合に再生を停止し、データが再生スレッショルドの位置にまで蓄積されるのを待って、再生を開始する。この場合、バッファメモリ１１には、通常レートデータと低レートデータとが混在することがあり得るが、再生手段１２は、バッファメモリ１１から読み出したデータのレートに関わらず、読み出したデータを再生する。
【００７０】
送受信手段１０のバッファマップ取得手段５２は、バッファマップ保存手段１３からの取得要求に基づいて、所定の時間間隔にて、バッファマップを取得するためのバッファマップ要求を上流ノード１へ送信し、バッファマップを上流ノード１から受信してバッファマップ保存手段１３に出力する（ステップＳ９０３）。バッファマップ保存手段１３は、バッファマップをバッファメモリ１１に保存する。これにより、上流ノード１のバッファマップは、所定時間間隔で更新される。
【００７１】
送受信手段１０のパッチング手段５５は、図７に示したステップＳ７０１のとおり、バッファメモリ１１を検索し、バッファメモリ１１に蓄積されているデータの位置がパッチングスレッショルド以下であるか否かを判定することで、パッチング処理を行うか否かを判定する（ステップＳ９０４）。パッチング手段５５は、パッチング処理を行わないと判定した場合（ステップＳ９０４：Ｎ）、ノード１は当該映像データ取得処理を終了する。一方、パッチング手段５５は、パッチング処理を行うと判定した場合（ステップＳ９０４：Ｙ）、ステップＳ９０５へ移行する。
【００７２】
回線状況管理手段１５は、ステップＳ９０４から移行して、送受信手段１０を介して、パッチングサーバ３との間の回線速度（パッチングサーバ３からノード１への回線速度）をチェックし（ステップＳ９０５）、パッチングサーバ３との間の回線が混雑しているか否かを判定する（ステップＳ９０６）。回線状況管理手段１５は、パッチングサーバ３との間の回線が混雑していないと判定した場合（ステップＳ９０６：Ｎ）、ステップＳ９０７へ移行し、パッチングサーバ３との間の回線が混雑していると判定した場合（ステップＳ９０６：Ｙ）、ステップＳ９０８へ移行する。例えば、回線状況管理手段１５は、測定したパッチングサーバ３の回線速度（測定速度）と予め設定された速度（設定速度）とを比較し、測定速度が設定速度を超えている場合、回線が混雑していないと判定し、測定速度が設定速度以下の場合、回線が混雑していると判定する。設定速度として、例えば、配信レートにシグナリングのオーバヘッドを加えた速度が用いられる。
【００７３】
送受信手段１０のパッチング手段５５は、パッチングサーバ３との間の回線が混雑していない場合、ステップＳ９０６から移行して、パッチングサーバ３から通常レートデータを取得し、バッファメモリ１１に蓄積する（ステップＳ９０７）。具体的には、パッチング手段５５は、データ要求をパッチングサーバ３へ送信し、データ要求に対応する通常レートデータをパッチングサーバ３から受信し、バッファメモリ１１に蓄積する。
【００７４】
一方、送受信手段１０のパッチング手段５５は、パッチングサーバ３との間の回線が混雑している場合、ステップＳ９０６から移行して、パッチングサーバ３から低レートデータを取得し、バッファメモリ１１に蓄積する（ステップＳ９０８）。具体的には、パッチング手段５５は、低レートデータ要求をパッチングサーバ３へ送信し、低レートデータ要求に対応する低レートデータをパッチングサーバ３から受信し、バッファメモリ１１に蓄積する。
【００７５】
これにより、ノード１は、パッチング処理において、パッチングサーバ３との間の回線が混雑している場合、パッチングサーバ３から低レートデータを取得するようにしたから、送信データ量が低減し、ノード１とパッチングサーバ３との間の輻輳を回避することができる。そして、バッファメモリ１１には、通常レートデータと低レートデータとが混在することになる。この場合、再生手段１２は、ステップＳ９０２のデータ再生処理において、バッファメモリ１１から連続した通常レートデータ及び低レートデータを読み出すから、途切れることのない再生を実現することができる。
【００７６】
（映像データ取得処理／変形例）
尚、前述の映像データ取得処理の第１の変形例として、パッチング処理を行う場合、回線の混雑状況に応じて通常レートデータまたは低レートデータを取得する代わりに、低レートデータのみを取得するようにしてもよい。具体的には、送受信手段１０のパッチング手段５５は、回線状況管理手段１５によりパッチング処理を行うと判定された場合、回線の混雑状況に関わらず、低レートデータ要求をパッチングサーバ３へ送信し、低レートデータ要求に対応する低レートデータをパッチングサーバ３から受信し、バッファメモリ１１に蓄積する。
【００７７】
これにより、ノード１は、パッチング処理において、パッチングサーバ３から低レートデータを取得するようにしたから、送信データ量は低減し、ノード１とパッチングサーバ３との間の輻輳を回避することができる。そして、再生手段１２は、バッファメモリ１１から連続した通常レートデータ及び低レートデータを読み出すから、途切れることのない再生を実現することができる。
【００７８】
また、前述の映像データ取得処理の第２の変形例として、パッチングサーバ３から低レートデータを取得しているときのパッチングサーバ３との間の回線をチェックし、回線が混雑している場合、音声データのみを取得するようにしてもよい。具体的には、送受信手段１０のパッチング手段５５が、ステップＳ９０８において、パッチングサーバ３から低レートデータを取得する処理を行っているときに、回線状況管理手段１５は、パッチングサーバ３との間の回線速度をチェックし、パッチングサーバ３との間の回線が低レートデータ受信時において混雑しているか否かを判定する。例えば、回線状況管理手段１５は、低レートデータを取得しているときに測定したパッチングサーバ３の回線速度（測定速度）と予め設定された速度（設定速度）とを比較し、測定速度が設定速度を超えている場合、回線が混雑していないと判定し、測定速度が設定速度以下の場合、回線が混雑していると判定する。設定速度として、例えば、低レートの配信レートにシグナリングのオーバヘッドを加えた速度が用いられる。
【００７９】
送受信手段１０のパッチング手段５５は、低レートデータを取得しているときに回線が混雑していない場合、低レートデータを取得し、回線が混雑している場合、音声データのみを取得する。すなわち、パッチング手段５５は、音声データを取得するための音声データ要求をパッチングサーバ３へ送信し、パッチングサーバ３から音声データのみを受信してバッファメモリ１１に蓄積する。
【００８０】
これにより、ノード１は、パッチング処理において、パッチングサーバ３から低レートデータを取得しているときに回線が混雑している場合、パッチングサーバ３から音声データのみを取得するようにしたから、送信データ量は一層低減し、ノード１とパッチングサーバ３との間の輻輳を一層回避することができる。そして、バッファメモリ１１には、通常レートデータと低レートデータと音声データとが混在することになる。この場合、再生手段１２は、ステップＳ９０２のデータ再生処理において、バッファメモリ１１から連続した通常レートデータ、低レートデータ及び音声データを読み出すから、途切れることのない再生を実現することができる。
【００８１】
（映像データ送信処理）
次に、図８に示した映像データ送信処理（ステップＳ８０５）について詳細に説明する。図１０は、その詳細な処理を示すフローチャートである。ノード１のバッファマップ作成手段１４は、所定の時間間隔にて、バッファメモリ１１に蓄積されたデータに基づいて、当該ノード１のバッファマップを作成する（ステップＳ１００１）。
【００８２】
送受信手段１０のバッファマップ送信手段５６は、下流ノード１からバッファマップ要求を受信したか否かを判定し（ステップＳ１００２）、バッファマップ要求を受信したと判定した場合（ステップＳ１００２：Ｙ）、バッファマップ作成手段１４により作成されたバッファマップを、バッファマップ要求を送信してきた下流ノード１へ送信し（ステップＳ１００３）、ステップＳ１００４へ移行する。一方、バッファマップ送信手段５６は、ステップＳ１００２において、バッファマップ要求を受信していないと判定した場合（ステップＳ１００２：Ｎ）、ステップＳ１００４へ移行する。
【００８３】
送受信手段１０のデータ送信手段５７は、ステップＳ１００２またはステップＳ１００３から移行して、下流ノード１からデータ要求を受信したか否かを判定し（ステップＳ１００４）、データ要求を受信したと判定した場合（ステップＳ１００４：Ｙ）、バッファメモリ１１からデータ要求に対応するデータを読み出し、読み出したデータを、データ要求を送信してきた下流ノード１へ送信し（ステップＳ１００５）、処理を終了する。一方、データ送信手段５７は、ステップＳ１００４において、データ要求を受信していないと判定した場合（ステップＳ１００４：Ｎ）、処理を終了する。
【００８４】
これにより、ノード１は、下流ノード１からの要求に応じて、バッファマップ及びデータを送信するから、Ｐ２Ｐネットワークによる映像データの中継を実現することができる。
【００８５】
（実施例１によるパッチングサーバの構成）
次に、実施例１によるパッチングサーバ３の構成について説明する。図１２は、実施例１によるパッチングサーバ３の構成を示すブロック図である。このパッチングサーバ３は、送受信手段３０、記憶装置３１、視聴ポイント把握手段３２、視聴ポイント提供手段３３及び映像データ変換手段３４を備えている。回線状況管理（判定）手段３５については後述する。
【００８６】
送受信手段３０は、配信サーバ２から映像ストリームをＤＣ毎のデータとして受信し、記憶装置３１に蓄積する。また、送受信手段３０は、ノード１から視聴ポイント要求を受信し、視聴ポイント提供手段３３により提供された視聴ポイントを、視聴ポイント要求を送信してきたノード１へ送信する。また、送受信手段３０は、ノード１からデータ要求を受信すると、記憶装置３１からデータ要求に対応するデータ（通常レートデータ）を読み出し、読み出したデータを、データ要求を送信してきたノード１へ送信する。さらに、送受信手段３０は、ノード１から低レートデータ要求を受信すると、記憶装置３１から低レートデータ要求に対応する低レートデータを読み出し、読み出した低レートデータを、低レートデータ要求を送信してきたノード１へ送信する。
【００８７】
記憶装置３１には、配信サーバ２から受信した映像ストリームのデータ（通常レートデータ）であるＤＣがそのＤＣ番号と共に、時間軸上のシーケンシャル番号順に、所定量蓄積され、また、通常レートデータに対応した低レートデータも同様に蓄積されている。
【００８８】
視聴ポイント把握手段３２は、送受信手段３０が配信サーバ２から連続して受信した映像ストリームのデータに基づいて、現在の視聴ポイントを設定（把握）する。例えば、視聴ポイント把握手段３２は、連続して受信した映像ストリームデータのうち最新に受信したデータのＤＣ番号よりも所定数前のＤＣ番号を視聴ポイントに設定する。視聴ポイント提供手段３３は、視聴ポイント把握手段３２により設定された視聴ポイントを、送受信手段３０に提供する。
【００８９】
映像データ変換手段３４は、記憶装置３１から通常レートデータ（配信サーバ２から連続して受信した映像ストリームのデータ）を読み出し、読み出した通常レートデータを低レートデータに変換し、低レートデータを記憶装置３１に蓄積する。これにより、記憶装置３１には、配信サーバ２から連続して受信した通常レートデータに加え、対応する低レートデータも蓄積される。
【００９０】
（実施例１によるパッチングサーバの処理）
次に、実施例１によるパッチングサーバ３の処理について説明する。図１３は、実施例１によるパッチングサーバ３の処理を示すフローチャートである。
【００９１】
パッチングサーバ３の送受信手段３０は、配信サーバ２から映像ストリームのデータを受信したか否かを判定し（ステップＳ１３０１）、データを受信した場合（ステップＳ１３０１：Ｙ）、受信したデータを記憶装置３１に蓄積する（ステップＳ１３０２）。また、映像データ変換手段３４は、記憶装置３１からデータ（通常レートデータ）を読み出し、読み出した通常レートデータを低レートデータに変換し、低レートデータを記憶装置３１に蓄積する（ステップＳ１３０３）。また、視聴ポイント把握手段３２は、連続して受信した映像ストリームのデータに基づいて、視聴ポイントを設定する（ステップＳ１３０４）。一方、送受信手段３０は、ステップＳ１３０１において、データを受信していない場合（ステップＳ１３０１：Ｎ）、ステップＳ１３０５へ移行する。
【００９２】
送受信手段３０は、ステップＳ１３０１またはステップＳ１３０４から移行して、ノード１から視聴ポイント要求を受信したか否かを判定し（ステップＳ１３０５）、視聴ポイント要求を受信した場合（ステップＳ１３０５：Ｙ）、視聴ポイント提供手段３３は、視聴ポイント把握手段３２によりステップＳ１３０４にて設定された視聴ポイントを送受信手段３０に提供する。そして、送受信手段３０は、視聴ポイントを、視聴ポイント要求を送信してきたノード１へ送信する（ステップＳ１３０６）。一方、送受信手段３０は、視聴ポイント要求を受信していない場合（ステップＳ１３０５：Ｎ）、ステップＳ１３０７へ移行する。
【００９３】
送受信手段３０は、ステップＳ１３０５またはステップＳ１３０６から移行して、ノード１からデータ要求（通常レートデータを取得するためのデータ要求）を受信したか否かを判定し（ステップＳ１３０７）、データ要求を受信した場合（ステップＳ１３０７：Ｙ）、記憶装置３１からデータ要求に対応する通常レートデータを読み出し、読み出した通常レートデータを、データ要求を送信してきたノード１へ送信する（ステップＳ１３０８）。一方、送受信手段３０は、データ要求を受信していない場合（ステップＳ１３０７：Ｎ）、ステップＳ１３０９へ移行する。
【００９４】
送受信手段３０は、ステップＳ１３０７またはステップＳ１３０８から移行して、ノード１から低レートデータ要求を受信したか否かを判定し（ステップＳ１３０９）、低レートデータ要求を受信した場合（ステップＳ１３０９：Ｙ）、記憶装置３１から低レートデータ要求に対応する低レートデータを読み出し、読み出した低レートデータを、低レートデータ要求を送信してきたノード１へ送信する（ステップＳ１３１０）。一方、送受信手段３０は、低レートデータ要求を受信していない場合（ステップＳ１３０９：Ｎ）、ステップＳ１３１１へ移行する。そして、パッチングサーバ３は、処理が終了しない限り、ステップＳ１３０１〜ステップＳ１３１０を繰り返す（ステップＳ１３１１）。
【００９５】
以上のように、実施例１によれば、ノード１における送受信手段１０のパッチング手段５５は、パッチングサーバ３との間の回線が混雑している場合、パッチングサーバ３から低レートデータを取得するようにした。これにより、パッチングサーバ３からノード１への送信データ量が低減し、ノード１とパッチングサーバ３との間の輻輳を回避することができる。そして、ノード１のバッファメモリ１１には、通常レートデータ及び低レートデータが混在することになるが、途切れることなく映像ストリームのデータを取得することができる。したがって、パッチングサーバ３との間の回線が混雑している場合であっても、配信サービスを継続させることが可能となり、ノード１を用いる利用者は、再生された映像がフリーズしないから、継続した配信サービスを受けることができる。
【００９６】
また、実施例１によれば、ノード１がＰ２Ｐネットワークに参加またはＰ２Ｐネットワークから離脱した場合であっても、全てのノード１は前述の処理を行うから、配信サービスを継続させることができる。
【００９７】
また、実施例１によれば、このＰ２Ｐネットワークによる配信サービスと、ソーシャルネットワーク等の他のサービスとを連携する場合にも、全てのノード１は前述の処理を行うから、配信サービスを継続させることができ、他のサービスとの間で低遅延にて時間的な整合を図ることができる。
【００９８】
尚、前述した実施例１において、パッチングサーバ３は、ノード１から低レートデータ要求を受信し、低レートデータをノード１へ送信するようにしたが、低レートデータは、低レートの映像データ及び音声データにより構成されるものであってもよいし、音声データを含まない低レートの映像データのみとしてもよい。低レートデータは、例えば、ＭＰＥＧ等のように、動き成分を抽出してフレーム間圧縮を行う動画圧縮形式において、動き成分を含まない画面全体の静止画情報であるイントラフレーム及び音声データにより構成される。また、例えば、イントラフレームのみにより構成される。また、低レートデータの代わりに、音声データのみを送信するようにしてもよい。これにより、回線混雑時に取得した品質の低い映像データ及び音声データ、品質の低い映像データのみ、または音声データのみが再生されることになるが、配信サービスは継続され、利用者は、継続した配信サービスを受けることができる。特に、低レートの映像データのみまたは音声データのみとした場合には、送信データ量が一層低減するから、パッチングサーバ３との間の輻輳を一層回避した状況の下で、配信サービスを継続させることができる。
【００９９】
また、実施例１において、ノード１は、パッチング処理の際に、パッチングサーバ３から通常レートデータまたは低レートデータを取得するようにしたが、パッチングサーバ３の代わりに配信サーバ２から取得するようにしてもよい。この場合、配信サーバ２は、図１２に示した構成により、図１３に示した処理を行う。これにより、Ｐ２Ｐネットワークの通信システム５にパッチングサーバ３が存在しない場合であっても、ノード１は、パッチング処理を行うことができる。後述する実施例２，３についても同様である。
【０１００】
また、実施例１において、ノード１は、パッチング処理の際に、パッチングサーバ３との間の回線が混雑しているか否かを判定し、混雑状況に応じてデータ要求または低レートデータ要求をパッチングサーバ３へ送信し、パッチングサーバ３から通常レートデータまたは低レートデータを受信するようにした。これに対し、ノード１は、パッチング処理の際に、回線が混雑しているか否かを判定しないで、データ要求をパッチングサーバ３へ送信し、パッチングサーバ３は、複数のノード１から受信するデータ要求の混雑状況を判定し、混雑状況に応じて通常レートデータまたは低レートデータを送信するようにしてもよい。
【０１０１】
この場合、ノード１は、パッチング処理を行う場合、データ要求をパッチングサーバ３へ送信し、パッチングサーバ３から通常レートデータまたは低レートデータを受信してバッファメモリ１１に蓄積する。
【０１０２】
一方、パッチングサーバ３は、図１２に示したように、回線状況管理手段３５も備えることになる。パッチングサーバ３の回線状況管理手段３５は、送受信手段３０を介して、複数のノード１からデータ要求を受信してデータを複数のノード１へ送信する回線状況をチェックし、複数のノード１との間の回線の混雑状況（帯域状況）を判定する。そして、パッチングサーバ３の送受信手段３０は、ノード１からデータ要求を受信したときに、回線状況管理手段３５により回線が混雑していないと判定された場合、記憶装置３１から通常レートデータを読み出し、読み出した通常レートデータを、データ要求を送信してきたノード１へ送信する。一方、送受信手段３０は、回線が混雑していると判定された場合、記憶装置３１から低レートデータを読み出し、読み出した低レートデータを、データ要求を送信してきたノード１へ送信する。例えば、回線状況管理手段３５は、測定した回線速度（測定速度）と予め設定された速度（設定速度）とを比較し、測定速度が設定速度を超えている場合、回線が混雑していないと判定し、測定速度が設定速度以下の場合、回線が混雑していると判定する。一例として、回線状況管理手段３５は、予め測定したパッチングサーバ３における実効帯域の８０％を算出し、この算出結果（算出値）と、予め設定された要求帯域の合計値（データ要求中のノード１との間の帯域設定値の合計値）とを比較し、算出値が合計値以下の場合、回線が混雑していると判定し、算出値が合計値以下でない場合、回線が混雑していないと判定する。
【０１０３】
この場合、パッチングサーバ３の回線状況管理手段３５は、低レートデータをノード１へ送信しているときに、さらに、送受信手段３０を介して、複数のノード１との間の回線の混雑状況（帯域状況）を判定するようにしてもよい。パッチングサーバ３の送受信手段３０は、ノード１からデータ要求を受信したときに、回線状況管理手段３５により低レートデータを送信している回線が混雑していないと判定された場合、記憶装置３１から低レートデータを読み出し、読み出した低レートデータを、データ要求を送信してきたノード１へ送信する。一方、送受信手段３０は、低レートデータを送信している回線が混雑していると判定された場合、記憶装置３１から音声データのみを読み出し、読み出した音声データのみを、データ要求を送信してきたノード１へ送信する。例えば、回線状況管理手段３５は、低レートデータを送信しているときに測定した回線速度（測定速度）と予め設定された速度（設定速度）とを比較し、測定速度が設定速度を超えている場合、回線が混雑していないと判定し、測定速度が設定速度以下の場合、回線が混雑していると判定する。一例として、回線状況管理手段３５は、予め測定したパッチングサーバ３における実効帯域の８０％を算出し、この算出結果（算出値）と、予め設定された低レートでの要求帯域の合計値（データ要求中のノード１との間の低レートでの帯域設定値の合計値）とを比較し、算出値が合計値以下の場合、回線が混雑していると判定し、算出値が合計値以下でない場合、回線が混雑していないと判定する。
【０１０４】
〔実施例２〕
次に、実施例２について説明する。実施例２のノード１は、上流ノード１との間の回線が混雑しているとき、上流ノード１から低レートの映像データを取得する例である。図１４は、実施例２におけるＰ２Ｐネットワークの処理の概要を説明する図である。図１４に示すように、ノード１Ｃの上流ノードがノード１Ａ，１Ｂであり、ノード１Ａ，１Ｂのバッファメモリには、通常レートのＤＣ８〜ＤＣ２２及び対応する低レートのＤＣ８〜ＤＣ２２がそれぞれ蓄積され、ノード１Ｃのバッファメモリには、ＤＣ８〜ＤＣ１５が蓄積されているものとする。また、ノード１Ｃは、ＤＣ１５を視聴ポイントとしてデータを再生し、上流ノード１Ａ，１ＢからバッファマップＡ，Ｂを取得しているものとする。
【０１０５】
ノード１Ｃは、上流ノード１Ａ，１Ｂとの間の回線状況をチェックし、回線が混雑していることを判定すると、バッファマップＡ，Ｂに基づいて取得先のノード１Ｂを決定し、ＤＣ１６についての低レートデータを取得するための低レートデータ要求を上流ノード１Ｂへ送信し、ノード１Ｂから低レートのＤＣ１６を受信し、バッファメモリに蓄積する。同様に、上流ノード１Ａ，１Ｂとの間の回線が混雑している場合、ノード１Ｃは、ノード１Ｂから低レートのＤＣ１７〜ＤＣ２０を取得し、ノード１Ａから低レートのＤＣ２１を取得し、ノード１Ｂから低レートのＤＣ２２を取得する。
【０１０６】
そして、ノード１Ｃは、上流ノード１Ａ，１Ｂとの間の回線が混雑していないことを判定すると、通常レートデータを取得するためのデータ要求をノード１Ａ，１Ｂのいずれかへ送信し、通常レートデータを受信してバッファメモリに蓄積する。
【０１０７】
これにより、ノード１Ｃと上流ノード１Ａ，１Ｂとの間の回線が混雑している場合、上流ノード１Ａ，１Ｂからノード１Ｃへ低レートデータが送信されるから、送信データ量が低減し、ノード１Ｃは、途切れることなく映像データを受信することができる。したがって、配信サービスを継続させることができ、ノード１Ｃは、映像データの再生を途切れることなく行うことができる。
【０１０８】
（実施例２によるノードの構成）
実施例２によるノード１の構成について説明する。図１５は、実施例２によるノード１の構成を示すブロック図である。このノード１は、送受信手段２０、バッファメモリ２１、再生手段１２、バッファマップ保存手段１３、バッファマップ作成手段１４、映像データ選択手段２２、映像データ変換手段２３及び回線状況管理（判定）手段２４を備えている。図１５に示す構成は、図１に示した通信システム５に含まれるノード１Ａ，１Ｂ，１Ｃ，・・・に共通である。送受信手段２０は、配信サーバ２、パッチングサーバ３、ディレクトリサーバ４、上流ノード１及び下流ノード１との間で通信を行う。
【０１０９】
送受信手段２０は、図４に示した実施例１の構成と同様に、ネットワーク参加処理手段５１、バッファマップ取得手段５２、視聴ポイント取得手段５３、データ取得手段５４、パッチング手段５５、バッファマップ送信手段５６、データ送信手段５７等を備えている。
【０１１０】
ネットワーク参加処理手段５１は、図４に示した実施例１と同様に、当該ノード１がＰ２Ｐネットワークに新たに参加するときに、当該ノード１のアドレス等の情報を含む参加要求をディレクトリサーバ４へ送信し、Ｐ２Ｐネットワークに参加しているノード１に関する情報等をディレクトリサーバ４から受信する。
【０１１１】
バッファマップ取得手段５２は、図４に示した実施例１と同様に、バッファマップ要求を上流ノード１へ送信し、上流ノード１からバッファマップを受信する。視聴ポイント取得手段５３は、図４に示した実施例１と同様に、当該ノード１がＰ２Ｐネットワークに参加したとき、または、再生が停止したとき、視聴ポイント要求をパッチングサーバ３へ送信し、視聴ポイントをパッチングサーバ３から受信する。
【０１１２】
データ取得手段５４は、図４に示した実施例１と同様に、視聴ポイント以降の映像データを取得するために、上流ノード１から取得したバッファマップに基づいて、取得したいデータが蓄積されている上流ノード１（データの取得先）を特定する。また、データ取得手段５４は、図４に示した実施例１とは異なり、回線状況管理手段２４により上流ノード１との間の回線が混雑していないと判定された場合、映像データ選択手段２２から通常レートデータを示す選択結果を入力し、通常レートデータを取得するためのデータ要求を上流ノード１へ送信する。一方、データ取得手段５４は、回線が混雑していると判定された場合、映像データ選択手段２２から低レートデータを示す選択結果を入力し、低レートデータを取得するための低レートデータ要求を上流ノード１へ送信する。そして、データ取得手段５４は、上流ノード１から通常レートデータまたは低レートデータを受信し、バッファメモリ２１に蓄積する。
【０１１３】
パッチング手段５５は、図７に示した通常のパッチング処理を行い、パッチングサーバ３から通常レートデータを受信してバッファメモリ２１に蓄積する。尚、パッチング手段５５は、図４に示した実施例１と同様に、パッチング処理の際に、回線状況管理手段１５と同等の処理も行う回線状況管理手段２４により判定されたパッチングサーバ３との間の回線の混雑状況に応じて、通常レートデータまたは低レートデータをパッチングサーバ３から取得するようにしてもよい。
【０１１４】
バッファマップ送信手段５６は、図４に示した実施例１と同様に、下流ノード１からバッファマップ要求を受信し、バッファマップ作成手段１４により作成された当該ノード１のバッファマップをバッファメモリ２１から読み出し、バッファマップ要求を送信してきた下流ノード１へ送信する。
【０１１５】
データ送信手段５７は、図４に示した実施例１とは異なり、下流ノード１から通常レートデータを取得するためのデータ要求、または低レートデータを取得するための低レートデータ要求を受信する。そして、データ送信手段５７は、データ要求を受信した場合、このデータ要求に対応した通常レートデータをバッファメモリ２１から読み出し、読み出した通常レートデータを、データ要求を送信してきた下流ノード１へ送信する。一方、データ送信手段５７は、低レートデータ要求を受信した場合、この低レートデータ要求に対応した低レートデータをバッファメモリ２１から読み出し、読み出した低レートデータを、低レートデータ要求を送信してきた下流ノード１へ送信する。
【０１１６】
バッファメモリ２１には、図５に示した実施例１と同様に、映像データを所定のサイズに分割したＤＣ（通常レートのＤＣ）がそのＤＣ番号と共に、時間軸上のシーケンシャル番号順に蓄積され、さらに、通常レートのＤＣに対応した低レートのＤＣ（図示しない映像データ変換手段により通常レートのＤＣが変換された低レートのＤＣ）も、そのＤＣ番号と共に、時間軸上のシーケンシャル番号順に蓄積されている。すなわち、バッファメモリ２１には、通常レートデータと低レートデータとがシーケンシャルなＤＣ番号順に蓄積されている。また、バッファメモリ２１には、上流ノード１のバッファマップも保存されている。
【０１１７】
再生手段１２は、図３及び図６に示した実施例１と同様に、バッファメモリ２１から通常レートデータを読み出して再生を行う。前述のとおり、バッファメモリ２１には、通常レートデータ及び低レートデータが蓄積されるが、再生のためには通常レートデータが優先的に用いられる。
【０１１８】
バッファマップ保存手段１３は、図３に示した実施例１と同様に、所定の時間間隔にて、上流ノード１のバッファマップを取得するための取得要求を送受信手段２０に出力し、送受信手段２０からバッファマップを入力し、入力したバッファマップをバッファメモリ２１に保存する。
【０１１９】
バッファマップ作成手段１４は、図３に示した実施例１と同様に、所定の時間間隔にて、バッファメモリ２１に蓄積されたデータに基づいて、当該ノード１のバッファマップを作成し、作成したバッファマップを送受信手段２０に出力する。
【０１２０】
映像データ選択手段２２は、回線状況管理手段２４から回線状況を入力し、回線状況が混雑していることを示している場合、通常レートデータを選択結果に設定し、回線状況が混雑していないことを示している場合、低レートデータを選択結果として設定する。そして、映像データ選択手段２２は、設定した選択結果を送受信手段２０のデータ取得手段５４に出力する。
【０１２１】
映像データ変換手段２３は、バッファメモリ２１から新たに蓄積された通常レートデータを読み出し、通常レートデータを低レートデータに変換し、変換後の低レートデータをバッファメモリ２１に蓄積する。これにより、バッファメモリ２１には、通常レートデータと低レートデータとが対になって蓄積される。尚、通常レートデータを低レートデータに変換する手法は既知であるから、ここでは説明を省略する。
【０１２２】
回線状況管理手段２４は、送受信手段２０を介して、上流ノード１との間の回線状況をチェックして回線速度を測定し、測定した回線速度が所定速度よりも低い場合、回線が混雑していると判定し、測定した回線速度が所定速度以上である場合、回線が混雑していないと判定する。そして、回線状況管理手段２４は、判定した回線状況を送受信手段２０及び映像データ選択手段２２に出力する。
【０１２３】
（実施例２によるノードの処理）
次に、実施例２によるノード１の処理について説明する。実施例２によるノード１は、図８に示した実施例１のフローチャートのうち、ステップＳ８０１〜ステップＳ８０３，ステップＳ８０６及びステップＳ８０７と同様の処理を行い、ステップＳ８０４，Ｓ８０５とは異なる処理を行う。ステップＳ８０１〜ステップＳ８０３，ステップＳ８０６及びステップＳ８０７の処理については実施例１にて説明済みであるから、ここでは説明を省略する。
【０１２４】
図８において、実施例２によるノード１は、ステップＳ８０１〜ステップＳ８０３の処理の後、上流ノード１から通常レートデータまたは低レートデータを取得し、バッファメモリ２１に蓄積する（ステップＳ８０４）。この映像データ取得処理の詳細については後述する。また、ノード１は、下流ノード１へ通常レートデータまたは低レートデータを送信する（ステップＳ８０５）。この映像データ送信処理の詳細については後述する。そして、ノード１は、図８に示した実施例１と同様に、Ｐ２Ｐネットワークに参加している間、前述の映像データ取得処理（ステップＳ８０４）及び映像データ送信処理（ステップＳ８０５）を繰り返す。
【０１２５】
（映像データ取得処理）
次に、実施例２における図８の映像データ取得処理（ステップＳ８０４）について詳細に説明する。図１６は、その詳細な処理を示すフローチャートである。回線状況管理手段２４は、送受信手段２０を介して、上流ノード１との間の回線速度（上流ノード１から当該ノード１への回線速度）をチェックし（ステップＳ１６０１）、上流ノード１との間の回線が混雑しているか否かを判定する（ステップＳ１６０２）。回線状況管理手段２４は、上流ノード１との間の回線が混雑していないと判定した場合（ステップＳ１６０２：Ｎ）、ステップＳ１６０３へ移行し、上流ノード１との間の回線が混雑していると判定した場合（ステップＳ１６０２：Ｙ）、ステップＳ１６０４へ移行する。例えば、回線状況管理手段２４は、測定した上流ノード１の回線速度（測定速度）と予め設定された速度（設定速度）とを比較し、測定速度が設定速度を超えている場合、回線が混雑していないと判定し、測定速度が設定速度以下の場合、回線が混雑していると判定する。設定速度として、例えば、配信レートにシグナリングのオーバヘッドを加えた速度が用いられる。
【０１２６】
ノード１における送受信手段２０のデータ取得手段５４は、上流ノード１との間の回線が混雑していない場合、ステップＳ１６０２から移行して、図８に示したステップＳ８０２または後述するステップＳ１６０６にて取得した複数のバッファマップ（上流ノード１のバッファマップ）に基づいて、上流ノード１から通常レートデータを取得し、バッファメモリ２１に蓄積する（ステップＳ１６０３）。具体的には、データ取得手段５４は、複数のバッファマップのうちいずれか一つのバッファマップを選択し、この選択したバッファマップに基づいて、バッファメモリ２１内において視聴ポイント以降の未取得データを特定し、その通常レートデータを取得するためのデータ要求を、選択したバッファマップに対応する上流ノード１へ送信する。そして、データ取得手段５４は、データ要求を送信した上流ノード１から通常レートデータを受信し、バッファメモリ２１に蓄積する。例えば、データ取得手段５４は、バッファマップに基づいて、未取得データのＤＣ番号を特定し、このＤＣ番号の通常レートデータを蓄積している上流ノード１を特定し、データ要求を、特定した上流ノード１へ送信し、通常レートデータを受信する。
【０１２７】
一方、ノード１における送受信手段２０のデータ取得手段５４は、上流ノード１との間の回線が混雑している場合、ステップＳ１６０２から移行して、図８に示したステップＳ８０２または後述するステップＳ１６０６にて取得した複数のバッファマップ（上流ノード１のバッファマップ）に基づいて、上流ノード１から低レートデータを取得し、バッファメモリ２１に蓄積する（ステップＳ１６０４）。具体的には、データ取得手段５４は、複数のバッファマップのうちいずれか一つのバッファマップを選択し、この選択したバッファマップに基づいて、バッファメモリ２１内において視聴ポイント以降の未取得データを特定し、その低レートデータを取得するための低レートデータ要求を、選択したバッファマップに対応する上流ノード１へ送信する。そして、データ取得手段５４は、低レートデータ要求を送信した上流ノード１から低レートデータを受信し、バッファメモリ２１に蓄積する。
【０１２８】
送受信手段２０の再生手段１２は、ステップＳ１６０３及びステップＳ１６０４から移行して、図６に示したデータ再生処理を行う（ステップＳ１６０５）。そして、送受信手段２０のバッファマップ取得手段５２は、バッファマップ保存手段１３からの取得要求に基づいて、所定の時間間隔にて、バッファマップを取得するためのバッファマップ要求を上流ノード１へ送信し、バッファマップを上流ノード１から受信してバッファマップ保存手段１３に出力する（ステップＳ１６０６）。バッファマップ保存手段１３は、バッファマップをバッファメモリ２１に保存する。これにより、バッファマップは、所定時間間隔で更新される。
【０１２９】
送受信手段２０のパッチング手段５５は、図７に示したステップＳ７０１のとおり、バッファメモリ２１を検索し、蓄積されているデータの位置がパッチングスレッショルド以下であるか否かを判定することで、パッチング処理を行うか否かを判定する（ステップＳ１６０７）。パッチング手段５５は、パッチング処理を行うと判定した場合（ステップＳ１６０７：Ｙ）、パッチングサーバ３からデータ（通常レートデータ）を取得し、バッファメモリ２１に蓄積する（ステップＳ１６０８）。具体的には、パッチング手段５５は、データ要求をパッチングサーバ３へ送信し、データ要求に対応する通常レートデータをパッチングサーバ３から受信してバッファメモリ２１に蓄積する。
【０１３０】
映像データ変換手段２３は、ステップＳ１６０７にてパッチング処理を行わないと判定した場合（ステップＳ１６０７：Ｎ）またはステップＳ１６０８から移行して、バッファメモリ２１から新たに蓄積された通常レートデータを読み出し、低レートデータに変換し、変換後の低レートデータをバッファメモリ２１に蓄積する（ステップＳ１６０９）。
【０１３１】
これにより、ノード１は、上流ノード１との間の回線が混雑している場合、上流ノード１から低レートデータを取得するようにしたから、送信データ量が低減し、ノード１と上流ノード１との間の輻輳を回避することができる。そして、バッファメモリ２１には、通常レートデータと低レートデータとが混在することになる。この場合、再生手段１２は、ステップＳ１６０５のデータ再生処理において、バッファメモリ２１から連続した通常レートデータ及び低レートデータを読み出すから、途切れることのない再生を実現することができる。
【０１３２】
（映像データ取得処理／変形例）
尚、前述の映像データ取得処理の変形例として、上流ノード１から低レートデータを取得しているときの上流ノード１との間の回線をチェックし、回線が混雑している場合、音声データのみを取得するようにしてもよい。具体的には、送受信手段２０のデータ取得手段５４が、ステップＳ１６０４において、上流ノード１から低レートデータを取得する処理を行っているときに、回線状況管理手段２４は、上流ノード１との間の回線速度をチェックし、上流ノード１との間の回線が低レートデータ受信時において混雑しているか否かを判定する。例えば、回線状況管理手段２４は、低レートデータを取得しているときに測定した上流ノード１の回線速度を算出し、この算出結果（算出値）と、予め設定された設定値（例えば、低速の配信レートにシグナリングのオーバヘッドを加えた速度値）とを比較し、算出値が設定値以下の場合、回線が混雑していると判定し、算出値が設定値以下でない場合、回線が混雑していないと判定する。
【０１３３】
送受信手段２０のデータ取得手段５４は、低レートデータを取得しているときに回線が混雑していない場合、低レートデータを取得し、回線が混雑している場合、音声データのみを取得する。すなわち、データ取得手段５４は、音声データを取得するための音声データ要求を上流ノード１へ送信し、上流ノード１から音声データのみを受信してバッファメモリ２１に蓄積する。
【０１３４】
これにより、ノード１は、上流ノード１から低レートデータを取得しているときに回線が混雑している場合、上流ノード１から音声データのみを取得するようにしたから、送信データ量は一層低減し、ノード１と上流ノード１との間の輻輳を一層回避することができる。そして、バッファメモリ２１には、通常レートデータと低レートデータと音声データとが混在することになる。この場合、再生手段１２は、ステップＳ１６０５のデータ再生処理において、バッファメモリ２１から連続した通常レートデータ、低レートデータ及び音声データを読み出すから、途切れることのない再生を実現することができる。
【０１３５】
（映像データ送信処理）
次に、実施例２における図８の映像データ送信処理（ステップＳ８０５）について詳細に説明する。図１７は、その詳細な処理を示すフローチャートである。実施例２の映像データ送信処理は、図１０に示した実施例１の映像データ送信処理（ステップＳ１００１〜ステップＳ１００５）と同じ処理（ステップＳ１７０１〜ステップＳ１７０５）に、さらにステップＳ１７０６及びステップＳ１７０７の処理を加えたものである。
【０１３６】
ノード１における送受信手段２０のデータ送信手段５７は、ステップＳ１７０４またはステップＳ１７０５から移行して、下流ノード１から低レートデータ要求を受信したか否かを判定し（ステップＳ１７０６）、低レートデータ要求を受信したと判定すると（ステップＳ１７０６：Ｙ）、バッファメモリ２１から低レートデータ要求に対応する低レートデータを読み出し、読み出した低レートデータを、低レートデータ要求を送信してきた下流ノード１へ送信し（ステップＳ１７０７）、処理を終了する。一方、データ送信手段５７は、ステップＳ１７０６において、低レートデータ要求を受信していないと判定すると（ステップＳ１７０６：Ｎ）、処理を終了する。
【０１３７】
これにより、ノード１は、下流ノード１からの要求に応じて、バッファマップ及び通常レートデータまたは低レートデータを送信するから、Ｐ２Ｐネットワークによる映像データの中継を実現することができる。
【０１３８】
（実施例２によるパッチングサーバの構成及び処理）
次に、実施例２によるパッチングサーバ３は、図１２を参照して、送受信手段３０、記憶装置３１、視聴ポイント把握手段３２及び視聴ポイント提供手段３３を備えている。また、パッチングサーバ３は、実施例１と同様に、図１３に示したステップＳ１３０１、ステップＳ１３０２、ステップＳ１３０４〜ステップＳ１３０８及びステップＳ１３１１の処理を行い、実施例２とは異なり、低レートデータに関する処理は行わない。
【０１３９】
以上のように、実施例２によれば、ノード１における送受信手段２０のデータ取得手段５４は、上流ノード１との間の回線が混雑している場合に、上流ノード１から低レートデータを取得するようにした。これにより、上流ノード１から当該ノード１への送信データ量が低減し、上流ノード１とノード１との間の輻輳を回避することができる。そして、ノード１のバッファメモリ２１には、通常レートデータ及び低レートデータが混在することになるが、途切れることなく映像ストリームのデータを取得することができる。したがって、上流ノード１との間の回線が混雑している場合であっても、配信サービスを継続させることが可能となり、ノード１を用いる利用者は、再生された映像がフリーズしないから、継続した配信サービスを受けることができる。
【０１４０】
また、実施例２によれば、ノード１がＰ２Ｐネットワークに参加またはＰ２Ｐネットワークから離脱した場合であっても、全てのノード１は前述の処理を行うから、配信サービスを継続させることができる。
【０１４１】
また、実施例２によれば、このＰ２Ｐネットワークによる配信サービスと、ソーシャルネットワーク等の他のサービスとを連携する場合にも、全てのノード１は前述の処理を行うから、配信サービスを継続させることができ、他のサービスとの間で低遅延にて時間的な整合を図ることができる。
【０１４２】
尚、前述した実施例２において、上流ノード１は、下流ノード１から低レートデータ要求を受信し、低レートデータを下流ノード１へ送信するようにしたが、低レートデータは、前述したとおり、低レートの映像データ及び音声データにより構成されるものであってもよいし、音声データを含まない低レートの映像データのみとしてもよい。これにより、回線混雑時に取得した品質の低い映像データ及び音声データ、品質の低い映像データのみ、または音声データのみが再生されることになるが、配信サービスは継続され、利用者は、継続した配信サービスを受けることができる。特に、低レートの映像データのみとした場合には、送信データ量が一層低減するから、上流ノード１との間の輻輳を一層回避した状況の下で、配信サービスを継続させることができる。
【０１４３】
〔実施例２／変形例〕
次に、実施例２の変形例について説明する。実施例２の変形例は、実施例２において、映像ストリームのデータに階層化の概念を導入するものである。具体的には、実施例２の変形例によるノード１は、実施例２の処理を前提にして、上流ノード１から受信した通常レートデータを、差分データ及び低レートデータに分離し、分離した差分データ及び低レートデータをバッファメモリに蓄積する。また、ノード１は、下流ノード１からのデータ要求に従って、バッファメモリから差分データ及び低レートデータを読み出し、これらのデータを結合することで通常レートデータを生成し、生成した通常レートデータを下流ノード１へ送信する。つまり、ノード１は、通常レートデータの代わりに、通常レートデータを構成する差分データ及び低レートデータをバッファメモリに蓄積して管理する。この場合、図１に示した配信サーバ２は、配信すべき映像ストリームのデータを予め擬似的に階層化し、階層化した映像ストリームのデータ、つまり、差分データ及び低レートデータから構成される通常レートデータを配信する。
【０１４４】
（実施例２の変形例によるノードの構成）
実施例２の変形例によるノード１の構成について説明する。図２１は、実施例２の変形例によるノード１の構成を示すブロック図である。このノード１は、送受信手段２５、バッファメモリ２６、再生手段１２、バッファマップ保存手段１３、バッファマップ作成手段１４、映像データ選択手段２２、回線状況管理手段２４及び映像データ分離／結合手段２７を備えている。図２１に示す構成は、図１に示した通信システム５に含まれるノード１Ａ，１Ｂ，１Ｃ，・・・に共通である。送受信手段２５は、配信サーバ２、パッチングサーバ３、ディレクトリサーバ４、上流ノード１及び下流ノード１との間で通信を行う。
【０１４５】
送受信手段２５は、図４に示した実施例１の構成と同様に、ネットワーク参加処理手段５１、バッファマップ取得手段５２、視聴ポイント取得手段５３、データ取得手段５４、パッチング手段５５、バッファマップ送信手段５６、データ送信手段５７等を備えている。
【０１４６】
ネットワーク参加処理手段５１、バッファマップ取得手段５２、視聴ポイント取得手段５３及びバッファマップ送信手段５６は、図４に示した構成において、実施例２と同様の処理を行う。
【０１４７】
データ取得手段５４は、実施例２と同様に、視聴ポイント以降の映像データを取得するために、上流ノード１から取得したバッファマップに基づいて、取得したいデータが蓄積されている上流ノード１（データの取得先）を特定する。また、データ取得手段５４は、回線状況管理手段２４により上流ノード１との間の回線が混雑していないと判定された場合、映像データ選択手段２２から通常レートデータを示す選択結果を入力し、通常レートデータを取得するためのデータ要求を上流ノード１へ送信する。一方、データ取得手段５４は、回線が混雑していると判定された場合、映像データ選択手段２２から低レートデータを示す選択結果を入力し、低レートデータを取得するための低レートデータ要求を上流ノード１へ送信する。
【０１４８】
データ取得手段５４は、上流ノード１から通常レートデータを受信した場合、通常レートデータを映像データ分離／結合手段２７に出力し、映像データ分離／結合手段２７から通常レートデータが分離された差分データ及び低レートデータを入力し、入力した差分データ及び低レートデータをバッファメモリ２６に蓄積する。また、データ取得手段５４は、上流ノード１から低レートデータを受信した場合、受信した低レートデータをバッファメモリ２６に蓄積する。
【０１４９】
パッチング手段５５は、図７に示した通常のパッチング処理を行う際に、パッチングサーバ３から受信した通常レートデータを映像データ分離／結合手段２７に出力し、映像データ分離／結合手段２７から通常レートデータが分離された差分データ及び低レートデータを入力し、入力した差分データ及び低レートデータをバッファメモリ２６に蓄積する。尚、パッチング手段５５は、実施例１と同様に、パッチング処理の際に、パッチングサーバ３との間の回線の混雑状況に応じて、通常レートデータまたは低レートデータをパッチングサーバ３から取得するようにしてもよい。
【０１５０】
データ送信手段５７は、実施例２と同様に、下流ノード１から通常レートデータを取得するためのデータ要求、または低レートデータを取得するための低レートデータ要求を受信する。そして、データ送信手段５７は、データ要求を受信した場合、このデータ要求に対応した差分データ及び低レートデータをバッファメモリ２６から読み出し、読み出した差分データ及び低レートデータを、映像データ分離／結合手段２７に出力し、映像データ分離／結合手段２７から差分データ及び低レートデータが結合された通常レートデータを入力し、入力した通常レートデータを、データ要求を送信してきた下流ノード１へ送信する。一方、データ送信手段５７は、低レートデータ要求を受信した場合、この低レートデータ要求に対応した低レートデータをバッファメモリ２６から読み出し、読み出した低レートデータを、低レートデータ要求を送信してきた下流ノード１へ送信する。
【０１５１】
図２２は、図２１に示した実施例２の変形例のノード１におけるバッファメモリ２６を説明する図である。バッファメモリ２６には、通常レートデータ（通常レート映像）を構成する差分データ及び低レートデータ（低レート映像）が、映像データを所定のサイズに分割したＤＣの番号と共に、時間軸上のシーケンシャル番号順に蓄積されている。すなわち、バッファメモリ２６には、通常レートデータが分離された差分データと低レートデータとがシーケンシャルなＤＣ番号順に蓄積されている。差分データは、通常レートデータが階層化された場合の上位階層のデータに相当し、低レートデータは、基本階層のデータに相当する。また、バッファメモリ２６には、上流ノード１のバッファマップも保存されている。尚、上流ノード１から低レートデータが取得された場合、バッファメモリ２６には、そのＤＣ番号において低レートデータのみが蓄積されている場合もあり得る。
【０１５２】
再生手段１２は、バッファメモリ２６から視聴ポイントの差分データ及び低レートデータを読み出し、読み出した差分データ及び低レートデータを映像データ分離／結合手段２７に出力し、映像データ分離／結合手段２７から差分データ及び低レートデータが結合された通常レートデータを入力し、入力した通常レートデータを再生する。また、再生手段１２は、バッファメモリ２６の視聴ポイントに低レートデータのみが蓄積されている場合、低レートデータを読み出して再生を行う。
【０１５３】
バッファマップ保存手段１３、バッファマップ作成手段１４、映像データ選択手段２２及び回線状況管理手段２４は、図１５に示した構成において、実施例２と同様の処理を行う。
【０１５４】
図２３は、図２１に示した実施例２の変形例における映像データ分離／結合手段２７の処理を説明する図である。映像データ分離／結合手段２７は、データ取得手段５４、パッチング手段５５または再生手段１２から通常レートデータを入力した場合、映像データ分離手段として機能する。映像データ分離／結合手段２７は、入力した１つのＤＣである通常レートデータを差分データ及び低レートデータに分離し、分離した差分データ及び低レートデータを、通常レートデータの入力先であるデータ取得手段５４、パッチング手段５５または再生手段１２に出力する。
【０１５５】
例えば、映像データ分離／結合手段２７は、ＭＰＥＧ等のフレーム間圧縮を用いる動画圧縮形式において、入力した通常レートデータ（通常レート映像）をインターフレーム及びイントラフレームに分離し、インターフレームを差分データとし、イントラフレームを低レートデータとする。
【０１５６】
一方、映像データ分離／結合手段２７は、データ送信手段５７から差分データ及び低レートデータを入力した場合、映像データ結合手段として機能する。映像データ分離／結合手段２７は、入力した差分データ及び低レートデータを１つのＤＣである通常レートデータに結合し、結合した通常レートデータをデータ送信手段５７に出力する。
【０１５７】
（実施例２の変形例によるノードの処理）
次に、実施例２の変形例によるノード１の処理について説明する。実施例２の変形例によるノード１は、図８に示したフローチャートのうち、ステップＳ８０１〜ステップＳ８０３，ステップＳ８０６及びステップＳ８０７と同様の処理を行い、ステップＳ８０４，Ｓ８０５とは異なる処理を行う。ステップＳ８０１〜ステップＳ８０３，ステップＳ８０６及びステップＳ８０７の処理については説明済みであるから、ここでは説明を省略する。
【０１５８】
図８において、実施例２の変形例によるノード１は、ステップＳ８０１〜ステップＳ８０３の処理の後、上流ノード１から通常レートデータまたは低レートデータを取得し、取得した通常レートデータを差分データ及び低レートデータに分離してバッファメモリ２６に蓄積し、取得した低レートデータをバッファメモリ２６に蓄積する（ステップＳ８０４）。この映像データ取得処理の詳細については後述する。また、ノード１は、バッファメモリ２６から差分データ及び低レートデータを読み出して通常レートデータに結合し、結合した通常レートデータを下流ノード１へ送信し、バッファメモリ２６から低レートデータを読み出して下流ノード１へ送信する（ステップＳ８０５）。この映像データ送信処理の詳細については後述する。そして、ノード１は、Ｐ２Ｐネットワークに参加している間、前述の映像データ取得処理（ステップＳ８０４）及び映像データ送信処理（ステップＳ８０５）を繰り返す。
【０１５９】
（映像データ取得処理）
次に、実施例２の変形例における図８の映像データ取得処理（ステップＳ８０４）について詳細に説明する。図２４は、その詳細な処理を示すフローチャートである。図２４に示すステップＳ２４０１，ステップＳ２４０２，ステップＳ２４０５〜ステップＳ２４０８は、図１６に示したステップＳ１６０１，ステップＳ１６０２，ステップＳ１６０４〜ステップＳ１６０７とそれぞれ同じであるから、説明を省略する。
【０１６０】
回線状況管理手段２４が、ステップＳ２４０２において、上流ノード１との間の回線が混雑していると判定した場合（ステップＳ２４０２：Ｙ）、送受信手段２５のデータ取得手段５４は、上流ノード１から取得したバッファマップに基づいて、上流ノード１から低レートデータを取得し、バッファメモリ２６に蓄積する（ステップＳ２４０５）。一方、回線状況管理手段２４が、上流ノード１との間の回線が混雑していないと判定した場合（ステップＳ２４０２：Ｎ）、データ取得手段５４は、上流ノード１から取得したバッファマップに基づいて、上流ノード１から通常レートデータを取得する（ステップＳ２４０３）。そして、データ取得手段５４は、取得した通常レートデータを映像データ分離／結合手段２７に出力し、映像データ分離／結合手段２７は、通常レートデータを差分データ及び低レートデータに分離し、データ取得手段５４は、映像データ分離／結合手段２７により分離された差分データ及び低レートデータをバッファメモリ２６に蓄積する（ステップＳ２４０４）。
【０１６１】
送受信手段２５のパッチング手段５５が、ステップＳ２４０８において、パッチング処理を行うと判定した場合（ステップＳ２４０８：Ｙ）、パッチングサーバ３からデータ（通常レートデータ）を取得する（ステップＳ２４０９）。そして、パッチング手段５５は、取得した通常レートデータを映像データ分離／結合手段２７に出力し、映像データ分離／結合手段２７は、通常レートデータを差分データ及び低レートデータに分離し、パッチング手段５５は、映像データ分離／結合手段２７により分離された差分データ及び低レートデータをバッファメモリ２６に蓄積する（ステップＳ２４１０）。
【０１６２】
（映像データ送信処理）
次に、実施例２の変形例における図８の映像データ送信処理（ステップＳ８０５）について詳細に説明する。図２５は、その詳細な処理を示すフローチャートである。図２５に示すステップＳ２５０１〜ステップＳ２５０４、ステップＳ２５０７、ステップＳ２５０８及びステップＳ２５１０は、図１７に示したステップＳ１７０１〜ステップＳ１７０４、ステップＳ１７０５、ステップＳ１７０６及びステップＳ１７０７とそれぞれ同じであるから、説明を省略する。
【０１６３】
送受信手段２５のデータ送信手段５７が、ステップＳ２５０４において、下流ノード１からデータ要求を受信したと判定した場合（ステップＳ２５０４：Ｙ）、バッファメモリ２６からデータ要求に対応する差分データ及び低レートデータを読み出す（ステップＳ２５０５）。データ送信手段５７は、読み出した差分データ及び低レートデータを映像データ分離／結合手段２７に出力し、映像データ分離／結合手段２７は、差分データ及び低レートデータを結合して通常レートデータを生成する（ステップＳ２５０６）。そして、データ送信手段５７は、映像データ分離／結合手段２７により結合された通常レートデータを、データ要求を送信してきた下流ノード１へ送信する（ステップＳ２５０７）。尚、バッファメモリ２６にデータ要求に対応するデータとして低レートデータのみが蓄積されている場合、データ送信手段５７は、バッファメモリ２６から低レートデータを読み出し、読み出した低レートデータを、データ要求を送信してきた下流ノード１へ送信する。
【０１６４】
送受信手段２５のデータ送信手段５７が、ステップＳ２５０８において、下流ノード１から低レートデータ要求を受信したと判定した場合（ステップＳ２５０８：Ｙ）、バッファメモリ２６から低レートデータ要求に対応する低レートデータを読み出し（ステップＳ２５０９）、読み出した低レートデータを、低レートデータ要求を送信してきた下流ノード１へ送信する（ステップＳ２５１０）。
【０１６５】
以上のように、実施例２の変形例によれば、実施例２と同様に、ノード１における送受信手段２５のデータ取得手段５４は、上流ノード１との間の回線が混雑している場合に、上流ノード１から低レートデータを取得するようにした。これにより、実施例２と同様の効果を奏し、配信サービスを継続させることが可能となる。
【０１６６】
また、実施例２の変形例によれば、ノード１の映像データ分離／結合手段２７は、上流ノード１またはパッチングサーバ３からの通常レートデータを、差分データ及び低レートデータに分離し、データ取得手段５４は、映像データ分離／結合手段２７により分離された差分データ及び低レートデータをバッファメモリ２６に蓄積するようにした。また、映像データ分離／結合手段２７は、送受信手段２５のデータ送信手段５７によりバッファメモリ２６から読み出された差分データ及び低レートデータを結合して通常レートデータを作成し、データ送信手段５７は、映像データ分離／結合手段２７により結合された通常レートデータを下流ノード１へ送信するようにした。つまり、ノード１は、通常レートデータの代わりに、通常レートデータが分離された差分データ及び低レートデータをバッファメモリ２６に蓄積して管理するようにした。これにより、実施例２では通常レートデータと低レートデータとを２重に管理するが、実施例２の変形例では２重の管理が不要となり、バッファメモリ２６の容量を小さくすることができる。また、実施例２では、通常レートデータを低レートデータに変換する映像データ変換手段２３が必要であるが、実施例２の変形例では、配信サーバ２において映像ストリームが予め階層化されるから、映像データ変換手段２３が不要である。これにより、実施例２の変形例では、処理負荷の高い変換処理を行う必要がなく、映像データ分離／結合手段２７による簡易な分離及び結合処理だけで済むから、ノード１の処理量を低減することができる。
【０１６７】
尚、前述した実施例２の変形例によるノード１は、上流ノード１から受信した通常レートデータを、差分データ及び低レートデータに分離し、分離した差分データ及び低レートデータをバッファメモリ２６に蓄積して管理するようにした。また、配信サーバ２は、配信すべき映像ストリームのデータを、差分データ及び低レートデータに予め擬似的に階層化し、階層化した映像ストリームのデータ、つまり、差分データ及び低レートデータから構成される通常レートデータを配信するようにした。これに対し、別の例として、配信サーバ２は、映像ストリームに対し、階層符号化方式（例えば、AVC/H.264 scalable extension SVC（Scalable Video Coding））を用いてエンコードを行い、基本階層のデータ及び上位階層のデータから構成される通常レートデータを配信するようにしてもよい。階層符号化方式は、空間解像度（画素数）または時間解像度（フレームレート）が異なる複数の映像信号を単一符号化ストリームとして符号化する方式をいう。階層符号化により、空間解像度または時間解像度が低い映像データ及び付加情報が、それぞれ基本階層のデータ及び上位階層のデータとして生成される。階層符号化方式は既知であるから、ここでは詳細な説明を省略する。詳細については、例えば、「ITU-T Rec.H.264 ISO/ICE SC 29/WG11 14496-10（MPEG-4 AVC）.Advanced Video Coding for Generic Audiovisual Services.Ver.8,July 2007.」を参照されたい。この場合、ノード１は、上流ノード１から受信した通常レートデータを、基本階層のデータ及び上位階層のデータに分離し、分離した基本階層のデータ及び上位階層のデータをバッファメモリ２６に蓄積して管理する。
【０１６８】
〔実施例３〕
次に、実施例３について説明する。実施例３のノード１は、上流ノード１との間の回線が混雑しているとき、上流ノード１から音声データのみを取得する例である。図１８は、実施例３におけるＰ２Ｐネットワークの処理の概要を説明する図である。図１８に示すように、ノード１Ｃの上流ノードがノード１Ａ，１Ｂであり、ノード１Ａ，１Ｂのバッファメモリには、通常レートのＤＣ８〜ＤＣ２２がそれぞれ蓄積され、ノード１Ｃのバッファメモリには、ＤＣ８〜ＤＣ１６が蓄積されているものとする。また、ノード１Ｃは、ＤＣ１５を視聴ポイントとしてデータを再生し、上流ノード１Ａ，１ＢからバッファマップＡ，Ｂを取得しているものとする。
【０１６９】
ノード１Ｃは、上流ノード１Ａ，１Ｂとの間の回線状況をチェックし、回線が混雑していることを判定すると、バッファマップＡ，Ｂに基づいて取得先のノード１Ｂを決定し、ＤＣ１７についての音声データのみを取得するための音声データ要求を上流ノード１Ｂへ送信し、ノード１Ｂから音声データのＤＣ１７を受信し、バッファメモリに蓄積する。同様に、上流ノード１Ａ，１Ｂとの間の回線が混雑している場合、ノード１Ｃは、ノード１Ｂから音声データのＤＣ１８を取得し、ノード１Ａから音声データのＤＣ１９〜ＤＣ２２を取得する。
【０１７０】
これにより、ノード１Ｃと上流ノード１Ａ，１Ｂとの間の回線が混雑している場合、上流ノード１Ａ，１Ｂからノード１Ｃへ音声データが送信されるから、送信データ量が低減し、ノード１Ｃは、途切れることなく映像ストリームのデータを受信することができる。したがって、配信サービスを継続させることができ、ノード１Ｃは、データの再生を途切れることなく行うことができる。
【０１７１】
実施例２によるノード１と実施例３によるノード１とを比較すると、実施例２によるノード１は、回線が混雑している場合、低レートデータ要求を上流ノード１へ送信し、低レートデータを上流ノード１から受信してバッファメモリ２１に蓄積するが、実施例３によるノード１は、低レートデータ要求の代わりに、音声データのみを取得するための音声データ要求を送信し、音声データのみを受信してバッファメモリ２１に蓄積する。
【０１７２】
実施例３によるノード１は、図１５に示した実施例２の構成から映像データ変換手段２３を除いた構成をしており、図１６に示した実施例２と同様の処理を行うが、低レートデータを扱うことなく音声データを扱う点で実施例２と相違する。すなわち、ノード１における送受信手段２０のデータ取得手段５４は、回線状況管理手段２４により上流ノード１との間の回線が混雑していないと判定された場合、映像データ選択手段２２から通常レートデータを示す選択結果を入力し、通常レートデータを取得するためのデータ要求を上流ノード１へ送信する（ステップＳ１６０３）。一方、データ取得手段５４は、回線が混雑していると判定された場合、映像データ選択手段２２から音声データを示す選択結果を入力し、音声データを取得するための音声データ要求を上流ノード１へ送信する（ステップＳ１６０４）。そして、データ取得手段５４は、上流ノード１から通常レートデータまたは音声データを受信し、バッファメモリ２１に蓄積する。
【０１７３】
データ送信手段５７は、下流ノード１からデータ要求または音声データ要求を受信する。そして、データ送信手段５７は、データ要求を受信した場合、このデータ要求に対応した通常レートデータをバッファメモリ２１から読み出し、読み出した通常レートデータを、データ要求を送信してきた下流ノード１へ送信する。ここで、音声データのみが蓄積されていた場合、通常レートデータの代わりに音声データが送信される。一方、データ送信手段５７は、音声データ要求を受信した場合、この音声データ要求に対応した音声データをバッファメモリ２１から読み出し、読み出した音声データを、音声データ要求を送信してきた下流ノード１へ送信する。
【０１７４】
再生手段１２は、バッファメモリ２１から通常レートデータまたは音声データを読み出して再生を行う。前述のとおり、バッファメモリ２１には、通常レートデータ及び音声データが蓄積されている。
【０１７５】
映像データ選択手段２２は、回線状況管理手段２４から回線状況を入力し、回線状況が混雑していないことを示している場合、通常レートデータを選択結果に設定し、回線状況が混雑していることを示している場合、音声データを選択結果として設定する。そして、映像データ選択手段２２は、設定した選択結果を送受信手段２０のデータ取得手段５４に出力する。
【０１７６】
尚、実施例３によるパッチングサーバ３の構成及び処理は実施例２と同様であるので、ここでは説明を省略する。
【０１７７】
以上のように、実施例３によれば、ノード１における送受信手段２０のデータ取得手段５４は、上流ノード１との間の回線が混雑している場合に、上流ノード１から音声データのみを取得するようにした。これにより、上流ノード１から当該ノード１への送信データ量が低減し、上流ノード１とノード１との間の輻輳を回避することができる。そして、ノード１のバッファメモリ２１には、通常レートデータ及び音声データが混在することになるが、途切れることなく映像ストリームのデータを取得することができる。したがって、上流ノード１との間の回線が混雑している場合であっても、配信サービスを継続させることが可能となり、ノード１を用いる利用者は、再生された映像がフリーズしないから、継続した配信サービスを受けることができる。
【０１７８】
また、実施例３によれば、実施例２と同様に、ノード１がＰ２Ｐネットワークに参加またはＰ２Ｐネットワークから離脱した場合であっても、配信サービスを継続させることができ、このＰ２Ｐネットワークによる配信サービスと、ソーシャルネットワーク等の他のサービスとを連携する場合にも、配信サービスを継続させることができ、他のサービスとの間で低遅延にて時間的な整合を図ることができる。
【０１７９】
尚、本発明の実施例１〜３によるノード１、配信サーバ２、パッチングサーバ３及びディレクトリサーバ４のハードウェア構成としては、通常のコンピュータを使用することができる。ノード１、配信サーバ２、パッチングサーバ３及びディレクトリサーバ４は、ＣＰＵ、ＲＡＭ等の揮発性の記憶媒体、ＲＯＭ等の不揮発性の記憶媒体、及びインターフェース等を備えたコンピュータによって構成される。実施例１によるノード１に備えた送受信手段１０、バッファメモリ１１、再生手段１２、バッファマップ保存手段１３、バッファマップ作成手段１４及び回線状況管理手段１５の各機能は、これらの機能を記述したプログラムをＣＰＵに実行させることによりそれぞれ実現される。また、実施例２，３によるノード１に備えた送受信手段２０、バッファメモリ２１、再生手段１２、バッファマップ保存手段１３、バッファマップ作成手段１４、映像データ選択手段２２、映像データ変換手段２３及び回線状況管理手段２４の各機能も、これらの機能を記述したプログラムをＣＰＵに実行させることによりそれぞれ実現される。また、パッチングサーバ３の送受信手段３０、記憶装置３１、視聴ポイント把握手段３２、視聴ポイント提供手段３３、映像データ変換手段３４及び回線状況管理手段３５の各機能も、これらの機能を記述したプログラムをＣＰＵに実行させることによりそれぞれ実現される。これらのプログラムは、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリ等の記憶媒体に格納して頒布することもでき、ネットワークを介して送受信することもできる。
【符号の説明】
【０１８０】
１，１００  端末装置（ノード）
２  配信サーバ
３，１０３  パッチングサーバ
４  ディレクトリサーバ
５  通信システム
１０，２０，２５，３０  送受信手段
１１，２１，２６  バッファメモリ
１２  再生手段
１３  バッファマップ保存手段
１４  バッファマップ作成手段
１５，２４，３５  回線状況管理手段
２２  映像データ選択手段
２３  映像データ変換手段
２７  映像データ分離／結合手段
３１  記憶装置
３２  視聴ポイント把握手段
３３  視聴ポイント提供手段
３４  映像データ変換手段
５１  ネットワーク参加処理手段
５２  バッファマップ取得手段
５３  視聴ポイント取得手段
５４  データ取得手段
５５  パッチング手段
５６  バッファマップ送信手段
５７  データ送信手段
【図１】
0005865737.tif 000002
【図２】
0005865737.tif 000003
【図３】
0005865737.tif 000004
【図４】
0005865737.tif 000005
【図５】
0005865737.tif 000006
【図６】
0005865737.tif 000007
【図７】
0005865737.tif 000008
【図８】
0005865737.tif 000009
【図９】
0005865737.tif 000010
【図１０】
0005865737.tif 000011
【図１１】
0005865737.tif 000012
【図１２】
0005865737.tif 000013
【図１３】
0005865737.tif 000014
【図１４】
0005865737.tif 000015
【図１５】
0005865737.tif 000016
【図１６】
0005865737.tif 000017
【図１７】
0005865737.tif 000018
【図１８】
0005865737.tif 000019
【図１９】
0005865737.tif 000020
【図２０】
0005865737.tif 000021
【図２１】
0005865737.tif 000022
【図２２】
0005865737.tif 000023
【図２３】
0005865737.tif 000024
【図２４】
0005865737.tif 000025
【図２５】
0005865737.tif 000026