JP2010034887A - Encoding apparatus, encoding method and encoding program - Google Patents
Encoding apparatus, encoding method and encoding program Download PDFInfo
- Publication number
- JP2010034887A JP2010034887A JP2008195349A JP2008195349A JP2010034887A JP 2010034887 A JP2010034887 A JP 2010034887A JP 2008195349 A JP2008195349 A JP 2008195349A JP 2008195349 A JP2008195349 A JP 2008195349A JP 2010034887 A JP2010034887 A JP 2010034887A
- Authority
- JP
- Japan
- Prior art keywords
- data
- parity
- row
- generated
- encoded data
- 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.)
- Pending
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
Description
本発明は、LDPC(Low Density Parity Check)符号等の線形符号の符号化方法および符号化装置に関するものである。 The present invention relates to an encoding method and an encoding device for a linear code such as an LDPC (Low Density Parity Check) code.
近年、訂正能力に優れた符号として、LDPC符号が有力視されている(例えば、非特許文献1〜3)。
In recent years, LDPC codes have been considered promising as codes having excellent correction capability (for example, Non-Patent
IPネットワークで、映像や音声のストリーミング伝送を行なう場合、リアルタイム性を維持するためにロストしたパケットを再送しないUDP(User Datagram Protocol)で送るケースがある。そのような場合に、伝送経路に無線で伝送する区間があれば、ロストするパケットへの対策が必要になる。この対策としては、パケットをインターリーブして誤り訂正符号化することが考えられる。使用する誤り訂正符号としては、インターリーブ長を長くしやすいLDPC符号も有力な候補である。 When video or audio streaming transmission is performed on an IP network, a lost packet may be sent by UDP (User Datagram Protocol) in order to maintain real-time performance. In such a case, if there is a section for wireless transmission on the transmission path, it is necessary to take measures against lost packets. As a countermeasure against this, it is conceivable to interleave the packets and perform error correction coding. As an error correction code to be used, an LDPC code that easily increases the interleave length is also a promising candidate.
例えば、図5に示すように、p×kビットのデータをpビットずつのブロックとし、各ブロックから1ビットずつ得たkビットのデータを符号化して、(n−k)ビットのパリティをつけていくと、トータルでp×(n−k)ビットのパリティが付加されることになり、これらのパリティで(n−k)ブロックとなる。伝送する時には、1個のブロックを1個のパケットのデータとして、それぞれヘッダ情報(UDPヘッダ/IPヘッダなど)を付加し、IPパケットを構成する。インターリーブは、1個のブロックから1ビットではなく複数のビットを集めて1個の符号語に符号化しても構わないし、複数のブロックから1ビットずつ集めて符号化しても構わない。 For example, as shown in FIG. 5, p × k bits of data are made into blocks of p bits, k bits of data obtained from each block are encoded, and (n−k) bits of parity are added. As a result, a total of p × (n−k) bits of parity is added, and these parities form an (n−k) block. At the time of transmission, header data (such as a UDP header / IP header) is added to each block as data of one packet to form an IP packet. Interleaving may be performed by collecting a plurality of bits instead of one bit from one block and encoding them into one codeword, or collecting and encoding one bit from a plurality of blocks.
ここでは、使用する誤り訂正符号は、データは変形せずに、パリティを付加するだけの組織符号(Systematic code)として説明している。組織符号は、データが変換される非組織符号と比較すると、消失したパケットを訂正復元できなかった場合にも、受信できたパケットはそのまま使えるという利点がある。 Here, the error correction code to be used is described as a systematic code that only adds parity without changing data. Compared to a non-systematic code in which data is converted, the systematic code has an advantage that a received packet can be used as it is even when a lost packet cannot be corrected and restored.
伝送後に、n個のパケットが揃わなくても、失われたパケットのデータを消失として、p個の符号語の全てに誤り訂正処理を行なって、1ビットずつ復元していけば、元のブロックを復元することが可能である。IPパケットはイーサネット(登録商標)ではパケット長の最大値が1,500バイトとなっており、IPヘッダ長は標準で20バイト、UDPヘッダ長は8バイトであるので、データは最大1,472バイト=11,776ビットまで使用可能である。ストリーミング伝送を行なう場合は、1個のパケットに載せるデータはできるだけ多くし、ヘッダにより増加する伝送レートをできるだけ少なくして効率よく伝送することが要求されるので、1個のIPパケットに載せるデータは10,000ビット程度にはなると考えられる。1個のIPパケットが、符号の1個のシンボルにする場合、シンボル同士の加算は、10,000ビット程度の排他的論理和(exclusive−or)を実行することになる。 Even if n packets are not prepared after transmission, if the lost packet data is lost and error correction processing is performed on all of the p code words to restore one bit at a time, the original block Can be restored. IP packets have a maximum packet length of 1,500 bytes in Ethernet (registered trademark), the IP header length is 20 bytes as standard, and the UDP header length is 8 bytes, so the data is a maximum of 1,472 bytes. = 11,776 bits can be used. When streaming transmission is performed, it is required to increase the amount of data included in one packet as much as possible and to reduce the transmission rate increased by the header as much as possible and efficiently transmit the data. It is considered to be about 10,000 bits. When one IP packet is converted into one symbol of the code, the addition of the symbols performs an exclusive OR of about 10,000 bits.
線形符号は、k行n列の生成行列Gと、G・HT=0となる(n−k)行n列の検査行列Hにより、符号の構造を定義できる。H・GT=0と記述しても良い。符号化の処理は、データ(ベクトル)D=(d0,d1,…,d(k-1))に、生成行列Gをかけて、符号語(ベクトル)C=(c0,c1,…,c(n-1))=D・Gを得ることによりなされる。ここで、符号語についてC・HTを計算するとC・HT=D・G・HT=D・0=0となる。 A linear code can define a code structure by a generator matrix G of k rows and n columns and a check matrix H of (n−k) rows and n columns where G · H T = 0. And H · G T = 0 may be described. The encoding process is performed by multiplying the data (vector) D = (d 0 , d 1 ,..., D (k−1) ) by the generator matrix G, and the code word (vector) C = (c 0 , c 1 ,..., C (n-1) ) = D · G. Here, when C · H T is calculated for the code word, C · H T = D · G · H T = D · 0 = 0.
また、最大距離分離符号であり、記録装置などで良く用いられるReed−Solomon符号では、計算されていないパリティを消失として訂正処理を行なうことにより符号化する、という符号化手法が可能である。
しかしながら、従来の符号化の処理では、計算量が膨大になるという課題がある。 However, the conventional encoding process has a problem that the calculation amount is enormous.
つまり、実際の符号化の処理は、データDに、生成行列Gをかけて符号化しようとすると、符号語のシンボルがガロア体GF(2)の要素であったとしても、計算量はおおよそ(n−k)×(k/2−1)回のシンボルの加算が必要である。1個のシンボルの加算が10,000ビット程度の排他的論理和(exclusive−or)処理であり、膨大な計算量となるため、符号化の処理時間や処理のリソースが要求される。また通常のLDPC符号は最大距離分離符号ではなく、計算されていないパリティを消失として訂正処理を行なうことにより符号化するという手法は使えない。 That is, in the actual encoding process, when the data D is to be encoded by applying the generator matrix G, even if the codeword symbol is an element of the Galois field GF (2), the calculation amount is approximately ( It is necessary to add symbols n−k) × (k / 2-1) times. Addition of one symbol is an exclusive-or process of about 10,000 bits, and the amount of calculation is enormous. Therefore, encoding processing time and processing resources are required. In addition, a normal LDPC code is not a maximum distance separation code, and a method of encoding by performing correction processing with an uncalculated parity as an erasure cannot be used.
本発明は、上記課題を解決するために、計算量を削減することができる符号化装置を提供することを目的とする。 In order to solve the above problems, an object of the present invention is to provide an encoding device capable of reducing the amount of calculation.
上記目的を達成するために、本発明に係る符号化装置は、入力データに対して線形符号化によって符号語を生成する符号化装置であって、前記入力データが第1のデータとして入力され、前記第1のデータから少なくとも1個のパリティを前記線形符号の生成行列を用いて生成し、前記第1のデータに当該生成されたパリティが付加された第1の符号化データを出力するパリティ生成部と、第2のデータが入力され、前記線形符号の検査行列の全ての行の中から、前記行の非零の要素に対応する前記第2のデータのパリティのうち生成されていないパリティが1個である行を選択する行選択部と、前記行選択部が選択した行を用いて、前記生成されていないパリティを消失として訂正処理を行なって生成し、当該生成されたパリティを前記第2のデータに付加して第2の符号化データを出力する消失訂正部と、前記第1の符号化データが入力された場合には前記第1の符号化データを前記第2のデータとして出力し、前記第2の符号化データが入力された場合には前記第2の符号化データを前記第2のデータとして出力する第1の選択部とを備え、前記消失訂正部は、線形符号化が終了するまで、出力された前記第2の符号化データを前記第1の選択部に出力し、線形符号化が終了した場合に、出力された前記第2の符号化データを前記符号語として出力することで、前記符号語を生成する。 In order to achieve the above object, an encoding apparatus according to the present invention is an encoding apparatus that generates a code word by linear encoding for input data, and the input data is input as first data, Parity generation for generating at least one parity from the first data using the generation matrix of the linear code, and outputting first encoded data in which the generated parity is added to the first data And the second data is input, and among the parity of the second data corresponding to the non-zero element of the row out of all the rows of the parity check matrix of the linear code, A row selection unit that selects one row and a row selected by the row selection unit are used to generate the parity that has not been generated by performing a correction process as erasure, and the generated parity is And an erasure correction unit that outputs the second encoded data in addition to the data, and when the first encoded data is input, the first encoded data is output as the second data. A first selection unit that outputs the second encoded data as the second data when the second encoded data is input, and the erasure correction unit performs linear encoding The output second encoded data is output to the first selection unit until the end, and when the linear encoding is completed, the output second encoded data is output as the code word. Thus, the code word is generated.
これによれば、消失訂正部が計算量の少ない消失訂正処理でパリティを生成することができ、計算量の削減を図ることができる。 According to this, the erasure correction unit can generate parity by erasure correction processing with a small calculation amount, and the calculation amount can be reduced.
また、さらに、前記第2のデータが入力された場合には前記第2のデータを前記第1のデータとして前記パリティ生成部に出力する第2の選択部と、前記行選択部が選択することができる前記検査行列の行が存在するか否かを判断する検査行列判断部と、前記行選択部が選択する行が存在しないと判断された場合に、前記第1の選択部が前記第2の選択部に前記第2のデータを出力するように切り替える切替部とを備え、前記パリティ生成部は、前記第2の選択部に前記第2のデータが入力された場合、前記第2の選択部から入力される前記第1のデータから少なくとも1個のパリティを生成し、前記第1のデータに当該生成されたパリティが付加された第1の符号化データを出力する。 Further, when the second data is input, the second selection unit that outputs the second data as the first data to the parity generation unit, and the row selection unit select the second data. When it is determined that there is no row to be selected by the row selection unit and a row that the row selection unit selects, the first selection unit determines whether or not there is a row of the parity check matrix. A switching unit that switches the second selection unit to output the second data, and the parity generation unit receives the second selection when the second data is input to the second selection unit. At least one parity is generated from the first data input from the unit, and first encoded data in which the generated parity is added to the first data is output.
これによれば、消失訂正部が消失訂正処理を行うことができない場合に、パリティ生成部がパリティを生成する。これによって、消失訂正部が消失訂正処理を行うことができるようになり、計算量の削減を図ることができる。 According to this, when the erasure correction unit cannot perform the erasure correction process, the parity generation unit generates a parity. As a result, the erasure correction unit can perform erasure correction processing, and the amount of calculation can be reduced.
また、前記パリティ生成部が生成するパリティは、前記行選択部が少なくとも1以上の前記検査行列の行を選択するように定められてもよい。 Further, the parity generated by the parity generation unit may be determined so that the row selection unit selects at least one row of the parity check matrix.
これによれば、行選択部が行の選択を行うことができるように、予めパリティ生成部が生成するパリティが定められる。これによって、消失訂正部が消失訂正処理を行うことができるようになり、計算量の削減を図ることができる。 According to this, the parity generated by the parity generation unit is determined in advance so that the row selection unit can select a row. As a result, the erasure correction unit can perform erasure correction processing, and the amount of calculation can be reduced.
また、本発明は、このような符号化装置として実現できるだけでなく、その装置を構成する処理部をステップとする方法として実現したりすることができる。さらに、本発明は、それらステップをコンピュータに実行させるプログラムとして実現したり、そのプログラムを記録したコンピュータ読み取り可能なCD−ROMなどの記録媒体として実現したり、そのプログラムを示す情報、データ又は信号として実現したりすることもできる。そして、それらプログラム、情報、データ及び信号は、インターネット等の通信ネットワークを介して配信してもよい。 In addition, the present invention can be realized not only as such an encoding apparatus, but also as a method using a processing unit constituting the apparatus as a step. Furthermore, the present invention can be realized as a program for causing a computer to execute these steps, or can be realized as a recording medium such as a computer-readable CD-ROM on which the program is recorded, or as information, data, or a signal indicating the program. It can also be realized. These programs, information, data, and signals may be distributed via a communication network such as the Internet.
本発明によれば、計算量の少ない消失訂正処理でパリティを生成することができ、符号化処理全体の計算量を大幅に削減することが可能である。 According to the present invention, parity can be generated by erasure correction processing with a small calculation amount, and the calculation amount of the entire encoding process can be greatly reduced.
以下に、本発明の実施の形態について、図面を参照しながら説明する。 Embodiments of the present invention will be described below with reference to the drawings.
(実施の形態1)
図1は、本発明の実施の形態1における符号化装置10の機能的な構成の一例を示すブロック図である。
(Embodiment 1)
FIG. 1 is a block diagram showing an example of a functional configuration of an
図1に示すように、実施の形態1の符号化装置10は、パリティ生成部11、検査行列判断部12、行選択部13、消失訂正部14、第1の選択部15、第2の選択部16、及び切替部17を備えている。符号化装置10は、CPU(Central Processing Unit)等を備え、必要なデータをメモリに入力してプログラムを実行し、データを出力するコンピュータである。
As shown in FIG. 1, the
パリティ生成部11は、第1のデータが入力され、第1のデータから少なくとも1個のパリティを線形符号の生成行列を用いて生成し、第1のデータに当該生成されたパリティが付加された第1の符号化データを出力する。また、パリティ生成部11は、第2の選択部16に第2のデータが入力された場合、第2の選択部16から入力される第1のデータから少なくとも1個のパリティを生成し、第1のデータに当該生成されたパリティが付加された第1の符号化データを出力する。
The
行選択部13は、第2のデータが入力され、線形符号の検査行列の全ての行の中から、行の非零の要素に対応する第2のデータのパリティのうち生成されていないパリティが1個である行を選択する。
The
検査行列判断部12は、行選択部13が選択することができる検査行列の行が存在するか否かを判断する。
The parity check
消失訂正部14は、行選択部13が選択した行を用いて、当該生成されていないパリティを1個の消失として訂正処理を行なって生成し、生成されたパリティを第2のデータに付加して第2の符号化データを出力する。具体的には、消失訂正部14は、第2のデータと当該パリティからなる行と、行選択部13が選択した行の転置行列とを乗じた値が零になることから、生成されていないパリティを算出し、生成する。
The
第1の選択部15は、第1の符号化データが入力された場合には第1の符号化データを第2のデータとして出力し、第2の符号化データが入力された場合には第2の符号化データを第2のデータとして出力する。
The
第2の選択部16は、符号化装置10にデータが入力された場合には当該データを第1のデータとしてパリティ生成部11に出力し、第2のデータが入力された場合には第2のデータを第1のデータとしてパリティ生成部11に出力する。
The
切替部17は、検査行列判断部12が、行選択部13が選択する行が存在しないと判断した場合に、第1の選択部15が第2の選択部16に第2のデータを出力するように切り替える。
When the check
ここで、第1のデータ、第2のデータ、第1の符号化データ、及び第2の符号化データなどの各データは、各処理部で出力された後にメモリに書き込まれ、各処理部は、必要なデータを当該メモリから読み出して、各処理を行う。 Here, each data such as the first data, the second data, the first encoded data, and the second encoded data is output from each processing unit and then written to the memory. The necessary data is read from the memory and each process is performed.
図2は、符号化装置10が実行する符号化の処理を示すフローチャートである。
FIG. 2 is a flowchart showing the encoding process executed by the
まず、符号化装置10に、符号化するためのデータが入力される(S102)。 First, data for encoding is input to the encoding device 10 (S102).
そして、第2の選択部16は、符号化装置10に入力されたデータを第1のデータとして選択し、パリティ生成部11に出力する(S104)。
Then, the
パリティ生成部11は、入力された第1のデータから少なくとも1個のパリティを線形符号の生成行列を用いて生成し、第1のデータに当該生成されたパリティが付加された第1の符号化データを出力する(S106)。
The
次に、第1の選択部15は、パリティ生成部11が出力した第1の符号化データを第2のデータとして選択し、検査行列判断部12に出力する(S108)。
Next, the
検査行列判断部12は、行選択部13が選択することができる検査行列の行が存在するか否かを判断する(S110)。
The parity check
検査行列判断部12は、検査行列の行が存在しないと判断した場合(S110でNO)、切替部17は、第1の選択部15が第2の選択部16に第2のデータを出力するように切り替える。これにより、第2の選択部16は、第2のデータを第1のデータとして選択し、パリティ生成部11に出力する(S104)。
When the check
そして、パリティ生成部11は、第2の選択部16から入力される第1のデータから少なくとも1個のパリティを生成し、第1のデータに当該生成されたパリティが付加された第1の符号化データを出力する(S106)。
The
そして、第1の選択部15は、第1の符号化データを第2のデータとして検査行列判断部12に出力し(S108)、検査行列判断部12は、検査行列の行が存在するか否かを判断する(S110)。
Then, the
また、検査行列判断部12は、検査行列の行が存在すると判断した場合(S110でYES)、第2のデータを行選択部13に出力し、行選択部13は、検査行列の行を選択する(S112)。具体的には、行選択部13は、検査行列の全ての行の中から、行の非零の要素に対応する第2のデータのパリティのうち生成されていないパリティが1個である行を選択する。
Also, when the parity check
そして、消失訂正部14は、行選択部13が選択した行を用いて、当該生成されていないパリティを1個の消失として訂正処理を行なって生成し、生成されたパリティを第2のデータに付加して第2の符号化データを出力する(S114)。
Then, the
また、消失訂正部14は、符号化装置10に入力されたデータの線形符号化が終了したか否か、つまり符号語が生成されたか否かを判断する(S116)。
Further, the
消失訂正部14は、線形符号化が終了しておらず符号語が生成されていないと判断した場合(S116でNO)、第1の選択部15に第2の符号化データを出力し、第1の選択部15は、第2の符号化データを第2のデータとして出力する(S108)。
If the
また、消失訂正部14は、線形符号化が終了した場合に、出力された第2の符号化データを符号語として出力することで、符号語を生成する。これにより、消失訂正部14は、符号語が生成されたと判断し(S116でYES)、符号化処理は終了する。
Moreover, the erasure | correction correction |
このように、消失訂正部14は、線形符号化が終了するまで、出力された第2の符号化データを第1の選択部15に出力し、線形符号化が終了した場合に、出力された第2の符号化データを符号語として出力することで、符号語を生成する。
As described above, the
図3A及び3Bは、符号化装置10の符号化処理の一例を具体的に説明する図である。
3A and 3B are diagrams for specifically explaining an example of the encoding process of the
符号化装置10は、入力されたk個のシンボルのデータD=(d0,d1,…,d(k-1))から、r個のシンボルのパリティを生成して、n個のシンボルの符号語C=(d0,d1,d2,d3,…,d(k-2),d(k-1),p0,p1,…,p(r-2),p(r-1))を出力する。なお、パリティシンボル数rは(n−k)である。
The
符号の生成行列Gは図3Aに示すようにk行n列の行列であり、符号語のデータ部を生成する左から1列目からk列目の部分(以下、データ位置部分と呼ぶ)は単位行列であり、符号語のパリティ部を生成する左から(k+1)列目からn列目の部分(以下、パリティ位置部分と呼ぶ)にあるu行v列にある要素はg(u-1),(v-k-1)で表わしている。また、これに対応する検査行列Hは、図3Bに示すように(n−k)行n列の行列である。なお、ここではデータD、生成行列G及び検査行列Hの各要素は2進数の値であり、計算においては排他的論理和(exclusive−or)処理が行われる。 The code generation matrix G is a matrix of k rows and n columns as shown in FIG. 3A, and the first to kth columns from the left (hereinafter referred to as the data position portion) that generate the data portion of the codeword are An element in the u-row and v-column in the (k + 1) -th column to the n-th column from the left (hereinafter referred to as the parity position portion) that is a unit matrix and generates the parity part of the codeword is g (u-1 ), (vk-1) . Also, the check matrix H corresponding to this is a matrix of (n−k) rows and n columns as shown in FIG. 3B. Here, each element of the data D, the generation matrix G, and the check matrix H is a binary value, and an exclusive-or process is performed in the calculation.
パリティ生成部11は、図3Aに示すような生成行列Gのパリティ位置部分からq列を選択し、j=0,1,…,(q−1)として、パリティpj=g0,j・d0+g1,j・d1+g2,j・d2+……+g(k-2),j・d(k-2)+g(k-1),j・d(k-1)を生成し、第1の符号化データとして出力する。ここで、生成行列Gのパリティ位置部分からのq列の選択は、行選択部13が選択することができる検査行列Hの行が多く存在するように選択される。なお、このq列の選択は、任意の列が選択されることにしてもよい。
The
図3Bでは、検査行列Hにおいて、生成行列Gのデータ位置部分と生成済みのパリティの部分に対応する列を斜線部分で示している。 In FIG. 3B, in the check matrix H, columns corresponding to the data position portion of the generation matrix G and the generated parity portion are indicated by hatching.
検査行列判断部12は、まず、検査行列からデータ位置部分と、既に生成されたパリティに対応する列を除いた部分行列の行のうち、値が非零である要素の個数が1個である行が存在するかどうかを判断する。
The parity check
値が非零である要素の個数が1個である行が1行でも存在すれば、切替部17を行選択部13側に切替えて、行選択部13で、検査行列からデータ位置部分と、既に生成されたパリティに対応する列を除いた部分行列の行のうち、値が非零である要素の個数が1個である行を選択する。
If there is even one row where the number of elements whose values are non-zero is one, the switching
選択された行が(i+1)行目であり、非零の要素がhi,j(但しjは(k+q)〜(n−1)のいずれかである)とすれば、C・HT=0から(i+1)行目だけを抜き出した式
消失訂正部14は、行選択部13で選択した行を指示する情報に基づき、パリティp(j-k)を
また、検査行列判断部12で、値が非零である要素の個数が1個である行が1行も存在しない場合には、切替部17をパリティ生成部11側に切替えて、パリティ生成部11で、生成行列Gのパリティ位置部分からまだ生成していないパリティに対応する列を選択し、その列のパリティを生成し、再度第1の符号化データとして出力し、第1の選択部15を経由して、検査行列判断部12と消失訂正部14にフィードバックする。
Also, in the parity check
上記したように、消失訂正部14もしくはパリティ生成部11のどちらかで、パリティを1個生成できており、検査行列からデータ位置部分と、既に生成されたパリティに対応する列を除いた部分行列は、生成できたパリティに対応する列を除いておく。
As described above, one parity can be generated by either the
このようにして、検査行列判断部12と行選択部13でパリティ生成方法を選択し、消失訂正部14もしくはパリティ生成部11のどちらかで、パリティを計算することを繰り返して、残りのパリティを全て生成する。
In this way, the parity check method is selected by the check
通常のregularのLDPC符号では、生成行列のパリティ位置部分では、非零の要素がほぼ半分と予想されるので、生成行列の列に基づいてパリティを生成すると、1個のパリティの生成につき、(k/2)−1回のシンボル単位の加算が発生する。これに対し、検査行列の各行は(符号の次数)/(1−k/n)個の非零の要素があるので、検査行列の行に基づいてパリティを生成すると、1個のパリティの生成につき、((符号の次数)/(1−k/n))−2回のシンボル単位の加算が発生する。kの値として数百から数千程度、k/nの範囲としては1/2ないし1/10程度、符号の次数は3ないし7程度を想定すると、生成行列の列に基づいてパリティを生成した場合のシンボル単位の加算回数は数百から数千のオーダ、検査行列の行に基づいてパリティを生成した場合のシンボル単位の加算回数は数十のオーダとなり、生成行列に基づいて計算していたパリティの一部を検査行列に基づいて計算することにより、大幅な計算量の削減が可能となった。 In an ordinary regular LDPC code, non-zero elements are expected to be almost half in the parity position portion of the generator matrix. Therefore, when generating parity based on the columns of the generator matrix, k / 2) -1 addition in symbol units occurs. On the other hand, since each row of the parity check matrix has (sign order) / (1−k / n) non-zero elements, when parity is generated based on the row of the parity check matrix, one parity is generated. Therefore, ((order of code) / (1-k / n))-2 additions in symbol units occur. Assuming that the value of k is several hundred to several thousand, the range of k / n is about 1/2 to 1/10, and the order of the code is about 3 to 7, parity is generated based on the columns of the generator matrix. In this case, the number of additions per symbol is on the order of hundreds to thousands, and the number of additions per symbol when parities are generated based on the rows of the check matrix is on the order of several tens, which is calculated based on the generation matrix. By calculating a part of the parity based on the parity check matrix, the amount of calculation can be greatly reduced.
また、検査行列の各行において、非零の要素に対応する受信語の要素のうち、値が不明の要素が1個である場合に他の要素から計算するというのは、通常は消失誤りを訂正する時の手法である。そして、任意の位置に生起する消失誤りを訂正する場合、符号によって大きく異なるが、おおよそパリティシンボル数の5〜9割程度の消失誤りを訂正することが可能である。例えばパリティシンボル数の9割の消失誤りを訂正できる符号であれば、訂正できない1割に相当するシンボル数のパリティを、符号化開始時にパリティ生成部11で生成しておけば、残りの9割のほぼ大部分(もしくは全て)のパリティは消失訂正部14で生成することが可能である。
Also, in each row of the parity check matrix, if there is only one element of unknown value among the elements of the received word corresponding to the non-zero element, calculating from the other elements usually corrects the erasure error It is a technique when doing. When correcting a erasure error occurring at an arbitrary position, it is possible to correct a erasure error of about 50 to 90% of the number of parity symbols, although it varies greatly depending on the code. For example, in the case of a code that can correct 90% of erasure errors of the number of parity symbols, if the
このように、消失訂正部14が計算量の少ない消失訂正処理でパリティを生成することができる。また、消失訂正部14が消失訂正処理を行うことができない場合に、パリティ生成部11がパリティを生成する。これによって、消失訂正部14が消失訂正処理を行うことができるようになり、計算量の削減を図ることができる。
In this way, the
なお、検査行列判断部12で、値が非零である要素の個数が1個である行が1行でも存在すれば、その情報を行選択部13に出力し、行選択部13はその情報をそのまま使う(行選択部13は実質的に存在しない)構成でも良い。
If there is even one row in which the number of elements whose values are non-zero is one in the check
(実施の形態2)
次に、本発明の実施の形態2について説明する。上記実施の形態1では、行選択部13が選択することができる検査行列Hの行が存在しなければ、パリティ生成部11がパリティを生成することとした。しかし、本実施の形態2では、行選択部13が少なくとも1以上の検査行列Hの行を選択するように構成される。
(Embodiment 2)
Next, a second embodiment of the present invention will be described. In
図4は、本発明の実施の形態2における符号化装置の機能的な構成の一例を示すブロック図である。
FIG. 4 is a block diagram showing an example of a functional configuration of the encoding apparatus according to
図4に示すように、実施の形態2の符号化装置10は、パリティ生成部21、検査行列に基づいたパリティ生成部22、行選択部23、消失訂正部24、及び第1の選択部25を備えている。実施の形態2の符号化装置10は、実施の形態1の符号化装置10と同様に、入力されたk個のシンボルのデータDから、r=(n−k)個のシンボルのパリティを生成して、n個のシンボルの符号語を出力する。生成行列及び検査行列も、実施の形態1と同様に、図3A及び3Bに示す通りである。
As shown in FIG. 4, the
パリティ生成部21は、図3Aに示すような生成行列Gのパリティ位置部分からq列を選択し、j=0,1,…,(q−1)として、パリティpj=g0,j・d0+g1,j・d1+g2,j・d2+……+g(k-2),j・d(k-2)+g(k-1),j・d(k-1)を生成し、第1の符号化データとして出力する。図3Bでは、検査行列Hにおいて、生成行列Gのデータ位置部分と生成済みのパリティの部分に対応する列を斜線部分で示している。
The
検査行列に基づいたパリティ生成部22では、残りの未生成のパリティを1シンボルずつ生成していく。まず、行選択部23で、検査行列からデータ位置部分と、既に生成されたパリティに対応する列を除いた(n−k−q)列の部分行列H(n-k-q)の行のうち、値が非零である要素の個数が1個である行を選択する。
The parity generation unit 22 based on the parity check matrix generates the remaining ungenerated parity one symbol at a time. First, in the
選択された行が(i+1)行目であり、非零の要素がhi,j(但しjは(k+q)〜(n−1)のいずれかである)とすれば、C・HT=0から(i+1)行目だけを抜き出した式
消失訂正部24は、行選択部23で選択した行を指示する情報に基づき、パリティp(j-k)を
上記したように、パリティを1個生成できたので、第1の選択部25を経由して第2の符号化データとして、行選択部23と消失訂正部24にフィードバックする。また検査行列からデータ位置部分と、既に生成されたパリティに対応する列を除いた部分行列は、さらに生成できたパリティに対応する列を除いて、(n−k−q−1)列の部分行列H(n-k-q-1)とする。
As described above, since one parity has been generated, it is fed back to the
このようにして、行選択部23で、部分行列から値が非零である要素の個数が1個である行を選択し、消失訂正部24で、検査行列の当該行の値を元に非零の要素に対応するパリティを計算することを繰り返して、パリティ生成部21で生成しなかったパリティを全て生成する。
In this way, the
ここで、パリティ生成部21が生成するパリティは、行選択部23が少なくとも1以上の検査行列Hの行を選択するように定められる。つまり、パリティ生成部21で生成するq個のパリティについては、残りのパリティに対応する検査行列の列から構成される部分行列Hx(但し、x=(n−k−q),(n−k−q−1),…,2,1)のそれぞれにおいて、値が非零である要素の個数が1個である行が少なくとも1行は存在するように、予め選択されているものとする。
Here, the parity generated by the
上記の構成により、実施の形態1と同様に、一部のパリティシンボルの作成アルゴリズムを消失訂正処理に置き換えることが可能にしており、パリティシンボル1個の生成につき、シンボル単位の加算回数を、おおよそ(データシンボル数/2)−1回から((符号の次数)/(1−符号化率))−2回に削減することができ、符号化処理全体の計算量を大幅に削減することが可能になった。 With the above configuration, as in the first embodiment, it is possible to replace a part of the parity symbol creation algorithms with erasure correction processing, and for each parity symbol generation, the number of additions per symbol is approximately The number of data symbols can be reduced from (2) -1 times to ((order of code) / (1-coding rate))-2 times, and the calculation amount of the entire encoding process can be greatly reduced. It became possible.
このように、行選択部23が行の選択を行うことができるように、予めパリティ生成部21が生成するパリティが定められる。これによって、消失訂正部24が消失訂正処理を行うことができるようになり、計算量の削減を図ることができる。
In this manner, the parity generated by the
以下の表は、従来の符号化装置と本発明の符号化装置のそれぞれにおいて、実際にどの程度の回数の加算を行なって符号化を行なっているのかを示す例である。パリティ生成部21で生成するパリティ数qについては、従来比が最小となる値を選んでいる。この結果からも、本発明により、加算回数を削減し、符号化の処理速度を高速化することが可能であることは明確となっている。
The following table shows an example of how many times the addition is actually performed in each of the conventional coding apparatus and the coding apparatus of the present invention. For the number of parity q generated by the
符号は、それぞれ符号化率(データ長/符号長)は3/4として、検査行列を乱数で生成したものである。従って、同じパラメータ(符号長、符号化率、次数)であっても、異なる符号であれば、qの値や加算回数は異なるが、傾向としてはほぼ同じようになると考えられる。 Each code has a coding rate (data length / code length) of 3/4 and a parity check matrix generated with random numbers. Therefore, even if the parameters are the same (code length, coding rate, order), the values of q and the number of additions are different if the codes are different, but the tendency is almost the same.
なお、パリティ生成部21は、部分行列において値が非零である要素の個数が1個である行を選択するとしているが、パリティ生成部21で生成するパリティを予め選択した時点で、どのような順序で行を選択していくかも判明しているので、非零の要素の個数をチェックせずに既に判明している順序で行を指定していくようにしても良い。
Note that the
また、図3Aでは、q列は検査行列のパリティ位置部分の左側にまとまっているが、実際にはパリティ生成部21で生成するパリティを予め選択した時点では、パリティ位置部分のr列のあいだで散らばっており、検査行列と生成行列としては、そのまま使っても左側にまとめるように列を入れ替えて使っても良い。
In FIG. 3A, the q columns are grouped on the left side of the parity position portion of the parity check matrix, but in reality, when the parity generated by the
また、本発明において演算を加算として説明しているが、これは符号の要素に応じた演算を意味している。例えば、符号がガロア体GF(q)の要素で構成されていればaとbの加算は(a+b)mod qのことであり、ガロア体GF(2)の要素で構成されていれば、加算は排他的論理和(exclusive−or)のことである。また、tビットのガロア体GF(2)の要素からなるブロックを符号の1シンボルとした場合は、t個の排他的論理和(exclusive−or)を並列して実行する演算を意味している。 Further, in the present invention, calculation is described as addition, but this means calculation according to the element of the sign. For example, if the sign is composed of elements of Galois field GF (q), addition of a and b is (a + b) mod q, and if it is composed of elements of Galois field GF (2) Is an exclusive-or. In addition, when a block composed of elements of t-bit Galois field GF (2) is used as one symbol, it means an operation that executes t exclusive-or in parallel. .
また、生成行列Gや検査行列Hは、符号ごとに固有の行列であるので、使われている符号に合わせた生成行列Gや検査行列Hの情報を選択するもしくは入力する機能を備えれば、複数の符号を扱う符号化装置10を構成できることは明らかである。
In addition, since the generator matrix G and the check matrix H are unique to each code, if the function of selecting or inputting the information of the generator matrix G and the check matrix H according to the used code is provided, It is obvious that the
以上、本発明に係る符号化装置について、上記実施の形態を用いて説明したが、本発明は、これに限定されるものではない。 As described above, the encoding apparatus according to the present invention has been described using the above embodiment, but the present invention is not limited to this.
つまり、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。 That is, the embodiment disclosed this time should be considered as illustrative in all points and not restrictive. The scope of the present invention is defined by the terms of the claims, rather than the description above, and is intended to include any modifications within the scope and meaning equivalent to the terms of the claims.
例えば、本実施の形態では、データD、生成行列G及び検査行列Hの各要素は2進数であることとしたが、データD、生成行列G及び検査行列Hの各要素は2進数に限定されず、3進数などであってもよい。 For example, in the present embodiment, each element of the data D, the generator matrix G, and the check matrix H is a binary number, but each element of the data D, the generator matrix G, and the check matrix H is limited to a binary number. Alternatively, it may be a ternary number.
また、本実施の形態では、パリティ生成部11などの各構成要素は、ソフトウェアにより構成されていることとしたが、専用のハードウェアにより構成されていてもよい。つまり、ブロック図(図1及び図4など)の各機能ブロックは、典型的には集積回路であるLSIとして実現されていてもよい。なお、これらは個別に1チップ化されても良いし、一部又は全てを含むように1チップ化されても良い。
Further, in the present embodiment, each component such as the
本発明に係る符号化装置、符号化方法、及び符号化プログラムは、処理速度を高速化することができ、ネットワーク伝送時のパケットロスのような消失訂正の用途に有用である。 The encoding apparatus, encoding method, and encoding program according to the present invention can increase the processing speed and are useful for erasure correction such as packet loss during network transmission.
10 符号化装置
11、21 パリティ生成部
12 検査行列判断部
13、23 行選択部
14、24 消失訂正部
15、25 第1の選択部
16 第2の選択部
17 切替部
22 検査行列に基づいたパリティ生成部
DESCRIPTION OF
Claims (5)
前記入力データが第1のデータとして入力され、前記第1のデータから少なくとも1個のパリティを前記線形符号の生成行列を用いて生成し、前記第1のデータに当該生成されたパリティが付加された第1の符号化データを出力するパリティ生成部と、
第2のデータが入力され、前記線形符号の検査行列の全ての行の中から、前記行の非零の要素に対応する前記第2のデータのパリティのうち生成されていないパリティが1個である行を選択する行選択部と、
前記行選択部が選択した行を用いて、前記生成されていないパリティを消失として訂正処理を行なって生成し、当該生成されたパリティを前記第2のデータに付加して第2の符号化データを出力する消失訂正部と、
前記第1の符号化データが入力された場合には前記第1の符号化データを前記第2のデータとして出力し、前記第2の符号化データが入力された場合には前記第2の符号化データを前記第2のデータとして出力する第1の選択部とを備え、
前記消失訂正部は、線形符号化が終了するまで、出力された前記第2の符号化データを前記第1の選択部に出力し、線形符号化が終了した場合に、出力された前記第2の符号化データを前記符号語として出力することで、前記符号語を生成する
ことを特徴とする符号化装置。 An encoding device that generates a code word by linear encoding for input data,
The input data is input as first data, at least one parity is generated from the first data using the generation matrix of the linear code, and the generated parity is added to the first data. A parity generation unit that outputs the first encoded data;
Second data is input, and one of the parity of the second data corresponding to the non-zero element of the row is not generated from all the rows of the parity check matrix of the linear code. A line selection section for selecting a line;
Using the row selected by the row selection unit, the parity that has not been generated is corrected and generated by erasure, and the generated parity is added to the second data to generate second encoded data. Erasure correction unit that outputs
When the first encoded data is input, the first encoded data is output as the second data, and when the second encoded data is input, the second code is output. And a first selection unit that outputs the digitized data as the second data,
The erasure correction unit outputs the output second encoded data to the first selection unit until linear encoding is completed, and outputs the second encoded data when linear encoding is completed. The encoding device generates the code word by outputting the encoded data as the code word.
前記第2のデータが入力された場合には前記第2のデータを前記第1のデータとして前記パリティ生成部に出力する第2の選択部と、
前記行選択部が選択することができる前記検査行列の行が存在するか否かを判断する検査行列判断部と、
前記行選択部が選択する行が存在しないと判断された場合に、前記第1の選択部が前記第2の選択部に前記第2のデータを出力するように切り替える切替部とを備え、
前記パリティ生成部は、前記第2の選択部に前記第2のデータが入力された場合、前記第2の選択部から入力される前記第1のデータから少なくとも1個のパリティを生成し、前記第1のデータに当該生成されたパリティが付加された第1の符号化データを出力する
ことを特徴とする請求項1に記載の符号化装置。 further,
A second selector that outputs the second data to the parity generator as the first data when the second data is input;
A parity check matrix determination unit that determines whether or not there is a row of the parity check matrix that can be selected by the row selection unit;
A switching unit that switches the first selection unit to output the second data to the second selection unit when it is determined that there is no row to be selected by the row selection unit;
The parity generation unit generates at least one parity from the first data input from the second selection unit when the second data is input to the second selection unit; The encoding apparatus according to claim 1, wherein the first encoded data in which the generated parity is added to the first data is output.
ことを特徴とする請求項1に記載の符号化装置。 The coding apparatus according to claim 1, wherein the parity generated by the parity generation unit is determined such that the row selection unit selects at least one row of the parity check matrix.
コンピュータが、前記入力データを第1のデータとして入力し、前記第1のデータから少なくとも1個のパリティを前記線形符号の生成行列を用いて生成し、前記第1のデータに当該生成されたパリティが付加された第1の符号化データを出力するパリティ生成ステップと、
コンピュータが、前記線形符号の検査行列の全ての行の中から、前記行の非零の要素に対応する入力された第2のデータのパリティのうち生成されていないパリティが1個である行を選択する行選択ステップと、
コンピュータが、前記行選択ステップで選択された行を用いて、前記生成されていないパリティを消失として訂正処理を行なって生成し、当該生成されたパリティを前記第2のデータに付加して第2の符号化データを出力する消失訂正ステップと、
コンピュータが、前記第1の符号化データが入力された場合には前記第1の符号化データを前記第2のデータとして出力し、前記第2の符号化データが入力された場合には前記第2の符号化データを前記第2のデータとして出力する第1の選択ステップとを含み、
前記消失訂正ステップでは、線形符号化が終了するまで、出力された前記第2の符号化データを前記第1の選択部に出力し、線形符号化が終了した場合に、出力された前記第2の符号化データを前記符号語として出力することで、前記符号語を生成する
ことを特徴とする符号化方法。 An encoding method for generating a code word by linear encoding for input data,
A computer inputs the input data as first data, generates at least one parity from the first data using a generation matrix of the linear code, and generates the generated parity for the first data. A parity generation step of outputting the first encoded data to which
The computer selects a row in which all of the parity of the input second data corresponding to the non-zero element of the row is one not generated among all the rows of the check matrix of the linear code. A row selection step to select;
The computer uses the row selected in the row selection step to generate the parity that has not been generated by performing correction processing as an erasure, and adds the generated parity to the second data to generate the second data. Erasure correction step for outputting encoded data of
The computer outputs the first encoded data as the second data when the first encoded data is input, and the first encoded data when the second encoded data is input. A first selection step of outputting two encoded data as the second data,
In the erasure correction step, the output second encoded data is output to the first selection unit until linear encoding is completed, and the second encoded data output when linear encoding is completed. The encoding method is characterized in that the code word is generated by outputting the encoded data as the code word.
前記入力データが第1のデータとして入力され、前記第1のデータから少なくとも1個のパリティを前記線形符号の生成行列を用いて生成し、前記第1のデータに当該生成されたパリティが付加された第1の符号化データを出力するパリティ生成ステップと、
第2のデータが入力され、前記線形符号の検査行列の全ての行の中から、前記行の非零の要素に対応する前記第2のデータのパリティのうち生成されていないパリティが1個である行を選択する行選択ステップと、
前記行選択ステップで選択された行を用いて、前記生成されていないパリティを消失として訂正処理を行なって生成し、当該生成されたパリティを前記第2のデータに付加して第2の符号化データを出力する消失訂正ステップと、
前記第1の符号化データが入力された場合には前記第1の符号化データを前記第2のデータとして出力し、前記第2の符号化データが入力された場合には前記第2の符号化データを前記第2のデータとして出力する第1の選択ステップとをコンピュータに実行させ、
前記消失訂正ステップでは、線形符号化が終了するまで、出力された前記第2の符号化データを前記第1の選択部に出力し、線形符号化が終了した場合に、出力された前記第2の符号化データを前記符号語として出力することで、前記符号語を生成する
ことを特徴とするプログラム。 A program for generating codewords by linear encoding for input data,
The input data is input as first data, at least one parity is generated from the first data using the generation matrix of the linear code, and the generated parity is added to the first data. A parity generation step of outputting the first encoded data;
Second data is input, and one of the parity of the second data corresponding to the non-zero element of the row is not generated from all the rows of the parity check matrix of the linear code. A row selection step for selecting a row;
Using the row selected in the row selection step, the non-generated parity is generated by performing correction processing as an erasure, and the generated parity is added to the second data to perform the second encoding. Erasure correction step for outputting data;
When the first encoded data is input, the first encoded data is output as the second data, and when the second encoded data is input, the second code is output. Causing the computer to execute a first selection step of outputting the digitized data as the second data,
In the erasure correction step, the output second encoded data is output to the first selection unit until linear encoding is completed, and the second encoded data output when linear encoding is completed. The codeword is generated by outputting the encoded data of the codeword as the codeword.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008195349A JP2010034887A (en) | 2008-07-29 | 2008-07-29 | Encoding apparatus, encoding method and encoding program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008195349A JP2010034887A (en) | 2008-07-29 | 2008-07-29 | Encoding apparatus, encoding method and encoding program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010034887A true JP2010034887A (en) | 2010-02-12 |
Family
ID=41738867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008195349A Pending JP2010034887A (en) | 2008-07-29 | 2008-07-29 | Encoding apparatus, encoding method and encoding program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010034887A (en) |
-
2008
- 2008-07-29 JP JP2008195349A patent/JP2010034887A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101421286B1 (en) | Methods and apparatus employing fec codes with permanent inactivation of symbols for encoding and decoding processes | |
JP5340286B2 (en) | Erasure correction encoding apparatus and erasure correction encoding method | |
JP4062435B2 (en) | Error correction code decoding apparatus | |
JP4389373B2 (en) | Decoder for iterative decoding of binary cyclic code | |
JP3727938B2 (en) | LDPC decoding apparatus and method | |
JP3893383B2 (en) | LDPC code parity check matrix generation method and parity check matrix generation apparatus | |
WO2014122772A1 (en) | Data structure for check matrix of error correction code, and coding-rate adjustment device and method for error correction code | |
JP4005084B2 (en) | Parity check matrix generation method and parity check matrix generation apparatus | |
WO2004107585A1 (en) | Decoding method, decoding device, program, recording/reproduction device and method, and reproduction device and method | |
JP2007166605A (en) | Parity check matrix, method for generating parity check matrix, encoding method, and error corrector | |
WO2015135298A1 (en) | Method, device, and computer storage medium supporting low bit rate encoding | |
JP4591371B2 (en) | QC code encoding method | |
JP2009515420A (en) | Apparatus and method for decoding and encoding data | |
KR20110126097A (en) | Coding and decoding using ldpc quasi-cyclic codes | |
JP5792256B2 (en) | Sparse graph creation device and sparse graph creation method | |
JP2010098735A (en) | Method of correction of binary data error and error detection | |
US20170288697A1 (en) | Ldpc shuffle decoder with initialization circuit comprising ordered set memory | |
JP4202161B2 (en) | Encoding device and decoding device | |
JP2011146899A (en) | Encoder, decoder and encoding method and decoding method | |
US11265012B1 (en) | Methods of secure communication using low-density parity check coding | |
JP2009182421A (en) | Decoding method and decoding device | |
JP5523064B2 (en) | Decoding apparatus and method | |
JP2010034887A (en) | Encoding apparatus, encoding method and encoding program | |
JP5952971B2 (en) | Communication path decoding method and communication path decoding apparatus | |
JP2010041628A (en) | Encoder, encoding method, and encoding program |