Nothing Special   »   [go: up one dir, main page]

JP5275398B2 - リードソロモン復号器及び受信装置 - Google Patents

リードソロモン復号器及び受信装置 Download PDF

Info

Publication number
JP5275398B2
JP5275398B2 JP2011070699A JP2011070699A JP5275398B2 JP 5275398 B2 JP5275398 B2 JP 5275398B2 JP 2011070699 A JP2011070699 A JP 2011070699A JP 2011070699 A JP2011070699 A JP 2011070699A JP 5275398 B2 JP5275398 B2 JP 5275398B2
Authority
JP
Japan
Prior art keywords
size
error
coefficient
codeword
reed
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
JP2011070699A
Other languages
English (en)
Other versions
JP2012205272A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2011070699A priority Critical patent/JP5275398B2/ja
Priority to US13/409,691 priority patent/US9077382B2/en
Publication of JP2012205272A publication Critical patent/JP2012205272A/ja
Application granted granted Critical
Publication of JP5275398B2 publication Critical patent/JP5275398B2/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
    • 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
    • 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/155Shortening or extension 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/1555Pipelined decoder 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
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/618Shortening and extension of codes

Landscapes

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

Description

実施形態は、リードソロモン符号の復号に関する。
リードソロモン符号は、例えば地上波デジタル放送システムにおいて誤り訂正のために利用される。リードソロモン符号は、例えば複数の連続したビットを1つのシンボルとして扱うことができる。リードソロモン符号は、シンボル単位の誤り訂正を可能とする。リードソロモン符号語のベースサイズ(シンボル長)は、シンボルを定義する多元体に含まれる要素の総数によって決まる。実装上、ベースサイズよりも短い符号語(以降、短縮符号語と称される)が使用されることもある。
短縮符号語の復号を高速化する(即ち、復号レイテンシを低減する)ために、当該短縮符号語のサイズに応じた補正係数を利用することが知られている。一方、短縮符号語の復号過程において、係る補正係数を計算するための期間ならびにハードウェア(例えば、専用回路)を確保する必要がある。
特開2005−218098号公報
実施形態は、リードソロモン符号語の復号レイテンシを低減することを目的とする。
実施形態によれば、リードソロモン復号器は、少なくとも2つのリードソロモン符号語を含むデータ部とデータ部のサイズを示す情報を含むヘッダー部とを含むデータフレームを復号する。リードソロモン復号器は、ヘッダー部に含まれる情報を用いて、データ部において末尾に配置される最終符号語のサイズを計算する解析部を含む。リードソロモン復号器は、データ部において最終符号語の1つ前に配置される符号語に関する誤り検出が開始するよりも前に、リードソロモン符号語のベースサイズと最終符号語のサイズとの差分に応じて最終符号語の誤り位置多項式の係数及び誤り数値多項式の係数を補正するための補正係数を最終符号語のサイズを用いて計算する係数計算部を含む。
少なくとも1つのリードソロモン符号語を含むデータフレームを例示する図。 第1の実施形態に係るリードソロモン復号器を例示するブロック図。 図2のリードソロモン復号器の動作を例示する図。 図2の補正計算部を例示する図。 図2の補正計算部を例示する図。 図2の誤り計算部を例示する図。 図2の誤り計算部を例示する図。 第1の実施形態に係るリードソロモン復号器を含む受信装置を例示するブロック図。
以下、図面を参照しながら実施形態についての説明が述べられる。尚、以降、説明済みの要素と同一または類似の要素には同一または類似の符号が付され、重複する説明は基本的に省略される。また、符号XXXによって参照される要素が複数存在する場合には、符号XXX−Aのように添え字Aによって個別の要素が参照されたり、単に符号XXXによって係る要素が包括的に参照されたりする。
(第1の実施形態)
第1の実施形態に係るリードソロモン復号器は、例えば図1に示されるデータフレームに含まれるリードソロモン符号語を誤り訂正復号し、メッセージ(或いは、データとも称される)を復元する。
図1のデータフレームは、ヘッダー部とデータ部とを含む。ヘッダー部には、データフレーム或いはデータ部に関する種々の情報が含まれる。例えば、ヘッダー部には、データフレーム或いはデータ部のサイズを示す情報が含まれる。
データ部には、少なくとも1つの符号語が含まれる。具体的には、図1の例において、メッセージは、ガロア体(Galois Field;GF)(2)上で定義されるリードソロモン符号(N,K,t)によって符号化されている。即ち、符号語は、多くともK個のシンボルからなるメッセージに2t個のシンボルからなるパリティを付加したリードソロモン符号語である。このリードソロモン符号語は、多くともN(=K+2t)シンボルからなる。各シンボルは、qビットで表現され、2通りの値を持ち得る。以降の説明において、シンボルの加算及び乗算は、ガロア体(2)上の加算及び乗算を意味する。
このリードソロモン符号語のベースサイズは、(2−1)シンボルである。仮に、Nが(2−1)未満であるならば(即ち、Nシンボルの符号語が短縮符号語であるならば)、短縮符号語の先頭に(2−1−N)個の零シンボル群をパディングすればよい。係る操作によれば、短縮符号語をベースサイズの符号語と数学的に同一に扱うことができる。但し、係る操作によってパディングされた零シンボル群は、伝送の必要がないので、データフレームには含まれない。
また、図1の例では、メッセージはKシンボル単位で分割されて符号化されるので、データ部において末尾に配置される最終符号語を除く全ての符号語は固定サイズ(Nシンボル)を持つ。一方、最終符号語は、メッセージをKシンボル単位で分割した余りのJ(Jは1以上K以下の整数)シンボルが符号化されるので、メッセージのサイズに依存する可変サイズ(M(=J+2t)シンボル)を持つ。尚、最終符号語も先頭への(2−1−M)個の零シンボル群のパディングを通じて、ベースサイズの符号語と数学的に同一に扱うことができる。図1に示される典型的なデータフレームの構造を想定すると、1つのデータフレームにおいて符号語のサイズは多くとも2種類しか存在しない。
図2に示されるように、本実施形態に係るリードソロモン復号器は、フレーム解析部101、誤り計算部102、補正係数記憶部103、データ記憶部104、シンドローム計算部105、誤り多項式係数計算部106、補正計算部107及びガロア体加算器108を含む。図2のリードソロモン復号器は、例えば図1のものと同一または類似の構造を持つデータフレームを入力する。具体的には、フレーム解析部101はデータフレームのヘッダー部(或いは、データフレーム或いはデータ部のサイズを示す情報)を入力し、シンドローム計算部105はデータフレームのデータ部を入力する。また、データフレームのデータ部は、データ記憶部104に記憶される。図2のリードソロモン復号器は、符号語に生じた誤りを例えばチェンサーチ(Chien search)&フォーニー法(Forney algorithm)によって検出し、これを訂正して復元メッセージ(出力データ)を得る。
フレーム解析部101は、例えばデータフレームのヘッダー部を入力し、データフレーム或いはデータ部のサイズを示す情報を解析する。フレーム解析部101は、係る情報に基づいて、データフレームの最終符号語のサイズを計算する。尚、最終符号語のサイズは、符号語全体のサイズMである必要はなく、符号語全体からパリティシンボルを除いたサイズJであってもよい。
また、フレーム解析部101は、図2のリードソロモン復号器が処理対象の符号語は最終符号語であるか否かを判定可能とするために、データフレームに含まれる符号語数Wを解析或いは計算してもよい。例えば、図2のリードソロモン復号器は、処理済みの符号語数が(W−1)未満であれば処理対象の符号語は最終符号語でないと判定し、処理済みの符号語数が(W−1)に一致すれば処理対象の符号語は最終符号語であると判定する。
フレーム解析部101は、上記解析を通じてパラメータSを得る。パラメータSは、最終符号語のサイズを一意に決定するものであればよい。即ち、パラメータSは、データ部を構成する総シンボル数(図1の例では、2N+M)であってもよいし、データ部の誤り訂正復号を通じて復元されるメッセージを構成する総シンボル数(図1の例では、2K+J)であってもよい。
パラメータSがデータ部を構成する総シンボル数を表すならば、フレーム解析部101は最終符号語のサイズMを下記の数式(1)によって計算できる。前述の通り、最終符号語のサイズは、Mに代えてJによって定義されてもよい。フレーム解析部101は、最終符号語のサイズJを下記の数式(2)によって計算できる。更に、フレーム解析部101は、符号語数Wを下記の数式(3)によって計算できる。
Figure 0005275398
Figure 0005275398
Figure 0005275398
ここで、mod(A,B)はBを法とするAの剰余を表し、ceil(A)はA以上の最小の整数値を表す。
一方、パラメータSがデータ部の誤り訂正復号を通じて復元されるメッセージを構成する総シンボル数を表すならば、フレーム解析部101は最終符号語のサイズMを下記の数式(4)によって計算できる。前述の通り、最終符号語のサイズは、Mに代えてJによって定義されてもよい。フレーム解析部101は、最終符号語のサイズJを下記の数式(5)によって計算できる。更に、フレーム解析部101は、符号語数Wを下記の数式(6)によって計算できる。
Figure 0005275398
Figure 0005275398
Figure 0005275398
尚、N(或いは、K)の値はデータフレームのヘッダー部の解析を通じて得られるかもしれないし、これらはフレーム解析部101において既知であるかもしれない。
誤り計算部102は、2つの動作モードを備える。これら2つの動作モードは、便宜的に、初期化モード及び誤り検出モードと称される。誤り計算部102は、初期化モードにおいて、処理対象のデータフレームの最終符号語に関する補正係数β(i=1,・・・,t)を計算する。また、誤り計算部102は、誤り検出モードにおいて、処理対象のデータフレームの各符号語の誤り検出を例えばチェンサーチ&フォーニー法によって実行する。誤り計算部102は、初期化モード及び誤り検出モードを時分割で実行する。従って、誤り計算部102は、補正係数βの計算と各符号語の誤り検出との両方を共有のハードウェアによって実現できる。尚、誤り計算部102のハードウェア構成例ならびに初期化モード及び誤り検出モードにおける動作の詳細は後述される。
図3を参照すると、図2のリードソロモン復号器の各要素の動作タイミングが例示されている。後述のように、誤り計算部102の初期化モードにおいて最終符号語のサイズを参照する必要があるので、フレーム解析部101による最終符号語のサイズM(或いはJ)の計算は、少なくとも誤り計算部102が初期化モードを終了するよりも前に終了している必要がある。但し、図3にも示されているが、後述の中間値を計算するなどの理由で、フレーム解析部101が最終符号語のサイズの計算を終了するよりも前に、誤り計算部102が初期化モードを開始することはあり得る。
また、後述のように、補正計算部107による最終符号語に関する補正計算において補正係数βが必要となる。従って、補正計算部107が最終符号語に関する補正計算を開始するよりも前に、誤り計算部102は初期化モードを終了する必要がある。例えば、図3に示されるように、誤り計算部102は、データ部において先頭に配置される先頭符号語に関する誤り検出モードを開始するよりも前に、初期化モードを終了する。尚、誤り計算部102は、少なくとも、データ部において最終符号語の1つ前に配置される符号語に関する誤り検出モードを開始するよりも前に初期化モードを終了する。係る制約が満たされるならば、補正係数βの計算は復号レイテンシの増加を伴わない。
ところで、実装条件、最終符号語のサイズなどの種々の要因により、先頭符号語に関する誤り検出モードが開始可能となった時点では、誤り計算部102が初期化モードを終了していない状況が想定される。係る状況において、誤り計算部102は、初期化モードを終了するまで先頭符号語に関する誤り検出モードを待機させてもよい。或いは、誤り計算部102は、所与の符号語に関する誤り検出モードを終了してから次の符号語に関する誤り検出モードを開始するまでの隙間期間において、初期化モードの残余の計算を実行してもよい。係る間欠動作によれば、待機に起因する復号レイテンシの増加を回避または抑制できる。
誤り計算部102は、初期化モードを通じて計算した補正係数βを補正係数記憶部103に記憶させる。補正係数記憶部103に記憶された補正係数βは、最終符号語に関する補正計算のために補正計算部107によって読み出される。
シンドローム計算部105は、データフレームのデータ部を入力し、このデータ部に含まれる符号語毎にシンドロームσ(i=0,・・・,2t−1)を計算する。シンドローム計算部105は、計算したシンドロームσを誤り多項式係数計算部106へ出力する。
シンドロームσは、生成多項式G(x)の根α(i=0,・・・2t−1)を処理対象の符号語を表す多項式R(x)に代入することによって計算される。即ち、シンドローム計算部105は、シンドロームσを下記の数式(7)に従って計算する。尚、生成多項式G(x)は、下記の数式(8)で表される。
Figure 0005275398
Figure 0005275398
符号語に誤りが含まれていなければ、全てのシンドロームσは零となる。一方、符号語に誤りが含まれていれば、シンドロームσは誤りのパターン(誤りの位置及び誤りの数値)のみに依存する非零値となる。換言すれば、シンドロームσは符号化前のデータ(メッセージ)には依存しない。
誤り多項式係数計算部106は、シンドローム計算部105からのシンドロームσを入力する。誤り多項式係数計算部106は、入力したシンドロームσに基づいて、誤り位置多項式Λ(x)の係数λ(i=0,1,2,・・・t)と誤り数値多項式Ω(x)の係数ω(i=0,1,2,・・・,t−1)とを計算する。誤り多項式係数計算部106は、例えばBerlekamp−Masseyアルゴリズム、ユークリッド法などの公知の計算手法によって、係数λ及び係数ωを計算できる。誤り多項式係数計算部106は、計算した係数λ及び係数ωを補正計算部107へ出力する。
補正計算部107は、誤り多項式係数計算部106からの係数λ及び係数ωを入力する。補正計算部107は、入力した係数λ及び係数ωに補正係数を乗算し、補正済み係数λ’及び補正済み係数ω’を得る。補正計算部107は、計算した補正済み係数λ’及び補正済み係数ω’を誤り計算部102へ出力する。
補正計算は、短縮符号の誤り検出を高速化するために実行される。具体的には、短縮符号の先頭には零シンボル群がパディングされているので、これらを無視して当該短縮符号の先頭シンボルから誤り検出を開始するために、符号語のサイズに応じた補正係数が係数λ及び係数ωに乗算される。
前述の通り、最終符号語を除く全ての符号語は固定サイズ(Nシンボル)を持つ。従って、最終符号語を除く全ての符号語に関する補正係数もまた固定である。そこで、最終符号語を除く全ての符号語に関する補正係数γ(i=0,1,2,・・・,t)を予め計算し、図示しない記憶部に記憶させておくことによって、復号過程において最終符号語を除く全ての符号語に関する補正係数の計算を省略できる。また、前述の通り、最終符号語に関する補正係数βは誤り計算部102の初期化モードによって計算され、補正係数記憶部103に記憶されている。尚、β=1である。
補正計算部107は、最終符号語を除く全ての符号語に関して、下記の数式(9)に従って係数λ及び係数ωを補正する。補正計算部107は、最終符号語に関して、下記の数式(10)に従って係数λ及び係数ωを補正する。
Figure 0005275398
Figure 0005275398
尚、補正係数γは下記の数式(11)によって計算できる。
Figure 0005275398
尚、補正計算部107は、補正係数γ=1に固定してもよい(即ち、最終符号語を除く全ての符号語に関する補正計算を省略してもよい)。補正計算を省略すると、短縮符号の先頭シンボルからではなく、パディングされた零シンボル群の先頭から誤り検出が開始する。Nが2に近い値であれば、補正計算の省略による復号レイテンシの増加は限定的となる。
補正計算部107は、図4に示されるように、(2t−1)個のガロア体乗算器201−1,・・・,201−(t−1),202−1,・・・,202−tと、t個のマルチプレクサ203−1,・・・,203−tとを含むように実装することができる。具体的には、ガロア体乗算器201−iは、係数ωの補正計算を行う。ガロア体乗算器202−iは、係数λの補正計算を行う。マルチプレクサ203−i(i=1,・・・,t)は、処理対象の符号語が最終符号語であるか否かに応じて補正係数β及び補正係数γのいずれか一方を選択し、ガロア体乗算器201−i及びガロア体乗算器202−iに供給する。但し、係数ωは存在しない。故に、マルチプレクサ203−tは、処理対象の符号語が最終符号語であるか否かに応じて補正係数β及び補正係数γのいずれか一方を選択し、ガロア体乗算器202−tに供給する。
また、補正計算部107は、図5に示されるように、パラレル/シリアル変換部211と、1個のガロア体乗算器212と、補正係数選択部213と、シリアル/パラレル変換部214とを含むように実装することもできる。パラレル/シリアル変換部211は、係数ω及び係数λにパラレル/シリアル変換を行って、係数系列をガロア体乗算器212に供給する。補正係数選択部213は、上記係数系列と対応するように、補正係数1(=γ=β),γ,・・・,γ,β・・・,βから1つずつ順次選択し、補正係数系列をガロア体乗算器212に供給する。ガロア体乗算器212は、パラレル/シリアル変換部211からの係数系列と補正係数選択部213からの補正係数系列とを順次乗算することによって、補正計算を行う。ガロア体乗算器212は、補正済み係数系列をシリアル/パラレル変換部214に供給する。シリアル/パラレル変換部214は、ガロア体乗算器212からの補正済み係数系列にシリアル/パラレル変換を行って、補正済み係数ω’及び補正済み係数λ’を出力する。
更に、図4及び図5を組み合わせることにより、補正計算部107は、2個乃至(2t−2)個のガロア体乗算器を含むように実装することもできる。従って、補正計算部107は、1乃至(2t−1)個のガロア体乗算器を含むように実装することができる。尚、補正計算部107を実装するために必要とされるガロア体乗算器は少なくとも1つなので、補正計算部107は誤り多項式係数計算部106に含まれる複数のガロア体乗算器の一部または全部を共有して実装されてもよい。
誤り計算部102は、誤り検出モードにおいて、補正計算部107からの補正済み係数λ’及び補正済み係数ω’を入力する。誤り計算部102は、チェンサーチによって誤り位置を計算すると共に、フォーニー法によって誤り数値を計算する。誤り計算部102は、誤り数値を検出する。誤り計算部102は、検出した誤り数値をガロア体加算器108へ出力する。
具体的には、チェンサーチは、Λ(α)の値が零であるか否かによって、第N−i番目(最終符号語に関しては第M−i番目)のシンボルに誤りがあるか否かを判定する手法である。フォーニー法は、Ω(α)/Λ(odd)(α)の値に基づいて誤り数値を計算する手法である。尚、Λ(odd)(x)は、誤り位置多項式Λ(x)に含まれる奇数次の項のみからなる部分多項式である。
誤り計算部102は、図6に示されるように、制御部301と、t個のマルチプレクサ302−1,・・・,302−tと、(2t+1)個のフリップフロップ303−0,・・・,303−(t−1),305−0,・・・,305−tと、(2t−1)個のガロア体乗算器304−1,・・・,304−(t−1),306−1,・・・,306−tと、加算部307と、ガロア体乗算器308と、マルチプレクサ309と、偶数項加算部310と、奇数項加算部311と、ガロア体加算器312と、誤り検出部313と、逆元計算部314とを含むように実装することができる。
制御部301は、初期化モードにおいて、マルチプレクサ302−1,・・・,302−tの第1の入力端子に初期値φ,・・・,φを供給すると共に、マルチプレクサ302−1,・・・,302−tに第1の入力端子を選択させるための選択信号を供給する。初期値φは、下記の数式(12)で表される。尚、数式(12)において、Pは初期値を決定するためのパラメータである。
Figure 0005275398
また、制御部301は、誤り検出モードにおいて、マルチプレクサ302−1,・・・,302−tに第2の入力端子を選択させるための選択信号を供給する。また、制御部301は、フリップフロップ305−0,・・・,305−tに第1ロード信号を供給し、フリップフロップ303−0,・・・,303−(t−1)に第2ロード信号を供給する。
マルチプレクサ302−1,・・・,302−tは、第1の入力端子において制御部301からの初期値φ,・・・,φを入力し、第2の入力端子において補正計算部107からの補正済み係数λ’,・・・,λ’を入力する。マルチプレクサ302−1,・・・,302−tは、初期化モードにおいて、制御部301からの選択信号に従って第1の入力端子を選択し、初期値φ,・・・,φを出力する。マルチプレクサ302−1,・・・,302−tは、誤り検出モードにおいて、制御部301からの選択信号に従って第2の入力端子を選択し、補正済み係数λ’,・・・,λ’を出力する。
フリップフロップ303−0は、誤り検出モードにおいて、補正計算部107からの補正済み係数ω’を加算部307へ供給する。フリップフロップ303−1,・・・,303−(t−1)及びガロア体乗算器304−1,・・・,304−(t−1)は、誤り検出モードにおいて、補正計算部107からの補正済み係数ω’,・・・,ωt−1’に乗算因子α,・・・,αt−1を乗算し、乗算結果を加算部307へ供給する。
フリップフロップ305−0は、誤り検出モードにおいて、補正計算部107からの補正済み係数λ’を偶数項加算部310へ供給する。フリップフロップ305−1,・・・,305−t及びガロア体乗算器306−1,・・・,306−tは、誤り検出モードにおいて、補正計算部107からの補正済み係数λ’,・・・,λ’に乗算因子α,・・・,αを乗算し、乗算結果を偶数項加算部310及び奇数項加算部311のうちの一方へ供給する。
また、フリップフロップ305−1,・・・,305−t及びガロア体乗算器306−1,・・・,306−tは、初期化モードにおいて、マルチプレクサ302−1,・・・,302−tからの初期値φ,・・・,φに乗算因子α,・・・,αをmod(P−M,2)サイクルだけ反復して乗算し、補正係数β,・・・,βを計算する。即ち、補正係数β=α−iM(i=1,・・・,t)である。フリップフロップ305−1,・・・,305−tは、計算された補正係数β,・・・,βを補正係数記憶部103へ供給する。
加算部307は、誤り検出モードにおいて、フリップフロップ303−0,・・・,303−(t−1)からの信号を入力し、これらを加算して誤り数値多項式を形成する。偶数項加算部310は、誤り検出モードにおいて、フリップフロップ305−0,・・・,305−tからの信号のうち誤り位置多項式の偶数項に相当するものを入力し、これらを加算する。奇数項加算部311は、誤り検出モードにおいて、フリップフロップ305−1,・・・,305−tからの信号のうち誤り位置多項式の奇数項に相当するものを入力し、これらを加算する。
ガロア体加算器312は、偶数項加算部310及び奇数項加算部311からの信号を加算し、誤り位置多項式を計算する。誤り検出部313は、ガロア体加算器312から誤り位置多項式を入力し、誤り検出を行う。逆元計算部314は、奇数項加算部311から誤り位置多項式の奇数項部分を入力し、この逆元を計算する。逆元計算部314は、計算した誤り位置多項式の奇数項部分の逆元をガロア体乗算器308に与える。ガロア体乗算器308は、加算部307からの誤り数値多項式と、逆元計算部314からの誤り位置多項式の奇数項部分の逆元とを乗算し、乗算結果(即ち、Ω(α)/Λ(odd)(α))をマルチプレクサ309の第1の入力端子に供給する。マルチプレクサ309は、第2の入力端子において零を入力する。マルチプレクサ309は、誤り検出部313からの誤り検出結果に応じて、零及びガロア体乗算器308からの信号のいずれか一方を選択し、誤り数値として出力する。
図6の誤り計算部102によれば、最終符号語に関する補正係数の計算が、チェンサーチのためのフリップフロップ305−1,・・・,305−t及びガロア体乗算器306−1,・・・,306−tを共有して実現される。
また、誤り計算部102は、図7に示されるように、制御部321と、t個のマルチプレクサ322−1,・・・,322−tと、(2t+1)個のフリップフロップ323−0,・・・,323−(t−1),325−0,・・・,325−tと、(2t−1)個のガロア体乗算器324−1,・・・,324−(t−1),326−1,・・・,326−tと、加算部307と、ガロア体乗算器308と、マルチプレクサ309と、偶数項加算部310と、奇数項加算部311と、ガロア体加算器312と、誤り検出部313と、逆元計算部314とを含むように実装することもできる。
尚、誤り検出モードにおいて、フリップフロップ323−0,・・・,323−(t−1),325−0,・・・,325−t及びガロア体乗算器324−1,・・・,324−(t−1),326−1,・・・,326−tの動作は、フリップフロップ303−0,・・・,303−(t−1),305−0,・・・,305−t及びガロア体乗算器304−1,・・・,304−(t−1),306−1,・・・,306−tのものと同じである。
制御部321は、初期化モードにおいて、マルチプレクサ322−1,・・・,322−tの第1の入力端子に初期値φ,・・・,φを供給すると共に、マルチプレクサ322−1,・・・,322−tに第1の入力端子を選択させるための選択信号を供給する。また、制御部321は、誤り検出モードにおいて、マルチプレクサ322−1,・・・,322−tに第2の入力端子を選択させるための選択信号を供給する。また、制御部321は、フリップフロップ325−0,・・・,325−tに第1ロード信号を供給し、フリップフロップ326−0,・・・,326−(t−1)に第2ロード信号を供給する。
マルチプレクサ322−1,・・・,322−(t−1)は、第1の入力端子において制御部321からの初期値φ,・・・,φt−1を入力し、第2の入力端子において補正計算部107からの補正済み係数ω’,・・・,ωt−1’を入力する。マルチプレクサ322−1,・・・,322−(t−1)は、初期化モードにおいて、制御部321からの選択信号に従って第1の入力端子を選択し、初期値φ,・・・,φt−1を出力する。マルチプレクサ322−1,・・・,322−(t−1)は、誤り検出モードにおいて、制御部321からの選択信号に従って第2の入力端子を選択し、補正済み係数ω’,・・・,ωt−1’を出力する。
マルチプレクサ322−tは、第1の入力端子において制御部321からの初期値φを入力し、第2の入力端子において補正計算部107からの補正済み係数λ’を入力する。マルチプレクサ322−tは、初期化モードにおいて、制御部321からの選択信号に従って第1の入力端子を選択し、初期値φを出力する。マルチプレクサ322−tは、誤り検出モードにおいて、制御部321からの選択信号に従って第2の入力端子を選択し、補正済み係数λ’を出力する。
フリップフロップ323−1,・・・,323−(t−1)及びガロア体乗算器324−1,・・・,324−(t−1)は、初期化モードにおいて、マルチプレクサ322−1,・・・,322−(t−1)からの初期値φ,・・・,φt−1に乗算因子α,・・・,αt−1をmod(P−M,2)サイクルだけ反復して乗算し、補正係数β,・・・,βt−1を計算する。フリップフロップ323−1,・・・,323−(t−1)は、計算された補正係数β,・・・,βt−1を補正係数記憶部103へ供給する。また、フリップフロップ325−t及びガロア体乗算器326−tは、初期化モードにおいて、マルチプレクサ322−tからの初期値φに乗算因子αをmod(P−M,2)サイクルだけ反復して乗算し、補正係数βを計算する。フリップフロップ325−tは、計算された補正係数βを補正係数記憶部103へ供給する。
図7の誤り計算部102によれば、最終符号語に関する補正係数の計算が、フォーニー法のためのフリップフロップ323−1,・・・,323−(t−1)及びガロア体乗算器324−1,・・・,324−(t−1)と、チェンサーチのためのフリップフロップ325−t及びガロア体乗算器326−tとを共有して実現される。
尚、図6及び図7の例によれば、誤り計算部102は、初期化モードのための全てのハードウェア構成を誤り検出モードのためのものと共有している。しかしながら、誤り計算部102は、初期化モードのための一部のハードウェア構成を誤り検出モードのためのものと共有し、残余のハードウェア構成を別途設けてもよい。
前述の通り、初期化モードにおける補正係数の計算は、mod(P−M,2)サイクルを必要とする。例えば、P=0(即ち、φ=1)であって、かつ、最終符号語のサイズM=1であれば、補正係数βを計算するために2−1サイクルが必要となる。以降、補正係数βの計算に伴う復号レイテンシの増加を回避または抑制するための手法が述べられる。
パラメータPに対して複数の異なる値を与えることによって、複数の異なる初期値φ(=α−iP)を用意することができる。誤り計算部102は、係る複数の異なる初期値を最終符号語のサイズに応じて切り替えて使用することによって、補正係数βを計算するために必要なサイクル数を削減できる。例えば、誤り計算部102は、パラメータPに0,2q−1を与えて第1の初期値及び第2の初期値を用意する。そして、誤り計算部102は、最終符号語のサイズMが閾値2q−1以下であれば第2の初期値を使用し、最終符号語のサイズMが閾値2q−1を超えるならば第1の初期値を使用する。係る動作によれば、補正係数βを計算するために必要なサイクル数を最大で2q−1に抑制できる。
また、誤り計算部102は、フレーム解析部101が最終符号語のサイズMの計算を終了するよりも前に補正係数βの計算を開始することによって、補正係数βの中間値を予め計算してもよい。例えば、誤り計算部102は、最終符号語のサイズMが計算される前に、初期値φ=1(即ち、P=0)として2q−1サイクル分の計算を終了させておくとする。誤り計算部102は、最終符号語のサイズMが閾値2q−1以下であれば中間値を使用して補正係数βの計算を続行し、最終符号語のサイズMが閾値2q−1を超えるならば再び初期値φ=1から補正係数βの計算を開始すればよい。係る動作によれば、最終符号語のサイズMの計算が終了してから補正係数βの計算が終了するまでに必要なサイクル数を最大で2q−1に抑制できる。
ガロア体加算器108は、データ記憶部104から処理対象の符号語と、誤り計算部102からの誤り数値とを入力する。ガロア体加算器108は、処理対象の符号語と誤り数値とを加算(即ち、排他的論理和)することによって誤りを訂正し、出力データを得る。
以上説明したように、第1の実施形態に係るリードソロモン復号器は、最終符号語に関する補正係数の計算を最終符号語の1つ前の符号語の誤り検出が開始するよりも前に終了する。従って、本実施形態に係るリードソロモン復号器によれば、最終符号語に関する補正係数の計算に伴う復号レイテンシの増加が回避される(或いは、抑制される)。また、本実施形態に係るリードソロモン復号器は、誤り計算部のハードウェアを時分割で使用して最終符号語に関する補正係数の計算及び各符号語の誤り検出を実行する。従って、本実施形態に係るリードソロモン復号器によれば、最終符号語に関する補正計算のために専用のハードウェアを設ける必要がないので、回路規模及び消費電力の増大を抑制できる。
第1の実施形態に係るリードソロモン復号器は、例えば受信装置に組み込まれ得る。係る受信装置は、図8に示されるように、無線受信部402、A/D変換部403、データ復調部404、リードソロモン復号部405及びMAC(Media Access Control)層処理部406を含む。図8の受信装置は、アンテナ401を介して無線信号を受信する。
無線受信部402は、アンテナ401によって受信された無線信号をベースバンドのアナログ信号へと変換する。A/D変換部403は、ベースバンドのアナログ信号をデジタル信号へと変換する。データ復調部404は、A/D変換部403からのデジタル信号に等化処理、周波数オフセット処理など(即ち、通信路及びアナログ回路の歪補正処理)を行って、BPSK(Binary Phase Shift Keying)、QPSK(Quadrature Phase Shift Keying)などの変調信号点を復元し、復元した変調信号点に対応するビット値を推定する。
リードソロモン復号部405として、第1の実施形態に係るリードソロモン復号器が組み込まれる。リードソロモン復号部405は、データ復調部404からのビット値(前述のデータフレームに相当する)に対して前述の誤り訂正復号を行い、誤り訂正済みの受信データを得る。リードソロモン復号部405は、誤り訂正済みの受信データを例えばMAC層処理部406に供給する。MAC層処理部406は、リードソロモン復号部405から誤り訂正済みの受信データを入力して所与のMAC処理を行い、これを上位レイヤへと供給する。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
101・・・フレーム解析部
102・・・誤り計算部
103・・・補正係数記憶部
104・・・データ記憶部
105・・・シンドローム計算部
106・・・誤り多項式係数計算部
107・・・補正計算部
108・・・ガロア体加算器
201,202,212・・・ガロア体乗算器
203・・・マルチプレクサ
211・・・パラレル/シリアル変換部
213・・・補正係数選択部
214・・・シリアル/パラレル変換部
301,321・・・制御部
302,309,322・・・マルチプレクサ
303,305,323,325・・・フリップフロップ
304,306,308,324,326・・・ガロア体乗算器
307・・・加算部
310・・・偶数項加算部
311・・・奇数項加算部
312・・・ガロア体加算器
313・・・誤り検出部
314・・・逆元計算部
401・・・アンテナ
402・・・無線受信部
403・・・A/D変換部
404・・・データ復調部
405・・・リードソロモン復号部
406・・・MAC層処理部

Claims (5)

  1. 少なくとも2つのリードソロモン符号語を含むデータ部と前記データ部のサイズを示す情報を含むヘッダー部とを含むデータフレームのうち前記ヘッダー部を解析し、前記データ部において末尾に配置される最終符号語のサイズを計算する解析部と、
    前記データ部において前記最終符号語の1つ前に配置される符号語に関する誤り検出が開始するよりも前に、前記リードソロモン符号語のベースサイズと前記最終符号語のサイズとの差分に応じて前記最終符号語の誤り位置多項式の係数及び誤り数値多項式の係数を補正するための補正係数を前記最終符号語のサイズに基づいて計算する係数計算部と
    少なくとも1つの乗算器を用いて、チェンサーチによる誤り位置計算及びフォーニー法による誤り数値計算を行う誤り計算部と
    を具備し、
    前記係数計算部及び前記誤り計算部は、前記少なくとも1つの乗算器を共有する、
    リードソロモン復号器。
  2. 前記係数計算部は、前記データ部において先頭に配置される符号語の誤り検出が開始するよりも前に、前記補正係数を前記最終符号語のサイズに基づいて計算する、請求項1のリードソロモン復号器。
  3. 前記係数計算部は、前記解析部が前記最終符号語のサイズの計算を終了するよりも前に初期値に対して乗算因子を第2の回数だけ反復して乗算することによって中間値を計算し、前記解析部が前記最終符号語のサイズの計算を終了してから、(A)前記最終符号語のサイズが前記第2の回数に対応する閾値以下であれば前記中間値に対して前記乗算因子を前記最終符号語のサイズに応じた第1の回数と前記第2の回数との差分だけ反復して乗算することによって前記補正係数を計算し、(B)前記最終符号語のサイズが前記閾値を超えるならば前記初期値に対して前記乗算因子を前記第1の回数だけ反復して乗算することによって前記補正係数を計算する、請求項1のリードソロモン復号器。
  4. 前記係数計算部は、前記最終符号語のサイズが閾値を超えるならば第1の初期値に対して乗算因子を前記最終符号語のサイズに応じた第1の回数だけ反復して乗算することによって前記補正係数を計算し、前記最終符号語のサイズが前記閾値以下であれば第2の初期値に対して前記乗算因子を前記最終符号語のサイズに応じた第2の回数だけ反復して乗算することによって前記補正係数を計算する、請求項1のリードソロモン復号器。
  5. 前記データフレームを受信する無線受信部と、
    請求項1のリードソロモン復号器と
    を具備する、受信装置。
JP2011070699A 2011-03-28 2011-03-28 リードソロモン復号器及び受信装置 Expired - Fee Related JP5275398B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011070699A JP5275398B2 (ja) 2011-03-28 2011-03-28 リードソロモン復号器及び受信装置
US13/409,691 US9077382B2 (en) 2011-03-28 2012-03-01 Reed-solomon decoder and reception apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011070699A JP5275398B2 (ja) 2011-03-28 2011-03-28 リードソロモン復号器及び受信装置

Publications (2)

Publication Number Publication Date
JP2012205272A JP2012205272A (ja) 2012-10-22
JP5275398B2 true JP5275398B2 (ja) 2013-08-28

Family

ID=46928961

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011070699A Expired - Fee Related JP5275398B2 (ja) 2011-03-28 2011-03-28 リードソロモン復号器及び受信装置

Country Status (2)

Country Link
US (1) US9077382B2 (ja)
JP (1) JP5275398B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10355818B1 (en) * 2016-10-10 2019-07-16 Cadence Design Systems, Inc. Method and apparatus for codeword boundary detection for a scrambled reed solomon code bitstream

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0783277B2 (ja) * 1986-09-30 1995-09-06 キヤノン株式会社 ガロア体上の元の表現形式変換回路
JP2547744B2 (ja) * 1986-09-30 1996-10-23 キヤノン株式会社 符号化・復号回路
KR950004226B1 (ko) * 1993-02-12 1995-04-27 삼성전자주식회사 디지탈 데이타 승산처리회로
US5699368A (en) * 1994-03-25 1997-12-16 Mitsubishi Denki Kabushiki Kaisha Error-correcting encoder, error-correcting decoder, and data transmitting system with error-correcting codes
US5768296A (en) * 1994-07-01 1998-06-16 Quantum Corporation ECC system supporting different-length Reed-Solomon codes whose generator polynomials have common roots
JP3233860B2 (ja) * 1996-10-25 2001-12-04 松下電器産業株式会社 リードソロモン復号器
GB2318954B (en) * 1996-10-29 2001-05-23 Daewoo Electronics Co Ltd Reed-solomon decoder for use in advanced television
CA2262894C (en) * 1997-06-19 2004-08-03 Kabushiki Kaisha Toshiba Information data multiplexing transmission system, multiplexer and demultiplexer used therefor, and error correcting encoder and decoder
US5887005A (en) * 1997-06-26 1999-03-23 Integrated Device Technology, Inc. Methods and apparatus for error correction
JP3345385B2 (ja) * 2000-01-18 2002-11-18 松下電器産業株式会社 チェンサーチ装置
JP3606569B2 (ja) * 2001-03-09 2005-01-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 復号回路、該復号回路を用いる復号装置、復号方法および半導体デバイス
US20030009723A1 (en) * 2001-04-24 2003-01-09 Ta-Hsiang Chien Simplified reed-solomon decoding circuit and method of decoding reed-solomon codes
JP3953397B2 (ja) * 2002-09-26 2007-08-08 沖電気工業株式会社 リードソロモン符号化回路およびリードソロモン復号化回路
KR100594241B1 (ko) * 2004-01-29 2006-06-30 삼성전자주식회사 순방향 치엔 서치 방식의 리드 솔로몬 디코더 회로
JP2005303495A (ja) * 2004-04-08 2005-10-27 Matsushita Electric Ind Co Ltd データ転送システム
US7346115B2 (en) * 2004-04-22 2008-03-18 Qualcomm Incorporated Iterative eigenvector computation for a MIMO communication system
US7788570B1 (en) * 2005-03-23 2010-08-31 Marvell International Ltd. Optimized Reed-Solomon decoder
US7613988B1 (en) * 2005-10-18 2009-11-03 Link—A—Media Devices Corporation Degree limited polynomial in Reed-Solomon decoding
US7716562B1 (en) * 2005-10-18 2010-05-11 Link—A—Media Devices Corporation Reduced processing in high-speed reed-solomon decoding
TW200731230A (en) * 2006-02-10 2007-08-16 Sunplus Technology Co Ltd Error correction code decoder
JP4317860B2 (ja) * 2006-08-30 2009-08-19 株式会社日立コミュニケーションテクノロジー 光集線装置および光加入者装置
JP4313391B2 (ja) * 2006-12-13 2009-08-12 株式会社日立コミュニケーションテクノロジー 光集線装置および光加入者装置
TWI487291B (zh) * 2011-11-01 2015-06-01 Univ Nat Chiao Tung 循環碼解碼器及其方法

Also Published As

Publication number Publication date
US20120254704A1 (en) 2012-10-04
JP2012205272A (ja) 2012-10-22
US9077382B2 (en) 2015-07-07

Similar Documents

Publication Publication Date Title
EP2337259B1 (en) Method and apparatus for transmitting and receiving data in a communication system
US7237183B2 (en) Parallel decoding of a BCH encoded signal
JP5219699B2 (ja) 符号化装置及び復号装置
JP5612699B2 (ja) 通信システムにおけるデータ送受信方法及び装置
JP4688841B2 (ja) 符号化器及び復号器、並びに送信装置及び受信装置
JP2015130602A (ja) データ処理装置及びデータ処理方法
US20120317457A1 (en) High-performance ecc decoder
JP2009171539A (ja) 送信装置および方法、受信装置および方法、並びにプログラム
JP2003516018A (ja) 加速式リード−ソロモン誤り訂正
CN101621299A (zh) 一种突发纠错的方法、设备和装置
JP2009225164A (ja) 復号装置および復号装置を有するテレビジョン受信機
CN1636324A (zh) 纠错解码器的钱搜索单元
CN106506011A (zh) 电力线工频通信编码纠错方法
JP5275398B2 (ja) リードソロモン復号器及び受信装置
EP3442145B1 (en) Coding method and codec with dynamic power consumption control
Huu et al. Multi-hop Reed-Solomon encoding scheme for image transmission on wireless sensor networks
WO2011154750A1 (en) Decoding of reed - solomon codes using look-up tables for error detection and correction
JP2008017001A (ja) 誤り訂正装置
Ji An optimized processor for fast Reed-Solomon encoding and decoding
CN104052502B (zh) 译码的方法和译码器
JP5581969B2 (ja) 復号装置および方法、並びにプログラム
JP2012169926A (ja) Crc演算回路
JP5611893B2 (ja) 無線通信システム
Team An Efficient Semi-Algebraic Decoding Algorithm for Golay Code
Jie et al. New Application of Reed-Solomon Codes in China Mobile Multimedia Broadcasting System

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130129

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130401

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130515

LAPS Cancellation because of no payment of annual fees