JP3964890B2 - 並列デコード可能な低密度パリティチェック(ldpc)コードを発生させる方法およびシステム - Google Patents

並列デコード可能な低密度パリティチェック(ldpc)コードを発生させる方法およびシステム Download PDF

Info

Publication number
JP3964890B2
JP3964890B2 JP2004197022A JP2004197022A JP3964890B2 JP 3964890 B2 JP3964890 B2 JP 3964890B2 JP 2004197022 A JP2004197022 A JP 2004197022A JP 2004197022 A JP2004197022 A JP 2004197022A JP 3964890 B2 JP3964890 B2 JP 3964890B2
Authority
JP
Japan
Prior art keywords
matrix
check
node
parallel
mapping matrix
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
JP2004197022A
Other languages
English (en)
Other versions
JP2005045781A (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.)
DirecTV Group Inc
Original Assignee
DirecTV Group 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
Application filed by DirecTV Group Inc filed Critical DirecTV Group Inc
Publication of JP2005045781A publication Critical patent/JP2005045781A/ja
Application granted granted Critical
Publication of JP3964890B2 publication Critical patent/JP3964890B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • H03M13/1168Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices wherein the sub-matrices have column and row weights greater than one, e.g. multi-diagonal sub-matrices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1137Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • H03M13/1165QC-LDPC codes as defined for the digital video broadcasting [DVB] specifications, e.g. DVB-Satellite [DVB-S2]
    • 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
    • H03M13/6505Memory efficient implementations

Landscapes

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

Description

関連出願
本願は“一般的な並列デコード可能なLDPCコード”と題する、2003年7月3日に出願された米国仮特許出願番号第60/484,974号に関係し、35U.S.Cセクション119(e)の下でより早い出願日の利益を主張し、この米国仮特許出願の全体は参照によりここに組み込まれている。
本発明は通信システムに関し、特にコード化システムに関する。
通信システムはコーディングを使用して、雑音のある通信チャネルにおいて信頼性のある通信を確実に行う。これらの通信チャネルは固定容量を示し、ある信号対雑音比(SNR)におけるシンボル当たりのビットに関して表現することができ、(シャノン限界として知られている)理論的な上限を規定する。結果として、コーディング設計はこのシャノン限界に近づくレートを達成することを目的としている。シャノン限界に近づくこのようなクラスのコードの1つは低密度パリティチェック(LDPC)コードである。
従来、LDPCコードは多くの欠点があることから、幅広く採用されていなかった。1つの欠点はLDPCエンコーディング技術が非常に複雑であることである。その生成行列を使用してLDPCコードをエンコードするには、非常に大きな非希薄行列を記憶することが必要である。さらに、LDPCコードは大きなブロックが効率的であることを必要とし、結果的に、LDPCコードのパリティチェック行例が希薄であっても、これらの行列の記憶が問題である。
実現の将来的な見通しから、多数の難題に直面する。例えば、記憶装置はLDPCコードが実際には広まっていない重要な理由である。LDPCデコーディングにおける主な問題の1つはメモリの編成である。メモリサイズがより大きくなると、ビット当たりの費用は低くなる事実を認識すると、LDPCデコーダ中の多量のエッジ値のための効率的なランプメモリ構造を可能にするコードアーキテクチャを研究する動機付けがある。
また、LDPCコード実現における主な難題はデコーダ中のいくつかの処理エンジン(ノード)間で接続ネットワークをどのように達成するかである。さらに、デコーディングプロセス、特にチェックノード動作における計算負荷は問題を生じる。
効率的なメモリアーキテクチャが維持されるように、設定された数の並列エンジンに対応するコードを異なる数の並列エンジンに対処するために再構成することができないことが認識されている。異なるアプリケーションは異なるデコーディング速度を必要とすることから、この非柔軟性は深刻な欠点を表す。また、この制約は半導体機能の進歩を利用および活用する能力を妨げる。例えば、処理能力が増加すると、所定のデコーディング速度に必要な並列エンジンの数は減少させなければならない。しかしながら、固定数のエンジンの設計は利用されるプロセッサ数の直接的な減少を許容しない。
したがって、効率的なデコーディングプロセスを使用するLDPC通信システムに対する必要性が存在する。また、LDPCコーディングを実現するのに必要な記憶要求を減少させる必要性も存在する。さらに、将来の技術的な進歩に容易に対処することができるデコーディングスキームに対する必要性も存在する。
これらのおよび他の必要性は本発明により取り扱われる。本発明では構成された低密度パリティチェック(LDPC)コードをデコードするアプローチが提供される。並列デコード可能なコードに対する基準が確立され、パリティチェック行列に対応するマッピング行列が発生される。第1の基準はマッピング行列の同じ行における任意の2つの異なるエントリのいずれも同じビットノードまたは同じチェックノードに接続しないということである。第2に、BGiとして示されるビットノードグループi、i=0,1,…,m−1が、i≠j、BGiおよびBGjに対して、i番目の行におけるエッジに接続するすべてのビットノードを表している場合には、これらは共通ノードをまったく持たないか、あるいは同一であることが確実となる。この基準はチェックノードにも課され、それによりCGiとして示されるチェックノードグループi,i=0,1,…,m−1が、i≠j、CGiおよびCGjに対して、i番目の行におけるエッジに接続するすべてのチェックノードを表す。CGiが共通ノードを持たないか、あるいは同一であることが検証される。これらの基準は、LDPCコードの並列デコーディング構造を活用し、効率的なメモリアーキテクチャを提供するLDPCコードとなる。n個のプロセッサより少ないプロセッサ(すなわち、m個のプロセッサ、したがってmはnの整数分数である)に対して効率的な並列処理についての3つの条件を維持するために、パリティチェック行列は、n×n密度平衡行列であるブロック行列Aijを使用して構成される。ブロック行列は行および列置換の下でBijエントリを有する行列に分割され、これはm×m密度平衡行列である。2部グラフの観点で見ると、導出コードはマッピング行列中のいくつかのエッジを削除することにより得ることができる。先の構成の下では、m個の並列エンジンを使用して、実現の柔軟性を向上させることができる。
本発明の実施形態の1つの観点にしたがうと、低密度パリティチェック(LDPC)コードのデコーディングをサポートする方法が開示される。この方法はLDPCコードに関係するパリティチェック行列に基づくマッピング行列を構成することを含む。マッピング行列は並列に動作する複数のプロセッサによりアクセス可能なランプメモリ構造を可能にする複数の並列デコード可能な条件を充足する。さらに、この方法はプロセッサによりLDPCコードをデコードするために、メモリにマッピング行列を記憶させることを含む。
本発明の実施形態の他の観点にしたがうと、低密度パリティチェック(LDPC)コードをデコードするデコーディング装置が開示される。この装置はランプメモリ構造を可能にする複数の並列デコード可能な条件を充足するマッピング行列を記憶するように構成されたメモリを含む。さらに、この装置は並列に動作する複数のプロセッサを含み、プロセッサはメモリにアクセスしてLDPCコードをデコードする。
本発明の実施形態のさらに他の観点にしたがうと、低密度パリティチェック(LDPC)コードのデコーディングをサポートする方法が開示される。この方法はLDPCコードに対応するパリティチェック行列に基づくマッピング行列を初期化することを含む。この方法はまたマッピング行列の同一行における任意の2つの異なるエントリはいずれも同一のビットノードまたは同一のチェックノードに接続しないことを決定することを含む。ビットノードグループBGiが、i≠j、BGiおよびBGjに対して、i番目の行におけるエッジに接続するすべてのビットノードを表している場合には、この方法は、BGiが共通ノードをまったく持たないか、あるいは同一であることを検証することを含む。また、チェックノードグループCGiが、i≠j、CGiおよびCGjに対して、i番目の行におけるエッジに接続するすべてのチェックノードを表す場合には、この方法はCGiが共通ノードをまったく持たないか、あるいは同一であることを検証することを含む。さらに、この方法は並列に動作している複数のプロセッサによりアクセス可能なメモリに記憶させるためにマッピング行列を出力して、記憶されたマッピング行列にしたがってLDPCコードをデコードすることを含む。
本発明のさらに別の観点、特徴および効果は、多数の特定の実施形態および構成を単に示すことにより、以下の詳細な説明から容易に明らかになり、多数の特定の実施形態および構成には本発明を実行するために企図されているベストモードが含まれる。本発明は他のおよび異なる実施形態も可能であり、そのいくつかの詳細は本発明の精神および範囲をまったく逸脱することなく、さまざまな明らかな観点で修正することができる。したがって、図面および説明は本質的に例示として考えるべきであり、制限的なものとして考えるべきではない。
本発明は添付図面において例のつもりで示され、限定のつもりで示されているものではなく、添付図面では同じ参照番号は同様な構成要素に言及している。
構成された低密度パリティチェック(LDPC)コードを効率的にデコーディングするシステム、方法およびソフトウェアを説明する。以下の説明では、説明の目的のために、本発明の完全な理解をもたらすように多くの特定な詳細を記述する。しかしながら、これらの特定な詳細なく、あるいは均等な構成で、本発明を実現してもよいことは当業者に明らかである。他の例では、よく知られた構造およびデバイスは本発明を不必要性に曖昧にすることを避けるためにブロック図で示されている。
図1は本発明の実施形態にしたがった、低密度パリティチェック(LDPC)コードを利用するように構成された通信システムの図である。デジタル通信システム100は送信機101を含み、この送信機101は通信チャネル103を通して受信機105への信号波形を発生させる。このディスクリート通信システム100では、送信機101はディスクリートセットの可能性あるメッセージを生成するメッセージ源を有し、それぞれの可能性あるメッセージは対応する信号波形を持つ。これらの信号波形は通信チャネル103により、減衰され、そうでなければ変更される。雑音チャネル103と戦うためにLDPCコードが利用される。
送信機101により発生されるLDPCコードは何らかの性能損失を生じさせることなく高速な構成を可能にする。このようなLDPCコードは(ターボコードと異なり)並列可能なデコーディングアルゴリズムを持ち、これは加算、比較およびテーブルルックアップのような簡単な動作で足りる効果がある。この並列構造を活用してメモリ要求を最小にし、さまざまな量の並列エンジン(すなわちプロセッサ)の利用に関する柔軟性を向上させる。これは図7ないし図11に関して、以下でさらに完全に説明する。さらに、慎重に設計されたLDPCコードは対象とする範囲でエラーフロアーの兆候を何ら示さない。
本発明の1つの実施形態にしたがうと、送信機101はパリティチェック行列に基づいてLDPCコードを発生させ、パリティチェック行列は受信機105との通信のためのデコーディング中での効率的なメモリアクセスを促進する。
図2は図1のシステムにおける例示的な送信機の図である。送信機200にはLDPCエンコーダ203が備えられ、LDPCエンコーダ203は情報源201からの入力を受け入れ、受信機105におけるエラー訂正処理に適した冗長性のコード化ストリームを出力する。この情報源201は離散アルファベットXからk個の信号を発生させ、LDPCコードはパリティチェック行列で特定される。
変調器205はエンコーダ203からのエンコード化メッセージを信号波形にマッピングし、信号波形は送信アンテナ207に送信され、送信アンテナ207はこれらの波形を通信チャネル103を通して放射する。したがって、エンコード化メッセージは変調され、送信アンテナ207に配信される。送信アンテナ207からの送信は以下で説明するように受信機に伝搬する。
図3は図1のシステムにおける例示的な受信機の図である。受信側では、受信機300は復調器301を含み、復調器301は送信機200からの受信信号の復調を実行する。これらの信号は復調のために受信アンテナ303において受信される。復調後、受信信号はデコーダ305に転送される。デコーダ305はビットメトリック発生器307とともにメッセージX’を発生させることにより、オリジナルソースメッセージを再構成しようとする。ビットメトリック発生器307はデコーディングプロセス中に(反復的に)デコーダ305と互いに情報を交換してもよい。これらのデコーディングアプローチは同時継続中の出願にさらに完全に説明されている。この同時継続中の出願は2003年7月3日(出願番号第10/613,824号、代理人ドケットPD−203009)に出願され、“低密度パリティチェック(LDPC)デコーダにおいてルーティングするための方法およびシステム”と題するものであり、その全体がここに組み込まれている。本発明により提供される利点を理解するために、図4で説明されているように、どのようにしてLDPCコードが発生されるかを調べることが有効である。
図4は本発明の実施形態にしたがった、希薄パリティチェック行列の図である。LDPCコードは希薄パリティチェック行列H(n-k)xnを有する長い線形ブロックコードである。一般的に、ブロック長nは数千から数万ビットの範囲をとる。例えば、長さn=8およびレート1/2のLDPCコードに対するパリティチェック行列が図4に示されている。同じコードは図5に関して2部グラフにより等価的に表すことができる。
図5は図4の行列のLDPCコードに対する2部グラフの図である。パリティチェック式は、各チェックノードについて、すべての隣接ビットノードの(GF(ガロア域)(2)に対する)合計が0に等しくなることを意味する。図に見られるように、ビットノードはグラフの左側を占め、予め定められた関係にしたがって、1つ以上のチェックノードと関係している。例えば、チェックノードm1に対応して、以下の表現n1+n4+n5+n8=0がビットノードに関して存在する。
LDPCデコーダ305はメッセージ通過デコーダとして考えられ、それによりデコーダ305はビットノードの値を発見することを目的としている。このタスクを達成するために、ビットノードとチェックノードは互いに繰り返し通信する。この通信の性質を以下に説明する。
チェックノードからビットノードについては、各チェックノードは隣接ビットノードに対して、他の隣接ビットノードから来る情報に基づいてそのビットノードの値と考えられる推定値(“オピニオン”)を提供する。例えば、先の例において、n4、n5およびn8の合計がm1にとって0の“ように見える”場合には、m1はn1に対してn1の値は0であると思うことを示し(なぜならn1+n4+n5+n8=0)、そうでなければ、m1はn1に対して、n1の値は1であると思えることを示す。さらに、軟判定デコーディングに対して、信頼性の尺度が加えられる。
ビットノードからチェックノードについては、各ビットノードは隣接チェックノードに対して、それの他の隣接チェックノードから来るフィードバックに基づいてそれ自体の値についての推定値を中継する。先の例では、n1は2つの隣接チェックノードm1およびm3のみを有する。m3から来るn1のへのフィードバックが、n1の値がおそらく0であることを示す場合には、n1はn1自体の値の推定値は0であることをm1に通知する。ビットノードが2つより多い隣接チェックノードを持つケースでは、ビットノードは、それと通信しているチェックノードに対して判定を報告する前に、それの他の隣接チェックノードから来るフィードバックにおいて多数決(軟判定)を実行する。先のプロセスはすべてのビットノードが正しい(すなわち、すべてのパリティチェック式が満たされる)と考えられるまで、あるいは予め定められた最大数の反復に達して、それによりデコーディングの失敗が宣言されるまで繰り返される。
図6は本発明の実施形態にしたがった、図3のLDPCデコーダの動作のフローチャートである。LDPCの最も顕著な利点の1つは並列デコーディングに対する可能性であることが認識される。LDPCコードの2部グラフとデコーディングアルゴリズムを調べると明らかである。特に、ビットノード(またはチェックノード)を処理するときに、処理中に中間データの交換がないことから、すべてのビットノード(またはチェックノード)を同時に処理できることは明らかである。各ビットノードiに対して、特定ビットの対数最尤比が論理1ではなく論理0であることを表す受信値uiが存在する。これは“チャネル値”と呼ばれる。例として、LDPCコードをデコードするメッセージ解析アルゴリズムを説明する。
ステップ601において、デコーダ305の初期化が実行され、これにより、2部グラフ(図5)中の各エッジに値が割り当てられる。この値はエッジが接続されるビットノードに関係するチャネル値に等しい。次に、ステップ603で、チェックノードが更新される。すなわち、チェックノード処理の最後において、すべてのエッジ値が更新される。e1,e2,…,evが特定のチェックノードに接続されたすべてのエッジのすべての値を表示するとすれば、更新されるエッジ値は次の通りである。
i=1,2,…,vに対して、ei=g(e1,e2,…,ei-1,ei,…ev
ここで、g(a,b)=ln((1+ea+b)/(ea+eb))である。式g(a,b,c)=g(g(a,b),c)は機能的に計算される。
ステップ605において、すべてのチェックノードを処理した後に、ビットノードは更新されたエッジ値により処理される。ビットノード処理の目的は、エッジ値をさらに更新することである。e1,e2,…,evがこの特定のビットノードに接続されたすべてのエッジのエッジ値を表示するとすれば、更新されるエッジ値は次の通りである。
i=e1+e2+…,ei-1+ei+…ev
ステップ607で、プロセスは事後確率情報を出力し、パリティチェック式が満たされているか否か、あるいは構成可能な最大反復数に到達したかを決定する(ステップ609)。これらの式が満たされない場合には、ステップ603−607が反復的に実行される。ステップ611において、最終反復では、1つのビットノードに関係するすべてのエッジ値が互いに合計され、さらにチャネル値と合計されて、最終判定メトリックが形成される。
LDPCデコーダ305は高度並列システムとして実現できるので、チェックノードとビットノードとの間の相互接続を実現するのに2つのアプローチ、(1)完全並列アプローチ、(2)部分並列アプローチが存在する。完全並列アーキテクチャでは、すべてのノードとそれらの相互接続は物理的に実現される。このアーキテクチャの利点は速度である。しかしながら、完全並列アーキテクチャはすべてのノードとそれらの接続を実現する際により複雑さを伴うかもしれない。したがって、完全並列アーキテクチャでは、複雑さを減少させるためにより少ないブロックサイズであることが要求される。
LDPCコードを実現する第2のアプローチは、ノード総数の部分集合のみを物理的に実現し、これらの制限された数の“物理的な”ノードのみを使用して、コードのすべての“機能”ノードを処理することである。LDPCデコーダ305の動作はかなり簡単に作り、並列に実行できるが、設計におけるさらなる挑戦は“ランダム”に分布されたビットノードとチェックノードとの間にどのように通信を確立するかに関係する。
図7は本発明の実施形態にしたがった、LDPCデコーダの構成部品の図である。デコーダ305は並列プロセッサの使用により図7のデコーディングプロセスを実行する。示されているように、デコーダ305はビットノードプロセッサ701とチェックノードプロセッサ703を含む。これらは対応してビットノード動作とチェックノード動作を実行する。ビットノード更新またはチェックノード更新の中間エッジ値はエッジメモリ705にバッファされる。また、1つのビットノード処理中に新しいエッジ値を形成する際の部分合計も、一般的にはローカル的にプロセッサにバッファされる。チャネルメモリ707はチャネルからの信頼性情報を保持する。図に見られるように、チャネル信頼メモリ707はビットノード処理においてのみ使用される。
デコーダ305の設計は多数の工学的トレードオフ、例えば並列プロセッサ数対デコーディング速度、およびメモリサイズのトレードオフを伴う。1つの極端な例では、単一プロセッサを使用して、1つのノードから他のノードにシーケンシャルにコード全体をデコードすることができる。しかしながら、このアプローチは典型的な良好LDPCコードに対して、非常に多いノード数および反復数となるために、ほとんど有用ではない。他の極端な例はノード数と同じくらい多いプロセッサを使用することである。これは最高のデコーディング速度と、残念ながら最高の費用を生じる。実際のデコーダはこれらの2つの極端なアプローチ間で設計される。
明らかに、デコーディング速度と、ビットノードおよび/またはチェックノードプロセッサ数との間にトレードオフが存在する。ビットノードプロセッサ701とチェックノードプロセッサ703は別の構成部品として示されているが、データパスの一部を共有できるように、ビットノードプロセッサ701はチェックノードプロセッサ703と組み合わせることができることが企図されている。代わりに、処理前にエッジ値を変換することにより、ビットノードプロセッサ701はチェックノードプロセッサ703と同一とすることができる。また、ビットノードプロセッサ701の数はチェックノードプロセッサ703の数と同じである必要はないことに留意すべきである。
また、効率的なアーキテクチャは任意に並列処理エンジンの数を取り扱うことはできない。並列処理数において何らかの自由度を有して、技術改良の進展に対処する構成の柔軟性を提供することが望ましい。例えば、コードが360個の並列エンジンを持つように設計されている場合には、集積回路技術が向上するにしたがって、回路は2倍の速さで動作することができる。したがって、同じコードを再構成して180個の並列エンジンを持つようにしながら、同じデコーディングアーキテクチャを維持することが望ましい。
メモリ構造に関して、LDPCデコーダ305は各プロセッサ701、703の近くにエッジメモリ705を配置する。レジスタまたはランダムアクセスメモリ(RAM)をメモリ705に対して利用することができる。ロングコードに対して、レジスタの使用はRAMよりもかなり高価である。RAMに対して、ビット当たりの費用はRAMのサイズが増加するにしたがって減少することが認識される。したがって、すべてのエッジ値が1つのRAMに機能的にひとまとめにされるように、できる限り多くのRAMを互いにひとまとめにすることが効率的である。
任意のLDPCコードでは図7のデコーダアーキテクチャを有効にサポートすることができないことが認識される。これは標準的なRAMアーキテクチャを調べることにより明らかになる。以下の考察に着目する。RAMは予め規定された幅および深さを持つメモリであり、行方向から読み出し、行方向に書き込むことができる。これは、1アクセスサイクルにおいて、同じ行内の値のみにアクセスすることができることを意味する。“ランダム”は1つのアクセスサイクルから次のアクセスサイクルに任意の順序で行をアクセスすることができることを単に意味している。したがって、効率の観点から、任意の所定アクセスサイクルにおいて、各ビットノードプロセッサ701(チェックノード側で処理するときには、チェックノードプロセッサ703)には同じ量のエッジ値入力が供給されなければならないことは明らかである。したがって、任意の所定の瞬間には、効率的なデコーダアーキテクチャは処理エンジンを飢えさせるべきではない。
さらに、任意の所定時間において1つのプロセッサを特定のビットノード(またはチェックノード)の専用にすることが望ましい。すなわち、プロセッサが1つのビットノードに関係するエッジを更新し終えるまで、プロセッサは異なるビットノード(またはチェックノード)にスイッチすべきではない。
次に説明するように、本発明は並列デコード可能なコードの概念を導入して、図7のアーキテクチャのさまざまな特性に対処する。
図8は、本発明のさまざまな実施形態にしたがった、効率的な並列デコーディング用のマッピング行列を発生させるプロセスのフローチャートである。並列デコード可能なコードは効率的なメモリ構造を示すように規定される。パリティチェック行列の非0エントリを多数の規定された特性を充足するm×n行列(マッピング行列)にマッピングする1対1マッピングがある場合には、LDPCコードは、ランプメモリを有するn個の並列エンジンでデコード可能である。マッピング行列を発生させるプロセスを以下で説明する。
ステップ801において、マッピング行列はパリティチェック行列に基づいて発生される。効率的な並列デコーディングに対するさまざまな条件または特性を保証するために、このマッピング行列は検証される。ステップ803において、マッピング行列の同じ行における任意の2つの異なるエントリがいずれも同じビットノードまたは同じチェックノードに接続しないように、行列が検証される。BGiとして表記されるビットノードグループi,i=0,1,…,m−1が、i≠j、BGiおよびBGjに対して、i番目の行におけるエッジに接続されているすべてのビットノードであるとすれば、これらが共通ノードがまったくないか、あるいは同一であることをプロセスは保証する(ステップ805)。同様に、ステップ807において、CGiとして表記されるチェックノードグループi,i=0,1,…,m−1が、i≠j、CGiおよびCGjに対して、i番目の行におけるエッジに接続されているすべてのチェックノードであるとすれば、CGiが何らかの共通ノードを持たないか、あるいは同一であることを検証する。
ステップ803−807の3つの条件が効率的な並列処理を生み出すために必要である。ステップ809において、マッピング行列が出力され、(ステップ811において)エッジメモリ705に記憶される。例示的な実施形態では、マッピング行列はメモリ構造を表している。このメモリはマッピング行列とは機能的に均等であるが物理的に異なるメモリデバイスとすることができる。ステップ803の特性は各アクセスサイクルにおいて各プロセッサ(例えばプロセッサ701,703)が各アクセスサイクル中にエッジメモリ705から1つ、そしてただ1つの値を受信することを保証する。
n個の並列処理エンジンにより、すべてのプロセッサは均一にロードされる。(ステップ805による)第2の特性はビットノードをサイズnのグループに分割する。2つのビットノードは、同じ行にマッピングされたノードに関係するエッジがある限り、同じグループである。さらに、アクティブに処理されている各ビットノード(またはチェックノード)に対する処理中に、いくつかの中間結果を保持する必要がある。したがって、1組のビットノード(またはチェックノード)の処理は新しいビットノード(またはチェックノード)を処理する前に終了しなければならない。これはステップ805および807の第2および第3の特性により保証される。
図9は本発明の実施形態にしたがった、並列デコーディングをサポートするためにエッジ値のマッピング行列を記憶するメモリを備えたLDPCデコーダの図である。m×nマッピング行列はメモリ901に記憶され、エッジ値はn個の並列プロセッサ903に提供される。説明のために、マッピング行列を使用することを、以下のパリティチェック行列に関して記述する。
Figure 0003964890
デコーディング中、パリティチェック行列の各非0エントリはエッジ値に関係する。これらのエッジ値は次のようにラベルを付けることができる。
Figure 0003964890
エッジ値は以下の9×4行列に一対一にマッピングすることができる。
Figure 0003964890
行列がメモリを反映していると仮定して、先の行列は100%利用の稠密行列である。言い換えると、メモリのすべてのセルは完全に利用されている。このマッピングが前述した効率的な並列デコーディングに対する3つすべての特性を充足することは容易に検証することができる。
この例では、ビットノードは4つのグループに分割され、各グループは4つのビットノードを持ち、これによりビットノードiはオリジナルパリティチェック行列の列iに関係するビットノードである。これらのビットノードグループは{1,2,3,4}、{5,6,7,8}、{9,10,11,12}および{13,14,15,16}である。
同様に、チェックノードiはオリジナルパリティチェック行列の行iに関係するチェックノードである。チェックノードは2つのグループ{1,2,3,4}および{5,6,7,8}に分割される。この例では、4つの並列プロセッサが使用される(n=4)。ビットノード処理に関して、第1行は4つの並列プロセッサ903に読み込まれ、これにより中間結果が生成されて、独立したメモリにバッファされる。その理由は最終目的がビットノード{1,2,3,4}に関係するエッジを更新することだからである。これは{1,2,3,4}のすべてのオリジナルエッジ値が処理された後に達成される。
ビットノード{1,2,3,4}に関係するエッジ値はエッジ行列の最初の3つの行に存在することに留意すべきである。したがって、次のアクセスサイクルでは、第2行または第3行がアクセスされ続ける。プロセスが他の任意の行で開始する場合には、付加的な中間結果をバッファする必要がある。ビットノード{1,2,3,4}に関係するすべての行が処理され、エッジ値が更新される場合には、ビットノードの他のグループが処理される。
同様に、先の手順がチェックノードにおいて実行される。すなわち、チェックノードはグループで処理され、このグループに関係するすべてのエッジ値が更新された後に、次のグループが処理される。各アクセスサイクルでは、アクティブに処理されている各ノードに対して、エッジ行列から正に1つの値がフェッチされ、それによりいずれのプロセッサ903もオーバロードされない(あるいはその事象に対して、十分に利用されないことはない)ことを保証する。
(図8のステップ803−807で説明したような)効率的な並列処理に対する3つの条件はいくぶん制限的にすることができ、それにより任意LDPCコードは一般的にこれらの条件を充足しないことが認識される。この制限は以下で説明するようにマッピング行列から異なる行列を導出することにより緩和することができる。
図10は本発明のさまざまな実施形態にしたがった、並列デコーディングに対応する導出マッピング行列を発生させるプロセスのフローチャートである。導出マッピング行列の発生をより理解するために、以下の通り、いくつかの用語および原理を述べる。行列のすべての行およびすべての列が正に同じ数の非0エントリを有するのであれば、n×n行列は“稠密均衡行列”と呼ぶ。稠密均衡行列の1つの例はすべて0の行列である。この行列はLDPCコード構成に対して広く使用される。
稠密均衡行列の他の例は以下の特性を有する行列である。b01…bn-1 がバイナリベクトルであり、aがn対して互いに素であることを仮定すると、bai+jに等しいi番目の行とj番目の列におけるエントリを有する行列は稠密均衡行列である。特に、a=1のとき、循環行列となる。
稠密均衡行列の任意の行および/または列置換は稠密均衡行列になることに留意すべきである。しかしながら、異なる成分行列が異なって置換されてもよいことから、異なる置換の構成単位を使用することにより基本的に異なるLDPCコードとなる。稠密均衡行列に対して、1つの行における非0エントリの数がkである場合、一度に各行から1つの非0エントリをとることにより、すべての非0エントリをk×nの稠密行列に(一対一に)マッピングすることができる。
以下の原理が提案される(原理1)。ブロック行列と均等な置換であるLDPCコードのパリティチェック行列がある場合にのみ、nの効率的な並列デコーディングに対して、LDPCコードは3つすべての条件を充足する。ブロック行列は次の通りである。
Figure 0003964890
このようなことであるから、成分ブロック行列Aijのそれぞれはn×n稠密均衡行列である。このようにして構成された行列はレギュラLDPCコードを必ずしも生成しないことに留意すべきである。
パリティチェック行列の構造に原理により課される制約があるとすると、一般的なパリティチェック行列はこれらの条件を充足しないことは明らかである。したがって、効率的なメモリアクセスでデコードできるように、この構造的制約を有するコードを設計することが必要である。
n個の並列エンジンで効率的な並列デコードが可能なコードは(n以外のエンジン数を持つ)他の量に対して効率的な並列デコード可能ではないかもしれないことが認識される。先に着目したように、処理における将来の進展に対処するために、将来の受信機に対して、より少ない並列処理が望まれる。しかしながら、減少された並列処理のケースであっても、効率的な並列処理に対するすべての条件が充足される必要がある。
n個のプロセッサよりも少ないプロセッサに対して、効率的な並列処理のための3つの条件を保つために、他の原理が提案される(原理2)。以下の行列がパリティチェック行列であるとし、それによりブロック行列Aijのそれぞれがn×n稠密均衡行列であるとする。
Figure 0003964890
ijのそれぞれがm×m稠密均衡行列であるように、行および列置換の下でA11を以下の行列に分割でき、他のすべてのAij≠A11に対してブロック行列をA11と同じ行および列置換の下で、ブロック稠密均衡部分行列に分割できる場合、
Figure 0003964890
LDPCコードは以下の通りに規定される。
Figure 0003964890
先の行列はnとmの両並列処理で効率的な並列処理に対する条件を充足する。
例として、以下のことが規定される。Aijはn×nの循環行列であり、mはnの任意の整数分数(integer fraction)である。Aijの行および列は0,1,…nからラベルが付けられる。その行および列インデックスがmを法とする定数に等しいすべてのエレメントからなる部分行列も循環行列である。結果として、同じ行および列の置換の下のすべてのAijは再度循環部分行列に分割することができる。これは成分コードとしてAijを持つLDPCコードがnおよびm並列処理(ここでmはnの整数分数である)で効率的な並列処理に対する条件を充足することを意味する。
任意のパリティチェック行列Hを有する任意のLDPCコードが与えられた場合、他のLDPCコードはHの非0エントリのいくつかを0に変換することにより、Hから導出することができる。この方法で得られた任意のコードは“オリジナルLDPCコードの導出コード”として呼ばれる。ステップ1001において、n個の並列デコード可能なコードに対するマッピング行列が導出される。オリジナルコードが、n個の並列エンジンチェック行列の完全な稠密メモリによるn個の並列デコーディングである場合には、任意の導出コードは減少された稠密メモリ行列によりn個で並列デコード可能なものとすることができる。
2部グラフの観点では、導出コードはいくつかのエッジを削除することにより得ることができる(ステップ1003)。導出コードのマッピング行列は本質的にベースコードのマッピング行列と同じであるが、削除されたエッジに対応するエントリは“ドントケア”(すなわちヌル値)としてマークすることができる。したがってこれらのメモリセルは無駄となり、アクセスサイクルはヌル値をフェッチする際に消費される。しかしながら、エッジ削除の総数が比較的少ない限り、効率には大きな影響を与えない。このような導出コードは、エンコーディングの容易さや、改善された距離特性のような、他の所望特性を示すことができる。ステップ1005において、導出マッピング行列が出力される。
図11は本発明の実施形態にしたがった、並列デコーディングをサポートするエッジ値の導出マッピング行列を記憶するメモリを備えたLDPCデコーダの図である。この行列はm個のプロセッサ1103によりアクセスするためにメモリ1101に記憶される。この構成の下では、使用される並列エンジンの数はかなり柔軟性があるが、効率的なメモリアーキテクチャが維持される。
図12は本発明にしたがった実施形態を実現することができるコンピュータシステムを図示している。コンピュータシステム1200は、バス1201または情報を通信する他の通信メカニズムと、バス1201に結合され情報を処理するプロセッサ1203とを含む。コンピュータシステム1200は、バス1201に結合され、情報およびプロセッサ1203により実行されるべき命令を記憶する、ランダムアクセスメモリ(RAM)または他の動的記憶デバイスのような、メインメモリ1205も含む。メインメモリ1205は、プロセッサ1203により実行されるべき命令を実行中に、一時的な変数や他の中間的な情報を記憶するのにも使用することができる。コンピュータシステム1200は、バス1201に結合され、プロセッサ1203のために静的情報および命令を記憶するリードオンリーメモリ(ROM)1207や他の静的記憶デバイスをさらに含む。磁気ディスクや光学ディスクのような記憶デバイス1209は、情報および命令を記憶するためにバス1201に付加的に結合される。
コンピュータシステム1200は、情報をコンピュータユーザに表示するために、陰極線管(CRT)、液晶ディスプレイ、アクティブマトリクスディスプレイ、またはプラズマディスプレイのようなディスプレイ1211に、バス1201を介して結合されてもよい。英数字および他のキーを含むキーボードのような入力デバイス1213は、情報およびコマンド選択をプロセッサ1203に通信するためにバス1201に結合される。他のタイプのユーザ入力デバイスは、方向情報およびコマンド選択をプロセッサ1203に通信し、ディスプレイ1211上のカーソルの動きを制御するための、マウス、トラックボール、またはカーソル方向キーのようなカーソル制御1215である。
本発明の1つの実施形態にしたがうと、LDPCコードの並列デコーディングはメインメモリ1205に含まれている命令の配列を実行するプロセッサ1203に応答して、コンピュータシステム1200により提供される。このような命令は、記憶デバイス1209のような他のコンピュータ読み取り可能な媒体からメインメモリ1205に読み込むことができる。メインメモリ1205に含まれている命令の配列の実行は、プロセッサ1203にここで説明するプロセスステップを実行させる。マルチ処理構成の1つ以上のプロセッサを使用して、メインメモリ1205に含まれている命令を実行してもよい。代替実施形態では、ソフトウェア命令の代わりにあるいはソフトウェア命令と組み合わせてハードワイヤード回路を使用して、本発明の実施形態を実現してもよい。したがって、本発明の実施形態はハードウェア回路およびソフトウェアの何らかの特定な組み合わせに限定されるものではない。
コンピュータシステム1200はバス1201に結合された通信インターフェイス1217も含む。通信インターフェイス1217はローカルネットワーク1221に接続されたネットワークリンク1219に結合している2方向データ通信を提供する。例えば、通信インターフェイス1217はデジタル加入者線(DSL)カードまたはモデム、統合サービスデジタルネットワーク(ISDN)カード、ケーブルモデム、または電話モデムであって、対応するタイプの電話回線に対してデータ通信接続を提供してもよい。他の例として、通信インターフェイス1217はローカルエリアネットワーク(LAN)カード(例えば、イーサーネット(登録商標)や非同期転送モード(ATM)ネットワーク)であって、互換性LANへのデータ通信接続を提供してもよい。ワイヤレスリンクを実現することもできる。このような任意の構成において、通信インターフェイス1217は、電気、電磁気または光の信号を送受信し、これらの信号はさまざまなタイプの情報を表すデジタルデータストリームを伝える。さらに、通信インターフェイス1217は、ユニバーサルシリアルバス(USB)インターフェイス、PCMCIA(パーソナルコンピュータメモリカード国際協会)インターフェイスなどのような、周辺機器インターフェイスデバイスを含むことができる。
ネットワークリンク1219は一般的に1つ以上のネットワークを通して他のデータデバイスに対してデータ通信を提供する。例えば、ネットワークリンク1219はローカルネットワーク1221を通してホストコンピュータ1223への接続を提供し、ローカルネットワーク1221はネットワーク1225(例えば、ワイドエリアネットワーク(WAN)または“インターネット”として現在一般的に言及されているグローバルパケットデータ通信ネットワーク)への接続性、またはサービスプロバイダにより運営されるデータ装置への接続性を有する。ローカルネットワーク1221およびネットワーク1225はともに電気、電磁気または光の信号を使用して、情報および命令を伝える。さまざまなネットワークを通る信号およびネットワークリンク1219上の信号で通信インターフェイス1217を通る信号は、情報および命令を伝達する搬送波の例示的な形態である。通信インターフェイス1217はコンピュータシステム1200とデジタルデータを通信する。
コンピュータシステム1200はネットワーク、ネットワークリンク1219および通信インターフェイス1217を通して、メッセージを送信し、プログラムを含むデータを受信することができる。インターネットの例では、(示されていない)サーバは、ネットワーク1225、ローカルネットワーク1221および通信インターフェイス1217を通して、本発明の実施形態を実現するアプリケーションプログラムに属する要求されたコードを送信してもよい。プロセッサ1203は受信している間に送信されたコードを実行し、および/またはコードを後での実行のために記憶デバイス1209または他の不揮発性記憶装置に記憶させてもよい。この方法では、コンピュータシステム1200は搬送波の形態でアプリケーションコードを得てもよい。
ここで使用されているような用語“コンピュータ読み取り可能な媒体”は、実行のためにプロセッサ1203に命令を提供することに関係する任意の媒体に関係する。このような媒体は多くの形態をとることができ、これらに限定されないが、不揮発性媒体、揮発性媒体および送信媒体が含まれる。不揮発性媒体には、例えば記憶デバイス1209のような光または磁気ディスクが含まれる。揮発性媒体にはメインメモリ1205のような動的メモリが含まれる。送信媒体は、バス1201を構成するワイヤを含む、同軸ケーブル、銅線および光ファイバを含む。送信媒体は、無線周波数(RF)および赤外線(IR)データ通信中に発生されるもののような、音響、光または電磁気の波の形態もとることができる。コンピュータ読み取り可能な媒体の一般的な形態は、例えばフロッピ(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、他の任意の磁気媒体、CD−ROM、CDRW、DVD、他の任意の光媒体、パンチカード、紙テープ、光マークシート、穴や他の光学認識可能な表示のパターンを有する他の任意の物理媒体、RAM、PROM、EPROM、FLASH−EPROM、他の任意のメモリチップまたはカートリッジ、搬送波、あるいはコンピュータが読み取ることができる他の任意の媒体を含む。
さまざまな形態のコンピュータ読み取り可能な媒体は実行するためにプロセッサに命令を提供することに関係してもよい。例えば、本発明の少なくとも一部を実行する命令は遠隔コンピュータの磁気ディスク上に最初に記憶されてもよい。このようなシナリオでは、遠隔コンピュータは命令をメインメモリにロードして、その命令をモデムを使用して電話回線を通して送信する。ローカルコンピュータシステムのモデムは電話回線上でデータを受信し、赤外線送信機を使用してデータを赤外線信号に変換し、その赤外線信号を、パーソナルデジタルアシスタンス(PDA)およびラップトップのようなポータブルコンピューテングデバイスに送信する。ポータブルコンピューテングデバイス上の赤外線検出器は赤外線信号により運ばれる情報および命令を受信し、データをバス上に置く。バスはそのデータをメインメモリに伝え、プロセッサはこのメインメモリから命令を取り出して実行する。メインメモリにより受信される命令は、オプション的に、プロセッサにより実行される前または後に記憶デバイス上に記憶されてもよい。
このように、本発明のさまざまな実施形態は複数の受信機への低密度パリティチェック(LDPC)コード化信号のブロードキャスト送信をサポートするアプローチを提供する。受信機はLDPCデコーダを含み、LDPCデコーダはLDPC信号をデコードして、デコード化信号を出力するとともに、入力信号をエンコードする。入力信号はデコード化信号とすることができ、これにより干渉相殺のために再エンコード化信号を使用する。上記アプローチは受信機中に独立した専用エンコーダを採用することを避ける効果がある。
本発明は多数の実施形態および構成とともに説明したが、本発明はそのように制限されるものではなく、さまざまな変形および均等構成をカバーし、これらも特許請求の範囲の範囲に入る。
図1は、本発明の実施形態にしたがった、低密度パリティチェック(LDPC)コードを利用するように構成された通信システムの図である。 図2は、図1のシステムにおける例示的な送信機の図である。 図3は、図1のシステムにおける例示的な受信機の図である。 図4は、本発明の実施形態にしたがった、希薄パリティチェック行列の図である。 図5は、図4の行列のLDPCコードの2部グラフの図である。 図6は、本発明の実施形態にしたがった、図3のLDPCデコーダの動作のフローチャートである。 図7は、本発明の実施形態にしたがった、LDPCデコーダの構成部品の図である。 図8は、本発明のさまざまな実施形態にしたがった、効率的な並列デコーディングのためにマッピング行列を発生させるプロセッサのフローチャートである。 図9は、本発明の実施形態にしたがった、並列デコーディングをサポートするためのエッジ値のマッピング行列を記憶するメモリを有するLDPCデコーダの図である。 図10は、本発明のさまざまな実施形態にしたがった、並列デコーディングに対処する導出マッピング行列を発生させるプロセッサのフローチャートである。 図11は、本発明の実施形態にしたがった、並列デコーディングをサポートするエッジ値の導出マッピング行列を記憶するメモリを有するLDPCデコーダの図である。 図12は、本発明の実施形態にしたがった、LDPCコードのエンコーディングおよびデコーディングのプロセスを実行することができるコンピュータシステムの図である。

Claims (13)

  1. 低密度パリティチェック(LDPC)コードのデコードをサポートする方法において、
    LDPCコードに関係するパリティチェック行列に基づいてm×nマッピング行列を構成することと、
    プロセッサ(903,1103)によりLDPCコードをデコードするために、マッピング行列をメモリ(901,1101)に記憶させることとを含み、
    マッピング行列は並列動作している複数のn個のプロセッサ(903,1103)によりアクセス可能な単一メモリ構造(901,1101)を可能にする複数の並列デコード可能な条件を充足し、
    mとnは整数であり、
    並列デコード可能な条件は、
    マッピング行列の同一行における任意の2つの異なるエントリのいずれも同一ビットノードまたは同一チェックノードに接続されていないことを決定することと、
    i≠j、BG i およびBG j に対して、ビットノードグループBG i が、i番目の行におけるエッジに接続されたすべてのビットノードを表している場合には、BG i が共通ノードをまったく持たないか、あるいは同一であるかを検証することと、
    i≠j、CG i およびCG j に対して、チェックノードグループCG i が、i番目の行におけるエッジに接続されたすべてのチェックノードを表している場合は、CG i が共通ノードをまったく持たないか、あるいは同一であるかを検証することとを含む方法。
  2. パリティチェック行列はn×n密度平衡行列のエントリを有するブロック行列と等価な置換である請求項1記載の方法。
  3. n×n密度平衡行列のエントリの1つはm×m密度平衡行列であり、n×n密度平衡行列の他のエントリはブロック密度平衡部分行例に分割可能である請求項記載の方法。
  4. LDPCコードは、8−PSK(位相シフトキーイング)、16−QAM(直角位相振幅変調)、16−APSK(振幅位相シフトキーイング)、32−APSKおよびQPSK(直角位相シフトキーイング)のうちの1つを含む信号配列にしたがって変調される信号により表される請求項1記載の方法。
  5. 信号はデジタルビデオブロードキャストにしたがって衛星リンクを通して送信される請求項記載の方法。
  6. 低密度パリティチェック(LDPC)コードをデコードするデコーディング装置において、
    単一メモリ構造(901,1101)を可能にする複数の並列デコード可能な条件を充足するm×nマッピング行列を記憶するように構成されたメモリ(901,1101)と、
    並列に動作し、メモリ(901,1101)にアクセスしてLDPCコードをデコードする複数のn個のプロセッサ(903,1103)とを具備し、
    mとnは整数であり、
    並列デコード可能な条件は、
    マッピング行列の同一行における任意の2つの異なるエントリのいずれも同一ビットノードまたは同一チェックノードに接続されていないことを決定することと、
    i≠j、BG i およびBG j に対して、ビットノードグループBG i が、i番目の行におけるエッジに接続されたすべてのビットノードを表している場合には、BG i が共通ノードをまったく持たないか、あるいは同一であるかを検証することと、
    i≠j、CG i およびCG j に対して、チェックノードグループCG i が、i番目の行におけるエッジに接続されたすべてのチェックノードを表している場合は、CG i が共通ノードをまったく持たないか、あるいは同一であるかを検証することとを含む装置。
  7. メモリ(901,1101)はマッピング行列内のエッジ値を削除することによりマッピング行列に基づいて構成された導出マッピング行列を記憶し、新しいマッピング行列はm個の並列プロセッサ(903,1103)により使用され、mはnよりも小さい請求項記載の装置。
  8. パリティチェック行列はn×n密度平衡行列のエントリを有するブロック行列と等価な置換である請求項記載の装置。
  9. n×n密度平衡行列のエントリの1つはm×m密度平衡行列であり、n×n密度平衡行列の他のエントリはブロック密度平衡部分行例に分割可能である請求項記載の装置。
  10. LDPCコードは、8−PSK(位相シフトキーイング)、16−QAM(直角位相振幅変調)、16−APSK(振幅位相シフトキーイング)、32−APSKおよびQPSK(直角位相シフトキーイング)のうちの1つを含む信号配列にしたがって変調される信号により表される請求項記載の装置。
  11. 信号はデジタルビデオブロードキャストにしたがって衛星リンクを通して送信される請求項10記載の装置。
  12. 低密度パリティチェック(LDPC)コードのデコードをサポートする方法において、
    LDPCコードに対応するパリティチェック行列に基づくm×nマッピング行列を記憶することと、
    マッピング行列の同一行における任意の2つの異なるエントリのいずれも同一ビットノードまたは同一チェックノードに接続されていないことを決定することと、
    i≠j、BGiおよびBGjに対して、ビットノードグループBGiが、i番目の行におけるエッジに接続されたすべてのビットノードを表している場合には、BGiが共通ノードをまったく持たないか、あるいは同一であるかを検証することと、
    i≠j、CGiおよびCGjに対して、チェックノードグループCGiが、i番目の行におけるエッジに接続されたすべてのチェックノードを表している場合には、CGiが共通ノードをまったく持たないか、あるいは同一であるかを検証することと、
    並列に動作し、記憶されているマッピング行列にしたがってLDPCコードをデコードする複数のn個のプロセッサ(903,1103)によりアクセス可能なメモリ(901,1101)に記憶させるためにマッピング行列を出力することとを含み、
    mとnは整数である方法。
  13. 方法は、マッピング行列内のエッジ値を削除して導出マッピング行列を出力することをさらに含み、
    導出マッピング行列はm個の並列プロセッサ(903,1103)により使用され、mはnよりも小さい請求項12記載の方法。
JP2004197022A 2003-07-03 2004-07-02 並列デコード可能な低密度パリティチェック(ldpc)コードを発生させる方法およびシステム Expired - Fee Related JP3964890B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US48497403P 2003-07-03 2003-07-03

Publications (2)

Publication Number Publication Date
JP2005045781A JP2005045781A (ja) 2005-02-17
JP3964890B2 true JP3964890B2 (ja) 2007-08-22

Family

ID=33435280

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004197022A Expired - Fee Related JP3964890B2 (ja) 2003-07-03 2004-07-02 並列デコード可能な低密度パリティチェック(ldpc)コードを発生させる方法およびシステム

Country Status (7)

Country Link
US (1) US7296208B2 (ja)
EP (1) EP1494358A3 (ja)
JP (1) JP3964890B2 (ja)
KR (1) KR100634250B1 (ja)
CN (1) CN100336334C (ja)
CA (1) CA2472787C (ja)
HK (1) HK1076670A1 (ja)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2381012T3 (es) * 2002-07-03 2012-05-22 Dtvg Licensing, Inc Procedimiento y sistema para generar códigos de comprobación de paridad de baja densidad (LDPC)
US7020829B2 (en) 2002-07-03 2006-03-28 Hughes Electronics Corporation Method and system for decoding low density parity check (LDPC) codes
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
US7864869B2 (en) * 2002-07-26 2011-01-04 Dtvg Licensing, Inc. Satellite communication system utilizing low density parity check codes
US20040019845A1 (en) * 2002-07-26 2004-01-29 Hughes Electronics Method and system for generating low density parity check codes
US7296208B2 (en) * 2003-07-03 2007-11-13 The Directv Group, Inc. Method and system for generating parallel decodable low density parity check (LDPC) codes
US8140931B2 (en) 2003-07-03 2012-03-20 Dtvg Licensing, Inc. Method and system for generating parallel decodable low density parity check (LDPC) codes
US8374284B2 (en) * 2004-02-12 2013-02-12 Apple, Inc. Universal decoder
US7760880B2 (en) * 2004-10-13 2010-07-20 Viasat, Inc. Decoder architecture system and method
JP4519694B2 (ja) * 2005-03-29 2010-08-04 財団法人北九州産業学術推進機構 Ldpc符号検出装置及びldpc符号検出方法
JP4622654B2 (ja) * 2005-04-25 2011-02-02 ソニー株式会社 復号装置および復号方法
EP1717959A1 (en) * 2005-04-29 2006-11-02 STMicroelectronics N.V. Method and device for controlling the decoding of a LDPC encoded codeword, in particular for DVB-S2 LDPC encoded codewords
CN101176289B (zh) 2005-05-13 2012-11-14 费希尔-罗斯蒙德***公司 采用纠错的现场总线过程通信
US8122315B2 (en) 2005-12-01 2012-02-21 Electronics And Telecommunications Research Institute LDPC decoding apparatus and method using type-classified index
KR100791225B1 (ko) * 2005-12-01 2008-01-03 한국전자통신연구원 유형적으로 분류된 인덱스를 이용한 ldpc 복호화 장치및 그 방법
CN100425017C (zh) * 2005-12-08 2008-10-08 西安电子科技大学 基于预编码的并行卷积ldpc码的编码器及其快速编码方法
KR100765522B1 (ko) * 2006-02-06 2007-10-10 엘지전자 주식회사 전계발광소자와 그 제조방법
JP2007215089A (ja) * 2006-02-13 2007-08-23 Fujitsu Ltd 復号装置及び復号方法
US7644339B2 (en) * 2006-10-02 2010-01-05 Broadcom Corporation Overlapping sub-matrix based LDPC (low density parity check) decoder
CN101192833B (zh) * 2006-11-28 2011-12-07 华为技术有限公司 一种低密度校验码ldpc并行编码的装置及方法
US7992070B2 (en) * 2006-12-27 2011-08-02 Nec Laboratories America, Inc. Bit-interleaved LDPC-coded modulation for high-speed optical transmission
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)
ES2712914T3 (es) 2007-06-05 2019-05-16 Constellation Designs Inc Método y aparato para la señalización con constelaciones de capacidad optimizada
US8265175B2 (en) 2007-06-05 2012-09-11 Constellation Designs, Inc. Methods and apparatuses for signaling with geometric constellations
US9191148B2 (en) 2007-06-05 2015-11-17 Constellation Designs, Inc. Methods and apparatuses for signaling with geometric constellations in a Raleigh fading channel
TWI407703B (zh) * 2007-08-06 2013-09-01 Broadcom Corp 解碼器
JP4487213B2 (ja) * 2007-10-19 2010-06-23 ソニー株式会社 復号装置および方法、並びにプログラム
JP4487212B2 (ja) * 2007-10-19 2010-06-23 ソニー株式会社 復号装置および方法、送受信システム、受信装置および方法、並びにプログラム
KR101502624B1 (ko) * 2007-12-06 2015-03-17 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널 부호화/복호화 방법 및 장치
CN101952457B (zh) 2007-12-21 2013-08-21 3M创新有限公司 流体样品分析的微生物***和方法
US8266493B1 (en) * 2008-01-09 2012-09-11 L-3 Communications, Corp. Low-density parity check decoding using combined check node and variable node
WO2009143375A2 (en) * 2008-05-21 2009-11-26 The Regents Of The University Of Calfornia Lower-complexity layered belief propagation deconding ldpc codes
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
US9252813B2 (en) 2009-05-27 2016-02-02 Novelsat Ltd. Iterative decoding of LDPC codes with iteration scheduling
CN101610229B (zh) * 2009-07-16 2012-07-04 清华大学 联合ldpc编码的递归msk调制解调***及方法
CN102098127B (zh) * 2009-12-15 2014-11-05 上海贝尔股份有限公司 多用户域并行解码方法和装置
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
US8782489B2 (en) 2010-02-18 2014-07-15 Hughes Network Systems, Llc Method and system for providing Low Density Parity Check (LDPC) encoding and decoding
US8402341B2 (en) * 2010-02-18 2013-03-19 Mustafa Eroz Method and system for providing low density parity check (LDPC) encoding and decoding
WO2012097046A1 (en) * 2011-01-14 2012-07-19 Marvell World Trade Ltd. Ldpc multi-decoder architectures
US8972834B2 (en) 2012-08-28 2015-03-03 Hughes Network Systems, Llc System and method for communicating with low density parity check codes
US9264182B2 (en) 2012-09-13 2016-02-16 Novelsat Ltd. Iterative receiver loop
US8930789B1 (en) 2013-01-23 2015-01-06 Viasat, Inc. High-speed LDPC decoder
US9094132B1 (en) 2013-01-23 2015-07-28 Viasat, Inc. High data rate optical transport network using 8-PSK
US9294131B2 (en) 2013-02-10 2016-03-22 Hughes Network Systems, Llc Apparatus and method for improved modulation and coding schemes for broadband satellite communications systems
US8887024B2 (en) 2013-02-10 2014-11-11 Hughes Network Systems, Llc Apparatus and method for improved modulation and coding schemes for broadband satellite communications systems
US9246634B2 (en) 2013-02-10 2016-01-26 Hughes Network Systems, Llc Apparatus and method for improved modulation and coding schemes for broadband satellite communications systems
WO2014145217A1 (en) 2013-03-15 2014-09-18 Hughes Network Systems, Llc Low density parity check (ldpc) encoding and decoding for small terminal applications
CN106330200B (zh) * 2015-07-09 2019-09-10 华邦电子股份有限公司 执行于通量图形处理器的低密度奇偶校验解码方法
DE102016222007B4 (de) 2016-11-09 2018-07-12 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zum Übertragen von Daten
CN112671504A (zh) * 2019-10-15 2021-04-16 普天信息技术有限公司 5g nr标准的ldpc编码的实现方法和装置
US20210152282A1 (en) * 2019-11-15 2021-05-20 Nvidia Corporation Scheduling method for ldpc decoding
US11223372B2 (en) 2019-11-27 2022-01-11 Hughes Network Systems, Llc Communication throughput despite periodic blockages
CN110830050B (zh) * 2019-11-27 2023-09-29 武汉虹旭信息技术有限责任公司 一种ldpc译码方法、***、电子设备及存储介质
CN113271109A (zh) * 2021-04-19 2021-08-17 武汉梦芯科技有限公司 一种ldpc译码过程中迭代循环数据存储方法及***
US11838127B2 (en) 2022-03-11 2023-12-05 Hughes Network Systems, Llc Adaptive satellite communications

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1290802A1 (en) 2000-06-16 2003-03-12 Aware, Inc. Systems and methods for ldpc coded modulation
JP3833457B2 (ja) 2000-09-18 2006-10-11 シャープ株式会社 衛星放送受信システム
US6633856B2 (en) * 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
CN1185796C (zh) * 2002-11-15 2005-01-19 清华大学 改进的非规则低密度奇偶校验码纠错译码方法
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
JP4225163B2 (ja) * 2003-05-13 2009-02-18 ソニー株式会社 復号装置および復号方法、並びにプログラム
US7296208B2 (en) * 2003-07-03 2007-11-13 The Directv Group, Inc. Method and system for generating parallel decodable low density parity check (LDPC) codes

Also Published As

Publication number Publication date
CA2472787A1 (en) 2005-01-03
CN1617486A (zh) 2005-05-18
KR100634250B1 (ko) 2006-10-16
US7296208B2 (en) 2007-11-13
CA2472787C (en) 2008-05-20
JP2005045781A (ja) 2005-02-17
US20050005231A1 (en) 2005-01-06
CN100336334C (zh) 2007-09-05
EP1494358A2 (en) 2005-01-05
HK1076670A1 (en) 2006-01-20
EP1494358A3 (en) 2005-08-03
KR20050004118A (ko) 2005-01-12

Similar Documents

Publication Publication Date Title
JP3964890B2 (ja) 並列デコード可能な低密度パリティチェック(ldpc)コードを発生させる方法およびシステム
US8140931B2 (en) Method and system for generating parallel decodable low density parity check (LDPC) codes
KR100674523B1 (ko) 저밀도 패리티 검사(ldpc) 디코더의 라우팅을 위한방법 및 시스템
US7962830B2 (en) Method and system for routing in low density parity check (LDPC) decoders
JP3917617B2 (ja) ショートブロック長の低密度パリティチェック(ldpc)コードを提供する方法およびシステム
KR100543154B1 (ko) 저밀도 패리티 검사 코드 생성 방법 및 시스템
US8095854B2 (en) Method and system for generating low density parity check codes
KR100574306B1 (ko) Ldpc 코드를 디코딩하기 위한 방법 및 시스템
US20080065947A1 (en) Method and system for decoding low density parity check (ldpc) codes
JP2005051756A (ja) 低密度パリティチェック(ldpc)によるldpcデコーダコードのエンコーディング

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070403

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070524

R150 Certificate of patent or registration of utility model

Ref document number: 3964890

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20100601

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20100601

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110601

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20120601

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20120601

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130601

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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