JP5007676B2 - 符号化装置、復号化装置、符号化・復号化装置及び記録再生装置 - Google Patents

符号化装置、復号化装置、符号化・復号化装置及び記録再生装置 Download PDF

Info

Publication number
JP5007676B2
JP5007676B2 JP2008021282A JP2008021282A JP5007676B2 JP 5007676 B2 JP5007676 B2 JP 5007676B2 JP 2008021282 A JP2008021282 A JP 2008021282A JP 2008021282 A JP2008021282 A JP 2008021282A JP 5007676 B2 JP5007676 B2 JP 5007676B2
Authority
JP
Japan
Prior art keywords
parity
error correction
code
data
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008021282A
Other languages
English (en)
Other versions
JP2009181656A (ja
Inventor
利知 金岡
利雄 伊東
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008021282A priority Critical patent/JP5007676B2/ja
Priority to US12/276,958 priority patent/US8151162B2/en
Priority to EP08170099.9A priority patent/EP2086114B1/en
Priority to KR1020080124647A priority patent/KR100976178B1/ko
Priority to CN2008101856752A priority patent/CN101499806B/zh
Publication of JP2009181656A publication Critical patent/JP2009181656A/ja
Application granted granted Critical
Publication of JP5007676B2 publication Critical patent/JP5007676B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2927Decoding strategies
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1866Error detection or correction; Testing, e.g. of drop-outs by interleaving
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/098Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit using single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • 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/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon 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/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/27Coding, 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 using interleaving techniques
    • H03M13/2703Coding, 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 using interleaving techniques the interleaver involving at least two directions
    • H03M13/271Row-column interleaver with permutations, e.g. block interleaving with inter-row, inter-column, intra-row or intra-column permutations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, 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 using interleaving techniques
    • H03M13/2703Coding, 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 using interleaving techniques the interleaver involving at least two directions
    • H03M13/2721Coding, 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 using interleaving techniques the interleaver involving at least two directions the interleaver involves a diagonal direction, e.g. by using an interleaving matrix with read-out in a diagonal direction
    • 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/27Coding, 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 using interleaving techniques
    • H03M13/2778Interleaver using block-wise interleaving, e.g. the interleaving matrix is sub-divided into sub-matrices and the permutation is performed in blocks of 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2918Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes with error correction codes in three or more dimensions, e.g. 3-dimensional product code where the bits are arranged in a cube
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2921Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes wherein error correction coding involves a diagonal direction
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2927Decoding strategies
    • H03M13/293Decoding strategies with erasure setting
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • G11B2020/1836Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information using a Reed Solomon [RS] code
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • G11B2020/1843Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information using a cyclic redundancy check [CRC]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • G11B2020/185Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information using an low density parity check [LDPC] code
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2508Magnetic discs
    • G11B2220/2516Hard disks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)

Description

本発明は、記録再生装置や通信装置に使用される誤り訂正符号を含むデータの符号化装置、復号化装置、符号化・復号化装置及び記録再生装置に関し、特に、ECC(Error Correction Code)を付与したデータブロックの誤り訂正のための符号化装置、復号化装置、符号化・復号化装置及び記録再生装置に関する。
磁気ディスク装置等の記録再生装置や通信系の分野においては、記録再生過程や、伝送路において生じたデータの誤りを訂正するため、誤り訂正符号(ECC:Error Correction Code)を用いた誤り訂正技術が、広く普及している。
このECC符号として、リード・ソロモン(RS:Reed Solomon)符号が、利用されている(例えば、特許文献1参照)。RS符号は、記録データに、予めRS符号化を行い、記録再生過程を経て再生されたビット列に対し、RS復号化を行い、ビット列に含まれる誤りを検出・訂正する。即ち、RS符号は、シンボル単位の訂正能力に優れており、特に、バースト誤りの検出、訂正能力に優れている。
また、誤り訂正符号技術として、反復復号形式が利用されている。反復復号とECCとを組み合わせて、誤り検出・訂正能力を向上できる。近年、反復復号形式の1つである低密度パリティ検査(LDPC: Low Density Parity Check)符号が、実用化されている。
LDPC符号は、記録データに、予めLDPC符号化を行い、記録再生過程を経て再生された信号に対し、信頼度伝播を用いた反復復号を行うことで、記録再生過程で生じた誤りを訂正することができる(例えば、特許文献2参照)。
LDPC符号化の特徴は、符号ブロック長を大きくした上で、パリティ検査行列H内の“1”(検査対象ビット)の数が少なく(すなわち低密度である)、且つランダムに配置できる特徴を持つ線形符号である。LDPC復号時は、尤度(データ列“0”、“1”の可能性を示す信頼度)を伝播して、復号を行う信頼度伝播を用いた復号と、反復復号(パーシャルレスポンスチャネルと信頼度伝播復号器間を反復する復号)とを行うことにより、誤り訂正を行う。
以下、LDPC符号化及び復号化を説明する。LDPC符号は、線形符号であるため、次の検査条件が成り立つように、パリティ検査行列Hを生成する。
wH=0 (1)
式(1)で、wはLDPC符号化された符号語を表し、Hはパリティ検査行列、Tは転置を表す。
LDPCの復号を行う際、反復復号の停止条件として、規定回数を行う場合と、上式(1)の検査条件が成立するとき、つまり誤りが無となるときに停止し、復号器出力とする場合とがある。
一般的に尤度として、“0”となる確率と“1”となる確率との比を、対数化した対数尤度比(LLR: Log-Likelihood Ratio)が用いられる。そして、元の2値データが“1”であれば、正の尤度、“0”であれば、負の尤度が与えられる。従って、反復復号出力において復号データ列を二値化する際には、“0”をしきい値とするしきい値判定器を用いて、2値判定を行うことができる。
このシンボル単位のECC訂正をRS符号と、ECCの前段で、反復復号により、ビット単位の誤り検出・訂正を行うLDPC符号とを組み合わせた符号化、復号化装置が、提案されている(例えば、特許文献3参照)。
更に、ECC訂正において、このRS符号と、誤り検出を行うパリティ符号とを連接して、複数インターリーブ方式において、誤り訂正能力を改善する方法が提案されている(非特許文献1)。
図15は、従来のRS符号とパリティ符号とを連接した誤り訂正方法の説明図である。例えば、1ブロックが、80ビットである多数のブロックからなるデータ列を符号化対象と想定する。先ず、各ブロック(80ビット)を、20ビットのビット間隔で、インターリーブして、4つのブロック1001,1002,1003,1004を生成する。この4つのブロック1001,1002,1003,1004に、ECC符号器により、RSパリティ1011,1012,1013,1014を付加する。
又、20ビット×4(4ブロック)=80ビットの縦方向に対し、パリティ符号器により、2ビットのパリティ1110〜111nが計算され、付加される。このため、ここで、生成される符号は、横方向がRS符号による誤り訂正符号であり、縦方向がマルチパリティ(2ビットパリティ)による誤り検出符号からなる連接型の符号の構成になる。
このように、4分割したブロックを、20ビットでのインターリーブで作成し、誤り訂正及び検出符号を連接型符号とし、4分割したブロックの横方向に、RS符号による誤り訂正符号を、縦方向に、マルチパリティによる誤り検出符号を適用する。
これを、セクタデータ列で見ると、横方向に80ビット毎に、マルチパリティによる誤り検出符号が設けられ、80ビット(シンボル)単位で誤りを検出でき、且つ20ビット(80ビットの1/4)の4インターリーブ単位で、RS符号が設けられ、4インターリーブ単位で、誤り訂正が可能となる。これにより、ECC復号失敗時に、訂正位置を、局所的に特定でき、利得向上に寄与する。
特開平11−330985号公報 特開2007−166425号公報 特開2005−093038号公報 著者 伊東 利雄,森田 俊彦、論文"ERROR CORRECTING CODES FOR 4K-BYTE SECTORS"byIEEE"The Magnetic Recording Conference (TMRC 2007)",2007年
しかしながら、従来の反復復号にLDPCを用い、その後段のECCにRS符号を用いた組み合わせた方法では、反復復号での訂正能力は、向上するが、ECCでの訂正能力の向上は、それ程、期待できない。
一方、従来のRS符号とパリティ符号とを連接した誤り訂正方法(ECC)の提案では、最尤復号を前提としているため、復号での誤り・訂正能力が高くないという問題がある。
従って、本発明の目的は、復号とECCとの組み合わせによる誤り訂正性能を向上するための符号化器、復号化器、符号化・復号化装置及び記録再生装置を提供することにある。
又、本発明の他の目的は、線形符号化とECCとを組み合わせて、複数インターリーブ構成でECC符号化しても、誤り訂正性能の劣化を防止するための符号化器、復号化器、符号化・復号化装置及び記録再生装置を提供することにある。
更に、本発明の更に他の目的は、LDPCとECCとを組み合わせても、複数インターリーブ構成でECC符号化での誤り訂正能力を向上し、LDPCの局所的エラーの集中が生じても、エラー検出を可能とするための符号化器、復号化器、符号化・復号化装置及び記録再生装置を提供することにある。
この目的の達成のため、本発明の符号化器は、データ列を、m(m≧2)ビット毎に、n(n≧2)ブロックのデータ列にインターリーブし、前記インターリーブされた各ブロックのデータ列から第1の誤り訂正符号のパリティを生成し、前記データ列に各ブロックの前記第1の誤り訂正符号のパリティを付加して、誤り訂正符号語を作成するECC符号器と、前記誤り訂正符号語の複数のビット数毎に、パリティビットを作成し、前記誤り訂正符号語に付加するパリティ符号器と、前記誤り訂正符号語に前記パリティ符号器により生成されたパリティが付加された第2の誤り訂正符号語を、K(K≧2)ビット毎に、L個(L≧2)のブロックのデータ列に分割し、各ブロックのデータ列から、前記ブロック単位に、線形符号である第2の誤り訂正符号のパリティを生成し、前記第2の誤り訂正符号語に、各ブロックの前記第2の誤り訂正符号のパリティを付加して、第3の誤り訂正符号語を作成する第2のECC符号器とを有し、前記パリティ符号器は、前記誤り訂正符号語を、L個(L≧2)のブロックに分割し、分割された各前記ブロックからp(p≧1)ビット単位のデータ列を、q(q≧2)個抽出し、p×q個のデータ列に対して、パリティを生成し、前記p×q個のデータ列に対して生成された前記パリティを、前記生成に用いたデータ列を含む前記ブロック以外のブロックに付加する。
又、本発明の復号器は、前記第3の誤り訂正符号語に符号化された符号化データを復号化する復号器であって、受信した前記符号化データ列を、前記第2のECC符号のパリティを用いて、反復復号し、前記符号化データ列を、ビット列に復号化し、且つ各ビットの尤度を出力する反復復号器と、前記反復復号器の符号化データ列の第1の誤り訂正符号による誤り訂正復号と、前記パリティビットによる誤り検出に従う、前記尤度による前記符号ビット列の訂正復号とを反復して行うECC復号回路とを有し、前記ECC復号回路は、復号失敗時に、失敗したブロックを含む前記L個のブロックからp(p≧1)ビット単位のデータ列を、q(q≧2)個抽出し、p×q個のデータ列に対して、パリティを再生成し、前記L個のブロック以外のブロックに付加された前記パリティビットと比較して、誤り検出する。
又、本発明の符号化・復号化装置は、データ列を、m(m≧2)ビット毎に、n(n≧2)ブロックのデータ列にインターリーブし、前記インターリーブされた各ブロックのデータ列から第1の誤り訂正符号のパリティを生成し、前記データ列に各ブロックの前記第1の誤り訂正符号のパリティを付加して、誤り訂正符号語を作成するECC符号器と、前記誤り訂正符号語の複数のビット数毎に、パリティビットを作成し、前記誤り訂正符号語に付加するパリティ符号器と、前記誤り訂正符号語に前記パリティ符号器により生成されたパリティが付加された第2の誤り訂正符号語を、K(K≧2)ビット毎に、L個(L≧2)のブロックのデータ列に分割し、各ブロックのデータ列から、前記ブロック単位に、線形符号である第2の誤り訂正符号のパリティを生成し、前記第2の誤り訂正符号語に、各ブロックの前記第2の誤り訂正符号のパリティを付加して、第3の誤り訂正符号語を作成する第2のECC符号器と、受信した前記符号化データ列を、前記第2のECC符号のパリティを用いて、反復復号し、前記符号化データ列を、ビット列に復号化し、且つ各ビットの尤度を出力する反復復号器と、前記反復復号器の符号化データ列の第1の誤り訂正符号による誤り訂正復号と、前記パリティビットによる誤り検出に従う、前記尤度による前記符号ビット列の訂正復号とを反復して行うECC復号回路とを有し、前記パリティ符号器は、前記誤り訂正符号語を、L個(L≧2)のブロックに分割し、分割された各前記ブロックからp(p≧1)ビット単位のデータ列を、q(q≧2)個抽出し、p×q個のデータ列に対して、パリティを生成し、前記p×q個のデータ列に対して生成された前記パリティを、前記生成に用いたデータ列を含む前記ブロック以外のブロックに付加し、前記ECC復号回路は、復号失敗時に、失敗したブロックを含む前記L個のブロックからp(p≧1)ビット単位のデータ列を、q(q≧2)個抽出し、p×q個のデータ列に対して、パリティを再生成し、前記L個のブロック以外のブロックに付加された前記パリティビットと比較して、誤り検出する。
又、本発明の記録再生装置は、記憶媒体にデータを書き込み且つ読み取るヘッドと、前記記憶媒体に書き込むべきデータ列を、データ列を、m(m≧2)ビット毎に、n(n≧2)ブロックのデータ列にインターリーブし、前記インターリーブされた各ブロックのデータ列から第1の誤り訂正符号のパリティを生成し、前記データ列に各ブロックの前記第1の誤り訂正符号のパリティを付加して、誤り訂正符号語を作成するECC符号器と、前記誤り訂正符号語の複数のビット数毎に、パリティビットを作成し、前記誤り訂正符号語に付加するパリティ符号器と、前記誤り訂正符号語に前記パリティ符号器により生成されたパリティが付加された第2の誤り訂正符号語を、K(K≧2)ビット毎に、L個(L≧2)のブロックのデータ列に分割し、各ブロックのデータ列から、前記ブロック単位に、線形符号である第2の誤り訂正符号のパリティを生成し、前記第2の誤り訂正符号語に、各ブロックの前記第2の誤り訂正符号のパリティを付加して、第3の誤り訂正符号語を作成し、前記ヘッドに出力する第2のECC符号器と、前記ヘッドが読み出した前記符号化データ列を、前記第2のECC符号のパリティを用いて、反復復号し、前記符号化データ列を、ビット列に復号化し、且つ各ビットの尤度を出力する反復復号器と、前記反復復号器の符号化データ列の第1の誤り訂正符号による誤り訂正復号と、前記パリティビットによる誤り検出に従う、前記尤度による前記符号ビット列の訂正復号とを反復して行うECC復号回路とを有し、前記パリティ符号器は、前記誤り訂正符号語を、L個(L≧2)のブロックに分割し、分割された各前記ブロックからp(p≧1)ビット単位のデータ列を、q(q≧2)個抽出し、p×q個のデータ列に対して、パリティを生成し、前記p×q個のデータ列に対して生成された前記パリティを、前記生成に用いたデータ列を含む前記ブロック以外のブロックに付加し、前記ECC復号回路は、復号失敗時に、失敗したブロックを含む前記L個のブロックからp(p≧1)ビット単位のデータ列を、q(q≧2)個抽出し、p×q個のデータ列に対して、パリティを再生成し、前記L個のブロック以外のブロックに付加された前記パリティビットと比較して、誤り検出する。
更に、本発明の符号化器は、好ましくは、前記第2のECC符号器は、パリティ検査行列における“1”の数が低密度であり、かつ線形符号である低密度パリティ検査(LDPC)符号の要件を満たす第3の誤り訂正符号語を作成するとともに、前記パリティ検査行列に対応する生成行列を用いてパリティを生成する。
更に、本発明の符号化器は、好ましくは、前記パリティ符号器は、前記誤り訂正符号語を、L個(L≧2)のブロックに分割し、分割された各前記ブロックからp(p≧1)ビット単位のデータ列を、q(q≧2)個抽出し、p×q個のデータ列に対して、パリティを生成する。
更に、本発明の符号化器は、好ましくは、前記パリティ符号器は、前記p×q個のデータ列に対して生成された前記パリティを、前記生成に用いたデータ列を含む前記ブロック以外のブロックに付加する。
更に、本発明の符号化器は、好ましくは、前記ECC符号器は、前記データ列を、m(m≧2)ビット毎に、n(n≧2)ブロックのデータ列にインターリーブするインターリーブ部と、インターリーブされた各ブロックのデータ列から誤り訂正符号のパリティを生成するECC符号部と、前記各ブロックのデータ列を前記mビット毎に、デ・インターリーブし、且つ前記データ列に復元し、且つ前記誤り訂正符号のパリティを前記復元されたデータ列に付加するデ・インターリーブ部とを有する。
更に、本発明の符号化器は、好ましくは、前記ECC符号器は、前記誤り訂正符号として、リードソロモン符号を生成する。
更に、本発明の復号器は、好ましくは、前記反復復号器は、前記パリティ検査行列における“1”の数が低密度であり、かつ線形符号である低密度パリティ検査(LDPC)符号の要件を満たす前記第3の誤り訂正符号語から、前記第2の誤り訂正符号語の前記パリティを用いて、前記反復復号し、前記符号化データ列を、前記第2の誤り訂正符号語に硬判定し、且つ各ビットの尤度を出力する。
更に、本発明の復号器は、好ましくは、前記反復復号器は、前記第2の誤り訂正符号語の前記パリティビット列による誤り検出において、前記第2の誤り訂正符号語のブロックが、前記パリティ検査条件を満たし、誤りが検出されなかった時に、前記反復復号を停止し、且つ前記第2の誤り訂正符号語のブロック内の各ビットの尤度を最大の尤度値に設定する。
更に、本発明の復号器は、好ましくは、前記ECC復号回路は、前記反復復号器からの符号ビット列の前記第1の誤り訂正符号による誤り訂正を行うECC復号器と、前記ECC復号器の復号失敗に応じて、前記パリティビットによる誤り検出を行い、前記誤り検出結果により、前記尤度により、前記ECC復号器に入力される前記符号ビット列の訂正を行うパリティ・尤度訂正器とを有する。
更に、本発明の復号器は、好ましくは、前記反復復号器からの符号ビット列から前記パリティビットを分離し、前記パリティ・尤度訂正器に出力する分割部と、前記パリティビットが分離された前記符号ビット列を、前記m(m≧2)ビット毎に、n(n≧2)ブロックのデータ列にインターリーブするインターリーブ部と、前記インターリーブされた各ブロックのデータ列を保存するデータ保存部とを更に有し、前記ECC復号器は、前記データ保存部の各ブロックのデータ列を前記誤り訂正符号による誤り訂正を行い、前記パリティ・尤度訂正器は、前記データ保存器のデータ列の訂正を行う。
更に、本発明の復号器は、好ましくは、前記パリティ・尤度訂正器は、前記復号失敗時に、前記失敗したブロックを含む前記L個のブロックからp(p≧1)ビット単位のデータ列を、q(q≧2)個抽出し、p×q個のデータ列に対して、パリティを再生成し、付加された前記パリティビットと比較して、誤り検出する。
更に、本発明の復号器は、好ましくは、前記パリティ・尤度訂正器は、前記L個のブロック以外のブロックに付加されたパリティを取り出し、前記再生成されたパリティと比較する。
更に、本発明の復号器は、好ましくは、前記符号化データ列の前記誤り訂正符号が、リードソロモン符号からなる。
データ列を、m(m≧2)ビット毎に、複数ブロックにインターリーブし、誤り訂正符号のパリティを付加し、複数のビット数毎に、パリティビットを付加した連接型符号化データを作成するので、複数ブロックにインターリーブして誤り訂正符号のパリティを生成しても、回路規模の増加を防止できる。又、反復復号を使用する線形符号化の第2の誤り訂正符号化を併用するため、反復復号により、ECCの入力の誤りを訂正でき、訂正性能劣化も防止できる。このため、WINDOWS(登録商標)のVISTA(登録商標)に使用されるロングセクタータイプの記録再生装置の回路規模増加を防止しつつ、訂正性能を向上できる。更に、パリティを、複数のブロックのデータ列から作成され、作成対象のブロック以外のブロックに、そのパリティを挿入するため、復号時におけるバースト誤り発生に対して、パリティが分散しているため、パリティによる誤り検出が可能となる
以下、本発明の実施の形態を、記録再生システム、符号化器、復号化器、ECC復号器、符号化及び復号化の動作、他の実施の形態の順で説明するが、本発明は、この実施の形態に限られない。
(記録再生システム)
図1は、本発明の一実施の形態の磁気ディスク装置の記録再生システムのブロック図である。図1に示すように、磁気ディスク装置の記録再生系は、大きく分けて、ハードディスクコントローラ(HDC)203と、リードチャネル(RDC)202と、プリアンプ(又はヘッドIC)201からなる。
先ず、記録時(符号化時)を説明する。記録データは、HDC203内のCRC符号器237で、CRC符号(Cyclic Redundancy Code)が付加される。その後に、記録符号器236が、MTR符号(Maximum Transition Run Code)やRLL(Run Length Limited)符号などの拘束条件が満たされるデータ列に変換する。そして、ECC符号器235は、図2乃至図4で後述するように、インターリーブして、RSパリティ列を付加する。
更に、パリティ符号器234は、図2、図5で説明するように、ECCとは別のエラー検出を行うための2ビットパリティを求め、求めた全ての2ビットパリティを、ECC符号化データ列に付加する。
パリティが付加されたECC符号化されたデータ列は、RDC202に入力する。RDC202内のLDPC符号器220は、図6で説明するように、ECC符号やパリティ符号とは、別のエラー検出を行うためのLDPCパリティを、LDPCブロックごとに求め、且つそれぞれのLDPCパリティを、LDPCブロックごとに、前記パリティ符号化されたECC符号化データ列に付加する。
記録補償器229は、磁化反転が隣接する箇所で、反転間隔を多少広げる補償処理を行う。そして、RDC202内のドライバ228は、記録補償されたデータ列をプリアンプ201に出力する。プリアンプ201では、ドライバ212が、図示しない記録ヘッド(ライトヘッド)のライト電流を発生し、記録ヘッドを駆動して、図示しない磁気ディスクに記録を行う。
一方、再生時を説明する。再生の際は、プリアンプ201のアンプ211が、再生ヘッド(リードヘッド)からのアナログ電圧を増幅した後、RDC202に出力する。RDC202のサーマルアスペリティ検出処理部221は、サーマルアスピリテイ処理した後、可変利得アンプ(VGA)222が、振幅調整する。
その後、ローパスフィルタ(LPF)223が、振幅調整されたリード信号の高周波数域をカットし、A/Dコンバータ(ADC)224が、そのアナログ出力をデジタル信号へ変換する。その後、FIR(Finite Impulse Response)フィルタ225が、PR(Partial Response)波形等化を行った後、反復復号器226に出力する。
反復復号器226は、図9以下で説明するように、軟入力軟出力検出器とLDPC復号器で構成され、尤度を用いて反復復号を行う。軟入力軟出力検出器は、例えば、Max−log−MAP(Maximum A Posteriori)アルゴリズム、SOVA(Soft-Output Viterbi Algorithm)及び雑音予測機能付SOVA(NPSOVA: Noise Predictive SOVA)などを用いる。LDPC復号器は、例えば、Sum−Productアルゴリズムや、Min−Sumアルゴリズムなどを用いる。
第1のパリティ・尤度訂正器227は、復号器226が求めた尤度を使用して、誤り候補の位置情報を求め、尤度と位置情報のテーブルを作成する。反復復号器226から「0」又は「1」に硬判定(Hard Decision)された復号列は、HDC203に送られる。ECC復号器230は、4インターリーブ構成での誤り訂正を行う。
復号が成功した場合は、記録復号器231が、記録符号器236の符号化と逆の復号化を行い、CRC復号器232が、CRC復号し、再生データとして出力する。
又、ECC復号器230で復号が失敗した場合は、第2のパリティ・尤度訂正器233にデータが入力される。第2のパリティ・尤度訂正器233は、第1のパリティ・尤度訂正器227の尤度と位置情報テーブルを利用して、ECCの訂正が失敗したブロックの訂正を行う。
第2のパリティ・尤度訂正器233で訂正されたデータは、ECC復号器230へ入力され、ECCによる誤り訂正を行う。ECC復号器230で復号が成功した場合は、前述のように、記録復号器231、CRC復号器232を経て、再生データとして出力される。一方、ECC復号が、失敗した場合は、第2のパリティ・尤度訂正器233に再度データが入力され、ブロックの訂正が行われる。
このようにECCによる誤り訂正が失敗した場合は、尤度情報を使用して、第2のパリティ・尤度訂正器233とECC復号器230での反復を繰り返すことによって、訂正能力を高めていくことができる。
ここで、ECC復号器230での誤り訂正を何回か繰り返す場合があるため、図12で説明する高速判定ECC回路を使用する。これにより、計算量が削減できる。
又、本発明では、第1のパリティ・尤度訂正器227は、反復復号器226から復号列の各ビットの位置と、その尤度を受け、パリティが付加されたデータ列の単位で、尤度が低い(誤りの可能性の高い)ビット位置をエラー候補として、抽出し、テーブルを作成する。
即ち、エラー候補として、誤りの可能性の高いビット位置を抽出するため、ECC復号器230に、有効な訂正ができるエラー候補を提供できる。又、エラー候補として、誤りの可能性の高いビット位置のみを抽出するため、ECC復号器230が、尤度の低い順にエラー候補を取り出すことができるように、尤度順にソートする回数を削減でき、計算量削減に有効である。
(符号化器)
次に、図1のECC符号器、パリティ符号器及びLDPC符号器の構成を説明する。図2は、図1のECC符号器235、パリティ符号器234及びLDPC符号器のブロック図、図3は、図2のインターリーブ部の動作説明図、図4は、図2のECC符号器及びデ・インターリーブ部の動作説明図、図5は、図2のパリティ符号器の動作説明図、図6は、図2のLDPC符号器の動作説明図、図7は、図2乃至図6によるLDPCブロック、RSブロック及びパリティの関係図、図8は、比較例の説明図である。
図2に示すように、ECC符号器235は、インターリーブ部102、ECC符号器104、デ・インターリーブ部106からなる。インターリーブ部102は、図3に示すように、4kByteセクタのデータ列1000を、4つ(n=4)のブロック1001,1002,1003,1004にインターリーブする。このインターリーブを行う際、セクタのデータ列1000を、10ビット(m=10)のビット間隔でインターリーブを行う。
ECC符号器104は、4つに分割された各ブロック1001,1002,1003,1004に対し、ECC符号化を行い、図4に示すように、各ブロック1001〜1004に、RS符号のパリティ1011,1012,1013,1014を付加する。ECC符号器104は、復号が失敗したという情報を、誤り位置多項式を求めた際に判定できるように、tシンボル訂正に対し、2t+1シンボルのRSパリティを付加することが望ましい。
デ・インターリーブ部106は、図4に示すように、RSパリティが付加された各ブロックに対し、10ビットの間隔で、デ・インターリーブ処理(インターリーブと逆操作)を行い、1系列のデータ列(RS符号列)1100へ変換する。
例えば、4kByteのセクタデータ列を4分割すると、1ブロックは、1kByteとなる。誤り訂正数tを55シンボルとすると、2t+1シンボル(=111シンボル)のRSパリティを付加する。
次に、パリティ符号器234は、図5に示すように、RS符号列1100を、L個(例えば、10個)に分割したブロック1101〜1110の内、q(q≦L)個(例えば、4個)のブロック1101〜1104から、10ビットのデータ列(p=10)をそれぞれ抽出し、p×q個のデータ列の各々に対して、パリティ1121,1122を生成する。生成したパリティは、抽出したブロック1101〜1110とは異なる各ブロック1117,1118に付加し、データ1130を出力する。ここでは、パリティは、{(K・L)/(p・q)}・2個生成される。
次に、図6に示すように、LDPC符号器220は、パリティ符号器234により、パリティが付加されたRS符号列1130をL個に分割されたK‘(図5で説明したように、RS符号列1100をL個に分割したデータ長をKビットとし、それにパリティを付加したデータ長をK’とする)ビットのデータ列1131〜1140ごとに、LDPC符号化を行い、各ブロック1131〜1140に、LDPC符号のパリティ1171〜1180を付加する。
このように付加したパリティ1121を、各LDPCブロック1151〜1160から抽出することにより、LDPC復号時におけるバースト誤り発生に対して、パリティが分散しているため、パリティによる誤り検出が可能となる。
これを図7及び図8で説明する。先ず、図7は、図5の実施の形態のように、パリティを分散させて、パリティを作成、付加した場合の説明図、図8は、図5の実施の形態のように、パリティを分散させないで、パリティを作成、付加した場合の説明図である。
LDPCは、低い確率ではあるが、LDPCブロック内の誤りを訂正できない場合があり、誤訂正により多くの誤りを発生させることがある。図8は、LDPCブロック1151〜1155と、RS符号ブロック1001〜1004及びインターリーブしたビット列を纏めて、生成したパリティの関連の説明図を示す。非特許文献で示した方法とLDPCを組み合わせたものであり、10ビットのビット間隔でのインターリーブにより生成された4つのブロック1001,1002,1003,1004に、ECC符号器により、RSパリティ1011,1012,1013,1014が付加される。又、10ビット×4(4ブロック)=40ビットの縦方向に対し、パリティ符号器234により、2ビットパリティ1121〜112nが計算され、付加される。このため、ここで、生成される符号は、横方向がRS符号による誤り訂正符号であり、縦方向がマルチパリティ(2ビットパリティ)による誤り検出符号からなる連接型の符号の構成になっている。
しかしながら、図8に示すように、LDPCブロックが正しく復号できている場合(ブロック1151,1153,1154)は、誤りが無いため、パリティ1121の効果はない。
一方、LDPCブロックを誤って復号する場合(ブロック1152、1155)は、非常に多くの誤り(図の×印で示す)が発生し、パリティによる誤りの検出が正しくできなくなる。その結果、パリティによる誤り検出ができず、ECCでの尤度を用いた訂正が行われないため、RS復号とパリティ尤度・訂正による誤り訂正能力の向上が期待できない。
一方、図7に示すように、図5のように、RS符号部1100の分散したビット列からパリティを生成する場合には、1つのパリティが、1つのLDPCブロック内で作成されず、複数のLDPCブロックのデータ列から作成される。そして、作成対象のブロック以外のブロックに、そのパリティが挿入される。
従って、生成される符号は、横方向がRS符号による誤り訂正符号であり、縦方向がLDPCパリティによる誤り検出符号からなり、且つ分割されたRSブロックの斜め方向に対するパリティが付加される。
このため、後述するように、復号時に、LDPCブロックを誤って復号する場合(ブロック1152、1155)に、非常に多くの誤り(図の×印で示す)が発生しても、パリティによる誤りの検出が正しくできる。
一方、図8では、LDPCパリティと、付加するパリティは、同じ、縦方向のため、前述のように、LDPCブロックを誤って復号する場合(ブロック1152、1155)は、非常に多くの誤りが発生し、パリティによる誤りの検出が正しくできない。
(復号器)
図9は、図1の復号器の基本構成のブロック図、図10は、図9の反復復号器の詳細ブロック図、図11は、図9及び図10のLDPC復号器の説明図である。
図9に示すように、反復復号器226は、軟入力・軟出力復号器300と、LDPC復号器302と、しきい値判定器304により構成する。軟入力・軟出力復号器300は、前述した複数の実用的なアルゴリズムがあるが、ここでは、例えば、NPSOVAを用いる。
図10は、図9の反復復号器226の復号フローを示す説明図である。図に示すように、反復復号器260は、LDPCブロックごとに復号を行う。NPSOVA300の入力は、FIRフィルタ225(図1参照)の出力データ列と、LDPC復号器302からの事前尤度である。この事前尤度は、反復復号の初回においては、全て“0”とする。また、事前尤度は、LDPC復号器302の出力尤度から、LDPC復号器302の入力尤度を差し引いた尤度列(つまり、LDPC復号器302における尤度の更新量)である。
NPSOVA300は、FIRフィルタ225の出力データ列と事前尤度を用いて復号を行う。NPSOVA300からの出力尤度列は、復号によって得られた尤度から事前尤度を差し引いた尤度列である。このNPSOVA出力尤度列は、LDPC復号器302に送られる。
LDPC復号器302も、前述した複数の実用的なアルゴリズムがあるが、ここでは、例えば、Sum−Productアルゴリズムを用いる。Sum−Productアルゴリズムは、図11にて、説明するように、LDPCのパリティ検査行列に従って、以下に説明する信頼度伝播復号を行う。即ち、LDPC復号器302の出力は、反復停止条件に満たない場合、事前尤度を出力し、再びNPSOVA復号器300に入力し、反復復号を行う。
反復復号器226は、LDPCブロックごとに、NPSOVA300と、LDPC復号器302の間を、所定の反復回数あるいは、パリティ検査の結果、誤り無しと判定する停止条件に達するまで、尤度を用いて、反復的に復号を行う。そして、反復停止時に、しきい値判定器304により、尤度列を、“0”と“1”の硬判定ビット列に判定する。
図11により、LDPC復号に用いられるSum−Productアルゴリズムを説明する。Sum−Productアルゴリズムは、パリティ検査判定器314と、LDPCブロックのN個の尤度列w1〜wNを保持するバッファ316と、このN個の尤度列w1〜wNに対応するビットノード310と、パリティ検査行列の検査条件から生成するエッジ318及びチェックノード312とで構成する。
バッファ316からビットノード310に渡された尤度は、エッジ318に沿って、チェックノード312に集められ、チエックノード312で、チェックノード処理が行われる。
チェックノード処理が行われた尤度は、再びビットノード310に送られ、ビットノード310は、各チェックノード312に繋がるビットノード310に集められた尤度を用いて、ビットノード処理を行う。ここで、ビットノード処理が行われるたびに、得られた尤度列を、パリティ検査判定器314に入力する。
パリティ検査判定器314は、尤度列を、“1”及び“0”の2値に仮判定し、仮判定ビット列とパリティ検査行列との検査条件式(1)wH=0が成立するか否かを判定する。判定の結果、検査条件式が成立する場合、信頼度伝播復号及び反復復号を停止(コントローラへ反復復号停止命令を出力)する。そして、出力尤度列として、パリティ検査判定時の尤度について、尤度が保持する極性は維持し、それぞれ正及び負の最大尤度値とする。
また、パリティ検査判定器314は、前述の検査条件式が成立しない場合、信頼度伝播復号において、所定のチェックノード、ビットノード処理を複数回実施し、得られた尤度列を出力尤度列とする。
LDPCブロックごとに、反復復号を行い、閾値判定器304から出力された硬判定ビット列は、ECC復号器230に入力し、尤度列はパリティ尤度訂正器227,233に入力する。ECC復号器(RS復号器)230は、後述するように、硬判定ビット列を受け、4インターリーブし、各ブロックをECC復号し、復号成功なら、復号列を出力する。
又、パリティ・尤度訂正器227,233は、反復復号器226からの尤度から尤度の低いビット位置を選択且つ保持する。そして、RS復号器230の復号失敗により、保持した尤度の低いビット位置から誤り位置を絞り、ビット列のその位置をフリップして、RS復号器230に入力する。復号失敗時に、これを反復し、訂正能力を高める。
(ECC復号器)
図12は、図1及び図9のECC復号部のブロック図である。図12に示すように、ECC復号部230は、RS符号部・パリティ部の分割部110、インターリーブ部112、データ保存・更新部114、ECC復号器116、デ・インターリーブ部118からなる。
ECC復号器116は、シンドローム計算部260と、シンドローム保存部262と、シンドローム値更新部264と、誤り位置多項式作成部266と、チェーンサーチ実行部268と、誤り値計算部270とを備える。
シンドローム値計算部260が、復号器226からの復号列のシンドロームを計算し、シンドローム値保存部262に計算したシンドローム値を保存する。誤り位置多項式作成部266は、作成されたシンドローム多項式から誤り位置多項式を計算し、訂正能力を超えているかを判定する。
シンドローム値更新部264は、パリティ・尤度訂正器233により、データ更新されたビット列の更新部分のシンドローム値を計算し、シンドローム値保存器262に保存されたシンドローム値を更新する。
チェーンサーチ実行部268は、誤り位置多項式作成部266で、復号が失敗しないと判断された場合に、チェーンサーチにより誤り位置を求める。誤り値計算部270は、チェーンサーチで復号が失敗と判断されない場合に、即ち、チェーンサーチで誤り位置が特定された場合は、誤り値を計算する。
このように、前のシンドローム値を保存しておき、復号失敗時に、パリティ・尤度訂正器233で訂正された復号列の訂正部分のシンドローム値を計算して、前のシンドローム値を更新する。このため、訂正されたビット列は、シンドローム値を1から計算する必要がないので、計算量を削減できる。
また、後述するように、誤り位置多項式を計算した段階で、復号が失敗したかどうかを判定できるため、復号が失敗した場合は、次のビット列の復号に移ることができ、計算量が削減される。
次に、パリティ・尤度訂正器は、第1のパリティ・尤度訂正器227と、第2のパリティ・尤度訂正器233とからなる。第1のパリティ・尤度訂正器227は、復号器226から各ビットの尤度を受け、4インターリーブの各ブロック毎に、尤度の低いビット位置を抽出する。
第2のパリティ・尤度訂正器233は、後述するように、パリティ計算部120と、パリティ値チエック部122と、エラー候補テーブル保存器124と、エラーフリップ部126とからなる。
第1のパリティ・尤度訂正器227は、尤度をブロック部の尤度と、パリティ部の尤度に分割する分割し、分割された尤度をテーブルに保持する。そして、ブロック部の尤度の低いビット位置を抽出し、且つパリティ部の尤度を低い順にソートする。
尤度の絶対値が高いほど、そのビットは、正しい確率が高いことを示し、低いと、そのビットは、誤っている確率が高いことを示す。誤っている確率の高いビットを抽出したいので、尤度の低いビットのみを扱う。これらの結果を第2のパリティ・尤度訂正器233に出力する。
ECC復号器230では、分割部110が、硬判定されたビット列を、RS符号部と、2ビットパリティ部に分割する。分割されたすべての2ビットパリティは、第2のパリティ・尤度訂正器233のパリティ値チエック部122へ出力される。
次に、インターリーブ部112は、分割されたRS符号部を、10ビット間隔で、インターリーブを行い、前述の4つのRSブロックに分割する。即ち、図4の符号化のデ・インターリーブと逆の置き換えを行う。
分割された各RSブロックは、データ保存・更新部114に格納された後、ECC復号器116により復号される。復号の結果、すべてのRSブロックの復号が成功した場合は、デ・インターリーブ部118は、各RSブロックからRSパリティ1011〜1014を除去した後に、10ビット間隔でのデ・インターリーブ処理を行い、セクタデータ1000を出力して、終了する。
復号の結果、いくつかのRSブロックでの復号が失敗した場合は、ECC復号器230から復号が失敗したすべてのRSブロック番号を、第2のパリティ・尤度訂正器233に出力する。また、デ・インターリーブ部118は、各RSブロック1001〜1014からRSパリティ1011〜1014を除去せずに、10ビット間隔でのデ・インターリーブ処理を行い、結果である元のRS符号部1100を、第2のパリティ・尤度訂正器233に出力する。
次に、ECC復号器116を説明する。シンドローム計算部260は、データ列のシンドローム多項式(多項式の係数s1,s2,・・・)を計算し、計算したシンドローム多項式を誤り位置多項式計算部266に出力する。この時、2t+1個のシンドローム係数si(i=1,2,....,2t,2t+1)の値を計算する。これとともに、2回目以降の候補の復号処理で利用するため、シンドローム計算部260は、計算したシンドローム多項式をシンドローム値保存部262に格納する。
誤り位置多項式計算部266は、バーレカンプマッシ(BM)法により、シンドローム多項式を計算する。バーレカンプマッシ法では、周知のように、多項式の初期値から始めて、生成多項式の次数と同じ回数だけ多項式の更新を繰り返すことで、誤り位置多項式を計算する。このとき、i番目の多項式Ci(x)を求めるには、i番目のシンドロームsiの値が必要となる。
この誤り位置多項式計算部266は、2t番目の多項式C2t(x)と、2t+1番目の多項式C2t+1(x)を、生成する。そして、誤り位置多項式計算部266は、2t番目の多項式C2t(x)と、2t+1番目の多項式C2t+1(x)の係数を比較し、2つの多項式が一致するか否かを判定する。
バーレカンプマッシ法では、データ列に含まれる誤りの数がk個(k≦t)の場合、2k+1回目以降の繰り返しでは、多項式が更新されず、C2k(x)以降の多項式は、全て同じとなるという性質がある。従って、C2t(x)とC2t+1(x)が一致すれば、誤りの数は、高々t個であり、誤り訂正能力の範囲内であることが判る。逆に、C2t(x)とC2t+1(x)が一致しなければ、誤り訂正能力を超えていることになる。
従って、C2t(x)とC2t+1(x)が一致すれば、この候補の訂正が成功すると判定し、データ列、シンドローム多項式、誤り位置多項式、及び判定結果をチェーンサーチ実行部268に出力する。又、C2t(x)とC2t+1(x)が異なる場合は、候補の訂正が失敗したと判断して、現在復号中のRSブロックに対し、復号失敗のフラグを立て、第2のパリティ・尤度訂正器233のそのブロック番号を出力する。
このように、1シンボルのパリティを余分にデータ列に付加することにより、バーレカンプマッシ法の多項式を1つ余分に計算することにより、復号途中でデータ列の訂正失敗を検出できる。なお、数シンボルのパリティを余分に付加するフォーマットを用いても良い。
復号が失敗しないと判断された場合は、チェーンサーチにより誤り位置を求める。即ち、チェーンサーチ実行部268は、誤り位置多項式C(x)を用いて、チェーンサーチを実行し、データ列上の全ての位置jについて、C(α)の値(j=0,1,2,3,4、...、n)を計算する。尚、C(α)=0となる位置jが、誤り位置である。
更に、チェーンサーチ実行部268は、シンドローム多項式と、C(α)の値を用いて、訂正の成否を判定し、訂正が成功すると判定した場合は、チェーンサーチ実行部268が、受け取ったデータ列、シンドローム多項式、誤り位置多項式を、誤り値計算部270に出力する。又、訂正が失敗すると判断した場合には、現在復号中のRSブロックに対し、復号失敗のフラグを立て、第2のパリティ・尤度訂正器233のそのブロック番号を出力する。
チェーンサーチで誤り位置が特定された場合は、誤り値を計算する。即ち、誤り値計算部270は、シンドローム多項式と誤り位置多項式を用いて、所定のアルゴリズムで、データ列の誤り位置の誤った値を、正しい値に訂正する。そして、訂正後のデータ列を、デ・インターリーブ部118に出力する。
即ち、復号が成功した場合には、誤り訂正されたデータ列が、ECC復号器230から出力される。訂正が失敗して、2回目以降の復号をする必要が生じた場合は、シンドローム値保存部262に格納された情報を用いて、復号処理を行う。
次に、後述するように、第2のパリティ・尤度訂正器233で、エラー箇所をフリップすることにより、データ更新・保存部114のデータを更新し、保存する。この更新されたRSブロックに対し、データを更新された箇所に対応して、シンドローム値更新部264が、シンドロームを計算し、保存部262に保存されていたシンドローム値を更新し、且つ更新したシンドローム多項式を、誤り位置多項式計算部266に出力する。
以下、前述のように、誤り位置多項式計算部266で、誤り位置多項式を作成し、復号が失敗と判断された場合は、現在のRSブロックに対し、復号が失敗したというフラグを立て、第2のパリティ・尤度訂正器233に出力する。同様に、復号が失敗しないと判断された場合は、チェーンサーチ実行部268により誤り位置を求める。更に、チェーンサーチで復号が失敗と判断された場合は、同様に、現在のRSブロックに対し、復号が失敗したというフラグを立て、第2のパリティ・尤度訂正器233に出力する。チェーンサーチで誤り位置が特定された場合は、誤り値を計算する。
以上のように、フリップされたビット列は、シンドローム値を1から計算する必要がないので計算量を削減できる。また誤り位置多項式を計算した段階で復号が失敗したかどうかを判定できるため、復号が失敗した場合は次の工程に移ることができ計算量が削減される。このように、このECC復号器116は、従来のECC復号器より、計算量が削減でき、高速な復号が可能となる。
第2のパリティ・尤度訂正器233に、復号が失敗したすべてのRSブロック番号と、デ・インターリーブ処理が行われたRS符号部1100(図18参照)が入力された後、図2、図5のパリティ符号器と同様にパリティを求める。
すなわち、図12のパリティ計算部120は、図5に示したように、RS符号部1100〜1113に対し、斜め方向にビット列を抽出し、図5、図7のように、2ビットのパリティを再計算する。
パリティ値チエック部122は、分割部110からのパリティ符号器で生成されたパリティ値と再計算によるパリティ値が一致するかパリティ値チェックを行う。 パリティチェックで、値が一致しているパリティブロック列は、誤りなしと判断し、値が一致していないパリティブロック列は、誤りがあると判断する。
図12のエラーフリップ部126は、パリティチエック結果と復号失敗ブロック番号とからブロック内でのエラー位置を絞り込み、パリティエラー値を計算して、パリティエラー値からテーブル124を参照して、エラー位置を特定し、エラー位置のビット値を反転する。
このようして、エラー位置を絞り込むことができるため、1インターリーブのECCを超える性能を有することが確認できた。
更に、図12のECC復号器116と組み合わせることにより、ECC復号器の訂正不可の判定の高速化と、復号対象のデータ列のシンドローム作成を高速化でき、計算量の少ない復号が可能となる。
(符号化及び復号化の動作)
図13は、本発明の一実施例による符号化及び復号化の説明図であり、図14は、比較例としての非特許文献の技術とLDPCとを組み合わせた符号化及び復号化の説明図である。
図13に示すように、符号化時には、記録データ1000をインターリーブして、RS符号化し(1001〜1004)、デ・インターリーブして、RS符号化列1100を作成する。そして、図5に示したように、RS符号列1100を、L個(例えば、10個)に分割したブロック1101〜1110の内、q(q≦L)個(例えば、4個)のブロック1101〜1104から、10ビットのデータ列(p=10)をそれぞれ抽出し、p×q個のデータ列の各々に対して、パリティ1121,1122を生成する。生成したパリティは、抽出したブロック1101〜1104とは異なる各ブロック1117,1118に付加し、データ1130を出力する。
次に、図6に示したように、パリティが付加されたRS符号列1130をL個に分割されたK‘ビットのデータ列1131〜1140ごとに、LDPC符号化を行い、各ブロック1131〜1140に、LDPC符号のパリティ1171〜1180を付加する。
次に、復号時には、このLDPC符号化ブロック1150を、LDPC復号して、RS符号データ列1130を得る。そして、復号時に、LDPCブロックを誤って復号する場合(ブロック1154、1156)は、非常に多くの誤り(図の×印で示す)が発生しても、パリティによる誤りの検出が正しくできる。
即ち、ECC復号器において、誤りの検出されたRSブロックが特定され、図7で説明したパリティの作成位置関係から、そのパリティを作成したRSブロックを含む複数のRSブロックからパリティを再作成する。そして、符号化時の対応パリティは、予め決められた別のブロックに挿入されているため、その位置のパリティを読み出し、比較する。比較結果が不一致の場合には、誤り有りと判断し、誤りの検出されたRSブロックの尤度の低い誤り候補を、前述のように、フリップする。
又、LDPC復号において、LDPCブロック内の誤りの有無(検査条件に一致しないか否か)が判明しているため、誤り無しブロックから抽出された尤度は、復号器の取りうる最大の尤度を与える。このため、誤り候補から除外できる。これにより、パリティ尤度訂正候補を絞り込める。
一方、図14の比較例では、符号化時には、記録データ1000をインターリーブして、RS符号化し(1001〜1004)、デ・インターリーブして、RS符号化列1100を作成する。そして、図15に示したように、RS符号列1100のインターリーブしたデータ列に対して、パリティ1121,1122を生成する。生成したパリティは、RS符号化列の最後に付加し、データ1130−1を出力する。
次に、図6に示したように、パリティが付加されたRS符号列1130をL個に分割されたK‘ビットのデータ列1131〜1140ごとに、LDPC符号化を行い、各ブロック1131〜1140に、LDPC符号のパリティ1171〜1180を付加する。
次に、復号時には、このLDPC符号化ブロック1150を、LDPC復号して、RS符号データ列1130を得る。そして、復号時に、LDPCブロックを誤って復号する場合(ブロック1154、1156)は、非常に多くの誤り(図の×印で示す)が発生したと仮定する。ECC復号器において、誤りの検出されたRSブロックは、その対象ブロックからパリティを再作成する。符号化列の一番後ろのブロックにあるパリティを読み出し、比較する。比較結果が不一致の場合には、誤り有りと判断し、尤度の低い誤り候補を、前述のように、フリップする。
しかしながら、符号化時のパリティは、符号化列の一番後ろのブロックにあるため、この部分に誤りがあると、誤り無しブロックも、再生成パリティとの比較で、不一致となり、誤りありと判定される。逆に、パリティのブロックに誤りがあると、誤り有りブロックも、再生成パリティとの比較で、一致となり、誤り無しと判定される。このため、LDPCブロックで、誤りが集中すると、ECCで訂正不可能となる。
(他の実施の形態)
前述の図2のインターリーブ方式では、10ビットを例にしたが、他のビット数でもよく、図12で説明したECC復号器116も、シンドローム値保存部262とシンドローム値更新部264とを有しない従来のECC復号器を適用できる。
又、前述の実施の形態では、ECC符号として、リードソロモン符号で説明したが、BCH(Bose Chaudhari Hocquengham)符号等の他の符号を利用できる。インターリーブを4インターリーブで説明したが、2以上のインターリーブ構成に適用でき、パリティを2ビットとしたが、1ビットや3ビット以上も適用できる。更に、LDPCを第2のECCで説明したが、他の線形符号化方式、例えば、ターボ符号化を使用しても良い。磁気ディスク装置の記録再生装置の適用の例で説明したが、光ディスク装置等の他の媒体記憶装置や、通信装置にも適用できる。
以上、本発明を、実施の形態で説明したが、本発明は、その趣旨の範囲内で種々の変形が可能であり、これを本発明の範囲から排除するものではない。
(付記1)データ列を、m(m≧2)ビット毎に、n(n≧2)ブロックのデータ列にインターリーブし、前記インターリーブされた各ブロックのデータ列から第1の誤り訂正符号のパリティを生成し、前記データ列に各ブロックの前記第1の誤り訂正符号のパリティを付加して、誤り訂正符号語を作成するECC符号器と、前記誤り訂正符号語の複数のビット数毎に、パリティビットを作成し、前記誤り訂正符号語に付加するパリティ符号器と、前記誤り訂正符号語に前記パリティ符号器により生成されたパリティが付加された第2の誤り訂正符号語を、K(K≧2)ビット毎に、L個(L≧2)のブロックのデータ列に分割し、各ブロックのデータ列から、前記ブロック単位に、線形符号である第2の誤り訂正符号のパリティを生成し、前記第2の誤り訂正符号語に、各ブロックの前記第2の誤り訂正符号のパリティを付加して、第3の誤り訂正符号語を作成する第2のECC符号器とを有することを特徴とする符号化器。
(付記2)前記第2のECC符号器は、パリティ検査行列における“1”の数が低密度であり、かつ線形符号である低密度パリティ検査(LDPC)符号の要件を満たす第3の誤り訂正符号語を作成するとともに、前記パリティ検査行列に対応する生成行列を用いてパリティを生成することを特徴とする付記1の符号化器。
(付記3)前記パリティ符号器は、前記誤り訂正符号語を、L個(L≧2)のブロックに分割し、分割された各前記ブロックからp(p≧1)ビット単位のデータ列を、q(q≧2)個抽出し、p×q個のデータ列に対して、パリティを生成することを特徴とする付記1の符号化器。
(付記4)前記パリティ符号器は、前記p×q個のデータ列に対して生成された前記パリティを、前記生成に用いたデータ列を含む前記ブロック以外のブロックに付加することを特徴とする付記3の符号化器。
(付記5)前記ECC符号器は、前記データ列を、m(m≧2)ビット毎に、n(n≧2)ブロックのデータ列にインターリーブするインターリーブ部と、インターリーブされた各ブロックのデータ列から誤り訂正符号のパリティを生成するECC符号部と、前記各ブロックのデータ列を前記mビット毎に、デ・インターリーブし、且つ前記データ列に復元し、且つ前記誤り訂正符号のパリティを前記復元されたデータ列に付加するデ・インターリーブ部とを有することを特徴とする付記1の符号化器。
(付記6)前記ECC符号器は、前記誤り訂正符号として、リードソロモン符号を生成することを特徴とする付記1の符号化器。
(付記7)付記1記載の第3の誤り訂正符号語に符号化された符号化データを復号化する復号器であって、受信した前記符号化データ列を、前記第2のECC符号のパリティを用いて、反復復号し、前記符号化データ列を、ビット列に復号化し、且つ各ビットの尤度を出力する反復復号器と、前記反復復号器の符号化データ列の第1の誤り訂正符号による誤り訂正復号と、前記パリティビットによる誤り検出に従う、前記尤度による前記符号ビット列の訂正復号とを反復して行うECC復号回路とを有することを特徴とする復号器。
(付記8)前記反復復号器は、前記パリティ検査行列における“1”の数が低密度であり、かつ線形符号である低密度パリティ検査(LDPC)符号の要件を満たす前記第3の誤り訂正符号語から、前記第2の誤り訂正符号語の前記パリティを用いて、前記反復復号し、前記符号化データ列を、前記第2の誤り訂正符号語に硬判定し、且つ各ビットの尤度を出力することを特徴とする付記7の復号器。
(付記9)前記反復復号器は、前記第2の誤り訂正符号語の前記パリティビット列による誤り検出において、前記第2の誤り訂正符号語のブロックが、前記パリティ検査条件を満たし、誤りが検出されなかった時に、前記反復復号を停止し、且つ前記第2の誤り訂正符号語のブロック内の各ビットの尤度を最大の尤度値に設定することを特徴とする付記8の復号器。
(付記10)前記ECC復号回路は、前記反復復号器からの符号ビット列の前記第1の誤り訂正符号による誤り訂正を行うECC復号器と、前記ECC復号器の復号失敗に応じて、前記パリティビットによる誤り検出を行い、前記誤り検出結果により、前記尤度により、前記ECC復号器に入力される前記符号ビット列の訂正を行うパリティ・尤度訂正器とを有することを特徴とする付記7の復号器。
(付記11)前記反復復号器からの符号ビット列から前記パリティビットを分離し、前記パリティ・尤度訂正器に出力する分割部と、前記パリティビットが分離された前記符号ビット列を、前記m(m≧2)ビット毎に、n(n≧2)ブロックのデータ列にインターリーブするインターリーブ部と、前記インターリーブされた各ブロックのデータ列を保存するデータ保存部とを更に有し、前記ECC復号器は、前記データ保存部の各ブロックのデータ列を前記誤り訂正符号による誤り訂正を行い、前記パリティ・尤度訂正器は、前記データ保存器のデータ列の訂正を行うことを特徴とする付記10の復号器。
(付記12)前記パリティ・尤度訂正器は、前記復号失敗時に、前記失敗したブロックを含む前記L個のブロックからp(p≧1)ビット単位のデータ列を、q(q≧2)個抽出し、p×q個のデータ列に対して、パリティを再生成し、付加された前記パリティビットと比較して、誤り検出することを特徴とする付記10の復号器。
(付記13)前記パリティ・尤度訂正器は、前記L個のブロック以外のブロックに付加されたパリティを取り出し、前記再生成されたパリティと比較することを特徴とする付記10の復号器。
(付記14)前記符号化データ列の前記誤り訂正符号が、リードソロモン符号からなることを特徴とする付記7の復号器。
(付記15)データ列を、m(m≧2)ビット毎に、n(n≧2)ブロックのデータ列にインターリーブし、前記インターリーブされた各ブロックのデータ列から第1の誤り訂正符号のパリティを生成し、前記データ列に各ブロックの前記第1の誤り訂正符号のパリティを付加して、誤り訂正符号語を作成するECC符号器と、前記誤り訂正符号語の複数のビット数毎に、パリティビットを作成し、前記誤り訂正符号語に付加するパリティ符号器と、前記誤り訂正符号語に前記パリティ符号器により生成されたパリティが付加された第2の誤り訂正符号語を、K(K≧2)ビット毎に、L個(L≧2)のブロックのデータ列に分割し、各ブロックのデータ列から、前記ブロック単位に、線形符号である第2の誤り訂正符号のパリティを生成し、前記第2の誤り訂正符号語に、各ブロックの前記第2の誤り訂正符号のパリティを付加して、第3の誤り訂正符号語を作成する第2のECC符号器と、受信した前記符号化データ列を、前記第2のECC符号のパリティを用いて、反復復号し、前記符号化データ列を、ビット列に復号化し、且つ各ビットの尤度を出力する反復復号器と、前記反復復号器の符号化データ列の第1の誤り訂正符号による誤り訂正復号と、前記パリティビットによる誤り検出に従う、前記尤度による前記符号ビット列の訂正復号とを反復して行うECC復号回路とを有することを特徴とする符号化・復号化装置。
(付記16)前記第2のECC符号器は、パリティ検査行列における“1”の数が低密度であり、かつ線形符号である低密度パリティ検査(LDPC)符号の要件を満たす第3の誤り訂正符号語を作成するとともに、前記パリティ検査行列に対応する生成行列を用いてパリティを生成し、前記反復復号器は、前記パリティ検査行列における“1”の数が低密度であり、かつ線形符号である低密度パリティ検査(LDPC)符号の要件を満たす前記第3の誤り訂正符号語から、前記第2の誤り訂正符号語の前記パリティを用いて、前記反復復号し、前記符号化データ列を、前記第2の誤り訂正符号語に硬判定し、且つ各ビットの尤度を出力することを特徴とする付記15の符号化・復号化装置。
(付記17)前記パリティ符号器は、前記誤り訂正符号語を、L個(L≧2)のブロックに分割し、分割された各前記ブロックからp(p≧1)ビット単位のデータ列を、q(q≧2)個抽出し、p×q個のデータ列に対して、パリティを生成し、前記ECC復号回路は、前記復号失敗時に、前記失敗したブロックを含む前記L個のブロックからp(p≧1)ビット単位のデータ列を、q(q≧2)個抽出し、p×q個のデータ列に対して、パリティを再生成し、付加された前記パリティビットと比較して、誤り検出することを特徴とする付記15の符号化・復号化装置。
(付記18)記憶媒体にデータを書き込み且つ読み取るヘッドと、前記記憶媒体に書き込むべきデータ列を、データ列を、m(m≧2)ビット毎に、n(n≧2)ブロックのデータ列にインターリーブし、前記インターリーブされた各ブロックのデータ列から第1の誤り訂正符号のパリティを生成し、前記データ列に各ブロックの前記第1の誤り訂正符号のパリティを付加して、誤り訂正符号語を作成するECC符号器と、前記誤り訂正符号語の複数のビット数毎に、パリティビットを作成し、前記誤り訂正符号語に付加するパリティ符号器と、前記誤り訂正符号語に前記パリティ符号器により生成されたパリティが付加された第2の誤り訂正符号語を、K(K≧2)ビット毎に、L個(L≧2)のブロックのデータ列に分割し、各ブロックのデータ列から、前記ブロック単位に、線形符号である第2の誤り訂正符号のパリティを生成し、前記第2の誤り訂正符号語に、各ブロックの前記第2の誤り訂正符号のパリティを付加して、第3の誤り訂正符号語を作成し、前記ヘッドに出力する第2のECC符号器と、前記ヘッドが読み出した前記符号化データ列を、前記第2のECC符号のパリティを用いて、反復復号し、前記符号化データ列を、ビット列に復号化し、且つ各ビットの尤度を出力する反復復号器と、前記反復復号器の符号化データ列の第1の誤り訂正符号による誤り訂正復号と、前記パリティビットによる誤り検出に従う、前記尤度による前記符号ビット列の訂正復号とを反復して行うECC復号回路とを有することを特徴とする記録再生装置。
(付記19)前記第2のECC符号器は、パリティ検査行列における“1”の数が低密度であり、かつ線形符号である低密度パリティ検査(LDPC)符号の要件を満たす第3の誤り訂正符号語を作成するとともに、前記パリティ検査行列に対応する生成行列を用いてパリティを生成し、前記反復復号器は、前記パリティ検査行列における“1”の数が低密度であり、かつ線形符号である低密度パリティ検査(LDPC)符号の要件を満たす前記第3の誤り訂正符号語から、前記第2の誤り訂正符号語の前記パリティを用いて、前記反復復号し、前記符号化データ列を、前記第2の誤り訂正符号語に硬判定し、且つ各ビットの尤度を出力することを特徴とする付記18の記録再生装置。
(付記20)前記パリティ符号器は、前記誤り訂正符号語を、L個(L≧2)のブロックに分割し、分割された各前記ブロックからp(p≧1)ビット単位のデータ列を、q(q≧2)個抽出し、p×q個のデータ列に対して、パリティを生成し、前記ECC復号回路は、前記復号失敗時に、前記失敗したブロックを含む前記L個のブロックからp(p≧1)ビット単位のデータ列を、q(q≧2)個抽出し、p×q個のデータ列に対して、パリティを再生成し、付加された前記パリティビットと比較して、誤り検出することを特徴とする付記18の記録再生装置。
データ列を、m(m≧2)ビット毎に、複数ブロックにインターリーブし、誤り訂正符号のパリティを付加し、複数のビット数毎に、パリティビットを付加した連接型符号化データを作成するので、複数ブロックにインターリーブして誤り訂正符号のパリティを生成しても、回路規模の増加を防止できる。又、反復復号を使用する線形符号化の第2の誤り訂正符号化を併用するため、反復復号により、ECCの入力の誤りを訂正でき、訂正性能劣化も防止できる。このため、WINDOWS(登録商標)のVISTA(登録商標)に使用されるロングセクタータイプの記録再生装置の回路規模増加を防止しつつ、訂正性能を向上できる。更に、パリティを、複数のブロックのデータ列から作成され、作成対象のブロック以外のブロックに、そのパリティを挿入するため、復号時におけるバースト誤り発生に対して、パリティが分散しているため、パリティによる誤り検出が可能となる
本発明の一実施形態を示す媒体記憶装置の記録再生系の構成図である。 図1の符号器のブロック図である。 図2のインターリーブ部の動作説明図である。 図2のECC符号器の動作説明図である。 図2のパリティ符号器のパリティ付与動作の説明図である。 図2のLDPC符号器の動作説明図である。 図2の各パリティ符号の関係図である。 図7の比較例の各パリティ符号の関係図である。 図2の復号器の詳細ブロック図である。 図9の反復復号器のブロック図である。 図10のLDPC復号の説明図である。 図2のECC復号器のブロック図である。 本発明の一実施の形態の符号化及び復号化動作の説明図である。 本発明の比較例の符号化及び復号化動作の説明図である。 従来の誤り訂正の連接符号化方法の説明図である。
符号の説明
102 インターリーブ部
104 ECC符号器
106 デ・インターリーブ部
110 分割部
112 インターリーブ部
114 データ保存・更新部
116 ECC復号器
118 デ・インターリーブ部
120 パリティ計算部
122 パリティ値チエック部
124 エラー候補テーブル保存器
126 エラーフリップ部
130 ブロック・パリティ尤度分割部
201 プリアンプ
202 リードチャネル
203 ハードディスクコントローラ
220 LDPC符号器
226 反復復号器
227 第1のパリティ・尤度訂正器
230 ECC復号器
233 第2のパリティ・尤度訂正器
234 パリティ符号器
235 ECC符号器

Claims (10)

  1. データ列を、m(m≧2)ビット毎に、n(n≧2)ブロックのデータ列にインターリーブし、前記インターリーブされた各ブロックのデータ列から第1の誤り訂正符号のパリティを生成し、前記データ列に各ブロックの前記第1の誤り訂正符号のパリティを付加して、誤り訂正符号語を作成するECC符号器と、
    前記誤り訂正符号語の複数のビット数毎に、パリティビットを作成し、前記誤り訂正符号語に付加するパリティ符号器と、
    前記誤り訂正符号語に前記パリティ符号器により生成されたパリティが付加された第2の誤り訂正符号語を、K(K≧2)ビット毎に、L個(L≧2)のブロックのデータ列に分割し、各ブロックのデータ列から、前記ブロック単位に、線形符号である第2の誤り訂正符号のパリティを生成し、前記第2の誤り訂正符号語に、各ブロックの前記第2の誤り訂正符号のパリティを付加して、第3の誤り訂正符号語を作成する第2のECC符号器とを有し、
    前記パリティ符号器は、前記誤り訂正符号語を、L個(L≧2)のブロックに分割し、分割された各前記ブロックからp(p≧1)ビット単位のデータ列を、q(q≧2)個抽出し、p×q個のデータ列に対して、パリティを生成し、前記p×q個のデータ列に対して生成された前記パリティを、前記生成に用いたデータ列を含む前記ブロック以外のブロックに付加する
    ことを特徴とする符号化器。
  2. 前記第2のECC符号器は、パリティ検査行列における“1”の数が低密度であり、かつ線形符号である低密度パリティ検査(LDPC)符号の要件を満たす第3の誤り訂正符号語を作成するとともに、前記パリティ検査行列に対応する生成行列を用いてパリティを生成する
    ことを特徴とする請求項1の符号化器。
  3. 前記ECC符号器は、前記データ列を、m(m≧2)ビット毎に、n(n≧2)ブロックのデータ列にインターリーブするインターリーブ部と、インターリーブされた各ブロックのデータ列から誤り訂正符号のパリティを生成するECC符号部と、前記各ブロックのデータ列を前記mビット毎に、デ・インターリーブし、且つ前記データ列に復元し、且つ前記誤り訂正符号のパリティを前記復元されたデータ列に付加するデ・インターリーブ部とを有する
    ことを特徴とする請求項1の符号化器。
  4. 請求項1記載の第3の誤り訂正符号語に符号化された符号化データを復号化する復号器であって、
    受信した前記符号化データ列を、前記第2のECC符号のパリティを用いて、反復復号し、前記符号化データ列を、ビット列に復号化し、且つ各ビットの尤度を出力する反復復号器と、
    前記反復復号器の符号化データ列の第1の誤り訂正符号による誤り訂正復号と、前記パリティビットによる誤り検出に従う、前記尤度による前記符号ビット列の訂正復号とを反復して行うECC復号回路とを有し、
    前記ECC復号回路は、復号失敗時に、失敗したブロックを含む前記L個のブロックからp(p≧1)ビット単位のデータ列を、q(q≧2)個抽出し、p×q個のデータ列に対して、パリティを再生成し、前記L個のブロック以外のブロックに付加された前記パリティビットと比較して、誤り検出する
    ことを特徴とする復号器。
  5. 前記反復復号器は、前記パリティ検査行列における“1”の数が低密度であり、かつ線形符号である低密度パリティ検査(LDPC)符号の要件を満たす前記第3の誤り訂正符号語から、前記第2の誤り訂正符号語の前記パリティを用いて、前記反復復号し、前記符号化データ列を、前記第2の誤り訂正符号語に硬判定し、且つ各ビットの尤度を出力する
    ことを特徴とする請求項の復号器。
  6. 前記反復復号器は、前記第2の誤り訂正符号語の前記パリティビット列による誤り検出において、前記第2の誤り訂正符号語のブロックが、前記パリティ検査条件を満たし、誤りが検出されなかった時に、前記反復復号を停止し、且つ前記第2の誤り訂正符号語のブロック内の各ビットの尤度を最大の尤度値に設定する
    ことを特徴とする請求項の復号器。
  7. 前記ECC復号回路は、前記反復復号器からの符号ビット列の前記第1の誤り訂正符号による誤り訂正を行うECC復号器と、前記ECC復号器の復号失敗に応じて、前記パリティビットによる誤り検出を行い、前記誤り検出結果により、前記尤度により、前記ECC復号器に入力される前記符号ビット列の訂正を行うパリティ・尤度訂正器とを有し、
    前記パリティ・尤度訂正器は、前記L個のブロック以外のブロックに付加されたパリティを取り出し、前記再生成されたパリティと比較する
    ことを特徴とする請求項5の復号器。
  8. 前記ECC復号器は、前記反復復号器からの符号ビット列から前記パリティビットを分離し、前記パリティ・尤度訂正器に出力する分割部と、前記パリティビットが分離された前記符号ビット列を、前記m(m≧2)ビット毎に、n(n≧2)ブロックのデータ列にインターリーブするインターリーブ部と、前記インターリーブされた各ブロックのデータ列を保存するデータ保存部とを更に有し、
    前記ECC復号器は、前記データ保存部の各ブロックのデータ列を前記誤り訂正符号による誤り訂正を行い、前記パリティ・尤度訂正器は、前記データ保存器のデータ列の訂正を行う
    ことを特徴とする請求項の復号器。
  9. データ列を、m(m≧2)ビット毎に、n(n≧2)ブロックのデータ列にインターリーブし、前記インターリーブされた各ブロックのデータ列から第1の誤り訂正符号のパリティを生成し、前記データ列に各ブロックの前記第1の誤り訂正符号のパリティを付加して、誤り訂正符号語を作成するECC符号器と、
    前記誤り訂正符号語の複数のビット数毎に、パリティビットを作成し、前記誤り訂正符号語に付加するパリティ符号器と、
    前記誤り訂正符号語に前記パリティ符号器により生成されたパリティが付加された第2の誤り訂正符号語を、K(K≧2)ビット毎に、L個(L≧2)のブロックのデータ列に分割し、各ブロックのデータ列から、前記ブロック単位に、線形符号である第2の誤り訂正符号のパリティを生成し、前記第2の誤り訂正符号語に、各ブロックの前記第2の誤り訂正符号のパリティを付加して、第3の誤り訂正符号語を作成する第2のECC符号器と、
    受信した前記符号化データ列を、前記第2のECC符号のパリティを用いて、反復復号し、前記符号化データ列を、ビット列に復号化し、且つ各ビットの尤度を出力する反復復号器と、
    前記反復復号器の符号化データ列の第1の誤り訂正符号による誤り訂正復号と、前記パリティビットによる誤り検出に従う、前記尤度による前記符号ビット列の訂正復号とを反復して行うECC復号回路とを有し、
    前記パリティ符号器は、前記誤り訂正符号語を、L個(L≧2)のブロックに分割し、分割された各前記ブロックからp(p≧1)ビット単位のデータ列を、q(q≧2)個抽出し、p×q個のデータ列に対して、パリティを生成し、前記p×q個のデータ列に対して生成された前記パリティを、前記生成に用いたデータ列を含む前記ブロック以外のブロックに付加し、
    前記ECC復号回路は、復号失敗時に、失敗したブロックを含む前記L個のブロックからp(p≧1)ビット単位のデータ列を、q(q≧2)個抽出し、p×q個のデータ列に対して、パリティを再生成し、前記L個のブロック以外のブロックに付加された前記パリティビットと比較して、誤り検出する
    ことを特徴とする符号化・復号化装置。
  10. 記憶媒体にデータを書き込み且つ読み取るヘッドと、
    前記記憶媒体に書き込むべきデータ列を、データ列を、m(m≧2)ビット毎に、n(n≧2)ブロックのデータ列にインターリーブし、前記インターリーブされた各ブロックのデータ列から第1の誤り訂正符号のパリティを生成し、前記データ列に各ブロックの前記第1の誤り訂正符号のパリティを付加して、誤り訂正符号語を作成するECC符号器と、
    前記誤り訂正符号語の複数のビット数毎に、パリティビットを作成し、前記誤り訂正符号語に付加するパリティ符号器と、
    前記誤り訂正符号語に前記パリティ符号器により生成されたパリティが付加された第2の誤り訂正符号語を、K(K≧2)ビット毎に、L個(L≧2)のブロックのデータ列に分割し、各ブロックのデータ列から、前記ブロック単位に、線形符号である第2の誤り訂正符号のパリティを生成し、前記第2の誤り訂正符号語に、各ブロックの前記第2の誤り訂正符号のパリティを付加して、第3の誤り訂正符号語を作成し、前記ヘッドに出力する第2のECC符号器と、
    前記ヘッドが読み出した前記符号化データ列を、前記第2のECC符号のパリティを用いて、反復復号し、前記符号化データ列を、ビット列に復号化し、且つ各ビットの尤度を出力する反復復号器と、
    前記反復復号器の符号化データ列の第1の誤り訂正符号による誤り訂正復号と、前記パリティビットによる誤り検出に従う、前記尤度による前記符号ビット列の訂正復号とを反復して行うECC復号回路とを有し、
    前記パリティ符号器は、前記誤り訂正符号語を、L個(L≧2)のブロックに分割し、分割された各前記ブロックからp(p≧1)ビット単位のデータ列を、q(q≧2)個抽出し、p×q個のデータ列に対して、パリティを生成し、前記p×q個のデータ列に対して生成された前記パリティを、前記生成に用いたデータ列を含む前記ブロック以外のブロックに付加し、
    前記ECC復号回路は、復号失敗時に、失敗したブロックを含む前記L個のブロックからp(p≧1)ビット単位のデータ列を、q(q≧2)個抽出し、p×q個のデータ列に対して、パリティを再生成し、前記L個のブロック以外のブロックに付加された前記パリティビットと比較して、誤り検出する
    ことを特徴とする記録再生装置。
JP2008021282A 2008-01-31 2008-01-31 符号化装置、復号化装置、符号化・復号化装置及び記録再生装置 Expired - Fee Related JP5007676B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2008021282A JP5007676B2 (ja) 2008-01-31 2008-01-31 符号化装置、復号化装置、符号化・復号化装置及び記録再生装置
US12/276,958 US8151162B2 (en) 2008-01-31 2008-11-24 Encoding device, decoding device, encoding/decoding device, and recording/reproducing device
EP08170099.9A EP2086114B1 (en) 2008-01-31 2008-11-27 Concatenated codes combining Reed-Solomon codes, LDPC codes and parity codes for encoding/decoding devices
KR1020080124647A KR100976178B1 (ko) 2008-01-31 2008-12-09 부호화 장치, 복호화 장치, 부호화·복호화 장치 및 기록 재생 장치
CN2008101856752A CN101499806B (zh) 2008-01-31 2008-12-19 编码装置、解码装置、编/解码装置以及记录/再现装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008021282A JP5007676B2 (ja) 2008-01-31 2008-01-31 符号化装置、復号化装置、符号化・復号化装置及び記録再生装置

Publications (2)

Publication Number Publication Date
JP2009181656A JP2009181656A (ja) 2009-08-13
JP5007676B2 true JP5007676B2 (ja) 2012-08-22

