(57)【要約】【課題】本発明は、誤り訂正処理部の演算単位と一致してアクセスが可能なメモリ領域を、その他の処理部と共有する機能を提供し、メモリコピーを行わずに高速な誤り訂正処理を実現することを目的とする。【解決手段】本発明は、パケットバッファ用のアドレステーブルを誤り訂正符号化・復号化処理部と他の処理部に共用させることで、他の処理部が書き込んだデータをそのまま誤り訂正符号化・復号化処理部が処理可能とする。【選択図】図１
2015089006.tif 000002
【特許請求の範囲】
【請求項１】
送信データが格納されているパケット送信バッファメモリにおける１符号ブロックに含まれる各パケットのペイロードデータのメモリアドレスを管理する符号化用ペイロードメモリアドレステーブルを、ペイロードデータの先頭アドレスが符号化の演算単位の整数倍になるように生成する符号化用メモリアドレステーブル生成部と、
前記符号化用ペイロードメモリアドレステーブルに格納されているアドレスを参照して前記パケット送信バッファメモリから各パケットのペイロードデータを読み出し、読み出したペイロードデータの符号化を行う符号化演算部と、
を備える符号化装置。
【請求項２】
各パケットの情報に基づいて前記パケット送信バッファメモリにおける各パケットのヘッダのメモリアドレスを管理する送信用パケットメモリアドレステーブルを作成する送信用メモリアドレステーブル生成部と、
前記送信用パケットメモリアドレステーブルに格納されているアドレスを参照して前記パケット送信バッファメモリから各パケットのヘッダ及びペイロードデータを読み出して送信するパケット送信部と、
をさらに備えることを特徴とする請求項１に記載の符号化装置。
【請求項３】
受信データが格納されているパケット受信バッファメモリにおけるペイロードデータのメモリアドレスを管理する復号用ペイロードメモリアドレステーブルを、ペイロードデータの先頭アドレスが復号の演算単位の整数倍になるように生成する復号用メモリアドレステーブル生成部と、
前記復号用ペイロードメモリアドレステーブルに格納されているアドレスを参照して前記パケット受信バッファメモリから各パケットのペイロードデータを読み出し、読み出したペイロードデータの復号を行う復号演算部と、
を備える復号装置。
【請求項４】
各パケットの受信の有無を、各パケットの受信順に管理する受信可否テーブルを作成する受信可否テーブル作成部をさらに備え、
前記復号用メモリアドレステーブル生成部は、前記パケット受信バッファメモリにおける各パケットのヘッダのアドレスを、各パケットの情報に基づいて送信順と関連付け、
前記復号演算部は、前記受信可否テーブルの各パケットの受信の有無に基づいて、消失したパケットを復元する
ことを特徴とする請求項３に記載の復号装置。
【請求項５】
送信データが格納されているパケット送信バッファメモリにおける１符号ブロックに含まれる各パケットのペイロードデータのメモリアドレスを管理する符号化用ペイロードメモリアドレステーブルを、ペイロードデータの先頭アドレスが符号化の演算単位の整数倍になるように生成する送信側メモリアドレステーブル生成手順と、
前記符号化用ペイロードメモリアドレステーブルに格納されているアドレスを参照して前記パケット送信バッファメモリから各パケットのペイロードデータを読み出し、読み出したペイロードデータの符号化を行う符号化演算手順と、
を順に有する符号化方法。
【請求項６】
前記送信側メモリアドレステーブル生成手順において、さらに、各パケットの情報に基づいて前記パケット送信バッファメモリにおける各パケットのヘッダのメモリアドレスを管理する送信用パケットメモリアドレステーブルを作成し、
前記送信用パケットメモリアドレステーブルに格納されているアドレスを参照して前記パケット送信バッファメモリから各パケットのヘッダ及びペイロードデータを読み出して送信するパケット送信手順を前記符号化演算手順の後にさらに有することを特徴とする請求項５に記載の符号化方法。
【請求項７】
受信データが格納されているパケット受信バッファメモリにおけるペイロードデータのメモリアドレスを管理する復号用ペイロードメモリアドレステーブルを、ペイロードデータの先頭アドレスが復号の演算単位の整数倍になるように生成する受信側メモリアドレステーブル生成手順と、
前記復号用ペイロードメモリアドレステーブルに格納されているアドレスを参照して前記パケット受信バッファメモリから各パケットのペイロードデータを読み出し、読み出したペイロードデータの復号を行う復号演算手順と、
を順に有する復号方法。
【請求項８】
前記受信側メモリアドレステーブル生成手順において、各パケットの受信の有無を、各パケットの受信順に管理する受信可否テーブルを作成し、１符号ブロックに含まれる各パケットのデータを受信順に格納している前記パケット受信バッファメモリにおける各パケットのヘッダのアドレスを、各パケットの情報に基づいて送信順と関連付け、
前記復号演算手順において、前記受信可否テーブルの各パケットの受信の有無に基づいて、消失したパケットを復元する
ことを特徴とする請求項７に記載の復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は誤り訂正符号化装置及び復号装置に関するものであり、特に装置外部より送信の元となるデータもしくは通信パケットデータを受け取り、装置外部に対して冗長化データ（リペアデータ）もしくは復元したデータを与える装置に関するものである。
【背景技術】
【０００２】
現在、誤り訂正技術は衛生デジタル放送やインターネットでの通信、モバイル端末での通信など、各種通信システムで広く用いられている。とりわけ、近年のブロードバンド環境の発展に伴いインターネットを用いた動画配信サービスなどが期待されており、インターネット網に対する誤り訂正技術は重要なものになっている。以下、インターネット網を例に話を進める。
【０００３】
インターネットを用いてサービスを行う側から通信路をみると、インターネット網は消失通信路（ＰＥＣ：Ｐａｃｋｅｔ  Ｅｒａｓｕｒｅ  Ｃｈａｎｎｅｌ）と捉えることができる。これは２元消失通信路がパケットの単位としてグループ化されたものであり、通信路出力は正しい情報で出力されるか回線中の何らかの障害によって不明として出力されるかのどちらかの場合となる通信路である。一般的なＩＰベースのサービスでは、ＴＣＰ／ＩＰプロトコルが用いられ、デコーダ側では誤り検出のみにとどめ、誤りが発生した場合は再送制御などで誤りを訂正する方法が用いられている（ＡＲＱ（Ａｕｔｏｍａｔｉｃ  Ｒｅｐｅａｔ  ｒｅｑｕｅｓｔ）方式）。しかし、マルチキャスト配信のような大規模なサービスを想定した場合、受信側で受け取ったデータを元に誤り訂正をすることが求められ、帰還通信路を必要とせず受信側のみで誤りを訂正できる方法が用いられる（ＦＥＣ（Ｆｏｒｗａｒｄ  Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ）方式）。このＦＥＣ方式は再送制御等を行わないことから遅延が少なく、リアルタイム性が重要となるテレビ会議システムでもＦＥＣ方式が用いられる。以下、ＦＥＣ方式について話を進める。
【０００４】
ＦＥＣ方式として、デジタル放送などではリードソロモン符号（ＲＳ符号）が広く用いられている。日本のデジタル放送では符号長２０４バイトと定義されており、元データ１８８バイトに対しておよそ１０％の冗長化データを付加することで誤りに対して耐性を持たせている。しかし、一般に誤り訂正符号として符号長の長い符号を利用すれば性能がよくなることが知られているが、符号長が長くなると復号が複雑になり計算量が膨大になってしまうという弊害も知られている。そのため、ＲＳ符号では、符号長を２５６バイト以下として扱うことが一般的である。また、ＲＳ符号をＩＰベースのパケットレベルＦＥＣと呼ばれるパケットに適応する場合、上記の理由から１符号ブロックの大きさは２５６パケットに制限される。
【０００５】
これに対して、確率伝搬アルゴリズム（Ｂｅｌｉｅｆ  ｐｒｏｐａｇａｔｉｏｎ  ａｌｇｏｒｉｔｈｍ）に基づいた復号法は符号長が長い場合に実用的な演算量で優れた復号特性を持つことが知られており、疎グラフにより定義される線形符号である低密度パリティ検査符号（Ｌｏｗ  ｄｅｎｓｉｔｙ  ｐａｒｉｔｙ  ｃｈｅｃｋ  ｃｏｄｅ：ＬＤＰＣ符号（例えば、非特許文献１参照。））はＳｈａｎｎｏｎにより定義された通信路容量に迫る現実的な誤り訂正方法として注目されている。また、疎グラフに基づく消失訂正符号としては、Ｄｉｇｉｔａｌ  Ｆｏｕｎｔａｉｎ社のＬＴ  ｃｏｄｅ（例えば、非特許文献２参照。）やＲａｐｔｏｒ  ｃｏｄｅ（例えば、非特許文献３参照。）が知られており、符号化効率を大きく劣化させずに任意の符号データを受信しただけで復号できる符号特性を実現的な演算量で達成することが知られている。
【０００６】
これらの誤り訂正技術は一般的に、外部の映像機器と接続の上で映像情報を通信路に対し送受信する装置に組み込まれるほか、コンピュータ上で動作する映像送受信プログラムや、情報伝送プログラムに組み込まれる。またしばしば、誤り訂正処理部は、前記のプログラムの外部ライブラリとして実装される。この場合、プログラムとライブラリはＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を介して、元データと冗長データのやり取りを行う。このようなライブラリとして、例えばＯｐｅｎＦＥＣ（例えば、非特許文献４参照。）などがある。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Ｒ．Ｇ．Ｇａｌｌａｇｅｒ，“Ｌｏｗ  ｄｅｎｓｉｔｙ  ｐａｒｉｔｙ  ｃｈｅｃｋ  ｃｏｄｅｓ”，ｉｎ  Ｒｅｓｅａｒｃｈ  Ｍｏｎｏｇｒａｐｈ  ｓｅｒｉｅｓ．Ｃａｍｂｒｉｄｇｅ，ＭＩＴ  Ｐｒｅｓｓ，１９６３．
【非特許文献２】Ｍ．Ｌｕｂｙ，“ＬＴ  Ｃｏｄｅｓ”，Ｔｈｅ  ４３ｒｄ  Ａｎｎｕａｌ  ＩＥＥＥ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｆｏｕｎｄａｔｉｏｎｓ  ｏｆ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ，２００２．
【非特許文献３】Ｓｈｏｋｒｏｌｌａｈｉ，Ａ，“Ｒａｐｔｏｒ  ｃｏｄｅｓ”，Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｈｅｏｒｙ，ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｖｏｌｕｍｅ  ５２，Ｉｓｓｕｅ  ６，２００６
【非特許文献４】ｈｔｔｐ：／／ｏｐｅｎｆｅｃ．ｏｒｇ
【発明の概要】
【発明が解決しようとする課題】
【０００８】
前述のように、一般に誤り訂正の処理部は、映像処理部や通信部とは分離して動作するため、これらとの間で元データと冗長データのやり取りを行う必要がある。このとき、誤り訂正処理部とその他の処理部が物理的に異なる装置で動作している場合は、誤り訂正処理部とその他の処理部の間でデータの転送が必要である。コンピュータ上でプログラムとして動作する場合は、誤り訂正処理部とその他の処理部とで共通のメモリ領域を共有することで、データ転送を行わず、誤り訂正処理部が直接処理を行うことが可能である。しかし、誤り訂正処理部とその他の処理部とで、データの形式や演算単位、メモリアクセス単位が一致しない場合、共有されたデータをそのまま処理することができない。
【０００９】
例えば非特許文献４では、誤り訂正処理部、すなわちライブラリと、その他の処理部、すなわちライブラリ呼び出し側とで、処理対象データが格納されているメモリ上のアドレスを共有することで、ライブラリへのデータ転送、すなわちメモリコピーを行わずに、ライブラリが直接処理を行うことを可能としている。しかし、例えばライブラリの演算単位が６４ｂｉｔ単位であった時に、ライブラリ呼び出し側が３２ｂｉｔ境界でのデータ配置を行っていた場合、ライブラリは共有メモリ上のデータを直接処理することはできない。
【００１０】
本発明は上記の点に鑑みなされたもので、誤り訂正処理部の演算単位と一致してアクセスが可能なメモリ領域を、その他の処理部と共有する機能を提供し、メモリコピーを行わずに高速な誤り訂正処理を実現することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本願発明の符号化装置及び復号装置並びに符号化方法及び復号方法は、本発明は、パケットバッファ用のメモリアドレステーブルを誤り訂正符号化・復号化処理部と他の処理部に共用させることで、他の処理部が書き込んだデータをそのまま誤り訂正符号化・復号化処理部が処理可能とする。
【００１２】
具体的には、本願発明の符号化装置は、
送信データが格納されているパケット送信バッファメモリにおける１符号ブロックに含まれる各パケットのペイロードデータのメモリアドレスを管理する符号化用ペイロードメモリアドレステーブルを、ペイロードデータの先頭アドレスが符号化の演算単位の整数倍になるように生成する符号化用メモリアドレステーブル生成部と、
前記符号化用ペイロードメモリアドレステーブルに格納されているアドレスを参照して前記パケット送信バッファメモリから各パケットのペイロードデータを読み出し、読み出したペイロードデータの符号化を行う符号化演算部と、
を備える。
【００１３】
本願発明の符号化装置では、
各パケットの情報に基づいて前記パケット送信バッファメモリにおける各パケットのヘッダのメモリアドレスを管理する送信用パケットメモリアドレステーブルを作成する送信用メモリアドレステーブル生成部と、
前記送信用パケットメモリアドレステーブルに格納されているアドレスを参照して前記パケット送信バッファメモリから各パケットのヘッダ及びペイロードデータを読み出して送信するパケット送信部と、
をさらに備えてもよい。
【００１４】
具体的には、本願発明の復号装置は、
受信データが格納されているパケット受信バッファメモリにおけるペイロードデータのメモリアドレスを管理する復号用ペイロードメモリアドレステーブルを、ペイロードデータの先頭アドレスが復号の演算単位の整数倍になるように生成する復号用メモリアドレステーブル生成部と、
前記復号用ペイロードメモリアドレステーブルに格納されているアドレスを参照して前記パケット受信バッファメモリから各パケットのペイロードデータを読み出し、読み出したペイロードデータの復号を行う復号演算部と、
を備える。
【００１５】
本願発明の復号装置では、
各パケットの受信の有無を、各パケットの受信順に管理する受信可否テーブルを作成する受信可否テーブル作成部をさらに備え、
前記復号用メモリアドレステーブル生成部は、前記パケット受信バッファメモリにおける各パケットのヘッダのアドレスを、各パケットの情報に基づいて送信順と関連付け、
前記復号演算部は、前記受信可否テーブルの各パケットの受信の有無に基づいて、消失したパケットを復元してもよい。
【００１６】
具体的には、本願発明の符号化方法は、
送信データが格納されているパケット送信バッファメモリにおける１符号ブロックに含まれる各パケットのペイロードデータのメモリアドレスを管理する符号化用ペイロードメモリアドレステーブルを、ペイロードデータの先頭アドレスが符号化の演算単位の整数倍になるように生成する送信側メモリアドレステーブル生成手順と、
前記符号化用ペイロードメモリアドレステーブルに格納されているアドレスを参照して前記パケット送信バッファメモリから各パケットのペイロードデータを読み出し、読み出したペイロードデータの符号化を行う符号化演算手順と、
を順に有する。
【００１７】
本願発明の符号化方法では、
前記送信側メモリアドレステーブル生成手順において、さらに、各パケットの情報に基づいて前記パケット送信バッファメモリにおける各パケットのヘッダのメモリアドレスを管理する送信用パケットメモリアドレステーブルを作成し、
前記送信用パケットメモリアドレステーブルに格納されているアドレスを参照して前記パケット送信バッファメモリから各パケットのヘッダ及びペイロードデータを読み出して送信するパケット送信手順を前記符号化演算手順の後にさらに有してもよい。
【００１８】
具体的には、本願発明の復号方法は、
受信データが格納されているパケット受信バッファメモリにおけるペイロードデータのメモリアドレスを管理する復号用ペイロードメモリアドレステーブルを、ペイロードデータの先頭アドレスが復号の演算単位の整数倍になるように生成する受信側メモリアドレステーブル生成手順と、
前記復号用ペイロードメモリアドレステーブルに格納されているアドレスを参照して前記パケット受信バッファメモリから各パケットのペイロードデータを読み出し、読み出したペイロードデータの復号を行う復号演算手順と、
を順に有する。
【００１９】
本願発明の復号方法では、
前記受信側メモリアドレステーブル生成手順において、各パケットの受信の有無を、各パケットの受信順に管理する受信可否テーブルを作成し、１符号ブロックに含まれる各パケットのデータを受信順に格納している前記パケット受信バッファメモリにおける各パケットのヘッダのアドレスを、各パケットの情報に基づいて送信順と関連付け、
前記復号演算手順において、前記受信可否テーブルの各パケットの受信の有無に基づいて、消失したパケットを復元してもよい。
【発明の効果】
【００２０】
本発明によれば、誤り訂正処理部の演算単位と一致してアクセスが可能なメモリ領域を、その他の処理部と共有する機能を提供し、メモリコピーを行わずに高速な誤り訂正処理を実現することができる。
【図面の簡単な説明】
【００２１】
【図１】実施形態１に係る符号化装置の一例を示す。
【図２】実施形態３に係る復号装置の一例を示す。
【図３】実施形態４に係る復号装置の一例を示す。
【図４】実施形態５に係る復号装置の一例を示す。
【図５】１符号ブロック分のメモリ上のデータ配置とペイロードメモリアドレステーブルの関係の第１例を示す。
【図６】１符号ブロック分のメモリ上のデータ配置とペイロードメモリアドレステーブルの関係の第２例を示す。
【図７】誤り訂正の符号化・復号演算におけるペイロード同士の演算の概要を示す。
【図８】本発明の実施の形態における１符号ブロックの構成例を示す。
【発明を実施するための形態】
【００２２】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。なお、本発明は、以下に示す実施形態に限定されるものではない。これらの実施の例は例示に過ぎず、本発明は当業者の知識に基づいて種々の変更、改良を施した形態で実施することができる。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
【００２３】
伝送するデータをソースデータ、誤り訂正に用いる冗長データをリペアデータと呼び、パケット伝送におけるペイロード（１パケット中のヘッダ部分を除いた実データ部分）がソースデータの一部であるものをソースペイロード、リペアデータの一部である物をリペアペイロードと呼ぶ。符号化処理は１符号ブロック毎に行われ、１符号ブロックは複数のソースペイロードと複数のリペアペイロードで構成される。リペアペイロードは、ＬＤＰＣにおける生成行列もしくはＲＳ符号における生成多項式などを用い、符号ブロック内の複数のソースペイロードから符号化演算により生成される。図８に本発明における１符号ブロックの構成を示す。
【００２４】
本発明は、誤り訂正符号化・復号化処理部（誤り訂正ライブラリ）と他の処理部（誤り訂正ライブラリを利用するソフト）とのメモリ領域共有に関するものである。特に、本発明は、パケットのペイロードの先頭が誤り訂正演算単位の整数倍となるように配置したパケット単位のパケットバッファ用のメモリアドレステーブルを誤り訂正符号化・復号化処理部と他の処理部に共用させることで、他の処理部が書き込んだデータをそのまま誤り訂正符号化・復号化処理部が処理可能とする。
【００２５】
（実施形態１）
図１は、本発明の構成の一例を示す符号化装置の全体構成図である。本実施形態に係る符号化装置は、誤り訂正符号化装置として機能し、誤り訂正符号化処理部１２を備える。誤り訂正符号化処理部１２は誤り訂正ライブラリと読み替えることもできる。誤り訂正符号化装置はパケット伝送処理部１１を備える。パケット伝送処理部１１は、誤り訂正符号化処理部１２の外側に配置される。
【００２６】
パケット伝送処理部１１は、パケット送信バッファメモリ確保要求部１０１と、ソースデータ読み取り部１０４と、ペイロードデータ書き込み部１０５と、符号化処理開始要求部１０６と、パケット送信部１０９と、を備える。誤り訂正符号化処理部１２は、パケット送信バッファメモリ確保部１０２と、符号化用メモリアドレステーブル生成部及び送信用メモリアドレステーブル生成部として機能するパケット・ペイロードメモリアドレステーブル生成部１０３と、符号化用ペイロードメモリアドレステーブル入力部１０７と、符号化演算部１０８と、パケット送信バッファメモリ１３２を備える。
【００２７】
本実施形態に係る符号化装置は、本実施形態に係る符号化方法を実行する。本実施形態に係る符号化方法は、送信側メモリアドレステーブル生成手順と、符号化演算手順と、を順に有する。
送信側メモリアドレステーブル生成手順では、送信データが格納されているパケット送信バッファメモリ１３２における１符号ブロックに含まれる各パケットのペイロードデータのメモリアドレスを管理する符号化用ペイロードメモリアドレステーブルＴＣを生成する。
符号化演算手順では、符号化用ペイロードメモリアドレステーブルＴＣに格納されているアドレスを参照してパケット送信バッファメモリ１３２から各パケットのペイロードデータを読み出し、読み出したペイロードデータの符号化を行う。
【００２８】
送信側メモリアドレステーブル生成手順において、さらに、各パケットの情報に基づいてパケット送信バッファメモリ１３２における各パケットのヘッダのメモリアドレスを管理する送信用パケットメモリアドレステーブルＴＳを作成してもよい。この場合、パケット送信部１０９は、送信用パケットメモリアドレステーブルＴＳに格納されているアドレスを参照してパケット送信バッファメモリ１３２から各パケットのヘッダ及びペイロードデータを読み出して送信する。
【００２９】
ステップＳ１０１：パケット送信バッファメモリ確保要求部１０１が、誤り訂正符号化処理部１２に対し、パケット送信バッファメモリの確保要求を行う。このとき、パケット送信バッファメモリ確保要求部１０１は、各パケットに関する情報を指定する。各パケットに関する情報は、例えば、ヘッダ長、ソースペイロード長、リペアペイロード長、１符号ブロック中のソースペイロードの個数、リペアペイロードの個数である。各パケットに関する情報は、リペアペイロードの生成行列や生成多項式などの符号化のための情報も含む。これによって、１符号ブロックと等しいか、１符号ブロックよりも大きいサイズの領域のパケット送信バッファメモリ１３２をパケット・ペイロードメモリアドレステーブル生成部１０３が確保する。
【００３０】
ステップＳ１０２：パケット送信バッファメモリ確保部１０２は、パケット伝送処理部１１から参照可能なメモリ空間上に、１符号ブロック分のパケット（ヘッダ＋ペイロード）データが格納できる十分な大きさのパケット送信バッファメモリ１３２を確保する。
【００３１】
ステップＳ１０３：パケット・ペイロードメモリアドレステーブル生成部１０３は、各ペイロード格納領域の先頭アドレスが、誤り訂正演算単位の境界上に置かれるように符号化用ペイロードメモリアドレステーブルＴＣを生成する。このように、ペイロードデータの先頭アドレスが符号化の演算単位の整数倍になるように、符号化用ペイロードメモリアドレステーブルＴＣを生成する。ここでの具体的な生成の方法については実施形態７において後述する。なお、メモリ確保とアドレステーブルの生成は、符号ブロック長（ソースペイロードの個数とリペアペイロードの個数の和）、ヘッダ長、ペイロード長などが変わらない限りは、送信開始時に一度行うだけでよい。
【００３２】
送信用パケットメモリアドレステーブルＴＳは、符号化用ペイロードメモリアドレステーブルＴＣにおける各ペイロードのアドレス値から、パケットヘッダサイズ分のアドレス値を引いて生成される。パケット・ペイロードメモリアドレステーブル生成部１０３は、各ヘッダの先頭アドレスを集めた送信用パケットメモリアドレステーブルＴＳのアドレスの数値からヘッダサイズを減算して生成する。例えば、ペイロード＃１〜＃４のアドレス値が０ｘ００３０、０ｘ０６２０、０ｘ０Ｃ１０、０ｘ１２００であれば、ＴＳはペイロード＃１〜＃４のアドレスとして０ｘ０００８、０ｘ０５Ｆ８、０ｘ０ＢＥ８、０ｘ１１Ｄ８を格納する。
【００３３】
ステップＳ１０４：ソースデータ読み取り部１０４は、ストレージやネットワークからパケット伝送の対象となるソースデータを読み取り、ペイロードデータ書き込み部１０５に渡す。
【００３４】
ステップＳ１０５：ペイロードデータ書き込み部１０５は、符号化用ペイロードメモリアドレステーブルＴＣを参照し、ソースデータをソースペイロードに分割して、順次パケット送信バッファメモリ１３２に書き込みを行う。図１の例では、アドレス番地０ｘ００３０、０ｘ０６２０、０ｘ０Ｃ１０、０ｘ１２００にそれぞれソースペイロード長分のソースデータを書き込む。図１の「０ｘ００３０」等のＴＣ内の四角は、各ペイロードが置かれるアドレスの数値の例であり、一つの四角が一つのセルで、複数のセルからテーブルが構成される。１符号ブロック分のソースペイロードの書き込みが終了した後、ステップＳ１０６を実行する。
【００３５】
ステップＳ１０６：符号化処理開始要求部１０６は、符号化処理の開始要求を行う。
ステップＳ１０７：符号化処理開始要求部１０６は、符号化用ペイロードメモリアドレステーブルＴＣを符号化用ペイロードメモリアドレステーブル入力部１０７に入力する。符号化用ペイロードメモリアドレステーブル入力部１０７は、パケット送信部１０９から符号化に必要な符号化用ペイロードメモリアドレステーブルＴＣを入力され、符号化演算部１０８へ出力する。
【００３６】
ステップＳ１０８：符号化演算部１０８は、符号化用ペイロードメモリアドレステーブルＴＣを参照しながら演算対象となるソースペイロードにアクセスして、ＬＤＰＣにおける生成行列もしくはＲＳ符号における生成多項式などによって指定される演算を行い、リペアペイロードを生成していく。符号化演算部１０８は、符号化用ペイロードメモリアドレステーブルＴＣを参照して、例えば１番目と４番目と７番目のソースペイロードをＸＯＲ演算して１番目のリペアペイロードを生成する処理の際に、演算対象を読み出し、演算結果を書き込む。
【００３７】
例えばペイロード＃５はペイロード＃１とペイロード＃３との演算で生成される、という情報が生成行列や生成多項式などにより指定されるが、その情報と符号化用ペイロードメモリアドレステーブルＴＣの参照により、実際に演算のためメモリアクセスを行う箇所が決定される。なお、図１では生成されたリペアペイロードであるペイロード＃５とペイロード＃６の領域は、図上部のパケット送信バッファメモリ１３２におけるペイロード＃５とペイロード＃６と同一の領域である。しかし、リペアペイロードの生成先領域はパケット送信バッファメモリ１３２以外の領域に確保してもよい。ただし各リペアペイロードの領域は符号化用ペイロードメモリアドレステーブルＴＣに記述されている必要がある。
【００３８】
ステップＳ１０９：最後に、パケット送信部１０９が、送信用パケットメモリアドレステーブルＴＳを参照しながら、一つずつパケットを送信していく。このとき、パケット送信部１０９は、送信用パケットメモリアドレステーブルＴＳを先頭から参照していき、そのアドレスのデータをネットワークに対してパケット送信する。
【００３９】
なお、各パケットのヘッダ領域は必ずしもパケット送信バッファメモリ１３２上に確保される必要はない。その場合は符号化用ペイロードメモリアドレステーブルＴＣと送信用パケットメモリアドレステーブルＴＳは同一の内容となり、パケット送信部１０９において、別に確保されたヘッダ領域のデータとペイロードのデータを結合し、パケット送信を行っていく。また、ヘッダの情報はパケット送信以前のどの段階で生成されてもよい。パケット送信部１０９に至るまでに生成されていなければ、パケット送信部１０９が生成を行う。
【００４０】
図１のパケット・ペイロードメモリアドレステーブル生成部１０３、図１のパケット送信バッファメモリ確保部１０２、符号化用ペイロードメモリアドレステーブル入力部１０７、符号化演算部１０８に加え、ソフトがテーブルの作成をライブラリに依頼する仕組みとして、例えばソフトが稼動するシステムの代わりにライブラリを使うソフトからのメモリ割当要求を受けてメモリ割当をソフトに返すインタフェースを更に備えていてもよい。
【００４１】
本実施形態に係る誤り訂正符号化装置は、コンピュータを各機能部として動作させるソフトウェアを用いて実現してもよい。例えば、パケット・ペイロードメモリアドレステーブル生成部１０３、パケット送信バッファメモリ確保部１０２を備え、パケットのペイロードの先頭が誤り訂正演算単位の整数倍となるように配置したパケット単位のパケットバッファ用のアドレステーブルを生成し、そのアドレスを誤り訂正符号化ライブラリすなわち誤り訂正符号化処理部１２に伝えるソフトウェアをコンピュータに実行させることで誤り訂正符号化装置を実現してもよい。以下の実施形態についても同様である。
【００４２】
（実施形態２）
本実施形態では、パケット伝送処理部１１自身が、パケット送信バッファメモリ１３２、符号化用ペイロードメモリアドレステーブルＴＣ、送信用パケットメモリアドレステーブルＴＳを作成する。この場合、各ペイロードの先頭アドレスが符号化演算部１０８における演算単位でアライメントされるように、ペイロードデータ書き込み部１０５が符号化用ペイロードメモリアドレステーブルＴＣを生成する。本実施形態に係る符号化用ペイロードメモリアドレステーブルＴＣの具体的な生成法については後述する実施形態７で説明する。
【００４３】
本実施形態では、実施形態１においてステップＳ１０１とステップＳ１０２のステップを省き、ステップＳ１０２とステップＳ１０３と同等の処理をパケット伝送処理部１１内で行う。以降は実施形態１と同じである。
【００４４】
本実施形態の構成を採用することによって、パケット送信バッファメモリ確保要求部１０１、パケット送信バッファメモリ確保部１０２及びパケット・ペイロードメモリアドレステーブル生成部１０３を省略することができる。
【００４５】
（実施形態３）
図２は、本実施形態に係る復号装置の全体構成図である。本実施形態に係る復号装置は誤り訂正復号装置として機能し、誤り訂正復号処理部２２を備える。本実施形態に係る誤り訂正復号装置はパケット受信処理部２１を備える。パケット受信処理部２１は、誤り訂正復号処理部２２の外側に配置される。
【００４６】
パケット受信処理部２１は、パケット受信バッファメモリ確保要求部２０１と、パケット受信部２０４と、ペイロードデータ書き込み部２０５と、受信可否テーブル作成部として機能する受信可否テーブル・復号用テーブルメモリアドレステーブル更新部２０６と、復号処理開始要求部２０７と、ソースデータ出力部２１０と、を備える。誤り訂正復号処理部２２は、パケット受信バッファメモリ確保部２０２と、復号用メモリアドレステーブル生成部として機能するパケット・ペイロードメモリアドレステーブル生成部２０３と、復号用ペイロードメモリアドレステーブル入力部２０８と、復号演算部２０９と、パケット受信バッファメモリ２３２を備える。
【００４７】
本実施形態に係る復号装置は、本実施形態に係る復号方法を実行する。本実施形態に係る復号方法は、受信側メモリアドレステーブル生成手順と、復号演算手順と、を順に有する。
受信側メモリアドレステーブル生成手順では、受信データが格納されているパケット受信バッファメモリ２３２におけるペイロードデータのメモリアドレスを管理する復号用ペイロードメモリアドレステーブルＴＤを生成する。
復号演算手順では、復号用ペイロードメモリアドレステーブルＴＤに格納されているアドレスを参照してパケット受信バッファメモリ２３２から各パケットのペイロードデータを読み出し、読み出したペイロードデータの復号を行う。
【００４８】
受信側メモリアドレステーブル生成手順では、各パケットの受信の有無を、各パケットの送信順に管理する受信可否テーブルＴＡ１を作成し、１符号ブロックに含まれる各パケットのデータを受信順に格納しているパケット受信バッファメモリ２３２における各パケットのヘッダのアドレスを、各パケットの情報に基づいて送信順と関連付けてもよい。この場合、復号演算手順において、復号演算部２０９は、受信可否テーブルＴＡ１の各パケットの受信の有無に基づいて、消失したパケットを復元する。
【００４９】
ステップＳ２０１：パケット受信バッファメモリ確保要求部２０１が、誤り訂正復号処理部２２に対し、パケット受信バッファメモリの確保要求を行う。このとき、パケット受信バッファメモリ確保要求部２０１は、各パケットに関する情報を指定する。各パケットに関する情報は、例えば、ヘッダ長、ソースペイロード長、リペアペイロード長、１符号ブロック中のソースペイロードの個数、リペアペイロードの個数である。各パケットに関する情報は、リペアペイロードの誤り検査行列や生成多項式などの符号に関する情報も含む。これによって、１符号ブロックより大きいサイズの領域のパケット受信バッファメモリ２３２をパケット・ペイロードメモリアドレステーブル生成部２０３が確保する。
【００５０】
ステップＳ２０２：パケット受信バッファメモリ確保部２０２は、パケット受信処理部２１から参照可能なメモリ空間上に、１符号ブロック分のパケット（ヘッダ＋ペイロード）データが格納できる十分な大きさのパケット受信バッファメモリ２３２を確保する。
【００５１】
ステップＳ２０３：パケット・ペイロードメモリアドレステーブル生成部２０３は、各ペイロード格納領域の先頭アドレスが、誤り訂正演算単位の境界上に置かれるように復号用ペイロードメモリアドレステーブルＴＤを生成する。このように、ペイロードデータの先頭アドレスが復号化の演算単位の整数倍になるように、復号用ペイロードメモリアドレステーブルＴＤを生成する。ここでの具体的な生成の方法については実施形態７において後述する。なお、メモリ確保とアドレステーブルの生成は、符号ブロック長（ソースペイロードの個数とリペアペイロードの個数の和）、ヘッダ長、ペイロード長などが変わらない限りは、送信開始時に一度行うだけでよい。
【００５２】
受信用パケットメモリアドレステーブルＴＲは、復号用ペイロードメモリアドレステーブルＴＤにおける各ペイロードのアドレス値から、パケットヘッダサイズ分のアドレス値を引いて生成される。パケット・ペイロードメモリアドレステーブル生成部２０３は、各ヘッダの先頭アドレスを集めた受信用パケットメモリアドレステーブルＴＲのアドレスの数値からヘッダサイズを加算して生成する。例えば、ペイロード＃１〜＃４のＴＤのアドレス値が０ｘ００３０、０ｘ０６２０、０ｘ０Ｃ１０、０ｘ１２００であれば、ＴＲはペイロード＃１〜＃４のアドレスとして０ｘ０００８、０ｘ０５Ｆ８、０ｘ０ＢＥ８、０ｘ１１Ｄ８を格納する。
【００５３】
ステップＳ２０４：パケット受信部２０４は、ネットワークを介しパケット伝送処理部１１からパケットを受信する。
【００５４】
ステップＳ２０５：パケット受信部２０４は、ペイロードデータ書き込み部２０５に渡す。ペイロードデータ書き込み部２０５は受信用パケットメモリアドレステーブルＴＲを参照し、受信したパケットを受信順に順次パケット受信バッファメモリ２３２に書き込む。なお、ここで各パケットのヘッダを格納する領域は必ずしもパケット受信バッファメモリ２３２上にある必要はなく、その場合はパケット受信部２０４においてヘッダが取り除かれ、ペイロードのみが書き込まれる。パケット受信後、ステップＳ２０６を実行する。
【００５５】
ステップＳ２０６：受信可否テーブル・復号用ペイロードメモリアドレステーブル更新部２０６は、受信したパケットのペイロード番号に対応する、復号用ペイロードメモリアドレステーブルＴＤのセルに、そのペイロードが格納されたアドレスを記録するという更新処理を行う。また同様に受信可否テーブルＴＡ１の対応するセルに受信を記録する。１符号ブロック分のパケット受信処理が終了するまで、ステップＳ２０４からＳ２０６の処理を繰り返す。
【００５６】
１符号ブロック分の受信が終了した後、ステップＳ２０６において、受信できなかった番号に対応する復号用ペイロードメモリアドレステーブルＴＤのセルに、ペイロード復号時のデータ格納先のアドレスを記録し、対応する受信可否テーブルＴＡ１のセルには消失の記録を行う。
【００５７】
ステップＳ２０７：復号処理開始要求部２０７は、復号処理の開始要求を行う。このとき、復号処理開始要求部２０７は、これら２つのテーブルＴＤ及びＴＡ１を、復号用ペイロードメモリアドレステーブル入力部２０８に入力する。
【００５８】
ステップＳ２０８：復号演算部２０９は、復号用ペイロードメモリアドレステーブルＴＤを参照しながら演算対象となるペイロードにアクセスして、ＬＤＰＣにおける誤り検査行列もしくはＲＳ符号における生成多項式などによって指定される演算を行い、消失したペイロードを復元していく。
【００５９】
例えばペイロード＃３はペイロード＃１とペイロード＃５との演算で復元される、という情報が誤り検査行列や生成多項式などにより指定されるが、その情報とペイロードメモリアドレステーブルの参照により、実際に演算のためメモリアクセスを行う箇所が決定される。なお、図２では復元されたペイロードであるペイロード＃３の領域は、パケット受信バッファメモリ２３２におけるペイロード＃３と同一の領域である。しかし、ペイロードの復元先領域はパケット受信バッファメモリ２３２以外の領域に確保してもよい。ただし各復元されたペイロードの領域は復号用ペイロードメモリアドレステーブルＴＤに記述されている必要がある。
【００６０】
本実施形態に係る誤り訂正復号装置は、パケット受信処理部２１と異なる誤り訂正復号処理部２２が復号用ペイロードメモリアドレステーブルＴＤを管理するため、パケット受信処理部２１の負荷を減らすことができる。誤り訂正ライブラリを利用するソフト側が復号用ペイロードメモリアドレステーブルＴＤを管理するので、ソフト側で別途、特定のペイロードにアクセスしたり、ソフト側の都合でペイロードデータを一時的に別の領域に移しても、アドレステーブルをそれに合わせて更新することができる。
【００６１】
（実施形態４）
図３は、本実施形態に係る誤り訂正復号装置の全体構成図である。本実施形態に係る誤り訂正復号装置は、実施形態２における受信可否テーブル・復号用テーブルメモリアドレステーブル更新部２０６に代えて受信可否テーブル更新部２２６を備え、復号用ペイロードメモリアドレステーブル入力部２０８に代えて復号用ペイロードメモリアドレステーブル更新・入力部２２８を備える。
【００６２】
実施形態３の場合、受信可否テーブルＴＡ１のセル番号とペイロード番号が対応するため、例えば１が受信、０が消失を示すとして、ＴＡ１［２］＝１、ＴＡ１［３］＝０とした場合、ペイロード＃２は受信、ペイロード＃３は消失、という形で受信可否テーブルを更新する。このとき、実施形態３のＴＡ１の添字はペイロード番号を示す。
【００６３】
本実施形態では、受信可否テーブルＴＡ３がパケットの受信順と受信したペイロード番号の対応付けが可能な形式になっている。例えば、ＴＡ１［１］＝１、ＴＡ１［２］＝４、ＴＡ１［３］＝５、・・・のように、受信したペイロード番号を各セルに入力していきＴＡ１を更新していく。ここで、実施形態４のＴＡ１の添字は受信順を示す。パケット受信処理部２１がパケット受信後に、受信可否テーブル更新部２２６が、受信可否テーブルＴＡ３のみを更新し、復号用ペイロードメモリアドレステーブルＴＤは更新しない。
【００６４】
復号処理開始要求部２０７は、受信可否テーブルＴＡ３を復号用ペイロードメモリアドレステーブル更新・入力部２２８に入力する。そして、復号用ペイロードメモリアドレステーブル更新・入力部２２８が、受信可否テーブルＴＡ２を元に復号用ペイロードメモリアドレステーブルＴＤを更新する。
【００６５】
本実施形態では、復号演算部２０９は、受信可否テーブルＴＡ３は実施形態３と同様に、セルの順番がペイロードの順番と一致する形式で更新する。例えば、３番目のセルがペイロード＃３の受信可否と対応するように更新する。または別の受信可否テーブルＴＡ２を同形式で作成してもよい。
【００６６】
例えば、最初に受信したペイロードはアドレス０ｘ００３０番地に、２番目に受信したペイロードはアドレス０ｘ０６２０番地に・・・という形で、受信順と格納先のメモリアドレスの対応は決まっているため、ＴＤ［１］＝０ｘ００３０、ＴＤ［４］＝０ｘ０６２０、ＴＤ［５］＝０ｘ０Ｃ１０、・・・というように誤り訂正復号処理部２２の中で復号用ペイロードメモリアドレステーブルＴＤを更新することができる。ただし、本実施形態では、ＴＤの添字はペイロード番号を示す。
【００６７】
復号処理後、パケット受信処理部２１はどのペイロードが復元できてどれができなかったか知る必要があるが、その情報を伝えるためには実施形態３のＴＡ２のように、復元できなかったところが０である必要がある。このため、誤り訂正復号処理部２２の中で実施形態３のＴＡ１の形式に変更する。復元結果を伝えるための受信可否テーブルＴＡ２の性質は、実施形態３と同様である。
【００６８】
本実施形態において、受信できなかったペイロード番号については、パケット受信処理部２１が受信可否テーブルＴＡ３の最後に記述し、合計何個受信したか、という情報と共に誤り訂正復号処理部２２に通知する。例えば、ペイロード＃３と＃６が消失した場合、パケット受信処理部２１は、ＴＡ１［５］＝３、ＴＡ１［６］＝６として計４個受信したという情報を誤り訂正復号処理部２２に通知する。
【００６９】
復号演算部２０９は、バッファの空いている領域から＃３と＃６の復元先を割り当てる。例えば、ＴＤ［３］＝０ｘ１７Ｆ０、ＴＤ［６］＝０ｘ１ＤＥ０と更新しておく。これにより、パケット受信処理部２１はＴＤを参照して復元したデータを取り出すことができる。
【００７０】
本実施形態に係る発明は、ソフト側は復号用ペイロードメモリアドレステーブルＴＤと、その更新部を実装しなくて済み、ソフト側の構成を簡易なものにする効果がある。
【００７１】
本実施形態に係る誤り訂正復号装置は、ソフトウェアがテーブルの作成をライブラリに依頼する仕組みとして、例えばソフトが稼動するシステムの代わりにライブラリを使うソフトからのメモリ割当要求を受けてメモリ割当をソフトに返すインタフェースを更に備えていてもよい。
【００７２】
（実施形態５）
図４は、本実施形態に係る誤り訂正復号装置の全体構成図である。本実施形態に係る誤り訂正復号装置は、実施形態２における受信可否テーブル・復号用テーブルメモリアドレステーブル更新部２０６に代えて受信可否テーブル更新部２２６を備える。
【００７３】
本実施形態では、ペイロードデータ書き込み部２０５が、受信したデータを受信順ではなく、受信パケットのペイロードヘッダを一度解析してペイロード番号を取得した上で、ペイロード番号順にパケット受信バッファメモリ２３２に配置していく。復号用ペイロードメモリアドレステーブルＴＤの各セルのアドレス値は、セル番号と同じペイロード番号が配置されるアドレスを示していれば良いため更新の必要がない。したがって、本実施形態に係る誤り訂正復号装置は、受信可否テーブル更新部２２６で実施形態３と同様に受信可否テーブルＴＡ１を更新し、あとは実施形態３と同様の処理を行う。
【００７４】
（実施形態６）
実施形態３，４，５における別の実施形態として、パケット受信バッファメモリ確保要求部２０１を備えず、パケット受信処理部２１内部でパケット受信バッファメモリ２３２、受信用ペイロードメモリアドレステーブルＴＲ、復号用パケットメモリアドレステーブルＴＤを作成してもよい。
【００７５】
本実施形態では、各ペイロードの先頭アドレスが復号演算部２０９における演算単位でアライメントされるように、復号用ペイロードメモリアドレステーブルＴＤを生成する。この場合、実施形態３，４，５においてステップＳ２０１とステップＳ２０２のステップを省き、ステップＳ２０２とステップＳ２０３と同等の処理をパケット受信処理部２１内で行う。以降は実施形態３，４，５と同じである。
【００７６】
（実施形態７）
本実施形態では、実施形態１及び２における符号化用ペイロードメモリアドレステーブルＴＣ並びに実施形態３〜５における復号用ペイロードメモリアドレステーブルＴＤの具体的な生成法を述べる。
【００７７】
ＴＣおよびＴＤは、各ヘッダの先頭アドレスの数値からヘッダサイズを減算して生成する。例えば誤り訂正演算単位が１６バイトである場合、図５のように１符号ブロックに相当するパケット数のバッファメモリの確保を行い、１６の倍数となるように各ペイロード格納領域の先頭アドレスの算出を行い、ペイロードメモリアドレステーブルを作成する。例えば、ペイロードの先頭アドレスが「０ｘ００３０」であり、パケットヘッダサイズが４０ｂｙｔｅの場合、ペイロード格納領域の先頭アドレスは「０ｘ０００８」となる。
【００７８】
図５では各ペイロードの末尾と次のヘッダの先頭が、同じ１６バイトの区切り内に入らないように、各ペイロードの末尾から１２バイト分の空き領域を確保している。図６では、各ペイロードの末尾からの空き領域を可能な限り少なくして、ペイロード格納領域を配置している例を示している。ペイロード末尾のアドレスにヘッダサイズを加算した値を１６バイト単位で切り上げたアドレスが次のペイロード先頭アドレスとなり、そこからヘッダ先頭アドレスを逆算して配置することで、計算上これ以上減らせない値まで減らす。
【００７９】
誤り訂正の符号化・復号演算においては、複数のペイロードを演算単位に区切り排他的論理和を演算していくが、図６のような配置を行った場合には、図７で示すようにペイロードの末尾で無関係なヘッダ領域先頭同士の排他的論理和が演算されてしまう。図７では、２つのペイロードの先頭アドレスから、１６バイトずつＸＯＲ演算を行い、演算結果格納先に順次格納する。末尾の部分は、不使用の部分も含め格納し、ソフト側ではこの不使用部分を無視してデータを取り扱う。ただしこの場合でも、演算結果の末尾から演算単位境界までのデータは不使用領域として無視して取り扱うことができる。
【００８０】
図５のメモリ配置の例は、ペイロード同士のＸＯＲ（排他的論理和）演算を行った場合に、ペイロード末尾での演算において、本来演算に必要ないヘッダ領域が一部巻き込まれてしまうことを防ぐ効果がある。図６の例は、ペイロード末尾と次のヘッダ間の空き領域を最小限にする効果がある。このため、図７で、図６ではペイロード末尾のＸＯＲ演算で次のヘッダの先頭が一部巻き込まれるが、必要のない部分は不使用にする。従って、各パケットのヘッダ領域に、ペイロード同士の演算前にあらかじめ意味のある情報が格納されていた場合、図５を用いる。
【００８１】
なお、確保領域外へのメモリアクセスを防ぐために、図６のような配置を行った場合は、符号ブロック最後のペイロード末尾後の空き領域は、演算単位で区切られるように確保される必要がある。
【００８２】
＜発明によって生じる効果＞
本発明により、誤り訂正符号化処理部１２とパケット伝送処理部１１との間でのデータの共有に伴うコストを削減するとともに、誤り訂正復号処理部２２とパケット受信処理部２１との間でのデータの共有に伴うコストを削減することができ、全体としてのスループット向上および処理負荷の削減が可能となる。
【００８３】
ネットワーク伝送経路でパケットの順序入れ替えが発生した場合、受信側で本来の順番にデータを入れ替える処理は、メモリコピーが必要なため負荷が発生する。実施形態３から実施形態５に係る誤り訂正復号処理部２２は、復号用ペイロードメモリアドレステーブルＴＤを管理し、受信したままの順番で受信バッファ上にパケットを格納していく。このため、実施形態３から実施形態５に係る誤り訂正復号装置は、パケット受信処理部２１の負荷を減らすことができる。誤り訂正復号処理部２２では、ペイロード単位での排他的論理和の演算を行うので、ペイロード番号と対応するペイロード格納先メモリアドレスがわかれば、ペイロードが本来の番号順に並んでいなくても復号演算を行うことが可能である。この効果は、パケット単位、もしくはペイロード単位での演算を行い、かつその到着順序が保証されない誤り訂正処理の分野において特に有効であるということができる。
【００８４】
誤り訂正処理を用いる情報伝送において、伝送の単位であるパケットは、一般的に誤りに対する保護の対象となるペイロード部分と、保護の必要がないヘッダ部分とで構成される。メモリ上にペイロード部分だけを連続的に配置する構成の場合、送信時にヘッダと結合してパケットを構成するためのメモリコピーが発生し、受信時には一時的な領域にパケットを格納してからペイロードのみを取り出すメモリコピーが必要となる。本発明のように送信用・受信用パケットメモリアドレステーブルを参照しながらパケット全体をメモリ上に格納する場合は、送受信に関わるメモリコピーの回数を減らすことができる。この上で本発明のように符号化用・復号用ペイロードメモリアドレステーブルを用いることで、誤り訂正の演算に必要なペイロード部分のデータのみにアクセスしながら、誤り訂正処理を行うことが可能である。
【００８５】
実施形態５の場合は、ペイロード番号を知るために一度ヘッダを見る必要があるため、パケット受信部２０４のソケットバッファから、一度別の領域にメモリコピーする必要が生じる場合がある。またペイロード番号と対応するメモリアドレスを受信用パケットメモリアドレステーブルＴＲから探す処理が加わるため、実施形態３及び実施形態４と比べて本発明の効果は弱くなる。一方、復号用ペイロードメモリアドレステーブルＴＤの更新の必要がないため、容易な実装とすることができる。
【００８６】
さらに、昨今のコンピュータはＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）演算のための命令拡張を有しており、これを用いることで誤り訂正処理における排他的論理和の演算速度を大きく向上させることができる。例えば通常の３２ビットＣＰＵでは３２ビット（４バイト）毎の排他的論理和の演算しか実行できないのに対し、ＳＩＭＤ命令を用いることで１２８ビット（１６バイト）単位での演算が可能になり、大幅に演算速度が向上する。しかし、このためには演算対象のデータに１６バイト単位でアクセスする必要がある。誤り訂正演算においてはペイロードデータのみが演算対象となるため、ペイロードデータの先頭から１６バイトずつの演算ができるよう、ペイロードデータの先頭アドレスは１６バイトの倍数でなければならない。すなわちペイロードデータは１６バイトでアライメントされた領域に確保されなければならない。ヘッダとペイロードを合わせたパケットサイズが１６の倍数であれば、ヘッダのサイズが１６バイトの倍数でない場合でも、ペイロードの先頭から最初の１６バイト境界までに限り、例外的にＳＩＭＤ演算を行わず、その後１６バイト毎のＳＩＭＤ演算を行うことが可能である。しかしパケットサイズが１６の倍数でない場合には不可能であるため、本発明のように、各ペイロード領域が１６バイトでアライメントされるようにペイロードデータを格納し、各ペイロード領域のアドレステーブルを用いて誤り訂正符号化およびパケット復号処理部とのデータ共有を行うことで、あらゆるパケットサイズにおいてデータの共有にかかるコストを抑え、かつ誤り訂正符号化およびパケット復号処理部における高速な演算が可能となる。
【００８７】
また、バッファメモリの確保及びアドレステーブルの生成手段を誤り訂正符号化処理部１２および誤り訂正復号処理部２２が提供することで、同装置を利用した情報送受信装置の構成が容易になるという効果がある。
【産業上の利用可能性】
【００８８】
本発明は情報通信産業に適用することができる。
【符号の説明】
【００８９】
１１：パケット伝送処理部
１２：誤り訂正符号化処理部
２１：パケット受信処理部
２２：誤り訂正復号処理部
１０１：パケット送信バッファメモリ確保要求部
１０２：パケット送信バッファメモリ確保部
１０３：パケット・ペイロードメモリアドレステーブル生成部
１０４：ソースデータ読み取り部
１０５：ペイロードデータ書き込み部
１０６：符号化処理開始要求部
１０７：符号化用ペイロードメモリアドレステーブル入力部
１０８：符号化演算部
１０９：パケット送信部
１３２：パケット送信バッファメモリ
２０１：パケット受信バッファメモリ確保要求部
２０２：パケット受信バッファメモリ確保部
２０３：パケット・ペイロードメモリアドレステーブル生成部
２０４：パケット受信部
２０５：ペイロードデータ書き込み部
２０６：受信可否テーブル・復号用テーブルメモリアドレステーブル更新部
２０７：復号処理開始要求部
２０８：復号用ペイロードメモリアドレステーブル入力部
２０９：復号演算部
２１０：ソースデータ出力部
２２６：受信可否テーブル更新部
２２８：復号用ペイロードメモリアドレステーブル更新・入力部
２３２：パケット受信バッファメモリ
【図１】
2015089006.tif 000003
【図２】
2015089006.tif 000004
【図３】
2015089006.tif 000005
【図４】
2015089006.tif 000006
【図５】
2015089006.tif 000007
【図６】
2015089006.tif 000008
【図７】
2015089006.tif 000009
【図８】
2015089006.tif 000010