JP2009010970A - パリティチェックデコーダで使用するノードプロセサ - Google Patents

パリティチェックデコーダで使用するノードプロセサ Download PDF

Info

Publication number
JP2009010970A
JP2009010970A JP2008200437A JP2008200437A JP2009010970A JP 2009010970 A JP2009010970 A JP 2009010970A JP 2008200437 A JP2008200437 A JP 2008200437A JP 2008200437 A JP2008200437 A JP 2008200437A JP 2009010970 A JP2009010970 A JP 2009010970A
Authority
JP
Japan
Prior art keywords
node
message
value
variable
sum
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.)
Pending
Application number
JP2008200437A
Other languages
English (en)
Inventor
Tom Richardson
トム・リチャードソン
Vladimir Novichkov
ウラジミール・ノビチコフ
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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
Priority claimed from US09/975,331 external-priority patent/US6633856B2/en
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2009010970A publication Critical patent/JP2009010970A/ja
Pending legal-status Critical Current

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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • 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
    • 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
    • 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/1125Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using different domains for check node and bit node processing, wherein the different domains include probabilities, likelihood ratios, likelihood differences, log-likelihood ratios or log-likelihood difference pairs
    • 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/1134Full parallel processing, i.e. all bit nodes or check nodes are 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/1145Pipelined decoding at code word level, e.g. multiple code words being decoded simultaneously
    • 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/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6362Error control coding in combination with rate matching by puncturing
    • 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/6502Reduction of hardware complexity or efficient 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/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

【課題】LDPC符号を利用することにより、2進データ内のエラー検出および/またはエラー訂正を行う方法及び装置を提供する。
【解決手段】ハードウェアの実施構成を容易にするために、メッセージは1/2 ln2の整数倍に量子化される。メッセージは、コンパクト度の大きな可変ノードメッセージ表現形式と、コンパクト度の少ない制約ノードメッセージ表現形式との間で変換される。可変ノードメッセージ形式により、単純な加算と減算とによる可変ノードメッセージ操作の実行が可能となるのに対して、制約ノード表現により、単純な加算と減算による制約ノードメッセージ処理の実行が可能となる。累算器モジュールと、減算器モジュールと、遅延パイプラインとを用いて、可変ノードと制約ノードとが実現される。
【選択図】図13

Description

関連出願
本願は、米国仮出願第60/328,469号(2001年10月10日出願)の利益と、米国仮出願第60/298,480号(2001年6月15日出願)の利益とを主張するものであり、米国特許出願明細書第09/975,331号(2001年10月10日出願)の一部継続特許である。上記特許の各々は本願で参照により援用される。
発明の分野
本発明は、例えば、低密度パリティチェック(LDPC)符号のようなパリティチェック符号を利用することにより、2進データ内のエラー検出および/またはエラー訂正を行う方法及び装置を目的とする。
背景
エラー訂正符号は、通信及びデータ記憶システムに遍在するものである。最近、低密度パリティチェック(LDPC)符号として公知の符号の種類に相当の関心が生れている。
LDPC符号は、タナー(Tanner)グラフとしばしば呼ばれる2部分グラフにより好適に表される。このグラフでは、一方の組のノード(可変ノード)は符号語(codewords)のビットに対応し、チェックノードと呼ばれることもある他方の組のノード(制約ノード)は、符号を定義するパリティチェック制約条件の組に対応する。上記グラフのエッジは可変ノードを制約ノードに接続させる。グラフのエッジにより接続している場合、可変ノードと制約ノードは隣接ノードと言われる。説明を簡略にするために、本願では、一対のノードは多くて1つのエッジに接続しているものと一般に仮定する。夫々の可変ノード(each variable node)に対して1ビットの符号語が対応づけられる。場合によっては、符号語からこれらのビットの若干をパンクチャする(除去する)こともある。説明を簡略にするために、本願ではパンクチャリングを利用しないものと一般に仮定する。
夫々の制約ノードに対して、(可変ノードとビットとの対応によって)制約ノードと隣接するビット0モジュロ2のサムとなる場合、すなわちビットが偶数個の1を含む場合、かつ、この場合に限って、可変ノード列と1対1で対応するビット列が当該符号の符号語となる。
エッジに沿ったグラフの範囲内のメッセージの交換を行い、着信メッセージに基づくノードでの計算によりこれらのメッセージの更新を行うことによって、LDPC符号語の復号化に用いられるデコーダおよび復号化アルゴリズムが作動する。このようなアルゴリズムは一般にメッセージ受け渡しアルゴリズムと呼ばれる。グラフ内の各可変ノードには、受信値と命名されるソフトビットが最初に与えられる。このソフトビットは、通信チャネルなどからの観察により決定されるような、対応ビット値の推定値を示すものである。夫々のビット(separate bits)の推定値は統計的に独立したものであることが理想的である。この理想は満たされない場合が多く、実際に満たされていない。受信値(received values)の収集により受信語(received word)が構成される。本願の目的として、受信装置などが通信システムで観察した信号を受信語と特定することができる。
可変ノードや制約ノードなどのノードに結合するエッジの数は、ノードのレベル(the degree of the node)と呼ばれる。正則グラフや正則符号はすべての可変ノードが同一のレベル、jなど、を有するものであり、すべての制約ノードは同一のレベル、kなど、を有する。この場合、上記符号は(j,k)正則符号であると言うことができる。これらの符号は、最初、Gallager(1961年)により発明されたものであった。“正則”符号とは対照的に、非正則符号とは異なるレベルの制約ノードおよび/または可変ノードを持つ符号である。例えば、可変ノードのなかには、レベル4の可変ノードもあれば、レベル3の可変ノードもあり、さらにレベル2の可変ノードもある。
非正則符号はその表現および/または実現がより複雑となる場合があるのに対して、非正則LDPC符号の方は、正則LDPC符号と比べると、優れたエラーの訂正/検出性能を示すことが可能であることが証明されている。
復号化処理についてさらに正確な説明を行うために、本願ではLDPCグラフの記述に際してソケットという考えが導入される。ソケットとは、グラフ内のエッジをグラフ内のノードに対応するものと解釈することができる。各ノードには、夫々のエッジについて1個のソケットがあり、夫々のエッジは上記ソケットに結合し、これらのエッジはソケットの中へ“プラグイン”される。したがって、レベルdのノードは、このノードに結合するd個のソケットを持つことになる。グラフがL個のエッジを有する場合、可変ソケットと呼ばれるL個のソケットがグラフの可変ノード側に設けられ、制約ソケットと呼ばれるL個のソケットがグラフの制約ノード側に設けられる。特定及び順序づけを行う目的のために、可変ソケットに1、...、Lと番号を付けることができる。これによって可変ノードに結合する可変ソケットが連続して出現することになる。このような場合、最初の3個の可変ノードが、それぞれ、レベルd1、d2、d3を持っていれば、可変ソケット1、...、dは第1の可変ノードに結合し、可変ソケットd+1、...、d+dは第2の可変ノードに結合し、可変ソケットd+d+1、...、d+d+dは第3の可変ノードに結合する。制約ノードソケットにも同様に1、...、Lと番号を付けることが可能であり、1つの制約ノードに結合する制約ソケットが連続して出現する。エッジは、ソケットのペアリングと見ることができる。このペアリングはグラフの各々の側から伸びる夫々の対からなるものである。したがって、グラフのエッジはインタリーバすなわちグラフの一方の側、例えば可変ノード側などから他方の側、例えば制約ノード側などへのソケットに対する順列を表す。これらのシステムと関連する順列は複雑なものとなる場合が多い。
長さ10とレート1/2とから成る(3,6)正則LDPC符号を確定する例示の2部分グラフ100が図1に示されている。長さ10は、10個の可変ノードV〜V10が存在することを示し、夫々の可変ノードは符号語X〜X10の1ビットと特定され(この場合、パンクチャリングは行われない)、一般に参照番号102によって特定される。レート1/2は、可変ノードの数の1/2のチェックノードが存在することを示す。すなわち、参照番号106によって特定される5個のチェックノードC〜Cが存在する。後述するように、レート1/2は、5個の制約条件が線形的に独立していることをさらに示す。ライン104の夫々のラインは、チェックノードと可変ノードとの間の通信路や接続部などのエッジを表し、上記各ラインは上記エッジに接続する。各エッジによって、可変ソケットと制約ソケットの2つのソケットが特定される。エッジには、その可変ソケットやその制約ソケットに基づいて番号を付けることができる。可変ソケットが可変ノードに接続するノードポイントで可変ノード側にエッジの順序が出現するように、可変ソケットの番号付けは(最上部から底部への)エッジの順序に対応している。制約ソケットが制約ノードに接続しているノードポイントで制約ノード側にエッジの順序が出現するように、制約ソケットの番号付けは(最上部から底部への)エッジの順序に対応している。復号化中、メッセージはエッジに沿って双方向に受け渡される。したがって、復号化処理の一部として、制約ノードから可変ノードへエッジに沿ってメッセージの受け渡しが行われる。また、可変ノードから制約ノードへの逆の受け渡しの場合も同様のメッセージの受け渡しが行われる。
グラフを用いて符号を表す代替例として、図2に図示のような行列表現の利用がある。符号の行列表現では、パリティチェック行列と一般に呼ばれる行列H202には、関連するエッジ接続と、可変ノードと、制約ノード情報とが含まれる。説明を簡略にするために、本願では多くて1つのエッジが任意の一対のノードに接続すると仮定している。行列Hでは、夫々の列は可変ノードのうちの1つのノードに対応し、一方、夫々の行は制約ノードのうちの1つの制約ノードに対応する。例示の符号には10個の可変ノードと5個の制約ノードとが存在するため、行列Hには10個の列と5個の行とが含まれる。エッジがグラフ内に存在すれば、すなわち、2個のノードが隣接ノードであれば、特定の可変ノードと特定の制約ノードとに対応する行列のエントリは1にセットされ、2つのノードが隣接ノードでなければ、行列のエントリは0にセットされる。例えば、可変ノードVはエッジによって制約ノードCに接続しているため、‘1’が行列202の最上位左手コーナーに配置される。これに対して、可変ノードV4は制約ノードCに接続していないため、‘0’が行列202の第1の行の第4の位置(position)に配置され、対応する可変ノードと制約ノードとが接続していないことが示される。Hの行がGF[2]にわたって線形的に独立したベクトルであれば、制約条件は線形的に独立していると言える。可変ソケットであれ、制約ソケットであれ、ソケットによるエッジの番号付けはH内の‘1’の番号付けに対応する。行列208に図示のように、可変ソケットの番号付けは、列内での最上部から底部への番号付けと、左から右への列から列への処理とに対応する。行列210に図示のように、制約ソケットの番号付けは、行の両端にわたる左から右への番号付けと、行から行への最上部から底部への処理とに対応する。
行列表現の場合、送信対象の符号語Xは、処理対象の符号語のビットX〜Xを含むベクトル206として表すことができる。行列206と202との積が0に等しい、すなわちHx=0の場合、かつ、この場合に限って、ビット列X〜Xは符号語である。
LDPCグラフに対応する符号語について解説するという文脈では、場合によっては符号語のパンクチャリングを行う場合もあると理解すべきである。パンクチャリングは、符号語からビットを除去して、より短い符号語を実際に発生させる(yield)アクションである。LDPCグラフの場合、これは、グラフ内の可変ノードのいくつかが、実際には送信されないビットに対応することを意味する。これらの可変ノードと、これら可変ノードに対応するビットとは状態変数と呼ばれることが多い。パンクチャリングを利用する場合、通信チャネルを介して物理的に通信されない符号語部の再構成を行うために、デコーダを用いることができる。パンクチャされた符号語を送信する場合、受信装置は脱落している受信語の値(ビット)を最初にポピュレートすることができ、例えば恣意的に1か0が割り当てられるが、これらの値が完全に信頼できるものではないという旨の、すなわち、上記値が削除されるという旨の表示(ソフトビット)が伴う。簡略のため、これらの受信機にポピュレートされた値は、これらの値の使用時に処理対象の受信語の一部であると本願では仮定する。
例えば、図3に図示のシステム350について考えてみる。システム350は、エンコーダ352と、デコーダ357と、通信チャネル356とを備える。エンコーダ350は、入力データAを処理して符号語Xを形成する(produce)符号化回路353を備える。符号語Xには、エラー検出および/またはエラー訂正を目的として若干の冗長性が含まれている。通信チャネルを介して符号語Xを送信してもよい。或いは、何らかのデータ選択技術によりデータ選択装置354を介して符号語Xを分割して、それぞれ第1部分と第2部分X’、X”にすることができる。次いで、通信チャネルを介して符号語部分のうちの一方の部分、例えば第1部分X’などをデコーダ357を備えた受信機へ送信しながら、第2部分X”をパンクチャすることもできる。通信チャネル356により生じた歪みの結果、送信済みの符号語の部分が紛失したり、破損したりする可能性がある。デコーダから見ると、パンクチャされたビットは紛失ビットと解釈することもできる。
受信機では、ソフトビットが受信語の中へ挿入され、紛失ビットやパンクチャビットにとって代わる。この挿入済みソフトビットは、X”ビットの削除および/または送信時の紛失ビットを示す。
デコーダ357は、受信語Yと任意の挿入済みソフトビットとからなる完全な符号語Xの再構成を図り、次いで、データ復号化処理を実行して、上記再構成した符号語XからAを形成する。
デコーダ357は、受信語Yと任意の挿入済みソフトビットとからなる完全な符号語Xを再構成するための、LDPCデコーダなどのチャネルデコーダ358を備えている。さらに、デコーダ357は、符号語の中に含まれる冗長な情報を取り除いて、上記再構成した符号語Xから元の入力データAを形成するためのデータデコーダ359を備えている。
受信語に対してLDPC復号化処理、例えばエラー訂正処理とエラー検出処理などを実行することにより、LDPC符号化と関連して生成された(generated)受信語を処理して、再構成したバージョンの元の符号語を生成(generate)できることが理解される。次いで、この再構成した符号語に対してデータの復号化を行い、符号化した原データの回復を行うことができる。データ復号化処理は、上記再構成済みの符号語からある特定のサブセットのビットを単純に選択するなどの処理であってもよい。
上述のように、LDPC復号化処理には一般にメッセージ受け渡しアルゴリズムが含まれる。多くのおそらく有用なメッセージ受け渡しアルゴリズムが存在するが、このようなアルゴリズムの利用はLDPC復号化に限定されるものではない。以下詳細に後述するように、本発明は、多くの状況で非常に良好で最適に近いパフォーマンスを示すことが多い簡単な、例えば複雑さの少ないハードウェアによるデコーダアルゴリズムの実施構成を提供する方法および装置を目的とするものである。本発明が提案するアルゴリズムは、周知の信頼度伝播アルゴリズムに近似したものと見ることができる。
以下のセクションで解説する本発明を容易に理解するために、信頼度伝播について以下簡単に数学的説明を行う。
(2進)LDPC符号の信頼度伝播は以下のように表現できる。グラフのエッジに沿って送信されるメッセージは、可変ノードに対応するビットの対数尤度 log p/p と解釈される。ここで、(p,p)は対応ビットに対する条件つき確率分布を表す。但しpは当該ビットが値xをとる確率を示す。受信機がデコーダへ出力するソフトビットも対数尤度の形で示される。したがって、これらの受信値すなわち受信語の要素は、通信チャネルが出力するビットの観察に対して条件付けられる対応ビットの対数尤度となる。一般に、メッセージmは対数尤度mを表し、受信値yは対数尤度yを表す。パンクチャされたビットの場合、対数尤度受信値yは0にセットされ、p=p=1/2を示す。
次に、信頼度伝播のメッセージ受け渡し規則について考えることにする。メッセージは、チェックノードから可変ノードへのメッセージに対してはmC2Vによって示され、可変ノードからチェックノードへのメッセージに対してはmV2Cによって示される。d個のエッジを持つ可変ノードについて考えることにする。夫々のエッジj=1,...,dについて、mC2V(i)はエッジiの着信メッセージを示すものとする。復号化処理の初期化時に、本願ではすべてのエッジに対してmC2V=0とセットする。一般に、可変ノードからの出力メッセージはmV2C(j)= y + (Σd i=1C2V(i))-mC2V(j) によって示される。この演算に対応する(エッジメッセージではない)ノードから得られる出力用復号化ソフト値は xout =y + (Σd i=1C2V(i))によって示される。この出力に対応する出力用ハード決定はxoutの符号から得られる。
チェックノードにおいて、チェックノードの‘符号’と絶対値とを用いてメッセージを表すようにする方が好都合である場合が多い。したがって、メッセージmに対して、m∈GF[2]はメッセージの‘パリティ’を示すものとする。すなわち、m 0ならばm=0、m<0ならばm=1となる。さらに、m∈[0,∞]はmの絶対値を示すものとする。したがって、
Figure 2009010970
が得られる。チェックノードにおいて、mの更新値とmの更新値とは別個の値となる。本願では、レベルdのチェックノード用として、以下の式が得られる:
Figure 2009010970
但し、すべての加算がGF[2]にわたって行われ、
Figure 2009010970
但し本願では、F(x):=ln coth(x/2)と定義する。上記双方の式では、上付添字V2Cは制約ノードにおける着信メッセージを示す。本願では、Fはそれ自身の逆数、すなわち、F−1(x)=F(x)であることに留意されたい。
発明の概要
本発明は、メッセージ受け渡し復号化技術と関連して利用される復号化処理の実行方法および装置を目的とするものである。本発明の技術はLDPC符号に関して使用するのに特に適している。
本願の背景についてのセクションで、本願出願者は、LDPC復号化と関連して利用可能な信頼度伝播アルゴリズムに関する数学的記載を行った。上記記載によれば、アルゴリズムの実行時に遭遇する主要な困難は関数Fとその逆関数に関わるものであることは明らかである。その他の必要な処理は実行が比較的簡単なものとなる傾向がある。
LDPCデコーダのハードウェア実施構成を容易にするために、本発明のいくつかの実施形態では、対数尤度値が1/2 ln2の整数倍に量子化される。例えば、対数尤度値は対数尤度比またはその近似値としてもよい。
対数尤度比は以下のように説明することができる。xをビットとする。おそらく他のビットと共にxは信号として送信され、受信機が結果としてzを観察したと仮定する。xの対数尤度比は
Figure 2009010970
と定義される。但し、p(z|x=i)は、条件x=iの場合にzが観察される条件つき確率を示す。信号設定方式、チャネルモデルなどに応じてyを計算するための多くの可能な方法および形態が存在する。xに対する2つの可能性が事前に予想されると仮定すると、その尤度比
Figure 2009010970
はzが既知の場合のxの事後の確率すなわち
Figure 2009010970
に等しくなる。したがって、本願では対数尤度比を単にy=log p/p と示す場合が多い。但し、pはx=iという条件つき確率を示す。本発明の様々なLDPC復号化の実施形態が行われる間、本願では、このような対数尤度比(メッセージなど)が少なくとも近似的に計算される。但し、条件設定情報は夫々の反復に伴って増加する。
実際のデジタルメッセージ受け渡し用デコーダの実施構成では、デコーダメッセージは有限個のビットにより表される。本発明に基づく量子化の利用を予想して、本願では、スケーリングパラメータδを導入する。記載した本発明の例示実施構成では、メッセージは整数mであり、メッセージは対数尤度mδで表されると解釈される。したがって、例示の実施形態では、本発明のメッセージは整数であり、この整数は、本発明に基づいてδによりスケールされて、対応する対数尤度が確定される。
本発明に基づいて、本願では、実施にさらに適した別の関数に関数Fを置き換えることにより、本願の発明の背景のセクションで記載した関数Fへの近似が行われる。種々の実施形態では、本願で論じている最初の近似値はその逆数と共にわずかに修正される。そのため結果を出力するデコーダは真の信頼度伝播デコーダに近いパフォーマンスを示すことになる。
下記のように、e−δxでF(δx)を級数展開することにより上記近似という考えを理解することができる。
Figure 2009010970
したがって、δxの大きな値に対して、関数ln(coth(δx/2))を2e−δxで十分に近似させることが可能となる。本発明の目標が複雑さの少ない実施構成を見つけ出すことであるということを考えると、2e−δxによる関数F(x)の近似はきわめて魅力的である。F(x)を2e−δxと単に置き換えれば、チェックノード更新の絶対値部分は下式の形をとることになる:
Figure 2009010970
但し[x]はxの整数部を示す。
δ=ln2を選択した場合、チェックノードの信頼性の更新に必要な計算が特に単純となり、加算演算とシフト演算とを利用する実施構成が可能になることに留意されたい。おおよそ1/5よりも大きな符号レートに対して、δ=ln2をセットすることにより、ほぼ最大の信頼度の伝播パフォーマンスを達成するのに十分な解決が得られるということがわかる。低いレートの場合、この量子化はあまりに粗すぎるものとなり、δ=1/2 ln2をセットする方が望ましい場合もある。このようにδを選ぶ主な利点として、ln演算の計算が大幅に単純化できるという点が挙げられる。
δ=ln2の場合について考える。この場合、制約ノードの更新計算は下式の形をとる:
Figure 2009010970
本願で使用するのは対数関数の整数部であるため、プライオリティエンコーダとしてこの関数を実行することができる。すなわち、前提とする2進表現で第1の‘1’の場所(location)を単に確定するだけでこの関数の実行が可能となる。
2e−δxによるln(coth(δx/2))の近似は、δxが小さな値の場合、結果として比較的大きな誤りを生じる可能性がある。順関数と逆関数とを穏やかに調整することによりある程度のエラーの補正を行うことが可能となる。さらに詳しく言えば、制約ノードの更新中に小さなオフセットの印加が可能であり、本発明の種々の実施形態ではこのようなオフセットが印加される。上記により、更新計算は下式の形をとる:
Figure 2009010970
さらに、可変ノードでは上記更新計算は下式の形をとる:
Figure 2009010970
但し、CとCは定数であり、“priority”とは、議論している適切な2進表現で第1の‘1’を見つける処理を意味する。プライオリティエンコーダの意味と例示の実施構成に関しては以下の詳細な説明でさらに詳述する。
以下ハードウェアについて考察を行う。変換については当面無視して、メッセージ更新を行うための主計算が、単純化された形の下式を持つことに留意されたい。
Figure 2009010970
本願は、時間的に連続するメッセージ受け渡し処理の実行を提案するものである。着信メッセージは、例えばクロックサイクル当たり1メッセージずつ着信する。したがって、クロックサイクル当たり1つの出力エッジメッセージを形成することができる効率的なパイプライン構造を設けることが望ましい。本発明には、上記計算の役割を上述のように実現する特別の構造、ノードプロセッサ、についての記載も含まれる。この特定の実施構成によってメッセージの受け渡し処理の効率的、能率的計算が行われる。
発明の詳細な説明
上述のように、LDPCデコーダの実施形態という文脈で、説明を目的として本発明の復号化方法および装置について記載する。図4と図5を参照しながら、LDPC符号の復号化に関係するステップについて最初に説明し、次いで本発明のさらに詳細な説明を行う。
図4は2部分グラフ400を用いて例示の非正則LDPC符号を示す図である。このグラフにはm個のチェックノード402と、n個の可変ノード406と、複数のエッジ404とが含まれる。チェックノードと可変ノードとの間のメッセージがエッジ404を介して交換される。受信語Yに対応するソフト入力ビットy〜yと、ソフト(またはハード)出力X〜Xとが参照番号408によって示されている。m番目のチェックノードは参照番号402’を用いて特定され、n番目の可変ノードは参照番号406’を用いて特定され、一方、n番目のソフト入力yと、n番目のソフト出力xとはそれぞれ参照番号410、409を用いて図4に示されている。
可変ノード406は、受信語y,...,yから得られる入力ソフト値と共に制約ノード402からのメッセージを処理して、可変ノードに対応する出力変数x,...,xの値を更新し、制約ノード用メッセージを生成する。夫々の可変ノードに接続する夫々のエッジ用の可変ノードにより1つのメッセージが生成される。上記生成されたメッセージは、エッジに結合する制約ノードへエッジに沿って可変ノードから送信される。説明を目的として、可変ノードから制約ノードへのメッセージは、本願では時々刻々略語V2Cを用いて示すことがある。一方、制約ノードから可変ノードへのメッセージは略語C2Vを用いて示す。この略語のV成分とC成分とに対して添字を加えて、特定のメッセージのソース/宛先として役立つ可変ノードと制約ノードのうちの特定の一方のノードを示すようにしてもよい。各制約ノード402は、エッジを介して可変ノードから受信したメッセージを処理する責任を果たす。可変ノードから受信したV2Cメッセージは制約ノード402により処理され、次いで、各制約ノードに結合するエッジに沿って返送されるC2Vメッセージが生成される。次いで、可変ノード406はソフト入力値と共にC2Vメッセージを処理し、新たなV2Cメッセージを生成し、送信し、次いでソフト出力xを生成する。可変ノード406での処理実行シーケンスには、チェックノード402へ生成済みメッセージを送信するステップと、可変ノードでソフト出力xを生成するステップと、チェックノードからメッセージを受信するステップとが含まれ、可変ノード406からの出力xによって、符号語が首尾よく復号化されたことが示されるまで、あるいは、固定メッセージの受け渡し反復回数の終了などの何らかの別の停止基準が満たされるまで、上記シーケンスを繰り返し、すなわち反復して実行してもよい。上述の処理シーケンスは、記載の順序で厳密に行う必要はないと理解すべきである。ノード処理は非同期的に進行してもよく、また、可変ノード処理と制約ノード処理とを同時に行ってもよい。それにもかかわらず、反復処理の論理フローは上述のものと同様のものとなる。
メッセージV2CおよびC2Vは、各々Kビットなどの1ビット以上であってもよい。但しkはゼロでない正の整数値である。同様に、ソフト出力xは1ビット以上であってもよい。マルチビットメッセージとマルチビット出力とによって、上記メッセージまたは出力の信用性情報または信頼性情報を中継する機会が与えられる。マルチビット(ソフト)出力の場合、ソフト出力値の符号を用いて、復号化済み符号語のビットなどの、可変ノードに対応する復号化処理の単一ビットハード出力を行ってもよい。出力ソフト値は、復号化ソフト値に対応するものであってもよいし、或いは、LDPCデコーダが唯一のモジュールである別のさらに大きな反復処理時に使用することも可能ないわゆる非本質的情報(対応する入力情報を除外する)に対応する値であってもよい。
LDPC符号に対応する反復メッセージ受け渡し処理について図5a〜5dを参照しながら以下さらに解説する。
LDPC符号の復号化時に、夫々の制約ノードと可変ノードでの処理を独立に実行することも可能である。したがって、復号化処理の特定の反復に対して可変ノード処理と制約ノード処理のいくつかまたはすべてが終了するまで、可変ノード処理および/または制約ノード処理は例えば一度に1ノードずつ順番に実行してもよい。これによって、単一装置の処理用ハードウェアを設け、このハードウェアを再使用して、所望の場合、可変ノードおよび/または制約ノードの各々に対応する処理の実行が可能となる。LDPC復号化の別の重要な特徴として、特定の処理反復中に使用されるV2CとC2Vメッセージは、例えば同一処理の反復中に、同時に生成されている必要がないという点が挙げられる。これによって、利用メッセージの最後の更新以来の遅延時間に関わりなく、非同期的におよび同時に制約ノード処理と可変ノード処理とを実行できる実施構成が可能となる。すべての可変ノードと制約ノードとが受信メッセージを処理し、更新メッセージの生成に十分な数のメッセージ更新と反復とを実行した後、可変ノードの(ハード)出力は収束し、グラフが適切に設計され、処理中の受信語の中に残りの未訂正のエラーが存在しないと仮定される。
夫々のチェックノードと可変ノードにおける処理を独立の処理と見ることができると仮定して、単一の例示チェックノードC502’と可変ノードV506’とで実行する反復処理について図5a〜5dを参照しながら以下さらに詳述する。説明を目的として、本願では量子化した信頼度伝播アルゴリズムが仮定されている。したがって、受信値と受信メッセージとは実数である。正の数はハードビット決定0に対応し、負の数はハードビット決定1に対応する。絶対値が大きければ大きいほど高い信頼性が示される。したがって、数0は絶対的信頼性の無さ(unreliability)を示し、(正負の)符号は無関係になる。このアルゴリズムで実行する計算の詳細については上記セクションに記載されている。
図5aはLDPC復号化処理時の初期ステップを示す。最初、処理対象の受信語から、受信値(対数尤度を表す1以上のビット)yなどのソフト入力が可変ノードV506’に出力される。復号化処理の開始時のC2Vメッセージと、ソフト出力X509とが最初0にセットされる。ゼロ値C2Vメッセージと入力yなどの受信した入力に基づいて、可変ノードV506’は、この可変ノードに接続している夫々のチェックノード用の1つのV2Cメッセージを生成する。一般に、初期のステップでは、これらのメッセージの各々はyに等しい。
図5bで、可変ノードV506’に接続するエッジの各々に沿って送信されている生成済みV2Cメッセージが示されている。したがって、チェックノードC502’を含む可変ノードV506’と結合されたチェックノード502の各々へ更新済みV2Cメッセージが送信される。
V2Cメッセージの生成に加えて、可変ノード処理の結果として、この処理を行う可変ノードに対応するソフト出力X509’の更新が行われる。ソフト出力Xの更新状態が図5cに示されている。異なるステップとして示してはいるが、V2Cメッセージの出力と同時にソフト出力の出力を行ってもよい。
以下さらに後述するように、本発明のいくつかの実施形態によれば、ソフト出力(あるいはソフト出力の対応するハード決定)を用いて、受信語から符号語をいつ回復したか、すなわちパリティ制約条件が出力値によっていつ満たされたかを判定するようにしてもよい。これによって、(得られた符号語が不正確である、すなわち、送信された符号語ではない場合はあるものの)首尾よく復号化が行われ、それによって、ある一定の最大許容回数のメッセージ受け渡し反復が終了する前に、タイミングの良く反復復号化処理の停止が可能となる。
チェックノードC502’などのチェックノードは、該チェックノードに接続しているエッジに沿ってV2Cメッセージを受信するとすぐに、チェックノード処理の実行が可能となる。受信したV2Cメッセージはチェックノードで処理されて、更新済みC2Vメッセージを生成し、特定のチェックノードに接続する夫々のエッジに対して1つのC2Vメッセージが生成される。チェックノード処理の結果として、エッジに沿って可変ノードへ返送されるC2Vメッセージは、チェックノードに接続するもう一方のエッジで受信したV2Cメッセージの各々の値に依って変化するが、上記C2Vメッセージは、上記C2Vメッセージを送信している送信先の特定の可変ノードから受信したV2Cメッセージに依って(通常また好ましくは)変化することはない。したがって、C2Vメッセージを用いて情報の送信が行われる。この情報は、上記メッセージが送信される送信先ノード以外の可変ノードから受信したメッセージによって生成されるものである。
図5dは、ノード506’を含む可変ノードへの更新済みC2Vメッセージの受け渡しを示す。特に、図5dには、制約ノードC502’が、更新済みC2Vメッセージを可変ノードV506’へ出力しながら、2つの更新済みC2Vメッセージを出力している状態が示されている。V506’は、V506’が接続する別の制約ノードから追加の更新済みC2Vメッセージも受信する。
更新済みC2Vメッセージの受信時に、可変ノード処理を繰り返して、上記更新済みV2Cメッセージとソフト出力との生成が可能となる。次いで、デコーダの停止基準が満たされるまで、C2Vメッセージの更新をさらに繰り返すことなども可能である。
したがって、図5a〜5dに図示の処理は、復号化処理が停止されるまで、初期値ではなく更新済みメッセージ値を用いて第1の反復後に繰り返される。
本発明は、受け渡されるメッセージの形式と、これらのメッセージに対して実行される計算と、これらの計算を実行するハードウェア構造とに関する。本発明を文脈の中で説明するために、LDPCデコーダの実施構成について簡単に述べる。この実施構成は例示を目的とするものである。効率的な実施構成アーキテクチャについては、“LDPC符号の復号化方法および装置”という名称の米国特許出願明細書第09/975,333号(2001年10月10日出願)に解説されている。この特許は本願に参照により明白に援用されている。
本発明の1つの特徴によれば、メッセージ受け渡し復号化用入力値yは、1/2 ln2の整数倍となるように量子化した対数尤度値の形をとる。量子化対数尤度値の生成は受信値の処理を含むものであってもよい。この受信値から、尤度比やその近似値などの対数尤度値が生成される。次いで、これらの対数尤度値は、1/2 ln2の整数比のステップサイズを用いて量子化され、量子化対数尤度値が生成される。これらの対数尤度値は、種々の実施形態で、対数尤度比またはその近似値となる。このような量子化された対数尤度比を利用することによりデコーダの実施構成が容易になる。
尤度比などの量子化対数尤度値を受信値から生成する回路は、受信機の中へ直接組み込むことも可能である。この受信機は、図6に図示のデコーダ600などの本発明のメッセージ受け渡し用デコーダに先行する通信チャネル356の一部を形成する。
様々な回路を用いて、本発明に基づく量子化対数尤度比を生成してもよい。以下図15を簡単に参照すると、受信値yinから量子化された対数尤度比yを生成する例示回路1500が示されている。図15の回路は、付加ガウスノイズが存在するBPSK(+1,−1)シグナリングのケースに適している。この場合、夫々の受信値は対応ビットの対数尤度比に比例すると仮定することができる。このような場合、単にある定数の逓倍により受信値を対数尤度比に変換することも可能である。
値yinは、受信回路が受信した値であってもよい。この受信値を処理して、本発明のメッセージ受け渡し用デコーダが出力した対数尤度比yが作られる。回路1500は、(2/s)だけ入力値Yinを逓倍して対数尤度比を生成する乗算器1502を備える。但しsは、通信チャネルが受信信号の中へ導入する付加ガウスノイズに対応する定数である。この結果生じる対数尤度比は次いで量子化装置1504により量子化され、1/2 ln2の整数倍となる。乗数1502が生成する対数尤度比を1/2 ln2により除し、次いで、絶対値が15を上回る場合には、+15または−15までこの結果を飽和し、上回らない場合には、量子化した対数尤度比yとして上記結果値の5lsbs(最下位ビット)をとることにより量子化装置1504を実現することができる。次いで、デコーダ回路600への入力としてこの量子化対数尤度比Yを出力することができる。
図6は、一度に1エッジずつ、メッセージ処理操作を順次実行する単純な直列デコーダ600を描くものである。LDPCデコーダ600は、デコーダ制御モジュール610と、V2Cエッジメモリ630と、C2Vエッジメモリ650と、可変ノードプロセッサ620と、制約ノードプロセッサ640と、出力バッファ660とを備える。本発明に関して説明を簡略にするために、本願では、デコーダは一定の反復回数の間作動する、つまり収束検出を行わないものと仮定する。
V2Cエッジメモリ630とC2Vエッジメモリ650は夫々、1つのエッジに対応する夫々のKビット場所(each K bit location)を備えたLKビットメモリ場所(L K bit memory locations)を含み、ここでLは、使用LDPCグラフ内のエッジの総数であり、Kはエッジに沿って交換されるメッセージ当たりのビット数である。出力バッファ660には、可変ノード出力値xを記憶するメモリが含まれる。この可変ノード出力値xはハード(1ビット)値またはソフト(1以上のビット)値のいずれであってもよい。
デコーダ制御モジュール610には記憶された形のグラフを記述する情報が含まれる。デコーダ制御モジュール610は、以下に説明するようなメッセージ受け渡し制御のためにこの情報を利用する。各受信値とメッセージはKビットから構成されるものと仮定する。デコーダは連続して作動する。デコーダは可変ノード更新をまず実行し、次いで、制約ノード更新処理を実行する。デコーダは、このサイクルをある一定回数繰り返し、最終の可変ノード更新後に終了する。最初に、C2Vメッセージメモリが0でポピュレートされる(可変ノード処理と制約ノード処理とが物理的に同時に行われることに留意されたい。上述の順序は処理中の情報のフローを示すものである。)
以下可変ノードの更新について説明する。デコーダ制御モジュール610は、可変ノードソケットの順序でC2VメッセージメモリからC2Vメッセージの読み出しを行わせ、このC2Vメッセージを可変ノードプロセッサ620へ配信させる。デコーダ制御モジュール610は、当該時点にどのメッセージを読み出すべきかを示すメッセージ識別子(例、メモリ場所やポインタなど)をC2Vエッジメッセージメモリ650へ信号で送信する。図1を参照すると、例えば、可変ノードプロセッサ620へ配信される最初の3個のメッセージは可変ノードvへ着信するメッセージである。可変ノードプロセッサ620へ配信される次の3個のメッセージは可変ノードvへ着信するメッセージ、等々である。
所定ノードのメッセージは可変ノードプロセッサ620により処理される。可変ノードプロセッサ620は、デコーダ制御モジュール610から信号、ノード境界を示すノードクロック信号、を受信する。この信号は、可変ノードプロセッサに対して、現在処理されているノードのレベルについて実際に知らせる。特定ノードに対応する最後の着信メッセージの着信と完全に一致した時点で上記信号は送信可能であり、種々の実施形態で送信されている。
ノード更新計算は可変ノードプロセッサ620で実行される。発信用V2Cメッセージは、可変ソケット順に、すなわち着信メッセージのエッジ順に対応する順序で送出され、V2Cエッジメッセージメモリ630に記憶される。ソフト出力値やハード出力値は出力バッファ660に記憶される。可変ノード更新の終了時に、この更新が最後の更新でなければ、デコーダは制約ノード更新の実行へ進む。
以下制約ノードの更新について説明する。制約ノードの更新は、可変ノードの更新の場合と非常に似ているので簡単に説明する。デコーダ制御モジュール610は、V2Cメッセージメモリ630からのV2Cメッセージの読み出しを制約ソケット順に行わせ、制約ノードプロセッサ640への配信を行わせる。デコーダ制御モジュール610は、どのメッセージを読み出すかを示すメッセージ識別子(例、メモリ場所)をV2Cエッジメッセージメモリ630へ信号で送信する。所定の制約ノード向けのメッセージは制約ノードプロセッサ640により処理される。制約ノードプロセッサ640は、ノード境界を示すデコーダ制御モジュール610から信号、ノードクロック信号を受信する。発信用C2Vメッセージは、制約ソケット順に、すなわち着信メッセージのエッジ順に対応する順序で送出され、これらのメッセージはC2Vエッジメッセージメモリ650に記憶される。
可変ノード更新と制約ノード更新とには共に完全な反復が含まれる。(前述したように、可変ノード処理と制約ノード処理とを同時に行ってもよい。)
図6に図示の例示LDPCデコーダシステム600という文脈で、本発明の様々なノードプロセッサ特性について以下説明する。本願では、本発明によるLDPC復号化に利用可能な或る特定の組からなる計算とメッセージ形式とについて説明する。所定のノード用の複数のメッセージまたはすべてのメッセージが同時にプロセッサに着信し、複数のメッセージまたはすべてのメッセージのノード処理が同時進行する並列実施構成において、図6の直列デコーダにおけるノードプロセッサの実現時に説明したものと同じ計算が利用可能であることを理解されたい。さらに、ノードプロセッサを複製して、いくつかのノードの並列処理を同時に行うことも可能である。
本発明を具現化する例示の5ビットメッセージをベースとするアルゴリズムについて詳細な説明を行う。入力ソフト値とメッセージとは対数尤度比の形をとり、本発明に基づいてδ=ln2の倍数で量子化される。したがって、5ビットのメッセージは、生じ得る整数値{−15、−14,...,−1、0、1,...,+15}を表す。実際には、“符号と絶対値”としてこれらのソフト値を表すと都合がよい。符号は、対応するビットに対して、対応するハード決定などの優先値を示す値0または1をとる。絶対値は符号の信頼性を示す:絶対値が大きいほど高い信頼性を示すものとなる。(あるM<15について、入力ソフト値の絶対値を{0,1,...,M}の範囲に限定することは一般に優れた着想である。上記表現では、符号0を持つ‘0’絶対値と符号1を持つ‘0’絶対値の2つの‘0’絶対値が実際には存在することにも留意されたい。)したがって、本願の例では、mが符号ビットを示し、mが信頼性を示す一対(m,m)からなる4ビットの負でない値としてメッセージが書き込まれる。このようなメッセージが得られたと仮定して、典型的なスケールされた対数尤度比、すなわち、
Figure 2009010970
を示すためにmを用いることにする。可変ノードの更新式を以下に示す:
Figure 2009010970
出力メッセージmV2C(j)が値0を持つ場合、符号は任意に選ぶことができる。出力メッセージの絶対値が15を上回る場合、この絶対値は飽和され、例えば15にセットされる。
図7と図8とは、上述の直列デコーダに対する上記規則の例示実施構成を示す図である。図7は図6に描かれたデコーダに適した可変ノードプロセッサ700の実施構成を示す。特定の可変ノードに対するメッセージ(m)が順番に着信する。各メッセージmはKビットを含む。各受信メッセージは、加算器710によって、単位遅延素子712が出力した前回のサム、すなわち累積メッセージサムと加算される。加算器710へ出力された累積メッセージサムは、新たなノードに対応するメッセージの受信と共に“0”にリセットされる。受信したソフト入力値yは、加算器720において、遅延素子712が出力した累積メッセージサムに加算され、新たな累積されたサムSUMが形成される。処理済みのノードに対応するすべてのメッセージが加算されて、完全な累積トータルサム(complete accumulated total sum)を形成した場合、値SUMはラッチされ、ラッチ730に記憶される。外部ノードクロック信号の結果として上記ラッチングが行われる。上記外部ノードクロック信号のタイミングが制御され、完全なサムのラッチングが保証される。ノードクロック信号はノードレベルの関数として決定される。各受信メッセージは、可変遅延素子760を含む遅延ラインを介しても受け渡される。可変遅延素子760の継続時間は実施されるノードレベルに対応する。
特定の可変ノードに対応する、処理対象の第1のメッセージが遅延ラインから出現し、ラッチ730に記憶されたラッチ済みのトータルサムから加算器740によってメッセージ値が減算される。この出力結果は、飽和オペレータ(saturation operator)770を介して次に受け渡され、出力メッセージ値が、例えばKビットに限定されるような所望の範囲内に在ることが保証される。飽和オペレータ770の前と後に配置される単位遅延素子742と772を用いて、可変ノード処理操作と制約ノード処理操作との同期が図られる。
図8は、図6に描かれているデコーダで使用するのに適した制約ノードプロセッサ800の実施構成を示す。チェックノードプロセッサ800は、分割回路801と、符号処理回路802と、絶対値処理回路804と、合成回路899とを備える。可変ノードプロセッサ700の場合のように、特定のチェックノードに対するメッセージmが順番に着信する。制約ノードの更新は、符号更新処理と絶対値更新処理とに分離され、分割回路801を用いて、メッセージ内の絶対値情報から符号ビットの分離が行われる。受信メッセージの単一符号ビットは分割回路801により分割され、符号ビット処理回路802へ出力されて処理される。Kビットのメッセージmのうちの残りのK−1ビットはメッセージ処理回路804へ出力される。さらに、ノードクロック信号とノードレベル信号とが、符号処理回路802と絶対値処理回路804の双方の対応する入力部へ出力される。
符号処理回路802により実行されるような符号更新処理についてまず説明する。着信符号ビットは、排他的論理サム(XOR)論理回路810の入力部へ出力される前に、単位遅延素子803により1クロックサイクル遅延される。XOR回路810は、この着信符号ビットと、前回のXORの結果との排他的論理サムすなわちモジュロ2のサムを実行する。ここで前回のXORの結果は第2の単位遅延素子815が遅延させたもので、XOR回路810の第2の入力へ出力される前のものである。このようにして、処理対象ノードに対応するすべての符号ビットのXORは、反復処理による総XORの結果すなわち積SUMsignを形成する。値SUMsignは、当該ノードに対応する遅延符号ビットを持つ後続するXOR用として、ノードクロック信号830の制御の下でラッチ830に記憶される。MUX813を使用して、XORの対象値0が出力され、第1のメッセージの符号ビットは当該ノードに対応する。別の時点で、MUX813は遅延されたXORの結果を出力する。
遅延素子803から始まるXORパスの中を通る受け渡しに加えて、可変遅延素子820を備えた遅延ラインを介して夫々の符号ビットの受け渡しが行われる。素子820の遅延はノードレベル信号により制御され、その結果、符号ビットに課せられる遅延継続時間はノードレベルに対応することになる。ノードに対応するすべての符号ビットが合成されると、本願でSUMsignとして示すトータルサム(排他的論理サム)がラッチ830に記憶される。値SUMsignのラッチングは、前述した可変ノード更新処理の場合のように外部ノードクロック信号の指示の下で行われる。この信号はMUX813の出力制御にも使用される。
可変ノードの更新の場合のように、符号ビットは遅延ラインから順番に出現する。この遅延符号ビットの値は、加算器840でSUMsignから減算(排他的論理サム操作)される。この結果は出力メッセージの符号を構成する。いくつかの追加遅延素子841、843がプロセッサ802に挿入されていて、回路804が実行する絶対値更新と符号更新との同期保持が図られることに留意されたい。
絶対値処理回路804により実行される絶対値更新処理について次に説明する。第1のステップで、(K−1)ビットを用いて表される着信絶対値mV2C (i)が制約領域値に変換される。この変換は、変換回路850を用いて、メッセージmV2C (i)を上記値C2-mv2c (i)と置換するステップとなる。上記変換処理の目標は、単純サムと単純減算とを用いて制約処理を実行できる形式でメッセージ値を表すことである。実際には、シフト演算として上記変換の実行が可能となる。すなわち、値Cは2進形式で記憶され、mV2C (i)だけ右側へシフトされ、変換済みのメッセージが得られる。5ビットデコーダの例の場合、有効であることが判明した値Cが16進数表記法で6000により示される。
4ビットなどのさらにコンパクトなメッセージ絶対値部分の可変ノード領域表現から、15ビットなどのメッセージレベル部分のさらに長い制約ノード領域表現への変更を行う転送変換処理900について説明する詳細なフローチャートは図9を参照されたい。ステップ906で、可変ノード領域と制約ノード領域との間の変換に用いる定数Cは、受信メッセージの絶対値部分により示される場所を示す10進値(数)分だけ右側へシフトされる。さらに、シフト演算の結果空いた左ビット位置(上位ビット)に0が挿入される。
例えば、ステップ902で10進値の2を持つ4ビット(0010)を入力すると仮定する。ステップ906で、2進定数C=110000000000000は右側へ2つの場所分だけシフトされ、一番左側のビットは、001100000000000の制約ノード(2進)領域絶対値を結果として生じる0でパッドされる。
ステップ908で、その時制約ノードの形のメッセージの絶対値部分910(15ビットなど)が出力され、さらなる処理が行われる。この出力値は、追加処理による制約ノード処理に適した変換済み絶対値を表す。
図8を再度参照すると、加算器860と可変遅延素子880への出力に先行して、単位遅延素子851を介して変換済み絶対値が受け渡されていることがわかる。
遅延素子851により出力されたエッジメッセージを、加算器860の遅延された出力に加算し、加算器860を用いて変換済みのエッジメッセージ絶対値のサムが生成され(created)、累積されたサムSUMmagが生成される。この累積されたサムSUMmagはノードクロック信号の受信時にラッチ870に記憶され、ノードに対応するすべてのエッジメッセージが一括して加算されることが示されている。mux863の制御にもノードクロック信号が用いられ、ノードに対応する第1のメッセージが加算器860へ出力されると、“0”が出力される。したがって、mux860は、複数のノードの各ノードに対応するメッセージ処理の開始時に累積されたサムのリセット処理を行う。
変換済みの遅延エッジメッセージの絶対値は、その後遅延ライン880から出現し、これらの値は、単位遅延素子891への出力に先行して、加算器890内の記憶済みのサムSUMmagから減算される。次いで、変換回路895が遅延素子891から得た出力用遅延絶対値に対して逆変換が実行される。
制約ノードから可変ノードメッセージ表現への変換を実行するこの第2の変換回路は1つの実施形態例では以下のように作動する。プライオリティエンコーダが、制約領域絶対値メッセージの2進表現で表される第1の‘1’の場所を確定する。この場所は右側から表現することにする。したがって、vは制約領域絶対値を示すものとし、l(v)は制約領域の“場所(location)”を示すものとする。一般に、vの10進整数値vが2以上かつ2j+1−1以下であれば、l(v)=jとなる。vが0であれば、l(v)は0となる。l(v)が15以上であれば、(4ビット可変ノードメッセージ絶対値の場合)出力用絶対値は0にセットされる。l(v)が15未満であれば、この出力用絶対値は15−l(v)となる。
図10はステップ895で実行される変換処理1000を示すフローチャートであり、このフローチャートは、制約ノード領域から得られるメッセージ絶対値を元の可変ノード領域表現にする変換を含む。この時点で、ステップ860と891で実行されるメッセージ加算演算および減算演算の結果として、メッセージ絶対値は、ステップ850(この場合メッセージは15ビット長であった)の出力時よりも多いビット(メッセージは20ビット長であってもよい)を含むようにしてもよいことに留意されたい。
ステップ1004で、制約ノード領域形式でのメッセージの絶対値部分1002を受信し、右側からのビット位置をカウントすることにより左側からの最初の“1”の位置(position)が決定される。例えば、絶対値部分1002が(00000010000000000100)の場合、プライオリティエンコーダを用いて、左側からの第1の‘1’ビットが、右側から測定してビット位置14に生じることを確認することが可能となる。
次に、ステップ1006で、所定のビット位置は、可変ノード領域形式でのメッセージ絶対値表現に用いるビット数で表すことができる最大値と比較される。例えば、可変ノード領域でメッセージ絶対値用として4ビットを使用した場合、最大値は15になる。このような場合、所定のビット位置が15以上であれば、処理はステップ1008へ進む。所定のビット位置が15未満であれば、処理はステップ1006からステップ1010へ進む。
ステップ1008で、可変ノード領域メッセージ絶対値表現のすべてのビット、例えば4ビットは0にセットされ、それによって受信した制約ノードメッセージの絶対値1002の可変ノード領域形式が生成される。
ステップ1010の処理について説明する。ステップ1010で、可変ノード領域形式でのメッセージ絶対値表現に用いるビット数を用いて表すことができる最大値から、ステップ1006で得られる特定されたビット位置の数を減じることにより可変領域形式内でのメッセージ絶対値が生成される。例えば、可変ノード領域での4ビット絶対値表現を仮定した場合、ステップ1010で、ステップ1006からのビット位置、例えば本例の場合の14が15から減算されることになり、この結果、2進で(0001)として表される1(15−14=1)の可変ノードメッセージ絶対値が得られることになる。
ステップ1012で、今度は、可変ノード領域絶対値形式のメッセージ絶対値1014が、例えば遅延素子897へ出力される。
制約ノードプロセッサのいくつかの実施構成では、制約領域形式よりむしろ可変領域形式で信頼性を遅延ライン880に記憶する方が好都合である。これによって複雑さを少なくすることが可能となる。というのは、制約領域形式よりも可変領域形式の方が必要なビット数が大幅に少なくて済むからである。この実施形態用の図8を修正するために、遅延ライン880の出力部に機能ブロック850を複製し、機能ブロック880の後ではなく、機能ブロック880の前で遅延ラインへの入力を受信するようにする。
本願の上記例では、(1符号ビットと4絶対値ビットの)5ビット可変ノードメッセージを用いたが、必要に応じて定数を調整しながら利用範囲を増減するだけで、上記ビットよりも少ないビット数またはそれ以上のビット数を含むメッセージに対して上記記載の規則を適用できることは理解できよう。
場合によっては、対数尤度比用の2ln2の間隔の方が、上記解説した例示のln2間隔よりも望ましいこともあることは理解できよう。このケースは一般に、さらに少数のビット数から構成されるメッセージと関連して利用される。ln2から2ln2への変更は、制約ノードにおける上述の更新規則の変更を伴うことになるが、可変ノードでの上述の更新規則の変更は行われない。制約ノードでの修正は、すべてのメッセージがln2間隔の場合と同様であり、偶数値の絶対値だけが許容され、かつ、この場合、絶対値の最終ビットは常に0になり、この最終ビットをメッセージの一部として受け渡す必要はなく、種々の実施形態では、この最終ビットがメッセージの一部として受け渡されることはないことを指摘しておく。
別のいくつかのケースでは、1/2 ln2の間隔の方が望ましい場合もある。図11と図12は、1/2 ln2間隔の実施形態に対する転送変換処理及び反転変換処理1100、1200を描く図であり、上記変換は、ln2間隔の実施形態用としてそれぞれ図9と図10に示す変換に対応するものである。再言するが、例えば変換処理850と895などの更新規則は制約ノードで変更が生じるが、可変ノードでは変更が生じることはない。絶対値の最下位ビット(ビット順が与えられた場合の最も右側のビット)が0の場合、着信絶対値の5ビット絶対値表現での第5のビットなどの最下位ビットは脱落する、すなわちメッセージ絶対値が右側へ1だけシフトされる、すなわち同じ意味であるが2で除算される、という点を除いて、制約ノード領域への変換はln2間隔の場合のように進行する。最下位ビットが1である場合、同じ処理が実行されるが、変換時に用いる定数Cは異なるものとなる。このような場合、定数Cは、CとC/2の間のわずかに小さな値で置き換えられる。制約ノード処理は、処理中のメッセージの絶対値部分の残りビットを用いて前と同じように逆方向変換ポイントまで進行する。
図11は、1/2 ln2間隔を使用するケースで、可変ノード領域形式の絶対値メッセージの一部1102を制約ノード領域形式へ変換する処理1100を示す。ステップ1104に例示のように、例えばビット5のLSBはメッセージの絶対値部分から分けられて、ステップ1100へ出力されるのに対して、4上位ビットなどの残りビットはステップ1106へ出力される。ステップ1100で、LSBは0と比較され、変換処理時に定数C用としてどの値を用いるべきかが判定される。LSB=0であれば、ステップ1113へ処理は進み、そこでCは第1の値110000000000000にセットされる。これに対して、LSB=1であれば、処理はステップ1100からステップ1114へ進み、Cは第2の値100001000000000にセットされる。値Cは、ステップ1113または1114から、メッセージの絶対値部分1102の4ビットなどの残りの上位ビットを受信するステップ1106へ出力される。
ステップ1106で定数Cは、メッセージ絶対値の(4ビットなどの)残りビットの10進値によって指定される数の場所だけ右側へシフトされ、このシフト演算の結果空いた左ビット位置に0が挿入される。次いで、ステップ1108で、制約ノード領域絶対値形式のメッセージ絶対値1110(15ビット)が、例えば遅延素子851へ出力される。
1/2 ln2のケースで、例えば制約ノード領域表現から可変ノード領域表現への逆方向変換には、出力メッセージの最下位ビットの検出に用いるln2間隔で存在する以上の追加ステップが含まれる。ln2間隔規則を用いて得られる値はメッセージ内のもう一方の、上位ビットを示す。
1/2 ln2のケースでの最下位ビットの値を確定するために、制約ノード領域絶対値の第1の‘1’の右側のいくつかのビットがチェックされる。しきい値を用いて、最下位ビットが0になるか1になるかが判定される。1つの特定の1/2 ln2実施形態では、制約ノード領域値vがしきい値t2l(v)と比較される。但し、tはある適当な所定の定数である。vがt2l(v)よりも大きければ、LSBは0にセットされ、そうでなければ、LSBは1にセットされる。同じしきい値規則を用いる多くの代替実現例が存在することは理解できよう。
図12は、制約ノード領域形式のメッセージの絶対値部分1202を可変ノード領域形式へ変換する処理1200を示す。この処理はステップ1204から始まり、このステップで右側から測定した場合の、左側からの最初の“1”の場所(location)が決定される。プライオリティエンコーダを用いてこの処理を実行してもよい。次いで、ステップ1206で、可変ノード領域内のメッセージ絶対値を表すのに用いるLSBを除いて、特定されたビット位置が、ビット数により表すことが可能な最大数よりも大きいかどうかの決定が行われる。例えば、5ビットを用いて可変ノード領域内の絶対値を表すと仮定すると、LSB=4ビット用の5ビット−1を使用して10進最大値15を表すことが可能となる。このような場合、ステップ1206で、特定されたビット位置が最大数15を上回るか否かに関する判定が行われる。答えがイエスならば、処理はステップ1208へ進む。そうでなければ処理はステップ1212へ進む。
メッセージ絶対値を0にセットすべきであるという判定の結果、処理はステップ1208へ進む。ステップ1208で、可変ノード領域メッセージ絶対値表現のすべてのビットが0にセットされ、(00000などの)メッセージ絶対値が可変ノード領域形式で生成される。この変換が終了すると、処理はステップ1208からステップ1214へ進む。
ステップ1208に代わる別の処理経路を表すステップ1210で、可変ノード領域形式のメッセージ絶対値の非LSBビットの数により表すことが可能な最大値から、上記特定された数、すなわちビット位置の数が減算される。例えば、可変ノード領域形式の5ビット絶対値表現を仮定すると、LSBに4ビットが加算される。4ビットにより表すことが可能な最大の数は15である。したがって、ステップ1210で示すような実施形態では、特定されたビット位置の数が15から減算されて、可変ノード領域内に4上位ビットの絶対値が作られることになる。
ステップ1212で、メッセージ絶対値の制約ノード領域表現1202の絶対値に存在する一番左側の“1”の右側に、LSB、例えば5ビットの例示絶対値の第5ビットが1以上のビット値から確定される。
ステップ1214で、可変ノード形式になっている、例えば5ビットの生成済みのメッセージ絶対値1216が単位遅延素子897などへ出力される。
図7と図8は、図13を参照してさらに説明しようとする基本的構造の1例と2例をそれぞれ含むものである。メッセージ更新のための主計算が単純化された下式の形を持つことを想起されたい:
Figure 2009010970
さらに、クロックサイクル当たり1つの出力エッジメッセージを形成することが可能な効率的なパイプライン構造を備えることが望ましい。本発明のハードウェア設計には、以下の観察に対する相応の配慮が払われ、以下に列挙する特徴がサポートされている:
入出力データ間に明白な依存状態が存在しないため、パイプラインを十分に深くして非常に高いクロックレートをサポートすることが可能となる。
可変レベルのノードを処理しながら、パイプラインはその効率を維持することができる。
上式の加算と減算は、逆演算が行われる演算である、対応する法(モジュロ加算/減算、乗算/除算など)に従う任意の演算に対して一般化することができる。
上記パイプラインは、関数変換、飽和、遅延素子などの追加の前処理段と後処理段とを備えてもよい。
一般化して提案したパイプライン構造を表すメッセージ処理システム1300が図13に例示されている。処理システム1300では、様々なシステム構成要素の駆動に用いるエッジクロック信号によって定められるように、クロックサイクル当たり1メッセージずつ入力メッセージ“A”が順に受信される。処理システム1300は、ノードクロック信号とノードレベル信号の受信も行う。ノードクロック信号はノードフレーミング信号(node framing signal)として役立つものであり、新たなノードに対応するメッセージが累算器モジュール1302のメッセージ入力部へ出力されると、ノードクロック信号はオンにセットされる。後述するように、ノードクロック信号は、メッセージのランニングサムの初期化と、夫々のノード用として生成されたトータルサムのラッチングとを含む様々な処理の制御に利用される。処理の実行対象ノードに対応する、メッセージ数などのレベルの関数としてノードクロック信号は生成される。ノードレベル信号は、処理が行われている対象ノードのレベルを示すための、当該ノードに対応するメッセージの数を示す信号である。後述するように、このノードレベル信号は可変遅延素子1306を制御するのに用いられ、可変遅延素子1306は受信メッセージを遅延するのに用いられる。図14に図示の対応するデータフローを参照しながら、システム1300の処理について以下さらに解説する。説明を簡略にするために、前処理段と後処理段はいずれもスキップし、簡単な加減算演算を仮定する。
処理システム1300には、モジュールと呼ばれることもある2つの計算段、すなわちアキュミュレーションモジュール“A”1302と減算モジュール“S”1304が含まれる。減算モジュールは出力メッセージを生成するので、メッセージ生成モジュール(message generation module)と呼ぶこともある。システム1300には、遅延メッセージ“D”を出力する可変遅延素子1306を備えた可変メッセージ遅延経路も含まれる。
アキュミュレーションモジュール“A”1302は順番に入力メッセージを受信し、ノードに対応する夫々のセットのメッセージに対してトータルサムを生成する。アキュミュレーションモジュール1302は、加算器1310と、単位遅延素子1312と、mux1314と、ノードサムラッチ(node sum latch)1316とを具備する。単位遅延素子1312を用いて、加算器1310が生成したランニングサムが記憶される。MUX1314は、加算器1310の入力部のうちの一方の入力部へ、遅延素子1312が出力した0かランニングサムのいずれかを出力する。上記MUXは、ノードクロック信号によって制御され、ノードに対応する第1のメッセージが加算器1310の他方の入力部へ出力されると0を出力し、その他のすべての場合、ランニングサムBを出力する。このようにして、加算器は、ノードに対応する受信メッセージを加算して、当該ノードのトータルサムを生成することになる。
ノードクロック信号は、ノードサムラッチ1316の中へランニングサムをストローブするために用いられる。ノードクロック信号がオンにセットされ、値がラッチされた時点で、ランニングサムは当該ノードのトータルサムを表す。
減算モジュールすなわちメッセージ生成モジュール“S”1304は、その入力として、アキュミュレーションモジュール1302が生成したトータルサムと、可変遅延素子1306が遅延させた入力メッセージとを受信する。“S”1304段は、ノードサムラッチ1316に記憶されたトータルサム“C”から遅延入力メッセージを順次減算し、ノードNなどのノードに対してクロックサイクル当たり1メッセージずつ出力メッセージを形成する。この減算演算の結果、段“A”1302の処理による出力に先行して、出力メッセージ“E”が出力レジスタ1321に記憶され、“S”1304を完全に重ね合わせたり、折り畳む(folded)ことが可能となる。例えば、段“A”1302がノードN+1に対する処理を実行している間、段“S”はノードNに対する処理を実行することができる。
遅延素子1306を備えた可変遅延ラインの目的は、ノードN+1用の入力メッセージを記憶しながら、ノードN用の、“D”として表される遅延された原入力メッセージを減算段“S”へ出力することである。処理用クロックサイクルの装置では、ノードに対応するメッセージに印加される遅延素子1308の遅延は、上記メッセージが対応する現在のノードレベルに等しい。例えば、レベル4のノードに対応するメッセージは、可変遅延素子1306によって4クロックサイクルだけ遅延され、レベル2のノードに対応するメッセージは2クロックサイクルだけ遅延されることになる。マルチノードレベルをサポートするために、1つの実施形態では、可変遅延素子1306が実装され、この可変遅延素子には、サポートされている最大のノードレベルと同数のメッセージを記憶できる少なくとも十分な記憶空間が設けられる。
可変遅延素子1306と遅延メッセージDとを利用することにより、折り返し(folded)パイプライン処理に必要な二重の読み出しを除くことによってメッセージメモリの帯域幅が節減される。遅延素子1306を備えた遅延ラインには、外部遅延値制御装置(可変出力タップを備えたシフトレジスタなど)か、内部遅延値制御装置(組み込み型FIFOなど)かのいずれかを実際には設けることが可能であることに留意されたい。遅延制御論理は多重処理用ノードの両端での共有が可能なため、第1の方法の方がベクトルデコーダ用として望ましい場合がある。
ノードフレーミング信号に利用するノードクロック信号の周波数変更処理と、遅延素子1306により課せられるメッセージ遅延の制御に用いるレベル信号の変更処理の双方を行うことにより、上述のパイプライン構造によってリアルタイムでのノードレベルの変更が可能となる。これらの制御信号を介して、パイプライン深さを簡単に変更することが可能となる。この文脈では、パイプライン深さとは、(ノードN用の)第1の着信メッセージがシステム1300の中へ処理用として送出された時点から、(ノードN用の)第1の出力メッセージEがパイプライン出力部に出現する時点までの遅延と解釈することができる。可変の深さをもつパイプラインは、非正則LDPC符号をサポートすることができる著しいパフォーマンス上の利点を提供することが可能である。なぜなら、1反復当たりで必要なサイクル総数は、グラフ内のエッジ数にレベル拡散度(最大レベルと最小レベル間の差)をプラスしたものに等しいからである。
これに対し、固定されたパイプライン設計は、1反復当たり(最大エッジレベル)*(ノード数)回のサイクルを必要とし、このサイクルは特に、レベル拡散度が大きい場合、エッジ数よりも際だって大きなものになる場合がある。
図14は、ノードレベル3からノードレベル4への切り替えを行う時点でシステム1300に存在するAからDまでの様々な値の1例を含むチャート1400を示す図である。ノードレベルの切り替えに起因して、入力データの着信と関連する遅延などのパイプラインの機能停止が生じないことに留意されたい。
図14は、ノード1(n1)、ノード2(n2)、ノード3(n3)、ノード4(n4)からなる4個のノードに対応するメッセージと関連する処理を示す。単一ラインを含む図14のチャート内のセルはn1に対応する。2本のラインを含むセルはn2に対応する。3本のラインを含むセルはn3に対応する。さらに、4本のラインを含むセルはn4に対応する。第1列1401に例示のように、ノードn1とn2とはレベル3であるが、ノードn3とn4とはレベル4である。チャート1400内の各行が異なるクロックサイクルに対応するのに対して、図示のように列は異なる値に対応している。
第2列1402は、クロックサイクル当たり1メッセージずつ受信した順序で受信メッセージAをリストしたものである。第3の列1404は、夫々の処理クロックサイクル中のランニングサムBをリストしたものである。列1404では、列1404内のメッセージn1_e0から出るn1などのノードインジケータが、簡潔さを旨として省かれていることに留意されたい。第4の列1406は、メッセージ処理の一部として夫々のノードに対して生成されたラッチ済みのトータルサムCをリストしたものである。第5の列1408は、遅延素子1306が出力した遅延値Dをリストしたものである。上記遅延値Dは列Cにおけるサムから減算され、出力メッセージEが作られる。上記生成済み出力メッセージは第6の列1410にリストされている。
当然のことであるが、パイプライン深さの変更に起因して、出力側データストリームに空のスロットが生じることになる。ノードが(昇順または降順で)レベルによってソートされている場合、1反復当たりの空のスロットの総数はレベル拡散度に等しく、処理済みのメッセージ数と比較して非常に少なくなる。その結果非常に高度のパイプラインの利用が可能となる。
上記記載のLDPC復号化方法とノードプロセッサ実施構成とによって、フィールドプログラマブルゲートアレイ(FPGA)などの様々なハードウェアプラットフォームや、特定用途向け集積回路(ASIC)におけるLDPC復号化の実行が可能になる。本発明は、単純な並行性と、実現し易いノードとが明らかに利用できる上記設定で特に有用である。
本発明の復号化方法および復号化装置の多くの追加変形例は、本発明に関する上記記載に照らして当業者には明白である。このような変形例は本発明の範囲に属するものと考えるべきである。
長さ10の例示の正則LDPC符号の2部分グラフ表示を示す。 図1にグラフィックに示した符号の行列表現である。 データの符号化、送信、復号化を示す。 例示の非正則LDPC符号の2部分グラフ表示である。 図5aは、図5を構成する一部であり、図5は、図5a〜5dの組み合わせを備え、図4に示すLDPC符号に基づくLDPC復号化処理の一部として実行されるステップを示す。 図5bは、図5を構成する一部であり、図5は、図5a〜5dの組み合わせを備え、図4に示すLDPC符号に基づくLDPC復号化処理の一部として実行されるステップを示す。 図5cは、図5を構成する一部であり、図5は、図5a〜5dの組み合わせを備え、図4に示すLDPC符号に基づくLDPC復号化処理の一部として実行されるステップを示す。 図5dは、図5を構成する一部であり、図5は、図5a〜5dの組み合わせを備え、図4に示すLDPC符号に基づくLDPC復号化処理の一部として実行されるステップを示す。 本発明に基づいて実現したノードプロセッサを備えた直列LDPCデコーダを示す。 可変ノードプロセッサの実施構成を示す。 制約ノードプロセッサの実施構成を示す。 制約ノード処理に対応する、それぞれ、第1の変換処理と第2の変換処理を示す。この場合、ln2量子化ステップサイズは5ビットメッセージで使用される。 制約ノード処理に対応する、それぞれ、第1の変換処理と第2の変換処理を示す。この場合、ln2量子化ステップサイズは5ビットメッセージで使用される。 制約ノード処理に対応する、それぞれ、第1の変換処理と第2の変換処理とを示す。この場合1/2 ln2量子化ステップサイズは6ビットメッセージで使用される。 制約ノード処理に対応する、それぞれ、第1の変換処理と第2の変換処理とを示す。この場合1/2ln2量子化ステップサイズは6ビットメッセージで使用される。 メッセージ受け渡し用デコーダで使用する、本発明に基づいて実現するノードプロセッサの一般的構造を示す。 図13に例示のノードプロセッサにより、異なるレベルのノードに対応するメッセージの処理中に順番に生成される様々なメッセージと値とを示す。 受信機が検出した値から得られる量子化対数尤度値の生成に使用可能な装置を示す。