Family

ID=40419121

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008021282A Expired - Fee Related JP5007676B2 (ja) 2008-01-31 2008-01-31 符号化装置、復号化装置、符号化・復号化装置及び記録再生装置

Country Status (5)

Country Link
US (1) US8151162B2 (ja)
EP (1) EP2086114B1 (ja)
JP (1) JP5007676B2 (ja)
KR (1) KR100976178B1 (ja)
CN (1) CN101499806B (ja)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5466953B2 (ja) * 2008-02-08 2014-04-09 富士通株式会社 バックアップ方法及びディスクアレイシステム
US8352837B1 (en) * 2009-03-20 2013-01-08 Marvell International Ltd. System and methods for storing data encoded with error information in a storage medium
CN101697490B (zh) * 2009-10-16 2013-09-25 苏州国芯科技有限公司 一种应用在基于理德-所罗门码的ecc模块上的解码方法
EP2330745A1 (fr) * 2009-10-29 2011-06-08 STMicroelectronics SA Procédé et dispositif de décodage d'une succession de blocs encodés avec un code de correction d'erreur et corrélés par un canal de transmission
JP5039160B2 (ja) * 2010-03-02 2012-10-03 株式会社東芝 不揮発性半導体記憶システム
KR101652452B1 (ko) * 2010-03-02 2016-08-30 시게이트 테크놀로지 인터내셔날 디코더와 상기 디코더를 포함하는 장치들
JP2012050008A (ja) * 2010-08-30 2012-03-08 Toshiba Corp 誤り検出訂正方法および半導体メモリ装置
US8904258B2 (en) * 2010-09-07 2014-12-02 Zephyr Photonics Modulation-forward error correction (MFEC) codes and methods of constructing and utilizing the same
US8869000B2 (en) * 2011-01-31 2014-10-21 Marvell World Trade Ltd. Methods and systems for efficient decoding of concatenated error correction codes
US8612834B2 (en) * 2011-03-08 2013-12-17 Intel Corporation Apparatus, system, and method for decoding linear block codes in a memory controller
US8887034B2 (en) * 2011-04-15 2014-11-11 Lsi Corporation Systems and methods for short media defect detection
US8667360B2 (en) * 2011-07-01 2014-03-04 Intel Corporation Apparatus, system, and method for generating and decoding a longer linear block codeword using a shorter block length
US9213742B2 (en) * 2011-09-06 2015-12-15 Cleversafe, Inc. Time aligned transmission of concurrently coded data streams
US8640013B2 (en) * 2011-09-22 2014-01-28 Kabushiki Kaisha Toshiba Storage device
US8578241B2 (en) * 2011-10-10 2013-11-05 Lsi Corporation Systems and methods for parity sharing data processing
US8862960B2 (en) * 2011-10-10 2014-10-14 Lsi Corporation Systems and methods for parity shared data encoding
KR101320684B1 (ko) 2011-11-18 2013-10-18 한국과학기술원 연접 비씨에이치 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치
JP2013109567A (ja) * 2011-11-21 2013-06-06 Toshiba Corp ストレージデバイス及び誤り訂正方法
US9054840B2 (en) * 2011-12-15 2015-06-09 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Error detection and correction of a data transmission
JP5992916B2 (ja) * 2012-03-13 2016-09-14 パナソニック株式会社 無線通信装置
US9203757B2 (en) * 2012-03-22 2015-12-01 Texas Instruments Incorporated Network throughput using multiple reed-solomon blocks
US8775897B2 (en) * 2012-05-07 2014-07-08 Lsi Corporation Data processing system with failure recovery
TWI477104B (zh) * 2012-09-13 2015-03-11 Mstar Semiconductor Inc 錯誤校正裝置與錯誤校正方法
KR102081980B1 (ko) * 2012-10-08 2020-02-27 삼성전자 주식회사 메모리 시스템에서의 라이트 동작 또는 리드 동작 수행 방법
US9577673B2 (en) 2012-11-08 2017-02-21 Micron Technology, Inc. Error correction methods and apparatuses using first and second decoders
US9191256B2 (en) * 2012-12-03 2015-11-17 Digital PowerRadio, LLC Systems and methods for advanced iterative decoding and channel estimation of concatenated coding systems
US20140173381A1 (en) * 2012-12-19 2014-06-19 Quantum, Inc. Bit error detection and correction with error detection code and list-npmld
US9468085B2 (en) 2012-12-29 2016-10-11 Zephyr Photonics Inc. Method and apparatus for implementing optical modules in high temperatures
US9190809B2 (en) 2012-12-29 2015-11-17 Zephyr Photonics Inc. Method and apparatus for active voltage regulation in optical modules
US10958348B2 (en) 2012-12-29 2021-03-23 Zephyr Photonics Inc. Method for manufacturing modular multi-function active optical cables
US9728936B2 (en) 2012-12-29 2017-08-08 Zephyr Photonics Inc. Method, system and apparatus for hybrid optical and electrical pumping of semiconductor lasers and LEDs for improved reliability at high temperatures
US9160452B2 (en) 2012-12-29 2015-10-13 Zephyr Photonics Inc. Apparatus for modular implementation of multi-function active optical cables
US9172462B2 (en) 2012-12-31 2015-10-27 Zephyr Photonics Inc. Optical bench apparatus having integrated monitor photodetectors and method for monitoring optical power using same
US9362956B2 (en) * 2013-01-23 2016-06-07 Samsung Electronics Co., Ltd. Method and system for encoding and decoding data using concatenated polar codes
US9362954B1 (en) * 2013-03-15 2016-06-07 Seagate Technology Llc Digital communications channel
CN103338046B (zh) * 2013-06-21 2016-03-30 上海交通大学 码率兼容的ldpc-rs二维乘积码的编码与译码方法
CN103428498A (zh) * 2013-08-21 2013-12-04 江苏新瑞峰信息科技有限公司 一种无损图像压缩***
KR20150084560A (ko) * 2014-01-14 2015-07-22 에스케이하이닉스 주식회사 인코딩 장치, 디코딩 장치 및 그 동작 방법
KR20160141771A (ko) * 2014-04-01 2016-12-09 래티스세미컨덕터코퍼레이션 직렬 비디오 인터페이스들내 에러 감지 및 정정을 위한 직교하는 데이터 구조화
US9577672B2 (en) * 2014-07-18 2017-02-21 Storart Technology Co., Ltd. Low density parity-check code decoder and decoding method thereof
KR101644712B1 (ko) * 2014-12-15 2016-08-02 한국과학기술원 블록 단위 연접 비씨에이치 부호의 성능을 향상시키는 오류 정정 방법 및 복호 방법
US9647694B2 (en) 2014-12-28 2017-05-09 International Business Machines Corporation Diagonal anti-diagonal memory structure
JP6484041B2 (ja) * 2015-01-22 2019-03-13 日本放送協会 連接符号を用いた送信装置、受信装置及びチップ
EP3242406B1 (en) * 2015-01-27 2020-01-15 Huawei Technologies Co., Ltd. Fec decoding apparatus and method
CN105095014A (zh) * 2015-07-01 2015-11-25 清华大学 基于错误纠正编码数据结构的数据隐藏方法
JP6488954B2 (ja) * 2015-09-11 2019-03-27 富士通株式会社 暗号データ処理方法、暗号データ処理システム、暗号データ処理装置および暗号データ処理プログラム
KR20170076350A (ko) * 2015-12-24 2017-07-04 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10241851B2 (en) * 2016-01-11 2019-03-26 Micron Technology, Inc. Estimation of error correcting performance of low-density parity-check (LDPC) codes
US10114569B2 (en) * 2016-10-07 2018-10-30 Cnex Labs, Inc. Computing system with shift expandable coding mechanism and method of operation thereof
US10396826B2 (en) * 2016-10-26 2019-08-27 Huawei Technologies Co., Ltd. Software defined network with selectable low latency or high throughput mode
US10374639B2 (en) 2016-12-06 2019-08-06 Western Digital Technologies, Inc. Adaptive bit-flipping decoder based on dynamic error information
US10158380B2 (en) 2016-12-06 2018-12-18 Sandisk Technologies Llc ECC and read adjustment based on dynamic memory error model estimation
US10284233B2 (en) * 2016-12-06 2019-05-07 Western Digital Technologies, Inc. ECC adjustment based on dynamic error information
TWI631830B (zh) * 2016-12-30 2018-08-01 慧榮科技股份有限公司 解碼方法與相關解碼裝置
US11070314B2 (en) * 2017-08-18 2021-07-20 Nokia Solutions And Networks Oy Use of LDPC base graphs for NR
EP3691131A4 (en) * 2017-09-27 2020-10-07 Mitsubishi Electric Corporation ENCODER, TRANSMITTER, DECODER AND RECEIVER DEVICE
US10447313B2 (en) * 2017-11-28 2019-10-15 X Development Llc Communication method and system with on demand temporal diversity
KR102415974B1 (ko) * 2017-12-14 2022-07-04 삼성전자주식회사 에러 정정 장치, 에러 정정 장치의 동작 방법, 그리고 에러 정정 장치를 포함하는 제어기
CN108988990A (zh) * 2018-07-05 2018-12-11 郑州云海信息技术有限公司 一种处理链路层数据错误的方法
KR102678314B1 (ko) * 2018-08-03 2024-06-25 삼성전자주식회사 유저 데이터에 대한 에러 정정을 수행하는 에러 정정 회로 및 이를이용한 에러 정정 방법
JP2021034825A (ja) * 2019-08-21 2021-03-01 株式会社東芝 磁気ディスク装置
CN112865809A (zh) * 2019-11-27 2021-05-28 量子芯云(北京)微电子科技有限公司 Ecc超强数据纠错方法
US11356122B2 (en) * 2020-03-13 2022-06-07 Marvell Asia Pte Ltd. Systems and methods for interleaved hamming encoding and decoding
US11057060B1 (en) * 2020-03-23 2021-07-06 Sage Microelectronics Corporation Method and apparatus for matrix flipping error correction
US11522635B2 (en) * 2020-07-31 2022-12-06 Fujitsu Limited Device and method for transmitting data by using multilevel coding, and communication system
CN113395137B (zh) * 2021-06-08 2023-04-25 龙迅半导体(合肥)股份有限公司 一种fec编解码模块
CN113595560B (zh) * 2021-06-29 2024-06-28 浪潮电子信息产业股份有限公司 一种信息纠错方法、装置、设备及存储介质
CN113595561B (zh) * 2021-07-14 2024-07-23 深圳宏芯宇电子股份有限公司 一种混合解码方法、存储装置控制器及存储***
JP2024045862A (ja) * 2022-09-22 2024-04-03 株式会社東芝 磁気ディスク装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08106733A (ja) * 1994-10-07 1996-04-23 Hitachi Ltd 情報記憶媒体利用システム
US5636231A (en) * 1995-09-05 1997-06-03 Motorola, Inc. Method and apparatus for minimal redundancy error detection and correction of voice spectrum parameters
JP3567733B2 (ja) 1998-05-08 2004-09-22 株式会社日立製作所 信号復号方法、信号復号回路及びこれを用いた情報伝送通信装置、情報記憶再生装置
KR100277764B1 (ko) * 1998-12-10 2001-01-15 윤종용 통신시스템에서직렬쇄상구조를가지는부호화및복호화장치
US6553536B1 (en) * 2000-07-07 2003-04-22 International Business Machines Corporation Soft error correction algebraic decoder
KR100673419B1 (ko) * 2000-12-28 2007-01-24 엘지전자 주식회사 전송 시스템 및 데이터 처리 방법
JP4109556B2 (ja) * 2003-01-31 2008-07-02 松下電器産業株式会社 Ofdm信号の衝突位置検出装置、ofdm受信装置及びofdm信号の衝突位置検出方法及びofdm受信方法
JP2004253017A (ja) * 2003-02-18 2004-09-09 Fujitsu Ltd 記録媒体再生装置、記録媒体再生方法およびハードディスクコントローラ
JP2005093038A (ja) * 2003-09-19 2005-04-07 Fujitsu Ltd 記録再生装置および記録再生回路
KR100539261B1 (ko) * 2004-05-04 2005-12-27 삼성전자주식회사 디지털 데이터의 부호화 장치와 dvd로의 기록 장치 및그 방법
JP4444755B2 (ja) * 2004-08-17 2010-03-31 Kddi株式会社 連接符号システムおよび連接符号処理方法、復号装置
US7205912B1 (en) 2005-10-31 2007-04-17 Seagate Technology Llc Structured set partitioning and multilevel coding for partial response channels
JP4558638B2 (ja) 2005-12-15 2010-10-06 富士通株式会社 符号器および復号器
JP4662278B2 (ja) * 2006-04-28 2011-03-30 富士通株式会社 エラー訂正装置、符号器、復号器、方法及び情報記憶装置
JP2008021282A (ja) 2006-06-12 2008-01-31 Brother Ind Ltd ラベル体及びラベル体作成装置
JP2008065969A (ja) * 2006-08-09 2008-03-21 Fujitsu Ltd 符号化装置、復号化装置、符号化方法、復号化方法および記憶装置
JP4833173B2 (ja) * 2006-10-30 2011-12-07 富士通株式会社 復号化器、符号化・復号化装置及び記録再生装置
KR101119302B1 (ko) * 2007-04-20 2012-03-19 재단법인서울대학교산학협력재단 통신 시스템에서 저밀도 패리티 검사 부호 부호화 장치 및방법
US8065594B2 (en) * 2007-06-29 2011-11-22 Limberg Allen Leroy 8VSB DTV signals with PCCC and subsequent trellis coding

Also Published As

Publication number Publication date
EP2086114B1 (en) 2014-01-15
US20090199073A1 (en) 2009-08-06
CN101499806A (zh) 2009-08-05
KR100976178B1 (ko) 2010-08-17
EP2086114A3 (en) 2012-09-12
EP2086114A2 (en) 2009-08-05
US8151162B2 (en) 2012-04-03
JP2009181656A (ja) 2009-08-13
CN101499806B (zh) 2013-08-21
KR20090084653A (ko) 2009-08-05

Similar Documents

Publication Publication Date Title
JP5007676B2 (ja) 符号化装置、復号化装置、符号化・復号化装置及び記録再生装置
JP4833173B2 (ja) 復号化器、符号化・復号化装置及び記録再生装置
US8255763B1 (en) Error correction system using an iterative product code
US7725800B2 (en) Decoding techniques for correcting errors using soft information
JP4198904B2 (ja) 記録再生装置、信号復号回路、エラー訂正方法、及び反復型復号器
US8042030B2 (en) Encoding apparatus, decoding apparatus, encoding method, decoding method, and storage device
KR101110586B1 (ko) 연결된 반복 및 대수 코딩
JP5251000B2 (ja) 誤り訂正回路及び媒体記憶装置
US8127216B2 (en) Reduced state soft output processing
US20090327832A1 (en) Decoder and recording/reproducing device
JP4118127B2 (ja) データの復号方法およびそれを用いたディスク装置
JP2005093038A (ja) 記録再生装置および記録再生回路
JP2007087529A (ja) 信号復号装置、信号復号方法、および記憶システム
JP2000057709A (ja) 磁気ディスク誤り訂正方法及び装置
US20090276685A1 (en) Data decoding apparatus, magnetic disk apparatus, and data decoding method
Fahrner et al. Low-complexity GEL codes for digital magnetic storage systems
US20090307561A1 (en) Decoding device, decoding method, and recording and reproducing device
JP4088133B2 (ja) リードチャネル復号器、リードチャネル復号方法およびリードチャネル復号プログラム
JP4294407B2 (ja) 信号処理方法及び信号処理回路
JP2010152960A (ja) エラー訂正回路及び記憶装置
JP2004193727A (ja) 信号処理方法及び信号処理回路
JP2009271963A (ja) 復号方法、ハードディスクコントローラ及びハードディスク装置
JP2008152915A (ja) リードチャネル復号器、リードチャネル復号方法およびリードチャネル復号プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100820

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110819

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111028

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150608

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees