(57)【要約】【課題】アプリケーションレベルのマルチキャストのための伝送最適化を提供する。【解決手段】ビデオ会議のメンバーのために、データソースおよびビデオ会議の他のメンバーのデータ通信構成を表すマルチキャストツリーを生成する。他のメンバーは、データソースからビデオおよびオーディオデータを受信するデータ受信者である。各データソースからそれぞれのデータ受信者へのエンド・ツー・エンド伝送遅延を判定し、各データソースとそれぞれのデータ受信者との間で利用可能な帯域幅を判定する。それぞれが１つのデータソースに対応する１つまたは複数のマルチキャストツリーに、エンド・ツー・エンド伝送遅延と利用可能な帯域幅によってリファインメントを施し、ビデオ会議におけるデータソースのデータ通信構成を最適化する。【選択図】図１
2006050639.tif 000002
【特許請求の範囲】
【請求項１】
複数のビデオ会議メンバーのうちの１つとして構成され、ビデオ会議データをビデオ会議メンバーに対し通信ネットワークを介して通信するデータソース、および
前記データソースから前記ビデオ会議メンバーの各々までのエンド・ツー・エンド伝送遅延を判定し、
前記データソースと前記ビデオ会議メンバーの各々との間で利用可能な帯域幅を判定し、
前記ビデオ会議メンバーの各々に対応するエンド・ツー・エンド伝送遅延および利用可能な帯域幅にしたがって、前記データソースのデータ通信構成を最適化するように構成された最適化ロジック
を備えたことを特徴とするマルチキャストデータの分散型最適化システム。
【請求項２】
前記最適化ロジックは、さらに
前記ビデオ会議メンバーの各々の間のエンド・ツー・エンド伝送遅延を判定し、かつ
前記ビデオ会議メンバーの各々の間で利用可能な帯域幅を判定するように構成されること
を特徴とする請求項１に記載の分散型最適化システム。
【請求項３】
前記データソースをルートノードとして含み、前記データソースに対する前記ビデオ会議メンバーのデータ通信構成を表すマルチキャストツリーをさらに備えたことを特徴とする請求項１に記載の分散型最適化システム。
【請求項４】
前記最適化ロジックは、前記データソースに備わっていることを特徴とする請求項１に記載の分散型最適化システム。
【請求項５】
前記データソースをルートノードとして含み、前記データソースに対する前記ビデオ会議メンバーのデータ通信構成を表すマルチキャストツリーをさらに備え、
前記最適化ロジックは、さらに
前記マルチキャストツリーをリファインし、前記データソースのデータ通信構成を最適化するように構成された
ことを特徴とする請求項１に記載の分散型最適化システム。
【請求項６】
前記データソースをルートノードとして含み、前記データソースに対する前記ビデオ会議メンバーのデータ通信構成を表すマルチキャストツリーをさらに備え、
前記最適化ロジックは、さらに
前記マルチキャストツリーをリファインし、前記データソースのオーディオデータ通信を最適化するように構成された
ことを特徴とする請求項１に記載の分散型最適化システム。
【請求項７】
前記データソースをルートノードとして含み、前記データソースに対する前記ビデオ会議メンバーのデータ通信構成を表すマルチキャストツリーをさらに備え、
前記最適化ロジックは、さらに
前記ビデオ会議メンバーの各々が前記データソースからビデオ会議データを受信することを申し込むとき、マルチキャストツリーを生成するように構成された
ことを特徴とする請求項１に記載の分散型最適化システム。
【請求項８】
前記データソースをルートノードとして含み、前記データソースに対する前記ビデオ会議メンバーのデータ通信構成を表すマルチキャストツリーをさらに備え、
前記最適化ロジックは、さらに
前記ビデオ会議メンバーの各々が前記データソースからビデオ会議データを受信することを申し込むとき、マルチキャストツリーを生成し、
前記マルチキャストツリーをリファインし、前記データソースのデータ通信構成を最適化するように構成された
ことを特徴とする請求項１に記載の分散型最適化システム。
【請求項９】
前記データソースをルートノードとして含み、前記データソースに対する前記ビデオ会議メンバーのデータ通信構成を表すマルチキャストツリーをさらに備え、
前記最適化ロジックは、さらに
前記マルチキャストツリーにおいて前記ビデオ会議メンバーを表すノードがビデオ会議データを受信するのに用いる通信リンクを再構成するように構成された
ことを特徴とする請求項１に記載の分散型最適化システム。
【請求項１０】
ビデオ会議データソースをルートノードとして含み、ビデオ会議において前記ビデオ会議データソースからビデオおよびオーディオのデータを受信するように構成されたビデオ会議メンバーの各々とのデータ通信構成を表すマルチキャストツリー、および
前記ビデオ会議データソースから前記ビデオ会議メンバーの各々までのエンド・ツー・エンド伝送遅延を判定し、
前記ビデオ会議メンバーの各々に対応する前記エンド・ツー・エンド伝送遅延にしたがって、前記マルチキャストツリーをリファインして前記ビデオ会議データソースのデータ通信構成を最適化するように構成された最適化ロジック
を備えたことを特徴とするビデオ会議データソース。
【請求項１１】
前記最適化ロジックは、さらに
前記ビデオ会議データソースと前記ビデオ会議メンバーの各々との間で利用可能な帯域幅を判定し、
前記ビデオ会議メンバーの各々に対応する前記利用可能な帯域幅にしたがって前記マルチキャストツリーをリファインして前記ビデオ会議データソースのデータ通信構成をさらに最適化するように構成された  ことを特徴とする請求項１０に記載のビデオ会議データソース。
【請求項１２】
前記最適化ロジックは、さらに
前記マルチキャストツリーをリファインし、前記ビデオ会議データソースのオーディオデータ通信を最適化するように構成された  ことを特徴とする請求項１０に記載のビデオ会議データソース。
【請求項１３】
前記最適化ロジックは、さらに
前記ビデオ会議メンバーの各々が前記ビデオ会議データソースから前記ビデオおよびオーディオのデータを受信することを申し込むとき、マルチキャストツリーを生成するように構成された
ことを特徴とする請求項１０に記載のビデオ会議データソース。
【請求項１４】
前記最適化ロジックは、さらに
前記マルチキャストツリーにおいてビデオ会議メンバーを表すノードが、前記ビデオおよびオーディオのデータを受信するために使用する通信リンクを再構成するように構成された
ことを特徴とする請求項１０に記載のビデオ会議データソース。
【請求項１５】
前記最適化ロジックは、さらに
ビデオ会議メンバーに対して、対応するマルチキャストツリーをリファインし、追加の帯域幅を利用可能にして、前記マルチキャストツリーをリファインすることができるように最適化要求を起動するように構成された
ことを特徴とする請求項１０に記載のビデオ会議データソース。
【請求項１６】
前記最適化ロジックは、さらに
ビデオ会議メンバーに対して、対応するマルチキャストツリーにおける通信リンクを再構成して、前記マルチキャストツリーにおける通信リンクを再構成することができるようにする最適化要求を起動、するように構成された
ことを特徴とする請求項１０に記載のビデオ会議データソース。
【請求項１７】
データソースと、ビデオ会議の間に前記データソースからビデオおよびオーディオのデータを受信するビデオ会議メンバーのデータ通信構成を表すマルチキャストツリーを生成するステップと、
前記データソースから前記ビデオ会議メンバーの各々までのエンド・ツー・エンド伝送遅延を判定するステップと、
前記ビデオ会議メンバーの各々に対応する前記エンド・ツー・エンド伝送遅延にしたがって、前記マルチキャストツリーをリファインし、前記ビデオ会議における前記データソースの前記データ通信構成を最適化するステップと
を備えたことを特徴とする方法。
【請求項１８】
前記ビデオ会議メンバーの各々の間のエンド・ツー・エンド伝送遅延を判定するステップをさらに備えたことを特徴とする請求項１７に記載の方法。
【請求項１９】
前記データソースと前記ビデオ会議メンバーの各々の間で利用可能な帯域幅を判定するステップと、
前記ビデオ会議メンバーの各々に対応する前記利用可能な帯域幅にしたがって、前記マルチキャストツリーをリファインし、前記データソースの前記データ通信構成をさらに最適化するステップと
をさらに備えたことを特徴とする請求項１７に記載の方法。
【請求項２０】
前記ビデオ会議メンバーの各々の間で利用可能な帯域幅を判定するステップをさらに備えたこと
を特徴とする請求項１７に記載の方法。
【請求項２１】
前記マルチキャストツリーをリファインするステップは、
前記マルチキャストツリーをリファインし、前記ビデオ会議の間、前記データソースのオーディオデータ通信を最適化するステップを含むことを特徴とする請求項１７に記載の方法。
【請求項２２】
前記データソースと前記ビデオ会議メンバーの各々との間で利用可能な帯域幅を判定するステップと、
前記ビデオ会議メンバーの各々に対応する前記利用可能な帯域幅にしたがって、前記マルチキャストツリーをリファインし、前記ビデオ会議の間、前記データソースのオーディオデータ通信を最適化するステップと
をさらに備えたことを特徴とする請求項１７に記載の方法。
【請求項２３】
前記マルチキャストツリーを生成するステップは、前記データソースを前記マルチキャストツリーのルートノードとし、前記ビデオ会議メンバーを前記マルチキャストツリーのノードとして含む前記マルチキャストツリーを生成するステップを含み、
前記マルチキャストツリーをリファインするステップは、前記マルチキャストツリーにおいてビデオ会議メンバーを表すノードが前記ビデオおよびオーディオのデータを受信するために使用する通信リンクを再構成するステップを含む
ことを特徴とする請求項１７に記載の方法。
【請求項２４】
前記データソースが前記マルチキャストツリーをリファインすることができるように、ビデオ会議メンバーに対して、対応するマルチキャストツリーをリファインし追加の帯域幅を利用可能にするように最適化要求を起動するステップをさらに備えたことを特徴とする請求項１７に記載の方法。
【請求項２５】
前記データソースが前記マルチキャストツリーを再構築できるように、ビデオ会議メンバーに対して、対応するマルチキャストツリーにおける通信リンクを再構成するように最適化要求を起動するステップをさらに備えたことを特徴とする請求項１７に記載の方法。
【請求項２６】
実行されると、ビデオ会議メンバーに対し請求項１７に記載の方法を実行することを指示する、コンピュータ実行可能命令を備えたことを特徴とする１つまたは複数のコンピュータ可読媒体。
【請求項２７】
ビデオ会議のメンバーの各々について、それぞれが、データソースであるメンバーと、前記データソースからビデオおよびオーディオのデータを受信するメンバーのデータ通信構成を表すように、マルチキャストツリーを生成するステップと、
データソースの各々から、前記データソースから前記ビデオおよびオーディオのデータを受信する前記メンバーの各々までの、エンド・ツー・エンド伝送遅延を判定するステップと、
前記データソースの各々について判定された前記エンド・ツー・エンド伝送遅延にしたがって、前記ビデオ会議の前記メンバーに対応する１つまたは複数の前記マルチキャストツリーをリファインし、前記ビデオ会議における前記データソースの通信構成を最適化するステップと
を備えたことを特徴とする方法。
【請求項２８】
データソースの各々と、前記データソースから前記ビデオおよびオーディオのデータを受信する前記メンバーの各々との間で利用可能な帯域幅を判定するステップと、
前記データソースの各々について判定された前記利用可能な帯域幅にしたがって、前記ビデオ会議の前記メンバーに対応する１つまたは複数のマルチキャストツリーをリファインし、前記ビデオ会議における前記データソースの通信構成を最適化するステップと
をさらに備えたことを特徴とする請求項２７に記載の方法。
【請求項２９】
前記１つまたは複数のマルチキャストツリーをリファインするステップは、
前記１つまたは複数のマルチキャストツリーをリファインし、前記ビデオ会議のオーディオデータ通信を最適化するステップを含むことを特徴とする請求項２７に記載の方法。
【請求項３０】
前記ビデオ会議のメンバーの各々についてマルチキャストツリーを生成するステップは、
前記データソースを前記マルチキャストツリーのルートノードとし、前記データソースから前記ビデオおよびオーディオのデータを受信するメンバーを前記マルチキャストツリーのノードとして含むマルチキャストツリーをそれぞれ生成するステップを含むことを特徴とする請求項２７に記載の方法。
【請求項３１】
前記ビデオ会議のメンバーの各々についてマルチキャストツリーを生成するステップは、
前記データソースを前記マルチキャストツリーのルートノードとし、前記メンバーを前記マルチキャストツリーのノードとして含むマルチキャストツリーをそれぞれ生成するステップを含み、
前記１つまたは複数のマルチキャストツリーをリファインするステップは、
前記マルチキャストツリーにおいてメンバーを表すノードが前記ビデオおよびオーディオのデータを受信するために使用する通信リンクを再構成するステップを含む
ことを特徴とする請求項２７に記載の方法。
【請求項３２】
第１のデータソースが前記マルチキャストツリーをリファインすることができるように、第１のデータソースから第２のデータソースに対し、第２のデータソースが対応するマルチキャストツリーをリファインして追加の帯域幅を利用可能にするように最適化要求を起動するステップをさらに備えたことを特徴とする請求項２７に記載の方法。
【請求項３３】
第１のデータソースがそれぞれのマルチキャストツリーにおける通信リンクを再構成することができるように、第１のデータソースから第２のデータソースに対して、第２のデータソースが対応するマルチキャストツリーにおける通信リンクを再構成するように最適化要求を起動するステップをさらに備えたことを特徴とする請求項２７に記載の方法。
【請求項３４】
命令が実行されると、前記ビデオ会議のメンバーに対し請求項２７に記載の方法を実行することを指示するコンピュータ実行可能命令を備えたことを特徴とする１つまたは複数のコンピュータ可読媒体。
【請求項３５】
命令が実行されると、ビデオ会議のデータソースに対し、
前記ビデオ会議の前記データソースをルートノードとして含み、前記ビデオ会議のメンバーがビデオおよびオーディオのデータを前記ビデオ会議の前記データソースから受信するための使用するデータ通信構成を表すマルチキャストツリーを生成するステップと、
前記ビデオ会議の前記データソースから、前記ビデオ会議の前記メンバーの各々までの、エンド・ツー・エンド伝送遅延を判定するステップと、
前記ビデオ会議の前記データソースと前記ビデオ会議の前記メンバーの各々との間で利用可能な帯域幅を判定するステップと、
前記ビデオ会議の前記メンバーの各々に対応する前記エンド・ツー・エンド伝送遅延および利用可能な帯域幅にしたがって、前記マルチキャストツリーをリファインして、前記ビデオ会議における前記ビデオ会議のデータソースの前記データ通信構成を最適化するステップと
を命令するコンピュータ実行可能命令を備えたことを特徴とする１つまたは複数のコンピュータ可読媒体。
【請求項３６】
命令が実行されると、前記ビデオ会議の前記データソースに対し、
前記マルチキャストツリーをリファインして、前記ビデオ会議における前記ビデオ会議の前記データソースのオーディオデータ通信を最適化するステップ
を命令するコンピュータ実行可能命令をさらに備えたことを特徴とする請求項３５に記載の１つまたは複数のコンピュータ可読媒体。
【請求項３７】
命令が実行されると、前記ビデオ会議の前記データソースに対し、
前記ビデオ会議の前記メンバーをマルチキャストツリーにおけるルートノードのノードとして含むマルチキャストツリーを生成するステップと、
前記マルチキャストツリーにおける前記ビデオ会議の前記メンバーを表すノードが前記ビデオおよびオーディオのデータを受信するために使用する通信リンクを再構成するステップと
を命令するコンピュータ実行可能命令をさらに備えたことを特徴とする請求項３５に記載の１つまたは複数のコンピュータ可読媒体。
【請求項３８】
命令が実行されると、前記ビデオ会議の前記データソースに対し、
前記ビデオ会議の前記データソースが前記マルチキャストツリーをリファインすることができるように、前記ビデオ会議の前記メンバーに対して、対応するマルチキャストツリーをリファインして追加の帯域幅を利用可能にするように最適化要求を起動するステップ
を命令するコンピュータ実行可能命令をさらに備えたことを特徴とする請求項３５に記載の１つまたは複数のコンピュータ可読媒体。
【請求項３９】
命令が実行されると、前記ビデオ会議の前記データソースに対し、
前記ビデオ会議の前記データソースが前記マルチキャストツリーにおける通信リンクを再構成することができるように、前記ビデオ会議の前記メンバーに対して、対応するマルチキャストツリーにおける通信リンクを再構成するように最適化要求を起動するステップ、
を命令するコンピュータ実行可能命令をさらに備えたことを特徴とする請求項３５に記載の１つまたは複数のコンピュータ可読媒体。
【請求項４０】
ビデオ会議のメンバーとして構成されるデータ受信者に対してビデオ会議データを通信する手段と、
前記データ受信者のそれぞれから追加のビデオ会議データを受信する手段と、
前記ビデオ会議の前記データソースおよび前記データ受信者のデータ通信構成を表すマルチキャストツリーを生成する手段と、
前記データソースから前記データ受信者の各々までのエンド・ツー・エンド伝送遅延を判定する手段と、
前記データ受信者の各々に対応する前記エンド・ツー・エンド伝送遅延にしたがって、前記マルチキャストツリーをリファインして、前記ビデオ会議における前記データソースの前記データ通信構成を最適化する手段と
を備えたことを特徴とするデータソース。
【請求項４１】
前記データソースと前記データ受信者の各々との間で利用可能な帯域幅を判定する手段と、
前記データ受信者の各々に対応する前記利用可能な帯域幅にしたがって、前記マルチキャストツリーをリファインして、前記ビデオ会議における前記データソースのデータ通信構成をさらに最適化する手段と
をさらに備えたことを特徴とする請求項４０に記載のデータソース。
【請求項４２】
前記マルチキャストツリーをリファインして、前記データソースのオーディオデータ通信を最適化する手段をさらに備えたことを特徴とする請求項４０に記載のデータソース。
【請求項４３】
前記データソースを前記マルチキャストツリーのルートノードとし、前記データ受信者を前記マルチキャストツリーのノードとして含むマルチキャストツリーを生成する手段と、
前記マルチキャストツリーにおいて前記データ受信者を表すノードが前記ビデオ会議のデータを受信するために使用する通信リンクを再構成する手段と
をさらに備えたことを特徴とする請求項４０に記載のデータソース。
【請求項４４】
前記データソースが前記マルチキャストツリーをリファインすることができるように、前記データ受信者に対して、対応するマルチキャストツリーをリファインして追加の帯域幅を利用可能にするように最適化要求を起動する手段をさらに備えたことを特徴とする請求項４０に記載のデータソース。
【請求項４５】
前記データソースが前記マルチキャストツリーにおける通信リンクを再構成することができるように、前記データ受信者に対して、対応するマルチキャストツリーにおける通信リンクを再構成するように最適化要求を起動する手段をさらに備えたことを特徴とする請求項４０に記載のデータソース。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチパーティビデオ会議のためのデータ通信に関し、詳細には、アプリケーションレベルのマルチキャストのための伝送最適化に関する。
【背景技術】
【０００２】
インターネットは、我々の日常生活における不可欠な部分となっており、電子メール、インスタントメッセンジャーサービス、および類似したテキストベースの通信技術を介した通信の電子的な一形態として多用されている。加えて、通信教育課程、遠隔治療、他の国際的なビジネスでのニーズ、および類似したマルチキャストビデオ会議アプリケーションのためなど、リアルタイムでマルチパーティの音声およびビデオ会議に関する需要は高まり続けている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
１対複数のコンテンツ配信システムとは対照的に、小規模なビデオ会議のアプリケーションは、典型的に１０名以下の参加者を含む数名対数名のセマンティックで実施される。どのメンバーがビデオ会議に出席または退席してよく、メンバーがいつでも他の人をビデオ会議に招いてもよいこれらビデオ会議の構成員は、突然、変更されることがある。マルチキャストビデオ会議における各参加者は、ビデオおよびオーディオのデータのデータソースであり、また各参加者は、別の参加者からのビデオおよびオーディオのデータのデータ受信者である。
【０００４】
ビデオ会議の各参加者は、少なくともビデオおよびオーディオのメディアストリームを発生する。この両者は、多大な帯域幅を用いる。しかし、ほとんどのインターネットユーザは限られた帯域幅の接続を有し、それを用いてビデオおよびオーディオのデータの通信および受信をおこなっている。加えて、ビデオ会議の参加者達は、ダイアルアップ、ＤＳＬ、ケーブルモデム、およびＬＡＮ接続等の多種多様なインターネット接続を有する場合がある。リアルタイム、マルチキャストビデオ会議の全参加者に対し、特に、多くの参加者が異なる帯域容量と様々なエンド・ツー・エンドの通信の遅延時間を有する場合に、最適にサービス提供することに対する継続的な需要が存在する。
【課題を解決するための手段】
【０００５】
ここに、アプリケーションレベルのマルチキャストのための伝送最適化（transmission optimization）を説明する。
【０００６】
一実施例では、ビデオ会議の各出席者についてマルチキャストツリーを作成する。マルチキャストツリーは、データソースおよびビデオ会議の他のメンバーのデータ通信構成を表す。他のメンバーは、データソースからビデオおよびオーディオを受信するデータ受信者である。ビデオ会議の任意の２名のメンバー間のエンド・ツー・エンド伝送遅延（end-to-end transmission delay）を判定し、ビデオ会議の任意の２名のメンバー間で利用可能な帯域容量を判定する。それぞれが１つのデータソースに対応する１つまたは複数のマルチキャストツリーが、特定のデータソースについてのエンド・ツー・エンド伝送遅延および利用可能な帯域幅にしたがってリファインされ、ビデオ会議におけるそのデータソースのデータ通信構成を最適化する。
【発明を実施するための最良の形態】
【０００７】
図面全体を通じ同一の番号を使用して、同様の特徴および構成要素を表す。
【０００８】
アプリケーションレベルのマルチキャストのための伝送最適化は分散プロトコルであって、そこでは、ビデオ会議メンバーは論理的に等格で、各メンバーはビデオ会議の間自分自身のマルチキャストセッションを制御する。ビデオ会議メンバーである特定のデータソースに関連づけられたマルチキャストセッションは、マルチキャストツリーにより表され、各データソースは、完全なメンバーリストを維持し自分自体のマルチキャストツリーを管理する。マルチキャストツリーは、ソース固有であり、特定のデータソースに対するビデオ会議メンバーのデータ通信構成を表す。
【０００９】
アプリケーションレベルのマルチキャストのための伝送最適化は、リアルタイムでマルチパーティのビデオ会議、特に、少数メンバーによる緊急ビデオ会議を提供する。データソース（即ち、ビデオ会議メンバー）から別のビデオ会議メンバーまでのエンド・ツー・エンド伝送遅延が判定され、同様にデータソースと別のビデオ会議メンバーとの間の利用可能な帯域幅が判定される。次いで、各ビデオ会議メンバーについてのエンド・ツー・エンド伝送遅延および利用可能な帯域幅にしたがって、それぞれのデータソースのマルチキャストツリーの各々をリファインすることができる。
【００１０】
アプリケーションレベルのマルチキャストのための伝送最適化に関して開示するシステムおよび方法の態様を、多数の異なる計算システム、環境、および／または構成に実装することができるが、アプリケーションレベルのマルチキャストのための伝送最適化の実施例を、以下の例示的システムアーキテクチャのコンテキスト内で説明する。
【００１１】
図１は、例示的なビデオ会議システム１００を示し、それぞれがビデオ会議のメンバーとしてビデオ会議データを通信するように実装された複数のデータソース１０２（１〜Ｎ）を含む。各データソース１０２は、ビデオ会議に関するビデオおよびオーディオなどのビデオ会議データを、通信ネットワーク１０４を介しておよび／またはローカルネットワーク１０６（例えば、データソース１０２（１）および１０２（２）は互いに「ローカル」である）を介して、別のデータソース１０２全部に対しマルチキャストする。
【００１２】
それぞれのデータソース１０２（１〜Ｎ）は、別のデータソースに対する通信のためのビデオ会議データを生成するが、反対に、それぞれのデータソース１０２（１〜Ｎ）は、別のデータソースの全部または多数からのビデオ会議データのデータ受信者でもある。したがって、ここでは、それぞれのデータソース１０２（１〜Ｎ）は、それぞれデータ受信者１０２（１〜Ｎ）とも呼ぶ。例えば、データソース１０２（１）は、ビデオ会議データ１０８（Ａ）を通信ネットワーク１０４を介してデータ受信者１０２（３〜Ｎ））に通信し、ビデオ会議データ１０８（Ｂ）を、ローカルネットワーク１０６を介してデータ受信者１０２（２）に対して通信する。同様にデータソース１０２（４）は、ビデオ会議データ１１０を、他のすべてのデータ受信者１０２（１〜３、・・・Ｎ）に対して通信する。図示していないけれども、それぞれのデータソース１０２（２〜３、およびＮ）は、他のすべてのデータ受信者の各々にビデオ会議データを通信するビデオ会議メンバーである。
【００１３】
通信ネットワーク１０４は、データソース１０２（１〜Ｎ）の各々を互いに通信するよう結合し、任意のデータ通信媒体、インターネットプロトコル（ＩＰ）接続、または任意のプロトコルおよび／またはメッセージングフォーマットを有する通信システムによって実装されることができる。例えば、通信ネットワーク１０４は、ローカルエリアネットワークネットワーク（ＬＡＮ）、広域エリアネットワーク（ＷＡＮ）、インターネットのような公衆ネットワーク、および／またはそれらの組合せとして実装されることができる。図示していないけれども、ビデオ会議システム１００における装置間の通信は、有線ネットワーク、無線周波数信号、電波放送（over-air broadcast）、衛星通信などを通じても実現され得る。アプリケーションレベルのマルチキャストのための伝送最適化は、２８．８Ｋｂｐｓ、５６Ｋｂｐｓ、１２８Ｋｂｐｓなど、多様なデータビットレートに適応して、ビデオ会議のデータソース１０２（１〜Ｎ）の間でビデオ会議データを通信することができる。
【００１４】
データソース１０２（１〜Ｎ）のそれぞれは、図８に示すコンピューティングデバイス８０２を参照して説明されるように、異なる構成部品の任意の数および組合せを有する任意の形態の計算システム、電子システム、および／またはビデオ会議システムとして実施してもよい。例えば、データソース１０２（１〜Ｎ）のそれぞれは、アプリケーションレベルのマルチキャストのための伝送最適化を実施する最適化ロジック１１２を含む（データソース１０２（２）に関する一例のみを示す）。
【００１５】
データソース１０２についての最適化ロジック１１２は、ソース固有のマルチキャストツリー１１４を生成する。このソース固有のマルチキャストツリー１１４は、そのデータソースをルートノードとして含み、別のビデオ会議メンバー（即ち、データ受信者）のデータソースに対するデータ通信構成を表す。図２〜６を参照して後述するように、マルチキャストツリーは、データ受信者をルートノード（即ち、データソース）に対する子ノードとして含むことができ、マルチキャストツリーはノードの複数のレイヤを用いて構成することができる。例えば、マルチキャストツリー１１４において、データソース１０２（２）は、データ受信者１０２（３）を経由してデータ受信者１０２（４）にビデオおよびオーディオのデータを通信することができる。
【００１６】
データソース１０２（１〜Ｎ）の最適化ロジック１１２（２）は、データソース１０２（２）から各データ受信者までのエンド・ツー・エンド伝送遅延を判定することができ、また任意の２つのビデオ会議メンバーの間のエンド・ツー・エンド伝送遅延を判定することができる。加えて、最適化ロジック１１２は、データソース１０２（２）と各データ受信者との間で利用することのできる帯域幅を判定することができ、また任意の２つのビデオ会議メンバーの間で利用することのできる帯域幅を判定することができる。例えば、データソース１０２（４）は、ビデオ会議データ１１０を、データ受信者１０２（１）に通信し、またデータ受信者１０２（１）を介してデータ受信者１０２（３）に通信する。データソース１０２（４）とデータ受信者１０２（１）との間、データソース１０２（４）とデータ受信者１０２（３）との間、およびデータ受信者１０２（１）とデータ受信者１０２（３）との間のネットワーク動態（dynamic）（例えば、エンド・ツー・エンド伝送遅延および利用可能な帯域幅）を判定することができる。
【００１７】
次いで、特定のデータソース１０２の最適化ロジックは、各データ受信者に対応するエンド・ツー・エンド伝送遅延および利用可能な帯域幅に基づいて、データソース１０２の各マルチキャストツリーをリファインし、そのデータソース１０２のデータ通信構成を最適化する。ビデオ会議システム１００の各データソース１０２（１〜Ｎ）は、それらの最適化ロジック１１２のバージョンを実施し、それぞれのデータソースのデータ通信構成を最適化し、また、ビデオ会議のビデオ会議データ通信の全体性能をも最適化する。
【００１８】
図２Ａ〜２Ｄは、新規メンバー２０２がビデオ会議に参加して特定のデータソース２０４からビデオ会議データを受信する要求をサブミットする場合の、マルチキャストセッションに関する構成のオプションを示し、それをマルチキャストツリー２００として表す。マルチキャストセッションは、ビデオ会議における特定のデータソースに関し、マルチキャストツリーにより表される。マルチキャストツリーは、最初にローカルのＧｒｅｅｄｙアルゴリズムにより構築され、次いで、アプリケーションレベルのマルチキャストのための伝送最適化の実施例において記述するようにリファインされる。マルチキャストツリーは、データソースと各データ受信者との間のエンド・ツー・エンド伝送遅延および利用可能な帯域幅に基づいて構築されリファインされる。
【００１９】
図２Ａは、ルートノードとしてデータソース２０４を含み、データソース２０４の観点からのデータ受信者２０６（Ａ）および２０６（Ｂ）のデータソース２０４に対するデータ通信構成を表すマルチキャストツリー２００を示す。データソース２０４は、ビデオ会議の間、ビデオおよびオーディオのデータなどのビデオ会議データを、データ受信者２０６（Ａ）および２０６（Ｂ）に通信する。例えば、データソース２０４が、図１に示すビデオ会議システム１００におけるデータソース１０２（１）を表し、データ受信者２０６（Ａ）および２０６（Ｂ）が、それぞれデータ受信者１０２（２）および１０２（３）を表しているとすることができる。データソース２０４の観点からマルチキャストセッションを表すマルチキャストツリー２００と同様に、データ受信者２０６（Ａ）および２０６（Ｂ）のそれぞれは、データ受信者が自分自身のビデオおよびオーディオのデータを伝送するときのデータ通信構成を示すマルチキャストツリーを用いて表されることができる。
【００２０】
新規メンバー２０２は、データソース２０４に対し、データソース２０４からのビデオ会議のデータ受信者としてビデオ会議に参加する参加要求２０８をサブミットする。データソース２０４は、参加要求２０８を受信すると、新規メンバー２０２をマルチキャストツリー２００に追加する。新規メンバー２０２は追加され、図２Ｂ〜２Ｄに示すマルチキャストツリーのうち１つに基づいて、ビデオ会議データをデータソース２０４から受信することができる。
【００２１】
図２Ｂは、新規メンバー２０２が直接通信リンクを用いてデータ受信者２０６（Ｃ）としてデータソース２０４に追加されるときの、データソース２０４に関連づけられたマルチキャストセッションのためのマルチキャストツリー２１０を示す。データソース２０４が直接接続に対応するのに十分な帯域幅を有するとき、新規メンバー２０２は、マルチキャストツリー２１０のルートノード（例えば、データソース２０４）に対し通信機能的にリンクされる。図２Ｂに示すようなデータソース２０４に対する直接通信リンクを用いて、新規メンバー２０２をマルチキャストツリー２１０に追加することができないとき、新規メンバー２０２は、図２Ｃに示すマルチキャストツリー２１２、または図２Ｄに示すマルチキャストツリー２１４に追加されることができる。
【００２２】
図２Ｃは、新規メンバー２０２が既存通信リンクを変更することなく、設定済みのデータ受信者を経由する通信リンクを介する、データ受信者２０６（Ｃ）として追加されるときの、データソース２０４に関連づけられたマルチキャストセッションに関するマルチキャストツリー２１２を示す。例えば、新規メンバー２０２は、データ受信者２０６（Ａ）を経由する通信リンクを介するデータ受信者２０６（Ｃ）として追加されている。データソース２０４からデータ受信者２０６（Ａ）および２０６（Ｂ）対する既存通信リンクは、マルチキャストセッションのこの表現において、変更されないままである。
【００２３】
図２Ｄは、新規メンバー２０２がデータ受信者２０６（Ｃ）として追加され、既存の（１つまたは複数の）通信リンクが再構成されるときの、データソース２０４に関連づけられたマルチキャストセッションに関するマルチキャストツリー２１４を示す。例えば、新規メンバー２０２は、データ受信者２０６（Ｃ）として追加され、データソース２０４に対し直接通信リンクを有するデータ受信者２０６（Ｂ）と置換わる。このとき、データ受信者２０６（Ｂ）は、データ受信者２０６（Ｃ）を経由する通信リンクを介する構成となる。
【００２４】
上述のように、マルチキャストツリーは、データソースと各データ受信者との間のエンド・ツー・エンド伝送遅延および帯域幅の測定結果（measurement）に基づいて構築される。新規メンバー２０２を、マルチキャストツリー構成２１０、２１２、２１４のうち、データソース２０４から最も遠いデータ受信者（構成２１２における新規データ受信者２０６（Ｃ）または構成２１４におけるデータ受信者２０６（Ｂ）など）までビデオ会議データを伝送するのに最小の伝送遅延を与える構成に対し、データ受信者２０６（Ｃ）として追加することができる。加えて、新規メンバーを追加するとき、マルチキャストツリー構成２１０、２１２、２１４それぞれついて、最適化コストを判定することまたは関連づけすることができる。
【００２５】
例えば、マルチキャストツリー２１０（図２Ｂ）は、データソース２０４からデータ受信者２０６（Ｃ）までのエンド・ツー・エンド伝送遅延がより短い時間間隔となる（即ち、データソース２０４はビデオ会議データを直接データ受信者２０６（Ｃ）に通信する）ので、マルチキャストツリー２１２（図２Ｃ）より好適である。しかしながら、最適化コストが実装時の固有の閾値を超えなければ、マルチキャストツリー２１２の構成が選ばれることもある。さらに、マルチキャストツリー２１２（図２Ｃ）は、データ受信者２０６（Ａ）および２０６（Ｂ）に対する既存通信リンクが変更されないので、システムの安定性に関してマルチキャストツリー２１４（図２Ｄ）より好適である。
【００２６】
新規メンバーがビデオ会議に参加する参加要求２０８をサブミットするとき、マルチキャストツリー２００におけるビデオ会議メンバーのうちいずれもが新規メンバー２０２の追加のために利用可能な帯域幅を有しない場合、帯域幅および／または構成のオプションが利用可能になるまで、参加要求２０８を順番待ちリストの待ち行列に入ることができる。加えて、データソース２０４は、ビデオデータストリームとオーディオデータストリームを区別して、追加の帯域幅が利用可能になるまで、オーディオデータのみを受信する新規メンバーを参加させることができる。ビデオがビデオ会議参加を充実させる一方、オーディオはビデオ会議開催のとき、参加者の意思疎通のため必要である。データソース２０４は、趣を異にするビデオデータストリームとオーディオデータストリームについて別個のマルチキャストツリーを構築することにより、ビデオデータストリームとオーディオデータストリームを区別することができる。さらに、データソース２０４は、データ受信者との既存の通信リンクを変更して追加帯域幅を設け、新規メンバー２０２からの参加要求に対応することができる。
【００２７】
当初は、各データソースのマルチキャストツリーは、ビデオ会議において、ビデオ会議メンバーの間の不均衡な帯域利用の結果を示すかもしれない。さらに、ビデオ会議メンバーがビデオ会議参加を申込みおよび申込みを取り消してビデオ会議から接続を切る間に、ネットワーク動態が変動するのにつれて、それぞれのマルチキャストセッションは突然変化してもよい。このように、エンド・ツー・エンド伝送遅延および利用可能な帯域幅に基づいてデータソースに対応するマルチキャストツリーをリファインして、性能を最適化し、ビデオ会議に認知可能なジッターを取り入れるのを避ける。
【００２８】
マルチキャストツリーリファインするための各種技術には、図３Ａ〜３Ｄを参照して以下に説明するレギュラーマルチキャストツリーリファインメント、図４Ａおよび４Ｂを参照して以下に説明するイントラマルチキャストツリーリファインメント、および、図５Ａおよび５Ｂ並びに図６Ａおよび６Ｂを参照して以下に記述するインターマルチキャストツリーリファインメントが含まれる。
【００２９】
図３Ａ〜３Ｄは、アプリケーションレベルのマルチキャストのための伝送最適化の一実施例における、ビデオ会議メンバーのためのレギュラーマルチキャストツリーリファインメントの例を示す。図３Ａにおいて、マルチキャストツリー３００は、ビデオ会議データをデータ受信者３０２（Ｂ）に通信するデータソース３０２（Ａ）として特定されるビデオ会議メンバーに関連づけられたマルチキャストセッションを表す。この例において、データソース３０２（Ａ）は、ビデオおよびオーディオのデータを１つのデータ受信者３０２（Ｂ）のみに通信できる帯域の容量を有する。新規のビデオ会議メンバー、データ受信者３０２（Ｃ）が、データソース３０２（Ａ）に対して参加要求をサブミットすると、データソース３０２（Ａ）はデータ受信者３０２（Ｃ）を保留として保持する。図３Ｂは、データソース３０２（Ａ）の帯域の容量が増加して、データソース３０２（Ａ）がビデオおよびオーディオをデータ受信者３０２（Ｂ）および（Ｃ）の両者に通信することができるようになるときの、マルチキャストツリー３００のレギュラーリファインメントを示す。
【００３０】
図３Ｃは、ビデオ会議データをデータ受信者３０６（Ｂ）に通信するデータソース３０６（Ａ）として示すビデオ会議メンバーに関連づけられたマルチキャストセッションを表す、別の例のマルチキャストツリー３０４を示す。この例において、データソース３０２（Ａ）は、ビデオおよびオーディオのデータを１つのデータ受信者３０６（Ｂ）のみに通信することができる帯域の容量を有する。しかしながら、データソース３０６（Ａ）は、ビデオおよびオーディオのデータを第２のデータ受信者３０６（Ｃ）に対して、これもまたビデオおよびオーディオのデータを１つのデータ受信者のみに通信することができる帯域容量を有する第１データ受信者３０６（Ｂ）を経由する通信リンクを介して、通信することができる。
【００３１】
この例において、データソース３０６（Ａ）からデータ受信者３０６（Ｂ）までビデオ会議データを通信するには、５００ｍｓ（ミリ秒）のエンド・ツー・エンド伝送遅延、即ち待ち時間がある。加えて、データ受信者３０６（Ｂ）からデータ受信者３０６（Ｃ）に対してビデオ会議データを通信するには、５００ｍｓ（ミリ秒）のエンド・ツー・エンド伝送遅延がある。データソース３０６（Ａ）からデータ受信者３０６（Ｃ）までの遅延全体は１０００ｍｓ（即ち、１秒）あるが、データソース３０６（Ａ）のマルチキャストツリー３０４をリファインし、１０００ｍｓのエンド・ツー・エンド伝送遅延を改善することができる。
【００３２】
図３Ｄは、データソース３０６（Ａ）の帯域幅が増加して、データソース３０６（Ａ）がビデオ会議データを直接データ受信者３０６（Ｂ）および３０６（Ｃ）の両者に通信することができるようになるときの、マルチキャストツリー３０４のレギュラーリファインメントを示す。加えて、ビデオ会議メンバー３０６（Ａ）および３０６（Ｃ）は、同一通信ネットワークに対しローカル（例えば、同一ドメイン内）なので、データソース３０６（Ａ）とデータ受信者３０６（Ｃ）との間のエンド・ツー・エンド伝送遅延は僅か２０ｍｓに過ぎない。したがって、データソース３０６（Ａ）に関する全体エンド・ツー・エンド伝送遅延は、５００ｍｓだけ（即ち、１０００ｍｓから５００ｍｓまで）減少した。２０ｍｓと５００ｍｓのエンド・ツー・エンド伝送遅延は、単なる例示で概略値であり、ここでは多数の例において、各種のマルチキャストツリーリファインメントおよびビデオ会議通信の改善を説明するため、説明される。
【００３３】
示さないけれども、マルチキャストツリー３０４のリファインメントの代替案は、データソース３０６（Ａ）がビデオ会議データをデータ受信者３０６（Ｃ）に通信し、これが順にそのビデオ会議データをデータ受信者３０６（Ｂ）に通信するようにデータ配信構成を再組織することである。データソース３０６（Ａ）とデータ受信者３０６（Ｃ）は同一ドメイン内にあるので、データソース３０６（Ａ）からデータ受信者３０６（Ｃ）に対するエンド・ツー・エンド伝送遅延は、２０ｍｓである。データ受信者３０６（Ｃ）から３０６（Ｂ）までのエンド・ツー・エンド伝送遅延は５００ｍｓのままであるけれども、データソース３０６（Ａ）に関する全体エンド・ツー・エンド伝送遅延は４８０ｍｓ（即ち、１０００ｍｓから５２０ｍｓまで）減少するであろう。これは、図４Ａおよび４Ｂを参照してさらに説明するイントラマルチキャストツリーリファインメントの例である。イントラマルチキャストツリーリファインメントのためには、マルチキャストツリー３０４のリファインメントにおいてデータ受信者３０６（Ｂ）と３０６（Ｃ）を切換えたとする場合がそうであるように、既存通信リンクを再構成する。
【００３４】
会議メンバー間のエンド・ツー・エンド伝送遅延と利用可能な帯域幅は、ビデオ会議の間、変化しない訳ではない。したがって、ビデオ会議の間、２つの基準判定値（metrics）を定期的に測定して、ビデオ会議データ通信を最適化する。各データソースは、データソースの利用可能な帯域幅を判定するためのＰａｃｋｅｔ−Ｐａｉｒ法を用いて、別のビデオ会議メンバーに対する通信接続の利用可能な帯域幅を判定することができる。また、各データソースは、別のビデオ会議メンバーを精査（プローブ）して、そのデータソースと別のビデオ会議メンバーとの間のエンド・ツー・エンド伝送遅延を判定することもできる。
【００３５】
一実施形態において、データソースは、５秒毎にプローブメッセージを生成して、データソースと別のビデオ会議メンバーとの間のエンド・ツー・エンド伝送遅延を判定することができる。プローブメッセージはまた、別のビデオ会議メンバーとの通信不具合の検出にも役立てることができる。ビデオ会議メンバーがプローブメッセージに対し、実装時固有の指定時間内に応答しないとき、データソースは、そのビデオ会議メンバーにネットワーク通信不具合があると判定することができる。
【００３６】
図４Ａおよび４Ｂは、アプリケーションレベルのマルチキャストの伝送最適化の一実施例におけるビデオ会議メンバーのイントラマルチキャストツリーリファインメントの例を示す。図４Ａにおいて、マルチキャストツリー４００は、複数のデータ受信者にビデオ会議データを通信するデータソース４０２（Ａ）として識別されるビデオ会議メンバーに関連づけられたマルチキャストセッションを表す。この例において、データソース４０２（Ａ）は、ビデオおよびオーディオのデータを３つのデータ受信者４０２（Ｂ）、４０２（Ｃ）、４０２（Ｄ）に対して通信する帯域容量を有する。加えて、データ受信者４０２（Ｂ）および４０２（Ｃ）はそれぞれ、ビデオおよびオーディオのデータを追加のデータ受信者に対して通信する帯域容量を有する。データ受信者４０２（Ｅ）は、ビデオおよびオーディオのデータをデータソース４０２（Ａ）から、１つのデータ受信者４０２（Ｅ）のみをサポートすることができる帯域容量を有するデータ受信者４０２（Ｂ）を経由する通信リンクを介して受信する。
【００３７】
この例において、ビデオ会議データを、データソース４０２（Ａ）からデータ受信者４０２（Ｂ）、４０２（Ｃ）、４０２（Ｄ）それぞれに対して通信するには、５００ｍｓのエンド・ツー・エンド伝送遅延がある。加えて、ビデオ会議データを、データ受信者４０２（Ｂ）からデータ受信者４０２（Ｅ）に対して通信するには、５００ｍｓのエンド・ツー・エンド伝送遅延がある。
【００３８】
データソース４０２（Ａ）とデータ受信者４０２（Ｅ）が同一ドメイン内で、これら２つのビデオ会議メンバー間のエンド・ツー・エンド伝送遅延が僅か２０ｍｓであるように、接続されていると仮定する。同様に、データ受信者４０２（Ｂ）、４０２（Ｃ）、４０２（Ｄ）は、ローカル通信ネットワーク内で接続されており、３つのビデオ会議メンバーの任意の２つの間のエンド・ツー・エンド伝送遅延は僅か２０ｍｓであると仮定する。
【００３９】
図４Ｂは、より短いエンド・ツー・エンド伝送遅延（例えば、２０ｍｓは５００ｍｓより短い）の利点を生かすようにリファインされたマルチキャストツリー４０４（図４Ｂ）を生成するマルチキャストツリー４００（図４Ａ）のイントラツリーリファインメントを示す図である。この例においては、データ受信者４０２（Ｅ）がデータソース４０２（Ａ）からの直接の通信リンクを有するデータ受信者（Ｄ）と置き換わる。こうして、データ受信者４０２（Ｄ）は、データ受信者４０２（Ｃ）を経由する通信リンクを介してデータソース４０２（Ａ）から、ビデオおよびオーディオのデータを受信するように構成される。
【００４０】
リファインされたマルチキャストツリー４０４において、データソース４０２（Ａ）と４０２（Ｅ）との間のエンド・ツー・エンド伝送遅延は僅か２０ｍｓである。加えて、データ受信者４０２（Ｃ）と４０２（Ｄ）との間のエンド・ツー・エンド伝送遅延は僅か２０ｍｓなので、データソース４０２（Ａ）からデータ受信者４０２（Ｄ）までの全体エンド・ツー・エンド伝送遅延は５２０ｍｓである。こうして、マルチキャストツリー４０４に関する全体エンド・ツー・エンド伝送遅延は、４８０ｍｓ（即ち、マルチキャストツリー４００におけるＡ−Ｂ−Ｅの１０００ｍｓから、マルチキャストツリー４０４におけるＡ−Ｃ−Ｄの５２０ｍｓまで）減少する。
【００４１】
図示しないけれども、マルチキャストツリー４０４のリファインメントの代替案には、ビデオ会議データをデータソース４０２（Ａ）から、データ受信者４０２（Ｂ）経由の通信リンクを介して、受信するよう構成されるデータ受信者４０２（Ｄ）を含むことができる。データ受信者４０２（Ｂ）と４０２（Ｄ）は、上述のようにローカル通信ネットワーク内で接続されているので、マルチキャストツリー４０４に関する全体エンド・ツー・エンド伝送遅延は依然として５２０ｍｓ（即ち、マルチキャストツリー４０４におけるＡ−Ｂ−Ｄの５２０ｍｓ）である。実際には、データ受信者４０２（Ｄ）は、データ受信者４０２（Ｂ）とデータ受信者（Ｃ）のどちらのエンド・ツー・エンド伝送遅延が最適な通信性能を提供できるかを実際に判定することにより、データ受信者４０２（Ｂ）またはデータ受信者（Ｃ）経由の通信リンクを介して、ビデオ会議データを受信するように構成することができる。
【００４２】
図４Ａと４Ｂに示すイントラマルチキャストツリーリファインメントは、イントラマルチキャストツリーリファインメントがデータ受信者と既存通信リンクを再構成して、エンド・ツー・エンド伝送遅延を短くする点で、図３Ａ〜３Ｄに示すレギュラーリファインメントと異なる。例えば、マルチキャストツリー４０４において、データ受信者４０２（Ｅ）がデータ受信者４０２（Ｄ）と置換わり、既存通信リンクが変更されて、より良いビデオ会議性能を達成している。
【００４３】
図５Ａおよび５Ｂは、アプリケーションレベルのマルチキャストのための伝送最適化の一実施例におけるビデオ会議メンバーについてのインターマルチキャストツリーリファインメントの例を示す。図５Ａにおいて、ビデオ会議５００は、ビデオ会議データを数名のデータ受信者に通信するデータソース５０４（Ａ）として識別されたビデオ会議メンバーの観点からすると、マルチキャストセッションを表すマルチキャスト５０２を含んでいる。また、ビデオ会議５００は、データ受信者に通信するデータソース５０４（Ｃ）として識別されたビデオ会議メンバーの観点からすると、マルチキャストセッションを表すマルチキャスト５０６も含んでいる。
【００４４】
この例において、データソース５０４（Ａ）は、ビデオおよびオーディオのデータを、マルチキャストツリー５０２の中の２つのデータ受信者５０４（Ｂ）および５０４（Ｃ）に対し通信することができる帯域容量を有する。加えて、データ受信者５０４（Ｂ）は、ビデオおよびオーディオのデータをデータソース５０４（Ａ）から追加のデータ受信者５０４（Ｄ）に通信することができる帯域容量を有する。マルチキャストツリー５０６の中のデータソース５０４（Ｃ）は、ビデオ会議データを、２つのデータ受信者５０４（Ｄ）および５０４（Ｅ）に対して通信することができる帯域容量を有する。上述のように、データソースは、データ受信者と呼ばれることもあるので、この例において、マルチキャストツリー５０６におけるデータソース５０４（Ｃ）は、マルチキャストツリー５０２におけるデータ受信者５０４（Ｃ）でもある。
【００４５】
この例において、データソース５０４（Ａ）並びにデータ受信者５０４（Ｃ）、５０４（Ｄ）および５０４（Ｅ）は、いずれのビデオ会議メンバー間のエンド・ツー・エンド伝送遅延も僅か２０ｍｓとなるように、同一ネットワークドメイン内で接続されている。データ受信者５０４（Ｂ）は、データ受信者５０４（Ｂ）とその他のビデオ会議メンバーとの間のエンド・ツー・エンド伝送遅延が５００ｍｓとなるように、異なるネットワークを介して、ビデオ会議と接続されている。したがって、データソース５０４（Ａ）からデータ受信者５０４（Ｄ）までは、データ受信者５０４（Ｂ）経由の通信リンクを介して、１０００ｍｓの遅延がある。
【００４６】
ビデオ会議５００の性能を強化して、マルチキャストツリー５０２の中の１０００ｍｓの全体エンド・ツー・エンド伝送遅延を最小化するには、データソース５０４（Ａ）が、マルチキャストツリー５０６のデータソース５０４（Ｃ）に対し、最適化要求５０８をサブミットする。最適化要求５０８に応答して、データソース５０４（Ｃ）は、データソース５０４（Ａ）がマルチキャストツリー５０２を再構成することができるように、マルチキャストツリー５０６を再構成することができる。
【００４７】
図５Ｂは、ビデオ会議５００における、リファインされたマルチキャストツリー５１０を生成するマルチキャストツリー５０２のインターマルチキャストツリーリファインメント、およびリファインされたマルチキャストツリー５１２を生成するマルチキャストツリー５０６のインターマルチキャストツリーリファインメントを示す図である。リファインされたマルチキャストツリー５１２において、データ受信者５０４（Ｅ）は、データ受信者５０４（Ｄ）経由の通信リンクを介して、ビデオおよびオーディオのデータをデータソース５０４（Ｃ）から受信する。リファインメントを施されたマルチキャストツリー５１０において、データ受信者５０４（Ｄ）は、データ受信者５０４（Ｃ）経由の通信リンクを介して、ビデオおよびオーディオのデータをデータソース５０４（Ａ）から受信する。マルチキャストツリー５１２の全体エンド・ツー・エンド伝送遅延は、４０ｍｓまで２０ｍｓだけ増加しているけれども、マルチキャストツリー５１０は、５００ｍｓだけ（即ち、Ａ−Ｂ−Ｄの１０００ｍｓからＡ−Ｂの５００ｍｓまで）改善されている。
【００４８】
図６Ａおよび６Ｂは、アプリケーションレベルのマルチキャストのための伝送最適化の一実施例におけるビデオ会議メンバーについてのインターマルチキャストツリーリファインメントの別の例を示す。図６Ａにおいて、ビデオ会議６００は、ビデオ会議データを数個のデータ受信者に通信するデータソース６０４（Ａ）として識別されたビデオ会議メンバーの観点からすると、マルチキャストセッションを表すマルチキャストツリー６０２を含んでいる。また、ビデオ会議６００は、データソース６０４（Ｃ）の観点からすると、マルチキャストセッションを表すマルチキャストツリー６０６も含んでいるので、これもまたビデオおよびオーディオのデータをデータ受信者に通信するデータソース６０４（Ｂ）の観点からすると、マルチキャストセッションを表すマルチキャストツリー６０８を含む。
【００４９】
この例において、データソース６０４（Ａ）は、ビデオおよびオーディオのデータを、２つのデータ受信者６０４（Ｂ）および６０４（Ｃ）に対して通信することができる帯域容量を有する。加えて、データ受信者６０４（Ｂ）は、ビデオおよびオーディオのデータをデータソース６０４（Ａ）から、追加のデータ受信者６０４（Ｄ）に通信することができる帯域容量を有する。データソース６０４（Ｂ）は、ビデオおよびオーディオのデータを、データ受信者６０４（Ｄ）および６０４（Ｅ）に対して通信することができる帯域容量を有する。加えて、データ受信者６０４（Ｃ）は、ビデオおよびオーディオのデータをデータソース６０４（Ｂ）から、追加のデータ受信者６０４（Ａ）に通信することができる帯域容量を有する。上述のように、データソースはデータ受信者と呼ばれることもあるので、この例において、マルチキャストツリー６０２におけるデータソース６０４（Ａ）は、マルチキャストツリー６０８におけるデータ受信者６０４（Ａ）でもある。加えて、マルチキャストツリー６０６におけるデータソース６０４（Ｃ）は、マルチキャストツリー６０２および６０８におけるデータ受信者６０４（Ｃ）でもある。
【００５０】
この例において、ビデオ会議メンバー６０４（Ａ）、６０４（Ｃ）、６０４（Ｄ）および６０４（Ｅ）は、任意の２つのビデオ会議メンバー間のエンド・ツー・エンド伝送遅延も僅か２０ｍｓとなるように、同一ネットワークドメイン内で接続されている。データ受信者６０４（Ｂ）は、データ受信者６０４（Ｂ）とその他のビデオ会議メンバーとの間のエンド・ツー・エンド伝送遅延は５００ｍｓとなるように、異なるネットワークを介して、ビデオ会議６００と接続されている。したがって、データソース６０４（Ａ）からデータ受信者６０４（Ｄ）までは、データ受信者６０４（Ｂ）経由の通信リンクを介して、１０００ｍｓの遅延がある。
【００５１】
ビデオ会議６００の性能を強化して、マルチキャストツリー６０２の中の１０００ｍｓの全体エンド・ツー・エンド伝送遅延を最小化するには、データソース６０４（Ａ）が、マルチキャストツリー６０６のデータソース６０４（Ｃ）に対し、最適化要求６１０をサブミットする。最適化要求６１０に応答して、マルチキャストツリー６０６を再構成することは出来ないので、データソース６０４（Ｃ）は、最適化要求６１２をデータソース６０４（Ｂ）に転送する。転送された最適化要求６１２に応答して、マルチキャストツリー６０２を再構成することができるように、マルチキャストツリー６０８が再構成される。
【００５２】
図６Ｂは、ビデオ会議６００における、リファインされたマルチキャストツリー６１４を生成するマルチキャストツリー６０２のインターマルチキャストツリーリファインメント、およびリファインメントされたマルチキャストツリー６１６を生成するマルチキャストツリー６０８のインターマルチキャストツリーリファインメントを示す図である。リファインされたマルチキャストツリー６１６において、データ受信者６０４（Ａ）は、データ受信者６０４（Ｅ）経由の通信リンクを介して、ビデオおよびオーディオのデータをデータソース６０４（Ｂ）から受信する。リファインされたマルチキャストツリー６１４において、データ受信者６０４（Ｄ）は、データ受信者６０４（Ｃ）経由の通信リンクを介して、ビデオおよびオーディオのデータをデータソース６０４（Ａ）から受信する。マルチキャストツリー６１６に関する５２０ｍｓの全体エンド・ツー・エンド伝送遅延は変更されなかったとしても、マルチキャストツリー６１４は、５００ｍｓだけ（即ち、Ａ−Ｂ−Ｄの１０００ｍｓからＡ−Ｂの５００ｍｓまで）改善されている。
【００５３】
図７を参照して説明する例示的方法７００のような、アプリケーションレベルのマルチキャストのための伝送最適化のための方法を、コンピュータ実行可能命令の一般的コンテキストとして説明する。一般的に、コンピュータ実行可能命令には、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造体、プロシージャ、モジュール、ファンクション等、特定の機能を実行するかまたは特定の抽象データ型を実施するものが含まれる。この方法はまた、通信ネットワークを通じて接続される遠隔処理装置により機能が実行される分散コンピューティング環境においても実施され得る。分散コンピューティング環境において、コンピュータ実行可能命令は、メモリ記憶装置を含む、ローカルおよび遠隔のコンピュータ記憶媒体双方に置くことが可能である。
【００５４】
図７は、アプリケーションレベルのマルチキャストのための伝送最適化のための例示的方法７００を示す。この方法を記述する順序は、限定と解釈されることを目的とするものではなく、記述する方法の任意の数のブロックを任意の順序で組合せてこの方法を実施することができる。さらに、この方法は、任意の適切なハードウエア、ソフトウエア、ファームウエア、またはそれらの組合せにより実施することができる。
【００５５】
ブロック７０２において、ビデオ会議の各データソースメンバーについてマルチキャストツリーを生成する。データソースのマルチキャストツリーは、データソース、およびビデオ会議中にそのデータソースからビデオおよびオーディオのデータを受信するビデオ会議メンバーの、データ通信構成を表す。例えば、最適化ロジック１１２（図１）は、マルチキャストツリー１１４のルートノードとしてデータソース１０２（２）を含み、データ受信者１０２（１）、１０２（３）、１０２（４）、および１０２（Ｎ）を、マルチキャストツリー１１４における子ノードとして含むマルチキャストツリー１１４を生成する。
【００５６】
ブロック７０４において、各データソースからビデオ会議メンバーの各々までのエンド・ツー・エンド伝送遅延を判定する。例えば、データソース１０２の最適化ロジック１１２は、５秒毎にプローブメッセージを発生して、データソースと、そのデータソースからビデオおよびオーディオのデータを受信するビデオ会議の別のメンバーとの間のエンド・ツー・エンド伝送遅延を判定することができる。ブロック７０６において、各データソースとビデオ会議メンバーの各々との間で利用可能な帯域幅を判定する。例えば、データソース１０２の最適化ロジック１１２は、ビデオ会議データのデータソースとデータ受信者との間の利用可能な帯域幅を判定するＰａｃｋｅｔ−Ｐａｉｒ法を用いて、別のビデオ会議メンバーに対する通信接続の利用可能な帯域幅を判定する。
【００５７】
ブロック７０８において、各データソースとそれぞれのビデオ会議メンバーとの間で判定されるエンド・ツー・エンド伝送遅延に基づいて、ビデオ会議のメンバーに対応する１つまたは複数のマルチキャストツリーをリファインする。ブロック７１０において、各データソースとそれぞれのビデオ会議メンバーのため利用可能な帯域幅に基づいて、ビデオ会議のメンバーに対応する１つまたは複数のマルチキャストツリーをリファインする。
【００５８】
例えば、特定のデータソースの最適化ロジック１１２は、関連するマルチキャストツリーをリファインし、ビデオ会議におけるデータソースのデータ通信構成を最適化する。マルチキャストツリーをリファインすることは、マルチキャストツリーにおいてビデオ会議メンバーを表す子ノードがビデオおよびオーディオのデータを受信するために用いる通信リンクを再構成することを含むことができる。さらに、１つまたは複数のマルチキャストツリーをリファインし、ビデオ会議のためオーディオデータ通信を最適化することができる。また、マルチキャストツリーのリファインメントは、対応するマルチキャストツリーをリファインし追加の帯域幅を利用可能にして、第１のデータソースが関連するマルチキャストツリーをリファインすることができるようにするための、第２のデータソースに対する最適化要求を、第１のデータソースが起動することを含むこともある。
【００５９】
図８は、図１に示す例示的なビデオ会議システム１００において、複数データソース１０２（１〜Ｎ）のうち任意の１つとして実施することのできる例示的コンピューティングデバイス８００の各種構成要素を示す。コンピューティングシステム８００は、任意の数の実施例を、多数の別の汎用または専用コンピューティングシステム環境または構成を用いて、実施することのできるコンピューティングデバイス８０２を含む。例示的コンピューティングシステムにおいて実施することのできる既知のコンピューティングシステム、環境および／または構成には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブル家電製品、ネットワークＰＣ、デジタルビデオレコーダ（ＤＶＲ）および再生装置、ゲーム機、上述のシステムまたは装置の何れかを含む分散コンピューティング環境等が含まれるが、これらには限らない。
【００６０】
コンピューティングデバイス８０２は、ＩＰベースのネットワーク（例えば、図１に示す通信ネットワーク１０４）を経由してメディアコンテンツが受信されるインターネットプロトコル（ＩＰ）入力をはじめとする１つまたは複数のメディアコンテンツ入力８０４を含む。メディアコンテンツ入力８０４は、コンピューティングデバイス８０２が、例えば、セットトップボックスまたはデジタルビデオレコーダとして具現されるとき、各種周波数またはチャンネルに同調してテレビ信号を受信することのできるチューナをも含む。メディアコンテンツ入力８０４は、各種命令を処理してコンピューティングデバイス８０２の作動を制御し他の電子装置またはコンピューティングデバイスと通信する１つまたは複数のプロセッサ８０６（例えば、任意のマイクロプロセッサ、コントローラ等）をも含む。
【００６１】
コンピューティングデバイス８０２は、１つまたは複数のメモリコンポーネント８０８を用いて実施される。メモリコンポーネント８０８の例には、ランダムアクセスメモリ（ＲＡＭ）、非揮発性メモリ（例えば、任意の１つまたは複数の読取専用メモリ（ＲＯＭ）、フラッシュメモリ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、等）およびディスク記憶装置が含まれる。ディスク記憶装置は、ハードディスクドライブ、記録可能および／または書換え可能コンパクトディスク（ＣＤ）、ＤＶＤ、ＤＶＤ＋ＲＷ等、任意の形態の磁気または光記憶装置を含むことができる。メモリコンポーネント８０８は、データ記憶機構を備え、受信するメディアコンテンツ、ソフトウエアアプリケーション、およびコンピューティングデバイス８０２の作動態様に関係する任意の別のタイプの情報およびデータのような、各種情報および／またはデータを記憶する。
【００６２】
オペレーティングシステム８１０、ブラウザアプリケーション８１２、およびビデオ会議アプリケーション８１４はすべて、不揮発性メモリコンポーネント８０８を用いソフトウエアアプリケーションとして保持され、プロセッサ（１つまたは複数）８０６上で実行される。ブラウザアプリケーション８１２は、インターネットを介して、ユーザがそれを通じてウエブ（例えば、ワールドワイドウエブ）と対話および閲覧をすることのできるユーザインタフェイスを提供する。ビデオ会議アプリケーション８１４は、ビデオおよびオーディオの会議通信を円滑にし、ビデオ会議メンバーがそれを通じて、図１に示すビデオ会議システム１００の中のデータソース１０２と対話をすることのできるユーザインタフェイスを提供する。
【００６３】
この例においては、最適化ロジック８１６も、非揮発性メモリコンポーネント８０８を用いて、アプリケーションレベルのマルチキャストのための伝送最適化の具現を実施するためプロセッサ（１つまたは複数）上で実行されるソフトウエアアプリケーションとして保持される。最適化ロジック８１６は、データソース１０２（２）について図１に示す最適化ロジック１１２の一例である。上述のように、特定のデータソースのための最適化ロジック８１６（例えば、最適化ロジック１１２）は、ビデオ会議におけるデータソースについてのソース固有のマルチキャストツリーを生成し、任意の２つのビデオ会議メンバー間のネットワーク動態（例えば、エンド・ツー・エンド伝送遅延と利用可能な帯域幅）を判定する。特定のデータソースの最適化ロジック８１６は、このとき、ビデオ会議データの各データ受信者に対応するエンド・ツー・エンド伝送遅延と利用可能な帯域幅に基づいて、それぞれのマルチキャストツリーをリファインし、そのデータソースについてのデータ通信構成を最適化する。
【００６４】
最適化ロジック８１６は、単一アプリケーションとして図示し記述するけれども、最適化ロジック８１６は、分散されてそれぞれが例示的コンピューティングシステム８００において１つまたは複数の機能を実行するいくつかのコンポーネントアプリケーションとして実施することができる。さらに、最適化ロジック８１６は、コンピューティングデバイス８０２とは別のデバイス上で実施しても差し支えない。この場合、別のデバイスもまた、コンピューティングシステム８００の中でコンピューティングデバイス８０２と通信するために構成される。
【００６５】
本明細書中で使用する用語「ロジック」（例えば、最適化ロジック８１６）は、匿名のエイリアス（anonymous alias）の実施形態に関連する論理操作を実行するために実装されるハードウエア、ファームウエア、ソフトウエア、またはそれらの組合せをも指すことができる。また、ロジックは、支援的非論理操作（supportive non-logical operation）を含む所与のタスクを達成するために利用される任意の支援回路（supporting circuit）をも含み得る。また、ロジックは例えば、アナログ回路、メモリコンポーネント、入出力（Ｉ／Ｏ）回路、インタフェイス回路、電力供給／調整回路などを含み得る。
【００６６】
コンピューティングデバイス８０２はさらに、（１つまたは複数の）通信インタフェイス８１８およびモデム８２０を含む。（１つまたは複数の）通信インタフェイス８１８は、シリアルおよび／またはパラレルインタフェイス、無線インタフェイス、任意のタイプのネットワークインタフェイス、および任意の別のタイプの通信インタフェイスのうち任意の１つまたは複数により実装することができる。無線インタフェイスにより、コンピューティングデバイス８０２は、制御入力命令（control input command）および別の情報を、リモートコントロール装置または別の赤外線（ＩＲ）、８０２．１１，ブルートゥース、または同様のＲＦ入力装置のような、入力装置から受信することができる。
【００６７】
ネットワークインタフェイスは、コンピューティングデバイス８０２と通信ネットワーク１０４との間の接続を提供し、それにより通信ネットワーク１０４に接続される別の電子装置およびコンピューティングデバイス（例えば、各データソース１０２（１〜Ｎ））が、設定情報、並びにオーディオおよびビデオのデータをコンピューティングデバイス８０２に通信する。同様に、シリアルおよび／またはパラレルインタフェイスは、コンピューティングデバイス８０２と別の電子デバイスまたはコンピューティングデバイスとの間にデータ通信経路を直接提供する。モデム８２０は、従来の電話線、ＤＳＬ接続、ケーブル、および／またはその他のタイプの接続を介して、コンピューティングデバイス８０２が別の電子デバイスまたはコンピューティングデバイスとの通信することを円滑にする。また、図示しないけれども、コンピューティングデバイス８０２は、コンピューティングデバイス８０２と対話をして情報を入力するために、キーボード、マウス、ポインティングデバイス、および／またはその他の機構のようなユーザ入力装置およびその他の入力装置をも含む。
【００６８】
また、コンピューティングデバイス８０２は、コンテンツプロセッサ８２２をも含み、これは、メディアコンテンツを受信、処理、および復号化し、データを表示するビデオデコーダおよび／または追加プロセッサを含むことができる。また、コンピューティングデバイス８０２は、オーディオおよび／またはビデオの入出力装置８２４、をも含み、これが、オーディオおよびビデオを、オーディオレンダリングおよび／または表示装置８２６に対し、またはオーディオ、ビデオを処理、表示および／または別の方法でオーディオ、ビデオをレンダリングするその他の装置に対し提供して、データを提示する。また、オーディオおよび／またはビデオの入出力装置８２４は、カメラ装置８２８からオーディオおよびビデオの入力を受信し、ビデオ会議を開くことを円滑にする。ビデオ信号およびオーディオ信号は、コンピューティングデバイス８０２から表示装置８２６に対し、およびカメラ装置８２８からコンピューティングデバイス８０２に対し、ＲＦ（高周波）リンク、Ｓ−ビデオリンク、複合ビデオリンク、コンポーネントビデオリンク、アナログオーディオ接続、または同様の通信リンクを介して、通信される。
【００６９】
別個に図示しているけれども、コンピューティングデバイス８０２のコンポーネントの一部は、アプリケーション専用の集積回路（ＡＳＩＣ）で実施して差し支えない。加えて、システムバス（図示せず）が、一般的にコンピューティングデバイス８０２内の各種コンポーネントを接続する。システムバスは、メモリバスまたはメモリコントローラ、ペリフェラルバス、加速グラフィックポート（ＡＧＰ）、または各種バスアーキテクチャの何れかを利用するローカルバスを含む、いくつかのタイプのバス構造のうち任意の１つまたは複数として実施することができる。
【００７０】
アプリケーションレベルのマルチキャストのための伝送最適化の実施例を、構造的特徴および／または方法に特定の専門用語で記述したけれども、添付の特許請求の範囲の要旨は、必ずしも記述する特定の特徴または方法に限定されないことは理解される筈である。むしろ、固有の特徴または方法は、アプリケーションレベルのマルチキャストのための伝送最適化の実施の一例として開示している。
【図面の簡単な説明】
【００７１】
【図１】アプリケーションレベルのマルチキャストのための伝送最適化の実施形態を実施することができる例示的なビデオ会議システムの各種構成要素を示す図である。
【図２Ａ】図１に示す例示的なビデオ会議システムにおけるデータソースのマルチキャストセッションに関するマルチキャストツリー構成を示す図である。
【図２Ｂ】図１に示す例示的なビデオ会議システムにおけるデータソースのマルチキャストセッションに関するマルチキャストツリー構成を示す図である。
【図２Ｃ】図１に示す例示的なビデオ会議システムにおけるデータソースのマルチキャストセッションに関するマルチキャストツリー構成を示す図である。
【図２Ｄ】図１に示す例示的なビデオ会議システムにおけるデータソースのマルチキャストセッションに関するマルチキャストツリー構成を示す図である。
【図３Ａ】アプリケーションレベルのマルチキャストのための伝送最適化の実施におけるビデオ会議メンバーのためのレギュラーマルチキャストツリーリファインメントの例を示す図である。
【図３Ｂ】アプリケーションレベルのマルチキャストのための伝送最適化の実施におけるビデオ会議メンバーのためのレギュラーマルチキャストツリーリファインメントの例を示す図である。
【図３Ｃ】アプリケーションレベルのマルチキャストのための伝送最適化の実施におけるビデオ会議メンバーのためのレギュラーマルチキャストツリーリファインメントの例を示す図である。
【図３Ｄ】アプリケーションレベルのマルチキャストのための伝送最適化の実施におけるビデオ会議メンバーのためのレギュラーマルチキャストツリーリファインメントの例を示す図である。
【図４Ａ】アプリケーションレベルのマルチキャストのための伝送最適化の実施におけるビデオ会議メンバーのためのントラマルチキャストイツリーリファインメントの例を示す図である。
【図４Ｂ】アプリケーションレベルのマルチキャストのための伝送最適化の実施におけるビデオ会議メンバーのためのントラマルチキャストイツリーリファインメントの例を示す図である。
【図５Ａ】アプリケーションレベルのマルチキャストのための伝送最適化の実施におけるビデオ会議メンバーのためのインターマルチキャストツリーリファインメントの例を示す図である。
【図５Ｂ】アプリケーションレベルのマルチキャストのための伝送最適化の実施におけるビデオ会議メンバーのためのインターマルチキャストツリーリファインメントの例を示す図である。
【図６Ａ】アプリケーションレベルのマルチキャストのための伝送最適化の実施におけるビデオ会議メンバーのためのインターマルチキャストツリーリファインメントの別の例を示す図である。
【図６Ｂ】アプリケーションレベルのマルチキャストのための伝送最適化の実施におけるビデオ会議メンバーのためのインターマルチキャストツリーリファインメントの別の例を示す図である。
【図７】アプリケーションレベルのマルチキャストのための伝送最適化の実施形態における例示的な方法を示すフロー図である。
【図８】図１に示す例示的なビデオ会議システムにおいて、複数のデータソースおよび／またはデータ受信者のうちのいずれか１つとして実装することのできる例示的なコンピューティングデバイスの各種構成要素を示す図である。
【符号の説明】
【００７２】
１０２（１〜Ｎ）  データソース
１０４  通信ネットワーク
１０６  ローカルネットワーク
１０８（Ａ，Ｂ），１１０  ビデオ会議データ
１１２  最適化ロジック
１１４  マルチキャストツリー
【図１】
2006050639.tif 000003
【図２Ａ】
2006050639.tif 000004
【図２Ｂ】
2006050639.tif 000005
【図２Ｃ】
2006050639.tif 000006
【図２Ｄ】
2006050639.tif 000007
【図３Ａ】
2006050639.tif 000008
【図３Ｂ】
2006050639.tif 000009
【図３Ｃ】
2006050639.tif 000010
【図３Ｄ】
2006050639.tif 000011
【図４Ａ】
2006050639.tif 000012
【図４Ｂ】
2006050639.tif 000013
【図５Ａ】
2006050639.tif 000014
【図５Ｂ】
2006050639.tif 000015
【図６Ａ】
2006050639.tif 000016
【図６Ｂ】
2006050639.tif 000017
【図７】
2006050639.tif 000018
【図８】
2006050639.tif 000019
【外国語明細書】
2006050639000001.pdf