KR20040081366A - 리드솔로몬 부호 또는 확대 리드솔로몬 부호의 복호방법및 복호기 - Google Patents

리드솔로몬 부호 또는 확대 리드솔로몬 부호의 복호방법및 복호기 Download PDF

Info

Publication number
KR20040081366A
KR20040081366A KR1020040016751A KR20040016751A KR20040081366A KR 20040081366 A KR20040081366 A KR 20040081366A KR 1020040016751 A KR1020040016751 A KR 1020040016751A KR 20040016751 A KR20040016751 A KR 20040016751A KR 20040081366 A KR20040081366 A KR 20040081366A
Authority
KR
South Korea
Prior art keywords
error
data
correction
syndrome
input data
Prior art date
Application number
KR1020040016751A
Other languages
English (en)
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 KR20040081366A publication Critical patent/KR20040081366A/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/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/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/1545Determination of error locations, e.g. Chien search or other methods or arrangements for the determination of the roots of the error locator polynomial
    • 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/1585Determination of error values
    • 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

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

Abstract

확대 리드솔로몬 부호를 복호할 경우, 비확대성분 및 확대성분에 대하여 잘못 정정하는 경우가 있거나, 또 오류 개수의 추정이 틀렸을 때, 복수 회의 유클리드 알고리즘 연산처리 및 복수 회의 첸 탐색 처리를 실시하는 경우가 있다.
입력데이터 신드롬(SI)으로부터 오류개수 추정부(60)에서 추정된 오류의 개수(EN1)와, 복호과정에서 오류개수 산출부(70)가 산출한 오류의 개수(EN2)를 비교하여, 이 비교결과와 입력데이터 신드롬(SI)에 기초하여 오류정정부(40)에서 오류정정 처리를 실시한 후, 오류정정된 데이터(C1)에 대하여 신드롬계산부(10)에서 다시 신드롬계산을 하여 정정데이터 신드롬을 구하고, 잘못 정정을 했을 경우 또는 추정된 오류의 개수(EN1)와 산출된 오류의 개수(EN2)가 다를 경우에는 입력데이터(DI)를 제 2 정정데이터(C2)로서 출력한다.

Description

리드솔로몬 부호 또는 확대 리드솔로몬 부호의 복호방법 및 복호기{METHOD AND DEVICE FOR DECODING REED-SOLOMON CODE OR EXTENDED REED-SOLOMON CODE}
본 발명은 리드솔로몬(Reed-Solomon) 부호 또는 확대 리드솔로몬 부호의 다중 오류정정을 행하는 복호기술에 관한 것이다.
디지털방송, 디지털자기기록 등에서 리드솔로몬 부호가 사용되고 있으며, 예를 들어 미국 디지털 케이블TV시스템에서는 확대 리드솔로몬 부호가 채용되고 있다.
유럽 특허출원공개 제 1280281호에 개시된 제 1 종래기술에서는, 확대 리드솔로몬 부호를 복호할 때, 수신어인 입력데이터에 오류정정 처리를 실시한 후, 오류정정된 데이터에 대하여, 신드롬계산을 재차 행하여 정정데이터 신드롬을 구하고, 잘못 정정을 행한 경우에는 오류정정 전의 입력데이터를 출력한다.
미국특허 제 6131178호에 개시된 제 2 종래기술에서는, 확대 리드솔로몬 부호를 복호할 때, 수신어로부터 신드롬을 생성하고, 이 신드롬으로부터, 수신어 중에 발생한 오류의 개수를 추정하여, 추정된 오류의 개수에 따라 유클리드알고리즘 연산조작의 초기값 및 종료조건을 변경하여 오류정정을 행한다.
상기 제 1 종래기술에서는, 확대성분만이 아닌 비확대성분에 대해서도 잘못 정정하는 경우가 있다.
또 상기 제 2 종래기술에서는, 오류개수의 추정이 틀렸을 때, 복수 회의 유클리드알고리즘 연산처리 및 복수 회의 첸 탐색 처리를 실시하는 경우가 있어, 다시 잘못 정정하는 경우가 있다.
본 발명의 목적은, 리드솔로몬 부호 또는 확대 리드솔로몬 부호를 복호할 때에 발생하는 정정오류를 방지하는 데에 있다.
도 1은 본 발명에 관한 확대 리드솔로몬 부호 복호방법 순서의 일례를 나타내는 흐름도.
도 2는 도 1에 이어지는 흐름도.
도 3은 도 1 중 오류 개수 추정단계의 상세 흐름도.
도 4는 본 발명에 관한 확대 리드솔로몬 부호 복호기의 구성예를 나타내는 블록도.
도 5는 도 4 중 신드롬계산부의 주요부 블록도.
도 6은 도 4 중 오류정정부의 주요부 블록도.
도 7은 도 6 중 제 1 오류정정부의 주요부 블록도.
도 8은 도 5 중 신드롬연산기의 한 구성예를 나타내는 주요부 블록도.
* 도면의 주요 부분에 대한 부호의 설명 *
S10 : 제 1 신드롬 산출단계
S20 : 오류위치 다항식 및 오류평가 다항식 산출단계
S30 : 오류위치 산출단계 S40 : 오류크기 산출단계
S50 : 제 1 오류정정단계 S60 : 오류개수 추정단계
S80 : 오류개수 산출단계 S90 : 제 2 신드롬 산출단계
S100 : 제 2 오류정정단계 10 : 신드롬계산부
11 : 선택기 12 : 신드롬연산기
12A : 비확대성분 신드롬 처리기 12B : 확대성분 신드롬 처리기
12C, 41C : 버스드라이버 13 : 입력데이터 신드롬 유지기
14 : 정정데이터 신드롬 유지기 15 : 제 1 신드롬 제로 검출기
16 : 제 2 신드롬 제로 검출기 20 : 평가다항식 및 위치다항식 도출부
30 : 첸 탐색(Chien serch)부 40 : 오류정정부
41 : 제 1 오류정정기 41A : 오류정정 처리기
41B : 확대성분 오류정정 처리기 42 : 오류위치 데이터 유지기
43 : 오류크기 데이터 유지기 44 : 제 2 오류정정기
45 : 비교기 50 : 데이터기억부
60 : 오류개수 추정부 70 : 오류개수 산출부
C1, XC1 : 제 1 정정데이터 C2 : 제 2 정정데이터
DI, XDI : 입력데이터(수신어) EN1 : 추정된 오류개수
EN2 : 산출된 오류개수 eu: 오류크기
e-:확대성분에 대한 오류의 크기 F1 : 제 1 플래그신호
F2 : 제 2 플래그신호 F3 : 제 3 플래그신호
j-: 확대성분에 대한 오류위치 MOD : 모드신호
NA : 오류개수 NB : 확대성분의 오류개수
SI, XSI : 입력데이터 신드롬 SC : 정정데이터 신드롬
α-ju: 오류위치 다항식의 근 σ(z) : 오류위치 다항식
σ'(α-ju) : 오류위치 다항식의 미분값
ω(z) : 오류평가 다항식 ω(α-ju) : 오류평가값
상기 목적을 달성하기 위해 본 발명은, 어떤 오류정정 수의 리드솔로몬 부호 또는 확대 리드솔로몬 부호로 이루어진 수신어를 입력데이터로서 복호하는 방법에 있어서, 입력데이터 및 상기 오류정정 수의 신드롬에 기초하여 도출한 오류위치 다항식 및 오류평가 다항식을 이용하여 입력데이터에 대하여 오류정정 처리를 실시하고 당해 처리 결과를 제 1 정정데이터로 하며, 당해 제 1 정정데이터 신드롬의 확대성분 및 확대성분이 아닌 성분을 산출하고, 당해 산출된 신드롬에 기초하여 제 1 정정데이터에 대하여 오류정정 처리를 실시하며, 당해 처리 결과를 제 2 정정데이터로 하기로 한 것이다.
또, 입력데이터의 신드롬에 기초하여 당해 입력데이터 중에 발생한 오류의개수를 추정함과 동시에, 입력데이터의 신드롬 및 상기 오류정정 수에 기초하여 도출한 오류위치 다항식 및 오류평가 다항식을 이용하여 오류의 개수를 산출하고, 추정된 오류의 개수와 산출된 오류의 개수를 이용하여 상기 제 1 정정데이터를 구하는 것으로 한다.
상술한 목적 및 기타의 목적과 본 발명의 특징 및 이점은 첨부 도면과 관련한 다음의 상세한 설명을 통해 보다 분명해 질 것이다.
(실시예)
이하, 본 발명의 실시예에 대하여 도면을 참조하면서 설명하기로 한다.
여기서 취급하는 확대 리드솔로몬 부호는, 갈루아체(GF(27)) 상에서,
원시 다항식 P(x)=x7+x3+1
생성 다항식 G(x)=(x+α)(x+α2)(x+α3)(x+α4)(x+α5)을 이용한,
부호길이 n=128
오류정정 수 t=3
1 심벌의 비트 수 m=7
정보심벌 수 i0=122
패리티심벌 수 p0=6
확대 전의 부호 다항식 W0(x)=c126x126+ c125x125+ ... + c1x + c0
확대 패리티심벌 c-=W06)
=c1266)126+ c1256)125+ ...c1α6+ c0
확대 후의 부호 다항식 W(x)=xW0(x) + c-
=c126x127+ c125x126+...+c1x2+ c0x + c-의 1차 확대 리드솔로몬 부호이다. 여기서 확대 전의 부호, 즉 확대성분이 아닌 부호(c126, c125, ..., c1, c0)를 비확대성분이라 부르기로 한다. 또 확대 패리티심벌(c-)을 확대성분이라 부르기로 한다.
도 1 및 도 2는, 본 발명의 확대 리드솔로몬 부호의 복호방법을 설명하는 흐름도이다. 여기서 수신어인 입력데이터(DI)에, 입력데이터(DI) 중의 위치(ju) 심벌에 크기(eu)의 오류가 발생한 것으로 한다. 단,
비확대성분만의 수신 다항식 Y0(x)=y126x126+y125x125+ ...+y1x+y0
비확대성분 및 확대성분의 수신 다항식 Y(x)=y126x127+y125x126+...+y1x2+y0x+y-로 한다. 이와 같은 입력데이터(DI) 중의 오류심벌 위치(ju)를 오류 위치라 한다.
우선, 도 1 중의 단계(S10)는 제 1 신드롬 산출단계이다. 이 단계(S10)에서는 신드롬을 산출하도록, 이하의 단계(S11) 및 단계(S12)를 실행한다.
단계(S11)에서는,
입력데이터(DI)=(y126, y125, ..., y1, y0, y-)의 신드롬을 입력데이터 신드롬(SI)으로서 산출한다. 즉, 단계(S11A)에서 비확대성분의 입력데이터 신드롬
SIi=Y0i)
=y126i)126+y125i)125+...+y1αi+y0(i=1, 2, 3, 4, 5)
을 산출하며, 단계(S11B)에서 확대성분의 입력데이터 신드롬
SI6=Y06)+ y-
=y1266)126+y1256)125+...+y1α6+ y0+y-
을 산출한다.
단계(S12)에서는, 입력데이터 신드롬(SI)의 성분이 모두 0인지 여부를 판단하며, 입력데이터 신드롬(SI)의 성분이 모두 0일 경우에는 입력데이터(DI)에 오류가 없다고 판정하여, 단계(S50) 내의 단계(S52)의 처리로 이동한다. 입력데이터 신드롬(SI)의 성분 중 어느 하나가 0이 아닐 경우에는 입력데이터(DI)에 오류가 있다고 판정하여, 단계(S20)의 처리로 이동한다.
단계(S20)에서는, 유클리드 알고리즘 연산에 의해, 입력데이터 신드롬(SI)으로부터 오류위치 다항식(σ(z)) 및 오류평가 다항식(ω(z)) 각 차수의 계수를 구한다. 유클리드 알고리즘 연산 종료 시에, 오류위치 다항식(σ(z))의 차수가 오류평가 다항식(ω(z))의 차수 이하일 경우라도, 이들 다항식의 계수를 출력한다.
단계(S30)에서는 첸 탐색을 실시하여, 오류위치 다항식(σ(z))의 근(α-ju)을 구한다. 즉, 오류위치 다항식(σ(z))에 갈로아체(GF(27))의 원소를 순차 대입하고, 오류위치 다항식(σ(z))의 값이 0이 되는 원소를 이 오류위치 다항식(σ(z))의 근(α-ju)으로서 구한다. 이 때, 오류위치 다항식(σ(z))의, 갈로아체(GF(27))에 속하는 복수의 서로 다른 근의 수가 당해 오류위치 다항식(σ(z))의 차수 미만일 경우라도, 오류정정이 가능한지 여부를 판단하지 않고, 근(α-ju)을 출력한다. 오류위치 다항식(σ(z))의 근(α-ju) 각각에는, 오류위치(ju)가 대응한다. 또 오류평가 다항식(ω(z))에 오류위치 다항식(σ(z))의 근(α-ju) 각각을 대입하여 오류 평가값(ω(α-ju))을 구함과 동시에, 오류위치 다항식(σ(z))의 도함수에 오류위치 다항식(σ(z))의 근(α-ju) 각각을 대입하여 오류위치 다항식의 미분값(σ’(α-ju))을 구한다.
단계(S40)에서는 오류의 평가값(ω(α-ju))을, 대응하는 오류위치 다항식의 미분값(σ’(α-ju))으로 나누어, 오류위치(ju) 각각의 심벌 중의 오류 비트를 나타내는 오류의 크기(eu)를 구한다.
단계(S50)에서는 제 1 오류정정을 실행한다. 구체적으로는 이하의 단계(S51, S52, S53, 및 S54)를 실행한다.
단계(S51)에서는 오류정정 처리를 행하도록, 비확대성분 및 확대성분에 대해서는 단계(S51A)를 실행하며, 확대성분에 대해서는 단계(S51B)를 실행한다.
단계(S51A)에서는 오류위치 다항식(σ(z))의 근(α-ju) 각각에 대응한 오류 위치(ju)와, 오류 크기(eu)에 기초하여, 입력데이터(DI)에 대하여 오류정정 처리를 행하여 오류정정 처리데이터로 하며,
비확대성분만의 오류정정 처리데이터의 다항식
F0(x)=f126x126+f125x125+ ... +f1x+f0
비확대성분 및 확대성분의 오류정정 처리데이터의 다항식
F(x)=xF0(x)+f-= f126x127+f125x126+... +f1x2+f0x+f(f-는 확대성분(잠정값))으로 한다. 즉, 입력데이터(DI)의 오류위치(ju) 심벌로부터, 이에 대응한 오류의 크기(eu)를 감산한다. 갈로아체(GF(2))의 확대체 상에서의 연산이므로, 오류의 크기(eu)를 감산하는 대신 가산해도 된다.
단계(S51B)에서는 확대성분에 대하여 추가로, 비확대성분만의 오류정정 처리데이터의 다항식 F0(x)에 x=α6을 대입한 것에 오류정정 처리데이터의 확대성분 f-(잠정값)를 가산한다. 즉, F06)+f-=F1266)126+F1256)125+...+f1α6+f0+f-를계산한다. F06)+f-가 0일 경우에는 오류정정 처리데이터의 확대성분(f-)(잠정값)에 오류가 없다고 생각할 수 있으므로, 오류정정 처리데이터의 확대성분(f-)(잠정값)을 그대로 확대성분의 오류정정 처리데이터로 하고, 확대성분의 오류개수 NB=0으로 한다. F06)+f-가 0이 아닐 경우에는 오류정정 처리데이터의 확대성분(f-)(잠정값)에 오류가 있다고 판단하며, 오류정정 처리데이터의 확대성분(f-)(잠정값)의 오류크기(e-)는 F06)+f-로 된다. 여기서 오류정정 처리데이터의 확대성분(f-)(잠정값)에 대하여 오류정정 처리를 실시하고, 즉 오류정정 처리데이터의 확대성분(f-)(잠정값)에 오류크기(e-=F06)+f-)를 가산하여,
f-+e-=f-+F06)+f-= F06)+2f-= F06)을 확대성분의 오류정정 처리데이터로 하고, 확대성분의 오류개수(NB=1)로 한다.
한편 단계(S60)에서는, 단계(S10) 내의 단계(S11)에서 계산된 입력데이터 신드롬(SI)으로부터 입력데이터(DI) 중에 발생한 오류개수(EN1)를 추정한다(상세하게는 뒤에 설명하기로 한다).
단계(S80)에서는, 단계(S30)에서 산출된 오류위치 다항식(σ(z))의 근(α-ju)으로부터 구한 오류개수(NA)와, 단계(S51) 내 단계(S51B)로부터의 확대성분 오류개수(NB)를 가산한다. 즉, 오류개수 EN2=NA+NB가 산출된다. 단 확대성분의 오류개수를 중복시켜 가산할 필요는 없다.
단계(S50) 내의 단계(S53)에서는, 단계(S60)에서 추정된 오류개수(EN1)와 단계(S80)에서 산출된 오류개수(EN2)가 동등하며, 또 단계(S60)에서 추정된 오류개수(EN1)와 단계(S80)에서 산출된 오류개수(EN2)가 모두 3(오류정정수(t)) 이하인지의 여부, 즉 "EN1=EN2 ≤3"인지 여부를 판단하여, "EN1=EN2≤3"일 경우에는 단계(S54)의 처리로 이동하고, 그렇지 않을 경우("EN1 ≠EN2 또는 EN1>3, 혹은 EN2>3"일 경우)에는 단계(S52)로 이동한다.
단계(S54)에서는, 입력데이터 신드롬(SI)의 성분 중 어느 하나가 0이 아니며, 또 "EN1=EN2 ≤3"일 경우이고, 오류정정 처리데이터를 제 1 정정데이터(C1)로 한다.
단계(S52)에서는, 입력데이터 신드롬(SI)의 성분이 모두 0이거나, 또는 "EN1 ≠EN2 또는 EN1>3, 혹은 EN2>3"일 경우이며, 입력데이터(DI)를 그대로 제 1 정정데이터(C1)로 한다.
도 2 중의 단계(S90)에서는 제 1 정정데이터(C1)의 신드롬을 산출하도록, 이하의 단계(S91 및 S92)를 실행한다.
단계(S91)에서는,
비확대성분만의 제 1 정정데이터(C1) 다항식
D0(x)=d126x126+d125x125+...+d1x+d0
비확대성분 및 확대성분의 제 1 정정데이터(C1) 다항식
D(x)=d126x127+d125x126+...+d1x2+d0x+d-로 하여,
제 1 정정데이터 C1=(d126, d125, ..., d1, d0, d-)의 신드롬을 정정데이터 신드롬(SC)으로서 산출한다. 즉, 단계(S91A)에서, 비확대성분의 정정데이터 신드롬
SCi=D0i)
=d126i)126+d125i)125+...+d1αi+d0(i=1, 2, 3, 4, 5)
를 산출하며, 단계(S91B)에서, 확대성분의 정정데이터 신드롬
SC6=D06)+d-
=d1266)126+d1256)125+...+d1α6+d0+d-를 산출한다.
단계(S92)에서는, 「정정데이터 신드롬(SC)의 성분이 모두 0이거나, 또는 "EN1 ≠EN2 또는 EN1>3, 혹은 EN2>3"이다」라는 판정조건의 진위를 판단하며, 당해 판정조건이 참일 경우에는 제 1 정정데이터(C1)에 오류가 없다고 판정하고, 단계(S100) 내의 단계(S101)의 처리로 이동한다. 그렇지 않을 경우(정정데이터 신드롬(SC)의 성분 중 어느 하나가 0이 아니며, 또 "EN1=EN2 ≤3일 경우)에는, 제 1 정정데이터(C1)에 오류가 있다고 판정하고, 단계(S100) 내의 단계(S102) 처리로 이동한다.
단계(S100)는 제 2 오류정정단계이다. 구체적으로는 단계(S101 및 S102)를 실행한다.
단계(S101)에서는, 제 1 정정데이터(C1)에 오류가 없다고 생각할 수 있으므로, 제 1 정정데이터(C1)를 그대로 제 2 정정데이터(C2)로서 출력한다.
단계(S102)에서는, 제 1 정정데이터(C1)에 오류가 있다고 생각되므로, 오류위치 다항식(σ(z))의 근(α-ju) 각각에 대응한 오류위치(ju) 및 오류크기(eu)와, 확대성분에 대한 오류크기(e-)에 기초하여, 제 1 정정데이터(C1)를 입력데이터(DI)로 복원시키는 처리를 실시한다. 즉, 제 1 정정데이터(C1)의 오류위치(ju) 심벌에 대해서는 이에 대응한 오류크기(eu)를 가산 또는 감산하며, 제 1 정정데이터(C1)의 확대성분 심벌에 대해서는 추가로 오류크기(e-)를 가산 또는 감산한다(즉, 제 1 정정데이터(C1)의 확대성분 심벌에 대해서는 오류크기(eu) 및 오류크기(e-)를 가산 또는 감산한다). 복원시켜 얻어진 입력데이터(DI)를 제 2 정정데이터(C2)로서 출력한다.
도 3은 도 1 중 오류개수 추정단계(S60)의 상세한 흐름도이다. 이하, 도 3을 참조하면서 오류개수의 추정방법을 설명하기로 한다.
단계(S61)에서는, 제 1 신드롬 산출단계(S10) 내의 입력데이터 신드롬 산출단계(S11)에서 계산된 입력데이터 신드롬(SI)의 성분이 모두 0인지 여부를 판단하며, 입력데이터 신드롬(SI)의 성분이 모두 0일 경우에는 단계(S62)의 처리로 이동하고, 입력데이터 신드롬(SI)의 성분 중 어느 하나가 0이 아닐 경우에는 단계(S63)의 처리로 이동한다.
단계(S62)에서는, 입력데이터 신드롬(SI)의 성분이 모두 0일 경우이며, 오류개수가 0개로 추정한다.
단계(S63)에서는, 입력데이터 신드롬(SI)의 성분 중 어느 하나가 0이 아닐 경우로서,
제 1 오류개수 추정식 N1=S2 2+S1S3
제 2 오류개수 추정식 N2=S3 2+S1S5
제 3 오류개수 추정식 N3=S4 2+S3S5
제 4 오류개수 추정식 N4=S5N1+S3N2+S1N3을 계산한다.
단계(S64)에서는, 제 1, 제 2, 및 제 3 오류개수 추정식(N1, N2및 N3)의 값이 모두 0인지 여부를 판단한다. N1, N2및 N3의 값이 모두 0일 경우에는 단계(S65)의 처리로 이동하며, N1, N2및 N3의 값 중 어느 하나가 0이 아닐 경우에는 단계(S68)의 처리로 이동한다.
단계(S65)에서는, 단계(S64)에서 N1, N2및 N3의 값이 모두 0일 경우이며, 단계(S11)에서 계산된 입력데이터 신드롬의 확대성분 SI6이 0인지 여부를 판단한다.SI6이 0일 경우에는 단계(S66)의 처리로 이동하며, SI6이 0이 아닐 경우에는 단계(S67)의 처리로 이동한다.
단계(S66)에서는, 단계(S65)에서 SI6이 0일 경우이며, 오류개수가 1 개인 것으로 추정한다.
단계(S67)에서는, 단계(S65)에서 SI6이 0이 아닐 경우이며, 오류개수가 2 개인 것으로 추정한다.
단계(S68)에서는, 단계(S64)에서 N1, N2및 N3의 값 중 어느 하나가 0이 아닐 경우이며, 제 4 오류개수 추정식(N4)의 값이 0인지 여부를 판단한다. (N4)의 값이 0일 경우에는 단계(S69)의 처리로 이동하며, (N4)의 값이 0이 아닐 경우에는 단계(S72)의 처리로 이동한다.
단계(S69)에서는, 단계(S68)에서 N4의 값이 0일 경우이며, 입력데이터 신드롬의 확대성분(SI6)이 0인지 여부를 판단한다. SI6이 0일 경우에는 단계(S70)의 처리로 이동하며, SI6이 0이 아닐 경우에는 단계(S71)의 처리로 이동한다.
단계(S70)에서는, 단계(S69)에서 SI6이 0일 경우이며, 오류개수가 2 개인 것으로 추정된한다.
단계(S71)에서는, 단계(S69)에서 SI6이 0이 아닐 경우이며, 오류개수가 3 개인 것으로 추정한다.
단계(S72)에서는, 단계(S68)에서 N4의 값이 0이 아닐 경우이며, SI6이 0인지 여부를 판단한다. SI6이 0일 경우에는 단계(S73)의 처리로 이동하며, SI6이 0이 아닐 경우에는 단계(S74)의 처리로 이동한다.
단계(S73)에서는, 단계(S72)에서 SI6이 0일 경우이며, 오류개수가 3 개인 것으로 추정한다.
단계(S74)에서는, 단계(S72)에서 SI6이 0이 아닐 경우이며, 오류개수가 4 개인 것으로 추정한다.
이상과 같이 본 복호방법에 의하면, 입력데이터 신드롬(SI)으로부터 추정된 오류개수(EN1)와 복호과정에서 산출된 오류개수(EN2)를 비교하고, 이 비교결과와 입력데이터 신드롬(SI)에 기초하여 오류정정 처리를 실시한 후, 오류정정된 데이터(C1)에 대하여 다시 신드롬계산을 하여 정정데이터 신드롬(SC)을 구하고, 잘못 정정했을 경우 또는 추정된 오류개수(EN1)와 산출된 오류개수(EN2)가 다를 경우에는 입력데이터(DI)를 제 2 정정데이터(C2)로서 출력하므로, 비확대성분 및 확대성분에 대하여 잘못된 정정을 방지할 수 있으며, 또 복수 회의 유클리드알고리즘 연산처리 및 복수 회의 첸 탐색 처리를 실시하지 않아도 된다.
그리고 도 1에서는 단계(S51B)에서 확대성분의 오류개수(NB)를 구하지만, 도 1 중에 일점쇄선으로 나타낸 바와 같이, 단계(S40)에서 입력데이터(DI) 및 오류위치 다항식(σ(z))의 근(α-ju) 각각에 대응한 오류위치(ju)와 오류크기(eu)에 기초하여, F06)+f-를 계산하여, F06)+f-이 0인지 여부에 따라 확대성분의 오류개수(NB)를 구하고, 그 결과를 단계(S80)의 처리에 반영시키는 것으로 해도 된다.
또 도 1 중의 단계(S52)에서 도 2 중의 단계(S100) 안으로 이어지는 일점쇄선으로 나타내는 바와 같이, 입력데이터 신드롬(SI)의 성분이 모두 0이거나, 또는 "EN1 ≠EN2 또는 EN1>3, 혹은 EN2>3"일 경우에는, 입력데이터(DI)를 그대로 제 2 정정데이터(C2)로 해도 된다.
또한 도 1 중 단계(S80)에서 근(α-ju)으로부터 오류개수(NA)를 구하지만, 단계(S30)에서 오류개수(NA)를 구해도 된다. 도 3 중의 단계(S61) 대신에 도 1 중 단계(S12)의 판정결과를 이용하여, 도 3 중 단계(S62 및 S63)의 처리를 실시하는 것도 가능하다.
또 도 1 중 단계(S60, S80 및 S53)의 처리를 생략함으로써, 오류개수를 추정하거나 오류개수를 산출하거나 하지 않고, 정정데이터 신드롬(SC)의 산출만을 실시하여, 그 결과를 정정오류 방지를 위해 사용해도 된다.
다음으로 상기 본 발명의 복호방법을 실현하기 위한 장치구성을 설명한다.
도 4는 본 발명에 관한 확대 리드솔로몬 부호 복호기의 구성예를 나타내는 블록도이다. 도 4에서 10은 신드롬계산부, 20은 평가다항식 및 위치다항식 도출부, 30은 첸 탐색부, 40은 오류정정부, 50은 데이터기억부, 60은 오류개수 추정부, 70은 오류개수 산출부이다.
신드롬계산부(10) 및 데이터기억부(50)에는 입력데이터(DI)가 입력된다. 데이터기억부(50)는, 입력데이터(DI)를 기억하고 당해 입력데이터(DI)와 동일 데이터(XDI)를 오류정정부(40)로 출력한다.
신드롬계산부(10)는, 입력데이터 DI=(y126, y125, ..., y1, y0, y-)의 신드롬을 입력데이터 신드롬(SI)으로서 산출한다. 즉, 비확대성분의 입력데이터 신드롬
SIi=Y0i)
=y126i)126+y125i)125+...+y1αi+y0(i=1, 2, 3, 4, 5)을 산출하며, 확대성분의 입력데이터 신드롬
SI6=Y06)+y-
=y1266)126+y1256)125+...+y1α6+y0+y-을 산출한다. 또 입력데이터 신드롬(SI)의 성분이 모두 0인지 여부를 검출한다. 입력데이터 신드롬(SI)의 성분이 모두 0일 경우에는 입력데이터(DI)에 오류가 없다고 판정하여, 제 1 플래그신호(F1)를 액티브로 하여 오류정정부(40)로 출력한다. 입력데이터 신드롬(SI)의 성분 중 어느 하나가 0이 아닐 경우에는 입력데이터(DI)에 오류가 있다고 판정하여, 제 1 플래그신호(F1)를 비 액티브로 하여 오류정정부(40)로 출력한다. 어느 경우도, 입력데이터 신드롬(SI)을 평가다항식 및 위치다항식 도출부(20) 및 오류개수 추정부(60)로 출력한다. 단, 평가다항식 및 위치다항식 도출부(20)에출력할 입력데이터 신드롬을 XSI로 표기하여, 오류개수 추정부(60)로 출력할 입력데이터 신드롬(SI)과 구별하기로 한다.
오류개수 추정부(60)에서는, 신드롬계산부(10)에서 계산된 입력데이터 신드롬(SI)으로부터 입력데이터(DI) 중에 발생한 오류개수(EN1)를 추정한다.
평가다항식 및 위치다항식 도출부(20)는, 유클리드알고리즘 연산으로, 입력데이터 신드롬(XSI)으로부터 오류위치 다항식(σ(z)) 및 오류평가 다항식(ω(z)) 각 차수의 계수를 구하고, 이들 다항식의 계수를 첸 탐색부(30)로 출력한다. 또 평가다항식 및 위치다항식 도출부(20)는 데이터유지기 및 갈로아연산기를 구비하며, 데이터유지기는 입력데이터 신드롬(XSI) 및 유클리드알고리즘 연산의 중간결과를 유지하고, 마지막에 오류위치 다항식(σ(z)) 및 오류평가 다항식(ω(z)) 각 차수의 계수를 출력한다. 갈로아연산기는, 데이터유지기의 출력으로부터 유클리드알고리즘 연산을 하여 중간결과를 구하고, 데이터유지기로 출력한다. 그리고 유클리드알고리즘 연산 종료 시에, 오류위치 다항식(σ(z))의 차수가 오류평가 다항식(ω(z))의 차수 이하일 경우에도, 이들 다항식의 계수를 출력한다.
첸 탐색부(30)는, 첸 탐색을 실시하여, 오류위치 다항식(σ(z))의 근(α-ju)을 구한다. 즉, 오류위치 다항식(σ(z))에 갈로아체(GF(27))의 원소를 순차 대입하고, 오류위치 다항식(σ(z))의 값이 0이 되는 원소를 이 오류위치 다항식(σ(z))의 근(α-ju)으로서 구하여, 오류정정부(40) 및 오류개수 산출부(70)로 출력한다. 이때, 갈로아체(GF(27))에 속하는, 오류위치 다항식(σ(z))의 복수의 서로 다른 근의 수가 당해 오류위치 다항식(σ(z))의 차수 미만일 경우라도, 오류정정이 가능한지 여부를 판단하지 않고, 근(α-ju)을 오류정정부(40) 및 오류개수 산출부(70)로 출력한다. 오류위치 다항식(σ(z))의 근(α-ju) 각각에는 오류 위치(ju)가 대응한다. 또 오류평가 다항식(ω(z))에 오류위치 다항식(σ(z))의 근(α-ju) 각각을 대입하여 오류 평가값(ω(α-ju))을 구함과 동시에, 오류위치 다항식(σ(z))의 도함수에 오류위치 다항식(σ(z))의 근(α-ju) 각각을 대입하여 오류위치 다항식의 미분값(σ’(α-ju))을 구하고, 오류의 평가값(ω(α-ju))과 오류위치 다항식의 미분값(σ’(α-ju))을 평가다항식 및 위치다항식 도출부(20)로 출력한다. 또 평가다항식 및 위치다항식 도출부(20)의 갈로아 연산기는, 오류의 평가값(ω(α-ju))을, 대응하는 오류위치 다항식의 미분값(σ’(α-ju))으로 나누어, 오류위치(ju) 각각의 심벌 중의 오류 비트를 나타내는 오류의 크기(eu)를 구하고, 이를 오류정정부(40)로 출력한다.
오류개수 산출부(70)에서는, 첸 탐색부(30)에서 산출된 오류위치 다항식(σ(z))의 근(α-ju)으로부터 구한 오류개수(NA)와, 오류정정부(40)로부터의 확대성분 오류개수(NB)를 가산한다. 즉,
오류개수 EN2=NA+NB
를 산출하고, 당해 산출된 오류개수(EN2)를 오류정정부(40)로 공급한다. 단, 확대성분의 오류개수를 중복시켜 가산할 필요는 없다.
오류정정부(40)는, 첸 탐색부(30)가 출력하는 오류위치 다항식(σ(z))의 근(α-ju) 각각에 대응한 오류위치(ju)와, 평가다항식 및 위치다항식 도출부(20)가 출력하는 오류크기(eu)에 기초하여, 데이터기억부(50)가 출력하는 입력데이터(XDI)에 대하여 오류정정 처리를 실시하고, 오류정정 처리데이터로 하며,
비확대성분만의 오류정정 처리데이터의 다항식
F0(x)=f126x126+f125x125+...+f1x+f0
비확대성분 및 확대성분의 오류정정 처리데이터의 다항식
F(x)=xF0(x)+f-=f126x127+f125x126+...+f1x2+f0x+f-(f-는 확대성분(잠정값))으로 한다. 즉, 입력데이터(XDI)의 오류위치(Ju) 심벌로부터, 이에 대응한 오류크기(eu)를 감산한다. 갈로아체(GF(2))의 확대체 상에서의 연산이므로, 오류크기(eu)를 감산하는 대신에 가산해도 된다. 확대성분에 대해서는, 추가로 비확대성분만의 오류정정 처리데이터의 다항식 F0(x)에 x=α6을 대입한 것에 오류정정 처리데이터의 확대성분(f-)(잠정값)을 가산하여, 즉,
F06)+f-=F1266)126+F1256)125+...+f1α6+f0+f-를계산하여, F06)+f-가 0일 경우에는 오류정정 처리데이터의 확대성분(f-)(잠정값)에 오류가 없다고 생각되므로, 오류정정 처리데이터의 확대성분(f-)(잠정값)을 그대로 확대성분의 오류정정 처리데이터로 하여, 확대성분의 오류개수 NB=0으로 한다. F06)+f-가 0이 아닐 경우에는 오류정정 처리데이터의 확대성분(f-)(잠정값)에 오류가 있다고 판단하여, 오류정정 처리데이터 확대성분(f-)(잠정값)의 오류크기(e-)는 F06)+f-로 된다. 여기서 오류정정 처리데이터의 확대성분(f-)(잠정값)에 대하여 오류정정 처리를 실시하여, 즉 오류정정 처리데이터의 확대성분(f-)(잠정값)에 오류크기(e-=F06)+f-)를 가산하여,
f-+e-=f-+F06)+f-= F06)+2f-= F06)을 확대성분의 오류정정 처리데이터로 하여, 확대성분의 오류개수 NB=1로 한다. 그리고 오류개수 추정부(60)에서 추정된 오류개수(EN1)와 오류개수 산출부(70)에서 산출된 오류개수(EN2)가 동등하며, 또 오류개수 추정부(60)에서 추정된 오류개수(EN1)와 오류개수 산출부(70)에서 산출된 오류개수(EN2)가 모두 3(오류정정 수(t)) 이하인지 여부, 즉 "EN1=EN2 ≤3"인지 여부를 검출하고, "EN1=EN2 ≤3"일 경우에는 후술하는 제 3 플래그신호(F3)를액티브로 한다. 또 "EN1=EN2 ≤3"(제 3 플래그신호(F3)가 액티브)이고, 또 입력데이터 신드롬(SI)의 성분 중 어느 하나가 0이 아닐(제 1 플래그신호(F1)가 비 액티브이며 오류정정의 필요가 있을) 경우에는, 오류정정 처리데이터를 제 1 정정데이터(C1)로서 신드롬계산부(10) 및 데이터기억부(50)로 출력한다. 그렇지 않을 경우, 즉 "EN1 ≠EN2 또는 EN1>3 혹은 EN2>3"(제 3 플래그신호(F3)가 비 액티브)이거나, 또는 입력데이터 신드롬(SI)의 성분이 모두 0일(제 1 플래그신호(F1)가 액티브이며 오류정정의 필요가 없을)경우에는, 데이터기억부(50)가 출력하는 입력데이터(XDI)를 그대로 제 1 정정데이터(C1)로서 신드롬계산부(10) 및 데이터기억부(50)로 출력한다.
데이터기억부(50)는 제 1 정정데이터(C1)를 기억하며, 이와 동일한 정정데이터(XC1)를 오류정정부(40)로 되돌린다.
신드롬계산부(10)는,
비확대성분만의 제 1 정정데이터(C1) 다항식
D0(x)=d126x126+d125x125+...+d1x+d0으로 하며, 또
제 1 정정데이터(C1)의 다항식
D(x)=d126x127+d125x126+...+d1x2+d0X+d-로 하여,
제 1 정정데이터 C1=d126, d125, ..., d1, d0, d-)의 신드롬을 정정데이터 신드롬(SC)으로서 산출한다. 즉, 비확대성분의 정정데이터 신드롬
SCi=D0i)
=d126i)126+d125i)125+...+d1αi+d0(i=1, 2, 3, 4, 5)를 산출하며,
확대성분의 정정데이터 신드롬
SC6=D06)+d-
=d1266)126+d1256)125+...+d1α6+d0+d-를 산출한다.또「정정데이터 신드롬(SC)의 성분이 모두 0이거나, 또는 "EN1 ≠EN2 또는 EN1>3, 혹은 EN2>3"(제 3 플래그신호(F3)가 비 액티브)이다」라는 판정조건의 진위를 판단하며, 당해 판정조건이 참일 경우에는 제 1 정정데이터(C1)에 오류가 없다고 판정하여, 제 2 플래그신호(F2)를 액티브로 하고 오류정정부(40)로 출력한다. 그렇지 않을 경우, 즉 정정데이터 신드롬(SC)의 성분 중 어느 하나가 0이 아니며, 또 "EN1=EN2 ≤3(제 3 플래그신호(F3)가 액티브)일 경우에는 제 1 정정데이터(C1)에 오류가 있다고 판정하여, 제 2 플래그신호(F2)를 비 액티브로 하고 오류정정부(40)로 출력한다.
오류정정부(40)는, 제 2 플래그신호(F2)가 액티브일 경우에는 제 1 정정데이터(C1)에 오류가 없다고 생각되므로, 데이터기억부(50)가 출력하는 제 1 정정데이터(XC1)를 그대로 제 2 정정데이터(C2)로서 출력한다. 그러나 제 2 플래그신호(F2)가 비 액티브일 경우에는, 제 1 정정데이터(C1)에 오류가 있다고 생각되므로, 첸 탐색부(30)가 출력하는 오류위치 다항식(σ(z))의 근(α-ju) 각각에 대응한 오류위치(ju)와, 평가다항식 및 위치다항식 도출부(20)가 출력하는 오류크기(eu)와, 확대성분에 대한 오류크기(e-)에 기초하여, 데이터기억부(50)가 출력하는 제 1 정정데이터(XC1)를 입력데이터(DI)로 복원시키는 처리를 실행한다. 즉, 제 1 정정데이터(XC1)의 오류위치(ju) 심벌에 대해서는 이에 대응한 오류크기(eu)를 가산 또는 감산하며, 제 1 정정데이터(XC1)의 확대성분 심벌에 대해서는 추가로 오류크기(e-)를 가산 또는 감산한다(즉, 제 1 정정데이터(XC1)의 확대성분 심벌에 대해서는 오류크기(eu) 및 오류크기(e-)를 가산 또는 감산한다. 복원시켜 얻어진 입력데이터(DI)를 제 2 정정데이터(C2)로서 출력한다.
도 5는 도 4 중의 신드롬계산부(10) 주요부를 나타내는 블록도이다. 도 5에서 11은 선택기, 12는 신드롬연산기, 13은 입력데이터 신드롬 유지기, 14는 정정데이터 신드롬 유지기, 15는 제 1 신드롬 제로 검출기, 16은 제 2 신드롬 제로 검출기이다.
선택기(11)는 모드신호(MOD)에 따라 입력데이터(DI) 또는 제 1 정정데이터(C1)를 선택하여 신드롬 연산기(12)로 출력한다.
신드롬 연산기(12)는 모드신호(MOD)에 따라 선택기(11)에 동기되어 동작하며, 입력데이터 신드롬(SI)을 구하는 계산과, 정정데이터 신드롬(SC)을 구하는 계산을 하여, 입력데이터 신드롬(SI)을 구한 계산결과를 입력데이터 신드롬 유지기(13) 및 오류개수 추정부(60)로 출력하며, 정정데이터 신드롬(SC)을 구한 계산결과를 정정데이터 신드롬 유지기(14)로 출력한다. 회로규모 축소를 위해서는, 비확대성분 신드롬의 처리와 확대성분 신드롬의 처리를 같은 처리기에서 실행하도록 신드롬 연산기(12)를 구성하는 것이 좋다.
입력데이터 신드롬 유지기(13)는, 신드롬 연산기(12)의 출력 중, 입력데이터 신드롬(SI)만을 모드신호(MOD)에 따라 수취하여 유지한 후, 이를 입력데이터 신드롬(XSI)으로서 제 1 신드롬 제로 검출기(15)로 출력한다.
제 1 신드롬 제로 검출기(15)는, 입력데이터 신드롬(XSI)의 성분이 모두 0일 경우에는 입력데이터(DI)에 오류가 없다고 판정하여, 제 1 플래그신호(F1)를 액티브로 하며, 입력데이터 신드롬(XSI)의 성분 중 어느 하나가 0이 아닐 경우에는 입력데이터(DI)에 오류가 있다고 판정하여, 제 1 플래그신호(F1)를 비 액티브로 하고 당해 제 1 플래그신호(F1)를 오류정정부(40)로 출력한다.
또 입력데이터 신드롬 유지기(13)는, 제 1 신드롬 제로 검출기(15)가 제 1 플래그신호(F1)를 출력하는 타이밍에 동기하여, 입력데이터 신드롬(XSI)을 평가다항식 및 위치다항식 도출부(20)로 출력한다.
마찬가지로 정정데이터 신드롬 유지기(14)는, 신드롬 연산기(12)의 출력 중, 정정데이터 신드롬(SC)만을 모드신호(MOD)에 따라 수취하여 유지한 후, 당해 정정데이터 신드롬(SC)을 제 2 신드롬 제로 검출기(16)로 출력한다.
제 2 신드롬 제로 검출기(16)는, 정정데이터 신드롬(SC)의 성분이 모두 0일 경우에는 제 1 정정데이터(C1)에 오류가 없다고 판정하여, 제 2 플래그신호(F2)를 액티브로 하며, 정정데이터 신드롬(SC)의 성분 중 어느 하나가 0이 아닐 경우에는제 1 정정데이터(C1)에 오류가 있다고 판정하여, 제 2 플래그신호(F2)를 비 액티브로 하며 당해 제 2 플래그신호(F2)를 오류정정부(40)로 출력한다.
도 6은 도 4 중의 오류정정부(40) 주요부를 나타내는 블록도이다. 도 6에서 41은 제 1 오류정정기, 42는 오류위치 데이터 유지기, 43은 오류크기 데이터 유지기, 44는 제 2 오류정정기, 45는 비교기이다.
비교기(45)는 오류개수 추정부(60)에서 추정된 오류개수(EN1)와 오류개수 산출부(70)에서 산출된 오류개수(EN2)를 비교하고, 다시 이들 오류개수(EN1 및 EN2와 3(오류정정 수(t))을 비교하여, "EN1=EN2 ≤3"일 경우에는 제 3 플래그신호(F3)를 액티브로 하고, 그렇지 않을 경우("EN1≠EN2 또는 EN1>3 혹은 EN2>3"일 경우)에는 제 3 플래그신호(F3)를 비 액티브로 하며, 당해 제 3 플래그신호(F3)를 제 1 오류정정기(41) 및 제 2 오류정정기(44)로 출력한다.
제 1 오류정정기(41)는, 제 1 플래그신호(F1)가 액티브(입력데이터(DI)를 오류정정할 필요가 없다)이거나, 또는 제 3 플래그신호(F3)가 비 액티브("EN1≠EN2 또는 EN1>3 혹은 EN2>3")일 경우에는, 입력데이터(DI)를 그대로 제 1 정정데이터(C1)로서 출력하며, 확대성분의 오류개수 NB=0으로 한다. 또 제 1 플래그신호(F1)가 비 액티브(입력데이터(D1)는 오류를 포함하며, 오류정정의 필요가 있다)이며, 또 제 3 플래그신호(F3)가 액티브("EN1=EN2 ≤3")일 경우에는 입력데이터(XDI)에서, 근(α-ju)에 대응한 오류위치(ju) 각각이 나타내는 심벌에 대하여, 그 오류위치(ju)에 대한 오류 크기(eu)를 감산 또는 가산하는 오류정정을 실행하여, 정정처리후의 데이터를 오류정정 처리데이터로 한다. 확대성분에 대해서는, 추가로 비확대성분만의 오류정정 처리데이터의 다항식 F0(x)에 x=α6을 대입시킨 것에 오류정정 처리데이터의 확대성분 f-(잠정값)를 가산하여, 즉,
F06)+f-=f1266)126+f1256)125+...+f1α6+f0+f-를계산하고, F06)+f-가 0일 경우에는 오류정정 처리데이터의 확대성분(f-)(잠정값)에 오류가 없다고 생각되므로, 오류정정 처리데이터의 확대성분(f-)(잠정값)을 그대로 확대성분의 오류정정 처리데이터로 하고, 확대성분의 오류개수 NB=0으로 한다. F06)+f-가 0이 아닐 경우에는 오류정정 처리데이터의 확대성분(f-)(잠정값)에 오류가 있다고 판단하며, 오류정정 처리데이터의 확대성분(f-)(잠정값)의 오류크기(e-)는 F06)+f-로 된다. 여기서 오류정정 처리데이터의 확대성분(f-)(잠정값)에 대하여 오류정정 처리를 실시하여, 즉 오류정정 처리데이터의 확대성분(f-)(잠정값)에 오류크기(e-=F06)+f-)를 가산하여,
f-+e-=f-+F06)+f-= F06)+2f-= F06)을 확대성분의 오류정정 처리데이터로 하며, 확대성분의 오류개수 NB=1로 한다. 그리고 오류정정 처리데이터를 제 1정정데이터(C1)로서 출력한다. 상기와 같이 하여 구한 제 1 정정데이터(C1)는 신드롬계산부(10) 및 데이터기억부(50)로 출력된다.
오류위치 데이터 유지기(42)는, 근(α-ju)과, 확대성분에 대한 오류위치(j-)를 기억하며, 이들을 제 2 오류정정기(44)로 출력한다.
오류크기 데이터 유지기(43)는, 오류크기(eu)와, 확대성분에 대한 오류크기(e-)를 기억하며, 이들을 제 2 오류정정기(44)로 출력한다.
제 2 오류정정기(44)는, 제 2 플래그신호(F2)가 액티브(제 1 정정데이터(CI)에는 오류정정의 필요가 없다)이거나, 또는 제 3 플래그신호(F3)가 비 액티브("EN1≠EN2 또는 EN1>3 혹은 EN2>3")일 경우에는, 제 1 정정데이터(XC1)를 그대로 제 2 정정데이터(C2)로서 출력한다. 또 제 2 플래그신호(F2)가 비 액티브(제 1 정정데이터(C1)는 오류를 포함하며, 오류정정의 필요가 있다)이면서 제 3 플래그신호(F3)가 액티브("EN1=EN2 ≤3")일 경우에는, 근(α-ju)에 대응한 오류위치(ju)와 오류크기(eu)에 기초하여, 확대성분에 대해서는 추가로 오류위치(j-)와 오류크기(e-)에 기초하여, 제 1 정정데이터(XC1)를 입력데이터(DI)로 복원시키는 복원처리를 실시한다. 이 복원처리는, 제 1 정정데이터(XC1)의 오류위치(ju) 각각이 나타내는 심벌에 대하여, 그 오류위치(ju)에 대응하는 오류크기(eu)를 가산 또는 감산함으로써 실행할 수 있으며, 확대성분에 대해서는 제 1 정정데이터(XC1)의 오류위치(j-)가나타내는 심벌(확대성분)에 대하여, 그 오류위치(j-)(확대성분)에 대응하는 오류크기(e-)를 다시 가산 또는 감산함(즉, 제 1 정정데이터(XC1)의 확대성분 심벌에 대해서는 오류크기(eu) 및 오류크기(e-)를 가산 또는 감산함)으로써 실행할 수 있다. 이와 같이 복원시켜 얻어진 입력데이터(DI)를 제 2 정정데이터(C2)로서 출력한다. 상기와 같이 제 2 오류정정기(44)는 제 1 오류정정기(41)에서 오류정정 처리를 바르게 실행할 수 없어, 제 1 정정데이터(C1)가 오류를 포함할 때는, 당해 제 1 정정데이터(C1)가 아닌, 복원시킨 입력데이터(DI)를 출력한다.
도 7은 도 6 중의 제 1 오류정정부(41) 주요부를 나타내는 블록도이다. 도 7에서 41A는 오류정정 처리기, 41B는 확대성분 오류정정 처리기, 41C는 버스드라이버이다.
오류정정 처리기(41A)는, 제 1 플래그신호(F1)가 액티브(입력데이터(DI)를 오류정정할 필요가 없다)이거나, 또는 제 3 플래그신호(F3)가 비 액티브("EN1≠EN2 또는 EN1>3 혹은 EN2>3")일 경우에는, 입력데이터(XDI)를 그대로 제 1 정정데이터로서 출력한다. 또 제 1 플래그신호(F1)가 비 액티브(입력데이터(DI)는 오류를 포함하며, 오류정정의 필요가 있다)이면서 제 3 플래그신호(F3)가 액티브("EN1=EN2 ≤3")일 경우에는, 입력데이터(XDI)에서, 근(α-ju)에 대응한 오류위치(ju) 각각이 나타내는 심벌에 대하여, 그 오류위치(ju)에 대한 오류크기(eu)를 감산 또는 가산하는 오류정정을 실행하여, 정정처리 후의 데이터를 제 1 정정데이터로서 출력한다.
확대성분 오류정정 처리기(41B)는, 제 1 플래그신호(F1)가 액티브(입력데이터(DI)를 오류정정할 필요가 없다)이거나, 또는 제 3 플래그신호(F3)가 비 액티브("EN1≠EN2 또는 EN1>3 혹은 EN2>3")일 경우에는, 오류정정 처리데이터의 확대성분(잠정값), 즉 확대성분의 입력데이터(XDI)를 그대로 확대성분의 제 1 정정데이터로서 출력하며, 확대성분의 오류개수 NB=0으로 한다. 또 제 1 플래그신호(F1)가 비 액티브(입력데이터(DI)는 오류를 포함하며, 오류정정의 필요가 있다)이면서 제 3 플래그신호(F3)가 액티브("EN1=EN2 ≤3")일 경우에는, 확대성분에 대하여, 추가로 비확대성분만의 오류정정 처리데이터의 다항식 F0(x)에 x=α6을 대입한 것에 오류정정 처리데이터의 확대성분(f-)(잠정값)를 가산하여, 즉,
F06)+f-=F1266)126+F1256)125+...+f1α6+f0+f-를계산하여, F06)+f-가 0일 경우에는 오류정정 처리데이터의 확대성분(f-)(잠정값)에 오류가 없다고 생각되므로, 오류정정 처리데이터의 확대성분(f-)(잠정값)을 그대로 확대성분의 오류정정 처리데이터로 하며, 확대성분의 오류개수 NB=0으로 한다. F06)+f-가 0이 아닐 경우에는 오류정정 처리데이터의 확대성분(f-)(잠정값)에 오류가 있다고 판단하며, 오류정정 처리데이터의 확대성분(f-)(잠정값)의 오류크기(e-)는 F06)+f-로 된다. 여기서 오류정정 처리데이터의 확대성분(f-)(잠정값)에 대하여 오류정정 처리를 실행하여, 즉 오류정정 처리데이터의 확대성분(f-)(잠정값)에 오류크기 e-=F06)+f-를 가산하여,
f-+e-=f-+F06)+f-= F06)+2f-= F06)을 확대성분의 오류정정 처리데이터로 하며, 확대성분의 오류개수 NB=1로 한다. 그리고 확대성분 오류정정 처리기(41B)는, 이들 확대성분의 오류정정 처리데이터를 확대성분의 제 1 정정데이터로서 출력한다.
버스드라이버(41C)는, 오류정정 처리기(41A)로부터의 제 1 정정데이터와, 확대성분 오류정정 처리기(41B)로부터의 확대성분의 제 1 정정데이터를 일괄시켜, 비확대성분과 확대성분으로 구성되는 제 1 정정데이터(C1)로서 출력한다.
이상과 같이 도 4~도 7에 나타낸 복호기에서는, 입력데이터 신드롬(SI)으로부터 오류개수 추정부(60)에서 추정된 오류개수(EN1)와, 복호과정에서 오류개수 산출부(70)에서 산출된 오류개수(EN2)를 오류정정부(40)에서 비교하고, 이 비교결과와 입력데이터 신드롬(SI)에 기초하여 오류정정부(40)에서 오류정정 처리를 실시한 후, 오류정정된 데이터(C1)에 대하여 신드롬계산부(10)에서 다시 신드롬계산을 하여 정정데이터 신드롬(SC)을 구하고, 잘못 정정했을 경우 또는 추정된 오류개수(EN1)와 산출된 오류개수(EN2)가 다를 경우에는 입력데이터(DI)를 제 2 정정데이터(C2)로서 출력한다.
그리고 도 4의 오류개수 추정부(60) 기능을 신드롬계산부(10)의 내부로, 오류개수 산출부(70)의 기능을 오류정정부(40)의 내부로 각각 이동시켜도 된다.
또 도 4에서는 오류개수 산출부(70)에서 근(α-ju)으로부터 오류개수(NA)를 구하지만, 첸 탐색부(30)에서 오류개수(NA)를 구해도 된다.
또한 도 7 중 2 개의 처리기(41A, 41B)에서의 처리를 같은 처리기에서 실행하도록 구성해도 된다.
도 5 중 신드롬 연산기(12)에서의 비확대성분의 처리와 확대성분의 처리를 각각 다른 처리기에서 실행하도록 구성해도 된다. 도 8은 이 경우의 신드롬연산기(12)의 주요부를 나타내는 블록도이다. 도 8에서 12A는 비확대성분 신드롬 처리기, 12B는 확대성분 신드롬 처리기, 12C는 버스드라이버이다.
비확대성분 신드롬 처리기(12A)는, 입력데이터(DI)의 비확대성분 및 제 1 정정데이터(C1)의 비확대성분 신드롬을 각각 산출하여, 버스드라이버(12C)로 출력한다.
확대성분 신드롬 처리기(12B)는, 입력데이터(DI)의 확대성분 및 제 1 정정데이터(C1)의 확대성분 신드롬을 각각 산출하여, 버스드라이버(12C)로 출력한다.
버스드라이버(12C)는, 비확대성분 신드롬 처리기(12A)로부터의 입력데이터 비확대성분 신드롬과, 확대성분 신드롬 처리기(12B)로부터의 입력데이터 확대성분 신드롬을 일괄시켜 이를 입력데이터 신드롬(SI)으로 하며, 비확대성분 신드롬 처리기(12A)로부터의 정정데이터 비확대성분 신드롬과, 확대성분 신드롬 처리기(12B)로부터의 정정데이터 확대성분 신드롬을 일괄시켜 이를 정정데이터 신드롬(SC)으로서각각 출력한다.
바람직하게는, 신드롬계산부(10)에 의한 입력데이터 신드롬(SI) 계산 등의 처리를 제 1 스테이지로 하고, 평가다항식 및 위치다항식 도출부(20) 그리고 첸 탐색부(30)의 처리를 제 2 스테이지로 하며, 오류정정부(40)에 의한 제 1 정정데이터(C1)의 출력 및 신드롬계산부(10)에 의한 정정데이터 신드롬(SC) 계산 등의 처리를 제 3 스테이지로 하고, 또 오류정정부(40)에 의한 제 2 정정데이터(C2)의 출력처리를 제 4 스테이지로 하는 파이프라인 구성을 채용하는 것이 좋다. 신드롬계산부(10)는, 기준이 되는 클록신호의 2 배 주파수로 동작하며, 일련의 복호과정에서 2 회(제 1 및 제 3 스테이지에서) 사용된다.
본 발명에 의하면, 입력데이터 신드롬으로부터 추정된 오류의 개수와 복호과정에서 산출된 오류의 개수를 비교하고, 이 비교결과와 입력데이터 신드롬에 기초하여 오류정정 처리를 실시한 후, 오류정정된 데이터에 대하여 다시 신드롬계산을 하여 정정데이터 신드롬을 구하며, 잘못 정정했을 경우 또는 추정된 오류 개수와 산출된 오류 개수가 다를 경우에는 입력데이터를 최종 정정데이터로서 출력하기로 하므로, 확대성분이 아닌 성분 및 확대성분에 대해 정정 오류를 방지할 수 있으며, 복수 위의 유클리드알고리즘 연산처리 및 복수 회의 첸 탐색 처리를 실시하지 않아도 된다. 이로써 소면적, 저 소비전력, 또 높은 신뢰성의 복호기 구조를 제공할 수 있다. 또 확대 리드솔로몬 부호만이 아닌, 통상의 리드솔로몬 부호에 대해서도 잘못 정정을 방지할 수 있다.
이상 설명한 바와 같이, 본 발명에 관한 복호방법 및 복호기는, 복호 시의 정정 오류를 방지할 수 있으며, 디지털방송, 디지털 자기기록 등에서의 리드솔로몬 부호 또는 확대 리드솔로몬 부호의 다중 오류정정에 유용하다.

