(57)【要約】      （修正有）【課題】Ｐ２Ｐネットワークを含む通信システムにおいて、通信回線が混雑した状況に変化した場合であっても、シームレスな配信サービスを継続させる。【解決手段】ノード１における回線状況管理手段１５は、所定周期にて上流ノードとの間の回線速度をチェックする。送受信手段１０のデータ取得手段は、回線速度に応じた配信階層のデータを上流ノード１から取得する。配信階層決定手段１７は、データを再生するタイミングにおいて、バッファメモリ１１からその配信階層に対応したデータを読み出すことができない場合、配信階層を現状の階層よりも低い階層に変更する。例えば、全階層の配信が開始した後、通信回線が混雑した状況に変化し、ノード１が２階層データしか再生することができなくなった場合、ノード１は、その時点で、回線速度をチェックするタイミングを待つことなく、全階層の配信から２階層または基本階層の配信に変更する。【選択図】図３
2013258657.tif 000002
【特許請求の範囲】
【請求項１】
Ｐ２Ｐネットワークにより、上流の端末装置から映像ストリームのデータを受信しバッファメモリに蓄積して再生し、前記映像ストリームのデータを下流の端末装置へ送信する端末装置において、
所定周期にて、前記上流の端末装置との間の通信回線の速度を測定し、前記通信回線の混雑状況を判定する回線状況判定手段と、
前記回線状況判定手段により判定された通信回線の混雑状況に基づいて、配信階層を決定する配信階層決定手段と、
前記配信階層決定手段により決定された配信階層のデータを、前記上流の端末装置から取得し、前記取得したデータを前記バッファメモリに蓄積するデータ取得手段と、
所定の再生タイミングにて、前記バッファメモリからデータを読み出し、前記読み出したデータを階層復号して再生する再生手段と、を備え、
前記配信階層決定手段は、さらに、前記バッファメモリに、既に決定した配信階層に対応したデータよりも低い階層のデータが蓄積されている場合、前記既に決定した配信階層よりも低い階層になるように、新たな配信階層を決定する、ことを特徴とする端末装置。
【請求項２】
請求項１に記載の端末装置において、
前記配信階層決定手段は、前記回線状況判定手段により判定された通信回線の混雑状況に基づいて、配信階層を決定すると共に、前記所定の再生タイミングにて、前記バッファメモリにおける前記再生を行う視聴ポイントの位置に、既に決定した配信階層に対応したデータよりも低い階層のデータが蓄積されている場合、前記既に決定した配信階層よりも低い階層になるように、新たな配信階層を決定する、ことを特徴とする端末装置。
【請求項３】
請求項１に記載の端末装置において、
前記配信階層決定手段は、前記回線状況判定手段により判定された通信回線の混雑状況に基づいて、配信階層を決定すると共に、前記バッファメモリにおける前記再生を行う視聴ポイントのデータよりも新しいデータが蓄積される所定位置を監視し、前記所定位置のデータが、既に決定した配信階層よりも低い階層のデータである場合、前記既に決定した配信階層よりも低い階層になるように、新たな配信階層を決定する、ことを特徴とする端末装置。
【請求項４】
請求項１から３までのいずれか一項に記載の端末装置において、
前記配信階層決定手段は、既に決定した配信階層よりも低い階層を基本階層とし、前記基本階層を新たな配信階層に決定する、ことを特徴とする端末装置。
【請求項５】
コンピュータを、請求項１から４までのいずれか一項に記載の端末装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ライブ映像配信ネットワーク、アプリケーションレイヤマルチキャスト技術等におけるＰ２Ｐネットワークサービスに関し、特に、多数の利用者にシームレスなサービスを提供するＰ２Ｐネットワークサービスに用いる端末装置及びプログラムに関するものである。
【背景技術】
【０００２】
従来、ライブ映像等を配信するＰ２Ｐネットワークサービスが知られている。Ｐ２Ｐネットワークサービスは、ネットワーク上で対等な関係にある端末装置間を相互に接続することにより、ライブ映像等のデータを送受信する配信サービスをいう。Ｐ２Ｐネットワークサービスを実現するための端末装置間の接続構造の例として、メッシュ型、ツリー型があり、端末装置間でデータを中継する手法の例として、プル型、プッシュ型がある。以下に説明するＰ２Ｐネットワークは、接続構造がメッシュ型であり、データ中継手法がプル型であるものとする。
【０００３】
図１５（１）は、Ｐ２Ｐネットワークにおけるメッシュ型接続構造を説明する図であり、図１５（２）は、Ｐ２Ｐネットワークにおけるプル型中継手法を説明する図である。図１５（１）を参照して、メッシュ型接続構造は、上流の端末装置と下流の端末装置との間の接続数の関係が、ｍ：ｎ（ｍ，ｎは正の整数）となる構造をいう。このようなメッシュ型接続構造のＰ２Ｐネットワークにおいて、例えば、波長分割多重伝送を行うことで、安定した通信及びスケーラビリティを実現する手法が提案されている（例えば、特許文献１を参照）。
【０００４】
図１５（２）を参照して、プル型中継手法は、下流の端末装置からの要求に従って上流の端末装置がデータを送信する手法である。具体的には、端末装置１００Ａ，１００Ｂ，１００Ｃを含むＰ２Ｐネットワークの通信システムにおいて、以下のステップＳ１〜ステップＳ３の処理を行うことにより、上流の端末装置１００Ａ，１００Ｂが保持しているデータが下流の端末装置１００Ｃへ送信される。まず、上流の端末装置１００Ａは、保持しているデータのシーケンス番号（データチャンク（ＤＣ）番号）を含むバッファマップを下流の端末装置１００Ｃへ通知する（ステップＳ１）。ＤＣ及びＤＣ番号の詳細については後述する。端末装置１００Ｃは、端末装置１００Ａからバッファマップを受信し、バッファマップが示すシーケンス番号に基づいて、保持していないデータを取得するための要求を端末装置１００Ａへ通知する（ステップＳ２）。そして、端末装置１００Ａは、端末装置１００Ｃからの要求に従って、要求されたデータを端末装置１００Ｃへ送信する（ステップＳ３）。例えば、端末装置１００Ｃは、端末装置１００Ａ，１００Ｂから取得したバッファマップが示すＤＣ番号に基づいて、ＤＣ番号「１」「３」のデータを取得するための要求を端末装置１００Ａへ送信することでこれらのデータを受信し、ＤＣ番号「２」「４」のデータを取得するための要求を端末装置１００Ｂへ送信することでこれらのデータを受信する。これにより、端末装置１００Ｃは、上流の端末装置１００Ａ，１００ＢからＤＣ番号「１」「２」「３」「４」のデータを取得することができる。
【０００５】
また、端末装置１００Ｃは、自らが保持しているデータのＤＣ番号を含むバッファマップを、図示しない下流の端末装置へ通知する。そして、端末装置１００Ｃは、下流の端末装置からの要求に従って、要求されたデータを下流の端末装置へ送信する。これにより、端末装置１００Ｃは、下流の端末装置へデータを送信することができる。
【０００６】
尚、本発明の実施形態では、階層符号化により符号化されたライブ映像等のデータを送受信する配信サービスを対象とするため、バッファマップには、保持しているデータのＤＣ番号に加え、データの階層も含まれる。階層符号化及び階層の詳細については後述する。
【０００７】
このように、Ｐ２Ｐネットワークは、ライブ映像等の配信サービスを受ける複数の端末装置により構成されるＰ２Ｐグループを形成し、１台の端末装置に対し、上流側に複数の端末装置を接続し、下流側に複数の端末装置を接続する。１台の端末装置は、複数の上流の端末装置からデータを取得し、取得したデータを中継することで複数の下流の端末装置へデータを提供する。このようなＰ２Ｐネットワークの通信システムによれば、端末装置は、ライブ映像等を配信する配信サーバから直接的にデータを受信することなく、上流の端末装置からデータを受信するから、効率的な配信サービスを実現することができる。
【０００８】
図１６は、従来のＰ２Ｐネットワークにおける処理の概要を説明する図である。このＰ２Ｐネットワークを含む通信システムは、ライブ映像等を配信する図示しない配信サーバ、配信サーバからのデータを中継する複数の端末装置、及び、配信サーバからのデータを蓄積し、Ｐ２Ｐネットワークに新たに参加する端末装置へ視聴ポイント及びデータを送信するパッチングサーバ１０３を備えて構成される。このようなＰ２Ｐネットワークに新たに端末装置１００Ｃが参加した場合、端末装置１００Ｃは、まず、パッチングサーバ３から視聴ポイント及びデータを取得する。そして、端末装置１００Ｃは、上流の端末装置１００Ａ，１００Ｂのバッファメモリに蓄積されているライブ映像等のデータに関する情報が示されたバッファマップＡ，Ｂを取得する。そして、端末装置１００Ｃは、このバッファマップＡ，Ｂに基づいて、上流の端末装置１００Ａ，１００Ｂへデータ要求を送信し、データ要求に対応するデータを取得して自らのバッファメモリに蓄積し、データを再生する。
【０００９】
ここで、バッファマップは、バッファメモリに蓄積されている映像データの状態（データチャンクの蓄積状態）を示す保管情報であり、データチャンク番号を識別可能な情報からなる。データチャンク（ＤＣ）とは、映像データを所定のサイズで分割したときのデータをいい、例えば１秒間の映像データをいう。データチャンク番号（ＤＣ番号）とは、映像データを所定のサイズ毎のＤＣに時間軸上で順番に分割したときのＤＣの番号をいい、映像データのＤＣを識別するためのシーケンシャルな番号をいう。
【００１０】
いま、端末装置１００Ａのバッファメモリには、ＤＣ８〜ＤＣ２２が蓄積され、端末装置１００Ｂのバッファメモリにも、ＤＣ８〜ＤＣ２２が蓄積され、端末装置１００Ｃのバッファメモリには、ＤＣ８〜ＤＣ１９が蓄積されているものとする。
【００１１】
端末装置１００Ｃは、所定の時間間隔にて、上流の端末装置１００Ａ，１００ＢからバッファマップＡ，Ｂを取得する。取得した最新のバッファマップＡには、端末装置１００ＡのバッファメモリにＤＣ８〜ＤＣ２２が蓄積されていることが示され、取得したバッファマップＢには、端末装置１００ＢのバッファメモリにＤＣ８〜ＤＣ２２が蓄積されていることが示されている。端末装置１００Ｃは、バッファマップＡ，Ｂに基づいて、ＤＣ２０，ＤＣ２１を端末装置１００Ａから取得することを決定すると共に、ＤＣ２２を端末装置１００Ｂから取得することを決定する。バッファマップＡ，Ｂに基づいてＤＣの取得先を決定する手法として、例えばランダムに取得先を決定する。端末装置１００Ｃは、ＤＣ２０，ＤＣ２１を取得するためのデータ要求を端末装置１００Ａへ送信し、端末装置１００ＡからＤＣ２０，ＤＣ２１を受信してバッファメモリに蓄積する。そして、端末装置１００Ｃは、ＤＣ２２を取得するためのデータ要求を端末装置１００Ｂへ送信し、端末装置１００ＢからＤＣ２２を受信してバッファメモリに蓄積する。これにより、端末装置１００Ｃのバッファメモリには、図１６に示すように、ＤＣ８〜ＤＣ２２が蓄積されることになる。尚、視聴ポイント及び再生スレッショルドについては後述する。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】国際公開第２００６／０４６５７６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかしながら、端末装置１００Ｃが接続された回線は、必ずしも十分な速度を有するとは限らない。すなわち、端末装置１００Ｃは、バッファマップＡ，Ｂを取得した後、データ要求を上流の端末装置１００Ａ，１００Ｂへ送信したとしても、このデータ要求に対するデータを、すぐに取得できるとは限らない。また、端末装置１００Ｃが回線に接続された後、回線が徐々に混雑することもあり得る。このような場合には、端末装置１００Ｃは、データを取得するのが遅れることになる。また、上流の端末装置１００Ａ，１００Ｂは、端末装置１００Ｃからのデータ要求を受信するのが遅くなり、データ要求に対応するデータが既にバッファメモリから消失していることもあり得る。そして、端末装置１００Ｃは、上流の端末装置１００Ａ，１００Ｂからデータを取得することができなくなる。その結果、配信サービスを受ける利用者は、再生された映像がフリーズする等して、継続したサービスを受けることができないという問題があった。
【００１４】
このような問題を解決するために、本件特許出願の同一の出願人によりなされた、本件特許出願時に未公開の特願２０１２−４９６０８号公報に記載されているように、通常レートデータと低レートデータとを予め準備しておき、回線が混雑しているときに低レートデータを送信する手法が提案されている。また、前記未公開の公報に記載されているように、階層符号化を用いることにより、レートに応じた複数種類のデータを予め準備する必要をなくす手法も提案されている。この手法では、端末装置は、回線が混雑していないときに通常レートデータである基本階層データ及び上位階層データを送信し、回線が混雑しているときに低レートデータである基本階層データのみを送信する。
【００１５】
ここで、階層符号化は、例えば空間解像度（画素数）または時間解像度（フレームレート）が異なる複数の映像信号を単一符号化ストリームとして符号化することをいう。階層符号化により、例えば空間解像度または時間解像度の低い映像データが基本階層データとして生成され、付加情報が上位階層データとして生成される。階層符号化については既知であるから、ここでは詳細な説明を省略する。詳細については、例えば、「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.」を参照されたい。
【００１６】
図１７（１）は、階層符号化を用いない場合のデータ配信の例を説明する図であり、図１７（２）は、階層符号化を用いた場合のデータ配信の例を説明する図である。図１７（１）に示すように、階層符号化を用いない例では、回線の混雑度合いに応じて予め設定された送信形態にて、低レート用符号化器により符号化された低レート用データＬが携帯端末へ送信され、中レート用符号化器により符号化された中レート用データＭが小型テレビへ送信され、高レート用符号化器により符号化された高レート用データＨが大画面テレビへ送信される。サーバには、レートに応じた３種類の低レート用データＬ、中レート用データＭ及び高レート用データＨが蓄積される。
【００１７】
一方、図１７（２）に示すように、階層符号化の例では、階層符号化器により基本階層データＬ０、第１階層データＬ１及び第２階層データＬ２が生成され、回線の混雑度合いに応じて予め設定された送信形態にて、基本階層データＬ０が携帯端末へ送信され、基本階層データＬ０及び第１階層データＬ１が小型テレビへ送信され、基本階層データＬ０、第１階層データＬ１及び第２階層データＬ２が大画面テレビへ送信される。サーバには、基本階層データＬ０、第１階層データＬ１及び第２階層データＬ２が蓄積される。携帯端末の階層復号器は、基本階層データＬ０を復号することで、低品質の映像データを再生することができ、小型テレビの階層復号器は、基本階層データＬ０及び第１階層データＬ１を復号することで、中品質の映像データを再生することができ、大画面テレビの階層復号器は、基本階層データＬ０、第１階層データＬ１及び第２階層データＬ２を復号することで、高品質の映像データを再生することができる。尚、第１階層データＬ１のみでは映像データを再生することができず、第２階層データＬ２のみも同様であり、第１階層データＬ１及び第２階層データＬ２についても同様である。映像データを再生するためには、基本階層データＬ０が必須となる。
【００１８】
図１８は、階層符号化を用いたデータ配信手法の詳細を説明する図である。上流の端末装置（上流ノード）が、ＤＣ８〜ＤＣ２２の基本階層データａ、第１階層データｂ及び第２階層データｃを蓄積しているものとする。端末装置（図１８右側に示したノード）は、上流ノードとの間の回線速度をチェックし、回線が高速であり混雑していないと判定した場合、上流ノードへ高レート全階層配信要求を送信し、上流ノードからＤＣ毎の基本階層データａ、第１階層データｂ及び第２階層データｃを受信し、受信したデータをＤＣ番号順に並び替え、高品質の再生を行う。また、ノードは、上流ノードとの間の回線が中速でありさほど混雑していないと判定した場合、上流ノードへ中レート２階層配信要求を送信し、上流ノードからＤＣ毎の基本階層データａ及び第１階層データｂを受信し、受信したデータをＤＣ番号順に並び替え、中品質の再生を行う。さらに、ノードは、上流ノードとの間の回線が低速であり混雑していると判定した場合、上流ノードへ低レート基本階層配信要求を送信し、上流ノードからＤＣ毎の基本階層データａを受信し、低品質の再生を行う。
【００１９】
図１８に示したデータ配信手法では、上流ノードとの間の回線速度がチェックされ、配信階層（高レート全階層、中レート２階層または低レート基本階層）が決定された後にデータ配信が行われる。しかしながら、例えば、データ配信を開始した後に回線の状況が変化し、回線が細くなった場合には（回線が混雑していない状況から混雑している状況に変化した場合には）、再生状態が不安定になり、配信サービスをシームレスに継続することができない可能性がある。
【００２０】
図１９は、図１８のデータ配信手法において、データ配信を開始した後に回線が混雑した場合を説明する図である。まず、端末装置（図１９右側に示したノード）は、図１９上段に示すように、上流ノードとの間の回線速度をチェックし、回線が高速であり混雑していないと判定し、上流ノードへ高レート全階層配信要求を送信し、上流ノードからＤＣ毎の基本階層データａ、第１階層データｂ及び第２階層データｃを受信し、受信したデータをＤＣ番号順に並び替え、高品質の再生を行っているものとする。ノードは、上流ノードとの間の回線速度を所定の周期でチェックし、そのチェック結果に応じて配信階層を変更する。本例では、データ配信を開始したときには、回線が混雑しておらず、高レート全階層配信を行っている。
【００２１】
そして、データ配信を開始した後、回線が混雑した場合を想定する。ノードは、図１９中段に示すように、所定の周期にて回線速度をチェックする処理において、（ａ）のタイミングで回線速度をチェックした結果、回線が中速でありさほど混雑していないと判定した場合、上流ノードへ中レート２階層配信要求を送信し、上流ノードからＤＣ毎の基本階層データａ及び第１階層データｂを受信し、受信したデータをＤＣ番号順に並び替え、中品質の再生を行う。また、ノードは、図１９下段に示すように、所定の周期にて回線速度をチェックする処理において、（ｂ）のタイミングで回線速度をチェックした結果、回線が低速であり混雑していると判定した場合、上流ノードへ低レート基本階層配信要求を送信し、上流ノードからＤＣ毎の基本階層データａを受信し、低品質の再生を行う。
【００２２】
回線の混雑状況は、（ａ）及び（ｂ）のタイミングよりも前に悪化しており、回線状況が悪化しているにもかかわらず、ノードは、上流ノードへ高レート全階層配信要求を送信し、上流ノードからＤＣ毎の基本階層データａ、第１階層データｂ及び第２階層データｃを受信する。しかし、ノードは、ＤＣ毎の基本階層データａ、第１階層データｂ及び第２階層データｃを、必ずしも逐次受信できるとは限らず、データを受信するのが遅くなり、再生に間に合わないこともあり得る。この場合、再生品質が低下したり、再生が停止したり等、再生が不安定になってしまう。
【００２３】
つまり、ノードは、上流ノードとの間の回線速度を所定の周期にてチェックし、このチェックのタイミングにおいて、チェック結果に応じた配信階層にて上流ノードへ配信要求を送信するが、回線速度チェックのタイミングの間で回線が混雑した場合には、図１９に示したとおり、回線速度チェックのタイミングまで待って、配信階層を、高レート全階層から中レート２階層または低レート基本階層に切り替える。このため、切り替えのための時間が必要になり、その時間の間、再生が不安定になる可能性がある。このような問題を解消するために、回線速度をチェックする周期を短くし、頻繁にチェックを行うことが想定されるが、周期を短くした場合は、処理負荷が高くなり非効率となる。
【００２４】
そこで、本発明は前記課題を解決するためになされたものであり、その目的は、Ｐ２Ｐネットワークを含む通信システムにおいて、通信回線が混雑した状況に変化した場合であっても、シームレスな配信サービスを継続させることが可能な端末装置及びプログラムを提供することにある。
【課題を解決するための手段】
【００２５】
前記課題を解決するため、本発明による端末装置は、Ｐ２Ｐネットワークにより、上流の端末装置から映像ストリームのデータを受信しバッファメモリに蓄積して再生し、前記映像ストリームのデータを下流の端末装置へ送信する端末装置において、所定周期にて、前記上流の端末装置との間の通信回線の速度を測定し、前記通信回線の混雑状況を判定する回線状況判定手段と、前記回線状況判定手段により判定された通信回線の混雑状況に基づいて、配信階層を決定する配信階層決定手段と、前記配信階層決定手段により決定された配信階層のデータを、前記上流の端末装置から取得し、前記取得したデータを前記バッファメモリに蓄積するデータ取得手段と、所定の再生タイミングにて、前記バッファメモリからデータを読み出し、前記読み出したデータを階層復号して再生する再生手段と、を備え、前記配信階層決定手段が、さらに、前記バッファメモリに、既に決定した配信階層に対応したデータよりも低い階層のデータが蓄積されている場合、前記既に決定した配信階層よりも低い階層になるように、新たな配信階層を決定する、ことを特徴とする。
【００２６】
また、本発明による端末装置は、前記配信階層決定手段が、前記回線状況判定手段により判定された通信回線の混雑状況に基づいて、配信階層を決定すると共に、前記所定の再生タイミングにて、前記バッファメモリにおける前記再生を行う視聴ポイントの位置に、既に決定した配信階層に対応したデータよりも低い階層のデータが蓄積されている場合、前記既に決定した配信階層よりも低い階層になるように、新たな配信階層を決定する、ことを特徴とする。
【００２７】
また、本発明による端末装置は、前記配信階層決定手段が、前記回線状況判定手段により判定された通信回線の混雑状況に基づいて、配信階層を決定すると共に、前記バッファメモリにおける前記再生を行う視聴ポイントのデータよりも新しいデータが蓄積される所定位置を監視し、前記所定位置のデータが、既に決定した配信階層よりも低い階層のデータである場合、前記既に決定した配信階層よりも低い階層になるように、新たな配信階層を決定する、ことを特徴とする。
【００２８】
また、本発明による端末装置は、前記配信階層決定手段が、既に決定した配信階層よりも低い階層を基本階層とし、前記基本階層を新たな配信階層に決定する、ことを特徴とする。
【００２９】
さらに、本発明によるプログラムは、コンピュータを、前記端末装置として機能させることを特徴とする。
【発明の効果】
【００３０】
以上のように、本発明によれば、通信回線が混雑した状況に変化した場合、端末装置は、回線速度をチェックするタイミングよりも前に、その状況を認識することができ、上流の端末装置に対する配信階層の要求を迅速に変更することができる。したがって、通信回線が混雑した状況に変化した場合であっても、通信回線の混雑状況に応じた階層のデータ配信を迅速に実現することができるから、再生が不安定になることがない。つまり、シームレスな配信サービスを継続させ、配信サービスのリアルタイム性を実現することが可能となる。
【図面の簡単な説明】
【００３１】
【図１】本発明の実施形態によるＰ２Ｐネットワークを含む通信システムの全体構成を示す概略図である。
【図２】本発明の実施形態における処理の概要を説明する図である。
【図３】端末装置の構成を示すブロック図である。
【図４】送受信手段の構成を示すブロック図である。
【図５】バッファメモリに蓄積されるデータの量と、視聴ポイント、パッチングスレッショルド及び再生スレッショルドとの関係を説明する図である。
【図６】（１）は、全階層データが蓄積されるバッファメモリを説明する図である。（２）は、２階層データが蓄積されるバッファメモリを説明する図である。（３）は、基本階層データが蓄積されるバッファメモリを説明する図である。
【図７】視聴ポイント及び再生スレッショルドを基準位置としたデータ再生処理を示すフローチャートである。
【図８】パッチングスレッショルドを基準位置としたパッチング処理を示すフローチャートである。
【図９】端末装置の処理を示すフローチャートである。
【図１０】図９のネットワーク参加処理（ステップＳ９０１）を説明する図である。
【図１１】図９の映像データ取得処理（ステップＳ９０４）の詳細を示すフローチャートである。
【図１２】図１１の配信要求及びデータ取得処理（ステップＳ１１１２）の詳細を示すフローチャートである。
【図１３】データ再生のタイミングで配信階層を変更する処理を説明する図である。
【図１４】図９の映像データ送信処理（ステップＳ９０５）の詳細を示すフローチャートである。
【図１５】（１）は、Ｐ２Ｐネットワークにおけるメッシュ型接続構造を説明する図である。（２）は、Ｐ２Ｐネットワークにおけるプル型中継手法を説明する図である。
【図１６】従来のＰ２Ｐネットワークにおける処理の概要を説明する図である。
【図１７】（１）は、階層符号化を用いない場合のデータ配信の例を説明する図である。（２）は、一般的な階層符号化を用いた場合のデータ配信の例を説明する図である。
【図１８】階層符号化を用いたデータ配信手法の詳細を説明する図である。
【図１９】図１８のデータ配信手法において、データ配信を開始した後に回線が混雑した場合を説明する図である。
【発明を実施するための形態】
【００３２】
以下、本発明を実施するための形態について図面を用いて詳細に説明する。以下に説明する本発明の実施形態は、Ｐ２Ｐネットワークを構成する複数の端末装置、及び、ライブ映像等の映像ストリームを配信する配信サーバを含む通信システムにおいて、所定周期で回線速度をチェックし、上流端末装置から配信される映像データの配信階層を決定することで、映像データの配信を開始し、その後、通信回線が混雑した状況に変化した場合、所定周期で回線速度をチェックして配信階層を決定するタイミングよりも早く、配信階層を低下させることを特徴とする。具体的には、端末装置は、決定した配信階層の映像データがバッファメモリに蓄積されているか否かを、所定のタイミングにてチェックし、決定した配信階層の映像データが蓄積されていない場合、配信階層を低下させる。これにより、通信回線が混雑した状況に変化したとしても、端末装置は、上流端末装置から送信される映像データの階層を迅速に変更することができる。したがって、通信回線の混雑状況に応じた階層のデータ配信を迅速に実現することができるから、再生が不安定になることがなく、シームレスな配信サービスを継続させ、配信サービスのリアルタイム性を実現することが可能となる。
【００３３】
〔Ｐ２Ｐネットワークの通信システム〕
図１は、本発明の実施形態によるＰ２Ｐネットワークを含む通信システムの全体構成を示す概略図である。この通信システム５は、図１５（１）（２）に示したメッシュ型接続構造及びプル型中継手法のＰ２Ｐネットワークを構成し、複数の端末装置（以下、「ノード」という。）１Ａ，１Ｂ，１Ｃ，・・・（総称して「ノード１」という。）、配信サーバ２、パッチングサーバ３及びディレクトリサーバ４を備えている。これらの装置は、インターネット等の通信回線を介して接続される。
【００３４】
この通信システム５により配信される映像ストリームのデータは、階層符号化を用いたデータである。具体的には、図１８に示したように、高レート全階層配信要求に対して基本階層データａ、第１階層データｂ及び第２階層データｃ（以下、「全階層データ」という。）が配信され、中レート２階層配信要求に対して基本階層データａ及び第１階層データｂ（以下、「２階層データ」という。）が配信され、低レート基本階層配信要求に対して基本階層データａ（以下、「基本階層データ」という。）が配信されるものとする。
【００３５】
ノード１は、Ｐ２Ｐネットワークにより、配信サーバ２から配信された映像ストリームのデータを、上流側に接続されたノード１（以下、「上流ノード１」という。）から受信して蓄積し、下流側に接続されたノード１（以下、「下流ノード１」という。）へ送信すると共に、蓄積したデータを階層復号して再生する。また、ノード１は、蓄積している映像ストリームのデータが所定量以下になったときに行うパッチング処理の際に、パッチングサーバ３から映像ストリームのデータを受信する。パッチング処理については後述する。
【００３６】
配信サーバ２は、映像ストリームを階層符号化し、階層符号化した映像ストリームのデータをＤＣ毎に、Ｐ２Ｐネットワークによりそれぞれのノード１へ配信すると共に、パッチングサーバ３へ送信する。映像ストリームのデータには、映像データに加え音声データも含まれる。このとき、配信サーバ２は、映像データの再生時刻に関する情報も、ノード１及びパッチングサーバ３へ送信する。これにより、ノード１は、映像データの再生時刻に関する情報及びＤＣ番号に基づいて、当該ＤＣ番号のデータを再生する時刻（データ再生タイミング）を特定することができる。映像データの再生時刻に関する情報とは、例えば、映像ストリームにおける先頭のＤＣの再生を開始する時刻情報、及びＤＣ番号の増加に伴う再生時刻の時間差情報である。
【００３７】
パッチングサーバ３は、配信サーバ２から映像ストリームのデータを連続的に受信すると共に、映像データの再生時刻に関する情報も受信し、現在の視聴ポイントを設定する。また、パッチングサーバ３は、ノード１から視聴ポイント要求を受信し、設定した現在の視聴ポイント及び映像データの再生時刻に関する情報を、視聴ポイント要求を送信してきたノード１へ送信する。また、パッチングサーバ３は、ノード１から低レート基本階層配信要求を受信し、この低レート基本階層配信要求に対応した基本階層データを、低レート基本階層配信要求を送信してきたノード１へ送信する。
【００３８】
ディレクトリサーバ４は、Ｐ２Ｐネットワークに参加しているノード１、配信サーバ２及びパッチングサーバ３のアドレス等の情報を管理する。ディレクトリサーバ４は、Ｐ２Ｐネットワークに新たに参加したノード１から当該ノード１に関する情報を受信し、通信システム５を構成する配信サーバ２及びパッチングサーバ３に関する情報、Ｐ２Ｐネットワークに参加している全てまたは一部のノード１に関する情報、並びに、上流ノード１に関する情報及び下流ノード１に関する情報を、新たに参加したノード１へ送信する。これにより、新たに参加したノード１は、配信サーバ２、パッチングサーバ３、上流ノード１及び下流ノード１との間で通信を行うことができる。
【００３９】
〔処理の概要〕
まず、本発明の実施形態における処理の概要を説明する。図２は、本発明の実施形態における処理の概要を説明する図である。まず、ノード１Ｃは、上流ノード１Ａとの間の回線速度をチェックすることで、回線が高速であり混雑していないと判定するものとする。そうすると、ノード１Ｃは、上流ノード１Ａへ高レート全階層配信要求を送信し、上流ノード１ＡからＤＣ毎の全階層データ（基本階層データａ、第１階層データｂ及び第２階層データｃ）を受信する。
【００４０】
ここで、映像データの再生時刻は、ＤＣ番号毎に予め設定されている。パッチングサーバ３は、視聴ポイントをノード１へ送信する際に、前述のとおり、映像データの再生時刻に関する情報も送信する。ノード１は、パッチングサーバ３から受信した再生時刻に関する情報に基づいて、ＤＣ番号に対する再生時刻を特定することができる。映像データは、ＤＣを再生するための基準時刻がＤＣ番号毎に決められており、ノード１は、その基準時刻に対して所定時間遅れた時刻を再生タイミングとして、各ＤＣ番号のデータを再生する。
【００４１】
ノード１Ｃは、ノード１Ａから送信された全階層データを構成する基本階層データａ、第１階層データｂ及び第２階層データｃのそれぞれを受信し、受信したそれぞれのデータをＤＣ番号順に並び替えてバッファメモリに蓄積する。そして、ノード１Ｃは、ＤＣ番号に応じた再生タイミングになると、バッファメモリから当該ＤＣ番号のデータを読み出し、階層復号して再生を行う。
【００４２】
図２上段は、ノード１Ｃが、所定のＤＣ番号のデータを再生するタイミングにて、バッファメモリから当該ＤＣ番号のデータを読み出す際に、当該ＤＣ番号の全階層データがバッファメモリに蓄積されている場合を示している。ノード１Ｃは、バッファメモリから全階層データを構成する基本階層データａ、第１階層データｂ及び第２階層データｃを読み出し、読み出した全階層データを階層復号して再生を行う。このように、ノード１Ｃは、高レート全階層配信要求に対応した全階層データを受信してバッファメモリに蓄積し、バッファメモリから全階層データを読み出すことができ、高品質の再生を実現することができる。
【００４３】
図２中段は、ノード１Ｃが、所定のＤＣ番号のデータを再生するタイミングにて、バッファメモリから当該ＤＣ番号のデータを読み出す際に、当該ＤＣ番号の全階層データを構成する基本階層データａ、第１階層データｂ及び第２階層データｃのうち２階層データを構成する基本階層データａ及び第１階層データｂのみがバッファメモリに蓄積されている場合を示している。例えば通信回線が混雑している場合には、データ再生のタイミングまでに、全階層データがノード１Ｃのバッファメモリに蓄積されず、２階層データのみが蓄積されることがあり得る。ノード１Ｃは、バッファメモリから２階層データを読み出し、読み出した２階層データを階層復号して再生を行う。このように、ノード１Ｃは、高レート全階層配信要求に対応した全階層データを受信してバッファメモリに蓄積することができない場合、バッファメモリに蓄積されている２階層データを読み出し、中品質の再生を実現する。
【００４４】
本発明の実施形態では、ノード１Ｃは、データ再生のタイミングにて、バッファメモリから高レート全階層配信要求に対応した全階層データを読み出すことができず、２階層データを読み出した場合、２階層データを再生すると共に、配信階層を全階層から２階層または基本階層に変更し、変更後の２階層または基本階層にて映像データの配信を受ける。図２中段に示した例では、ノード１Ｃは、バッファメモリから高レート全階層配信要求に対応したＤＣ８〜ＤＣ１２の全階層データを読み出すことができず、２階層データを読み出して再生したから、配信階層を全階層から２階層に変更し、上流ノード１Ａから送信されたＤＣ１３〜ＤＣ２２の２階層データを受信しバッファメモリに蓄積している。
【００４５】
図２下段は、ノード１Ｃが、所定のＤＣ番号のデータを再生するタイミングにて、バッファメモリから当該ＤＣ番号のデータを読み出す際に、当該ＤＣ番号の全階層データを構成する基本階層データａ、第１階層データｂ及び第２階層データｃのうち基本階層データａのみがバッファメモリに蓄積されている場合を示している。例えば通信回線が混雑している場合には、データ再生のタイミングまでに、全階層データがノード１Ｃのバッファメモリに蓄積されず、基本階層データのみが蓄積されることがあり得る。ノード１Ｃは、バッファメモリから基本階層データを読み出し、読み出した基本階層データを階層復号して再生を行う。このように、ノード１Ｃは、高レート全階層配信要求に対応した全階層データを受信してバッファメモリに蓄積することができない場合、バッファメモリに蓄積されている基本階層データを読み出し、低品質の再生を実現する。
【００４６】
本発明の実施形態では、ノード１Ｃは、データ再生のタイミングにて、バッファメモリから高レート全階層配信要求に対応した全階層データを読み出すことができず、基本階層データを読み出した場合、基本階層データを再生すると共に、配信階層を全階層から基本階層に変更し、変更後の基本階層にて映像データの配信を受ける。図２下段に示した例では、ノード１Ｃは、バッファメモリから高レート全階層配信要求に対応したＤＣ８〜ＤＣ１２の全階層データを読み出すことができず、基本階層データを読み出して再生したから、配信階層を全階層から基本階層に変更し、上流ノード１Ａから送信されたＤＣ１３〜ＤＣ２２の基本階層データを受信しバッファメモリに蓄積している。
【００４７】
〔ノード１の構成〕
次に、本発明の実施形態によるノード１の構成について説明する。図３は、ノード１の構成を示すブロック図である。このノード１は、送受信手段１０、バッファメモリ１１、再生手段１２、バッファマップ保存手段１３、バッファマップ作成手段１４、回線状況管理（判定）手段１５、階層復号手段１６及び配信階層決定手段１７を備えている。図３に示す構成は、図１に示した通信システム５に含まれるノード１Ａ，１Ｂ，１Ｃ，・・・に共通である。送受信手段１０は、配信サーバ２、パッチングサーバ３、ディレクトリサーバ４、上流ノード１及び下流ノード１との間で通信を行う。尚、再生手段１２は、階層復号手段１６を含むようにしてもよい。
【００４８】
図４は、図３に示した送受信手段１０の構成を示すブロック図である。送受信手段１０は、ネットワーク参加処理手段５１、バッファマップ取得手段５２、視聴ポイント取得手段５３、データ取得手段５４、パッチング手段５５、バッファマップ送信手段５６及びデータ送信手段５７等を備えている。
【００４９】
送受信手段１０のネットワーク参加処理手段５１は、当該ノード１がＰ２Ｐネットワークに新たに参加するときに、当該ノード１のアドレス等の情報を含む参加要求をディレクトリサーバ４へ送信する。これにより、ディレクトリサーバ４は、当該ノード１に関する情報を管理する。また、ネットワーク参加処理手段５１は、ディレクトリサーバ４から、Ｐ２Ｐネットワークに参加しているノード１に関する情報、配信サーバ２及びパッチングサーバ３に関する情報、並びに、上流ノード１に関する情報及び下流ノード１に関する情報を受信する。これにより、当該ノード１は、配信サーバ２、パッチングサーバ３、上流ノード１及び下流ノード１の間で通信を行うことができる。
【００５０】
バッファマップ取得手段５２は、バッファマップ保存手段１３からの取得要求に基づいて、所定の時間間隔にて、バッファマップを取得するためのバッファマップ要求を上流ノード１へ送信し、上流ノード１からバッファマップを受信してバッファマップ保存手段１３に出力する。上流ノード１から受信したバッファマップは、バッファマップ保存手段１３によりバッファメモリ１１に保存され、所定の時間間隔にて更新される。
【００５１】
視聴ポイント取得手段５３は、当該ノード１がＰ２Ｐネットワークに参加したとき、または再生が停止したとき、視聴ポイントを取得するための視聴ポイント要求をパッチングサーバ３へ送信し、パッチングサーバ３から視聴ポイントを受信する。
【００５２】
データ取得手段５４は、視聴ポイント以降の未取得の映像データを取得するために、上流ノード１から取得したバッファマップをバッファメモリ１１から読み出し、バッファマップ及び後述する配信階層決定手段１７により決定された配信階層（全階層、２階層または基本階層）に基づいて、取得したい配信階層のデータが蓄積されている上流ノード１（データの取得先）を特定し、配信要求（高レート全階層配信要求、中レート２階層配信要求または低レート基本階層配信要求）を取得先の上流ノード１へ送信する。そして、データ取得手段５４は、取得先の上流ノード１から配信要求に対応するデータ（全階層データ、２階層データまたは基本階層データ）を受信し、バッファメモリ１１に蓄積する。
【００５３】
パッチング手段５５は、パッチング処理の際に、低レート基本階層配信要求をパッチングサーバ３へ送信し、パッチングサーバ３から基本階層データを受信し、バッファメモリ１１に蓄積する。
【００５４】
バッファマップ送信手段５６は、下流ノード１からバッファマップ要求を受信し、バッファマップ作成手段１４により作成された当該ノード１のバッファマップを、バッファマップ要求を送信してきた下流ノード１へ送信する。
【００５５】
データ送信手段５７は、下流ノード１から配信要求を受信し、配信要求に対応したデータをバッファメモリ１１から読み出し、読み出したデータを、配信要求を送信してきた下流ノード１へ送信する。
【００５６】
図３に戻って、バッファメモリ１１には、映像データを所定のサイズに分割したＤＣ（全階層データのＤＣ、２階層データのＤＣまたは基本階層データのＤＣ）がそのＤＣ番号と共に、時間軸上のシーケンシャル番号順に蓄積されている。また、バッファメモリ１１には、上流ノード１のバッファマップが保存されている。バッファメモリ１１の詳細については後述する。
【００５７】
再生手段１２は、当該ノード１がＰ２Ｐネットワークに参加したとき、視聴ポイント取得手段５３がパッチングサーバ３から視聴ポイントを取得する際に、映像データの再生時刻に関する情報を、送受信手段１０を介してパッチングサーバ３から取得する。そして、再生手段１２は、映像データの再生時刻に関する情報に基づいて、視聴ポイントの示すＤＣ番号のデータを再生するタイミングを判定し、その再生タイミングになると、階層復号手段１６にバッファメモリ１１から当該データを読み出させて階層復号させ、階層復号されたデータを再生する。映像データの再生時刻は、ＤＣ番号毎に予め決められており、再生手段１２は、視聴ポイントの示すＤＣ番号のデータを再生するタイミングになると、その視聴ポイントのデータを再生する。また、再生手段１２は、視聴ポイントの示すＤＣ番号のデータを再生するタイミングになると、視聴ポイントの示すＤＣ番号を含む再生タイミング信号を階層復号手段１６及び配信階層決定手段１７に出力する。
【００５８】
バッファマップ保存手段１３は、所定周期の時間間隔にて、上流ノード１のバッファマップを取得するための取得要求を送受信手段１０に出力し、送受信手段１０から上流ノード１のバッファマップを入力し、バッファメモリ１１に保存する。
【００５９】
バッファマップ作成手段１４は、所定周期の時間間隔にて、バッファメモリ１１に蓄積されたデータに基づいて、当該ノード１のバッファマップを作成し、作成したバッファマップを送受信手段１０に出力する。バッファマップ作成手段１４により作成されたバッファマップは、下流ノード１からのバッファマップ要求に従って送信される。
【００６０】
回線状況管理手段１５は、送受信手段１０を介して、所定周期の時間間隔にて、上流ノード１との間の回線状況（上流ノード１から当該ノード１への回線状況）をチェックして回線速度を測定し、測定した回線速度（高速、中速または低速）を配信階層決定手段１７に出力する。これにより、上流ノード１との間の通信回線の混雑状況が判定される。
【００６１】
階層復号手段１６は、視聴ポイントの示すＤＣ番号を含む再生タイミング信号を再生手段１２から入力し、バッファメモリ１１から当該再生タイミング信号に含まれるＤＣ番号のデータ（全階層データ、２階層データまたは基本階層データ）を読み出し、階層復号を行い、階層復号したデータを再生手段１２に出力する。
【００６２】
配信階層決定手段１７は、回線状況管理手段１５から回線速度（高速、中速または低速）を入力し、回線速度に対応した配信階層（全階層、２階層または基本階層）を決定し、決定した配信階層を送受信手段１０に出力する。これにより、上位ノード１との間の通信回線の混雑状況に対応した配信階層が決定される。また、配信階層決定手段１７は、視聴ポイントの示すＤＣ番号を含む再生タイミング信号を再生手段１２から入力し、視聴ポイントの示すＤＣ番号のデータをバッファメモリ１１から読み出し、読み出したデータと、既に決定した配信階層のデータとを比較し、すなわち、再生するデータの階層（再生階層）と既に決定した配信階層（決定済み配信階層）とを比較し、再生階層が決定済み配信階層よりも低いか否かを判定する。そして、配信階層決定手段１７は、再生階層が決定済み配信階層よりも低いと判定した場合、配信階層を２階層または基本階層に変更し、変更した配信階層を送受信手段１０に出力する。
【００６３】
（バッファメモリ１１）
図５は、バッファメモリ１１に蓄積されるデータの量と、視聴ポイント、パッチングスレッショルド及び再生スレッショルドとの関係を説明する図であり、図６は、全階層データ、２階層データ及び基本階層データが蓄積されるバッファメモリ１１を説明する図である。図５に示すように、バッファメモリ１１には、例えば、１４個のＤＣを蓄積する領域が確保されており、時間軸上に番号が若い順にＤＣが蓄積される。バッファメモリ１１は、新たなＤＣが蓄積されるときに、最も古いＤＣが廃棄される。このＤＣは、図６に示す全階層データ、２階層データまたは基本階層データに相当する。図５の例は、バッファメモリ１１にＤＣ９〜ＤＣ２２が蓄積されており、新たなＤＣ２２が蓄積されたことにより、最も古いＤＣ８が廃棄されたことを示している。
【００６４】
また、バッファメモリ１１には、視聴ポイントを基準位置にして、これよりも番号が新しい方、すなわちこれから視聴するデータの所定位置にパッチングスレッショルド及び再生スレッショルドが予め設定されている。視聴ポイントは、再生手段１２により映像データが再生される現在の位置であって、当該ノード１を用いて配信サービスを受ける利用者が視聴する現時点の映像データの位置を示している。パッチングスレッショルドは、上流ノード１の代わりにパッチングサーバ３からＤＣが取得される位置を示している。バッファメモリ１１に蓄積されたＤＣの位置がパッチングスレッショルド以下になると、パッチング処理が行われる。送受信手段１０のパッチング手段５５は、バッファメモリ１１を検索することにより、再生に伴ってＤＣが減少し、バッファメモリ１１の先頭から隙間なく蓄積された末尾のＤＣの位置を示すポインタがパッチングスレッショルド以下になった場合に（または、視聴ポイントからパッチングスレッショルドまでの間に存在しないＤＣがある場合に（ＤＣは存在するが、連番のＤＣが抜けている場合に、））、パッチングサーバ３からＤＣ（本例では基本階層データ）を取得する。再生スレッショルドは、再生手段１２が再生を最初に開始するために必要なデータ量の位置、または再生を再開するために必要なデータ量の位置を示している。再生手段１２は、バッファメモリ１１からＤＣを読み出して再生を開始または再開する際に、ＤＣが再生スレッショルドの位置まで蓄積されるのを待って、視聴ポイントの位置のＤＣを読み出して再生を行う。
【００６５】
図６（１）〜（３）のバッファメモリ１１には、いずれもＤＣ９〜ＤＣ２２が蓄積されている。図６（１）は、全階層データが蓄積されるバッファメモリ１１を示しており、バッファメモリ１１には、基本階層データａ、第１階層データｂ及び第２階層データｃにより構成されるＤＣ９〜ＤＣ２２の全階層データが蓄積されている。図６（２）は、２階層データが蓄積されるバッファメモリ１１を示しており、バッファメモリ１１には、基本階層データａ及び第１階層データｂにより構成されるＤＣ９〜ＤＣ２２の２階層データが蓄積されている。図６（３）は、基本階層データが蓄積されるバッファメモリ１１を示しており、バッファメモリ１１には、ＤＣ９〜ＤＣ２２の基本階層データａが蓄積されている。
【００６６】
（再生手段１２によるデータ再生処理）
図７は、視聴ポイント及び再生スレッショルドを基準位置としたデータ再生処理を示すフローチャートである。このデータ再生処理は、再生手段１２により行われる。再生手段１２は、再生中であるか否かを判定し（ステップＳ７０１）、再生中であると判定した場合（ステップＳ７０１：Ｙ）、ステップＳ７０２へ移行し、再生中でない（再生が停止中である）と判定した場合（ステップＳ７０１：Ｎ）、ステップＳ７０５へ移行する。
【００６７】
再生手段１２は、再生中の場合、ステップＳ７０１から移行してバッファメモリ１１を検索し、バッファメモリ１１の先頭から隙間なく蓄積された末尾のＤＣの位置を示すポインタが視聴ポイント以下であるか否かを判定する（ステップＳ７０２）。再生手段１２は、ステップＳ７０２において、ＤＣのポインタが視聴ポイント以下でないと判定した場合（ステップＳ７０２：Ｎ）、再生を継続する（ステップＳ７０３）。つまり、再生手段１２は、バッファメモリ１１から視聴ポイントのＤＣを読み出し、階層復号手段１６に階層復号を行わせ、階層復号されたＤＣにより映像データを再生する。一方、再生手段１２は、ステップＳ７０２において、ＤＣのポインタが視聴ポイント以下であると判定した場合（ステップＳ７０２：Ｙ）、再生を停止する（ステップＳ７０４）。この場合、ノード１の送受信手段１０は、バッファメモリ１１をクリアし、視聴ポイント取得手段５３は、パッチングサーバ３から視聴ポイントを取得し、パッチング手段５５は、視聴ポイント以降のデータをパッチングサーバ３から取得する。
【００６８】
再生手段１２は、再生中でない（再生が停止中である）場合、ステップＳ７０１から移行してバッファメモリ１１を検索し、ＤＣのポインタが再生スレッショルド以下であるか否かを判定する（ステップＳ７０５）。再生手段１２は、ステップＳ７０５において、ＤＣのポインタが再生スレッショルド以下でないと判定した場合（ステップＳ７０５：Ｎ）、再生を開始する（ステップＳ７０６）。つまり、再生手段１２は、バッファメモリ１１から視聴ポイントのＤＣを読み出し、階層復号手段１６に階層復号を行わせ、階層復号されたＤＣにより映像データを再生する。一方、再生手段１２は、ステップＳ７０５において、ＤＣのポインタが再生スレッショルド以下であると判定した場合（ステップＳ７０５：Ｙ）、再生停止を継続する。
【００６９】
このように、データ再生処理を行う再生手段１２は、バッファメモリ１１から視聴ポイントのＤＣを読み出し、階層復号手段１６に階層復号を行わせ、階層復号されたＤＣにより映像データを再生し、ＤＣが視聴ポイント以下になった場合に再生を停止し、ＤＣが再生スレッショルドの位置まで蓄積されるのを待って、再生を開始する。
【００７０】
（パッチング手段５５によるパッチング処理）
図８は、パッチングスレッショルドを基準位置としたパッチング処理を示すフローチャートである。このパッチング（手当て）処理は、送受信手段１０のパッチング手段５５により行われ、バッファメモリ１１に蓄積されたＤＣのポインタがパッチングスレッショルド以下になった場合に、上流ノード１からＤＣを取得する代わりに、緊急にパッチングサーバ３からＤＣを取得するものである。
【００７１】
送受信手段１０のパッチング手段５５は、バッファメモリ１１を検索し、ＤＣのポインタがパッチングスレッショルド以下であるか否かを判定し（ステップＳ８０１）、ＤＣのポインタがパッチングスレッショルド以下であると判定した場合（ステップＳ８０１：Ｙ）、パッチング処理を行う。すなわち、パッチング手段５５は、配信要求を上流ノード１へ送信する代わりに、低レート基本階層配信要求をパッチングサーバ３へ送信し（ステップＳ８０２）、パッチングサーバ３から基本階層データを受信し、受信した基本階層データをバッファメモリ１１に蓄積する（ステップＳ８０３）。一方、パッチング手段５５は、ステップＳ８０１において、ＤＣのポインタがパッチングスレッショルド以下でないと判定した場合（ステップＳ８０１：Ｎ）、パッチング処理を行わない。
【００７２】
このように、パッチング処理を行うパッチング手段５５は、バッファメモリ１１に蓄積されたＤＣのポインタがパッチングスレッショルド以下になった場合に、上流ノード１からＤＣを取得する代わりに、緊急にパッチングサーバ３から基本階層データのＤＣを取得する。
【００７３】
〔ノード１の処理〕
次に、本発明の実施形態によるノード１の処理について説明する。図９は、図３に示したノード１の処理を示すフローチャートである。
【００７４】
ノード１は、配信サービスを行うＰ２Ｐネットワークに新たに参加すると、ネットワーク参加処理を行う（ステップＳ９０１）。図１０は、ネットワーク参加処理を説明する図であり、ノード１ＣがＰ２Ｐネットワークに新たに参加した場合を示している。ノード１ＣがＰ２Ｐネットワークに新たに参加すると、ノード１Ｃにおける送受信手段１０のネットワーク参加処理手段５１は、ディレクトリサーバ４へアクセスし、当該ノード１Ｃに関する情報（ＵＲＬ、ＩＰアドレス等）をディレクトリサーバ４へ送信する（ステップＳ１００１）。ディレクトリサーバ４は、ノード１Ｃからノード１Ｃに関する情報を受信すると、当該情報を記憶装置に登録して管理する。そして、ディレクトリサーバ４は、通信システム５を構成する配信サーバ２、パッチングサーバ３及びＰ２Ｐネットワークに参加している全てまたは一部のノード１に関する情報、並びに上流ノード１に関する情報及び下流ノード１に関する情報（ＵＲＬ、ＩＰアドレス等）を、ノード１Ｃへ送信する（ステップＳ１００２）。これにより、ノード１Ｃは、配信サーバ２、パッチングサーバ３、上流ノード１及び下流ノード１へアクセスすることができ、通信を行うことができる。すなわち、図１０に示すように、ノード１Ｃは、パッチングサーバ３へアクセスして視聴ポイント及び映像ストリームのデータを取得することができ、上流ノード１Ａ，１Ｂへアクセスしてバッファマップ及び映像ストリームのデータを取得することができる。
【００７５】
図９に戻って、ノード１は、上流ノード１からバッファマップを取得する（ステップＳ９０２）。具体的には、ノード１における送受信手段１０のバッファマップ取得手段５２は、ディレクトリサーバ４から受信した上流ノード１に関する情報に基づいて、バッファマップ要求を上流ノード１へ送信し、上流ノード１からバッファマップを受信し、バッファマップ保存手段１３に出力する。バッファマップ保存手段１３は、バッファマップをバッファメモリ１１に保存する。通常、複数台の上流ノード１が存在する。
【００７６】
ノード１は、パッチングサーバ３から視聴ポイントを取得する（ステップＳ９０３）。具体的には、ノード１における送受信手段１０の視聴ポイント取得手段５３は、ディレクトリサーバ４から受信したパッチングサーバ３に関する情報に基づいて、視聴ポイント要求をパッチングサーバ３へ送信し、パッチングサーバ３から視聴ポイントを受信する。また、図９には示していないが、ノード１がＰ２Ｐネットワークに新たに参加したとき、ノード１の再生手段１２は、パッチングサーバ３から映像データの再生時刻に関する情報を取得する。具体的には、ノード１の再生手段１２は、送受信手段１０を介して映像データの再生時刻に関する情報の送信要求をパッチングサーバ３へ送信し、パッチングサーバ３から受信した当該情報を、送受信手段１０を介して入力する。これにより、再生手段１２は、映像データの再生時刻に関する情報に基づいて、視聴ポイントの示すＤＣ番号のデータを再生するタイミングを判断することができる。
【００７７】
ノード１は、通常時に、上流ノード１から映像ストリームのデータを取得し、バッファメモリ１１に蓄積する（ステップＳ９０４）。尚、ノード１は、パッチング処理時に、パッチングサーバ３から映像ストリームのデータを取得し、バッファメモリ１１に蓄積する。この映像データ取得処理の詳細については後述する。また、ノード１は、バッファメモリ１１から映像ストリームのデータを読み出し、下流ノード１へ送信する（ステップＳ９０５）。この映像データ送信処理の詳細については後述する。
【００７８】
ノード１は、Ｐ２Ｐネットワークから離脱したか否かを判定し（ステップＳ９０６）、Ｐ２Ｐネットワークから離脱していない場合（ステップＳ９０６：Ｎ）、映像データ取得処理（ステップＳ９０４）及び映像データ送信処理（ステップＳ９０５）を行い、Ｐ２Ｐネットワークから離脱した場合（ステップＳ９０６：Ｙ）、所定のネットワーク離脱処理を行う（ステップＳ９０７）。ノード１は、Ｐ２Ｐネットワークに参加している間、前述の映像データ取得処理（ステップＳ９０４）及び映像データ送信処理（ステップＳ９０５）を繰り返す。
【００７９】
（映像データ取得処理）
次に、図９に示した映像データ取得処理（ステップＳ９０４）について詳細に説明する。図１１は、その詳細な処理を示すフローチャートである。ノード１における送受信手段１０のデータ取得手段５４は、図９に示した映像データ取得処理（ステップＳ９０４）に先立って、映像データを取得する上流ノード１を特定する。具体的には、データ取得手段５４は、図９に示したステップＳ９０２または後述する図１１に示すステップＳ１１１３にて取得した複数のバッファマップ（上流ノード１のバッファマップ）から、所定の条件に合致する１つのバッファマップを選択し、選択したバッファマップを有する上流ノード１を、映像データを取得する上流ノード１として特定する。例えば、データ取得手段５４は、後述する図１１のステップＳ１１０４〜ステップＳ１１０６，ステップＳ１１１１にて配信階層が決定されているとき、複数のバッファマップから、決定済みの配信階層のデータ（全階層データ、２階層データまたは基本階層データ）であって未取得のデータを蓄積していることを示す１つのバッファマップを選択し、当該バッファマップを有する上流ノード１を特定する。
【００８０】
ノード１の回線状況管理手段１５は、前述の処理により特定された上流ノード１との間の回線速度をチェックする所定周期のタイミングであるか否かを判定し（ステップＳ１１０１）、回線速度をチェックするタイミングであると判定した場合（ステップＳ１１０１：Ｙ）、ステップＳ１１０２へ移行する。一方、回線状況管理手段１５は、ステップＳ１１０１において、回線速度をチェックするタイミングでないと判定した場合（ステップＳ１１０１：Ｎ）、ステップＳ１１０７へ移行する。
【００８１】
回線状況管理手段１５は、ステップＳ１１０１から移行して、送受信手段１０を介して、上流ノード１との間の回線速度（上流ノード１から当該ノード１への回線速度）をチェックし（ステップＳ１１０２）、チェック結果の回線速度（高速、中速または低速）を配信階層決定手段１７に出力する。ここで、回線速度チェックは、予め設定された速度の閾値判定により行われる。回線速度チェックにより回線速度が高速の場合、上流ノード１との間の通信回線が混雑していないことを示しており、回線速度が中速の場合、通信回線がさほど混雑していないことを示しており、回線速度が低速の場合、通信回線が混雑していることを示している。
【００８２】
配信階層決定手段１７は、回線状況管理手段１５から回線速度を入力し、回線速度が高速、中速または低速のいずれかであるかを判定する（ステップＳ１１０３）。配信階層決定手段１７は、ステップＳ１１０３において、回線速度が高速であると判定した場合（ステップＳ１１０３：高速）、配信階層を全階層に決定する（ステップＳ１１０４）。また、配信階層決定手段１７は、ステップＳ１１０３において、回線速度が中速であると判定した場合（ステップＳ１１０３：中速）、配信階層を２階層に決定する（ステップＳ１１０５）。また、配信階層決定手段１７は、ステップＳ１１０３において、回線速度が低速であると判定した場合（ステップＳ１１０３：低速）、配信階層を基本階層に決定する（ステップＳ１１０６）。配信階層決定手段１７は、決定した配信階層を送受信手段１０のデータ取得手段５４に出力する。
【００８３】
これにより、ノード１は、後述するステップＳ１１１２にて、通信回線の混雑度合いに応じた配信階層にて、上流ノード１からデータを受信することができる。
【００８４】
再生手段１２は、ステップＳ１１０１、ステップＳ１１０４、ステップＳ１１０５またはステップＳ１１０６から移行して、パッチングサーバ３から取得した映像データの再生時刻に関する情報に基づいて、視聴ポイントのＤＣ番号のＤＣを再生するタイミングであるか否かを判定し（ステップＳ１１０７）、再生するタイミングであると判定した場合（ステップＳ１１０７：Ｙ）、ステップＳ１１０８へ移行する。一方、再生手段１２は、ステップＳ１１０７において、再生するタイミングでないと判定した場合（ステップＳ１１０７：Ｎ）、ステップＳ１１１２へ移行する。
【００８５】
再生手段１２は、ステップＳ１１０７から移行して、視聴ポイントの示すＤＣ番号のＤＣを再生するタイミングであることを示す信号であって、当該ＤＣ番号を含む再生タイミング信号を生成し、再生タイミング信号を階層復号手段１６及び配信階層決定手段１７に出力する。そして、階層復号手段１６は、再生手段１２から再生タイミング信号を入力し、再生タイミング信号に含まれるＤＣ番号のデータをバッファメモリ１１から読み出し、読み出したデータに階層復号を行い、階層復号したデータを再生手段１２に出力し、再生手段１２は、階層復号手段１６により階層復号されたデータを再生する（ステップＳ１１０８）。この場合、階層復号手段１６は、バッファメモリ１１から読み出したデータが全階層データの場合、全階層データに対して階層復号を行い、読み出したデータが２階層データの場合、２階層データに対して階層復号を行い、読み出したデータが基本階層データの場合、基本階層データに対して階層復号を行う。
【００８６】
配信階層決定手段１７は、再生手段１２から再生タイミング信号を入力し、再生タイミング信号に含まれるＤＣ番号のデータをバッファメモリ１１から読み出し、読み出したデータの階層を再生階層として特定する（ステップＳ１１０９）。具体的には、配信階層決定手段１７は、バッファメモリ１１から読み出したデータが全階層データの場合、全階層を再生階層として特定し、読み出したデータが２階層データの場合、２階層を再生階層として特定し、読み出したデータが基本階層データの場合、基本階層を再生階層として特定する。
【００８７】
配信階層決定手段１７は、特定した再生階層と、ステップＳ１１０３〜ステップＳ１１０６により決定された配信階層または後述するステップＳ１１１１により決定された新たな配信階層（決定済み配信階層）とを比較し、再生階層が決定済み配信階層よりも低いか否かを判定する（ステップＳ１１１０）。配信階層決定手段１７は、ステップＳ１１１０において、再生階層が決定済み配信階層よりも低いと判定した場合（ステップＳ１１１０：Ｙ）、予め設定された決定条件に従って、新たな配信階層を決定し、新たな配信階層を送受信手段１０のデータ取得手段５４に出力する（ステップＳ１１１１）。そして、ステップＳ１１１２へ移行する。一方、配信階層決定手段１７は、ステップＳ１１１０において、再生階層が決定済み配信階層よりも低くないと判定した場合（ステップＳ１１１０：Ｎ）、新たな配信階層を決定することなく、ステップＳ１１１２へ移行する。
【００８８】
尚、配信階層決定手段１７は、ステップＳ１１１１において、新たな配信階層を決定した後、所定時間経過していない場合には、ステップＳ１１１０にて再生階層が決定済み配信階層よりも低いと判定したときであっても、ステップＳ１１１１の処理を行わず、新たな配信階層を決定しないようにしてもよい。
【００８９】
例えば、配信階層決定手段１７は、図２中段に示したとおり、再生階層が２階層であり、決定済み配信階層が全階層である場合、再生階層が決定済み配信階層よりも低いと判定し、予め設定された決定条件に従って、新たな配信階層を２階層または基本階層に決定する。尚、図２中段では新たな配信階層を２階層に決定する例を示している。また、配信階層決定手段１７は、図２下段に示したとおり、再生階層が基本階層であり、決定済み配信階層が全階層である場合、再生階層が決定済み配信階層よりも低いと判定し、新たな配信階層を基本階層に決定する。また、配信階層決定手段１７は、再生階層が基本階層であり、決定済み配信階層が２階層である場合、再生階層が決定済み配信階層よりも低いと判定し、新たな配信階層を基本階層に決定する。さらに、配信階層決定手段１７は、再生階層が全階層であり、決定済み配信階層も全階層である場合、再生階層が２階層であり、決定済み配信階層も２階層である場合、または、再生階層が基本階層であり、決定済み配信階層も基本階層である場合、再生階層が決定済み配信階層よりも低くないと判定し、配信階層を変更しない。
【００９０】
これにより、ノード１は、データを再生するタイミングにおいて、回線速度をチェックするタイミングを待つことなく、通信回線の混雑度合いに応じた配信階層に変更することができる。
【００９１】
図１１に戻って、送受信手段１０のデータ取得手段５４は、ステップＳ１１０７、ステップＳ１１１０またはステップＳ１１１１から移行して、所定の上流ノード１へ、ステップＳ１１０４〜ステップＳ１１０６，ステップＳ１１１１にて決定された配信階層による配信要求を送信し、ノード１から配信要求に対応するデータを取得し、バッファメモリ１１に蓄積する（ステップＳ１１１２）。このステップＳ１１１２による配信要求及びデータ取得処理の詳細については後述する。
【００９２】
送受信手段１０のバッファマップ取得手段５２は、バッファマップ保存手段１３からの取得要求に基づいて、所定の時間間隔にて、バッファマップを取得するためのバッファマップ要求を上流ノード１へ送信し、バッファマップを上流ノード１から受信してバッファマップ保存手段１３に出力する。バッファマップ保存手段１３は、バッファマップをバッファメモリ１１に保存する。これにより、上流ノード１のバッファマップは、所定時間間隔で更新される（ステップＳ１１１３）。
【００９３】
送受信手段１０のパッチング手段５５は、図８に示したとおり、バッファメモリ１１を検索し、バッファメモリ１１に蓄積されているデータの位置がパッチングスレッショルド以下であるか否かを判定することで、パッチング処理を行うか否かを判定する（ステップＳ１１１４）。パッチング手段５５は、パッチング処理を行わないと判定した場合、映像データ取得処理が終了する。一方、パッチング手段５５は、パッチング処理を行うと判定した場合、図８に示したパッチング処理を行い、映像データ取得処理が終了する。そして、ノード１の処理はステップＳ１１０１へ移行し、ノード１は、図１１に示した一連の映像データ取得処理を繰り返す。
【００９４】
（配信要求及びデータ取得処理）
次に、図１１に示した配信要求及びデータ取得処理（ステップＳ１１１２）について詳細に説明する。図１２は、その詳細な処理を示すフローチャートである。ノード１における送受信手段１０のデータ取得手段５４は、図１１に示した配信要求及びデータ取得処理（ステップＳ１１１２）の際に、配信階層決定手段１７から決定済み配信階層を入力し、決定済み配信階層が全階層、２階層または基本階層のいずれかであるかを判定する（ステップＳ１２０１）。
【００９５】
データ取得手段５４は、ステップＳ１２０１において、決定済み配信階層が全階層であると判定した場合（ステップＳ１２０１：全階層）、所定の上流ノード１へ、バッファメモリ１１内において視聴ポイント以降の未取得のデータを取得するための高レート全階層配信要求を送信する（ステップＳ１２０２）。そして、データ取得手段５４は、高レート全階層配信要求を送信した上流ノード１から全階層データを受信し、バッファメモリ１１に蓄積する（ステップＳ１２０３）。
【００９６】
また、データ取得手段５４は、ステップＳ１２０１において、決定済み配信階層が２階層であると判定した場合（ステップＳ１２０１：２階層）、所定の上流ノード１へ中レート２階層配信要求を送信する（ステップＳ１２０４）。そして、データ取得手段５４は、中レート２階層配信要求を送信した上流ノード１から２階層データを受信し、バッファメモリ１１に蓄積する（ステップＳ１２０５）。
【００９７】
また、データ取得手段５４は、ステップＳ１２０１において、決定済み配信階層が基本階層であると判定した場合（ステップＳ１２０１：基本階層）、所定の上流ノード１へ低レート基本階層配信要求を送信する（ステップＳ１２０６）。そして、データ取得手段５４は、低レート基本階層配信要求を送信した上流ノード１から基本階層データを受信し、バッファメモリ１１に蓄積する（ステップＳ１２０７）。
【００９８】
（配信階層変更の例）
次に、図１１に示した映像データ取得処理において、データ再生のタイミングで配信階層を変更する処理について具体例を示して説明する。図１３は、その具体例を説明する図であり、配信階層を全階層から基本階層に変更する例を示している。図１３に示すように、ノード１は、上流ノード１へ高レート全階層配信要求を送信する（ステップＳ１３０１）。ノード１は、上流ノード１から全階層データ（８ａ，８ｂ，８ｃ及び９ａ，９ｂ，９ｃ）を受信しバッファメモリ１１に蓄積するが、その後、通信回線が混雑したため、途中から２階層データ（１０ａ，１０ｂ，１１ａ，１１ｂ，・・・２０ａ，２０ｂ）のみをバッファメモリ１１に蓄積する（ステップＳ１３０２）。
【００９９】
ノード１は、このような蓄積処理の際に、視聴ポイントであるＤＣ番号８のデータを再生するタイミングにおいて、バッファメモリ１１からＤＣ番号８の全階層データ（８ａ，８ｂ，８ｃ）を読み出し、全階層データの階層復号を行い再生する。そして、ノード１は、視聴ポイントであるＤＣ番号９のデータを再生するタイミングにおいて、バッファメモリ１１からＤＣ番号９の全階層データ（９ａ，９ｂ，９ｃ）を読み出し、全階層データの階層復号を行い再生する。そして、ノード１は、視聴ポイントであるＤＣ番号１０のデータを再生するタイミングにおいて、バッファメモリ１１からＤＣ番号１０の全階層データを読み出すことができないため、２階層データ（１０ａ，１０ｂ）のみを読み出し、２階層データの階層復号を行い再生する。
【０１００】
この場合、配信階層が全階層であるにもかかわらず、バッファメモリ１１には全階層データが蓄積されていないから、ノード１は、予め設定された決定条件に従って、配信階層を全階層から基本階層に変更し、新たな配信階層を決定する。そして、ノード１は、上流ノード１へ低レート基本階層配信要求を送信する（ステップＳ１３０３）。ノード１は、上流ノード１から基本階層データ（２１ａ〜２５ａ）を受信し、バッファメモリ１１に蓄積する（ステップＳ１３０４、αを参照）。
【０１０１】
このように、ノード１は、データを再生するタイミングにおいて、バッファメモリ１１から配信階層に対応したデータを読み出すことができない場合、すなわち、配信階層に対応したデータがバッファメモリ１１に蓄積されていない場合、配信階層を現在の階層よりも低い階層に変更するようにした。これにより、上流ノード１との間の回線速度をチェックする周期的なタイミングを待つことなく、通信回線の混雑度合いに応じた配信階層に即座に変更することができる。
【０１０２】
（映像データ送信処理）
次に、図９に示した映像データ送信処理（ステップＳ９０５）について詳細に説明する。図１４は、その詳細な処理を示すフローチャートである。ノード１のバッファマップ作成手段１４は、所定の時間間隔にて、バッファメモリ１１に蓄積されたデータに基づいて、当該ノード１のバッファマップを作成する（ステップＳ１４０１）。
【０１０３】
送受信手段１０のバッファマップ送信手段５６は、下流ノード１からバッファマップ要求を受信したか否かを判定し（ステップＳ１４０２）、バッファマップ要求を受信したと判定した場合（ステップＳ１４０２：Ｙ）、バッファマップ作成手段１４により作成されたバッファマップを、バッファマップ要求を送信してきた下流ノード１へ送信し（ステップＳ１４０３）、ステップＳ１４０４へ移行する。一方、バッファマップ送信手段５６は、ステップＳ１４０２において、バッファマップ要求を受信していないと判定した場合（ステップＳ１４０２：Ｎ）、ステップＳ１４０４へ移行する。
【０１０４】
送受信手段１０のデータ送信手段５７は、ステップＳ１４０２またはステップＳ１４０３から移行して、下流ノード１から高レート全階層配信要求を受信したか否かを判定し（ステップＳ１４０４）、高レート全階層配信要求を受信したと判定した場合（ステップＳ１４０４：Ｙ）、バッファメモリ１１から高レート全階層配信要求に対応する全階層データを読み出し、読み出した全階層データを、高レート全階層配信要求を送信してきた下流ノード１へ送信し（ステップＳ１４０５）、ステップＳ１４０６へ移行する。一方、データ送信手段５７は、ステップＳ１４０４において、高レート全階層配信要求を受信していないと判定した場合（ステップＳ１４０４：Ｎ）、ステップＳ１４０６へ移行する。
【０１０５】
送受信手段１０のデータ送信手段５７は、ステップＳ１４０４またはステップＳ１４０５から移行して、下流ノード１から中レート２階層配信要求を受信したか否かを判定し（ステップＳ１４０６）、中レート２階層配信要求を受信したと判定した場合（ステップＳ１４０６：Ｙ）、バッファメモリ１１から中レート２階層配信要求に対応する２階層データを読み出し、読み出した２階層データを、中レート２階層配信要求を送信してきた下流ノード１へ送信し（ステップＳ１４０７）、ステップＳ１４０８へ移行する。一方、データ送信手段５７は、ステップＳ１４０６において、中レート２階層配信要求を受信していないと判定した場合（ステップＳ１４０６：Ｎ）、ステップＳ１４０８へ移行する。
【０１０６】
送受信手段１０のデータ送信手段５７は、ステップＳ１４０６またはステップＳ１４０７から移行して、下流ノード１から低レート基本階層配信要求を受信したか否かを判定し（ステップＳ１４０８）、低レート基本階層配信要求を受信したと判定した場合（ステップＳ１４０８：Ｙ）、バッファメモリ１１から低レート基本階層配信要求に対応する基本階層データを読み出し、読み出した基本階層データを、低レート基本階層配信要求を送信してきた下流ノード１へ送信し（ステップＳ１４０９）、処理を終了する。一方、データ送信手段５７は、ステップＳ１４０８において、低レート基本階層配信要求を受信していないと判定した場合（ステップＳ１４０８：Ｎ）、処理を終了する。
【０１０７】
このように、ノード１は、下流ノード１からの要求に応じて、バッファマップ及びデータを送信するから、Ｐ２Ｐネットワークによる映像データの中継を実現することができる。
【０１０８】
以上のように、本発明の実施形態によれば、ノード１における送受信手段１０のデータ取得手段５４が、回線状況管理手段１５により所定周期にてチェックされた回線速度に応じた配信階層のデータを上流ノード１から取得しているときに、配信階層決定手段１７は、データを再生するタイミングにおいて、バッファメモリ１１からその配信階層に対応したデータが読み出されない場合、すなわち通信回線が混雑した状況に変化した場合、配信階層を現在の階層よりも低い階層に変更するようにした。例えば、高レートのデータ（全階層データ）の配信が開始した後、通信回線が混雑した状況に変化し、ノード１が中レートのデータ（２階層データ）しか再生することができなくなった場合、ノード１は、その時点において、上流ノード１に対し、高レートのデータ取得から中レートのデータ取得または低レートのデータ（基本階層データ）取得に変更するようにした。また、ノード１が低レートのデータしか再生することができなくなった場合、ノード１は、その時点において、上流ノード１に対し、高レートのデータ取得から低レートのデータ取得に変更するようにした。
【０１０９】
これにより、通信回線が混雑した状態に変化した場合であっても、再生品質は低下するが、シームレスに配信サービスを継続することができる。つまり、通信回線が動的に変化し混雑した状況になった場合、ノード１は、回線速度をチェックするタイミングよりも前に、その状況を特定することができ、上流ノード１に対する配信階層の要求を、通信回線の混雑度合いに応じた階層の要求に迅速に変更することができる。したがって、通信回線が混雑した状況に変化した場合であっても、通信回線の混雑状況に応じた階層のデータ配信を迅速に実現することができるから、再生が不安定になることがない。つまり、シームレスな配信サービスを継続させ、配信サービスのリアルタイム性を実現することができ、配信サービスの品質を向上させることができる。また、通信回線が混雑した状況に変化した場合、ノード１は、上流ノード１に対して不要なデータを要求することがないから、トラフィックを削減することができる。
【０１１０】
また、本発明の実施形態では、ノード１は、前述のとおり、データを再生するタイミングにて、配信階層を通信回線の混雑状況に応じた階層に変更した後、上流ノード１から所望のデータを取得できない場合には、バッファメモリ１１に蓄積されたデータのポインタがパッチングスレッショルド以下になると、パッチング処理を行い、パッチングサーバ３から基本階層データを取得する。これにより、パッチングサーバ３から緊急に必要なデータを取得することができ、シームレスな配信サービスを確実に継続させることができる。
【０１１１】
以上、実施形態を挙げて本発明を説明したが、本発明は前記実施形態に限定されるものではなく、その技術思想を逸脱しない範囲で種々変形可能である。例えば、前記実施形態では、ノード１の配信階層決定手段１７は、データを再生するタイミングにおいて、バッファメモリ１１の視聴ポイントから配信階層に対応したデータを読み出すことができない場合に、通信回線が混雑した状況に変化したことを判断し、上流ノード１との間の回線速度をチェックする周期的なタイミングを待つことなく、配信階層を低い階層に変更し、送受信手段１０のデータ取得手段５４は、上流ノード１から変更後の低い配信階層にてデータを取得するようにした。これに対し、配信階層決定手段１７は、バッファメモリ１１における視聴ポイントのデータよりも新しいデータが蓄積される所定位置（例えば、再生スレッショルドのデータよりも新しいデータが蓄積される位置）に、配信階層に対応したデータが蓄積されているか否かを監視し、配信階層に対応したデータが所定時間蓄積されていないことを判定した場合に、通信回線が混雑した状況に変化したことを判断し、配信階層を低い階層に変更するようにしてもよい。そして、送受信手段１０のデータ取得手段５４は、上流ノード１から変更後の低い配信階層にてデータを取得する。これにより、ノード１は、上流ノード１との間の回線速度をチェックする周期的なタイミングを待つことなく、かつ、データを再生するタイミングを待つことなく、上流ノード１に対する配信階層の要求を、通信回線の混雑度合いに応じた階層の要求に一層迅速に変更することができる。
【０１１２】
また、前記実施形態では、ノード１の配信階層決定手段１７は、データを再生するタイミングにおいて、バッファメモリ１１からデータを読み出し、読み出したデータが配信階層に対応したデータでない場合に、配信階層を低い階層に変更するようにした。これに対し、配信階層決定手段１７は、バッファメモリ１１からデータを読み出す毎に、読み出したデータが配信階層に対応したデータでないことを、連続した所定数のデータに対して判定した場合に、または、所定時間連続して判定した場合に、配信階層を低い階層に変更するようにしてもよい。
【０１１３】
また、前記実施形態では、階層符号化を用いたデータを、３階層のデータ（全階層データ、２階層データ及び基本階層データ）として説明したが、本発明は、３階層のデータに限定されるものではない。例えば、２階層のデータ（２階層データ及び基本階層データ）であってもよい。
【０１１４】
また、前記実施形態では、ノード１は、パッチング処理の際に、パッチングサーバ３から基本階層データを取得するようにしたが、パッチングサーバ３の代わりに配信サーバ２から取得するようにしてもよい。
【０１１５】
尚、本発明の実施形態によるノード１のハードウェア構成としては、通常のコンピュータを使用することができる。ノード１は、ＣＰＵ、ＲＡＭ等の揮発性の記憶媒体、ＲＯＭ等の不揮発性の記憶媒体、及びインターフェース等を備えたコンピュータによって構成される。配信サーバ２、パッチングサーバ３及びディレクトリサーバ４も同様である。本発明の実施形態によるノード１に備えた送受信手段１０、バッファメモリ１１、再生手段１２、バッファマップ保存手段１３、バッファマップ作成手段１４、回線状況管理手段１５、階層復号手段１６及び配信階層決定手段１７の各機能は、これらの機能を記述したプログラムをＣＰＵに実行させることによりそれぞれ実現される。配信サーバ２、パッチングサーバ３及びディレクトリサーバ４に備えた機能も同様である。これらのプログラムは、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリ等の記憶媒体に格納して頒布することもでき、ネットワークを介して送受信することもできる。
【符号の説明】
【０１１６】
１，１００  端末装置（ノード）
２  配信サーバ
３，１０３  パッチングサーバ
４  ディレクトリサーバ
５  通信システム
１０  送受信手段
１１  バッファメモリ
１２  再生手段
１３  バッファマップ保存手段
１４  バッファマップ作成手段
１５  回線状況管理手段
１６  階層復号手段
１７  配信階層決定手段
５１  ネットワーク参加処理手段
５２  バッファマップ取得手段
５３  視聴ポイント取得手段
５４  データ取得手段
５５  パッチング手段
５６  バッファマップ送信手段
５７  データ送信手段
【図１】
2013258657.tif 000003
【図２】
2013258657.tif 000004
【図３】
2013258657.tif 000005
【図４】
2013258657.tif 000006
【図５】
2013258657.tif 000007
【図６】
2013258657.tif 000008
【図７】
2013258657.tif 000009
【図８】
2013258657.tif 000010
【図９】
2013258657.tif 000011
【図１０】
2013258657.tif 000012
【図１１】
2013258657.tif 000013
【図１２】
2013258657.tif 000014
【図１３】
2013258657.tif 000015
【図１４】
2013258657.tif 000016
【図１５】
2013258657.tif 000017
【図１６】
2013258657.tif 000018
【図１７】
2013258657.tif 000019
【図１８】
2013258657.tif 000020
【図１９】
2013258657.tif 000021