KR100526222B1 - 복호장치 및 복호방법 - Google Patents

복호장치 및 복호방법 Download PDF

Info

Publication number
KR100526222B1
KR100526222B1 KR10-2002-7012764A KR20027012764A KR100526222B1 KR 100526222 B1 KR100526222 B1 KR 100526222B1 KR 20027012764 A KR20027012764 A KR 20027012764A KR 100526222 B1 KR100526222 B1 KR 100526222B1
Authority
KR
South Korea
Prior art keywords
error
data
correction
syndrome
correction data
Prior art date
Application number
KR10-2002-7012764A
Other languages
English (en)
Other versions
KR20030036148A (ko
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 KR20030036148A publication Critical patent/KR20030036148A/ko
Application granted granted Critical
Publication of KR100526222B1 publication Critical patent/KR100526222B1/ko

Links

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
    • 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/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/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/1525Determination and particular use of error location polynomials
    • H03M13/1535Determination and particular use of error location polynomials using the Euclid algorithm
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • 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

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)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

확대 리드 솔로몬 부호의 복호 시에 정정오류를 방지한다. 입력데이터로부터 입력데이터 신드롬을, 입력데이터에 기초하여 구해진 제 1 정정데이터로부터 정정데이터 신드롬을 구하는 신드롬 계산부와, 입력데이터 신드롬에 기초한 오류평가 다항식 및 오류위치 다항식의 각 차수의 계수, 그리고 오류값을 출력하는 평가다항식·위치다항식 산출부와, 오류위치 다항식의 근을 출력하는 첸 탐색부와, 입력데이터에 오류가 존재하는 경우는 입력데이터에 대해 오류정정 처리를 행한 데이터를, 그렇지 않은 경우는 입력데이터를, 제 1 정정데이터로서 출력함과 동시에, 제 1 정정데이터에 오류가 존재할 경우는 복원처리를 행하여 얻은 입력데이터를, 그렇지 않은 경우는 제 1 정정데이터를, 제 2 정정데이터로서 출력하는 에러정정부를 구비한다.

Description

복호장치 및 복호방법{DECODER AND DECODING METHOD}
본 발명은 확대 리드솔로몬(Reed-Solomon) 부호의 다중오류 정정을 실행하는 복호기술에 관한 것이다.
각종 대용량 기억장치에 있어서 정보의 기억, 고속통신의 정보 전송 등을 위해, 다중오류 정정을 가능하게 하는 부호로서 리드 솔로몬 부호가 널리 사용되고 있다.
리드 솔로몬 부호는 원시다항식을 W(z)로 하고, W(z)=0의 근을 α로 할 때, 이 근(α)을 원시원소로 하는 갈로아체(Galois field) 상의 부호이며, 블록오류 정정부호의 하나이다. 여기서 갈로아체 GF(2m)의 원시원소를 α로 하고, 이 갈로아체 GF(2m)의 원소(α0, α1, …, α⌒(2m-2)) 중에 근을 갖는 리드 솔로몬 부호를 생각한다. 이 부호에서는 부호길이 n=2m-1이고, m비트가 1 처리단위, 즉 1 심벌이 된다. 원정보(原情報)의 양은 n-2t심벌(t는 오류정정 수)이다.
리드 솔로몬 부호의 복호는 일반적으로,
(a) 신드롬(syndrome) 산출
(b) 오류평가 다항식 및 오류위치 다항식의 산출
(c) 첸 탐색(Chien search)에 의한 오류위치 산출
(d) 오류값 산출
(e) 오류위치와 오류값에 기초한 데이터 정정
순서로 실행한다. 이 복호방법의 상세에 관해서는 일특개평 10-135846호 공보에 개시되어 있다.
그러나 최근, 케이블 모뎀이나 케이블 TV 등의 시스템에서, 확대 리드 솔로몬 부호를 이용하여 오류정정을 하는 사양이 채용되고 있다. 확대 리드 솔로몬 부호는 부호길이(n)가, 부호의 근이 속하는 갈로아체 원소의 수(q) 이상인 부호이며, 부호길이 n=q의 경우는 1차 확대 리드 솔로몬 부호, 부호길이 n=q+1의 경우는 2차 확대 리드 솔로몬 부호라 불린다.
예를 들어 북미의 케이블 TV 시스템에서는, 갈로아체 GF(27) 상에 있어서, 원시다항식(P(x))으로서 P(x)=x7+x3+1, 생성다항식(GL(x))으로서 GL (x)=(x+α)(x+α2)(x+α3)(x+α4)(x+α5)를 이용한, 오류정정 수 t=3의 1차 확대 리드 솔로몬 부호가 채용됐다. 또 이 확대 리드 솔로몬 부호에서는, 오류정정 수 t=3임에도 불구하고 생성다항식(GL(x))은 5차 다항식이기 때문에, 신드롬 계수 산출 시 통상과 다른 처리가 필요해진다.
통상의 리드 솔로몬 부호는 부호길이 n을 2m으로 할 경우, 2m+1 개의 원소를 갖는 갈로아체 GF(2m+1) 상에서 부호를 구성할 필요가 있지만, 확대 리드 솔로몬 부호는 갈로아체 GF(2m) 상에서라도 부호길이 n을 2m 이상으로 신장시키는 것이 가능하다.
- 해결과제 -
1심벌의 비트 수 m=7, 오류정정 수 t=3으로 하는 갈로아체 GF(27) 상의 리드 소로몬 부호를 생각하기로 한다.
통상의 리드 솔로몬 부호는, 갈로아체 GF(27)의 원소 α0, α1, …, α 126 중에 근을 가지며, 부호길이 n=127이다. 생성다항식 G(x)의 차수는 오류정정 수(t)의 2 배이므로, 오류정정 수 t=3일 때 생성다항식 G(x)는, 6차 다항식을 이용하여 G(x)=(x+α)(x+α2)(x+α3)(x+α4)(x+α5)(x+α6)으로 할 수 있다.
한편, 확대 리드 솔로몬 부호를 생각한다면, 같은 갈로아체 GF(27)에 있어서 보다 긴 부호길이를 갖는 부호를 구성하여 오류정정을 실행하는 것이 가능하다. 예를 들어 부호길이 n=128로 하는 확대 리드 솔로몬 부호를 생각할 수 있다.
통상의 리드 솔로몬 부호의 복호에 있어서, 오류위치 다항식의 근과 오류위치는 1 대 1로 대응하므로, 첸 탐색에 의해 오류위치 다항식을 해석함으로써 오류위치가 구해진다. 첸 탐색은 갈로아체의 모든 원소를 오류위치 다항식에 순차 대입해 가서, 이 식의 값이 0이 되는 원소를 오류위치 다항식의 근으로 하여 구하는 방법이다. 예를 들어 오류정정 수 t=3의 경우, 3차 식으로 되는 오류위치 다항식에 원소를 순차 대입시켜, 식의 값이 0이 됐을 때 대입한 원소가 오류위치 다항식의 3 개의 근으로서 구해진다.
부호어에 정정 능력을 초과한 오류가 부가됐을 경우는, 오류평가 다항식과 오류위치 다항식이 바르게 산출되지 않거나, 첸 탐색 처리에서 바르게 오류위치 다항식의 근이 산출되지 않음으로써, 오류정정이 불가능하다는 것을 인식할 수 있다. 이 경우는 오류정정 처리를 실시하지 않고 입력데이터를 그대로 출력한다.
그러나 확대 리드 솔로몬 부호에서는, 부호길이(n)가 갈로아체 GF(27)의 0 이외의 원소 개수보다 커지기 때문에, 원소와 오류위치가 1 대 1로 대응하지 않아, 첸 탐색에 대하여 통상의 리드 솔로몬 부호의 복호와는 다른 처리를 실행할 필요가 있다.
그래서 다음과 같이 생각하여 확대 리드 솔로몬 부호를 복호한다. 예를 들어 부호길이 n=128의 확대 리드 솔로몬 부호는 오류정정 수(t)가 3일 경우, 정보기호 122 심벌과 용장기호 6 심벌로 구성된다. 갈로아체 GF(27)에서 첸 탐색에 의해 정정할 수 있는 것은 127 심벌뿐이므로, 수신어 128 심벌 중 용장기호 1 심벌을 제외한 나머지 127 심벌만을 대상으로 하여 오류정정을 행한다.
그러나 128 심벌의 부호를 이용하여 부호 중 127 심벌을 정정하는 것과, 정정처리를 실시하지 않는 용장기호 1 심벌에 대하여 오류가 발생할 경우도 있으므로, 정정이 바르게 실행되지 않는 정정오류가 발생한다는 문제가 있다.
도 1은 본 발명의 실시형태에 관한 리드 솔로몬 복호장치의 구성을 나타내는 블록도.
도 2는 도 1의 리드 솔로몬 복호장치에서의 처리를 설명하는 흐름도.
도 3은 도 1의 신드롬 계산부 구성을 나타내는 블록도.
도 4는 도 1의 에러정정부 구성을 나타내는 블록도.
도 5는 도 1의 리드 솔로몬 복호장치에서의 동작을 설명하는 타이밍도.
도 6은 도 3에 나타내는 신드롬 계산부의 내부 동작을 설명하는 타이밍도.
본 발명은 이와 같은 문제를 해결하는 것이며, 확대 리드 솔로몬 부호의 수신어에 대한 복호 시, 오류정정이 가능한지의 여부를 판정하고, 오류정정이 가능할 경우에는 바르게 정정 처리를 실시한 데이터를 얻음과 동시에, 오류정정이 불가능할 경우에는 정정오류를 하지 않도록 하는 복호장치 및 복호방법을 제공하는 것을 목적으로 한다.
제 1 발명의 복호장치는, 확대 리드 솔로몬 부호로 된 수신어에 오류정정 처리를 실행하여 정정 데이터를 구하는 정정처리부를 구비하고, 상기 정정처리부는, 생성된 정정데이터에 대하여 그 신드롬에 기초하여 오류의 유무를 판정하며, 오류가 없는 정정 데이터가 생성된 경우는 당해 정정 데이터를 출력하는 한편, 오류가 없는 정정 데이터가 생성되지 못할 경우는 오류정정 전의 수신어를 출력하는 것이다.
이로써 수신어에 대하여, 최종적으로 오류가 없는 정정 데이터가 생성되지 않는다고 판정된 경우에는, 바르게 정정되지 못한 데이터를 출력하지 않도록 할 수 있다.
또 상기 제 1 발명의 복호장치에 있어서 상기 정정처리부는, 상기 수신어로부터 생성된 정정 데이터에 오류가 존재할 경우, 오류가 없는 정정 데이터가 생성될 수 없다고 판정하는 것이 바람직하다.
이로써 정정 데이터에 오류가 존재할 때는, 그 이상 오류정정을 실행하지 않고, 오류가 없는 정정데이터가 생성되지 않는다고 판정하여, 오류정정 전의 수신어를 출력할 수 있다.
또한 상기 제 1 발명의 복호장치에 있어서 상기 정정처리부는, 상기 오류정정 처리를, 오류가 없는 정정 데이터가 생성될 때까지 반복 실행하는 것이며, 오류정정 처리를 소정 회수 실행해도 오류가 없는 정정 데이터가 생성되지 않을 경우는, 오류가 없는 정정 데이터가 생성되지 않는다고 판정하는 것이 바람직하다.
이로써 오류정정을 반복 실행하여, 오류가 없는 정정 데이터의 생성 가능성을 높일 수 있다.
또 제 2 발명의 복호장치는, 확대 리드 솔로몬 부호로 된 수신어를 입력 데이터로 하고, 상기 입력데이터의 신드롬을 입력데이터 신드롬으로서 구하며, 당해 입력데이터 신드롬에 기초하여 상기 입력데이터에 오류가 존재하는지의 여부를 나타내는 제 1 플래그신호를 출력하고, 또한, 상기 입력데이터에 기초하여 구해진 제 1 정정데이터의 신드롬을 정정데이터 신드롬으로서 구하며, 당해 정정데이터 신드롬에 기초하여 상기 제 1 정정데이터에 오류가 존재하는지의 여부를 나타내는 제 2 플래그신호를 출력하는 신드롬 계산부와, 상기 입력데이터 신드롬에 기초하여 오류평가 다항식 및 오류위치 다항식 각 차수의 계수를 구함과 동시에, 상기 계수로부터 구해진 오류의 평가값 및 대응하는 오류위치 다항식 미분값에 기초하여 오류값을 구하는 평가다항식·위치다항식 산출부와, 상기 계수에 기초하여 상기 오류위치 다항식의 근을 구함과 동시에, 상기 오류평가 다항식에 상기 근의 각각을 대입시켜 얻는 오류의 평가값 및 상기 오류위치 다항식의 유도함수에 상기 근의 각각을 대입시켜 얻는 오류위치 다항식 미분값을 구하는 첸 탐색부와, 상기 제 1 플래그신호가 상기 입력데이터에 오류가 존재함을 나타낼 경우는, 상기 근 및 대응하는 상기 오류값에 기초하여, 상기 입력데이터에 오류정정 처리를 실행하여 얻은 데이터를 상기 제 1 정정데이터로서 출력하고, 상기 제 1 플래그신호가 상기 입력데이터에 오류가 존재하지 않음을 나타낼 경우는 당해 입력데이터를 상기 제 1 정정데이터로서 출력함과 동시에, 상기 제 2 플래그신호가 상기 제 1 정정데이터에 오류가 존재함을 나타낼 경우는 상기 제 1 정정데이터에 대하여 오류정정 처리 전의 데이터로 되돌리는 복원처리를 실행하여 얻은 데이터를 제 2 정정데이터로서 출력하며, 상기 제 2 플래그신호가 상기 제 1 정정데이터에 오류가 존재하지 않음을 나타낼 경우는 당해 제 1 정정데이터를 제 2 정정데이터로서 출력하는 에러정정부를 구비하는 것이다.
이로써 입력데이터 신드롬만이 아닌 정정데이터 신드롬도 구할 수 있으므로, 오류정정이 바르게 실행됐는지의 여부를 알 수 있다.
또한 상기 제 2 발명의 복호장치에 있어서 상기 신드롬 계산부는, 상기 입력데이터 및 상기 에러정정부가 출력하는 상기 제 1 정정데이터를 입력으로 하고, 이들을 번갈아 출력하는 선택기와, 상기 선택기가 출력하는 상기 입력데이터 및 상기 제 1 정정데이터에 기초하여 상기 입력데이터 신드롬 및 상기 정정데이터 신드롬을 각각 구하는 신드롬 연산기와, 상기 입력데이터 신드롬을 유지하고 출력하는 입력데이터 신드롬 유지기와, 상기 정정데이터 신드롬을 유지하고 출력하는 정정데이터 신드롬 유지기와, 상기 입력데이터 신드롬 유지부가 출력하는 상기 입력데이터 신드롬의 성분이 모두 0일 경우는 상기 입력데이터에 오류가 존재하지 않음을 나타내도록 하고, 그렇지 않을 경우는 상기 입력데이터에 오류가 존재함을 나타내도록, 상기 제 1 플래그신호를 출력하는 제 1 신드롬 영 검출기와, 상기 정정데이터 신드롬 유지부가 출력하는 상기 정정데이터 신드롬의 성분이 모두 0일 경우는 상기 제 1 정정데이터에 오류가 존재하지 않음을 나타내도록 하고, 그렇지 않을 경우는 상기 입력데이터에 오류가 존재함을 나타내도록, 상기 제 2 플래그신호를 출력하는 제 2 신드롬 영 검출기를 구비하는 것이 바람직하다.
이로써 입력데이터 신드롬 및 정정데이터 신드롬을 병행시켜 구하여 제 1 플래그신호 및 제 2 플래그신호를 동시에 출력하므로, 입력데이터 및 제 1 정정데이터에 오류가 존재하는지의 여부를 동시에 알 수 있다.
또한 상기 제 2 발명의 복호장치에 있어서 상기 평가다항식, 위치다항식 산출부는, 유클리드 호제연산에 의해, 상기 입력데이터 신드롬에 기초하여 상기 오류평가 다항식 및 상기 오류위치 다항식 각 차수의 계수를 구하여 출력하는 것이며, 상기 유클리드 호제연산 종료 시에, 상기 오류위치 다항식 차수가 상기 오류평가 다항식 차수 이하라도 상기 계수를 출력하는 것이 바람직하다.
이로써 유클리드 호제연산 결과에 상관없이, 오류평가 다항식 및 오류위치 다항식을 얻을 수 있으므로, 오류위치 및 오류값을 구하여 확대 리드 솔로몬 부호의 복호를 실행할 수 있다.
또 상기 제 2 발명의 복호장치에 있어서 상기 첸 탐색부는, 상기 오류위치 다항식에 상기 확대 리드 솔로몬 부호의 근이 정의되는 갈로아체 원소를 순차 대입시켜, 상기 오류위치 다항식의 값이 0이 되는 원소를 당해 오류위치 다항식의 근으로서 구하고, 당해 오류위치 다항식의 서로 다른 근의 수가 당해 오류위치 다항식의 차수 미만일 경우라도, 당해 오류위치 다항식의 근을 출력하는 것이 바람직하다.
이로써, 첸 탐색에 의해 얻어진 오류위치 다항식의 서로 다른 근의 수에 상관없이, 그 근을 이용할 수 있으므로 오류위치 및 오류값을 구하여 확대 리드 솔로몬 부호의 복호를 실행할 수 있다.
또한 상기 제 2 발명의 복호장치에 있어서 상기 에러정정부는, 상기 제 1 플래그신호가 상기 입력데이터에 오류가 존재함을 나타낼 경우는, 상기 입력데이터에 대하여 상기 근 각각에 대응하는 오류위치가 나타내는 심벌로부터, 대응하는 상기 오류값을 빼는 오류정정 처리를 행하여 얻은 데이터를 출력하고, 그렇지 않은 경우는 상기 입력데이터를 각각 상기 제 1 정정데이터로서 출력하는 제 1 에러정정기와, 상기 에러위치를 유지하고 출력하는 오류위치 데이터 유지기와, 상기 오류값을 유지하고 출력하는 오류값 데이터 유지기와, 상기 제 2 플래그신호가 상기 제 1 정정데이터에 오류가 존재함을 나타낼 경우는, 상기 제 1 정정데이터에 대하여 상기 오류위치가 나타내는 심벌에 대응하는 상기 오류값을 가산하여 상기 오류정정 처리를 행하기 전의 데이터로 되돌리는 복원처리를 행하여 얻은 데이터를 출력하고, 그렇지 않은 경우는 상기 제 1 정정데이터를, 각각 상기 제 2 정정데이터로서 출력하는 제 2 에러정정기를 구비하는 것이 바람직하다.
이로써 입력데이터에 대한 정정처리와, 제 1 정정데이터에 대한 복원처리를 병행시켜 행할 수 있어, 고속처리가 가능하다.
또 상기 제 2 발명의 복호장치에 있어서, 상기 입력데이터를, 상기 에러정정부가 제 1 정정데이터를 구하기 시작할 때까지 유지한 후 출력하고, 상기 제 1 정정데이터를, 상기 에러정정부가 상기 제 2 정정데이터를 구하기 시작할 때까지 유지한 후 출력하는 데이터 기억부를 추가로 구비하는 것이 바람직하다.
이로써 에러정정부에 필요한 데이터를 적절한 타이밍으로 공급할 수 있다. 또 1 개의 수신어에 관해서는, 입력데이터 또는 이 입력데이터로부터 생성된 제 1 정정데이터 중 어느 한쪽을 기억하면 되므로, 데이터 기억부 용량을 작게 할 수 있다.
또한 제 3 발명은 복호방법으로서, 확대 리드 솔로몬 부호로 된 수신어에 오류정정 처리를 행하여 정정데이터를 구하는 정정처리 공정을 구비하고, 상기 정정처리 공정에서는, 생성된 정정데이터에 대하여 그 신드롬에 기초하여 오류의 유무를 판정하며, 오류가 없는 정정데이터가 생성된 경우는 당해 정정데이터를, 구해야 할 정정데이터로서 결정하는 한편, 오류가 없는 정정데이터가 생성되지 못한 경우는 오류정정 전의 수신어를, 구해야 할 정정데이터로서 결정하는 것이다.
또, 상기 제 3 발명의 복호방법에 있어서, 상기 정정처리 공정에서 상기 수신어로부터 생성된 정정데이터에 오류가 존재할 경우는, 오류가 없는 정정데이터가 생성할 수 없다고 판정하는 것이 바람직하다.
또한 상기 제 3 발명의 복호방법에 있어서, 상기 정정처리 공정에서는 상기 오류정정 처리를, 오류가 없는 정정데이터가 생성될 때까지 반복 실행하고, 오류정정 처리를 소정 회수 행해도 오류 없는 정정데이터가 생성되지 않을 경우는, 오류 없는 정정데이터를 생성할 수 없다고 판정하는 것이 바람직하다.
-발명의 효과-
본 발명에 관한 복호장치 및 복호방법에 의하면, 오류정정 처리 후의 데이터에 대하여 재차 신드롬 계산을 행해 오류검출을 함으로써 정정오류를 방지할 수 있어, 통상의 리드 솔로몬 부호만이 아닌 확대 리드 솔로몬 부호의 복호가 실현 가능해진다.
이하, 본 발명의 실시형태에 대하여 도면을 참조하면서 설명하기로 한다.
도 1은 본 발명의 실시형태에 관한 리드 솔로몬 복호장치의 구성을 나타내는 블록도이다. 도 1의 리드 솔로몬 복호장치는, 신드롬 계산부(10)와, 평가다항식·위치다항식 산출부(20)와, 첸 탐색부(30)와, 에러정정부(40)와, 데이터 기억부(50)를 구비한다. 신드롬 계산부(10), 평가다항식·위치다항식 산출부(20), 첸 탐색부(30), 에러정정부(40)는 정정처리부로서 동작한다.
도 1의 리드 솔로몬 복호장치는, 확대 리드 솔로몬 부호로 된 수신어를 입력데이터(DI)로 하고, 이를 복호하여 제 2 정정데이터(C2)로서 출력하는 것이다. 이하에서는 예로서, 입력되는 확대 리드 솔로몬 부호는, 갈로아체 GF(27) 상의 1차 확대 리드 솔로몬 부호이며, 1 심벌의 비트 수 m=7, 부호길이 n=128인 것으로 한다. 수신어 1 개는 128 심벌로 구성된다. 또 오류정정 수 t=3인 것으로 하여 설명한다. 따라서 이 확대 리드 솔로몬 부호는 3 심벌의 오류정정이 가능하다.
도 2는 도 1의 리드 솔로몬 복호장치에서의 처리를 설명하는 흐름도이다. 이하에서는 도 1 및 도 2의 단계(S1~S11)를 참조하면서 설명한다. 수신어에는, 수신어 중 위치(ju)의 심벌에, 크기 eu의 오류가 발생한 것으로 한다. 단 u=1, 2, …, k(k≤t)이다. 이와 같은 수신어 중의 오류심벌의 위치(ju)를 오류위치라 한다.
신드롬 계산부(10) 및 데이터 기억부(50)에는, 입력데이터(DI)가 입력된다. 데이터 기억부(50)는 입력데이터(DI)를 기억하여 에러정정부(40)로 출력한다.
단계(S1)에서, 신드롬 계산부(10)는 입력데이터(DI)의 신드롬을 입력데이터 신드롬(SI)으로서 산출한다.
단계(S2)에서, 신드롬 계산부(10)는 입력데이터 신드롬(SI)의 성분이 모두 0인지 여부를 검출한다. 신드롬 계산부(10)는, 입력데이터 신드롬(SI)의 성분이 모두 0일 경우는 입력데이터(DI)에 오류가 없는 것으로 판정하고, 제 1 플래그신호로서의 제 1 무 오류상태 시사신호(F1)를 활성으로 하여 에러정정부(40)로 출력한 후, 단계(S3)의 처리로 이동한다. 신드롬 계산부(10)는, 입력데이터 신드롬(SI) 성분에 0이 아닌 것이 있을 경우는 입력데이터(DI)에 오류가 있는 것으로 판정하고, 제 1 무 오류상태 시사신호(F1)를 비활성으로 하여 에러정정부(40)로 출력한 후, 단계(S4)의 처리로 이동한다. 어떤 경우든 신드롬 계산부(10)는 입력데이터 신드롬(SI)을 평가다항식·위치다항식 산출부(20)로 출력한다.
단계(3)에서 에러정정부(40)는, 제 1 무 오류상태 시사신호(F1)가 활성이기 때문에 오류정정이 필요 없음을 알 수 있으므로, 데이터 기억부(50)가 출력하는 입력데이터(DI)를 그대로, 제 1 정정데이터로서 신드롬 계산부(10) 및 데이터 기억부(50)로 출력한다.
단계(S4~S7)는, 제 1 무 오류상태 시사신호(F1)가 비활성으로서 입력데이터(DI)에 오류가 존재하는 경우의 처리이다.
단계(S4)에서 평가다항식·위치다항식 산출부(20)는, 유클리드 호제연산에 의해 입력데이터 신드롬(SI)으로부터 오류위치다항식(σ(z)) 및 오류평가다항식(ω(z))의 각 차수의 계수를 구하고, 이들 다항식의 계수를 첸 탐색부(30)로 출력한다.
평가다항식·위치다항식 산출부(20)는, 데이터 유지기(도시 생략) 및 갈로아 연산기(도시 생략)를 구비한다. 데이터 유지기는, 입력데이터 신드롬(SI) 및 유클리드 호제연산의 중간결과를 유지하고, 최종적으로 오류위치다항식(σ(z)) 및 오류평가다항식(ω(z))의 각 차수의 계수를 출력한다. 갈로아 연산기는, 데이터 유지기의 출력으로부터 유클리드 호제연산을 행하여 중간결과를 구하고, 데이터 유지기로 출력한다. 이 유클리드 호제연산의 상세에 대해서는 일특개평 10-135846호 공보에 개시되어 있다.
또 도 1의 평가다항식·위치다항식 산출부(20)는, 유클리드 호제연산 종료 시에 오류위치다항식(σ(z))의 차수가 오류평가다항식(ω(z))의 차수 이하라도, 이들 다항식의 계수를 출력한다.
단계(S5)에서 첸 탐색부(30)는, 첸 탐색을 실행하여 오류위치다항식(σ(z))의 근(α-ju)을 구한다. 즉 첸 탐색부(30)는 오류위치다항식(σ(z))에 갈로아체(GF(27))의 원소를 순차 대입시켜, 오류위치다항식(σ(z))의 값이 0이 되는 원소를 이 오류위치다항식(σ(z))의 근(α-ju)으로서 구하고, 에러정정부(40)로 출력한다. 이 때 첸 탐색부(30)는, 오류위치다항식(σ(z))이 갈로아체(GF(27))가 갖는, 서로 다른 근의 수가 이 오류위치다항식(σ(z))의 차수 미만일 경우라도 오류정정이 가능한지의 여부를 판단하지 않고, 근(α-ju)을 에러정정부(40)로 출력한다. 오류위치다항식(σ(z))의 근(α-ju) 각각에는 오류위치(ju)가 대응한다.
또 첸 탐색부(30)는 오류평가다항식(ω(z))에 오류위치다항식(σ(z))의 근(α-ju) 각각을 대입시켜 오류평가값(ω(α-ju))을 구함과 동시에, 오류위치다항식(σ(z))의 유도함수에 오류위치다항식(σ(z))의 근(α-ju) 각각을 대입시켜 오류위치다항식 미분값(σ'(α-ju))을 구한다. 첸 탐색부(30)는, 오류평가값(ω(α-ju)) 및 오류위치다항식 미분값(σ'(α-ju))을 평가다항식·위치다항식 산출부(20)로 출력한다.
단계(S6)에서는, 평가다항식·위치다항식 산출부(20)에서의 갈로아 연산기(도시 생략)가, 오류평가값(ω(α-ju))을, 대응하는 오류위치다항식 미분값(σ'(α-ju))으로 나누고, 오류위치(ju) 각각의 심벌 중의 오류 비트를 나타내는 오류값(eu)을 구하여 에러정정부(40)로 출력한다.
단계(S7)에서 에러정정부(40)는, 첸 탐색부(30)가 출력하는 오류위치다항식(σ(z))의 근(α-ju) 각각에 대응한 오류위치(ju)와, 평가다항식·위치다항식 산출부(20)가 출력하는 오류값(eu)에 기초하여, 데이터 기억부(50)가 출력하는 입력데이터(DI)에 대해 오류정정 처리를 행한다. 즉 입력데이터(DI)인 수신어의 오류위치(ju) 심벌로부터, 그에 대응된 오류값(eu)을 감산한다. 갈로아체 GF(2)의 확대체 상에서의 연산이므로, 오류값(eu)을 감산하는 대신 가산해도 된다.
에러정정부(40)는, 오류정정 처리 후의 데이터를 제 1 정정데이터(C1)로서 신드롬 계산부(10) 및 데이터 기억부(50)로 출력한다. 데이터 기억부(50)는 제 1 정정데이터(C1)를 기억하고, 이를 에러정정부(40)로 다시 출력한다.
단계(S8)에서 신드롬 계산부(10)는, 제 1 정정데이터(C1)의 신드롬을 정정데이터 신드롬(SC)으로서 산출한다.
단계(S9)에서 신드롬 계산부(10)는, 정정데이터 신드롬(SC)의 성분이 모두 0인지 여부를 검출한다. 신드롬 계산부(10)는, 정정데이터 신드롬(SC)의 성분이 모두 0일 경우는 제 1 정정데이터(C1)에 오류가 없는 것으로 판정하고, 제 2 플래그신호로서의 제 2 무 오류상태 시사신호(F2)를 활성으로 하여 에러정정부(40)로 출력한 후 단계(S10)의 처리로 이동한다. 신드롬 계산부(10)는, 정정데이터 신드롬(SC)의 성분에 0이 아닌 것이 있을 경우는 제 1 정정데이터(C1)에 오류가 있는 것으로 판정하고, 제 2 무 오류상태 시사신호(F2)를 비활성으로 하여 에러정정부(40)로 출력한 후 단계(S11)의 처리로 이동한다.
단계(S10)에서 에러정정부(40)는, 제 2 무 오류상태 시사신호(F2)가 활성이기 때문에 제 1 정정데이터(C1)에 오류가 없음을 알 수 있으므로, 데이터 기억부(50)가 출력하는 제 1 정정데이터(C1)를 그대로, 제 2 정정데이터(C2)로서 출력한다.
단계(S11)에서 에러정정부(40)는, 제 2 무 오류상태 시사신호(F2)가 비활성이기 때문에 제 1 정정데이터(C1)에 오류가 있음을 알 수 있으므로, 첸 탐색부(30)가 출력하는 오류위치다항식(σ(z))의 근(α-ju) 각각에 대응한 오류위치(ju)와, 평가다항식·위치다항식 산출부(20)가 출력하는 오류값(eu)에 기초하여, 데이터 기억부(50)가 출력하는 제 1 정정데이터(C1)를 정정처리 전의 입력데이터(DI)로 복원하는 처리를 행한다. 즉 제 1 정정데이터(C1)의 오류위치(ju) 심벌에 대해, 그에 대응된 오류값(eu)을 가산 또는 감산한다. 에러정정부(40)는, 복원시켜 얻어진 입력데이터(DI)를 제 2 정정데이터(C2)로서 출력한다.
도 3은 도 1의 신드롬 계산부(10) 구성을 나타내는 블록도이다. 도 3의 신드롬 계산부는, 선택기(11)와, 신드롬 연산기(12)와, 입력데이터 신드롬 유지기(13)와, 정정데이터 신드롬 유지기(14)와, 제 1 신드롬 영(零) 검출기(15)와, 제 2 신드롬 영 검출기(16)를 구비한다.
선택기(11)에는, 입력데이터(DI) 및 제 1 정정데이터(C1)가 입력되며, 선택기(11)는 이들을 번갈아 신드롬 연산기(12)로 출력한다. 신드롬 연산기(12)는 선택기(11)와 동기하여 동작하며, 입력데이터 신드롬(SI)을 구하는 계산과 정정데이터 신드롬(SC)을 구하는 계산을 번갈아 실행하여, 계산결과를 입력데이터 신드롬 유지기(13)와 정정데이터 신드롬 유지기(14)로 출력한다.
입력데이터 신드롬 유지기(13)는, 신드롬 연산기(12)의 출력 중 입력데이터 신드롬(SI)만을 수취하여 유지한 후, 제 1 신드롬 영 검출기(15)로 출력한다. 제 1 신드롬 영 검출기(15)는, 입력데이터 신드롬(SI)의 성분이 모두 0일 경우는 입력데이터(DI)에 오류가 존재하지 않는 것으로 판정하여, 제 1 무 오류상태 시사신호(F1)를 활성으로 함과 동시에, 입력데이터 신드롬(SI)의 성분에 0이 아닌 것이 있을 경우는 입력데이터(DI)에 오류가 존재하는 것으로 판정하여, 제 1 무 오류상태 시사신호(F1)를 비활성으로 하여, 에러정정부(40)로 출력한다. 또 입력데이터 신드롬 유지기(13)는, 제 1 신드롬 영 검출기(15)가 제 1 무 오류상태 시사신호(F1)를 출력하는 시점에 동기하여, 입력데이터 신드롬(SI)을 평가다항식·위치다항식 산출부(20)로 출력한다.
마찬가지로 정정데이터 신드롬 유지기(14)는, 신드롬 연산기(12)의 출력 중 정정데이터 신드롬(SC)만을 수취하여 유지한 후, 제 2 신드롬 영 검출기(16)로 출력한다. 제 2 신드롬 영 검출기(16)는, 정정데이터 신드롬(SC)의 성분 모두가 0일 경우는 제 2 무 오류상태 시사신호(F2)를 활성으로 하고, 정정데이터 신드롬(SC)의 성분에 0이 아닌 것이 있을 경우는 제 2 무 오류상태 시사신호(F2)를 비활성으로 하여, 에러정정부(40)로 출력한다.
도 4는 도 1의 에러정정부(40) 구성을 나타낸 블록도이다. 도 4의 에러정정부(40)는, 제 1 에러정정기(41)와, 오류위치 데이터 유지기(42)와, 오류값 데이터 유지기(43)와, 제 2 에러정정기(44)를 구비한다.
제 1 에러정정기(41)에는, 제 1 무 오류상태 시사신호(F1), 데이터 기억부(50)가 출력하는 입력데이터(DI), 첸 탐색부(30)가 출력하는 오류위치 다항식(σ(z))의 근(α-ju) 및 평가다항식·위치다항식 산출부(20)가 출력하는 오류값(eu)이 입력된다.
제 1 에러정정기(41)는, 제 1 무 오류상태 시사신호(F1)가 활성일 경우는 입력데이터(DI)에 오류정정이 필요 없으므로, 입력데이터(DI)를 그대로 제 1 정정데이터로서 출력한다. 또 제 1 에러정정기(41)는, 제 1 무 오류상태 시사신호(F1)가 비활성일 경우는, 입력데이터(DI)가 오류를 포함하여 오류정정이 필요하므로, 입력데이터(DI)에서 근(α-ju)에 대응된 오류위치(ju) 각각이 나타내는 심벌에 대하여, 그 오류위치(ju)에 대응하는 오류값(eu)을 감산 또는 가산하는 오류정정 처리를 행하고, 정정처리 후의 데이터를 제 1 정정데이터(C1)로서 출력한다. 제 1 에러정정기(41)는, 제 1 정정데이터(C1)를 신드롬 계산부(10) 및 데이터 기억부(50)로 출력한다.
오류위치 데이터 유지기(42)는 근(α-ju)을 기억하고, 제 2 에러정정기(44)로 출력한다. 오류값 데이터 유지기(43)는, 오류값(eu)을 기억하고, 제 2 에러정정기(44)로 출력한다.
제 2 에러정정기(44)에는, 제 2 무 오류상태 시사신호(F2), 데이터 기억부(50)가 출력하는 제 1 정정데이터(C1), 오류위치 다항식(σ(z))의 근(α-ju), 오류값(eu)이 입력된다.
제 2 에러정정기(44)는, 제 2 무 오류상태 시사신호(F2)가 활성일 경우는 제 1 정정데이터(C1)에 오류정정이 필요 없으므로, 제 1 정정데이터(C1)를 그대로 제 2 정정데이터(C2)로서 출력한다. 또 제 2 에러정정기(44)는, 제 2 무 오류상태 시사신호(F2)가 비활성일 경우는, 제 1 정정데이터(C1)가 오류를 포함하여 오류정정이 필요하므로, 근(α-ju)에 대응된 오류위치(ju)와 오류값(eu)에 기초하여, 제 1 정정데이터(C1)를 제 1 에러정정기(41)의 정정처리 전의 입력데이터(DI)로 되돌리는 복원처리를 행한다. 이 처리는, 제 1 정정데이터(C1)의 오류위치(ju) 각각이 나타내는 심벌에 대하여 그 오류위치(ju)에 대응하는 오류값(eu)을 가산 또는 감산함으로써 행할 수 있다. 제 2 에러정정기(44)는, 복원시켜 얻어진 입력데이터(DI)를 제 2 정정데이터(C2)로서 출력한다.
이와 같이 제 2 에러정정기(44)는, 제 1 에러정정기(41)에서 정정처리를 바르게 실행하지 못하고 제 1 정정데이터(C1)가 오류를 포함할 때는, 제 1 정정데이터(C1)가 아닌, 복원시킨 입력데이터(DI)를 출력한다.
도 5는 도 1의 리드 솔로몬 복호장치에서의 동작을 설명하는 타이밍도이다. 도 5의 (a)는 신드롬 계산부(10) 및 데이터 기억부(50)로의 입력데이터(DI) 입력, (b)는 신드롬 계산부(10)에서의 입력데이터 신드롬(SI) 및 정정데이터 신드롬(SC)의 계산, (c)는 평가다항식·위치다항식 산출부(20)에서의 오류평가다항식(ω(z)), 오류위치다항식(σ(z)) 및 오류값(eu)의 계산, (d)는 첸 탐색부(30)에서의 첸 탐색, (e)는 에러정정부(40)의 제 1 및 제 2 정정데이터(C1, C2)의 출력에 대해 나타낸다.
도 5에서 P0~P5는, 각각 제 0~5번째로 입력된 패킷에 관한 처리를 실행하는 것을 나타내며, stop은 동작을 실행하지 않는 상태를 나타낸다. 또 부호길이 n=128의 수신어 1 개를 1 개의 패킷으로 취급한다. 여기서는 특히 패킷(P2)에 관한 설명을 중심으로 한다.
제 1 파이프라인 상태에서는, 신드롬 계산부(10) 및 데이터 기억부(50)에 패킷(P2)이 입력데이터(DI)로서 입력된다. 신드롬 계산부(10)는 패킷(P2)에 관한 입력데이터 신드롬(SI)을 계산한다(도 5의 (a), (b)).
제 2 파이프라인 상태에서, 평가다항식·위치다항식 산출부(20)는 우선, 제 1 파이프라인 상태에서 계산된 패킷(P2)에 관한 입력데이터 신드롬(SI)을 이용하여, 오류평가다항식(ω(z)) 및 오류위치다항식(σ(z))의 각 차수의 계수를 산출한다(도 5의 (c)). 그 후 첸 탐색부(30)는, 이 오류평가다항식(ω(z)) 및 오류위치다항식(σ(z))을 이용하여, 첸 탐색에 의해 패킷(P2)에 관한 오류위치다항식(σ(z))의 근(α-ju), 오류평가값(ω(α-ju)), 및 오류위치다항식 미분값(σ'(α-ju))을 산출한다(도 5의 (d)). 또 평가다항식·위치다항식 산출부(20)는, 패킷(P2)에 관한 오류평가값(ω(α-ju)) 및 오류위치다항식 미분값(σ'(α-ju))을 이용하여 오류값(eu )을 산출한다(도 5의 (c)). 제 2 파이프라인 상태에서 평가다항식·위치다항식 산출부(20) 및 첸 탐색부(30)는, 한쪽에서 연산처리가 실행되는 동안 다른 쪽은 정지상태로 된다.
이와 같은 처리를 실행하기 위해, 평가다항식·위치다항식 산출부(20) 및 첸 탐색부(30)에는, 기준이 될 클록신호(도시 생략)의 4 배 주파수의 클록신호(도시 생략)가 입력된다.
제 3 파이프라인 상태에서 에러정정부(40)는, 제 2 파이프라인 상태에서 계산된 패킷(P2)에 관한 오류위치다항식(σ(z))의 근(α-ju) 및 오류값(eu)을 이용하여, 데이터 기억부(50)가 유지하고 있던 패킷(P2)의 입력데이터(DI)에, 필요에 따라 오류정정 처리를 행하여 제 1 정정데이터(C1)를 구한다(도 5의 (e)). 에러정정부(40)는, 제 1 정정데이터(C1)를 신드롬 계산부(10) 및 데이터 기억부(50)로 출력한다. 또 제 3 파이프라인 상태에서 신드롬 계산부(10)는, 패킷(P2)의 제 1 정정데이터(C1)에 기초하여 정정데이터 신드롬(SC)을 계산한다. 이 때, 신드롬 계산부(10) 및 데이터 기억부(50)에는 패킷(P4)이 입력되며, 신드롬 계산부(10)는 패킷(P4)에 관한 입력데이터 신드롬(SI)도 계산한다(도 5의 (b)).
이와 같이 입력데이터 신드롬(SI) 및 정정데이터 신드롬(SC)의 계산을 병행시켜 실행하므로, 신드롬 계산부(10)에는 기준이 될 클록신호(도시 생략)의 2 배 주파수의 클록신호(도시 생략)가 입력된다.
제 4 파이프라인 상태에서 에러정정부(40)는, 패킷(P2)의 제 1 정정데이터(C1)의 정정데이터 신드롬(SC) 성분에 0이 아닌 것이 있을 때는, 데이터 기억부(50)가 유지하고 있던 제 1 정정데이터(C1)에 대해 복원처리를 행해 얻은 정정처리 전의 입력데이터(DI)를, 또 정정데이터 신드롬(SC) 성분이 모두 0일 때는, 데이터 기억부(50)가 유지하고 있던 제 1 정정데이터(C1)를 그대로, 제 2 정정데이터(C2)로서 출력한다. 이때 에러정정부(40)는, 제 2 파이프라인 상태에서 신드롬 계산부(10)에 입력된 패킷(P3)에 관한 오류정정 처리도 실행하여 제 1 정정데이터(C1)를 구한다(도 5의 (e)).
이상의 4 개 파이프라인 상태에서, 패킷(P2)에 관한 일련의 처리가 종료된다. 그리고 에러정정부(40) 및 데이터 기억부(50)에는, 기준이 될 클록신호(도시 생략)가 입력된다.
도 6은, 도 3에 나타낸 신드롬 계산부(10) 내부에서의 동작을 설명하는 타이밍도이다. 도 6의 (a)는 선택기(11)로의 입력데이터(DI) 입력, (b)는 선택기(11)로의 제 1 정정데이터(C1) 입력, (c)는 신드롬 연산기(12)에서의 신드롬 계산, (d)는 입력데이터 신드롬 유지기(13)로부터의 입력데이터 신드롬(SI) 출력, (e)는 제 1 신드롬 영 검출기(15)로부터의 제 1 무 오류상태 시사신호(F1) 출력, (f)는 정정데이터 신드롬 유지기(14)로부터의 정정데이터 신드롬(SC) 출력, (g)는 제 2 신드롬 영 검출기(16)로부터의 제 2 무 오류상태 시사신호(F2) 출력에 대해 나타낸다. 도 6에 있어서, P0~P5는 도 5와 마찬가지로 각각 제 0~5번째로 입력된 패킷에 관한 처리를 실행하는 것을 나타내며, 또 P2(n)는, 패킷(P2)에서 제 n번째 심벌에 관한 처리를 실행하는 것을 나타낸다.
제 1 파이프라인 상태에서는, 도 6의 (a), (b)와 같이, 도 3의 선택기(11)에는 제 2 패킷(P2)의 입력데이터(DI)로서, 패킷(P2)의 심벌(P2(1), P2(2), …, P2(n))이 차례로 입력됨과 동시에, 제 0 패킷(P0)의 제 1 정정데이터(C1)로서, 패킷(P0)의 심벌(P0(1), P0(2), …, P0(n))이 차례로 입력된다.
선택기(11)는, P2(1), P0(1), P2(2), P0(2), …, P0(n) 식으로, 제 2 패킷(P2) 입력데이터(DI)의 심벌과, 제 0 패킷(P0) 제 1 정정데이터(C1)의 심벌을 번갈아 신드롬 연산기(12)로 출력한다. 신드롬 연산기(12)는 선택기(11)로부터 입력된 심벌에 대해, 입력된 순서로 신드롬 계산을 실행한다(도 6의 (c)). 신드롬 연산기(12)는, 패킷(P2)에 관한 입력데이터(DI)의 입력데이터 신드롬(SI) 및 패킷(P0)에 관한 제 1 정정데이터(C1)의 정정데이터 신드롬(SC)을, 각각의 제 n번째 심벌에 대한 계산을 끝냈을 때, 입력데이터 신드롬 유지기(13) 및 정정데이터 신드롬 유지기(14)로 각각 출력한다. 신드롬 연산기(12)는 1 개의 심벌에 대한 연산처리를, 입력데이터(DI) 심벌 입력속도의 2 배 속도로 실행한다.
제 2 파이프라인 상태에서 입력데이터 신드롬 유지기(13)는, 패킷(P2)에 관한 입력데이터 신드롬(SI)을 제 1 신드롬 영 검출기(15)로 출력한다(도 6의 (d)). 정정데이터 신드롬 유지기(14)는, 패킷(P0)에 관한 정정데이터 신드롬(SC)을 제 2 신드롬 영 검출기(16)로 출력한다(도 6의 (f)).
또 제 2 파이프라인 상태에서 제 1 신드롬 영 검출기(15)는, 패킷(P2)에 관한 입력데이터 신드롬(SI)의 성분이 모두 0인지 여부를 검출한 결과를 제 1 무 오류상태 시사신호(F1)로서 출력한다. 예를 들어 이 입력데이터 신드롬(SI)의 성분이 모두 0이고 패킷(P2)에 오류가 없을 때, 제 1 신드롬 영 검출기(15)는 제 1 무 오류상태 시사신호(F1)를 활성으로 하여 출력한다(도 6의 (e)). 마찬가지로 제 2 신드롬 영 검출기(16)는, 패킷(P0)에 관한 정정데이터 신드롬(SC)의 성분이 모두 0인지 여부를 검출한 결과를 제 2 무 오류상태 시사신호(F2)로서 출력한다(도 6의 (g)).
제 3 파이프라인 상태에서는, 제 1 파이프라인 상태와 마찬가지로 신드롬 연산기(12)는, 패킷(P4)에 관한 입력데이터 신드롬(SI) 및 패킷(P2)에 관한 정정데이터 신드롬(SC)을 산출한다(도 6의 (c)).
제 4 파이프라인 상태에서 제 1 신드롬 영 검출기(15)는, 패킷(P4)에 관한 입력데이터 신드롬(SI)이 0인지 여부를 검출한 결과를 제 1 무 오류상태 시사신호(F1)로서 출력한다(도 6의 (e)). 제 2 신드롬 영 검출기(16)는, 패킷(P2)에 관한 정정데이터 신드롬(SC)이 0인지 여부를 검출한 결과를 제 2 무 오류상태 시사신호(F2)로서 출력한다(도 6의 (g)). 이와 같이 신드롬 계산부(10)는, 4 개의 파이프라인 상태로 1 개의 패킷에 관한 처리를 종료한다.
이상과 같이 본 발명에 관한 복호장치는, 입력데이터(DI)에 오류정정 처리를 실행한 후, 오류가 정정된 데이터(C1)에 대하여, 다시 한번 신드롬 계산을 실행하여 정정데이터 신드롬(SC)을 구하고, 정정오류가 실행됐다고 생각될 경우는 오류정정 전의 입력데이터(DI)를 출력하므로, 잘못된 정정데이터를 출력하는 것을 피할 수 있다.
여기서, 이상의 실시형태에서는 오류정정을 1 회 실시한 후에만, 생성된 정정데이터에 오류가 포함됐는지의 판정을 실행하지만, 오류정정을 복수 회 실시한 후에도 판정하는 것으로 해도 된다. 즉 입력데이터(DI)를 기억해두고, 정정데이터에 오류가 검출되지 않을 때까지 오류정정을 반복하여, 오류가 없는 정정데이터가 생성됐을 경우는 그 정정데이터를 출력하고, 오류정정을 소정 회수 반복해도 오류가 없는 정정데이터가 생성되지 않을 경우는, 오류 없는 정정데이터가 생성되지 못한다고 판정하고 정정 전의 수신어인, 기억해두었던 입력데이터(DI)를 출력하는 것으로 해도 된다. 이 경우 에러정정부(40)가 정정데이터를 출력할 때마다, 신드롬 계산부(10)는 정정데이터의 신드롬을 구하고 신드롬이 0인지 여부를 판정하여 에러정정부(40)에 통지함과 동시에, 신드롬을 평가다항식·위치다항식 산출부(20)로 출력할 필요가 있다.
또 마이크로 프로세서 등을 이용함으로써 본 발명에 관한 복호장치를 소프트웨어에 의해 실현하는 것도 가능하다.
본 발명은 확대 리드 솔로몬 부호로 부호화된 정보의 복호에 유용하다.

Claims (12)

  1. 확대 리드 솔로몬 부호로 된 수신어에 대한 오류위치와 오류값을 구하고, 상기 오류위치와 상기 오류값을 이용하여 당해 수신어에 오류정정 처리를 실행하여 정정 데이터를 생성하는 정정처리부를 구비하며,
    상기 정정처리부는,
    생성된 정정데이터에 대하여 신드롬을 산출하고, 얻어진 신드롬에 기초하여 오류의 유무를 판정하여, 오류가 없는 정정데이터가 생성된 경우는, 당해 정정데이터를 출력하는 한편, 오류가 없는 정정데이터가 생성되지 못한 경우는, 당해 정정데이터에 기초하여, 이에 대응된 상기 오류위치 및 상기 오류값을 이용하여 오류정정 전의 수신어를 복원시켜 출력하는 복호장치.
  2. 제 1항에 있어서,
    상기 정정처리부는,
    상기 수신어로부터 생성된 정정 데이터에 오류가 존재할 경우, 오류가 없는 정정 데이터가 생성될 수 없다고 판정하는 것을 특징으로 하는 복호장치.
  3. 삭제
  4. 확대 리드 솔로몬 부호로 된 수신어를 입력 데이터로 하는 복호장치이며,
    상기 입력데이터에 기초하여 제 1 정정 데이터를 구하는 에러정정부와,
    상기 입력데이터의 신드롬을 입력데이터 신드롬으로서 구하며, 당해 입력데이터 신드롬에 기초하여 상기 입력데이터에 오류가 존재하는지의 여부를 나타내는 제 1 플래그신호를 출력하고, 또한, 상기 에러정정부가 구한 상기 제 1 정정데이터에 대한 신드롬을 정정데이터 신드롬으로서 구하며, 당해 정정데이터 신드롬에 기초하여 상기 제 1 정정데이터에 오류가 존재하는지의 여부를 나타내는 제 2 플래그신호를 출력하는 신드롬 계산부와,
    상기 입력데이터 신드롬에 기초하여 오류평가 다항식 및 오류위치 다항식 각 차수의 계수를 구함과 동시에, 상기 계수로부터 구해진 오류의 평가값 및 대응하는 오류위치 다항식 미분값에 기초하여 오류값을 구하는 평가다항식·위치다항식 산출부와,
    상기 계수에 기초하여 상기 오류위치 다항식의 근을 구함과 동시에, 상기 오류평가 다항식에 상기 근의 각각을 대입시켜 얻어지는 오류 평가값 및 상기 오류위치 다항식의 유도함수에 상기 근의 각각을 대입시켜 얻어지는 오류위치 다항식 미분값을 구하는 첸 탐색부를 구비하며,
    상기 에러정정부는,
    상기 제 1 플래그신호가 상기 입력데이터에 오류가 존재함을 나타낼 경우는, 상기 근 및 대응하는 상기 오류값에 기초하여, 상기 입력데이터에 대해 오류정정 처리를 실행하여 얻은 데이터를 상기 제 1 정정데이터로서 출력하고, 또 상기 제 1 플래그신호가 상기 입력데이터에 오류가 존재하지 않음을 나타낼 경우는 당해 입력데이터를 상기 제 1 정정데이터로서 상기 신드롬 계산부로 출력함과 동시에, 상기 제 2 플래그신호가 상기 제 1 정정데이터에 오류가 존재함을 나타낼 경우는 상기 제 1 정정데이터에 대하여 오류정정 처리 전의 데이터로 되돌리는 복원처리를 실행하여 얻은 데이터를 제 2 정정데이터로서 출력하며, 상기 제 2 플래그신호가 상기 제 1 정정데이터에 오류가 존재하지 않음을 나타낼 경우는 당해 제 1 정정데이터를 제 2 정정데이터로서 출력하는 것인 복호장치.
  5. 제 4항에 있어서,
    상기 신드롬 계산부는,
    상기 입력데이터 및 상기 에러정정부가 출력하는 상기 제 1 정정데이터를 입력으로 하고, 이들을 번갈아 출력하는 선택기와,
    상기 선택기가 출력하는 상기 입력데이터 및 상기 제 1 정정데이터에 기초하여 상기 입력데이터 신드롬 및 상기 정정데이터 신드롬을 각각 구하는 신드롬 연산기와,
    상기 입력데이터 신드롬을 유지하고 출력하는 입력데이터 신드롬 유지기와,
    상기 정정데이터 신드롬을 유지하고 출력하는 정정데이터 신드롬 유지기와,
    상기 입력데이터 신드롬 유지기가 출력하는 상기 입력데이터 신드롬의 성분이 모두 0일 경우는 상기 입력데이터에 오류가 존재하지 않음을 나타내도록 하고, 그렇지 않을 경우는 상기 입력데이터에 오류가 존재함을 나타내도록, 상기 제 1 플래그신호를 출력하는 제 1 신드롬 영 검출기와,
    상기 정정데이터 신드롬 유지기가 출력하는 상기 정정데이터 신드롬의 성분이 모두 0일 경우는 상기 제 1 정정데이터에 오류가 존재하지 않음을 나타내도록 하고, 그렇지 않을 경우는 상기 제 1 정정데이터에 오류가 존재함을 나타내도록, 상기 제 2 플래그신호를 출력하는 제 2 신드롬 영 검출기를 구비하는 것을 특징으로 하는 복호장치.
  6. 제 4항에 있어서,
    상기 평가다항식·위치다항식 산출부는,
    유클리드 호제연산에 의해, 상기 입력데이터 신드롬에 기초하여 상기 오류평가 다항식 및 상기 오류위치 다항식 각 차수의 계수를 구하여 출력하는 것이며,
    상기 유클리드 호제연산 종료 시에, 상기 오류위치 다항식 차수가 상기 오류평가 다항식 차수 이하라도 상기 계수를 출력하는 것을 특징으로 하는 복호장치.
  7. 제 4항에 있어서,
    상기 첸 탐색부는,
    상기 오류위치 다항식에 상기 확대 리드 솔로몬 부호의 근이 정의되는 갈로아체 원소를 순차 대입시켜, 상기 오류위치 다항식의 값이 0이 되는 원소를 당해 오류위치 다항식의 근으로서 구하고,
    당해 오류위치 다항식의 서로 다른 근의 수가 당해 오류위치 다항식의 차수 미만일 경우라도, 당해 오류위치 다항식의 근을 출력하는 것을 특징으로 하는 복호장치.
  8. 제 4항에 있어서,
    상기 에러정정부는,
    상기 제 1 플래그신호가 상기 입력데이터에 오류가 존재함을 나타낼 경우는, 상기 입력데이터에 대하여 상기 근 각각에 대응하는 오류위치가 나타내는 심벌로부터, 대응하는 상기 오류값을 빼는 오류정정 처리를 행하여 얻어진 데이터를 출력하고, 그렇지 않은 경우는 상기 입력데이터를 각각 상기 제 1 정정데이터로서 출력하는 제 1 에러정정기와,
    상기 에러위치를 유지하고 출력하는 오류위치 데이터 유지기와,
    상기 오류값을 유지하고 출력하는 오류값 데이터 유지기와,
    상기 제 2 플래그신호가 상기 제 1 정정데이터에 오류가 존재함을 나타낼 경우는, 상기 제 1 정정데이터에 대하여, 상기 오류위치가 나타내는 심벌에 대응하는 상기 오류크기의 값을 가산하여 상기 오류정정 처리를 행하기 전의 데이터로 되돌리는 복원처리를 행하여 얻어진 데이터를 출력하고, 그렇지 않은 경우는 상기 제 1 정정데이터를, 각각 상기 제 2 정정데이터로서 출력하는 제 2 에러정정기를 구비하는 것을 특징으로 하는 복호장치.
  9. 제 4 항에 있어서,
    상기 입력데이터를, 상기 에러정정부가 당해 입력데이터에 대한 상기 제 1 정정데이터를 구하기 시작할 때까지 유지하고, 상기 에러정정부로 출력하며, 상기 제 1 정정데이터를, 상기 에러정정부가 당해 제 1 정정데이터에 대한 상기 제 2 정정데이터를 구하기 시작할 때까지 유지하고, 상기 에러정정부로 출력하는 데이터 기억부를 추가로 구비하는 것을 특징으로 하는 복호장치.
  10. 확대 리드 솔로몬 부호로 된 수신어에 대한 오류위치와 오류값을 구하고, 상기 오류위치와 상기 오류값을 이용하여 당해 수신어에 오류정정 처리를 실행하여 정정 데이터를 생성하는 공정과,
    생성된 정정데이터에 대하여 신드롬을 산출하고, 얻어진 신드롬에 기초하여 오류의 유무를 판정하여, 오류가 없는 정정데이터가 생성된 경우는 당해 정정데이터를, 구해야 할 정정데이터로 결정하는 한편, 오류가 없는 정정데이터가 생성되지 못한 경우는, 당해 정정데이터에 기초하여, 이에 대응된 상기 오류위치 및 상기 오류값을 이용하여 오류정정 전의 수신어를 복원시키고, 구해야 할 정정데이터로 결정하는 정정데이터 결정공정을 구비하는 복호방법.
  11. 제 10 항에 있어서,
    상기 정정데이터 결정공정에서는,
    상기 수신어로부터 생성된 정정데이터에 오류가 존재할 경우는, 오류 없는 정정데이터가 생성되지 못한다고 판정하는 것을 특징으로 하는 복호방법.
  12. 삭제
KR10-2002-7012764A 2000-03-27 2001-03-27 복호장치 및 복호방법 KR100526222B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2000086831A JP3352659B2 (ja) 2000-03-27 2000-03-27 復号装置及び復号方法
JPJP-P-2000-00086831 2000-03-27
PCT/JP2001/002522 WO2001073952A1 (fr) 2000-03-27 2001-03-27 Decodeur et procede de decodage

Publications (2)

Publication Number Publication Date
KR20030036148A KR20030036148A (ko) 2003-05-09
KR100526222B1 true KR100526222B1 (ko) 2005-11-02

Family

ID=18602933

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-7012764A KR100526222B1 (ko) 2000-03-27 2001-03-27 복호장치 및 복호방법

Country Status (7)

Country Link
US (2) US20030145272A1 (ko)
EP (1) EP1280281A4 (ko)
JP (1) JP3352659B2 (ko)
KR (1) KR100526222B1 (ko)
CN (1) CN1252937C (ko)
TW (1) TW486880B (ko)
WO (1) WO2001073952A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100714447B1 (ko) 2005-11-28 2007-05-07 한국전자통신연구원 수정 유클리드 알고리즘 연산 장치 및 그 방법과 그를이용한 리드-솔로몬 복호 장치

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6954892B2 (en) * 2002-06-06 2005-10-11 National Chiao Tung University Method for calculating syndrome polynomial in decoding error correction codes
US7206993B2 (en) 2003-03-12 2007-04-17 Matsushita Electric Industrial Co., Ltd. Method and device for decoding Reed-Solomon code or extended Reed-Solomon code
CN100394506C (zh) * 2003-08-20 2008-06-11 上海乐金广电电子有限公司 纠错装置及方法
CN100384116C (zh) * 2005-03-31 2008-04-23 中国科学院空间科学与应用研究中心 一种高速译码芯片
US20070150798A1 (en) * 2005-12-12 2007-06-28 Jia-Horng Shieh Method for decoding an ecc block and related apparatus
CN101453219B (zh) * 2007-11-30 2012-02-08 无锡华润矽科微电子有限公司 一种钱搜索电路及利用该电路的钱搜索方法
US8370727B2 (en) * 2009-02-03 2013-02-05 Silicon Motion, Inc. Method and circuit for decoding an error correction code
KR101678917B1 (ko) * 2010-09-16 2016-11-24 삼성전자주식회사 디코더, 이의 동작방법, 및 이를 포함하는 장치들
CN102684706A (zh) * 2012-05-16 2012-09-19 山东华芯半导体有限公司 并行搜索的检错纠错方法和电路
US11651830B2 (en) * 2020-07-09 2023-05-16 Synopsys, Inc. Low latency decoder for error correcting codes

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3137119B2 (ja) * 1989-06-07 2001-02-19 キヤノン株式会社 誤り訂正装置
JP2751415B2 (ja) * 1989-06-07 1998-05-18 キヤノン株式会社 誤り検出訂正回路
US5280488A (en) * 1990-11-08 1994-01-18 Neal Glover Reed-Solomon code system employing k-bit serial techniques for encoding and burst error trapping
EP0729611B1 (en) * 1993-11-04 2000-06-07 Cirrus Logic, Inc. Reed-solomon decoder
JPH088760A (ja) * 1994-06-16 1996-01-12 Toshiba Corp 誤り訂正装置
WO1997011530A1 (fr) * 1995-09-20 1997-03-27 Hitachi, Ltd. Procede de decodage d'une grappe d'erreurs du code de reed-solomon et dispositif correspondant
JP2773701B2 (ja) * 1995-09-25 1998-07-09 日本電気株式会社 誤り訂正復号装置
JP3439309B2 (ja) * 1996-11-29 2003-08-25 日本電気株式会社 二重伸長リードソロモン復号装置
JPH10262034A (ja) * 1997-03-19 1998-09-29 Sharp Corp 符号化及び復号化装置
US5905740A (en) * 1997-04-08 1999-05-18 Seagate Technology, Inc. Apparatus and method for error correction
JPH113573A (ja) * 1997-04-15 1999-01-06 Mitsubishi Electric Corp 拡大リードソロモン符号の誤り訂正復号方法と誤り訂正復号装置、1次伸長拡大リードソロモン符号の誤り訂正方法と誤り訂正装置、および2次伸長拡大リードソロモン符号の誤り訂正方法と誤り訂正装置
US5966369A (en) * 1997-04-23 1999-10-12 Eastman Kodak Company Reducing corrugations in optical recording discs
JP3265273B2 (ja) * 1998-12-02 2002-03-11 日本電気株式会社 誤り訂正回路
JP2000349652A (ja) * 1999-06-07 2000-12-15 Hitachi Ltd 誤り訂正手段を備えた記憶装置
KR20020065788A (ko) * 2001-02-07 2002-08-14 삼성전자 주식회사 엠 또는 이엠 비트 데이터 처리 겸용 리드 솔로몬 복호기및 그 복호 방법
US7206993B2 (en) * 2003-03-12 2007-04-17 Matsushita Electric Industrial Co., Ltd. Method and device for decoding Reed-Solomon code or extended Reed-Solomon code

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100714447B1 (ko) 2005-11-28 2007-05-07 한국전자통신연구원 수정 유클리드 알고리즘 연산 장치 및 그 방법과 그를이용한 리드-솔로몬 복호 장치

Also Published As

Publication number Publication date
WO2001073952A1 (fr) 2001-10-04
US20060031742A1 (en) 2006-02-09
JP3352659B2 (ja) 2002-12-03
TW486880B (en) 2002-05-11
US20030145272A1 (en) 2003-07-31
KR20030036148A (ko) 2003-05-09
CN1252937C (zh) 2006-04-19
EP1280281A4 (en) 2005-06-15
EP1280281A1 (en) 2003-01-29
CN1439197A (zh) 2003-08-27
JP2001274694A (ja) 2001-10-05

Similar Documents

Publication Publication Date Title
US5099482A (en) Apparatus for detecting uncorrectable error patterns when using Euclid's algorithm to decode Reed-Solomon (BCH) codes
EP0233075B1 (en) Method and apparatus for generating error detection check bytes for a data record
US20060031742A1 (en) Decoding device and decoding method
US20030106009A1 (en) Error correction improvement for concatenated codes
US5936978A (en) Shortened fire code error-trapping decoding method and apparatus
US20020083392A1 (en) Device and method for detecting errors in CRC code having reverse ordered parity bits
US8136013B2 (en) Burst error correction based on fire code
US4592054A (en) Decoder with code error correcting function
EP1458105B1 (en) Method and device for decoding of Reed-Solomon codes
US20080082896A1 (en) Burst error correction with offset for correction vector based on fire code
JP3245290B2 (ja) 復号方法とその装置
Babaie et al. Double bits error correction using CRC method
US6081920A (en) Method and apparatus for fast decoding of a Reed-Solomon code
JP3248098B2 (ja) シンドローム計算装置
US20010023497A1 (en) Parallel processing reed-solomon encoding circuit and method
JPH1117557A (ja) 誤り訂正方法及び誤り訂正装置
KR100192801B1 (ko) 리드 솔로몬 디코더의 비트 에러율 측정 회로
KR100358357B1 (ko) 가변 에러 정정 성능을 갖는 리드-솔로몬 디코더
WO2001010040A2 (en) Method and apparatus for correction of errors in fire codes used in gsm control channels
US20020046370A1 (en) Error checking
JPH10229343A (ja) 誤り訂正処理方法
KR100212082B1 (ko) 리드솔로몬 디코더에서 멀티플라이어 에러정정방법 및 시스템
KR100192793B1 (ko) 리드 솔로몬 복호기의 에러 정정기
JPH0823281A (ja) 誤り検出訂正装置
JP2001251196A (ja) リードソロモン復号方法及びリードソロモン復号装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20101027

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee