JP2007514371A - ガロア体乗算のためのルックアップテーブルを使用するリード・ソロモン符号の符号化および復号化 - Google Patents

ガロア体乗算のためのルックアップテーブルを使用するリード・ソロモン符号の符号化および復号化 Download PDF

Info

Publication number
JP2007514371A
JP2007514371A JP2006543834A JP2006543834A JP2007514371A JP 2007514371 A JP2007514371 A JP 2007514371A JP 2006543834 A JP2006543834 A JP 2006543834A JP 2006543834 A JP2006543834 A JP 2006543834A JP 2007514371 A JP2007514371 A JP 2007514371A
Authority
JP
Japan
Prior art keywords
symbol
symbols
remainder
message
galois field
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006543834A
Other languages
English (en)
Other versions
JP2007514371A5 (ja
JP4777258B2 (ja
Inventor
リベロル,ボリス
リー,ユーン,ヤン
Original Assignee
アナログ・デバイシズ・インコーポレーテッド
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 アナログ・デバイシズ・インコーポレーテッド filed Critical アナログ・デバイシズ・インコーポレーテッド
Publication of JP2007514371A publication Critical patent/JP2007514371A/ja
Publication of JP2007514371A5 publication Critical patent/JP2007514371A5/ja
Application granted granted Critical
Publication of JP4777258B2 publication Critical patent/JP4777258B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • 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/158Finite field arithmetic processing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/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/159Remainder calculation, e.g. for encoding and syndrome calculation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6569Implementation on processors, e.g. DSPs, or software implementations

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)

Abstract

データを符号化するための方法および装置が提供される。この方法は、(a)符号生成係数を乗じた第1の構成要素値の第1のテーブルおよび前記符号生成係数を乗じた第2の構成要素値の第2のテーブルを設けるステップ、(b)メッセージシンボルおよび高次剰余シンボルに基づきガロア体要素を特定するステップ、(c)前記ガロア体要素を第1および第2の構成要素に分離すること、(d)前記第1の構成要素および生成係数指標を使用して、前記第1のテーブルにおける、1つまたは2つ以上の第1のテーブル値にアクセスし、かつ前記第2の構成要素および生成係数指標を使用して、前記第2のテーブルにおける、1つまたは2つ以上の第2のテーブル値にアクセスするステップ、(e)等しい生成係数指標を有する、第1および第2のテーブル値と、先の剰余シンボルとに基づいて、現在剰余シンボルを特定するステップ、(f)符号生成器の各生成係数に対してステップ(e)を実行して、1組の剰余シンボルを提供するステップ、および(g)符号語における各メッセージシンボルに対して、ステップ(b)〜(f)を実行して、前記符号語のメッセージシンボルと共に伝送される検査シンボルを構成する1組の最終剰余シンボルを提供するステップを含む。

Description

発明の分野
本発明は、データの符号化に関し、より詳細には、リード・ソロモン(Reed-Solomon)符号化のための方法および装置に関する。
発明の背景
誤り検出および訂正のために、リード・ソロモン符号を使用して情報を送受信する処理手順は以下のように説明することができる。ビットのストリームとして普遍的に表現される、送信すべき情報は、ある大きさmの小ブロックに分割される。mビットのこれらの小ブロックは、2個の可能なすべてのmビットブロックの集合と、次元2のガロア体(GF:Galois Field)、すなわちGF(2)のすべての2個の要素の集合との間に1対1の写像が存在するという意味において、有限体(またはガロア体)と呼ばれる数学的構造の要素によって識別することができる。ガロア体それ自体は、その要素が0と1である、「基底」2進体("ground" binary field)、GF(2)からの係数を用いて、次数<mである全多項式の集合として構築することができ、その2つの体演算である、加算および乗算は次のように定義される:加算は、順序づけられたm−タプル(m-tuple)の多項式係数についての「排他的OR」(XOR)演算として実行され、乗算は、次数mのある「原始」2進多項式("primitive" binary polynomial)をモジュロ(modulo)とする多項式乗算として実現され、ここで、「原始」2進多項式は、既約(irreducible)であり(より低次の2進多項式の積に因数分解することができない)、さらに、d<2−1であるx−1の形態のいかなる2進多項式も割ることがない。
最も重要かつ一般的な場合が、m=8であり、この場合には、そのようなブロックのそれぞれはバイトとして表現されて、任意の種類のコンピュータによって便宜に取り扱うことが可能であり、したがって、以下の考察は、バイトがGF(256)の要素である場合に対するものであり、「バイト」はm≠8の次元2のガロア体の要素、または「シンボル」であると理解される。GF(256)の構築を可能にする原始多項式は、p(x)=x+x+x+x+lである。
情報(バイトまたはシンボル)の基本ユニットおよび対応するガロア体(GF)を設定した後に、送信すべき情報は、等しい大きさkのシンボルの群に分割され、この大きさkは、符号の所望の誤り訂正能力に基づいて求められる。そのような群のそれぞれは、「メッセージ」と呼ばれる。メッセージは、さらに、次数k−1のGF上の多項式M(x)として解釈される。
Figure 2007514371
この多項式の昇順の係数mは、GF要素として処理される元のビットのストリームからそれらが得られた順序での、情報シンボルである。
t個の誤りを訂正することのできるリード・ソロモン符号を構築するために、生成多項式として知られている、次数2tの多項式G(x)が以下の式に従って定義される。
Figure 2007514371
ここで、aは、2つの重要な(かつ関係する)特性を有するGFのいわゆる「原始」元("primitive" element)を表わす:第1に、それは、式p(a)=0を満足し、第2に、結果として、GFの全非ゼロ要素を原始元のベキ数として表わし、GF乗算の演算下で、アベール群(abelian group)(または可換群(commutative group))を形成することができる。このテーブルを使用してGF要素の乗算を実行する便利な方法を確立する、「逆対数(anti-log)」テーブルの生成を可能にするのは、正にこの特性である。
次いで、x2tを乗じたメッセージ多項式M(x)の、生成多項式G(x)による除算の剰余R(x)が求められる。
Figure 2007514371
剰余は、次数2t−1の多項式であり、最終的に、この多項式の2t個の係数が、検査シンボルとして使用され、この検査シンボルは、「符号語(codeword)」を体系的形態で含む、k+2t個のシンボルのストリングを形成する、k個のメッセージシンボルに添付される。符号語の長さは、GF内の非ゼロ要素の数、n−1を超えてはならない。したがって、通信チャネル上を実際に伝送されるメッセージは、次の多項式として表わすことができる。
Figure 2007514371
ここで、rは検査シンボル、すなわちt個までの誤りの検出および訂正を可能にする冗長シンボルである。
したがって、符号化のタスクは、その係数が、何らかのGFのシンボルである多項式の除算を実行することからなる。GFにおける計算を行う、従来式のソフトウエア手法は、2つのルックアップテーブル(lookup table)を使用することを基礎としており、この表に、GFシンボルの多項式形態から指数形態への変換および逆変換が格納されている。この方法は、(ここでのGF(2)の主要な場合に対して)以下のように要約することができる。
1.多項式形態におけるシンボル(GFの要素)は、バイトとして表わされる:
Figure 2007514371
2.シンボルの合計は、ビット単位XOR演算:f+g=f^gとして求めることができる。
3.多項式形態における原始元aは、a=(00000010)で表わされ、これは、多項式表記では、a(x)=xに対応する。
4.それぞれの非ゼロシンボルsは、あるベキ乗s=aまで拡大された原始元aである。2進多項式による多項式代数乗算を使用して、離散対数テーブルlog_tableと、指数テーブルexp_tableとが事前計算されて、(非ゼロ)要素の指数(ベキ)表現と多項式(バイト)表現との間の変換を、次のように容易にする。
Figure 2007514371
これらのテーブルを使用してGFシンボルを乗算するためには、オペランドuおよびvを仮定して以下の演算の連鎖を実行しなくてはならず、結果rはバイト形態となる:
Figure 2007514371
ここで、%はモジュロ演算を表わす(x%255は、xを255で除算した剰余である)。
このアプローチに基づくGF上での乗算の結果を計算する速度は、テーブルへの多重アクセスが必要であり、指数テーブル中へのエントリのアドレスを加算によって計算しなければならないということによって制限されることは明らかである。多くの場合に、修正アドレスレジスタを介するアクセスには、2〜3の待ち受けサイクルが必要であり、そのために、1回のGF乗算の合計時間は、シンボル(バイト)当り、10〜12クロックサイクルとなり得る。このことから、リード・ソロモン符号のソフトウエア実装は困難な問題となり、例えば、188データバイトと16の検査バイトを有する(204,188,16)リード・ソロモン符号の典型的な場合において、1つの符号語を符号化するのに、以下に記述するように、188*16*(10〜12)≒30〜36Kサイクルが必要となる。したがって、例えば、4Kシンボル/秒の伝送速度のADSL用途に対して、符号器動作だけのためのMIPSの全消費は、120〜144MIPSであり、これは高すぎるものである。
発明の概要
本発明の第1の観点によれば、データを符号化するための方法が提供される。この方法は、(a)符号生成係数を乗じた第1の構成要素値の第1のテーブルおよび前記符号生成係数を乗じた第2の構成要素値の第2のテーブルを設けるステップ、(b)メッセージシンボルおよび高次剰余シンボルに基づきガロア体要素を特定するステップ、(c)前記ガロア体要素を第1および第2の構成要素に分離するステップ、(d)前記第1の構成要素および生成係数指標を使用して、前記第1のテーブルにおける、1つまたは2つ以上の第1のテーブル値にアクセスし、かつ前記第2の構成要素および生成係数指標を使用して、前記第2のテーブルにおける、1つまたは2つ以上の第2のテーブル値にアクセスするステップ、(e)等しい生成係数指標を有する、第1および第2のテーブル値と、先の剰余シンボルとに基づいて、現在剰余シンボルを特定するステップ、(f)符号生成器(code generator)の各生成係数に対してステップ(e)を実行して、1組の剰余シンボルを提供するステップ、および(g)符号語における各メッセージシンボルに対して、ステップ(b)〜(f)を実行して、前記符号語のメッセージシンボルと共に伝送される検査シンボルを構成する、1組の最終剰余シンボルを提供するステップを含む。
本発明の第2の観点によれば、データの符号化のための装置が提供される。この装置は、符号生成係数を乗じた第1の構成要素値を含む、第1のルックアップテーブル、符号生成係数を乗じた第2の構成要素値を含む、第2のルックアップテーブル、およびプロセッサを含む。このプロセッサは、メッセージシンボルおよび高次剰余シンボルに基づいてガロア体要素を特定する手段と、ガロア体要素を第1および第2の構成要素に分離する手段と、前記第1の構成要素および生成係数指標を使用して、前記第1のルックアップテーブル内の1つまたは2つ以上の第1のテーブル値にアクセスする手段と、前記第2の構成要素と、生成係数指標とを使用して、前記第2のルックアップテーブル内の1つまたは2つ以上の第2のテーブル値にアクセスする手段と、等しい生成係数指標を有する、第1および第2のテーブル値に基づいて、現在剰余シンボル、および符号生成器の各生成係数に対して、先の剰余シンボルを特定して、1組の剰余シンボルを提供する手段とを含む。符号語の各メッセージシンボルが処理されて、この最終剰余シンボルは、符号語のメッセージシンボルと共に伝送すべき検査シンボルを構成する、1組の最終剰余シンボルが得られる。
本発明をより詳細に理解するために、参照により本明細書に組み入れてある、添付図面を参照する。
詳細な説明
本発明のリード・ソロモン(RS)符号化過程によるメッセージの符号化の具体的なタスクを実行する、より効率的な方法を説明するためには、それに伴う計算についての詳細な説明が必要となる。この問題は、x2tを乗じたメッセージ多項式M(x)の、符号生成多項式G(x)による除算の剰余を求めることとして定式化される。
この剰余はメッセージを反復することによって、すなわちその長さを増大させ、すでに受け取ったメッセージのバイトを左にシフトし、右から新しいバイトを入れて、その結果、第1のステップにおいて、メッセージM(x)が、1バイトmだけを含むようにして、計算することができる。
Figure 2007514371
また、メッセージM(x)は2つのバイト、mおよびmを含み、その第1のバイトmが1位置だけ左にシフトされていると考えられ、これは多項式表記において次のように書くことができる。
Figure 2007514371
生成多項式G(x)の「テイル(tail)」g(x)を、次のように導入するのが便利であり、
Figure 2007514371
これには、次の特性がある。
Figure 2007514371
この特性を用いて、第1のステップにおいて、メッセージの最初のシンボルだけが符号化される(剰余rが求められる)とき、次の関係が成り立つ。
Figure 2007514371
したがって、反復は次式で開始される。
Figure 2007514371
第2ステップの後に、剰余を以下のように計算することができる。
Figure 2007514371
したがって、
Figure 2007514371
この手法を用いて、一般に、ステップk+1後の剰余rk+1(x)を、先のステップkにおける剰余r(x)および新入力バイトmk+1からまったく同じ方法で、以下のように計算することができる。
Figure 2007514371
この計算は、2t個のシンボルからなる、一般名称では「シフトレジスタ」rを使用して実現することができる。
Figure 2007514371
各反復において、2t個のシンボルが左にシフトされ、ゼロのシンボルが右からシフトされて入り、最左端シンボルr2t−1はシフトされてレジスタから出される―この最左端シンボルは、入ってくるシンボルと加算(XOR処理)されて、「フィードバック」シンボルを形成する。
Figure 2007514371
これらの定義を使用して、剰余R(x)は、次式によって反復処理される。
Figure 2007514371
剰余の反復を表す概略図を図1に示してある。図1において、メッセージシンボル10(ms)が、高次剰余46(r)と合計されて、ガロア体要素14(f)が得られる。上記のように、ガロア体加算は、排他的OR演算として実行される。ガロア体要素14に、符号生成係数20、22、24、26(g1、g、g、g)を乗じて、中間値30、32、34、36が得られる。この中間値は、先の剰余シンボルと合計されて、現在剰余シンボルが得られる。すなわち、積fgはゼロと合計されて、剰余シンボル40(r)が得られる;積fgは先の剰余40と合計されて、現在剰余シンボル42(r)が得られる;積fgは先の剰余42と合計されて、現在剰余シンボル44(r)が得られる;積fgは先の剰余44と合計されて、現在剰余シンボル46(r)が得られる。
このプロセスは、符号語中の各メッセージシンボル10に対して、反復される。符号語中のすべてのメッセージシンボルが処理された後に、剰余シンボル40、42、44、46は、メッセージシンボルと共に伝送するための、検査シンボルを表す。したがって、符号語は、メッセージシンボルおよび検査シンボルを含む。図1の例は、メッセージシンボルと共に伝送するための、4つの検査シンボルを生成し、符号語中の2つの誤りを訂正することができる。より一般的な例において、符号生成器は、16の符号生成係数gを含み、符号語中の8つの誤りを訂正するための16の検査シンボルを生成する。
剰余多項式の計算に従来式ルックアップテーブル手法を使用する場合には、計算の流れにおける主なボトルネックは、GFにおける乗算の結果の反復計算であることがわかる。メッセージの各バイトに対して、2t回の乗算が必要であり、そのためにn個の情報バイトと2t個の検査バイトを有する1つの符号語を符号化するのに、2nt回のGF乗算を実行しなければならない。
t=8、n=239以下のGF(256)からのシンボルについて、8つの誤りを訂正するリード・ソロモン符号の重要な場合において、合計3824回のGF演算が実行される。10〜12サイクル/演算とすると、これは、最大40Kサイクル/符号語にのぼる。
Yangに対して2002年3月19日に発行のされた米国特許第6,360,348号においては、剰余多項式の1回の反復に伴うすべてのGF演算は第2オペランドの同じ組、すなわち符号生成多項式g(x)の2t個の係数について実行されるという観察に基づいて計算を容易にするために、ルックアップテーブルが構築される。それに対応して、GFの全n個の要素を符号生成多項式g(x)の2t個の係数によって乗算した結果の2t*n個の値が、事前計算されてルックアップテーブルに格納され、それによってテーブル中の各エントリF(f,i)の内容は、次式で定義される。
Figure 2007514371
ここで、fは多項式形態におけるガロア体要素を表し、gは符号生成多項式の係数であり、符号
Figure 2007514371
は、ガロア体乗算演算を表す。
この手法を使用する場合には、訂正される誤りの数が比較的小さい場合、例えば8個の誤りであり、使用されるガロア体がGF(256)である場合でも、テーブルの大きさは、4Kバイトである(16*256*1バイト、16は、8つの誤りを訂正するための検査バイトの数である)。RS符号用のいくつかの異なる選択肢を実行しなくてはならず、例えば、ADSL用途においていくつかのレーテンシ経路を使用する場合に、1つのレーテンシ経路における符号語は、16の検査バイトを有し、別のレーテンシ経路において、12の検査バイトを有し、この場合に、メモリサイズは7Kbなどとなる。
本発明の特徴によれば、GF演算
Figure 2007514371
―ただし、fは任意のGF要素を表し、gは符号生成多項式の係数であり、符号
Figure 2007514371
は、ガロア体乗算演算を表す―は2つの小さなテーブルを使用して2段階で実行される。
1)任意のGF要素fは、その「下位」および「上位」部分の合計として最初に表わされ、例えば、GF(256)において、次のように書ける。
Figure 2007514371
ここで、HおよびLは、上位マスクおよび下位マスクを使用する2回のAND演算で、fから得ることができる。
Figure 2007514371
2)GFMUL演算
Figure 2007514371
は、ガロア体の特性を用いて、次のように実行することができる。
Figure 2007514371
式(23)〜(25)の演算を、図2に示してある。図のように、ガロア体要素14は、式(24)による上位マスクおよび下位マスクを用いて、上位半語(high halfword)50(H0)と下位半語(low halfword)52(OL)とに分離される。上位半語および下位半語には、それぞれ、符号生成係数20、22、24、26を乗じる。それぞれの積が合計されて、中間値が得られる。この中間値は、先の剰余シンボルと合計されて、現在剰余シンボルが得られる。図2のアーキテクチャは、ルックアップテーブルと組み合わされ、これによって有利な結果が達成される。
3)式(25)を用いて、2つの小さなルックアップテーブルを構築し、それぞれのテーブルは、「下位」および「上位」の半語の16のすべての可能な場合によって、生成多項式係数gの組をGFMUL(ガロア体乗算)した、連続的な結果を保持する:
Figure 2007514371
4)GF(256)および符号生成多項式の16の係数の場合における、各テーブルの大きさは256バイトであり、2つのテーブルの合計の大きさは512バイト―先行技術手法におけるよりも8分の1の大きさであり、合計実行時間は約50%長いだけであるが、この理由は、演算の約50%がGFMUL演算の実行と直接に連結されていないためである。
1ステップ(1情報シンボル/バイト)による剰余の反復に関与する演算は、次の順序で実行することができる。
Figure 2007514371
Figure 2007514371
i=1 : 2t-1に対して、
Figure 2007514371
各反復には、ルックアップテーブルへの2回のアクセスと、任意のプロセッサにおいて容易に利用可能である、それに続くXOR演算とが必要である。
ルックアップテーブルTH,TLを使用する符号生成を、図3に図式的に示してある。上述のように、第1のルックアップテーブルは、符号生成係数のそれぞれを乗じた上位半語H0の値を包含し、第2のルックアップテーブルは、符号生成係数のそれぞれを乗じた下位半語0Lの値を包含する。上位半語値を、係数指標と共に使用して、テーブルTHにアクセスすることによって、1つまたは2つ以上の上位テーブル値54が得られ、下位半語値を、係数指標と共に使用して、テーブルTLにアクセスすることによって、1つまたは2つ以上の下位テーブル値56が得られる。ある係数指標(coefficient index)を有する上位テーブルおよび下位テーブルのそれぞれのテーブル値を、合計演算60によって合計することによって、中間値が得られ、この中間値を、合計演算62において、それぞれの先の剰余シンボルと合計することによって、現在剰余シンボル40、42、44、46が得られる。以下に考察するように、これらのルックアップテーブルから、符号生成を実行するシステムのアーキテクチャに応じて、合計すべき1組のテーブル値、または合計すべき2組以上のテーブル値が得られる。
本発明の一態様によるルックアップテーブルの内容を図4Aおよび図4Bに示してある。図4Aは、上位半語テーブル70(TH)を示し、図4Bは、下位半語テーブル72(TL)を示す。図のように、テーブル70は、上位半語H0の可能なそれぞれの値に、符号生成係数のそれぞれを乗じた積を包含する。したがって、テーブル70における各エントリはgHの値を含み、ここでiは、0から2t−1の範囲であり、Hは0から上位半語Hの最大値までの範囲である。同様に、テーブル72における各エントリはgLの値を含み、ここでiは、0から2t−1の範囲であり、Lは0から下位半語Lの最大値までの範囲である。メッセージシンボルがバイトである、一般的な場合に対して、上位半語は、(16進表記を用いて)00からF0までの範囲の16の可能な値を有する。
符号生成係数の数は、所望の検査シンボルの数によって決まり、8個の検査シンボルの場合には、16とすることができる。同様に、テーブル72は、下位半語0Lの可能なそれぞれの値に、符号生成係数のそれぞれを乗じた積を包含する。メッセージシンボルがバイトである場合には、下位半語値は0からFまでの範囲となる。したがって、メッセージシンボルがバイトであり、符号生成器が16個の係数を有する場合に対して、ルックアップテーブル70、72のそれぞれは、256のエントリを有する。図4A、4Bの例において、テーブル70、72は、各行が、1つの半語値に対応する積を包含するように構成されている。以下に考察するように、この構成によって、一般的なプロセッサにおける、並列実行が容易になる。
8ビットガロア体要素が上位半語と下位半語に分割されて、2つのルックアップテーブルが使用される態様に関連して、本発明を説明した。他の態様においては、それぞれのガロア体要素は、8ビットよりも大きくてもよい。さらに、各ガロア体要素は、2を超える構成要素に分割して、2を超えるルックアップテーブルを使用してもよい。16ビットガロア体要素を考える。米国特許第6,360,348号に記載された手法は、2Mバイトルックアップテーブルを必要とする。それぞれの16ビットガロア体要素が2つの構成要素に分離された一態様においては、それぞれが8Kバイト(16係数×256の2分GF要素値(half GF element value)×2バイト/エントリ)の2つのルックアップテーブルが必要である。それぞれの16ビットガロア体要素が4つの構成要素に分割されている一態様においては、それぞれが512バイト(16係数×16の4分GF要素値(quarter GF element value)×2バイト/エントリ)の、4つのルックアップテーブルが必要である。
これはすべての現代のDSPに当てはまることであるが、8ビット幅よりも大きいデータアクセスワードサイズを有する任意のDSP(ディジタル信号プロセッサ)に対して、この態様のさらなる利点を達成することが可能であり、その理由は、テーブルアクセスは、単調増加する第2指標で実施することが可能であり、それによって、連続アクセスの1次元配列としてテーブルを使用することが可能であり、シフトレジスタセルは厳密に連続順序で使用されることによるものである。これによって実行が大幅に高速化し、その理由は、第1に、1サイクルにおいて複数エントリが読み取られこと、第2に、XOR演算の実行も、複数ガロア体シンボルについて同時に、例えば32ビットデータワードパスを備えるDSPに実装されるときには一度に4シンボル、64ビットデータワードパスを有するDSPに対して8シンボル、などのように行うこともできるためである。例えば、ある種の制約がある32ビットデータパスを有する、Blackfin DSP上の特定の実装は、1.5サイクル/検査バイト/データバイトで動作し、これは従来式方法よりも5〜6倍速く、組込みガロア体乗算器を有するDSPよりも2倍の速さである。
本発明の一態様による、データを符号化するためのディジタル信号プロセッサのブロック図を図5に示してある。w個のガロア体要素のワード幅を有するディジタル信号プロセッサにおいてデータを符号化するプロセスを図6に示してある。図5の態様において、ディジタル信号プロセッサのコアプロセッサ100は、メッセージシンボルmを受け取り、符号語のメッセージシンボルと共に伝送すべき、検査シンボルrを供給する。コアプロセッサ100は、上位半語ルックアップテーブル110にアクセスして、テーブル値gH、gi+lH、 gi+2H、 gi+3Hを受け取る。コアプロセッサ100は、また、下位半語ルックアップテーブル112にアクセスして、テーブル値gL、 gi+1L、 gi+2L、gi+3Lを受け取る。図5の態様において、メッセージシンボルmはバイトであり、コアプロセッサ100は32ビットのワード幅を有する。したがって、コアプロセッサ100は、図5に示し、以下に説明するように、ルックアップテーブル110およびルックアップテーブル112のそれぞれから、サイクル当たり4つのテーブル値を処理することができる。異なるワード幅を有するコアプロセッサは、サイクル当たり、より多くの、または少ないテーブル値を処理することもできる。
再び図6を参照すると、次メッセージ信号mが受け取られて、ステップ150において、処理される。ステップ152において、ガロア体要素fが、式(28)に示すように、メッセージシンボルおよび高次剰余シンボルから計算される。ステップ154において、ガロア体要素は、式(23)、(24)に示すように、第1および第2の構成要素、H0および0Lに分離される。この態様においては、ガロア体要素は、上位半語と下位半語とに分離される。しかしながら、その他の態様においては、ガロア体要素は、2を超える数の構成要素に分離することもできる。
ステップ156において、上位半語H0および指標iを使用して、ルックアップテーブル110(図5)からのw個のテーブル値にアクセスされる。指標iは、生成係数の指標gである。符号語が16個の検査シンボルを有し、符号生成多項式が16の係数を有する例においては、指標iは、0から15の範囲である。ステップ156において、下位半語0Lおよび指標iを使用して、ルックアップテーブル112(図5)からwテーブル値が得られる。上記のように、同時にアクセスされるテーブル値の数は、ガロア体要素の単位で表される、コアプロセッサ100のワード幅に依存する。コアプロセッサ100が32ビットワード幅を有し、メッセージシンボルがバイトである典型的な場合に対して、ルックアップテーブル110、112のそれぞれにおいて、w=4のテーブル値が同時にアクセスされる。
ステップ160およびステップ162において、ステップ156においてアクセスされたw組のテーブル値のそれぞれに対して、剰余シンボルrが計算される。より具体的には、ステップ160において、中間値sが、式(30)に示すように、w組のテーブル値のそれぞれに対して計算される。1組のテーブル値は、ルックアップテーブル110からのテーブル値およびルックアップテーブル112からのテーブル値を含み、この2つのテーブル値は、同一の生成係数指標を有する。次いで、現在剰余シンボルrが、はやり式(30)に示すように、w個の中間値sのそれぞれに対して、中間値sと、先の剰余シンボルri−1とに対する排他的OR演算によって計算される。すなわち、ステップ162において、w個の剰余シンボルが計算される。
ステップ170において、2t個の剰余シンボルが計算されたかどうかについての判定が行われ、ここで2tは、符号生成多項式における係数の数を表す。2t個の剰余シンボルが、計算されていない場合には、ステップ172において、指標iはwだけ増分される。次いで、プロセスは、ステップ156に戻り、テーブル110におけるw個の新テーブル値、およびテーブル112におけるw個の新テーブル値にアクセスする。ステップ156、160、162、170、172を含むループが、2t個の剰余シンボルが計算されるまで反復される。w=4、かつ2t=16である例に対して、このループの4回の反復が必要である。
2t個の剰余シンボルが計算されている場合には、ステップ180において、符号語の末端に達したかどうかの判定が行われる。典型的な符号語は、188のメッセージシンボルを含むことができる。符号語の末端に到達していない場合には、プロセスは、ステップ150に戻り、次のメッセージシンボルmが処理される。符号語の末端に到達している場合には、ステップ182において、2t個の検査シンボルが出力される。したがって、例えば、符号語の188のメッセージシンボルと共に伝送するために、16の検査シンボルを出力することができる。
ADSLモデムなどの、いくつかの用途においては、RS符号のパラメータは、「オンザフライ(on the fly)」に設定して、1つのADSLチャネル内において、異なる伝達チャネル(bearer channel)に対して変えることができる。この場合には、符号化の2つの方法を、本発明に基づいて実現することができる。第1の方法によれば、可能な最大数の検査バイトに対するテーブルだけが生成され、誤り訂正能力の低い符号を使用する場合には、符号器は次のように2段階で動作する。
第1に、より高い次数の符号生成多項式G2tは、より低次の符号生成多項式G2sを要素として包含することがわかる。
Figure 2007514371
ここで、
Figure 2007514371
また、d=t−sは、符号の誤り訂正能力間の差である。
それに対応して、次数nのメッセージ多項式は、2つの部分―高次のn−2d項および低次の2d項に区分され、
Figure 2007514371
符号生成多項式をそれに分割するべき、シフトされたメッセージ多項式は、次のように表される。
Figure 2007514371
ここで、高次2tの符号生成多項式に関係する、メッセージの最初のn−2dバイトに対する剰余は、次式のように得られる。
Figure 2007514371
ここで、第1項は次のように書くことができる。
Figure 2007514371
ここで、
Figure 2007514371
同じ論理に従って、2t個からなる「長い」剰余R(x)は、2つの部分、すなわち高次2d項と低次2s項に分解される。
Figure 2007514371
そして、最終的に、符号化を次の式によって実行することができる。
Figure 2007514371
これは、比較的短い(2dバイトだけの)メッセージを符号化すること、
Figure 2007514371
およびこの演算の結果を、「長い」符号化の「短縮された」結果に加えることと等価である。
Figure 2007514371
結果的に、符号化の全体連鎖は、次のように説明することができる。メッセージM2d(x)の最後の2dバイトを、得られた剰余r2d(x)の最初の(最左端の)2dバイトに加え、そして、これらの2dバイトを、短いメッセージとして取り扱って、従来式方法を用いて符号化し、この結果を、「長い」剰余R(x)の残りのバイトに加える―これは符号化の最終結果である。
この方法には、2dバイトの追加の「再符号化」に起因するオーバヘッドD(t、d)があり、これは、符号化されるバイト数および結果
Figure 2007514371
におけるバイト数に比例し、ここでKは、従来式の符号化に対して必要なサイクル数―通常は10〜12―である。このオーバヘッドは、d=t/2 Kに対して最大値を有し、K=12、t=8について768サイクルのレベルとすることができ、これは符号化の主要部分の約20%を構成する。
別の選択肢は、任意の必要な符号パラメータに対して、オンザフライで「右」テーブルを生成することであり、これは追加のメモリを必要とすることがある。広いデータパスを有するDSPを完全に利用するが、しかしこの場合には、本発明の一観点に従って、検査バイトが4の倍数の整数でない場合に、テーブルは、32*4kのサイズで生成され、ここで4kは、検査バイトの指定数より上であって、それに最も近い4の倍数の整数であり、例えば、14に対して16、10に対して12などである。残りの64バイトは、ゼロで埋められて、それによってこれらの値が読み取られるときに、それらが計算の結果に影響を与えないようにする。
符号器において使用される同一のテーブルを、以下の方法で、復号器において、シンドローム(syndrome)を計算するのに使用することができる。システム的形態の受け取った符号語は、最初に、再符号化される―符号器機構が、符号語の情報バイトについて実行されて、実際に受け取られる検査バイトの列の「コピー」が得られる。次いで、この再構築された「コピー」が、論理AND演算子を用いて、シンドロームと緊密に関係する多項式を形成する、実際に受け取る検査バイトとビット毎に比較される―すなわち、GFの原始元の連続ベキ乗に基づくこの多項式の値は、まさにシンドロームの構成要素であり、その理由は次の関係である。
Figure 2007514371
この理由は、以下の符号生成多項式の定義によりG(a)=0であるためである。
Figure 2007514371
したがって、シンドロームの蓄積は、従来式手法を用いて、長さnバイトの元の符号語よりもずっと短い2tバイトのシーケンスに対して実行することができる。これには、(2t−1)回のノントリビアルなGF乗算を必要とし、これは、バールカンプ・マッセイ(Berlekamp-Massey)またはユークリッドのアルゴリズムを実装して、誤りロケータ多項式の係数を発見するのに必要な演算と同程度のものである。GF乗算は、オペランドの1つの一定の組に対して実行されるので、この計算の速度は、実際には、一般GF乗算よりも30〜50%高く、したがって、(255、239、16)RS符号の場合には、最大225*6=1350サイクルが必要であり、これは30%のオーバヘッドである。
これまで、本発明の概念およびいくつかの例証的態様について説明したが、本発明は様々な方法で実施が可能であること、および修正形態および完全形態を当業者は容易に思いつくことは、当業者には明白である。したがって、与えられた例は、限定的なものではなく、例示の目的だけで提示したものである。本発明は、添付のクレームとその均等物によって必要とされる場合にのみ限定される。
リード・ソロモン符号化の従来技術方法の概略ブロック図である。 符号生成係数を乗じる前にガロア体要素が半語符号に分離される、リード・ソロモン符号化の方法を示す、概略ブロック図である。 本発明の一態様による、リード・ソロモン符号化を示す、概略ブロック図である。 本発明による、リード・ソロモン符号化のためのルックアップテーブルの態様を示す図である。 本発明による、リード・ソロモン符号化のためのルックアップテーブルの態様を示す図である。 本発明の一態様による、ディジタル信号プロセッサにおけるリード・ソロモン符号化を示す、概略ブロック図である。 本発明の一態様による、リード・ソロモン符号化を示す、フローチャートである。

