WO2015133095A1 - パリティ検査符号生成装置、符号化方法、符号化装置および記録媒体 - Google Patents

パリティ検査符号生成装置、符号化方法、符号化装置および記録媒体 Download PDF

Info

Publication number
WO2015133095A1
WO2015133095A1 PCT/JP2015/000993 JP2015000993W WO2015133095A1 WO 2015133095 A1 WO2015133095 A1 WO 2015133095A1 JP 2015000993 W JP2015000993 W JP 2015000993W WO 2015133095 A1 WO2015133095 A1 WO 2015133095A1
Authority
WO
WIPO (PCT)
Prior art keywords
matrix
bits
check code
information word
parity
Prior art date
Application number
PCT/JP2015/000993
Other languages
English (en)
French (fr)
Inventor
典史 神谷
朋宏 冠
Original Assignee
日本電気株式会社
Necエンジニアリング株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社, Necエンジニアリング株式会社 filed Critical 日本電気株式会社
Priority to JP2016506120A priority Critical patent/JPWO2015133095A1/ja
Publication of WO2015133095A1 publication Critical patent/WO2015133095A1/ja

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/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/611Specific encoding aspects, e.g. encoding by means of decoding

Landscapes

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

Abstract

 構成および動作を複雑にすることなく、実現したい処理性能に対して適切な並列処理数を選択する符号化装置を提供する。符号化装置は、入力された情報語のPビットを順に生成行列中の検査符号生成行列と並列演算して、QC-LDPC符号を生成するパリティ検査符号生成部と、検査符号生成行列中の巡回行列の行列サイズをrビットとし、Pビットがrビットの約数となっていない場合に、情報語のrビットごとに{P-(r mod P)}ビットのゼロを挿入して、パリティ検査符号生成部に出力する情報語マスク部と、情報語にQC-LDPC符号を付加して符号語として出力する符号語出力部と、を備える。

Description

パリティ検査符号生成装置、符号化方法、符号化装置および記録媒体
 本発明は、誤り訂正符号を生成するためのパリティ検査符号生成装置、符号化方法、符号化装置および記録媒体に関する。特に、擬似巡回低密度パリティ検査符号の生成に関する。
 近年、半導体集積回路へ実装可能な回路規模の増加に伴い、擬似巡回低密度パリティ検査(Quasi-Cyclic Low-Density Parity-Check、以下、QC-LDPCと示す)符号を用いる誤り訂正が通信システムへ適用されている。QC-LDPC符号を用いる誤り訂正の符号化処理は、情報語の1ビットごとに、生成行列による演算を行うことで符号語の生成が可能であるが、適用する通信システムに必要なスループットを実現するため、処理の並列化が必要となる。
 特許文献1においては、6ビットの情報語と検査行列Hの情報部との積を6行単位で行ごとに乗算して、6ビットの情報語から並列処理数6として符号語のパリティビットを生成している。
特開2006-304132号公報 国際公開第2009/060627号 特開2012-231474号公報
 上記文献に記載の技術のように、並列処理数がQC-LDPC符号の生成行列を構成する単位行列または巡回行列の行列サイズの約数となっている場合には、1種類の生成行列によりパリティ検査符号を生成できる。しかしながら、並列処理数が単位行列または巡回行列の行列サイズの約数となっていない場合には、2つの種類の生成行列を用いなければパリティ検査符号を生成できないので、構成および動作が複雑となってしまう。逆に、1種類の生成行列によって符号化を行なうためには並列処理数が約数となるように制限されるので、実現したい処理性能に対して適切な並列処理数を選択することができない。
 本発明の目的は、上述の課題を解決する技術を提供することにある。
 上記目的を達成するため、本発明に係る符号化装置は、
 入力された情報語のPビットを順に生成行列中の検査符号生成行列と並列演算して、QC-LDPC符号を生成するパリティ検査符号生成部と、
 前記検査符号生成行列中の巡回行列の行列サイズをrビットとし、Pビットがrビットの約数となっていない場合に、前記情報語のrビットごとに{P-(r mod P)}ビットのゼロを挿入して、前記パリティ検査符号生成部に出力する情報語マスク部と、
 前記情報語に前記QC-LDPC符号を付加して符号語として出力する符号語出力部と、
 を備える。
 上記目的を達成するため、本発明に係る符号化方法は、
 入力された情報語のPビットを順に生成行列と並列演算して、符号語を生成する符号化方法であって、
 前記生成行列中の単位行列および巡回行列の行列サイズをrビットとし、Pビットがrビットの約数となっていない場合に、前記情報語のrビットごとに{P-(r mod P)}ビットのゼロを挿入し、
 生成されたPビットを順に前記生成行列と並列演算して、前記情報語にQC-LDPC符号が付加された符号語を生成する。
 上記目的を達成するため、本発明に係る符号化装置の制御プログラムを格納する記録媒体は、
 入力された情報語のPビットを順に生成行列と並列演算して、符号語を生成する符号化装置の制御プログラムを格納する記録媒体であって、
 前記生成行列中の単位行列および巡回行列の行列サイズをrビットとし、Pビットがrビットの約数となっていない場合に、前記情報語のrビットごとに{P-(r mod P)}ビットのゼロを挿入し、
 生成されたPビットを順に前記生成行列と並列演算して、前記情報語にQC-LDPC符号が付加された符号語を生成する
 ことをコンピュータに実行させる。
 上記目的を達成するため、本発明に係る符号化方法は、
 入力された情報語のPビットを順に生成行列と並列演算して、符号語を生成する符号化方法であって、
 前記生成行列中の巡回行列の行列サイズをrビットとし、Pビットがrビットの約数となっていない場合に、前記情報語のrビットごとに{P-(r mod P)}ビットのゼロを挿入し、
 生成されたPビットを順に前記生成行列中の検査符号生成行列と並列演算して、QC-LDPC符号を生成し、
 前記情報語に前記QC-LDPC符号を付加して符号語として出力する。
 上記目的を達成するため、本発明に係る符号化装置の制御プログラムを格納する記録媒体は、
 入力された情報語のPビットを順に生成行列と並列演算して、符号語を生成する符号化装置の制御プログラムを格納する記録媒体であって、
 前記生成行列中の巡回行列の行列サイズをrビットとし、Pビットがrビットの約数となっていない場合に、前記情報語のrビットごとに{P-(r mod P)}ビットのゼロを挿入し、
 生成されたPビットを順に前記生成行列中の検査符号生成行列と並列演算して、QC-LDPC符号を生成し、
 前記情報語に前記QC-LDPC符号を付加して符号語として出力する、
 ことをコンピュータに実行させる。
 上記目的を達成するため、本発明に係るパリティ検査符号生成装置は、
 QC-LDPC符号を生成するパリティ検査符号生成装置であって、
 情報語のPビットを生成行列中の検査符号生成行列と並列演算してQC-LDPC符号を生成するパリティ演算部と、
 前記検査符号生成行列中の巡回行列の行列サイズをrビットとし、Pビットがrビットの約数となっていない場合に、前記情報語のrビットごとに{P-(r mod P)}ビットのゼロを挿入する情報語マスク部と、
 を備え、
 前記パリティ演算部は、1つの検査符号生成行列を用いて前記QC-LDPC符号を生成する。
 本発明によれば、構成および動作を複雑にすることなく、実現したい処理性能に対して適切な並列処理数を選択することができる。
本発明の第1実施形態に係る符号化装置の構成を示すブロック図である。 本発明の第2実施形態に係る符号化装置の構成を示すブロック図である。 背景技術におけるQC-LDPC符号の生成行列例を示す図である。 背景技術におけるパリティ検査符号生成処理の手順を示すフローチャートである。 背景技術における符号化装置の構成を示すブロック図である。 第2実施形態に係る情報語マスク部の構成を示すブロック図である。 第2実施形態に係るパリティ演算部の構成を示すブロック図である。 第2実施形態に係る検査符号記憶部の構成を示すブロック図である。 第2実施形態に係る符号化装置のハードウェア構成を示すブロック図である。 第2実施形態に係る符号化装置の処理手順を示すフローチャートである。 第2実施形態に係るパリティ検査符号生成処理の手順を示すフローチャートである。 第2実施形態に係る情報語マスク処理の手順を示すフローチャートである。 第2実施形態に係るQC-LDPC符号の生成処理を説明する図である。 第2実施形態に係る生成行列の具体例を示す図である。 第2実施形態に係るQC-LDPC符号の生成処理の具体例を説明する図である。 本発明の第3実施形態に係る符号化装置の構成を示すブロック図である。
 以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素は単なる例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。
 [第1実施形態]
 本発明の第1実施形態としての符号化装置100について、図1を用いて説明する。符号化装置100は、誤り訂正符号を生成するための装置である。
 図1に示すように、符号化装置100は、パリティ検査符号生成部120と、情報語マスク部110と、符号語出力部130と、を含む。パリティ検査符号生成部120は、入力された情報語101のPビットを順に生成行列中の検査符号生成行列と並列演算して、QC-LDPC符号121を生成する。情報語マスク部110は、検査符号生成行列中の巡回行列の行列サイズをrビットとし、Pビットがrビットの約数となっていない場合に、情報語101のrビットごとに{P-(r mod P)}ビットのゼロを挿入して(111)、パリティ検査符号生成部120に出力する。符号語出力部130は、情報語101にQC-LDPC符号121を付加して符号語131として出力する。
 本実施形態によれば、情報語にゼロを挿入してビット数を並列演算数の倍数とすることにより、構成および動作を複雑にすることなく、実現したい処理性能に対して適切な並列処理数を選択することができる。
 [第2実施形態]
 次に、本発明の第2実施形態に係る符号化装置について説明する。本実施形態に係る符号化装置は、Pビットを順に生成行列中の検査符号生成行列と並列演算して、QC-LDPC符号を生成する。そして、検査符号生成行列中の巡回行列の行列サイズをrビットとし、Pビットがrビットの約数となっていない場合に、情報語101のrビットごとに{P-(r mod P)}ビットのゼロを挿入して、Pビットを約数とするr’ビットによりパリティ演算をする。
 <前提技術>
 本実施形態に係る符号化装置の構成および動作を説明する前に、その特徴点の理解を助けるために、QC-LDPC符号を生成する符号化装置の前提技術を説明する。
 (QC-LDPC符号)
 符号化における情報語と符号語の関係は、kビットの情報語XがX={x0,x1,x2,x3,…xk-1}であり、それに対応するnビットの符号語YがY={y0,y1,y2,y3,…,yn-1}であった場合、生成行列G(k行、n列)によって、
Figure JPOXMLDOC01-appb-M000001
と表せる。
 生成行列Gが図3の様に(r×r)単位行列I、(r×r)巡回行列Bで構成されているとき、QC-LDPC符号は組織符号となり、図4Aの様なフローチャートや図4Bのような回路構成により符号化が可能となる。ただし、
Figure JPOXMLDOC01-appb-M000002
Figure JPOXMLDOC01-appb-M000003
の関係を満たす。また、組織符号であるため、情報語Xの{x0~xk-1}と符号語Yの{y0~yk-1}までは同じ値となり、符号化処理によって符号語Yの{yk~yn-1}まで計算される。
 以下、情報語Xは、rビットごとにブロック化し、
