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

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

Info

Publication number
JP2006304132A
JP2006304132A JP2005125965A JP2005125965A JP2006304132A JP 2006304132 A JP2006304132 A JP 2006304132A JP 2005125965 A JP2005125965 A JP 2005125965A JP 2005125965 A JP2005125965 A JP 2005125965A JP 2006304132 A JP2006304132 A JP 2006304132A
Authority
JP
Japan
Prior art keywords
matrix
bit
ram
sum
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005125965A
Other languages
English (en)
Other versions
JP4617985B2 (ja
Inventor
Mineshi Yokogawa
峰志 横川
Makiko Yamamoto
真紀子 山本
Misa Nakane
美沙 中根
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 JP2005125965A priority Critical patent/JP4617985B2/ja
Priority to US11/912,485 priority patent/US8010870B2/en
Priority to EP06745483A priority patent/EP1876717A4/en
Priority to PCT/JP2006/308302 priority patent/WO2006115166A1/ja
Priority to CN2006800139056A priority patent/CN101164241B/zh
Priority to KR1020077024428A priority patent/KR101217335B1/ko
Publication of JP2006304132A publication Critical patent/JP2006304132A/ja
Application granted granted Critical
Publication of JP4617985B2 publication Critical patent/JP4617985B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • H03M13/1168Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices wherein the sub-matrices have column and row weights greater than one, e.g. multi-diagonal sub-matrices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1137Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • H03M13/1185Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • 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/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
    • 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

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

【課題】線形符号の符号化の動作速度を変えることなく、符号化装置の回路規模を削減する。
【解決手段】加算器13は、サイクリックシフト回路12から供給される6ビットの情報語D12と、その情報に対応する検査行列Hの情報部との積を、6行単位で行ごとに積算し、和D15としてRAM14に供給する。RAM14は、その和D15を記憶する。また、RAM14は、既に記憶されている2ビットの和D15を読み出し、インターリーバ15を介して、和D17としてアキュムレータ16に供給する。アキュムレータ16は、その和D17を積算し、その結果得られる和D17を符号語cのパリティビットpとして、セレクタ17を介して出力する。本発明は、衛星放送を送信する放送局の装置に適用することができる。
【選択図】図8

Description

本発明は、符号化装置および符号化方法に関し、特に、所定の情報を線形符号化する符号化装置および符号化方法に関する。
近年、例えば、移動体通信や深宇宙通信といった通信分野、及び地上波又は衛星ディジタル放送といった放送分野の研究が著しく進められているが、それに伴い、誤り訂正符号化及び復号の効率化を目的として符号理論に関する研究も盛んに行われている。
符号性能の理論的限界としては、いわゆるシャノン(C. E. Shannon)の通信路符号化定理によって与えられるシャノン限界が知られている。符号理論に関する研究は、このシャノン限界に近い性能を示す符号を開発することを目的として行われている。近年では、シャノン限界に近い性能を示す符号化方法として、例えば、並列連接畳み込み符号(PCCC(Parallel Concatenated Convolutional Codes))や、縦列連接畳み込み符号(SCCC(Serially Concatenated Convolutional Codes))といった、いわゆるターボ符号化(Turbo coding)と呼ばれる手法が開発されている。また、これらのターボ符号が開発される一方で、古くから知られる符号化方法である低密度パリティ検査符号(Low Density Parity Check codes)(以下、LDPC符号という)が脚光を浴びつつある。
LDPC符号は、R. G. Gallagerによる非特許文献1において最初に提案されたものであり、その後、非特許文献2や、非特許文献3等において再注目されるに至ったものである。
LDPC符号は、近年の研究により、ターボ符号等と同様に、符号長を長くしていくにしたがって、シャノン限界に近い性能が得られることがわかりつつある。また、LDPC符号は、最小距離が符号長に比例するという性質があることから、その特徴として、ブロック誤り確率特性がよく、さらに、ターボ符号等の復号特性において観測される、いわゆるエラーフロア現象が殆ど生じないことも利点として挙げられる。
以下、このようなLDPC符号について具体的に説明する。なお、LDPC符号は、線形符号であり、必ずしも2元である必要はないが、ここでは、2元であるものとして説明する。
LDPC符号は、そのLDPC符号を定義する検査行列(parity check matrix)が疎なものであることを最大の特徴とするものである。ここで、疎な行列とは、行列のコンポーネントの"1"の個数が非常に少なく構成されるものであり、疎な検査行列をHで表すものとすると、そのような検査行列Hとしては、例えば、図1に示すように、各列のハミング重み("1"の数)(weight)が"3"であり、且つ、各行のハミング重みが"6"であるもの等がある。
このように、各行及び各列のハミング重みが一定である検査行列Hによって定義されるLDPC符号は、レギュラーLDPC符号と称される。一方、各行及び各列のハミング重みが一定でない検査行列Hによって定義されるLDPC符号は、イレギュラーLDPC符号と称される。
このようなLDPC符号への符号化は、検査行列Hに基づいて生成行列Gを生成し、この生成行列Gを2元の情報語iに対して乗算することによって符号語を生成することで実現される。具体的には、LDPC符号に符号化する符号化装置は、まず、検査行列Hの転置行列HTとの間に、式GHT=0が成立する生成行列Gを算出する。ここで、生成行列Gが、k×n行列(k行n列の行列)である場合には、検査行列Hは、n-k行n列の行列である。
なお、例えば、nビットの符号語cが、kビットの情報語iに続けて、n-kビットのパリティビットpを配置したビット列に一致する組織符号である場合に、n-k行n列の検査行列Hにおいて、nビットの符号語cのうちのkビットの情報語iに対応するn-k行k列の部分を情報部というとともに、n-kビットのパリティビットpに対応するn-k行n-k列の部分をパリティ部ということとすると、パリティ部が、下三角行列または上三角行列になっていれば、情報語iのLDPC符号への符号化は、検査行列Hを用いて行うことができる。
即ち、例えば、検査行列Hが、図2に示すように、情報部と、下三角行列のパリティ部とで構成され、パリティ部の下三角の部分の要素が、すべて1であるとすると、符号語cのパリティビットpの0番目のビットは、情報語iのうちの、検査行列Hの情報部の第0行において1になっている要素に対応するビットのEXOR(排他的論理和)を演算した値となる。
また、符号語cのパリティビットpの1番目のビットは、情報語iのうちの、検査行列Hの情報部の第1行において1になっている要素に対応するビットと、パリティビットpの0番目のビットのEXORを演算した値となる。
さらに、符号語cのパリティビットpの2番目のビットは、情報語iのうちの、検査行列Hの情報部の第2行において1になっている要素に対応するビットと、パリティビットpの0番目および1番目のビットのEXORを演算した値となる。
以下、同様にして、符号語cのパリティビットpのm番目のビットは、情報語iのうちの、検査行列Hの情報部の第m行において1になっている要素に対応するビットと、パリティビットpの0乃至m-1番目のビットのEXORを演算した値となる。
以上のようにして、n-kビットのパリティビットpを求め、kビットの情報語iに続けて配置することにより、nビットの符号語cを得ることができる。
即ち、パリティ部が下三角行列の検査行列Hを図3に示すように一般化すると、情報語iのLDPC符号への符号化は、検査行列Hを用いて以下のように行われる。
図3では、検査行列Hの0行目(最上行)の成分は、0列目(左端列)から順に、情報部がh0,0,h0,1,・・・・h0,k-1となり、パリティ部が1,0,・・・0となっている。また、1行目の成分は、0列目から順に、情報部がh1,0,h1,1,・・・・,h1,k-1となり、パリティ部がh1,k,1,0,・・・0となっている。以下、同様にして、n-k-1行目(最下行)の成分は、0列目から順に、情報部がhn-k-1,0,hn-k-1,1,・・・・,hn-k-1,k-1となり、パリティ部がhn-k-1,k,・・・,hn-k-1,n-2,1となっている。
ここで、kビットの情報語iをi0,i1,・・・,ik-1と表し、n-kビットのパリティビットpをp0,p1,・・・,pn-k-1と表すとする。即ち、符号語cは、i0,i1,・・・,ik-1,p0,p1,・・・,pn-k-1で表される。符号語cと検査行列Hの各行との積の排他的論理和は0であるので、符号語cと検査行列Hの0行目との積の演算は、以下の式(1)で表される。
Figure 2006304132
・・・(1)
従って、パリティビットp0は、以下の式(2)で表される。
Figure 2006304132
・・・(2)
また、符号語cと検査行列Hの1行目との積の演算は、以下の式(3)で表される。
Figure 2006304132
・・・(3)
従って、パリティビットp1は、以下の式(4)で表される。
Figure 2006304132
・・・(4)
同様に、符号語cと検査行列Hのn-k-1行目との積の演算は、以下の式(5)で表される。
Figure 2006304132
・・・(5)
従って、パリティビットpn-k-1は、以下の式(6)で表される。
Figure 2006304132
・・・(6)
以上のようにして、n-kビットのパリティビットp0,p1,・・・,pn-k-1を求め、kビットの情報語iであるi0,i1,・・・,ik-1に続けて配置することにより、nビットの符号語cを得ることができる。
また、近年、LDPC符号の符号化装置の実装方法に関する研究も行われており、シフトレジスタで実装する方法やシフトレジスタの代わりにRAM(Random Access Memory)で実装する方法がある。
R. G. Gallager, "Low Density Parity Check Codes", Cambridge, Massachusetts: M. I. T. Press, 1963 D. J. C. MacKay, "Good error correcting codes based on very sparse matrices", Submitted to IEEE Trans. Inf. Theory, IT-45, pp. 399-431, 1999 M. G. Luby, M. Mitzenmacher, M. A. Shokrollahi and D. A. Spielman, "Analysis of low density codes and improved designs using irregular graphs", Proceedings of the 30th annual ACM Symposium on Theory of Computing(STOC),1998,pp. 249-258
しかしながら、シフトレジスタで実装されるLDPC符号の符号化装置では、情報語iのビット数(情報長)分のレジスタから構成されるシフトレジスタが実装されており、情報長が長い場合、レジスタ(フリップフロップ)のゲート数が膨大になる。例えば、フリップフロップの1個当たりのゲート数が9であり、情報長が60000である場合、符号化装置を構成するフリップフロップ全体のゲート数は、54万(=9×60000)となり、50万を超える。その結果、符号化装置の回路規模が増大する。
一方、RAMで実装されるLDPC符号の符号化装置では、RAMから読み出すデータの数やアドレスがLDPC符号(の符号語c)の符号長、符号化率などによって異なり、1つの符号化装置で符号長、符号化率などのパラメータの異なるLDPC符号(の符号語c)を得ることは困難である。また、RAMの構造は、データのパラレル入力または出力に適していない。
本発明は、このような状況に鑑みてなされたものであり、LDPC符号の符号化の動作速度を変えることなく、符号化装置の回路規模を削減することができるようにするものである。
本発明の符号化装置は、P×Pの単位行列、その単位行列のコンポーネントである1のうちの1個以上が0になった行列である準単位行列、単位行列もしくは準単位行列をサイクリックシフトした行列であるシフト行列、単位行列、準単位行列、もしくはシフト行列のうちの複数の和である和行列、またはP×Pの0行列を構成行列として、線形符号の検査行列が、複数の構成行列の組み合わせで表される場合、または線形符号の検査行列が、行や列の置換により、複数の構成行列の組み合わせで表される場合において、情報と、その情報に対応する検査行列の情報部との積を、複数の行単位で行ごとに積算する第1の積算手段と、第1の積算手段により積算された結果得られる第1の積算値を記憶する記憶手段と、記憶手段から読み出された第1の積算値を積算し、その結果得られる第2の積算値を線形符号の一部として出力する第2の積算手段とを備えることを特徴とする。
本発明の符号化方法は、P×Pの単位行列、その単位行列のコンポーネントである1のうちの1個以上が0になった行列である準単位行列、単位行列もしくは準単位行列をサイクリックシフトした行列であるシフト行列、単位行列、準単位行列、もしくはシフト行列のうちの複数の和である和行列、またはP×Pの0行列を構成行列として、線形符号の検査行列が、複数の構成行列の組み合わせで表される場合、または線形符号の検査行列が、行や列の置換により、複数の構成行列の組み合わせで表される場合において、情報と、その情報に対応する検査行列の情報部との積を、複数の行単位で行ごとに積算する第1の積算ステップと、第1の積算ステップの処理により積算された結果得られる第1の積算値を、記憶手段に記憶させる記憶制御ステップと、記憶手段から読み出された第1の積算値を積算し、その結果得られる第2の積算値を線形符号の一部として出力する第2の積算ステップとを含むことを特徴とする。
本発明においては、P×Pの単位行列、その単位行列のコンポーネントである1のうちの1個以上が0になった行列である準単位行列、単位行列もしくは準単位行列をサイクリックシフトした行列であるシフト行列、単位行列、準単位行列、もしくはシフト行列のうちの複数の和である和行列、またはP×Pの0行列を構成行列として、線形符号の検査行列が、複数の構成行列の組み合わせで表される場合、または線形符号の検査行列が、行や列の置換により、複数の構成行列の組み合わせで表される場合において、情報と、その情報に対応する検査行列の情報部との積を、複数の行単位で行ごとに積算し、第1の積算ステップの処理により積算された結果得られる第1の積算値を、記憶手段に記憶させ、記憶手段から読み出された第1の積算値を積算し、その結果得られる第2の積算値を線形符号の一部として出力する。
本発明によれば、線形符号の符号化の動作速度を変えることなく、符号化装置の回路規模を削減することができる。
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
請求項1に記載の符号化装置は、
所定の情報(例えば、情報語i)を線形符号に符号化する符号化装置(例えば、図8の符号化装置1)であって、
P×Pの単位行列、その単位行列のコンポーネントである1のうちの1個以上が0になった行列である準単位行列、前記単位行列もしくは準単位行列をサイクリックシフトした行列であるシフト行列、前記単位行列、準単位行列、もしくはシフト行列のうちの複数の和である和行列、またはP×Pの0行列を構成行列として、前記線形符号の検査行列(例えば、検査行列H)が、複数の前記構成行列の組み合わせで表される場合、または前記線形符号の検査行列が、行や列の置換により、複数の前記構成行列の組み合わせで表される場合において、
前記情報と、その情報に対応する前記検査行列の情報部との積を、複数の行(例えば、6行)単位で行ごとに積算する第1の積算手段(例えば、図8の加算器13)と、
前記第1の積算手段により積算された結果得られる第1の積算値を記憶する記憶手段(例えば、図8のRAM14)と、
前記記憶手段から読み出された第1の積算値を積算し、その結果得られる第2の積算値を前記線形符号の一部として出力する第2の積算手段(例えば、図8のアキュムレータ16)と
を備えることを特徴とする。
請求項7に記載の符号化装置は、
前記情報と、その情報に対応する前記検査行列の情報部との積を、前記単位行列、準単位行列、またはシフト行列単位で演算する演算手段(例えば、図8のサイクリックシフト回路12)
をさらに備え、
前記記憶手段は、前記検査行列の情報部の前記和行列を、前記単位行列、準単位行列、またはシフト行列のうちの複数の行列の和に分解したときの、その複数の行列それぞれに対して得られる前記積を同一のアドレスに格納するように、前記演算手段により演算される積を記憶し(例えば、図17のステップS5の処理)、
前記第1の積算手段は、前記記憶手段から読み出される積と、前記演算手段により得られる積とを加算することにより、前記P個の行単位で行ごとに前記積を積算する(例えば、図17のステップS4の処理)
ことを特徴とする。
請求項9に記載の符号化装置は、
前記情報をサイクリックシフトすることにより前記積を算出する並べ替え手段(例えば、図8のサイクリックシフト回路12)
をさらに備える
ことを特徴とする。
請求項11に記載の符号化装置は、
前記第2の積算手段は、前記記憶手段から読み出される第1の積算値と、前回の加算の結果得られた前記第2の積算値とを加算し、その結果得られる加算値を前記第2の積算値として出力するとともに、次回の加算に用いる(例えば、図17のステップS9の処理)
ことを特徴とする。
請求項12に記載の符号化装置は、
前記第1の積算手段により積算された結果得られる第1の積算値の順序を制御する順序制御手段(例えば、図18の並べ替え回路101とサイクリックシフト回路102)
をさらに備え、
前記記憶手段は、前記順序制御手段により順序が制御された第1の積算値を記憶する(例えば、図21のステップS27の処理)
ことを特徴とする。
請求項13に記載の符号化装置は、
前記順序制御手段は、前記第1の積算値の並び替えおよびサイクリックシフトを行うことにより、前記第1の積算値の順序を制御する(例えば、図21のステップS24とS25の処理)
ことを特徴とする。
請求項15に記載の符号化装置は、
前記記憶手段から読み出される第1の積算値の順序を制御する順序制御手段(例えば、図8のインターリーバ15)
をさらに備え、
前記第2の積算手段は、前記順序制御手段により順序が制御された第1の積算値を積算する(例えば、図17のステップS9)
ことを特徴とする。
請求項17に記載の符号化装置は、
前記P個の情報をサイクリックシフトすることにより、前記積を算出する並べ替え手段(例えば、図8のサイクリックシフト回路12)
をさらに備える
ことを特徴とする。
請求項19に記載の符号化方法は、
所定の値を記憶する記憶手段(例えば、図8のRAM14)を備え、所定の情報を線形符号に符号化する符号化装置(例えば、図8の符号化装置1)の符号化方法であって、
P×Pの単位行列、その単位行列のコンポーネントである1のうちの1個以上が0になった行列である準単位行列、前記単位行列もしくは準単位行列をサイクリックシフトした行列であるシフト行列、前記単位行列、準単位行列、もしくはシフト行列のうちの複数の和である和行列、またはP×Pの0行列を構成行列として、前記線形符号の検査行列が、複数の前記構成行列の組み合わせで表される場合、または前記線形符号の検査行列が、行や列の置換により、複数の前記構成行列の組み合わせで表される場合において、
前記情報と、その情報に対応する前記検査行列の情報部との積を、複数の行単位で行ごとに積算する第1の積算ステップ(例えば、図17のステップS4)と、
前記第1の積算ステップの処理により積算された結果得られる第1の積算値を、前記記憶手段に記憶させる記憶制御ステップ(例えば、図17のステップS5)と、
前記記憶手段から読み出された第1の積算値を積算し、その結果得られる第2の積算値を前記線形符号の一部として出力する第2の積算ステップ(例えば、図17のステップS9)と
を含むことを特徴とする。
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
なお、情報語iとLDPC符号の符号語cにおいては、1ビットを{0,・・・,q}(q≧1)で表すことが可能であり、必ずしも2元である必要はないが、以下では、2元であるものとして説明する。
図4は、LDPC符号化に用いる検査行列Hの例を示している。
図4の検査行列Hは、n=108,k=72の符号語c(符号化率2/3、符号長108)を得るための検査行列Hであり、36(行)×108(列)の行列である。なお、図4の検査行列Hでは(後述する図5乃至7,22、および25の行列においても同様)、0を、"."で表現している。また、図4の検査行列Hは、6×6の行列の単位に間隔を空けて表したものである。
即ち、検査行列Hは、36(=n-k)行72(=k)列の情報部と、36(=n-k)行36(=n-k)列のパリティ部とから構成される。LDPC符号への符号化においては、情報部は、LDPC符号の符号語cの情報語iと乗算され、パリティ部は、符号語cのパリティビットpと乗算される。
図4の検査行列Hでは、LDPC符号の情報語iに対応する情報部の各行は、7個の“1”と、101個の“0”から構成される。パリティ部は、下三角状の構造を有する行列(下三角行列)となっている。即ち、図4の検査行列Hのパリティ部は、行列の対角線の右上が全て“0”とされた行列となっており、下三角状の構造を有している。
図5と図6は、図4の検査行列Hを行置換または列置換した後の検査行列H´を示している。
図5の検査行列H´では、情報部を、P×P(図5の例の場合、P=6)の単位行列、その単位行列の1のうち1個以上が0になった行列(以下、適宜、準単位行列という)、単位行列または準単位行列をサイクリックシフト(cyclic shift)した行列(以下、適宜、シフト行列という)、単位行列、準単位行列、またはシフト行列のうちの2以上(複数)の和(以下、適宜、和行列という)、P×Pの0行列の組み合わせで表すことができる。なお、以下では、P×Pの単位行列、準単位行列、シフト行列、和行列、0行列を、以下、適宜、構成行列という。
図6の検査行列Hは、図5に示した検査行列Hを、6×6の構成行列の単位に間隔を空けて表したものである。検査行列Hを構成する横方向の構成行列の数をn0個とし、検査行列Hの情報部を構成する横方向の構成行列の数をk0個とすると、n0(=n/P=108/6)は18となり、k0(=k/P=72/6)は12となる。
即ち、図5や図6の検査行列Hでは、縦方向に6(=n0-k0=18-12)個の構成行列が、横方向にn0(=18)個の構成行列が並んでいる。
また、図4の検査行列Hの最上行(先頭行)を0行目とすると、検査行列Hの(n0-k0)×v+w(0≦v≦P-1,0≦w≦n0-k0-1)行目の行は、図5や図6の検査行列H´では、P×w+v行目の行となっている。
図5や図6の検査行列H´を用いてLDPC符号化を行うことにより、LDPC符号化に必要な演算である検査行列H´の情報部の各行と情報語iとの積算を、情報語iを6個単位でサイクリックシフトすることで行うことができる。即ち、構成行列であるP×Pの単位行列、準単位行列、またはシフト行列、もしくは構成行列の和行列を複数の行列に分解したときのP×Pの単位行列、準単位行列、またはシフト行列の各行の“1”の数は1個であるので、その構成行列に対応する6個の情報語iをサイクリックシフトすることで、検査行列H´の情報部の各行と情報語iとの積を算出することができる。
図7A乃至図7Bは、図4の検査行列Hと図5や図6の検査行列H´のパリティ部を示している。
図7Aに示すように、図4の検査行列Hのパリティ部は、行列の対角線の右上が全て“0”とされた行列となっており、下三角状の構造を有している。また、パリティ部は、下三角行列の対角成分とその成分の直下の成分が1であり、それ以外の成分が0となっている。これにより、LDPC符号化におけるパリティビットpを求める演算を容易に行うことができる。
図7Bに示すように、図5や図6の検査行列H´のパリティ部では、図7Aのパリティ部の(n0-k0)×v+w行目の行が、P×w+v行目の行となる。
図8は、本発明を適用した符号化装置1の第1実施の形態の構成例を示すブロック図である。
図8の符号化装置1は、図4の検査行列Hを用いて、情報語iをLDPC符号化し、その結果得られる符号語cを出力する。
符号化装置1は、ビット幅調整回路11、サイクリックシフト回路12、加算器13、RAM14、インターリーバ15、アキュムレータ16、セレクタ17、および制御部18から構成される。
ビット幅調整回路11には、情報語D11(情報語i)が2ビット単位で供給され、ビット幅調整回路11は、2ビット単位で供給された情報語D11を3つ合わせて、6ビット単位で情報語D12としてサイクリックシフト回路12に供給する。
サイクリックシフト回路12には、制御部18から、情報語D12に対応する検査行列H´の情報部の1が、検査行列H´において元となる単位行列などを幾つサイクリックシフトしたものであるかの情報を表す制御信号D21が供給される。サイクリックシフト回路12は、制御信号D21に基づいて、ビット幅調整回路11から順次供給される12(=k0)個の6ビットの情報語D12をサイクリックシフトすることにより、検査行列H´を構成する構成行列のうち0行列ではない構成行列の各行の値hと情報語D12との積(h×i)を求め、加算器13に順次供給(出力)する。
なお、構成行列が和行列である場合、即ち構成行列のハミング重みが2以上である場合、サイクリックシフト回路12は、和行列を単位行列、準単位行列、またはシフト行列のうちの複数の行列の和に分解したときの、その行列単位で、行列と情報語D12との積を求め、それらを対応する行ごとにEXOR演算(加算)した値を、情報語D13として加算器13に供給する。また、サイクリックシフト回路12は、6ビット単位で情報語D12のサイクリックシフトを行うようにしたが、6(=P)の約数個のビット単位でサイクリックシフトを行うようにしてもよい。
加算器13は、6つの加算器(図示せず)から構成され、各加算器は、サイクリックシフト回路12からの6ビットの積D13とRAM14からの6ビットの和D14とのEXORをビット毎に求め、その結果得られる6ビットの値を和D15(第1の積算値)としてRAM14に供給することにより、積D13を6行単位で行ごとに積算する。
RAM14には、制御部18から、データの読み出しまたは書き込みを行うアドレスを指定する制御信号D22が供給される。RAM14は、その制御信号D22に基づいて、加算器13からの和D15を6ビット単位で記憶したり、既に記憶している和D15を6ビットまたは2ビット単位で読み出す。
このように、RAM14は、6ビットまたは2ビットの和D15を同時に記憶したり、読み出すことができるので、LDPC符号化における処理を6ビットまたは2ビット単位で行うことができる。その結果、符号化装置1では、適度な回路規模と動作周波数でLDPC符号化を行うことができる。
RAM14は、6ビット単位で読み出した和D15を、和D14として加算器13に供給したり、2ビット単位で読み出した和D15を、和D16としてインターリーバ15に供給する。なお、RAM14のビット数は6(=P)であり、ワード数は6(=n0-k0)である。
インターリーバ15は、RAM14から供給される和D16の順序を制御する。具体的には、インターリーバ15は、和D16を検査行列Hに対応する順序に並べ替え、並べ替え後の和D17をアキュムレータ16に供給する。
アキュムレータ16には、制御部18から、アキュムレータ16のセレクタ62(後述する図14)における選択を表す選択信号D23が供給され、アキュムレータ16は、その選択信号D23とインターリーバ15から順次供給される和D17とに基づいて、所定の演算(例えば、式(2),(4),(6))を行い、その結果得られるパリティビットpを2ビット単位でパリティビットD18としてセレクタ17に順次供給(出力)する。即ち、アキュムレータ16は、和D17を積算し、その結果得られるパリティビットpを2ビット単位でパリティビットD18(第2の積算値)としてセレクタ17に供給する。
セレクタ17には、所定の時間遅延された情報語iが2ビット単位で情報語D19として供給される。セレクタ17は、制御部18からの、パリティビットD18と情報語D19のいずれか一方の選択を表す選択信号D24に基づいて、アキュムレータ16からのパリティビットD18と情報語D19のうちのいずれか一方を選択し、2ビット単位で符号語D20(符号語c)として出力する。具体的には、セレクタ17は、kビットの情報語D19を2ビット単位で出力し、その後n-kビットのパリティビットD18を2ビット単位で出力することにより、符号語D20を出力する。
制御部18は、制御信号D21をサイクリックシフト回路12に、制御信号D22をRAM14に、選択信号D23をアキュムレータ16に、選択信号D24をセレクタ17に供給する。
図9を参照して、図8のサイクリックシフト回路12が行うサイクリックシフトの量について説明する。
なお、以下では、ビット幅調整回路11から供給される情報語iの(6×s)乃至(6×(s+1)-1)ビット目(s=0,1,2,・・・,k0-1)の情報語D12をs番ベクトルという。
図9において、最上行の数字はベクトルの番号を表し、左端の数字は、検査行列H´の構成行列の上からの番号を表している。なお、構成行列の上からの番号は、0から順に付与するものとする。また、図9において、「−」はサイクリックシフト回路12が情報語D13を出力しないことを表している。
例えば、第m行第l列を、(m,l)と表すこととすると、図6に示すように、検査行列H´の(0,0)から(5,5)の構成行列は単位行列、(6,0)から(11,5)の構成行列は和行列(6×6の単位行列を右方向に2つだけサイクリックシフトした第1のシフト行列と、右方向に4つだけサイクリックシフトした第2のシフト行列の和である和行列)、(12,0)から(17,5)の構成行列は0行列、(18,0)から(23,5)の構成行列はシフト行列(6×6の単位行列を右方向に3つだけサイクリックシフトしたシフト行列)、(24,0)から(29,5)の構成行列は0行列、(30,0)から(35,5)の構成行列はシフト行列(6×6の単位行列を右方向に5つだけサイクリックシフトしたシフト行列)となっている。
そこで、サイクリックシフト回路12は、検査行列H´の左から0乃至5列目を構成する構成行列に応じて、まず最初に、サイクリックシフトを行わず、0番ベクトルと検査行列H´の(0,0)から(5,5)の構成行列との積として、0番ベクトルをそのまま積D13として出力する。即ち、図9に示すように、0番ベクトルと検査行列H´の上から0番目の構成行列との積を求める場合、サイクリックシフト回路12のサイクリックシフト量は0回となる。
次に、サイクリックシフト回路12は、0番ベクトルを右方向に2つだけサイクリックシフトするとともに、0番ベクトルを右方向に4つだけサイクリックシフトし、その結果得られる2つのサイクリックシフト後の6ビットの情報語D12をEXOR演算することにより、0番ベクトルと(6,0)から(11,5)の構成行列との積を求める。即ち、(6,0)から(11,5)の構成行列を第1のシフト行列と第2のシフト行列の和に分解したときの、第1のシフト行列と第2のシフト行列それぞれに対して得られる情報語D12が、加算器13を介して、RAM14の同一のアドレスに格納されるように、サイクリックシフト回路12は、第1と第2のシフト行列それぞれに対して得られる情報語D12をEXOR演算する。そして、サイクリックシフト回路12は、その求めた積を、積D13として出力する。
即ち、図9に示すように、0番ベクトルと検査行列H´の上から1番目の構成行列との積を求める場合、サイクリックシフト回路12のサイクリックシフト量は右方向に2回と4回である。
ここで、検査行列H´の上から2番目の(12,0)から(17,5)の構成行列は0行列であるので、その構成行列については、サイクリックシフト回路12は何も処理を行わず、何も出力しない(図9の「−」)。
以下、同様にして、サイクリックシフト回路12は、0番ベクトルを右方向に3回サイクリックシフトすることにより、0番ベクトルと検査行列H´の3番目の(18,0)から(23,5)の構成行列との積を求め、0番ベクトルを左方向に5回サイクリックシフトすることにより、0番ベクトルと(30,0)から(35,5)の構成行列との積を求める。そして、サイクリックシフト回路12は、サイクリックシフト後の情報語D12を積D13として出力する。
以上のようにして、サイクリックシフト回路12は、1回目にビット幅調整回路11から供給される0番ベクトルと、検査行列H´の左から0乃至5(=P-1)列目との積をそれぞれ求める。
以降も同様に、サイクリックシフト回路12は、2乃至12回目にビット幅調整回路11から供給される1乃至11番ベクトルと、検査行列H´の左から6乃至71列目との積をそれぞれ求める。
次に、図10と図11を参照して、図8のRAM14に記憶される和D15について説明する。
なお、以下の説明に用いるRAM14のワード方向とは、図10に示すように、図中横方向であり、左端から順に0番アドレス、1番アドレス、2番アドレス、・・・という。また、RAM14のビット方向とは、図中縦方向であり、上から順に0ビット目、1ビット目、2ビット目、・・・という。
また、以下では、検査行列H´の上からv番目の構成行列の上からw行目(=P×v+w=6×v+w)と0乃至11番ベクトルのそれぞれとの積の和D15を、ow,vとも表す。即ち、ow,vは、以下の式(7)で表される。
Figure 2006304132
・・・(7)
図11に示すように、RAM14のビット数はP(=6)であり、ワード数は、n0-k0(=6)である。まず最初に、RAM14には、サイクリックシフト回路12から加算器13を介して、0番ベクトルと検査行列H´の上から0番目の構成行列との積が6ビットの和D15として供給され、RAM14は、その和D15の各ビットを0番アドレスの0ビット目から順に記憶する。
次に、RAM14には、サイクリックシフト回路12から加算器13を介して、1番ベクトルと検査行列H´の上から1番目の構成行列との積が6ビットの和D15として供給され、RAM14は、その和D15の各ビットを1番アドレスの0ビット目から順に記憶する。以降、同様にして、RAM14の2乃至5番アドレスにも、和D15が記憶される。
また、RAM14は、0番アドレスの0乃至5ビット目に記憶されている0番ベクトルと検査行列H´の上から0番目の構成行列との積を読み出し、6ビットの和D14として加算器13に供給する。以降、同様にして、RAM14の1乃至5番アドレスに記憶されている6ビットの和D15をそれぞれ読み出し、和D14として加算器13に供給する。
加算器13は、RAM14から6ビットの和D14として供給される0番ベクトルと検査行列H´の上から0番目の構成行列との積と、サイクリックシフト回路12から供給される1番ベクトルと検査行列H´の上から0番目の構成行列との積とをEXOR演算し、その結果得られる和D15をRAM14に供給する。RAM14は、その和D15の各ビットを0番アドレスの0ビット目から順に記憶する。即ち、RAM14は、0番アドレスを更新する。以降、同様にして、RAM14は、1乃至5番アドレスも更新する。
そして、同様の処理が繰り返され、RAM14の0番アドレスの0ビット目には、検査行列H´の上から0番目の構成行列の上から0行目と0乃至11番ベクトルのそれぞれとの積の和D15であるo0,0が記憶される。また、RAM14の0番アドレスの1乃至5ビット目には、o1,0,乃至o5,0がそれぞれ記憶される。
同様に、RAM14の1番アドレスの0乃至5ビット目には、それぞれo0,1,乃至o5,1が、2番アドレスの0乃至5ビット目には、それぞれo0,2,乃至o5,2が、RAM14の3番アドレスの0乃至5ビット目には、それぞれo0,3,乃至o5,3が、RAM14の4番アドレスの0乃至5ビット目には、それぞれo0,4,乃至o5,4が、5番アドレス0乃至5ビット目には、それぞれo0,5,乃至o5,5が記憶される。
以上のように、RAM14のアドレスは、検査行列Hの情報部の6行に対応し、RAM14は、図中左上から右下方向に向かって、和D15に対応する検査行列H´の上からの行数(6×v+w)が大きくなるように、和D15(o0,0,乃至o5,5)を記憶する。また、RAM14は、o0,0,乃至o5,5を、検査行列H´の構成行列の1を列方向(横方向)に詰めるように記憶(格納)する。
ここで、ビット方向(縦方向)での順番がP×x+y(x=0,1,・・・,5,y=0,1,・・・,5)番目の和D15は、ワード方向(横方向)での順番が(n0-k0)×y+x番目となる。なお、ビット方向の順番は、各番号アドレスの5ビット目の次が、右隣のアドレス(次の番号のアドレス)の0ビット目となるものとする。また、ワード方向の順番は、各ビットの5番アドレスの次が、直下のビット(次のビット)の0番アドレスとなるものとする。例えば、ビット方向での順番が6番目の和D15はo0,1となり、ワード方向での順番が6番目の和D15はo1,0となる。
上述したように、検査行列Hの(n0-k0)×v+w行目の行は、図5の検査行列H´では、P×w+v行目の行となる。即ち、検査行列H´のP×w+v行目の行は、検査行列Hの(n0-k0)×v+w行目の行である。従って、RAM14のビット方向に検査行列H´の0行目から順に和D15として記憶される、検査行列H´の情報部の各行と0乃至11番ベクトルのそれぞれとの積の和であるow,vは、ワード方向の順番に見ると、検査行列Hの0行目から順に対応する積の和であるow,vとなる。
しかしながら、RAM14は、一般的に2つ以上のアドレスに同時にアクセスすることができないため、ワード方向に和D15を読み出すことはできない。従って、符号化装置1では、インターリーバ15により、RAM14がビット方向に読み出した和D15の順序を入れ替えている。インターリーバ15の詳細については、後述する図12と図13を参照して説明する。
図12は、図8のインターリーバ15の詳細構成例を示す図である。
図12のインターリーバ15は、5つのレジスタ41−1乃至41−5および5つのレジスタ42−1乃至42−5、並びにセレクタ43から供給される。
インターリーバ15には、RAM14から2ビットの和D16が供給され、そのうちの1ビットが和D41としてレジスタ41−1乃至41−5に1ビット単位で順に記憶される。また、他の1ビットが和D42としてレジスタ41−2乃至41−5に1ビット単位で順に記憶される。レジスタ41−1乃至41−5とレジスタ42−1乃至42−5は、記憶している1ビットの和D41またはD42をそれぞれセレクタ43に供給する。
セレクタ43は、レジスタ41−1乃至41−5とレジスタ42−1乃至42−5のそれぞれから供給される5つの和D41またはD42のうち、いずれか2つの和D41またはD42を選択し、和D43とD44として出力する。1ビットの和D43とD44は合わせられ、2ビットの和D17としてアキュムレータ16に供給される。
以上のように、インターリーバ15では、レジスタ41−1乃至41−5およびレジスタ42−1乃至42−5が、入力された和D16(和D41またはD42)を記憶し、セレクタ43が、そのレジスタ41−1乃至41−5およびレジスタ42−1乃至42−5に記憶されている和D16を選択して、和D17(和D43またはD44)として出力することにより、入力される和D16と出力される和D17の順序を入れ替える。
次に、図13を参照して、図12のインターリーバ15におけるデータの入出力を説明するタイミングチャートである。図13において、横軸は時間を表している。
図13に示すように、まず最初に、RAM14は、0番アドレスに記憶されているo0,0,とo1,0の2ビットを、和D16として読み出してインターリーバ15に出力する。即ち、インターリーバ15には、o0,0,とo1,0が和D16として入力される。
次に、RAM14は、1番アドレスに記憶されているo0,1,とo1,1の2ビットを、和D16としてインターリーバ15に出力する。以降、同様にして、RAM14は、2乃至5番アドレスに記憶されているo0,2,とo1,2、o0,3,とo1,3、o0,4,とo1,4、またはo0,5,とo1,5を、和D16としてそれぞれインターリーバ15に出力する。
図12のインターリーバ15のレジスタ41−1乃至41−5には、例えば、インターリーバ15に入力される和D16のうちの1ビットであるo0,0乃至o0,5が順に供給され、記憶される。また、他の1ビットであるo1,0乃至o5,0がレジスタ42−1乃至42−5に順に供給され、記憶される。そして、レジスタ41−1乃至41−5と42−1乃至42−5は、o0,0乃至o0,5とo1,0乃至o5,0をそれぞれセレクタ43に供給する。
図13に示すように、セレクタ43は、まず最初にo0,0とo0,1を選択し、和D43とD44としてそれぞれ出力する。即ち、o0,0とo0,1が和D17としてアキュムレータ16に入力される。次に、セレクタ43は、o0,2とo0,3を選択し、それぞれ和D43とD44として出力する。その後、セレクタ43は、o0,4とo0,5、o1,0とo1,1、o1,2とo1,3、o1,4とo1,5の順に選択して出力する。
即ち、インターリーバ15に入力される和D16のうちの1ビットであるRAM14の0ビット目に記憶されるo0,0乃至o0,5を系列#1といい、他の1ビットであるRAM14の1ビット目に記憶されるo1,0乃至o5,0を系列#2というと、セレクタ43は、系列#1をo0,0から順に2ビットずつ選択し、その後系列#2をo1,0から順に2ビットずつ選択する。即ち、セレクタ43は、入力される和D16を、その和D16が記憶されているRAM14のワード方向の順番に2ビットずつ選択する。
以上のように、インターリーバ15は、RAM14のビット方向の順番に読み出され、入力される2ビットの和D16を、その和D16が記憶されているRAM14のワード方向の順番に2ビットずつ選択して出力するので、検査行列Hの情報部の各行と0乃至11番ベクトルのそれぞれとの積の和であるow,vを、検査行列Hの情報部の0行目から順に、2ビット単位で和D17として出力することができる。
図14は、図8のアキュムレータ16の詳細構成例を示している。
図14のアキュムレータ16は、加算器61と63、並びにセレクタ62から構成される。
加算器61には、インターリーバ15から2ビットの和D17のうちの1ビットである和D61が供給されるとともに、加算器63から前回の加算の結果得られたパリティビットD65が供給される。加算器61は、和D61とパリティビットD65を加算し、その結果得られる値を和D63として、セレクタ62に供給する。
セレクタ62には、和D61が供給されるとともに、制御部18から選択信号D23が供給され、セレクタ62は、選択信号D23に基づいて、和D61またはD63をパリティビットD64として、セレクタ17と加算器63に出力する。
加算器D63には、インターリーバ15から2ビットの和D17のうちの和D61以外の1ビットである和D62が供給される。加算器D63は、セレクタ62から供給される前回の加算の結果得られたパリティビットD64と和D62とを加算し、その結果得られる値をパリティビットD65として、セレクタ17と加算器61に出力する。なお、セレクタ62と加算器63から出力されるパリティビットD64とD65は合わせられ、2ビットのパリティビットD18(パリティビットp)としてセレクタ17に供給される。
図15と図16を参照して、図14のアキュムレータ16で行われるパリティビットpの演算について説明する。
図15と図16に示すように、上述した式(2)と式(7)により、パリティビットp0=o0,0となる。また、上述した式(3)と式(7)により、図15に示すように、o0,1+h1,kp0+p1=0となり、検査行列Hではh1,kは1であるので、o0,1+p0+p1=0(o0,1=p0+p1)となる。即ち、図16に示すように、パリティビットp1=o0,0+p0である。
具体的には、図14のアキュムレータ16に、インターリーバ15からo0,0とo0,1の2ビットの和D17が供給され、加算器61とセレクタ62にo0,0が和D61として供給され、加算器63にo0,1が和D62として供給される。このとき、まだ加算器63による加算が行われていないので、加算器61にはパリティビットD65が供給されておらず、加算器63は、和D61をそのまま和D63としてセレクタ62に供給する。
セレクタ62は、選択信号D23に基づいてインターリーバ15からの和D61(いまの場合、o0,0)を選択し、パリティビットD64(いまの場合、p0)としてセレクタ17と加算器63に出力する。加算器63は、インターリーバ15からの和D62(いまの場合、o0,1)と、セレクタ62からのパリティビットD64とを加算し、その結果得られる値(いまの場合、o0,1+p0)をパリティビットD65(いまの場合、p1)として、セレクタ17と加算器61に出力する。その結果、パリティビットD64とD65が合わせられて、2ビットのパリティビットD18としてセレクタ17と加算器61に出力される。
以降、同様にして、アキュムレータ16は、図15や図16に示す式により、パリティビットp2乃至pn-k-1を2ビットずつ演算し、パリティビットD18として出力する。
次に、図17を参照して、図8の符号化装置1による符号化処理を説明する。この符号化処理は、例えば、情報語D11(情報語i)が2ビット単位で入力されたとき、開始される。
ステップS1において、ビット幅調整回路11は、サイクリックシフト回路12に出力する情報語D12のベクトルの番号sを0に設定し、ステップS2に進む。
ステップS2において、ビット幅調整回路11は、2ビット単位で入力される情報語D11を合わせて6ビットにし、s番ベクトル(情報語D12)としてサイクリックシフト回路12に供給する。
ステップS2の処理後は、ステップS3に進み、サイクリックシフト回路12は、制御部18からの制御信号D21に基づいて、s番ベクトルをサイクリックシフトすることにより、検査行列H´の情報部を構成する構成行列のうち、0行列ではない構成行列の各行の値hとs番ベクトルとの積(h×i)を求め、6ビットの積D13として、加算器13に供給する。
ステップS3の処理後は、ステップS4に進み、加算器13は、サイクリックシフト回路12からの6ビットの積D13と、後述するステップS5でRAM14から供給される6ビットの和D14との排他的論理和をビット毎に求め、その結果得られる6ビットの値を和D15としてRAM14に供給する。なお、最初のステップS3では、RAM14から和D14が供給されないので、加算器13は、積D13をそのまま和D15としてRAM14に供給する。
ステップS4の処理後は、ステップS5に進み、RAM14は、制御部18からの制御信号D22に基づいて、加算器13からの和D15を6ビット単位で記憶する。また、RAM14は、既に記憶している和D15を6ビットまたは2ビット単位で読み出す。RAM14は、6ビット単位で読み出した和D15を、和D14として加算器13に供給したり、2ビット単位で読み出した和D15を、和D16としてインターリーバ15に供給する。
ステップS5の処理後は、ステップS6に進み、ビット幅調整回路11は、ベクトルの番号sが11より小さいかどうかを判定し、11より小さいと判定した場合、ステップS7に進む。
ステップS7において、ビット幅調整回路11は、ベクトルの番号sを1だけインクリメントし、ステップS2に戻り、上述した処理を繰り返す。
一方、ステップS6において、ベクトルの番号sが11より小さくはない(11以上である)と判定された場合、ステップS8に進み、インターリーバ15は、ステップS5でRAM14から供給される和D16を、検査行列Hに対応する順序に並べ替え、並べ替え後の和D17をアキュムレータ16に供給する。
ステップS8の処理後は、ステップS9に進み、アキュムレータ16は、インターリーバ15からの和D17を用いて、所定の演算を行い、その結果得られるパリティビットpを、2ビット単位でパリティビットD18としてセレクタ17に供給し、ステップS10に進む。
ステップS10において、セレクタ17は、2ビット単位で遅延されて入力される情報語D19を符号語D20としてすべて出力した後、ステップS9でアキュムレータ16から供給されるパリティビットD18を2ビット単位で符号語D20として出力することにより、符号語cを出力し、処理を終了する。
図18は、本発明を適用した符号化装置1の第2の実施の形態の構成例を示すブロック図である。
図18の符号化装置1は、ビット幅調整回路11、サイクリックシフト回路12、アキュムレータ16、セレクタ17、並べ替え回路101、サイクリックシフト回路102、加算器103、3つのRAM104−1乃至104−3から構成されるRAM104、並びに制御部105から構成される。なお、図8と同一のものには同一の符号を付してあり、説明は繰り返しになるので省略する。
並べ替え回路101には、サイクリックシフト回路12から6ビットの積D13が供給されるとともに、制御部105から並び替えを制御する制御信号D105が供給される。並び替え回路101は、制御信号D105に基づいて、積D13の並び替えを行い、並び替え後の積D13を、積D101としてサイクリックシフト回路102に供給する。なお、図18の符号化装置1では、RAM104の数が3つであり、n0-k0(=6)がRAM104の数の倍数であるので、並べ替え回路101は並び替えを行わず、サイクリックシフト回路102に供給する。n0-k0の数がRAM104の数の倍数ではない場合については、後述する図22乃至図29を参照して説明する。
サイクリックシフト回路102には、制御部105からサイクリックシフトの量を表す制御信号D106が供給され、サイクリックシフト回路102は、その制御信号D106に基づいて、並べ替え回路101からの積D101をサイクリックシフトし、サイクリックシフト後の6ビット単位の積D101を、積D102として加算器103に供給する。
加算器103は、サイクリックシフト回路102からの6ビットの積D102とRAM104からの6ビットの和D103との排他的論理和をビット毎に求め、その結果得られる6ビットの値を和D104としてRAM104に供給する。
RAM104のビット数は6(=P)であり、ワード数は6(=n0-k0)である。RAM104は、ビット数が2(=6/3)、ワード数が6(=n0-k0)の3つの独立に制御可能なRAM104−1乃至104−3から構成され、RAM104には、制御部105から、データの読み出しまたは書き込みを行うアドレスを指定する制御信号D107が供給される。RAM104は、その制御信号D107に基づいて、加算器103からの和D104を6ビット単位で記憶したり、既に記憶している和D104を6ビットまたは2ビット単位で読み出す。
なお、RAM104は、3つのRAM104−1乃至104−3から構成されるため、RAM104−1乃至104−3の所定のアドレスから同時に(パラレルに)和D104を読み出したり、RAM104−1乃至104−3の所定のアドレスに同時に和D104を記憶させることができる。RAM104は、6ビット単位で読み出した和D104を、和D103として加算器103に供給したり、2ビット単位で読み出した和D104を、和D17としてアキュムレータ16に供給する。
また、RAM104が3つのRAM104−1乃至104−3から構成される場合の、1つのRAMで構成される場合と比べたRAM104の回路規模の増大は、無視できる程度に小さい。
制御部105は、図8の制御部18と同様に、制御信号D21をサイクリックシフト回路12に、選択信号D23をアキュムレータD23に、選択信号D24をセレクタ17に供給する。また、制御部105は、符号語cのn0-k0とRAM104を構成するRAM104−1乃至104−3の数とに応じて、並べ替えを制御する制御信号D105を生成し、並べ替え回路105に供給する。さらに、制御部105は、RAM104のビット数と、積D102を記憶させるRAM104のアドレス番号とに応じて、サイクリックシフト量を表す制御信号D106を生成し、サイクリックシフト回路102に供給する。
図19を参照して、図18のサイクリックシフト回路102が行うサイクリックシフトの量について説明する。
なお、以下では、積D13としてサイクリックシフト回路12から出力される検査行列H´の上からv番目の構成行列の上からw行目と0番ベクトルのそれぞれとの積を、dw,vとも表す。
制御部105は、各RAM104−1乃至104−3のビット数y(いまの場合、2)と、積D102(D101)を記憶させるRAMのアドレス番号(0,1,・・・, n0-k0-1)とに基づいて、サイクリックシフトの量をy×0,y×1,y×2,・・・,y×(n0-k0-1)(mod P)の順に繰り返し設定し、そのサイクリックシフトの量を表す制御信号D106を生成して、サイクリックシフト回路102に供給する。いまの場合、ビット数yは2であるので、制御部105は、サイクリックシフトの量を0,2,4,0,2,4の順に繰り返し設定する。
即ち、図19に示すように、サイクリックシフト回路102は、サイクリックシフト回路12から並べ替え回路101を介して供給される6ビットの積D101の、d0,0乃至d5,0をサイクリックシフトせずに、積D102として加算器103に出力する。即ち、d0,0乃至d5,0のサイクリックシフト量は0である。
また、サイクリックシフト回路102は、サイクリックシフト回路12から並べ替え回路101を介して供給される6ビットの積D101の、d0,1乃至d5,1を2つだけサイクリックシフトし、積D102として加算器103に出力する。即ち、加算器103から、d4,1,d5,1,d0,1,d1,1,d2,1,d3,1の順に並んだ6ビットの積D102が加算器103に供給される。
さらに、サイクリックシフト回路102は、サイクリックシフト回路12から並べ替え回路101を介して供給される6ビットの積D101の、d0,2乃至d5,2を4つだけサイクリックシフトし、積D102として加算器103に出力する。即ち、加算器103から、d2,2,d3,2,d4,2,d5,2,d0,2,d1,2の順に並んだ6ビットの積D102が加算器103に供給される。
以降、同様にして、サイクリックシフトの量が0,2,4の順に設定され、d0,2乃至d5,2,d0,2乃至d5,2,d0,2乃至d5,2のサイクリックシフトが行われる。
図19では、検査行列H´の上からv番目の構成行列の上からw行目と0番ベクトルのそれぞれとの積であるdw,vの場合について説明したが、検査行列H´の上からv番目の構成行列の上からw行目と1乃至11番ベクトルのそれぞれとの積D101についても同様にサイクリックシフトが行われる。
次に、図20を参照して、図18のRAM104に記憶される和D104について説明する。
図19に示したように、まず最初に、RAM104には、サイクリックシフト回路102から加算器103を介して、0番ベクトルと検査行列H´の上から0番目の構成行列とのd0,0乃至d5,0が6ビットの和D104として供給される。RAM104は、図20に示すように、制御信号D107に基づいて、その和D104の各ビットをRAM104−1乃至104−3の0番アドレスに順に記憶する。具体的には、RAM104−1の0ビット目にはd0,0、1ビット目にはd1,0が記憶され、RAM104−2の0ビット目にはd2,0、1ビット目にはd3,0が記憶される。また、RAM104−3の0ビット目にはd4,0、1ビット目にはd5,0が記憶される。以降、同様にして、RAM104は、制御信号D107に基づいて、その和D104をRAM104−1乃至104−3の1乃至5番アドレスに順に記憶する。
また、RAM104は、RAM104−1乃至104−3の0番アドレスの0と1ビット目に記憶されているd0,0乃至d5,0を読み出し、6ビットの和D103として加算器103に供給する。以降、同様にして、RAM104−1乃至104−3の1乃至5番アドレスに記憶されている6ビットの和D104をそれぞれ読み出し、和D103として加算器103に供給する。
加算器103は、RAM104から6ビットの和D103として供給される0番ベクトルと検査行列H´の上から0番目の構成行列との積であるd0,0乃至d5,0と、サイクリックシフト回路102から供給される1番ベクトルと検査行列H´の上から0番目の構成行列との積とをEXOR演算し、その結果得られる和D104をRAM104に供給する。RAM104のRAM104−1乃至104−3は、その和D104の各ビットを0番アドレスに順に記憶する。即ち、RAM104−1乃至104−3は、0番アドレスを更新する。以降、同様にして、RAM104−1乃至104−3は、1乃至5番アドレスも更新する。
そして、同様の処理が繰り返され、RAM104−1の0番アドレスの0ビット目には、検査行列H´の上から0番目の構成行列の上から0行目と0乃至11番ベクトルのそれぞれとの積であるo0,0が記憶される。また、RAM104−1の0番アドレスの1ビット目にo1,0が記憶され、RAM104−2の0番アドレスの0ビット目にo2,0、1ビット目にo3,0が記憶される。また、RAM104−3の0番アドレスの0ビット目にo4,0、1ビット目にo5,0が記憶される。
また、同様に、RAM104−1乃至104−3の1番アドレスには、o4,1,5,1,o0,1,o1,1,2,1,o3,1が、2番アドレスには、o2,2,3,2,o4,2,o5,2,0,2,o1,2が、RAM104の3番アドレスには、o0,3,1,3,o2,3,o3,3,4,3,o5,3が、RAM104の4番アドレスには、o4,4,5,4,o0,4,o1,4,2,4,o3,4が、5番アドレスには、o2,5,3,5,o4,5,o5,5,0,5,o1,5が記憶される。
また、RAM104は、制御信号D107に基づいて、既に記憶されているo0,0乃至o5,5を、検査行列Hの1行目に対応するものから順に読み出す。具体的には、まず最初に、RAM104は、RAM104−1の0番アドレスの0ビット目に記憶されているo0,0とRAM104−2の1番アドレスの1ビット目に記憶されているo0,1とを読み出し、2ビットの和D17としてアキュムレータ16に供給する。
次に、RAM104は、RAM104−3の2番アドレスの0ビット目に記憶されているo0,2とRAM104−1の3番アドレスの0ビット目に記憶されているo0,3とを読み出し、2ビットの和D17としてアキュムレータ16に供給する。そして、RAM104は、RAM104−2の4番アドレスの0ビット目に記憶されているo0,4とRAM104−3の5番アドレスの0ビット目に記憶されているo0,5とを読み出し、2ビットの和D17としてアキュムレータ16に供給する。
また、RAM104は、RAM104−1の0番アドレスの1ビット目に記憶されているo1,0、RAM104−2の1番アドレスの1ビット目に記憶されているo1,1、RAM104−3の2番アドレスの1ビット目に記憶されているo1,2、RAM104−1の3番アドレスの1ビット目に記憶されているo1,3、RAM104−2の4番アドレスの1ビット目に記憶されているo1,4、RAM104−3の5番アドレスの1ビット目に記憶されているo1,5を、この順に2個ずつ読み出し、2ビットの和D17としてアキュムレータ16に供給する。
次に、RAM104は、RAM104−2の0番アドレスの0ビット目に記憶されているo2,0、RAM104−3の1番アドレスの0ビット目に記憶されているo2,1、RAM104−1の2番アドレスの0ビット目に記憶されているo2,2、RAM104−2の3番アドレスの0ビット目に記憶されているo2,3、RAM104−3の4番アドレスの0ビット目に記憶されているo2,4、RAM104−1の5番アドレスの0ビット目に記憶されているo2,5を、この順に2個ずつ読み出し、2ビットの和D17としてアキュムレータ16に供給する。
また、RAM104は、RAM104−2の0番アドレスの1ビット目に記憶されているo3,0、RAM104−3の1番アドレスの1ビット目に記憶されているo3,1、RAM104−1の2番アドレスの1ビット目に記憶されているo3,2、RAM104−2の3番アドレスの1ビット目に記憶されているo3,3、RAM104−3の4番アドレスの1ビット目に記憶されているo3,4、RAM104−1の5番アドレスの1ビット目に記憶されているo3,5を、この順に2個ずつ読み出し、2ビットの和D17としてアキュムレータ16に供給する。
次に、RAM104は、RAM104−3の0番アドレスの0ビット目に記憶されているo4,0、RAM104−1の1番アドレスの0ビット目に記憶されているo4,1、RAM104−2の2番アドレスの0ビット目に記憶されているo4,2、RAM104−3の3番アドレスの0ビット目に記憶されているo4,3、RAM104−1の4番アドレスの0ビット目に記憶されているo4,4、RAM104−2の5番アドレスの0ビット目に記憶されているo4,5を、この順に2個ずつ読み出し、2ビットの和D17としてアキュムレータ16に供給する。
また、RAM104は、RAM104−3の0番アドレスの1ビット目に記憶されているo5,0、RAM104−1の1番アドレスの1ビット目に記憶されているo5,1、RAM104−2の2番アドレスの1ビット目に記憶されているo5,2、RAM104−3の3番アドレスの1ビット目に記憶されているo5,3、RAM104−1の4番アドレスの1ビット目に記憶されているo5,4、RAM104−2の5番アドレスの1ビット目に記憶されているo5,5を、この順に2個ずつ読み出し、2ビットの和D17としてアキュムレータ16に供給する。
上述した図19に示すように、サイクリックシフト回路102が、積D101をサイクリックシフトするので、RAM104が同時に読み出す2ビットの和D104を、異なるRAM104−1乃至104−3に記憶させることができる。これにより、ワード方向に読み出すことができないRAM104において、実質的にワード方向に読み出すことができる。例えば、2ビットの和D104として同時に読み出すo0,0とo0,1は、ワード方向に並べて記憶されるが、それぞれ異なるRAM104−1または104−2に記憶されているので、同時に読み出すことができる。
その結果、RAM104のビット方向に検査行列H´の0行目から順に和D104として記憶される、検査行列H´の情報部の各行と情報語iの積を、検査行列Hの0行目に対応する積から順に読み出すことができる。
次に、図21を参照して、図18の符号化装置1による符号化処理を説明する。この符号化処理は、例えば、情報語D11(情報語i)が2ビット単位で入力されたとき、開始される。
ステップS21乃至S23は、図17のステップS1乃至S3と同様の処理であるので、説明は省略する。
ステップS23の処理後は、ステップS24に進み、並べ替え回路101は、制御部105からの制御信号D105に基づいて、ステップS23でサイクリックシフト回路12から供給される6ビットの積D13の並び替えを行い、並び替え後の積D13を、積D101としてサイクリックシフト回路102に供給する。
ステップS24の処理後は、ステップS25に進み、サイクリックシフト回路102は、制御部105からの制御信号D106に基づいて、並べ替え回路101からの積D101をサイクリックシフトし、サイクリックシフト後の6ビット単位の積D101を、積D102として加算器103に供給する。
ステップS25の処理後は、ステップS26に進み、加算器103は、サイクリックシフト回路102からの6ビットの積D102と、後述するステップS27でRAM104から供給される6ビットの和D103との排他的論理和をビット毎に求め、その結果得られる6ビットの値を和D104としてRAM104に供給し、ステップS27に進む。
ステップS27において、RAM104は、制御部105からの制御信号D107に基づいて、加算器103からの和D104を6ビット単位で記憶したり、既に記憶している和D104を6ビットまたは2ビット単位で読み出す。RAM104は、6ビット単位で読み出した和D104を、和D103として加算器103に供給したり、2ビット単位で読み出した和D104を、和D17としてアキュムレータ16に供給する。
ステップS28乃至S31の処理は、ステップS6,S7,S9、およびS10の処理と同様であるので、説明は省略する。
次に、図22は、LDPC符号化に用いる検査行列Hの他の例を示している。
図22の検査行列Hは、n=102,k=72の符号語c(符号化率12/17、符号長102)を得るための検査行列Hであり、30(行)×102(列)の行列である。即ち、検査行列Hは、30(=n-k)行72(=k)列の情報部と、30(=n-k)行30(=n-k)列のパリティ部とから構成される。図22の検査行列Hを行置換または列置換すると、図23に示す検査行列H´になる。図23の検査行列H´では、情報部を、構成行列の組み合わせで表すことができる。
次に、図24と図25を参照して、図22の検査行列Hを用いて図18の符号化装置1がLDPC符号化を行う場合の、並べ替え回路101、サイクリックシフト回路102、およびRAM104における処理について説明する。
まず最初に、図24を参照して、並べ替え回路101とサイクリックシフト回路102の処理について説明する。
図24に示すように、並び替え回路101には、まず最初に、サイクリックシフト回路12から、6ビットの積であるd0,0乃至d5,0,d0,1乃至d5,1,d0,2乃至d5,2,d0,3乃至d5,3,d0,4乃至d5,4,d0,5乃至d5,5が、それぞれ順に積D13として供給される。
ここで、n0-k0(=(n-k)/P=30/6)は5であり、RAM104−1乃至104−3の数である3の倍数ではなく、3で除算した結果余りが2となる。このように、n0-k0が、RAM104−1乃至104−3の倍数ではなく、3で除算した結果余りが2である場合、RAM104において、検査行列H´の情報部の各行と情報語iの積を、検査行列Hの0行目に対応する積から順に読み出すために、並べ替え回路101は、次のように並び替えを行う。
並び替え回路101は、積D13の0ビット目を積D101の0ビット目に、積D13の3ビット目を積D101の1ビット目に、積D13の2ビット目を積D101の2ビット目に、積D13の5ビット目を積D101の3ビット目に、積D13の1ビット目を積D101の4ビット目に、積D13の4ビット目を積D101の5ビット目に並び替え、6ビットの積D101をサイクリックシフト回路102に供給する。
例えば、並び替え回路101は、図24に示すように、6ビットのd0,0乃至d5,0を、d0,0,d3,0,d2,0,d5,0,d1,0,d4,0の順に並び替え、積D101としてサイクリックシフト回路102に供給する。また、並び替え回路101は、図24に示すように、6ビットのd0,1乃至d5,1を、d0,1,d3,1,d2,1,d5,1,d1,1,d4,1の順に並び替え、積D101としてサイクリックシフト回路102に供給する。
図24に示すように、制御部105は、サイクリックシフトの量をy×0,y×1,y×2,・・・,y×(n0-k0-1)(mod P)の順、即ち0,2,4,0,2の順に繰り返し設定し、そのサイクリックシフトの量を表す制御信号D106を生成して、サイクリックシフト回路102に供給する。
サイクリックシフト回路102は、制御部105からの制御信号D106に基づいて、例えば、並べ替え回路101から6ビットの積D101として供給される、d0,0,d3,0,d2,0,d5,0,d1,0,d4,0をサイクリックシフトせずに、積D102として加算器103に出力する。即ち、d0,0乃至d5,0のサイクリックシフト量は0である。
なお、検査行列H´の上からv番目の構成行列の上からw行目と1乃至11番ベクトルのそれぞれとの積D101についても同様に並べ替えとサイクリックシフトが行われる。
次に、図25を参照して、RAM104の処理について説明する。
RAM104は、図20の場合と同様に、制御信号D107に基づいて、加算器103から供給される6ビットの和D104の記憶(更新)と読み出しを繰り返し、最終的に、RAM104には、図25に示すように、o0,0乃至o5,4が記憶される。
例えば、RAM104−1の0番アドレスの0ビット目には、o0,0が、RAM104−1の0番アドレスの1ビット目にo3,0が記憶される。また、RAM104−2の0番アドレスの0ビット目にo2,0、1ビット目にo5,0が記憶される。さらに、RAM104−3の0番アドレスの0ビット目にo1,0、1ビット目にo4,0が記憶される。
また、RAM104は、図20の場合と同様に、制御信号D107に基づいて、既に記憶されているo0,0乃至o5,4を、検査行列Hの1行目に対応するものから順に読み出す。
具体的には、まず最初に、RAM104は、RAM104−1の0番アドレスの0ビット目に記憶されているo0,0とRAM104−2の1番アドレスの1ビット目に記憶されているo0,1とを読み出し、2ビットの和D17としてアキュムレータ16に供給する。
次に、RAM104は、RAM104−3の2番アドレスの0ビット目に記憶されているo0,2とRAM104−1の3番アドレスの0ビット目に記憶されているo0,3とを読み出し、2ビットの和D17としてアキュムレータ16に供給する。
また、RAM104は、RAM104−2の4番アドレスの0ビット目に記憶されているo0,4、RAM104−3の0番アドレスの0ビット目に記憶されているo1,0、RAM104−1の1番アドレスの0ビット目に記憶されているo1,1、RAM104−2の2番アドレスの0ビット目に記憶されているo1,2、RAM104−3の3番アドレスの0ビット目に記憶されているo1,3、RAM104−1の4番アドレスの0ビット目に記憶されているo1,4を、この順に2個ずつ読み出し、2ビットの和D17としてアキュムレータ16に供給する。
次に、RAM104は、RAM104−2の0番アドレスの0ビット目に記憶されているo2,0、RAM104−3の1番アドレスの0ビット目に記憶されているo2,1、RAM104−1の2番アドレスの0ビット目に記憶されているo2,2、RAM104−2の3番アドレスの0ビット目に記憶されているo2,3を、この順に2個ずつ読み出し、2ビットの和D17としてアキュムレータ16に供給する。
また、RAM104は、RAM104−3の4番アドレスの0ビット目に記憶されているo2,4、RAM104−1の0番アドレスの1ビット目に記憶されているo3,0、RAM104−2の1番アドレスの1ビット目に記憶されているo3,1、RAM104−3の2番アドレスの1ビット目に記憶されているo3,2、RAM104−1の3番アドレスの1ビット目に記憶されているo3,3、RAM104−2の4番アドレスの1ビット目に記憶されているo3,4を、この順に2個ずつ読み出し、2ビットの和D17としてアキュムレータ16に供給する。
次に、RAM104は、RAM104−3の0番アドレスの0ビット目に記憶されているo4,0、RAM104−1の1番アドレスの0ビット目に記憶されているo4,1、RAM104−2の2番アドレスの0ビット目に記憶されているo4,2、RAM104−3の3番アドレスの0ビット目に記憶されているo4,3を、この順に2個ずつ読み出し、2ビットの和D17としてアキュムレータ16に供給する。
また、RAM104は、RAM104−1の4番アドレスの1ビット目に記憶されているo4,4、RAM104−2の0番アドレスの1ビット目に記憶されているo5,0、RAM104−3の1番アドレスの1ビット目に記憶されているo5,1、RAM104−1の2番アドレスの1ビット目に記憶されているo5,2、RAM104−2の3番アドレスの1ビット目に記憶されているo5,3、RAM104−3の4番アドレスの1ビット目に記憶されているo5,4を、この順に2個ずつ読み出し、2ビットの和D17としてアキュムレータ16に供給する。
上述した図24に示すように、並び替え回路101が、積D13を並び替え、その並び替え後の積D101をサイクリックシフト回路102がサイクリックシフトするので、RAM104が同時に読み出す2ビットの和D104を、異なるRAM104−1乃至104−3に記憶させることができる。
次に、図26は、LDPC符号化に用いる検査行列Hのさらに他の例を示している。
図26の検査行列Hは、n=96,k=72の符号語c(符号化率3/4、符号長96)を得るための検査行列Hであり、24(行)×96(列)の行列である。即ち、検査行列Hは、24(=n-k)行72(=k)列の情報部と、24(=n-k)行24(=n-k)列のパリティ部とから構成される。図26の検査行列Hを行置換または列置換すると、図27に示す検査行列H´になる。図27の検査行列H´では、情報部を、構成行列の組み合わせで表すことができる。次に、図28と図29を参照して、図26の検査行列Hを用いて図18の符号化装置1がLDPC符号化を行う場合の、並べ替え回路101、サイクリックシフト回路102、およびRAM104における処理について説明する。
まず最初に、図28を参照して、並べ替え回路101とサイクリックシフト回路102の処理について説明する。
図28に示すように、並び替え回路101には、サイクリックシフト回路12から、6ビットのd0,0乃至d5,0,d0,1乃至d5,1,d0,2乃至d5,2,d0,3乃至d5,3,d0,4乃至d5,4,d0,5乃至d5,5が、それぞれ順に積D13として供給される。
ここで、n0-k0(=(n-k)/P=30/6)は4であり、RAM104−1乃至104−3の数である3の倍数ではなく、3で除算した結果余りが1となる。このように、n0-k0が、RAM104−1乃至104−3の倍数ではなく、3で除算した結果余りが1である場合、RAM104において、検査行列H´の情報部の各行と情報語iの積を、検査行列Hの0行目に対応する積から順に読み出すために、並べ替え回路101は、次のように並び替えを行う。
並び替え回路101は、積D13の0ビット目を積D101の0ビット目に、積D13の3ビット目を積D101の1ビット目に、積D13の1ビット目を積D101の2ビット目に、積D13の4ビット目を積D101の3ビット目に、積D13の2ビット目を積D101の4ビット目に、積D13の5ビット目を積D101の5ビット目に並び替え、6ビットの積D101をサイクリックシフト回路102に供給する。
例えば、並び替え回路101は、図28に示すように、6ビットのd0,0乃至d5,0を、d0,0,d3,0,d1,0,d4,0,d2,0,d5,0の順に並び替え、積D101としてサイクリックシフト回路102に供給する。また、並び替え回路101は、図28に示すように、6ビットのd0,1乃至d5,1を、d0,1,d3,1,d1,1,d4,1,d2,1,d5,1の順に並び替え、積D101としてサイクリックシフト回路102に供給する。
図28に示すように、制御部105は、サイクリックシフトの量をy×0,y×1,y×2,・・・,y×(n0-k0-1)(mod P)の順、即ち0,2,4,0の順に繰り返し設定し、そのサイクリックシフトの量を表す制御信号D106を生成して、サイクリックシフト回路102に供給する。
例えば、図28に示すように、サイクリックシフト回路102は、並べ替え回路101から6ビットの積D101として供給される、d0,0,d3,0,d1,0,d4,0,d2,0,d5,0をサイクリックシフトせずに、積D102として加算器103に出力する。即ち、d0,0乃至d5,0のサイクリックシフト量は0である。
なお、検査行列H´の上からv番目の構成行列の上からw行目と1乃至11番ベクトルのそれぞれとの積D101についても同様に並べ替えとサイクリックシフトが行われる。
次に、図29を参照して、RAM104の処理について説明する。
RAM104は、図20や図25の場合と同様に、制御部105からの制御信号D107に基づいて、加算器103から供給される6ビットの和D104の記憶(更新)または読み出しを繰り返し、最終的に、RAM104には、図29に示すように、o0,0乃至o5,3が記憶される。
例えば、RAM104−1の0番アドレスの0ビット目にo0,0、1ビット目にo3,0が記憶される。また、RAM104−2の0番アドレスの0ビット目にo1,0、1ビット目にo4,0が記憶される。さらに、RAM104−3の0番アドレスの0ビット目にo2,0、1ビット目にo5,0が記憶される。
また、RAM104は、図20や図25の場合と同様に、制御信号D107に基づいて、既に記憶されているo0,0乃至o5,3を、検査行列Hの1行目に対応するものから順に読み出す。
具体的には、まず最初に、RAM104は、RAM104−1の0番アドレスの0ビット目に記憶されているo0,0とRAM104−2の1番アドレスの0ビット目に記憶されているo0,1とを読み出し、2ビットの和D17としてアキュムレータ16に供給する。
次に、RAM104は、RAM104−3の2番アドレスの0ビット目に記憶されているo0,2とRAM104−1の3番アドレスの0ビット目に記憶されているo0,3とを読み出し、2ビットの和D17としてアキュムレータ16に供給する。
また、RAM104は、RAM104−2の0番アドレスの0ビット目に記憶されているo1,0、RAM104−3の1番アドレスの0ビット目に記憶されているo1,1、RAM104−1の2番アドレスの0ビット目に記憶されているo1,2、RAM104−2の3番アドレスの0ビット目に記憶されているo1,3を、この順に2個ずつ読み出し、2ビットの和D17としてアキュムレータ16に供給する。
次に、RAM104は、RAM104−3の0番アドレスの0ビット目に記憶されているo2,0、RAM104−1の1番アドレスの0ビット目に記憶されているo2,1、RAM104−2の2番アドレスの0ビット目に記憶されているo2,2、RAM104−3の3番アドレスの0ビット目に記憶されているo2,3を、この順に2個ずつ読み出し、2ビットの和D17としてアキュムレータ16に供給する。
また、RAM104は、RAM104−1の0番アドレスの1ビット目に記憶されているo3,0、RAM104−2の1番アドレスの1ビット目に記憶されているo3,1、RAM104−3の2番アドレスの1ビット目に記憶されているo3,2、RAM104−1の3番アドレスの1ビット目に記憶されているo3,3を、この順に2個ずつ読み出し、2ビットの和D17としてアキュムレータ16に供給する。
次に、RAM104は、RAM104−2の0番アドレスの1ビット目に記憶されているo4,0、RAM104−3の1番アドレスの1ビット目に記憶されているo4,1、RAM104−1の2番アドレスの1ビット目に記憶されているo4,2、RAM104−2の3番アドレスの1ビット目に記憶されているo4,3を、この順に2個ずつ読み出し、2ビットの和D17としてアキュムレータ16に供給する。
また、RAM104は、RAM104−3の0番アドレスの1ビット目に記憶されているo5,0、RAM104−1の1番アドレスの1ビット目に記憶されているo5,1、RAM104−2の2番アドレスの1ビット目に記憶されているo5,2、RAM104−3の3番アドレスの1ビット目に記憶されているo5,3を、この順に2個ずつ読み出し、2ビットの和D17としてアキュムレータ16に供給する。
上述した図28に示すように、並び替え回路101が、積D13を並び替え、その並び替え後の積D101をサイクリックシフト回路102がサイクリックシフトするので、RAM104が同時に読み出す2ビットの和D104を、異なるRAM104−1乃至104−3に記憶させることができる。
以上のようにしてRAM104から供給される和D17を用いて、アキュムレータ16は、式(6)の演算を行い、その結果得られるパリティビットpが、2ビット単位でパリティビットD18としてセレクタ17を介して出力される。
以上のように、符号化装置1によりLDPC符号化された結果得られる符号語cの復号は、Gallagerが確率復号(Probabilistic Decoding)と称して提案したアルゴリズムであって、各列に対応するバリアブルノード(variable node(メッセージノード(message node)とも呼ばれる。))と、各行に対応するチェックノード(check node)とからなる、いわゆるタナーグラフ(Tanner graph)上での確率伝播(belief propagation)によるメッセージ・パッシング・アルゴリズム(サムプロダクトアルゴリズム(Sum Product Algorithm)によって行うことが可能である。
このアルゴリズムでは、LDPC符号の符号語cが受信されると、チェックノードのメッセージ(値の"0"らしさを、いわゆる対数尤度比(log likelihood ratio)で表現した実数値)が初期化され、その後、各行に対応するチェックノードの処理と、各列に対応するバリアブルノードの処理とが繰り返し行われることにより、復号が行われる。
バリアブルノードの処理の結果得られる値のシンドロームが0である場合、または所定の回数チェックノードとバリアブルノードの処理が繰り返された場合、その時点でバリアブルノードの処理の結果得られた値が、復号結果として出力され、アルゴリズムが終了される。
以上のように、図8の符号化装置1では、加算器13が、6ビットの情報語D12と、その情報語D12に対応する検査行列Hの情報部との積を、6ビット単位で行ごとに積算し、その結果得られる和D15をRAM14に記憶させ、アキュムレータ16が、RAM14から読み出された2ビットの和D16(D15)に対応する和D17を積算し、その結果得られる2ビットのパリティビットD18をLDPC符号の符号語cのパリティビットpとして出力するので、線形符号の符号化の動作速度を変えることなく、符号化装置の回路規模を削減することができる。
本実施の形態では、検査行列Hの情報部の列数kを102、構成行列の行数(または列数)Pを6としたが、情報部の列数kと構成行列の行数Pはこれに限定されない。例えば、符号化装置1は、情報語iの情報長が102より大きく、情報部の列数kが大きい検査行列Hにも適用可能であるし、6×6より大きい正方行列を構成行列として分割可能な検査行列Hにも適用可能である。
また、本実施の形態では、RAM104のビット数を2、ワード数を6、個数を3としたが、ビット数、ワード数、および個数はこれに限定されず、自由度があるものとする。さらに、RAM104から同時に読み出し可能な和D104のビット数、または書き込み可能な和D104のビット数は、どのような値であってもよい。
上述した説明では、LDPC符号が2元であるものとして説明したが、2元ではなく、1ビットを{0,・・・,q}(q>1)で表す場合、アキュムレータ16によるパリティビットpの演算には、乗算と除算も必要となる。
また、上述したサイクリックシフト回路12と102として、バレルシフタを用いると回路規模を小さくすることができる。
本発明は、P×Pの単位行列、その単位行列のコンポーネントである1のうちの1個以上が0になった行列である準単位行列、前記単位行列もしくは準単位行列をサイクリックシフトした行列であるシフト行列、前記単位行列、準単位行列、もしくはシフト行列のうちの複数の和である和行列、またはP×Pの0行列を構成行列として、線形符号の検査行列が、複数の構成行列の組み合わせで表される場合において適用することができる。
また、本発明の効果は、情報語iの情報長が長い(大きい)場合に、より大きくなる。
一般に、LDPC符号化に必要な計算量は少ないが、符号化装置1によるLDPC符号化においても、検査行列Hの要素に0が多い場合、計算量を著しく削減することができる。
また、符号化装置1は、ベクトルと行列の積算を忠実に実装するものであるため、従来の符号化装置と異なる出力を出すことはない。
本実施の形態では、LDPC符号への符号化について説明したが、本発明はLDPC符号だけでなく、その他の線形符号への符号化を行う符号化装置にも適用することができる。
上述したLDPC符号を符号化する符号化装置1は、例えば、(ディジタル)衛星放送を送信する放送局の装置などに適用することができる。
LDPC符号の検査行列Hを説明する図である。 パリティ部が下三角行列になっている検査行列Hを示す図である。 パリティ部が下三角行列になっている検査行列Hを示す図である。 LDPC符号化に用いる検査行列Hの例を示す図である。 図4の検査行列Hを行置換または列置換した後の検査行列H´を示す図である。 図4の検査行列Hを行置換または列置換した後の検査行列H´を示す図である。 図4の検査行列Hと図5や図6の検査行列H´のパリティ部を示す図である。 本発明を適用した符号化装置の第1実施の形態の構成例を示すブロック図である。 図8のサイクリックシフト回路が行うサイクリックシフトの量について説明する図である。 図8のRAMに記憶される和について説明する図である。 図8のRAMに記憶される和について説明する図である。 図8のサイクリックシフト回路が行うサイクリックシフトの量について説明する図である。 図12のインターリーバにおけるデータの入出力を説明するタイミングチャートである。 図8のアキュムレータの詳細構成例を示す図である。 図14のアキュムレータで行われるパリティビットpの演算について説明する図である。 図14のアキュムレータで行われるパリティビットpの演算について説明する図である。 図8の符号化装置による符号化処理を説明するフローチャートである。 本発明を適用した符号化装置1の第2の実施の形態の構成例を示すブロック図である。 図18のサイクリックシフト回路が行うサイクリックシフトの量について説明する図である。 図18のRAMに記憶される和について説明する図である。 図18の符号化装置による符号化処理を説明するフローチャートである。 LDPC符号化に用いる検査行列Hの他の例を示す図である。 図22の検査行列Hを行置換または列置換した後の検査行列H´を示す図である。 図22の検査行列Hを用いてLDPC符号化を行う場合の処理について説明する図である。 図22の検査行列Hを用いてLDPC符号化を行う場合の処理について説明する図である。 LDPC符号化に用いる検査行列Hのさらに他の例を示す図である。 図26の検査行列Hを行置換または列置換した後の検査行列H´を示す図である。 図26の検査行列Hを用いてLDPC符号化を行う場合の処理について説明する図である。 図26の検査行列Hを用いてLDPC符号化を行う場合の処理について説明する図である。
符号の説明
1 符号化装置, 11 ビット幅回路, 12 サイクリックシフト回路, 13 加算器, 14 RAM, 15 インターリーバ, 16 アキュムレータ, 17 セレクタ, 18 制御部, 101 並べ替え回路, 102 サイクリックシフト回路, 103 加算器, 104 RAM, 105 制御部

Claims (19)

  1. 所定の情報を線形符号に符号化する符号化装置であって、
    P×Pの単位行列、その単位行列のコンポーネントである1のうちの1個以上が0になった行列である準単位行列、前記単位行列もしくは準単位行列をサイクリックシフトした行列であるシフト行列、前記単位行列、準単位行列、もしくはシフト行列のうちの複数の和である和行列、またはP×Pの0行列を構成行列として、前記線形符号の検査行列が、複数の前記構成行列の組み合わせで表される場合、または前記線形符号の検査行列が、行や列の置換により、複数の前記構成行列の組み合わせで表される場合において、
    前記情報と、その情報に対応する前記検査行列の情報部との積を、複数の行単位で行ごとに積算する第1の積算手段と、
    前記第1の積算手段により積算された結果得られる第1の積算値を記憶する記憶手段と、
    前記記憶手段から読み出された第1の積算値を積算し、その結果得られる第2の積算値を前記線形符号の一部として出力する第2の積算手段と
    を備えることを特徴とする符号化装置。
  2. 前記線形符号はLDPC(Low Density Parity Check)符号である
    ことを特徴とする請求項1に記載の符号化装置。
  3. 前記第1の積算手段は、前記Pの約数個の行単位で行ごとに積算する
    ことを特徴とする請求項1に記載の符号化装置。
  4. 前記記憶手段は、前記Pの約数個の前記第1の積算値を同時に読み書き可能なメモリから構成される
    ことを特徴とする請求項3に記載の符号化装置。
  5. 前記記憶手段は、前記第1の積算値を前記線形符号の検査行列の1を列方向に詰めるように格納する
    ことを特徴とする請求項4に記載の符号化装置。
  6. 前記記憶手段は、RAM(Random Access Memory)であり、そのRAMのアドレスは前記検査行列の情報部の前記P個の行に対応する
    ことを特徴とする請求項5に記載の符号化装置。
  7. 前記情報と、その情報に対応する前記検査行列の情報部との積を、前記単位行列、準単位行列、またはシフト行列単位で演算する演算手段
    をさらに備え、
    前記記憶手段は、前記検査行列の情報部の前記和行列を、前記単位行列、準単位行列、またはシフト行列のうちの複数の行列の和に分解したときの、その複数の行列それぞれに対して得られる前記積を同一のアドレスに格納するように、前記演算手段により演算される積を記憶し、
    前記第1の積算手段は、前記記憶手段から読み出される積と、前記演算手段により得られる積とを加算することにより、前記P個の行単位で行ごとに前記積を積算する
    ことを特徴とする請求項6に記載の符号化装置。
  8. 前記第1の積算手段は、順次入力される前記情報と、その情報に対応する前記検査行列の情報部とを積算し、その結果得られる第1の積算値を、前記記憶手段を介して前記第2の積算手段に順次出力し、
    前記第2の積算手段は、前記第1の積算手段から前記記憶手段を介して順次入力される前記第1の積算値を積算し、その結果得られる第2の積算値を順次出力する
    ことを特徴とする請求項3に記載の符号化装置。
  9. 前記情報をサイクリックシフトすることにより前記積を算出する並べ替え手段
    をさらに備える
    ことを特徴とする請求項8に記載の符号化装置。
  10. 前記第1の積算手段は、
    前記積を行ごとに積算する前記Pの約数個の第3の積算手段
    を備え、
    前記Pの約数個の第3の積算手段は、同時に前記積を行ごとに積算する
    ことを特徴とする請求項8に記載の符号化装置。
  11. 前記第2の積算手段は、前記記憶手段から読み出される第1の積算値と、前回の加算の結果得られた前記第2の積算値とを加算し、その結果得られる加算値を前記第2の積算値として出力するとともに、次回の加算に用いる
    ことを特徴とする請求項8に記載の符号化装置。
  12. 前記第1の積算手段により積算された結果得られる第1の積算値の順序を制御する順序制御手段
    をさらに備え、
    前記記憶手段は、前記順序制御手段により順序が制御された第1の積算値を記憶する
    ことを特徴とする請求項8に記載の符号化装置。
  13. 前記順序制御手段は、前記第1の積算値の並び替えおよびサイクリックシフトを行うことにより、前記第1の積算値の順序を制御する
    ことを特徴とする請求項12に記載の符号化装置。
  14. 前記記憶手段は、前記Pの約数個の前記第1の積算値を同時に読み書き可能、かつ独立に制御可能な複数のメモリから構成される
    ことを特徴とする請求項12に記載の符号化装置。
  15. 前記記憶手段から読み出される第1の積算値の順序を制御する順序制御手段
    をさらに備え、
    前記第2の積算手段は、前記順序制御手段により順序が制御された第1の積算値を積算する
    ことを特徴とする請求項8に記載の符号化装置。
  16. 前記順序制御手段は、インターリーバである
    ことを特徴とする請求項15に記載の符号化装置。
  17. 前記P個の情報をサイクリックシフトすることにより、前記積を算出する並べ替え手段
    をさらに備える
    ことを特徴とする請求項8に記載の符号化装置。
  18. 前記並べ替え手段は、バレルシフタで構成される
    ことを特徴とする請求項17に記載の符号化装置。
  19. 所定の値を記憶する記憶手段を備え、所定の情報を線形符号に符号化する符号化装置の符号化方法であって、
    P×Pの単位行列、その単位行列のコンポーネントである1のうちの1個以上が0になった行列である準単位行列、前記単位行列もしくは準単位行列をサイクリックシフトした行列であるシフト行列、前記単位行列、準単位行列、もしくはシフト行列のうちの複数の和である和行列、またはP×Pの0行列を構成行列として、前記線形符号の検査行列が、複数の前記構成行列の組み合わせで表される場合、または前記線形符号の検査行列が、行や列の置換により、複数の前記構成行列の組み合わせで表される場合において、
    前記情報と、その情報に対応する前記検査行列の情報部との積を、複数の行単位で行ごとに積算する第1の積算ステップと、
    前記第1の積算ステップの処理により積算された結果得られる第1の積算値を、前記記憶手段に記憶させる記憶制御ステップと、
    前記記憶手段から読み出された第1の積算値を積算し、その結果得られる第2の積算値を前記線形符号の一部として出力する第2の積算ステップと
    を含むことを特徴とする符号化方法。
JP2005125965A 2005-04-25 2005-04-25 符号装置および符号化方法 Expired - Fee Related JP4617985B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2005125965A JP4617985B2 (ja) 2005-04-25 2005-04-25 符号装置および符号化方法
US11/912,485 US8010870B2 (en) 2005-04-25 2005-04-25 Coding apparatus and coding method
EP06745483A EP1876717A4 (en) 2005-04-25 2006-04-20 ENCODING APPARATUS AND METHOD
PCT/JP2006/308302 WO2006115166A1 (ja) 2005-04-25 2006-04-20 符号装置および符号化方法
CN2006800139056A CN101164241B (zh) 2005-04-25 2006-04-20 编码设备和编码方法
KR1020077024428A KR101217335B1 (ko) 2005-04-25 2006-04-20 부호화 장치 및 부호화 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005125965A JP4617985B2 (ja) 2005-04-25 2005-04-25 符号装置および符号化方法

Publications (2)

Publication Number Publication Date
JP2006304132A true JP2006304132A (ja) 2006-11-02
JP4617985B2 JP4617985B2 (ja) 2011-01-26

Family

ID=37214784

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005125965A Expired - Fee Related JP4617985B2 (ja) 2005-04-25 2005-04-25 符号装置および符号化方法

Country Status (6)

Country Link
US (1) US8010870B2 (ja)
EP (1) EP1876717A4 (ja)
JP (1) JP4617985B2 (ja)
KR (1) KR101217335B1 (ja)
CN (1) CN101164241B (ja)
WO (1) WO2006115166A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015133095A1 (ja) * 2014-03-04 2015-09-11 日本電気株式会社 パリティ検査符号生成装置、符号化方法、符号化装置および記録媒体
US10389387B2 (en) 2015-05-19 2019-08-20 Sony Semiconductor Solutions Corporation Coding device and coding method for a DVB-like LDPC code and a LDPC code in an ETRI format
US10868567B2 (en) 2016-07-20 2020-12-15 Huawei Technologies Co., Ltd. Methods and systems for encoding and decoding for LDPC codes
JP2021044826A (ja) * 2020-11-18 2021-03-18 ホアウェイ・テクノロジーズ・カンパニー・リミテッド Ldpc符号の符号化および復号化のための方法およびシステム

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2888061A1 (fr) * 2005-07-01 2007-01-05 France Telecom Procede et systeme d'encodage d'une sequence de donnees
KR100975696B1 (ko) * 2007-04-05 2010-08-12 삼성전자주식회사 통신 시스템에서 부호화 장치 및 방법
US8225165B2 (en) * 2007-10-12 2012-07-17 Industrial Technology Research Institute Methods and devices for encoding data in communication systems
US8291283B1 (en) 2008-06-06 2012-10-16 Marvell International Ltd. Layered quasi-cyclic LDPC decoder with reduced-complexity circular shifter
FR2941829B1 (fr) * 2009-01-30 2012-06-01 Get Enst Bretagne Groupe Des Ecoles Des Telecomm Ecole Nationale Superieure Des Telecomm Bretagne Procede de codage de donnees a au moins deux etapes d'encodage a et au moins une etape de permutation, dispositif de codage, programme d'ordinateur et signal correspondants.
JP5387211B2 (ja) * 2009-07-30 2014-01-15 ソニー株式会社 線形性改善回路、σδa/d変換器、および受信装置
US8560604B2 (en) 2009-10-08 2013-10-15 Hola Networks Ltd. System and method for providing faster and more efficient data communication
IL210169A0 (en) 2010-12-22 2011-03-31 Yehuda Binder System and method for routing-based internet security
CN103391104A (zh) * 2012-05-10 2013-11-13 中兴通讯股份有限公司 低密度奇偶校验码ldpc编码处理方法及装置
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
US9281840B2 (en) * 2013-12-30 2016-03-08 Saankhya Labs Private Limited System and method for multi standard programmable LDPC decoder
US11057446B2 (en) 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
CN111341330B (zh) * 2020-02-10 2023-07-25 科大讯飞股份有限公司 音频编解码方法、存取方法及其相关设备及存储装置

Citations (2)

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

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3234130B2 (ja) * 1995-05-30 2001-12-04 三菱電機株式会社 誤り訂正符号復号化方法およびこの方法を用いる回路
US6898248B1 (en) * 1999-07-12 2005-05-24 Hughes Electronics Corporation System employing threaded space-time architecture for transporting symbols and receivers for multi-user detection and decoding of symbols
US7415061B2 (en) * 1999-08-31 2008-08-19 Broadcom Corporation Cancellation of burst noise in a communication system with application to S-CDMA
US6633856B2 (en) * 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
US6895547B2 (en) * 2001-07-11 2005-05-17 International Business Machines Corporation Method and apparatus for low density parity check encoding of data
US7349478B2 (en) 2001-12-06 2008-03-25 Pulse-Link, Inc. Ultra-wideband communication apparatus and methods
US7406647B2 (en) * 2001-12-06 2008-07-29 Pulse-Link, Inc. Systems and methods for forward error correction in a wireless communication network
US6757122B1 (en) * 2002-01-29 2004-06-29 Seagate Technology Llc Method and decoding apparatus using linear code with parity check matrices composed from circulants
AU2002364182A1 (en) 2002-08-20 2004-03-11 Flarion Technologies, Inc. Methods and apparatus for encoding ldpc codes
JP4224777B2 (ja) * 2003-05-13 2009-02-18 ソニー株式会社 復号方法および復号装置、並びにプログラム
JP2005051461A (ja) 2003-07-28 2005-02-24 Sony Corp 直流電流と低周波信号と高周波信号の重畳伝送方式
KR100809619B1 (ko) * 2003-08-26 2008-03-05 삼성전자주식회사 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법
US7395494B2 (en) * 2003-12-22 2008-07-01 Electronics And Telecommunications Research Institute Apparatus for encoding and decoding of low-density parity-check codes, and method thereof
US7260763B2 (en) * 2004-03-11 2007-08-21 Nortel Networks Limited Algebraic low-density parity check code design for variable block sizes and code rates
US7181676B2 (en) * 2004-07-19 2007-02-20 Texas Instruments Incorporated Layered decoding approach for low density parity check (LDPC) codes
EP1790083B1 (en) 2004-08-13 2011-01-12 Dtvg Licensing, Inc Code design and implementation improvements for low density parity check codes for multiple-input multiple-output channels
US7543212B2 (en) * 2004-09-13 2009-06-02 Idaho Research Foundation, Inc. Low-density parity-check (LDPC) encoder

Patent Citations (2)

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

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015133095A1 (ja) * 2014-03-04 2015-09-11 日本電気株式会社 パリティ検査符号生成装置、符号化方法、符号化装置および記録媒体
US10389387B2 (en) 2015-05-19 2019-08-20 Sony Semiconductor Solutions Corporation Coding device and coding method for a DVB-like LDPC code and a LDPC code in an ETRI format
US10868567B2 (en) 2016-07-20 2020-12-15 Huawei Technologies Co., Ltd. Methods and systems for encoding and decoding for LDPC codes
JP2021044826A (ja) * 2020-11-18 2021-03-18 ホアウェイ・テクノロジーズ・カンパニー・リミテッド Ldpc符号の符号化および復号化のための方法およびシステム
JP7030932B2 (ja) 2020-11-18 2022-03-07 ホアウェイ・テクノロジーズ・カンパニー・リミテッド Ldpc符号の符号化および復号化のための方法およびシステム

Also Published As

Publication number Publication date
KR101217335B1 (ko) 2012-12-31
US20090217122A1 (en) 2009-08-27
US8010870B2 (en) 2011-08-30
EP1876717A4 (en) 2010-04-28
JP4617985B2 (ja) 2011-01-26
KR20080005511A (ko) 2008-01-14
EP1876717A1 (en) 2008-01-09
CN101164241B (zh) 2012-05-30
CN101164241A (zh) 2008-04-16
WO2006115166A1 (ja) 2006-11-02

Similar Documents

Publication Publication Date Title
JP4617985B2 (ja) 符号装置および符号化方法
KR100641052B1 (ko) Ldpc 부호기 및 복호기, 및 ldpc 부호화 방법 및복호화 방법
KR101405962B1 (ko) Ldpc 코드를 이용한 복호화 방법
US7484159B2 (en) Encoding method and encoding apparatus
US7395494B2 (en) Apparatus for encoding and decoding of low-density parity-check codes, and method thereof
JP4622654B2 (ja) 復号装置および復号方法
US7607075B2 (en) Method and apparatus for encoding and decoding data
US20120089884A1 (en) Error correction encoding apparatus, decoding apparatus, encoding method, decoding method, and programs thereof
JP4293172B2 (ja) 復号装置および復号方法
JP2006157926A (ja) 低密度パリティ検査符号の生成方法及び装置
JP2008259051A (ja) 符号化方法および符号化装置、並びにプログラム
KR100918741B1 (ko) 이동 통신 시스템에서 채널 부호화 장치 및 방법
JP4832447B2 (ja) チャネルコードを用いた復号化装置及び方法
KR101147768B1 (ko) 채널 코드를 이용한 복호화 방법 및 장치
JP2007036776A (ja) 復号装置および復号方法
JP2005051469A (ja) 符号化装置および符号化方法、並びにプログラム
EP1820275A1 (en) Ldpc encoder and decoder and ldpc encoding and decoding methods
WO2016185911A1 (ja) 符号化装置及び符号化方法
JP4729964B2 (ja) 復号装置および復号方法
JP4821724B2 (ja) 復号装置および復号方法
JP2010028408A (ja) 情報処理装置、情報処理方法、およびプログラム
JP4288582B2 (ja) 復号装置および復号方法、並びにプログラム
KR100678521B1 (ko) 비균일 저밀도 패리티 검사 부호의 부호화 장치 및 방법
KR100800775B1 (ko) 이동 통신 시스템에서 채널 부호화 장치 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100715

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100908

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

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

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

Free format text: PAYMENT UNTIL: 20131105

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4617985

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20131105

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

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