JP5735610B2 - Encoding device and decoding device - Google Patents
Encoding device and decoding device Download PDFInfo
- Publication number
- JP5735610B2 JP5735610B2 JP2013227076A JP2013227076A JP5735610B2 JP 5735610 B2 JP5735610 B2 JP 5735610B2 JP 2013227076 A JP2013227076 A JP 2013227076A JP 2013227076 A JP2013227076 A JP 2013227076A JP 5735610 B2 JP5735610 B2 JP 5735610B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- payload
- memory address
- decoding
- address table
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Description
本発明は誤り訂正符号化装置及び復号装置に関するものであり、特に装置外部より送信の元となるデータもしくは通信パケットデータを受け取り、装置外部に対して冗長化データ(リペアデータ)もしくは復元したデータを与える装置に関するものである。 The present invention relates to an error correction coding apparatus and decoding apparatus, and in particular, receives data or communication packet data as a transmission source from the outside of the apparatus, and provides redundant data (repair data) or restored data to the outside of the apparatus. It relates to a device for giving.
現在、誤り訂正技術は衛生デジタル放送やインターネットでの通信、モバイル端末での通信など、各種通信システムで広く用いられている。とりわけ、近年のブロードバンド環境の発展に伴いインターネットを用いた動画配信サービスなどが期待されており、インターネット網に対する誤り訂正技術は重要なものになっている。以下、インターネット網を例に話を進める。 At present, error correction technology is widely used in various communication systems such as sanitary digital broadcasting, communication on the Internet, and communication on mobile terminals. In particular, with the development of broadband environments in recent years, video distribution services using the Internet are expected, and error correction technology for the Internet network has become important. The following is an example of the Internet network.
インターネットを用いてサービスを行う側から通信路をみると、インターネット網は消失通信路(PEC:Packet Erasure Channel)と捉えることができる。これは2元消失通信路がパケットの単位としてグループ化されたものであり、通信路出力は正しい情報で出力されるか回線中の何らかの障害によって不明として出力されるかのどちらかの場合となる通信路である。一般的なIPベースのサービスでは、TCP/IPプロトコルが用いられ、デコーダ側では誤り検出のみにとどめ、誤りが発生した場合は再送制御などで誤りを訂正する方法が用いられている(ARQ(Automatic Repeat request)方式)。しかし、マルチキャスト配信のような大規模なサービスを想定した場合、受信側で受け取ったデータを元に誤り訂正をすることが求められ、帰還通信路を必要とせず受信側のみで誤りを訂正できる方法が用いられる(FEC(Forward Error Correction)方式)。このFEC方式は再送制御等を行わないことから遅延が少なく、リアルタイム性が重要となるテレビ会議システムでもFEC方式が用いられる。以下、FEC方式について話を進める。 When the communication path is viewed from the service provider side using the Internet, the Internet network can be regarded as an erasure communication path (PEC: Packet Erasure Channel). This is a case where binary erasure channels are grouped as packet units, and the channel output is either output with correct information or output as unknown due to some failure in the line. It is a communication channel. In general IP-based services, the TCP / IP protocol is used, and the decoder side only uses error detection, and when an error occurs, a method of correcting the error by retransmission control or the like is used (ARQ (Automatic Repeat request method). However, when a large-scale service such as multicast distribution is assumed, it is required to correct errors based on data received on the receiving side, and a method that can correct errors only on the receiving side without requiring a feedback channel Is used (FEC (Forward Error Correction) method). Since this FEC method does not perform retransmission control or the like, the FEC method is also used in a video conference system in which real-time performance is important with little delay. The following will discuss the FEC method.
FEC方式として、デジタル放送などではリードソロモン符号(RS符号)が広く用いられている。日本のデジタル放送では符号長204バイトと定義されており、元データ188バイトに対しておよそ10%の冗長化データを付加することで誤りに対して耐性を持たせている。しかし、一般に誤り訂正符号として符号長の長い符号を利用すれば性能がよくなることが知られているが、符号長が長くなると復号が複雑になり計算量が膨大になってしまうという弊害も知られている。そのため、RS符号では、符号長を256バイト以下として扱うことが一般的である。また、RS符号をIPベースのパケットレベルFECと呼ばれるパケットに適応する場合、上記の理由から1符号ブロックの大きさは256パケットに制限される。 As the FEC method, Reed-Solomon code (RS code) is widely used in digital broadcasting and the like. In Japanese digital broadcasting, it is defined as a code length of 204 bytes, and by adding approximately 10% redundant data to the original data of 188 bytes, tolerance is given to errors. However, it is generally known that performance is improved if a code having a long code length is used as an error correction code. However, there is a known disadvantage that decoding becomes complicated and the amount of calculation becomes enormous as the code length increases. ing. Therefore, in the RS code, it is common to handle the code length as 256 bytes or less. In addition, when the RS code is applied to a packet called IP-based packet level FEC, the size of one code block is limited to 256 packets for the above reason.
これに対して、確率伝搬アルゴリズム(Belief propagation algorithm)に基づいた復号法は符号長が長い場合に実用的な演算量で優れた復号特性を持つことが知られており、疎グラフにより定義される線形符号である低密度パリティ検査符号(Low density parity check code:LDPC符号(例えば、非特許文献1参照。))はShannonにより定義された通信路容量に迫る現実的な誤り訂正方法として注目されている。また、疎グラフに基づく消失訂正符号としては、Digital Fountain社のLT code(例えば、非特許文献2参照。)やRaptor code(例えば、非特許文献3参照。)が知られており、符号化効率を大きく劣化させずに任意の符号データを受信しただけで復号できる符号特性を実現的な演算量で達成することが知られている。 In contrast, a decoding method based on a belief propagation algorithm is known to have excellent decoding characteristics with a practical amount of computation when the code length is long, and is defined by a sparse graph A low density parity check code (LDPC code (for example, see Non-Patent Document 1)), which is a linear code, has been attracting attention as a practical error correction method that approaches the channel capacity defined by Shannon. Yes. Further, as an erasure correction code based on a sparse graph, Digital Fountain's LT code (for example, see Non-Patent Document 2) and Raptor code (for example, Non-Patent Document 3) are known, and the coding efficiency is known. It is known to achieve a code characteristic that can be decoded only by receiving arbitrary code data without greatly degrading the code with a practical amount of computation.
これらの誤り訂正技術は一般的に、外部の映像機器と接続の上で映像情報を通信路に対し送受信する装置に組み込まれるほか、コンピュータ上で動作する映像送受信プログラムや、情報伝送プログラムに組み込まれる。またしばしば、誤り訂正処理部は、前記のプログラムの外部ライブラリとして実装される。この場合、プログラムとライブラリはAPI(Application Programming Interface)を介して、元データと冗長データのやり取りを行う。このようなライブラリとして、例えばOpenFEC(例えば、非特許文献4参照。)などがある。 In general, these error correction technologies are incorporated into a device that transmits and receives video information to and from a communication path when connected to an external video device, and also incorporated into a video transmission / reception program and an information transmission program that operate on a computer. . Often, the error correction processing unit is implemented as an external library of the program. In this case, the program and the library exchange original data and redundant data via an API (Application Programming Interface). As such a library, for example, there is OpenFEC (for example, see Non-Patent Document 4).
前述のように、一般に誤り訂正の処理部は、映像処理部や通信部とは分離して動作するため、これらとの間で元データと冗長データのやり取りを行う必要がある。このとき、誤り訂正処理部とその他の処理部が物理的に異なる装置で動作している場合は、誤り訂正処理部とその他の処理部の間でデータの転送が必要である。コンピュータ上でプログラムとして動作する場合は、誤り訂正処理部とその他の処理部とで共通のメモリ領域を共有することで、データ転送を行わず、誤り訂正処理部が直接処理を行うことが可能である。しかし、誤り訂正処理部とその他の処理部とで、データの形式や演算単位、メモリアクセス単位が一致しない場合、共有されたデータをそのまま処理することができない。 As described above, since the error correction processing unit generally operates separately from the video processing unit and the communication unit, it is necessary to exchange original data and redundant data with them. At this time, if the error correction processing unit and other processing units are operating on physically different devices, it is necessary to transfer data between the error correction processing unit and the other processing units. When operating as a program on a computer, the error correction processing unit and other processing units share a common memory area so that the error correction processing unit can directly perform processing without transferring data. is there. However, if the data format, operation unit, and memory access unit do not match between the error correction processing unit and the other processing units, the shared data cannot be processed as it is.
例えば非特許文献4では、誤り訂正処理部、すなわちライブラリと、その他の処理部、すなわちライブラリ呼び出し側とで、処理対象データが格納されているメモリ上のアドレスを共有することで、ライブラリへのデータ転送、すなわちメモリコピーを行わずに、ライブラリが直接処理を行うことを可能としている。しかし、例えばライブラリの演算単位が64bit単位であった時に、ライブラリ呼び出し側が32bit境界でのデータ配置を行っていた場合、ライブラリは共有メモリ上のデータを直接処理することはできない。 For example, in Non-Patent Document 4, the error correction processing unit, that is, the library, and the other processing unit, that is, the library calling side share the address on the memory in which the processing target data is stored, so that data to the library is stored. The library can directly perform processing without performing transfer, that is, memory copy. However, for example, when the library operation unit is a 64-bit unit and the library calling side performs data arrangement on a 32-bit boundary, the library cannot directly process the data on the shared memory.
本発明は上記の点に鑑みなされたもので、誤り訂正処理部の演算単位と一致してアクセスが可能なメモリ領域を、その他の処理部と共有する機能を提供し、メモリコピーを行わずに高速な誤り訂正処理を実現することを目的とする。 The present invention has been made in view of the above points, and provides a function of sharing a memory area that can be accessed in accordance with the operation unit of the error correction processing unit with other processing units, without performing a memory copy. The object is to realize high-speed error correction processing.
上記目的を達成するために、本願発明の符号化装置及び復号装置並びに符号化方法及び復号方法は、本発明は、パケットバッファ用のメモリアドレステーブルを誤り訂正符号化・復号化処理部と他の処理部に共用させることで、他の処理部が書き込んだデータをそのまま誤り訂正符号化・復号化処理部が処理可能とする。 In order to achieve the above object, an encoding apparatus and decoding apparatus, an encoding method, and a decoding method of the present invention include a memory address table for a packet buffer, an error correction encoding / decoding processing unit, By sharing the processing unit, the error correction encoding / decoding processing unit can process the data written by the other processing unit as it is.
具体的には、本願発明の符号化装置は、
送信データが格納されているパケット送信バッファメモリにおける1符号ブロックに含まれる各パケットのペイロードデータのメモリアドレスを管理する符号化用ペイロードメモリアドレステーブルを、ペイロードデータの先頭アドレスが符号化の演算単位の整数倍になるように生成する符号化用メモリアドレステーブル生成部と、
前記符号化用ペイロードメモリアドレステーブルに格納されているアドレスを参照して前記パケット送信バッファメモリから各パケットのペイロードデータを読み出し、読み出したペイロードデータの符号化を行う符号化演算部と、
を備える。
Specifically, the encoding device of the present invention is:
A payload memory address table for encoding that manages the memory address of the payload data of each packet included in one code block in the packet transmission buffer memory in which the transmission data is stored. An encoding memory address table generation unit for generating an integer multiple;
An encoding operation unit that reads the payload data of each packet from the packet transmission buffer memory with reference to an address stored in the encoding payload memory address table, and encodes the read payload data;
Is provided.
本願発明の符号化装置では、
各パケットの情報に基づいて前記パケット送信バッファメモリにおける各パケットのヘッダのメモリアドレスを管理する送信用パケットメモリアドレステーブルを作成する送信用メモリアドレステーブル生成部と、
前記送信用パケットメモリアドレステーブルに格納されているアドレスを参照して前記パケット送信バッファメモリから各パケットのヘッダ及びペイロードデータを読み出して送信するパケット送信部と、
をさらに備えてもよい。
In the encoding device of the present invention,
A transmission memory address table generation unit for creating a transmission packet memory address table for managing the memory address of the header of each packet in the packet transmission buffer memory based on the information of each packet;
A packet transmission unit that reads and transmits the header and payload data of each packet from the packet transmission buffer memory with reference to addresses stored in the packet memory address table for transmission;
May be further provided.
具体的には、本願発明の復号装置は、
受信データが格納されているパケット受信バッファメモリにおけるペイロードデータのメモリアドレスを管理する復号用ペイロードメモリアドレステーブルを、ペイロードデータの先頭アドレスが復号の演算単位の整数倍になるように生成する復号用メモリアドレステーブル生成部と、
前記復号用ペイロードメモリアドレステーブルに格納されているアドレスを参照して前記パケット受信バッファメモリから各パケットのペイロードデータを読み出し、読み出したペイロードデータの復号を行う復号演算部と、
を備える。
Specifically, the decoding device of the present invention is:
Decoding memory that generates a payload memory address table for decoding that manages the memory address of the payload data in the packet reception buffer memory in which the received data is stored so that the leading address of the payload data is an integral multiple of the decoding operation unit An address table generation unit;
A decoding operation unit that reads the payload data of each packet from the packet reception buffer memory with reference to the address stored in the decoding payload memory address table, and decodes the read payload data;
Is provided.
本願発明の復号装置では、
各パケットの受信の有無を、各パケットの受信順に管理する受信可否テーブルを作成する受信可否テーブル作成部をさらに備え、
前記復号用メモリアドレステーブル生成部は、前記パケット受信バッファメモリにおける各パケットのヘッダのアドレスを、各パケットの情報に基づいて送信順と関連付け、
前記復号演算部は、前記受信可否テーブルの各パケットの受信の有無に基づいて、消失したパケットを復元してもよい。
In the decoding device of the present invention,
A reception availability table creating unit that creates a reception availability table that manages whether or not each packet is received in the order of reception of each packet;
The decoding memory address table generation unit associates the address of the header of each packet in the packet reception buffer memory with the transmission order based on the information of each packet,
The decoding operation unit may restore lost packets based on whether or not each packet in the reception availability table has been received.
具体的には、本願発明の符号化方法は、
送信データが格納されているパケット送信バッファメモリにおける1符号ブロックに含まれる各パケットのペイロードデータのメモリアドレスを管理する符号化用ペイロードメモリアドレステーブルを、ペイロードデータの先頭アドレスが符号化の演算単位の整数倍になるように生成する送信側メモリアドレステーブル生成手順と、
前記符号化用ペイロードメモリアドレステーブルに格納されているアドレスを参照して前記パケット送信バッファメモリから各パケットのペイロードデータを読み出し、読み出したペイロードデータの符号化を行う符号化演算手順と、
を順に有する。
Specifically, the encoding method of the present invention is:
A payload memory address table for encoding that manages the memory address of the payload data of each packet included in one code block in the packet transmission buffer memory in which the transmission data is stored. A procedure for generating a memory address table on the transmission side that is generated to be an integer multiple,
An encoding operation procedure for reading the payload data of each packet from the packet transmission buffer memory with reference to the address stored in the encoding payload memory address table, and encoding the read payload data;
In order.
本願発明の符号化方法では、
前記送信側メモリアドレステーブル生成手順において、さらに、各パケットの情報に基づいて前記パケット送信バッファメモリにおける各パケットのヘッダのメモリアドレスを管理する送信用パケットメモリアドレステーブルを作成し、
前記送信用パケットメモリアドレステーブルに格納されているアドレスを参照して前記パケット送信バッファメモリから各パケットのヘッダ及びペイロードデータを読み出して送信するパケット送信手順を前記符号化演算手順の後にさらに有してもよい。
In the encoding method of the present invention,
In the transmission-side memory address table generation procedure, further, a transmission packet memory address table for managing the memory address of the header of each packet in the packet transmission buffer memory based on the information of each packet is created,
A packet transmission procedure for reading and transmitting the header and payload data of each packet from the packet transmission buffer memory with reference to an address stored in the transmission packet memory address table is further provided after the encoding operation procedure. Also good.
具体的には、本願発明の復号方法は、
受信データが格納されているパケット受信バッファメモリにおけるペイロードデータのメモリアドレスを管理する復号用ペイロードメモリアドレステーブルを、ペイロードデータの先頭アドレスが復号の演算単位の整数倍になるように生成する受信側メモリアドレステーブル生成手順と、
前記復号用ペイロードメモリアドレステーブルに格納されているアドレスを参照して前記パケット受信バッファメモリから各パケットのペイロードデータを読み出し、読み出したペイロードデータの復号を行う復号演算手順と、
を順に有する。
Specifically, the decoding method of the present invention is:
Receiver memory that generates a payload memory address table for decoding that manages the memory address of the payload data in the packet reception buffer memory in which the received data is stored so that the start address of the payload data is an integral multiple of the decoding operation unit Address table generation procedure,
A decoding calculation procedure for reading payload data of each packet from the packet reception buffer memory with reference to an address stored in the decoding payload memory address table, and decoding the read payload data;
In order.
本願発明の復号方法では、
前記受信側メモリアドレステーブル生成手順において、各パケットの受信の有無を、各パケットの受信順に管理する受信可否テーブルを作成し、1符号ブロックに含まれる各パケットのデータを受信順に格納している前記パケット受信バッファメモリにおける各パケットのヘッダのアドレスを、各パケットの情報に基づいて送信順と関連付け、
前記復号演算手順において、前記受信可否テーブルの各パケットの受信の有無に基づいて、消失したパケットを復元してもよい。
In the decoding method of the present invention,
In the reception-side memory address table generation procedure, a reception availability table for managing the presence / absence of each packet in the order of reception of each packet is created, and the data of each packet included in one code block is stored in the order of reception Associating the header address of each packet in the packet reception buffer memory with the transmission order based on the information of each packet,
In the decoding operation procedure, lost packets may be restored based on whether or not each packet in the reception availability table is received.
本発明によれば、誤り訂正処理部の演算単位と一致してアクセスが可能なメモリ領域を、その他の処理部と共有する機能を提供し、メモリコピーを行わずに高速な誤り訂正処理を実現することができる。 According to the present invention, the function of sharing the memory area that can be accessed in accordance with the operation unit of the error correction processing unit with other processing units is provided, and high-speed error correction processing is realized without performing memory copy. can do.
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。なお、本発明は、以下に示す実施形態に限定されるものではない。これらの実施の例は例示に過ぎず、本発明は当業者の知識に基づいて種々の変更、改良を施した形態で実施することができる。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. In addition, this invention is not limited to embodiment shown below. These embodiments are merely examples, and the present invention can be implemented in various modifications and improvements based on the knowledge of those skilled in the art. In the present specification and drawings, the same reference numerals denote the same components.
伝送するデータをソースデータ、誤り訂正に用いる冗長データをリペアデータと呼び、パケット伝送におけるペイロード(1パケット中のヘッダ部分を除いた実データ部分)がソースデータの一部であるものをソースペイロード、リペアデータの一部である物をリペアペイロードと呼ぶ。符号化処理は1符号ブロック毎に行われ、1符号ブロックは複数のソースペイロードと複数のリペアペイロードで構成される。リペアペイロードは、LDPCにおける生成行列もしくはRS符号における生成多項式などを用い、符号ブロック内の複数のソースペイロードから符号化演算により生成される。図8に本発明における1符号ブロックの構成を示す。 The data to be transmitted is referred to as source data, the redundant data used for error correction is referred to as repair data, and the payload in packet transmission (actual data portion excluding the header portion in one packet) is part of the source data, the source payload, A thing that is a part of repair data is called a repair payload. The encoding process is performed for each code block, and each code block includes a plurality of source payloads and a plurality of repair payloads. The repair payload is generated by a coding operation from a plurality of source payloads in the code block using a generator matrix in LDPC or a generator polynomial in RS code. FIG. 8 shows the configuration of one code block in the present invention.
本発明は、誤り訂正符号化・復号化処理部(誤り訂正ライブラリ)と他の処理部(誤り訂正ライブラリを利用するソフト)とのメモリ領域共有に関するものである。特に、本発明は、パケットのペイロードの先頭が誤り訂正演算単位の整数倍となるように配置したパケット単位のパケットバッファ用のメモリアドレステーブルを誤り訂正符号化・復号化処理部と他の処理部に共用させることで、他の処理部が書き込んだデータをそのまま誤り訂正符号化・復号化処理部が処理可能とする。 The present invention relates to memory area sharing between an error correction encoding / decoding processing unit (error correction library) and another processing unit (software using an error correction library). In particular, the present invention provides an error correction encoding / decoding processing unit and other processing units for a packet buffer memory address table arranged so that the beginning of a packet payload is an integer multiple of an error correction unit. By sharing the data, the error correction encoding / decoding processing unit can process the data written by the other processing unit as it is.
(実施形態1)
図1は、本発明の構成の一例を示す符号化装置の全体構成図である。本実施形態に係る符号化装置は、誤り訂正符号化装置として機能し、誤り訂正符号化処理部12を備える。誤り訂正符号化処理部12は誤り訂正ライブラリと読み替えることもできる。誤り訂正符号化装置はパケット伝送処理部11を備える。パケット伝送処理部11は、誤り訂正符号化処理部12の外側に配置される。
(Embodiment 1)
FIG. 1 is an overall configuration diagram of an encoding apparatus showing an example of the configuration of the present invention. The encoding device according to the present embodiment functions as an error correction encoding device and includes an error correction
パケット伝送処理部11は、パケット送信バッファメモリ確保要求部101と、ソースデータ読み取り部104と、ペイロードデータ書き込み部105と、符号化処理開始要求部106と、パケット送信部109と、を備える。誤り訂正符号化処理部12は、パケット送信バッファメモリ確保部102と、符号化用メモリアドレステーブル生成部及び送信用メモリアドレステーブル生成部として機能するパケット・ペイロードメモリアドレステーブル生成部103と、符号化用ペイロードメモリアドレステーブル入力部107と、符号化演算部108と、パケット送信バッファメモリ132を備える。
The packet
本実施形態に係る符号化装置は、本実施形態に係る符号化方法を実行する。本実施形態に係る符号化方法は、送信側メモリアドレステーブル生成手順と、符号化演算手順と、を順に有する。
送信側メモリアドレステーブル生成手順では、送信データが格納されているパケット送信バッファメモリ132における1符号ブロックに含まれる各パケットのペイロードデータのメモリアドレスを管理する符号化用ペイロードメモリアドレステーブルTCを生成する。
符号化演算手順では、符号化用ペイロードメモリアドレステーブルTCに格納されているアドレスを参照してパケット送信バッファメモリ132から各パケットのペイロードデータを読み出し、読み出したペイロードデータの符号化を行う。
The encoding device according to the present embodiment executes the encoding method according to the present embodiment. The encoding method according to the present embodiment includes a transmission side memory address table generation procedure and an encoding calculation procedure in order.
For the sending memory address table generation procedure, generating encoded payload memory address table T C which manages the memory address of the payload data of each packet included in one code block in the packet transmitting
The coding algorithm, by referring to the address stored in the encoded payload memory address table T C from the packet
送信側メモリアドレステーブル生成手順において、さらに、各パケットの情報に基づいてパケット送信バッファメモリ132における各パケットのヘッダのメモリアドレスを管理する送信用パケットメモリアドレステーブルTSを作成してもよい。この場合、パケット送信部109は、送信用パケットメモリアドレステーブルTSに格納されているアドレスを参照してパケット送信バッファメモリ132から各パケットのヘッダ及びペイロードデータを読み出して送信する。
In the transmission side memory address table generation procedure may further create a transmission packet memory address table T S which manages the memory address of the header of each packet in the packet transmitting
ステップS101:パケット送信バッファメモリ確保要求部101が、誤り訂正符号化処理部12に対し、パケット送信バッファメモリの確保要求を行う。このとき、パケット送信バッファメモリ確保要求部101は、各パケットに関する情報を指定する。各パケットに関する情報は、例えば、ヘッダ長、ソースペイロード長、リペアペイロード長、1符号ブロック中のソースペイロードの個数、リペアペイロードの個数である。各パケットに関する情報は、リペアペイロードの生成行列や生成多項式などの符号化のための情報も含む。これによって、1符号ブロックと等しいか、1符号ブロックよりも大きいサイズの領域のパケット送信バッファメモリ132をパケット・ペイロードメモリアドレステーブル生成部103が確保する。
Step S101: The packet transmission buffer memory securing
ステップS102:パケット送信バッファメモリ確保部102は、パケット伝送処理部11から参照可能なメモリ空間上に、1符号ブロック分のパケット(ヘッダ+ペイロード)データが格納できる十分な大きさのパケット送信バッファメモリ132を確保する。
Step S102: The packet transmission buffer
ステップS103:パケット・ペイロードメモリアドレステーブル生成部103は、各ペイロード格納領域の先頭アドレスが、誤り訂正演算単位の境界上に置かれるように符号化用ペイロードメモリアドレステーブルTCを生成する。このように、ペイロードデータの先頭アドレスが符号化の演算単位の整数倍になるように、符号化用ペイロードメモリアドレステーブルTCを生成する。ここでの具体的な生成の方法については実施形態7において後述する。なお、メモリ確保とアドレステーブルの生成は、符号ブロック長(ソースペイロードの個数とリペアペイロードの個数の和)、ヘッダ長、ペイロード長などが変わらない限りは、送信開始時に一度行うだけでよい。
Step S103: Packet payload memory address
送信用パケットメモリアドレステーブルTSは、符号化用ペイロードメモリアドレステーブルTCにおける各ペイロードのアドレス値から、パケットヘッダサイズ分のアドレス値を引いて生成される。パケット・ペイロードメモリアドレステーブル生成部103は、各ヘッダの先頭アドレスを集めた送信用パケットメモリアドレステーブルTSのアドレスの数値からヘッダサイズを減算して生成する。例えば、ペイロード#1〜#4のアドレス値が0x0030、0x0620、0x0C10、0x1200であれば、TSはペイロード#1〜#4のアドレスとして0x0008、0x05F8、0x0BE8、0x11D8を格納する。
Transmission packet memory address table T S from the address value of each payload in encoded payload memory address table T C, is generated by subtracting the address value of the packet header size of. Packet payload memory address
ステップS104:ソースデータ読み取り部104は、ストレージやネットワークからパケット伝送の対象となるソースデータを読み取り、ペイロードデータ書き込み部105に渡す。
Step S <b> 104: The source
ステップS105:ペイロードデータ書き込み部105は、符号化用ペイロードメモリアドレステーブルTCを参照し、ソースデータをソースペイロードに分割して、順次パケット送信バッファメモリ132に書き込みを行う。図1の例では、アドレス番地0x0030、0x0620、0x0C10、0x1200にそれぞれソースペイロード長分のソースデータを書き込む。図1の「0x0030」等のTC内の四角は、各ペイロードが置かれるアドレスの数値の例であり、一つの四角が一つのセルで、複数のセルからテーブルが構成される。1符号ブロック分のソースペイロードの書き込みが終了した後、ステップS106を実行する。
Step S105: payload
ステップS106:符号化処理開始要求部106は、符号化処理の開始要求を行う。
ステップS107:符号化処理開始要求部106は、符号化用ペイロードメモリアドレステーブルTCを符号化用ペイロードメモリアドレステーブル入力部107に入力する。符号化用ペイロードメモリアドレステーブル入力部107は、パケット送信部109から符号化に必要な符号化用ペイロードメモリアドレステーブルTCを入力され、符号化演算部108へ出力する。
Step S106: The encoding process start
Step S107: encoding process start
ステップS108:符号化演算部108は、符号化用ペイロードメモリアドレステーブルTCを参照しながら演算対象となるソースペイロードにアクセスして、LDPCにおける生成行列もしくはRS符号における生成多項式などによって指定される演算を行い、リペアペイロードを生成していく。符号化演算部108は、符号化用ペイロードメモリアドレステーブルTCを参照して、例えば1番目と4番目と7番目のソースペイロードをXOR演算して1番目のリペアペイロードを生成する処理の際に、演算対象を読み出し、演算結果を書き込む。
Step S108: encoding
例えばペイロード#5はペイロード#1とペイロード#3との演算で生成される、という情報が生成行列や生成多項式などにより指定されるが、その情報と符号化用ペイロードメモリアドレステーブルTCの参照により、実際に演算のためメモリアクセスを行う箇所が決定される。なお、図1では生成されたリペアペイロードであるペイロード#5とペイロード#6の領域は、図上部のパケット送信バッファメモリ132におけるペイロード#5とペイロード#6と同一の領域である。しかし、リペアペイロードの生成先領域はパケット送信バッファメモリ132以外の領域に確保してもよい。ただし各リペアペイロードの領域は符号化用ペイロードメモリアドレステーブルTCに記述されている必要がある。
For example payload # 5 are generated by the operation of the
ステップS109:最後に、パケット送信部109が、送信用パケットメモリアドレステーブルTSを参照しながら、一つずつパケットを送信していく。このとき、パケット送信部109は、送信用パケットメモリアドレステーブルTSを先頭から参照していき、そのアドレスのデータをネットワークに対してパケット送信する。
Step S109: Finally, the
なお、各パケットのヘッダ領域は必ずしもパケット送信バッファメモリ132上に確保される必要はない。その場合は符号化用ペイロードメモリアドレステーブルTCと送信用パケットメモリアドレステーブルTSは同一の内容となり、パケット送信部109において、別に確保されたヘッダ領域のデータとペイロードのデータを結合し、パケット送信を行っていく。また、ヘッダの情報はパケット送信以前のどの段階で生成されてもよい。パケット送信部109に至るまでに生成されていなければ、パケット送信部109が生成を行う。
Note that the header area of each packet is not necessarily reserved on the packet
図1のパケット・ペイロードメモリアドレステーブル生成部103、図1のパケット送信バッファメモリ確保部102、符号化用ペイロードメモリアドレステーブル入力部107、符号化演算部108に加え、ソフトがテーブルの作成をライブラリに依頼する仕組みとして、例えばソフトが稼動するシステムの代わりにライブラリを使うソフトからのメモリ割当要求を受けてメモリ割当をソフトに返すインタフェースを更に備えていてもよい。
In addition to the packet / payload memory address
本実施形態に係る誤り訂正符号化装置は、コンピュータを各機能部として動作させるソフトウェアを用いて実現してもよい。例えば、パケット・ペイロードメモリアドレステーブル生成部103、パケット送信バッファメモリ確保部102を備え、パケットのペイロードの先頭が誤り訂正演算単位の整数倍となるように配置したパケット単位のパケットバッファ用のアドレステーブルを生成し、そのアドレスを誤り訂正符号化ライブラリすなわち誤り訂正符号化処理部12に伝えるソフトウェアをコンピュータに実行させることで誤り訂正符号化装置を実現してもよい。以下の実施形態についても同様である。
The error correction coding apparatus according to the present embodiment may be realized using software that causes a computer to operate as each functional unit. For example, a packet / payload memory address
(実施形態2)
本実施形態では、パケット伝送処理部11自身が、パケット送信バッファメモリ132、符号化用ペイロードメモリアドレステーブルTC、送信用パケットメモリアドレステーブルTSを作成する。この場合、各ペイロードの先頭アドレスが符号化演算部108における演算単位でアライメントされるように、ペイロードデータ書き込み部105が符号化用ペイロードメモリアドレステーブルTCを生成する。本実施形態に係る符号化用ペイロードメモリアドレステーブルTCの具体的な生成法については後述する実施形態7で説明する。
(Embodiment 2)
In the present embodiment, the packet
本実施形態では、実施形態1においてステップS101とステップS102のステップを省き、ステップS102とステップS103と同等の処理をパケット伝送処理部11内で行う。以降は実施形態1と同じである。
In the present embodiment, steps S101 and S102 in the first embodiment are omitted, and processing equivalent to steps S102 and S103 is performed in the packet
本実施形態の構成を採用することによって、パケット送信バッファメモリ確保要求部101、パケット送信バッファメモリ確保部102及びパケット・ペイロードメモリアドレステーブル生成部103を省略することができる。
By adopting the configuration of this embodiment, the packet transmission buffer memory securing
(実施形態3)
図2は、本実施形態に係る復号装置の全体構成図である。本実施形態に係る復号装置は誤り訂正復号装置として機能し、誤り訂正復号処理部22を備える。本実施形態に係る誤り訂正復号装置はパケット受信処理部21を備える。パケット受信処理部21は、誤り訂正復号処理部22の外側に配置される。
(Embodiment 3)
FIG. 2 is an overall configuration diagram of the decoding apparatus according to the present embodiment. The decoding device according to the present embodiment functions as an error correction decoding device and includes an error correction
パケット受信処理部21は、パケット受信バッファメモリ確保要求部201と、パケット受信部204と、ペイロードデータ書き込み部205と、受信可否テーブル作成部として機能する受信可否テーブル・復号用テーブルメモリアドレステーブル更新部206と、復号処理開始要求部207と、ソースデータ出力部210と、を備える。誤り訂正復号処理部22は、パケット受信バッファメモリ確保部202と、復号用メモリアドレステーブル生成部として機能するパケット・ペイロードメモリアドレステーブル生成部203と、復号用ペイロードメモリアドレステーブル入力部208と、復号演算部209と、パケット受信バッファメモリ232を備える。
The packet
本実施形態に係る復号装置は、本実施形態に係る復号方法を実行する。本実施形態に係る復号方法は、受信側メモリアドレステーブル生成手順と、復号演算手順と、を順に有する。
受信側メモリアドレステーブル生成手順では、受信データが格納されているパケット受信バッファメモリ232におけるペイロードデータのメモリアドレスを管理する復号用ペイロードメモリアドレステーブルTDを生成する。
復号演算手順では、復号用ペイロードメモリアドレステーブルTDに格納されているアドレスを参照してパケット受信バッファメモリ232から各パケットのペイロードデータを読み出し、読み出したペイロードデータの復号を行う。
The decoding device according to the present embodiment executes the decoding method according to the present embodiment. The decoding method according to the present embodiment includes a reception-side memory address table generation procedure and a decoding calculation procedure in order.
The receiving memory address table generation procedure to generate a decoded payload memory address table T D for managing the memory address of the payload data in the packet receiving
The decoding algorithm reads the payload data of each packet from the packet
受信側メモリアドレステーブル生成手順では、各パケットの受信の有無を、各パケットの送信順に管理する受信可否テーブルTA1を作成し、1符号ブロックに含まれる各パケットのデータを受信順に格納しているパケット受信バッファメモリ232における各パケットのヘッダのアドレスを、各パケットの情報に基づいて送信順と関連付けてもよい。この場合、復号演算手順において、復号演算部209は、受信可否テーブルTA1の各パケットの受信の有無に基づいて、消失したパケットを復元する。
The receiving memory address table generation procedure stores the presence or absence of the reception of each packet, to create a receivability table T A1 for managing the transmission order of each packet, the data of each packet included in one code block in the order received The header address of each packet in the packet
ステップS201:パケット受信バッファメモリ確保要求部201が、誤り訂正復号処理部22に対し、パケット受信バッファメモリの確保要求を行う。このとき、パケット受信バッファメモリ確保要求部201は、各パケットに関する情報を指定する。各パケットに関する情報は、例えば、ヘッダ長、ソースペイロード長、リペアペイロード長、1符号ブロック中のソースペイロードの個数、リペアペイロードの個数である。各パケットに関する情報は、リペアペイロードの誤り検査行列や生成多項式などの符号に関する情報も含む。これによって、1符号ブロックより大きいサイズの領域のパケット受信バッファメモリ232をパケット・ペイロードメモリアドレステーブル生成部203が確保する。
Step S201: The packet reception buffer memory securing
ステップS202:パケット受信バッファメモリ確保部202は、パケット受信処理部21から参照可能なメモリ空間上に、1符号ブロック分のパケット(ヘッダ+ペイロード)データが格納できる十分な大きさのパケット受信バッファメモリ232を確保する。
Step S202: The packet reception buffer
ステップS203:パケット・ペイロードメモリアドレステーブル生成部203は、各ペイロード格納領域の先頭アドレスが、誤り訂正演算単位の境界上に置かれるように復号用ペイロードメモリアドレステーブルTDを生成する。このように、ペイロードデータの先頭アドレスが復号化の演算単位の整数倍になるように、復号用ペイロードメモリアドレステーブルTDを生成する。ここでの具体的な生成の方法については実施形態7において後述する。なお、メモリ確保とアドレステーブルの生成は、符号ブロック長(ソースペイロードの個数とリペアペイロードの個数の和)、ヘッダ長、ペイロード長などが変わらない限りは、送信開始時に一度行うだけでよい。
Step S203: Packet payload memory address
受信用パケットメモリアドレステーブルTRは、復号用ペイロードメモリアドレステーブルTDにおける各ペイロードのアドレス値から、パケットヘッダサイズ分のアドレス値を引いて生成される。パケット・ペイロードメモリアドレステーブル生成部203は、各ヘッダの先頭アドレスを集めた受信用パケットメモリアドレステーブルTRのアドレスの数値からヘッダサイズを加算して生成する。例えば、ペイロード#1〜#4のTDのアドレス値が0x0030、0x0620、0x0C10、0x1200であれば、TRはペイロード#1〜#4のアドレスとして0x0008、0x05F8、0x0BE8、0x11D8を格納する。
Receiving packet memory address table T R from the address value of each payload in decoding the payload memory address table T D, it is generated by subtracting the address value of the packet header size of. Packet payload memory address
ステップS204:パケット受信部204は、ネットワークを介しパケット伝送処理部11からパケットを受信する。
Step S204: The
ステップS205:パケット受信部204は、ペイロードデータ書き込み部205に渡す。ペイロードデータ書き込み部205は受信用パケットメモリアドレステーブルTRを参照し、受信したパケットを受信順に順次パケット受信バッファメモリ232に書き込む。なお、ここで各パケットのヘッダを格納する領域は必ずしもパケット受信バッファメモリ232上にある必要はなく、その場合はパケット受信部204においてヘッダが取り除かれ、ペイロードのみが書き込まれる。パケット受信後、ステップS206を実行する。
Step S205: The
ステップS206:受信可否テーブル・復号用ペイロードメモリアドレステーブル更新部206は、受信したパケットのペイロード番号に対応する、復号用ペイロードメモリアドレステーブルTDのセルに、そのペイロードが格納されたアドレスを記録するという更新処理を行う。また同様に受信可否テーブルTA1の対応するセルに受信を記録する。1符号ブロック分のパケット受信処理が終了するまで、ステップS204からS206の処理を繰り返す。
Step S206: receiving availability table decoding payload memory address
1符号ブロック分の受信が終了した後、ステップS206において、受信できなかった番号に対応する復号用ペイロードメモリアドレステーブルTDのセルに、ペイロード復号時のデータ格納先のアドレスを記録し、対応する受信可否テーブルTA1のセルには消失の記録を行う。 After reception of one code block has been completed, in step S206, the cell of decoding the payload memory address table T D corresponding to the not received number, recording data storage destination address for the payload decoding, the corresponding The erasure is recorded in the cell of the reception availability table T A1 .
ステップS207:復号処理開始要求部207は、復号処理の開始要求を行う。このとき、復号処理開始要求部207は、これら2つのテーブルTD及びTA1を、復号用ペイロードメモリアドレステーブル入力部208に入力する。
Step S207: The decryption process start
ステップS208:復号演算部209は、復号用ペイロードメモリアドレステーブルTDを参照しながら演算対象となるペイロードにアクセスして、LDPCにおける誤り検査行列もしくはRS符号における生成多項式などによって指定される演算を行い、消失したペイロードを復元していく。
Step S208: decoding
例えばペイロード#3はペイロード#1とペイロード#5との演算で復元される、という情報が誤り検査行列や生成多項式などにより指定されるが、その情報とペイロードメモリアドレステーブルの参照により、実際に演算のためメモリアクセスを行う箇所が決定される。なお、図2では復元されたペイロードであるペイロード#3の領域は、パケット受信バッファメモリ232におけるペイロード#3と同一の領域である。しかし、ペイロードの復元先領域はパケット受信バッファメモリ232以外の領域に確保してもよい。ただし各復元されたペイロードの領域は復号用ペイロードメモリアドレステーブルTDに記述されている必要がある。
For example, the information that the payload # 3 is restored by the operation of the
本実施形態に係る誤り訂正復号装置は、パケット受信処理部21と異なる誤り訂正復号処理部22が復号用ペイロードメモリアドレステーブルTDを管理するため、パケット受信処理部21の負荷を減らすことができる。誤り訂正ライブラリを利用するソフト側が復号用ペイロードメモリアドレステーブルTDを管理するので、ソフト側で別途、特定のペイロードにアクセスしたり、ソフト側の都合でペイロードデータを一時的に別の領域に移しても、アドレステーブルをそれに合わせて更新することができる。
Error correction decoding apparatus according to this embodiment, since the error correction
(実施形態4)
図3は、本実施形態に係る誤り訂正復号装置の全体構成図である。本実施形態に係る誤り訂正復号装置は、実施形態2における受信可否テーブル・復号用テーブルメモリアドレステーブル更新部206に代えて受信可否テーブル更新部226を備え、復号用ペイロードメモリアドレステーブル入力部208に代えて復号用ペイロードメモリアドレステーブル更新・入力部228を備える。
(Embodiment 4)
FIG. 3 is an overall configuration diagram of the error correction decoding apparatus according to the present embodiment. The error correction decoding apparatus according to the present embodiment includes a reception availability
実施形態3の場合、受信可否テーブルTA1のセル番号とペイロード番号が対応するため、例えば1が受信、0が消失を示すとして、TA1[2]=1、TA1[3]=0とした場合、ペイロード#2は受信、ペイロード#3は消失、という形で受信可否テーブルを更新する。このとき、実施形態3のTA1の添字はペイロード番号を示す。 In the case of the third embodiment, since the cell number and payload number in the reception availability table T A1 correspond to each other, TA1 [2] = 1 and TA1 [3] = 0 assuming that 1 indicates reception and 0 indicates erasure. , Payload # 2 is received, Payload # 3 is lost, and the reception availability table is updated. At this time, the suffix of T A1 in Embodiment 3 indicates the payload number.
本実施形態では、受信可否テーブルTA3がパケットの受信順と受信したペイロード番号の対応付けが可能な形式になっている。例えば、TA1[1]=1、TA1[2]=4、TA1[3]=5、・・・のように、受信したペイロード番号を各セルに入力していきTA1を更新していく。ここで、実施形態4のTA1の添字は受信順を示す。パケット受信処理部21がパケット受信後に、受信可否テーブル更新部226が、受信可否テーブルTA3のみを更新し、復号用ペイロードメモリアドレステーブルTDは更新しない。
In the present embodiment, the reception availability table T A3 has a format in which the packet reception order can be associated with the received payload number. For example, TA1 [1] = 1, TA1 [2] = 4, TA1 [3] = 5, etc., and the received payload number is input to each cell, and TA1 is updated. Here, the subscript of T A1 in Embodiment 4 indicates the order of reception. After the packet
復号処理開始要求部207は、受信可否テーブルTA3を復号用ペイロードメモリアドレステーブル更新・入力部228に入力する。そして、復号用ペイロードメモリアドレステーブル更新・入力部228が、受信可否テーブルTA2を元に復号用ペイロードメモリアドレステーブルTDを更新する。
The decryption processing
本実施形態では、復号演算部209は、受信可否テーブルTA3は実施形態3と同様に、セルの順番がペイロードの順番と一致する形式で更新する。例えば、3番目のセルがペイロード#3の受信可否と対応するように更新する。または別の受信可否テーブルTA2を同形式で作成してもよい。
In the present embodiment, the
例えば、最初に受信したペイロードはアドレス0x0030番地に、2番目に受信したペイロードはアドレス0x0620番地に・・・という形で、受信順と格納先のメモリアドレスの対応は決まっているため、TD[1]=0x0030、TD[4]=0x0620、TD[5]=0x0C10、・・・というように誤り訂正復号処理部22の中で復号用ペイロードメモリアドレステーブルTDを更新することができる。ただし、本実施形態では、TDの添字はペイロード番号を示す。
For example, since the first received payload is address 0x0030, the second received payload is address 0x0620, etc., the correspondence between the reception order and the memory address of the storage destination is determined, so TD [1 ] = 0x0030, TD [4] = 0x0620, TD [5] = 0x0C10, it is possible to update the decryption payload memory address table T D in the error correction
復号処理後、パケット受信処理部21はどのペイロードが復元できてどれができなかったか知る必要があるが、その情報を伝えるためには実施形態3のTA2のように、復元できなかったところが0である必要がある。このため、誤り訂正復号処理部22の中で実施形態3のTA1の形式に変更する。復元結果を伝えるための受信可否テーブルTA2の性質は、実施形態3と同様である。
After the decoding process, the packet
本実施形態において、受信できなかったペイロード番号については、パケット受信処理部21が受信可否テーブルTA3の最後に記述し、合計何個受信したか、という情報と共に誤り訂正復号処理部22に通知する。例えば、ペイロード#3と#6が消失した場合、パケット受信処理部21は、TA1[5]=3、TA1[6]=6として計4個受信したという情報を誤り訂正復号処理部22に通知する。
In the present embodiment, the payload number that could not be received is described at the end of the reception availability table T A3 by the packet
復号演算部209は、バッファの空いている領域から#3と#6の復元先を割り当てる。例えば、TD[3]=0x17F0、TD[6]=0x1DE0と更新しておく。これにより、パケット受信処理部21はTDを参照して復元したデータを取り出すことができる。
The
本実施形態に係る発明は、ソフト側は復号用ペイロードメモリアドレステーブルTDと、その更新部を実装しなくて済み、ソフト側の構成を簡易なものにする効果がある。 The invention according to this embodiment, the soft side and decoding the payload memory address table T D, it is not necessary to implement the update unit, the effect of those simplify the structure of the soft side.
本実施形態に係る誤り訂正復号装置は、ソフトウェアがテーブルの作成をライブラリに依頼する仕組みとして、例えばソフトが稼動するシステムの代わりにライブラリを使うソフトからのメモリ割当要求を受けてメモリ割当をソフトに返すインタフェースを更に備えていてもよい。 In the error correction decoding apparatus according to the present embodiment, as a mechanism in which software requests a library to create a table, for example, in response to a memory allocation request from software that uses a library instead of a system in which the software operates, the memory allocation is performed by software. An interface for returning may be further provided.
(実施形態5)
図4は、本実施形態に係る誤り訂正復号装置の全体構成図である。本実施形態に係る誤り訂正復号装置は、実施形態2における受信可否テーブル・復号用テーブルメモリアドレステーブル更新部206に代えて受信可否テーブル更新部226を備える。
(Embodiment 5)
FIG. 4 is an overall configuration diagram of the error correction decoding apparatus according to the present embodiment. The error correction decoding apparatus according to the present embodiment includes a reception availability
本実施形態では、ペイロードデータ書き込み部205が、受信したデータを受信順ではなく、受信パケットのペイロードヘッダを一度解析してペイロード番号を取得した上で、ペイロード番号順にパケット受信バッファメモリ232に配置していく。復号用ペイロードメモリアドレステーブルTDの各セルのアドレス値は、セル番号と同じペイロード番号が配置されるアドレスを示していれば良いため更新の必要がない。したがって、本実施形態に係る誤り訂正復号装置は、受信可否テーブル更新部226で実施形態3と同様に受信可否テーブルTA1を更新し、あとは実施形態3と同様の処理を行う。
In this embodiment, the payload
(実施形態6)
実施形態3,4,5における別の実施形態として、パケット受信バッファメモリ確保要求部201を備えず、パケット受信処理部21内部でパケット受信バッファメモリ232、受信用ペイロードメモリアドレステーブルTR、復号用パケットメモリアドレステーブルTDを作成してもよい。
(Embodiment 6)
Another embodiment of the embodiment 3, 4, 5, not provided with the packet reception buffer memory
本実施形態では、各ペイロードの先頭アドレスが復号演算部209における演算単位でアライメントされるように、復号用ペイロードメモリアドレステーブルTDを生成する。この場合、実施形態3,4,5においてステップS201とステップS202のステップを省き、ステップS202とステップS203と同等の処理をパケット受信処理部21内で行う。以降は実施形態3,4,5と同じである。
In this embodiment, as the head address of each payload are aligned by the arithmetic unit in
(実施形態7)
本実施形態では、実施形態1及び2における符号化用ペイロードメモリアドレステーブルTC並びに実施形態3〜5における復号用ペイロードメモリアドレステーブルTDの具体的な生成法を述べる。
(Embodiment 7)
In the present embodiment, it described a specific generation method of decoding the payload memory address table T D in the payload memory address for coding table T C and Embodiment 3-5 in the first and second embodiments.
TCおよびTDは、各ヘッダの先頭アドレスの数値からヘッダサイズを減算して生成する。例えば誤り訂正演算単位が16バイトである場合、図5のように1符号ブロックに相当するパケット数のバッファメモリの確保を行い、16の倍数となるように各ペイロード格納領域の先頭アドレスの算出を行い、ペイロードメモリアドレステーブルを作成する。例えば、ペイロードの先頭アドレスが「0x0030」であり、パケットヘッダサイズが40byteの場合、ペイロード格納領域の先頭アドレスは「0x0008」となる。 T C and T D is generated by subtracting the header size from the numerical start address of each header. For example, when the error correction operation unit is 16 bytes, the buffer memory of the number of packets corresponding to one code block is secured as shown in FIG. 5, and the start address of each payload storage area is calculated so as to be a multiple of 16. To create a payload memory address table. For example, when the payload start address is “0x0030” and the packet header size is 40 bytes, the payload storage area start address is “0x0008”.
図5では各ペイロードの末尾と次のヘッダの先頭が、同じ16バイトの区切り内に入らないように、各ペイロードの末尾から12バイト分の空き領域を確保している。図6では、各ペイロードの末尾からの空き領域を可能な限り少なくして、ペイロード格納領域を配置している例を示している。ペイロード末尾のアドレスにヘッダサイズを加算した値を16バイト単位で切り上げたアドレスが次のペイロード先頭アドレスとなり、そこからヘッダ先頭アドレスを逆算して配置することで、計算上これ以上減らせない値まで減らす。 In FIG. 5, an empty area of 12 bytes from the end of each payload is secured so that the end of each payload and the beginning of the next header do not fall within the same 16-byte segment. FIG. 6 shows an example in which the payload storage area is arranged with the empty area from the end of each payload as small as possible. The address obtained by rounding up the value obtained by adding the header size to the address at the end of the payload in units of 16 bytes becomes the next payload start address, and the header start address is calculated backward from there to reduce it to a value that cannot be further reduced in calculation. .
誤り訂正の符号化・復号演算においては、複数のペイロードを演算単位に区切り排他的論理和を演算していくが、図6のような配置を行った場合には、図7で示すようにペイロードの末尾で無関係なヘッダ領域先頭同士の排他的論理和が演算されてしまう。図7では、2つのペイロードの先頭アドレスから、16バイトずつXOR演算を行い、演算結果格納先に順次格納する。末尾の部分は、不使用の部分も含め格納し、ソフト側ではこの不使用部分を無視してデータを取り扱う。ただしこの場合でも、演算結果の末尾から演算単位境界までのデータは不使用領域として無視して取り扱うことができる。 In the error correction encoding / decoding operation, a plurality of payloads are divided into operation units and exclusive OR is calculated. However, when the arrangement as shown in FIG. 6 is performed, the payload as shown in FIG. XOR of the header area heads that are irrelevant at the end of is calculated. In FIG. 7, XOR operation is performed 16 bytes at a time from the top addresses of two payloads, and the result is sequentially stored in the operation result storage destination. The last part is stored including the unused part, and the software handles the data by ignoring the unused part. However, even in this case, data from the end of the calculation result to the calculation unit boundary can be ignored and handled as a non-use area.
図5のメモリ配置の例は、ペイロード同士のXOR(排他的論理和)演算を行った場合に、ペイロード末尾での演算において、本来演算に必要ないヘッダ領域が一部巻き込まれてしまうことを防ぐ効果がある。図6の例は、ペイロード末尾と次のヘッダ間の空き領域を最小限にする効果がある。このため、図7で、図6ではペイロード末尾のXOR演算で次のヘッダの先頭が一部巻き込まれるが、必要のない部分は不使用にする。従って、各パケットのヘッダ領域に、ペイロード同士の演算前にあらかじめ意味のある情報が格納されていた場合、図5を用いる。 The example of the memory arrangement of FIG. 5 prevents a part of the header area that is not necessary for the operation from being partially involved in the operation at the end of the payload when performing an XOR (exclusive OR) operation between the payloads. effective. The example of FIG. 6 has the effect of minimizing the empty area between the end of the payload and the next header. For this reason, in FIG. 7, in FIG. 6, the beginning of the next header is partly involved in the XOR operation at the end of the payload, but unnecessary portions are not used. Therefore, FIG. 5 is used when meaningful information is stored in advance in the header area of each packet before the calculation of payloads.
なお、確保領域外へのメモリアクセスを防ぐために、図6のような配置を行った場合は、符号ブロック最後のペイロード末尾後の空き領域は、演算単位で区切られるように確保される必要がある。 In order to prevent memory access outside the reserved area, when the arrangement as shown in FIG. 6 is performed, the empty area after the end of the payload at the end of the code block needs to be secured so as to be divided by the operation unit. .
<発明によって生じる効果>
本発明により、誤り訂正符号化処理部12とパケット伝送処理部11との間でのデータの共有に伴うコストを削減するとともに、誤り訂正復号処理部22とパケット受信処理部21との間でのデータの共有に伴うコストを削減することができ、全体としてのスループット向上および処理負荷の削減が可能となる。
<Effects produced by the invention>
According to the present invention, the cost associated with data sharing between the error correction
ネットワーク伝送経路でパケットの順序入れ替えが発生した場合、受信側で本来の順番にデータを入れ替える処理は、メモリコピーが必要なため負荷が発生する。実施形態3から実施形態5に係る誤り訂正復号処理部22は、復号用ペイロードメモリアドレステーブルTDを管理し、受信したままの順番で受信バッファ上にパケットを格納していく。このため、実施形態3から実施形態5に係る誤り訂正復号装置は、パケット受信処理部21の負荷を減らすことができる。誤り訂正復号処理部22では、ペイロード単位での排他的論理和の演算を行うので、ペイロード番号と対応するペイロード格納先メモリアドレスがわかれば、ペイロードが本来の番号順に並んでいなくても復号演算を行うことが可能である。この効果は、パケット単位、もしくはペイロード単位での演算を行い、かつその到着順序が保証されない誤り訂正処理の分野において特に有効であるということができる。
When the packet order is changed in the network transmission path, the process of changing the data in the original order on the receiving side requires a memory copy, which causes a load. Error correction
誤り訂正処理を用いる情報伝送において、伝送の単位であるパケットは、一般的に誤りに対する保護の対象となるペイロード部分と、保護の必要がないヘッダ部分とで構成される。メモリ上にペイロード部分だけを連続的に配置する構成の場合、送信時にヘッダと結合してパケットを構成するためのメモリコピーが発生し、受信時には一時的な領域にパケットを格納してからペイロードのみを取り出すメモリコピーが必要となる。本発明のように送信用・受信用パケットメモリアドレステーブルを参照しながらパケット全体をメモリ上に格納する場合は、送受信に関わるメモリコピーの回数を減らすことができる。この上で本発明のように符号化用・復号用ペイロードメモリアドレステーブルを用いることで、誤り訂正の演算に必要なペイロード部分のデータのみにアクセスしながら、誤り訂正処理を行うことが可能である。 In information transmission using error correction processing, a packet, which is a unit of transmission, is generally composed of a payload portion that is subject to protection against errors and a header portion that does not require protection. In the case of a configuration in which only the payload portion is continuously arranged on the memory, a memory copy is generated to form a packet by combining with the header at the time of transmission, and only the payload is stored after storing the packet in a temporary area at the time of reception You need a memory copy to remove When the entire packet is stored in the memory while referring to the transmission / reception packet memory address table as in the present invention, the number of memory copies related to transmission / reception can be reduced. Furthermore, by using the encoding / decoding payload memory address table as in the present invention, it is possible to perform error correction processing while accessing only the data of the payload portion necessary for error correction calculation. .
実施形態5の場合は、ペイロード番号を知るために一度ヘッダを見る必要があるため、パケット受信部204のソケットバッファから、一度別の領域にメモリコピーする必要が生じる場合がある。またペイロード番号と対応するメモリアドレスを受信用パケットメモリアドレステーブルTRから探す処理が加わるため、実施形態3及び実施形態4と比べて本発明の効果は弱くなる。一方、復号用ペイロードメモリアドレステーブルTDの更新の必要がないため、容易な実装とすることができる。
In the case of the fifth embodiment, since it is necessary to look at the header once to know the payload number, it may be necessary to copy the memory from the socket buffer of the
さらに、昨今のコンピュータはSIMD(Single Instruction Multiple Data)演算のための命令拡張を有しており、これを用いることで誤り訂正処理における排他的論理和の演算速度を大きく向上させることができる。例えば通常の32ビットCPUでは32ビット(4バイト)毎の排他的論理和の演算しか実行できないのに対し、SIMD命令を用いることで128ビット(16バイト)単位での演算が可能になり、大幅に演算速度が向上する。しかし、このためには演算対象のデータに16バイト単位でアクセスする必要がある。誤り訂正演算においてはペイロードデータのみが演算対象となるため、ペイロードデータの先頭から16バイトずつの演算ができるよう、ペイロードデータの先頭アドレスは16バイトの倍数でなければならない。すなわちペイロードデータは16バイトでアライメントされた領域に確保されなければならない。ヘッダとペイロードを合わせたパケットサイズが16の倍数であれば、ヘッダのサイズが16バイトの倍数でない場合でも、ペイロードの先頭から最初の16バイト境界までに限り、例外的にSIMD演算を行わず、その後16バイト毎のSIMD演算を行うことが可能である。しかしパケットサイズが16の倍数でない場合には不可能であるため、本発明のように、各ペイロード領域が16バイトでアライメントされるようにペイロードデータを格納し、各ペイロード領域のアドレステーブルを用いて誤り訂正符号化およびパケット復号処理部とのデータ共有を行うことで、あらゆるパケットサイズにおいてデータの共有にかかるコストを抑え、かつ誤り訂正符号化およびパケット復号処理部における高速な演算が可能となる。 Further, recent computers have an instruction extension for SIMD (Single Instruction Multiple Data) operation, and by using this, the operation speed of exclusive OR in error correction processing can be greatly improved. For example, an ordinary 32-bit CPU can only execute an exclusive OR operation every 32 bits (4 bytes), but using SIMD instructions enables operations in units of 128 bits (16 bytes). The calculation speed is improved. However, for this purpose, it is necessary to access the data to be calculated in units of 16 bytes. In the error correction calculation, only the payload data is a calculation target. Therefore, the start address of the payload data must be a multiple of 16 bytes so that the calculation can be performed 16 bytes at a time from the start of the payload data. That is, the payload data must be secured in an area aligned with 16 bytes. If the combined packet size of the header and payload is a multiple of 16, even if the header size is not a multiple of 16 bytes, the SIMD operation is not performed exceptionally only from the beginning of the payload to the first 16-byte boundary. Thereafter, SIMD operations can be performed every 16 bytes. However, since it is impossible when the packet size is not a multiple of 16, payload data is stored so that each payload area is aligned with 16 bytes as in the present invention, and an address table of each payload area is used. By performing data sharing with the error correction coding and packet decoding processing unit, it is possible to reduce the cost of data sharing at any packet size and to perform high-speed calculations in the error correction coding and packet decoding processing unit.
また、バッファメモリの確保及びアドレステーブルの生成手段を誤り訂正符号化処理部12および誤り訂正復号処理部22が提供することで、同装置を利用した情報送受信装置の構成が容易になるという効果がある。
In addition, since the error correction
本発明は情報通信産業に適用することができる。 The present invention can be applied to the information communication industry.
11:パケット伝送処理部
12:誤り訂正符号化処理部
21:パケット受信処理部
22:誤り訂正復号処理部
101:パケット送信バッファメモリ確保要求部
102:パケット送信バッファメモリ確保部
103:パケット・ペイロードメモリアドレステーブル生成部
104:ソースデータ読み取り部
105:ペイロードデータ書き込み部
106:符号化処理開始要求部
107:符号化用ペイロードメモリアドレステーブル入力部
108:符号化演算部
109:パケット送信部
132:パケット送信バッファメモリ
201:パケット受信バッファメモリ確保要求部
202:パケット受信バッファメモリ確保部
203:パケット・ペイロードメモリアドレステーブル生成部
204:パケット受信部
205:ペイロードデータ書き込み部
206:受信可否テーブル・復号用テーブルメモリアドレステーブル更新部
207:復号処理開始要求部
208:復号用ペイロードメモリアドレステーブル入力部
209:復号演算部
210:ソースデータ出力部
226:受信可否テーブル更新部
228:復号用ペイロードメモリアドレステーブル更新・入力部
232:パケット受信バッファメモリ
11: Packet transmission processing unit 12: Error correction coding processing unit 21: Packet reception processing unit 22: Error correction decoding processing unit 101: Packet transmission buffer memory securing request unit 102: Packet transmission buffer memory securing unit 103: Packet payload memory Address table generation unit 104: Source data reading unit 105: Payload data writing unit 106: Encoding processing start request unit 107: Encoding payload memory address table input unit 108: Encoding operation unit 109: Packet transmission unit 132: Packet transmission Buffer memory 201: Packet reception buffer memory allocation request unit 202: Packet reception buffer memory allocation unit 203: Packet / payload memory address table generation unit 204: Packet reception unit 205: Payload data writing unit 206: Reception Availability table / decoding table memory address table update unit 207: Decoding processing start request unit 208: Decoding payload memory address table input unit 209: Decoding operation unit 210: Source data output unit 226: Receivability table updating unit 228: For decoding Payload memory address table update / input unit 232: packet reception buffer memory
Claims (8)
前記符号化用ペイロードメモリアドレステーブルに格納されているアドレスを参照して前記パケット送信バッファメモリから各パケットのペイロードデータを読み出し、読み出したペイロードデータの符号化を行う符号化演算部と、
を備える符号化装置。 A payload memory address table for encoding that manages the memory address of the payload data of each packet included in one code block in the packet transmission buffer memory in which the transmission data is stored. An encoding memory address table generation unit for generating an integer multiple;
An encoding operation unit that reads the payload data of each packet from the packet transmission buffer memory with reference to an address stored in the encoding payload memory address table, and encodes the read payload data;
An encoding device comprising:
前記送信用パケットメモリアドレステーブルに格納されているアドレスを参照して前記パケット送信バッファメモリから各パケットのヘッダ及びペイロードデータを読み出して送信するパケット送信部と、
をさらに備えることを特徴とする請求項1に記載の符号化装置。 A transmission memory address table generation unit for creating a transmission packet memory address table for managing the memory address of the header of each packet in the packet transmission buffer memory based on the information of each packet;
A packet transmission unit that reads and transmits the header and payload data of each packet from the packet transmission buffer memory with reference to addresses stored in the packet memory address table for transmission;
The encoding device according to claim 1, further comprising:
前記復号用ペイロードメモリアドレステーブルに格納されているアドレスを参照して前記パケット受信バッファメモリから各パケットのペイロードデータを読み出し、読み出したペイロードデータの復号を行う復号演算部と、
を備える復号装置。 Decoding memory that generates a payload memory address table for decoding that manages the memory address of the payload data in the packet reception buffer memory in which the received data is stored so that the leading address of the payload data is an integral multiple of the decoding operation unit An address table generation unit;
A decoding operation unit that reads the payload data of each packet from the packet reception buffer memory with reference to the address stored in the decoding payload memory address table, and decodes the read payload data;
A decoding device comprising:
前記復号用メモリアドレステーブル生成部は、前記パケット受信バッファメモリにおける各パケットのヘッダのアドレスを、各パケットの情報に基づいて送信順と関連付け、
前記復号演算部は、前記受信可否テーブルの各パケットの受信の有無に基づいて、消失したパケットを復元する
ことを特徴とする請求項3に記載の復号装置。 A reception availability table creating unit that creates a reception availability table that manages whether or not each packet is received in the order of reception of each packet;
The decoding memory address table generation unit associates the address of the header of each packet in the packet reception buffer memory with the transmission order based on the information of each packet,
The decoding apparatus according to claim 3, wherein the decoding calculation unit restores a lost packet based on whether or not each packet in the reception availability table is received.
前記符号化用ペイロードメモリアドレステーブルに格納されているアドレスを参照して前記パケット送信バッファメモリから各パケットのペイロードデータを読み出し、読み出したペイロードデータの符号化を行う符号化演算手順と、
を順に有する符号化方法。 A payload memory address table for encoding that manages the memory address of the payload data of each packet included in one code block in the packet transmission buffer memory in which the transmission data is stored. A procedure for generating a memory address table on the transmission side that is generated to be an integer multiple,
An encoding operation procedure for reading the payload data of each packet from the packet transmission buffer memory with reference to the address stored in the encoding payload memory address table, and encoding the read payload data;
The encoding method which has these in order.
前記送信用パケットメモリアドレステーブルに格納されているアドレスを参照して前記パケット送信バッファメモリから各パケットのヘッダ及びペイロードデータを読み出して送信するパケット送信手順を前記符号化演算手順の後にさらに有することを特徴とする請求項5に記載の符号化方法。 In the transmission-side memory address table generation procedure, further, a transmission packet memory address table for managing the memory address of the header of each packet in the packet transmission buffer memory based on the information of each packet is created,
A packet transmission procedure for reading out and transmitting the header and payload data of each packet from the packet transmission buffer memory with reference to an address stored in the packet memory address table for transmission is further provided after the encoding operation procedure. The encoding method according to claim 5, wherein:
前記復号用ペイロードメモリアドレステーブルに格納されているアドレスを参照して前記パケット受信バッファメモリから各パケットのペイロードデータを読み出し、読み出したペイロードデータの復号を行う復号演算手順と、
を順に有する復号方法。 Receiver memory that generates a payload memory address table for decoding that manages the memory address of the payload data in the packet reception buffer memory in which the received data is stored so that the start address of the payload data is an integral multiple of the decoding operation unit Address table generation procedure,
A decoding calculation procedure for reading payload data of each packet from the packet reception buffer memory with reference to an address stored in the decoding payload memory address table, and decoding the read payload data;
In order.
前記復号演算手順において、前記受信可否テーブルの各パケットの受信の有無に基づいて、消失したパケットを復元する
ことを特徴とする請求項7に記載の復号方法。 In the reception-side memory address table generation procedure, a reception availability table for managing the presence / absence of each packet in the order of reception of each packet is created, and data of each packet included in one code block is stored in the order of reception Associating the header address of each packet in the packet reception buffer memory with the transmission order based on the information of each packet,
The decoding method according to claim 7, wherein in the decoding calculation procedure, lost packets are restored based on whether or not each packet in the reception availability table is received.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013227076A JP5735610B2 (en) | 2013-10-31 | 2013-10-31 | Encoding device and decoding device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013227076A JP5735610B2 (en) | 2013-10-31 | 2013-10-31 | Encoding device and decoding device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015089006A JP2015089006A (en) | 2015-05-07 |
JP5735610B2 true JP5735610B2 (en) | 2015-06-17 |
Family
ID=53051349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013227076A Active JP5735610B2 (en) | 2013-10-31 | 2013-10-31 | Encoding device and decoding device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5735610B2 (en) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01297758A (en) * | 1988-05-26 | 1989-11-30 | Hitachi Ltd | Data transmission method between microcomputers |
WO2000079405A1 (en) * | 1999-06-21 | 2000-12-28 | Hitachi, Ltd. | Data processor |
JP4559126B2 (en) * | 2004-06-01 | 2010-10-06 | 日本電信電話株式会社 | Video transmission method, video transmission apparatus, video transmission program, and computer-readable recording medium recording the program |
JP2012099054A (en) * | 2010-11-05 | 2012-05-24 | Canon Inc | Encoding processing device, encoding processing method, and computer program |
-
2013
- 2013-10-31 JP JP2013227076A patent/JP5735610B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2015089006A (en) | 2015-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5863200B2 (en) | Encoding and decoding using elastic codes with flexible source block mapping | |
EP2467942B1 (en) | Methods employing fec codes with permanent inactivation of symbols for encoding and decoding processes | |
JP4546246B2 (en) | Systematic encoding and decryption of chained encryption reactions | |
JP5329239B2 (en) | Multi-body code generator and decoder for communication systems | |
EP1894376A2 (en) | In-place transformations with applications to encoding and decoding various classes of codes | |
Lin et al. | A reduced latency list decoding algorithm for polar codes | |
US8583982B2 (en) | Concatenated decoder and concatenated decoding method | |
WO2008003094A2 (en) | Efficient representation of symbol-based transformations with application to encoding and decoding of forward error correction codes | |
TW200301623A (en) | Multi-stage code generator and decoder for communication systems | |
Hou et al. | BASIC regenerating code: Binary addition and shift for exact repair | |
JP2020524930A (en) | Short latency error correction decoding | |
CN112286449A (en) | RS erasure processing equipment and distributed storage system | |
JP5735610B2 (en) | Encoding device and decoding device | |
Chen et al. | A new Zigzag MDS code with optimal encoding and efficient decoding | |
KR102021872B1 (en) | Raptor-q encoding apparatus with improved encoding delay time and method thereof | |
WO2012109851A1 (en) | Interleaving and de-interleaving method, interleaver and de-interleaver | |
JPWO2015022910A1 (en) | Communication path decoding method and communication path decoding apparatus | |
US20200403643A1 (en) | Raptor-q encoding apparatus with improved encoding delay time and method thereof | |
KR102145326B1 (en) | Reordering operation list apparatus for raptor-q encoding and method thereof | |
Sahaya Stalin et al. | Minimize the replication for secure cloud data storage systems using error correction codes | |
Srouji et al. | High-speed enoding/decoding technique for reliable data transmission in wireless sensor networks | |
Naidu et al. | Reduced Complexity of LDPC Codes using Hard Decision Decoder | |
Fan et al. | Efficient protocol header recovery algorithm based on iterative decoding between layers | |
PHUTATHUM | Implementing Distributed Storage Systemsby Network Coding and ConsideringComplexity of Decoding | |
Krämer et al. | Seminar on Coding Theory and Code-based Cryptography |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20150414 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150416 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5735610 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |