[go: up one dir, main page]

JP2004343170A - 復号方法および復号装置、並びにプログラム - Google Patents

復号方法および復号装置、並びにプログラム Download PDF

Info

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
Application number
JP2003133942A
Other languages
English (en)
Other versions
JP4224777B2 (ja
Inventor
Mineshi Yokogawa
峰志 横川
Makiko Suga
真紀子 菅
Yasuhiro Iida
康博 飯田
Atsushi Kikuchi
敦 菊池
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 JP2003133942A priority Critical patent/JP4224777B2/ja
Priority to US10/521,191 priority patent/US7318186B2/en
Priority to EP04728245A priority patent/EP1521372A4/en
Priority to CNB2004800007382A priority patent/CN100472971C/zh
Priority to PCT/JP2004/005551 priority patent/WO2004102810A1/ja
Priority to KR1020057000592A priority patent/KR101158919B1/ko
Publication of JP2004343170A publication Critical patent/JP2004343170A/ja
Application granted granted Critical
Publication of JP4224777B2 publication Critical patent/JP4224777B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1134Full parallel processing, i.e. all bit nodes or check nodes are processed in parallel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • H03M13/1168Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices wherein the sub-matrices have column and row weights greater than one, e.g. multi-diagonal sub-matrices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • H03M13/1185Parity 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • H03M13/1185Parity 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/1188Parity 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6566Implementations concerning memory access contentions
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization

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

【0001】
【発明の属する技術分野】
本発明は、復号方法および復号装置、並びにプログラムに関し、特に、低密度パリティ検査符号による符号化が施された符号の復号を行う復号方法および復号装置、並びにプログラムに関する。
【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の転置行列Hとの間に、式GH=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に示すような手順にしたがって行われる。なお、ここでは、受信値(受信した符号系列)をU(u0i)とし、チェックノードから出力されるメッセージをuとし、バリアブルノードから出力されるメッセージをvとする。また、ここでは、メッセージとは、値の”0”らしさを、いわゆる対数尤度比(log likelihood ratio)で表現した実数値である。
【0013】
まず、LDPC符号の復号においては、図2に示すように、ステップS11において、受信値U(u0i)が受信され、メッセージuが”0”に初期化されるとともに、繰り返し処理のカウンタとしての整数をとる変数kが”0”に初期化され、ステップS12に進む。ステップS12において、受信値U(u0i)に基づいて、式(1)に示す演算(バリアブルノードの演算)を行うことによってメッセージvが求められ、さらに、このメッセージvに基づいて、式(2)に示す演算(チェックノードの演算)を行うことによってメッセージuが求められる。
【0014】
【数1】
Figure 2004343170
Figure 2004343170
【0015】
【数2】
Figure 2004343170
Figure 2004343170
【0016】
ここで、式(1)と式(2)におけるdとdは、それぞれ、検査行列Hの縦方向(列)と横方向(行)の”1”の個数を示す任意に選択可能とされるパラメータであり、例えば、(3,6)符号の場合には、d=3,d=6となる。
【0017】
なお、式(1)または(2)の演算においては、それぞれ、メッセージを出力しようとする枝(edge)(バリアブルノードとチェックノードとを結ぶ線)から入力されたメッセージを、和または積演算のパラメータとしては用いないことから、和または積演算の範囲が、1乃至d−1または1乃至d−1となっている。また、式(2)に示す演算は、実際には、2入力v,vに対する1出力で定義される式(3)に示す関数R(v,v)のテーブルを予め作成しておき、これを式(4)に示すように連続的(再帰的)に用いることによって行われる。
【0018】
【数3】
Figure 2004343170
Figure 2004343170
【0019】
【数4】
Figure 2004343170
Figure 2004343170
【0020】
ステップS12では、さらに、変数kが”1”だけインクリメントされ、ステップS13に進む。ステップS13では、変数kが所定の繰り返し復号回数Nよりも大きいか否かが判定される。ステップS13において、変数kがNよりも大きくないと判定された場合、ステップS12に戻り、以下、同様の処理が繰り返される。
【0021】
また、ステップS13において、変数kがNよりも大きいと判定された場合、ステップS14に進み、式(5)に示す演算を行うことによって最終的に出力する復号結果としてのメッセージvが求められて出力され、LDPC符号の復号処理が終了する。
【0022】
【数5】
Figure 2004343170
Figure 2004343170
【0023】
ここで、式(5)の演算は、式(1)の演算とは異なり、バリアブルノードに接続している全ての枝からの入力メッセージを用いて行われる。
【0024】
このようなLDPC符号の復号は、例えば(3,6)符号の場合には、図3に示すように、各ノード間でメッセージの授受が行われる。なお、図3における”=”で示すノード(バリアブルノード)では、式(1)に示した演算が行われ、”+”で示すノード(チェックノード)では、式(2)に示した演算が行われる。特に、アルゴリズムAにおいては、メッセージを2元化し、”+”で示すノードにて、d−1個の入力メッセージの排他的論理和演算を行い、”=”で示すノードにて、受信値Rに対して、d−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において、計算しようとしている枝に対応するメッセージvは、バリアブルノードに繋がっている残りの枝からのメッセージuおよびuと、受信情報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】
Figure 2004343170
Figure 2004343170
【0031】
更に、x≧0において、φ(x)=ln(tanh(x/2))と定義すると、φ−1(x)=2tanh−1(e−x)であるから、式(6)は、式(7)のように書くことができる。
【0032】
【数7】
Figure 2004343170
Figure 2004343170
【0033】
チェックノードでは、図7のように、式(7)の演算(チェックノード演算)を行う。すなわち、図7において、計算しようとしている枝に対応するメッセージuは、チェックノードに繋がっている残りの枝からのメッセージv,v,v,v,vを用いて計算される。他の枝に対応するメッセージも同様に計算される。
【0034】
なお、関数φ(x)は、φ(x)=ln((e+1)/(e−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から供給される、検査行列の各列に対応するバリアブルノードからのメッセージvを一つずつ読み込み、式(7)におけるφ(|v|)の演算をLUTによって行う。さらに、検査行列の1行に亘る各列に対応するバリアブルノードからのメッセージvから求められたφ(|v|)が積算され、これにより、全ての枝からのメッセージvから求められたφ(|v|)の積算値が求められる。その後、その積算値から、メッセージuを求めたい枝から求められてFIFO(FIFOメモリ)で遅延されたφ(|v|)が減算され、これにより、メッセージuを求めたい枝について、式(7)におけるΣφ(|v|)が求められる。即ち、チェックノードへの枝すべてからのメッセージの和から、メッセージuを求めたい枝からのメッセージを減算することで、メッセージuを求めたい枝へのメッセージが求められる。さらに、LUTによって、式(7)におけるφ−1(Σφ(|v|))の演算が行われる。同時に、メッセージuの符号ビット、即ち、式(7)におけるΠsign(v)も、EXOR回路を用いて同様に計算される。以上のようにして、式(7)の演算が行われ、メッセージuが求められる。
【0045】
なお、図10では、各メッセージが符号ビットを合わせて合計6ビット(bit)に量子化されているものとして、チェックノード計算器101を表している。また、ここで処理の対象としている図8の検査行列の行の重み(row weight)の最大は9であるため、即ち、チェックノードに供給されるメッセージの最大数は9であるため、チェックノード計算器101は、9個のメッセージ(φ(|v|))を遅延させる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から供給される、検査行列の各行に対応するチェックノードからのメッセージuを一つずつ読み込み、検査行列の1列に亘る各行に対応するチェックノードからのメッセージを積算して、その積算値を求める。その後、その積算値から、メッセージvを求めたい枝から供給されてFIFOで遅延されたメッセージが減算される。さらに、その結果得られる減算値から、受信値u0iを加算することで、式(1)の演算が行われ、これにより、メッセージvが求められる。即ち、バリアブルノードへの枝すべてからのメッセージの和から、メッセージvを求めたい枝からのメッセージを減算することで、メッセージvを求めたい枝へのメッセージが求められる。
【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個のチェックノード計算器201乃至20130、90個のバリアブルノード計算器204乃至20490からなる。以下、各部について詳細に説明する。
【0060】
枝用メモリ206は、前段のバリアブルノード計算器204乃至20490からの出力メッセージD206乃至D20690を全て同時に格納し、次の時刻(次のクロックのタイミング)に、メッセージD206乃至D20690を、メッセージD207乃至D20790として読み出し、次段の枝入れ替え装置200に、メッセージD200(D200乃至D20090)として供給する。枝入れ替え装置200は、枝用メモリ206から供給されたメッセージD200乃至D20090の順番を、図8の検査行列に従って並び替え(入れ替え)、チェックノード計算器201乃至20130に、それぞれ必要なメッセージD201乃至D20130を供給する。
【0061】
チェックノード計算器201乃至20130は、枝入れ替え装置200から供給されるメッセージD201乃至D20130を用いて式(7)に従って演算を行い、その演算の結果得られるメッセージD202乃至D20230を、枝用メモリ202に供給する。
【0062】
ここで、図13は、チェックノード演算を同時に行う図12のチェックノード計算器201(m=1,2,・・・,30)の構成例を示している。
【0063】
図13のチェックノード計算器201では、図10のチェックノード計算器101と同様にして、式(7)のチェックノード演算が行われるが、そのチェックノード演算が、すべての枝について同時に行われる。
【0064】
即ち、図13のチェックノード計算器201では、枝入れ替え装置200から供給される図8の検査行列の各列に対応するバリアブルノードからのメッセージが全て同時に読み込まれ、式(7)におけるφ(|v|)の演算がLUTによって行われる。さらに、検査行列の1行に亘る各列に対応するバリアブルノードからのメッセージvから求められたφ(|v|)が積算され、これにより、全ての枝からのメッセージvから求められたφ(|v|)の積算値が求められる。その後、その積算値から、メッセージuを求めたい枝から求められたφ(|v|)が減算され、これにより、メッセージuを求めたい枝について、式(7)におけるΣφ(|v|)が求められる。即ち、チェックノードへの枝すべてからのメッセージの和から、メッセージuを求めたい枝からのメッセージを減算することで、メッセージuを求めたい枝へのメッセージが求められる。さらに、LUTによって、式(7)におけるφ−1(Σφ(|v|))の演算が行われる。同時に、メッセージuの符号ビット、即ち、式(7)におけるΠsign(v)も、EXOR回路を用いて同様に計算される。以上のようにして、式(7)の演算が行われ、メッセージuが求められる。
【0065】
なお、図13では、各メッセージが符号ビットを合わせて合計6ビットに量子化されているものとして、チェックノード計算器201を表している。また、図13の回路は一つのチェックノードに相当する。ここで処理の対象としている図8の検査行列については、その行数である30行のチェックノードが存在するから、図12の復号装置は、図13に示したようなチェックノード計算器201を30個有している。
【0066】
ここで、図13のチェックノード計算器201では、9個のメッセージを同時に計算することができる。そして、ここで処理の対象としている図8の検査行列の行の重みは、第1行が8で、第2乃至第30行が9であるため、即ち、チェックノードに供給されるメッセージの数が、8のケースが1つと、9のケースが29あるため、チェックノード計算器201は、図13の回路と同様の8つのメッセージを同時に計算することができる回路構成となっており、チェックノード計算器201乃至20130は、図13の回路と同一構成となっている。
【0067】
図12に戻り、枝用メモリ202は、前段のチェックノード計算器201乃至20130から供給される出力メッセージD202乃至D20230を全て同時に格納し、次の時刻に、そのすべてのメッセージD202乃至D20230を、出力メッセージD203乃至D20330として、次段の枝入れ替え装置203に供給する。
【0068】
枝入れ替え装置203は、枝用メモリ202から供給されたメッセージD203乃至D20330の順番を図8の検査行列に従って並び替え、バリアブルノード計算器204乃至20490に、それぞれ必要なメッセージD204乃至D20490を供給する。
【0069】
バリアブルノード計算器204乃至20490は、枝入れ替え装置203から供給されるメッセージD204乃至D20490と、受信用メモリ205から供給される受信データ(受信値)D205乃至D20590を用いて式(1)に従って演算を行い、その演算の結果得られるメッセージD206乃至D20690を、次段の枝用メモリ206に供給する。
【0070】
ここで、図14は、バリアブルノード演算を同時に行う図12のバリアブルノード計算器204(p=1,2,・・・,90)の構成例を示している。
【0071】
図14のバリアブルノード計算器204では、図11のバリアブルノード計算器103と同様にして、式(7)のチェックノード演算が行われるが、そのチェックノード演算が、すべての枝について同時に行われる。
【0072】
即ち、図14のバリアブルノード計算器204では、枝入れ替え装置203から供給される、検査行列の各行に対応するチェックノードからのメッセージuが全て同時に読み込まれ、検査行列の1列に亘る各行に対応するチェックノードからのメッセージが積算されて、その積算値が求められる。その後、その積算値から、メッセージvを求めたい枝から供給されたメッセージが減算され、その結果得られる減算値から、受信値u0iを加算することで、式(1)の演算が行われ、これにより、メッセージvが求められる。即ち、バリアブルノードへの枝すべてからのメッセージの和から、メッセージvを求めたい枝からのメッセージを減算することで、メッセージvを求めたい枝へのメッセージが求められる。
【0073】
なお、図14では、各メッセージが符号ビットを合わせて合計6ビットに量子化されているものとして、バリアブルノード計算器204を表している。また、図14の回路は一つのバリアブルノードに相当する。ここで処理の対象としている図8の検査行列については、その列数である90列のバリアブルノードが存在するから、図12の復号装置は、図14に示したようなバリアブルノード計算器204を90個有している。
【0074】
ここで、図14のバリアブルノード計算器204では、5個のメッセージを同時に計算することができる。そして、ここで処理の対象としている図8の検査行列は、重みが5,3,2,1の列が、それぞれ、15列、45列、29列、1列あるので、バリアブルノード計算器204乃至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のチェックノード計算器302乃至302)を有し、
前記バリアブルノード計算手段は、バリアブルノードの演算を行うP個のバリアブルノード計算器(例えば、図18のバリアブルノード計算器307乃至307)を有する
ことを特徴とする。
【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’で、それぞれ表すこととすると、検査行列の性質から、Hc(上付のTは転置を表す)は、0ベクトルとなるから、H’c’も、当然、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つのFIFO300乃至300からなる枝データ格納用メモリ300、FIFO300乃至300を選択するセレクタ301、チェックノード計算部302、2つのサイクリックシフト回路303および308、18個のFIFO304乃至30418からなる枝データ格納用メモリ304、FIFO304乃至30418を選択するセレクタ305、受信情報を格納する受信データ用メモリ306、バリアブルノード計算部307、復号語計算部309、受信データ並べ替え部310、復号データ並べ替え部311からなる。
【0118】
この復号装置の各部について詳細に説明する前に、まず、枝データ格納用メモリ300と304へのデータの格納方法について説明する。
【0119】
枝データ格納用メモリ300は、図17の変換検査行列の行数30を構成行列の行数5で除算した数である6つのFIFO300乃至300から構成されている。FIFO300(y=1,2,・・・,6)は、構成行列の行数および列数である5つの枝に対応するメッセージを同時に読み出しもしくは書き込むことができるようになっており、その長さ(段数)は、図17の変換検査行列の行方向の1の数(ハミング重み)の最大数である9になっている。
【0120】
FIFO300には、図17の検査行列(変換検査行列)の第1行目から第5行目までの1の位置に対応するデータが、各行共に横方向に詰めた形に(0を無視した形で)格納される。すなわち、第j行第i列を、(j,i)と表すこととすると、FIFO300の第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がないため、FIFO300の1行目のみ要素数は8、残りの行は要素数が9となる。
【0121】
FIFO300には、図17の検査行列の第6行目から第10行目までの1の位置に対応するデータが格納される。すなわち、FIFO300の第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の位置に対応するデータ(単位行列、準単位行列、またはシフト行列に属する枝に対応するメッセージ)は、同一アドレス(FIFO300乃至300のうちの同一のFIFO)に格納される。
【0123】
以下、第3から第9の要素についても、検査行列に対応づけてデータが格納される。FIFO300は全行共に要素数は9となる。
【0124】
FIFO300乃至300も同様に検査行列に対応づけてデータを格納し、各FIFO300乃至300それぞれの長さは9である。
【0125】
枝データ格納用メモリ304は、検査行列の列数90を、構成行列の列数である5で割った18個のFIFO304乃至30418から構成されている。FIFO304(x=1,2,・・・,18)は、構成行列の行数および列数である5つの枝に対応するメッセージを同時に読み出しもしくは書き込むことができるようになっている。
【0126】
FIFO304には、図17の検査行列の第1列目から第5列目までの1の位置に対応するデータが、各列共に縦方向に詰めた形に(0を無視した形で)格納される。すなわち、FIFO304の第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の位置に対応するデータ(単位行列、準単位行列、またはシフト行列に属する枝に対応するメッセージ)は、同一アドレス(FIFO304乃至30418のうちの同一のFIFO)に格納される。
【0128】
以下、第4および第5の要素についても、検査行列に対応づけて、データが格納される。このFIFO304の要素数(段数)は、検査行列の第1列から第5列における行方向の1の数(ハミング重み)の最大数である5になっている。
【0129】
FIFO304と304も同様に検査行列に対応づけてデータを格納し、それぞれの長さ(段数)は、5である。FIFO304乃至30412も同様に検査行列に対応づけてデータを格納し、それぞれの長さは3である。FIFO30413乃至30418も同様に検査行列に対応づけてデータを格納し、それぞれの長さは2である。但し、FIFO30418の第1の要素は、検査行列の(1,86)から(5,90)に相当し、第5列目(検査行列の(1,90)から(5,90))に1がないため、データは格納されない。
【0130】
以下、図18の復号装置の各部の動作について詳細に説明する。
【0131】
枝データ格納用メモリ300は、6つのFIFO300乃至300からなり、前段のサイクリックシフト回路308から供給される5つのメッセージデータD311が、検査行列どの行に属するかの情報(Matrixデータ)D312に従って、データを格納するFIFOを、FIFO300乃至300の中から選び、選んだFIFOに5つのメッセージデータD311をまとめて順番に格納していく。また、枝データ格納用メモリ300は、データを読み出す際には、FIFO300から5つのメッセージデータD300を順番に読み出し、次段のセレクタ301に供給する。枝データ格納用メモリ300は、FIFO300からのメッセージデータの読み出しの終了後、FIFO300乃至300からも、順番に、メッセージデータを読み出し、セレクタ301に供給する。
【0132】
セレクタ301は、セレクト信号D301に従って、FIFO300乃至300のうちの、現在データが読み出されているFIFOからの5つのメッセージデータを選択し、メッセージデータD302として、チェックノード計算部302に供給する。
【0133】
チェックノード計算部302は、5つのチェックノード計算器302乃至302からなり、セレクタ301を通して供給されるメッセージD302(D302乃至D302)を用いて、式(7)に従って演算を行い、その演算の結果得られる5つのメッセージD303(D303乃至D303)をサイクリックシフト回路303に供給する。
【0134】
ここで、チェックノード計算器302乃至302それぞれは、図10に示したチェックノード計算器101と同様に構成される。
【0135】
サイクリックシフト回路303は、チェックノード計算部302で計算された5つのメッセージD303乃至D303を、対応する枝が検査行列において元となる単位行列を幾つサイクリックシフトしたものであるかの情報(Matrixデータ)D305を元にサイクリックシフトし、その結果をメッセージD304として、枝データ格納用メモリ304に供給する。
【0136】
枝データ格納用メモリ304は、18個のFIFO304乃至30418からなり、前段のサイクリックシフト回路303から供給される5つのメッセージデータD304が検査行列のどの行に属するかの情報D305に従って、データを格納するFIFOを、FIFO304乃至30418の中から選び、選んだFIFOに5つのメッセージデータD304をまとめて順番に格納していく。また、枝データ格納用メモリ304は、データを読み出す際には、FIFO304から5つのメッセージD306を順番に読み出し、次段のセレクタ305に供給する。枝データ格納用メモリ304は、FIFO304からのデータの読み出しの終了後、FIFO304乃至30418からも、順番に、メッセージデータを読み出し、セレクタ305に供給する。
【0137】
セレクタ305は、セレクト信号D307に従って、FIFO304乃至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つのバリアブルノード計算器307乃至307からなり、セレクタ305を通して供給されるメッセージD308(D308乃至D308)と、受信データ用メモリ306から供給される5つの受信LLR D309を用いて、式(1)に従って演算を行い、その演算の結果得られるメッセージD310(D310乃至D310)を、サイクリックシフト回路308に供給する。
【0140】
ここで、バリアブルノード計算器307乃至307それぞれは、図11のバリアブルノード計算器103と同様に構成される。
【0141】
サイクリックシフト回路308は、バリアブルノード計算部307で計算されたメッセージD310乃至D310を、対応する枝が検査行列において元となる単位行列を幾つサイクリックシフトしたものであるかの情報を元にサイクリックシフトし、その結果をメッセージD311として、枝データ格納用メモリ300に供給する。
【0142】
以上の動作を1巡することで、LDPC符号の1回の復号を行うことができる。図18の復号装置は、所定の回数だけLDPC符号を復号した後、復号語計算部309および復号データ並べ替え部311において、最終的な復号結果を求めて出力する。
【0143】
即ち、復号語計算部309は、5つの復号語計算器309乃至309からなり、セレクタ305が出力する5つのメッセージD308(D308乃至D308)と、受信データ用メモリ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)

  1. LDPC(Low Density Parity Check)符号の復号方法であって、
    元の検査行列に対して、行置換と列置換のうちの一方または両方を行って得られる変換検査行列を用いて、前記LDPC符号を復号する復号ステップを備える
    ことを特徴とする復号方法。
  2. 請求項1に記載の復号方法であって、
    P×Pの単位行列、その単位行列のコンポーネントである1のうちの1個以上が0になった行列である準単位行列、前記単位行列もしくは準単位行列をサイクリックシフトした行列であるシフト行列、前記単位行列、準単位行列、もしくはシフト行列のうちの複数の和である和行列、またはP×Pの0行列を構成行列として、前記変換検査行列は、複数の前記構成行列の組合せで表される
    ことを特徴とする復号方法。
  3. 請求項1に記載の復号方法であって、
    受信した前記LDPC符号の符号系列に対して、前記元の検査行列に対して行われた列置換と同一の列置換を行い、置換符号系列を出力する符号系列置換ステップをさらに備え、
    前記復号ステップにおいて、前記変換検査行列と、前記置換符号系列とを用いて、前記符号系列を復号する
    ことを特徴とする復号方法。
  4. LDPC(Low Density Parity Check)符号の復号装置であって、
    元の検査行列に対して、行置換と列置換のうちの一方または両方を行って得られる変換検査行列を用いて、前記LDPC符号を復号する復号手段を備える
    ことを特徴とする復号装置。
  5. 請求項4に記載の復号装置であって、
    P×Pの単位行列、その単位行列のコンポーネントである1のうちの1個以上が0になった行列である準単位行列、前記単位行列もしくは準単位行列をサイクリックシフトした行列であるシフト行列、前記単位行列、準単位行列、もしくはシフト行列のうちの複数の和である和行列、またはP×Pの0行列を構成行列として、前記変換検査行列は、複数の前記構成行列の組合せで表される
    ことを特徴とする復号装置。
  6. 請求項5に記載の復号装置であって、
    前記復号手段は、
    前記LDPC符号の復号のためのP個のチェックノードの演算を同時に行うチェックノード計算手段と、
    前記LDPC符号の復号のためのP個のバリアブルノードの演算を同時に行うバリアブルノード計算手段と
    を有する
    ことを特徴とする復号装置。
  7. 請求項6に記載の復号装置であって、
    前記チェックノード計算手段は、チェックノードの演算を行うP個のチェックノード計算器を有し、
    前記バリアブルノード計算手段は、バリアブルノードの演算を行うP個のバリアブルノード計算器を有する
    ことを特徴とする復号装置。
  8. 請求項6に記載の復号装置であって、
    前記復号手段は、前記P個のチェックノードの演算、または前記P個のバリアブルノードの演算の結果得られるP個の枝に対応するメッセージデータを同時に読み書きするメッセージ記憶手段をさらに有する
    ことを特徴とする復号装置。
  9. 請求項8に記載の復号装置であって、
    前記メッセージ記憶手段は、チェックノード演算時に読み出される枝に対応するメッセージデータを、前記変換検査行列の1を行方向に詰めるように格納する
    ことを特徴とする復号装置。
  10. 請求項8に記載の復号装置であって、
    前記メッセージ記憶手段は、バリアブルノード演算時に読み出される枝に対応するメッセージデータを、前記変換検査行列の1を列方向に詰めるように格納する
    ことを特徴とする復号装置。
  11. 請求項8に記載の復号装置であって、
    前記メッセージ記憶手段は、前記変換検査行列を表す構成行列のうちの、重みが2以上の構成行列について、その構成行列を、重みが1の単位行列、準単位行列、またはシフト行列の和の形で表現したときの、その重みが1の単位行列、準単位行列、またはシフト行列に属するP個の枝に対応するメッセージを、同一のアドレスに格納する
    ことを特徴とする復号装置。
  12. 請求項8に記載の復号装置であって、
    前記メッセージ記憶手段は、行数/P個のFIFOと、列数/P個のFIFOとで構成され、
    前記行数/P個のFIFOと列数/P個のFIFOは、それぞれ、前記検査行列の行と列の重みに対応するワード数を有する
    ことを特徴とする復号装置。
  13. 請求項8に記載の復号装置であって、
    前記メッセージ記憶手段は、RAM(Random Access Memory)で構成され、
    前記RAMは、前記メッセージデータを、読み出される順番に詰めて格納し、格納位置順に読み出す
    ことを特徴とする復号装置。
  14. 請求項6に記載の復号装置であって、
    前記復号手段は、受信情報を格納するとともに、P個の前記受信情報を同時に読み出す受信情報記憶手段をさらに有する
    ことを特徴とする復号装置。
  15. 請求項14に記載の復号装置であって、
    前記受信情報記憶手段は、前記受信情報を、前記バリアブルノードの演算に必要となる順番に読み出すことができるように格納する
    ことを特徴とする復号装置。
  16. 請求項6に記載の復号装置であって、
    前記復号手段は、前記P個のチェックノードの演算、または前記P個のバリアブルノードの演算の結果得られるメッセージをサイクリックシフトするサイクリックシフト手段をさらに有する
    ことを特徴とする復号装置。
  17. 請求項16に記載の復号装置であって、
    前記サイクリックシフト手段は、バレルシフタで構成される
    ことを特徴とする復号装置。
  18. 請求項4に記載の復号装置であって、
    受信した前記LDPC符号の符号系列に対して、前記元の検査行列に対して行われた列置換と同一の列置換を行い、置換符号系列を出力する符号系列置換手段をさらに備え、
    前記復号手段は、前記変換検査行列と、前記置換符号系列とを用いて、前記符号系列を復号する
    ことを特徴とする復号装置。
  19. 請求項18に記載の復号装置であって、
    前記復号手段の出力に対して、前記元の検査行列に対して行われた列置換の逆置換を行い、最終的な復号結果を出力する逆置換手段をさらに備える
    ことを特徴とする復号装置。
  20. LDPC(Low Density Parity Check)符号の復号をコンピュータに行わせるプログラムであって、
    元の検査行列に対して、行置換と列置換のうちの一方または両方を行って得られる変換検査行列を用いて、前記LDPC符号を復号する復号ステップを備える
    ことを特徴とするプログラム。
JP2003133942A 2003-05-13 2003-05-13 復号方法および復号装置、並びにプログラム Expired - Lifetime JP4224777B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 富士通株式会社 符号器および復号器

Cited By (47)

* Cited by examiner, † Cited by third party
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