(57)【要約】【課題】動的なＡＬＭ経路の適合化によってエコーを低減すること。【解決手段】データの送信元ノードおよび送信先ノードを含んでいる経路情報に従って、複数のノード間でネットワークを介してデータを受信および転送するマルチキャスト通信方法。この方法は、第１のノードにおいて第１のデータおよび第２のデータを受信するステップと、第１のデータおよび第２のデータを経路情報に従って次の送信先ノードに転送するステップと、第１のデータの第１のホッピング数と第２のデータの第２のホッピング数とに基づいて、第１のノードにおいて第１のデータを第２のデータとミックスするかを決定するステップと、を含んでいる。第１のデータの第１のホッピング数は、第１のデータの送信元ノードと第１のデータの次の送信先ノードとの間のノードの数として定義され、第２のデータの第２のホッピング数は、第２のデータの送信元ノードと第２のデータの次の送信先ノードとの間のノードの数として定義される。【選択図】図５
2011524651.tif 000002
【特許請求の範囲】
【請求項１】
データの送信元ノードおよび送信先ノードを含んでいる経路情報に従って、複数のノード間でネットワークを介して、前記データを受信および転送するマルチキャスト通信方法であって、
第１のノードにおいて第１のデータおよび第２のデータを受信するステップと、
前記第１のデータおよび前記第２のデータを前記経路情報に従って次の送信先ノードに転送するステップと、
前記第１のデータの第１のホッピング数と前記第２のデータの第２のホッピング数とに基づいて、前記第１のノードにおいて前記第１のデータを前記第２のデータとミックスするかを決定する決定ステップと、
を具備し、
前記第１のデータの前記第１のホッピング数が、前記第１のデータの前記送信元ノードと前記第１のデータの前記次の送信先ノードとの間のノードの数として定義され、前記第２のデータの前記第２のホッピング数が、前記第２のデータの前記送信元ノードと前記第２のデータの前記次の送信先ノードとの間のノードの数として定義される、
マルチキャスト通信方法。
【請求項２】
前記第１のノードにおいて前記第１のデータを前記第２のデータとミックスするかを決定する前記決定ステップは、
前記第１のホッピング数および前記第２のホッピング数の両方が０より大きいときに、前記第１のノードにおいて前記第１のデータを前記第２のデータとミックスしないことを決定するステップ、
をさらに含んでいる、
請求項１に記載のマルチキャスト通信方法。
【請求項３】
複数のノード間でネットワークを介してデータを受信および転送するマルチキャスト通信装置であって、
前記データを送信元ノードから受信する受信手段と、
前記データの前記送信元ノードおよび送信先ノードを含んでいる、前記データの経路情報、を格納しているルーティングテーブルと、
前記ルーティングテーブルの前記経路情報に従って、前記データを次の送信先ノードに転送する転送手段と、
転送される前記データの、前記送信元ノードから前記次の送信先ノードまでのホッピング数を含んでいるホップ長テーブルと、
別のノードから受信されるデータのミキシング処理を実行するミキシング処理手段と、
を備えており、
前記ミキシング処理手段は、前記ホップ長テーブルにおける前記ホッピング数に従って前記ミキシング処理を実行する、
マルチキャスト通信装置。
【請求項４】
前記経路情報は、前記データのルーティング順序をさらに含んでおり、
前記ホッピング数は、前記送信元ノードと前記次の送信先ノードとの間の前記ノードの数として定義される、
請求項３に記載のマルチキャスト通信装置。
【請求項５】
前記ホップ長テーブルは、前記複数のノードのそれぞれに対して作成され、前記送信元ノードおよび前記次の送信先ノードのすべての組合せについて前記ホッピング数を決定する、
請求項４に記載のマルチキャスト通信装置。
【請求項６】
前記ホップ長テーブルは、前記データのミキシングを実行するか否かに関する、前記次の送信先ノードそれぞれに対するステータス情報を備えており、
前記ミキシング処理手段は、前記ステータス情報に従って前記ミキシング処理を実行する、
請求項４または５に記載のマルチキャスト通信装置。
【請求項７】
前記転送手段は、前記次の送信先ノードの１つに対する前記ステータス情報が転送処理を示している場合、前記次の送信先ノードの前記１つに対して、前記ミキシング処理手段における前記ミキシング処理を実行せずに転送処理を実行する、
請求項６に記載のマルチキャスト通信装置。
【請求項８】
前記次の送信先ノードの１つに対して０以外の複数の前記ホッピング数が存在する場合、前記次の送信先ノードの前記１つに対する前記ステータス情報は転送処理を示す、
請求項７に記載のマルチキャスト通信装置。
【請求項９】
前記ステータス情報がミキシング処理を示している場合、
前記ミキシング処理手段は、前記ミキシング処理を実行し、
前記転送手段は、前記ミキシング処理手段においてミックスされたミックスデータを、前記次の送信先ノードに転送する、
請求項６から８のいずれかに記載のマルチキャスト通信装置。
【請求項１０】
前記ステータス情報が再生処理を示している場合、
前記受信手段において受信された前記データは、ミキシング処理も転送処理もされずに再生される、
請求項６から９のいずれかに記載のマルチキャスト通信装置。
【請求項１１】
コンピュータ可読媒体に格納されているプログラムであって、コンピュータに、請求項１に記載の前記マルチキャスト通信方法を実行させる、プログラム。
【請求項１２】
実行可能なマルチキャスト通信プログラムを格納しているコンピュータ可読媒体であって、前記マルチキャスト通信プログラムによって、コンピュータが、
第１のノードにおいて第１のデータおよび第２のデータを受信するステップと、
前記第１のデータおよび前記第２のデータを経路情報に従って次の送信先ノードに転送するステップと、
前記第１のデータの第１のホッピング数と前記第２のデータの第２のホッピング数とに基づいて、前記第１のノードにおいて前記第１のデータを前記第２のデータとミックスするかを決定するステップと、
を実行し、
前記第１のデータの前記第１のホッピング数が、前記第１のデータの前記送信元ノードと前記第１のデータの前記次の送信先ノードとの間のノードの数として定義され、前記第２のデータの前記第２のホッピング数が、前記第２のデータの前記送信元ノードと前記第２のデータの前記次の送信先ノードとの間のノードの数として定義される、
コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークルーティング機能を有するマルチキャスト通信方法および装置に関し、より詳細には、特に、音声会議システムおよびビデオ会議システム（特に「ビデオ会議」は「音声・映像（ＡＶ）会議」または「テレビ（ＴＶ）会議」とも称される）（ただしこれらに限定されない）において使用することを目的として、動的なアプリケーション層マルチキャストを使用してデータをミックスする方法および装置に関する。
【背景技術】
【０００２】
アプリケーション層マルチキャスティング（ＡＬＭ）は、複数のノードを接続する目的で既存のユニキャストネットワークアーキテクチャの上に実装される。ＡＬＭでは、マルチキャストとは異なり、追加のルータ設定なしに、ＡＬＭノードによって形成されるオーバーレイネットワークを利用して、メンバー自身がＡＶパケットをルーティングすることができる。ＡＬＭノードは、経路情報を相互に交換してオーバーレイネットワークを形成し、このオーバーレイネットワークを利用してパケットを交換する。これによって、多数のマルチキャストグループが、遅延条件の厳しいリアルタイムのＡＶパケットをアプリケーション層において転送するうえでの柔軟性が提供される。
【０００３】
ＡＬＭは、例えば、大規模なグループの音声会議セッションに使用することができ、この場合、マルチポイント制御ユニット（ＭＣＵ）ノードによって、参加ノードを対象とする分散型のミキシングを実行することができる。これらのＭＣＵノードは、ミックスされたコンテンツを、遅延が最小であるように最良のＡＬＭ経路上で相互に再ルーティングし、リアルタイムの音声会議を実現することができる。このＡＬＭ経路は、最小の遅延と、ＭＣＵノードの経路に沿っての負荷分散とが達成されるように、元の音声コンテンツまたは一部分がミックスされた音声コンテンツを伝えることができる。最小の遅延は、最良のＡＬＭ経路を選択することによって達成され、その一方で、負荷分散は、ＡＬＭ−ＭＣＵノードが送信元からの音声コンテンツを追加式にミキシングする（incremental mixing）ことによって行われる。ＡＬＭ−ＭＣＵノードは、音声コンテンツをミックスして、次のＡＬＭ−ＭＣＵノード、別のＡＬＭノード、または音声エンドノードに配信する。
【０００４】
ＭＣＵノードが、コンテンツの種類またはコンテンツの送信元を認識することなくすべての音声パケットをミックスするならば、それによって音声エコー問題が生じることがある。なぜなら、同じ送信元からの重複した音声コンテンツが、一部分がミックスされた形、または元の形で受信されうるためである。
【０００５】
非特許文献１には、さまざまな能力を有する参加ピアを音声会議セッションにおいて利用することのできる、ＡＬＭベースのハイブリッド型Ｐ２Ｐ会議アーキテクチャが記載されている。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】W. Xiaotao, K. D. Krishna, and K. Venkatesh, ”Enhancing application-Layer Multicast for P2P Conferencing”, Consumer Communications and Networking Conference, 2007, 4th IEEE, Jan. 2007, pages 986-990
【発明の概要】
【発明が解決しようとする課題】
【０００７】
このアーキテクチャは、３ステップのアルゴリズムを使用して、このようなＡＬＭベースのハイブリッド型Ｐ２Ｐ会議を構築する。この方法は、既存のＡＬＭベースのＰ２Ｐ会議システムよりもスケーラビリティが高い。しかしながら、この方法では、同じノードがミキシング機能およびブリッジング機能を実行する場合、音声ループ問題（すなわち音声エコー問題）が考慮されない。
【０００８】
したがって、本発明の目的は、動的なＡＬＭ経路の適合化によってエコーを低減することのできるマルチキャスト通信方法および装置を提供することである。
【課題を解決するための手段】
【０００９】
本発明は、データの送信元ノードおよび送信先ノードを含んでいる経路情報に従って、複数のノード間でネットワークを介して、データを受信および転送するマルチキャスト通信方法であって、第１のノードにおいて第１のデータおよび第２のデータを受信するステップと、第１のデータおよび第２のデータを経路情報に従って次の送信先ノードに転送するステップと、第１のデータの第１のホッピング数と第２のデータの第２のホッピング数とに基づいて、第１のノードにおいて第１のデータを第２のデータとミックスするかを決定するステップと、を含んでおり、第１のデータの第１のホッピング数が、第１のデータの送信元ノードと第１のデータの次の送信先ノードとの間のノードの数として定義され、第２のデータの第２のホッピング数が、第２のデータの送信元ノードと第２のデータの次の送信先ノードとの間のノードの数として定義される、マルチキャスト通信方法、を提供する。
【００１０】
本発明は、複数のノード間でネットワークを介してデータを受信および転送するマルチキャスト通信装置であって、データを送信元ノードから受信する受信手段と、データの送信元ノードおよび送信先ノードを含んでいる、データの経路情報、を格納しているルーティングテーブルと、ルーティングテーブルの経路情報に従って、データを次の送信先ノードに転送する転送手段と、転送されるデータの、送信元ノードから次の送信先ノードまでのホッピング数を含んでいるホップ長テーブルと、別のノードから受信されるデータのミキシング処理を実行するミキシング処理手段と、を備えており、ミキシング処理手段は、ホップ長テーブルにおけるホッピング数に従ってミキシング処理を実行する、マルチキャスト通信装置、をさらに提供する。
【発明の効果】
【００１１】
本発明によると、マルチキャスト通信方法および装置は、動的なＡＬＭ経路の適合化によってエコーを低減することができる。
【図面の簡単な説明】
【００１２】
【図１Ａ】本発明の実施の形態に係る、ＡＬＭセッションにおける複数のＡＬＭノードおよびＡＬＭ−ＭＣＵノードを有するネットワークを示す図
【図１Ｂ】図１Ａに示した各ノードの概略的なハードウェア構成の一例を示すブロック図
【図１Ｃ】図１Ａにおける各ノードを備えている機器のいくつかの具体例を示す図
【図２】本発明の実施の形態に係る、ＡＬＭ転送（ルーティング）テーブルの実例を示す図
【図３】図２に示したＡＬＭ転送テーブルに関連する、ＡＬＭ−ＭＣＵマルチメディアストリーミングのシナリオ例を示す図
【図４】図３に示した４つのノードＡ〜Ｄが送信元である場合における、図２に連結されている転送サブテーブルの内容を示す図
【図５】本発明の実施の形態に係る、ＡＬＭベースでの分散型の選択的かつ動的なミキシングを実行するＭＣＵの装置を示す図
【図６】本発明の実施の形態に係るＡＬＭミキシング転送（ＡＭＦ）テーブルを示す図
【図７】本発明の実施の形態によるミキシングホップ長（ＭＨＬ）テーブルを示す図
【図８】本発明の実施の形態による分散型ＡＬＭミキシングステータス（ＤＡＭＳ）テーブルを示す図
【図９】本発明の実施の形態に係るＡＬＭノード間のメッセージ交換手順を示す図
【図１０】本発明の実施の形態に係るＡＬＭ−ＭＣＵメッセージのフォーマットを示す図
【図１１】図５のＡＬＭベースでの分散型の選択的かつ動的なミキシングを実行するＭＣＵの装置を具体化しているＡＬＭ−ＭＣＵ装置の例を示す図
【図１２Ａ】本発明の実施の形態に係る、ノードが４つである例示的な場合におけるルーティングを示す図
【図１２Ｂ】図１２Ａに示したルーティングにおけるルーティングテーブルを示す図
【図１３Ａ】図１２Ａおよび図１２Ｂのルーティングにおいて、所定の規則に従ってノードＡによって作成されるＭＨＬテーブルを示す図
【図１３Ｂ】図１２Ａおよび図１２Ｂのルーティングにおいて、所定の規則に従ってノードＢによって作成されるＭＨＬテーブルを示す図
【図１３Ｃ】図１２Ａおよび図１２Ｂのルーティングにおいて、所定の規則に従ってノードＣによって作成されるＭＨＬテーブルを示す図
【図１３Ｄ】図１２Ａおよび図１２Ｂのルーティングにおいて、所定の規則に従ってノードＤによって作成されるＭＨＬテーブルを示す図
【図１４Ａ】本発明の実施の形態に係る、ノードが５つである例示的な場合におけるルーティングを示す図
【図１４Ｂ】図１４Ａに示したルーティングにおけるルーティングテーブルを示す図
【図１５Ａ】図１４Ａおよび図１４Ｂのルーティングにおいて、所定の規則に従ってノードＡによって作成されるＭＨＬテーブルを示す図
【図１５Ｂ】図１４Ａおよび図１４Ｂのルーティングにおいて、所定の規則に従ってノードＢによって作成されるＭＨＬテーブルを示す図
【図１５Ｃ】図１４Ａおよび図１４Ｂのルーティングにおいて、所定の規則に従ってノードＣによって作成されるＭＨＬテーブルを示す図
【図１５Ｄ】図１４Ａおよび図１４Ｂのルーティングにおいて、所定の規則に従ってノードＤによって作成されるＭＨＬテーブルを示す図
【図１５Ｅ】図１４Ａおよび図１４Ｂのルーティングにおいて、所定の規則に従ってノードＥによって作成されるＭＨＬテーブルを示す図
【図１６Ａ】本発明の実施の形態に係る、ノードが５つである別の例示的な場合におけるルーティングを示す図
【図１６Ｂ】図１６Ａに示したルーティングにおけるルーティングテーブルを示す図
【図１７Ａ】図１６Ａおよび図１６Ｂのルーティングにおいて、所定の規則に従ってノードＡによって作成されるＭＨＬテーブルを示す図
【図１７Ｂ】図１６Ａおよび図１６Ｂのルーティングにおいて、所定の規則に従ってノードＢによって作成されるＭＨＬテーブルを示す図
【図１７Ｃ】図１６Ａおよび図１６Ｂのルーティングにおいて、所定の規則に従ってノードＣによって作成されるＭＨＬテーブルを示す図
【図１７Ｄ】図１６Ａおよび図１６Ｂのルーティングにおいて、所定の規則に従ってノードＤによって作成されるＭＨＬテーブルを示す図
【図１７Ｅ】図１６Ａおよび図１６Ｂのルーティングにおいて、所定の規則に従ってノードＥによって作成されるＭＨＬテーブルを示す図
【図１８】本発明の実施の形態に係るＡＬＭベースでの分散型の選択的かつ動的なミキシングを実行するＭＣＵの動作の主なステップを示す図
【図１９】本発明の実施の形態に係るＭＨＬテーブル構築方法のステップを示す図
【図２０】本発明の実施の形態に係るＤＡＭＳテーブル作成のステップを示す図
【図２１】本発明の実施の形態に係るＡＬＭ−ＭＣＵノードのミキシング動作のステップを示す図
【図２２】本発明の実施の形態に係る強制ミキシング動作のステップを示す図
【図２３】本発明の実施の形態に係る選択的ミキシング動作のステップを示す図
【発明を実施するための形態】
【００１３】
新規技術では、マルチポイント制御ユニット（ＭＣＵ）ノードは、アプリケーション層マルチキャスト（ＡＬＭ）ベースでの分散型の選択的かつ動的なデータ（またはコンテンツ）ミキシングを行うことが可能である。コンテンツエコーの原因となるコンテンツパケットのループを排除する目的で、アプリケーション層のコンテンツパケットを、ＡＬＭベースの動的なルーティングテーブル情報を使用して選択的にミックスする。特に、本実施の形態は、ＡＬＭ−ＭＣＵノードの間でのＡＬＭベースでの分散型の選択的かつ動的なコンテンツミキシングを実行する装置および関連する方法を提供する。この技術は、例えば、経路（ルート）コンバージェンスの遅延に起因するエンドツーエンドのパケット配信遅延を最小にし、かつコンテンツ（例：音声）のエコーを低減する目的で、リアルタイムの音声／ビデオ会議に適している。この場合、エコーは、本来、音声データについて生じるが、映像データにおいても画像の重複が生じうる。したがって、本実施の形態では、音声データに関するエコーを「音声エコー」と称し、広く音声データおよび映像データを含むコンテンツに関するエコーを「コンテンツエコー」または「エコー」と称する。
【００１４】
ＡＬＭでは、アクティブなセッションにおける参加ノード（例えばＭＣＵノード）すべてが、グループのストリーミングデータをメンバー間で最良の経路を介してルーティングする役割を集合的に担うことが要求される。これによって、自立したＡＶストリーミング経路の構築、維持管理および利用を分散的に行うという目的が達成される。２００８年１２月１日出願の日本国特許出願２００８−３０６６７１には、公平な帯域幅のツリーを構築することによって帯域幅の公平性および高速なルート（経路）コンバージェンスという課題を解決するためのＮ−ツリーアルゴリズム（N-Tree algorithm）が提案されている。
【００１５】
しかしながら、この自己調整型のルーティングメカニズム（Ｎ−ツリーアルゴリズム）では、経路情報を収集および配布する１つまたは複数のノードによって、制御経路情報を動的なメンバー間で周期的に交換することが要求される。ルーティング情報は、個別のＡＬＭノードによって、またはＡＬＭノードのグループが協力することにより、動的に構築される。この動的性の結果として、ＡＬＭセッションにおいて経路／方向が頻繁に変更され、これに起因してコンテンツパケットのループまたは重複が生じることにより、ＡＬＭ−ＭＣＵノードにおいてコンテンツエコーが発生する。
【００１６】
ルーティングテーブル情報に基づくＡＬＭパケットのルーティングでは、ＭＣＵノードによるコンテンツパケットのミキシング動作が考慮されない。ＭＣＵノードは、コンテンツまたはコンテンツの送信元を認識することなく、受信するすべてのコンテンツパケットをミックスする。これによって、一部分がミックスされた形またはミックスされていない元の形で、同じ送信元からの重複したコンテンツが受信されるため、コンテンツエコー問題が生じる。
【００１７】
ＡＬＭ経路を認識していないＡＬＭ−ＭＣＵノードによるコンテンツの直接的なミキシングに起因して、ＡＬＭネットワークにおいてＭＣＵ−ＭＣＵチャネルのストリーミングが不適切にミックスされる。したがって、本実施の形態の目的は、動的なＡＬＭ経路の適合化によってエコーを排除すること、または、コンテンツの遅延／ジッタを減少させることを目的として、ＡＬＭベースでの分散型の選択的かつ動的なデータ（またはコンテンツ）ミキシングを実行する装置および方法を提供することである。さらには、これによって、ＡＬＭ−ＭＣＵノードの経路に沿ってミキシング負荷を分散させることも可能である。
【００１８】
このことは、ＡＬＭルーティングテーブル情報を動的に分析し、ＡＬＭ経路に沿ってパケットミキシングステータス情報を構築することによって達成される。ＡＬＭ−ＭＣＵノードは、コンテンツエコーを低減し、最小のパケット遅延を維持するために、パケットミキシングステータス情報を用いて、強制的または選択的コンテンツミキシングを実行する。一般的には、本実施の形態では、ＭＣＵノードは、ＡＬＭ技術を使用して、元のコンテンツパケットまたは一部分がミックスされたコンテンツパケットをＡＬＭ経路に沿って動的にルーティングすることで、最小のエンドツーエンド遅延とミキシング負荷の分散とを達成する。
【００１９】
本実施の形態は、図面によって補足されており、図面を参照しながら説明されている。
【００２０】
本発明の実施の形態全体を通じて使用されている特定の用語について以下に定義しておく。
【００２１】
「ＡＬＭセッション」：ＡＬＭセッションは、例えば、図１Ａに示すような２つ以上のＡＬＭノード（ＡＬＭノードまたはＡＬＭ−ＭＣＵノードを含む）がマルチパーティアプリケーションにおいてネットワークを介して接続され、データパケットを相互間で同時に交換する論理セッションとして定義する。
【００２２】
「非ＡＬＭノード」（または「エンドノード」）：何らのＡＬＭ機能も実行しないノード。通常では、コンテンツを生成する（送信元）ノードまたはコンテンツを消費するノードである。言い換えれば、ＡＬＭセッションに参加しており、ＡＬＭベースのパケットルーティングを実行することのできないノードである。
【００２３】
「ＡＬＭノード」：ＡＬＭセッションに参加しており、ＡＬＭベースのパケットルーティングを実行することのできるノード。
【００２４】
「ＡＬＭ−ＭＣＵノード」：受信したコンテンツに対してコンテンツミキシングを実行して、そのコンテンツを別のＡＬＭノードまたはＡＬＭ−ＭＣＵノードに転送するＡＬＭノード。
【００２５】
「直接的なミキシング」：受信されるすべてのコンテンツを、それらの生成元または種類を認識することなくミックスするＭＣＵ動作。
【００２６】
「部分的なミキシング」：ＡＬＭ−ＭＣＵノードがＡＬＭセッションの参加者のコンテンツの一部のみをミックスすること。
【００２７】
「強制ミキシング」：図１１に示したように、ＡＬＭ−ＭＣＵノードが、ＡＬＭミキシング転送（ＡＭＦ）テーブルに基づいて指定されるコンテンツをミックスすること。
【００２８】
「選択的ミキシング」：図１１に示したように、ＡＬＭ−ＭＣＵノードが、ミキシングホップ長（ＭＨＬ）テーブルおよび分散型ＡＬＭミキシングステータス（ＤＡＭＳ）テーブルに基づいて、選択されるコンテンツをミックスすること。
【００２９】
「ＭＣＵ−ＭＣＵチャネル」：元のコンテンツまたは一部分がミックスされたコンテンツをストリーミングするためのＡＬＭ−ＭＣＵノード間のネットワーク経路。
【００３０】
「リーフノード」：ＡＬＭ−ＭＣＵノードに直接接続されており、パケットルーティングを実行しないノード（例えば図３におけるノードＨ、ノードＫ）。
【００３１】
「非リーフノード」：ＡＬＭ−ＭＣＵノードに間接的に接続されており、自身のコンテンツパケットが他のＡＬＭノードによってルーティングされるＡＬＭノードまたは非ＡＬＭノード（例えば図３におけるノードＡ、ノードＢ、ノードＣ、ノードＤ）。
【００３２】
「ホップ長」：送信元ノードから送信先ノードまでの転送回数であり、「ホップカウント」または「ホップ（ホッピング）数」とも称する。本発明によると、送信元ノードと次の送信先ノードとの間のホッピング数を使用して、データのミキシング処理が制御される。
【００３３】
本実施の形態では、ＭＣＵノードによるＡＬＭベースでの分散型の選択的かつ動的なコンテンツミキシングが可能である。コンテンツエコーの原因となるコンテンツパケットのループを排除する目的で、ＡＬＭベースの動的なルーティングテーブル情報を使用して、アプリケーション層のコンテンツパケットを選択的にミックスする。特に、本実施の形態は、ＡＬＭ−ＭＣＵノードの間でのＡＬＭベースでの分散型の選択的かつ動的なコンテンツミキシングを実行する装置および方法を提供する。この技術は、例えば、経路コンバージェンスの遅延に起因するエンドツーエンドのパケット配信遅延を最小にし、コンテンツ（例えば音声）のエコーを最小にする目的で、リアルタイムの音声／ビデオ会議に適している。
【００３４】
ＡＬＭでは、アクティブなセッションにおける参加ノード（例えばＡＬＭノードおよびＡＬＭ−ＭＣＵノード）すべてが、グループのストリーミングデータを最良の経路を介してメンバー間でルーティングする役割を集合的に担うことが要求される。ＡＬＭノードは、会議セッションにおいてＡＬＭルーティング情報を使用してコンテンツパケットをルーティングする役割を担う。一方、ＡＬＭ−ＭＣＵノードは、コンテンツを別のＡＬＭノード、ＡＬＭ−ＭＣＵノード、またはエンドノードに転送することに加えて、コンテンツをミックスする。
【００３５】
ＡＬＭ転送テーブルなどのＡＬＭルーティング情報は、上述した２００８年１２月１日出願の日本国特許出願２００８−３０６６７１に記載されているように、個別のＡＬＭノードによって、またはＡＬＭノードのグループが協力することにより、ネットワークリソースおよびその他のリソースの変動に基づいて動的に構築される。この動的性の結果として、ＡＬＭセッションにおいて経路／方向が頻繁に変更される。
【００３６】
新たに構築されたＡＬＭ転送テーブルは、ＡＬＭセッションにおけるすべてのＡＬＭノードに配信される。本実施の形態では、このＡＬＭ転送テーブルを利用して、新規のテーブル（ＡＬＭミキシング転送（ＡＭＦ）テーブル、ミキシングホップ長（ＭＨＬ）テーブル、分散型ＡＬＭミキシングステータス（ＤＡＭＳ）テーブルを含む）を、実施の形態に記載した特定の方法に基づいて構築する。本実施の形態においては、ＡＬＭベースでの分散型の選択的かつ動的なミキシングを実行するＭＣＵの装置および関連する方法を開示する。
【００３７】
説明する装置では、コンテンツパケットのループ、または、ＡＬＭ−ＭＣＵノードにおけるコンテンツエコーにつながる重複が排除され、コンテンツエコーの低減および会議セッションの最小の遅延が達成され、ＡＬＭ経路に従ってミキシング負荷を分散させることが可能になる。
【００３８】
現在、ＡＬＭパケットのルーティングは、ＡＬＭルーティングテーブル情報に基づいて実行される。しかしながら、ＡＬＭ転送テーブルでは、ＡＬＭ−ＭＣＵノードによるコンテンツパケットのミキシング動作がまったく考慮されない。したがって、ＡＬＭ−ＭＣＵノードそれぞれが、受信するすべてのコンテンツパケットを、コンテンツの種類あるいはコンテンツの送信元を認識することなくミックスする。これによって、同じ送信元からの重複したコンテンツが、既にミックスされた形またはミックスされていない元の形で受信されるため、コンテンツエコー問題につながる。
【００３９】
したがって、本実施の形態は、動的なＡＬＭ経路の適合化によってエコーを排除し、コンテンツの遅延／ジッタを減少させる目的で、ＡＬＭベースでの分散型の選択的かつ動的なデータ（またはコンテンツ）のミキシングを実行する装置および方法を提供する。さらには、本実施の形態では、ＡＬＭ−ＭＣＵノードの経路に従ってミキシング負荷を分散させることも可能である。
【００４０】
このことは、本実施の形態において、上述したように、ＡＬＭルーティングテーブル情報を動的に分析し、パケットミキシングステータス情報を構築することによって達成される。ＡＬＭ−ＭＣＵノードは、コンテンツエコーを低減し、最小のパケット遅延を維持するために、パケットミキシングステータス情報を用いて、強制的または選択的コンテンツミキシングを実行する。一般的には、本実施の形態では、ＭＣＵノードは、ＡＬＭ技術を使用して、元のコンテンツパケットまたは一部分がミックスされたコンテンツパケットをＡＬＭ経路に沿って動的にルーティングすることで、最小のエンドツーエンド遅延と、ミキシング負荷の分散とを達成する。
【００４１】
以下では、概略図およびフロー図を参照しながら本実施の形態について詳しく説明する。さらに、本実施の形態では、例えば、本実施の形態を多地点間ビデオ会議システムに適用した状況を想定して説明を行う。多地点間ビデオ会議システムでは、一般的にはＭＣＵが利用される。
【００４２】
図１Ａは、ローカルネットワーク１３４，１３６，１３８，１４０に接続されている複数のＡＬＭノード１０２，１０４，１０６，１０８，１１０，１１２，１１４，１１６，１１８，１２０，１２２，１２４，１２６，１２８，１３０，１３２を示している。ローカルネットワーク１３４，１３６，１３８，１４０は、複数の異なるネットワークリンク１４２，１４４，１４６，１４８，１５２，１５０を介して相互接続することができる。最終的には、ＡＬＭセッションにおけるすべてのノードが１つのネットワークに接続され、ノード間の接続が有効になる。マルチメディアアプリケーション（例えば、各クライアントに属しているビデオ会議アプリケーション）は、ＡＬＭセッションにおいてＡＶストリームを相互間で同時に交換することができる。各ＡＬＭノード１６０（例えば図１ＡにおけるノードＡ）は、コンピュータシステムを備えており、例えば図１Ｂに示したように、プロセッサ１６２、入力／出力（Ｉ／Ｏ）ユニット１６４、コンピュータ可読媒体（例えばメモリユニット１６６およびストレージユニット１６８）を含んでいるハードウェア構成を有する。図１Ａに示した各ノードは、例えば、図１Ｃに示したように、携帯電話１７０、電話会議装置１７４、ＩＰ電話１７８、パーソナルコンピュータ（ＰＣ）１８２、テレビ会議装置１８６などの機器とすることができる。これらの機器１７０，１７４，１７８，１８２，１８６は、例えば図１Ｃに示したように、それぞれのリンク１７２，１７６，１８０，１８４，１８８を介してローカルネットワーク１９０に接続されている。
【００４３】
分散型の動的かつ選択的なコンテンツミキシング動作を実現するためには、ネットワークに２つ以上のＡＬＭ−ＭＣＵノードが存在しなければならない。図１Ａはこの状況を示しており、４つのＡＬＭ−ＭＣＵノード１０２，１１０，１１８，１３２が、それぞれ、ローカルネットワーク１３６，１３８，１４０，１３４の中にある。しかしながら、ＡＬＭ−ＭＣＵノードはネットワークの任意の部分に位置していることができ、同じローカルネットワーク内である必要もない。この配置は、Ｎ−ツリーアルゴリズムおよびＡＬＭノードのミキシング（ＭＣＵ）能力によって決定される。上述した２００８年１２月１日出願の日本国特許出願２００８−３０６６７１に記載されているグループメンバーシップ機能は、ＡＬＭセッションの形成を容易にする。ＡＬＭノードは、自身のコンテンツを、ＡＬＭセッション設定に基づいてネットワーク内の１つのＡＬＭ−ＭＣＵノードのみにストリーミングする。
【００４４】
ＡＬＭセッションにおいてローカルネットワークおよびＡＬＭノードを形成する方法の一例は、上述した２００８年１２月１日出願の日本国特許出願２００８−３０６６７１に記載されている。ＡＬＭノードの１つが、他のすべてのＡＬＭノードと通信することによって経路情報収集を実行し、それらのノードとの間でネットワーク情報を同時に交換することができる。このノードは、オーバーレイネットワークを形成するために使用される情報を収集する役割を担い、その情報をＡＬＭ転送テーブルの形式で他のすべてのノードに配信する。すべてのＡＬＭノードは、アプリケーション層においてデータパケットをマルチキャストするために、このオーバレイ情報を使用して互いの間でオーバーレイネットワークを形成する。
【００４５】
特に、本実施の形態は、ＡＬＭセッションにおけるすべてのＡＬＭ−ＭＣＵノードによって実行されるＡＬＭ−ＭＣＵ動作に関連する。以下では、ＡＬＭ−ＭＣＵノードにおいて発生する問題について、図２および図３を参照しながら説明する。
【００４６】
図２は、本実施の形態によるＡＬＭ転送テーブルの単純化した例を示しており、このテーブルを使用して問題について説明する。詳細なＡＬＭ転送テーブルは図６に示してあり、後からＡＬＭミキシング転送（ＡＭＦ）テーブルとして説明する。さらに、図２には、説明のみを目的として、図３を調べることによって、ホップカウント（またはホップ（ホッピング）数）を視覚的に示してある。上述したように、ホップカウントまたはホップ（ホッピング）数は、送信元ノードから送信先ノードまでの転送回数である。言い換えれば、ホップ数は、送信元ノードと送信先ノードとの間のノードの数である。送信先ノードが最後の送信先ノードである場合、本明細書においてはその送信先ノードを「エンドノード」とも称する。言い換えれば、ホップカウントは、データの送信元とデータの送信先との間の距離を測るために使用されるルーティングメトリックの１つであり、送信元から送信先までの経路に沿ってデータが通過するルータの数（および類似する機能を有するネットワーク装置の数）に等しい。図３は、図２に示す転送テーブルに対するＡＬＭ−ＭＣＵマルチメディアストリーミングのシナリオ例を示している。図４Ａ〜図４Ｄは、図３に示す４つのノードＡ〜Ｄが送信元であるときの、図２において連結されている４つの転送サブテーブルの情報内容を示している。ＡＬＭ転送テーブルは、図１０に示す、指定されたメッセージフォーマットを使用して、図９に示すようにＡＬＭノードによって交換される。図９および図１０については、後から詳しく説明する。
【００４７】
図２において、「ノード」列２０２はストリームの送信元を表しており、「次の送信先」（図中では場合によっては「次送信先」と略してある）列２５０は、例えば、転送されるストリームの次の送信先を表している。図２には、連結されている４つの転送サブテーブルが存在しており、すなわち、テーブル１は、「ノード」列２０２および「次の送信先」列２５０とそれらのフィールド２０４〜２１２および２５２〜２６０とを有し、テーブル２は、「ノード」列２１４および「次の送信先」列２６４とそれらのフィールド２１６〜２２４および２６４〜２７２とを有し、テーブル３は、「ノード」列２２６および「次の送信先」列２７４とそれらのフィールド２２８〜２３４および２７６〜２８２とを有し、テーブル４は、「ノード」列２３６および「次の送信先」列２８４とそれらのフィールド２３８〜２４８および２８６〜２９６とを有する。これらのテーブルは、図３および図４Ａ〜図４Ｄに示したように、４つのノード、すなわち、ノードＡ（３０２によって表してある）、ノードＢ（３０８によって表してある）、ノードＣ（３０６によって表してある）、ノードＤ（３０４によって表してある）を表している。これら４つのノードは、それぞれのノードを起点とする自身の配信ツリーを維持している。図４Ａ、図４Ｂ、図４Ｃ、図４Ｄは、それぞれ、テーブル１、テーブル２、テーブル３、テーブル４に対応している。各ノードの転送サブテーブル（テーブル１〜テーブル４）には、ＡＶパケットを転送するべき（１つまたは複数の）次のホップを記述する転送テーブル情報が含まれている。４つのノード（ノードＡ〜ノードＤ）すべては、いずれも同じＡＬＭ転送テーブルを受信する。各ノードは、これらのＡＬＭ転送テーブルを用いて、後述する、自身のＡＭＦテーブル、ＭＨＬテーブルおよびＤＡＭＳテーブル（それぞれ図６、図７、および図８を参照）を構築する。
【００４８】
具体的には、テーブル１は、図４Ａに示すノードＡのＡＬＭ転送サブテーブルを表している。このテーブルは次のように解釈することができる。送信元ノードＡ（フィールド２０４を参照）において生成されたＡＶパケットは、次の送信先であるノードＢ（フィールド２５２を参照）に転送される。次いで、ノードＢ（フィールド２０６を参照）は、受信したパケットを、コンテンツを複製することによって、次の送信先であるノードＣ（フィールド２５４を参照）およびノードＤ（フィールド２５６を参照）に転送する。ノードＣ（フィールド２１０を参照）およびノードＤ（フィールド２１２を参照）はエンドノードであるので、これらのノードはノードＡにおいて生成された受信パケット（フィールド２０４を参照）を転送しない（フィールド２５８およびフィールド２６０を参照）。したがって、テーブル１は、ノードＣおよびノードＤが、それぞれ、送信元ノードＡから１ホップ（ノードＢ）だけ離れていることを示している。
【００４９】
テーブル２は、図４Ｂに示すノードＢのＡＬＭ転送サブテーブルを表している。送信元ノードＢ（フィールド２１６を参照）において生成されたパケットが、次の送信先ノードであるノードＣ（フィールド２６４を参照）およびノードＤ（フィールド２６６を参照）に転送される。ノードＡ（フィールド２２０を参照）およびノードＣ（フィールド２２２を参照）は、エンドノードであるため、受信したパケットを転送しない（２６８，２７０）が、ノードＤ（フィールド２２４を参照）は、送信元ノードＢにおいて生成された受信パケットをノードＡ（フィールド２７２を参照）に転送する。したがって、テーブル２は、ノードＡが、送信元ノードＢから１ホップ（ノードＤ）だけ離れていることを示している。
【００５０】
テーブル３は、図４Ｃに示すノードＣのＡＬＭ転送サブテーブルを表している。送信元ノードＣ（フィールド２２８を参照）において生成されたパケットが、ノードＢ（フィールド２７６を参照）に転送される。ノードＡ（フィールド２３０を参照）は、送信元ノードＣからのすべてのパケットを消費し、ノードＢ（フィールド２３２を参照）およびノードＤ（フィールド２３４を参照）は、送信元ノードＣ（フィールド２２８を参照）において生成された受信パケットを、それぞれノードＤ（フィールド２８０を参照）およびノードＡ（フィールド２８２を参照）に転送する。したがって、テーブル３は、ノードＡが送信元ノードＣから２ホップ（ノードＢおよびノードＤ）だけ離れており、ノードＤが送信元ノードＣから１ホップ（ノードＢ）だけ離れていることを示している。
【００５１】
テーブル４は、図４Ｄに示すノードＤのＡＬＭ転送サブテーブルを表している。送信元ノードＤ（フィールド２３８を参照）において生成されたパケットが、ノードＡ（フィールド２８６を参照）、ノードＢ（フィールド２８８を参照）、およびノードＣ（フィールド２９０を参照）に転送される。ノードＡ（フィールド２４４を参照）、ノードＢ（フィールド２４６を参照）、およびノードＣ（フィールド２４８を参照）は、送信元ノードＤ（フィールド２３８を参照）から受信したすべてのパケットを消費し、それ以上は転送しない（フィールド２９２，２９４，２９６を参照）。したがって、テーブル４は、ノードＡ、ノードＢ、およびノードＣがノードＤに直接接続されており、送信元ノードＤから０ホップだけ離れていることを示している。
【００５２】
ＡＬＭ−ＭＣＵノードは、受信したコンテンツを、特定の次の送信先に転送する前にミックスする。ＡＬＭの場合におけるこの想定による問題について、図３および図４Ａ〜図４Ｄを一例として説明する。ＡＬＭ−ＭＣＵノード３０２，３０４，３０６，３０８それぞれは、自身のコンテンツと、すべてのリーフノードのコンテンツとをミックスした後、ＡＬＭ転送テーブルに基づいてそれを他のＡＬＭ−ＭＣＵノードに転送する役割を担う。図３および図４Ａ〜図４Ｄは、ＡＬＭ−ＭＣＵノード１０２，１１０，１１８，１３２（図１Ａを参照）それぞれについて、図２におけるＡＬＭ転送テーブルに基づいてパケットを転送する一連の動作を図解している。本実施の形態の説明全体を通じて、一例としてノードＢ（図３において３０８によって表してある）のミキシング動作について記載しているが、本発明はこの例に限定されない。
【００５３】
ノードＡのテーブル１を参照すると、ＡＶストリームは、ノードＡから経路３３４を介してノードＢに流れる（図３および図４を参照）。ノードＢは、（１）リンク３３６を介してのリーフノードＨ（３１０によって表してある）からのコンテンツ、（２）リンク３３４を介してノードＡから受信されるコンテンツ、（３）自身のコンテンツ（存在時）、（４）リンク３２８を介してノードＣから受信されるコンテンツ、（５）リンク３３２を介してノードＤから受信されるコンテンツ、をミックスする（該当する場合）（すなわち、この説明はすべてのタイプのＡＬＭテーブルにあてはまるが、図１３Ｂの例を反映させるためには、（１）〜（５）のうち適切に選択されるコンテンツのみがミックスされることを意味する）。ミックスされたコンテンツは、リンク３２４を介してノードＣに転送され、リンク３２２を介してノードＤに転送される（図３および図４Ｂを参照）。ノードＤは、リンク３２２を介してノードＢから受信したコンテンツを、リンク３１２を介してノードＡに転送する（図３および図４Ｂを参照）。さらに、ノードＢは、ミックスされたコンテンツ（ただしエコーを防止するためノードＨ自身のコンテンツを除く）を、（非ＡＬＭノードである）ノードＨにリンク３３８（図３を参照）を介して転送する役割も担う。
【００５４】
同様に、ノードＣは、リンク３１８を介してのノードＤからのコンテンツと、リンク３４０を介してのリーフノードＫ（３４４によって表してある）からのコンテンツとを受信し（図３および図４Ｄを参照）、これらを自身のコンテンツ（存在時）とミックスした後、ミックスされたコンテンツをリンク３２８を介してノードＢに転送する（図３および図４Ｃを参照）。さらに、ノードＣは、ノードＫのコンテンツを除いて、リンク３２６、リンク３２４、およびリンク３１８を介して受信したコンテンツすべてをミックスし、それをリンク３４２を介してノードＫに転送する役割も担う（図３を参照）。一方で、ノードＤは、リンク３２０、リンク３２２、およびリンク３３０を介してノードＢによって転送されたコンテンツ（図３および図４Ａ〜図４Ｃを参照）と、自身のコンテンツ（存在時）とをミックスした後、それをノードＡに転送する（図３および図４Ｂ〜図４Ｃを参照）。ノードＡは、リンク３１２、リンク３１４、およびリンク３１６を介して受信したコンテンツ（図３および図４Ｂ〜図４Ｄを参照）すべてをミックスした後、それをリーフノード（存在時）に転送する。
【００５５】
ＡＬＭ経路が認識されないミキシング（ミキシングを実行するノードは、ＡＬＭ経路ルーティングが変化しており、コンテンツ経路の切替えが起きていることを認識していない）を採用することによる、現在のＭＣＵのソリューションの問題は、例えば、ノードＢのコンテンツをノードＣのストリームとの関連において検討することによって観察することができる。ノードＢによってミックスされた、リンク３２４を介したコンテンツは、（リンク３３４＋リンク３３６＋リンク３２８＋リンク３３２を介して受信された）（（Ａ＋Ｈ）＋Ｃ＋Ｄ）のコンテンツとして表すことができる。しかしながら、Ｃのコンテンツは、（リンク３４０＋リンク３１８を介して受信された）（Ｋ＋Ｄ）のミックスされたコンテンツである。この場合、ノードＫは、ノードＤの重複したコンテンツをリンク３４２を介して受信し、これによってエコーが発生する。重複するコンテンツのミキシングを排除するためには、ＡＬＭ−ＭＣＵノードが、自身が処理するコンテンツと、使用される関連する経路とを認識している必要がある。
【００５６】
本実施の形態は、ミックスした後に元のＡＬＭ経路に沿って転送するべきコンテンツと、ミックスせずに転送するべきコンテンツとをインテリジェントに検出する（したがって最小の遅延および負荷分散を維持する）ことによって、ミキシングの問題を排除する。以下では、図５を参照して本実施の形態について詳しく説明する。
【００５７】
図５は、本発明の実施の形態に係るＡＬＭベースでの分散型の選択的かつ動的なミキシングを実行するＭＣＵの装置を示している。図５は、本実施の形態の主要な装置５００を示しており、この装置５００は、２つの主ユニットとして、ＡＬＭテーブル生成ユニット５０２とＡＬＭミキシングユニット５０４とを含んでいる。ＡＬＭテーブル生成ユニット５０２は、ＡＬＭメッセージ処理ユニット５６２と、ＡＬＭミキシング転送（ＡＭＦ）テーブルデータベース５０６と、ミキシングホップ長（ＭＨＬ）テーブルデータベース５０８と、分散型ＡＬＭミキシングステータス（ＤＡＭＳ）テーブルデータベース５１０と、ミキシングホップ長（ＭＨＬ）分析器５１２と、分散型ＡＬＭミキシングステータス（ＤＡＭＳ）テーブル生成器５１４とを含んでいる。ＡＬＭミキシングユニット５０４は、強制ミキシングユニット５３２と、選択的ミキシングユニット５６８とを含んでいる。強制ミキシングユニット５３２は、ＡＬＭ／非ＡＬＭ選択器５３８をさらに含んでいる。選択的ミキシングユニット５６８は、非リーフストリーム選択器５４０と、リーフストリーム選択器５４４と、ミキシングユニット５４６とをさらに含んでいる。この装置５００は、さらに、ルーティングエンジン５５２と転送ユニット５５４とを含んでいる。図６はＡＭＦテーブルの例を示しており、図７はＭＨＬテーブルの例を示しており、図８はＤＡＭＳテーブルの例を示している。
【００５８】
ＡＬＭテーブル生成ユニット５０２は、ＡＬＭ転送テーブルに関連する情報を処理する役割を担い、このＡＬＭ転送テーブルに関連する情報は、ＡＬＭミキシングユニット５０４の強制ミキシングユニット５３２および選択的ミキシングユニット５６８によって使用される。この処理は、例えば、ミキシングホップ長の系統的な分析を実行してＤＭＳＴテーブルを構築する（図１８の１８０４）ことによって為される。ＤＭＳＴテーブルはＡＶミキシング動作を決定する際に使用される（図１８の１８０６）。ＭＨＬ分析器５１２は、ミキシングホップ長の系統的な分析を実行して図７のＭＨＬテーブル７００を構築する。ＤＡＭＳテーブル生成器５１４は、図８のＤＭＳＴテーブル８００の構築を実行する。
【００５９】
図９は、ＡＬＭノード間のメッセージ交換手順を示しており、図１０は、ＡＬＭ−ＭＣＵメッセージのフォーマットを示している。ＡＬＭ−ＭＣＵノード９０８のＡＬＭメッセージ処理ユニット５６２は、図９に示すように、ＡＬＭ転送テーブル更新９１０およびＡＬＭセッションメッセージ９１２を、ＡＬＭ転送テーブル構築ノード９０２からインタフェース５６４を介して受信する。これらのテーブルあるいはメッセージは、帯域幅公平化ＡＬＭ転送テーブルディストリビュータ９０４（上述した２００８年１２月１日出願の日本国特許出願２００８−３０６６７１に記載されている）によって、ＡＬＭ−ＭＣＵノード９０８のＡＬＭメッセージ処理ユニット５６２に送られる。図１０は、ＡＬＭ−ＭＣＵメッセージのフォーマットを示しており、このフォーマットは、生成元ノードＩＰアドレスフィールド１００２と、タイムスタンプフィールド１００４と、タイプフィールド１００６と、ＡＬＭセッションメディア情報フィールド１００８（メディアタイプ、送信／受信ポート情報およびＩＰアドレスを含んでいる）、ＡＬＭ転送テーブルフィールド１０１０と、ＡＬＭ／非ＡＬＭステータスフィールド１０１２と、予約フィールド１０１４とを有する。タイプフィールド１００６は、そのメッセージが伝える情報のタイプ（例えば、ＡＬＭ転送テーブル更新９１０またはＡＬＭセッションメッセージ９１２）を定義する。
【００６０】
この場合、上記の装置は、ソフトウェア、ハードウェア、またはこれらの組合せとしてもよい。図１１は、構成の一例を示す。具体的には、図１１は、図５のＡＬＭベースでの分散型の選択的かつ動的なミキシングを実行するＭＣＵの装置を具体化したＡＬＭ−ＭＣＵ装置の例を示している。以下の説明では、適宜、図１１も使用する。
【００６１】
また、図５に示す装置は、図示しないが、例えば、ＣＰＵ（中央処理装置）と、制御プログラムを格納するストレージメディア（例：ＲＯＭ（読み取り専用メモリ））と、作業用メモリ（例：ＲＡＭ（ランダムアクセスメモリ））と、通信回路とによって実現することができる。図１Ｂを参照すると、ＣＰＵはプロセッサ１６２に対応し、ＲＯＭおよびＲＡＭは、コンピュータ可読媒体としてのメモリユニット１６６に対応し、通信回路はＩ／Ｏユニット１６４に対応する。この場合、上述した各部の機能は、ＲＯＭに格納されている制御プログラム（マルチキャスト通信プログラム）をＣＰＵが実行することによって実現される。
【００６２】
次に、上記構成を有する装置の動作について、図１８〜図２３を用いて詳しく説明する。図１８は、ＡＬＭベースでの分散型の選択的かつ動的なミキシングを実行するＭＣＵの動作の主たるステップを示しており、図１９は、ＭＨＬテーブル構築方法のステップを示しており、図２０は、ＤＡＭＳテーブル作成のステップを示しており、図２１は、ＡＬＭ−ＭＣＵノードのミキシング動作のステップを示しており、図２２は、強制ミキシング動作のステップを示しており、図２３は、選択的ミキシング動作のステップを示している。
【００６３】
図１９および図２０は、ＡＬＭテーブル生成ユニット５０２の主要なステップを示している。
【００６４】
ＡＬＭ転送テーブル更新９１０あるいはＡＬＭセッションメッセージ９１２を受信した時点で（１９０２）、図６に示すようなＡＭＦテーブル６００が構築され、ＡＬＭ／非ＡＬＭフィールド（列６１８）は、リンク５６４を介したＡＬＭセッションメッセージ９１２に基づいて、ＡＭＦテーブルデータベース５０６において更新される（１９０４）。
【００６５】
図６は、図２と比較して詳細なＡＭＦテーブルであり、完全な情報を含んでいる。図６では、テーブルのエントリは一般的な値であるが、説明を容易にするため図２の同じロジックが維持されている。列６０２は、ＡＭＦテーブルが位置している現在のＡＬＭ−ＭＣＵノードには関係なく、ＡＶコンテンツの生成元であるノードのＩＰアドレスを表している（例えば、図２のノードＡが、ノードＡのツリーソースとしてのエントリ６０４を表している）。列６１２は、特定のＡＶパケットの送信元アドレス（例：１３．１６８．５．２）を表しており、列６１４は、送信元のポート番号（１３．１６８．５．２：ｐｏｒｔ＃５５５５）を表しており、列６１６は、サポートされるトランスポートプロトコル（例：ＴＣＰまたはＵＤＰ）を表しており、列６１８は、チャネルタイプとしてＡＬＭまたは非ＡＬＭを表しており、列６２０は、次の送信先アドレス（例：１３．１６８．４．３）を表しており、最後の列６２２は、次の送信先のポート番号（例：１３．１６８．４．３：ｐｏｒｔ＃６６６６）を表している。フィールド６０４（ノードＡ）、フィールド６０６（ノードＢ）、フィールド６０８（ノードＣ）、およびフィールド６１０（ノードＤ）は、ＡＬＭツリーのルートを示している（ＡＬＭツリーは図２と同じである）。テーブルのエントリ６２４〜６６２それぞれは、ＡＬＭ転送テーブル更新９１０あるいはＡＬＭセッションメッセージ９１２情報に基づく、ＡＬＭセッションにおける各ノードの関連する転送テーブルを反映している。このテーブルは、ＡＬＭ転送テーブル更新９１０あるいはＡＬＭセッションメッセージ９１２情報に基づいて動的に変化する。
【００６６】
次に、ＭＨＬテーブルおよびＤＡＭＳテーブルの構築方法について、図５、図７、および図８に基づいて説明する。
【００６７】
いま、ＡＭＦテーブル６００（図６に示した）がすでに利用可能であるものと想定し、ＭＨＬテーブルの構築について説明する。ミキシングタイプ（ミキシングまたは転送）を決定してリーフノードを検出する目的で、ＭＨＬ分析器５１２は、リンク５１８を介してＡＭＦテーブル６００にアクセスしてＭＨＬテーブル７００（図７に示した）を構築する（１９０６）。図７に示したようなＭＨＬテーブル７００を構築することを目的とする。ＭＨＬ分析器５１２によってＭＨＬテーブル７００を構築する方法について説明する前に、ＭＨＬテーブルの構造を説明しておく。
【００６８】
図７において、列７０２はツリーソース情報のエントリであり、これは図６における列６０２のエントリと同じであり、列７０４〜７１２は次の送信先ノードアドレス情報のエントリであり、これらは図６における列６２０のエントリと同じである。行７２６は、ミキシングステータス情報を保持しており、行７２８は、次の送信先ノードそれぞれのステータス情報としてリーフまたは非リーフを保持している。
【００６９】
ＭＨＬ分析器５１２は、ＭＨＬテーブル７００を構築し、構築されたＭＨＬテーブル７００をリンク５２０を介してＭＨＬテーブルデータベース５０８に格納する。
【００７０】
以下では、本実施の形態の１つの特徴であるＭＨＬテーブルについて、図１２Ａおよび図１２Ｂと、図１３Ａ〜図１３Ｄとを用いて詳しく説明する。これらの図は、４つのノードを有する本実施の形態を示している。ＭＨＬテーブルは各ノード（自ノード）において作成されるため、本実施の形態においては、図１３Ａ〜図１３Ｄに示したような４つのＭＨＬテーブルが存在する。図１２Ａは、図３に対応しており、ノード間の転送経路を示している。図１２Ｂは、図２に対応しており、各ノードのルーティングテーブルを示している。図１３Ａ〜図１３Ｄは、図１２Ａおよび図１２Ｂのルーティングにおいて以下の規則に従ってノードＡ〜ノードＤによって作成されるＭＨＬテーブル（図７を参照）を示す。図１３Ａ〜図１３Ｄにおいて、縦列のＡ、Ｂ、Ｃ、Ｄは送信元ノードを表しており、横列のＡ、Ｂ、Ｃ、Ｄは次の送信先ノードを表している。「ミキシングステータス」は、各ノード（自ノード）が転送処理を実行するときの３つのステータス、すなわち、転送処理のみを実行するステータス（Ｆ）と、ミキシング処理を実行した後に転送処理を実行するステータス（ＭＦ）と、ミキシング処理および転送処理のいずれも実行しないステータス（Ｘ）、のうちの１つを示している。ステータス（Ｘ）は、自ノードにおいて音声もしくは映像またはその両方を再生する（すなわち、ローカルな消費のみを実行する）ことを意味する。「リーフ／非リーフ」ステータスは、次のＡＬＭ−ＭＣＵノードがそのＡＬＭ−ＭＣＵノードに直接的または間接的に接続されているかを示す。縦列のＡ、Ｂ、Ｃ、Ｄと横列のＡ、Ｂ、Ｃ、Ｄとが交差するフィールドは、データが転送される回数をホップ長として示している。これらのフィールドには、データが転送されず直接送信されるときにはホップ長「０」が示され、データが転送されるときには移送の回数に等しいホップ長を表す値（自然数１，２，３，．．．）が示される。データが直接送信されず、転送もされない場合、フィールドは空白である。
【００７１】
本実施の形態では、各ノード（自ノード）は、データを受信すると、ホップ長テーブルにおける次の送信先ノードに対する、複数の送信元ノード（自ノードを含む）に対応するホップ長の組合せに従って、ミキシングおよび転送処理を実行するか、転送処理のみを実行するか、あるいは（ミキシングまたは転送を行わず）受信したデータをそのまま保持する処理を実行する。ここで、ミキシング処理は、データの重複が起こる可能性がない場合にのみ実行される。本実施の形態において、ミキシングおよび転送を行わず受信したデータをそのまま保持する処理は、自ノードにおいて音声もしくは映像またはその両方を再生することを意味する。
【００７２】
具体的には、各ノード（自ノード）において、次の送信先ノードに対する「ミキシングステータス」は、以下の規則に従って決定される。
（１）フィールドがすべて空白の場合、ミキシング処理および転送処理のいずれも実行しない（「Ｘ」）
（２）フィールド内に０以外の複数の数値が存在する場合、ミキシング処理を実行せず転送処理のみを実行する（「Ｆ」）
（３）上のいずれでもない場合、ミキシング処理を実行した後に転送処理を実行する（「ＭＦ」）
【００７３】
例えば、図１３Ｂにおいて、組合せＣ１は、「１＋０＋空白」を示している。この場合、上の規則（３）に従ってミキシング処理を実行する（「ＭＦ」）。したがって、ノードＢ（自ノード）は、ノードＡからのコンテンツをノードＢのコンテンツとミックスし、次の送信先ノードＣに転送する。このようなミックスされたコンテンツ（Ａ＋Ｂ）は、ミキシングの後に分離することはできない。
【００７４】
これとは異なり、図１３Ｂにおいて、組合せＣ２は「１＋０＋１」を示している。この場合、上の規則（２）に従って、ミキシング処理を実行せずに転送処理のみを実行する（「Ｆ」）。したがって、ノードＢ（自ノード）において、ノードＡからのコンテンツとノードＣからのコンテンツは、ノードＢのコンテンツとミックスされず、次の送信先ノードＤに転送される。コンテンツＡ、コンテンツＢ、およびコンテンツＣは自ノードＢにおいてミックスされていないため、このような転送されたコンテンツ（Ａ，Ｂ，Ｃ）は、次の送信先ノードＤにおいて互いに分離することができる。この場合、ノードＢ（自ノード）において上記規則（２）に反してミキシング処理を実行するならば、ミックスされたコンテンツ（Ａ＋Ｂ＋Ｃ）が次の送信先ノードＤに転送される。ノードＤにおいては、図１３ＤのＣ３に示すように、コンテンツＢおよびコンテンツＣを次の送信先ノードＡに転送する必要がある。しかしながら、ミックスされたコンテンツ（Ａ＋Ｂ＋Ｃ）からは、コンテンツＢおよびコンテンツＣを分離することができない。ミックスされたコンテンツ（Ａ＋Ｂ＋Ｃ）がノードＤから次の送信先ノードＡに転送されると、コンテンツＡが重複し（＝重なり）、これに起因してエコーが生じる（自身の音声が２回聞こえる）。
【００７５】
同様に、図１３Ｄにおいて、組合せＣ３は「１＋２＋０」を示している。この場合、自ノードＤでは、上記規則（２）に従って、ミキシング処理が実行されずに転送処理のみが実行される（「Ｆ」）。したがって、ノードＤ（自ノード）において、ノードＢからのコンテンツおよびノードＣからのコンテンツがコンテンツＤとミックスされず、次の送信先ノードＡに転送される。自ノードＤにおいてコンテンツＢ、コンテンツＣ、およびコンテンツＤがミックスされていないため、このような転送されたコンテンツ（Ｂ，Ｃ，Ｄ）は、次の送信先ノードＡにおいて互いに分離することができる。
【００７６】
このように、データが重複する可能性がない場合にはミキシング処理が実行されるのに対し、複数の転送データが提供され、ミキシング処理を実行するとデータが重なる可能性がある場合、転送処理のみが実行される。こうすることで、受信側におけるエコーの発生に起因する通信品質の劣化を改善する一方で、チャネルの使用効率を最大限に高めることが可能となる。
【００７７】
なお、図１４Ａ，１４Ｂおよび図１５Ａ〜図１５Ｅは、５つのノードの場合における第１の例を示しており、図１６Ａ，１６Ｂおよび図１７Ａ〜図１７Ｅは、５つのノードの場合における第２の例を示している。
【００７８】
図１４Ａおよび図１６Ａは、ノード間の転送経路を示しており、図１４Ｂおよび図１６Ｂは、ノードにおけるルーティングテーブルを示しており、図１５Ａ〜図１５Ｅおよび図１７Ａ〜図１７Ｅは、それぞれ、ノードＡ〜ノードＥによって準備されるＭＨＬテーブルを示している。これらの図の見方は、４つのノードの場合の上の例と同じであり、図１５Ａ〜図１５Ｅおよび図１７Ａ〜図１７Ｅにおけるホップ長は、それぞれ、図１４Ｂおよび図１６Ｂにおけるルーティングテーブルによって定義されている。
【００７９】
結果として、例えば、図１５Ａにおける自ノードＡにおいて、次の送信先ノードＢおよび次の送信先ノードＥに対する「ミキシングステータス」は「ＭＦ」として決定される（すなわち、ミキシング処理および転送処理が実行される）。なぜなら、ミキシング処理を実行してもノードＡのデータが重なる可能性がないためである。同じ理由により、図１７Ａにおける自ノードＡにおいて、次の送信先ノードＢに対する「ミキシングステータス」は、「ＭＦ」として決定される。
【００８０】
一方、図１５Ｄにおける自ノードＤにおいて、送信元ノードＢ、送信元ノードＤ、送信元ノードＥから次の送信先ノードＣまでのホップ長は、それぞれ、「３」、「０」、「１」である。この場合、次の送信先ノードＣの列に０以外の複数の数値（すなわち「３」および「１」）が存在するため、「ミキシングステータス」は、上記規則（２）に従って「Ｆ」と決定される。したがって、送信元ノードＢ、送信元ノードＤ、および送信元ノードＥのコンテンツは、自ノードＤにおいてミックスされずに次の送信先ノードＣに転送される。同じ理由により、図１７Ｄの自ノードＤにおける次の送信先ノードＣに対する「ミキシングステータス」と、図１７Ｅの自ノードＥにおける次の送信先ノードＤに対する「ミキシングステータス」も、「Ｆ」として決定され、ミキシング処理なしに転送処理が実行される。
【００８１】
本実施の形態によると、ノードの数が５以上に増えても、受信側におけるエコーの発生に起因する通信品質の劣化を改善する一方で、チャネルの使用効率を最大限に高めることが可能である。
【００８２】
次に、図１９のステップ１９０８において、ＭＨＬテーブル７００を、各エントリ（図７における列７０４、行７１６から、列７１２、行７２４まで）の値を「０」とすることによって初期化した後、構築プロセスを開始する。ＭＨＬテーブル７００に値を入れるプロセス（１９１０）は、「ツリーソース」列６０２のすべてのエントリ（行６２４〜行６６２）が処理されるまで続行する（１９３２）。言い換えれば、ＭＨＬテーブル構築完了ステップ１９１０は、図１９のステップ１９３２において、以下のステップを実行することによって確認される。「ツリーソース」列６０２のすべてのフィールドについて、図６の行６２４〜行６６２のエントリすべてが調べられる。ＩＰ＃Ａ（ツリーソースフィールド６０４）から開始して、ＭＨＬテーブル（図７を参照）の各エントリを入力する（１９１４）。ＭＨＬテーブル７００の列７０２、行７１６のエントリとしてＩＰ＃Ａが入力される。次に、「ツリーソース」（６０２）の送信元アドレスフィールド（列６１２）に進む（１９１６）。ＡＭＦテーブル６００の「送信元アドレス」エントリそれぞれについて（１９１８）、それぞれに対する次の送信先アドレスフィールドを参照する（１９２２）。ＩＰ＃Ａの場合、このプロセスは、送信元アドレス（列６１２、行６２４）および送信先アドレス（列６２０、行６２４）から開始する。同様に、送信元アドレスに関連する次の送信先アドレスエントリすべてについて（１９２４）、送信元アドレスから送信先アドレスまでのホップカウントが実行される（１９３４）。例えば、ＩＰ＃Ａ（列６１２、行６２４）とＩＰ＃Ｂ（列６２０、行６２４）との間のホップカウントは「０」である、なぜなら、これらは直接接続されているためである。しかしながら、ＩＰ＃Ｃ（列６２０、行６２６）とＩＰ＃Ｄ（列６２０、行６２８）は、送信元アドレスＩＰ＃Ａ（列６１２、行６２４）から「１」ホップだけ離れている。
【００８３】
次に、ＭＨＬテーブル７００において、ツリーソースアドレスそれぞれにおける次の送信先ノードアドレス（７０４，７０６，７０８，７１０，７１２）のこのホップカウント情報が更新される（１９２８）。上記例に基づくと、ＩＰ＃ＣおよびＩＰ＃Ｄそれぞれのエントリ（列７１６、行７０８、および列７１６、行７１０）の値は「１」である。ＭＨＬテーブルの構築が完了した時点で、ＤＡＭＳテーブル８００が構築される（１９３０）。
【００８４】
ＤＡＭＳテーブル８００は、ＤＡＭＳテーブル生成器５１４がＭＨＬテーブルデータベース５０８にリンク５２２を介してアクセスすることによって構築される。構築されたＤＡＭＳテーブル８００は、ＤＡＭＳテーブルデータベース５１０にリンク５２４を介して格納される。
【００８５】
ＤＡＭＳテーブルの構築は、ＭＨＬテーブルの完成時、またはＭＨＬテーブルの更新時に開始される（２００２）。このプロセスでは、ＭＨＬテーブル７００の「送信先ノードアドレス」（７０４、７０６、７０８、７１０、７１２）のすべてのエントリについて（２００４）、各列を調べる（２００８）。「次の送信先ノードアドレス」行のすべてのエントリ値が「０」である場合（２０１２）、ＭＨＬテーブル７００のミキシングステータスフィールド（７２６）に、次の送信先が存在しないことを示す「Ｘ」が入力される（例：ＩＰ＃Ｂ）（２０１０）。０でないエントリ同士が同じではない場合（２０１４）（例：１，２，．．．などの組合せ）、ＭＨＬテーブル７００のミキシングステータスフィールド（７２６）に、ＡＬＭ−ＭＣＵノードが受信コンテンツすべてを転送することを示す「Ｆ」が入力される（例：ＩＰ＃Ａ）（２０１６）。０でないエントリ同士が同じである場合（例：すべてが「１」、またはすべてが「２」）、ＭＨＬテーブル７００のミキシングステータスフィールド（７２６）に、ＡＬＭ−ＭＣＵノードが受信コンテンツすべてをミックスして転送することを示す「Ｍ」が入力される（例：ＩＰ＃Ｃ、ＩＰ＃Ｄ）（２０２０）。
【００８６】
次に、ＭＨＬテーブルの特定の「次の送信先」における「リーフ／非リーフ」フィールド（７２８）のエントリを、ＮＬ（非リーフ）またはＬ（リーフ）のいずれかに編集する必要がある。ミキシングステータスが「Ｘ」または「Ｆ」である場合、「リーフ／非リーフ」フィールド（７２８）はＮＬ（非リーフ）に編集され（２０２４）、ミキシングステータスが「Ｍ」である場合、フィールド（７２８）はＬ（リーフ）となる（２０２２）。
【００８７】
上記プロセスは、ＭＨＬテーブル７００の「送信先ノードアドレス」（７０４、７０６、７０８、７１０、７１２）すべてが処理されるまで繰り返される（２０１８）。完了した時点で、ＤＡＭＳテーブル８００（図８）、具体的には「最終ミキシングステータス」列８０８を、更新する（２０２６）。
【００８８】
ＤＡＭＳテーブル８００は、複数の異なるツリーソース（８０４）ノードからのＡＶストリームそれぞれに対するＡＶ動作を決定する目的で特定のノード（例えばノードＢ（３０８））によって使用される。したがって、ＤＡＭＳテーブルを構築するノードは、自身のＤＡＭＳテーブル８００を構築する前に自己を識別しなければならない。
【００８９】
次に、自己の識別情報（８０２）を求める目的で、自身のＩＰアドレスを調べる（２０２８）。これは、自身のＩＰアドレスまたは任意の他のアドレス表現についてノードのローカルネットワークコンフィギュレーションファイルを参照することによって行われる。次に、ＤＡＭＳテーブルのエントリ列８０４に対応するＡＭＦテーブル６００の「ツリーソース」列６０２それぞれについて、ＤＡＭＳテーブル８００が更新される。この操作は、ＡＭＦテーブル６００の「送信元アドレス」フィールド（６１２）を参照し、ＭＨＬテーブル７００の「次の送信先ノードアドレス」（列７０２）（８０６）を参照することによって、自ノードアドレスの最後のエントリまで（２０３４）すべて実行する（２０３０）。ＭＨＬテーブル７００におけるミキシングステータス（７２６）を調べて（２０３６）、ＤＡＭＳテーブル８００のエントリ（８０８）に適切な値を入れる。
【００９０】
ミキシングステータスが「Ｘ」である場合（２０４６）、ＡＶコンテンツに何も行う必要がない（２０３８）。しかしながら、ミキシングステータスが「Ｍ」である場合（２０４８）、ミキシング動作が必要である（２０４０）。いずれでもない場合、ＡＶコンテンツは次の送信先に転送される（２０４４）。これらのステップは、ＤＡＭＳテーブル８００において「ツリーソース」および「次の送信先ノードアドレス」の最後のエントリに達するまで（２０５０）、各ノード自身によって繰り返される（２０４２，２０５２）。ＤＡＭＳテーブルの構築が完了した時点で、ＡＶパケットの処理を行うことができる。ミキシングステータスが「Ｍ」である場合（２０４８）、転送動作が実行され、したがって最終ミキシングステータス列が「ＭＦ」に編集される。
【００９１】
例えば、ノードＢが自身のＤＡＭＳテーブル８００を構築していると想定すると、ノードＢは、自身のＩＰアドレス（ＩＰ＃Ｂ）（８０２）を認識する必要がある。この想定下で、ノードＢは、ＭＨＬテーブル７００の特定のツリーソースアドレス列７０２を参照する。ＤＡＭＳテーブル８００の構築プロセスとして、最初に、エントリＩＰ＃Ａ（７１６）を参照し、行７１６におけるホップカウントエントリを調べる。ＩＰ＃Ｃ（列７０８、行７１６）およびＩＰ＃Ｄ（列７１０、行７１６）に「１」のエントリがあるため、ＤＡＭＳテーブル８００の次の送信先ノードアドレス（８０６，８１２，８１４）のエントリとしてＩＰ＃ＣおよびＩＰ＃Ｄを入れる。ＭＨＬテーブル７００のミキシングステータスのエントリ（列７０８、行７２６）および（列７１０、行７２６）が「Ｍ」であるため、最終ミキシングステータスが「ＭＦ」とマークされ、図２０に基づいて（２０４０，２０４４）、ミックスしたパケットが転送される。図７におけるツリーソース（７０２）すべてについて同じステップを実行する。
【００９２】
ＤＡＭＳテーブルの更新は、ＡＶパケットの処理とは独立したプロセスである。ＡＶパケットの処理は、ＤＡＭＳテーブルの現在の状態に基づいて実行される。
【００９３】
ＡＶのミキシングの実行（２０４０）のトリガーを受信した時点で（２１０２）、強制ミキシング（２１０４）または選択的ミキシング（２１０６）のいずれかが実行される。
【００９４】
強制ミキシングユニット５３２は、リンク５１６を介してＡＭＦテーブルデータベース５０６を参照することによって、他のＡＬＭ−ＭＣＵノード５５６からルーティングエンジン５５２によって受信されて自身に入力されるＡＶストリーム５５０をミックスする。ＡＬＭ／非ＡＬＭ選択器ユニット５３８は、ＡＬＭストリームと非ＡＬＭストリームとを識別する。強制的にミックスされたコンテンツは、リンク５３６を介して転送ユニット５５４に転送される。一方、ＡＬＭミキシングユニット５０４は、ＭＨＬテーブルデータベース５０８およびＤＡＭＳテーブルデータベース５１０をそれぞれのリンク５２６およびリンク５２８を介して参照し、他のＡＬＭ／エンドノードから直接受信されるＡＶストリーム５５０、または、強制ミキシングユニット５３２からのＡＶストリームをミックスする。
【００９５】
次に、選択的ミキシングユニット５６８（非リーフストリーム選択器ユニット５４０およびリーフストリーム選択器ユニット５４４を備えている）は、リンク５４２を介してそのまま転送されるＡＶストリーム、またはミキシングユニット５４６によってミックスされた後にリンク５４８を介して転送されるＡＶストリームを、分離する。最後に、すべてのＡＶストリームが転送ユニット５５４によってリンク５６０を介してルーティングエンジン５５２に転送され、ＡＬＭテーブル６００に基づいて次の送信先５５８に転送される。
【００９６】
図１１は、特定のミキシング動作として、図３の例に関連してノードＢ（３０８によって表してある）のＡＬＭ−ＭＣＵ動作を行う装置を示している。この装置は、ノードＢにおける分散型のＡＬＭ  ＡＶ会議アプリケーションのための動的かつ選択的ミキシングを維持しながらループの問題を排除する目的で適用される方法の実例を示している。強制ミキシングユニット１１２２および選択的ミキシングユニット１１６０は、それぞれ図５の５３２および５６８と同じであるが、より詳細に示してある。
【００９７】
前に定義したように、強制ミキシングステータスのＡＶストリームは、ＡＬＭ−ＭＣＵノードによってＡＭＦテーブル６００のみを参照してミックスされなければならない。一方、選択的ミキシングステータスのＡＶストリームは、ＡＬＭ−ＭＣＵノードによってＤＡＭＳテーブル８００およびＭＨＬテーブル７００に基づいてミックスされる。これら２つのミキシング動作は、それぞれ役割が異なる。強制ミキシングは、リーフノードが、ＡＬＭノードによってそのリーフノード自身のコンテンツを除いてミックスされたすべてのＡＶストリームを受け取るようにする。一方で、選択的ミキシングは、リーフノードからのＡＶストリームがミックスされる、もしくは次のノードに転送される、またはその両方であるようにする。
【００９８】
例えば、ノードＢ（３０８によって表してある）の場合、ノードＨが、ノードＨ自身のＡＶパケットを除く他のすべてのＡＶパケットを（リンク１１１６を介して）受け取るようにする必要がある。同様に、ノードＢに他のリーフノードが存在する場合、同じことがあてはまる（リンク１１１８を介する）。一方、それ以外のＡＶコンテンツは、リンク１１２０を介して選択的ミキシングユニット１１６０（５６８）に転送される必要がある。
【００９９】
ＡＶストリームは、ノードＡ（リンク１１０６経由）、ノードＣ（リンク１１０８経由）、ノードＤ（リンク１１１０経由）、ノードＨ（リンク１１１２経由）、および、他のリーフノード（リンク１１１４経由）（存在時）から受信される。ノードの参照記号については図３を参照されたい。すべてのＡＶストリームは、ＡＬＭ／非ＡＬＭ選択器１１３８からの入力に基づいてミキシングユニット１１０４にマッピングされる。図２２は、強制ミキシングユニット１１２２（５３２）の主要なステップを示している。ミキシング処理のトリガーを受信すると（２２０２）、ＡＭＦテーブルデータベース５０６に格納されているＡＭＦテーブル６００に基づいて、送信元アドレス６１２および送信元ポート番号６１４に関連するすべてのチャネル／ポートからのＡＶパケットが、ノードＢにおけるＡＶパケット処理に対して有効になる（２２０４，２２０６）。ＡＬＭ／非ＡＬＭ選択器１１３８は、リンク１１３４を介してＡＭＦテーブルデータベース５０６を参照してチャネルタイプ６１８を識別する（２２１２）。
【０１００】
非ＡＬＭチャネル選択器である場合（２２１８，２２１６）（例：１１１２，１１１４）、それ自身の非ＡＬＭ入力チャネルを除いて（２２３６）、ＡＬＭ入力チャネルおよび非ＡＬＭ入力チャネルのＡＶストリームをミックスし（２２３４）（例えば、非ＡＬＭチャネルＨ（リンク１１１６を介する）および他のリーフ（リンク１１１８を介する）のための１１０３および１１１７の動作）、これをすべての非ＡＬＭチャネルについて行う（２２３０）。ミックスされたＡＶコンテンツを、それぞれの非ＡＬＭチャネル／ポート１１１６および１１１８において出力する（２２３８）。ＡＬＭチャネル選択器である場合（２２１４，２２２０）、すべての非ＡＬＭチャネル／入力ストリームのＡＶコンテンツ（２２２４）がミックスされ（２２２６）、選択的ミキシングユニット１１６０（５６８）にリンク１１２０を介して転送される（２２２８）。すべての入力ポートについて（２２０６，２２１０）、ＡＭＦテーブル入力に基づいてＡＬＭのＡＶコンテンツおよび非ＡＬＭのＡＶコンテンツのミキシングが実行される。
【０１０１】
次に、図２３に示したステップにおいて、選択的ミキシングを実行するため（２３０２）、リンク１１２０を介しての強制ミキシングユニットのストリームと、リンク１１０６，１１０８，１１１０を介しての独立した入力ストリームとを識別する（２３０４）。次いで、選択的ミキシングを行うことができるように、リーフノード／非リーフノードを識別し、ＭＨＬテーブルを参照する。この目的のため、２３０６において、非リーフストリーム選択器１１２６、リーフストリーム選択器１１４６、およびＭＨＬ検出器１１４２が、ＭＨＬテーブルデータベース５０８およびＤＡＭＳテーブルデータベース５１０に、それぞれリンク１１３６およびリンク１１４０を介してアクセスする。ＤＡＭＳテーブル８００において、自ノードアドレスフィールド８０２および最終ミキシングステータスフィールド８０８が参照され（２３０８）、ＭＨＬテーブル７００において、リーフ／非リーフフィールド７２８が参照される（２３１０）。非リーフストリーム選択器１１２６、リーフストリーム選択器１１４６、およびＭＨＬ検出器１１４２の各ユニットは、これらのフィールド情報を使用して、すべてのリーフノードおよび非リーフノードのミキシングステータスを識別する（２３１２）。ＤＡＭＳテーブル８００の最終ミキシングステータスフィールド８０８は、ＡＶストリームが次のノードに転送される前に行われる実際の動作（何もしない、転送のみ、ミキシングおよび転送）を表している。
【０１０２】
次いで、リーフノードか否か（２３２８，２３１８）と、ミキシングステータス（２３１５）とに基づいて、以下のように決定を行う。リーフノードであり（２３１６）、ミキシングステータス（２３２８）が「Ｍ」である場合（２３３２）、すなわちＭＨＬテーブル７００の「リーフ」（７２８）ノードのうちＤＡＭＳテーブルにおいて「Ｍ」（８０８）として識別される入力ストリームに対して、「リーフストリーム選択器」ユニットにおいてミキシング動作が実行され（２３３６）、「Ｍ」ではない場合（２３３０）、入力ストリームに対して何も実行せずに（２３３４）、ＡＶコンテンツをその出力ポートに単に転送する（２３３８）。非リーフノードであり（２３１４）、ミキシングステータス（２３１８）が「Ｆ」である場合（２３２２）、すなわちＭＨＬテーブル７００の「非リーフ」（７２８）ノードのうちＤＡＭＳテーブルにおいて「Ｆ」として識別される入力ストリームに対して、「非リーフストリーム選択器」ユニットにおいて転送動作が実行され（２３２６）、「Ｆ」ではない場合（２３２０）、何もしない（２３２４）。ミキシング後のストリームまたはミキシング無しのストリームは、それぞれの出力ポートに転送される（２３３８）。
【０１０３】
図２、図３、図６、図７、および図８を参照し、ノードＡ（３０２）、ノードＣ（３０６）、およびノードＢ（３０８）のＡＶコンテンツは、ミキシングされずに、それぞれの出力ポート１１５０，１１５２，および１１５４において転送される。しかしながら、ノードＡからのコンテンツとノードＢからのコンテンツとがミキシングされ（１１５６）、出力ポート１１５８を介してノードＣに転送される。例えば、図３における問題は、本実施の形態において、このようにノードＡのコンテンツとノードＢのコンテンツのみをミックスすることで解決される。なぜなら、ノードＣはノードＤのコンテンツを独立して受信するためである。すなわち、図３において、ノードＢは、ノードＡからのコンテンツとノードＢ自身のコンテンツのみをミックスするべきであって、ノードＤあるいはノードＣからのコンテンツはミックスするべきでないことを認識していなければならない。ミキシングの問題を回避する目的で、この認識は、図１３Ｂに示したようにノードＢのＭＨＬテーブルから得られる。
【０１０４】
上述したソリューションにおいては、ＭＨＬテーブルおよびＤＡＭＳテーブルに基づいての選択的ミキシング動作によって、ＡＬＭベースのＡＶ会議セッションにおけるパケットループの問題が解決する一方で、ＡＭＦテーブル、ＭＨＬテーブル、およびＤＡＭＳテーブルを構築するときにＡＬＭテーブルを動的に参照することによって、継続的な動的性が確保される。
【産業上の利用可能性】
【０１０５】
本発明は、特に、音声会議システムおよびビデオ会議システムにおいて使用する目的で（ただしこれに限定されない）、データを複数のノード間でネットワークを介して受信および転送するマルチキャスト通信方法および装置に適用することができる。
【符号の説明】
【０１０６】
１６０  ＡＬＭノード
１６２  プロセッサ
１６４  入力／出力（Ｉ／Ｏ）ユニット
１６６  メモリユニット
１６８  ストレージユニット
５０２  ＡＬＭテーブル生成ユニット
５０４  ＡＬＭミキシングユニット
５０６  ＡＬＭミキシング転送（ＡＭＦ）テーブルデータベース
５０８  ミキシングホップ長（ＭＨＬ）テーブルデータベース
５１０  分散型ＡＬＭミキシングステータス（ＤＡＭＳ）テーブルデータベース
５１２  ミキシングホップ長（ＭＨＬ）分析器
５１４  分散型ＡＬＭミキシングステータス（ＤＡＭＳ）テーブル生成器
５３２  強制ミキシングユニット
５５２  ルーティングエンジン
５５４  転送ユニット
５６２  ＡＬＭメッセージ処理ユニット
５６８  選択的ミキシングユニット
６００  ＡＭＦテーブル
７００  ＭＨＬテーブル
８００  ＤＡＭＳテーブル
【図１Ａ】
2011524651.tif 000003
【図１Ｂ】
2011524651.tif 000004
【図１Ｃ】
2011524651.tif 000005
【図２】
2011524651.tif 000006
【図３】
2011524651.tif 000007
【図４】
2011524651.tif 000008
【図５】
2011524651.tif 000009
【図６】
2011524651.tif 000010
【図７】
2011524651.tif 000011
【図８】
2011524651.tif 000012
【図９】
2011524651.tif 000013
【図１０】
2011524651.tif 000014
【図１１】
2011524651.tif 000015
【図１２Ａ】
2011524651.tif 000016
【図１２Ｂ】
2011524651.tif 000017
【図１３Ａ】
2011524651.tif 000018
【図１３Ｂ】
2011524651.tif 000019
【図１３Ｃ】
2011524651.tif 000020
【図１３Ｄ】
2011524651.tif 000021
【図１４Ａ】
2011524651.tif 000022
【図１４Ｂ】
2011524651.tif 000023
【図１５Ａ】
2011524651.tif 000024
【図１５Ｂ】
2011524651.tif 000025
【図１５Ｃ】
2011524651.tif 000026
【図１５Ｄ】
2011524651.tif 000027
【図１５Ｅ】
2011524651.tif 000028
【図１６Ａ】
2011524651.tif 000029
【図１６Ｂ】
2011524651.tif 000030
【図１７Ａ】
2011524651.tif 000031
【図１７Ｂ】
2011524651.tif 000032
【図１７Ｃ】
2011524651.tif 000033
【図１７Ｄ】
2011524651.tif 000034
【図１７Ｅ】
2011524651.tif 000035
【図１８】
2011524651.tif 000036
【図１９】
2011524651.tif 000037
【図２０】
2011524651.tif 000038
【図２１】
2011524651.tif 000039
【図２２】
2011524651.tif 000040
【図２３】
2011524651.tif 000041
【国際調査報告】
2011524651.tif 000042
2011524651.tif 000043
2011524651.tif 000044