JP2010041628A - Encoder, encoding method, and encoding program - Google Patents

Encoder, encoding method, and encoding program Download PDF

Info

Publication number
JP2010041628A
JP2010041628A JP2008204846A JP2008204846A JP2010041628A JP 2010041628 A JP2010041628 A JP 2010041628A JP 2008204846 A JP2008204846 A JP 2008204846A JP 2008204846 A JP2008204846 A JP 2008204846A JP 2010041628 A JP2010041628 A JP 2010041628A
Authority
JP
Japan
Prior art keywords
data
intermediate data
parity
partial
storage unit
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
Application number
JP2008204846A
Other languages
Japanese (ja)
Inventor
Chiyoko Matsumi
知代子 松見
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Original Assignee
Panasonic Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Panasonic Corp filed Critical Panasonic Corp
Priority to JP2008204846A priority Critical patent/JP2010041628A/en
Publication of JP2010041628A publication Critical patent/JP2010041628A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide an encoder capable of reducing computational complexity. <P>SOLUTION: The encoder has: a memory 12; an intermediate data generating section 11 for dividing data into partial data having c pieces of symbols for respectively generating intermediate data for coefficients of combinations for all the elements from the partial data and a coefficient having elements, of which all of these are not equal to zero for storing in the memory 12; and a parity generation section 13 for dividing a portion, namely, a position of a parity of a generation matrix in a linear code, into partial matrices for each c rows, and reading the intermediate data generated based on the coefficient of the combination of the same elements as the value of the column of the partial matrix from the memory 12 to generate a parity. The intermediate data generation section 11 generates intermediate data for all the partial data for storing in the memory 12, and the parity generation section 13 reads the intermediate data from the memory 12 with respect to all the partial matrices, thus accumulating all the read intermediate data for each column and generating a parity corresponding to each column. <P>COPYRIGHT: (C)2010,JPO&INPIT

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 Documents 1 to 3).

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.

例えば、図6に示すように、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. 6, p × k-bit data is made into a block of p bits, k-bit data obtained from each block is encoded, and (n−k) -bit parity is 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 data is described as a systematic code (systematic code) that only adds parity without deformation. 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ビットずつ集めてインターリーブするものとして、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. Assuming that one bit is collected and interleaved from one IP packet and the IP packet is regarded as one symbol of the code, the addition of symbols is an exclusive OR of about 10,000 bits. Will be executed.

以下に、LDPC符号の符号化について、説明する。   Hereinafter, encoding of the LDPC code will be described.

LDPC符号は、線形符号(Linear Code)の1種であるが、線形符号は、k行n列の生成行列Gと、G・HT=0となる(n−k)行n列の検査行列Hにより、符号の構造を定義できる。H・GT=0と記述しても良い。 The LDPC code is a kind of linear code, but the linear code is a generator matrix G of k rows and n columns and a check matrix of (n−k) rows and n columns where G · H T = 0. With H, the structure of the code can be defined. And H · G T = 0 may be described.

また、LDPC符号の「LDPC」は、Low density parity checkであり、検査行列Hの要素のうち非零の要素が非常に少ない(低密度である)という意味である。つまり、非零の要素が低密度であるとは、複数の要素のうち、零の要素の数の割合が多いことをいう。非零の要素の割合が、2〜3%程度の符号もあるが、符号長が大きい符号では1%を下回るのが普通である。しかし、生成行列Gは、非零の要素が低密度ではない。符号長がnで、情報シンボル数がkの組織符号では、k行n列の生成行列Gの左からk列は単位行列であるが、残りの(n−k)列については、符号にもよるが大体1/2程度の要素が非零である。即ちk×n個の要素のうち、k+(k×(n−k)/2)個の要素が非零である。
R. G. Gallager, “Low density parity check codes”, in Research Monograph series. Cambridge, MIT Press (1963) D. J. MacKay, “Good error-correcting codes based on very sparse matrices”, IEEE Trans. Inform. Theory, vol.45, pp.399-431 (1999) R. M. Tanner, “A recursive approach to low complexity codes”, IEEE Trans. Inform. Theory, vol.27, pp.533-547 (1981)
Also, “LDPC” of the LDPC code is a Low density parity check, which means that there are very few non-zero elements (low density) among the elements of the check matrix H. That is, non-zero elements having a low density means that the ratio of the number of zero elements among a plurality of elements is large. Some codes have a non-zero element ratio of about 2 to 3%, but a code with a large code length is usually less than 1%. However, in the generation matrix G, non-zero elements are not low density. In a systematic code with a code length of n and the number of information symbols of k, k columns from the left of the generator matrix G of k rows and n columns are unit matrices, but the remaining (n−k) columns are also included in the code. However, about half of the elements are non-zero. That is, out of k × n elements, k + (k × (n−k) / 2) elements are non-zero.
RG Gallager, “Low density parity check codes”, in Research Monograph series. Cambridge, MIT Press (1963) DJ MacKay, “Good error-correcting codes based on very sparse matrices”, IEEE Trans. Inform. Theory, vol.45, pp.399-431 (1999) RM Tanner, “A recursive approach to low complexity codes”, IEEE Trans. Inform. Theory, vol.27, pp.533-547 (1981)

しかしながら、従来の符号化の処理では、計算量が膨大になるという課題がある。   However, the conventional encoding process has a problem that the calculation amount is enormous.

つまり、実際の符号化の処理は、データ(ベクトル)D=(d0,d1,…,d(k-1))に、生成行列Gをかけて、符号語(ベクトル)C=(c0,c1,…,c(n-1))=D・Gを得ることによりなされる。この構成では、要素がガロア体GF(2)の要素であったとしても、計算量はおおよそ(n−k)×(k/2−1)回のシンボルの加算が必要である。1個のシンボルの加算が10,000ビット程度の排他的論理和(exclusive−or)処理であり、膨大な計算量となるため、符号化の処理時間や処理のリソースが要求される。 That is, the actual 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. In this configuration, even if the element is an element of the Galois field GF (2), the amount of calculation needs to be approximately (n−k) × (k / 2-1) times of symbol addition. 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.

そこで、本発明は、上記課題を解決するために、計算量を削減することができる符号化装置を提供することを目的とする。   Accordingly, an object of the present invention is to provide an encoding device that can reduce the amount of calculation in order to solve the above-described problems.

上記目的を達成するために、本発明に係る符号化装置は、K個のシンボルのデータを、パリティを含む符号長がNでありデータ数がKである線形符号に符号化する符号化装置であって、データを記憶する記憶部と、前記K個のシンボルのデータをc個のシンボルずつに、k個(kは、K/cを切り上げた整数)の部分データに区切り、(i+1)番目(iは、0から(k−1)までの整数)の前記部分データ(d0,d1,…,d(c-1))と要素が全て零となる全零以外の係数(a0,a1,…,a(c-1))とから、全ての要素の組み合わせの前記係数について中間データ(a0・d0+a1・d1+…+a(c-1)・d(c-1))を生成し、前記中間データを前記記憶部に記憶する中間データ生成部と、前記線形符号の生成行列のパリティの位置にあたる部分をc行ごとの部分行列に分割し、(i+1)番目の前記部分行列の(j+1)番目(jは、0から(N−K−1)までの整数)の列の値と同一の要素の組み合わせの前記係数に基づいて生成される前記中間データを前記記憶部から読み出して、全ての列についての前記中間データからそれぞれの列に対応するパリティを生成するパリティ生成部とを備え、前記中間データ生成部は、全ての前記部分データに対して前記中間データを生成して前記記憶部に記憶し、前記パリティ生成部は、全ての前記部分行列に対して前記中間データを前記記憶部から読み出して、前記列ごとに全ての前記読み出された中間データを累積することでそれぞれの列に対応するパリティを生成する。 In order to achieve the above object, an encoding apparatus according to the present invention is an encoding apparatus that encodes data of K symbols into a linear code with a code length including a parity of N and a number of data of K. A storage unit for storing data, and the data of the K symbols is divided into k pieces of partial data for each of c symbols (k is an integer obtained by rounding up K / c), and (i + 1) th (I is an integer from 0 to (k−1)) and the partial data (d 0 , d 1 ,..., D (c−1) ) and a coefficient other than all zero (a 0 , A 1 ,..., A (c-1) ), the intermediate data (a 0 · d 0 + a 1 · d 1 +... + A (c-1) · d (c -1) ), and the intermediate data generation unit that stores the intermediate data in the storage unit, and the parity position of the generation matrix of the linear code Is divided into sub-matrices for every c rows, and is equal to the value of the (j + 1) -th sub-matrix (j is an integer from 0 to (N−K−1)) in the (i + 1) -th sub-matrix. A parity generation unit that reads out the intermediate data generated based on the coefficients of the combination of elements from the storage unit, and generates parity corresponding to each column from the intermediate data for all columns, and The intermediate data generation unit generates the intermediate data for all the partial data and stores the intermediate data in the storage unit, and the parity generation unit stores the intermediate data for all the partial matrices from the storage unit. By reading and accumulating all the read intermediate data for each column, a parity corresponding to each column is generated.

これによれば、データ及び生成行列を複数のグループに区切り、そのグループ単位で中間データを生成し、生成された中間データからパリティを生成する。これにより、同じ計算で生成される中間データが複数ある場合は、1回の計算のみで当該中間データを生成することができるので、重複して計算が行われるのを避けることができ、計算量の削減を図ることができる。   According to this, the data and the generation matrix are divided into a plurality of groups, intermediate data is generated in units of the groups, and parity is generated from the generated intermediate data. As a result, if there are multiple pieces of intermediate data generated by the same calculation, the intermediate data can be generated by only one calculation, so that it is possible to avoid redundant calculations and to reduce the amount of calculation Can be reduced.

また、前記中間データ生成部は、中間データ(a0・d0+a1・d1+…+a(y-1)・d(y-1))(y=1,2,…,(c−1))が生成されており、ayが零でない場合には、当該中間データにay・dyを加算することで、中間データ(a0・d0+a1・d1+…+a(y-1)・d(y-1)+ay・dy)を生成することにしてもよい。 Further, the intermediate data generation unit generates intermediate data (a 0 · d 0 + a 1 · d 1 +... + A (y−1) · d (y−1) ) (y = 1, 2,..., (C− 1)) is generated and a y is not zero, the intermediate data (a 0 · d 0 + a 1 · d 1 +... + A ( by adding a y · dy to the intermediate data ) y-1) · d (y-1) + a y · d y ) may be generated.

これによれば、既に計算され生成された中間データを利用して、新たに中間データを計算し生成することができるので、計算量の削減を図ることができる。   According to this, since intermediate data can be newly calculated and generated using the already calculated and generated intermediate data, the amount of calculation can be reduced.

また、前記中間データ生成部は、(i+1)番目の部分データによる中間データをi番目の部分データによる中間データに上書きすることで、(i+1)番目の部分データによる中間データを前記記憶部に記憶することにしてもよい。   The intermediate data generation unit stores the intermediate data based on the (i + 1) th partial data in the storage unit by overwriting the intermediate data based on the (i + 1) th partial data on the intermediate data based on the i-th partial data. You may decide to do it.

これによれば、記憶部の中間データ領域の必要量は、データ全体分の中間データの容量ではなく、1個の部分データによる中間データの容量で済ませることが可能となるため、中間データ領域を大幅に削減することが可能となる。   According to this, since the required amount of the intermediate data area of the storage unit can be completed by the capacity of the intermediate data by one partial data rather than the capacity of the intermediate data for the entire data, the intermediate data area It becomes possible to reduce significantly.

また、本発明は、このような符号化装置として実現できるだけでなく、その装置を構成する処理部をステップとする方法として実現したりすることができる。さらに、本発明は、それらステップをコンピュータに実行させるプログラムとして実現したり、そのプログラムを記録したコンピュータ読み取り可能な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.

以上のように、本発明によれば、データ及び生成行列をグループ単位にまとめて中間データ生成し、当該中間データからパリティを生成することにより、計算量の削減を図ることができる。   As described above, according to the present invention, it is possible to reduce the calculation amount by generating intermediate data by grouping data and a generation matrix into a group unit and generating parity from the intermediate data.

以下に、本発明の実施の形態について、図面を参照しながら説明する。   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 encoding device 10 according to Embodiment 1 of the present invention.

図1に示すように、実施の形態1の符号化装置10は、中間データ生成部11、メモリ12、及びパリティ生成部13を備えている。符号化装置10は、CPU(Central Processing Unit)等を備え、入力されたkシンボルのデータを符号化して、nシンボルの符号語を出力するコンピュータである。   As illustrated in FIG. 1, the encoding device 10 according to the first embodiment includes an intermediate data generation unit 11, a memory 12, and a parity generation unit 13. The encoding device 10 is a computer that includes a CPU (Central Processing Unit) and the like, encodes input k-symbol data, and outputs an n-symbol codeword.

ここで、メモリ12は、入力されるデータ、パリティ、及び後述する中間データテーブル12aなどを記憶している不揮発性メモリ等である。   Here, the memory 12 is a nonvolatile memory or the like that stores input data, parity, an intermediate data table 12a described later, and the like.

中間データ生成部11は、入力されたデータを複数の部分データに区切り、全ての部分データに対して中間データを生成し、中間データをメモリ12に記憶する。   The intermediate data generation unit 11 divides input data into a plurality of partial data, generates intermediate data for all partial data, and stores the intermediate data in the memory 12.

具体的には、中間データ生成部11は、k個のシンボルのデータをc個のシンボルずつに、x個(xは、k/cを切り上げた整数)の部分データに区切り、(i+1)番目(iは、0から(x−1)までの整数)の部分データ(d0,d1,…,d(c-1))と要素が全て零となる全零以外の係数(m0,m1,…,m(c-1))とから、全ての要素の組み合わせの係数について中間データ(m0・d0+m1・d1+…+m(c-1)・d(c-1))を生成する。また、中間データ生成部11は、生成された中間データをメモリ12に記憶されている中間データテーブル12aに書き込み、中間データテーブル12aを更新していく。 Specifically, the intermediate data generation unit 11 divides the data of k symbols into c partial data into x partial data (x is an integer obtained by rounding up k / c), and (i + 1) th (I is an integer from 0 to (x−1)) partial data (d 0 , d 1 ,..., D (c−1) ) and coefficients other than all zero (m 0 , m 1 ,..., m (c−1) ) and intermediate data (m 0 · d 0 + m 1 · d 1 +... + m (c−1) · d (c−1) ) ) Is generated. Further, the intermediate data generation unit 11 writes the generated intermediate data into the intermediate data table 12a stored in the memory 12, and updates the intermediate data table 12a.

図2A及び図2Bは、中間データテーブル12aの一例を示す図である。   2A and 2B are diagrams illustrating an example of the intermediate data table 12a.

図2Aに示すように、中間データテーブル12aは、部分データ、係数、及び中間データなどからなるテーブルであり、係数により、対応する中間データを参照できる。   As shown in FIG. 2A, the intermediate data table 12a is a table including partial data, coefficients, intermediate data, and the like, and corresponding intermediate data can be referred to by the coefficients.

部分データは、入力されたk個のシンボルのデータがc個のシンボルずつに区切られたデータの集まりである。例えば、入力されたデータD=(d0,d1,…,d(k-1))に対し、部分データD0=(d0,d1,…,d(c-1))である。なお、ここでは、データDの各要素は、2進数の値であり、0か1である。 The partial data is a collection of data in which input k symbol data is divided into c symbols. For example, for input data D = (d 0 , d 1 ,..., D (k−1) ), partial data D 0 = (d 0 , d 1 ,..., D (c−1) ). . Here, each element of the data D is a binary value and is 0 or 1.

係数は、c個の要素で構成された、全零以外の全ての要素の組み合わせの係数(m0,m1,…,m(c-1))である。なお、ここでは、係数の各要素は、2進数の値であり、0か1である。例えば、cが4の場合、係数は(1,0,0,0)、(0,1,0,0)、…、(1,1,1,1)の15通りである。但し、1の要素が1個の組み合わせである(1,0、0、0)、(0,1,0,0)、(0,0,1,0)、(0,0,0,1)については、中間データを計算する必要がないので、中間データテーブル12aから省略することもできる。 The coefficient is a coefficient (m 0 , m 1 ,..., M (c−1) ) of a combination of all elements other than all zeros, which is composed of c elements. Here, each element of the coefficient is a binary value and is 0 or 1. For example, when c is 4, there are 15 coefficients (1, 0, 0, 0), (0, 1, 0, 0), ..., (1, 1, 1, 1). However, 1 element is a combination of (1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0), (0, 0, 0, 1 ) Can be omitted from the intermediate data table 12a because it is not necessary to calculate intermediate data.

中間データは、部分データと係数に対応して算出されるデータである。具体的には、データD0=(d0,d1,…,d(c-1))及び係数(m0,m1,…,m(c-1))に対して、中間データは、m0・d0+m1・d1+…+m(c-1)・d(c-1)で算出される。 The intermediate data is data calculated corresponding to the partial data and the coefficient. Specifically, for data D 0 = (d 0 , d 1 ,..., D (c-1) ) and coefficients (m 0 , m 1 ,..., M (c-1) ), the intermediate data is , M 0 · d 0 + m 1 · d 1 +... + M (c-1) · d (c-1) .

図1に戻り、パリティ生成部13は、線形符号の生成行列のパリティの位置にあたる部分を複数の部分行列に分割し、全ての部分行列に対して中間データをメモリ12から読み出して、部分行列の列ごとに全ての読み出された中間データを累積することでそれぞれの列に対応するパリティを計算し、生成する。   Returning to FIG. 1, the parity generation unit 13 divides a portion corresponding to the parity position of the generation matrix of the linear code into a plurality of partial matrices, reads intermediate data for all the partial matrices from the memory 12, and By accumulating all read intermediate data for each column, the parity corresponding to each column is calculated and generated.

具体的には、パリティ生成部13は、線形符号の生成行列のパリティの位置にあたる部分をc行ごとの部分行列に分割し、(i+1)番目の部分行列の(j+1)番目(jは、0から(n−k−1)までの整数)の列の値と同一の要素の組み合わせの係数に基づいて生成された中間データをメモリ12から読み出して、全ての列についての中間データからそれぞれの列に対応するパリティを計算し、生成する。   Specifically, the parity generation unit 13 divides the portion corresponding to the parity position of the generation matrix of the linear code into sub-matrices for every c rows, and (j + 1) -th (j is 0) of the (i + 1) -th sub-matrix. To (n−k−1)), the intermediate data generated based on the coefficient of the combination of the same elements as the column value is read from the memory 12, and the intermediate data for all the columns is read from each column. The parity corresponding to is calculated and generated.

なお、部分データD1による中間データの生成を、パリティの計算において、部分データD0による中間データを用いた計算が終了した後に行なうように処理すれば、部分データD1による中間データを、部分データD0による中間データに上書きして中間データテーブルに記憶させることができる。部分データD(i+1)による中間データと部分データDiによる中間データに関しても同様であるので、中間データ領域の必要量は、データ全体分の中間データの容量ではなく、1個の部分データによる中間データの容量で済ませることが可能となる。 If the generation of the intermediate data based on the partial data D 1 is performed after the calculation using the intermediate data based on the partial data D 0 is completed in the parity calculation, the intermediate data based on the partial data D 1 is converted into the partial data D 1. The intermediate data by data D 0 can be overwritten and stored in the intermediate data table. The same applies to the intermediate data based on the partial data D (i + 1) and the intermediate data based on the partial data D i , so the required amount of the intermediate data area is not the capacity of the intermediate data for the entire data but one partial data. It becomes possible to do with the capacity of the intermediate data by.

つまり、中間データ生成部11は、(i+1)番目の部分データD(i+1)による中間データをi番目の部分データDiによる中間データに上書きすることで、(i+1)番目の部分データD(i+1)による中間データをメモリ12に記憶する。そして、この場合には、図2Bに示すように、中間データテーブル12aは、係数及び中間データなどからなるテーブルであればよく、係数により、対応する中間データを参照できる。 That is, the intermediate data generating unit 11, (i + 1) -th partial data D (i + 1) by by overwriting the intermediate data to the intermediate data by the i-th partial data D i, (i + 1) -th partial data D The intermediate data (i + 1) is stored in the memory 12. In this case, as shown in FIG. 2B, the intermediate data table 12a may be a table including coefficients and intermediate data, and the corresponding intermediate data can be referred to by the coefficients.

図3は、符号化装置10が実行する符号化の処理を示すフローチャートである。   FIG. 3 is a flowchart showing the encoding process executed by the encoding apparatus 10.

以下の処理が、iが0から(x−1)まで繰り返される(S101、S111)。   The following processing is repeated from i to 0 to (x−1) (S101, S111).

まず、中間データ生成部11は、入力されたデータを複数の部分データに区切ることで、(i+1)番目の部分データを選択する(S102)。   First, the intermediate data generation unit 11 selects the (i + 1) th partial data by dividing the input data into a plurality of partial data (S102).

そして、中間データ生成部11は、全ての部分データに対して(i+1)番目の中間データを生成し、生成された中間データをメモリ12の中間データテーブル12aに書き込み、中間データテーブル12aを更新していくことで、当該中間データをメモリ12に記憶する(S104)。   Then, the intermediate data generation unit 11 generates (i + 1) th intermediate data for all partial data, writes the generated intermediate data to the intermediate data table 12a of the memory 12, and updates the intermediate data table 12a. As a result, the intermediate data is stored in the memory 12 (S104).

次に、パリティ生成部13は、線形符号の生成行列のパリティの位置にあたる部分をc行ずつ区切った場合に、(i+1)番目となる部分行列の情報を選択する(S106)。   Next, the parity generation unit 13 selects the information of the (i + 1) th submatrix when the portion corresponding to the parity position of the linear code generation matrix is divided by c rows (S106).

そして、パリティ生成部13は、部分行列の各列に対応する中間データをメモリ12から読み出す(S108)。具体的には、パリティ生成部13は、部分行列の列の値をもとにして、中間データテーブル12aに記憶されている中間データを、読み出す。   Then, the parity generation unit 13 reads the intermediate data corresponding to each column of the partial matrix from the memory 12 (S108). Specifically, the parity generation unit 13 reads the intermediate data stored in the intermediate data table 12a based on the column values of the partial matrix.

そして、パリティ生成部13は、部分行列の全ての列について読み出された中間データをそれぞれ累積することで、各列に対応するパリティを計算し生成する(S110)。   Then, the parity generation unit 13 calculates and generates parity corresponding to each column by accumulating the intermediate data read for all the columns of the partial matrix (S110).

このように、iが0から(x−1)まで繰り返す(S101、S111)ことにより、パリティが生成される。   In this way, parity is generated by repeating i from 0 to (x−1) (S101, S111).

なお、S104の処理で生成された中間データを記憶させる時に、直前のループで記憶させた領域に上書きして記憶させれば、中間データ領域を大幅に削減することが可能となる。   When the intermediate data generated in the process of S104 is stored, the intermediate data area can be greatly reduced by overwriting the area stored in the previous loop.

図4A〜図4Cは、符号化装置10の符号化処理の一例を具体的に説明する図である。   4A to 4C are diagrams for specifically explaining an example of the encoding process of the encoding device 10.

符号の生成行列Gは図4Aに示すようにk行n列の行列であり、符号語のデータ部を生成する左から1列目からk列目の部分(以下、データ位置部分と呼ぶ)は単位行列であり、符号語のパリティ部を生成する左から(k+1)列目からn列目の部分(以下、パリティ位置部分と呼ぶ)にあるu行v列の要素はg(u-1),(v-k-1)で表わしている。 The code generation matrix G is a matrix of k rows and n columns as shown in FIG. 4A, and the first column to the kth column from the left (hereinafter referred to as the data position portion) for generating the data portion of the code word is The element of the u row and the v column in the part from the left (k + 1) th column to the nth column (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) .

本発明では、図4Bに示すように、パリティ位置部分をc行ずつに区切った部分行列を単位として処理を繰り返すことを特徴としている。部分行列は、x=ceil(k/c)個になる。即ち、xはk/cを切り上げた値であり、kがcで割り切れればx=(k/c)、kがcで割り切れなければx=int(k/c)+1である。なお、int関数は、与えられた数値以下の整数で一番大きいものを返す関数である。   As shown in FIG. 4B, the present invention is characterized in that the processing is repeated in units of sub-matrices in which the parity position portion is divided into c rows. The number of sub-matrices is x = ceil (k / c). That is, x is a value obtained by rounding up k / c. If k is divisible by c, x = (k / c), and if k is not divisible by c, x = int (k / c) +1. The int function is a function that returns the largest integer that is less than or equal to a given numerical value.

図4Cにこの部分行列の詳細を示す。上から(i+1)個目の部分行列Gi=(Qi,0,Qi,1,…,Qi,(n-k-1))の、(j+1)番目の列はQi,j=(gc×i,j,gc×i+1,j,…,gc×i+(c-1),jTとなる。記号Tは、転置行列を表わす。 FIG. 4C shows details of this submatrix. From the top (i + 1) th sub-matrix G i = (Q i, 0 , Q i, 1, ..., Q i, (nk-1)) of, (j + 1) th column is Q i, j = ( g c × i, j, g c × i + 1, j, ..., g c × i + (c-1), j) becomes T. The symbol T represents a transposed matrix.

中間データ生成部11は、データD=(d0,d1,…,d(k-1))をcシンボルずつに区切った部分データDi=(dc×i,dc×i+1,…,dc×i+(c-1))から、全零以外の全ての係数(m0,m1,…,m(c-1))について中間データMi[m0,m1,…,m(c-1)]=m0・dc×i+m1・dc×i+1+…+m(c-1)・dc×i+(c-1)を生成し、メモリ12の中間データ領域の中間データテーブル12aに書込む。 Intermediate data generating unit 11, data D = (d 0, d 1 , ..., d (k-1)) portions separated one by c symbol data D i = (d c × i , d c × i + 1 , ..., a d c × i + (c- 1)), all coefficients other than all-zero (m 0, m 1, ... , m (c-1)) intermediate data M i [m 0, m 1 for, .., M (c-1) ] = m 0 · d c × i + m 1 · d c × i + 1 +... + M (c-1) · d c × i + (c-1) Are written in the intermediate data table 12a in the intermediate data area.

パリティ生成部13は、部分データDiに対応する部分行列Giのそれぞれの列データに基づいて計算されている中間データMi[Qi,j T]を、メモリ12の中間データ領域の中間データテーブル12aから読み出す。また、メモリ12のパリティ領域からパリティpjを読み出して、中間データMi[Qi,j T]を加算し、加算した結果をパリティ領域に書き戻す。これをj=0,1,…,(n−k−1)について実行する。 Parity generator 13, the intermediate data M i [Q i, j T ] , which is calculated based on the respective column data of the partial matrix G i corresponding to the partial data D i of intermediate intermediate data area of the memory 12 Read from the data table 12a. Further, the parity p j is read from the parity area of the memory 12, intermediate data M i [Q i, j T ] is added, and the addition result is written back to the parity area. This is executed for j = 0, 1,..., (N−k−1).

上記の、中間データ生成部11による中間データMiの生成と、パリティ生成部13によるパリティpj(j=0,1,…,(n−k−1))の計算を、i=0,1,…,(x−1)について繰り返し実行する。 The generation of the intermediate data M i by the intermediate data generation unit 11 and the calculation of the parity p j (j = 0, 1,..., (N−k−1)) by the parity generation unit 13 are performed using i = 0, 1,... (X-1) are repeatedly executed.

これらの計算の間、必要に応じて、入力されたデータはメモリ12のデータ領域で保持しておき、パリティ計算のタイミングと合わせて、符号語としてデータとパリティを出力する。   During these calculations, the input data is held in the data area of the memory 12 as necessary, and the data and parity are output as codewords together with the parity calculation timing.

従来のように生成行列GとデータDを乗算して符号化する構成では、要素がガロア体GF(2)の要素であったとしても、計算量はおおよそ(n−k)×(k/2−1)回のシンボルの加算が必要であるとしたが、本発明では、パリティ生成部13での計算量は(n−k)×(x−1)回のシンボルの加算に減らしており、中間データ生成部11で(2c−1)個の中間データをx回計算するために必要なシンボルの加算回数が(n−k)×k×(c−2)/2/cより少なければ、符号化装置全体での計算量を削減することが可能である。LDPC符号は、通常データシンボル数kは数百〜数千以上のオーダであり、パリティシンボル数(n−k)も数百以上のオーダであるので、cが3〜10程度の値であれば、計算量削減が可能である。 In the conventional configuration in which the generator matrix G and the data D are multiplied and encoded, even if the element is an element of the Galois field GF (2), the calculation amount is approximately (n−k) × (k / 2). -1) It is assumed that symbol addition is required, but in the present invention, the amount of calculation in the parity generation unit 13 is reduced to (n−k) × (x−1) symbol addition. If the number of symbol additions required to calculate (2 c −1) pieces of intermediate data x times in the intermediate data generation unit 11 is less than (n−k) × k × (c−2) / 2 / c Therefore, it is possible to reduce the amount of calculation in the entire encoding apparatus. In an LDPC code, the number k of data symbols is usually in the order of several hundreds to several thousand and the number of parity symbols (n−k) is also in the order of several hundreds. Therefore, if c is a value of about 3 to 10. The amount of calculation can be reduced.

このように、データ及び生成行列を複数のグループに区切り、そのグループ単位で中間データを生成し、生成された中間データからパリティを生成する。これにより、同じ計算で生成される中間データが複数ある場合は、1回の計算のみで当該中間データを生成することができるので、重複して計算が行われるのを避けることができ、計算量の削減を図ることができる。   In this way, the data and the generation matrix are divided into a plurality of groups, intermediate data is generated in units of the groups, and parity is generated from the generated intermediate data. As a result, if there are multiple pieces of intermediate data generated by the same calculation, the intermediate data can be generated by only one calculation, so that it is possible to avoid redundant calculations and to reduce the amount of calculation Can be reduced.

なお、中間データ生成部11は、iの値が変わる都度に、変わる前の処理で生成された中間データを、変わった後の処理で生成された中間データで上書きすることが可能である。   Note that each time the value of i changes, the intermediate data generation unit 11 can overwrite the intermediate data generated in the process before the change with the intermediate data generated in the process after the change.

また、全零の係数から生成される中間データについての領域は不要としているが、それだけでなく、1個の要素が‘1’で残りの要素が‘0’である係数により生成される中間データは、それと全く同じ値がデータ領域に存在するので、これらを記憶する領域も省略しても良い。   In addition, although an area for intermediate data generated from all zero coefficients is unnecessary, not only that, but intermediate data generated by coefficients in which one element is '1' and the remaining elements are '0'. Since the same value exists in the data area, the area for storing these may be omitted.

なお、初期値の処理方法は、符号化開始時にメモリ12のパリティ領域に全て0を書込むか、パリティの最初の項の計算時にメモリ12に書込むのみの処理を行なうなどいくつか考えられるが、いずれであっても上記の加算回数の概算には影響しない。   There are several possible methods for processing the initial value, such as writing all 0s in the parity area of the memory 12 at the start of encoding, or performing only the process of writing in the memory 12 when calculating the first term of parity. In either case, the above estimation of the number of additions is not affected.

なお、生成行列Gの情報は、パリティ生成部13が保持する構成としているが、メモリ12に生成行列Gの情報のための領域を設けて、パリティ生成部13がその領域にアクセスするという構成であっても、本発明は適用可能である。   Note that the information of the generator matrix G is configured to be held by the parity generator 13, but the memory 12 is provided with an area for the information of the generator matrix G, and the parity generator 13 accesses the area. Even if it exists, this invention is applicable.

また、生成行列Gは、符号ごとに固有の行列であるので、使われている符号に合わせた生成行列Gの情報を選択するもしくは入力する機能を備えれば、複数の符号を扱う符号化装置10を構成できることは明らかである。   Also, since the generator matrix G is a unique matrix for each code, an encoding device that handles a plurality of codes if it has a function of selecting or inputting information of the generator matrix G that matches the used code. It is clear that 10 can be configured.

また、cが3〜10程度の値としたが、上限とした値10はnやk、符号の符号化率の値によって変わるものである。   Moreover, although c is a value of about 3 to 10, the upper limit value 10 varies depending on the values of n, k, and code coding rate.

(実施の形態2)
次に、本発明の実施の形態2について説明する。上記実施の形態1では、中間データ生成部11は、全零以外の全ての要素の組み合わせの係数について中間データを生成することとしたが、本実施の形態2では、中間データ生成部11は、既に生成された中間データを利用して、新たに中間データを生成する。
(Embodiment 2)
Next, a second embodiment of the present invention will be described. In the first embodiment, the intermediate data generation unit 11 generates intermediate data for coefficients of combinations of all elements other than all zeros. However, in the second embodiment, the intermediate data generation unit 11 The intermediate data is newly generated using the already generated intermediate data.

図5は、本発明の実施の形態2における中間データ生成部11の構成の一例を示すブロック図である。図5に示すように、中間データ生成部11は、加算部21、j−ビットカウンタ22、及び選択部23を備えている。   FIG. 5 is a block diagram showing an example of the configuration of the intermediate data generation unit 11 according to Embodiment 2 of the present invention. As illustrated in FIG. 5, the intermediate data generation unit 11 includes an addition unit 21, a j-bit counter 22, and a selection unit 23.

本実施の形態2では、中間データ生成部11は、中間データ(b0・d0+b1・d1+…+b(j-1)・d(j-1))(j=1,2,…,(c−1))が生成されており、bjが零でない場合には、当該中間データにbj・djを加算することで、中間データ(b0・d0+b1・d1+…+b(j-1)・d(j-1)+bj・dj)を生成する。 In this second embodiment, the intermediate data generation unit 11, the intermediate data (b 0 · d 0 + b 1 · d 1 + ... + b (j-1) · d (j-1)) (j = 1,2, ..., (c-1)) is generated and b j is not zero, the intermediate data (b 0 · d 0 + b 1 · d is added by adding b j · d j to the intermediate data. 1 +... + B (j−1) · d (j−1) + b j · d j ) is generated.

以下に、中間データ生成部11の中間データの生成について、具体的に説明する。   Hereinafter, generation of intermediate data by the intermediate data generation unit 11 will be described in detail.

入力される部分データDi=(dc×i,dc×i+1,…,dc×i+(c-1))の最初の要素であるdc×iは、中間データMi[1,0,0,…,0]として、そのまま選択部23から出力される。 Partial data D i = input (d c × i, d c × i + 1, ..., d c × i + (c-1)) a first element is d c × i of intermediate data M i [ , 0, 0,..., 0] are output from the selection unit 23 as they are.

j−ビットカウンタ22は、入力されるDi=(dc×i,dc×i+1,…,dc×i+(c-1))の要素のそれぞれであるdc×i+jに対し、j−ビットのカウンタとして、(b0,b1,…,b(j-1))が(0,0,…,0)から(1,1,…,1)までをカウントアップする。 j- bit counter 22, D i = input (d c × i, d c × i + 1, ..., d c × i + (c-1)) are the respective elements d c × i + j On the other hand, as a j-bit counter, (b 0 , b 1 ,..., B (j-1) ) counts up from (0, 0,..., 0) to (1, 1,..., 1). To do.

カウントアップに従って、(b0,b1,…,b(j-1))=(0,0,…,0)の時は、選択部23はdc×i+jを中間データMi[(j個の0),1,((c−j−1)個の0)]として出力する。(b0,b1,…,b(j-1))が(1,0,…,0)〜(1,1,…,1)である時は、加算部21は順次、メモリ12から読み出したMi[b0,b1,…,b(j-1),0,0,…,0]の値を読み出し、dc×i+jを加算した値Mi[b0,b1,…,b(j-1),1,0,…,0]=dc×i+j+Mi[b0,b1,…,b(j-1),0,0,…,0]を選択部23から出力する。 According to the count up, when (b 0 , b 1 ,..., B (j−1) ) = (0, 0,..., 0), the selector 23 converts d c × i + j to the intermediate data M i [ (J 0s), 1, ((c−j−1) 0s)]. (B 0, b 1, ..., b (j-1)) is (1,0, ..., 0) to (1, 1, ..., 1) when it is, the adder 21 sequentially from the memory 12 read M i [b 0, b 1 , ..., b (j-1), 0,0, ..., 0] reads the value of the value obtained by adding the d c × i + j M i [b 0, b 1, ..., b (j- 1), 1,0, ..., 0] = d c × i + j + M i [b 0, b 1, ..., b (j-1), 0,0, ..., 0] is output from the selection unit 23.

例えば、中間データテーブル12aにおいて、部分データD0=(d0,d1,d2,d3)での係数(1,0,1,1)に対する中間データは、部分データD0=(d0,d1,d2,d3)での係数(1,0,1,0)に対する中間データにd3を加算した値である。 For example, in the intermediate data table 12a, the intermediate data for the coefficient ( 1 , 0 , 1 , 1 ) in the partial data D 0 = (d 0 , d 1 , d 2 , d 3 ) is the partial data D 0 = (d 0 , d 1 , d 2 , d 3 ) is a value obtained by adding d 3 to intermediate data for the coefficient ( 1 , 0 , 1 , 0 ).

上記の構成により、(2c−c−1)回のシンボルの加算により、cシンボルの部分データから、(2c−1)個の中間データを生成することを可能とした。 With the above configuration, (2 c −1) pieces of intermediate data can be generated from partial data of c symbols by adding (2 c −c−1) times of symbols.

このように、既に計算され生成された中間データを利用して、新たに中間データを計算し生成することができるので、計算量の削減を図ることができる。   In this way, since intermediate data can be newly calculated and generated using the already calculated and generated intermediate data, the amount of calculation can be reduced.

以下の表に、従来の符号化装置と本発明の符号化装置のそれぞれにおいて、実際にどの程度の回数の加算を行なって符号化を行なっているのかを示す。符号は、それぞれ符号化率(データ長/符号長)は3/4として、検査行列を乱数で生成したものである。処理をまとめた行数cについては、従来比が最小となる値を選んでいる。この結果からも、本発明により、加算回数を削減し、符号化の処理速度を高速化することが可能であることは明確となっている。   The following table shows how many times the addition is actually performed in each of the conventional coding apparatus and the coding apparatus of the present invention. Each code has a coding rate (data length / code length) of 3/4 and a parity check matrix generated with random numbers. For the number of rows c in which the processing is summarized, a value that minimizes the conventional ratio is selected. From this result, it is clear that according to the present invention, the number of additions can be reduced and the encoding processing speed can be increased.

Figure 2010041628
Figure 2010041628

なお、実施の形態1の中間データ生成部11は、中間データをメモリ12に出力するだけになっている。これに対し、本実施例(実施の形態2)の中間データ生成部11は、それと機能は全く同じであるが、中間データの生成に、先に計算した中間データを利用することにより、計算量を削減しようとしているため、メモリ12へのデータの指示情報とメモリ12からの中間データの読出しが存在する。   The intermediate data generation unit 11 according to the first embodiment only outputs intermediate data to the memory 12. On the other hand, the intermediate data generation unit 11 of the present embodiment (Embodiment 2) has exactly the same function, but the amount of calculation is increased by using the intermediate data previously calculated for generating the intermediate data. Therefore, there is data instruction information to the memory 12 and reading of intermediate data from the memory 12.

また、本発明において演算を加算として説明しているが、これは符号の要素に応じた演算を意味している。例えば、符号がガロア体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. .

以上、本発明に係る符号化装置について、上記実施の形態を用いて説明したが、本発明は、これに限定されるものではない。   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.

例えば、本実施の形態では、データ及び係数の各要素は2進数であることとしたが、データ及び係数の各要素は2進数に限定されず、3進数などであってもよい。   For example, in the present embodiment, each element of data and coefficient is a binary number, but each element of data and coefficient is not limited to a binary number, and may be a ternary number.

また、本実施の形態では、中間データ生成部11などの各構成要素は、ソフトウェアにより構成されていることとしたが、専用のハードウェアにより構成されていてもよい。つまり、ブロック図(図1及び図5など)の各機能ブロックは、典型的には集積回路であるLSIとして実現されていてもよい。なお、これらは個別に1チップ化されても良いし、一部又は全てを含むように1チップ化されても良い。   In the present embodiment, each component such as the intermediate data generation unit 11 is configured by software, but may be configured by dedicated hardware. That is, each functional block in the block diagrams (FIGS. 1 and 5, etc.) may be realized as an LSI that is typically an integrated circuit. Note that these may be individually made into one chip, or may be made into one chip so as to include a part or all of them.

本発明に係る符号化装置、符号化方法、及び符号化プログラムは、処理速度を高速化することができ、ネットワーク伝送時のパケットロスのような消失訂正の用途に有用である。   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.

本発明の実施の形態1の符号化装置の機能的な構成の一例を示すブロック図である。It is a block diagram which shows an example of a functional structure of the encoding apparatus of Embodiment 1 of this invention. 中間データテーブルの一例を示す図である。It is a figure which shows an example of an intermediate data table. 中間データテーブルの一例を示す図である。It is a figure which shows an example of an intermediate data table. 符号化装置が実行する符号化の処理を示すフローチャートである。It is a flowchart which shows the process of the encoding which an encoding apparatus performs. 符号化装置の符号化処理の一例を具体的に説明する図である。It is a figure explaining an example of an encoding process of an encoding apparatus concretely. 符号化装置の符号化処理の一例を具体的に説明する図である。It is a figure explaining an example of an encoding process of an encoding apparatus concretely. 符号化装置の符号化処理の一例を具体的に説明する図である。It is a figure explaining an example of an encoding process of an encoding apparatus concretely. 本発明の実施の形態2の中間データ生成部11の構成の一例を示すブロック図である。It is a block diagram which shows an example of a structure of the intermediate data generation part 11 of Embodiment 2 of this invention. 伝送パケット生成の説明図である。It is explanatory drawing of transmission packet generation.

符号の説明Explanation of symbols

10 符号化装置
11 中間データ生成部
12 メモリ
12a 中間データテーブル
13 パリティ生成部
21 加算部
22 j−ビットカウンタ
23 選択部
DESCRIPTION OF SYMBOLS 10 Encoding apparatus 11 Intermediate data generation part 12 Memory 12a Intermediate data table 13 Parity generation part 21 Addition part 22 j-bit counter 23 Selection part

Claims (5)

K個のシンボルのデータを、パリティを含む符号長がNでありデータ数がKである線形符号に符号化する符号化装置であって、
データを記憶する記憶部と、
前記K個のシンボルのデータをc個のシンボルずつに、k個(kは、K/cを切り上げた整数)の部分データに区切り、(i+1)番目(iは、0から(k−1)までの整数)の前記部分データ(d0,d1,…,d(c-1))と要素が全て零となる全零以外の係数(a0,a1,…,a(c-1))とから、全ての要素の組み合わせの前記係数について中間データ(a0・d0+a1・d1+…+a(c-1)・d(c-1))を生成し、前記中間データを前記記憶部に記憶する中間データ生成部と、
前記線形符号の生成行列のパリティの位置にあたる部分をc行ごとの部分行列に分割し、(i+1)番目の前記部分行列の(j+1)番目(jは、0から(N−K−1)までの整数)の列の値と同一の要素の組み合わせの前記係数に基づいて生成される前記中間データを前記記憶部から読み出して、全ての列についての前記中間データからそれぞれの列に対応するパリティを生成するパリティ生成部とを備え、
前記中間データ生成部は、全ての前記部分データに対して前記中間データを生成して前記記憶部に記憶し、
前記パリティ生成部は、全ての前記部分行列に対して前記中間データを前記記憶部から読み出して、前記列ごとに全ての前記読み出された中間データを累積することでそれぞれの列に対応するパリティを生成する
ことを特徴とする符号化装置。
An encoding device that encodes data of K symbols into a linear code with a code length including parity of N and a number of data of K,
A storage unit for storing data;
The data of the K symbols is divided into k partial data in units of c symbols (k is an integer obtained by rounding up K / c), and (i + 1) th (i ranges from 0 to (k−1)). ) And the partial data (d 0 , d 1 ,..., D (c-1) ) and all non-zero coefficients (a 0 , a 1 ,. ) ) To generate intermediate data (a 0 · d 0 + a 1 · d 1 +... + A (c-1) · d (c-1) ) for the coefficients of all element combinations, and the intermediate data Intermediate data generation unit for storing the data in the storage unit,
The part corresponding to the parity position of the generation matrix of the linear code is divided into sub-matrices for every c rows, and the (i + 1) -th sub-matrix (j + 1) -th (j is from 0 to (N−K−1)). The intermediate data generated based on the coefficient of the same combination of elements as the column value of the integer) is read from the storage unit, and the parity corresponding to each column is determined from the intermediate data for all columns. A parity generation unit for generating,
The intermediate data generation unit generates the intermediate data for all the partial data and stores the intermediate data in the storage unit,
The parity generation unit reads the intermediate data for all the partial matrices from the storage unit, and accumulates all the read intermediate data for each column, thereby corresponding to each column. An encoding device characterized by generating.
前記中間データ生成部は、中間データ(a0・d0+a1・d1+…+a(y-1)・d(y-1))(y=1,2,…,(c−1))が生成されており、ayが零でない場合には、当該中間データにay・dyを加算することで、中間データ(a0・d0+a1・d1+…+a(y-1)・d(y-1)+ay・dy)を生成する
ことを特徴とする請求項1に記載の符号化装置。
The intermediate data generation unit generates intermediate data (a 0 · d 0 + a 1 · d 1 +... + A (y−1) · d (y−1) ) (y = 1, 2,..., (C−1) ) Is generated and a y is not zero, the intermediate data (a 0 · d 0 + a 1 · d 1 +... + A (y−) is added by adding a y · dy to the intermediate data. The encoding apparatus according to claim 1, wherein 1) · d (y−1) + a y · d y ) is generated.
前記中間データ生成部は、(i+1)番目の部分データによる中間データをi番目の部分データによる中間データに上書きすることで、(i+1)番目の部分データによる中間データを前記記憶部に記憶する
ことを特徴とする請求項1に記載の符号化装置。
The intermediate data generation unit stores the intermediate data based on the (i + 1) th partial data in the storage unit by overwriting the intermediate data based on the (i + 1) th partial data on the intermediate data based on the i-th partial data. The encoding device according to claim 1.
K個のシンボルのデータを、パリティを含む符号長がNでありデータ数がKである線形符号に符号化する符号化方法であって、
コンピュータが、前記K個のシンボルのデータをc個のシンボルずつに、k個(kは、K/cを切り上げた整数)の部分データに区切り、(i+1)番目(iは、0から(k−1)までの整数)の前記部分データ(d0,d1,…,d(c-1))と要素が全て零となる全零以外の係数(a0,a1,…,a(c-1))とから、全ての要素の組み合わせの前記係数について中間データ(a0・d0+a1・d1+…+a(c-1)・d(c-1))を生成し、データを記憶するための記憶部に前記中間データを記憶する中間データ生成ステップと、
コンピュータが、前記線形符号の生成行列のパリティの位置にあたる部分をc行ごとの部分行列に分割し、(i+1)番目の前記部分行列の(j+1)番目(jは、0から(N−K−1)までの整数)の列の値と同一の要素の組み合わせの前記係数に基づいて生成される前記中間データを前記記憶部から読み出して、全ての列についての前記中間データからそれぞれの列に対応するパリティを生成するパリティ生成ステップとを含み、
前記中間データ生成ステップでは、コンピュータが、全ての前記部分データに対して前記中間データを生成して前記記憶部に記憶し、
前記パリティ生成ステップでは、コンピュータが、全ての前記部分行列に対して前記中間データを前記記憶部から読み出して、前記列ごとに全ての前記読み出された中間データを累積することでそれぞれの列に対応するパリティを生成する
ことを特徴とする符号化方法。
An encoding method for encoding data of K symbols into a linear code whose code length including parity is N and whose number of data is K,
The computer divides the data of the K symbols into k partial data for each c symbols (k is an integer obtained by rounding up K / c), and (i + 1) -th (i is from 0 to (k the partial data of -1) integer up) (d 0, d 1, ..., d (c-1)) and the coefficient other than all zeros elements are all zero (a 0, a 1, ... , a ( c-1) ) to generate intermediate data (a 0 · d 0 + a 1 · d 1 + ... + a (c-1) · d (c-1) ) for the coefficients of all the element combinations, An intermediate data generation step of storing the intermediate data in a storage unit for storing data;
The computer divides the portion corresponding to the parity position of the generator matrix of the linear code into sub-matrices every c rows, and the (j + 1) -th (j + 1) -th (j is 0 to (N−K−) of the (i + 1) -th sub-matrix. The intermediate data generated based on the coefficients having the same element combinations as the values of the columns in the integers up to 1) are read from the storage unit, and the intermediate data for all the columns correspond to the respective columns. Generating a parity to generate, and
In the intermediate data generation step, the computer generates the intermediate data for all the partial data and stores it in the storage unit,
In the parity generation step, the computer reads the intermediate data for all the partial matrices from the storage unit, and accumulates all the read intermediate data for each column to each column. An encoding method characterized by generating corresponding parity.
K個のシンボルのデータを、パリティを含む符号長がNでありデータ数がKである線形符号に符号化するためのプログラムであって、
前記K個のシンボルのデータをc個のシンボルずつに、k個(kは、K/cを切り上げた整数)の部分データに区切り、(i+1)番目(iは、0から(k−1)までの整数)の前記部分データ(d0,d1,…,d(c-1))と要素が全て零となる全零以外の係数(a0,a1,…,a(c-1))とから、全ての要素の組み合わせの前記係数について中間データ(a0・d0+a1・d1+…+a(c-1)・d(c-1))を生成し、データを記憶するための記憶部に前記中間データを記憶する中間データ生成ステップと、
前記線形符号の生成行列のパリティの位置にあたる部分をc行ごとの部分行列に分割し、(i+1)番目の前記部分行列の(j+1)番目(jは、0から(N−K−1)までの整数)の列の値と同一の要素の組み合わせの前記係数に基づいて生成される前記中間データを前記記憶部から読み出して、全ての列についての前記中間データからそれぞれの列に対応するパリティを生成するパリティ生成ステップとをコンピュータに実行させ、
前記中間データ生成ステップでは、全ての前記部分データに対して前記中間データを生成して前記記憶部に記憶し、
前記パリティ生成ステップでは、全ての前記部分行列に対して前記中間データを前記記憶部から読み出して、前記列ごとに全ての前記読み出された中間データを累積することでそれぞれの列に対応するパリティを生成する
ことを特徴とするプログラム。
A program for encoding data of K symbols into a linear code whose code length including parity is N and whose number of data is K,
The data of the K symbols is divided into k partial data in units of c symbols (k is an integer obtained by rounding up K / c), and (i + 1) th (i ranges from 0 to (k−1)). ) And the partial data (d 0 , d 1 ,..., D (c-1) ) and all non-zero coefficients (a 0 , a 1 ,. ) ) To generate intermediate data (a 0 · d 0 + a 1 · d 1 +... + A (c-1) · d (c-1) ) for the coefficients of all element combinations and store the data Intermediate data generation step for storing the intermediate data in a storage unit for
The part corresponding to the parity position of the generation matrix of the linear code is divided into sub-matrices for every c rows, and the (i + 1) -th sub-matrix (j + 1) -th (j is from 0 to (N−K−1)). The intermediate data generated based on the coefficient of the same combination of elements as the column value of the integer) is read from the storage unit, and the parity corresponding to each column is determined from the intermediate data for all columns. Causing the computer to execute a parity generation step to generate,
In the intermediate data generation step, the intermediate data is generated for all the partial data and stored in the storage unit,
In the parity generation step, the parity data corresponding to each column is obtained by reading the intermediate data from the storage unit for all the partial matrices and accumulating all the read intermediate data for each column. A program characterized by generating
JP2008204846A 2008-08-07 2008-08-07 Encoder, encoding method, and encoding program Pending JP2010041628A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008204846A JP2010041628A (en) 2008-08-07 2008-08-07 Encoder, encoding method, and encoding program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008204846A JP2010041628A (en) 2008-08-07 2008-08-07 Encoder, encoding method, and encoding program

Publications (1)

Publication Number Publication Date
JP2010041628A true JP2010041628A (en) 2010-02-18

Family

ID=42013647

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008204846A Pending JP2010041628A (en) 2008-08-07 2008-08-07 Encoder, encoding method, and encoding program

Country Status (1)

Country Link
JP (1) JP2010041628A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10568212B2 (en) 2014-11-28 2020-02-18 Intel Corporation Manufacturing method for multi-layer printed circuit board

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10568212B2 (en) 2014-11-28 2020-02-18 Intel Corporation Manufacturing method for multi-layer printed circuit board

Similar Documents

Publication Publication Date Title
US8352847B2 (en) Matrix vector multiplication for error-correction encoding and the like
CN101073205B (en) LDPC encoder and decoder and LDPC encoding and decoding methods
KR101421286B1 (en) Methods and apparatus employing fec codes with permanent inactivation of symbols for encoding and decoding processes
JP4062435B2 (en) Error correction code decoding apparatus
KR102347823B1 (en) Encoding method and decoding method and device for structured ldpc
KR101730277B1 (en) Transmission apparatus and transmission method
JP4602406B2 (en) Method and apparatus for encoding and decoding data
WO2014122772A1 (en) Data structure for check matrix of error correction code, and coding-rate adjustment device and method for error correction code
WO2004107585A1 (en) Decoding method, decoding device, program, recording/reproduction device and method, and reproduction device and method
KR20080077992A (en) Inspection matrix generation method, encoding method, communication device, communication system, and encoder
JP2010532129A (en) Generate parity check matrix
WO2006064659A1 (en) Error correction encoding apparatus and error correction encoding method used therein
WO2011136089A1 (en) Coding device, error-correction code configuration method, and program thereof
WO2015135298A1 (en) Method, device, and computer storage medium supporting low bit rate encoding
JP2007166605A (en) Parity check matrix, method for generating parity check matrix, encoding method, and error corrector
JP4591371B2 (en) QC code encoding method
KR100918741B1 (en) Apparatus and method for channel coding in mobile communication system
JP5333233B2 (en) Decoding device, data storage device, data communication system, and decoding method
EP2309650B1 (en) A systematic encoder with arbitrary parity positions
US7392454B2 (en) Error locating methods and devices for algebraic geometric codes
KR20190003315A (en) Encoding method of efficient generalized tensor product codes, and apparatus there-of
US20170288697A1 (en) Ldpc shuffle decoder with initialization circuit comprising ordered set memory
KR101436973B1 (en) Supercharged codes
JP2009182421A (en) Decoding method and decoding device
JP2010041628A (en) Encoder, encoding method, and encoding program