JP5749784B2 - Error correction code method - Google Patents

Error correction code method Download PDF

Info

Publication number
JP5749784B2
JP5749784B2 JP2013241198A JP2013241198A JP5749784B2 JP 5749784 B2 JP5749784 B2 JP 5749784B2 JP 2013241198 A JP2013241198 A JP 2013241198A JP 2013241198 A JP2013241198 A JP 2013241198A JP 5749784 B2 JP5749784 B2 JP 5749784B2
Authority
JP
Japan
Prior art keywords
matrix
error correction
girth
zero
parity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013241198A
Other languages
Japanese (ja)
Other versions
JP2015103866A (en
Inventor
匡彦 北村
匡彦 北村
喜秀 外村
喜秀 外村
白井 大介
大介 白井
山口 高弘
高弘 山口
藤井 竜也
竜也 藤井
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013241198A priority Critical patent/JP5749784B2/en
Publication of JP2015103866A publication Critical patent/JP2015103866A/en
Application granted granted Critical
Publication of JP5749784B2 publication Critical patent/JP5749784B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、誤り訂正符号方法及びシステムに係り、特に、誤り訂正符号を用いた伝送系において、誤り訂正符号の検査行列を生成する方法と、伝送系において誤り訂正符号の検査行列を共有する方法および伝送システムに関する。   The present invention relates to an error correction code method and system, and in particular, a method for generating a check matrix of an error correction code in a transmission system using the error correction code and a method for sharing a check matrix of an error correction code in the transmission system And a transmission system.

●パンクチャLDGM(Low Density Generator Matrix)の概要:
図1に、誤り訂正符号を用いた伝送システムの構成例を示す。
● Puncture LDGM (Low Density Generator Matrix) overview:
FIG. 1 shows a configuration example of a transmission system using an error correction code.

本通信システムは誤り訂正符号機能を具備し、送信側の誤り訂正符号器2においては伝送データを入力し誤り訂正符号を施し、送信器3から2元消失通信路4を介して送信され、受信側の誤り訂正復号器6においては誤り訂正復号を施して伝送データを出力するものである。   This communication system has an error correction code function. The transmission side error correction encoder 2 receives transmission data, applies an error correction code, is transmitted from the transmitter 3 via the binary erasure communication path 4, and is received. The error correction decoder 6 on the side performs error correction decoding and outputs transmission data.

LDPC(Low Density Parity Check)符号は、符号長(ブロック長:N)に対して非零要素の数が疎である検査行列H(以下、「H行列」と記す)によって定義される線型ブロック符号である。LDPC符号の符号化は、このH行列から変換できる生成行列G(以下、「G行列」と記す)を用いて行われる。そのため、実際に伝送装置の誤り訂正技術として用いられている場合には、送信器側と受信器側でそれぞれのG行列もしくはH行列を共有する必要がある。例えば、図1にあるように、検査行列生成器1によってH行列(検査行列情報)とG行列(生成行列情報)を生成し、それぞれの送受信器側に配置する必要がある。H行列を生成するには、符号長Nの他に、ソースパケット数Kが必要である。このとき、パリティパケット数MはM=(N−K)、符号化率RはR=K/Nでそれぞれ与えられる。   The LDPC (Low Density Parity Check) code is a linear block code defined by a check matrix H (hereinafter referred to as “H matrix”) in which the number of nonzero elements is sparse with respect to the code length (block length: N). It is. The LDPC code is encoded using a generator matrix G (hereinafter referred to as “G matrix”) that can be converted from the H matrix. Therefore, when it is actually used as an error correction technique for a transmission apparatus, it is necessary to share the G matrix or the H matrix on the transmitter side and the receiver side. For example, as shown in FIG. 1, it is necessary to generate an H matrix (check matrix information) and a G matrix (generation matrix information) by the check matrix generator 1 and arrange them on the respective transmitter / receiver sides. In order to generate the H matrix, in addition to the code length N, the number of source packets K is required. At this time, the parity packet number M is given by M = (N−K), and the coding rate R is given by R = K / N.

LDGM符号はLDPC符号の一種で、疎行列と図2に示すような階段行列H2の組み合わせでH行列が構成される。例えば、図3は、N=16,K=8,R=0.5のLDGM符号(H=[H1|H2])である。一般的にLDPC符号のH行列は疎行列であるが、それに対応するG行列は疎行列ではないが、LDGM符号はG行列も疎行列になる特性を持つ。   The LDGM code is a kind of LDPC code, and an H matrix is composed of a combination of a sparse matrix and a step matrix H2 as shown in FIG. For example, FIG. 3 shows an LDGM code (H = [H1 | H2]) with N = 16, K = 8, and R = 0.5. In general, the H matrix of the LDPC code is a sparse matrix, but the corresponding G matrix is not a sparse matrix, but the LDGM code has a characteristic that the G matrix also becomes a sparse matrix.

図1にあるような伝送システムでLDGM符号を用いる場合には、伝送データによって望ましいソースパケット数K及びパリティパケット数Mが変化する。よって、H行列を生成するには、生成時にこれらの情報を与える必要があるが、常にそれが可能であるとは限らない。例えば、LDGM符号を用いて符号化し、パリティパケットを生成した後にパリティパケット数Mを変更する場合などがある。このとき、再度符号化せずにパリティパケット数Mを変化させる手段として、パンクチャ方式が提案されている(例えば、非特許文献1参照)。   When an LDGM code is used in a transmission system such as that shown in FIG. 1, the desired number of source packets K and the number of parity packets M vary depending on the transmission data. Therefore, in order to generate the H matrix, it is necessary to provide these pieces of information at the time of generation, but this is not always possible. For example, there is a case where the number of parity packets M is changed after encoding using LDGM codes and generating parity packets. At this time, a puncture method has been proposed as means for changing the number M of parity packets without re-encoding (see Non-Patent Document 1, for example).

図4にH行列をパンクチャ方式によってパリティパケット数Mを1つ減らしたH'行列(H'=[H1|H2'])に変換している様子を示す。H行列のc1行をc2行に加法演算し、マージすることで、理論的にパリティパケットp1がH'行列に対して無関係になる。これによってH'は実質的にK=8,M=7のLDGM符号を与える。また、この操作を繰り返すことで図5に示すようにパリティパケット数Mを減じることができる。   FIG. 4 shows a state where the H matrix is converted into an H ′ matrix (H ′ = [H1 | H2 ′]) in which the number M of parity packets is reduced by one by the puncturing method. By adding and merging the c1 row of the H matrix to the c2 row and merging, the parity packet p1 becomes theoretically unrelated to the H ′ matrix. This gives H 'substantially an LDGM code with K = 8 and M = 7. Further, by repeating this operation, the number of parity packets M can be reduced as shown in FIG.

図6は、従来の2元消失通信路におけるLDPC符号の復号過程のフローチャートを示す。2元消失通信路4は、H行列パケットの受信状況に基づき、消失したパケットの回復処理を行う。H行列の各行が一つのパリティ検査方程式に対応し、最大で一つのパケット消失を回復することが可能である。そのため、H行列に対して、一つの消失パケットを回復させた、もしくは、消失パケットを全く含まない行はそれ以上の回復処理の可能性がないため「無効」であるとする(ステップ4,Yes、ステップ5,Yes)。逆に、一つ以上の消失パケットを含む場合は(ステップ4,Yes、ステップ5,No、ステップ6,No)、回復処理前の状態を「有効」であるとする。初期状態では、H行列の全ての行を「有効」と設定し (ステップ2) 、「有効」である各行についてだた一つの消失パケットを含む場合に(ステップ4,Yes、ステップ5,No、ステップ6,Yes)回復処理を行い(ステップ7)、その後に当該行を「無効」にする(ステップ8)。   FIG. 6 shows a flowchart of an LDPC code decoding process in a conventional binary erasure channel. The binary lost channel 4 performs lost packet recovery processing based on the reception status of the H matrix packet. Each row of the H matrix corresponds to one parity check equation, and it is possible to recover at most one packet loss. Therefore, it is assumed that one lost packet is recovered for the H matrix or a row that does not include any lost packet is “invalid” because there is no possibility of further recovery processing (step 4, Yes). Step 5, Yes). Conversely, when one or more lost packets are included (step 4, Yes, step 5, No, step 6, No), the state before the recovery process is assumed to be “valid”. In the initial state, all rows of the H matrix are set to “valid” (step 2), and if there is only one lost packet for each row that is “valid” (step 4, Yes, step 5, No, (Step 6, Yes) Recovery processing is performed (Step 7), and then the corresponding line is made "invalid" (Step 8).

また、消失パケットが一つも含まない行が見つかった場合(ステップ4,Yes、ステップ5,Yes)、その行を「無効」にする(ステップ9)。   If a line that does not contain any lost packets is found (step 4, Yes, step 5, Yes), the line is set to “invalid” (step 9).

以上を繰り返して「有効」な行がなくなるか、「無効」な行の数が変化しない場合に(ステップ11,Yes)処理を終了する。   The above process is repeated, and when there is no “valid” row or the number of “invalid” rows does not change (step 11, Yes), the processing is terminated.

Guosen Yue; Xiaodong Wang; Madihian, M., "Design of Rate-Compatible Irregular Repeat Accumulate codes," Communications IEEE Transactions on, vol.55, no.6, pp.1153,1163, June 2007.Guosen Yue; Xiaodong Wang; Madihian, M., "Design of Rate-Compatible Irregular Repeat Accumulate codes," Communications IEEE Transactions on, vol.55, no.6, pp.1153,1163, June 2007.

しかしながら、誤り訂正符号の検査行列を生成する方法は、伝送毎に符号化率を指定してからLDPC符号の検査行列をスクラッチから作るには時間がかかりすぎ、映像伝送のように低遅延性が要求される場合には特に難しいという問題がある。   However, the method for generating the error correction code parity check matrix requires too much time to create the LDPC code parity check matrix from scratch after specifying the coding rate for each transmission, and has low latency as in video transmission. There is a problem that it is particularly difficult when required.

誤り訂正符号の行列交換方法とシステムは、単純に検査行列ファイルのみを共有する場合、検査行列の大きさ(符号長)が大きくなるにつれ、そのファイルサイズも大きくなる。特に、伝送毎に変わる場合では、誤り訂正符号の検査行列を共有するには、可能な限り最小の伝送コストで行列情報を共有する方法が必要である。   If the error correction code matrix exchange method and system simply share a check matrix file, the file size increases as the size (code length) of the check matrix increases. In particular, in the case of changing every transmission, in order to share the error correction code check matrix, a method of sharing matrix information at the lowest possible transmission cost is required.

本発明は、上記の点に鑑みなされたもので、符号化器と復号化器での検査行列を作成する時間と行列情報を共有する伝送コストを低減することが可能な誤り訂正符号方法を提供することを目的とする。   The present invention has been made in view of the above points, and provides an error correction coding method capable of reducing transmission cost for sharing matrix information and time for creating a check matrix between an encoder and a decoder. The purpose is to do.

また、誤り訂正符号化器と誤り訂正復号器における行列を交換するのに必要十分かつ容量が最小となる情報のみを共有し、行列交換に関わるオーバヘッドを抑制することが可能な誤り訂正符号方法及びシステムを提供することを目的とする。   An error correction coding method capable of sharing only information that is necessary and sufficient for exchanging matrices in an error correction encoder and an error correction decoder and minimizing the capacity, and that can suppress overhead related to matrix exchange, and The purpose is to provide a system.

一態様によれば、誤り訂正符号を用いた伝送システムにおいて、誤り訂正符号の検査行列を生成する誤り訂正符号方法であって、
誤り訂正符号化を行う装置の記憶手段上において、
与えられたH行列(以下、「根行列H」と記す)に対して大きさを拡張し、新たに追加された領域(以下、「拡張領域」と記す)の要素を全て零に設定する初期化ステップと、
前記拡張領域に非零要素の密度が均一になるように最小ループ局所的最大化アルゴリズムを用いて、前記根行列の非零要素を該拡張領域に移動する根行列拡張ステップと、を行い、
前記初期化ステップにおいて、
前記根行列Hに含まれる疎行列H1の行数m1を(m0+m1)(但し、m0はH1のパリティ数、m1は追加されたパリティ数)行に伸張し、前記拡張領域の要素を全て零に設定し、
前記根行列Hに含まれる階段行列H2の大きさを(m0+m1)×(m0+m1)に伸張した階段行列H2’を生成し、
H’=[H1’|H2’](但し、H1’は拡張された行列)とし、
前記根行列拡張ステップにおいて、
前記根行列中で非零要素から始まり関係する行及び列を辿り元に戻る経路のうち最小の距離となるgirthを持つ非零要素の列番号を抽出し、このときのgirth値をmin_girthとし、
最小のgirthを構成する要素の行番号をiとし、
前記H1’に追加された前記拡張領域に属する第D列内で前記girthを最大にするようにi行D列の非零要素を該拡張領域に移動する誤り訂正符号方法が提供される。
According to one aspect, in a transmission system using an error correction code, an error correction code method for generating a check matrix of an error correction code,
On the storage means of the device that performs error correction coding,
The initial value that expands the size of a given H matrix (hereinafter referred to as “root matrix H”) and sets all the elements of the newly added region (hereinafter referred to as “extended region”) to zero. Step,
Using the minimum loop local maximization algorithm as the density of non-zero elements is uniform in the expansion area, have rows, and root matrix extension step of moving a non-zero element in the extended area of the root matrix,
In the initialization step,
The number of rows m1 of the sparse matrix H1 included in the root matrix H is expanded to (m0 + m1) (where m0 is the number of parity of H1 and m1 is the number of added parity), and all the elements of the extension region are expanded. Set to zero,
A step matrix H2 ′ is generated by expanding the size of the step matrix H2 included in the root matrix H to (m0 + m1) × (m0 + m1);
H '= [H1' | H2 '] (where H1' is an expanded matrix)
In the root matrix expansion step,
Extracting the column number of the non-zero element having the girth which is the minimum distance from the path returning to the original starting from the non-zero element in the root matrix, and the girth value at this time is min_girth,
The line number of the elements that make up the smallest girth is i,
There is provided an error correction coding method for moving a non-zero element of i-th row and D-column to the extension region so as to maximize the girth within the D-th column belonging to the extension region added to H1 ′ .

一態様によれば、誤り訂正符号方法により、符号の符号性能を決定するH行列(検査行列)の生成について、根行列の符号特性を低減させずに、かつ、スクラッチからH行列を生成するよりも高速に所望のH行列を得ることが可能になる。これにより、動画配信のように、ビットレートが可変かつリアルタイム性を要求される伝送システムにおいて状況に適したH行列による誤り訂正が可能になる。   According to one aspect, the generation of the H matrix (check matrix) that determines the code performance of the code by the error correction coding method, without reducing the code characteristics of the root matrix and generating the H matrix from scratch It is also possible to obtain a desired H matrix at high speed. This enables error correction using an H matrix suitable for the situation in a transmission system in which the bit rate is variable and real-time performance is required, such as moving image distribution.

誤り停止符号を用いた伝送システムの構成例である。It is a structural example of the transmission system using an error stop code. 階段行列の例である。It is an example of a staircase matrix. N=16,K=8,R=0.5のLDGM符号の例である。This is an example of an LDGM code with N = 16, K = 8, and R = 0.5. H行列をパンクチャ方式によりH'行列に変換した例である。In this example, the H matrix is converted into an H ′ matrix by the puncture method. パンクチャ操作を繰り返した例である。This is an example in which the puncturing operation is repeated. 従来の2元消失通信路におけるLDPC符号の復号過程のフローチャートである。It is a flowchart of the decoding process of the LDPC code in the conventional binary erasure channel. 本発明の第1の実施の形態における根行列拡張のフローチャートである。It is a flowchart of the root matrix expansion in the 1st Embodiment of this invention. 本発明の第1の実施の形態における初期化処理のフローチャートである。It is a flowchart of the initialization process in the 1st Embodiment of this invention. 本発明の第1の実施の形態における最小ループ局所的最大化アルゴリズムである。It is the minimum loop local maximization algorithm in the 1st Embodiment of this invention. 本発明の第1の実施の形態における元のH行列の例である。It is an example of the original H matrix in the 1st Embodiment of this invention. 本発明の第1の実施の形態における初期化処理終了時のH'行列の例である。It is an example of the H 'matrix at the time of completion | finish of the initialization process in the 1st Embodiment of this invention. 本発明の第1の実施の形態における新たに生成されたH行列の例である。It is an example of the H matrix newly generated in the 1st embodiment of the present invention. 本発明の第2の実施の形態における行列交換方法を用いた通信システムの構成例である。It is a structural example of the communication system using the matrix exchange method in the 2nd Embodiment of this invention. 本発明の第2の実施の形態におけるファイル読込とパンクチャ処理による生成方式の行列交換パケットの例である。It is an example of the matrix exchange packet of the production | generation system by the file reading and puncture process in the 2nd Embodiment of this invention. 本発明の第2の実施の形態におけるアルゴリズム生成とパンクチャ処理による生成方式の行列交換パケットの例である。It is an example of the matrix exchange packet of the production | generation system by the algorithm production | generation and puncture process in the 2nd Embodiment of this invention. 本発明の第2の実施の形態におけるアルゴリズム生成のみによる生成方式(スクラッチ型)の行列交換パケットの例である。It is an example of the matrix exchange packet of the production | generation system (scratch type) only by the algorithm production | generation in the 2nd Embodiment of this invention. 本発明の第2の実施の形態におけるアルゴリズム生成のみによる生成方式(根行列拡張型)の行列交換パケットの例である。It is an example of the matrix exchange packet of the production | generation system (root matrix expansion type) only by the algorithm production | generation in the 2nd Embodiment of this invention. 本発明の第2の実施の形態における行列交換方法のフローチャートである。It is a flowchart of the matrix exchange method in the 2nd Embodiment of this invention. 本発明の第2の実施の形態における検査行列のパンクチャ処理のフローチャートである。It is a flowchart of the puncturing process of the check matrix in the second embodiment of the present invention. 本発明の第2の実施の形態における検査行列のアルゴリズム生成(スクラッチ型)のフローチャートである。It is a flowchart of the algorithm production | generation of a check matrix (scratch type) in the 2nd Embodiment of this invention. 本発明の第2の実施の形態における行列交換情報に基づき生成された検査行列の例である。It is an example of the check matrix produced | generated based on the matrix exchange information in the 2nd Embodiment of this invention.

以下、図面と共に本発明の実施の形態を説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

[第1の実施の形態]
本実施の形態は、符号化器と復号器の間での検査行列に関するものであり、符号化器側と復号器側で共有する単一の検査行列Hの複数の行を加法演算してマージすることで行数を小さくし、要素を零に設定した行を追加し、列内のgirthを最大とするように非零要素を移動して行列を大きくすることで、符号化性能を低下させずに単一の検査行列Hから任意の符号長(検査行列の大きさ)の検査行列H'を生成し、検査行列を作成する時間と行列情報を共有する伝送コストを低減するものである。
[First embodiment]
The present embodiment relates to a parity check matrix between an encoder and a decoder, and adds and merges a plurality of rows of a single parity check matrix H shared between the encoder side and the decoder side. To reduce the number of rows, add rows with elements set to zero, move non-zero elements to maximize the girth in the column, and increase the matrix, thereby reducing the coding performance. The parity check matrix H ′ having an arbitrary code length (the size of the parity check matrix) is generated from the single parity check matrix H, and the transmission cost for sharing the matrix information and the time for creating the parity check matrix is reduced.

本実施の形態は、図1に示す伝送システムにおける検査行列生成器1において、種となる行列(根行列)から任意のパリティ量(符号化率)の行列を生成することができ、元から行列を作るよりも短時間で構成可能になる。   In the present embodiment, the parity check matrix generator 1 in the transmission system shown in FIG. 1 can generate a matrix having an arbitrary parity amount (coding rate) from a matrix (root matrix) as a seed. It can be configured in a shorter time than making.

本実施の形態は、伝送するパケットサイズ、誤り訂正符号化率を送信毎に変化させて伝送する場合に有効である。   This embodiment is effective in the case where transmission is performed by changing the packet size to be transmitted and the error correction coding rate for each transmission.

図7は、本発明の第1の実施の形態における根行列拡張のフローチャートを示す。当該フローチャートの処理は、与えられたH行列(根行列)に対して初期化処理により領域の大きさを拡張し、その後、拡張された領域に非零要素の密度が均一になるように最小ループ局所的最大化アルゴリズムを用いてJ=floor[(E)/(m0+m1)]の非零要素を移動させる。ここで、floorはfloor関数であり、小数点以下を打ち切りとする。Eは行列内の非零要素の総数(行列内の「1」の立っている数)である。また、m1の範囲は100〜5000とし、m0の範囲は1〜4×m1とする。   FIG. 7 shows a flowchart of root matrix expansion in the first embodiment of the present invention. The process of the flowchart expands the size of the region by initialization processing for the given H matrix (root matrix), and then minimizes the non-zero element density in the expanded region so that the density is uniform. Move non-zero elements of J = floor [(E) / (m0 + m1)] using a local maximization algorithm. Here, floor is a floor function, and the fractional part is truncated. E is the total number of non-zero elements in the matrix (the number of “1” s standing in the matrix). The range of m1 is 100 to 5000, and the range of m0 is 1 to 4 × m1.

ステップ110) 検査行列H1の非零要素の総数をE、H1のパリティ数をm0、H行列をパンクチャ方式によってパリティパケット数Mを1つ減らしたH'行列で追加されたパリティ数をm1とする。   Step 110) The total number of non-zero elements of the check matrix H1 is E, the parity number of H1 is m0, and the H matrix is punctured, and the parity number added by the H 'matrix obtained by reducing the parity packet number M by 1 is m1. .

ステップ120) 与えられたH行列に(根行列)に対して初期化処理を行い、大きさを拡張する。詳細については図8に示す。   Step 120) An initialization process is performed on the given H matrix (root matrix) to expand the size. Details are shown in FIG.

ステップ130) J=floor[(E)/(m0+m1)]とする。   Step 130) J = floor [(E) / (m0 + m1)].

ステップ140) j=1とする。   Step 140) Let j = 1.

ステップ150) 最小ループ局所的最大化アルゴリズムにより非零要素を拡張領域に移動する。詳細については図9に示す。   Step 150) Move non-zero elements to extended region by minimum loop local maximization algorithm. Details are shown in FIG.

ステップ160) j=j+1とする。   Step 160) Set j = j + 1.

ステップ170) jがステップ130で求められたJより大きい場合には当該処理を終了し、そうでない場合にはステップ150に戻る。   Step 170) If j is larger than J obtained in Step 130, the process is terminated; otherwise, the process returns to Step 150.

次に、上記のステップ120の初期化の処理について図8を用いて説明する。   Next, the initialization process in step 120 will be described with reference to FIG.

当該初期化処理は与えられた根行列Hに対して、それに含まれる疎行列H1のパリティ数をm0とし、追加するパリティの数をm1とし(ステップ121)、(m0+m1)の大きさを持つ階段行列H2'を生成する(ステップ122)。行列に含まれる疎行列H1の行数m0を(m0+m1)行に伸張し、新たに追加された領域の要素を全て零に設定する(ステップ123)。また、同様H行列に含まれる階段行列H2に関しても、行列の大きさを(m0+m1)×(m0+m1)に伸張した階段行列H2'を生成する(ステップ122)。これらの行列を用いてH行列をH'=[H1'|H2']と設定する。   In the initialization process, for a given root matrix H, the number of parities of the sparse matrix H1 included therein is m0, the number of added parities is m1 (step 121), and the size of (m0 + m1) is A staircase matrix H2 ′ is generated (step 122). The number of rows m0 of the sparse matrix H1 included in the matrix is expanded to (m0 + m1) rows, and all the elements of the newly added area are set to zero (step 123). Similarly, for the staircase matrix H2 included in the H matrix, a staircase matrix H2 ′ in which the size of the matrix is expanded to (m0 + m1) × (m0 + m1) is generated (step 122). Using these matrices, the H matrix is set as H ′ = [H1 ′ | H2 ′].

次に、図7のステップ150における最小ループ局所的最大化アルゴリズムについて説明する。   Next, the minimum loop local maximization algorithm in step 150 of FIG. 7 will be described.

図9は、本発明の第1の実施の形態における最小ループ局所的最大化アルゴリズムを示す。   FIG. 9 shows a minimum loop local maximization algorithm in the first embodiment of the present invention.

与えられたH1行列の中で、最小のgirthを持つ非零要素の列番号を調べ、それをDとし、min_girthに当該girthを設定する(ステップ161)。"girth"とはその非零要素から始まって、関係する行および列を辿り元に戻る経路のうち最小の距離のことである。上記の最小のgirthを構成する要素の行番号をiに設定する(ステップ162)。続いて、前述のステップ123においてH1'に追加された新たな領域に属する第D列内でgirthを最大にするようi行D列の非零要素を移動する(ステップ163)。当該処理は、行列H1'の全要素についてgirthを調べ、そのうち最小のものを移動する。移動先候補に仮に非零要素を移動して、そこで、また移動した要素のgirthを調べる。このようにして、移動先候補でのgirthを全て調べて、そのうち、girthが最大だった場所を移動先として非零要素を移動する。   In the given H1 matrix, the column number of the non-zero element having the smallest girth is checked, and it is set as D, and the girth is set in min_girth (step 161). "Girth" is the minimum distance in the path starting from the non-zero element and following the relevant rows and columns back. The line number of the element constituting the minimum girth is set to i (step 162). Subsequently, the non-zero element in the i-th row and D-column is moved so as to maximize the girth within the D-th column belonging to the new region added to H1 ′ in step 123 (step 163). In this process, the girth is examined for all elements of the matrix H1 ′, and the smallest one is moved. Temporarily move a non-zero element to the destination candidate, and then check the girth of the moved element again. In this way, all the girths in the movement destination candidates are examined, and the non-zero element is moved using the place where the girth is the maximum as the movement destination.

以下に、本実施の形態の具体的な例を示す。   A specific example of this embodiment will be shown below.

図10は、本発明の第1の実施の形態における与えられた元のH行列の例である。元のH行列は、K=8,M=m0=4,N=12,R=0.67である。これにm1=2の列を新たに追加したK=8,M=6,N=14,R=0.57のH行列H'を生成する。図11の例は初期化処理を終えた段階の状態である。ここでは、J=4の要素を最小ループ局所的最大化アルゴリズムに基づいて新たに追加された領域に移動させる。図12は、新たに生成されたH行列である。   FIG. 10 is an example of a given original H matrix in the first embodiment of the present invention. The original H matrix is K = 8, M = m0 = 4, N = 12, and R = 0.67. An H matrix H ′ of K = 8, M = 6, N = 14, and R = 0.57 is generated by newly adding a column of m1 = 2. The example of FIG. 11 shows a state at the stage where the initialization process is completed. Here, the element with J = 4 is moved to the newly added region based on the minimum loop local maximization algorithm. FIG. 12 shows a newly generated H matrix.

LDPC符号の符号性能は非零要素の位置と、それらのgirthの値によって左右され(girthが大きい方がよい)、これを考慮して符号特性のよいH行列を毎回ゼロから作るには時間がかかる。そのため、本実施の形態では、ゼロから作るのではなく、ある程度の大きさのH行列を事前に準備し、それを根として行列を拡張するアプローチをとった。拡張する場合には、行列に含まれる最小のgirthを最大にするために、girthの小さい要素を優先的に移動させ、全体としてgirthを増加させることを狙っている。なお、girthの小さい要素を優先的に移動させる場合に、移動させる要素の数はgirthに基づいてではなく、目的の行列サイズ(どの程度伸ばすか)によって決定する(例えば、図7のJの値に相当)。   The code performance of an LDPC code depends on the position of the non-zero elements and their girth values (it is better that the girth is large). Considering this, it takes time to create an H matrix with good code characteristics from zero each time. Take it. Therefore, in the present embodiment, an approach is taken in which an H matrix having a certain size is prepared in advance, and the matrix is expanded using the matrix as a root, instead of creating from zero. In the case of expansion, in order to maximize the minimum girth included in the matrix, the element having a small girth is preferentially moved to increase the girth as a whole. In addition, when an element with a small girth is moved preferentially, the number of elements to be moved is determined based on the target matrix size (how much to extend), not based on the girth (for example, the value of J in FIG. 7). Equivalent).

本実施の形態の方法によれば、例えば、符号長n=1125、パリティ長m=125の行列から検査行列を生成する場合、符号長n=0から1125まで拡張するのと同等の時間を要する従来技術に較べてgirth計算は1/2時間に短縮される。   According to the method of the present embodiment, for example, when generating a parity check matrix from a matrix of code length n = 1125 and parity length m = 125, it takes time equivalent to extending from code length n = 0 to 1125 Compared to the prior art, the girth calculation is reduced to 1/2 hour.

[第2の実施の形態]
本実施の形態では、音声、映像、データ伝送など様々なサービスが想定される伝送で誤り訂正符号を適用する場合、利用用途に応じて行列交換のために発生する伝送情報量と、送受信器上での行列生成計算時間を短縮するための方法とシステムを説明する。
[Second Embodiment]
In this embodiment, when an error correction code is applied in transmission in which various services such as voice, video, and data transmission are assumed, the amount of transmission information generated for matrix exchange according to the usage, A method and system for shortening the matrix generation calculation time in the system will be described.

図13は、本発明の第2の実施の形態における行列交換方法を用いた通信システムの構成例を示す。本通信システムは誤り訂正符号機能を具備し、送信側の誤り訂正符号器2においては伝送データを入力し誤り訂正符号を施し、2元消失通信路4を介して通信され、受信側の誤り訂正復号器6においては誤り訂正復号を施して伝送データを出力するものである。   FIG. 13 shows a configuration example of a communication system using the matrix exchange method according to the second embodiment of the present invention. This communication system has an error correction code function. The transmission side error correction encoder 2 inputs transmission data, applies an error correction code, communicates via the binary erasure channel 4, and receives the error correction. The decoder 6 performs error correction decoding and outputs transmission data.

本通信システムの送信側は、誤り訂正符号器2、検査行列生成器10A、検査行列プール20A、および、送信器3から構成される。誤り訂正符号器2は入力された伝送データに基づき符号長、符号化率を検査行列生成器10Aに送信したのち、生成行列情報を受信する。その後、ここで得られた生成行列情報に基づき誤り訂正符号処理を行い、送信器3を用いて2元消失通信路4に送出する。   The transmission side of the communication system includes an error correction encoder 2, a check matrix generator 10 A, a check matrix pool 20 A, and a transmitter 3. The error correction encoder 2 receives the generation matrix information after transmitting the code length and the coding rate to the check matrix generator 10A based on the input transmission data. After that, error correction code processing is performed based on the generation matrix information obtained here, and the data is transmitted to the binary erasure channel 4 using the transmitter 3.

本システムの受信側は、誤り訂正復号器6、検査行列生成器10B、検査行列プール20B、および、受信器5から構成される。検査行列生成器10Bは送信側の検査行列生成器10Aから行列交換パケットを受け取り、これに基づき送信側で生成された生成行列に対応する検査行列を生成し、誤り訂正復号器6に通知する。誤り訂正復号器6はこの検査行列と、受信器5を用いて受信された伝送データを用いて、伝送データに含まれる消失パケットの回復処理を行う。その後、伝送データを送出する。   The receiving side of this system includes an error correction decoder 6, a check matrix generator 10B, a check matrix pool 20B, and a receiver 5. The check matrix generator 10B receives the matrix exchange packet from the check matrix generator 10A on the transmission side, generates a check matrix corresponding to the generation matrix generated on the transmission side based on this packet, and notifies the error correction decoder 6 of the check matrix. The error correction decoder 6 uses this check matrix and the transmission data received by the receiver 5 to perform recovery processing for lost packets included in the transmission data. Thereafter, the transmission data is transmitted.

検査行列プール20A、20Bは予め共有してあるH行列が格納されている記憶装置である。   The check matrix pools 20A and 20B are storage devices that store a previously shared H matrix.

本実施の形態では、行列交換の方法として
a. ファイル読込後にパンクチャ処理による生成 [行列種別0]
b. アルゴリズム生成後にパンクチャ処理による生成 [行列種別1]
c. アルゴリズム生成のみによる生成(スクラッチ型) [行列種別2]
d. アルゴリズム生成のみによる生成(根行列拡張型) [行列種別3]
の4種類が存在する。
In this embodiment, as a matrix exchange method
a. Generation by puncturing after reading a file [matrix type 0]
b. Generation by puncturing after algorithm generation [Matrix type 1]
c. Generation only by algorithm generation (scratch type) [Matrix type 2]
d. Generation by algorithm generation only (root matrix expansion type) [Matrix type 3]
There are four types.

以下に各行列交換の選択基準を示す。   The selection criteria for each matrix exchange are shown below.

a. ファイル読込後にパンクチャ処理による生成:
当該方式は、
・誤り訂正符号の処理時間の制約が決まっている場合;
・送受信器が事前に確定している場合;
・送受信器で保存領域が確保できる場合;
・伝送するパケットサイズ、ビットレートの変化が少ない場合;
等の場合に選択され、安定したビットレートでの圧縮映像伝送に適している。
a. Generation by puncturing after reading the file:
The method is
・ When processing time limit of error correction code is fixed;
・ When the transmitter / receiver is fixed in advance;
・ When the storage area can be secured by the transceiver;
・ When there is little change in packet size and bit rate to be transmitted;
And is suitable for compressed video transmission at a stable bit rate.

b. アルゴリズム生成後にパンクチャ処理による生成:
当該方式は、
・誤り訂正符号の処理時間の制約が決まっている場合;
・送受信器が事前に確定していない場合;
・送受信器で保存領域が確保できない場合;
・伝送するパケットサイズ、ビットレートの変化が大きい場合;
等の場合に選択され、可変ビットレート、スケーラブル符号を用いた映像マルチキャスト配信に適している。
b. Generation by puncturing after algorithm generation:
The method is
・ When processing time limit of error correction code is fixed;
-If the transceiver is not fixed in advance;
・ When the storage area cannot be secured by the transceiver;
・ When there are large changes in the packet size and bit rate to be transmitted;
And is suitable for video multicast distribution using a variable bit rate and a scalable code.

c. アルゴリズム生成のみによる生成(スクラッチ型):
当該方式は、
・誤り訂正符号の処理時間の制約が決まっていない場合;
に選択され、ファイルデータ伝送に適している。
c. Generation only by algorithm generation (scratch type):
The method is
・ When the time limit of error correction code processing is not decided;
Suitable for file data transmission.

行列種別毎の処理は以下の通りである。   Processing for each matrix type is as follows.

[行列種別=0]
d. アルゴリズム生成のみによる生成(根行列拡張型)
当該方式は、
・誤り訂正符号の処理時間の制約が決まっている場合;
・方式aおよび方式bよりも良い誤り訂正能力を求められる場合;
・方式aおよび方式bよりも処理時間制約が緩和である場合;
・方式aおよび方式bよりも受信端末上の処理性能が高い場合;
に選択され、ハードウェア実装を基盤とした映像受信に適している。
[Matrix type = 0]
d. Generation by algorithm generation only (extended root matrix)
The method is
・ When processing time limit of error correction code is fixed;
・ When better error correction capability than method a and method b is required;
-If the processing time constraint is more relaxed than method a and method b;
-When processing performance on the receiving terminal is higher than method a and method b;
Suitable for video reception based on hardware implementation.

図14は、本発明の第2の実施の形態におけるファイル読込後にパンクチャ処理による生成方式の行列交換のパケットの例を示す。この行列交換パケットは「ファイル読込後にパンクチャ処理による生成方式」を識別する行列種別、検査行列プール20Bに蓄積されている検査行列を一意に指定するための親行列ID、実際に誤り訂正符号処理で用いられる検査行列(以下、「子行列」と記す)の行数、および列数で構成される。親行列の列数は親行列IDより読込まれる情報により取得され、これはH行列内でパディングを含めたパケット数、すなわち(子行列数+パディングパケット数)の値に同じである。ここで、親行列IDとは、親行列を特定するためのID(ファイル名のようなもの)であり、親行列IDを指定すると、検査行列プール20A、20Bから親行列情報が読み込まれ、読み込まれた親行列情報の中に含まれる親行列の列数と子行列の列数との関係は「子行列数+パディングパケット数」の値である。   FIG. 14 shows an example of a matrix exchange packet of a generation method by puncturing after reading a file in the second embodiment of the present invention. This matrix exchange packet includes a matrix type for identifying “a generation method by puncturing after reading a file”, a parent matrix ID for uniquely designating a check matrix stored in the check matrix pool 20B, and actually error correction code processing. It consists of the number of rows and the number of columns of the parity check matrix used (hereinafter referred to as “child matrix”). The number of columns of the parent matrix is obtained from information read from the parent matrix ID, which is the same as the number of packets including padding in the H matrix, that is, the value of (number of child matrices + number of padding packets). Here, the parent matrix ID is an ID (such as a file name) for specifying the parent matrix. When the parent matrix ID is designated, the parent matrix information is read from the check matrix pools 20A and 20B, and read. The relationship between the number of columns of the parent matrix and the number of columns of the child matrix included in the parent matrix information is the value of “number of child matrices + number of padding packets”.

[行列種別=1]
図15は、本発明の第2の実施の形態におけるアルゴリズム生成後にパンクチャ処理による生成方式の行列交換パケットの例を示す。この行列交換パケットは「アルゴリズム生成後にパンクチャ処理による生成方式」を識別する行列種別、アルゴリズム生成する検査行列(親行列と呼ぶ)の行数および列数、実際に誤り訂正符号処理で用いられる検査行列(子行列)の行数および列数、アルゴリズム生成でパラメータとして与える2種類の検査行列の列重み、およびそれら列重みの割合で構成される。これらのパラメータは、ユーザが任意に指定して与えるものとする。例えば、重み1=3、重み2=7、重み1の列数:重み2の列数=0.8:0.2とする。
[Matrix type = 1]
FIG. 15 shows an example of a matrix exchange packet of a generation method by puncture processing after algorithm generation according to the second embodiment of the present invention. This matrix exchange packet is a matrix type that identifies "a generation method by puncturing after algorithm generation", the number of rows and columns of a check matrix (called a parent matrix) that is generated by an algorithm, and a check matrix that is actually used in error correction code processing. It consists of the number of rows and columns of (child matrix), the column weights of two types of check matrices given as parameters in algorithm generation, and the ratio of these column weights. These parameters are arbitrarily specified and given by the user. For example, weight 1 = 3, weight 2 = 7, number of columns of weight 1: number of columns of weight 2 = 0.8: 0.2.

[行列種別=2]
図16は、本発明の第2の実施の形態におけるアルゴリズム生成のみによる生成方式(スクラッチ型)の行列交換パケットの例を示す。この行列交換パケットは「アルゴリズム生成のみによる生成方式(スクラッチ型)」を識別する行列種別、アルゴリズム生成時の検査行列(親行列)の列数、実際に誤り訂正符号処理で用いられる検査行列(子行列)の行数および列数、アルゴリズム生成でパラメータとして与える2種類の検査行列の列重み、およびそれら列重みの割合で構成される。パラメータの与え方は上記の図15と同様である。
[Matrix type = 2]
FIG. 16 shows an example of a matrix exchange packet of a generation method (scratch type) based only on algorithm generation according to the second embodiment of the present invention. This matrix exchange packet is a matrix type that identifies the `` generation method using only algorithm generation (scratch type) '', the number of columns of the check matrix (parent matrix) at the time of algorithm generation, and the check matrix actually used in error correction code processing (child Matrix), the column weights of two types of check matrices given as parameters in algorithm generation, and the ratio of the column weights. The method of giving parameters is the same as in FIG.

[行列種別=3]
図17は、本発明の第2の実施の形態におけるアルゴリズム生成のみによる生成方式(根行列拡張型)の行列交換パケットの例を示す。この行列交換パケットは「アルゴリズム生成のみによる生成方式(根行列拡張型)」を識別する行列種別、アルゴリズム生成時の検査行列(親行列)の列数、実際に誤り訂正符号処理で用いられる検査行列(子行列)の行数および列数、アルゴリズム生成でパラメータとして与える2種類の検査行列の列重み、およびそれら列重みの割合で構成される。パラメータの与え方は上記の図15と同様である。
[Matrix type = 3]
FIG. 17 shows an example of a matrix exchange packet of a generation method (root matrix expansion type) based only on algorithm generation according to the second embodiment of the present invention. This matrix exchange packet is a matrix type that identifies "a generation method using only algorithm generation (root matrix expansion type)", the number of columns of the check matrix (parent matrix) at the time of algorithm generation, and the check matrix that is actually used in error correction code processing It consists of the number of rows and columns of (child matrix), the column weights of two types of check matrices given as parameters in algorithm generation, and the ratio of these column weights. The method of giving parameters is the same as in FIG.

次に、行列変換について説明する。   Next, matrix conversion will be described.

図18は、本発明の第2の実施の形態における行列交換方法のフローチャートである。   FIG. 18 is a flowchart of the matrix exchange method according to the second embodiment of the present invention.

検査行列生成器10Bは、検査行列生成器10Aから受信した行列交換パケットの行列種別に基づいて、検査号列の生成方法を選択する。   The check matrix generator 10B selects a method for generating a check symbol sequence based on the matrix type of the matrix exchange packet received from the check matrix generator 10A.

受信側にある検査行列生成器10Bは、行列種別がファイル読込後にパンクチャ処理による生成方式に該当する場合(行列種別=0)、当該検査行列生成器10Bに接続された検査行列プール20Bより行列交換パケット内の親行列ID に該当する検査行列を読み込む(ステップ502,Yes、ステップ503)。なお、この検査行列プール20Bは事前に送受信側で同期し同一の検査行列データが共有されている。その後、読み込んだ検査行列の行数と行列交換パケットの子行列の行数を比較し、図19に示す方法によりパンクチャ処理を行う(ステップ506)。読み込んだ検査行列の行数と行列交換パケットの子行列の行数の差分から、基本的に前者が大きいため、パンクチャ処理を行うことにより、子行列の行数に合わせていく。これにより得られた検査行列を誤り訂正復号器6に通知する(ステップ510)。   The parity check matrix generator 10B on the receiving side performs matrix exchange from the parity check matrix pool 20B connected to the parity check matrix generator 10B when the matrix type corresponds to the generation method by puncture processing after reading the file (matrix type = 0). A check matrix corresponding to the parent matrix ID in the packet is read (step 502, Yes, step 503). Note that this parity check matrix pool 20B is synchronized in advance on the transmitting and receiving sides and shares the same parity check matrix data. Thereafter, the number of rows of the read check matrix is compared with the number of rows of the child matrix of the matrix exchange packet, and puncture processing is performed by the method shown in FIG. 19 (step 506). Since the former is basically large from the difference between the number of rows of the parity check matrix read and the number of child matrix rows of the matrix exchange packet, the number of rows of the child matrix is adjusted by performing the puncturing process. The check matrix thus obtained is notified to the error correction decoder 6 (step 510).

行列種別が、アルゴリズム生成後にパンクチャ処理による生成方式に該当する場合(行列種別=1)(ステップ504,Yes)、行列交換パケットの情報に基づいて、図20に示すように検査行列のアルゴリズム生成を行う(ステップ505)。ここでは、生成すべき検査行列の行数、列数を満たす階段行列H2および全要素が零の行列H1を用意する。H1については、列ごとに2種類の列重みとそれらの割合を満たすようにランダムに非零要素を配置する。   When the matrix type corresponds to the generation method by the puncture process after generating the algorithm (matrix type = 1) (step 504, Yes), based on the information of the matrix exchange packet, the algorithm generation of the check matrix is performed as shown in FIG. Perform (step 505). Here, a staircase matrix H2 that satisfies the number of rows and columns of the parity check matrix to be generated and a matrix H1 in which all elements are zero are prepared. For H1, non-zero elements are randomly arranged so as to satisfy two types of column weights and their ratio for each column.

図21に親行列の列数N=16、子行列の行数M=8、列重み1=2、列重み2=3、列重み割合=0.625の場合に 本方法を適用した例を示している。その後、これによって生成された検査行列の行数と行列交換パケットの子行列の行数を比較し、図19に示す方法によりパンクチャ処理を行う(ステップ506)。これにより得られた検査行列を誤り訂正復号器6に通知する(ステップ510)。   FIG. 21 shows an example in which this method is applied when the number of parent matrix columns N = 16, the number of child matrix rows M = 8, column weight 1 = 2, column weight 2 = 3, and column weight ratio = 0.625. Yes. Thereafter, the number of rows of the check matrix generated in this way is compared with the number of rows of the child matrix of the matrix exchange packet, and puncturing is performed by the method shown in FIG. 19 (step 506). The check matrix thus obtained is notified to the error correction decoder 6 (step 510).

行列種別がアルゴリズム生成のみによる生成方式(スクラッチ型)に該当する場合(行列種別=2) (ステップ507,Yes)、既存のH行列生成方法により検査行列のアルゴリズムを生成し、ステップ512に移行する(ステップ508)。アルゴリズム生成のみによる生成方式(根行列拡張型)に該当する場合(行列種別=3)(ステップ509,Yes)、前述の図7の処理を行う(ステップ510)。最後に検査行列データを誤り訂正復号器6に通知して処理を終了する(ステップ512)。いずれの行列種別にも該当しない場合は(ステップ509,No)、エラー処理を行い(ステップ511)、処理を終了する。   When the matrix type corresponds to a generation method (scratch type) based only on algorithm generation (matrix type = 2) (Yes in step 507), a check matrix algorithm is generated by the existing H matrix generation method, and the process proceeds to step 512. (Step 508). If the generation method (root matrix expansion type) is based only on algorithm generation (matrix type = 3) (step 509, Yes), the above-described processing of FIG. 7 is performed (step 510). Finally, the check matrix data is notified to the error correction decoder 6 and the process is terminated (step 512). If it does not correspond to any matrix type (step 509, No), error processing is performed (step 511), and the processing is terminated.

ここで、図19の検査行列のパンクチャ処理について説明する。   Here, the check matrix puncturing process of FIG. 19 will be described.

検査行列生成器10Bは、j0=1、cnt=0、step=2とする(ステップ601)。ここで、Step=2とするのは、パンクチャ処理では、実質的にH行列の行数とパリティ部分の列数を小さくする。パンクチャを行うには消滅させる行/列の順番があり、初めの1つ目は図4のようになり、2番目のパリティパケットを基準にパンクチャさせているため、1番目のパリティパケットが消滅することによる。j=j0とする(ステップ602)。   The parity check matrix generator 10B sets j0 = 1, cnt = 0, and step = 2 (step 601). Here, Step = 2 is set to substantially reduce the number of rows of the H matrix and the number of columns of the parity part in the puncturing process. In order to perform puncturing, there is a sequence of rows / columns to be erased. The first one is as shown in FIG. 4, and the first parity packet is erased because puncturing is performed based on the second parity packet. It depends. j = j0 is set (step 602).

第j番目のパリティパケットをパンクチャさせ(ステップ603)、cntをcnt=cnt+1とする(ステップ604)。現在の行列の列数が子行列の列数と一致するかを判定し、一致すれば(ステップ605,Yes)、当該処理を終了し、一致しなければ(ステップ605,No)、jが所定の数mより大きい場合(j>m)は(ステップ606,Yes)、j0=j0×2とし(ステップ608)、step=step×2とし(ステップ609)、ステップ602に戻る。当該処理は、2番目のパリティパケットを基準にパンクチャさせると、1番目のパリティパケットが消滅し、次に、2,4,6,…と順にパンクチャさせていくことにより、全て偶数番目のパリティパケットのパンクチャが終わったら、残ったパリティパケットの中で先頭から偶数番目のパケットがパンクチャされる。つまり、最初の1段目で2,4,6,8,…がパンクチャされ、2段目は4,8,16,…がパンクチャされる。j≦mの場合は(ステップ606,No)、j=j+stepとし(ステップ607)、ステップ603に移行する。   The jth parity packet is punctured (step 603), and cnt is set to cnt = cnt + 1 (step 604). It is determined whether or not the number of columns of the current matrix matches the number of columns of the child matrix. If they match (step 605, Yes), the process ends. If they do not match (step 605, No), j is predetermined. (J> m) (step 606, Yes), j0 = j0 × 2 (step 608), step = step × 2 (step 609), and the process returns to step 602. In this process, when the second parity packet is punctured as a reference, the first parity packet disappears, and then punctured in order of 2, 4, 6,. When the puncturing is completed, the even-numbered packets from the top among the remaining parity packets are punctured. That is, 2,4,6,8, ... is punctured in the first stage, and 4,8,16, ... is punctured in the second stage. If j ≦ m (step 606, No), j = j + step is set (step 607), and the process proceeds to step 603.

次に、行列交換パケットの情報に基づいて、検査行列のアルゴリズム生成(スクラッチ型)の処理を図20を用いて説明する。   Next, a process for generating a check matrix algorithm (scratch type) based on information of the matrix exchange packet will be described with reference to FIG.

まず、親行列の列数をNとし、子行列の列数をMとする(ステップ701)。num_deg1=floor[N×(列重み割合)]、deg1=列重み1、deg2=列重み2とする(ステップ702)。j=0とし(ステップ703)、検査行列H1=全要素が例のN×(N-M)行列を求める(ステップ704)。更に検査行列H2=M×Mの階段行列を求める(ステップ705)。jが子行列の行数M以上である場合は(ステップ706,No)、検査行列を[H1|H2]として(ステップ707)、当該処理を終了する。jがMより小さい場合は(ステップ706、Yes)、j<num_deg1であるか判定し、そうである場合には(ステップ708,Yes)、検査行列H1の第j列からランダムにdeg1個の列を選び、それらを非零要素に設定し(ステップ709)、j=j+1として(ステップ711)、ステップ706に移行する。j≧num_deg1である場合は(ステップ708、No)、H1の第j列からランダムにdeg2個の列を選び、それらを非零要素に設定し(ステップ710)、j=j+1として(ステップ711)、ステップ706に移行する。   First, N is the number of columns in the parent matrix and M is the number of columns in the child matrix (step 701). num_deg1 = floor [N × (column weight ratio)], deg1 = column weight 1, and deg2 = column weight 2 (step 702). j = 0 is set (step 703), and the check matrix H1 = N × (N−M) matrix in which all elements are examples is obtained (step 704). Further, a step matrix of a check matrix H2 = M × M is obtained (step 705). If j is equal to or greater than the number of rows M of the child matrix (step 706, No), the check matrix is set to [H1 | H2] (step 707), and the process is terminated. If j is smaller than M (step 706, Yes), it is determined whether j <num_deg1. If so (step 708, Yes), deg1 columns are randomly selected from the jth column of the check matrix H1. Are set to non-zero elements (step 709), j = j + 1 is set (step 711), and the process proceeds to step 706. If j ≧ num_deg1 (step 708, No), randomly select deg2 columns from the jth column of H1, set them as non-zero elements (step 710), and set j = j + 1 (step 711), the process proceeds to step 706.

本実施の形態では、複数あるH行列の交換方法を統合的に扱うことで、幅広い場面への適用が可能である。さらに、パンクチャ処理による符号化率の制御を行う伝送方式を前提にしているため、ネットワーク状況や伝送データ帯域によって最適な誤り訂正(通信路上でのパケット消失を回復できる最小の符号化率を持つ行列を用いた誤り訂正)が可能である。また、送信側及び受信側で同じ行列を構成し、交換するのに必要十分かつ容量最小な情報(送信器、受信器上で同じ行列を構成するのに必要となる情報)のみを共有し、行列交換に関わるオーバヘッドを最小限に抑えることが可能となる。   In the present embodiment, it is possible to apply to a wide range of scenes by integrally dealing with a plurality of H matrix exchange methods. Furthermore, because it assumes a transmission method that controls the coding rate by puncture processing, optimal error correction depending on the network conditions and transmission data bandwidth (a matrix with the minimum coding rate that can recover packet loss on the communication path) (Error correction using) is possible. In addition, the same matrix is configured on the transmission side and the reception side, and only the information necessary for exchanging and the minimum capacity (information necessary for configuring the same matrix on the transmitter and the receiver) is shared, It is possible to minimize the overhead associated with matrix exchange.

例えば、LDPCで一般に使われている行列ファイル形式であるalit形式では、符号長n=1125、パリティ数m=125の行列データは30キロバイトを、上記の「アルゴリズムを生成後にパンクチャ処理を行う方式」を用いることにより、13バイトに低減することが可能となる。   For example, in the alit format, which is a matrix file format commonly used in LDPC, the matrix data with a code length of n = 1125 and the number of parity m = 125 is 30 kilobytes. By using, it can be reduced to 13 bytes.

なお、上記の図7〜図9の処理を行う検査行列生成器、図18〜図20に示す検査行列生成器の処理をプログラムとして構築し、検査行列生成器として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。   The check matrix generator that performs the processes of FIGS. 7 to 9 and the check matrix generator processes shown in FIGS. 18 to 20 are constructed as a program and installed in a computer that is used as the check matrix generator. It can be executed or distributed via a network.

本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。   The present invention is not limited to the above-described embodiments, and various modifications and applications are possible within the scope of the claims.

1 検査行列生成器
2 誤り訂正符号器
3 送信器
4 2元消失通信路
5 受信器
6 誤り訂正復号器
10A,10B 検査行列生成器
20A、20B 検査行列プール
DESCRIPTION OF SYMBOLS 1 Check matrix generator 2 Error correction encoder 3 Transmitter 4 Dual erasure channel 5 Receiver 6 Error correction decoder 10A, 10B Check matrix generator 20A, 20B Check matrix pool

Claims (1)

誤り訂正符号を用いた伝送システムにおいて、誤り訂正符号の検査行列を生成する誤り訂正符号方法であって、
誤り訂正符号化を行う装置の記憶手段上において、
与えられたH行列(以下、「根行列H」と記す)に対して大きさを拡張し、新たに追加された領域(以下、「拡張領域」と記す)の要素を全て零に設定する初期化ステップと、
前記拡張領域に非零要素の密度が均一になるように最小ループ局所的最大化アルゴリズムを用いて、前記根行列の非零要素を該拡張領域に移動する根行列拡張ステップと、
を行い、
前記初期化ステップにおいて、
前記根行列Hに含まれる疎行列H1の行数m1を(m0+m1)(但し、m0はH1のパリティ数、m1は追加されたパリティ数)行に伸張し、前記拡張領域の要素を全て零に設定し、
前記根行列Hに含まれる階段行列H2の大きさを(m0+m1)×(m0+m1)に伸張した階段行列H2’を生成し、
H’=[H1’|H2’](但し、H1’は拡張された行列)とし、
前記根行列拡張ステップにおいて、
前記根行列中で非零要素から始まり関係する行及び列を辿り元に戻る経路のうち最小の距離となるgirthを持つ非零要素の列番号を抽出し、このときのgirth値をmin_girthとし、
最小のgirthを構成する要素の行番号をiとし、
前記H1’に追加された前記拡張領域に属する第D列内で前記girthを最大にするようにi行D列の非零要素を該拡張領域に移動することを特徴とする誤り訂正符号方法。
An error correction code method for generating a parity check matrix of an error correction code in a transmission system using an error correction code,
On the storage means of the device that performs error correction coding,
The initial value that expands the size of a given H matrix (hereinafter referred to as “root matrix H”) and sets all the elements of the newly added region (hereinafter referred to as “extended region”) to zero. Step,
A root matrix expansion step of moving non-zero elements of the root matrix to the extension region using a minimum loop local maximization algorithm so that the density of non-zero elements in the extension region is uniform;
The stomach line,
In the initialization step,
The number of rows m1 of the sparse matrix H1 included in the root matrix H is expanded to (m0 + m1) (where m0 is the number of parity of H1 and m1 is the number of added parity), and all the elements of the extension region are expanded. Set to zero,
A step matrix H2 ′ is generated by expanding the size of the step matrix H2 included in the root matrix H to (m0 + m1) × (m0 + m1);
H '= [H1' | H2 '] (where H1' is an expanded matrix)
In the root matrix expansion step,
Extracting the column number of the non-zero element having the girth which is the minimum distance from the path returning to the original starting from the non-zero element in the root matrix, and the girth value at this time is min_girth,
The line number of the elements that make up the smallest girth is i,
An error correction coding method , wherein a non-zero element of i rows and D columns is moved to the extension region so as to maximize the girth within the D-th column belonging to the extension region added to H1 ′ .
JP2013241198A 2013-11-21 2013-11-21 Error correction code method Active JP5749784B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013241198A JP5749784B2 (en) 2013-11-21 2013-11-21 Error correction code method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013241198A JP5749784B2 (en) 2013-11-21 2013-11-21 Error correction code method

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2015079672A Division JP5901819B2 (en) 2015-04-09 2015-04-09 Error correction code method and system

Publications (2)

Publication Number Publication Date
JP2015103866A JP2015103866A (en) 2015-06-04
JP5749784B2 true JP5749784B2 (en) 2015-07-15

Family

ID=53379272

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013241198A Active JP5749784B2 (en) 2013-11-21 2013-11-21 Error correction code method

Country Status (1)

Country Link
JP (1) JP5749784B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7124276B2 (en) 2017-08-14 2022-08-24 富士通株式会社 Transmission device and error correction method
CN111464191A (en) * 2020-05-25 2020-07-28 重庆邮电大学 RC-L DPC code construction method based on matrix expansion and Fibonacci sequence

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8132072B2 (en) * 2006-01-06 2012-03-06 Qualcomm Incorporated System and method for providing H-ARQ rate compatible codes for high throughput applications
KR100833515B1 (en) * 2006-12-05 2008-05-29 한국전자통신연구원 Parity check matrix generating method, encoding/decoding method for ldpc code with variable information length and apparatus using the same
CN102870330B (en) * 2010-04-27 2015-03-25 日本电气株式会社 Coding device, error-correction code configuration method, and program thereof

Also Published As

Publication number Publication date
JP2015103866A (en) 2015-06-04

Similar Documents

Publication Publication Date Title
US11509414B2 (en) Method and apparatus for encoding data using a polar code
US20210376856A1 (en) Apparatus and method for channel encoding/decoding in communication or broadcasting system
JP5506099B2 (en) Channel coding method and apparatus in communication system using low density parity check code
CN106685586B (en) Method and apparatus for generating low density parity check code for transmission in a channel
JP5216099B2 (en) Encoding method and apparatus for low-density generation matrix code, and decoding method and apparatus
CN110114978B (en) Efficient decodable QC-LDPC codes
US8996965B2 (en) Error correcting decoding device and error correcting decoding method
US20100325511A1 (en) Method of generating parity-check matrix, encoding/decoding method for low density parity-check code with variable information length and variable code rate and apparatus using the same
JPWO2007108396A1 (en) Communication device, decoding device, information transmission method, and decoding method
KR20080033381A (en) Test matrix generating method, encoding method, decoding method, communication apparatus, communication system, encoder and decoder
EP2777164B1 (en) Generation of a low-density parity check matrix from a base matrix by lifting, scaling and row separation
KR102583534B1 (en) Apparatus and method for channel encoding/decoding in communication or broadcasting system
CN108270510A (en) Communication means and communication equipment based on LDPC code
JP5749784B2 (en) Error correction code method
CN107733440B (en) Polygonal structured LDPC processing method and device
JP5901819B2 (en) Error correction code method and system
WO2008069460A1 (en) Method of generating parity-check matrix, encoding/decoding method for low density parity-check code with variable information length and variable code rate and apparatus using the same
EP3542481B1 (en) Apparatus and method for channel encoding/decoding in communication or broadcasting system
CN111527705B (en) Channel code construction for decoder reuse
WO2017214851A1 (en) Signal transfer method, transmitting terminal, and receiving terminal
CN110100402B (en) Apparatus and method for channel encoding/decoding in communication or broadcasting system
CN108234069B (en) Low-bit-rate data sending method and device
KR101304242B1 (en) Method of distributed source encoding and decoding using low-density parity check codes and source revealing method, and apparatus for performing the same

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150409

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150512

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150514

R150 Certificate of patent or registration of utility model

Ref document number: 5749784

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150