JP4534128B2 - 符号化方法および装置 - Google Patents

符号化方法および装置 Download PDF

Info

Publication number
JP4534128B2
JP4534128B2 JP2004062488A JP2004062488A JP4534128B2 JP 4534128 B2 JP4534128 B2 JP 4534128B2 JP 2004062488 A JP2004062488 A JP 2004062488A JP 2004062488 A JP2004062488 A JP 2004062488A JP 4534128 B2 JP4534128 B2 JP 4534128B2
Authority
JP
Japan
Prior art keywords
information
row
matrix
parity
check matrix
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004062488A
Other languages
English (en)
Other versions
JP2005252820A (ja
Inventor
真紀子 菅
峰志 横川
俊之 宮内
敦 菊池
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2004062488A priority Critical patent/JP4534128B2/ja
Priority to EP05250979A priority patent/EP1580896A3/en
Priority to US11/071,096 priority patent/US7484159B2/en
Publication of JP2005252820A publication Critical patent/JP2005252820A/ja
Application granted granted Critical
Publication of JP4534128B2 publication Critical patent/JP4534128B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1191Codes on graphs other than LDPC codes
    • H03M13/1194Repeat-accumulate [RA] 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/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/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • 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

Landscapes

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

Description

本発明は、符号化装置および方法に関し、特に、簡単な構成で、高性能な符号化を実現することができるようにした符号化装置および方法に関する。
代数的手法を用いた誤り訂正符号技術を実現する線形符号として、例えば、準巡回符号や、IRA(Irregular Repeat Accumulate)符号などが挙げられる。符号長nの準巡回符号とは、nの約数mに対してパリティ検査行列が、m×mの巡回正方行列を要素とする行列の形で表現される符号のことである。
図1は、n=15,m=5の準巡回符号のパリティ検査行列HQCの構成例を示す。図1の例において、パリティ検査行列HQCは、5×5の巡回正方行列を要素とする2(行)×3(列)の行列で構成される。
このようなパリティ検査行列を有する準巡回符号の符号化装置は、シフトレジスタを用いて、簡単に実現される。例えば、非特許文献1においては、素数のべき乗を元とする有限体Fq上の任意の準巡回符号で、符号長n,情報長k,巡回正方行列のサイズm,n=n0×m,k=k0×m,l:=(n−k)/m=n0−k0で表される準巡回符号が記載されている。なお、準巡回符号において、n0およびlは、m×mの巡回正方行列を要素とした場合のパリティ検査行列の列数と行数を表す。すなわち、m個をひと塊と考えた場合、n0,k0,およびlは、それぞれ符号長、情報長、およびパリティ数を表す。
一方、符号長n、情報長kのIRA符号とは、一般にそのパリティ検査行列が、零元(例えば、0)および非零元(例えば、1)が任意に並んだn−k個の情報部と、非零元が階段状に並び、残りを零元が埋めているk個のパリティ部により構成されるもののことである。IRA符号は、非特許文献2に示されるように、高性能な符号化を実現することで知られている。
図2は、n=15,k=5のIRA符号のパリティ検査行列HIRAの構成例を示す。図2の例において、パリティ検査行列HIRAは、10(行)×5(列)の行列である情報部11と、10(行)×10(列)の行列であるパリティ部12により構成される。
このパリティ検査行列HIRAは、図3に示されるタナーグラフ(Tanner graph)を用いて表される。図3の例においては、黒丸で表されるのがバリアブルノード(Variable Node)であり、四角で表されるのがチェックノード(Check Node)である。バリアブルノードは、パリティ検査行列HIRAの列に対応し、n−k個(図3の例の場合、5個)の情報部21と、k個(図3の例の場合、10個)の次数2(枝の数)のパリティ部22により構成される。チェックノードは、パリティ検査行列HIRAの行に対応し、k個(図3の例の場合、10個)のチェックノード23で構成される。チェックノードとバリアブルノードの間の結線は、枝(edge)であり、パリティ検査行列HIRAの非零元に相当する。
このようなパリティ検査行列を有するIRA符号の符号化装置について、図4を参照して説明する。図4の例において、IRA符号の符号化装置は、パンクチャ(puncture)回路31、ランダムインタリーバ32、およびアキュムレータ33により構成される。
パンクチャ回路31は、入力された情報ビットを所定の規則で間引いて、ランダムインタリーバ32に供給する。ランダムインタリーバ32は、パンクチャ回路31により間引かれたデータの順序をランダムに並び替え、並び替えたデータを、アキュムレータ33に供給する。
アキュムレータ33は、演算器41およびレジスタ42により構成される。演算器41は、ランダムインタリーバ32からのデータと、シフトレジスタ42から供給されたデータを有限体F2上で加算し(排他的論理和を演算し)、その加算された値をシフトレジスタ42に供給する。シフトレジスタ42は、演算器41から供給された値を格納し、それに格納している値(直前に演算器41で加算された加算結果)を演算器41に供給するとともに、図示せぬ後段に出力する。
以上により、図4の符号化装置からは、入力データに対するIRA符号化結果として、入力データとアキュムレータ33から出力される値とを合わせた符号化系列(符号ビット)が、通信路に出力される。
R. L. Townsent, E. j. Weldon. Jr., "Self-Orthogonal Quasi-Cyclic Codes", IEEE Transaction on Information Theory, Vol. IT-13,No.2,April 1967 H. Jin, A. Khandekar, R. J. McEliece, "Irregular Repeat-Accumulate Codes", in Proc. 2nd International Symposium on Turbo Codes & Related Topics, Brest, France, PP.1-8, Sept.2000
以上のように、IRA符号を用いることにより高性能な符号化が実現されるが、IRA符号の符号化装置は、高価なランダムインタリーバ32などが必要であり、コストが高くなり、構成が複雑になってしまう課題があった。
一方、準巡回符号の符号化装置は、シフトレジスタにより、単純な構成で簡単に実装することができるが、IRA符号のパリティ検査行列は、準巡回ではないため、IRA符号のように高性能な符号の符号化には対応できない課題があった。
本発明は、このような状況に鑑みてなされたものであり、単純な構成で、高性能な符号化を行うことができるようにするものである。
本発明の符号化装置は、線形符号の検査行列は、m×mの巡回行列または準巡回行列を要素としてなる情報部を含んで構成されており、入力される情報の長さk(=k0×m)と同数の記憶素子からなり、巡回行列または準巡回行列を要素とした場合の情報部の列数k0個の巡回が繰り返されるように、記憶素子がm台ずつ直列に接続されて構成されるシフトレジスタと、シフトレジスタから、線形符号の検査行列の情報部に応じて巡回的に入力される値を加算するシフト加算手段と、線形符号のパリティの1ビットを記憶する記憶手段と、シフト加算手段による加算結果と、記憶手段に記憶された線形符号の1ビットのパリティを加算することにより、線形符号の新たな1ビットのパリティを求め、記憶手段に供給する累加算手段とを備える
線形符号の検査行列は、低密度であるようにすることができる。
線形符号は、素数のべき乗を元とする有限体である環R上の線形符号である
シフト加算手段は、巡回行列または準巡回行列を要素とした場合の情報部の行数個で構成されており、線形符号の検査行列の情報部に応じて、シフト加算手段による加算結果のうちの1つを選択する選択手段をさらに備え、累加算手段は、選択手段により選択された加算結果と、記憶手段に記憶された線形符号の1ビットのパリティを加算することにより、線形符号の新たな1ビットのパリティを求め、記憶手段に供給することができる。
本発明の符号化方法は、線形符号の符号化装置の符号化方法であって、線形符号の検査行列は、m×mの巡回行列または準巡回行列を要素としてなる情報部を含んで構成されており、符号化装置が、入力される情報の長さk(=k0×m)と同数の記憶素子からなり、巡回行列または準巡回行列を要素とした場合の情報部の列数k0個の巡回が繰り返されるように、記憶素子がm台ずつ直列に接続されて構成されるシフトレジスタから、線形符号の検査行列の情報部に応じて巡回的に入力される値を加算するシフト加算ステップと、線形符号のパリティの1ビットを記憶手段に記憶させる記憶ステップと、シフト加算ステップの処理による加算結果と、記憶手段に記憶された線形符号の1ビットのパリティを加算することにより、線形符号の新たな1ビットのパリティを求め、記憶手段に供給する累加算ステップとを含む
線形符号の検査行列は、低密度であるようにすることができる。
線形符号は、素数のべき乗を元とする有限体である環R上の線形符号である
シフト加算ステップの処理では、巡回行列または準巡回行列を要素とした場合の情報部の行数個の加算結果が算出され、線形符号の検査行列の情報部に応じて、シフト加算ステップの処理による加算結果のうちの1つを選択する選択ステップをさらに含み、累加算ステップでは、選択ステップの処理により選択された加算結果と、記憶手段に記憶された線形符号の1ビットのパリティを加算することにより、線形符号の新たな1ビットのパリティを求め、記憶手段に供給することができる。
本発明においては、線形符号の検査行列が、m×mの巡回行列または準巡回行列を要素としてなる情報部を含んで構成されている。また、入力される情報の長さk(=k0×m)と同数の記憶素子からなり、巡回行列または準巡回行列を要素とした場合の情報部の列数k0個の巡回が繰り返されるように、記憶素子がm台ずつ直列に接続されて構成されるシフトレジスタから、線形符号の検査行列の情報部に応じて巡回的に入力される値が加算される。そして、その加算結果と、記憶手段に記憶された線形符号の1ビットのパリティを加算することにより、線形符号の新たな1ビットのパリティが求められ、記憶手段に供給される。
符号化装置は、独立した装置であってもよいし、記録再生装置や通信装置の符号化処理を行うブロックであってもよい。
本発明によれば、単純な構成で、高性能な符号化を行うことができる。
以下、図を参照して本発明の実施の形態について説明する。
図5は、本発明を適用したIRA(Irregular Repeat Accumulate)型準巡回符号の符号化に用いられるパリティ検査行列HQCIRA1の例を示している。IRA型準巡回符号とは、準巡回符号のパリティ検査行列と、IRA符号のパリティ検査行列の両方の性質を有するパリティ検査行列を持つ線形符号のことである。なお、図5においては、有限体を、2(素数のべき乗)を元とする有限体F2上として説明する。
図5の例において、パリティ検査行列HQCIRA1は、情報長kが15ビットの情報を、符号長nが25ビットの、巡回正方行列のサイズm,符号長n=n0×m,情報長k=k0×m,l:=(符号長n−情報長k)/m=n0−k0(図5の例の場合、n=25,k=15,m=5,n0=5,k0=3,l=2)で表されるIRA型準巡回符号に符号化するためのパリティ検査行列である。なお、IRA型準巡回符号において、従来の準巡回符号と同様に、n0およびlは、m×mの巡回正方行列を要素とした場合のパリティ検査行列の列数と行数を表す。換言すると、n0,k0,およびlは、m個をひと塊と考えた場合の、それぞれ符号長、情報長、およびパリティ数を表す。
このパリティ検査行列HQCIRA1は、10(行)×25(列)の元で構成される。また、パリティ検査行列HQCIRA1は、情報長k(15)の元で構成される情報部101、および、符号長n−情報長k(10)の元で構成されるパリティ部102からなる。したがって、IRA型準巡回符号の復号にあたっては、情報部101は、IRA型準巡回符号の情報ビットと乗算され、パリティ部102は、IRA型準巡回符号のパリティビットと乗算される。
情報部101は、それぞれ5(行)×5(列)の元からなる巡回正方行列である行列HI11,行列HI12,行列HI13,行列HI21,行列HI22,および行列HI23(行列HIxy(1≦x≦2),(1≦y≦3))を要素とする2(行)×3(列)の準巡回行列で構成される。すなわち、情報部101は、l(行)×k0(列)の準巡回行列で構成される。
情報部101の行列HI11は、第1行目が「11000」であり、第2行目が「01100」であり、第3行目が「00110」であり、第4行目が「00011」であり、第5行目が「10001」である5×5の巡回正方行列である。情報部101の行列HI12は、第1行目が「10100」であり、第2行目が「01010」であり、第3行目が「00101」であり、第4行目が「10010」であり、第5行目が「01001」である5×5の巡回正方行列である。情報部101の行列HI13は、第1行目が「11100」であり、第2行目が「01110」であり、第3行目が「00111」であり、第4行目が「10011」であり、第5行目が「11001」である5×5の巡回正方行列である。
情報部101の行列HI21は、第1行目が「10110」であり、第2行目が「01011」であり、第3行目が「10101」であり、第4行目が「11010」であり、第5行目が「01101」である5×5の巡回正方行列である。情報部101の行列HI22は、第1行目が「01100」であり、第2行目が「00110」であり、第3行目が「00011」であり、第4行目が「10001」であり、第5行目が「11000」である5×5の巡回正方行列である。情報部101の行列HI23は、第1行目が「01000」であり、第2行目が「00100」であり、第3行目が「00010」であり、第4行目が「00001」であり、第5行目が「10000」である5×5の巡回正方行列である。
したがって、準巡回行列としての情報部101の第1行目(以下、適宜、上ブロックとも称する)の行列HI1y(1≦y≦3)における各行は、7個の“1”と、8個の“0”で構成されており、それぞれの行列HI1yにおいて、各行は、直上の行における各値の位置を1つ右に移動(シフト)させて表される。準巡回行列としての情報部101の第2行目(以下、適宜、下ブロックとも称する)の行列HI2y(1≦y≦3)における各行は、6個の“1”と、9個の“0”で構成されており、それぞれの行列HI2yにおいて、各行は、直上の行における各値の位置を1つ右に移動(シフト)させて表される。すなわち、情報部101のそれぞれの行列HIxyの各行の値は、直上の行の値を次々に巡回するようにそれぞれ構成されている。
一方、パリティ部102は、非零元(図5の例の場合、“1”)が階段状に並び、残りを零元“0”が埋めている10(行)×10(列)の正方行列である行列HPで構成される。パリティ部102の行列HPは、第1行目が「1000000000」であり、第2行目が「1100000000」であり、第3行目が「0110000000」であり、第4行目が「0011000000」であり、第5行目が「0001100000」であり、第6行目が「0000110000」であり、第7行目が「0000011000」であり、第8行目が「0000001100」であり、第9行目が「0000000110」であり、第10行目が「0000000011」である10×10の正方行列である。この行列HPは、各行の2個の“1”を1つずつ右側に移動(シフト)して表すことができる行列となっており、階段状の構造を有している(ただし、第1行目のみ、1個の“1”)。
以上のように、IRA型準巡回符号のパリティ検査行列HQCIRA1は、IRA符号のパリティ検査行列のように、零元および非零元が任意に並んだ情報部101と、非零元が階段状に並び、残りを零元が埋めているパリティ部102を有しており、さらに、このパリティ検査行列HQCIRA1の情報部101は、準巡回符号のパリティ検査行列のように、巡回行列を要素として構成される。
ここで、IRA型準巡回符号への符号化を行う符号化装置は、パリティ検査行列Hの転地行列HTとの間に、式GHT=0が成立する生成行列Gを算出し、その生成行列Gに対して情報語を乗算して、符号語cを生成することにより、IRA型準巡回符号の符号化を行う。したがって、符号化装置は、パリティ検査行列Hとの間に、式HcT=0(上付きのTは、転置を表す)が成立する符号語cを求めることにより、情報のIRA型準巡回符号の符号化を行うことができる。
したがって、符号化装置では、パリティ検査行列Hの各行の“1”のある位置に対応する符号語cのF2上の和が0になる符号語cを生成すればよい。具体的には、図5のパリティ検査行列HQCIRA1の第1行目は、情報部101に、7個の“1”があり、パリティ部102の1列目(情報部101の先頭列から16列目)に“1”がある。したがって、符号化装置は、第1行目の情報部101の“1”のある位置に対応する符号語cの値、すなわち、符号語cの15ビットからなる情報の値(情報ビット)のうち、情報部101の“1”のある位置に対応するすべての情報ビット(7個の情報ビット)のF2上の和(排他的論理和)を演算し、その値を符号語cの16ビット目のパリティとすることにより、第1行目の“1”のある位置に対応する符号語cの値のF2上の和が0になるようにすることができる。
例えば、第1行目の情報部101の“1”のある位置に対応する7個の情報ビットのF2上の和が、“1”であった場合、符号化装置は、符号語cの16ビット目のパリティを“1”にする。この場合、第1行目の情報部101の“1”のある位置に対応する7個の情報ビットのF2上の和が、“1”であり、符号語cの16ビット目のパリティが“1”であるので、パリティ検査行列HQCIRA1の第1行目の“1”のある位置に対応する符号語cの値のF2上の和は0になる。
パリティ検査行列HQCIRA1の第2行目は、情報部101に、7個の“1”があり、パリティ部102の1列目と2列目(情報部101の先頭列から16列目と17列目)に“1”がある。したがって、符号化装置は、第2行目の情報部101の“1”のある位置に対応する7個の情報ビットと、第1行目の演算で既に求められた符号語cの16ビット目のパリティの値のF2上の和を演算し、その値を符号語cの17ビット目のパリティとすることにより、第2行目の“1”のある位置に対応する符号語cの値のF2上の和が0になるようにすることができる。
例えば、第2行目の情報部101の“1”のある位置に対応する7個の情報ビットのF2上の和が、“0”であり、符号語cの16ビット目のパリティの値が“1”であった場合、符号化装置は、符号語cの17ビット目のパリティを“1”にする。この場合、第1行目の情報部101の“1”のある位置に対応する7個の情報ビットのF2上の和が、“0”であり、符号語cの16ビット目のパリティが“1”、17ビット目のパリティが“1”であるので、パリティ検査行列HQCIRA1の第2行目の“1”のある位置に対応する符号語cの値のF2上の和は0になる。
符号化装置は、パリティ検査行列HQCIRA1の第3行目乃至第5行目においても、第2行目と同様に、パリティ検査行列HQCIRA1の行毎の“1”のある位置に対応する7個の情報ビットと、直前に求められたパリティビットのF2上の和を演算することにより、パリティ(ビット)を1つずつ求める。また、符号化装置は、パリティ検査行列HQCIRA1の第6行目乃至第10行目においては、パリティ検査行列HQCIRA1の行毎の“1”のある位置に対応する6個の情報ビットと、直前に求められたパリティビットのF2上の和を演算することにより、パリティ(ビット)を1つずつ求める。これにより、符号化装置においては、最終的に、10ビットのパリティが求まる。したがって、符号化装置は、15ビットの情報ビットと、10ビットのパリティビットとを合わせて、25ビットの符号語cを生成することにより、パリティ検査行列HQCIRA1を用いて、情報のIRA型準巡回符号化することができる。
さらに、パリティ検査行列HQCIRA1において、情報部101の“1”のある位置は、図2を用いて上述した従来のIRA符号のパリティ検査行列と異なり、ランダムではなく、各行列HIxyにおいて、直上の行における各値の位置を1つ右に移動(シフト)させて表すことができる。すなわち、情報部101のそれぞれの行の“1”のある位置に対応する情報は、準巡回符号の符号化装置と同様に、シフトレジスタを用いて、簡単に求めることができる。
以上のように、この符号化装置においては、シフトレジスタを用いて、パリティ検査行列の情報部の非零元に対応する情報のF2上の和が求められ、その情報のF2上の和と、直前に求められたパリティを用いて、F2上の和(排他的論理和)を演算することにより、新たなパリティを求めることができる。
図6は、本発明を適用した符号化装置121の構成例を表す。符号化装置121は、図5のパリティ検査行列HQCIRA1に従って、入力されるデータ(情報ビット)をIRA型準巡回符号化し、符号ビットとして出力する処理を行う。パリティ検査行列HQCIRA1の情報部101のHIxyの第i行(1≦i≦15)に対応する情報ビットをmiとし、符号化装置121から出力される符号ビットをci(1≦i≦25)とする。符号化装置121には、時刻1乃至15で、情報ビットm1,m2,m3,…,m15が入力される。
図6の例において、制御部131は、内蔵するクロックに基づいて、計時動作を行い、パリティ検査行列HQCIRA1に従って、スイッチ133,136および138を所定の端子に設定する(切り替える)制御を行う。具体的には、制御部131は、時刻t1乃至時刻t15のとき、スイッチ133をD端子に設定し、入力される情報ビットm1,m2,m3,…,m15を、各レジスタ134−1乃至134−15に格納させるとともに、スイッチ138をD端子に設定し、入力される情報ビットm1,m2,m3,…,m15を、そのまま符号ビットc1=m1,c2=m2,c3=m3,…,c15=m15として後段に出力させる。
また、制御部131は、時刻t16乃至時刻t25で、スイッチ133をP端子に設定し、レジスタ134−1乃至134−15に格納されている情報ビットmiを巡回させるとともに、スイッチ138をP端子に設定し、符号化装置121内で演算された結果であるパリティビットを、符号ビットc16,c17,c18,…,c25として後段に出力させる。さらに、制御部131は、時刻t16乃至時刻t20で、スイッチ136をA1端子に設定し、加算器135−1からの演算結果を演算器141に供給させ、時刻t21乃至時刻t25で、スイッチ136をA2端子に設定し、加算器135−2からの演算結果を演算器141に供給させる。
セパレータ132は、シリアルに入力される情報ビットmiを、各情報ビットmiが対応するレジスタ134−1乃至134−15に格納されるように、k0本(すなわち、3本)のパラレルに分配し、分配された情報ビットmiを、スイッチ133に供給する。具体的には、セパレータ132は、情報ビットm1,m2,m3,m4,m5が、レジスタ134−1乃至134−5に格納されるように、情報ビットm6,m7,m8,m9,m10が、レジスタ134−6乃至134−10に格納されるように、情報ビットm11,m12,m13,m14,m15が、レジスタ134−11乃至134−15に格納されるように、情報ビットmiを3本のパラレルに分配する。
スイッチ133は、レジスタ134−1乃至134−5が接続されるスイッチ133−1、レジスタ134−6乃至134−10が接続されるスイッチ133−2、および、レジスタ134−11乃至134−15が接続されるスイッチ133−3により構成される。スイッチ133−1乃至133−3は、P端子とD端子を有しており、制御部131の制御により、P端子とD端子のうちの一方に設定される。スイッチ133−1乃至133−3は、制御部131の制御により、D端子に設定されると、セパレータ132からの情報ビットmiを、各レジスタ134−1乃至134−15に格納し、P端子に設定されると、レジスタ134−1乃至134−15に格納された情報ビットmiを、3個の各ループで巡回させる。
すなわち、スイッチ133−1は、制御部131の制御により、D端子に設定されると、セパレータ132からの情報ビットm1,m2,m3,m4,m5を、各レジスタ134−1乃至134−5に格納し、P端子に設定されると、レジスタ134−1乃至134−5に格納された情報ビットを、レジスタ134−1乃至134−5のループで巡回させる。スイッチ133−2は、制御部131の制御により、D端子に設定されると、セパレータ132からの情報ビットm6,m7,m8,m9,m10を、それぞれのレジスタ134−6乃至134−10に格納し、P端子に設定されると、レジスタ134−6乃至134−10に格納された情報ビットを、レジスタ134−6乃至134−10のループで巡回させる。スイッチ133−3は、制御部131の制御により、D端子に設定されると、セパレータ132からの情報ビットm11,m12,m13,m14,m15を、それぞれのレジスタ134−11乃至134−15に格納し、P端子に設定されると、レジスタ134−11乃至134−15に格納された情報ビットを、レジスタ134−11乃至134−15のループで巡回させる。
レジスタ134−1乃至134−15は、入力される情報(ビット)と同じ数のシフトレジスタにより構成され、入力される情報ビットmiを格納する。レジスタ134−1乃至134−15は、k0個(すなわち、3個)のループが繰り返されるように、それぞれm台(すなわち、5台)ずつ、レジスタ134−1乃至134−5、レジスタ134−6乃至134−10、およびレジスタ134−11乃至134−15として接続されて構成されている。
加算器135−1および135−2(これらを個々に区別する必要がない場合、加算器135と称する)は、パリティ検査行列HQCIRA1の情報部101の各行の非零元に応じた値が入力されるように予め設定されている。したがって、加算器135−1には、パリティ検査行列HQCIRA1の情報部101の上ブロック(HI1y(1≦y≦3))の各行の非零元に応じた値として、レジスタ134−1,134−2,134−6,134−8,134−11,134−12,および134−13から7つの値が入力される。一方、加算器135−2には、パリティ検査行列HQCIRA1の情報部101の下ブロック(HI2y(1≦y≦3))の各行の非零元に応じた値として、レジスタ134−1,134−3,134−4,134−7,134−8,および134−12から6つの値が入力される。
加算器135−1および135−2は、各行の非零元に応じた値が入力されると、入力された値のF2上の和を演算する。なお、符号化装置121においては、加算器135は、l=n0−k0(いまの場合、2)個設けられる。すなわち、加算器135は、行列を要素とした場合の、パリティ検査行列HQCIRA1の情報部101の行数分設けられる。
スイッチ136は、加算器135−1に接続されるA1端子、加算器135−2に接続されるA2端子を有しており、制御部131の制御により、設定された端子に接続される加算器135の加算(演算)結果である、情報部101の各行の非零元に応じた値のF2上の和を、アキュムレータ137に供給する。なお、スイッチ136のA1端子も、加算器135の数(l=n0−k0)だけ設けられる。
アキュムレータ137は、演算器141およびレジスタ142により構成される。演算器141は、スイッチ136からの演算結果と、レジスタ142に記憶されている直前に求められたパリティビットのF2上の和を演算することにより、IRA型準巡回符号のパリティ(ビット)を求め、求められたパリティビットをレジスタ142に供給する。レジスタ142は、シフトレジスタなどにより構成され、演算器141からのパリティビットを格納し、格納されるパリティビットを、演算器141に供給するともに、P端子を選択しているスイッチ138を介して、符号ビットc16,c17,c18,…,c25として後段に出力する。
スイッチ138は、制御部131の制御により、P端子に設定されると、入力される情報ビットmiを、符号ビットciとして後段に出力し、制御部131の制御により、D端子に設定されると、アキュムレータ137からのパリティビットを、そのまま、符号ビットciとして後段に出力する。
次に、図7のフローチャートを参照して、符号化装置121の符号化処理を詳しく説明する。パリティ検査行列HQCIRA1の情報部101のHIxyの第i行(1≦i≦15)に対応する情報ビットをmiとし、符号化装置121から出力される符号ビットをci(1≦i≦25)とする。セパレータ132には、時刻t1乃至時刻t15で、情報ビットm1,m2,m3,…,m15が入力される。
ステップS11において、制御部131は、スイッチ133をD端子に設定し、入力される情報ビットm1,m2,m3,…,m15を、各レジスタ134−1乃至134−15に格納させるとともに、スイッチ138をD端子に設定し、入力される情報ビットm1,m2,m3,…,m15を、符号ビットc1=m1,c2=m2,c3=m3,…,c15=m15として後段に出力させ、ステップS12に進む。
具体的には、時間t1乃至時間t15において、スイッチ133−1がD端子に設定されると、セパレータ132からの情報ビットm1,m2,m3,m4,およびm5は、順に、各レジスタ134−1乃至134−5に格納され、スイッチ133−2がD端子に設定されると、セパレータ132からの情報ビットm6,m7,m8,m9,およびm10は、順に、各レジスタ134−6乃至134−10に格納され、スイッチ133−3がD端子に設定されると、セパレータ132からの情報ビットm11,m12,m13,m14,およびm15は、順に、各レジスタ134−11乃至134−15に格納される。そして、スイッチ138は、制御部131の制御により、D端子に設定されるので、入力される情報ビットm1,m2,m3,…,m15を、そのまま符号ビットc1=m1,c2=m2,c3=m3,…,c15=m15として、後段に出力する。
制御部131は、内蔵するクロックに基づいて、時刻t16になったと判定すると、ステップS12において、スイッチ133および138をP端子に設定させ、スイッチ136を、パリティ検査行列HQCIRA1に応じた設定にさせ、ステップS13に進む。これにより、ステップS2においては、加算器135にパリティ検査行列HQCIRA1に応じた値が入力され、入力された値のF2上の和(排他的論理和)が加算器135により演算され、その加算結果が、演算器141に供給される。
ステップS12の処理を具体的に説明する。制御部131は、時刻t16で、各レジスタ134−1乃至134−15に格納された情報ビットmiの巡回を開始させる。スイッチ133−1がP端子に設定されると、レジスタ134−1乃至134−5に格納された情報ビットm1,m2,m3,m4,およびm5は、レジスタ134−1乃至134−5のループで巡回し始める。スイッチ133−2がP端子に設定されると、レジスタ134−6乃至134−10に格納された情報ビットm6,m7,m8,m9,およびm10は、レジスタ134−6乃至134−10のループで巡回し始める。スイッチ133−2がP端子に設定されると、レジスタ134−11乃至134−15に格納された情報ビットm11,m12,m13,m14,およびm15は、レジスタ134−11乃至134−15のループで巡回し始める。
加算器135は、パリティ検査行列HQCIRA1に応じた値、すなわち、パリティ検査行列HQCIRA1の情報部101の各行の非零元に応じた値が入力されるように予め設定されている。したがって、各ループが巡回し始めると、加算器135−1には、レジスタ134−1,134−2,134−6,134−8,134−11,134−12,および134−13に格納されている7つの情報の値(情報ビット)が入力され、加算器135−2には、レジスタ134−1,134−3,134−4,134−7,134−8,および134−12から6つの情報の値が入力される。
また、制御部131は、パリティ検査行列HQCIRA1の情報部101の各行に応じて、時刻t16乃至時刻t20において、スイッチ136をA1端子に設定し、加算器135−1からの演算結果を、演算器141に供給させ、時刻t21乃至時刻t25において、スイッチ136をA2端子に設定し、加算器135−2からの演算結果を、演算器141に供給させる。
以上により、例えば、時刻t16において、パリティ検査行列HQCIRA1の情報部101の第1行目に対応する値(m1,m2,m6,m8,m11,m12,およびm13)が、加算器135−1に入力され、加算器135−1は、入力されたパリティ検査行列HQCIRA1の情報部101の第1行目に対応する値のF2上の和を演算する。このとき、スイッチ136がA1端子に設定されているので、加算器135−1により演算された第1行目の演算結果(すなわち、パリティ検査行列HQCIRA1の情報部101の第1行目の非零元に応じた値のF2上の和)は、スイッチ136を介して演算器141に供給される。
例えば、時刻t17において、パリティ検査行列HQCIRA1の情報部101の第2行目に対応する値(m2,m3,m7,m9,m12,m13,およびm14)が加算器135−1に入力され、加算器135−1は、入力されたパリティ検査行列HQCIRA1の情報部101の第2行目に対応する値のF2上の和を演算する。このとき、スイッチ136がA1端子に設定されているので、加算器135−1により演算された第2行目の演算結果は、スイッチ136を介して、演算器141に供給される。
時刻t18乃至時刻t20においても、時刻t16および時刻t17の場合と同様な処理がそれぞれ実行される。すなわち、加算器135−1により、入力されたパリティ検査行列HQCIRA1の情報部101の対象行(処理の対象となる行)に対応する値のF2上の和が演算され、演算された対象行の演算結果は、演算器141に供給される。
さらに、例えば、時刻t21において、パリティ検査行列HQCIRA1の情報部101の第6行目に対応する値(m1,m3,m4,m7,m8,およびm12)が加算器135−2に入力され、加算器135−2は、入力されたパリティ検査行列HQCIRA1の情報部101の第6行目に対応する値のF2上の和を演算する。このとき、スイッチ136がA2端子に設定されているので、加算器135−2により演算された第6行目の演算結果は、スイッチ136を介して、演算器141に供給される。
例えば、時刻t22において、パリティ検査行列HQCIRA1の情報部101の第7行目に対応する値(m2,m4,m5,m8,m9,およびm13)が加算器135−2に入力され、加算器135−2は、入力されたパリティ検査行列HQCIRA1の情報部101の第7行目に対応する値のF2上の和を演算する。このとき、スイッチ136がA2端子に設定されているので、加算器135−2により演算された第7行目の演算結果は、スイッチ136を介して、演算器141に供給される。
時刻t23乃至時刻t25においても、時刻t21および時刻t22の場合と同様な処理が実行され、加算器135−2により、入力されたパリティ検査行列HQCIRA1の情報部101の対象行に対応する値のF2上の和が演算され、演算された対象行の演算結果は、スイッチ136を介して、演算器141に供給される。
以上のように、ステップS12において、加算器135−1または135−2から、パリティ検査行列HQCIRA1の情報部101の対象行の非零元に対応する値のF2上の和が、演算器141に供給され、処理は、ステップS13に進む。
ステップS13において、レジスタ142は、後述するステップS15において格納したパリティビットを、演算器141に供給し、ステップS14に進む。なお、符号化処理の開始時には、レジスタ142に、初期値として、“0”が格納される。したがって、最初のステップS13の処理においては、レジスタ142は、“0”を演算器141に供給する。
ステップS14において、演算器141は、加算器135−1または135−2から供給されるパリティ検査行列HQCIRA1の情報部101の対象行の演算結果と、レジスタ142に格納されたパリティビットとのF2上の和を演算することにより、新たなパリティ(ビット)を求め、求められたパリティビットを、レジスタ142に供給し、ステップS15に進む。レジスタ142は、ステップS15において、供給されたパリティビットを格納し、ステップS16に進み、供給されたパリティビットを、P端子が選択されているスイッチ138を介して、符号ビットciとして後段に出力し、ステップS17に進む。
ステップS17において、制御部131は、内蔵するクロックに基づいて、時刻t25になり、すべての符号ビットciを出力したか否かを判断し、まだ、時刻t25になっておらず、すべての符号ビットciを出力していないと判断した場合、ステップS12に戻り、それ以降の処理を繰り返す。ステップS17において、制御部131は、時刻t25であり、すべての符号ビットciを出力したと判断した場合、符号化処理を終了する。
これにより、符号ビットは、符号ビットc16,c17,c18,c19,c20,c21,22,c23,c24,25の順で後段に出力される。すなわち、符号化装置121においては、最終的に、10ビットのパリティが求められ、15ビットの情報ビットと、10ビットのパリティビットとを合わせて、25ビットのIRA型準巡回符号が生成される。以上のようにして、符号化装置121においては、パリティ検査行列HQCIRA1を用いて、情報がIRA型準巡回符号化される。
以上のように、パリティ検査行列HQCIRA1の情報部101が準巡回行列で表され、シフトレジスタを用いて、パリティ検査行列HQCIRA1の情報部101の各行の非零元に応じた値の和が簡単に求められるので、求められた各行の非零元に応じた値の和と、その直前に求められたパリティビットのみを用いて、F2上の和(排他的論理和)を演算することにより、新たなパリティビットを求めることができる。
したがって、従来のように高価なランダムインタリーバを用いることなく、符号化装置121のように、簡単なシフトレジスタを用いて、コストを上げることなく、簡単な構成の符号化装置を実現することができる。
図8は、本発明を適用したIRA型準巡回符号の符号化に用いられるパリティ検査行列HQCIRA2の例を示している。図8のパリティ検査行列HQCIRA2は、図5のパリティ検査行列HQCIRA1の他の例であるため、その詳細な説明は繰り返しになるので、適宜省略する。なお、以下、有限体を、有限体Fq(q=ps,p:素数,s:自然数)上として説明する。
図8の例において、パリティ検査行列HQCIRA2は、情報長k=15の情報を、符号長n=25の、巡回正方行列のサイズm,符号長n=n0×m,情報長k=k0×m,l:=(符号長n−情報長k)/m=n0−k0(図8の例の場合、n=25,k=15,m=5,n0=5,k0=3,l=2)で表されるIRA型準巡回符号に符号化するためのパリティ検査行列である。なお、パリティ検査行列HQCIRA2において、a,b,c,d,e,f,g,h,i,j,o,p,r,s,t∈Fqであり、hは、可逆元(h・h-1=0)であるとする。
このパリティ検査行列HQCIRA2は、10(行)×25(列)の元で構成される。また、パリティ検査行列HQCIRA2は、情報長k(15)の元で構成される情報部201、および、符号長n−情報長k(10)の元で構成されるパリティ部202からなる。情報部201は、それぞれ5(行)×5(列)の元からなる巡回正方行列である行列HI11,行列HI12,行列HI13,行列HI21,行列HI22,および行列HI23(行列HIxy(1≦x≦2),(1≦y≦3))を要素とする2(行)×3(列)の準巡回行列で構成される。
情報部201の行列HI11は、第1行目が「ab000」であり、第2行目が「0ab00」であり、第3行目が「00ab0」であり、第4行目が「000ab」であり、第5行目が「b000a」である5×5の巡回正方行列である。情報部201の行列HI12は、第1行目が「c0d00」であり、第2行目が「0c0d0」であり、第3行目が「00c0d」であり、第4行目が「d00c0」であり、第5行目が「0d00c」である5×5の巡回正方行列である。情報部201の行列HI13は、第1行目が「efg00」であり、第2行目が「0efg0」であり、第3行目が「00efg」であり、第4行目が「g00ef」であり、第5行目が「fg00e」である5×5の巡回正方行列である。
情報部201の行列HI21は、第1行目が「j0op0」であり、第2行目が「0j0op」であり、第3行目が「p0j0o」であり、第4行目が「op0j0」であり、第5行目が「0op0j」である5×5の巡回正方行列である。情報部201の行列HI22は、第1行目が「0rs00」であり、第2行目が「00rs0」であり、第3行目が「000rs」であり、第4行目が「s000r」であり、第5行目が「rs000」である5×5の巡回正方行列である。情報部201の行列HI23は、第1行目が「0t000」であり、第2行目が「00t00」であり、第3行目が「000t0」であり、第4行目が「0000t」であり、第5行目が「t0000」である5×5の巡回正方行列である。
したがって、情報部201の上ブロック(行列HI1y(1≦y≦3))の各行は、7個の非零元と、8個の零元“0”で構成されており、各行列HI1yにおいて、各行は、直上の行における各値の位置を1つ右に移動(シフト)させて表される。情報部201の下ブロック(行列HI2y(1≦y≦3))の各行は、6個の非零元と、9個の零元“0”で構成されており、行列HI2yにおいて、各行は、各直上の行における各値の位置を1つ右に移動(シフト)させて表される。すなわち、情報部201の各行列HIxyの各行の値は、直上の行の値を次々に巡回するようにそれぞれ構成されている。
一方、パリティ部202は、非零元(図8の例の場合、“h”および“i”)が階段状に並び、残りを零元“0”が埋めている10(行)×10(列)の正方行列である行列HPで構成される。パリティ部202の行列HPは、第1行目が「h000000000」であり、第2行目が「ih00000000」であり、第3行目が「0ih0000000」であり、第4行目が「00ih000000」であり、第5行目が「000ih00000」であり、第6行目が「0000ih0000」であり、第7行目が「00000ih000」であり、第8行目が「000000ih00」であり、第9行目が「0000000ih0」であり、第10行目が「00000000ih」である10×10の正方行列である。この行列HPは、各行の “h”および“i”を1つずつ右側に移動(シフト)して表すことができる行列となっており、階段状の構造を有している(ただし、第1行目のみ、1個の“h”)。
以上のように、IRA型準巡回符号のパリティ検査行列HQCIRA2は、IRA符号のパリティ検査行列のように、零元および非零元が任意に並んだ情報部201と、非零元が階段状に並び、残りを零元が埋めているパリティ部202を有しており、さらに、パリティ検査行列HQCIRA2の情報部201は、準巡回符号のパリティ検査行列のように、巡回行列を要素として構成される。
図9は、本発明を適用した符号化装置221の構成例を表す。なお、図9の符号化装置221は、乗算器231−1乃至231−13、および乗算器232が追加されている点、並びに、アキュムレータ137の代わりに、アキュムレータ233が追加されている点を除いて、その他の構成は、上述した図6の符号化装置121と同様の構成であり、その詳細な説明は繰り返しになるので、適宜省略する。
図9の符号化装置221は、図8のパリティ検査行列HQCIRA2に従って、入力されるデータ(情報シンボル)をIRA型準巡回符号化し、符号シンボルとして出力する処理を行う。パリティ検査行列HQCIRA2の情報部201のHIxyの第u行(1≦u≦15)に対応する情報シンボルをmuとし、符号化装置221から出力される符号シンボルをcu(1≦u≦25)とする。符号化装置221には、時刻t1乃至時刻t15で、情報シンボルm1,m2,m3,…,m15が入力される。
図9の例においては、制御部131は、内蔵するクロックに基づいて、計時動作を行い、パリティ検査行列HQCIRA2に従って、スイッチ133,136および138を所定の端子に設定する(切り替える)制御を行う。セパレータ132は、シリアルに入力される情報シンボルmuを、各情報シンボルmuが対応するレジスタ134−1乃至134−15に格納されるように、3本のパラレルに分配し、分配された情報シンボルmuを、スイッチ133に供給する。
スイッチ133−1乃至133−3は、制御部131の制御により、D端子に設定されると、セパレータ132からの情報シンボルmuを、各レジスタ134−1乃至134−15に格納し、P端子に設定されると、レジスタ134−1乃至134−15に格納された情報シンボルmuを、3個の各ループで巡回させる。レジスタ134−1乃至134−15は、シフトレジスタにより構成され、入力される情報シンボルmuを格納する。レジスタ134−1乃至134−15は、3個のループが繰り返されるように、5台ずつ、レジスタ134−1乃至134−5、レジスタ134−6乃至134−10、およびレジスタ134−11乃至134−15として接続されて構成されている。
加算器135−1および135−2は、パリティ検査行列HQCIRA2の情報部201の各行の非零元に応じた値が入力されるように、各レジスタ134−1乃至134−15との接続と、その接続の間に設けられる乗算器231−1乃至231−13が予め設定されている。なお、乗算器231−1乃至231−13の数は、情報部201の非零元の数により求められる。
具体的には、乗算器231−1は、レジスタ134−1と加算器135−1の間に設けられ、レジスタ134−1からの情報シンボルmuを“a”倍する。乗算器231−2は、レジスタ134−6と加算器135−1の間に設けられ、レジスタ134−6からの情報シンボルmuを“c”倍する。乗算器231−3は、レジスタ134−11と加算器135−1の間に設けられ、レジスタ134−11からの情報シンボルmuを“e”倍する。乗算器231−4は、レジスタ134−1と加算器135−2の間に設けられ、レジスタ134−11からの情報シンボルmuを“j”倍する。乗算器231−5は、レジスタ134−2と加算器135−1の間に設けられ、レジスタ134−2からの情報シンボルmuを“b”倍する。乗算器231−6は、レジスタ134−12と加算器135−1の間に設けられ、レジスタ134−12からの情報シンボルmuを“f”倍する。乗算器231−7は、レジスタ134−7と加算器135−2の間に設けられ、レジスタ134−7からの情報シンボルmuを“r”倍する。
乗算器231−8は、レジスタ134−12と加算器135−2の間に設けられ、レジスタ134−12からの情報シンボルmuを“t”倍する。乗算器231−9は、レジスタ134−8と加算器135−1の間に設けられ、レジスタ134−8からの情報シンボmuルを“d”倍する。乗算器231−10は、レジスタ134−13と加算器135−1の間に設けられ、レジスタ134−13からの情報シンボルmuを“g”倍する。乗算器231−11は、レジスタ134−3と加算器135−2の間に設けられ、レジスタ134−3からの情報シンボルmuを“o”倍する。乗算器231−12は、レジスタ134−8と加算器135−2の間に設けられ、レジスタ134−8からの情報シンボルmuを“s”倍する。乗算器231−13は、レジスタ134−4と加算器135−2の間に設けられ、レジスタ134−4からの情報シンボルmuを“p”倍する。
したがって、加算器135−1には、パリティ検査行列HQCIRA2の情報部201の上ブロック(HI1y(1≦y≦3))の各行の非零元に応じた値として、レジスタ134−1からの情報シンボルmuが、乗算器231−1により“a”倍された値、レジスタ134−2からの情報シンボルmuが、乗算器231−5により“b”倍された値、レジスタ134−6からの情報シンボルmuが、乗算器231−2により“c”倍された値、レジスタ134−8からの情報シンボルmuが、乗算器231−9により“d”倍された値、レジスタ134−11の情報シンボルmuが、乗算器231−3により“e”倍された値、レジスタ134−12の情報シンボルmuが、乗算器231−6により“f”倍された値、および、レジスタ134−13からの情報シンボルmuが、乗算器231−10により“g”倍された値が入力される。
一方、加算器135−2には、パリティ検査行列HQCIRA2の情報部201の下ブロック(HI2y(1≦y≦3))の各行の非零元に応じた値として、レジスタ134−1からの情報シンボルmuが、乗算器231−4により“j”倍された値、レジスタ134−3からの情報シンボルmuが、乗算器231−11により“o”倍された値、レジスタ134−4からの情報シンボルmuが、乗算器231−13により“p 倍された値、レジスタ134−7からの情報シンボルmuが、乗算器231−7により“r”倍された値、レジスタ134−8の情報シンボルmuが、乗算器231−12により“s”倍された値、および、レジスタ134−12からの情報シンボルmuが、乗算器231−8により“t”倍された値が入力される。
加算器135−1および135−2は、各行の非零元に応じた値が入力されると、入力された値のFq上の和を演算する。スイッチ136は、加算器135−1に接続されるA1端子、加算器135−2に接続されるA2端子を有しており、制御部131の制御により、設定された端子に接続される加算器135の演算結果である、各行の非零元に応じた値の和を、乗算器232を介して、アキュムレータ233に出力する。乗算器232は、スイッチ136とアキュムレータ233の間に設けられ、スイッチ136からのパリティを、“−h-1”倍し、“−h-1”倍された演算結果を、アキュムレータ233に供給する。
アキュムレータ233は、演算器141、レジスタ142、および乗算器241により構成される。演算器141は、乗算器232からの“−h-1”倍された演算結果と、レジスタ142からのパリティに乗算器241により“i”倍された値とのFq上の和を演算することにより、新たなパリティ(シンボル)を求め、求められたパリティシンボルを、レジスタ142に供給する。レジスタ142は、シフトレジスタなどにより構成され、演算器141からのパリティシンボルを格納し、格納されるパリティシンボルを、乗算器241を介して、演算器141に供給するともに、P端子を選択しているスイッチ138を介して、符号シンボルc16,c17,c18,…,c25として後段に出力する。乗算器241は、レジスタ142からのパリティを、“i”倍し、“i”倍された値を、演算器141に供給する。
スイッチ138は、制御部131の制御により、P端子に設定されると、入力される情報シンボルmuを、符号シンボルcuとして後段に出力し、制御部131の制御により、D端子に設定されると、アキュムレータ233からのパリティシンボルを、そのまま、符号シンボルcuとして後段に出力する。
次に、図10のフローチャートを参照して、符号化装置221の符号化処理を詳しく説明する。なお、図10のステップS31、およびS35乃至S38は、図7のステップS11、およびS14乃至S17と同様の処理を行うため、その詳細な説明は、繰り返しになるので適宜省略する。
パリティ検査行列HQCIRA2の情報部201のHIxyの第u行(1≦u≦15)に対応する情報シンボルをmuとし、符号化装置121から出力される符号シンボルをcu(1≦u≦25)とする。セパレータ132には、時刻t1乃至時刻t15で、情報シンボルm1,m2,m3,…,m15が入力される。
ステップS31において、制御部131は、スイッチ133をD端子に設定し、入力される情報シンボルm1,m2,m3,…,m15を、各レジスタ134−1乃至134−15に格納させるとともに、スイッチ138をD端子に設定し、入力される情報シンボルm1,m2,m3,…,m15を、符号シンボルc1=m1,c2=m2,c3=m3,…,c15=m15として後段に出力させ、ステップS32に進む。
制御部131は、内蔵するクロックに基づいて、時刻t16になったと判定すると、ステップS32において、スイッチ133および138をP端子に設定させ、スイッチ136を、パリティ検査行列HQCIRA2に応じた設定にさせ、ステップS33に進む。これにより、ステップS32においては、加算器135にパリティ検査行列HQCIRA2に応じた値が入力され、入力された値のF2上の和が加算器135により演算され、その演算(加算)結果が、乗算器232に供給される。
ステップS32の処理を具体的に説明する。制御部131は、各レジスタ134−1乃至134−15に格納された情報シンボルmuの巡回を開始させる。スイッチ133−1がP端子に設定されると、レジスタ134−1乃至134−15に格納された情報シンボルは、図7を参照して上述した3つのループでそれぞれ巡回し始める。
加算器135−1および135−2は、図9を参照して上述したように、パリティ検査行列HQCIRA2の情報部201の各行の非零元に応じた値が入力されるように、各レジスタ134−1乃至134−15との接続と、その接続の間に設けられる乗算器231−1乃至231−13が予め設定されている。したがって、各ループが巡回し始めると、加算器135−1には、パリティ検査行列HQCIRA2の情報部201の上ブロック(HI1y(1≦y≦3))の各行の非零元に応じた値として、レジスタ134−1からの情報シンボルmuが、乗算器231−1により“a”倍された値、レジスタ134−2からの情報シンボルmuが、乗算器231−5により“b”倍された値、レジスタ134−6からの情報シンボルmuが、乗算器231−2により“c”倍された値、レジスタ134−8からの情報シンボルmuが、乗算器231−9により“d”倍された値、レジスタ134−11の情報シンボルmuが、乗算器231−3により“e”倍された値、レジスタ134−12の情報シンボルmuが、乗算器231−6により“f”倍された値、および、レジスタ134−13からの情報シンボルmuが、乗算器231−10により“g”倍された値が入力される。
一方、加算器135−2には、パリティ検査行列HQCIRA2の情報部201の下ブロック(HI2y(1≦y≦3))の各行の非零元に応じた値として、レジスタ134−1からの情報シンボルmuが、乗算器231−4により“j”倍された値、レジスタ134−3からの情報シンボルmuが、乗算器231−11により“o”倍された値、レジスタ134−4からの情報シンボルmuが、乗算器231−13により“p”倍された値、レジスタ134−7からの情報シンボルmuが、乗算器231−7により“r”倍された値、レジスタ134−8の情報シンボルmuが、乗算器231−12により“s”倍された値、および、レジスタ134−12からの情報シンボルmuが、乗算器231−8により“t”倍された値が入力される。
また、制御部131は、パリティ検査行列HQCIRA2の情報部201の各行に応じて、時刻t16乃至時刻t20において、スイッチ136をA1端子に設定し、加算器135−1からの演算結果を、乗算器232に供給させ、時刻t21乃至時刻t25において、スイッチ136をA2端子に設定し、加算器135−2からの演算結果を、乗算器232に供給させる。
以上により、例えば、時刻t16において、パリティ検査行列HQCIRA2の情報部201の第1行目に対応する値(a・m1,b・m2,c・m6,d・m8,e・m11,f・m12,およびg・m13)が、加算器135−1に入力され、加算器135−1は、入力されたパリティ検査行列HQCIRA2の情報部201の第1行目に対応する値のFq上の和を演算する。このとき、スイッチ136がA1端子に設定されているので、加算器135−1により演算された演算結果である、パリティ検査行列HQCIRA2の情報部201の第1行目の非零元の位置に対応する値の和は、スイッチ136を介して、乗算器232に供給される。
例えば、時刻t17において、パリティ検査行列HQCIRA2の情報部201の第2行目に対応する値(a・m2,b・m3,c・m7,d・m9,e・m12,f・m13,およびg・m14)が加算器135−1に入力され、加算器135−1は、入力されたパリティ検査行列HQCIRA2の情報部201の第2行目に対応する値のFq上の和を演算する。このとき、スイッチ136がA1端子に設定されているので、加算器135−1により演算された第2行目の演算結果は、スイッチ136を介して、乗算器232に供給される。
時刻t18乃至時刻t20においても、時刻t16および時刻t17の場合と同様な処理が実行され、加算器135−1により、入力されたパリティ検査行列HQCIRA2の情報部201の対象行に対応する値のFq上の和が演算され、演算された対象行の演算結果は、スイッチ136を介して、乗算器232に供給される。
また、例えば、時刻t21のとき、パリティ検査行列HQCIRA2の情報部201の第6行目に対応する値(j・m1,o・m3,p・m4,r・m7,s・m8,およびt・m12)が加算器135−2に入力され、加算器135−2は、入力されたパリティ検査行列HQCIRA2の情報部201の第6行目に対応する値のFq上の和を演算する。このとき、スイッチ136がA2端子に設定されているので、加算器135−2により演算された第6行目の演算結果は、スイッチ136を介して、乗算器232に供給される。
例えば、時刻t22のとき、パリティ検査行列HQCIRA2の情報部201の第7行目に対応する値(j・m2,o・m4,p・m5,r・m8,s・m9,およびt・m13)が加算器135−2に入力され、加算器135−2は、入力されたパリティ検査行列HQCIRA2の情報部201の第7行目に対応する値のFq上の和を演算する。このとき、スイッチ136がA2端子に設定されているので、加算器135−2により演算された第7行目の演算結果は、スイッチ136を介して、乗算器232に供給される。
時刻t23乃至時刻t25においても、時刻t21および時刻t22の場合と同様な処理が実行され、加算器135−2により、入力されたパリティ検査行列HQCIRA2の情報部201の対象行に対応する値のFq上の和が演算され、演算された対象行の演算結果は、スイッチ136を介して、乗算器232に供給される。
以上のように、ステップS12において、加算器135−1または135−2から、パリティ検査行列HQCIRA2の情報部201の対象行の非零元の位置に対応する値の和が乗算器232に供給され、処理は、ステップS33に進む。
乗算器232は、ステップS33において、加算器135−1または135−2からの演算結果に、“−h-1”倍し、“−h-1”倍された値を、演算器141に供給し、ステップS34に進む。ステップS34において、レジスタ142は、後述するステップS36において格納したパリティシンボルを、乗算器241により“i”倍させ、“i”倍されたパリティシンボルを、演算器141に供給し、ステップS35に進む。
ステップS35において、演算器141は、乗算器232からの“−h-1”倍された対象行のパリティシンボルと、乗算器241により“i”倍されたパリティシンボルとのFq上の和を演算することにより、新たなパリティシンボルを求め、求められたパリティシンボルを、レジスタ142に供給し、ステップS36に進む。レジスタ142は、ステップS36において、供給されたパリティシンボルを格納し、ステップS37に進み、供給されたパリティシンボルを、P端子が選択されているスイッチ138を介して、符号シンボルcuとして後段に出力し、ステップS38に進む。
ステップS38において、制御部131は、内蔵するクロックに基づいて、時刻t25になり、すべての符号シンボルを出力したか否かを判断し、まだ、時刻t25になっておらず、すべての符号シンボルを出力していないと判断した場合、ステップS32に戻り、それ以降の処理を繰り返す。ステップS38において、制御部131は、時刻t25であり、すべての符号シンボルcuを出力したと判断した場合、符号化処理を終了する。
これにより、符号シンボルは、符号シンボルc16,c17,c18,c19,c20,c21,22,c23,c24,25の順で後段に出力される。すなわち、符号化装置221においては、最終的に、10シンボルのパリティが求められ、15シンボルの情報シンボルと、10シンボルのパリティシンボルとを合わせて、25シンボルのIRA型準巡回符号が生成されることにより、パリティ検査行列HQCIRA2を用いて、情報をIRA型準巡回符号の符号化を行うことができる。
以上のように、パリティ検査行列HQCIRA2の情報部201が準巡回行列で表され、シフトレジスタを用いて、パリティ検査行列HQCIRA2の情報部201の各行の非零元の位置に応じた値の和が簡単に求められるので、求められた各行の非零元に応じた値の和と、その直前に求められたパリティシンボルのみを用いて、Fq上の和(排他的論理和)を演算することにより、新たなパリティシンボルを求めることができる。
したがって、従来のように高価なランダムインタリーバを用いることなく、符号化装置221のように、簡単なシフトレジスタを用いて、コストを上げることなく、簡単な構成の符号化装置を実現することができる。
図11は、本発明を適用したIRA型準巡回符号の符号化に用いられるパリティ検査行列HQCIRA3の例を示している。図11のパリティ検査行列HQCIRA3は、図8のパリティ検査行列HQCIRA2の他の例であるため、その詳細な説明は繰り返しになるので、適宜省略する。
図11の例において、パリティ検査行列HQCIRA3は、情報長k=15の情報を、符号長n=25の、巡回正方行列のサイズm,符号長n=n0×m,情報長k=k0×m,l:=(符号長n−情報長k)/m=n0−k0(図11の例の場合、n=25,k=15,m=5,n0=5,k0=3,l=2)で表されるIRA型準巡回符号に符号化するためのパリティ検査行列である。なお、パリティ検査行列HQCIRA3において、a,b,c,d,e,f,g,h,i,j,o,p,r,s,t,z∈Fqであり、hおよびzは、可逆元(h・h-1=z・z-1=0)であるとする。
このパリティ検査行列HQCIRA3は、10(行)×25(列)の元で構成される。また、パリティ検査行列HQCIRA3は、情報長k(15)の元で構成される情報部301、および、符号長n−情報長k(10)の元で構成されるパリティ部302により構成される。情報部301は、図8のパリティ検査行列HQCIRA2の情報部201と同様に構成される。すなわち、情報部301は、それぞれ5(行)×5(列)の巡回正方行列である行列HI11,行列HI12,行列HI13,行列HI21,行列HI22,および行列HI23(行列HIxy(1≦x≦2),(1≦y≦3))を要素とする2(行)×3(列)の準巡回行列で構成される。
したがって、情報部301の上ブロック(行列HI1y(1≦y≦3))の各行は、7個の非零元と、8個の零元“0”で構成されており、各行列HI1yにおいて、各行は、直上の行における各値の位置を1つ右に移動(シフト)させて表される。情報部301の下ブロック(行列HI2y(1≦y≦3))の各行は、6個の非零元と、9個の零元“0”で構成されており、行列HI2yにおいて、各行は、各直上の行における各値の位置を1つ右に移動(シフト)させて表される。すなわち、情報部301の各行列HIxyの各行の値は、直上の行の値を次々に巡回するようにそれぞれ構成されている。
一方、パリティ部302は、IRA符号のパリティ検査行列の性質を維持させつつ、パリティ部302に巡回性を持たせるようにしたものであり、それぞれ5(行)×5(列)の元からなる行列HP11,行列HP12,行列HP21,および行列HP22を要素とする2(行)×2(列)の準巡回行列のような行列で構成される。なお、パリティ検査行列HQCIRA3は、パリティ部302において、h=zとし、行や列の入れ替えを行うことにより、図8のパリティ検査行列HQCIRA2と同じ行列に変更することができる。すなわち、h=zとした場合、パリティ検査行列HQCIRA3は、図8のパリティ検査行列HQCIRA2と同値となる。
パリティ部302の行列HP11は、第1行目が「h0000」であり、第2行目が「0h000」であり、第3行目が「00h00」であり、第4行目が「000h0」であり、第5行目が「0000h」である5×5の巡回正方行列である。パリティ部302の行列HP12は、第1行目が「00000」であり、第2行目が「i0000」であり、第3行目が「0i000」であり、第4行目が「00i00」であり、第5行目が「000i0」である5×5の正方行列である。パリティ部302の行列HP21は、第1行目が「i0000」であり、第2行目が「0i000」であり、第3行目が「00i00」であり、第4行目が「000i0」であり、第5行目が「0000i」である5×5の巡回正方行列である。パリティ部302の行列HP22は、第1行目が「z0000」であり、第2行目が「0z000」であり、第3行目が「00z00」であり、第4行目が「000z0」であり、第5行目が「0000z」である5×5の巡回正方行列である。
行列HP11,行列HP12,行列HP21,および行列HP22において、各行は、各直上の行における各値の位置を1つ右に移動(シフト)させて表される。すなわち、情パリティ部302の各行列HPの各行の値も、直上の行の値を次々に巡回するようにそれぞれ構成されている。
以上のように、IRA型準巡回符号のパリティ検査行列HQCIRA3も、IRA符号のパリティ検査行列のように、零元および非零元が任意に並んだ情報部301と、非零元が階段状に並び、残りを零元が埋めているパリティ部302を有しており、さらに、このパリティ検査行列HQCIRA3の情報部301は、準巡回符号のパリティ検査行列のように、巡回行列を要素として構成され、パリティ検査行列HQCIRA3のパリティ部302は、巡回性を有するように構成されている。
図12は、本発明を適用した符号化装置321の構成例を表す。なお、図12の符号化装置321は、乗算器232が除かれている点、並びに、乗算器331−1および331−2が追加されている点を除いて、その他の構成は、上述した図9の符号化装置221と同様の構成であり、その詳細な説明は繰り返しになるので、適宜省略する。
図12の符号化装置321は、図11のパリティ検査行列HQCIRA3に従って、入力されるデータ(情報シンボル)をIRA型準巡回符号化し、符号シンボルとして出力する処理を行う。パリティ検査行列HQCIRA3の情報部301のHIxyの第u行(1≦u≦15)に対応する情報シンボルをmuとし、符号化装置321から出力される符号シンボルをcu(1≦u≦25)とする。符号化装置321には、時刻t1乃至時刻t15で、情報シンボルm1,m2,m3,…,m15が入力される。
図12の例においては、制御部131は、内蔵するクロックに基づいて、計時動作を行い、パリティ検査行列HQCIRA3に従って、スイッチ133,136および138を所定の端子に設定する(切り替える)制御を行う。具体的には、制御部131は、時刻t1乃至時刻t15のとき、スイッチ133をD端子に設定し、入力される情報シンボルmuを、各レジスタ134−1乃至134−15に格納させるとともに、スイッチ138をD端子に設定し、入力される情報シンボルmuを、そのまま符号シンボルcuとして後段に出力させる。また、制御部131は、時刻t16乃至時刻t25で、スイッチ133をP端子に設定し、レジスタ134−1乃至134−15に格納されている情報シンボルmuを巡回させるとともに、スイッチ138をP端子に設定し、符号化装置321内で演算された結果であるパリティシンボルを、符号シンボルcuとして後段に出力させる。
さらに、制御部131は、時刻t16,t18,t20,t22,および時刻t24で、スイッチ136をA1端子に設定し、加算器135−1からの演算結果を演算器141に供給させ、時刻t17,t19,t21,t23,および時刻t25で、スイッチ136をA2端子に設定し、加算器135−2からの演算結果を演算器141に供給させる。これにより、符号シンボルc16,c21,c17,c22,c18,c23,19,c24,c20,25の順で後段に出力される。
セパレータ132は、シリアルに入力される情報シンボルmuを、各情報シンボルmuが対応するレジスタ134−1乃至134−15に格納されるように、3本のパラレルに分配し、分配された情報シンボルmuを、スイッチ133に供給する。
スイッチ133−1乃至133−3は、制御部131の制御により、D端子に設定されると、セパレータ132からの情報シンボルmuを、各レジスタ134−1乃至134−15に格納し、P端子に設定されると、レジスタ134−1乃至134−15に格納された情報シンボルmuを、3個の各ループで巡回させる。レジスタ134−1乃至134−15は、シフトレジスタにより構成され、入力される情報シンボルmuを格納する。レジスタ134−1乃至134−15は、3個のループが繰り返されるように、それぞれ5台ずつ、レジスタ134−1乃至134−5、レジスタ134−6乃至134−10、およびレジスタ134−11乃至134−15として接続されて構成されている。
加算器135−1および135−2は、パリティ検査行列HQCIRA3の情報部301の各行の非零元に応じた値が入力されるように、各レジスタ134−1乃至134−15との接続と、その接続の間に設けられる乗算器231−1乃至231−13が予め設定されている。なお、乗算器231−1乃至231−13の数は、情報部301の上ブロックおよび下ブロックの非零元の数により求められる。
加算器135−1および135−2は、各行の非零元に応じた値が入力されると、入力された値のFq上の和を演算する。乗算器331−1は、加算器135−1とスイッチ136の間に設けられ、加算器135−1の演算結果を、“−h-1”倍する。乗算器331−2は、加算器135−2とスイッチ136の間に設けられ、加算器135−2の演算結果を、“−z-1”倍する。なお、以下、乗算器331−1および331−2は、特に区別する必要がない場合、単に、乗算器331と称する。
スイッチ136は、乗算器331−1に接続されるA1端子、乗算器331−2に接続されるA2端子を有しており、制御部131の制御により、設定された端子に接続される乗算器331により所定倍された各行の演算結果を、アキュムレータ233に出力する。スイッチ136がA1端子に設定された場合、スイッチ136は、乗算器331−1により“−h-1”倍された各行の演算結果をアキュムレータ233に出力する。スイッチ136がA2端子に設定された場合、スイッチ136は、乗算器331−2により“−z-1”倍された各行の演算結果をアキュムレータ233に出力する。
アキュムレータ233は、演算器141、レジスタ142、および乗算器241により構成される。演算器141は、スイッチ136からの所定倍された演算結果と、レジスタ142からのパリティに乗算器241により“i”倍された値とのFq上の和を演算することにより、新たなパリティ(シンボル)を求め、求められたパリティシンボルを、レジスタ142に供給する。レジスタ142は、シフトレジスタなどにより構成され、演算器141からのパリティシンボルを格納し、格納されるパリティシンボルを、乗算器241を介して、演算器141に供給するともに、P端子を選択しているスイッチ138を介して、符号シンボルc16,c21,c17,c22,c18,c23,19,c24,c20,25として後段に出力する。乗算器241は、レジスタ142からのパリティを、“i”倍し、“i”倍された値を、演算器141に供給する。
次に、図13のフローチャートを参照して、符号化装置521の符号化処理を詳しく説明する。なお、図13のステップS51,およびS54乃至S58は、図11のステップS31,およびS34乃至S38と同様の処理を行うため、その詳細な説明は、繰り返しになるので適宜省略する。
パリティ検査行列HQCIRA3の情報部301のHIxyの第u行(1≦u≦15)に対応する情報シンボルをmuとし、符号化装置521から出力される符号シンボルをcu(1≦u≦25)とする。セパレータ132には、時刻t1乃至時刻t15で、情報シンボルm1,m2,m3,…,m15が入力される。
ステップS51において、制御部131は、スイッチ133をD端子に設定し、入力される情報シンボルm1,m2,m3,…,m15を、各レジスタ134−1乃至134−15に格納させるとともに、スイッチ138をD端子に設定し、入力される情報シンボルm1,m2,m3,…,m15を、符号シンボルc1=m1,c2=m2,c3=m3,…,c15=m15として後段に出力させ、ステップS52に進む。
制御部131は、内蔵するクロックに基づいて、時刻t16になったと判定すると、ステップS52において、スイッチ133および138をP端子に設定させ、ステップS53に進み、スイッチ136を、パリティ検査行列HQCIRA3に応じた設定にさせ、ステップS54に進む。これにより、ステップS52においては、加算器135にパリティ検査行列HQCIRA3に応じた値が入力され、入力された値のFq上の和が加算器135により演算され、その演算結果が、所定の乗算器331に供給される。そして、ステップS53においては、乗算器331により加算器135からの演算結果が所定倍され、所定倍された演算結果が、演算器141に供給される。
ステップS52およびS53処理を具体的に説明する。制御部131は、ステップS52において、各レジスタ134−1乃至134−15に格納された情報シンボルmuの巡回を開始させる。スイッチ133−1がP端子に設定されると、レジスタ134−1乃至134−15に格納された情報シンボルは、図7を参照して上述した3つのループでそれぞれ巡回し始める。
加算器135−1および135−2は、図11を参照して上述したように、パリティ検査行列HQCIRA3の情報部301の各行の非零元に応じた値が入力されるように、各レジスタ134−1乃至134−15との接続と、その接続の間に設けられる乗算器231−1乃至231−13が予め設定されている。したがって、各ループが巡回し始めると、加算器135−1には、パリティ検査行列HQCIRA3の情報部301の上ブロック(HI1y(1≦y≦3))の各行の非零元に応じた値が入力される。加算器135−1は、入力された値のFq上の和を演算し、各行に対応する演算結果を、乗算器331−1に供給する。乗算器331−1は、加算器135−1からの演算結果を、“−h-1”倍する。
一方、加算器135−2には、パリティ検査行列HQCIRA1の情報部101の下ブロック(HI2b(1≦b≦3))の各行の非零元に応じた値が入力される。加算器135−2は、入力された値のFq上の和を演算し、各行に対応する演算結果を、乗算器331−2に供給する。乗算器331−2は、加算器135−2からの演算結果を、“−z-1”倍する。
そして、制御部131は、時刻t16,t18,t20,t22,および時刻t24で、スイッチ136をA1端子に設定し、加算器135−1からの−h-1された演算結果を演算器141に供給させ、時刻t17,t19,t21,t23,および時刻t25で、スイッチ136をA2端子に設定し、加算器135−2からの−z-1された演算結果を演算器141に供給させる。
以上により、例えば、時刻t16において、パリティ検査行列HQCIRA3の情報部301の第1行目に対応する値(a・m1,b・m2,c・m6,d・m8,e・m11,f・m12,およびg・m13)が、加算器135−1に入力され、加算器135−1は、入力されたパリティ検査行列HQCIRA3の情報部301の第1行目に対応する値のFq上の和を演算し、演算結果である、パリティ検査行列HQCIRA3の情報部301の第1行目に対応する値のFq上の和を、乗算器331−1に供給する。乗算器331−1は、加算器135−1からの演算結果を、“−h-1”倍する。このとき、スイッチ136がA1端子に設定されているので、乗算器331−1により“−h-1”倍された情報部301の第1行目の演算結果は、スイッチ136を介して、演算器141に供給される。
例えば、時刻t17において、パリティ検査行列HQCIRA3の情報部301の第6行目に対応する値(j・m1,o・m3,p・m4,r・m7,s・m8,およびt・m12)が加算器135−2に入力され、加算器135−2は、入力されたパリティ検査行列HQCIRA3の情報部301の第6行目に対応する値のFq上の和を演算し、演算結果を、乗算器331−2に供給する。乗算器331−2は、加算器135−2からの演算結果を、“−z-1”倍する。このとき、スイッチ136がA2端子に設定されているので、乗算器331−2により“−z-1”倍された情報部301の第6行目の演算結果は、スイッチ136を介して、演算器141に供給される。
例えば、時刻t18において、パリティ検査行列HQCIRA3の情報部301の第2行目に対応する値(a・m2,b・m3,c・m7,d・m9,e・m12,f・m13,およびg・m14)が加算器135−1に入力され、加算器135−1は、入力されたパリティ検査行列HQCIRA3の情報部301の第2行目に対応する値のFq上の和を演算し、演算結果を、乗算器331−1に供給する。乗算器331−1は、加算器135−1からの演算結果を、“−h-1”倍する。このとき、スイッチ136がA1端子に設定されているので、乗算器331−1により“−h-1”倍された情報部301の第2行目の演算結果は、スイッチ136を介して、演算器141に供給される。
例えば、時刻t19において、パリティ検査行列HQCIRA3の情報部301の第7行目に対応する値(j・m2,o・m4,p・m5,r・m8,s・m9,およびt・m13)が加算器135−2に入力され、加算器135−2は、入力されたパリティ検査行列HQCIRA3の情報部301の第7行目に対応する値のFq上の和を演算し、演算結果を、パリティ検査行列HQCIRA3の情報部301の第7行目の演算結果として、乗算器331−2に供給する。乗算器331−2は、加算器135−2からの演算結果を、“−z-1”倍する。このとき、スイッチ136がA2端子に設定されているので、乗算器331−2により“−z-1”倍された情報部301の第7行目の演算結果は、スイッチ136を介して、演算器141に供給される。
以上のような処理と同様な処理が、時刻t20乃至時刻t25においても実行され、乗算器331−1により“−h-1”倍された情報部301の対象行の演算結果、または、乗算器331−2により“−z-1”倍された情報部301の対象行の演算結果は、スイッチ136を介して、演算器141に供給される。
以上のように、ステップS52およびS53において、加算器135−1または135−2から、パリティ検査行列HQCIRA3の情報部301の対象行の演算結果が、乗算器331−1または331−2を介して、所定倍されて、演算器141に供給され、処理は、ステップS54に進む。
ステップS54において、レジスタ142は、後述するステップS56において格納したパリティシンボルを、乗算器241により“i”倍させ、“i”倍されたパリティシンボルを、演算器141に供給し、ステップS55に進む。
ステップS55において、演算器141は、乗算器232からの所定倍された対象行の演算結果と、乗算器241により“i”倍されたパリティシンボルとのFq上の和を演算することにより、新たなパリティシンボルを求め、求められたパリティシンボルを、レジスタ142に供給し、ステップS56に進む。レジスタ142は、ステップS56において、供給されたパリティシンボルを格納し、ステップS57に進み、供給されたパリティシンボルを、P端子が選択されているスイッチ138を介して、符号シンボルcuとして後段に出力し、ステップS58に進む。
ステップS58において、制御部131は、内蔵するクロックに基づいて、時刻t25になり、すべての符号シンボルcuを出力したか否かを判断し、まだ、時刻t25になっておらず、すべての符号シンボルcuを出力していないと判断した場合、ステップS52に戻り、それ以降の処理を繰り返す。ステップS38において、制御部131は時刻t25になり、すべての符号シンボルcuを出力したと判断した場合、符号化処理を終了する。
これにより、符号シンボルは、符号シンボルc16,c21,c17,c22,c18,c23,19,c24,c20,25の順で後段に出力される。すなわち、符号化装置221においては、最終的に、10シンボルのパリティが求められ、15シンボルの情報シンボルと、10シンボルのパリティシンボルとを合わせて、25シンボルのIRA型準巡回符号が生成される。以上のようにして、符号化装置321においては、パリティ検査行列HQCIRA3を用いて、情報がIRA型準巡回符号化される。
以上のように、パリティ検査行列HQCIRA3の情報部301が準巡回行列で表され、シフトレジスタを用いて、パリティ検査行列HQCIRA3の情報部301の各行の非零元に応じた値の和が簡単に求められるので、求められた各行の非零元に応じた値の和と、その直前に求められたパリティシンボルのみを用いて、Fq上の和(排他的論理和)を演算することにより、新たなパリティシンボルを求めることができる。
したがって、従来のように高価なランダムインタリーバを用いることなく、符号化装置321のように、簡単なシフトレジスタを用いて、コストを上げることなく、簡単な構成の符号化装置を実現することができる。
図14は、本発明を適用した符号化装置521の構成例を表す。なお、図14の符号化装置521は、図6の符号化装置121、図9の符号化装置221、および図12の符号化装置321の構成例をまとめて表した構成概念図であり、その詳細な説明は繰り返しになるので、適宜省略する。
図14の符号化装置521は、例えば、有限体Fq(q=ps,p:素数,s:自然数)上の任意のIRA型準巡回符号で、情報長k,符号長n,巡回正方行列のサイズm,符号長n=n0×m,情報長k=k0×m,l:=(符号長n−情報長k)/m=n0−k0で表されるIRA型準巡回符号の符号化装置であり、このIRA型準巡回符号するためのパリティ検査行列Hを用いて、入力されるデータ(情報長kの情報)をIRA型準巡回符号化し、符号(符号長nの符号)として出力する処理を行う。すなわち、符号化装置521には、情報長kの情報が入力され、符号長nの符号が出力される。
図14の例においては、制御部131は、内蔵するクロックに基づいて、計時動作を行い、パリティ検査行列Hに応じて、スイッチ133,136および138を所定の端子に設定する(切り替える)制御を行う。セパレータ132は、シリアルに入力される情報が対応するレジスタ134−1乃至134−kに格納されるように、k0本のパラレルに分配し、分配された情報を、スイッチ133に供給する。
スイッチ133−1乃至133−k0は、制御部131の制御により、D端子に設定されると、セパレータ132からの情報を、各レジスタ134−1乃至134−kに格納し、P端子に設定されると、レジスタ134−1乃至134−kに格納された情報を、k0個の各ループで巡回させる。
レジスタ134−1乃至134−kは、情報長kと同数個のシフトレジスタにより構成され、入力される情報を格納する。レジスタ134−1乃至134−kは、k0個のループが繰り返されるように、それぞれm個ずつ、レジスタ134−1乃至134−m、レジスタ134−(m+1)乃至134−2m、レジスタ134−(2m+1)乃至134−3m、…として接続されて構成されている。
加算器135−1および135−2は、IRA型準巡回符号のパリティ検査行列Hの情報部の各行の非零元に応じた値が入力されるように、各レジスタ134−1乃至134−kとの接続と、その接続の間に設けられる乗算器531−1乃至531−lが予め設定されている。乗算器531−1乃至531−lは、パリティ検査行列Hの情報部の各行の非零元に応じた数設けられ、各レジスタ134−1乃至134−kからの情報を所定倍して、接続される加算器135−1乃至135−lに供給する。具体的には、パリティ検査行列Hの情報部を構成する要素(行列)のうち1番上の段(行)の要素の非零元に対応する“h11”倍,“h12”倍,…,“h1w1”倍を行うw1個の乗算器531−1、パリティ検査行列Hの情報部を構成する要素(行列)の上から2番目の段(行)の要素の非零元に対応する“h21”倍,“h22”倍,…,“h2w2”倍を行うw2個の乗算器531−2,そして、さらに、パリティ検査行列Hの情報部を構成する要素(行列)の上からl番目の段(行)の要素(行列)の非零元に対応する“hl1”倍,“hl2”倍,…,“hlwl”倍を行うwl個の乗算器531―lが示されている(h11,h12,h1w1,h21,h22,h2w2,hl1,hl2,hlwl∈Fq)。なお、図12の例の場合、乗算器531−1乃至531−lは、説明の便宜上、それぞれ、乗算器がw1,w2,…,wl個ずつまとめて番号が付されている。
加算器135−1乃至135−lは、例えば、情報部の各行列を要素とした場合、パリティ検査行列Hの情報部の行数(l=n0−k0個)設けられ、各行の非零元に応じた値が入力されると、入力された値のFq上の和を演算する。乗算器532−1乃至532−lは、加算器135−1乃至135−lとスイッチ136の間に設けられ、加算器135−1の演算結果を、所定倍する。具体的には、乗算器532−1は、加算器135−1の演算結果を、“−p1 -1”倍する。乗算器532−2は、加算器135−1の演算結果を、“−p2 -1”倍する。乗算器532−lは、加算器135−lの演算結果を、“−pl -1”倍する(p1,p2,pl∈Fq)。
スイッチ136は、乗算器532−1に接続されるA1端子、乗算器532−2に接続されるA2端子,…,乗算器532−lに接続されるAl端子を有しており、制御部131の制御により、設定された端子に接続される乗算器331により所定倍された各行の演算結果を、アキュムレータ533に出力する。スイッチ136がA1端子に設定された場合、スイッチ136は、乗算器532−1により“−p1 -1”倍された各行の演算結果をアキュムレータ533に出力する。スイッチ136がA2端子に設定された場合、スイッチ136は、乗算器532−2により“−p2 -1”倍された各行の演算結果をアキュムレータ533に出力する。スイッチ136がAl端子に設定された場合、スイッチ136は、乗算器532−lにより“−pl -1”倍された各行の演算結果をアキュムレータ533に出力する。
アキュムレータ533は、図9のアキュムレータ233と同様の構成をしており、演算器141、レジスタ142、および乗算器541により構成される。演算器141は、スイッチ136からの所定倍された演算結果と、レジスタ142からのパリティに乗算器241により“i”が乗算された値とのFq上の和を演算することにより、新たなパリティを求め、求められたパリティを、レジスタ142に供給する。レジスタ142は、シフトレジスタなどにより構成され、演算器141からのパリティを格納し、格納されるパリティを、乗算器541を介して、“q”倍して、演算器141に供給するともに、P端子を選択しているスイッチ138を介して、符号として後段に出力する。乗算器541は、レジスタ142からのパリティに、“q”倍し、“q”倍された値を、演算器141に供給する(q∈Fq)。
なお、符号化装置521による符号化処理は、図7、図11、および図13を参照して上述した符号化処理のいずれかと同様の処理を行うため、繰り返しになるので、その説明を省略するが、符号化装置521においても、最終的に、10のパリティが求められ、15の情報と、10のパリティとを合わせて、25のIRA型準巡回符号が生成される。
以上のように、本発明によれば、IRA型準巡回符号のパリティ検査行列Hの情報部が準巡回行列で表され、シフトレジスタを用いて、パリティ検査行列の情報部のパリティが簡単に求められるので、求められたパリティと、その直前に求められたパリティのみを用いて、Fq上の和(排他的論理和)を演算することにより、新たなパリティを求めることができる。
したがって、従来のように高価なランダムインタリーバを用いることなく、簡単なシフトレジスタを用いて、コストを上げることなく、簡単な構成の符号化装置を実現することができる。
なお、上記説明において、加算器135に入力される値の数は、パリティ検査行列Hの情報部の各行の非零元に依存する。したがって、より低密度なパリティ検査行列を用いる場合(すなわち、符号がLDPC(Low Density Parity Check)符号である場合)、入力される値の数が減り、より低いコストでの符号化を実現することができる。
また、上記説明においては、符号の線形空間として有限体Fqを用いて説明したが、任意の環Rであっても、本発明を適用することができる。
本明細書において、フローチャートに示されるステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
準巡回符号のパリティ検査行列の例を示す図である。 IRA符号のパリティ検査行列の例を示す図である。 IRA符号のパリティ検査行列のタナーグラフの例を示す図である。 IRA符号の符号化装置の構成例を示すブロック図である。 本発明のIRA型準巡回符号のパリティ検査行列の例を示す図である。 本発明を適用したIRA型準巡回符号の符号化装置の構成例を示すブロック図である。 図6の符号化装置の符号化処理を説明するフローチャートである。 本発明のIRA型準巡回符号のパリティ検査行列の他の例を示す図である。 本発明を適用したIRA型準巡回符号の符号化装置の他の構成例を示すブロック図である。 図9の符号化装置の符号化処理を説明するフローチャートである。 本発明のIRA型準巡回符号のパリティ検査行列のさらに他の例を示す図である。 本発明を適用したIRA型準巡回符号の符号化装置のさらに他の構成例を示すブロック図である。 図12の符号化装置の符号化処理を説明するフローチャートである。 本発明を適用したIRA型準巡回符号の符号化装置の他の構成例を示すブロック図である。
符号の説明
101 情報部,102 パリティ部,121 符号化装置,131 制御部,132 セパレータ,133,133−1乃至133−3 スイッチ,134−1乃至134−15 レジスタ,135−1,135−2 加算器,136 スイッチ,137 アキュムレータ,138 スイッチ,141 演算器,142 レジスタ,201 情報部,202 パリティ部,221 符号化装置,231−1乃至231−13,232 乗算器,233 アキュムレータ,241 乗算器,301 情報部,302 パリティ部,321 符号化装置,331−1,331−2 乗算器,521 符号化装置

Claims (8)

  1. 線形符号の符号化装置であって、
    前記線形符号の検査行列は、m×mの巡回行列または準巡回行列を要素としてなる情報部を含んで構成されており、
    入力される情報の長さk(=k0×m)と同数の記憶素子からなり、前記巡回行列または準巡回行列を要素とした場合の前記情報部の列数k0個の巡回が繰り返されるように、前記記憶素子がm台ずつ直列に接続されて構成されるシフトレジスタと、
    前記シフトレジスタから、前記線形符号の検査行列の前記情報部に応じて巡回的に入力される値を加算するシフト加算手段と、
    前記線形符号のパリティの1ビットを記憶する記憶手段と、
    前記シフト加算手段による加算結果と、前記記憶手段に記憶された前記線形符号の1ビットのパリティを加算することにより、前記線形符号の新たな1ビットのパリティを求め、前記記憶手段に供給する累加算手段と
    備える符号化装置。
  2. 前記線形符号の検査行列は、低密度である
    請求項1に記載の符号化装置。
  3. 前記線形符号は、素数のべき乗を元とする有限体である環R上の線形符号である
    請求項1に記載の符号化装置。
  4. 前記シフト加算手段は、前記巡回行列または準巡回行列を要素とした場合の前記情報部の行数個で構成されており、
    前記線形符号の検査行列の前記情報部に応じて、前記シフト加算手段による前記加算結果のうちの1つを選択する選択手段をさらに備え、
    前記累加算手段は、前記選択手段により選択された前記加算結果と、前記記憶手段に記憶された前記線形符号の1ビットのパリティを加算することにより、前記線形符号の新たな1ビットのパリティを求め、前記記憶手段に供給する
    請求項1に記載の符号化装置。
  5. 線形符号の符号化装置の符号化方法であって、
    前記線形符号の検査行列は、m×mの巡回行列または準巡回行列を要素としてなる情報部を含んで構成されており、
    前記符号化装置が、
    入力される情報の長さk(=k0×m)と同数の記憶素子からなり、前記巡回行列または準巡回行列を要素とした場合の前記情報部の列数k0個の巡回が繰り返されるように、前記記憶素子がm台ずつ直列に接続されて構成されるシフトレジスタから、前記線形符号の検査行列の前記情報部に応じて巡回的に入力される値を加算するシフト加算ステップと、
    前記線形符号のパリティの1ビットを記憶手段に記憶させる記憶ステップと、
    前記シフト加算ステップの処理による加算結果と、前記記憶手段に記憶された前記線形符号の1ビットのパリティを加算することにより、前記線形符号の新たな1ビットのパリティを求め、前記記憶手段に供給する累加算ステップと
    含む符号化方法。
  6. 前記線形符号の検査行列は、低密度である
    請求項5に記載の符号化方法。
  7. 前記線形符号は、素数のべき乗を元とする有限体である環R上の線形符号である
    請求項5に記載の符号化方法。
  8. 前記シフト加算ステップの処理では、前記巡回行列または準巡回行列を要素とした場合の前記情報部の行数個の前記加算結果が算出され、
    前記線形符号の検査行列の前記情報部に応じて、前記シフト加算ステップの処理による前記加算結果のうちの1つを選択する選択ステップをさらに含み、
    前記累加算ステップでは、前記選択ステップの処理により選択された前記加算結果と、前記記憶手段に記憶された前記線形符号の1ビットのパリティを加算することにより、前記線形符号の新たな1ビットのパリティを求め、前記記憶手段に供給する
    請求項5に記載の符号化方法。
JP2004062488A 2004-03-05 2004-03-05 符号化方法および装置 Expired - Fee Related JP4534128B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004062488A JP4534128B2 (ja) 2004-03-05 2004-03-05 符号化方法および装置
EP05250979A EP1580896A3 (en) 2004-03-05 2005-02-21 Encoding method and encoding apparatus
US11/071,096 US7484159B2 (en) 2004-03-05 2005-03-03 Encoding method and encoding apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004062488A JP4534128B2 (ja) 2004-03-05 2004-03-05 符号化方法および装置

Publications (2)

Publication Number Publication Date
JP2005252820A JP2005252820A (ja) 2005-09-15
JP4534128B2 true JP4534128B2 (ja) 2010-09-01

Family

ID=34858323

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004062488A Expired - Fee Related JP4534128B2 (ja) 2004-03-05 2004-03-05 符号化方法および装置

Country Status (3)

Country Link
US (1) US7484159B2 (ja)
EP (1) EP1580896A3 (ja)
JP (1) JP4534128B2 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7349478B2 (en) * 2001-12-06 2008-03-25 Pulse-Link, Inc. Ultra-wideband communication apparatus and methods
US7171603B2 (en) * 2004-05-06 2007-01-30 Motorola, Inc. Method and apparatus for encoding and decoding data
JP4595574B2 (ja) * 2005-02-07 2010-12-08 ソニー株式会社 復号装置および方法、並びにプログラム
US7657816B2 (en) * 2005-07-13 2010-02-02 Leanics Corporation Low-complexity hybrid LDPC code encoder
US7797611B2 (en) * 2005-11-14 2010-09-14 International Business Machines Corporation Creating an error correction coding scheme and reducing data loss
KR20070080392A (ko) * 2006-02-07 2007-08-10 삼성전자주식회사 저밀도 패러티 검사 부호의 천공 방법
US7831895B2 (en) * 2006-07-25 2010-11-09 Communications Coding Corporation Universal error control coding system for digital communication and data storage systems
KR101455978B1 (ko) * 2007-03-27 2014-11-04 엘지전자 주식회사 Ldpc 부호를 이용한 부호화 방법
JP4702632B2 (ja) * 2007-04-06 2011-06-15 ソニー株式会社 符号化方法および符号化装置、並びにプログラム
US8473824B1 (en) * 2008-09-08 2013-06-25 Marvell International Ltd. Quasi-cyclic low-density parity-check (QC-LDPC) encoder
US8291283B1 (en) * 2008-06-06 2012-10-16 Marvell International Ltd. Layered quasi-cyclic LDPC decoder with reduced-complexity circular shifter
CN102077471B (zh) * 2008-07-04 2014-03-12 三菱电机株式会社 校验矩阵生成装置、校验矩阵生成方法、校验矩阵生成程序、发送装置、接收装置以及通信***
JP4780158B2 (ja) * 2008-08-26 2011-09-28 ソニー株式会社 符号化装置および方法
US8392814B2 (en) * 2008-10-07 2013-03-05 Qualcomm Incorporated Method and apparatus for high speed structured multi rate low density parity check codes
GB2471513B (en) * 2009-07-02 2013-09-25 Samsung Electronics Uk Ltd Encoding/decoding apparatus and method
JP5434890B2 (ja) * 2010-11-18 2014-03-05 株式会社Jvcケンウッド 符号化装置、符号化方法、プログラム
JP5413701B2 (ja) * 2011-03-22 2014-02-12 日本電気株式会社 誤り訂正符号化装置、誤り訂正符号化方法および誤り訂正符号化プログラム
EP2525498A1 (en) * 2011-05-18 2012-11-21 Panasonic Corporation Bit-interleaved coding and modulation (BICM) with quasi-cyclic LDPC codes
EP2525496A1 (en) * 2011-05-18 2012-11-21 Panasonic Corporation Bit-interleaved coding and modulation (BICM) with quasi-cyclic LDPC codes
EP2525497A1 (en) * 2011-05-18 2012-11-21 Panasonic Corporation Bit-interleaved coding and modulation (BICM) with quasi-cyclic LDPC codes
EP2525495A1 (en) * 2011-05-18 2012-11-21 Panasonic Corporation Bit-interleaved coding and modulation (BICM) with quasi-cyclic LDPC codes
CN104936127B (zh) * 2014-03-21 2018-09-07 上海诺基亚贝尔股份有限公司 在无线网络中进行设备到设备的广播通信的设备与方法
US9942031B2 (en) 2014-09-03 2018-04-10 Research Foundation Of The City University Of New York System and method for private-key fully homomorphic encryption and private search between rings
US10320421B2 (en) * 2016-05-13 2019-06-11 Hyperstone Gmbh Method and device for error correction coding based on high-rate generalized concatenated codes
US10447303B2 (en) * 2017-12-20 2019-10-15 Qualcomm Incorporated Low-density parity check (LDPC) incremental parity-check matrix rotation

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005051469A (ja) * 2003-07-28 2005-02-24 Sony Corp 符号化装置および符号化方法、並びにプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5479416A (en) * 1993-09-30 1995-12-26 Micron Technology, Inc. Apparatus and method for error detection and correction in radio frequency identification device
US7117424B2 (en) * 2002-05-13 2006-10-03 Lucent Technologies Inc. Block coding method having increased flexibility in choice of code length or minimum code distance
ES2356912T3 (es) * 2003-05-30 2011-04-14 Sony Corporation Método de decodificación, dispositivo de decodificación, programa dispositivo de grabación/reproducción y método, y método y dispositivo de reproducción.

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005051469A (ja) * 2003-07-28 2005-02-24 Sony Corp 符号化装置および符号化方法、並びにプログラム

Also Published As

Publication number Publication date
JP2005252820A (ja) 2005-09-15
US20050204261A1 (en) 2005-09-15
EP1580896A2 (en) 2005-09-28
US7484159B2 (en) 2009-01-27
EP1580896A3 (en) 2006-01-25

Similar Documents

Publication Publication Date Title
JP4534128B2 (ja) 符号化方法および装置
Hocevar LDPC code construction with flexible hardware implementation
US8352847B2 (en) Matrix vector multiplication for error-correction encoding and the like
CN1983823B (zh) 编码器、解码器、以及编码和解码的方法
KR101438072B1 (ko) 소거 없는 플래시 메모리의 다중 프로그래밍
JP4978625B2 (ja) 誤り訂正符号化方法及び装置
CN105846830B (zh) 数据处理装置
JP4602406B2 (ja) データをエンコード及びデコードするための方法並びに装置
US20090019333A1 (en) Generation of parity-check matrices
JP4320418B2 (ja) 復号装置および受信装置
US20050149840A1 (en) Apparatus for encoding and decoding of low-density parity-check codes, and method thereof
CN102835032A (zh) 用于循环行列式大小非整数倍的准循环ldpc编码和解码
CN106936444B (zh) 一种集合译码方法和集合译码器
Shahabinejad et al. A class of binary locally repairable codes
EP2951925B1 (en) Ldpc code design and encoding apparatus enabling the adjustment of code rate and codelength
CN114063973B (zh) 伽罗华域乘法器及纠删编解码***
JP2006339799A (ja) イレギュラー低密度パリティチェック符号復号器及び方法
CN104617959A (zh) 一种基于通用处理器的ldpc编译码方法
US20100017677A1 (en) Decoding device and decoding method
US7447972B2 (en) Methods and apparatus for constructing low-density parity check (LDPC) matrix
KR101923116B1 (ko) 분산 저장 시스템에서 부분접속 복구 부호를 이용하는 부호화/복호화 장치 및 방법
CN111313912A (zh) 一种ldpc码编码器及编码方法
CN113422611B (zh) 一种qc-ldpc编码器的高度并行编码方法
CN101436864B (zh) 一种低密度奇偶校验码的译码方法及装置
EP2951926B1 (en) Ldpc code design and encoding apparatus for their application

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090623

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090824

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

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

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

Free format text: PAYMENT UNTIL: 20130625

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees