JP2006148937A - 統合ノード処理を用いる低密度パリティ検査符号の復号方法及び装置 - Google Patents

統合ノード処理を用いる低密度パリティ検査符号の復号方法及び装置 Download PDF

Info

Publication number
JP2006148937A
JP2006148937A JP2005337687A JP2005337687A JP2006148937A JP 2006148937 A JP2006148937 A JP 2006148937A JP 2005337687 A JP2005337687 A JP 2005337687A JP 2005337687 A JP2005337687 A JP 2005337687A JP 2006148937 A JP2006148937 A JP 2006148937A
Authority
JP
Japan
Prior art keywords
check
node
check node
message
variable
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.)
Granted
Application number
JP2005337687A
Other languages
English (en)
Other versions
JP4038519B2 (ja
Inventor
Sang-Hyo Kim
相曉 金
Sung-Jin Park
成鎭 朴
Han-Ju Kim
漢柱 金
Min-Goo Kim
▲ミン▼龜 金
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2006148937A publication Critical patent/JP2006148937A/ja
Application granted granted Critical
Publication of JP4038519B2 publication Critical patent/JP4038519B2/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
    • 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/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/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

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

【課題】LDPC復号を簡易化し、復号化性能を向上する。
【解決手段】検査ノードの中で、検査ノード処理を遂行する少なくとも一つの検査ノードを選択するスケジューラーと、前記変数ノードに対する入力LLR値を初期値として格納し、検査ノードに接続された変数ノードに対してアップデートされたLLR値を格納するLLRメモリと、検査ノードに対して検査ノード処理が遂行された結果である検査ノードメッセージを格納するメモリと、LLRメモリから読み出された該当LLR値から、検査ノードメッセージメモリに格納されている前記選択された検査ノードの検査ノードメッセージを減算して変数ノードメッセージを生成し、変数ノードメッセージに対して検査ノード処理を遂行し、検査ノード処理結果値に変数ノードメッセージを加算してアップデートされたLLR値を計算しメモリに伝達する少なくとも一つの統合ノードプロセッサーと、を含むことを特徴とする。
【選択図】図7

Description

本発明はエラー訂正復号化装置及びその方法に関するもので、特に、低密度パリティ検査符号(Low Density Parity Check Code:以下、“LDPC符号”とする)の復号の複雑度を低下して復号化性能を向上させる復号化装置及び方法に関するものである。
通常、デジタル通信システムは伝送路で発生する雑音によって誤りが発生し、この発生した誤りを除去するために多様な方式で誤り訂正を遂行している。最近、標準化が進行中である3GPP(3rd Generation Partnership Project)又は3GPP 2を適用する無線通信システムでは、音声及び制御信号の伝送のために畳み込み符号(convolutional code)とターボ符号(turbo code)の使用が提案されている。高速伝送のためのターボ符号は、低い信号対雑音比で非常に低いビット誤り率が得られるという長所を有する。しかしながら、このターボ符号は、符号語の最小距離特性によってターボ符号で符号化された信号の復元の際に希望するビット誤り部分で誤りフロー(error floor)が発生することがある。また、ターボ符号は、復号時に誤りが発生した符号語に対する検出不可能確率が比較的高いという問題を有する。したがって、最近ではターボ符号と類似し、或いは優れた性能を有するLDPC符号が新たに提示されている。
このLDPC符号は、同一の長さのターボ符号に比べて最小距離が大きい。その結果、誤りフローがターボ符号に比べて非常に低いビット誤り率で発生し、誤りが発生した符号語に対する検出不可能確率が非常に低くて実験的に‘0’に近い。また、並列構造への実現が可能なため、復号時間を画期的に短縮させ、反復復号ごとに遂行するパリティ検査を通じて追加されるCRC(Cyclic Redundancy Check)のようなオーバーヘッド又は復号停止アルゴリズムがなくても効率的な復号停止が可能である。
図1は、LCPC構造を示す図である。
図1を参照すると、LDPC符号は符号を定義するパリティ検査行列(Parity check matrix)の各行と列に‘1’の数が大変小さい符号であって、検査ノード(check node)100と、変数ノード(variable node)110と、検査ノード100と変数ノード110とを接続するエッジ(edge)115とから構成されたファクターグラフ(factor graph)により、その構造が定義できる。検査ノード100から検査ノード処理(check node processing)後に変数ノード110に伝達される値は、検査ノードメッセージ115aとなり、変数ノード110から変数ノード処理後に検査ノード100に伝達される値は変数ノードメッセージ115bとなる。
LDPC符号の復号過程は、一般的にsum-productアルゴリズムによる反復復号(iterative decoding)により遂行される。このとき、最適のsum-productアルゴリズムは、多少複雑な計算式を含む。これを単純化したMin-sumアルゴリズムのような準最適方法のmessage-passingアルゴリズムを用いる復号も可能である。
以下、図2を参照して、LDPC符号についてより詳細に説明する。
図2は、ファクターグラフ及びパリティ検査行列によるLDPC符号構造の一例を示す図である。
図2を参照すると、LDPC符号のファクターグラフは、定められたLDPC符号のパリティ検査式を示す4個の検査ノード200と、各シンボルを示す8個の変数ノード210と、これらの連関性を示すエッジ220とから構成される。エッジ220は、検査ノード200が示すパリティ検査式に含まれるコードシンボルに該当する変数ノード210とこの検査ノード200とを接続する。ここでは、すべての検査ノード200の各々に接続される変数ノードの数が6個に一定し、すべての変数ノード210の各々に接続された検査ノードの数が3個に一定した正規LDPC符号を例として示す。図示しないが、各検査ノードと変数ノードに接続された分岐の数が一定でないLDPC符号は非正規LDPC符号と称する。
また、ファクターグラフに対応するパリティ検査行列(H)230は、図2に示す。これは、パリティ検査式のグラフィック表現と類似し、パリティ検査行列230の各列及び各行には同一の個数の1がある。すなわち、パリティ検査行列230の各列は各変数ノード210に対する検査ノード200の接続を示す3個の1を有し、各行は各検査ノード200に対する変数ノード210の接続を示す6個の1を有する。
このLDPCを復号化する過程は、ファクターグラフ上の変数ノードと検査ノードが各ノード別に生成及びアップデートしたメッセージを相互に交換する過程を反復してなされる。このとき、各ノードではsum-productアルゴリズム或いはそれに類似した準最適の方法を用いてメッセージがアップデートされる。これに基づいたLDPC符号の反復復号過程は、下記のようである。
図3は、一般的なLDPC符号の全体ブロック構成を示す図である。
図3を参照すると、LDPC復号化装置は、受信情報を格納しているメモリブロック300と、変数ノードに対する演算を遂行する変数ノードプロセッサー340と、検査ノードに対する演算を遂行する検査ノードプロセッサー320と、検査ノードでエラーがすべて訂正されたかを検査して反復復号するか否かを決定するパリティ検査ブロック330と、メモリアクセスコントローラ340とから構成される。
LDPCの概略的な復号手順は、次のようである。
1.受信されたシンボルが変数ノードの初期LLR(Log Likelihood Ratio)値としてメモリ300に格納される。このとき、メモリ300に格納されているLLR値は、自分の関連したエッジへの変数ノードの出力メッセージとなる。
2.検査ノードプロセッサー320がメモリ300に格納された変数ノード値(すなわち、変数ノードメッセージであるLLR値)を読み出す。パリティー検査ブロック330は、読み出された変数ノード値のパリティ検査を遂行し、検査ノードプロセッサー320は、変数ノード値の0と1に対する伝送路遷移確率を計算し、この計算された確率値(検査ノードメッセージ)を再びメモリ300の変数ノード値として上書き(overwrite)する。
3.変数ノードプロセッサー340は、メモリ300に上書きされた変数ノード値を読み出して最終LLR値を含む変数ノードメッセージを計算する。
4.パリティー検査ブロック330で、パリティー検査に成功して反復復号の終了を決定するまで、上記のステップ2,3を反復することで信頼度を高める。
ここで、変数ノードプロセッサー340及び検査ノードプロセッサー320は、それぞれパリティ検査行列の列と行で1の位置に該当するメモリ領域から値を読み出して計算した後に、同一のメモリ領域に更に格納する。
ステップ2、3で、変数ノード及び検査ノードプロセッサー340,320は、それぞれ自機と接続されているエッジからの入力(検査ノードメッセージ及び変数ノードメッセージ)を通じて出力メッセージを計算する。ここで、検査ノードプロセッサー320と、変数ノードプロセッサー340の各々はパリティ検査行列の列と行で、1の位置に該当するメモリブロック300のサブブロックの値を読み出して計算した後に格納する。
以下、変数ノードメッセージ及び検査ノードメッセージの計算過程について、詳細に説明する。ここで、デグリー(degree)dは、検査ノードに接続される変数ノードの数を示し、パリティ検査行列で各列に存在する1の個数と同一である。そして、dは、変数ノードに接続される検査ノードの数を示し、パリティ検査行列で各行に存在する1の個数と同一である。
まず、m番目の検査ノードからn番目の変数ノードに伝送される検査ノードメッセージを下記の<数1>のようにアップデートされる。
Figure 2006148937
すなわち、上記の<数1>は、d個の変数ノードに接続されたm番目の検査ノードメッセージのj番目の反復復号時の計算式で、
Figure 2006148937
は、m番目の検査ノードに伝達される変数ノードメッセージをリオーダーリング(reordering)して生成したものを示す。但し、n番目の変数ノードからm番目の検査ノードに伝達される変数ノードメッセージが
Figure 2006148937
であるとき、
Figure 2006148937
を基準としてリオーダーリングを遂行する。m番目の検査ノードからn番目の変数ノードに伝達されるメッセージ
Figure 2006148937
は、
Figure 2006148937
を除いた入力変数ノードメッセージの非線形関数からなる。
次に、変数ノードメッセージは下記の<数7>のようにアップデートされる。
Figure 2006148937
上記の<数7>は、デグリーがdであるm番目の変数ノードに対する計算式で、変数ノードメッセージは、m番目の検査ノードからの入力である
Figure 2006148937
を除いた入力検査ノードメッセージと最初のLLRである
Figure 2006148937
の和となる。
最後に、各反復復号時にLLRは下記の<数10>のようにアップデートされる。
Figure 2006148937
ここで、
Figure 2006148937
は、n番目の変数ノードのj+1番目の反復復号後のLLR値で、初期のLLR値
Figure 2006148937
と入力検査ノードメッセージとの和でアップデートされる。
上記の<数7>と<数10>のように、変数ノード及びLLRアップデートは簡単な加算演算で容易に実現可能であるが、検査ノードアップデートは非線形関数で示すため、ハードウェアの複雑度が上昇するという問題点があった。したがって、このハードウェアの複雑度を低下するための最適のアルゴリズムが要求される。
上記のように、検査ノード処理と変数ノード処理を分離して演算する方式は、多くのメモリの容量を使用するようになる。すなわち、メモリ300は、各エッジ(edge)に関する情報を全て格納すべきであり、各検査ノード及び変数ノードでは必要な値をメモリから読み出して演算を遂行し、LLR値を求める。このとき、変数ノード処理は、すべてのエッジに対して検査ノード処理を遂行した後に遂行される。その結果、検査ノード処理をすべて遂行する間に変数ノードプロセッサーは動作しなくなり、反対に変数ノード処理を遂行する間は検査ノードプロセッサーは動作しない。すなわち、一つのメモリから複数個のデータを読み出して処理すべきなため、メモリアクセスが遅延される問題が発生する。
したがって、上記のような従来技術の問題点を解決するために、本発明の目的は、LDPCデコーダの実現において効率的な復号方式とそれに適合したデコーダの構造を提供することにある。
また、本発明の目的は、LDPCデコーダの効率的なメモリ構造とそれによる効率的な復号方式を提供することにある。
本発明の他の目的は、LDPCデコーダのメモリ分割を最小化し、検査ノード処理及び変数ノード処理を交互に遂行する方法及び装置を提供することにある。
上記の目的を達成するために、本発明は、パリティ検査ノード行列により複数の検査ノードと複数の変数ノードで構成される低密度パリティ検査符号を復号する装置であって、前記検査ノードの中で、検査ノード処理を遂行する少なくとも一つの検査ノードを選択する検査ノード選択スケジューラーと、前記変数ノードに対する入力LLR(Log Likelihood Ratio)値を初期LLR値として格納し、前記選択された検査ノードに接続された変数ノードに対してアップデートされたLLR値を格納するLLRメモリと、前記選択された検査ノードに対して検査ノード処理が遂行された結果である検査ノードメッセージを格納する検査ノードメッセージメモリと、前記LLRメモリから読み出された該当LLR値から、前記検査ノードメッセージメモリに格納されている前記選択された検査ノードの検査ノードメッセージを減算して変数ノードメッセージを生成し、前記変数ノードメッセージに対して検査ノード処理を遂行し、前記検査ノード処理結果値に前記変数ノードメッセージを加算してアップデートされたLLR値を計算し、前記計算されたLLR値を前記LLRメモリに伝達する少なくとも一つの統合ノードプロセッサーと、を含むことを特徴とする。
また、本発明は、パリティ検査ノード行列により複数の検査ノードと複数の変数ノードで構成される低密度パリティ検査符号を復号する方法であって、前記複数の検査ノードのうち検査ノード処理を遂行する少なくとも一つの検査ノードを選択する段階と、前記選択された検査ノードに対応する検査ノードメッセージを読み出し、前記検査ノードと接続された変数ノードのLLR値から前記検査ノードメッセージ値を減算して変数ノードメッセージを計算する段階と、前記計算された変数ノードメッセージに検査ノード処理を遂行して検査ノードメッセージを生成し、前記生成された検査ノードメッセージを格納する段階と、前記LLR値に前記生成された検査ノードメッセージを加算してアップデートされたLLR値を計算し格納する段階と、前記アップデートされたLLR値に対して硬判定及びパリティ検査を遂行する段階と、を有することを特徴とする。
本発明は、LDPCの非効率的なメモリの分割と復号方式を改善し、検査ノード処理と変数ノード処理を同時に遂行することによって、処理量を向上することができる効果がある。また、本発明は、単純なメモリの分割及びノードプロセッサーの単純化を通じてハードウェアの複雑度を低下することができる効果がある。
以下、本発明の望ましい実施形態を添付の図面を参照して詳細に説明する。
図面の説明において、同一の構成要素に対してはできるだけ同一の参照番号及び参照符号を使用して説明する。本発明に関連した公知の構成及び機能に関する具体的な説明が本発明の要旨を不明にすると判断された場合に、その詳細な説明を省略する。
図4は、一般的な復号過程によるメモリ分割を示す図である。
図4を参照すると、パリティ検査行列のためのメモリと単位行列(identity matrix)のためのメモリが各々備えられ、メモリは検査ノードプロセッサー及び変数ノードプロセッサーのノード数だけのサブメトリックブロックに分割される。すなわち、メモリの行は、検査ノードと平行に接続され、メモリの列の分割されたサブメトリックブロックは変数ノードと平行に接続される。図面において、小さな斜線ブロックは、受信信号‘1’を格納しているサブメトリックブロックを示す。
1段階で、受信情報は各メモリのサブブロックに入力される。
2段階で、検査ノード処理部410は、各列の分割されたサブメトリックブロックの値に対してそれぞれ検査ノード処理及びパリティ検査を遂行した後に、検査ノード処理の結果値を再びサブメトリックブロックに格納して検査ノードメッセージをアップデートする。
3段階で、変数ノード処理部420は、各行のサブメトリックブロックにアップデートされた値を読み出して変数ノードの演算を遂行し、硬判定(hard-decision)復号及びLLR演算を遂行した後に結果値を再びサブメトリックブロックの値を格納することによって、変数ノードメッセージをアップデートする。メモリのサブメトリックブロックのサイズは、変数ノード及び検査ノードプロセッサーの個数により決定される。したがって、変数ノード及び検査ノードプロセッサーの個数が多いほど、メモリのサブメトリックブロックの分割の数が増加するため、ハードウェアの高い複雑度をもたらす。しかしながら、変数ノード及び検査ノードプロセッサーの数が減少してメモリの分割されたサブメトリックブロックの数が減少すると、メモリアクセスの速度が低下され、それによる処理量は低くなる。
図5は、一般的なLDPC復号方式のフローチャートである。
図5を参照すると、検査ノード処理580と変数ノード処理590は順次に接続され、一つの演算過程が遂行してから次の演算過程が進行される。これら演算過程は、パリティー検査に成功するまで反復(iteration)される。
ステップS500で、検査ノードプロセッサーは、受信情報を読み出してメモリに格納する。これをLDPC復号の初期化と称する。
ステップS510で、検査ノードプロセッサーは、メモリのサブメトリックブロックに格納された情報ビットを読み出す。ステップS520で、検査ノードプロセッサーは、ステップS525で情報ビットのパリティを検査する間に、検査ノード処理を遂行する。このとき、パリティー検査の結果が良好であると、検査ノードプロセッサは復号を中断する。一方、ステップS530で、検査ノードプロセッサは、検査ノード処理の結果値をメモリに変数ノード値でアップデートして検査ノードメッセージを更新する。検査ノードメッセージの更新を遂行した後に、検査ノードプロセッサは、変数ノード処理領域590に進む。
ステップS540で、変数ノードプロセッサーは、メモリのサブメトリックブロックから検査ノードメッセージによってアップデートされた変数ノード値を読み出す。変数ノードプロセッサーは、ステップS550でアップデートされた変数ノード値を加算し、ステップS560でこの加算した結果値から該当行の変数ノード値を減算した後に、ステップS565で、ステップS550の結果値を硬判定する。ステップS570で、変数ノードプロセッサーは、ステップS560の結果値を変数ノード値としてメモリのサブメトリックブロックに格納した後にステップS510に戻る。
上記の一般的なLDPC復号方式では、すべての情報ビットに対して検査ノード処理を遂行した後に、順次的に変数ノード処理が遂行される。すなわち、一度の反復復号が検査ノード処理と変数ノード処理の2段階からなるため、以前段階の変数或いは検査ノードのメッセージでそれぞれの検査或いは変数ノード処理が進行される。したがって、検査ノードメッセージと変数ノードメッセージを格納するためのメモリを共有可能になるが、反復による復号性能の収束速度(convergence speed)が遅いという短所がある。また、並列ノードプロセッサー構造の実現が可能であるが、実際のノード数だけのプロセッサーを実現する場合にハードウェアの複雑度が非常に大きくて実質的に実現される可能性が非常に少ない。
したがって、後述する本発明のより望ましい実施形態では、一度の復号過程で検査ノード処理と変数ノード処理を交互に反復して進行する方式を用いる。すなわち、一度の復号過程でアップデートされたメッセージで新たなメッセージが生成されるため、反復による復号性能の収束速度が速いという長所がある。また、検査ノードと変数ノードを交互に一つのノードずつ順次的に復号が進行可能で、数個ずつ部分的に並列に進行可能である。また、一回の反復復号中のアップデートされたメッセージを用いることによって収束速度が増加するようになる。加えて、この場合に常に変数ノードと検査ノードのメッセージをすべて格納することによって発生するメモリの増加は、復号方式により検査ノードの数だけ分割し、或いは検査ノードプロセッサーの数だけ分割することで最小化できる。
以下、本発明の望ましい実施形態による検査ノード処理と変数ノード処理を進行する方法について詳細に説明する。
LDPCデコーダのメモリには、検査ノードメッセージ及び各変数ノードに該当するLLR値が格納され、復号しようとする検査ノードの選択でデコーダの動作が始まる。変数ノード及び検査ノード処理とLLRアップデートが一つの統合されたノード処理で処理される。
第1に、下記の<数13>のように、入力LLR値の瞬時LLR値を各変数ノードに対して格納し、検査ノードメッセージを‘0’にセッティングする。
Figure 2006148937
第2に、検査ノードcが選択される。検査ノードを選択する方法及び手順は、多様に実現されることができる。検査ノードを一つ或いは数個のグループにインデキシング(indexing)し、このインデキシング順に選択し、一定規則に従って均一(uniform)に選択できる。また、復号サイクルの特性を考慮して、検査ノードごとに選択比率を異にして選択することもできる。ここで、一つの検査ノードが選択された場合の動作を説明する。
第3に、cに関連したすべての変数ノードメッセージを生成する。このcに接続されたエッジの検査ノードメッセージを該当変数ノードの瞬時LLR値から減算することで、下記の<数14>のように変数ノードメッセージを生成する。
Figure 2006148937
ここで、nはcに接続された変数ノードのインデックスで、n
Figure 2006148937
の範囲を有する。
Figure 2006148937
は選択されたcに対するノード処理が始まる前段階のn番目の変数ノードの瞬時LLR値である。
第4に、生成された変数ノードメッセージを用いて下記の<数17>のように検査ノード処理を遂行する。
Figure 2006148937
ここで、Fは検査ノード処理関数で、
Figure 2006148937
を除いた入力変数からなる非線形関数で、多様な方法で実現可能である。<数1>がその代表的な例に該当する。
第5に、<数17>を通じて得られた検査ノードメッセージを該当検査ノード値としてメモリに格納した後、第4の過程が進行される間に臨時に格納されている第3の過程の変数ノードメッセージから新たな検査ノードメッセージを用いて、下記の<数19>のようにLLR値をアップデートする。
Figure 2006148937
第6に、すべての検査ノードが一度ずつ選択され、一度の反復復号が終了すると、アップデートされたLLR値を用いてパリティ検査を遂行する、パリティ検査結果が良いと、復号を中断し、それとも第2の過程に戻る。パッティーは、検査ノードプロセッサーのアップデートごとにパリティ検査ノードを確認することができる。
上記したように、デコーダのメモリは、該当検査ノードの検査ノーメッセージと瞬時LLR値だけを格納しておき、検査ノードメッセージとを瞬時LLR値を用いて該当検査ノードの変数ノード処理及び検査ノード処理を一度に遂行する統合ノードプロセッサーを使用する。この統合されたノードプロセッサーを使用することによって、計算量が増加することなく、迅速に収束される復号を遂行するようになる。すなわち、一つの検査ノードに対する統合ノード処理が遂行される度に周辺検査ノードのLLRD値が更新されることによって、次の検査ノードの検査ノード処理に影響を及ぼすようになる。
図6Aは、本発明の望ましい実施形態によるメモリ構造を示す図である。
図6Aを参照すると、メモリ600は、検査ノードの数Dだけのブロックに分割され、この分割されたブロックの各々は該当検査ノードに対する検査ノードメッセージを格納する。復号の際には、各検査ノードに該当する検査ノードメッセージが順次に読み出され、ブロック内の格納されている検査ノードメッセージを“1ワード(word)”と称する。
図6Bは、本発明の他の実施形態によるメモリ構造を示す図である。
図6Bを参照すると、メモリ構造は、ブロックタイプのLDPC符号に適用可能な並列デコーダ構造に適当である。メモリ610は、検査ノードの数Dだけのブロックに分割される。この分割された一つのブロックは、P個の検査ノードメッセージが1ワードで格納され、P個の検査ノードメッセージが同時に読み出されて使用されることによって、並列デコーダの構造が可能になる。並列デコーダの構造は、後述する図10を参照して詳細に説明する。
図7は、本発明の望ましい実施形態によるLDPCデコーダの構造を示す図である。
図7を参照すると、LDPCデコーダは、検査ノード選択スケジューラー700と、検査ノード処理及びLLRアップデートを遂行する統合ノードプロセッサー710と、検査ノードプロセッサー714の検査ノードの数だけに分割されたLLRメモリ720及び検査ノードメッセージメモリ740と、硬判定部730とから構成される。
サイクルごとに検査ノード選択スケジューラー700は、所定の規則に従って検査ノードプロセッサー714の検査ノードのうち検査ノード処理を遂行する検査ノードを選択する。
LLRメモリ720は、入力LLR値を初期値として格納し、検査ノードメッセージメモリ740は検査ノードメッセージの初期値を‘0’に初期化し、以後、該当検査ノードの検査ノード処理が遂行された結果値を格納する。すなわち、検査ノードメッセージメモリ740は、検査ノード処理が遂行された結果である検査ノードメッセージを検査ノード別に分割されたそれぞれのサブメトリックブロックに格納する。
統合ノードプロセッサー710は、加算器/減算器712と、検査ノードプロセッサー714と、フリップフロップ716と、加算器718とから構成され、変数ノードメッセージと検査ノードメッセージ及びLLR値を一度にアップデートする。
検査ノード選択スケジューラー700によって検査ノードが選択されると、加算器/減算器712は、LLRメモリ720から読み出した該当LLR値から検査ノードメッセージに格納されている選択された検査ノードに対応する検査ノードメッセージを減算して変数ノードメッセージを生成する。この変数ノードメッセージは、フリップフロップ716に格納されると同時に、検査ノードプロセッサー714に入力される。ここで、該当LLR値は、選択された検査ノードに接続された変数ノードのLLR値である。
検査ノードプロセッサー714は、入力された変数ノードメッセージに対して上記の<数17>を用いて検査ノード処理を遂行する。検査ノード処理結果値は、LLRメモリ720に格納されると同時に、加算器718に入力される。加算器718は、<数19>のように、検査ノード処理結果値にフリップフロップ716に格納された変数ノードメッセージを加算してアップデートされたLLR値を計算する。アップデートされたLLR値は、LLRメモリ720に格納され、かつ、硬判定部730に入力される。
硬判定部730は、アップデートされたLLR値に硬判定を遂行して0と1を判断する。ビットバッファ734は、硬判定部730で硬判定された値を格納し、パリティー検査ブロック732は、この硬判定値のパリティ検査を遂行する。パリティー検査ブロック732の検査結果が良いと、LDPCデコーダは、反復復号を終了し、ビットバッファ734の硬判定値を復号結果値として出力する。パリティ検査結果が悪いと、検査ノード選択スケジューラー700は、次の検査ノードを選択する。パリティ検査は、多様な条件を設定することができる。例えば、パリティ検査は、すべての検査ノードが一度ずつ選択されるときに遂行可能である。
図7のように、本発明の望ましい実施形態によるLDPCデコーダは、検査ノード処理後に変数メッセージを生成する時点で、LLRメモリ720に格納されている以前段階のLLR値を有し、変数ノード処理を遂行する。すなわち、検査ノード処理の出力が、すぐ変数ノードメッセージのアップデートに用いられ、収束速度を一層増加させ、反復回数を減少させるという利点がある。また、同一の反復回数に対して、収束速度が増加して処理量及び性能が向上する。
以下、図4及び図8を比べて本発明による復号方式について説明する。
図8は、本発明の望ましい実施形態による復号方式に適用されるメモリ構造の概念図である。ここで、メモリ800の構造は、図7の検査ノードメッセージメモリ740と、LLRメモリ720に適用可能である。
一度の反復を遂行すうために、図4では、2段階と3段階を順次に遂行すべく、図8では、すべての検査ノードを一度ずつ選択するだけでも一度の反復が遂行可能である。
具体的に図8を参照すると、メモリ800の行は、検査ノードプロセッサーの数だけサブメトリックブロックに分割され、小さな斜線ブロックは受信情報の1の値を格納する。
すなわち、メモリ800でそれぞれのサブメトリックブロックは、該当する検査ノードに対応する検査ノードメッセージが更新された値を格納する。また、メモリ800は、特定検査ノードに接続された変数ノードに対応するLLR値が更新された値を格納する。
図9は、本発明の望ましい実施形態による復号方式のフローチャートである。
図7を参照して図9を説明すると、ステップS902で、LLR値は、LLRメモリ720のサブメトリックブロックに各々該当する値が入力される。ステップS904で、検査ノード選択スケジューラー700は、検査ノードを選択する。このとき、選択される検査ノードの数は一つ或いはそれ以上になり、選択方法も順次に或いは均一に選択されることができる。
ステップS906で、統合ノードプロセッサー710は、検査ノードメッセージメモリ740から選択された検査ノードに該当する以前検査ノードメッセージを読み出す。
ステップS908で、統合ノードプロセッサー710は、選択された検査ノードに接続された変数ノードに対するLLR値から以前検査ノードメッセージ値を減算し、変数ノードメッセージをアップデートする。ステップS910で、統合ノードプロセッサー710は、アップデートされた変数ノードメッセージに検査ノード処理を遂行して検査ノードメッセージを生成する。ステップS921で、統合ノードプロセッサー710は、生成された検査ノードメッセージを検査ノードメッセージメモリ740に格納される。
ステップS914で、統合ノードプロセッサー710は、LLR値に生成された検査ノードメッセージを加算してLLR値をアップデートし、ステップS916で、このアップデートされたLLR値はLLRメモリ720に格納される。同時に、ステップS918で、アップデートされたLLR値に対して硬判定及びパリティ検査が遂行される。パリティ検査結果が良いと、ステップ920に進んで、復号が中断され、硬判定された値が出力される。硬判定及びパリティ検査結果が悪いと、ステップS904に戻って継続して反復復号を遂行する。
以下、本発明の他の実施形態では、複数の統合ノードプロセッサーを平行に備えるLDPCデコーダについて説明する。
図10は、本発明の他の実施形態による並列LDPCデコーダの構造を示す図である。
図10を参照すると、LDPCデコーダは、検査ノード選択スケジューラー1002と、検査ノード処理及びLLRアップデートを遂行する統合ノードプロセッサー部1010と、検査ノードの数だけ分割されるLLRメモリ1020及び検査ノードメッセージメモリ1030と、硬判定部1040とから構成される。
検査ノード選択スケジューラー1002は、検査ノードプロセッサーの検査ノードのうち検査ノード処理を遂行する検査ノードを一個或いは数個を順序に或いは異にして選択できる。このとき、複数の検査ノードが選択される場合に、一度に同じLLRをアクセスし、或いはメモリアクセス時に衝突が発生しないようにスケジューリングする。ブロックタイプの構造的LDPC符号の場合に、このような並列的な構造を実現するのに容易で、図6Bのメモリ構造及び並列統合ノードプロセッサーで実現が可能である。
統合ノードプロセッサー部1010と、検査ノードの数だけ分割されたLLRメモリ1020及び検査ノードメッセージメモリ1030と、硬判定部1040は、図7の構成と同一に動作するため、その詳細な説明を省略する。
ここで、太線は、平行に動作する複数の統合ノードプロセッサーに対する並列入出力を示す。その一例として、LDPC符号のパリティ検査行列がP*Pでブロック化された構造であれば、一つのブロックに属するすべての検査ノードメッセージ1ワードに設定して読み出すことができる。読み出されたメッセージが処理されるときは、パリティ検査行列による検査ノードメッセージに順列(permutation)をつけるべきである。
パリティ検査行列がランダムに生成されている場合に、パリティ検査行列は、検査ノードメッセージメモリ1030及びLLRメモリ1020をアクセスする間に衝突が発生しないように設計すべきである。このとき、スケジューリング検査ノード選択において、統合ノードプロセッサー部1010の各統合ノードプロセッサーが同じメモリを同時にアクセスしない方法、或いは統合ノードプロセッサー間に適切な遅延(delay)を提供する方法が利用可能である。
以上、本発明の詳細な説明においては具体的な実施形態に関して説明したが、本発明の範囲を外れない限り、様々な変形が可能であることは、当該技術分野における通常の知識を持つ者には自明なことであろう。したがって、本発明の範囲は、前述の実施形態に限定されるものではなく、特許請求の範囲の記載及びこれと均等なものに基づいて定められるべきである。
一般的なLDPC復号の構造を示す図である。 一般的なファクターグラフ及びパリティ検査行列を示す図である。 一般的なLDPC符号の全体ブロックを示す構成図である。 従来のメモリ分割による復号過程を示す図である。 従来技術による復号方式のフローチャートである。 本発明の望ましい実施形態によるメモリ構造を示す図である。 本発明の他の実施形態によるメモリ構造を示す図である。 本発明の望ましい実施形態によるLDPCデコーダの構造を示す図である。 本発明の望ましい実施形態による復号方式のメモリ構造を示す概念図である。 本発明の望ましい実施形態による復号方式のフローチャートである。 本発明の他の実施形態による並列LDPCデコーダの構造を示す図である。
符号の説明
700 検査ノード選択スケジューラー
710 統合ノードプロセッサー
712 加算器/減算器
714 検査ノードプロセッサー
716 フリップフロップ
718 加算器
720 LLRメモリ
730 硬判定部
732 パリティー検査ブロック
734 ビットバッファ
740 検査ノードメッセージメモリ

Claims (20)

  1. パリティ検査ノード行列により複数の検査ノードと複数の変数ノードで構成される低密度パリティ検査符号を復号する装置であって、
    前記検査ノードの中で、検査ノード処理を遂行する少なくとも一つの検査ノードを選択する検査ノード選択スケジューラーと、
    前記変数ノードに対する入力LLR(Log Likelihood Ratio)値を初期LLR値として格納し、前記選択された検査ノードに接続された変数ノードに対してアップデートされたLLR値を格納するLLRメモリと、
    前記選択された検査ノードに対して検査ノード処理が遂行された結果である検査ノードメッセージを格納する検査ノードメッセージメモリと、
    前記LLRメモリから読み出された該当LLR値から、前記検査ノードメッセージメモリに格納されている前記選択された検査ノードの検査ノードメッセージを減算して変数ノードメッセージを生成し、前記変数ノードメッセージに対して検査ノード処理を遂行し、前記検査ノード処理結果値に前記変数ノードメッセージを加算してアップデートされたLLR値を計算し、前記計算されたLLR値を前記LLRメモリに伝達する少なくとも一つの統合ノードプロセッサーと、
    を含むことを特徴とする装置。
  2. 前記検査ノード選択スケジューラーは、前記複数の検査ノードを一つずつインデキシングしてインデキシング順に選択し、或いは一定規則に従って前記複数の検査ノードのうちの少なくとも一つを選択することを特徴とする請求項1記載の装置。
  3. 前記検査ノード選択スケジューラーは、前記LLRメモリから同じLLR値が同時に読み出されないように前記少なくとも一つの検査ノードを選択することを特徴とする請求項2記載の装置。
  4. 前記選択された検査ノードと関連した変数ノードメッセージは、前記選択された検査ノードの検査ノードメッセージを前記接続された変数ノードの瞬時LLR値から減算することで、下記の式のように計算されることを特徴とする請求項1記載の装置。
    Figure 2006148937
    ここで、mは前記選択された検査ノードのインデックスで、nは前記選択された検査ノードと接続される変数ノードのインデックスで、
    Figure 2006148937
    はj+1番目の反復復号時の変数ノードメッセージで、
    Figure 2006148937
    は前記選択された検査ノードに対するノード処理が始まる前段階のn番目の変数ノードの瞬時LLR値である。
  5. 前記検査ノードメッセージは、下記の式のように計算されることを特徴とする請求項4記載の装置。
    Figure 2006148937
    ここで、
    Figure 2006148937
    はj+1番目の反復時の検査ノードメッセージで、Fは検査ノードメッセージの検査ノード処理関数で、dはm番目の検査ノードと接続された変数ノードメッセージの数である。また、nは、前記変数ノードメッセージのインデックスで、n乃至
    Figure 2006148937
    の範囲を有する。
  6. 前記アップデートされたLLR値は、下記の式のように計算されることを特徴とする請求項5記載の装置。
    Figure 2006148937
    ここで、
    Figure 2006148937
    は前記アップデートされたLLR値で、
    Figure 2006148937
    は前記初期LLR値である。
  7. 前記アップデートされたLLR値を用いて硬判定を遂行する硬判定部と、
    前記硬判定された結果を格納するビットバッファ部と、
    前記硬判定された結果に対してパリティ検査を遂行し、パリティ検査結果が良いと、前記統合ノードプロセッサーの動作を中断させ、前記パリティ検査結果が悪いと、前記統合ノードプロセッサーの動作を反復させるパリティ検査部と、
    をさらに含むことを特徴とする請求項1記載の装置。
  8. 前記パリティ検査部は、前記複数の検査ノードがすべて一度ずつ選択されたときに前記パリティ検査を遂行することを特徴とする請求項1記載の装置。
  9. 前記LLRメモリ及び検査ノードメッセージメモリは、前記複数の検査ノードに各々対応するサブメトリックブロックに分割されることを特徴とする請求項1記載の装置。
  10. 前記サブメトリックブロックは、それぞれ該当検査ノードに対応する検査ノードメッセージ値或いは該当検査ノードに接続された変数ノードのLLR値を格納することを特徴とする請求項9記載の装置。
  11. 前記少なくとも一つの統合ノードプロセッサーは、前記選択された少なくとも一つの選択された検査ノードに対応することを特徴とする請求項1記載の装置。
  12. パリティ検査ノード行列により複数の検査ノードと複数の変数ノードで構成される低密度パリティ検査符号を復号する方法であって、
    前記複数の検査ノードのうち検査ノード処理を遂行する少なくとも一つの検査ノードを選択する段階と、
    前記選択された検査ノードに対応する検査ノードメッセージを読み出し、前記検査ノードと接続された変数ノードのLLR値から前記検査ノードメッセージ値を減算して変数ノードメッセージを計算する段階と、
    前記計算された変数ノードメッセージに検査ノード処理を遂行して検査ノードメッセージを生成し、前記生成された検査ノードメッセージを格納する段階と、
    前記LLR値に前記生成された検査ノードメッセージを加算してアップデートされたLLR値を計算し格納する段階と、
    前記アップデートされたLLR値に対して硬判定及びパリティ検査を遂行する段階と、
    を有することを特徴とする方法。
  13. 前記選択する段階は、
    前記複数の検査ノードを一つずつインデキシングしてインデキシング順に選択し、或いは一定規則に従って前記複数の検査ノードのうちの少なくとも一つを選択することを特徴とする請求項12記載の方法。
  14. 同じLLR値が同時に読み出されないように少なくとも一つの検査ノードを選択することを特徴とする請求項13記載の方法。
  15. 前記選択された検査ノードと関連した変数ノードメッセージは、前記選択された検査ノードの検査ノードメッセージを前記接続された変数ノードの瞬時LLR値から減算することで、下記の式のように計算されることを特徴とする請求項12記載の方法。
    Figure 2006148937
    ここで、mは前記選択された検査ノードのインデックスで、nは前記選択された検査ノードと接続される変数ノードのインデックスで、
    Figure 2006148937
    はj+1番目の反復復号時の変数ノードメッセージで、
    Figure 2006148937
    は前記選択された検査ノードに対するノード処理が始まる前段階のn番目の変数ノードの瞬時LLR値である。
  16. 前記検査ノードメッセージは、下記の式のように計算されることを特徴とする請求項15記載の方法。
    Figure 2006148937
    ここで、
    Figure 2006148937
    はj+1番目の反復時の検査ノードメッセージで、Fは検査ノードメッセージの検査ノード処理関数で、dはm番目の検査ノードと接続された変数ノードメッセージの数である。また、nは、前記変数ノードメッセージのインデックスで、n乃至
    Figure 2006148937
    の範囲を有する。
  17. 前記アップデートされたLLR値は、下記の式のように計算されることを特徴とする請求項16記載の方法。
    Figure 2006148937
    ここで、
    Figure 2006148937
    は前記アップデートされたLLR値で、
    Figure 2006148937
    は前記初期LLR値である。
  18. 前記硬判定及びパリティ検査を遂行する段階は、
    硬判定を遂行し、前期硬判定された結果に対してパリティ検査を遂行し、パリティ検査の結果が良いと、復号を中断し、パリティ検査の結果が悪いと、反復復号を遂行するパリティ検査部をさらに含んでなることを特徴とする請求項13記載の方法。
  19. 前記パリティ検査は、前記複数の検査ノードがすべて一度ずつ選択されたときに前記パリティ検査を遂行することを特徴とする請求項12記載の方法。
  20. 前記LLR値及び検査ノードメッセージは、前記複数の検査ノードに各々対応するサブメトリックブロックに分割されたメモリに格納されることを特徴とする請求項12記載の方法。
JP2005337687A 2004-11-23 2005-11-22 統合ノード処理を用いる低密度パリティ検査符号の復号方法及び装置 Expired - Fee Related JP4038519B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040096344A KR100703271B1 (ko) 2004-11-23 2004-11-23 통합노드 프로세싱을 이용한 저밀도 패리티 검사 코드복호 방법 및 장치

Publications (2)

Publication Number Publication Date
JP2006148937A true JP2006148937A (ja) 2006-06-08
JP4038519B2 JP4038519B2 (ja) 2008-01-30

Family

ID=35686497

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005337687A Expired - Fee Related JP4038519B2 (ja) 2004-11-23 2005-11-22 統合ノード処理を用いる低密度パリティ検査符号の復号方法及び装置

Country Status (7)

Country Link
US (1) US7454685B2 (ja)
EP (1) EP1659726B1 (ja)
JP (1) JP4038519B2 (ja)
KR (1) KR100703271B1 (ja)
CN (2) CN102412847B (ja)
AU (1) AU2005225107B2 (ja)
DE (1) DE602005016355D1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007174027A (ja) * 2005-12-20 2007-07-05 Sony Corp 復号装置、制御方法、およびプログラム
US9195536B2 (en) 2013-07-05 2015-11-24 Kabushiki Kaisha Toshiba Error correction decoder and error correction decoding method

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100762619B1 (ko) * 2004-05-21 2007-10-01 삼성전자주식회사 저밀도 패리티 검사 코드를 이용한 복호화 장치 및 방법
EP1881610B1 (en) 2005-05-13 2015-06-03 NEC Corporation Weighted LDPC decoding using the MaxLog approximation
US8196025B2 (en) * 2005-08-03 2012-06-05 Qualcomm Incorporated Turbo LDPC decoding
US8122315B2 (en) * 2005-12-01 2012-02-21 Electronics And Telecommunications Research Institute LDPC decoding apparatus and method using type-classified index
US7661055B2 (en) * 2005-12-05 2010-02-09 Broadcom Corporation Partial-parallel implementation of LDPC (Low Density Parity Check) decoders
US7562278B2 (en) * 2005-12-29 2009-07-14 Intel Corporation Incremental forward error correction redundancy
US7617433B2 (en) * 2006-01-03 2009-11-10 Broadcom Corporation Implementation of LDPC (low density parity check) decoder by sweeping through sub-matrices
US7530002B2 (en) * 2006-01-03 2009-05-05 Broadcom Corporation Sub-matrix-based implementation of LDPC (Low Density Parity Check) decoder
EP1841073A1 (en) * 2006-03-29 2007-10-03 STMicroelectronics N.V. Fast convergence LDPC decoding using BCJR algorithm at the check nodes
US7941737B2 (en) * 2006-04-19 2011-05-10 Tata Consultancy Services Limited Low density parity check code decoder
KR100943602B1 (ko) * 2006-06-27 2010-02-24 삼성전자주식회사 통신 시스템에서 신호 수신 장치 및 방법
US7895500B2 (en) * 2006-07-28 2011-02-22 Via Telecom Co., Ltd. Systems and methods for reduced complexity LDPC decoding
US7797480B2 (en) * 2007-03-29 2010-09-14 Sandisk Corporation Method for reading non-volatile storage using pre-conditioning waveforms and modified reliability metrics
US7904793B2 (en) * 2007-03-29 2011-03-08 Sandisk Corporation Method for decoding data in non-volatile storage using reliability metrics based on multiple reads
TW200906073A (en) * 2007-07-31 2009-02-01 Univ Nat Chiao Tung Calculation method applied to Low Density Parity check Code (LDPC) decoder and circuit thereof
US8429486B2 (en) * 2007-12-13 2013-04-23 Nec Corporation Decoding device, data storage device, data communication system, and decoding method
US8266493B1 (en) * 2008-01-09 2012-09-11 L-3 Communications, Corp. Low-density parity check decoding using combined check node and variable node
US8099645B2 (en) * 2008-04-11 2012-01-17 Nec Laboratories America, Inc. LDPC codes and stochastic decoding for optical transmission
WO2009143375A2 (en) 2008-05-21 2009-11-26 The Regents Of The University Of Calfornia Lower-complexity layered belief propagation deconding ldpc codes
WO2010019169A1 (en) * 2008-08-15 2010-02-18 Lsi Corporation Rom list-decoding of near codewords
US8190977B2 (en) 2008-08-27 2012-05-29 Intel Mobile Communications GmbH Decoder of error correction codes
US8307255B2 (en) * 2008-11-12 2012-11-06 Texas Instruments Incorporated Scalable decoder architecture for low density parity check codes
KR101206434B1 (ko) 2008-12-12 2012-11-29 연세대학교 산학협력단 저밀도 패리티 검사 부호를 위한 동적 스케줄링 기법을 이용한 복호 방법 및 그 장치
US8560917B2 (en) * 2009-01-27 2013-10-15 International Business Machines Corporation Systems and methods for efficient low density parity check (LDPC) decoding
US8413010B1 (en) 2009-03-12 2013-04-02 Western Digital Technologies, Inc. Data storage device employing high quality metrics when decoding logical block address appended to a data sector
KR101073636B1 (ko) 2009-07-14 2011-10-14 광운대학교 산학협력단 저밀도 패리티 검사 부호를 이용한 복호화 장치
JP5197544B2 (ja) * 2009-10-05 2013-05-15 株式会社東芝 メモリシステム
KR20110124659A (ko) * 2010-05-11 2011-11-17 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 계층적 복호 장치 및 방법
JP5310701B2 (ja) * 2010-10-29 2013-10-09 株式会社Jvcケンウッド 復号装置および復号方法
US10063262B2 (en) * 2011-02-28 2018-08-28 Inphi Corporation Non-concatenated FEC codes for ultra-high speed optical transport networks
US10103751B2 (en) * 2011-02-28 2018-10-16 Inphi Corporation Non-concatenated FEC codes for ultra-high speed optical transport networks
US8918694B2 (en) * 2011-02-28 2014-12-23 Clariphy Communications, Inc. Non-concatenated FEC codes for ultra-high speed optical transport networks
WO2013147777A1 (en) * 2012-03-28 2013-10-03 Intel Corporation Updating variable nodes associated with an iterative decoder
KR101926608B1 (ko) * 2012-08-27 2018-12-07 삼성전자 주식회사 경 판정 디코딩 방법 및 이를 이용한 저밀도 패리티 체크 디코더
US9015550B2 (en) * 2012-10-05 2015-04-21 Lsi Corporation Low density parity check layer decoder for codes with overlapped circulants
US9612903B2 (en) 2012-10-11 2017-04-04 Micron Technology, Inc. Updating reliability data with a variable node and check nodes
KR20150024489A (ko) * 2013-08-26 2015-03-09 삼성전자주식회사 메모리 시스템에서의 ldpc 디코딩 방법 및 이를 이용한 ldpc 디코더
CN104518801A (zh) 2013-09-29 2015-04-15 Lsi公司 非二进制的分层低密度奇偶校验解码器
US9489256B2 (en) 2013-11-07 2016-11-08 Seagate Technology Llc Device quality metrics using unsatisfied parity checks
US9553608B2 (en) * 2013-12-20 2017-01-24 Sandisk Technologies Llc Data storage device decoder and method of operation
US9374107B1 (en) * 2014-05-15 2016-06-21 L-3 Communications Corp. Time shared protograph LDPC decoder
KR102265220B1 (ko) * 2015-03-09 2021-06-16 에스케이하이닉스 주식회사 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
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
US9793923B2 (en) * 2015-11-24 2017-10-17 Texas Instruments Incorporated LDPC post-processor architecture and method for low error floor conditions
TWI592937B (zh) * 2016-07-05 2017-07-21 大心電子(英屬維京群島)股份有限公司 解碼方法、記憶體儲存裝置及記憶體控制電路單元
KR102589918B1 (ko) * 2016-07-19 2023-10-18 삼성전자주식회사 저밀도 패리티 체크 디코더 및 그것을 포함하는 저장 장치
EP3316486B1 (en) * 2016-10-25 2023-06-14 Université de Bretagne Sud Elementary check node-based syndrome decoding with input pre-sorting
KR102231278B1 (ko) * 2017-06-07 2021-03-23 한국전자통신연구원 이진 로그를 사용하는 저밀도 패리티 검사 복호기 및 그것의 복호 방법
US10491244B2 (en) * 2017-11-14 2019-11-26 Nyquist Semiconductor Limited Systems and methods for decoding error correcting codes
US10304550B1 (en) 2017-11-29 2019-05-28 Sandisk Technologies Llc Sense amplifier with negative threshold sensing for non-volatile memory
CN108494410A (zh) * 2018-03-30 2018-09-04 北京联想核芯科技有限公司 译码方法、装置、设备及介质
CN111061242A (zh) * 2018-10-16 2020-04-24 联合汽车电子有限公司 电动汽车电机控制器的校验系统及方法
KR102643457B1 (ko) * 2018-11-19 2024-03-06 에스케이하이닉스 주식회사 Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법
US10643695B1 (en) 2019-01-10 2020-05-05 Sandisk Technologies Llc Concurrent multi-state program verify for non-volatile memory
CN110098838B (zh) * 2019-04-30 2022-03-22 天津大学 Ldpc-rs乘积码的纠错纠删迭代译码方法
US11024392B1 (en) 2019-12-23 2021-06-01 Sandisk Technologies Llc Sense amplifier for bidirectional sensing of memory cells of a non-volatile memory
US11424766B1 (en) 2020-01-31 2022-08-23 Marvell Asia Pte Ltd. Method and device for energy-efficient decoders

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307487B1 (en) * 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US7234100B1 (en) * 2000-09-28 2007-06-19 Intel Corporation Decoder for trellis-based channel encoding
US6567465B2 (en) * 2001-05-21 2003-05-20 Pc Tel Inc. DSL modem utilizing low density parity check codes
US6633856B2 (en) * 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
US6938196B2 (en) * 2001-06-15 2005-08-30 Flarion Technologies, Inc. Node processors for use in parity check decoders
US6818236B2 (en) * 2001-06-16 2004-11-16 The Goodyear Tire & Rubber Company Chewing gum SBR
US6789227B2 (en) * 2001-07-05 2004-09-07 International Business Machines Corporation System and method for generating low density parity check codes using bit-filling
US6757122B1 (en) * 2002-01-29 2004-06-29 Seagate Technology Llc Method and decoding apparatus using linear code with parity check matrices composed from circulants
KR100891782B1 (ko) * 2002-06-11 2009-04-07 삼성전자주식회사 고속 데이터 전송 시스템에서 순방향 오류 정정 장치 및방법
CN1185796C (zh) 2002-11-15 2005-01-19 清华大学 改进的非规则低密度奇偶校验码纠错译码方法
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
US7395494B2 (en) * 2003-12-22 2008-07-01 Electronics And Telecommunications Research Institute Apparatus for encoding and decoding of low-density parity-check codes, and method thereof
KR100762619B1 (ko) * 2004-05-21 2007-10-01 삼성전자주식회사 저밀도 패리티 검사 코드를 이용한 복호화 장치 및 방법
CN1713530A (zh) 2004-06-22 2005-12-28 印芬龙科技股份有限公司 解码低密度奇偶校验(ldpc)码字的ldpc解码器
US20050283707A1 (en) * 2004-06-22 2005-12-22 Eran Sharon LDPC decoder for decoding a low-density parity check (LDPC) codewords

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007174027A (ja) * 2005-12-20 2007-07-05 Sony Corp 復号装置、制御方法、およびプログラム
US7937648B2 (en) 2005-12-20 2011-05-03 Sony Corporation Decoding device, control method, and program
US9195536B2 (en) 2013-07-05 2015-11-24 Kabushiki Kaisha Toshiba Error correction decoder and error correction decoding method

Also Published As

Publication number Publication date
CN102412847A (zh) 2012-04-11
CN1783729A (zh) 2006-06-07
CN102412847B (zh) 2014-10-22
DE602005016355D1 (de) 2009-10-15
EP1659726A3 (en) 2006-06-14
JP4038519B2 (ja) 2008-01-30
EP1659726B1 (en) 2009-09-02
AU2005225107A1 (en) 2006-06-08
AU2005225107B2 (en) 2008-02-14
KR20060057253A (ko) 2006-05-26
KR100703271B1 (ko) 2007-04-03
US7454685B2 (en) 2008-11-18
US20060123318A1 (en) 2006-06-08
EP1659726A2 (en) 2006-05-24

Similar Documents

Publication Publication Date Title
JP4038519B2 (ja) 統合ノード処理を用いる低密度パリティ検査符号の復号方法及び装置
JP4038518B2 (ja) 低密度パリティ検査コードを効率的に復号する方法及び装置
US9432053B1 (en) High speed LDPC decoder
TWI663839B (zh) 使用硬選取硬解碼模式下的解碼器產生軟資訊的方法
KR101535225B1 (ko) 디코딩 방법 및 그 방법을 이용하는 메모리 시스템 장치
TWI594583B (zh) 硬決定輸入之一般化低密度同位檢查軟解碼
JP2009100222A (ja) 低密度パリティ検査符号の復号装置およびその方法
US8650451B2 (en) Stochastic stream decoding of binary LDPC codes
US10848182B2 (en) Iterative decoding with early termination criterion that permits errors in redundancy part
US20160020783A1 (en) Low Density Parity Check Decoder With Relative Indexing
US8196006B2 (en) Modified branch metric calculator to reduce interleaver memory and improve performance in a fixed-point turbo decoder
RU2571597C2 (ru) Способ и устройство для декодирования турбокода
JP5700035B2 (ja) 誤り訂正符号復号装置、誤り訂正符号復号方法および誤り訂正符号復号プログラム
JP4837645B2 (ja) 誤り訂正符号復号回路
KR101657912B1 (ko) 비이진 저밀도 패리티 검사 코드의 복호화 방법
US20170134048A1 (en) Message-passing based decoding using syndrome information, and related methods
US8019020B1 (en) Binary decoding for correlated input information
US20200295787A1 (en) Low latency sequential list decoding of polar codes
JP4314254B2 (ja) 低密度パリティチェック符号復号装置及び方法
JP2003152556A (ja) 誤り訂正符号復号装置
WO2016000321A1 (zh) 基于map算法的turbo译码方法及装置、计算机存储介质
JP2006115534A (ja) 誤り訂正符号の復号方法、そのプログラム及びその装置
Hatami An Absorbing Set Analysis of Quantized LDPC Decoders
JP2007006541A (ja) 誤り訂正符号復号装置
KR20130037523A (ko) 상태-체크 코드를 이용한 부호화 방법 및 부호화 장치

Legal Events

Date Code Title Description
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: 20071009

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071105

R150 Certificate of patent or registration of utility model

Ref document number: 4038519

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101109

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111109

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111109

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121109

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131109

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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