JP3737204B2 - 誤り訂正方法及び装置 - Google Patents

誤り訂正方法及び装置 Download PDF

Info

Publication number
JP3737204B2
JP3737204B2 JP19469496A JP19469496A JP3737204B2 JP 3737204 B2 JP3737204 B2 JP 3737204B2 JP 19469496 A JP19469496 A JP 19469496A JP 19469496 A JP19469496 A JP 19469496A JP 3737204 B2 JP3737204 B2 JP 3737204B2
Authority
JP
Japan
Prior art keywords
array
row
code
column
syndrome
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
JP19469496A
Other languages
English (en)
Other versions
JPH0946238A (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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH0946238A publication Critical patent/JPH0946238A/ja
Application granted granted Critical
Publication of JP3737204B2 publication Critical patent/JP3737204B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/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/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] 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
    • 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/2903Methods and arrangements specifically for encoding, e.g. parallel encoding of a plurality of constituent 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/2909Product 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/2927Decoding strategies
    • H03M13/293Decoding strategies with erasure setting

Landscapes

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

Description

【0001】
【産業上の利用分野】
本発明は、一般に、冗長情報と共に、データを符号化して送信または記憶することによって、データの受信または検索時に誤りの検出及び訂正を可能にすることに関するものであり、とりわけ、通信及び記憶チャネルにおける誤り訂正に用いられる2次元符号配列に関するものである。
【0002】
【従来の技術】
誤り訂正符号は、一般に、チャネル・ノイズ、媒体の欠陥、または、他の妨害によって生じるデータの汚染に対抗するため、通信チャネルと記憶チャネルの両方において用いられる。図1には、誤り訂正を利用する典型的な通信及び/または記憶システムが示されている。誤り訂正符号が利用される適用例のいくつかには、通信分野におけるデータ伝送、放送、及び、衛星通信と、情報記憶分野におけるデジタル音声及び映像記録、磁気テープ、半導体メモリ、及び、コンパクト・ディスクがある。
【0003】
「ブロック符号」として知られる誤り訂正符号の場合、誤りに対する防護は、それぞれ、整数kの「記号」を備えた固定サイズのブロック(「原始データ・ブロック」と呼ばれる)にデータを分割することによって行われる。(記号は、アルファベットまたは1組の値における要素である。デジタル情報の場合、記号は、一般に、固定ビット長のマルチ・ビット値である。例えば、256の記号によるASCIIのアルファベットのように、デジタル情報に関して一般に用いられるアルファベットは、8ビット・バイトの記号から構成されるのが普通である)。符号器は、各原始データ・ブロック毎に整数rの冗長記号(「検査記号」または「チェック記号」あるいは単に「チェック」と呼ばれる)を追加して、nの記号からなる「符号ブロック」を形成する(ここで、n=k+r)。この符号ブロックは、次に、通信または記憶チャネルを介して送られる。(例えば、符号ブロックは、磁気テープまたはコンパクト・ディスクのような記録媒体に記憶されるか、あるいは、電話線、コンピュータ・ネット・ワーク、または、無線チャネルのような通信媒体によって伝送されるが、ここで、符号ブロックの汚染が生じる可能性がある)。受信側において、復号器は、汚染が所定のあらかじめ設計されたレベルを超えなければ、冗長情報を利用して、汚染の可能性のある符号ブロック部分からもとの原始データを検索する。
【0004】
「積符号」は、ランダム誤りとバースト誤りの両方に対する良好な防護が得られるので、これら両タイプの誤りの可能性がある磁気記録等の用途において誤り訂正符号の一般的な選択である。(ランダム誤りは、通信または記憶チャネルを介して送られるデータの分離した記号位置に独立して生じる誤りである。バースト誤りは、通信または記憶チャネルを介して送られるデータの記号の連続した集合に影響を及ぼす。例えば、通信チャネルにおける電気的外乱または記憶チャネルにおける媒体欠陥は、これらのチャネルを介して送られるいくつかの隣接記号に誤りを生じる可能性がある。)図4に示すような典型的な積符号符号器の場合、8ビット記号で操作する2つのリード・ソロモン符号を利用して、2次元配列が形成される。長さがn1の記号からなり、r1の冗長記号を備えた第1の符号C1が、配列の行に適用される。長さがn2の記号からなり、r2の冗長記号を備えた第2の符号C2が、その列に適用される。この結果、n1×n2の記号からなる配列の大きさが生じる。こうした場合、配列の全冗長度は、n12の記号からなるブロック毎にn12+n21−r12の記号である。図5に示すように、C1による誤り検出、及び、C2による消去(erasures)の訂正に基づく復号化方法を利用すれば、この方式によって、おそらく、パラメータr1を適切に選択することによって、その確率を任意に低くすることが可能なわずかなバースト誤りパターン集合を除いて、r2以下の行に影響を及ぼす全ての誤りバーストを訂正することが可能になる。(この基本的手法には多くの変更を加えることが可能であり、ランダム誤り訂正とバースト誤り訂正の間でトレード・オフが行われる。ファレルによる「配列誤り制御符号概観」(P. Farrell, A Survey of Array Error Control Codes, 3 ETT 441-454(1992)には、積符号符号器及び復号器に関する従来のさまざまな実施例が解説されている。)
【0005】
リード・ソロモン符号は、そのために、有限体上の代数計算に基づいて、効率のよい符号器及び復号器が開発された周知のブロック符号である。リード・ソロモン符号用の典型的な符号器及び復号器が、それぞれ、図2及び図3に示されている。q+1未満のnの記号(即ちn個の記号)からなる任意の符号ブロック長について、リード・ソロモン符号が存在するが、ここで、データのアルファベットには、qの記号が含まれている。典型的な応用例の場合、記号はmの2進ビットから構成されるが、ここで、mは整数であり、q=2m(例えば、m=8、q=256)である。リード・ソロモン符号は、下記の表1に示すように、誤り検出及び訂正操作における理論的冗長コストが最小になるので、誤り訂正符号にとりわけ有効である。
【0006】
【表1】
Figure 0003737204
【0007】
誤り検出操作において、復号器は、ブロック内に汚染記号があるか否かを判定するが、その位置は確認しない。リード・ソロモン符号は、rまでの誤りの任意のパターンを検出することができる(ここで、rは、符号の冗長である)。積符号応用例の場合、リード・ソロモン符号は、さらに、1−εの確率でバースト誤りを検出することが可能であり、ここで、εは、1−qrのようなrに関して指数関数的に減少する数である(バースト誤りによって影響を受ける領域内の各ビットが0.5の確率で汚染を生じるものと仮定して)。消去訂正操作の場合、復号器は、符号ブロック内に場所を与えられた、汚染された全ての記号の値を回復する。全誤り訂正操作の場合、復号器は、符号ブロック内における汚染された全ての記号の場所とその値の両方を回復する。リード・ソロモン符号は、r/2までの完全な誤り、または、rまでの消去の任意のパターン、または、2×(誤り)+(消去)<rの任意の組み合わせを訂正することが可能であり、ここで、(誤り)は誤り数、(消去)は消去数である。
【0008】
さらに、決定論的(または最悪状態)復号化方式と確率的復号化方式には明確な差が存在する。決定論的復号化方式の場合、復号器は、あらかじめ設計された数までの誤りの全てのパターン(例えば、ある整数Nの場合、2次元配列におけるNまでの汚染行の全ての誤り)を訂正することが保証される。確率的復号化方式の場合、復号器は、誤りパターンの分布に関するある仮定の下に、任意に1に近づけることが可能な確率で、こうしたパターンを訂正する。これらの仮定は、実際には、チャネルを介した伝送の前にスクランブラを用いることによって、十分に近似できる。誤り訂正要件を「必ず」から「高い確率で」に緩和することによって、符号化方式における冗長量を大幅に減少させることが可能である。笠原等の「連接符号及び積符号を基礎にして構成される2進符号の新しいクラス」(M. Kasahara, S. Hirasawa, Y. Sugiyama and T. Namekawa, New Classes of Binary Codes Constructed on the Basis of Concatenated Codes and Product Codes, IEEE Transaction on Information Theory, 462-467(1976))[以後は「笠原」と称する]には、2進積符号の冗長度を低減し、同時に、符号のハミング距離を最小限に保つ(従って、最悪状態の訂正能力)方式についての記載がある。最悪状態の訂正能力を保つ目的のため、笠原は、制限付き符号冗長度低減を実現している。
【0009】
典型的な先行技術の積符号の場合、配列の行に適用される符号C1を用いて、それぞれの行について、それぞれ、汚染の有無が検出される。配列の列に適用される符号C2を用いて、符号C1の適用によって汚染が生じていると識別された行の消去を訂正する消去訂正が実施される。換言すれば、符号C1の検出操作を利用して、符号C2の消去訂正操作に対しどの行に汚染が生じたかについての情報を提供することにより、消去訂正操作において、配列の各列毎に汚染が生じていると識別された行に対応する場所を訂正することが可能になる。こうした積符号を設計する場合、符号C1の冗長r1は、一般に、C1によって汚染された行が検出されない、q**(ーr1 )にほぼ等しい確率が、許容可能なほどに低くなるように選択される。符号C2の冗長r2は、一般に、r2を超える汚染行を有する確率が許容可能なほどに低くなるように選択される。ここに、q**(ーr1 )はqの(ーr1 )乗をあらわす。
【0010】
これら先行技術による積符号の欠点の1つは、符号C1は、積配列のn2までの全ての行に汚染が生じたか否かの検出を行うことはできるが(符号C1は、配列の各行毎に適用され、従って、各行毎に汚染の有無を検出することができる)、符号C2は、各列毎にr2までの場所(こうした識別される汚染行に対応する)だけしか訂正することができない。符号C2はr2までの汚染行だけしか訂正することができないので、符号C1から導き出されるr2を超える汚染行の組み合わせに関する情報は、符号C2による消去訂正操作には無用である。符号C1のこれら余分な行(とにかく、全てを訂正することはできない)を検出する能力は、冗長度を増すという犠牲を払うことになる。結果として、これら典型的な先行技術による積符号配列における冗長の大部分は、有効な目的には役立たないということになる。
【0011】
【発明が解決しようとする課題】
本発明の目的は、確率的復号化に基づく典型的な先行技術の積符号配列における符号C1の利用されない誤り検出能力に関連した過剰な冗長度を解消する装置及び方法を提供することにある。
【0012】
【課題を解決するための手段】
本発明の装置及び方法は、配列の行及び列に適用される符号(本書では、それぞれ、C1及びC2と称する)以外に、第3の中間符号(本書では、C1.5と称する)を利用する2次元符号配列に基づくものである。本発明の望ましい実施例に基づく2次元符号配列において結果生じる冗長は、典型的な先行技術による積符号配列における冗長よりもr1(n2−2r2)だけ少ないn12+r12に等しい。従って、本発明によれば、典型的な先行技術による積符号に基づく前述の通信及び記憶装置及び方法と同じ誤り訂正能力で、冗長度の低減が可能になる(通信及び記憶チャネルにおいて、原始データのスループットが増すことを意味する)。
【0013】
本発明の望ましい実施例のもう1つの特徴によれば、行符号C1及び列符号C2、並びに、中間符号C1.5は、それぞれ、リード・ソロモン符号である。望ましい実施例の装置は、従って、低減冗長度を実現する本発明の2次元符号配列を符号化及び復号化する新規かつ独自のやり方で構成された、従来のリード・ソロモン符号器及び復号器を用いて構成することが可能である。
【0014】
本発明は、確率的復号化に基づくものであるため、「笠原」に開示のような決定論的方式に比べると、符号冗長度が大幅に改善される。また、最悪の場合の訂正能力を保つという「笠原」の別の目的は、異なる復号化方法及び装置を指示している。
【0015】
本発明のこれ以外の特徴及び利点については、添付の図面に関連して進められる望ましい実施例に関する以下の詳細な説明から明らかになるであろう。
【0016】
【実施例】
図1には、符号器22及び誤り訂正のための復号器24から構成される通信及び/または情報記憶システム20が示されている。デジタル・データが、データ発信側装置28(「データ送信装置」)によってシステム20の一方の端部から入力され、もう一方の端部からデータ消費側装置30(「データ受信装置」)に対して出力される。データは、データにランダム誤り及び/またはバースト誤りを生じさせる可能性のある通信及び/または記憶チャネル34によって、データ発信側装置28とデータ消費側装置30の間で転送される。通信用途の場合、チャネル34は、送信器、受信器、チューナ、伝送媒体(ワイヤ、ケーブル、または、アンテナ)、変調器、復調器等のような2つのサイト間におけるデジタル・データの伝送装置から構成することが可能である。情報記憶用途の場合、チャネル34は、磁気テープ・ドライブ、コンパクト・ディスク・ドライブ、及び、コンピュータ・メモリ・チップを含む、磁気記録媒体、光学記録媒体、半導体メモリ等を利用する記録装置といった、デジタル・データの記憶装置から構成することが可能である。場合によっては、とりわけ、記憶用途においては、同じ装置をデータ発信側装置28及びデータ消費側装置30の両方に利用することが可能なこともある。さらに、個々のワークステーションが、ローカル・エリア・ネットワークを介してアクセスされる共用ファイル・サーバにデジタル情報を記憶しているコンピュータ・ネットワークの場合、チャネル34には、通信及び情報記憶装置の両方を含むことが可能である。
【0017】
チャネル34による転送中に、デジタル・データは、ノイズ、干渉、媒体の欠陥、または、その他の原因のために汚染を生じる可能性がある。データ消費側装置30において受信されるデータに、汚染が生じないように、符号器22は、データがチャネル34に入る前に、誤り訂正符号化を利用してデータに符号化を施す。データがチャネル34を出ると、復号器24は、符号器22によって用いられた1つまたは複数の誤り訂正符号に基づく誤り訂正操作を用いて、汚染データを回復する。
【0018】
本発明によれば、システム20の符号器22及び復号器24は、図7に示す、後述のような、冗長度が低減された2次元符号配列に基づくものが望ましい。本発明の望ましい実施例の場合、図6、図8及び図9に示された、さらに詳細に後述する冗長度低減積符号符号器36及び復号器38、39が、それぞれ、符号器22及び復号器24として用いられる。
【0019】
図2には、r段帰還シフト・レジスタ符号器40として、リード・ソロモン符号器の従来の実施例が示されている。このr段帰還シフト・レジスタ符号器40は、ブロック符号によって動作するが、この符号の冗長は、r=n−kである。符号器40は、一度に1つの入力記号を受け入れる入力42と、それぞれ、記号を記憶する、S0、S1、S2、...、Sr-1と表示された複数のシフト・レジスタ段44から構成される。符号器40は、さらに、g0、g1、g2、...、gr-1と表示された複数の生成多項式係数乗算器46と、段40に1対1に対応する加算器48から構成される。乗算器46において用いられる生成多項式係数の量は、下記の式(1)に示すリード・ソロモン符号に関する生成多項式の係数から導き出される。
g(x)=Σi=0 rgixi------(1)
(giは1に等しいと仮定される)。生成多項式が求められる方法は、当該技術において周知のところである(例えば、ウィッカー等の「リード・ソロモン符号とその応用」(S. Wicker and V. Bhargava, Reed-Solomon Codes and Their Application, IEEE Press, New York, Chapter 1,5,10 (1994)参照)。
【0020】
帰還経路50は、入力42からの記号と段Sr-1における記号の和である帰還記号を伝送する。帰還記号と、乗算器46のそれぞれの生成多項式係数を掛け合わせ、さらに、加算器48において先行段の記号との和を求めることによって、各段44に対する入力記号が形成される。レジスタ40の段44は、同期して刻時され、各クロック・サイクル毎に、入力記号がそれぞれの段にシフト・インされることになる。
【0021】
符号化操作において、kのデータ記号からなるブロックが、各クロックサイクル毎に1つずつ、入力46から符号器40にシフト・インされる。kのデータ記号が符号器40にシフト・インされた後、結果として得られる段44の内容は、整数rの検査記号から構成される。rの検査記号とkのデータ記号を組み合わせることによって、nの記号からなるリード・ソロモン符号ブロックが形成される。
【0022】
図3には、汚染の生じる可能性のあるリード・ソロモン符号ブロック61に誤り訂正を施す先行技術のリード・ソロモン復号器60が示されている。復号器60は、シンドローム発生器62、キー方程式ソルバ64、及び、誤り探索及び訂正回路要素66から構成される。シンドローム発生器62は、nの記号からなるリード・ソロモン符号ブロックから誤り検出及び訂正操作に用いられるrの記号からなるシンドローム68を形成する。r段帰還シフト・レジスタ符号器40(図2)のようなリード・ソロモン符号器は、シンドローム発生器62として利用することも可能である。シンドローム発生器62として利用される場合、nの記号からなるリード・ソロモン符号ブロック(ノイズのあるチャネル34(図1)を介して送られたkのデータ記号とrの検査記号から構成される)が、入力46(図2)から符号器40にシフト・インされる。符号ブロックのnの記号のシフト・インが全て済むと、段44(図2)に含まれるrの記号によって、「シンドローム」が形成される。非ゼロのシンドロームは、nの記号からなる符号ブロックにおいて汚染を検出をしたということになる。全てがゼロのシンドロームは、1−εの確率で、符号ブロックに汚染が生じなかったことを表している(ここで、εは、r1に関して指数関数的に減少する数である)。一般に、εは、q**(ーr1 )に比例する。確率は、従って、一般に1−q**(ーr1 )に比例する。
【0023】
また、シンドロームにさらに処理を加えることによって、消失及び完全な誤り訂正を実施することも可能である。例示の復号器60は、完全な誤り訂正を実施する。キー方程式ソルバ64は、周知の方法でシンドローム68に処理を加えることにより、誤り位置探査多項式70及び誤り評価多項式71を作成する。誤り位置探査及び誤り評価多項式70〜71は、汚染入力符号ブロック61と共に、誤り探索及び訂正回路要素66に入力される。誤り探索及び訂正回路要素66は、再び、従来の技法を利用し、誤り位置探査及び誤り評価多項式70〜71を用いて、任意の汚染記号(図3にシェーディングによって示す)を回復し、訂正された符号ブロック74を出力する。次に、符号ブロック74からrの検査記号を削除することによって、出力符号ブロック74からもとのkのデータ記号を抽出することが可能である。
【0024】
図2に示すr段帰還シフト・レジスタ40は、リード・ソロモン符号器に関する多くの既知の実施例の1つである。リード・ソロモン符号器及び復号器の他の実施例については、次(1)、(2)の参考書に解説されている。
(1) ウィッカー等の「リード・ソロモン符号とその応用」(S. Wicker and V. Bhargava, Reed-Solomon Codes and Their Application, IEEE Press, New York, Chapter 1,5,10 (1994))[以後は「ウィッカー等」と称する]、
(2) セローシの「シストリック・リード・ソロモン符号器」(G. Seroussi, A Systolic Reed-Solomon Encoders, 37 IEEE Transaction on Information Theory 1217-1220(1991))[以後は「セローシ」と称する].
これらのさまざまな従来のリード・ソロモン符号器及び復号器は、図4及び図5に示す従来の積符号符号器及び復号器、及び、本発明の望ましい実施例に基づく冗長度低減積符号符号器36及び復号器38〜39(図6、図8及び図9)のような2次元符号配列を基礎にした符号器及び復号器の部品として利用することが可能である。
【0025】
図4及び図5には、典型的な先行技術による積符号符号器80(図4)及び復号器82(図5)が示されている。積符号符号器80及び復号器82は、積符号と称する2次元符号配列に基づくものである。積符号は、一般に、2つのリード・ソロモン符号、すなわち、その行に適用される第1の符号C1及びその列に適用される第2の符号C2を利用する。
【0026】
図4を参照すると、積符号符号器80は、k1×k2の記号からなる原始データ・ブロックの行にC1符号を適用し、次に、第1の符号C1の適用結果として生じる符号の列にC2符号を適用することによって、積符号配列を形成する。符号化すべき原始データ87は、入力配列バッファ86の、それぞれ、k1の記号を備えたk2の行に記憶される。行符号器90及び行シーケンサ92から構成される行処理回路要素88は、入力配列バッファ86における原始データ行C1符号を適用する。行符号器90は、冗長がr1になるように符号化するリード・ソロモン符号器40(図2)のようなリード・ソロモン符号器である。行シーケンサ92は、入力配列バッファ86から行符号器90に原始データを1行ずつ入力する。行符号器90は、k1の原始データ記号87の各行毎に処理を加えて、上述のようにその行に関するr1の検査記号93を作成する。各行におけるk1の原始データ記号87及びr1の検査記号93は、行処理回路要素80によって中間配列バッファ94に記憶される、長さがn1の記号からなるC1符号を形成する。
【0027】
列符号器100及び列シーケンサ102から構成される列処理回路要素98は、中間配列バッファ94におけるC1符号(原始データ87とC1検査記号93から構成される)の列にC2符号を適用する。列符号器100は、冗長がr2になるように符号化するリード・ソロモン符号器40(図2)のようなリード・ソロモン符号器である。列シーケンサ102は、列符号器100にC1符号を1列ずつ入力する。列符号器100は、k2の記号から構成される各列に処理を加えて、r2の検査記号103を形成し、該記号は、列と共に、出力配列バッファ104に記憶される。全ての列の符号化が済んだ後の出力配列バッファ104の内容は、積符号配列ということになる。
【0028】
積符号符号器80の実施例によっては、入力配列バッファ86、中間配列バッファ94、及び、出力配列バッファ104のそれぞれに、単一配列バッファを用いるものもある。こうした場合、行及び列処理回路要素88、98は、データが符号化されると、バッファ間におけるデータ転送を行うのではなく、適切な位置においてデータに操作を加える。さらに、積符号符号器80の代替実施例の場合、行及び列処理回路要素88、98の順序が逆になるが、それでも、同じ積符号配列を得ることが可能である。
【0029】
次に、図5を参照すると、積符号復号器82は、積符号符号器80によって形成される積符号配列に対する誤り訂正を実施する。符号C1を利用して、積符号配列の汚染行を検出し、符号C2を利用して、汚染行の消失を訂正する。チャネル34(図1)から受信すると、汚染行109を有する可能性のある積符号配列が、最初に入力配列バッファ110に記憶される。行処理回路要素112は、積符号復号器82によって、入力配列バッファ110における積符号配列の汚染行109を検出するために用いられる。行処理回路要素112は、行復号器114及び行シーケンサ116から構成される。行復号器114は、図3に示すものと同様のリード・ソロモン復号器であり、C1符号に基づく誤り検出に適している。行シーケンサ116は、入力配列バッファ110から行復号器114に積符号配列を1行ずつ入力する。各行毎に、行復号器114は、r1の記号シンドロームを形成し、シンドロームが非ゼロであれば、その行を汚染されたものとして識別する。行復号器114は、どの行が汚染されたものとして検出されたかを識別するリスト(「汚染行リスト」)117を形成する。行処理回路要素112による処理が済むと、積符号配列は、そのまま、中間配列バッファ118に記憶される。
【0030】
積符号復号器82は、さらに、行処理回路要素112によって検出された汚染行の消失を訂正するために用いる、列処理回路要素120から構成される。列処理回路要素120は、列復号器122と、列シーケンサ124から構成される。列復号器122は、図3に示すものと同様のリード・ソロモン復号器であり、C2符号に基づく消失訂正操作に適している。列シーケンサ124は、中間配列バッファ118から列復号器122に積符号配列を1列ずつ入力する。汚染行リスト117は、行復号器114から列復号器122にも入力される。列復号器122は、汚染行リスト117を用いて、リスト117において識別される汚染行109のそれぞれが消失していることを宣言する。列復号器122は、積符号配列の各列毎に、その列に関する長さがr2の記号からなるシンドロームを形成し、該シンドロームに処理を加えて、その列における消失した行からの各記号に訂正を施すことによって、前記列における消失を訂正する。列復号器122は、訂正した列を出力配列バッファ126に記憶する。行及び列処理回路要素112、120による処理結果として、出力配列バッファ126には、汚染行109のそれぞれに訂正を施した、積符号配列が納められていることになる。積配列復号器82は、入力配列バッファ110、中間配列バッファ118、及び、出力配列バッファ126のそれぞれに用いられる単一配列によって実施することが可能であり、積符号配列には、適切な位置において処理が加えられる。
【0031】
従来の技術においては既述のように、先行技術による積配列符号器80によって形成されるn1×n2の積符号配列は、n12+n21−r12の冗長記号を有している。この冗長に関して、先行技術による積配列復号器82は、積符号配列のn2の行のどれかに汚染が生じたか否かを検出することが可能である。(行復号器90は、各行毎に独立したシンドロームを形成し、これによって、シンドロームが非ゼロの場合、その行は汚染されたものと識別される。)しかし、積配列復号器82は、汚染されたものとして識別されたr2までの汚染行だけしか訂正することができない。(列復号器100による消失訂正は、積符号配列の各列毎にr2の記号の訂正に制限されている。)汚染されたものとしてr2を超える行を識別するための冗長コストが、浪費されることになる。
【0032】
図6、図8及び図9には、本発明の望ましい実施例に基づく冗長度を低減した積符号符号器36(図6)及び復号器38、39(図8及び図9)が示されている。符号器36及び復号器38、39は、図7に示す2次元積符号配列130に基づき、追加中間符号C1.5を利用して、典型的な先行技術による積符号配列コーデック(すなわち、符号器/復号器)と比較して低減された冗長度(すなわち、望ましい実施例の場合、(n12+r12))を実現し、同時に、バースト誤り及びランダム誤り訂正には同等の能力を発揮する。
【0033】
符号C1.5は、ブロック長がn2で、冗長は2r2である。さらに、望ましい実施例の場合、符号C1.5は、C2のサブ符号になるように設計される、すなわち、C1.5の符号ブロックに、C2に関して計算されるr2の冗長検査記号に加え、追加集合をなすr2の検査記号が含まれる。従って、符号C2によって符号化された符号ブロックは、既に、C1.5において有効な符号ブロックであることが必要な冗長制約条件の半分を満たしている。これは、C1.5とC2の間でオーバラップし、冗長度低減に寄与し、さらに、C2に用いられる回路要素の一部は、C1.5にも用いることが可能であるため、符号化及び復号化回路要素の設計を単純化することも可能である。図6、図8及び図9の符号器/復号器の場合、上記関係がC1.5とC2の間に存在するものと仮定されている。
【0034】
次に、図6及び図7を参照すると、冗長度低減積符号符号器36(図6)が、原始データ・ブロック132、134(図7)を符号化して、冗長度を低減した符号配列130(図7)を形成する。符号器36は、r2の冗長記号を備えたリード・ソロモン符号C2を積符号配列130の列に適用する列処理回路要素140、r1の冗長記号を備えたリード・ソロモン符号C1を積符号配列130の行に適用する行処理回路要素142、r1.5の冗長記号を備えた中間リード・ソロモン符号C1.5を行処理回路要素142によって形成される行検査記号に適用する列処理回路要素144、及び、XOR加算器146から構成される。符号器36は、さらに、入力配列バッファ150、中間配列バッファ151、出力配列バッファ152、及び、積符号配列130及び検査記号が記憶される検査記号配列バッファ154〜155から構成される。入力、中間、及び、出力配列バッファ150〜152は、積符号配列130が適切な位置において符号化される単一バッファ・メモリとして物理的に実施することが可能である。
【0035】
符号器36による積符号配列130の符号化は、入力配列バッファ150が、最初に、符号化すべき原始データ記号を記憶することによって開始される。望ましい実施例の場合、原始データは、原始データ・ブロック132、134として入力配列バッファ50に記憶される。原始データ・ブロック132は、積符号配列130のk1×k2の記号部分を充填し、原始データ・ブロック134は、全部で(k12+r1(n2−2r2))の原始データ記号についてr1×(n2−2r2)の記号部分を充填する。原始データ記号は、例えば、順次、それぞれ、n1の記号からなるn2−2r2に、それぞれ、k1の記号からなるr2の行を加えることを含めて、さまざまな方法で、原始データ・ブロック132、134に記憶することが可能である。
【0036】
次に、列処理回路要素140は、C2列符号を用いて原始データ・ブロック132の列を符号化することによって、k1×r2の記号からなる大きさを備えた、C2列符号検査記号配列160(図7)の配列を形成する。C2符号を用いた符号化の場合、列処理回路要素140は、列符号器162と列シーケンサ164から構成される。列符号器162は、図2に示すようなr2段を備えた帰還シフト・レジスタ符号器として、あるいは、代替方式として、「ウィッカー等」及び「セローシ」に解説のシストリック配列または他のアーキテクチャとして適合するように実施可能なリード・ソロモン符号器である。列シーケンサ164は、原始データ・ブロック132を1列ずつ列符号器162に入力する。列符号器162は、データ・ブロック132のk1の列のそれぞれ(それぞれ、k2の記号からなる長さを有する)に処理を加えて、C2列符号検査記号配列160を形成する。列処理回路要素140は、C2列符号検査記号配列160を出力して、中間配列バッファ151のk1×r2の記号部分を充填する。中間配列バッファ151の残りのr1×2r2の記号部分168がクリアされる(すなわち、ゼロが充填される)。(記号部分168をクリアする代わりに、すぐ後に説明するようにC1符号によって符号化する際に、行処理回路要素142が、積符号配列130の最後の2r2の行の最初のk1の記号だけに処理を施すことも可能である)。
【0037】
行処理回路要素142は、中間配列バッファ151における原始データ・ブロック132、134、及び、C2列符号検査記号配列160の行を符号化して、r1×n2の記号からなる大きさを備えたC1行符号検査記号(部分170〜171から構成される)を形成する。C1符号による符号化の場合、行処理回路要素142は、行符号器172及び行シーケンサ174から構成される。行符号器172は、図2に示すようなr1段を備えた帰還シフト・レジスタ符号器として、あるいは、代わりに、「ウィッカー等」及び「セローシ」に解説のシストリック配列または他のアーキテクチャとして適合するように実施可能なリード・ソロモン符号器である。行シーケンサ174は、中間配列バッファ151からの記号を1行ずつ行符号器172に入力する。行符号器172は、n2行(それぞれ、n1の記号から構成される)のそれぞれに処理を加えて、C1検査記号配列バッファ154に記憶されるC1行符号検査記号を形成する。
【0038】
C1検査記号配列バッファ154は、積符号配列130の最初のn2−2r2行(すなわち、n1の行データ記号から成る全行のそれぞれ)に対応するC1行符号検査記号配列の一部170(r1×n1−2r2の記号からなる大きさを有する)を列処理回路要素144に入力する。積符号配列130の最後の2r2行に対応するC1符号検査記号配列の残りの部分171(r1×2r2の記号からなる大きさを有する)が、バッファ154の最後の2r2行に保存される。
【0039】
列処理回路要素144は、バッファ154におけるC1行符号検査記号配列の一部170の列を符号化して、r1×2r2の記号からなる大きさを有するC1.5列符号検査記号の配列155を形成する。C1.5符号で符号化する場合、列処理回路要素144は、列符号器192と列シーケンサ194から構成される。列符号器192は、図2に示すようなr1.5段を備えた帰還シフト・レジスタ符号器として、あるいは、代わりに、「ウィッカー等」及び「セローシ」に解説のシストリック配列または他のアーキテクチャとして適合するように実施可能なリード・ソロモン符号器である。列シーケンサ194は、バッファ154におけるC1検査記号配列部分170からの記号を1列ずつ列符号器192に入力する。列符号器192は、r1列のそれぞれ(それぞれ、n2−2R2の記号から構成される)に処理を加えて、C1.5列符号検査記号配列を形成する。列処理回路要素144は、C1.5列符号検査記号配列をC1.5検査記号配列バッファ155に送り込む。
【0040】
XOR加算器146は、ビット排他的OR演算によって、バッファ155におけるC1.5列符号検査記号配列と、バッファ154におけるC1行符号検査記号配列の部分171との和を1記号ずつ求めて、r1×2r2の記号からなる大きさを備えた、行符号検査記号配列198を形成する。行符号検査記号配列198は、原始データ・ブロック132、134、及び、C2列符号検査記号配列160と共に、出力配列バッファ152に記憶される。出力配列バッファ152の結果得られる内容によって、冗長度低減積符号配列130が形成される(図7)。
【0041】
積符号配列130の冗長部分は、全部でn12+r12の記号からなるC2列符号検査記号配列160及び行符号検査記号配列198だけしか構成しない。これは、先行技術による積配列符号器80によって形成される積符号配列(n12+n21−r12の記号からなる冗長を有している)の冗長部分よりr1(n2−2r2)の記号だけ少ない。従って、冗長度低減積符号符号器36は、大きさの等しい積符号について、先行技術による積符号符号器80(図5)に比べると冗長度の大幅な節減を実現する。例えば、n1=128、r1=12、n2=98、及び、r2=8という典型的な積符号の大きさについて、下記の表1には、上長と低減積符号符号器36によって実現する冗長度の節減が示されている。
【0042】
【表2】
Figure 0003737204
【0043】
次に、図8を参照すると、冗長度低減積符号復号器38は、冗長度低減積符号符号器36(図6)によって形成される積符号配列130(図7)を復号化して、チャネル34(図1)を介した積符号配列130の転送時に導入されるバースト誤りを訂正する。復号器38はC1行符号及びC1.5中間符号を利用して、チャネル34を介した転送時に誤りを生じた積符号配列130のr2までの行(「汚染行」)205を突き止める。復号器38は、次に、汚染行205の消失訂正のためにC2列符号を利用する。従って、冗長度低減積符号復号器38によれば、積符号配列130の冗長度を低減して、先行技術による積配列復号器82(図5)と同等の誤り訂正能力が得られる。
【0044】
1、C1.5、及び、C2積符号配列130に処理を施すため、復号器38は、行処理回路要素210、中間処理回路要素212、及び、列処理回路要素214から構成される。復号器38は、さらに、入力配列バッファ220、出力配列バッファ221、及び、シンドローム配列バッファ222から構成される。適切な位置で積符号配列に処理を加えることによって、入力配列バッファ及び出力配列バッファ220〜221の両方として、単一の物理的バッファを用いることが可能である。チャネル34を介して転送した後、積符号配列130(図7参照)は、まず、入力配列バッファ220に記憶される。
【0045】
行処理回路要素210は、C1符号によって入力配列バッファ220における積符号配列の行に処理を加えて、シンドローム配列を形成する。シンドローム配列を形成するため、行処理回路要素210は、行復号器230及び行シーケンサ232から構成される。行復号器230は、図2に示すようなr1段を備えた帰還シフト・レジスタ符号器として、あるいは、代わりに、「ウィッカー等」及び「セローシ」に解説のシストリック配列または他のアーキテクチャとして適合するように実施可能な、シンドローム発生器として用いられる(図3に関連して上述のように)リード・ソロモン符号器である。列シーケンサ232は、入力配列バッファ220からの記号を1行ずつ行復号器230に入力する。行復号器230は、積配列のn2の行のそれぞれ(それぞれ、n1の記号から構成される)に処理を加えて、r1の記号を備えた対応するシンドロームを生じさせる。行処理回路要素210は、入力配列バッファ220の行に対応するシンドローム配列バッファ222の行にシンドロームを送り込んで、シンドローム配列を形成する。
【0046】
中間処理回路要素212は、C1.5符号に基づいてシンドローム配列の列に処理を加え、積配列の汚染行205を突き止める。中間処理回路要素212は、シンドローム配列復号器240及び列シーケンサ242から構成される。シンドローム配列復号器240は、図3の復号器60と同様に、シンドローム発生器及びキー方程式ソルバによって実施可能なリード・ソロモン復号器である。列シーケンサ242は、シンドローム配列バッファ222からの記号を一度に1行ずつシンドローム配列復号器240に入力する。シンドローム配列復号器240は、次に、シンドローム配列の各列毎にr1.5の記号シンドロームを形成し、r1.5の記号シンドロームに処理を加えて、誤り位置を判定する。誤りが突き止められるシンドローム配列の行は、入力配列バッファ220における積配列の汚染行205に対応する。
【0047】
バースト誤りの場合、シンドローム配列の各列は、シンドローム配列の同じ行に誤りを有している可能性がある。従って、汚染行205の大部分は、シンドローム配列のたった1列に処理を加えるだけで突き止められる。さらに、ほんの数列に処理を加えるだけで、全ての汚染行205が突き止められる確率が高い。従って、本発明の実施例の中には、中間処理回路要素212による処理をシンドローム配列のr1列の一部(例えば2〜3列)に限定して、汚染行205の一部の検出に失敗するかもしれないという極めて可能性の低い犠牲を払うことにより、復号化プロセスをスピード・アップすることが可能なものもある。代わりに、最初の数列だけを利用して汚染行205を突き止め、残りの列を利用して、その位置を確認することも可能である。不具合が見つかると、追加列の処理が十分に実施される。シンドローム配列列の処理結果として、シンドローム配列復号器240は、汚染行リスト249を作成し、これが、列処理回路要素214に対して出力される。
【0048】
列処理回路要素214は、汚染行リスト249に基づいて、積配列における汚染行205の消失訂正を実施する。列処理回路要素214は、列復号器250及び列シーケンサ252から構成される。列復号器250は、図3に示す復号器60と同様に、シンドローム発生器、キー方程式ソルバ、及び、誤り探索及び訂正回路要素によって実施可能なリード・ソロモン復号器である。列シーケンサ252は、入力配列バッファ220から列復号器250に積符号配列を1列ずつ入力する。汚染行リスト249は、列復号器250にも入力される。列復号器250は、汚染行リスト249を用いて、リスト249において識別される汚染行205のそれぞれが消失していることを宣言する。列復号器250は、積符号配列の各列毎に、その列に関する長さがr2の記号からなるシンドロームを形成し、該シンドロームに処理を加えて、その列における消失した行からの各記号に訂正を施すことによって、前記列における消失を訂正する。列復号器250は、訂正した列を出力配列バッファ221に記憶する。行、中間、及び列処理回路要素210、212、及び、214による処理結果として、出力配列バッファ221には、汚染行205のそれぞれに(極めて高い確率で)訂正を施した、積符号配列が納められていることになる。
【0049】
次に、図9を参照すると、冗長度低減積符号復号器39の場合、復号器38に修正を加えて、積符号配列130(図7)を復号化することによって、チャネル34(図1)を介した積符号配列130の転送時に導入されるバースト誤りとランダム誤りの両方が訂正されるようになっている。復号器38と同様、復号器39は、C1行符号とC1.5中間符号を利用して、積符号配列130のr2までの汚染行205を突き止め、さらに、C2列符号を利用して、汚染行205の消去訂正を行う。復号器39は、さらに、C1.5中間符号及びC1行符号を利用して、積符号配列130におけるランダム誤り258を訂正する。従って、冗長度の低減された積符号配列130を利用して、ランダム誤りとバースト誤りの両方を防護することが可能になる。
【0050】
行、中間、及び、列処理回路要素210、212、214、及び、バッファ220〜222以外に、冗長度低減積符号復号器39は、中間配列バッファ260及び訂正シンドローム配列バッファ262から構成される。本発明の実施例の中には、シンドローム配列バッファ222及び訂正シンドローム配列バッファ262を単一の物理的バッファとして実施可能なものもあるし、入力配列バッファ220、出力配列バッファ221、及び、中間配列バッファ260の全てをもう1つの単一の物理的バッファとして実施可能なものもある。
【0051】
復号器39の場合、行処理回路要素210は、C1行符号によって入力配列バッファ220における積符号配列130の行を符号化し、シンドローム配列を形成する。行処理回路要素210は、シンドローム配列をシンドローム配列バッファ222に対して出力する。中間処理回路要素212は、C1.5中間符号によってシンドローム配列バッファ222におけるシンドローム配列の列に処理を加えて、汚染行リスト249を生じさせ、シンドローム配列における誤りを訂正する。中間処理回路要素212は、汚染行リスト249を列処理回路要素214に対して出力し、訂正シンドローム配列を訂正シンドローム配列バッファ262に対して出力する。
【0052】
行処理回路要素210は、訂正シンドローム配列を利用して、入力配列バッファ220における積符号配列の行のランダム誤り258を訂正する。行処理回路要素の行復号器230は、図3の復号器60と同様、キー方程式ソルバ及び誤り探索及び訂正回路要素によって実施される。行処理回路要素210は、行復号器230のこれらのコンポーネントによって、ランダム誤り258を突き止めて、訂正し、結果得られる積符号配列を中間配列バッファ260に対して出力する。
【0053】
列処理回路要素214は、次に、C2列符号によって、中間配列バッファ260における積符号配列の列に処理を加え、汚染行リスト249において識別される汚染行の消失訂正を実施する。ランダム誤り205とバースト誤り258の両方を訂正された積符号配列が、出力配列バッファ221に対して出力される。
【0054】
望ましい実施例に関連して本発明の原理について解説し、例示してきたが、こうした原理を逸脱することなく、望ましい実施例の構成及び細部について修正を加えることができるのは明らかである。本発明の原理を適用することが可能な多くの見込みのある実施例を考慮することによって明らかになるように、詳細な実施例は単なる例示でしかなく、本発明の範囲を制限するものと解釈してはならない。以下に本発明の実施態様のいくつかを列記して本発明の理解の助けとする。
【0055】
(実施態様1)
データ送信装置(28)、データ受信装置(30)、及び、データ送信装置からデータ受信装置にデータを転送するチャネル(34)を備えた誤り訂正システム(20)における冗長度を低減する方法において、
12+r12の冗長記号(160、198)を有するn1×n2の記号からなる積符号配列(130)をなすように、データ送信装置において原始データ記号を符号化し(22)、これによって、配列のr2までの汚染行(205)を検出し、各列毎にr2までの消去箇所を訂正することができるようにするするステップ(ここで、n1、n2、r1、及び、r2は正の整数であり、各記号は、整数qの記号を備えたアルファベットから選択される)と、
通信チャネルで宛先に積符号配列を送信するステップと、
原始データ記号を回復するため、宛先において積符号配列を復号化するステップとを備えた、
誤り訂正方法。
【0056】
(実施態様2)
前記復号化するステップが、
積符号配列(130)及び冗長記号(160、198)に処理を施して、積符号配列の汚染行を識別し、これによって、1−εの確率でr2までの汚染行を識別することができるようにするステップ(ここで、εはr1に対して指数関数的に減少する数である)と、
積符号配列及び冗長記号に処理を施して、汚染があると識別された積符号配列の行を訂正し、これによって、r2までの行を訂正することができるようにするステップとを備えたことを特徴とする、
実施態様1に記載の誤り訂正方法。
【0057】
(実施態様3)
前記符号化が、
それぞれ、k1×k2(ここで、k1及びk2は整数である)の記号とr1 ×(k2ーr2 )の記号からなる大きさを備えた積符号配列の第1の部分(132)及び第2の部分(134)に原始データ記号を充填するステップと、
第1の符号化に基づいて積符号配列の第1の部分の列に処理を加えることによって、第1の部分の列に1対1に関連した長さがr2の記号からなる第1の符号化検査記号を形成するステップと、
1×r2の記号からなる大きさを備えた積符号配列の第3の部分(160)に第1の符号化検査記号を充填するステップと、
第2の符号化に基づいて、k1×2r2の記号からなる大きさを備え、積符号配列の第3の部分と積符号配列の第1の部分の第1の小部分から構成され、この第1の小部分がk1×r2の記号からなる大きさを備えている、積符号配列の第4の部分(132、160)の行に処理を加えることによって、積符号配列の第4の部分の処理済み行に1対1に関連した長さがr1の記号からなる第2の符号化検査記号を形成し、この第2の符号化検査記号によって、r1×2r2の記号からなる大きさを備えた第2の検査記号配列(171)が形成されるようにするステップと、
第2の符号化に基づいて、n1×(n2−2r2)の記号からなる大きさを備え、積符号配列の第2の部分と積符号配列の第1の部分の第2の小部分から構成され、この第2の小部分がk1×(n2−2r2 )の記号からなる大きさを備えている、積符号配列の第5の部分(132、134)の行に処理を加えることによって、積符号配列の第5の部分の行に1対1に関連した長さがr1の記号からなる第3の符号化検査記号を形成し、この第3の符号化検査記号によって、r1×(n2−2r2 )記号からなる大きさを備えた第3の検査記号配列(170)が形成されるようにするステップと、
第3の符号化に基づいて、第3の検査記号配列の列に処理を加えることによって、第3の検査記号配列の列に1対1に関連した長さが2r2の第4の符号化検査記号を形成し、この第4の符号化検査記号によって、r1×2r2の記号からなる大きさを備えた第4の検査記号配列(155)が形成されるようにするステップと、
第4の検査記号配列と第2の検査記号配列の和を求めるステップと、
積符号配列の第6の部分(198)に第4の検査記号配列と第2の検査記号配列の部分との和を充填するステップとを備えたことを特徴とする、
実施態様1に記載の誤り訂正方法。
【0058】
(実施態様4)
復号化のステップが、
第2の符号化に基づいて積符号配列(130)の行に処理を加えることによって、r1×n2の記号からなる大きさを備えたシンドローム配列(222)が形成されるようにするステップと、
第3の符号化に基づいてシンドローム配列の少なくとも1つの列に処理を加えることによって、積符号配列のr2までの汚染行(205)を消去するために識別するステップと、
第1の符号化に基づいて積符号配列の列に処理を加えることによって、消去のために識別された行を訂正するステップとを備えたことを特徴とする、
実施態様3に記載の誤り訂正方法。
【0059】
(実施態様5)
符号化が、
積符号配列(130)において、行1〜n2−2r2の列1〜n1(132)及び行n2−2r2+1〜n2−r2の列1〜k1(134)に原始データ記号を充填するステップと、
積符号配列の列1〜k1の行1〜k2における原始データ記号について、列と1対1に関連し、それぞれ、長さがr2の第1の列符号化検査記号を形成するステップと、
積符号配列において、行n2−r2+1〜n2(160)の列1〜k1に第1の列符号化検査記号を充填するステップと、
積符号配列の行n2−2r2+1〜n2の列1〜k1における原始データ記号及び第1の列符号化検査記号について、行に1対1に関連し、それぞれ、長さがr1の部分行符号化検査記号(171)を形成するステップと、
積符号配列の行n2−2r2+1〜n2に関連した部分行符号化検査記号を保存するステップと、
積符号配列の行1〜n2−2r2の列1〜n1における原始データ記号について、行と1対1に関連し、それぞれ、長さがr1の完全な行符号化検査記号(170)を形成するステップと、
完全な行符号化配列について、列と1対1に関連し、それぞれ、長さが2r2の第2の列符号化検査記号(155)を形成するステップと、
保存された部分行符号化検査記号と第2の列符号化検査記号の和を求めるステップと、
積符号配列において、行n2−2r2+1〜n2の列k1+1〜n1に部分行符号化検査記号と第2の列符号化検査記号の和を充填するステップとを備えたことを特徴とする、
実施態様1に記載の誤り訂正方法。
【0060】
(実施態様6)
復号化ステップが、
積符号配列(130)の行1〜n2の列1〜n1について、積符号配列の行と1対1に関連し、それぞれ、長さがr1の行シンドロームを形成し、該行シンドロームによって、r1×n2の大きさの行シンドローム配列(222)が形成されるようにするステップと、
行シンドローム配列の少なくとも1つの列について、行シンドローム配列の少なくとも1つの列に1対1に関連し、それぞれ、長さが2r2の少なくとも1つの第1の列シンドロームを形成するステップと、
少なくとも1つの第1の列シンドロームを用いて、積符号配列の汚染行(205)を識別するステップと、
積符号配列の列1〜n1の行1〜n2における原始データ記号及び検査記号について、積符号配列の列に1対1に関連し、それぞれ、長さがr2の第2の列シンドロームを形成するステップと、
第2の列シンドロームを利用して、積符号配列の汚染行の消去を訂正するステップとを備えたことを特徴とする、
実施態様1に記載の誤り訂正方法。
【0061】
(実施態様7)
冗長度を低減した積符号配列(130)を利用する誤り訂正システム(20)において、
行1〜(k1−r2)の列1〜n1(132)、及び、(k1−r2+1)〜k2の列1〜k1(134)に原始データ記号を記憶するためのn1の列とn2の行からなる配列バッファ(150〜152)(ここで、n1、n2、k1、k2、r1、及び、r2は、関係式n1=k1+r1及びn2=k2+r2を満たす正の整数である)と、
配列バッファの列1〜k1の原始データ記号を列符号で符号化することによって、列に1対1に関連し、配列バッファのそれぞれの関連した列の行(k2+1)〜n2に記憶される、長さがr2の記号からなる列検査記号(160)を形成する列符号器(162)と、
配列バッファの行1〜(k2−r2)の原始データを行符号で符号化することによって、長さがr1の記号からなる第1の行検査記号(170)を形成し、配列バッファの行(k2−r2+1)〜n2の原始データ記号及び列検査記号を行符号で符号化することによって、長さがr1の記号からなる第2の行検査記号(171)を形成する行符号器(172)と、
第1の行検査記号の列を中間符号で符号化することによって、長さが2r2の記号からなる中間検査記号(155)を形成する列符号器(192)と、
第2の行検査記号と中間検査記号の和を求めることによって、r1の記号×2r2記号からなる大きさの検査記号配列を形成する加算器から構成され、検査記号配列が、配列バッファの行(k2−r2+1)〜n2の列(k1+1)〜n1(198)に記憶され、これによって、n12+r12の冗長記号を有する積符号配列が形成されることを特徴とする、
誤り訂正システム。
【0062】
(実施態様8)
積符号配列(130)の行を行符号で復号化することによって、積符号配列の行と1対1に関連した、長さがr1の記号からなるシンドロームを形成する行復号器(230)と、
各シンドロームをその1つの行に記憶して、シンドローム配列をなすようにシンドロームを記憶する、n2の行とr1の列を備えたシンドローム配列バッファ(222)と、
中間符号でシンドローム配列の列を復号化することによって、積符号配列の汚染行(205)を突き止めるシンドローム復号器(240)と、
積符号配列の列を列符号で復号化することによって、積符号配列の汚染行の消去を訂正する列復号器(250)から構成されることを特徴とする、
実施態様7に記載の誤り訂正システム。
(実施態様9)
12+r12の冗長記号を有する積符号配列(130)を利用する誤り訂正システム(20)において(ここで、n1、n2、r1、及び、r2は整数である)、
積符号配列の行を行符号で復号化することによって、積符号配列の行と1対1に関連する、長さがr1の記号からなるシンドロームを形成する行復号器(230)と、
各シンドロームをその1つの行に記憶して、シンドローム配列をなすようにシンドロームを記憶する、n2の行とr1の列を備えたシンドローム配列バッファ(222)と、
中間符号でシンドローム配列の列を復号化することによって、積符号配列の汚染行(205)を突き止めるシンドローム復号器(240)と、
積符号配列の列を列符号で復号化することによって、積符号配列の汚染行の消去を訂正する列復号器(250)から構成される、
誤り訂正システム。
【0063】
(実施態様10)
シンドローム復号器(240)が、さらに、シンドローム配列の列を中間符号で復号化することによって、シンドローム配列の誤りを訂正する働きをすることと、
行復号器(230)が、さらに、訂正されたシンドローム配列を利用して、積符号配列の行を復号化することによって、積符号配列のランダム誤りを訂正する働きをすることを特徴とする、
実施態様9に記載の誤り訂正システム。
【0064】
【発明の効果】
以上詳述したように、誤り検出、訂正能力を従来と同等に保ちつつ冗長度を減らすことができるので実用に供して益がある。
【図面の簡単な説明】
【図1】符号化及び復号化を利用して、誤り訂正を行う通信及び/または記憶システムの略ブロック図である。
【図2】図1のシステムにおける誤り訂正符号化に利用可能な、先行技術における典型的なリード・ソロモン符号器のブロック図である。
【図3】図1のシステムにおける誤り訂正復号化に利用可能な、先行技術における典型的なリード・ソロモン復号器のブロック図である。
【図4】2次元積符号配列に基づいて、図1のシステムにおける誤り訂正符号化に利用可能な、先行技術における典型的な符号器のブロック図である。
【図5】2次元積符号配列に基づいて、図1のシステムにおける誤り訂正復号化に利用可能な、先行技術における典型的な復号器のブロック図である。
【図6】冗長度を低減した2次元符号配列に基づいて、誤り訂正符号化を行う、本発明の望ましい実施例による図1のシステムに利用可能な符号器のブロック図である。
【図7】図6の符号器によって本発明に基づいて符号化された、冗長度を低減した2次元符号配列を示すブロック図である。
【図8】冗長度を低減した2次元符号配列に基づいて、バースト誤り訂正を行う、本発明の望ましい実施例による図1のシステムに利用可能な復号器のブロック図である。
【図9】冗長度を低減した2次元符号配列に基づいて、バースト誤り及びランダム誤り訂正を行う、本発明の望ましい実施例による図1のシステムに利用可能な復号器のブロック図である。
【符号の説明】
20 通信及び/または情報記憶システム
22 符号器
24 復号器
28 データ発信側装置
30 データ消費側装置
34 通信及び/または記憶チャネル
36 符号器
38 復号器
39 復号器
140 列処理回路要素
142 行処理回路要素
144 列処理回路要素
146 XOR加算器
150 入力配列バッファ
152 出力配列バッファ
154 検査記号配列バッファ
155 検査記号配列バッファ
162 列符号器
164 列シーケンサ
172 行符号器
174 行シーケンサ
192 列符号器
194 列シーケンサ
210 行処理回路要素
212 中間処理回路要素
214 列処理回路要素
220 入力配列バッファ
221 出力配列バッファ
222 シンドローム配列バッファ
230 行復号器
232 行シーケンサ
240 シンドローム配列復号器
242 列シーケンサ
250 列復号器
252 列シーケンサ
260 中間配列バッファ
262 訂正シンドローム配列バッファ

Claims (7)

  1. 冗長度が低減された冗長度低減積符号配列を利用する誤り訂正システムであって、
    1、n2、k1、k2、r1、r2が関係式n1=k1+r1及びn2=k2+r2を満たす正の整数であるとき、行1〜(k2−r2)の列1〜n1及び(k2−r2+1)〜k2の列1〜k1に原始データ記号を記憶するためのn1列とn2行を有する配列バッファと、
    前記配列バッファの列1〜k1の原始データ記号を列符号で符号化して記号長r2の列検査記号を形成する列符号器であって、該列検査記号は前記配列バッファの列と1対1に関連し、前記配列バッファのそれぞれ関連した列の行(k2+1)〜n2に記憶される、列符号器と、
    前記配列バッファの行1〜(k2−r2)の原始データ記号を行符号で符号化して記号長r1の第1の行検査記号を形成するとともに、前記配列バッファの行(k2−r2+1)〜n2の原始データ記号及び列検査記号を行符号で符号化して記号長r1の第2の行検査記号を形成する行符号器と、
    前記第1の行検査記号の列を中間符号で符号化して記号長2r2の中間検査記号を形成する列符号器と、
    前記第2の行検査記号と前記中間検査記号との排他的論理和を求めて、行1〜(k2−r2)の列1〜n1における原始データ記号と、行(k2−r2+1)〜k2の列1〜k1における原始データ記号と、行(k2+1)〜n2における列検査記号とから導かれたr1×2r2の大きさの検査記号配列を形成する加算器であって、該検査記号配列は、前記配列バッファの行(k2−r2+1)〜n2の列(k1+1)〜n1に記憶され、これによって、n12+r12の冗長記号を持つ積符号配列を形成する一方、冗長記号n12+n21−r12を持つ低減されていない冗長積符号列の誤り訂正能力と略同等の能力を維持する、加算器と、
    を含む誤り訂正システム。
  2. 前記積符号配列の行を前記行符号で復号化して、前記積符号配列の行と1対1に関連し記号長r1のシンドロームを形成する行復号器と、
    各シンドロームをその1つの行に記憶することで、前記シンドロームをシンドローム配列をなすように記憶する、n2行とr1列を持つシンドローム配列バッファと、
    前記中間符号で前記シンドローム配列の列を復号化して、前記積符号配列の任意の汚染された行の位置を突き止めるシンドローム復号器と、
    前記積符号配列の列を前記列符号で復号化して、前記積符号配列の汚染された行の消失を訂正する列復号器と、
    を含む請求項に記載の誤り訂正システム。
  3. 前記シンドローム復号器は、前記シンドローム配列の列を前記中間符号で復号化して、前記シンドローム配列における任意の誤りを訂正するよう動作することができ、
    前記行復号器は、訂正されたシンドローム配列を用いて前記積符号配列の行を復号化して、前記積符号配列における任意のランダム誤りを訂正するよう動作することができる、請求項に記載の誤り訂正システム。
  4. 原始データ記号の積符号配列を利用する誤り訂正システムであって、
    積符号配列の列を列符号C2で符号化して、該列符号C2の検査記号を形成する列符号器と、
    前記積符号配列の行と前記列符号C2の検査記号の行とを行符号C1で符号化して、行符号C1の検査記号を形成する行符号器であって、前記行符号C1の検査記号の行は、前記積符号配列の行及び前記列符号C2の検査記号の行と1対1に関連する、行符号器と、
    前記行符号C1の検査記号の行の第1の部分の列を符号化して符号C1.5の中間検査記号にする中間列符号器と、
    前記符号C1.5の中間検査符号と行符号C1の検査記号の残りの第2の部分との排他的論理和を求め、行検査記号のセットよりも小さい冗長度を有する行検査記号の低減されたセットにするが、前記積符号配列の誤り訂正能力と略同等の能力を維持する、冗長圧縮器と、
    を含む誤り訂正システム。
  5. 前記積符号配列の行を前記行符号C1で処理して、シンドロームを形成するシンドローム生成器と、
    各行が前記積符号配列の行と1対1に関連しているシンドローム配列内のシンドロームを記憶するシンドローム配列バッファと、
    前記シンドローム配列の列を前記中間符号C1.5で復号化して、前記積符号配列についての汚染された行のリストを生成するシンドローム復号器と、
    前記汚染された行のリスト及び前記列符号C2によって、前記積符号配列の汚染された行について消失の訂正を実行する列復号器と、
    を含む請求項に記載の誤り訂正システム。
  6. 1、n2、r1、r2を整数とするとき、
    前記積符号配列の行を行符号で復号化して、前記積符号配列の行と1対1に関連し記号長r1のシンドロームを形成する行復号器と、
    各シンドロームをその1つの行に記憶することで、シンドロームをシンドローム配列をなすように記憶する、n2行とr1列を持つシンドローム配列バッファと、
    前記シンドローム配列の列を冗長度2r2の中間符号で復号化して、前記積符号配列の任意の汚染された行の位置を突き止めるシンドローム復号器と、
    前記積符号配列の列を冗長度r2の列符号で復号化して、前記積符号配列の汚染された行の消失を訂正する列復号器と、
    を含む請求項に記載の誤り訂正システム。
  7. 前記シンドローム復号器は、前記シンドローム配列の列を前記中間符号で復号化して、前記シンドローム配列における任意の誤りを訂正するように動作することができ、
    前記行復号器は、訂正されたシンドローム配列を用いて前記積符号配列の行を復号化して、前記積符号配列における任意のランダム誤りを訂正するように動作することができる、請求項に記載の誤り訂正システム。
JP19469496A 1995-07-27 1996-07-24 誤り訂正方法及び装置 Expired - Fee Related JP3737204B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US508,019 1995-07-27
US08/508,019 US5719884A (en) 1995-07-27 1995-07-27 Error correction method and apparatus based on two-dimensional code array with reduced redundancy

Publications (2)

Publication Number Publication Date
JPH0946238A JPH0946238A (ja) 1997-02-14
JP3737204B2 true JP3737204B2 (ja) 2006-01-18

Family

ID=24021053

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19469496A Expired - Fee Related JP3737204B2 (ja) 1995-07-27 1996-07-24 誤り訂正方法及び装置

Country Status (3)

Country Link
US (1) US5719884A (ja)
EP (1) EP0756385A3 (ja)
JP (1) JP3737204B2 (ja)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6957260B1 (en) 1996-06-03 2005-10-18 Microsoft Corporation Method of improving access to services provided by a plurality of remote service providers
US6473099B1 (en) * 1996-06-03 2002-10-29 Webtv Networks, Inc. Automatically upgrading software over a satellite link
KR100229015B1 (ko) * 1996-08-06 1999-11-01 윤종용 디지탈 처리시스템의 에러정정장치 및 방법
US6308295B1 (en) 1996-10-08 2001-10-23 Arizona Board Of Regents Parallel spectral reed-solomon encoder and decoder
US5925144A (en) * 1997-03-13 1999-07-20 Western Digital Corporation Error correction code circuit that performs built-in self test
US5920578A (en) * 1997-04-23 1999-07-06 Cirrus Logic, Inc. Method and apparatus for efficiently processing a multi-dimensional code
FR2764453B1 (fr) * 1997-06-06 1999-07-16 Sagem Procede de transmission de donnees par voie radio
DE69834876T2 (de) * 1997-09-05 2007-01-18 Pioneer Electronic Corp. Informationserzeugungs- und -wiedergabeverfahren und -gerät sowie Informationsaufzeichnungsmedium
US6792538B1 (en) 1997-09-05 2004-09-14 Pioneer Electronic Corporation Information generating method and apparatus, information reproducing method and apparatus, and information record medium
JP3488603B2 (ja) 1997-09-16 2004-01-19 株式会社東芝 電子透かしを利用したコピープロテクトシステム
US6041431A (en) * 1997-09-19 2000-03-21 Adapter, Inc. Method and apparatus for performing error correction code operations
US6073250A (en) * 1997-11-06 2000-06-06 Luby; Michael G. Loss resilient decoding technique
US6163870A (en) * 1997-11-06 2000-12-19 Compaq Computer Corporation Message encoding with irregular graphing
EP1496519B1 (en) * 1998-01-21 2006-08-23 Sony Corporation Encoding method and memory apparatus
EP0939403A3 (en) * 1998-02-25 1999-11-17 Matsushita Electric Industrial Co., Ltd. High-speed error correcting apparatus with efficient data transfer
US6092233A (en) * 1998-03-20 2000-07-18 Adaptec, Inc. Pipelined Berlekamp-Massey error locator polynomial generating apparatus and method
US6260169B1 (en) 1998-03-31 2001-07-10 Stmicroelectronics N.V. Device and method for real time correction of row data from DVD media
US6363511B1 (en) * 1998-03-31 2002-03-26 Stmicroelectronics N.V. Device and method for decoding data streams from storage media
US6192499B1 (en) 1998-05-29 2001-02-20 Adaptec, Inc. Device and method for extending error correction beyond one sector time
US6163871A (en) * 1998-05-29 2000-12-19 Adaptec, Inc. RAM based error correction code encoder and syndrome generator with programmable interleaving degrees
US6115837A (en) * 1998-07-29 2000-09-05 Neomagic Corp. Dual-column syndrome generation for DVD error correction using an embedded DRAM
US6192497B1 (en) 1998-08-27 2001-02-20 Adaptec, Inc. Parallel Chien search circuit
WO2000019616A2 (en) 1998-09-28 2000-04-06 Advanced Hardware Architectures, Inc. Turbo product code decoder
US6389571B1 (en) 1998-11-16 2002-05-14 Adaptec, Inc. Apparatus and method for generating interleave erasure locations from thermal asperity erasure pointers
US6604218B1 (en) * 1999-01-12 2003-08-05 Matsushita Electric Industrial Co., Ltd. Data encoding apparatus and data decoding apparatus
US6662334B1 (en) 1999-02-25 2003-12-09 Adaptec, Inc. Method and device for performing error correction on ECC data sectors
US6625774B1 (en) * 1999-10-29 2003-09-23 Stmicroelectronics, Inc. Redundancy system and method for locating errors in interleaved code words
US6606727B1 (en) * 1999-10-29 2003-08-12 Stmicroelectronics, Inc. System and method for providing error correction coding with selectively variable redundancy
US6662335B1 (en) * 2000-01-25 2003-12-09 Mediatek Inc. Method and apparatus for accessing DVD data
US7356752B2 (en) * 2000-03-14 2008-04-08 Comtech Telecommunications Corp. Enhanced turbo product codes
CA2404984A1 (en) * 2000-04-04 2001-10-11 Comtech Telecommunications Corp. Enhanced turbo product code decoder system
US6738942B1 (en) 2000-06-02 2004-05-18 Vitesse Semiconductor Corporation Product code based forward error correction system
US6622277B1 (en) * 2000-06-05 2003-09-16 Tyco Telecommunications(Us)Inc. Concatenated forward error correction decoder
US7159164B1 (en) * 2000-06-05 2007-01-02 Qualcomm Incorporated Method and apparatus for recovery of particular bits of a frame
US6697985B1 (en) * 2000-10-04 2004-02-24 Actelis Networks Inc. Predictive forward error correction redundancy
US8656246B2 (en) * 2001-04-16 2014-02-18 Qualcomm Incorporated Method and an apparatus for use of codes in multicast transmission
US20030033570A1 (en) * 2001-05-09 2003-02-13 Khannanov Roman R. Method and apparatus for encoding and decoding low density parity check codes and low density turbo product codes
EP1293978A1 (en) * 2001-09-10 2003-03-19 STMicroelectronics S.r.l. Coding/decoding process and device, for instance for disk drives
FR2838580B1 (fr) * 2002-04-12 2005-04-01 Canon Kk Procedes et dispositifs de faible cout pour le decodage de codes produits
DE10216999A1 (de) * 2002-04-16 2003-11-06 Thomson Brandt Gmbh ECC-Block-Enkodierer und -Dekodierer mit reduziertem RAM-Speicherbedarf
US7116840B2 (en) 2002-10-31 2006-10-03 Microsoft Corporation Decoding and error correction in 2-D arrays
US7133563B2 (en) * 2002-10-31 2006-11-07 Microsoft Corporation Passive embedded interaction code
US7290197B2 (en) * 2003-06-03 2007-10-30 Quantum Corporation Correcting data using redundancy blocks
US7168024B2 (en) * 2003-10-03 2007-01-23 Jennic Limited Data processing system and method
GB2407946A (en) 2003-11-05 2005-05-11 Nokia Corp Forward Error Correction decoder suitable for use with data comprising variable padding
US7583842B2 (en) * 2004-01-06 2009-09-01 Microsoft Corporation Enhanced approach of m-array decoding and error correction
US7263224B2 (en) * 2004-01-16 2007-08-28 Microsoft Corporation Strokes localization by m-array decoding and fast image matching
US7228490B2 (en) * 2004-02-19 2007-06-05 Quantum Corporation Error correction decoder using cells with partial syndrome generation
US7607076B2 (en) 2005-02-18 2009-10-20 Microsoft Corporation Embedded interaction code document
US7826074B1 (en) 2005-02-25 2010-11-02 Microsoft Corporation Fast embedded interaction code printing with custom postscript commands
US20060215913A1 (en) * 2005-03-24 2006-09-28 Microsoft Corporation Maze pattern analysis with image matching
US20060242562A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation Embedded method for embedded interaction code array
US7599560B2 (en) 2005-04-22 2009-10-06 Microsoft Corporation Embedded interaction code recognition
US7421439B2 (en) * 2005-04-22 2008-09-02 Microsoft Corporation Global metadata embedding and decoding
US7400777B2 (en) * 2005-05-25 2008-07-15 Microsoft Corporation Preprocessing for information pattern analysis
US7729539B2 (en) * 2005-05-31 2010-06-01 Microsoft Corporation Fast error-correcting of embedded interaction codes
US7580576B2 (en) * 2005-06-02 2009-08-25 Microsoft Corporation Stroke localization and binding to electronic document
US7619607B2 (en) 2005-06-30 2009-11-17 Microsoft Corporation Embedding a pattern design onto a liquid crystal display
US7622182B2 (en) 2005-08-17 2009-11-24 Microsoft Corporation Embedded interaction code enabled display
US7817816B2 (en) * 2005-08-17 2010-10-19 Microsoft Corporation Embedded interaction code enabled surface type identification
KR100754185B1 (ko) * 2005-10-18 2007-09-03 삼성전자주식회사 방송 서비스의 수신능력을 표시하는 방법 및 장치
JP4662367B2 (ja) * 2006-04-18 2011-03-30 共同印刷株式会社 情報シンボルの符号化方法及びその装置並びに情報シンボルの復号化方法及び復号化装置
US20080010513A1 (en) * 2006-06-27 2008-01-10 International Business Machines Corporation Controlling computer storage systems
US8046660B2 (en) * 2006-08-07 2011-10-25 Marvell World Trade Ltd. System and method for correcting errors in non-volatile memory using product codes
GB2445005B (en) * 2006-12-19 2012-01-18 Martin Tomlinson Concatenated coding system
US8069392B1 (en) 2007-10-16 2011-11-29 Integrated Device Technology, Inc. Error correction code system and method
CN101404563B (zh) * 2008-11-20 2011-12-21 吕晓雯 一种差错控制方法和系统
US20100241923A1 (en) * 2009-03-17 2010-09-23 Broadcom Corporation Communication device employing LDPC (Low Density Parity Check) coding with Reed-Solomon (RS) and/or binary product coding
CN101505201B (zh) * 2009-03-18 2011-08-31 吕晓雯 一种差错控制方法
CN103140894B (zh) 2010-08-17 2017-08-22 技术研究及发展基金公司 在非易失性存储器(nvm)单元中减轻单元间耦合效应
US8751910B2 (en) 2011-04-13 2014-06-10 Cortina Systems, Inc. Staircase forward error correction coding
US9412911B2 (en) 2013-07-09 2016-08-09 The Silanna Group Pty Ltd Optical tuning of light emitting semiconductor junctions
US9252815B2 (en) 2013-12-16 2016-02-02 International Business Machines Corporation Extension of product codes with applications to tape and parallel channels
US10615913B2 (en) 2017-09-13 2020-04-07 Ciena Corporation Forward error correction with compression coding
US10693500B2 (en) 2017-09-15 2020-06-23 Duke University Systems and methods for decoding forward error correction codes based on component codes
US11082062B2 (en) * 2019-09-17 2021-08-03 SK Hynix Inc. Hardware implementations of a quasi-cyclic syndrome decoder
CN112332869A (zh) * 2020-10-22 2021-02-05 杭州华澜微电子股份有限公司 改进的tpc迭代方法和装置
US11711099B1 (en) 2022-03-23 2023-07-25 Samsung Electronics Co., Ltd. Low gate-count encoding algorithm and hardware of flexible rate GLDPC ECC

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0156440B1 (en) * 1984-03-24 1990-01-24 Koninklijke Philips Electronics N.V. An information transmission method with error correction for user words, an error correcting decoding method for such user words, an apparatus for information transmission for use with the method, a device for information decoding for use with the method and an apparatus for use with such device
CA1264091A (en) * 1986-01-10 1989-12-27 Yoichiro Sako Generator for error correcting code and decoder for the code
EP0471085B1 (en) * 1990-03-02 1997-05-07 Mitsubishi Denki Kabushiki Kaisha Error-correcting encoding and decoding method and system using a product code and a superimposed code
KR100200801B1 (ko) * 1991-08-31 1999-06-15 윤종용 오류정정장치
US5432800A (en) * 1991-10-29 1995-07-11 Hitachi, Ltd. Methods and apparatuses for transmission and reception of information signals
US5392299A (en) * 1992-01-15 1995-02-21 E-Systems, Inc. Triple orthogonally interleaed error correction system
US5365530A (en) * 1992-05-12 1994-11-15 Mitsubishi Denki Kabushiki Kaisha Error-correction encoding and decoding system

Also Published As

Publication number Publication date
EP0756385A2 (en) 1997-01-29
US5719884A (en) 1998-02-17
EP0756385A3 (en) 1999-01-13
JPH0946238A (ja) 1997-02-14

Similar Documents

Publication Publication Date Title
JP3737204B2 (ja) 誤り訂正方法及び装置
JP3256517B2 (ja) 符号化回路、回路、パリティ生成方法及び記憶媒体
US7246294B2 (en) Method for iterative hard-decision forward error correction decoding
US5465260A (en) Dual purpose cyclic redundancy check
EP0950300B1 (en) Secondary channel using code violations
KR100327653B1 (ko) 데이터 저장 장치용 순환 중복 검사 정보의 갱신 방법 및장치
US4504948A (en) Syndrome processing unit for multibyte error correcting systems
KR930008683B1 (ko) 리드-솔로몬 에러 보정 코드 엔코더
US4956709A (en) Forward error correction of data transmitted via television signals
JPH07235880A (ja) デジタルデータ符号化方式
US7346834B2 (en) Randomizer systems for producing multiple-symbol randomizing sequences
EP0753942A2 (en) Word-wise processing for reed-solomon codes
CA2274106C (en) Shortened fire code error-trapping decoding method and apparatus
US7634711B2 (en) Information coding by algebraic geometric code offering two decoding options
US20030188248A1 (en) Apparatus for iterative hard-decision forward error correction decoding
US7461329B2 (en) Channel encoding adapted to error bursts
US7392454B2 (en) Error locating methods and devices for algebraic geometric codes
US6138263A (en) Error correcting method and apparatus for information data having error correcting product code block
US7546516B2 (en) System and method for forward error correction
JP3329053B2 (ja) 誤り訂正方式
KR20050052184A (ko) 저밀도 패리티 검사 부호화를 위한 인터리빙 방법
US8181096B2 (en) Configurable Reed-Solomon decoder based on modified Forney syndromes
EP1643653A1 (en) Iterative decoding of low-density parity-check (LDPC) codes
GB2048529A (en) Error detection and correction system
JP2792670B2 (ja) 誤り訂正符号の復号方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040518

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040811

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040816

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050331

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050627

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050708

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050928

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051026

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091104

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20101104

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees