JP2007036776A - Decoding apparatus and decoding method - Google Patents

Decoding apparatus and decoding method Download PDF

Info

Publication number
JP2007036776A
JP2007036776A JP2005218331A JP2005218331A JP2007036776A JP 2007036776 A JP2007036776 A JP 2007036776A JP 2005218331 A JP2005218331 A JP 2005218331A JP 2005218331 A JP2005218331 A JP 2005218331A JP 2007036776 A JP2007036776 A JP 2007036776A
Authority
JP
Japan
Prior art keywords
decoding
result
matrix
code
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.)
Withdrawn
Application number
JP2005218331A
Other languages
Japanese (ja)
Inventor
Mineshi Yokogawa
峰志 横川
Misa Nakane
美沙 中根
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2005218331A priority Critical patent/JP2007036776A/en
Publication of JP2007036776A publication Critical patent/JP2007036776A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To improve the throughput of a decoding apparatus. <P>SOLUTION: A receiving part 811 simultaneously stores two receiving data D416 in each operation and simultaneously supplies six already stored receiving data D811 to a calculation part 415 in each operation. The calculation part 415 executes second operation, by using the receiving data D811 and a decoding halfway result D414, obtained as a result of first operation and a calculation part 412 executes the first operation by using a decoding halfway result D411, obtained as a result of the second operation and a decoding halfway result D413, obtained as a result of the preceding first operation. A decoding halfway result D415, obtained as a result of the final second operation is supplied to an output part 812, which stores the decoding halfway result D415. The output part 812 simultaneously reads out two already stored halfway results D415 as decoded results in each operation and outputs the read decoded results. This invention can be applied to tuners that receive satellite broadcasting, for instance. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、復号装置および復号方法に関し、特に、低密度パリティ検査符号(LDPC符号)による符号化が施された符号の復号を行う復号装置および復号方法に関する。   The present invention relates to a decoding device and a decoding method, and more particularly, to a decoding device and a decoding method for decoding a code that has been encoded by a low density parity check code (LDPC code).

近年、例えば、移動体通信や深宇宙通信といった通信分野、及び地上波又は衛星ディジタル放送といった放送分野の研究が著しく進められているが、それに伴い、誤り訂正符号化及び復号の効率化を目的として符号理論に関する研究も盛んに行われている。   In recent years, for example, the field of communication such as mobile communication and deep space communication and the field of broadcasting such as terrestrial or satellite digital broadcasting have been remarkably advanced. Research on coding theory is also actively conducted.

符号性能の理論的限界としては、いわゆるシャノン(C. E. Shannon)の通信路符号化定理によって与えられるシャノン限界が知られている。符号理論に関する研究は、このシャノン限界に近い性能を示す符号を開発することを目的として行われている。近年では、シャノン限界に近い性能を示す符号化方法として、例えば、並列連接畳み込み符号(PCCC(Parallel Concatenated Convolutional Codes))や、縦列連接畳み込み符号(SCCC(Serially Concatenated Convolutional Codes))といった、いわゆるターボ符号化(Turbo coding)と呼ばれる手法が開発されている。また、これらのターボ符号が開発される一方で、古くから知られる符号化方法である低密度パリティ検査符号(Low Density Parity Check codes)(以下、LDPC符号という)が脚光を浴びつつある。   As the theoretical limit of code performance, the Shannon limit given by the so-called Shannon (C. E. Shannon) channel coding theorem is known. Research on code theory is being conducted with the goal of developing codes that exhibit performance close to the Shannon limit. In recent years, encoding methods that exhibit performance close to the Shannon limit include, for example, so-called turbo codes such as parallel concatenated convolutional codes (PCCC (Parallel Concatenated Convolutional Codes)) and tandem concatenated convolutional codes (SCCC). A technique called Turbo coding has been developed. While these turbo codes are being developed, low density parity check codes (hereinafter referred to as LDPC codes), which is an encoding method that has been known for a long time, are attracting attention.

LDPC符号は、R. G. Gallagerによる「R. G. Gallager, "Low Density Parity Check Codes", Cambridge, Massachusetts: M. I. T. Press, 1963」において最初に提案されたものであり、その後、「D. J. C. MacKay, "Good error correcting codes based on very sparse matrices", IEEE Trans. Inf. Theory, IT-45, pp. 399-431, 1999」や、「M. G. Luby, M. Mitzenmacher, M. A. Shokrollahi and D. A. Spielman, "Analysis of low density codes and improved designs using irregular graphs", in Proceedings of ACM Symposium on Theory of Computing, pp. 249-258, 1998」等において再注目されるに至ったものである。   The LDPC code was first proposed in "RG Gallager," Low Density Parity Check Codes ", Cambridge, Massachusetts: MIT Press, 1963 by RG Gallager, and then" DJC MacKay, "Good error correcting codes based on very sparse matrices ", IEEE Trans. Inf. Theory, IT-45, pp. 399-431, 1999" and "MG Luby, M. Mitzenmacher, MA Shokrollahi and DA Spielman," Analysis of low density codes and improved designs using irregular graphs ", in Proceedings of ACM Symposium on Theory of Computing, pp. 249-258, 1998".

LDPC符号は、近年の研究により、ターボ符号等と同様に、符号長を長くしていくにしたがって、シャノン限界に近い性能が得られることがわかりつつある。また、LDPC符号は、最小距離が符号長に比例するという性質があることから、その特徴として、ブロック誤り確率特性がよく、さらに、ターボ符号等の復号特性において観測される、いわゆるエラーフロア現象が殆ど生じないことも利点として挙げられる。   Recent studies have shown that LDPC codes can achieve performance close to the Shannon limit as the code length is increased, similar to turbo codes and the like. In addition, since the LDPC code has the property that the minimum distance is proportional to the code length, its characteristic is that the block error probability characteristic is good, and furthermore, the so-called error floor phenomenon observed in the decoding characteristic such as turbo code is observed. An advantage is that it hardly occurs.

以下、このようなLDPC符号について具体的に説明する。なお、LDPC符号は、線形符号であり、必ずしも2元である必要はないが、ここでは、2元であるものとして説明する。   Hereinafter, such an LDPC code will be specifically described. Note that the LDPC code is a linear code and does not necessarily need to be binary, but will be described here as being binary.

LDPC符号は、そのLDPC符号を定義する検査行列(parity check matrix)が疎なものであることを最大の特徴とするものである。ここで、疎な行列とは、行列のコンポーネントの"1"の個数が非常に少なく構成されるものであり、疎な検査行列をHで表すものとすると、そのような検査行列Hとしては、例えば、図1に示すように、各列のハミング重み("1"の数)(weight)が"3"であり、且つ、各行のハミング重みが"6"であるもの等がある。   The LDPC code is characterized by the fact that the parity check matrix that defines the LDPC code is sparse. Here, the sparse matrix is configured so that the number of “1” of the matrix components is very small. If the sparse check matrix is represented by H, such a check matrix H is as follows: For example, as shown in FIG. 1, the hamming weight (number of “1” s) (weight) of each column is “3”, and the hamming weight of each row is “6”.

このように、各行及び各列のハミング重みが一定である検査行列Hによって定義されるLDPC符号は、レギュラーLDPC符号と称される。一方、各行及び各列のハミング重みが一定でない検査行列Hによって定義されるLDPC符号は、イレギュラーLDPC符号と称される。   Thus, an LDPC code defined by a parity check matrix H in which the Hamming weight of each row and each column is constant is referred to as a regular LDPC code. On the other hand, an LDPC code defined by a parity check matrix H in which the Hamming weight of each row and each column is not constant is referred to as an irregular LDPC code.

このようなLDPC符号への符号化は、検査行列Hに基づいて生成行列Gを生成し、この生成行列Gを2元の情報メッセージに対して乗算することによって符号語を生成することで実現される。具体的には、LDPC符号による符号化を行う符号化装置は、まず、検査行列Hの転置行列HTとの間に、式GHT=0が成立する生成行列Gを算出する。ここで、生成行列Gが、k×n行列(k行n列の行列)である場合には、検査行列Hは、n-k行n列の行列である。 Such encoding into an LDPC code is realized by generating a generator matrix G based on the parity check matrix H and generating a codeword by multiplying the binary information message by the generator matrix G. The Specifically, the encoding device which performs encoding by LDPC codes, first, between the transposed matrix H T of the parity check matrix H, calculates a generator matrix G which formula GH T = 0 is established. Here, when the generation matrix G is a k × n matrix (a matrix of k rows and n columns), the check matrix H is a matrix of nk rows and n columns.

なお、例えば、nビットの符号語cが、kビットの情報メッセージuに続けて、n-kビットのパリティビットを配置したビット列に一致する組織符号である場合に、n-k行n列の検査行列Hにおいて、nビットの符号語cのうちのkビットの情報メッセージuに対応するn-k行k列の部分を情報部というとともに、n-kビットのパリティビットに対応するn-k行n-k列の部分をパリティ部ということとすると、パリティ部が、下三角行列または上三角行列になっていれば、情報メッセージuのLDPC符号への符号化は、検査行列Hを用いて行うことができる。   For example, when an n-bit codeword c is a systematic code that matches a bit string in which nk-bit parity bits are arranged following the k-bit information message u, in a check matrix H of nk rows and n columns The portion of nk rows and k columns corresponding to the k-bit information message u in the n-bit code word c is referred to as the information portion, and the portion of the nk rows and nk columns corresponding to the nk bit parity bits is referred to as the parity portion. Then, if the parity part is a lower triangular matrix or an upper triangular matrix, encoding of the information message u into an LDPC code can be performed using the check matrix H.

即ち、例えば、検査行列Hが、図2に示すように、情報部と、下三角行列のパリティ部とで構成され、パリティ部の下三角の部分の要素が、すべて1であるとすると、符号語cのパリティビットの1番目のビットは、情報メッセージuのうちの、検査行列Hの情報部の第1行において1になっている要素に対応するビットのEXOR(排他的論理和)を演算した値となる。   That is, for example, as shown in FIG. 2, if the parity check matrix H is composed of an information part and a parity part of a lower triangular matrix, and the elements of the lower triangular part of the parity part are all 1, The first bit of the parity bit of the word c calculates the EXOR (exclusive OR) of the bit corresponding to the element which is 1 in the first row of the information part of the check matrix H of the information message u It becomes the value.

また、符号語cのパリティビットの2番目のビットは、情報メッセージuのうちの、検査行列Hの情報部の第2行において1になっている要素に対応するビットと、パリティビットの1番目のビットのEXORを演算した値となる。   The second bit of the parity bit of the code word c is the bit corresponding to the element that is 1 in the second row of the information part of the check matrix H of the information message u and the first of the parity bits. This is the value obtained by calculating the EXOR of the bits.

さらに、符号語cのパリティビットの3番目のビットは、情報メッセージuのうちの、検査行列Hの情報部の第3行において1になっている要素に対応するビットと、パリティビットの1番目および2番目のビットのEXORを演算した値となる。   Further, the third bit of the parity bit of the codeword c is the bit corresponding to the element that is 1 in the third row of the information part of the check matrix H of the information message u and the first of the parity bits. And the value obtained by calculating EXOR of the second bit.

以下、同様にして、符号語cのパリティビットのi番目のビットは、情報メッセージuのうちの、検査行列Hの情報部の第i行において1になっている要素に対応するビットと、パリティビットの1乃至i-1番目のビットのEXORを演算した値となる。   In the same manner, the i-th bit of the parity bit of the codeword c is the same as the bit corresponding to the element corresponding to the element that is 1 in the i-th row of the information part of the parity check matrix H of the information message u, and the parity. This is a value obtained by calculating the EXOR of the 1st to i-1th bits.

以上のようにして、n-kビットのパリティビットを求め、kビットの情報メッセージuに続けて配置することにより、nビットの符号語cを得ることができる。   As described above, n-k parity bits are obtained and arranged after the k-bit information message u, whereby an n-bit code word c can be obtained.

一方、LDPC符号の復号は、Gallagerが確率復号(Probabilistic Decoding)と称して提案したアルゴリズムであって、バリアブルノード(variable node(メッセージノード(message node)とも呼ばれる。))と、チェックノード(check node)とからなる、いわゆるタナーグラフ(Tanner graph)上での確率伝播(belief propagation)によるメッセージ・パッシング・アルゴリズムによって行うことが可能である。ここで、以下、適宜、バリアブルノードとチェックノードを、単に、ノードともいう。   On the other hand, decoding of an LDPC code is an algorithm proposed by Gallager called probabilistic decoding (Probabilistic Decoding), which is a variable node (also called a message node) and a check node (check node). ) And a message passing algorithm based on belief propagation on a so-called Tanner graph. Here, hereinafter, the variable node and the check node are also simply referred to as nodes as appropriate.

しかしながら、確率復号においては、各ノード間で受け渡されるメッセージが実数値であることから、解析的に解くためには、連続した値をとるメッセージの確率分布そのものを追跡する必要があり、非常に困難を伴う解析を必要とすることになる。そこで、Gallagerは、LDPC符号の復号アルゴリズムとして、アルゴリズムA又はアルゴリズムBを提案している。   However, in probabilistic decoding, since the message passed between each node is a real value, in order to solve it analytically, it is necessary to track the probability distribution itself of messages that take consecutive values. It will require analysis with difficulty. Therefore, Gallager has proposed algorithm A or algorithm B as a decoding algorithm for LDPC codes.

LDPC符号の復号は、一般的には、図3に示すような手順にしたがって行われる。なお、ここでは、受信値をU0とし、チェックノードから出力されるメッセージをujとし、バリアブルノードから出力されるメッセージをviとする。また、ここでは、メッセージとは、値の"0"らしさを、いわゆる対数尤度比(log likelihood ratio)で表現した実数値である。さらに、受信値U0の"0"らしさの対数尤度比を、受信データu0iと表すこととする。 The decoding of the LDPC code is generally performed according to a procedure as shown in FIG. Here, the received value is U 0 , the message output from the check node is u j, and the message output from the variable node is v i . Further, here, the message is a real value expressing the value of “0” as a so-called log likelihood ratio. Further, the log likelihood ratio of “0” likelihood of the received value U 0 is represented as received data u 0i .

まず、LDPC符号の復号においては、図3に示すように、ステップS11において、受信値U0(受信データu0i)が受信され、メッセージujが"0"に初期化されるとともに、繰り返し処理のカウンタとしての整数をとる変数kが"0"に初期化され、ステップS12に進む。ステップS12において、受信値U0(受信データu0i)に基づいて、式(1)に示す演算を行うことによってメッセージviが求められ、さらに、このメッセージviに基づいて、式(2)に示す演算を行うことによってメッセージujが求められる。 First, in decoding of an LDPC code, as shown in FIG. 3, in step S11, a received value U 0 (received data u 0i ) is received, a message u j is initialized to “0”, and an iterative process is performed. The variable k, which takes an integer as a counter, is initialized to “0”, and the process proceeds to step S12. In step S12, based on the received value U 0 (received data u 0i ), the message v i is obtained by performing the calculation shown in the equation (1). Further, based on this message v i , the equation (2) The message u j is obtained by performing the calculation shown in FIG.

Figure 2007036776
・・・(1)
Figure 2007036776
... (1)

Figure 2007036776
・・・(2)
Figure 2007036776
... (2)

ここで、式(1)と式(2)におけるdvとdcは、それぞれ、検査行列Hの縦方向(行方向)と横方向(列方向)の"1"の個数を示す任意に選択可能とされるパラメータであり、例えば、(3,6)符号の場合には、dv=3,dc=6となる。 Here, d v and d c in equations (1) and (2) are arbitrarily selected to indicate the number of “1” s in the vertical direction (row direction) and horizontal direction (column direction) of the parity check matrix H, respectively. For example, in the case of a (3, 6) code, d v = 3 and d c = 6.

なお、式(1)または(2)の演算においては、それぞれ、メッセージを出力しようとする枝(edge)から入力されたメッセージを、和または積演算のパラメータとしては用いないことから、和または積演算の範囲が、1乃至dv-1または1乃至dc-1となっている。また、式(2)に示す演算は、実際には、2入力v1,v2に対する1出力で定義される式(3)に示す関数R(v1,v2)のテーブルを予め作成しておき、これを式(4)に示すように連続的(再帰的)に用いることによって行われる。 Note that in the calculation of the expression (1) or (2), the message input from the edge to which the message is to be output is not used as a parameter for the sum or product operation. The range of operation is 1 to d v -1 or 1 to d c -1. In addition, the calculation shown in equation (2) actually creates a table of function R (v 1 , v 2 ) shown in equation (3) defined by one output for two inputs v 1 and v 2 in advance. This is done by using it continuously (recursively) as shown in equation (4).

Figure 2007036776
・・・(3)
Figure 2007036776
... (3)

Figure 2007036776
・・・(4)
Figure 2007036776
... (4)

ステップS12では、さらに、変数kが"1"だけインクリメントされ、ステップS13に進む。ステップS13では、変数kが所定の繰り返し復号回数N以上であるか否かが判定される。ステップS13において、変数kがN以上ではないと判定された場合、ステップS12に戻り、以下、同様の処理が繰り返される。   In step S12, the variable k is further incremented by “1”, and the process proceeds to step S13. In step S13, it is determined whether or not the variable k is equal to or greater than a predetermined iterative decoding count N. If it is determined in step S13 that the variable k is not equal to or greater than N, the process returns to step S12, and the same processing is repeated thereafter.

また、ステップS13において、変数kがN以上であると判定された場合、ステップS14に進み、式(5)に示す演算を行うことによって最終的に出力する復号結果としてのメッセージvが求められて出力され、LDPC符号の復号処理が終了する。   If it is determined in step S13 that the variable k is greater than or equal to N, the process proceeds to step S14, and the message v as the decoding result that is finally output is obtained by performing the calculation shown in equation (5). The LDPC code decoding process ends.

Figure 2007036776
・・・(5)
Figure 2007036776
... (5)

ここで、式(5)の演算は、式(1)の演算とは異なり、バリアブルノードに接続している全ての枝からの入力メッセージを用いて行われる。   Here, unlike the operation of equation (1), the operation of equation (5) is performed using input messages from all branches connected to the variable node.

このようなLDPC符号の復号は、例えば(3,6)符号の場合には、図4に示すように、各ノード間でメッセージの授受が行われる。なお、図4における"="で示すノード(バリアブルノード)では、式(1)に示した演算が行われ、"+"で示すノード(チェックノード)では、式(2)に示した演算が行われる。特に、アルゴリズムAにおいては、メッセージを2元化し、"+"で示すノードにて、dc-1個の入力メッセージの排他的論理和演算を行い、"="で示すノードにて、受信値Rに対して、dv-1個の入力メッセージが全て異なるビット値であった場合には、符号を反転して出力する。 For example, in the case of a (3, 6) code, such an LDPC code is decoded as shown in FIG. In FIG. 4, the node indicated by “=” (variable node) performs the calculation shown in Expression (1), and the node indicated by “+” (check node) performs the calculation shown in Expression (2). Done. In particular, in algorithm A, the message is binarized, and the exclusive OR operation of d c −1 input messages is performed at the node indicated by “+”, and the received value is obtained at the node indicated by “=”. For R, if d v −1 input messages all have different bit values, the sign is inverted and output.

また、一方で、近年、LDPC符号の復号の実装法に関する研究も行われている。実装方法について述べる前に、まず、LDPC符号の復号を摸式化して説明する。   On the other hand, in recent years, research on an implementation method for decoding an LDPC code is also being conducted. Before describing the mounting method, first, decoding of an LDPC code will be schematically described.

図5は、(3,6)LDPC符号(符号化率1/2、符号長12)の検査行列H(parity check matrix)の例である。LDPC符号の検査行列Hは、図6のように、タナーグラフを用いて書き表すことができる。ここで、図6において、"+"で表されるのが、チェックノードであり、"="で表されるのが、バリアブルノードである。チェックノードとバリアブルノードは、それぞれ、検査行列Hの行と列に対応する。チェックノードとバリアブルノードとの間の結線は、枝(edge)であり、検査行列Hの"1"に相当する。即ち、検査行列Hの第j行第i列のコンポーネントが1である場合には、図6において、上からi番目のバリアブルノード("="のノード)と、上からj番目のチェックノード("+"のノード)とが、枝により接続される。枝は、バリアブルノードに対応する符号ビットが、チェックノードに対応する拘束条件を持つことを表す。なお、図6は、図5の検査行列Hのタナーグラフとなっている。   FIG. 5 is an example of a parity check matrix (3, 6) LDPC code (coding rate 1/2, code length 12). The parity check matrix H of the LDPC code can be written using a Tanner graph as shown in FIG. Here, in FIG. 6, “+” represents a check node, and “=” represents a variable node. Check nodes and variable nodes correspond to the rows and columns of the parity check matrix H, respectively. The connection between the check node and the variable node is an edge and corresponds to “1” of the parity check matrix H. That is, when the component in the j-th row and the i-th column of the check matrix H is 1, in FIG. 6, the i-th variable node from the top ("=" node) and the j-th check node from the top ( Are connected by a branch. The branch represents that the sign bit corresponding to the variable node has a constraint condition corresponding to the check node. 6 is a Tanner graph of the parity check matrix H in FIG.

LDPC符号の復号方法であるサムプロダクトアルゴリズム(Sum Product Algorithm)は、バリアブルノードの演算とチェックノードの演算とを繰り返し行う。   The Sum Product Algorithm, which is an LDPC code decoding method, repeatedly performs a variable node operation and a check node operation.

バリアブルノードでは、図7のように、式(1)の演算を行う。すなわち、図7において、計算しようとしている枝に対応するメッセージviは、バリアブルノードに繋がっている残りの枝からのメッセージu1およびu2と、受信データu0iを用いて計算される。他の枝に対応するメッセージも同様に計算される。 In the variable node, the calculation of Expression (1) is performed as shown in FIG. That is, in FIG. 7, the message v i corresponding to the branch to be calculated is calculated using the messages u 1 and u 2 from the remaining branches connected to the variable node and the received data u 0i . Messages corresponding to other branches are similarly calculated.

チェックノードの演算について説明する前に、式(2)を、式a×b=exp{ln(|a|)+ln(|b|)}×sign(a)×sign(b)の関係を用いて、式(6)のように書き直す。但し、sign(x)は、x≧0のとき1であり、x<0のとき-1である。   Before explaining the operation of the check node, the expression (2) is changed to the expression a × b = exp {ln (| a |) + ln (| b |)} × sign (a) × sign (b). And rewrite as equation (6). However, sign (x) is 1 when x ≧ 0, and −1 when x <0.

Figure 2007036776
・・・(6)
Figure 2007036776
... (6)

更に、x≧0において、φ(x)=ln(tanh(x/2))と定義すると、φ-1(x)=2tanh-1(e-x)であるから、式(6)は、式(7)のように書くことができる。 Furthermore, when x ≧ 0 and φ (x) = ln (tanh (x / 2)) is defined, φ −1 (x) = 2 tanh −1 (e −x ), so equation (6) is It can be written as equation (7).

Figure 2007036776
・・・(7)
Figure 2007036776
... (7)

チェックノードでは、図8のように、式(7)の演算を行う。すなわち、図8において、計算しようとしている枝に対応するメッセージujは、チェックノードに繋がっている残りの枝からのメッセージv1,v2,v3,v4,v5を用いて計算される。他の枝に対応するメッセージも同様に計算される。 In the check node, the calculation of Expression (7) is performed as shown in FIG. That is, in FIG. 8, the message u j corresponding to the branch to be calculated is calculated using the messages v 1 , v 2 , v 3 , v 4 , v 5 from the remaining branches connected to the check node. The Messages corresponding to other branches are similarly calculated.

なお、関数φ(x)は、φ(x)=ln((ex+1)/(ex-1))とも表すことができ、x>0において、φ(x)=φ-1(x)である。関数φ(x)およびφ-1(x)をハードウェアに実装する際には、LUT(Look Up Table)を用いて実装される場合があるが、両者共に同一のLUTとなる。 The function φ (x) can also be expressed as φ (x) = ln ((e x +1) / (e x −1)). When x> 0, φ (x) = φ −1 ( x). When the functions φ (x) and φ −1 (x) are mounted on hardware, they may be mounted using a LUT (Look Up Table), but both are the same LUT.

サムプロダクトアルゴリズムをハードウェアに実装する場合、式(1)で表されるバリアブルノード演算および式(7)で表されるチェックノード演算を、適度な回路規模と動作周波数で繰り返し行うことが必要である。   When the thumb product algorithm is implemented in hardware, it is necessary to repeatedly perform the variable node calculation represented by Expression (1) and the check node calculation represented by Expression (7) with an appropriate circuit scale and operating frequency. is there.

復号装置の実装の例としては、各ノードの演算を1つずつ順次行うことによって、LDPC符号の復号を行う(full serial decoding)復号装置、各ノードの演算を1つや全てでもない、ある数のノードの演算を同時に行う(partly parallel decoding)復号装置(特許文献1)、および全ノードの演算を同時に行うことによって復号を行う(full parallel decoding)復号装置(非特許文献1)が提案されている。   As an example of the implementation of a decoding device, a decoding device that performs LDPC code decoding (full serial decoding) by sequentially performing each node operation one by one, a certain number of operations that are not one or all of each node A decoding device (Patent Document 1) that performs node operations simultaneously (partly parallel decoding) and a decoding device that performs decoding by performing operations on all nodes simultaneously (non-patent document 1) have been proposed. .

以下では、各ノードの演算を複数個ずつ順次行うことによって復号を行う場合(partly parallel decoding)の実装法について説明する。   Hereinafter, an implementation method in the case where decoding is performed by sequentially performing a plurality of operations at each node (partly parallel decoding) will be described.

なお、ここでは、例えば、図9の、36(行)×108(列)の検査行列Hで表現される符号(符号化率2/3、符号長108)を復号することとする。図9の検査行列Hの1の数は323であり、従って、そのタナーグラフでは、枝の数は323個となる。ここで、図9の検査行列Hでは、0を、"."で表している。また、図9の検査行列Hは、6×6行列の単位に間隔を空けて表している。   Here, for example, a code (coding rate 2/3, code length 108) represented by a check matrix H of 36 (rows) × 108 (columns) in FIG. 9 is decoded. The number of 1s in the parity check matrix H in FIG. 9 is 323. Therefore, in the Tanner graph, the number of branches is 323. Here, in the parity check matrix H in FIG. 9, 0 is represented by “.”. Also, the parity check matrix H in FIG. 9 is expressed with an interval in units of 6 × 6 matrices.

図9においては、検査行列Hは、6×6の単位行列、その単位行列の1のうち1個以上が0になった行列(以下、適宜、準単位行列という)、単位行列または準単位行列をサイクリックシフト(cyclic shift)した行列(以下、適宜、シフト行列という)、単位行列、準単位行列、またはシフト行列のうちの2以上(複数)の和(以下、適宜、和行列という)、6×6の0行列の組み合わせで表されている。   In FIG. 9, a check matrix H is a 6 × 6 unit matrix, a matrix in which one or more of the unit matrices are 0 (hereinafter referred to as a quasi-unit matrix as appropriate), a unit matrix or a quasi-unit matrix. A cyclic shift matrix (hereinafter referred to as a shift matrix as appropriate), a unit matrix, a quasi-unit matrix, or a sum of two or more of a shift matrix (hereinafter referred to as a sum matrix as appropriate), It is represented by a combination of 6 × 6 zero matrices.

なお、図9の検査行列Hを構成する6×6の単位行列、準単位行列、シフト行列、和行列、0行列を、以下、適宜、構成行列という。   Note that the 6 × 6 unit matrix, quasi-unit matrix, shift matrix, sum matrix, and zero matrix constituting the parity check matrix H in FIG.

図10を参照して、図9の検査行列Hで表現されるLDPC符号を復号する復号装置について説明する。   With reference to FIG. 10, a decoding apparatus for decoding an LDPC code represented by parity check matrix H in FIG. 9 will be described.

図10は、図9の検査行列Hで表現されるLDPC符号を復号する復号装置400の構成の一例を示すブロック図である。   FIG. 10 is a block diagram illustrating an exemplary configuration of decoding apparatus 400 that decodes the LDPC code represented by parity check matrix H in FIG.

復号装置400は、復号途中結果格納用メモリ410、サイクリックシフト回路411、6つの計算器4121乃至計算器4126からなる計算部412、復号途中結果格納用メモリ413、サイクリックシフト回路414、6つの計算器4151乃至計算器4156からなる計算部415、受信用メモリ416、および制御部417から構成される。 The decoding device 400 includes a decoding intermediate result storage memory 410, a cyclic shift circuit 411, a calculation unit 412 including six calculators 412 1 to 412 6 , a decoding intermediate result storage memory 413, a cyclic shift circuit 414, The calculation unit 415 includes six calculators 415 1 to 415 6 , a reception memory 416, and a control unit 417.

ここで、計算器412k(k=1,2,・・・,6)で行われる演算と、計算器415kで行われる演算について、式を用いて説明する。 Here, the calculation performed by the calculator 412 k (k = 1, 2,..., 6) and the calculation performed by the calculator 415 k will be described using equations.

計算部412は、上述した式(7)と、以下に表す式(8)とにしたがう第1の演算を行い、その第1の演算の結果である復号途中結果ujを復号途中結果格納用メモリ413に供給して格納させる。計算部415は、上述した式(5)にしたがう第2の演算を行い、その第2の演算の結果である復号途中結果vを復号途中結果格納用メモリ410に供給して格納させる。 The calculation unit 412 performs the first calculation according to the above-described equation (7) and the following equation (8), and stores the decoding intermediate result u j that is the result of the first calculation for the decoding intermediate result. The data is supplied to the memory 413 and stored. The calculation unit 415 performs the second calculation according to the above-described equation (5), and supplies the decoding intermediate result v, which is the result of the second calculation, to the decoding intermediate result storage memory 410 for storage.

Figure 2007036776
・・・(8)
Figure 2007036776
... (8)

なお、式(8)のudvは、検査行列Hのi列のメッセージを求めようとする枝からのチェックノード演算の途中結果(ここでは、チェックノードのメッセージそのもの)を表している。即ち、udvは、求めたい枝に対応する復号途中結果である。 Note that u dv in Expression (8) represents an intermediate result of a check node calculation from a branch for which a message of i columns of the check matrix H is to be obtained (in this case, the check node message itself). That is, u dv is a decoding intermediate result corresponding to the branch to be obtained.

上述した式(5)にしたがう第2の演算の結果得られる復号途中結果vは、受信データu0iと検査行列Hのi列の各行の1に対応するすべての枝からのチェックノード演算の復号途中結果ujとを加算したものであるので、上述した式(7)に用いられる値viは、式(5)にしたがう第2の演算の結果得られる復号途中結果vから、検査行列Hのi列の、各行の1に対応する枝からのチェックノード演算の復号途中結果ujのうち、メッセージを求めようとする枝からのチェックノード演算の復号途中結果udvを引いた値となる。つまり、式(7)の演算に用いられる値viを求める式(1)の演算は、上述した式(5)と式(8)を組み合わせた演算である。 The decoding intermediate result v obtained as a result of the second operation according to the above equation (5) is the decoding of the check node operation from all branches corresponding to 1 in each row of the i columns of the received data u 0i and the check matrix H. Since the intermediate result u j is added, the value v i used in the above equation (7) is obtained from the decoding intermediate result v obtained as a result of the second operation according to the equation (5) from the check matrix H. In the decoding intermediate result u j of the check node operation from the branch corresponding to 1 of each row in the i column, the value obtained by subtracting the decoding intermediate result u dv of the check node operation from the branch for which a message is to be obtained is obtained. . That is, the calculation of the expression (1) for obtaining the value v i used for the calculation of the expression (7) is a combination of the above expressions (5) and (8).

従って、復号装置400では、計算部412による式(7)および式(8)にしたがう第1の演算と、計算部415による式(5)にしたがう第2の演算とが交互に行われ、計算部415が、最後の第2の演算の結果を復号結果として出力することにより、LDPC符号の繰り返し復号を行うことができる。   Accordingly, in the decoding device 400, the first calculation according to the equations (7) and (8) by the calculation unit 412 and the second calculation according to the equation (5) by the calculation unit 415 are alternately performed, and the calculation is performed. The unit 415 outputs the result of the last second operation as a decoding result, so that it is possible to perform LDPC code iterative decoding.

なお、ここでは、式(7)と式(8)にしたがう第1の演算結果を、復号途中結果ujと記載するが、この復号途中結果ujは、式(7)のチェックノードのメッセージujに等しい。 Here, the first calculation result according to Expression (7) and Expression (8) is described as a decoding intermediate result u j, and this decoding intermediate result u j is the message of the check node in Expression (7). It is equal to u j .

また、第2の演算により求められる式(5)のvは、式(1)のバリアブルノード演算結果viに対して、メッセージを求めようとする枝からのチェックノードのメッセージujを加算したものであるから、検査行列Hの1列(1つのバリアブルノード)に対して、1つだけ求められる。 In addition, v in Expression (5) obtained by the second operation is obtained by adding the message u j of the check node from the branch for which a message is to be obtained to the variable node calculation result v i in Expression (1). Therefore, only one is obtained for one column (one variable node) of the check matrix H.

復号装置400では、計算部412が、計算部415による第2の演算の結果である検査行列Hの列に対応する復号途中結果vを用いて、第1の演算を行い、その演算の結果得られる検査行列Hのi列の、各行の1に対応する枝のメッセージ(各チェックノードが各枝に出力するメッセージ)の枝からのチェックノード演算の復号途中結果ujを復号途中結果格納用メモリ413に格納する。従って、復号途中結果格納用メモリ413の容量は、チェックノード演算の結果を格納する場合と同様に、検査行列Hの1の数(全枝数)と量子化ビット数とを乗算した値となる。 In decoding apparatus 400, calculation unit 412 performs the first calculation using decoding intermediate result v corresponding to the column of parity check matrix H that is the result of the second calculation by calculation unit 415, and obtains the result of the calculation. Decoding intermediate result u j of the check node operation from the branch of the message corresponding to 1 in each row (message output by each check node to each branch) of i columns of the parity check matrix H It stores in 413. Therefore, the capacity of the decoding intermediate result storage memory 413 is a value obtained by multiplying the number of 1 (the number of all branches) of the parity check matrix H and the number of quantization bits as in the case of storing the result of the check node calculation. .

一方、計算部415は、計算部412による第1の演算の結果である検査行列Hのi列の、各行の“1”に対応する復号途中結果ujと受信データu0iを用いて、第2の演算を行い、その演算の結果得られるi列に対応する復号途中結果vを復号途中結果格納用メモリ410に格納する。従って、復号途中結果格納用メモリ410に必要な容量は、検査行列Hの“1”の数より少ない検査行列Hの列数、即ち、LCPC符号の符号長と復号途中結果vの量子化ビット数とを乗算した値となる。 On the other hand, the calculation unit 415 uses the decoding intermediate result u j corresponding to “1” of each row of the i matrix of the parity check matrix H, which is the result of the first calculation by the calculation unit 412, and the received data u 0i . 2 is performed, and the decoding intermediate result v corresponding to the i column obtained as a result of the calculation is stored in the decoding intermediate result storage memory 410. Therefore, the necessary capacity of the decoding intermediate result storage memory 410 is the number of columns of the parity check matrix H smaller than the number of “1” of the parity check matrix H, that is, the code length of the LCPC code and the number of quantization bits of the decoding intermediate result v It becomes the value which multiplied.

その結果、バリアブルノード演算の結果を格納する場合に比べて、復号途中結果格納用メモリ410のメモリ容量を削減することができ、これにより、復号装置400の回路規模を小さくすることができる。   As a result, the memory capacity of the decoding intermediate result storage memory 410 can be reduced as compared with the case where the result of the variable node calculation is stored, whereby the circuit scale of the decoding device 400 can be reduced.

以下、図10の復号装置400の各部の動作について詳細に説明する。   Hereinafter, the operation of each unit of the decoding device 400 of FIG. 10 will be described in detail.

復号途中結果格納用メモリ410には、計算部415から、計算部415による第2の演算の結果である検査行列Hの6つの列に対応する6つの復号途中結果D415が供給され、復号途中結果格納用メモリ410は、計算部415から供給された6つの復号途中結果D415を、第1アドレスから順に格納(記憶)する。   The decoding intermediate result storage memory 410 is supplied with six decoding intermediate results D415 corresponding to the six columns of the check matrix H, which is the result of the second calculation by the calculation unit 415, from the calculation unit 415. The storage memory 410 stores (stores) the six decoding intermediate results D415 supplied from the calculation unit 415 in order from the first address.

即ち、復号途中結果格納用メモリ410の第1アドレスには、検査行列Hの列に対応する復号途中結果のうち、第1列目から第6列目の復号途中結果vが格納される。そして、同様に、第2アドレスには、第7列目から第12列目の復号途中結果vが格納され、第3アドレスには、第13列目から第18列目の復号途中結果が格納される。以後、同様に、第103列目から第108列目までの復号途中結果vが、6個ずつ、第4アドレスから第18アドレスまで格納され、計108個の復号途中結果vが復号途中結果格納用メモリ410に格納される。従って、復号途中結果格納用メモリ410のワード(word)数は、図9の検査行列Hの列数(LDPC符号の符号長)である108を、同時に読み書きする復号途中結果の数である6で割り算した18となる。   That is, the first address of the decoding intermediate result storage memory 410 stores the decoding intermediate results v from the first column to the sixth column among the decoding intermediate results corresponding to the columns of the check matrix H. Similarly, the second address stores the decoding intermediate result v of the seventh column to the twelfth column, and the third address stores the decoding intermediate result of the thirteenth column to the eighteenth column. Is done. Thereafter, in the same manner, decoding intermediate results v from the 103rd column to the 108th column are stored in increments of 6 from the 4th address to the 18th address, and a total of 108 decoding intermediate results v are stored during the decoding. Stored in the memory 410. Therefore, the number of words in the decoding intermediate result storage memory 410 is 6 which is the number of decoding intermediate results simultaneously reading and writing 108, which is the number of columns of the check matrix H (code length of the LDPC code) in FIG. Divide by 18.

また、復号途中結果格納用メモリ410は、既に格納してある復号途中結果D415から、後段の計算部412が求めようとする復号途中結果ujの対応する検査行列Hの行において“1”になっている復号途中結果vを6つ同時に読み出し、復号途中結果D410として、サイクリックシフト回路411に供給する。 Further, the decoding intermediate result storage memory 410 sets “1” in the row of the check matrix H corresponding to the decoding intermediate result u j to be obtained by the calculation unit 412 at the subsequent stage from the already stored decoding intermediate result D415. Six decoding intermediate results v are simultaneously read and supplied to the cyclic shift circuit 411 as decoding intermediate results D410.

なお、復号途中結果格納用メモリ410は、例えば、6つの復号途中結果vを同時に読み書き可能なシングルポートRAMで構成される。また、復号途中結果格納用メモリ410には、計算部415の第2の演算により演算された列に対応する復号途中結果D415が格納されるので、復号途中結果格納用メモリ410に格納されるデータ量、即ち、復号途中結果格納用メモリ410に必要とされる記憶容量は、復号途中結果D415の量子化ビット数と、検査行列Hの列数(LDPC符号の符号長)との乗算値である。   Note that the decoding intermediate result storage memory 410 is composed of, for example, a single-port RAM that can simultaneously read and write six decoding intermediate results v. Further, since the decoding intermediate result D415 corresponding to the column calculated by the second calculation of the calculation unit 415 is stored in the decoding intermediate result storage memory 410, the data stored in the decoding intermediate result storage memory 410 is stored in the decoding intermediate result storage memory 410. The storage capacity required for the amount, that is, the decoding result storage memory 410 is a product of the number of quantization bits of the decoding result D415 and the number of columns of the check matrix H (code length of the LDPC code). .

サイクリックシフト回路411には、復号途中結果格納用メモリ410から6つの復号途中結果D410が供給されるとともに、制御部417から、その復号途中結果D410に対応する検査行列Hの1が、検査行列Hにおいて元となる単位行列などを幾つサイクリックシフトであるかの情報(Matrixデータ)を表す制御信号D418が供給される。サイクリックシフト回路611は、制御信号D418を元に、6つの復号途中結果D410を並べ替えるサイクリックシフトを行い、その結果を復号途中結果D411(D4111乃至D4116)として、計算部412に供給する。 The cyclic shift circuit 411 is supplied with the six decoding intermediate results D410 from the decoding intermediate result storage memory 410, and the control unit 417 adds 1 of the check matrix H corresponding to the decoding intermediate result D410 to the check matrix. A control signal D418 representing information (Matrix data) indicating the number of cyclic shifts of the original unit matrix and the like in H is supplied. The cyclic shift circuit 611 performs cyclic shift for rearranging the six decoding intermediate results D410 based on the control signal D418, and supplies the result to the calculating unit 412 as decoding intermediate results D411 (D411 1 to D411 6 ). To do.

計算部412は、6つの計算器4121乃至4126からなる。計算部412には、サイクリックシフト回路411から、計算部415による第2の演算の結果得られた6つの復号途中結果D411(v)が供給されるとともに、復号途中結果格納用メモリ413から、前回、計算器4121乃至4126による第1の演算の結果得られた6つの復号途中結果D413(D4131乃至D4136)(uj)が供給され、その6つの復号途中結果D411と6つの復号途中結果D413が、計算器4121乃至4126にそれぞれ供給される。また、計算部412には、制御部417から制御信号D419が供給され、その制御信号D419が、計算器4121乃至4126に供給される。なお、制御信号D419は、6つの計算器4121乃至4126に共通の信号である。 The calculation unit 412 includes six calculators 412 1 to 412 6 . The calculation unit 412 is supplied with six decoding intermediate results D411 (v) obtained as a result of the second calculation by the calculation unit 415 from the cyclic shift circuit 411, and from the decoding intermediate result storage memory 413, Six decoding intermediate results D413 (D413 1 to D413 6 ) (u j ) obtained as a result of the first calculation by the calculators 412 1 to 412 6 are supplied last time, and the six decoding intermediate results D411 and six The decoding intermediate result D413 is supplied to the calculators 412 1 to 412 6 , respectively. Further, the calculation unit 412 is supplied with the control signal D419 from the control unit 417, and the control signal D419 is supplied to the calculators 412 1 to 412 6 . The control signal D419 is a signal common to the six calculators 412 1 to 412 6 .

計算器4121乃至4126は、それぞれ復号途中結果D411と復号途中結果D413を用いて、式(7)と式(8)にしたがって第1の演算を行い、復号途中結果D412(D4121乃至D4126)(uj)を求める。計算部412は、計算器4121乃至4126による演算の結果得られる検査行列Hの6つの1に対応する6つの復号途中結果D412を復号途中結果格納用メモリ413に供給する。 The calculators 412 1 to 412 6 perform the first calculation according to the equations (7) and (8) using the decoding intermediate result D411 and the decoding intermediate result D413, respectively, and perform decoding intermediate results D412 (D412 1 to D412). 6 ) Find (u j ). The calculation unit 412 supplies six decoding intermediate results D412 corresponding to six ones of the check matrix H obtained as a result of the calculation by the calculators 412 1 to 412 6 to the decoding intermediate result storage memory 413.

復号途中結果格納用メモリ413は、例えば、6つの復号途中結果D412を同時に読み書き可能な、2つのシングルポートRAMから構成される。復号途中結果格納用メモリ413には、計算部412から6つの復号途中結果D412が供給されるとともに、制御部417から復号途中結果413の読み書きを制御する制御信号D420(D4201乃至D4204)が供給される。 The decoding intermediate result storage memory 413 includes, for example, two single-port RAMs that can simultaneously read and write six decoding intermediate results D412. Six decoding intermediate results D412 are supplied from the calculation unit 412 to the decoding intermediate result storage memory 413, and a control signal D420 (D420 1 to D420 4 ) for controlling reading / writing of the decoding intermediate result 413 from the control unit 417. Supplied.

復号途中結果格納用メモリ413は、制御信号D420に基づいて、計算部412から供給される6つの復号途中結果D412をまとめて格納すると同時に、既に格納してある6つの復号途中結果D412を読み出し、復号途中結果D413として、計算部412とサイクリックシフト回路414に供給する。即ち、復号途中結果格納用メモリ413は、計算部412とサイクリックシフト回路414に供給する復号途中結果D413の読み出しと、計算部412から供給される復号途中結果D412の書き込みとを、同時に行う。   Based on the control signal D420, the decoding intermediate result storage memory 413 stores the six decoding intermediate results D412 supplied from the calculation unit 412 together, and simultaneously reads the six decoding intermediate results D412 already stored. The decoding result D413 is supplied to the calculation unit 412 and the cyclic shift circuit 414. That is, the decoding intermediate result storage memory 413 simultaneously reads the decoding intermediate result D413 supplied to the calculation unit 412 and the cyclic shift circuit 414 and writes the decoding intermediate result D412 supplied from the calculation unit 412.

なお、復号途中結果格納用メモリ413には、計算部412の第1の演算により演算された検査行列Hのi列の、各行の1に対応する枝からの第1の演算の復号途中結果D412が格納されるので、復号途中結果格納用メモリ413に格納されるデータ量、即ち、復号途中結果格納用メモリ413に必要とされる記憶容量は、復号途中結果D412の量子化ビット数と、検査行列Hの1の数との乗算値となる。   The decoding intermediate result storage memory 413 stores the decoding intermediate result D412 of the first calculation from the branch corresponding to 1 in each row of i columns of the check matrix H calculated by the first calculation of the calculation unit 412. Therefore, the amount of data stored in the decoding intermediate result storage memory 413, that is, the storage capacity required for the decoding intermediate result storage memory 413, is determined by the number of quantization bits of the decoding intermediate result D412 and the check. This is a multiplication value of the number of 1s in the matrix H.

サイクリックシフト回路414には、復号途中結果格納用メモリ413から6つの復号途中結果D413(復号途中結果uj)が供給されるとともに、制御部417から、その復号途中結果D413に対応する検査行列Hの1が検査行列Hにおいて元となる単位行列などを幾つサイクリックシフトしたものであるかの情報(Matrixデータ)を表す制御信号D421が供給される。サイクリックシフト回路414は、制御信号D421を元に、6つの復号途中結果D413を並べ替えるサイクリックシフトを行い、その結果を復号途中結果D414として、計算部415に供給する。 The cyclic shift circuit 414 is supplied with six decoding intermediate results D413 (decoding intermediate results u j ) from the decoding intermediate result storage memory 413, and from the control unit 417, a check matrix corresponding to the decoding intermediate result D413. A control signal D421 representing information (Matrix data) indicating how many 1s of H are cyclic shifts of the original unit matrix in the check matrix H is supplied. The cyclic shift circuit 414 performs a cyclic shift to rearrange the six decoding intermediate results D413 based on the control signal D421, and supplies the result to the calculation unit 415 as a decoding intermediate result D414.

計算部415は、6つの計算器4151乃至4156からなる。計算部415には、サイクリックシフト回路414から6つの復号途中結果D414(D4141乃至D4146)が供給され、その復号途中結果D414が、計算器4151乃至4156のそれぞれに供給される。また、計算部415には、受信用メモリ417に記憶されている6つの受信データD416が、受信データD417(LDPC符号)(D4171乃至D4176)として供給され、その受信データD417が、計算器4151乃至4156のそれぞれに供給される。さらに、計算部417には、制御部417から制御信号D422が供給され、その制御信号D422が計算器4151乃至4156に供給される。なお、制御信号D422は、6つの計算器4171乃至4176に共通の信号である。 The calculation unit 415 includes six calculators 415 1 to 415 6 . Six decoding intermediate results D414 (D414 1 to D414 6 ) are supplied from the cyclic shift circuit 414 to the calculation unit 415, and the decoding intermediate results D414 are supplied to the calculators 415 1 to 415 6 respectively. The calculation unit 415 is supplied with six reception data D416 stored in the reception memory 417 as reception data D417 (LDPC code) (D417 1 to D417 6 ), and the reception data D417 is calculated by the calculator. 415 1 to 415 6 are supplied. Further, a control signal D422 is supplied from the control unit 417 to the calculation unit 417, and the control signal D422 is supplied to the calculators 415 1 to 415 6 . The control signal D422 is a signal common to the six calculators 417 1 to 417 6 .

計算器4151乃至4156は、それぞれ復号途中結果D414と受信データD417とを用いて、式(5)にしたがって、それぞれ第2の演算を行い、復号途中結果D415(D4151乃至D4156)を求める。計算部415は、計算器4151乃至4156の第2の演算の結果得られる6つの復号途中結果D415(v)を、復号途中結果格納用メモリ410に供給する。また、計算部415は、いま行う演算が最後の第2の演算である場合、その演算の結果得られる6つの復号途中結果D415を、最終的な復号結果として出力する。 The calculators 415 1 to 415 6 use the decoding intermediate result D414 and the received data D417, respectively, to perform the second calculation according to the equation (5), respectively, and obtain the decoding intermediate result D415 (D415 1 to D415 6 ). Ask. The calculation unit 415 supplies six decoding intermediate results D415 (v) obtained as a result of the second calculation of the calculators 415 1 to 415 6 to the decoding intermediate result storage memory 410. Further, when the operation to be performed is the last second operation, the calculation unit 415 outputs six decoding intermediate results D415 obtained as a result of the operation as final decoding results.

受信用メモリ416は、通信路を通して受信した受信値(符号のビット)U0から計算した符号のビットの0らしさの値である受信LLR(対数尤度比)のデータ(受信データ)D416(u0i)を1つずつ格納する。 Receiving memory 416, the data (received data) received values received through a communication path (sign bit) received LLR is zero likelihood value of a bit of code calculated from U 0 (log likelihood ratio) D416 (u 0i ) is stored one by one.

即ち、受信用メモリ416の第1のアドレスには、検査行列Hの列に対応する受信データD416のうち、検査行列Hの第1列目から第6列目までに対応する受信データD416が格納される。そして、第2のアドレスには、検査行列Hの第7列目から第12列目までに対応する受信データD416が格納され、第3アドレスには、検査行列Hの第13列目から第18列目までに対応する受信データD416が格納される。以後、同様に、第4アドレスから第18アドレスまでに、検査行列Hの第19列目から第108列目までに対応する受信データD416が、6つずつ格納される。   That is, among the reception data D416 corresponding to the column of the check matrix H, the reception data D416 corresponding to the first to sixth columns of the check matrix H is stored in the first address of the reception memory 416. Is done. Then, received data D416 corresponding to the seventh column to the twelfth column of the parity check matrix H is stored at the second address, and the thirteenth column to the eighteenth column of the parity check matrix H are stored at the third address. The reception data D416 corresponding to the columns are stored. Thereafter, similarly, received data D416 corresponding to the 19th column to the 108th column of the check matrix H is stored 6 by 6 from the 4th address to the 18th address.

そして、受信用メモリ616は、既に格納している受信データD416を、バリアブルノード演算に必要となる順番に6つずつ読み出し、受信データD4171乃至D4176として計算部415に供給する。 The receiving memory 616, already by that reception data D416 to store, read by six in the order required for a variable node calculation, and supplies the calculation unit 415 as reception data D417 1 to D417 6.

なお、受信用メモリ416は、例えば、6つの受信データD416を同時に読み書き可能なシングルポートRAMから構成される。また、受信用メモリ416に格納されるデータ量、即ち、受信用メモリ315に必要とされる記憶容量は、LDPC符号の符号長と、受信データD416の量子化ビット数との乗算値である。さらに、受信用メモリ416のワード(word)数は、LDPC符号の符号長、即ち、検査行列Hの列数である108を、同時に読み出す受信データD417(D416)の数である6で割り算した値の18である。   Note that the reception memory 416 is composed of, for example, a single-port RAM that can simultaneously read and write six reception data D416. The amount of data stored in the reception memory 416, that is, the storage capacity required for the reception memory 315 is a product of the code length of the LDPC code and the number of quantization bits of the reception data D416. Further, the number of words in the reception memory 416 is a value obtained by dividing the code length of the LDPC code, that is, the number of columns of the check matrix H, by 6, which is the number of received data D417 (D416) to be read simultaneously. 18 of.

制御部417は、制御信号D418をサイクリックシフト回路411に、制御信号D419を計算部412に供給することにより、それぞれを制御する。また、制御部417は、制御信号D420を復号途中結果格納用メモリ413に、制御信号D421をサイクリックシフト回路414に、制御信号D422を計算部415にそれぞれ供給することにより、それぞれを制御する。   The control unit 417 controls the control signal D418 by supplying the control signal D418 to the cyclic shift circuit 411 and the control signal D419 to the calculation unit 412. In addition, the control unit 417 controls the control signal D420 by supplying the control signal D420 to the decoding intermediate result storage memory 413, the control signal D421 to the cyclic shift circuit 414, and the control signal D422 to the calculation unit 415, respectively.

復号途中結果格納用メモリ410、サイクリックシフト回路411、計算部412、復号途中結果格納用メモリ413、サイクリックシフト回路414、計算部415の順で、データが一巡することで、復号装置400は、1回の復号を行うことができる。復号装置400では、所定の回数だけ繰り返して復号が行われた後、計算部415による第2の演算の結果である復号途中結果D415が、最終的な復号結果として1つずつ出力される。   The decoding apparatus 400 performs a round of data in the order of the decoding intermediate result storage memory 410, the cyclic shift circuit 411, the calculation unit 412, the decoding intermediate result storage memory 413, the cyclic shift circuit 414, and the calculation unit 415. One decoding can be performed. In the decoding device 400, after decoding is repeated a predetermined number of times, decoding intermediate results D415, which are the results of the second calculation by the calculation unit 415, are output one by one as the final decoding result.

また、サムプロダクトアルゴリズムを近似して実装する方法なども提案されているが、この方法では、性能の劣化を招いてしまう。   Also, a method of approximating and implementing the sum product algorithm has been proposed, but this method causes performance degradation.

特開2004−364233号公報JP 2004-364233 A C. Howland and A. Blanksby, "Parallel Decoding Architectures for Low Density Parity Check Codes", Symposium on Circuits and Systems, 2001C. Howland and A. Blanksby, "Parallel Decoding Architectures for Low Density Parity Check Codes", Symposium on Circuits and Systems, 2001

しかしながら、図10の復号装置400において、受信データD416の入力、または復号結果の出力を、複数個ずつ同時に行い、スループットを向上させることは提案されていなかった。   However, in the decoding apparatus 400 of FIG. 10, it has not been proposed to improve the throughput by inputting the reception data D416 or outputting the decoding results at the same time.

本発明は、このような状況に鑑みてなされたものであり、復号装置のスループットを向上させることができるようにするものである。   The present invention has been made in view of such circumstances, and is intended to improve the throughput of a decoding device.

本発明の一側面の復号装置は、LDPC(Low Density Parity Check)符号を復号する復号装置であって、P×Pの単位行列、その単位行列のコンポーネントである1のうちの1個以上が0になった行列である準単位行列、前記単位行列もしくは準単位行列をサイクリックシフトした行列であるシフト行列、前記単位行列、準単位行列、もしくはシフト行列のうちの複数の和である和行列、またはP×Pの0行列を構成行列として、前記LDPC符号の検査行列が、複数の前記構成行列の組み合わせで表される場合、または前記LDPC符号の検査行列が、行または列の置換により、複数の前記構成行列の組み合わせで表される場合において、前記LDPC符号を記憶する符号記憶手段と、前記符号記憶手段に記憶される前記LDPC符号を復号する復号手段と、前記復号手段により復号された結果得られる復号結果を記憶し、既に記憶してある復号結果を読み出す復号結果記憶手段とを備え、前記符号記憶手段は、前記LDPC符号を前記P個以下の複数個ずつ同時に記憶するか、前記復号結果記憶手段は、前記復号結果を前記P個以下の複数個ずつ同時に読み出すか、または前記符号記憶手段は前記LDPC符号を前記P個以下の複数個ずつ同時に記憶し、かつ前記復号結果記憶手段は、前記復号結果を前記P個以下の複数個ずつ同時に読み出す。   A decoding apparatus according to an aspect of the present invention is a decoding apparatus that decodes an LDPC (Low Density Parity Check) code, and one or more of P × P unit matrices and 1 that are components of the unit matrix are 0. A quasi-unit matrix that is a matrix, a shift matrix that is a cyclic shift of the unit matrix or quasi-unit matrix, the unit matrix, a quasi-unit matrix, or a sum matrix that is a sum of a plurality of shift matrices, Alternatively, when the P × P 0 matrix is used as a constituent matrix, the LDPC code parity check matrix is represented by a combination of a plurality of the constituent matrices, or the LDPC code parity check matrix is a plurality of rows or columns replaced. A code storage unit that stores the LDPC code, a decoding unit that decodes the LDPC code stored in the code storage unit, and a decoding unit that decodes the LDPC code. Decoding result storage means for storing the decoding result obtained as a result, and reading out the already stored decoding result, wherein the code storage means stores the LDPC code at the same time by a plurality of P or less, The decoding result storage means reads the decoding result at the same time by a plurality of P or less, or the code storage means stores the LDPC code at a time by a plurality of the P or less at the same time, and stores the decoding result The means reads the decoding result at the same time by a plurality of P or less.

前記符号記憶手段は、前記LDPC符号を前記Pの約数個ずつ同時に記憶するか、前記復号結果記憶手段は、前記復号結果を前記Pの約数個ずつ同時に読み出すか、または前記符号記憶手段は前記LDPC符号を前記Pの約数個ずつ同時に記憶し、かつ前記復号結果記憶手段は、前記復号結果を前記Pの約数個ずつ同時に読み出すことができる。   The code storage means stores the LDPC code by several divisors of the P simultaneously, the decoding result storage means reads the decoding results by divisors of the P simultaneously, or the code storage means The LDPC code can be stored at the same time for each of about several Ps, and the decoding result storage means can simultaneously read out the about several Ps for the decoding results.

前記符号記憶手段は、前記Pの約数個の前記LDPC符号を同時に読み書き可能なメモリにより構成され、前記復号結果記憶手段は、前記Pの約数個の前記復号結果を同時に読み書き可能なメモリにより構成されることができる。   The code storage means is configured by a memory capable of simultaneously reading and writing about a few of the LDPC codes of the P, and the decoding result storage means is configured by a memory capable of simultaneously reading and writing the plurality of the decoding results of the P. Can be configured.

前記復号装置は、前記符号記憶手段に前記LDPC符号を入力する第1の外部装置、および前記復号結果記憶手段から読み出された復号結果を出力する第2の外部装置の動作クロックに比べて、高速の動作クロックで動作を行うことができる。   Compared to the operation clock of the first external device that inputs the LDPC code to the code storage means and the second external device that outputs the decoding result read from the decoding result storage means, the decoding device, The operation can be performed with a high-speed operation clock.

前記符号記憶手段は、前記行または列の置換後の前記検査行列の前記P個の列に対応する前記LDPC符号を、同時に読出可能な順に記憶することができる。   The code storage means may store the LDPC codes corresponding to the P columns of the parity check matrix after the row or column replacement in an order that can be read simultaneously.

前記符号記憶手段は、RAM(Random Access Memory)であり、そのRAMの各アドレスに、前記行または列の置換後の前記検査行列の前記P個の列に対応する前記LDPC符号を記憶することができる。   The code storage means is a RAM (Random Access Memory), and the LDPC code corresponding to the P columns of the parity check matrix after replacement of the row or column is stored in each address of the RAM. it can.

前記復号装置は、前記符号記憶手段に記憶される前の前記LDPC符号、または前記復号結果記憶手段から読み出された後の前記復号結果の少なくとも一方の順序を制御する順序制御手段をさらに儲けることができる。   The decoding apparatus further includes order control means for controlling the order of at least one of the LDPC code before being stored in the code storage means or the decoding result after being read from the decoding result storage means. Can do.

前記順序制御手段は、前記LDPC符号を記憶する順序符号記憶手段と、前記順序符号記憶手段に記憶される前記LDPC符号を選択して出力する選択手段とを設けることができる。   The order control means may include order code storage means for storing the LDPC code and selection means for selecting and outputting the LDPC code stored in the order code storage means.

前記順序制御手段は、前記復号結果を記憶する順序復号結果記憶手段と、前記順序復号結果記憶手段に記憶される前記復号結果を選択して出力する選択手段とを設けることができる。   The order control means may include order decoding result storage means for storing the decoding result and selection means for selecting and outputting the decoding result stored in the order decoding result storage means.

本発明の一側面の復号方法は、LDPC(Low Density Parity Check)符号を復号する復号装置の復号方法であって、P×Pの単位行列、その単位行列のコンポーネントである1のうちの1個以上が0になった行列である準単位行列、前記単位行列もしくは準単位行列をサイクリックシフトした行列であるシフト行列、前記単位行列、準単位行列、もしくはシフト行列のうちの複数の和である和行列、またはP×Pの0行列を構成行列として、前記LDPC符号の検査行列が、複数の前記構成行列の組み合わせで表される場合、または前記LDPC符号の検査行列が、行または列の置換により、複数の前記構成行列の組み合わせで表される場合において、前記LDPC符号を記憶させる符号記憶ステップと、前記符号記憶ステップの処理により記憶される前記LDPC符号を復号する復号ステップと、前記復号ステップの処理により復号された結果得られる復号結果を記憶させ、既に記憶されている復号結果を読み出す復号結果記憶ステップとを含み、前記符号記憶ステップの処理は、前記LDPC符号を前記P個以下の複数個ずつ同時に記憶させるか、または前記復号結果記憶ステップの処理は、前記復号結果を前記P個以下の複数個ずつ同時に読み出すか、もしくは前記符号記憶ステップの処理は前記LDPC符号を前記P個以下の複数個ずつ同時に記憶させ、かつ前記復号結果記憶ステップの処理は、前記復号結果を前記P個以下の複数個ずつ同時に読み出す。   A decoding method according to an aspect of the present invention is a decoding method of a decoding apparatus that decodes an LDPC (Low Density Parity Check) code, and includes a P × P unit matrix and one of 1 that is a component of the unit matrix. The above is a quasi-unit matrix that is a matrix of zero, a shift matrix that is a cyclic shift of the unit matrix or quasi-unit matrix, the unit matrix, a quasi-unit matrix, or a sum of a plurality of shift matrices. When the parity check matrix of the LDPC code is represented by a combination of a plurality of the configuration matrices, where the sum matrix or the P × P 0 matrix is the configuration matrix, or the LDPC code check matrix is a row or column replacement Accordingly, in the case where the combination matrix is represented by a combination of a plurality of the configuration matrices, a code storage step for storing the LDPC code and a decoding step for decoding the LDPC code stored by the processing of the code storage step And a decoding result storing step for storing a decoding result obtained as a result of decoding by the processing of the decoding step and reading out a decoding result that has already been stored, and the processing of the code storing step includes the LDPC code Are stored at the same time, or the decoding result storing step is to simultaneously read the decoding results at the P number or less, or the code storing step is the LDPC A plurality of P or less codes are simultaneously stored, and the decoding result storing step reads the decoding results simultaneously by the P or less.

本発明の一側面においては、LDPC符号をP個以下の複数個ずつ同時に記憶するか、復号結果を前記P個以下の複数個ずつ同時に読み出すか、または前記LDPC符号を前記P個以下の複数個ずつ同時に記憶し、かつ前記復号結果を前記P個以下の複数個ずつ同時に読み出す。   In one aspect of the present invention, a plurality of P or less LDPC codes are simultaneously stored, a plurality of P or less decoded results are read simultaneously, or a plurality of P or less LDPC codes are read. The decoding results are simultaneously stored, and the decoding results are simultaneously read out in increments of P or less.

以上のように、本発明の一側面によれば、復号装置のスループットを向上させることができる。   As described above, according to one aspect of the present invention, the throughput of the decoding device can be improved.

以下に本発明の実施の形態を説明するが、本発明の構成要件と、発明の詳細な説明に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、発明の詳細な説明に記載されていることを確認するためのものである。従って、発明の詳細な説明中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。   Embodiments of the present invention will be described below. Correspondences between the configuration requirements of the present invention and the embodiments described in the detailed description of the present invention are exemplified as follows. This description is to confirm that the embodiments supporting the present invention are described in the detailed description of the invention. Accordingly, although there are embodiments that are described in the detailed description of the invention but are not described here as embodiments corresponding to the constituent elements of the present invention, It does not mean that the embodiment does not correspond to the configuration requirements. Conversely, even if an embodiment is described here as corresponding to a configuration requirement, that means that the embodiment does not correspond to a configuration requirement other than the configuration requirement. It's not something to do.

本発明の一側面の復号装置は、
LDPC(Low Density Parity Check)符号を復号する復号装置(例えば、図15の復号装置800)であって、
P×Pの単位行列、その単位行列のコンポーネントである1のうちの1個以上が0になった行列である準単位行列、前記単位行列もしくは準単位行列をサイクリックシフトした行列であるシフト行列、前記単位行列、準単位行列、もしくはシフト行列のうちの複数の和である和行列、またはP×Pの0行列を構成行列として、前記LDPC符号の検査行列が、複数の前記構成行列の組み合わせで表される場合、または前記LDPC符号の検査行列が、行または列の置換により、複数の前記構成行列の組み合わせで表される場合において、
前記LDPC符号を記憶する符号記憶手段(例えば、図16の受信メモリ834)と、
前記符号記憶手段に記憶される前記LDPC符号を復号する復号手段(例えば、図15の計算部412と415)と、
前記復号手段により復号された結果得られる復号結果を記憶し、既に記憶してある復号結果を読み出す復号結果記憶手段(例えば、図24の復号結果メモリ901)と
を備え、
前記符号記憶手段は、前記LDPC符号を前記P個以下の複数個ずつ同時に記憶するか、前記復号結果記憶手段は、前記復号結果を前記P個以下の複数個ずつ同時に読み出すか、または前記符号記憶手段は前記LDPC符号を前記P個以下の複数個ずつ同時に記憶し、かつ前記復号結果記憶手段は、前記復号結果を前記P個以下の複数個ずつ同時に読み出す(例えば、図29のステップS35の処理、図31のステップS71の処理)。
A decoding device according to one aspect of the present invention provides:
A decoding device (for example, the decoding device 800 in FIG. 15) for decoding an LDPC (Low Density Parity Check) code,
A P × P unit matrix, a quasi-unit matrix that is a matrix in which one or more of 1s that are components of the unit matrix are 0, and a shift matrix that is a cyclic shift of the unit matrix or the quasi-unit matrix , A unit matrix, a quasi-unit matrix, or a sum matrix that is a sum of a plurality of shift matrices, or a P × P 0 matrix, and a parity check matrix of the LDPC code is a combination of a plurality of the constituent matrices Or when the parity check matrix of the LDPC code is represented by a combination of a plurality of the constituent matrices by row or column replacement,
Code storage means for storing the LDPC code (for example, reception memory 834 in FIG. 16);
Decoding means for decoding the LDPC code stored in the code storage means (for example, the calculation units 412 and 415 in FIG. 15);
A decoding result storage means (for example, a decoding result memory 901 in FIG. 24) that stores a decoding result obtained as a result of decoding by the decoding means and reads out a decoding result that has already been stored;
The code storage means stores the LDPC codes at the same time in a plurality of P or less, or the decoding result storage means reads out the decoding results at a time in a plurality of P or less, or the code storage The means stores the LDPC code at the P number or less at the same time, and the decoding result storage means reads the decoding result at the P number or less at the same time (for example, the process of step S35 in FIG. 29). , Processing of step S71 of FIG. 31).

前記復号装置は、前記符号記憶手段に前記LDPC符号を入力する第1の外部装置(例えば、図16のインターリーバ831とセレクタ832)、および前記復号結果記憶手段から読み出された復号結果を出力する第2の外部装置(例えば、図24のデインターリーバ903とセレクタ904)の動作クロック(例えば、低速クロックCK1またはCK3)に比べて、高速の動作クロック(例えば、高速クロックCK2)で動作を行う。 The decoding device outputs a decoding result read from the first external device (for example, the interleaver 831 and the selector 832 in FIG. 16) that inputs the LDPC code to the code storage unit, and the decoding result storage unit. second external device (e.g., deinterleaver 903 and the selector 904 in FIG. 24) operation clock (e.g., low-speed clock CK 1 or CK 3) compared to the high-speed operation clock (e.g., high-speed clock CK 2) Do the operation with.

前記符号記憶手段に記憶される前の前記LDPC符号、または前記復号結果記憶手段から読み出された後の前記復号結果の少なくとも一方の順序を制御する順序制御手段(例えば、図16のインターリーバ831)
をさらに設ける。
Order control means for controlling the order of at least one of the LDPC code before being stored in the code storage means or the decoding result after being read from the decoding result storage means (for example, the interleaver 831 in FIG. 16). )
Is further provided.

前記順序制御手段(例えば、図17のインターリーバ831)は、
前記LDPC符号を記憶する順序符号記憶手段(例えば、図17のレジスタ851−1乃至851−5および852−1乃至852−5)と、
前記順序符号記憶手段に記憶される前記LDPC符号を選択して出力する選択手段(例えば、図17のセレクタ853)と
を設ける
The order control means (for example, the interleaver 831 in FIG. 17)
Order code storage means for storing the LDPC code (for example, the registers 851-1 to 851-5 and 852-1 to 852-5 in FIG. 17);
Selection means (for example, selector 853 in FIG. 17) for selecting and outputting the LDPC code stored in the order code storage means is provided.

前記順序制御手段(例えば、図26のデインターリーバ903)は、
前記復号結果を記憶する順序復号結果記憶手段(例えば、レジスタ921−1乃至921−5と922−1乃至922−5)と、
前記順序復号結果記憶手段に記憶される前記復号結果を選択して出力する選択手段(例えば、図26のセレクタ923)と
を設ける。
The order control means (for example, the deinterleaver 903 in FIG. 26)
Order decoding result storage means for storing the decoding results (for example, registers 921-1 to 921-5 and 922-1 to 922-5);
Selection means (for example, a selector 923 in FIG. 26) for selecting and outputting the decoding result stored in the order decoding result storage means is provided.

本発明の一側面の復号方法は、
LDPC(Low Density Parity Check)符号を復号する復号装置(例えば、図15の復号装置800)の復号方法であって、
P×Pの単位行列、その単位行列のコンポーネントである1のうちの1個以上が0になった行列である準単位行列、前記単位行列もしくは準単位行列をサイクリックシフトした行列であるシフト行列、前記単位行列、準単位行列、もしくはシフト行列のうちの複数の和である和行列、またはP×Pの0行列を構成行列として、前記LDPC符号の検査行列が、複数の前記構成行列の組み合わせで表される場合、または前記LDPC符号の検査行列が、行または列の置換により、複数の前記構成行列の組み合わせで表される場合において、
前記LDPC符号を記憶させる符号記憶ステップ(例えば、図29のステップS35)と、
前記符号記憶ステップの処理により記憶される前記LDPC符号を復号する復号ステップ(例えば、図30の復号処理)と、
前記復号ステップの処理により復号された結果得られる復号結果を記憶させ、既に記憶されている復号結果を読み出す復号結果記憶ステップ(例えば、図31のステップS71)と
を含み、
前記符号記憶ステップの処理は、前記LDPC符号を前記P個以下の複数個ずつ同時に記憶させるか、または前記復号結果記憶ステップの処理は、前記復号結果を前記P個以下の複数個ずつ同時に読み出すか、もしくは前記符号記憶ステップの処理は前記LDPC符号を前記P個以下の複数個ずつ同時に記憶させ、かつ前記復号結果記憶ステップの処理は、前記復号結果を前記P個以下の複数個ずつ同時に読み出す(例えば、図29のステップS35の処理、図31のステップS71の処理)。
A decoding method according to one aspect of the present invention includes:
A decoding method of a decoding device (for example, the decoding device 800 in FIG. 15) for decoding an LDPC (Low Density Parity Check) code,
A P × P unit matrix, a quasi-unit matrix that is a matrix in which one or more of 1s that are components of the unit matrix are 0, and a shift matrix that is a cyclic shift of the unit matrix or the quasi-unit matrix , A unit matrix, a quasi-unit matrix, or a sum matrix that is a sum of a plurality of shift matrices, or a P × P 0 matrix, and a parity check matrix of the LDPC code is a combination of a plurality of the constituent matrices Or when the parity check matrix of the LDPC code is represented by a combination of a plurality of the constituent matrices by row or column replacement,
A code storing step (for example, step S35 in FIG. 29) for storing the LDPC code;
A decoding step (for example, the decoding process of FIG. 30) for decoding the LDPC code stored by the process of the code storing step;
A decoding result storage step (for example, step S71 in FIG. 31) that stores a decoding result obtained as a result of decoding by the processing of the decoding step and reads out a decoding result that has already been stored;
Whether the code storing step stores the LDPC code at the P number or less simultaneously, or the decoding result storing step reads the decoding result at the P number or less simultaneously. Alternatively, the process of the code storage step stores the LDPC code at the P number or less at the same time, and the process of the decoding result storage step simultaneously reads the decoding result at the P number or less at a time ( For example, step S35 in FIG. 29, step S71 in FIG. 31).

図11は、LDPC符号の復号に用いる検査行列Hの例を示している。   FIG. 11 shows an example of parity check matrix H used for decoding the LDPC code.

図11の検査行列Hは、n=108,k=72の符号語c(符号化率2/3、符号長108)を得るための検査行列Hであり、36(行)×108(列)の行列である。なお、図11の検査行列Hでは(後述する図12乃至14の行列においても同様)、0を、"."で表現している。また、図11の検査行列Hは、6×6の行列の単位に間隔を空けて表したものである。   The parity check matrix H in FIG. 11 is a parity check matrix H for obtaining a codeword c (coding rate 2/3, code length 108) of n = 108, k = 72, and is 36 (rows) × 108 (columns). Is a matrix. In the parity check matrix H of FIG. 11 (the same applies to the matrices of FIGS. 12 to 14 described later), 0 is represented by “.”. In addition, the parity check matrix H in FIG. 11 is expressed with an interval in units of 6 × 6 matrices.

即ち、検査行列Hは、36(=n-k)行72(=k)列の情報部と、36(=n-k)行36(=n-k)列のパリティ部とから構成される。   That is, the parity check matrix H is composed of an information part of 36 (= n−k) rows 72 (= k) columns and a parity part of 36 (= n−k) rows 36 (= n−k) columns.

図11の検査行列Hでは、LDPC符号の情報語iに対応する情報部の各行は、7個の“1”と、101個の“0”から構成される。パリティ部は、下三角状の構造を有する行列(下三角行列)となっている。即ち、図11の検査行列Hのパリティ部は、行列の対角線の右上が全て“0”とされた行列となっており、下三角状の構造を有している。   In the parity check matrix H in FIG. 11, each row of the information part corresponding to the information word i of the LDPC code is composed of seven “1” s and 101 “0s”. The parity part is a matrix having a lower triangular structure (lower triangular matrix). That is, the parity part of the parity check matrix H in FIG. 11 is a matrix in which the upper right corner of the diagonal of the matrix is all “0”, and has a lower triangular structure.

図12と図13は、図11の検査行列Hを行置換または列置換した後の検査行列H´を示している。   12 and 13 show a parity check matrix H ′ after row replacement or column replacement of the parity check matrix H of FIG.

図12の検査行列H´では、情報部を、P×P(図12の例の場合、P=6)の単位行列、その単位行列の1のうち1個以上が0になった準単位行列、単位行列または準単位行列をサイクリックシフトしたシフト行列、単位行列、準単位行列、またはシフト行列のうちの2以上(複数)の和である和行列、P×Pの0行列の組み合わせで表すことができる。即ち、図12の検査行列H´は、6×6の構成行列の組み合わせで表すことができる。   In the parity check matrix H ′ in FIG. 12, the information part is a unit matrix of P × P (P = 6 in the example of FIG. 12), and a quasi-unit matrix in which at least one of the unit matrices is 0. , A shift matrix obtained by cyclically shifting a unit matrix or quasi-unit matrix, a unit matrix, a quasi-unit matrix, a sum matrix that is the sum of two or more of the shift matrices, and a combination of P × P 0 matrices be able to. That is, the parity check matrix H ′ in FIG. 12 can be represented by a combination of 6 × 6 configuration matrices.

図13の検査行列H´は、図12に示した検査行列H´を、6×6の構成行列の単位に間隔を空けて表したものである。検査行列H´を構成する横方向の構成行列の数をn0個とし、検査行列H´の情報部を構成する横方向の構成行列の数をk0個とすると、n0(=n/P=108/6)は18となり、k0(=k/P=72/6)は12となる。 The parity check matrix H ′ in FIG. 13 represents the parity check matrix H ′ shown in FIG. 12 with an interval in the unit of a 6 × 6 configuration matrix. If the number of lateral configuration matrix constituting the check matrix H'the zero n, the number of lateral configuration matrixes constituting the information of the check matrix H'to zero k, n 0 (= n / P = 108/6) is 18, and k 0 (= k / P = 72/6) is 12.

即ち、図12や図13の検査行列H´では、縦方向に6(=n0-k0=18-12)個の構成行列が、横方向にn0(=18)個の構成行列が並んでいる。 That is, in the parity check matrix H ′ in FIG. 12 and FIG. 13, 6 (= n 0 -k 0 = 18−12) constituent matrices in the vertical direction and n 0 (= 18) constituent matrices in the horizontal direction. Are lined up.

また、図11の検査行列Hのパリティ部の一番左の列(先頭列)を0列目とすると、検査行列Hのパリティ部の(n0-k0)×v+w(0≦v≦P-1,0≦w≦n0-k0-1)列目の列は、図12や図13の検査行列H´のパリティ部では、P×w+v列目の列となっている。 Further, the left-most column of the parity part of the check matrix H of FIG. 11 (first column) and 0 column, (n 0 -k 0) of the parity part of the check matrix H × v + w (0 ≦ v ≦ P −1,0 ≦ w ≦ n 0 −k 0 −1) The column of the column is the P × w + v column in the parity part of the parity check matrix H ′ in FIGS. 12 and 13.

以上のように、図12や図13の検査行列H´は構成行列で構成されるため、検査行列H´を用いてLDPC符号の復号が行われる場合、LDPC符号の復号に必要な、第1の演算の結果得られる復号途中結果ujの第2の演算に用いられる順序での読出、および第2の演算の結果得られる復号途中結果vの第1の演算に用いられる順序での読出を、6個単位で復号途中結果ujとvをサイクリックシフトすることにより行うことができる。また、6個単位で復号途中結果ujをサイクリックシフトすることにより、第2の演算における復号途中結果ujと検査行列H´の行との積を、6個同時に計算することができる。 As described above, since the parity check matrix H ′ in FIG. 12 and FIG. 13 is configured with a configuration matrix, when the LDPC code is decoded using the parity check matrix H ′, the first matrix necessary for decoding the LDPC code is used. Reading the decoding intermediate result u j obtained as a result of the operation in the order used for the second operation, and reading the decoding intermediate result v obtained as the result of the second operation in the order used for the first operation This can be done by cyclically shifting the decoding intermediate results u j and v in units of six. Moreover, by cyclically shifting the decoding intermediate results u j six units, the product of the row of the check matrix H'decoding intermediate result u j in the second operation, it is possible to calculate six simultaneously.

図14A乃至図14Bは、図11の検査行列Hと図12や図13の検査行列H´のパリティ部を示している。   14A to 14B show the parity part of the parity check matrix H in FIG. 11 and the parity check matrix H ′ in FIGS. 12 and 13.

図14Aに示すように、図11の検査行列Hのパリティ部は、行列の対角線の右上が全て“0”とされた行列となっており、下三角状の構造を有している。また、パリティ部は、下三角行列の対角成分とその成分の直下の成分が1であり、それ以外の成分が0となっている。   As shown in FIG. 14A, the parity part of the parity check matrix H in FIG. 11 is a matrix in which the upper right corner of the diagonal of the matrix is all “0”, and has a lower triangular structure. In the parity part, the diagonal component of the lower triangular matrix and the component immediately below the component are 1, and the other components are 0.

図14Bに示すように、図12や図13の検査行列H´のパリティ部では、対角成分が6×6の単位行列の対角成分となるように、6×6の単位行列が対角方向に配置され、その単位行列の直下にも6×6の単位行列が配置されている。さらに、パリティ部では、右上に、6×6の単位行列の最上行の1が0になった行列を左に1だけサイクリックシフトした行列が配置されている。以上の他は、6×6の0行列が配置されている。図14Bのパリティ部では、図14Aのパリティ部の(n0-k0)×v+w列目の行が、P×w+v列目の列となる。 As shown in FIG. 14B, in the parity part of the parity check matrix H ′ in FIGS. 12 and 13, the 6 × 6 unit matrix is diagonal so that the diagonal component is the diagonal component of the 6 × 6 unit matrix. A 6 × 6 unit matrix is also arranged immediately below the unit matrix. Further, in the parity part, a matrix obtained by cyclically shifting the matrix in which 1 in the uppermost row of the 6 × 6 unit matrix is 0 to the left by 1 is arranged on the upper right. In addition to the above, a 6 × 6 zero matrix is arranged. In the parity part of FIG. 14B, the row of the (n 0 −k 0 ) × v + w column of the parity part of FIG. 14A is the column of the P × w + v column.

図15は、本発明の一実施の形態の、LDPC符号を復号する復号装置800の構成例を示している。なお、図中、図10の復号装置400と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。   FIG. 15 shows a configuration example of a decoding apparatus 800 that decodes an LDPC code according to an embodiment of the present invention. In the figure, portions corresponding to those of the decoding device 400 in FIG. 10 are denoted by the same reference numerals, and description thereof will be omitted below as appropriate.

図15の復号装置800は、復号途中結果格納用メモリ410、サイクリックシフト回路411、6つの計算器4121乃至計算器4126からなる計算部412、復号途中結果格納用メモリ413、サイクリックシフト回路414、6つの計算器4151乃至計算器4156からなる計算部415、および制御部417が設けられている点で、図10の復号装置400と共通するが、受信用メモリ416に代えて受信部811が設けられ、新たに出力部812が設けられている点で、図10の復号装置400と相違している。 15 includes a decoding intermediate result storage memory 410, a cyclic shift circuit 411, a calculation unit 412 including six calculators 412 1 to 412 6 , a decoding intermediate result storage memory 413, a cyclic shift. Although common to the decoding device 400 in FIG. 10 in that a circuit 414, a calculation unit 415 including six calculators 415 1 to 415 6 and a control unit 417 are provided, the reception unit 416 is replaced with the reception memory 416. 10 is different from the decoding device 400 of FIG. 10 in that a receiving unit 811 is provided and an output unit 812 is newly provided.

ここで、図15の復号装置800では、例えば、図11に示した検査行列Hで表されるLDPC符号(符号化率2/3、符号長108)の復号が行われることとする。   Here, in decoding apparatus 800 in FIG. 15, for example, it is assumed that LDPC code (coding rate 2/3, code length 108) represented by parity check matrix H shown in FIG. 11 is decoded.

図15の復号装置800では、受信データD416が検査行列H´に対応する順に並び替えられ、その並び替え後の受信データD811を用いて、計算部415が検査行列H´に対応する第2の演算を6個ずつ行い、計算部412が検査行列H´に対応する第1の演算を6個ずつ行い、これらの第1の演算と第2の演算とが交互に行われる。そして、最後の第2の演算の結果得られる復号途中結果D415を、検査行列Hに対応する順に並び替えることによって、LDPC符号が復号される。   In decoding apparatus 800 in FIG. 15, received data D416 is rearranged in the order corresponding to parity check matrix H ′, and using received data D811 after the rearrangement, calculation unit 415 performs second processing corresponding to parity check matrix H ′. Six calculations are performed, and the calculation unit 412 performs six first calculations corresponding to the check matrix H ′, and the first calculation and the second calculation are alternately performed. Then, the LDPC code is decoded by rearranging the decoding intermediate result D415 obtained as a result of the last second calculation in the order corresponding to the check matrix H.

即ち、受信部811には、検査行列Hで表されるLDPC符号の受信値U0が受信され、受信データD416(u0i)が供給されて、記憶される。そして、受信部811は、既に記憶している受信データD416から、検査行列H´に対応する第2の演算に必要となる順に6つの受信データD416を読み出し、受信データD8111乃至D8116(D811)として計算部415に供給する。換言すれば、受信部811は、検査行列Hに対応する順に供給される受信データD416を、検査行列H´に対応する順に並び替えて受信データD811として計算部415に供給する。 That is, the reception unit 811 receives the reception value U 0 of the LDPC code represented by the check matrix H, and receives and stores the reception data D416 (u 0i ). Then, the receiving unit 811, the already stored to have received data D416, reads the second six received data D416 in the order required for operation corresponding to the check matrix H ', the received data D811 1 to D811 6 (D811 ) To the calculation unit 415. In other words, the reception unit 811 rearranges the reception data D416 supplied in the order corresponding to the check matrix H and supplies the received data D416 to the calculation unit 415 as reception data D811 in the order corresponding to the check matrix H ′.

そして、計算部415は、LDPC符号の復号のための検査行列H´に対応する第2の演算を行う。   Then, calculation section 415 performs a second operation corresponding to parity check matrix H ′ for decoding the LDPC code.

即ち、復号途中結果格納用メモリ413には、後述する計算部412による第1の演算の結果としての復号途中結果D4121乃至D4126(D412)(uj)が格納されており、復号途中結果格納用メモリ413は、既に格納してある復号途中結果D412のうち、6つの復号途中結果D412を、復号途中結果D4131乃至D4136(D413)として、サイクリックシフト回路414と計算部412に供給する。 That is, the decoding intermediate result storage memory 413 stores decoding intermediate results D412 1 to D412 6 (D412) (u j ) as a result of the first calculation by the calculation unit 412 described later. The storage memory 413 supplies the six decoding intermediate results D412 among the decoding intermediate results D412 already stored to the cyclic shift circuit 414 and the calculation unit 412 as decoding intermediate results D413 1 to D413 6 (D413). To do.

サイクリックシフト回路414は、制御部417からの制御信号D421に基づき、復号途中結果D413をサイクリックシフトし、その結果を復号途中結果D4141乃至D4146(D414)として計算部415に供給する。さらに、計算部415には、制御部417から制御信号D422が供給されるとともに、受信部811から6つの受信データD811が供給される。 The cyclic shift circuit 414 cyclically shifts the decoding intermediate result D413 based on the control signal D421 from the control unit 417, and supplies the result to the calculating unit 415 as decoding intermediate results D414 1 to D414 6 (D414). Further, a control signal D422 is supplied from the control unit 417 to the calculation unit 415, and six reception data D811 are supplied from the reception unit 811.

計算器415は、計算器4151乃至4156から構成される。各計算器415kは、制御信号D422に基づき、サイクリックシフト回路414から供給される復号途中結果D414k(uj)と、受信部811から供給される受信データD811k(u0i)とを用い、式(5)にしたがって第2の演算を行う。そして、各計算器415kは、第2の演算の結果得られる復号途中結果D415k(v)を、復号途中結果格納用メモリ410に供給する。 The calculator 415 includes calculators 415 1 to 415 6 . Based on the control signal D422, each calculator 415 k receives the decoding intermediate result D414 k (u j ) supplied from the cyclic shift circuit 414 and the received data D811 k (u 0i ) supplied from the receiving unit 811. And the second calculation is performed according to equation (5). Then, each calculator 415 k supplies the decoding intermediate result D415 k (v) obtained as a result of the second calculation to the decoding intermediate result storage memory 410.

復号途中結果格納用メモリ410は、計算部415から供給される、6つの第2の演算の結果である復号途中結果D4151乃至D4156(D415)(v)を格納していく。そして、復号途中結果格納用メモリ410は、既に格納してある復号途中結果D415から、6つの復号途中結果D415を、復号途中結果D410として読み出し、サイクリックシフト回路411に供給する。サイクリックシフト回路411は、制御部417から供給される制御信号D418に基づき、6つの復号途中結果D410をサイクリックシフトし、その結果を復号途中結果D4111乃至D4116(D411)として計算部412に供給する。 The decoding intermediate result storage memory 410 stores decoding intermediate results D415 1 to D415 6 (D415) (v), which are the results of the six second operations, supplied from the calculation unit 415. Then, the decoding intermediate result storage memory 410 reads six decoding intermediate results D415 as the decoding intermediate results D410 from the already stored decoding intermediate results D415, and supplies them to the cyclic shift circuit 411. The cyclic shift circuit 411 cyclically shifts the six decoding intermediate results D410 based on the control signal D418 supplied from the control unit 417, and the calculation unit 412 uses the results as decoding intermediate results D411 1 to D411 6 (D411). To supply.

計算部412は、LDPC符号の復号のための検査行列H´に対応する第1の演算を行う。   The calculation unit 412 performs a first operation corresponding to the parity check matrix H ′ for decoding the LDPC code.

即ち、計算部412は、計算器4121乃至4126から構成される。各計算器412kは、制御部417から供給される制御信号D419に基づき、サイクリックシフト回路411から供給される復号途中結果D411kと、復号途中結果格納用メモリ413から供給される、前回の計算部412による第1の演算の結果得られた復号途中結果D413kとを用いて、式(7)と式(8)にしたがって第1の演算を行い、その第1の演算によって求められた6つの復号途中結果D412k(uj)を、復号途中結果格納用メモリ413に供給する。 That is, the calculation unit 412 includes calculators 412 1 to 412 6 . Each calculator 412 k is based on the control signal D419 supplied from the control unit 417, and the previous decoding result D411 k supplied from the cyclic shift circuit 411 and the previous decoding result storage memory 413 are supplied. Using the decoding intermediate result D413 k obtained as a result of the first calculation by the calculation unit 412, the first calculation is performed according to the equations (7) and (8), and the first calculation is performed. Six decoding intermediate results D412 k (u j ) are supplied to the decoding intermediate result storage memory 413.

復号途中結果格納用メモリ413は、計算部412から供給される復号途中結果D4121乃至D4126を格納していく。そして、復号途中結果格納用メモリ413に記憶された復号途中結果D412は、上述したように復号途中結果D4131乃至D4136として読み出され、サイクリックシフト回路414と計算部412に供給される。 The decoding intermediate result storage memory 413 stores the decoding intermediate results D412 1 to D412 6 supplied from the calculation unit 412. Then, the decoding intermediate result D412 stored in the decoding intermediate result storage memory 413 is read as decoding intermediate results D413 1 to D413 6 as described above, and supplied to the cyclic shift circuit 414 and the calculation unit 412.

以上のように、第1の演算と第2の演算とが交互に所定の回数だけ繰り返し行われた後、計算部415による第2の演算の結果得られる復号途中結果D415が、出力部812に供給される。   As described above, after the first calculation and the second calculation are alternately repeated a predetermined number of times, the decoding intermediate result D415 obtained as a result of the second calculation by the calculation unit 415 is output to the output unit 812. Supplied.

出力部812は、計算部415から供給される、検査行列H´に対応する第2の演算の結果得られる復号途中結果D415を記憶する。そして、出力部812は、既に記憶してある復号途中結果D415を検査行列Hに対応する順に読み出し、復号結果として出力する。即ち、出力部812は、検査行列H´に対応する順に供給される復号途中結果D415を、検査行列Hに対応する順に並び替え、復号結果として出力する。これにより、検査行列Hで表されるLDPC符号の繰り返し復号の結果を出力することができる。   The output unit 812 stores the decoding intermediate result D415 obtained from the second calculation corresponding to the check matrix H ′ supplied from the calculation unit 415. Then, the output unit 812 reads the decoding intermediate result D415 already stored in the order corresponding to the check matrix H, and outputs it as a decoding result. That is, the output unit 812 rearranges the decoding intermediate results D415 supplied in the order corresponding to the check matrix H ′ in the order corresponding to the check matrix H, and outputs the result as a decoding result. Thereby, it is possible to output the result of iterative decoding of the LDPC code represented by the check matrix H.

図16は、図15の受信部811の詳細構成例を示すブロック図である。   FIG. 16 is a block diagram illustrating a detailed configuration example of the reception unit 811 in FIG. 15.

図16の受信部811は、インターリーバ831、セレクタ832、ビット幅調整回路833、受信メモリ834、および制御部835から構成される。   The reception unit 811 in FIG. 16 includes an interleaver 831, a selector 832, a bit width adjustment circuit 833, a reception memory 834, and a control unit 835.

なお、図16では、インターリーバ831とセレクタ832は、低速クロックCK1で動作し、ビット幅調整回路833、受信メモリ834、および制御部835は、高速クロックCK2(CK2>CK1)で動作する。 In FIG. 16, the interleaver 831 and the selector 832 operate with the low-speed clock CK 1 , and the bit width adjustment circuit 833, the reception memory 834, and the control unit 835 operate with the high-speed clock CK 2 (CK 2 > CK 1 ). Operate.

また、受信部811には、受信値U0から生成された受信データD416が2つずつ供給されるものとする。即ち、受信部811には、受信データD416が検査行列Hに対応する順序で2つずつ供給され、その受信データD416は、インターリーバ831とセレクタ832に供給される。 Further, the reception unit 811 is assumed to receive data D416 generated from the received value U 0 is supplied by two. That is, the reception unit 811 is supplied with two pieces of reception data D416 in the order corresponding to the check matrix H, and the reception data D416 is supplied to the interleaver 831 and the selector 832.

インターリーバ831は、低速クロックCK1に同期して、制御部835からの制御信号D834に基づいて、2つの受信データD416の順序を制御する。具体的には、受信データD416の、受信値U0の情報メッセージuに対応する成分、即ち検査行列Hの情報部に対応する成分(以下、情報成分という)が、インターリーバ831に供給される場合、制御信号D834は「0」となり、パリティビットに対応する成分、即ち検査行列Hのパリティ部に対応する成分(以下、パリティ成分という)がインターリーバ831に供給される場合、制御信号D834は「1」となる。 Interleaver 831, in synchronization with the low-speed clock CK 1, based on the control signal D834 from the control unit 835 controls the order of the two reception data D416. Specifically, the component corresponding to the information message u of the reception value U 0 in the reception data D 416, that is, the component corresponding to the information part of the check matrix H (hereinafter referred to as information component) is supplied to the interleaver 831. In this case, when the control signal D834 is “0” and a component corresponding to the parity bit, that is, a component corresponding to the parity part of the check matrix H (hereinafter referred to as a parity component) is supplied to the interleaver 831, the control signal D834 is “1”.

制御信号D834が「0」である場合、インターリーバ831は、2つの受信データD416をそのまま受信データD831としてセレクタ832に供給する。一方、制御信号D834が「1」である場合、インターリーバ831は、2つの受信データD416を検査行列H´に対応する順序に並び替え、並び替え後の2つの受信データD831をセレクタ832に供給する。即ち、インターリーバ831は、2つの受信データD416のパリティ成分の順序を制御する。   When the control signal D834 is “0”, the interleaver 831 supplies the two received data D416 as they are to the selector 832 as the received data D831. On the other hand, when the control signal D834 is “1”, the interleaver 831 rearranges the two reception data D416 in the order corresponding to the check matrix H ′, and supplies the two reception data D831 after the rearrangement to the selector 832. To do. That is, the interleaver 831 controls the order of the parity components of the two received data D416.

セレクタ832は、低速クロックCK1に同期して、制御部835からの制御信号D835に基づいて、2つの受信データD416またはインターリーバ831からの2つの受信データD831のいずれか一方を選択し、その選択した2つの受信データD416またはD831を、2つの受信データD832としてビット幅調整回路833にパラレルに供給する。 The selector 832, in synchronization with the low-speed clock CK 1, based on the control signal D835 from the control unit 835, selects one of two received data D831 from two received data D416 or interleaver 831, the The two selected reception data D416 or D831 are supplied in parallel to the bit width adjustment circuit 833 as two reception data D832.

具体的には、高速クロックCK2の速度が低速クロックCK1の速度の2倍未満であるとき、制御信号D835は「0」となり、高速クロックの速度が低速クロックの速度の2倍以上であるとき、制御信号D835は「1」となる。制御信号D835が「0」である場合、セレクタ832は、インターリーバ831からの2つの受信データD831を選択し、制御信号D835が「1」である場合、セレクタ832は、2つの受信データD416を選択する。 Specifically, when the speed of the high-speed clock CK 2 is smaller than 2 times the speed of the low-speed clock CK 1, the control signal D835 is "0", and more than twice the rate of the high-speed clock rate of the low-speed clock At this time, the control signal D835 becomes “1”. When the control signal D835 is “0”, the selector 832 selects the two received data D831 from the interleaver 831. When the control signal D835 is “1”, the selector 832 receives the two received data D416. select.

ビット幅調整回路833は、高速クロックCK2に同期して、制御部835からの制御信号D835に基づいて、セレクタ832からの受信データD832のビット幅を調整する。具体的には、制御信号D835が「0」である場合、ビット幅調整回路833は、例えば低速クロックCK1の1クロックに同期してパラレルに供給される2つの受信データD832を、高速クロックCK2の1クロックに同期して、2つの受信データD833として、パラレルに受信メモリ834に供給する。 Bit width adjusting circuit 833, in synchronization with the high-speed clock CK 2, based on the control signal D835 from the control unit 835 to adjust the bit width of the received data D832 from the selector 832. Specifically, when the control signal D835 is “0”, the bit width adjustment circuit 833 converts, for example, two received data D832 supplied in parallel in synchronization with one clock of the low-speed clock CK 1 into the high-speed clock CK. In synchronization with one clock of 2, the data is supplied in parallel to the reception memory 834 as two reception data D833.

一方、制御信号D835が「1」である場合、ビット幅調整回路833は、低速クロックCK1の1クロックに同期してパラレルに供給される2つの受信データD832のビット幅を調整し、高速クロックCK2の1クロックに同期して、1つずつ、受信データD833としてシリアルに受信メモリ834に供給する。即ち、ビット幅調整回路833は、高速クロックCK2の2クロック間で、2つの受信データD833をシリアルに受信メモリ834に供給する。 On the other hand, when the control signal D835 is "1", the bit width adjustment circuit 833 adjusts the two-bit width of the received data D832 supplied in parallel in synchronization with one clock of the low-speed clock CK 1, the high-speed clock in synchronization with one clock CK 2, one by one, and supplies the reception memory 834 as received data D833 serially. That is, the bit width adjustment circuit 833, between two clocks of the high-speed clock CK 2, and supplies the reception memory 834 two reception data D833 serially.

受信メモリ834は、例えば、RAM(Random Access Memory)により構成され、2つの受信データD833を同時に書き込んだり、6つの受信データD811を同時に読み出すことが可能である。なお、受信メモリ834のビット数はP(=6)と受信データD833の量子化ビット数を乗算した値であり、ワード数はn/P(=n0=18)である。受信メモリ834は、高速クロックCK2に同期して、制御部835からの制御信号D834に基づいて、ビット幅調整回路833から供給される受信データD833を、検査行列H´の6つの列に対応するものを同時に読出可能な順に、ビット方向(縦方向)(後述する図18)またはワード方向(横方向)に書き込む。 The reception memory 834 is composed of, for example, a RAM (Random Access Memory), and can simultaneously write two reception data D833 and read six reception data D811 simultaneously. The number of bits of the reception memory 834 is a value obtained by multiplying P (= 6) by the number of quantization bits of the reception data D833, and the number of words is n / P (= n 0 = 18). Reception memory 834, in synchronism with the high-speed clock CK 2, based on the control signal D834 from the control unit 835, the reception data D833 supplied from the bit width adjustment circuit 833, corresponding to the six columns of the check matrix H' Are written in the bit direction (vertical direction) (FIG. 18 described later) or the word direction (horizontal direction) in the order in which they can be read simultaneously.

具体的には、制御信号D834が「0」である場合、受信メモリ834は、受信データD833をビット方向に書き込む。一方、制御信号D834が「1」である場合、受信メモリ834は、受信データD833をワード方向に書き込む。即ち、情報成分に対応する受信データD833はビット方向に書き込まれ、パリティ成分に対応する受信データD833は、ワード方向に書き込まれる。   Specifically, when the control signal D834 is “0”, the reception memory 834 writes the reception data D833 in the bit direction. On the other hand, when the control signal D834 is “1”, the reception memory 834 writes the reception data D833 in the word direction. That is, the reception data D833 corresponding to the information component is written in the bit direction, and the reception data D833 corresponding to the parity component is written in the word direction.

受信メモリ834は、高速クロックCK2に同期して、既に記憶してある受信データD833を、ビット方向に6つ単位で読み出し、受信データD811として計算部415に供給する。 Reception memory 834, in synchronism with the high-speed clock CK 2, already reading the received data D833 which is stored in the bit direction six units, and supplies the calculation unit 415 as reception data D811.

制御部835は、低速クロックCK1に同期して、制御信号D834をインターリーバ831に供給するとともに、高速クロックCK2に同期して、制御信号D834を受信メモリ834に供給する。また、制御部835は、低速クロックCK1に同期して、制御信号D835をセレクタ832に供給する。 Control unit 835, in synchronization with the low-speed clock CK 1, supplies a control signal D834 is supplied to the interleaver 831, in synchronization with the high-speed clock CK 2, a control signal D834 to the reception memory 834. The control unit 835, in synchronization with the low-speed clock CK 1, supplies a control signal D835 to the selector 832.

図17は、図16のインターリーバ831の詳細構成例を示す図である。   FIG. 17 is a diagram illustrating a detailed configuration example of the interleaver 831 in FIG. 16.

図17のインターリーバ831は、5つのレジスタ851−1乃至851−5および5つのレジスタ852−1乃至852−5、並びにセレクタ853から供給される。   The interleaver 831 in FIG. 17 is supplied from five registers 851-1 to 851-5, five registers 852-1 to 852-5, and a selector 853.

インターリーバ831には、受信データD416が2つずつ供給され、そのうちの1つが受信データD851としてレジスタ851−1乃至851−5に順に記憶される。また、他の1つが受信データD852としてレジスタ852−1乃至852−5に順に記憶される。レジスタ851−1乃至851−5とレジスタ852−1乃至852−5は、記憶している受信データD851またはD852をそれぞれセレクタ853に供給する。また、2つの受信データD416は、それぞれ受信データD851またはD852として、セレクタ853に直接供給される。   Two pieces of received data D416 are supplied to the interleaver 831, one of which is sequentially stored in the registers 851-1 to 851-5 as received data D851. The other one is sequentially stored in the registers 852-1 to 852-5 as received data D852. The registers 851-1 to 851-5 and the registers 852-1 to 852-5 supply the received data D851 or D852 stored therein to the selector 853, respectively. The two reception data D416 are directly supplied to the selector 853 as reception data D851 or D852, respectively.

セレクタ853は、レジスタ851−1乃至851−5とレジスタ852−1乃至852−5のそれぞれから供給される5つの受信データD851またはD852と、直接供給される受信データD851またはD852のうち、いずれか2つの受信データD851またはD852を選択し、受信データD853とD854として出力する。受信データD853とD854は合わせられ、2つの受信データD831としてセレクタ832に供給される。   The selector 853 is one of five received data D851 or D852 supplied from each of the registers 851-1 to 851-5 and the registers 852-1 to 852-5 and directly received data D851 or D852. Two received data D851 or D852 are selected and output as received data D853 and D854. The received data D853 and D854 are combined and supplied to the selector 832 as two received data D831.

以上のように、インターリーバ831では、レジスタ851−1乃至851−5およびレジスタ852−1乃至852−5が、入力された受信データD416(受信データD851またはD852)を記憶し、セレクタ853が、そのレジスタ851−1乃至851−5およびレジスタ852−1乃至852−5に記憶されている受信データD416を選択して、受信データD831(受信データD853とD854)として出力することにより、入力される受信データD416と出力される受信データD831の順序を入れ替える。   As described above, in the interleaver 831, the registers 851-1 to 851-5 and the registers 852-1 to 852-5 store the input reception data D416 (reception data D851 or D852), and the selector 853 The received data D416 stored in the registers 851-1 to 851-5 and the registers 852-1 to 852-5 is selected and output as received data D831 (received data D853 and D854). The order of reception data D416 and output reception data D831 is switched.

次に、図18と図19を参照して、図16の受信メモリ834に記憶される受信データD833について説明する。   Next, reception data D833 stored in reception memory 834 in FIG. 16 will be described with reference to FIGS.

なお、以下の説明に用いる受信メモリ834のワード方向とは、図18に示すように、図中横方向であり、左端から順に0番アドレス、1番アドレス、2番アドレス、・・・という。また、受信メモリ834のビット方向とは、図中縦方向であり、上から順に0ビット目、1ビット目、2ビット目、・・・という。   As shown in FIG. 18, the word direction of the reception memory 834 used in the following description is the horizontal direction in the figure, and is referred to as address 0, address 1, address 2,. The bit direction of the reception memory 834 is the vertical direction in the figure, and is referred to as the 0th bit, the 1st bit, the 2nd bit,.

また、以下では、検査行列Hの情報部のm列目に対応する受信データD833の情報成分を、受信データImとも表し、検査行列Hのパリティ部のm列目に対応する受信データD833のパリティ成分を、受信データDmとも表す。 In the following, the information component of the received data D833 corresponding to the m-th column of the information part of the check matrix H, represents also a received data I m, of the received data D833 corresponding to the m-th column of the parity part of the check matrix H parity components, also denoted received data D m.

図19を参照して、受信メモリ834について説明する。なお、図19では、説明の便宜上、受信メモリ834のビットを、受信データD833の量子化ビットが1ビットであるとして説明する。   The reception memory 834 will be described with reference to FIG. In FIG. 19, for convenience of explanation, the bit of the reception memory 834 is described on the assumption that the quantization bit of the reception data D833 is 1 bit.

図19に示すように、受信メモリ834のビット数は、P(=6)と受信データD833の量子化ビット数を乗算した値であり、ワード数は、n/p(=18)である。   As shown in FIG. 19, the number of bits of the reception memory 834 is a value obtained by multiplying P (= 6) by the number of quantization bits of the reception data D833, and the number of words is n / p (= 18).

まず最初に、受信メモリ834は、制御部835から供給される制御信号D834に基づいて、ビット幅調整回路833から供給される2つの受信データI0とI1を、0番アドレスの0ビット目と1ビット目にそれぞれ記憶する。 First, the reception memory 834, based on the control signal D834 supplied from the control unit 835, two received data I 0 and I 1 supplied from the bit width adjustment circuit 833, the zeroth bit of the zeroth address Are stored in the first bit.

次に、受信メモリ834は、制御信号D834に基づいて、ビット幅調整回路833からの2つの受信データI2とI3を、0番アドレスの2ビット目と3ビット目にそれぞれ記憶する。 Next, the reception memory 834 stores the two reception data I 2 and I 3 from the bit width adjustment circuit 833 in the second and third bits of the 0th address, respectively, based on the control signal D834.

そして、同様の処理が繰り返され、受信メモリ834の0番アドレスの0乃至5ビット目には、受信データI0乃至I5がビット方向にそれぞれ記憶され、受信メモリ834の1番アドレスの0乃至5ビット目には、受信データI6乃至I11がビット方向にそれぞれ記憶される。以降も同様にして、受信メモリ834の2乃至11(=k0-1)番アドレスに、受信データI12乃至I71が記憶される。 Then, the same processing is repeated, and the received data I 0 to I 5 are stored in the bit direction in the 0th to 5th bits of the 0th address of the reception memory 834, respectively, and the 0th to 0th of the 1st address of the reception memory 834 are stored. In the fifth bit, received data I 6 to I 11 are stored in the bit direction, respectively. Similarly, the received data I 12 to I 71 are stored at addresses 2 to 11 (= k 0 −1) in the reception memory 834.

次に、受信メモリ834は、制御部835から供給される制御信号D834に基づいて、ビット幅調整回路833から供給される受信データD0を、12番アドレスの0ビット目に記憶する。また、受信メモリ834は、制御信号D834に基づいて、ビット幅調整回路833からの受信データD1を13番アドレスの0ビット目に記憶する。 Next, the reception memory 834, based on the control signal D834 supplied from the control unit 835, the received data D 0 to be supplied from the bit width adjustment circuit 833 is stored in the zeroth bit of the 12th address. The reception memory 834 stores the reception data D 1 from the bit width adjustment circuit 833 in the 0th bit of the 13th address based on the control signal D834.

そして、同様の処理が繰り返され、受信メモリ834の12乃至17(=n0-1)番アドレスの0ビット目には、受信データD0乃至D5がワード方向にそれぞれ記憶され、受信メモリ834の12乃至17番アドレスの1ビット目には、受信データD6乃至D11がワード方向にそれぞれ記憶される。以降も同様にして、受信メモリ834の2乃至6ビット目に、受信データD12乃至D35が記憶される。 The same processing is repeated, and the received data D 0 to D 5 are stored in the word direction in the 0th bit of the 12th to 17th (= n 0 −1) addresses of the reception memory 834, respectively. the first bit of the 12 to 17th address, the received data D 6 to D 11 are respectively stored in the word direction. Following the similar manner in the subsequent stages, the second to sixth bit of the received memory 834, received data D 12 to D 35 are stored.

ここで、12乃至17番アドレスの、ワード方向での順番が(n0-k0)×x+y(x=0,1,・・・,5,y=0,1,・・・,5)番目の受信データDmは、ビット方向での順番がP×y+x番目となる。なお、ビット方向の順番は、各番号アドレスの5ビット目の次が、右隣のアドレス(次の番号のアドレス)の0ビット目となるものとする。また、ワード方向の順番は、各ビットの5番アドレスの次が、直下のビット(次のビット)の0番アドレスとなるものとする。例えば、ビット方向での順番が6番目の受信データD833は、受信データD1となり、ワード方向での順番が6番目の受信データD833は受信データD6となる。 Here, the order of the 12th to 17th addresses in the word direction is (n 0 -k 0 ) × x + y (x = 0, 1,..., 5, y = 0, 1,... 5) The order of the received data Dm in the bit direction is P × y + xth. The order in the bit direction is such that the fifth bit after each number address is the 0th bit of the address on the right (the address of the next number). The order in the word direction is such that the next address of the 5th address of each bit is the 0th address of the immediately lower bit (next bit). For example, the received data D833 order is the sixth in the bit direction, the received data D 1, and the order in the word direction is 6 th received data D833 becomes the received data D 6.

上述したように、図11の検査行列Hのパリティ部の(n0-k0)×v+w列目の列は、図12の検査行列H´のパリティ部では、P×w+v列目の列となる。即ち、検査行列H´のパリティ部のP×w+v列目の列は、検査行列Hのパリティ部の(n0-k0)×v+w列目の列である。従って、受信メモリ834のワード方向に記憶される、検査行列Hのパリティ部の0列目から順に対応する受信データDmは、ビット方向の順番に見ると、検査行列H´のパリティ部の0列目から順に対応する受信データDmとなる。 As described above, (n 0 -k 0) of the parity part of the check matrix H of FIG. 11 × v + w-th column, in the parity part of the check matrix H'in FIG 12, P × w + v-th column of It becomes a column. That is, the P × w + v column of the parity part of the parity check matrix H ′ is the (n 0 −k 0 ) × v + w column of the parity part of the parity check matrix H. Therefore, the received data D m corresponding to the 0th column of the parity part of the parity check matrix H stored in the word direction of the reception memory 834 in order from the 0th column of the parity matrix is 0 in the parity part of the parity check matrix H ′. Corresponding reception data Dm is obtained from the column.

即ち、復号装置800では、検査行列H´の列に対応する受信データD811を用いて第2の演算を行うため、検査行列Hの列に対応する順に供給される受信データD416の順番を、検査行列H´の列に対応する順番に入れ替える必要がある。上述したように、検査行列Hと検査行列H´の列の順番は、情報部においては同一であるが、パリティ部においては異なる。従って、受信メモリ834は、受信データD831のパリティ成分をワード方向に記憶し、ビット方向に読み出すことにより、第2の演算を行う計算部415に、検査行列H´の6つの列に対応する受信データD811を同時に供給することができる。   That is, since the decoding apparatus 800 performs the second calculation using the reception data D811 corresponding to the column of the parity check matrix H ′, the order of the reception data D416 supplied in the order corresponding to the column of the parity check matrix H is checked. It is necessary to replace them in the order corresponding to the columns of the matrix H ′. As described above, the order of the columns of the check matrix H and the check matrix H ′ is the same in the information part, but is different in the parity part. Accordingly, the reception memory 834 stores the parity component of the reception data D831 in the word direction and reads it in the bit direction, thereby allowing the calculation unit 415 that performs the second calculation to receive the six columns of the check matrix H ′. Data D811 can be supplied simultaneously.

以上のように、図19の受信メモリ834のアドレスは、検査行列H´の6つの列に対応しており、受信メモリ834は、同一のアドレスの受信データD831をビット方向に読み出すことにより、検査行列H´の6つの列に対応する受信データD811を読み出すことができる。   As described above, the addresses of the reception memory 834 in FIG. 19 correspond to the six columns of the check matrix H ′, and the reception memory 834 reads the received data D831 at the same address in the bit direction, thereby The reception data D811 corresponding to the six columns of the matrix H ′ can be read out.

次に、図20と図21を参照して、図16の受信部811への受信データD416のパリティ成分の入力と、受信メモリ834への受信データDmの書き込みとを説明する。図20と図21において、横軸は時間を表している。 Next, with reference to FIGS. 20 and 21, an input parity component of the received data D416 to the reception unit 811 of FIG. 16, the writing of received data D m to the receiving memory 834 will be described. 20 and 21, the horizontal axis represents time.

なお、以下では、検査行列Hのm列に対応する受信データD416のパリティ成分を、受信データAmともいう。 In the following, a parity component of the received data D416 corresponding to m columns of the check matrix H, also referred to as received data A m.

図20は、高速クロックCK2の速度が低速クロックCK1の速度の2倍以上である場合の、受信データAmの入力と、受信データDmの書き込みとを説明するタイミングチャートである。 Figure 20 is a timing chart speed of the high speed clock CK 2 is described in the case where more than twice the speed of the low-speed clock CK 1, the input of the reception data A m, and writes the received data D m.

図20に示すように、受信部811には、受信データAmが、2つずつ入力される。例えば、受信部811には、受信データA0とA1、受信データA2とA3、受信データA4とA5、受信データA6とA7・・・が順にパラレルに入力される。 As shown in FIG. 20, the reception unit 811, receives the data A m is two by two inputs. For example, received data A 0 and A 1 , received data A 2 and A 3 , received data A 4 and A 5 , received data A 6 and A 7 .

図20では、高速クロックCK2の速度が低速クロックCK1の速度の2倍以上である、即ち制御信号D835が「1」であるので、セレクタ832は、受信部811に入力される2つの受信データAmを、ビット幅調整回路833に供給する。 In FIG. 20, since the speed of the high-speed clock CK 2 is twice or more the speed of the low-speed clock CK 1 , that is, the control signal D835 is “1”, the selector 832 receives the two receptions input to the reception unit 811. the data a m, and supplies the bit width adjustment circuit 833.

図20に示すように、ビット幅調整回路833は、セレクタ832から低速クロックCK1の1クロックに同期してパラレルに入力される2つの受信データAmを、高速クロックCK2の1クロックに同期して、1つずつ、受信データDmとして受信メモリ834にシリアルに供給し、書き込ませる。 As shown in FIG. 20, the bit width adjustment circuit 833, two received data A m inputted from the selector 832 in parallel in synchronization with one clock of the low-speed clock CK 1, synchronized to one clock of the high-speed clock CK 2 to, one by one, and supplies the serial to the reception memory 834 as received data D m, to write.

例えば、受信部811に低速クロックCK1に同期して、受信データA0とA1がパラレルに入力される場合、受信メモリ834は、高速クロックCK2の1クロックに同期して、受信データD0を12番アドレスの0ビット目に書き込んだ後、次の1クロックに同期して受信データD1を13番アドレスの0ビット目に書き込む。 For example, when the reception data A 0 and A 1 are input in parallel to the reception unit 811 in synchronization with the low-speed clock CK 1 , the reception memory 834 receives the reception data D in synchronization with one clock of the high-speed clock CK 2. 0 after writing the 0 bit of the 12th address, in synchronization with the next one clock writes the received data D 1 to 0 bit of 13th address.

以上のように、図20では、受信メモリ834以外のインターリーバ831やセレクタ832の動作クロックである低速クロックCK1の、2倍以上の速度の高速クロックCK2で受信メモリ834が動作するので、低速クロックCK1の1クロックの間に、2つの受信データDmを異なるアドレスに書き込むことができる。 As described above, in FIG. 20, the reception memory 834 operates with the high-speed clock CK 2 that is twice or more the low-speed clock CK 1 that is the operation clock of the interleaver 831 and the selector 832 other than the reception memory 834. during one clock of the low-speed clock CK 1, it can be written two received data D m to a different address.

その結果、復号装置800に受信データAmを2個ずつ同時に入力し、スループットを向上させることができる。 As a result, enter at the same time by two received data A m to the decoding device 800, it is possible to improve the throughput.

図21は、高速クロックCK2の速度が低速クロックCK1の速度の2倍未満である場合の、受信データAmの入力と、受信データDmの書き込みとを説明するタイミングチャートである。 Figure 21 is a timing chart speed of the high speed clock CK 2 is described when it is less than twice the rate of the slow clock CK 1, the input of the reception data A m, and writes the received data D m.

図21に示すように、受信部811には、図20と同様に、受信データA0とA1、受信データA2とA3、受信データA4とA5、受信データA6とA7・・・が順にパラレルに入力される。 As shown in FIG. 21, the receiving unit 811 has received data A 0 and A 1 , received data A 2 and A 3 , received data A 4 and A 5 , received data A 6 and A 7, as in FIG. Are inputted in parallel in order.

図21では、高速クロックCK2の速度が低速クロックCK1の速度の2倍未満である、即ち制御信号D835が「0」であるので、セレクタ832は、インターリーバ831から供給される受信データD831を、ビット幅調整回路833を介して受信メモリ834に供給する。 In FIG. 21, since the speed of the high-speed clock CK 2 is less than twice the speed of the low-speed clock CK 1 , that is, the control signal D835 is “0”, the selector 832 receives the received data D831 supplied from the interleaver 831. Is supplied to the reception memory 834 via the bit width adjustment circuit 833.

即ち、インターリーバ831(図17)には、受信データA0とA1、受信データA2とA3、受信データA4とA5、受信データA6とA7・・・がパラレルに順に入力され、レジスタ851−1乃至851−5は、パラレルに入力された2つの受信データAmのうちの一方(例えば、受信データA0、A2,A4,A6,・・・)を受信データD851として記憶し、レジスタ851−2乃至852−5は、他方(例えば、受信データA1、A3,A5,A7,・・・)を受信データD852として記憶する。そして、レジスタ851−1乃至851−5と852−1乃至852−5は、受信データAm(受信データD851またはD852)をそれぞれセレクタ853に供給する。また、2つの受信データAmは、それぞれ、受信データD851またはD852として、直接セレクタ853に供給される。 That is, the interleaver 831 (FIG. 17) receives received data A 0 and A 1 , received data A 2 and A 3 , received data A 4 and A 5 , received data A 6 and A 7. is input, the register 851-1 to 851-5, one of the two received data a m entered in parallel (e.g., received data a 0, a 2, a 4 , a 6, ···) and stored as received data D851, the register 851-2 to 852-5, on the other hand (e.g., the received data a 1, a 3, a 5 , a 7, ···) stores as received data D852. Then, the register 851-1 to 851-5 and 852-1 to 852-5 and supplies the received data A m (reception data D851 or D852), each selector 853. The two received data A m, respectively, as received data D851 or D852, supplied directly to the selector 853.

セレクタ853は、まず最初に、受信データA0とA6を選択し、受信データD853とD854としてそれぞれ出力する。次に、セレクタ853は、受信データA1とA7を選択し、受信データD853とD854としてそれぞれ出力する。その後、セレクタ853は、受信データA2とA8、受信データA3とA9・・・の順に選択して出力する。 The selector 853 first selects the reception data A 0 and A 6 and outputs them as reception data D853 and D854, respectively. Next, the selector 853 selects the reception data A 1 and A 7 and outputs them as reception data D853 and D854, respectively. Thereafter, the selector 853 selects and outputs the received data A 2 and A 8 , the received data A 3 and A 9 .

即ち、インターリーバ831にパラレルで入力される2つの受信データAmを、6(=n0-k0)つ単位(3回のパラレル入力単位)で交互に系列#1または系列#2というと、セレクタ853は、系列#1(例えば、受信データA0乃至A5)と系列#2(例えば、受信データA6乃至A11)を、受信データA0とA6から、入力された順に2つずつ選択し、出力する。即ち、セレクタ853は、受信メモリ834のビット方向に書き込まれる受信データDmに対応する受信データAmを、2つずつ選択して出力する。 In other words, the two received data A m that is inputted in parallel to the interleaver 831, 6 (= n 0 -k 0) one unit (three parallel input units) sequence alternately # 1 or say sequence # 2 The selector 853 selects the sequence # 1 (for example, received data A 0 to A 5 ) and the sequence # 2 (for example, received data A 6 to A 11 ) in the order of input from the received data A 0 and A 6. Select and output one by one. That is, the selector 853, the received data A m corresponding to the received data D m to be written in the bit direction of the reception memory 834, and outputs two by two select.

インターリーバ831のセレクタ853により出力された2つの受信データAmは、セレクタ832とビット幅調整回路833を介して、2つの受信データDmとして受信メモリ834に供給される。そして、受信メモリ834は、高速クロックCK2の1クロックに同期して、2つの受信データAmを同一のアドレスにパラレルに書き込む。 Two received data A m output by the selector 853 of the interleaver 831 via the selector 832 and the bit width adjustment circuit 833, is supplied to the reception memory 834 as two of the received data D m. The reception memory 834 is synchronized to one clock of the high-speed clock CK 2, written in parallel to the two receiving data A m to the same address.

具体的には、図21に示すように、受信メモリ834には、受信データD0とD6、受信データD1とD7、受信データD2とD8、受信データD3とD9・・・が順にパラレルに供給される。そして、受信メモリ834は、まず最初に、高速クロックCK2の1クロックに同期して、2つの受信データD0とD6を、12番アドレスの0ビット目と1ビット目にパラレルに書き込む。以降同様にして、受信メモリ834は、受信データD1とD7、受信データD2とD8、受信データD3とD9・・・を、13番アドレス、14番アドレス、15番アドレス・・・の0ビット目と1ビット目にパラレルで書き込む。 More specifically, as shown in FIG. 21, the reception memory 834, received data D 0 and D 6, received data D 1 and D 7, the received data D 2 and D 8, the received data D 3 and D 9 · .. are supplied in parallel in order. The reception memory 834 first writes the two reception data D 0 and D 6 in parallel with the 0th bit and the 1st bit of the 12th address in synchronization with one clock of the high-speed clock CK 2 . Similarly, the reception memory 834 stores the reception data D 1 and D 7 , the reception data D 2 and D 8 , the reception data D 3 and D 9 ..., The 13th address, the 14th address, the 15th address. ..Write in parallel to the 0th and 1st bits.

以上のように、インターリーバ831は、受信メモリ834のビット方向に書き込まれる受信データDmに対応する受信データAmを、2つずつ選択して出力するので、受信メモリ834は、2つの受信データDmをパラレルに書き込むことができる。これにより、高速クロックCK2が、低速クロックCK1の2倍未満である場合においても、低速クロックCK1の1クロックの間に、2つの受信データDmを書き込むことができる。 As described above, the interleaver 831, the received data A m corresponding to the received data D m to be written in the bit direction of the reception memory 834, since the output two by two by selecting, receiving memory 834, two receiving data can be written D m in parallel. Thus, the high-speed clock CK 2 is, when it is less than twice the low-speed clock CK 1 also during one clock of the low-speed clock CK 1, it is possible to write two received data D m.

その結果、高速クロックCK2の速度を低速クロックCK1の速度の2倍以上に上げずに、復号装置800のスループットを向上させることができる。 As a result, the throughput of the decoding device 800 can be improved without increasing the speed of the high-speed clock CK 2 to more than twice the speed of the low-speed clock CK 1 .

図22は、図15の計算部412の計算器412kの構成例を示すブロック図である。 FIG. 22 is a block diagram illustrating a configuration example of the calculator 412 k of the calculation unit 412 in FIG.

図22では、前回の計算部412による第1の演算の結果得られる各復号途中結果D412k(D413k)(udv)が符号ビットを合わせて合計6ビット(bit)に量子化され、計算部415による第2の演算の結果得られる各復号途中結果D415(D411k)(v)が9ビットに量子化されているものとして、計算器412kを表している。さらに、図22の計算器412kには、高速クロックCK2が供給され、この高速クロックCK2は、必要なブロックに供給されるようになっている。そして、各ブロックは、高速クロックCK2に同期して処理を行う。 In FIG. 22, each decoding intermediate result D412 k (D413 k ) (u dv ) obtained as a result of the first calculation by the previous calculation unit 412 is quantized to a total of 6 bits (bits) including the sign bit, The calculator 412 k is represented on the assumption that each decoding intermediate result D415 (D411 k ) (v) obtained as a result of the second calculation by the unit 415 is quantized to 9 bits. Further, a high-speed clock CK 2 is supplied to the calculator 412 k in FIG. 22, and this high-speed clock CK 2 is supplied to a necessary block. Each block performs a synchronization and processing the high-speed clock CK 2.

図22の計算器412kは、制御部417から供給される制御信号D419に基づいて、復号途中結果格納用メモリ413から1つずつ読み込まれる、前回の計算部412による第1の演算の結果得られた復号途中結果D413k(udv)と、サイクリックシフト回路411から1つずつ読み込まれる復号途中結果D411k(v)とを用いて、式(7)と式(8)にしたがう第1の演算を行う。 The calculator 412 k in FIG. 22 obtains the result of the first calculation by the previous calculation unit 412 that is read one by one from the decoding intermediate result storage memory 413 based on the control signal D419 supplied from the control unit 417. and it was decoded intermediate results D413 k (u dv), by using the cyclic shift circuit 411 one by one from the decoding intermediate results to be read D411 k (v), first according to equation (8) and equation (7) Perform the operation.

即ち、計算器412kには、サイクリックシフト回路411から供給される6つの9ビットの復号途中結果D4111乃至D4116(v)のうちの、1つの復号途中結果D411kが供給されるとともに、復号途中結果格納用メモリ413から供給される、前回の計算部412による演算の結果である6つの6ビットの復号途中結果D4131乃至D4136(uj)のうちの、前回の計算部412による演算の結果である1つの復号途中結果D413kが供給され、その9ビットの復号途中結果D411k(v)と6ビットの復号途中結果D413k(udv)が、減算器431に供給される。また、計算器412kには、制御部417から制御信号D419が供給され、その制御信号D419がセレクタ435とセレクタ442に供給される。 That is, the calculator 412 k is supplied with one decoding intermediate result D411 k among the six 9-bit decoding intermediate results D411 1 to D411 6 (v) supplied from the cyclic shift circuit 411. The previous calculation unit 412 out of the six 6-bit decoding intermediate results D413 1 to D413 6 (u j ), which are supplied from the decoding intermediate result storage memory 413 and are the result of the calculation by the previous calculation unit 412. one decoding intermediate results D413 k is the calculated result is supplied by its 9-bit decoding intermediate results D411 k (v) and 6-bit decoding intermediate results D413 k (u dv) is supplied to the subtracter 431 The Further, the control signal D419 is supplied from the control unit 417 to the calculator 412 k , and the control signal D419 is supplied to the selector 435 and the selector 442.

減算器431は、9ビットの復号途中結果D411k(v)から6ビットの復号途中結果D413k(uj)を減算し、その6ビットの減算値D431(vi)を出力する。即ち、減算器431は、式(8)にしたがって演算を行い、その演算の結果である減算値D431を出力する。 Subtractor 431, 9-bit decoding intermediate results D411 k (v) from 6-bit decoding intermediate results subtracted D413 k (u j), and outputs the 6-bit subtraction value D431 (v i). That is, the subtractor 431 performs an operation according to the equation (8), and outputs a subtraction value D431 that is the result of the operation.

減算器431により出力された6ビットの減算値D431のうち、最上位ビットの正負を示す符号ビットD432(sign(vi))がEXOR回路440に供給され、下位5ビットの絶対値D433(|vi|)がLUT432に供給される。 Of the 6-bit subtraction value D431 output by the subtractor 431, the sign bit D432 (sign (v i )) indicating the sign of the most significant bit is supplied to the EXOR circuit 440, and the absolute value D433 (| v i |) is supplied to the LUT 432.

LUT432は、絶対値D433(|vi|)に対して、式(7)におけるφ(|vi|)の演算を行った5ビットの演算結果D434(φ(|vi|))を読み出し、加算器433とFIFOメモリ438に供給する。 The LUT 432 reads out the 5-bit calculation result D434 (φ (| v i |)) obtained by performing the calculation of φ (| v i |) in Expression (7) with respect to the absolute value D433 (| v i |). To the adder 433 and the FIFO memory 438.

加算器433は、演算結果D434(φ(|vi|))とレジスタ434に格納されている9ビットの値D435とを加算することにより、演算結果D434を積算し、その結果得られる9ビットの積算値をレジスタ434に再格納する。なお、検査行列H´の1行に亘る全ての1に対応する復号途中結果D411kから求められた絶対値D433(|vi|)に対する演算結果D434が積算された場合、レジスタ434はリセットされる。 The adder 433 adds the operation result D434 (φ (| v i |)) and the 9-bit value D435 stored in the register 434, thereby accumulating the operation result D434, and 9 bits obtained as a result. Is stored again in the register 434. Note that when the operation result D434 for the absolute value D433 (| v i |) obtained from the decoding intermediate result D411 k corresponding to all 1s in one row of the check matrix H ′ is accumulated, the register 434 is reset. The

検査行列H´の1行に亘る復号途中結果D411kが1つずつ読み込まれ、レジスタ434に1行分の演算結果D434が積算された積算値が格納された場合、制御部417から供給される制御信号D419は、0から1に変化する。例えば、行の重み(row weight)が「9」である場合、制御信号D419は、1から8クロック目までは、「0」となり、9クロック目では「1」となる。 When the decoding intermediate result D411 k for one row of the check matrix H ′ is read one by one and the accumulated value obtained by accumulating the operation result D434 for one row is stored in the register 434, it is supplied from the control unit 417. The control signal D419 changes from 0 to 1. For example, when the row weight is “9”, the control signal D419 is “0” from the first to the eighth clock, and “1” at the ninth clock.

制御信号D419が「1」の場合、セレクタ435は、レジスタ434に格納されている値、即ち、検査行列H´の1行に亘る全ての1に対応する復号途中結果D411k(v)から求められたφ(|vi|)が積算された9ビットの値D435(i=1からi=dcまでのΣφ(|vi|))を選択し、値D436として、レジスタ436に出力して格納させる。レジスタ436は、格納している値D436を、9ビットの値D437として、セレクタ435と加算器437に供給する。制御信号D419が「0」の場合、セレクタ435は、レジスタ436から供給された値D437を選択し、レジスタ436に出力して再格納させる。即ち、検査行列H´の1行に亘る全ての1に対応する復号途中結果D411k(v)から求められたφ(|vi|)が積算されるまで、レジスタ436は、前回積算されたφ(|vi|)を、セレクタ435と加算器437に供給する。 When the control signal D419 is “1”, the selector 435 obtains the value stored in the register 434, that is, the decoding intermediate result D411 k (v) corresponding to all 1s over one row of the check matrix H ′. It was φ (| v i |) 9-bit value that is accumulated D435 (Sigma] [phi of i = 1 through i = d c (| v i |)) is selected, as a value D436, and outputs this to the register 436 To store. The register 436 supplies the stored value D436 to the selector 435 and the adder 437 as a 9-bit value D437. When the control signal D419 is “0”, the selector 435 selects the value D437 supplied from the register 436, outputs it to the register 436, and stores it again. That is, until the φ (| v i |) obtained from the decoding intermediate result D411 k (v) corresponding to all 1s over one row of the check matrix H ′ is accumulated, the register 436 is accumulated last time. φ (| v i |) is supplied to the selector 435 and the adder 437.

一方、FIFOメモリ438は、レジスタ436から新たな値D437(i=1からi=dcまでのΣφ(|vi|))が出力されるまでの間、LUT432が出力した演算結果D434(φ(|vi|))を遅延し、5ビットの値D438として減算器437に供給する。減算器437は、レジスタ436から供給された値D437から、FIFOメモリ438から供給された値D438を減算し、その減算結果を、5ビットの減算値D439としてLUT439に供給する。即ち、減算器437は、検査行列H´の1行に亘る全ての1に対応する復号途中結果D411k(v)から求められたφ(|vi|)の積算値から、求めたい枝に対応する復号途中結果、即ち、検査行列H´の所定の1に対応する復号途中結果D411k(v)から求められたφ(|vi|)を減算して、その減算値(i=1からi=dc−1までのΣφ(|vi|))を減算値D439としてLUT439に供給する。 On the other hand, FIFO memories 438, (from i = 1 i = Σφ to d c (| v i |) ) a new value D437 from the register 436 until it is output, the result calculation LUT432 has output D434 (phi (| v i |)) is delayed and supplied to the subtractor 437 as a 5-bit value D438. The subtracter 437 subtracts the value D438 supplied from the FIFO memory 438 from the value D437 supplied from the register 436, and supplies the subtraction result to the LUT 439 as a 5-bit subtraction value D439. In other words, the subtracter 437 determines the branch to be obtained from the integrated value of φ (| v i |) obtained from the decoding intermediate result D411 k (v) corresponding to all 1s over one row of the check matrix H ′. The corresponding decoding intermediate result, that is, φ (| v i |) obtained from the decoding intermediate result D411 k (v) corresponding to the predetermined 1 of the check matrix H ′ is subtracted, and the subtraction value (i = 1). Σφ (| v i |) from i to d c −1) is supplied to the LUT 439 as the subtraction value D439.

LUT439は、減算値D439(i=1からi=dc−1までのΣφ(|vi|))に対して、式(7)におけるφ-1(Σφ(|vi|))の演算を行った5ビットの演算結果D440(φ-1(Σφ(|vi|)))を出力する。 The LUT 439 calculates φ −1 (Σφ (| v i |)) in Expression (7) for the subtraction value D439 (Σφ (| v i |) from i = 1 to i = d c −1). A 5-bit calculation result D440 (φ −1 (Σφ (| v i |))) is output.

以上の処理と並行して、EXOR回路440は、レジスタ441に格納されている1ビットの値D442と符号ビットD432との排他的論理和を演算することにより、符号ビットどうしの乗算を行い、1ビットの乗算結果D441をレジスタ441に再格納する。なお、検査行列H´の1行に亘る全ての1に対応する復号途中結果D411kから求められた符号ビットD432が乗算された場合、レジスタ441はリセットされる。 In parallel with the above processing, the EXOR circuit 440 performs an exclusive OR operation between the 1-bit value D442 stored in the register 441 and the sign bit D432, thereby multiplying the sign bits by 1 The bit multiplication result D441 is re-stored in the register 441. Incidentally, when the sign bits D432 obtained from the decoding intermediate results D411 k corresponding to all 1 across one line of the parity check matrix H'have been multiplied, the register 441 is reset.

検査行列H´の1行に亘る全ての1に対応する復号途中結果D411から求められた符号ビットD432が乗算された乗算結果D441(i=1からdcまでのΠsign(vi))がレジスタ441に格納された場合、制御部417から供給される制御信号D419は、「0」から「1」に変化する。 (Paisign from i = 1 to d c (v i)) decoding intermediate results multiplied result sign bit D432 obtained is multiplied from D411 D441 corresponding to all 1 across one line of the parity check matrix H'registers When stored in 441, the control signal D419 supplied from the control unit 417 changes from “0” to “1”.

制御信号D419が「1」の場合、セレクタ442は、レジスタ441に格納されている値、即ち、検査行列H´の1行に亘る全ての1に対応する復号途中結果D411kから求められた符号ビットD432が乗算された値D442(i=1からi=dcまでのΠsign(vi))を選択し、1ビットの値D443としてレジスタ443に出力して格納させる。レジスタ443は、格納している値D443を、1ビットの値D444としてセレクタ442とEXOR回路445に供給する。制御信号D419が「0」の場合、セレクタ442は、レジスタ443から供給された値D444を選択し、レジスタ443に出力して再格納させる。即ち、検査行列H´の1行に亘る全ての1に対応する復号途中結果D411k(v)から求められた符号ビットD432が乗算されるまで、レジスタ443は、前回格納した値を、セレクタ442とEXOR回路445に供給する。 When the control signal D419 is “1”, the selector 442 uses the value stored in the register 441, that is, the code obtained from the decoding intermediate result D411 k corresponding to all 1s over one row of the check matrix H ′. select (Πsign (v i) from i = 1 to i = d c) bit D432 is multiplied value D442, to store and output as 1-bit value D443 to the register 443. The register 443 supplies the stored value D443 to the selector 442 and the EXOR circuit 445 as a 1-bit value D444. When the control signal D419 is “0”, the selector 442 selects the value D444 supplied from the register 443, outputs it to the register 443, and stores it again. That is, until the sign bit D432 obtained from the decoding intermediate result D411 k (v) corresponding to all 1s in one row of the check matrix H ′ is multiplied, the register 443 stores the previously stored value in the selector 442. And supplied to the EXOR circuit 445.

一方、FIFOメモリ444は、レジスタ443から新たな値D444(i=1からi=dcまでのΠsign(vi))がEXOR回路445に供給されるまでの間、符号ビットD432を遅延し、1ビットの値D445としてEXOR回路445に供給する。EXOR回路445は、レジスタ443から供給された値D444と、FIFOメモリ444から供給された値D445との排他的論理和を演算することにより、値D444を、値D445で除算し、1ビットの除算結果を除算値D446として出力する。即ち、EXOR回路445は、検査行列H´の1行に亘る全ての1に対応する復号途中結果D411kから求められた符号ビットD432(sign(vi))の乗算値を、検査行列H´の所定の1に対応する復号途中結果D411kから求められた符号ビットD432(sign(vi))で除算して、その除算値(i=1からi=dc−1までのΠsign(vi))を除算値D446として出力する。 On the other hand, FIFO memories 444, between (from i = 1 i = Πsign to d c (v i)) a new value D444 from the register 443 until is supplied to the EXOR circuit 445 delays the sign bit D432, The 1-bit value D445 is supplied to the EXOR circuit 445. The EXOR circuit 445 calculates the exclusive OR of the value D444 supplied from the register 443 and the value D445 supplied from the FIFO memory 444, thereby dividing the value D444 by the value D445 and dividing by 1 bit. The result is output as the division value D446. That is, the EXOR circuit 445 uses the multiplication value of the sign bit D432 (sign (v i )) obtained from the decoding intermediate result D411 k corresponding to all 1s over one row of the check matrix H ′ as the check matrix H ′. Is divided by the sign bit D432 (sign (v i )) obtained from the decoding intermediate result D411 k corresponding to predetermined one of Πsign (v from i = 1 to i = d c −1. i )) is output as the division value D446.

計算器412kでは、LUT439から出力された5ビットの演算結果D440を下位5ビットとするとともに、EXOR回路445から出力された1ビットの除算値D446を最上位ビットとする合計6ビットが復号途中結果D412k(uj)として出力される。 In the calculator 412 k , the 5-bit calculation result D440 output from the LUT 439 is set to the lower 5 bits, and a total of 6 bits including the 1-bit division value D446 output from the EXOR circuit 445 as the most significant bit is being decoded. The result is output as D412 k (u j ).

以上のように、計算器412kでは、式(7)と式(8)の演算が行われ、復号途中結果ujが求められる。 As described above, the calculator 412 k performs the calculations of Expressions (7) and (8), and obtains a decoding intermediate result u j .

なお、図12の検査行列H´の行の重みの最大は9であるため、即ち、計算器412kに供給される復号途中結果D411k(v)と復号途中結果D413k(udv)の最大数は9であるため、計算器412kは、9個の復号途中結果D411kから求められる9個の演算結果D434(φ(|vi|))を遅延させるFIFOメモリ438と、9個の符号ビットD432を遅延させるFIFOメモリ444を有している。行の重みが9未満の行のメッセージを計算するときには、FIFOメモリ438とFIFOメモリ444における遅延量が、その行の重みの値に減らされる。 Incidentally, since the maximum weight of the rows of the check matrix H'in FIG. 12 is a 9, i.e., the calculator 412 k decoding intermediate results supplied to D411 k (v) decoding intermediate results D413 k of (u dv) Since the maximum number is 9, the calculator 412 k includes nine FIFO memories 438 that delay nine calculation results D434 (φ (| v i |)) obtained from the nine decoding intermediate results D411 k , and nine FIFO memory 444 is provided for delaying the sign bit D432. When calculating a message for a row with a row weight less than 9, the amount of delay in the FIFO memory 438 and FIFO memory 444 is reduced to the value of the row weight.

図23は、図15の計算部415の計算器415kの構成例を示すブロック図である。 FIG. 23 is a block diagram illustrating a configuration example of the calculator 415 k of the calculation unit 415 of FIG.

なお、図23では、計算部412による第1の演算の結果得られる各復号途中結果D412k(D414k)(uj)が符号ビットを合わせて合計6ビットに量子化されているものとして、計算器415kを表している。さらに、図23の計算器415kには、高速クロックCK2が供給され、この高速クロックCK2は、必要なブロックに供給されるようになっている。そして、各ブロックは、高速クロックCK2に同期して処理を行う。 In FIG. 23, it is assumed that each decoding intermediate result D412 k (D414 k ) (u j ) obtained as a result of the first calculation by the calculation unit 412 is quantized into a total of 6 bits including the sign bit, Represents the calculator 415 k . Further, a high-speed clock CK 2 is supplied to the calculator 415 k of FIG. 23, and this high-speed clock CK 2 is supplied to a necessary block. Each block performs a synchronization and processing the high-speed clock CK 2.

図23の計算器415kは、制御部417から供給される制御信号D422に基づいて、受信用メモリ416から1つずつ読み込まれる受信データD811k(u0i)と、サイクリックシフト回路414から1つずつ読み込まれる復号途中結果D414k(uj)とを用いて、式(5)にしたがう第2の演算を行う。 The calculator 415 k in FIG. 23 receives received data D811 k (u 0i ) read from the receiving memory 416 one by one based on the control signal D422 supplied from the control unit 417 and the cyclic shift circuit 414 to 1 A second calculation according to the equation (5) is performed using the decoding intermediate result D414 k (u j ) read one by one.

即ち、計算器415kでは、サイクリックシフト回路414から、検査行列H´の各行の1に対応する6ビットの復号途中結果D414k(uj)が1つずつ読み込まれ、その復号途中結果D414が、加算器471に供給される。また、計算器415kでは、受信用メモリ416から6ビットの受信データD811kが1つずつ読み込まれ、加算器475に供給される。さらに、計算器415kには、制御部417から制御信号D422が供給され、その制御信号D422は、セレクタ473に供給される。 That is, in the calculator 415 k , a 6-bit decoding intermediate result D414 k (u j ) corresponding to 1 of each row of the check matrix H ′ is read from the cyclic shift circuit 414 one by one, and the decoding intermediate result D414 is read. Is supplied to the adder 471. The calculator 415 k reads 6-bit reception data D811 k one by one from the reception memory 416 and supplies the read data D811 k to the adder 475. Further, the control signal D422 is supplied from the control unit 417 to the calculator 415 k , and the control signal D422 is supplied to the selector 473.

加算器471は、復号途中結果D414k(uj)とレジスタ472に格納されている9ビットの値D471とを加算することにより、復号途中結果D414kを積算し、その結果得られる9ビットの積算値を、レジスタ472に再格納する。なお、検査行列H´の1列に亘る全ての1に対応する復号途中結果D414kが積算された場合、レジスタ472はリセットされる。 The adder 471 by adding the decoded intermediate results D414 k (u j) a register 472 to store has been has 9-bit value D471, the decoding intermediate result by integrating D414 k, of 9 bits obtained as a result The integrated value is stored again in the register 472. Incidentally, if the decoding intermediate results D414 k corresponding to all 1 across one row of the check matrix H'is integrated, the register 472 is reset.

検査行列H´の1列に亘る復号途中結果D414kが1つずつ読み込まれ、レジスタ472に1列分の復号途中結果D414kが積算された値が格納された場合、制御部417から供給される制御信号D422は、「0」から「1」に変化する。例えば、列の重みが「5」である場合、制御信号D422は、1から4クロック目までは「0」となり、5クロック目では「1」となる。 If read in one by one the decoding intermediate results D414 k across one row of the check matrix H ', the value of the decoding intermediate results D414 k for one column is accumulated in the register 472 is stored, supplied from the control unit 417 The control signal D422 changes from “0” to “1”. For example, when the column weight is “5”, the control signal D422 is “0” from the first to the fourth clock, and “1” at the fifth clock.

制御信号D422が「1」の場合、セレクタ473は、レジスタ472に格納されている値、即ち、検査行列H´の1列に亘る全ての枝からの復号途中結果D414k(uj)が積算された9ビットの値D471(j=1からdVまでのΣuj)を選択し、レジスタ474に出力して格納させる。レジスタ474は、格納している値D471を、9ビットの値D472として、セレクタ473と加算器475に供給する。制御信号D422が「0」の場合、セレクタ473は、レジスタ474から供給された値D472を選択し、レジスタ474に出力し再格納させる。即ち、検査行列H´の1列に亘る全ての枝からの復号途中結果D414k(uj)が積算されるまで、レジスタ474は、前回積算された値を、セレクタ473と加算器475に供給する。 When the control signal D422 is “1”, the selector 473 accumulates the values stored in the register 472, that is, the decoding intermediate results D414 k (u j ) from all the branches over one column of the check matrix H ′. (from j = 1? uj j to d V) 9-bit value D471 which is selected and is stored in the output to the register 474. The register 474 supplies the stored value D471 to the selector 473 and the adder 475 as a 9-bit value D472. When the control signal D422 is “0”, the selector 473 selects the value D472 supplied from the register 474, outputs it to the register 474, and stores it again. That is, the register 474 supplies the previously accumulated values to the selector 473 and the adder 475 until the decoding intermediate results D414 k (u j ) from all the branches over one column of the check matrix H ′ are accumulated. To do.

加算器475は、9ビットの値D472と、受信用メモリ416から供給された6ビットの受信データD811kとを加算して、その結果得られる6ビットの値を復号途中結果D415k(v)として出力する。 The adder 475 adds the 9-bit value D472 and the 6-bit reception data D811 k supplied from the reception memory 416, and decodes the 6-bit value obtained as a result D415 k (v) Output as.

以上のように、計算器415kでは、式(5)の演算が行われ、復号途中結果vが求められる。 As described above, the calculator 415 k performs the calculation of Expression (5) and obtains a decoding intermediate result v.

なお、図12の検査行列H´の列の重みの最大は5であるため、即ち、計算器415kに供給される復号途中結果ujの最大数は5であるため、計算器415kは、6ビットの復号途中結果ujを最大5個加算する。従って、計算器415kの出力は、9ビットの値となっている。 Since the maximum weight of the column of the parity check matrix H ′ in FIG. 12 is 5, that is, the maximum number of decoding intermediate results u j supplied to the calculator 415 k is 5, the calculator 415 k is , A maximum of five 6-bit decoding intermediate results u j are added. Therefore, the output of the calculator 415 k is a 9-bit value.

図24は、図15の出力部812の詳細構成例を示している。   FIG. 24 shows a detailed configuration example of the output unit 812 of FIG.

図24の出力部812は、復号結果メモリ901、ビット幅調整回路902、デインターリーバ903、セレクタ904、および制御部905から構成される。   The output unit 812 in FIG. 24 includes a decoding result memory 901, a bit width adjustment circuit 902, a deinterleaver 903, a selector 904, and a control unit 905.

なお、図24では、復号結果メモリ901、ビット幅調整回路902、および制御部905は、高速クロックCK2(CK2>CK3)で動作し、デインターリーバ903とセレクタ904は低速クロックCK3で動作する。なお、図16の低速クロックCK1と図24の低速クロックCK3は同一であっても異なっていてもよい。 In FIG. 24, the decoding result memory 901, the bit width adjustment circuit 902, and the control unit 905 operate with the high-speed clock CK 2 (CK 2 > CK 3 ), and the deinterleaver 903 and the selector 904 operate with the low-speed clock CK 3. Works with. Note that the low-speed clock CK 1 in FIG. 16 and the low-speed clock CK 3 in FIG. 24 may be the same or different.

出力部812には、計算部415(図23)から、6つの復号途中結果D415が検査行列H´に対応する順に供給され、復号結果メモリ901に供給される。   Six decoding intermediate results D415 are supplied from the calculation unit 415 (FIG. 23) to the output unit 812 in the order corresponding to the check matrix H ′, and are supplied to the decoding result memory 901.

復号結果メモリ901は、例えば、RAMにより構成され、6つの復号途中結果D415を同時に書き込んだり、2つの復号結果D901を同時に読み出すことが可能である。なお、復号結果メモリ901のビット数はP(=6)と復号途中結果D415の量子化ビット数を乗算した値であり、ワード数はn/P(=18)である。復号結果メモリ901は、高速クロックCK2に同期して、復号途中結果D415をビット方向に書き込む。 The decoding result memory 901 is constituted by, for example, a RAM, and can simultaneously write six decoding intermediate results D415 and simultaneously read two decoding results D901. The number of bits in the decoding result memory 901 is a value obtained by multiplying P (= 6) by the number of quantization bits of the decoding intermediate result D415, and the number of words is n / P (= 18). Decoding result memory 901, in synchronism with the high-speed clock CK 2, and writes the decoded intermediate results D415 in the bit direction.

また、復号結果メモリ901は、高速クロックCK2に同期して、既に記憶してある復号途中結果D415を、制御部905から供給される制御信号D906に基づいて、ビット方向またはワード方向に読み出し、復号結果D901としてビット幅調整回路902に供給する。 Moreover, the decoding result memory 901, in synchronism with the high-speed clock CK 2, already decoded intermediate results D415 which is stored, based on the control signal D906 supplied from the control unit 905 reads in the bit direction or the word direction, The decoded result D901 is supplied to the bit width adjustment circuit 902.

具体的には、受信データD416の情報成分を用いて求められた復号途中結果D415が、復号結果メモリ901に供給される場合、制御信号D906は「0」となり、パリティ成分を用いて求められた復号途中結果D415が復号結果メモリ901に供給される場合、制御信号D906は「1」となる。   Specifically, when the decoding intermediate result D415 obtained using the information component of the reception data D416 is supplied to the decoding result memory 901, the control signal D906 becomes “0” and is obtained using the parity component. When the decoding intermediate result D415 is supplied to the decoding result memory 901, the control signal D906 becomes “1”.

制御信号D906が「0」である場合、復号結果メモリ901は、復号途中結果D415をビット方向に読み出す。一方、制御信号D906が「1」である場合、復号結果メモリ901は、復号途中結果D415をワード方向に読み出す。即ち、情報成分を用いて求められた復号途中結果D415はビット方向に読み出され、パリティ成分を用いて求められた復号途中結果D415は、ワード方向に読み出される。   When the control signal D906 is “0”, the decoding result memory 901 reads the decoding intermediate result D415 in the bit direction. On the other hand, when the control signal D906 is “1”, the decoding result memory 901 reads the decoding intermediate result D415 in the word direction. That is, the decoding intermediate result D415 obtained using the information component is read in the bit direction, and the decoding intermediate result D415 obtained using the parity component is read in the word direction.

なお、高速クロックCK2の速度が低速クロックCK3の速度の2倍以上である場合、復号結果メモリ901は、例えば高速クロックCK2の1クロックに同期して、1つの復号結果D901をシリアルに出力し、高速クロックCK2の速度が低速クロックCK3の速度の2倍未満である場合、復号結果メモリ901は、高速クロックCK2の1クロックに同期して、2つの復号結果D901をパラレルに出力する。 When the speed of the high-speed clock CK 2 is twice or more than the speed of the low-speed clock CK 3 , the decoding result memory 901 serializes one decoding result D901 in synchronization with, for example, one clock of the high-speed clock CK 2. If the speed of the high-speed clock CK 2 is less than twice the speed of the low-speed clock CK 3 , the decoding result memory 901 synchronizes two decoding results D901 in parallel with one clock of the high-speed clock CK 2. Output.

ビット幅調整回路902は、高速クロックCK2に同期して、制御部905からの制御信号D905に基づいて、復号結果メモリ901からの復号結果D901のビット幅を調整する。具体的には、高速クロックCK2の速度が低速クロックCK3の速度の2倍未満であるとき、制御信号D905は「0」となり、高速クロックCK2の速度が低速クロックCK3の速度の2倍以上であるとき、制御信号D905は「1」となる。 Bit width adjusting circuit 902, in synchronization with the high-speed clock CK 2, based on the control signal D905 from the control unit 905 to adjust the bit width of the decoding result D901 from the decoding result memory 901. Specifically, when the speed of the high-speed clock CK 2 is less than twice the speed of the low-speed clock CK 3 , the control signal D905 becomes “0”, and the speed of the high-speed clock CK 2 is 2 that is the speed of the low-speed clock CK 3. When the number is twice or more, the control signal D905 becomes “1”.

制御信号D905が「0」である場合、ビット幅調整回路902は、例えば高速クロックCK2の1クロックに同期してパラレルに供給される2つの復号結果D901を、低速クロックCK3の1クロックに同期して、2つの復号結果D902として、パラレルにデインターリーバ903とセレクタ904に供給する。 When the control signal D905 is "0", the bit width adjustment circuit 902, for example, a high-speed clock CK 2 for one clock synchronized with the two decoding result supplied in parallel to D901, one clock of the low-speed clock CK 3 Synchronously, two decoding results D902 are supplied in parallel to the deinterleaver 903 and the selector 904.

一方、制御信号D905が「1」である場合、ビット幅調整回路902は、高速クロックCK2の1クロックに同期してシリアルに供給される1つの復号結果D901のビット幅を調整し、低速クロックCK3の1クロックに同期して、復号結果D901を2つずつ、復号結果D902としてパラレルにデインターリーバ903とセレクタ904に供給する。即ち、ビット幅調整回路902は、高速クロックCK2の2クロック間に供給される2つの復号結果D901を、パラレルにデインターリーバ903とセレクタ904に供給する。 On the other hand, when the control signal D905 is "1", the bit width adjustment circuit 902, in synchronization with one clock of the high-speed clock CK 2 to adjust the bit width of one decoding result D901 supplied to the serial low-speed clock In synchronization with one clock of CK 3 , two decoding results D901 are supplied to the deinterleaver 903 and the selector 904 in parallel as decoding results D902. That is, the bit width adjustment circuit 902 supplies two decoding results D901 supplied between two clocks of the high-speed clock CK 2 to the deinterleaver 903 and the selector 904 in parallel.

デインターリーバ903は、低速クロックCK3に同期して、制御部905からの制御信号D906に基づいて、ビット幅調整回路902から供給される2つの復号結果D902の順序を制御する。 Deinterleaver 903, in synchronization with the low-speed clock CK 3, based on the control signal D906 from the control unit 905 controls the order of the two decoding results D902 supplied from the bit width adjustment circuit 902.

具体的には、制御信号D906が「0」である場合、デインターリーバ903は、2つの復号結果D902をそのまま復号結果D903としてセレクタ904に供給する。一方、制御信号D906が「1」である場合、デインターリーバ903は、2つの復号結果D902を検査行列Hに対応する順序に並び替え、並び替え後の2つの復号結果D903をセレクタ904に供給する。即ち、デインターリーバ903は、受信データD416のパリティ成分を用いて求められた2つの復号途中結果D415に対応する復号結果D902の順序を制御する。   Specifically, when the control signal D906 is “0”, the deinterleaver 903 supplies the two decoding results D902 as they are to the selector 904 as the decoding results D903. On the other hand, when the control signal D906 is “1”, the deinterleaver 903 rearranges the two decoded results D902 in the order corresponding to the check matrix H, and supplies the two decoded results D903 to the selector 904. To do. That is, the deinterleaver 903 controls the order of the decoding results D902 corresponding to the two decoding intermediate results D415 obtained using the parity component of the reception data D416.

セレクタ904には、低速クロックCK3に同期して、制御部905からの制御信号D905に基づいて、2つの復号結果D902またはデインターリーバ903からの2つの復号結果D903のいずれか一方を選択し、その選択した2つの復号結果D902またはD903を、復号結果D812として出力する。 The selector 904, in synchronization with the low-speed clock CK 3, based on the control signal D905 from the control unit 905 selects either of the two decoding results D903 from two decoding results D902 or deinterleaver 903 The selected two decoding results D902 or D903 are output as a decoding result D812.

具体的には、制御信号D905が「0」である場合、セレクタ904は、デインターリーバ903からの2つの復号結果D903を選択し、制御信号D905が「1」である場合、セレクタ904は、2つの復号結果D902を選択する。   Specifically, when the control signal D905 is “0”, the selector 904 selects two decoding results D903 from the deinterleaver 903, and when the control signal D905 is “1”, the selector 904 Two decryption results D902 are selected.

制御部905は、低速クロックCK3に同期して、制御信号D905をセレクタ904に供給する。また、制御部905は、高速クロックCK2に同期して、制御信号D906を復号結果メモリ901に供給するとともに、低速クロックCK3に同期して、制御信号D906をデインターリーバ903に供給する。 Control unit 905, in synchronization with the low-speed clock CK 3, and supplies a control signal D905 to the selector 904. The control unit 905 supplies in synchronism with the high-speed clock CK 2, and supplies the decoding result memory 901 a control signal D906, in synchronization with the low-speed clock CK 3, the control signal D906 to the deinterleaver 903.

次に、図25を参照して、図24の復号結果メモリ901について説明する。   Next, the decoding result memory 901 in FIG. 24 will be described with reference to FIG.

なお、図25では、説明の便宜上、復号結果メモリ901のビットを、復号途中結果D415の量子化ビットが1ビットであるとして説明する。   In FIG. 25, for convenience of explanation, the bit of the decoding result memory 901 will be described on the assumption that the quantization bit of the decoding intermediate result D415 is 1 bit.

また、以下では、検査行列H´の情報部のm列目に対応する、受信データD416の情報成分を用いて求められた復号途中結果D415を、復号途中結果Bmとも表し、検査行列H´のパリティ部のm列目に対応する、受信データD416のパリティ成分を用いて求められた復号途中結果D415を、復号途中結果Cmとも表す。 In the following, corresponding to the m-th column of the information part of the check matrix H', the decoding intermediate results D415 obtained by using the information component of the received data D416, also represents a decoding intermediate result B m, the check matrix H' of corresponding to the m-th column of the parity part, a decoding intermediate result D415 to the parity component obtained by using the received data D416, also denoted decoding intermediate result C m.

図25に示すように、復号結果メモリ901のビット数は、P(=6)と復号結果D415の量子化ビット数を乗算した値であり、ワード数は、n/p(=18)である。   As shown in FIG. 25, the number of bits of the decoding result memory 901 is a value obtained by multiplying P (= 6) by the number of quantization bits of the decoding result D415, and the number of words is n / p (= 18). .

まず最初に、復号結果メモリ901は、計算部415から供給される6つの復号結果B0乃至B5を、0番アドレスの0乃至5ビット目に、それぞれビット方向に記憶する。次に、復号結果メモリ901は、計算部415からの6つの復号結果B6乃至B11を、1番アドレスの0乃至5ビット目に、それぞれビット方向に記憶する。 First, the decoding result memory 901 stores the six decoding results B 0 to B 5 supplied from the calculation unit 415 in the bit direction at the 0th to 5th bits of the 0th address, respectively. Next, the decoding result memory 901 stores the six decoding results B 6 to B 11 from the calculation unit 415 in the bit direction at the 0th to 5th bits of the first address, respectively.

以降同様にして、復号結果メモリ901の2乃至11(=k0-1)番アドレスの0乃至5ビット目に、復号結果B12乃至B71が記憶される。 Thereafter, similarly, the decoding results B 12 to B 71 are stored in the 0th to 5th bits of the addresses 2 to 11 (= k 0 −1) in the decoding result memory 901.

次に、復号結果メモリ901は、計算部415から供給される6つの復号結果C0乃至C5を、12番アドレスの0乃至5ビット目に、それぞれビット方向に記憶する。また、復号結果メモリ901は、計算部415からの6つの復号結果C6乃至C11を、13番アドレスの0乃至5ビット目に、それぞれビット方向に記憶する。そして、同様の処理が繰り返され、復号結果メモリ901の14番アドレス乃至17番アドレスの0乃至5ビット目に、復号結果C12乃至C35が記憶される。 Next, the decoding result memory 901 stores the six decoding results C 0 to C 5 supplied from the calculation unit 415 in the bit direction at the 0th to 5th bits of the 12th address, respectively. Also, the decoding result memory 901 stores the six decoding results C 6 to C 11 from the calculation unit 415 in the bit direction at the 0th to 5th bits of the 13th address, respectively. The same processing is repeated, and the decoding results C 12 to C 35 are stored in the 0th to 5th bits of the 14th address to the 17th address of the decoding result memory 901.

ここで、12乃至17番アドレスの、ビット方向での順番がP×y+x番目の復号結果Cmは、ワード方向での順番が(n0-k0)×x+y番目となる。 Here, the decoding result C m of the 12th to 17th addresses in the order of P × y + x in the bit direction has the order of (n 0 −k 0 ) × x + y in the word direction.

上述したように、図12の検査行列H´のパリティ部のP×w+v列目の列は、図11の検査行列Hのパリティ部の(n0-k0)×v+w列目の列である。従って、復号結果メモリ901のビット方向に記憶される、検査行列H´のパリティ部の0列目から順に対応する復号結果Cmは、ワード方向の順番に見ると、検査行列Hのパリティ部の0列目から順に対応する復号結果Cmとなる。 As described above, the P × w + v column of the parity part of the parity check matrix H ′ in FIG. 12 is the (n 0 −k 0 ) × v + w column of the parity part of the parity check matrix H in FIG. It is. Therefore, the decoding results C m stored in the bit direction of the decoding result memory 901 corresponding to the 0th column of the parity part of the parity check matrix H ′ in order from the 0th column in the parity matrix are as follows. Corresponding decoding results C m are obtained in order from the 0th column.

即ち、復号装置800では、検査行列H´を用いて第1と第2の演算を行うため、検査行列H´に対応する順に求められる復号途中結果D415の順番を、検査行列Hに対応する順番に入れ替えて復号結果D812として出力する必要がある。上述したように、検査行列Hと検査行列H´の列の順番は、情報部においては同一であるが、パリティ部においては異なる。従って、復号結果メモリ901は、復号結果Cmをビット方向に記憶し、ワード方向に読み出すことにより、検査行列Hに対応する復号結果Cmを出力することができる。 That is, since the decoding apparatus 800 performs the first and second operations using the check matrix H ′, the order of the decoding intermediate results D415 obtained in the order corresponding to the check matrix H ′ is changed to the order corresponding to the check matrix H. Need to be output as a decoding result D812. As described above, the order of the columns of the check matrix H and the check matrix H ′ is the same in the information part, but is different in the parity part. Therefore, the decoding result memory 901 can output the decoding result C m corresponding to the check matrix H by storing the decoding result C m in the bit direction and reading it in the word direction.

図26は、図24のデインターリーバ903の詳細構成例を示す図である。   FIG. 26 is a diagram illustrating a detailed configuration example of the deinterleaver 903 in FIG.

図26のデインターリーバ903は、5つのレジスタ921−1乃至921−5および5つのレジスタ922−1乃至922−5、並びにセレクタ923から供給される。   The deinterleaver 903 of FIG. 26 is supplied from five registers 921-1 to 921-5, five registers 922-1 to 922-5, and a selector 923.

デインターリーバ903には、ビット幅調整回路902から復号結果D902が2つずつ供給され、そのうちの1つが復号結果D921としてレジスタ921−1乃至921−5に順に記憶される。また、他の1つが復号結果D922としてレジスタ922−1乃至922−5に順に記憶される。レジスタ921−1乃至921−5とレジスタ922−1乃至922−5は、記憶している復号結果D921またはD922をそれぞれセレクタ923に供給する。また、ビット幅調整回路902からの2つの復号結果D902は、それぞれ復号結果D921またはD922として、セレクタ923に直接供給される。   The deinterleaver 903 is supplied with two decoding results D902 from the bit width adjustment circuit 902, one of which is stored in the registers 921-1 to 921-5 in turn as a decoding result D921. The other one is sequentially stored in the registers 922-1 to 922-5 as the decoding result D922. The registers 921-1 to 921-5 and the registers 922-1 to 922-5 supply the stored decoding results D921 or D922 to the selector 923, respectively. The two decoding results D902 from the bit width adjustment circuit 902 are directly supplied to the selector 923 as the decoding results D921 or D922, respectively.

セレクタ923は、レジスタ921−1乃至921−5とレジスタ922−1乃至922−5のそれぞれから供給される5つの復号結果D921またはD922と、ビット幅調整回路902から直接供給される復号結果D921またはD922のうち、いずれか2つの復号結果D921またはD922を選択し、復号結果D923とD924として出力する。復号結果D923とD924は合わせられ、2つの復号結果D903としてセレクタ904に供給される。   The selector 923 includes five decoding results D921 or D922 supplied from each of the registers 921-1 to 921-5 and the registers 922-1 to 922-5, and a decoding result D921 supplied directly from the bit width adjustment circuit 902 or Any two decoding results D921 or D922 are selected from D922 and output as decoding results D923 and D924. The decoding results D923 and D924 are combined and supplied to the selector 904 as two decoding results D903.

以上のように、デインターリーバ903では、レジスタ921−1乃至921−5およびレジスタ922−1乃至922−5が、入力された復号結果D902(復号結果D921またはD922)を記憶し、セレクタ923が、そのレジスタ921−1乃至921−5およびレジスタ922−1乃至922−5に記憶されている復号結果D902を選択して、復号結果D903(復号結果D923とD924)として出力することにより、入力される復号結果D902と出力される復号結果D903の順序を入れ替える。   As described above, in the deinterleaver 903, the registers 921-1 to 921-5 and the registers 922-1 to 922-5 store the input decoding result D902 (decoding result D921 or D922), and the selector 923 The decoding results D902 stored in the registers 921-1 to 921-5 and the registers 922-1 to 922-5 are selected and output as decoding results D903 (decoding results D923 and D924). The order of the decoded result D902 and the output decoded result D903 are switched.

次に、図27と図28を参照して、図24の復号結果メモリ901からの復号結果Cmの読み出しと、出力部812からの復号結果D812の出力とを説明する。図27と図28において、横軸は時間を表している。 Next, reading of the decoding result C m from the decoding result memory 901 in FIG. 24 and output of the decoding result D 812 from the output unit 812 will be described with reference to FIGS. 27 and 28. 27 and 28, the horizontal axis represents time.

なお、以下では、検査行列Hのパリティ部のm列に対応する復号結果D812を、復号結果Emともいう。 In the following, the decoding results D812 corresponding to m columns of the parity part of the check matrix H, the decoding result also referred to as E m.

図27は、高速クロックCK2の速度が低速クロックCK3の速度の2倍以上である場合の、復号結果Cmの読み出しと復号結果Emの出力とを説明するタイミングチャートである。 Figure 27 is a timing chart speed of the high speed clock CK 2 is described in the case where more than twice the speed of the low-speed clock CK 3, and an output of the read and decoded result E m of decoding result C m.

図27に示すように、復号結果メモリ901は、既に記憶している復号結果Cmを、高速クロックCK2の1クロックに同期して、12番アドレスの0ビット目から順に、1つずつワード方向に読み出す。例えば、復号結果メモリ901は、復号結果C0,C6,C12,C18、C24,C30,C1,C7・・・を順にシリアルに読み出す。 As shown in FIG. 27, the decoding result memory 901, the decoding result C m which are already stored, in synchronization with one clock of the high-speed clock CK 2, in order from the zeroth bit of the 12th address, one by one word Read in direction. For example, the decoding result memory 901 reads the decoding results C 0 , C 6 , C 12 , C 18 , C 24 , C 30 , C 1 , C 7 .

そして、ビット幅調整回路902は、復号結果メモリ901から連続して読み出された2つの復号結果Cmを、低速クロックCK3の1クロックに同期して、2つの復号結果D902として、パラレルにデインターリーバ903とセレクタ904に供給する。 Then, the bit width adjustment circuit 902, the two decoding result C m read sequentially from the decoding result memory 901, in synchronism with one clock of the low-speed clock CK 3, as two decoding results D902, in parallel The deinterleaver 903 and the selector 904 are supplied.

図27では、高速クロックCK2の速度が低速クロックCK3の速度の2倍以上である、即ち制御部905から供給される制御信号D905が1であるので、セレクタ904は、ビット幅調整回路902からの2つの復号結果D902を、復号結果Emとして、そのまま出力する。 In FIG. 27, since the speed of the high-speed clock CK 2 is twice or more the speed of the low-speed clock CK 3 , that is, the control signal D905 supplied from the control unit 905 is 1, the selector 904 includes the bit width adjustment circuit 902. two decoding result D902 from the decoding result E m, is output as it is.

即ち、図27に示すように、出力部812のセレクタ904は、復号結果E0とE6,E12とE18,E24とE30,E1とE7・・・を、順にパラレルに出力する。ここで、上述したように、図12の検査行列H´のパリティ部のP×w+v列目の列は、図11の検査行列Hのパリティ部では、(n0-k0)×v+w列目の列となるので、出力部812により出力される復号結果E0とE6,E12とE18,E24とE30,E1とE7・・・は、検査行列Hのパリティ部の0列目乃至35列目に対応する復号結果D812となる。即ち、出力部812は、検査行列Hの0列目から順に、検査行列Hの各列に対応する復号結果Emを2つずつ出力する。 That is, as shown in FIG. 27, the selector 904 of the output unit 812 sequentially outputs the decoding results E 0 and E 6 , E 12 and E 18 , E 24 and E 30 , E 1 and E 7. Output. Here, as described above, the P × w + v-th column of the parity part of the parity check matrix H ′ in FIG. 12 is (n 0 −k 0 ) × v + w in the parity part of the parity check matrix H in FIG. The decoding results E 0 and E 6 , E 12 and E 18 , E 24 and E 30 , E 1 and E 7 ... Output by the output unit 812 are the parity of the parity check matrix H. It becomes the decoding result D812 corresponding to the 0th column to the 35th column. That is, the output unit 812 includes, in order from the 0th column of the check matrix H, and outputs two by two decoding results E m for each column of the check matrix H.

以上のように、復号装置800は受信データEmを2個ずつ同時に出力し、スループットを向上させることができる。 As described above, the decoding device 800 outputs simultaneously received data E m two by two, it is possible to improve the throughput.

図28は、高速クロックCK2の速度が低速クロックCK3の速度の2倍未満である場合の、復号結果メモリ901からの復号結果Cmの読み出しと、出力部812からの復号結果Emの出力とを説明するタイミングチャートである。 FIG. 28 shows the reading of the decoding result C m from the decoding result memory 901 and the decoding result E m from the output unit 812 when the speed of the high-speed clock CK 2 is less than twice the speed of the low-speed clock CK 3 . It is a timing chart explaining an output.

図28に示すように、復号結果メモリ901は、既に記憶している復号結果Cmを、高速クロックCK2の1クロックに同期して、12番アドレスの0ビット目と1ビット目から順に、2つずつワード方向にシリアルに読み出す。例えば、復号結果メモリ901は、復号結果C0とC1,C6とC7、C12とC13,C18とC19・・・を順にパラレルに読み出す。 As shown in FIG. 28, the decoding result memory 901, the decoding result C m which are already stored, in synchronization with one clock of the high-speed clock CK 2, in order from the 0th bit and the first bit of the 12th address, Read serially in the word direction two by two. For example, the decoding result memory 901 reads the decoding results C 0 and C 1 , C 6 and C 7 , C 12 and C 13 , C 18 and C 19 .

そして、復号結果メモリ901から出力される復号結果Cmは、ビット幅調整回路902を介して、デインターリーバ903とセレクタ904に供給される。 The decoding result C m output from the decoding result memory 901 is supplied to the deinterleaver 903 and the selector 904 via the bit width adjustment circuit 902.

図28では、高速クロックCK2の速度が低速クロックCK3の速度の2倍未満である、即ち制御信号D905が「0」であるので、セレクタ904は、デインターリーバ903から供給される復号結果D903を、復号結果D812として出力する。 In FIG. 28, since the speed of the high-speed clock CK 2 is less than twice the speed of the low-speed clock CK 3 , that is, the control signal D905 is “0”, the selector 904 outputs the decoding result supplied from the deinterleaver 903. D903 is output as the decoding result D812.

即ち、復号結果メモリ901は、異なるアドレスの復号結果Cmを読み出すこと、即ちワード方向にパラレルに復号結果Cmを読み出すことはできないので、復号装置800では、デインターリーバ903が、復号結果メモリ901からビット方向にパラレルに読み出された2つの復号結果Cmの順序を制御し、セレクタ904を介して、ワード方向に記憶される順にパラレルに2つの復号結果Cmに対応する復号結果D812を出力する。 That is, the decoding result memory 901, to read the decoded results C m different addresses, that is, decoding a word direction in parallel results can not be read out C m, the decoding device 800, the deinterleaver 903, the decoding result memory 901 two decoding results read in parallel to control the order of C m in the bit direction from, via the selector 904, the decoding result corresponding to the two decoding result C m in parallel in order to be stored in the word direction D812 Is output.

具体的には、デインターリーバ903(図26)には、復号結果C0とC1、復号結果C6とC7、復号結果C12とC13、復号結果C18とC19・・・がパラレルに復号結果D902として順に入力され、レジスタ921−1乃至921−5は、復号結果D902としてパラレルに入力された2つの復号結果Cmのうちの一方(例えば、復号結果C0,C6,C12,C18)を、復号結果D921として記憶し、レジスタ922−1乃至922−5は、他方(例えば、復号結果C1,C7,C13,C19)を復号結果D922として記憶する。そして、レジスタ921−1乃至921−5と922−1乃至922−5は、復号結果Cm(復号結果D921またはD922)をそれぞれセレクタ923に供給する。また、2つの復号結果D902は、それぞれ復号結果D921またはD922として、セレクタ923に直接供給される。 Specifically, the deinterleaver 903 (FIG. 26) includes decoding results C 0 and C 1 , decoding results C 6 and C 7 , decoding results C 12 and C 13 , decoding results C 18 and C 19. There are input in sequence as a decoding result D902 in parallel, the register 921-1 to 921-5, one of the two decoding result C m which is input to the parallel as a decoding result D902 (e.g., decoding result C 0, C 6 , C 12 , C 18 ) are stored as a decoding result D921, and the registers 922-1 to 922-5 store the other (eg, decoding results C 1 , C 7 , C 13 , C 19 ) as a decoding result D922. To do. Then, the registers 921-1 to 921-5 and 922-1 to 922-5 supply the decoding result C m (decoding result D921 or D922) to the selector 923, respectively. The two decoding results D902 are directly supplied to the selector 923 as the decoding results D921 or D922, respectively.

セレクタ923は、まず最初に、復号結果C0とC6を選択し、受信データD853とD854としてそれぞれ出力する。次に、セレクタ923は、復号結果C12とC18を選択し、受信データD853とD854としてそれぞれ出力する。その後、セレクタ923は、復号結果C24とC30、復号結果C1とC7・・・の順に選択して出力する。 The selector 923 first selects the decoding results C 0 and C 6 and outputs them as received data D853 and D854, respectively. Next, the selector 923 selects the decoding results C 12 and C 18 and outputs them as received data D853 and D854, respectively. Thereafter, the selector 923 selects and outputs the decoding results C 24 and C 30 , the decoding results C 1 and C 7 .

即ち、デインターリーバ903にパラレルで入力される2つの復号結果Cmの一方を系列#1´といい、他方を系列#2´というと、セレクタ923は、6回のパラレル入力単位で交互に系列#1´(例えば、復号結果C0,C6,C12,C18,C24,C30)と系列#2´(例えば、復号結果C1,C7,C13,C19,C25,C31)から、入力された順に2つずつ選択し、出力する。即ち、セレクタ923は、復号結果メモリ901のワード方向に書き込まれる受信データCmを、2つずつ選択してセレクタ904に供給する。 That is, when one of the two decoding results C m input in parallel to the deinterleaver 903 is referred to as a sequence # 1 ′ and the other is a sequence # 2 ′, the selector 923 alternately performs in units of 6 parallel inputs. sequence # 1 '(e.g., decoding result C 0, C 6, C 12 , C 18, C 24, C 30) and line # 2' (e.g., the decoding result C 1, C 7, C 13 , C 19, C 25 , C 31 ), and select and output them in the order of input. That is, the selector 923 selects the received data C m to be written in the word direction of the decoding result memory 901 two by two and supplies them to the selector 904.

デインターリーバ903のセレクタ923により出力された2つの復号結果Cmは、セレクタ904を介して、2つの受信データEmとしてパラレルに出力される。 The two decoding results C m output by the selector 923 of the deinterleaver 903 are output in parallel as two received data E m via the selector 904.

具体的には、図28に示すように、セレクタ904は、低速クロックCK3に同期して、復号結果E0とE6、E12とE18、E24とE30、E1とE7・・・を順にパラレルに出力する。 Specifically, as shown in FIG. 28, the selector 904, in synchronization with the low-speed clock CK 3, the decoded result E 0 and E 6, E 12 and E 18, E 24 and E 30, E 1 and E 7 Are sequentially output in parallel.

以上のように、デインターリーバ903は、復号結果メモリ901からビット方向に読み出された復号結果Cmを、ワード方向に記憶される順に、2つずつパラレルに出力するので、出力部812は、検査行列Hに対応する復号結果Emを2つずつパラレルに出力することができる。これにより、高速クロックCK2が、低速クロックCK3の2倍未満である場合においても、低速クロックCK3の1クロックの間に、2つの復号結果Emを出力することができる。その結果、復号装置800では、高速クロックCK2の速度を低速クロックCK3の速度の2倍以上に上げずに、復号装置800のスループットを向上させることができる。 As described above, the deinterleaver 903, the decoding result C m read out to the bit direction from the decoded result memory 901, in the order in which they are stored in the word direction, the output two by two in parallel, the output section 812 , can output the decoded result E m corresponding to the check matrix H by two in parallel. Thus, the high-speed clock CK 2 is, when it is less than twice the low-speed clock CK 3 also, during one clock of the low-speed clock CK 3, it is possible to output two decoded result E m. As a result, the decoding device 800 can improve the throughput of the decoding device 800 without increasing the speed of the high-speed clock CK 2 to more than twice the speed of the low-speed clock CK 3 .

次に、図29を参照して、図16の受信部811が受信データD811を出力する受信データ出力処理について説明する。この受信データ出力処理は、例えば、受信部811のインターリーバ831とセレクタ832に、2つの受信データD416が供給されたとき開始される。   Next, with reference to FIG. 29, a reception data output process in which the reception unit 811 in FIG. This reception data output processing is started when, for example, two pieces of reception data D416 are supplied to the interleaver 831 and the selector 832 of the reception unit 811.

ステップS31において、インターリーバ831は、2つの受信データD416の順序を制御し、その結果得られる2つの受信データD831をセレクタ832に供給し、ステップS32に進む。   In step S31, the interleaver 831 controls the order of the two reception data D416, supplies the two reception data D831 obtained as a result to the selector 832, and proceeds to step S32.

ステップS32において、セレクタ832は、制御部835からの制御信号D835に基づいて、2つの受信データD416またはステップS31で供給される2つの受信データD831のいずれかを選択し、2つの受信データD832としてビット幅調整回路833に供給する。   In step S32, the selector 832 selects either the two reception data D416 or the two reception data D831 supplied in step S31 based on the control signal D835 from the control unit 835, and sets the two reception data D832. The bit width adjustment circuit 833 is supplied.

ステップS32の処理後は、ステップS33に進み、ビット幅調整回路833は、制御部835からの制御信号D835に基づいて、ステップS32で供給される2つの受信データD832のビット幅を調整し、その結果得られる受信データD833を受信メモリ834に供給する。   After the processing in step S32, the process proceeds to step S33, and the bit width adjustment circuit 833 adjusts the bit widths of the two reception data D832 supplied in step S32 based on the control signal D835 from the control unit 835, The reception data D833 obtained as a result is supplied to the reception memory 834.

ステップS33の処理後は、ステップS34に進み、受信メモリ834は、制御部835からの制御信号D834に基づいて、ステップS33で供給される受信データD833をビット方向またはワード方向に記憶し、処理を終了する。   After the process of step S33, the process proceeds to step S34, and the reception memory 834 stores the reception data D833 supplied in step S33 in the bit direction or the word direction based on the control signal D834 from the control unit 835, and performs the process. finish.

なお、ステップS34の処理により、LDPC符号に対応する受信データD833がすべて記憶された後、受信メモリ834は、既に記憶してある受信データD833をビット方向に6つ単位で読み出し、受信データD811として計算部415に供給する。   In addition, after all the reception data D833 corresponding to the LDPC code is stored by the process of step S34, the reception memory 834 reads the reception data D833 that has already been stored in the bit direction in units of 6, and as reception data D811 It supplies to the calculation part 415.

図30は、図15の復号装置800の復号処理を説明するフローチャートである。この処理は、例えば、受信データD811が計算部415に供給されたとき、開始される。   FIG. 30 is a flowchart for explaining the decoding process of the decoding device 800 of FIG. This process is started, for example, when the reception data D811 is supplied to the calculation unit 415.

ステップS50において、サイクリックシフト回路414は、復号途中結果格納用メモリ413から供給された後述するステップS56で格納される6つの復号途中結果D413(uj)を、サイクリックシフトし、計算部415に供給する。 In step S50, the cyclic shift circuit 414 cyclically shifts six decoding intermediate results D413 (u j ) stored in step S56 described later supplied from the decoding intermediate result storage memory 413, and calculates the calculation unit 415. To supply.

具体的には、サイクリックシフト回路414には、復号途中結果格納用メモリ413から6つの復号途中結果D4131乃至D4136が供給されるとともに、制御部417から、その復号途中結果D413に対応する検査行列H´の1が検査行列H´において元となる単位行列などを幾つサイクリックシフトしたものであるかの情報(Matrixデータ)を表す制御信号D421が供給される。サイクリックシフト回路414は、制御信号D421を元に、6つの復号途中結果D4131乃至D4136をサイクリックシフトし(並べ替え)、その結果を復号途中結果D4141乃至D4146として、計算部415に供給する。 Specifically, the cyclic shift circuit 414 is supplied with six decoding intermediate results D413 1 to D413 6 from the decoding intermediate result storage memory 413, and corresponds to the decoding intermediate result D413 from the control unit 417. A control signal D421 is supplied that represents information (Matrix data) indicating how many 1s of the parity check matrix H ′ are cyclic shifts of the original unit matrix in the parity check matrix H ′. The cyclic shift circuit 414 cyclically shifts (rearranges) the six decoding intermediate results D413 1 to D413 6 based on the control signal D421, and the calculation results are used as decoding intermediate results D414 1 to D414 6 as a calculation unit 415. To supply.

なお、受信部811から供給された受信データD811に対して、まだ第1の演算が行われておらず、復号途中結果格納用メモリ413に復号途中結果D412が格納されていない場合、計算部415は、復号途中結果ujを初期値(例えば、受信データD811)に設定する。 If the first calculation has not yet been performed on the reception data D811 supplied from the reception unit 811 and the decoding intermediate result D412 is not stored in the decoding intermediate result storage memory 413, the calculation unit 415 Sets the decoding intermediate result u j to an initial value (for example, received data D811).

ステップS50の処理後は、ステップS51に進み、計算部415は、第2の演算を行い、その演算の結果である復号途中結果D4151乃至D4156を復号途中結果格納用メモリ410に供給する。 After the processing of step S50, the process proceeds to step S51, where the calculation unit 415 performs the second calculation and supplies the decoding intermediate results D415 1 to D415 6 which are the results of the calculation to the decoding intermediate result storage memory 410.

具体的には、計算部415には、ステップS50でサイクリックシフト回路414から6つの復号途中結果D4141乃至D4146が供給されるとともに、受信部811から6つの受信データD8111乃至D8116が供給され、復号途中結果D4151乃至D4156と受信データD8111乃至D8116が、計算部415の計算器4151乃至4156それぞれに1つずつ供給される。さらに、計算部415には、制御部417から制御信号D422が供給され、その制御信号D422が計算器4151乃至4156に供給される。 More specifically, the calculation unit 415, together with the six decoding intermediate results D414 1 to D414 6 from the cyclic shift circuit 414 is supplied at step S50, from the receiving unit 811 six received data D811 1 to D811 6 The decoding intermediate results D415 1 to D415 6 and received data D811 1 to D811 6 are supplied to the calculators 415 1 to 415 6 of the calculation unit 415 one by one. Further, a control signal D422 is supplied to the calculation unit 415 from the control unit 417, and the control signal D422 is supplied to the calculators 415 1 to 415 6 .

各計算器415kは、復号途中結果D414kと受信データD811kを用いて、制御信号D422に基づいて、式(5)にしたがう第2の演算を行い、その演算の結果得られる検査行列H´の列に対応する復号途中結果D415k(v)を復号途中結果格納用メモリ410に供給する。 Each calculator 415 k performs a second calculation according to the equation (5) based on the control signal D422 using the decoding intermediate result D414 k and the received data D811 k, and a check matrix H obtained as a result of the calculation. The decoding intermediate result D415 k (v) corresponding to the column 'is supplied to the decoding intermediate result storage memory 410.

ステップS51の処理後は、ステップS52に進み、復号途中結果格納用メモリ410は、ステップS51で計算部415から供給された6つの復号途中結果D4151乃至D4156を、同一アドレスに格納し、ステップS53に進む。 After the process of step S51, the process proceeds to step S52, and the decoding intermediate result storage memory 410 stores the six decoding intermediate results D415 1 to D415 6 supplied from the calculation unit 415 in step S51 at the same address. Proceed to S53.

ステップS53において、制御部417は、計算部415により、検査行列H´の列に対応する全ての復号途中結果D415が演算されたかどうかを判定し、全ての復号途中結果D415が演算されていないと判定した場合、ステップS50に戻り、上述した処理を繰り返す。   In step S53, the control unit 417 determines whether all decoding intermediate results D415 corresponding to the columns of the check matrix H ′ have been calculated by the calculation unit 415, and all decoding intermediate results D415 have not been calculated. When it determines, it returns to step S50 and repeats the process mentioned above.

一方、ステップS53において、制御部417は、計算部415により、検査行列H´の列に対応する全ての復号途中結果D415が演算されたと判定した場合、ステップS54に進み、サイクリックシフト回路411は、復号途中結果格納用メモリ410から供給される復号途中結果D410(v)をサイクリックシフトする。   On the other hand, in step S53, when the control unit 417 determines that all the decoding intermediate results D415 corresponding to the columns of the check matrix H ′ have been calculated by the calculation unit 415, the control unit 417 proceeds to step S54, and the cyclic shift circuit 411 The decoding intermediate result D410 (v) supplied from the decoding intermediate result storage memory 410 is cyclically shifted.

具体的には、サイクリックシフト回路411には、復号途中結果格納用メモリ410から6つの復号途中結果D410が供給されるとともに、制御部417から、その復号途中結果D410に対応する検査行列H´の1が検査行列H´において元となる単位行列などを幾つサイクリックシフトしたものであるかの情報(Matrixデータ)を表す制御信号D418が供給される。サイクリックシフト回路411は、制御信号D418を元に、6つの復号途中結果D410をサイクリックシフトし(並べ替え)、その結果を復号途中結果D4111乃至D4116として、計算部412に供給する。 Specifically, the cyclic shift circuit 411 is supplied with six decoding intermediate results D410 from the decoding intermediate result storage memory 410, and from the control unit 417, a check matrix H ′ corresponding to the decoding intermediate result D410. Is supplied with a control signal D418 representing information (Matrix data) indicating how many 1's are cyclically shifted from the original unit matrix in the check matrix H '. The cyclic shift circuit 411 cyclically shifts (rearranges) the six decoding intermediate results D410 based on the control signal D418, and supplies the results as decoding intermediate results D411 1 to D411 6 to the calculation unit 412.

ステップS54の処理後は、ステップS55に進み、計算部412は、上述した図22で説明したように、6個の第1の演算を同時に行い、その演算結果である復号途中結果D4121乃至D4126を復号途中結果格納用メモリ413に供給する。 After the process of step S54, the process proceeds to step S55, and the calculation unit 412 simultaneously performs the six first calculations as described above with reference to FIG. 22, and the decoding intermediate results D412 1 to D412 that are the calculation results. 6 is supplied to the decoding result storage memory 413.

ステップS55の処理後は、ステップS56に進み、復号途中結果格納用メモリ413は、ステップS55で計算部412から供給された6つの復号途中結果D4121乃至D4126を、同一のアドレスに格納し、ステップS57に進む。 After the process of step S55, the process proceeds to step S56, and the decoding intermediate result storage memory 413 stores the six decoding intermediate results D412 1 to D412 6 supplied from the calculation unit 412 in step S55 at the same address, Proceed to step S57.

ステップS57において、制御部417は、計算部412により、検査行列H´の全ての1に対応する復号途中結果D412が演算されたかどうかを判定し、全ての復号途中結果D412が演算されていないと判定した場合、ステップS54に戻り、上述した処理を繰り返す。   In step S57, the control unit 417 determines whether or not the decoding intermediate results D412 corresponding to all 1s of the check matrix H ′ have been calculated by the calculation unit 412 and all the decoding intermediate results D412 have not been calculated. When it determines, it returns to step S54 and repeats the process mentioned above.