Claims (14)

  1. 어떤 오류정정 수의 리드솔로몬 부호 또는 확대 리드솔로몬 부호로 이루어지는 수신어를 입력데이터로서 복호하는 방법이며,
    상기 입력데이터 및 상기 오류정정 수의 신드롬에 기초하여 도출한 오류위치 다항식 및 오류평가 다항식을 이용하여, 상기 입력데이터에 대하여 오류정정 처리를 실시하고, 당해 처리 결과를 제 1 정정데이터로 하는 제 1 오류정정 단계와,
    상기 제 1 정정데이터의 신도름을 산출하는 신드롬 산출단계와,
    상기 신드롬 산출단계에서 산출된 신드롬에 기초하여, 상기 제 1 정정데이터에 오류정정 처리를 실시하고, 당해 처리 결과를 제 2 정정데이터로 하는 제 2 오류정정단계를 구비하는 것을 특징으로 하는 복호방법.
  2. 제 1 항에 있어서,
    상기 입력데이터의 신드롬에 기초하여 상기 입력데이터 중에 발생한 오류의 개수를 추정하는, 오류개수추정단계와,
    상기 입력데이터의 신드롬 및 상기 오류정정 수에 기초하여 도출한 오류위치 다항식 및 오류평가 다항식을 이용하여 오류 개수를 산출하는, 오류개수산출단계를 추가로 구비하며,
    상기 제 1 오류정정단계에서는, 상기 오류개수추정단계에서 추정된 오류의 개수와, 상기 오류개수산출단계에서 산출된 오류의 개수를 이용하여, 상기 입력데이터에 오류정정 처리를 실시하는 것을 특징으로 하는 복호방법.
  3. 제 2 항에 있어서,
    상기 제 1 오류정정단계는,
    상기 추정된 오류의 개수와 상기 산출된 오류의 개수가 같으며, 또 상기 추정된 오류의 개수와 상기 산출된 오류의 개수가 모두 상기 오류정정 수 이하라는 제 1 판정조건의 진위를 판정하는, 오류개수 판정단계와,
    상기 입력데이터의 오류정정 처리를 실시하여 오류정정처리 데이터를 구하며, 또 상기 오류정정처리 데이터에 기초하여, 확대성분의 오류정정처리 데이터를 구하는 오류정정처리단계와,
    상기 오류개수 판정단계에서 상기 제 1 판정조건이 참인 것으로 판정되고, 또 상기 입력데이터의 신드롬 성분 중 어느 하나가 0이 아닌 것으로 판정된 경우에는, 상기 오류정정처리단계에서 구해진 오류정정처리 데이터를 상기 제 1 정정데이터로 하는 단계와,
    상기 오류개수 판정단계에서 상기 제 1 판정조건이 거짓인 것으로 판정되거나, 또는 상기 입력데이터의 신드롬 성분이 모두 0인 것으로 판정된 경우에는, 상기 입력데이터를 상기 제 1 정정데이터로 하는 단계를 구비하는 것을 특징으로 하는 복호방법.
  4. 제 2 항에 있어서,
    상기 제 2 오류정정단계에서는, 상기 제 1 정정데이터의 신드롬 및 상기 추정된 오류의 개수 및 상기 산출된 오류의 개수에 기초하여, 상기 제 1 정정데이터에 오류정정처리를 실시하는 것을 특징으로 하는 복호방법.
  5. 제 3 항에 있어서,
    상기 제 1 정정데이터의 신드롬 성분이 모두 0이거나, 또는 상기 오류개수 판정단계에서 상기 제 1 판정조건이 거짓이라는 제 2 판정조건의 진위를 판정하는 단계를 추가로 구비하며,
    상기 제 2 오류정정단계에서는, 상기 제 2 판정조건이 참일 경우에는 상기 제 1 정정데이터를 상기 제 2 정정데이터로 하고, 상기 제 2 판정조건이 거짓일 경우에는 상기 입력데이터를 복원시켜 상기 제 2 정정데이터로 하는 것을 특징으로 하는 복호방법.
  6. 제 2 항에 있어서,
    상기 오류개수추정단계는,
    상기 입력데이터의 신드롬 성분이 모두 0인지 여부를 판단하는 제 1 단계와,
    상기 입력데이터의 신드롬 성분이 모두 0일 경우에는 오류가 없다고 판정하는 제 2 단계와,
    상기 입력데이터 신드롬의 성분 중 어느 하나가 0이 아닐 경우에는, 상기 입력데이터의 확대되지 않은 성분의 오류개수를 추정하도록, 제 1, 제 2, 제 3 및 제4 오류개수 추정식을 계산하는 제 3 단계와,
    상기 제 1, 제 2 및 제 3 오류개수 추정식의 값이 모두 0인지 여부를 판단하는 제 4 단계와,
    상기 제 4 단계에서 상기 제 1, 제 2 및 제 3 오류개수 추정식의 값이 모두 0일 경우에는, 상기 입력데이터 신드롬의 확대성분이 0인지 여부를 판단하는 제 5 단계와,
    상기 제 5 단계에서 상기 입력데이터 신드롬의 확대성분이 0일 경우에는, 오류의 개수가 상기 오류정정 수에서 2를 뺀 수와 동등하다고 추정하는 제 6 단계와,
    상기 제 5 단계에서 상기 입력데이터 신드롬의 확대성분이 0이 아닐 경우에는, 오류의 개수가 상기 오류정정 수에서 1을 뺀 수와 동등하다고 추정하는 제 7 단계와,
    상기 제 4 단계에서 상기 제 1, 제 2 또는 제 3 오류개수 추정식의 값 중 어느 하나가 0이 아닐 경우에는, 상기 제 4 오류개수 추정식의 값이 0인지 여부를 판단하는 제 8 단계와,
    상기 제 8 단계에서 상기 제 4 오류개수 추정식의 값이 0일 경우에는, 상기 입력데이터 신드롬의 확대성분이 0인지 여부를 판단하는 제 9 단계와,
    상기 제 9 단계에서 상기 입력데이터 신드롬의 확대성분이 0일 경우에는, 오류의 개수가 상기 오류정정 수에서 1을 뺀 수와 동등하다고 추정하는 제 10 단계와,
    상기 제 9 단계에서 상기 입력데이터 신드롬의 확대성분이 0이 아닐 경우에는, 오류의 개수가 상기 오류정정 수와 동등하다고 추정하는 제 11 단계와,
    상기 제 8 단계에서 상기 제 4 오류개수 추정식의 값이 0이 아닐 경우에는, 상기 입력데이터 신드롬의 확대성분이 0인지 여부를 판단하는 제 12 단계와,
    상기 제 12 단계에서 상기 입력데이터 신드롬의 확대성분이 0일 경우에는, 오류의 개수가 상기 오류정정 수와 동등하다고 추정하는 제 13 단계와,
    상기 제 12 단계에서 상기 입력데이터 신드롬의 확대성분이 0이 아닐 경우에는, 오류의 개수가 상기 오류정정 수에 1을 더한 수와 동등하다고 추정하는 제 14 단계를 구비하는 것을 특징으로 하는 복호방법.
  7. 제 1 내지 제 6 항 중 어느 한 항에 있어서,
    상기 오류정정 수가 3인 것을 특징으로 하는 복호방법.
  8. 어떤 오류정정 수의 리드솔로몬 부호 또는 확대 리드솔로몬 부호로 이루어지는 수신어를 입력데이터로서 복호하기 위한 복호기이며,
    상기 입력데이터의 신드롬을 입력데이터 신드롬으로서 구하고, 상기 입력데이터 신드롬에 기초하여 상기 입력데이터에 오류가 존재하는지 여부를 나타내는 제 1 플래그신호를 출력함과 동시에, 상기 입력데이터 및 상기 입력데이터 신드롬에 기초하여 구해진 제 1 정정데이터의 신드롬을 정정데이터 신드롬으로서 구하고, 상기 정정데이터 신드롬에 기초하여 상기 제 1 정정데이터에 오류가 존재하는지 여부를 나타내는 제 2 플래그신호를 출력하기 위한 신드롬계산부와,
    상기 신드롬계산부에서 계산된 입력데이터 신드롬에 기초하여 상기 입력데이터 중에 발생한 오류의 개수를 추정하기 위한 오류개수 추정부와,
    상기 입력데이터 신드롬에 기초하여 오류평가 다항식 및 오류위치 다항식 각 차수의 계수를 구함과 동시에, 상기 계수로부터 구해진 오류 평가값 및 대응하는 오류위치 다항식 미분값에 기초하여 오류의 크기를 구하기 위한 평가다항식 및 위치다항식 도출부와,
    상기 계수에 기초하여 상기 오류위치 다항식의 근을 구함과 동시에, 상기 오류평가 다항식에 상기 근의 각각을 대입하여 얻어지는 오류 평가값 및 상기 오류위치 다항식의 도함수에 상기 근의 각각을 대입하여 얻어지는 오류위치 다항식 미분값을 구하기 위한 첸 탐색부와,
    상기 입력데이터 및 상기 근 그리고 상기 오류의 크기에 기초하여 오류의 개수를 산출하기 위한 오류개수 산출부와,
    상기 입력데이터 및 상기 근 그리고 대응하는 상기 오류의 크기에 기초하여, 상기 입력데이터에 오류정정처리를 실시하여 오류정정처리 데이터를 구하기 위한 오류정정부를 구비하며,
    상기 오류정정부는,
    상기 오류개수 추정부에서 추정된 오류의 개수와 상기 오류개수 산출부에서 산출된 오류의 개수가 동등하며, 또 상기 오류개수 추정부에서 추정된 오류의 개수 및 상기 오류개수 산출부에서 산출된 오류의 개수가 모두 상기 오류정정 수 이하이고, 또 상기 제 1 플래그신호가 상기 입력데이터에 오류가 존재함을 나타낼 경우에는, 상기 오류정정처리 데이터를 상기 제 1 정정데이터로서 출력하며,
    상기 오류개수 추정부에서 추정된 오류의 개수와 상기 오류개수 산출부에서 산출된 오류의 개수가 동등하지 않거나, 또는 상기 오류개수 추정부에서 추정된 오류의 개수 혹은 상기 오류개수 산출부에서 산출된 오류 개수 중 어느 하나가 상기 오류정정 수보다 크거나, 또는 상기 제 1 플래그신호가 상기 입력데이터에 오류가 존재하지 않음을 나타낼 경우에는, 상기 입력데이터를 상기 제 1 정정데이터로서 출력함과 동시에,
    상기 제 2 플래그신호가 상기 제 1 정정데이터에 오류가 존재함을 나타내며, 또 상기 오류개수 추정부에서 추정된 오류의 개수와 상기 오류개수 산출부에서 산출된 오류의 개수가 동등하고, 또한 상기 오류개수 추정부에서 추정된 오류의 개수 및 상기 오류개수 산출부에서 산출된 오류의 개수가 모두 상기 오류정정 수 이하일 경우에는, 상기 제 1 정정데이터에 대하여 상기 입력데이터로 복원시키는 복원처리를 실시하여 얻은 데이터를 제 2 정정데이터로서 출력하며,
    상기 제 2 플래그신호가 상기 제 1 정정데이터에 오류가 존재하지 않음을 나타내거나, 또는 상기 오류개수 추정부에서 추정된 오류의 개수와 상기 오류개수 산출부에서 산출된 오류의 개수가 동등하지 않거나, 혹은 상기 오류개수 추정부에서 추정된 오류의 개수 또는 상기 오류개수 산출부에서 산출된 오류의 개수 중 어느 하나가 상기 오류정정 수보다 클 경우에는, 상기 제 1 정정데이터를 제 2 정정데이터로서 출력하는 것을 특징으로 하는 복호기.
  9. 제 8 항에 있어서,
    상기 신드롬계산부는,
    상기 입력데이터 및 상기 오류정정부가 출력하는 상기 제 1 정정데이터를 입력으로 하며, 입력된 상기 입력데이터와 입력된 상기 제 1 정정데이터를 순차 선택하여 출력하기 위한 선택기와,
    상기 선택기가 출력하는 상기 입력데이터에 기초하여 상기 입력데이터 신드롬을, 상기 제 1 정정데이터에 기초하여 상기 정정데이터 신드롬을 각각 구하기 위한 신드롬 연산기와,
    상기 입력데이터 신드롬을 유지하고 출력하기 위한 입력데이터 신드롬 유지기와,
    상기 정정데이터 신드롬을 유지하고 출력하기 위한 정정데이터 신드롬 유지기와,
    상기 입력데이터 신드롬 유지기가 출력하는 상기 입력데이터 신드롬의 성분이 모두 0일 경우에는 상기 입력데이터에 오류가 존재하지 않음을 나타내도록 상기 제 1 플래그신호를 출력하며, 상기 입력데이터 신드롬 유지기가 출력하는 상기 입력데이터 신드롬의 성분 중 어느 하나가 0이 아닐 경우에는 상기 입력데이터에 오류가 존재함을 나타내도록 상기 제 1 플래그신호를 출력하기 위한 제 1 신드롬 제로 검출기와,
    상기 정정데이터 신드롬 유지기가 출력하는 상기 정정데이터 신드롬의 성분이 모두 0일 경우에는 상기 제 1 정정데이터에 오류가 존재하지 않음을 나타내도록상기 제 2 플래그신호를 출력하며, 상기 정정데이터 신드롬 유지기가 출력하는 상기 정정데이터 신드롬 성분 중 어느 하나가 0이 아닐 경우에는 상기 제 1 정정데이터에 오류가 존재함을 나타내도록 상기 제 2 플래그신호를 출력하기 위한 제 2 신드롬 제로 검출기를 구비하는 것을 특징으로 하는 복호기.
  10. 제 9 항에 있어서,
    상기 신드롬연산기는,
    상기 선택기가 순차 출력하는 상기 입력데이터 및 상기 제 1 정정데이터에 기초하여, 확대성분이 아닌 성분의 상기 입력데이터 신드롬 및 상기 정정데이터 신드롬을 각각 구하기 위한 비확대성분 신드롬 처리기와,
    상기 선택기가 순차 출력하는 상기 입력데이터 및 상기 제 1 정정데이터에 기초하여, 확대성분의 상기 입력데이터 신드롬 및 상기 정정데이터 신드롬을 각각 구하기 위한 확대성분 신드롬 처리기와,
    상기 비확대성분 신드롬 처리기에서 출력된 확대성분이 아닌 성분의 상기 입력데이터 신드롬과, 상기 확대성분 신드롬 처리기에서 출력된 확대성분의 상기 입력데이터 신드롬을 일괄시키며, 또 상기 비확대성분 신드롬 처리기에서 출력된 확대성분이 아닌 성분의 상기 정정데이터 신드롬과, 상기 확대성분 신드롬 처리기에서 출력된 확대성분의 상기 정정데이터 신드롬을 일괄시켜 출력하기 위한 버스드라이버를 구비하는 것을 특징으로 하는 복호기.
  11. 제 8 항에 있어서,
    상기 오류정정부는,
    상기 오류개수 추정부에서 추정된 오류의 개수와 상기 오류개수 산출부에서 산출된 오류의 개수를 비교하기 위한 비교부와,
    상기 제 1 정정데이터와, 오류의 위치, 오류의 크기 및 오류의 개수를 출력하기 위한 제 1 오류정정기와,
    상기 오류의 위치를 유지하고 출력하기 위한 오류위치 데이터 유지기와,
    상기 오류의 크기를 유지하고 출력하기 위한 오류크기 데이터 유지기와,
    상기 제 2 정정데이터를 출력하기 위한 제 2 오류정정기를 구비하며,
    상기 비교부는, 상기 오류개수 추정부에서 추정된 오류의 개수와 상기 오류개수 산출부에서 산출된 오류의 개수가 동등하고, 또 상기 오류개수 추정부에서 추정된 오류의 개수 및 상기 오류개수 산출부에서 산출된 오류의 개수가 모두 상기 오류정정 수 이하인지 여부를 나타내는 제 3 플래그신호를 출력하고,
    상기 제 1 오류정정기는,
    상기 입력데이터에 대하여, 상기 근의 각각에 대응하는 오류 위치가 나타내는 심벌로부터 대응하는 상기 오류의 크기를 감산 또는 가산하는 오류정정 처리를 실시하여 오류정정 처리데이터를 구하고, 또 상기 오류정정 처리데이터에 기초하여 확대성분의 오류정정 처리데이터를 구해 이들을 오류정정 처리데이터로 하며,
    상기 오류개수 추정부에서 추정된 오류의 개수와 상기 오류개수 산출부에서 산출된 오류의 개수가 동등하고, 또 상기 오류개수 추정부에서 추정된 오류의 개수및 상기 오류개수 산출부에서 산출된 오류의 개수가 모두 상기 오류정정 수 이하임을 상기 제 3 플래그신호가 나타내며, 또 상기 입력데이터에 오류가 존재함을 상기 제 1 플래그신호가 나타낼 경우에는, 상기 오류정정 처리데이터를 상기 제 1 정정데이터로서 출력하고,
    상기 오류개수 추정부에서 추정된 오류의 개수와 상기 오류개수 산출부에서 산출된 오류의 개수가 동등하지 않거나, 또는 상기 오류개수 추정부에서 추정된 오류의 개수 혹은 상기 오류개수 산출부에서 산출된 오류의 개수 중 어느 하나가 상기 오류정정 수보다 큼을 상기 제 3 플래그신호가 나타내거나, 또는 상기 입력데이터에 오류가 존재하지 않음을 상기 제 1 플래그신호가 나타낼 경우에는, 상기 입력데이터를 상기 제 1 정정데이터로서 출력하며,
    상기 제 2 오류정정기는,
    상기 제 1 정정데이터에 오류가 존재함을 상기 제 2 플래그신호가 나타내며, 또 상기 오류개수 추정부에서 추정된 오류의 개수와 상기 오류개수 산출부에서 산출된 오류의 개수가 동등하며, 또 상기 오류개수 추정부에서 추정된 오류의 개수 및 상기 오류개수 산출부에서 산출된 오류의 개수가 모두 상기 오류정정 수 이하임을 상기 제 3 플래그신호가 나타낼 경우에는, 상기 제 1 정정데이터에 대하여, 상기 오류의 위치가 나타내는 심벌에 대응하는 상기 오류 크기의 값을 가산 또는 감산하여 상기 입력데이터로 복원시키는 복원처리를 실시하여 얻어진 데이터를 상기 제 2 정정데이터로서 출력하고,
    상기 제 1 정정데이터에 오류가 존재하지 않음을 상기 제 2 플래그신호가 나타내거나, 또는 상기 오류개수 추정부에서 추정된 오류의 개수와 상기 오류개수 산출부에서 산출된 오류의 개수가 동등하지 않거나, 혹은 상기 오류개수 추정부에서 추정된 오류의 개수 또는 상기 오류개수 산출부에서 산출된 오류의 개수 중 어느 하나가 상기 오류정정 수보다 큼을 상기 제 3 플래그신호가 나타낼 경우에는, 상기 제 1 정정데이터를 상기 제 2 정정데이터로서 출력하는 것을 특징으로 하는 복호기.
  12. 제 11 항에 있어서,
    상기 제 1 오류정정기는,
    상기 제 1 정정데이터를 출력하기 위한 오류정정 처리기와,
    확대성분의 상기 제 1 정정데이터와, 상기 확대성분에 대한 오류의 위치, 오류의 크기 및 오류의 개수를 출력하기 위한 확대성분 오류정정 처리기와,
    상기 제 1 정정데이터와 확대성분의 상기 제 1 정정데이터를 일괄시켜, 상기 제 1 정정데이터로서 출력하기 위한 버스드라이버를 구비하며,
    상기 오류정정 처리기는,
    상기 입력데이터에 대하여, 상기 근의 각각에 대응하는 오류의 위치가 나타내는 심벌로부터 대응하는 상기 오류의 크기를 감산 또는 가산하는 오류정정 처리를 실시하여 오류정정 처리데이터를 구하고,
    상기 오류개수 추정부에서 추정된 오류의 개수와 상기 오류개수 산출부에서 산출된 오류의 개수가 동등하며, 또 상기 오류개수 추정부에서 추정된 오류의 개수및 상기 오류개수 산출부에서 산출된 오류의 개수가 모두 상기 오류정정 수 이하임을 상기 제 3 플래그신호가 나타내고, 또 상기 입력데이터에 오류가 존재함을 상기 제 1 플래그신호가 나타낼 경우에는, 상기 오류정정 처리데이터를 상기 제 1 정정데이터로서 출력하며,
    상기 오류개수 추정부에서 추정된 오류의 개수와 상기 오류개수 산출부에서 산출된 오류의 개수가 동등하지 않거나, 또는 상기 오류개수 추정부에서 추정된 오류의 개수 혹은 상기 오류개수 산출부에서 산출된 오류의 개수 중 어느 하나가 상기 오류정정 수보다 큼을 상기 제 3 플래그신호가 나타내거나, 혹은 상기 입력데이터에 오류가 존재하지 않음을 상기 제 1 플래그신호가 나타낼 경우에는, 상기 입력데이터를 상기 제 1 정정데이터로서 출력하고,
    상기 확대성분 오류정정 처리기는,
    상기 오류정정 처리데이터에 기초하여 확대성분의 오류정정 처리데이터를 구함과 동시에, 확대성분의 오류개수를 구하며,
    상기 오류개수 추정부에서 추정된 오류의 개수와 상기 오류개수 산출부에서 산출된 오류의 개수가 동등하고, 또 상기 오류개수 추정부에서 추정된 오류의 개수 및 상기 오류개수 산출부에서 산출된 오류의 개수가 모두 상기 오류정정 수 이하임을 상기 제 3 플래그신호가 나타내며, 또, 상기 입력데이터에 오류가 존재함을 상기 제 1 플래그신호가 나타낼 경우에는, 확대성분의 상기 오류정정 처리데이터를 확대성분의 상기 제 1 정정데이터로서 출력하고,
    상기 오류개수 추정부에서 추정된 오류의 개수와 상기 오류개수 산출부에서산출된 오류의 개수가 동등하지 않거나, 또는 상기 오류개수 추정부에서 추정된 오류의 개수 혹은 상기 오류개수 산출부에서 산출된 오류의 개수 중 어느 하나가 상기 오류정정 수보다 큼을 상기 제 3 플래그신호가 나타내거나, 또는 상기 입력데이터에 오류가 존재하지 않음을 상기 제 1 플래그신호가 나타낼 경우에는, 확대성분의 상기 입력데이터를 확대성분의 상기 제 1 정정데이터로서 출력하는 것을 특징으로 하는 복호기.
  13. 제 8 항에 있어서,
    상기 오류정정부가 상기 제 1 정정데이터를 구하기 시작할 때까지 상기 입력데이터를 유지 출력하며, 또 상기 오류정정부가 상기 제 2 정정데이터를 구하기 시작할 때까지 상기 제 1 정정데이터를 유지 출력하기 위한 데이터기억부를 추가로 구비하는 것을 특징으로 하는 복호기.
  14. 제 8 항 내지 제 13 항 중 어느 한 항에 있어서,
    상기 오류정정 수가 3인 것을 특징으로 하는 복호기.
KR1020040016751A 2003-03-12 2004-03-12 리드솔로몬 부호 또는 확대 리드솔로몬 부호의 복호방법및 복호기 KR20040081366A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2003-00066149 2003-03-12
JP2003066149 2003-03-12

Publications (1)

Publication Number Publication Date
KR20040081366A true KR20040081366A (ko) 2004-09-21

Family

ID=32767930

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040016751A KR20040081366A (ko) 2003-03-12 2004-03-12 리드솔로몬 부호 또는 확대 리드솔로몬 부호의 복호방법및 복호기

Country Status (6)

Country Link
US (1) US7206993B2 (ko)
EP (1) EP1458105B1 (ko)
KR (1) KR20040081366A (ko)
CN (1) CN1317828C (ko)
DE (1) DE60311764T2 (ko)
TW (1) TW200419921A (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3352659B2 (ja) * 2000-03-27 2002-12-03 松下電器産業株式会社 復号装置及び復号方法
CN1773864B (zh) * 2004-11-12 2010-05-05 中国科学院空间科学与应用研究中心 一种纠错能力为2的扩展里德—所罗门码的译码方法
CN1773863B (zh) * 2004-11-12 2010-06-02 中国科学院空间科学与应用研究中心 一种可用于大容量存储器的rs(256,252)码纠错译码芯片
US20070150798A1 (en) * 2005-12-12 2007-06-28 Jia-Horng Shieh Method for decoding an ecc block and related apparatus
US8433985B2 (en) * 2010-03-29 2013-04-30 Intel Corporation Error correction mechanisms for flash memories
JP5525498B2 (ja) * 2011-09-13 2014-06-18 株式会社東芝 誤り検出装置
CN102567134B (zh) * 2012-01-06 2015-01-07 威盛电子股份有限公司 存储器模块的错误检查与校正系统以及方法
JP6036089B2 (ja) * 2012-09-25 2016-11-30 日本電気株式会社 データ遷移トレース装置、データ遷移トレース方法、及び、データ遷移トレースプログラム
RU2677372C1 (ru) * 2017-08-07 2019-01-16 Федеральное государственное бюджетное образовательное учреждение высшего образования "Юго-Западный государственный университет "(ЮЗГУ) Устройство декодирования произведений кодов Рида-Соломона
US11651830B2 (en) * 2020-07-09 2023-05-16 Synopsys, Inc. Low latency decoder for error correcting codes
US11949429B2 (en) 2022-07-19 2024-04-02 Macronix International Co., Ltd. Memory device, error correction device and error correction method thereof
TWI817616B (zh) * 2022-07-19 2023-10-01 旺宏電子股份有限公司 記憶體裝置、錯誤糾正裝置及其錯誤糾正方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5373511A (en) * 1992-05-04 1994-12-13 Motorola, Inc. Method for decoding a reed solomon encoded signal with inner code and apparatus for doing same
FR2721775B1 (fr) * 1994-06-27 1996-09-06 Sgs Thomson Microelectronics Circuit de localisation d'erreurs d'un décodeur Reed-Solomon.
JP3233860B2 (ja) * 1996-10-25 2001-12-04 松下電器産業株式会社 リードソロモン復号器
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次伸長拡大リードソロモン符号の誤り訂正方法と誤り訂正装置
JPH1117557A (ja) * 1997-05-01 1999-01-22 Mitsubishi Electric Corp 誤り訂正方法及び誤り訂正装置
US5978956A (en) * 1997-12-03 1999-11-02 Quantum Corporation Five-error correction system
US6081920A (en) * 1998-01-08 2000-06-27 Lsi Logic Corporation Method and apparatus for fast decoding of a Reed-Solomon code
JP3272307B2 (ja) * 1998-09-22 2002-04-08 インターナショナル・ビジネス・マシーンズ・コーポレーション リード・ソロモン符号の復号回路
CN1097882C (zh) * 1998-10-14 2003-01-01 三星电子株式会社 里德-索罗门解码器和解码方法
JP3549788B2 (ja) * 1999-11-05 2004-08-04 三菱電機株式会社 多段符号化方法、多段復号方法、多段符号化装置、多段復号装置およびこれらを用いた情報伝送システム
CN1286275C (zh) * 1999-11-24 2006-11-22 三洋电机株式会社 纠错装置
JP3352659B2 (ja) 2000-03-27 2002-12-03 松下電器産業株式会社 復号装置及び復号方法
US7020826B2 (en) * 2002-01-23 2006-03-28 Thomson Licensing Intra-decoder component block messaging

Also Published As

Publication number Publication date
TW200419921A (en) 2004-10-01
US20040199857A1 (en) 2004-10-07
DE60311764D1 (de) 2007-03-29
CN1531211A (zh) 2004-09-22
US7206993B2 (en) 2007-04-17
CN1317828C (zh) 2007-05-23
DE60311764T2 (de) 2007-06-14
EP1458105A3 (en) 2004-12-08
EP1458105A2 (en) 2004-09-15
EP1458105B1 (en) 2007-02-14

Similar Documents

Publication Publication Date Title
KR100497639B1 (ko) 리드솔로몬복호기
KR20040081366A (ko) 리드솔로몬 부호 또는 확대 리드솔로몬 부호의 복호방법및 복호기
US8914698B2 (en) Cyclic redundancy check circuit and communication system having the same for multi-channel communication
JP2006227939A (ja) 演算装置
JP3245119B2 (ja) 新たな多項式配列構造を採用したリード−ソロモン復号器とその復号方法
JP3352659B2 (ja) 復号装置及び復号方法
EP0661841B1 (en) Parity and syndrome generation for error detection and correction in digital communication systems
JP2605966B2 (ja) 誤り訂正回路
JP4346396B2 (ja) リードソロモン符号又は拡大リードソロモン符号の復号方法及び復号器
US6145112A (en) Error correcting method and apparatus
CN109274460B (zh) 一种多比特并行结构串行抵消译码方法和装置
JPH04215332A (ja) データ転送エラー検出装置及びその方法
JPH0787090A (ja) 巡回符号検出方法及び装置
KR100239798B1 (ko) 디지털 신호의 재생에 있어 에러정정방법 및 그에 적용되는 장치
JP2944813B2 (ja) 誤り訂正符号の復号装置
JP3889988B2 (ja) エラー訂正回路およびエラー訂正プログラム
KR100532373B1 (ko) 디지털 신호의 재생에 있어 에러정정방법
Hajare et al. Design and Implementation of Parallel CRC Generation for High Speed Application
Li et al. A Fast Algorithm for Finding the Roots of Polynomials over Finite Fields
JP2948026B2 (ja) リードソロモン符号の復号方法
JPH1065552A (ja) 誤り訂正の演算処理方法及び処理回路
JP2001251196A (ja) リードソロモン復号方法及びリードソロモン復号装置
CN117200809A (zh) 用于纠两个误码的rs码的低功耗钱搜索和错误估值电路
JP2003168983A (ja) 復号回路および復号方法
JPH0832458A (ja) 復号装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application