Claims (24)

  1. (a)符号生成係数を乗じた第1の構成要素値の第1のテーブルおよび前記符号生成係数を乗じた第2の構成要素値の第2のテーブルを設けるステップ;
    (b)メッセージシンボルおよび高次剰余シンボルに基づきガロア体要素を特定するステップ、
    (c)前記ガロア体要素を第1および第2の構成要素に分離するステップ、
    (d)前記第1の構成要素および生成係数指標を使用して、前記第1のテーブルにおける、1つまたは2つ以上の第1のテーブル値にアクセスし、かつ前記第2の構成要素および生成係数指標を使用して、前記第2のテーブルにおける、1つまたは2つ以上の第2のテーブル値にアクセスするステップ、
    (e)等しい生成係数指標を有する、第1および第2のテーブル値と、先の剰余シンボルとに基づいて、現在剰余シンボルを特定するステップ、
    (f)符号生成器の各生成係数に対してステップ(e)を実行して、1組の剰余シンボルを提供するステップ、および
    (g)符号語における各メッセージシンボルに対して、ステップ(b)〜(f)を実行して、前記符号語のメッセージシンボルと共に伝送される検査シンボルを構成する1組の最終剰余シンボルを提供するステップ、を含むデータを符号化する方法。
  2. ステップ(b)は、メッセージシンボルおよび高次剰余シンボルについての排他的OR演算を含む、請求項1に記載の方法。
  3. ステップ(e)は、中間値をもたらす、第1および第2のテーブル値についての排他的OR演算と、現在剰余シンボルをもたらす、中間値および先の剰余シンボルについての排他的OR演算とを含む、請求項2に記載の方法。
  4. 第1および第2の構成要素は、それぞれガロア体要素の上位半語および下位半語を含む、請求項1に記載の方法。
  5. 符号語のメッセージシンボルはメッセージバイトを含む、請求項1に記載の方法。
  6. ステップ(g)は、符号語内で8つまでの誤りを訂正するための16の検査シンボルを生成する、請求項5に記載の方法。
  7. ステップ(d)は、2組以上の第1および第2のテーブル値に並列にアクセスすることを含み、ステップ(e)は、2つ以上の現在剰余シンボルを並列に特定することを含む、請求項1に記載の方法。
  8. ガロア体要素を第1および第2の構成要素に分離することは、ガロア体要素を第1および第2のマスクとAND演算することを含む、請求項1に記載の方法。
  9. ステップ(d)は、w組の第1および第2のテーブル値に並列にアクセスすることを含み、wは、ガロア体要素のユニットにおける符号化を実行するプロセッサのワード幅を表わし、ステップ(e)は、w個の現在剰余シンボルを並列に特定することを含む、請求項1に記載の方法。
  10. ステップ(a)は、動作中に、所定の符号パラメータのための第1および第2のテーブルにおけるテーブル値を生成することを含む、請求項1に記載の方法。
  11. ステップ(g)は、生成係数の数に等しい、ある数の検査シンボルを提供することを含む、請求項1に記載の方法。
  12. ステップ(g)は、生成係数の数よりも小さい、ある数の検査シンボルを提供することを含む、請求項1に記載の方法。
  13. データを符号化するための装置であって、
    符号生成係数を乗じた第1の構成要素値を含む、第1のルックアップテーブル;
    符号生成係数を乗じた第2の構成要素値を含む、第2のルックアップテーブル;および
    プロセッサであって、
    メッセージシンボルおよび高次剰余シンボルに基づいてガロア体要素を特定する手段と、
    ガロア体要素を第1および第2の構成要素に分離する手段と、
    前記第1の構成要素および生成係数指標を使用して、前記第1のルックアップテーブル内の1つまたは2つ以上の第1のテーブル値にアクセスする手段と、
    前記第2の構成要素および生成係数指標を使用して、前記第2のルックアップテーブル内の1つまたは2つ以上の第2のテーブル値にアクセスする手段と、
    等しい生成係数指標を有する第1および第2のテーブル値に基づいて、現在剰余シンボル、および符号生成器の各生成係数に対して、先の剰余シンボルを特定して、1群の剰余シンボルを提供する手段であって、符号語の各メッセージシンボルが処理されて、前記符号語のメッセージシンボルと共に伝送すべき検査シンボルを構成する、1群の最終剰余シンボルを提供する前記手段とを含む、前記プロセッサ;
    を含む、前記装置。
  14. ガロア体要素を特定する手段は、メッセージシンボルおよび高次剰余シンボルについての排他的OR演算を実行する手段を含む、請求項13に記載の装置。
  15. 現在剰余シンボルを特定する手段は、第1のおよび第2のテーブル値について排他的OR演算を実行して中間値を提供する手段と、前記中間値および先の剰余シンボルに対して排他的ORを実行して現在剰余シンボルを提供する手段と含む、請求項13に記載の装置。
  16. 第1および第2の構成要素は、それぞれ、ガロア体要素の上位半語および下位半語を含む、請求項13に記載の装置。
  17. 符号語のメッセージシンボルは、メッセージバイトを含む、請求項13に記載の装置。
  18. プロセッサは、符号語内で8個までの誤りを訂正するための16個の検査シンボルを生成するように構成されている、請求項13に記載の装置。
  19. 第1および第2のテーブル値にアクセスする手段は、2組以上の第1および第2のテーブル値に並列にアクセスする手段を含み、現在剰余シンボルを特定する手段は、2組以上の第1および第2のテーブル値に並列にアクセスする手段を含む、請求項13に記載の装置。
  20. ガロア体要素を第1および第2の構成要素に分離する手段は、前記ガロア体要素と第1および第2のマスクとのAND演算をする手段を含む、請求項13に記載の装置。
  21. 第1および第2のテーブル値にアクセスする手段は、w組の第1および第2のテーブル値に並列にアクセスする手段を含み、ここでwは、ガロア体要素のユニットにおけるプロセッサのワード幅を表わし、現在剰余シンボルを特定する手段は、w個の現在剰余シンボルを並列に特定する手段を含む、請求項13に記載の装置。
  22. プロセッサは、動作中に、所定の符号パラメータのための、第1および第2のルックアップテーブルにおけるテーブル値を生成する手段をさらに含む、請求項13に記載の装置。
  23. 符号語の各メッセージシンボルは、処理されて生成係数の数に等しい、ある数の検査シンボルを提供する、請求項13に記載の装置。
  24. 符号語の各メッセージシンボルは、処理されて、生成係数よりも小さい、ある数の検査シンボルを提供する、請求項13に記載の装置。
JP2006543834A 2003-12-12 2004-11-16 ガロア体乗算のためのルックアップテーブルを使用するリード・ソロモン符号の符号化および復号化 Expired - Fee Related JP4777258B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/735,423 US7162679B2 (en) 2003-12-12 2003-12-12 Methods and apparatus for coding and decoding data using Reed-Solomon codes
US10/735,423 2003-12-12
PCT/US2004/038272 WO2005062472A1 (en) 2003-12-12 2004-11-16 Encoding and decoding of reed-solomon codes using look-up tables for galois field multiplications

Publications (3)

Publication Number Publication Date
JP2007514371A true JP2007514371A (ja) 2007-05-31
JP2007514371A5 JP2007514371A5 (ja) 2008-01-10
JP4777258B2 JP4777258B2 (ja) 2011-09-21

Family

ID=34710449

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006543834A Expired - Fee Related JP4777258B2 (ja) 2003-12-12 2004-11-16 ガロア体乗算のためのルックアップテーブルを使用するリード・ソロモン符号の符号化および復号化

Country Status (5)

Country Link
US (1) US7162679B2 (ja)
JP (1) JP4777258B2 (ja)
KR (1) KR20060125837A (ja)
CN (1) CN1894857A (ja)
WO (1) WO2005062472A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011520404A (ja) * 2008-05-12 2011-07-14 アスペン・アクイジション・コーポレーション プログラム可能なプロセッサにおける随意選択的なガロア域計算の実行
JP2014010415A (ja) * 2012-07-03 2014-01-20 Nec Soft Ltd 分散情報管理システム、分散情報管理装置、分散情報保持装置、分散情報管理方法およびプログラム

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7526518B2 (en) * 2004-10-13 2009-04-28 Cisco Technology, Inc. Galois field multiplication system and method
KR100933139B1 (ko) 2006-02-22 2009-12-21 삼성전자주식회사 통신 시스템에서 신호 수신 장치 및 방법
US7814398B2 (en) * 2006-06-09 2010-10-12 Seagate Technology Llc Communication channel with Reed-Solomon encoding and single parity check
EP2074787B1 (en) * 2006-10-19 2012-08-15 QUALCOMM Incorporated Beacon coding in wireless communications systems
JP4749383B2 (ja) * 2007-05-17 2011-08-17 三菱電機株式会社 符号化装置、暗号化装置及びプログラム
TWI334277B (en) * 2007-06-06 2010-12-01 Lite On Technology Corp Method for calculating syndrome efficiently in reed-solomon decoding and machine readable storage medium storing instructions for performing the method
CN101814922B (zh) 2009-02-23 2013-06-19 国际商业机器公司 基于bch码的多位错纠错方法和装置以及存储系统
US8347192B1 (en) * 2010-03-08 2013-01-01 Altera Corporation Parallel finite field vector operators
US8682950B2 (en) * 2010-05-28 2014-03-25 Microsoft Corporation Computer-implemented symbolic polynomial factorization
CN102104446B (zh) * 2011-02-28 2013-01-30 华为技术有限公司 编码包转发方法、编码包接收处理方法和转发节点
US10148285B1 (en) 2012-07-25 2018-12-04 Erich Schmitt Abstraction and de-abstraction of a digital data stream
CN103095418B (zh) * 2013-01-18 2016-01-20 北京广讯科技有限责任公司 Cmmb系统rs编码中常系数矩阵的生成装置和方法
CN103023512B (zh) * 2013-01-18 2016-01-20 苏州威士达信息科技有限公司 Atsc系统rs编码中常系数矩阵的生成装置和方法
US9362953B2 (en) * 2013-08-02 2016-06-07 Infineon Technologies Ag Efficient error correction of multi-bit errors
US10795858B1 (en) 2014-02-18 2020-10-06 Erich Schmitt Universal abstraction and de-abstraction of a digital data stream
US10171109B2 (en) * 2017-01-23 2019-01-01 Hefei High-Dimensional Data Technology Co., Ltd. Fast encoding method and device for Reed-Solomon codes with a small number of redundancies
KR20210080807A (ko) 2019-12-23 2021-07-01 삼성전자주식회사 메모리 컨트롤러 및 메모리 시스템
US11184029B1 (en) * 2020-05-28 2021-11-23 Samsung Electronics Co., Ltd. Low power ECC for eUFS
US11438013B2 (en) * 2020-07-15 2022-09-06 Samsung Electronics Co., Ltd. Low-power error correction code computation in GF (2R)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61203728A (ja) * 1985-03-07 1986-09-09 Fujitsu Ltd 拡大体における求積回路
US4763332A (en) * 1987-03-02 1988-08-09 Data Systems Technology Corp. Shared circuitry for the encoding and syndrome generation functions of a Reed-Solomon code
US4847801A (en) * 1987-10-26 1989-07-11 Cyclotomics, Inc. Compact galois field multiplier
JP2000295116A (ja) * 1999-03-15 2000-10-20 Texas Instr Inc <Ti> 誤り修正符号化方法
JP2003529233A (ja) * 1999-08-27 2003-09-30 モトローラ・インコーポレイテッド データを符号化及び復号化する方法及び装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4142174A (en) 1977-08-15 1979-02-27 International Business Machines Corporation High speed decoding of Reed-Solomon codes
US4567594A (en) 1983-06-07 1986-01-28 Burroughs Corporation Reed-Solomon error detecting and correcting system employing pipelined processors
GB2155669A (en) 1984-03-06 1985-09-25 Sony Corp Galois field multipliers
JPH0345020A (ja) * 1989-07-13 1991-02-26 Canon Inc 巡回符号処理回路
US5428629A (en) * 1990-11-01 1995-06-27 Motorola, Inc. Error check code recomputation method time independent of message length
US5948117A (en) 1997-01-23 1999-09-07 Quantum Corporation Modified Reed-Solomon error correction system using (W+i+1)-bit representations of symbols of GF(2w+i)
US6173429B1 (en) 1997-03-14 2001-01-09 Harris Corporation Apparatus for providing error correction data in a digital data transfer system
US5942005A (en) 1997-04-08 1999-08-24 International Business Machines Corporation Method and means for computationally efficient error and erasure correction in linear cyclic codes
JPH113573A (ja) 1997-04-15 1999-01-06 Mitsubishi Electric Corp 拡大リードソロモン符号の誤り訂正復号方法と誤り訂正復号装置、1次伸長拡大リードソロモン符号の誤り訂正方法と誤り訂正装置、および2次伸長拡大リードソロモン符号の誤り訂正方法と誤り訂正装置
US6263470B1 (en) 1998-02-03 2001-07-17 Texas Instruments Incorporated Efficient look-up table methods for Reed-Solomon decoding
US6757862B1 (en) * 2000-08-21 2004-06-29 Handspring, Inc. Method and apparatus for digital data error correction coding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61203728A (ja) * 1985-03-07 1986-09-09 Fujitsu Ltd 拡大体における求積回路
US4763332A (en) * 1987-03-02 1988-08-09 Data Systems Technology Corp. Shared circuitry for the encoding and syndrome generation functions of a Reed-Solomon code
US4847801A (en) * 1987-10-26 1989-07-11 Cyclotomics, Inc. Compact galois field multiplier
JP2000295116A (ja) * 1999-03-15 2000-10-20 Texas Instr Inc <Ti> 誤り修正符号化方法
JP2003529233A (ja) * 1999-08-27 2003-09-30 モトローラ・インコーポレイテッド データを符号化及び復号化する方法及び装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011520404A (ja) * 2008-05-12 2011-07-14 アスペン・アクイジション・コーポレーション プログラム可能なプロセッサにおける随意選択的なガロア域計算の実行
US9146708B2 (en) 2008-05-12 2015-09-29 Qualcomm Incorporated Implementation of arbitrary galois field arithmetic on a programmable processor
JP2014010415A (ja) * 2012-07-03 2014-01-20 Nec Soft Ltd 分散情報管理システム、分散情報管理装置、分散情報保持装置、分散情報管理方法およびプログラム

Also Published As

Publication number Publication date
WO2005062472A1 (en) 2005-07-07
KR20060125837A (ko) 2006-12-06
CN1894857A (zh) 2007-01-10
US20050149832A1 (en) 2005-07-07
US7162679B2 (en) 2007-01-09
JP4777258B2 (ja) 2011-09-21

Similar Documents

Publication Publication Date Title
JP4777258B2 (ja) ガロア体乗算のためのルックアップテーブルを使用するリード・ソロモン符号の符号化および復号化
US4873688A (en) High-speed real-time Reed-Solomon decoder
US8176396B2 (en) System and method for implementing a Reed Solomon multiplication section from exclusive-OR logic
CN104391675B (zh) 用于提高处理效率的设备和处理器
KR930008683B1 (ko) 리드-솔로몬 에러 보정 코드 엔코더
KR20020047134A (ko) 데이터를 코딩 및 디코딩하는 방법 및 장치
US20060107190A1 (en) Even-load software reed-solomon decoder
JPH07312560A (ja) 誤り訂正符号化装置及び誤り訂正復号装置及び誤り訂正符号付きデータ伝送システム及び誤り訂正符号の復号方法
CN101814922A (zh) 基于bch码的多位错纠错方法和装置以及存储系统
JPH07202715A (ja) 時間定義域代数エンコーダ/デコーダ
JP3354025B2 (ja) エラー位置多項式の計算方法およびその装置
JP3834122B2 (ja) 誤り位置検出多項式計算装置
JP2004032737A (ja) リード−ソロモン復号器
US6295626B1 (en) Symbol based algorithm for hardware implementation of cyclic redundancy check
Nair et al. A symbol based algorithm for hardware implementation of cyclic redundancy check (CRC)
JP4045872B2 (ja) 符号化方法および符号化装置
WO2006120691A1 (en) Galois field arithmetic unit for error detection and correction in processors
JP2000020333A (ja) 復号装置、演算装置およびこれらの方法
Khan et al. Hardware implementation of shortened (48, 38) Reed Solomon forward error correcting code
RU157943U1 (ru) Параллельный реконфигурируемый кодер бчх кодов
JPH1032497A (ja) エラー評価多項式係数計算装置
JP2591611B2 (ja) t重誤り訂正符号の符号化復号化回路
US7287207B2 (en) Method and apparatus for computing parity characters for a codeword of a cyclic code
RU2591474C1 (ru) Параллельный реконфигурируемый кодер бчх кодов
Deshpande Finite Field Multiplier Accumulator Unit By Using Sub Word Parallel Architecture

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071115

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101005

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101222

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110405

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110629

R150 Certificate of patent or registration of utility model

Ref document number: 4777258

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140708

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees