JP4492352B2 - 復号装置及びその方法並びにプログラム - Google Patents

復号装置及びその方法並びにプログラム Download PDF

Info

Publication number
JP4492352B2
JP4492352B2 JP2005000314A JP2005000314A JP4492352B2 JP 4492352 B2 JP4492352 B2 JP 4492352B2 JP 2005000314 A JP2005000314 A JP 2005000314A JP 2005000314 A JP2005000314 A JP 2005000314A JP 4492352 B2 JP4492352 B2 JP 4492352B2
Authority
JP
Japan
Prior art keywords
check
message
variable node
variable
group
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
JP2005000314A
Other languages
English (en)
Other versions
JP2006191246A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2005000314A priority Critical patent/JP4492352B2/ja
Publication of JP2006191246A publication Critical patent/JP2006191246A/ja
Application granted granted Critical
Publication of JP4492352B2 publication Critical patent/JP4492352B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は復号装置及びその方法並びにプログラムに関し、特に低密度パリティ検査符号(Low-Density Parity-Check Code :以下、LDPC符号と略記する)の復号方式に関するものである。
誤り訂正符号はデータ伝送時に混入するノイズの影響を符号化処理および復号処理によって低減する技術である。前者の符号化処理は、送信されるデータに冗長を付加する処理であり、符号化されたデータを符号語と呼ぶ。通信路に送出された符号語はノイズの影響を受けることにより、符号語の一部のビットが反転する現象すなわちエラーが起こる。後者の復号処理は、エラーの影響を受けた受信語から、冗長性を利用して送信データを復元する処理である。
図2は誤り訂正符号化および復号の流れを表した機能ブロック図である。送信側では、情報源201からの送信データは誤り訂正符号化処理202を受けて符号語となって通信路203へ送出される。通信路203では、ノイズの影響を受けることになる。受信側では、このような通信路203を経た受信語が、誤り訂正復号処理204を受けて復元データとなって受信者205へ供給されることになる。
LDPC符号は1960年代に提案された誤り訂正符号であり、1993年に発明された高性能符号であるターボ符号との関連が指摘されたのを機に、1990年代後半になって広く注目を集めるようになった(非特許文献1参照)。
誤り訂正符号は、推定処理である復号処理が符号化処理と比較して複雑となる。特に、訂正能力の高い大きな符号長で最尤復号もしくはそれに近い高性能復号を行おうとする場合には、非常に複雑度の高い処理が必要となる。
LDPC符号は0の多いパリティ検査行列を持つ符号として特徴付けられており、この性質から比較的効率の良い高性能復号法が存在する符号である。この復号法はメッセージパッシング復号(Message-Passing Decoding:以下、MP復号と略記する)と呼ばれている。以下にこのLDPC符号のMP復号について説明する。
LDPC符号のMP復号はTannerグラフと呼ばれるグラフのエッジに対応する数値の更新として説明される。エッジは向きも区別される。TannerグラフはLDPC符号のパリティ検査行列を一つ固定すると一つ定まる。
図3はパリティ検査行列の一例および対応するTannerグラフを示している。301で示す行列の各列に変数ノード(variable node )が、また各行にチェックノード(check node)が、それぞれ一対一に対応付けられており、行列の第(i,j)成分が1の時、その時に限って第iチェックノードと第j変数ノードとがエッジで結ばれる。その結果できるグラフが302で示されるTannerグラフである。
MP復号の処理はTannerグラフの各エッジに対応する数値を更新する処理として説明される。この各数値はそのエッジ上のメッセージと呼ばれる。すなわちMP復号とはTannerグラフのエッジ上のメッセージの更新のことである。メッセージの更新方法は更新アルゴリズムおよび更新スケジュールの2つの観点から幾つかの種類に分けられる。
更新アルゴリズムとは変数ノードから出るエッジ上のメッセージの更新処理である変数ノード処理とチェックノードから出るエッジ上のメッセージの更新処理であるチェックノード処理の組のことである。更新アルゴリズムとしては、sum−productアルゴリズム、min−sumアルゴリズムなど、幾つかのアルゴリズムが知られている。
例として、min−sumアルゴリズムを図3を参照して説明する。変数ノードVから出るエッジ上のメッセージの一つv0についての変数ノード処理は式1で与えられる。
v0=r+Σui ……(式1)
但し、総和の項uiはVに入るエッジ上のメッセージの集合からv0に対応するエッジと反対向きのエッジ上のメッセージを除いたものを亘る(図3では、u1のみ)。また、rは通信路から受信した受信値である。
また、チェックノードCから出るエッジ上のメッセージの一つu0についてのチェックノード処理は式2で与えられる。
u0=(Πsign(vj))×min{|vj|;j=1,…,7}
……(式2)
但し、sign(vj)はCに入るエッジ上のメッセージvj,j=1,…,7の正負であり、正の場合+1、負の場合−1の値を取る。
また、総積に現れるvjはCに入るエッジ上のメッセージの集合からu0に対応するエッジと反対向きのエッジ上のメッセージを除いたものを亘る。また、|vj|はvjの絶対値であり、
min{|vj|;j=1,…,7}
は|v1|,…,|v7|の内の最小値である。
次に、更新スケジュールとはメッセージ全体の更新順のことであり、図4はこの更新スケジュールの一例を示している。この例では、各変数ノードから出るエッジ上のメッセージについて変数ノード処理を1回ずつ行った(401;全変数ノード処理)後、各チェックノードから出るエッジ上のメッセージについてチェックノード処理を1回ずつ行い(402;全チェックノード処理)、かつそれぞれの処理が復号器動作の交互のタイミングで行われる更新スケジュールが示されている。この更新スケジュールはフルパラレルな(あるいはオールパラレルな)更新スケジュールと呼ばれる。403はフルパラレルな更新スケジュールを示すタイミングチャートである。
フルパラレルな更新スケジュールのMP復号器の長所は、復号器スループットが速くなることである。フルパラレルな更新スケジュールのMP復号器を説明する文献としては、例えば非特許文献2がある。
しかし、フルパラレルな更新スケジュールのMP復号器には回路規模が大きくなるという短所がある。特に、LDPC符号が高符号化利得を示す長い符号長の符号については、フルパラレルな更新スケジュールの復号器の回路規模は非現実的な程大きい。
そこで、回路規模を小さくする更新スケジュールとして、復号器が1回のタイミングで処理するメッセージの数を少なくする更新スケジュールが自然に考えられる。この方式はセミパラレルな更新スケジュールと呼ばれ、例えば非特許文献3で示されている。
このセミパラレルな更新スケジュールにより、1つのチェックノードから出るエッジ数が少ない場合、例えば非特許文献3で説明されているようなエッジ数が6の場合では、回路を比較的小規模に構成することが可能となる。
D.J.C.MacKay and R.M.Neal,"Good error-correcting codes based on very sparse matrices ",IEEE Transactions on Information Theory, Vol.45, pp.399-431, 1999 A.J.Blanksby and C.J.Howland, "A 690-mW 1-Gb/s 1024-b, Rate-1/2 Low-Density Parity-Check Code Decoder",IEEE J. of Solid-State Circuits, Vol.37, No.3, pp.404-412, March 2002 M.Karkooti and J.R.Cavallaro, "Semi-Parallel Reconfigurable Architectures for Real-Time LDPC Decoding",Proc. of the Int. Conf. on Information Technology: Coding and Computing, Vol.1, pp.579-585, 2004
しかしながら、一般に、符号化率の高い符号では1つのチェックノードから出るエッジ数は多くなる。Tannerグラフを定めているパリティ検査行列の行サイズがM行、列サイズがN列で、かつそのパリティ検査行列がフルランクのとき、符号化率は1−M/Nである。エッジ数が多くなる理由は、1つのチェックノードから出るエッジ数の平均値が、1つの変数ノードから出るエッジ数の平均値のN/M倍となるからである。
例えば、M=200,N=1000、従って符号化率が0.8の場合に、1つのチェックノードから出るエッジ数の平均値は、1つの変数ノードから出るエッジ数の平均値の5倍となる。それ故に、1つの変数ノードから出るエッジ数が4である一般的なLDPC符号について、1つのチェックノードから出るエッジ数は4×5=20と多くなる。
また、min−sumアルゴリズムやsum−productアルゴリズムなどの代表的更新アルゴリズムでは、1エッジ当たりのチェックノード処理計算量あるいは遅延は、1エッジ当たりの変数ノード処理計算量あるいは遅延より大きくなる。その理由は、上記更新アルゴリズムでは変数ノード処理が加算であるのに対し、チェックノード処理は、min−sumアルゴリズムでは、多段の比較演算、sum−productアルゴリズムでは、ROMテーブル参照演算などとなるからである。
符号化率が高い場合には、1つのチェックノードから出るエッジの数が多いことと、1エッジ当たりのチェックノード処理計算量あるいは遅延が大きいことの2点から、特に符号化率の高い符号について、チェックノード処理は変数ノード処理と比べて非常に複雑となる。その結果、大きな処理遅延が発生する。よって、特に符号化率の高いLDPC符号のMP復号器について、チェックノード処理を分割して逐次処理することによつて、遅延を少なくし、復号器スループットの劣化を抑制することが必要となる。
本発明は、上記の課題に鑑みて発明されたものであって、その目的とするところは、LDPC符号のMP復号処理において、チェックノード処理手段の逐次処理を効率的に行うことが可能な復号装置及びその方法並びにプログラムを提供することにある。
本発明による復号装置は、符号語ビットに対応する変数ノードとパリティ検査行列の行に対応するチェックノードとについて、前記変数ノードの全体を複数のグループに分割し、前記グループ単位に変数ノードからチェックノードへのメッセージおよびチェックノードから変数ノードへのメッセージを計算する低密度パリティ検査符号のメッセージパッシング復号方式を実行する復号装置であって、前記復号方式における変数ノード処理を行う変数ノード関数手段と、前記復号方式におけるチェックノード処理を行うチェックノード関数手段と、前記変数ノード関数手段および前記チェックノード関数手段の出力を格納する第一のメモリ手段と、第二のメモリ手段とを含み、前記チェックノード関数手段の入力は、現在処理中のグループに属する変数ノードからのメッセージおよび現在処理中のグループに対して他のグループ単位に得られた事前計算値であり、前記チェックノード関数手段の出力は、現在処理中のグループに属する変数ノードへのメッセージおよび現在処理中のグループに属する変数ノードからのメッセージを用いて算出される前記事前計算値であり、前記事前計算値は前記第二のメモリ手段に格納されることを特徴とする。
本発明による復号方法は、符号語ビットに対応する変数ノードとパリティ検査行列の行に対応するチェックノードとについて、前記変数ノードの全体を複数のグループに分割し、前記グループ単位に変数ノードからチェックノードへのメッセージおよびチェックノードから変数ノードへのメッセージを計算する低密度パリティ検査符号のメッセージパッシング復号方式を実行する復号方法であって、前記復号方式における変数ノード処理を行う変数ノード関数ステップと、前記復号方式におけるチェックノード処理を行うチェックノード関数ステップと、前記変数ノード関数ステップおよび前記チェックノード関数ステップによる出力を第一のメモリ手段へ格納するステップと、前記チェックノード関数ステップへの入力は、現在処理中のグループに属する変数ノードからのメッセージおよび現在処理中のグループに対して他のグループ単位に得られた事前計算値であり、前記チェックノード関数ステップからの出力は、現在処理中のグループに属する変数ノードへのメッセージおよび現在処理中のグループに属する変数ノードからのメッセージを用いて算出される前記事前計算値であり、前記事前計算値を第二のメモリ手段に格納するステップとを含むことを特徴とする。
本発明によるプログラムは、符号語ビットに対応する変数ノードとパリティ検査行列の行に対応するチェックノードとについて、前記変数ノードの全体を複数のグループに分割し、前記グループ単位に変数ノードからチェックノードへのメッセージおよびチェックノードから変数ノードへのメッセージを計算する低密度パリティ検査符号のメッセージパッシング復号方式を実行する復号方法をコンピュータにより実行させるためのプログラムであって、前記復号方式における変数ノード処理を行う変数ノード関数処理と、前記復号方式におけるチェックノード処理を行うチェックノード関数処理と、前記変数ノード関数ステップおよび前記チェックノード関数ステップによる出力を第一のメモリ手段へ格納する処理と、前記チェックノード関数ステップへの入力は、現在処理中のグループに属する変数ノードからのメッセージおよび現在処理中のグループに対して他のグループ単位に得られた事前計算値であり、前記チェックノード関数ステップからの出力は、現在処理中のグループに属する変数ノードへのメッセージおよび現在処理中のグループに属する変数ノードからのメッセージを用いて算出される前記事前計算値であり、前記事前計算値を第二のメモリ手段に格納する処理とを含むことを特徴とする。
本発明によれば、従来例である、例えば非特許文献3で知られている方式よりも、チェックノード関数手段の複雑度を下げることができ、結果としてチェックノード処理の処理遅延を小さくすることが可能となるという効果がある。また、本発明によれば、符号化率が高い符号ほどチェックノード処理が複雑となる傾向があるので、符号化率が高いほど有効となるという効果がある。
以下に、図面を参照しつつ本発明の実施の形態について説明する。図1は本発明の実施の形態の機能ブロック図である。図1を参照すると、本発明の実施の形態は、メッセージメモリ手段101、補助メモリ手段102、変数ノード関数手段103、チェックノード関数手段104および制御手段105を含んで構成されている。
これらの構成要素の概略を述べる。メッセージメモリ手段101は、受信値およびMP復号において必要なメッセージを格納するものである。補助メモリ手段102は、本発明の特徴である、逐次的かつ効率的なチェックノード処理を行うための事前計算値を格納するためのものである。変数ノード関数手段103は、メッセージメモリ手段101に格納されているチェックノードからのメッセージを読み込み、変数ノード処理を行い、処理結果のメッセージを変数ノードからのメッセージとしてメッセージメモリ手段101に書き込むものである。
チェックノード関数手段104は、メッセージメモリ手段101に格納されている変数ノードからのメッセージと補助メモリ手段102に格納されている事前計算値とを読み込み、チェックノード処理および付加計算を行い、処理結果のメッセージをチェックノードからのメッセージとしてメッセージメモリ手段101に書き込み、また付加計算値を事前計算値として補助メモリ手段102に書き込むものである。制御手段105は、メッセージメモリ手段101、補助メモリ手段102、変数ノード関数手段103およびチェックノード関数手段104の動作を制御するものである。
次に、図5〜図7を参照して本実施の形態の全体の動作について詳細に説明する。図5は符号を定義するパリティ検査行列と、パリティ検査行列の各列に対応する変数ノードと、各行に対応するチェックノードを示し、かつ本発明の特徴である変数ノード全体の分割を示す。例として、501は行列の列の分割による変数ノード全体の4つのグループ(1),(2),(3),(4)(図では丸数字として示している)への分割を示している。
図6は本発明の実施の形態の動作の概略を示したフローチャートである。本復号装置が動作し始める(ステップ601)と、制御手段105がメッセージメモリ手段101を値0および受信値で初期化し、また補助メモリ手段102をメッセージ更新アルゴリズムに応じて初期化し、また整数値を取る補助変数b,b’,kを初期化する(ステップ602)。但し、b≠b’とする。
ここで、変数bはどの変数ノードグループの変数ノード処理が行われているかを指し、また変数b’はどの変数ノードグループへのチェックノード処理が行われているかを指す。b,b’は整数Bを法とする1からBのいずれかの値を取り、常にb≠b’とする。また、変数kはメッセージ更新回数であり、その最大値として更新最大回数Kを取る。
次のステップ603として、制御手段105の制御により、グループbに属する変数ノードの受信値およびグループbの変数ノードに入るエッジ上のメッセージが、メッセージメモリ手段101から読み込まれ、変数ノード関数手段103に入力される。この入力を元に、例えば式1に示される変数ノード処理が行われ、処理結果がグループbの変数ノードから出るエッジ上のメッセージとして、メッセージメモリ手段101に格納される(この処理を以後グループbの変数ノード処理と呼ぶ)。
また同時に、グループb’に属する変数ノードから出るエッジ上のメッセージがメッセージメモリ手段101から読み込まれ、かつ事前計算値が補助メモリ手段102から読み込まれ、チェックノード関数手段104に入力される。この入力を元に、例えば式2に示される計算とこれに付加された計算とが行われる。式2に示される計算の結果は、グループb’の変数ノードに入るエッジ上のメッセージとして、メッセージメモリ手段101に格納される。また、付加計算の結果は補助メモリ手段102に格納される(この処理を以後グループb’へのチェックノード処理と呼ぶ)。
なお、ステップ603における補助メモリ手段102の役割およびチェックノード関数手段104の入出力については、後で詳述する。
次のステップ604として、補助変数bの値がBに等しいか否かが調べられる。もしbがBに等しくないならば、bの値が1だけインクリメントされ(ステップ605)、ステップ607に進む。もしbがBに等しいならば、bに1が代入され(ステップ606)、ステップ610に進む。ステップ607では、補助変数b’の値がBに等しいか否かが調べられる。
もし、b’がBに等しくないならば、b’の値が1だけインクリメントされ(ステップ608)、ステップ603に戻る。もし、b’がBに等しいならば、b’に1が代入され(ステップ609)、ステップ603に戻る。ステップ610では、補助変数kの値がKに等しいか否かが調べられる。もし、kがKに等しくないならば、kの値が1だけインクリメントされ(ステップ611)、ステップ603に戻る。もし、kがKに等しいならば、符号語ビットあるいは情報ビットの判定処理が行われ、復号結果が出力され(ステップ612)、復号が終了する。他の復号終了条件としては、シンドロームと呼ばれるデータが0ベクトルになったときに直ちに終了する方法が考えられる。
図7は上記に説明した動作を行う本発明の実施の形態の復号器のメッセージ更新スケジュールを、図4のフルパラレルなメッセージ更新スケジュールと対比して示した図である。701は、例としてグループ(2)(図では丸数字で示す)の変数ノード処理およびグループ(1)(図では丸数字で示す)へのチェックノード処理を示す。
グループ(2)の変数ノード処理として、グループ(2)の変数ノードから出るエッジ上のメッセージのみについて、例えば式1に示される計算が行われる。また同時に、グループ(1)へのチェックノード処理として、グループ(1)の変数ノードに入るエッジ上のメッセージのみについて、例えば式2に示される計算が行われる。
702は、701の次のタイミングで行われるグループ(3)の変数ノード処理およびグループ(2)へのチェックノード処理を示す。703はこれらの動作のタイミングを示し、特に、グループbの変数ノード処理およびグループb’へのチェックノード処理が、復号器動作の同一のタイミングで行われることを示す。
次に、図8を参照して、本発明の特徴である、ステップ603のグループb’へのチェックノード処理におけるチェックノード関数手段104の入出力および補助メモリ手段102の役割を詳細に説明する。図8は、変数ノードのグループの個数Bが4の場合、すなわち変数ノード全体が(1)〜(4)の4つのグループに分割された場合を示している。また、説明の簡単のために、図8のチェックノードCのみについて図示しているが、全てのチェックノードについて同様の処理が行われる。
グループb’へのチェックノード処理においてチェックノード関数手段104への入力は2種類ある。第1種の入力は、変数ノードグループb’から出るエッジ上のメッセージである。801に示されるように、変数ノードグループ(2)へのチェックノード処理では、第1種の入力は変数ノードグループ(2)から出るエッジ上のメッセージa21,a22である。また、802に示されるように、(3)へのチェックノード処理では、第1種の入力は(3)から出るエッジ上のメッセージa31,a32である。第2の入力はb’以外の変数ノードグループb’’とチェックノードCの組(b’’,C)に対応する事前計算値である。
801に示されるように、変数ノードグループ(2)へのチェックノード処理では、第2種の入力は((1),C),((3),C),((4),C)に対応する値x’1 ,x3 ,x4 である。また、802に示されるように、(3)へのチェックノード処理では、第2種の入力は((1),C),((2),C),((4),C)に対応する値x’1 ,x’2 ,x4 である。
上記2種類の入力を元に、チェックノード関数手段104はチェックノード処理を実行して2種類の計算結果を出力する。第1種の出力は、変数ノードグループb’に入るエッジ上のメッセージである。801に示されるように、変数ノードグループ(2)へのチェックノード処理では、第1種の出力は(2)に入るエッジ上のメッセージb21,b22である。また、802に示されるように、(3)へのチェックノード処理では、第1種の出力は(3)に入るエッジ上のメッセージb31,b32である。
第2種の出力は、変数ノードグループb’とチェックノードCの組(b’,C)に対応する付加計算値である。801に示されるように、変数ノードグループ(2)へのチェックノード処理では、第2種の出力は((2),C)に対応する値x’2である。83)へのチェックノード処理では、第2種の出力は((3),C)に対応する値x’3 である。第2種の出力は上記の第1種の入力のみから定まり、簡易な計算の付加のみで行われる。付加計算値(すなわち事前計算値)x3 とx’3 との差異は、x3 が更新前の値、x’3 が更新後の値である点である。
以上の入出力を式を用いて整理する。チェックノード関数手段104の入出力を入力から出力への写像φで書き表すと、例えば変数ノードグループ(2)へのチェックノード処理の入出力は式3で表される。
φ(a21,a22;x’1 ,x3 ,x4 )=(b21,b22;x’2 )
……(式3)
また、(3)へのチェックノード処理の入出力は式4で表される。
φ(a31,a32;x’1 ,x’2 ,x4 )=(b31,b32;x’3 )
……(式4)
但し、写像φとしては、sum−productアルゴリズムの場合は、指数領域での計算、min−sumアルゴリズムの場合は多段の比較演算となるなど、更新アルゴリズムに応じた写像が用いられる。
これら4つの入出力のうち、第2種のものは補助メモリ手段102において格納または読み出しされる。
以上、図5〜図7を参照して説明した本実施の形態の復号器の動作の特徴は、変数ノードグループ(1)〜(4)毎にチェックノード処理が行われる点、付加計算値が補助メモリ手段102に格納される点、および格納された付加計算値が事前計算値として補助メモリ手段102から読み出されて次回のチェックノード処理の入力とされる点にある。
次に、図9を参照して本実施の形態の実施例を詳細に説明する。図9はMP復号の更新アルゴリズムがmin−sumアルゴリズムである場合の本発明の復号装置のチェックノード関数手段104の回路のブロック図を示している。この場合、式3および式4の写像φは正負ビットのXOR演算と絶対値の最小値の組み合わせ演算の2つからなる。
但し、説明の簡単のために、正負ビットのXOR(排他的論理和)演算は省略しており、絶対値の最小値の組み合わせ演算のみ示している。チェックノード処理回路903は、メッセージメモリ手段901(図1の101に相当)から読み込んだメッセージa1 ,…,ap を第1種の入力とし、また補助メモリ手段902(図1の102に相当)から読み込んだ事前計算値x1 ,…,xq を第2種の入力とする。但し、図8を参照して説明したように、これらの入力は、チェックノード処理が行われている変数ノードグループに応じて定められる。なお、904〜906は比較回路である。
また、チェックノード処理回路903は、メッセージb1 ,…,bp を第1種の出力とし、また付加計算値(すなわち事前計算値)x’を第2種の出力とする。第1種の出力bi,i =1,…,pの計算式は式5〜式7で与えられる。
mi =min{a1 ,…,<ai >,…,ap } ,i=1,…,p
……(式5)
n=min{x1 ,…,xq } ……(式6)
bi =min{mi,n} ,i=1,…,p ……(式7)
但し、min{ }は{ }内の数値のうち最小のものを表す。また、<mi >はmi を除くことを表す。
式5〜式7に示されるように、bi はai を除く第1種の入力および第2種の入力全部のうちの最小値となる。第2種の出力x’は式8で与えられる。
x’=min{a1 ,…,ap } ……(式8)
式8に示されるように、x’は第1種の入力a1 ,…,ap のうちの最小値となる。
式5〜式7で算出されたチェックノードからのメッセージは、メッセージメモリ手段901に格納される。また、式8で算出された付加計算値は補助メモリ手段902に格納される。
次に、本実施例による効果を説明する。従来から知られている方式、例えば非特許文献3で知られている方式によれば、903のチェックノード処理回路は、比較回路904と906の直列回路および比較回路905と906の直列回路からなる。これらの直列回路における比較回路の直列段数は、例として、チェックノードから出るエッジの数が64の場合、log_2(64)=6段となる。
これに対して、本発明においてB=8,p=8,q=7と設定することにより、903の回路の比較器の直列段数は4段となる。その結果、回路の複雑度が大幅に下がる。つまり、チェックノード関数手段104の遅延の削減度は比較器の直列段数の削減度以上であるから、(6−4)/6=1/3=33.3…%以上の遅延削減が達成されるのである。
上記実施の形態や実施例における動作は、予めその動作手順をプログラムとしてROMなどの記録媒体に格納しておき、これをコンピュータにより読み取らせて実行させるようにすることができることは明白である。
本発明の第1の実施の形態の構成を示すブロック図である。 誤り訂正符号化および復号の概念を示す図である。 パリティ検査行列および対応するTannerグラフを示す図である。 MP復号のフルパラレルなメッセージ更新スケジュールを示す図である。 本発明の特徴である、変数ノード全体の複数のグループへの分割を示す図である。 本発明の実施の形態の動作を示すフローチャートである。 本発明の実施の形態のメッセージ更新スケジュールを示す図である。 本発明の実施の形態において、チェックノード関数手段の入出力をTannerグラフを使って示した図である。 本発明の実施の形態の実施例を示す回路ブロック図である。
符号の説明
101,901 メッセージメモリ手段
102,902 補助メモリ手段
103 変数ノード関数手段
104,903 チェックノード関数手段
105 制御手段

Claims (9)

  1. 符号語ビットに対応する変数ノードとパリティ検査行列の行に対応するチェックノードとについて、前記変数ノードの全体を複数のグループに分割し、前記グループ単位に変数ノードからチェックノードへのメッセージおよびチェックノードから変数ノードへのメッセージを計算する低密度パリティ検査符号のメッセージパッシング復号方式を実行する復号装置であって、
    前記復号方式における変数ノード処理を行う変数ノード関数手段と、
    前記復号方式におけるチェックノード処理を行うチェックノード関数手段と、
    前記変数ノード関数手段および前記チェックノード関数手段の出力を格納する第一のメモリ手段と、
    第二のメモリ手段とを含み、
    前記チェックノード関数手段の入力は、現在処理中のグループに属する変数ノードからのメッセージおよび現在処理中のグループに対して他のグループ単位に得られた事前計算値であり、前記チェックノード関数手段の出力は、現在処理中のグループに属する変数ノードへのメッセージおよび現在処理中のグループに属する変数ノードからのメッセージを用いて算出される前記事前計算値であり、前記事前計算値は前記第二のメモリ手段に格納されることを特徴とする復号装置。
  2. 前記変数ノード関数手段の処理グループと前記チェックノード関数手段の処理グループとが互いに異なり、かつ前記変数ノード関数手段と前記チェックノード関数手段とを同時に動作しつつ逐次処理を進めるよう制御する制御手段を、更に含むことを特徴とする請求項1に記載の復号装置。
  3. 前記チェックノード関数手段はmin−sumアルゴリズムを実現するよう構成されており、前記グループに属する変数ノードからのメッセージの絶対値の最小値およびメッセージの硬判定値の排他的論理和を前記事前計算値とすることを特徴とする請求項1または2に記載の復号装置。
  4. 前記チェックノード関数手段はsum−productアルゴリズムを実現するよう構成されており、前記グループに属する変数ノードからのメッセージに対してsum−productアルゴリズムに付随する指数領域への変換を施した値の和およびメッセージの硬判定値の排他的論理和を前記事前計算値とすることを特徴とする請求項1または2に記載の復号装置。
  5. 符号語ビットに対応する変数ノードとパリティ検査行列の行に対応するチェックノードとについて、前記変数ノードの全体を複数のグループに分割し、前記グループ単位に変数ノードからチェックノードへのメッセージおよびチェックノードから変数ノードへのメッセージを計算する低密度パリティ検査符号のメッセージパッシング復号方式を実行する復号方法であって、
    前記復号方式における変数ノード処理を行う変数ノード関数ステップと、
    前記復号方式におけるチェックノード処理を行うチェックノード関数ステップと、
    前記変数ノード関数ステップおよび前記チェックノード関数ステップによる出力を第一のメモリ手段へ格納するステップと、
    前記チェックノード関数ステップへの入力は、現在処理中のグループに属する変数ノードからのメッセージおよび現在処理中のグループに対して他のグループ単位に得られた事前計算値であり、前記チェックノード関数ステップからの出力は、現在処理中のグループに属する変数ノードへのメッセージおよび現在処理中のグループに属する変数ノードからのメッセージを用いて算出される前記事前計算値であり、
    前記事前計算値を第二のメモリ手段に格納するステップとを含むことを特徴とする復号方法。
  6. 前記変数ノード関数手段の処理グループと前記チェックノード関数手段の処理グループとが互いに異なり、かつ前記変数ノード関数手段と前記チェックノード関数手段とを同時に動作しつつ逐次処理を進めるよう制御する制御ステップを、更に含むことを特徴とする請求項5に記載の復号方法。
  7. 前記チェックノード関数ステップはmin−sumアルゴリズムを実現するよう構成されており、前記グループに属する変数ノードからのメッセージの絶対値の最小値およびメッセージの硬判定値の排他的論理和を前記事前計算値とすることを特徴とする請求項5または6に記載の復号方法。
  8. 前記チェックノード関数ステップはsum−productアルゴリズムを実現するよう構成されており、前記グループに属する変数ノードからのメッセージに対してsum−productアルゴリズムに付随する指数領域への変換を施した値の和およびメッセージの硬判定値の排他的論理和を前記事前計算値とすることを特徴とする請求項5または6に記載の復号方法。
  9. 符号語ビットに対応する変数ノードとパリティ検査行列の行に対応するチェックノードとについて、前記変数ノードの全体を複数のグループに分割し、前記グループ単位に変数ノードからチェックノードへのメッセージおよびチェックノードから変数ノードへのメッセージを計算する低密度パリティ検査符号のメッセージパッシング復号方式を実行する復号方法をコンピュータにより実行させるためのプログラムであって、
    前記復号方式における変数ノード処理を行う変数ノード関数処理と、
    前記復号方式におけるチェックノード処理を行うチェックノード関数処理と、
    前記変数ノード関数ステップおよび前記チェックノード関数ステップによる出力を第一のメモリ手段へ格納する処理と、
    前記チェックノード関数ステップへの入力は、現在処理中のグループに属する変数ノードからのメッセージおよび現在処理中のグループに対して他のグループ単位に得られた事前計算値であり、前記チェックノード関数ステップからの出力は、現在処理中のグループに属する変数ノードへのメッセージおよび現在処理中のグループに属する変数ノードからのメッセージを用いて算出される前記事前計算値であり、
    前記事前計算値を第二のメモリ手段に格納する処理とを含むことを特徴とするプログラム。
JP2005000314A 2005-01-05 2005-01-05 復号装置及びその方法並びにプログラム Expired - Fee Related JP4492352B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005000314A JP4492352B2 (ja) 2005-01-05 2005-01-05 復号装置及びその方法並びにプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005000314A JP4492352B2 (ja) 2005-01-05 2005-01-05 復号装置及びその方法並びにプログラム

Publications (2)

Publication Number Publication Date
JP2006191246A JP2006191246A (ja) 2006-07-20
JP4492352B2 true JP4492352B2 (ja) 2010-06-30

Family

ID=36797972

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005000314A Expired - Fee Related JP4492352B2 (ja) 2005-01-05 2005-01-05 復号装置及びその方法並びにプログラム

Country Status (1)

Country Link
JP (1) JP4492352B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4760769B2 (ja) * 2007-05-15 2011-08-31 住友電気工業株式会社 復号回路及び部分処理回路
CN102037651B (zh) 2007-12-13 2013-05-22 日本电气株式会社 解码装置、数据存储装置、数据通信系统以及解码方法
US8667376B2 (en) 2008-11-07 2014-03-04 Nec Corporation Decoding device, data communication apparatus having the decoder device, and data memory
KR101154818B1 (ko) 2009-10-06 2012-06-08 고려대학교 산학협력단 랩터 부호 사용 시스템을 위한 복호화 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006019889A (ja) * 2004-06-30 2006-01-19 Toshiba Corp 低密度パリティチェック符号復号器及び方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006059688A1 (ja) * 2004-12-02 2006-06-08 Mitsubishi Denki Kabushiki Kaisha 復号装置及び通信装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006019889A (ja) * 2004-06-30 2006-01-19 Toshiba Corp 低密度パリティチェック符号復号器及び方法

Also Published As

Publication number Publication date
JP2006191246A (ja) 2006-07-20

Similar Documents

Publication Publication Date Title
JP4062435B2 (ja) 誤り訂正符号復号装置
US11323134B2 (en) Encoding method and device and decoding method and device for structured LDPC
US11115051B2 (en) Systems and methods for decoding error correcting codes
US20190149168A1 (en) Systems and methods for decoding error correcting codes
JP4320418B2 (ja) 復号装置および受信装置
US8572463B2 (en) Quasi-cyclic LDPC encoding and decoding for non-integer multiples of circulant size
US8869003B2 (en) Method, apparatus, computer program product and device providing semi-parallel low density parity check decoding using a block structured parity check matrix
US10090860B2 (en) Memory system using integrated parallel interleaved concatenation
US8751895B2 (en) Semiconductor memory device and decoding method
CN101154948A (zh) 利用共享硬件及顺序和-积体系结构进行低密度奇偶校验解码的方法和设备
Thi et al. Basic-set trellis min–max decoder architecture for nonbinary ldpc codes with high-order galois fields
Liao et al. A (21150, 19050) GC-LDPC decoder for NAND flash applications
Thi et al. Two-extra-column trellis min–max decoder architecture for nonbinary LDPC codes
Lacruz et al. A 630 Mbps non-binary LDPC decoder for FPGA
JP4819470B2 (ja) 復号装置および復号方法
JP4492352B2 (ja) 復号装置及びその方法並びにプログラム
JP5523064B2 (ja) 復号装置及び方法
US11075650B1 (en) Sub-matrix reduction for quasi-cyclic LDPC codes
Kim Improved trellis-based decoder for non-binary LDPC codes
KR101267756B1 (ko) 가변 부호화율 불규칙 반복 다상 누산 부호화 및 복호화 방법과 이를 위한 장치
KR101267654B1 (ko) 가변 부호어 길이를 지원하는 불규칙 반복 다상 누산 부호화 및 복호화 방법과 이를 위한 장치
KR101221062B1 (ko) 가변 usc 부호를 이용한 부호화 및 복호화 방법
Nagashima et al. Dynamically reconfigurable architecture for multi-rate compatible regular LDPC decoding
KR20220064187A (ko) 비이진 저밀도 패리티 검사 코드 복호기 및 이를 이용한 복호화 방법
CN116208180A (zh) 一种bch码高效并行编解码方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100304

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100329

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130416

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130416

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140416

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees