JP2004343170A - 復号方法および復号装置、並びにプログラム - Google Patents
復号方法および復号装置、並びにプログラム Download PDFInfo
- Publication number
- JP2004343170A JP2004343170A JP2003133942A JP2003133942A JP2004343170A JP 2004343170 A JP2004343170 A JP 2004343170A JP 2003133942 A JP2003133942 A JP 2003133942A JP 2003133942 A JP2003133942 A JP 2003133942A JP 2004343170 A JP2004343170 A JP 2004343170A
- Authority
- JP
- Japan
- Prior art keywords
- matrix
- decoding
- unit
- message
- check
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/615—Use of computational or mathematical techniques
- H03M13/616—Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
- H03M13/1134—Full parallel processing, i.e. all bit nodes or check nodes are processed in parallel
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
- H03M13/1168—Quasi-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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/118—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
- H03M13/1185—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/118—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
- H03M13/1185—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
- H03M13/1188—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal wherein in the part with the double-diagonal at least one column has an odd column weight equal or greater than three
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/19—Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6566—Implementations concerning memory access contentions
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6577—Representation or format of variables, register sizes or word-lengths and quantization
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Error Detection And Correction (AREA)
Abstract
【解決手段】LDPC(Low Density Parity Check)符号の元の検査行列に対して、行置換と列置換のうちの一方または両方を行って得られる変換検査行列を用いて、LDPC符号が復号される。この場合に、P×Pの単位行列、その単位行列のコンポーネントである1のうちの1個以上が0になった行列である準単位行列、単位行列もしくは準単位行列をサイクリックシフトした行列であるシフト行列、単位行列、準単位行列、もしくはシフト行列のうちの複数の和である和行列、またはP×Pの0行列を構成行列として、変換検査行列は、複数の構成行列の組合せで表される。チェックノード計算部302は、チェックノードの演算を、P個同時に行い、バリアブルノード計算部304は、バリアブルノードの演算を、P個同時に行う。
【選択図】 図18
Description
【発明の属する技術分野】
本発明は、復号方法および復号装置、並びにプログラムに関し、特に、低密度パリティ検査符号による符号化が施された符号の復号を行う復号方法および復号装置、並びにプログラムに関する。
【0002】
【従来の技術】
近年、例えば、移動体通信や深宇宙通信といった通信分野、及び地上波又は衛星ディジタル放送といった放送分野の研究が著しく進められているが、それに伴い、誤り訂正符号化及び復号の効率化を目的として符号理論に関する研究も盛んに行われている。
【0003】
符号性能の理論的限界としては、いわゆるシャノン(C. E. Shannon)の通信路符号化定理によって与えられるシャノン限界が知られている。符号理論に関する研究は、このシャノン限界に近い性能を示す符号を開発することを目的として行われている。近年では、シャノン限界に近い性能を示す符号化方法として、例えば、並列連接畳み込み符号(PCCC(Parallel Concatenated Convolutional Codes))や、縦列連接畳み込み符号(SCCC(Serially Concatenated Convolutional Codes))といった、いわゆるターボ符号化(Turbo coding)と呼ばれる手法が開発されている。また、これらのターボ符号が開発される一方で、古くから知られる符号化方法である低密度パリティ検査符号(Low Density Parity Check codes)(以下、LDPC符号という)が脚光を浴びつつある。
【0004】
LDPC符号は、R. G. Gallagerによる「R. G. Gallager, ”Low Density Parity Check Codes”, Cambridge, Massachusetts: M. I. T. Press, 1963」において最初に提案されたものであり、その後、「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」等において再注目されるに至ったものである。
【0005】
LDPC符号は、近年の研究により、ターボ符号等と同様に、符号長を長くしていくにしたがって、シャノン限界に近い性能が得られることがわかりつつある。また、LDPC符号は、最小距離が符号長に比例するという性質があることから、その特徴として、ブロック誤り確率特性がよく、さらに、ターボ符号等の復号特性において観測される、いわゆるエラーフロア現象が殆ど生じないことも利点として挙げられる。
【0006】
以下、このようなLDPC符号について具体的に説明する。なお、LDPC符号は、線形符号であり、必ずしも2元である必要はないが、ここでは、2元であるものとして説明する。
【0007】
LDPC符号は、そのLDPC符号を定義する検査行列(parity check matrix)が疎なものであることを最大の特徴とするものである。ここで、疎な行列とは、行列のコンポーネントの”1”の個数が非常に少なく構成されるものであり、疎な検査行列をHで表すものとすると、そのような検査行列としては、例えば、図1に示すように、各行のハミング重み(”1”の数)(weight)が”3”であり、且つ、各列のハミング重みが”6”であるもの等がある。
【0008】
このように、各行及び各列のハミング重みが一定である検査行列Hによって定義されるLDPC符号は、レギュラーLDPC符号と称される。一方、各行及び各列のハミング重みが一定でない検査行列Hによって定義されるLDPC符号は、イレギュラーLDPC符号と称される。
【0009】
このようなLDPC符号による符号化は、検査行列Hに基づいて生成行列Gを生成し、この生成行列Gを2元の情報メッセージに対して乗算することによって符号語を生成することで実現される。具体的には、LDPC符号による符号化を行う符号化装置は、まず、検査行列Hの転置行列HTとの間に、式GHT=0が成立する生成行列Gを算出する。ここで、生成行列Gが、k×n行列である場合には、符号化装置は、生成行列Gに対してkビットからなる情報メッセージ(ベクトルu)を乗算し、nビットからなる符号語c(=uG)を生成する。この符号化装置によって生成された符号語は、値が”0”の符号ビットが”+1”に、値が”1”の符号ビットが”1”にといったようにマッピングされて送信され、所定の通信路を介して受信側において受信されることになる。
【0010】
一方、LDPC符号の復号は、Gallagerが確率復号(Probabilistic Decoding)と称して提案したアルゴリズムであって、バリアブルノード(variable node(メッセージノード(message node)ともいう。))と、チェックノード(check node)とからなる、いわゆるタナーグラフ(Tanner graph)上での確率伝播(belief propagation)によるメッセージ・パッシング・アルゴリズムによって行うことが可能である。ここで、以下、適宜、バリアブルノードとチェックノードを、単に、ノードともいう。
【0011】
しかしながら、確率復号においては、各ノード間で受け渡されるメッセージが実数値であることから、解析的に解くためには、連続した値をとるメッセージの確率分布そのものを追跡する必要があり、非常に困難を伴う解析を必要とすることになる。そこで、Gallagerは、LDPC符号の復号アルゴリズムとして、アルゴリズムA又はアルゴリズムBを提案している。
【0012】
LDPC符号の復号は、一般的には、図2に示すような手順にしたがって行われる。なお、ここでは、受信値(受信した符号系列)をU0(u0i)とし、チェックノードから出力されるメッセージをujとし、バリアブルノードから出力されるメッセージをviとする。また、ここでは、メッセージとは、値の”0”らしさを、いわゆる対数尤度比(log likelihood ratio)で表現した実数値である。
【0013】
まず、LDPC符号の復号においては、図2に示すように、ステップS11において、受信値U0(u0i)が受信され、メッセージujが”0”に初期化されるとともに、繰り返し処理のカウンタとしての整数をとる変数kが”0”に初期化され、ステップS12に進む。ステップS12において、受信値U0(u0i)に基づいて、式(1)に示す演算(バリアブルノードの演算)を行うことによってメッセージviが求められ、さらに、このメッセージviに基づいて、式(2)に示す演算(チェックノードの演算)を行うことによってメッセージujが求められる。
【0014】
【数1】
【0015】
【数2】
【0016】
ここで、式(1)と式(2)におけるdvとdcは、それぞれ、検査行列Hの縦方向(列)と横方向(行)の”1”の個数を示す任意に選択可能とされるパラメータであり、例えば、(3,6)符号の場合には、dv=3,dc=6となる。
【0017】
なお、式(1)または(2)の演算においては、それぞれ、メッセージを出力しようとする枝(edge)(バリアブルノードとチェックノードとを結ぶ線)から入力されたメッセージを、和または積演算のパラメータとしては用いないことから、和または積演算の範囲が、1乃至dv−1または1乃至dc−1となっている。また、式(2)に示す演算は、実際には、2入力v1,v2に対する1出力で定義される式(3)に示す関数R(v1,v2)のテーブルを予め作成しておき、これを式(4)に示すように連続的(再帰的)に用いることによって行われる。
【0018】
【数3】
【0019】
【数4】
【0020】
ステップS12では、さらに、変数kが”1”だけインクリメントされ、ステップS13に進む。ステップS13では、変数kが所定の繰り返し復号回数Nよりも大きいか否かが判定される。ステップS13において、変数kがNよりも大きくないと判定された場合、ステップS12に戻り、以下、同様の処理が繰り返される。
【0021】
また、ステップS13において、変数kがNよりも大きいと判定された場合、ステップS14に進み、式(5)に示す演算を行うことによって最終的に出力する復号結果としてのメッセージviが求められて出力され、LDPC符号の復号処理が終了する。
【0022】
【数5】
【0023】
ここで、式(5)の演算は、式(1)の演算とは異なり、バリアブルノードに接続している全ての枝からの入力メッセージを用いて行われる。
【0024】
このようなLDPC符号の復号は、例えば(3,6)符号の場合には、図3に示すように、各ノード間でメッセージの授受が行われる。なお、図3における”=”で示すノード(バリアブルノード)では、式(1)に示した演算が行われ、”+”で示すノード(チェックノード)では、式(2)に示した演算が行われる。特に、アルゴリズムAにおいては、メッセージを2元化し、”+”で示すノードにて、dc−1個の入力メッセージの排他的論理和演算を行い、”=”で示すノードにて、受信値Rに対して、dv−1個の入力メッセージが全て異なるビット値であった場合には、符号を反転して出力する。
【0025】
また、一方で、近年、LDPC符号の復号の実装法に関する研究も行われている。実装方法について述べる前に、まず、LDPC符号の復号を摸式化して説明する。
【0026】
図4は、(3,6)LDPC符号(符号化率1/2、符号長12)の検査行列(parity check matrix)の例である。LDPC符号の検査行列は、図5のように、タナーグラフを用いて書き表すことができる。ここで、図5において、”+”で表わされるのが、チェックノードであり、”=”で表わされるのが、バリアブルノードである。チェックノードとバリアブルノードは、それぞれ、検査行列の行と列に対応する。チェックノードとバリアブルノードとの間の結線は、枝(edge)であり、検査行列の”1”に相当する。即ち、検査行列の第j行第i列のコンポーネントが1である場合には、図5において、上からi番目のバリアブルノード(”=”のノード)と、上からj番目のチェックノード(”+”のノード)とが、枝により接続される。枝は、バリアブルノードに対応する符号ビットが、チェックノードに対応する拘束条件を持つことを表わす。なお、図5は、図4の検査行列のタナーグラフとなっている。
【0027】
LDPC符号の復号方法であるサムプロダクトアルゴリズム(Sum Product Algorithm)では、バリアブルノードの演算とチェックノードの演算とが繰り返し行われる。
【0028】
バリアブルノードでは、図6のように、式(1)の演算(バリアブルノード演算)を行う。すなわち、図6において、計算しようとしている枝に対応するメッセージviは、バリアブルノードに繋がっている残りの枝からのメッセージu1およびu2と、受信情報u0iを用いて計算される。他の枝に対応するメッセージも同様に計算される。
【0029】
次に、チェックノードの演算について説明する前に、式(2)を、式a×b=exp{ln(|a|)+ln(|b|)}×sign(a)×sign(b)の関係を用いて、式(6)のように書き直す。但し、sign(x)は、x≧0のとき1であり、x<0のとき−1である。
【0030】
【数6】
【0031】
更に、x≧0において、φ(x)=ln(tanh(x/2))と定義すると、φ−1(x)=2tanh−1(e−x)であるから、式(6)は、式(7)のように書くことができる。
【0032】
【数7】
【0033】
チェックノードでは、図7のように、式(7)の演算(チェックノード演算)を行う。すなわち、図7において、計算しようとしている枝に対応するメッセージujは、チェックノードに繋がっている残りの枝からのメッセージv1,v2,v3,v4,v5を用いて計算される。他の枝に対応するメッセージも同様に計算される。
【0034】
なお、関数φ(x)は、φ(x)=ln((ex+1)/(ex−1))とも表すことができ、x>0において、φ(x)=φ−1(x)である。関数φ(x)およびφ−1(x)をハードウェアに実装する際には、LUT(Look Up Table)を用いて実装される場合があるが、両者共に同一のLUTとなる。
【0035】
サムプロダクトアルゴリズムをハードウェアに実装する場合、式(1)で表わされるバリアブルノード演算および式(7)で表わされるチェックノード演算とを、適度な回路規模と動作周波数で繰り返し行うことが必要である。
【0036】
復号装置の実装の例として、まず、単純に各ノードの演算を一つずつ順次行うことによって復号を行う場合(full serial decoding)の実装法について説明する。
【0037】
なお、ここでは、例えば、図8の、30(行)×90(列)の検査行列で表現される符号(符号化率2/3、符号長90)を復号することとする。図8の検査行列の1の数は269であり、従って、そのタナーグラフでは、枝の数は269個となる。ここで、図8の検査行列では(後述する図15乃至図17においても同様)、0を、”.”で表現している。
【0038】
図9は、LDPC符号の1回復号を行う復号装置の構成例を示している。
【0039】
図9の復号装置では、その動作する1クロック(clock)ごとに、1つの枝に対応するメッセージが計算される。
【0040】
即ち、図9の復号装置は、1つの受信用メモリ104、2つの枝用メモリ100および102、1つのチェックノード計算器101、1つのバリアブルノード計算器103からなる。
【0041】
図9の復号装置では、枝用メモリ100または102からメッセージデータが一つずつ読み出され、そのメッセージデータを用いて、所望の枝に対応するメッセージデータが計算される。そして、その計算によって求められたメッセージデータが一つずつ後段の枝用メモリ102または100に格納されていく。繰り返し復号を行う際には、この1回復号を行う図9の復号装置を複数個縦列に連接するか、もしくは図9の復号装置を繰り返し用いることによって、繰り返し復号を実現する。なお、ここでは、例えば、図9の復号装置が複数個接続されているものとする。
【0042】
枝用メモリ100は、前段の復号装置(図示せず)のバリアブルノード計算器103から供給される出力メッセージD100を、後段のチェックノード計算器101が読み出す順番に格納していく。そして、枝用メモリ100は、チェックノード計算のフェーズでは、メッセージD100を、格納してある順番通りに、メッセージ出力D101として、チェックノード計算器101に供給する。チェックノード計算器101は、枝用メモリ100から供給されるメッセージD101を用いて、式(7)に従って演算を行い、その演算によって求められたメッセージD102を、後段の枝用メモリ102に供給する。
【0043】
ここで、図10は、チェックノード計算を一つずつ行う図9のチェックノード計算器101の構成例を示している。
【0044】
図10のチェックノード計算器101では、枝用メモリ100から供給される、検査行列の各列に対応するバリアブルノードからのメッセージviを一つずつ読み込み、式(7)におけるφ(|vi|)の演算をLUTによって行う。さらに、検査行列の1行に亘る各列に対応するバリアブルノードからのメッセージviから求められたφ(|vi|)が積算され、これにより、全ての枝からのメッセージviから求められたφ(|vi|)の積算値が求められる。その後、その積算値から、メッセージujを求めたい枝から求められてFIFO(FIFOメモリ)で遅延されたφ(|vi|)が減算され、これにより、メッセージujを求めたい枝について、式(7)におけるΣφ(|vi|)が求められる。即ち、チェックノードへの枝すべてからのメッセージの和から、メッセージujを求めたい枝からのメッセージを減算することで、メッセージujを求めたい枝へのメッセージが求められる。さらに、LUTによって、式(7)におけるφ−1(Σφ(|vi|))の演算が行われる。同時に、メッセージujの符号ビット、即ち、式(7)におけるΠsign(vi)も、EXOR回路を用いて同様に計算される。以上のようにして、式(7)の演算が行われ、メッセージujが求められる。
【0045】
なお、図10では、各メッセージが符号ビットを合わせて合計6ビット(bit)に量子化されているものとして、チェックノード計算器101を表している。また、ここで処理の対象としている図8の検査行列の行の重み(row weight)の最大は9であるため、即ち、チェックノードに供給されるメッセージの最大数は9であるため、チェックノード計算器101は、9個のメッセージ(φ(|vi|))を遅延させるFIFO(First In First Out)を持っている。
【0046】
図9に戻り、枝用メモリ102は、前段のチェックノード計算器101から供給される出力メッセージD102を、後段のバリアブルノード計算器103が読み出す順番に格納していく。そして、枝用メモリ102は、バリアブルノード計算のフェーズでは、メッセージ出力D102を、格納してある順番通りに、メッセージ出力D103として、バリアブルノード計算器103に供給する。
【0047】
バリアブルノード計算器103は、枝用メモリ102から供給されるメッセージD103と受信用メモリ104から供給される受信データ(LDPC符号の受信値)D104を用いて式(1)に従って演算を行い、その演算の結果得られるメッセージD105を、図示せぬ後段の復号装置の枝用メモリ100に供給する。
【0048】
ここで、図11は、バリアブルノード計算を一つずつ行う図9のバリアブルノード計算器103の構成例を示している。
【0049】
図11のバリアブルノード計算器103では、枝用メモリ102から供給される、検査行列の各行に対応するチェックノードからのメッセージujを一つずつ読み込み、検査行列の1列に亘る各行に対応するチェックノードからのメッセージを積算して、その積算値を求める。その後、その積算値から、メッセージviを求めたい枝から供給されてFIFOで遅延されたメッセージが減算される。さらに、その結果得られる減算値から、受信値u0iを加算することで、式(1)の演算が行われ、これにより、メッセージviが求められる。即ち、バリアブルノードへの枝すべてからのメッセージの和から、メッセージviを求めたい枝からのメッセージを減算することで、メッセージviを求めたい枝へのメッセージが求められる。
【0050】
図11においても、図10における場合と同様に、各メッセージが符号ビットを合わせて合計6ビットに量子化されているものとして、バリアブルノード計算器103を表している。また、ここで処理の対象としている図8の検査行列においては、列の重み(column weight)の最大値が5であるため、バリアブル計算器103は、5個のメッセージを遅延させるFIFOを持っており、列の重みが5未満の列のメッセージを計算するときには、FIFOにおける遅延量が、その列の重みの値に減らされる。
【0051】
再び、図9に戻り、復号装置には、検査行列の重みにしたがって、図示しない制御信号が与えられる。そして、図9の復号装置によれば、枝用メモリ100および102、並びにチェックノード計算器101およびバリアブルノード計算器103のFIFOの容量さえ足りれば、制御信号のみを変えることで様々な符号を復号することができる。
【0052】
なお、図示しないが、図9の復号装置において、復号の最終段においては、式(1)のバリアブルノード演算の代わりに、式(5)の演算が行われ、その演算結果が、最終的な復号結果として出力される。
【0053】
図9の復号装置を繰り返し用いて、LDPC符号を復号する場合には、チェックノード演算とバリアブルノード演算とが交互に行われるため、269の枝を有する図8の検査行列を用いた1回の復号に、269×2=538クロック(clock)を必要とする。従って、例えば、50回の繰り返し復号を行うためには、符号長である90個の符号情報(受信値)を受信する間に、538×50=26900クロック動作することが必要であり、受信周波数の約300(≒26900/90)倍の高速動作が必要になる。この場合、受信周波数が数十MHzであるとすると、GHz以上の速度での動作を要求されることになり、実装は容易ではない。
【0054】
また、図9の復号装置を、例えば、50台連接して、LDPC符号を復号する場合には、1フレーム(frame)目がバリアブルノード演算を行っている間に、2フレーム目はチェックノード演算を行い、3フレーム目は前段のバリアブルノード演算を行う、というように、複数のバリアブルノード演算とチェックノード演算とを同時に行うことができる。この場合、90個の符号情報を受信する間に、269個の枝を計算すればよいので、復号装置は、受信周波数の約3(≒269/90)倍の周波数で動作すればよいことになり、十分に実現可能である。しかしながら、この場合、回路規模が、単純には、図9の復号装置の50倍になる。
【0055】
次に、全ノードの演算を同時に行うことによって復号を行う場合(full parallel decoding)の復号装置の実装法について説明する。
【0056】
この実装法については、例えば、非特許文献1に記載されている。
【0057】
図12は、図8の検査行列で表現される符号(符号化率2/3、符号長90)を復号する復号装置の一例の構成を示している。
【0058】
図12の復号装置では、枝用メモリ202または206から、269個ある枝に対応するメッセージデータを全て同時に読み出し、そのメッセージデータを用いて、269個の枝に対応する新たなメッセージデータを演算する。さらに、その演算の結果求められた新たなメッセージデータが全て同時に後段の枝用メモリ206または202に格納されていく。そして、図12の復号装置を繰り返し用いることで繰り返し復号が実現される。
【0059】
図12において、復号装置は、1つの受信用メモリ205、2つの枝入れ替え装置200および203、2つの枝用メモリ202および206、30個のチェックノード計算器2011乃至20130、90個のバリアブルノード計算器2041乃至20490からなる。以下、各部について詳細に説明する。
【0060】
枝用メモリ206は、前段のバリアブルノード計算器2041乃至20490からの出力メッセージD2061乃至D20690を全て同時に格納し、次の時刻(次のクロックのタイミング)に、メッセージD2061乃至D20690を、メッセージD2071乃至D20790として読み出し、次段の枝入れ替え装置200に、メッセージD200(D2001乃至D20090)として供給する。枝入れ替え装置200は、枝用メモリ206から供給されたメッセージD2001乃至D20090の順番を、図8の検査行列に従って並び替え(入れ替え)、チェックノード計算器2011乃至20130に、それぞれ必要なメッセージD2011乃至D20130を供給する。
【0061】
チェックノード計算器2011乃至20130は、枝入れ替え装置200から供給されるメッセージD2011乃至D20130を用いて式(7)に従って演算を行い、その演算の結果得られるメッセージD2021乃至D20230を、枝用メモリ202に供給する。
【0062】
ここで、図13は、チェックノード演算を同時に行う図12のチェックノード計算器201m(m=1,2,・・・,30)の構成例を示している。
【0063】
図13のチェックノード計算器201mでは、図10のチェックノード計算器101と同様にして、式(7)のチェックノード演算が行われるが、そのチェックノード演算が、すべての枝について同時に行われる。
【0064】
即ち、図13のチェックノード計算器201mでは、枝入れ替え装置200から供給される図8の検査行列の各列に対応するバリアブルノードからのメッセージが全て同時に読み込まれ、式(7)におけるφ(|vi|)の演算がLUTによって行われる。さらに、検査行列の1行に亘る各列に対応するバリアブルノードからのメッセージviから求められたφ(|vi|)が積算され、これにより、全ての枝からのメッセージviから求められたφ(|vi|)の積算値が求められる。その後、その積算値から、メッセージujを求めたい枝から求められたφ(|vi|)が減算され、これにより、メッセージujを求めたい枝について、式(7)におけるΣφ(|vi|)が求められる。即ち、チェックノードへの枝すべてからのメッセージの和から、メッセージujを求めたい枝からのメッセージを減算することで、メッセージujを求めたい枝へのメッセージが求められる。さらに、LUTによって、式(7)におけるφ−1(Σφ(|vi|))の演算が行われる。同時に、メッセージujの符号ビット、即ち、式(7)におけるΠsign(vi)も、EXOR回路を用いて同様に計算される。以上のようにして、式(7)の演算が行われ、メッセージujが求められる。
【0065】
なお、図13では、各メッセージが符号ビットを合わせて合計6ビットに量子化されているものとして、チェックノード計算器201mを表している。また、図13の回路は一つのチェックノードに相当する。ここで処理の対象としている図8の検査行列については、その行数である30行のチェックノードが存在するから、図12の復号装置は、図13に示したようなチェックノード計算器201mを30個有している。
【0066】
ここで、図13のチェックノード計算器201mでは、9個のメッセージを同時に計算することができる。そして、ここで処理の対象としている図8の検査行列の行の重みは、第1行が8で、第2乃至第30行が9であるため、即ち、チェックノードに供給されるメッセージの数が、8のケースが1つと、9のケースが29あるため、チェックノード計算器2011は、図13の回路と同様の8つのメッセージを同時に計算することができる回路構成となっており、チェックノード計算器2012乃至20130は、図13の回路と同一構成となっている。
【0067】
図12に戻り、枝用メモリ202は、前段のチェックノード計算器2011乃至20130から供給される出力メッセージD2021乃至D20230を全て同時に格納し、次の時刻に、そのすべてのメッセージD2021乃至D20230を、出力メッセージD2031乃至D20330として、次段の枝入れ替え装置203に供給する。
【0068】
枝入れ替え装置203は、枝用メモリ202から供給されたメッセージD2031乃至D20330の順番を図8の検査行列に従って並び替え、バリアブルノード計算器2041乃至20490に、それぞれ必要なメッセージD2041乃至D20490を供給する。
【0069】
バリアブルノード計算器2041乃至20490は、枝入れ替え装置203から供給されるメッセージD2041乃至D20490と、受信用メモリ205から供給される受信データ(受信値)D2051乃至D20590を用いて式(1)に従って演算を行い、その演算の結果得られるメッセージD2061乃至D20690を、次段の枝用メモリ206に供給する。
【0070】
ここで、図14は、バリアブルノード演算を同時に行う図12のバリアブルノード計算器204p(p=1,2,・・・,90)の構成例を示している。
【0071】
図14のバリアブルノード計算器204pでは、図11のバリアブルノード計算器103と同様にして、式(7)のチェックノード演算が行われるが、そのチェックノード演算が、すべての枝について同時に行われる。
【0072】
即ち、図14のバリアブルノード計算器204pでは、枝入れ替え装置203から供給される、検査行列の各行に対応するチェックノードからのメッセージujが全て同時に読み込まれ、検査行列の1列に亘る各行に対応するチェックノードからのメッセージが積算されて、その積算値が求められる。その後、その積算値から、メッセージviを求めたい枝から供給されたメッセージが減算され、その結果得られる減算値から、受信値u0iを加算することで、式(1)の演算が行われ、これにより、メッセージviが求められる。即ち、バリアブルノードへの枝すべてからのメッセージの和から、メッセージviを求めたい枝からのメッセージを減算することで、メッセージviを求めたい枝へのメッセージが求められる。
【0073】
なお、図14では、各メッセージが符号ビットを合わせて合計6ビットに量子化されているものとして、バリアブルノード計算器204pを表している。また、図14の回路は一つのバリアブルノードに相当する。ここで処理の対象としている図8の検査行列については、その列数である90列のバリアブルノードが存在するから、図12の復号装置は、図14に示したようなバリアブルノード計算器204pを90個有している。
【0074】
ここで、図14のバリアブルノード計算器204pでは、5個のメッセージを同時に計算することができる。そして、ここで処理の対象としている図8の検査行列は、重みが5,3,2,1の列が、それぞれ、15列、45列、29列、1列あるので、バリアブルノード計算器2041乃至20490のうちの15個は、図14の回路と同一構成となっており、残りの45,29,1個は、図14の回路と同様の3,2,1つのメッセージを同時にそれぞれ計算することができる回路構成となっている。
【0075】
なお、図示しないが、図12の復号装置においても、図9における場合と同様に、復号の最終段においては、式(1)のバリアブルノード演算の代わりに、式(5)の演算が行われ、その演算結果が復号結果として出力される。
【0076】
図12の復号装置によれば、269個ある枝に対応するメッセージすべてを1クロックで同時に計算することができる。
【0077】
図12の復号装置を繰り返し用いて復号する場合には、チェックノード演算とバリアブルノード演算とを交互に行い、1回の復号を2クロックで行うことができる。従って、例えば、50回の復号を行うためには、90個の符号情報を受信する間に 2×50=100クロック動作すれば良いことになり、ほぼ受信周波数と同一の動作周波数でよいことになる。一般的に、LDPC符号は、符号長が数千から数万と大きいことから、図12の復号装置を用いれば、復号回数を極めて多くすることができ、誤り訂正性能の向上が期待できる。
【0078】
しかしながら、図12の復号装置は、タナーグラフのすべての枝に対応するメッセージの演算を、並列で行うため、回路規模が、符号長に比例して大きくなる。また、図12の復号装置を、ある符号長の、ある符号化率の、ある検査行列を持つLDPC符号の復号を行う装置として構成した場合、その復号装置において、他の符号長や、他の符号化率、他の検査行列を持つLDPC符号の復号を行うことは困難となる。即ち、図12の復号装置は、図9の復号装置のように、制御信号を変えるだけでは、様々な符号を復号することはできず、符号依存性が高い。
【0079】
図9および図12の復号装置の他に、一つでも全てでもなく、4つずつのメッセージの計算を同時に行う実装法について、例えば、非特許文献2に述べられているが、この場合、メモリの異なるアドレスからの同時読み出し、もしくは同時書き込みを避けることが一般的には容易でなく、メモリアクセス制御が困難であるという問題がある。
【0080】
また、サムプロダクトアルゴリズムを近似して実装する方法なども提案されているが、この方法では、性能の劣化を招いてしまう。
【0081】
【非特許文献1】
C. Howland and A. Blanksby, ”Parallel Decoding Architectures for Low Density Parity Check Codes”, Symposium on Circuits and Systems, 2001
【0082】
【非特許文献2】
E. Yeo, P. Pakzad, B. Nikolic and V. Anantharam, ”VLSI Architectures for iterative Decoders in Magnetic Recording Channels”, IEEE Transactions on Magnetics, Vol. 37, No. 2, March 2001
【0083】
【発明が解決しようとする課題】
図15は、符号長90、符号化率2/3のLDPC符号の検査行列の一例である。この検査行列で表されるLDPC符号の復号装置を実装することを考える場合、枝に対応するメッセージを一つずつ計算する復号装置、もしくは枝に対応するメッセージを全て同時に計算する復号装置の設計自体は難しいことではない。
【0084】
しかしながら、その復号装置の実現は、回路規模や動作速度の面から見て、容易ではない。
【0085】
また、図15の検査行列で表される符号を、ある数P個の枝を同時に計算する復号装置を用いて復号する場合、枝データ(枝に対応するメッセージ)を格納するメモリにおいては、各行または各列毎に異なる位置(アドレス)からの読み出しまたは書き込みのアクセスが必要になるため、各行または各列毎に別々のFIFOを用いることが必要になる。更に、メッセージについては、チェックノード演算で計算された順序と、次のバリアブルノード演算で使われる順番が入れ替わることもあり、メッセージを格納するメモリを、単純にFIFOで実現することも容易ではない。
【0086】
本発明は、このような状況に鑑みてなされたものであり、ロジック、メモリ共に回路規模を抑制しつつ、動作周波数も十分実現可能な範囲に抑え、メモリアクセスの制御も容易に行うことができるようにするものである。
【0087】
【課題を解決するための手段】
本発明の復号方法は、元の検査行列に対して、行置換と列置換のうちの一方または両方を行って得られる変換検査行列を用いて、LDPC符号を復号する復号ステップを備えることを特徴とする。
【0088】
本発明の復号装置は、元の検査行列に対して、行置換と列置換のうちの一方または両方を行って得られる変換検査行列を用いて、LDPC符号を復号する復号手段を備えることを特徴とする。
【0089】
本発明のプログラムは、元の検査行列に対して、行置換と列置換のうちの一方または両方を行って得られる変換検査行列を用いて、LDPC符号を復号する復号ステップを備えることを特徴とする。
【0090】
本発明においては、元の検査行列に対して、行置換と列置換のうちの一方または両方を行って得られる変換検査行列を用いて、LDPC符号が復号される。
【0091】
【発明の実施の形態】
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【0092】
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
【0093】
請求項4に記載の復号装置は、
LDPC(Low Density Parity Check)符号の復号装置であって、
元の検査行列に対して、行置換と列置換のうちの一方または両方を行って得られる変換検査行列を用いて、前記LDPC符号を復号する復号手段(例えば、図18の枝データ格納メモリ300および304、チェックノード計算部302、サイクリックシフト回路303および308、バリアブルノード計算部307、並びに復号語計算部309)を備えることを特徴とする。
【0094】
請求項6に記載の復号装置は、
前記復号手段は、
前記LDPC符号の復号のためのP個のチェックノードの演算を同時に行うチェックノード計算手段(例えば、図18のチェックノード計算部302)と、
前記LDPC符号の復号のためのP個のバリアブルノードの演算を同時に行うバリアブルノード計算手段(例えば、図18のバリアブルノード計算部307)と
を有する
ことを特徴とする。
【0095】
請求項7に記載の復号装置は、
前記チェックノード計算手段は、チェックノードの演算を行うP個のチェックノード計算器(例えば、図18のチェックノード計算器3021乃至3025)を有し、
前記バリアブルノード計算手段は、バリアブルノードの演算を行うP個のバリアブルノード計算器(例えば、図18のバリアブルノード計算器3071乃至3075)を有する
ことを特徴とする。
【0096】
請求項8に記載の復号装置は、
前記復号手段は、前記P個のチェックノードの演算、または前記P個のバリアブルノードの演算の結果得られるP個の枝に対応するメッセージデータを同時に読み書きするメッセージ記憶手段(例えば、図18の枝データ格納メモリ300または304)をさらに有する
ことを特徴とする。
【0097】
請求項14に記載の復号装置は、
前記復号手段は、受信情報を格納するとともに、P個の前記受信情報を同時に読み出す受信情報記憶手段(例えば、図18の受信データ用メモリ306)をさらに有する
ことを特徴とする。
【0098】
請求項16に記載の復号装置は、
前記復号手段は、前記P個のチェックノードの演算、または前記P個のバリアブルノードの演算の結果得られるメッセージをサイクリックシフトするサイクリックシフト手段(例えば、図18のサイクリックシフト回路303または308)をさらに有する
ことを特徴とする。
【0099】
請求項18に記載の復号装置は、
受信した前記LDPC符号の符号系列に対して、前記元の検査行列に対して行われた列置換と同一の列置換を行い、置換符号系列を出力する符号系列置換手段(例えば、図18の受信データ並べ替え部310)をさらに備え、
前記復号手段は、前記変換検査行列と、前記置換符号系列とを用いて、前記符号系列を復号する
ことを特徴とする。
【0100】
請求項19に記載の復号装置は、
前記復号手段の出力に対して、前記元の検査行列に対して行われた列置換の逆置換を行い、最終的な復号結果を出力する逆置換手段(例えば、図18の復号データ並べ替え部311)をさらに備える
ことを特徴とする。
【0101】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【0102】
図16は、図15の検査行列に、式(8)の行置換と、式(9)の列置換を施して得られる検査行列を示している。
【0103】
行置換:6x+y+1行目→5y+x+1行目・・・(8)
【0104】
列置換:6s+t+61列目→5t+s+61列目・・・(9)
【0105】
但し、式(8)および(9)において、x,y,s,tは、それぞれ、0≦x<5,0≦y<6,0≦s<5,0≦y<6の範囲の整数である。
【0106】
式(8)の行置換によれば、6で割って余りが1になる1,7,13,19,25行目を、それぞれ、1,2,3,4,5行目に、6で割って余りが2になる2,8,14,20,26行目を、それぞれ、6,7,8,9,10行目に、という具合に置換が行われる。
【0107】
また、式(9)の列置換によれば、61列目以降に対して、6で割って余りが1になる61,67,73,79,85列目を、それぞれ、61,62,63,64,65列目に、6で割って余りが2になる62,68,74,80,86列目を、それぞれ、66,67,68,69,70列目に、という具合に置換が行われる。
【0108】
このようにして、図15の検査行列に対して、行と列の置換を行って得られた行列(matrix)が、図16の検査行列である。
【0109】
図16の検査行列(以下、適宜、置換検査行列という)に対して、図15の検査行列(以下、適宜、元の検査行列という)で表わされる符号(誤りのない元の符号)の符号語の系列に、式(9)と同一の置換を行ったものを乗じると、0ベクトルが出力されることは自明である。即ち、元の検査行列を行列Hで、置換検査行列を行列H’で、元の符号の符号語の系列を行ベクトルcで、行ベクトルcに式(9)の列置換を施して得られる行ベクトルをc’で、それぞれ表すこととすると、検査行列の性質から、HcT(上付のTは転置を表す)は、0ベクトルとなるから、H’c’Tも、当然、0ベクトルとなる。
【0110】
そして、以上のことから、図16の変換検査行列は、元の符号の符号語の系列cに、式(9)の列置換を行ったものを符号語とする符号c’の検査行列になっている。
【0111】
従って、元の符号によって符号化されたデータを受信して復号する際に、受信した符号系列に、式(9)の列置換を行い、その列置換後の符号系列を、図16の変換検査行列に基づく復号装置を用いて復号し、復号結果の系列に、式(2)の列置換の逆置換を行っても、元の符号の復号装置を用いた場合と復号結果に違いはないため、性能の劣化を招くことはないことになる。即ち、図15の元の検査行列に基づく復号装置は、図16の変換検査行列に基づく復号装置を用いて実現することができる。
【0112】
次に、図17は、5×5の行列の単位に間隔を空けた、図16の変換検査行列を示している。
【0113】
図17においては、検査行列(変換検査行列)は、5×5の単位行列、その単位行列の1のうち1個以上が0になった行列(以下、適宜、準単位行列という)、単位行列または準単位行列をサイクリックシフト(cyclic shift)した行列(以下、適宜、シフト行列という)、単位行列、準単位行列、またはシフト行列のうちの2以上の和(以下、適宜、和行列という)、5×5の0行列の組合わせで表わされている。
【0114】
図17の検査行列は、5×5の単位行列、準単位行列、シフト行列、和行列、0行列で構成されているということができる。そこで、検査行列を構成する、これらの5×5の行列を、以下、適宜、構成行列という。
【0115】
以上のようなP×Pの構成行列で表される検査行列で表される符号の復号には、チェックノードとバリアブルノードの計算を、P個同時に行うアーキテクチャ(architecture)を用いることができる。
【0116】
図18は、そのような復号装置の一実施の形態の構成例を示すブロック図である。即ち、図18は、図15の元の検査行列に対して、行または列置換を行って得られる図17の変換検査行列を用いて、LDPC符号の復号を行う復号装置の構成例を示している。
【0117】
この復号装置は、6つのFIFO3001乃至3006からなる枝データ格納用メモリ300、FIFO3001乃至3006を選択するセレクタ301、チェックノード計算部302、2つのサイクリックシフト回路303および308、18個のFIFO3041乃至30418からなる枝データ格納用メモリ304、FIFO3041乃至30418を選択するセレクタ305、受信情報を格納する受信データ用メモリ306、バリアブルノード計算部307、復号語計算部309、受信データ並べ替え部310、復号データ並べ替え部311からなる。
【0118】
この復号装置の各部について詳細に説明する前に、まず、枝データ格納用メモリ300と304へのデータの格納方法について説明する。
【0119】
枝データ格納用メモリ300は、図17の変換検査行列の行数30を構成行列の行数5で除算した数である6つのFIFO3001乃至3006から構成されている。FIFO300y(y=1,2,・・・,6)は、構成行列の行数および列数である5つの枝に対応するメッセージを同時に読み出しもしくは書き込むことができるようになっており、その長さ(段数)は、図17の変換検査行列の行方向の1の数(ハミング重み)の最大数である9になっている。
【0120】
FIFO3001には、図17の検査行列(変換検査行列)の第1行目から第5行目までの1の位置に対応するデータが、各行共に横方向に詰めた形に(0を無視した形で)格納される。すなわち、第j行第i列を、(j,i)と表すこととすると、FIFO3001の第1の要素(第1段)には、検査行列の(1,1)から(5,5)の5×5の単位行列の1の位置に対応するデータが格納される。第2の要素には、検査行列の(1,21)から(5,25)のシフト行列(5×5の単位行列を右方向に3つだけサイクリックシフトしたシフト行列)の1の位置に対応するデータが格納される。第3から第8の要素も同様に検査行列と対応づけてデータが格納される。そして、第9の要素には、検査行列の(1,86)から(5,90)のシフト行列(5×5の単位行列のうちの1行目の1を0に置き換えて1つだけ左にサイクリックシフトしたシフト行列)の1の位置に対応するデータが格納される。ここで、検査行列の(1,86)から(5,90)のシフト行列においては、1行目に1がないため、FIFO3001の1行目のみ要素数は8、残りの行は要素数が9となる。
【0121】
FIFO3002には、図17の検査行列の第6行目から第10行目までの1の位置に対応するデータが格納される。すなわち、FIFO3002の第1の要素には、検査行列の(6,1)から(10,5)の和行列(5×5の単位行列を右に1つだけサイクリックシフトした第1のシフト行列と、右に2つだけサイクリックシフトした第2のシフト行列の和である和行列)を構成する第1のシフト行列の1の位置に対応するデータが格納される。また、第2の要素には、検査行列の(6,1)から(10,5)の和行列を構成する第2のシフト行列の1の位置に対応するデータが格納される。
【0122】
即ち、重みが2以上の構成行列については、その構成行列を、重みが1であるP×Pの単位行列、そのコンポーネントである1のうち1個以上が0になった準単位行列、または単位行列もしくは準単位行列をサイクリックシフトしたシフト行列のうちの複数の和の形で表現したときの、その重みが1の単位行列、準単位行列、またはシフト行列の1の位置に対応するデータ(単位行列、準単位行列、またはシフト行列に属する枝に対応するメッセージ)は、同一アドレス(FIFO3001乃至3006のうちの同一のFIFO)に格納される。
【0123】
以下、第3から第9の要素についても、検査行列に対応づけてデータが格納される。FIFO3002は全行共に要素数は9となる。
【0124】
FIFO3003乃至3006も同様に検査行列に対応づけてデータを格納し、各FIFO3003乃至3006それぞれの長さは9である。
【0125】
枝データ格納用メモリ304は、検査行列の列数90を、構成行列の列数である5で割った18個のFIFO3041乃至30418から構成されている。FIFO304x(x=1,2,・・・,18)は、構成行列の行数および列数である5つの枝に対応するメッセージを同時に読み出しもしくは書き込むことができるようになっている。
【0126】
FIFO3041には、図17の検査行列の第1列目から第5列目までの1の位置に対応するデータが、各列共に縦方向に詰めた形に(0を無視した形で)格納される。すなわち、FIFO3041の第1の要素(第1段)には、検査行列の(1,1)から(5,5)の5×5の単位行列の1の位置に対応するデータが格納される。第2の要素には、検査行列の(6,1)から(10,5)の和行列(5×5の単位行列を右に1つだけサイクリックシフトした第1のシフト行列と、右に2つだけサイクリックシフトした第2のシフト行列との和である和行列)を構成する第1のシフト行列の1の位置に対応するデータが格納される。また、第3の要素には、検査行列の(6,1)から(10,5)の和行列を構成する第2のシフト行列の1の位置に対応するデータが格納される。
【0127】
即ち、重みが2以上の構成行列については、その構成行列を、重みが1であるP×Pの単位行列、そのコンポーネントである1のうち1個以上が0になった準単位行列、または単位行列もしくは準単位行列をサイクリックシフトしたシフト行列のうちの複数の和の形で表現したときの、その重みが1の単位行列、準単位行列、またはシフト行列の1の位置に対応するデータ(単位行列、準単位行列、またはシフト行列に属する枝に対応するメッセージ)は、同一アドレス(FIFO3041乃至30418のうちの同一のFIFO)に格納される。
【0128】
以下、第4および第5の要素についても、検査行列に対応づけて、データが格納される。このFIFO3041の要素数(段数)は、検査行列の第1列から第5列における行方向の1の数(ハミング重み)の最大数である5になっている。
【0129】
FIFO3042と3043も同様に検査行列に対応づけてデータを格納し、それぞれの長さ(段数)は、5である。FIFO3044乃至30412も同様に検査行列に対応づけてデータを格納し、それぞれの長さは3である。FIFO30413乃至30418も同様に検査行列に対応づけてデータを格納し、それぞれの長さは2である。但し、FIFO30418の第1の要素は、検査行列の(1,86)から(5,90)に相当し、第5列目(検査行列の(1,90)から(5,90))に1がないため、データは格納されない。
【0130】
以下、図18の復号装置の各部の動作について詳細に説明する。
【0131】
枝データ格納用メモリ300は、6つのFIFO3001乃至3006からなり、前段のサイクリックシフト回路308から供給される5つのメッセージデータD311が、検査行列どの行に属するかの情報(Matrixデータ)D312に従って、データを格納するFIFOを、FIFO3001乃至3006の中から選び、選んだFIFOに5つのメッセージデータD311をまとめて順番に格納していく。また、枝データ格納用メモリ300は、データを読み出す際には、FIFO3001から5つのメッセージデータD3001を順番に読み出し、次段のセレクタ301に供給する。枝データ格納用メモリ300は、FIFO3001からのメッセージデータの読み出しの終了後、FIFO3002乃至3006からも、順番に、メッセージデータを読み出し、セレクタ301に供給する。
【0132】
セレクタ301は、セレクト信号D301に従って、FIFO3001乃至3006のうちの、現在データが読み出されているFIFOからの5つのメッセージデータを選択し、メッセージデータD302として、チェックノード計算部302に供給する。
【0133】
チェックノード計算部302は、5つのチェックノード計算器3021乃至3025からなり、セレクタ301を通して供給されるメッセージD302(D3021乃至D3025)を用いて、式(7)に従って演算を行い、その演算の結果得られる5つのメッセージD303(D3031乃至D3035)をサイクリックシフト回路303に供給する。
【0134】
ここで、チェックノード計算器3021乃至3025それぞれは、図10に示したチェックノード計算器101と同様に構成される。
【0135】
サイクリックシフト回路303は、チェックノード計算部302で計算された5つのメッセージD3031乃至D3035を、対応する枝が検査行列において元となる単位行列を幾つサイクリックシフトしたものであるかの情報(Matrixデータ)D305を元にサイクリックシフトし、その結果をメッセージD304として、枝データ格納用メモリ304に供給する。
【0136】
枝データ格納用メモリ304は、18個のFIFO3041乃至30418からなり、前段のサイクリックシフト回路303から供給される5つのメッセージデータD304が検査行列のどの行に属するかの情報D305に従って、データを格納するFIFOを、FIFO3041乃至30418の中から選び、選んだFIFOに5つのメッセージデータD304をまとめて順番に格納していく。また、枝データ格納用メモリ304は、データを読み出す際には、FIFO3041から5つのメッセージD3061を順番に読み出し、次段のセレクタ305に供給する。枝データ格納用メモリ304は、FIFO3041からのデータの読み出しの終了後、FIFO3042乃至30418からも、順番に、メッセージデータを読み出し、セレクタ305に供給する。
【0137】
セレクタ305は、セレクト信号D307に従って、FIFO3041乃至30418のうちの、現在データが読み出されているFIFOからの5つのメッセージデータを選択し、メッセージデータD308として、バリアブルノード計算部307と復号語計算部309に供給する。
【0138】
一方、受信データ並べ替え部310は、通信路を通して受信したLDPC符号の符号系列(受信データ)D313を、式(9)の列置換を行うことにより並べ替え、符号系列D314として、受信用データメモリ306に供給する。受信データ用メモリ306は、受信データ並べ替え部310から供給される符号系列D314から、受信LLR(対数尤度比)を計算しており、その計算した受信LLRを5つまとめてデータD309として、バリアブルノード計算部307と復号語計算部309に供給する。
【0139】
バリアブルノード計算部307は、5つのバリアブルノード計算器3071乃至3075からなり、セレクタ305を通して供給されるメッセージD308(D3081乃至D3085)と、受信データ用メモリ306から供給される5つの受信LLR D309を用いて、式(1)に従って演算を行い、その演算の結果得られるメッセージD310(D3101乃至D3105)を、サイクリックシフト回路308に供給する。
【0140】
ここで、バリアブルノード計算器3071乃至3075それぞれは、図11のバリアブルノード計算器103と同様に構成される。
【0141】
サイクリックシフト回路308は、バリアブルノード計算部307で計算されたメッセージD3101乃至D3105を、対応する枝が検査行列において元となる単位行列を幾つサイクリックシフトしたものであるかの情報を元にサイクリックシフトし、その結果をメッセージD311として、枝データ格納用メモリ300に供給する。
【0142】
以上の動作を1巡することで、LDPC符号の1回の復号を行うことができる。図18の復号装置は、所定の回数だけLDPC符号を復号した後、復号語計算部309および復号データ並べ替え部311において、最終的な復号結果を求めて出力する。
【0143】
即ち、復号語計算部309は、5つの復号語計算器3091乃至3095からなり、セレクタ305が出力する5つのメッセージD308(D3081乃至D3085)と、受信データ用メモリ306から供給される5つの受信LLR D309を用い、複数回の復号の最終段において、式(5)に基づいて、復号結果(復号語)を計算して、その結果得られる復号データD315を、復号データ並べ替え部311に供給する。
【0144】
復号データ並べ替え部311は、復号語計算部309から供給される復号データD315を対象に、式(9)の列置換の逆置換を行うことにより、その順序を並べ替え、最終的な復号結果D316として出力する。
【0145】
なお、枝データ(枝に対応するメッセージ)が欠ている箇所に関しては、メモリ格納時(枝データ格納用メモリ300と304へのデータ格納時)には、何のメッセージも格納せず、また、ノード演算時(チェックノード計算部302でのチェックノード演算時とバリアブルノード計算部307でのバリアブルノード演算時)にも何の演算も行わない。
【0146】
また、サイクリックシフト回路303および308には、バレルシフタを用いると回路規模を小さくしながら所望の操作を実現できる。
【0147】
上記説明には、枝データ格納にFIFOを用いたが(枝データ格納メモリ300と304をFIFOで構成するようにしたが)、FIFOの代わりにRAMを用いても構わない。その場合、RAMには、P個の枝情報(枝に対応するメッセージ)を同時に読み出すことの出来るビット幅と、枝総数/Pのワード(word)数が必要となる。さらに、RAMへの書き込みは、検査行列の情報から、書き込もうとしているデータが次に読み出される際に何番目に読み出されるかを求め、その位置に書き込む。また、RAMからの読み出しの際には、アドレスの先頭から順次データを読み出す。FIFOの代わりにRAMを用いると、セレクタ301および305は不要になる。
【0148】
なお、FIFOやRAMの物理的なビット幅が足りない場合には、複数のRAMを用いて同じ制御信号を与えることで、論理的に1つのRAMとみなすことができる。
【0149】
また、上述の場合には、説明を簡単にするために、Pが5の場合、即ち、検査行列を構成する構成行列の行数および列数が5の場合を例に挙げたが、構成行列の行数および列数Pは必ずしも5である必要はなく、検査行列によって異なる値を取ることもあり得る。例えば、Pは360や392であってもよい。
【0150】
また、本実施の形態では、符号長90、符号化率2/3のLDPC符号を用いたが、LDPC符号の符号長や符号化率は、幾つであっても構わない。例えば、構成行列の行数および列数Pが5の場合、枝総数が5以下であれば、どんな符号長、符号化率のLDPC符号でも、制御信号を代えるだけで、図18の復号装置を用いて復号可能である。
【0151】
さらに、構成行列の行数および列数Pが所定の値で、枝の総数がある値以下、という条件を満たすあるLDPC符号の復号装置は、その条件を満たす、任意の符号長で、任意の符号化率のLDPC符号を復号することができる。
【0152】
以上のように、検査行列(元の検査行列)に対して、行置換と列置換うちの一方または両方を施し、P×Pの単位行列、そのコンポーネントの1のうち1個以上が0になった準単位行列、単位行列もしくは準単位行列をサイクリックシフトしたシフト行列、単位行列、準単位行列、もしくはシフト行列の複数の和である和行列、P×Pの0行列の組合せ、つまり、構成行列の組み合わせで表わすことができる検査行列(変換検査行列)に変換することで、LDPC符号の復号を、チェックノードとバリアブルノードの演算をP個同時に行うアーキテクチャ(architecture)を採用することが可能となり、これにより、ノード演算を、P個同時に行うことで動作周波数を実現可能な範囲に抑えることができ、多数の繰り返し復号を行うことを可能にしつつ、メモリ(FIFOやRAM)への書き込みと読み出し時に、異なるアドレスへの同時アクセスが起きることを防止することができる。
【0153】
即ち、上述した検査行列の行置換と列置換の双方もしくは片方を行うことで、チェックノードとバリアブルノードの演算をP個同時に行うことが可能となり、さらに、このようにノード演算をP個同時に行うことで、動作周波数を実現可能な範囲に抑えることができ、多数の繰り返し復号を行うことを可能にしつつ、メモリ(FIFOやRAM)への書き込みと読み出し時に、異なるアドレスへの同時アクセスが起きることを防止することができる。
【0154】
さらに、図17の検査行列(変換検査行列)で表わされるLDPC符号を復号する場合には、269個の枝をチェックノード、バリアブルノード毎に5個ずつ演算することが可能であることから、1回の復号に、269/5×2≒108クロック動作すればよいことになる。50回の復号には、90個の符号情報を受信する間に、108×50=5400クロック動作すればよいことになり、受信周波数の約60倍の動作周波数でよいことになる。従って、図18の復号装置によれば、各ノード演算を一つずつ行う図9の復号装置に比べて、1/5の動作周波数で済むことになる。また、回路規模の面から見ても、メモリの大きさは同じであるため、論理回路が多少大きくなっても全体への影響は小さいと言える。
【0155】
一般的に、LDPC符号は符号長が数千から数万と大きいため、Pの値も数百の大きさを持つものが使われる。その場合には、更に本発明に係る復号装置を用いる効果は大きくなる。
【0156】
以上のように、ロジック、メモリ共に回路規模を抑制しつつ、動作周波数も十分実現可能な範囲に抑えることができ、メモリアクセスの制御も容易に行うことができる。
【0157】
また、LDPC符号の性質から、検査行列に行置換や列置換を施しても符号の性能は変わらない。従って、行置換または列置換によって、構成行列の組み合わせで表すことができる変換検査行列を得られる検査行列に対応するLDPC符号については、どのような符号長、符号化率のLDPC符号であっても、性能の劣化を招くことなく、実装が容易で、かつ効率の良い復号を行うことができる。
【0158】
さらに、本発明に係る復号装置は、サムプロダクトアルゴリズムを忠実に実装するものであるため、メッセージの量子化以外の復号損失が起きることはない。
【0159】
以上の観点から、本発明に係る復号装置を用いることで、高性能な復号が可能になる。
【0160】
なお、検査行列が、構成行列の行数および列数Pの倍数でない場合は、検査行列の端数の外側にすべて0(all 0)の成分を付けてPの倍数とみなして適用できることがある。
【0161】
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【0162】
そこで、図19は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
【0163】
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク405やROM403に予め記録しておくことができる。
【0164】
あるいはまた、プログラムは、フレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体411に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体411は、いわゆるパッケージソフトウエアとして提供することができる。
【0165】
なお、プログラムは、上述したようなリムーバブル記録媒体411からコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを、通信部408で受信し、内蔵するハードディスク405にインストールすることができる。
【0166】
コンピュータは、CPU(Central Processing Unit)402を内蔵している。CPU402には、バス401を介して、入出力インタフェース410が接続されており、CPU402は、入出力インタフェース410を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部407が操作等されることにより指令が入力されると、それにしたがって、ROM(Read Only Memory)403に格納されているプログラムを実行する。あるいは、また、CPU402は、ハードディスク405に格納されているプログラム、衛星若しくはネットワークから転送され、通信部408で受信されてハードディスク405にインストールされたプログラム、またはドライブ409に装着されたリムーバブル記録媒体411から読み出されてハードディスク405にインストールされたプログラムを、RAM(Random Access Memory)404にロードして実行する。これにより、CPU402は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU402は、その処理結果を、必要に応じて、例えば、入出力インタフェース410を介して、LCD(Liquid Crystal Display)やスピーカ等で構成される出力部406から出力、あるいは、通信部408から送信、さらには、ハードディスク405に記録等させる。
【0167】
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。
【0168】
また、プログラムは、1のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【0169】
【発明の効果】
以上の如く、本発明によれば、回路規模を抑制しつつ、動作周波数も十分実現可能な範囲に抑え、メモリアクセスの制御も容易に行うことが可能となる。
【図面の簡単な説明】
【図1】LDPC符号の検査行列Hを説明する図である。
【図2】LDPC符号の復号手順を説明するフローチャートである。
【図3】メッセージの流れを説明する図である。
【図4】LDPC符号の検査行列の例を示す図である。
【図5】検査行列のタナーグラフを示す図である。
【図6】バリアブルノードを示す図である。
【図7】チェックノードを示す図である。
【図8】LDPC符号の検査行列の例を示す図である。
【図9】ノード演算を一つずつ行うLDPC符号の復号装置の構成例を示すブロック図である。
【図10】メッセージを一つずつ計算するチェックノード計算器の構成例を示すブロック図である。
【図11】メッセージを一つずつ計算するバリアブルノード計算器の構成例を示すブロック図である。
【図12】ノード演算を全て同時に行うLDPC符号の復号装置の構成例を示すブロック図である。
【図13】メッセージを同時に計算するチェックノード計算器の構成例を示すブロック図である。
【図14】メッセージを同時に計算するバリアブルノード計算器の構成例を示すブロック図である。
【図15】LDPC符号の検査行列の例を示す図である。
【図16】検査行列に行置換と列置換を施した行列を示す図である。
【図17】5×5単位に分割した検査行列を示す図である。
【図18】本発明を適用した復号装置の一実施の形態の構成例を示すブロック図である。
【図19】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【符号の説明】
300 枝データ格納用メモリ, 301 セレクタ, 302 チェックノード計算部, 303 サイクリックシフト回路, 304 枝データ格納用メモリ, 305 セレクタ, 306 受信データ用メモリ, 307 バリアブルノード計算部, 308 サイクリックシフト回路, 309 復号語計算部, 310 受信データ並べ替え部, 311 復号データ並べ替え部, 401 バス, 402 CPU, 403 ROM, 404 RAM, 405 ハードディスク, 406 出力部, 407 入力部, 408 通信部, 409 ドライブ, 410 入出力インタフェース, 411 リムーバブル記録媒体
Claims (20)
- LDPC(Low Density Parity Check)符号の復号方法であって、
元の検査行列に対して、行置換と列置換のうちの一方または両方を行って得られる変換検査行列を用いて、前記LDPC符号を復号する復号ステップを備える
ことを特徴とする復号方法。 - 請求項1に記載の復号方法であって、
P×Pの単位行列、その単位行列のコンポーネントである1のうちの1個以上が0になった行列である準単位行列、前記単位行列もしくは準単位行列をサイクリックシフトした行列であるシフト行列、前記単位行列、準単位行列、もしくはシフト行列のうちの複数の和である和行列、またはP×Pの0行列を構成行列として、前記変換検査行列は、複数の前記構成行列の組合せで表される
ことを特徴とする復号方法。 - 請求項1に記載の復号方法であって、
受信した前記LDPC符号の符号系列に対して、前記元の検査行列に対して行われた列置換と同一の列置換を行い、置換符号系列を出力する符号系列置換ステップをさらに備え、
前記復号ステップにおいて、前記変換検査行列と、前記置換符号系列とを用いて、前記符号系列を復号する
ことを特徴とする復号方法。 - LDPC(Low Density Parity Check)符号の復号装置であって、
元の検査行列に対して、行置換と列置換のうちの一方または両方を行って得られる変換検査行列を用いて、前記LDPC符号を復号する復号手段を備える
ことを特徴とする復号装置。 - 請求項4に記載の復号装置であって、
P×Pの単位行列、その単位行列のコンポーネントである1のうちの1個以上が0になった行列である準単位行列、前記単位行列もしくは準単位行列をサイクリックシフトした行列であるシフト行列、前記単位行列、準単位行列、もしくはシフト行列のうちの複数の和である和行列、またはP×Pの0行列を構成行列として、前記変換検査行列は、複数の前記構成行列の組合せで表される
ことを特徴とする復号装置。 - 請求項5に記載の復号装置であって、
前記復号手段は、
前記LDPC符号の復号のためのP個のチェックノードの演算を同時に行うチェックノード計算手段と、
前記LDPC符号の復号のためのP個のバリアブルノードの演算を同時に行うバリアブルノード計算手段と
を有する
ことを特徴とする復号装置。 - 請求項6に記載の復号装置であって、
前記チェックノード計算手段は、チェックノードの演算を行うP個のチェックノード計算器を有し、
前記バリアブルノード計算手段は、バリアブルノードの演算を行うP個のバリアブルノード計算器を有する
ことを特徴とする復号装置。 - 請求項6に記載の復号装置であって、
前記復号手段は、前記P個のチェックノードの演算、または前記P個のバリアブルノードの演算の結果得られるP個の枝に対応するメッセージデータを同時に読み書きするメッセージ記憶手段をさらに有する
ことを特徴とする復号装置。 - 請求項8に記載の復号装置であって、
前記メッセージ記憶手段は、チェックノード演算時に読み出される枝に対応するメッセージデータを、前記変換検査行列の1を行方向に詰めるように格納する
ことを特徴とする復号装置。 - 請求項8に記載の復号装置であって、
前記メッセージ記憶手段は、バリアブルノード演算時に読み出される枝に対応するメッセージデータを、前記変換検査行列の1を列方向に詰めるように格納する
ことを特徴とする復号装置。 - 請求項8に記載の復号装置であって、
前記メッセージ記憶手段は、前記変換検査行列を表す構成行列のうちの、重みが2以上の構成行列について、その構成行列を、重みが1の単位行列、準単位行列、またはシフト行列の和の形で表現したときの、その重みが1の単位行列、準単位行列、またはシフト行列に属するP個の枝に対応するメッセージを、同一のアドレスに格納する
ことを特徴とする復号装置。 - 請求項8に記載の復号装置であって、
前記メッセージ記憶手段は、行数/P個のFIFOと、列数/P個のFIFOとで構成され、
前記行数/P個のFIFOと列数/P個のFIFOは、それぞれ、前記検査行列の行と列の重みに対応するワード数を有する
ことを特徴とする復号装置。 - 請求項8に記載の復号装置であって、
前記メッセージ記憶手段は、RAM(Random Access Memory)で構成され、
前記RAMは、前記メッセージデータを、読み出される順番に詰めて格納し、格納位置順に読み出す
ことを特徴とする復号装置。 - 請求項6に記載の復号装置であって、
前記復号手段は、受信情報を格納するとともに、P個の前記受信情報を同時に読み出す受信情報記憶手段をさらに有する
ことを特徴とする復号装置。 - 請求項14に記載の復号装置であって、
前記受信情報記憶手段は、前記受信情報を、前記バリアブルノードの演算に必要となる順番に読み出すことができるように格納する
ことを特徴とする復号装置。 - 請求項6に記載の復号装置であって、
前記復号手段は、前記P個のチェックノードの演算、または前記P個のバリアブルノードの演算の結果得られるメッセージをサイクリックシフトするサイクリックシフト手段をさらに有する
ことを特徴とする復号装置。 - 請求項16に記載の復号装置であって、
前記サイクリックシフト手段は、バレルシフタで構成される
ことを特徴とする復号装置。 - 請求項4に記載の復号装置であって、
受信した前記LDPC符号の符号系列に対して、前記元の検査行列に対して行われた列置換と同一の列置換を行い、置換符号系列を出力する符号系列置換手段をさらに備え、
前記復号手段は、前記変換検査行列と、前記置換符号系列とを用いて、前記符号系列を復号する
ことを特徴とする復号装置。 - 請求項18に記載の復号装置であって、
前記復号手段の出力に対して、前記元の検査行列に対して行われた列置換の逆置換を行い、最終的な復号結果を出力する逆置換手段をさらに備える
ことを特徴とする復号装置。 - LDPC(Low Density Parity Check)符号の復号をコンピュータに行わせるプログラムであって、
元の検査行列に対して、行置換と列置換のうちの一方または両方を行って得られる変換検査行列を用いて、前記LDPC符号を復号する復号ステップを備える
ことを特徴とするプログラム。
Priority Applications (6)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003133942A JP4224777B2 (ja) | 2003-05-13 | 2003-05-13 | 復号方法および復号装置、並びにプログラム |
| US10/521,191 US7318186B2 (en) | 2003-05-13 | 2004-04-19 | Decoding method, decoding apparatus, and program to decode low density parity check codes |
| EP04728245A EP1521372A4 (en) | 2003-05-13 | 2004-04-19 | DECODE PROCESSING, DECODING DEVICE AND PROGRAM |
| CNB2004800007382A CN100472971C (zh) | 2003-05-13 | 2004-04-19 | 解码方法与解码装置 |
| PCT/JP2004/005551 WO2004102810A1 (ja) | 2003-05-13 | 2004-04-19 | 復号方法および復号装置、並びにプログラム |
| KR1020057000592A KR101158919B1 (ko) | 2003-05-13 | 2004-04-19 | 복호 방법 및 복호 장치, 및 기록 매체 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003133942A JP4224777B2 (ja) | 2003-05-13 | 2003-05-13 | 復号方法および復号装置、並びにプログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2004343170A true JP2004343170A (ja) | 2004-12-02 |
| JP4224777B2 JP4224777B2 (ja) | 2009-02-18 |
Family
ID=33447138
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2003133942A Expired - Lifetime JP4224777B2 (ja) | 2003-05-13 | 2003-05-13 | 復号方法および復号装置、並びにプログラム |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US7318186B2 (ja) |
| EP (1) | EP1521372A4 (ja) |
| JP (1) | JP4224777B2 (ja) |
| KR (1) | KR101158919B1 (ja) |
| CN (1) | CN100472971C (ja) |
| WO (1) | WO2004102810A1 (ja) |
Cited By (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006279396A (ja) * | 2005-03-29 | 2006-10-12 | Kitakyushu Foundation For The Advancement Of Industry Science & Technology | Ldpc符号検出装置及びldpc符号検出方法 |
| JP2006304130A (ja) * | 2005-04-25 | 2006-11-02 | Sony Corp | 復号装置および復号方法 |
| WO2007032251A1 (ja) * | 2005-09-13 | 2007-03-22 | Sony Corporation | 復号装置および復号方法 |
| WO2007034870A1 (ja) * | 2005-09-26 | 2007-03-29 | Nec Corporation | 復号装置および受信装置 |
| KR100703271B1 (ko) | 2004-11-23 | 2007-04-03 | 삼성전자주식회사 | 통합노드 프로세싱을 이용한 저밀도 패리티 검사 코드복호 방법 및 장치 |
| JP2008035527A (ja) * | 2006-07-31 | 2008-02-14 | Agere Systems Inc | ハードウェア共用および直列和積アーキテクチャを用いる低密度パリティ検査復号の方法および装置 |
| EP1986329A1 (en) | 2007-04-27 | 2008-10-29 | Sony Corporation | Decoding apparatus with a plurality of memories for decoding of LDPC codes |
| EP2056549A2 (en) | 2007-10-30 | 2009-05-06 | Sony Corporation | Data processing apparatus and method |
| WO2009069513A1 (ja) | 2007-11-26 | 2009-06-04 | Sony Corporation | データ処理装置、及びデータ処理方法、並びに、符号化装置、及び符号化方法 |
| WO2009069617A1 (ja) | 2007-11-26 | 2009-06-04 | Sony Corporation | データ処理装置、及びデータ処理方法 |
| WO2009069628A1 (ja) | 2007-11-26 | 2009-06-04 | Sony Corporation | データ処理装置、データ処理方法、及びプログラム |
| WO2010041700A1 (ja) | 2008-10-08 | 2010-04-15 | ソニー株式会社 | サイクリックシフト装置、サイクリックシフト方法、ldpc復号装置、テレビジョン受像機、及び、受信システム |
| EP2237427A2 (en) | 2007-11-26 | 2010-10-06 | Sony Corporation | Data processing apparatus and method |
| CN101874351A (zh) * | 2007-11-26 | 2010-10-27 | 索尼公司 | 数据处理设备和数据处理方法 |
| JP2012503927A (ja) * | 2008-09-26 | 2012-02-09 | エージェンシー フォー サイエンス,テクノロジー アンド リサーチ | 復号化回路及び符号化回路 |
| KR101187070B1 (ko) | 2006-04-21 | 2012-09-27 | 엘지전자 주식회사 | 패리티 검사 행렬을 이용하여 부호화하는 방법 |
| JP2012209985A (ja) * | 2012-08-03 | 2012-10-25 | Thomson Licensing | 誤り訂正を実行する装置及び方法 |
| WO2012147623A1 (ja) | 2011-04-28 | 2012-11-01 | ソニー株式会社 | データ処理装置、及び、データ処理方法 |
| US8819518B2 (en) | 2005-12-01 | 2014-08-26 | Thomson Licensing | Apparatus and method for decoding low density parity check coded signals |
| KR101476051B1 (ko) * | 2013-09-06 | 2014-12-23 | 세종대학교산학협력단 | Ldpc 엔코더 및 그의 동작 방법 |
| EP2978137A1 (en) | 2007-11-26 | 2016-01-27 | Sony Corporation | Reception apparatus comprising multiplexer for 64k ldpc codes and 4096qam |
Families Citing this family (87)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7409628B2 (en) * | 2002-08-15 | 2008-08-05 | Broadcom Corporation | Efficient design to implement LDPC (Low Density Parity Check) decoder |
| US7165205B2 (en) * | 2004-05-14 | 2007-01-16 | Motorola, Inc. | Method and apparatus for encoding and decoding data |
| US8225173B2 (en) * | 2004-06-25 | 2012-07-17 | Runcom Technologies Ltd | Multi-rate LDPC code system and method |
| US7760880B2 (en) * | 2004-10-13 | 2010-07-20 | Viasat, Inc. | Decoder architecture system and method |
| WO2006062351A1 (en) * | 2004-12-08 | 2006-06-15 | Electronics And Telecommunications Research Institute | Ldpc encoder and decoder and ldpc encoding and decoding methods |
| KR100641052B1 (ko) * | 2004-12-08 | 2006-11-02 | 한국전자통신연구원 | Ldpc 부호기 및 복호기, 및 ldpc 부호화 방법 및복호화 방법 |
| US7343548B2 (en) | 2004-12-15 | 2008-03-11 | Motorola, Inc. | Method and apparatus for encoding and decoding data |
| US7441178B2 (en) | 2005-02-24 | 2008-10-21 | Keyeye Communications | Low complexity decoding of low density parity check codes |
| US7634710B2 (en) * | 2005-03-25 | 2009-12-15 | Teranetics, Inc. | Efficient decoding |
| JP4622654B2 (ja) * | 2005-04-25 | 2011-02-02 | ソニー株式会社 | 復号装置および復号方法 |
| US8010870B2 (en) * | 2005-04-25 | 2011-08-30 | Sony Corporation | Coding apparatus and coding method |
| FR2890804B1 (fr) * | 2005-09-12 | 2008-04-04 | St Microelectronics Sa | Traitement de blocs dans un dispositif de decodage par blocs |
| 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 |
| TW201334425A (zh) * | 2007-01-24 | 2013-08-16 | Qualcomm Inc | 可變大小之封包的低密度同位檢查編碼與解碼 |
| US8261155B2 (en) * | 2007-03-09 | 2012-09-04 | Qualcomm Incorporated | Methods and apparatus for encoding and decoding low density parity check (LDPC) codes |
| WO2009004572A1 (en) * | 2007-07-04 | 2009-01-08 | Nxp B.V. | Shuffled ldpc decoding |
| JP4487213B2 (ja) | 2007-10-19 | 2010-06-23 | ソニー株式会社 | 復号装置および方法、並びにプログラム |
| JP4487212B2 (ja) * | 2007-10-19 | 2010-06-23 | ソニー株式会社 | 復号装置および方法、送受信システム、受信装置および方法、並びにプログラム |
| TW200926612A (en) * | 2007-12-07 | 2009-06-16 | Univ Nat Chiao Tung | Multi-mode parallelism data exchange method and its device |
| US8166364B2 (en) | 2008-08-04 | 2012-04-24 | Seagate Technology Llc | Low density parity check decoder using multiple variable node degree distribution codes |
| US8261166B2 (en) * | 2008-09-17 | 2012-09-04 | Seagate Technology Llc | Node processor for use with low density parity check decoder using multiple variable node degree distribution codes |
| US8392789B2 (en) * | 2009-07-28 | 2013-03-05 | Texas Instruments Incorporated | Method and system for decoding low density parity check codes |
| JP5500379B2 (ja) | 2010-09-03 | 2014-05-21 | ソニー株式会社 | データ処理装置、及びデータ処理方法 |
| JP5505725B2 (ja) | 2010-09-16 | 2014-05-28 | ソニー株式会社 | データ処理装置、及びデータ処理方法 |
| JP5601182B2 (ja) | 2010-12-07 | 2014-10-08 | ソニー株式会社 | データ処理装置、及びデータ処理方法 |
| JP5630278B2 (ja) | 2010-12-28 | 2014-11-26 | ソニー株式会社 | データ処理装置、及びデータ処理方法 |
| KR101611169B1 (ko) * | 2011-01-18 | 2016-04-11 | 삼성전자주식회사 | 통신/방송 시스템에서 데이터 송수신 장치 및 방법 |
| WO2012099398A2 (en) * | 2011-01-18 | 2012-07-26 | Samsung Electronics Co., Ltd. | Apparatus and method for transmittng and receiving data in communication/broadcasting system |
| JP5630282B2 (ja) | 2011-01-19 | 2014-11-26 | ソニー株式会社 | データ処理装置、及び、データ処理方法 |
| JP5630283B2 (ja) | 2011-01-19 | 2014-11-26 | ソニー株式会社 | データ処理装置、及び、データ処理方法 |
| JP5672489B2 (ja) | 2011-02-08 | 2015-02-18 | ソニー株式会社 | データ処理装置、及び、データ処理方法 |
| JP5648852B2 (ja) | 2011-05-27 | 2015-01-07 | ソニー株式会社 | データ処理装置、及び、データ処理方法 |
| JP5664919B2 (ja) * | 2011-06-15 | 2015-02-04 | ソニー株式会社 | データ処理装置、及び、データ処理方法 |
| CA2900007C (en) | 2013-02-08 | 2023-01-24 | Sony Corporation | Data processing device and data processing method |
| JPWO2014123017A1 (ja) | 2013-02-08 | 2017-02-02 | サターン ライセンシング エルエルシーSaturn Licensing LLC | データ処理装置、及びデータ処理方法 |
| KR102090679B1 (ko) | 2013-02-08 | 2020-04-14 | 소니 주식회사 | 데이터 처리 장치, 및 데이터 처리 방법 |
| EP2955855A4 (en) | 2013-02-08 | 2016-08-17 | Sony Corp | DATA PROCESSING DEVICE AND DATA PROCESSING METHOD |
| CA2899820C (en) | 2013-02-08 | 2023-01-24 | Sony Corporation | Data processing device and data processing method |
| WO2014178296A1 (ja) | 2013-05-02 | 2014-11-06 | ソニー株式会社 | データ処理装置、及びデータ処理方法 |
| EP2993792B1 (en) | 2013-05-02 | 2022-06-22 | Saturn Licensing LLC | Ldpc coded modulation in combination with 8psk and 16apsk |
| BR112015027153B1 (pt) | 2013-05-02 | 2021-12-14 | Sony Corp | Dispositivo e método de processamento de dados |
| JP6229901B2 (ja) | 2013-05-02 | 2017-11-22 | ソニー株式会社 | データ処理装置、及びデータ処理方法 |
| US9793925B2 (en) | 2013-05-02 | 2017-10-17 | Sony Corporation | Data processing device and data processing method |
| CN103297190B (zh) * | 2013-05-11 | 2016-05-25 | 哈尔滨工业大学深圳研究生院 | 面向深空通信的码辅助载波相位同步系统及方法 |
| RU2656830C2 (ru) | 2013-06-12 | 2018-06-06 | Сони Корпорейшн | Устройство обработки данных и способ обработки данных |
| KR20160060029A (ko) | 2013-09-20 | 2016-05-27 | 소니 주식회사 | 데이터 처리 장치 및 데이터 처리 방법 |
| WO2015041072A1 (ja) | 2013-09-20 | 2015-03-26 | ソニー株式会社 | データ処理装置、及びデータ処理方法 |
| US10277257B2 (en) | 2013-09-20 | 2019-04-30 | Saturn Licensing Llc | Data processing device and data processing method |
| MX388805B (es) | 2013-09-20 | 2025-03-20 | Sony Corp | Dispositivo de procesamiento de datos y metodo de procesamiento de datos. |
| JPWO2015045912A1 (ja) | 2013-09-24 | 2017-03-09 | ソニー株式会社 | データ処理装置、及びデータ処理方法 |
| KR20160064087A (ko) | 2013-09-26 | 2016-06-07 | 소니 주식회사 | 데이터 처리 장치 및 데이터 처리 방법 |
| CN105580281A (zh) | 2013-09-26 | 2016-05-11 | 索尼公司 | 数据处理装置和数据处理方法 |
| CN105594130A (zh) | 2013-09-26 | 2016-05-18 | 索尼公司 | 数据处理装置和数据处理方法 |
| FR3016259B1 (fr) * | 2014-01-07 | 2017-09-08 | Univ Bretagne Sud | Procede de gestion d'une unite de calcul de noeud de parite, equipement et logiciel pour la mise en oeuvre du procede |
| KR102178262B1 (ko) | 2014-07-08 | 2020-11-12 | 삼성전자주식회사 | 패리티 검사 행렬 생성 방법, 그를 이용한 부호화 장치, 부호화 방법, 복호화 장치 및 복호화 방법 |
| JP6885028B2 (ja) | 2016-11-18 | 2021-06-09 | ソニーグループ株式会社 | 送信装置、及び、送信方法 |
| JP6885029B2 (ja) | 2016-11-18 | 2021-06-09 | ソニーグループ株式会社 | 送信装置、及び、送信方法 |
| JP6885026B2 (ja) | 2016-11-18 | 2021-06-09 | ソニーグループ株式会社 | 送信装置、及び、送信方法 |
| JP6885027B2 (ja) | 2016-11-18 | 2021-06-09 | ソニーグループ株式会社 | 送信装置、及び、送信方法 |
| JP6885030B2 (ja) | 2016-11-18 | 2021-06-09 | ソニーグループ株式会社 | 送信装置、及び、送信方法 |
| US10530393B2 (en) | 2016-12-01 | 2020-01-07 | Western Digital Technologies, Inc. | Configurable ECC decoder |
| US10218384B2 (en) | 2016-12-01 | 2019-02-26 | Sandisk Technologies Llc | ECC decoder with multiple decoding modes |
| US10565040B2 (en) | 2016-12-01 | 2020-02-18 | Western Digital Technologies, Inc. | ECC decoder with selective component disabling based on decoding message resolution |
| JP6852428B2 (ja) | 2017-02-06 | 2021-03-31 | ソニー株式会社 | 送信装置、送信方法、受信装置、及び、受信方法 |
| JP6891519B2 (ja) | 2017-02-06 | 2021-06-18 | ソニーグループ株式会社 | 送信装置、送信方法、受信装置、及び、受信方法 |
| JP6880791B2 (ja) | 2017-02-06 | 2021-06-02 | ソニーグループ株式会社 | 送信装置、送信方法、受信装置、及び、受信方法 |
| JP6852427B2 (ja) | 2017-02-06 | 2021-03-31 | ソニー株式会社 | 送信装置、送信方法、受信装置、及び、受信方法 |
| JP6880792B2 (ja) | 2017-02-06 | 2021-06-02 | ソニーグループ株式会社 | 送信装置、送信方法、受信装置、及び、受信方法 |
| WO2018150939A1 (ja) | 2017-02-20 | 2018-08-23 | ソニー株式会社 | 送信方法、及び、受信装置 |
| WO2018150938A1 (ja) | 2017-02-20 | 2018-08-23 | ソニー株式会社 | 送信方法、及び、受信装置 |
| WO2018150936A1 (ja) | 2017-02-20 | 2018-08-23 | ソニー株式会社 | 送信方法、及び、受信装置 |
| JP6903979B2 (ja) | 2017-02-20 | 2021-07-14 | ソニーグループ株式会社 | 送信装置、送信方法、受信装置、及び、受信方法 |
| WO2018150935A1 (ja) | 2017-02-20 | 2018-08-23 | ソニー株式会社 | 送信方法、及び、受信装置 |
| JP6930376B2 (ja) | 2017-10-31 | 2021-09-01 | ソニーグループ株式会社 | 送信装置及び送信方法 |
| JP6930377B2 (ja) | 2017-10-31 | 2021-09-01 | ソニーグループ株式会社 | 送信装置及び送信方法 |
| JP6930374B2 (ja) | 2017-10-31 | 2021-09-01 | ソニーグループ株式会社 | 送信装置及び送信方法 |
| JP6930375B2 (ja) | 2017-10-31 | 2021-09-01 | ソニーグループ株式会社 | 送信装置及び送信方法 |
| JP6930372B2 (ja) | 2017-10-31 | 2021-09-01 | ソニーグループ株式会社 | 送信装置及び送信方法 |
| JP6930373B2 (ja) | 2017-10-31 | 2021-09-01 | ソニーグループ株式会社 | 送信装置及び送信方法 |
| JP7077630B2 (ja) | 2018-01-18 | 2022-05-31 | ソニーグループ株式会社 | 送信装置、送信方法、受信装置、及び、受信方法 |
| JP7077629B2 (ja) | 2018-01-18 | 2022-05-31 | ソニーグループ株式会社 | 送信装置、送信方法、受信装置、及び、受信方法 |
| JP7135344B2 (ja) | 2018-01-18 | 2022-09-13 | ソニーグループ株式会社 | 送信装置、送信方法、受信装置、及び、受信方法 |
| TWI714248B (zh) * | 2019-09-09 | 2020-12-21 | 新唐科技股份有限公司 | 記憶體控制器與資料保護方法 |
| JP7798103B2 (ja) | 2021-07-12 | 2026-01-14 | ソニーグループ株式会社 | 送信装置、送信方法、受信装置、及び、受信方法 |
| US20240421831A1 (en) | 2021-11-02 | 2024-12-19 | Sony Group Corporation | Transmission device, transmission method, reception device, and reception method |
| JPWO2023149318A1 (ja) | 2022-02-07 | 2023-08-10 |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2001037432A1 (en) * | 1999-11-15 | 2001-05-25 | Mitsubishi Denki Kabushiki Kaisha | Error control device and method using cyclic code |
| US6539367B1 (en) | 2000-05-26 | 2003-03-25 | Agere Systems Inc. | Methods and apparatus for decoding of general codes on probability dependency graphs |
| JP4389373B2 (ja) | 2000-10-11 | 2009-12-24 | ソニー株式会社 | 2元巡回符号を反復型復号するための復号器 |
| TW567721B (en) * | 2001-04-05 | 2003-12-21 | Sanyo Electric Co | Image reproducing device |
| US6567465B2 (en) * | 2001-05-21 | 2003-05-20 | Pc Tel Inc. | DSL modem utilizing low density parity check codes |
| US6938196B2 (en) * | 2001-06-15 | 2005-08-30 | Flarion Technologies, Inc. | 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 |
| US7246304B2 (en) * | 2001-09-01 | 2007-07-17 | Dsp Group Inc | Decoding architecture for 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 |
| US6961888B2 (en) * | 2002-08-20 | 2005-11-01 | Flarion Technologies, Inc. | Methods and apparatus for encoding LDPC codes |
| US6785863B2 (en) * | 2002-09-18 | 2004-08-31 | Motorola, Inc. | Method and apparatus for generating parity-check bits from a symbol set |
| KR20040036460A (ko) * | 2002-10-26 | 2004-04-30 | 삼성전자주식회사 | Ldpc 복호화 장치 및 그 방법 |
| US7058873B2 (en) * | 2002-11-07 | 2006-06-06 | Carnegie Mellon University | Encoding method using a low density parity check code with a column weight of two |
| 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 |
| KR100809619B1 (ko) * | 2003-08-26 | 2008-03-05 | 삼성전자주식회사 | 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법 |
| JP4558638B2 (ja) * | 2005-12-15 | 2010-10-06 | 富士通株式会社 | 符号器および復号器 |
-
2003
- 2003-05-13 JP JP2003133942A patent/JP4224777B2/ja not_active Expired - Lifetime
-
2004
- 2004-04-19 EP EP04728245A patent/EP1521372A4/en not_active Ceased
- 2004-04-19 US US10/521,191 patent/US7318186B2/en not_active Expired - Lifetime
- 2004-04-19 KR KR1020057000592A patent/KR101158919B1/ko not_active Expired - Lifetime
- 2004-04-19 WO PCT/JP2004/005551 patent/WO2004102810A1/ja not_active Ceased
- 2004-04-19 CN CNB2004800007382A patent/CN100472971C/zh not_active Expired - Fee Related
Cited By (47)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100703271B1 (ko) | 2004-11-23 | 2007-04-03 | 삼성전자주식회사 | 통합노드 프로세싱을 이용한 저밀도 패리티 검사 코드복호 방법 및 장치 |
| JP2006279396A (ja) * | 2005-03-29 | 2006-10-12 | Kitakyushu Foundation For The Advancement Of Industry Science & Technology | Ldpc符号検出装置及びldpc符号検出方法 |
| JP2006304130A (ja) * | 2005-04-25 | 2006-11-02 | Sony Corp | 復号装置および復号方法 |
| KR101312799B1 (ko) | 2005-09-13 | 2013-09-27 | 소니 주식회사 | 복호 장치 및 복호 방법 |
| WO2007032251A1 (ja) * | 2005-09-13 | 2007-03-22 | Sony Corporation | 復号装置および復号方法 |
| WO2007034870A1 (ja) * | 2005-09-26 | 2007-03-29 | Nec Corporation | 復号装置および受信装置 |
| JP2007089064A (ja) * | 2005-09-26 | 2007-04-05 | Nec Corp | 復号装置および受信装置 |
| US8074142B2 (en) | 2005-09-26 | 2011-12-06 | Nec Corporation | Decoding device and receiving device |
| US8819518B2 (en) | 2005-12-01 | 2014-08-26 | Thomson Licensing | Apparatus and method for decoding low density parity check coded signals |
| KR101187070B1 (ko) | 2006-04-21 | 2012-09-27 | 엘지전자 주식회사 | 패리티 검사 행렬을 이용하여 부호화하는 방법 |
| JP2008035527A (ja) * | 2006-07-31 | 2008-02-14 | Agere Systems Inc | ハードウェア共用および直列和積アーキテクチャを用いる低密度パリティ検査復号の方法および装置 |
| EP1986329A1 (en) | 2007-04-27 | 2008-10-29 | Sony Corporation | Decoding apparatus with a plurality of memories for decoding of LDPC codes |
| US8205130B2 (en) | 2007-04-27 | 2012-06-19 | Sony Corporation | Decoding apparatus |
| EP2056510A2 (en) | 2007-10-30 | 2009-05-06 | Sony Corporation | Data processing apparatus and method |
| EP2403147A2 (en) | 2007-10-30 | 2012-01-04 | Sony Corporation | Data processing apparatus and method |
| EP2056549A2 (en) | 2007-10-30 | 2009-05-06 | Sony Corporation | Data processing apparatus and method |
| EP2056550A2 (en) | 2007-10-30 | 2009-05-06 | Sony Corporation | Data processing apparatus and method |
| EP2056464A2 (en) | 2007-10-30 | 2009-05-06 | Sony Corporation | Data processing apparatus and method |
| EP2405584A2 (en) | 2007-10-30 | 2012-01-11 | Sony Corporation | Data processing apparatus and method |
| EP2852064A1 (en) | 2007-11-26 | 2015-03-25 | Sony Corporation | Deinterleaving of LDPC coded parity bits for DVB-T2 |
| EP2978137A1 (en) | 2007-11-26 | 2016-01-27 | Sony Corporation | Reception apparatus comprising multiplexer for 64k ldpc codes and 4096qam |
| CN101874350A (zh) * | 2007-11-26 | 2010-10-27 | 索尼公司 | 数据处理设备和数据处理方法 |
| CN101874351A (zh) * | 2007-11-26 | 2010-10-27 | 索尼公司 | 数据处理设备和数据处理方法 |
| WO2009069617A1 (ja) | 2007-11-26 | 2009-06-04 | Sony Corporation | データ処理装置、及びデータ処理方法 |
| EP2237431A2 (en) | 2007-11-26 | 2010-10-06 | Sony Corporation | Data Processing Apparatus and Data Processing Method |
| EP2237427A2 (en) | 2007-11-26 | 2010-10-06 | Sony Corporation | Data processing apparatus and method |
| EP2237432A2 (en) | 2007-11-26 | 2010-10-06 | Sony Corporation | Data Processing Apparatus and Data Processing Method |
| WO2009069513A1 (ja) | 2007-11-26 | 2009-06-04 | Sony Corporation | データ処理装置、及びデータ処理方法、並びに、符号化装置、及び符号化方法 |
| WO2009069580A1 (ja) | 2007-11-26 | 2009-06-04 | Sony Corporation | データ処理装置、及びデータ処理方法、並びに、符号化装置、及び符号化方法 |
| EP2509270A2 (en) | 2007-11-26 | 2012-10-10 | Sony Corporation | Data processing apparatus and data processing method as well as decoding apparatus and decoding method |
| EP2966782A1 (en) | 2007-11-26 | 2016-01-13 | Sony Corporation | Column-twist interleaving for ldpc codes in combination with 64k qam |
| EP2961073A1 (en) | 2007-11-26 | 2015-12-30 | Sony Corporation | Column-twist interleaving for ldpc codes in combination with 64k qam |
| EP2958239A1 (en) | 2007-11-26 | 2015-12-23 | Sony Corporation | Column-twist interleaving for ldpc codes in combination with 16k qam |
| EP2950452A2 (en) | 2007-11-26 | 2015-12-02 | Sony Corporation | Dvb reception apparatus comprising a multiplexer for rate 5/6 or 9/10 64k ldpc codes and 4096qam |
| EP2940875A1 (en) | 2007-11-26 | 2015-11-04 | Sony Corporation | COLUMN-TWIST DEINTERLEAVING FOR LDPC CODES IN COMBINATION WITH 16k QAM and 64k QAM |
| EP2924882A1 (en) | 2007-11-26 | 2015-09-30 | Sony Corporation | Reception apparatus comprising multiplexer for rate 2/3 64k ldpc codes and 256qam |
| WO2009069628A1 (ja) | 2007-11-26 | 2009-06-04 | Sony Corporation | データ処理装置、データ処理方法、及びプログラム |
| JP2012503927A (ja) * | 2008-09-26 | 2012-02-09 | エージェンシー フォー サイエンス,テクノロジー アンド リサーチ | 復号化回路及び符号化回路 |
| US8762806B2 (en) | 2008-09-26 | 2014-06-24 | Agency For Science, Technology And Research | Decoding circuit and encoding circuit |
| US8612835B2 (en) | 2008-10-08 | 2013-12-17 | Sony Corporation | Cyclic shift device, cyclic shift method, LDPC decoding device, television receiver, and reception system |
| WO2010041700A1 (ja) | 2008-10-08 | 2010-04-15 | ソニー株式会社 | サイクリックシフト装置、サイクリックシフト方法、ldpc復号装置、テレビジョン受像機、及び、受信システム |
| RU2480905C2 (ru) * | 2008-10-08 | 2013-04-27 | Сони Корпорейшн | Устройство циклического сдвига, способ циклического сдвига, устройство декодирования ldpc-кода, телевизионный приемник и приемная система |
| JP2010093541A (ja) * | 2008-10-08 | 2010-04-22 | Sony Corp | サイクリックシフト装置、サイクリックシフト方法、ldpc復号装置、テレビジョン受像機、及び、受信システム |
| WO2012147623A1 (ja) | 2011-04-28 | 2012-11-01 | ソニー株式会社 | データ処理装置、及び、データ処理方法 |
| EP3133738A1 (en) | 2011-04-28 | 2017-02-22 | Sony Corporation | Bit permutation patterns for bicm with ldpc codes of rate 2/5 and 16qam constellations |
| JP2012209985A (ja) * | 2012-08-03 | 2012-10-25 | Thomson Licensing | 誤り訂正を実行する装置及び方法 |
| KR101476051B1 (ko) * | 2013-09-06 | 2014-12-23 | 세종대학교산학협력단 | Ldpc 엔코더 및 그의 동작 방법 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP1521372A1 (en) | 2005-04-06 |
| US20050278604A1 (en) | 2005-12-15 |
| KR101158919B1 (ko) | 2012-06-21 |
| JP4224777B2 (ja) | 2009-02-18 |
| EP1521372A4 (en) | 2008-07-02 |
| WO2004102810A1 (ja) | 2004-11-25 |
| CN1701515A (zh) | 2005-11-23 |
| KR20060007361A (ko) | 2006-01-24 |
| CN100472971C (zh) | 2009-03-25 |
| US7318186B2 (en) | 2008-01-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4224777B2 (ja) | 復号方法および復号装置、並びにプログラム | |
| JP4487213B2 (ja) | 復号装置および方法、並びにプログラム | |
| JP4487212B2 (ja) | 復号装置および方法、送受信システム、受信装置および方法、並びにプログラム | |
| US7299397B2 (en) | Decoding apparatus, decoding method, and program to decode low density parity check codes | |
| JP4622654B2 (ja) | 復号装置および復号方法 | |
| JP4285148B2 (ja) | 復号装置および復号方法、並びにプログラム | |
| JP4284600B2 (ja) | 復号装置 | |
| JP4729964B2 (ja) | 復号装置および復号方法 | |
| JP4821724B2 (ja) | 復号装置および復号方法 | |
| JP4730592B2 (ja) | 復号装置および復号方法 | |
| JP4288582B2 (ja) | 復号装置および復号方法、並びにプログラム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060119 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080708 |
|
| 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: 20081030 |
|
| 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: 20081112 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111205 Year of fee payment: 3 |
|
| R151 | Written notification of patent or utility model registration |
Ref document number: 4224777 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111205 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111205 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121205 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: 20121205 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131205 Year of fee payment: 5 |
|
| 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 |
|
| EXPY | Cancellation because of completion of term |