(57)【要約】【課題】データパケットの伝送帯域の増加を招くことなく、ビット誤りがあるデータパケットを正しく復元することができるようにする。【解決手段】送信端末１がデータパケット及び冗長パケットにおける分割フィールドＦ（ｉ）のチェックサム値をＲＴＰヘッダに挿入する一方、受信端末２がデータパケット及び冗長パケットのＲＴＰヘッダに挿入されているチェックサム値を参照して、データパケット及び冗長パケットの分割フィールドＦ（ｉ）におけるビット誤りを検出し、ビット誤りが検出されていない冗長パケットの分割フィールドを用いて、ビット誤りが検出されたデータパケットの分割フィールドＦ（ｉ）を復元する。【選択図】図１
2008187646.tif 000002
【特許請求の範囲】
【請求項１】
ソースデータをパケット化して送信するとともに、上記ソースデータの冗長データをパケット化して送信する送信端末と、上記送信端末から送信されたソースデータのパケットであるデータパケット及び上記冗長データのパケットである冗長パケットを受信し、上記データパケットにビット誤りがあれば、上記冗長パケットを用いて、上記データパケットを復元する受信端末とを備えたパケット通信システムにおいて、上記送信端末が上記データパケット及び上記冗長パケットにおける各分割フィールドのビット誤り検出用データを算出して、上記ビット誤り検出用データを上記データパケット及び上記冗長パケットのヘッダ部に挿入する検出用データ挿入手段を備え、上記受信端末が上記データパケット及び上記冗長パケットのヘッダ部に挿入されているビット誤り検出用データを参照して、上記データパケット及び上記冗長パケットの各分割フィールドにおけるビット誤りを検出する誤り検出手段と、上記誤り検出手段によりビット誤りが検出されていない冗長パケットの分割フィールドを用いて、上記誤り検出手段によりビット誤りが検出されたデータパケットの分割フィールドを復元するパケット復元手段とを備えたことを特徴とするパケット通信システム。
【請求項２】
誤り検出手段は、送信端末から送信されたデータパケット及び冗長パケットにおける各分割フィールドのビット誤り検出用データを算出し、上記ビット誤り検出用データと上記データパケット及び上記冗長パケットのヘッダ部に挿入されているビット誤り検出用データとを比較して、各分割フィールドにおけるビット誤りを検出することを特徴とする請求項１記載のパケット通信システム。
【請求項３】
検出用データ挿入手段は、ビット誤り検出用データを圧縮符号化して、圧縮符号化後のビット誤り検出用データをデータパケット及び冗長パケットのヘッダ部に挿入することを特徴とする請求項１記載のパケット通信システム。
【請求項４】
誤り検出手段は、送信端末から送信されたデータパケット及び冗長パケットにおける各分割フィールドのビット誤り検出用データを算出して、上記ビット誤り検出用データを圧縮符号化し、圧縮符号化後のビット誤り検出用データと上記データパケット及び上記冗長パケットのヘッダ部に挿入されている圧縮符号化後のビット誤り検出用データとを比較して、各分割フィールドにおけるビット誤りを検出することを特徴とする請求項３記載のパケット通信システム。
【請求項５】
検出用データ挿入手段は、各分割フィールドのビット誤り検出用データとして、各分割フィールドのチェックサム値を算出することを特徴とする請求項１から請求項４のうちのいずれか１項記載のパケット通信システム。
【請求項６】
ソースデータを生成するソースデータ生成手段と、上記ソースデータ生成手段により生成されたソースデータをパケット化し、上記ソースデータのパケットであるデータパケットを予め設定されたサイズで分割して、上記データパケットにおける各分割フィールドのビット誤り検出用データを算出する第１の検出用データ算出手段と、上記第１の検出用データ算出手段により算出されたビット誤り検出用データを上記データパケットのヘッダ部に挿入する第１の検出用データ挿入手段と、上記データパケットから冗長データを生成する冗長データ生成手段と、上記冗長データ生成手段により生成された冗長データのパケットである冗長パケットを予め設定されたサイズで分割して、上記冗長パケットにおける各分割フィールドのビット誤り検出用データを算出する第２の検出用データ算出手段と、上記第２の検出用データ算出手段により算出されたビット誤り検出用データを上記冗長パケットのヘッダ部に挿入する第２の検出用データ挿入手段と、上記第１及び第２の検出用データ挿入手段によりビット誤り検出用データが挿入されたデータパケット及び冗長パケットを受信端末に送信するパケット送信手段とを備えた送信端末。
【請求項７】
送信端末から送信されたデータパケット及び冗長パケットを受信するパケット受信手段と、上記パケット受信手段により受信されたデータパケット及び冗長パケットにおける各分割フィールドのビット誤り検出用データを算出するビット誤り検出用データ算出手段と、上記パケット受信手段により受信されたデータパケット及び冗長パケットのヘッダ部から各分割フィールドのビット誤り検出用データを抽出するビット誤り検出用データ抽出手段と、上記ビット誤り検出用データ算出手段により算出された各分割フィールドのビット誤り検出用データと上記ビット誤り検出用データ抽出手段により抽出された各分割フィールドのビット誤り検出用データとを比較して、各分割フィールドにおけるビット誤りを検出するビット誤り検出手段と、上記ビット誤り検出手段によりビット誤りが検出されていない冗長パケットの分割フィールドを用いて、上記ビット誤り検出手段によりビット誤りが検出されたデータパケットの分割フィールドを復元するパケット復元手段とを備えた受信端末。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、送信端末から送信されたデータパケットに伝送路上でビット誤りが発生すれば、受信端末が冗長パケットを用いて、そのデータパケットを復元するパケット通信システムと、ビット誤りが発生しても復元可能なデータパケットを送信する送信端末と、送信端末から送信された冗長パケットを用いて、データパケットを復元する受信端末とに関するものである。
【背景技術】
【０００２】
近年のブロードバンド化の進展により、映像や音声などのマルチメディアのストリーミング配信が広まっている。
例えば、無線ＬＡＮ、携帯電話網や衛星回線などのワイヤレス通信インフラを利用するストリーミング配信も普及していきている。
しかし、ストリーミング配信は一般的にＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）が使用され、ネットワークの輻輳などが原因でパケットロスが発生する。また、ワイヤレス通信では、電波干渉などが原因でビット誤りによるパケットロスが発生する。
【０００３】
パケット通信システムでは、上記のようなパケットロスに対処するため、ＦＥＣ（Ｆｏｒｗａｒｄ  Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ）などのエラー訂正技術が一般的に利用されている。
ＦＥＣでは、送信端末がデータパケットを受信端末に送信する際、そのデータパケットの冗長パケットをデータパケットに付加して送信し、受信端末が冗長パケットを利用して、ロスしているデータパケットの復元を行う。
しかし、ＵＤＰでは、データパケット及び冗長パケットのいずれにおいても、通常チェックサムの解析によって１ビットでも誤りが検出されると、パケット毎、破棄することになるため、その他の正しいビット列情報が無駄になり、有効にＦＥＣを使えなくなることがある。
一方、ＵＤＰのチェックサムを無効にして、ビット誤りがある状態でもパケットを受信するようにすると、冗長パケットや、冗長パケットの復元対象であるデータパケットが正しいビット列になるとは限らず、誤ったビット列が復元されることがある。ただし、ビット誤り量が少なければ、映像や音声の符号化のエラー耐性技術によって、正常にデコードできる可能性もある。
【０００４】
以下の非特許文献１では、ビット誤りが存在する冗長パケットを活用してデータパケットを復元する手法を提案している。
即ち、非特許文献１には、複数の冗長パケットから複数のデータパケット候補（参考パケット）を復号し、それらの参考パケットの多数決によって正しいデータパケットを作成する手法を提案している（図２を参照）。
【０００５】
また、以下の特許文献１〜３には、パケット単位でチェックサムを挿入するのではなく、ペイロードを細かくユニットに分割して、ユニット単位でチェックサムを挿入することにより、ビット誤りの有無判定処理の高速化を図る技術が開示されている。
このように、多数のチェックサムを挿入すれば、ビット誤りの有無を高速に判定することができるが、データパケットの伝送帯域が増加してネットワークの輻輳を生じることがあるため、逆にパケットロスが増加する要因になることがある。
【０００６】
【非特許文献１】大和良平、梅原大祐、森広芳照、野口拓、川合誠著、「誤りパケットを利用したＴｏｒｎａｄｏ型符号の復号法」、電子情報通信学会技術報告、衛星通信研究会、ＳＡＴ２００４−１６２、ｐｐ．６３−６８、２００４年１２月
【特許文献１】特開２００４−１５３４７１号公報
【特許文献２】特開２００４−２３４５８８号公報
【特許文献３】特開２００１−２３０７９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来のパケット通信システムは以上のように構成されているので、参考パケットの多数決によってデータパケットを復元する場合、誤りがある参考パケットの方が多ければ、正しくデータパケットを復元することができず、また、データパケットが正しいにも拘らず、間違ったビット値に復元されることがあるなどの課題があった。
【０００８】
この発明は上記のような課題を解決するためになされたもので、データパケットの伝送帯域の増加を招くことなく、ビット誤りがあるデータパケットを正しく復元することができるパケット通信システムを得ることを目的とする。
また、この発明は、データパケットの伝送帯域の増加を招くことなく、ビット誤りが発生しても復元可能なデータパケットを送信することができる送信端末を得ることを目的とする。
また、この発明は、送信端末から送信された冗長パケットを用いて、データパケットを正しく復元することができる受信端末を得ることを目的とする。
【課題を解決するための手段】
【０００９】
この発明に係るパケット通信システムは、送信端末がデータパケット及び冗長パケットにおける各分割フィールドのビット誤り検出用データを算出して、そのビット誤り検出用データをデータパケット及び冗長パケットのヘッダ部に挿入する検出用データ挿入手段を備え、受信端末がデータパケット及び冗長パケットのヘッダ部に挿入されているビット誤り検出用データを参照して、データパケット及び冗長パケットの各分割フィールドにおけるビット誤りを検出する誤り検出手段と、その誤り検出手段によりビット誤りが検出されていない冗長パケットの分割フィールドを用いて、その誤り検出手段によりビット誤りが検出されたデータパケットの分割フィールドを復元するパケット復元手段とを備えるようにしたものである。
【発明の効果】
【００１０】
この発明によれば、送信端末がデータパケット及び冗長パケットにおける各分割フィールドのビット誤り検出用データを算出して、そのビット誤り検出用データをデータパケット及び冗長パケットのヘッダ部に挿入する検出用データ挿入手段を備え、受信端末がデータパケット及び冗長パケットのヘッダ部に挿入されているビット誤り検出用データを参照して、データパケット及び冗長パケットの各分割フィールドにおけるビット誤りを検出する誤り検出手段と、その誤り検出手段によりビット誤りが検出されていない冗長パケットの分割フィールドを用いて、その誤り検出手段によりビット誤りが検出されたデータパケットの分割フィールドを復元するパケット復元手段とを備えるように構成したので、データパケットの伝送帯域の増加を招くことなく、ビット誤りがあるデータパケットを正しく復元することができる効果がある。
【発明を実施するための最良の形態】
【００１１】
実施の形態１．
図１はこの発明の実施の形態１によるパケット通信システムを示す構成図であり、図において、送信端末１と受信端末２は例えば無線ＬＡＮ、携帯電話網、衛星回線などのネットワーク３を介して受信端末２と接続されている。
送信端末１はデータパケット及び冗長パケットを受信端末２に送信し、受信端末２は送信端末１から送信された冗長パケットを用いて、ビット誤りがあるデータパケットを復元する。
【００１２】
送信端末１のソースデータ生成部１１は例えば映像や音声のエンコーダであり、映像や音声などのマルチメディアデータであるソースデータを生成する処理を実施する。なお、ソースデータ生成部１１はソースデータ生成手段を構成している。
分割誤り検知符号算出部１２はソースデータ生成部１１により生成されたソースデータをパケット化し、そのソースデータのパケットであるデータパケットを予め設定されたサイズで分割して、そのデータパケットにおける分割フィールドＦ（ｉ）（例えば、ｉ＝１，２，３，４）のビット誤り検出用データであるチェックサム値ＴＳ（ｉ）を算出し、また、冗長データ生成部１４により生成された冗長データのパケットである冗長パケットを予め設定されたサイズで分割して、その冗長パケットにおける分割フィールドＦ（ｉ）のビット誤り検出用データであるチェックサム値ＴＳ（ｉ）を算出する処理を実施する。
なお、分割誤り検知符号算出部１２は第１及び第２の検出用データ算出手段を構成している。
【００１３】
送信バッファ１３はパケット送信部１６により送信されたデータパケットを記録するメモリである。
冗長データ生成部１４は例えば送信バッファ１３に記録されている複数のデータパケットの排他的論理和を演算して冗長データを生成する処理を実施する。
なお、送信バッファ１３及び冗長データ生成部１４から冗長データ生成手段が構成されている。
【００１４】
分割誤り検知符号挿入部１５は分割誤り検知符号算出部１２がデータパケットにおける分割フィールドＦ（ｉ）のチェックサム値ＴＳ（ｉ）を算出すると、そのチェックサム値ＴＳ（ｉ）を圧縮符号化し、圧縮符号化後のチェックサム値ＣＴＳ（ｉ）をデータパケットのＲＴＰヘッダ（ヘッダ部）におけるチェックサムフィールドに挿入し、また、分割誤り検知符号算出部１２が冗長パケットにおける分割フィールドＦ（ｉ）のチェックサム値ＴＳ（ｉ）を算出すると、そのチェックサム値ＴＳ（ｉ）を圧縮符号化し、圧縮符号化後のチェックサム値ＣＴＳ（ｉ）を冗長パケットのＲＴＰヘッダにおけるチェックサムフィールドに挿入する処理を実施する。
なお、分割誤り検知符号挿入部１５は第１及び第２の検出用データ挿入手段を構成している。
また、分割誤り検知符号算出部１２及び分割誤り検知符号挿入部１５から検出用データ挿入手段が構成されている。
【００１５】
パケット送信部１６は分割誤り検知符号挿入部１５によりチェックサム値ＣＴＳ（ｉ）が挿入されたデータパケット及び冗長パケットを受信端末２に送信する処理を実施する。なお、パケット送信部１６はパケット送信手段を構成している。
受信端末２のパケット受信部２１は送信端末１から送信されたデータパケット及び冗長パケットを受信する処理を実施する。なお、パケット受信部２１はパケット受信手段を構成している。
【００１６】
冗長パケット識別部２２はパケット受信部２１により受信されたパケットがデータパケットであるのか、冗長パケットであるのかを識別する処理を実施する。
分割誤り検知符号抽出部２３はパケット受信部２１により受信されたデータパケット及び冗長パケットのＲＴＰヘッダから圧縮符号化後のチェックサム値ＣＴＳ（ｉ）を抽出する処理を実施する。なお、分割誤り検知符号抽出部２３はビット誤り検出用データ抽出手段を構成している。
【００１７】
分割誤り検知符号算出部２４はパケット受信部２１により受信されたデータパケット及び冗長パケットにおける分割フィールドＦ（ｉ）のチェックサム値ＴＳｒ（ｉ）を算出する処理を実施する。なお、分割誤り検知符号算出部２４はビット誤り検出用データ算出手段を構成している。
分割誤り検出部２５は分割誤り検知符号算出部２４により算出されたチェックサム値ＴＳｒ（ｉ）を圧縮符号化し、圧縮符号化後のチェックサム値ＣＴＳｒ（ｉ）と分割誤り検知符号抽出部２３により抽出された圧縮符号化後のチェックサム値ＣＴＳ（ｉ）とを比較して、分割フィールドＦ（ｉ）におけるビット誤りを検出する処理を実施する。なお、分割誤り検出部２５はビット誤り検出手段を構成している。
また、分割誤り検知符号抽出部２３、分割誤り検知符号算出部２４及び分割誤り検出部２５から誤り検出手段が構成されている。
【００１８】
データパケット受信バッファ２６はパケット受信部２１により受信されたパケットのうち、冗長パケット識別部２２によりデータパケットであると識別されたパケットを記録するとともに、データパケット復元部２８により復元されたデータパケットを記録するメモリである。
冗長パケット受信バッファ２７はパケット受信部２１により受信されたパケットのうち、冗長パケット識別部２２により冗長パケットであると識別されたパケットを記録するメモリである。
【００１９】
データパケット復元部２８は分割誤り検出部２５によりビット誤りが検出されていない冗長パケットの分割フィールドを用いて、分割誤り検出部２５によりビット誤りが検出されたデータパケットの分割フィールドを復元する処理を実施する。なお、データパケット復元部２８はパケット復元手段を構成している。
図７はこの発明の実施の形態１による送信端末１の処理内容を示すフローチャートであり、図８はこの発明の実施の形態１による受信端末２の処理内容を示すフローチャートである。
また、図９はこの発明の実施の形態１による受信端末２のパケット復元処理を示すフローチャートである。
【００２０】
次に動作について説明する。
送信端末１のソースデータ生成部１１は、送信対象のマルチメディアデータ（例えば、映像、音声）であるソースデータを生成する。
分割誤り検知符号算出部１２は、ソースデータ生成部１１がソースデータを生成すると、ソースデータ生成部１１からソースデータを入力し（図７のステップＳＴ１）、そのソースデータを予め決められた最大データサイズでフラグメントしてパケット化する（ステップＳＴ２）。
これにより、ＲＴＰヘッダ及びＵＤＰヘッダが先頭に付加されているデータパケットが生成される。
図４は分割誤り検知符号算出部１２により生成されるパケットの構成及びビット誤り検出用データであるチェックサム値の算出挿入方法を示す説明図である。
【００２１】
次に、分割誤り検知符号算出部１２は、データパケットであるＵＤＰパケットのＲＴＰペイロードを予め決められた数に区切って分割フィールドを定義する。
例えば、分割誤り検知符号算出部１２は、ＲＴＰペイロードを４つに均等に分割することにより、分割フィールドＦ（ｉ）を生成する（ステップＳＴ３）。ただし、ｉ＝｛１，２，３，４｝である。
分割誤り検知符号算出部１２は、分割フィールドＦ（ｉ）を生成すると、各分割フィールドのビット誤り検出用データとして、分割フィールドＦ（ｉ）のチェックサム値ＴＳ（ｉ）を算出する（ステップＳＴ４〜ＳＴ７）。ただし、ｉ＝｛１，２，３，４｝である。
図４では、１６ビットのチェックサム値ＴＳ（ｉ）を算出している例を示している。
なお、チェックサム値ＴＳ（ｉ）の算出自体は公知の技術であるため詳細な説明を省略する。
【００２２】
分割誤り検知符号挿入部１５は、分割誤り検知符号算出部１２がデータパケットにおける分割フィールドＦ（ｉ）のチェックサム値ＴＳ（ｉ）を算出すると、図４に示すように、ＲＴＰヘッダを拡張してチェックサムフィールドを設け、その分割フィールドＦ（ｉ）のチェックサム値ＴＳ（ｉ）を圧縮符号化する（ステップＳＴ８〜ＳＴ１１）。
例えば、巡回符号方式やリード・ソロモン符号化方式などを利用して、１６ビットのチェックサム値ＴＳ（ｉ）を４ビットのチェックサム値ＣＴＳ（ｉ）に圧縮符号化する。この場合、ＲＴＰヘッダの拡張サイズは２バイト（４ビット×４）になる。
そして、分割誤り検知符号挿入部１５は、圧縮符号化後のチェックサム値ＣＴＳ（ｉ）をＲＴＰヘッダのチェックサムフィールドに挿入する（ステップＳＴ１２〜ＳＴ１５）。
【００２３】
図４では、分割フィールドＦ（１）のチェックサム値ＣＴＳ（１）をチェックサムフィールドの０ビット目、分割フィールドＦ（２）のチェックサム値ＣＴＳ（２）をチェックサムフィールドの４ビット目、分割フィールドＦ（３）のチェックサム値ＣＴＳ（３）をチェックサムフィールドの８ビット目、分割フィールドＦ（４）のチェックサム値ＣＴＳ（４）をチェックサムフィールドの１２ビット目に挿入している例を示している。
ここでは、情報量を削減するため、圧縮符号化後のチェックサム値ＣＴＳ（ｉ）をＲＴＰヘッダのチェックサムフィールドに挿入するものについて示したが、圧縮符号化前のチェックサム値ＴＳ（ｉ）をＲＴＰヘッダのチェックサムフィールドに挿入するようにしてもよい。
【００２４】
次に、分割誤り検知符号挿入部１５は、ＵＤＰヘッダとＲＴＰヘッダ（拡張しているチェックサムフィールドは含むが、ＲＴＰペイロードは含まない）のチェックサム値（１６ビット）を算出し（ステップＳＴ１６）、そのチェックサム値をビット反転して、ビット反転後のチェックサム値をＵＤＰヘッダのチェックサムフィールドに挿入する（ステップＳＴ１７）。
【００２５】
パケット送信部１６は、分割誤り検知符号挿入部１５がビット反転後のチェックサム値をＵＤＰヘッダのチェックサムフィールドに挿入すると、チェックサム値が挿入されているデータパケットを受信端末２に送信する（ステップＳＴ１８）。
また、パケット送信部１６は、受信端末２に送信したデータパケットの中からＵＤＰヘッダを除いて、残りのＲＴＰパケットを送信バッファ１３に記録する（ステップＳＴ１９）。
【００２６】
冗長データ生成部１４は、送信バッファ１３に記録されている複数のデータパケット（ＲＴＰパケット）の排他的論理和を演算して冗長データを生成する。
例えば、データパケットＤＰ（１），ＤＰ（２），ＤＰ（３）におけるＲＴＰペイロードの排他的論理和を演算して冗長データＪＰ（１）を生成する。同様に、データパケットＤＰ（２），ＤＰ（３），ＤＰ（４）におけるＲＴＰペイロードの排他的論理和を演算して冗長データＪＰ（２）を生成する。
この場合、データパケットＤＰ（１），ＤＰ（２），ＤＰ（３）は、冗長データＪＰ（１）の復元対象のデータパケットであり、データパケットＤＰ（２），ＤＰ（３），ＤＰ（４）は、冗長データＪＰ（２）の復元対象のデータパケットである。
したがって、例えば、データパケットＤＰ（２）やＤＰ（３）は、仮にビット誤りが受信側で発生していても、冗長データＪＰ（１）又はＪＰ（２）のパケットと、それらの冗長パケットが復元対象としているデータパケットをビット誤りなく受信することができていれば、正しく復元することができる。
【００２７】
分割誤り検知符号算出部１２は、冗長データ生成部１４が冗長データを生成すると、冗長データ生成部１４から冗長データを入力し（ステップＳＴ１）、上述したソースデータの場合と同様に、その冗長データを予め決められた最大データサイズでフラグメントしてパケット化する（ステップＳＴ２）。
これにより、ＲＴＰヘッダ及びＵＤＰヘッダが先頭に付加されている冗長パケットが生成される。
【００２８】
次に、分割誤り検知符号算出部１２は、ソースデータの場合と同様に、冗長パケットであるＵＤＰパケットのＲＴＰペイロードを４つに均等に分割することにより、分割フィールドＦ（ｉ）を生成する（ステップＳＴ３）。ただし、ｉ＝｛１，２，３，４｝である。
分割誤り検知符号算出部１２は、分割フィールドＦ（ｉ）を生成すると、各分割フィールドのビット誤り検出用データとして、分割フィールドＦ（ｉ）のチェックサム値ＴＳ（ｉ）を算出する（ステップＳＴ４〜ＳＴ７）。
【００２９】
分割誤り検知符号挿入部１５は、分割誤り検知符号算出部１２が冗長パケットにおける分割フィールドＦ（ｉ）のチェックサム値ＴＳ（ｉ）を算出すると、ソースデータの場合と同様に、ＲＴＰヘッダを拡張してチェックサムフィールドを設け、その分割フィールドＦ（ｉ）のチェックサム値ＴＳ（ｉ）を圧縮符号化する（ステップＳＴ８〜ＳＴ１１）。
そして、分割誤り検知符号挿入部１５は、圧縮符号化後のチェックサム値ＣＴＳ（ｉ）をＲＴＰヘッダのチェックサムフィールドに挿入する（ステップＳＴ１２〜ＳＴ１５）。
【００３０】
次に、分割誤り検知符号挿入部１５は、ＵＤＰヘッダとＲＴＰヘッダ（拡張しているチェックサムフィールドは含むが、ＲＴＰペイロードは含まない）のチェックサム値（１６ビット）を算出し（ステップＳＴ１６）、そのチェックサム値をビット反転して、ビット反転後のチェックサム値をＵＤＰヘッダのチェックサムフィールドに挿入する（ステップＳＴ１７）。
【００３１】
パケット送信部１６は、分割誤り検知符号挿入部１５がビット反転後のチェックサム値をＵＤＰヘッダのチェックサムフィールドに挿入すると、チェックサム値が挿入されている冗長パケットを受信端末２に送信する（ステップＳＴ１８）。
全てのソースデータのデータパケット及び冗長パケットの送信が完了するまで、ステップＳＴ１〜ＳＴ１９の処理が繰り返し実施される（ステップＳＴ２０，ＳＴ２１）。
【００３２】
受信端末２のパケット受信部２１は、送信端末１がデータパケット又は冗長パケットを送信すると、そのデータパケット又は冗長パケットを受信する（図８のステップＳＴ３１）。
ここで、図５はパケット受信部２１により受信されるパケットの構成及びビット誤りの検出方法を示す説明図である。
【００３３】
分割誤り検出部２５は、パケット受信部２１がデータパケット又は冗長パケットを受信すると、図５に示すように、そのデータパケット又は冗長パケットのＵＤＰヘッダとＲＴＰヘッダ（拡張しているチェックサムフィールドは含むが、ＲＴＰペイロードは含まない）のチェックサム値（１６ビット）を算出する（ステップＳＴ３２）。
即ち、ＵＤＰヘッダとＲＴＰヘッダを２バイト単位で加算してチェックサム値を算出する。
【００３４】
分割誤り検出部２５は、そのチェックサム値が“０”以外である場合（ステップＳＴ３３）、ＵＤＰヘッダ又はＲＴＰヘッダにビット誤りが存在していると判断して、パケット受信部２１により受信されたデータパケット又は冗長パケットを破棄する。
即ち、ＵＤＰヘッダ又はＲＴＰヘッダにビット誤りが存在する場合、ＲＴＰヘッダのシーケンス番号や、拡張しているチェックサムフィールドにも誤りがある可能性があり、後のデータパケットの復元ができなくなるので、パケット受信部２１により受信されたデータパケット又は冗長パケットをデータパケット受信バッファ２６又は冗長パケット受信バッファ２７には記録せずに破棄する。
【００３５】
分割誤り検知符号抽出部２３は、分割誤り検出部２５がＵＤＰヘッダ又はＲＴＰヘッダにビット誤りが存在していないと判断すると、図５に示すように、パケット受信部２１により受信されたデータパケット又は冗長パケットのＲＴＰヘッダのチェックサムフィールドから圧縮符号化後のチェックサム値ＣＴＳ（ｉ）を抽出する（ステップＳＴ３４，ＳＴ３５）。ただし、ｉ＝｛１，２，３，４｝である。
分割誤り検知符号算出部２４は、分割誤り検出部２５がＵＤＰヘッダ又はＲＴＰヘッダにビット誤りが存在していないと判断すると、図５に示すように、パケット受信部２１により受信されたデータパケット又は冗長パケットにおける分割フィールドＦ（ｉ）のチェックサム値ＴＳｒ（ｉ）を算出する（ステップＳＴ３６）。ただし、ｉ＝｛１，２，３，４｝である。
【００３６】
分割誤り検出部２５は、分割誤り検知符号算出部２４が分割フィールドＦ（ｉ）のチェックサム値ＴＳｒ（ｉ）を算出すると、送信端末１の分割誤り検知符号挿入部１５と同じ圧縮符号化方式で、そのチェックサム値ＴＳｒ（ｉ）を圧縮符号化する（ステップＳＴ３７）。
そして、分割誤り検出部２５は、圧縮符号化後のチェックサム値ＣＴＳｒ（ｉ）と分割誤り検知符号抽出部２３により抽出された圧縮符号化後のチェックサム値ＣＴＳ（ｉ）とを比較して、分割フィールドＦ（ｉ）におけるビット誤りを検出する（ステップＳＴ３８〜ＳＴ４１）。
即ち、分割誤り検出部２５は、圧縮符号化後のチェックサム値ＣＴＳｒ（ｉ）とチェックサム値ＣＴＳ（ｉ）が等しければ、分割フィールドＦ（ｉ）にはビット誤りがないと認定する。一方、圧縮符号化後のチェックサム値ＣＴＳｒ（ｉ）とチェックサム値ＣＴＳ（ｉ）が等しくなければ、分割フィールドＦ（ｉ）にビット誤りがあると認定する。
【００３７】
分割誤り検出部２５は、上記のようにして、分割フィールドＦ（ｉ）におけるビット誤りの有無を特定すると、その分割フィールドＦ（ｉ）のビット誤り情報を更新する。
即ち、分割誤り検出部２５は、分割フィールドＦ（ｉ）にビット誤りがあれば、その分割フィールドＦ（ｉ）のフラグを“１”に設定する。なお、初期状態では、分割フィールドＦ（ｉ）のフラグは“０”である。
【００３８】
冗長パケット識別部２２は、パケット受信部２１により受信されたパケットがデータパケットであるのか、冗長パケットであるのかを識別する（ステップＳＴ４２）。
例えば、送信端末１がインターネット標準規格であるＲＦＣ２７３３を利用して冗長パケットを送信する場合には、ＲＴＰヘッダのペイロード番号を参照すれば、パケット受信部２１により受信されたパケットがデータパケットであるのか、冗長パケットであるのかを識別することができる。
【００３９】
冗長パケット識別部２２は、パケット受信部２１により受信されたパケットがデータパケットであると識別すると、そのデータパケットの中からＵＤＰヘッダを除いて、残りのＲＴＰパケットをデータパケット受信バッファ２６に記録する（ステップＳＴ４３）。
ただし、冗長パケット識別部２２は、残りのＲＴＰパケットをデータパケット受信バッファ２６に記録する際、そのデータパケットの分割フィールドＦ（ｉ）のビット誤り情報をＲＴＰパケットの先頭に付与して記録する。
分割フィールドＦ（ｉ）のビット誤り情報は、図６に示すように、各分割フィールドのビット誤りの有無を表記する１バイトの情報であり、“０”ならばビット誤りが無く、“１”ならばビット誤りが有ることを表している。
例えば、ビット誤り情報が“００００００１０”であれば、分割フィールドＦ（２）にビット誤りが有り、ビット誤り情報が“０００００１００”であれば、分割フィールドＦ（３）にビット誤りが有ることを表している。
【００４０】
冗長パケット識別部２２は、パケット受信部２１により受信されたパケットが冗長パケットであると識別すると、その冗長パケットの中からＵＤＰヘッダを除いて、残りのＲＴＰパケットを冗長パケット受信バッファ２７に記録する（ステップＳＴ４５）。
ただし、冗長パケット識別部２２は、残りのＲＴＰパケットを冗長パケット受信バッファ２７に記録する際、データパケットの場合と同様に、その冗長パケットの分割フィールドＦ（ｉ）のビット誤り情報をＲＴＰパケットの先頭に付与して記録する。
【００４１】
データパケット復元部２８は、データパケット受信バッファ２６に記録されているビット誤り情報を参照して、分割フィールドＦ（ｉ）にビット誤りが存在するデータパケットを検出すると、ビット誤りが存在しない冗長パケットの分割フィールドを用いて、分割フィールドＦ（ｉ）にビット誤りが存在するデータパケットを復元する（ステップＳＴ４４）。
以下、データパケット復元部２８におけるデータパケットの復元方法を具体的に説明する。
【００４２】
まず、データパケット復元部２８は、データパケット受信バッファ２６に記録されているビット誤り情報を参照して、分割フィールドＦ（ｉ）にビット誤りが存在するデータパケットを検出する。あるいは、ロスしているデータパケットを検出する（図９のステップＳＴ５１〜ＳＴ５５）。
以降、ビット誤りが存在するデータパケット又はロスしているデータパケットをＤＰ（ｍ）で表記する。
ビット誤りが存在するデータパケットの検出においては、ビット誤り情報を参照して、ビット誤りが有る分割フィールドが１つ以上あるデータパケットを検出し、そのデータパケットのＲＴＰヘッダ中のシーケンス番号を検出する。
また、ロスしているデータパケットの検出においては、ＲＴＰヘッダのシーケンス番号に抜けがあるシーケンス番号を検出する。
なお、データパケット復元部２８は、ビット誤りが存在するデータパケット又はロスしているデータパケットを検出すると、復元ができたか否かを示す復元処理フラグＲＦを“０”に初期化する。
ただし、復元処理フラグＲＦ＝０は復元ができていない旨を示し、復元処理フラグＲＦ＝１は復元ができていることを示すものとする。
【００４３】
データパケット復元部２８は、ビット誤りが存在するデータパケットＤＰ（ｍ）又はロスしているデータパケットＤＰ（ｍ）があれば、冗長パケット受信バッファ２７の中から、データパケットＤＰ（ｍ）を復元対象とする冗長パケット（以降、この冗長パケットをＪＰ（ｋ）で表記）を検出する（ステップＳＴ５６，ＳＴ５７）。
冗長パケットＪＰ（ｋ）の検出方法としては、例えば、送信端末１がインターネット標準規格であるＲＦＣ２７３３を利用して冗長パケットを送信する場合には、冗長パケットのＲＴＰ拡張ヘッダに記述されている復号対象のシーケンス番号とのマッチングによって検出する方法がある。
【００４４】
仮に、データパケットＤＰ（ｍ）を復元対象とする冗長パケットＪＰ（ｋ）が冗長パケット受信バッファ２７に記録されていない場合には、データパケットＤＰ（ｍ）を復元することは不可能であり、また、他のデータパケットを復元するためにもデータパケットＤＰ（ｍ）は使用されないので、データパケット受信バッファ２６からデータパケットＤＰ（ｍ）を削除してもよいし、上位アプリケーションが望むのであれば、ビット誤りが存在したままのデータパケットＤＰ（ｍ）を提供するようにしてもよい。
【００４５】
データパケット復元部２８は、データパケットＤＰ（ｍ）を復元対象とする冗長パケットＪＰ（ｋ）を検出することができなければ（ステップＳＴ５８）、次のデータパケットＤＰ（ｍ）を検出して（ステップＳＴ５９）、次のデータパケットＤＰ（ｍ）を復元対象とする冗長パケットＪＰ（ｋ）を検出する。
データパケット復元部２８は、データパケットＤＰ（ｍ）を復元対象とする冗長パケットＪＰ（ｋ）を検出することができれば（ステップＳＴ５８）、冗長パケット受信バッファ２７の中から、冗長パケットＪＰ（ｋ）が復元対象としているデータパケットＤＰ（ｊ）を検出する（ステップＳＴ６０）。
データパケットＤＰ（ｊ）の検出方法は、冗長パケットＪＰ（ｋ）の検出方法と同様に、データパケットＤＰ（ｊ）のＲＴＰ拡張ヘッダに記述されている復号対象のシーケンス番号を利用する。
【００４６】
次に、データパケット復元部２８は、冗長パケットＪＰ（ｋ）とデータパケットＤＰ（ｊ）から、復元対象であるデータパケットＤＰ（ｍ）の参考パケットＤＰｋ（ｍ）を生成する（ステップＳＴ６１）。
例えば、ｍ＝ｊ２として、冗長パケットＪＰ（ｋ）が復元対象としているデータパケットがＤＰ（ｊ１），ＤＰ（ｊ２），ＤＰ（ｊ３）であるとすると、冗長パケットＪＰ（ｋ）は下記の式（１）のようになる。ただし、式（１）において、＾は排他的論理和を示す演算記号である。
ＪＰ（ｋ）＝ＤＰ（ｊ１）＾ＤＰ（ｊ２）＾ＤＰ（ｊ３）          （１）
したがって、データパケットＤＰ（ｊ２）を復元するには、ＤＰ（ｊ１），ＤＰ（ｊ３），ＪＰ（ｋ）の排他的論理和を計算すればよい。
ＤＰｋ（ｊ２）＝ＤＰ（ｊ１）＾ＤＰ（ｊ３）＾ＪＰ（ｋ）        （２）
ここでは、上記のように、冗長パケットＪＰ（ｋ）で復元したデータパケットＤＰｋ（ｊ２）をデータパケットＤＰ（ｍ）の参考パケットＤＰｋ（ｍ）と称する。
【００４７】
このとき、データパケット復元部２８は、参考パケットＤＰｋ（ｍ）の各分割フィールドが正しく復元できているか否かも調査する（ステップＳＴ６２〜ＳＴ６４）。
上記の例では、ＤＰ（ｊ１），ＤＰ（ｊ３），ＪＰ（ｋ）のどれか１つでも、分割フィールドＦ（ｉ）にビット誤りが存在すれば、参考パケットＤＰｋ（ｊ２）の分割フィールドＦ（ｉ）は正常に復元できていないことになる。
【００４８】
次に、データパケット復元部２８は、データパケットＤＰ（ｍ）の中でビット誤りが存在する分割フィールドＦ（ｉ）において、参考パケットＤＰｋ（ｍ）の分割フィールドＦ（ｉ）にビット誤りがなければ、データパケットＤＰ（ｍ）の分割フィールドＦ（ｉ）を参考パケットＤＰｋ（ｍ）の分割フィールドＦ（ｉ）に置き換えて（ステップＳＴ６５）、データパケット受信バッファ２６に対するデータパケットＤＰ（ｍ）の記録を更新する（ステップＳＴ６５）。
また、データパケット復元部２８は、データパケットＤＰ（ｍ）のビット誤り情報も更新する（ステップＳＴ６６）。
即ち、データパケットＤＰ（ｍ）における分割フィールドＦ（ｉ）のビット誤り情報を“０”にする（図６を参照）。
さらに、データパケット復元部２８は、復元ができたか否かを示す復元処理フラグＲＦを“１”に設定する（ステップＳＴ６７）。
【００４９】
データパケット復元部２８は、データパケットＤＰ（ｍ）がロスしているデータパケットである場合、データパケットＤＰ（ｍ）の全ての分割フィールドＦ（ｉ）にビット誤りが存在するものとして、上記の復元処理を行う。
また、データパケット復元部２８は、データパケットＤＰ（ｍ）を復元対象とする冗長パケットＪＰ（ｋ）が複数ある場合（ｋ＝１，２，３，・・・）、上記の復元処理を繰り返し実行することにより、複数の参考パケットＤＰ１（ｍ）、ＤＰ２（ｍ）、ＤＰ３（ｍ）、・・・を生成して、データパケットＤＰ（ｍ）を復元する（ステップＳＴ５８〜ＳＴ７０）。
【００５０】
データパケット復元部２８は、データパケットＤＰ（ｍ）を復元対象とする冗長パケットＪＰ（ｋ）がなくなると（ステップＳＴ５８）、次のビット誤りが存在するデータパケットＤＰ（ｍ）、あるいは、ロスしているデータパケットＤＰ（ｍ）を検出し（ステップＳＴ５９）、上記の復元処理を繰り返し実行する。
データパケット復元部２８は、データパケット受信バッファ２６におけるデータパケットＤＰ（ｍ）の検出が一巡すると（ステップＳＴ５６）、再度、データパケット受信バッファ２６の先頭からデータパケットＤＰ（ｍ）を検索する（ステップＳＴ５２）。
【００５１】
このとき、データパケットＤＰ（ｍ）が存在しない場合、データパケットＤＰ（ｍ）の復元処理を終了する。
一方、データパケットＤＰ（ｍ）が存在する場合、復元処理フラグＲＦ＝１であれば（ステップＳＴ５３）、そのデータパケットＤＰ（ｍ）は、前回処理で復元できたデータパケットがあるので、再度、そのデータパケットＤＰ（ｍ）の復元処理を試みる（ステップＳＴ５４〜）。
復元処理フラグＲＦ＝０であれば（ステップＳＴ５３）、再度復元処理を実施しても、復元できるデータパケットがないので、データパケットＤＰ（ｍ）の復元処理を終了する。
なお、データパケットＤＰ（ｍ）の中でビット誤りが存在する分割フィールドＦ（ｉ）において、分割フィールドＦ（ｉ）にビット誤りがない参考パケットＤＰｋ（ｍ）が１つもない場合、従来の多数決法などを用いるようにしてもよい。
【００５２】
以上で明らかなように、この実施の形態１によれば、送信端末１がデータパケット及び冗長パケットにおける分割フィールドＦ（ｉ）のビット誤り検出用データを算出して、そのビット誤り検出用データであるチェックサム値をデータパケット及び冗長パケットのＲＴＰヘッダに挿入する一方、受信端末２の分割誤り検出部２５がデータパケット及び冗長パケットのＲＴＰヘッダに挿入されているチェックサム値を参照して、データパケット及び冗長パケットの分割フィールドＦ（ｉ）におけるビット誤りを検出し、データパケット復元部２８が分割誤り検出部２５によりビット誤りが検出されていない冗長パケットの分割フィールドを用いて、分割誤り検出部２５によりビット誤りが検出されたデータパケットの分割フィールドＦ（ｉ）を復元するように構成したので、データパケットの伝送帯域の増加を招くことなく、ビット誤りがあるデータパケットを正しく復元することができる効果を奏する。
【００５３】
即ち、この実施の形態１によれば、ビット誤りが存在するデータパケットＤＰ（ｍ）において、どの部分にビット誤りがあるのかを特定することができ、また、そのデータパケットＤＰ（ｍ）を復元するために生成した参考パケットＤＰｋ（ｍ）も、どの部分にビット誤りがあるのかを特定することができるため、参考パケットＤＰｋ（ｍ）の正しい部分だけを用いて、受信したデータパケットＤＰ（ｍ）を正しく復元することができる。
また、従来の多数決法のように多くの参考パケットを必要としないため、冗長パケットの送信量を削減することができる。
【００５４】
実施の形態２．
上記実施の形態１では、送信端末１の分割誤り検知符号挿入部１５が、ＲＴＰヘッダを拡張してチェックサムフィールドを設け、分割フィールドＦ（ｉ）のチェックサム値ＴＳ（ｉ）又は圧縮符号化後のチェックサム値ＣＴＳ（ｉ）をＲＴＰヘッダのチェックサムフィールドに挿入するものについて示したが、図１０に示すように、分割フィールドＦ（ｉ）のチェックサム値ＴＳ（ｉ）又は圧縮符号化後のチェックサム値ＣＴＳ（ｉ）をＵＤＰヘッダのチェックサムフィールドに挿入するようにしてもよい。
【００５５】
図１０は分割誤り検知符号算出部１２により生成されるパケットの構成及びビット誤り検出用データであるチェックサム値の算出挿入方法を示す説明図である。
図１１はパケット受信部２１により受信されるパケットの構成及びビット誤りの検出方法を示す説明図である。
図１２はこの発明の実施の形態２による送信端末１の処理内容を示すフローチャートである。
図１３はこの発明の実施の形態２による受信端末２の処理内容を示すフローチャートである。
【００５６】
次に動作について説明する。
送信端末１のソースデータ生成部１１は、送信対象のマルチメディアデータ（例えば、映像、音声）であるソースデータを生成する。
分割誤り検知符号算出部１２は、ソースデータ生成部１１がソースデータを生成すると、ソースデータ生成部１１からソースデータを入力し（図１２のステップＳＴ８１）、そのソースデータを予め決められた最大データサイズでフラグメントしてパケット化する（ステップＳＴ８２）。
これにより、ＲＴＰヘッダ及びＵＤＰヘッダが先頭に付加されているデータパケットが生成される（図１０を参照）。
【００５７】
次に、分割誤り検知符号算出部１２は、データパケットであるＵＤＰパケットを予め決められた数に区切って分割フィールドを定義する。
即ち、分割誤り検知符号算出部１２は、ＵＤＰパケットを４つに分割することにより、分割フィールドＦ（ｉ）を生成する（ステップＳＴ８３，ＳＴ８４）。ただし、ｉ＝｛１，２，３，４｝である。
図１０の例では、先頭の分割フィールドＦ（１）はＵＤＰヘッダとＲＴＰヘッダの領域であり、残りの分割フィールドＦ（２）、Ｆ（３）、Ｆ（４）はＲＴＰペイロードが３等分された領域である。
【００５８】
分割誤り検知符号算出部１２は、分割フィールドＦ（ｉ）を生成すると、各分割フィールドのビット誤り検出用データとして、分割フィールドＦ（ｉ）のチェックサム値ＴＳ（ｉ）を算出する（ステップＳＴ８５〜ＳＴ８８）。ただし、ｉ＝｛１，２，３，４｝である。
図１０では、１６ビットのチェックサム値ＴＳ（ｉ）を算出している例を示している。ただし、先頭の分割フィールドＦ（１）においては、ＵＤＰヘッダのチェックサムフィールドを“０”として、チェックサム値ＴＳ（１）を算出する。
【００５９】
分割誤り検知符号挿入部１５は、分割誤り検知符号算出部１２がデータパケットにおける分割フィールドＦ（ｉ）のチェックサム値ＴＳ（ｉ）を算出すると、分割フィールドＦ（２）〜Ｆ（４）のチェックサム値ＴＳ（２）〜ＴＳ（４）を圧縮符号化する（ステップＳＴ８９〜ＳＴ９２）。
例えば、巡回符号方式やリード・ソロモン符号化方式などを利用して、１６ビットのチェックサム値ＴＳ（２）〜ＴＳ（４）を４ビットのチェックサム値ＣＴＳ（２）〜ＣＴＳ（４）に圧縮符号化する。
この段階では、分割フィールドＦ（１）のチェックサム値ＣＴＳ（１）は“０”とする（ステップＳＴ９３）。
【００６０】
そして、分割誤り検知符号挿入部１５は、圧縮符号化後のチェックサム値ＣＴＳ（ｉ）をＵＤＰヘッダのチェックサムフィールドに挿入する（ステップＳＴ９４〜ＳＴ９７）。
図１０では、分割フィールドＦ（１）のチェックサム値ＣＴＳ（１）をチェックサムフィールドの０ビット目、分割フィールドＦ（２）のチェックサム値ＣＴＳ（２）をチェックサムフィールドの４ビット目、分割フィールドＦ（３）のチェックサム値ＣＴＳ（３）をチェックサムフィールドの８ビット目、分割フィールドＦ（４）のチェックサム値ＣＴＳ（４）をチェックサムフィールドの１２ビット目に挿入している例を示している。
ここでは、情報量を削減するため、圧縮符号化後のチェックサム値ＣＴＳ（ｉ）をＵＤＰヘッダのチェックサムフィールドに挿入するものについて示したが、圧縮符号化前のチェックサム値ＴＳ（ｉ）をＵＤＰヘッダのチェックサムフィールドに挿入するようにしてもよい。
【００６１】
次に、分割誤り検知符号挿入部１５は、分割フィールドＦ（１）のチェックサム値ＴＳ（１）に、ＵＤＰヘッダのチェックサムフィールドの値を加え（ステップＳＴ９８）、加算後のチェックサム値ＴＳ（１）を４ビットのチェックサム値ＣＴＳ（１）に圧縮符号化する（ステップＳＴ９９）。
そして、分割誤り検知符号挿入部１５は、再度、分割フィールドＦ（１）のチェックサム値ＣＴＳ（１）をＵＤＰヘッダのチェックサムフィールドの０ビット目に挿入する（ステップＳＴ１００）。
【００６２】
パケット送信部１６は、分割誤り検知符号挿入部１５が分割フィールドＦ（ｉ）のチェックサム値ＣＴＳ（ｉ）をＵＤＰヘッダのチェックサムフィールドに挿入すると、チェックサム値が挿入されているデータパケットを受信端末２に送信する（ステップＳＴ１０１）。
また、パケット送信部１６は、受信端末２に送信したデータパケットの中からＵＤＰヘッダを除いて、残りのＲＴＰパケットを送信バッファ１３に記録する（ステップＳＴ１０２）。
【００６３】
冗長データ生成部１４は、送信バッファ１３に記録されている複数のデータパケット（ＲＴＰパケット）の排他的論理和を演算して冗長データを生成する。
例えば、データパケットＤＰ（１），ＤＰ（２），ＤＰ（３）におけるＲＴＰペイロードの排他的論理和を演算して冗長データＪＰ（１）を生成する。同様に、データパケットＤＰ（２），ＤＰ（３），ＤＰ（４）におけるＲＴＰペイロードの排他的論理和を演算して冗長データＪＰ（２）を生成する。
この場合、データパケットＤＰ（１），ＤＰ（２），ＤＰ（３）は、冗長データＪＰ（１）の復元対象のデータパケットであり、データパケットＤＰ（２），ＤＰ（３），ＤＰ（４）は、冗長データＪＰ（２）の復元対象のデータパケットである。
したがって、例えば、データパケットＤＰ（２）やＤＰ（３）は、仮にビット誤りが受信側で発生していても、冗長データＪＰ（１）又はＪＰ（２）のパケットと、それらの冗長パケットが復元対象としているデータパケットをビット誤りなく受信することができていれば、正しく復元することができる。
【００６４】
分割誤り検知符号算出部１２は、冗長データ生成部１４が冗長データを生成すると、冗長データ生成部１４から冗長データを入力し（ステップＳＴ８１）、上述したソースデータの場合と同様に、その冗長データを予め決められた最大データサイズでフラグメントしてパケット化する（ステップＳＴ８２）。
これにより、ＲＴＰヘッダ及びＵＤＰヘッダが先頭に付加されている冗長パケットが生成される。
【００６５】
次に、分割誤り検知符号算出部１２は、ソースデータの場合と同様に、冗長パケットであるＵＤＰパケットを４つに分割することにより、分割フィールドＦ（ｉ）を生成する（ステップＳＴ８３、ＳＴ８４）。ただし、ｉ＝｛１，２，３，４｝である。
分割誤り検知符号算出部１２は、分割フィールドＦ（ｉ）を生成すると、ソースデータの場合と同様に、各分割フィールドのビット誤り検出用データとして、分割フィールドＦ（ｉ）のチェックサム値ＴＳ（ｉ）を算出する（ステップＳＴ８５〜ＳＴ８８）。ただし、ｉ＝｛１，２，３，４｝である。
【００６６】
分割誤り検知符号挿入部１５は、分割誤り検知符号算出部１２が冗長パケットにおける分割フィールドＦ（ｉ）のチェックサム値ＴＳ（ｉ）を算出すると、ソースデータの場合と同様に、分割フィールドＦ（２）〜Ｆ（４）のチェックサム値ＴＳ（２）〜ＴＳ（４）を圧縮符号化する（ステップＳＴ８９〜ＳＴ９２）。
また、この段階では、分割フィールドＦ（１）のチェックサム値ＣＴＳ（１）は“０”とする（ステップＳＴ９３）。
【００６７】
分割誤り検知符号挿入部１５は、圧縮符号化後のチェックサム値ＣＴＳ（ｉ）をＵＤＰヘッダのチェックサムフィールドに挿入する（ステップＳＴ９４〜ＳＴ９７）。
次に、分割誤り検知符号挿入部１５は、分割フィールドＦ（１）のチェックサム値ＴＳ（１）に、ＵＤＰヘッダのチェックサムフィールドの値を加え（ステップＳＴ９８）、加算後のチェックサム値ＴＳ（１）を４ビットのチェックサム値ＣＴＳ（１）に圧縮符号化する（ステップＳＴ９９）。
そして、分割誤り検知符号挿入部１５は、再度、分割フィールドＦ（１）のチェックサム値ＣＴＳ（１）をＵＤＰヘッダのチェックサムフィールドの０ビット目に挿入する（ステップＳＴ１００）。
【００６８】
パケット送信部１６は、分割誤り検知符号挿入部１５が分割フィールドＦ（ｉ）のチェックサム値ＣＴＳ（ｉ）をＵＤＰヘッダのチェックサムフィールドに挿入すると、チェックサム値が挿入されている冗長パケットを受信端末２に送信する（ステップＳＴ１０１）。
全てのソースデータのデータパケット及び冗長パケットの送信が完了するまで、ステップＳＴ８１〜ＳＴ１０２の処理が繰り返し実施される（ステップＳＴ１０３，ＳＴ１０４）。
【００６９】
受信端末２のパケット受信部２１は、送信端末１がデータパケット又は冗長パケットを送信すると、そのデータパケット又は冗長パケットを受信する（図１３のステップＳＴ１１１）。
分割誤り検知符号抽出部２３は、パケット受信部２１がデータパケット又は冗長パケットを受信すると、図１１に示すように、そのデータパケット又は冗長パケットのＵＤＰヘッダのチェックサムフィールドから圧縮符号化後のチェックサム値ＣＴＳ（ｉ）を抽出する（ステップＳＴ１１２〜ＳＴ１１５）。ただし、ｉ＝｛１，２，３，４｝である。
【００７０】
分割誤り検知符号算出部２４は、パケット受信部２１がデータパケット又は冗長パケットを受信すると、そのデータパケット又は冗長パケットにおける分割フィールドＦ（１）のチェックサム値ＴＳｒ（１）を算出する（ステップＳＴ１１６）。
ただし、ＵＤＰヘッダにおけるチェックサムフィールドのＣＴＳ（１）が挿入されている４ビットは“０”としてチェックサム値を算出する。
【００７１】
分割誤り検出部２５は、分割誤り検知符号算出部２４が分割フィールドＦ（１）のチェックサム値ＴＳｒ（１）を算出すると、送信端末１の分割誤り検知符号挿入部１５と同じ圧縮符号化方式で、そのチェックサム値ＴＳｒ（１）を圧縮符号化する（ステップＳＴ１１７）。
そして、分割誤り検出部２５は、圧縮符号化後のチェックサム値ＣＴＳｒ（１）と分割誤り検知符号抽出部２３により抽出された圧縮符号化後のチェックサム値ＣＴＳ（１）とを比較して（ステップＳＴ１１８）、等しくなければ、分割フィールドＦ（１）にビット誤りが存在していると判断して、パケット受信部２１により受信されたデータパケット又は冗長パケットを破棄する。
即ち、分割フィールドＦ（１）にビット誤りが存在する場合、ＣＴＳヘッダやＲＴＰヘッダのシーケンス番号にも誤りがある可能性があり、後のデータパケットの復元ができなくなるので、パケット受信部２１により受信されたデータパケット又は冗長パケットをデータパケット受信バッファ２６又は冗長パケット受信バッファ２７には記録せずに破棄する。
【００７２】
分割誤り検知符号算出部２４は、分割誤り検出部２５が分割フィールドＦ（１）にビット誤りが存在していないと判断すると、図１１に示すように、パケット受信部２１により受信されたデータパケット又は冗長パケットにおける分割フィールドＦ（２）〜Ｆ（４）のチェックサム値ＴＳｒ（２）〜ＴＳｒ（４）を算出する（ステップＳＴ１１９，ＳＴ１２０）。
【００７３】
分割誤り検出部２５は、分割誤り検知符号算出部２４が分割フィールドＦ（２）〜Ｆ（４）のチェックサム値ＴＳｒ（２）〜ＴＳｒ（４）を算出すると、送信端末１の分割誤り検知符号挿入部１５と同じ圧縮符号化方式で、そのチェックサム値ＴＳｒ（２）〜ＴＳｒ（４）を圧縮符号化する（ステップＳＴ１２１）。
そして、分割誤り検出部２５は、圧縮符号化後のチェックサム値ＣＴＳｒ（２）〜ＣＴＳｒ（４）と分割誤り検知符号抽出部２３により抽出された圧縮符号化後のチェックサム値ＣＴＳ（２）〜ＣＴＳ（４）とを比較して、分割フィールドＦ（２）〜Ｆ（４）におけるビット誤りを検出する（ステップＳＴ１２２〜ＳＴ１２５）。
即ち、分割誤り検出部２５は、圧縮符号化後のチェックサム値ＣＴＳｒ（２）〜ＣＴＳｒ（４）とチェックサム値ＣＴＳ（２）〜ＣＴＳ（４）が等しければ、分割フィールドＦ（２）〜Ｆ（４）にはビット誤りがないと認定する。一方、圧縮符号化後のチェックサム値ＣＴＳｒ（２）〜ＣＴＳｒ（４）とチェックサム値ＣＴＳ（２）〜ＣＴＳ（４）が等しくなければ、分割フィールドＦ（２）〜Ｆ（４）にビット誤りがあると認定する。
【００７４】
分割誤り検出部２５は、上記のようにして、分割フィールドＦ（２）〜Ｆ（４）におけるビット誤りの有無を特定すると、その分割フィールドＦ（２）〜Ｆ（４）のビット誤り情報を更新する。
即ち、分割誤り検出部２５は、分割フィールドＦ（２）〜Ｆ（４）にビット誤りがあれば、その分割フィールドＦ（２）〜Ｆ（４）のフラグを“１”に設定する。なお、初期状態では、分割フィールドＦ（２）〜Ｆ（４）のフラグは“０”である。
【００７５】
冗長パケット識別部２２は、パケット受信部２１により受信されたパケットがデータパケットであるのか、冗長パケットであるのかを識別する（ステップＳＴ１２６）。
例えば、送信端末１がインターネット標準規格であるＲＦＣ２７３３を利用して冗長パケットを送信する場合には、ＲＴＰヘッダのペイロード番号を参照すれば、パケット受信部２１により受信されたパケットがデータパケットであるのか、冗長パケットであるのかを識別することができる。
【００７６】
冗長パケット識別部２２は、パケット受信部２１により受信されたパケットがデータパケットであると識別すると、そのデータパケットの中からＵＤＰヘッダを除いて、残りのＲＴＰパケットをデータパケット受信バッファ２６に記録する（ステップＳＴ１２７）。
ただし、冗長パケット識別部２２は、残りのＲＴＰパケットをデータパケット受信バッファ２６に記録する際、そのデータパケットの分割フィールドＦ（ｉ）のビット誤り情報をＲＴＰパケットの先頭に付与して記録する。
分割フィールドＦ（ｉ）のビット誤り情報は、図６に示すように、各分割フィールドのビット誤りの有無を表記する１バイトの情報であり、“０”ならばビット誤りが無く、“１”ならばビット誤りが有ることを表している。
例えば、ビット誤り情報が“００００００１０”であれば、分割フィールドＦ（２）にビット誤りが有り、ビット誤り情報が“０００００１００”であれば、分割フィールドＦ（３）にビット誤りが有ることを表している。
【００７７】
冗長パケット識別部２２は、パケット受信部２１により受信されたパケットが冗長パケットであると識別すると、その冗長パケットの中からＵＤＰヘッダを除いて、残りのＲＴＰパケットを冗長パケット受信バッファ２７に記録する（ステップＳＴ１２９）。
ただし、冗長パケット識別部２２は、残りのＲＴＰパケットを冗長パケット受信バッファ２７に記録する際、データパケットの場合と同様に、その冗長パケットの分割フィールドＦ（ｉ）のビット誤り情報をＲＴＰパケットの先頭に付与して記録する。
【００７８】
データパケット復元部２８は、データパケット受信バッファ２６に記録されているビット誤り情報を参照して、分割フィールドＦ（ｉ）にビット誤りが存在するデータパケットを検出すると、上記実施の形態１と同様に、ビット誤りが存在しない冗長パケットの分割フィールドを用いて、分割フィールドＦ（ｉ）にビット誤りが存在するデータパケットを復元する（ステップＳＴ１２８）。
【００７９】
以上で明らかなように、この実施の形態２によれば、ビット誤りが存在するデータパケットＤＰ（ｍ）において、どの部分にビット誤りがあるのかを特定することができ、また、そのデータパケットＤＰ（ｍ）を復元するために生成した参考パケットＤＰｋ（ｍ）も、どの部分にビット誤りがあるのかを特定することができるため、参考パケットＤＰｋ（ｍ）の正しい部分だけを用いて、受信したデータパケットＤＰ（ｍ）を正しく復元することができる。
また、従来の多数決法のように多くの参考パケットを必要としないため、冗長パケットの送信量を削減することができる。
さらに、分割フィールド毎の誤り検知用符号データをＵＤＰヘッダのチェックサムフィールドに挿入することができるため、オーバーヘッドを招くことなく、データパケットの復元処理を実現することができる。
【図面の簡単な説明】
【００８０】
【図１】この発明の実施の形態１によるパケット通信システムを示す構成図である。
【図２】従来のパケット通信システムによるパケット復元手法例を示す説明図である。
【図３】この発明の実施の形態１によるパケット通信システムのパケット復元手法例を示す説明図である。
【図４】分割誤り検知符号算出部１２により生成されるパケットの構成及びビット誤り検出用データであるチェックサム値の算出挿入方法を示す説明図である。
【図５】パケット受信部２１により受信されるパケットの構成及びビット誤りの検出方法を示す説明図である。
【図６】ビット誤り情報の一例を示す説明図である。
【図７】この発明の実施の形態１による送信端末１の処理内容を示すフローチャートである。
【図８】この発明の実施の形態１による受信端末２の処理内容を示すフローチャートである。
【図９】この発明の実施の形態１による受信端末２のパケット復元処理を示すフローチャートである。
【図１０】分割誤り検知符号算出部１２により生成されるパケットの構成及びビット誤り検出用データであるチェックサム値の算出挿入方法を示す説明図である。
【図１１】パケット受信部２１により受信されるパケットの構成及びビット誤りの検出方法を示す説明図である。
【図１２】この発明の実施の形態２による送信端末１の処理内容を示すフローチャートである。
【図１３】この発明の実施の形態２による受信端末２の処理内容を示すフローチャートである。
【符号の説明】
【００８１】
１  送信端末、２  受信端末、３  ネットワーク、１１  ソースデータ生成部（ソースデータ生成手段）、１２  分割誤り検知符号算出部（第１の検出用データ算出手段、第２の検出用データ算出手段、検出用データ挿入手段）、１３  送信バッファ（冗長データ生成手段）、１４  冗長データ生成部（冗長データ生成手段）、１５  分割誤り検知符号挿入部（第１の検出用データ挿入手段、第２の検出用データ挿入手段、検出用データ挿入手段）、１６  パケット送信部（パケット送信手段）、２１  パケット受信部（パケット受信手段）、２２  冗長パケット識別部、２３  分割誤り検知符号抽出部（ビット誤り検出用データ抽出手段、誤り検出手段）、２４  分割誤り検知符号算出部（ビット誤り検出用データ算出手段、誤り検出手段）、２５  分割誤り検出部（ビット誤り検出手段、誤り検出手段）、２６  データパケット受信バッファ、２７  冗長パケット受信バッファ、２８  データパケット復元部（パケット復元手段）。
【図１】
2008187646.tif 000003
【図２】
2008187646.tif 000004
【図３】
2008187646.tif 000005
【図４】
2008187646.tif 000006
【図５】
2008187646.tif 000007
【図６】
2008187646.tif 000008
【図７】
2008187646.tif 000009
【図８】
2008187646.tif 000010
【図９】
2008187646.tif 000011
【図１０】
2008187646.tif 000012
【図１１】
2008187646.tif 000013
【図１２】
2008187646.tif 000014
【図１３】
2008187646.tif 000015