KR19980027713A - 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치 및 방법 - Google Patents

이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치 및 방법 Download PDF

Info

Publication number
KR19980027713A
KR19980027713A KR1019960046563A KR19960046563A KR19980027713A KR 19980027713 A KR19980027713 A KR 19980027713A KR 1019960046563 A KR1019960046563 A KR 1019960046563A KR 19960046563 A KR19960046563 A KR 19960046563A KR 19980027713 A KR19980027713 A KR 19980027713A
Authority
KR
South Korea
Prior art keywords
error
laser
polynomial
syndrome
unit
Prior art date
Application number
KR1019960046563A
Other languages
English (en)
Other versions
KR100225032B1 (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 김광호
Priority to KR1019960046563A priority Critical patent/KR100225032B1/ko
Publication of KR19980027713A publication Critical patent/KR19980027713A/ko
Application granted granted Critical
Publication of KR100225032B1 publication Critical patent/KR100225032B1/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
    • 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/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)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

본 발명은 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치 및 방법에 관한 것으로, 리드-솔로몬 복호 회로에서 수정된 유클리디안 알고리즘을 이용하여 에러와 이레이저가 함께 혼재된 수신 부호어에서 오류 위치 다항식과 오류 크기 다항식을 계산하고, 이 다항식을 사용하는 새로운 복호화 방식으로 수정된 유클리디안 복호 과정을 적용하여 수신 부호어의 오류를 정정하는 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치 및 방법을 제공함에 그 목적이 있다.
이상에서 설명한 본 발명에 의한 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치 및 방법에 따르면, 스크래치나 잡음 등에 의해 수신 부호어에 포함된 에러 및 이레이저를 동시에 정정할 수 있음에 따라, 종래 CDP 등의 응용 분야에서는 불가능한 이레이저 정정을 가능하게 함과 동시에, 고밀도를 요구하는 차세대 기록 매체의 응용 분야인 DVDP, DVDROM 등에 적용될 리드-솔로몬 부호를 위한 복호화의 성능을 향상시킴으로써 더욱 신뢰성 있는 데이터 저장 및 전송을 확보할 수 있고, 이를 통해 사용자로 하여금 제품에 대한 신뢰도와 만족도를 증가시킬 수 있다.

Description

이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치 및 방법
본 발명은 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치 및 방법에 관한 것으로, 더욱 상세하게는 리드-솔로몬 복호 회로에서 수정된 유클리디안 알고리즘을 이용하여 에러와 이레이저가 함께 혼재된 수신 부호어에서 오류 위치 다항식과 오류 크기 다항식을 계산하고, 이 다항식을 사용하는 새로운 복호화 방식으로 수정된 유클리디안 복호 과정을 적용하여 수신 부호어의 오류를 정정하는 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치 및 방법에 관한 것이다.
디지탈 신호의 특성상 잡음에 강하고, 전송 및 저장이 수월하다는 장점 때문에 아날로그 신호인 영상 신호 혹은 음성 신호를 디지털 신호로 변환시키는 과정이 일반적인 현상이다. 이와 같이 아날로그 신호를 디지털 신호로 변환시키는 경우, 영상 신호와 같이 많은 데이터의 양을 필요로 하는 신호는 반드시 필요한 데이터만을 취합하는 소오스 부호화 과정(Source Coding)을 필요로 하고 있다. 이와 같은 소오스 부호화 과정에서는 음성 신호를 위한 PCM(Pulse Code Modulation), LPC(Linear Predictive Coding) 등과 영상 신호를 위한 MPEG I과 MPEG II 등이 포함된다.
상기의 소오스 부호화 과정에서 압축된 데이터는 전송 및 저장 시에 잡음이나 스크래치(Scratch) 등에 의해 데이터가 손상될 수 있기 때문에, 이 손상된 데이터를 원래의 정확한 데이터로 복구하기 위해 데이터 외에 부가적인 데이터를 덧붙이는 채널 부호화 과정(Channel Coding)을 필요로 한다. 이러한 채널 부호화 과정에는 블록 부호화 과정, 길쌈 부호화 과정, 연쇄 부호화 과정 등이 사용되며, 각 부호화 과정은 나름대로의 특징을 지니고 있기 때문에 부호화 과정의 선택은 응용 분야 및 원하는 신호 복구 수준에 따라 결정된다.
또한 블럭 부호화 기법에는 Cyclic 부호화 기법, BCH(Both-Chaudhuri- Hocquenghem) 부호화 기법, 리드-솔로몬(Reed-Solomon) 부호화 방식 등이 사용되는데, 이는 전송 및 저장할 데이터를 블럭화하여 무선 통신 채널 및 저장 매체에서 발생할 수 있는 오류를 정정할 수 있도록 리던던시(Redundancy)를 부과하는 기법이다.
디지탈 영상 신호를 DVD(Digital Video Disk), CD(Compact Disk) 등의 저장 매체에 저장할 경우에는, 저장 매체에 발생될 수 있는 스크래치에 의해 버스트(burst)한 형태의 오류가 발생할 수 있는데, 이러한 버스트 오류가 발생되는 분야에 적합한 채널 부호화 기법은 리드-솔로몬 부호화 기법이다. 상기 리드-솔로몬 부호화 기법은 비이진 BCH 부호화 기법으로 최적의 부호화 이득(Coding Gain)을 얻을 수 있는 것으로 알려지고 있다. 이하에서는 일반적인 리드-솔로몬 부호화 및 복호화 기법에 대해 설명하기로 한다.
리드-솔로몬 부호는 유한 필드인 갈로이(Galois) 필드를 이용하여 부호화 함으로써 오류 정정을 위한 리던던시를 추가하는 부호화 기법이다. 상기 갈로이 필드는 일반적으로q개의 원소를 가지는 GF(q)로 표기하며, 원소의 갯수q는 소수(prime integer) p와 양의 정수m에 의해 결정되는의 형태를 취한다. 예를 들어, 소수가 2이고 m이 4인 경우 갈로이 필드의 원소의 개수 q는(=16)이며 갈로이 필드는을 취한다. 또한, 갈로이 필드 GF(q)에서는 원소의 차수(order)는를 만족하는 최소의 m 값이며 차수가 q-1인 소인수(primitive element)를 가진다.
예를 들어 k개의 정보 심볼의 데이터 묶음을 부호화할 경우, 갈로이 필드 GF(q)에서 다항식
에 의해 상기 데이터 묶음을 나타내며, 리드-솔로몬 부호화 과정에 의해 부호화된 데이터는 갈로이 필드 GF(q)내의 q개의 각 원소에 대해 상기 다항식를 계산함으로써 다음의 수학식 1과 같이 발생시킬 수 있다.
[수학식 1]
부호화된 데이터의 집합에는 상기 수학식 1에서 완전하게 리드-솔로몬 부호화를 수행하기 위해 k개로 이루어진 정보 심볼 각각에 해당하는 값이 있어야 하며, k개의 정보 심볼 각각의 정보는 갈로이 필드 GF(q)내의 q개 원소 중 하나를 취하므로, 리드-솔로몬 부호에는개의 부호 단위가 존재하게 된다.
상기 리드-솔로몬 부호화 방식에 의한 부호화 기법은 기타 블럭 부호에 비해 상대적으로 우수한 거리 특성(distance property)을 지니고 있으며, 또한 부호화 기법이 요구되는 실제 응용 시스템에서 상대적으로 매우 긴 길이의 부호화를 구현하기 위해 경판정(hard-decision) 복호 알고리즘을 효율적으로 사용할 수 있는 장점이 있다.
전송 및 저장을 리드-솔로몬 부호화 방식에 의해 부호화된 데이터를 원래의 데이터로 복구하여 재생하기 위해 복호화를 거쳐야 한다. 종래의 리드-솔로몬 부호의 복호화 장치 및 방법은 도 1에 도시된 블럭도에 나타나 있다. 이하에서는 종래의 리드-솔로몬 복호화 장치 및 방법을 도 1을 참조하여 상세히 설명하기로 한다.
종래의 리드-솔로몬 복호화 장치는 수신 부호어를 입력받아 신드롬을 계산하는 신드롬 계산부(110)와, 상기 신드롬 계산부(110)로부터 신드롬을 입력받아 에러의 위치와 크기에 해당되는 에러 위치 다항식(error location polynomial)과 에러 크기 다항식(error evaluation polynomial)을 계산하는 에러 다항식 계산부(120)와, 상기 에러 다항식 계산부(120)에서 계산된 에러 위치 다항식과 에러 크기 다항식을 이용하여 에러의 위치 및 크기를 계산하는 에러 계산부(130)와, 상기 신드롬 계산부(110)와 에러 다항식 계산부(120)를 통과하면서 소요되는 시간 지연을 보상하기 위해 상기 수신 부호어를 입력받아 일정 시간을 지연시키는 시간 지연부(140)와, 상기 에러 계산부(130)에서 출력되는 오류의 위치 및 크기 신호와 상기 시간 지연부(140)에서 시간 지연된 수신 부호어를 합하여 다중 에러를 정정하는 부호 정정부(150)로 구성된다.
상기와 같이 구성된 리드-솔로몬 복호 장치에서 상기 신드롬 계산부(110)에서는 복조된 수신 부호어를 벡터 형태의 신드롬을 계산한다. 여기서 신드롬은 선형 블록 부호의 경우에서 패리티 검사 행렬(parity-check matrix)의 전치 행렬(transpose)과 곱하여 구하며, 부호화 기법에 따라 계산 방법이 상이하다. 또한, 상기 신드롬은 수신 부호어에 가중되어 에러를 유도한 에러 형태에 따라 각각 다른 값을 가지기 때문에, 이 신드롬을 확인하여 수신 부호어에 발생된 에러를 정정할 수 있게 된다.
상기 신드롬 계산부(110)에서 계산된 신드롬은 도 1의 에러 다항식 계산부(120)와 상기 에러 계산부(130)에서 에러의 위치와 크기를 계산한다. 상기 리드-솔로몬 복호 장치에서는 다양한 계산 방법이 적용되는데, 그 중에서 특히 피터슨-고렌스타인-지엘러(Peterson-Gorenstein-Zierler) 복호 방식(이하 PGZ 복호 방식으로 칭함.), 브레캠프-메세이(Berlekamp-Massey) 복호 방식, 그리고 유클리디안(Euclidean) 복호 방식 등이 사용된다. 이하 각 복호 방식에 대한 간략한 설명을 통해 종래의 리드-솔로몬 복호화 방식을 설명하기로 한다.
우선, PGZ 복호 방식은 신드롬을 이용한 비선형 방정식의 해를 찾는 방법을 통해 복호화하는 방식이다. 에러를 정정하기 위해 필요한 변수인 에러 위치 및 에러 크기를 나타내는 변수를 각각로 설정하면 발생시킬 수 있는 신드롬과의 관계식은 다음의 수학식 1과 같이 표현할 수 있다.
[수학식 2]
상기 수학식 2에서는 발생된 에러의 개수,는 리드-솔로몬 부호의 에러 정정 가능한 심볼 개수,는 신드롬을 의미한다. 상기 비선형 방정식을 해결하기 위해 에러가 발생되는 위치를 해로 가지는 에러 위치 다항식은 다음의 수학식 3과 같이 정의할 수 있다.
[수학식 3]
상기 수학식 2에 나타난 비선형 방정식에 상시 수학식 3을 대입하여 신드롬을 계수로 가지며, 에러 위치 다항식의 계수를 변수로 갖는 선형 방정식을 다음의 수학식 4와 같이 표현할 수 있다.
[수학식 4]
상기 수학식 4에서은 신드롬으로 이루어진 행렬이며,는 상기 수학식 3에 나타난 에러 위치 방정식의 계수로 이루어진 벡터이며,는 ()번째의 신드롬에서의 신드롬으로 이루어진 벡터를 의미한다.
이어서 상기의 수학식 4에 도시된 선형 방정식에서 행렬의 행렬식(determinant)을 계산하고, 만약 0인 경우에는 발생된 에러의 개수가 상기 행렬의 크기보다 적다는 것을 의미하므로 행렬의 크기를 하나 줄이고 다시 행렬식을 계산하는 과정을 반복한다. 반복 수행 중에 행렬식이 0이 아닌 값일 경우 반복 과정에서 크기가 줄어든 행렬의 역행렬을 통해 벡터를 계산한다. 이 벡터는 상기 수학식 3에 도시된 에러 위치 다항식의 계수이므로 수학식 3에 대입하여 에러 위치 다항식이 0이 되게 하는를 결정한다. 이 때,를 결정하는 방법은 시행착오를 통해 반복적으로 대입함으로써 결정하는 치엔 탐색(Chien Search)을 사용한다.
상기가 결정된 후에 상기 수학식 2에 대입하여 에러의 크기를 결정하는 변수인를 계산하여 수신 부호어의 에러를 정정한다.
상기 수학식 3에 나타난 비선형 방정식에서 에러 위치 다항식의 계수를 계산하기 위해 필요한 행렬식 및 역행렬 계산 시에는 에러의 개수의 3승에 비례하는 연산이 필요하다. 따라서, 다중 에러 검출이 필요한 경우에는 수신 부호어의 복호화 과정에 과다한 시간 지연이 발생되는 단점이 있다.
상기의 PGZ 복호화 과정의 단점을 극복하기 위해 제안된 방식이 브레캠프-메세이 복호 방식이다. 이 방식은 상기 수학식 4의 행렬이 임의의 행렬이 아니고 각 원(element)들이 체계적인 구성을 이룬다는 성질을 이용하여 효율적인 계산 방법을 사용한다. 이하에서 상기 브레캠프-메세이 복호 방식에 대해 간략하게 설명하기로 한다.
상기 브레캠프-메세이 복호 과정은 우선적으로 최소의 쉬프트 레지스터를 이용하여 복호 장치를 구성하기 위해 에러의 개수를 결정하여야 하며, 결정된 쉬프트 레지스터 개수로 구성된 복호 장치를 이용하여 에러 위치 다항식을 계산한다. 복호 과정을 시작할 때, 에러 위치 다항식와 매개 다항식는 1로 초기화하고, 반복 회수과 쉬프트 레지스터의 개수은 0으로 초기화한다. 과정을 시작하면서, 반복 회수를 1만큼 증가시키고, 다음의 수학식 5와 같이 초기화에 의해 1로 결정된 에러 위치 다항식에 의해 실제 신드롬에 임시로 계산한 신드롬의 차을 계산한다.
[수학식 5]
상기 수학식 5와 같이 계산된이 0이면 정확한 에러 위치 다항식에 의한 계산이므로 과정을 완료하지만, 0이 아닌 경우에는 매개 방정식를 계산한다. 그리고, 현재의 반복 회수가 임의로 결정된 쉬프트 레지스터의 조건보다 작을 경우에는 과정의 수행을 마치며, 쉬프트 레지스터의 조건보다 클 경우에는 매개 변수와 에러 위치 다항식를 수정하고, 쉬프트 레지스터를 증가시킨다. 상기의 수정 방법은 다음의 수학식 6에 의해 이루어진다.
[수학식 6]
상기의 반복 과정을 통해 계산된 에러 위치 다항식의 차수가 쉬프트 레지스터의 개수와 동일할 경우에는 상기 PGZ 방식에서 언급한 치엔 검색을 통해 에러 위치를 계산하고, 또한 이 에러 위치에 의해 에러의 크기를 계산하여 에러 정정에 사용하는 반면,가 쉬프트 레지스터의 개수와 동일하지 않을 경우에는 에러 정정이 가능한 개수를 초과하는 에러가 발생되었기 때문에 에러 정정을 수행하지 않는다.
상기의 반복 과정을 통해 에러 위치 다항식를 결정하는 상기 브레캠프-메세이 복호 방식은 상기 PGZ 방식에 비해 적은 연산으로 상기 수학식 4의 방정식을 풀 수 있으며, 특히 에러의 개수가 많은 경우에는 연산의 효율은 더욱 증가한다. 따라서, 브레캠프-메세이 복호 과정은 다중 에러를 검출하여 정정하는 응용 분야에 널리 사용된다.
마지막으로, 적용 분야에 효율이 영향을 받는 유클리디안 복호 방식은 두 다항식의 최대 공약수를 계산하는 반복 과정을 이용하여 에러를 복구하는 데에 사용된다. 이후 유클리디안 복호 방식의 동작에 대해 간단히 설명하기로 한다. 우선, 상기 두 가지의 복호화 방식에서와 같이 이미 신드롬은 계산을 통해 결정되었다고 가정한다. 그리고, 매개 다항식및 매개 다항식 행렬를 수학식 7과 같이 초기화한다.
[수학식 7]
이어서 매개 다항식의 차수를 에러 정정 가능한 개수와 비교하여, 클 경우에는 다음의 수학식 8의 과정을 수행하고 다시를 에러 정정 가능한 개수와 비교하는 반면, 작을 경우에서 다음의 수학식 9의 과정을 통해 에러 위치 다항식와 에러 크기 다항식을 계산한다.
[수학식 8]
[수학식 9]
상기 수학식 9에 의해 계산된 에러 위치 다항식에서 상기 치엔 검색을 통해 에러 위치를 결정하고, 상기 에러 위치에 따른 에러의 크기를 에러 크기 다항식을 이용하여 다음의 수학식 10에 의해 계산하여 수신 부호어에서 발생된 에러를 정정한다.
[수학식 10]
상기 PGZ 복호 방식, 브레캠프-메세이 복호 방식, 그리고 유클리디안 복호 방식 등의 에러 계산을 통해 얻은 에러의 위치와 크기를 이용하여 상기 부호 정정부(150)에서는 시간 지연부(140)가 상기 신드롬 계산부(110)와 에러 다항식 계산부(120)를 통과하면서 소요되는 시간 지연을 보상한 원 수신 부호어와, 상기 에러 위치 및 크기를 더함으로써 에러를 정정한다. 이때, 두 신호의 덧셈은 리드-솔로몬 부호화 과정에서 고려한 갈로이 필드 내에서 이루어진다.
그러나, 수신단에서는 저장 매체에 생긴 스크래치(Scratch)나 픽업 과정, 그리고 전송상의 잡음 등에 의해 상기한 에러가 발생하면서 동시에 데이터 복조에 영향을 미치는 요소에 의해 수신 부호어의 결정이 불확실한 경우에는 '0'과 '1'의 고정된 값을 결정하는 것보다는 임시로 정확하지 않은 값(이하 이레이저(erasure))으로 설정하는 연판정(soft-decision) 방식을 사용하여 수신 부호어를 복구하는 것이 실제 응용 분야에서 더욱 향상된 성능을 얻을 수 있다. 그런데, 상기 리드-솔로몬 복호화 방식들은 모두 '0'과 '1'을 잘못 설정한 에러의 경우에만 적용될 수 있는 방식들이기 때문에, 수신 부호어에 에러와 이레이저가 포함된 경우(이하에서는 에러와 이레이저를 동시에 '오류(errata)'로 함)에는 상기의 방식을 적용할 수 없는 문제점이 발생한다.
따라서, 본 발명의 목적은 이와 같은 문제를 해결하기 위해 안출된 것으로, 수신 부호어에 에러와 이레이저가 함께 혼재하는 경우, 신드롬을 이용하여 이레이저 위치 다항식과 이레이저 크기 다항식을 추가로 계산하고, 이를 신드롬과 함께 새로운 오류 위치 다항식과 오류 크기 다항식을 계산하여 수신 부호어의 오류를 정정하는 데에 이용하는 이레이저 정정 능력을 갖는 리드-솔로몬 부호 복호 장치 및 방법을 제공함에 있다.
도 1은 종래의 리드-솔로몬 부호의 복호화 장치의 블럭도 ,
도 2는 본 발명에 따른 리드-솔로몬 부호의 복호 장치 블럭도,
도 3은 2의 신드롬 계산부의 상세 회로도,
도 4는 본 발명에 따른 이레이저 위치 다항식 계산부의 상세 회로도,
도 5는 본 발명에 따른 수정 신드롬 계산부의 상세 회로도,
도 6은 본 발명에 따른 수정된 유클리디안 알고리즘을 이용한 오류 다항식 계산부의 입력 및 출력 신호 타이밍 나열도,
도 7은 도 6의 일차 과정 수행의 기능도,
도 8은 도 6의 이차 과정 수행의 기능도,
도 9는 도 6의 삼차 과정 수행의 기능도,
도 10은 도 6의 사차 과정 수행의 기능도,
〈도면의 주요부분에 대한 부호의 설명〉
200 : 신드롬 계산부201 : 제 1 발생부
202 : 제 2 발생부203 : 제 3 발생부
204 : 제 4 발생부300 : 이레이저 다항식 계산부
310 : 이레이저 위치 다항식 계산부311 : 이레이저 위치 초기화부
312 : 연산 인에이블부 320 : 이레이저 위치 계산부
330 : 수정 신드롬 계산부 331 : 신드롬 입력부
332 : 신드롬 연산부400 : 오류 다항식 계산부
500 : 오류 계산부600 : 시간 지연부
700 : 부호 정정부
이와 같은 목적을 달성하기 위한 본 발명에 따른 이레이저 정정 능력을 갖는 리드-솔로몬 부호 복호 장치 및 방법은 수신 부호어에 발생된 에러만을 고려하던 종래와 달리, 에러와 신드롬을 통해서 크기와 위치를 확인할 수 없는 이레이저가 함께 혼재된 수신 부호어에서 오류 위치 다항식과 오류 크기 다항식을 계산하고, 이 다항식을 사용하는 새로운 복호화 방식으로 수정된 유클리디안 복호 과정을 적용하여 수신 부호어의 오류를 정정하는 것을 특징으로 한다.
본 발명에 따른 다중 오류 및 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치를 도 2를 참조하여 설명하면 다음과 같다.
본 발명에 따른 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치는 수신 부호어를 입력받아 신드롬을 계산하는 신드롬 계산부(200)와, 상기 신드롬 계산부(200)로부터 신드롬을 입력받아 상기 이레이저 플레그와 함께 이레이저 위치 다항식을 계산하고 동시에 이레이저 플레그에 의한 수정된 신드롬을 계산하는 이레이저 다항식 계산부(300)와, 상기 신드롬 계산부(200)와 이레이저 다항식 계산부(300)로부터 각각 수정된 신드롬과 이레이저 위치 다항식을 입력받아 오류 위치 다항식 및 오류 크기 다항식을 계산하는 오류 다항식 계산부(400)와, 상기 오류 다항식 계산부(400)에서 오류 위치 다항식 및 오류 크기 다항식을 입력받아 오류의 위치 및 크기를 계산하는 오류 계산부(500)와, 상기 신드롬 계산부(200), 이레이저 다항식 계산부(300), 오류 다항식 계산부(400), 그리로 오류 계산부(500)를 통과하면서 소요되는 시간 지연을 보상하기 위해 상기 수신 부호어를 입력받아 일정 시간을 지연시키는 시간 지연부(600)와, 상기 오류 계산부(500)에서 출력되는 오류의 위치 및 크기 신호와 상기 시간 지연부(600)에서 시간 지연된 수신 부호어를 합하여 다중 오류 및 이레이저를 정정하는 부호 정정부(700)로 구성된다.
본 발명에 따른 다중 오류 및 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치의 상세 구성을 도 3과 도 4 및 도 5를 참조하고 리드-솔로몬(8,4)를 예를 들어 설명하면 다음과 같다.
여기서, 상기 신드롬 계산부(200)는 수신 부호어를 입력받아 신드롬의 첫 번째 비트인을 발생하는 제 1 발생부(201)와, 신드롬의 두 번째 비트인을 발생하는 제 2 발생부(202)와, 신드롬의 세 번째 비트인을 발생하는 제 3 발생부(203)와, 신드롬의 네 번째 비트인을 발생하는 제 4 발생부(204)로 구성된다.
상기 제 1 발생부(201)는 출력 신호와 수신 부호어를 합하는 덧셈기 (A11)와, 상기 덧셈기 (A11)의 출력을 신드롬의 첫 번째 비트로 출력하는 디플립플롭 (DFF11)으로 구성된다.
상기 제 2 발생부(202)는 출력 신호와 수신 부호어를 합하는 덧셈기 (A12)와, 상기 덧셈기 (A12)의 출력을 신드롬의 첫 번째 비트로 출력하는 디플립플롭 (DFF12)으로 구성된다.
상기 제 3 발생부(203)는 출력 신호와 수신 부호어를 합하는 덧셈기 (A13)와, 상기 덧셈기 (A13)의 출력을 신드롬의 첫 번째 비트로 출력하는 디플립플롭 (DFF13)으로 구성된다.
상기 제 4 발생부(204)는 출력 신호와 수신 부호어를 합하는 덧셈기 (A14)와, 상기 덧셈기 (A14)의 출력을 신드롬의 첫 번째 비트로 출력하는 디플립플롭 (DFF14)으로 구성된다.
상기 이레이저 다항식 계산부(300)는 데이터 복조에서 입력되는 이레이저 플레그를 이용하여 이레이저 위치 다항식을 계산하는 이레이저 위치 다항식 계산부(310)와, 상기 신드롬 계산부(200)에서 계산된 신드롬과 상기 이레이저 위치 다항식 계산부(310)의 이레이저 플레그를 이용하여 새로운 신드롬을 계산하는 수정 신드롬 계산부(330)로 구성된다.
상기 이레이저 위치 다항식 계산부(310)는 이레이저의 위치를 초기화시키고, 반복 수행을 통해 위치를 이동시키는 이레이저 위치 초기화부(311)와, 상기 이레이저 플레그를 이용하여 이레이저가 발생된 부분에서만 상기 위치 초기화부(311)의 출력을 출력하는 연산 인에이블부(312)와, 상기 연산 인에이블부(312)에서 이레이저 플래그와 조합된 상기 위치 초기화부(311)의 출력을 입력받아 이레이저의 위치를 계산하는 이레이저 위치 계산부(320)로 구성된다.
상기 이레이저 위치 초기화부(311)는 처음에는가 입력되고, 출력이 상기 연산 인에이블부(312)에 출력되는 디플립플롭(D-flipflop) (DFF20)과, 상기 디플립플롭(DFF20)의 출력 신호에을 곱해 디플립플롭 (DFF20)의 입력단에 출력시키는 곱셈기 (M20)로 구성된다.
상기 연산 인에이블부(320)는 상기 이레이저 플레그와 상기 이레이저 위치 초기화부(311)의 출력을 조합하여 이레이저 플레그가 하이(High) 상태일 경우에만 초기화부의 출력은 발생시키는 앤드 게이트(AND gate; G1)로 구성된다.
이레이저의 개수가 2개로 가정한 상기 이레이저 위치 계산부(320)는 상기 연산 인에이블부(312)의 출력 신호를 이레이저 위치 다항식의 1차 항의 계수를 계산하는 제 1 계산부(321)와 0차 항의 계수를 계산하는 제 2 계산부(322)로 구성된다.
상기 제 1 계산부(321)는 상기 연산 인에이블부(312)의 출력과 현재의 계수 값을 더하는 덧셈기 (A21)와, 상기 연산 인에이블부(312)의 출력과 현재의 계수 값을 곱하는 곱셈기 (M21)와, 덧셈기 (A21)의 출력을 입력받아 덧셈기 (A21)와 곱셈기 (M21)의 입력단에 출력하는 디플립플롭 (DFF21)으로 구성된다.
상기 제 2 계산부(322)는 상기 제 1 계산부의 곱셈기 (M21)의 출력과 현재의 계수 값을 합하는 덧셈기 (A22)와, 상기 연산 인에이블부(312)의 출력과 현재의 계수 값을 곱하는 곱셈기 (M22)와, 덧셈기 (A22)의 출력을 입력받아 덧셈기 (A22)와 곱셈기 (M22)의 입력단에 출력하는 디플립플롭 (DFF22)으로 구성된다.
상기 수정 신드롬 계산부(330)는 상기 신드롬 계산부(200)에서 계산된 신드롬을 입력받는 신드롬 입력부(331)와 상기 연산 인에이블부(312)의 출력 신호를 이용하여 새로운 신드롬을 계산하는 신드롬 연산부(332)로 구성된다.
상기 신드롬 입력부(331)는 상기 신드롬 계산부(200)에서 출력되는 신드롬의 비트 개수와 동일한 개수(2t)의 저장부 (DFF30 ∼DFF3(2t-1))로 구성된다.
상기 신드롬 연산부(332)는 상기 연산 인에이블부(312)의 출력 신호와 상기 신드롬 입력부(331)의 출력을 곱하는 곱셈부(M30∼M(2t-1))와 상기 곱셉부(M30∼M3(2t-1))의 출력과 상기 신드롬 입력부(331)의 이전 디플립플롭의 출력을 합하는 덧셈부(A30∼A3(2t-1))로 구성되며, 이전 디플립플롭이 없는 덧셈기 (A30)의 입력은 접지와 연결된다.
이하, 상기와 같이 구성된 본 발명에 따른 다중 오류 및 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치의 작용을 리드-솔로몬(8,4)부호화 기법을 예로 도 3과 도 4 및 도 5를 참조하여 상세하게 설명하기로 한다.
리드-솔로몬 (8,4)의 부호화 기법에서는 4개의 갈로이 필드의 원소를 이용하여 8개의 부호어를 발생시키므로 (0000)의 데이터가 입력되면, (00000000)의 부호어를 발생시킨다. 이 수신 부호어는 다음의 수학식 11과 같은 다항식으로 표현할 수 있다.
[수학식 11]
하지만, 상기 데이터는 전송시의 잡음이나 저장 매체의 스크래치 등에 의해 오류 및 이레이저를 포함한 상태로 수신된다. 이하에서는 수학식 12와 같은 수신 부호어가 발생된다고 가정한다.
[수학식 12]
상기 수학식 12에서 4번째와 7번째 데이터는 이레이저가 발생되어 이레이저 플레그가 하이 상태를 가지고, 3번째 데이터는 위치와 크기를 확인할 수 없는 오류가 발생된 형태이다.
우선, 신드롬 계산부(200)에서는 상기 수학식 3의 수신 부호어에 갈로이 필드의 전송 데이터의 개수와 동일한 원소들인을 상기 제 1 발생부(201), 제 2 발생부(202), 제 3 발생부(203), 그리고 제 4 발생부(204)에 각각 대입하여 신드롬의 각 데이터를 다음의 수학식 13과 같이 결정하여 신드롬를 계산한다.
[수학식 13]
물론 이 연산은 갈로이 필드 내에서의 연산이며, 상세한 계산은 생략한다. 만약, 수신 부호어에 오류 및 이레이저가 발생되지 않은 경우에는 신드롬의 모든 데이터는 '0'이 되고, 전송 혹은 기록 이전의 부호어와 동일하게 된다.
다음 제 2도의 이레이저 다항식 계산부(300)에서는 상기한 바와 같이 계산된 신드롬과 수신 부호의의 이레이저 플레그를 이용하여 이레이저 위치 다항식과 수정된 신드롬을 동시에 계산한다.
이레이저 위치 다항식의 계산은 도 4에 도시된 이레이저 위치 다항식 계산부(310)의 과정을 거친다. 우선, 초기화 과정에서의 초기값을 가지는 이레이저 위치 초기화부(311)의 디플립플롭 (DFF20)의 출력 신호는 수신 부호어가 입력될 때마다씩 곱한 값을 보유하게 되며, 이레이저 플레그의 하이 상태에 연산 인에이블부(312)를 통과하여 이레이저 위치 다항식을 계산한다. 따라서, 상기 이레이저 위치 초기화부(311)의 디플립플롭 (DFF20)의 출력은로 변하고, 상기 수학식 3에서 수신 부호어의항에 해당되는 이레이저 플레그는 로우 상태이기 때문에 제 1 계산부(321)의 디플립플롭 (DFF21)의 출력과 제 2 계산부(322)의 디플립플롭 (DFF22)의 출력은 0으로 초기값을 유지한다.
상기와 동일한 다음 과정에서 이레이저 위치 초기화부(311)의 디플립플롭 (DFF20)의 출력은로 변하고, 수신 부호어의항의 계수는 위치와 크기를 확인할 수 없는 오류이기 때문에 이레이저 플레그는 상기와 동일하게 로우 상태를 유지하고, 제 1 계산부(321)의 디플립플롭 (DFF21)의 출력과 제 2 계산부(322)의 디플립플롭 (DFF22)의 출력은 0으로 이전 값을 유지한다.
다음의 과정에서 이레이저 위치 초기화부(311)의 디플립플롭 (DFF20)의 출력은로 변하고, 수신 부호어의항의 계수는 이레이저 플레그를 하이 상태로 유지하는 이레이저이기 때문에, 상기 디플립플롭 (DFF20)의 출력은 연산 인에이블부(312)를 통과하여 제 1 계산부(321)의 디플립플롭 (DFF21)의 이전 출력인 0과 더해져 디플립플롭 (DFF21)의 출력 값은으로 변한다. 반면, 제 2 계산부(322)의 디플립플롭 (DFF22)의 출력은 디플립플롭 (DFF21)의 이전 출력인 0과 디플립플롭 DFF0의 출력이 곱해진 값과 이전의 출력 값을 입력받기 때문에 0의 값을 유지하게 된다.
다음 상기 수신 부호어에서항에서는 이레이저 위치 초기화부(311)의 디플립플롭 (DFF20)의 출력은로 변하고, 상기 항에 해당되는 이레이저 플레그는 모두 로우 상태이기 때문에 디플립플롭 (DFF21) 및 디플립플롭 (DFF22)의 출력은 이전의 값인과 0값을 유지한다.
다음항에서는 이레이저 위치 초기화부(311)의 디플립플롭 (DFF20)의 출력이으로 변하고, 상기 항에 해당되는 이레이저 플레그는 하이 상태이므로, 상기 제 1 계산부(321)의 디플립플롭 (DFF21)의 출력은 상기 연산 인에이블부(312)의 출력인와 이전 출력 값인의 합인을 갖게되며, 제 2 계산부(322)의 디플립플롭 (DFF22)의 출력은 이전 값 0과, 상기 제 1 계산부(321)의 디플립플롭 (DFF21)의 출력의 이전 값과 상기 연산 인에이블부(312)의 출력인의 곱의 합인를 갖게 된다. 다음의항의 경우에는 이레이저 플레그가 로우 상태이기 때문에 디플립플롭 (DFF21) 및 디플립플롭 (DFF22)의 출력은 이전의 값인값을 유지한다.
상기한 바와 같이 수신 부호어에 대해 반복 수행함으로써 상기 이레이저 위치 다항식 계산부의 출력은 다음의 수학식 14와 같은 이레이저 위치 다항식을 얻을 수 있다.
[수학식 14]
상기 수학식 14에서 계수의 변화는 상기 신드롬 계산부(200)에서 설명한 방법과 동일하게 갈로이 필드의 연산에 따른 것이다.
이하에서는 도 5를 참조하여 수정된 신드롬의 계산 과정을 상세히 설명하기로 한다.
상기 신드롬 계산부(200)에서 계산한 신드롬는 신드롬 입력부(331)에 저장되고, 이 저장된 신드롬과 상기 이레이저 위치 다항식 계산부(310)를 구성하는 연산 인에이블부(312)의 출력 신호를 이용하여 상기 신드롬 연산부(332)에서 새로운 신드롬을 계산한다.
우선, 상기 수학식 13에 표현된 신드롬는 상기 신드롬 입력부(331)의 각 저장부에 저장되어 저장부 (DFF30)에는, 저장부 (DFF31)에는, 저장부 (DFF32)에는, 저장부(DFF33)에는이 입력되고, 상기 수학식 2에 나타난 수신 부호어에서 이레이저 플레그를 상기 신드롬 연산부(332)로 입력시킨다. 이레이저 플레그가 로우 상태인 경우에는 각 저장부의 내용은 변하지 않으며, 이레이저 플레그가 하이 상태가 되는 경우에는 상기 신드롬 연산부(332)에서 연산을 수행하여 이레이저도 포함된 새롭게 수정된 신드롬를 다음의 수학식 15와 같이 계산할 수 있다.
[수학식 15]
이하에서는 상기한 바와 같이 계산한 이레이저 위치 다항식와 수정된 신드롬를 이용하여 상기 오류 다항식 계산부(400)에서 오류 위치 다항식과 오류 크기 다항식을 계산하는 수정된 유클리디안 알고리즘 과정을 설명한다.
상기 수정된 유클리디안 알고리즘은 다음의 수학식 15의 관계식을 만족하므로 상기 수학식 16의 조건을 만족하는 오류 위치 다항식과 오류 크기 다항식을 계산한다.
[수학식 16]
상기 수학식 16에서는 신드롬 다항식,는 오류 위치 다항식,는 몫의 다항식, 그리고는 오류 크기 다항식을 나타낸다.
우선, 초기화를 위해 상기 수학식 7의 몫의 다항식의 초기 다항식에는 상기 수정 신드롬 계산부(330)에서 계산한 수정된 신드롬를 대입하고, 상기 수학식 16의로 대체하고, 오류 위치 다항식의 초기 다항식는 0으로 초기화하며, 매개 다항식의 초기값로 이레이저 위치 다항식을 사용한다. 또한, 상기 수정된 유클리디안 알고리즘에 의해는 다음의 수학식 17에 의해 계산되며,는 다음의 수학식 18에 의해 연산이 수행된다.
[수학식 17]
[수학식 18]
상기 수학식 17과 수학식 18에서는 다항식과 다항식의 최고차 항의 계수를 의미하고,는 다항식의 차수에서 다항식의 차수를 뺀 값을 말하며,이 음수일 경우에는 0의 값을이 0이나 양수의 값을 가질 경우에는 1이 되는 변수를 나타내며,의 반전된 값을 갖는다. 또한, 상기 수정된 유클리디안 알고리즘에서는 오류 위치 다항식의 차수가 다항식보다 클 때까지 과정을 반복 수행한다.
이하에서는 도 6, 도 7, 도 8 및 도 9를 참조하여 상기한 오류 위치 다항식 및 오류 크기 다항식을 계산하는 과정을 상기의 리드-솔로몬 부호화 과정과 수학식 2의 오류 및 이레이저가 발생된 경우를 예를 들어 설명하기로 한다.
도 6은 상기한 바와 같이의 초기화된 값과 다항식이 입력되어 상기 과정을 수행하는 구조를 도시하고 있다. 여기서는 다항식의 차수를 의미한다. 우선, 입력 신호는 4이고,는 3이므로 상기의 과정을 수행하게 된다. 그리고,으로 설정하였기 때문에 LSB(Least Significant Bit) 부터 표시하면 (00001)로 표현할 수 있으며,는 차수를 하나 증가시키기 위해를 곱한로 표현된다. 마지막으로 오류 위치 다항식의 초기 다항식은 (00000)이며, 이레이저 위치 다항식도 한 차수 높인가 입력된다.
도 7에서는 상기 도 6의 초기화를 이용하여 첫 번째 수행과정을 도시하고 있다. 우선,의 차수는 하나가 줄어들어은 3으로 변하게 되고,의 차수는 한 번의 수행에도 이전의 값을 가지므로은 3의 값을 유지하게 된다. 또한,는 상기의 최고차항의 계수를 곱한 신호와의 최고차항의 계수와 곱한 신호를 합한 신호이고,를 시간 지연시킴으로써 다항식의 차수를 하나 낮춘 신호이다. 반면, 또 다른 입력 신호인와 곱한 신호와, 상기의 최고차항의 계수와 곱한 신호를 더함으로써을 출력하고,는 시간 지연을 통해 차수를 하나 낮추어 출력한다. 상기의 각 출력 값은 다음의 수학식 19∼22에 나타나 있다.
[수학식 19]
[수학식 20]
[수학식 21]
[수학식 22]
상기와 같이 한 번의 과정을 수행한 후에,의 차수는 3으로 줄어들고,의 차수는 3이 유지되므로 상기의 과정은 계속된다.
반면, 도 8에서는 상기 도 7의 첫 번째 과정에서 결정된 변수를 이용하여 상기 도 7의 수행 과정과 동일한 두 번째 수행 과정을 도시하고 있다. 우선,의 차수는 하나가 줄어들어 2로 변하게 되고,의 차수는 이전의 값을 가지므로 3의 값을 유지하게 된다. 두 번째 과정에서 결정되는 각 변수의 값은 다음의 수학식 23∼26에 나타난다.
[수학식 23]
[수학식 24]
[수학식 25]
[수학식 26]
이 두 번째 과정에서는보다 작은 2의 값을 가지게 되므로, 상기의 수행을 멈추게 되고 상기 수학식 23∼26의 값을 각 변수의 값으로 결정하게 된다.
도 9는 상기의 반복 수행을 멈춘 상태에서 상기 도 7에 나타난 바와 같이 초기화를 위해대신에 사용한를 원래 상태로 복구하기 위해 세 번째 경로와 다섯 번째 경로에 시간 지연을 추가한 것을 도시하고 있다.
도 10은 별도의 수행 기능은 없으며, 상기에서 결정된 각 변수의 데이터 값을 출력하는 블럭도를 도시하고 있다.
상기와 같이 반복 수행의 결과에 의해 최종적으로 출력되는 각 변수 중에서 오류 위치 다항식와 오류 크기 다항식는 다음의 수학식 27과 수학식 28에 표현되어 있다.
[수학식 27]
[수학식 28]
상기한 바와 같이 상기 오류 다항식 계산부(400)에서 결정된 오류 위치 다항식와 오류 크기 다항식는 상기 오류 계산부(500)에서 에러 및 이레이저를 정정하는 데에 사용된다. 이하에서는 상기 오류 계산부(500)의 동작을 설명하기로 한다.
우선, 상기 오류 위치 다항식는 에러 및 이레이저의 위치를 해로 갖는 다항식이기 때문에, 에러 위치로 가능한 모든 수를 대입한 다항식이 0이 되는 지를 확인하여 오류의 위치를 확인할 수 있다. 즉, 에러 위치로 가능한 수는,,,,,,,이므로, 이 값을 모두 오류 위치 다항식에 대입하면, 다음의 수학식 29와 같이 표현될 수 있다. 단, 수학식 20에서는 갈로이 필드 내에서의 연산으로 이루어지며, 상세한 계산은 생략한다.
[수학식 29]
상기 수학식 29에 따르면, 두 번째(), 다섯 번째(), 여섯 번째() 위치에서만 상기 다항식이 0이 되고 그 외의 위치에서는 0이 되지 않기 때문에 상기 수신 부호어에서 두 번째, 다섯 번째, 여섯 번째 위치에서 에러 및 이레이저가 발생되었음을 확인할 수 있다.
또한, 상기 오류 위치 다항식을 이용하여 계산한 오류의 위치만으로는 오류가 발생되었음을 확인할 수만 있기 때문에 이 오류를 정정하기 위해서는 오류의 크기를 계산하여야 한다. 오류의 크기는 상기 수신 부호어의 두 번째, 다섯 번째, 여섯 번째에 해당되는 수인,,의 수를 상기 오류 크기 다항식에 대입한 값으로 각 해당 결과는 다음의 수학식 30과 같다. 단, 상기 오류 위치를 결정하는 과정과 같이 상세한 연산을 생략한다.
[수학식 30]
상기 수학식 30의 결과는 상기 수학식 12의 수신 부호어에서 가정한 에러 및 이레이저와 정확하게 일치되며, 따라서 수신 부호어에 더함으로써 8비트 모두 0인 부호어를 복구할 수 있게 된다.
결국, 두 개의 이레이저와 하나의 에러가 발생된 수신 부호어에서 상기 오류 계산기에서 계산한 오류의 크기 및 위치에 의해 상기 부호 정정부(700)에서 정확한 부호로 정정한다. 따라서, 더욱 많은 에러와 이레이저가 혼재하며 발생된 경우에도 정확한 부호로 정정할 수 있게 된다.
이하, 본 발명에 따른 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 방법을 설명하면 다음과 같다.
본 발명에 따른 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 방법은 수신 부호어를 입력받아 신드롬을 계산하는 신드롬 계산 단계와, 상기 신드롬 계산 단계로부터 신드롬을 입력받아 상기 이레이저 플레그와 함께 이레이저 위치 다항식을 계산하고 동시에 이레이저 플레그에 의한 수정된 신드롬을 계산하는 이레이저 다항식 계산 단계와, 상기 신드롬 계산 단계와 이레이저 다항식 계산 단계로부터 각각 수정된 신드롬과 이레이저 위치 다항식을 입력받아 오류 위치 다항식 및 오류 크기 다항식을 계산하는 오류 다항식 계산 단계와, 상기 오류 다항식 계산 단계에서 오류 위치 다항식 및 오류 크기 다항식을 입력받아 오류의 위치 및 크기를 계산하는 오류 계산 단계와, 상기 신드롬 계산 단계, 이레이저 다항식 계산 단계, 오류 다항식 계산 단계, 그리로 오류 계산 단계를 통과하면서 소요되는 시간 지연을 보상하기 위해 상기 수신 부호어를 입력받아 일정 시간을 지연시키는 시간 지연 단계와, 상기 오류 계산 단계에서 출력되는 오류의 위치 및 크기 신호와 상기 시간 지연 단계에서 시간 지연된 수신 부호어를 합하여 다중 오류 및 이레이저를 정정하는 부호 정정 단계로 구성된다.
여기서, 상기 신드롬 계산 단계는 수신 부호어를 입력받아 신드롬의 첫 번째 비트를 발생하는 제 1 발생 단계와, 신드롬의 두 번째 비트를 발생하는 제 2 발생 단계와, 신드롬의 세 번째 비트를 발생하는 제 3 발생 단계와, 신드롬의 네 번째 비트를 발생하는 제 4 발생 단계로 구성된다.
상기 이레이저 다항식 계산 단계는 데이터 복조에서 입력되는 이레이저 플레그를 이용하여 이레이저 위치 다항식을 계산하는 이레이저 위치 다항식 계산 단계와, 상기 신드롬 계산 단계에서 계산된 신드롬과 상기 이레이저 위치 다항식 계산 단계의 이레이저 플레그를 이용하여 새로운 신드롬을 계산하는 수정 신드롬 계산 단계로 구성된다.
상기 이레이저 위치 다항식 계산 단계는 이레이저의 위치를 초기화시키고, 반복 수행을 통해 위치를 이동시키는 이레이저 위치 초기화 단계와, 상기 이레이저 플레그를 이용하여 이레이저가 발생된 부분에서만 상기 위치 초기화 단계의 출력을 출력하는 연산 인에이블 단계와, 상기 연산 인에이블 단계에서 이레이저 플래그와 조합된 상기 위치 초기화 단계의 출력을 입력받아 이레이저의 위치를 계산하는 이레이저 위치 계산 단계로 구성된다.
상기 수정 신드롬 계산 단계는 상기 신드롬 계산 단계에서 계산된 신드롬을 입력받는 신드롬 입력 단계와 상기 연산 인에이블 단계의 출력 신호를 이용하여 새로운 신드롬을 계산하는 신드롬 연산 단계로 구성된다.
이하, 상기와 같이 구성된 본 발명에 따른 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 방법의 절차를 상세히 설명하면 다음과 같다.
본 발명에 의한 수정된 유클리디안 알고리즘을 이용하는 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 방법에 있어서, 신드롬을 통해서 정정이 가능한 에러와 신드롬을 통해서 크기와 위치를 확인할 수 없는 이레이저가 함께 혼재된 수신 부호어에서 오류 위치 다항식과 오류 크기 다항식을 계산하고, 이 다항식을 사용하는 새로운 복호화 방식으로 수정된 유클리디안 복호 과정을 적용하여 수신 부호어의 오류를 정정한다.
우선, 상기 신드롬 계산 단계의 제 1 발생 단계에서는 수신 부호어를 입력받아 신드롬의 첫 번째 비트를 발생하고, 제 2 발생 단계에서는 신드롬의 두 번째 비트를 발생하고, 제 3 발생 단계에서는 신드롬의 세 번째 비트를 발생하고, 제 4 발생 단계에서는 신드롬의 네 번째 비트를 발생한다.
상기 이레이저 위치 다항식 계산 단계에서는 데이터 복조에서 입력되는 이레이저 플레그를 이용하여 이레이저 위치 다항식을 계산하고, 이와 동시에 상기 수정 신드롬 계산 단계에서는 상기 신드롬 계산 단계에서 계산된 신드롬과 상기 이레이저 위치 다항식 계산 단계의 이레이저 플레그를 이용하여 새로운 수정된 신드롬을 계산한다.
이어서, 오류 다항식 계산 단계에서는 수정된 유클리디안 알고리즘을 적용하고, 상기와 같이 계산된 이레이저 위치 다항식과 수정된 신드롬을 이용하여 상기 수학식 16∼28에서 기술한 과정과 동일한 방식으로 에러와 이레이저가 혼재된 오류가 발생된 수신 부호어의 오류 위치 다항식과 오류 크기 다항식을 계산한다.
그리고, 오류 계산 단계에서는 상기 수학식 29를 통해 상기 오류 다항식 계산 단계에서 계산한 오류 위치 다항식을 이용하여 오류의 위치를 결정하고, 상기 수학식 30의 과정을 통해 상기 오류 다항식 계산 단계에서 계산한 오류 크기 다항식을 이용하여 오류의 크기를 계산한다.
이후, 부호 정정 단계에서는 수신 부호어에서 상기한 바와 같이 계산한 오류의 위치에 오류의 크기를 갈로이 필드내의 연산으로 더함으로써 잡음이나 스크래치 등에 의해 발생된 에러 및 이레이저를 정정한다.
상기한 바와 같이, 이레이저가 포함된 수신 부호어에서 이레이저를 정정하기 위해 이레이저 위치 방정식을 계산하고, 이를 이용하여 이레이저와 에러가 혼재된 오류 위치 다항식과 오류 크기 다항식을 새롭게 계산하여, 오류의 위치와 크기를 결정하여 수신 부호어를 정정한다.
이상에서 설명한 본 발명에 의한 이레이저 정정 능력을 갖는 리드-솔로몬 부호 복호 장치 및 방법에 따르면, 스크래치나 잡음 등에 의해 수신 부호어에 포함된 에러 및 이레이저를 동시에 정정할 수 있음에 따라, 종래 CDP 등의 응용 분야에서는 불가능한 이레이저 정정을 가능하게 함과 동시에, 고밀도를 요구하는 차세대 기록 매체의 응용 분야인 DVDP(Digital Video Disk Player), DVDROM(Digital Video Disk Read Only Memory)에 적용될 리드-솔로몬 부호를 위한 복호화의 성능을 향상시킴으로써 더욱 신뢰성 있는 데이터 저장 및 전송을 확보할 수 있고, 이를 통해 사용자로 하여금 제품에 대한 신뢰도와 만족도를 증가시킬 수 있다.

Claims (21)

  1. 수신 부호어에 에러와 이레이저가 함께 혼재된 경우의 복호장치에 있어서,
    상기 수신 부호어에 혼재된 상기 에러와 상기 이레이저를 포함하는 오류의 위치다항식과 오류의 크기다항식을 계산하는 오류 다항식 계산수단; 및
    상기 오류 다항식 계산수단으로부터 계산된 상기 오류의 위치다항식과 상기 오류의 크기 다항식으로부터 상기 에러와 상기 이레이저를 포함하는 오류의 위치와 오류의 크기를 계산하는 오류계산수단을 포함하는 것을 특징으로 하는 이레이저 정정능력을 갖는 복호장치.
  2. 수신 부호어를 입력받아 신드롬을 계산하는 신드롬 계산부;
    상기 신드롬 계산부로부터 신드롬을 입력받아 이레이저 플레그와 함께 이레이저 위치 다항식을 계산함과 동시에 이레이저 플레그에 의한 수정된 신드롬을 계산하는 이레이저 다항식 계산부;
    상기 신드롬 계산부와 상기 이레이저 다항식 계산부로부터 각각 수정된 신드롬과 이레이저 위치 다항식을 입력받아 오류 위치 다항식 및 오류 크기 다항식을 계산하는 오류 다항식 계산부;
    상기 오류 다항식 계산부에서 오류 위치 다항식 및 오류 크기 다항식을 입력받아 오류의 위치 및 크기를 계산하는 오류 계산부;
    상기 신드롬 계산부, 상기 이레이저 다항식 계산부, 상기 오류 다항식 계산부, 및 상기 오류 계산부를 통과하면서 소요되는 시간 지연을 보상하기 위해 상기 수신 부호어를 입력받아 일정 시간을 지연시키는 시간 지연부; 및
    상기 오류 계산부에서 출력되는 오류의 위치 및 크기 신호와 상기 시간 지연부에서 시간 지연된 수신 부호어를 합하여 다중 오류 및 이레이저를 정정하는 부호 정정부를 포함하는 것을 특징으로 하는 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치.
  3. 제 2 항에 있어서, 상기 신드롬 계산부는
    수신 부호어를 입력받아 신드롬의 첫 번째 비트를 발생하는 제 1 발생부;
    신드롬의 두 번째 비트를 발생하는 제 2 발생부;
    신드롬의 세 번째 비트를 발생하는 제 3 발생부; 및
    신드롬의 네 번째 비트를 발생하는 제 4 발생부를 포함하는 것을 특징으로 하는 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치.
  4. 제 3 항에 있어서, 상기 제1, 제2, 제3 및 제4 발생부는
    출력 신호와 수신 부호어를 합하는 덧셈기; 및
    상기 덧셈기의 출력을 신드롬의 첫 번째 비트로 출력하는 디플립플롭을 포함하는 것을 특징으로 하는 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치.
  5. 제 2 항에 있어서, 상기 이레이저 다항식 계산부는
    데이터 복조에서 입력되는 이레이저 플레그를 이용하여 이레이저 위치 다항식을 계산하는 이레이저 위치 다항식 계산부; 및
    상기 신드롬 계산부에서 계산된 신드롬과 상기 이레이저 위치 다항식 계산부의 이레이저 플레그를 이용하여 새로운 신드롬을 계산하는 수정 신드롬 계산부를 포함하는 것을 특징으로 하는 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치.
  6. 제 5 항에 있어서, 상기 이레이저 위치 다항식 계산부는
    이레이저의 위치를 초기화시키고, 반복 수행을 통해 위치를 이동시키는 이레이저 위치 초기화부;
    상기 이레이저 플레그를 이용하여 이레이저가 발생된 부분에서만 상기 위치 초기화부의 출력을 출력시키는 연산 인에이블부;
    상기 연산 인에이블부에서 이레이저 플래그와 조합된 상기 위치 초기화부의 출력을 입력받아 이레이저의 위치를 계산하는 이레이저 위치 계산부를 포함하는 것을 특징으로 하는 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치.
  7. 제 6 항에 있어서, 상기 이레이저 위치 초기화부는 처음에가 입력되고, 출력이 상기 연산 인에이블부에 출력되는 디플립플롭과, 상기 디플립플롭의 출력 신호에을 곱해 디플립플롭의 입력단에 출력시키는 곱셈기를 포함하는 것을 특징으로 하는 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치.
  8. 제 6 항에 있어서, 상기 연산 인에이블부는 상기 이레이저 플레그와 상기 이레이저 위치 초기화부의 출력을 조합하여 이레이저 플레그가 하이(High) 상태일 경우에만 초기화부의 출력을 발생시키는 앤드 게이트를 포함하는 것을 특징으로 하는 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치.
  9. 제 6 항에 있어서, 상기 이레이저 위치 계산부는
    상기 연산 인에이블부의 출력 신호를 이레이저 위치 다항식의 1차 항의 계수를 계산하는 제 1 계산부; 및
    0차 항의 계수를 계산하는 제 2 계산부를 포함하는 것을 특징으로 하는 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치.
  10. 제 9 항에 있어서, 상기 제 1 계산부는
    상기 연산 인에이블부의 출력과 현재의 계수 값을 더하는 덧셈기와;
    상기 연산 인에이블부의 출력 값과 현재 저장된 계수 값을 곱하는 곱셈기; 및
    상기 덧셈기의 출력을 입력받아 덧셈기와 곱셈기의 입력단으로 출력을 발생시키는 디플립플롭을 포함하는 것을 특징으로 하는 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치.
  11. 제 9 항에 있어서, 상기 제 2 계산부는
    상기 제 1 계산부의 곱셈기의 출력과 현재의 계수 값을 합하는 덧셈기와;
    상기 연산 인에이블부의 출력과 현재의 계수 값을 곱하는 곱셈기; 및
    상기 덧셈기의 출력을 입력받아 덧셈기와 상기 곱셈기의 입력단으로 출력을 발생시키는 디플립플롭으로 구성되는 것을 특징으로 하는 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치.
  12. 제 5 항에 있어서, 상기 수정 신드롬 계산부는
    상기 신드롬 계산부에서 계산된 신드롬을 입력받는 신드롬 입력부; 및
    상기 연산 인에이블부의 출력 신호를 이용하여 새로운 신드롬을 계산하는 신드롬 연산부를 포함하는 것을 특징으로 하는 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치.
  13. 제 12 항에 있어서, 상기 신드롬 입력부는 상기 신드롬 계산부에서 출력되는 신드롬의 비트 개수와 동일한 개수의 저장부를 포함하는 것을 특징으로 하는 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치.
  14. 제 12 항에 있어서, 상기 신드롬 연산부는
    상기 연산 인에이블부의 출력 신호와 상기 신드롬 입력부의 출력을 곱하는 상기 수신 부호어의 길이와 동일한 개수의 곱셈부; 및
    상기 곱셈기의 출력과 상기 신드롬 입력부의 이전 디플립플롭의 출력을 합하는 상기 수신 부호어의 길이와 동일한 개수의 덧셈부를 포함하는 것을 특징으로 하는 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치.
  15. 제 2 항에 있어서, 상기 오류 다항식 계산부는
    잘못 판정된 에러와 판정을 유보한 이레이저가 혼재된 오류의 오류 위치 다항식;
    상기 오류 크기 다항식을 계산하기 위해 수정된 유클리디안 알고리즘을 이용하는 것을 특징으로 하는 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치.
  16. 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 방법에 있어서, 수신 부호어를 입력받아 신드롬을 계산하는 신드롬 계산 단계;
    상기 신드롬 계산 단계로부터 신드롬을 입력받아 상기 이레이저 플레그와 함께 이레이저 위치 다항식을 계산하고 동시에 이레이저 플레그에 의한 수정된 신드롬을 계산하는 이레이저 다항식 계산 단계;
    상기 신드롬 계산 단계와 상기 이레이저 다항식 계산 단계로부터 각각 수정된 신드롬과 이레이저 위치 다항식을 입력받아 오류 위치 다항식 및 오류 크기 다항식을 계산하는 오류 다항식 계산 단계;
    상기 오류 다항식 계산 단계에서 오류 위치 다항식 및 오류 크기 다항식을 입력받아 오류의 위치 및 크기를 계산하는 오류 계산 단계;
    상기 신드롬 계산 단계, 이레이저 다항식 계산 단계, 오류 다항식 계산 단계, 그리로 오류 계산 단계를 통과하면서 소요되는 시간 지연을 보상하기 위해 상기 수신 부호어를 입력받아 일정 시간을 지연시키는 시간 지연 단계와, 상기 오류 계산 단계에서 출력되는 오류의 위치 및 크기 신호와 상기 시간 지연 단계에서 시간 지연된 수신 부호어를 합하여 다중 오류 및 이레이저를 정정하는 부호 정정 단계로 구성되는 것을 특징으로 하는 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 방법.
  17. 제 16 항에 있어서, 상기 신드롬 계산 단계는 수신 부호어를 입력받아 신드롬의 첫 번째 비트를 발생하는 제 1 발생 단계와, 신드롬의 두 번째 비트를 발생하는 제 2 발생 단계와, 신드롬의 세 번째 비트를 발생하는 제 3 발생 단계와, 신드롬의 네 번째 비트를 발생하는 제 4 발생 단계로 구성되는 것을 특징으로 하는 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 방법.
  18. 제 16 항에 있어서, 이레이저 다항식 계산 단계는 데이터 복조에서 입력되는 이레이저 플레그를 이용하여 이레이저 위치 다항식을 계산하는 이레이저 위치 다항식 계산 단계와, 상기 신드롬 계산 단계에서 계산된 신드롬과 상기 이레이저 위치 다항식 계산 단계의 이레이저 플레그를 이용하여 새로운 신드롬을 계산하는 수정 신드롬 계산 단계로 구성되는 것을 특징으로 하는 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 방법.
  19. 제 18 항에 있어서, 상기 이레이저 위치 다항식 계산 단계는 이레이저의 위치를 초기화시키고, 반복 수행을 통해 위치를 이동시키는 이레이저 위치 초기화 단계와, 상기 이레이저 플레그를 이용하여 이레이저가 발생된 부분에서만 상기 위치 초기화 단계의 출력을 출력하는 연산 인에이블 단계와, 상기 연산 인에이블 단계에서 이레이저 플래그와 조합된 상기 위치 초기화 단계의 출력을 입력받아 이레이저의 위치를 계산하는 이레이저 위치 계산 단계로 구성되는 것을 특징으로 하는 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 방법.
  20. 제 18 항에 있어서, 상기 수정 신드롬 계산 단계는 상기 신드롬 계산 단계에서 계산된 신드롬을 입력받는 신드롬 입력 단계와 상기 연산 인에이블 단계의 출력 신호를 이용하여 새로운 신드롬을 계산하는 신드롬 연산 단계로 구성되는 것을 특징으로 하는 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 방법.
  21. 수신 부호어에 에러와 이레이저가 함께 혼재된 경우의 복호방법에 있어서,
    상기 수신 부호어에 혼재된 상기 에러와 상기 이레이저를 포함하는 오류의 위치다항식과 오류의 크기다항식을 계산하는 오류 다항식 계산단계; 및
    상기 오류 다항식 계산단계에서 계산된 상기 오류의 위치다항식과 상기 오류의 크기 다항식으로부터 상기 에러와 상기 이레이저를 포함하는 오류의 위치와 오류의 크기를 계산하는 오류계산단계를 포함하는 것을 특징으로 하는 이레이저 정정능력을 갖는 복호방법.
KR1019960046563A 1996-10-17 1996-10-17 이레이져 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치 KR100225032B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960046563A KR100225032B1 (ko) 1996-10-17 1996-10-17 이레이져 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960046563A KR100225032B1 (ko) 1996-10-17 1996-10-17 이레이져 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치

Publications (2)

Publication Number Publication Date
KR19980027713A true KR19980027713A (ko) 1998-07-15
KR100225032B1 KR100225032B1 (ko) 1999-10-15

Family

ID=19477864

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960046563A KR100225032B1 (ko) 1996-10-17 1996-10-17 이레이져 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치

Country Status (1)

Country Link
KR (1) KR100225032B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990018767A (ko) * 1997-08-28 1999-03-15 윤종용 디브이디-램 디스크의 고속 초기화 방법
KR100505210B1 (ko) * 2002-03-12 2005-08-04 엘지전자 주식회사 에러 정정장치 및 방법
KR100510503B1 (ko) * 2002-12-10 2005-08-26 삼성전자주식회사 하드웨어 효율을 극대화한 새로운 파이프라인 리드 솔로몬디코딩 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100532373B1 (ko) * 1997-08-25 2006-03-24 삼성전자주식회사 디지털 신호의 재생에 있어 에러정정방법
KR101149110B1 (ko) 2006-02-22 2012-05-25 삼성전자주식회사 디지털 통신 시스템의 rs 복호기
KR101466270B1 (ko) 2008-09-19 2014-11-28 삼성전자주식회사 비휘발성 메모리 시스템 및 그것의 데이터 처리 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990018767A (ko) * 1997-08-28 1999-03-15 윤종용 디브이디-램 디스크의 고속 초기화 방법
KR100505210B1 (ko) * 2002-03-12 2005-08-04 엘지전자 주식회사 에러 정정장치 및 방법
KR100510503B1 (ko) * 2002-12-10 2005-08-26 삼성전자주식회사 하드웨어 효율을 극대화한 새로운 파이프라인 리드 솔로몬디코딩 방법

Also Published As

Publication number Publication date
KR100225032B1 (ko) 1999-10-15

Similar Documents

Publication Publication Date Title
US7406651B2 (en) Forward Chien search type Reed-Solomon decoder circuit
KR100683624B1 (ko) 가속화된 리드-솔로몬 오류정정
US6272659B1 (en) Error correction code processor employing adjustable correction power for miscorrection minimization
US4525838A (en) Multibyte error correcting system involving a two-level code structure
US7237183B2 (en) Parallel decoding of a BCH encoded signal
US7788570B1 (en) Optimized Reed-Solomon decoder
JP3288883B2 (ja) 誤り訂正符号化装置及び誤り訂正復号装置及び誤り訂正符号付きデータ伝送システム及び誤り訂正符号の復号方法
US7103829B2 (en) Coding for informed decoders
US6543026B1 (en) Forward error correction apparatus and methods
US5912905A (en) Error-correcting encoder, error-correcting decoder and data transmitting system with error-correcting codes
KR19980702551A (ko) 개량된 3, 4개 에러 보정 시스템
JP2004032737A (ja) リード−ソロモン復号器
US5889792A (en) Method and apparatus for generating syndromes associated with a block of data that employs re-encoding the block of data
US6823487B1 (en) Method and apparatus for enhancing correction power of reverse order error correction codes
US5974583A (en) Error correcting method and device
KR100225032B1 (ko) 이레이져 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치
EP0660535B1 (en) Apparatus for uniformly correcting erasure and error of received word by using a common polynomial
EP1102406A2 (en) Apparatus and method for decoding digital data
US6651214B1 (en) Bi-directional decodable Reed-Solomon codes
Truong et al. A new decoding algorithm for correcting both erasures and errors of Reed-Solomon codes
US6915478B2 (en) Method and apparatus for computing Reed-Solomon error magnitudes
US8381082B1 (en) Power-saving area-efficient hybrid BCH coding system
JP2005506794A (ja) リード・ソロモン符号を復号するための方法及び復号器
JP3734486B2 (ja) 誤り訂正装置および誤り訂正方法
US8181096B2 (en) Configurable Reed-Solomon decoder based on modified Forney syndromes

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

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20130627

Year of fee payment: 15

LAPS Lapse due to unpaid annual fee