(57)【要約】【課題】より正確な通信を、より容易に行うことができるようにする。【解決手段】送信装置１１は、送信用データを分割してパケットデータを生成し、そのパケットデータを用いて、ガロア体上で四則演算を行い、パケットデータを実際に送信する変換データに変換してから、それをUDP等の所定のプロトコルを用いてパケット化して送信する。受信装置１３は、送信装置１１より供給されるパケットを受信して変換データを抽出し、その受信した変換データを用いて、元の送信用データを復元する。このとき、送信装置１１は、受信装置１３が元の送信用データを復元するのに必要な数以上の変換データを受信装置１３に送信し、受信装置１３は、その送信された変換データの中から、少なくとも、元の送信用データを復元するのに必要な数の変換データを受信する。本発明は、例えば、通信システムに適用できる。【選択図】図２
2005223682.tif 000002
【特許請求の範囲】
【請求項１】
送信用データを送信する送信装置と、前記送信装置により送信される前記送信用データを受信する受信装置を備える送受信システムであって、
前記送信装置は、前記送信用データを分割することにより複数の第１のデータを生成し、生成された複数の前記第１のデータを、所定のガロア体上の演算によって合成することにより、互いに独立した複数の第２のデータに変換し、得られた複数の前記第２のデータを、それぞれパケット化して前記受信装置に送信し、
前記受信装置は、複数の前記第２のデータを、前記第２のデータが対応する前記第１のデータの数以上受信し、受信された前記第２のデータが対応する前記第１のデータの数以上の前記第２のデータを保持し、保持された、前記第２のデータが対応する前記第１のデータの数以上の前記第２のデータを用いて、前記ガロア体上の演算を行い、前記第２のデータに対応する前記第１のデータを復元する
ことを特徴とする送受信システム。
【請求項２】
送信用データを受信装置に送信する送信装置であって、
前記送信用データを分割することにより複数の第１のデータを生成するデータ生成手段と、
前記データ生成手段により生成された複数の前記第１のデータを、所定のガロア体上の演算によって合成することにより、前記第１のデータを復元するためのデータであり、互いに独立した複数の第２のデータに変換する変換手段と、
前記変換手段により複数の前記第１のデータが変換されて得られた複数の前記第２のデータを、それぞれパケット化して前記受信装置に送信する送信手段と
を備えることを特徴とする送信装置。
【請求項３】
前記変換手段は、
予め定められた所定の係数行列を用いて、前記第１のデータを前記第２のデータに変換する行列式を生成する行列式生成手段と、
前記行列式生成手段により生成された前記行列式を、前記ガロア体上において演算し、前記第２のデータを求める演算手段と
を備えることを特徴とする請求項２に記載の送信装置。
【請求項４】
前記係数行列の各成分は、各行において共通の自然数である底にべき乗のガロア体での演算を適用して得られた値であり、行方向に並ぶ各成分を得るための前記べき乗の指数は連続する整数であり、かつ、前記底の値が行毎に互いに異なる
ことを特徴とする請求項３に記載の送信装置。
【請求項５】
前記係数行列を保持し、前記行列式生成手段の要求に応じて供給する係数行列供給手段をさらに備え、
前記行列式生成手段は、前記係数行列供給手段により供給された前記係数行列を用いて、前記行列式を生成する
ことを特徴とする請求項３に記載の送信装置。
【請求項６】
前記変換手段により前記第１のデータが変換されて得られた前記第２のデータに、前記受信装置における前記第１のデータの復元に用いられる情報である、前記第２のデータが対応する前記係数行列の行番号を含む情報を付加する情報付加手段をさらに備え、
前記送信手段は、前記情報付加手段により前記情報が付加された複数の前記第２のデータを、それぞれパケット化し、前記受信装置に送信する
ことを特徴とする請求項３に記載の送信装置。
【請求項７】
前記変換手段は、複数の前記第１のデータを、前記第１のデータの数より多くの前記第２のデータに変換する
ことを特徴とする請求項２に記載の送信装置。
【請求項８】
前記変換手段により複数の前記第１のデータが変換されて得られた複数の前記第２のデータの、送信順を制御する送信順制御手段をさらに備え、
前記送信手段は、前記送信順制御手段により、任意に決定された前記送信順で、複数の前記第２のデータを前記受信装置に送信する
ことを特徴とする請求項２に記載の送信装置。
【請求項９】
前記データ生成手段は、前記送信用データをブロックに分割し、さらに、前記ブロックを分割することにより複数の前記第１のデータを生成し、
前記変換手段は、ブロック毎に、前記データ生成手段により生成された複数の前記第１のデータを複数の前記第２のデータに変換する
ことを特徴とする請求項２に記載の送信装置。
【請求項１０】
送信用データを受信装置に送信する送信装置の送信方法であって、
前記送信用データを分割することにより複数の第１のデータを生成するデータ生成ステップと、
前記データ生成ステップの処理により生成された複数の前記第１のデータを、所定のガロア体上の演算によって合成することにより、前記第１のデータを復元するためのデータであり、互いに独立した複数の第２のデータに変換する変換ステップと、
前記変換ステップの処理により複数の前記第１のデータが変換されて得られた複数の前記第２のデータを、それぞれパケット化して前記受信装置に送信するように制御する送信制御ステップと
を含むことを特徴とする送信方法。
【請求項１１】
送信用データを受信装置に送信する送信処理を、コンピュータに行わせるプログラムにおいて、
前記送信用データを分割することにより複数の第１のデータを生成するデータ生成ステップと、
前記データ生成ステップの処理により生成された複数の前記第１のデータを、所定のガロア体上の演算によって合成することにより、前記第１のデータを復元するためのデータであり、互いに独立した複数の第２のデータに変換する変換ステップと、
前記変換ステップの処理により複数の前記第１のデータが変換されて得られた複数の前記第２のデータを、それぞれパケット化して前記受信装置に送信するように制御する送信制御ステップと
を含むことを特徴とするプログラム。
【請求項１２】
送信装置が送信したデータを受信する受信装置であって、
前記送信装置が送信したデータであり、送信用データを分割した複数の第１のデータが所定のガロア体上の演算によって合成されることにより変換された互いに独立した複数の第２のデータを、前記第２のデータが対応する前記第１のデータの数以上受信する受信手段と、
前記受信手段により受信される、前記第２のデータが対応する前記第１のデータの数以上の前記第２のデータを保持する保持手段と、
前記保持手段により保持される、前記第２のデータが対応する前記第１のデータの数以上の前記第２のデータを用いて、前記ガロア体上の演算を行い、前記第２のデータに対応する前記第１のデータを復元する復元手段と
を備えることを特徴とする受信装置。
【請求項１３】
前記復元手段は、
予め定められた所定の係数行列を用いて、前記第２のデータを前記第１のデータに変換する行列式を生成する行列式生成手段と、
前記行列式生成手段により生成された前記行列式を、前記ガロア体上において演算し、前記第１のデータを求める演算手段と
を備えることを特徴とする請求項１２に記載の受信装置。
【請求項１４】
前記係数行列の各行において、各成分は共通の自然数を底とするべき乗であり、行方向に連続する各成分は前記べき乗の指数が連続するように構成されており、かつ、前記べき乗の底である前記共通の自然数の値が行毎に互いに異なる
ことを特徴とする請求項１３に記載の受信装置。
【請求項１５】
前記係数行列を保持し、前記行列式生成手段の要求に応じて供給する係数行列供給手段をさらに備え、
前記行列式生成手段は、前記係数行列供給手段により供給された前記係数行列を用いて、前記行列式を生成する
ことを特徴とする請求項１３に記載の受信装置。
【請求項１６】
前記行列式生成手段は、前記係数行列供給手段が保持する前記係数行列の内、前記受信手段により受信された前記第２のデータに対応する行成分のみを要求し、前記要求に基づいて供給された前記行成分のみを用いて前記行列式を生成する
ことを特徴とする請求項１５に記載の受信装置。
【請求項１７】
前記行列式生成手段は、前記受信手段により受信された前記第２のデータに付加されている、前記第２のデータが対応する前記係数行列の行番号を含む情報に基づいて、前記係数行列供給手段に前記行成分を要求し、前記要求に基づいて供給された前記行成分のみを用いて前記行列式を生成する
ことを特徴とする請求項１６に記載の受信装置。
【請求項１８】
複数の前記第１のデータおよび前記第２のデータは、前記送信用データのブロック毎に生成されたデータであり、
前記受信手段は、前記ブロック毎に、前記第２のデータが対応する前記第１のデータの数以上の前記第２のデータを受信し、
前記保持手段は、前記受信手段により受信された前記第２のデータを、前記第２のデータが対応するブロック毎に保持し、
前記復元手段は、互いに同じブロックに対応する複数の前記第２のデータを用いて、前記第１のデータを復元する
ことを特徴とする請求項１２に記載の受信装置。
【請求項１９】
送信装置が送信したデータを受信する受信装置の受信方法であって、
前記送信装置が送信したデータであり、送信用データを分割した複数の第１のデータが所定のガロア体上の演算によって合成されることにより変換された互いに独立した複数の第２のデータを、前記第２のデータが対応する前記第１のデータの数以上受信するように制御する受信制御ステップと、
前記受信制御ステップの処理により受信される、前記第２のデータが対応する前記第１のデータの数以上の前記第２のデータを保持する保持ステップと、
前記保持ステップの処理により保持される、前記第２のデータが対応する前記第１のデータの数以上の前記第２のデータを用いて、前記ガロア体上の演算を行い、前記第２のデータに対応する前記第１のデータを復元する復元ステップと
を含むことを特徴とする受信方法。
【請求項２０】
送信装置が送信したデータを受信する受信処理をコンピュータに行わせるプログラムにおいて、
前記送信装置が送信したデータであり、送信用データを分割した複数の第１のデータが所定のガロア体上の演算によって合成されることにより変換された互いに独立した複数の第２のデータを、前記第２のデータが対応する前記第１のデータの数以上受信するように制御する受信制御ステップと、
前記受信制御ステップの処理により受信される、前記第２のデータが対応する前記第１のデータの数以上の前記第２のデータを保持する保持ステップと、
前記保持ステップの処理により保持される、前記第２のデータが対応する前記第１のデータの数以上の前記第２のデータを用いて、前記ガロア体上の演算を行い、前記第２のデータに対応する前記第１のデータを復元する復元ステップと
を含むことを特徴とするプログラム。
【請求項２１】
送信用データを送受信する送受信装置であって、
前記送信用データを分割することにより複数の第１のデータを生成するデータ生成手段と、
前記データ生成手段により生成された複数の前記第１のデータを、所定のガロア体上の演算によって合成することにより、互いに独立した複数の第２のデータに変換する変換手段と、
前記変換手段により複数の前記第１のデータが変換されて得られた複数の前記第２のデータを、それぞれパケット化して他の送受信装置に送信する送信手段と、
前記他の送受信装置が送信した複数の前記第２のデータを、前記第２のデータが対応する前記第１のデータの数以上受信する受信手段と、
前記受信手段により受信される、前記第２のデータが対応する前記第１のデータの数以上の前記第２のデータを保持する保持手段と、
前記保持手段により保持される、前記第２のデータが対応する前記第１のデータの数以上の前記第２のデータを用いて、前記ガロア体上の演算を行い、前記第２のデータに対応する前記第１のデータを復元する復元手段と
を備えることを特徴とする送受信装置。
【請求項２２】
送信用データを送受信する送受信装置の送受信方法であって、
前記送信用データを分割することにより複数の第１のデータを生成するデータ生成ステップと、
前記データ生成ステップの処理により生成された複数の前記第１のデータを、所定のガロア体上の演算によって合成することにより、互いに独立した複数の第２のデータに変換する変換ステップと、
前記変換ステップの処理により複数の前記第１のデータが変換されて得られた複数の前記第２のデータを、それぞれパケット化して前記他の送受信装置に送信するように制御する送信制御ステップと、
前記他の送受信装置が送信した複数の前記第２のデータを、前記第２のデータが対応する前記第１のデータの数以上受信するように制御する受信制御ステップと、
前記受信制御ステップの処理により制御されて受信される、前記第２のデータが対応する前記第１のデータの数以上の前記第２のデータを保持するように制御する保持制御ステップと、
前記保持制御ステップの処理により制御されて保持される、前記第２のデータが対応する前記第１のデータの数以上の前記第２のデータを用いて、前記ガロア体上の演算を行い、前記第２のデータに対応する前記第１のデータを復元する復元ステップと
を含むことを特徴とする送受信方法。
【請求項２３】
送信用データを送受信する送受信処理を、コンピュータに行わせるプログラムにおいて、
前記送信用データを分割することにより複数の第１のデータを生成するデータ生成ステップと、
前記データ生成ステップの処理により生成された複数の前記第１のデータを、所定のガロア体上の演算によって合成することにより、互いに独立した複数の第２のデータに変換する変換ステップと、
前記変換ステップの処理により複数の前記第１のデータが変換されて得られた複数の前記第２のデータを、それぞれパケット化して前記他の送受信装置に送信するように制御する送信制御ステップと、
前記他の送受信装置が送信した複数の前記第２のデータを、前記第２のデータが対応する前記第１のデータの数以上受信するように制御する受信制御ステップと、
前記受信制御ステップの処理により制御されて受信される、前記第２のデータが対応する前記第１のデータの数以上の前記第２のデータを保持するように制御する保持制御ステップと、
前記保持制御ステップの処理により制御されて保持される、前記第２のデータが対応する前記第１のデータの数以上の前記第２のデータを用いて、前記ガロア体上の演算を行い、前記第２のデータに対応する前記第１のデータを復元する復元ステップと
を含むことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送受信システム、送信装置および方法、受信装置および方法、送受信装置および方法、並びにプログラムに関し、特に、データの送受信をより正確、かつ、より容易に行うことができるようにした送受信システム、送信装置および方法、受信装置および方法、送受信装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
従来、データ通信において、データを正確に送受信するために、送信側の装置はデータにパリティビット等の検査のための情報を付加し、受信側の装置は、受信したデータが正しい情報となるように、誤り検出訂正処理を行う方法がある。
【０００３】
この誤り検出訂正処理の方法としては、様々な方法があり、例えば、シンドロームレジスタＳ０，Ｓ１〜Ｓ(n-1) によってシンドロームを計算し、その計算終了後、１重誤りのときシンドロームレジスタＳ０の値をシンドロームレジスタＳ１〜Ｓ(n-1) に、シンドロームレジスタＳ１〜Ｓ(n-1) の各値をデータレジスタＲ１〜Ｒ(n-1) にそれぞれロードし、シンドロームレジスタＳ１〜Ｓ(n-1) を用いてα，…，α(n-1)のべき乗演算を、シンドロームレジスタＳ１〜Ｓ(n-1) の各値とデータレジスタＲ１〜Ｒ(n-1) の各値が一致するまで繰り返すとともに、そのべき乗演算に同期してカウント動作を行い、その一致検出時のカウント値を誤りが含まれているデータ位置とし、シンドロームレジスタＳ０の値をその誤りの大きさとしてエラー訂正を行う方法や、データのフォーマット上で上記内符号系列毎に設けられた識別データには０が存在しないようにし、被復号データを外符号によりエラー訂正を行う際にデータ内に０が一定数以上連続して存在する場合には、上記識別データを用いて本来のデータであるのか、もしくはエラーの状態であるのかを判別し、上記０の値を持つデータがエラーの状態であると判別されるときには内符号系列にエラーフラグを立て、外符号によりエラー訂正する際に、上記エラーフラグが立たなかった外符号系列のデータ数が外符号の通常のエラー訂正能力Ｑ以下のときには、外符号系列のデータ内のＱ＋１以上のデータを強制的に別の値に変換し、上記外符号系列のデータのエラー訂正を行わないようにする方法がある（例えば、特許文献１および特許文献２参照）。
【０００４】
以上の方法は、受信側の装置が受信したデータに誤りが含まれる場合に、その誤りを訂正し、正しいデータを復元するための方法であるので、例えば、受信側の装置が受信できなかった（ロスした）データを復元することはできない。
【０００５】
データ通信においては、様々な理由により、送信側の装置が送信したパケット群（データ）の一部（または全部）を受信側の装置が受信できずに、ロスしてしまう場合もある。
【０００６】
このようなパケットロスに対する処理として、例えば、パケットをロスした受信側の装置が、送信側の装置に対して、そのロスしたパケットの再送要求を行う方法がある。すなわち、受信側の装置は、ロスしたパケットを再度送信側の装置に送信してもらい、改めて受信するという方法がある。また、送信側の装置が、例えば衛星回線等のように、一方向の通信しかできない通信媒体を用いてデータを送信する場合、その再送要求に、最初のパケットの送受信に使われた回線と異なる回線を用いる方法もある。
【０００７】
さらに、送信側の装置が、例えば、図１に示されるように、同じデータを繰り返し送信し、受信側の装置は、パケットをロスした場合、次回に送信されるデータ（パケット群）の中から、ロスしたパケットを受信し、データを復元するカルーセル方式を用いた方法もある。
【０００８】
図１は、受信側の装置がデータを受信する様子の例を示す図である。送信側の装置が同じデータ１を繰り返し送信するので、受信側の装置は、データ１Ａ、データ１Ｂ、データ１Ｃ、データ１Ｄのように、同じデータを繰り返し受信する。従って、例えば、データ１Ａを受信した際に、パケットロス２Ａが発生した場合であっても、受信側の装置は、次に受信するデータ１Ｂの、そのロスしたパケット（パケットロス２Ａ）に対応するパケット２Ｂを受信すれば、そのパケット２Ｂを用いて、データ１を復元することができる。また、データ１Ｂを受信した際に、パケット２Ｂもロスしてしまったとしても、受信側の装置は、さらに次に受信するデータ１Ｃの、パケットロス２Ａに対応するパケット２Ｃを受信することができれば、そのパケット２Ｃを用いて、データ１を復元することができる。さらに、このパケット２Ｃをロスした場合も、受信側の装置は、パケット２Ｄを受信すればよい。このように、受信側の装置は、繰り返される送信の内、少なくともいずれか１回の送信において各パケットを受信することができ、結果的に全パケットを受信することができれば、データ１を復元することができる。
【０００９】
【特許文献１】特許３１７０９２０号
【００１０】
【特許文献２】特許３２７１２０８号
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、上述したような再送要求を行う方法の場合、例えば、マルチキャスト等のように、複数の装置に対してデータを送信するような通信の場合、送信側の装置には、受信側の各装置からの再送要求が集中してしまうため、送信側の装置の処理の負荷が増大し、送信処理を正常に行うことができない恐れがあるという課題があった。
【００１２】
また、上述したようなカルーセル方式の通信の場合、図１に示されるように、データ１Ａを受信する際に、パケットロス２Ａが発生すると、受信側の装置は、次回の送信であるデータ１Ｂの、パケットロス２Ａに対応するパケット２Ｂを受信するまで、待機する必要がある。すなわち、この場合、受信側の装置における受信処理の時間は、データ１を受信するのに必要な時間分、長くなってしまい、受信側の装置における受信処理の負荷が増大してしまうという課題があった。すなわち、図１に示されるように、受信側の装置は、パケットロス２Ａが発生すると、次に送信されるパケット２Ｂを受信するまで（受信側の装置がデータ１を受信するのに必要な時間）待機しなければならず、受信処理時間が増大してしまう。さらに、パケット２Ｂをロスした場合、受信側の装置は、さらに待機時間を延長し、次のパケット２Ｃを受信するまで待機する必要がある。
【００１３】
本発明は、このような状況に鑑みてなされたものであり、データの送受信を正確、かつ、より容易に行うことができるようにするものである。
【課題を解決するための手段】
【００１４】
本発明の送受信システムは、送信用データを送信する送信装置と、送信装置により送信される送信用データを受信する受信装置を備える送受信システムであって、送信装置は、送信用データを分割することにより複数の第１のデータを生成し、生成された複数の第１のデータを、所定のガロア体上の演算によって合成することにより、互いに独立した複数の第２のデータに変換し、得られた複数の第２のデータを、それぞれパケット化して受信装置に送信し、受信装置は、複数の第２のデータを、第２のデータが対応する第１のデータの数以上受信し、受信された第２のデータが対応する第１のデータの数以上の第２のデータを保持し、保持された、第２のデータが対応する第１のデータの数以上の第２のデータを用いて、ガロア体上の演算を行い、第２のデータに対応する第１のデータを復元することを特徴とする。
【００１５】
本発明の送信装置は、送信用データを分割することにより複数の第１のデータを生成するデータ生成手段と、データ生成手段により生成された複数の第１のデータを、所定のガロア体上の演算によって合成することにより、第１のデータを復元するためのデータであり、互いに独立した複数の第２のデータに変換する変換手段と、変換手段により複数の第１のデータが変換されて得られた複数の第２のデータを、それぞれパケット化して受信装置に送信する送信手段とを備えることを特徴とする。
【００１６】
前記変換手段は、予め定められた所定の係数行列を用いて、第１のデータを第２のデータに変換する行列式を生成する行列式生成手段と、行列式生成手段により生成された行列式を、ガロア体上において演算し、第２のデータを求める演算手段とを備えるようにすることができる。
【００１７】
前記係数行列の各成分は、各行において共通の自然数である底にべき乗のガロア体での演算を適用して得られた値であり、行方向に並ぶ各成分を得るためのべき乗の指数は連続する整数であり、かつ、底の値が行毎に互いに異なるようにすることができる。
【００１８】
前記係数行列を保持し、行列式生成手段の要求に応じて供給する係数行列供給手段をさらに備え、行列式生成手段は、係数行列供給手段により供給された係数行列を用いて、行列式を生成するようにすることができる。
【００１９】
前記変換手段により第１のデータが変換されて得られた第２のデータに、受信装置における第１のデータの復元に用いられる情報である、第２のデータが対応する係数行列の行番号を含む情報を付加する情報付加手段をさらに備え、送信手段は、情報付加手段により情報が付加された複数の第２のデータを、それぞれパケット化し、受信装置に送信するようにすることができる。
【００２０】
前記変換手段は、複数の第１のデータを、第１のデータの数より多くの第２のデータに変換するようにすることができる。
【００２１】
前記変換手段により複数の第１のデータが変換されて得られた複数の第２のデータの、送信順を制御する送信順制御手段をさらに備え、送信手段は、送信順制御手段により、任意に決定された送信順で、複数の第２のデータを受信装置に送信するようにすることができる。
【００２２】
前記データ生成手段は、送信用データをブロックに分割し、さらに、ブロックを分割することにより複数の第１のデータを生成し、変換手段は、ブロック毎に、データ生成手段により生成された複数の第１のデータを複数の第２のデータに変換するようにすることができる。
【００２３】
本発明の送信方法は、送信用データを分割することにより複数の第１のデータを生成するデータ生成ステップと、データ生成ステップの処理により生成された複数の第１のデータを、所定のガロア体上の演算によって合成することにより、第１のデータを復元するためのデータであり、互いに独立した複数の第２のデータに変換する変換ステップと、変換ステップの処理により複数の第１のデータが変換されて得られた複数の第２のデータを、それぞれパケット化して受信装置に送信するように制御する送信制御ステップとを含むことを特徴とする。
【００２４】
本発明の第１のプログラムは、送信用データを分割することにより複数の第１のデータを生成するデータ生成ステップと、データ生成ステップの処理により生成された複数の第１のデータを、所定のガロア体上の演算によって合成することにより、第１のデータを復元するためのデータであり、互いに独立した複数の第２のデータに変換する変換ステップと、変換ステップの処理により複数の第１のデータが変換されて得られた複数の第２のデータを、それぞれパケット化して受信装置に送信するように制御する送信制御ステップとをコンピュータに実行させる。
【００２５】
本発明の受信装置は、送信装置が送信したデータであり、送信用データを分割した複数の第１のデータが所定のガロア体上の演算によって合成されることにより変換された互いに独立した複数の第２のデータを、第２のデータが対応する第１のデータの数以上受信する受信手段と、受信手段により受信される、第２のデータが対応する第１のデータの数以上の第２のデータを保持する保持手段と、保持手段により保持される、第２のデータが対応する第１のデータの数以上の第２のデータを用いて、ガロア体上の演算を行い、第２のデータに対応する第１のデータを復元する復元手段とを備えることを特徴とする。
【００２６】
前記復元手段は、予め定められた所定の係数行列を用いて、第２のデータを第１のデータに変換する行列式を生成する行列式生成手段と、行列式生成手段により生成された行列式を、ガロア体上において演算し、第１のデータを求める演算手段とを備えるようにすることができる。
【００２７】
前記係数行列の各行において、各成分は共通の自然数を底とするべき乗であり、行方向に連続する各成分はべき乗の指数が連続するように構成されており、かつ、べき乗の底である共通の自然数の値が行毎に互いに異なるようにすることができる。
【００２８】
前記係数行列を保持し、行列式生成手段の要求に応じて供給する係数行列供給手段をさらに備え、行列式生成手段は、係数行列供給手段により供給された係数行列を用いて、行列式を生成するようにすることができる。
【００２９】
前記行列式生成手段は、係数行列供給手段が保持する係数行列の内、受信手段により受信された第２のデータに対応する行成分のみを要求し、要求に基づいて供給された行成分のみを用いて行列式を生成するようにすることができる。
【００３０】
前記行列式生成手段は、受信手段により受信された第２のデータに付加されている、第２のデータが対応する係数行列の行番号を含む情報に基づいて、係数行列供給手段に行成分を要求し、要求に基づいて供給された行成分のみを用いて行列式を生成するようにすることができる。
【００３１】
複数の第１のデータおよび第２のデータは、送信用データのブロック毎に生成されたデータであり、受信手段は、ブロック毎に、第２のデータが対応する第１のデータの数以上の第２のデータを受信し、保持手段は、受信手段により受信された第２のデータを、第２のデータが対応するブロック毎に保持し、復元手段は、互いに同じブロックに対応する複数の第２のデータを用いて、第１のデータを復元するようにすることができる。
【００３２】
本発明の受信方法は、送信装置が送信したデータであり、送信用データを分割した複数の第１のデータが所定のガロア体上の演算によって合成されることにより変換された互いに独立した複数の第２のデータを、第２のデータが対応する第１のデータの数以上受信するように制御する受信制御ステップと、受信制御ステップの処理により受信される、第２のデータが対応する第１のデータの数以上の第２のデータを保持する保持ステップと、保持ステップの処理により保持される、第２のデータが対応する第１のデータの数以上の第２のデータを用いて、ガロア体上の演算を行い、第２のデータに対応する第１のデータを復元する復元ステップとを含むことを特徴とする。
【００３３】
本発明の第２のプログラムは、送信装置が送信したデータであり、送信用データを分割した複数の第１のデータが所定のガロア体上の演算によって合成されることにより変換された互いに独立した複数の第２のデータを、第２のデータが対応する第１のデータの数以上受信するように制御する受信制御ステップと、受信制御ステップの処理により受信される、第２のデータが対応する第１のデータの数以上の第２のデータを保持する保持ステップと、保持ステップの処理により保持される、第２のデータが対応する第１のデータの数以上の第２のデータを用いて、ガロア体上の演算を行い、第２のデータに対応する第１のデータを復元する復元ステップとをコンピュータに実行させる。
【００３４】
本発明の送受信装置は、送信用データを分割することにより複数の第１のデータを生成するデータ生成手段と、データ生成手段により生成された複数の第１のデータを、所定のガロア体上の演算によって合成することにより、互いに独立した複数の第２のデータに変換する変換手段と、変換手段により複数の第１のデータが変換されて得られた複数の第２のデータを、それぞれパケット化して他の送受信装置に送信する送信手段と、他の送受信装置が送信した複数の第２のデータを、第２のデータが対応する第１のデータの数以上受信する受信手段と、受信手段により受信される、第２のデータが対応する第１のデータの数以上の第２のデータを保持する保持手段と、保持手段により保持される、第２のデータが対応する第１のデータの数以上の第２のデータを用いて、ガロア体上の演算を行い、第２のデータに対応する第１のデータを復元する復元手段とを備えることを特徴とする。
【００３５】
本発明の送受信方法は、送信用データを分割することにより複数の第１のデータを生成するデータ生成ステップと、データ生成ステップの処理により生成された複数の第１のデータを、所定のガロア体上の演算によって合成することにより、互いに独立した複数の第２のデータに変換する変換ステップと、変換ステップの処理により複数の第１のデータが変換されて得られた複数の第２のデータを、それぞれパケット化して他の送受信装置に送信するように制御する送信制御ステップと、他の送受信装置が送信した複数の第２のデータを、第２のデータが対応する第１のデータの数以上受信するように制御する受信制御ステップと、受信制御ステップの処理により制御されて受信される、第２のデータが対応する第１のデータの数以上の第２のデータを保持するように制御する保持制御ステップと、保持制御ステップの処理により制御されて保持される、第２のデータが対応する第１のデータの数以上の第２のデータを用いて、ガロア体上の演算を行い、第２のデータに対応する第１のデータを復元する復元ステップとを含むことを特徴とする。
【００３６】
本発明の第３のプログラムは、送信用データを分割することにより複数の第１のデータを生成するデータ生成ステップと、データ生成ステップの処理により生成された複数の第１のデータを、所定のガロア体上の演算によって合成することにより、互いに独立した複数の第２のデータに変換する変換ステップと、変換ステップの処理により複数の第１のデータが変換されて得られた複数の第２のデータを、それぞれパケット化して他の送受信装置に送信するように制御する送信制御ステップと、他の送受信装置が送信した複数の第２のデータを、第２のデータが対応する第１のデータの数以上受信するように制御する受信制御ステップと、受信制御ステップの処理により制御されて受信される、第２のデータが対応する第１のデータの数以上の第２のデータを保持するように制御する保持制御ステップと、保持制御ステップの処理により制御されて保持される、第２のデータが対応する第１のデータの数以上の第２のデータを用いて、ガロア体上の演算を行い、第２のデータに対応する第１のデータを復元する復元ステップとをコンピュータに実行させる。
【００３７】
本発明の送受信システムにおいては、送信用データを送信する送信装置と、送信装置により送信される送信用データを受信する受信装置とが備えられ、送信装置においては、送信用データを分割することにより複数の第１のデータが生成され、生成された複数の第１のデータが、所定のガロア体上の演算によって合成されることにより、互いに独立した複数の第２のデータに変換され、得られた複数の第２のデータが、それぞれパケット化されて受信装置に送信され、受信装置においては、複数の第２のデータが、第２のデータが対応する第１のデータの数以上受信され、受信された第２のデータが対応する第１のデータの数以上の第２のデータが保持され、保持された、第２のデータが対応する第１のデータの数以上の第２のデータを用いて、ガロア体上の演算が行われ、第２のデータに対応する第１のデータが復元される。
【００３８】
本発明の送信装置および方法、並びに第１のプログラムにおいては、送信用データを分割することにより複数の第１のデータが生成され、生成された複数の第１のデータが、所定のガロア体上の演算によって合成されることにより、第１のデータを復元するためのデータであり、互いに独立した複数の第２のデータに変換され、複数の第１のデータが変換されて得られた複数の第２のデータが、それぞれパケット化されて受信装置に送信される。
【００３９】
本発明の受信装置および方法、並びに第２のプログラムにおいては、送信装置が送信したデータであり、送信用データを分割した複数の第１のデータが所定のガロア体上の演算によって合成されることにより変換された互いに独立した複数の第２のデータが、第２のデータが対応する第１のデータの数以上受信され、受信された、第２のデータが対応する第１のデータの数以上の第２のデータが保持され、保持された、第２のデータが対応する第１のデータの数以上の第２のデータを用いて、ガロア体上の演算が行われ、第２のデータに対応する第１のデータが復元される。
【００４０】
本発明の送受信装置および方法、並びに第３のプログラムにおいては、送信用データを分割することにより複数の第１のデータが生成され、生成された複数の第１のデータが、所定のガロア体上の演算によって合成されることにより、互いに独立した複数の第２のデータに変換され、複数の第１のデータが変換されて得られた複数の第２のデータが、それぞれパケット化されて他の送受信装置に送信され、他の送受信装置が送信した複数の第２のデータが、第２のデータが対応する第１のデータの数以上受信され、受信される、第２のデータが対応する第１のデータの数以上の第２のデータが保持され、保持された、第２のデータが対応する第１のデータの数以上の第２のデータを用いて、ガロア体上の演算が行われ、第２のデータに対応する第１のデータが復元される。
【発明の効果】
【００４１】
本発明によれば、データを送受信することができる。特に、データの送受信をより正確、かつ、より容易に行うことができる。
【発明を実施するための最良の形態】
【００４２】
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００４３】
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定したりするものではない。
【００４４】
本発明においては、送信用データ（例えば、図４の送信データ４１）を送信する送信装置（例えば、図２の送信装置１１）と、送信装置により送信される送信用データを受信する受信装置（例えば、図２の受信装置１３）を備える送受信システム（例えば、図２の通信システム１０）が提供される。送信装置は、送信装置は、送信用データを分割することにより複数の第１のデータ（例えば、図４の元データ４３）を生成し（例えば、図１３のステップＳ２）、生成された複数の第１のデータを、所定のガロア体上の演算によって合成することにより、互いに独立した複数の第２のデータ（例えば、図４の変換データ４４）に変換し（例えば、図１３のステップＳ３）、得られた複数の第２のデータを、それぞれパケット化して（例えば、図１３のステップＳ５）受信装置に送信し（例えば、図１３のステップＳ７）、受信装置は、複数の第２のデータを、第２のデータが対応する第１のデータの数以上受信し（例えば、図１６のステップＳ６１）、受信された第２のデータが対応する第１のデータの数以上の第２のデータを保持し（例えば、図１６のステップＳ６３）、保持された、第２のデータが対応する第１のデータの数以上の第２のデータを用いて、ガロア体上の演算を行い、第２のデータに対応する第１のデータを復元する（例えば、図１６のステップＳ６５）。
【００４５】
本発明においては、送信用データ（例えば、図４の送信データ４１）を受信装置（例えば、図２の受信装置１３）に送信する送信装置（例えば、図２の送信装置１１）が提供される。この送信装置は、送信用データを分割することにより複数の第１のデータ（例えば、図４の元データ４３）を生成するデータ生成手段（例えば、図３のブロック分割部２２）と、データ生成手段により生成された複数の第１のデータを、所定のガロア体上の演算によって合成することにより、第１のデータを復元するためのデータであり、互いに独立した複数の第２のデータ（例えば、図４の変換データ４４）に変換する変換手段（例えば、図３の変換データ生成部２３）と、変換手段により複数の第１のデータが変換されて得られた複数の第２のデータを、それぞれパケット化して（例えば、図１３のステップＳ５）受信装置に送信する送信手段（例えば、図３のUDPパケット化部２５乃至イーサネット(R)処理部２９）とを備える。
【００４６】
前記変換手段は、予め定められた所定の係数行列（例えば、式（１）の右辺第１項の行列）を用いて、第１のデータを第２のデータに変換する行列式（例えば、式（１））を生成する行列式生成手段（例えば、図６の行列式生成部６２）と、行列式生成手段により生成された行列式を、ガロア体上において演算し、第２のデータを求める演算手段（例えば、図６の行列式演算部６４およびガロア体演算部６６）とを備えるようにすることができる。
【００４７】
前記係数行列を保持し、行列式生成手段の要求に応じて供給する係数行列供給手段（例えば、図６の係数行列供給部６３）をさらに備え、行列式生成手段は、係数行列供給手段により供給された係数行列を用いて、行列式を生成する（例えば、図１４のステップＳ２３）ようにすることができる。
【００４８】
前記変換手段により第１のデータが変換されて得られた第２のデータに、受信装置における第１のデータの復元に用いられる情報である、第２のデータが対応する係数行列の行番号を含む情報（例えば、図９の行番号９３）を付加する情報付加手段（例えば、図８のヘッダ付加部８４）をさらに備え、送信手段は、情報付加手段により情報が付加された複数の第２のデータを、それぞれパケット化し（例えば、図１３のステップＳ５）、受信装置に送信する（例えば、図１３のステップＳ７）ようにすることができる。
【００４９】
前記変換手段により複数の第１のデータが変換されて得られた複数の第２のデータの、送信順を制御する送信順制御手段（例えば、図３のバッファ２６および出力制御部２７）をさらに備え、送信手段は、送信順制御手段により、任意に決定された送信順で、複数の第２のデータを受信装置に送信するようにすることができる。
【００５０】
前記データ生成手段は、送信用データをブロックに分割し、さらに、ブロックを分割することにより複数の第１のデータを生成し（例えば、図１３のステップＳ２）、変換手段は、ブロック毎に、データ生成手段により生成された複数の第１のデータを複数の第２のデータに変換する（例えば、図１３のステップＳ３）ようにすることができる。
【００５１】
本発明においては、送信用データ（例えば、図４の送信データ４１）を受信装置（例えば、図２の受信装置１３）に送信する送信装置（例えば、図２の送信装置１１）の送信方法が提供される。この送信方法は、送信用データを分割することにより（例えば、図１３のステップＳ１）複数の第１のデータ（例えば、図４の元データ４３）を生成するデータ生成ステップ（例えば、図１３のステップＳ２）と、データ生成ステップの処理により生成された複数の第１のデータを、所定のガロア体上の演算によって合成することにより、第１のデータを復元するためのデータであり、互いに独立した複数の第２のデータ（例えば、図４の変換データ４４）に変換する変換ステップ（例えば、図１３のステップＳ３）と、変換ステップの処理により複数の第１のデータが変換されて得られた複数の第２のデータを、それぞれパケット化して（例えば、図１３のステップＳ５）受信装置に送信するように制御する送信制御ステップ（例えば、図１３のステップＳ７）とを含む。
【００５２】
本発明においては、送信用データ（例えば、図４の送信データ４１）を受信装置（例えば、図２の受信装置１３）に送信する送信処理をコンピュータ（例えば、図２の送信装置１１）に実行させる第１のプログラムが提供される。この第１のプログラムは、送信用データを分割することにより（例えば、図１３のステップＳ１）複数の第１のデータ（例えば、図４の元データ４３）を生成するデータ生成ステップ（例えば、図１３のステップＳ２）と、データ生成ステップの処理により生成された複数の第１のデータを、所定のガロア体上の演算によって合成することにより、第１のデータを復元するためのデータであり、互いに独立した複数の第２のデータ（例えば、図４の変換データ４４）に変換する変換ステップ（例えば、図１３のステップＳ３）と、変換ステップの処理により複数の第１のデータが変換されて得られた複数の第２のデータを、それぞれパケット化して（例えば、図１３のステップＳ５）受信装置に送信するように制御する送信制御ステップ（例えば、図１３のステップＳ７）とを含む。
【００５３】
本発明においては、送信装置（例えば、図２の送信装置１１）が送信したデータを受信する受信装置（例えば、図２の受信装置１３）が提供される。この受信装置は、送信装置が送信したデータであり、送信用データ（例えば、図４の送信データ４１）を分割した複数の第１のデータ（例えば、図４の元データ４３）が所定のガロア体上の演算によって合成されることにより変換された互いに独立した複数の第２のデータ（例えば、図４の変換データ４４）を、第２のデータが対応する第１のデータの数以上受信する受信手段（例えば、図１０のイーサネット(R)処理部１０１乃至アプリケーションデータ抽出部１０３）と、受信手段により受信される、第２のデータが対応する第１のデータの数以上の第２のデータを保持する保持手段（例えば、図１０のバッファ部１０４）と、保持手段により保持される、第２のデータが対応する第１のデータの数以上の第２のデータを用いて、ガロア体上の演算を行い、第２のデータに対応する第１のデータを復元する復元手段（例えば、図１０のパケットデータ復元部１０５）とを備える。
【００５４】
前記復元手段は、予め定められた所定の係数行列（例えば、式（１）の右辺第１項の行列）を用いて、第２のデータを第１のデータに変換する行列式（例えば、式（１））を生成する行列式生成手段（例えば、図１２の行列式作成部１２２）と、行列式生成手段により生成された行列式を、ガロア体上において演算し、第１のデータを求める演算手段（例えば、図１２の行列式演算部１２４およびガロア体演算部１２５）とを備えるようにすることができる。
【００５５】
前記係数行列を保持し、行列式生成手段の要求に応じて供給する係数行列供給手段（例えば、図１２の係数行列供給部１２３）をさらに備え、行列式生成手段は、係数行列供給手段により供給された係数行列を用いて、行列式を生成する（例えば、図１７のステップＳ８４）ようにすることができる。
【００５６】
前記行列式生成手段は、係数行列供給手段が保持する係数行列の内、受信手段により受信された第２のデータに対応する行成分のみを要求し（例えば、図１７のステップＳ８３）、要求に基づいて供給された行成分のみを用いて行列式を生成するようにすることができる。
【００５７】
前記行列式生成手段は、受信手段により受信された第２のデータに付加されている、第２のデータが対応する係数行列の行番号を含む情報（例えば、図９の行番号９３）に基づいて、係数行列供給手段に行成分を要求し、要求に基づいて供給された行成分のみを用いて行列式を生成するようにすることができる。
【００５８】
複数の第１のデータおよび第２のデータは、送信用データのブロック（例えば、図４のブロック４２）毎に生成されたデータであり、受信手段は、ブロック毎に、第２のデータが対応する第１のデータの数以上の第２のデータを受信し、保持手段は、受信手段により受信された第２のデータを、第２のデータが対応するブロック毎に保持し、復元手段は、互いに同じブロックに対応する複数の第２のデータを用いて、第１のデータを復元するようにすることができる。
【００５９】
本発明においては、送信装置（例えば、図２の送信装置１１）が送信したデータを受信する受信装置（例えば、図２の受信装置１３）の受信方法が提供される。この受信方法は、送信装置が送信したデータであり、送信用データ（例えば、図４の送信データ４１）を分割した複数の第１のデータ（例えば、図４の元データ４３）が所定のガロア体上の演算によって合成されることにより変換された互いに独立した複数の第２のデータ（例えば、図４の変換データ４４）を、第２のデータが対応する第１のデータの数以上受信するように制御する受信制御ステップ（例えば、図１６のステップＳ６１）と、受信制御ステップの処理により受信される、第２のデータが対応する第１のデータの数以上の第２のデータを保持する保持ステップ（例えば、図１６のステップＳ６３）と、保持ステップの処理により保持される、第２のデータが対応する第１のデータの数以上の第２のデータを用いて、ガロア体上の演算を行い、第２のデータに対応する第１のデータを復元する復元ステップ（例えば、図１６のステップＳ６５）とを含む。
【００６０】
本発明においては、送信装置（例えば、図２の送信装置１１）が送信したデータを受信する受信処理をコンピュータ（例えば、図２の受信装置１３）に実行させる第２のプログラムが提供される。この第２のプログラムは、送信装置が送信したデータであり、送信用データ（例えば、図４の送信データ４１）を分割した複数の第１のデータ（例えば、図４の元データ４３）が所定のガロア体上の演算によって合成されることにより変換された互いに独立した複数の第２のデータ（例えば、図４の変換データ４４）を、第２のデータが対応する第１のデータの数以上受信するように制御する受信制御ステップ（例えば、図１６のステップＳ６１）と、受信制御ステップの処理により受信される、第２のデータが対応する第１のデータの数以上の第２のデータを保持する保持ステップ（例えば、図１６のステップＳ６３）と、保持ステップの処理により保持される、第２のデータが対応する第１のデータの数以上の第２のデータを用いて、ガロア体上の演算を行い、第２のデータに対応する第１のデータを復元する復元ステップ（例えば、図１６のステップＳ６５）とを含む。
【００６１】
本発明においては、送信用データ（例えば、図４の送信データ４１）を送受信する送受信装置（例えば、図１８の送受信装置２１１または送受信装置２１３）が提供される。この送受信装置は、送信用データを分割することにより複数の第１のデータ（例えば、図４の元データ４３）を生成するデータ生成手段（例えば、図３のブロック分割部２２）と、データ生成手段により生成された複数の第１のデータを、所定のガロア体上の演算によって合成することにより、互いに独立した複数の第２のデータ（例えば、図４の変換データ４４）に変換する変換手段（例えば、図３の変換データ生成部２３）と、変換手段により複数の第１のデータが変換されて得られた複数の第２のデータを、それぞれパケット化して（例えば、図１３のステップＳ５）他の送受信装置に送信する送信手段（例えば、図３のUDPパケット化部２５乃至イーサネット(R)処理部２９）と、他の送受信装置が送信した複数の第２のデータを、第２のデータが対応する第１のデータの数以上受信する受信手段（例えば、図１０のイーサネット(R)処理部１０１乃至アプリケーションデータ抽出部１０３）と、受信手段により受信される、第２のデータが対応する第１のデータの数以上の第２のデータを保持する保持手段（例えば、図１０のバッファ部１０４）と、保持手段により保持される、第２のデータが対応する第１のデータの数以上の第２のデータを用いて、ガロア体上の演算を行い、第２のデータに対応する第１のデータを復元する復元手段（例えば、図１０のパケットデータ復元部１０５）とを備える。
【００６２】
本発明においては、送信用データ（例えば、図４の送信データ４１）を送受信する送受信装置（例えば、図１８の送受信装置２１１または送受信装置２１３）の送受信方法が提供される。この送受信方法は、送信用データを分割することにより複数の第１のデータ（例えば、図４の元データ４３）を生成するデータ生成ステップ（例えば、図１３のステップＳ２）と、データ生成ステップの処理により生成された複数の第１のデータを、所定のガロア体上の演算によって合成することにより、互いに独立した複数の第２のデータ（例えば、図４の変換データ４４）に変換する変換ステップ（例えば、図１３のステップＳ３）と、変換ステップの処理により複数の第１のデータが変換されて得られた複数の第２のデータを、それぞれパケット化して（例えば、図１３のステップＳ５）他の送受信装置（例えば、図１８の送受信装置２１１または送受信装置２１３）に送信するように制御する送信制御ステップ（例えば、図１３のステップＳ７）と、他の送受信装置が送信した複数の第２のデータを、第２のデータが対応する第１のデータの数以上受信するように制御する受信制御ステップ（例えば、図１６のステップＳ６１）と、受信制御ステップの処理により制御されて受信される、第２のデータが対応する第１のデータの数以上の第２のデータを保持するように制御する保持制御ステップ（例えば、図１６のステップＳ６３）と、保持制御ステップの処理により制御されて保持される、第２のデータが対応する第１のデータの数以上の第２のデータを用いて、ガロア体上の演算を行い、第２のデータに対応する第１のデータを復元する復元ステップ（例えば、図１６のステップＳ６５）とを含む。
【００６３】
本発明においては、送信用データ（例えば、図４の送信データ４１）を送受信する送受信処理をコンピュータ（例えば、図１８の送受信装置２１１または送受信装置２１３）に実行させる第３のプログラムが提供される。この第３のプログラムは、送信用データを分割することにより複数の第１のデータ（例えば、図４の元データ４３）を生成するデータ生成ステップ（例えば、図１３のステップＳ２）と、データ生成ステップの処理により生成された複数の第１のデータを、所定のガロア体上の演算によって合成することにより、互いに独立した複数の第２のデータ（例えば、図４の変換データ４４）に変換する変換ステップ（例えば、図１３のステップＳ３）と、変換ステップの処理により複数の第１のデータが変換されて得られた複数の第２のデータを、それぞれパケット化して（例えば、図１３のステップＳ５）他の送受信装置（例えば、図１８の送受信装置２１１または送受信装置２１３）に送信するように制御する送信制御ステップ（例えば、図１３のステップＳ７）と、他の送受信装置が送信した複数の第２のデータを、第２のデータが対応する第１のデータの数以上受信するように制御する受信制御ステップ（例えば、図１６のステップＳ６１）と、受信制御ステップの処理により制御されて受信される、第２のデータが対応する第１のデータの数以上の第２のデータを保持するように制御する保持制御ステップ（例えば、図１６のステップＳ６３）と、保持制御ステップの処理により制御されて保持される、第２のデータが対応する第１のデータの数以上の第２のデータを用いて、ガロア体上の演算を行い、第２のデータに対応する第１のデータを復元する復元ステップ（例えば、図１６のステップＳ６５）とを含む。
【００６４】
以下に、本発明の実施の形態について図面を参照して説明する。
【００６５】
図２は、本発明を適用した通信システムの構成例を表している。
【００６６】
図２の通信システム１０は、データを送信する送信装置１１、LAN（Local Area Network）やインターネット等に代表されるネットワークであり、送信装置１１が接続されるネットワーク１２、および、ネットワーク１２に接続され、送信装置１１より送信されるデータを受信する受信装置１３により構成される。
【００６７】
送信装置１１は、外部より供給されたダウンロードデータ等の、送信用のコンテンツデータ（送信用データ）を取得すると、その送信用データを分割して送信する際のパケットサイズのデータ（パケットデータ）を生成し、そのパケットデータを用いて、桁あふれを防止するためにガロア体上で四則演算を行い、実際に送信する変換データに変換してから、それをUDP（User Datagram Protocol）等の所定のプロトコルを用いてパケット化して送信する。
【００６８】
なお、ガロア体（ガロア拡大体）とは、整数を素数（例えば５等）で除算した余りの集合｛０，１，２，３，４｝のように、要素の数が有限で、四則演算が閉じている集合のことを示しており、２w（２のｗ乗）の要素（元）を持つ体（２wのガロア拡大体）は、ＧＦ（２w）と表す。送信装置１１（受信装置１３）は、このガロア体上の演算を用いることにより、演算結果の桁あふれの発生を防止することができる。
【００６９】
受信装置１３は、送信装置１１より供給されるパケット（変換データ）を受信すると、受信したパケットから変換データを抽出し、その受信した変換データを用いて、元の送信用データを復元する。このとき、送信装置１１は、受信装置１３が元の送信用データを復元するのに必要な数以上の変換データを受信装置１３に送信し、受信装置１３は、その送信された変換データの中から、少なくとも、元の送信用データを復元するのに必要な数の変換データを受信する。送信装置１１における変換データの生成方法、および、受信装置１３における元の送信用データの復元方法については後述する。
【００７０】
このようにすることにより、受信装置１３は、送信装置１１が送信するパケットを全て受信しなくても、送信装置１１に再送要求を行うことなく、送信装置１１が送信した送信用データを復元することができる。
【００７１】
図３は、送信装置１１の詳細な構成例を示すブロック図である。なお、送信装置１１により処理される送信用データの変化を、図４を用いて説明する。
【００７２】
図３において、送信装置１１のデータ分割部２１は、送信装置１１の外部より供給されたコンテンツデータ等の送信データを所定のデータサイズのブロックに分割し、それをブロック分割部２２に供給する。すなわち、データ分割部２１は、供給される送信データを内蔵するバッファ（図示せず）に蓄積していき、所定のデータサイズのデータが蓄積される度に、それをブロックとしてブロック分割部２２に供給する。
【００７３】
例えば、図４の場合、送信装置１１に供給される送信データ４１は、データ分割部２１により、番号１乃至３で示される３つのブロック４２に分割される。
【００７４】
図３に戻り、ブロック分割部２２は、データ分割部２１と同様にして、データ分割部２１より供給されるブロック単位の送信データを、さらに所定のデータサイズに分割する。すなわち、ブロック分割部２２は、ブロック単位の送信データを、後段において、パケット化する際のデータサイズ（パケットサイズ）に分割し、パケット用のデータ（パケットデータ）を生成する。パケットデータを生成したブロック分割部２２は、それを、変換データ生成部２３に供給する。
【００７５】
例えば、図４の場合、ブロック４２は、それぞれ、ブロック分割部２２により、パケット化する際のデータサイズのパケットデータである元データ４３に分割される。図４の場合、各ブロックはそれぞれ３個の元データ４３に分割される。例えば、番号１で示されるブロックは、番号１１乃至１３で示される元データに分割され、番号２で示されるブロックは、番号２１乃至２３で示される元データに分割され、番号３で示されるブロックは、番号３１乃至３３で示される元データに分割される。
【００７６】
変換データ生成部２３は、元の送信用データを分割したパケットデータ（元データ）を１ブロック分取得すると、ガロア体上の四則演算を行い、その元データを変換して変換データを生成する。具体的には、変換データ生成部２３は、１ブロック内の各元データを、桁あふれを防止するためにガロア体上の演算を行って合成し、変換データとする。より具体的な生成方法については後述する。
【００７７】
なお、この変換データは、ガロア体上の四則演算を用いて、ブロック内の各元データを合成したものである。また、この変換データは、後述するように、元データと同じデータサイズであり、各変換データが互いに独立となるように複数生成される。従って、後述するように、受信装置１３は、任意の変換データを所定の数（例えば、元データの数以上）取得することができれば、全ての元データを復元することができる。
【００７８】
例えば、図４に示されるように、元データ４３は、ブロック単位で変換データ４４に変換される。その際、変換データ生成部２３は、元データ４３以上の数の変換データ４４を生成する。図４の場合、各ブロックにおいて、３つの元データ４３より６つの変換データ４４が生成される。例えば、番号１で示されるブロック４２においては、番号１１乃至１３で示される元データ４３は、番号１１乃至１６で示される６つの変換データ４４に変換され、番号２で示されるブロック４２においては、番号２１乃至２３で示される元データ４３は、番号２１乃至２６で示される６つの変換データ４４に変換され、番号３で示されるブロック４２においては、番号３１乃至３３で示される元データ４３は、番号３１乃至３６で示される６つの変換データ４４に変換される。
【００７９】
変換データ生成部２３は、元データを変換して得られた変換データをアプリケーションデータ生成部２４に供給する。
【００８０】
アプリケーションデータ生成部２４は、変換データ生成部２３より供給された変換データに、それぞれ、ヘッダを付加し、アプリケーションデータを生成する。ヘッダの内容については、後述する。アプリケーションデータ生成部２４は、生成したアプリケーションデータをUDPパケット化部２５に供給する。
【００８１】
なお、ここまでの処理は、ISO（International Organization for Standardization）が制定した７階層のネットワークプロトコルの構造のモデルであるOSI階層モデル（Open Systems Interconnection layer model）における、アプリケーション層、プレゼンテーション層、およびセション層の処理である。
【００８２】
アプリケーションデータを供給されたUDPパケット化部２５は、そのアプリケーションデータをUDPプロトコルに基づいてパケット化し、その生成したUDPパケットをバッファ２６に供給する。
【００８３】
図５に示されるように、UDPパケット５１は、６４ビットのUDPヘッダ５２およびアプリケーションデータ５３により構成される。UDPヘッダ５２には、送信元のポート番号、送信先のポート番号、アプリケーションデータ５３のデータ長、およびチェックサム等の情報が含まれる。アプリケーションデータのデータサイズは、任意に定められた所定の値であるが、通常１Ｋバイト程度である。
【００８４】
図３に戻り、バッファ２６は、RAM（Random Access Memory）等の半導体メモリ等により構成され、UDPパケット化部２５より供給されるUDPパケットを蓄積し、出力制御部２７の制御に基づいて、その蓄積しているUDPパケットを出力する。
【００８５】
出力制御部２７は、バッファ２６にUDPパケットが蓄積されると、それらのUDPパケットを任意の（ランダムな）順番で取得し、それらをIP（Internet Protocol）処理部２８に供給する。すなわち、バッファ２６および出力制御部２７は、UDPパケット化部２５において生成されたUDPパケットの出力順を変更（シャッフル）し、変換データを含むUDPパケットを任意の順番で出力させる。このとき、バッファ２６は、ブロック毎に変換された全ての変換データ、すなわち、送信用データに対応する全ての変換データを保持し、出力制御部２７は、それらの全ての変換データ（各変換データを含むUDPパケット）の出力順をシャッフルする。
【００８６】
一般に、パケットの送信時にネットワーク等において、受信側が連続する複数のパケットをバースト的にロスする（受信できない）場合がある。従って、送信装置１１が変換データを順番に出力した場合、そのようなバースト的パケットロスにより、パケットのロスが１つのブロックに偏って集中してしまう場合がある。後述するように、元データを復元するためには、ある程度のパケット数（の変換データ）を受信する必要があるため、このように、パケットロスに偏りが生じると、特定のブロックを復元できない恐れがある。
【００８７】
そこで、送信装置１１のバッファ２６および出力制御部２７が、以上のようにUDPパケットの出力順をシャッフルして、各ブロックの変換データを混在させた順番で送信するようにすることにより、パケットの送信時にバースト的パケットロスが発生しても、そのロスが特定のブロックに集中することを抑制することができ、バースト的パケットロスに対する耐性を強くすることができる。すなわち、送信装置１１は、より正確にデータを受信装置１３に送信することができる。従って、通信システム１０は、より正確なデータの送受信を実現することができる。
【００８８】
例えば、図４に示されるように、変換データ４４はUDPパケット化された後、その出力順がシャッフルされて、送信パケット４５として任意の順番で送信される。図４の場合、番号１乃至３で示される３つのブロック４２にそれぞれ対応する、番号１１乃至１６で示される変換データ４４、番号２１乃至２６で示される変換データ４４、並びに、番号３１乃至３６で示される変換データ４４がシャッフルされて送信される。
【００８９】
なお、バッファ２６および出力制御部２７は、各ブロックに対応する変換データの送信順をシャッフルして、各変換データを任意の順序で送信するようにすればよいので、バッファ２６が変換データを蓄積する処理と、出力制御部２７がバッファ２６に蓄積されている変換データを出力させる処理とを（それらの処理の一部または全部において）並行して行うようにしてももちろんよい。
【００９０】
これらのUDPパケット化部２５乃至出力制御部２７による処理は、OSI階層モデルにおける、トランスポート層の処理である。
【００９１】
IP処理部２８は、OSI階層モデルにおける、ネットワーク層の処理を行い、IPプロトコルに基づいて、出力制御部２７より供給されるUDPパケットをそれぞれIPパケット化し、イーサネット(R)（Ethernet(R)）処理部２９に供給する。イーサネット(R)処理部２９は、イーサネット(R)の規格に基づいて、データリンク層および物理層の処理を行い、IP処理部２８より供給されたIPパケットをさらにパケット化し、受信装置１３に送信するように、それを、ケーブル３０を介してネットワーク１２に出力する。
【００９２】
イーサネット(R)処理部２９より出力されたパケットは、ネットワーク１２を介して受信装置１３に供給される。
【００９３】
このように、送信用データを分割した元データをそのまま送信せずに、それぞれが全ての元データ（ブロック内の全ての元データ）の内容を含む変換データに変換してから送信するので、送信装置１１は、受信装置１３が、送信装置１１より送信したパケットの内、任意のパケットを所定の数以上取得すれば、元データ（送信用データ）を復元することができるようにすることができる。すなわち、送信装置１１は、受信装置１３のパケットロスに対する耐性を高め、データの送受信をより正確、かつ、より容易に行うようにデータを送信することができる。
【００９４】
なお、図４において示される、１つの送信データ４１に対するブロック４２、元データ４３、または変換データ４４等の数は、一例であり、生成される各データの数が、図４に示される数以外であってももちろんよい。また、送信パケット４５の送信順も一例であり、図４に示される以外の順番で送信されるようにしてももちろんよい。
【００９５】
次に、図３の変換データ生成部２３の詳細について説明する。なお、以下においては、送信装置１１は、１ブロックの送信データより、Ｎ個の元データＤ（Ｄ1乃至ＤN）を生成し、そのＮ個の元データＤを変換して、Ｍ個の変換データＳ（Ｓ1乃至ＳM）を生成する場合について説明する。図６は、変換データ生成部２３の詳細な構成例を示すブロック図である。
【００９６】
図６において、図３のブロック分割部２２より供給された元データは、元データ保持部６１に供給され、保持される。元データ保持部６１は、１ブロック分の元データを保持すると、その元データを行列式生成部６２に供給する。
【００９７】
１ブロック分の元データを取得すると、行列式生成部６２は、係数行列供給部６３に対して、変換データを生成するための行列式の生成に用いられる係数行列を要求する。係数行列は、予め用意され、係数行列供給部６３に保持されているＭ行Ｎ列の行列であり、元データを変換して変換データを生成するための行列である。係数行列の各成分の値は、求められる変換データが互いに独立となるように決められる。後述するように、全変換データは、この係数行列と、各元データを成分とする行列との積算により求められる。従って、係数行列の各行は、互いに異なる変換データに対応し、その各行の各成分は、それぞれ互いに異なる元データと積算される。
【００９８】
このような係数行列を要求された係数行列供給部６３は、その要求に対して予め保持している係数行列を行列式生成部６２に供給する。行列式生成部６２は、係数行列を取得すると、その係数行列と１ブロック分の元データを用いて、そのブロックに対応する変換データを生成するための行列式を生成する。具体的には、行列生成部６２は、以下の式（１）に示されるような行列式を生成する。
【００９９】
【数１】
2005223682.tif 000003
【０１００】
式（１）において、右辺第１項は、Ｍ行Ｎ列の係数行列であり、係数行列供給部６３より供給された係数行列である。この係数行列の行列式は、行方向の係数は連続していないが、列方向の係数のべき乗数は連続している（指数が連続する自然数である）ファンデルモンドの行列式であり、ガロア体上での演算でも正則である。すなわち、式（１）に示されるように、この係数行列のｊ行ｉ列目の成分Ａijは、行毎の自然数ｒjを底とし、列番号ｉから値「１」を引いた値「ｉ−１」を乗数とする値ｒj(i-1)となる。なお、各行において、共通の底である自然数ｒjの値は、各行で互いに異なる値となるように予め定められた任意の自然数である。従って、各行で、底の値は、連続する自然数であってもよいし、連続しなくてもよく、規則性が無くてもよい。
【０１０１】
また、各列の乗数の値は、行番号ｉと対応して「ｉ−１」となるように説明したが、これに限らず、例えば、「ｉ」や「ｉ＋１」等のように第１列目の乗数が「０」以外の値となるようにしてもよい。さらに、この各列の乗数の値は、行番号ｉと対応していなくてもよく、例えば、１列目から順に、３，７，９，２，・・・等となるように、連続する自然数が行番号に対してランダムに並べられたものであってもよい。ただし、各行において、その順番は共通とする。
【０１０２】
右辺第２項は、元データＤ（Ｄ1乃至ＤN）の行列であり、左辺の行列は、この行列式により算出される変換データＳ（Ｓ1乃至ＳM）である。なお、式（１）において、乗算は、ガロア体（ガロア拡大体）上の演算であり、加算はEOR演算により行われる。
【０１０３】
なお、変数ＭおよびＮの値の関係は、Ｍ>>Ｎとする。生成される変換データＳは、互いに独立しているので、受信装置１３は、変換データＳを、元データＤの数以上受信すれば、全ての元データＤを復元することができる。しかしながら、パケットロスにより、受信装置１３がいくつかの変換データＳを受信できない場合があるので、送信装置１１は、元データの数より多く、送信処理を実現可能な程度で、なるべく多くの変換データＳを生成する。従って、ここでは、変換データＳの数を示す変数Ｍの値と、元データＤの数を示す変数Ｎの値との関係を、上述したような関係とし、送信装置１１が十分な数の変換データを生成するものとする。
【０１０４】
例えば、送信装置１１の各部が１６ビットで演算を行うとすると、その場合の演算が行なわれるガロア体（ガロア拡大体）はGF（２16）となり、元は65000種となり、送信装置１１は、互いに独立した変換データを65000個生成することができる。従って、例えば、各ブロックの元データの数を2000個とすると、送信装置１１は、各ブロックの変換データのパケットを30倍以上（65000/2000）の期間送信することができる。受信装置１３は、元データを復元するためには、このように送信されるパケットの内、任意の2000個を受信すればよいので、再送要求を必要とせずに元データを復元することが容易である。もちろん、変数Ｍの値は、変数Ｎ以上であれば、いくつであってもよいので、生成される変換データの数は65000個以外であってもよい。
【０１０５】
このような行列式を生成すると、行列式生成部６２は、この行列式を行列式演算部６４に供給する。
【０１０６】
なお、行列式は、所謂、連立方程式と同じものを示すものとする。以下においても同様である。
【０１０７】
行列式演算部６４は、式（１）に示されるような行列式を解き、変換データＳ（Ｓ1乃至ＳM）を求め、その解を解出力部６５に供給する。このとき、行列式演算部６４は、ガロア体上の演算については、ガロア体演算部６６において行わせる。すなわち、行列式演算部６４は、ガロア体上の演算については、その式をガロア体演算部６６に供給して実行させる。ガロア体演算部６６は、式を取得すると、予め定められたガロア体上において、その式を演算し、その演算結果を行列式演算部６４に供給する。
【０１０８】
ここで、通常の１０進数の場合の、２つの行列の積算における演算手順を説明すると、まず、第１項の行列の各行が第２項の行列の各列と積算される。具体的には、第１項の行列の各行と第２項の行列の各列が互いに対応する成分毎に積算される。例えば、第１項の第１行目について説明すると、その行の第ｉ列目の成分は、第２項の各列の第ｉ行目の成分と積算される。このように積算が行われると、次に、この積算毎に各成分の積算結果が全て加算される。例えば、第１項の行列がＮ列の行列であり、第２項の行列がＮ行の行列であるとすると、第１項の行列の各行と第２項の行列の各列の各積算において、それぞれ、Ｎ個の成分同士の積算結果が得られるので、それらのＮ個の積算結果が加算され、この加算結果が、第１項の行列の行と第２項の行列の列の積算結果とされる。
【０１０９】
上述した式（１）の行列式においても、基本的にはこのような演算手順と同様の演算手順により演算が行われる。しかしながら、元データＤやEOR変換データＳは、２進数のビット列であるので、上述した１０進数の場合の演算手順における、成分同士の積算結果の加算処理の代わりに、ビット毎のEOR演算が用いられる。また、各データの桁数（ビット数）は固定であるので、桁あふれを防止するために、上述したように、積算は、所定のガロア体上の演算により行われる。すなわち、式（１）における四則演算は、全て所定のガロア体上の演算により行われる。
【０１１０】
演算手順の順序で演算方法を具体的に説明すると、行列式演算部６４は、上述した１０進数の場合と同様に、式（３）の右辺第１項の係数行列の各行を、右辺第２項の行列（元データＤ1乃至ＤNを成分とする行列）の列と積算する。具体的には、右辺第１項の係数行列の各行の各列成分を、右辺第２項の行列の各成分（元データＤ1乃至ＤN）と、それぞれ所定のガロア体上の演算により積算する。
【０１１１】
次に、行列式演算部６４は、これらの各成分の積算結果を、上述したように互いに対応するビット毎のEOR演算により合成する。なお、EOR演算について具体的に説明すると、値「０」と値「０」とのEOR演算結果の値は「０」であり、値「０」と値「１」とのEOR演算結果の値は「１」であり、値「１」と値「０」とのEOR演算結果の値は「１」であり、値「１」と値「１」とのEOR演算結果の値は「０」である。従って、例えば、「１１１１００００」のビット列と、「１０１０１０１０」のビット列とのEOR演算結果は、「０１０１１０１０」となる。行列式演算部６４は、このようなEOR演算を繰り返し、各成分の積算結果を全て合成する。そして、このEOR演算結果が、１つの変換データＳとされる。
【０１１２】
以上のような演算を、式（３）の右辺第１項の係数行列の各行に対して繰り返し、全ての左辺第１項の行列の成分として示される変換データＳ1乃至ＳMが求められる。
【０１１３】
以上のように、変換データ生成部２３においては、図７に示されるように、元データが変換されて変換データが生成される。
【０１１４】
図７において、１つのブロックの元データ４３（元データＤ1乃至ＤN）は、パケットデータ７１−１乃至７１−Ｎのようにパケットサイズのデータであり、上述したように、変換データ生成部２３において、変換データ４４に変換される。変換データ４４は、パケットデータ７２−１乃至７２−Ｍにより構成される。パケットデータ７２−１乃至７２−Ｍは、それぞれ、元データＤ1乃至ＤN（パケットデータ７１−１乃至７１−Ｎ）と上述した係数行列を用いて生成されたデータであり、式（１）の演算結果である。例えば、１つ目の変換データ４４であるパケットデータ７２−１は、元データＤ1乃至ＤN（パケットデータ７１−１乃至７１−Ｎ）と上述した係数行列の第１行目の演算結果であり、２つ目の変換データ４４であるパケットデータ７２−２は、元データＤ1乃至ＤN（パケットデータ７１−１乃至７１−Ｎ）と上述した係数行列の第２行目の演算結果であり、Ｍ個目の変換データ４４であるパケットデータ７２−Ｍは、元データＤ1乃至ＤN（パケットデータ７１−１乃至７１−Ｎ）と上述した係数行列の第Ｍ行目の演算結果である。なお、図７において、乗算はガロア体上の演算であり、値の最大桁数（ビット数）は変化しない。また、加算はビット毎のEOR演算により行われる。
【０１１５】
解出力部６５は、以上のように算出された解を、変換データＳとして、所定のタイミングで図３のアプリケーションデータ生成部２４に供給する。
【０１１６】
次に、アプリケーションデータについて説明する。
【０１１７】
図８は、図３のアプリケーションデータ生成部２４の詳細な構成例を示すブロック図である。
【０１１８】
最初に、パケットデータが供給される前に、変換データカウンタ８２およびブロックカウンタ８３は、初期化される。
【０１１９】
変換データ受付部８１は、変換データ生成部２３より変換データが供給されると、その変換データがブロックの最初のパケットデータである場合、変換データカウンタ８２とブロックカウンタ８３をカウントアップさせる。また、変換データ生成部２３より供給された変換データがブロックの最初のパケットデータでない（既に、そのブロックの変換データが供給されている）場合、変換データ受付部８１は、変換データカウンタ８２のみをカウントアップさせる。変換データカウンタ８２およびブロックカウンタ８３は、所定のタイミングで、そのカウント値をヘッダ付加部８４に供給する。
【０１２０】
また、変換データ受付部８１は、ブロックの最後の変換データを処理した後に、変換データカウンタ８２のカウント値を初期化する。
【０１２１】
さらに、変換データ受付部８１は、各カウンタを調整すると、変換データをヘッダ付加部８４に供給する。ヘッダ付加部８４は、変換データ受付部８１より供給された変換データに対して、変換データカウンタ８２およびブロックカウンタ８３より供給されたカウント値を、図９に示されるように、ヘッダとして変換データに付加し、アプリケーションデータを生成する。
【０１２２】
図９において、アプリケーションデータ９１は、ヘッダとして付加されたブロック番号９２および変換データの生成時に用いられた係数行列の行番号９３、並びに、変換データ９４により構成される。ブロック番号９２は、各ブロックを識別するための番号であり、各ブロックに対して互いに異なる値が割り当てられる。その値は、ブロックカウンタ８３より供給されるカウント値である。変換データ生成部２３は、ブロック単位で元データを変換データに変換し、その変換データをアプリケーションデータ生成部２４に供給するので、ブロックカウンタ８３は、供給される変換データに対応するブロックをカウントしていくことにより、ブロック番号９２を供給することができる。
【０１２３】
行番号９３は、各変換データが対応する、各変換データを生成する際に演算に利用された係数行列の行番号である。その値は、変換データカウンタ８２より供給されるカウント値である。変換データ生成部２３は、元データを変換データに変換すると、その変換データを、変換した順番に、アプリケーションデータ生成部２４に供給する。すなわち、変換データ生成部２３は、上述した式（１）における１つ目の変換データＳ1からＭ個目の変換データＳMまで、各変換データを順に求めていき、その求めた順に、変換データをアプリケーションデータ生成部２４に供給する。従って、変換データ生成部２３は、Ｓ1，Ｓ2，Ｓ3，…，ＳMの順番で変換データをアプリケーションデータ生成部２４に供給するので、変換データカウンタ８２は、供給される変換データをカウントすることにより、カウント値を、各変換データに対応する係数行列の行番号として供給することができる。なお、このカウント値は、ブロック毎にリセットされる。
【０１２４】
このようなヘッダが変換データ９４に付加されて、アプリケーションデータ９１が生成される。なお、これらのヘッダに含まれる情報は、受信装置１３において、元データを復元する際に利用される。
【０１２５】
図８に戻り、以上のように、アプリケーションデータを生成したヘッダ付加部８４は、生成したアプリケーションデータをUDPパケット化部２５に供給する。
【０１２６】
このように、アプリケーションデータ生成部２４がブロック番号を変換データに付加することにより、受信装置１３は、後述するように、受信した変換データが対応するブロックを識別することができ、ブロック単位で処理することができる。
【０１２７】
また、アプリケーションデータ生成部２４が行番号を変換データに付加することにより、受信装置１３は、後述するように、元データを復元する際に、受信した変換データを係数行列に対応させることができ、元データを復元するための行列式を容易かつ正確に生成することができる。
【０１２８】
次に、データの受信側について説明する。
【０１２９】
図１０は、図２の受信装置１３の詳細な構成例を示すブロック図である。
【０１３０】
ネットワーク１２を介して受信装置１３に送信されたパケットは、ケーブル１００を介してイーサネット(R)（Ethernet(R)）処理部１０１に供給される。イーサネット(R)処理部１０１は、イーサネット(R)の規格に基づいて、データリンク層および物理層の処理を行い、供給されたパケットからIPパケットを抽出し、IP処理部１０２に供給する。
【０１３１】
IP処理部１０２は、IPプロトコルに基づいて、ネットワーク層の処理を行い、供給されたIPパケットよりUDPパケットを抽出し、アプリケーションデータ抽出部１０３に供給する。アプリケーションデータ抽出部１０３は、UDPプロトコルに基づいてトランスポート層の処理を行い、UDPパケットより、アプリケーションデータを抽出し、それをバッファ１０４に供給する。
【０１３２】
バッファ１０４は、アプリケーションデータを保持し、アプリケーションデータに付加されたブロック番号に基づいて、アプリケーションデータをブロック単位で管理し、例えば、元データを復元するのに必要な数のアプリケーションデータを取得すると、それらをブロック毎にパケットデータ復元部１０５に供給する。
【０１３３】
パケットデータ復元部１０５は、供給されたアプリケーションデータに含まれる変換データに基づいて、ブロック単位で元データを復元し、それをブロックデータ復元部１０６に供給する。ブロックデータ復元部１０６は、パケットデータ復元部１０５より供給される元データ（パケットデータ）を用いて、ブロックデータを復元し、そのブロックデータを再生出力部１０７に供給する。再生出力部１０７は、そのブロックデータを、順次、所定のタイミングで再生し、１つの受信データ（元の送信用データ）として受信装置１３の外部に出力する。
【０１３４】
送信装置１１より送信されたパケットは、受信装置１３に向けて送信されるが、様々な原因により、受信装置１３に受信されない場合がある。例えば、図１１に示されるように、送信装置１１が送信した送信パケット１１１の内、９つの送信パケットを受信すれば、受信装置１３は、元データを復元し、１つのブロックデータを復元することができる場合に、受信装置１３が、送信パケット１１１の番号３、７、および８のパケットをロスしたとする。すなわち、受信パケット１１２においては、パケット番号３、７、および８のパケットがロスされている。このように送信パケット１１１より任意のパケットを３つロスした場合、受信装置１３は、そのロスしたパケットと同じブロックに対応するパケットを、上述したパケット番号１乃至９のパケット以外に３つ（図１１の場合、パケット番号１０乃至１２を）受信すれば、元データを復元することができる。すなわち、受信装置１３は、送信装置１１が送信するパケットの中から、必要な数のパケットを受信することができれば、そのパケットが同じブロックに対応するパケットであればどのパケットであっても、元データを復元することができるようになされている。その復元処理の詳細については後述する。
【０１３５】
なお、上述したバッファ１０４以降のモジュールが実行する処理は、OSI階層モデルにおける、アプリケーション層、プレゼンテーション層、およびセション層の処理である。
【０１３６】
このように、受信装置１３は、送信装置１１より送信したパケットの内、任意のパケットを所定の数以上取得すれば、元データ（送信用データ）を復元することができる。すなわち、受信装置１３は、送信装置１１が送信する変換データを用いて、元データを復元するようにすることにより、パケットロスに対する耐性を向上させることができ、データの送受信をより正確、かつ、より容易に行うようにデータを受信することができる。
【０１３７】
次に、ロスパケットの復元について説明する。
【０１３８】
図１２は、パケットデータ復元部１０５の詳細な構成例を示すブロック図である。
【０１３９】
図１２において、図１０のバッファ部１０４より供給されるアプリケーションデータである受信パケットデータは、受信パケットデータ保持部１２１に供給される。そして、受信パケットデータ保持部１２１が１ブロック分の元データを復元するために十分な数のアプリケーションデータを取得すると、行列式作成部１２２は、受信パケットデータ保持部１２１にアプリケーションデータ（変換データ）を要求して取得し、さらに、係数行列供給部１２３に係数行列を要求して取得する。このとき、行列式作成部１２２は、取得したアプリケーションデータのヘッダに含まれる行番号９３に基づいて、係数行列の、各変換データに対応する行のみを要求する。係数行列供給部１２３は、送信装置１１において使用された（式（１）に示される）係数行列と同じ係数行列を予め保持しており、行列式作成部１２２の要求に基づいて、その係数行列の要求された行成分のみを供給する。
【０１４０】
行列式作成部２５３は、以上のように各情報を取得すると、元データを復元するための行列式である式（２）を作成する。
【０１４１】
【数２】
2005223682.tif 000004
【０１４２】
なお、式（２）において、式（１）の場合と同様に、乗算はガロア体上の演算であり、加算はEOR演算を示す。式（２）の左辺第１項の行列は、予め係数行列供給部１２３において保持されているＭ行Ｎ列の係数行列、すなわち、式（１）の右辺第１項に示される係数行列と各成分の値が同じ係数行列（送信装置１１が変換データを生成する際に利用する係数行列と同じ係数行列）より切り出された係数行列である。従って、この式（２）の左辺第１項の係数行列も、式（１）の係数行列の場合と同様に、ｊ行ｉ列目の成分Ａijが、行毎の自然数ｒjを底とし、列番号ｉから値「１」を引いた値「ｉ−１」を乗数とする値ｒj(ｉ-1)となる。ただし、式（２）に示される係数行列の行成分は、受信装置１３が受信したパケットが対応する行成分（すなわち、アプリケーションデータの行番号９３において指定された行成分）のみで構成される。従って、例えば、受信装置１３が、送信装置１１が送信したＭ個のパケットの内、任意のＮ個のパケットを受信し、そのＮ個のパケットから元データを復元する場合、この式（２）の係数行列は、Ｎ行Ｎ列の行列となる。
【０１４３】
式（２）の左辺第２項の行列は、復元される元データＤ1乃至ＤNを成分とする行列であり、右辺の行列は、受信した変換データＳ（Ｓ1乃至ＳMのいずれか）を成分とする行列である。すなわち、式（２）は、元データＤ1乃至ＤNを変数とする連立方程式であり、パケットデータ復元部１０５は、この連立方程式を解くことにより、元データＤ1乃至ＤNを復元する。
【０１４４】
行列式作成部１２２は、受信した変換データＳをアプリケーションデータのヘッダに含まれる行番号９３に基づいて整列し、係数行列供給部１２３より、係数行列の、行番号９３の行成分を切り出して取得することにより、式（２）を作成する。
【０１４５】
行列式作成部１２２は、以上のような行列式を作成すると、それを行列式演算部１２４に供給する。行列式演算部１２４は、この行列式をガロア体（ガロア拡大体）上で演算し、例えば、ガウスの消去法を用いて、元データＤ1乃至ＤNの解を求める。求解方法は、ロスした元データを算出することができるものであれば、どのようなものであってもよい。
【０１４６】
元データＤ1乃至ＤNの解を求めると、行列式演算部１２４は、その解を解出力部１２６に供給する。解出力部１２６は、その解を元データとして、図１０のブロックデータ復元部１０６に供給する。
【０１４７】
以上のようにパケットデータ復元部１０５が復元処理を行うことにより、受信装置１３は、送信装置１１に再送要求をすることなしに、元データを容易に復元することができる。また、図１１を参照して説明したように、受信装置１３は、送信装置１１が送信する変換データの内、所定の数の任意の変換データを取得すれば、元データを復元することができるので、例えば、パケットをロスした場合であっても、ロスした数と同数のパケットを任意に追加的に受信すればよく、カルーセル方式によりパケットを送信する場合と比較して、高速に復元処理を開始することができ、受信処理をより高速に実行することができる。
【０１４８】
次に、送信装置１１における、上述した各部の処理の流れについて説明する。
【０１４９】
外部からの送信データの供給が開始されると、送信装置１１は、データ送信処理を開始する。図３の送信装置１１によるデータ送信処理を図１３のフローチャートを参照して説明する。
【０１５０】
最初に、送信データが外部より供給されると、送信装置１１のデータ分割部２１は、ステップＳ１において、送信データをブロックに分割し、分割したブロックデータをブロック分割部２２に供給する。ブロック分割部２２は、ステップＳ２において、供給されたブロックデータをさらにパケットデータに分割し、それを元データとして、変換データ生成部２３に供給する。なお、以下の処理は、ブロック単位で行われる。
【０１５１】
パケットデータを供給された変換データ生成部２３は、ステップＳ３において、変換データ生成処理を実行して、ガロア体上における四則演算を行い、元データを変換して変換データを生成し、それをアプリケーションデータ生成部２４に供給する。変換データ生成処理の詳細については、図１４のフローチャートを参照して説明する。
【０１５２】
変換データを供給されたアプリケーションデータ生成部２４は、ステップＳ４において、アプリケーションデータ生成処理を実行し、アプリケーションデータを生成し、生成したアプリケーションデータをUDPパケット化部２５に供給する。なお、アプリケーションデータ生成処理の詳細については、図１５のフローチャートを参照して後述する。
【０１５３】
アプリケーションデータを供給されたUDPパケット化部２５は、ステップＳ５において、アプリケーションデータをUDPパケット化し、それをバッファ２６に供給する。バッファ２６は、供給されたUDPパケットを一時保持し、出力制御部２７がステップＳ６において、そのバッファ２６に保持されているUDPパケットを任意の順序で取り出すことで、UDPパケットの送信順を変更する。出力制御部２７は、取り出したUDPパケットをIP処理部２８に供給する。ステップＳ７において、IP処理部２８は、供給されたUDPパケットをIPパケット化してイーサネット(R)処理部２９に供給し、イーサネット(R)処理部２９は、供給されたIPパケットをさらにパケット化するなどして、出力制御部２７が変更した順番で、そのパケット（それぞれUDPパケットを含む）を、ケーブル３０を介してネットワーク１２（受信装置１３）に送信する。
【０１５４】
そして、ブロック分割部２２は、ステップＳ８において、外部より送信装置１１に供給された送信データを構成する全ブロックに対して処理が終了したか否かを判定し、終了していないと判定した場合は、ステップＳ２に処理を戻し、それ以降の処理を繰り返す。また、全ブロックに対して送信処理が終了したと判定した場合、ブロック分割部２２は、ステップＳ９に処理を進め、終了処理を行った後、データ送信処理を終了する。
【０１５５】
以上のようにしてデータ送信処理が実行される。これにより、送信装置１１は、ガロア体上の四則演算を用いて元データを変換データに変換してから受信装置１３に送信するので、受信装置１３が、任意のパケット（変換データ）を所定の数以上受信すれば、元データを復元することができるように、データを容易かつ正確に送信することができる。また、送信装置１１は、パケットデータの送信順をシャッフルし、パケット番号と独立した順序で送信するので、受信装置１３のバースト的パケットロスへの耐性も高めることができる。すなわち、図２の通信システム１０は、より容易に、より正確な通信を行うことができる。
【０１５６】
次に、図１４のフローチャートを参照して、図１３のステップＳ３において実行される変換データ生成処理について説明する。
【０１５７】
ブロック分割部２２より元データを供給された変換データ生成部２３の元データ保持部６１は、ステップＳ２１において、供給された元データを一時的に保持していき、１ブロック分保持する。
【０１５８】
元データ保持部６１が１ブロック分の元データを保持すると、行列式生成部６２は、ステップＳ２２において、係数行列供給部７３に対して係数行列を要求する。係数行列供給部６３は、その要求に基づいて、予め用意した係数行列（式（１）の右辺第１項の行列）を行列式生成部６２に供給する。
【０１５９】
係数行列を取得した行列式生成部６２は、ステップＳ２３において、元データ保持部６１に保持されている１ブロック分の元データを取得して、式（１）のような、変換データを生成するための行列式を生成する。行列式を生成した行列式生成部６２は、それを行列式演算部６４に供給する。
【０１６０】
行列式を供給された行列式演算部６４は、ステップＳ２４において、ガロア体上の四則演算（EOR演算を含む）を行い、その行列式を演算して、その解（変換データＳ）を解出力部６５に供給する。
【０１６１】
解出力部６５は、ステップＳ２５において、供給された解を、送信用の変換データとして、アプリケーションデータ生成部２４に出力し、処理を図１３のステップＳ４に戻してそれ以降の処理を実行させる。
【０１６２】
以上のように、変換データ生成部２３は、元データや予め用意された係数行列を用いてガロア体上の四則演算（EOR演算を含む）を行い、変換データを生成する。これにより送信装置１１は、受信装置１３が、送信装置１１より送信したパケットの内、任意のパケットを所定の数以上取得すれば、元データ（送信用データ）を復元することができるようにすることができる。すなわち、送信装置１１は、受信装置１３のパケットロスに対する耐性を高め、データの送受信をより正確、かつ、より容易に行うようにデータを送信することができる。また、送信装置１１は、変換データのパケットの送信順をシャッフルしてから送信するので、受信装置１３のバースト的パケットロスに対する耐性を高めることもできる。
【０１６３】
次に、図１３のステップＳ４において実行されるアプリケーションデータ生成処理の詳細を図１５のフローチャートを参照して説明する。
【０１６４】
例えば、電源投入時等、パケットデータが供給される前に、ステップＳ４１において、アプリケーションデータ生成部２４の変換データ受付部８１は、変換データカウンタ８２およびブロックカウンタ８３のカウント値をそれぞれ初期化し、例えば値「０」に設定する。
【０１６５】
ステップＳ４２において、変換データ受付部８１は、変換データを受け付けたか否かを判定し、変換データを受け付けたと判定した場合、ステップＳ４３に処理を進め、受け付けた変換データがブロック内の最初のパケットデータであるか否かを判定する。ブロック内の最初のパケットデータであると判定した場合、変換データ受付部８１は、ステップＳ４４に処理を進め、ブロックカウンタ８３をカウントアップさせてカウント値を「１」増加させ、処理をステップＳ４５に進める。なお、ステップＳ４３において、既に、そのブロックの変換データを受け付けており、受け付けた変換データがブロック内の最初のパケットデータでないと判定した場合、変換データ受付部８１は、ステップＳ４４の処理を省略し、ステップＳ４５に処理を進める。
【０１６６】
ステップＳ４５において、変換データ受付部８１は、変換データカウンタ８２をカウントアップさせてカウント値を「１」増加させるとともに、受け付けた変換データをヘッダ付加部８４に供給する。変換データを供給されたヘッダ付加部８４は、ステップＳ４６において、変換データカウンタ８２およびブロックカウンタ８３よりそれぞれカウント値を取得し、変換データにブロックカウンタ８３のカウント値をブロック番号として、変換データカウンタ８２のカウント値を行番号（変換データが対応する係数行列の行番号）として、それぞれ付加し、ステップＳ４７において、カウント値を付加した変換データをアプリケーションデータとしてUDPパケット化部２５に供給する。
【０１６７】
ステップＳ４７の処理を終了したヘッダ付加部８４は、ステップＳ４８に処理を進める。また、ステップＳ４２において、変換データを受け付けていないと判定した場合、変換データ受付部８１は、ステップＳ４３乃至ステップＳ４７の処理を省略し、ステップＳ４８に処理を進める。
【０１６８】
ステップＳ４８において、ヘッダ付加部８４は、ブロックの変換データを全て処理したか否かを判定し、まだ未処理のパケットデータが存在すると判定した場合、ステップＳ４２に処理を戻し、それ以降の処理を繰り返す。ステップＳ４８において、全てのパケットデータを処理したと判定した場合、ヘッダ付加部８４は、アプリケーションデータ生成処理を終了し、図１３のステップＳ５に処理を戻す。
【０１６９】
以上のように、アプリケーションデータ生成部２４のヘッダ付加部８４がブロック番号を変換データに付加することにより、受信装置１３は、後述するように、受信したデータのブロックを識別することができ、ブロック単位で処理することができる。また、ヘッダ付加部８４が行番号を変換データに付加することにより、受信装置１３は、後述するように、その行番号に基づいて、受信した変換データを係数行列に対応させ、元データを復元するための行列式を生成することができる。
【０１７０】
次に、受信装置１３が実行する処理の流れについて説明する。
【０１７１】
最初に、図１０の受信装置１３によるデータ受信処理を図１６のフローチャートを参照して説明する。
【０１７２】
受信装置１３に対して、送信装置１１よりパケットが送信され、そのパケットがケーブル１００を介してイーサネット(R)処理部１０１に供給されると、イーサネット(R)処理部１０１は、ステップＳ６１において、そのパケットを受信する。パケットを受信したイーサネット(R)処理部１０１は、そのパケットからIPパケットを抽出し、それをIP処理部１０２に供給する。IP処理部１０２は、そのIPパケットからUDPパケットを抽出し、それをアプリケーションデータ抽出部１０３に供給する。
【０１７３】
UDPパケットを供給されたアプリケーションデータ抽出部１０３は、ステップＳ６２において、そのUDPパケットからアプリケーションデータを抽出し、それをバッファ部１０４に供給する。バッファ部１０４は、ステップＳ６３において、その供給されたアプリケーションデータを、ブロック毎に分類して保持し、ステップＳ６４において、１ブロック分の元データの数だけアプリケーションデータを保持したか否かを判定する。すなわち、バッファ部１０４は、各ブロックのアプリケーションデータを、所定の時間蓄積していき、アプリケーションデータを所定の数以上保持すると、ステップＳ６４のそれまでに蓄積した対象ブロックのアプリケーションデータをパケットデータ復元部１０５に供給する。
【０１７４】
ステップＳ６４において、まだ１ブロック分のアプリケーションデータを保持していないと判定した場合、バッファ部１０４は、ステップＳ６１に処理を戻し、それ以降の処理を繰り返す。すなわち、受信装置１３は、ステップＳ６１乃至ステップＳ６４の処理を繰り返しながら、バッファ部１０４に所定の時間が経過するまで待機する。
【０１７５】
ステップＳ６５において、パケットデータ復元部１０５は、供給されたアプリケーションデータを用いて、元データ復元処理を実行し、変換データから元データを復元する。なお、元データ復元処理の詳細については、図１７のフローチャートを参照して後述する。元データを復元したパケットデータ復元部１０５は、その復元された元データをブロックデータ復元部１０６に供給する。
【０１７６】
ステップＳ６６においてブロックデータ復元部１０６は、供給された元データを組み合わせてブロックデータを復元し、復元したブロックデータを再生出力部１０７に供給する。再生出力部１０７は、供給されたブロックデータを、一時的に保持し、所定のタイミングで再生して出力することにより、ブロックデータ復元部１０６より順次供給されるブロックデータを連続して出力するようにしてブロックデータを連結し、送信前の送信用データと同等の受信データとして受信装置１３の外部に出力する。
【０１７７】
再生出力部１０７は、ステップＳ６７において、データ受信処理を終了するか否かを判定し、１つの受信データとしての全てのブロックデータを処理しておらず、データ受信処理を終了しないと判定した場合、処理をステップＳ６１に戻し、それ以降の処理を各部に繰り返させる。
【０１７８】
また、ステップＳ６７において、データ受信処理を終了すると判定した場合、再生出力部１０７は、ステップＳ６８において各部に終了処理を実行させ、データ受信処理を終了する。
【０１７９】
以上のようにしてデータ受信処理を実行することにより、受信装置１３は、高速であり、かつ、復元性能の高い復元処理を、製造コストを増大せずに実現し、より容易に、かつ、より正確にデータを受信することができる。
【０１８０】
次に、図１６のステップＳ６５において実行される元データ復元処理の詳細を、図１７のフローチャートを参照して説明する。
【０１８１】
受信装置１３において、受信されたパケットデータ（アプリケーションデータ）が、パケットデータ復元部１０５の受信パケットデータ保持部１２１に供給されると、受信パケットデータ保持部１２１は、その情報を行列式作成部１２２に供給する。
【０１８２】
行列式作成部２５３は、その情報に基づいて、元データ復元処理を開始し、ステップＳ８１において、受信パケットデータ保持部１２１よりアプリケーションデータ（変換データ）を取得し、ステップＳ８２において、取得したアプリケーションデータの行番号を参照して、受信した変換データを整列させる。
【０１８３】
また、行列式作成部１２２は、ステップＳ８３において、アプリケーションデータの行番号に基づいて、係数行列供給部１２３に保持されている係数行列（Ｍ行Ｎ列）より必要な部分（行成分）を取得する。
【０１８４】
なお、この処理は、係数行列供給部１２３が、係数行列から、行列式作成部１２２に要求された部分（行成分）を切り出して、それを行列式作成部１２２に供給するようにしてもよいし、行列式作成部１２２が、係数行列供給部１２３より供給されたＭ行Ｎ列の係数行列から、必要な部分（行成分）を切り出すようにしてもよい。
【０１８５】
すなわち、行列式作成部１２２は、係数行列の、変換データに対応する行成分を抽出し、それらを成分とする新たな係数行列を取得する。
【０１８６】
そして、ステップＳ８４において、行列式作成部１２２は、取得した係数行列および変換データを用いて、元データを復元するための行列式（例えば、式（２））を作成し、作成した行列式を行列式演算部１２４に供給する。
【０１８７】
行列式演算部１２４は、ステップＳ８５において、ガロア体演算部１２５を用いて、供給された行列式をガロア体上において演算し、例えば、ガウスの消去法等の演算方法により、解を求め、その解を解出力部１２６に供給する。解出力部１２５は、ステップＳ８６において、供給された解を元データとしてブロックデータ復元部１０６に供給し、元データ復元処理を終了して、図１６のステップＳ６６に処理を戻す。
【０１８８】
以上のように復元処理を行うことにより、パケットデータ復元部１０５は、復元性能の高い復元処理を実現することができる。すなわち、受信装置１３は、より容易、かつ、より正確にデータを受信することができる。
【０１８９】
以上のように、図２に示される通信システム１０においては、送信装置１１が、送信用データを分割して生成した複数の元データを、ガロア体（ガロア拡大体）上の演算を用いてブロック毎に合成して変換し、各ブロックに対して複数の（元データの数より多くの）変換データを生成し、それらを受信装置１３に送信する。受信装置１３は、そのように送信された複数の変換データを、ブロック毎に、少なくとも、元データの数以上受信し、受信した元データの数以上の変換データを用いて、元データを復元する。このようにすることにより、送信装置１１および受信装置１３は、より容易、かつ、より正確にデータを送受信することができる。
【０１９０】
なお、このような変換データを元データの冗長データとし（各変換データが元データの内容を含んでいるため）、送信装置１１がその冗長データ元データとともに送信し、受信装置１３がそれらを受信して、元データをロスした場合のみ、受信した冗長データを用いて、そのロスした元データを復元するようにしてもよい。この方法の場合、受信装置１３がロスした元データのみを復元することができれば良いので、送信装置１１は、送信する冗長データ（変換データ）の数を削減することができるとともに、受信装置１３は、元データをロスしていない場合、元データの復元処理を省略することもできる。
【０１９１】
しかしながら、実際の通信において、パケットロス（元データのロス）が発生しないことは稀であり、さらに、この方法の場合、例えば、送信装置１１は、元データの場合と冗長データの場合とで互いに異なる内容を含むヘッダを付加し、２種類のアプリケーションデータを生成して送信しなければならず、また、受信装置１３は、受信したパケットが元データのパケットであるか冗長データのパケットであるかを判別してそれぞれを別のデータとして処理したり、元データをロスしたか否かを判定したり、元データをロスした場合のみ、受信した冗長データを用いてそのロスした元データを復元するための行列式を作成して演算を行い、元データを復元したりしなければならない等、複雑な処理を必要とし、かえって送信装置１１や受信装置１３の製造コストが増大してしまう恐れもある。
【０１９２】
以上に説明した図２に示される通信システム１０における通信方法の場合、このような複雑な処理を必要とせずに、容易に、データの送受信を行うことができ、かつ、上述したように元データを任意の変換データより復元することができるので、より正確にデータの送受信を行うことができる。
【０１９３】
さらに、図２に示される通信システム１０における通信方法の場合、受信装置１３は、元データを任意の変換データより復元することができるので、例えば、送信装置１１が変換データを含むパケット群を送信中に、その送信の途中から、パケットの受信を開始しても、全ブロックについて元データの数より多くの変換データを受信することができれば、元データを復元することができる。これは、例えば、マルチキャストやブロードキャスト等のように、１対多の通信においてより効果的である。
【０１９４】
以上においては、通信システム１０が、データを送信する送信装置１１およびデータを受信する受信装置１３により構成されるように説明したが、通信システムの構成は、これに限らず、通信システムは、例えば、図１８に示されるように、図１の送信装置１１および受信装置１３を、それぞれモジュールとし、送信部および受信部とし、それらの両方を含む２台の送受信装置により構成されるようにしてもよい。
【０１９５】
図１８において、通信システム２０１は、図２のネットワーク１２と同様の、ネットワーク２１２に接続された送受信装置２１１および送受信装置２１３により構成される。送受信装置２１１は、送信部２２１および受信部２２２を含み、送受信装置２１３は、送信部２３１および受信部２３２を含む。送信部２２１および送信部２３１は、図２の送信装置１１と基本的に同様の構成であり、同様に動作するのでその詳細な説明は省略する。
【０１９６】
また、図１８において、受信部２２２および受信部２３２は、図２の受信装置１３と基本的に同様の構成であり、同様に動作するのでその詳細な説明は省略する。
【０１９７】
すなわち、図１８の通信システム２０１は、内蔵する送信部および受信部をそれぞれ有する送受信装置２１１および送受信装置２１３により構成され、それらが互いに上述したような演算を用いて元データを変換した変換データを利用して、再送制御なしに、通信処理を行う。
【０１９８】
このようにすることにより、双方向の通信においても、受信部は、高速であり、かつ、復元性能の高い復元処理を、製造コストを増大せずに実現することができる。従って、送受信装置２１１および送受信装置２１３は、より容易、かつ、より正確にデータを送受信することができる。
【０１９９】
なお、図２においては、通信システム１０は、１台の送信装置１１および１台の受信装置１３により構成されるように説明したが、これに限らず、複数台の送信装置または複数台の受信装置を含むようにしてもよい。
【０２００】
図１９は、本発明を適用したコンテンツ配信システムの構成例を示す図である。コンテンツ配信システム３０１のサーバ３１１は、図２のネットワークと同等のネットワーク３１２に接続され、同様にネットワーク３１２に接続された複数の端末装置３１３および３１４により構成される。
【０２０１】
図１９において、サーバ３１１は、送信装置１１と同様の機能を有しており、ネットワーク３１２を介して、端末装置３１３および端末装置３１４のそれぞれに対して、画像データや音声データ等のコンテンツデータを分割し、その元データに対して上述したような演算を行い、元データを変換して得られた変換データをパケット化してマルチキャストに送信する。
【０２０２】
端末装置３１３および端末装置３１４は、それぞれ、受信装置１３と同様の機能を有しており、サーバ３１１より供給されるパケットをそれぞれ受信し、上述したように元データを復元する等して、コンテンツデータを復元し、再生する。
【０２０３】
なお、サーバ３１１は、コンテンツデータをダウンロード配信するようにしてもよいし、ストリーミング配信するようにしてもよい。
【０２０４】
以上のように、サーバ３１１が複数台の端末装置３１３および３１４に対してパケットを配信する場合、端末装置３１３および端末装置３１４がパケットをロスしたときに、そのパケットの再送要求をサーバ３１１にするようにすると、サーバ３１１に再生要求が集中し、サーバ３１１の負荷が大きくなり、ダウンしてしまう恐れがある。従って、サーバ３１１が、上述したように、変換データを生成し、それを配信することにより、端末装置３１３および端末装置３１４は、パケットをロスしても、再生要求をせずに、コンテンツデータを復元することができる。従って、サーバ３１１における負荷の増大を抑制することができ、安定したコンテンツデータの配信サービスを提供することができる。
【０２０５】
以上においては、送信用データを分割したブロックのデータサイズ（ブロックサイズ）は、互いに共通であるように説明したが、これに限らず、各ブロックで互いに異なるブロックサイズとなるようにしてももちろんよい。その場合、例えば、送信装置１１が、アプリケーションデータのヘッダに、ブロック番号とともに、そのブロックのブロックサイズの情報を付加し、受信装置１３がそのブロックサイズの情報に基づいて、そのブロックの、受信するパケット数を決定するようにしてもよい。
【０２０６】
また、以上においては、コンテンツデータである送信用データを、データの先頭から終了に向かって、順番に切り出すように説明したが、ブロックの切り出し方はどのようなものであってもよい。ただし、そのブロックの生成方法は、通信システム１０の各装置において予め決められているか、送信装置１１が受信装置１３にその方法に関する情報を供給する等して、送信装置１１と受信装置１３とで共有しておく必要がある。受信装置１３は、その情報に基づいて、送信装置１１によるブロックの生成方法に対応する方法で、ブロックより送信用データを復元する。
【０２０７】
なお、ブロックは処理の単位であるので、実際には、送信装置１１は、その処理の流れに応じてコンテンツデータを分割し、ブロックを生成するようにするのが望ましい。従って、送信装置１１が、その処理の順番によって、例えば、コンテンツデータより一定の規則で離散的に抜き出して１つのブロックとするようにしてもよい。
【０２０８】
また、上述した変換データを送信する方法と、再送要求を用いる方法とを組み合わせて利用するようにしてももちろんよい。その場合、受信側の装置は、パケットロスが発生した場合、まず、受信した変換データにより元データの復元を試み、復元不能であった場合に、送信元に対してロスしたパケットの再送要求を行うようにする。このようにすることにより、再送要求の回数を削減することができるので、送信側と受信側の両方の装置において、再送要求による処理の負荷を軽減させることができる。すなわち、システム全体の負荷を削減することができる。
【０２０９】
以上においては、送信装置１１が、変換データの生成処理とデータ送信処理とを同時に行うように説明したが、これに限らず、例えば、送信装置１１が予め送信用データを取得し、それを上述したように変換データに変換して蓄積しておき、受信装置１３の要求に基づいて、その蓄積してある変換データを供給するようにしてももちろんよい。
【０２１０】
また、式（１）および式（２）において、係数行列として、上述した係数行列のの行と列とで各成分を入れ替えたものを使用するようにしてももちろんよい。ただし、その場合、各行が互いに独立するとは限らず、受信装置１３は、必ずしも全ての解を求める（Ｎ個の変換データからＮ個の元データを復元できる）とは限らないので、Ｎ個より多く（マージン分として）パケットを受信する必要がある。そして、受信装置１３が、受信したＮ個＋α個のパケットから、互いに独立したＮ個の連立方程式をたて、それを解くことによりＮ個の元データを復元するようにする。例えば、受信装置１３が、受信したＮ個＋α個の変換データを用いて上述したように行列式を作成し、それを、ピボット選択を行いながら求解するようにする。
【０２１１】
図２の通信システム１０において、送信装置１１と受信装置１３が接続されるネットワーク１２は、その一部または全部が有線により構成されるようにしてもよいし，無線により構成されるようにしてもよい。またネットワーク１２が複数のネットワークにより構成されるようにしてもよい。すなわち、送信装置１１と受信装置１３とが複数のルータ等を介して接続されるようにしても良い。
【０２１２】
さらに、送信装置１１および受信装置１３は、上述した構成以外の構成を含むようにしてもよい。例えば、モニタ等の表示部を設けるようにしても良いし、キーボードやボタン等の入力部を設けるようにしてもよい。
【０２１３】
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、例えば、図２の送信装置１１や受信装置１３には、図２０に示されるようなパーソナルコンピュータが含まれる。
【０２１４】
図２０において、パーソナルコンピュータ４０１のCPU４１１は、ROM（Read Only Memory）４１２に記憶されているプログラム、または記憶部４２３からRAM４１３にロードされたプログラムに従って各種の処理を実行する。RAM４１３にはまた、CPU４１１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０２１５】
CPU４１１、ROM４１２、およびRAM４１３は、バス４１４を介して相互に接続されている。このバス４１４にはまた、入出力インタフェース４２０も接続されている。
【０２１６】
入出力インタフェース４２０には、キーボード、マウスなどよりなる入力部４２１、CRT、LCDなどよりなるディスプレイ、並びにスピーカなどよりなる出力部４２２、ハードディスクなどより構成される記憶部４２３、モデムなどより構成される通信部４２４が接続されている。通信部４２４は、インターネットを含むネットワーク１２を介しての通信処理を行う。
【０２１７】
入出力インタフェース４２０にはまた、必要に応じてドライブ４２５が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア４２６が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部４２３にインストールされる。
【０２１８】
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
【０２１９】
この記録媒体は、例えば、図２０に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む）、光磁気ディスク（ＭＤ（Mini-Disk）（登録商標）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア４２６により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM４１２や、記憶部４２３に含まれるハードディスクなどで構成される。
【０２２０】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２２１】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【図面の簡単な説明】
【０２２２】
【図１】従来のカルーセル方式によるデータの送信方法を説明する図である。
【図２】本発明を適用した通信システムの構成例を示す図である。
【図３】図２の送信装置の構成例を示すブロック図である。
【図４】図３の送信装置におけるデータの処理の流れを示す図である。
【図５】UDPパケットの構成例を示す模式図である。
【図６】図３の変換データ生成部の詳細な構成例を示すブロック図である。
【図７】変換データの生成の様子を説明する模式図である。
【図８】図３のアプリケーションデータ生成部の詳細な構成例を示すブロック図である。
【図９】アプリケーションデータの構成例を示す模式図である。
【図１０】図２の受信装置の構成例を示すブロック図である。
【図１１】パケットをロスする様子の例を示す図である。
【図１２】図１０のパケットデータ復元部の詳細な構成例を示すブロック図である。
【図１３】データ送信処理の例を説明するフローチャートである。
【図１４】変換データ生成処理の例を説明するフローチャートである。
【図１５】アプリケーションデータ生成処理の例を説明するフローチャートである。
【図１６】データ受信処理の例を説明するフローチャートである。
【図１７】元データ復元処理の例を説明するフローチャートである。
【図１８】本発明を適用した通信システムの、他の構成例を示す図である。
【図１９】本発明を適用したコンテンツ配信システムの構成例を示す図である。
【図２０】パーソナルコンピュータの構成例を示すブロック図である。
【符号の説明】
【０２２３】
１０  通信システム，  １１  送信装置  １２  ネットワーク，  １３  受信装置，  ２１  データ分割部，  ２２  ブロック分割部，  ２３  変換データ生成部，  ２４  アプリケーションデータ生成部，  ２５  UDPパケット化部，  ２６  バッファ，  ２７  出力制御部，  ２８  IP処理部，  ２９  イーサネット(R)処理部，  ３０  ケーブル，  ４１  送信データ，  ４２  ブロック，  ４３  元データ，  ４４  変換データ，  ４５  送信パケット，  ６１  元データ保持部，  ６２  行列式生成部，  ６３  係数行列供給部，  ６４  行列式演算部，  ６５  解出力部，  ６６  ガロア体演算部，  ８１  変換データ受付部，  ８２  変換データカウンタ，  ８３  ブロックカウンタ，  ８４  ヘッダ付加部，  ９１  アプリケーションデータ，  ９２  ブロック番号，  ９３  行番号，  ９４  変換データ，  １００  ケーブル，  １０１  イーサネット(R)処理部，  １０２  IP処理部，  １０３  アプリケーションデータ抽出部，  １０４  バッファ部，  １０５  パケットデータ復元部，  １０６  ブロックデータ復元部，  １０７  再生出力部，  １２１  受信パケットデータ保持部，  １２２  行列式作成部，  １２３  係数行列供給部，  １２４  行列式演算部，  １２５  ガロア体演算部，  １２６  解出力部，  ２０１  通信システム，  ２１１  送受信装置，  ２１２  ネットワーク，  ２１３  送受信装置，  ２２１  送信部，  ２２２  受信部，  ２３１  送信部，  ２３２  受信部，  ３０１  コンテンツ配信システム，  ３１１  サーバ，  ３１２  ネットワーク，  ３１３  端末装置，  ３１４  端末装置，  ４０１  パーソナルコンピュータ，  ４１１  CPU，  ４１２  ROM，  ４１３  RAM，  ４１４  バス，  ４２０  入出力インタフェース，  ４２１  入力部，  ４２２  出力部，  ４２３  記憶部，  ４２４  通信部，  ４２５  ドライブ，  ４２６  リムーバブルメディア
【図１】
2005223682.tif 000005
【図２】
2005223682.tif 000006
【図３】
2005223682.tif 000007
【図４】
2005223682.tif 000008
【図５】
2005223682.tif 000009
【図６】
2005223682.tif 000010
【図７】
2005223682.tif 000011
【図８】
2005223682.tif 000012
【図９】
2005223682.tif 000013
【図１０】
2005223682.tif 000014
【図１１】
2005223682.tif 000015
【図１２】
2005223682.tif 000016
【図１３】
2005223682.tif 000017
【図１４】
2005223682.tif 000018
【図１５】
2005223682.tif 000019
【図１６】
2005223682.tif 000020
【図１７】
2005223682.tif 000021
【図１８】
2005223682.tif 000022
【図１９】
2005223682.tif 000023
【図２０】
2005223682.tif 000024