JP2005516457A - 誤り訂正復号器用のチェン・サーチ・セル - Google Patents
誤り訂正復号器用のチェン・サーチ・セル Download PDFInfo
- Publication number
- JP2005516457A JP2005516457A JP2003563104A JP2003563104A JP2005516457A JP 2005516457 A JP2005516457 A JP 2005516457A JP 2003563104 A JP2003563104 A JP 2003563104A JP 2003563104 A JP2003563104 A JP 2003563104A JP 2005516457 A JP2005516457 A JP 2005516457A
- Authority
- JP
- Japan
- Prior art keywords
- error
- block
- codeword
- cell
- decoder
- 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.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10009—Improvement or modification of read or write signals
- G11B20/10268—Improvement or modification of read or write signals bit detection or demodulation methods
- G11B20/10287—Improvement or modification of read or write signals bit detection or demodulation methods using probabilistic methods, e.g. maximum likelihood detectors
- G11B20/10296—Improvement or modification of read or write signals bit detection or demodulation methods using probabilistic methods, e.g. maximum likelihood detectors using the Viterbi algorithm
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1803—Error detection or correction; Testing, e.g. of drop-outs by redundancy in data representation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/1515—Reed-Solomon codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/1545—Determination of error locations, e.g. Chien search or other methods or arrangements for the determination of the roots of the error locator polynomial
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/158—Finite field arithmetic processing
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
符号語からシンドローム生成器(410)でシンドロームが計算され、このシンドロームに基づいて誤り多項式生成器(420)で誤り多項式が生成され、この誤り多項式から誤り位置生成器(430)で誤り位置が決定され、この誤り多項式から誤り度合生成器(440)で誤り度合が計算され、位置および誤り度合に応答して誤り訂正符号語生成器(450)により符号語が訂正される復号器および復号方法を説明する。1つまたは複数の構成要素(410、420、430、440、450)が不活動メッセージ(640、650)を生成して、次の符号語に対応するデータを処理する機能を知らせる復号器内ブロック・メッセージ処理方式を説明する。チェン・ブロック(930)を用いて、チェン/フォーニー・ブロック(940)により実施される誤り位置および度合の計算とは別に、指定された符号語に対応する誤りの数を決定する二重チェン・サーチ・ブロック(930、940)の実施形態を説明する。追加のガロア体加算器(1140)を使用して符号語と誤りベクトルの同期をとり、それにより、LIFOレジスタ(952)と共に実施される誤り訂正ブロック(950)に伴う遅延およびコストを低減する、強化型チェン・サーチ・セル・アーキテクチャを説明する。
Description
本発明は、ディジタル通信システムの誤り検出および訂正に関する。
本特許出願は、2002年1月23日に本願と同時出願の「DUAL CHIEN SEARCH BLOCKS IN AN ERROR−CORRECTING DECODER」という名称の米国特許出願第10/055,076号(整理番号PU020003)および2002年1月23日に本願と同時出願の「INTRA−DECODER COMPONENT BLOCK MESSAGING」という名称の米国特許出願第10/055,114号(整理番号PU020002)に関連する。
現在のディジタル通信システムの重要な機能は、誤り制御符号化処理(error control coding)である。誤り制御符号化処理は、ディジタル・システムにおける誤りの検出(detecting)および訂正(correcting)に関する技術を扱う通信の分野である。一般に、誤り検出/訂正方式は、ディジタル・データの送信時またはディジタル・データの記憶により、データに誤りが生じないようにするか、或いは、データに誤りが生じた場合には、生じた誤りの訂正が行われるようにすることが望まれるときに必ず用いられる。データの誤り検出および/または訂正を行う機能は、データに冗長性を付加することにより実現される。送信または記憶するデータ中に冗長ビットを含めると、元の符号化していない信号またはフィールドよりも多くのビットからなる符号化された信号またはフィールドが得られる。
誤り検出/訂正に頻繁に用いられる1つの方式は、いわゆるリード・ソロモン(RS:Reed−Solomon)符号の使用によるものである。リード・ソロモン符号は、非2値組織的線形ブロック符号である。非2値符号は、幾つかのビットからなるシンボルを扱う。リード・ソロモン符号などの非2値符号は、これらの符号による訂正がシンボル・レベルで行われるので、バースト誤りを訂正するのに適している。リード・ソロモン符号などの組織的符号は、不変形式のメッセージ・シンボルを含む符号語を生成する。符号器は、これらのメッセージ・シンボルに可逆的な数学関数を適用して、冗長またはパリティ・シンボルを生成する。次いで、このパリティ・シンボルをメッセージ・シンボルに付加することにより符号語を形成する。リード・ソロモン符号は、任意の有効符号語を巡回シフトしても別の有効符号語が生成されるので、巡回符号とみなされる。巡回符号は、それを実施する効率的で安価な復号技術が存在するので一般に普及している。最後に、リード・ソロモン符号は、任意の2つの有効符号語を追加すると、別の有効符号語が得られるので線形とみなされる。
典型的なリード・ソロモン復号器は、(i)シンドローム(syndrome)生成ブロック、(ii)誤り多項式ブロック、(iii)誤り位置ブロック、(iv)誤り度合ブロック、(v)誤り訂正ブロック、および(vi)遅延ブロックという主要な構成要素ブロックからなる。シンドローム生成ブロックは、符号語を受信し、この符号語からシンドロームを生成するのに用いる。このシンドロームを用いて、誤り多項式ブロックで誤り多項式を生成する。この誤り多項式を誤り位置ブロックおよび誤り度合ブロックに渡し、そこで符号語の誤りの位置および大きさがそれぞれ決まる。この誤りの位置および大きさから誤りベクトルを生成する。特定の符号語に対応する誤りベクトルを用いて、誤り訂正ブロックで、受信し遅延させたバージョンの符号語を訂正する。
リード・ソロモン復号器内で誤り位置ブロックを処理する1つの一般的な手段は、いわゆるチェン(Chien)(またはチェン・サーチ)ブロックの使用によるものである。チェン・ブロックは、総当たり式チェン・アルゴリズムを用いて、多項式の値をあらゆる可能な値について求める。チェン・ブロックは、個々のチェン・セルからなる。チェン・サーチ・セル(図11参照)は、誤り位置多項式の1つのステージまたは係数を実施するのに用いるハードウエア・アーキテクチャであり、そのため全部で(t+1)個のステージ(段)がある(というのは、誤り位置多項式の最大次数はtとなり得、次数tの多項式は(t+1)個の係数を有するからである)。典型的なチェン・サーチ・セルは、誤り位置多項式の係数を反復して処理する。1回目の反復で、マルチプレクサは、処理中の符号語に対応する適切な多項式の係数を受信し、この多項式の係数をレジスタに送る。後続のクロック・サイクルで、まずこのレジスタの出力をガロア体乗算器に転送し、次いで、マルチプレクサによりレジスタに戻して記憶する。このプロセスを、全部でNクロック・サイクルに亘って実施する。ただし、Nは符号語長を表す。
この実施形態に関連する問題は、誤り位置が、対応する符号語のバイトと逆の順序で生成され、そのため、誤り位置を符号語に加えて訂正が行われる前に、LIFO(Last In First Out:後入れ先出し)ブロックにより逆にする必要があることである。LIFOブロックは、複数のレジスタを含むハードウエア記憶要素である。全てのレジスタが一杯になると、LIFOブロックはその出力を送出する。入力時の最後の要素が出力時には最初の要素になり、以下同様に行われる。LIFOブロックを用いると2つの問題が生じる。1つは、LIFOブロックが大規模な記憶/メモリ素子であり、そのため、ICのゲート数および電力消費量が増えることである。別の問題は、LIFOブロックによりNクロック・サイクルの待ち時間が生じることである。この待ち時間が生じるのは、LIFOブロックが最初に一杯になるのにNクロック・サイクルかかり、最後の要素がLIFOに読み込まれるまで出力を生成することができないからである。
(発明の概要)
有利なことに、誤り位置ブロックにおいて、それぞれの符号語と同じ順序で係数誤り位置を生成し、そのため、LIFOブロックが不要になる本発明を利用することにより、従来技術に関連する問題がなくなる。本発明は、符号語から生成された単一の誤り位置多項式係数の値を、この係数に対応するセル内で求める方法および装置である。この方法および装置では、符号語に対応する誤り位置多項式係数が受信される。第1クロック・サイクルで、負のベキ指数を有するガロア体乗算器によりこの誤り位置多項式の係数に乗算処理が施される。この負のベキ指数の値は、このセルに対応するステージ番号および符号語長(N)の関数である。この乗算操作により、セル出力が得られる。後続のN−1回のクロック・サイクルに亘って、正のベキ指数を有するガロア体乗算器によりこのセル出力に乗算処理が反復して施される。この第2ガロア体乗算器の正のベキ指数値は、ステージ番号の関数である。
有利なことに、誤り位置ブロックにおいて、それぞれの符号語と同じ順序で係数誤り位置を生成し、そのため、LIFOブロックが不要になる本発明を利用することにより、従来技術に関連する問題がなくなる。本発明は、符号語から生成された単一の誤り位置多項式係数の値を、この係数に対応するセル内で求める方法および装置である。この方法および装置では、符号語に対応する誤り位置多項式係数が受信される。第1クロック・サイクルで、負のベキ指数を有するガロア体乗算器によりこの誤り位置多項式の係数に乗算処理が施される。この負のベキ指数の値は、このセルに対応するステージ番号および符号語長(N)の関数である。この乗算操作により、セル出力が得られる。後続のN−1回のクロック・サイクルに亘って、正のベキ指数を有するガロア体乗算器によりこのセル出力に乗算処理が反復して施される。この第2ガロア体乗算器の正のベキ指数値は、ステージ番号の関数である。
添付の図面と併せて本発明の以下の説明を理解されたい。
図1を参照すると、本発明で実施する原理による誤り検出/訂正方式を組み込んだディジタル・データ伝送システム100を示すブロック図が示されている。一般に、誤り検出/訂正方式は、ディジタル・データの送信時またはディジタル・データの記憶により、データに誤りが生じないようにするか、或いは、データに誤りが生じた場合には、生じた誤りの訂正が行われるようにすることが望まれるときに必ず用いられる。データの誤り検出および/または訂正を行う機能は、データに冗長性を付加することにより実現される。送信または記憶するデータ中に冗長ビットを含めると、元の符号化していない信号またはフィールドよりも多くのビットからなる符号化された信号またはフィールドが得られる。この追加のオーバーヘッドを許容する見返りとして、誤りを検出する機能、或いは、誤りを検出し訂正する機能が得られる。誤り制御符号化処理を用いて得られる性能の改善は、符号化利得について評価されることが多い。符号化処理を行わない通信システムで、30dBのSNR(Signal−to−Noise Ratio:信号対雑音比)で所定のBER(Bit Error Rate:ビット誤り率)が実現されるとする。このシステムに3dBの符号化利得の誤り制御符号化方式を加える場合、この符号化処理を行うシステムは、27dBという更に低いSNRでこのBERを実現することができる。或いは、このシステムを30dBのSNRで稼働させる場合、符号化処理を行うシステムにより実現されるBERは、符号化処理を行わないシステムが33dBのSNRで実現するものと同じBERとなる。符号化利得の威力は、通信システムが、(i)符号化処理を行わずに所望のBERを維持することが可能であったSNRよりも低いSNRでそのBERを維持できるか、或いは、(ii)符号化処理を行わないシステムが所定のSNRで得ることができるはずのものよりも高いBERを実現できることである。
例として、符号器110の機能は、データ源からディジタル・データを受信し、チャネルを介してデータを送信するか、または記憶媒体にデータを記憶するか(図には、全体としてチャネルまたは記憶装置115として示す)、或いは、他の方法でこのデータを操作または処理することである。データの処理、送信または記憶時に、データにノイズまたは誤り125が導入され、そのためしばしば、データが破損するか、或いは元のディジタル・データから変質した形式になる。復号器120は、ディジタル・データの規定部分が破損したかどうかを検出し訂正するか、或いは、単に検出するように機能する。
図2を参照すると、送信機/チャネル/受信機環境の状況で利用可能な様々な誤り検出/訂正プロセスを示す流れ図が示されている。このような状況で説明するが、当業者には、このような誤り検出/訂正プロセスが、ブロードキャスト送信、ディジタル・データ記憶、または(データ・フィールド、パケット、ストリームなどの形態にあろうが)ディジタル・データを処理または操作する任意の他のプロセスにも同様に適用されることが明らかであろう。網羅的または排他的ではなく、単なる例として、(i)テープ、CD(コンパクト・ディスク)、DVD(ディジタル多用途ディスク)、バーコードなどの様々な記憶装置(ただし、これらに限定されるものではない)、(ii)(携帯電話、双方向トランシーバ、マイクロ波リンクなどの)無線または携帯通信、(iii)、衛星通信、(iv)ディジタル・ラジオ、DTV(ディジタル・テレビジョン)、DVB(ディジタル・ビデオ放送)など、(v)ケーブル、V.pcm、ADSL、xDSLなどに用いるモデム(ただし、これらに限定されるものではない)という技術/装置が、誤り検出/訂正方式を用いて、それらの性能、完全性および信頼性を改善させることができる。
ステップ210によれば、最初にリンクを確立し、送信チャネル・パラメータを調停した後で、送信元は、送信に適当な形式でディジタル・データを処理する。ステップ215によれば、送信元は送信を行う前に、少なくとも部分的に送信ディジタル・データの値に基づいて、ある程度のデータ冗長度が得られる誤り符号を生成する。ステップ220によれば、この生成された誤り符号を、添付、付加、多重化その他の方法でディジタル・データと共に含め、送信機から受信機に送信する。ステップ225によれば、このディジタル・データおよび誤り符号を受信機で受信する。ステップ230によれば、必要な場合には、受信機で初期信号処理を実施する。ステップ235によれば、受信機は、用いられている誤り制御符号化方式に従って誤り符号の冗長ビットにアクセスし、その中に含まれる情報を処理する。ステップ240によれば、受信したディジタル・データと処理された冗長ビットの照合が肯定的であった場合、このデータは破損していないとみなされる。ステップ245によれば、受信機において、このディジタル・データの更なる信号処理を(それがある場合には)継続して行う。
しかし、処理された冗長ビットが、受信したディジタル・データが破損していることを示す(少なくとも1つのビット誤りを含む)場合、ステップ250によれば、このデータ誤りの値を求めて、この誤りが、用いられている誤り制御方式で訂正可能かどうかを判定する。即ち、幾つかの誤り制御方式は、誤り検出しか行うことができず、これらの誤りを訂正することができる特質およびタイプの冗長データは含んでいない。他の誤り制御方式は、検出および訂正機能を共に有し得るにも関わらず、誤り検出機能しか利用しないことがある。これは、個々のデータ信号、メッセージまたはパケットの正確さがさほど重要ではなく、一貫し時宜を得たデータの配信が最も重要であるときにしばしば用いられる方式である。このような応用例は、会話、音声およびビデオ用途の同期ストリーム・データである。或いは、誤り訂正方式を用いて誤りを検出し訂正するときでも、検出された誤りの数または連続して生じた誤りが、誤り訂正機能を上回る場合(即ち、誤り符号ビットにより提供される冗長情報では不足の場合)、このデータは絶対に復元不可能である。ステップ255によれば、データが訂正可能な場合、受信機でデータ誤りを訂正し、更なる信号処理を(それがある場合には)継続する。しかし、データが訂正不可能な場合、ステップ260によれば、データの正確さが本質的なことであるかどうかを決める評価を実施する。純粋なデータ・システムではそうであるように、データの正確さが本質的なことである場合、単一のビット誤りが決定的なものである可能性が大きく、ステップ265によれば、送信元に再送要求を送り返す。しかし、(会話、音声またはビデオなどの)同期的な性質のデータ・メッセージの場合がそうであるように、訂正不可能なデータの正確さが本質的なことではない場合、ステップ270によれば、破損し訂正不可能なデータを単に破棄し、次の連続したデータ・メッセージを処理する。
図3を参照すると、様々な誤り符号の分類および方式の階層図が示されている。誤り符号310は、(i)自動再送要求(ARQ:Automatic Retransmission Request)または検出符号315、および(ii)前方誤り訂正(FEC:Forward Error Correction)符号320という2つの基本的な分類に分けることができる。ARQは、検出だけを行うタイプの符号であり、受信機により送信時の誤りを検出することができるが、誤りを訂正することはできない。受信機は、受信されたデータを調べ、誤りが検出された受信データを送信し直す要求を出さなければならない。このような再送は、貴重な帯域を横取りすることになるので、一般に、ARQ符号は「クリーン」な(誤りの可能性がより低い)送信媒体に用いられる。最も一般的な例の1つは、単純なパリティ・チェック325であり、RAM中のデータ誤りを検出するのにしばしば用いられる。別の例は、CRC(巡回冗長検査)330であり、例えば、イーサネット(登録商標)上の送信における誤りを検出するのに用いられる。誤りが検出された場合、そのメッセージが再送されることになる。イーサネット(登録商標)は主に電線上を送信されるので、誤りの確率は他の幾つかの媒体よりも少ない。CRCおよびARQは、誤り検出符号方式の単なる2つの例であり、当業者には他の誤り検出符号方式が知られている。単に誤りを検出するだけでそれらを訂正しない誤り符号は、加えられる冗長度が誤り訂正符号よりもかなり少ない。更に、誤り検出用の復号器は、誤り訂正用の復号器よりもはるかに簡単である。一般に、誤り検出符号方式を利用するシステムは、データの再送で生じるオーバーヘッドに関して帯域許容性が高い。即ち、データを再送しても、全体的なシステムのスループットに大きく影響しない。
ノイズの多い媒体では、所定の送信中に誤りが生じる確率が高いので、自動再送要求(ARQ)法を用いると常時データの再送が生じることになり、それにより、システムのスループットが許容できないレベルまで落ちる。このような例では、誤り訂正符号により、その名前が示すとおり、受信側で誤りを検出するだけでなく、誤りの訂正を行うこともできる。こうすると、データを再送する必要が減り、用いられる誤り訂正方法により訂正することができる数よりも誤りの数が多いときだけデータの再送が必要になる。誤り訂正は、受信機が送信元に再送を要求する機会がない一方向通信にも用いられる。このような一方向経路の例には、一部の衛星送信および磁気テープ記憶媒体が含まれる。
誤り訂正符号は、2つの主要な副分類に分けることができる。第1はブロック符号335であり、第2は畳込み符号340である。ブロック符号335は、定義された有限長のメッセージ・ブロックを扱う誤り訂正符号であり、しばしば用いられている。ブロック符号335は、この副分類では、ブロック単位のメッセージ・シンボルを処理し、次いで、ブロック単位の符号語シンボルを出力する符号器を利用するのでこの名前がついている。一般に、ブロック符号は、2値符号345および非2値符号355の2つのタイプに分類することができる。2値符号345の一例はハミング符号350であり、1文字当たり4つの情報ビットおよび3つの検査ビットを有するという特徴がある。非2値符号の例は、リード・ソロモン符号360である。
対照的に、畳込み符号340用の符号器は、連続したストリームのメッセージ・シンボルを扱い、同時に、符号化された連続出力ストリームを生成する。これらの符号は、その符号化プロセスを、メッセージ・シンボルと符号器のインパルス応答の畳込み処理とみなすことができることからこの名前がついている。畳込み符号340の例には、TCM(トレリス(Trellis)符号化変調)365および2値畳込み符号化処理370の2つがある。
図4は、RS(リード・ソロモン)復号器の例を示すブロック図である。前に説明したように、リード・ソロモン符号は、非2値組織的線形ブロック符号である。非2値符号は、幾つかのビットからなるシンボルを扱う。非2値符号用の一般的なシンボル・サイズは、8ビット即ち1バイトである。リード・ソロモン符号などの非2値符号は、これらの符号の訂正がシンボル・レベルで行われるので、バースト誤りを訂正するのに適している。復号プロセスでシンボルを扱うことにより、これらの符号は、1個のビット誤りを伴うシンボルを訂正することができるのと同じように簡単に、8個の誤りのバーストを伴うシンボルを訂正する。リード・ソロモン符号などの組織的符号は、不変形式のメッセージ・シンボルを含む符号語を生成する。符号器は、これらのメッセージ・シンボルに可逆的な数学関数を適用して、冗長またはパリティ・シンボルを生成する。次いで、このパリティ・シンボルをメッセージ・シンボルに付加することにより符号語を形成する。リード・ソロモン符号は、任意の有効符号語を巡回シフトしても別の有効符号語が生成されるので、巡回符号とみなされる。巡回符号は、それを実施する効率的で安価な復号技術が存在するので一般に普及している。最後に、リード・ソロモン符号は、任意の2つの有効符号語を追加すると、別の有効符号語が得られるので線形とみなされる。
誤り制御符号の理論では、有限体またはガロア体として知られている数学的な構造体を用いる。ガロア体は、有限個の元を含む1つの組である。この組に対する加算および乗算演算が定義される。これらの演算は、通常の算術から予想されるように動作する。例えば、加算の単位元はゼロであり、乗算の単位元は1である。リード・ソロモン符号は、この符号の巡回且つ線形な性質を司るガロア体の数学的処理を用いて実施され、q=pm次のガロア体上で演算が行われる。ただし、pは正の素数であり、mは正の整数である。q次のガロア体はGF(q)で表し、q個の別個の元を含んでいる。
所定のリード・ソロモン符号は、それを(n,k)符号と称することにより示す。パラメータnは、符号語中のシンボルの数で表した符号語長を示す。パラメータkは、符号語中のメッセージ・シンボルの数を示す。従って、加えられるパリティ・シンボルの数はn−k個になる。この符号の誤り訂正機能は、t=(n−k)/2である。この符号は、T個の誤りを検出し訂正する。ただし、0≦T≦tである。この符号語は、メッセージ・シンボルに基づくものであり、リード・ソロモン符号器により生成される。リード・ソロモンは組織的符号(systematic code:システマティック・コード)なので、n個のメッセージ・シンボルはそのまま送信され、これらのメッセージ・シンボルにn−k個のパリティ・シンボルが付加されて符号語が形成される。送信される符号語に冗長度を加えるこのパリティ・シンボルの値は、メッセージ・シンボルにより決まる。受信機の復号器はこの冗長度を利用して、誤りを検出し訂正する。
受信機の復号器で、シンドローム生成ブロック410への入力として符号語を受信する。復号器により実施される最初のステップはシンドローム計算であり、(しばしばシンドローム生成モジュールまたは単にシンドローム生成器とも称する)シンドローム生成ブロック410により実施される。このシンドロームはn−k個のシンボルからなり、これらの値は受信した符号語から計算する。このシンドロームは、誤りベクトルのみにより決まり、送信された符号語とは無関係である。即ち、各誤りベクトルは固有のシンドローム・ベクトルを有するが、受信された多くの異なる符号語は、それらの誤りパターンが同じ場合には同じシンドロームを有することになる。最初にシンドロームを計算する理由は、そうすると誤りベクトルの探索範囲が狭まるからである。まず、シンドロームが分かると、妥当な誤りベクトルの数が、全部で2n個の可能な誤りベクトルから2n−k個の誤りベクトルに減る。
シンドローム生成ブロック410がシンドロームを計算する1つの方法は、ガロア体代数を用いて、受信した符号語を生成多項式で割ることによるものである。この除算の剰余をシンドローム多項式s(x)と呼ぶ。実際のシンドローム・ベクトルS(x)は、α〜αn−kでs(x)の値を求めることにより計算する。ただし、この方法は、ハードウエアの観点から最も効率的でないことがあり、ハードウエア内で頻繁に用いられる代替方法では、直接α〜αn−kで受信済み符号語R(x)の値を求める。シンドローム生成ブロック410は、α〜αn−kで受信した符号語Rの値を求めることにより、即ちR(α)〜R(αn−k)によりシンドロームSを計算する。リード・ソロモン符号では、n−k=2tであり、従って、計算しようとする2t個のシンドローム値[S1 S2 S3...S(2t)]がある。一般に、これらの値は、第1シンドローム生成器がαで受信済み符号語の値を求めてS1を形成し、次のシンドローム生成器がα2で受信済み符号語の値を求めてS2を形成し、以下同様に行って、並列に計算する。
シンドローム生成ブロック410によりシンドロームが計算されると、この値は、誤り多項式ブロック420に渡される。そこで、このシンドロームを用いて誤り位置多項式を生成する。このプロセスでは、t個の未知数の連立方程式を解くことが必要である。これらの計算を行うのに、バーレカンプ・マッシィ(Berlekamp−Massey)アルゴリズムまたはユークリッド・アルゴリズムを含めて、幾つかの高速アルゴリズムが利用可能である。これらのアルゴリズムは、リード・ソロモン符号の特別な行列構造を利用し、必要な計算の労力を大きく減らす。
誤り多項式ブロック420は、誤り位置多項式を(それが決定された後で)誤り位置ブロック430および誤り度合ブロック440に渡す。誤り位置ブロック430は、この誤り位置多項式の根を見つけて誤り位置を決定する。一般に、これは、チェン・サーチ・アルゴリズムまたはチェン・セルを利用して行われる。誤り位置ブロック430により決定された誤り位置は、前に決定された誤り位置多項式と共に誤り度合ブロック440に渡される。誤り度合ブロック440は、t個の未知数を有する連立方程式を解くことにより誤り度合を決定する。誤り度合ブロック440を実施する際に用いる高速で広く用いられているアルゴリズムは、フォーニー(Forney)アルゴリズムである。
計算された誤り位置および誤り度合は、誤り訂正ブロック450に転送されて、符号語が破損している場合には、符号語が訂正されて復元される。誤り位置および誤り度合の組合せを、しばしば誤りベクトルと称する。この誤りベクトルは、符号語と同じサイズであり、誤りに対応する位置で非ゼロ値を含んでいる。他の全ての位置にはゼロが入る。誤り訂正ブロック450への別の入力は遅延ブロック460の出力である。遅延ブロック460は、受信した符号語を取り込み、この受信した同じ符号語を遅延させて出力する。一実施形態では、誤り訂正ブロック450は、(最後に入力されたものが最初に出力される)LIFOブロック454と共にガロア体加算器452を使用して実施する。受信した符号語中の誤りは、ガロア体加算器452を使用して、この受信した符号語に誤りベクトルを加えることにより訂正される。LIFOブロック454を使用するのは、誤りベクトルが受信した符号語とは逆の順序で生成され、従って、受信した符号語または誤りベクトルの何れかにLIFO演算を適用して、両方のベクトル中のバイトの順序を整合させなければならないからである。誤り訂正ブロック450の出力は、復号器による元の符号語の推定値である。
図5は、RS(リード・ソロモン)復号器の実施形態の例を示すブロック図である。入力は受信した符号語であり、それをシンドローム生成ブロック510に転送する。シンドローム生成ブロック510によりシンドロームS(x)が計算されると、その値は、ユークリッド・アルゴリズム・ブロック520に渡される。ユークリッド・アルゴリズムによりシンドロームS(x)が処理され、それにより、誤り位置多項式Λ(x)および誤り度合多項式Ω(x)が生成される。即ち、ユークリッド・アルゴリズムにより、キー(Key)方程式と称する以下の方程式が解かれる。
誤り位置多項式Λ(x)が計算されると、この多項式の値を求めてその根を見つける必要がある。チェン・サーチ・アルゴリズムを用いて、これらの根を見つける。チェン・サーチは、全ての可能な入力値に対して多項式の値を求める総当たり式アルゴリズムであり、次いで、どの出力がゼロに等しいかを決める。位置iで誤りが生じる場合、次式がゼロに等しくなる。
チェン・サーチにより、全てのiおよびjの値について式2の値が求まり、この式がゼロに等しくなる回数が数えられる。ゼロの位置は誤りの位置であり、ゼロの数は誤りのあるシンボルの数である。
ある実施形態の例では、(t+1)個のチェン・サーチ・ステージがあり、これらはハードウエアで実施される。これらのステージ(ステージは、乗算器、マルチプレクサおよびレジスタからなる)はそれぞれ、上記チェン・サーチ方程式中のjについて異なる値を示す。このサーチは、nクロック・サイクルに亘って実行され(上記方程式中の異なるiの値が、各クロック・サイクルを表す)、加算器出力がゼロに等しいかどうか検査される。加算器出力がゼロに等しい場合、ゼロ検出ブロックが1を出力することになり、そうでない場合には、ゼロが出力されることになる。このように、チェン・サーチ・ブロックの出力は、「0」または「1」の何れかの値をとるn個のビット列になる。「1」はそれぞれ、誤りのあるシンボルの位置を表す。
第1クロック・サイクルで、マルチプレクサが、誤り位置多項式の係数をレジスタに送る。残りの(n−1)個のクロック・サイクルに亘って、乗算器出力は、マルチプレクサを介してレジスタに送られることになる。これらの乗算器のベキ指数は負の値を有する。ただし、これらの値は、モジュロ演算子を用いてあらかじめ計算することができる。α−iのベキ指数は、(−i modulo n)=(−i modulo 255)に等しい。例えば、α−1はα254に等しく、α−2はα253に等しい。以下同様である。
フォーニー・アルゴリズムを用いて、誤りの値Yiを計算する。これらの値を計算するために、フォーニー・アルゴリズムでは、誤り位置多項式Λ(x)および誤り度合多項式Ω(x)を用いる。誤りの値を求める式は次のようになる。
形式的導関数Λ′(x)の計算は、実際には極めて簡単である。例えば、Λ(x)=α4X3+α3X2+αX+α2と仮定する。こうすると、Λ′(x)は次式のようになる。
次いで、チェン・サーチに用いたのと同じタイプのハードウエアを用いて、Λ′(x)多項式と共にΩ(x)多項式の値を求める。Ω(x)の値を求めるには、Ω0の係数にΩ1の係数にα−1を掛けたものを加え、続けて、Ω2の係数にα−2を掛けたもの、以下同様に、Ωtの係数にα−tを掛けたものまで加える。次いで、これらの乗算器の出力を合計する。
次いで、逆数の乗算器を用いて分子に分母を掛ける。この逆数の乗算器は、分母の逆数を見つけ出すルックアップ・テーブルを含んでいる。例えば、分母がα3の場合、逆数はα−3になる。次いで、これを次式のように表すことができる。
チェン・サーチおよびフォーニー・アルゴリズムには共に同じタイプのハードウエアが必要なので、チェン/フォーニー・ブロック530として示すように、これら2つの機能を同じブロック内で組み合わせることができる。この実施形態では、チェン・サーチの出力のところで2つの加算器を用いる。第1加算器は偶数ステージの値を合計し、他方の加算器は奇数ステージの値を合計する。最終的なチェン・サーチ出力を形成するには、次いで、これら2つの加算器の出力を合計し、ゼロ検出ブロックが根の位置を検出する。フォーニー・アルゴリズムでは、奇数ステージ用加算器の出力も用いる。奇数ステージの合計は、フォーニー方程式の分母を表す。この合計値の逆数をとり、次いで、誤り度合多項式の値を求めることにより形成された分子の値を掛ける。この出力とゼロ検出出力のアンド(AND)演算を行う。というのは、これらの誤りの値は、実際の誤り位置でしか有効でないからである(そうでない場合には、誤りの値はゼロにすべきである)。
このように、チェン/フォーニー・ブロック530は、誤り位置多項式および誤り度合多項式を用いて誤りベクトルを生成し、それを誤り訂正ブロック540に転送する。この誤りベクトルは、符号語と同じサイズであり、誤りに対応する位置で非ゼロ値を含んでいる。他の全ての位置にはゼロが入る。誤り訂正ブロック540への別の入力は遅延ブロック550の出力である。遅延ブロック550は、受信した符号語を取り込み、この受信した同じ符号語を遅延させて出力する。この実施形態では、誤り訂正ブロック540は、LIFOブロック542と共にガロア体加算器544を使用して実施する。受信した符号語中の誤りは、ガロア体加算器544を使用して、この受信した符号語に誤りベクトルを加えることにより訂正される。LIFOブロック542を使用するのは、誤りベクトルが受信した符号語とは逆の順序で生成され、従って、受信した符号語または誤りベクトルの何れかにLIFO演算を適用して、両方のベクトルについてバイトの順序を同期させなければならないからである。誤り訂正ブロック540の出力は、復号器による元の符号語の推定値である。
復号器内構成要素ブロック・メッセージ処理
前に説明したように、リード・ソロモン復号器は、少なくとも4つの主要な構成要素、即ち機能ブロックを有する。それらは、シンドローム生成器、誤り多項式ブロック、誤り位置ブロックおよび誤り度合ブロックである。復号器が誤りを検出するのに加えてそれを訂正する場合、復号器は誤り訂正ブロックも含んでいる。従来技術の復号器では、これらのブロックにより、ある1つのブロックへの入力は前のブロックの出力によりのみ決まる「伝送パイプライン」が形成される。即ち、1つのブロックから前のブロックへのフィードバックはない。リード・ソロモン復号器は、(図4および図5の遅延ブロックにより示す)個々の符号語に対する復号プロセスを実施する間に、受信した符号語を記憶するためのメモリまたはバッファ・ブロックを実現することも必要である。誤り位置/度合ブロックは、復号プロセスの完了時に誤りベクトルを生成し、この誤りベクトルとメモリ中に記憶させた受信済み符号語のXOR演算を行って復号器出力を形成する。一般に、使用するメモリのサイズは1符号語に等しく、そのため、この復号器は、一度に1つの符号語しか処理することができない。
前に説明したように、リード・ソロモン復号器は、少なくとも4つの主要な構成要素、即ち機能ブロックを有する。それらは、シンドローム生成器、誤り多項式ブロック、誤り位置ブロックおよび誤り度合ブロックである。復号器が誤りを検出するのに加えてそれを訂正する場合、復号器は誤り訂正ブロックも含んでいる。従来技術の復号器では、これらのブロックにより、ある1つのブロックへの入力は前のブロックの出力によりのみ決まる「伝送パイプライン」が形成される。即ち、1つのブロックから前のブロックへのフィードバックはない。リード・ソロモン復号器は、(図4および図5の遅延ブロックにより示す)個々の符号語に対する復号プロセスを実施する間に、受信した符号語を記憶するためのメモリまたはバッファ・ブロックを実現することも必要である。誤り位置/度合ブロックは、復号プロセスの完了時に誤りベクトルを生成し、この誤りベクトルとメモリ中に記憶させた受信済み符号語のXOR演算を行って復号器出力を形成する。一般に、使用するメモリのサイズは1符号語に等しく、そのため、この復号器は、一度に1つの符号語しか処理することができない。
図6は、本発明の原理による復号器内ハンドシェイク・プロトコルの実施形態の例を示すブロック図である。復号器内ブロックA 610および復号器内ブロックB 620は、(上記で説明した機能ブロックから選択した)リード・ソロモン復号器内の任意の2つのブロックを表し、これらのブロック間でフィードバックまたは通信を利用する。復号処理用「伝送パイプライン(delivery pipeline)」はデータ・チャネル630であり、これは、リード・ソロモン復号器の機能ブロック間の従来技術による任意の一方向チャネルを表す。それに加えて、本発明によれば、フィードバック・チャネルも示されている。このフィードバック・チャネルは、ある1つの機能ブロックが、その機能ブロックの現在または今後の非活動状態を上流側または下流側の機能ブロックに伝えるための手段とみなすことができる。例えば、復号器内ブロックA 610が、ある特定の符号語に対してその処理機能を完了したと仮定する。復号器内ブロックA 610は、指定された符号語に対するその計算機能の結果を復号器内ブロックB 620に転送する準備ができていることを示す非活動メッセージを復号器内ブロックB 620に送る。そのため、このタイプの非活動メッセージをRTS(Ready−To−Send:送信準備完了)メッセージ650と呼ぶ。逆に、復号器内ブロックB 620が、ある特定の符号語に対してその処理機能を完了したと仮定する。復号器内ブロックB 620は、それが受信する準備ができていることを示す非活動メッセージを復号器内ブロックA 610に送る。そのため、このタイプの非活動メッセージをRTR(Ready−To−Receive:受信準備完了)メッセージ640と呼ぶ。
機能ブロック間のフィードバックまたはハンドシェイク処理を伴う復号器の実施形態である本発明のこの実施形態は、こうすると、ユーザが構成可能な、IP(知的財産)コアに適当なアーキテクチャが可能になり、それにより、実現して使用したいメモリ・サイズに基づいて、ユーザが復号器の性能をカスタマイズすることができるという点で有利である。
図7は、RS(リード・ソロモン)復号器の実施形態の例の機能ブロック間のハンドシェイク・プロトコルを示すブロック図である。シンドローム生成ブロック410、誤り多項式ブロック420、誤り位置ブロック430、誤り度合ブロック440、(ガロア体加算器452およびLIFOブロック454を含む)誤り訂正ブロック450および遅延ブロック460の機能、目的および動作は、図4に関して十分に説明されており、従ってここでは繰り返さない。図7に新たに含めた上記非活動メッセージ(またはハンドシェイク信号)が示されている。これらの処理ブロックは、ハンドシェイク信号(例えば、RTSおよびRTRメッセージ)を用いて、これらの処理ブロックが送信データをもっている時点、および/またはそれらがデータを受信する準備が整っている時点を示す。こうすると、シンドローム生成ブロック410と誤り多項式ブロック420は、RTSチャネル710を介してRTSメッセージを、或いは、RTRチャネル712を介してRTRメッセージを交換する。誤り多項式ブロック420と誤り位置ブロック430は、RTSチャネル718を介してRTSメッセージを、或いは、RTRチャネル720を介してRTRメッセージを交換する。誤り多項式ブロック420と誤り度合ブロック440は、RTSチャネル724を介してRTSメッセージを、或いは、RTRチャネル726を介してRTRメッセージを交換する。誤り度合ブロック440と誤り訂正ブロック450は、RTSチャネル730を介してRTSメッセージを、或いは、RTRチャネル732を介してRTRメッセージを交換する。シンドローム生成ブロック410は、RTRチャネル740を介してRTRメッセージを送信することにより次に受信する符号語を要求するようにも適合される。誤り訂正ブロック450は、RTSチャネル760を介して出力処理ステージにRTSメッセージを送信するようにも適合される。更に、本発明の選択した実施形態により、遅延を適切に調整して、誤り訂正ブロック450において受信した符号語が誤りベクトルに同期して検査され、正しく訂正されるように、(メッセージ・チャネル750を介して)遅延ブロック460にRTRまたはRTSメッセージを送信することが必要になることがある。
本発明から得られる有利な有用性は、復号器内機能ブロック間のハンドシェイク処理を可能にすることにより、機能ブロックが非活動状態になったときに(即ち、機能ブロックがその最後の手順を完了したときに)、機能ブロックがより多くの処理データの受信を要求できることである。同様に、機能ブロックは、その機能ブロックがその手順を完了しており、且つ下流側の機能ブロックがその結果を受信することができるときにはいつでもその結果を転送することができることを下流側の機能ブロックに示すことができる。例えば、一般に、シンドローム生成ブロック410は、特定の長さの受信した符号語に対して固定された(既知の)数のクロック・サイクルを用いてシンドロームを生成することになるが、誤り多項式ブロック420は、その実行時間が変化し得る反復プロセスである。更に、一般に、誤り位置ブロック430および誤り度合ブロック440は、固定された(既知の)数のクロック・サイクルの時間が掛かることになるが、符号語中に存在する誤りの数が多すぎて符号語が訂正不可能と判定された場合には、その符号語に対する更なる処理を中断することができ、誤り位置ブロック430および誤り度合ブロック440は、適切なRTRチャネル720、726を介して誤り多項式ブロック420にRTRメッセージを送信することにより、次の符号語に対する処理を開始するように要求する。従って、誤り位置ブロック430および誤り度合ブロック440も、その処理を完了するのにかけるクロック・サイクルを可変にする。
ただし、図7に示す本発明の実施形態は、本発明の趣旨および範囲から逸脱することなく実施することができる幾つかの実施形態の1つであることに留意されたい。例えば、復号器の各機能ブロックがRTSおよびRTRメッセージを送信するように構成される必要はない。そうではなくて、設計上の選択事項として、シンドローム生成ブロック410と誤り多項式ブロック420の間だけでハンドシェイク処理を行うことができることが望ましいことがある。多くの他の変形形態も可能である。更に、RTSおよびRTRチャネルを介して通信されるようにRTSおよびRTRメッセージを示し説明するが、このような説明は単なる論理上の説明であり、メッセージ・チャネルは、データ・チャネルとは別の1つの共通物理層メッセージ・チャネル上に組み込むこともできるし、或いは、データ・チャネル自体と同じ物理層上に組み込むこともできる。
本発明の原理によれば、ユーザは、メモリ割当てサイズを変更することにより復号器の性能をカスタマイズする。従って、1符号語長に等しいメモリ・サイズを割り当てた実施形態は、ハードウエアおよび電力が効率的に使用される設計になるが、一度に1つの符号語しか処理することができなくなる。1符号語長よりも長いメモリ・サイズを割り当てられた実施形態は、1つの符号語を処理しながら、第2の符号語の取込みを開始する。2つの符号語のメモリ・サイズを割り当てられた実施形態は、2つの符号語を同時に処理する。以下同様である。もちろん、組み込まれるメモリのサイズを増やすと、それに対応して、ハードウエアおよび電力の点でより高価になるが、所定の時間内により多くの数の符号語を処理することができるので、それに対応して復号プロセスのスピードが速くなり、且つ待ち時間が少なくなるという利益が得られる。ハンドシェイク信号によりプロセスが完全に自動化され、それにより、ユーザは、復号器が使用するメモリ・サイズを入力するだけでよい。この単一のパラメータを制御することにより、ユーザは、スピード、電力およびサイズ(ゲート数)の点で復号器の性能をカスタマイズする。
図8は、本発明の原理によるブロック内ハンドシェイク処理を用いた復号器に関する効率を示す、RS(リード・ソロモン)復号器の例のタイミング図である。タイミング図の上側部分810に、ブロック内ハンドシェイク処理を用いない典型的な復号器における処理に必要な時間を示す。この方式では、CW1(CodeWord 1:符号語1)の処理は時間t0から始まる。CW1のシンドロームは時間t1で生成され、その結果は誤り多項式ブロックに渡される。誤り多項式ブロックは時間t2でCW1の処理を完了し、以下同様に行われ、最後に時間t4でCW1の処理が完了する。従って、CW2(CodeWord 2:符号語2)の処理は時間t4から始まる。CW2に対するこの単一機能逐次処理は、CW2に対する誤り位置および誤り度合計算が完了する時間t8まで続く。ブロック内ハンドシェイク処理を用いないと、2つの符号語を処理するのに、全部で(t8−t0)単位の時間が掛かることに留意されたい。
タイミング図の下側部分820に、ブロック内ハンドシェイク処理を用いた復号器における処理時間を示す。3つの符号語に用いるのに十分な大きさのメモリを実現することにより、この復号器は、一度に3つの符号語を同時に処理できることに留意されたい。各ブロックは、準備が整っていることを前のブロックに伝えるので、各ブロックは処理を終了した時点でより多くのデータを受信することができるため、このように効率的に行われる。図に示した例では、CW3(CodeWord 3:符号語3)の処理は、t6〜t7の間のどこかの時点で完了する。
誤り訂正復号器内の二重チェン・サーチ・ブロック
本発明の実施形態の一例では、二重チェン・サーチ・ブロックを用いて誤り訂正プロセスを実施する。本発明のこの実施形態の原理を利用する復号器により、復号器の待ち時間および復号器の記憶/メモリ要件が共に低減する。
本発明の実施形態の一例では、二重チェン・サーチ・ブロックを用いて誤り訂正プロセスを実施する。本発明のこの実施形態の原理を利用する復号器により、復号器の待ち時間および復号器の記憶/メモリ要件が共に低減する。
図9は、本発明の原理による二重チェン・サーチ・ブロックを使用するRS(リード・ソロモン)復号器の実施形態の例を示すブロック図である。入力は受信した符号語であり、これをシンドローム生成ブロック910に転送する。シンドローム生成ブロック910によりシンドロームS(x)が計算されると、このシンドロームは、ユークリッド・アルゴリズム・ブロック920に転送される。ユークリッド・アルゴリズムを用いて、シンドロームS(x)を処理して、誤り位置多項式Λ(x)および誤り度合多項式Ω(x)を生成する。
本発明のこの実施形態では、符号語中の誤りの数を決定するために新しいチェン・ブロック930が組み込まれる。誤り位置多項式Λ(x)が計算されると、チェン・ブロック930は、チェン・サーチ・アルゴリズムを適用して根の値を求める。チェン・サーチは、全ての可能な入力値に対して多項式の値を求める総当たり式アルゴリズムであり、次いで、どの出力がゼロに等しいかを決める。位置iで誤りが生じる場合、次式がゼロに等しくなる。
前に説明したように、誤り位置および誤り度合の両方についてこの誤り多項式の値を求めなければならない。チェン・サーチおよびフォーニー・アルゴリズムを共に実施するには同じタイプのハードウエアが必要なので、チェン/フォーニー・ブロック940として示すように、これら2つの機能を同じブロック内で組み合わせることができる。この実施形態では、チェン・サーチの出力のところで2つの加算器を用いる。第1加算器は偶数ステージの値を合計し、他方の加算器は奇数ステージの値を合計する。最終的なチェン・サーチ出力を形成するには、次いで、これら2つの加算器の出力を合計し、ゼロ検出ブロックが根の位置を検出する。フォーニー・アルゴリズムでは、奇数ステージ用加算器の出力も用いる。奇数ステージの合計は、フォーニー方程式の分母を表す。この合計値の逆数をとり、次いで、誤り度合多項式の値を求めることにより形成された分子の値を掛ける。この出力とゼロ検出出力のアンド(AND)演算を行う。というのは、これらの誤りの値は、実際の誤り位置でしか有効でないからである(そうでない場合には、誤りの値はゼロにすべきである)。
このように、チェン/フォーニー・ブロック940は、誤り位置多項式および誤り度合多項式を用いて誤りベクトルを生成し、それを誤り訂正ブロック950に転送する。この誤りベクトルは、符号語と同じサイズであり、誤りに対応する位置で非ゼロ値を含んでいる。他の全ての位置にはゼロが入る。誤り訂正ブロック950への別の入力は遅延ブロック960の出力である。遅延ブロック960は、受信した符号語を取り込み、この受信した同じ符号語を遅延させて出力する。この実施形態では、誤り訂正ブロック950は、LIFOブロック952と共にガロア体加算器954を使用して実施する。受信した符号語中の誤りは、ガロア体加算器954を使用して、この受信した符号語に誤りベクトルを加えることにより訂正される。LIFOブロック952を使用するのは、誤りベクトルが受信した符号語とは逆の順序で生成され、従って、受信した符号語または誤りベクトルの何れかにLIFO演算を適用して、両方のベクトル中のバイトの順序を整合させなければならないからである。誤り訂正ブロック950の出力は、復号器による元の符号語の推定値である。
リード・ソロモン復号器は、t個の誤りまでしか訂正することができない。ただし、含まれるパリティ・バイトの数は2tである。検出された誤りの数がt個よりも多い場合には、一般に、この受信した符号語を変更せず且つ訂正せずに復号器の出力に転送することが望ましい。というのは、検出された誤りの数がt個よりも多い場合、この符号語は訂正不可能だからである。従来技術のチェン/フォーニーの実施形態では、誤りの数を決定することが可能になる前に、符号語全体を処理しなければならない。そのため、この操作にはNクロック・サイクルが掛かる。ただし、Nは符号語の長さである。チェン/フォーニーの計算が完了すると、誤りの数が決定され、値tと比較される。誤りの数がt以下の場合、チェン/フォーニー・ブロックからの誤りの値は、受信した符号語とのXOR(排他的論理和)演算にかけられて誤りが訂正され、それにより最終的な復号器出力が生成される。しかし、誤りの数がtよりも多い場合、受信した符号語は、変更されずに復号器出力として転送される。従って、従来技術の方法では、チェン/フォーニー・ブロックによる処理が完了するまで、受信した符号語全体を記憶する必要がある。このような方式では、待ち時間による遅延も生じる。というのは、このブロックのNクロック・サイクル全体が完了するまで、復号器の出力を転送することができないからである。
対照的に、本発明のこの実施形態では、符号語をチェン・アルゴリズムに2回かける。1回目で誤りの数を決定し、2回目で誤りの位置を決定する。従って、チェン・ブロック930が、誤りの数が閾値tよりも多いことを検出すると、この受信した符号語は復号器出力として渡され、メモリが解放される。逆に、誤りの数が閾値t以下であるときには、このデータは、チェン/フォーニー・ブロックに渡されて、実際の誤り位置および度合が決定される。このような実施形態は、図6〜図8に示す本発明のハンドシェイク処理の実施形態と共に用いると最適であろう。このような組合せにより、チェン/フォーニー・ブロック940が誤りを計算しながら、チェン・ブロック930が次の符号語の誤りの数を決定する。従って、チェン/フォーニー・ブロック940の出力を直ちに送出し、それに対応するメモリを解放する。
誤り訂正復号器用に強化されたチェン・サーチ・セル
前に説明したように、チェン/フォーニー・ブロックは、入力として、誤り位置および誤り度合多項式という2つの多項式を受信し、出力として誤りベクトルを生成する。この誤りベクトルは、受信した符号語中の誤りの復号器の推定値を表すNバイトのベクトルである。この誤りベクトルを、受信した符号語とのXOR(排他的論理和)演算にかけて誤りを訂正し、それにより復号器による元の符号語の推定値が形成される。誤りベクトルを決定するためにチェン/フォーニー・ブロックを使用する従来型復号器は、符号語ベクトルに対して逆の順序で誤りベクトルを生成する。即ち、符号語および誤りベクトルは、誤りベクトルに(または逆に符号語に)更なる処理をかけずにXOR演算にかけることができない。一般に、この更なる処理は、誤りベクトルまたは受信した符号語の何れかに対する(最後に入力されたものが最初に出力される)LIFO操作の形式をとる。これは、入力の順序を逆にして、符号語および誤りベクトルをXOR演算にかけることができるようにするためである。残念ながら、このために、Nクロック・サイクルの遅延が生じる。ただし、Nは符号語のバイト数である。更に、一部の従来方式の実施形態では、1符号語長よりも大きいメモリ・サイズを用いるので、このメモリを2つ以上の別々のLIFOブロックに分割する必要がある。そうすると、アドレス指定が複雑になり得て、メモリ・サイズも符号語長の整数倍に制限される。
前に説明したように、チェン/フォーニー・ブロックは、入力として、誤り位置および誤り度合多項式という2つの多項式を受信し、出力として誤りベクトルを生成する。この誤りベクトルは、受信した符号語中の誤りの復号器の推定値を表すNバイトのベクトルである。この誤りベクトルを、受信した符号語とのXOR(排他的論理和)演算にかけて誤りを訂正し、それにより復号器による元の符号語の推定値が形成される。誤りベクトルを決定するためにチェン/フォーニー・ブロックを使用する従来型復号器は、符号語ベクトルに対して逆の順序で誤りベクトルを生成する。即ち、符号語および誤りベクトルは、誤りベクトルに(または逆に符号語に)更なる処理をかけずにXOR演算にかけることができない。一般に、この更なる処理は、誤りベクトルまたは受信した符号語の何れかに対する(最後に入力されたものが最初に出力される)LIFO操作の形式をとる。これは、入力の順序を逆にして、符号語および誤りベクトルをXOR演算にかけることができるようにするためである。残念ながら、このために、Nクロック・サイクルの遅延が生じる。ただし、Nは符号語のバイト数である。更に、一部の従来方式の実施形態では、1符号語長よりも大きいメモリ・サイズを用いるので、このメモリを2つ以上の別々のLIFOブロックに分割する必要がある。そうすると、アドレス指定が複雑になり得て、メモリ・サイズも符号語長の整数倍に制限される。
本発明の実施形態の一例は、符号語に対して正しく同期がとれている出力を生成する新しいチェン・サーチ・セルである。即ち、誤りベクトルも符号語ベクトルもXOR演算にかける前に逆にする必要がなく、そのため、LIFOブロックその他の反転手段が不要になる。従って、Nクロック・サイクルの遅延の必要がないので、待ち時間がより短くなる。更に、本発明のこの実施形態では、(従来技術に比べて)アドレス指定方式が簡略化され、符号語長の単なる整数倍以外のメモリ・サイズがサポートされる。例えば、符号語長の2.5倍のメモリを使用することができ、それにより、復号器が2つの符号語を処理する間に、次の符号語の一部を取り込むことができる。
図10は、チェン・サーチおよびチェン/フォーニー・ブロックの基本的な構成単位である典型的な従来技術のチェン・サーチ・セル1000を示すブロック図である。このチェン・サーチ・ブロックを用いて、誤り位置多項式Λの値を求め、それによりその根を見つける。この根の位置は、受信した符号語中の誤りのある位置に対応する。図10のチェン・サーチ・セルを用いて次式を実施する。
チェン・サーチ・セル1000は、誤り位置多項式の係数を反復して処理する。最初の反復で、マルチプレクサ1020は、処理中の符号語に対応する適切な多項式係数1010を受信し、この多項式の係数をレジスタ1030に送る。後続のクロック・サイクルで、このレジスタの出力は、まず乗算器1040に転送され、そこでα−jが掛けられ、次いで、マルチプレクサ1020によりレジスタに戻されて記憶される。このプロセスを全部でNクロック・サイクルに亘って実施する。再度、式7を参照すると、指数iは反復数を示し、指数jはチェン・サーチ・セルのステージを示す。即ち、jの値はゼロからtまで増え、そのため、ハードウエア内で実施されるチェン・サーチ・セル・ステージは全部で(t+1)個ある。
例として、このセルは、第2ステージ(j=1)を表すものと仮定する。即ち、各クロック・サイクルで、レジスタ出力にはα−1が掛けられ、その結果をレジスタに戻して記憶する。こうすると、以下の数列が生成される。
λ+λα−1X+(λα−1)α−1X2+((λα−1)α−1)α−1X3+ ...
ただし、Xnはnクロック・サイクルの遅延を表す。
λ+λα−1X+(λα−1)α−1X2+((λα−1)α−1)α−1X3+ ...
ただし、Xnはnクロック・サイクルの遅延を表す。
各項を合成することにより、最終的な数列は次式のようになる。
λ+λα−1X+λα−2X2+λα−3X3+...+λα−(N−1)XN−1
λ+λα−1X+λα−2X2+λα−3X3+...+λα−(N−1)XN−1
この実施形態に関連する問題は、誤り位置が、対応する符号語のバイトと逆の順序で生成され、そのため、誤り位置を符号語に加えて訂正が行われる前に、LIFOブロックにより逆にする必要があることである。LIFOブロックは、複数のレジスタを含むハードウエア記憶要素である。全てのレジスタが一杯になると、LIFOブロックはその出力を送出する。入力時の最後の要素が出力時には最初の要素になり、以下同様に続く。LIFOブロックを用いると2つの問題が生じる。1つは、LIFOブロックが大規模な記憶/メモリ素子であり、そのため、ICのゲート数および電力消費量が増えることである。別の問題は、LIFOブロックによりNクロック・サイクルの待ち時間が生じることである。この待ち時間が生じるのは、LIFOブロックが最初に一杯になるのにNクロック・サイクルが掛かり、最後の要素がLIFOに読み込まれるまで出力を生成することができないからである。
図11は、本発明の原理に従ってメモリ要件および遅延が共に低減された改良型チェン・サーチ・セル1100を示すブロック図である。本発明のこの実施形態の基礎となる原理は、チェン・サーチ・ブロックに、係数が逆の順序(以下では、「正規化された順序」と称する)で生成されるにも関わらず、標準チェン・サーチにより生成されるものと数学的に等価な数列を生成させることができることである。この実施形態では、正規化された順序で誤り位置を生成して符号語を訂正するのに用いる以下の2つの式(式8および式9)を実施する。
図10の従来技術のチェン・サーチ・セル1000では、誤り位置多項式の係数を、各クロック・サイクル毎に減らすαのベキ指数を「ゼロ」から始め、−j(N−1)の値まで減らして反復的に処理することを想起されたい。図11のチェン・サーチ・セル1100の実施形態では、αのベキ指数の値を−j(N−1)から始めて、ベキ指数がゼロに達するまで各クロック・サイクル毎に増やす。
従って、最初のクロック・サイクルの際に、前段乗算器1150により多項式の係数1110にα−j(N−1)が掛けられ(ただし、jはステージ番号)、それがマルチプレクサ1120に転送され、レジスタ1130に送られて記憶される。後続のクロック・サイクルで、レジスタ1130の出力は乗算器1140に転送され、そこでαjが掛けられ、次いで、マルチプレクサ1120によりレジスタに戻される。
例として、このセルは、第2ステージ(j=1)を表すものと仮定する。こうすると、以下の数列が生成される。
λα−(N−1)X+(λα−(N−1))αX2+((λα−(N−1))α)αX3+...
各項を合成すると、以下の数列が生成される。
λα−(N−1)+λα−(N−2)X+λα−(N−3)X2+...+λα−1XN−2+λXN−1
λα−(N−1)X+(λα−(N−1))αX2+((λα−(N−1))α)αX3+...
各項を合成すると、以下の数列が生成される。
λα−(N−1)+λα−(N−2)X+λα−(N−3)X2+...+λα−1XN−2+λXN−1
この数列中で生成される係数は、図10の標準チェン・サーチ・セル1000により生成されるものと、それらがこの時点では(遅延係数が逆の順序で示されるように)逆の順序である点を除いて同じであることに留意されたい。図11のチェン・サーチ・セル1100は、追加のガロア体乗算器(1つではなく2つ)を用いるが、これらは、ハードウエアで実施するのに小規模且つ安価なものである。反転させるのにLIFOブロックがもはや不要であることと、LIFOを一杯にするのに必要とされる遅延が回避されることから得られる利点および有用性は、各チェン・サーチ・セル毎に追加のガロア体乗算器を供給することの欠点を補って余りあるものである。
単一ブロック内でチェン・サーチをフォーニー・アルゴリズムと組み合わせることは、これらのアルゴリズムが共に類似の機能の実行を必要とすることから、一般の設計実務慣行となっている。図11に即して示し説明される本発明のこの実施形態の原理は、フォーニー・ブロック・セルにも同様に適用される。というのは、フォーニー・アルゴリズムが極めて類似したハードウエアを使用して誤り度合多項式を処理するからである。本発明の原理を、フォーニー・ブロック・セルおよびチェン/フォーニー・ブロック・セルの設計に拡張することができることは当業者には周知のことであろう。
多くの既存のシステムは、リード・ソロモン符号を符号化し復号する「既成」の集積回路を使用する。これらのICは、ある分量のプログラム可能性(例えば、RS(255,k)。ただし、tは1〜16個のシンボルを表す)をサポートする傾向がある。最近の傾向は、VHDL即ちベリログ(Verilog)設計(論理コアまたは知的財産コア)に向かいつつある。こうすると、標準ICに比べて多くの利点がある。論理コアを、他のVHDL即ちベリログ・コンポーネントと一体化し、FPGA(現場で書込み可能なゲート・アレイ)またはASIC(特定用途向け集積回路)に統合することができ、これにより、複数のモジュールを単一ICに組み合わせることができるいわゆる「システム・オン・チップ」設計が可能になる。生産量によりは、論理コアにより、「標準」ICよりもシステム・コストをしばしば大きく下げることができる。
ハードウエアによる実施形態の状況で本発明を説明しているが、本発明の原理をそのように限定されると解釈すべきではない。最近まで、「リアルタイム」でのソフトウエアによる実施形態は、最も簡単なリード・ソロモン符号(即ち、tの値が小さい符号)以外は全てあまりにも多くの計算能力を必要とした。ソフトウエアでリード・ソロモン符号を実施する際の主要な難点は、汎用プロセッサが、ガロア体算術演算をサポートしていないことである。例えば、ソフトウエアでガロア体乗算を実施するには、ゼロの検査、2つの対数テーブル索引、モジュロ加算および真数テーブル索引を必要とする。しかし、注意深く設計するとプロセッサ性能の増加とあいまって、ソフトウエアによる実施形態は、比較的高速なデータ・レートで動作し得る。
例示の実施形態および/または構成に関して本発明を説明してきたが、本発明は、この開示の趣旨および範囲内で更に改変することができる。従って、本出願は、本発明の一般原理を用いた本発明の任意の変形形態、使用形態または適応形態を包含するためのものである。更に、本出願は、本発明に関連し、特許請求の範囲の制限に含まれる、当技術分野において周知の、または実務上の慣行に収まるようなこの開示からの派生物を包含するためのものである。
Claims (11)
- 符号語の誤り検出に用いる復号器において、前記符号語から生成された単一の誤り位置多項式係数の値を、前記単一の誤り位置多項式係数に対応するセル内で求める方法であって、
前記符号語に対応する誤り位置多項式係数(1110)を受信する動作と、
前記符号語の処理に対応する第1クロック・サイクルで、負のベキ指数を有するガロア体乗算器(1150)により、前記誤り位置多項式係数(1110)の乗算処理を行う動作であって、前記負のベキ指数が、前記セルに対応するステージ番号(j)および前記符号語の長さ(N)の関数であり、乗算処理を行う前記動作によりセル出力が得られる動作と、
後続のN−1回のクロック・サイクルに亘って、正のベキ指数を有するガロア体乗算器(1140)により、前記セル出力の乗算処理を反復して行う動作であって、前記正のベキ指数が、前記ステージ番号(j)の関数である動作とを含む、方法。 - 前記セルが、チェン・サーチ・ブロックのチェン・サーチ・セルである、請求項1に記載の方法。
- 前記セルが、フォーニー・アルゴリズム・ブロックのフォーニー・アルゴリズム・セルである、請求項1に記載の方法。
- 前記セルが、チェン/フォーニー・ブロックのフォーニー・アルゴリズム・セルである、請求項1に記載の方法。
- 前記復号器がリード・ソロモン復号器である、請求項1に記載の方法。
- 符号語の誤り検出に用いる復号器内に組み込まれ、前記符号語から生成された単一の誤り位置多項式係数の値を、前記単一の誤り位置多項式係数に対応するセル内で求める装置であって、
前記符号語に対応する誤り位置多項式係数(1110)を受信する手段と、
前記符号語の処理に対応する第1クロック・サイクルで、負のベキ指数を有するガロア体乗算器(1150)により、前記誤り位置多項式係数(1110)の乗算処理を行う手段であって、前記負のベキ指数が、前記セルに対応するステージ番号(j)および前記符号語の長さ(N)の関数であり、乗算処理を行う前記動作によりセル出力が得られる手段と、
後続のN−1回のクロック・サイクルに亘って、正のベキ指数を有するガロア体乗算器(1140)により、前記セル出力の乗算処理を反復して行う手段であって、前記正のベキ指数が、前記ステージ番号(j)の関数である手段とを備える、装置。 - 前記セルが、チェン・サーチ・ブロックのチェン・サーチ・セルである、請求項7に記載の装置。
- 前記セルが、フォーニー・アルゴリズム・ブロックのフォーニー・アルゴリズム・セルである、請求項7に記載の装置。
- 前記セルが、チェン/フォーニー・ブロックのフォーニー・アルゴリズム・セルである、請求項7に記載の装置。
- 前記復号器がリード・ソロモン復号器である、請求項7に記載の装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/055,470 US20030140302A1 (en) | 2002-01-23 | 2002-01-23 | Chien search cell for an error-correcting decoder |
PCT/US2003/001904 WO2003063362A1 (en) | 2002-01-23 | 2003-01-22 | Chien search cell for an error-correcting decoder |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005516457A true JP2005516457A (ja) | 2005-06-02 |
Family
ID=21998028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003563104A Withdrawn JP2005516457A (ja) | 2002-01-23 | 2003-01-22 | 誤り訂正復号器用のチェン・サーチ・セル |
Country Status (8)
Country | Link |
---|---|
US (1) | US20030140302A1 (ja) |
EP (1) | EP1468498A4 (ja) |
JP (1) | JP2005516457A (ja) |
KR (1) | KR20040075953A (ja) |
CN (1) | CN1636324A (ja) |
BR (1) | BR0302821A (ja) |
MX (1) | MXPA04007075A (ja) |
WO (1) | WO2003063362A1 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100594241B1 (ko) * | 2004-01-29 | 2006-06-30 | 삼성전자주식회사 | 순방향 치엔 서치 방식의 리드 솔로몬 디코더 회로 |
US8312345B1 (en) * | 2006-09-29 | 2012-11-13 | Marvell International Ltd. | Forward error correcting code encoder apparatus |
CN101345533B (zh) * | 2007-07-11 | 2011-06-01 | 光宝科技股份有限公司 | 里得-索罗门解码中有效率的陈氏寻根方法及系统 |
JP2009100369A (ja) * | 2007-10-18 | 2009-05-07 | Toshiba Corp | 誤り検出訂正回路、半導体メモリコントローラ、および誤り検出訂正方法 |
CN104391675B (zh) * | 2008-05-12 | 2020-03-24 | 高通股份有限公司 | 用于提高处理效率的设备和处理器 |
CN101854180B (zh) * | 2010-06-01 | 2013-04-24 | 福建新大陆电脑股份有限公司 | 一种条码纠错译码装置 |
CN103444114B (zh) * | 2011-02-04 | 2017-07-14 | 马维尔国际贸易有限公司 | 用于wlan的控制模式phy |
US10103751B2 (en) * | 2011-02-28 | 2018-10-16 | Inphi Corporation | Non-concatenated FEC codes for ultra-high speed optical transport networks |
WO2012118766A1 (en) * | 2011-02-28 | 2012-09-07 | Clariphy Communications, Inc. | Non-concatenated fec codes for ultra-high speed optical transport networks |
US10063262B2 (en) | 2011-02-28 | 2018-08-28 | Inphi Corporation | Non-concatenated FEC codes for ultra-high speed optical transport networks |
EP2689332B1 (en) * | 2011-03-24 | 2017-01-04 | SanDisk IL Ltd. | Parallelization of error analysis circuitry for reduced power consumption |
CN102594370B (zh) * | 2012-02-27 | 2013-11-27 | 成都国微电子有限公司 | 一种高效低延时并行钱搜索方法和装置 |
US9467174B2 (en) * | 2014-03-14 | 2016-10-11 | Samsung Electronics Co., Ltd. | Low complexity high-order syndrome calculator for block codes and method of calculating high-order syndrome |
US11424766B1 (en) | 2020-01-31 | 2022-08-23 | Marvell Asia Pte Ltd. | Method and device for energy-efficient decoders |
KR20210150149A (ko) * | 2020-06-03 | 2021-12-10 | 삼성전자주식회사 | 신드롬과 부분 계수 정보를 병렬적으로 생성하는 에러 정정 장치 및 방법 |
CN114095039B (zh) * | 2021-10-18 | 2023-11-28 | 深圳市紫光同创电子有限公司 | 一种支持码字同步的伴随式计算方法及计算电路 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5027357A (en) * | 1988-10-14 | 1991-06-25 | Advanced Micro Devices, Inc. | ECC/CRC error detection and correction system |
WO1992013344A1 (en) * | 1991-01-22 | 1992-08-06 | Fujitsu Limited | Error correction processing device and error correction method |
DE4140018A1 (de) * | 1991-12-04 | 1993-06-09 | Bts Broadcast Television Systems Gmbh, 6100 Darmstadt, De | Verfahren und schaltungsanordnung zum decodieren von rs-codierten datensignalen |
US5396502A (en) * | 1992-07-09 | 1995-03-07 | Advanced Hardware Architectures, Inc. | Single-stack implementation of a Reed-Solomon encoder/decoder |
JP3328093B2 (ja) * | 1994-07-12 | 2002-09-24 | 三菱電機株式会社 | エラー訂正装置 |
US5971607A (en) * | 1996-05-10 | 1999-10-26 | Daewoo Electronics Co., Ltd. | Polynomial evaluator for use in a Reed-Solomon decoder |
GB2318954B (en) * | 1996-10-29 | 2001-05-23 | Daewoo Electronics Co Ltd | Reed-solomon decoder for use in advanced television |
JP3710586B2 (ja) * | 1997-02-21 | 2005-10-26 | 株式会社ルネサステクノロジ | 誤り訂正装置 |
US6415413B1 (en) * | 1998-06-18 | 2002-07-02 | Globespanvirata, Inc. | Configurable Reed-Solomon controller and method |
US6374383B1 (en) * | 1999-06-07 | 2002-04-16 | Maxtor Corporation | Determining error locations using error correction codes |
US6651214B1 (en) * | 2000-01-06 | 2003-11-18 | Maxtor Corporation | Bi-directional decodable Reed-Solomon codes |
US20030192007A1 (en) * | 2001-04-19 | 2003-10-09 | Miller David H. | Code-programmable field-programmable architecturally-systolic Reed-Solomon BCH error correction decoder integrated circuit and error correction decoding method |
US6920600B2 (en) * | 2002-01-23 | 2005-07-19 | Thomson Licensing S.A. | Dual chien search blocks in an error-correcting decoder |
-
2002
- 2002-01-23 US US10/055,470 patent/US20030140302A1/en not_active Abandoned
-
2003
- 2003-01-22 MX MXPA04007075A patent/MXPA04007075A/es unknown
- 2003-01-22 EP EP03732039A patent/EP1468498A4/en not_active Withdrawn
- 2003-01-22 KR KR10-2004-7011353A patent/KR20040075953A/ko not_active Application Discontinuation
- 2003-01-22 BR BR0302821-6A patent/BR0302821A/pt not_active Application Discontinuation
- 2003-01-22 JP JP2003563104A patent/JP2005516457A/ja not_active Withdrawn
- 2003-01-22 WO PCT/US2003/001904 patent/WO2003063362A1/en not_active Application Discontinuation
- 2003-01-22 CN CNA038026406A patent/CN1636324A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
MXPA04007075A (es) | 2004-10-29 |
US20030140302A1 (en) | 2003-07-24 |
KR20040075953A (ko) | 2004-08-30 |
CN1636324A (zh) | 2005-07-06 |
BR0302821A (pt) | 2004-04-27 |
EP1468498A1 (en) | 2004-10-20 |
WO2003063362A1 (en) | 2003-07-31 |
EP1468498A4 (en) | 2006-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2005516459A (ja) | 誤り訂正復号器内の二重チェン・サーチ・ブロック | |
JP2005516458A (ja) | 復号器内構成要素ブロックによるメッセージ処理 | |
JP3996205B2 (ja) | 連接符号データの送受信方法および送受信装置 | |
KR101355761B1 (ko) | 통신 시스템의 다중 필드 기반 코드 발생기 및 디코더 | |
EP2136473B1 (en) | Method and system for transmitting and receiving information using chain reaction codes | |
US7246294B2 (en) | Method for iterative hard-decision forward error correction decoding | |
JP2005516457A (ja) | 誤り訂正復号器用のチェン・サーチ・セル | |
Shrivastava et al. | Error detection and correction using Reed Solomon codes | |
US8631307B2 (en) | Method for encoding and/or decoding multimensional and a system comprising such method | |
Panem et al. | Polynomials in error detection and correction in data communication system | |
Chaudhary et al. | Error control techniques and their applications | |
Sonawane et al. | Implementation of RS-CC Encoder and Decoder using MATLAB | |
CN115567164A (zh) | 向量信令码信道的流水线式前向纠错方法和装置 | |
US7155656B1 (en) | Method and system for decoding of binary shortened cyclic code | |
Chand et al. | FEC & BCH: study and implementation on VHDL | |
Manu et al. | A New approach for parallel CRC generation for high speed application | |
Agrawal | Implementation of reed solomon error correcting codes | |
Shimizu et al. | FPGA-based reconfigurable adaptive FEC | |
Tingilkar et al. | Improvement Of Memory Data Corrections By Using CRC Technique For Fault Torrent Applications | |
Mohan | VHDL IMPLEMENTATION OF REED SOLOMON CODING | |
Naik et al. | A NOVEL DESIGN AND SIMULATION OF CYCLIC REDUNDANCY CHECK ENCODER AND DECODER |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060404 |