JP5306342B2 - シャッフルldpcデコーディング - Google Patents

シャッフルldpcデコーディング Download PDF

Info

Publication number
JP5306342B2
JP5306342B2 JP2010514224A JP2010514224A JP5306342B2 JP 5306342 B2 JP5306342 B2 JP 5306342B2 JP 2010514224 A JP2010514224 A JP 2010514224A JP 2010514224 A JP2010514224 A JP 2010514224A JP 5306342 B2 JP5306342 B2 JP 5306342B2
Authority
JP
Japan
Prior art keywords
symbol
message
matrix
check node
memory
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.)
Expired - Fee Related
Application number
JP2010514224A
Other languages
English (en)
Other versions
JP2010532128A (ja
Inventor
ディエリッセン ジョン
Original Assignee
エスティー‐エリクソン、ソシエテ、アノニム
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 エスティー‐エリクソン、ソシエテ、アノニム filed Critical エスティー‐エリクソン、ソシエテ、アノニム
Publication of JP2010532128A publication Critical patent/JP2010532128A/ja
Application granted granted Critical
Publication of JP5306342B2 publication Critical patent/JP5306342B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • H03M13/1168Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices wherein the sub-matrices have column and row weights greater than one, e.g. multi-diagonal sub-matrices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1114Merged schedule message passing algorithm with storage of sums of check-to-bit node messages or sums of bit-to-check node messages, e.g. in order to increase the memory efficiency
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • H03M13/112Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule with correction functions for the min-sum rule, e.g. using an offset or a scaling factor
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • H03M13/1122Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule storing only the first and second minimum values per check node
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1137Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/114Shuffled, staggered, layered or turbo decoding schedules
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard
    • H03M13/6527IEEE 802.11 [WLAN]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard
    • H03M13/6544IEEE 802.16 (WIMAX and broadband wireless access)
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6566Implementations concerning memory access contentions
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/658Scaling by multiplication or division
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/6583Normalization other than scaling, e.g. by subtraction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/6588Compression or short representation of variables
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • H03M13/1165QC-LDPC codes as defined for the digital video broadcasting [DVB] specifications, e.g. DVB-Satellite [DVB-S2]

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Error Detection And Correction (AREA)

Description

本発明は、LDPCデコーダ及びLDPCデコーディング方法に関するものである。
情報源と受信機との間の伝送においては、何らかの伝送エラーが生じるおそれがある。これらエラーの幾つかは、エラー訂正コードを用いて検出するとともに訂正することができる。低密度パリティチェック(LDPC)コードは一種のエラー訂正コードであり、これらはブロックコード(又は等価的にはパリティチェックコード)であり、パリティチェックマトリックスHにより規定される。これらはガロアフィールドGF(2)上のLDPCコードの場合に、(Gallager氏の論文“Low-Density Parity Check Code ”, 1963,MITにおいて)R. G. Gallager氏により1963年に発表されたものである。その原理は、濃度の高いガオラフィールド、すなわちrを素数としたGF(rq )上で(D. J. C. Mackay 及びM. C. Davey 氏著“Low Density Check Code Over GF(q) ”、Cavendish Laboratory、Cambridge 、United Kingdom、1998において)1998年にMackay氏により一般化された。LDPCコードは種々の伝送システムに、例えば、衛星通信、無線伝送、光ファイバに用いることができるとともに、種々の記録媒体に、例えば、ハードディスクドライブ、光ディスク、磁気バンドに用いることができる。LDPCを用いるシステムの例は、DVB‐S2、DMB‐T(中国のDVBテレストリアル規格:地上デジタルテレビジョン放送規格)、STiMi(中国のDVB衛星規格)、IEEE802.11n及び802.16eである。
LDPCコードは、M行N列の大きさのパリティチェックマトリックスHにより規定されており、Mは(チェックノードに相当する)制約の個数であり、Nは変数(シンボルノードによって表わされる、コードのシンボルの推定値)の個数である。位置(m,n)におけるマトリックスのゼロでない入力は、変数vn が制約cm に加わることを表わす。最新の標準化されたシステムは、サーキュラントと称されるブロック(マトリックス)に細分されたパリティチェックマトリックスを用いている。サーキュラントは、ゼロマトリックス(全てのエレメントがゼロ)であるか、又は単位(アイデンティティ)マトリックスに基づくものである。単位マトリックスに基づくサーキュラントは、単一対角(単位マトリックス自体又はその回転バージョン)とするか、又は多重対角を有するようにしうる。通常、正常な順序での配列でメモリ内に記憶されている変数を、単位マトリックスの回転により規定される位置まで回転させるのに、いわゆるバレルシフタが用いられる。低価格で実現される最新技術は、2006年のIEEE ProceedingsにおけるJ. Dielissen氏等の論文“Low cost LDPC decoder for DVB-S2”(以後[Dielissen, DATE]と称する)に記載されている。しかし、このアーキテクチュアによっては、“多重対角”を有するLDPCコードを解決しえない。多重対角の処理は一層複雑であること明らかである。米国特許公開第US2005/0138519A1号明細書には、多重対角サーキュラントに対処するように設計されたアーキテクチュアが開示されている。しかし、このアーキテクチュアは、“多重対角”を解決する必要のない廉価なインスタンス化に向けて拡張しうるものではない。
米国特許公開第US2005/0138519A1号明細書
Gallager氏の論文"Low-Density Parity Check Code ", 1963,MIT D. J. C. Mackay 氏及びM. C. Davey 氏著"Low Density Check Code Over GF(q) "、Cavendish Laboratory、Cambridge 、United Kingdom、1998 2006年のIEEE ProceedingsにおけるJ. Dielissen氏等の論文"Low cost LDPC decoder for DVB-S2" IEEE Journal of solid-state circuits Vol. 21, No. 2, February 1992における論文"A New Design of a Fast Barrel Switch Network"(G. M. Tharakan及びS. M. Kang氏著)
拡張可能であり、好ましくは単一又は多重対角サーキュラントを有する幾つかなの標準化システムに対し用いうるようにしたLDPCデコーディングアーキテクチュアを提供するのが有利である。
かかる目的を良好に達成するために、本発明の第1の態様では、ガロアフィールド上のLDPCコードを反復復号するLDPCデコーダであって、LDPCコードは、複数のサブマトリックスより成る予め決定したM×NのパリティチェックマトリックスHにより表され、各サブマトリックスはゼロマトリックスか、又は各行及び列におけるゼロでないエレメントの個数が同じであるマトリックスであり、LDPCデコーダは、シンボルメッセージλnmをそれぞれのシンボルノードn(0≦n<N)から、接続されているチェックノードm(0≦m<M)に送給するとともに、チェックノードメッセージΛmnをそれぞれのチェックノードmから、接続されているシンボルノードnに送給することを表すLLR‐BP(Log-Likelihood Ratio Belief-Propagation ;対数尤度比信念伝搬法)アルゴリズムに基づいており、シンボルノードとチェックノードとの間の接続は、前記パリティチェックマトリックスHにより規定される当該LDPCデコーダにおいて、このLDPCデコーダが、
‐ 各シンボルノードに対し、前記LDPCコードの対応するシンボルのそれぞれのシンボル値の表現を記憶する第1のメモリ(1005)と、
‐ それぞれのチェックノードメッセージΛmnの表現を記憶する第2のメモリ(1015)と、
‐ 次の反復に対し、前記第1のメモリに記憶された対応するシンボル値の表現からシンボルメッセージλnmを計算するとともに、前の反復からチェックノードメッセージを計算する第1の計算手段(1010)と、
‐ この第1の計算手段から、第1のシーケンスで配置されたシンボルメッセージを受け、このシンボルメッセージを、対応するサブマトリックスにおけるゼロでないエレメントの位置に応じた異なるシーケンスで生ぜしめるシャフラ(1030)と、
‐ 前記LLR‐BPアルゴリズムに応じて、チェックノードメッセージを計算するとともに、計算したこのチェックノードメッセージの表現を前記第2のメモリに記憶させる第2の計算手段であって、この計算は、それぞれのチェックノードによりバレルシフタから受けたシンボルメッセージに応じて行うようにした当該第2の計算手段(DP‐0,DP‐1,DP‐D−1)と、
‐ 前記第1及び第2の計算手段の出力に応じて前記第1のメモリ内のシンボル値の表現を更新する第3の計算手段(1020)と
を具えるLDPCデコーダを提供する。
本発明によるアーキテクチュアでは、(しばしばλnmメッセージと称される)シンボルメッセージを直線領域内で(すなわち、シャフラの前で)計算する。このことは、この計算をシャフル領域で行う従来の解決策と相違することである。この本発明によるアーキテクチュアによれば、単一又は多重対角システムに適したエンコーダを形成するのを、主要な設計変更を行うことなく達成しうる。更に、製造費の低減化が可能となる。従属請求項に記載したように、サブマトリックスはサーキュラントとすることができ、シャフラはバレルシフタとして構成しうる。
本発明による例では、前記サブマトリックスの少なくとも1つを、各行及び列に少なくとも2つのゼロでないエレメントを有するマトリックス(以後マルチマトリックスと称する)とし、前記第1の計算手段は、マルチマトリックスにおけるゼロでないエレメントのそれぞれ1つにそれぞれ対応する関連のチェックノードメッセージに応じてこのマルチマトリックスに対応するシンボルメッセージ
Figure 0005306342
を計算するように配置する。
シンボルメッセージを直線領域で処理することにより、複数の、ゼロでないエレメント(例えば、多重対角)を有する上述したようなサブマトリックスを処理するのが簡単化される。従属請求項3に記載したように、関連する1つのチェックノードメッセージからの情報をその都度中間結果と合成する簡単な反復構造で、上述したようなマルチマトリックスを対処しうる。
本発明の一例では、前記LLR‐BPアルゴリズムを、min-sum アルゴリズムに基づかせ、LDPCコーダが、シンボルメッセージの値に補正係数αを乗じる補正手段と、値を予め決定した範囲に制限する飽和手段とを有し、これら補正手段及び飽和手段は前記第1の計算手段とバレルシフタとの間に配置する。補正及び飽和処理をバレルシフタの前で実行することにより、バレルシフタは一層制限した値の範囲で動作し、従って、一層廉価に構成しうる。
本発明による一例では、シンボルメッセージの表現を、予め決定したシーケンスで前記第1のメモリ内に記憶させ、LDPCデコーダは、前記第2の計算手段と前記第3の計算手段との間に配置されて前記予め決定したシーケンスに対応するシーケンスでチェックノードメッセージを生じる更なるバレルシフタを有するようにする。本発明によるアーキテクチュアでは、逆方向経路(すなわち、第1のメモリに向かう経路)内にも更なるバレルシフタを設けることができる。このようにすることにより、順方向経路におけるバレルシフタの制御を簡単化する。
本発明の一実施例では、前記LLR‐BPアルゴリズムを、min-sum アルゴリズムに基づかせ、前記第2の計算手段は、チェックノードメッセージを圧縮し、このチェックノードメッセージを圧縮形態で前記第2のメモリに記憶させる圧縮手段を有し、前記第1の計算手段は、前記第2のメモリから読み出したチェックノードメッセージを解凍する解凍手段を有するようにする。チェックノードメッセージを圧縮形態で記憶させることにより、製造費が廉価となる。本発明によるアーキテクチュアは、圧縮したチェックノードメッセージと、解凍したチェックノードメッセージとの双方に対し動作しうる。
本発明の目的を達成させるために、ガロアフィールド上のLDPCコードを反復復号するLDPCデコーディング方法であって、LDPCコードは、複数のサーキュラントより成る予め決定したM×NのパリティチェックマトリックスHにより表され、各サーキュラントはゼロマトリックスか、又は少なくとも1つの対角を有する対角マトリックスとし、少なくとも1つのサーキュラントは単位マトリックスを少なくとも1つの位置に亘って回転させることにより形成した対角マトリックスとし、前記LDPCデコーディング方法は、シンボルメッセージλnmをそれぞれのシンボルノードn(0≦n<N)から、接続されているチェックノードm(0≦m<M)に送給するとともに、チェックノードメッセージΛmnをそれぞれのチェックノードmから、接続されているシンボルノードnに送給することを表すLLR‐BP(Log-Likelihood Ratio Belief-Propagation )アルゴリズムに基づかせ、シンボルノードとチェックノードとの間の接続は、前記パリティチェックマトリックスHにより規定する当該LDPCデコーディング方法において、このLDPCデコーディング方法は、
‐ 各シンボルノードに対し、前記LDPCコードの対応するシンボルのそれぞれのシンボル値の表現を第1のメモリに記憶させるステップと、
‐ それぞれのチェックノードメッセージΛmnの表現を第2のメモリに記憶させるステップと、
‐ 次の反復に対し、前記第1のメモリに記憶された対応するシンボル値の表現からシンボルメッセージλnmを計算するとともに、前の反復からチェックノードメッセージを計算する第1の計算を実行するステップと、
‐ この第1の計算により生ぜしめられ、第1のシーケンスで配置されたシンボルメッセージを受け、このシンボルメッセージを、サーキュラントの回転に応じた異なるシーケンスで生ぜしめるバレルシフト処理を実行するステップと、
‐ 前記LLR‐BPアルゴリズムに応じて、チェックノードメッセージを計算するとともに、計算したこのチェックノードメッセージの表現を前記第2のメモリに記憶させる第2の計算であって、この計算は、それぞれのチェックノードによりバレルシフタから受けたシンボルメッセージに応じて行う当該第2の計算を実行するステップと、
‐ 前記第1及び第2の計算の出力に応じて前記第1のメモリ内のシンボル値の表現を更新するステップと
を具えるLDPCデコーディング方法を提供する。
本発明の上述した及びその他の態様は、以下の実施例に関する説明から明らかとなるであろう。
図1は、本発明を用いうる代表的なシステムを示すブロック線図である。 図2は、デコーディング処理を可視化したタナーグラフを示す。 図3は、2つのノード群における反復(繰り返し)を実行する一例を示す。 図4は、サーキュラントパリティチェックマトリックスを示す。 図5A及び5Bは、バレルシフタの役割を示す。 図6は、従来技術のデータ経路を示す。 図7は、min-sum アルゴリズムに対するデータ経路の詳細を示す。 図8は、従来のトップレベルアーキテクチュアを示す。 図9は、圧縮型Λ記憶装置を用いている従来のデータ経路を示す。 図10は、本発明によるLDPCデコーダの基本的なインプリメンテーションを示す。 図11は、バレルシフタの前でmin-sum アルゴリズムに基づいて補正及び飽和を実行するステップを示す。 図12は、好適なデータ経路を示す。 図13は、多重対角に対処するアーキテクチュアを示す。 図14は、圧縮型Λ記憶装置と組み合わせたアーキテクチュアを示す。
図中、異なるものとして説明しない限り、同じ機能を表すのに同じ符号を用いている。図1は、本発明を用いうる代表的なシステム100を示すブロック線図である。このシステムは、LDPCエンコーダ110とLDPCデコーダ120とを有している。符号化された信号は、無線又は有線ネットワークのような伝送媒体130を介して伝送することができる。符号化された信号は、ハードディスク又は光学式記憶装置のような記憶システムに記憶させることもできることが分かるであろう。この場合、媒体130が記憶システムを表す。信号の暗号化/解読、変調/復調等のような、図1に図示していない他の処理も追加することができる。このような追加の処理は周知であり、本発明の一部を成すものではない。
LDPCエンコーディング/デコーディング自体は周知である。ここでは、これらの周知の点を簡単に説明するだけとする。簡単な例では、(単一ビットである又は複数のビットを用いて表しうるシンボルと称しうる)ある二進情報を符号化(エンコード)することがエンコーダ110のタスクである。値“0”;“0”;“0”;“1”をそれぞれ有する4つの情報ビットS1;S2;S3;S4を伝送する必要があるものとする。これらのビットは、マトリックスの形態に配置されている。伝送エラーを検出して訂正しうるようにするために、最初に追加のパリティビットを計算する。これらのパリティビットは、マトリックスの行及び列の双方又は何れか一方に対し、予め決定されたパリティ式が満足されるようなものである。パリティ式は、ガロアフィールドGF(rq )上の式であり、このガロアフィールドでは、rが素数であり、qは例えば、GF(2)、GF(4)、GF(8)上で、更に一般的にはGF(2q )上で整数である。本例では、この式は、各行及び列における全てのビットの合計が0モジュロ2(すなわち、GF(2)における式)に等しくなるようなものである。行及び列の全てに且つパリティ行及び列にもパリティを付加することにより、本例では3×3マトリックスを得ることができる。すなわち、
Figure 0005306342
が得られる。ビットP1 〜P5 はパリティビットである。以下の6つのパリティチェック式が満足される。
1 +S2 +P1 =0mod2
3 +S4 +P2 =0mod2
3 +P4 +P5 =0mod2
1 +S3 +P3 =0mod2
2 +S4 +P4 =0mod2
1 +P2 +P5 =0mod2
パリティチェック式は、以下の形態にしうる、いわゆるパリティチェックマトリックスHにより表すことができる。
Figure 0005306342
ここで、シンボルの配列は、S1 2 1 3 4 2 3 4 5 となるように選択する。マトリックスを配列し直すことによりシンボルの他の配列も同様に選択することができる。マトリックスHにおける列数は、伝送する必要があるビット(シンボル)(システマチックビットと、計算したパリティチェックビットとの双方)の個数に相当する。マトリックスHにおけるゼロでないエレメントの位置には、どのビットがどの式で確認されるかの情報が含まれている(例えば、S1 +S2 +P1 =0mod2 が第1の行で確認され、S3 +S4 +P2 =0mod2 が第2の行で確認される等)。
低密度パリティチェック(LDPC)コードは、このスパース(疎)パリティチェックマトリックスHにより特定しうる。“低密度”とは、マトリックスHにおいて“1”が“0”よりも著しく少ないことを意味する。コードの構造は、パリティチェックマトリックスHにより完全に表される。実際には、マトリックスHが有する“1”のエレメントは本例で示すよりも著しく少ない。後の説明で、Nはコードワードの長さを表し、Mはパリティチェック式の個数を表す。従って、パリティチェックマトリックスHは、エレメント“0”又は“1”を有するM列及びN行より成る。このマトリックス中の行はパリティチェック式であり、行中に“1”を有するエレメントの組はこの式の引数である。インデックスmを有するパリティチェック式の場合、0≦m<Mが、検査されるコードワードシンボル位置の組N(m)、すなわち、
N(m)={n|n=0,1,…,N−1;Hmn≠0}
を規定する。
N(m)におけるエレメントの個数をKm と称する。同様に、コードワードシンボル位置nに対しては、0≦n<Nが、シンボル位置nを検査するパリティチェック式のインデックスの組M(n)、すなわち、
M(n)={m|m=0,1,…,M−1;Hmn≠0}
を規定する。
M(n)におけるエレメントの個数をJn と称する。
LDPCアルゴリズムは、しばしば、二部グラフであるタナーグラフにより可視化される。このことは、グラフのノードが2つの独特な組に分断されており、エッジは2つの異なる種類のノードを接続しているだけである。その一例を、上述したマトリックスHを示す図2に示す。ノードの2つの群をそれぞれシンボルノード(左側のノード)及びチェックノード(右側のノード)と称する。シンボルノードの個数は、マトリックスHの列Nの本数、すなわち伝送されるパリティビット及びシンボルの総数に相当する。チェックノードの個数は、マトリックスHが有する行Mの本数に相当し、これはパリティチェック式の個数に等しい。Hmn=1の場合で且つその場合に限り、n番目のシンボルノード(1≦n≦N)とm番目のチェックノード(1≦m≦M)とが接続される。上述した例の場合、第1のチェックノードCN−1が第1、第2及び第3のシンボルノードに接続されており、このことは、第1のパリティチェック式においてS1 +S2 +P1 =0mod2 が確認されることを意味する。
LDPCコードのデコーディングは、接続ノード間の通過メッセージであって送信ノードが真であると信じられる値(より一般的には確率)を表しているメッセージに基づいて行われる。このようなデコーディングアルゴリズムの最適化としては種々のものが知られている。これらのアルゴリズムは一般的に、信念(確率)伝搬アルゴリズム(BP)や、メッセージ通過アルゴリズム(MPA)や、sum-product アルゴリズム(SPA)と称されている。アルゴリズムは一般的に、乗算を加算に代えるために、対数領域で実行される。LDPCデコーダは、“ハードビット”、すなわち、二進シンボル値で動作するのではなく、一般的にデータのいくつかのビット、例えば、8ビットを用いて実行される“ソフトビット”で動作する。これらのビットで表される整数値は、符号化されたシンボルビットが0又は1である可能性がどのくらいであるかの尺度となる。例えば、整数は、範囲[−127,127]から取り出すことができる。ここで、−127は“確実に0”を意味し、−100は、“たぶん0”を意味し、0は“0である可能性と、1である可能性とが同程度”を意味し、100は“たぶん1”を意味し、127は“確実に1”を意味し、等である。充分な回数の反復後、全てのパリティチェックが満足されたか又は最大回数の反復に達したかに応じ、又シンボルに対する記憶値に基づいて、硬判定、すなわち、復号化ビットを供給しうる。LDPCデコーダはソフトビットで初期化されるものであり、これらのソフトビットは、ビットをエンコーダから受信した記憶システム又は伝送の復調器から供給される。例えば、初期段階の従来の無線受信機は、各ビットに対し、受信したビット/シンボルを表す内部アナログ電圧が所定のしきい値からどの程度異なるかを表す整数の尺度を生じる。シンボルノードnを初期化するソフトビット値を図2にLn として示してある。一般に、LDPCデコーダは、直接尤度(可能性)に基づいて動作させずに、受信情報の対数尤度比(LLR)、例えば、“0”が伝送される確率を、“1”が伝送される確率で割った式の対数(又は逆に、“1”が伝送される確率を、“0”が伝送される確率で割った式の対数)に基づいて動作させる。一般に、yが既に生じたものとした場合のxの条件付対数尤度比は、
Figure 0005306342
である。
この式は、伝送システムを知った上で“解く”ことができる。例えば、簡単な伝送システムでは、伝送すべきビットを、指数が等しい2つの値(例えば、+1及び−1として表される値)の一方にマッピングしうる(例えば、二進値“0”のビットを+1にマッピングし、二進値“1”のビットを−1にマッピングする)。エンコーダとデコーダとの間の伝送チャネルは、(ガウス雑音が加わった)ガウスチャネルとして表すことができる。伝送される“1”及び“0”の尤度が等しいものとすると、
Figure 0005306342
となる。ここで、rは受信ビットの値であり、σ2 は雑音分散である。
本発明で用いているLDPCの復号化は、LLRが対数尤度比を表す、対数領域における“信念伝搬法に基づく”(BPBased )アルゴリズム(LLR‐BP based)である。このアルゴリズムは、J. Chen 氏等著“Reduced complexity decoding of LDPC codes ”,IEEE Transactions on Communications, volume 53, pp. 1288-1299, 2005で説明されているように、双曲線関数、ギャラガー(Gallager)のアプローチ、ヤコビアン(Jacobian)変換、最小関数を有する近似BP、正規化BP又はこれらの組み合わせに基づかせることができる。以後、このようなアルゴリズムをLLR‐BP basedアルゴリズムと称する。このようなアルゴリズムの好適な形態は、正規化min-sum LLPCデコーディングアルゴリズムである。このアルゴリズムは、より一般的な信念伝搬(BP)デコーディングのパーフォーマンスレベルに近い又はしばしば同等なパーフォーマンスレベルを達成するとともに、重大なハードウェアの利点を提供する。以下の詳細な説明は、正規化min-sum アルゴリズムに基づくものであるが、その概念は他の形態の信念伝搬アルゴリズムにも等しく良好に適用されるものである。
グラフの頂点(V)の組は、N個のシンボルノードの組とM個のパリティチェックノードの組との結合である。エッジ(E)の組はHmn=1である全てのエッジ(m,n)より成る。LDPCアルゴリズムの従来の反復は、シンボルノード(N)からエッジ(E)を経てチェックノード(M)に送信されて、返信される情報より成る。該当するシンボルノードはインデックスnで表され、チェックノードはインデックスmで表される。
min-sum アルゴリズムの所定の反復iに対しては、以下の変数が規定される(図2にはメッセージも示されている)。
‐ Ln :入力メッセージをシンボルノードnで表現したxビットである。例えば、符号化されたワードを伝送するのに、BPSK変調が用いられている場合、Ln は、
Figure 0005306342
となる。ここで、yn は受信したBPSKシンボル値であり、σ2 は雑音分散である。変調技術としては適切な如何なるものも用いうることを理解すべきである。
‐ [数1]: i番目の反復においてシンボルノードnからチェックノードmに送信されるメッセージである。
このメッセージを“シンボルメッセージ”とも称する。このシンボルメッセージは、一般に、(Ln である)シンボルノードnで受信したもとの値と、接続されたチェックノードから受信した更新メッセージとに依存する。従って、第1の反復では、Ln のみがシンボルメッセージとして送信される。チェックノードからの更新メッセージを、
Figure 0005306342
として表す。従来のLDPCデコーディングでは、[数1]を次式(2)となるように選択しうる。
Figure 0005306342
この式では、加算は、シンボルノードnが接続されている(M(n)である)全てのチェックノードm’に亘って行われるが、メッセージが送信されたチェックノードに亘っては行われないことに注意すべきである。このことは不安定性を回避するためである。更に、更新メッセージ
Figure 0005306342
は、前の反復i−1から得られることに注意すべきである。以下に説明するように、上述したことは厳密には必要ない。
Figure 0005306342
:i番目の反復においてチェックノードmからシンボルノードnに送信されたメッセージである。このメッセージを、“チェックノードメッセージ”とも称する。このメッセージは、チェックノードmが受信するシンボルメッセージに依存する。このメッセージを
Figure 0005306342
として初期化しうる。
このメッセージの更新は、チェックノードが受信する全てのシンボルメッセージに基づいて、すなわち、チェックノードメッセージが送信されようとしているシンボルノードnを除いて、(N(m)である)チェックノードmに接続された全てのシンボルノードから行うのが好ましい。現在の反復の開始時におけるメッセージ値のみに関する更新に基づき且つmin-sum アルゴリズムを用いて、次式(3)を得る。
Figure 0005306342
ここで、XORは、ブールXOR関数の等価符号、すなわち、XOR(−,−)=+として規定される。αは、正規化されたmin-sum アルゴリズムで周知である補正係数である。
‐ λn :デコーダの出力メッセージである。通常、λnmの場合と相違し、デコーダの出力メッセージλn は代表的にシンボルノードnに得られる全ての情報を用いるものであり、最後の反復Iに必要となるだけである。
Figure 0005306342
上記の式(4)においては、反復iにおけるデコーディングは、前の反復i−1の終了時に得られた情報に静的に基づいている。このような反復の形態は、ヤコビの反復法として見られる。このアルゴリズムは、“スタッガードデコーディング”、“ターボデコーディングLDPC”、“シャッフルドデコーディング”及び“レイヤードデコーディング”としても知られている技術であるガウス‐ザイデル反復を含むように変更させることができる。この種類のLDPCデコーディングでは、デコーディングは前の反復の終了時に得られた情報に静的に基づくのではなく、現在の反復iで得られた情報を直ちに用いる。この目的のために、LDPCのチェックノード中心処理を用いる。Ln と、最大でチェックノードとシンボルノードとの間のデータメッセージまでとの合計より成る変数
Figure 0005306342
、すなわち、
Figure 0005306342
を用いる。
この式では、集合
Figure 0005306342
は、チェックノードmによる処理の前の現在の反復中に既に更新されたメッセージに関するものであり、R(n,m)=M(n)\U(n,m)はまだ更新されていない残りのメッセージの集合である。ヤコビの反復法の場合、U(n,m)=φが、ガウス‐ザイデルの場合、U(n,m)が、
Figure 0005306342
として規定される。
この式は、幾つかのチェックノードにおける並列更新を可能にする。第1のサイクルで更新されたチェックノードはm1 と称され、第2のサイクルで更新されたチェックノードはm2 と称され、以下順次同様である。一般に、全てのチェックノードを並列に更新しうるわけではない。その理由は、全てのチェックノードを並列に更新することにより、メモリのコンフリクトが生じる為である。スケジュールに応じてチェックノードを並列検査のサイクルに割り当てる。
次式
Figure 0005306342
により、
Figure 0005306342
の値が与えられ、現在のチェックノードmx における
Figure 0005306342
を計算した後、[数14]が
Figure 0005306342
として更新される。
従って、この式では、mx+1 が、前のサイクルでチェックノードmx (又は並列処理されたチェックノードの集合)が処理された後に処理されたチェックノード(又は並列処理されたチェックノードの集合)となる。図3は、反復iを2つのメイングループで実行した場合のこの状態を示す。第1のメイングループでは、チェックノードCN‐1〜CN‐3が処理され(集合m1 を形成し)、同じ反復での次の第2のメイングループでは、残りのチェックノードCN‐4〜CN‐6が処理される(集合m2 を形成する)。
DVB‐S2、802.11n、802.16e、DMB‐T及びSTiMiのような現在の通信標準規格に合致したLDPCコードは全て準巡回構造を有している。このことは、シンボルノードとチェックノードとの間(例えば、N(m)とM(n)との間)の相互接続を表すHマトリックスがサーキュラントから構成されていることを意味する。これらのサーキュラントは、ある角度に亘って回転されたゼロマトリックス又は単位マトリックスから構成されている。ある標準規格では、1つのサーキュラントに多重対角が生じる。DVB‐S2では、LDPCコードは64800ビットより成っており、コードレート1/2の場合、その半分がシステムビット(エンコーダへの原入力ビット)であり、他の半分がパリティビットである。全部で32400のパリティ式を用いることにより、Hマトリックスに64800列及び32400行を与える。マトリックスは360×360のブロック(サーキュラント)に細分される。図4は、サーキュラントのHマトリックスの代表的な構造を示す。本例では、サーキュラントは4×4ブロックのみである。サーキュラント400は単位マトリックスである。サーキュラント410は1位置だけ右に回転されている。サーキュラント420は3位置だけ右に回転されている。右への回転は左への回転とみなすこともできること勿論である。サーキュラントによりHマトリックスを構成するのに好ましい特性は、1つの(サブ)サーキュラントに属する全てのデータを、メモリの1ラインに記憶でき、1クロックサイクルで取り出すことができ、回転により正しいデータ経路に送ることができるようにするとともに、データ経路がチェックノードにより表される処理の少なくとも一部を実行するようにすることである。図5A及び5Bは、サーキュラントの行を並列に検査する状態を示す。マトリックスの各行は、それぞれのデータ経路により検査される。図5の例では、1つのサーキュラントが4つの行を有し、従って、4つの式をそれぞれのデータ経路により並列に検査するのが好ましい。図5Aは、反復の開始時にシンボルノードが値a〜zを記憶することを示している。第1の式(=第1のデータ経路DP‐1)はa,f及びzを有するシンボルノードを検査する必要がある(本例では、…により表される中間のサーキュラントは無視した)。第2の式はb,g,wを検査し、第3の式はc,h,xを検査し、第4の式はd,e,yを検査する必要がある。図5Bは、各行の寸法をサーキュラントの寸法としたメモリMem 内にシンボル値を如何に記憶しうるかを示す。本例では、順次の各行が対応するシンボルノード値のエレメントを記憶する。いわゆるバレルシフタBSが、行をメモリから読み出し、適切な個所で、行中のエレメントを回転させる。本例では、エレメントa〜dが、単位マトリックスである第1のサーキュラントに対応する。この場合、回転は必要ない。次の群のエレメントe〜hは第2のサーキュラントに対応する。このサーキュラントは、1位置だけ右に回転させた単一対角である。逆回転R1(すなわち、3位置だけ右に回転させたのと同じである、1位置だけ左に回転)を実行することにより、第1のデータ経路により作用させる必要があるエレメントは第1の“列”にも存在するようになる。同様に、最後の群のエレメントw〜zは、3位置だけ右に回転させた単一対角を有する最後のサーキュラントに対応する。エレメントを3位置だけ左に(又は1位置だけ右に)回転させることにより、第1のデータ経路により作用させる必要がある最後の群のエレメントも第1の“列”に存在するようになる。従って、第1のデータ経路DP‐1には、バレルシフタにより生ぜしめられた第1の列をローディングさせることができる。第2の列は、第2のデータ経路DP‐2に対してエレメントを自動的に与える。バレルシフタ自体はエレメントを回転させるものとして周知であり、所望の出力をそれぞれのデータ経路に生ぜしめる。バレルシフタの一例は、IEEE Journal of solid-state circuits Vol. 21, No. 2, February 1992における論文である“A New Design of a Fast Barrel Switch Network”(G. M. Tharakan及びS. M. Kang氏著)にも開示されている。図5Bに示す構成とは異なる構成をも用いることができる。サーキュラントを用いる代わりに、1のエレメントの個数を行及び列の各々で同じにしたサブマトリックスを用いる場合にも上述したのと同じ概念を適用しうることを理解すべきである。この場合、回転を実行する代わりに、僅かに複雑な置換を実行する必要がある。この置換を実行するユニットをシャフラとみなすことができる。以下の説明は、サーキュラントに主点をおくものであり、バレルシフタとしてシャフラを参照する。多重対角のサーキュラントは、複数のゼロでないエレメントの個数を行及び列の各々で同じとした、サブマトリックスの特別な種類のものであることを理解すべきである。本発明によるアーキテクチュアはサーキュラントに対し詳述するが、より一般的な場合に対しても同様に適用しうるものである。
LDPCデコーダの従来のアーキテクチュアのカーネルは、図6に示すデータ経路により形成されている。上述したように、
Figure 0005306342
は、これらの値を記憶する第1のメモリから順次に到来する
Figure 0005306342
から
Figure 0005306342
を減算することにより形成される。λnmは、図6に610として示す式(3)を計算するのに用いられる。自分自身を除く全てのパーティシパントに対し全ての最小値を計算する必要がある場合には、式の集合は2つのみの出力値、すなわち、全体的に最小値及び1つであるが最小値を有する。最小値の位置(すなわち、最小値を与えるパーティシパントの識別)も記憶される。これらの2つの値を計算することを“ランニングベクトルの計算”と称され、ベクトルはΛm として示される。個々のΛmnの計算がこのベクトルの解凍となる。ランニングベクトルの計算及び解凍をブロック630として示す。このような圧縮/解凍自体はmin-sum アルゴリズムに対して周知である。Λm を計算するのと同時にΛnmが後に使用するためにバッファに、好ましくはFIFO620に記憶される。このことは、次のKm サイクル中、次のパリティチェック式に対し繰り返され、一方、現在のパリティチェック式に対しては個々の
Figure 0005306342
が上述した解凍により計算される。[数25]はブロック640においてFIFO620からのλnmに加算され、その結果、新たな
Figure 0005306342
(式7)が得られる。従って、データ経路が1つのパリティ式のKm λn を生じ、次の式に対しKm λn を受ける。このデータ経路は1クロックサイクル当たりチェックノードとシンボルノードとの間の1つの接続に対処する。n1 =n2 に対しλn2の書き込みの前にλn1の読み出しを回避するために、パリティ式の順序を静的に決定する必要がある。このことが達成されないと、ノーオペレーションを挿入する必要があり、処理能力を低下させてしまう。上述したように、パリティ式を同時に計算しうるように、殆どのLDPCコードはサーキュラント構造から成っている。コードのサーキュラント寸法がデータ経路の個数に等しく、1つのサーキュラントにある対角が多くとも1つである場合には、デコーダは、メモリのコンフリクトを生じることなく複数のパリティチェック式を計算しうる。
図7は、min-sum アルゴリズムに対する図6のブロック630の従来構造を詳細に示している。ブロック710は、式(3)に示すように、補正係数αを入力に乗算することを示している。ブロック730は、ランニングベクトルの計算を示す。ブロック740は解凍を示す。ブロック720は、ブロック710の出力の範囲を、予め決定した範囲、代表的には8ビットに減少させる飽和関数を示す。飽和は、クリッピング/丸め込み又はスケーリングのような適切な如何なる方法でも行うことができる。このこと自体は周知である。
図8は、D並列のデータ経路DP‐0〜DP‐D−1を有する従来のトップレベルのアーキテクチュアを示しており、各データ経路は、図6に示され図7で詳述しているデータ経路に相当する。このアーキテクチュアでは、第1のメモリλmem がλn 値を記憶し、メモリ“ΛMem0”〜“ΛMemD-1”として示す第2のメモリが、解凍したΛmn値を記憶する。本例では、メモリ“ΛMem0”が値Λ0n,ΛDn,Λ2Dn ,…を記憶し、メモリ“ΛMem1”が値Λ1n,Λ1+Dn,Λ1+2Dn ,…を記憶し、以下順次同様である。
この提案されたアーキテクチュアの(メモリ)効率は、データ経路への/データ経路からのデータの集合が常にメモリ内の1ワードに存在するようにする特性を用いることにより達成されている。[Dielissen, DATE]に記載されている技術を適用すると、サーキュラントが複数の小さなサブサーキュラントに分割され、これに対して対角特性が与えられている。
殆どの標準規格の場合、LDPCデコーダに必要とするシリコン領域の大部分が、Λメモリを有する第2のメモリで使われる。これらのメモリに記憶される大きさには、式の最小値又は1つであるが最小値のみを含んでいる為、これらの値を前述したように圧縮することができる。圧縮係数は、
Figure 0005306342
であり、ここでbは大きさを記憶するのに必要なビット数であり、Kは式中のパーティシパントの個数である。Kが30に等しい場合、この圧縮係数は10である。図9は、圧縮型Λ記憶装置を用いるためのデータ経路における変更を示す。図9は、図6と図7との組み合わせであり、ΛメモリがΛmn値を圧縮形態で記憶するものである。このことは、メモリ内に記憶すべき値を解凍ブロック740の前でタッピングすることにより図9に表すことができる。圧縮した記憶値を用いうるようにするために、更なる解凍ブロック910を記憶装置の後に用いる。
しかし、圧縮型Λ記憶装置を用いるには以下のような幾つかの注意点がある。
‐ Λメモリにおける全記憶容量は、1つの標準規格に対し要求された全てのコードに依存させる。一例として、DVB‐S2は規定された12レートを有し、Kは4〜30の範囲にある。メモリ内に記憶する必要があるベクトルの個数は各レートに対し異なる。DVB‐S2で使用するレートを10とした場合、上述したことは、b=5であるものとすると、全体の圧縮係数は3.4であることを意味する。
‐ Λメモリの1ワードに
Figure 0005306342
ビットを書き込む代わりに、Kサイクルを用いて読み出し及び書き込みを行ない、これにより特別な論理の犠牲の下でメモリの領域利用を高める。
‐ 2ポートメモリが得られ、高さが既に固定されているFPGA技術を対象とする場合、Λの圧縮は如何なる利点をももたらすものではない。
‐ 処理すべき“副層”の個数がだいぶ少ない場合には、圧縮型メモリの高さは、圧縮により領域上の利点が殆ど得られない程度に低くなりうる。
図8に示すアーキテクチュアは、順方向経路にバレルシフタBS‐1を用い、逆方向経路にバレルシフタBS‐2を用いていることを示している。バレルシフタBS‐1は、アドレス発生器“Addr gen”から回転命令を受ける。これらの命令(又はその反転バージョン)はバレルシフタBS‐1及びBS‐2を接続しているFIFOにも記憶される為、正しいサイクル数後にバレルシフタBS‐2は、バレルシフタBS‐1が成した回転に対して逆の回転をシーケンスの同じエレメント上で実行しうる。このアーキテクチュアは、逆方向の経路におけるバレルシフタBS‐2を省略することにより更に最適化しうる。このような構成では、順方向経路におけるバレルシフタBS‐1が、データを逆方向に回転させて第1のメモリ“λmem ”内に書き込むという事実を補償する必要がある。図8では、単一のバレルシフタのアーキテクチュアを個別に示していない。図8のI/Oコントローラ“IO Contr”及びアドレス発生器“Addr gen”は、バレルシフタBS‐1を制御するように適切にプログラミングしうる。このこと自体は当業者の技術範囲内のものである。
上述したアーキテクチュア自体は単一対角のサーキュラントに対し有効なものである。これらのアーキテクチュアは以下の計算を行う。
Figure 0005306342
シンボルノードnを同じサーキュラント(例えば、二重対角)における2つのチェックノードに接続されている例として、以下の状態が生じる。
Figure 0005306342
図10は、本発明によるLDPCデコーダのアーキテクチュアの基本的構成を示す。このLDPCデコーダは、各シンボルノードnに対し、LDPCコードの対応するシンボルそれぞれのシンボル値λn の表現を記憶する第1のメモリ1005を有する。LDPCのシンボルが0からN−1まで順次に番号付けされているものとすると、シンボルノードnに対しn番目のシンボルが記憶される。LDPCデコーダは更に、それぞれのチェックノードメッセージΛmnの表現を記憶する第2のメモリ1015を有する。本例では、この第2のメモリ1015を、図8に示すように、複数のメモリ、好ましくはFIFOに細分する。LDPCデコーダは更に、次の反復に対し、第1のメモリ1005に記憶された対応するシンボル値の表現からのシンボルメッセージλnmと、前の反復からのチェックノードメッセージΛmnとを計算する第1の計算手段1010を有する。一実施例では、この第1の計算手段1010が前述した式(7)に応じて
Figure 0005306342
を計算する。各データ経路0〜D−1では、シンボルノードの異なる1つに対し計算を行う。D個の計算が並列に行われる。従って、第1のバッチでは、ノード0〜D−1が処理され、第2のバッチでは、ノードD〜2D−1が処理され、以下順次同様となる。この場合、第1の計算手段1010は、D個の減算が並列に行われるように配置する。LDPCデコーダは更に、第1のシーケンスで配置した第1の計算手段1010からシンボルメッセージを得るとともに、このシンボルメッセージをサーキュラントの回転に応じて異なるシーケンスで生じるバレルシフタ1030を有する。このバレルシフタ1030は原理的に図5Bにつき前述したのと同じにでき、この場合、シンボルノードのシーケンスに応じて配置したシンボルメッセージを受信することができ、これらのシンボルメッセージは、含まれる対角マトリックスへの単位マトリックスの回転と比較して反対に回転させることにより再配置し、最後にこれらのシンボルメッセージを列方向に生ぜしめる。バレルシフタの作用は、シーケンスを、サーキュラントにより規定されたように簡単に変更させることにある。
LDPCデコーダは更に、LLR‐BP(Log-Likelihood Ratio Belief-Propagation )アルゴリズムに応じて、チェックノードメッセージΛmnを計算するとともに、計算したこれらのチェックノードメッセージを第2のメモリ1015内に記憶させる第2の計算手段を有する。この計算は、それぞれのチェックノードmによりバレルシフタ1030から供給されたシンボルメッセージλnmに依存する。この第2の計算手段により実行される計算の少なくとも一部分は、バレルシフタ1030後のデータ経路DP‐0〜DP‐D−1内で、従って、回転領域内で実行される。一実施例では、min-sum アルゴリズムを用い、第2の計算手段が、式(3)による[数12]を計算する。
LDPCデコーダは更に、第1及び第2の計算手段の出力に応じて第1のメモリ内のシンボル値の表現を更新する第3の計算手段1020を有する。好適実施例では、第3の計算手段1020は式(8)による[数21]を計算する。
本例の場合、図8の既知のアーキテクチュアとの主たる相違は、
Figure 0005306342
の計算を“直線領域”で、例えば、バレルシフタ1030の前で行うことである。FIFO1040へのλnmの記憶及びλn を得るための加算
Figure 0005306342
もバレルシフタの前で、すなわち、直線領域で実行する。
本発明の一実施例では、シンボルメッセージの表現を前述したように、予め決定したシーケンスで第1のメモリ内に記憶する。LDPCデコーダは、この予め決定したシーケンスに対応するシーケンスでチェックノードメッセージを生ぜしめるために、第2の計算手段と第3の計算手段1020との間に配置した他のバレルシフタ1035を有する。前述したように、逆方向経路におけるバレルシフタ1035は、第1のメモリ内で用いられている最初のシーケンスを回復させる。
図11に示す他の実施例では、LLR‐BPアルゴリズムがmin-sum アルゴリズムに基づくようにし、LDPCコーダが、シンボルメッセージの値に補正係数αを乗じる補正手段と、値を予め決定した範囲に制限する飽和手段とを有するようにする。補正手段自体は、図7にブロック710として既に示されており、飽和手段はブロック720として示されている。補正は飽和前で最初に行うのが好ましい(補正により値の範囲を予め低減させることができる)。図11に示すように、ブロック1110として示す、補正手段と飽和手段との組み合わせを、第1の計算手段とバレルシフタとの間に配置する。これにより、LDPCコーダを構成しうる集積回路の領域(面積)の犠牲を異ならせる。すなわち、バレルシフタの前でαの乗算及び飽和処理を行うことにより、バレルシフタ1030が、他の場合のλn 幅よりも1〜3ビットだけ少ないΛmnのビット幅を有しうるようになる。正負符号を記憶するには、1つの1ビットFIFOを追加する必要があることに注意すべきである。1ビットFIFOは、図12にブロック1230として示してある。しかし、XORの合計を、バレルシフタを介して伝達し、このXORをλメモリ1005の前で加算器に直接供給する場合には、最適にはこの1ビットFIFOを省略しうる。
図11に示すような好適実施例では、第2の計算手段により達成されるデータ経路が、図12に示すように極めて簡単となる。ブロック1210は、原理的に図7のブロック730に対して示すのと同じであるランニングベクトルの計算を示す。ブロック1220は、原理的に図7のブロック740に対して示すのと同じであるベクトル圧縮を示す。ブロック1230は、正負符号を記憶する1ビットFIFOを示す。
図10及び11に示すアーキテクチュアは、多重対角のコンフリクトを対処するように極めて容易に変更しうる。このような実施例では、少なくとも1つのサーキュラントを、複数の対角を有するマトリックスとし、各対角は、単位マトリックスをそれぞれ異なる個数の位置に亘って回転させることにより形成する。この場合、第1の計算手段1010を、各チェックノードメッセージがサーキュラント中の1つの対角にそれぞれ対応する複数の関連するチェックノードメッセージに応じて、多重対角サーキュラントに相当するシンボルメッセージ[数1]を計算するように配置する。従って、サーキュラントが2つの対角を有する場合には、第1の計算手段が2つの個別の[数1]を発生し、サーキュラントが3つの対角を有する場合には、第1の計算手段が3つの個別の[数1]を発生し、以下順次同様である。第1の計算手段は、各反復で、関連のチェックノードメッセージΛmnのそれぞれ1つを計算結果に合成することにより単一のシンボルノードnに関連するシンボルメッセージ[数1]を反復して計算するように配置するのが好ましい。この反復構成を図13に示す。前述したアーキテクチュアにおけるように、FIFO1040は[数1]を記憶でき、ブロック1020で
Figure 0005306342
と、
Figure 0005306342
とを加算することにより、新たな[数14]を計算する。二重対角の場合には、ブロック1010がチェックノードメッセージ
Figure 0005306342
及び
Figure 0005306342
を二度減算する。次に、FIFO1040が、
Figure 0005306342
を記憶する。ブロック1020で新たな[数36]及び[数37]を加算することにより、新たな[数14]を計算する。一例として、シンボルノードnが同じサーキュラントにおける2つのチェックノード1及び4(例えば、二重対角)に接続されているものとすると、値λn =Ln +Λ1n+Λ4nが第1のメモリ1005から読み出される。最初に、2つの減算器を用いてブロック1010で上記の値からΛ1nを減算する。Ln +Λ4nである1つの出力がバレルシフタ1030に供給され、これと同じ値がFIFO1040にも記憶される。第2のサイクルでは、双方の減算器によりΛ4nが減算される。バレルシフタへのデータ経路には依然としてλn =Ln +Λ1n+Λ4nが供給され、従って、一方の減算器によるΛ4nの減算後に、バレルシフタにLn +Λ1nが(随意であること勿論であるが補正及び飽和処理後に)供給される。このサイクルでは、他方の減算器にブロック1010中のマルチプレクサの第2の経路を経てLn +Λ4nが供給される。従って、Λ4nを減算することにより、Ln がFIFO1040に記憶される。この場合、1ビットFIFOを構成する必要があることに注意すべきである。
図8、10、11及び13に示すアーキテクチュアはΛmnメッセージを記憶するのにFIFOを用いている。前述したように、圧縮型Λ記憶装置を適用することにより領域を節約しうる。この点を本発明によるアーキテクチュアで実行するために、図14に示すように、正負符号と大きさとを分離させる。正負符号は、戻りのバレルシフタ1035の後に取り出してバッファ(好ましくはFIFO)1420に記憶させる。大きさに対しては、図9の場合のように、データ経路からベクトルを取り出し、バッファ(好ましくはFIFO)1410に記憶させる。解凍ユニット910は図9に示すのと同様である。バレルシフタ1035と同じ機能を実行する第3のバレルシフタ1430を加える。
本発明は、ソフトウェアと同様にハードウェアで、例えば、デジタル信号プロセッサ(DSP)又は最適化させたVLIWプロセッサで実行しうることに注意すべきである。ソフトウェアで実行する場合、図面中のブロックが機能的なソフトウェアユニットを表わすものとして見ることができる。従って、本発明はコンピュータプログラム、特に本発明を実現するようにした担体上又は内のコンピュータプログラムにも拡張されるものである。このプログラムは、ソースコード、オブジェクトコード、部分的にコンパイルされた形態のようなソースコードとオブジェクトコードとの中間のコードの形態とするか、又は本発明による方法の実行に用いるのに適した他の如何なる形態にもすることができる。担体は、プログラムを実行しうる如何なるエンティティ又はデバイスにもすることができる。例えば、担体には、ROM、例えば、CDROM又は半導体ROMのような記憶媒体、又はフロッピー(登録商標)ディスク又はハードディスクのような磁気記録媒体を含めることができる。更に、担体は、電気ケーブル又は光ケーブルを介して或いは無線又はその他の手段により伝達しうる電気信号又は光信号のような送信可能な担体とすることができる。プログラムをこのような信号で実現する場合、担体を上述したケーブル又はその他の装置或いは手段で構成することができる。或いはまた、担体を、プログラムが実現されている集積回路であって、関連の方法を実行するようにするか、又はその実行に用いるための集積回路とすることができる。
本発明は上述した実施例に限定されるものではなく、当業者は特許請求の範囲から逸脱することなしに他の多くの実施例を設計しうるものであることに注意すべきである。本発明は、幾つかの個別の素子を有するハードウェアにより、又適切にプログラミングしたコンピュータにより構成しうる。又、幾つかの手段を列挙している装置の請求項では、これらの手段の幾つかを1つの同じハードウェア装置で構成しうるものである。更に、ある手段を互いに異なる従属請求項に述べているという単なる事実は、これらの手段の組み合わせの使用が有利ではないということを意味するものではない。

Claims (8)

  1. ガロアフィールド上のLDPCコードを反復復号するLDPCデコーダであって、LDPCコードは、複数のサブマトリックスより成る予め決定したM×NのパリティチェックマトリックスHにより表され、各サブマトリックスはゼロマトリックスか、又は各行及び列におけるゼロでないエレメントの個数が同じであるマトリックスであり、LDPCデコーダは、シンボルメッセージλnmをそれぞれのシンボルノードn(0≦n<N)から、接続されているチェックノードm(0≦m<M)に送給するとともに、チェックノードメッセージΛmnをそれぞれのチェックノードmから、接続されているシンボルノードnに送給することを表すLLR‐BP(Log-Likelihood Ratio Belief-Propagation)アルゴリズムに基づいており、シンボルノードとチェックノードとの間の接続は、前記パリティチェックマトリックスHにより規定される当該LDPCデコーダにおいて、このLDPCデコーダが、
    ‐ 各シンボルノードに対し、前記LDPCコードの対応するシンボルのそれぞれのシンボル値の表現を記憶する第1のメモリと、
    ‐ それぞれのチェックノードメッセージΛmnの表現を記憶する第2のメモリと、
    ‐ 次の反復に対し、前記第1のメモリに記憶された対応するシンボル値の表現からシンボルメッセージλnmを計算するとともに、前の反復からチェックノードメッセージを計算する第1の計算手段と、
    ‐ この第1の計算手段から、第1のシーケンスで配置されたシンボルメッセージを受け、このシンボルメッセージを、対応するサブマトリックスにおけるゼロでないエレメントの位置に応じた異なるシーケンスで生ぜしめるシャフラと、
    ‐ 前記LLR‐BPアルゴリズムに応じて、チェックノードメッセージを計算するとともに、計算したこのチェックノードメッセージの表現を前記第2のメモリに記憶させる第2の計算手段であって、この計算は、それぞれのチェックノードによりバレルシフタから受けたシンボルメッセージに応じて行うようにした当該第2の計算手段と、
    ‐ 前記第1及び第2の計算手段の出力に応じて前記第1のメモリ内のシンボル値の表現を更新する第3の計算手段と
    を具えるLDPCデコーダ。
  2. 請求項1に記載のLDPCデコーダにおいて、前記サブマトリックスの少なくとも1つが、各行及び列に少なくとも2つのゼロでないエレメントを有するマトリックス(以後マルチマトリックスと称する)であり、前記第1の計算手段は、マルチマトリックスにおけるゼロでないエレメントのそれぞれ1つにそれぞれ対応する関連のチェックノードメッセージに応じてこのマルチマトリックスに対応する、i番目の反復におけるシンボルメッセージ
    Figure 0005306342
    を計算するように配置されているLDPCデコーダ。
  3. 請求項2に記載のLDPCデコーダにおいて、前記第1の計算手段は、各反復において関連のチェックノードメッセージのそれぞれ1つを計算結果と合成することにより、単一のシンボルノードに関連するシンボルメッセージを反復計算するように配置されているLDPCデコーダ。
  4. 請求項1に記載のLDPCデコーダにおいて、LLR‐BPアルゴリズムは、min-sumアルゴリズムに基づいており、前記LDPCデコーダが、シンボルメッセージの値に補正係数αを乗じる補正手段と、値を予め決定した範囲に制限する飽和手段とを有しており、これら補正手段及び飽和手段は前記第1の計算手段と前記シャフラとの間に配置されているLDPCデコーダ。
  5. 請求項1に記載のLDPCデコーダにおいて、シンボルメッセージの表現が、予め決定したシーケンスで前記第1のメモリ内に記憶されており、LDPCデコーダは、前記第2の計算手段と前記第3の計算手段との間に配置されて前記予め決定したシーケンスに対応するシーケンスでチェックノードメッセージを生じる更なるシャフラを有しているLDPCデコーダ。
  6. 請求項1に記載のLDPCデコーダにおいて、LLR‐BPアルゴリズムは、min-sumアルゴリズムに基づいており、前記第2の計算手段は、チェックノードメッセージを圧縮し、このチェックノードメッセージを圧縮形態で前記第2のメモリに記憶させる圧縮手段を有し、前記第1の計算手段は、前記第2のメモリから読み出したチェックノードメッセージを解凍する解凍手段を有しているLDPCデコーダ。
  7. 請求項1に記載のLDPCデコーダにおいて、前記サブマトリックスは、ゼロマトリックスか又は少なくとも1つの対角を有する対角マトリックスであるサーキュラントであり、少なくとも1つのサーキュラントは、単位マトリックスを少なくとも1つの位置に亘って回転させることにより形成した対角マトリックスであり、前記シャフラは、サーキュラントの回転に応じてシンボルメッセージのシーケンスを変更するバレルシフタであるLDPCデコーダ。
  8. ガロアフィールド上のLDPCコードを反復復号するLDPCデコーディング方法であって、LDPCコードは、複数のサブマトリックスより成る予め決定したM×NのパリティチェックマトリックスHにより表し、各サブマトリックスはゼロマトリックスか、又は各行及び列におけるゼロでないエレメントの個数が同じであるマトリックスとし、前記LDPCデコーディング方法は、シンボルメッセージλnmをそれぞれのシンボルノードn(0≦n<N)から、接続されているチェックノードm(0≦m<M)に送給するとともに、チェックノードメッセージΛmnをそれぞれのチェックノードmから、接続されているシンボルノードnに送給することを表すLLR‐BP(Log-Likelihood Ratio Belief-Propagation)アルゴリズムに基づかせ、シンボルノードとチェックノードとの間の接続は、前記パリティチェックマトリックスHにより規定する当該LDPCデコーディング方法において、このLDPCデコーディング方法は、
    ‐ 各シンボルノードに対し、前記LDPCコードの対応するシンボルのそれぞれのシンボル値の表現を第1のメモリに記憶させるステップと、
    ‐ それぞれのチェックノードメッセージΛmnの表現を第2のメモリに記憶させるステップと、
    ‐ 次の反復に対し、前記第1のメモリに記憶された対応するシンボル値の表現からシンボルメッセージλnmを計算するとともに、前の反復からチェックノードメッセージを計算する第1の計算を実行するステップと、
    ‐ この第1の計算により生ぜしめられ、第1のシーケンスで配置されたシンボルメッセージを受け、このシンボルメッセージを、対応するサブマトリックスにおけるゼロでないエレメントの位置に応じた異なるシーケンスで生ぜしめるシャフル処理を実行するステップと、
    ‐ 前記LLR‐BPアルゴリズムに応じて、チェックノードメッセージを計算するとともに、計算したこのチェックノードメッセージの表現を前記第2のメモリに記憶させる第2の計算であって、この計算は、それぞれのチェックノードによりバレルシフタから受けたシンボルメッセージに応じて行う当該第2の計算を実行するステップと、
    ‐ 前記第1及び第2の計算の出力に応じて前記第1のメモリ内のシンボル値の表現を更新するステップと
    を具えるLDPCデコーディング方法。
JP2010514224A 2007-07-04 2008-07-01 シャッフルldpcデコーディング Expired - Fee Related JP5306342B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP07111728 2007-07-04
EP07111728.7 2007-07-04
PCT/IB2008/052635 WO2009004572A1 (en) 2007-07-04 2008-07-01 Shuffled ldpc decoding

Publications (2)

Publication Number Publication Date
JP2010532128A JP2010532128A (ja) 2010-09-30
JP5306342B2 true JP5306342B2 (ja) 2013-10-02

Family

ID=39816786

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010514224A Expired - Fee Related JP5306342B2 (ja) 2007-07-04 2008-07-01 シャッフルldpcデコーディング

Country Status (5)

Country Link
US (1) US8489962B2 (ja)
EP (1) EP2171857A1 (ja)
JP (1) JP5306342B2 (ja)
CN (1) CN101689865B (ja)
WO (1) WO2009004572A1 (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8418023B2 (en) 2007-05-01 2013-04-09 The Texas A&M University System Low density parity check decoder for irregular LDPC codes
US8196010B1 (en) 2007-08-17 2012-06-05 Marvell International, Ltd. Generic encoder for low-density parity-check (LDPC) codes
FR2944660B1 (fr) 2009-04-16 2011-09-09 St Microelectronics Sa Decodeur ldpc
KR20110124659A (ko) 2010-05-11 2011-11-17 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 계층적 복호 장치 및 방법
JP5692780B2 (ja) * 2010-10-05 2015-04-01 日本電気株式会社 マルチコア型誤り訂正処理システムおよび誤り訂正処理装置
US8566667B2 (en) * 2011-07-29 2013-10-22 Stec, Inc. Low density parity check code decoding system and method
US8880985B2 (en) * 2011-10-05 2014-11-04 Nec Laboratories America, Inc. High-speed long codeword QC-LDPC soft decision decoder
JP5631846B2 (ja) * 2011-11-01 2014-11-26 株式会社東芝 半導体メモリ装置および復号方法
US8762798B2 (en) 2011-11-16 2014-06-24 Stec, Inc. Dynamic LDPC code rate solution
US8775898B2 (en) * 2012-05-17 2014-07-08 Lsi Corporation Systems and methods for hardware flexible low density parity check conversion
US9213593B2 (en) * 2013-01-16 2015-12-15 Maxlinear, Inc. Efficient memory architecture for low density parity check decoding
US9037952B2 (en) * 2013-02-06 2015-05-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Memory architecture for layered low-density parity-check decoder
KR102019893B1 (ko) * 2013-07-22 2019-09-09 삼성전자주식회사 저밀도 패리티 검사 부호를 지원하는 통신 시스템에서 신호 수신 장치 및 방법
GB2510932B (en) * 2013-08-27 2015-01-21 Imagination Tech Ltd An improved decoder for low-density parity-check codes
US9003257B1 (en) * 2013-09-19 2015-04-07 U-Blox Ag Low density parity check encoder and encoding method
EP3082267A4 (en) * 2013-12-09 2017-08-16 Mitsubishi Electric Corporation Error-correction decoding device
US9537508B1 (en) * 2014-01-09 2017-01-03 Marvell International Ltd. Systems and methods for decoding cascade LDPC codes
JP2015135621A (ja) 2014-01-17 2015-07-27 富士通株式会社 演算装置、演算方法および無線通信装置
CN103944587B (zh) * 2014-05-07 2017-01-04 四川大学 一种有序排列非零元素的多进制ldpc码校验矩阵构造方法
TWI551058B (zh) * 2014-05-09 2016-09-21 衡宇科技股份有限公司 最小-總和演算法之低密度奇偶校驗碼解碼器及其解碼方法
KR102189440B1 (ko) 2014-08-25 2020-12-14 삼성전자주식회사 에러 정정 디코더를 포함하는 스토리지 장치 및 에러 정정 디코더의 동작 방법
US9973212B2 (en) * 2015-09-08 2018-05-15 Storart Technology Co. Ltd. Decoding algorithm with enhanced parity check matrix and re-encoding scheme for LDPC code
CN106997777B (zh) * 2015-09-18 2021-01-05 爱思开海力士有限公司 具有改进的硬解码吞吐量的vss ldpc解码器
KR102589918B1 (ko) 2016-07-19 2023-10-18 삼성전자주식회사 저밀도 패리티 체크 디코더 및 그것을 포함하는 저장 장치
CN106533452B (zh) * 2016-11-14 2019-05-07 中国电子科技集团公司第五十四研究所 一种多进制ldpc编码方法及编码器
US10289348B2 (en) * 2016-12-30 2019-05-14 Western Digital Technologies, Inc. Tapered variable node memory
CN108809327B (zh) * 2017-05-05 2022-01-28 上海数字电视国家工程研究中心有限公司 Ldpc译码方法
EP3419181A1 (en) * 2017-06-19 2018-12-26 Universite De Bretagne Sud Simplified check node processing in non-binary ldpc decoder
CN108736898B (zh) * 2018-05-31 2021-09-07 东南大学 一种适用于5g系统的ldpc码编解码器复用方法
TWI677878B (zh) 2018-10-12 2019-11-21 慧榮科技股份有限公司 編碼器及相關的編碼方法與快閃記憶體控制器
CN110768679B (zh) * 2019-10-30 2023-08-22 湖南国科微电子股份有限公司 64进制ldpc的码字校验方法及系统
GB2595240B (en) * 2020-05-18 2022-11-30 Accelercomm Ltd Low density parity check decoder, electronic device, and method therefor
US20240014828A1 (en) * 2020-09-03 2024-01-11 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for improved belief propagation based decoding
CN113411087B (zh) * 2021-06-30 2023-05-09 展讯半导体(成都)有限公司 解码q元LDPC的方法、电路及包括其的接收机
TWI804347B (zh) * 2022-06-16 2023-06-01 慧榮科技股份有限公司 編碼器與快閃記憶體控制器
CN117879620A (zh) * 2024-03-13 2024-04-12 荣耀终端有限公司 译码方法、可读存储介质、程序产品及电子设备

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7415079B2 (en) * 2000-09-12 2008-08-19 Broadcom Corporation Decoder design adaptable to decode coded signals using min* or max* processing
US7093179B2 (en) * 2001-03-22 2006-08-15 University Of Florida Method and coding means for error-correction utilizing concatenated parity and turbo codes
US7587659B2 (en) * 2002-05-31 2009-09-08 Broadcom Corporation Efficient front end memory arrangement to support parallel bit node and check node processing in LDPC (Low Density Parity Check) decoders
JP4224777B2 (ja) * 2003-05-13 2009-02-18 ソニー株式会社 復号方法および復号装置、並びにプログラム
US7174495B2 (en) * 2003-12-19 2007-02-06 Emmanuel Boutillon LDPC decoder, corresponding method, system and computer program
US7730377B2 (en) * 2004-07-22 2010-06-01 Texas Instruments Incorporated Layered decoding of low density parity check (LDPC) codes
CN101069356A (zh) * 2004-12-02 2007-11-07 三菱电机株式会社 解码装置以及通信装置
US7500172B2 (en) 2005-02-26 2009-03-03 Broadcom Corporation AMP (accelerated message passing) decoder adapted for LDPC (low density parity check) codes
EP1966897A4 (en) * 2005-12-27 2012-05-30 Lg Electronics Inc DEVICES AND METHODS FOR DECODING USING A CHANNEL CODE OR LPDC
FR2896359A1 (fr) * 2006-01-19 2007-07-20 France Telecom Procede d'encodage et de decodage rapides et dispositifs associes.
CN100546205C (zh) * 2006-04-29 2009-09-30 北京泰美世纪科技有限公司 构造低密度奇偶校验码的方法、译码方法及其传输系统
CN101212277A (zh) * 2006-12-29 2008-07-02 中兴通讯股份有限公司 支持多协议标准的ldpc码译码装置
EP2056550B1 (en) * 2007-10-30 2013-04-24 Sony Corporation Data processing apparatus and method

Also Published As

Publication number Publication date
WO2009004572A1 (en) 2009-01-08
US20100251059A1 (en) 2010-09-30
EP2171857A1 (en) 2010-04-07
CN101689865A (zh) 2010-03-31
US8489962B2 (en) 2013-07-16
CN101689865B (zh) 2012-10-24
JP2010532128A (ja) 2010-09-30

Similar Documents

Publication Publication Date Title
JP5306342B2 (ja) シャッフルldpcデコーディング
CN109783270B (zh) 用于解码纠错码的系统和方法
KR101227264B1 (ko) Ldpc 코드용 디코더
US8291283B1 (en) Layered quasi-cyclic LDPC decoder with reduced-complexity circular shifter
JP4516602B2 (ja) データのエンコードおよびデコード方法および装置
JP4062435B2 (ja) 誤り訂正符号復号装置
US8516347B1 (en) Non-binary LDPC extrinsic calculation unit (LECU) for iterative decoding
US11115051B2 (en) Systems and methods for decoding error correcting codes
US8880973B1 (en) Detector-decoder interface for GF(q) iterative decoding
US8572463B2 (en) Quasi-cyclic LDPC encoding and decoding for non-integer multiples of circulant size
US20110246862A1 (en) Hard input low density parity check decoder
US20200321985A1 (en) Non-concatenated fec codes for ultra-high speed optical transport networks
CN109586731B (zh) 用于解码纠错码的系统和方法
KR20100005231A (ko) 패리티 검사 디코더들에서 사용하기 위한 노드 처리기들
CN109586732B (zh) 中短码ldpc编解码系统和方法
Thi et al. Basic-set trellis min–max decoder architecture for nonbinary ldpc codes with high-order galois fields
Lin et al. An efficient decoder architecture for nonbinary LDPC codes with extended min-sum algorithm
JP6395658B2 (ja) 誤り訂正復号装置、受信装置及び誤り訂正復号方法
US10419026B2 (en) Method and apparatus for efficient data decoding
Choi et al. Block-Layered Decoder Architecture for Quasi-Cyclic Nonbinary LDPC Codes
Kim Improved trellis-based decoder for non-binary LDPC codes
WO2023139782A1 (ja) 復号装置、制御回路、記憶媒体および復号方法
Priewasser et al. Trade-off analysis of decoding algorithms and architectures for multi-standard LDPC decoder
Osman et al. Two extended programmable BCH soft decoders using least reliable bits reprocessing
SHENG Contributions to the construction and decoding of non-binary low-density parity-check codes

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110623

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130219

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20130507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130517

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130611

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130625

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees