本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。
図1は、この発明の実施の形態による無線通信システムの概略図である。図1を参照して、この発明の実施の形態による無線通信システム10は、送信機1と受信機2とを備える。送信機1および受信機2は、無線通信空間に配置される。
アプリケーション20は、例えば、カメラによって画像を撮影し、その撮影した画像の画像データをペイロードに含むパケットPKTを送信機1へ伝送する。
送信機1は、パケットPKTをアプリケーション20から受信する。そして、送信機1は、後述する方法によって、パケットPKTをリアルタイムトラフィックを構成するパケットとして無線通信によって受信機2へ送信する。
受信機2は、送信機1からのパケットPKTを無線通信によって受信し、その受信したパケットPKTに対して後述する受信処理を実行する。そして、受信機2は、受信処理を行ったパケットPKTをアプリケーション30へ伝送する。アプリケーション30は、受信機2からパケットPKTを受信し、その受信したパケットPKTに含まれる画像データを再生して表示部に表示する。
無線通信システム10は、次の特徴を有する。無線通信システム10は、到達確認を用いた効率的な再送ができないシステムであり、例えば、無線通信によるブロードキャストまたはマルチキャストを行う。また、無線通信システム10は、複数経路を用いるシステムである。更に、無線通信システム10は、高い信頼性を必要とするリアルタイム通信(例えば、映像伝送等)を行うものである。
図2は、図1に示す送信機1の概略図である。図2を参照して、送信機1は、バッファ11と、処理手段12と、送信手段13と、アンテナ14とを備える。
バッファ11は、アプリケーション20から到着した複数のパケットPKT_N(1)~PKT_N(V)を格納する。複数のパケットPKT_N(1)~PKT_N(V)の各々は、アプリケーション20によって生成された生(Native)のパケットからなる。また、Vは、整数からなる。
処理手段12は、タイマーを内蔵している。そして、処理手段12は、パケットが到着したか否かを判定する。そして、処理手段12は、パケットが到着したと判定したとき、到着したパケットPKT_N(v)(vは、1~Vの整数)のコピーをバッファ11に格納し、元のパケットPKT_N(v)を送信手段13へ出力する。また、処理手段12は、パケットが到着したと判定したとき、複数のパケットがバッファ11に格納されていれば、複数のパケットをバッファ11から取り出し、その取り出した複数のパケットに基づいて後述する方法によって符号化パケットPKT_Cを含む送信用パケットPKT_TRを生成し、その生成した送信用パケットPKT_TRを送信手段13へ出力する。なお、処理手段12は、タイマーを参照して、パケットPKT_N(v)または送信用パケットPKT_TRを送信手段13へ出力する。
送信手段13は、1個のパケットPKT_N(v)または送信用パケットPKT_TRを処理手段12から受けると、その受けた1個のパケットPKT_N(v)または送信用パケットPKT_TRを無線通信によってアンテナ14を介して受信機2へ送信する。
図3は、図1に示す受信機2の概略図である。図3を参照して、受信機2は、アンテナ21と、受信手段22と、処理手段23と、Nバッファ24と、Cバッファ25とを備える。
受信手段22は、アンテナ21を介してパケットPKT(パケットPKT_N(v)または送信用パケットPKT_TR)を受信し、その受信したパケットPKT(パケットPKT_N(v)または送信用パケットPKT_TR)を処理手段23へ出力する。
処理手段23は、パケットPKT_N(v)を受信手段22から受けると、後述する方法によって、パケットPKT_N(v)に対してNパケット受信処理を実行する。この場合、処理手段23は、Nパケット受信処理において、パケットPKT_N(v)が受信済でないとき、パケットPKT_N(v)をNバッファ24に格納する。そして、処理手段23は、Nバッファ24に格納された全てのパケットPKT_N(v)をアプリケーション30へ伝送する。
一方、処理手段23は、送信用パケットPKT_TRを受信手段22から受けると、送信用パケットPKT_TRが符号化パケットPKT_Cと単体パケットPKT_Nとを含むとき、符号化パケットPKT_Cと単体パケットPKT_Nとを分離する分離処理を実行する。そして、処理手段23は、その分離した単体パケットPKT_Nに対してNパケット受信処理を実行する。また、処理手段23は、Nバッファ24に格納済の単体パケットPKT_N(即ち、受信済の単体パケットPKT_N)の情報を符号化パケットPKT_Cから除去する除去処理を実行し、その除去処理後の符号化パケットPKT_C’が複数の単体パケットPKT_Nを含むとき、符号化パケットPKT_C’をCバッファ25に格納する。その後、処理手段23は、Cバッファ25に格納された符号化パケットPKT_C’に対して後述する復号処理を実行する。この場合、処理手段23は、復号処理において復号された単体パケットPKT_Nに対してNパケット受信処理を実行する。
処理手段23は、送信用パケットPKT_TRが符号化パケットPKT_Cのみを含むとき、上述した分離処理を実行せずに、上述した除去処理および復号処理を順次実行する。
図4は、画像の送信を示す概念図である。図4を参照して、リアルタイム動画伝送の場合の特徴を説明する。Iピクチャは、前後のピクチャの差分を用いない圧縮画像からなり、サイズが大きい。Pピクチャは、前のピクチャとの差分を伝送するため、サイズが小さい。
IピクチャおよびPピクチャは、周期的に送信される。そして、周期的な送信の際の送信パケット数は、異なり、バースト的に一度にパケットを送信する場合もある。また、Iピクチャは、IPPPIPPPIPのように周期的に生成されて送信される。
Iピクチャを伝送する際にバーストが発生し、バーストのサイズは、一定でない。また、バーストを構成するパケットは、一度に到着せずに逐次到着する。
更に、図4に示すPピクチャ、Pピクチャ、Pピクチャ、Iピクチャ、Pピクチャ、Pピクチャ、Pピクチャ、IピクチャおよびPピクチャにおいて、Pピクチャをペイロードに含むパケットおよびIピクチャをペイロードに含むパケットがアプリケーション20から送信機1に到着する時間間隔は、Tinterval_1であり、Iピクチャをペイロードに含む複数のパケットがアプリケーション20から連続して送信機1に到着する時間間隔は、Tinterval_1よりも短いTinterval_2である。
図5は、パケットのフォーマットを示す概略図である。図5を参照して、パケットPKTは、ヘッダと、ペイロードとを含む。ヘッダは、送信先のIPアドレスを含む。
ペイロードは、Packet Infoと、領域REG1と、Coded Infoと、領域REG2とを含む。領域REG1は、1個のパケットPKT_Nのペイロードを含む。領域REG2は、N個のパケットPKT_N(1)~PKT_N(N)を符号化した符号化パケットPKT_Cを含む。領域REG1の長さは、Lpであり、領域REG2の長さは、L1~Lnの最大値である。Lpは、1個のパケットPKT_Nのデータ長であり、L1~Lnは、それぞれ、パケットPKT_N(1)~PKT_N(N)のデータ長である。
Packet Infoは、識別子N/Cと、シーケンス番号SNと、データ長Lpとを含む。識別子N/Cは、領域REG1に含まれるパケットが単体のパケットPKT_Nであるか符号化パケットPKT_Cであるかを識別する識別子であり、“N”または“C”からなる。“N”は、単体のパケットPKT_Nであることを表し、“C”は、符号化パケットPKT_Cであることを表す。シーケンス番号SNは、領域REG1に含まれるパケットの送信機1への到着順序を表す。データ長Lpは、領域REG1の長さを表す。
Coded Infoは、識別子N/Cと、Num coded(N)と、Packet Info 1~Packet Info Nとを含む。識別子N/Cは、領域REG2に含まれるパケットが単体のパケットPKT_Nであるか符号化パケットPKT_Cであるかを識別する識別子であり、“N”または“C”からなる。Num coded(N)は、領域REG2に含まれる符号化パケットPKT_Cを構成するパケットPKT_Nの個数を表す。
Packet Info 1は、シーケンス番号SNと、データ長L1と、符号C1とを含む。以下、同様にして、Packet Info Nは、シーケンス番号SNと、データ長LNと、符号CNとを含む。
Packet Info 1において、シーケンス番号SNは、符号化パケットPKT_Cを構成するパケットPKT_N(1)の送信機1への到着順序を表し、データ長L1は、符号化パケットPKT_Cを構成するパケットPKT_N(1)のデータ長であり、符号C1は、N個のパケットPKT_N(1)~PKT_N(N)を符号化したときのパケットPKT_N(1)の係数である。
以下、同様にして、Packet Info Nにおいて、シーケンス番号SNは、符号化パケットPKT_Cを構成するパケットPKT_N(N)の送信機1への到着順序を表し、データ長LNは、符号化パケットPKT_Cを構成するパケットPKT_N(N)のデータ長であり、符号CNは、N個のパケットPKT_N(1)~PKT_N(N)を符号化したときのパケットPKT_N(N)の係数である。
1個のパケットPKT_Nは、ペイロードがPacket Infoと領域REG1とを含む構成からなる。
バースト的に一度に送信するためのパケットがMBurst(MBurstは、2≦MBurst<Vを満たす整数である。)個のパケットPKT_N(1)~PKT_N(MBurst)からなるとすると、MBurst個のパケットPKT_N(1)~PKT_N(MBurst)のうちの最初に送信機1に到着したパケットPKT_N(1)以外の(MBurst-1)個のパケットPKT_N(2)~PKT_N(MBurst)から選択されたa(aは、1以上の整数である。)個の所定のパケットPKT_N(m)の各々が送信機1に到着すると、所定のパケットPKT_N(m)よりも早く送信機1に到着したパケットPKT_N(1)~PKT_N(m-1)を符号化して符号化パケットPKT_C1を生成し、その生成した符号化パケットPKT_C1を所定のパケットPKT_N(m)に付与した結合パケットPKT_N/PKT_C1を送信用パケットPKT_TRとして生成することになる。
従って、結合パケットPKT_N/PKT_C1は、ペイロードが[Packet Info/PKT_Nのデータ/Coded Info/PKT_N(1)のデータ~PKT_N(m-1)のデータ]を含む構成からなる。
また、MBurst個のパケットPKT_N(1)~PKT_N(MBurst)が連続して送信機1に到着したとき、MBurst個のパケットPKT_N(1)~PKT_N(MBurst)を符号化した符号化パケットPKT_C2を送信用パケットPKT_TRとして生成することになる。
従って、符号化パケットPKT_C2は、ペイロードが[Coded Info/PKT_N(1)のデータ~PKT_N(MBurst)のデータ]を含む構成からなる。
図6は、図2に示すバッファ11の概略図である。なお、図6は、バースト的に一度に送信するためのパケットの個数MBurstよりもバッファ11のサイズが大きい場合についてバッファ11の概略図を示す。
図6を参照して、バッファ11は、例えば、リングバッファからなる。そして、バッファ11は、シーケンス番号SNが小さい順(即ち、古い順)にMBurst個のパケットPKT_N(1)~PKT_N(MBurst)を格納する。パケットPKT_N(MBurst)は、現在時刻においてバッファ11に格納されたパケットであり、パケットPKT_N(1)~パケットPKT_N(MBurst-1)は、過去にバッファ11に格納されたパケットである。
また、バッファ11は、パケット数が最大数を超えると、古いパケットから順に上書きする構成からなる。その結果、バッファ11は、常に、最大数のパケットを格納できる。
パケットPKT_N(1),PKT_N(2),・・・,PKT_N(MBurst)が格納されたMBurst個の領域には、それぞれ、パケットPKT_N(1)のシーケンス番号SN1およびデータ長L1、パケットPKT_N(2)のシーケンス番号SN2およびデータ長L2、・・・、パケットPKT_N(MBurst)のシーケンス番号SNMBurstおよびデータ長LMBurstも格納される。
即ち、アプリケーション20から送信機1に到着したパケットPKT_N(PKT_N(1)~PKT_N(MBurst)のいずれか)がペイロードを構成し、バッファ11の各領域には、[SN/Lp/ペイロード/パディング(全て“0”)]が格納される。なお、パディング(全て“0”)は、[SN/Lp/ペイロード]の長さが最大長にならない場合に追加される。
図7は、パケットを符号化する方法を説明するための図である。図7においては、パケットXi(iは、1,2,3,・・・)と符号化パケットYi-1とを符号化する方法を説明する。
図7を参照して、パケットXiは、Liバイトのデータ長を有するので、パケットXiは、Li×8/n個の成分Xi,1,Xi,2,Xi,3,Xi,4,・・・,Xi,Li×8/nと、“0”からなるパディングとを含む。成分Xi,1,Xi,2,Xi,3,Xi,4,・・・,Xi,Li×8/nの各々は、n(nは、正の整数である。)ビットの長さを有する。符号Ciは、ガロア体GF(2n)上のnビット長の乱数からなる。ここで、nは、例えば、8からなる。
符号化パケットYi-1は、成分Yi-1,1,Yi-1,2,Yi-1,3,Yi-1,4,・・・,Yi-1,Li×8/n,Yi-1,Max×8/nからなる。成分Yi-1,1,Yi-1,2,Yi-1,3,Yi-1,4,・・・,Yi-1,Li×8/n,Yi-1,Max×8/nの各々は、nビットの長さを有する。
符号Ciを成分Xi,1,Xi,2,Xi,3,Xi,4,・・・,Xi,Li×8/nの各々に乗算して乗算結果Ci・Xi,1,Ci・Xi,2,Ci・Xi,3,Ci・Xi,4,・・・,Ci・Xi,Li×8/nを生成する。この場合、符号Ciと、成分Xi,1,Xi,2,Xi,3,Xi,4,・・・,Xi,Li×8/nの各々との乗算は、ガロア体GF(2n)上の乗算として実行される。
その後、乗算結果Ci・Xi,1と成分Yi-1,1との排他的論理和を演算して成分Yi,1を生成し、乗算結果Ci・Xi,2と成分Yi-1,2との排他的論理和を演算して成分Yi,2を生成し、乗算結果Ci・Xi,3と成分Yi-1,3との排他的論理和を演算して成分Yi,3を生成し、乗算結果Ci・Xi,4と成分Yi-1,4との排他的論理和を演算して成分Yi,4を生成し、以下、同様にして、乗算結果Ci・Xi,Li×8/nと成分Yi-1,Li×8/nとの排他的論理和を演算して成分Yi,Li×8/nを生成し、更に、“0”からなるパディングと成分Yi-1,Max×8/nとの排他的論理和を演算して成分Yi,Max×8/nを生成する。これによって、符号化パケットYi=[Yi,1,Yi,2,Yi,3,Yi,4,・・・,Yi,Li×8/n,・・・,Yi,Max×8/n]が生成される。
図8は、MBurst個のパケットPKT_N(1)~PKT_N(MBurst)を送信するときの符号化パケットの生成方法を説明する図である。
図8においては、パケットP3,P5,P7,P9が送信機1に到着したタイミングで符号化パケットを受信機2へ送信すると判定するものとする。
図8の(a)を参照して、バーストを構成するMBurst個のパケットPKT_N(1)~PKT_N(MBurst)は、パケットP1~P6からなる。そして、バッファ11に格納できるパケットの最大数は、6個である。即ち、バーストを構成するパケットの個数MBurstは、バッファ11のサイズMBuffer以下である。
送信機1の処理手段12は、パケットP1が送信機1に到着すると、パケットP1をバッファ11にコピーする(図8の(a)(i)参照)。そして、処理手段12は、バッファ11からパケットP1を取り出し、その取り出したパケットP1を図7において説明した方法によって符号化して符号化パケットC1を生成する。
より具体的には、処理手段12は、nビット長の“0”からなる符号化パケットY0={000・・・0}を生成し、ガロア体GF(2n)上のnビット長の乱数からなる符号C1を生成する。そして、処理手段12は、パケットX1(=P1)と符号化パケットY0={000・・・0}と符号C1とに基づいて、図7において説明した方法によって、符号化パケットY1(=C1)を生成する。
その後、処理手段12は、パケットP2が送信機1に到着すると、パケットP2をバッファ11にコピーする(図8の(a)(ii)参照)。そして、処理手段12は、バッファ11からパケットP2を取り出す。そして、処理手段12は、ガロア体GF(2n)上のnビット長の乱数からなる符号C2を生成する。そうすると、処理手段12は、パケットX2(=P2)と符号化パケットY1と符号C2とに基づいて、図7において説明した方法によって、符号化パケットY2(=C2)を生成する。
以下、同様にして、パケットP3~P6が送信機1に到着したタイミングで、それぞれ、符号化パケットY3~Y6(=C3~C6)を順次生成する(図8の(a)(iii)~(vi)参照)。この場合、パケットP6が送信機1に到着し、パケットP6をバッファ11にコピーした段階で、バッファ11は、最大数MBufferのパケットを格納する。
処理手段12は、パケットP3が送信機1に到着すると、パケットP3をバッファ11にコピーし(図8の(a)(iii)参照)、符号化パケットを送信すると判定する。そして、処理手段12は、パケットP2が送信機1に到着したタイミングで生成した符号化パケットY2(=C2)をパケットP3に付与して結合パケットP3/C2を生成し、その生成した結合パケットP3/C2を送信手段13へ出力して結合パケットP3/C2を受信機2へ送信する。なお、結合パケットP3/C2によって情報を送信することは、Piggybackによる情報の送信である。
また、処理手段12は、パケットP5が送信機1に到着すると、パケットP5をバッファ11にコピーし(図8の(a)(v)参照)、符号化パケットを送信すると判定する。そして、処理手段12は、パケットP4が送信機1に到着したタイミングで生成した符号化パケットY4(=C4)をパケットP5に付与して結合パケットP5/C4を生成し、その生成した結合パケットP5/C4を送信手段13へ出力して結合パケットP5/C4を受信機2へ送信する。
そして、処理手段12は、パケットP6が送信機1に到着し、符号化パケットY6(=C6)を生成した後、後述する方法によって、パケットP6がバーストを構成するパケットP1~P6のうちの最後のパケットP6であると判定した後、未送信の符号化パケットY6(=C6)を送信手段13へ出力して符号化パケットY6(=C6)を単独で受信機2へ送信する。
また、処理手段12は、バッファ11からパケットP1~P6を取り出し、その取り出したパケットP1~P6を符号化して符号化パケットY7(=C7)を生成する。そして、処理手段12は、符号化パケットY7(=C7)を送信手段13へ出力して符号化パケットY7(=C7)を単独で受信機2へ送信する。
このように、処理手段12は、バーストを構成するパケットの個数MBurstがバッファ11のサイズMBuffer以下であるとき、バーストを構成する全てのパケットP1~P6を含む符号化パケットY7(=C7)を生成して受信機2へ送信する。
図8の(b)を参照して、バーストを構成するMBurst個のパケットPKT_N(1)~PKT_N(MBurst)は、パケットP1~P10からなる。そして、バッファ11に格納できるパケットの最大数は、6個である。即ち、バーストを構成するパケットの個数MBurstは、バッファ11のサイズMBufferよりも大きい。
処理手段12は、パケットP1~P6が送信機1に到着したとき、図8の(a)において説明した処理を実行する(図8の(b)(i),(ii)参照)。
そして、処理手段12は、パケットP7が送信機1に到着すると、パケットP7をバッファ11にコピーする(図8の(b)(iii)参照)。その結果、パケットP6が送信機1に到着した段階でバッファ11に格納されていたパケットP1~P6は、それぞれ、パケットP2~P7によって上書きされる。
処理手段12は、パケットP7をバッファ11にコピーした後、バッファ11からパケットP7を取り出す。そして、処理手段12は、ガロア体GF(2n)上のnビット長の乱数からなる符号C7を生成する。そうすると、処理手段12は、パケットX7(=P7)と符号化パケットY6と符号C7とに基づいて、図7において説明した方法によって、符号化パケットY7(=C7)を生成する。
その後、処理手段12は、パケットP8~P10が送信機1に到着したタイミングで、同様にして、それぞれ、符号化パケットY8(=C8)~Y10(=C10)を生成する(図8の(b)(iv)~(vi)参照)。
そして、パケットP10をバッファ11にコピーした段階で、バッファ11は、パケットP5~P10を格納する。
処理手段12は、パケットP10が送信機1に到着し、符号化パケットY10(=C10)を生成した後、後述する方法によって、パケットP10がバーストを構成するパケットP1~P10のうちの最後のパケットP10であると判定した後、未送信の符号化パケットY10(=C10)を送信手段13へ出力して符号化パケットY10(=C10)を単独で受信機2へ送信する。
また、処理手段12は、バッファ11からパケットP5~P10を取り出し、その取り出したパケットP5~P10を符号化して符号化パケットY11(=C11)を生成する。そして、処理手段12は、符号化パケットY11(=C11)を送信手段13へ出力して符号化パケットY11(=C11)を単独で受信機2へ送信する。
このように、処理手段12は、バーストを構成するパケットの個数MBurstがバッファ11のサイズMBufferよりも大きいとき、バーストを構成するパケットP1~P10のうちのパケットP5~P10を含む符号化パケットY11(=C11)を生成して受信機2へ送信する。
図8において説明したように、単独で送信される符号化パケットは、バーストを構成するパケットの個数MBurstとバッファ11のサイズMBufferとの大小関係によって異なるパケットを含む。
なお、処理手段12は、バーストを構成するMBurst個のパケットPKT_N(1)~PKT_N(MBurst)のうちの最後のパケットPKT_N(MBurst)がバッファ11に到着したか否かを次の方法によって判定する。
MBurst個のパケットPKT_N(1)~PKT_N(MBurst)は、連続してバッファ11に到着するので、シーケンス番号SNが連続する2個のパケットPKT_N(m),PKT_N(m+1)について、1個のパケットPKT_N(m)がバッファ11に到着してから1個のパケットPKT_N(m+1)がバッファ11に到着するまでの標準経過時間である経過時間TSTANDARDを予め固定値に決定し、その決定した固定値からなる経過時間TSTANDARDを処理手段12に設定しておく。
処理手段12は、MBurst個のパケットPKT_N(1)~PKT_N(MBurst)のうちの1個のパケットPKT_N(m’)が到着してからの経過時間tELPが経過時間tSTANDARDよりも長くなってもパケットPKT_Nがバッファ11に到着しないとき、パケットPKT_N(m’)がMBurst個のパケットPKT_N(1)~PKT_N(MBurst)のうちの最後のパケットPKT_N(MBurst)であると判定し、MBurst個のパケットPKT_N(1)~PKT_N(MBurst)のうちの最後のパケットPKT_N(MBurst)がバッファ11に到着したと判定する。
また、アプリケーション20がMBurst個のパケットPKT_N(1)~PKT_N(MBurst)のうちの最後のパケットPKT_N(MBurst)に、最後のパケットであることを示すフラグFGを設定しておき、処理手段12がアプリケーション20からパケットPKT_Nを受信する毎にパケットPKT_NにフラグFGが設定されているか否かを判定し、パケットPKT_NにフラグFGが設定されていると判定したとき、フラグFGが設定されているパケットPKT_Nを最後のパケットPKT_N(MBurst)であると判定するようにしてもよい。
図9は、バーストを構成するパケットの送信方法を説明するための図である。図9においては、バーストを構成するMBurst個のパケットPKT_N(1)~PKT_N(MBurst)がパケットP1~P6である場合において、バーストを構成するMBurst個のパケットPKT_N(1)~PKT_N(MBurst)の送信方法を説明する。この場合、処理手段12は、例えば、パケットP3,P5のいずれかが送信機1に到着したタイミングで符号化パケットを送信すると判定し、パケットP1,P2,P4,P6のいずれかが送信機1に到着したタイミングでは符号化パケットを送信しないと判定するものとする。また、パケットP1,P3が送信先へ送信できなかったものとする。
図9を参照して、パケットP1~P6は、バースト的に一度に送信するパケットを構成する。
処理手段12は、パケットP1が送信機1に到着すると、タイマーによって経過時間tELP_1の計測を開始するとともに、パケットP1をバッファ11にコピーし、パケットP1がパケットP3,P5以外のパケットであるので(即ち、パケットP1がm=1であるパケットPKT_N(1)であるので)、符号化パケットを送信しないと判定する。そして、処理手段12は、元のパケットP1を送信手段13へ出力してパケットP1を受信機2へ送信する。その後、処理手段12は、バッファ11からパケットP1を取り出し、その取り出したパケットP1を上述した方法によって符号化して符号化パケットC1を生成する。符号化パケットC1は、次式によって表される。
引き続いて、処理手段12は、パケットP2が送信機1に到着すると、経過時間tELP_1の計測を終了し、パケットP2が到着してからの経過時間tELP_2の計測を開始する。そして、処理手段12は、パケットP2をバッファ11にコピーし、パケットP2がパケットP3,P5以外のパケットであるので(即ち、パケットP2がm=2であるパケットPKT_N(2)であるので)、符号化パケットを送信しないと判定する。そして、処理手段12は、元のパケットP2を送信手段13へ出力してパケットP2を受信機2へ送信する。その後、処理手段12は、パケットP1,P2をバッファ11から取り出し、その取り出したパケットP1,P2を上述した方法によって符号化して符号化パケットC2を生成する。符号化パケットC2は、次式によって表される。
引き続いて、処理手段12は、パケットP3が送信機1に到着すると、経過時間tELP_2の計測を終了し、パケットP3が到着してからの経過時間tELP_3の計測を開始する。そして、処理手段12は、パケットP3をバッファ11にコピーし、パケットP3がパケットP3,P5のいずれかに該当するパケットであるので(即ち、パケットP3がm=3であるパケットPKT_N(3)であるので)、符号化パケットを送信すると判定する。そうすると、処理手段12は、パケットP2が送信機1に到着したタイミングで生成した符号化パケットC2を元のパケットP3に付与して結合パケットP3/C2を生成し、その生成した結合パケットP3/C2を送信手段13へ出力して結合パケットP3/C2を受信機2へ送信する。その後、処理手段12は、パケットP1~P3をバッファ11から取り出し、その取り出したパケットP1~P3を上述した方法によって符号化して符号化パケットC3を生成する。符号化パケットC3は、次式によって表される。
引き続いて、処理手段12は、パケットP4が送信機1に到着すると、経過時間tELP_3の計測を終了し、パケットP4が到着してからの経過時間tELP_4の計測を開始する。そして、処理手段12は、パケットP4をバッファ11にコピーし、パケットP4がパケットP3,P5以外のパケットであるので(即ち、パケットP4がm=4であるパケットPKT_N(4)であるので)、符号化パケットを送信しないと判定する。そうすると、処理手段12は、元のパケットP4を送信手段13へ出力してパケットP4を受信機2へ送信する。そして、処理手段12は、パケットP1~P4をバッファ11から取り出し、その取り出したパケットP1~P4を上述した方法によって符号化して符号化パケットC4を生成する。符号化パケットC4は、次式によって表される。
その後、パケットP5が送信機1に到着すると、処理手段12は、経過時間tELP_4の計測を終了し、パケットP5が到着してからの経過時間tELP_5の計測を開始する。そして、処理手段12は、パケットP5をバッファ11にコピーし、パケットP5がパケットP3,P5のいずれかに該当するパケットであるので(即ち、パケットP5がm=5であるパケットPKT_N(5)であるので)、符号化パケットを送信すると判定する。そうすると、処理手段12は、パケットP4が送信機1に到着したタイミングで生成した符号化パケットC4を元のパケットP5に付与して結合パケットP5/C4を生成し、その生成した結合パケットP5/C4を送信手段13へ出力して結合パケットP5/C4を受信機2へ送信する。その後、処理手段12は、パケットP1~P5をバッファ11から取り出し、その取り出したパケットP1~P5を上述した方法によって符号化して符号化パケットC5を生成する。符号化パケットC5は、次式によって表される。
引き続いて、処理手段12は、パケットP6が送信機1に到着すると、経過時間tELP_5の計測を終了し、パケットP6が到着してからの経過時間tELP_6の計測を開始する。そして、処理手段12は、パケットP6をバッファ11にコピーし、パケットP6がパケットP3,P5以外のパケットであるので(即ち、パケットP6がm=6であるパケットPKT_N(6)であるので)、符号化パケットを送信しないと判定する。そうすると、処理手段12は、元のパケットP6を送信手段13へ出力してパケットP6を受信機2へ送信する。その後、処理手段12は、パケットP1~P6をバッファ11から取り出し、その取り出したパケットP1~P6を上述した方法によって符号化して符号化パケットC6を生成する。符号化パケットC6は、次式によって表される。
なお、符号化パケットC6をパケットP6に付与して受信機2へ送信しないのは、符号化パケットを単体パケットに付与して受信機2へ送信するタイミングがパケットP3,P5のいずれかがバッファ11に到着したタイミングであると決定されているので、パケットP6がバッファ11に到着したタイミングが符号化パケットを単体パケットに付与して受信機2へ送信するタイミングでないからである。
そして、処理手段12は、経過時間tELP_6が経過時間TSTANDARDよりも長くなってもパケットが送信機1に到着しないことを確認し、パケットP6がパケットP1~P6のうちの最後のパケットP6であると判定する。
その後、処理手段12は、最後のパケットP6がバッファ11に到着した後、Tミリ秒が経過したか否かを判定する。ここで、Tは、T<T_interval_1を満たす時間であり、例えば、5ミリ秒である。
処理手段12は、最後のパケットP6がバッファ11に到着した後、Tミリ秒が経過したと判定したとき、符号化パケットC6を送信手段13へ出力して符号化パケットC6を受信機2へ送信する。
そして、処理手段12は、符号化パケットの送信数がK個であるか否かを判定する。Kは、例えば、3である。また、Kは、バッファ11に格納されるパケット数に応じて変更されてもよい。この場合、Kは、K=A+B/Mによって決定される。Mは、バッファ11に格納されるパケット数であり、A,Bは、定数である。そして、A,B,Mの各々は、整数である。K=A+B/Mによれば、バッファ11に格納されるパケット数Mが多くなれば、Kは、小さくなり、バッファ11に格納されるパケット数Mが少なくなれば、Kは、大きくなる。従って、符号化パケットの送信数KをK=A+B/Mによって決定することによって、バッファ11に格納されるパケット数Mが第1の個数であるとき、符号化パケットの送信数Kを第1の送信数に設定し、バッファ11に格納されるパケット数Mが第1の個数よりも多い第2の個数であるとき、符号化パケットの送信数Kを第1の送信数よりも少ない第2の送信数に設定する。つまり、バッファ11に格納されるパケット数Mが少なくなれば、より多くの符号化パケットを送信することになる。
処理手段12は、符号化パケットの送信数がK個でないと判定したとき、バッファ11に格納されたパケットP1~P6を取り出し、その取り出したパケットP1~P6を上述した方法によって符号化して符号化パケットC7を生成する。符号化パケットC7は、次式によって表される。
そして、処理手段12は、符号化パケットC7を送信手段13へ出力して符号化パケットC7を受信機2へ送信する。
その後、処理手段12は、符号化パケットの送信数がK個(=3個)でないと判定する。そして、処理手段12は、バッファ11に格納されたパケットP1~P6を取り出し、その取り出したパケットP1~P6を上述した方法によって符号化して符号化パケットC8を生成する。符号化パケットC8は、次式によって表される。
このように、処理手段12は、符号化パケットを単体で送信するとき、バッファ11に格納されている全てのパケットP1~P6を用いて符号化パケットC6~C8を生成する。
引き続いて、処理手段12は、符号化パケットの送信数がK個(=3個)であると判定し、バッファ11をクリアする。
式(6)~(8)に示すように、符号化パケットC6,C7,C8は、同じパケットP1~P6を含み、係数Ciのみが異なる符号化パケットである。係数Ciは、ガロア体GF(2n)上のnビット長の乱数からなるので、例えば、式(6)における係数a62,a64が零であることもある。この場合、符号化パケットC6は、実質的に、パケットP1,P3,P5,P6を含むことになる。符号化パケットC7,C8についても同様である。
受信機2は、送信機1から送信されたパケットP1の受信に失敗し、送信機1から送信されたパケットP2を受信する。また、受信機2は、送信機1から送信された結合パケットP3/C2の受信に失敗し、送信機1から送信されたパケットP4、結合パケットP5/C4、パケットP6および符号化パケットC6,C7,C8を順次受信する。
受信機2は、パケットP1,P3および符号化パケットC1を受信できなかったので、受信できなったパケットP1,P3を符号化パケットC4,C6から復号するために、符号化パケットC4,C6から受信済のパケットP2,P4の情報を除去する。
より具体的には、受信機2は、次式によって、符号化パケットC4から受信済のパケットP2,P4の情報を除去する。
また、受信機2は、次式によって、符号化パケットC6から受信済のパケットP2,P4,P5,P6の情報を除去する。
その結果、符号化パケットC4から受信済のパケットP2,P4の情報を除去した後の符号化パケットC4’および符号化パケットC6から受信済のパケットP2,P4,P5,P6の情報を除去した後の符号化パケットC6’は、共に、パケットP1,P3を含む。
そして、式(9)の左辺は、符号化パケットC4とパケットP2との排他的論理和を演算し、その排他的論理和の演算結果とパケットP4との排他的論理和を演算することによって得られる。また、式(10)の左辺は、符号化パケットC6とパケットP2との排他的論理和を演算し、その排他的論理和の演算結果とパケットP4との排他的論理和を演算し、その排他的論理和の演算結果とパケットP5との排他的論理和を演算し、その排他的論理和の演算結果とパケットP6との排他的論理和を演算することによって得られる。従って、受信機2は、式(9)および式(10)の左辺の値を取得できる。
また、式(9)の符号a41,a43は、符号化パケットC4の“Coded Infoに含まれており、式(10)の符号a61,a63は、符号化パケットC6の“Coded Infoに含まれているので(図5参照)、既知である。
従って、受信機2は、式(9)および式(10)の連立方程式を解くことによって、受信できなかったパケットP1,P3を復号できる。
また、受信機2は、同様にして、符号化パケットC6~C8から任意に選択した2つの符号化パケットに基づいて、受信できなかったパケットP1,P3を復号できる。
このように、受信機2が受信できなかったパケットが2個のパケットP1,P3である場合、送信機1は、受信機2が受信できなかったパケットの個数(=2個)以上の符号化パケットを送信することによって、受信できなかった2個のパケットP1,P3を復号できる。
受信機2が結合パケットP3/C2に代えて結合パケットP5/C2を受信できなかった場合について、上記の方法によって、受信できなかった2個のパケットを復号できることを説明する。この場合、受信機2は、2個のパケットP1,P5を受信できなかったことになる。
そこで、受信機2は、符号化パケットC2から受信済のパケットP2の情報を除去した後の符号化パケットC2’と、符号化パケットC6から受信済のパケットP2,P3,P4,P6の情報を除去した後の符号化パケットC6”とを次式によって算出する。
従って、受信機2は、式(11A),(11B)の連立方程式を解くことによって、受信できなかった2個のパケットP1,P5を復号できる。
符号化パケットC2,C4がそれぞれ付与されるパケットP3,P5以外のパケットP1,P2,P4を受信機2へ送信できなくても、受信機2は、3個の符号化パケットC6,C7,C8を受信できる。
そこで、受信機2は、符号化パケットC6から受信済のパケットP3,P5の情報を除去した後の符号化パケットC6
(3)と、符号化パケットC7から受信済のパケットP3,P5の情報を除去した後の符号化パケットC7
(3)と、符号化パケットC8から受信済のパケットP3,P5の情報を除去した後の符号化パケットC8
(3)とを算出する。その結果、次式が得られる。
受信機2は、式(12A),(12B),(12C)の連立方程式を解くことによってパケットP1,P2,P4を復号できる。
なお、受信機2は、符号化パケットから受信済のパケットの情報を除去した後の符号化パケットCが1個のパケットのみを含むとき、次式によって符号化パケットCを1個のパケットPKT_Nに変換する。
この場合、受信機2は、受信済のパケットの情報を除去した符号化パケットCを式(13)の“Y”に代入し、受信済のパケットの情報を除去した符号化パケットCのいずれかに含まれる1個の符号Cを式(13)の“C”に代入する。なお、式(13)の演算は、ガロア体GF(2n)上の演算である。
図10は、バーストを構成するパケットの別の送信方法を説明するための図である。図10を参照して、処理手段12は、図9において説明したように、パケットP1~P6をそれぞれバッファ11にコピーする毎に、それぞれ、符号化パケットC1~C6を生成する。
処理手段12は、パケットP2が送信機1に到着すると、パケットP2をバッファ11にコピーし、符号化パケットC1をパケットP2に付与して結合パケットP2/C1を生成し、その生成した結合パケットP2/C1を送信手段13へ出力して結合パケットP2/C1を受信機2へ送信する。
その後、処理手段12は、符号化パケットC2を生成し、パケットP3が送信機1に到着すると、パケットP3をバッファ11にコピーし、符号化パケットC2をパケットP3に付与して結合パケットP3/C2を生成し、その生成した結合パケットP3/C2を送信手段13へ出力して結合パケットP3/C2を受信機2へ送信する。
更に、処理手段12は、符号化パケットC3を生成し、パケットP4が送信機1に到着すると、パケットP4をバッファ11にコピーし、符号化パケットC3をパケットP4に付与して結合パケットP4/C3を生成し、その生成した結合パケットP4/C3を送信手段13へ出力して結合パケットP4/C3を受信機2へ送信する。
更に、処理手段12は、符号化パケットC4を生成し、パケットP5が送信機1に到着すると、パケットP5をバッファ11にコピーし、符号化パケットC4をパケットP5に付与して結合パケットP5/C4を生成し、その生成した結合パケットP5/C4を送信手段13へ出力して結合パケットP5/C4を受信機2へ送信する。
更に、処理手段12は、符号化パケットC5を生成し、パケットP6が送信機1に到着すると、パケットP6をバッファ11にコピーし、符号化パケットC5をパケットP6に付与して結合パケットP6/C5を生成し、その生成した結合パケットP6/C5を送信手段13へ出力して結合パケットP6/C5を受信機2へ送信する。なお、符号化パケットC5は、パケットP1~P5を含むが(式(5)参照)、バーストを構成するパケットP1~P6のうちの最後に送信機1に到着したパケットP6に符号化パケットCを付与して結合パケットを生成する場合、符号化パケットCは、バッファ11に格納された全てのパケットP1~P6を含む。従って、結合パケットP6/C5における符号化パケットC5は、上記の式(5)ではなく、図10に示すようにパケットP1~P6の全てを含む。
このように、Piggybackによる符号化パケットの送信は、バーストを構成するパケットP1~P6のうちのパケットP2~P6の各々において実行されてもよい。
結合パケットP6/C5を受信機2へ送信した後、処理手段12は、図9において説明したように、符号化パケットC6~C8をそれぞれ単独で受信機2へ送信する。
図11は、バーストを構成するパケットの更に別の送信方法を説明するための図である。
図11を参照して、処理手段12は、図9において説明したように、パケットP1~P6をそれぞれバッファ11にコピーする毎に、それぞれ、符号化パケットC1~C6を生成する。
処理手段12は、パケットP2~P5がそれぞれ送信機1に到着したタイミングでは、それぞれ符号化パケットC1~C4をパケットP2~P5に付与せずに、パケットP2~P5をそれぞれ単独で受信機2へ送信する。
そして、処理手段12は、パケットP6が送信機1に到着すると、符号化パケットC5をパケットP6に付与して結合パケットP6/C5を生成し、その生成した結合パケットP6/C5を送信手段13へ出力して結合パケットP6/C5を受信機2へ送信する。この場合も、符号化パケットP5は、上記の式(5)ではなく、図11に示すようにパケットP1~P6の全てを含む。
このように、Piggybackによる符号化パケットの送信は、バーストを構成するパケットP1~P6のうちの最後のパケットP6のみにおいて実行されてもよい。
結合パケットP6/C5を受信機2へ送信した後、処理手段12は、図9において説明したように、符号化パケットC6~C8をそれぞれ単独で受信機2へ送信する。
図9から図11において説明したように、この発明の実施の形態においては、結合パケットによる符号化パケットの送信(即ち、Piggybackによる符号化パケットの送信)は、バーストを構成するパケットP1~P6のうち、パケットP2~P6から選択された1個以上のパケットがそれぞれ送信機1に到着したタイミングで実行されればよい。
図12は、図1および図2に示す送信機1の動作を説明するためのフローチャートである。
図12を参照して、送信機1の動作が開始されると、処理手段12は、シーケンス番号SNをSN=0に設定する(ステップS1)。そして、処理手段12は、パケットがバッファ11に到着したか否かを判定する(ステップS2)。
ステップS2において、パケットPKT_Nがバッファ11に到着したと判定されたとき、処理手段12は、SN=SN+1を設定し(ステップS3)、シーケンス番号SNとパケット長LとをパケットPKT_Nに追加し、シーケンス番号SN、パケット長LおよびパケットPKT_Nをバッファ11にコピーする(ステップS4)。なお、ステップS3が実行されることによって、バッファ11(即ち、送信機1)に到着した順番を示すシーケンス番号SNがパケットPKT_Nおよびパケット長Lと共にバッファ11に格納される。
その後、処理手段12は、符号化パケットCを送信するか否かを判定する(ステップS5)。図9から図12において説明したように、結合パケットによる符号化パケットの送信(即ち、Piggybackによる符号化パケットの送信)は、バーストを構成するパケットP1~P6のうち、パケットP2~P6から選択された1個以上のパケットがそれぞれ送信機1に到着したタイミングで実行されるので、結合パケットによる符号化パケットの送信(即ち、Piggybackによる符号化パケットの送信)を実行するパケットPPiggybackを予め決定しておき、その決定したパケットPPiggybackがバッファ11(即ち、送信機1)に到着すると、処理手段12は、符号化パケットCを送信すると判定し、パケットPPiggyback以外のパケットがバッファ11(即ち、送信機1)に到着すると、符号化パケットCを送信しないと判定する。
ステップS5において、符号化パケットCを送信すると判定されたとき、符号化パケットをNパケットPKT_Nに付与し(ステップS6)、結合パケットを生成する。
そして、ステップS5において、符号化パケットCを送信しないと判定されたとき、またはステップS6の後、処理手段12は、パケットを送信手段13へ出力し、送信手段13は、処理手段12からのパケットをアンテナ14を介して受信機2へ送信する(ステップS7)。
その後、処理手段12は、上述した方法によって、バッファ11に格納されたパケットから符号化パケットCを生成する(ステップS8)。
そして、一連の動作は、ステップS2へ移行する。
一方、ステップS2において、パケットがバッファ11に到着しなかったと判定されたとき、処理手段12は、最後のパケットがバッファ11に到着してからTミリ秒が経過したか否かを判定する(ステップS9)。
ステップS9において、最後のパケットがバッファ11に到着してからTミリ秒が経過したと判定されたとき、処理手段12は、符号化パケットCを送信手段13へ出力し、送信手段13は、処理手段12から受けた符号化パケットCをアンテナ14を介して受信機2へ送信する(ステップS10)。
その後、処理手段12は、符号化パケットCの送信数がKであるか否かを判定する(ステップS11)。
ステップS11において、符号化パケットCの送信数がKでないと判定されたとき、処理手段12は、バッファ11に格納されたパケットから符号化パケットCを生成する(ステップS12)。その後、一連の動作は、ステップS10へ移行し、ステップS11において、符号化パケットCの送信数がKであると判定されるまで、ステップS10~ステップS12が繰り返し実行される。
そして、ステップS11において、符号化パケットCの送信数がKであると判定されると、処理手段12は、バッファ11をクリアする(ステップS13)。その後、一連の動作は、ステップS2へ移行する。また、ステップS9において、最後のパケットがバッファ11に到着してからTミリ秒が経過していないと判定されたとき、一連の動作は、ステップS2へ移行する。
図13は、図12に示すステップS8の詳細な動作を説明するためのフローチャートである。
図13を参照して、図12のステップS7の後、処理手段12は、i=1を設定する(ステップS81)。ここで、iは、図12のステップS8が実行される時点においてバッファ11に格納された各パケットのシーケンス番号SNを示す引数である。そして、i=1は、バッファ11に格納されたパケットのうち、最も古いパケットを表す。
ステップS81の後、処理手段12は、nビットの長さを有する“000・・・0”からなる符号化パケットY0={000・・・0}を生成する(ステップS82)。
そして、処理手段12は、バッファ11からパケットXiを取得する(ステップS83)。
その後、処理手段12は、ガロア体(GF(2n))によってnビット長の乱数を生成し、その生成したnビット長の乱数をCiに格納する(ステップS84)。
そうすると、処理手段12は、パケットXiの各要素Xi,1~Xi,Li×8/nにCiを掛け、Ci・XiとYi-1との排他的論理和を演算する。即ち、処理手段12は、次式によってYiを算出する(ステップS85)。
引き続いて、処理手段12は、パケットXiのシーケンス番号SNi、パケット長Liおよび符号CiをCoded infoに追加する(ステップS86)。
そして、処理手段12は、i=Iであるか否かを判定する(ステップS87)。ここで、Iは、図12のステップS8が実行される時点においてバッファ11に格納されたパケットのシーケンス番号SNの最大値を示す。
ステップS87において、i=Iでないと判定されたとき、処理手段12は、i=i+1を設定する(ステップS88)。その後、一連の動作は、ステップS83へ移行し、ステップS87において、i=Iであると判定されるまで、ステップS83~ステップS88が繰り返し実行される。
そして、ステップS87において、i=Iであると判定されると、処理手段12は、YiとCoded infoとからなる符号化パケットを生成する(ステップS89)。
その後、一連の動作は、図12のステップS2へ移行する。
なお、図12のステップS12の詳細な動作も、図13に示すフローチャートによって実行される。この場合、図12のステップS11において、符号化パケットの送信数がKでないと判定されたとき、ステップS81~ステップS89が順次実行され、ステップS89の後、一連の動作は、図12のステップS10へ移行する。
送信機1は、駆動されている限り、図12に示すステップS1~ステップS13(図13に示すフローチャートを含む)を繰り返し実行する。
図12に示すフローチャート(図13に示すフローチャートを含む)においては、ステップS1が実行された後に、処理手段12は、ステップS2において、バーストを構成しないパケットPKT_N(1)(図4に示すPピクチャを示すパケット)がバッファ11に到着したと判定すると、上述したステップS3,S4を順次実行した後、ステップS5において符号化パケットCを送信しないと判定し、ステップS7において、パケットPKT_N(1)を送信手段13およびアンテナ14を介して受信機2へ送信する。
その後、処理手段12は、ステップS8において、符号化パケットCを生成し、ステップS8の後、一連の動作は、ステップS2へ移行する。
そして、処理手段12は、ステップS2において、バーストを構成しないパケットPKT_N(図4に示すPピクチャを示すパケット)がバッファ11に到着したと判定する毎に、ステップS3,S4、ステップS5の“NO”およびステップS7を順次実行して単体のパケットPKT_Nを受信機2へ送信し、ステップS8において、符号化パケットCを生成する。その後、一連の動作は、ステップS2へ移行する。
なお、ステップS8において、バーストを構成しないパケットPKT_N(1)を符号化して符号化パケットを生成し、ステップS2において、パケットが到着しなかったと判定され、ステップS9において、最後のパケットがバッファ11に到着してからTミリ秒が経過したと判定された場合、符号化パケット(ほぼ、Nパケットからなる。)がK回送信されることになる(ステップS10~ステップS12参照)。
次に、バーストを構成するパケット(例えば、図9に示すパケットP1~P6のいずれか)がバッファ11に到着したときの送信機1の動作を説明する。
処理手段12は、ステップS2において、パケットP1がバッファ11に到着したと判定し、上述したステップS3,S4を順次実行した後、ステップS5において符号化パケットCを送信しないと判定し、ステップS7において、パケットP1を送信手段13およびアンテナ14を介して受信機2へ送信する。
そして、処理手段12は、ステップS8において、パケットP1を含む符号化パケットC1を生成し、その後、一連の動作は、ステップS2へ移行する。
その後、処理手段12は、ステップS2において、パケットP2がバッファ11に到着したと判定し、上述したステップS3,S4を順次実行した後、ステップS5において符号化パケットCを送信しないと判定し、ステップS7において、パケットP2を送信手段13およびアンテナ14を介して受信機2へ送信する。そして、処理手段12は、ステップS8において、パケットP1,P2を含む符号化パケットC2を生成する。その後、一連の動作は、ステップS2へ移行する。
引き続いて、処理手段12は、ステップS2において、パケットP3がバッファ11に到着したと判定し、上述したステップS3,S4を順次実行した後、ステップS5において符号化パケットC(=符号化パケットC1)を送信すると判定し、ステップS6において、符号化パケットC2をパケットP3に付与して結合パケットP3/C2を生成する。そして、処理手段12は、ステップS7において、送信手段13およびアンテナ14を介して結合パケットP3/C2を受信機2へ送信する。その後、処理手段12は、ステップS8において、パケットP1~P3を含む符号化パケットC3を生成する。そして、一連の動作は、ステップS2へ移行する。
処理手段12は、符号化パケットC3を生成した後、ステップS2において、パケットP4がバッファ11に到着したと判定し、上述したステップS3,S4を順次実行した後、ステップS5において符号化パケットCを送信しないと判定し、ステップS7において、パケットP4を送信手段13およびアンテナ14を介して受信機2へ送信する。そして、処理手段12は、ステップS8において、パケットP1~P4を含む符号化パケットC4を生成する。その後、一連の動作は、ステップS2へ移行する。
処理手段12は、符号化パケットC4を生成した後、ステップS2において、パケットP5がバッファ11に到着したと判定し、上述したステップS3,S4を順次実行した後、ステップS5において符号化パケットCを送信すると判定し、ステップS6において、符号化パケットC4をパケットP5に付与して結合パケットP5/C4を生成する。そして、処理手段12は、ステップS7において、結合パケットP5/C4を送信手段13およびアンテナ14を介して受信機2へ送信する。
その後、処理手段12は、ステップS8において、パケットP1~P5を含む符号化パケットC5を生成する。そして、一連の動作は、ステップS2へ移行する。
処理手段12は、符号化パケットC5を生成した後、ステップS2において、パケットP6がバッファ11に到着したと判定し、上述したステップS3,S4を順次実行した後、ステップS5において符号化パケットCを送信しないと判定し、ステップS7において、パケットP6を送信手段13およびアンテナ14を介して受信機2へ送信する。そして、処理手段12は、ステップS8において、パケットP1~P6を含む符号化パケットC6を生成する。その後、一連の動作は、ステップS2へ移行する。
引き続いて、処理手段12は、ステップS2において、パケットがバッファ11に到着しなかったと判定し、ステップS9において、最後のパケット(=パケットP6)がバッファ11に到着した後、Tミリ秒が経過したと判定し、ステップS10において、符号化パケットC6を送信手段13およびアンテナ14を介して受信機2へ送信する。そして、処理手段12は、ステップS11において、符号化パケットCの送信数がK(=3)でないと判定し、ステップS12において、バッファ11に格納されたパケットP1~P6からパケットP1~P6を含む符号化パケットC7を生成する。
その後、処理手段12は、ステップS10において、符号化パケットC7を送信手段13およびアンテナ14を介して受信機2へ送信する。
引き続いて、処理手段12は、ステップS11において、符号化パケットCの送信数がK(=3)でないと判定し、ステップS12において、バッファ11に格納されたパケットP1~P6からパケットP1~P6を含む符号化パケットC8を生成する。
その後、処理手段12は、ステップS10において、符号化パケットC8を送信手段13およびアンテナ14を介して受信機2へ送信する。
そして、処理手段12は、ステップS11において、符号化パケットCの送信数がK(=3)であると判定し、ステップS13において、バッファ11をクリアする。
図12に示すフローチャートにおいては、ステップS11における符号化パケットの送信数は、ステップS10において送信された符号化パケットの個数であり、ステップS7において、結合パケットによって送信された符号化パケットの個数を含まない。
また、図8の(a)において説明したように、バーストを構成するパケットの個数MBurstがバッファ11のサイズMBuffer以下である場合、図12のステップS2においてパケットが到着しなかったと判定されたとき、パケットP1~P6がバッファ11に格納されているので、処理手段12は、ステップS12において、パケットP1~P6の全てを含む符号化パケットC7,C8を生成することができる。その結果、ステップS7において、符号化パケット(符号化パケットC1~C5の少なくとも1つ)を含む結合パケットまたは単体のパケット(図9のパケットP1,P2,P4,P6等)が受信機2によって受信できなくても、ステップS10において、受信機2が受信できなかったパケット(パケットP1~P6のうちの一部のパケット)の個数以上の個数の符号化パケット(符号化パケットC7,C8等)を受信機2へ送信するように“K”を決定することによって、受信機2が受信できなかったパケット(パケットP1~P6のうちの一部のパケット)を復号できる。
更に、図8の(b)において説明したように、バーストを構成するパケットの個数MBurstがバッファ11のサイズMBufferよりも大きい場合、図10に示すように、パケットP2~P10がそれぞれ送信機1に到着したタイミングで、パケットP2~P10に、それぞれ、符号化パケットC1~C9を付与した結合パケットP2/C1,P3/C2,P4/C3,P5/C4,P6/C5,P7/C6,P8/C7,P9/C8,P10/C9を受信機2へ送信するようにすると、符号化パケットC1~C9は、次式によって表される。
式(15)において、符号化パケットC6~C9に含まれるパケットの個数が6個であるのは、バッファ11に格納できるパケットの最大数MBufferが“6”であるので、パケットP7がバッファ11にコピーされると、パケットP1~P6がパケットP2~P7によって上書きされ、パケットP8がバッファ11にコピーされると、パケットP2~P7がパケットP3~P8によって上書きされ、パケットP9がバッファ11にコピーされると、パケットP3~P8がパケットP4~P9によって上書きされるからである。
そして、単体のパケットP1および結合パケットP2/C1,P3/C2,P4/C3,P5/C4,P6/C5,P7/C6,P8/C7,P9/C8,P10/C9は、図12のステップS7において送信される。
単体のパケットP1および結合パケットP2/C1,P3/C2,P4/C3,P5/C4,P6/C5,P7/C6,P8/C7,P9/C8,P10/C9の個数(=10個)のうちの半分が受信機2によって受信できなかった場合、9個の結合パケットP2/C1,P3/C2,P4/C3,P5/C4,P6/C5,P7/C6,P8/C7,P9/C8,P10/C9のうち、少なくとも4個の結合パケットが受信機2によって受信できる。
この場合、受信機2がパケットP1と、4個の結合パケットP2/C1,P3/C2,P4/C3,P5/C4とを受信でき、5個の結合パケットP6/C5,P7/C6,P8/C7,P9/C8,P10/C9を受信できなかったとすると、受信機2は、パケットP6~P10を受信できず、パケットP1~P5を受信できたことになる。
しかし、送信機1は、図12のステップS10~S12を5回繰り返し実行することによって、パケットP5~P10を含む5個の符号化パケットC10~C14を受信機2へ送信できる。5個の符号化パケットC10~C14は、次式によって表される。
そして、受信機2は、例えば、式(16)から4個の符号化パケットC10~C13を選択し、4個の符号化パケットC10~C13から受信済のパケットP5の情報を除去して符号化パケットC10’,C11’,C12’,C13’を生成する。符号化パケットC10’,C11’,C12’,C13’の各々は、4個のパケットP6~P10を含むので、次式の連立方程式を解くことによってパケットP6~P10を復号できる。
また、受信機2がパケットP1と、5個の結合パケットP6/C5,P7/C6,P8/C7,P9/C8,P10/C9とを受信でき、4個の結合パケットP2/C1,P3/C2,P4/C3,P5/C4を受信できなかったとすると、パケットP2~P5を受信できなかったことになる。
そうすると、受信できなかったパケットの個数が“4個”であるので、式(15)の符号化パケットC5~C9から4個の符号化パケットC6~C9を選択し、符号化パケットC6~C9から受信済のパケットP1,P6~P9の情報を除去し、受信済のパケットP1,P6~P9の情報を除去した符号化パケットC6’~C9’を示す連立方程式を解くことによってパケットP2~P5を復号できる。
このように、バーストを構成するパケットの個数MBurstがバッファ11のサイズMBufferよりも大きい場合においても、受信機2が受信できなかったパケットを復号できる。
更に、図12に示すフローチャート(図13に示すフローチャートを含む)においては、送信機1は、バーストを構成するパケットP1~P6の各パケットが送信機1に到着する毎に、単体のパケットまたは結合パケット(符号化パケットを含む。)を受信機2へ送信するので、バーストを構成する複数のパケットP1~P6を低遅延で受信機2へ送信できる。
送信機1は、バーストを構成するパケット(図9に示すパケットP1~P6の全て)を受信機2へ送信した後、バーストを構成しないパケットPKT_N(図4に示すPピクチャを示すパケット)がバッファ11に到着したと判定すると、上述した方法によって、バーストを構成しないパケットPKT_N(図4に示すPピクチャを示すパケット)を受信機2へ送信する。
このように、送信機1は、図12に示すフローチャート(図13に示すフローチャートを含む)に従って、バーストを構成しないパケットおよびバーストを構成するパケットを受信機2へ送信する。
図14は、図1および図3に示す受信機2の動作を説明するためのフローチャートである。
図14を参照して、受信機2の動作が開始されると、受信手段22は、アンテナ21を介してパケットを受信すると(ステップS21の“YES”)、その受信したパケットを処理手段23へ出力する。
処理手段23は、パケットPKTを受信手段22から受け、その受けたパケットPKTがNパケットPKT_Nであるか否かを判定することによってNパケットPKT_Nを受信したか否かを判定する(ステップS22)。この場合、処理手段23は、パケットPKTのPacket infoの識別子N/Cが“N”からなり、かつ、パケットPKTがCoded infoおよび領域REG2を含んでいないとき、NパケットPKT_Nを受信したと判定し、パケットPKTのPacket infoの識別子N/Cが“C”からなるとき、またはパケットPKTのPacket infoの識別子N/Cが“N”からなり、かつ、Coded infoの識別子N/Cが“C”からなるとき、NパケットPKT_Nを受信しなかったと判定する。
ステップS22において、NパケットPKT_Nを受信しなかったと判定されたとき、処理手段23は、結合パケット(Piggybackによって送信されたパケット)を受信したか否かを判定する(ステップS23)。この場合、処理手段23は、パケットPKTのPacket infoの識別子N/Cが“N”からなり、かつ、パケットPKTのCoded infoの識別子N/Cが“C”からなるとき、結合パケットを受信したと判定し、パケットPKTのPacket infoの識別子N/Cが“C”からなるとき、結合パケットを受信しなかったと判定する。
ステップS23において、結合パケットを受信したと判定されたとき、処理手段23は、NパケットとCパケット(=符号化パケット)とを分離する(ステップS24)。
その後、処理手段23は、NパケットPKT_Nが有るか否かを判定する(ステップS25)。
ステップS25において、NパケットPKTが有ると判定されたとき、またはステップS22において、NパケットPKT_Nを受信したと判定されたとき、処理手段23は、Nパケット受信処理を実行する(ステップS26)。
その後、処理手段23は、Cパケット(=符号化パケット)が有るか否かを判定する(ステップS27)。
そして、ステップS23において、結合パケットを受信しなかったと判定されたとき、またはステップS25において、NパケットPKT_Nが無いと判定されたとき、またはステップS27において、Cパケット(=符号化パケット)が有ると判定されたとき、処理手段23は、Cパケット(=符号化パケット)から受信済のNパケットPKT_Nの情報を除去する(ステップS28)。
引き続いて、処理手段23は、復号処理を実行する(ステップS29)。そして、処理手段23は、復号できたか否かを判定する(ステップS30)。
ステップS30において、復号できたと判定されたとき、ステップS30において、復号できなかったと判定されるまで、ステップS29,S30が繰り返し実行される。
そして、ステップS27において、Cパケット(=符号化パケット)が無いと判定されたとき、またはステップS30において、復号できなかったと判定されたとき、一連の動作は、ステップS21へ移行する。以後、受信機2は、駆動されている限り、ステップ21~ステップS30を繰り返し実行する。
なお、ステップS23において、結合パケットを受信しなかったと判定されたときに、一連の動作がステップS28へ移行するのは、受信機2によって受信されるパケットは、NパケットPKT_N、符号化パケットPKT_Cおよび結合パケットの3種類であり、ステップS22において、NパケットPKT_Nを受信しなかったと判定され、更に、ステップS23において、結合パケットを受信しなかったと判定されているので、受信機2が受信したパケットは、符号化パケットPKT_Cであるからである。
図15は、図14に示すステップS26の詳細な動作を説明するためのフローチャートである。
図15を参照して、図14のステップS22において、NパケットPKT_Nを受信したと判定されたとき、または図14のステップS25において、NパケットPKT_Nが有ると判定されたとき、処理手段23は、受信したNパケットPKT_Nのシーケンス番号SNrxが受信済、かつ、アプリケーション30へ送信済のNパケットPKT_Nのシーケンス番号SNsent(即ち、Nバッファ24に格納されたNパケットのシーケンス番号)以下であるか否か、または受信したNパケットPKT_NがNバッファ24に格納済であるか否かを判定する(ステップS261)。
ステップS261において、受信したNパケットPKT_Nのシーケンス番号SNrxが受信済、かつ、アプリケーション30へ送信済のNパケットPKT_Nのシーケンス番号SNsent以下であると判定されたとき、または受信したNパケットPKT_NがNバッファ24に格納済であると判定されたとき、処理手段23は、受信したNパケットPKT_Nを破棄する(ステップS262)。
一方、ステップS261において、受信したNパケットPKT_Nのシーケンス番号SNrxが受信済、かつ、アプリケーション30へ送信済のNパケットPKT_Nのシーケンス番号SNsent以下でなく、かつ、受信したNパケットPKT_NがNバッファ24に格納済でないと判定されたとき、処理手段23は、受信したNパケットPKT_N(SNrx)をNバッファ24に格納する(ステップS263)。
そして、処理手段23は、i=1を設定し(ステップS264)、シーケンス番号SNsent+iを有するパケットPKT_NがNバッファ24に存在するか否かを判定する(ステップS265)。なお、iは、1,2,3,・・・の整数である。
ステップS265において、シーケンス番号SNsent+iを有するパケットPKT_NがNバッファ24に存在すると判定されたとき、処理手段23は、シーケンス番号SNsent+iを有するパケットPKT_Nをアプリケーション30へ伝送する(ステップS266)。そして、処理手段23は、i=i+1を設定する(ステップS267)。その後、一連の動作は、ステップS265へ移行し、ステップS265において、シーケンス番号SNsent+iを有するパケットPKT_NがNバッファ24に存在しないと判定されるまで、ステップS265~ステップS267が繰り返し実行される。
そして、ステップS265において、シーケンス番号SNsent+iを有するパケットPKT_NがNバッファ24に存在しないと判定されると、処理手段23は、SNsent=SNsent+i-1を設定する(ステップS268)。
そして、ステップS262またはステップS268の後、一連の動作は、図14のステップS27へ移行する。
図15に示すステップS263~ステップS267は、新たに受信したNパケットPKT_NをNバッファ24に格納するとともにアプリケーション30に伝送するステップである。そして、i≧2であるときに、ステップS265においてシーケンス番号SNsent+iを有するパケットPKT_NがNバッファ24に存在しないと判定されると、ステップS268において、Nバッファ24における受信済のNパケットPKT_Nの最新のシーケンス番号SNsentが更新される。
図16は、図14に示すステップS28の詳細な動作を説明するためのフローチャートである。
図16を参照して、図14のステップS23において、結合パケットを受信しなかったと判定されたとき、または図14のステップS25において、Nパケットが無いと判定されたとき、または図14のステップS27において、Cパケット(符号化パケット)が有ると判定されたとき、処理手段23は、i=1を設定し(ステップS281)、Nバッファ24からパケットXiを取得する(ステップS282)。ここで、iは、Nバッファ24に格納された各パケットXiを表し、1~Iである。そして、Iは、Nバッファ24に格納されたパケットXiの総数である。
ステップS282の後、処理手段23は、パケットXiのシーケンス番号SNが符号化パケットYのCoded infoに含まれるか否かを判定する(ステップS283)。
ステップS283において、パケットXiのシーケンス番号SNが符号化パケットYのCoded infoに含まれると判定されたとき、処理手段23は、符号化パケットYとパケットXiとの排他的論理和を演算することによって符号化パケットYから受信済のパケットXiの情報を除去する(ステップS284)。
そして、ステップS283において、パケットXiのシーケンス番号SNが符号化パケットYのCoded infoに含まれていないと判定されたとき、またはステップS284の後、処理手段23は、i=Iであるか否かを判定する(ステップS285)。
ステップS285において、i=Iでないと判定されたとき、処理手段23は、i=i+1を設定する(ステップS286)。その後、一連の動作は、ステップS282へ移行し、ステップS285において、i=Iであると判定されるまで、ステップS282~ステップS286が繰り返し実行される。
そして、ステップS285において、i=Iであると判定されると、処理手段23は、符号化パケットYに含まれていた情報の全てを受信済であるか否かを判定する(ステップS287)。この場合、処理手段23は、符号化パケットYがY={000・・・0}であるとき、符号化パケットYに含まれていた情報の全てを受信済であると判定し、符号化パケットYがY={000・・・0}でないとき、符号化パケットYに含まれていた情報の全てを受信済であることは無い(即ち、符号化パケットYに含まれていた情報の一部を受信済でない)と判定する。
ステップS287において、符号化パケットYに含まれていた情報の全てを受信済であることは無いと判定されたとき、処理手段23は、符号化パケットYに含まれるNパケット数が“1”であるか否かを判定する(ステップS288)。
ステップS288において、符号化パケットYに含まれるNパケット数が“1”でないと判定されたとき、処理手段23は、符号化パケットYをCバッファ25に保存する(ステップS289)。
一方、ステップS288において、符号化パケットYに含まれるNパケット数が“1”であると判定されたとき、処理手段23は、式(13)によって符号化パケットYをパケットXに変換し、その変換したパケットXに対して、上述した「Nパケット受信処理」(図15に示すフローチャート)を実行する(ステップS290)。
そして、ステップS287において、符号化パケットYに含まれていた情報の全てを受信済であると判定されたとき、またはステップS289の後、またはステップS290の後、一連の動作は、図14のステップS29へ移行する。
図16に示すフローチャートにおいては、ステップS285において、i=Iであると判定されるまで、ステップS282~ステップS286が繰り返し実行されることによって、符号化パケットYから受信済の全てのパケットX1~XIの情報が除去される。即ち、ステップS285において、i=Iであると判定されるまで、ステップS282~ステップS286が繰り返し実行されることによって、Nバッファ24に格納されていない複数のパケット(=受信済でない複数のパケット)のみを含む符号化パケットCが生成される。
図17は、図14に示すステップS29の詳細な動作を説明するためのフローチャートである。
図17を参照して、図14のステップS28の後、またはステップS30において復号できたと判定されたとき、処理手段23は、2個以上の符号化パケットYがCバッファ25に存在するか否かを判定する(ステップS291)。
ステップS291において、2個以上の符号化パケットYがCバッファ25に存在しないと判定されたとき、一連の動作は、図14のステップS21へ移行する。
一方、ステップS291において、2個以上の符号化パケットYがCバッファ25に存在すると判定されたとき、処理手段23は、i=1を設定する(ステップS292)。ここで、iは、Cバッファ25に格納された各符号化パケットYiを表し、1~Iである。そして、Iは、Cバッファ25に格納された符号化パケットYiの総数である。
ステップS292の後、処理手段23は、Cバッファ25から符号化パケットYiを取得する(ステップS293)。
そして、処理手段23は、符号化パケットYiに対して「符号化パケットから受信済のパケットXiの情報を除去」(図16のフローチャート)を実行する(ステップS294)。
その後、処理手段23は、符号化パケットYiに含まれるNパケット数が“1”以下であるか否かを判定する(ステップS295)。
ステップS295において、符号化パケットYiに含まれるNパケット数が“1”以下であると判定されると、処理手段23は、符号化パケットYiをCバッファ25から消去する(ステップS296)。
そして、ステップS295において、符号化パケットYiに含まれるNパケット数が“1”以下でないと判定されたとき、またはステップS296の後、処理手段23は、i=Iであるか否かを判定する(ステップS297)。
ステップS297において、i=Iでないと判定されたとき、処理手段23は、i=i+1を設定する(ステップS298)。その後、一連の動作は、ステップS293へ移行し、ステップS297において、i=Iであると判定されるまで、ステップS293~ステップS298が繰り返し実行される。
そして、ステップS297において、i=Iであると判定されると、処理手段23は、複数のNパケットを含む符号化パケットCがCバッファ25に複数存在するか否かを判定する(ステップS299)。
ステップS299において、複数のNパケットを含む符号化パケットCがCバッファ25に複数存在すると判定されたとき、処理手段23は、Cバッファ25から複数の符号化パケットYを取得し、その取得した複数の符号化パケットYを表す連立方程式を解いてCパケット(符号化パケット)を復号する(ステップS300)。
そして、ステップS299において、複数のNパケットを含む符号化パケットCがCバッファ25に複数存在しないと判定されたとき、またはステップS300の後、処理手段23は、i=1を設定し(ステップS301)、復号できたNパケット数が“i”以上であるか否かを判定する(ステップS302)。
ステップS302において、復号できたNパケット数が“i”以上であると判定されたとき、処理手段23は、復号されたNパケットに対して「Nパケット受信処理」(図15のフローチャート)を実行する(ステップS303)。そして、処理手段23は、i=i+1を設定する(ステップS304)。その後、一連の動作は、ステップS302へ移行し、ステップS302において、復号できたNパケット数が“i”以上でないと判定されるまで、ステップS302~ステップS304が繰り返し実行される。
そして、ステップS302において、復号できたNパケット数が“i”以上でないと判定されると、一連の動作は、図14のステップS30へ移行する。
図17に示すフローチャートにおいては、図16のステップS287において、符号化パケットYに含まれていた情報の全てを受信済であると判定された後に、またはステップS290の後にステップS291へ移行した場合、ステップS291において、2個以上の符号化パケットYがCバッファ25に存在しないと判定され、一連の動作は、図14のステップS21へ移行する。
一方、図16のステップS289の後にステップS291へ移行した場合において、ステップS291において、2個以上の符号化パケットYがCバッファ25に存在すると判定されたとき、上述したステップS292~ステップS304が順次実行され、ステップS291において、2個以上の符号化パケットYがCバッファ25に存在しないと判定されたとき、一連の動作は、図14のステップS21へ移行する。
また、図17に示すフローチャートにおいては、ステップS302において、復号できたNパケット数がi以上でないと判定されるまで、ステップS302~ステップS304が繰り返し実行されるのは、符号化パケットCを復号することによって取得された全てのNパケットに対して「Nパケット受信処理」(図15のフローチャート)を実行するためである。
図18は、バーストを構成するパケットの受信時におけるNバッファ24およびCバッファ25の変遷を示す図である。
なお、図18は、バーストを構成するパケットが図9に示すパケットP1~P6からなる場合において、バーストを構成するパケットの受信時におけるNバッファ24およびCバッファ25の変遷を示す。
図18を参照して、送信機1がパケットP1を送信すると、受信機2は、パケットP1の受信に失敗するので、図14のステップS21においては、受信機2の受信手段22は、パケットP1を受信しない。その結果、Nバッファ24およびCバッファ25には、パケットが格納されない(図18の(a)参照)。
その後、送信機1がパケットP2を送信すると、受信機2の受信手段22は、アンテナ21を介してパケットP2を受信し(図14のステップS21の“YES”参照)、その受信したパケットP2を処理手段23へ出力する。
処理手段23は、パケットP2を受信手段22から受けると、パケットP2のPacket infoの識別子N/Cが“N”からなることを確認してNパケットを受信したと判定する(図14のステップS22の“YES”参照)。そして、処理手段23は、パケットP2に対してNパケット受信処理を実行し(図14のステップS26参照)、パケットP2のシーケンス番号SNrxが受信済、かつ、アプリケーション30へ送信済のNパケットPKT_Nのシーケンス番号SNsent(即ち、Nバッファ24に格納されたNパケットのシーケンス番号)よりも大きく、かつ、受信パケットがNバッファ24に格納済でないと判定し(図15のステップS261の“NO”参照)、パケットP2をNバッファ24に格納するとともにパケットP2をアプリケーション30へ伝送する(図15のステップS263~S266参照)。そして、処理手段23は、i=2であるときに、SNsent+i(=SNsent+2)のパケットがNバッファ24に存在しないと判定し(図15のステップS265の“NO”参照)、SNsent=SNsent+i-1=SNsent+2-1=SNsent+1によってNバッファ24に格納されたNパケットPKT_Nのシーケンス番号SNsentを更新する(図15のステップS268参照)。その後、処理手段23は、Cパケットが無いと判定し(図14のステップS27の“NO”参照)、受信機2の動作は、図14のステップS21へ移行する。この段階で、パケットP2がNバッファ24に格納される(図18の(b)参照)。
引き続いて、送信機1が結合パケットP3/C2を送信すると、受信機2は、結合パケットP3/C2の受信に失敗するので、図14のステップS21においては、受信機2の受信手段22は、結合パケットP3/C2を受信しない。その結果、Nバッファ24およびCバッファ25の状態は、変化しない(図18の(c)参照)。
その後、送信機1がパケットP4を送信すると、受信機2は、上述したパケットP2の受信時における動作と同じ動作を実行する。その結果、パケットP4がNバッファ24に格納される(図18の(d)参照)。
そして、送信機1が結合パケットP5/C4を送信すると、受信機2の受信手段22は、アンテナ21を介して結合パケットP5/C4を受信し(図14のステップS21の“YES”参照)、その受信した結合パケットP5/C4を処理手段23へ出力する。
処理手段23は、結合パケットP5/C4を受信手段22から受けると、結合パケットP5/C4のPacket infoの識別子N/Cが“N”からなり、かつ、Coded infoの識別子N/Cが“C”からなることを確認し、NパケットPKT_Nを受信しなかったと判定するとともに(図14のステップS22の“NO”参照)、結合パケットを受信したと判定する(図14のステップS23の“YES”参照)。
その後、処理手段23は、結合パケットP5/C4のNパケットP5と符号化パケットC4とを分離し(図14のステップS24参照)、Nパケットが有ると判定し(図14のステップS25の“YES”参照)、パケットP5に対してNパケット受信処理を実行する(図14のステップS26参照)。そして、処理手段23は、Nパケット受信処理において、パケットP5のシーケンス番号SNrxが受信済、かつ、アプリケーション30へ送信済のNパケットPKT_Nのシーケンス番号SNsent(即ち、Nバッファ24に格納されたNパケットのシーケンス番号)よりも大きく、かつ、受信パケットがNバッファ24に格納されていないと判定し(図15のステップS261の“NO”参照)、パケットP5をNバッファ24に格納するとともにパケットP5をアプリケーション30へ伝送する(図15のステップS263~S266参照)。そして、処理手段23は、i=2であるときに、Nバッファ24にSNsent+i(=SNsent+2)のパケットが存在しないと判定し(図15のステップS265の“NO”参照)、SNsent=SNsent+i-1=SNsent+2-1=SNsent+1によってNバッファ24に格納されたNパケットPKT_Nのシーケンス番号SNsentを更新する(図15のステップS268参照)。その後、処理手段23は、Cパケットが有ると判定し(図14のステップS27の“YES”参照)、Cパケットから受信済のNパケットの情報を除去する(図14のステップS28参照)。この時点で、Nバッファ24には、パケットP2,P4,P5が格納されており(図18の(e)参照)、符号化パケットC4は、パケットP1~P4を含むので、処理手段23は、符号化パケットC4とパケットP2,P4との排他的論理和を順次演算して符号化パケットC4から受信済のパケットP2,P4の情報を除去する(図16のステップS282~ステップS286参照)。
符号化パケットC4から受信済のパケットP2,P4の情報を除去した後の符号化パケットC4’は、式(9)によって表わされる。その結果、処理手段23は、符号化パケットC4に含まれていた情報の全てを受信済であることは無いと判定し(図16のステップS287の“NO”参照)、符号化パケットC4’に含まれるNパケット数が“1”でないと判定し(図16のステップS288の“NO”参照)、符号化パケットC4’をCバッファ25に格納する(図16のステップS289参照)。これによって、Nバッファ24には、3個のパケットP2,P4,P5が格納され、Cバッファ25には、1個の符号化パケットC4’が格納される(図18の(e)参照)。
図16のステップS289の後、受信機2の動作は、図14のステップS29へ移行し、図14のステップS29の詳細な動作を示す図17のステップS291において、処理手段23は、2個以上の符号化パケットYがCバッファ25に存在しないと判定し、受信機2の動作は、図14のステップS21へ移行する。
その後、送信機1がパケットP6を送信すると、受信機2は、上述したパケットP2の受信時における動作と同じ動作を実行する。その結果、パケットP6がNバッファ24に格納される(図18の(f)参照)。そして、パケットP6がNバッファ24に格納された後、処理手段23は、Cパケットが無いと判定するので(図14のステップS27の“NO”参照)、受信機2の動作は、図14のステップS21へ移行する。
引き続いて、送信機1が符号化パケットC6を送信すると、受信機2の受信手段22は、アンテナ21を介して符号化パケットC6を受信し(図14のステップS21の“YES”参照)、その受信した符号化パケットC6を処理手段23へ出力する。
処理手段23は、符号化パケットC6を受信手段22から受けると、符号化パケットC6のPacket infoの識別子N/Cが“C”からなるので、Nパケットを受信しなかったと判定し(図14のステップS22の“NO”参照)、結合パケットを受信しなかったと判定する(図14のステップS23の“NO”参照)。
従って、処理手段23は、符号化パケットC6から受信済のパケットの情報を除去する(図14のステップS28参照)。この段階では、Nバッファ24には、パケットP2,P4,P5,P6が格納されており、符号化パケットC6は、パケットP1~P6を含むので(式(6)参照)、処理手段23は、符号化パケットC6とパケットP2,P4,P5,P6との排他的論理和を順次演算して符号化パケットC6から受信済のパケットP2,P4,P5,P6の情報を除去する(図16のステップS282~ステップS286参照)。
符号化パケットC6から受信済のパケットP2,P4,P5,P6の情報を除去した後の符号化パケットC6’は、式(10)によって表わされる。その結果、処理手段23は、符号化パケットC6に含まれていた情報の全てを受信済であることは無いと判定し(図16のステップS287の“NO”参照)、符号化パケットC6’に含まれるNパケット数が“1”でないと判定し(図16のステップS288の“NO”参照)、符号化パケットC6’をCバッファ25に格納する(図16のステップS289参照)。これによって、Nバッファ24には、4個のパケットP2,P4,P5,P6が格納され、Cバッファ25には、2個の符号化パケットC4’,C6’が格納される(図18の(g)参照)。
そうすると、処理手段23は、複数のNパケットを含む符号化パケットが複数存在すると判定し(図17のステップS299の“YES”参照)、符号化パケットC4’を表す式(9)と符号化パケットC6’を表す式(10)との連立方程式を解いてCパケットを復号する(図17のステップS300参照)。これによって、2つのNパケットP1,P3が得られる。
その後、処理手段23は、i=1を設定し(図17のステップS301参照)、復号できたNパケット数がi(=1)以上であると判定し(図17のステップS302の“YES”参照)、NパケットP1に対して「Nパケット受信処理」(図15に示すフローチャート)を実行する(図17のステップS303参照)。そして、処理手段23は、Nパケット受信処理において、パケットP1のシーケンス番号SNrxが受信済、かつ、アプリケーション30へ送信済のNパケットPKT_Nのシーケンス番号SNsent(即ち、Nバッファ24に格納されたNパケットのシーケンス番号)よりも大きく、かつ、受信パケット(=パケットP1)がNバッファ24に格納済でないと判定し(図15のステップS261の“NO”参照)、パケットP1をNバッファ24に格納するとともにパケットP1をアプリケーション30へ伝送する(図15のステップS263~S266参照)。そして、処理手段23は、i=2であるときに、Nバッファ24にSNsent+i(=SNsent+2)のパケットが存在しないと判定し(図15のステップS265の“NO”参照)、SNsent=SNsent+i-1=SNsent+2-1=SNsent+1によってNバッファ24に格納されたNパケットPKT_Nのシーケンス番号SNsentを更新する(図15のステップS268参照)。
図17のステップS303において、「Nパケット受信処理」(図15に示すフローチャート)が実行される場合、図15のステップS268の後、受信機2の動作は、図15のステップS304へ移行するので、処理手段23は、i=i+1=2を設定し(図17のステップS304参照)、復号できたNパケット数がi(=2)以上であると判定し(図17のステップS302の“YES”参照)、NパケットP2に対して「Nパケット受信処理」(図15に示すフローチャート)を実行する(図17のステップS303参照)。そして、処理手段23は、Nパケット受信処理において、パケットP2のシーケンス番号SNrxが受信済、かつ、アプリケーション30へ送信済のNパケットPKT_Nのシーケンス番号SNsent(即ち、Nバッファ24に格納されたNパケットのシーケンス番号)よりも大きく、かつ、受信パケット(=パケットP2)がNバッファ24に格納済でないと判定し(図15のステップS261の“NO”参照)、パケットP2をNバッファ24に格納するとともにパケットP2をアプリケーション30へ伝送する(図15のステップS263~S266参照)。そして、処理手段23は、i=2であるときに、SNsent+i(=SNsent+2)のパケットがNバッファ24に存在しないと判定し(図15のステップS265の“NO”参照)、SNsent=SNsent+i-1=SNsent+2-1=SNsent+1によってNバッファ24に格納されたNパケットPKT_Nのシーケンス番号SNsentを更新する(図15のステップS268参照)。その後、処理手段23は、i=i+1=3を設定し(図17のステップS304参照)、復号できたNパケット数がi(=3)以上でないと判定する(図17のステップS302の“NO”参照)。そうすると、受信機2の動作は、図14のステップS30へ移行し、処理手段23は、復号できたと判定し(図14のステップS30の“YES”)、図14のステップS29の詳細な動作を示す図17のフローチャートのステップS291において、2個以上の符号化パケットがCバッファ25に存在しないと判定し(図17のステップS291の“NO”参照)、受信機2の動作は、図14のステップS21へ移行する。
この段階で、Nバッファ24およびCバッファ25には、パケットが格納されていない(図18の(h)参照)。これによって、バーストを構成するパケット(パケットP1~P6)の受信処理が終了する。
パケットの受信処理を示す図14に示すフローチャート(図15から図17に示すフローチャートを含む)においては、図14のステップS28において、「Cパケットから受信済のNパケットの情報を除去」することを実行した後に、ステップS29における復号処理の詳細な動作を示す図17のフローチャートのステップS294において「符号化パケットから受信済のパケットXiの情報を除去」することを実行するのは、次の理由による。
送信機1の動作を示す図12のフローチャートにおいては、ステップS9において、最後のパケットがバッファ11に到着した後、Tミリ秒が経過したと判定されると、送信機1は、ステップS11において、符号化パケットの送信数がKであると判定されるまで符号化パケットCを受信機2へ送信する(ステップS10~ステップS12参照)。この場合、上述したように、送信機1は、符号化パケットC6(=a61P1+a62P2+a63P3+a64P4+a65P5+a66P6)、符号化パケットC7(=a71P1+a72P2+a73P3+a74P4+a75P5+a76P6)および符号化パケットC8(=a81P1+a82P2+a83P3+a84P4+a85P5+a86P6)を受信機2へ送信する。そして、ここでは、符号化パケットC6における符号a63は、零であるとする。即ち、符号化パケットC6は、実質的に、C6=a61P1+a62P2+a64P4+a65P5+a66P6からなるものとする。
その結果、受信機2は、図12のステップS7において送信された符号化パケットC(例えば、符号化パケットC2)を受信できなくても、ステップS10において送信された符号化パケットC6~C8を受信できる。
そうすると、受信機2の処理手段23は、Nパケットを受信しなかったと判定し(図14のステップS22の“NO”参照)、かつ、結合パケットを受信しなかったと判定し(図14のステップS23の“NO”参照)、符号化パケットC6から受信済のNパケットP2,P4,P5,P6の情報を除去する(図14のステップS28(図16のフローチャートのステップS261~ステップS286)参照)。その結果、処理手段23は、符号化パケットC6’=a61P1を取得する。
そして、処理手段23は、符号化パケットYに含まれていた情報の全てを受信済でないと判定し(図16のステップS287の“NO”参照)、符号化パケットC6’に含まれるNパケット数が“1”であると判定し(図16のステップS288の“YES”参照)、符号化パケットC6’=a61P1を式(13)によってP1に変換して「Nパケット受信処理」(図15に示すフローチャート)を実行する(図16のステップS290参照)。
この場合、「Nパケット受信処理」は、パケットP1に対して初めて実行されるので、処理手段23は、パケットP1のシーケンス番号SNrxが受信済、かつ、アプリケーション30へ送信済のNパケットPKT_Nのシーケンス番号SNsent(即ち、Nバッファ24に格納されたNパケットのシーケンス番号)よりも大きく、かつ、受信パケット(パケットP1)がNバッファ24に格納済でないと判定し(図15のステップS261の“NO”参照)、パケットP1をNバッファ24に格納する(図15のステップS263参照)。この段階で、パケットP1,P2,P4,P5,P6がNバッファ24に格納されている。
そして、処理手段23は、図16のステップS290の後に、復号処理(図14のステップS29参照)の詳細な動作を示す図17のフローチャートにおいてステップS293~ステップS298を複数回繰り返し実行することによって、ステップS294において、符号化パケットC4’(=a41P1+a43P3)からパケットP1の情報を除去し、符号化パケットC7(=a71P1+a72P2+a73P3+a74P4+a75P5+a76P6)からパケットP1,P2,P4,P5,P6の情報を除去し、符号化パケットC8(=a81P1+a82P2+a83P3+a84P4+a85P5+a86P6)からパケットP1,P2,P4,P5,P6の情報を除去する。
このように、新たに取得されたパケットP1(Nパケット)の情報を符号化パケットC4’,C7,C8から除去するために、図14のステップS28において、「Cパケットから受信済のNパケットの情報を除去」することを実行した後に、ステップS29における復号処理の詳細な動作を示す図17のフローチャートのステップS294において「符号化パケットから受信済のパケットXiの情報を除去」することを実行することにしたのである。
この発明の実施の形態においては、送信機1の動作は、ソフトウェアによって実現されてもよい。この場合、送信機1は、CPU(Central Processing Unit)、ROM(Read Only Memory)およびRAM(Random Access Memory)を備える。そして、ROMは、図12に示すフローチャート(図13に示すフローチャートを含む)の各ステップからなるプログラムProg_Aを記憶する。
CPUは、ROMからプログラムProg_Aを読み出し、その読み出したプログラムProg_Aを実行して、パケットを受信機2へ送信する動作を実行する。RAMは、上述したバッファ11の機能を果たす。
また、プログラムProg_Aは、CD,DVD等の記録媒体に記録されて流通してもよい。プログラムProg_Aを記録した記録媒体がコンピュータに装着されると、コンピュータは、記録媒体からプログラムProg_Aを読み出して実行し、パケットを受信機2へ送信する動作を実行する。
従って、プログラムProg_Aを記録した記録媒体は、コンピュータ読み取り可能な記録媒体である。
また、この発明の実施の形態においては、受信機2の動作は、ソフトウェアによって実現されてもよい。この場合、受信機2は、CPU、ROMおよびRAMを備える。そして、ROMは、図14に示すフローチャート(図15から図17に示すフローチャートを含む)の各ステップからなるプログラムProg_Bを記憶する。
CPUは、ROMからプログラムProg_Bを読み出し、その読み出したプログラムProg_Bを実行して、パケットの受信処理を実行する。RAMは、上述したNバッファ24およびCバッファ25の機能を果たす。
また、プログラムProg_Bは、CD,DVD等の記録媒体に記録されて流通してもよい。プログラムProg_Bを記録した記録媒体がコンピュータに装着されると、コンピュータは、記録媒体からプログラムProg_Bを読み出して実行し、パケットの受信処理を実行する。
従って、プログラムProg_Bを記録した記録媒体は、コンピュータ読み取り可能な記録媒体である。
図19は、この発明の実施の形態による別の無線通信システムの概略図である。この発明の実施の形態による無線通信システムは、図19に示す無線通信システム10Aであってもよい。
図19を参照して、無線通信システム10Aは、図1に示す無線通信システム10の送信機1を送信装置100に変えたものであり、その他は、図1に示す無線通信システム10と同じである。
送信装置100は、送信機1Aと、基地局AP_T_1~AP_T_S(Sは、2以上の整数である。)とを含む。
送信機1Aは、図2に示す送信機1と同じ構成からなる。基地局AP_T_1~AP_T_Sは、それぞれ、有線ケーブル3_1~3_Sを介して送信機1Aと接続される。そして、基地局AP_T_1~AP_T_Sは、受信機2との間の通信空間において、相互に異なる通信空間をカバーする通信範囲を有するように配置される。この場合、基地局AP_T_1~AP_T_Sは、受信機2との間で建物等による電波の遮蔽が発生し難い位置に配置される。
送信機1Aは、図12に示すフローチャート(図13に示すフローチャートを含む。)に従って、アプリケーション20からパケットPKTを受信する毎に、上述した方法によって、単体のパケットまたは結合パケットを有線ケーブル3_1~3_Sを介してそれぞれ基地局AP_T_1~AP_T_Sへ送信するとともに、アプリケーション20からパケットPKTを受信しない期間において、符号化パケットを有線ケーブル3_1~3_Sを介してそれぞれ基地局AP_T_1~AP_T_Sへ送信する。
基地局AP_T_1~AP_T_Sは、それぞれ、有線ケーブル3_1~3_Sを介して単体のパケットまたは結合パケットを送信機1Aから受信し、その受信した単体のパケットまたは結合パケットをそれぞれネットワークNW_1~NW_Sを介して受信機2へ送信する。
また、基地局AP_T_1~AP_T_Sは、それぞれ、有線ケーブル3_1~3_Sを介して符号化パケットを送信機1Aから受信し、その受信した符号化パケットをそれぞれネットワークNW_1~NW_Sを介して受信機2へ送信する。
なお、無線通信システム10Aにおいては、受信機2は、それぞれ、ネットワークNW_1~NW_Sを介して基地局AP_T_1~AP_T_Sから単体のパケット、結合パケットおよび符号化パケットを受信し、図14に示すフローチャート(図15から図17に示すフローチャートを含む。)に従って、その受信した単体のパケット、結合パケットおよび符号化パケットに対して、上述した受信処理を実行し、受信処理後のパケットをアプリケーション30へ伝送する。
無線通信システム10Aにおいては、送信装置100は、相互に異なる通信範囲を有する基地局AP_T_1~AP_T_SによってパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を受信機2へ送信するので、受信機2との間で建物等による電波の遮蔽を抑制して、リアルタイムトラフィックを構成するパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を高い信頼性で迅速に受信機2へ送信できる。
図20は、この発明の実施の形態による更に別の無線通信システムの概略図である。この発明の実施の形態による無線通信システムは、図20に示す無線通信システム10Bであってもよい。
図20を参照して、無線通信システム10Bは、図1に示す無線通信システム10の受信機2を受信装置200に変えたものであり、その他は、図1に示す無線通信システム10と同じである。
受信装置200は、基地局AP_R_1~AP_R_Sと、受信機2Aとを含む。
受信機2Aは、図3に示す受信機2と同じ構成からなる。基地局AP_R_1~AP_R_Sは、それぞれ、有線ケーブル4_1~4_Sを介して受信機2Aと接続される。そして、基地局AP_R_1~AP_R_Sは、送信機1との間の通信空間において、相互に異なる通信空間をカバーする通信範囲を有するように配置される。この場合、基地局AP_R_1~AP_R_Sは、送信機1との間で建物等による電波の遮蔽が発生し難い位置に配置される。
基地局AP_R_1~AP_R_Sは、それぞれ、ネットワークNW_1~NW_Sを介してパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を受信し、その受信したパケットPKT(単体のパケット、結合パケットおよび符号化パケット)をそれぞれ有線ケーブル4_1~4_Sを介して受信機2Aへ送信する。
受信機2Aは、それぞれ、有線ケーブル4_1~4_Sを介してパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を受信し、図14に示すフローチャート(図15から図17に示すフローチャートを含む。)に従って、その受信したパケットPKT(単体のパケット、結合パケットおよび符号化パケット)に対して、上述した受信処理を実行し、受信処理後のパケットをアプリケーション30へ伝送する。
無線通信システム10Bにおいては、受信装置200は、相互に異なる通信範囲を有する基地局AP_R_1~AP_R_SによってパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を送信機1から受信するので、建物等による電波の遮蔽を抑制して、リアルタイムトラフィックを構成するパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を高い信頼性で迅速に送信機1から受信できる。
図21は、この発明の実施の形態による更に別の無線通信システムの概略図である。この発明の実施の形態による無線通信システムは、図21に示す無線通信システム10Cであってもよい。
図21を参照して、無線通信システム10Cは、送信装置100と、受信装置200とを備える。送信装置100の構成については、図19において説明した通りである。また、受信装置200の構成については、図20において説明した通りである。
無線通信システム10Cにおいては、基地局AP_T_1~AP_T_Sは、それぞれ、基地局AP_R_1~AP_R_Sに対応して設けられる。その結果、基地局AP_T_1および基地局AP_R_1は、通信性能が良い通信空間を介してパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を送受信できる位置に配置される。つまり、基地局AP_T_1および基地局AP_R_1は、1対1の通信を行うので、基地局AP_T_1は、基地局AP_R_2~AP_R_Sの配置位置を考慮せずに基地局AP_R_1との間で良い通信性能が得られる位置に配置され、基地局AP_R_1は、基地局AP_T_2~AP_T_Sの配置位置を考慮せずに基地局AP_T_1との間で良い通信性能が得られる位置に配置される。基地局AP_T_2および基地局AP_R_2、・・・、基地局AP_T_Sおよび基地局AP_R_Sについても同様である。
送信機1Aは、図12に示すフローチャート(図13に示すフローチャートを含む。)に従って、アプリケーション20からパケットPKTを受信する毎に、その受信したパケットPKTに対して、上述した処理を実行してそれぞれ有線ケーブル3_1~3_Sを介してパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を基地局AP_T_1~AP_T_Sへ送信する。
基地局AP_T_1は、送信機1Aから有線ケーブル3_1を介してパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を受信し、その受信したパケットPKT(単体のパケット、結合パケットおよび符号化パケット)をネットワークNW_1を介して基地局AP_R_1へ送信する。
また、基地局AP_T_2は、送信機1Aから有線ケーブル3_2を介してパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を受信し、その受信したパケットPKT(単体のパケット、結合パケットおよび符号化パケット)をネットワークNW_2を介して基地局AP_R_2へ送信する。
以下、同様にして、基地局AP_T_Sは、送信機1Aから有線ケーブル3_Sを介してパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を受信し、その受信したパケットPKT(単体のパケット、結合パケットおよび符号化パケット)をネットワークNW_Sを介して基地局AP_R_Sへ送信する。
基地局AP_R_1は、ネットワークNW_1を介してパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を基地局AP_T_1から受信し、その受信したパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を有線ケーブル4_1を介して受信機2Aへ送信する。
また、基地局AP_R_2は、ネットワークNW_2を介してパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を基地局AP_T_2から受信し、その受信したパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を有線ケーブル4_2を介して受信機2Aへ送信する。
以下、同様にして、基地局AP_R_Sは、ネットワークNW_Sを介してパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を基地局AP_T_Sから受信し、その受信したパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を有線ケーブル4_Sを介して受信機2Aへ送信する。
受信機2Aは、それぞれ、有線ケーブル4_1~4_Sを介して基地局AP_R_1~AP_R_SからパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を受信し、図14に示すフローチャート(図15から図17に示すフローチャートを含む。)に従って、その受信したパケットPKT(単体のパケット、結合パケットおよび符号化パケット)に対して、上述した受信処理を実行し、受信処理後のパケットをアプリケーション30へ伝送する。
無線通信システム10Cにおいては、基地局AP_T_1と基地局AP_R_1との間、基地局AP_T_2と基地局AP_R_2との間、・・・、基地局AP_T_Sと基地局AP_R_Sとの間でパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を送受信するので、無線通信システム10A,10Bよりも高い信頼性で迅速にリアルタイムトラフィックを構成するパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を送受信できる。
図22は、図1に示す無線通信システム10の別の適用例を示す図である。図22を参照して、受信機2およびアプリケーション30は、車両および電車内に配置される。送信機1は、アプリケーション20からのパケットPKTを車両および電車へブロードキャストする。
受信機2は、送信機1からのパケットPKTを受信して受信処理を実行した後、パケットPKTをアプリケーション30へ伝送する。アプリケーション30は、画像を再生して表示部に表示する。これによって、車両および電車の運転手は、再生された画像をリアルタイムに見ることができる。
また、上述した送信機1は、基地局内に設置され、受信機2は、基地局の通信範囲内において基地局からパケットを受信する端末装置内に設置されてもよい。これによって、端末装置は、基地局から送信されたリアルタイムトラフィックを構成するパケットを、遅延を抑制して受信し、その受信したパケットに含まれる画像を再生して表示部に表示する。従って、端末装置のユーザは、高い信頼性で画像をリアルタイムに見ることができる。
上記においては、送信機1は、画像を受信機2へ送信すると説明したが、この発明の実施の形態においては、これに限らず、送信機1は、バーストを構成するパケットと、バーストを構成しないパケットとを送信するものであれば、画像以外の情報をペイロードに含むパケットを受信機2へ送信してもよい。
この発明の実施の形態においては、Nパケットは、「単体パケット」を構成し、符号化パケットC2,C4の各々は、「第1の符号化パケット」を構成し、符号化パケットC6~C8の各々は、「第2の符号化パケット」を構成し、符号化パケットC4’,C6’等の符号化パケットC4,C6から受信済のパケットの情報を除去した後の符号化パケットは、「第3の符号化パケット」を構成する。
また、この発明の実施の形態においては、P2/C1,P3/C2,P4/C3,P5/C4,P6/C5の各々は、「結合パケット」を構成する。
更に、この発明の実施の形態においては、Nパケットを送信する処理は、「第1の送信処理」を構成し、P2/C1,P3/C2,P4/C3,P5/C4,P6/C5の各々を送信する処理は、「第2の送信処理」を構成し、符号化パケットC6~C8の各々を単独で送信する処理は、「第3の送信処理」を構成する。
更に、この発明の実施の形態においては、Tミリ秒は、「しきい値」を構成する。
更に、この発明の実施の形態においては、Nバッファ24は、「第1の受信バッファ」を構成し、Cバッファ25は、「第2の受信バッファ」を構成する。
更に、この発明の実施の形態においては、P3/C2をパケットP3と符号化パケットC2に分離し、P5/C4をパケットP5と符号化パケットC4に分離し、P6/C5をパケットP6と符号化パケットC5に分離する処理手段23は、「分離手段」を構成する。
更に、この発明の実施の形態においては、図15のステップS261において、SNrx≦SNsentでなく、かつ、受信パケットがNバッファ24に格納済でないときに受信パケット(SNrx)をNバッファ24に格納するとともにNバッファ24に格納されたパケットをアプリケーション30へ伝送する処理手段23は、「第1の処理手段」を構成する。
更に、この発明の実施の形態においては、符号化パケットCから受信済のパケットの情報を除去した符号化パケットC4’,C6’を生成することは、Nバッファ24に格納されていない複数のパケットのみを含む符号化パケットを生成することに相当する。そして、符号化パケットCから受信済のパケットの情報を除去した符号化パケットC4’,C6’を生成する処理手段23は、「第2の処理手段」を構成する。
更に、この発明の実施の形態においては、図14のステップS29における復号処理を実行する処理手段23は、「復号手段」を構成する。
更に、この発明の実施の形態においては、図1に示す送信機1は、「送信装置」を構成し、図1に示す受信機2は、「受信装置」を構成する。従って、この発明の実施の形態による送信装置は、送信機1または送信装置100によって構成され、この発明の実施の形態による受信装置は、受信機2または受信装置200によって構成される。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。