(57)【要約】  送信装置（201）は、配信データの誤り訂正符号を記述した符号パケットを生成し、その符号パケットと配信データを記述したメディアパケットとを含むブロックを送信する（S1）。各中継装置（202,203）は、受信したブロックのうちパケットロスに関する所定条件に対応するブロックの誤り訂正符号を記述した符号パケットを生成し、それをブロックに追加して送信する（S4）。受信装置（204）は、受信したブロックに含まれる符号パケットの階層数を算出し（S7）、各階層の符号パケットを用いてブロックに復号処理を施し（S8）、復号処理の結果から配信データを形成する。
2008139882.tif 000002
【特許請求の範囲】
【請求項１】
ブロックを成すパケット群をストリーミング配信により授受する送信装置および受信装置と、前記送信装置および受信装置間のストリーミング配信を中継する複数の中継装置とを備え、
前記送信装置は、配信データの誤り訂正符号を記述した符号パケットを生成する符号化部と、前記配信データを記述したメディアパケットおよび前記符号パケットを含むブロックを送信する送信部とを有し、
前記各中継装置は、受信したブロックのうちパケットロスに関する所定条件に対応するブロックを検知し且つ検知したブロックの誤り訂正符号を記述した符号パケットを生成する符号化部と、前記符号パケットを前記受信したブロックに追加して送信する送信部とを有し、
前記受信装置は、受信したブロックに含まれる符号パケットの階層数を算出し且つ各階層の符号パケットを用いて前記受信したブロックに復号処理を施す復号部と、前記復号部の処理結果から配信データを形成するパケット処理部とを有することを特徴とする通信システム。
【請求項２】
前記各中継装置の符号化部は、前記受信したブロックのパケットロスを検査し、パケットロスが発生したブロックを前記所定条件に対応するブロックとして検知することを特徴とする請求項１記載の通信システム。
【請求項３】
前記各中継装置の符号化部は、送信リンクの通信品質が基準値を下回る状態において送信するブロックを前記所定条件に対応するブロックとして検知することを特徴とする請求項１又は２記載の通信システム。
【請求項４】
前記送信装置の符号化部は、符号長Ｎおよび情報ビット数Ｋにより規定される誤り訂正符号を、インターリーブ処理したｋ個（ｋ＜Ｋ）のメディアパケットに対する多項式Ｇ（ｘ）の演算により生成することを特徴とする請求項１乃至３のいずれか１項に記載の通信システム。
【請求項５】
前記各中継装置の符号化部は、前記受信したブロックに対する前記多項式Ｇ（ｘ）の演算により当該ブロックにおけるビット誤りを検査し、ビット誤りが検出された場合に当該ブロックをパケットロスが発生したブロックと認識することを特徴とする請求項４記載の通信システム。
【請求項６】
前記受信装置の復号部は、前記受信したブロックのメディアパケット数および符号パケット数に基づき該ブロックにおける符号パケットの階層数を算出し、前記階層数を用いた前記多項式Ｇ（ｘ）の演算により前記ブロックを外層から内層へ順次的に復号することを特徴とする請求項５記載の通信システム。
【請求項７】
ブロックを成すパケット群をストリーミング配信により送信する送信装置であって、
配信データの誤り訂正符号を記述した符号パケットを生成する符号化部と、前記配信データを記述したメディアパケットおよび前記符号パケットを含むブロックを送信する送信部とを備え、
前記符号化部は、符号長Ｎおよび情報ビット数Ｋにより規定される誤り訂正符号を、インターリーブ処理したｋ個（ｋ＜Ｋ）のメディアパケットに対する多項式Ｇ（ｘ）の演算により生成することを特徴とする送信装置。
【請求項８】
コンピュータを請求項７記載の送信装置として機能させることを特徴とするプログラム。
【請求項９】
ブロックを成すパケット群をストリーミング配信により授受する送信装置および受信装置を中継する中継装置であって、
配信データの誤り訂正符号を記述した符号パケットおよび前記配信データを記述したメディアパケットを含むブロックを受信する受信部と、受信したブロックのうちパケットロスに関する所定条件に対応するブロックを検知し且つ検知したブロックの誤り訂正符号を記述した符号パケットを生成する符号化部と、前記符号パケットを前記受信したブロックに追加して送信する送信部とを備えることを特徴とする中継装置。
【請求項１０】
前記符号化部は、前記受信したブロックのパケットロスを検査し、パケットロスが発生したブロックを前記所定条件に対応するブロックとして検知することを特徴とする請求項９記載の中継装置。
【請求項１１】
前記符号化部は、送信リンクの通信品質が基準値を下回る状態において送信するブロックを前記所定条件に対応するブロックとして検知することを特徴とする請求項９又は１０記載の中継装置。
【請求項１２】
前記符号化部は、前記受信したブロックに対する、前記送信装置にて誤り訂正符号の生成に使用された多項式Ｇ（ｘ）の演算により、当該ブロックにおけるビット誤りを検査し、ビット誤りが検出された場合に当該ブロックをパケットロスが発生したブロックと認識することを特徴とする請求項９又は１０記載の中継装置。
【請求項１３】
コンピュータを請求項９乃至１２のいずれか１項に記載の中継装置として機能させることを特徴とするプログラム。
【請求項１４】
ブロックを成すパケット群を送信装置からのストリーミング配信により受信する受信装置であって、
配信データの誤り訂正符号を記述した符号パケットおよび前記配信データを記述したメディアパケットを含むブロックを受信する受信部と、前記受信したブロックに含まれる符号パケットの階層数を算出し且つ各階層の符号パケットを用いて前記ブロックに復号処理を施す復号部と、前記復号部の処理結果から配信データを形成するパケット処理部とを備えることを特徴とする受信装置。
【請求項１５】
前記復号部は、前記受信したブロックのメディアパケット数および符号パケット数に基づき該ブロックにおける符号パケットの階層数を算出し、前記送信装置にて誤り訂正符号の生成に使用された多項式Ｇ（ｘ）の演算を前記階層数を用いて前記受信したブロックに対し行うことにより該ブロックを外層から内層へ順次的に復号することを特徴とする請求項１４記載の受信装置。
【請求項１６】
コンピュータを請求項１４又は１５記載の受信装置として機能させることを特徴とするプログラム。
【請求項１７】
ブロックを成すパケット群をストリーミング配信により授受する送信装置および受信装置と、前記送信装置および受信装置間のストリーミング配信を中継する複数の中継装置とを備えるシステムにおいて、
前記送信装置が、配信データの誤り訂正符号を記述した符号パケットを生成し、前記配信データを記述したメディアパケットおよび前記符号パケットを含むブロックを送信し、
前記各中継装置が、受信したブロックのうちパケットロスに関する所定条件に対応するブロックを検知し且つ検知したブロックの誤り訂正符号を記述した符号パケットを生成し、前記符号パケットを前記受信したブロックに追加して送信し、
前記受信装置が、受信したブロックに含まれる符号パケットの階層数を算出し且つ各階層の符号パケットを用いて前記受信したブロックに復号処理を施し、前記復号処理の結果から配信データを形成することを特徴とする通信方法。
【請求項１８】
前記各中継装置が、前記受信したブロックのパケットロスを検査し、パケットロスが発生したブロックを前記所定条件に対応するブロックとして検知することを特徴とする請求項１７記載の通信方法。
【請求項１９】
前記各中継装置が、送信リンクの通信品質が基準値を下回る状態において送信するブロックを前記所定条件に対応するブロックとして検知することを特徴とする請求項１７又は１８記載の通信方法。
【請求項２０】
前記送信装置が、符号長Ｎおよび情報ビット数Ｋにより規定される誤り訂正符号を、インターリーブ処理したｋ個（ｋ＜Ｋ）のメディアパケットに対する多項式Ｇ（ｘ）の演算により生成することを特徴とする請求項１７乃至１９のいずれか１項に記載の通信方法。
【請求項２１】
前記各中継装置が、前記受信したブロックに対する前記多項式Ｇ（ｘ）の演算により当該ブロックにおけるビット誤りを検査し、ビット誤りが検出された場合に当該ブロックをパケットロスが発生したブロックと認識することを特徴とする請求項２０記載の通信方法。
【請求項２２】
前記受信装置が、前記受信したブロックのメディアパケット数および符号パケット数に基づき該ブロックにおける符号パケットの階層数を算出し、前記階層数を用いた前記多項式Ｇ（ｘ）の演算により前記ブロックを外層から内層へ順次的に復号することを特徴とする請求項２１記載の通信方法。
【請求項２３】
前記送信装置の符号化部は、符号長ｋ＋１および情報ビット数ｋにより規定される誤り訂正符号を、インターリーブ処理したｋ個のメディアパケットに対する単一パリティ演算(ＸＯＲ演算)により生成することを特徴とする請求項１乃至３のいずれか１項に記載の通信システム。
【請求項２４】
前記各中継装置の符号化部は、前記受信したブロックにおけるパケット数を検査し、パケット数がｋ＋１未満の場合に当該ブロックをパケットロスが発生したブロックと認識し、且つ、パケット数がｋの場合に当該ブロックの誤り訂正符号を記述した符号パケットを生成することを特徴とする請求項２３記載の通信システム。
【請求項２５】
前記受信装置の復号部は、前記受信したブロックのメディアパケット数および符号パケット数に基づき該ブロックにおける符号パケットの階層数を算出し、前記階層数を用いた単一パリティ演算(ＸＯＲ演算)により前記ブロックを外層から内層へ順次的に復号することを特徴とする請求項２４記載の通信システム。
【請求項２６】
ブロックを成すパケット群をストリーミング配信により送信する送信装置であって、配信データの誤り訂正符号を記述した符号パケットを生成する符号化部と、前記配信データを記述したメディアパケットおよび前記符号パケットを含むブロックを送信する送信部とを備え、
前記符号化部は、符号長ｋ＋１および情報ビット数ｋにより規定される誤り訂正符号を、インターリーブ処理したｋ個のメディアパケットに対する単一パリティ演算(ＸＯＲ演算)により生成することを特徴とする送信装置。
【請求項２７】
コンピュータを請求項２６記載の送信装置として機能させることを特徴とするプログラム。
【請求項２８】
前記符号化部は、前記受信したブロックにおけるパケット数を検査し、パケット数がｋ＋１未満の場合に当該ブロックをパケットロスが発生したブロックと認識し、且つ、パケット数がｋの場合に当該ブロックの誤り訂正符号を記述した符号パケットを生成することを特徴とする請求項９乃至１１記載のいずれか１項に記載の中継装置。
【請求項２９】
コンピュータを請求項２８に記載の中継装置として機能させることを特徴とするプログラム。
【請求項３０】
前記復号部は、前記受信したブロックのメディアパケット数および符号パケット数に基づき該ブロックにおける符号パケットの階層数を算出し、前記階層数を用いて前記ブロックに対し単一パリティ復号(ＸＯＲ演算)を行うことにより該ブロックを外層から内層へ順次的に復号することを特徴とする請求項１４記載の受信装置。
【請求項３１】
コンピュータを請求項３０記載の受信装置として機能させることを特徴とするプログラム。
【請求項３２】
前記送信装置が、符号長ｋ＋１および情報ビット数ｋにより規定される誤り訂正符号を、インターリーブ処理したｋ個のメディアパケットに対する単一パリティ演算(ＸＯＲ演算)により生成することを特徴とする請求項１７乃至１９のいずれか１項に記載の通信方法。
【請求項３３】
前記各中継装置が、前記受信したブロックにおけるパケット数を検査し、パケット数がｋ＋１未満の場合に当該ブロックをパケットロスが発生したブロックと認識し、且つ、パケット数がｋの場合に当該ブロックの誤り訂正符号を記述した符号パケットを生成することを特徴とする請求項３２記載の通信方法。
【請求項３４】
前記受信装置が、前記受信したブロックのメディアパケット数および符号パケット数に基づき該ブロックにおける符号パケットの階層数を算出し、前記階層数を用いた単一パリティ演算(ＸＯＲ演算)により前記ブロックを外層から内層へ順次的に復号することを特徴とする請求項３３記載の通信方法。
【請求項３５】
前記受信装置が、前記受信したブロックにおけるパケット数を検査し、パケット数がｋ＋１未満の場合に当該ブロックをパケットロスが発生したブロックと認識し、且つ、パケット数がｋでメディアパケット数はｋより少ない場合に、前記ブロックを単一パリティ演算(ＸＯＲ演算)により復号することを特徴とする請求項３３記載の通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット通信システムにおけるストリーミング配信のパケットロス対策に関する。
【背景技術】
【０００２】
近年、パケットスイッチングネットワークを利用して、音声データやビデオデータをストリーミング配信により提供するサービスが普及している。ストリーミング配信の品質劣化を招く原因の一つとして、ネットワークにおける転送中のパケットロスが挙げられる。【０００３】
遠隔講義等に利用される同期型ビデオストリーミング配信のように、リアルタイム性が要求される通信の場合、その通信プロトコルには、ＵＤＰ（User Datagram Protocol）が用いられる。しかしながら、ＵＤＰは、損失したパケットを再送する手順を具備していない。よって、ＵＤＰによるストリーミング配信には、例えば、後述の非特許文献１に記載されているように、損失したパケットを受信側で補償する前方誤り訂正制御方式（ＦＥＣ：Forward Error Correction）が用いられる。【０００４】
ＦＥＣは、誤り訂正符号を用いてパケットロスを補償する手法である。誤り訂正符号の代表的なものには、パリティ（ＸＯＲ）符号、ハミング符号、ＢＣＨ符号、リードソロモン符号、畳み込み符号、連続符号等がある。ＦＥＣを用いる場合、音声データや画像データ等のメディアデータに基づき得られた誤り訂正符号をそのメディアデータに付加して送信する。これにより、もし転送中に一部のパケットを損失しても、受信側で、誤り訂正符号から元のメディアデータを復元することができる。【０００５】
ところで、転送中のパケットに、連続したビット誤り、すなわちバースト誤りが生じた場合、バースト誤りのデータ長が長くなるに従い、誤り訂正のための処理負荷が高くなる。これに対処するために、例えば、ビットレベルでの誤り分散方式であるインターリーブ方式を用いることにより、計算量の低減を図ることができる。【０００６】
図２に、インターリーブ方式の原理を模式的に示す。インターリーブ方式では、配信対象となる所定数のメディアデータと、それらの損失を検出して補償するための冗長データ（誤り訂正符号）とをブロック単位で取り扱う。【０００７】
図２に示すように、ＦＥＣの冗長データは、並列のメディアデータ群（D0,D1,…,Dk-1）を並列方向に順次読み出すことで得られるデータから生成される。生成されたＦＥＣ冗長データ（F0,…,Fs-1）は、パケット化された後、メディアデータ群（D0,D1,…,Dk-1）に続いて送信される。仮に、転送経路で１つのメディアパケットを損失した場合、冗長計算の単位データ、すなわち図２にて点線で示す範囲内のメディアデータから１ビットが欠落する。この場合、受信装置にて１ビット誤りとして検出される。【０００８】
ここで、１つのブロックに対し補償し得るパケットロスの許容量は、誤り訂正能力と呼ばれる。誤り訂正能力は、ブロック毎の冗長パケット数に依存する。非特許文献１にて提案されている技術は、送信装置が、転送経路上で生じ得る全てのパケットロスを推定し、その推定に基づき誤り訂正能力を設定するというものである。
【非特許文献１】栗本昌和著、「ＦＥＣとパケットインターリーブによるストリーミングサービス用動的低エラー転送」、電子情報通信学会論文誌、２００５年７月、Vol. J88-B, No. 7
【発明の開示】
【発明が解決しようとする課題】
【０００９】
従来のストリーミング配信システムでは送信装置と受信装置のみを用いてパケットロス補償を行っている。この場合、送信装置がエンドツーエンドのパケットロス率を推定して誤り訂正能力を設定する。よって、設定される誤り訂正能力は、転送経路の全てをカバーし得るものである必要がある。１ブロック当たりの冗長データの割合を大きくすると訂正能力は高くなるが、最初から高い誤り訂正能力を設定した場合、メディアデータの通信効率を高め難い。つまり、冗長データの割合が増加することは、メディアデータの通信効率の低下を招く。【００１０】
また、転送中にパケットロスが発生するごとに、誤り訂正能力が低下、すなわち、補償できるパケット数が減少する。よって、上記非特許文献１の方法のように、エンドツーエンドの誤り訂正能力を送信元が一括的に設定する方法では、誤り訂正能力の不足により、受信側で損失パケットの補償が困難になるおそれがある。【００１１】
本発明は、上記課題に鑑みてなされたものであり、その目的は、ストリーミング配信において、伝送効率の低下およびパケットロスに対する耐性の劣化を防止する技術を提供することにある。
【課題を解決するための手段】
【００１２】
本発明に係る通信システムは、ブロックを成すパケット群をストリーミング配信により授受する送信装置および受信装置と、前記送信装置および受信装置間のストリーミング配信を中継する複数の中継装置とを備え、前記送信装置は、配信データの誤り訂正符号を記述した符号パケットを生成する符号化部と、前記配信データを記述したメディアパケットおよび前記符号パケットを含むブロックを送信する送信部とを有し、前記各中継装置は、受信したブロックのうちパケットロスに関する所定条件に対応するブロックを検知し且つ検知したブロックの誤り訂正符号を記述した符号パケットを生成する符号化部と、前記符号パケットを前記受信したブロックに追加して送信する送信部とを有し、前記受信装置は、受信したブロックに含まれる符号パケットの階層数を算出し且つ各階層の符号パケットを用いて前記受信したブロックに復号処理を施す復号部と、前記復号部の処理結果から配信データを形成するパケット処理部とを有する。
【発明の効果】
【００１３】
本発明によれば、ストリーミング配信における伝送効率の低下およびパケットロスに対する耐性の劣化を防止することができる。よって、ストリーミング配信の配信ブロックに、伝送初期の時点で高い誤り訂正能力を設定するという対策は不要となる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態のシステム構成を示すブロック図である。
【図２】一般的なインターリーブ方式を説明するための説明図である。
【図３】ＦＥＣパケットのフォーマットの説明図である。
【図４】本発明の実施形態に係るシステムの内部構成を示すブロック図である。
【図５】本発明の実施形態に係る送信装置のＦＥＣ符号化部のブロック図である。
【図６】本発明の実施形態に係る中継装置のＦＥＣ符号化部のブロック図である。
【図７】本発明の実施形態に係る受信装置のＦＥＣ復号部のブロック図である。
【図８】本発明の実施形態の動作を示すシーケンス図である。
【図９】本発明の実施形態に係る送信装置の動作を示すフローチャートである。
【図１０】本発明の実施形態に係る中継装置の動作を示すフローチャートである。
【図１１】本発明の実施形態に係る受信装置の動作を示すフローチャートである。
【図１２】本発明の実施形態の実施例１に関する説明図である。
【図１３】本発明の実施形態の実施例２に関する説明図である。
【図１４】本発明の他の実施形態の動作を示すシーケンス図である。
【符号の説明】
【００１５】
100  システム
101、102、103  リンク
201  送信装置
202  第１の中継装置
203  第２の中継装置
204  受信装置
【発明を実施するための最良の形態】
【００１６】
≪実施の形態１≫
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。【００１７】
＜構成＞図１に、本発明の実施形態のシステム構成を示す。システム100は、パケットの送信元となる送信装置201と、そのパケットの宛先となる受信装置204と、送信装置201及び受信装置204間を中継する第１の中継装置202及び第２の中継装置203とを備える。【００１８】
送信装置201は、リンク101を介して第１の中継装置202と接続され、第１の中継装置202はリンク102を介して第２の中継装置203と接続され、第２の中継装置203はリンク103を介して受信装置204と接続されている。各リンク（101,102,103）は、物理ケーブル、スイッチ、ルータ、パケットスイッチングネットワーク等である。【００１９】
図３に、メディアパケット及びＦＥＣパケットのフォーマットの例を示す。メディアパケット301は、メディアデータに、ＦＥＣヘッダと、ＵＤＰ／ＩＰ／ＭＡＣ等のプロトコルのパケットヘッダとを付加して構成されている。メディアデータは、音声データや画像データのような、配信対象のデータをパケット化したものである。本実施の形態では、メディアデータの一例として、Real-time Transport Protocol（RTP）パケットを用いる。【００２０】
メディアデータのサイズは、パケットが伝送中にフラグメンテーションされないことを前提とする任意値で良いが、本実施の形態では説明を簡単化するために固定長とする。ＦＥＣヘッダは、長さが16bitで、先頭の1bitはパケットの種類を示し、残りの15bitはメディアパケットのシーケンス番号を示す。パケットの種類を示す先頭の1bitには、例えば、「0」の場合はメディアパケットを示し、「1」の場合はＦＥＣパケットを示すといった規定を設ける。メディアパケットのシーケンス番号は、ゼロから始まる連続値となる。【００２１】
ＦＥＣパケット302は、ＦＥＣ冗長データにＦＥＣヘッダとパケットヘッダとを付加して構成される。ＦＥＣ冗長データは、前記メディアパケット301におけるメディアデータのフィールド間の符号演算結果を用いる。ＦＥＣ冗長データのサイズは、前記メディアパケット301と同じである。ＦＥＣヘッダは、長さが16bitであり、先頭の1bitはパケットの種類を示し、残りの15bitはＦＥＣパケットのシーケンス番号を示す。パケットの種類を示す先頭の1bitには、例えば、「1」の場合はＦＥＣパケットを示すといった規定を設ける。【００２２】
ＦＥＣパケットのシーケンス情報は、ユーザの必要に応じて変更が可能である。シーケンス情報として、例えば、メディアパケットのシーケンス番号と同じ系列で連続したシーケンス番号を用いることができる。また、メディアパケットと異なる系列の、ＦＥＣパケット特有のシーケンス情報を用いても良い。【００２３】
また、図３に示すように、ＦＥＣパケット302はｋ個のメディアパケット301に対してｓ個生成される。このｓ値は符号方式によって異なる。例えば、パリティ符号を利用する場合は「ｓ＝１」である。ＢＣＨ符号などの巡回符号を利用する場合は、符号方式とメディアパケット301の数によってｓ値は異なり、例えば、BCH(7,4)の場合、４個のメディアパケットに対して３個のＦＥＣパケットが生成される。ｓ個のＦＥＣパケットは、メディアパケットの送信後に送信される。【００２４】
続いて、図４〜７を参照しながら、送信装置201、中継装置202、受信装置204の詳細な構成を示す。なお、図１の中継装置203は、回路的には中継装置202と同一の構成であり、説明を省略する。【００２５】
送信装置201は、図４に示すように、パケット生成部201a、ＦＥＣ符号化部201b、パケット送信部201cを備える。パケット生成部201aは、メディアデータを生成し、それをＦＥＣ符号化部201bに供給する。ＦＥＣ符号化部201bは、前述のインターリーブ方式によりパケット生成部201aから受信するメディアデータをデータ間でＦＥＣ符号化するとともに、メディアデータにＦＥＣヘッダを付加してパケット送信部201cに供給する。また、１ブロック分のメディアデータを送信し終わったら、ＦＥＣ符号結果を用いてＦＥＣヘッダを付加してパケット送信部201cに送信する。パケット送信部201cは、ＦＥＣ符号化部201bから受信するデータに、リンク101に伝送するためのパケットヘッダ（例えば、ＵＤＰ／ＩＰ／ＭＡＣヘッダなど）を付加してリンク101 へ出力する。【００２６】
送信装置201のＦＥＣ符号化部201bの構成を図５に示す。ＦＥＣ符号化部201bは、メディアデータ受信部201b1、データレジスタ201b2、ＦＥＣ符号演算回路201b3、冗長データ保存メモリ201b4、ＦＥＣパケット送信部201b5で構成されている。【００２７】
メディアデータ受信部201b1は、パケット生成部201aから入力されるメディアデータをデータレジスタ201b2にコピーした後、ＦＥＣパケット送信部201b5に出力する。データレジスタ201b2は、メディアデータのビット情報をパラレルで同時にＦＥＣ符号演算回路201b3に出力する。ＦＥＣ符号演算回路201b3は、データレジスタ201b2から入力されるメディアデータ間で符号演算し、符号演算結果を冗長データ保存メモリ201b4に出力する。冗長データ保存メモリ201b4は、ＦＥＣ符号演算回路201b3から受信する符号演算結果を保存する。【００２８】
ＦＥＣパケット送信部201b5は、メディアデータ受信部201b1から受信するメディアデータにＦＥＣヘッダを付加してパケット送信部201cに送信する。また、１ブロック分のメディアデータを送信し終わったら、冗長データ保存メモリ201b4に保存されているＦＥＣ符号結果を取得し、そのＦＥＣ符号結果にＦＥＣヘッダを付加してパケット送信部201cに送信する。【００２９】
中継装置202は、図４に示すように、パケット受信部202a、ＦＥＣ符号化部202b、パケット送信部202cを備える。パケット受信部202aは、受信リンク（101）から受信するパケットヘッダを終端して、ＦＥＣ符号処理の対象となるフローを抽出する。また、パケット受信部202aは、ペイロード部分（ＦＥＣヘッダを含む）をＦＥＣ符号化部202bに供給する。ＦＥＣ符号化部202bは、パケット受信部202aから受信するパケット数をカウントしながら、送信装置201と同じ符号方式（符号演算回路）を用いて受信パケットをペイロード間で符号化する。【００３０】
ＦＥＣ符号化部202bは、受信したパケット数と符号ブロック別の符号演算結果とを基に、受信リンク101でパケットロスが発生したかどうかを判定する。パケットロスが発生した場合、受信パケットをパケット送信部202cに供給する一方で、符号演算結果から生成されたＦＥＣパケットを受信パケットに追加してパケット送信部202cに供給する。逆に、パケットロスが無かった場合は、符号演算結果はパケット送信部202cへ供給せずクリアする。パケット送信部202cは、ＦＥＣ符号化部202bからのパケットにパケットヘッダを付与してリンク102へ出力する。【００３１】
中継装置202のＦＥＣ符号化部202bの構成を図６に示す。ＦＥＣ符号化部202bは、ＦＥＣパケット受信部202b1、データレジスタ202b2、ＦＥＣ符号演算回路202b3、冗長データ保存メモリ202b4、パケットロス検出部202b5、ＦＥＣパケット送信部202b6で構成されている。【００３２】
ＦＥＣパケット受信部202b1は、パケット受信部202aから入力されるパケットのＦＥＣヘッダのシーケンス番号を検知し、１ブロックにおけるメディアパケット数とＦＥＣパケット数などの情報とをパケットロス検出部202b5へ通知する。また、受信パケットのペイロード（メディアデータ及びＦＥＣ冗長データ）をデータレジスタ202b2にコピーした後、受信パケットをＦＥＣパケット送信部202b6に出力する。【００３３】
もし、受信パケットの順序が乱れて、受信パケットのシーケンス番号に欠落が生じた場合、ＦＥＣパケット受信部202b1は、ロスしたパケットの位置に受信パケットを詰める、あるいは、ロスしたパケットの位置にダミーデータを入れるという対処方法を符号方式に応じて選択する。例えば、符号方式が単一パリティ符号の場合は、ビット間の演算はＸＯＲ演算のみであるから、ブロック内のパケットの順序が乱れていても演算結果には影響がない。よって、単一パリティ符号の場合、同一ブロック内の冗長データフィールドをそのままデータレジスタ202b2にコピーすることにより、ロスしたパケットの位置に受信パケットを詰めるというアプローチを採る。【００３４】
一方、ＢＣＨ符号などの巡回符号の場合、ビット間の符号演算結果は、パケットの入力順序に関係する。従って、受信パケットのシーケンス番号に欠落が生じた場合、そのロス番号に該当するパケットの冗長フィールドにダミーデータ（All‘0’）を代入する。もし、この後、前記ロス番号に該当するパケットを受信した場合、そのパケットを廃棄する、或いはデータレジスタ202b2にコピーせずＦＥＣパケット送信部に出力する。【００３５】
データレジスタ202b2は、ＦＥＣパケット受信部202b1から受け取ったデータのビット情報を、パラレルで同時にＦＥＣ符号演算回路202b3へ出力する。ＦＥＣ符号演算回路202b3は、データレジスタ202b2から入力されるパケットを相互間で符号演算し、その演算結果を冗長データ保存メモリ202b4に出力する。冗長データ保存メモリ202b4は、ＦＥＣ符号演算回路202b3から受信する符号演算結果を保存する。【００３６】
パケットロス検出部202b5は、ＦＥＣパケット受信部202b1から受け取るメディアパケット数とＦＥＣパケット数、及び、ＦＥＣ符号演算回路202b3の演算結果などから、受信ブロックにパケットロスが発生したか否かを判定する。そして、パケットロス数が復元能力の範囲以内であれば、冗長パケット送信の通知をＦＥＣパケット送信部202b6へ出力する。【００３７】
ＦＥＣパケット送信部202b6は、ＦＥＣパケット受信部202b1から受信するパケットはそのままパケット送信部202cに出力する。一方、パケットロス検出部202b5から冗長パケット送信の通知を受け取った場合、冗長データ保存メモリ202b4に保存されている符号演算結果を参照し、その符号演算結果にＦＥＣヘッダを付加してパケット送信部202cに出力する。出力後、冗長データ保存メモリ202b4に保存されている符号演算結果をクリアする。もし、パケットロス検出部202b5から冗長パケット送信不要の通知を受け取った場合、ＦＥＣパケット送信部202b6は、冗長パケットを出力せず、冗長データ保存メモリ202b4に保存されている符号演算結果をクリアする。【００３８】
なお、上記のようにして中継装置202から中継装置203へ転送されたブロックに新たなパケットロスが生じた場合は、中継装置203が中継装置202と同様な処理を行う。すなわち、中継装置203は、中継装置202から受信したブロックに新たな冗長データを追加し、それを受信装置204へ向けて送信する。このように、転送経路上でパケットロスが発生する都度、それを検出した中継装置（202,203）が、受信ブロックに階層的に冗長データを追加する。【００３９】
受信装置204は、図４に示すように、パケット受信部204a、ＦＥＣ復号部204b、パケット処理部204cを備える。パケット受信部204aは、受信リンク（103）から受信するパケットのヘッダを終端し、ＦＥＣ復号処理の対象となるフローを抽出して、該当フローのパケットペイロードをＦＥＣ復号部204bに供給する。ＦＥＣ復号部204bは、パケット受信部204aから受信するパケットの数と符号方式のパラメータ情報とを用いて符号階層数を計算する。そして、１ブロック分のパケット群に対し、その外層から内層に向けて符号階層数分の復号処理を施すことで、ロスされたメディアパケットを復元する。パケット処理部204cは、ＦＥＣ符号化部204cで得られたパケットを処理し、音声や映像の一連の配信データを形成する。【００４０】
受信装置204のＦＥＣ復号部204bの構成を図７に示す。ＦＥＣ復号部204bは、ＦＥＣパケット受信部204b1、データバッファリングメモリ204b2、ＦＥＣ符号階層数計算部204b3、ＦＥＣ復号演算回路204b4、メディアパケット送信部204b5で構成されている。【００４１】
ＦＥＣパケット受信部204b1は、パケット受信部204aから入力されるパケットのＦＥＣヘッダのシーケンス番号を検知し、１ブロックにおけるメディアパケット数とＦＥＣパケット数などの情報をＦＥＣ符号階層数計算部204b3へ通知する。また、受信したメディアパケット及びＦＥＣパケットのペイロードをＦＥＣヘッダのシーケンス番号順にデータバッファリングメモリ204b2に保存する。【００４２】
ＦＥＣ符号階層数計算部204b3は、メディアパケット数とＦＥＣパケット数などの情報を用いて、受信ブロックに施されている冗長化の階層数を算出し、その結果をＦＥＣ復号演算回路204b4へ通知する。ＦＥＣ復号演算回路204b4は、データバッファリングメモリ204b2に保存されているパケット群を、インターリーブ方式により、外層から内層に向けて段階的に復号する。【００４３】
＜動作＞図８〜１１を参照して、システムの動作の概要を説明する。図８より、送信装置201は、前述のインターリーブ方式により、ブロック内のｋ個のメディアパケットからｓ個のＦＥＣパケットを生成する。そして、生成したＦＥＣパケットをメディアパケットに続いてリンク101へ送信する（ステップS1）。ここで、ＦＥＣパケット数は、符号方式により異なるものであり、送信装置201の管理者等が予め設定したものを用いる。その値は、できる限り小さな値を設定することが望ましい。設定の一例としては、品質が一番悪いリンクのパケットロスに対処できる符号長を適用する。【００４４】
図９のフローチャートを参照して、送信装置201の符号動作について詳細に説明する。送信装置201の符号化部201bは、メディアデータを受信し（ステップ20101）、受信したメディアデータ数が１ブロック分に達していない場合（ステップ20102：NO）、メディアデータをコピーしてＦＥＣ符号演算回路201b3へ入力し（ステップ20103）、符号演算する。また、メディアデータにＦＥＣヘッダを付加（ステップ20104）してパケット送信部201cへ送信する。ＦＥＣ符号演算回路201b3による演算結果は冗長データ保存メモリに保存される（ステップ20105）。【００４５】
一方、受信したメディアデータ数が１ブロック分に達した場合（ステップ20102：YES）、ＦＥＣパケット送信部201b5が、冗長データ保存メモリ201b4から冗長データを読み取り（ステップ20106）、その冗長データからＦＥＣパケットを形成して送信する（ステップ20107,20108）。【００４６】
図８より、中継装置202は、送信装置201から１ブロック分のパケット群を受信すると、パケット間で符号演算しながら、パケットのシーケンス番号（ＦＥＣヘッダのシーケンス情報）からロスパケット数と符号階層数を計算する。そして、算出した符号階層数と符号演算結果を基に、受信リンク101で新たなパケットロスが発生したかを判定する（ステップS2）。【００４７】
パケットロスの発生を検知した場合（ステップS3：Yes）、中継装置202は、符号演算結果を基にＦＥＣパケットを生成して受信ブロックに追加し、それをリンク102を介して中継装置203へ転送する（ステップS4）。また、パケットロスがない、或いはパケットロス数がＦＥＣにより復元可能なパケット数よりも多い場合（ステップS3：No）、中継装置202は、ＦＥＣパケットを追加せず、受信ブロックをそのままリンク102により中継装置203へ転送する（ステップS5）。【００４８】
図１０のフローチャートを参照して、各中継装置（202,203）の符号処理について詳細に説明する。ここでは中継装置202について述べるが、他方の中継装置203の動作も以下に説明するものと同様である。【００４９】
中継装置202の符号化部202bは、パケット受信部202aが受信したパケットのシーケンス番号を確認し、受信パケットがどのブロックのパケットかを判別する（ステップ20201,20202）。受信パケットが前のブロックのパケットである場合（ステップ20203：YES）、そのパケットをパケット送信部202cへ送信する（ステップ20204）。また、前のブロックでもなく、後ろのブロックでもない場合（ステップ20203：NO、ステップ20205：NO）、符号化部202bは、受信パケットのペイロードをコピーしてＦＥＣ符号演算回路202b3へ入力する（ステップ20210）。【００５０】
その後、パケット受信部202aは、受信パケットをパケット送信部202cへ送信する（ステップ202011）。ＦＥＣ符号演算回路202b3による演算結果は冗長データ保存メモリ202b4に保存される（ステップ20212）。【００５１】
もし、受信パケットが後ろのブロックのものである場合（ステップ20205：YES）、符号化部202bは、１ブロック分のパケットを受信完了したと判定する。この場合、受信したブロックにおけるパケットのシーケンス番号を検索して、そのブロックのパケットロス数と符号階層数を計算する（ステップ20206）。計算の結果、新たなパケットロスが発生していない場合（ステップ20207：NO）、ＦＥＣ符号結果をクリアし、ブロックの監視ポイントを後続のブロックに移す（ステップ20208,20209）。その後、前記のステップ20210〜ステップ20212の処理を施す。【００５２】
一方、受信ブロックに新たなパケットロスが発生している場合（ステップ20207：YES）、ＦＥＣパケット送信部202b6が、冗長データ保存メモリ202b4から冗長データを読み取る（ステップ20213）。そして、その冗長データからＦＥＣパケットを形成してパケット送信部202cへ送信する（ステップ20214,20215）。【００５３】
図８より、中継装置203は、中継装置202から受信したブロックに対し、中継装置202における前述の処理（Ａ）と同じ処理を行い、そのブロックをリンク103を介して受信装置204へ転送する（ステップS6）。【００５４】
図８より、受信装置204は、受信したパケットのペイロードをシーケンス番号どおりにメモリへ保存する。そして、１ブロック分のパケット群を受信すると、予め決められているメディアパケット数（ｋ）とＦＥＣパケット数（ｓ）とを基に、そのブロックの符号階層数を計算する（ステップS7）。【００５５】
ブロックの符号階層数とは、送信装置201から中継装置203までの伝送中にブロックに収められたＦＥＣパケットの段数である。受信装置204は、算出した符号階層数を用いて、送信装置201と同じ符号方式で符号ブロックを外層から内層へ順次に復号処理を施す。これにより、損失したデータを復元し、送信装置201から供給された元の配信データを得る（ステップS8）。【００５６】
図１１のフローチャートを参照して、受信装置204の復号処理について説明する。受信装置204の復号部204bは、パケット受信部204aが受信したパケットのシーケンス番号を確認して（ステップ20401,20402）、受信パケットがどのブロックのパケットかを確認する。【００５７】
受信パケットが前のブロックのパケットである場合（ステップ20403：YES）、復号部204bは、パケットをパケット処理部204cへ送信する（ステップ20404）。また、前のブロックでもなく、後ろのブロックでもない場合は（ステップ20403：NO、ステップ20405：NO）、受信パケットのペイロードをデータバッファリングメモリ204b2に保存する（ステップ20411）。【００５８】
さらにまた、受信パケットが後ろのブロックのものである場合（ステップ20405：YES）、復号部204bは、１ブロック分のパケットを受信完了したと判定し、受信したブロックのメディアパケット数を確認する（ステップ20406）。確認の結果、メディアパケットにロスが発生していない場合（ステップ20407：NO）、復号部204bは、データバッファリングメモリ204b2のデータをパケット処理部204cへ送信した後、メモリをクリアする（ステップ20409,20410）。【００５９】
その後、復号部204bは、今回受信したパケットのペイロードをデータバッファリングメモリ204b2に保存する（ステップ20411）。【００６０】
一方、受信したブロックのメディアパケットにロスが発生している場合（ステップ20407：YES）、そのブロックのパケットロス数と符号階層数Ｑを計算し、ロスしたパケットが復元可能かを判断する（ステップ20412,20413）。復元可能な場合（ステップ20414：YES）、階層Ｑでパケット群を復号し（ステップ20415）、復号演算結果をデータバッファリングメモリに保存する（ステップ20416）。その後、上述のＱ回復号を繰り返してロスされたパケットを復号する（ステップ20415〜20418）。復号が終わった後、前記のステップ20408〜20411を行う。【００６１】
（実施例１）
第１の実施例を、図面を参照して説明する。かかる実施例は、上記の第１の実施の形態の具体例である。本実施例は、送信装置201、中継装置202,203、受信装置204における符号方式として、単一パリティ符号を利用する。従って、本実施例では図５〜７の送信装置201及び中継装置202,203のＦＥＣ符号演算回路（201b3,202b3）として、パケット間における単一パリティ符号演算回路（ＸＯＲ演算回路）を備える。【００６２】
単一パリティ符号方式を利用する場合、１ブロックに収められるＦＥＣパケットは一つのみであるため、本実施例は以下の特徴を利用する。送信装置201は、符号ブロックサイズ「Ｎ＝ｋ＋１」（ｋはメディアパケット数）を設定する。中継装置202,203は、受信したブロックのパケット数がｋ個である場合のみパケットロスが発生したと判定する。そして、受信した符号ブロックを、メディアパケットと見なして再符号化する。また、この場合、パケットロス数が１で、受信パケット数がｋであるため、中継装置202,203は、ブロックの符号処理を送信装置201と同じ符号ブロックサイズ「ｋ＋１」で行うことができる。【００６３】
以下、図１２において本実施例の動作について詳細に説明する。送信装置201のパリティ設定が、例えばParity(16,15)である場合、メディアパケット数「ｋ＝１５」、ＦＥＣパケット数「ｓ１＝１」である。送信装置201は、リンク101を介して前記メディアパケット及びＦＥＣパケットを第１の中継装置202に送信する。【００６４】
第１の中継装置202は、１ブロックのパケットを全部受信した場合（メディアパケットを１５個、ＦＥＣパケットを１個）、このブロックにはパケットロスが発生していないと判断し、受信したパケットを、ＦＥＣパケットを付加せずそのまま転送する。【００６５】
第２の中継装置203は、メディアパケットを１４個、ＦＥＣパケットを１個受信し、すなわち１ブロックとして合計ｋ（ｋ＝１５）パケットしか受信できなかったとする。この場合、ブロックにパケットロスが発生したと判断される。第２の中継装置203は、受信できた１５パケットによる符号演算の結果を基に、ＦＥＣパケットを１個生成し（Ｓ２＝１）、これを第１の中継装置202からの１５パケットに付加して送信する。【００６６】
受信装置204は、メディアパケットを１４個、ＦＥＣパケットを１個受信し、パケットが２個ロスしたことを検知する。そして、受信したパケットをＦＥＣパケットから段階的に復号化する。【００６７】
段階的な復号処理では、まず、受信したパケット１５個を用いたＸＯＲ演算により、ロスされたＦＥＣパケット（図１２：ＦＥＣパケットロス発生（2））を復元する。復元したパケットは前記受信パケットと別のメモリ領域に保存しても良いし、任意のロスパケットのメモリ位置に上書きしても良い。【００６８】
続いて、受信装置204は、外側のＦＥＣパケット（Ｓ２）を除去した後、前記復元パケットとその他の受信パケット１４個を用いたＸＯＲ演算により、ロスされたメディアパケット（図１２：メディアパケットロス発生（1））を復元する。今回の復元パケットは、前記受信パケットと別のメモリ領域に保存しても良いし、残りの任意のロスパケットのメモリ位置に上書きしても良い。【００６９】
このように、ロスしたパケット数の分（或いは符号階層数の分）ＸＯＲ演算することにより、最終的に、ロスしたメディアパケットを復元することができる。【００７０】
また、受信装置204によるロスパケットの復元方法としては、上記の方法に代えて、次の方法を用いても良い。受信装置204は、受信したメディアパケットとＦＥＣパケットのＦＥＣヘッダを終端した後、受信パケット間で一回の単一パリティ復号演算（ＸＯＲ演算）を行うことにより、ロスパケットを全部復元する。一回の復号演算でロスパケットを全部復元できる理由は、単一パリティ（ＸＯＲ演算）では、符号化／復号化の演算結果が同じであるためである。【００７１】
前記の中継装置203に着目すると、単一パリティ符号化により生成されたＦＥＣパケット（Ｓ２）のペイロードは、実際は、リンク102でロスされたメディアパケット（図１２：メディアパケットロス発生（1））のペイロードと同じものになる。つまり、各中継装置202,203における再符号化処理は、実際は、ロスパケットを再生することと同等である。従って、受信装置204は、最後のリンク（103）でロスしたパケットのみを復元すれば、各リンクでロスされたパケットが全部復元できることになる。【００７２】
（実施例２）
次に、第２の実施例を図面を参照して説明する。かかる実施例も前述の第１の実施の形態の具体例である。本実施例は、送信装置201、中継装置202,203、受信装置204における符号方式として巡回符号方式を利用する。従って、本実施例では図５〜７の送信装置201及び中継装置202,203のＦＥＣ符号演算回路（201b3,202b3）として、パケット間における巡回符号演算回路を備える。本実施例は、巡回符号方式としてＢＣＨ符号を想定したものである。【００７３】
ＢＣＨ符号方式を利用する場合、１ブロックに収められるＦＥＣパケット数ｔは二つ以上である。本実施例において、送信装置201は、符号ブロックサイズ「Ｎ＝ｋ＋ｔ」（ｋはメディアパケット数）に対応する生成多項式G(x)でメディアパケットを符号化する。【００７４】
中継装置202,203は、パケットロスを検出すると、受信した符号ブロックをメディアパケットと見なして再符号化するが、パケットロス数（Ｌ）が１の場合、中継装置202,203が受信するパケット数は「Ｘ＝Ｎ−Ｌ＞ｋ」となる。つまり、中継装置202,203で受信する受信パケット数Ｘは、送信装置201で符号化するメディアパケットの数ｋより大きくなる可能性がある。【００７５】
ところが、一般的に、メディアパケット数が増えると、それを符号化するための生成多項式G(x)を変える必要がある。よって、システムを転送されるブロックが、異なる生成多項式により何度も再符号化された場合、受信装置は、それを復号化するために、各生成多項式に対応する複数の復号回路を用意しておく必要がある。【００７６】
そこで、本実施例では、全ての装置で同一の生成多項式を利用するために、以下のアプローチを採る。符号化の方式として、例えば、BCH(N,K)を適用する場合、送信装置201は、符号化対象のメディアパケットＫの数を実際のメディアパケット数ｋより大きく設定し、両者の差分をダミーデータ（All‘0’）で埋める。こうすることで、中継装置202,203は、ＦＥＣパケットを含む受信パケットを情報ブロック内にシフトさせながら、送信装置201と同じ生成多項式G(x)を利用してブロック全体を再符号化できる。【００７７】
受信装置204は、受信パケット数と予め決められていた実メディアパケット数ｋ等から符号階層数を計算する。そして、送信装置201が使用したものと同じ生成多項式G(x)を利用して、符号階層数の分、段階的に復号処理することで、ロスパケットを復元することができる。【００７８】
以下、図１３において本実施例の動作について詳細に説明する。ＢＣＨ符号は、巡回符号の一つであり、例えば、ブロックサイズ「Ｎ＝３１」及びデータサイズ「Ｋ＝２６」の場合、１パケットロスの補償が可能である。以降、この「ＢＣＨ（３１，２６）」を想定し、システム全体の動作について説明する。【００７９】
送信装置201において、１ブロックに収めるべきメディアパケット数「ｋ」は、上述のメディアパケット数「Ｋ＝２６」より低く設定する。なぜなら、後段の中継装置（202,203）での符号化により、１ブロックの受信パケット数（Ｘ）がメディアパケット数（Ｋ）より大きくなる可能性があるからである。本事例では、メディアパケット数を１５個（ｋ＝１５）に設定する。【００８０】
なお、ブロック中の空きビットには「00」を補填する。本事例では、１５ビットのメディアパケットの先頭に１１ビット分の「00」データを付加することで、合計のデータサイズを２６ビット（Ｋ＝２６）にする。送信装置201は、この２６ビットのデータに対し、ＢＣＨ（３１，２６）によりＦＥＣ符号化を施す。【００８１】
第１の中継装置202は、送信装置201から受信したブロックを解析し、リンク101におけるパケットロスの発生状況を判定する。中継装置202は、受信パケットをリンク102に転送しながら、受信パケット間で符号演算し、その演算結果をもとに誤り検出を行う。図１３の例では、１ブロック分のパケット間で符号演算した結果が全て「0」（All‘0’）、すなわち誤りが発生していない。よって、中継装置202は、受信したブロックにはパケットロスが発生してないと判断する。この場合、中継装置202は、ＦＥＣパケットを付加することなくブロックを転送する。【００８２】
ここで、中継装置202が出力したブロックのうち、メディアパケットＸがリンク102で１つロスしたとする（図１３：メディアパケットロス発生（1））。このブロックを受信した第２の中継装置203は、第１の中継装置202による前述の動作と同様に、受信パケットをリンク103に転送しながら、受信パケット間で符号演算して誤り検出を行う。【００８３】
１ブロック分のパケット間で符号演算した結果が全て「0」（All‘0’）にならず、誤りが検出された場合、そのブロックにはパケットロスが発生していると判断される。この場合、第２の中継装置203は、符号演算の結果から生成されるＦＥＣパケット（Ｓ２）を、中継装置202からのパケットに続いて送信する。例えば、受信したブロック（x=15-1,S1=5）から生成した５個のＦＥＣパケットS2（S2=5）を、そのブロックに追加して受信装置204へ転送する。【００８４】
続いて、中継装置203から送信されたブロックのうち、ＦＥＣパケットS1がリンク103で１つ損失したとする（図１３：ＦＥＣパケットロス発生（2））。受信装置204は、中継装置203からのブロックを受信した後、先ず、受信パケットのシーケンス番号をもとに、メディアパケットがロスしたかどうかを判断する。【００８５】
メディアパケットがロスしている場合、受信装置204は、符号ブロックの符号階層数（冗長化の階層数）を計算し、符号ブロックを外部から内部へ段階的に復号処理する。冗長化の階層数が、例えば２である場合、以下の復号化処理を行う。【００８６】
図１３で示すように、受信したブロックの全パケットを復号し、損失した１つのＦＥＣパケットS1（ＦＥＣパケットロス発生（2））を復元する。これにより、ＦＥＣパケットS1の数量が、元の数量の５個になる（S1=5）。続いて、受信装置204は、この５個のＦＥＣパケットS1と、受信した１４個のメディアパケット（x=14）とを１つのブロックとして復号演算する。これにより、リンク102で損失した１つのメディアパケット（メディアパケットロス発生（1））を復元し、合計１５個のメディアパケット（x=15）を得る。そして、その１５個のメディアパケットから、送信装置201が供給した元のメディアデータを形成する。【００８７】
このように、転送リンク上で損失したパケットが、メディアパケット及びＦＥＣパケットの何れであっても、それらを受信装置204で復元することができる。【００８８】
なお、冗長化の階層数は、受信装置204で受信したＦＥＣパケットのシーケンス番号から算出する。例えば、受信装置204において、受信ブロックにおける最小のＦＥＣシーケンスＳが既知であり、実際に受信したブロックのＦＥＣパケットの最大のシーケンス番号が「Ｓ＋ｓ１＋ｓ２」であるとする。この場合、受信装置204は、冗長化の階層数を計算するために、先ず「Ｙ＝（「Ｓ＋ｓ１＋ｓ２」−Ｓ）％ｓ１」を計算する。Ｙが０の場合、冗長化の階層数は「（「Ｓ＋ｓ１＋ｓ２」−Ｓ）／ｓ１」で、Ｙが０でない場合、冗長化の階層数は「｛（「Ｓ＋ｓ１＋ｓ２」−Ｓ）／ｓ１｝＋１」になる。【００８９】
以上説明したように、本実施例の各中継装置（202,203）は、受信したブロックにおけるパケットロスの有無に応じて、そのブロックの誤り訂正能力を設定する。よって、ブロックの誤り訂正能力を伝送初期の段階で、すなわち送信装置201で、高く設定することは不要となる。これにより、配信データの伝送効率を高めることができる。また、伝送中のネットワーク品質の変動にも動的に対処できる。【００９０】
≪実施の形態２≫
上記実施形態の各中継装置（202,203）は、受信したブロックにパケットロスが発生した場合に、そのブロックにＦＥＣパケットを追加したが、これに替えて、送信リンクの通信品質に応じてＦＥＣパケットを追加するように制御してもよい。この制御を実現するためには、各中継装置（202,203）の構成を以下のように変更すればよい。【００９１】
図６に示す中継装置202のＦＥＣ符号化部202bにおいて、パケットロス検出部202b5を省略し、また、ＦＥＣパケット受信部202b1を直接ＦＥＣパケット送信部202b6と連携させる。つまり、ＦＥＣパケット受信部202b1が、１ブロック分のパケット群を受信したと判定したとき、その旨をＦＥＣパケット送信部202b6に通知する。また、ＦＥＣパケット送信部202b6に、送信リンクの通信品質を推定する機能を追加する。そして、品質の推定結果をもとに、ＦＥＣ冗長度を向上すべきか否かを判断する。【００９２】
図１４に示すシーケンスを参照して、本実施形態の動作を説明する。なお、図示のシーケンスのうち、送信装置201及び受信装置204の動作（ステップS11,S17,S18）は、図８に沿って説明した前述の動作（ステップS1,S7,S8）と同様であり、以下では説明を省略する。【００９３】
第１の中継装置202は、送信装置201から１ブロック分のパケット群を受信すると、送信リンクであるリンク102の通信品質を推定する（ステップS12）。この推定は、ブロックを受信したときに限らず、定期的に行ってもよい。中継装置202は、推定した品質値に基づいて、送信リンク（102）におけるパケットロスの可能性を判断する。例えば、送信リンク（102）の品質推定値が基準値より低い場合、そのリンクにてパケットロスが発生する可能性があると判断する。【００９４】
上記判断の結果、パケットロスが発生する可能性がある場合（ステップS13：YES）、中継装置202は、送信装置201から受信したブロックにＦＥＣパケットを追加し、それを中継装置203へ転送する（ステップS14）。また、リンク102でのパケットロスの可能性が無いと判定した場合は（ステップS13：NO）、送信装置201からのブロックをそのまま中継装置203へ転送する（ステップS15）。【００９５】
中継装置203は、中継装置202からリンク102を介してブロックを受信すると、リンク103を送信リンクとみなして、受信したブロックに対し、中継装置202における前述の処理（Ｂ）と同様な処理を行う（ステップS16）。【００９６】
このように、図１４の実施形態は、各中継装置（202,203）が、送信リンクの通信品質に応じてブロックの冗長度を高めるか否かを判断することから、送信リンクの品質が受信リンクのそれよりも大幅に劣化した場合にも対処できる。【００９７】
なお、本実施形態は、図８により説明した前述の実施形態と組み合わせてもよい。このとき、中継装置202は、受信リンク（101）からのブロックにパケットロスは無いが、そのブロックの転送に用いるリンク（102）の品質が劣化していると判断した場合、そのブロックにＦＥＣパケットを追加する。また、逆に、送信リンク（102）の品質が適切である状況において、受信ブロックにパケットロスが発生している場合は、そのブロックにＦＥＣパケットを追加せず転送する。これにより、ブロックの誤り訂正能力を適応的に強化することができる。
【図１】
2008139882.tif 000003
【図２】
2008139882.tif 000004
【図３】
2008139882.tif 000005
【図４】
2008139882.tif 000006
【図５】
2008139882.tif 000007
【図６】
2008139882.tif 000008
【図７】
2008139882.tif 000009
【図８】
2008139882.tif 000010
【図９】
2008139882.tif 000011
【図１０】
2008139882.tif 000012
【図１１】
2008139882.tif 000013
【図１２】
2008139882.tif 000014
【図１３】
2008139882.tif 000015
【図１４】
2008139882.tif 000016
【国際調査報告】
2008139882.tif 000017
2008139882.tif 000018
2008139882.tif 000019
2008139882.tif 000020