(57)【特許請求の範囲】
【請求項１】
上位下位の階層関係を有する複数の階層化データを準備する階層符号化手段と、
各受信ノードに対して、前記各受信ノードに送信する階層化データをそれぞれ一つ以上選択する選択手段と、
前記複数の階層化データの各々に対して、一つ上位の階層に属する階層化データに対する、受信ノードのアドレスからなるアドレスリスト内のアドレス列に、当該階層に属する階層化データを送信する受信ノードのアドレスを加えて、当該階層に対応するアドレスリストを生成するアドレスリスト生成手段と、
生成されたアドレスリストを対応する階層に属する階層化データにそれぞれ付与して、送信するパケットを生成するパケット生成手段と、
を備えるマルチキャスト配信装置。
【請求項２】
前記パケットは、ＸＣＡＳＴパケットである、請求項１記載のマルチキャスト配信装置。
【請求項３】
前記選択手段は、
前記各受信ノードから受信したフィードバック情報に基づいて、前記各受信ノードに送信する階層化データをそれぞれ選択する、
請求項１記載のマルチキャスト配信装置。
【請求項４】
前記アドレスリスト生成手段は、
一つ上位の階層に属する階層化データに対するアドレスリスト内のアドレス列に当該階層に属する階層化データを送信する受信ノードのアドレスを加える際に、加えるアドレスに対応する受信ノードの送信可能レートに基づいて、加えるアドレスの順序付けを行う、
請求項１記載のマルチキャスト配信装置。
【請求項５】
上位下位の階層関係を有する複数の階層化データを準備するステップと、
各受信ノードに対して、前記各受信ノードに送信する階層化データをそれぞれ一つ以上選択するステップと、
前記複数の階層化データの各々に対して、一つ上位の階層に属する階層化データに対する、受信ノードのアドレスからなるアドレスリスト内のアドレス列に、当該階層に属する階層化データを送信する受信ノードのアドレスを加えて、当該階層に対応するアドレスリストを生成するステップと、
生成したアドレスリストを対応する階層に属する階層化データにそれぞれ付与して、送信するパケットを生成するステップと、
を有するマルチキャスト配信方法。
【請求項６】
上位下位の階層関係を有する複数の階層化データを準備するステップと、
各受信ノードに対して、前記各受信ノードに送信する階層化データをそれぞれ一つ以上選択するステップと、
前記複数の階層化データの各々に対して、一つ上位の階層に属する階層化データに対する、受信ノードのアドレスからなるアドレスリスト内のアドレス列に、当該階層に属する階層化データを送信する受信ノードのアドレスを加えて、当該階層に対応するアドレスリストを生成するステップと、
生成したアドレスリストを対応する階層に属する階層化データにそれぞれ付与して、送信するパケットを生成するステップと、
をコンピュータに実行させるマルチキャスト配信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチキャスト配信装置およびマルチキャスト配信方法に関し、特に、明示的マルチキャスト方式を用いた階層化マルチキャスト方式におけるマルチキャスト配信装置およびマルチキャスト配信方法に関する。
【背景技術】
【０００２】
近年、インターネットを利用した映像配信などで、１つの送信ノードが複数の受信ノードに対して同一内容のパケットを送信する機会が数多く見られる。このような場合に送信ノードがユニキャスト方式で配信を行うと、送信ノードの送信するデータ量が受信ノード数に比例して大きくなってしまう。このような場合、送信ノードはマルチキャスト方式によって配信を行うことが多い。マルチキャスト方式では、経路の途中にあるルータが必要に応じてパケットを複製するため、送信ノードは１つのパケットを送信するだけでよく、帯域を効率的に利用することができる。
【０００３】
マルチキャスト方式の配信では、受信ノードの利用可能帯域がそれぞれ異なるため、送信ノードが特定の受信ノードに合わせてデータを送信すると、その他の受信ノードは帯域を効率的に利用することができないという問題がある。この問題を解決する方式の一つに、階層化マルチキャスト方式がある。
【０００４】
階層化マルチキャスト方式では、まず、カメラなどから入力される映像信号などを基にして、基本階層と一つ以上の差分階層とから成る階層化されたデータが、階層符号化技術を利用して作成される。作成された階層化データは複数の受信ノードに配信される。このとき、受信ノードは、基本階層の階層化データに加え、自身の性能や通信環境、希望する映像品質などに応じて適切な差分階層の階層化データを受信する。一般的に、受信ノードは、受け取る差分階層の階層化データを増やすことで、より高品質な映像を再生できるようになる。
【０００５】
階層化マルチキャスト方式では、送信ノードは、複数の受信ノードを送信先として設定する際に、抽象的なグループマルチキャストアドレスを用いるのが一般的である。一方、特許文献１では、階層化マルチキャスト方式の配信において、送信ノードが明示的マルチキャスト方式を用いて送信先を設定する方法が開示されている。
【０００６】
ここで、特許文献１記載の発明について説明する前に、まず明示的マルチキャスト方式について説明する。
【０００７】
ＸＣＡＳＴに代表される明示的マルチキャスト方式は、パケットのオプションヘッダまたはペイロードに送信先となる複数の受信ノードのユニキャストアドレスを記述することで、送信ノードが受信ノードを明示的に指定するマルチキャスト方式である（非特許文献１参照）。以下、明示的マルチキャスト方式の例として、ＸＣＡＳＴについて図を参照しながら説明する。
【０００８】
図５は、ＸＣＡＳＴを説明するための通信ネットワークの概要を示す図である。図６は、ＸＣＡＳＴ方式のパケットの概略構成を示す図である。
【０００９】
図５の通信ネットワーク１は、１台の送信ノード１０と、５台の受信ノード２０〜２４と、３台のルータ３０〜３２とから構成されている。
【００１０】
送信ノード（Ｓ）１０は、入力した原データを階層符号化して階層化データを作成し、作成した階層化データに送信先アドレスなどの情報を付与してパケットを生成する。また、生成したパケットを通信ネットワーク１上に送信する。
【００１１】
受信ノード（Ｒ１〜Ｒ５）２０〜２４は、送信ノード１０が配信したパケットを受信する。また、受信したデータをデコードし、基本階層のデータと差分階層のデータを合成する。
【００１２】
ルータ３０〜３２は、パケットに含まれる送信先アドレス情報に基づいてルーティングを行う。
【００１３】
この通信ネットワーク１において、送信ノード１０が、第１受信ノード（Ｒ１）２０、第３受信ノード（Ｒ３）２２および第４受信ノード（Ｒ４）２３にパケットを送信する場合を想定する。送信ノード１０が作成するパケットは、例えば、図６（Ａ）のようになる。
【００１４】
図６（Ａ）に示すように、ＸＣＡＳＴ方式によるＩＰｖ６パケット４０は、ユニキャストヘッダ４１と、ルーティングヘッダ４２と、ペイロード４３とを有する。実際には、他のヘッダも有するが、説明の便宜上、ここでは説明しない。
【００１５】
ユニキャストヘッダ４１は、宛先アドレスと送信元アドレスとをそれぞれ一つずつ記述する領域である。例えば、図６（Ａ）のパケット４０では、宛先アドレスとしてＲ１のアドレスが（dst=R1）、送信元アドレスとしてＳのアドレスが(src=S)、それぞれ記述されている。ユニキャストヘッダ４１に記述される宛先アドレスは、後述するルーティングヘッダ４２に記述されるアドレスの中で未配送かつ最上位のアドレスである。ユニキャストヘッダ４１に受信ノードのユニキャストアドレスを一つ記述しておくことで、経路上のルータがＸＣＡＳＴに未対応の場合でも、このルータは、ＸＣＡＳＴ方式のパケット４０をユニキャスト方式のパケットとして認識し、ユニキャストアドレスが指し示す受信ノードへ向けてパケットを転送することができる。
【００１６】
ルーティングヘッダ４２は、送信先となる受信ノードのアドレスリストを記述する領域である。また、各受信ノードのアドレスに対して未配送か配送済みかを示すフラグも含まれる。図６（Ａ）のパケット４０では、第１受信ノード（Ｒ１）、第３受信ノード（Ｒ３）および第４受信ノード（Ｒ４）のアドレスが記述されている。アドレスリスト内のアドレスには、順序があり、例えば、図６（Ａ）のパケット４０では、図の左側に位置するＲ１が最上位、右側に位置するＲ４が最下位である。前述のとおり、ルーティングヘッダ４２内の未配送かつ最上位のアドレスが、ユニキャストヘッダ４１内に宛先アドレスとして記述される。
【００１７】
ペイロード４３は、映像データなどの、送信したいデータ本体である。
【００１８】
次に、図５の通信ネットワーク１において、送信ノード１０が、第１受信ノード２０、第３受信ノード２２および第４受信ノード２３に、図６（Ａ）のパケット４０を送信する場合における各ルータの動作を説明する。なお、ここでは、説明の便宜上、ユニキャストパケットへの最適化については考慮しない。
【００１９】
まず、送信ノード１０は、図６（Ａ）のパケット４０を第１ルータ３０に送信する。
【００２０】
第１ルータ３０は、受信したパケット４０内のアドレスリストを参照して、パケット４０の分割・複製および転送を行う。この場合、図６（Ａ）のパケット４０は、第３受信ノード（Ｒ３）および第４受信ノード（Ｒ４）のアドレスを配送済みにした第１受信ノード（Ｒ１）宛のパケット４４（図６（Ｂ））と、第１受信ノード（Ｒ１）のアドレスを配送済みにし、さらに、ユニキャストヘッダの宛先アドレスを第３受信ノード（Ｒ３）のアドレスに置換した第３受信ノード（Ｒ３）および第４受信ノード（Ｒ４）宛のパケット４５（図６（Ｃ））とに分割・複製される。パケットの分割・複製を終えた後、パケット４４は、第１受信ノード２０へ送信され、パケット４５は、第２ルータ３１に転送される。
【００２１】
第２ルータ３１は、第１ルータ３０と同様に、受信したパケット４５内のアドレスリストを参照して、パケット４５の分割・複製および転送を行う。この場合、パケット４５は、第３受信ノード（Ｒ３）宛のパケット４６（図６（Ｄ））と、第４受信ノード（Ｒ４）宛のパケット４７（図６（Ｅ））とに分割・複製される。パケットの分割・複製を終えた後、パケット４６は、第３受信ノード２２へ送信され、パケット４７は、第３ルータ３２に転送される。
【００２２】
第３ルータ３２は、第１ルータ３０および第２ルータ３１と同様に、受信したパケット４７内のアドレスリストを参照して、パケット４７の分割・複製および転送を行う。この場合、パケット４７は、そのまま第４受信ノード２３に転送される。
【００２３】
このように、通信ネットワーク内の各ルータがＸＣＡＳＴに対応している場合、各ルータは、受信したパケット内のアドレスリストを参照してパケットの分割・複製および転送を行いながら、各受信ノードにパケットを効率的に配送する。
【００２４】
次に、通信ネットワーク内のルータがＸＣＡＳＴに未対応の場合における、ルータおよび受信ノードの動作を説明する。ここでは、図５の全てのルータ３０〜３２がＸＣＡＳＴに未対応である場合を想定する。送信ノード１０が、第１受信ノード２０、第３受信ノード２２および第４受信ノード２３に、図７（Ａ）のパケット４８（図６（Ａ）のパケット４０と同じもの）を送信する場合について説明する。
【００２５】
まず、送信ノード１０は、パケット４８を第１ルータ３０に送信する。第１ルータ３０は、ユニキャストヘッダ４１内の宛先アドレスを参照して、パケット４８を転送する。この場合、パケット４８は、ユニキャストヘッダ４１内に記述されている第１受信ノード２０に転送される。
【００２６】
第１受信ノード２０は、パケット４８を受信するとともに、アドレスリストに記述されているアドレスを参照して、新たなパケット４９（図７（Ｂ））を生成する。具体的には、パケット４８のアドレスリスト内の第１受信ノード（Ｒ１）のアドレスが配送済みにされる。同時に、ユニキャストヘッダ４１内の宛先アドレスが、第１受信ノード（Ｒ１）２０のアドレスからアドレスリスト内で未配送かつ最上位の第３受信ノード（Ｒ３）２２のアドレスに置換される。新たに生成されたパケット４９は、第１ルータ３０に送信される。
【００２７】
第１ルータ３０は、ユニキャストヘッダ４１内の宛先アドレスを参照して、パケット４９を転送する。この場合、パケット４９は、ユニキャストヘッダ４１内に記述されている第３受信ノード２２に向けて、第２ルータ３１に転送される。同様に、第２ルータ３１は、ユニキャストヘッダ４１内の宛先アドレスを参照して、パケットを第３受信ノード２２に送信する。
【００２８】
第３受信ノード２２は、第１受信ノード２０と同様に、パケット４９を受信するとともに、アドレスリストに記述されているアドレスを参照して、新たなパケット５０（図７（Ｃ））を生成する。新たに生成されたパケット５０は、第２ルータ３１に送信される。
【００２９】
第２ルータ３１および第３ルータ３２は、前記第１ルータ３０および第２ルータ３１と同様に、ユニキャストヘッダ４１内の宛先アドレスを参照して、パケット５０を第４受信ノード２３へ転送する。
【００３０】
このように、通信ネットワーク内のルータがＸＣＡＳＴに未対応の場合、そのルータは、パケットの分割・複製を行わず、ユニキャスト方式のパケットとしてパケットをユニキャストヘッダに記述された受信ノードに向けて転送する。ユニキャストヘッダ内の宛先アドレスの記述は、ルーティングヘッダ内のアドレスリストの順序に従う。したがって、パケットの配送は、受信ノード間のパケット転送によって行われ、その配送順序は、送信ノードがルーティングヘッダに記述したアドレスリストの順序に依存することになる。
【００３１】
以上のように、明示的マルチキャスト方式は、パケットのオプションヘッダまたはペイロードに送信先となる複数の受信ノードのアドレスを記述することで、送信ノードが受信ノードを明示的に指定するマルチキャスト方式である。また、特にＸＣＡＳＴの場合、通信ネットワーク内のルータがＸＣＡＳＴに未対応でも、ユニキャスト方式のパケットとして、ルーティングヘッダに記述したアドレスリストの順序でパケットを配送することができる。
【００３２】
ここで、特許文献１に記載の発明について説明する。特許文献１には、階層化マルチキャスト方式によって流量制御を行う際に、明示的マルチキャスト方式を用いてパケットの配信先を設定する方法（プログラム、装置）が記載されている。
【００３３】
この方法では、受信ノードは、受信したパケットのシーケンス番号からパケット損失発生などを判断し、定期的または輻輳発生時に受信状況のフィードバックを送信ノードに対して行う。このフィードバック情報には、パケットの損失状況の他に、フィードバックを行う契機となったパケットに記述された送信時刻を表すタイムスタンプ（送信時刻を示すタイムスタンプは送信ノードにより付与される）が含まれる。送信ノードは、このフィードバック情報から各受信ノードのパケット損失状況および送信ノードから各受信ノードまでの遅延情報を取得し、これらの値を用いてそれぞれの受信ノードに対する送信可能なレートを算出した後、各受信ノードが受け取るべき階層化データの階層を決定する。そして、送信ノードは、それぞれの階層でのパケット配送において、送信先となる受信ノードのアドレスリストを付与したパケットの送信を行う。
【００３４】
以下、特許文献１記載の発明における送信ノードの動作について、図５の通信ネットワーク１を用いて具体的に説明する。なお、複数の階層化データがデータの受信および合成に関して依存関係を有する場合、より高品質なデータを受信・再生するために必要となる差分階層を上位階層、逆に、上位階層を合成するために必要となる階層を下位階層とする。
【００３５】
図８は、階層化マルチキャスト方式の通信における階層構成の一例を示す表である。階層Ｃは、最下位階層にあたる基本階層であり、２Ｍｂｐｓのデータを生成する。階層Ｂは、階層Ｃより上位階層にあたる差分階層であり、８Ｍｂｐｓのデータを生成する。階層Ａは、最上位階層にあたる差分階層であり、１５Ｍｂｐｓのデータを生成する。
【００３６】
図５の通信ネットワーク１において、まず、送信ノード１０は、各受信ノード２０〜２４からのフィードバック情報に基づいて各受信ノード２０〜２４に対する送信可能レートを算出する。求めた送信可能レートに基づいて、各受信ノード２０〜２４に送信する階層化データの階層を設定する。例えば、階層構成が図８に示される場合、かつ各受信ノード２０〜２４の送信可能レートが図９に示される場合を想定する。この場合、送信ノード１０は、各受信ノード２０〜２４に送信する階層を、図１０（Ａ）に示すように決定する。
【００３７】
次に、送信ノード１０は、各階層について、各受信ノード２０〜２４のアドレスを送信可能レートの低い順に並び替え、各階層のアドレスリストに記述されるアドレスの順序を下位の階層から決定する。その結果、各受信ノード２０〜２４の送信可能レートが、図９に示す送信可能レート７２の場合、各階層におけるアドレスの順序は、図１０（Ｂ）の受信ノード（アドレス）６３に示すようになる（左側が上位）。
【００３８】
最後に、送信ノード１０は、上記手順でアドレスを並び替えたアドレスリストを含むヘッダを各階層の階層化データにそれぞれ付与し、ネットワークへ送信する。ネットワーク上に送信された各階層のパケットは、明示的マルチキャスト方式の手順で各受信ノードへ配送される。
【００３９】
以上のように、特許文献１記載の方法では、階層化マルチキャスト方式の配信において送信ノードが明示的マルチキャスト方式で送信先を指定することで、マルチキャストグループの管理および制御に関するコストを削減することができ、また、ネットワークのジッタの影響によるデータの誤破棄を防止することができる。さらに、送信ノードは各受信ノードに対して流量制御を行うことができ、受信ノードは自身の通信環境に応じたデータを受信・再生することができる。
【特許文献１】特開２００２−３５４０３３号公報
【非特許文献１】R. Boivie, N. Feldman, Y. Imai, W. Livens, D. Ooms, O. Paridaens, E. Muramoto, "Explicit Multicast (Xcast) Basic Specification", draft-ooms-xcast-basic-spec-07.txt, Jan. 2005.
【発明の開示】
【発明が解決しようとする課題】
【００４０】
しかしながら、特許文献１記載の方法にあっては、明示的マルチキャスト方式に対応していないルータが経路上に存在する場合、複数の階層の階層化データを受信する受信ノードが、階層間における信号同期をとることが難しくなるという問題がある。
【００４１】
明示的マルチキャスト方式としてＸＣＡＳＴを用いた場合に生じる上記問題点について、以下、図面を参照しながら具体的に説明する。
【００４２】
前述のように、特許文献１記載の方法では、アドレスリストは下位の階層から作成され、さらに、各階層において、受信ノードのアドレスは、受信能力の低い順にアドレスリストに記述される。したがって、図１０（Ｂ）に示すように、送信可能レートの高い受信ノードのアドレスは、上位階層のアドレスリストでは上位に位置するが（階層Ａでは、Ｒ１は１番目、Ｒ２は２番目）、下位階層のアドレスリストでは下位に位置することになる（階層Ｃでは、Ｒ１は４番目、Ｒ２は５番目）。このように、特許文献１の方法では、各階層のアドレスリストに記述されるアドレスの順序はそれぞれ異なる。
【００４３】
このようにアドレスの順序に違いがある場合であっても、送信ノードから受信ノードまでの経路上のルータがＸＣＡＳＴに対応していれば、特に大きな問題は生じない。しかしながら、経路上にＸＣＡＳＴに対応するルータが十分に存在しない場合、以下に示す問題が生じる。
【００４４】
ＸＣＡＳＴに未対応のルータは、前述のように、ＸＣＡＳＴ方式のパケットをユニキャスト方式のパケットとして扱う。すなわち、ＸＣＡＳＴに対応するルータが通信ネットワーク上に十分に存在しない場合、各階層のパケットは、それぞれのアドレスリストに記述されたアドレスの順序で受信ノード間を転送されることになる。図１０（Ｂ）に示される例では、基本階層である階層Ｃのパケット配送経路は、第５受信ノード２４→第４受信ノード２３→第３受信ノード２２→第１受信ノード２０→第２受信ノード２１となり、階層Ｂのパケット配送経路は、第４受信ノード２３→第３受信ノード２２→第１受信ノード２０→第２受信ノード２１となり、階層Ａのパケット配送経路は、第１受信ノード２０→第２受信ノード２１となる。このように各階層におけるアドレスリストの順序に違いがある場合、各階層のパケットの配送経路が異なることになるので、任意の受信ノードに対する各階層のパケットの配送にかかる時間が異なってしまう。例えば、第２受信ノード２１は、階層Ａのパケットは２番目に届くが、階層Ｃのパケットは５番目に届くので、階層Ａのパケットとそれに対応する階層Ｃのパケットの受信タイミングがずれてしまう可能性が高い。
【００４５】
このように、特許文献１記載の方法にあっては、ＸＣＡＳＴに対応していないルータが経路上に存在する場合、階層ごとにパケットの配送経路と配送にかかる時間が異なるため、複数の階層のデータを受信する受信ノードが階層間における信号同期をとることが難しくなるという問題があった。また、パケットの配送経路が階層ごとに異なると、配送経路に依存するパケット損失率や送信ノードと受信ノードとの間のパケット往復時間なども階層ごとに異なるため、送信ノードが、これらの情報を基に算出する送信可能レートを一意に決められず、受信ノードに対して正確な流量制御を行うことが難しくなるという問題もあった。
【００４６】
本発明は、かかる点に鑑みてなされたものであり、明示的マルチキャスト方式に対応していないルータが経路上に存在する場合であっても、受信側において階層間の信号同期を容易にとることができ、また、送信側において正確な流量制御を行うことができるマルチキャスト配信装置、マルチキャスト配信方法およびマルチキャスト配信プログラムを提供することを目的とする。
【課題を解決するための手段】
【００４７】
本発明のマルチキャスト配信装置は、上位下位の階層関係を有する複数の階層化データを準備する階層符号化手段と、各受信ノードに対して、前記各受信ノードに送信する階層化データをそれぞれ一つ以上選択する選択手段と、前記複数の階層化データの各々に対して、一つ上位の階層に属する階層化データに対する、受信ノードのアドレスからなるアドレスリスト内のアドレス列に、当該階層に属する階層化データを送信する受信ノードのアドレスを加えて、当該階層に対応するアドレスリストを生成するアドレスリスト生成手段と、生成されたアドレスリストを対応する階層に属する階層化データにそれぞれ付与して、送信するパケットを生成するパケット生成手段と、を備える構成を採る。
【００４８】
本発明のマルチキャスト配信方法は、上位下位の階層関係を有する複数の階層化データを準備するステップと、各受信ノードに対して、前記各受信ノードに送信する階層化データをそれぞれ一つ以上選択するステップと、前記複数の階層化データの各々に対して、一つ上位の階層に属する階層化データに対する、受信ノードのアドレスからなるアドレスリスト内のアドレス列に、当該階層に属する階層化データを送信する受信ノードのアドレスを加えて、当該階層に対応するアドレスリストを生成するステップと、生成したアドレスリストを対応する階層に属する階層化データにそれぞれ付与して、送信するパケットを生成するステップと、を有するようにした。
【００４９】
本発明のマルチキャスト配信プログラムは、上位下位の階層関係を有する複数の階層化データを準備するステップと、各受信ノードに対して、前記各受信ノードに送信する階層化データをそれぞれ一つ以上選択するステップと、前記複数の階層化データの各々に対して、一つ上位の階層に属する階層化データに対する、受信ノードのアドレスからなるアドレスリスト内のアドレス列に、当該階層に属する階層化データを送信する受信ノードのアドレスを加えて、当該階層に対応するアドレスリストを生成するステップと、生成したアドレスリストを対応する階層に属する階層化データにそれぞれ付与して、送信するパケットを生成するステップと、をコンピュータに実行させるものである。
【発明の効果】
【００５０】
本発明によれば、明示的マルチキャスト方式に対応していないルータが経路上に存在する場合であっても、受信側（受信ノード）において階層間の信号同期を容易にとることができ、また、送信側（送信ノード）において正確な流量制御を行うことができる。
【発明を実施するための最良の形態】
【００５１】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。本発明では単にパケットと記載する場合、明示的マルチキャスト方式のパケットを指す。なお、複数の階層化データがデータの受信および合成に関して依存関係を有する場合、より高品質なデータを受信・再生するために必要となる差分階層を上位階層、逆に、上位階層を合成するために必要となる階層を下位階層と記述する。
【００５２】
図１は、本発明の一実施の形態に係るマルチキャスト配信装置の構成を示すブロック図である。図２は、図１に示すマルチキャスト配信装置の動作を説明するための通信ネットワークの概要を示す図である。
【００５３】
図２において、通信ネットワーク２００は、図１の構成を有するマルチキャスト配信装置１００と、５台の受信ノード３００〜３４０と、３台のルータ４００〜４２０とから構成されている。
【００５４】
受信ノード（Ｒ１〜Ｒ５）３００〜３４０は、マルチキャスト配信装置１００が配信した各階層のパケットを受信する。また、受信ノード３００〜３４０は、受信したデータをデコードし、基本階層のデータと差分階層のデータを合成する。
【００５５】
ルータ４００〜４２０は、パケットに含まれる送信先アドレス情報に基づいてルーティングを行う。
【００５６】
図１において、マルチキャスト配信装置１００は、入力部１１０、階層符号化部１１２、通信制御部１１４、流量制御部１１６、受信ノードソート部１１８、階層設定部１２０、階層情報格納部１２２、および受信ノード情報格納部１２４を備えて構成される。
【００５７】
入力部１１０は、映像信号などの入力信号（原データ）を入力処理し、入力処理後の原データを階層符号化部１１２に出力する。
【００５８】
階層符号化部１１２は、階層情報格納部１２２に格納された階層情報に基づいて、入力された原データを階層符号化により基本階層のデータと１つ以上の差分階層のデータとに分割生成する。以後、基本階層のデータと差分階層のデータをともに階層化データという。また、階層符号化部１１２は、生成した各階層の階層化データを通信制御部１１４に出力する。
【００５９】
通信制御部１１４は、階層情報格納部１２２に格納された階層情報に基づいて各階層の階層化データに対応するヘッダを作成し、作成したヘッダを階層符号化部１１２で生成された各階層の階層化データに付与してパケットを生成する。また、通信制御部１１４は、生成したパケットを通信ネットワークに送信するとともに、受信ノード３００〜３４０からの受信状況のフィードバック情報を受信し、受信したフィードバック情報を流量制御部１１６へ出力する。
【００６０】
流量制御部１１６は、通信制御部１１４から入力した受信ノード３００〜３４０のフィードバック情報に基づき、各受信ノード３００〜３４０に対する送信可能レートを算出し、各受信ノード３００〜３４０に送信するパケットの階層を決定する。このとき、任意の受信ノードに対して上位階層の階層化データを送信する場合は、その階層より下位の階層の階層化データも全て送信するものとする。また、流量制御部１１６は、各受信ノード３００〜３４０に送信するパケットの階層について、階層情報格納部１２２に格納されている階層情報に書き加える。さらに、流量制御部１１６は、通信制御部１１４から入力した受信ノード３００〜３４０のフィードバック情報に基づいて、各受信ノード３００〜３４０の受信能力やＲＴＴ（Round Trip Time：往復遅延時間）、パケット損失率などの情報を受信ノード情報としてまとめ、受信ノード情報格納部１２４に格納する。
【００６１】
受信ノードソート部１１８は、各階層のパケットのアドレスリストに記述するアドレスの順序を、最上位の階層から最下位の階層の順（降順）に決定する。このとき、受信ノードソート部１１８は、任意の階層についてアドレスの順序を決定する際に、一つ上位の上位階層において決定されたアドレスの順序をそのまま取り込み、その後に残りの受信ノードのアドレスの順序を決定する。また、受信ノードソート部１１８は、決定したアドレスの順序に基づいて、階層情報格納部１２２に格納されている階層情報の中のアドレスの順序を変更する。
【００６２】
階層設定部１２０は、階層符号化部１１２が階層化データを分割生成する際の階層構成や各階層の使用帯域を設定し、階層情報として階層情報格納部１２２に格納する。図８は、階層設定部１２０が作成する階層情報の一例である。階層情報６０は、例えば、階層化データの階層構成６１、各階層の使用帯域６２、各階層化データの送信先となる受信ノード（アドレス）６３、を示す情報から成る。図８に示す例では、階層Ｃは最下位階層にあたる基本階層であり、２Ｍｂｐｓのデータを生成する。階層Ｂは階層Ｃより上位階層にあたる差分階層であり、８Ｍｂｐｓのデータを生成する。階層Ａは最上位階層にあたる差分階層であり、１５Ｍｂｐｓのデータを生成する。階層設定に必要な情報（階層構成や各階層の使用帯域など）は、内部の上位レイヤーからもしくは外部の機器から与えられ、またはユーザの入力操作によって与えられる。
【００６３】
階層情報格納部１２２は、階層化マルチキャスト方式の配信における階層構成や各階層の使用帯域、受信ノードのアドレス情報などを記述した階層情報を格納する。図１０は、階層情報格納部１２２が格納する階層情報の一例であり、図１０（Ａ）の階層情報８０は、流量制御部１１６が図８に示す階層情報６０に受信ノードのアドレス６３を書き加えたものである。図１０（Ｂ）の階層情報９０は、受信ノードソート部１１８が図１０（Ａ）に示す階層情報８０に記述された受信ノードのアドレス６３の各階層における順序を並べ替えたものである。
【００６４】
受信ノード情報格納部１２４は、各受信ノードの送信可能レートや受信状況、ＲＴＴなどの情報を記述した受信ノード情報を格納する。図９は、受信ノード情報の一例である。受信ノード情報７０は、例えば、各受信ノードのアドレス７１および各受信ノードに対する送信可能なレート値７２を示す情報から成る。
【００６５】
以下、上述のように構成されたマルチキャスト配信装置１００の動作を説明する。
【００６６】
まず、階層設定部１２０は、階層化データを分割生成する際の階層構成や各階層の使用帯域を設定する。そして、階層設定部１２０は、設定した情報を階層情報として階層情報格納部１２２に格納する。
【００６７】
そして、階層符号化部１１２は、入力部１１０を通して入力された映像データなどの原データを、階層情報格納部１２２に格納されている階層情報に基づいて階層符号化し、１つの基本データと１つ以上の差分データとに分割生成する。そして、階層符号化部１１２は、生成された階層化データを通信制御部１１４へ出力する。
【００６８】
そして、通信制御部１１４は、生成された各階層のパケットを階層情報格納部１２２に格納されている階層情報（例えば、図３（Ｂ）に示す階層情報）に基づいて送信する。
【００６９】
なお、パケットを受信した受信ノード３００〜３４０は、定期的に、またはパケット損失が発生したときなどに、受信状況などのフィードバック情報をマルチキャスト配信装置１００に送信する。ここでフィードバックする情報としては、例えば、ＲＴＴやパケット損失率などの情報が挙げられる。
【００７０】
そして、通信制御部１１４は、各受信ノード３００〜３４０からのフィードバック情報を入力し、入力したフィードバック情報を流量制御部１１６へ出力する。
【００７１】
そして、流量制御部１１６は、入力したフィードバック情報に基づき、各受信ノード３００〜３４０に対する送信可能レートを算出する。送信可能レートの算出結果は、例えば、図９に示すようなものであり、受信ノード情報として受信ノード情報格納部１２４に格納される。なお、受信ノード情報は、フィードバック情報に含まれるＲＴＴやパケット損失率などの情報を含めてもよい。
【００７２】
また、流量制御部１１６は、各受信ノード３００〜３４０に送信するデータの階層を、算出した送信可能レートに基づいて決定する。例えば、図８に示す階層構成において、流量制御部１１６が各受信ノード３００〜３４０の送信可能レートを図９に示すように算出した場合、通信制御部１１４が各受信ノード３００〜３４０に送信するデータの階層は次のようになる。第１受信ノード３００への送信可能レートは、３０Ｍｂｐｓなので、通信制御部１１４はＡ〜Ｃの全ての階層データ（合計２５Ｍｂｐｓ）を送信する。同様に、第２受信ノード３１０への送信可能レートは３５Ｍｂｐｓなので、通信制御部１１４はＡ〜Ｃの全ての階層データ（合計２５Ｍｂｐｓ）を送信する。第３受信ノード３２０への送信可能レートは１５Ｍｂｐｓなので、通信制御部１１４はＢおよびＣの階層データ（合計１０Ｍｂｐｓ）を送信する。第４受信ノード３３０への送信可能レートは１０Ｍｂｐｓなので、通信制御部１１４はＢおよびＣの階層データ（合計１０Ｍｂｐｓ）を送信する。第５受信ノード３４０への送信可能レートは３Ｍｂｐｓなので、通信制御部１１４はＣの階層データ（合計２Ｍｂｐｓ）のみを送信する。流量制御部１１６では、このようにして各受信ノード３００〜３４０に送信する階層化データの階層が決定される。流量制御部１１６は、決定した結果を階層情報格納部１２２内の階層情報に記述する。例えば、上記の場合、階層情報は、図３（Ａ）のようになる。
【００７３】
そして、受信ノードソート部１１８は、各階層のパケットにおけるアドレスリスト内のアドレスの順序を、最上位の階層から最下位の階層の順に決定する。このとき、任意の階層についてアドレスの順序を決定する際に、受信ノードソート部１１８は、一つ上位の上位階層において決定されたアドレスの順序をそのまま取り込み、その後に残りの受信ノードのアドレスの順序を付け加える。本発明の主な特徴は、この処理に見られるもので、図４を参照しながら後述する。また、受信ノードソート部１１８は、階層情報格納部１２２内の階層情報に記述されている受信ノードのアドレスの順序を、決定した各階層におけるアドレスの順序に基づいて並べ替える。例えば、上記の場合、図３（Ａ）に示す階層情報５００が、図３（Ｂ）に示す階層情報６００になる。
【００７４】
そして、通信制御部１１４は、階層情報格納部１２２に格納された階層情報に基づいて各階層の階層化データに対応するヘッダを作成する。通信制御部１１４は、作成したヘッダを階層符号化部１１２で生成した各階層の階層化データに付与し、パケットを生成する。また、通信制御部１１４は、生成されたパケットを通信ネットワークに送信する。
【００７５】
以後、フィードバック情報の入力、送信可能レートの算出、階層の決定、アドレスの並べ替え、パケットの生成および送信といった、上記一連の流量制御が、配信が終了するまで繰り返される。
【００７６】
なお、流量制御部１１６は、受信ノード３００〜３４０からのフィードバック情報に基づいて受信ノード３００〜３４０に送信するパケットの階層を決定し、階層情報に書き加える。したがって、通信制御部１１４が最初のパケットを送信するとき、流量制御部１１６はフィードバック情報を受信していないため、通信制御部１１４は、各受信ノード３００〜３４０に送信する階層を階層情報に基づいて決定することができない。この場合、通信制御部１１４は、任意のルールでパケットの階層を決定することができる。例えば、一例として、通信制御部１１４が全ての受信ノード３００〜３４０に全階層のパケットを送信するようにしてもよい。この場合、流量制御部１１６は、パケット損失が発生したとフィードバックしてきた受信ノードに対してのみ、以降送信する差分階層のパケットを減らすようにすればよい。また、別の例として、通信制御部１１４が全ての受信ノード３００〜３４０に基本階層のパケットのみを送信するようにしてもよい。この場合、流量制御部１１６は、パケット損失が発生しない受信ノードに対して、以降送信する差分階層のパケットを増やすようにすればよい。
【００７７】
図４は、受信ノードソート部１１８が、各階層におけるアドレスの順序を決める処理を示すフローチャートである。
【００７８】
まず、ステップＳ１で、最上位の階層におけるアドレスの順序を任意のルール（送信可能レートなど）に基づいて決定する。
【００７９】
次いで、ステップＳ２で、アドレスの順序が決定されていない階層の中で最上位の階層におけるアドレスの順序を決定する。このとき、一つ上位の上位階層において決定されたアドレスの順序をそのまま取り込み、その後に残りの受信ノードのアドレスの順序を任意のルールに基づいて決定する。
【００８０】
次いで、ステップＳ３で、最下位の階層（つまり基本階層）におけるアドレスの順序が決定されているか否かを判別する。最下位の階層におけるアドレスの順序が決定されているときは、全ての階層においてアドレスの順序が決定されたと判断して本フローを終了する。一方、最下位の階層におけるアドレスの順序が決定されていないときは、まだアドレスの順序が決定されていない階層が残っていると判断して、上記ステップＳ２へ戻る。すなわち、全ての階層においてアドレスの順序が決定されるまで、上記ステップ２およびステップ３が繰り返される。
【００８１】
上記フローに基づいて、図３（Ａ）の階層構成で、各受信ノードの送信可能レートが図９に示す場合における、受信ノードソート部１１８がアドレスの順序を決定する処理を具体的に説明する。ここでは、受信ノードソート部１１８が同階層内のアドレスの順序を送信可能レートに基づいて降順に決定する場合を示す。
【００８２】
まず、最上位の階層である階層Ａにおけるアドレスの順序を決定する（ステップＳ１）。ここでは、送信可能レートが高い順にＲ２（３５Ｍｂｐｓ）→Ｒ１（３０Ｍｂｐｓ）と決定する。次いで、階層Ａの一つ下位の階層である階層Ｂにおけるアドレスの順序を決定する（ステップＳ２）。このとき、階層Ａで決定された順序をそのまま取り込んで、階層Ｂにおいても１番目および２番目をＲ２→Ｒ１とし、残ったＲ３およびＲ４で３番目以降を決定する。ここでも、送信可能レートが高い順にＲ３（１５Ｍｂｐｓ）→Ｒ４（１０Ｍｂｐｓ）と決定する。したがって、全体の順序は、Ｒ２→Ｒ１→Ｒ３→Ｒ４となる。次いで、最下位の階層である階層Ｃにおけるアドレスの順序が決定されているか否かを判別する（ステップＳ３）。ここでは、階層Ｃにおけるアドレスの順序が決定されていないので、ステップＳ２へ戻る。次いで、アドレスの順序が決定されていない階層は階層Ｃのみなので、階層Ｃにおけるアドレスの順序を決定する（ステップＳ２）。このとき、上位階層である階層Ｂで決定された順序をそのまま取り込んで、階層Ｃにおいても１番目からＲ２→Ｒ１→Ｒ３→Ｒ４とし、残ったＲ５を５番目とする。次いで、最下位の階層である階層Ｃにおけるアドレスの順序が決定されているか否かを判別する（ステップＳ３）が、階層Ｃにおけるアドレスの順序は決定されているので本フローを終了する。この処理の結果、各階層のアドレスリストにおけるアドレスの順序は、図３（Ｂ）に示すようになる。
【００８３】
上記フローで説明した処理によって受信ノードソート部１１８がアドレスリスト内のアドレスの順序を決定することで、図３（Ｂ）に示すように、第２受信ノード（Ｒ２）３１０は受信する全階層において１番目、第３受信ノードは受信する全階層において３番目、と各階層における各受信ノードのアドレスの順番が同じになる。
【００８４】
前述の通り、ＸＣＡＳＴに対応するルータがネットワーク上に十分に存在しない場合、各階層のパケットは、それぞれのアドレスリストに記述されたアドレスの順序で転送されることになる。したがって、図３（Ｂ）に示す例では、基本階層である階層Ｃのパケット配送経路は、第２受信ノード３１０→第１受信ノード３００→第３受信ノード３２０→第４受信ノード３３０→第５受信ノード３４０となり、階層Ｂのパケット配送経路は、第２受信ノード３１０→第１受信ノード３００→第３受信ノード３２０→第４受信ノード３３０となり、階層Ａのパケット配送経路は、第２受信ノード３１０→第１受信ノード３００となる。
【００８５】
このように、本実施の形態によれば、送信するパケットのアドレスリストにおける受信ノードの順番を各階層で同じものとするので、明示的マルチキャスト方式に対応していないルータが経路上に存在する場合であっても、各階層のパケットを同じ経路で配送することができる。その結果、各受信ノードは、階層間の信号同期を容易にとることができ、送信ノードは、受信ノードに対して正確な流量制御を行うことができる。
【００８６】
なお、本実施の形態では、マルチキャスト配信装置は各階層における受信ノードの順序を任意のルールに基づいて決定するとしたが、任意のルールとしては、送信可能レートやＲＴＴ、パケット損失率などが挙げられる。マルチキャスト配信装置がどの情報を順序決定のルールとして採用するかは、状況に応じて適宜選択すればよい。例えば、経路上のＸＣＡＳＴ対応のルータの数が十分ではなく、パケットが受信ノード間で転送されることが多い場合は、送信可能レートが低い受信ノードがパケット転送の律速要因となるため、マルチキャスト配信装置は、送信可能レートの高い順にアドレスの順序を決定するのが好ましい。
【００８７】
また、本実施の形態では、マルチキャスト配信装置が受信ノードの送信可能レートを決定するようにしたが、受信ノード自身が自らの受信できるレートを決定し、マルチキャスト配信装置に要求するようにしてもよい。
【００８８】
また、本実施の形態では、マルチキャスト配信装置が受信ノードからのフィードバック情報に基づいて送信するパケットの階層を決定するようにしたが、ユーザが直接送信する階層を設定するようにしてもよい。
【００８９】
また、本実施の形態では、マルチキャスト配信装置は原データから階層符号化データを生成するようにしたが、外部で生成された階層符号化データを入力するようにしてもよい。
【産業上の利用可能性】
【００９０】
本発明に係るマルチキャスト配信装置、マルチキャスト配信方法およびマルチキャスト配信プログラムは、インターネット上の映像の配信などにおいて有用である。特に、ＸＣＡＳＴに未対応のルータの割合が大きいネットワーク上における映像の配信などにおいて有用である。
【図面の簡単な説明】
【００９１】
【図１】本発明の一実施の形態に係るマルチキャスト配信装置の構成を示すブロック図
【図２】本実施の形態に係るマルチキャスト配信装置を送信ノードとするマルチキャスト配信の流れを説明するための通信ネットワークの概要を示す図
【図３】（Ａ）本実施の形態に係るマルチキャスト配信装置の流量制御部が作成した階層情報を示す表、（Ｂ）本実施の形態に係るマルチキャスト配信装置の受信ノードソート部が作成した階層情報を示す表
【図４】本実施の形態に係るマルチキャスト配信装置の受信ノードソート部におけるアドレスの順序決定処理の流れを示すフローチャート
【図５】従来のマルチキャスト配信装置を送信ノードとするマルチキャスト配信の流れを説明するための通信ネットワークの概要を示す図
【図６】（Ａ）送信ノードが第１受信ノード、第３受信ノードおよび第４受信ノードにパケットを送信する場合のＸＣＡＳＴ方式のパケットを示す図、（Ｂ）ＸＣＡＳＴ対応の第１ルータが第１受信ノードに送信するＸＣＡＳＴ方式のパケットを示す図、（Ｃ）ＸＣＡＳＴ対応の第１ルータが第２ルータに転送するＸＣＡＳＴ方式のパケットを示す図、（Ｄ）ＸＣＡＳＴ対応の第２ルータが第３受信ノードに送信するＸＣＡＳＴ方式のパケットを示す図、（Ｅ）ＸＣＡＳＴ対応の第２ルータが第３ルータに転送するＸＣＡＳＴ方式のパケットを示す図
【図７】（Ａ）送信ノードが第１受信ノード、第３受信ノードおよび第４受信ノードにパケットを送信する場合のＸＣＡＳＴ方式のパケットを示す図、（Ｂ）第１受信ノードが第３受信ノードに転送するＸＣＡＳＴ方式のパケットを示す図、（Ｃ）第３受信ノードが第４受信ノードに転送するＸＣＡＳＴ方式のパケットを示す図
【図８】階層情報の一例を示す表
【図９】受信ノード情報の一例を示す表
【図１０】（Ａ）従来のマルチキャスト配信装置が各受信ノードに対して設定した階層を示す表、（Ｂ）従来のマルチキャスト配信装置が各階層のアドレスリストに記述するアドレスの順序を示す表
【符号の説明】
【００９２】
１、２００  通信ネットワーク
１０、１００  マルチキャスト配信装置（送信ノード（Ｓ））
２０、３００  第１受信ノード（Ｒ１）
２１、３１０  第２受信ノード（Ｒ２）
２２、３２０  第３受信ノード（Ｒ３）
２３、３３０  第４受信ノード（Ｒ４）
２４、３４０  第５受信ノード（Ｒ５）
３０、４００  第１ルータ
３１、４１０  第２ルータ
３２、４２０  第３ルータ
４０、４４〜５０  ＸＣＡＳＴ方式のパケット
４１  ユニキャストヘッダ
４２  ルーティングヘッダ
４３  ペイロード
６０、８０，９０、５００、６００  階層情報
６１、５１０  階層名
６２、５２０  階層使用帯域
６３、５３０  受信ノード（アドレス）
７０  受信ノード情報
７１  受信ノード（アドレス）
７２  送信可能レート
１１０  入力部
１１２  階層符号化部
１１４  通信制御部
１１６  流量制御部
１１８  受信ノードソート部
１２０  階層設定部
１２２  階層情報格納部
１２４  受信ノード情報格納部
【図１】
0004642680.tif 000002
【図２】
0004642680.tif 000003
【図３】
0004642680.tif 000004
【図４】
0004642680.tif 000005
【図５】
0004642680.tif 000006
【図６】
0004642680.tif 000007
【図７】
0004642680.tif 000008
【図８】
0004642680.tif 000009
【図９】
0004642680.tif 000010
【図１０】
0004642680.tif 000011