(57)【特許請求の範囲】
【請求項１】
データパケットを順次入力し、所定数のデータパケットからパリティパケットを生成し、前記データパケット及び前記パリティパケットを送信する送信装置において、
送信順に入力された前記データパケットが格納されるメモリと、
前記メモリから、所定の列数及び所定の行数のデータパケット群を送信順に列方向に連続して構成した場合の斜め方向の前記所定数のデータパケットを読み出し、前記所定数のデータパケットから前記パリティパケットを生成するパリティパケット生成部と、
前記メモリから送信順に前記データパケットを読み出すと共に、前記パリティパケット生成部により生成された前記パリティパケットを入力し、前記データパケット及び前記パリティパケットを送信する送信部と、を備え、
前記パリティパケット生成部は、
前記送信順に列方向に連続して構成したデータパケット群のうち、右下への斜め方向の前記所定数のデータパケットから右下方向のパリティパケットを生成すると共に、左下への斜め方向の前記所定数のデータパケットから左下方向のパリティパケットを生成する規則が定められたパリティパケット生成規則に従って、前記右下方向のパリティパケット及び前記左下方向のパリティパケットをそれぞれ生成し、
前記送信部は、
前記メモリから送信順に前記データパケットを読み出すと共に、前記パリティパケット生成部により生成された前記右下方向のパリティパケット及び前記左下方向のパリティパケットを入力し、
前記データパケット、前記右下方向のパリティパケット及び前記左下方向のパリティパケットの送信順序が定められたパケット送信順序規則に従って、前記データパケット、前記右下方向のパリティパケット及び前記左下方向のパリティパケットを送信し、
前記パケット送信順序規則には、前記データパケット及び前記パリティパケットの送信順序につき、２個以上の前記パリティパケットが連続して送信されないように規則が定められている、ことを特徴とする送信装置。
【請求項２】
データパケットを順次入力し、所定数のデータパケットからパリティパケットを生成し、前記データパケット及び前記パリティパケットを送信する送信装置において、
送信順に入力された前記データパケットが格納されるメモリと、
前記メモリから、所定の列数及び所定の行数のデータパケット群を送信順に列方向に連続して構成した場合の斜め方向の前記所定数のデータパケットを読み出し、前記所定数のデータパケットから前記パリティパケットを生成するパリティパケット生成部と、
前記メモリから送信順に前記データパケットを読み出すと共に、前記パリティパケット生成部により生成された前記パリティパケットを入力し、前記データパケット及び前記パリティパケットを送信する送信部と、を備え、
前記パリティパケット生成部は、
前記送信順に列方向に連続して構成したデータパケット群のうち、右下または左下への斜め方向の前記所定数のデータパケットから右下方向または左下方向のパリティパケットを生成すると共に、列方向の前記所定数のデータパケットから列方向のパリティパケットを生成する規則が定められたパリティパケット生成規則に従って、前記右下方向または左下方向のパリティパケット及び前記列方向のパリティパケットをそれぞれ生成し、
前記送信部は、
前記メモリから送信順にデータパケットを読み出すと共に、前記パリティパケット生成部により生成された前記右下方向または左下方向のパリティパケット及び前記列方向のパリティパケットを入力し、
前記データパケット、前記右下方向または左下方向のパリティパケット及び前記列方向のパリティパケットの送信順序が定められたパケット送信順序規則に従って、前記データパケット、前記右下方向または左下方向のパリティパケット及び前記列方向のパリティパケットを送信し、
前記パケット送信順序規則には、前記データパケット及び前記パリティパケットの送信順序につき、２個以上の前記パリティパケットが連続して送信されないように規則が定められている、ことを特徴とする送信装置。
【請求項３】
データパケットを順次入力し、所定数のデータパケットからパリティパケットを生成し、前記データパケット及び前記パリティパケットを送信するパリティパケット生成方法において、
送信順に入力した前記データパケットをメモリに格納するステップと、
所定の列数及び所定の行数のデータパケット群を送信順に列方向に連続して構成した場合の複数の前記データパケット群のうち、右下への斜め方向の前記所定数のデータパケットから右下方向のパリティパケットを生成すると共に、複数の前記データパケット群のうち、左下への斜め方向の前記所定数のデータパケットから左下方向のパリティパケットを生成する規則が定められたパリティパケット生成規則に従って、前記メモリから前記所定数のデータパケットを読み出すステップと、
前記読み出した右下への斜め方向の所定数のデータパケットから前記右下方向のパリティパケットを生成するステップと、
前記読み出した左下への斜め方向の所定数のデータパケットから前記左下方向のパリティパケットを生成するステップと、
前記メモリから送信順に前記データパケットを読み出すステップと、
前記データパケット、前記右下方向のパリティパケット及び前記左下方向のパリティパケットの送信順序が定められたパケット送信順序規則に従って、前記読み出したデータパケット、前記生成した右下方向のパリティパケット及び左下方向のパリティパケットを送信順に並べて送信するステップと、を有し、
前記パケット送信順序規則には、前記データパケット及び前記パリティパケットの送信順序につき、２個以上の前記パリティパケットが連続して送信されないように規則が定められている、ことを特徴とするパリティパケット生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、消失したデータパケットを受信装置にて回復させるために用いるパリティパケットを生成して送信する送信装置、及びパリティパケットを生成して送信する方法に関する。
【背景技術】
【０００２】
近年、イーサネット（登録商標）に代表されるパケット化技術による映像信号伝送システムの開発が盛んに行われている。イーサネットでは、送信装置から送信されたイーサネットパケットが、イーサネット伝送路を構成するネットワーク機器（例えばルータ、スイッチ等）を経由して受信装置へ到達する。
【０００３】
一般に、送信装置は、送信するイーサネットパケット各々に対してチェックサムによりＦＣＳ（フレームチェックシーケンス）を計算し、イーサネットパケットにＦＣＳを付加して送信する。各ネットワーク機器は、受信したイーサネットパケットと、イーサネットパケットに付加されたＦＣＳとに基づいて、イーサネットパケットにおけるビット誤り及びビット欠落の有無を検知する。このような検知処理により、ビット誤りまたはビット欠落が検知されると、そのイーサネットパケットは破棄される。
【０００４】
これらのビット誤り及びビット欠落は、雑音に起因して発生したり、ネットワーク機器を経由する信号の処理能力が当該ネットワーク機器において不足していることに起因して発生したり、または、イーサネット伝送路の切り替えに起因して発生したりする等が考えられる。そのため、イーサネットパケットは、送信装置からイーサネット伝送路を経由して受信装置へ伝送される際に、消失することがあり得る。
【０００５】
このようなイーサネットパケットが伝送路にて消失した際のデータ回復手法としては、排他的論理和（ＸＯＲ）を用いた誤り訂正手法が用いられる（例えば、非特許文献１，２を参照）。この手法は、比較的小さい処理負荷にて、データを回復することができる。
【０００６】
（従来のパリティパケット生成手法及びデータ回復手法）
図１６は、非特許文献２のＡｎｎｅｘ  Ｂに記載された従来のＮｏｎ  Ｂｌｏｃｋ−Ａｌｉｇｎｅｄ  ＦＥＣ  Ａｒｒａｎｇｅｍｅｎｔ（以下、２次元ＦＥＣという。）によるパリティパケット生成処理を説明する図である。図１６において、Ｌはデータパケットに関する列数、Ｄは行数を示し、列数Ｌ＝４、行数Ｄ＝４である。
【０００７】
また、０，１等の数字を囲む四角は、送信されるデータパケットを示し、四角内の数字は、データパケットが送信される順番を示す。Ｒ（０），Ｒ（１）等を囲む四角は、行方向のパリティパケットを示し、四角内のＲにおける括弧内の数字は、行方向のパリティパケットが送信される順番を示す。Ｃ（０），Ｃ（１）等を囲む四角は、列方向のパリティパケットを示し、四角内のＣにおける括弧内の数字は、列方向のパリティパケットが送信される順番を示す。これらの送信される順番を示す番号は、それぞれのパケットのシーケンス番号として、パケットヘッダに格納される。
【０００８】
送信装置は、２次元ＦＥＣにより、データパケットを行方向及び列方向に分け、所定数（図１６では４）のデータパケット単位に排他的論理和（ＸＯＲ）を計算し、行方向のパリティパケットＲ（０），Ｒ（１）等及び列方向のパリティパケットＣ（０），Ｃ（１）等を生成する。例えば、送信装置は、データパケット０，１，２，３のＸＯＲを計算し、行方向のパリティパケットＲ（０）を生成する。同様に、送信装置は、データパケット０，４，８，１２のＸＯＲを計算し、列方向のパリティパケットＣ（４）を生成する。データパケットのビット数とパリティパケットのビット数は同じである。
【０００９】
ここで、行方向のパリティパケットＲ（０）の生成を“｛０，１，２，３｝→Ｒ（０）”とすると、他の行方向のパリティパケットの生成は、｛４，５，６，７｝→Ｒ（１）、｛８，９，１０，１１｝→Ｒ（２）、｛１２，１３，１４，１５｝→Ｒ（３）、・・・で表される。同様に、列方向のパリティパケットの生成は、｛０，４，８，１２｝→Ｃ（４）、｛５，９，１３，１７｝→Ｃ（５）、｛１０，１４，１８，２２｝→Ｃ（６）、｛１５，１９，２３，２７｝→Ｃ（７）、・・・で表される。列方向のパリティパケットは、インタリーブしたデータパケットから生成される。
【００１０】
送信装置は、データパケットと共に、データパケットから生成したパリティパケットを、伝送路を介して受信装置へ送信する。図１６の例では、１６個のデータパケットに対して８個のパリティパケットが定期的に生成され、これらのパケット群が１つの送信単位αとして送信される。
【００１１】
受信装置は、送信装置から送信されたデータパケット及びパリティパケットを受信し、データパケットが消失している場合、受信したパリティパケットに基づいて、消失したデータパケットを回復する。
【００１２】
図１６の例では、受信装置は、パリティパケットに基づいて、当該パリティパケットに対応する４個のデータパケット（当該パリティパケットを生成するために用いた４個のデータパケット）のうちの１個が消失した場合に、当該消失したデータパケットを回復することができる。例えば、｛０，１，２，３｝→Ｒ（０）であり、データパケット３が消失した場合、受信装置は、データパケット０，１，２及びパリティパケットＲ（０）からデータパケット３を回復することができる。
【００１３】
尚、パリティパケットに対応するデータパケットが２個以上消失した場合、または、パリティパケット及び当該パリティパケットに対応する１個のデータパケットが消失した場合、受信装置は、消失したデータパケットを回復することができない。例えば、｛０，１，２，３｝→Ｒ（０）であり、データパケット１，２またはデータパケット０，３が消失した場合、または、パリティパケットＲ（０）及びデータパケット３が消失した場合には、消失したデータパケットを回復することができない。
【００１４】
ここで、データパケット及びパリティパケットは、送信装置においてシリアル化され、送信装置から伝送路を介して受信装置へ送信される。すなわち、図１６の例では、データパケット０，パリティパケットＣ（０），データパケット１，２，３，パリティパケットＲ（０），データパケット４，５，パリティパケットＣ（１），データパケット６，・・・の順序で送信される。列方向のパリティパケットＣ（０），Ｃ（１）等は、当該パリティパケットが生成された後、Ｌ個のデータパケットの時間分（（Ｌ＋１）個のデータパケット及び行方向のパリティパケット）だけ遅延して送信される。
【００１５】
（パリティパケット生成手法及びデータ回復手法の条件）
このようなパリティパケット生成手法及びデータ回復手法においては、以下の２つの条件＜１＞＜２＞を満たすことが望ましい。
＜１＞送信信号（データパケットと、生成されたパリティパケットとから構成される送信信号）の伝送速度が大きく変動しないこと。
＜２＞伝送路の消失特性（ランダム消失、バースト消失）に関わらず、受信装置において、より多くの消失したデータパケットを回復可能なこと。
【００１６】
前記＜１＞の条件について、伝送速度が大きく変動した場合には、送信装置及び伝送路内のネットワーク機器の信号処理がその処理可能な能力を瞬間的に超えて、過負荷となる確率が高まる。そして、パケットは、結果として破棄される。
【００１７】
そこで、伝送速度が大きく変動することがないように、冗長なパリティパケットは、単位時間において定期的に平滑化して（均一に）生成されることが望ましい。ここで、単位時間とは、列数Ｌ×行数Ｄ毎のデータパケットの伝送に係る時間とする。尚、生成されるパリティパケットの平滑化のために、パリティパケットを一時的にバッファに蓄積して送信することも可能であるが、パリティパケットを蓄積するための回路が必要になる点、及び信号遅延の点で不利である。そのため、このような回路を用いることなく、パリティパケットを平滑化して生成し、伝送速度が大きく変動しないようにすることが望ましい。
【００１８】
図１６に示した従来の手法では、角丸四角で囲んだ列数４×行数４＝１６個毎のデータパケットの伝送に係る単位時間において、１６個のデータパケットに対して８個のパリティパケットが定期的に生成される。この場合、パリティパケットは、バッファに一旦蓄積して送信しなくても、伝送速度の変動は小さい。したがって、図１６に示した従来の手法は、前記＜１＞の条件を満たしているといえる。
【００１９】
次に、前記＜２＞の条件について、パケットの消失特性には、ランダム消失とバースト消失の２種類がある。ランダム消失では、パケットがランダムに消失（主に雑音に起因して消失）し、バースト消失では、パケットが連続的に消失（主にネットワーク機器の処理能力または切り替えに起因して消失）する。受信装置では、これらの消失特性に関わらず、より多くの消失したデータパケットを回復可能なことが望ましい。
【００２０】
（ランダム消失）
図１７は、従来手法におけるランダム消失の一例を示す図であり、図１６に対応している。四角、四角内の数字、Ｒ，Ｃ等は、図１６と同様である。
【００２１】
前述のとおり、データパケット及びパリティパケットは、送信装置から伝送路内のネットワーク機器を経由して送信され、受信装置にて受信する際に、消失していることがあり得る。図１７は、７個のデータパケット０，３，５，６，８，１４，１５及び２個のパリティパケットＣ（１），Ｃ（３）がランダム消失した例を示している。“×”で示したパケットが消失パケットである。
【００２２】
図１８は、従来手法におけるランダム消失からの回復の一例を示す図であり、図１７に対応している。前述のとおり、パリティパケットに対応する４個のデータパケット（当該パリティパケットを生成するために用いた４個のデータパケット）のうちの１個が消失した場合に、パリティパケット及び消失していない３個のデータパケットから、消失したデータパケットを回復することができる。
【００２３】
図１７において、消失したデータパケット８は、パリティパケットＲ（２）及びデータパケット９，１０，１１から回復することができ、消失したデータパケット０は、パリティパケットＣ（４）及びデータパケット４，８，１２（データパケット８は回復済み）から回復することができる。このように、図１８に示すように、図１７においてランダム消失した７個のデータパケット０，３，５，６，８，１４，１５は、回復することができる。この場合の残留消失データパケットの割合は、０パケット／７パケット＝０となる。
【００２４】
（バースト消失）
図１９は、従来手法におけるバースト消失の一例を示す図であり、図１６に対応している。四角、四角内の数字、Ｒ，Ｃ等は、図１６及び図１７と同様である。
【００２５】
図１９は、時間的に連続して送信されたパケットのうち、７個のデータパケット５〜１１及び３個のパリティパケットＣ（１），Ｒ（１），Ｃ（２）がバースト消失した例を示している。“×”で示したパケットが消失パケットである。このように、バースト消失においては、データパケットと関連するパリティパケットが消失する可能性が高い。
【００２６】
図２０は、従来手法におけるバースト消失からの回復の一例を示す図であり、図１９に対応している。図１９において、消失したデータパケット８は、パリティパケットＣ（４）及びデータパケット０，４，１２から回復することができ、消失したデータパケット１０も回復することができる。
【００２７】
しかし、消失したその他のデータパケット５〜７，９，１１は、正常に受信したパリティパケットが存在するにも関わらず、回復することができず、消失したデータパケットが残留してしまう。この場合の残留消失データパケットの割合は、５パケット／７パケット＝０．７１となり、消失したデータパケットのうち７１％のデータパケットが、回復できないことになる。
【先行技術文献】
【非特許文献】
【００２８】
【非特許文献１】Pro-MPEG Code of Practice #3 release 2, Pro-MPEG Forum, July 2004  “Transmission of Professional MPEG-2 Transport Streams over IP Networks”
【非特許文献２】SMPTE 2022-5:2012 “Forward Error Correction for High Bit Rate Media Transport Over IP Networks”
【発明の概要】
【発明が解決しようとする課題】
【００２９】
このように、従来手法では、バースト消失の場合に、図１９及び図２０に示したように、正常に受信したパリティパケットが存在するにも関わらず、消失したデータパケットの一部を回復することができない場合があり、残留消失データパケットの割合が大きくなるという問題があった。
【００３０】
そこで、本発明は前記課題を解決するためになされたものであり、その目的は、送信信号の伝送速度の変動を従来手法と同等とし、伝送路におけるパケットの消失特性がランダム消失の場合に、従来手法と同等の残留消失データパケットの割合を保ち、消失特性がバースト消失の場合に、当該割合を小さくすることが可能な送信装置及びパリティパケット生成方法を提供することにある。
【課題を解決するための手段】
【００３１】
前記目的を達成するために、請求項１の送信装置は、データパケットを順次入力し、所定数のデータパケットからパリティパケットを生成し、前記データパケット及び前記パリティパケットを送信する送信装置において、送信順に入力された前記データパケットが格納されるメモリと、前記メモリから、所定の列数及び所定の行数のデータパケット群を送信順に列方向に連続して構成した場合の斜め方向の前記所定数のデータパケットを読み出し、前記所定数のデータパケットから前記パリティパケットを生成するパリティパケット生成部と、前記メモリから送信順に前記データパケットを読み出すと共に、前記パリティパケット生成部により生成された前記パリティパケットを入力し、前記データパケット及び前記パリティパケットを送信する送信部と、を備え、前記パリティパケット生成部が、前記送信順に列方向に連続して構成したデータパケット群のうち、右下への斜め方向の前記所定数のデータパケットから右下方向のパリティパケットを生成すると共に、左下への斜め方向の前記所定数のデータパケットから左下方向のパリティパケットを生成する規則が定められたパリティパケット生成規則に従って、前記右下方向のパリティパケット及び前記左下方向のパリティパケットをそれぞれ生成し、前記送信部が、前記メモリから送信順に前記データパケットを読み出すと共に、前記パリティパケット生成部により生成された前記右下方向のパリティパケット及び前記左下方向のパリティパケットを入力し、前記データパケット、前記右下方向のパリティパケット及び前記左下方向のパリティパケットの送信順序が定められたパケット送信順序規則に従って、前記データパケット、前記右下方向のパリティパケット及び前記左下方向のパリティパケットを送信し、前記パケット送信順序規則には、前記データパケット及び前記パリティパケットの送信順序につき、２個以上の前記パリティパケットが連続して送信されないように規則が定められている、ことを特徴とする。
【００３２】
また、請求項２の送信装置は、データパケットを順次入力し、所定数のデータパケットからパリティパケットを生成し、前記データパケット及び前記パリティパケットを送信する送信装置において、送信順に入力された前記データパケットが格納されるメモリと、前記メモリから、所定の列数及び所定の行数のデータパケット群を送信順に列方向に連続して構成した場合の斜め方向の前記所定数のデータパケットを読み出し、前記所定数のデータパケットから前記パリティパケットを生成するパリティパケット生成部と、前記メモリから送信順に前記データパケットを読み出すと共に、前記パリティパケット生成部により生成された前記パリティパケットを入力し、前記データパケット及び前記パリティパケットを送信する送信部と、を備え、前記パリティパケット生成部が、前記送信順に列方向に連続して構成したデータパケット群のうち、右下または左下への斜め方向の前記所定数のデータパケットから右下方向または左下方向のパリティパケットを生成すると共に、列方向の前記所定数のデータパケットから列方向のパリティパケットを生成する規則が定められたパリティパケット生成規則に従って、前記右下方向または左下方向のパリティパケット及び前記列方向のパリティパケットをそれぞれ生成し、前記送信部が、前記メモリから送信順にデータパケットを読み出すと共に、前記パリティパケット生成部により生成された前記右下方向または左下方向のパリティパケット及び前記列方向のパリティパケットを入力し、前記データパケット、前記右下方向または左下方向のパリティパケット及び前記列方向のパリティパケットの送信順序が定められたパケット送信順序規則に従って、前記データパケット、前記右下方向または左下方向のパリティパケット及び前記列方向のパリティパケットを送信し、前記パケット送信順序規則には、前記データパケット及び前記パリティパケットの送信順序につき、２個以上の前記パリティパケットが連続して送信されないように規則が定められている、ことを特徴とする。
【００３６】
さらに、請求項３のパリティパケット生成方法は、データパケットを順次入力し、所定数のデータパケットからパリティパケットを生成し、前記データパケット及び前記パリティパケットを送信するパリティパケット生成方法において、送信順に入力した前記データパケットをメモリに格納するステップと、所定の列数及び所定の行数のデータパケット群を送信順に列方向に連続して構成した場合の複数の前記データパケット群のうち、右下への斜め方向の前記所定数のデータパケットから右下方向のパリティパケットを生成すると共に、複数の前記データパケット群のうち、左下への斜め方向の前記所定数のデータパケットから左下方向のパリティパケットを生成する規則が定められたパリティパケット生成規則に従って、前記メモリから前記所定数のデータパケットを読み出すステップと、前記読み出した右下への斜め方向の所定数のデータパケットから前記右下方向のパリティパケットを生成するステップと、前記読み出した左下への斜め方向の所定数のデータパケットから前記左下方向のパリティパケットを生成するステップと、前記メモリから送信順に前記データパケットを読み出すステップと、前記データパケット、前記右下方向のパリティパケット及び前記左下方向のパリティパケットの送信順序が定められたパケット送信順序規則に従って、前記読み出したデータパケット、前記生成した右下方向のパリティパケット及び左下方向のパリティパケットを送信順に並べて送信するステップと、を有し、前記パケット送信順序規則には、前記データパケット及び前記パリティパケットの送信順序につき、２個以上の前記パリティパケットが連続して送信されないように規則が定められている、ことを特徴とする。
【発明の効果】
【００３８】
以上のように、本発明によれば、送信信号の伝送速度の変動を従来手方と同等とすることができ、ランダム消失の場合に、従来手法と同等の残留消失データパケットの割合を保ち、バースト消失の場合に、当該割合を小さくすることが可能となる。
【図面の簡単な説明】
【００３９】
【図１】本発明の実施形態による送信装置及び受信装置を含む伝送システムの概略を示す全体図である。
【図２】本発明の実施形態による送信装置の構成を示すブロック図である。
【図３】実施例１におけるパリティパケット生成処理を説明する図である。
【図４】実施例１における右下方向のパリティパケットの生成処理を示すフローチャートである。
【図５】実施例１における左下方向のパリティパケットの生成処理を示すフローチャートである。
【図６】（ａ）は、実施例１におけるパリティパケット生成規則を示す図である。（ｂ）は、実施例１におけるパケット送信順序規則を示す図である。
【図７】本発明の実施形態による受信装置の構成を示すブロック図である。
【図８】実施例１におけるデータ回復処理を示す図である。
【図９】実施例１におけるランダム消失の一例を示す図である。
【図１０】実施例１におけるランダム消失からの回復の一例を示す図である。
【図１１】実施例１におけるバースト消失の一例を示す図である。
【図１２】実施例１におけるバースト消失からの回復の一例を示す図である。
【図１３】実施例２におけるパリティパケット生成処理を説明する図である。
【図１４】（ａ）は、実施例２におけるパリティパケット生成規則を示す図である。（ｂ）は、実施例２におけるパケット送信順序規則を示す図である。
【図１５】実施例１，２及び従来手法における消失データパケットの回復特性のシミュレーション結果を示す図である。
【図１６】従来の２次元ＦＥＣによるパリティパケット生成処理を説明する図である。
【図１７】従来手法におけるランダム消失の一例を示す図である。
【図１８】従来手法におけるランダム消失からの回復の一例を示す図である。
【図１９】従来手法におけるバースト消失の一例を示す図である。
【図２０】従来手法におけるバースト消失からの回復の一例を示す図である。
【図２１】従来手法における行方向のパリティパケットの生成処理を示すフローチャートである。
【図２２】従来手法における列方向のパリティパケットの生成処理を示すフローチャートである。
【図２３】（ａ）は、従来手法におけるパリティパケット生成規則を示す図である。（ｂ）は、従来手法におけるパケット送信順序規則を示す図である。
【図２４】実施例１の変形例におけるパリティパケット生成処理を説明する図である。
【図２５】（ａ）は、実施例１の変形例におけるパリティパケット生成規則を示す図である。（ｂ）は、実施例１の変形例におけるパケット送信順序規則を示す図である。
【発明を実施するための形態】
【００４０】
以下、本発明を実施するための形態について図面を用いて詳細に説明する。本発明は、所定の列数（Ｌ：正の整数）及び所定の行数（Ｄ：正の整数）からなるＬ×Ｄ個のデータパケット群を送信順に列方向（例えば、後述する図３において下方向、列が延びる方向）に連続して構成した場合に、斜め方向の複数のデータパケットのＸＯＲ演算により、パリティパケットを生成することを特徴とする。
【００４１】
〔伝送システム〕
まず、伝送システムについて説明する。図１は、本発明の実施形態による送信装置及び受信装置を含む伝送システムの概略を示す全体図である。この伝送システムは、送信装置１及び受信装置２を備えて構成される。送信装置１及び受信装置２は、イーサネットの伝送路３を介して接続される。尚、伝送路３は、インターネット等の他のネットワークであってもよい。
【００４２】
〔送信装置１〕
次に、図１に示した送信装置１について説明する。図２は、送信装置１の構成を示すブロック図である。この送信装置１は、メモリ１０、パリティパケット生成部１１及び送信部１２を備えている。送信装置１の図示しない入力部は、データパケットを順次入力し、入力したデータパケットをメモリ１０に格納する。
【００４３】
パリティパケット生成部１１は、所定のパリティパケット生成規則に従って、メモリ１０から所定数の斜め方向のデータパケット（所定の列数及び所定の行数のデータパケット群を送信順に列方向（列が延びる方向）に連続して構成した場合の斜め方向のデータパケット）を読み出し、読み出した所定数のデータパケットに対してＸＯＲ演算を施し、パリティパケットを生成する。そして、パリティパケット生成部１１は、生成したパリティパケットを送信部１２に出力する。
【００４４】
送信部１２は、メモリ１０からデータパケットを読み出すと共に、パリティパケット生成部１１からパリティパケットを入力し、所定のパリティパケット生成規則に従って、データパケットにデータパケットのシーケンス番号を付与し、当該シーケンス番号、及びデータパケットであることを示す識別フラグをヘッダに格納する。また、送信部１２は、パリティパケットにパリティパケットのシーケンス番号を付与し、当該シーケンス番号、及びパリティパケットであることを示す識別フラグをヘッダに格納する。
【００４５】
送信部１２は、所定のパケット送信順序規則に従って、送信する順番にデータパケット及びパリティパケットを並べる。そして、送信部１２は、送信する順番に並べたデータパケット及びパリティパケットをイーサネットパケットのペイロードに格納することでイーサネットパケットを生成し、生成したイーサネットパケットを受信装置２へ送信する。
【００４６】
これにより、送信装置１から、所定のパリティパケット生成規則に従って、所定の列数及び所定の行数のデータパケット群を送信順に列方向に連続して構成した場合の斜め方向のデータパケットからパリティパケットが生成され、所定のパケット送信順序規則に従って、データパケット及びパリティパケットが伝送路３を介して受信装置２へ送信される。
【００４７】
以下、図２に示した送信装置１のパリティパケット生成部１１について、実施例１，２を挙げて説明する。実施例１のパリティパケット生成部１１は、所定のパリティパケット生成規則に従って、右下方向（右下への斜め方向）の複数のデータパケットからパリティパケットを生成すると共に、左下方向（左下への斜め方向）の複数のデータパケットからパリティパケットを生成する。
【００４８】
実施例２のパリティパケット生成部１１は、所定のパリティパケット生成規則に従って、左下方向の複数のデータパケットからパリティパケットを生成すると共に、列方向の複数のデータパケットからパリティパケットを生成する。そして、送信部１２は、所定のパケット送信順序規則に従って、データパケット及び実施例１，２のパリティパケット生成部１１により生成されたパリティパケットを送信する。
【００４９】
（パリティパケット生成部１１／実施例１）
実施例１のパリティパケット生成部１１について詳細に説明する。前述のとおり、実施例１のパリティパケット生成部１１は、右下方向のパリティパケット及び左下方向のパリティパケットを生成する。
【００５０】
図３は、実施例１におけるパリティパケット生成処理を説明する図である。図３において、０，１等の数字を囲む四角等は、図１６と同様である。Ｒ（０），Ｒ（１）等を囲む四角は、右下方向の４個のデータパケットから生成されるパリティパケット（右下方向のパリティパケット）を示し、Ｃ（０），Ｃ（１）等を囲む四角は、左下方向の４個のデータパケットから生成されるパリティパケット（左下方向のパリティパケット）を示す。列数Ｌ＝４、行数Ｄ＝４である。
【００５１】
図３において、データパケット０〜１５、データパケット１６〜３１等のそれぞれが、列数Ｌ＝４及び行数Ｄ＝４のデータパケット群であり、これらのデータパケット群が送信順に列方向に連続して構成されている。後述する図１３及び図２４も同様である。
【００５２】
パリティパケット生成部１１は、所定のパリティパケット生成規則に従って、データパケットを右下方向及び左下方向に分け、所定数（本例では４）のデータパケット単位にＸＯＲを計算し、右下方向のパリティパケットＲ（０），Ｒ（１）等及び左下方向のパリティパケットＣ（０），Ｃ（１）等を生成する。例えば、パリティパケット生成部１１は、データパケット０，５，１０，１５のＸＯＲを計算し、右下方向のパリティパケットＲ（３）を生成する。同様に、パリティパケット生成部１１は、データパケット３，６，９，１２のＸＯＲを計算し、左下方向のパリティパケットＣ（３）を生成する。
【００５３】
図１６の説明と同様に表記すると、右下方向のパリティパケットの生成は、｛０，５，１０，１５｝→Ｒ（３）、｛４，９，１４，１９｝→Ｒ（４）、｛８，１３，１８，２３｝→Ｒ（５）、｛１２，１７，２２，２７｝→Ｒ（６）、・・・で表される。同様に、左下方向のパリティパケットの生成は、｛３，６，９，１２｝→Ｃ（３）、｛７，１０，１３，１６｝→Ｃ（４）、｛１１，１４，１７，２０｝→Ｃ（５）、｛１５，１８，２１，２４｝→Ｃ（６）、・・・で表される。
【００５４】
そして、送信部１２は、所定のパケット送信順序規則に従って、データパケット及びパリティパケット生成部１１により生成されたパリティパケットをシリアル化し、イーサネットパケットとして伝送路３を介して受信装置２へ送信する。すなわち、図３の例では、送信部１２は、・・・，パリティパケットＣ（０），データパケット４，５，６，７，パリティパケットＲ（０），Ｃ（１），データパケット８，９，１０，１１，・・・の順番で送信する。
【００５５】
このように、図３において、角丸四角で囲んだ単位時間で見た場合、１６個のデータパケットに対して８個のパリティパケットが定期的に生成され、これらのパケット群が１つの送信単位αとして送信される。また、パリティパケットは、２個連続して送信されるが、送信単位α内において分散しているといえる。したがって、送信信号の伝送速度の変動は小さいから、図１６に示した従来手法と同様に、前記＜１＞の条件（送信信号の伝送速度が大きく変動しないこと）を満たすことになる。
【００５６】
図４は、実施例１における右下方向のパリティパケットの生成処理を示すフローチャートであり、図５は、実施例１における左下方向のパリティパケットの生成処理を示すフローチャートである。Ｄ（ｉ−Ｌ×（Ｄ−１）＋ｋ×（Ｌ＋１））は、（ｉ−Ｌ×（Ｄ−１）＋ｋ×（Ｌ＋１））番目のデータパケット、Ｄ（ｉ−Ｌ×（Ｄ−２）−１＋ｋ×（Ｌ−１））は、（ｉ−Ｌ×（Ｄ−２）−１＋ｋ×（Ｌ−１））番目のデータパケットをそれぞれ示す。Ｒ（ｊ）はｊ番目の右下方向のパリティパケット、Ｃ（ｊ）はｊ番目の左下方向のパリティパケットをそれぞれ示す。
【００５７】
まず、図４を参照して、右下方向のパリティパケットの生成処理について説明する。パリティパケット生成部１１は、１個目のデータパケットを入力した時点で、右下方向のパリティパケットの生成処理を開始する。
【００５８】
パリティパケット生成部１１は、変数ｉ，ｊに０を設定し（ステップＳ４０１）、終了条件を満たしているか否かを判定する（ステップＳ４０２）。終了条件とは、データパケットの入力がなくなることをいう。
【００５９】
パリティパケット生成部１１は、ステップＳ４０２において、終了条件を満たしていないと判定した場合（ステップＳ４０２：Ｎ）、変数ｋに０を設定すると共に、右下方向のパリティパケットＲ（ｊ）に０を設定する（ステップＳ４０３）。
【００６０】
パリティパケット生成部１１は、変数ｋが所定の列数Ｌよりも小さいか否かを判定する（ステップＳ４０４）。パリティパケット生成部１１は、ステップＳ４０４において、変数ｋが所定の列数Ｌよりも小さいと判定した場合（ステップＳ４０４：Ｙ）、以下の式により、ＸＯＲ演算にて右下方向のパリティパケットＲ（ｊ）を生成する（ステップＳ４０５）。すなわち、パリティパケット生成部１１は、パリティパケット生成規則に従って、メモリ１０から所定のデータパケットを読み出し、ＸＯＲ演算にて右下方向のパリティパケットＲ（ｊ）を生成する。
【数１】
0006457282.tif 000002
ここで、
0006457282.tif 000003
は、ＸＯＲを表す演算子である。
【００６１】
パリティパケット生成部１１は、変数ｋをインクリメントし（ステップＳ４０６）、ステップＳ４０４へ移行する。そして、パリティパケット生成部１１は、ステップＳ４０４の条件を満たす限り、ステップＳ４０４〜ステップＳ４０６の処理を繰り返す。図３の例では、パリティパケット生成部１１は、ステップＳ４０４〜ステップＳ４０６の処理を４回繰り返す。
【００６２】
図６（ａ）は、実施例１におけるパリティパケット生成規則を示す図である。このパリティパケット生成規則には、図３において、送信装置１の送信部１２が一連のパケットを送信する時間的な流れの中で、列数Ｌ×行数Ｄ（４×４＝１６）のデータパケット０〜１５を送信する時間単位に対応して、さらに右下方向のパリティパケットＲ（−１）〜Ｒ（２）及び左下方向のパリティパケットＣ（−１）〜Ｃ（２）のパケット群を送信単位αとして送信する場合に、データパケットから右下方向のパリティパケットＲ（−１）〜Ｒ（２）及び左下方向のパリティパケットＣ（−１）〜Ｃ（２）を生成する規則が定められている。
【００６３】
図６（ａ）の左側に示すように、パリティパケット生成部１１は、ステップＳ４０４〜ステップＳ４０６を４回繰り返すことで、ステップＳ４０５の前記数式（１）により、データパケット−１６，−１１，−６，−１からパリティパケットＲ（−１）を生成する。同様に、パリティパケット生成部１１は、データパケット−１２，−７，−２，３からパリティパケットＲ（０）を、データパケット−８，−３，２，７からパリティパケットＲ（１）を、データパケット−４，１，６，１１からパリティパケットＲ（２）をそれぞれ生成する。ここで、例えばデータパケット−１６は、データパケット０よりも１６個手前に入力したデータパケットを示す。
【００６４】
尚、図１６に示した従来手法では、行方向のパリティパケットを生成するために、以下の式により、ＸＯＲ演算が行われる。
【数２】
0006457282.tif 000004
【００６５】
図２１は、従来手法における行方向のパリティパケットの生成処理を示すフローチャートである。この従来手法における行方向のパリティパケットの生成処理と、図４に示す実施例１における右下方向のパリティパケットの生成処理とを比較すると、従来手法のステップＳ２１０１〜ステップＳ２１０４と実施例１のステップＳ４０１〜ステップＳ４０４とが同一であるが、従来手法のステップＳ２１０５〜ステップＳ２１０７と実施例１のステップＳ４０５〜ステップＳ４０７とが異なる点で相違する。ステップＳ２１０５の処理において、前記数式（２）のＸＯＲ演算が行われる。この場合のパリティパケット生成規則は、図２３（ａ）の左側に示すとおりである。
【００６６】
図４に戻って、パリティパケット生成部１１は、ステップＳ４０４において、変数ｋが所定の列数Ｌよりも小さくないと判定した場合（ステップＳ４０４：Ｎ）、ステップＳ４０７へ移行する。これにより、右下方向の４個のデータパケットから右下方向のパリティパケットＲ（ｊ）が生成される。
【００６７】
パリティパケット生成部１１は、ステップＳ４０４から移行して、変数ｉにＬを加算して新たな変数ｉを算出すると共に、変数ｊをインクリメントし（ステップＳ４０７）、ステップＳ４０２へ移行し、ステップＳ４０２の終了条件を満たさない限り、ステップＳ４０３〜ステップＳ４０７の処理を繰り返す。
【００６８】
パリティパケット生成部１１は、ステップＳ４０２において、終了条件を満たしていると判定した場合（ステップＳ４０２：Ｙ）、すなわち、データパケットの入力がなくなった場合に、右下方向のパリティパケットの生成処理を終了する。
【００６９】
次に、図５を参照して、左下方向のパリティパケットの生成処理について説明する。パリティパケット生成部１１は、図４に示した右下方向のパリティパケットの生成処理と同様に、１個目のデータパケットを入力した時点で、左下方向のパリティパケットの生成処理を開始する。
【００７０】
パリティパケット生成部１１は、変数ｉ，ｊに０を設定し（ステップＳ５０１）、前述と同じ終了条件を満たしているか否かを判定する（ステップＳ５０２）。パリティパケット生成部１１は、ステップＳ５０２において、終了条件を満たしていないと判定した場合（ステップＳ５０２：Ｎ）、変数ｋに０を設定すると共に、左下方向のパリティパケットＣ（ｊ）に０を設定する（ステップＳ５０３）。
【００７１】
パリティパケット生成部１１は、変数ｋが所定の列数Ｌよりも小さいか否かを判定する（ステップＳ５０４）。パリティパケット生成部１１は、ステップＳ５０４において、変数ｋが所定の列数Ｌよりも小さいと判定した場合（ステップＳ５０４：Ｙ）、以下の式により、ＸＯＲ処理にて左下方向のパリティパケットＣ（ｊ）を生成する（ステップＳ５０５）。すなわち、パリティパケット生成部１１は、パリティパケット生成規則に従って、メモリ１０から所定のデータパケットを読み出し、ＸＯＲ演算にて左下方向のパリティパケットＣ（ｊ）を生成する。
【数３】
0006457282.tif 000005
【００７２】
パリティパケット生成部１１は、変数ｋをインクリメントし（ステップＳ５０６）、ステップＳ５０４へ移行する。そして、パリティパケット生成部１１は、ステップＳ５０４の条件を満たす限り、ステップＳ５０４〜ステップＳ５０６の処理を繰り返す。図３の例では、パリティパケット生成部１１は、ステップＳ５０４〜ステップＳ５０６の処理を４回繰り返す。
【００７３】
図６（ａ）を参照して、図６（ａ）の右側に示すように、パリティパケット生成部１１は、送信部１２が一連のパケットを送信する時間的な流れの中で、前記数式（３）により、データパケット−１３，−１０，−７，−４からパリティパケットＣ（−１）を生成する。同様に、パリティパケット生成部１１は、データパケット−９，−６，−３，０からパリティパケットＣ（０）を、データパケット−５，−２，１，４からパリティパケットＣ（１）を、データパケット−１，２，５，８からパリティパケットＣ（２）をそれぞれ生成する。ここで、例えばデータパケット−１３は、データパケット０よりも１３個手前に入力したデータパケットを示す。
【００７４】
尚、図１６に示した従来手法では、列方向のパリティパケットを生成するために、以下の式により、ＸＯＲ演算が行われる。
【数４】
0006457282.tif 000006
ここで、“ｍｏｄ”は剰余演算を表す。
【００７５】
図２２は、従来手法における列方向のパリティパケットの生成処理を示すフローチャートである。この従来手法における列方向のパリティパケットの生成処理と、図５に示す実施例１における左下方向のパリティパケットの生成処理とを比較すると、従来手法のステップＳ２２０１〜ステップＳ２２０３，ステップＳ２２０６，ステップＳ２２０７と実施例１のステップＳ５０１〜ステップＳ５０３，ステップＳ５０６，ステップＳ５０７とが同一であるが、従来手法のステップＳ２２０４，ステップＳ２２０５と実施例１のステップＳ５０４，ステップＳ５０５とが異なる点で相違する。ステップＳ２２０５の処理において、前記数式（４）のＸＯＲ演算が行われる。この場合のパリティパケット生成規則は、図２３（ａ）の右側に示すとおりである。
【００７６】
図５に戻って、パリティパケット生成部１１は、ステップＳ５０４において、変数ｋが所定の列数Ｌよりも小さくないと判定した場合（ステップＳ５０４：Ｎ）、ステップＳ５０７へ移行する。これにより、左下方向の４個のデータパケットから左下方向のパリティパケットＣ（ｊ）が生成される。
【００７７】
パリティパケット生成部１１は、ステップＳ５０４から移行して、変数ｉにＬを加算して新たな変数ｉを算出すると共に、変数ｊをインクリメントし（ステップＳ５０７）、ステップＳ５０２へ移行し、ステップＳ５０２の終了条件を満たさない限り、ステップＳ５０３〜ステップＳ５０７の処理を繰り返す。
【００７８】
パリティパケット生成部１１は、ステップＳ５０２において、終了条件を満たしていると判定した場合（ステップＳ５０２：Ｙ）、すなわち、データパケットの入力がなくなった場合に、左下方向のパリティパケットの生成処理を終了する。
【００７９】
このように、図４の処理により右下方向のパリティパケットが生成され、図５の処理により、左下方向のパリティパケットが生成される。
【００８０】
（送信部１２／実施例１）
図６（ｂ）は、実施例１におけるパケット送信順序規則を示す図である。このパケット送信順序規則には、図３において、送信部１２が一連のパケットを送信する時間的な流れの中で、列数Ｌ×行数Ｄ（４×４＝１６）のデータパケット０〜１５を送信する時間単位に対応して、さらに右下方向のパリティパケットＲ（−１）〜Ｒ（２）及び左下方向のパリティパケットＣ（−１）〜Ｃ（２）のパケット群を送信単位αとして送信する場合の送信順序が定められている。
【００８１】
送信部１２は、データパケット０〜１５、右下方向のパリティパケットＲ（−１）〜Ｒ（２）及び左下方向のパリティパケットＣ（−１）〜Ｃ（２）のパケット群を送信単位αとして送信する際に、メモリ１０からデータパケット０〜１５を読み出すと共に、パリティパケット生成部１１からパリティパケットＲ（−１）〜Ｒ（２），Ｃ（−１）〜Ｃ（２）を入力する。
【００８２】
送信部１２は、図６（ｂ）のパケット送信順序規則に従って、パリティパケットＣ（−１），データパケット０，１，２，３，パリティパケットＲ（−１），Ｃ（０），データパケット４，５，６，７，パリティパケットＲ（０），・・・，パリティパケットＲ（２）を順番に並べてシリアル化する。そして、送信部１２は、これらのパケットを格納したイーサネットパケットを生成し、生成したイーサネットパケットを、伝送路３を介して受信装置２へ送信する。
【００８３】
以上のように、本発明の実施形態の送信装置１によれば、実施例１のパリティパケット生成部１１は、所定の列数Ｌ（＝４）及び行数Ｄ（＝４）のデータパケットを単位とした場合に、図６（ａ）のパリティパケット生成規則に従って、右下方向の４個のデータパケットから右下方向のパリティパケットを生成すると共に、左下方向の４個のデータパケットから左下方向のパリティパケットを生成するようにした。そして、実施例１の送信部１２は、図６（ｂ）のパケット送信順序規則に従って、データパケット、右下方向のパリティパケット及び左下方向のパリティパケットを順番に並べ、イーサネットパケットに格納して送信するようにした。
【００８４】
これにより、パリティパケットに対応する複数のデータパケット（パリティパケットを生成するために用いる複数のデータパケット）は、時間的に連続して送信されることがない。つまり、時間的に連続してパケットが消失するバースト消失が発生した場合、パリティパケットに対応する複数のデータパケットのうち２個以上のパリティパケットが消失する可能性は、図１６に示した従来手法よりも低くなり、後述する受信装置２において、消失したデータパケットは回復しやすくなる。これは、図１６に示した従来手法では、行方向のパリティパケットに対応する複数のデータパケットが時間的に連続して送信され、バースト消失が発生した場合、行方向のパリティパケットに対応する複数のデータパケットが消失しやすいからである。
【００８５】
また、図３に示したとおり、１６個のデータパケットに対して８個のパリティパケットが定期的に生成され、８個のパリティパケットは分散しており、これらのパケット群が１つの送信単位αとして送信されるから、図１６に示した従来手法と同様に、伝送速度の変動は小さい。
【００８６】
また、ランダムにパケットが消失するランダム消失が発生した場合、消失が発生するタイミングが不定であるから、パリティパケットに対応する複数のデータパケットのうち２個以上のパリティパケットが消失する可能性は、図１６に示した従来手法と同等である。
【００８７】
したがって、送信信号の伝送速度の変動を従来手法と同等とすることができ、ランダム消失が発生した場合には、残留消失データパケットの割合を、図１６に示した従来手法と同等に保つことができる。また、バースト消失が発生した場合には、残留消失データパケットの割合を、従来手法よりも小さくすることができる。
【００８８】
〔受信装置２〕
次に、図１に示した受信装置２について説明する。図７は、受信装置２の構成を示すブロック図である。この受信装置２は、受信部２０、メモリ２１及びデータパケット回復部２２を備えている。
【００８９】
受信部２０は、送信装置１から送信されたイーサネットパケットを受信し、イーサネットパケットのペイロードからデータパケット及びパリティパケットを抽出する。そして、受信部２０は、抽出したデータパケットのヘッダから識別フラグ及びシーケンス番号を抽出し、識別フラグに基づいて、データパケット及びパリティパケットを区別する。
【００９０】
受信部２０は、データパケットについて、そのシーケンス番号に基づいて、データパケットを昇順に並び替える。
【００９１】
受信部２０は、昇順に並び替えたデータパケットのシーケンス番号が不連続の場合、不連続のシーケンス番号の間で抜けているシーケンス番号のデータパケットが消失データパケットであると判定する。そして、受信部２０は、予め設定された固定値で構成する（例えば、全てのデータをビット“０”で構成する）と共に、抜けているシーケンス番号をヘッダに格納したデータパケットを消失データパケットとして生成する。受信部２０は、昇順に並び替えたデータパケットに対し、生成した消失データパケットを不連続の箇所に挿入する。
【００９２】
受信部２０は、抽出したパリティパケット、及びシーケンス番号順に並べたデータパケット（消失データパケットを含む）をメモリ２１に格納する。これにより、メモリ２１には、パリティパケットが格納されると共に、消失データパケットを含む昇順に並んだデータパケットが、受信データパケット列として格納される。
【００９３】
つまり、メモリ２１には、パリティパケット、及び、送信順であるシーケンス番号順に並び替えたデータパケット及び消失データパケットからなるデータパケット群であって、所定の列数Ｌ及び所定の行数Ｄのデータパケット群を送信順に列方向に連続して構成した場合の複数のデータパケット群が格納されている。
【００９４】
データパケット回復部２２は、メモリ２１から昇順にデータパケットを読み出し、読み出したデータパケットのうち、予め設定された固定値で構成された消失データパケットを検出する。
【００９５】
データパケット回復部２２は、消失データパケットに対応するパリティパケット、及び当該パリティパケットに対応する消失データパケット以外のデータパケットに基づいて、消失データパケットを回復する。これにより、消失データパケットを、元のデータパケットに復元することができる。
【００９６】
具体的には、データパケット回復部２２は、所定のデータパケット回復規則に従って、消失データパケットに対応するパリティパケットを特定し、メモリ２１から特定したパリティパケットを読み出す。そして、データパケット回復部２２は、メモリ２１に格納された前述の複数のデータパケット群から、当該パリティパケットに対応する所定数の斜め方向のデータパケットを読み出し、消失データパケットを回復する。所定のデータパケット回復規則は、前述のパリティパケット生成規則に対応して、その逆の規則が定義されたものである。例えば、送信装置１は、パリティパケット生成規則を表したテーブルを備えており、受信装置２は、パリティパケット生成規則に対応するパリティパケット回復規則を表したテーブルを備えている。
【００９７】
データパケット回復部２２は、メモリ２１から読み出したデータパケット及び回復したデータパケットを、シーケンス番号順に出力する。
【００９８】
これにより、所定のデータパケット回復規則に従って、所定の列数及び所定の行数のデータパケット群を送信順に列方向に連続して構成した場合の斜め方向のデータパケット及びこれらのデータパケットに対応するパリティパケットに基づいて、消失データパケットが回復する。
【００９９】
（データパケット回復部２２／実施例１）
次に、実施例１のデータパケット回復部２２について詳細に説明する。図８は、実施例１におけるデータ回復処理を示すフローチャートであり、列数Ｌ×行数Ｄのデータパケットの伝送に係る単位時間に対応した回復処理を示している。Ｄ（ｉ＋ｊ）は、（ｉ＋ｊ）番目のデータパケットを示す。
【０１００】
データパケット回復部２２は、ある単位時間の最初のパリティパケットを入力してからデータ回復処理を開始する。データパケット回復部２２は、変数ｉをある単位時間の先頭データパケットのシーケンス番号に設定し（ステップＳ８０１）、終了条件を満たしているか否かを判定する（ステップＳ８０２）。終了条件とは、パリティパケットの入力がなくなることをいう。例えば、ステップＳ８０１において、変数ｉ＝０が先頭データパケットのシーケンス番号として設定される。
【０１０１】
データパケット回復部２２は、ステップＳ８０２において、終了条件を満たしていないと判定した場合（ステップＳ８０２：Ｎ）、変数ｊ及び変数ｋに０をそれぞれ設定する（ステップＳ８０３）。
【０１０２】
データパケット回復部２２は、データパケットＤ（ｉ＋ｊ）が消失しており、かつ当該データパケットＤ（ｉ＋ｊ）が回復可能であるか否かを判定する（ステップＳ８０４）。ここで、データパケットＤ（ｉ＋ｊ）が回復可能であると判定されるのは、当該データパケットＤ（ｉ＋ｊ）に対応するパリティパケット（当該データパケットＤ（ｉ＋ｊ）を含む所定数のデータパケットから生成されたパリティパケット）が存在し（消失しておらず）、かつ、当該パリティパケットに対応する所定数のデータパケット（当該パリティパケットを生成するために用いた所定数のデータパケット）のうち、当該データパケットＤ（ｉ＋ｊ）のみが消失している場合である。
【０１０３】
この場合、データパケット回復部２２は、予め設定された固定値で構成された消失データパケットを検索する。つまり、データパケット回復部２２は、データパケットが予め設定された固定値で構成されたデータパケットである場合、当該データパケットＤ（ｉ＋ｊ）を消失データパケットと判定する。そして、データパケット回復部２２は、消失データパケットの回復を試みる。
【０１０４】
例えば、消失データパケットのシーケンス番号（ｉ＋ｊ）＝２とした場合、データパケット回復部２２は、図６（ａ）に示したパリティパケット生成規則に対応するデータパケット回復規則に従って、消失データパケットＤ（２）に対応する右下方向のパリティパケットＲ（１）を特定する。そして、データパケット回復部２２は、特定したパリティパケットＲ（１）に対応する斜め方向の４個のデータパケットＤ（−８），Ｄ（−３），Ｄ（２），Ｄ（７）のうち、消失データパケットＤ（２）以外のデータパケットＤ（−８），Ｄ（−３），Ｄ（７）の全てが消失データパケットでないと判定した場合、消失データパケットＤ（２）が回復可能であると判定する。
【０１０５】
また、データパケット回復部２２は、パリティパケットＲ（１）を用いた場合、消失データパケットＤ（２）が回復可能でないと判定した場合、さらに、データパケット回復規則に従って、消失データパケットＤ（２）に対応する左下方向のパリティパケットＣ（２）を特定する。そして、データパケット回復部２２は、特定したパリティパケットＣ（２）に対応する斜め方向の４個のデータパケットＤ（−１），Ｄ（２），Ｄ（５），Ｄ（８）のうち、消失データパケットＤ（２）以外のデータパケットＤ（−１），Ｄ（５），Ｄ（８）の全てが消失データパケットでないと判定した場合、消失データパケットＤ（２）が回復可能であると判定する。
【０１０６】
データパケット回復部２２は、ステップＳ８０４において、データパケットＤ（ｉ＋ｊ）が消失しており、かつ当該データパケットＤ（ｉ＋ｊ）が回復可能であると判定した場合（ステップＳ８０４：Ｙ）、データパケットＤ（ｉ＋ｊ）を回復する（ステップＳ８０５）。そして、データパケット回復部２２は、変数ｋをインクリメントする（ステップＳ８０６）。
【０１０７】
前述の例では、データパケット回復部２２は、特定したパリティパケットＲ（１）、及び当該パリティパケットＲ（１）に対応する斜め方向の４個のデータパケットＤ（−８），Ｄ（−３），Ｄ（２），Ｄ（７）のうち、消失していないデータパケットＤ（−８），Ｄ（−３），Ｄ（７）に基づいて、消失データパケットＤ（２）を回復する。または、データパケット回復部２２は、特定したパリティパケットＣ（２）、及び当該パリティパケットＣ（２）に対応する斜め方向の４個のデータパケットＤ（−１），Ｄ（２），Ｄ（５），Ｄ（８）のうち、消失していないデータパケットＤ（−１），Ｄ（５），Ｄ（８）に基づいて、消失データパケットＤ（２）を回復する。
【０１０８】
データパケット回復部２２は、ステップＳ８０４において、データパケットＤ（ｉ＋ｊ）が消失していないと判定し、若しくは当該データパケットＤ（ｉ＋ｊ）が回復可能でないと判定した場合（ステップＳ８０４：Ｎ）、または、ステップＳ８０６から移行して、変数ｊをインクリメントする（ステップＳ８０７）。
【０１０９】
データパケット回復部２２は、変数ｊが列数Ｌに行数Ｄを乗算した結果（Ｌ×Ｄ）よりも小さいか否かを判定する（ステップＳ８０８）。データパケット回復部２２は、変数ｊが乗算結果（Ｌ×Ｄ）よりも小さいと判定した場合（ステップＳ８０８：Ｙ）、単位時間における列数Ｌ×行数Ｄ個の全てのデータパケット（図３の例では、ｉ＝０の場合、データパケットＤ（０）〜Ｄ（１５））に対し、消失したデータパケットＤ（ｉ＋ｊ）の探索が完了していないとして、ステップＳ８０４へ移行する。一方、データパケット回復部２２は、変数ｊが乗算結果（Ｌ×Ｄ）よりも小さくないと判定した場合（ステップＳ８０８：Ｎ）、単位時間における全てのデータパケットに対し、消失したデータパケットＤ（ｉ＋ｊ）の探索が完了したとして、ステップＳ８０９へ移行する。
【０１１０】
データパケット回復部２２は、ステップＳ８０８から移行して、変数ｋが０であるか否かを判定する（ステップＳ８０９）。データパケット回復部２２は、ステップＳ８０９において、変数ｋが０でないと判定した場合（ステップＳ８０９：Ｎ）、ステップＳ８０３へ移行し、単位時間における列数Ｌ×行数Ｄ個のデータパケットを対象とした再度の回復処理を行う。すなわち、回復したデータパケットを含む単位時間における列数Ｌ×行数Ｄ個のデータパケットを対象として、同様に、消失したデータパケットＤ（ｉ＋ｊ）を検索し、その回復処理を試みる。
【０１１１】
ここで、変数ｋは、単位時間における列数Ｌ×行数Ｄ個のデータパケットを対象とした回復処理において、回復したデータパケットの数を示す。したがって、変数ｋ＝０でない場合は、回復したデータパケットが存在することを示しているから、当該データパケットにより、他の消失したデータパケットが回復する可能性がある。そこで、単位時間における列数Ｌ×行数Ｄ個のデータパケットを対象とした再度の回復処理が行われる。
【０１１２】
データパケット回復部２２は、ステップＳ８０９において、変数ｋが０であると判定した場合（ステップＳ８０９：Ｙ）、変数ｉを次の単位時間の先頭データパケットのシーケンス番号に設定し（ステップＳ８１０）、ステップＳ８０２へ移行する。例えば、変数ｉ＝１６が設定される。尚、変数ｋ＝０の場合は、単位時間における列数Ｌ×行数Ｄ個のデータパケットの処理が完了した時点にて、消失した全てのデータパケットが回復しているか、または、回復処理を繰り返しても、消失したデータパケットが回復できず、消失したデータパケットが残留している。
【０１１３】
このように、ステップＳ８０３〜ステップＳ８０９の処理により、変数ｋ＝０でない限り、単位時間における列数Ｌ×行数Ｄ個のデータパケットを対象とした再度の回復処理が行われ、ステップＳ８０９において、変数ｋ＝０の場合に、列数Ｌ×行数Ｄ個のデータパケットを対象とした回復処理が完了する。
【０１１４】
データパケット回復部２２は、ステップＳ８０２において、終了条件を満たしていると判定した場合（ステップＳ８０２：Ｙ）、すなわち、パリティパケットの入力がなくなった場合に、データ回復処理を終了する。
【０１１５】
このように、図８のデータ回復処理により、列数Ｌ×行数Ｄのデータパケットの伝送に係る単位時間に対応した回復処理が、列数Ｌ×行数Ｄ個のデータパケット毎に行われ、消失したデータパケットが回復する。
【０１１６】
（ランダム消失）
図９は、実施例１におけるランダム消失の一例を示す図であり、図３に対応している。四角、四角内の数字、Ｒ，Ｃ等は、図３と同様である。図９は、７個のデータパケット０，３，５，６，８，１４，１５及び２個のパリティパケットＣ（０），Ｒ（２）がランダム消失した例を示している。“×”で示したパケットが消失パケットである。
【０１１７】
図１０は、実施例１におけるランダム消失の回復の一例を示す図であり、図９に対応している。前述のとおり、パリティパケットに対応する４個のデータパケット（当該パリティパケットを生成するために用いた４個のデータパケット）のうちの１個が消失した場合に、パリティパケット及び消失していない３個のデータパケットから、消失したデータパケットを回復することができる。
【０１１８】
図９において、消失したデータパケット８は、パリティパケットＲ（５）及びデータパケット１３，１８，２３から回復することができ、消失したデータパケット５は、パリティパケットＣ（２）及びデータパケット−１，２，８（データパケット８は回復済み）から回復することができる。
【０１１９】
このように、図１０に示すように、図９においてランダム消失した７個のデータパケット０，３，５，６，８，１４，１５は、回復することができる。この場合の残留消失データパケットの割合は、０パケット／７パケット＝０となり、図１７及び図１８に示した従来手法と同様である。
【０１２０】
（バースト消失）
図１１は、実施例１におけるバースト消失の一例を示す図であり、図３に対応している。四角、四角内の数字、Ｒ，Ｃ等は、図３及び図９と同様である。図１１は、時間的に連続して送信されたパケットのうち、７個のデータパケット５〜１１及び３個のパリティパケットＲ（０），Ｃ（１），Ｒ（１）がバースト消失した例を示している。“×”で示したパケットが消失パケットである。
【０１２１】
図１２は、実施例１におけるバースト消失からの回復の一例を示す図であり、図１１に対応している。図１１において、消失したデータパケット８は、パリティパケットＲ（５）及びデータパケット１３，１８，２３から回復することができ、消失したデータパケット９，１１も回復することができる。
【０１２２】
そして、消失したデータパケット５は、パリティパケットＣ（２）及びデータパケット−１，２，８（データパケット８は回復済み）から回復することができ、消失したデータパケット６は、パリティパケットＣ（３）及びデータパケット３，９，１２（データパケット９は回復済み）から回復することができる。同様に、データパケット１０も回復することができ、データパケット７も回復することができる。
【０１２３】
このように、図１２に示すように、図１１においてバースト消失した７個のデータパケット５〜１１の全てが回復することができる。この場合の残留消失データパケットの割合は、０パケット／７パケット＝０となり、図１９及び図２０に示した従来手法（残留消失データパケットの割合は０．７１）よりも小さい。
【０１２４】
したがって、ランダム消失及びバースト消失の消失特性に関わらず、受信装置２において、より多くの消失したデータパケットを回復することができるから、図１６に示した従来手法と同様に、前記＜２＞の条件（伝送路の消失特性に関わらず、より多くの消失したデータパケットを回復可能なこと）を満たすことになる。
【０１２５】
以上のように、本発明の実施形態の受信装置２によれば、受信部２０は、受信したデータパケットのシーケンス番号が不連続の場合、不連続のシーケンス番号の間で抜けているシーケンス番号のデータパケットが消失データパケットであると判定し、予め設定された固定値で構成する消失データパケットを生成するようにした。そして、実施例１のデータパケット回復部２２は、予め設定された固定値で構成された消失データパケットを検出し、図６（ａ）のデータパケット生成規則に対応するデータパケット回復規則に従って、右下方向のパリティパケット及び右下方向の４個のデータパケットのうち消失データパケット以外のデータパケットに基づいて、または、左下方向のパリティパケット及び左下方向の４個のデータパケットのうち消失データパケット以外のデータパケットに基づいて、消失データパケットを回復するようにした。
【０１２６】
これにより、パリティパケットに対応する複数のデータパケット（送信装置１において、パリティパケットを生成するために用いた複数のデータパケット）は、時間的に連続して受信されることがない。つまり、時間的に連続してパケットが消失するバースト消失が発生した場合、パリティパケットに対応する複数のデータパケットのうち２個以上のパリティパケットが消失する可能性は、図１６に示した従来手法よりも低くなり、消失したデータパケットは回復しやすくなる。これは、図１６に示した従来手法では、行方向のパリティパケットに対応する複数のデータパケットが時間的に連続して受信され、バースト消失が発生した場合には、行方向のパリティパケットに対応する複数のデータパケットが消失しやすいからである。
【０１２７】
また、前述のとおり、図１６に示した従来手法と同様に、伝送速度の変動は小さい。また、前述のとおり、ランダム消失が発生した場合には、パリティパケットに対応する複数のデータパケットのうち２個以上のパリティパケットが消失する可能性は、図１６に示した従来手法と同等である。
【０１２８】
したがって、送信信号の伝送速度の変動を従来手法と同等とすることができ、ランダム消失が発生した場合には、残留消失データパケットの割合を、図１６に示した従来手法と同等に保つことができる。また、バースト消失が発生した場合には、残留消失データパケットの割合を、従来手法よりも小さくすることができる。
【０１２９】
〔送信装置１のパリティパケット生成部１１／実施例２〕
次に、図２に示した送信装置１において、実施例２のパリティパケット生成部１１について説明する。前述のとおり、実施例２のパリティパケット生成部１１は、左下方向のパリティパケット及び列方向のパリティパケットを生成する。
【０１３０】
図１３は、実施例２におけるパリティパケット生成処理を説明する図である。図１３において、０，１等の数字を囲む四角等は、図３と同様である。Ｒ（０），Ｒ（１）等を囲む四角は、左下方向の４個のデータパケットから生成されるパリティパケット（左下方向のパリティパケット）を示し、Ｃ（０），Ｃ（１）等を囲む四角は、列方向の４個のデータパケットから生成されるパリティパケット（列方向のパリティパケット）を示す。列数Ｌ＝４、行数Ｄ＝４である。
【０１３１】
パリティパケット生成部１１は、後述する図１４（ａ）のパリティパケット生成規則に従って、データパケットを左下方向及び列方向に分け、所定数（本例では４）のデータパケット単位にＸＯＲを計算し、左下方向のパリティパケットＲ（０），Ｒ（１）等及び列方向のパリティパケットＣ（０），Ｃ（１）等を生成する。
【０１３２】
図１６及び図３の説明と同様に表記すると、左下方向のパリティパケットの生成は、｛３，６，９，１２｝→Ｒ（３）、｛７，１０，１３，１６｝→Ｒ（４）、｛１１，１４，１７，２０｝→Ｒ（５）、｛１５，１８，２１，２４｝→Ｒ（６）、・・・で表され、列方向のパリティパケットの生成は、｛０，４，８，１２｝→Ｃ（４）、｛５，９，１３，１７｝→Ｃ（５）、｛１０，１４，１８，２２｝→Ｃ（６）、｛１５，１９，２３，２７｝→Ｃ（７）、・・・で表される。
【０１３３】
そして、送信部１２は、後述する図１４（ｂ）のパケット送信順序規則に従って、データパケット及びパリティパケット生成部１１により生成されたパリティパケットをシリアル化し、イーサネットパケットとして伝送路３を介して受信装置２へ送信する。すなわち、図１３の例では、送信部１２は、・・・，データパケット０，パリティパケットＣ（０），データパケット１，２，３，パリティパケットＲ（０），データパケット４，５，パリティパケットＣ（１），データパケット６，７，・・・の順番で送信する。
【０１３４】
このように、図１３において、角丸四角で囲んだ単位時間で見た場合、１６個のデータパケットに対して８個のパリティパケットが定期的に生成され、これらのパケット群が１つの送信単位αとして送信される。また、パリティパケットは、送信単位α内において分散しているといえる。したがって、伝送速度の変動は小さく、図１６に示した従来手法と同様に、前記＜１＞の条件（送信信号の伝送速度が大きく変動しないこと）を満たすことになる。
【０１３５】
実施例２における左下方向のパリティパケットの生成処理は、図５に示した処理と同様であり、実施例２における列方向のパリティパケットの生成処理は、図２２に示した処理と同様である。
【０１３６】
図１４（ａ）は、実施例２におけるパリティパケット生成規則を示す図である。このパリティパケット生成規則は、図１３において、送信装置１の送信部１２が一連のパケットを送信する時間的な流れの中で、列数Ｌ×行数Ｄ（４×４＝１６）のデータパケット０〜１５を送信する時間単位に対応して、さらに左下方向のパリティパケットＲ（−１）〜Ｒ（２）及び列方向のパリティパケットＣ（０）〜Ｃ（３）のパケット群を送信単位αとして送信する場合に、データパケットから左下方向のパリティパケットＲ（−１）〜Ｒ（２）及び列方向のパリティパケットＣ（０）〜Ｃ（３）を生成するための規則を定めている。
【０１３７】
（送信部１２／実施例２）
図１４（ｂ）は、実施例２におけるパケット送信順序規則を示す図である。このパケット送信順序規則は、図１３において、送信部１２が一連のパケットを送信する時間的な流れの中で、列数Ｌ×行数Ｄ（４×４＝１６）のデータパケット０〜１５を送信する時間単位に対応して、さらに左下方向のパリティパケットＲ（−１）〜Ｒ（２）及び列方向のパリティパケットＣ（０）〜Ｃ（３）のパケット群を送信単位αとして送信する場合の送信順序を定めている。
【０１３８】
送信部１２は、データパケット０〜１５、左下方向のパリティパケットＲ（−１）〜Ｒ（２）及び列方向のパリティパケットＣ（０）〜Ｃ（３）のパケット群を送信単位αとして送信する際に、メモリ１０からデータパケット０〜１５を読み出すと共に、パリティパケット生成部１１からパリティパケットＲ（−１）〜Ｒ（２），Ｃ（０）〜Ｃ（３）を入力する。
【０１３９】
送信部１２は、図１４（ｂ）のパケット送信順序規則に従って、パリティパケットＲ（−１），データパケット０，パリティパケットＣ（０），データパケット１，２，３，パリティパケットＲ（０），データパケット４，５，パリティパケットＣ（１），・・・，パリティパケットＣ（３）を順番に並べる。そして、送信部１２は、これらのパケットを格納したイーサネットパケットを生成し、生成したイーサネットパケットを、伝送路３を介して受信装置２へ送信する。
【０１４０】
以上のように、本発明の実施形態の送信装置１によれば、実施例２のパリティパケット生成部１１は、所定の列数Ｌ（＝４）及び行数Ｄ（＝４）のデータパケットを単位とした場合に、図１４（ａ）のパリティパケット生成規則に従って、左下方向の４個のデータパケットから左下方向のパリティパケットを生成すると共に、列方向の４個のデータパケットから列方向のパリティパケットを生成するようにした。そして、実施例２の送信部１２は、図１４（ｂ）のパケット送信順序規則に従って、データパケット、左下方向のパリティパケット及び列方向のパリティパケットを順番に並べ、イーサネットパケットに格納して送信するようにした。
【０１４１】
これにより、実施例１と同様に、送信信号の伝送速度の変動を従来手法と同等とすることができ、ランダム消失が発生した場合には、残留消失データパケットの割合を、図１６に示した従来手法と同等に保つことができる。また、バースト消失が発生した場合には、残留消失データパケットの割合を、従来手法よりも小さくすることができる。
【０１４２】
（受信装置２のデータパケット回復部２２／実施例２）
図７に示した受信装置２において、実施例２のデータパケット回復部２２によるデータ回復処理は、図８に示した処理と同様である。この場合、図１４（ａ）のデータパケット生成規則に対応するデータパケット回復規則が用いられる。
【０１４３】
以上のように、本発明の実施形態の受信装置２によれば、受信部２０は、受信したデータパケットのシーケンス番号が不連続の場合、不連続のシーケンス番号の間で抜けているシーケンス番号のデータパケットが消失データパケットであると判定し、予め設定された固定値で構成する消失データパケットを生成するようにした。そして、実施例２のデータパケット回復部２２は、予め設定された固定値で構成された消失データパケットを検出し、図１４（ａ）のデータパケット生成規則に対応するデータパケット回復規則に従って、左下方向のパリティパケット及び左下方向の４個のデータパケットのうち消失データパケット以外のデータパケットに基づいて、または、列方向のパリティパケット及び列方向の４個のデータパケットのうち消失データパケット以外のデータパケットに基づいて、消失データパケットを回復するようにした。
【０１４４】
これにより、実施例１と同様に、送信信号の伝送速度の変動を従来手法と同等とすることができ、ランダム消失が発生した場合には、残留消失データパケットの割合を、図１６に示した従来手法と同等に保つことができる。また、バースト消失が発生した場合には、残留消失データパケットの割合を、従来手法よりも小さくすることができる。
【０１４５】
〔シミュレーション結果〕
次に、実施例１，２及び従来手法のシミュレーション結果について説明する。図１５は、実施例１，２及び従来手法における消失データパケットの回復特性のシミュレーション結果を示す図である。このシミュレーション結果は、計算機により、消失パケット数分のランダム消失またはバースト消失を発生させた場合の、列数Ｌ＝２５及び行数Ｄ＝２５の単位時間における残留消失データパケットの割合を示している。横軸は消失パケット数、縦軸は残留消失データパケットの割合を示す。
【０１４６】
図１５（ａ）は、ランダム消失の場合のシミュレーション結果であり、シリアル化したパリティパケット及びデータパケットに対して、設定した消失パケット数のパケットをランダムに消失させた場合の回復特性を示す。図１５（ｂ）は、バースト消失の場合のシミュレーション結果であり、シリアル化したパリティパケット及びデータパケットに対して、バースト消失の先頭位置をランダムに設定し、そして、設定した消失パケット数分のパケットを連続的に消失させた場合の回復特性を示す。
【０１４７】
例えば、図１５（ｂ）のバースト消失において、消失パケット数が１０の場合、従来手法では、図１９に示したように連続するデータパケット５，パリティパケットＣ（１），データパケット６，７，パリティパケットＲ（１），データパケット８，９，１０，パリティパケットＣ（２），データパケット１１を消失させる。また、実施例１では、図１１に示したように連続するデータパケット５，６，７，パリティパケットＲ（０），Ｃ（１），データパケット８，９，１０，１１，パリティパケットＲ（１）を消失させる。このようなバースト消失に対して回復処理を行った後、単位時間の残留消失データパケットの割合を求めると、図１５（ｂ）の回復特性となる。
【０１４８】
図１５（ａ）のランダム消失のシミュレーション結果によれば、実施例１，２の回復特性は、従来手法とほぼ同等であることがわかる。また、図１５（ｂ）のバースト消失のシミュレーション結果によれば、実施例１では、消失パケット数が１〜５０の場合に、残留消失データパケットの割合が０であり、実施例２及び従来手法では、消失パケット数が１〜２５の場合に、残留消失データパケットの割合が０であり、また、消失パケット数が２６〜５０の場合に、実施例１，２の残留消失データパケットの割合が従来手法よりも極端に小さくなっていることがわかる。
【０１４９】
このように、実施例１，２は、従来手法よりもバースト耐性に優れている。図１５（ｂ）のバースト消失のシミュレーション結果によれば、特に実施例１において、残留消失データパケットの割合が０となる消失パケット数を、従来手法の２倍に増大させることができる。一方、実施例１，２において、消失パケット数が７５を超える場合には、パリティパケットに対応するデータパケットが２個以上誤る可能性が高くなるため、残留消失データパケットの割合は、従来手法とほぼ同等になる。
【０１５０】
したがって、従来手法では、正常に受信したパリティパケットが存在するにも関わらず、残留消失データパケットの割合が大きいのに対し、実施例１，２では、残留消失データパケットの割合を、従来手法よりも小さくすることができる。
【０１５１】
尚、本発明の実施形態による送信装置１及び受信装置２のハードウェア構成としては、通常のコンピュータを使用することができる。送信装置１及び受信装置２は、ＣＰＵ、ＲＡＭ等の揮発性の記憶媒体、ＲＯＭ等の不揮発性の記憶媒体、及びインターフェース等を備えたコンピュータによって構成される。送信装置１に備えたパリティパケット生成部１１及び送信部１２の各機能は、これらの機能を記述したプログラムをＣＰＵに実行させることによりそれぞれ実現される。また、受信装置２に備えた受信部２０及びデータパケット回復部２２の各機能は、これらの機能を記述したプログラムをＣＰＵに実行させることによりそれぞれ実現される。これらのプログラムは、前記記憶媒体に格納されており、ＣＰＵに読み出されて実行される。また、これらのプログラムは、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリ等の記憶媒体に格納して頒布することもでき、ネットワークを介して送受信することもできる。
【０１５２】
以上、実施例１，２を挙げて本発明を説明したが、本発明は前記実施例１，２に限定されるものではなく、その技術思想を逸脱しない範囲で種々変形可能である。例えば、前記実施例１，２では、列数Ｌ＝４と行数Ｄ＝４とが同じ場合の例を挙げて説明したが、本発明は、列数Ｌと行数Ｄとが異なる場合も、同様に適用することができる。
【０１５３】
また、前記実施例１，２では、受信装置２の受信部２０は、昇順に並び替えたデータパケットのシーケンス番号が不連続の場合に、予め設定された固定値で構成するデータパケットを消失データパケットとして生成するようにした。そして、データパケット回復部２２は、予め設定された固定値で構成されたデータパケットを消失データパケットとして検出し、回復処理を行う。これに対し、受信部２０は、消失データパケットを生成する際に、消失データパケットの場所（シーケンス番号）を示す消失リストを作成するようにしてもよい。この場合、データパケット回復部２２は、消失リストを用いて、消失データパケットの場所（シーケンス番号）を特定し、回復処理を行う。
【０１５４】
また、前記実施例２では、送信装置１のパリティパケット生成部１１は、左下方向の複数のデータパケットから左下方向のパリティパケットを生成すると共に、列方向の複数のデータパケットから列方向のパリティパケットを生成するようにした。これに対し、パリティパケット生成部１１は、左下方向の複数のデータパケットから左下方向のパリティパケットを生成する代わりに、右下方向の複数のデータパケットから右下方向のパリティパケットを生成するようにしてもよい。要するに、本発明では、時間的に連続して送信されない複数のデータパケットからパリティパケットを生成すればよい。
【０１５５】
また、前記実施例１では、送信装置１のパリティパケット生成部１１は、図６（ａ）のパリティパケット生成規則に従って、右下方向のパリティパケット及び左下方向のパリティパケットを生成し、送信部１２は、図６（ｂ）のパケット送信順序規則に従って、データパケット、及びパリティパケット生成部１１により生成された右下方向のパリティパケット及び左下方向のパリティパケットを順番に並べてシリアル化し、送信するようにした。この場合、図３に示したとおり、２個のパリティパケットが連続して送信される。これに対し、２個のパリティパケットが連続して送信されないように、パリティパケットをさらに分散させるようにしてもよい。
【０１５６】
図２４は、実施例１の変形例におけるパリティパケット生成処理を説明する図であり、図２５（ａ）は、実施例１の変形例におけるパリティパケット生成規則を示す図であり、図２５（ｂ）は、実施例１の変形例におけるパケット送信順序規則を示す図である。このパケット送信順序規則には、パリティパケットが連続して送信されないように、データパケット及びパリティパケットの送信順序が定められている。図２４において、０，１等の数字を囲む四角等は、図３と同様である。Ｒ（０），Ｒ（１）等を囲む四角は、右下方向の４個のデータパケットから生成されるパリティパケット（右下方向のパリティパケット）を示し、Ｃ（０），Ｃ（１）等を囲む四角は、左下方向の４個のデータパケットから生成されるパリティパケット（左下方向のパリティパケット）を示す。列数Ｌ＝４、行数Ｄ＝４である。
【０１５７】
パリティパケット生成部１１は、図２５（ａ）のパリティパケット生成規則に従って、右下方向のパリティパケット及び左下方向のパリティパケットを生成する。図２５（ａ）及び図６（ａ）は同じであり、パリティパケット生成部１１は、実施例１と同様の処理を行う。
【０１５８】
送信部１２は、図２５（ｂ）のパケット送信順序規則に従って、パリティパケットＣ（−１），データパケット０，１，２，パリティパケットＲ（−１），データパケット３，パリティパケットＣ（０），データパケット４，５，６，パリティパケットＲ（０），データパケット７，・・・，データパケット１５を順番に並べてシリアル化し、送信する。この場合、図２４の送信単位αに示すように、パリティパケットが連続して送信されることがない。
【０１５９】
このように、２個以上のパリティパケットが連続して送信されないように、送信単位α内でパリティパケットを分散させることにより、送信信号の伝送速度の変動を一層小さくすることができる。また、バースト消失の場合、複数のパリティパケットが消失する可能性が一層低くなるから、消失データパケットは回復しやすくなり、残留消失データパケットの割合を、一層小さくすることができる。
【０１６０】
また、前記実施例１，２では、送信装置１のパリティパケット生成部１１は、所定のパリティパケット生成規則に従って、メモリ１０から所定数のデータパケットを読み出し、読み出した所定数のデータパケットからパリティパケットを生成し、送信部１２に出力するようにした。また、送信部１２は、メモリ１０からデータパケットを読み出すと共に、パリティパケット生成部１１からパリティパケットを入力し、所定のパケット送信順序規則に従って、送信する順番にデータパケット及びパリティパケットを並べて送信するようにした。
【０１６１】
これに対し、送信部１２は、所定のパケット送信順序規則に従って、送信する順番にデータパケット及びパリティパケットを並べる処理において、パリティパケットを並べる処理に先立って（パリティパケットを並べる時点以前のタイミングにおいて）、当該パリティパケットを生成する指示をパリティパケット生成部１１に出力し、パリティパケット生成部１１に、当該パリティパケットを生成させるようにしてもよい。そして、送信部１２は、パリティパケット生成部１１から当該パリティパケットを入力し、当該パリティパケットを並べる処理を行う。例えば、図３を参照して、送信部１２は、図６（ｂ）のパケット送信順序規則に従って、パリティパケットＲ（０）を並べる処理に先立って（パリティパケットＲ（０）を並べる以前のタイミングにおいて）、パリティパケットＲ（０）を生成する指示をパリティパケット生成部１１に出力し、パリティパケット生成部１１に、パリティパケットＲ（０）を生成させる。
【０１６２】
パリティパケット生成部１１は、送信部１２からパリティパケットを生成する指示を入力したタイミングで、所定のパリティパケット生成規則に従って、メモリ１０から当該パリティパケットに対応する所定数のデータパケットを読み出し、読み出した所定数のデータパケットからパリティパケットを生成し、送信部１２に出力する。
【０１６３】
ここで、送信部１２は、所定のパリティパケット生成規則に従って、パリティパケットを生成するために用いる所定数のデータパケットのうち、最後に生成するデータパケットの位置を特定する。そして、送信部１２は、所定のパケット送信順序規則に従って、送信する順番にデータパケット及びパリティパケットを並べる処理において、特定した位置のデータパケットを並べる処理のタイミングにて、当該パリティパケットを生成する指示をパリティパケット生成部１１に出力し、パリティパケット生成部１１から当該パリティパケットを入力するようにしてもよい。
【０１６４】
図３の例では、送信部１２は、パリティパケット生成部１１から入力した右下方向のパリティパケットＲ（０），Ｒ（１）等について、当該パリティパケットを生成する指示をパリティパケット生成部１１に出力してから６個（Ｌ＋２個）のパケットの時間分だけ遅延させる。これにより、図６（ｂ）のパケット送信順序規則に従った順序で、パリティパケットを並べることができる。
【０１６５】
また、送信部１２は、パリティパケット生成部１１から入力した左下方向のパリティパケットＣ（０），Ｃ（１）等について、当該パリティパケットを生成する指示をパリティパケット生成部１１に出力してから４個（Ｌ個）のパケットの時間分だけ遅延させることで、データパケット及びパリティパケットを並べることができる。
【０１６６】
このように、送信部１２によりデータパケット及びパリティパケットを並べる処理と、パリティパケット生成部１１によりパリティパケットを生成する処理とを同期させることにより、送信部１２は、パリティパケット生成部１１から入力したパリティパケットを遅延させれば済むから、パリティパケットを一時的に蓄積するバッファを備える必要がない。したがって、送信装置１の回路規模を小さくすることができる。
【符号の説明】
【０１６７】
１  送信装置
２  受信装置
３  伝送路
１０  メモリ
１１  パリティパケット生成部
１２  送信部
２０  受信部
２１  メモリ
２２  データパケット回復部
【図１】
0006457282.tif 000007
【図２】
0006457282.tif 000008
【図３】
0006457282.tif 000009
【図４】
0006457282.tif 000010
【図５】
0006457282.tif 000011
【図６】
0006457282.tif 000012
【図７】
0006457282.tif 000013
【図８】
0006457282.tif 000014
【図９】
0006457282.tif 000015
【図１０】
0006457282.tif 000016
【図１１】
0006457282.tif 000017
【図１２】
0006457282.tif 000018
【図１３】
0006457282.tif 000019
【図１４】
0006457282.tif 000020
【図１５】
0006457282.tif 000021
【図１６】
0006457282.tif 000022
【図１７】
0006457282.tif 000023
【図１８】
0006457282.tif 000024
【図１９】
0006457282.tif 000025
【図２０】
0006457282.tif 000026
【図２１】
0006457282.tif 000027
【図２２】
0006457282.tif 000028
【図２３】
0006457282.tif 000029
【図２４】
0006457282.tif 000030
【図２５】
0006457282.tif 000031