一方、ステップS57において、制御部417は、計算部412により、全ての1に対応する復号途中結果D412が演算されたと判定した場合、処理を終了する。   On the other hand, when the control unit 417 determines in step S57 that the calculation unit 412 has calculated the intermediate decoding results D412 corresponding to all 1, the processing ends.

なお、復号装置800は、所定の復号回数だけ図30の復号処理を繰り返し行う。そして、計算部415は、最後の第2の演算の結果得られる復号途中結果D415を、出力部812に供給する。   Note that the decoding device 800 repeatedly performs the decoding process of FIG. 30 a predetermined number of times of decoding. Then, the calculation unit 415 supplies the decoding intermediate result D415 obtained as a result of the last second calculation to the output unit 812.

なお、復号装置400は、所定の復号回数だけ、図30の復号処理を繰り返し行うのではなく、復号途中結果D415の硬判定値のシンドローム演算を行い、その結果得られるシンドロームが0になるか、または復号回数が所定の回数になるまで、復号処理を繰り返すようにしてもよい。   Note that the decoding apparatus 400 does not repeatedly perform the decoding process of FIG. 30 a predetermined number of times of decoding, but performs a syndrome calculation of the hard decision value of the decoding intermediate result D415, and whether the syndrome obtained as a result is 0, Alternatively, the decoding process may be repeated until the number of decoding times reaches a predetermined number.

次に、図31を参照して、図24の出力部812が復号結果D812を出力する復号結果出力処理について説明する。この復号結果出力処理は、例えば、計算部415から、出力部812の復号結果メモリ901に復号途中結果D415が供給されたとき、開始される。   Next, a decoding result output process in which the output unit 812 in FIG. 24 outputs the decoding result D812 will be described with reference to FIG. This decoding result output process is started, for example, when the decoding intermediate result D415 is supplied from the calculation unit 415 to the decoding result memory 901 of the output unit 812.

ステップS71において、復号結果メモリ901は、計算部415からの復号途中結果D415を記憶する。そして、復号結果メモリ901は、制御部905からの制御信号D906に基づいて、既に記憶している復号途中結果D415を読み出し、復号結果D901として、ビット幅調整回路902に供給する。   In step S71, the decoding result memory 901 stores the decoding intermediate result D415 from the calculation unit 415. Then, based on the control signal D906 from the control unit 905, the decoding result memory 901 reads the decoding intermediate result D415 that is already stored, and supplies it to the bit width adjustment circuit 902 as the decoding result D901.

ステップS71の処理後は、ステップS72に進み、ビット幅調整回路902は、制御部905からの制御信号D905に基づいて、ステップS71で供給される復号結果D901のビット幅を調整し、その結果得られる復号途中結果D902をデインターリーバ903とセレクタ904に供給する。   After the processing in step S71, the process proceeds to step S72, and the bit width adjustment circuit 902 adjusts the bit width of the decoding result D901 supplied in step S71 based on the control signal D905 from the control unit 905, and obtains the result. The decoded intermediate result D902 is supplied to the deinterleaver 903 and the selector 904.

ステップS72の処理後は、ステップS73に進み、デインターリーバ903は、制御部905からの制御信号D906に基づいて、ステップS72で供給される復号結果D902の順序を制御し、その結果得られる復号結果D903をセレクタ904に供給する。   After the processing of step S72, the process proceeds to step S73, and the deinterleaver 903 controls the order of the decoding result D902 supplied in step S72 based on the control signal D906 from the control unit 905, and the decoding obtained as a result The result D903 is supplied to the selector 904.

ステップS73の処理後は、ステップS74に進み、セレクタ904は、制御部905からの制御信号D905に基づいて、ステップS72で供給される復号結果D902またはステップS73で供給される復号結果D903のいずれかを選択し、復号結果D812として出力して、処理を終了する。   After the processing in step S73, the process proceeds to step S74, and the selector 904 selects either the decoding result D902 supplied in step S72 or the decoding result D903 supplied in step S73 based on the control signal D905 from the control unit 905. Is selected and output as the decoding result D812, and the process is terminated.

以上のように、図15の復号装置800は、2つずつ入力される受信データD416を、繰り返し復号し、その結果得られる復号結果D812を2つずつ出力する。   As described above, the decoding device 800 in FIG. 15 repeatedly decodes the received data D416 input two by two, and outputs two decoding results D812 obtained as a result.

なお、復号装置800に対する入力と出力の両方が2つずつ行われるのではなく、いずれか一方のみが2つずつ行われるようにしてもよい。   Note that both input and output to the decoding device 800 are not performed two by two, but only one of them may be performed two by two.

上述の場合には、説明を簡単にするために、Pが6の場合、即ち、検査行列Hを構成する構成行列の行数および列数が6の場合を例に挙げたが、構成行列の行数および列数Pは必ずしも6である必要はなく、検査行列Hによって異なる値を取ることもあり得る。例えば、Pは360や392であってもよい。   In the above case, in order to simplify the explanation, the case where P is 6, that is, the case where the number of rows and the number of columns of the constituent matrix constituting the parity check matrix H is given as an example, The number of rows and the number of columns P do not necessarily have to be 6, and may take different values depending on the check matrix H. For example, P may be 360 or 392.

また、図15の復号装置800では、受信部811に同時に入力される受信データD416と出力部812から同時に出力される復号結果D812は2つであるが、同時に入力される受信データD416と同時に出力される復号結果D812の数Npは、これに限定されず、P個以下の数(例えば、Pの約数など)とすることができる。この場合、高速クロックCK2の速度が、低速クロックCK1またはCK3の速度のNp倍以上であるかどうかに基づいて、制御信号D835とD905が決定される。 Further, in the decoding device 800 of FIG. 15, the reception data D416 input simultaneously to the reception unit 811 and the decoding result D812 output simultaneously from the output unit 812 are two, but output simultaneously with the reception data D416 input simultaneously. The number N p of the decoding results D812 to be performed is not limited to this, and can be P or less (for example, a divisor of P). In this case, the speed of the high-speed clock CK 2, based on whether a low-speed clock CK 1 or CK 3 speed N p times, the control signal D835 and D905 are determined.

さらに、図15の復号装置800では、符号長108、符号化率2/3のLDPC符号を用いたが、LDPC符号の符号長や符号化率は、どのような値であってもよい。例えば、構成行列の行数および列数Pが6の場合、枝総数が6以下であれば、どのような符号長、符号化率のLDPC符号でも、制御信号を代えるだけで、復号装置800を用いて復号可能である。   Further, although the decoding apparatus 800 in FIG. 15 uses the LDPC code having the code length 108 and the coding rate 2/3, the code length and the coding rate of the LDPC code may be any values. For example, when the number of rows and the number of columns P of the configuration matrix is 6, if the total number of branches is 6 or less, the LDPC code of any code length and coding rate can be used to change the decoding device 800 by simply changing the control signal. And can be decrypted.

また、受信メモリ834と復号結果メモリ901のビット数とワード数は、上述した数に限定されない。   Further, the number of bits and the number of words in the reception memory 834 and the decoding result memory 901 are not limited to the numbers described above.

さらに、本発明は、第1の演算と第2の演算を交互に行う復号装置800ではなく、チェックノード演算とバリアブルノード演算を交互に行う復号装置にも適用することができる。この場合、チェックノード演算を行うチェックノード演算器は、図22の計算器412kの減算器431を削除することにより構成され、バリアブルノード演算を行うバリアブルノード演算器は、図23の計算器415kの最後に減算器431を加えることにより構成される。 Furthermore, the present invention can be applied not to the decoding device 800 that alternately performs the first operation and the second operation, but also to a decoding device that alternately performs the check node operation and the variable node operation. In this case, the check node calculator that performs the check node calculation is configured by deleting the subtracter 431 of the calculator 412 k in FIG. 22, and the variable node calculator that performs the variable node calculation is the calculator 415 in FIG. It is constructed by adding a subtracter 431 to the end of k .

以上のように、図15の復号装置800では、受信メモリ834が受信データD833を2個ずつ同時に記憶し、復号結果メモリ901が、復号結果D901を2個ずつ同時に読み出すので、復号装置のスループットを向上させることができる。   As described above, in the decoding device 800 of FIG. 15, the reception memory 834 stores the reception data D833 two at a time, and the decoding result memory 901 reads out two decoding results D901 at the same time. Can be improved.

また、本発明に係る復号装置800は、サムプロダクトアルゴリズムを忠実に実装するものであるため、メッセージの量子化以外の復号損失が起きることはない。   Further, since the decoding apparatus 800 according to the present invention faithfully implements the thumb product algorithm, no decoding loss other than message quantization occurs.

なお、上述したLDPC符号を復号する復号装置は、例えば、(ディジタル)衛星放送を受信するチューナなどに適用することができる。   Note that the decoding apparatus that decodes the LDPC code described above can be applied to, for example, a tuner that receives (digital) satellite broadcasts.

また、本明細書において、処理を記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。   Further, in the present specification, the steps describing the processing are not only processing performed in time series in the described order, but also processing executed in parallel or individually even if processing is not necessarily performed in time series. Is also included.

さらに、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。   Furthermore, the embodiments of the present invention are not limited to the above-described embodiments, and various modifications can be made without departing from the gist of the present invention.

LDPC符号の検査行列Hを説明する図である。It is a figure explaining the check matrix H of an LDPC code. パリティ部が下三角行列になっている検査行列Hを示す図である。It is a figure which shows the check matrix H whose parity part is a lower triangular matrix. LDPC符号の復号手順を説明するフローチャートである。It is a flowchart explaining the decoding procedure of an LDPC code. メッセージの流れを説明する図である。It is a figure explaining the flow of a message. LDPC符号の検査行列Hの例を示す図である。It is a figure which shows the example of the check matrix H of a LDPC code. 検査行列Hのタナーグラフを示す図である。6 is a diagram illustrating a Tanner graph of a check matrix H. FIG. バリアブルノードを示す図である。It is a figure which shows a variable node. チェックノードを示す図である。It is a figure which shows a check node. LDPC符号の検査行列Hの例を示す図である。It is a figure which shows the example of the check matrix H of a LDPC code. ノード演算を6個同時に行う復号装置の構成例を示すブロック図である。It is a block diagram which shows the structural example of the decoding apparatus which performs six node calculations simultaneously. LDPC符号に用いる検査行列Hの例を示す図である。It is a figure which shows the example of the test matrix H used for a LDPC code. 図11の検査行列Hを行置換または列置換した後の検査行列H´を示す図である。FIG. 12 is a diagram illustrating a parity check matrix H ′ after row replacement or column replacement of the parity check matrix H in FIG. 11. 図11の検査行列Hを行置換または列置換した後の検査行列H´を示す図である。FIG. 12 is a diagram illustrating a parity check matrix H ′ after row replacement or column replacement of the parity check matrix H in FIG. 11. 図11の行列Hと図12の検査行列H´のパリティ部を示す図である。It is a figure which shows the parity part of the matrix H of FIG. 11, and the check matrix H 'of FIG. 本発明の一実施の形態の、LDPC符号を復号する復号装置の構成例を示す図である。It is a figure which shows the structural example of the decoding apparatus which decodes an LDPC code of one embodiment of this invention. 図15の受信部の詳細構成例を示すブロック図である。FIG. 16 is a block diagram illustrating a detailed configuration example of a receiving unit in FIG. 15. 図16のインターリーバの詳細構成例を示すブロック図である。It is a block diagram which shows the detailed structural example of the interleaver of FIG. RAMのビット方向とワード方向について説明する図である。It is a figure explaining the bit direction and word direction of RAM. 図16の受信メモリに記憶される受信データについて説明する図である。It is a figure explaining the reception data memorize | stored in the reception memory of FIG. 図16の受信部への入力と、受信メモリへの書き込みとを説明するタイミングチャートである。It is a timing chart explaining the input to the receiving part of FIG. 16, and the writing to a receiving memory. 図16の受信部への入力と、受信メモリへの書き込みとを説明するタイミングチャートである。It is a timing chart explaining the input to the receiving part of FIG. 16, and the writing to a receiving memory. 図15の計算器の構成例を示すブロック図である。It is a block diagram which shows the structural example of the calculator of FIG. 図15の計算器の構成例を示すブロック図である。It is a block diagram which shows the structural example of the calculator of FIG. 図15の出力部の詳細構成例を示すブロック図である。It is a block diagram which shows the detailed structural example of the output part of FIG. 図24の復号結果メモリについて説明する図である。It is a figure explaining the decoding result memory of FIG. 図24のデインターリーバの詳細構成例を示すブロック図である。It is a block diagram which shows the detailed structural example of the deinterleaver of FIG. 図24の復号結果メモリからの読み出しと、出力部からの出力とを説明するタイミングチャートである。FIG. 25 is a timing chart illustrating reading from the decoding result memory of FIG. 24 and output from the output unit. 図24の復号結果メモリからの読み出しと、出力部からの出力とを説明するタイミングチャートである。FIG. 25 is a timing chart illustrating reading from the decoding result memory of FIG. 24 and output from the output unit. 受信データ出力処理について説明するフローチャートである。It is a flowchart explaining a reception data output process. 復号処理を説明するフローチャートである。It is a flowchart explaining a decoding process. 復号結果出力処理について説明するフローチャートである。It is a flowchart explaining a decoding result output process.

符号の説明Explanation of symbols

410 復号途中結果格納用メモリ, 411 サイクリックシフト回路, 412 計算部, 413 復号途中結果格納用メモリ, 414 サイクリックシフト回路, 415 計算部, 417 制御部, 800 復号装置, 811 受信部, 812 出力部, 831 インターリーバ, 832 セレクタ, 833 ビット幅調整回路, 834 受信メモリ, 835 制御部, 901 復号結果メモリ, 902 ビット幅調整回路, 903 デインターリーバ, 904 セレクタ, 905 制御部   410 Decoding intermediate result storage memory, 411 cyclic shift circuit, 412 calculation unit, 413 Decoding intermediate result storage memory, 414 cyclic shift circuit, 415 calculation unit, 417 control unit, 800 decoding device, 811 receiving unit, 812 output Unit, 831 interleaver, 832 selector, 833 bit width adjustment circuit, 834 reception memory, 835 control unit, 901 decoding result memory, 902 bit width adjustment circuit, 903 deinterleaver, 904 selector, 905 control unit

Claims (10)

LDPC(Low Density Parity Check)符号を復号する復号装置であって、
P×Pの単位行列、その単位行列のコンポーネントである1のうちの1個以上が0になった行列である準単位行列、前記単位行列もしくは準単位行列をサイクリックシフトした行列であるシフト行列、前記単位行列、準単位行列、もしくはシフト行列のうちの複数の和である和行列、またはP×Pの0行列を構成行列として、前記LDPC符号の検査行列が、複数の前記構成行列の組み合わせで表される場合、または前記LDPC符号の検査行列が、行または列の置換により、複数の前記構成行列の組み合わせで表される場合において、
前記LDPC符号を記憶する符号記憶手段と、
前記符号記憶手段に記憶される前記LDPC符号を復号する復号手段と、
前記復号手段により復号された結果得られる復号結果を記憶し、既に記憶してある復号結果を読み出す復号結果記憶手段と
を備え、
前記符号記憶手段は、前記LDPC符号を前記P個以下の複数個ずつ同時に記憶するか、前記復号結果記憶手段は、前記復号結果を前記P個以下の複数個ずつ同時に読み出すか、または前記符号記憶手段は前記LDPC符号を前記P個以下の複数個ずつ同時に記憶し、かつ前記復号結果記憶手段は、前記復号結果を前記P個以下の複数個ずつ同時に読み出す
復号装置。
A decoding device for decoding LDPC (Low Density Parity Check) code,
A P × P unit matrix, a quasi-unit matrix that is a matrix in which one or more of 1s that are components of the unit matrix are 0, and a shift matrix that is a cyclic shift of the unit matrix or the quasi-unit matrix , A unit matrix, a quasi-unit matrix, or a sum matrix that is a sum of a plurality of shift matrices, or a P × P 0 matrix, and a parity check matrix of the LDPC code is a combination of a plurality of the constituent matrices Or when the parity check matrix of the LDPC code is represented by a combination of a plurality of the constituent matrices by row or column replacement,
Code storage means for storing the LDPC code;
Decoding means for decoding the LDPC code stored in the code storage means;
A decoding result storage unit that stores a decoding result obtained as a result of decoding by the decoding unit and reads out a decoding result that has already been stored;
The code storage means stores the LDPC code at the same time in a plurality of P pieces or less, or the decoding result storage means reads out the decoding result at a time in a plurality of P pieces or less, or the code storage A means stores the LDPC code at the P number or less at the same time, and the decoding result storage means reads out the decoding result at the P number or less at the same time.
前記符号記憶手段は、前記LDPC符号を前記Pの約数個ずつ同時に記憶するか、前記復号結果記憶手段は、前記復号結果を前記Pの約数個ずつ同時に読み出すか、または前記符号記憶手段は前記LDPC符号を前記Pの約数個ずつ同時に記憶し、かつ前記復号結果記憶手段は、前記復号結果を前記Pの約数個ずつ同時に読み出す
請求項1に記載の復号装置。
The code storage means stores the LDPC code by several divisors of the P simultaneously, the decoding result storage means reads the decoding results by divisors of the P simultaneously, or the code storage means 2. The decoding device according to claim 1, wherein the LDPC code is simultaneously stored in approximately several pieces of the P, and the decoding result storage unit reads out the decoding results in several pieces of the P simultaneously.
前記符号記憶手段は、前記Pの約数個の前記LDPC符号を同時に読み書き可能なメモリから構成され、
前記復号結果記憶手段は、前記Pの約数個の前記復号結果を同時に読み書き可能なメモリから構成される
請求項2に記載の復号装置。
The code storage means is composed of a memory that can simultaneously read and write about several LDPC codes of the P,
The decoding device according to claim 2, wherein the decoding result storage unit is configured by a memory capable of simultaneously reading and writing the approximately several P decoding results.
前記復号装置は、前記符号記憶手段に前記LDPC符号を入力する第1の外部装置、および前記復号結果記憶手段から読み出された復号結果を出力する第2の外部装置の動作クロックに比べて、高速の動作クロックで動作を行う
請求項3に記載の復号装置。
Compared to the operation clock of the first external device that inputs the LDPC code to the code storage means and the second external device that outputs the decoding result read from the decoding result storage means, the decoding device, The decoding device according to claim 3, wherein the operation is performed with a high-speed operation clock.
前記符号記憶手段は、前記行または列の置換後の前記検査行列の前記P個の列に対応する前記LDPC符号を、同時に読出可能な順に記憶する
請求項4に記載の復号装置。
The decoding apparatus according to claim 4, wherein the code storage unit stores the LDPC codes corresponding to the P columns of the parity check matrix after the row or column replacement in an order that can be read simultaneously.
前記符号記憶手段は、RAM(Random Access Memory)であり、そのRAMの各アドレスに、前記行または列の置換後の前記検査行列の前記P個の列に対応する前記LDPC符号を記憶する
請求項5に記載の復号装置。
The code storage means is a RAM (Random Access Memory), and stores the LDPC code corresponding to the P columns of the parity check matrix after replacement of the row or column at each address of the RAM. 5. The decoding device according to 5.
前記符号記憶手段に記憶される前の前記LDPC符号、または前記復号結果記憶手段から読み出された後の前記復号結果の少なくとも一方の順序を制御する順序制御手段
をさらに備える
請求項4に記載の復号装置。
The order control means for controlling the order of at least one of the LDPC code before being stored in the code storage means or the decoding result after being read out from the decoding result storage means. Decoding device.
前記順序制御手段は、
前記LDPC符号を記憶する順序符号記憶手段と、
前記順序符号記憶手段に記憶される前記LDPC符号を選択して出力する選択手段と
を備える
請求項7に記載の復号装置。
The order control means includes
Order code storage means for storing the LDPC code;
The decoding apparatus according to claim 7, further comprising selection means for selecting and outputting the LDPC code stored in the order code storage means.
前記順序制御手段は、
前記復号結果を記憶する順序復号結果記憶手段と、
前記順序復号結果記憶手段に記憶される前記復号結果を選択して出力する選択手段と
を備える
請求項7に記載の復号装置。
The order control means includes
Ordered decoding result storage means for storing the decoding result;
The decoding device according to claim 7, further comprising selection means for selecting and outputting the decoding result stored in the ordered decoding result storage means.
LDPC(Low Density Parity Check)符号を復号する復号装置の復号方法であって、
P×Pの単位行列、その単位行列のコンポーネントである1のうちの1個以上が0になった行列である準単位行列、前記単位行列もしくは準単位行列をサイクリックシフトした行列であるシフト行列、前記単位行列、準単位行列、もしくはシフト行列のうちの複数の和である和行列、またはP×Pの0行列を構成行列として、前記LDPC符号の検査行列が、複数の前記構成行列の組み合わせで表される場合、または前記LDPC符号の検査行列が、行または列の置換により、複数の前記構成行列の組み合わせで表される場合において、
前記LDPC符号を記憶させる符号記憶ステップと、
前記符号記憶ステップの処理により記憶される前記LDPC符号を復号する復号ステップと、
前記復号ステップの処理により復号された結果得られる復号結果を記憶させ、既に記憶されている復号結果を読み出す復号結果記憶ステップと
を含み、
前記符号記憶ステップの処理は、前記LDPC符号を前記P個以下の複数個ずつ同時に記憶させるか、または前記復号結果記憶ステップの処理は、前記復号結果を前記P個以下の複数個ずつ同時に読み出すか、もしくは前記符号記憶ステップの処理は前記LDPC符号を前記P個以下の複数個ずつ同時に記憶させ、かつ前記復号結果記憶ステップの処理は、前記復号結果を前記P個以下の複数個ずつ同時に読み出す
復号方法。
A decoding method of a decoding device for decoding LDPC (Low Density Parity Check) code,
A P × P unit matrix, a quasi-unit matrix that is a matrix in which one or more of 1s that are components of the unit matrix are 0, and a shift matrix that is a cyclic shift of the unit matrix or the quasi-unit matrix , A unit matrix, a quasi-unit matrix, or a sum matrix that is a sum of a plurality of shift matrices, or a P × P 0 matrix, and a parity check matrix of the LDPC code is a combination of a plurality of the constituent matrices Or when the parity check matrix of the LDPC code is represented by a combination of a plurality of the constituent matrices by row or column replacement,
A code storage step for storing the LDPC code;
A decoding step of decoding the LDPC code stored by the processing of the code storage step;
A decoding result storage step of storing a decoding result obtained as a result of decoding by the processing of the decoding step and reading out a decoding result that has already been stored;
Whether the code storing step stores the LDPC code at the P number or less simultaneously, or the decoding result storing step reads the decoding result at the P number or less simultaneously. Alternatively, the processing of the code storage step stores the LDPC code at the P number or less at the same time, and the processing of the decoding result storage step reads the decoding result at the time of the P or less at the same time. Method.
JP2005218331A 2005-07-28 2005-07-28 Decoding apparatus and decoding method Withdrawn JP2007036776A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005218331A JP2007036776A (en) 2005-07-28 2005-07-28 Decoding apparatus and decoding method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005218331A JP2007036776A (en) 2005-07-28 2005-07-28 Decoding apparatus and decoding method

Publications (1)

Publication Number Publication Date
JP2007036776A true JP2007036776A (en) 2007-02-08

Family

ID=37795463

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005218331A Withdrawn JP2007036776A (en) 2005-07-28 2005-07-28 Decoding apparatus and decoding method

Country Status (1)

Country Link
JP (1) JP2007036776A (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008278189A (en) * 2007-04-27 2008-11-13 Sony Corp Decoding device and method, and program
JP2011515036A (en) * 2008-02-18 2011-05-12 サムスン エレクトロニクス カンパニー リミテッド Channel encoding and decoding apparatus and method in communication system using low density parity check code
CN101442317B (en) * 2007-10-19 2012-07-11 索尼株式会社 Data decoding apparatus, data decoding method, data transmitting/receiving system, data receiving apparatus, and data receiving method
US8291282B2 (en) 2008-02-18 2012-10-16 Samsung Electronics Co., Ltd Apparatus and method for encoding and decoding channel in a communication system using low-density parity-check codes
US8489956B2 (en) 2007-11-26 2013-07-16 Sony Corporation Data processing apparatus and data processing method
US8516335B2 (en) 2007-11-26 2013-08-20 Sony Corporation Data processing apparatus and data processing method
US8578237B2 (en) 2007-11-26 2013-11-05 Sony Corporation Data processing apparatus and data processing method
JP2018107700A (en) * 2016-12-27 2018-07-05 パナソニック株式会社 Reception device and reception method

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008278189A (en) * 2007-04-27 2008-11-13 Sony Corp Decoding device and method, and program
US8176402B2 (en) 2007-04-27 2012-05-08 Sony Corporation Decoding apparatus, decoding method, and decoding program
CN101442317B (en) * 2007-10-19 2012-07-11 索尼株式会社 Data decoding apparatus, data decoding method, data transmitting/receiving system, data receiving apparatus, and data receiving method
US8489956B2 (en) 2007-11-26 2013-07-16 Sony Corporation Data processing apparatus and data processing method
US8516335B2 (en) 2007-11-26 2013-08-20 Sony Corporation Data processing apparatus and data processing method
US8578237B2 (en) 2007-11-26 2013-11-05 Sony Corporation Data processing apparatus and data processing method
JP5359881B2 (en) * 2007-11-26 2013-12-04 ソニー株式会社 Data processing apparatus and data processing method
JP5359882B2 (en) * 2007-11-26 2013-12-04 ソニー株式会社 Data processing apparatus and data processing method
JP2011515036A (en) * 2008-02-18 2011-05-12 サムスン エレクトロニクス カンパニー リミテッド Channel encoding and decoding apparatus and method in communication system using low density parity check code
US8291282B2 (en) 2008-02-18 2012-10-16 Samsung Electronics Co., Ltd Apparatus and method for encoding and decoding channel in a communication system using low-density parity-check codes
JP2018107700A (en) * 2016-12-27 2018-07-05 パナソニック株式会社 Reception device and reception method

Similar Documents

Publication Publication Date Title
JP4622654B2 (en) Decoding device and decoding method
JP4595650B2 (en) Decoding device and decoding method
JP4293172B2 (en) Decoding device and decoding method
KR101090001B1 (en) Decoding device, decoding method, and recording medium
JP4224777B2 (en) Decoding method, decoding apparatus, and program
JP4807063B2 (en) Decoding device, control method, and program
JP4487213B2 (en) Decoding apparatus and method, and program
JP4487212B2 (en) Decoding device and method, transmission / reception system, receiving device and method, and program
JP4617985B2 (en) Encoding apparatus and encoding method
JP2007036776A (en) Decoding apparatus and decoding method
KR20080096387A (en) Decoding apparatus
JP4285148B2 (en) Decoding device, decoding method, and program
JP4729964B2 (en) Decoding device and decoding method
JP4730592B2 (en) Decoding device and decoding method
JP4821724B2 (en) Decoding device and decoding method
JP4284600B2 (en) Decoding device
JP4822071B2 (en) Decoding device and decoding method
JP4288582B2 (en) Decoding device, decoding method, and program
JP2007081602A (en) Decoder and decoding method

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20081007