Figure JPOXMLDOC01-appb-M000004
と表す。
 また、符号語Yも同様に、rビットごとにブロック化し、
Figure JPOXMLDOC01-appb-M000005
 以下、符号語Yの{yk,…,yn-1}(={Ys+1,…,Ys+t})をパリティ検査符号と呼び、パリティ検査符号を生成するための(r×r)巡回行列Bの部分を検査符号生成行列と呼ぶ。
 (符号化手順)
 ここで、QC-LDPC符号を用いる誤り訂正符号化装置において、前提技術として並列処理を行う符号化方法の例を図4Aのフローチャートに従って説明する。
なお、図4Aにおいては、情報語に付加するパリティ検査符号を検査符号生成行列により生成する手順を示すが、情報語から単位行列Iを含む生成行列Gにより符号語を直接生成する手順と同じ符号語を生成する、同様の処理である。
 図4Aに示した前提技術による符号化方法は、情報語読み出し処理(S401)と、検査符号生成行列の更新判定処理(S403)と、生成行列Gの巡回行列Bの部分を読みだす検査符号生成行列の読み出し処理(S405)と、読みだした検査符号生成行列の巡回行列Bを巡回置換する検査符号生成行列の巡回置換処理(S407)と、を含む。また、前提技術による符号化方法は、情報語と検査符号生成行列とのパリティ演算を行うパリティ演算処理(S409)と、パリティ演算結果をパリティ検査符号として記憶する検査符号記憶処理(S411)と、検査符号演算完了の判定処理(S413)と、を含む。なお、情報語から単位行列Iを含む生成行列Gにより符号語を直接生成する場合は、「検査符号生成行列」を、単位行列を含む「生成行列G」に置き換えることで、直接に符号語が生成される。
 はじめに、情報語を1ビットずつ演算する場合の動作について説明し、その後、Pビットずつ並列処理する場合を説明する(Pは生成行列Gの単位行列Iや巡回行列Bの行列サイズrの約数とする)。ここで、巡回置換を行う行列をサイズは(r×r)の行列Cmとする。C0は単位行列と同一、C1は1ビット右巡回置換を行う行列、Cr-1は(r-1)ビット右巡回置換を行う行列とする。なお、CrはC0と同一である。
 情報語読み出し処理(S401)において、1ビット目の情報語X1,0を読み出す。次に検査符号生成行列の更新判定処理(S403)において、情報語の読み出しビット数から検査符号生成行列の更新が必要であるかを判定する。ここでは、1ビット目の処理であるため、検査符号生成行列の更新が必要と判定する。検査符号生成行列の読み出し処理(S405)においては、情報語の先頭ビットX1,0に対応する検査符号生成行列{B1,1,…,B1,t}を読みだす。検査符号生成行列の1行目の演算であるため、検査符号生成行列{B1,1,…,B1,t}は、巡回置換を行わない{C01,1,…,C01,t}をパリティ演算に用いる。
 パリティ演算処理(S409)において、X1,0と{C01,1,…,C01,t}を乗算し、1ビット目の情報語X1,0によるパリティ検査符号{Ys+1,…,Ys+t}を生成する。生成したパリティ検査符号{Ys+1,…,Ys+t}は、検査符号記憶処理(S411)において、記憶部(図視せず)に記憶する。検査符号演算完了の判定処理(S413)においては、情報語読み出しビット数を確認し、情報語の読み出しが完了している場合は、検査符号演算処理を完了する。ここでは、情報語の読み出しは完了していないため、情報語読み出し処理(S401)に戻る。なお、パリティ演算処理(S409)によるパリティ検査符号の演算は、情報語の先頭からdビット分まで演算したパリティ検査符号{Ys+1,…,Ys+t}をZdとすると、1ビット目のパリティ演算結果Z1は、
Figure JPOXMLDOC01-appb-M000006
と表せる。
 次に、情報語読み出し処理(S401)において、2ビット目の情報語X1,1を読み出し、検査符号生成行列の更新判定処理(S403)において、情報語の読み出しビット数から検査符号生成行列の更新について判定する。ここで、情報語の読み出しビットは2ビット目であるため、検査符号生成行列の巡回置換処理(S407)において右巡回置換を行い、{C11,1,…,C11,t}を生成する。パリティ演算処理(S409)において、情報語X1,1と1ビット分右巡回置換を行なった検査符号生成行列{C11,1,…,C11,t}と演算済みのパリティ演算結果Z1とのパリティを演算する。そして、検査符号記憶処理(S411)で2ビット目の情報語X1,1までのパリティ演算結果Z2を記憶する。パリティ演算処理(S409)による2ビット目のパリティ演算結果Z2は、
Figure JPOXMLDOC01-appb-M000007
と表せる。
 その後、情報語をrビット読み出すごとに、検査符号生成行列の読み出し処理(S405)により、検査符号生成行列を更新する。
 一般に、パリティ演算処理(S409)による(d+1)ビット目の情報語によるパリティ演算結果Zd+1は、
Figure JPOXMLDOC01-appb-M000008
と表せる。
 式(8)をd=0から(k-1)まで繰り返すことで、情報語Xに対するパリティ検査符号Zkを生成することができ、検査符号演算完了の判定処理(S413)により検査符号演算処理を完了する。本例においては、生成したパリティ検査符号Zkを情報語Xの後に付加することにより、符号語Yが出力される。一方、「検査符号生成行列」ではなく、単位行列を含む「生成行列」によれば、(情報語X+パリティ検査符号Zk)である符号語が直接に演算出力されることになる。
 次に、情報語をPビット分並列に処理する場合の動作について説明する。ただし、Pビットは、生成行列Gの単位行列Iや巡回行列Bの行列サイズrの約数の場合とする。Pビット分並列に処理する場合、式(8)をPビット分同時に処理するため、パリティ演算処理(S409)によるパリティ演算結果Zd+Pは、
Figure JPOXMLDOC01-appb-M000009
と表せる。
 なお、並列処理数Pは生成行列Gの単位行列Iや巡回行列Bの行列サイズrの約数であるため、式(9)を処理する際、検査符号生成行列は{Bi,1,…,Bi,t}の1種類である。
 しかしながら、並列処理数Pが生成行列Gの単位行列Iや巡回行列Bの行列サイズrの約数でない場合、以下の式(10)を並列に処理する必要がある。
Figure JPOXMLDOC01-appb-M000010
 このため、パリティ演算処理(S409)において演算に用いる検査符号生成行列は、{Bi,1,…,Bi,t}と{Bi+1,1,…,Bi+1,t}の2種類必要となる。式(10)を処理するためには、異なる検査符号生成行列に対して情報語Xのビット数に応じた異なる巡回置換を行ったうえでパリティの演算を行う必要があり、1種類の巡回置換を行なった検査符号生成行列で符号化処理を実現する前提技術では実現することができない。「検査符号生成行列」でなく単位行列を含む「生成行列」を用いる場合も、1種類の「生成行列」では並列演算による符号語の生成はできない。
 次に、前提技術として並列処理を行う符号化装置400の構成を、図4Bを参照して説明する。なお、図4Bにおいて、本実施形態と同様の構成部には同じ参照番号を付している。
 図4Bに示した前提技術による符号化装置は、情報語入力部210と、パリティ検査符号生成部430と、符号語出力部240と、を備える。情報語入力部210は、情報語Xをパリティ演算部233に入力する。パリティ検査符号生成部430は、情報語XをPビットずつ検査符号生成行列に基づいて並列処理をしてパリティ検査符号を生成する。符号語出力部240は、情報語Xにパリティ検査符号を付加して符号語Yを出力する。
 パリティ検査符号生成部430は、検査符号生成行列記憶部431と、第1生成行列巡回置換部232と、パリティ演算部233と、検査符号記憶部234と、を有する。検査符号生成行列記憶部431は、生成行列G中の巡回行列Bからなる検査符号生成行列を記憶する。第1生成行列巡回置換部232は、検査符号生成行列をパリティ演算用に巡回置換する。パリティ演算部233は、情報語と巡回置換を行なった検査符号生成行列とパリティ検査符号とを演算する。検査符号記憶部234は、パリティ演算結果をパリティ検査符号として記憶する。
 なお、パリティ検査符号生成部430を、単位行列を含む生成行列に基づいて並列処理する構成に置き換えた場合には、直接、符号語Yが生成されることになる。
 図4Bの符号化装置400において、はじめに、情報語を1ビットずつ演算する場合の動作について説明し、その後、Pビットずつ並列処理する場合を説明する(ここで、Pは生成行列Gの巡回行列Bの行列サイズrの約数とする)。
 情報語入力部210から情報語の先頭ビットX1,0がパリティ演算部233に入力され、検査符号生成行列記憶部431から情報語の先頭ビットX1,0に対応する検査符号生成行列{B1,1,…,B1,t}が第1生成行列巡回置換部232に入力される。第1生成行列巡回置換部232は、検査符号生成行列の1行目の演算であるため、入力した検査符号生成行列の{B1,1,…,B1,t}をそれぞれ巡回置換行列C0と乗算することで0ビット分右巡回置換を行ない、パリティ演算部233に入力する。パリティ演算部233は、X1,0と{C01,1,…,C01,t}の乗算結果を、情報語の先頭ビットX1,0によるパリティ演算結果Z1として検査符号記憶部234に記憶する。
 次に、情報語入力部210から情報語の2ビット目X1,1がパリティ演算部233に入力される。第1生成行列巡回置換部232は、検査符号生成行列の2行目の演算であるため、検査符号生成行列記憶部431から読み出している検査符号生成行列{B1,1,…,B1,t}と、1ビット分右巡回置換を行なった検査符号生成行列{C11,1,…,C11,t}をパリティ演算部233に入力する。パリティ演算部233は、X1,1と{C11,1,…,C11,t}と検査符号記憶部234からのパリティ演算結果Z1とのパリティを演算し、情報語の2ビット目X1,1までのパリティ演算結果Z2として、検査符号記憶部234に記憶する。
 その後、検査符号生成行列をrビット巡回置換するごとに、検査符号生成行列記憶部431から出力する検査符号生成行列を変更する。パリティ演算部233によるパリティ検査符号Zd+1の生成処理は式(8)と同一であり、情報語Xをkビット分入力することで、情報語Xに対するパリティ検査符号Zkを生成することができる。
 次に、情報語をPビット分並列に処理する場合の動作について説明する。ただし、Pビットは、生成行列Gの巡回行列Bの行列サイズrの約数の場合とする。Pビット分並列に処理する場合、式(8)をPビット分同時に処理するため、パリティ演算部233によるパリティ演算結果Zd+Pの生成処理は式(9)と同一となる。なお、並列処理数Pは生成行列Gの巡回行列Bの行列サイズrの約数であるため、パリティ演算部233に入力する検査符号生成行列は{Bi,1,…,Bi,t}の1種類である。
 もし、並列処理数Pが生成行列Gの巡回行列Bの行列サイズrの約数でない場合、式(10)を並列に処理するため、パリティ演算部233に入力する検査符号生成行列は、{Bi,1,…,Bi,t}と{Bi+1,1,…,Bi+1,t}の2種類となる。したがって、それぞれの検査符号生成行列に対して情報語Xのビット数に応じた巡回置換を行い、パリティ演算を行う必要がある。このため、1種類の巡回置換を行なった検査符号生成行列による符号化処理を行う背景技術の符号化装置では実現することができない。
 以上に説明したように、前提技術においては、パリティ演算を行う情報語に対応する巡回置換を行なった生成行列または検査符号生成行列を1種類にするために、並列処理数を生成行列の単位行列や巡回行列の行列サイズの約数とすることが必要である。その理由は、QC-LDPC符号による符号化は、生成行列の1行分の処理で符号ビット1ビットを生成するが、擬似巡回低密度パリティの生成行列は、単位行列または巡回行列により構成されており、単位行列または巡回行列の行列分の情報語による符号化処理ごとに生成行列または検査符号生成行列を切り替える必要があるためである。このため、前提技術の符号化装置は、ソフトウェアやハードウェアに実装する際に、最も適切な並列処理数を選択することができないという点で問題がある。
 <本実施形態の符号化装置の構成>
 図2は、本実施形態に係る符号化装置200の構成を示すブロック図である。
 図2の符号化装置200は、QC-LDPC符号による誤り訂正符号化装置である。符号化装置200は、情報語入力部210と、情報語マスク部220と、パリティ検査符号生成部230と、符号語出力部240と、同期信号生成部250と、備える。情報語入力部210は、情報語を符号化並列処理数ビットごとに情報語マスク部220に入力する。情報語マスク部220は、1つの検査符号生成行列により並列演算を可能とするように、並列入力する情報語の不足箇所にマスクデータを挿入して情報語をパリティ演算部233に入力する。する。パリティ検査符号生成部230は、情報語マスク部220から出力される複数ビットを並列処理して、パリティ検査符号を生成する。符号語出力部240は、情報語にパリティ検査符号を付加して符号語を出力する。同期信号生成部250は、並列処理数P、巡回行列の行列サイズr、情報語のブロック数sなどから各機能部の動作タイミングを制御する同期信号を生成する。
 そして、パリティ検査符号生成部230は、検査符号生成行列記憶部231と、第1生成行列巡回置換部232と、パリティ演算部233と、検査符号記憶部234と、を有する。検査符号生成行列記憶部231は、低密度パリティ検査符号の生成行列の巡回行列部分である検査符号生成行列を記憶する。第1生成行列巡回置換部232は、検査符号生成行列を並列処理数ごとに巡回置換する。パリティ演算部233は、情報語と巡回置換を行なった検査符号生成行列とパリティ検査符号とを演算する。検査符号記憶部234は、パリティ演算結果をパリティ検査符号として記憶する。
 なお、パリティ検査符号生成部230を、単位行列を含む生成行列に基づいて並列処理する構成に置き換えた場合には、直接、符号語Yが生成されることになる。また、情報語マスク部220と、パリティ検査符号生成部230と、同期信号生成部250と、を含むパリティ検査符号生成装置260を1つの装置として構成してもよい。
 次に、図2の構成図を用いて、符号化装置200の動作を説明する。
 まず、図2の情報語入力部210からの情報語が情報語マスク部220に入力される。次に、情報語マスク部220は、(r mod P)≠0の場合、情報語Xに対し、rビットごとに、{P-(r mod P)}ビットの0マスクデータを挿入済みの情報語X’を生成し、Pビットごとにパリティ演算部233に出力する。また、検査符号生成行列記憶部231から検査符号生成行列{Bi,1,…,Bi,t}が第1生成行列巡回置換部232に入力される。第1生成行列巡回置換部232は、情報語X'i,mのビット位置mに応じて、巡回置換Cmを行った{Cmi,1,…,Cmi,t}をパリティ演算部233に出力する。なお、Cmによる右巡回置換量はmビットである。パリティ演算部233は、マスクデータ挿入後の情報語X'i,mと巡回置換後の生成行列{Cmi,1,…,Cmi,t}を乗算した結果と、パリティ検査符号{Ys+1,…,Ys+t}をパリティ演算する。そして、パリティ演算部233は、パリティ演算結果を、情報語X'i,mまでのパリティ検査符号として、検査符号記憶部234に記憶する。なお、パリティ演算部233によるPビット分のパリティ演算の並列処理は、式(15)または式(16)に従って行われる。このため、情報語マスク部220においてマスクデータを挿入した情報語X’によりパリティ検査符号Z's×r’を生成することで、マスクデータ挿入前の情報語Xに対するパリティ検査符号Zs×rを生成できる。
 本実施形態の符号化装置200は、1種類の巡回置換を行なった生成行列あるいは検査符号生成行列で、並列処理数Pが生成行列Gの単位行列Iや巡回行列Bの行列サイズrの約数でない場合に、情報語マスク処理により情報語に対してrビットごとに{P-(r mod P)}のゼロをマスクデータとして挿入する。これにより、符号化装置200は、生成行列あるいは検査符号生成行列の更新時も情報語と生成行列あるいは検査符号生成行列の対応を一致させる。したがって、並列処理数Pが生成行列Gの単位行列Iや巡回行列Bの行列サイズrの約数の場合と同様に、1種類の生成行列あるいは検査符号生成行列の巡回置換によってパリティ演算を繰り返すことができる。
 (情報語マスク部の構成)
 図5は、本実施形態に係る情報語マスク部220の構成を示すブロック図である。
なお、情報語マスク部220の構成は図5の構成に限定されず、情報語のrビットごとに{P-(r mod P)}ビットの0マスクビットが挿入できる構成であればよい。図5にはメモリ501への書込/読出しを制御することで0マスクビットを挿入する構成を示している。しかし、カウンタで情報語のビット数をカウントしてレジスタやバッファによりハードウェア的に0マスクビットを挿入する構成であってもよい。また、全てをソフトウェアプログラム、例えば、マイクロプログラムで実行する構成であってもよい。例えば、ハードウェア的に0マスクビットを挿入する構成の場合、一旦メモリに0マスクビットを挿入した情報語X’を記憶することは必須ではない。Pビット単位に実時間でレジスタ又はバッファで{P-(r mod P)}ビットの0マスクビットを挿入して出力する構成であってもよい。
 情報語マスク部220は、メモリ501と、ライトアドレスポインタ502と、リードアドレスポインタ503と、を有する。メモリ501は、並列演算数Pのビット幅で少なくとも{([r/P]+1)×s}アドレスのアドレス容量を有する。ライトアドレスポインタ502は、情報語入力部210からのPビットをメモリ501に書き込むためのライトアドレスをポイントする。リードアドレスポインタ503は、パリティ演算部233へPビットを並列に出力するためのリードアドレスをポイントする。なお、ここで、ガウス記号[X]は、Xを越えない最大の整数であり、[r/P]はrをPで割った場合の余りを除いた整数商となる。
 そして、同期信号生成部250からの制御によって、ライトアドレス([r/P]+1)ごとに、(r mod P)ビットの情報語と{P-(r mod P)}ビットの0マスクビットとがメモリ501に書き込まれる。この制御によって、情報語のrビットごとに{P-(r mod P)}ビットの0マスクビットが挿入されることになる。
 なお、メモリ501への書込/読出し制御は、同期信号生成部250からの信号によらず、情報語マスク部220内で行なわれてもよい。
 (パリティ演算部の構成)
 図6は、本実施形態に係るパリティ演算部233の構成を示すブロック図である。
なお、パリティ演算部233の構成は図6の構成に限定されない。例えば、並列演算数Pビットの情報語と、ビット数に対応して巡回置換された検査符号生成行列と、既にパリティ演算済みのパリティ検査符号の演算結果とから、情報語の処理済みビット数までのパリティ検査符号を生成する構成であればよい。また、全てをソフトウェアプログラム、例えば、マイクロプログラムで実行する構成であってもよい。
 パリティ演算部233は、AND演算部611~61Pと、XOR演算部620と、を有する。AND演算部611~61Pは、情報語マスク部220からPビット並列に入力される情報語と、第1生成行列巡回置換部232から情報語のビット数に対応して巡回置換された検査符号生成行列とを論理積(AND)する。XOR演算部620は、AND演算部611~61Pの演算結果と、検査符号記憶部234から読出された既にパリティ演算済みのパリティ検査符号とを排他的論理和(XOR)して、パリティ演算結果として検査符号記憶部234に出力する。
 なお、パリティ演算部233の演算タイミングは、同期信号生成部250からの演算タイミングにより他の構成部と同期する。
 (検査符号記憶部)
 図7は、本実施形態に係る検査符号記憶部234の構成を示すブロック図である。
なお、検査符号記憶部234の構成は図7の構成に限定されない。例えば、少なくとも(t×r)ビットのパリティ演算結果のパリティ検査符号を一時記憶して次のパリティ演算に使用すると共に、最終的な情報語の全ビットにより生成されたパリティ検査符号を、符号語出力部240に出力する構成であればよい。
 検査符号記憶部234は、パリティ演算部233からのPビットの並列演算結果を一時保存し、次のPビットの並列演算のためにパリティ演算部233に出力する。さらに、検査符号記憶部234は、最終的な情報語の全ビットにより生成されたパリティ検査符号を符号語出力部240に出力するための(t×r)ビットのバッファ701を有する。
 なお、検査符号記憶部234とパリティ演算部233との演算タイミングは、同期信号生成部250からのW/Rタイミング(書込/読出タイミング)により同期する。
 <符号化装置のハードウェア構成>
 図8は、本実施形態に係る符号化装置200のハードウェア構成を示すブロック図である。
 図8で、CPU(Central Processing Unit)810は演算制御用のプロセッサであり、プログラムを実行することで図2の符号化装置200の各構成部を実現する。パリティ演算部811~81Pは、情報語のPビットのパリティ演算を並列して行なう。ROM(Read Only Memory)820は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。また、通信制御部830は、ネットワークを介して符号語を通信する。なお、CPU810は1つに限定されず、複数のCPUであっても、あるいは画像処理用のGPU(Graphics Processing Unit)を含んでもよい。また、パリティ演算部811~81Pの処理は、ソフトウェアのマルチプロセッシングにより行なわれてもよい。
 RAM(Random Access Memory)840は、CPU810またはパリティ演算部811~81Pが一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM840には、本実施形態の実現に必要なデータを記憶する領域が確保されている。情報語841は、符号化装置200が符号化するデータである。符号化パラメータ842は、符号化を制御するためのパラメータであり、例えば、単位行列や巡回行列の行列サイズr、情報語のブロック数s、並列演算数Pなどを含む。マスクされた情報語843は、情報語マスク処理後のデータである。検査符号生成行列844は、パリティ演算のために読出された行列である。巡回置換生成行列845は、検査符号生成行列844をパリティ演算する情報語のビット数に対応して巡回置換するための行列である。検査符号記憶領域846は、パリティ演算結果を次のパリティ演算のために保持する。符号語847は、通信制御部830を介して送受信されるデータである。
 ストレージ850には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。符号語生成行列851は、情報語から符号語を生成する行列であり、符号語からパリティ検査符号を生成する検査符号生成行列を記憶する検査符号生成行列記憶部231を含む。ストレージ850には、以下のプログラムが格納される。通信制御プログラム852は、通信制御用のプログラムである。符号化制御モジュール853は、情報語から符号語を生成するためのモジュールである。マスク制御モジュール854は、情報語を1つの検査符号生成行列により並列演算可能とするためにマスクビットを挿入するモジュールである。パリティ演算モジュール855は、情報語の複数ビットと巡回置換された検査符号生成行列と既に演算されたパリティ演算符号とを並列演算するモジュールである。
 入出力インタフェース860は、入出力機器との入出力データをインタフェースする。
入出力インタフェース860には、情報語の入出力を行なう情報語入出力部861と、符号化装置200のステータスを表示して監視するための表示部862と、符号化装置200を操作するための操作部863とが接続される。
 なお、図8のRAM840やストレージ850には、符号化装置200が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。また、符号化装置200を復号も行なう通信装置として使用する場合には、符号語を検査して情報語を復元する行列である検査行列や、符号語から情報語を復元するモジュールである復号モジュールがストレージ850に格納されてよい。
 <符号化装置の処理手順>
 図9は、本実施形態に係る符号化装置200の処理手順を示すフローチャートである。
このフローチャートは、図8のCPU810とP個のパリティ演算部811~81Pとが、RAM840を用いながら実行し、図2の構成部を実現する。
 符号化装置200は、ステップS901において、QC-LDPC符号を含む符号語Yを生成する元の情報語Xを取得して記憶する。次に、符号化装置200は、ステップS903において、情報語Xに、並列演算数Pと巡回行列Bの行列サイズrに対応するマスクビットを挿入した情報語X’に基づいて、パリティ検査符号の生成処理を実行する。そして、符号化装置200は、ステップS905において、情報語Xに生成したQC-LDPC符号を付加して、符号語を生成する。
 なお、単位行列を含む生成行列により情報語から直接、符号語を生成する場合には、使用する「検査符号生成行列」を「生成行列」に置き換えることにより、ステップS903の生成処理と同様の手順によって実現できる。
 (パリティ検査符号生成処理)
 図10は、本実施形態に係るパリティ検査符号の生成処理(S903)の手順を示すフローチャートである。
 パリティ検査符号の生成処理(S903)は、情報語のrビットごとにマスクデータを挿入する情報語マスク処理(S1001)と、マスクデータが挿入された情報語を符号化並列処理数ごとに読み出す情報語読み出し処理(S1003)とを有する。さらに、パリティ検査符号の生成処理(S903)は、情報語のビット数に対応して検査符号生成行列を更新する必要があるかを判定する検査符号生成行列の更新判定処理(S1005)と、を有する。また、パリティ検査符号の生成処理(S903)は、パリティ演算する情報語のビット数に対応する検査符号生成行列を読み出す検査符号生成行列の読み出し処理(S1007)と、を有する。さらに、パリティ検査符号の生成処理(S903)は、読み出した検査符号生成行列を並列処理数ごとに巡回置換する検査符号生成行列の巡回置換処理(S1009)と、を有する。また、パリティ検査符号の生成処理(S903)は、マスクデータが挿入された情報語と巡回置換を行なった検査符号生成行列と演算済みのパリティ検査符号とから、パリティ検査符号を生成するパリティ演算処理(S1011)と、を有する。さらに、パリティ検査符号の生成処理(S903)は、生成したパリティ検査符号を記憶する検査符号記憶処理(S1013)と、パリティ検査符号の生成処理の完了を判定する検査符号演算完了の判定処理(S1015)と、を有する。
 符号化装置200は、情報語マスク処理(S1001)において、情報語のrビットごとにマスクデータを挿入してマスクされた情報語843として記憶する。符号化装置200は、情報語読み出し処理(S1003)において、マスクデータ挿入済みの情報語を先頭から並列処理数ずつ読み出す。符号化装置200は、検査符号生成行列の更新判定(S1005)において、情報語の読み出しビット数から検査符号生成行列を更新する必要があるかどうかを判定する。検査符号生成行列の更新が必要な場合、符号化装置200は、検査符号生成行列の読み出し処理(S1007)において、情報語に対応する検査符号生成行列を読み出して保持する。
検査符号生成行列の更新が不要の場合、符号化装置200は、検査符号生成行列の巡回置換処理(S1009)において、読み出し済みで保持された検査符号生成行列844を並列処理数分だけ巡回置換する。符号化装置200は、パリティ演算処理(S1011)において、マスクデータ挿入済みの情報語と巡回置換済みの検査符号生成行列と読出した演算済みのパリティ検査符号とによりパリティ演算を行う。符号化装置200は、検査符号記憶処理(S1013)において、パリティ演算結果を次のパリティ演算のために演算済みパリティ検査符号として検査符号記憶領域846に記憶する。符号化装置200は、検査符号演算完了の判定処理(S1015)において、情報語の読み出しビット数により検査符号演算完了の判定を行い、未完了の場合は、情報語読み出し処理(S1003)に戻って、次のPビットの情報語について並列処理を繰り返す。
 (情報語マスク処理)
 図11は、本実施形態に係る情報語マスク処理(S1001)の手順を示すフローチャートである。
 符号化装置200は、ステップS1101において、情報語のビット数(r×s)と、単位行列や巡回行列の行列サイズrと、パリティ演算部811~81Pの並列演算数Pと、を取得する。
そして、符号化装置200は、ステップS1103において、(r mod P)が0か否かを判定する。(r mod P)が0の場合、符号化装置200は、ステップS1121において、0マスクビットを挿入せずに、情報語をそのままパリティ演算部にPビットごとに出力する。
 (r mod P)が0でない場合、符号化装置200は、ステップS1105において、マスクビット数vに{P-(r mod P)}を設定する。符号化装置200は、ステップS1107において、変数jおよび変数qを0に初期化する。
 符号化装置200は、ステップS1109において、情報語の1ビットを出力またはメモリに記憶する。次に、符号化装置200は、ステップS1111において、変数jおよび変数qに1を加える。そして、符号化装置200は、ステップS1113において、変数j=rであるか否かを判定する。変数j=rでなければ、符号化装置200は、ステップS1109に戻って、情報ビットの出力あるいはメモリへの書込を繰り返す。かかる、ステップS1109~S1113によって、情報語のrビット毎の出力またはメモリへの記憶が行なわれる。本例は、図5の情報語マスク部220の構成を念頭にしているので、Pビットの並列処理は外部構成(メモリ構成)で実現されるが、ソフトウェアによりPビットの並列出力を行なうのであれば、Pビット単位の並列出力を制御するステップが追加される。
 変数j=rとなれば、符号化装置200は、ステップS1115において、v={P-(r mod P)}ビットの0を出力あるいはメモリに記憶する。次に、符号化装置200は、ステップS1117において、rビットをカウントする変数jを0に初期化する。そして、符号化装置200は、ステップS1119において、変数q=r×sであるか否かを判定する。変数q=r×sでない場合、符号化装置200は、ステップS1109に戻って、情報語の次のrビットの出力あるいはメモリへの記憶を繰り返す。かかる、ステップS1109~S1115によって、情報語のrビットの後に{P-(r mod P)}ビットの0を挿入することができる。
 変数q=r×sとなれば、情報語の全ビットを出力あるいはメモリへ記憶したので、情報語マスク処理(S1001)は終了してリターンする。
 <QC-LDPC符号の生成処理>
 図12は、本実施形態に係るQC-LDPC符号の生成処理を説明する図である。以下、図10のフローチャートに従って、符号化装置200によるQC-LDPC符号の生成処理を説明する。
 まず、符号化装置200は、情報語マスク処理(S1001)において、r mod P ≠0の場合、情報語Xに対しrビットごとに、{P-(r mod P)}ビットの0マスクデータ挿入した情報語X’を生成する。ここで、
Figure JPOXMLDOC01-appb-M000011
とすると、情報語Xとマスクデータ挿入後の情報語X’との関係は、
Figure JPOXMLDOC01-appb-M000012
Figure JPOXMLDOC01-appb-M000013
となる。
 次に、符号化装置200は、情報語読み出し処理(S1003)において、情報語X’を並列処理数であるPビットごとに読み出す。符号化装置200は、検査符号生成行列更新の判定処理(S1005)において、情報語X’の読み出しビット数から検査符号生成行列を更新するかどうかを判定する。符号化装置200は、検査符号生成行列の更新判定(S1005)の判定により、情報語X’をr’ビット分読み出すごとに、検査符号生成行列の読み出し処理(S1007)によって、巡回行列Bからなる検査符号生成行列{Bi,1,…,Bi,t}を更新する。符号化装置200は、検査符号生成行列の更新時以外は、検査符号生成行列の巡回置換処理(S1009)において、右巡回置換を行い、情報語X'i,mのビット位置mに応じて巡回置換Cmを行った検査符号生成行列{Cmi,1,…,Cmi,t}を生成する。符号化装置200は、パリティ演算処理(S1011)において、マスクデータ挿入後の情報語X'i,mと巡回置換後の検査符号生成行列{Cmi,1,…,Cmi,t}を乗算した結果と、既に演算後のパリティ検査符号{Ys+1,…,Ys+t}とをパリティ演算する。そして、符号化装置200は、パリティ演算結果を、情報語X'i,mまでのパリティ検査符号として、検査符号記憶処理(S1013)において記憶する。
 このため、図12に示すように、繰り返しの回数であるLサイクルごとに、マスクデータ挿入後の情報語X’は、マスクデータ{0,…,0}を含むデータとなり、検査符号生成行列は{Bi,1,…,Bi,t}から{Bi+1,1,…,Bi+1,t}に更新する。また、検査符号生成行列の更新時以外のサイクルでは、読み出した検査符号生成行列の巡回置換は、Pビットずつの巡回置換を行う。
 一般に、情報語X'i,mによる検査符号生成処理は、情報語X’の先頭からdビット分まで演算したパリティ検査符号をZ'dとすると、パリティ演算結果Z'd+1は、
Figure JPOXMLDOC01-appb-M000014
と表せる。
 式(14)を、i=1~s、m=0~r'-1まで繰り返すことで、情報語X’に対するパリティ検査符号Z's×r’を生成することができる。なお、情報語X'iのビット数であるr’は、マスクデータ挿入により、r' mod P = 0である。このため、符号化装置200におけるパリティ演算処理(S1011)によるPビット分のパリティ演算の並列処理は、
Figure JPOXMLDOC01-appb-M000015
となる。
 なお、式(15)において、m+P-1<rの場合、情報語X'i,mはマスクデータを含まない処理であるため、式(9)と同一の処理結果となる。また、m+P-1≧rの場合、パリティ演算にマスクデータを含む処理であり、式(15)は、{X'i,r,…,X'i,r’-1}={0,…,0}であるため、
Figure JPOXMLDOC01-appb-M000016
となる。
 式(15)および式(16)において、X'i,mのmは必ずm<rであるため、X'i,m=Xi,mである。このため、情報語マスク処理(S1001)において生成した、0マスクデータを挿入した情報語X’によりパリティ演算を行いパリティ演算検査符号Z's×r’を生成することで、マスク前の情報語Xに対するパリティ演算である式(9)をd=0からk-1まで繰り返すことと同一のパリティ検査符号Zs×rを生成することができる。
 <QC-LDPC符号の生成処理の具体例>
 図13は、本実施形態に係る生成行列1300の具体例を示す図である。
 図7の生成行列1300を構成する単位行列Iまたはその巡回行列Bは、(511×511)の行列で構成されている。また、ブロック数は14で、巡回行列Bは2列である。
 図14は、本実施形態に係るQC-LDPC符号の生成処理の具体例を説明する図である。なお、図13の単位行列Iまたはその巡回行列Bの行列サイズrが511の生成行列を使用し、並列処理数Pを14、ブロック数sを14、とした場合の具体例について説明する。本具体例では、図2の符号化装置200を用いて、図13の生成行列の検査符号生成行列による符号化処理により、パリティ検査符号{Y15,Y16}を生成する。なお、符号化処理は、検査符号生成行列の列ごとに独立した計算を行うため、Y15とY16は検査符号生成行列Bi,jのみが異なる同一の方法により計算することができる。以下、Y15の演算例について説明する。なお、Y15の生成において、検査符号記憶処理(S1013)において記憶するtサイクル演算済みのパリティ演算結果をZAtと表す。
 符号化装置200は、情報語マスク処理(S1001)により、図14のマスク後の情報語X’に示すように、情報語の511ビットごとに7ビットのマスクデータを挿入する。符号化装置200は、情報語読み出し処理(S1003)において、マスク後の情報語X’を14ビットごとに読み出し、518サイクルで処理を行う。なお、37サイクルごとにマスクデータを含む情報語を読み出すことになる。
 まず、符号化装置200は、1サイクル目の情報語読み出し処理(S1003)において、{X'1,0,…,X'1,13}を読み出す。符号化装置200は、検査符号生成行列の更新判定処理(S1005)において、情報語の読み出しビットが1~14ビット目の処理であるため、検査符号生成行列の更新が必要と判定する。さらに符号化装置200は、検査符号生成行列の読み出し処理(S1007)において、検査符号生成行列に含まれる巡回行列B1,1を読み出す。符号化装置200は、パリティ演算処理(S1011)において、巡回行列B1,1を巡回置換行列C0~C13により0~13ビットの14種類の右巡回置換を行ない、情報語{X'1,0,…, X'1,13}および演算済みパリティ検査符号であるZA0との式(17)のパリティ演算を行う。そして、符号化装置200は、検査符号記憶処理(S1013)においてパリティ演算結果ZA1を記憶する。
Figure JPOXMLDOC01-appb-M000017
 検査符号演算完了の判定処理(S1015)において、情報語の読み出しビット数が14であるため、検査符号演算未完了と判定し、情報語読み出し処理(S1003)に戻り、2サイクル目の処理を行う。
 符号化装置200は、2サイクル目の情報語読み出し処理(S1003)において、{X'1,14,…,X'1,27}を読み出す。符号化装置200は、検査符号生成行列更新の判定処理(S1005)においては、情報語の読み出しビットが15~28ビット目であるため、検査符号生成行列の未更新と判定する。したがって、符号化装置200は、検査符号生成行列の巡回置換処理(S1009)において、読み出している巡回行列B1,1を14ビット右巡回置換によりC141,1に置換する。符号化装置200は、パリティ演算処理(S1011)において、巡回置換された巡回行列C141,1を巡回置換行列C0~C13により0~13ビットの14種類の右巡回置換を行ない、情報語{X'1,14,…,X'1,27}および演算済みパリティ演算結果ZA1とのパリティ演算を行う。そして、符号化装置200は、検査符号記憶処理(S1013)においてパリティ演算結果ZA2を記憶する。
Figure JPOXMLDOC01-appb-M000018
 3サイクル目から36サイクル目までは、同様にマスク後の情報語X'1を14ビットずつ読み出し、パリティ演算結果ZAtのパリティ演算を行う。
 そして、符号化装置200は、37サイクル目の情報語読み出し処理(S1003)において、{X'1,504,…,X'1,517}を読み出す。符号化装置200は、検査符号生成行列の更新判定処理(S1005)において、情報語読み出しビット数が505~518ビット目であるため、検査符号生成行列の未更新と判定する。したがって、符号化装置200は、検査符号生成行列の巡回置換処理(S1009)において、読み出している巡回行列C4901,1を14ビット右巡回置換によりC5041,1に置換する。符号化装置200は、パリティ演算処理(S1011)において、巡回置換された巡回行列C5041,1を巡回置換行列C0~C13により0~13ビットの14種類の右巡回置換を行ない、情報語{X'1,504,…,X'1,517}および演算済みパリティ演算結果ZA36とのパリティ演算を行う。そして、符号化装置200は、パリティ演算結果ZA37を記憶する。
Figure JPOXMLDOC01-appb-M000019
 以上により、検査符号生成行列中の巡回行列B1,1のビット幅であるマスクデータ挿入前の情報語の511ビット分のパリティ検査符号生成が完了する。
 次に、符号化装置200は、38サイクル目の情報語読み出し処理(S1003)において、{X'2,0,…,X'2,13}を読み出す。符号化装置200は、検査符号生成行列の更新判定処理(S1005)において、情報語読み出しビットが519~532ビット目のため、巡回行列B1,1のビット幅である511ビット分の処理が完了し、読み出した情報語{X'2,0,…,X'2,13}に対応する検査符号生成行列への更新が必要と判定する。符号化装置200は、検査符号生成行列の読み出し処理(S1007)において、巡回行列B2,1を読み出す。符号化装置200は、パリティ演算処理(S1011)において、巡回行列B2,1を巡回置換行列C0~C13により0~13ビットの14種類の右巡回置換を行ない、情報語{X'2,0,…,X'2,13}および演算済みパリティ演算結果ZA37とのパリティ演算を行う。そして、符号化装置200は、パリティ演算結果ZA38を記憶する。
Figure JPOXMLDOC01-appb-M000020
 検査符号演算完了の判定処理(S1015)においては、情報語の読み出しビット数から検査符号演算未完了と判定し、情報語読み出し処理(S1003)に戻る。
 同様に、39サイクル目から517サイクル目までは、マスク後の情報語{X'2,…,X'14}を14ビットずつ読み出し、符号化装置200は、パリティ演算結果ZA517を生成する。
 最後に、518サイクル目の情報語読み出し処理(S1003)において、{X'14,504,…,X'14,517}を読み出す。符号化装置200は、検査符号生成行列更新の判定処理(S1005)において、情報語読み出しビットが7239~7252ビット目であるため、検査符号生成行列の未更新と判定する。したがって、符号化装置200は、検査符号生成行列の巡回置換処理(S1009)により、読み出している巡回行列C49014,1を14ビット右巡回置換によりC50414,1に置換する。符号化装置200は、パリティ演算処理(S1011)において、巡回行列C50414,1を巡回置換行列C0~C13により0~13ビットの14種類の右巡回置換を行ない、情報語{X'14,504,…,X'14,517}および演算済みパリティ演算結果Z517とのパリティ演算を行う。そして、パリティ演算結果ZA518を記憶する。
Figure JPOXMLDOC01-appb-M000021
 以上により、検査符号生成行列の巡回行列B14,1のビット幅である511ビット分の情報語に対するパリティ演算結果ZA518を生成することで、情報語Xに対するパリティ検査符号Y15の演算が完了する。同様に、検査符号生成行列の巡回行列{B1,1,…,B14,1}を巡回行列{B1,2,…,B14,2}とすることで、符号語Y16を生成することができる。
 (図2の符号化装置の構成における具体的処理)
 図2の符号化装置の構成において、図13の生成行列により、並列処理数Pを14とした場合の具体的処理について説明する。なお、図13の生成行列の検査符号生成行列による符号化処理によって、パリティ検査符号{Y15,Y16}を生成する。以下、Y15の演算例について説明する。なお、Y15の生成において、検査符号記憶部234で記憶するtサイクル演算済みのパリティ演算結果をZAtと表す。
 まず、1サイクル目に、情報語マスク部220は、情報語入力部210から{X1,0,…,X1,13}を入力する。情報語マスク部220は、マスクデータ挿入は不要なビットのため、パリティ演算部233に{X'1,0,…,X'1,13}を出力する。また、検査符号生成行列記憶部231から検査符号生成行列の巡回行列B1,1が読み出され第1生成行列巡回置換部232のレジスタに記憶される。第1生成行列巡回置換部232のレジスタの巡回行列B1,1は、巡回置換行列C0~C13により0~13ビットの14種類の巡回置換が行われ、パリティ演算部233に入力される。パリティ演算部233は、情報語マスク部220から入力する{X'1,0,…,X'1,13}と0~13ビット右巡回置換を行なった検査符号生成行列とパリティ演算結果ZA0とにより、式(17)のパリティ演算を行う。なお、パリティ演算結果ZA0は0値である。また、第1生成行列巡回置換部232のレジスタの巡回行列B1,1は、巡回置換行列C14により14ビットの巡回置換が行われ、次サイクルでC141,1に更新される。
 次に、2サイクル目に、情報語マスク部220は、情報語入力部210から{X1,14,…,X1,27}を入力する。また、第1生成行列巡回置換部232のレジスタは、巡回置換を行なった巡回行列C141,1に更新済みである。第1生成行列巡回置換部232のレジスタの巡回行列C141,1は、巡回置換行列C0~C13により0~13ビットの14種類の巡回置換が行われ、パリティ演算部233に入力される。パリティ演算部233は、情報語マスク部220から入力する{X'1,14,…,X'1,27}と0~13ビット右巡回置換を行なった巡回行列とパリティ演算結果ZA1により、式(18)のパリティ演算を行う。また、第1生成行列巡回置換部232のレジスタの巡回行列C141,1は、巡回置換行列C14により14ビットの巡回置換が行われ、次サイクルでC281,1に更新される。
 3サイクル目から36サイクル目までは、同様にマスク後の情報語X'1(=X1)が14ビットずつパリティ演算部233に入力される。第1生成行列巡回置換部232のレジスタの巡回置換された巡回行列は、巡回置換行列C14によりサイクルごとに14ビットの巡回置換が行われ、パリティ演算結果ZAtのパリティ演算が行われる。
 次に、37サイクル目に、情報語マスク部220は情報語入力部210からの{X1,504,…,X1,510}を入力する。また、第1生成行列巡回置換部232のレジスタは、巡回行列C5041,1に更新済みである。第1生成行列巡回置換部232のレジスタの巡回行列C5041,1は、巡回置換行列C0~C13により0~13ビットの14種類の巡回置換を行なった、パリティ演算部233に入力される。パリティ演算部233は、情報語マスク部220から入力する{X'1,504,…,X'1,510, 0, 0, 0, 0, 0, 0, 0}と0~13ビット右巡回置換を行なった検査符号生成行列の巡回行列とパリティ演算結果ZA36により、式(19)のパリティ演算を行う。
 以上により、検査符号生成行列の巡回行列B1,1のビット幅である511ビット分の情報語に対するパリティ検査符号の生成が完了するため、次のサイクルに第1生成行列巡回置換部232のレジスタを検査符号生成行列の巡回行列B2,1に更新する。
 次に、38サイクル目に、情報語マスク部220は情報語入力部210から{X2,0,…,X2,13}を入力する。また、第1生成行列巡回置換部232のレジスタは、巡回行列C02,1に更新済みである。第1生成行列巡回置換部232のレジスタの巡回行列C02,1は、巡回置換行列C0~C13により0~13ビットの14種類の巡回置換を行なった、パリティ演算部233に入力される。パリティ演算部233は、情報語マスク部220から入力する{X'2,0,…,X'2,13}と0~13ビット右巡回置換を行なった巡回行列を乗算した結果とパリティ演算結果ZA37により、式(20)のパリティ演算を行う。また、第1生成行列巡回置換部232のレジスタの巡回行列C02,1は、巡回置換行列C14により14ビットの巡回置換が行われ、次サイクルは巡回行列C142,1に更新される。
 39サイクル目から517サイクル目までは、マスク後の情報語{X'2,…,X'14}が14ビットずつ読み出される。第1生成行列巡回置換部232は、読み出した検査符号生成行列{B2,1,…,B14,1}に巡回置換行列C14による14ビットの巡回置換を行う。パリティ演算部233は、演算済みのパリティ演算結果ZAtとのパリティ演算を行い、パリティ演算結果ZA517を生成する。
 最後に、518サイクル目に、情報語マスク部220は、情報語入力部210から{X14,504,…,X14,510}を入力する。第1生成行列巡回置換部232のレジスタは、巡回行列C50414,1に更新済みである。第1生成行列巡回置換部232のレジスタの巡回行列C50414,1は、巡回置換符号C0~C13により0~13ビットの14種類の巡回置換が行われ、パリティ演算部233に入力される。パリティ演算部233は、情報語マスク部220から入力する{X'14,504,…,X'14,510, 0, 0, 0, 0, 0, 0, 0}と0~13ビット右巡回置換を行なった巡回行列とパリティ演算結果ZA517とにより、式(21)のパリティ演算を行う。
 以上により、検査符号生成行列の巡回行列B14,1のビット幅である511ビット分の情報語に対するパリティ演算結果ZA518を生成することで、情報語Xに対するパリティ検査符号Y15の演算が終了する。同様に、検査符号生成行列の巡回行列{B1,1,…,B14,1}を巡回行列{B1,2,…,B14,2}とすることで、パリティ検査符号Y16を生成することができる。
 生成されたパリティ検査符号{Y15,Y16}は、検査符号記憶部234から読み出されて、符号語出力部240において情報語の後に付加されて、符号語{Y1,Y2,…,Y15,Y16}が生成出力される。
 なお、検査符号生成行列に代えて単位行列Iを含む生成行列Gを用いることにより、検査符号記憶部234から直接に符号語を出力することができる。
 本実施形態によれば、情報語にゼロを挿入してビット数を並列演算数の倍数とすることにより、構成および動作を複雑にすることなく、実現したい処理性能に対して適切な並列処理数を選択することができる。すなわち、本実施形態によれば、生成行列の巡回行列の行列サイズにかかわらず、1種類の生成行列あるいは検査符号生成行列の巡回置換により、任意の並列処理数によるQC-LDPC符号による符号化方法および符号化装置を実現できる。その理由は、情報語マスク処理により、生成行列あるいは検査符号生成行列中の単位行列や巡回行列の行列サイズであるrビットごとに情報語にマスクデータを挿入するからである。これにより、並列処理数が生成行列の巡回行列の行列サイズの約数である場合と同一のパリティ演算を実現することができる。
 [第3実施形態]
 次に、本発明の第3実施形態に係る符号化装置について説明する。本実施形態に係る符号化装置は、上記第2実施形態と比べ、生成行列または検査符号生成行列の巡回置換を情報語のビット位置mではなく、(情報語のビット位置m mod P)に対応して行なう点で異なる。そして、パリティ演算結果に対して並列処理数Pビットの巡回置換を行なう。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
 <本実施形態に係る符号化装置の構成>
 図15は、本実施形態に係る符号化装置1500の構成を示すブロック図である。
なお、図15において、図2と同様の構成部には同じ参照番号を付して、説明を省略する。
 図15の符号化装置1500は、パリティ検査符号生成部1530を備える。パリティ検査符号生成部1530は、第2生成行列巡回置換部1532と、検査符号巡回置換部1535と、を有する。したがって、図6のパリティ演算部233において、巡回置換された検査符号生成行列は第2生成行列巡回置換部1532から取得し、パリティ演算結果のパリティ検査符号は検査符号巡回置換部1535に出力されることになる。また、図7の検査符号記憶部234において、バッファ701に書き込まれるパリティ検査符号は検査符号巡回置換部1535から取得されることになる。
 第2生成行列巡回置換部1532は、検査符号生成行列を並列処理数ごとに、(情報語のビット位置m mod P)に対応して巡回置換を行なったパリティ演算部233に提供する。検査符号巡回置換部1535は、パリティ演算部233で算出したパリティ検査符号を並列処理数ビットだけ巡回置換を行なって検査符号記憶部234に出力する。
 なお、パリティ検査符号生成部1530を、単位行列を含む生成行列に基づいて並列処理する構成に置き換えた場合には、直接、符号語Yが生成されることになる。また、情報語マスク部220と、パリティ検査符号生成部1530と、同期信号生成部250と、を含むパリティ検査符号生成装置1560を1つの装置として構成してもよい。
 図15の符号化装置1500の構成図を用いて、符号化装置および符号化方法の動作を説明する。
 まず、情報語マスク部220は、情報語入力部210から情報語を並列処理数Pビットごとに入力する。次に、情報語マスク部220は、(r mod P)≠0の場合、情報語Xに対し、rビットごとに、{P-(r mod P)}ビットの0マスクデータを挿入済みのr’ビット単位の情報語X’を生成し、パリティ演算部233に出力する。また、検査符号生成行列記憶部231から検査符号生成行列{Bi,1,…,Bi,t}が第2生成行列巡回置換部1532に入力される。ただし、情報語X'i,mのビット位置をdとすると、i=d/r+1,d=(i-1)×r’+mである。第2生成行列巡回置換部1532は、情報語X'i,mのビット位置mに応じて、巡回置換C(m mod P)を行った{C(m mod P)i,1,…,C(m mod P)i,t}をパリティ演算部233に入力する。なお、Cmによる右巡回置換量は、mビットである。パリティ演算部233は、Pビット分の情報語と生成行列を乗算し、既に生成されたパリティ検査符号とのパリティ演算を行った結果を、検査符号巡回置換部1535に出力する。検査符号巡回置換部1535は、パリティ演算部233で算出したパリティ検査符号を、並列処理数Pビット分だけ左巡回置換し、検査符号記憶部234に記憶する。
 パリティ演算部233における、情報語X'i,mによるパリティ検査符号生成処理は、
Figure JPOXMLDOC01-appb-M000022
と表せる。
 式(22)の演算は、式(14)の演算に対し、パリティ演算結果Z'dをmビット分左巡回置換を行なって演算している状態である。式(22)をPビット分並列動作させる場合の演算は、式(23)となる。
Figure JPOXMLDOC01-appb-M000023
 ただし、図15の符号化装置1500は、並列処理数Pが生成行列や検査符号生成行列内の巡回行列Bの行列サイズrの約数でない場合、検査符号生成行列Bi={Bi,1,…,Bi,t}を更新する必要のあるサイクルでは、情報語X’のPビットのうち(r mod P)ビット分のみが有効な情報語であり、その他のビットは0マスクデータである。このため、巡回行列Biによる最後のサイクルでは、検査符号巡回置換部1535において、式(24)に示すような(r mod P)ビット左巡回置換を行う。
Figure JPOXMLDOC01-appb-M000024
 式(24)の処理により、巡回行列Biによる演算の左巡回置換量がrとなり巡回行列の巡回置換が1周するため、巡回行列Bi+1による演算を行う際、情報語X’と符号語Yのビット対応が一致する。このため、図2の構成と同様、情報語マスク部220がマスクデータを挿入した情報語X’によりパリティ演算を行いパリティ検査符号Z's×r’を生成する。これにより、マスクデータ挿入前の情報語Xに対するパリティ検査符号Zs×rを生成することができる。
 なお、本実施形態の構成によれば、検査符号生成行列記憶部231から読み出す検査符号生成行列に対する第2生成行列巡回置換部1532の処理量は、図2の構成の第1生成行列巡回置換部232の処理量に比べて少ない。これにより、例えば、半導体集積回路に実装する場合に配線効率を向上できる。
 <QC-LDPC符号の生成処理の具体例>
 次に、第2実施形態に示した具体例を用いて本実施形態の構成および動作を説明する。
図13の生成行列図により、並列処理数Pを14とした場合の具体例について説明する。
なお、図13の生成行列の検査符号生成行列による符号化処理により、パリティ検査符号{Y15,Y16}が生成される。なお、符号化処理は、検査符号生成行列の列ごとに独立した計算を行うため、Y15とY16は検査符号生成行列Bi,jのみが異なる同一の方法により計算することができる。以下、パリティ検査符号Y15の演算例について説明する。なお、Y15の生成において、検査符号記憶部234で記憶するtサイクル演算済みのパリティ検査符号をパリティ演算結果ZAtと表す。
 まず、1サイクル目に、情報語マスク部220は、情報語入力部210から情報語Xの{X1,0,…,X1,13}を入力する。情報語マスク部220は、マスクデータ挿入は不要なビットのため、パリティ演算部233に{X'1,0,…,X'1,13}(={X1,0,…,X1,13})を出力する。検査符号生成行列記憶部231から巡回行列B1,1が読み出され第2生成行列巡回置換部1532のレジスタに記憶され、パリティ演算部233に入力される。この時、第2生成行列巡回置換部1532のレジスタの巡回行列B1,1は、巡回置換行列C0~C13により0~13ビットの14種類の巡回置換が行われ、パリティ演算部233に入力される。パリティ演算部233は、情報語マスク部220が入力する情報語{X'1,0,…,X'1,13}と、0~13ビット右巡回置換を行なった検査符号生成行列と、既にパリティ演算したパリティ演算結果ZA0とにより、式(25)のパリティ演算を行う。そして、パリティ演算部233は、パリティ演算結果を検査符号巡回置換部1535に出力する。なお、パリティ演算結果ZA0は0値である。検査符号巡回置換部1535は、入力したパリティ演算結果を巡回置換行列C14-1により左巡回置換を行ない、検査符号記憶部234に入力する。
Figure JPOXMLDOC01-appb-M000025
 次に、2サイクル目は、情報語マスク部220が、情報語入力部210から情報語Xの{X1,14,…,X1,27}を入力する。情報語マスク部220は、マスクデータの挿入が不要なビットのため、パリティ演算部233に{X'1,14,…,X'1,27}(={X1,14,…,X1,27})を出力する。第2生成行列巡回置換部1532のレジスタの巡回行列B1,1は、1サイクル目と同様、巡回置換行列C0~C13により0~13ビットの14種類の巡回置換を行ない、パリティ演算部233に入力する。パリティ演算部233は、情報語マスク部220から入力する情報語{X'1,14,…,X'1,27}と、0~13ビット右巡回置換を行なった検査符号生成行列と、既にパリティ演算したパリティ演算結果ZA1とにより式(26)のパリティ演算を行う。そして、演算結果を検査符号巡回置換部1535に出力する。
検査符号巡回置換部1535では、入力したパリティ演算結果を巡回置換行列C14-1により左巡回置換を行ない、検査符号記憶部234に入力する。
Figure JPOXMLDOC01-appb-M000026
 3サイクル目から36サイクル目までは、同様にマスク後の情報語X’が14ビットずつパリティ演算部233に入力される。パリティ演算部233は、第2生成行列巡回置換部1532で14ビットごとに右巡回置換を行なった巡回行列B1,1を乗算した結果と、検査符号記憶部234のパリティ検査結果ZAtとのパリティ演算を行う。そして、パリティ演算部233は、演算結果を検査符号巡回置換部1535に出力する。検査符号巡回置換部1535は、入力したパリティ演算結果を巡回置換行列C14-1により左巡回置換を行ない、検査符号記憶部234に入力する。
 次に、37サイクル目は、情報語マスク部220は、情報語入力部210から情報語Xの{X1,504,…,X1,510}を入力する。情報語マスク部220は、マスクデータ挿入が必要なビットのため、パリティ演算部233に{X'1,504,…,X'1,510, 0, 0, 0, 0, 0,0, 0}を出力する。第2生成行列巡回置換部1532のレジスタの巡回行列B1,1は、1サイクル目と同様、巡回置換行列C0~C13により0~13ビットの14種類の巡回置換が行われ、パリティ演算部233に入力される。パリティ演算部233は、情報語マスク部220から入力する情報語{X'1,504,…,X'1,510, 0, 0, 0, 0, 0, 0, 0}と0~13ビット右巡回置換を行なった巡回行列を乗算した結果と、36サイクル目のパリティ演算結果ZA36により式(27)のパリティ演算を行う。そして、パリティ演算部233は、パリティ演算結果を、検査符号巡回置換部1535に出力する。検査符号巡回置換部1535は、巡回行列B1,1のビット幅である511ビット分の情報語に対するパリティ検査符号の生成が完了するサイクルであるため、(511 mod 14)=7ビット分左巡回置換を行う。検査符号巡回置換部1535は、パリティ検査符号の総巡回置換数を巡回行列Bの行列サイズである511として、検査符号記憶部234に記憶する。これにより、検査符号の巡回置換量は巡回行列Bに対して1周分となり、次に更新する巡回行列Bとパリティ検査符号とのビット対応が一致する。
Figure JPOXMLDOC01-appb-M000027
 以上により、巡回行列B1,1のビット幅である511ビット分の情報語に対するパリティ検査符号の生成が完了するため、次のサイクルに検査符号生成行列記憶部231から第2生成行列巡回置換部1532のレジスタを巡回行列B2,1に更新する。
 次に、38サイクル目は、情報語マスク部220は、情報語入力部210から情報語Xの{X2,0,…,X2,13}を入力する。情報語マスク部220は、マスクデータ挿入は不要なビットのため、パリティ演算部233に{X'2,0,…,X'2,13}(={X2,0,…,X2,13})を出力する。第2生成行列巡回置換部1532のレジスタの巡回行列B2,1は、1サイクル目と同様、巡回置換行列C0~C13により0~13ビットの14種類の巡回置換が行われ、パリティ演算部233に出力される。パリティ演算部233は、情報語マスク部220から入力する情報語{X'2,0,…,X'2,13}と、0~13ビット右巡回置換を行なった巡回行列と、37サイクル目のパリティ演算結果ZA37とにより、式(28)のパリティ演算を行う。そして、パリティ演算部233は、演算結果を検査符号巡回置換部1535に出力する。検査符号巡回置換部1535は、入力したパリティ演算結果を巡回置換行列C14-1により左巡回置換し、検査符号記憶部234に記憶する。
Figure JPOXMLDOC01-appb-M000028
 39サイクル目から517サイクル目までは、同様に、マスク後の情報語{X'2,…,X'14}が14ビットずつ読み出される。第2生成行列巡回置換部1532に入力される検査符号生成行列の巡回行列Bi,1の37サイクル毎の更新と巡回置換、検査符号巡回置換部1535によるパリティ演算結果の巡回置換により、517サイクル目のパリティ演算結果ZA517が生成される。
 最後に、518サイクル目は、情報語マスク部220は、情報語入力部210から情報語Xの{X14,504,…,X14,510}を入力する。情報語マスク部220は、マスクデータ挿入が必要なビットのため、パリティ演算部233に{X'14,504,…,X'14,510, 0, 0, 0, 0, 0, 0, 0}を出力する。第2生成行列巡回置換部1532のレジスタの巡回行列B14,1は、1サイクル目と同様、巡回置換行列C0~C13により0~13ビットの14種類の巡回置換が行われ、パリティ演算部233に出力される。パリティ演算部233は、情報語マスク部220から入力する情報語{X'14,504,…,X'14,510, 0, 0, 0, 0, 0, 0, 0}と、0~13ビット右巡回置換を行なった巡回行列と、517サイクル目のパリティ演算結果ZA517により、式(29)のパリティ演算を行う。そして、パリティ演算部233は、パリティ演算結果を、検査符号巡回置換部1535に出力する。検査符号巡回置換部1535は、巡回行列B14,1の更新サイクルであるため、(511 mod 14)=7ビット分左巡回置換を行ない、パリティ検査符号の総巡回置換数を511として検査符号記憶部234に記憶する。
Figure JPOXMLDOC01-appb-M000029
 以上により、巡回行列B14,1のビット幅である511ビット分の情報語に対するパリティ演算結果ZA518を生成することで、情報語Xに対するパリティ検査符号Y15の演算が終了する。同様に、検査符号生成行列の巡回行列{B1,1,…,B14,1}を巡回行列{B1,2,…,B14,2}とすることで、パリティ検査符号Y16を生成することができる。
 本実施形態によれば、検査符号生成行列記憶部から読み出し検査符号生成行列に対する巡回置換の処理量が少なくなるため、例えば、半導体集積回路に実装する場合に配線効率を向上できる。
 また、第2実施形態と同様に、本実施形態によれば、情報語にゼロを挿入してビット数を並列演算数の倍数とすることにより、構成および動作を複雑にすることなく、実現したい処理性能に対して適切な並列処理数を選択することができる。すなわち、本実施形態によれば、生成行列の巡回行列の行列サイズにかかわらず、1種類の生成行列あるいは検査符号生成行列の巡回置換により、任意の並列処理数によるQC-LDPC符号による符号化方法および符号化装置を実現できる。その理由は、情報語マスク処理により、生成行列あるいは検査符号生成行列中の単位行列や巡回行列の行列サイズであるrビットごとに情報語にマスクデータを挿入することにある。これにより、並列処理数が生成行列の巡回行列の行列サイズの約数である場合と同一のパリティ演算を実現することができるからである。
 [他の実施形態]
 以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
 また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるWWW(World Wide Web)サーバも、本発明の範疇に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体(non-transitory computer readable medium)は本発明の範疇に含まれる。
 [実施形態の他の表現]
 上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
 入力された情報語のPビットを順に生成行列中の検査符号生成行列と並列演算して、QC-LDPC符号を生成するパリティ検査符号生成部と、
 前記検査符号生成行列中の巡回行列の行列サイズをrビットとし、Pビットがrビットの約数となっていない場合に、前記情報語のrビットごとに{P-(r mod P)}ビットのゼロを挿入して、前記パリティ検査符号生成部に出力する情報語マスク部と、
 前記情報語に前記QC-LDPC符号を付加して符号語として出力する符号語出力部と、
 を備える符号化装置。
(付記2)
 前記情報語マスク部は、前記Pビットの並列演算の{([r/P]+1)×i}(i=1…s)サイクル目に、(r mod P)ビットの情報語と{P-(r mod P)}ビットのゼロとを含むPビットとを、前記パリティ検査符号生成部に出力する付記1に記載の符号化装置。
(付記3)
 前記パリティ検査符号生成部は、
  1つの検査符号生成行列を記憶する検査符号生成行列記憶部と、
  前記1つの検査符号生成行列を前記情報語のビット位置mに対応して右巡回置換する第1生成行列巡回置換部と、
  前記情報語マスク部から出力されたPビットと、前記巡回置換された検査符号生成行列および前のPビットの演算結果との演算を行なうパリティ演算部と、
  前記パリティ演算部の次のPビットの演算に使うために、前記パリティ演算部の演算結果を記憶する検査符号記憶部と、
 を有する付記1または2に記載の符号化装置。
(付記4)
 前記パリティ検査符号生成部は、
  1つの検査符号生成行列を記憶する検査符号生成行列記憶部と、
  前記1つの検査符号生成行列を前記情報語のビット位置をmとした場合に、(m mod P)に対応して右巡回置換する第2生成行列巡回置換部と、
  前記情報語マスク部から出力されたPビットと、前記巡回置換された検査符号生成行列および前のPビットの演算結果との演算を行なうパリティ演算部と、
  前記パリティ演算部の演算結果をPビットだけ左巡回置換する検査符号巡回置換部と、
  前記パリティ演算部の次のPビットの演算に使うために、前記検査符号巡回置換部による巡回置換の結果を記憶する検査符号記憶部と、
 を有する付記1または2に記載の符号化装置。
(付記5)
 入力された情報語のPビットを順に生成行列と並列演算して、符号語を生成する符号化方法であって、
 前記生成行列中の単位行列および巡回行列の行列サイズをrビットとし、Pビットがrビットの約数となっていない場合に、前記情報語のrビットごとに{P-(r mod P)}ビットのゼロを挿入し、
 生成されたPビットを順に前記生成行列と並列演算して、前記情報語にQC-LDPC符号が付加された符号語を生成する、
 符号化方法。
(付記6)
 入力された情報語のPビットを順に生成行列と並列演算して、符号語を生成する符号化装置の制御プログラムであって、
 前記生成行列中の単位行列および巡回行列の行列サイズをrビットとし、Pビットがrビットの約数となっていない場合に、前記情報語のrビットごとに{P-(r mod P)}ビットのゼロを挿入し、
 生成されたPビットを順に前記生成行列と並列演算して、前記情報語にQC-LDPC符号が付加された符号語を生成し、
 をコンピュータに実行させる符号化装置の制御プログラム。
(付記7)
 入力された情報語のPビットを順に生成行列と並列演算して、符号語を生成する符号化方法であって、
 前記生成行列中の巡回行列の行列サイズをrビットとし、Pビットがrビットの約数となっていない場合に、前記情報語のrビットごとに{P-(r mod P)}ビットのゼロを挿入し、
 生成されたPビットを順に前記生成行列中の検査符号生成行列と並列演算して、QC-LDPC符号を生成し、
 前記情報語に前記QC-LDPC符号を付加して符号語として出力する、
 符号化方法。
(付記8)
 入力された情報語のPビットを順に生成行列と並列演算して、符号語を生成する符号化装置の制御プログラムであって、
 前記生成行列中の巡回行列の行列サイズをrビットとし、Pビットがrビットの約数となっていない場合に、前記情報語のrビットごとに{P-(r mod P)}ビットのゼロを挿入し、
 生成されたPビットを順に前記生成行列中の検査符号生成行列と並列演算して、QC-LDPC符号を生成し、
 前記情報語に前記QC-LDPC符号を付加して符号語として出力する、
 ことをコンピュータに実行させる符号化装置の制御プログラム。
(付記9)
 QC-LDPC符号を生成するパリティ検査符号生成装置であって、
 情報語のPビットを生成行列中の検査符号生成行列と並列演算してQC-LDPC符号を生成するパリティ演算部と、
 前記検査符号生成行列中の巡回行列の行列サイズをrビットとし、Pビットがrビットの約数となっていない場合に、前記情報語のrビットごとに{P-(r mod P)}ビットのゼロを挿入する情報語マスク部と、
 を備え、
 前記パリティ演算部は、1つの検査符号生成行列を用いて前記QC-LDPC符号を生成するパリティ検査符号生成装置。
 この出願は、2014年3月4日に出願された日本出願特願2014-042161を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 100 符号化装置
 101 情報語
 110 情報語マスク部
 120 パリティ検査符号生成部
 121 QC-LDPC符号
 130 符号語出力部
 131 符号語
 200 符号化装置
 210 情報語入力部
 220 情報語マスク部
 230 パリティ検査符号生成部
 231 検査符号生成行列記憶部
 232 第1生成行列巡回置換部
 233 パリティ演算部
 234 検査符号記憶部
 240 符号語出力部
 250 同期信号生成部
 400 符号化装置
 430 パリティ検査符号生成部
 501 メモリ
 502 ライトアドレスポインタ
 503 リードアドレスポインタ
 611 AND演算部
 612 AND演算部
 61P AND演算部
 620 XOR演算部
 701 バッファ
 810 CPU
 811 パリティ演算部
 812 パリティ演算部
 81P パリティ演算部
 820 ROM
 830 通信制御部
 840 RAM
 850 ストレージ
 860 入出力インタフェース
 861 情報語入出力部
 862 表示部
 863 操作部
 1300 生成行列
 1500 符号化装置
 1530 パリティ検査符号生成部
 1532 第2生成行列巡回置換部
 1535 検査符号巡回置換部

Claims (9)

  1.  入力された情報語のPビットを順に生成行列中の検査符号生成行列と並列演算して、QC-LDPC符号を生成するパリティ検査符号生成手段と、
     前記検査符号生成行列中の巡回行列の行列サイズをrビットとし、Pビットがrビットの約数となっていない場合に、前記情報語のrビットごとに{P-(r mod P)}ビットのゼロを挿入して、前記パリティ検査符号生成手段に出力する情報語マスク手段と、
     前記情報語に前記QC-LDPC符号を付加して符号語として出力する符号語出力手段と、
     を備える符号化装置。
  2.  前記情報語マスク手段は、前記Pビットの並列演算の{([r/P]+1)×i}(i=1…s)サイクル目に、(r mod P)ビットの情報語と{P-(r mod P)}ビットのゼロとを含むPビットとを、前記パリティ検査符号生成手段に出力する請求項1に記載の符号化装置。
  3.  前記パリティ検査符号生成手段は、
      1つの検査符号生成行列を記憶する検査符号生成行列記憶手段と、
      前記1つの検査符号生成行列を前記情報語のビット位置mに対応して右巡回置換する第1生成行列巡回置換手段と、
      前記情報語マスク手段から出力されたPビットと、前記巡回置換された検査符号生成行列および前のPビットの演算結果との演算を行なうパリティ演算手段と、
      前記パリティ演算手段の次のPビットの演算に使うために、前記パリティ演算手段の演算結果を記憶する検査符号記憶手段と、
     を有する請求項1または2に記載の符号化装置。
  4.  前記パリティ検査符号生成手段は、
      1つの検査符号生成行列を記憶する検査符号生成行列記憶手段と、
      前記1つの検査符号生成行列を前記情報語のビット位置をmとした場合に、(m mod P)に対応して右巡回置換する第2生成行列巡回置換手段と、
      前記情報語マスク手段から出力されたPビットと、前記巡回置換された検査符号生成行列および前のPビットの演算結果との演算を行なうパリティ演算手段と、
      前記パリティ演算手段の演算結果をPビットだけ左巡回置換する検査符号巡回置換手段と、
      前記パリティ演算手段の次のPビットの演算に使うために、前記検査符号巡回置換手段による巡回置換の結果を記憶する検査符号記憶手段と、
     を有する請求項1または2に記載の符号化装置。
  5.  入力された情報語のPビットを順に生成行列と並列演算して、符号語を生成する符号化方法であって、
     前記生成行列中の単位行列および巡回行列の行列サイズをrビットとし、Pビットがrビットの約数となっていない場合に、前記情報語のrビットごとに{P-(r mod P)}ビットのゼロを挿入し、
     生成されたPビットを順に前記生成行列と並列演算して、前記情報語にQC-LDPC符号が付加された符号語を生成する、
     符号化方法。
  6.  入力された情報語のPビットを順に生成行列と並列演算して、符号語を生成する符号化装置の制御プログラムを格納した記録媒体であって、
     前記生成行列中の単位行列および巡回行列の行列サイズをrビットとし、Pビットがrビットの約数となっていない場合に、前記情報語のrビットごとに{P-(r mod P)}ビットのゼロを挿入し、
     生成されたPビットを順に前記生成行列と並列演算して、前記情報語にQC-LDPC符号が付加された符号語を生成する、
     ことをコンピュータに実行させる符号化装置の制御プログラムを格納した記録媒体。
  7.  入力された情報語のPビットを順に生成行列と並列演算して、符号語を生成する符号化方法であって、
     前記生成行列中の巡回行列の行列サイズをrビットとし、Pビットがrビットの約数となっていない場合に、前記情報語のrビットごとに{P-(r mod P)}ビットのゼロを挿入し、
     生成されたPビットを順に前記生成行列中の検査符号生成行列と並列演算して、QC-LDPC符号を生成し、
     前記情報語に前記QC-LDPC符号を付加して符号語として出力する、
     符号化方法。
  8.  入力された情報語のPビットを順に生成行列と並列演算して、符号語を生成する符号化装置の制御プログラムを格納した記録媒体であって、
     前記生成行列中の巡回行列の行列サイズをrビットとし、Pビットがrビットの約数となっていない場合に、前記情報語のrビットごとに{P-(r mod P)}ビットのゼロを挿入し、
     生成されたPビットを順に前記生成行列中の検査符号生成行列と並列演算して、QC-LDPC符号を生成し、
     前記情報語に前記QC-LDPC符号を付加して符号語として出力する、
     ことをコンピュータに実行させる符号化装置の制御プログラムを格納した記録媒体。
  9.  QC-LDPC符号を生成するパリティ検査符号生成装置であって、
     情報語のPビットを生成行列中の検査符号生成行列と並列演算してQC-LDPC符号を生成するパリティ演算手段と、
     前記検査符号生成行列中の巡回行列の行列サイズをrビットとし、Pビットがrビットの約数となっていない場合に、前記情報語のrビットごとに{P-(r mod P)}ビットのゼロを挿入する情報語マスク手段と、
     を備え、
     前記パリティ演算手段は、1つの検査符号生成行列を用いて前記QC-LDPC符号を生成するパリティ検査符号生成装置。
PCT/JP2015/000993 2014-03-04 2015-02-26 パリティ検査符号生成装置、符号化方法、符号化装置および記録媒体 WO2015133095A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016506120A JPWO2015133095A1 (ja) 2014-03-04 2015-02-26 パリティ検査符号生成装置、符号化方法、符号化装置および制御プログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014042161 2014-03-04
JP2014-042161 2014-03-04

Publications (1)

Publication Number Publication Date
WO2015133095A1 true WO2015133095A1 (ja) 2015-09-11

Family

ID=54054912

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/000993 WO2015133095A1 (ja) 2014-03-04 2015-02-26 パリティ検査符号生成装置、符号化方法、符号化装置および記録媒体

Country Status (2)

Country Link
JP (1) JPWO2015133095A1 (ja)
WO (1) WO2015133095A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107436821A (zh) * 2016-05-31 2017-12-05 Arm 有限公司 为包括多个数据位和地址位的块生成错误码的装置和方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107863971B (zh) * 2017-10-16 2020-09-18 山东电力工程咨询院有限公司 一种针对ptn的ldpc码校验矩阵的构造方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0766739A (ja) * 1993-08-25 1995-03-10 Toshiba Corp 無線通信装置
JP2006304132A (ja) * 2005-04-25 2006-11-02 Sony Corp 符号装置および符号化方法
WO2008026740A1 (fr) * 2006-08-31 2008-03-06 Panasonic Corporation procédé de codage, codeur et émetteur
JP2010016484A (ja) * 2008-07-01 2010-01-21 Fujitsu Ltd データ転送装置、データ転送方法及びデータ転送プログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0766739A (ja) * 1993-08-25 1995-03-10 Toshiba Corp 無線通信装置
JP2006304132A (ja) * 2005-04-25 2006-11-02 Sony Corp 符号装置および符号化方法
WO2008026740A1 (fr) * 2006-08-31 2008-03-06 Panasonic Corporation procédé de codage, codeur et émetteur
JP2008086008A (ja) * 2006-08-31 2008-04-10 Matsushita Electric Ind Co Ltd 符号化方法、符号化装置、及び送信装置
JP2010016484A (ja) * 2008-07-01 2010-01-21 Fujitsu Ltd データ転送装置、データ転送方法及びデータ転送プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107436821A (zh) * 2016-05-31 2017-12-05 Arm 有限公司 为包括多个数据位和地址位的块生成错误码的装置和方法
CN107436821B (zh) * 2016-05-31 2022-08-19 Arm 有限公司 为包括多个数据位和地址位的块生成错误码的装置和方法

Also Published As

Publication number Publication date
JPWO2015133095A1 (ja) 2017-04-06

Similar Documents

Publication Publication Date Title
US10461778B2 (en) Interleaving and puncturing apparatus and method thereof
KR101211433B1 (ko) 낮은 복잡도를 가지는 고속의 qc-ldpc 부호의 부호화 장치 및 방법
JP4602406B2 (ja) データをエンコード及びデコードするための方法並びに装置
JP5199463B2 (ja) ターボldpc復号
CN101273532B (zh) 解码装置及接收装置
CN107786211B (zh) 一种ira-qc-ldpc码的代数结构获取方法、编码方法和编码器
CN106936444B (zh) 一种集合译码方法和集合译码器
KR100894234B1 (ko) 선형 블록 코드의 인코딩 방법 및 장치
KR100550101B1 (ko) 저밀도 패리티 검사 부호의 부호화와 복호 장치 및 그방법
US9998149B2 (en) Constant hamming weight coding
WO2015133095A1 (ja) パリティ検査符号生成装置、符号化方法、符号化装置および記録媒体
KR20060082134A (ko) 이동 통신 시스템에서 채널 부호화 장치 및 방법
RU2598781C1 (ru) Способ линейного преобразования (варианты)
CN110941505A (zh) 产生错误校正电路的方法
CN111313912B (zh) 一种ldpc码编码器及编码方法
JP2000004169A (ja) Crc演算方法及びcrc演算回路
CN109412606B (zh) 基于生成矩阵的qc_ldpc码编码方法及编码器
JP5101253B2 (ja) ランダムエラー発生装置、m系列発生回路及びその設計方法
WO2017065628A1 (en) Optimizer for determining an optimal sequence of operations for matrix-vector multiplication
JP5927323B1 (ja) 行列作用装置、行列作用方法、およびプログラム
CN113986147A (zh) 一种raid 6硬件加速电路结构和raid 6硬件加速实现方法
TW202024907A (zh) 資料處理
CN105703783A (zh) 一种准并行结构的ldpc编码器
CN108683424B (zh) 全并行双向递归流水线ldpc编码器及方法
CN106877882B (zh) 数据处理方法和装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15758515

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016506120

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15758515

Country of ref document: EP

Kind code of ref document: A1