(57)【要約】【課題】  配信サーバ装置とプレイヤーの間に中継装置等の装置を組み込むことなく、Ｅｎｄ  ｔｏ  Ｅｎｄでの帯域制御を実現する。【解決手段】  通信状態情報制御部１０６が、プレイヤーをグループに分類したグループ管理テーブル１１５を参照して、グループごとに各プレイヤーに対して通信状態を問い合わせ、問い合わせ結果を通信状態テーブル１０９に記録し、いずれかのプレイヤーに対してストリーミング配信を行う際に、有効帯域予測部１０７が、グループ管理テーブル１１５を参照して当該プレイヤーのグループを判別するとともに、通信状態テーブル１０９を参照して当該グループの通信状態を判断し、当該グループの通信状態に基づいてストリーミング配信時の有効帯域を予測し、帯域制御部１０８がストリーミング配信の通信帯域が予測した有効帯域を越えないように制御し、ストリーミング配信部１０５がストリーミング配信を行う。【選択図】        図１
2005167675.tif 000002
【特許請求の範囲】
【請求項１】
端末装置に対するデータ送信を行うデータ送信部と、
複数の端末装置を少なくとも一つ以上のグループに分類するグループ情報を管理するグループ管理部と、
複数の端末装置について、各端末装置の通信状態を示す通信状態情報を管理する通信状態管理部と、
いずれかの端末装置へのデータ送信に先立ち、前記グループ管理部により管理されているグループ情報と前記通信状態管理部により管理されている通信状態情報とを参照し、データ送信の対象となる端末装置と同じグループに所属する少なくとも一つ以上の他の端末装置の通信状態に基づき、データ送信の対象となる端末装置に対する有効帯域を予測する有効帯域予測部と、
前記有効帯域予測部により予測された有効帯域の範囲内でデータ送信の対象となる端末装置へのデータ送信の帯域を制御する帯域制御部とを有することを特徴とするデータ通信装置。
【請求項２】
前記有効帯域予測部は、
データ送信の対象となる端末装置の通信状態及びデータ送信の対象となる端末装置と同じグループに所属する少なくとも一つ以上の他の端末装置の通信状態に基づき、データ送信の対象となる端末装置に対する有効帯域を予測することを特徴とする請求項１に記載のデータ通信装置。
【請求項３】
前記グループ管理部は、
いずれのグループにも所属していないグループ未所属端末装置が存在する場合に、各グループの特性を解析するためのグループ情報を前記グループ未所属端末装置に送信し、グループ情報に基づいて前記グループ未所属端末装置に各グループの特性を解析させて所属するグループを選択させるとともに、前記グループ未所属端末装置が選択したグループに前記グループ未所属端末装置を所属させるための登録処理を行うことを特徴とする請求項１に記載のデータ通信装置。
【請求項４】
前記通信状態管理部は、
それぞれの端末装置の通信状態を通知するよう要求する通信状態通知要求を生成し、生成した通信状態通知要求をそれぞれの送信タイミングをずらして各端末装置に対して送信することを特徴とする請求項１に記載のデータ通信装置。
【請求項５】
前記データ通信装置は、更に、
端末装置が受信したデータ中にデータ欠損があった場合に当該端末装置が欠損データの送信要求を行うべき他の端末装置を、グループごとに、代表メンバー端末装置として選定する代表メンバー選定部と、
前記代表メンバー選定部により選定された代表メンバー端末装置を、グループごとに、各端末装置に対して通知する代表メンバー通知部とを有することを特徴とする請求項１に記載のデータ通信装置。
【請求項６】
前記代表メンバー選定部は、
前記グループ管理部により管理されているグループ情報と前記通信状態管理部により管理されている通信状態情報とを参照し、グループごとに、通信状態が良好な順に所定数の端末装置を選択し、選択した所定数の端末装置を代表メンバー端末装置として選定することを特徴とする請求項５に記載のデータ通信装置。
【請求項７】
複数の端末装置が含まれるグループに所属し、所定のデータ通信装置から送信されるデータを受信する端末装置であって、
前記データ通信装置からのデータを受信するデータ受信部と、
自装置が所属するグループの代表である代表メンバー端末装置を示す代表メンバー通知を前記データ通信装置から受信する代表メンバー受信部と、
前記データ通信装置から受信したデータ中にデータ欠損があった場合に、欠損データの送信を要求するデータ送信要求を代表メンバー通知に示された代表メンバー端末装置に対して送信するデータ送信要求送信部と、
データ送信要求に対する応答として前記代表メンバー端末装置から送信された欠損データを受信する欠損データ受信部とを有することを特徴とする端末装置。
【請求項８】
複数の端末装置が含まれるグループに所属し、所定のデータ通信装置から送信されるデータを受信する端末装置であって、
前記データ通信装置からのデータを受信するデータ受信部と、
自装置が所属するグループの代表である代表メンバー端末装置を示す代表メンバー通知を前記データ通信装置から受信する代表メンバー受信部と、
代表メンバー通知に示された代表メンバー端末装置が自装置である場合に、前記データ受信部が受信したいずれかのデータの送信を要求するデータ送信要求を同じグループに所属する他の端末装置から受信するデータ送信要求受信部と、
データ送信要求で要求されたデータを要求元の端末装置に対して送信するデータ送信部とを有することを特徴とする端末装置。
【請求項９】
前記端末装置は、更に、
いずれのグループにも所属していない場合に、前記データ通信装置から少なくとも一つ以上のグループについて各グループの特性を解析するためのグループ情報を受信するグループ情報受信部と、
グループ情報に基づき各グループの特性を解析し、解析結果に基づきいずれのグループに所属するかを選択するグループ選択部と、
前記グループ選択部により選択されたグループを前記データ通信装置に通知するグループ通知部とを有することを特徴とする請求項７又は８に記載の端末装置。
【請求項１０】
前記グループ選択部は、
前記データ通信装置から受信したグループ情報に基づき各グループの特性を解析した結果、既存のいずれのグループにも所属しないことを決定する場合があり、
前記グループ通信部は、
前記グループ選択部が既存のいずれのグループにも所属しないことを決定した場合に、前記データ通信装置に対して新規グループの設定を要求する新規グループ設定要求を送信することを特徴とする請求項９に記載の端末装置。
【請求項１１】
前記グループ情報受信部は、
グループごとに、各グループの代表である代表メンバー端末装置を示すグループ情報を受信し、
前記グループ選択部は、
グループ情報に基づき各グループの代表メンバー端末装置とのネットワーク距離を計測し、計測した各グループの代表メンバー端末装置とのネットワーク距離に基づきいずれのグループに所属するかを選択することを特徴とする請求項９に記載の端末装置。
【請求項１２】
複数の端末装置と、前記複数の端末装置に対してデータ送信を行うデータ通信装置とを有する通信システムであって、
各端末装置は、
前記データ通信装置からの問い合わせに対してそれぞれの通信状態を前記データ通信装置に通知し、
前記データ通信装置は、
前記複数の端末装置を少なくとも一つ以上のグループに分類し、
各端末装置に対して通信状態の問い合わせを行うとともに、各端末装置から通信状態の通知を受け付け、
いずれかの端末装置へのデータ送信に先立ち、データ送信の対象となる端末装置と同じグループに所属する少なくとも一つ以上の他の端末装置の通信状態に基づき、データ送信の対象となる端末装置に対する有効帯域を予測し、
予測した有効帯域の範囲内でデータ送信の対象となる端末装置へのデータ送信の帯域を制御することを特徴とするデータ通信システム。
【請求項１３】
前記データ通信装置は、
データ送信の対象となる端末装置の通信状態及びデータ送信の対象となる端末装置と同じグループに所属する少なくとも一つ以上の他の端末装置の通信状態に基づき、データ送信の対象となる端末装置に対する有効帯域を予測することを特徴とする請求項１２に記載のデータ通信システム。
【請求項１４】
前記データ通信装置は、
いずれのグループにも所属していないグループ未所属端末装置が存在する場合に、各グループの特性を解析するためのグループ情報を前記グループ未所属端末装置に送信し、グループ情報に基づいて前記グループ未所属端末装置に各グループの特性を解析させて所属するグループを選択させるとともに、前記グループ未所属端末装置が選択したグループに前記グループ未所属端末装置を所属させるための登録処理を行い、
各端末装置は、
いずれのグループにも所属していないグループ未所属端末装置である場合に、前記データ通信装置からグループ情報を受信し、グループ情報に基づき各グループの特性を解析し、解析結果に基づきいずれのグループに所属するかを選択するとともに、選択したグループを前記データ通信装置に通知することを特徴とする請求項１２に記載のデータ通信システム。
【請求項１５】
各端末装置は、
前記データ通信装置から受信したグループ情報に基づき各グループの特性を解析した結果、既存のいずれのグループにも所属しないことを決定する場合があり、既存のいずれのグループにも所属しないことを決定した場合に、前記データ通信装置に対して新規グループの設定を要求し、
前記データ通信装置は、
いずれかの端末装置より新規グループの設定を要求された場合に、新規グループを設定するとともに当該端末装置を新規グループに所属させるための登録処理を行うことを特徴とする請求項１４に記載のデータ通信システム。
【請求項１６】
前記データ通信装置は、
グループ情報として、グループごとに、各グループの代表である代表メンバー端末装置を示すグループ情報を前記グループ未所属端末装置に対して送信し、
各端末装置は、
前記データ通信装置よりグループ情報を受信した場合に、グループ情報に基づき各グループの代表メンバー端末装置とのネットワーク距離を計測し、計測した各グループの代表メンバー端末装置とのネットワーク距離に基づきいずれのグループに所属するかを選択することを特徴とする請求項１４に記載のデータ通信システム。
【請求項１７】
前記データ通信装置は、
それぞれの問い合わせタイミングをずらして各端末装置に対して通信状態の問い合わせを行うことを特徴とする請求項１２に記載のデータ通信システム。
【請求項１８】
複数の端末装置と、前記複数の端末装置に対してデータ送信を行うデータ通信装置とを有する通信システムであって、
前記データ通信装置は、
前記複数の端末装置を少なくとも一つ以上のグループに分類するとともに、端末装置が受信したデータ中にデータ欠損があった場合に当該端末装置が欠損データの送信要求を行うべき他の端末装置を、グループごとに、代表メンバー端末装置として選定し、選定した代表メンバー端末装置を、グループごとに、各端末装置に対して通知し、
各端末装置は、
前記データ通信装置から受信したデータ中にデータ欠損があった場合に、前記データ通信装置から通知された代表メンバー端末装置に対して欠損データの送信を要求し、前記代表メンバー端末装置から欠損データを受信することを特徴とするデータ通信システム。
【請求項１９】
複数の端末装置と、前記複数の端末装置に対してデータ送信を行うデータ通信装置とを有する通信システムであって、
前記データ通信装置は、
前記複数の端末装置を少なくとも一つ以上のグループに分類するとともに、端末装置が受信したデータ中にデータ欠損があった場合に当該端末装置が欠損データの送信要求を行うべき他の端末装置を、グループごとに、代表メンバー端末装置として選定し、選定した代表メンバー端末装置を、グループごとに、各端末装置に対して通知し、
各端末装置は、
前記データ通信装置から通知された代表メンバー端末装置が自装置である場合に、前記データ通信装置から受信したいずれかのデータの送信を同じグループに所属する他の端末装置から要求される場合があり、同じグループに所属する他の端末装置からいずれかのデータの送信を要求された場合に、要求されたデータを要求元の端末装置に対して送信することを特徴とするデータ通信システム。
【請求項２０】
前記データ通信装置は、
グループごとに、通信状態が良好な順に所定数の端末装置を選択し、選択した所定数の端末装置を代表メンバー端末装置として選定することを特徴とする請求項１８又は１９に記載のデータ通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信における帯域制御及び再送制御に関する。特に、カメラ等で取り込んだ映像や音声などのマルチメディアデータをＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワーク経由で配信、受信、再生するライブ型コンテンツのストリーミング配信方式およびシステムに関する。また、本発明は、このようなライブ型コンテンツのストリーミング配信システムにおいて、通信保証がないベストエフォートなネットワーク（例えば、インターネット）経由でのデータ欠損や再生品質の劣化を防止するためのＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）制御方式およびシステムに関する。
【背景技術】
【０００２】
ＩＰネットワークへのストリーミング配信においては、ユニキャスト配信技術とマルチキャスト配信技術がある。ユニキャスト配信は単一のアドレスを指定して特定の相手にデータを送信する配信方式で、主にオンデマンド系のコンテンツ配信に使われている。マルチキャスト配信はあらかじめ決められた複数のノードに対して同時に送信する配信方式で、主にライブ型コンテンツや放送系コンテンツの配信に使われている。
【０００３】
また、ストリーミング配信の帯域制御技術においては、特開２００１−２３０８０９号公報に記載の「通信システム及び通信方法及び送信端末及び受信端末」がある。当技術では、パケット網の通信システムにおいて、端末間における輻輳状態の予測および検出を行い、その状態に適応してパケットを配送する輻輳制御を行う。輻輳制御方式はジッタの移動平均とパケットロス率を取得し、通信状態を判定し、通信状態の変化を予測し、送信ビットレート及び符号化レートを制御するものである。
【０００４】
また、ルータ等のネットワーク機器において帯域を制御する技術として、ネットワーク上で送信先までの帯域を予約し通信品質を確保するＲＳＶＰ（Ｒｅｓｏｕｒｃｅ  ｒｅＳｅｒＶａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）やＩｎｔＳｅｒｖや、各ＩＰパケットに優先制御に関する情報を持たせ相対的な転送性能差をつけることによってトラフィックの優先制御を行うＤｉｆｆＳｅｒｖなどのネットワークＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）／ＣｏＳ（Ｃｌａｓｓ  ｏｆ  Ｓｅｒｖｉｃｅ）技術がある。また、複数の符号化デートで構成したマルチキャスト・ストリームを配信して、通信状況に応じてルータ等で動的にストリーム数を制御する階層型マルチキャスト配信技術がある。
【０００５】
また、ストリーミング配信の再送制御技術においては、データが欠落したときや、誤ったデータを受信したときに、受信側が送信側に対してそのデータを再送するように要求するＡＲＱ（Ａｕｔｏｍａｔｉｃ  Ｒｅｐｅａｔ  Ｒｅｑｕｅｓｔ）技術がある。また、ブロードキャスト通信における再送制御技術において、特開２００３−１７９６４０号公報に記載の「ブロードキャスト通信における欠損パケットの補完方式および方法」がある。当技術では、各グループに分けられシーケンスに受信するブロードキャストのパケットをグループ毎に分担しかつシーケンス番号単位に分けて保存するクライアントに対して配信サーバが配信データをパケットによりＵＤＰ／ＩＰブロードキャストでシーケンスに送信することにより、クライアントがパケットを受信中に欠損パケットを検出した場合に他のクライアントに対して欠損パケットの再送要求を行い、そのクライアントが再送要求された欠損パケットを保存していたならばサーバの代わりにその欠損パケットを要求元のクライアントに送信する。
【０００６】
また、受信端末のネットワーク情報共有技術においては、特開２００２−３３５２５５号公報に記載の「分散型無線通信システムおよび分散型無線通信方法」がある。当技術では、移動体端末などの無線通信システムにおいて、独立したローカル無線リンクを利用して無線端末間で直接通信し、ネットワーク構成／近隣セルのリスト／ページング要求などのネットワーク環境情報を共有することで、無線通信システムでは一般的に時間／通信リソース／消費電力を必要とするモニタリング処理の負荷を軽減する。
【特許文献１】特開２００１−２３０８０９号公報
【特許文献２】特開２００３−１７９６４０号公報
【特許文献３】特開２００２−３３５２５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
インターネットのようなベストエフォート・ネットワークでは、トラフィックが混雑して輻輳が発生すると、パケットロスや遅延によるデータ欠損が発生する。ライブ型コンテンツや放送系コンテンツにおいては、多くの端末が同じ時間にストリームを受信するため、ユニキャスト配信では輻輳が発生しやすい。一方、マルチキャスト配信では１つのアドレスで多くのホストがストリームを受信できるため、ライブ型／放送系コンテンツに適しており、また配信装置やネットワークのトラフィックが抑えられ輻輳も発生しにくい。しかし、マルチキャスト配信では、個々の端末とのセッションが存在しないため、輻輳が発生してしまっても端末毎に最適な帯域制御が行えない。また、現在のインターネットのバックボーンルータはマルチキャストに対応しているものが少なく、ほとんどがマルチキャストデータを受信できない環境であるのが現状である。
【０００８】
また、ストリーミング配信の帯域制御技術においては、従来技術ではジッタやパケットロス率の取得を、クライアント（受信側）からサーバ（送信側）へ定期的にフィードバックすることで実現するが、ライブ型コンテンツのストリーミング配信の場合、一時に多数のクライアントがフィードバックするため、上り方向の帯域が大きくなり、フィードバック情報が届かなかったり、下り方向の輻輳にも影響を与えたりする。
【０００９】
また、ルータ等のネットワーク機器において帯域を制御する技術では、マルチキャスト配信と同じくそれらの帯域制御技術をネットワーク上のすべてのルータに適用しなくてはならない。
【００１０】
また、ストリーミング配信の再送制御技術においては、従来技術ではサーバ（送信側）へ再送要求を行い、サーバから再送される。しかし、ライブ型コンテンツのストリーミング配信ではリアルタイム性が重要視され、サーバからの再送が間に合わない場合がある。また、再送要求においても、多数のクライアント（受信側）から発せられるため、再送要求によって帯域が圧迫され、再送要求および再送パケットが欠損しやすくなり、再送によるリカバリー率も低下し、サーバの再送プロセスにも負担をかけてしまう。特開２００３−１７９６４０号公報に記載の再送制御方式では、パケットをグループ化し、各クライアントが任意のグループのパケットを一時蓄積しておき、欠損したパケットと同じグループのパケットを一時蓄積しているクライアントに対して欠損したパケットの再送要求を行う。しかし、同グループのパケットを一時蓄積しているクライアントは多数あると考えられ、それらのクライアントにそれぞれ再送要求を行うことは上述の課題と同じく帯域が圧迫される。また、多数のクライアントから同じ再送パケットが送られてくるため、重複したパケットの処理が必要となってくる。再送要求先のクライアントを１つに選定しても、そのクライアントの通信状態が悪い場合、再送要求されたパケットを同クライアントも受信・蓄積できていない可能性が高く、再送によるリカバリー率も低下するという問題が生じる。
【００１１】
本発明は、以上の問題点を解決することを主な目的としている。
【課題を解決するための手段】
【００１２】
本発明に係るデータ通信装置は、
端末装置に対するデータ送信を行うデータ送信部と、
複数の端末装置を少なくとも一つ以上のグループに分類するグループ情報を管理するグループ管理部と、
複数の端末装置について、各端末装置の通信状態を示す通信状態情報を管理する通信状態管理部と、
いずれかの端末装置へのデータ送信に先立ち、前記グループ管理部により管理されているグループ情報と前記通信状態管理部により管理されている通信状態情報とを参照し、データ送信の対象となる端末装置と同じグループに所属する少なくとも一つ以上の他の端末装置の通信状態に基づき、データ送信の対象となる端末装置に対する有効帯域を予測する有効帯域予測部と、
前記有効帯域予測部により予測された有効帯域の範囲内でデータ送信の対象となる端末装置へのデータ送信の帯域を制御する帯域制御部とを有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、データ通信装置と端末装置の間に中継装置やネットワーク機器といった装置を組み込むことなく、Ｅｎｄ  ｔｏ  Ｅｎｄでの帯域制御が実現でき、これにより輻輳を抑制することができ、より安定したデータ通信が可能となる。
【発明を実施するための最良の形態】
【００１４】
実施の形態１．
図１は、本実施の形態に係るシステム構成例を示す図である。実施の形態１ではライブ映像のストリーミング配信における帯域制御手法を説明する。
【００１５】
配信サーバ装置１０１（データ通信装置に相当）では、映像や音声などのマルチメディアデータを生成するライブエンコーダ装置などからエンコードされたデータをエンコードデータ受信部１０３が受信し、エンコーダ受信バッファ１０４に蓄積する。次に、ストリーミング配信部１０５がエンコーダ受信バッファ１０４からエンコードデータを取得し、ストリーミング配信部１０５（データ送信部に相当）がネットワーク１３２経由でプレイヤー１０２（端末装置に相当）へライブ型コンテンツのストリーミング配信を行う。プレイヤー１０２では、配信サーバ装置１０１からのストリーミングデータをストリーミング受信部１２０（データ受信部に相当）が受信し、受信バッファ１２１に蓄積する。
【００１６】
また、プレイヤーのグループ化においては、プレイヤー１０２では、グループ化部１２３のグループ情報受信部１２４が配信サーバ装置１０１から現在のグループ情報を取得し、グループ判定部１２６が自分がどのグループに属するべきかを判定し、その結果を配信サーバ装置１０１へ回答する。配信サーバ装置１０１では、プレイヤー１０２からのグループについての回答に基づき、グループ管理部１１４のメンバー登録部１１６又はグループ生成部１１８がグループ管理テーブル１１５を更新する。
【００１７】
また、プレイヤー１０２では、配信サーバ装置１０１から通信状態情報を要求されると、通信状態情報送受信部１２２が配信サーバ装置１０１とプレイヤー１０２間の現在の通信状態情報を配信サーバ装置１０１に返信し、配信サーバ装置１０１では、通信状態情報制御部１０６（通信状態管理部に相当）が各グループ／プレイヤーの通信状態情報を通信状態テーブル１０９にて管理する。
【００１８】
また、プレイヤー１０２に対する帯域制御においては、配信サーバ装置１０１では、有効帯域予測部１０７がグループ管理テーブル１１５を用いてプレイヤー１０２が属するグループ内のすべてのプレイヤーを認識し、それらのプレイヤーの通信状態情報を通信状態テーブル１０９から取得する。次に、有効帯域予測部１０７は、それらの通信状態情報から現在のプレイヤー１０２と配信サーバ装置１０１間の有効帯域を予測する。そして、帯域制御部１０８が、有効帯域予測部１０７により予測された有効帯域よりプレイヤー１０２へのストリーミング配信の帯域が大きくならないようにストリーミング配信部１０５の送信量を調節し、ストリーミング配信部１０５がエンコーダ受信バッファ１０４からその送信量分のエンコードデータを取得し、プレイヤー１０２へストリーミング配信する。
【００１９】
なお、配信サーバ装置１０１及びプレイヤー１０２は、図示していないが、例えばマイクロプロセッサ等のＣＰＵ、半導体メモリ等や磁気ディスク等の記録手段、及び通信手段を有する計算機により実現することができる。記録手段には、配信サーバ装置１０１及びプレイヤー１０２に含まれる各構成要素の機能を実現するプログラムが記録されており、ＣＰＵがこれらのプログラムを読み込むことにより配信サーバ装置１０１及びプレイヤー１０２の動作を制御し、各構成要素の機能を実現することができる。
【００２０】
以下に実施の形態１の処理の流れや詳細を説明する。
【００２１】
はじめに、配信サーバ装置におけるグループ管理処理を説明する。図２は実施の形態１におけるグループ化処理のフローチャート図である。
【００２２】
配信サーバ装置と各プレイヤーはセッションを確立してからストリーミングの配信および受信を行うこととする。セッション管理は例えばＲＴＳＰ（Ｒｅａｌ  Ｔｉｍｅ  Ｓｔｒｅａｍｉｎｇ  Ｐｒｏｔｏｃｏｌ）（ＲＦＣ２３２６）を利用して実現する。各プレイヤーとのセッションをモニタし、セッションが新規に発生したかあるいは既存のセッションが終了したのかをチェックする（２０３）。新規にセッションが発生した場合はグループ化処理を行う（２０４）。グループ化処理においては、図３にて後述する。既存のセッションが終了した場合は、メンバー削除部１１７がグループ管理テーブル１１５からセッションが終了するプレイヤーを削除する（２０５）。そのとき、削除したプレイヤーが属していたグループ内にもうメンバーが存在しない場合は、グループ削除部１１９がグループ管理テーブル１１５からそのグループも削除する。図１１は実施の形態１における１つの配信サーバ装置と１２個のプレイヤーで構成されるグループ化の構成例であり、図１２は図１１におけるグループ管理テーブル１１５の例である。
【００２３】
次に、上述の新規セッションの場合（２０４）のグループ化処理を説明する。図３は実施の形態１におけるグループ化処理のフローチャート図である。図３では、プレイヤー（１）が新たにセッションを確立し、プレイヤー（１）（グループに未所属のプレイヤー（グループ未所属端末装置））をグループに割り当てるまでのフローを表している。まず配信サーバ装置では、グループ管理部１１４がグループ管理テーブルから現在のグループ情報を取得する（３０２）。グループ情報は、グループ数や、各グループの代表メンバーＭ（ｉ）の情報（アドレス等）である。ここでｉはグループを識別するＩＤであり、０≦ｉ＜グループ数となる。次に、グループ情報通知部１１０がグループ管理部１１４よりグループ情報を取得し、取得したグループ情報をプレイヤー（１）へ通知する（３０３）。プレイヤー（１）では、グループ情報受信部１２４が配信サーバ装置からグループ情報を受信すると（３２２）、距離測定部１２５が各グループの代表メンバーＭ（ｉ）とのネットワーク距離を測定する（３２３）。ネットワーク距離の測定方法としては、代表メンバーＭ（ｉ）とプレイヤー（１）とのホップ数を利用する。ホップ数を取得する方法としては、例えばＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）を利用し、プレイヤー（１）はＩＣＭＰパケットのＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）に０から順に値をセットし、そのＩＣＭＰパケットを代表メンバーＭ（ｉ）に送出し、正常に返答が来たときのセットしたＴＴＬ値を代表メンバーＭ（ｉ）とプレイヤー（１）とのホップ数とする。ここで、代表メンバーＭ（ｉ）とプレイヤー（１）とのホップ数をＨ（ｉ）とし、最も小さいＨ（ｉ）をＨ＿ｍｉｎとし、そのときのグループＩＤ（すなわちｉ）をＧとする（３２４）。また、最大許容範囲のホップ数をＨｍａｘとし、Ｈｍａｘの値はプレイヤーあるいはシステムが決定する。Ｈ＿ｍｉｎが０より大きくＨｍａｘより小さいとき（３２５）、プレイヤー（１）はＩＤ＝Ｇのグループに属することになる。もし、Ｈ＿ｍｉｎがＨｍａｘより大きいとき、プレイヤー（１）はすべての代表メンバーとのネットワーク距離が遠いことを意味しており、どのグループにも属せないことを表すために、Ｇを−１にセットする（３２６）。以上の所属するグループの選択処理はグループ判定部１２６で行われる。最後にプレイヤー（１）のグループ判定部１２６は、グループ識別Ｇを配信サーバ装置へ通知する（３２７）。配信サーバ装置では、グループ識別受信部１１１がプレイヤー（１）からグループ識別Ｇを受信すると（３０４）、グループ生成部１１８がＧの値をチェックし、Ｇが−１でなければグループＩＤがＧであるグループにプレイヤー（１）をメンバーとして登録するために、メンバー登録部１１６が、グループ管理テーブル１１５のＧのグループメンバーにプレイヤー（１）を追加する（３０６）。Ｇが−１のとき、既存のグループには属さなかったことを意味するので、グループ生成部１１８が新しいグループを生成して、その新規グループをグループ管理テーブルに追加登録し（３０７）、メンバー登録部１１６が新規グループにプレイヤー（１）をメンバー登録する（３��８）。また、代表メンバー選定部１１２が新規グループの代表メンバーをプレイヤー（１）とする（３０９，３１０）。
【００２４】
次に、配信サーバ装置とプレイヤーの通信状態情報処理を説明する。図４は実施の形態１における通信状態情報処理のフローチャート図である。
【００２５】
図４は、グループＡに属するＮ個のプレイヤー（ｉ）（０≦ｉ＜Ｎ）における通信状態情報処理を表している。通信状態情報処理において、配信サーバ装置では２つのプロセスが起動する。１つが通信状態情報を各プレイヤーへ要求する送信プロセス（４０２〜４０７）と、もう１つが各プレイヤーから通信状態情報を受信する受信プロセス（４０８〜４１２）である。ここで、通信状態情報とは、例えばジッタやパケット欠損率であり、ＲＴＰ（Ｒｅａｌ−Ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）（ＲＦＣ１８８９）およびＲＴＣＰ（ＲＴＰ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）などを利用して通信状態情報の要求／返信を実現することができる。まず、送信プロセスでは、グループ管理テーブル１１５から現在のグループＡの情報を取得する。取得する情報としては、グループＡに属するメンバー数や、グループＡに属する各プレイヤーの情報（アドレス等）である。次に送信プロセスはグループＡの各プレイヤーに通信状態情報を要求する（４０５）。そのとき、各プレイヤーからの通信状態情報の返信が集中しないように、通信状態情報の要求間隔を調節する（４０４）。例えば、最低でもＭ秒に１度各プレイヤーから通信状態情報を受信するには、Ｍ／Ｎ秒間隔で通信状態情報の要求を行う。すなわち、プレイヤー（ｉ）には（Ｍ×ｉ／Ｎ）秒後に通信状態情報の要求を行う。受信プロセスでは、各プレイヤーから通信状態情報を受信し（４１０）、通信状態テーブル１０９のグループＡの通信状態を更新する（４１１）。プレイヤー（ｉ）では、通信状態情報送受信部１２２が配信サーバ装置から通信状態情報の要求を受信すると（４２３，４３３，４４３）、現在の配信サーバ装置とプレイヤー（ｉ）との通信状態情報を配信サーバ装置へ送信する（４２４，４３４，４４４）。
【００２６】
次に、配信サーバ装置における帯域制御処理を説明する。図５は実施の形態１における帯域制御処理のフローチャート図である。図５は、グループＡに属するプレイヤー（１）における帯域制御処理を表している。配信サーバ装置はグループ管理テーブル１１５からプレイヤー（１）がグループＡに属していることを認識する（５０２）。次に、有効帯域予測部１０７が、通信状態テーブル１０９からグループＡの現在の通信状態を取得する（５０４）。通信状態は上述の通信状態情報処理において常に最新の通信状態に更新されている。次に、有効帯域予測部１０７は、グループＡの通信状態からプレイヤー（１）に対する有効帯域を予測する（５０５）。有効帯域の予測方法としては、例えば、従来技術の特開２００１−２３０８０９号公報のように、ジッタの移動平均とパケットロス率から現在の通信状態を判定し、通信状態の変化から現在の利用可能な帯域を算出する方法などを用いる。ここで、グループＡに所属しているすべてのプレイヤーの通信状態に基づいて有効帯域の予測を行ってもよいし、グループＡに所属している特定のプレイヤーの通信状態に基づいて有効帯域の予測を行ってもよい。次に、帯域制御部１０８が、実際に配信する転送レートが有効帯域に近くなるように制御する（５０６）。ただし、有効帯域より大きくならないように制御する。つまり、予測された有効帯域の範囲内でデータ送信の帯域を制御する。制御方法としては、例えば、エンコードデータが階層的なスケーラブル符号データであるときは、エンコーダ受信バッファ１０４からエンコードデータを取得する際に、転送レートが有効帯域より小さく且つ最大になるような最適な取得サイズを割り出し、エンコードデータを取得する。あるいはエンコードデータが複数の符号化データで構成されるマルチエンコードデータである場合は、有効帯域より小さく且つ最大になるような最適な符号化データを選択して、エンコードデータを取得する。最後に、ストリーミング配信部１０５が、取得したエンコードデータをパケット化してプレイヤー（１）に送信する。この帯域制御処理を各プレイヤーに対して行う。
【００２７】
以上のように、本実施の形態に係るデータ通信システムは、ライブ映像をストリーミング配信する配信サーバ装置と、配信サーバから配信されたパケットを受信してライブ映像を再生するプレイヤーとを有し、プレイヤーが、配信サーバからのパケットを受信するストリーミング受信部と、同じストリーミングを受信している複数のプレイヤーをグループ化するグループ化部と、通信状態の情報を配信サーバ装置へ送信する通信状態情報送受信部とを備え、配信サーバ装置が、映像や音声などのマルチメディアデータを生成するライブエンコーダ装置からのエンコードデータを受信しエンコーダ受信バッファに蓄積するエンコードデータ受信部と、エンコーダ受信バッファに蓄積されたエンコードデータをネットワークへ配信するストリーミング配信部と、プレイヤーへ通信状態の情報を要求し、プレイヤーからの通信状態の情報を受信する通信状態情報制御部と、通信状態制御部で取得した各プレイヤーの通信状態情報とプレイヤーが属するグループ内のすべてのプレイヤーの通信状態情報を基に、各プレイヤーの有効な帯域を予測する有効帯域予測部と、有効帯域予測部で予測された有効帯域にしたがってストリーミング配信の帯域を制御する帯域制御部とを備えることにより、配信サーバ装置とプレイヤー間の中継装置やネットワーク機器に新たな技術を組み込むことなく、Ｅｎｄ  ｔｏ  Ｅｎｄでの帯域制御が実現でき、より安定したストリーミング配信が可能である。
【００２８】
また、本実施の形態に係るデータ通信システムでは、配信サーバ装置が、プレイヤーのグループ化部によって同プレイヤーが属するグループの識別情報を受信するグループ識別受信部と、グループ内のメンバーの中から代表となるプレイヤーを選定する代表メンバー選定部と、各グループのメンバーの情報を管理するグループ管理部と、各グループの代表メンバーの情報をプレイヤーへ通知するグループ情報通知部とを備え、プレイヤーが、配信サーバ装置のグループ情報通知部によって送信された各グループの代表メンバーの情報を受信するグループ情報受信部と、グループ情報受信部によって得られた各グループの代表メンバーとのネットワークの距離を測定する距離測定部と、距離測定部によって得られた各代表メンバーとのネットワーク距離から所属するグループを判定し、そのグループの識別情報を配信サーバ装置へ通知するグループ判定部と、自分と各代表メンバー間のホップ数Ｈをカウントし、有効ネットワーク距離（ホップ数）をＨｍａｘとしたとき、０≦Ｈ＜Ｈｍａｘを満たし、最も小さいＨであったメンバーを代表メンバーに選定し、上記条件を満たすメンバーが存在しないときは、どのグループにも属さないことを配信サーバ装置へ通知するグループ判定部とを備え、更に、配信サーバ装置が、グループの管理テーブルを保持し、グループ識別受信部によって得られたグループに、グループ識別情報送信元のプレイヤーを加入メンバーとして管理テーブルに登録するメンバー登録部と、プレイヤーがストリーミング受信を終了したときあるいは配信サーバがプレイヤーへの配信を終了したときに、同プレイヤーを所属するグループから除外するため、管理テーブルの同グループメンバーから削除するメンバー削除部と、グループ識別受信部によって得られたグループがどのグループにも属さないものであれば、新規にグループを生成して管理テーブルに新規グループを登録し、同グループにグループ識別情報送信元のプレイヤーをメンバー登録するグループ生成部と、メンバー削除部によってグループからメンバーが削除され、その結果同グループ内にメンバー存在しないとき、同グループを管理テーブルから削除して同グループを消去するグループ削除部と、各プレイヤーからの通信状態の情報を受信し、それら通信状態を通信状態テーブルに保存する通信状態情報制御部と、グループの数や各グループのメンバーの情報を管理するグループ管理部と、通信状態情報制御部によって得られるプレイヤーの通信状態の情報と、同プレイヤーが所属するグループ内のすべてのプレイヤーの通信状態情報とから、同プレイヤーの有効な帯域を動的に予測する有効帯域予測部と、各プレイヤーに対して有効帯域予測部で予測された有効帯域よりストリーミング配信の帯域が大きくならないように送信量を動的に制御する帯域制御部とを備えることにより、グループ内の通信状態を共有することができ、ライブ型コンテンツのストリーミング配信のように、一時に多くのプレイヤーがストリーミング受信していても、帯域制御による通信トラフィックを削減し、輻輳を抑制することができる。これらの効果によって、ライブの映像や音声などの途切れや品質劣化を防ぐことができる。
【００２９】
また、本実施の形態に係るデータ通信システムは、プレイヤーが、配信サーバ装置の通信状態情報制御部から通信状態情報の要求を受けたときに、現在の配信サーバとプレイヤー間の通信状態の情報を配信サーバ装置へ送信する通信状態情報送受信部を備え、配信サーバ装置が、グループ内の各プレイヤーから送信される通信状態情報の受信間隔がグループ内で均等になるように、各プレイヤーへの通信状態情報の要求を行うタイミングを制御する通信状態情報制御部を備えることによって、配信サーバ装置が、各プレイヤーに対する最新な通信状態を得ることができ、精度の高い帯域制御を実現することができる。図１０は、従来の帯域制御と本実施の形態における帯域制御の効果の差を示したものである。図１０のように、本実施の形態による帯域制御では、短い時間間隔で各プレイヤーに対する有効帯域を見積もることができ、急激な輻輳変化においても柔軟に対処できる。これらの効果によって、従来の帯域制御による映像・音声のストリーミング配信に比べ、途切れや品質劣化を防ぐことができる。
【００３０】
実施の形態２．
実施の形態２ではライブ映像のストリーミング配信における再送制御手法を説明する。
【００３１】
図１５は、本実施の形態に係る配信サーバ装置１０１とプレイヤー１０２の構成例を示す。本実施の形態では、配信サーバ装置１０１において、代表メンバー通知部１１３が追加され、プレイヤー１０２において、代表メンバー受信部１２７、代表メンバー管理部１２８、再送要求送信部１２９（データ送信要求送信部に相当）、再送要求受信部１３０（データ送信要求受信部に相当）、再送部１３１（データ送信部に相当）、再送パケット受信部１３３（欠損データ受信部）が追加されている。他の要素については、図１に示したものと同様である。
【００３２】
配信サーバ装置１０１は映像や音声などのマルチメディアデータを生成するライブエンコーダ装置などからエンコードされたデータを受信し、エンコーダ受信バッファ１０４に蓄積する。次にエンコーダ受信バッファからエンコードデータを取得し、ネットワーク１３２経由でプレイヤー１０２へライブ型コンテンツのストリーミング配信を行う。配信方式はユニキャストでもマルチキャストでも構わない。プレイヤー１０２は配信サーバ装置１０１からのストリーミングデータを受信し、受信バッファ１２１に蓄積する。
【００３３】
また、プレイヤーのグループ化においては、プレイヤー１０２は配信サーバ装置１０１から現在のグループ情報を取得し、自分がどのグループに属するべきかを判定し、その結果を配信サーバ装置１０１へ回答する。配信サーバ装置１０１はグループ管理テーブル１１５を更新する。
【００３４】
また、プレイヤー１０２は配信サーバ装置１０１から通信状態情報を要求されると、現在の配信サーバ装置１０１とプレイヤー１０２間の通信状態情報を配信サーバ装置１０１に返信し、配信サーバ装置１０１では各グループ／プレイヤーの通信状態情報を通信状態テーブル１０９にて管理する。通信状態テーブル１０９から最新の通信状態を取得し、各グループの中で通信状態の良いプレイヤーをそのグループの代表メンバーとし、代表メンバー通知部１１３が逐次各プレイヤー１０２へ通知し、プレイヤー１０２では、代表メンバー受信部１２７が自分のグループの代表メンバーを受信し、代表メンバー管理部１２８が代表メンバーの情報を管理する。
【００３５】
また、プレイヤー１０２対する再送制御においては、配信サーバ装置１０１からのストリーミング受信の際に欠損したパケットがあった場合、再送要求送信部１２９が自分のグループの代表メンバーにそのパケットの再送要求を行う。再送要求受信部１３０により再送要求を受信したプレイヤー（代表メンバー）は自分の受信バッファに再送要求されたパケットがあった場合、再送部１３１によりそのパケットを再送要求元のプレイヤーへ送信する。再送要求元のプレイヤーでは、再送パケット受信部１３３が代表メンバーから送信された再送パケット（欠損パケット）を受信する。
【００３６】
以下に実施の形態２の処理の流れや詳細を説明する。
【００３７】
配信サーバ装置におけるグループ管理処理は実施の形態１と同様である。図１３は実施の形態２における１つの配信サーバ装置と１２個のプレイヤーで構成されるグループ化の構成例であり、図１４は図１３におけるグループ管理テーブル１１５の例である。
【００３８】
次に、実施の形態２における新規セッションの場合（２０４）のグループ化処理を説明する。図６は実施の形態２におけるグループ化処理のフローチャート図である。図６では、プレイヤー（１）が新たにセッションを確立し、プレイヤー（１）をグループに割り当てるまでのフローを表している。まず配信サーバ装置では、グループ管理テーブルから現在のグループ情報を取得する（６０２）。グループ情報は、グループ数や、各グループの代表メンバーＭ（ｉ，ｊ）の情報（アドレス等）である。ここでｉはグループを識別するＩＤであり、０≦ｉ＜グループ数となる。ｊはそのグループの代表メンバー数である。つまり、各グループの代表メンバー数は複数でも構わない。取得したグループ情報をプレイヤー（１）へ通知する（６０３）。プレイヤー（１）は配信サーバ装置からグループ情報を受信すると（６２２）、各グループの代表メンバーＭ（ｉ，ｊ）とのネットワーク距離を測定する（６２３）。ネットワーク距離の測定方法としては、代表メンバーＭ（ｉ，ｊ）とプレイヤー（１）とのホップ数を利用する。ホップ数を取得する方法としては、例えばＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）を利用し、プレイヤー（１）はＩＣＭＰパケットのＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）に０から順に値をセットし、そのＩＣＭＰパケットを代表メンバーＭ（ｉ，ｊ）に送出し、正常に返答が来たときのセットしたＴＴＬ値を代表メンバーＭ（ｉ，ｊ）とプレイヤー（１）とのホップ数とする。ここで、代表メンバーＭ（ｉ，ｊ）とプレイヤー（１）とのホップ数をＨ（ｉ，ｊ）とする。次にＨ（ｉ，ｊ）を値が小さい方から順列したリストＬ（ｋ）を作成する（６２４）。Ｌ（ｋ）の要素は、ホップ数Ｈ（ｉ，ｊ）とそのときのグループＩＤとなるｉである。また、グループ化の有効なネットワーク距離として最大距離のホップ数Ｈｍａｘと最小距離のホップ数Ｈｍｉｎを、ユーザやシステムが既定しておく。Ｌ（ｋ）のＨ（ｉ，ｊ）の値がＨｍｉｎより大きくＨｍａｘより小さいという条件を満たし、且つ最も小さいＬ（ｋ）が代表メンバーとなり（６２５〜６２７）、そのときのＬ（ｋ）のｉがプレイヤー（１）の属するグループのＩＤとなる。したがって、グループ識別Ｇ＝ｉとする（６２９）。もし、上述の条件を満たす代表メンバーＨ（ｉ，ｊ）が存在しないとき、プレイヤー（１）はすべての代表メンバーとのネットワーク距離が近すぎるかあるいは遠すぎることを意味しており、どのグループにも属せないことを表すために、グループ識別Ｇに−１をセットする（６２８）。最後にプレイヤー（１）はグループ識別Ｇを配信サーバ装置へ通知する（６３０）。配信サーバ装置はプレイヤー（１）からグループ識別Ｇを受信すると（６０４）、Ｇの値をチェックし、Ｇが−１でなければグループＩＤがＧであるグループにプレイヤー（１）をメンバーとして登録するために、グループ管理テーブル１１５のＧのグループメンバーにプレイヤー（１）を追加する（６０６）。Ｇが−１のとき、既存のグループには属さなかったことを意味するので、新しいグループを生成して、その新規グループをグループ管理テーブルに追加登録し（６０７）、新規グループにプレイ��ー（１）をメンバー登録する（６０８）。また、新規グループの代表メンバーをプレイヤー（１）とする（６０９，６１０）。
【００３９】
次に、配信サーバ装置とプレイヤーの通信状態情報処理を説明する。図７は実施の形態２における通信状態情報処理のフローチャート図である。図７は、グループＡに属するＮ個のプレイヤー（ｉ）（０≦ｉ＜Ｎ）における通信状態情報処理を表している。通信状態情報処理において、配信サーバ装置では２つのプロセスが起動する。１つが通信状態情報を各プレイヤーへ要求する送信プロセス（７０２〜７０７）と、もう１つが各プレイヤーから通信状態情報を受信する受信プロセス（７０８〜７１２）である。ここで、通信状態情報とは、例えばジッタやパケット欠損率であり、ＲＴＰ（Ｒｅａｌ−Ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）（ＲＦＣ１８８９）およびＲＴＣＰ（ＲＴＰ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）などを利用して通信状態情報の要求／返信を実現することができる。まず、送信プロセスでは、グループ管理テーブル１１５から現在のグループＡの情報を取得する。取得する情報としては、グループＡに属するメンバー数や、グループＡに属する各プレイヤーの情報（アドレス等）である。次に送信プロセスはグループＡの各プレイヤーに通信状態情報を要求する（７０５）。そのとき、各プレイヤーからの通信状態情報の返信が集中しないように、通信状態情報の要求間隔を調節する（７０４）。例えば、最低でもＭ秒に１度各プレイヤーから通信状態情報を受信するには、Ｍ／Ｎ秒間隔で通信状態情報の要求を行う。すなわち、プレイヤー（ｉ）には（Ｍ×ｉ／Ｎ）秒後に通信状態情報の要求を行う。受信プロセスでは、各プレイヤーから通信状態情報を受信し（７１０）、通信状態テーブル１０９のグループＡの通信状態を更新する（４１１）。プレイヤー（ｉ）では、配信サーバ装置から通信状態情報の要求を受信すると（７２３，７３３，７４３）、現在の配信サーバ装置とプレイヤー（ｉ）との通信状態情報を配信サーバ装置へ送信する（７２４，７３４，７４４）。配信サーバ装置では、通信状態に変化があったとき、逐次代表メンバーを選定する（７１１）。
【００４０】
次に、上述の代表メンバー選定処理を説明する。図８は実施の形態２の代表メンバー選定処理のフローチャート図である。まず、グループ内の代表メンバー数は複数でも良いため、各グループの代表メンバー数をユーザやシステムが既定しておく。図８ではグループＡの代表メンバー数をＭｔとする（８０２）。次に通信状態テーブル１０９のグループＡの代表メンバーをリセットする（８０３）。次にグループＡ内の通信状態の良いメンバーを上からＭｔ個選定する（８０４〜８０８）。グループ内のメンバーがＭｔ個に満たない場合は、代表メンバー数もＭｔ以下でも構わない。この結果、グループＡにおいて、前代表メンバーと比較し、代表メンバーに変更があった場合（８０９）、グループＡの各メンバーに新しい代表メンバーの情報を通知する（８１０）。
【００４１】
次に、配信サーバ装置とプレイヤーにおける再送制御処理を説明する。図９は実施の形態２における再送制御処理のフローチャート図である。図９では、配信サーバ装置のフロー（９０１〜９０７）と、代表メンバー以外のプレイヤーのフロー（９２１〜９３０）と、代表メンバーのプレイヤーのフロー（９４１〜９５４）の３つのフローで再送制御処理の流れを示す。
【００４２】
まず配信サーバ装置ではエンコードデータをパケット化してプレイヤーに送信する（９０２）。転送プロトコルとしては、例えばＲＴＰ（Ｒｅａｌ−Ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）（ＲＦＣ１８８９）を利用する。ＲＴＰではシーケンス番号がパケット毎に割り当てられるため、欠損したパケットをシーケンス番号から識別することができる。配信サーバ装置からのパケットを受信した（９２３）代表メンバー以外のプレイヤーは、パケットを受信バッファ１２１に蓄積する。また同時にシーケンス番号などから欠損したパケットを調べる（９２５）。もし、欠損したパケットがあった場合、自分のグループの代表メンバーを認識し（９２６）、欠損したパケットの再送要求を行うための再送要求パケット（データ送信要求）を再送要求送信部１２９から代表メンバーに送信する（９２９）。一方、代表メンバーのプレイヤーでは、再送要求受信部１３０において再送要求パケットを受信することができ（９５１）、再送部１３１が、配信サーバ装置から受信した（９４３）パケットを蓄積した（９４４）受信バッファ１２１に再送要求されたパケットが存在するかどうかを調べ（９５２）、もし存在した場合、そのパケットを再送要求元のプレイヤーへ送信する（９５３）。代表メンバーのプレイヤーが配信サーバ装置から送られてくるパケットを受信する（９４３）際に欠損したパケットがあった場合（９４５）、自分のグループの代表メンバーを認識して、その代表メンバーへ再送要求を行うが（９４９）、代表メンバーが自分しかいない場合（９４７）、配信サーバ装置へ再送要求を行う（９４８）。
【００４３】
以上のように、実施の形態に係るデータ通信システムは、ライブ映像をストリーミング配信する配信サーバ装置と、配信サーバから配信されたパケットを受信してライブ映像を再生するプレイヤーとを有し、プレイヤーが、配信サーバからのパケットや再送パケットを受信し、それらのパケットを受信バッファに蓄積し、欠損したパケットがあった場合、同パケットが欠損したことを再送要求送信部へ通知するストリーミング受信部と、同じストリーミングを受信している複数のプレイヤーをグループ化するグループ化部と、通信状態の情報を配信サーバ装置へ送信する通信状態情報送受信部と、ストリーミング受信部から通知された欠損したパケットを自分と同じグループに属するプレイヤーへ再送要求する再送要求送信部と、再送要求を受信する再送要求受信部と、再送要求されたパケットが受信バッファに存在する場合は再送要求元のプレイヤーへ同パケットを送信する再送部とを備え、配信サーバ装置が、映像や音声などのマルチメディアデータを生成するライブエンコーダ装置からのエンコードデータを受信しエンコーダ受信バッファに蓄積するエンコードデータ受信部と、エンコーダ受信バッファに蓄積されたエンコードデータをネットワークへ配信するストリーミング配信部と、プレイヤーへ通信状態の情報を要求し、プレイヤーからの通信状態の情報を受信する通信状態情報制御部とを有するため、プレイヤー同士での再送処理が可能となり、配信サーバ装置の再送処理の負荷を軽減することができる。
【００４４】
また、実施の形態２に係るデータ通信システムは、配信サーバ装置が、プレイヤーのグループ化部によって同プレイヤーが属するグループの識別情報を受信するグループ識別受信部と、グループ内のメンバーの中から代表となるプレイヤーを選定する代表メンバー選定部と、各グループのメンバーの情報を管理するグループ管理部と、各グループの代表メンバーの情報をプレイヤーへ通知するグループ情報通知部と、グループの管理テーブルを保持し、プレイヤーからのグループ識別情報を受信するグループ識別受信部によって得られたグループにそのプレイヤーを加入メンバーとして管理テーブルに登録するメンバー登録部と、プレイヤーがストリーミング受信を終了したときあるいは配信サーバがプレイヤーへの配信を終了したときに、同プレイヤーを所属するグループから除外するため、管理テーブルの同グループメンバーから削除するメンバー削除部と、プレイヤーからのグループ識別情報を受信するグループ識別受信部によって得られたグループがどのグループにも属さないものであれば、新規にグループを生成して管理テーブルに新規グループを登録し、同グループに同プレイヤーをメンバー登録するグループ生成部と、メンバー削除部によってグループからメンバーが削除され、その結果同グループ内にメンバー存在しないとき、同グループを管理テーブルから削除して同グループを消去するグループ削除部とを備え、プレイヤーが、配信サーバ装置の代表メンバー通知部から自分と同じグループの代表メンバーを受信する代表メンバー受信部と、代表メンバー受信部で取得した代表メンバーを記憶・管理する代表メンバー管理部と、ストリーミング受信部から通知された欠損したパケットを代表メンバー管理部から取得した代表メンバーへ再送要求する再送要求送信部と、再送要求を受信する再送要求受信部と、再送要求されたパケットが受信バッファに存在する場合は再送要求元のプレイヤーへ同パケットを送信する再送部と、代表メンバー管理部から取得した代表メンバーが自分であり、且つその他に代表メンバーが存在しない場合は、欠損したパケットを配信サーバ装置へ再送要求する再送要求送信部を備えるため、再送要求先を限定することができ、ライブ型コンテンツのストリーミング配信のように、一時に多くのプレイヤーがストリーミング受信していても、再送によるトラフィックを軽減することができ、再送要求および再送処理による通信量も削減することができる。
【００４５】
また、実施の形態２に係るデータ通信システムは、プレイヤーが、配信サーバ装置のグループ情報通知部によって送信された各グループの代表メンバーの情報を受信するグループ情報受信部と、グループ情報受信部によって得られた各グループの代表メンバーとのネットワークの距離を測定する距離測定部と、距離測定部によって得られた各代表メンバーとのネットワーク距離から所属するグループを判定し、そのグループの識別情報を配信サーバ装置へ通知するグループ判定部と、自分と各代表メンバー間のホップ数Ｈをカウントし、最短ネットワーク距離（ホップ数）をＨｍｉｎとし、有効ネットワーク距離（ホップ数）をＨｍａｘとしたとき、１＜Ｈｍｉｎ、Ｈｍｉｎ≦Ｈ＜Ｈｍａｘを満たし、最も小さいＨであったメンバーを代表メンバーに選定し、上記条件を満たすメンバーが存在しないときは、どのグループにも属さないことを配信サーバ装置へ通知するグループ判定部とを備え、配信サーバ装置が、各プレイヤーからの通信状態の情報を受信し、それら通信状態を通信状態テーブルに保存する通信状態情報制御部と、通信状態テーブルから、グループ内のメンバーの中で代表となる通信状態の良い単数あるいは複数メンバーを動的に選定する代表メンバー選定部と、グループ内において代表メンバーに変更があった場合、同グループに属する各プレイヤーへ同代表メンバーを通知する代表メンバー通知部を備えるため、再送レスポンスが早くなり、リアルタイム性を重要視するライブ型コンテンツのストリーミングにおいても有効である。また、再送要求側と再送側とのネットワーク距離が近いため，再送要求パケットおよび再送パケットの欠損や遅延が発生する割合が小さくなり、再送によるリカバリー率も高くなる。これらの効果によって、ライブの映像や音声などの途切れや品質劣化を防ぐことができる。
【００４６】
ここで、以上の実施の形態１及び実施の形態２で示したデータ通信システムの特徴を説明する。
【００４７】
実施の形態１に示したデータ通信システムは、
ライブ映像のストリーミング配信における帯域制御を行うシステムであって、
ライブ映像をストリーミング配信する配信サーバ装置と、
配信サーバから配信されたパケットを受信してライブ映像を再生するプレイヤーとを有し、
プレイヤーにおいて、
配信サーバからのパケットを受信するストリーミング受信部と、
同じストリーミングを受信している複数のプレイヤーをグループ化するグループ化部と、
通信状態の情報を配信サーバ装置へ送信する通信状態情報送受信部と、
配信サーバ装置において、
映像や音声などのマルチメディアデータを生成するライブエンコーダ装置からのエンコードデータを受信しエンコーダ受信バッファに蓄積するエンコードデータ受信部と、
エンコーダ受信バッファに蓄積されたエンコードデータをネットワークへ配信するストリーミング配信部と、
プレイヤーへ通信状態の情報を要求し、プレイヤーからの通信状態の情報を受信する通信状態情報制御部と、
通信状態制御部で取得した各プレイヤーの通信状態情報とプレイヤーが属するグループ内のすべてのプレイヤーの通信状態情報を基に、各プレイヤーの有効な帯域を予測する有効帯域予測部と、
有効帯域予測部で予測された有効帯域にしたがってストリーミング配信の帯域を制御する帯域制御部を有することを特徴とする。
【００４８】
実施の形態１に示した配信サーバ装置は、
プレイヤーのグループ化部によって同プレイヤーが属するグループの識別情報を受信するグループ識別受信部と、
グループ内のメンバーの中から代表となるプレイヤーを選定する代表メンバー選定部と、
各グループのメンバーの情報を管理するグループ管理部と、
各グループの代表メンバーの情報をプレイヤーへ通知するグループ情報通知部を有することを特徴とする。
【００４９】
実施の形態１に示したプレイヤーは、
配信サーバ装置のグループ情報通知部によって送信された各グループの代表メンバーの情報を受信するグループ情報受信部と、
グループ情報受信部によって得られた各グループの代表メンバーとのネットワークの距離を測定する距離測定部と、
距離測定部によって得られた各代表メンバーとのネットワーク距離から所属するグループを判定し、そのグループの識別情報を配信サーバ装置へ通知するグループ判定部を有することを特徴とする。
【００５０】
実施の形態１に示したプレイヤーは、
自分と各代表メンバー間のホップ数Ｈをカウントし、有効ネットワーク距離（ホップ数）をＨｍａｘとしたとき、０≦Ｈ＜Ｈｍａｘを満たし、最も小さいＨであったメンバーを代表メンバーに選定し、上記条件を満たすメンバーが存在しないときは、どのグループにも属さないことを配信サーバ装置へ通知するグループ判定部を有することを特徴とする。
【００５１】
実施の形態１に示す配信サーバ装置は、
グループの管理テーブルを保持し、
グループ識別受信部によって得られたグループに、グループ識別情報送信元のプレイヤーを加入メンバーとして管理テーブルに登録するメンバー登録部と、
プレイヤーがストリーミング受信を終了したときあるいは配信サーバがプレイヤーへの配信を終了したときに、同プレイヤーを所属するグループから除外するため、管理テーブルの同グループメンバーから削除するメンバー削除部と、
グループ識別受信部によって得られたグループがどのグループにも属さないものであれば、新規にグループを生成して管理テーブルに新規グループを登録し、同グループにグループ識別情報送信元のプレイヤーをメンバー登録するグループ生成部と、
メンバー削除部によってグループからメンバーが削除され、その結果同グループ内にメンバー存在しないとき、同グループを管理テーブルから削除して同グループを消去するグループ削除部を有することを特徴とする。
【００５２】
実施の形態１に示す配信サーバ装置は、
各プレイヤーからの通信状態の情報を受信し、それら通信状態を通信状態テーブルに保存する通信状態情報制御部と、
グループの数や各グループのメンバーの情報を管理するグループ管理部と、
通信状態情報制御部によって得られるプレイヤーの通信状態の情報と、同プレイヤーが所属するグループ内のすべてのプレイヤーの通信状態情報とから、同プレイヤーの有効な帯域を動的に予測する有効帯域予測部と、
各プレイヤーに対して有効帯域予測部で予測された有効帯域よりストリーミング配信の帯域が大きくならないように送信量を動的に制御する帯域制御部を有することを特徴とする。
【００５３】
実施の形態１に示すプレイヤーは、
配信サーバ装置の通信状態情報制御部から通信状態情報の要求を受けたときに、現在の配信サーバとプレイヤー間の通信状態の情報を配信サーバ装置へ送信する通信状態情報送受信部を備え、
実施の形態１に示す配信サーバ装置は、
グループ内の各プレイヤーから送信される通信状態情報の受信間隔がグループ内で均等になるように、各プレイヤーへの通信状態情報の要求を行うタイミングを制御する通信状態情報制御部を有することを特徴とする。
【００５４】
実施の形態２に示すデータ通信システムは、
ライブ映像のストリーミング配信における再送制御を行うシステムであって、
ライブ映像をストリーミング配信する配信サーバ装置と、
配信サーバから配信されたパケットを受信してライブ映像を再生するプレイヤーとを有し、
プレイヤーにおいて、
配信サーバからのパケットや再送パケットを受信し、それらのパケットを受信バッファに蓄積し、欠損したパケットがあった場合、同パケットが欠損したことを再送要求送信部へ通知するストリーミング受信部と、
同じストリーミングを受信している複数のプレイヤーをグループ化するグループ化部と、
通信状態の情報を配信サーバ装置へ送信する通信状態情報送受信部と、
ストリーミング受信部から通知された欠損したパケットを自分と同じグループに属するプレイヤーへ再送要求する再送要求送信部と、
再送要求を受信する再送要求受信部と、
再送要求されたパケットが受信バッファに存在する場合は再送要求元のプレイヤーへ同パケットを送信する再送部と、
配信サーバ装置において、
映像や音声などのマルチメディアデータを生成するライブエンコーダ装置からのエンコードデータを受信しエンコーダ受信バッファに蓄積するエンコードデータ受信部と、
エンコーダ受信バッファに蓄積されたエンコードデータをネットワークへ配信するストリーミング配信部と、
プレイヤーへ通信状態の情報を要求し、プレイヤーからの通信状態の情報を受信する通信状態情報制御部を有することを特徴とする。
【００５５】
実施の形態２に示す配信サーバ装置は、
プレイヤーのグループ化部によって同プレイヤーが属するグループの識別情報を受信するグループ識別受信部と、
グループ内のメンバーの中から代表となるプレイヤーを選定する代表メンバー選定部と、
各グループのメンバーの情報を管理するグループ管理部と、
各グループの代表メンバーの情報をプレイヤーへ通知するグループ情報通知部を有することを特徴とする。
【００５６】
実施の形態２に示すプレイヤーは、
配信サーバ装置のグループ情報通知部によって送信された各グループの代表メンバーの情報を受信するグループ情報受信部と、
グループ情報受信部によって得られた各グループの代表メンバーとのネットワークの距離を測定する距離測定部と、
距離測定部によって得られた各代表メンバーとのネットワーク距離から所属するグループを判定し、そのグループの識別情報を配信サーバ装置へ通知するグループ判定部を有することを特徴とする。
【００５７】
実施の形態２に示すプレイヤーは、
自分と各代表メンバー間のホップ数Ｈをカウントし、最短ネットワーク距離（ホップ数）をＨｍｉｎとし、有効ネットワーク距離（ホップ数）をＨｍａｘとしたとき、１＜Ｈｍｉｎ、Ｈｍｉｎ≦Ｈ＜Ｈｍａｘを満たし、最も小さいＨであったメンバーを代表メンバーに選定し、上記条件を満たすメンバーが存在しないときは、どのグループにも属さないことを配信サーバ装置へ通知するグループ判定部を有することを特徴とする。
【００５８】
実施の形態２に示す配信サーバ装置は、
グループの管理テーブルを保持し、
プレイヤーからのグループ識別情報を受信するグループ識別受信部によって得られたグループにそのプレイヤーを加入メンバーとして管理テーブルに登録するメンバー登録部と、
プレイヤーがストリーミング受信を終了したときあるいは配信サーバがプレイヤーへの配信を終了したときに、同プレイヤーを所属するグループから除外するため、管理テーブルの同グループメンバーから削除するメンバー削除部と、
プレイヤーからのグループ識別情報を受信するグループ識別受信部によって得られたグループがどのグループにも属さないものであれば、新規にグループを生成して管理テーブルに新規グループを登録し、同グループに同プレイヤーをメンバー登録するグループ生成部と、
メンバー削除部によってグループからメンバーが削除され、その結果同グループ内にメンバー存在しないとき、同グループを管理テーブルから削除して同グループを消去するグループ削除部を有することを特徴とする。
【００５９】
実施の形態２に示す配信サーバ装置は、
各プレイヤーからの通信状態の情報を受信し、それら通信状態を通信状態テーブルに保存する通信状態情報制御部と、
通信状態テーブルから、グループ内のメンバーの中で代表となる通信状態の良い単数あるいは複数メンバーを動的に選定する代表メンバー選定部と、
グループ内において代表メンバーに変更があった場合、同グループに属する各プレイヤーへ同代表メンバーを通知する代表メンバー通知部を有することを特徴とする。
【００６０】
実施の形態２に示すプレイヤーは、
配信サーバ装置の代表メンバー通知部から自分と同じグループの代表メンバーを受信する代表メンバー受信部と、
代表メンバー受信部で取得した代表メンバーを記憶・管理する代表メンバー管理部を有することを特徴とする。
【００６１】
実施の形態２に示すプレイヤーは、
ストリーミング受信部から通知された欠損したパケットを代表メンバー管理部から取得した代表メンバーへ再送要求する再送要求送信部と、
再送要求を受信する再送要求受信部と、
再送要求されたパケットが受信バッファに存在する場合は再送要求元のプレイヤーへ同パケットを送信する再送部を有することを特徴とする。
【００６２】
実施の形態２に示すプレイヤーは、
代表メンバー管理部から取得した代表メンバーが自分であり、且つその他に代表メンバーが存在しない場合は、欠損したパケットを配信サーバ装置へ再送要求する再送要求送信部を有することを特徴とする。
【図面の簡単な説明】
【００６３】
【図１】実施の形態１のデータ通信システムの構成図。
【図２】実施の形態１および２のグループ管理処理のフローチャート。
【図３】実施の形態１のグループ化処理のフローチャート。
【図４】実施の形態１の通信状態情報処理のフローチャート。
【図５】実施の形態１の帯域制御処理のフローチャート。
【図６】実施の形態２のグループ化処理のフローチャート。
【図７】実施の形態２の通信状態情報処理のフローチャート。
【図８】実施の形態２の代表メンバー選定処理のフローチャート。
【図９】実施の形態２の再送制御処理のフローチャート。
【図１０】実施の形態１の帯域制御による効果を説明する図。
【図１１】実施の形態１のグループ構成例を示す図。
【図１２】実施の形態１のグループ管理テーブルの例を示す図。
【図１３】実施の形態２のグループ構成例を示す図。
【図１４】実施の形態２のグループ管理テーブルの例を示す図。
【図１５】実施の形態２のデータ通信システムの構成図。
【符号の説明】
【００６４】
１０１  配信サーバ装置、１０２  プレイヤー、１０３  エンコードデータ受信部、１０４  エンコーダ受信バッファ、１０５  ストリーミング配信部、１０６  通信状態情報制御部、１０７  有効帯域予測部、１０８  帯域制御部、１０９  通信状態テーブル、１１０  グループ情報通知部、１１１  グループ識別受信部、１１２  代表メンバー選定部、１１３  代表メンバー通知部、１１４  グループ管理部、１１５  グループ管理テーブル、１１６  メンバー登録部、１１７  メンバー削除部、１１８  グループ生成部、１１９  グループ削除部、１２０  ストリーミング受信部、１２１  受信バッファ、１２２  通信状態情報送受信部、１２３  グループ化部、１２４  グループ情報受信部、１２５  距離測定部、１２６  グループ判定部、１２７  代表メンバー受信部、１２８  代表メンバー管理部、１２９  再送要求送信部、１３０  再送要求受信部、１３１  再送部、１３２  ネットワーク、１３３  再送パケット受信部。
【図１】
2005167675.tif 000003
【図２】
2005167675.tif 000004
【図３】
2005167675.tif 000005
【図４】
2005167675.tif 000006
【図５】
2005167675.tif 000007
【図６】
2005167675.tif 000008
【図７】
2005167675.tif 000009
【図８】
2005167675.tif 000010
【図９】
2005167675.tif 000011
【図１０】
2005167675.tif 000012
【図１１】
2005167675.tif 000013
【図１２】
2005167675.tif 000014
【図１３】
2005167675.tif 000015
【図１４】
2005167675.tif 000016
【図１５】
2005167675.tif 000017