Claims (45)

  1. 値を受信することと、
    量子化値を形成するために、1/2 ln2の整数倍の量子化ステップサイズを用いて前記受信値を量子化することと、
    出力メッセージの少なくとも一部を形成するために、チェックノード処理操作と可変ノード処理操作のうちの一方を前記量子化値に対して行うことと、
    を備えるデコーダ処理方法。
  2. 前記受信値は対数尤度値である、請求項1に記載の方法。
  3. 前記対数尤度値は、対数尤度比または対数尤度比の近似値のうちの一方である、請求項2に記載の方法。
  4. 検出した値に定数を乗算することにより前記受信値を生成するステップ、をさらに備える請求項1に記載の方法。
  5. 前記受信値は、受信した符号語の一部である、請求項4に記載のデコーダ処理方法。
  6. 前記受信値を量子化する前記のステップは、
    符号ビットと絶対値との組み合わせとして構成される前記量子化値の符号ビットと絶対値とを生成すること、
    を含む、請求項1に記載の方法。
  7. チェックノード処理操作と可変ノード処理操作のうちの一方を実行する前記のステップは、
    変換済み絶対値を生成するために、前記量子化値に含まれる絶対値の関数として一定数をシフトするステップと、
    出力用変換済み絶対値を形成するために、前記変換済み絶対値に対して少なくとも1回のチェックノード処理操作を実行するステップと、
    を含む、請求項6に記載の方法。
  8. チェックノード処理操作と可変ノード処理操作のうちの一方を実行する前記ステップは、
    対数尤度メッセージ絶対値を生成するために第2の変換処理を実行するステップ、
    をさらに含む、請求項7に記載の方法。
  9. チェックノード処理操作と可変ノード処理操作のうちの一方を実行する前記のステップは、
    出力用符号ビット値を形成するために、前記量子化値の符号ビットに対して少なくとも1回のチェックノード処理操作を実行するステップ、
    をさらに含む、請求項8に記載の方法。
  10. チェックノード処理操作と可変ノード処理操作のうちの一方を実行する前記のステップは、
    デコーダメッセージを形成するために、前記出力用符号ビット値を前記生成済み対数尤度メッセージ絶対値と組み合わせるステップ、
    をさらに含む、請求項9に記載の方法。
  11. 前記デコーダメッセージは、可変ノードデコーダメッセージに対する制約ノードである、
    請求項10に記載の方法。
  12. 可変ノードデコーダメッセージに対する前記制約ノードをメモリに記憶するステップと、
    可変ノードデコーダメッセージに対する前記記憶済みの制約ノードを可変ノードプロセッサへ出力するステップと、
    可変ノードデコーダメッセージに対する前記制約ノードの関数として制約ノードメッセージに対する可変ノードを生成するために、前記可変ノードプロセッサを操作するステップと、
    をさらに備える請求項11に記載の方法。
  13. メッセージ受け渡し用デコーダによる方法であって、
    量子化対数尤度値を形成するために、1/2 ln2の整数倍の量子化ステップサイズを用いて入力値を量子化するステップと、
    前記量子化対数尤度値を入力値として用いて、メッセージ受け渡し用デコーダ処理操作を実行するステップと、
    を備える方法。
  14. 入力値を量子化する前記ステップは、
    符号ビットと絶対値との組み合わせとして構成される前記量子化対数尤度値の符号ビットと絶対値とを生成するステップ、
    を含む、請求項13に記載の方法。
  15. メッセージ受け渡し用デコーダ処理操作を実行する前記ステップは、
    変換済み絶対値を生成するために、前記量子化対数尤度値に含まれる絶対値の関数として一定数をシフトするステップと、
    出力用変換済み絶対値を形成するために、前記変換済み絶対値に対して少なくとも1回のチェックノード処理操作を実行するステップと、
    を含む、請求項14に記載の方法。
  16. 前記尤度値は、対数尤度比または対数尤度比の近似値である、請求項13に記載の方法。
  17. 送信値を検出するステップと、
    前記対数尤度値を生成するために、前記検出した送信値に定数を乗算するステップと、
    を備える請求項13に記載の方法。
  18. メッセージ受け渡し用デコーダ処理操作を実行する前記ステップは、前記量子化対数尤度値を入力値として用いて可変ノード処理操作を実行するステップ、を含む、請求項13に記載の方法。
  19. 前記可変ノード処理操作は、低密度パリティチェック符号可変ノード処理操作である、請求項18に記載の方法法。
  20. 検出した値を処理する装置であって、
    量子化対数尤度値を形成するために、1/2 ln2の整数倍に量子化した対数尤度値を生成する手段と、
    前記量子化対数尤度値を入力値として用いてパリティチェック復号化処理を実行するための、対数尤度値を生成する前記手段と結合されたパリティチェックデコーダと、
    を備える装置。
  21. 前記パリティチェックデコーダは、
    前記形成された量子化対数尤度値のうちの少なくともいくつかを用いて可変ノード処理操作を実行する可変ノード処理回路と、
    可変ノード処理により形成された量子化対数尤度値に対してチェックノード処理操作を実行するチェックノード処理回路と、
    を含む、請求項20に記載の装置。
  22. 夫々の生成された量子化対数尤度値は、符号ビットと絶対値とを含み、
    前記チェックノード処理回路は、変換済み絶対値を生成するために、少なくとも1つの量子化対数尤度値の中に含まれる前記絶対値の関数として一定数をシフトするシフト回路を含む、
    請求項21に記載の装置。
  23. 前記チェックノード処理回路は、
    出力用変換済み絶対値を形成するために、前記変換済み絶対値に対して少なくとも1回のチェックノード処理操作を実行する手段、
    をさらに含む、請求項22に記載の装置。
  24. メッセージ受け渡し復号化処理の一部としてノード処理操作を実行する装置であって、前記装置は、
    複数のノードに対応する入力メッセージを、順番に、処理するための累算器モジュールを備え、1組の入力メッセージは1ノード毎に受信され、1ノードに対応する1組のメッセージ内のメッセージの数は前記ノードのレベル、D、に等しく、但しここでDはゼロでない正の整数であり、
    前記累算器モジュールは、
    1ノードに対応する1組のメッセージ内の夫々の受信されたメッセージの値の関数として、1つのトータルノードサムを生成する加算回路と、なお1つのトータルノードサムは夫々の受信された組のメッセージに対して生成される;
    前記生成されたトータルノードサムを記憶するための記憶装置と;
    前記入力メッセージが対応する前記ノードの前記レベルに比例する時間の期間ごとに夫々のトータルサムを生成するために、前記加算回路によって処理される前記入力メッセージを記憶するための制御可能な遅延ユニットと;
    前記ノードに対応する前記トータルサムおよび前記ノードに対応する遅延メッセージから、1つのノードに対応する出力メッセージを生成するためのメッセージ生成モジュールと、なお、前記メッセージ生成モジュールは、1つのノードに対応する夫々の入力メッセージに対して1つの出力メッセージを生成する;
    を含んでいる、
    装置。
  25. 前記メッセージ生成モジュールは、
    前記記憶装置および遅延素子に結合され、1つのノードに対応する夫々の遅延メッセージ値を、前記ノードに対応する前記トータルサムから減算するための、減算回路、
    をさらに備える、請求項24に記載の装置。
  26. 前記制御可能な遅延ユニットは、前記制御可能な遅延ユニットにより受信されているメッセージに対応する1つのノードの前記レベルを示すノードレベル信号を受信するための入力部、を含む、請求項25に記載の装置。
  27. 前記制御可能な遅延ユニットは、先入れ先出しデータ記憶装置として実現されている、請求項26に記載の装置。
  28. 前記加算回路は、
    入力メッセージを受信するための第1の入力部を有する加算器と、
    前記加算器に、そして前記記憶装置に結合され、前記加算器により生成されたランニングサムを記憶するための、および、前記記憶されたランニングサムを出力するための、追加記憶装置と、
    前記追加記憶装置に結合され、前記追加記憶装置から前記記憶されたランニングサムを受信するための、および、ノードクロック信号の制御の下で前記加算器の第2の入力部へ、前記記憶されたランニングサムとゼロのうち一方を出力するための、マルチプレクサと、
    を含む、
    請求項25に記載の装置。
  29. 前記記憶装置は、前記ノードクロック信号を受信するための制御入力部をさらに含み、前記記憶装置は、前記ノードクロック信号の指示の下で、前記トータルノードサムとして用いられるべき前記記憶されたランニングサムを記憶する、請求項28に記載の装置。
  30. 1つのノードに対応する第1のメッセージが前記加算回路によって受信されるとき、前記マルチプレクサにゼロを出力させるために前記ノードクロック信号をアサートするための手段、
    をさらに備える請求項29に記載の装置。
  31. 前記ノードクロック信号は、それが前記マルチプレクサにゼロを出力させると同時に、前記記憶装置に前記トータルノードサムとして前記ランニングサムを記憶させる、請求項30に記載の装置。
  32. メッセージ受け渡し復号化システムにおいて使用するためのノードプロセッサであって、
    1つのノードに対応する1組の受信メッセージからトータルメッセージサムを生成するための累算器モジュールと、
    記憶されたメッセージが対応する1つのノードのレベルに正比例する時間の期間、夫々の組の受信メッセージ内の前記メッセージを記憶するための可変遅延素子を含むメッセージ遅延ラインと、
    前記累算器モジュールに、そして前記メッセージ遅延ラインに、結合された減算器モジュールと、
    を備え、前記減算器モジュールは、1つのノードに対応する夫々の遅延メッセージを、減算される前記遅延メッセージと同じノードに対応する前記の組の受信メッセージから前記累算器モジュールによって生成される前記トータルメッセージサムから、減算する、
    ノードプロセッサ。
  33. 前記累算器モジュールは、
    メッセージが処理される1つのノードに対応する1つの累積されたサムを記憶するためのラッチ、
    を含み、累積された複数のサムは、前記ラッチ中に順次記憶される異なる複数のノードに対応する、
    請求項32に記載のノードプロセッサ。
  34. 前記ノードプロセッサは、
    1つのノードに対応するメッセージの1つのランニングサムを生成するための手段と、
    前記ラッチ中に前記ランニングサムを記憶するために使用される制御信号に応じて前記ランニングサムをリセットするための手段と、
    をさらに備え、前記記憶されたランニングサムは累積された1つのサムである、
    請求項33に記載のノードプロセッサ。
  35. 前記ノードプロセッサは、可変ノードプロセッサであり、
    前記累算器モジュールは、前記ラッチ中に前記ランニングサムが記憶される前に、メッセージの前記ランニングサムに入力値を加算するための加算器をさらに含む、
    請求項34に記載のノードプロセッサ。
  36. 前記可変遅延素子は、複数のメッセージ記憶場所を含み、前記複数のメッセージ記憶場所における複数のメッセージ記憶場所の数は、処理操作が前記ノードプロセッサによって実行されるべき、ノードの最高レベルと少なくとも同じ大きさである、請求項34に記載のノードプロセッサ。
  37. 前記可変遅延素子は、前記可変遅延素子によって受信される前記メッセージに対応する前記ノードのレベルを示す信号を受信するための制御入力部を、さらに含む、請求項36に記載のノードプロセッサ。
  38. メッセージ受け渡し用デコーダにおいてノード処理操作を実行する方法であって、
    処理されるべきメッセージを順次受信するステップと、なお、各メッセージは1つのノードに対応し、前記同じノードに対応する複数のメッセージは、1組のメッセージの一部であり、複数の異なるノードに対応する複数の組の複数のメッセージは、時間の1期間にわたって受信される;
    1つのノードに対応する夫々の組の受信メッセージから、1つのトータルサムを生成するために使用される組のメッセージと同じノードに対応する1つのトータルメッセージサムを、生成するステップと;
    各個々の受信メッセージを、前記個々の受信メッセージが対応する前記ノードのレベルに正比例する時間の期間、遅延させるステップと;
    夫々の遅延メッセージを、前記遅延メッセージと同じノードに対応する前記トータルメッセージサムから、減算し、それによって、出力メッセージを生成する、ステップと;
    を備える方法。
  39. 各個々の受信メッセージを遅延させる前記ステップは、
    処理のために受信される1つのメッセージが対応する前記ノードのレベルを示す制御信号を受信するステップ、
    を含む、請求項38に記載の方法。
  40. 夫々の組の受信メッセージに対する前記トータルメッセージサムを生成するために、受信メッセージの1つのランニングサムに、夫々の受信メッセージを加算するステップ、
    をさらに備える請求項39に記載の方法。
  41. 1組のメッセージ内の最後のメッセージが前記ランニングサムに加算されるとすぐに、記憶装置内へ前記ランニングサムをラッチするステップ、
    をさらに備え、前記ラッチされたランニングサムは、前記トータルメッセージサムである、請求項40に記載の方法。
  42. 前記記憶装置内へ前記ランニングサムをラッチする前に、前記ランニングサムに入力値を加算すること、
    をさらに備える請求項41に記載の方法。
  43. 直前の受信メッセージとは異なる1つのノードに対応する1つのメッセージが受信されるたびに、前記ランニングサムをゼロに初期化するステップ、をさらに備える請求項41に記載の方法。
  44. 前記のラッチすることおよび初期化することは、同じ制御信号によって制御される、請求項41に記載の方法。
  45. 前記生成された出力メッセージを、1回に1つずつ、順番に出力するステップ、をさらに備える請求項40に記載の方法。
JP2008200437A 2001-10-10 2008-08-04 パリティチェックデコーダで使用するノードプロセサ Pending JP2009010970A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US32846901P 2001-10-10 2001-10-10
US09/975,331 US6633856B2 (en) 2001-06-15 2001-10-10 Methods and apparatus for decoding LDPC codes
US10/117,264 US6938196B2 (en) 2001-06-15 2002-04-04 Node processors for use in parity check decoders

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2003535339A Division JP4221503B2 (ja) 2001-10-10 2002-10-07 パリティチェックデコーダで使用するノードプロセサ

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2012166960A Division JP5579798B2 (ja) 2001-10-10 2012-07-27 パリティチェックデコーダで使用するノードプロセサ

Publications (1)

Publication Number Publication Date
JP2009010970A true JP2009010970A (ja) 2009-01-15

Family

ID=27381960

Family Applications (5)

Application Number Title Priority Date Filing Date
JP2003535339A Expired - Fee Related JP4221503B2 (ja) 2001-10-10 2002-10-07 パリティチェックデコーダで使用するノードプロセサ
JP2008200437A Pending JP2009010970A (ja) 2001-10-10 2008-08-04 パリティチェックデコーダで使用するノードプロセサ
JP2012166960A Expired - Fee Related JP5579798B2 (ja) 2001-10-10 2012-07-27 パリティチェックデコーダで使用するノードプロセサ
JP2014103669A Ceased JP2014180034A (ja) 2001-10-10 2014-05-19 パリティチェックデコーダで使用するノードプロセサ
JP2015118386A Pending JP2015216645A (ja) 2001-10-10 2015-06-11 パリティチェックデコーダで使用するノードプロセサ

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2003535339A Expired - Fee Related JP4221503B2 (ja) 2001-10-10 2002-10-07 パリティチェックデコーダで使用するノードプロセサ

Family Applications After (3)

Application Number Title Priority Date Filing Date
JP2012166960A Expired - Fee Related JP5579798B2 (ja) 2001-10-10 2012-07-27 パリティチェックデコーダで使用するノードプロセサ
JP2014103669A Ceased JP2014180034A (ja) 2001-10-10 2014-05-19 パリティチェックデコーダで使用するノードプロセサ
JP2015118386A Pending JP2015216645A (ja) 2001-10-10 2015-06-11 パリティチェックデコーダで使用するノードプロセサ

Country Status (9)

Country Link
US (1) US6938196B2 (ja)
EP (2) EP1442527B1 (ja)
JP (5) JP4221503B2 (ja)
KR (3) KR100958234B1 (ja)
AT (1) ATE495581T1 (ja)
DE (1) DE60238934D1 (ja)
ES (1) ES2356767T3 (ja)
TW (1) TW569548B (ja)
WO (1) WO2003032499A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012257287A (ja) * 2001-10-10 2012-12-27 Qualcomm Inc パリティチェックデコーダで使用するノードプロセサ
JP2014033259A (ja) * 2012-08-01 2014-02-20 Nec Engineering Ltd ターボ復号器及びそれに用いられる対数尤度比演算装置
JP2017077012A (ja) * 2012-12-03 2017-04-20 エルエヌツー ディービー,リミティド ライアビリティ カンパニー 連結コーディング・システムの先進繰り返しデコーディングおよびチャネル評価のためのシステムおよび方法

Families Citing this family (121)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7673223B2 (en) * 2001-06-15 2010-03-02 Qualcomm Incorporated Node processors for use in parity check decoders
US6633856B2 (en) * 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC 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
US7577207B2 (en) 2002-07-03 2009-08-18 Dtvg Licensing, Inc. Bit labeling for amplitude phase shift constellation used with low density parity check (LDPC) codes
US7020829B2 (en) 2002-07-03 2006-03-28 Hughes Electronics Corporation Method and system for decoding low density parity check (LDPC) codes
EP1525664B9 (en) * 2002-07-03 2015-09-02 Dtvg Licensing, Inc Method and system for memory management in low density parity check (ldpc) decoders
US6829308B2 (en) * 2002-07-03 2004-12-07 Hughes Electronics Corporation Satellite communication system utilizing low density parity check codes
US7266750B1 (en) * 2002-07-10 2007-09-04 Maxtor Corporation Error recovery strategies for iterative decoders
US20040019845A1 (en) * 2002-07-26 2004-01-29 Hughes Electronics Method and system for generating low density parity check codes
US7864869B2 (en) * 2002-07-26 2011-01-04 Dtvg Licensing, Inc. Satellite communication system utilizing low density parity check codes
US7178080B2 (en) * 2002-08-15 2007-02-13 Texas Instruments Incorporated Hardware-efficient low density parity check code for digital communications
JP2004088470A (ja) * 2002-08-27 2004-03-18 Sony Corp 復号装置及び復号方法
KR100502608B1 (ko) * 2002-12-24 2005-07-20 한국전자통신연구원 계산이 간단한 저밀도 패리티 검사 부호를 위한 메시지 전달 복호기
US6957375B2 (en) * 2003-02-26 2005-10-18 Flarion Technologies, Inc. Method and apparatus for performing low-density parity-check (LDPC) code operations using a multi-level permutation
US7139959B2 (en) * 2003-03-24 2006-11-21 Texas Instruments Incorporated Layered low density parity check decoding for digital communications
JP4225163B2 (ja) * 2003-05-13 2009-02-18 ソニー株式会社 復号装置および復号方法、並びにプログラム
JP4224777B2 (ja) * 2003-05-13 2009-02-18 ソニー株式会社 復号方法および復号装置、並びにプログラム
KR100809619B1 (ko) 2003-08-26 2008-03-05 삼성전자주식회사 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법
US7340671B2 (en) * 2003-10-10 2008-03-04 Regents Of The University Of California Decoding low density parity codes
EP1536568A1 (en) * 2003-11-26 2005-06-01 Matsushita Electric Industrial Co., Ltd. Belief propagation decoder cancelling the exchange of unreliable messages
CN1301012C (zh) * 2003-12-03 2007-02-14 北京泰美世纪科技有限公司 一种基于ldpc的成帧方法
KR100744343B1 (ko) * 2003-12-19 2007-07-30 삼성전자주식회사 이동 통신 시스템에서 불균일 오류 확률을 갖는 부호화에따른 데이터 송수신 방법 및 장치
JP4296949B2 (ja) * 2004-02-03 2009-07-15 ソニー株式会社 復号装置及び方法、並びに情報処理装置及び方法
US20050193320A1 (en) * 2004-02-09 2005-09-01 President And Fellows Of Harvard College Methods and apparatus for improving performance of information coding schemes
CN101924565B (zh) * 2004-04-02 2014-10-15 苹果公司 Ldpc编码器、解码器、系统及方法
KR100594818B1 (ko) * 2004-04-13 2006-07-03 한국전자통신연구원 순차적 복호를 이용한 저밀도 패리티 검사 부호의 복호장치 및 그 방법
KR100659266B1 (ko) 2004-04-22 2006-12-20 삼성전자주식회사 다양한 코드율을 지원하는 저밀도 패러티 검사 코드에 의한데이터 송수신 시스템, 장치 및 방법
WO2005112272A1 (en) * 2004-05-14 2005-11-24 University Of Alberta Method and apparatus for digit-serial communications for iterative digital processing algorithms
KR100762619B1 (ko) * 2004-05-21 2007-10-01 삼성전자주식회사 저밀도 패리티 검사 코드를 이용한 복호화 장치 및 방법
JP4138700B2 (ja) * 2004-05-31 2008-08-27 株式会社東芝 復号装置および復号回路
FR2871965B1 (fr) * 2004-06-17 2006-09-01 Turboconcept Soc Par Actions S Procede et dispositif de decodage de codes correcteurs d'erreurs et systemes les mettant en oeuvre
JP4282558B2 (ja) 2004-06-30 2009-06-24 株式会社東芝 低密度パリティチェック符号復号器及び方法
US7181676B2 (en) * 2004-07-19 2007-02-20 Texas Instruments Incorporated Layered decoding approach for low density parity check (LDPC) codes
US7395490B2 (en) 2004-07-21 2008-07-01 Qualcomm Incorporated LDPC decoding methods and apparatus
US7730377B2 (en) * 2004-07-22 2010-06-01 Texas Instruments Incorporated Layered decoding of low density parity check (LDPC) codes
US7127659B2 (en) * 2004-08-02 2006-10-24 Qualcomm Incorporated Memory efficient LDPC decoding methods and apparatus
CN101341659B (zh) 2004-08-13 2012-12-12 Dtvg许可公司 用于多输入多输出通道的低密度奇偶校验码的码设计与实现的改进
WO2006055086A1 (en) * 2004-10-01 2006-05-26 Thomson Licensing A low density parity check (ldpc) decoder
US20060085720A1 (en) * 2004-10-04 2006-04-20 Hau Thien Tran Message passing memory and barrel shifter arrangement in LDPC (Low Density Parity Check) decoder supporting multiple LDPC codes
KR20060032464A (ko) * 2004-10-12 2006-04-17 삼성전자주식회사 효율적인 저밀도 패리티 검사 코드 복호 방법 및 장치
KR100640399B1 (ko) * 2004-10-27 2006-10-30 삼성전자주식회사 저밀도 패리티 검사 채널 부호의 천공 방법
US7617432B2 (en) * 2004-11-10 2009-11-10 Qualcomm Incorporated Hierarchical design and layout optimizations for high throughput parallel LDPC decoders
KR100703271B1 (ko) * 2004-11-23 2007-04-03 삼성전자주식회사 통합노드 프로세싱을 이용한 저밀도 패리티 검사 코드복호 방법 및 장치
US7752520B2 (en) 2004-11-24 2010-07-06 Intel Corporation Apparatus and method capable of a unified quasi-cyclic low-density parity-check structure for variable code rates and sizes
DE102004059331B4 (de) * 2004-12-09 2021-02-18 Robert Bosch Gmbh Handwerkzeugmaschine mit einer Kupplung
US7441178B2 (en) * 2005-02-24 2008-10-21 Keyeye Communications Low complexity decoding of low density parity check codes
US7475103B2 (en) 2005-03-17 2009-01-06 Qualcomm Incorporated Efficient check node message transform approximation for LDPC decoder
KR101390544B1 (ko) * 2005-05-13 2014-04-30 닛본 덴끼 가부시끼가이샤 Ldpc 부호화 방식에 의한 인코더 및 디코더
KR101157246B1 (ko) * 2005-05-16 2012-06-15 삼성전자주식회사 저밀도 패리티 검사 부호의 패딩 및 천공 방법
JP4293172B2 (ja) * 2005-09-13 2009-07-08 ソニー株式会社 復号装置および復号方法
JP4819470B2 (ja) * 2005-10-11 2011-11-24 三星電子株式会社 復号装置および復号方法
US7757149B2 (en) * 2005-10-12 2010-07-13 Weizhuang Xin Broadcast message passing decoding of low density parity check codes
US20070089019A1 (en) * 2005-10-18 2007-04-19 Nokia Corporation Error correction decoder, method and computer program product for block serial pipelined layered decoding of structured low-density parity-check (LDPC) codes, including calculating check-to-variable messages
US20070089016A1 (en) * 2005-10-18 2007-04-19 Nokia Corporation Block serial pipelined layered decoding architecture for structured low-density parity-check (LDPC) codes
US7818649B1 (en) * 2005-11-30 2010-10-19 Aquantia Corporation Efficient message passing scheme of iterative error correcting decoders
US8122315B2 (en) * 2005-12-01 2012-02-21 Electronics And Telecommunications Research Institute LDPC decoding apparatus and method using type-classified index
US8819518B2 (en) * 2005-12-01 2014-08-26 Thomson Licensing Apparatus and method for decoding low density parity check coded signals
US7661055B2 (en) * 2005-12-05 2010-02-09 Broadcom Corporation Partial-parallel implementation of LDPC (Low Density Parity Check) decoders
JP4807063B2 (ja) * 2005-12-20 2011-11-02 ソニー株式会社 復号装置、制御方法、およびプログラム
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
GB2434946B (en) * 2006-02-01 2008-07-23 Toshiba Res Europ Ltd Wireless communications apparatus
JPWO2007108396A1 (ja) * 2006-03-17 2009-08-06 三菱電機株式会社 通信装置、復号装置、情報伝送方法および復号方法
US7941737B2 (en) * 2006-04-19 2011-05-10 Tata Consultancy Services Limited Low density parity check code decoder
JP4662278B2 (ja) 2006-04-28 2011-03-30 富士通株式会社 エラー訂正装置、符号器、復号器、方法及び情報記憶装置
US7793201B1 (en) 2006-05-11 2010-09-07 Seagate Technology Llc Bit error detector for iterative ECC decoder
TWI318507B (en) * 2006-05-19 2009-12-11 Univ Nat Chiao Tung Method and apparatus for self-compensation on belief-propagation algorithm
JP4253332B2 (ja) 2006-07-03 2009-04-08 株式会社東芝 復号装置、方法およびプログラム
US20080109698A1 (en) * 2006-07-25 2008-05-08 Legend Silicon Hybrid min-sum decoding apparatus with low bit resolution for ldpc code
US20080052594A1 (en) * 2006-07-28 2008-02-28 Yedidia Jonathan S Method and system for replica group-shuffled iterative decoding of quasi-cyclic low-density parity check codes
CA2664918C (en) * 2006-10-26 2014-06-03 Qualcomm Incorporated Coding schemes for wireless communication transmissions
US8892979B2 (en) 2006-10-26 2014-11-18 Qualcomm Incorporated Coding schemes for wireless communication transmissions
GB0624572D0 (en) * 2006-12-08 2007-01-17 Cambridge Silicon Radio Ltd Data Proccessing in Signal Transmissions
KR100976886B1 (ko) 2006-12-22 2010-08-18 크로스텍 캐피탈, 엘엘씨 부동 베이스 판독 개념을 갖는 cmos 이미지 센서
KR20080068218A (ko) * 2007-01-18 2008-07-23 삼성전자주식회사 통신 시스템에서 데이터 수신 방법 및 장치
US20100122143A1 (en) * 2007-03-27 2010-05-13 Hughes Network Systems, Llc Method and system for providing low density parity check (ldpc) coding for scrambled coded multiple access (scma)
US8359522B2 (en) 2007-05-01 2013-01-22 Texas A&M University System Low density parity check decoder for regular LDPC codes
US8682982B2 (en) 2007-06-19 2014-03-25 The Invention Science Fund I, Llc Preliminary destination-dependent evaluation of message content
US8984133B2 (en) 2007-06-19 2015-03-17 The Invention Science Fund I, Llc Providing treatment-indicative feedback dependent on putative content treatment
US9374242B2 (en) 2007-11-08 2016-06-21 Invention Science Fund I, Llc Using evaluations of tentative message content
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
US8065404B2 (en) 2007-08-31 2011-11-22 The Invention Science Fund I, Llc Layering destination-dependent content handling guidance
US8082225B2 (en) 2007-08-31 2011-12-20 The Invention Science Fund I, Llc Using destination-dependent criteria to guide data transmission decisions
US20090100313A1 (en) * 2007-10-11 2009-04-16 The Royal Institution For The Advancement Of Learning/Mcgill University Methods and apparatuses of mathematical processing
US7930389B2 (en) 2007-11-20 2011-04-19 The Invention Science Fund I, Llc Adaptive filtering of annotated messages or the like
TWI410055B (zh) * 2007-11-26 2013-09-21 Sony Corp Data processing device, data processing method and program product for performing data processing method on computer
TWI390856B (zh) * 2007-11-26 2013-03-21 Sony Corp Data processing device and data processing method
TW200926612A (en) * 2007-12-07 2009-06-16 Univ Nat Chiao Tung Multi-mode parallelism data exchange method and its device
JP4650485B2 (ja) * 2007-12-20 2011-03-16 住友電気工業株式会社 復号装置
US8266493B1 (en) * 2008-01-09 2012-09-11 L-3 Communications, Corp. Low-density parity check decoding using combined check node and variable node
US8255758B2 (en) * 2008-01-21 2012-08-28 Apple Inc. Decoding of error correction code using partial bit inversion
JP4572937B2 (ja) * 2008-01-23 2010-11-04 ソニー株式会社 復号装置および方法、プログラム、並びに記録媒体
KR101503058B1 (ko) * 2008-02-26 2015-03-18 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서의 채널 부호화/복호화 방법 및 장치
US8327242B1 (en) 2008-04-10 2012-12-04 Apple Inc. High-performance ECC decoder
US8166364B2 (en) * 2008-08-04 2012-04-24 Seagate Technology Llc Low density parity check decoder using multiple variable node degree distribution codes
US8301979B2 (en) * 2008-10-07 2012-10-30 Sandisk Il Ltd. Low density parity code (LDPC) decoding for memory with multiple log likelihood ratio (LLR) decoders
TW201037529A (en) * 2009-03-02 2010-10-16 David Reynolds Belief propagation processor
US8458114B2 (en) * 2009-03-02 2013-06-04 Analog Devices, Inc. Analog computation using numerical representations with uncertainty
US8429498B1 (en) 2009-03-25 2013-04-23 Apple Inc. Dual ECC decoder
TWI427936B (zh) * 2009-05-29 2014-02-21 Sony Corp 接收設備,接收方法,程式,及接收系統
US8453038B2 (en) * 2009-06-30 2013-05-28 Apple Inc. Chien search using multiple basis representation
US8601352B1 (en) * 2009-07-30 2013-12-03 Apple Inc. Efficient LDPC codes
US8566668B1 (en) 2010-01-04 2013-10-22 Viasat, Inc. Edge memory architecture for LDPC decoder
US8832534B1 (en) * 2010-01-04 2014-09-09 Viasat, Inc. LDPC decoder architecture
WO2011085355A1 (en) 2010-01-11 2011-07-14 David Reynolds Belief propagation processor
US8650464B1 (en) * 2010-09-07 2014-02-11 Applied Micro Circuits Corporation Symmetric diagonal interleaving and encoding/decoding circuit and method
US8879640B2 (en) 2011-02-15 2014-11-04 Hong Kong Applied Science and Technology Research Institute Company Limited Memory efficient implementation of LDPC decoder
US9612903B2 (en) * 2012-10-11 2017-04-04 Micron Technology, Inc. Updating reliability data with a variable node and check nodes
US9094132B1 (en) 2013-01-23 2015-07-28 Viasat, Inc. High data rate optical transport network using 8-PSK
US8930789B1 (en) * 2013-01-23 2015-01-06 Viasat, Inc. High-speed LDPC decoder
KR102241416B1 (ko) 2013-09-16 2021-04-16 삼성전자주식회사 디지털 비디오 방송 시스템에서 LDPC(Low Density Parity Check) 복호기 및 LDPC 복호기의 복호화 방법
US9553608B2 (en) * 2013-12-20 2017-01-24 Sandisk Technologies Llc Data storage device decoder and method of operation
US9276610B2 (en) 2014-01-27 2016-03-01 Tensorcom, Inc. Method and apparatus of a fully-pipelined layered LDPC decoder
US9391817B2 (en) 2014-03-24 2016-07-12 Tensorcom, Inc. Method and apparatus of an architecture to switch equalization based on signal delay spread
CN103916134B (zh) * 2014-03-24 2017-01-11 清华大学 低密度奇偶校验码的混叠译码方法及多核协同混叠译码器
US10084481B2 (en) 2014-12-18 2018-09-25 Apple Inc. GLDPC soft decoding with hard decision inputs
KR101813132B1 (ko) * 2015-10-13 2017-12-28 후아웨이 테크놀러지 컴퍼니 리미티드 디코딩 장치 및 방법과 신호 전송 시스템
KR102504550B1 (ko) * 2015-12-28 2023-02-28 삼성전자주식회사 저밀도 패리티 검사 코드를 지원하는 통신 시스템에서 신호를 수신하는 장치 및 방법
US10848182B2 (en) 2018-09-13 2020-11-24 Apple Inc. Iterative decoding with early termination criterion that permits errors in redundancy part
WO2020245877A1 (ja) * 2019-06-03 2020-12-10 日本電気株式会社 量子アニーリング計算装置、量子アニーリング計算方法および量子アニーリング計算プログラム
KR20210033258A (ko) 2019-09-18 2021-03-26 삼성전자주식회사 시퀀스 처리 방법 및 장치

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3542756A (en) * 1968-02-07 1970-11-24 Codex Corp Error correcting
US3665396A (en) * 1968-10-11 1972-05-23 Codex Corp Sequential decoding
US4295218A (en) * 1979-06-25 1981-10-13 Regents Of The University Of California Error-correcting coding system
US5293489A (en) * 1985-01-24 1994-03-08 Nec Corporation Circuit arrangement capable of centralizing control of a switching network
US5271042A (en) * 1989-10-13 1993-12-14 Motorola, Inc. Soft decision decoding with channel equalization
US5157671A (en) * 1990-05-29 1992-10-20 Space Systems/Loral, Inc. Semi-systolic architecture for decoding error-correcting codes
JPH04152455A (ja) * 1990-10-16 1992-05-26 Nec Corp データ探索方法およびその装置
US5337002A (en) * 1991-03-01 1994-08-09 Mercer John E Locator device for continuously locating a dipole magnetic field transmitter and its method of operation
US5313609A (en) * 1991-05-23 1994-05-17 International Business Machines Corporation Optimum write-back strategy for directory-based cache coherence protocols
US5396518A (en) * 1993-05-05 1995-03-07 Gi Corporation Apparatus and method for communicating digital data using trellis coding with punctured convolutional codes
US5457704A (en) * 1993-05-21 1995-10-10 At&T Ipm Corp. Post processing method and apparatus for symbol reliability generation
US5526501A (en) * 1993-08-12 1996-06-11 Hughes Aircraft Company Variable accuracy indirect addressing scheme for SIMD multi-processors and apparatus implementing same
US5615298A (en) * 1994-03-14 1997-03-25 Lucent Technologies Inc. Excitation signal synthesis during frame erasure or packet loss
US5860085A (en) * 1994-08-01 1999-01-12 Cypress Semiconductor Corporation Instruction set for a content addressable memory array with read/write circuits and an interface register logic block
US5671221A (en) * 1995-06-14 1997-09-23 Sharp Microelectronics Technology, Inc. Receiving method and apparatus for use in a spread-spectrum communication system
US5867538A (en) * 1995-08-15 1999-02-02 Hughes Electronics Corporation Computational simplified detection of digitally modulated radio signals providing a detection of probability for each symbol
US5968198A (en) * 1996-08-16 1999-10-19 Ericsson, Inc. Decoder utilizing soft information output to minimize error rates
US5892962A (en) * 1996-11-12 1999-04-06 Lucent Technologies Inc. FPGA-based processor
US5909572A (en) * 1996-12-02 1999-06-01 Compaq Computer Corp. System and method for conditionally moving an operand from a source register to a destination register
US6438180B1 (en) * 1997-05-09 2002-08-20 Carnegie Mellon University Soft and hard sequence detection in ISI memory channels
GB2326253A (en) * 1997-06-10 1998-12-16 Advanced Risc Mach Ltd Coprocessor data access control
US5864703A (en) * 1997-10-09 1999-01-26 Mips Technologies, Inc. Method for providing extended precision in SIMD vector arithmetic operations
US5933650A (en) * 1997-10-09 1999-08-03 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US6195777B1 (en) * 1997-11-06 2001-02-27 Compaq Computer Corporation Loss resilient code with double heavy tailed series of redundant layers
US6073250A (en) * 1997-11-06 2000-06-06 Luby; Michael G. Loss resilient decoding technique
US6339834B1 (en) * 1998-05-28 2002-01-15 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry Through The Communication Research Centre Interleaving with golden section increments
US6247158B1 (en) * 1998-11-30 2001-06-12 Itt Manufacturing Enterprises, Inc. Digital broadcasting system and method
US6397240B1 (en) * 1999-02-18 2002-05-28 Agere Systems Guardian Corp. Programmable accelerator for a programmable processor system
FR2799592B1 (fr) 1999-10-12 2003-09-26 Thomson Csf Procede de construction et de codage simple et systematique de codes ldpc
US6473010B1 (en) * 2000-04-04 2002-10-29 Marvell International, Ltd. Method and apparatus for determining error correction code failure rate for iterative decoding algorithms
US6539367B1 (en) * 2000-05-26 2003-03-25 Agere Systems Inc. Methods and apparatus for decoding of general codes on probability dependency graphs
US20020002695A1 (en) * 2000-06-02 2002-01-03 Frank Kschischang Method and system for decoding
JP2001352257A (ja) * 2000-06-08 2001-12-21 Sony Corp 復号装置及び復号方法
JP4389373B2 (ja) * 2000-10-11 2009-12-24 ソニー株式会社 2元巡回符号を反復型復号するための復号器
US6754804B1 (en) * 2000-12-29 2004-06-22 Mips Technologies, Inc. Coprocessor interface transferring multiple instructions simultaneously along with issue path designation and/or issue order designation for the instructions
US6731700B1 (en) * 2001-01-04 2004-05-04 Comsys Communication & Signal Processing Ltd. Soft decision output generator
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
US6842872B2 (en) * 2001-10-01 2005-01-11 Mitsubishi Electric Research Laboratories, Inc. Evaluating and optimizing error-correcting codes using projective analysis
US6718504B1 (en) * 2002-06-05 2004-04-06 Arc International Method and apparatus for implementing a data processor adapted for turbo decoding
US7178080B2 (en) * 2002-08-15 2007-02-13 Texas Instruments Incorporated Hardware-efficient low density parity check code for digital communications

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
CSNG200300261014; 二木 尚, 大槻 知明: '低密度パリティ検査(LDPC)符号化OFDM方式' 電子情報通信学会技術研究報告 Vol.101 No.195, 20010712, 79〜84, 社団法人電子情報通信学会 *
JPN6011037792; Engling Yeo 他: 'VLSI architectures for iterative decoders in magnetic recording channels' Magnetics, IEEE Transactions on Volume:37, Issue:2, 200103, pp.748-755 *
JPN6011037793; Mansour, M.M. 他: 'Low-power VLSI decoder architectures for LDPC codes' Low Power Electronics and Design, 2002. ISLPED '02. Proceedings of the 2002 International Symposium , 20020812, pp.284-289 *
JPN6011037796; Levine, B. 他: 'Implementation of near Shannon limit error-correcting codes using reconfigurable hardware' Field-Programmable Custom Computing Machines, 2000 IEEE Symposium on , 20000417, pp.217-226 *
JPN6011037799; 二木 尚, 大槻 知明: '低密度パリティ検査(LDPC)符号化OFDM方式' 電子情報通信学会技術研究報告 Vol.101 No.195, 20010712, 79〜84, 社団法人電子情報通信学会 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012257287A (ja) * 2001-10-10 2012-12-27 Qualcomm Inc パリティチェックデコーダで使用するノードプロセサ
JP2014033259A (ja) * 2012-08-01 2014-02-20 Nec Engineering Ltd ターボ復号器及びそれに用いられる対数尤度比演算装置
JP2017077012A (ja) * 2012-12-03 2017-04-20 エルエヌツー ディービー,リミティド ライアビリティ カンパニー 連結コーディング・システムの先進繰り返しデコーディングおよびチャネル評価のためのシステムおよび方法

Also Published As

Publication number Publication date
JP4221503B2 (ja) 2009-02-12
US6938196B2 (en) 2005-08-30
KR20040049864A (ko) 2004-06-12
TW569548B (en) 2004-01-01
EP1442527A1 (en) 2004-08-04
KR20100005231A (ko) 2010-01-14
JP5579798B2 (ja) 2014-08-27
KR20110005897A (ko) 2011-01-19
US20030023917A1 (en) 2003-01-30
EP1442527B1 (en) 2011-01-12
KR101093313B1 (ko) 2011-12-14
EP2302803A1 (en) 2011-03-30
DE60238934D1 (de) 2011-02-24
JP2005506733A (ja) 2005-03-03
KR100958234B1 (ko) 2010-05-17
ATE495581T1 (de) 2011-01-15
EP1442527A4 (en) 2008-06-04
ES2356767T3 (es) 2011-04-13
JP2012257287A (ja) 2012-12-27
JP2015216645A (ja) 2015-12-03
JP2014180034A (ja) 2014-09-25
WO2003032499A1 (en) 2003-04-17

Similar Documents

Publication Publication Date Title
JP4221503B2 (ja) パリティチェックデコーダで使用するノードプロセサ
JP2005506733A5 (ja)
US7673223B2 (en) Node processors for use in parity check decoders
US7127659B2 (en) Memory efficient LDPC decoding methods and apparatus
US8352847B2 (en) Matrix vector multiplication for error-correction encoding and the like
KR101164283B1 (ko) 복호 장치 및 복호 방법
JP4320418B2 (ja) 復号装置および受信装置
KR20080099191A (ko) 동작 파라미터 적응형 ldpc 디코더
JP2002118474A (ja) 2元巡回符号を反復型復号するための復号器
JP2006279396A (ja) Ldpc符号検出装置及びldpc符号検出方法
JP2008035527A (ja) ハードウェア共用および直列和積アーキテクチャを用いる低密度パリティ検査復号の方法および装置
JP5333233B2 (ja) 復号装置、データ蓄積装置、データ通信システム、および復号方法
JP6395658B2 (ja) 誤り訂正復号装置、受信装置及び誤り訂正復号方法
JP4729964B2 (ja) 復号装置および復号方法
JP5500357B2 (ja) 符号化装置、および符号化方法
JP4822071B2 (ja) 復号装置および復号方法

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20081023

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20081023

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110726

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111024

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111027

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111125

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111130

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111226

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120104

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120327

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120727

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120806

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20121005