(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-05
(45)【発行日】2024-12-13
(54)【発明の名称】送信装置、受信装置、これらを備えた無線通信システム、プログラムおよびプログラムを記録したコンピュータ読み取り可能な記録媒体
(51)【国際特許分類】
H04W 74/04 20090101AFI20241206BHJP
【FI】
H04W74/04
(21)【出願番号】P 2021012882
(22)【出願日】2021-01-29
【審査請求日】2023-12-15
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和2年度支出負担行為担当官、総務省大臣官房会計課企画官、研究テーマ「高ノイズ環境における周波数共用のための適応メディアアクセス制御に関する研究開発」に関する委託研究、産業技術力強化法第17条の摘用を受ける特許出願
(73)【特許権者】
【識別番号】393031586
【氏名又は名称】株式会社国際電気通信基礎技術研究所
(74)【代理人】
【識別番号】100112715
【氏名又は名称】松山 隆夫
(72)【発明者】
【氏名】近藤 良久
(72)【発明者】
【氏名】四方 博之
(72)【発明者】
【氏名】横山 浩之
【審査官】石田 信行
(56)【参考文献】
【文献】特表2016-514409(JP,A)
【文献】特開2010-093738(JP,A)
【文献】特表2003-516682(JP,A)
【文献】Xianwei Gong, et al.,Proposed text for network coding based retransmission for EMBS,IEEE C802.16m-09/2340 ,IEEE インターネット<URL:http://www.ieee802.org/16/tgm/docs/C80216m-09_2340.doc>,2009年11月09日
(58)【調査した分野】(Int.Cl.,DB名)
H04W 4/00 - 99/00
H04B 7/24 - 7/26
(57)【特許請求の範囲】
【請求項1】
リアルタイムトラフィックを構成するパケットをアプリケーションから受信し、その受信したパケットを送信する送信装置であって、
送信用パケットを格納するための送信バッファと、
前記パケットに対して送信用の処理を実行する処理手段と、
前記処理手段から受けたパケットを送信する送信手段とを備え、
前記処理手段は、前記パケットが第1の時間間隔で当該送信装置に到着する第1の単体パケットであるとき、前記第1の単体パケットが当該送信装置に到着すると、前記第1の単体パケットを前記送信バッファにコピーするとともに前記第1の単体パケットを前記送信手段へ出力する第1の処理を実行し、前記パケットが前記第1の時間間隔よりも短い第2の時間間隔で連続して当該送信装置に到着する複数の単体パケットであるとき、前記複数の単体パケットのうちの最初に当該送信装置に到着した単体パケット以外の単体パケットから選択された第2の単体パケットが当該送信装置に到着すると、前記第2の単体パケットを前記送信バッファにコピーし、前記第2の単体パケットよりも早く当該送信装置に到着した単体パケットを含む第1の符号化パケットを前記第2の単体パケットに付与した結合パケットを生成するとともに前記結合パケットを前記送信手段へ出力する第2の処理を実行し、前記複数の単体パケットに含まれ、かつ、前記第2の単体パケット以外の単体パケットである第3の単体パケットが当該送信装置に到着すると、前記第3の単体パケットに対して前記第1の処理を実行し、前記複数の単体パケットのうちの最後の単体パケットが当該送信装置に到着したと判定すると、前記最後の単体パケットを前記送信バッファにコピーし、前記最後の単体パケットが前記第2の単体パケットに該当するとき前記最後の単体パケットに対して前記第2の処理を実行し、前記最後の単体パケットが前記第3の単体パケットに該当するとき前記最後の単体パケットに対して前記第1の処理を実行し、前記最後の単体パケットが当該送信装置に到着したと判定したタイミングから所定の時間が経過すると、前記送信バッファに格納された全ての単体パケットを含む第2の符号化パケットを生成して前記送信手段へ出力する第3の処理を実行し、
前記送信手段は、前記第1の単体パケットを前記処理手段から受けると、その受けた第1の単体パケットを単独で送信する第1の送信処理を実行し、前記結合パケットを前記処理手段から受けると、その受けた結合パケットを送信する第2の送信処理を実行し、前記第3の単体パケットまたは前記最後の単体パケットを前記処理手段から受けると、その受けた第3の単体パケットまたは最後の単体パケットに対して第1の送信処理を実行し、前記第2の符号化パケットを前記処理手段から受けると、その受けた第2の符号化パケットを単独で送信する第3の送信処理を実行する、送信装置。
【請求項2】
前記処理手段は、前記第2の処理において、
前記第2の単体パケットまたは前記最後の単体パケットよりも早く当該送信装置に到着した単体パケットのうちで最後に当該送信装置に到着した単体パケットである第4の単体パケットが当該送信装置に到着すると、前記第4の単体パケットが前記送信手段によって送信された後に、前記第2の単体パケットまたは前記最後の単体パケットよりも早く当該送信装置に到着した単体パケットを含む前記第1の符号化パケットを生成する第1のサブ処理を実行し、前記第1のサブ処理を実行した後に、前記第2の単体パケットまたは前記最後の単体パケットが当該送信装置に到着すると、前記第1の符号化パケットを前記第2の単体パケットまたは前記最後の単体パケットに付与して前記結合パケットを生成して前記送信手段へ出力する第2のサブ処理を実行する、請求項1に記載の送信装置。
【請求項3】
前記処理手段は、前記第2の処理において、前記第2の単体パケットがa(aは、1以上の整数である。)個の単体パケットからなるとき、前記a個の単体パケットの各々について、前記第1および第2のサブ処理を実行する、請求項2に記載の送信装置。
【請求項4】
前記処理手段は、前記符号化パケットの初期値を所定長の零からなるY
0とし、前記送信用バッファから取り出したパケットをX
i(i=1,2,・・・,I、Iは、前記第1の符号化パケットまたは前記第2の符号化パケットを生成するときに前記送信用バッファに格納されているパケットの総数)とし、所定長の乱数をC
iとし、符号化パケットをY
iとしたとき、前記所定長の乱数C
iを前記パケットX
iに乗算した乗算結果C
i・X
iとY
i-1との排他的論理和の演算を全てのiについて実行することによって得られた符号化パケットY
iを前記第1の符号化パケットまたは前記第2の符号化パケットとして生成する、請求項1から請求項3のいずれか1項に記載の送信装置。
【請求項5】
前記送信手段と有線ケーブルによって接続された複数の基地局を更に備え、
前記複数の基地局は、前記第1の単体パケット、前記結合パケット、前記第3の単体パケット、前記最後の単体パケットおよび前記第2の符号化パケットを前記送信手段から前記有線ケーブルを介して受信し、その受信した第1の単体パケット、結合パケット、第3の単体パケット、最後の単体パケットおよび第2の符号化パケットを相互に異なる通信経路によって送信する、請求項1から請求項4のいずれか1項に記載の送信装置。
【請求項6】
請求項1から請求項5のいずれか1項に記載の送信装置からパケットを受信する受信装置であって、
単体パケットを格納するための第1の受信バッファと、
符号化パケットを格納するための第2の受信バッファと、
前記第1および第3の単体パケット、前記結合パケット、および前記第2の符号化パケットを受信する受信手段と、
前記結合パケットを前記第1の符号化パケットと前記第2の単体パケットとに分離する分離手段と、
前記第1の単体パケットまたは前記第3の単体パケットのうち、前記第1の受信バッファに格納されていない単体パケットまたは受信済でない単体パケットを前記第1の受信バッファに格納するとともに前記第1の受信バッファに格納された単体パケットを前記送信装置からパケットによって送信された情報を利用するアプリケーションへ伝送する受信処理を実行する第1の処理手段と、
前記受信手段によって受信された符号化パケットに基づいて、前記第1の受信バッファに格納されていない複数の単体パケットのみを含む第3の符号化パケットを生成し、その生成した第3の符号化パケットを前記第2の受信バッファに格納する処理を前記第1および第2の符号化パケットの全てについて実行する第2の処理手段と、
前記第2の受信バッファから複数の前記第3の符号化パケットを読み出し、その読み出した複数の第3の符号化パケットについての連立方程式を解いて前記複数の第3の符号化パケットを復号する復号処理を実行する復号手段とを備え、
前記第1の処理手段は、前記復号手段によって復号された単体パケットに対して前記受信処理を更に実行する、受信装置。
【請求項7】
前記第2の処理手段は、前記受信手段によって受信された符号化パケットから前記第1の受信バッファに格納された単体パケットの情報を除去することによって前記第3の符号化パケットを生成する、請求項6に記載の受信装置。
【請求項8】
前記第2の処理手段は、前記第1の受信バッファに格納された単体パケットが前記受信手段によって受信された符号化パケットに含まれると判定したとき、前記受信手段によって受信された符号化パケットから前記第3の符号化パケットを生成する、請求項7に記載の受信装置。
【請求項9】
前記第2の処理手段は、前記受信手段によって受信された符号化パケットから前記第1の受信バッファに格納された単体パケットの情報を除去した後の符号化パケットが1個の単体パケットを含むとき、更に、前記1個の単体パケットを含む符号化パケットを前記第2の受信バッファから消去し、
前記第1の処理手段は、前記1個の単体パケットを含む符号化パケットを単体パケットに変換し、その変換した単体パケットに対して前記受信処理を実行する、請求項7または請求項8に記載の受信装置。
【請求項10】
前記受信手段と有線ケーブルによって接続され、前記送信装置から送信されたパケットを相互に異なる複数の通信経路を介して受信する複数の基地局を更に備え、
前記複数の基地局の各々は、前記受信したパケットを前記有線ケーブルを介して前記受信手段へ出力する、請求項6から請求項9のいずれか1項に記載の受信装置。
【請求項11】
請求項1から請求項5のいずれか1項に記載の送信装置と、
請求項6から請求項10のいずれか1項に記載の受信装置とを備える無線通信システム。
【請求項12】
リアルタイムトラフィックを構成するパケットをアプリケーションから受信する送信装置において前記パケットの送信をコンピュータに実行させるためのプログラムであって、
処理手段が、前記パケットに対して送信用の処理を実行する第1のステップと、
送信手段が、前記処理手段から受けたパケットを送信する第2のステップとをコンピュータに実行させ、
前記処理手段は、前記第1のステップにおいて、前記パケットが第1の時間間隔で前記送信装置に到着する第1の単体パケットであるとき、前記第1の単体パケットが前記送信装置に到着すると、送信用のパケットを格納するための送信バッファに前記第1の単体パケットをコピーするとともに前記第1の単体パケットを前記送信手段へ出力する第1の処理を実行し、前記パケットが前記第1の時間間隔よりも短い第2の時間間隔で連続して前記送信装置に到着する複数の単体パケットであるとき、前記複数の単体パケットのうちの最初に前記送信装置に到着した単体パケット以外の単体パケットから選択された第2の単体パケットが前記送信装置に到着すると、前記第2の単体パケットを前記送信バッファにコピーし、前記第2の単体パケットよりも早く前記送信装置に到着した単体パケットを含む第1の符号化パケットを前記第2の単体パケットに付与した結合パケットを生成するとともに前記結合パケットを前記送信手段へ出力する第2の処理を実行し、前記複数の単体パケットに含まれ、かつ、前記第2の単体パケット以外の単体パケットである第3の単体パケットが前記送信装置に到着すると、前記第3の単体パケットに対して前記第1の処理を実行し、前記複数の単体パケットのうちの最後の単体パケットが前記送信装置に到着したと判定すると、前記最後の単体パケットを前記送信バッファにコピーし、前記最後の単体パケットが前記第2の単体パケットに該当するとき前記最後の単体パケットに対して前記第2の処理を実行し、前記最後の単体パケットが前記第3の単体パケットに該当するとき前記最後の単体パケットに対して前記第1の処理を実行し、前記最後の単体パケットが前記送信装置に到着したと判定したタイミングから所定の時間が経過すると、前記送信バッファに格納された全ての単体パケットを含む第2の符号化パケットを生成して前記送信手段へ出力する第3の処理を実行し、
前記送信手段は、前記第2のステップにおいて、前記第1の単体パケットを前記処理手段から受けると、その受けた第1の単体パケットを単独で送信する第1の送信処理を実行し、前記結合パケットを前記処理手段から受けると、その受けた結合パケットを送信する第2の送信処理を実行し、前記第3の単体パケットまたは前記最後の単体パケットを前記処理手段から受けると、その受けた第3の単体パケットまたは最後の単体パケットに対して第1の送信処理を実行し、前記第2の符号化パケットを前記処理手段から受けると、その受けた第2の符号化パケットを単独で送信する第3の送信処理を実行する、コンピュータに実行させるためのプログラム。
【請求項13】
前記処理手段は、前記第1のステップの前記第2の処理において、
前記第2の単体パケットまたは前記最後の単体パケットよりも早く前記送信装置に到着した単体パケットのうちで最後に前記送信装置に到着した単体パケットである第4の単体パケットが前記送信装置に到着すると、前記第4の単体パケットが前記送信手段によって送信された後に、前記第2の単体パケットまたは前記最後の単体パケットよりも早く前記送信装置に到着した単体パケットを含む前記第1の符号化パケットを生成する第1のサブ処理を実行し、前記第1のサブ処理を実行した後に、前記第2の単体パケットまたは前記最後の単体パケットが前記送信装置に到着すると、前記第1の符号化パケットを前記第2の単体パケットまたは前記最後の単体パケットに付与して前記結合パケットを生成して前記送信手段へ出力する第2のサブ処理を実行する、請求項12に記載のコンピュータに実行させるためのプログラム。
【請求項14】
前記処理手段は、前記第1のステップの前記第2の処理において、前記第2の単体パケットがa(aは、1以上の整数である。)個の単体パケットからなるとき、前記a個の単体パケットの各々について、前記第1および第2のサブ処理を実行する、請求項13に記載のコンピュータに実行させるためのプログラム。
【請求項15】
前記処理手段は、前記符号化パケットの初期値を所定長の零からなるY
0とし、前記送信用バッファから取り出したパケットをX
i(i=1,2,・・・,I、Iは、前記第1の符号化パケットまたは前記第2の符号化パケットを生成するときに前記送信用バッファに格納されているパケットの総数)とし、所定長の乱数をC
iとし、符号化パケットをY
iとしたとき、前記所定長の乱数C
iを前記パケットX
iに乗算した乗算結果C
i・X
iとY
i-1との排他的論理和の演算を全てのiについて実行することによって得られた符号化パケットY
iを前記第1の符号化パケットまたは前記第2の符号化パケットとして生成する、請求項12から請求項14のいずれか1項に記載のコンピュータに実行させるためのプログラム。
【請求項16】
前記送信手段は、前記第2のステップにおいて、有線ケーブルを介して、前記第1の単体パケット、前記結合パケット、前記第3の単体パケット、前記最後の単体パケットおよび前記第2の符号化パケットを複数の基地局へ送信し、
前記複数の基地局は、前記第1の単体パケット、前記結合パケット、前記第3の単体パケット、前記最後の単体パケットおよび前記第2の符号化パケットを前記送信手段から前記有線ケーブルを介して受信し、その受信した第1の単体パケット、結合パケット、第3の単体パケット、最後の単体パケットおよび第2の符号化パケットを相互に異なる通信経路によって送信する、請求項12から請求項15のいずれか1項に記載のコンピュータに実行させるためのプログラム。
【請求項17】
請求項12から請求項16のいずれか1項に記載のプログラムをコンピュータに実行させることによって送信されたパケットの受信をコンピュータに実行させるためのプログラムであって、
受信手段が、前記第1および第3の単体パケット、前記結合パケット、および前記第2の符号化パケットを受信する第1のステップと、
分離手段が、前記結合パケットを前記第1の符号化パケットと前記第2の単体パケットとに分離する第2のステップと、
第1の処理手段が、前記第1の単体パケットまたは前記第3の単体パケットのうち、第1の受信バッファに格納されていない単体パケットまたは受信済でない単体パケットを前記第1の受信バッファに格納するとともに前記第1の受信バッファに格納された単体パケットを前記パケットによって送信された情報を利用するアプリケーションへ伝送する受信処理を実行する第3のステップと、
第2の処理手段が、前記第1のステップにおいて受信された符号化パケットに基づいて、前記第1の受信バッファに格納されていない複数の単体パケットのみを含む第3の符号化パケットを生成し、その生成した第3の符号化パケットを第2の受信バッファに格納する処理を前記第1および第2の符号化パケットの全てについて実行する第4のステップと、
復号手段が、前記第2の受信バッファから複数の前記第3の符号化パケットを読み出し、その読み出した複数の第3の符号化パケットについての連立方程式を解いて前記複数の第3の符号化パケットを復号する復号処理を実行する第5のステップとをコンピュータに実行させ、
前記第1の処理手段は、前記第3のステップにおいて、前記復号手段によって復号された単体パケットに対して前記受信処理を更に実行する、コンピュータに実行させるためのプログラム。
【請求項18】
前記第2の処理手段は、前記第4のステップにおいて、前記第1のステップにおいて受信された符号化パケットから前記第1の受信バッファに格納された単体パケットの情報を除去することによって前記第3の符号化パケットを生成する、請求項17に記載のコンピュータに実行させるためのプログラム。
【請求項19】
前記第2の処理手段は、前記第4のステップにおいて、前記第1の受信バッファに格納された単体パケットが前記第1のステップにおいて受信された符号化パケットに含まれると判定したとき、前記第1のステップにおいて受信された符号化パケットから前記第3の符号化パケットを生成する、請求項18に記載のコンピュータに実行させるためのプログラム。
【請求項20】
前記第2の処理手段は、前記第4のステップにおいて、前記第1のステップにおいて受信された符号化パケットから前記第1の受信バッファに格納された単体パケットの情報を除去した後の符号化パケットが1個の単体パケットを含むとき、更に、前記1個の単体パケットを含む符号化パケットを前記第1の受信バッファから消去し、
前記第1の処理手段は、前記第3のステップにおいて、前記1個の単体パケットを含む符号化パケットを単体パケットに変換し、その変換した単体パケットに対して前記受信処理を実行する、請求項18または請求項19に記載のコンピュータに実行させるためのプログラム。
【請求項21】
請求項12から請求項20のいずれか1項に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、送信装置、受信装置、これらを備えた無線通信システム、プログラムおよびプログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【0002】
非特許文献1は、送信対象である複数のパケットが揃った時点で複数のパケットを複数の経路で伝送することを開示する。
【0003】
また、非特許文献2は、送信対象である複数のパケットが揃った時点でウィンドウを複数のパケットに対してスライディングさせながら複数のパケットを送信することによって低遅延化を試行することを開示する。
【0004】
更に、特許文献1は、多対多の通信において、複数のパケットをネットワークコーディングし、そのネットワークコーディングしたコーディングパケットをブロードキャストすることによってパケットの到達率を向上することを開示する。
【0005】
より具体的には、無線装置TM_1~TM_6は、1番目の周期において、それぞれ、シーケンス番号Seq=1の単一のパケットPKT1(1)~PKT6(1)を生成してブロードキャストする。その後、無線装置TM_1~TM_6は、2番目の周期において、シーケンス番号Seq=1のパケットPKT1(1)~PKT6(1)をネットワークコーディングしたコーディングパケットと、シーケンス番号Seq=2の単一のパケットとの結合パケットを生成してブロードキャストする。更に、無線装置TM_1~TM_6は、3番目の周期において、シーケンス番号Seq=2のパケットPKT1(2)~PKT6(2)をネットワークコーディングしたコーディングパケットと、シーケンス番号Seq=3の単一のパケットとの結合パケットを生成してブロードキャストする。そして、無線装置TM_1~TM_6は、これを繰り返し行う。
【0006】
このように、特許文献1は、無線装置TM_1~TM_6の各々が自己で生成したパケットと他の無線装置から受信したパケットとをネットワークコーディングしてコーディングパケットを生成することを開示する。つまり、特許文献1は、ネットワークコーディングの対象となるパケットが既知である場合において、複数のパケットをネットワークコーディングしてコーディングパケットを生成することを開示する。
【先行技術文献】
【特許文献】
【0007】
【非特許文献】
【0008】
【文献】https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=57535 67&casa_token=NlznD3EhwnsAAAAA:GxTWt9heKzlvg0G6nUoIhPijCKnV26EoCsg0jRrjm7ZFijLql TaT7s_IXCxZ4H7bK8IfHn-nQA
【文献】https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=88267 10&casa_token=zouNIPn0UqgAAAAA:aoV6VQxo79INnWaVIlTKDcxSkeH_nrWGEnZxVxbZYgxRlUaY899uw4fe9yeW-P-MmdxEFHu5QQ
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかし、非特許文献1,2に記載の通信方法は、複数のパケットの到着を待ってから処理する方法であるため、バーストを構成する複数のパケットを非特許文献1,2に記載の通信方法によって送信した場合、遅延が生じてしまう。
【0010】
また、バーストの開始および/または終了を知ることはできないため、特許文献1に記載の方法では、パケットのネットワークコーディング(符号化)を効率的に行うことが困難である。
【0011】
そこで、この発明の実施の形態によれば、バーストを構成する複数のパケットを低遅延で送信可能な送信装置を提供する。
【0012】
また、この発明の実施の形態によれば、バーストを構成する複数のパケットを低遅延で送信可能な送信装置からパケットを受信する受信装置を提供する。
【0013】
更に、この発明の実施の形態によれば、バーストを構成する複数のパケットを低遅延で送信可能な送信装置と、バーストを構成する複数のパケットを低遅延で送信可能な送信装置からパケットを受信する受信装置とを備える無線通信システムを提供する。
【0014】
更に、この発明の実施の形態によれば、バーストを構成する複数のパケットの低遅延な送信をコンピュータに実行させるためのプログラムを提供する。
【0015】
更に、この発明の実施の形態によれば、バーストを構成する複数のパケットの低遅延な送信によって送信されたパケットの受信をコンピュータに実行させるためのプログラムを提供する。
【0016】
更に、この発明の実施の形態によれば、バーストを構成する複数のパケットの低遅延な送信をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体を提供する。
【0017】
更に、この発明の実施の形態によれば、バーストを構成する複数のパケットの低遅延な送信によって送信されたパケットの受信をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体を提供する。
【課題を解決するための手段】
【0018】
(構成1)
この発明の実施の形態によれば、送信装置は、リアルタイムトラフィックを構成するパケットをアプリケーションから受信し、その受信したパケットを送信する送信装置であって、送信用バッファと、処理手段と、送信手段とを備える。送信用バッファは、送信用パケットを格納するためのバッファである。処理手段は、パケットに対して送信用の処理を実行する。送信手段は、処理手段から受けたパケットを送信する。そして、処理手段は、パケットが第1の時間間隔で当該送信装置に到着する第1の単体パケットであるとき、第1の単体パケットが当該送信装置に到着すると、第1の単体パケットを送信バッファにコピーするとともに第1の単体パケットを送信手段へ出力する第1の処理を実行し、パケットが第1の時間間隔よりも短い第2の時間間隔で連続して当該送信装置に到着する複数の単体パケットであるとき、複数の単体パケットのうちの最初に当該送信装置に到着した単体パケット以外の単体パケットから選択された第2の単体パケットが当該送信装置に到着すると、第2の単体パケットを送信バッファにコピーし、第2の単体パケットよりも早く当該送信装置に到着した単体パケットを含む第1の符号化パケットを第2の単体パケットに付与した結合パケットを生成するとともに結合パケットを送信手段へ出力する第2の処理を実行し、複数の単体パケットに含まれ、かつ、第2の単体パケット以外の単体パケットである第3の単体パケットが当該送信装置に到着すると、第3の単体パケットに対して第1の処理を実行し、複数の単体パケットのうちの最後の単体パケットが当該送信装置に到着したと判定すると、最後の単体パケットを送信バッファにコピーし、最後の単体パケットが第2の単体パケットに該当するとき最後の単体パケットに対して第2の処理を実行し、最後の単体パケットが第3の単体パケットに該当するとき最後の単体パケットに対して第1の処理を実行し、最後の単体パケットが当該送信装置に到着したと判定したタイミングから所定の時間が経過すると、送信バッファに格納された全ての単体パケットを含む第2の符号化パケットを生成して送信手段へ出力する第3の処理を実行する。また、送信手段は、第1の単体パケットを処理手段から受けると、その受けた第1の単体パケットを単独で送信する第1の送信処理を実行し、結合パケットを処理手段から受けると、その受けた結合パケットを送信する第2の送信処理を実行し、第3の単体パケットまたは最後の単体パケットを処理手段から受けると、その受けた第3の単体パケットまたは最後の単体パケットに対して第1の送信処理を実行し、第2の符号化パケットを処理手段から受けると、その受けた第2の符号化パケットを単独で送信する第3の送信処理を実行する。
【0019】
(構成2)
構成1において、処理手段は、第2の処理において、第2の単体パケットまたは最後の単体パケットよりも早く当該送信装置に到着した単体パケットのうちで最後に当該送信装置に到着した単体パケットである第4の単体パケットが当該送信装置に到着すると、第4の単体パケットが送信手段によって送信された後に、第2の単体パケットまたは最後の単体パケットよりも早く当該送信装置に到着した単体パケットを含む第1の符号化パケットを生成する第1のサブ処理を実行し、第1のサブ処理を実行した後に、第2の単体パケットまたは最後の単体パケットが当該送信装置に到着すると、第1の符号化パケットを第2の単体パケットまたは最後の単体パケットに付与して結合パケットを生成して送信手段へ出力する第2のサブ処理を実行する。
【0020】
(構成3)
構成2において、処理手段は、第2の処理において、第2の単体パケットがa(aは、1以上の整数である。)個の単体パケットからなるとき、a個の単体パケットの各々について、第1および第2のサブ処理を実行する。
【0021】
(構成4)
構成1から構成3のいずれかにおいて、処理手段は、符号化パケットの初期値を所定長の零からなるY0とし、送信用バッファから取り出したパケットをXi(i=1,2,・・・,I、Iは、第1の符号化パケットまたは第2の符号化パケットを生成するときに送信用バッファに格納されているパケットの総数)とし、所定長の乱数をCiとし、符号化パケットをYiとしたとき、所定長の乱数CiをパケットXiに乗算した乗算結果Ci・XiとYi-1との排他的論理和の演算を全てのiについて実行することによって得られた符号化パケットYiを第1の符号化パケットまたは第2の符号化パケットとして生成する。
【0022】
(構成5)
構成1から構成4のいずれかにおいて、送信装置は、複数の基地局を更に備える。複数の基地局は、送信手段と有線ケーブルによって接続される。そして、複数の基地局は、第1の単体パケット、結合パケット、第3の単体パケット、最後の単体パケットおよび第2の符号化パケットを送信手段から有線ケーブルを介して受信し、その受信した第1の単体パケット、結合パケット、第3の単体パケット、最後の単体パケットおよび第2の符号化パケットを相互に異なる通信経路によって送信する。
【0023】
(構成6)
また、この発明の実施の形態によれば、受信装置は、構成1から構成5のいずれかに記載の送信装置からパケットを受信する受信装置であって、第1の受信バッファと、第2の受信バッファと、受信手段と、分離手段と、第1の処理手段と、第2の処理手段と、復号手段とを備える。第1の受信バッファは、単体パケットを格納するためのバッファである。第2の受信バッファは、符号化パケットを格納するためのバッファである。受信手段は、第1および第3の単体パケット、結合パケット、および第2の符号化パケットを受信する。分離手段は、結合パケットを第1の符号化パケットと第2の単体パケットとに分離する。第1の処理手段は、第1の単体パケットまたは第3の単体パケットのうち、第1の受信バッファに格納されていない単体パケットまたは受信済でない単体パケットを第1の受信バッファに格納するとともに第1の受信バッファに格納された単体パケットを送信装置からパケットによって送信された情報を利用するアプリケーションへ伝送する受信処理を実行する。第2の処理手段は、受信手段によって受信された符号化パケットに基づいて、第1の受信バッファに格納されていない複数の単体パケットのみを含む第3の符号化パケットを生成し、その生成した第3の符号化パケットを第2の受信バッファに格納する処理を第1および第2の符号化パケットの全てについて実行する。復号手段は、第2の受信バッファから複数の第3の符号化パケットを読み出し、その読み出した複数の第3の符号化パケットについての連立方程式を解いて複数の第3の符号化パケットを復号する復号処理を実行する。そして、第1の処理手段は、復号手段によって復号された単体パケットに対して受信処理を更に実行する。
【0024】
(構成7)
構成6において、第2の処理手段は、受信手段によって受信された符号化パケットから第1の受信バッファに格納された単体パケットの情報を除去することによって第3の符号化パケットを生成する。
【0025】
(構成8)
構成7において、第2の処理手段は、第1の受信バッファに格納された単体パケットが受信手段によって受信された符号化パケットに含まれると判定したとき、受信手段によって受信された符号化パケットから第3の符号化パケットを生成する。
【0026】
(構成9)
構成7または構成8において、第2の処理手段は、受信手段によって受信された符号化パケットから第1の受信バッファに格納された単体パケットの情報を除去した後の符号化パケットが1個の単体パケットを含むとき、更に、1個の単体パケットを含む符号化パケットを第2の受信バッファから消去する。第1の処理手段は、1個の単体パケットを含む符号化パケットを単体パケットに変換し、その変換した単体パケットに対して受信処理を実行する。
【0027】
(構成10)
構成6から構成9のいずれかにおいて、受信装置は、複数の基地局を更に備える。複数の基地局は、受信手段と有線ケーブルによって接続され、送信装置から送信されたパケットを相互に異なる複数の通信経路を介して受信する。そして、複数の基地局の各々は、受信したパケットを有線ケーブルを介して受信手段へ出力する。
【0028】
(構成11)
更に、この発明の実施の形態によれば、無線通信システムは、構成1から構成5のいずれかに記載の送信装置と、構成6から構成10のいずれかに記載の受信装置とを備える。
【0029】
(構成12)
更に、この発明の実施の形態によれば、プログラムは、リアルタイムトラフィックを構成するパケットをアプリケーションから受信する送信装置においてパケットの送信をコンピュータに実行させるためのプログラムであって、
処理手段が、パケットに対して送信用の処理を実行する第1のステップと、
送信手段が、処理手段から受けたパケットを送信する第2のステップとをコンピュータに実行させ、
処理手段は、第1のステップにおいて、パケットが第1の時間間隔で送信装置に到着する第1の単体パケットであるとき、第1の単体パケットが送信装置に到着すると、送信用のパケットを格納するための送信バッファに第1の単体パケットをコピーするとともに第1の単体パケットを送信手段へ出力する第1の処理を実行し、パケットが第1の時間間隔よりも短い第2の時間間隔で連続して送信装置に到着する複数の単体パケットであるとき、複数の単体パケットのうちの最初に送信装置に到着した単体パケット以外の単体パケットから選択された第2の単体パケットが送信装置に到着すると、第2の単体パケットを送信バッファにコピーし、第2の単体パケットよりも早く送信装置に到着した単体パケットを含む第1の符号化パケットを第2の単体パケットに付与した結合パケットを生成するとともに結合パケットを送信手段へ出力する第2の処理を実行し、複数の単体パケットに含まれ、かつ、第2の単体パケット以外の単体パケットである第3の単体パケットが送信装置に到着すると、第3の単体パケットに対して第1の処理を実行し、複数の単体パケットのうちの最後の単体パケットが送信装置に到着したと判定すると、最後の単体パケットを送信バッファにコピーし、最後の単体パケットが第2の単体パケットに該当するとき最後の単体パケットに対して第2の処理を実行し、最後の単体パケットが第3の単体パケットに該当するとき最後の単体パケットに対して第1の処理を実行し、最後の単体パケットが送信装置に到着したと判定したタイミングから所定の時間が経過すると、送信バッファに格納された全ての単体パケットを含む第2の符号化パケットを生成して送信手段へ出力する第3の処理を実行し、
送信手段は、第2のステップにおいて、第1の単体パケットを処理手段から受けると、その受けた第1の単体パケットを単独で送信する第1の送信処理を実行し、結合パケットを処理手段から受けると、その受けた結合パケットを送信する第2の送信処理を実行し、第3の単体パケットまたは最後の単体パケットを処理手段から受けると、その受けた第3の単体パケットまたは最後の単体パケットに対して第1の送信処理を実行し、第2の符号化パケットを処理手段から受けると、その受けた第2の符号化パケットを単独で送信する第3の送信処理を実行する。
【0030】
(構成13)
構成12において、処理手段は、第1のステップの第2の処理において、
第2の単体パケットまたは最後の単体パケットよりも早く送信装置に到着した単体パケットのうちで最後に送信装置に到着した単体パケットである第4の単体パケットが送信装置に到着すると、第4の単体パケットが送信手段によって送信された後に、第2の単体パケットまたは最後の単体パケットよりも早く送信装置に到着した単体パケットを含む第1の符号化パケットを生成する第1のサブ処理を実行し、第1のサブ処理を実行した後に、第2の単体パケットまたは最後の単体パケットが送信装置に到着すると、第1の符号化パケットを第2の単体パケットまたは最後の単体パケットに付与して結合パケットを生成して送信手段へ出力する第2のサブ処理を実行する。
【0031】
(構成14)
構成13において、処理手段は、第1のステップの第2の処理において、第2の単体パケットがa(aは、1以上の整数である。)個の単体パケットからなるとき、a個の単体パケットの各々について、第1および第2のサブ処理を実行する。
【0032】
(構成15)
構成12から構成14のいずれかにおいて、処理手段は、符号化パケットの初期値を所定長の零からなるY0とし、送信用バッファから取り出したパケットをXi(i=1,2,・・・,I、Iは、第1の符号化パケットまたは第2の符号化パケットを生成するときに送信用バッファに格納されているパケットの総数)とし、所定長の乱数をCiとし、符号化パケットをYiとしたとき、所定長の乱数CiをパケットXiに乗算した乗算結果Ci・XiとYi-1との排他的論理和の演算を全てのiについて実行することによって得られた符号化パケットYiを第1の符号化パケットまたは第2の符号化パケットとして生成する。
【0033】
(構成16)
構成12から構成14のいずれかにおいて、送信手段は、第2のステップにおいて、有線ケーブルを介して、第1の単体パケット、結合パケット、第3の単体パケット、最後の単体パケットおよび第2の符号化パケットを複数の基地局へ送信し、
複数の基地局は、第1の単体パケット、結合パケット、第3の単体パケット、最後の単体パケットおよび第2の符号化パケットを送信手段から有線ケーブルを介して受信し、その受信した第1の単体パケット、結合パケット、第3の単体パケット、最後の単体パケットおよび第2の符号化パケットを相互に異なる通信経路によって送信する。
【0034】
(構成17)
更に、この発明の実施の形態によれば、プログラムは、構成12から構成16のいずれかに記載のプログラムをコンピュータに実行させることによって送信されたパケットの受信をコンピュータに実行させるためのプログラムであって、
受信手段が、第1および第3の単体パケット、結合パケット、および第2の符号化パケットを受信する第1のステップと、
分離手段が、結合パケットを第1の符号化パケットと第2の単体パケットとに分離する第2のステップと、
第1の処理手段が、第1の単体パケットまたは第3の単体パケットのうち、第1の受信バッファに格納されていない単体パケットまたは受信済でない単体パケットを第1の受信バッファに格納するとともに第1の受信バッファに格納された単体パケットをパケットによって送信された情報を利用するアプリケーションへ伝送する受信処理を実行する第3のステップと、
第2の処理手段が、第1のステップにおいて受信された符号化パケットに基づいて、第1の受信バッファに格納されていない複数の単体パケットのみを含む第3の符号化パケットを生成し、その生成した第3の符号化パケットを第2の受信バッファに格納する処理を第1および第2の符号化パケットの全てについて実行する第4のステップと、
復号手段が、第2の受信バッファから複数の第3の符号化パケットを読み出し、その読み出した複数の第3の符号化パケットについての連立方程式を解いて複数の第3の符号化パケットを復号する復号処理を実行する第5のステップとをコンピュータに実行させ、
第1の処理手段は、第3のステップにおいて、復号手段によって復号された単体パケットに対して受信処理を更に実行する。
【0035】
(構成18)
構成17において、第2の処理手段は、第4のステップにおいて、第1のステップにおいて受信された符号化パケットから第1の受信バッファに格納された単体パケットの情報を除去することによって第3の符号化パケットを生成する。
【0036】
(構成19)
構成18において、第2の処理手段は、第4のステップにおいて、第1の受信バッファに格納された単体パケットが第1のステップにおいて受信された符号化パケットに含まれると判定したとき、第1のステップにおいて受信された符号化パケットから第3の符号化パケットを生成する。
【0037】
(構成20)
構成18または構成19において、第2の処理手段は、第4のステップにおいて、第1のステップにおいて受信された符号化パケットから第1の受信バッファに格納された単体パケットの情報を除去した後の符号化パケットが1個の単体パケットを含むとき、更に、1個の単体パケットを含む符号化パケットを第1の受信バッファから消去し、
第1の処理手段は、第3のステップにおいて、1個の単体パケットを含む符号化パケットを単体パケットに変換し、その変換した単体パケットに対して受信処理を実行する。
【0038】
(構成21)
更に、この発明の実施の形態によれば、記録媒体は、構成12から構成20のいずれかに記載のプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【0039】
バーストを構成する複数のパケットを低遅延で送信できる。
【図面の簡単な説明】
【0040】
【
図1】この発明の実施の形態による無線通信システムの概略図である。
【
図5】パケットのフォーマットを示す概略図である。
【
図7】パケットを符号化する方法を説明するための図である。
【
図8】M
Burst個のパケットPKT_N(1)~PKT_N(M
Burst)を送信するときの符号化パケットの生成方法を説明する図である。
【
図9】バーストを構成するパケットの送信方法を説明するための図である。
【
図10】バーストを構成するパケットの別の送信方法を説明するための図である。
【
図11】バーストを構成するパケットの更に別の送信方法を説明するための図である。
【
図12】
図1および
図2に示す送信機の動作を説明するためのフローチャートである。
【
図13】
図12に示すステップS8の詳細な動作を説明するためのフローチャートである。
【
図14】
図1および
図3に示す受信機の動作を説明するためのフローチャートである。
【
図15】
図14に示すステップS26の詳細な動作を説明するためのフローチャートである。
【
図16】
図14に示すステップS28の詳細な動作を説明するためのフローチャートである。
【
図17】
図14に示すステップS29の詳細な動作を説明するためのフローチャートである。
【
図18】バーストを構成するパケットの受信時におけるNバッファおよびCバッファの変遷を示す図である。
【
図19】この発明の実施の形態による別の無線通信システムの概略図である。
【
図20】この発明の実施の形態による更に別の無線通信システムの概略図である。
【
図21】この発明の実施の形態による更に別の無線通信システムの概略図である。
【
図22】
図1に示す無線通信システムの別の適用例を示す図である。
【発明を実施するための形態】
【0041】
本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。
【0042】
図1は、この発明の実施の形態による無線通信システムの概略図である。
図1を参照して、この発明の実施の形態による無線通信システム10は、送信機1と受信機2とを備える。送信機1および受信機2は、無線通信空間に配置される。
【0043】
アプリケーション20は、例えば、カメラによって画像を撮影し、その撮影した画像の画像データをペイロードに含むパケットPKTを送信機1へ伝送する。
【0044】
送信機1は、パケットPKTをアプリケーション20から受信する。そして、送信機1は、後述する方法によって、パケットPKTをリアルタイムトラフィックを構成するパケットとして無線通信によって受信機2へ送信する。
【0045】
受信機2は、送信機1からのパケットPKTを無線通信によって受信し、その受信したパケットPKTに対して後述する受信処理を実行する。そして、受信機2は、受信処理を行ったパケットPKTをアプリケーション30へ伝送する。アプリケーション30は、受信機2からパケットPKTを受信し、その受信したパケットPKTに含まれる画像データを再生して表示部に表示する。
【0046】
無線通信システム10は、次の特徴を有する。無線通信システム10は、到達確認を用いた効率的な再送ができないシステムであり、例えば、無線通信によるブロードキャストまたはマルチキャストを行う。また、無線通信システム10は、複数経路を用いるシステムである。更に、無線通信システム10は、高い信頼性を必要とするリアルタイム通信(例えば、映像伝送等)を行うものである。
【0047】
図2は、
図1に示す送信機1の概略図である。
図2を参照して、送信機1は、バッファ11と、処理手段12と、送信手段13と、アンテナ14とを備える。
【0048】
バッファ11は、アプリケーション20から到着した複数のパケットPKT_N(1)~PKT_N(V)を格納する。複数のパケットPKT_N(1)~PKT_N(V)の各々は、アプリケーション20によって生成された生(Native)のパケットからなる。また、Vは、整数からなる。
【0049】
処理手段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へ出力する。
【0050】
送信手段13は、1個のパケットPKT_N(v)または送信用パケットPKT_TRを処理手段12から受けると、その受けた1個のパケットPKT_N(v)または送信用パケットPKT_TRを無線通信によってアンテナ14を介して受信機2へ送信する。
【0051】
図3は、
図1に示す受信機2の概略図である。
図3を参照して、受信機2は、アンテナ21と、受信手段22と、処理手段23と、Nバッファ24と、Cバッファ25とを備える。
【0052】
受信手段22は、アンテナ21を介してパケットPKT(パケットPKT_N(v)または送信用パケットPKT_TR)を受信し、その受信したパケットPKT(パケットPKT_N(v)または送信用パケットPKT_TR)を処理手段23へ出力する。
【0053】
処理手段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へ伝送する。
【0054】
一方、処理手段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パケット受信処理を実行する。
【0055】
処理手段23は、送信用パケットPKT_TRが符号化パケットPKT_Cのみを含むとき、上述した分離処理を実行せずに、上述した除去処理および復号処理を順次実行する。
【0056】
図4は、画像の送信を示す概念図である。
図4を参照して、リアルタイム動画伝送の場合の特徴を説明する。Iピクチャは、前後のピクチャの差分を用いない圧縮画像からなり、サイズが大きい。Pピクチャは、前のピクチャとの差分を伝送するため、サイズが小さい。
【0057】
IピクチャおよびPピクチャは、周期的に送信される。そして、周期的な送信の際の送信パケット数は、異なり、バースト的に一度にパケットを送信する場合もある。また、Iピクチャは、IPPPIPPPIPのように周期的に生成されて送信される。
【0058】
Iピクチャを伝送する際にバーストが発生し、バーストのサイズは、一定でない。また、バーストを構成するパケットは、一度に到着せずに逐次到着する。
【0059】
更に、
図4に示すPピクチャ、Pピクチャ、Pピクチャ、Iピクチャ、Pピクチャ、Pピクチャ、Pピクチャ、IピクチャおよびPピクチャにおいて、Pピクチャをペイロードに含むパケットおよびIピクチャをペイロードに含むパケットがアプリケーション20から送信機1に到着する時間間隔は、T
interval_1であり、Iピクチャをペイロードに含む複数のパケットがアプリケーション20から連続して送信機1に到着する時間間隔は、T
interval_1よりも短いT
interval_2である。
【0060】
図5は、パケットのフォーマットを示す概略図である。
図5を参照して、パケットPKTは、ヘッダと、ペイロードとを含む。ヘッダは、送信先のIPアドレスを含む。
【0061】
ペイロードは、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)のデータ長である。
【0062】
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の長さを表す。
【0063】
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の個数を表す。
【0064】
Packet Info 1は、シーケンス番号SNと、データ長L1と、符号C1とを含む。以下、同様にして、Packet Info Nは、シーケンス番号SNと、データ長LNと、符号CNとを含む。
【0065】
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)の係数である。
【0066】
以下、同様にして、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)の係数である。
【0067】
1個のパケットPKT_Nは、ペイロードがPacket Infoと領域REG1とを含む構成からなる。
【0068】
バースト的に一度に送信するためのパケットが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として生成することになる。
【0069】
従って、結合パケットPKT_N/PKT_C1は、ペイロードが[Packet Info/PKT_Nのデータ/Coded Info/PKT_N(1)のデータ~PKT_N(m-1)のデータ]を含む構成からなる。
【0070】
また、MBurst個のパケットPKT_N(1)~PKT_N(MBurst)が連続して送信機1に到着したとき、MBurst個のパケットPKT_N(1)~PKT_N(MBurst)を符号化した符号化パケットPKT_C2を送信用パケットPKT_TRとして生成することになる。
【0071】
従って、符号化パケットPKT_C2は、ペイロードが[Coded Info/PKT_N(1)のデータ~PKT_N(MBurst)のデータ]を含む構成からなる。
【0072】
図6は、
図2に示すバッファ11の概略図である。なお、
図6は、バースト的に一度に送信するためのパケットの個数M
Burstよりもバッファ11のサイズが大きい場合についてバッファ11の概略図を示す。
【0073】
図6を参照して、バッファ11は、例えば、リングバッファからなる。そして、バッファ11は、シーケンス番号SNが小さい順(即ち、古い順)にM
Burst個のパケットPKT_N(1)~PKT_N(M
Burst)を格納する。パケットPKT_N(M
Burst)は、現在時刻においてバッファ11に格納されたパケットであり、パケットPKT_N(1)~パケットPKT_N(M
Burst-1)は、過去にバッファ11に格納されたパケットである。
【0074】
また、バッファ11は、パケット数が最大数を超えると、古いパケットから順に上書きする構成からなる。その結果、バッファ11は、常に、最大数のパケットを格納できる。
【0075】
パケット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も格納される。
【0076】
即ち、アプリケーション20から送信機1に到着したパケットPKT_N(PKT_N(1)~PKT_N(MBurst)のいずれか)がペイロードを構成し、バッファ11の各領域には、[SN/Lp/ペイロード/パディング(全て“0”)]が格納される。なお、パディング(全て“0”)は、[SN/Lp/ペイロード]の長さが最大長にならない場合に追加される。
【0077】
図7は、パケットを符号化する方法を説明するための図である。
図7においては、パケットX
i(iは、1,2,3,・・・)と符号化パケットY
i-1とを符号化する方法を説明する。
【0078】
図7を参照して、パケットX
iは、L
iバイトのデータ長を有するので、パケットX
iは、L
i×8/n個の成分X
i,1,X
i,2,X
i,3,X
i,4,・・・,X
i,Li×8/nと、“0”からなるパディングとを含む。成分X
i,1,X
i,2,X
i,3,X
i,4,・・・,X
i,Li×8/nの各々は、n(nは、正の整数である。)ビットの長さを有する。符号C
iは、ガロア体GF(2
n)上のnビット長の乱数からなる。ここで、nは、例えば、8からなる。
【0079】
符号化パケット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ビットの長さを有する。
【0080】
符号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)上の乗算として実行される。
【0081】
その後、乗算結果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]が生成される。
【0082】
図8は、M
Burst個のパケットPKT_N(1)~PKT_N(M
Burst)を送信するときの符号化パケットの生成方法を説明する図である。
【0083】
図8においては、パケットP
3,P
5,P
7,P
9が送信機1に到着したタイミングで符号化パケットを受信機2へ送信すると判定するものとする。
【0084】
図8の(a)を参照して、バーストを構成するM
Burst個のパケットPKT_N(1)~PKT_N(M
Burst)は、パケットP
1~P
6からなる。そして、バッファ11に格納できるパケットの最大数は、6個である。即ち、バーストを構成するパケットの個数M
Burstは、バッファ11のサイズM
Buffer以下である。
【0085】
送信機1の処理手段12は、パケットP
1が送信機1に到着すると、パケットP
1をバッファ11にコピーする(
図8の(a)(i)参照)。そして、処理手段12は、バッファ11からパケットP
1を取り出し、その取り出したパケットP
1を
図7において説明した方法によって符号化して符号化パケットC
1を生成する。
【0086】
より具体的には、処理手段12は、nビット長の“0”からなる符号化パケットY
0={000・・・0}を生成し、ガロア体GF(2
n)上のnビット長の乱数からなる符号C
1を生成する。そして、処理手段12は、パケットX
1(=P
1)と符号化パケットY
0={000・・・0}と符号C
1とに基づいて、
図7において説明した方法によって、符号化パケットY
1(=C
1)を生成する。
【0087】
その後、処理手段12は、パケットP
2が送信機1に到着すると、パケットP
2をバッファ11にコピーする(
図8の(a)(ii)参照)。そして、処理手段12は、バッファ11からパケットP
2を取り出す。そして、処理手段12は、ガロア体GF(2
n)上のnビット長の乱数からなる符号C
2を生成する。そうすると、処理手段12は、パケットX
2(=P
2)と符号化パケットY
1と符号C
2とに基づいて、
図7において説明した方法によって、符号化パケットY
2(=C
2)を生成する。
【0088】
以下、同様にして、パケットP
3~P
6が送信機1に到着したタイミングで、それぞれ、符号化パケットY
3~Y
6(=C
3~C
6)を順次生成する(
図8の(a)(iii)~(vi)参照)。この場合、パケットP
6が送信機1に到着し、パケットP
6をバッファ11にコピーした段階で、バッファ11は、最大数M
Bufferのパケットを格納する。
【0089】
処理手段12は、パケットP
3が送信機1に到着すると、パケットP
3をバッファ11にコピーし(
図8の(a)(iii)参照)、符号化パケットを送信すると判定する。そして、処理手段12は、パケットP
2が送信機1に到着したタイミングで生成した符号化パケットY
2(=C
2)をパケットP
3に付与して結合パケットP
3/C
2を生成し、その生成した結合パケットP
3/C
2を送信手段13へ出力して結合パケットP
3/C
2を受信機2へ送信する。なお、結合パケットP
3/C
2によって情報を送信することは、Piggybackによる情報の送信である。
【0090】
また、処理手段12は、パケットP
5が送信機1に到着すると、パケットP
5をバッファ11にコピーし(
図8の(a)(v)参照)、符号化パケットを送信すると判定する。そして、処理手段12は、パケットP
4が送信機1に到着したタイミングで生成した符号化パケットY
4(=C
4)をパケットP
5に付与して結合パケットP
5/C
4を生成し、その生成した結合パケットP
5/C
4を送信手段13へ出力して結合パケットP
5/C
4を受信機2へ送信する。
【0091】
そして、処理手段12は、パケットP6が送信機1に到着し、符号化パケットY6(=C6)を生成した後、後述する方法によって、パケットP6がバーストを構成するパケットP1~P6のうちの最後のパケットP6であると判定した後、未送信の符号化パケットY6(=C6)を送信手段13へ出力して符号化パケットY6(=C6)を単独で受信機2へ送信する。
【0092】
また、処理手段12は、バッファ11からパケットP1~P6を取り出し、その取り出したパケットP1~P6を符号化して符号化パケットY7(=C7)を生成する。そして、処理手段12は、符号化パケットY7(=C7)を送信手段13へ出力して符号化パケットY7(=C7)を単独で受信機2へ送信する。
【0093】
このように、処理手段12は、バーストを構成するパケットの個数MBurstがバッファ11のサイズMBuffer以下であるとき、バーストを構成する全てのパケットP1~P6を含む符号化パケットY7(=C7)を生成して受信機2へ送信する。
【0094】
図8の(b)を参照して、バーストを構成するM
Burst個のパケットPKT_N(1)~PKT_N(M
Burst)は、パケットP
1~P
10からなる。そして、バッファ11に格納できるパケットの最大数は、6個である。即ち、バーストを構成するパケットの個数M
Burstは、バッファ11のサイズM
Bufferよりも大きい。
【0095】
処理手段12は、パケットP
1~P
6が送信機1に到着したとき、
図8の(a)において説明した処理を実行する(
図8の(b)(i),(ii)参照)。
【0096】
そして、処理手段12は、パケットP
7が送信機1に到着すると、パケットP
7をバッファ11にコピーする(
図8の(b)(iii)参照)。その結果、パケットP
6が送信機1に到着した段階でバッファ11に格納されていたパケットP
1~P
6は、それぞれ、パケットP
2~P
7によって上書きされる。
【0097】
処理手段12は、パケットP
7をバッファ11にコピーした後、バッファ11からパケットP
7を取り出す。そして、処理手段12は、ガロア体GF(2
n)上のnビット長の乱数からなる符号C
7を生成する。そうすると、処理手段12は、パケットX
7(=P
7)と符号化パケットY
6と符号C
7とに基づいて、
図7において説明した方法によって、符号化パケットY
7(=C
7)を生成する。
【0098】
その後、処理手段12は、パケットP
8~P
10が送信機1に到着したタイミングで、同様にして、それぞれ、符号化パケットY
8(=C
8)~Y
10(=C
10)を生成する(
図8の(b)(iv)~(vi)参照)。
【0099】
そして、パケットP10をバッファ11にコピーした段階で、バッファ11は、パケットP5~P10を格納する。
【0100】
処理手段12は、パケットP10が送信機1に到着し、符号化パケットY10(=C10)を生成した後、後述する方法によって、パケットP10がバーストを構成するパケットP1~P10のうちの最後のパケットP10であると判定した後、未送信の符号化パケットY10(=C10)を送信手段13へ出力して符号化パケットY10(=C10)を単独で受信機2へ送信する。
【0101】
また、処理手段12は、バッファ11からパケットP5~P10を取り出し、その取り出したパケットP5~P10を符号化して符号化パケットY11(=C11)を生成する。そして、処理手段12は、符号化パケットY11(=C11)を送信手段13へ出力して符号化パケットY11(=C11)を単独で受信機2へ送信する。
【0102】
このように、処理手段12は、バーストを構成するパケットの個数MBurstがバッファ11のサイズMBufferよりも大きいとき、バーストを構成するパケットP1~P10のうちのパケットP5~P10を含む符号化パケットY11(=C11)を生成して受信機2へ送信する。
【0103】
図8において説明したように、単独で送信される符号化パケットは、バーストを構成するパケットの個数M
Burstとバッファ11のサイズM
Bufferとの大小関係によって異なるパケットを含む。
【0104】
なお、処理手段12は、バーストを構成するMBurst個のパケットPKT_N(1)~PKT_N(MBurst)のうちの最後のパケットPKT_N(MBurst)がバッファ11に到着したか否かを次の方法によって判定する。
【0105】
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に設定しておく。
【0106】
処理手段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に到着したと判定する。
【0107】
また、アプリケーション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)であると判定するようにしてもよい。
【0108】
図9は、バーストを構成するパケットの送信方法を説明するための図である。
図9においては、バーストを構成するM
Burst個のパケットPKT_N(1)~PKT_N(M
Burst)がパケットP
1~P
6である場合において、バーストを構成するM
Burst個のパケットPKT_N(1)~PKT_N(M
Burst)の送信方法を説明する。この場合、処理手段12は、例えば、パケットP
3,P
5のいずれかが送信機1に到着したタイミングで符号化パケットを送信すると判定し、パケットP
1,P
2,P
4,P
6のいずれかが送信機1に到着したタイミングでは符号化パケットを送信しないと判定するものとする。また、パケットP
1,P
3が送信先へ送信できなかったものとする。
【0109】
図9を参照して、パケットP
1~P
6は、バースト的に一度に送信するパケットを構成する。
【0110】
処理手段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は、次式によって表される。
【0111】
【0112】
引き続いて、処理手段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は、次式によって表される。
【0113】
【0114】
引き続いて、処理手段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は、次式によって表される。
【0115】
【0116】
引き続いて、処理手段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は、次式によって表される。
【0117】
【0118】
その後、パケット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は、次式によって表される。
【0119】
【0120】
引き続いて、処理手段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は、次式によって表される。
【0121】
【0122】
なお、符号化パケットC6をパケットP6に付与して受信機2へ送信しないのは、符号化パケットを単体パケットに付与して受信機2へ送信するタイミングがパケットP3,P5のいずれかがバッファ11に到着したタイミングであると決定されているので、パケットP6がバッファ11に到着したタイミングが符号化パケットを単体パケットに付与して受信機2へ送信するタイミングでないからである。
【0123】
そして、処理手段12は、経過時間tELP_6が経過時間TSTANDARDよりも長くなってもパケットが送信機1に到着しないことを確認し、パケットP6がパケットP1~P6のうちの最後のパケットP6であると判定する。
【0124】
その後、処理手段12は、最後のパケットP6がバッファ11に到着した後、Tミリ秒が経過したか否かを判定する。ここで、Tは、T<T_interval_1を満たす時間であり、例えば、5ミリ秒である。
【0125】
処理手段12は、最後のパケットP6がバッファ11に到着した後、Tミリ秒が経過したと判定したとき、符号化パケットC6を送信手段13へ出力して符号化パケットC6を受信機2へ送信する。
【0126】
そして、処理手段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が少なくなれば、より多くの符号化パケットを送信することになる。
【0127】
処理手段12は、符号化パケットの送信数がK個でないと判定したとき、バッファ11に格納されたパケットP1~P6を取り出し、その取り出したパケットP1~P6を上述した方法によって符号化して符号化パケットC7を生成する。符号化パケットC7は、次式によって表される。
【0128】
【0129】
そして、処理手段12は、符号化パケットC7を送信手段13へ出力して符号化パケットC7を受信機2へ送信する。
【0130】
その後、処理手段12は、符号化パケットの送信数がK個(=3個)でないと判定する。そして、処理手段12は、バッファ11に格納されたパケットP1~P6を取り出し、その取り出したパケットP1~P6を上述した方法によって符号化して符号化パケットC8を生成する。符号化パケットC8は、次式によって表される。
【0131】
【0132】
このように、処理手段12は、符号化パケットを単体で送信するとき、バッファ11に格納されている全てのパケットP1~P6を用いて符号化パケットC6~C8を生成する。
【0133】
引き続いて、処理手段12は、符号化パケットの送信数がK個(=3個)であると判定し、バッファ11をクリアする。
【0134】
式(6)~(8)に示すように、符号化パケットC6,C7,C8は、同じパケットP1~P6を含み、係数Ciのみが異なる符号化パケットである。係数Ciは、ガロア体GF(2n)上のnビット長の乱数からなるので、例えば、式(6)における係数a62,a64が零であることもある。この場合、符号化パケットC6は、実質的に、パケットP1,P3,P5,P6を含むことになる。符号化パケットC7,C8についても同様である。
【0135】
受信機2は、送信機1から送信されたパケットP1の受信に失敗し、送信機1から送信されたパケットP2を受信する。また、受信機2は、送信機1から送信された結合パケットP3/C2の受信に失敗し、送信機1から送信されたパケットP4、結合パケットP5/C4、パケットP6および符号化パケットC6,C7,C8を順次受信する。
【0136】
受信機2は、パケットP1,P3および符号化パケットC1を受信できなかったので、受信できなったパケットP1,P3を符号化パケットC4,C6から復号するために、符号化パケットC4,C6から受信済のパケットP2,P4の情報を除去する。
【0137】
より具体的には、受信機2は、次式によって、符号化パケットC4から受信済のパケットP2,P4の情報を除去する。
【0138】
【0139】
また、受信機2は、次式によって、符号化パケットC6から受信済のパケットP2,P4,P5,P6の情報を除去する。
【0140】
【0141】
その結果、符号化パケットC4から受信済のパケットP2,P4の情報を除去した後の符号化パケットC4’および符号化パケットC6から受信済のパケットP2,P4,P5,P6の情報を除去した後の符号化パケットC6’は、共に、パケットP1,P3を含む。
【0142】
そして、式(9)の左辺は、符号化パケットC4とパケットP2との排他的論理和を演算し、その排他的論理和の演算結果とパケットP4との排他的論理和を演算することによって得られる。また、式(10)の左辺は、符号化パケットC6とパケットP2との排他的論理和を演算し、その排他的論理和の演算結果とパケットP4との排他的論理和を演算し、その排他的論理和の演算結果とパケットP5との排他的論理和を演算し、その排他的論理和の演算結果とパケットP6との排他的論理和を演算することによって得られる。従って、受信機2は、式(9)および式(10)の左辺の値を取得できる。
【0143】
また、式(9)の符号a
41,a
43は、符号化パケットC
4の“Coded Infoに含まれており、式(10)の符号a
61,a
63は、符号化パケットC
6の“Coded Infoに含まれているので(
図5参照)、既知である。
【0144】
従って、受信機2は、式(9)および式(10)の連立方程式を解くことによって、受信できなかったパケットP1,P3を復号できる。
【0145】
また、受信機2は、同様にして、符号化パケットC6~C8から任意に選択した2つの符号化パケットに基づいて、受信できなかったパケットP1,P3を復号できる。
【0146】
このように、受信機2が受信できなかったパケットが2個のパケットP1,P3である場合、送信機1は、受信機2が受信できなかったパケットの個数(=2個)以上の符号化パケットを送信することによって、受信できなかった2個のパケットP1,P3を復号できる。
【0147】
受信機2が結合パケットP3/C2に代えて結合パケットP5/C2を受信できなかった場合について、上記の方法によって、受信できなかった2個のパケットを復号できることを説明する。この場合、受信機2は、2個のパケットP1,P5を受信できなかったことになる。
【0148】
そこで、受信機2は、符号化パケットC2から受信済のパケットP2の情報を除去した後の符号化パケットC2’と、符号化パケットC6から受信済のパケットP2,P3,P4,P6の情報を除去した後の符号化パケットC6”とを次式によって算出する。
【0149】
【0150】
従って、受信機2は、式(11A),(11B)の連立方程式を解くことによって、受信できなかった2個のパケットP1,P5を復号できる。
【0151】
符号化パケットC2,C4がそれぞれ付与されるパケットP3,P5以外のパケットP1,P2,P4を受信機2へ送信できなくても、受信機2は、3個の符号化パケットC6,C7,C8を受信できる。
【0152】
そこで、受信機2は、符号化パケットC6から受信済のパケットP3,P5の情報を除去した後の符号化パケットC6
(3)と、符号化パケットC7から受信済のパケットP3,P5の情報を除去した後の符号化パケットC7
(3)と、符号化パケットC8から受信済のパケットP3,P5の情報を除去した後の符号化パケットC8
(3)とを算出する。その結果、次式が得られる。
【0153】
【0154】
受信機2は、式(12A),(12B),(12C)の連立方程式を解くことによってパケットP1,P2,P4を復号できる。
【0155】
なお、受信機2は、符号化パケットから受信済のパケットの情報を除去した後の符号化パケットCが1個のパケットのみを含むとき、次式によって符号化パケットCを1個のパケットPKT_Nに変換する。
【0156】
【0157】
この場合、受信機2は、受信済のパケットの情報を除去した符号化パケットCを式(13)の“Y”に代入し、受信済のパケットの情報を除去した符号化パケットCのいずれかに含まれる1個の符号Cを式(13)の“C”に代入する。なお、式(13)の演算は、ガロア体GF(2n)上の演算である。
【0158】
図10は、バーストを構成するパケットの別の送信方法を説明するための図である。
図10を参照して、処理手段12は、
図9において説明したように、パケットP
1~P
6をそれぞれバッファ11にコピーする毎に、それぞれ、符号化パケットC
1~C
6を生成する。
【0159】
処理手段12は、パケットP2が送信機1に到着すると、パケットP2をバッファ11にコピーし、符号化パケットC1をパケットP2に付与して結合パケットP2/C1を生成し、その生成した結合パケットP2/C1を送信手段13へ出力して結合パケットP2/C1を受信機2へ送信する。
【0160】
その後、処理手段12は、符号化パケットC2を生成し、パケットP3が送信機1に到着すると、パケットP3をバッファ11にコピーし、符号化パケットC2をパケットP3に付与して結合パケットP3/C2を生成し、その生成した結合パケットP3/C2を送信手段13へ出力して結合パケットP3/C2を受信機2へ送信する。
【0161】
更に、処理手段12は、符号化パケットC3を生成し、パケットP4が送信機1に到着すると、パケットP4をバッファ11にコピーし、符号化パケットC3をパケットP4に付与して結合パケットP4/C3を生成し、その生成した結合パケットP4/C3を送信手段13へ出力して結合パケットP4/C3を受信機2へ送信する。
【0162】
更に、処理手段12は、符号化パケットC4を生成し、パケットP5が送信機1に到着すると、パケットP5をバッファ11にコピーし、符号化パケットC4をパケットP5に付与して結合パケットP5/C4を生成し、その生成した結合パケットP5/C4を送信手段13へ出力して結合パケットP5/C4を受信機2へ送信する。
【0163】
更に、処理手段12は、符号化パケットC
5を生成し、パケットP
6が送信機1に到着すると、パケットP
6をバッファ11にコピーし、符号化パケットC
5をパケットP
6に付与して結合パケットP
6/C
5を生成し、その生成した結合パケットP
6/C
5を送信手段13へ出力して結合パケットP
6/C
5を受信機2へ送信する。なお、符号化パケットC
5は、パケットP
1~P
5を含むが(式(5)参照)、バーストを構成するパケットP
1~P
6のうちの最後に送信機1に到着したパケットP
6に符号化パケットCを付与して結合パケットを生成する場合、符号化パケットCは、バッファ11に格納された全てのパケットP
1~P
6を含む。従って、結合パケットP
6/C
5における符号化パケットC
5は、上記の式(5)ではなく、
図10に示すようにパケットP
1~P
6の全てを含む。
【0164】
このように、Piggybackによる符号化パケットの送信は、バーストを構成するパケットP1~P6のうちのパケットP2~P6の各々において実行されてもよい。
【0165】
結合パケットP
6/C
5を受信機2へ送信した後、処理手段12は、
図9において説明したように、符号化パケットC
6~C
8をそれぞれ単独で受信機2へ送信する。
【0166】
図11は、バーストを構成するパケットの更に別の送信方法を説明するための図である。
【0167】
図11を参照して、処理手段12は、
図9において説明したように、パケットP
1~P
6をそれぞれバッファ11にコピーする毎に、それぞれ、符号化パケットC
1~C
6を生成する。
【0168】
処理手段12は、パケットP2~P5がそれぞれ送信機1に到着したタイミングでは、それぞれ符号化パケットC1~C4をパケットP2~P5に付与せずに、パケットP2~P5をそれぞれ単独で受信機2へ送信する。
【0169】
そして、処理手段12は、パケットP
6が送信機1に到着すると、符号化パケットC
5をパケットP
6に付与して結合パケットP
6/C
5を生成し、その生成した結合パケットP
6/C
5を送信手段13へ出力して結合パケットP
6/C
5を受信機2へ送信する。この場合も、符号化パケットP
5は、上記の式(5)ではなく、
図11に示すようにパケットP
1~P
6の全てを含む。
【0170】
このように、Piggybackによる符号化パケットの送信は、バーストを構成するパケットP1~P6のうちの最後のパケットP6のみにおいて実行されてもよい。
【0171】
結合パケットP
6/C
5を受信機2へ送信した後、処理手段12は、
図9において説明したように、符号化パケットC
6~C
8をそれぞれ単独で受信機2へ送信する。
【0172】
図9から
図11において説明したように、この発明の実施の形態においては、結合パケットによる符号化パケットの送信(即ち、Piggybackによる符号化パケットの送信)は、バーストを構成するパケットP
1~P
6のうち、パケットP
2~P
6から選択された1個以上のパケットがそれぞれ送信機1に到着したタイミングで実行されればよい。
【0173】
図12は、
図1および
図2に示す送信機1の動作を説明するためのフローチャートである。
【0174】
図12を参照して、送信機1の動作が開始されると、処理手段12は、シーケンス番号SNをSN=0に設定する(ステップS1)。そして、処理手段12は、パケットがバッファ11に到着したか否かを判定する(ステップS2)。
【0175】
ステップ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に格納される。
【0176】
その後、処理手段12は、符号化パケットCを送信するか否かを判定する(ステップS5)。
図9から
図12において説明したように、結合パケットによる符号化パケットの送信(即ち、Piggybackによる符号化パケットの送信)は、バーストを構成するパケットP
1~P
6のうち、パケットP
2~P
6から選択された1個以上のパケットがそれぞれ送信機1に到着したタイミングで実行されるので、結合パケットによる符号化パケットの送信(即ち、Piggybackによる符号化パケットの送信)を実行するパケットP
Piggybackを予め決定しておき、その決定したパケットP
Piggybackがバッファ11(即ち、送信機1)に到着すると、処理手段12は、符号化パケットCを送信すると判定し、パケットP
Piggyback以外のパケットがバッファ11(即ち、送信機1)に到着すると、符号化パケットCを送信しないと判定する。
【0177】
ステップS5において、符号化パケットCを送信すると判定されたとき、符号化パケットをNパケットPKT_Nに付与し(ステップS6)、結合パケットを生成する。
【0178】
そして、ステップS5において、符号化パケットCを送信しないと判定されたとき、またはステップS6の後、処理手段12は、パケットを送信手段13へ出力し、送信手段13は、処理手段12からのパケットをアンテナ14を介して受信機2へ送信する(ステップS7)。
【0179】
その後、処理手段12は、上述した方法によって、バッファ11に格納されたパケットから符号化パケットCを生成する(ステップS8)。
【0180】
そして、一連の動作は、ステップS2へ移行する。
【0181】
一方、ステップS2において、パケットがバッファ11に到着しなかったと判定されたとき、処理手段12は、最後のパケットがバッファ11に到着してからTミリ秒が経過したか否かを判定する(ステップS9)。
【0182】
ステップS9において、最後のパケットがバッファ11に到着してからTミリ秒が経過したと判定されたとき、処理手段12は、符号化パケットCを送信手段13へ出力し、送信手段13は、処理手段12から受けた符号化パケットCをアンテナ14を介して受信機2へ送信する(ステップS10)。
【0183】
その後、処理手段12は、符号化パケットCの送信数がKであるか否かを判定する(ステップS11)。
【0184】
ステップS11において、符号化パケットCの送信数がKでないと判定されたとき、処理手段12は、バッファ11に格納されたパケットから符号化パケットCを生成する(ステップS12)。その後、一連の動作は、ステップS10へ移行し、ステップS11において、符号化パケットCの送信数がKであると判定されるまで、ステップS10~ステップS12が繰り返し実行される。
【0185】
そして、ステップS11において、符号化パケットCの送信数がKであると判定されると、処理手段12は、バッファ11をクリアする(ステップS13)。その後、一連の動作は、ステップS2へ移行する。また、ステップS9において、最後のパケットがバッファ11に到着してからTミリ秒が経過していないと判定されたとき、一連の動作は、ステップS2へ移行する。
【0186】
図13は、
図12に示すステップS8の詳細な動作を説明するためのフローチャートである。
【0187】
図13を参照して、
図12のステップS7の後、処理手段12は、i=1を設定する(ステップS81)。ここで、iは、
図12のステップS8が実行される時点においてバッファ11に格納された各パケットのシーケンス番号SNを示す引数である。そして、i=1は、バッファ11に格納されたパケットのうち、最も古いパケットを表す。
【0188】
ステップS81の後、処理手段12は、nビットの長さを有する“000・・・0”からなる符号化パケットY0={000・・・0}を生成する(ステップS82)。
【0189】
そして、処理手段12は、バッファ11からパケットXiを取得する(ステップS83)。
【0190】
その後、処理手段12は、ガロア体(GF(2n))によってnビット長の乱数を生成し、その生成したnビット長の乱数をCiに格納する(ステップS84)。
【0191】
そうすると、処理手段12は、パケットXiの各要素Xi,1~Xi,Li×8/nにCiを掛け、Ci・XiとYi-1との排他的論理和を演算する。即ち、処理手段12は、次式によってYiを算出する(ステップS85)。
【0192】
【0193】
引き続いて、処理手段12は、パケットXiのシーケンス番号SNi、パケット長Liおよび符号CiをCoded infoに追加する(ステップS86)。
【0194】
そして、処理手段12は、i=Iであるか否かを判定する(ステップS87)。ここで、Iは、
図12のステップS8が実行される時点においてバッファ11に格納されたパケットのシーケンス番号SNの最大値を示す。
【0195】
ステップS87において、i=Iでないと判定されたとき、処理手段12は、i=i+1を設定する(ステップS88)。その後、一連の動作は、ステップS83へ移行し、ステップS87において、i=Iであると判定されるまで、ステップS83~ステップS88が繰り返し実行される。
【0196】
そして、ステップS87において、i=Iであると判定されると、処理手段12は、YiとCoded infoとからなる符号化パケットを生成する(ステップS89)。
【0197】
その後、一連の動作は、
図12のステップS2へ移行する。
【0198】
なお、
図12のステップS12の詳細な動作も、
図13に示すフローチャートによって実行される。この場合、
図12のステップS11において、符号化パケットの送信数がKでないと判定されたとき、ステップS81~ステップS89が順次実行され、ステップS89の後、一連の動作は、
図12のステップS10へ移行する。
【0199】
送信機1は、駆動されている限り、
図12に示すステップS1~ステップS13(
図13に示すフローチャートを含む)を繰り返し実行する。
【0200】
図12に示すフローチャート(
図13に示すフローチャートを含む)においては、ステップS1が実行された後に、処理手段12は、ステップS2において、バーストを構成しないパケットPKT_N(1)(
図4に示すPピクチャを示すパケット)がバッファ11に到着したと判定すると、上述したステップS3,S4を順次実行した後、ステップS5において符号化パケットCを送信しないと判定し、ステップS7において、パケットPKT_N(1)を送信手段13およびアンテナ14を介して受信機2へ送信する。
【0201】
その後、処理手段12は、ステップS8において、符号化パケットCを生成し、ステップS8の後、一連の動作は、ステップS2へ移行する。
【0202】
そして、処理手段12は、ステップS2において、バーストを構成しないパケットPKT_N(
図4に示すPピクチャを示すパケット)がバッファ11に到着したと判定する毎に、ステップS3,S4、ステップS5の“NO”およびステップS7を順次実行して単体のパケットPKT_Nを受信機2へ送信し、ステップS8において、符号化パケットCを生成する。その後、一連の動作は、ステップS2へ移行する。
【0203】
なお、ステップS8において、バーストを構成しないパケットPKT_N(1)を符号化して符号化パケットを生成し、ステップS2において、パケットが到着しなかったと判定され、ステップS9において、最後のパケットがバッファ11に到着してからTミリ秒が経過したと判定された場合、符号化パケット(ほぼ、Nパケットからなる。)がK回送信されることになる(ステップS10~ステップS12参照)。
【0204】
次に、バーストを構成するパケット(例えば、
図9に示すパケットP
1~P
6のいずれか)がバッファ11に到着したときの送信機1の動作を説明する。
【0205】
処理手段12は、ステップS2において、パケットP1がバッファ11に到着したと判定し、上述したステップS3,S4を順次実行した後、ステップS5において符号化パケットCを送信しないと判定し、ステップS7において、パケットP1を送信手段13およびアンテナ14を介して受信機2へ送信する。
【0206】
そして、処理手段12は、ステップS8において、パケットP1を含む符号化パケットC1を生成し、その後、一連の動作は、ステップS2へ移行する。
【0207】
その後、処理手段12は、ステップS2において、パケットP2がバッファ11に到着したと判定し、上述したステップS3,S4を順次実行した後、ステップS5において符号化パケットCを送信しないと判定し、ステップS7において、パケットP2を送信手段13およびアンテナ14を介して受信機2へ送信する。そして、処理手段12は、ステップS8において、パケットP1,P2を含む符号化パケットC2を生成する。その後、一連の動作は、ステップS2へ移行する。
【0208】
引き続いて、処理手段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へ移行する。
【0209】
処理手段12は、符号化パケットC3を生成した後、ステップS2において、パケットP4がバッファ11に到着したと判定し、上述したステップS3,S4を順次実行した後、ステップS5において符号化パケットCを送信しないと判定し、ステップS7において、パケットP4を送信手段13およびアンテナ14を介して受信機2へ送信する。そして、処理手段12は、ステップS8において、パケットP1~P4を含む符号化パケットC4を生成する。その後、一連の動作は、ステップS2へ移行する。
【0210】
処理手段12は、符号化パケットC4を生成した後、ステップS2において、パケットP5がバッファ11に到着したと判定し、上述したステップS3,S4を順次実行した後、ステップS5において符号化パケットCを送信すると判定し、ステップS6において、符号化パケットC4をパケットP5に付与して結合パケットP5/C4を生成する。そして、処理手段12は、ステップS7において、結合パケットP5/C4を送信手段13およびアンテナ14を介して受信機2へ送信する。
【0211】
その後、処理手段12は、ステップS8において、パケットP1~P5を含む符号化パケットC5を生成する。そして、一連の動作は、ステップS2へ移行する。
【0212】
処理手段12は、符号化パケットC5を生成した後、ステップS2において、パケットP6がバッファ11に到着したと判定し、上述したステップS3,S4を順次実行した後、ステップS5において符号化パケットCを送信しないと判定し、ステップS7において、パケットP6を送信手段13およびアンテナ14を介して受信機2へ送信する。そして、処理手段12は、ステップS8において、パケットP1~P6を含む符号化パケットC6を生成する。その後、一連の動作は、ステップS2へ移行する。
【0213】
引き続いて、処理手段12は、ステップS2において、パケットがバッファ11に到着しなかったと判定し、ステップS9において、最後のパケット(=パケットP6)がバッファ11に到着した後、Tミリ秒が経過したと判定し、ステップS10において、符号化パケットC6を送信手段13およびアンテナ14を介して受信機2へ送信する。そして、処理手段12は、ステップS11において、符号化パケットCの送信数がK(=3)でないと判定し、ステップS12において、バッファ11に格納されたパケットP1~P6からパケットP1~P6を含む符号化パケットC7を生成する。
【0214】
その後、処理手段12は、ステップS10において、符号化パケットC7を送信手段13およびアンテナ14を介して受信機2へ送信する。
【0215】
引き続いて、処理手段12は、ステップS11において、符号化パケットCの送信数がK(=3)でないと判定し、ステップS12において、バッファ11に格納されたパケットP1~P6からパケットP1~P6を含む符号化パケットC8を生成する。
【0216】
その後、処理手段12は、ステップS10において、符号化パケットC8を送信手段13およびアンテナ14を介して受信機2へ送信する。
【0217】
そして、処理手段12は、ステップS11において、符号化パケットCの送信数がK(=3)であると判定し、ステップS13において、バッファ11をクリアする。
【0218】
図12に示すフローチャートにおいては、ステップS11における符号化パケットの送信数は、ステップS10において送信された符号化パケットの個数であり、ステップS7において、結合パケットによって送信された符号化パケットの個数を含まない。
【0219】
また、
図8の(a)において説明したように、バーストを構成するパケットの個数M
Burstがバッファ11のサイズM
Buffer以下である場合、
図12のステップS2においてパケットが到着しなかったと判定されたとき、パケットP
1~P
6がバッファ11に格納されているので、処理手段12は、ステップS12において、パケットP
1~P
6の全てを含む符号化パケットC
7,C
8を生成することができる。その結果、ステップS7において、符号化パケット(符号化パケットC
1~C
5の少なくとも1つ)を含む結合パケットまたは単体のパケット(
図9のパケットP
1,P
2,P
4,P
6等)が受信機2によって受信できなくても、ステップS10において、受信機2が受信できなかったパケット(パケットP
1~P
6のうちの一部のパケット)の個数以上の個数の符号化パケット(符号化パケットC
7,C
8等)を受信機2へ送信するように“K”を決定することによって、受信機2が受信できなかったパケット(パケットP
1~P
6のうちの一部のパケット)を復号できる。
【0220】
更に、
図8の(b)において説明したように、バーストを構成するパケットの個数M
Burstがバッファ11のサイズM
Bufferよりも大きい場合、
図10に示すように、パケットP
2~P
10がそれぞれ送信機1に到着したタイミングで、パケットP
2~P
10に、それぞれ、符号化パケットC
1~C
9を付与した結合パケットP
2/C
1,P
3/C
2,P
4/C
3,P
5/C
4,P
6/C
5,P
7/C
6,P
8/C
7,P
9/C
8,P
10/C
9を受信機2へ送信するようにすると、符号化パケットC
1~C
9は、次式によって表される。
【0221】
【0222】
式(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によって上書きされるからである。
【0223】
そして、単体のパケットP
1および結合パケットP
2/C
1,P
3/C
2,P
4/C
3,P
5/C
4,P
6/C
5,P
7/C
6,P
8/C
7,P
9/C
8,P
10/C
9は、
図12のステップS7において送信される。
【0224】
単体のパケット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によって受信できる。
【0225】
この場合、受信機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を受信できたことになる。
【0226】
しかし、送信機1は、
図12のステップS10~S12を5回繰り返し実行することによって、パケットP
5~P
10を含む5個の符号化パケットC
10~C
14を受信機2へ送信できる。5個の符号化パケットC
10~C
14は、次式によって表される。
【0227】
【0228】
そして、受信機2は、例えば、式(16)から4個の符号化パケットC10~C13を選択し、4個の符号化パケットC10~C13から受信済のパケットP5の情報を除去して符号化パケットC10’,C11’,C12’,C13’を生成する。符号化パケットC10’,C11’,C12’,C13’の各々は、4個のパケットP6~P10を含むので、次式の連立方程式を解くことによってパケットP6~P10を復号できる。
【0229】
【0230】
また、受信機2がパケットP1と、5個の結合パケットP6/C5,P7/C6,P8/C7,P9/C8,P10/C9とを受信でき、4個の結合パケットP2/C1,P3/C2,P4/C3,P5/C4を受信できなかったとすると、パケットP2~P5を受信できなかったことになる。
【0231】
そうすると、受信できなかったパケットの個数が“4個”であるので、式(15)の符号化パケットC5~C9から4個の符号化パケットC6~C9を選択し、符号化パケットC6~C9から受信済のパケットP1,P6~P9の情報を除去し、受信済のパケットP1,P6~P9の情報を除去した符号化パケットC6’~C9’を示す連立方程式を解くことによってパケットP2~P5を復号できる。
【0232】
このように、バーストを構成するパケットの個数MBurstがバッファ11のサイズMBufferよりも大きい場合においても、受信機2が受信できなかったパケットを復号できる。
【0233】
更に、
図12に示すフローチャート(
図13に示すフローチャートを含む)においては、送信機1は、バーストを構成するパケットP
1~P
6の各パケットが送信機1に到着する毎に、単体のパケットまたは結合パケット(符号化パケットを含む。)を受信機2へ送信するので、バーストを構成する複数のパケットP
1~P
6を低遅延で受信機2へ送信できる。
【0234】
送信機1は、バーストを構成するパケット(
図9に示すパケットP
1~P
6の全て)を受信機2へ送信した後、バーストを構成しないパケットPKT_N(
図4に示すPピクチャを示すパケット)がバッファ11に到着したと判定すると、上述した方法によって、バーストを構成しないパケットPKT_N(
図4に示すPピクチャを示すパケット)を受信機2へ送信する。
【0235】
このように、送信機1は、
図12に示すフローチャート(
図13に示すフローチャートを含む)に従って、バーストを構成しないパケットおよびバーストを構成するパケットを受信機2へ送信する。
【0236】
図14は、
図1および
図3に示す受信機2の動作を説明するためのフローチャートである。
【0237】
図14を参照して、受信機2の動作が開始されると、受信手段22は、アンテナ21を介してパケットを受信すると(ステップS21の“YES”)、その受信したパケットを処理手段23へ出力する。
【0238】
処理手段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を受信しなかったと判定する。
【0239】
ステップ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”からなるとき、結合パケットを受信しなかったと判定する。
【0240】
ステップS23において、結合パケットを受信したと判定されたとき、処理手段23は、NパケットとCパケット(=符号化パケット)とを分離する(ステップS24)。
【0241】
その後、処理手段23は、NパケットPKT_Nが有るか否かを判定する(ステップS25)。
【0242】
ステップS25において、NパケットPKTが有ると判定されたとき、またはステップS22において、NパケットPKT_Nを受信したと判定されたとき、処理手段23は、Nパケット受信処理を実行する(ステップS26)。
【0243】
その後、処理手段23は、Cパケット(=符号化パケット)が有るか否かを判定する(ステップS27)。
【0244】
そして、ステップS23において、結合パケットを受信しなかったと判定されたとき、またはステップS25において、NパケットPKT_Nが無いと判定されたとき、またはステップS27において、Cパケット(=符号化パケット)が有ると判定されたとき、処理手段23は、Cパケット(=符号化パケット)から受信済のNパケットPKT_Nの情報を除去する(ステップS28)。
【0245】
引き続いて、処理手段23は、復号処理を実行する(ステップS29)。そして、処理手段23は、復号できたか否かを判定する(ステップS30)。
【0246】
ステップS30において、復号できたと判定されたとき、ステップS30において、復号できなかったと判定されるまで、ステップS29,S30が繰り返し実行される。
【0247】
そして、ステップS27において、Cパケット(=符号化パケット)が無いと判定されたとき、またはステップS30において、復号できなかったと判定されたとき、一連の動作は、ステップS21へ移行する。以後、受信機2は、駆動されている限り、ステップ21~ステップS30を繰り返し実行する。
【0248】
なお、ステップS23において、結合パケットを受信しなかったと判定されたときに、一連の動作がステップS28へ移行するのは、受信機2によって受信されるパケットは、NパケットPKT_N、符号化パケットPKT_Cおよび結合パケットの3種類であり、ステップS22において、NパケットPKT_Nを受信しなかったと判定され、更に、ステップS23において、結合パケットを受信しなかったと判定されているので、受信機2が受信したパケットは、符号化パケットPKT_Cであるからである。
【0249】
図15は、
図14に示すステップS26の詳細な動作を説明するためのフローチャートである。
【0250】
図15を参照して、
図14のステップS22において、NパケットPKT_Nを受信したと判定されたとき、または
図14のステップS25において、NパケットPKT_Nが有ると判定されたとき、処理手段23は、受信したNパケットPKT_Nのシーケンス番号SN
rxが受信済、かつ、アプリケーション30へ送信済のNパケットPKT_Nのシーケンス番号SN
sent(即ち、Nバッファ24に格納されたNパケットのシーケンス番号)以下であるか否か、または受信したNパケットPKT_NがNバッファ24に格納済であるか否かを判定する(ステップS261)。
【0251】
ステップS261において、受信したNパケットPKT_Nのシーケンス番号SNrxが受信済、かつ、アプリケーション30へ送信済のNパケットPKT_Nのシーケンス番号SNsent以下であると判定されたとき、または受信したNパケットPKT_NがNバッファ24に格納済であると判定されたとき、処理手段23は、受信したNパケットPKT_Nを破棄する(ステップS262)。
【0252】
一方、ステップS261において、受信したNパケットPKT_Nのシーケンス番号SNrxが受信済、かつ、アプリケーション30へ送信済のNパケットPKT_Nのシーケンス番号SNsent以下でなく、かつ、受信したNパケットPKT_NがNバッファ24に格納済でないと判定されたとき、処理手段23は、受信したNパケットPKT_N(SNrx)をNバッファ24に格納する(ステップS263)。
【0253】
そして、処理手段23は、i=1を設定し(ステップS264)、シーケンス番号SNsent+iを有するパケットPKT_NがNバッファ24に存在するか否かを判定する(ステップS265)。なお、iは、1,2,3,・・・の整数である。
【0254】
ステップ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が繰り返し実行される。
【0255】
そして、ステップS265において、シーケンス番号SNsent+iを有するパケットPKT_NがNバッファ24に存在しないと判定されると、処理手段23は、SNsent=SNsent+i-1を設定する(ステップS268)。
【0256】
そして、ステップS262またはステップS268の後、一連の動作は、
図14のステップS27へ移行する。
【0257】
図15に示すステップS263~ステップS267は、新たに受信したNパケットPKT_NをNバッファ24に格納するとともにアプリケーション30に伝送するステップである。そして、i≧2であるときに、ステップS265においてシーケンス番号SN
sent+iを有するパケットPKT_NがNバッファ24に存在しないと判定されると、ステップS268において、Nバッファ24における受信済のNパケットPKT_Nの最新のシーケンス番号SN
sentが更新される。
【0258】
図16は、
図14に示すステップS28の詳細な動作を説明するためのフローチャートである。
【0259】
図16を参照して、
図14のステップS23において、結合パケットを受信しなかったと判定されたとき、または
図14のステップS25において、Nパケットが無いと判定されたとき、または
図14のステップS27において、Cパケット(符号化パケット)が有ると判定されたとき、処理手段23は、i=1を設定し(ステップS281)、Nバッファ24からパケットX
iを取得する(ステップS282)。ここで、iは、Nバッファ24に格納された各パケットX
iを表し、1~Iである。そして、Iは、Nバッファ24に格納されたパケットX
iの総数である。
【0260】
ステップS282の後、処理手段23は、パケットXiのシーケンス番号SNが符号化パケットYのCoded infoに含まれるか否かを判定する(ステップS283)。
【0261】
ステップS283において、パケットXiのシーケンス番号SNが符号化パケットYのCoded infoに含まれると判定されたとき、処理手段23は、符号化パケットYとパケットXiとの排他的論理和を演算することによって符号化パケットYから受信済のパケットXiの情報を除去する(ステップS284)。
【0262】
そして、ステップS283において、パケットXiのシーケンス番号SNが符号化パケットYのCoded infoに含まれていないと判定されたとき、またはステップS284の後、処理手段23は、i=Iであるか否かを判定する(ステップS285)。
【0263】
ステップS285において、i=Iでないと判定されたとき、処理手段23は、i=i+1を設定する(ステップS286)。その後、一連の動作は、ステップS282へ移行し、ステップS285において、i=Iであると判定されるまで、ステップS282~ステップS286が繰り返し実行される。
【0264】
そして、ステップS285において、i=Iであると判定されると、処理手段23は、符号化パケットYに含まれていた情報の全てを受信済であるか否かを判定する(ステップS287)。この場合、処理手段23は、符号化パケットYがY={000・・・0}であるとき、符号化パケットYに含まれていた情報の全てを受信済であると判定し、符号化パケットYがY={000・・・0}でないとき、符号化パケットYに含まれていた情報の全てを受信済であることは無い(即ち、符号化パケットYに含まれていた情報の一部を受信済でない)と判定する。
【0265】
ステップS287において、符号化パケットYに含まれていた情報の全てを受信済であることは無いと判定されたとき、処理手段23は、符号化パケットYに含まれるNパケット数が“1”であるか否かを判定する(ステップS288)。
【0266】
ステップS288において、符号化パケットYに含まれるNパケット数が“1”でないと判定されたとき、処理手段23は、符号化パケットYをCバッファ25に保存する(ステップS289)。
【0267】
一方、ステップS288において、符号化パケットYに含まれるNパケット数が“1”であると判定されたとき、処理手段23は、式(13)によって符号化パケットYをパケットXに変換し、その変換したパケットXに対して、上述した「Nパケット受信処理」(
図15に示すフローチャート)を実行する(ステップS290)。
【0268】
そして、ステップS287において、符号化パケットYに含まれていた情報の全てを受信済であると判定されたとき、またはステップS289の後、またはステップS290の後、一連の動作は、
図14のステップS29へ移行する。
【0269】
図16に示すフローチャートにおいては、ステップS285において、i=Iであると判定されるまで、ステップS282~ステップS286が繰り返し実行されることによって、符号化パケットYから受信済の全てのパケットX
1~X
Iの情報が除去される。即ち、ステップS285において、i=Iであると判定されるまで、ステップS282~ステップS286が繰り返し実行されることによって、Nバッファ24に格納されていない複数のパケット(=受信済でない複数のパケット)のみを含む符号化パケットCが生成される。
【0270】
図17は、
図14に示すステップS29の詳細な動作を説明するためのフローチャートである。
【0271】
図17を参照して、
図14のステップS28の後、またはステップS30において復号できたと判定されたとき、処理手段23は、2個以上の符号化パケットYがCバッファ25に存在するか否かを判定する(ステップS291)。
【0272】
ステップS291において、2個以上の符号化パケットYがCバッファ25に存在しないと判定されたとき、一連の動作は、
図14のステップS21へ移行する。
【0273】
一方、ステップS291において、2個以上の符号化パケットYがCバッファ25に存在すると判定されたとき、処理手段23は、i=1を設定する(ステップS292)。ここで、iは、Cバッファ25に格納された各符号化パケットYiを表し、1~Iである。そして、Iは、Cバッファ25に格納された符号化パケットYiの総数である。
【0274】
ステップS292の後、処理手段23は、Cバッファ25から符号化パケットYiを取得する(ステップS293)。
【0275】
そして、処理手段23は、符号化パケットY
iに対して「符号化パケットから受信済のパケットX
iの情報を除去」(
図16のフローチャート)を実行する(ステップS294)。
【0276】
その後、処理手段23は、符号化パケットYiに含まれるNパケット数が“1”以下であるか否かを判定する(ステップS295)。
【0277】
ステップS295において、符号化パケットYiに含まれるNパケット数が“1”以下であると判定されると、処理手段23は、符号化パケットYiをCバッファ25から消去する(ステップS296)。
【0278】
そして、ステップS295において、符号化パケットYiに含まれるNパケット数が“1”以下でないと判定されたとき、またはステップS296の後、処理手段23は、i=Iであるか否かを判定する(ステップS297)。
【0279】
ステップS297において、i=Iでないと判定されたとき、処理手段23は、i=i+1を設定する(ステップS298)。その後、一連の動作は、ステップS293へ移行し、ステップS297において、i=Iであると判定されるまで、ステップS293~ステップS298が繰り返し実行される。
【0280】
そして、ステップS297において、i=Iであると判定されると、処理手段23は、複数のNパケットを含む符号化パケットCがCバッファ25に複数存在するか否かを判定する(ステップS299)。
【0281】
ステップS299において、複数のNパケットを含む符号化パケットCがCバッファ25に複数存在すると判定されたとき、処理手段23は、Cバッファ25から複数の符号化パケットYを取得し、その取得した複数の符号化パケットYを表す連立方程式を解いてCパケット(符号化パケット)を復号する(ステップS300)。
【0282】
そして、ステップS299において、複数のNパケットを含む符号化パケットCがCバッファ25に複数存在しないと判定されたとき、またはステップS300の後、処理手段23は、i=1を設定し(ステップS301)、復号できたNパケット数が“i”以上であるか否かを判定する(ステップS302)。
【0283】
ステップS302において、復号できたNパケット数が“i”以上であると判定されたとき、処理手段23は、復号されたNパケットに対して「Nパケット受信処理」(
図15のフローチャート)を実行する(ステップS303)。そして、処理手段23は、i=i+1を設定する(ステップS304)。その後、一連の動作は、ステップS302へ移行し、ステップS302において、復号できたNパケット数が“i”以上でないと判定されるまで、ステップS302~ステップS304が繰り返し実行される。
【0284】
そして、ステップS302において、復号できたNパケット数が“i”以上でないと判定されると、一連の動作は、
図14のステップS30へ移行する。
【0285】
図17に示すフローチャートにおいては、
図16のステップS287において、符号化パケットYに含まれていた情報の全てを受信済であると判定された後に、またはステップS290の後にステップS291へ移行した場合、ステップS291において、2個以上の符号化パケットYがCバッファ25に存在しないと判定され、一連の動作は、
図14のステップS21へ移行する。
【0286】
一方、
図16のステップS289の後にステップS291へ移行した場合において、ステップS291において、2個以上の符号化パケットYがCバッファ25に存在すると判定されたとき、上述したステップS292~ステップS304が順次実行され、ステップS291において、2個以上の符号化パケットYがCバッファ25に存在しないと判定されたとき、一連の動作は、
図14のステップS21へ移行する。
【0287】
また、
図17に示すフローチャートにおいては、ステップS302において、復号できたNパケット数がi以上でないと判定されるまで、ステップS302~ステップS304が繰り返し実行されるのは、符号化パケットCを復号することによって取得された全てのNパケットに対して「Nパケット受信処理」(
図15のフローチャート)を実行するためである。
【0288】
図18は、バーストを構成するパケットの受信時におけるNバッファ24およびCバッファ25の変遷を示す図である。
【0289】
なお、
図18は、バーストを構成するパケットが
図9に示すパケットP
1~P
6からなる場合において、バーストを構成するパケットの受信時におけるNバッファ24およびCバッファ25の変遷を示す。
【0290】
図18を参照して、送信機1がパケットP
1を送信すると、受信機2は、パケットP
1の受信に失敗するので、
図14のステップS21においては、受信機2の受信手段22は、パケットP
1を受信しない。その結果、Nバッファ24およびCバッファ25には、パケットが格納されない(
図18の(a)参照)。
【0291】
その後、送信機1がパケットP
2を送信すると、受信機2の受信手段22は、アンテナ21を介してパケットP
2を受信し(
図14のステップS21の“YES”参照)、その受信したパケットP
2を処理手段23へ出力する。
【0292】
処理手段23は、パケットP
2を受信手段22から受けると、パケットP
2のPacket infoの識別子N/Cが“N”からなることを確認してNパケットを受信したと判定する(
図14のステップS22の“YES”参照)。そして、処理手段23は、パケットP
2に対してNパケット受信処理を実行し(
図14のステップS26参照)、パケットP
2のシーケンス番号SN
rxが受信済、かつ、アプリケーション30へ送信済のNパケットPKT_Nのシーケンス番号SN
sent(即ち、Nバッファ24に格納されたNパケットのシーケンス番号)よりも大きく、かつ、受信パケットがNバッファ24に格納済でないと判定し(
図15のステップS261の“NO”参照)、パケットP
2をNバッファ24に格納するとともにパケットP
2をアプリケーション30へ伝送する(
図15のステップS263~S266参照)。そして、処理手段23は、i=2であるときに、SN
sent+i(=SN
sent+2)のパケットがNバッファ24に存在しないと判定し(
図15のステップS265の“NO”参照)、SN
sent=SN
sent+i-1=SN
sent+2-1=SN
sent+1によってNバッファ24に格納されたNパケットPKT_Nのシーケンス番号SN
sentを更新する(
図15のステップS268参照)。その後、処理手段23は、Cパケットが無いと判定し(
図14のステップS27の“NO”参照)、受信機2の動作は、
図14のステップS21へ移行する。この段階で、パケットP
2がNバッファ24に格納される(
図18の(b)参照)。
【0293】
引き続いて、送信機1が結合パケットP
3/C
2を送信すると、受信機2は、結合パケットP
3/C
2の受信に失敗するので、
図14のステップS21においては、受信機2の受信手段22は、結合パケットP
3/C
2を受信しない。その結果、Nバッファ24およびCバッファ25の状態は、変化しない(
図18の(c)参照)。
【0294】
その後、送信機1がパケットP
4を送信すると、受信機2は、上述したパケットP
2の受信時における動作と同じ動作を実行する。その結果、パケットP
4がNバッファ24に格納される(
図18の(d)参照)。
【0295】
そして、送信機1が結合パケットP
5/C
4を送信すると、受信機2の受信手段22は、アンテナ21を介して結合パケットP
5/C
4を受信し(
図14のステップS21の“YES”参照)、その受信した結合パケットP
5/C
4を処理手段23へ出力する。
【0296】
処理手段23は、結合パケットP
5/C
4を受信手段22から受けると、結合パケットP
5/C
4のPacket infoの識別子N/Cが“N”からなり、かつ、Coded infoの識別子N/Cが“C”からなることを確認し、NパケットPKT_Nを受信しなかったと判定するとともに(
図14のステップS22の“NO”参照)、結合パケットを受信したと判定する(
図14のステップS23の“YES”参照)。
【0297】
その後、処理手段23は、結合パケットP
5/C
4のNパケットP
5と符号化パケットC
4とを分離し(
図14のステップS24参照)、Nパケットが有ると判定し(
図14のステップS25の“YES”参照)、パケットP
5に対してNパケット受信処理を実行する(
図14のステップS26参照)。そして、処理手段23は、Nパケット受信処理において、パケットP
5のシーケンス番号SN
rxが受信済、かつ、アプリケーション30へ送信済のNパケットPKT_Nのシーケンス番号SN
sent(即ち、Nバッファ24に格納されたNパケットのシーケンス番号)よりも大きく、かつ、受信パケットがNバッファ24に格納されていないと判定し(
図15のステップS261の“NO”参照)、パケットP
5をNバッファ24に格納するとともにパケットP
5をアプリケーション30へ伝送する(
図15のステップS263~S266参照)。そして、処理手段23は、i=2であるときに、Nバッファ24にSN
sent+i(=SN
sent+2)のパケットが存在しないと判定し(
図15のステップS265の“NO”参照)、SN
sent=SN
sent+i-1=SN
sent+2-1=SN
sent+1によってNバッファ24に格納されたNパケットPKT_Nのシーケンス番号SN
sentを更新する(
図15のステップS268参照)。その後、処理手段23は、Cパケットが有ると判定し(
図14のステップS27の“YES”参照)、Cパケットから受信済のNパケットの情報を除去する(
図14のステップS28参照)。この時点で、Nバッファ24には、パケットP
2,P
4,P
5が格納されており(
図18の(e)参照)、符号化パケットC
4は、パケットP
1~P
4を含むので、処理手段23は、符号化パケットC
4とパケットP
2,P
4との排他的論理和を順次演算して符号化パケットC
4から受信済のパケットP
2,P
4の情報を除去する(
図16のステップS282~ステップS286参照)。
【0298】
符号化パケットC
4から受信済のパケットP
2,P
4の情報を除去した後の符号化パケットC
4’は、式(9)によって表わされる。その結果、処理手段23は、符号化パケットC
4に含まれていた情報の全てを受信済であることは無いと判定し(
図16のステップS287の“NO”参照)、符号化パケットC
4’に含まれるNパケット数が“1”でないと判定し(
図16のステップS288の“NO”参照)、符号化パケットC
4’をCバッファ25に格納する(
図16のステップS289参照)。これによって、Nバッファ24には、3個のパケットP
2,P
4,P
5が格納され、Cバッファ25には、1個の符号化パケットC
4’が格納される(
図18の(e)参照)。
【0299】
図16のステップS289の後、受信機2の動作は、
図14のステップS29へ移行し、
図14のステップS29の詳細な動作を示す
図17のステップS291において、処理手段23は、2個以上の符号化パケットYがCバッファ25に存在しないと判定し、受信機2の動作は、
図14のステップS21へ移行する。
【0300】
その後、送信機1がパケットP
6を送信すると、受信機2は、上述したパケットP
2の受信時における動作と同じ動作を実行する。その結果、パケットP
6がNバッファ24に格納される(
図18の(f)参照)。そして、パケットP
6がNバッファ24に格納された後、処理手段23は、Cパケットが無いと判定するので(
図14のステップS27の“NO”参照)、受信機2の動作は、
図14のステップS21へ移行する。
【0301】
引き続いて、送信機1が符号化パケットC
6を送信すると、受信機2の受信手段22は、アンテナ21を介して符号化パケットC
6を受信し(
図14のステップS21の“YES”参照)、その受信した符号化パケットC
6を処理手段23へ出力する。
【0302】
処理手段23は、符号化パケットC
6を受信手段22から受けると、符号化パケットC
6のPacket infoの識別子N/Cが“C”からなるので、Nパケットを受信しなかったと判定し(
図14のステップS22の“NO”参照)、結合パケットを受信しなかったと判定する(
図14のステップS23の“NO”参照)。
【0303】
従って、処理手段23は、符号化パケットC
6から受信済のパケットの情報を除去する(
図14のステップS28参照)。この段階では、Nバッファ24には、パケットP
2,P
4,P
5,P
6が格納されており、符号化パケットC
6は、パケットP
1~P
6を含むので(式(6)参照)、処理手段23は、符号化パケットC
6とパケットP
2,P
4,P
5,P
6との排他的論理和を順次演算して符号化パケットC
6から受信済のパケットP
2,P
4,P
5,P
6の情報を除去する(
図16のステップS282~ステップS286参照)。
【0304】
符号化パケットC
6から受信済のパケットP
2,P
4,P
5,P
6の情報を除去した後の符号化パケットC
6’は、式(10)によって表わされる。その結果、処理手段23は、符号化パケットC
6に含まれていた情報の全てを受信済であることは無いと判定し(
図16のステップS287の“NO”参照)、符号化パケットC
6’に含まれるNパケット数が“1”でないと判定し(
図16のステップS288の“NO”参照)、符号化パケットC
6’をCバッファ25に格納する(
図16のステップS289参照)。これによって、Nバッファ24には、4個のパケットP
2,P
4,P
5,P
6が格納され、Cバッファ25には、2個の符号化パケットC
4’,C
6’が格納される(
図18の(g)参照)。
【0305】
そうすると、処理手段23は、複数のNパケットを含む符号化パケットが複数存在すると判定し(
図17のステップS299の“YES”参照)、符号化パケットC
4’を表す式(9)と符号化パケットC
6’を表す式(10)との連立方程式を解いてCパケットを復号する(
図17のステップS300参照)。これによって、2つのNパケットP
1,P
3が得られる。
【0306】
その後、処理手段23は、i=1を設定し(
図17のステップS301参照)、復号できたNパケット数がi(=1)以上であると判定し(
図17のステップS302の“YES”参照)、NパケットP
1に対して「Nパケット受信処理」(
図15に示すフローチャート)を実行する(
図17のステップS303参照)。そして、処理手段23は、Nパケット受信処理において、パケットP
1のシーケンス番号SN
rxが受信済、かつ、アプリケーション30へ送信済のNパケットPKT_Nのシーケンス番号SN
sent(即ち、Nバッファ24に格納されたNパケットのシーケンス番号)よりも大きく、かつ、受信パケット(=パケットP
1)がNバッファ24に格納済でないと判定し(
図15のステップS261の“NO”参照)、パケットP
1をNバッファ24に格納するとともにパケットP
1をアプリケーション30へ伝送する(
図15のステップS263~S266参照)。そして、処理手段23は、i=2であるときに、Nバッファ24にSN
sent+i(=SN
sent+2)のパケットが存在しないと判定し(
図15のステップS265の“NO”参照)、SN
sent=SN
sent+i-1=SN
sent+2-1=SN
sent+1によってNバッファ24に格納されたNパケットPKT_Nのシーケンス番号SN
sentを更新する(
図15のステップS268参照)。
【0307】
図17のステップS303において、「Nパケット受信処理」(
図15に示すフローチャート)が実行される場合、
図15のステップS268の後、受信機2の動作は、
図15のステップS304へ移行するので、処理手段23は、i=i+1=2を設定し(
図17のステップS304参照)、復号できたNパケット数がi(=2)以上であると判定し(
図17のステップS302の“YES”参照)、NパケットP
2に対して「Nパケット受信処理」(
図15に示すフローチャート)を実行する(
図17のステップS303参照)。そして、処理手段23は、Nパケット受信処理において、パケットP
2のシーケンス番号SN
rxが受信済、かつ、アプリケーション30へ送信済のNパケットPKT_Nのシーケンス番号SN
sent(即ち、Nバッファ24に格納されたNパケットのシーケンス番号)よりも大きく、かつ、受信パケット(=パケットP
2)がNバッファ24に格納済でないと判定し(
図15のステップS261の“NO”参照)、パケットP
2をNバッファ24に格納するとともにパケットP
2をアプリケーション30へ伝送する(
図15のステップS263~S266参照)。そして、処理手段23は、i=2であるときに、SN
sent+i(=SN
sent+2)のパケットがNバッファ24に存在しないと判定し(
図15のステップS265の“NO”参照)、SN
sent=SN
sent+i-1=SN
sent+2-1=SN
sent+1によってNバッファ24に格納されたNパケットPKT_Nのシーケンス番号SN
sentを更新する(
図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へ移行する。
【0308】
この段階で、Nバッファ24およびCバッファ25には、パケットが格納されていない(
図18の(h)参照)。これによって、バーストを構成するパケット(パケットP
1~P
6)の受信処理が終了する。
【0309】
パケットの受信処理を示す
図14に示すフローチャート(
図15から
図17に示すフローチャートを含む)においては、
図14のステップS28において、「Cパケットから受信済のNパケットの情報を除去」することを実行した後に、ステップS29における復号処理の詳細な動作を示す
図17のフローチャートのステップS294において「符号化パケットから受信済のパケットX
iの情報を除去」することを実行するのは、次の理由による。
【0310】
送信機1の動作を示す
図12のフローチャートにおいては、ステップS9において、最後のパケットがバッファ11に到着した後、Tミリ秒が経過したと判定されると、送信機1は、ステップS11において、符号化パケットの送信数がKであると判定されるまで符号化パケットCを受信機2へ送信する(ステップS10~ステップS12参照)。この場合、上述したように、送信機1は、符号化パケットC
6(=a
61P
1+a
62P
2+a
63P
3+a
64P
4+a
65P
5+a
66P
6)、符号化パケットC
7(=a
71P
1+a
72P
2+a
73P
3+a
74P
4+a
75P
5+a
76P
6)および符号化パケットC
8(=a
81P
1+a
82P
2+a
83P
3+a
84P
4+a
85P
5+a
86P
6)を受信機2へ送信する。そして、ここでは、符号化パケットC
6における符号a
63は、零であるとする。即ち、符号化パケットC
6は、実質的に、C
6=a
61P
1+a
62P
2+a
64P
4+a
65P
5+a
66P
6からなるものとする。
【0311】
その結果、受信機2は、
図12のステップS7において送信された符号化パケットC(例えば、符号化パケットC
2)を受信できなくても、ステップS10において送信された符号化パケットC
6~C
8を受信できる。
【0312】
そうすると、受信機2の処理手段23は、Nパケットを受信しなかったと判定し(
図14のステップS22の“NO”参照)、かつ、結合パケットを受信しなかったと判定し(
図14のステップS23の“NO”参照)、符号化パケットC
6から受信済のNパケットP
2,P
4,P
5,P
6の情報を除去する(
図14のステップS28(
図16のフローチャートのステップS261~ステップS286)参照)。その結果、処理手段23は、符号化パケットC
6’=a
61P
1を取得する。
【0313】
そして、処理手段23は、符号化パケットYに含まれていた情報の全てを受信済でないと判定し(
図16のステップS287の“NO”参照)、符号化パケットC
6’に含まれるNパケット数が“1”であると判定し(
図16のステップS288の“YES”参照)、符号化パケットC
6’=a
61P
1を式(13)によってP
1に変換して「Nパケット受信処理」(
図15に示すフローチャート)を実行する(
図16のステップS290参照)。
【0314】
この場合、「Nパケット受信処理」は、パケットP
1に対して初めて実行されるので、処理手段23は、パケットP
1のシーケンス番号SN
rxが受信済、かつ、アプリケーション30へ送信済のNパケットPKT_Nのシーケンス番号SN
sent(即ち、Nバッファ24に格納されたNパケットのシーケンス番号)よりも大きく、かつ、受信パケット(パケットP
1)がNバッファ24に格納済でないと判定し(
図15のステップS261の“NO”参照)、パケットP
1をNバッファ24に格納する(
図15のステップS263参照)。この段階で、パケットP
1,P
2,P
4,P
5,P
6がNバッファ24に格納されている。
【0315】
そして、処理手段23は、
図16のステップS290の後に、復号処理(
図14のステップS29参照)の詳細な動作を示す
図17のフローチャートにおいてステップS293~ステップS298を複数回繰り返し実行することによって、ステップS294において、符号化パケットC
4’(=a
41P
1+a
43P
3)からパケットP
1の情報を除去し、符号化パケットC
7(=a
71P
1+a
72P
2+a
73P
3+a
74P
4+a
75P
5+a
76P
6)からパケットP
1,P
2,P
4,P
5,P
6の情報を除去し、符号化パケットC
8(=a
81P
1+a
82P
2+a
83P
3+a
84P
4+a
85P
5+a
86P
6)からパケットP
1,P
2,P
4,P
5,P
6の情報を除去する。
【0316】
このように、新たに取得されたパケットP
1(Nパケット)の情報を符号化パケットC
4’,C
7,C
8から除去するために、
図14のステップS28において、「Cパケットから受信済のNパケットの情報を除去」することを実行した後に、ステップS29における復号処理の詳細な動作を示す
図17のフローチャートのステップS294において「符号化パケットから受信済のパケットX
iの情報を除去」することを実行することにしたのである。
【0317】
この発明の実施の形態においては、送信機1の動作は、ソフトウェアによって実現されてもよい。この場合、送信機1は、CPU(Central Processing Unit)、ROM(Read Only Memory)およびRAM(Random Access Memory)を備える。そして、ROMは、
図12に示すフローチャート(
図13に示すフローチャートを含む)の各ステップからなるプログラムProg_Aを記憶する。
【0318】
CPUは、ROMからプログラムProg_Aを読み出し、その読み出したプログラムProg_Aを実行して、パケットを受信機2へ送信する動作を実行する。RAMは、上述したバッファ11の機能を果たす。
【0319】
また、プログラムProg_Aは、CD,DVD等の記録媒体に記録されて流通してもよい。プログラムProg_Aを記録した記録媒体がコンピュータに装着されると、コンピュータは、記録媒体からプログラムProg_Aを読み出して実行し、パケットを受信機2へ送信する動作を実行する。
【0320】
従って、プログラムProg_Aを記録した記録媒体は、コンピュータ読み取り可能な記録媒体である。
【0321】
また、この発明の実施の形態においては、受信機2の動作は、ソフトウェアによって実現されてもよい。この場合、受信機2は、CPU、ROMおよびRAMを備える。そして、ROMは、
図14に示すフローチャート(
図15から
図17に示すフローチャートを含む)の各ステップからなるプログラムProg_Bを記憶する。
【0322】
CPUは、ROMからプログラムProg_Bを読み出し、その読み出したプログラムProg_Bを実行して、パケットの受信処理を実行する。RAMは、上述したNバッファ24およびCバッファ25の機能を果たす。
【0323】
また、プログラムProg_Bは、CD,DVD等の記録媒体に記録されて流通してもよい。プログラムProg_Bを記録した記録媒体がコンピュータに装着されると、コンピュータは、記録媒体からプログラムProg_Bを読み出して実行し、パケットの受信処理を実行する。
【0324】
従って、プログラムProg_Bを記録した記録媒体は、コンピュータ読み取り可能な記録媒体である。
【0325】
図19は、この発明の実施の形態による別の無線通信システムの概略図である。この発明の実施の形態による無線通信システムは、
図19に示す無線通信システム10Aであってもよい。
【0326】
図19を参照して、無線通信システム10Aは、
図1に示す無線通信システム10の送信機1を送信装置100に変えたものであり、その他は、
図1に示す無線通信システム10と同じである。
【0327】
送信装置100は、送信機1Aと、基地局AP_T_1~AP_T_S(Sは、2以上の整数である。)とを含む。
【0328】
送信機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との間で建物等による電波の遮蔽が発生し難い位置に配置される。
【0329】
送信機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へ送信する。
【0330】
基地局AP_T_1~AP_T_Sは、それぞれ、有線ケーブル3_1~3_Sを介して単体のパケットまたは結合パケットを送信機1Aから受信し、その受信した単体のパケットまたは結合パケットをそれぞれネットワークNW_1~NW_Sを介して受信機2へ送信する。
【0331】
また、基地局AP_T_1~AP_T_Sは、それぞれ、有線ケーブル3_1~3_Sを介して符号化パケットを送信機1Aから受信し、その受信した符号化パケットをそれぞれネットワークNW_1~NW_Sを介して受信機2へ送信する。
【0332】
なお、無線通信システム10Aにおいては、受信機2は、それぞれ、ネットワークNW_1~NW_Sを介して基地局AP_T_1~AP_T_Sから単体のパケット、結合パケットおよび符号化パケットを受信し、
図14に示すフローチャート(
図15から
図17に示すフローチャートを含む。)に従って、その受信した単体のパケット、結合パケットおよび符号化パケットに対して、上述した受信処理を実行し、受信処理後のパケットをアプリケーション30へ伝送する。
【0333】
無線通信システム10Aにおいては、送信装置100は、相互に異なる通信範囲を有する基地局AP_T_1~AP_T_SによってパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を受信機2へ送信するので、受信機2との間で建物等による電波の遮蔽を抑制して、リアルタイムトラフィックを構成するパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を高い信頼性で迅速に受信機2へ送信できる。
【0334】
図20は、この発明の実施の形態による更に別の無線通信システムの概略図である。この発明の実施の形態による無線通信システムは、
図20に示す無線通信システム10Bであってもよい。
【0335】
図20を参照して、無線通信システム10Bは、
図1に示す無線通信システム10の受信機2を受信装置200に変えたものであり、その他は、
図1に示す無線通信システム10と同じである。
【0336】
受信装置200は、基地局AP_R_1~AP_R_Sと、受信機2Aとを含む。
【0337】
受信機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との間で建物等による電波の遮蔽が発生し難い位置に配置される。
【0338】
基地局AP_R_1~AP_R_Sは、それぞれ、ネットワークNW_1~NW_Sを介してパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を受信し、その受信したパケットPKT(単体のパケット、結合パケットおよび符号化パケット)をそれぞれ有線ケーブル4_1~4_Sを介して受信機2Aへ送信する。
【0339】
受信機2Aは、それぞれ、有線ケーブル4_1~4_Sを介してパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を受信し、
図14に示すフローチャート(
図15から
図17に示すフローチャートを含む。)に従って、その受信したパケットPKT(単体のパケット、結合パケットおよび符号化パケット)に対して、上述した受信処理を実行し、受信処理後のパケットをアプリケーション30へ伝送する。
【0340】
無線通信システム10Bにおいては、受信装置200は、相互に異なる通信範囲を有する基地局AP_R_1~AP_R_SによってパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を送信機1から受信するので、建物等による電波の遮蔽を抑制して、リアルタイムトラフィックを構成するパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を高い信頼性で迅速に送信機1から受信できる。
【0341】
図21は、この発明の実施の形態による更に別の無線通信システムの概略図である。この発明の実施の形態による無線通信システムは、
図21に示す無線通信システム10Cであってもよい。
【0342】
図21を参照して、無線通信システム10Cは、送信装置100と、受信装置200とを備える。送信装置100の構成については、
図19において説明した通りである。また、受信装置200の構成については、
図20において説明した通りである。
【0343】
無線通信システム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についても同様である。
【0344】
送信機1Aは、
図12に示すフローチャート(
図13に示すフローチャートを含む。)に従って、アプリケーション20からパケットPKTを受信する毎に、その受信したパケットPKTに対して、上述した処理を実行してそれぞれ有線ケーブル3_1~3_Sを介してパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を基地局AP_T_1~AP_T_Sへ送信する。
【0345】
基地局AP_T_1は、送信機1Aから有線ケーブル3_1を介してパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を受信し、その受信したパケットPKT(単体のパケット、結合パケットおよび符号化パケット)をネットワークNW_1を介して基地局AP_R_1へ送信する。
【0346】
また、基地局AP_T_2は、送信機1Aから有線ケーブル3_2を介してパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を受信し、その受信したパケットPKT(単体のパケット、結合パケットおよび符号化パケット)をネットワークNW_2を介して基地局AP_R_2へ送信する。
【0347】
以下、同様にして、基地局AP_T_Sは、送信機1Aから有線ケーブル3_Sを介してパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を受信し、その受信したパケットPKT(単体のパケット、結合パケットおよび符号化パケット)をネットワークNW_Sを介して基地局AP_R_Sへ送信する。
【0348】
基地局AP_R_1は、ネットワークNW_1を介してパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を基地局AP_T_1から受信し、その受信したパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を有線ケーブル4_1を介して受信機2Aへ送信する。
【0349】
また、基地局AP_R_2は、ネットワークNW_2を介してパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を基地局AP_T_2から受信し、その受信したパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を有線ケーブル4_2を介して受信機2Aへ送信する。
【0350】
以下、同様にして、基地局AP_R_Sは、ネットワークNW_Sを介してパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を基地局AP_T_Sから受信し、その受信したパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を有線ケーブル4_Sを介して受信機2Aへ送信する。
【0351】
受信機2Aは、それぞれ、有線ケーブル4_1~4_Sを介して基地局AP_R_1~AP_R_SからパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を受信し、
図14に示すフローチャート(
図15から
図17に示すフローチャートを含む。)に従って、その受信したパケットPKT(単体のパケット、結合パケットおよび符号化パケット)に対して、上述した受信処理を実行し、受信処理後のパケットをアプリケーション30へ伝送する。
【0352】
無線通信システム10Cにおいては、基地局AP_T_1と基地局AP_R_1との間、基地局AP_T_2と基地局AP_R_2との間、・・・、基地局AP_T_Sと基地局AP_R_Sとの間でパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を送受信するので、無線通信システム10A,10Bよりも高い信頼性で迅速にリアルタイムトラフィックを構成するパケットPKT(単体のパケット、結合パケットおよび符号化パケット)を送受信できる。
【0353】
図22は、
図1に示す無線通信システム10の別の適用例を示す図である。
図22を参照して、受信機2およびアプリケーション30は、車両および電車内に配置される。送信機1は、アプリケーション20からのパケットPKTを車両および電車へブロードキャストする。
【0354】
受信機2は、送信機1からのパケットPKTを受信して受信処理を実行した後、パケットPKTをアプリケーション30へ伝送する。アプリケーション30は、画像を再生して表示部に表示する。これによって、車両および電車の運転手は、再生された画像をリアルタイムに見ることができる。
【0355】
また、上述した送信機1は、基地局内に設置され、受信機2は、基地局の通信範囲内において基地局からパケットを受信する端末装置内に設置されてもよい。これによって、端末装置は、基地局から送信されたリアルタイムトラフィックを構成するパケットを、遅延を抑制して受信し、その受信したパケットに含まれる画像を再生して表示部に表示する。従って、端末装置のユーザは、高い信頼性で画像をリアルタイムに見ることができる。
【0356】
上記においては、送信機1は、画像を受信機2へ送信すると説明したが、この発明の実施の形態においては、これに限らず、送信機1は、バーストを構成するパケットと、バーストを構成しないパケットとを送信するものであれば、画像以外の情報をペイロードに含むパケットを受信機2へ送信してもよい。
【0357】
この発明の実施の形態においては、Nパケットは、「単体パケット」を構成し、符号化パケットC2,C4の各々は、「第1の符号化パケット」を構成し、符号化パケットC6~C8の各々は、「第2の符号化パケット」を構成し、符号化パケットC4’,C6’等の符号化パケットC4,C6から受信済のパケットの情報を除去した後の符号化パケットは、「第3の符号化パケット」を構成する。
【0358】
また、この発明の実施の形態においては、P2/C1,P3/C2,P4/C3,P5/C4,P6/C5の各々は、「結合パケット」を構成する。
【0359】
更に、この発明の実施の形態においては、Nパケットを送信する処理は、「第1の送信処理」を構成し、P2/C1,P3/C2,P4/C3,P5/C4,P6/C5の各々を送信する処理は、「第2の送信処理」を構成し、符号化パケットC6~C8の各々を単独で送信する処理は、「第3の送信処理」を構成する。
【0360】
更に、この発明の実施の形態においては、Tミリ秒は、「しきい値」を構成する。
【0361】
更に、この発明の実施の形態においては、Nバッファ24は、「第1の受信バッファ」を構成し、Cバッファ25は、「第2の受信バッファ」を構成する。
【0362】
更に、この発明の実施の形態においては、P3/C2をパケットP3と符号化パケットC2に分離し、P5/C4をパケットP5と符号化パケットC4に分離し、P6/C5をパケットP6と符号化パケットC5に分離する処理手段23は、「分離手段」を構成する。
【0363】
更に、この発明の実施の形態においては、
図15のステップS261において、SN
rx≦SN
sentでなく、かつ、受信パケットがNバッファ24に格納済でないときに受信パケット(SN
rx)をNバッファ24に格納するとともにNバッファ24に格納されたパケットをアプリケーション30へ伝送する処理手段23は、「第1の処理手段」を構成する。
【0364】
更に、この発明の実施の形態においては、符号化パケットCから受信済のパケットの情報を除去した符号化パケットC4’,C6’を生成することは、Nバッファ24に格納されていない複数のパケットのみを含む符号化パケットを生成することに相当する。そして、符号化パケットCから受信済のパケットの情報を除去した符号化パケットC4’,C6’を生成する処理手段23は、「第2の処理手段」を構成する。
【0365】
更に、この発明の実施の形態においては、
図14のステップS29における復号処理を実行する処理手段23は、「復号手段」を構成する。
【0366】
更に、この発明の実施の形態においては、
図1に示す送信機1は、「送信装置」を構成し、
図1に示す受信機2は、「受信装置」を構成する。従って、この発明の実施の形態による送信装置は、送信機1または送信装置100によって構成され、この発明の実施の形態による受信装置は、受信機2または受信装置200によって構成される。
【0367】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【産業上の利用可能性】
【0368】
この発明は、送信装置、受信装置、これらを備えた無線通信システム、プログラムおよびプログラムを記録したコンピュータ読み取り可能な記録媒体に適用される。
【符号の説明】
【0369】
1,1A 送信機、2,2A 受信機、10,10A,10B,10C 無線通信システム、11 バッファ、12,23 処理手段、13 送信手段、14,21 アンテナ、22受信手段、24 Nバッファ、25 Cバッファ、20,30 アプリケーション,100 送信装置、200 受信装置。