JP4402699B2 - ノードメモリ基盤のldpcデコーダ及び復号方法 - Google Patents

ノードメモリ基盤のldpcデコーダ及び復号方法 Download PDF

Info

Publication number
JP4402699B2
JP4402699B2 JP2007021427A JP2007021427A JP4402699B2 JP 4402699 B2 JP4402699 B2 JP 4402699B2 JP 2007021427 A JP2007021427 A JP 2007021427A JP 2007021427 A JP2007021427 A JP 2007021427A JP 4402699 B2 JP4402699 B2 JP 4402699B2
Authority
JP
Japan
Prior art keywords
node
variable
check
memory
message
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
JP2007021427A
Other languages
English (en)
Other versions
JP2007208985A (ja
Inventor
駿 文
スルギ ▲ペ▼
淳暎 尹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2007208985A publication Critical patent/JP2007208985A/ja
Application granted granted Critical
Publication of JP4402699B2 publication Critical patent/JP4402699B2/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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65DCONTAINERS FOR STORAGE OR TRANSPORT OF ARTICLES OR MATERIALS, e.g. BAGS, BARRELS, BOTTLES, BOXES, CANS, CARTONS, CRATES, DRUMS, JARS, TANKS, HOPPERS, FORWARDING CONTAINERS; ACCESSORIES, CLOSURES, OR FITTINGS THEREFOR; PACKAGING ELEMENTS; PACKAGES
    • B65D35/00Pliable tubular containers adapted to be permanently or temporarily deformed to expel contents, e.g. collapsible tubes for toothpaste or other plastic or semi-liquid material; Holders therefor
    • B65D35/24Pliable tubular containers adapted to be permanently or temporarily deformed to expel contents, e.g. collapsible tubes for toothpaste or other plastic or semi-liquid material; Holders therefor with auxiliary devices
    • B65D35/32Winding keys
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47KSANITARY EQUIPMENT NOT OTHERWISE PROVIDED FOR; TOILET ACCESSORIES
    • A47K5/00Holders or dispensers for soap, toothpaste, or the like
    • A47K5/06Dispensers for soap
    • A47K5/12Dispensers for soap for liquid or pasty soap
    • A47K5/1211Dispensers for soap for liquid or pasty soap using pressure on soap, e.g. with piston
    • 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
    • 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/65Purpose and implementation aspects
    • H03M13/6566Implementations concerning memory access contentions

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Public Health (AREA)
  • Mechanical Engineering (AREA)
  • Error Detection And Correction (AREA)

Description

本発明は低密度パリティチェック(Low-Density Parity Check:以下、“LDPC”とする)デコーダに関するもので、特にノードメモリ構造に基づいた効率的なLDPCデコーダ及び復号方法に関するものである。
Gallagerによって最初に提案されたLDPC符号は、MacKayらによって再発見されて積和(sum-product)アルゴリズムに基づいた確率伝搬復号(belief propagation decoding)によって、Shannonの容量限界に近接する優れた性能を示す符号として注目されている。
以後、Richardsonらは、LDPC符号を構成するファクターグラフ(factor graph)上で復号過程中に生成、アップデートされるメッセージの確率分布(probability distribution)によって変化することを追跡する密度拡散(density evolution)技法を提案した。また、これを用いて、サイクルフリー(cycle free)のファクターグラフ上で無限大の反復を仮定したとき、誤り確率を‘0’に収束可能にするチャンネルパラメーター(例えば、しきい値(threshold))を最大化できるファクターグラフの変数とチェックノードの次数分布(degree distribution)を提案した。そして、このような場合がサイクルが存在する有限な長さのLDPC符号に対しても適用可能であることを理論的に提示した。このような密度拡散技法を用いて不規則LDPC符号の理論的なチャンネル容量がShannon限界に僅か0.0045dBまで近接できることを示した。
一方、LDPC符号は、コード自体の特性上パケットサイズ(packet size)が大きいほど性能が増加するため、これによって符号/復号過程が複雑になりうる。最近、Flarion社は、パケットサイズが大きい場合にも低いハードウェア複雑度で実現できるマルチエッジタイプベクトル(multi-edge type vector)LDPC符号を提案したところである。上記のベクトルLDPC、例えばブロックLDPC(BLDPC)は、小さなサイズの基本マトリックスH、例えばチェックマトリックス(check matrix)にもベクトル化した構造を用いて並列実現を通じて効率的なエンコーダ/デコーダの実現が可能な符号である。BLDPCの並列ファクターによる並列実現は、他のコード、例えばターボコード(Turbo code)、畳み込みコード(Convolutional code)などに比べて高い処理率(throughput)を有するデコーダの実現が可能にするため、データ率(data rate)が飛躍的に増加する次世代移動通信システムで、上記のような基本コードを代替することが可能な代案として議論されている。
このようなLDPC符号は、一般的な線形ブロックコードの特殊な場合であり、パリティチェックマトリックス(parity check matrix)に定義される。
図1は、一般的なLDPC符号のタナーグラフとパリティチェックマトリックスを示す。同図に、2個の情報ビットKと3個のパリティビットの場合において、タナーグラフ(Tanner graph)とパリティチェックマトリックスHを示す。
図1を参照すると、グラフ上で変数ノード(Variable node)は、符号語(codeword)の各ビットを示し、チェックノード(Check node)は一つのチェック方程式(equation)を示す。したがって、変数ノードの数は、符号語の長さ(length)、すなわちマトリックスHの列サイズ(column size)を示し、チェックノードの数はパリティビット(parity bit)の数、すなわちマトリックスHの行サイズ(row size)を示す。したがって、図1には符号率2/5のLDPC符号を一例として示す。このようなタナーグラフ上で、各ノードを接続するエッジ(edge)はマトリックスHにおける‘1’を示す。
図2は、一般的なメッセージパッシングによるデコーダの動作を説明するために示す。
図2を参照すると、一般的なLDPC符号のデコーダは、二分グラフ(bipartite graph)上でメッセージパッシング(message-passing)の概念で説明可能であるが、このデコーダは、図2のように変数ノードとチェックノードとの間のメッセージ、すなわち外部情報(extrinsic information)を相互に交換しつつ反復(iterative)演算方式で動作する。
図2に示すように、
Figure 0004402699
はj番目の変数ノードからi番目のチェックノードに伝達されるメッセージを示すもので、変数ノード処理器(variable node processor)の動作によって生成される。また、
Figure 0004402699
は、i番目のチェックノードからj番目の変数ノードに伝達されるメッセージを示し、チェックノード処理器(check node processor)の動作によって生成される。
一般的に知られている積和アルゴリズムの場合に、各メッセージの生成は、下記の<数式(1)>及び<数式(2)>のように表わされる。
Figure 0004402699
Figure 0004402699
上記の<数式(1)>は変数ノード処理器のメッセージ生成のための数式を、<数式(2)>はチェックノード処理器のメッセージ生成のための数式を、それぞれ示す。
<数式(1)>に示すように、yjはj番目の変数ノード、すなわちj番目の受信ビットに該当するLLR(Log-Likelihood Ratio)を、C(j)はj番目の変数ノードに接続されたチェックノードのインデックス集合を、V(i)はi番目のチェックノードに接続された変数ノードのインデックス集合を、それぞれ示す。
<数式(2)>に示すように、pはメッセージmの符号(sign)、例えば‘+1’又は‘-1’を、qはメッセージmの振幅をそれぞれ示し、x>=0である場合にF(x)=-log(tanh(x/2))、x<0である場合にF(x)=+log(tanh(-x/2))を示す。
以上に説明したように、メッセージパッシングアルゴリズムで動作する一般的なLDPCデコーダは、上記の反復演算過程を経て情報ビットを復号する。
次に、ブロックLDPCは基本のマトリックスHの拡張によって得られ、これについては下記の図3を参照して説明する。
図3は、一般的なブロックLDPCのグラフ形態及びチェックマトリックスを示す。
まず、図3は、上記した図1で使用されたマトリックスHを並列要素Zだけ拡張して示すもので、一例としてZ=2である場合を示す。Z=2である場合に、符号語(codeword)の長さが2倍に拡張された。このような場合に、マトリックスHは、既存の基本マトリックスHで各要素をZ×Zマトリックスで示すことができる。
まず、図3の左側に示すように、図1に示したマトリックスHを単純拡張した場合に、単位マトリックス(identity matrix)は‘1’に位置される。しかしながら、このような場合にグラフで各階層(layer)間に情報の交換がないので、符号語長さが長くなるだけの符号化利得(coding gain)が得られない。したがって、図3の右側に示すように、エッジ置換(edge permutation)を通じて階層間にエッジの接続を任意に行う。これは、基本マトリックスHで‘1’に該当する位置に単位マトリックスの代わりに置換マトリックス(permutation matrix)を使用することと同様である。以上のように、ブロックLDPCにおけるデコーダは、Z単位で並列処理されることによって、処理率の向上と共に、制御オーバーヘッド(control overhead)の減少が可能になる。
一方、上記したようなデコーダは、ノードメッセージを交換するとき、各エッジのV2Cメッセージ、すなわち変数ノードの出力メッセージ(outgoing message)とC2Vメッセージ、すなわちチェックノードの出力メッセージを生成する。
一般的なメッセージパッシングデコーダは、エッジメッセージのアップデート順序に関係なく動作できる。ここで、スケジューリング方式は、エッジメッセージのアップデート順序を決定することで、デコーダの反復による収束速度に影響を及ぼす。
広く使用されているスケジューリング方式としては、フラッディングスケジューリング(flooding scheduling)と直列スケジューリング(serial scheduling)方式などがある。フラッディングスケジューリング方式は、すべてのV2Cメッセージをアップデートした後にすべてのC2Vメッセージをアップデートする方式である。そして、直列スケジューリング方式は、ノード基盤の動作を遂行する方式である。
なお、この直列スケジューリング方式は、変数ノード基盤(variable node based)方式とチェックノード基盤(check node based)方式に分けられる。
チェックノード基盤の直列スケジューリング方式は、一つのチェックノードに接続された出力メッセージC2Vをアップデートするために必要な入力メッセージ(incoming message)V2Cをまずアップデートする。一つのチェックノードに接続された出力メッセージがすべてアップデートされると、次のチェックノードに移動させた後にアップデートし、このような動作を繰り返して遂行する。同様に、変数ノード基盤の直列スケジューリング方式も上記のように動作が遂行されることができる。
図4は、従来の技術によるデコーダの構成を示す。
図4は、一つのベクトルノード処理器(Vector Node Processor:以下、“VNPVNP”とする)とベクトルエッジメッセージメモリ(Vector Edge Message Memory:以下、“VMM”とする)で実現された従来のデコーダの実現例を示す。
VNPは、少なくとも一つのノード処理器ユニットを含んでおり、各ノード処理器ユニットはZ回の演算を遂行する。また、VNPは、制御信号により変数ノード又はチェックノードの演算を遂行することができる。デコーダは、一つのVMMをもってV2CとC2Vメッセージをすべて格納しなければならない。したがって、このような構造では、上記したようなフラッディングスケジューリング方式だけが適用されることができる。
例えば、VNPが変数ノード処理器として動作を始めるときに、VMMにはC2Vメッセージが格納されている。したがって、VNPが1番目の変数ノードに対する出力メッセージV2Cをアップデートするために、VMMに格納されているC2Vメッセージを読み出して出力メッセージを計算した後、読み取り動作を遂行したメモリアドレスにV2Cメッセージを格納する。
上記のように、すべての変数ノードに対する演算を遂行すると、VMMは、すべてV2Cメッセージにアップデートされる。その後、VNPは、制御信号の動作によってチェックノード処理器の動作を遂行する。すなわち、各エッジ当り一つのメモリでV2CとC2Vメッセージをすべて格納及び処理するためにはフラッディングスケジューリング技法だけが可能である。
また、VNPとVMMとの間に存在するスイッチング装置(switching device)は、一例として図3に示したような各階層間のエッジ置換を遂行する。
この場合に、従来のデコーダの構造では、一個のVNPで順次的な演算を遂行するので、メモリが小さく、ハードウェアが簡単な反面、デコーダの処理率が遅いという問題点が伴う。これについては、後述する図6A及び図6Bを参照して具体的に説明するため、ここではその詳細な説明を省略する。
図5は、従来技術によるデコーダの構成を他の例として示す。特に、図5では、2個のVNPを使用するデコーダの場合を例に挙げて説明する。
図5に示すように、それぞれのVNPは、変数ノード又はチェックノード処理器の役割だけを遂行し、2個の処理器が同時に動作することによって復号処理率(decoding throughput)を向上可能にする。上記と同様に、VNPとVMMとの間に存在するスイッチング装置は、一例として図3に示したような各階層間のエッジ置換を遂行する。しかしながら、図5のような構造を有するデコーダは、C2VとV2Cメッセージを格納するためのメモリが各々必要となる。したがって、メモリが、上記した図4に示した構造に比べて2倍増加、すなわちハードウェア個数の増加が2倍になって物理的体積が大きくなるという問題点がある。
したがって、複雑度を低下させつつ速い処理率を達成できるデコーダの設計及びその実現方法が要求される。
R. G. Gallger著、"Low-density parity-check code"、IRE Transaction on Information Theory、(米国)、IEEE、1962年1月、p. 21-28
したがって、上述した従来技術の問題点を解決するために案出された本発明の目的は、デコーダの複雑度を低下させ、かつ速い処理率を達成することができるデコーダ及びその実現方法を提供することにある。
本発明の他の目的は、メッセージメモリを別に使用することより、メモリの使用量を減少し、ベクトルノード処理器を利用しつつ速い処理率を達成することができるノードメモリ基盤のLDPCデコーダ及び復号方法を提供することにある。
上記のような目的を達成するために、本発明は、無線通信システムにおける低密度パリティチェック符号(LDPC)デコーダであって、変数ノードとチェックノードとの間のエッジを通じて伝送されるメッセージを格納するエッジメモリと、チェックノード値を格納するノードメモリと、前記ノードメモリ及び前記エッジメモリのうち少なくとも一つに格納された情報を用いてノード処理動作を遂行し、前記ノード処理動作を遂行して生成されたチェックノード値を前記ノードメモリに貯蔵し、前記ノード処理動作を遂行して生成されたメッセージを前記エッジメモリに格納するノード処理器と、置換動作を通じてノードメモリと前記ノード処理器の出力をスイッチングするスイッチと、前記ノードメモリからの出力をパリティチェックするパリティチェック検証器と、前記ノード処理器を制御するための制御信号を提供する制御部とを含むことを特徴とする。
また、本発明は、通信システムにおける低密度パリティチェック符号(LDPC)デコーダであって、チェックノード値を格納するノードメモリと、ノード処理動作を遂行し、前記ノード処理動作により前記ノードメモリに格納されるノード値を生成するノード処理器と、前記ノードメモリと前記ノード処理器との間に位置し、置換動作を通じてノードメモリと前記ノード処理器の出力をスイッチングするスイッチとを含むことを特徴とする。
さらに、本発明は、通信システムにおける低密度パリティチェック符号(LDPC)復号方法であって、変数ノードとチェックノード及びエッジを初期化する段階と、前記ノード及びエッジメッセージのうち、少なくとも一つを以前にアップデートされたエッジ及びノードのメッセージ値にアップデートする段階と、前記アップデートされたエッジメッセージ又はアップデートされたノードメッセージを格納する段階とを有することを特徴とする。
本発明の実施形態によるLDPCデコーダ及びその復号方法は、既存のフラッディングスケジューリング方式に比べてデコーダの反復による収束速度を大幅に増加させ、今後の次世代移動通信システムにおける必須事項となる高いデータ率の伝送が可能である効果がある。また、本発明の実施形態によるLDPCデコーダ及び復号方法は、メモリの使用量を減少しながらも復号化処理率を向上させることができる効果もある。
以下、本発明の望ましい実施形態を添付の図面を参照して詳細に説明する。
下記に、本発明に関連した公知の機能又は構成に関する具体的な説明が本発明の要旨を不明にすると判断された場合に、その詳細な説明を省略する。
本発明は、変数ノード基盤の直列スケジューリング方式でメッセージパッシング復号化(message passing decoding)を遂行するデコーダ(decoder)の実現方式及び装置に関するものである。特に、本発明の実施形態では、一つのメッセージメモリV2Cを使用し、別途のC2Vエッジメッセージメモリを使用しない方式であって、C2Vメッセージメモリと差別化されるチェックノードメモリを使用する。
本発明の実施形態によるチェックノードメモリは、一つのチェックノード(check node)ごとに所定の代表値を格納しており、メモリ要素(memory element)の数はチェックノードの数と同一である。
したがって、本発明の実施形態では、上記の図5に示したように、V2CとC2Vエッジメッセージメモリを別途に使用することよりも、メモリの使用量を減少することができる。また、本発明の実施形態によると、変数ノード処理器でV2Cメッセージをアップデートするために関連したC2Vメッセージを注文型(on-demand)に生成する。これによって、上記の図4に示した場合と異なり、一つのベクトルノード処理器(Vector Node Processor:以下、“VNP”とする)だけでも速い処理率(throughput)を実現することができる。
以上のように、提案する本発明の実施形態は、変数ノード基盤の直列スケジューリング方式でメッセージパッシング符号化を遂行するデコーダの実現方法及び装置に関するもので、本発明の実施形態によるデコーダの望ましい動作実施形態を添付の図面を参照して説明する。
本発明の説明に先立ち、従来から提案されたデコーダの動作について下記の図6A及び図6Bを通じて説明する。
図6A及び図6Bは、一般的なデコーダで使用されるフラッディングスケジューリング方式を示す。
図6A及び図6Bを参照すると、従来のフラッディングスケジューリング方式は、変数ノード処理器(V2Cメッセージの生成)とチェックノード処理器(C2Vメッセージの生成)が順次に動作する。すなわち、デコーダは、まず図6Aに示すように、すべてのエッジのV2Cメッセージをすべてアップデートした後に、図6Bに示すようにすべてのC2Vメッセージをアップデートする。
このような構造では、変数ノードとチェックノードの値をやりとりするとき、他のノードの値を使用しない。例えば、V2Cメッセージを生成する場合にC2Vメッセージを用いるが、この場合に用いられるC2Vメッセージは、以前の反復過程でのチェックノード処理器によってアップデートされたものである。すなわち、従来技術では、V2Cメッセージをアップデートする過程で、まずアップデートされたV2Cメッセージを用いてC2Vメッセージをアップデートすることができなかった。
図7A〜図7Fは、本発明によるデコーダで使用するノードメモリ基盤の直列スケジューリング方式を示す。
図7A〜図7Fを参照すると、本発明によるLDPC復号方法は、アップデートされたメッセージを用いてこれに関連したメッセージをまずアップデートすることによって、デコーダの性能、すなわち収束速度を向上させることができる。すなわち、1番目の変数ノードのV2Cメッセージをアップデートするときに、LDPC復号方法は、図7Aに示すように、第1の変数ノードに接続されたエッジ(例えば、エッジa,b)のC2Vメッセージを予め獲得しなければならない。
次に、図7Bに示すように、LDPC復号方法は、1番目の変数ノードにかかるC2Vメッセージを獲得すると、変数ノードに接続されたエッジ、すなわちエッジa、b(点線部分)のC2Vメッセージをアップデートするために第1及び第2のチェックノード処理器の動作によってメッセージを生成する。
以後、図7Cに示すように、LDPC復号方法は、上記の生成されたエッジa,bのC2Vメッセージを獲得し、エッジa,bに接続されたノードからのC2Vメッセージを通じてV2Cメッセージを生成する。次に、図7Dに示すように、2番目の変数ノードに接続されたエッジ(例えば、エッジd,e,f)のV2Cメッセージを生成するために、これらのC2Vメッセージを獲得する。C2Vメッセージを獲得する動作は図7Aの動作と類似し、2番目の変数ノードに接続されたエッジ(例えば、エッジd,e,f)のC2Vメッセージを予め獲得する。
図7Eに、参照符号2番目の変数に接続されたエッジd,e,fのC2Vメッセージをアップデートするために関連したチェックノード処理器の動作を示す。ここで、1番目の変数ノードからアップデートされたV2Cメッセージがエッジd、eのC2Vメッセージを生成するために用いられる。
それによって、図7Fに示すように、LDPC復号方法は、エッジd,e,fにかかるC2Vメッセージをすべて獲得し、アップデートされたC2Vメッセージを通じてエッジd,e,fのV2Cメッセージが生成される。
本発明では、図7A〜図7Fに示すような方式ですべての変数ノードに関連したV2Cメッセージをすべてアップデートすれば自動的にC2Vメッセージもアップデートされる。本発明のLDPC復号方法は、C2Vメッセージが変数ノードのV2Cメッセージの生成に基づいて注文型(on-demand)で生成される。すなわち、メッセージパッシング過程でそれ以前にアップデートされたV2CメッセージがC2Vメッセージを上記のように注文型で生成するために用いられるため、メッセージの収束速度が速くなる。このような手順を示すと、下記の<数式(3)>及び<数式(4)>のようである。
Figure 0004402699
Figure 0004402699
上記の<数式(3)>及び<数式(4)>は、LDPC復号方法において、初期化段階(Initialize stage)及び反復段階(Iteration stage)を各々示す。
<数式(3)>及び<数式(4)>に示すように、v、cは、各々変数ノード及びチェックノードを示し、qcはノードメモリ値mcの振幅(magnitude of node memory value)を、pcはノードメモリ値mcの符号(sign of node memory value)を、V(c)はc番目のチェックノードに近接した変数ノードのインデックス集合(index set)を、C(v)はv番目の変数ノードに近接したチェックノードのインデックス集合を、sgn(x)はx値が0より小さい場合に-1(sgn(x)=-1,x<0)、x値が0以上である場合に+1(sgn(x)=+1,x≧0)を、それぞれ示す。
まず、<数式(3)>に示すように、初期化段階でmvcは入力LLRであるyvに初期化する。ここで、
Figure 0004402699
はv番目の変数ノードからc番目のチェックノードに伝達されるメッセージを示す。そして、vとcは下添え字である。qcとpcは、各々mvcの初期化以後に、上記の<数式(3)>のように初期化する。
次に、<数式(4)>に示すように、反復段階でLは変数ノードvの入力メッセージをすべて合わせる過程を示し、ノードvの入力メッセージは入力LLRであるyvとC2Vメッセージからなる。
次に、
Figure 0004402699
は、c番目のチェックノードからv番目の変数ノードに伝送されるC2Vメッセージを示す。
以下、上記した<式(数3)>及び<数式(4)>を参照して、本発明のノードアップデート方法について説明する。
すなわち、本発明のスケジューリング方式は、既存のフラッディングスケジューリング方式とは差別される直列スケジューリング方式として、mvcを毎度アップデートする方式である。すなわち、本発明の実施形態では、一例として、変数ノードを基準としてチェックノードをアップデートする方式、すなわち直列スケジューリング方式を通じて、前記各変数ノードに接続されたチェックノードをすべてアップデートする方式に関して説明する。
まず、mvcを更新するためにLから入力エッジの値を除去する。それにより、該当するエッジの振幅(magnitude)値と符号値を除去する部分が必要で、これは下記の<数式(5)>のように表わされる。
Figure 0004402699
次に、上記のようにmvcをアップデートした後には、更に該当するエッジが接続されたチェックノードメモリ値の振幅値と符号値を反映する。ここで、本発明によるノードアップデート方法はV2Cメッセージを別に格納するが、C2Vメッセージは別に格納せず、各チェックノードに該当する代表値(qc,pc)のみを格納する。
上記したように、本発明の実施形態によるノード処理器は、任意の変数ノードに対して出力メッセージ、すなわちV2Cメッセージを生成及び格納するためにC2Vメッセージをチェックノードメモリ値(pc,qc)からの要求により計算して使用する。これは、一種の統合されたノード処理(unified node processing)方式で、一つのノード処理過程でC2VとV2Cメッセージが同時に生成及びアップデートされる効果を有する。
図8は、本発明の実施形態によるデコーダの構成を示す図である。まず、図8に示す本発明の実施形態によるLDPCデコーダでは、並列要素Z=4である場合の例を示す。また、LDPCデコーダは、チャンネルを介して入力される信号をKビット精密度(precision)を有するLLRとして受信し、V2Cエッジメモリの値もKビット精密度を有すると仮定する。
図8を参照すると、本発明の実施形態によるLDPCデコーダは、ベクトルノード処理器801と、ベクトルノード処理器801に入力信号を提供する入力LLR803と、ベクトルノード処理器801の出力の中でV2Cメッセージを格納するV2Cエッジメモリ805と、ノードメモリ値の振幅であるpc(1ビット)又はノードメモリ値の符号であるqc(K'-1ビット)が格納されるチェックノードメモリ807と、ベクトルノード処理器801を制御するための制御信号を提供する制御部809と、チェックノードメモリ807からの出力をパリティチェックするパリティチェック検証器(parity check verifier)811と、ベクトルノード処理器801から出力されるメッセージをスイッチングしてチェックノードメモリ807に伝送する第1のスイッチ813と、チェックノードメモリ807からの出力をスイッチングしてベクトルノード処理器801に伝達する第2のスイッチ815を含む。
本発明の実施形態によるベクトルノード処理器801は、上記した図7A〜図7Fに示すノード処理手順を遂行する。チェックノードメモリ807とV2Cエッジメモリ805は、変数ノードとチェックノードがやりとりする値を効率的に利用するためにメッセージを格納する。したがって、本発明の実施形態によるLDPCデコーダは、チェックノードメモリ807とV2Cエッジメモリ805から各々チェックノードメモリ値と、V2Cメッセージ値を読み取った後に、ベクトルノード処理器801を通じてV2Cメッセージとチェックノード値(pc,qc)を新たに生成してから、各々V2Cエッジメモリ805とチェックノードメモリ807に格納する。
通常に、ブロックLDPCの場合は上記したメモリ読み取り/書き込みとメッセージの生成がZ個の単位で一度に処理されることができる。ノードメモリの一例として、チェックノードメモリ807の値は、V2Cメッセージ又はLLR803からの入力LLR値と異なるビット精密度(bit precision)K'を有することができる。
従来のLDPCデコーダは、反復過程で復号化停止(decoding stop)のために、各反復過程ごとに現在まで復号化された臨時符号語(temporary codeword)を用いてシンドローム(syndrom)をチェックし、或いは最大反復(maximum iteration)過程まで復号化する。しかしながら、本発明の実施形態によるデコーダではチェックノードメモリ807にチェックノードメモリ値の符号と振幅であるpc(1ビット)、qc(K'-1ビット)が格納され、反復段階ごとにすべてのpc値が+1であると、すべてのチェック方程式が満たされるため、復号化動作を終結(termination)させることができる。
従来のデコーダでは、別途のパリティチェック検証器811を必要とすることに比べて、本発明によるLDPCデコーダではノードメモリ値の符号値を確認することだけでこの機能を遂行できるため、ハードウェアの実現が簡単になる。したがって、図8に示すような本発明の実施形態では、パリティチェック検証器811のハードウェアを簡単に実現することができる。
次に、V2Cエッジメモリ805は、L×Z個のKビット値を格納する装置で、ここで‘L’はタナーグラフでエッジの総数を示す。このとき、ベクトルノード処理器801では、Z個の変数ノードが並列処理され、V2Cエッジメモリ805から関連エッジメッセージ値に対する読み取り/書き込み動作を遂行するときに、一つのセット(各セットはZ個のエッジメッセージ値を含む)ずつ順次に処理し、或いは複数セットの値を同時に処理することができる。
複数セットの値に対して同時に読み取り/書き込みを遂行する場合に対する効率的な構造は、一つの変数ノードに接続されたエッジの数(dv、変数ノード次数(variable node degree))だけに処理するものである。このとき、V2Cメッセージ又はチェックノード値を格納するための構造は、dv個だけのメモリバンク(memory bank)からなる。
一方、不規則(irregular)LDPCの場合には、最大変数ノード次数だけのメモリバンクからなる。このような場合に、一つの変数ノードに接続されたエッジメッセージと関連したチェックノード値が一つのサイクル(cycle)に読み取り又は書き込みが可能になるので、パイプライン(pipeline)構造を用いてサイクルごとに1セットの変数ノードに対する処理段階が可能である。これを通じて複数のデコーダの処理率を大幅向上させることができる。
制御部809は、ベクトルノード処理器801で処理するノードの順序を指定し、或いは反復によるデコーダの終結(termination)を決定する。本発明の実施形態によるLDPCデコーダは変数ノード基盤の直列スケジューリング方式を使用するため、デコーダで制御部809を通じて処理する変数ノードの順序を指定することができる。
例えば、情報ビットに該当するノードをまずアップデートし、その後、パリティビットに該当するノードをアップデートする。或いは、上記と反対又は不規則LDPC符号の場合に、ノード次数によりアップデート順序を決定することができることはもちろんである。なお、エッジの接続形態により、ノードのアップデート順序を決定することもできることはもちろんである。
次に、図8では、ブロックLDPCの置換(permutation)のための少なくとも一つのスイッチ、すなわち第1及び第2のスイッチ813,815がベクトルノード処理器801とチェックノードメモリ807との間に位置する。すなわち、上記の図4及び図5に示したような装置は、ベクトルノード処理器とエッジメモリとの間にスイッチング装置が位置することによって、本発明による装置とその構造的に異なる装置であることは、当業者にとっては自明なことであろう。
図8では、デコーダの出力としてLAPP(Log-APriori Probability)817を生成するが、これは各変数ノードに接続されたエッジの入力メッセージをすべて合わせたものである。この値の符号は、復号後に出力ビットを示し、振幅(magnitude)は復号信頼度を示す値として、他の受信モジュール、例えばイコライザ(equalizer)、MIMO検出器(Multi-Input Multi-Output detector)などに使用されうる。
図9は、本発明によるノード処理器の内部構成を示す。特に、図9では、本発明の実施形態によりメモリバンク構造を使用するノード処理器の構成を示す。ここで、各変数ノードに接続されたエッジの数dは6であると仮定する。
図9を参照すると、本発明の実施形態によるノード処理器は、V2Cエッジメモリバンク910とチェックノードメモリバンク930から現在処理している変数ノードに接続されたエッジに該当するエッジメッセージと、このエッジに接続されたチェックノードの値を読み取って上述した動作を遂行する。
新たに計算されたV2Cエッジメッセージとチェックノード値は、更に各変数ノードに接続されたエッジの数、すなわち上記に仮定したところによれば6個が一度に格納される。また、復号化処理率を向上するためのパイプライン構造では、コア(core)動作中にタイミングを合わせるためのラッチ(latch)が挿入されるため、メモリバンクに読み取り/書き込み動作が同時に遂行される。
したがって、デュアルポートメモリ(dual-port memory)を使用して読み取り/書き込みが同時に遂行されるため、メモリ接続の衝突が発生しないようにノードの処理手順を調節する。一方、図9で、関数Fの実現は、ルックアップテーブル(look-up table)又は色々な近似(approximation)アルゴリズム、例えば中間和(min-sum)、線形近似(linear approximation)などを用いて可能である。
以上、本発明の詳細な説明においては具体的な実施形態に関して説明したが、特許請求の範囲を外れない限り、形式や細部についての様々な変更が可能であることは、当該技術分野における通常の知識を持つ者には明らかである。したがって、本発明の範囲は、前述の実施形態に限定されるものではなく、特許請求の範囲の記載及びこれと均等なものに基づいて定められるべきである。
一般的なLDPC符号の方向(tenor)グラフとパリティチェックマトリックスを示す図である。 一般的なメッセージパッシングによるデコーダの動作を説明するために示す図である。 一般的なブロックLDPCのグラフ形態及びチェックマトリックスを示す図である。 従来技術によるデコーダの構成を示す図である。 従来技術によるデコーダの他の構成を示す図である。 従来技術によるデコーダで使用されるフラッディングスケジューリング方式を示す図である。 従来技術によるデコーダで使用されるフラッディングスケジューリング方式を示す図である。 本発明によるデコーダで使用されるノードメモリ基盤の直列スケジューリング方式を示す図である。 本発明によるデコーダで使用されるノードメモリ基盤の直列スケジューリング方式を示す図である。 本発明によるデコーダで使用されるノードメモリ基盤の直列スケジューリング方式を示す図である。 本発明によるデコーダで使用されるノードメモリ基盤の直列スケジューリング方式を示す図である。 本発明によるデコーダで使用されるノードメモリ基盤の直列スケジューリング方式を示す図である。 本発明によるデコーダで使用されるノードメモリ基盤の直列スケジューリング方式を示す図である。 本発明によるデコーダ構成を示す図である。 本発明によるノード処理の内部構成を示す図である。
符号の説明
801 ベクトルノード処理器
803 LLR
805 V2Cエッジメモリ(L×Z×K)
807 チェックノードメモリ(Z×K’)
809 制御部
811 パリティチェック検証器
817 LAPP
910 V2Cエッジメモリバンク
930 チェックノードメモリバンク

Claims (24)

  1. 無線通信システムにおける低密度パリティチェック符号(LDPC)デコーダであって、
    複数の変数ノードと前記複数の変数ノードの各々に対応する一つ以上のチェックノードとの間のエッジを通じて伝送されるメッセージを格納するエッジメモリと、
    前記各エッジに接続されたチェックノードに対応する振幅値と符号(sign)値を有するチェックノード値を格納するノードメモリと、
    前記ノードメモリ及び前記エッジメモリのうち少なくとも一つに格納された情報を用いて前記複数の変数ノードのうち予め設定された一つの変数ノードに接続されるエッジのチェックノード出力(C2V)メッセージ及び新たなチェックノード値を生成し、前記生成されたチェックノード値を前記ノードメモリに貯蔵し、前記生成されたチェックノード出力メッセージを前記エッジメモリに格納し、前記格納されたチェックノード出力メッセージを用いて前記予め設定された一つの変数ノードのエッジに接続された変数ノード出力メッセージ(V2C)を生成し、各変数ノード別前記変数ノード出力メッセージの生成を反復する復号化動作を遂行するノード処理器と、をみ、
    前記ノード処理器は、前記ノードメモリに格納されたチェックノード値の符号値に従って前記復号化動作を終了することを特徴とするLDPCデコーダ。
  2. 記振がq であり、前記符号がp である場合に、前記振幅と符号は下記の数式のように初期化されることを特徴とする請求項1に記載のLDPCデコーダ。
    Figure 0004402699
    ここで、v,cは変数ノード及びチェックノードを各々示し、V(c)はc番目のチェックノードに近接した変数ノードのインデックス集合を示し、C(v)はv番目の変数ノードに近接したチェックノードのインデックス集合を示し、sgn(x)はx値が0より小さい場合に−1(sgn(x)=−1、x<0)、x値が0以上である場合に+1(sgn(x)=+1、x≧0)を示し、
    Figure 0004402699
    はv番目の変数ノードからc番目のチェックノードに伝送されるメッセージを示す。
  3. 記ノードメモリと前記エッジメモリにそれぞれ格納されるチェックノード値とチェックノード出力メッセージは、ノード基盤の直列スケジューリング方式によってアップデートされることを特徴とする請求項1記載のLDPCデコーダ。
  4. 前記符号値は、前記チェックノード値が0以上であるか否かを示し、すべてのチェックノード値の符号値が、該当チェックノード値が0以上であることを示す場合に前記復号化動作を終了することを特徴とする請求項1記載のLDPCデコーダ。
  5. 前記ノードメモリに格納されるチェックノード値は、前記変数ノード出力メッセージ及び入力LLR(Log-Likelihood Ratio)の値と異なるビット精密度(bit precision)を有することを特徴とする請求項1記載のLDPCデコーダ。
  6. 前記ノードメモリと前記エッジメモリのうち少なくとも一つはメモリバンク(memory bank)構成されることを特徴とする請求項1記載のLDPCデコーダ。
  7. 前記メモリバンクの個数が最大変数のノード次数であることを特徴とする請求項記載のLDPCデコーダ。
  8. 前記ノードメモリに格納されたチェックノード値前記エッジメモリに格納されたチェックノード出力メッセージのうち少なくとも一つは、パイプライン構造によってサイクルごとに予め設定された変数ノードの個数だけアップデートされることを特徴とする請求項1記載のLDPCデコーダ。
  9. 前記LDPCデコーダは、
    置換動作を通じて前記ノードメモリと前記ノード処理器の出力をスイッチングするスイッチと、
    前記ノードメモリからの出力をパリティチェックするパリティチェック検証器と、
    前記ノード処理器を制御するための制御信号を提供する制御部と、
    をさらに含むことを特徴とする請求項1に記載のLDPCデコーダ。
  10. 前記スイッチは、
    前記ノード処理器からの出力メッセージをスイッチングして前記ノードメモリに伝達する第1のスイッチと、
    前記ノードメモリからの出力をスイッチングして前記ノード処理器に伝達する第2のスイッチと、
    を含むことを特徴とする請求項9に記載のLDPCデコーダ。
  11. 前記スイッチは、前記ノードメモリと前記ノード処理器との間に位置することを特徴とする請求項9に記載のLDPCデコーダ。
  12. 前記パリティチェック検証器は、前記チェックノード値の符号を確認して前記ノードメモリからの出力をチェックすることを特徴とする請求項9に記載のLDPCデコーダ。
  13. 前記制御信号は、前記複数の変数ノード各々の順序を指定する指定信号及び前記LDPCデコーダの終結信号のうちの少なくとも一つを含むことを特徴とする請求項記載のLDPCデコーダ。
  14. 前記指定信号は、
    前記複数の変数ノード各々の次数によってアップデート順序を決定する信号及び前記エッジの接続形態により前記複数の変数ノード各々のアップデート順序を決定する信号のうちいずれか一つを含むことを特徴とする請求項13記載のLDPCデコーダ。
  15. 通信システムにおける低密度パリティチェック符号(LDPC)復号方法であって、
    複数の変数ノードのうち、アップデートする変数ノード及び前記変数ノードを一つ以上のチェックノードに接続するエッジのチェックノード値を設定し、前記設定された変数ノードに対応する変数ノードメッセージと前記チェックノード値を格納する段階と、
    前記格納されたチェックノード値を用いて前記一つ以上のチェックノードのメッセージを生成する段階と、
    前記生成された一つ以上のチェックノードのメッセージを用いて前記変数ノードのメッセージ及び前記チェックノード値をアップデートし、前記アップデートされた変数ノードのメッセージ及び前記チェックノード値を格納する段階と、
    前記アップデートして格納された変数ノードのメッセージ及びエッジの値を使用して次にアップデートして格納する変数ノードのメッセージ及び前記次にアップデートして格納する変数ノードとエッジによって接続される少なくとも一つのチェックノードのメッセージを生成し、
    前記格納されたチェックノード値の符号(sign)値に基づいて前記変数ノードメッセージ及び前記チェックノード値のアップデートによる復号化動作を終了する段階と、を有し、
    前記チェックノード値は、前記各エッジに接続されたチェックノードに対応する振幅値と前記符号値を含むことを特徴とするLDPC復号方法。
  16. 前記アップデートする段階は、
    変数ノード基盤の直列スケジューリング方式を使用して前記変数ノードのメッセージと前記チェックノード値をアップデートして格納する段階であることを特徴とする請求項15記載のLDPC復号方法。
  17. 前記格納されたチェックノード値は、前記格納された変数ノードメッセージ及び入力LLR(Log-Likelihood Ratio)の値と異なるビット精密度を有することを特徴とする請求項15記載のLDPC復号方法。
  18. 前記アップデートされた変数ノードのメッセージを格納するメモリ及び前記アップデートされたチェックノード値を格納するメモリのうち少なくとも一つは、メモリバンクで構成されることを特徴とする請求項17記載のLDPC復号方法。
  19. 前記メモリバンクの個数が前記アップデートする変数ノードの最大次数であることを特徴とする請求項18記載のLDPC復号方法。
  20. 前記格納された変数ノードのメッセージ及前記格納されたチェックノード値のうち少なくとも一つは、サイクルごとに予め設定された変数ノードの個数だけアップデートされることを特徴とする請求項15記載のLDPC復号方法。
  21. 前記復号化動作を終了する段階は、
    すべてのチェックノード値の符号値が0以上であることを示す場合に、復号化動作を終了する段階を有し、前記符号値は前記チェックノード値が0以上であるか否かを示すことを特徴とする請求項15記載のLDPC復号方法。
  22. 複数の変数ノード及び複数のチェックノード値のアップデート順序を制御する制御信号を生成する段
    をさらに有することを特徴とする請求項15記載のLDPC復号方法。
  23. 前記制御信号は、前記複数の変数ノードのアップデート順序を指定する指定信号及びデコーダの終結信号のうちの少なくとも一つを含むことを特徴とする請求項22記載のLDPC復号方法。
  24. 前記指定信号は、前記複数の変数ノード次数により前記複数の変数ノードのアップデート順序を決定する信号及び前記エッジの接続形態により前記複数の変数ノードのアップデート順序を決定する信号のうちのいずれか一つを含むことを特徴とする請求項23記載のLDPC復号方法。
JP2007021427A 2006-02-02 2007-01-31 ノードメモリ基盤のldpcデコーダ及び復号方法 Expired - Fee Related JP4402699B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060010263A KR100899738B1 (ko) 2006-02-02 2006-02-02 노드 메모리 기반의 ldpc 복호기 및 복호방법

Publications (2)

Publication Number Publication Date
JP2007208985A JP2007208985A (ja) 2007-08-16
JP4402699B2 true JP4402699B2 (ja) 2010-01-20

Family

ID=38197586

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007021427A Expired - Fee Related JP4402699B2 (ja) 2006-02-02 2007-01-31 ノードメモリ基盤のldpcデコーダ及び復号方法

Country Status (5)

Country Link
US (1) US7886208B2 (ja)
EP (1) EP1819054A3 (ja)
JP (1) JP4402699B2 (ja)
KR (1) KR100899738B1 (ja)
CN (1) CN101079639B (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8196025B2 (en) * 2005-08-03 2012-06-05 Qualcomm Incorporated Turbo LDPC decoding
KR101492595B1 (ko) * 2007-05-21 2015-02-11 라모트 앳 텔-아비브 유니버시티 리미티드 메모리 효율적인 ldpc 디코딩
US8181083B2 (en) * 2007-08-27 2012-05-15 Stmicroelectronics S.R.L. Methods and architectures for layered decoding of LDPC codes with minimum latency
JP4487213B2 (ja) * 2007-10-19 2010-06-23 ソニー株式会社 復号装置および方法、並びにプログラム
JP5333233B2 (ja) 2007-12-13 2013-11-06 日本電気株式会社 復号装置、データ蓄積装置、データ通信システム、および復号方法
KR101434267B1 (ko) * 2007-12-14 2014-08-27 삼성전자주식회사 통신 시스템에서 신호 수신 장치 및 방법
US8296640B2 (en) 2008-06-20 2012-10-23 Samsung Electronics Co., Ltd. Method and apparatus for parallel processing multimode LDPC decoder
US8335979B2 (en) * 2008-12-08 2012-12-18 Samsung Electronics Co., Ltd. Contention-free parallel processing multimode LDPC decoder
KR101206434B1 (ko) 2008-12-12 2012-11-29 연세대학교 산학협력단 저밀도 패리티 검사 부호를 위한 동적 스케줄링 기법을 이용한 복호 방법 및 그 장치
TW201037529A (en) 2009-03-02 2010-10-16 David Reynolds Belief propagation processor
WO2010103757A1 (ja) * 2009-03-13 2010-09-16 日本電気株式会社 復号装置および復号方法
US20110154168A1 (en) * 2009-12-18 2011-06-23 Electronics And Telecommunications Research Institute Effective high-speed ldpc encoding method and apparatus using the same
KR101286858B1 (ko) * 2009-12-21 2013-07-17 한국전자통신연구원 저밀도 패리티 검사 부호를 위한 고속 복호 방법
US8972831B2 (en) 2010-01-11 2015-03-03 Analog Devices, Inc. Belief propagation processor
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 디코더
CN105306514A (zh) * 2014-07-30 2016-02-03 北京信威通信技术股份有限公司 基于Zookeeper的录音文件分布存储方法和系统
US9473175B1 (en) * 2015-02-10 2016-10-18 Microsemi Storage Solutions (U.S.), Inc. Forward error correction decoder system
CN106330200B (zh) 2015-07-09 2019-09-10 华邦电子股份有限公司 执行于通量图形处理器的低密度奇偶校验解码方法
CN108370253B (zh) * 2015-12-24 2022-05-03 英特尔公司 用于低密度奇偶校验解码的混合式调度和基于锁存器的流水线
US10548158B2 (en) * 2016-03-10 2020-01-28 Huawei Technologies Co., Ltd. Message passing algorithm decoder and methods
EP3242405B1 (en) * 2016-05-02 2024-02-21 Université de Bretagne Sud Non-binary check node processing with pre-sorted input
KR102589918B1 (ko) * 2016-07-19 2023-10-18 삼성전자주식회사 저밀도 패리티 체크 디코더 및 그것을 포함하는 저장 장치
US10128981B1 (en) * 2016-08-31 2018-11-13 Marvell International Ltd. Message-passing decoder with fast convergence and reduced storage
EP3293885B1 (en) * 2016-09-09 2024-01-03 Université de Bretagne Sud Check node processing for syndrome computation in the decoding of non-binary codes, in particular non-binary ldpc codes
US10141953B2 (en) 2016-12-14 2018-11-27 Via Technologies, Inc. Low-density parity-check apparatus and matrix trapping set breaking method
KR102588969B1 (ko) * 2019-03-19 2023-10-16 에스케이하이닉스 주식회사 오류 정정 디코더 및 이를 포함하는 메모리 시스템
US11088707B2 (en) 2019-06-29 2021-08-10 Intel Corporation Low density parity check (LDPC) decoder architecture with check node storage (CNS) or bounded circulant
US11515891B2 (en) 2020-12-22 2022-11-29 Intel Corporation Application of low-density parity-check codes with codeword segmentation
US11929762B2 (en) 2021-11-24 2024-03-12 Samsung Electronics Co., Ltd. Low density parity check decoder and storage device
KR102511827B1 (ko) * 2021-11-24 2023-03-21 삼성전자주식회사 Ldpc 디코더 및 스토리지 장치

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US283707A (en) * 1883-08-21 Machine
US7415079B2 (en) * 2000-09-12 2008-08-19 Broadcom Corporation Decoder design adaptable to decode coded signals using min* or max* processing
US7020829B2 (en) * 2002-07-03 2006-03-28 Hughes Electronics Corporation Method and system for decoding low density parity check (LDPC) codes
KR100543154B1 (ko) * 2002-07-26 2006-01-20 휴우즈 일렉트로닉스 코오포레이션 저밀도 패리티 검사 코드 생성 방법 및 시스템
US7436902B2 (en) * 2003-06-13 2008-10-14 Broadcom Corporation Multi-dimensional space Gray code maps for multi-dimensional phase modulation as applied to LDPC (Low Density Parity Check) coded modulation
JP2005045735A (ja) 2003-07-25 2005-02-17 Sony Corp 符号検出装置及び方法、復号装置及び方法、並びに情報処理装置及び方法
KR100809619B1 (ko) * 2003-08-26 2008-03-05 삼성전자주식회사 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법
KR20050046471A (ko) * 2003-11-14 2005-05-18 삼성전자주식회사 저밀도 패러티 검사 부호를 병렬 연접하는 채널부호화/복호화 장치 및 방법
CN100472972C (zh) * 2004-05-03 2009-03-25 美国博通公司 可操作地将ldpc编码信号解码的解码器
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
US7516390B2 (en) * 2005-01-10 2009-04-07 Broadcom Corporation LDPC (Low Density Parity Check) coding and interleaving implemented in MIMO communication systems
US7499490B2 (en) * 2005-06-24 2009-03-03 California Institute Of Technology Encoders for block-circulant LDPC codes

Also Published As

Publication number Publication date
EP1819054A3 (en) 2009-02-25
CN101079639B (zh) 2011-02-09
US20070220398A1 (en) 2007-09-20
JP2007208985A (ja) 2007-08-16
EP1819054A2 (en) 2007-08-15
CN101079639A (zh) 2007-11-28
US7886208B2 (en) 2011-02-08
KR20070079513A (ko) 2007-08-07
KR100899738B1 (ko) 2009-05-27

Similar Documents

Publication Publication Date Title
JP4402699B2 (ja) ノードメモリ基盤のldpcデコーダ及び復号方法
Casado et al. Informed dynamic scheduling for belief-propagation decoding of LDPC codes
US9075738B2 (en) Efficient LDPC codes
USRE44421E1 (en) Decoding apparatus for low-density parity-check codes using sequential decoding, and method thereof
US7133853B2 (en) Methods and apparatus for decoding LDPC codes
JP4199279B2 (ja) 低密度パリティ検査コードの符号化方法
US7454685B2 (en) Method and apparatus for decoding low density parity check code using united node processing
US7774674B2 (en) LDPC decoder for DVB-S2 decoding
CN107370490B (zh) 结构化ldpc的编码、译码方法及装置
US20070089018A1 (en) Error correction decoder, method and computer program product for block serial pipelined layered decoding of structured low-density parity-check (LDPC) codes, including reconfigurable permuting/de-permuting of data values
US8091013B2 (en) Multi-code LDPC (low density parity check) decoder
KR20070003294A (ko) 준순환 저밀도 패리티 검사 부호의 생성 방법 및 장치
US20200091933A1 (en) Iterative decoding with early termination criterion that permits errors in redundancy part
US10128869B2 (en) Efficient convergence in iterative decoding
KR101657912B1 (ko) 비이진 저밀도 패리티 검사 코드의 복호화 방법
Thameur et al. A survey on decoding schedules of LDPC convolutional codes and associated hardware architectures
TWI407703B (zh) 解碼器
Malema Low-density parity-check codes: construction and implementation.
Oh et al. Efficient highly-parallel decoder architecture for quasi-cyclic low-density parity-check codes
Zhao et al. A BER performance-aware early termination scheme for layered LDPC decoder
Zhu et al. Memory efficient LDPC code design for high throughput software defined radio (SDR) systems
KR20230029168A (ko) 비이진 저밀도 패리티 검사 코드 디코더, 그것의 동작방법 및 메모리 시스템
趙雄心 Research on LDPC Decoder Design Methodology for Error-Correcting Performance and Energy-Efficiency
Kienle et al. Joint graph-decoder design of IRA codes on scalable architectures [LDPC codes]
Xin et al. Serial FFT-BP LDPC decoding based on unsymmetrical message transmission

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090602

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090827

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: 20090929

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091029

R150 Certificate of patent or registration of utility model

Ref document number: 4402699

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: 20121106

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131106

Year of fee payment: 4

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