JP2010028408A - 情報処理装置、情報処理方法、およびプログラム - Google Patents

情報処理装置、情報処理方法、およびプログラム Download PDF

Info

Publication number
JP2010028408A
JP2010028408A JP2008186766A JP2008186766A JP2010028408A JP 2010028408 A JP2010028408 A JP 2010028408A JP 2008186766 A JP2008186766 A JP 2008186766A JP 2008186766 A JP2008186766 A JP 2008186766A JP 2010028408 A JP2010028408 A JP 2010028408A
Authority
JP
Japan
Prior art keywords
minimum value
calculation
check node
check
message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2008186766A
Other languages
English (en)
Inventor
Osamu Shintani
修 新谷
Mineshi Yokogawa
峰志 横川
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2008186766A priority Critical patent/JP2010028408A/ja
Publication of JP2010028408A publication Critical patent/JP2010028408A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

【課題】LDPC符号をmin-sum復号法により復号する復号装置の回路規模の増大を抑制する。
【解決手段】チェックノードメッセージ格納用メモリには、全枝数×符号1ビットと、各バリアブルノードからそれぞれ入力されるメッセージの絶対値の最小値と第2最小値×行数と、最小値の位置情報×行数を格納する。チェックノードメッセージudを演算する場合、ステップS21で、符号1ビットsign(ud)を読み出し、ステップS22で、最小値の位置情報を読み出し、vdが最小値であるか否かを判定する。vdが最小値であると判定した場合、ステップS23で第2最小値を読み出す。ステップS25で、符号1ビットsign(ud)と第2最小値を乗算してチェックノードメッセージudを取得する。本発明は、LDPC符号をmin-sum復号法により復号する復号装置に適用できる。
【選択図】図11

Description

本発明は、復号装置、復号方法、およびプログラムに関し、特に、低密度パリティ検査符号(LDPC符号)によって符号化されている符号を復号する復号装置、復号方法、およびプログラムに関する。
近年、例えば、移動体通信や深宇宙通信といった通信分野、および地上波または衛星ディジタル放送といった放送分野の研究が著しく進められているが、それに伴い、誤り訂正符号化および復号の効率化を目的として符号理論に関する研究も盛んに行われている。
符号性能の理論的限界としては、いわゆるシャノン(C. E. Shannon)の通信路符号化定理によって与えられるシャノン限界が知られている。符号理論に関する研究は、このシャノン限界に近い性能を示す符号を開発することを目的として行われている。近年では、シャノン限界に近い性能を示す符号化方法として、例えば、並列連接畳み込み符号(PCCC(Parallel Concatenated Convolutional Codes))や、縦列連接畳み込み符号(SCCC(Serially Concatenated Convolutional Codes))といった、いわゆるターボ符号化(Turbo coding)と呼ばれる手法が開発されている。
また、これらのターボ符号が開発される一方で、古くから知られる符号化方法である低密度パリティ検査符号(Low Density Parity Check codes)(以下、LDPC符号と称する)が脚光を浴びている。
LDPC符号は、R. G. Gallagerによる「R. G. Gallager, "Low Density Parity Check Codes", Cambridge, Massachusetts: M. I. T. Press, 1963」において最初に提案されたものである。その後、非特許文献1、非特許文献2等において再注目されるに至ったものである。
LDPC符号は、近年の研究により、ターボ符号等と同様に、符号長を長くするにしたがって、シャノン限界に近い性能が得られることがわかりつつある。また、LDPC符号は、最小距離が符号長に比例するという性質があることから、その特徴として、ブロック誤り確率特性がよく、さらに、ターボ符号等の復号特性において観測される、いわゆるエラーフロア現象が殆ど生じないことも利点として挙げられる。
以下、このようなLDPC符号について具体的に説明する。なお、LDPC符号は、線形符号であり、必ずしも2元である必要はないが、ここでは、2元であるものとして説明する。
LDPC符号は、そのLDPC符号を定義する検査行列(parity check matrix)が疎なものであることを最大の特徴とするものである。ここで、疎な行列とは、行列のコンポーネントの"1"の個数が非常に少なく構成されるものであり、疎な検査行列をHで表すものとすると、そのような検査行列としては、例えば、図1に示すように、各列のハミング重み("1"の数)(weight)が"3"であり、且つ、各行のハミング重みが"6"であるもの等がある。
このように、各行および各列のハミング重みが一定である検査行列Hによって定義されるLDPC符号は、レギュラーLDPC符号と称される。一方、各行および各列のハミング重みが一定でない検査行列Hによって定義されるLDPC符号は、イレギュラーLDPC符号と称される。
このようなLDPC符号による符号化は、検査行列Hに基づいて生成行列Gを生成し、この生成行列Gを2元の情報メッセージに対して乗算することによって符号語を生成することで実現される。具体的には、LDPC符号による符号化を行う符号化装置は、まず、検査行列Hの転置行列HTとの間に、式GHT=0が成立する生成行列Gを算出する。
ここで、生成行列Gが、k×n行列である場合には、符号化装置は、生成行列Gに対してkビットからなる情報メッセージ(ベクトルu)を乗算し、nビットからなる符号語c(=uG)を生成する。この符号化装置によって生成された符号語は、値が"0"の符号ビットが"+1"に、値が"1"の符号ビットが"−1"にといったようにマッピングされて送信され、所定の通信路を介して受信側において受信されることになる。
一方、LDPC符号の復号は、Gallagerが確率復号(Probabilistic Decoding)と称して提案したアルゴリズムであって、バリアブルノード(variable node(メッセージノード(message node)とも称される))と、チェックノード(check node)とからなる、いわゆるタナーグラフ(Tanner graph)上での確率伝播(belief propagation)によるメッセージ・パッシング・アルゴリズムによって行うことが可能である。ここで、以下、適宜、バリアブルノードとチェックノードそれぞれを、単にノードとも称する。
しかしながら、確率復号においては、各ノード間で受け渡されるメッセージが実数値であることから、解析的に解くためには、連続した値をとるメッセージの確率分布そのものを追跡する必要があり、非常に困難を伴う解析を必要とすることになる。そこで、Gallagerは、LDPC符号の復号アルゴリズムとして、アルゴリズムAまたはアルゴリズムBを提案している。
LDPC符号の復号は、一般的には、図2に示すような手順にしたがって行われる。なお、ここでは、受信値をU0(u0i)とし、チェックノードから出力されるメッセージをujとし、バリアブルノードから出力されるメッセージをviとする。また、ここでは、メッセージとは、値の"0"らしさを、いわゆる対数尤度比(log likelihood ratio)で表現した実数値である。
まず、LDPC符号の復号においては、ステップS11において、受信値U0(u0i)が受信され、メッセージujが"0"に初期化されるとともに、繰り返し処理のカウンタとしての整数をとる変数kが"0"に初期化され、ステップS12に進む。ステップS12において、受信値U0(u0i)に基づいて、次式(1)に示す演算を行うことによってメッセージviが求められ、さらに、このメッセージviに基づいて、次式(2)に示す演算を行うことによってメッセージujが求められる。
Figure 2010028408
・・・(1)
Figure 2010028408
・・・(2)
ここで、式(1)と式(2)におけるdvとdcは、それぞれ、検査行列Hの縦方向(行方向)と横方向(列方向)の"1"の個数を示す任意に選択可能とされるパラメータであり、例えば、(3,6)符号の場合には、dv=3,dc=6となる。
なお、式(1)または(2)の演算においては、それぞれ、メッセージを出力しようとする枝(edge)から入力されたメッセージを、和または積演算のパラメータとしては用いないことから、和または積演算の範囲が、1乃至dv-1または1乃至dc-1となっている。また、式(2)に示す演算は、実際には、2入力v1,v2に対する1出力で定義される次式(3)に示す関数R(v1,v2)のテーブルを予め作成しておき、これを次式(4)に示すように連続的(再帰的)に用いることによって行われる。
Figure 2010028408
・・・(3)
Figure 2010028408
・・・(4)
ステップS12では、さらに、変数kが"1"だけインクリメントされ、ステップS13に進む。ステップS13では、変数kが所定の繰り返し復号回数N以上であるか否かが判定される。ステップS13において、変数kがN以上ではないと判定された場合、ステップS12に戻り、以下、同様の処理が繰り返される。
また、ステップS13において、変数kがN以上であると判定された場合、ステップS14に進み、次式(5)に示す演算を行うことによって最終的に出力する復号結果としてのメッセージvが求められて出力され、LDPC符号の復号処理が終了する。
Figure 2010028408
・・・(5)
ここで、式(5)の演算は、式(1)の演算とは異なり、バリアブルノードに接続している全ての枝からの入力メッセージを用いて行われる。
このようなLDPC符号の復号は、例えば(3,6)符号の場合には、図3に示すように、各ノード間でメッセージの授受が行われる。なお、図3における"="で示すノード(バリアブルノード)では、式(1)に示した演算が行われ、"+"で示すノード(チェックノード)では、式(2)に示した演算が行われる。特に、アルゴリズムAでは、メッセージを2元化し、"+"で示すノードにおいて、dc-1個の入力メッセージの排他的論理和演算を行い、"="で示すノードにおいて、受信値Rに対して、dv-1個の入力メッセージが全て異なるビット値であった場合には、符号を反転して出力する。
上述したLDPC符号の復号法は、Belief Propagation,Sum Product Algorithm 等の複数の呼び名を持つが、その演算内容はどれも共通である。
また、一方で、近年、LDPC符号の復号の実装方法に関する研究も行われている。実装方法について述べる前に、まず、LDPC符号の復号を摸式化して説明する。
図4は、(3,6)LDPC符号(符号化率1/2、符号長12)の検査行列(parity check matrix)Hの例である。LDPC符号の検査行列Hは、図5のように、タナーグラフを用いて書き表すことができる。ここで、図5において、"+"はチェックノードを表し、"="はバリアブルノードを表している。チェックノードとバリアブルノードは、それぞれ、検査行列の行と列に対応する。チェックノードとバリアブルノードとの間の結線は、枝(edge)であり、検査行列の"1"に相当する。
即ち、検査行列の第j行第i列のコンポーネントが1である場合には、図5において、上からi番目のバリアブルノード("="のノード)と、上からj番目のチェックノード("+"のノード)とが、枝により接続される。枝は、バリアブルノードに対応する符号ビットが、チェックノードに対応する拘束条件を持つことを表わす。なお、図5は、図4の検査行列のタナーグラフとなっている。
LDPC符号の復号方法であるサムプロダクトアルゴリズム(Sum Product Algorithm)は、バリアブルノードの演算とチェックノードの演算とを繰り返し行う。
バリアブルノードでは、図6のように、式(1)の演算を行う。すなわち、図6において、計算しようとしている枝に対応するメッセージviは、バリアブルノードに繋がっている残りの枝からのメッセージu1およびu2と、受信情報u0iを用いて計算される。他の枝に対応するメッセージも同様に計算される。
チェックノードの演算について説明する前に、式(2)を、
a×b=exp{ln(|a|)+ln(|b|)}×sign(a)×sign(b)
の関係を用いて、次式(6)のように書き直す。ただし、sign(x)は、x≧0のとき1であり、x<0のとき-1である。
Figure 2010028408
・・・(6)
さらに、x≧0において、φ(x)=ln(tanh(x/2))と定義すると、φ-1(x)=2tanh-1(e-x)であるから、式(6)は、次式(7)に示すように表記される。
Figure 2010028408
・・・(7)
チェックノードでは、図7のように、式(7)の演算を行う。すなわち、図7において、計算しようとしている枝に対応するメッセージujは、チェックノードに繋がっている残りの枝からのメッセージv1,v2,v3,v4,v5を用いて計算される。他の枝に対応するメッセージも同様に計算される。
なお、関数φ(x)は、φ(x)=ln((ex+1)/(ex-1))とも表すことができ、x>0において、φ(x)=φ-1(x)である。関数φ(x)および関数φ-1(x)をハードウェアとしての復号装置に実装する際には、LUT(Look Up Table)が用いられる。
しかしながら、並列の復号装置を想定した場合、その並列数が多いときなどには、LUTが非常に大きくなってしまい、復号装置の回路規模が大きくなってしまう。そこで、上述した式(7)で表されるチェックノード演算の代わりに、式(7)を簡略化した次式(8)を用いるmin-sum復号法を適用することにより、復号装置の回路規模を抑えることができる。
以下、min-sum復号法について説明する。min-sum復号では、チェックノード演算時のメッセージの更新に次式(8)を用いる。
Figure 2010028408
・・・(8)
式(8)中のmin=|vi|は、|vi|の中の最小値を意味している。この式(8)には、式(7)中に存在する関数φ(x)および関数φ-1(x)が存在しないので、ハードウェアとしての並列復号装置にLUTを保持する必要がない。したがって、並列復号装置の回路規模をより小さくすることができる。
また、バリアブルノード演算は、式(1)で表わされるが、式(5)と次式(9)を組合せたものとして考えることができる。
Figure 2010028408
・・・(9)
すなわち、min-sum復号では、式(8)で表されるチェックノード演算と、式(1)で表されるバリアブルノード演算とから復号結果を得ることができる。あるいは、式(9)と式(8)で表される復号結果からメッセージの演算とチェックノード演算の組合せと、式(5)で表される復号結果計算から復号結果を得ることができる。
図8は、図4に示された検査行列Hで表現されるLDPC符号をmin-sum復号法により復号する復号装置の構成の一例を示している。
この復号装置10は、各部に対して制御信号を供給する制御信号生成部11、前段から入力される受信データ(通信を経たLDPC符号の対数尤度比LLR)を保持する受信用メモリ12、受信データまたは復号途中結果の一方を選択して後段に供給するスイッチ13、式(9)と式(8)を合わせた演算を行なうチェックノード演算部14、チェックノードメッセージ格納用メモリ15、式(5)の計算を行なう復号結果計算部16、および復号途中結果格納メモリ17から構成される。
復号装置10においては、チェックノード演算部14は、復号途中結果格納メモリ17から供給された復号途中結果と、チェックノードメッセージ格納用メモリ15から供給された1回前のチェックノードメッセージを用いて式(9)と式(8)を合わせた演算を行い、その結果得られるメッセージをチェックノードメッセージ格納用メモリ15に格納させる。
なお、式(8)の演算については、例えば図9に示すように、チェックノードに接続されている枝数が6本であり、各バリアブルノードからそれぞれ入力されるバリアブルノードメッセージをva=-4,vb=5,vc=-2,vd=-3,ve=7,vf=-4とする。また、チェックノード演算後の各バリアブルノードへのチェックノードメッセージをua,ub,uc,ud,ue,ufとすると、uaは、式(8)に基づく次式(10)によって算出される。
Figure 2010028408
・・・(10)
同様に、ub=2,uc=-3,ud=-2,ue=2,uf=-2が算出される。
復号結果計算部16は、チェックノードメッセージと受信データを用いて式(5)の演算を行い、その演算結果を復号途中結果として復号途中結果格納メモリ17に格納させる。
上述した処理を1巡することで1回の復号となり、この復号を所定回数だけ繰り返し、最終復号回数のときには、復号結果計算部16による演算結果を、復号途中結果格納メモリ17を介して復号結果として後段に出力する。
D. J. C. MacKay, "Good error correcting codes based on very sparse matrices", Submitted to IEEE Trans. Inf. Theory, IT-45, pp. 399-431, 1999 M. G. Luby, M. Mitzenmacher, M. A. Shokrollahi and D. A. Spielman, "Analysis of low density codes and improved designs using irregular graphs", in Proceedings of ACM Symposium on Theory of Computing, pp. 249-258, 1998
上述した復号装置10においては、式(8)の演算を実行するため、チェックノードメッセージ格納用メモリ15に、検査行列Hに対応する全枝数分のメッセージを格納する必要がある。したがって、検査行列Hに対応する全枝数が増加するに伴い、また、符号長(量子化ビット長)が長くなるに伴い、チェックノードメッセージ格納用メモリ15の容量が大きくなり、復号装置の回路規模が増大してしまうことになる。
本発明はこのような状況に鑑みてなされたものであり、LDPC符号をmin-sum復号法により復号する復号装置の回路規模の増大を抑制できるようにするものである。
本発明の一側面である復号装置は、LDPC符号を復号する復号装置において、前記LDPC符号の復号のためのチェックノード演算およびバリアブルノード演算を行なう演算手段と、前記演算手段による演算結果であるメッセージを保持する保持手段とを含み、前記保持手段は、前記演算手段による前記バリアブルノード演算の結果であるバリアブルノードメッセージの絶対値の最小値、前記最小値の次に小さな第2最小値、前記最小値の位置情報、および、前記チェックノード演算の結果となるチェックノードメッセージの符号ビットを保持し、前記演算手段は、前記保持手段に保持されている、前記最小値、前記第2最小値、前記最小値の位置情報、および、前記符号ビットに基づいて、前記チェックノードメッセージを演算する。
前記演算手段は、min-sum演算復号法に従い、前記チェックノード演算を行なうようにすることができる。
前記演算手段は、前記最小値の前記位置情報に基づき、演算する前記チェックノードメッセージに対応する前記バリアブルノードメッセージが最小値であるか否かを判定し、演算する前記チェックノードメッセージに対応する前記バリアブルノードメッセージが最小値であると判定した場合、前記第2最小値を採用して、前記チェックノードメッセージを演算し、演算する前記チェックノードメッセージに対応する前記バリアブルノードメッセージが最小値ではないと判定した場合、前記最小値を採用して、前記チェックノードメッセージを演算するようにすることができる。
本発明の一側面である復号方法は、LDPC符号の復号のためのチェックノード演算およびバリアブルノード演算を行なう演算手段と、前記演算手段による演算結果であるメッセージを保持する保持手段とを備える復号装置の復号方法において、前記保持手段による、前記演算手段による前記バリアブルノード演算の結果であるバリアブルノードメッセージの絶対値の最小値、前記最小値の次に小さな第2最小値、前記最小値の位置情報、および、前記チェックノード演算の結果となるチェックノードメッセージの符号ビットを保持する保持ステップと、前記演算手段による、前記保持手段に保持されている、前記最小値、前記第2最小値、前記最小値の位置情報、および、前記符号ビットに基づいて、前記チェックノードメッセージを演算する演算ステップとを含む。
本発明の一側面であるプログラムは、LDPC符号を復号するコンピュータに、前記LDPC符号の復号のためのチェックノード演算およびバリアブルノード演算を行なう演算手段と、前記演算手段による演算結果であるメッセージを保持する保持手段とを含み、前記保持手段は、前記演算手段による前記バリアブルノード演算の結果であるバリアブルノードメッセージの絶対値の最小値、前記最小値の次に小さな第2最小値、前記最小値の位置情報、および、前記チェックノード演算の結果となるチェックノードメッセージの符号ビットを保持し、前記演算手段は、前記保持手段に保持されている、前記最小値、前記第2最小値、前記最小値の位置情報、および、前記符号ビットに基づいて、前記チェックノードメッセージを演算するように機能させる。
本発明の一側面においては、バリアブルノード演算の結果であるバリアブルノードメッセージの絶対値の最小値、前記最小値の次に小さな第2最小値、前記最小値の位置情報、および、前記チェックノード演算の結果となるチェックノードメッセージの符号ビットが保持され、保持されている、前記最小値、前記第2最小値、前記最小値の位置情報、および、前記符号ビットに基づいて、前記チェックノードメッセージが演算される。
本発明の一側面によれば、LDPC符号を復号することができる。また、本発明の一側面によれば、LDPC符号を復号する復号装置の回路規模の増大を抑制することができる。
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
図10、本発明の一実施の形態である復号装置の構成例を示している。この復号装置20は、図8に示された復号装置10のチェックノードメッセージ格納用メモリ15を、チェックノードメッセージ格納用メモリ21で置換したものであり、その他の構成要素について共通であって同一の番号を付している。
すなわち、本発明を適用した復号装置20は、各部に対して制御信号を供給する制御信号生成部11、前段から入力される受信データ(通信を経たLDPC符号の対数尤度比LLR)を保持する受信用メモリ12、受信データまたは復号途中結果の一方を選択して後段に供給するスイッチ13、式(9)と式(8)を合わせた演算を行なうチェックノード演算部14、チェックノードメッセージ格納用メモリ21、式(5)の計算を行なう復号結果計算部16、および復号途中結果格納メモリ17から構成される。
受信用メモリ12には、符号長の数だけ、受信データが格納される。従って、例えば、図4に示された検査行列Hに対応する(3,6)LDPC符号(符号化率1/2、符号長12)の受信データの場合、12個の受信データを格納する。
チェックノードメッセージ格納用メモリ21には、全枝数×符号1ビットと、各バリアブルノードからそれぞれ入力されるメッセージの絶対値の最小値と第2最小値(最小値の次に小さな値)×行数(チェックノード数)と、最小値の位置情報×行数(チェックノード数)を格納する。
例えば図9に示されたように、ある1つのチェックノードに注目した場合、このチェックノードに接続されている枝数が6本であり、各バリアブルノードからそれぞれ入力されるバリアブルノードメッセージをva=-4,vb=5,vc=-2,vd=-3,ve=7,vf=-4とする。また、チェックノード演算後の各バリアブルノードへのチェックノードメッセージをua,ub,uc,ud,ue,ufとすると、上述したように、ua=-2,ub=2,uc=-3,ud=-2,ue=2,uf=-2となる。
ua乃至ufの絶対値とva乃至vfを比較すると、ua乃至ufの絶対値は、va乃至vfの絶対値の最小値(2)または第2最小値(3)のいずれかであることがわかる。従って、チェックノードメッセージ格納用メモリ21には、ua乃至ufを求めるために必要な、va乃至vfの絶対値の最小値(2)および第2最小値(3)を格納するようにし、絶対値が第2最小値よりも大きな値(いまの場合、-4,5,7,-4)については格納しない。ただし、va乃至vfの符号(正負)に基づいてua乃至ufの符号(正負)を求め、ua乃至ufの符号(正負)を示す符号1ビットsign(ua)乃至sign(uf)を格納するようにする。さらに、va乃至vfの絶対値の最小値が、va乃至vfのいずれに位置しているのかを示す位置情報(例えば、図9の場合、vcが最小値であることを示す情報)も格納する。
次に、復号装置20の動作について説明する。チェックノード演算部14は、復号途中結果格納メモリ17から供給された復号途中結果と、チェックノードメッセージ格納用メモリ21から供給された1回前のチェックノードメッセージを用いて式(9)の演算を行なった後、式(8)の演算を行い、その結果得られるメッセージをチェックノードメッセージ格納用メモリ21に格納させる。
ただし、式(8)の演算については、図9を参照して上述したように、式(10)の演算を実行するのではなく、チェックノードメッセージ格納用メモリ21に格納されている情報を用いて演算する(図11を参照して後述する)。
復号結果計算部16は、チェックノードメッセージと受信データを用いて式(5)の演算を行い、その演算結果を復号途中結果として復号途中結果格納メモリ17に格納させる。
上述した処理を1巡することで1回の復号となり、この復号を所定回数だけ繰り返し、最終復号回数のときには、復号結果計算部16による演算結果を、復号途中結果格納メモリ17を介して復号結果として後段に出力する。
次に、チェックノード演算部14によるチェックノードメッセージ演算処理について、図9の例を用い、図11のフローチャートを参照して説明する。
例えば、図9に示されたチェックノードにおいて、チェックノードメッセージudを演算する場合、ステップS21において、チェックノード演算部14は、チェックノードメッセージ格納用メモリ21から、符号1ビットsign(ud)を読み出す。いまの場合、sign(ud)=-1が読み出される。
ステップS22において、チェックノード演算部14は、チェックノードメッセージ格納用メモリ21から、最小値の位置情報を読み出して、読み出した最小値の位置情報に基づいて、vdが最小値であるか否かを判定する。vdが最小値であると判定した場合、チェックノード演算部14は、処理をステップS23に進め、チェックノードメッセージ格納用メモリ21からva乃至vfの絶対値の第2最小値(図9の場合、(3))を読み出す。この後、処理をステップS25に進める。
なお、ステップS22において、vdが最小値ではないと判定した場合、チェックノード演算部14は、処理をステップS24に進め、チェックノードメッセージ格納用メモリ21からva乃至vfの絶対値の最小値(図9の場合、(2))を読み出す。この後、処理をステップS25に進める。
いまの場合、vdが最小値ではないと判定され、ステップS24において、チェックノードメッセージ格納用メモリ21からva乃至vfの絶対値の最小値(図9の場合、(2))が読み出される。
ステップS25において、チェックノード演算部14は、ステップS21で読み出した符号1ビットsign(ud)と、ステップS23で読み出した第2最小値、またはステップS24で読み出した最小値とを乗算して、チェックノードメッセージudを取得する。
いまの場合、ステップS21で読み出された符号1ビットsign(ud)=-1と、ステップS24で読み出した最小値(2)とが乗算されて、チェックノードメッセージud=-2が取得される。以上で、チェックノード演算部14によるチェックノードメッセージ演算処理の説明を終了する。
以上説明したように、本発明を適用した復号装置20のチェックノードメッセージ格納用メモリ21は、図8に示された従来の復号装置10のチェックノードメッセージ格納用メモリ15に比較して、その容量を削減することができる。
例えば、図4に示された検査行列Hに対応する(3,6)LDPC符号で量子化ビット数を6ビットとした場合、従来の復号装置10のチェックノードメッセージ格納用メモリ15では、216(=36×6)ビットの容量を要する。これに対して、本発明を適用した復号装置20のチェックノードメッセージ格納用メモリ21では、全枝数×符号1ビット=36(=36×1)ビット、各バリアブルノードからそれぞれ入力されるメッセージの絶対値の最小値と第2最小値×行数(チェックノード数)=60(=2×5×6)ビット、最小値の位置情報×行数(チェックノード数)=18ビット(3×6)の合計114ビットの容量で済むことになり、その分だけメモリ容量を削減することができる。
また例えば、図11に示す検査行列Hに対応する(4,9)LDPC符号で量子化ビット数を6ビットとした場合、従来の復号装置10のチェックノードメッセージ格納用メモリ15では、480(=80×6)ビットの容量を要する。これに対して、本発明を適用した復号装置20のチェックノードメッセージ格納用メモリ21では、全枝数×符号1ビット=80(=80×1)ビット、各バリアブルノードからそれぞれ入力されるメッセージの絶対値の最小値と第2最小値×行数(チェックノード数)=100(=2×5×10)ビット、最小値の位置情報×行数(チェックノード数)=30ビット(3×10)の合計210ビットの容量で済むことになり、その分だけメモリ容量を削減することができる。
なお、本発明によるチェックノードメッセージ格納用メモリの容量削減率は、特に、一般的にLDPC符号が運用されるときのように、符号長が数千乃至数万と大きくなり、行重みが数十と大きくなるに伴って増大する。したがって、本発明による効果も非常に大きなものとなる。
ところで、上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のコンピュータなどに、プログラム記録媒体からインストールされる。
コンピュータでは、CPUが、例えば、ハードディスクに記憶されているプログラムをRAMにロードして実行することにより、上述した一連の処理が行われる。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
LDPC符号の検査行列Hを説明する図である。 LDPC符号の復号手順を説明するフローチャートである。 メッセージの流れを説明する図である。 LDPC符号の検査行列Hの例を示す図である。 検査行列Hのタナーグラフを示す図である。 バリアブルノードを示す図である。 チェックノードを示す図である。 LDPC符号を復号する従来の復号装置の構成例を示すブロック図である。 チェックノードメッセージの演算を説明するための図である。 本発明を適用した復号装置の構成例を示すブロック図である。 チェックノードメッセージの演算を説明するフローチャートである。 LDPC符号の検査行列Hの例を示す図である。
符号の説明
20 復号装置, 11 制御信号生成部, 12 受信用メモリ, 13 スイッチ, 14 チェックノード演算部, 16 復号結果部, 17 復号途中結果格納メモリ,21 チェックノードメッセージ用格納メモリ

Claims (5)

  1. LDPC(Low Density Parity Check codes)符号を復号する復号装置において、
    前記LDPC符号の復号のためのチェックノード演算およびバリアブルノード演算を行なう演算手段と、
    前記演算手段による演算結果であるメッセージを保持する保持手段とを含み、
    前記保持手段は、前記演算手段による前記バリアブルノード演算の結果であるバリアブルノードメッセージの絶対値の最小値、前記最小値の次に小さな第2最小値、前記最小値の位置情報、および、前記チェックノード演算の結果となるチェックノードメッセージの符号ビットを保持し、
    前記演算手段は、前記保持手段に保持されている、前記最小値、前記第2最小値、前記最小値の位置情報、および、前記符号ビットに基づいて、前記チェックノードメッセージを演算する
    復号装置。
  2. 前記演算手段は、min-sum演算復号法に従い、前記チェックノード演算を行なう
    請求項1に記載の復号装置。
  3. 前記演算手段は、前記最小値の前記位置情報に基づき、演算する前記チェックノードメッセージに対応する前記バリアブルノードメッセージが最小値であるか否かを判定し、
    演算する前記チェックノードメッセージに対応する前記バリアブルノードメッセージが最小値であると判定した場合、前記第2最小値を採用して、前記チェックノードメッセージを演算し、
    演算する前記チェックノードメッセージに対応する前記バリアブルノードメッセージが最小値ではないと判定した場合、前記最小値を採用して、前記チェックノードメッセージを演算する
    請求項2に記載の復号装置。
  4. LDPC(Low Density Parity Check codes)符号の復号のためのチェックノード演算およびバリアブルノード演算を行なう演算手段と、
    前記演算手段による演算結果であるメッセージを保持する保持手段とを備える復号装置の復号方法において、
    前記保持手段による、前記演算手段による前記バリアブルノード演算の結果であるバリアブルノードメッセージの絶対値の最小値、前記最小値の次に小さな第2最小値、前記最小値の位置情報、および、前記チェックノード演算の結果となるチェックノードメッセージの符号ビットを保持する保持ステップと、
    前記演算手段による、前記保持手段に保持されている、前記最小値、前記第2最小値、前記最小値の位置情報、および、前記符号ビットに基づいて、前記チェックノードメッセージを演算する演算ステップと
    を含む復号方法。
  5. LDPC(Low Density Parity Check codes)符号を復号するコンピュータに、
    前記LDPC符号の復号のためのチェックノード演算およびバリアブルノード演算を行なう演算手段と、
    前記演算手段による演算結果であるメッセージを保持する保持手段とを含み、
    前記保持手段は、前記演算手段による前記バリアブルノード演算の結果であるバリアブルノードメッセージの絶対値の最小値、前記最小値の次に小さな第2最小値、前記最小値の位置情報、および、前記チェックノード演算の結果となるチェックノードメッセージの符号ビットを保持し、
    前記演算手段は、前記保持手段に保持されている、前記最小値、前記第2最小値、前記最小値の位置情報、および、前記符号ビットに基づいて、前記チェックノードメッセージを演算する
    ように機能させるプログラム。
JP2008186766A 2008-07-18 2008-07-18 情報処理装置、情報処理方法、およびプログラム Withdrawn JP2010028408A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008186766A JP2010028408A (ja) 2008-07-18 2008-07-18 情報処理装置、情報処理方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008186766A JP2010028408A (ja) 2008-07-18 2008-07-18 情報処理装置、情報処理方法、およびプログラム

Publications (1)

Publication Number Publication Date
JP2010028408A true JP2010028408A (ja) 2010-02-04

Family

ID=41733826

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008186766A Withdrawn JP2010028408A (ja) 2008-07-18 2008-07-18 情報処理装置、情報処理方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP2010028408A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012099971A (ja) * 2010-10-29 2012-05-24 Jvc Kenwood Corp 復号装置および復号方法
KR101478466B1 (ko) * 2013-10-24 2015-01-06 인하대학교 산학협력단 효율적인 1의 보수 체계를 이용한 저밀도 패리티 검사 복호 장치 및 그 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012099971A (ja) * 2010-10-29 2012-05-24 Jvc Kenwood Corp 復号装置および復号方法
US9143165B2 (en) 2010-10-29 2015-09-22 JVC Kenwood Corporation Decoding apparatus and decoding method for decoding LDPC-encoded data
KR101478466B1 (ko) * 2013-10-24 2015-01-06 인하대학교 산학협력단 효율적인 1의 보수 체계를 이용한 저밀도 패리티 검사 복호 장치 및 그 방법

Similar Documents

Publication Publication Date Title
US10511326B2 (en) Systems and methods for decoding error correcting codes
JP4595650B2 (ja) 復号装置および復号方法
US11115051B2 (en) Systems and methods for decoding error correcting codes
JP4224777B2 (ja) 復号方法および復号装置、並びにプログラム
JP5464990B2 (ja) シンボルから成るブロックを復号するための多段復号器及び方法
JP4432902B2 (ja) 復号装置および方法、プログラム、記録再生装置および方法、並びに、再生装置および方法
JP4487213B2 (ja) 復号装置および方法、並びにプログラム
JP4702632B2 (ja) 符号化方法および符号化装置、並びにプログラム
US8166363B2 (en) Decoding device and method
JP4487212B2 (ja) 復号装置および方法、送受信システム、受信装置および方法、並びにプログラム
US20110131462A1 (en) Matrix-vector multiplication for error-correction encoding and the like
JP4622654B2 (ja) 復号装置および復号方法
US20050010846A1 (en) Decoding device and decoding method
JPWO2003073621A1 (ja) Ldpc符号用検査行列生成方法および検査行列生成装置
JP2009152655A (ja) 復号装置、復号方法、受信装置、および記憶媒体再生装置
Safarnejad et al. FFT based sum-product algorithm for decoding LDPC lattices
JP4572937B2 (ja) 復号装置および方法、プログラム、並びに記録媒体
JP2005051469A (ja) 符号化装置および符号化方法、並びにプログラム
US9584158B2 (en) Unified H-encoder for a class of multi-rate LDPC codes
JP2010028408A (ja) 情報処理装置、情報処理方法、およびプログラム
JP4729964B2 (ja) 復号装置および復号方法
JP4730592B2 (ja) 復号装置および復号方法
JP4821724B2 (ja) 復号装置および復号方法
JP4288582B2 (ja) 復号装置および復号方法、並びにプログラム
JP2007081602A (ja) 復号装置および復号方法

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20111004