KR100532373B1 - 디지털 신호의 재생에 있어 에러정정방법 - Google Patents

디지털 신호의 재생에 있어 에러정정방법

Info

Publication number
KR100532373B1
KR100532373B1 KR1019970040757A KR19970040757A KR100532373B1 KR 100532373 B1 KR100532373 B1 KR 100532373B1 KR 1019970040757 A KR1019970040757 A KR 1019970040757A KR 19970040757 A KR19970040757 A KR 19970040757A KR 100532373 B1 KR100532373 B1 KR 100532373B1
Authority
KR
South Korea
Prior art keywords
error
equation
plug
determination
correction
Prior art date
Application number
KR1019970040757A
Other languages
English (en)
Other versions
KR19990017736A (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 KR1019970040757A priority Critical patent/KR100532373B1/ko
Publication of KR19990017736A publication Critical patent/KR19990017736A/ko
Application granted granted Critical
Publication of KR100532373B1 publication Critical patent/KR100532373B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/14Digital recording or reproducing using self-clocking codes
    • G11B20/1403Digital recording or reproducing using self-clocking codes characterised by the use of two levels
    • G11B20/1423Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code
    • G11B20/1426Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code conversion to or from block codes or representations thereof
    • G11B2020/14618 to 14 modulation, e.g. the EFM code used on CDs or mini-discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1816Testing
    • G11B2020/1823Testing wherein a flag is set when errors are detected or qualified
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • G11B2020/1836Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information using a Reed Solomon [RS] code

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)

Abstract

리드-솔로몬(Reed-Solomon) 부호를 사용하여 데이터의 에러를 정정하기 위한 에러정정방법을 개시한다.
이는 수신신호로부터 신드롬을 계산하는 신드롬 계산단계; 상기 신드롬 계산단계에서 계산된 신드롬에 의해 에러개수 판별식을 이용하여 에러개수를 판별하는 에러개수 판별단계; 상기 에러개수 판별단계에서 판별된 에러의 개수가 '2' 로 판단되면 상기 C1 디코딩 과정에서 생성된 C1 플러그의 개수를 판단하는 C1 플러그 개수 제3판단단계; 상기 C1 플러그 개수 제3판단단계에서 C1 플러그 개수가 '4' 이하이면 현재의 에러 위치가 상기 C1 디코딩 과정의 플러그 설정단계에서 설정된 에러의 위치와 일치하는가를 판단하는 플러그 일치 여부 판단단계; 상기 에러개수 판별단계 및/또는 상기 플러그 일치 여부 판단단계를 통하여 상기 에러개수 판별단계에서 판별된 에러개수가 '1' 개이면 '1' 에러 정정을 수행하고, 상기 플러그 일치 여부 판단단계의 판단이 현재 검출된 에러의 위치와 C1 디코딩 과정에서 설정된 에러의 위치가 일치하면 '2' 에러 정정을 수행하는 에러정정단계; 상기 플러그 일치 여부 판단단계의 판단이 현재 검출된 에러의 위치와 C1 디코딩 과정에서 설정된 에러의 위치가 일치하지 않으면 상기 C1 디코딩 과정에서 생성된 C1 플러그의 개수를 판단하는 C1 플러그 개수 제4판단단계; 상기 에러개수 판별단계의 판단이 현재 검출된 에러의 개수가 ' 2 '를 초과하거나, 상기 C1 플러그 개수 제4판단단계의 판단이 ' 2 ' 이하이면 이레이저 정정여부를 판단하는 이레이저 정정여부 판단단계; 상기 이레이저 정정여부 판단단계의 판단이 'ON'이면 플러그의 개수를 판단하는 플러그 개수 제1판단단계; 상기 플러그 개수 제1판단단계에서 판단된 플러그의 개수가 '3' 또는 '4' 이면 '3' / '4' 이레이저 정정을 수행하는 '3' '4' 이레이저 정정단계; 상기 플러그 개수 제1판단단계에서 판단된 플러그의 개수가 '2' 이면 에레타 정정을 수행하는 에레타 정정단계; 상기 '3' / '4' 이레이저 정정단계에서 이레이저 정정이 수행되거나 상기 에레타 정정단계가 수행되고 난 후, 이레이저 정정 및 에레타 정정의 올바른 수행 여부를 확인하기 위하여 검산을 수행하는 검산단계; 상기 이레이저 정정여부 판단단계의 판단이 'OFF'이면 플러그의 개수를 판단하는 플러그 개수 제2판단단계; 상기 신드롬 계산단계 내지 상기 플러그 개수 제2판단단계가 수행되고 난 후 플러그를 설정하는 플러그 설정단계를 갖는 C2 디코딩 과정을 포함한다.

Description

디지털 신호의 재생에 있어 에러정정방법
본 발명은 디지털 신호의 재생에 있어서 데이터 에러정정에 관한 것으로서, 특히 리드-솔로몬(Reed-Solomon) 부호를 사용하여 데이터의 에러를 정정하기 위한 에러정정방법에 관한 것이다.
일반적으로, 디지털 신호의 전송 혹은 기록하는 경우에 있어서 전송 시스템 상의 노이즈로 인하여 데이터에 에러가 발생될 수 있다. 가능하면 이러한 에러의 발생을 방지하기 위해서 데이터를 전송하거나 기록할 때 체크워드(Check Word)를 부가하여 에러 데이터를 정정한다.
컴팩트 디스크 플레이어에서 에러 정정을 위해 이용되는 부호는 통상적으로 논바이너리(Non-binary) BCH 부호의 한 부류인 리드-솔로몬 부호이다. 리드-솔로몬 부호의 능력은 산발오류(Random Error) 뿐만 아니라 연집오류(Burst Error)까지도 정정이 가능한 것이다. 그런데 이러한 리드-솔로몬 부호를 이용의 단점은 리드-솔로몬 부호는 유한체 GF(2m)의 원소를 심벌(Symbon)로 하는 블록(block) 계열 부호이므로 바이너리(binary) BCH 부호와는 달리 에러값(error value)를 구해야 하는 등 부호화 과정이 매우 복잡하다. 특히, 에러정정능력, 유한체의 크기, 및 유한체 연산의 종류와 횟수 등에 의해 시스템의 복잡도가 크게 좌우되며, 복호화하는데 소요되는 시간도 시스템의 복잡도에 비례하여 길어진다.
도 1a는 종래 기술의 에러정정시 플러그(flag) 처리 방법에 따른 C1 디코딩 알고리즘을 보이는 도면이다.
신드롬(Syndrome)을 계산한다.(100단계)
상기 100단계에서 계산된 신드롬에 대해서 에러의 개수가 "0" 개 인가를 판단한다.(102단계)
상기 102단계의 판단이 에러의 개수가 "0" 이면, 플러그(flag)를 "0" 로 하고 종료한다.(104단계)
상기 102단계의 판단이 에러의 개수가 "0" 이 아니면, 에러의 개수가 "1" 인가를 판단한다.(106단계)
상기 106단계의 판단이 에러의 개수가 "1" 이면, 1 에러정정을 수행한다.(108단계)
상기 108단계에서 1 에러정정을 수행하고 나면, 플러그(flag)를 "0" 로 하고 종료한다.(104단계)
상기 106단계의 판단이 에러의 개수가 "1" 이 아니면, 에러의 개수가 "2" 인가를 판단한다.(110단계)
상기 110단계의 판단이 에러의 개수가 "2" 이면, 2 에러정정을 수행한다.(112단계)
상기 110단계의 판단이 에러의 개수가 "2" 가 아니거나, 상기 112단계에서 2에러정정을 수행하고 난 후에 플러그(flag)를 "1" 로 하고 종료한다.(114단계)
도 1b는 종래 기술의 에러정정시 플러그(flag) 처리 방법에 따른 C2 디코딩 알고리즘을 보이는 도면이다.
신드롬(Syndrome)을 계산한다.(150단계)
상기 150단계에서 계산된 신드롬에 대해서 에러의 개수가 "0" 개 인가를 판단한다.(152단계)
상기 152단계의 판단이 에러의 개수가 "0" 이면, 플러그(flag)를 "0" 로 하고 종료한다.(154단계)
상기 152단계의 판단이 에러의 개수가 "0" 이 아니면, 에러의 개수가 "1" 인가를 판단한다.(156단계)
상기 156단계의 판단이 에러의 개수가 "1" 이면, 1 에러정정을 수행한다.(158단계)
상기 158단계에서 1 에러정정을 수행하고 나면, 플러그(flag)를 "0" 로 하고 종료한다.(154단계)
상기 156단계의 판단이 에러의 개수가 "1" 이 아니면, 에러의 개수가 "2" 인가를 판단한다.(160단계)
상기 160단계의 판단이 에러의 개수가 "2" 이면, 플러그를 체크한다.(162단계)
상기 162단계의 체크된 결과가 "good" 이면, 2 에러 정정을 수행한다.(164단계)
상기 164단계에서 2 에러 정정을 수행하고 난 후, 플러그(flag)를 "0" 로 하고 종료한다.(154단계)
상기 162단계의 체크된 결과가 "bad" 이면, 플러그의 개수가 "2" 보다 큰가를 판단한다.(166단계)
상기 166단계의 판단이 플러그의 개수가 "2" 보다 크면 플러그를 복사하고 종료한다.(168단계)
상기 166단계의 판단이 플러그의 개수가 "2" 보다 크지 않으면, 플러그를 "1"로 하고 종료한다.(170단계)
컴팩트 디스크 플레이어 기기에 사용되는 리드-솔로몬(Reed-Solomon) 에러 정정 장치에서는 C1 코드에서 2 에러까지 정정하고, C2 코드에서는 4 이레이저(erasure)까지 정정이 가능하나 실제로는 2 에러까지만 정정하였다. 2 에러만 정정할 경우 버스트 에러(burst error)가 부호어 개수로 8개 이상이 발생하면 에러 정정을 할 수 없으나 4 이레이저 정정을 할 경우 16개의 부호어까지 연속적으로 에러가 발생하여도 에러 정정을 할 수 있는 장점이 있다. 그러나, 최대의 에러 정정을 행할 경우 8/14변조 데이터가 부정확하거나 플레이어 동작 상태가 불안정하면 오정정할 수 있는 확률이 매우 커진다.
따라서 본 발명의 목적은 종래 기술의 문제점을 개선하기 위하여 안출된 것으로서 에러정정 능력을 최대한 발휘하면서, 보다 간단한 구조를 가지며 신속하게 복호를 수행하는 복호 알고리즘을 갖는 에러정정방법을 제공함에 있다.
상술한 바와 같은 목적을 달성하기 위한 방법은 디지털 신호의 재생에 있어 리드-솔로몬(Reed-Solomon) 부호를 사용하여 데이터의 제거를 정정하기 위한 에러정정방법에 있어서, 수신신호로부터 신드롬을 계산하는 단계(400단계); 상기 신드롬 계산단계(400단계)에서 계산된 신드롬에 의해 에러갯수 판별식을 이용하여 에러갯수를 판별하는 단계(402단계); 상기 에러개수 판별단계(402단계)에서 판별된 에러의 개수에 따라 에러정정을 수행하는 단계(404단계); 상기 에러개수 판별단계(402단계)에서 판별된 에러의 개수가 '0' 이거나 상기 에러정정단계(404단계)를 수행한 후에 시스템의 상태검색을 수행하는 상태검색단계(406단계); 및 상기 상태검색단계(406단계)에서 검색된 상태의 양호 여부 및 상기 에러 개수 판별단계(402단계)에서 판별된 에러의 개수가 '3' 이상임을 판단하여 C1 플러그를 "0" 또는 "1" 로 설정하는 C1 플러그 설정단계(408단계)를 갖는 C1 디코딩 과정 그리고, 수신신호로부터 신드롬을 계산하는 신드롬 계산단계(500단계); 상기 신드롬 계산단계(500단계)에서 계산된 신드롬에 의해 에러개수 판별식을 이용하여 에러개수를 판별하는 에러개수 판별단계(502단계); 상기 에러개수 판별단계(502단계)에서 판별된 에러의 개수가 '2' 로 판단되면 상기 C1 디코딩 과정에서 생성된 C1 플러그의 개수를 판단하는 C1 플러그 개수 제3판단단계(503단계); 상기 C1 플러그 개수 제3판단단계(503단계)에서 C1 플러그 개수가 '4' 이하이면 현재의 에러 위치가 상기 C1 디코딩 과정의 플러그 설정단계(408단계)에서 설정된 에러의 위치와 일치하는가를 판단하는 플러그 일치 여부 판단단계(504단계); 상기 에러개수 판별단계(502단계) 및/또는 상기 플러그 일치 여부 판단단계(504단계)를 통하여 상기 에러개수 판별단계(502단계)에서 판별된 에러개수가 '1' 개이면 '1' 에러 정정을 수행하고, 상기 플러그 일치 여부 판단단계(504단계)의 판단이 현재 검출된 에러의 위치와 C1 디코딩과정에서 설정된 에러의 위치가 일치하면 '2' 에러 정정을 수행하는 에러정정단계(506단계); 상기 플러그 일치 여부 판단단계(504단계)의 판단이 현재 검출된 에러의 위치와 C1 디코딩 과정에서 설정된 에러의 위치가 일치하지 않으면 상기 C1 디코딩 과정에서 생성된 C1 플러그의 개수를 판단하는 C1 플러그 개수 제4판단단계(507단계); 상기 에러개수 판별단계(502단계)의 판단이 현재 검출된 에러의 개수가 ' 2 '를 초과하거나, 상기 C1 플러그 개수 제4판단단계(507단계)의 판단이 ' 2 ' 이하이면 이레이저 정정여부를 판단하는 이레이저 정정여부 판단단계(508단계); 상기 이레이저 정정여부 판단단계(508단계)의 판단이 'ON'이면 플러그의 개수를 판단하는 플러그 개수 제1판단단계(510단계); 상기 플러그 개수 제1판단단계(510단계)에서 판단된 플러그의 개수가 '3' 또는 '4' 이면 '3' / '4' 이레이저 정정을 수행하는 '3' / '4' 이레이저 정정단계(512단계); 상기 플러그 개수 제1판단단계(510단계)에서 판단된 플러그의 개수가 '2' 이면 에레타 정정을 수행하는 에레타 정정단계(513단계); 상기 '3' / '4' 이레이저 정정단계(512단계)에서 이레이저 정정이 수행되거나 상기 에레타 정정단계(513단계)가 수행되고 난 후, 이레이저 정정 및 에레타 정정의 올바른 수행 여부를 확인하기 위하여 검산을 수행하는 검산단계(514단계); 상기 이레이저 정정여부 판단단계(508단계)의 판단이 'OFF'이면 플러그의 개수를 판단하는 플러그 개수 제2판단단계(516단계); 상기 신드롬 계산단계(500단계) 내지 상기 플러그 개수 제2판단단계(516단계)가 수행되고 난 후 플러그를 설정하는 플러그 설정단계(518단계)를 갖는 C2 디코딩 과정을 포함한다.
이하, 본 발명의 바람직한 일 실시예를 상세히 설명한다.
일반적으로 리드-솔로몬 부호의 복호과정은 다음과 같은 5단계로 집약된다.
1) 수신부호로부터 신드롬(syndrome)을 계산한다.
2) 에러위치 다항식(error location polynomial)을 계산한다.
3) 에러위치번호(error location number)를 계산한다.
4) 에러값(error value)을 계산한다.
5) 에러정정(error correction)을 수행한다.
1. 신드롬 계산
전송부호 c(x)를 전송하였을 때 전송도중 에러 e(x)가 발생하였다면, 수신부호 r(x)는 수학식 1과 같이 표현할 수 있다.
Figure pat00001
a를 유한체(finite field) GF(2m)상의 원시원(premitive element)이라 하면 ai (0≤i≤2t-1)은 생성다항식 g(x)의 근이 되고, 이근을 상기 수학식 1에 대입하면 다음의 수학식 2와 수학식 3과 같이 표현할 수 있다.
Figure pat00002
Figure pat00003
그리고 i번째 신드롬요소(syndrome element)는 다음의 수학식 4와 같이 표현할 수 있다.
Figure pat00004
도 2는 본 발명에 적용되는 일반적인 리드-솔로몬 부호의 신드롬 발생장치의 블록도이다.
도 2의 구성을 보면, 수신신호(200) r(x)와 곱셈기(202)에서 출력되는 신호가 가산기(204)로 입력되고, 가산기(204)에서 출력된 신호는 플립플롭(flip-flop)(206)으로 입력되고, 플립플롭(206)에서 출력된 신호는 곱셈기(202)로 입력되고, 곱셈기(202)에서는 플립플롭(206)에서 출력된 신호와 생성다항식의 근(208) (ai)을 곱하여 가산기(204)로 출력한다.
예를 들어, 유한체 GF(28)상의 임의의 원소 b = b0 + b1a +b2a2 + b3a3 + b4a4 + b5a5 + b6a6 + b7a7 에 1, a, a2, a3 을 곱할 경우 다음의 수학식 5와 같이 표현된다.
Figure pat00005
상기 수학식 5에 대한 장치는 도 3a 내지 도 3d와 같이 구성된다.
도 3a는 본 발명이 적용되는 일반적인 리드-솔로몬 부호의 신드롬 발생장치로서 수학식 5의 s0를 구현한 장치도이다.
도 3b는 본 발명이 적용되는 일반적인 리드-솔로몬 부호의 신드롬 발생장치로서 수학식 5의 s1을 구현한 장치도이다.
도 3c는 본 발명이 적용되는 일반적인 리드-솔로몬 부호의 신드롬 발생장치로서 수학식 5의 s2를 구현한 장치도이다.
도 3d는 본 발명이 적용되는 일반적인 리드-솔로몬 부호의 신드롬 발생장치로서 수학식 5의 s3를 구현한 장치도이다.
전송 도중 발생한 에러 다항식을 다음의 수학식 6에 나타내면 다음과 같다.
Figure pat00006
또한, 실제로 v (0≤v≤t)개의 에러가 발생한다면 상기 수학식 6을 다음의 수학식 7과 같이 표현할 수 있다.
Figure pat00007
상기 수학식 4로 정의된 신드롬요소 si는 수신부호에 생성 다항식의 근 ai(0≤i≤2t-1)을 대입하여 구해지고 각각의 신드롬요소는 다음의 수학식 8과 같다.
Figure pat00008
상기 수학식 8에서 에러값 eim(1≤m≤v)를 Yj(1≤j≤v)라 하고 에러 위치 번호 ajn(1≤n≤v)를 Zj(1≤j≤v)라 하면 다음의 수학식 9와 같다.
Figure pat00009
상기 수학식 9로부터 Yj 와 Zj 를 구하여 상기 수학식 7로 표현되는 에러 다항식 e(x)를 알아내는 것이 리드-솔로몬 부호를 이용하여 복호하는 과정을 말한다.
2. 에러 개수 판별
그러면 수신신호로부터 신드롬을 구한 후 다음에 기술된 에러개수판별을 수행한다.
2중 에러 [
Figure pat00087
]인 경우 신드롬요소는 상기 수학식 8로부터 다음의 수학식 10을 얻을 수 있다.
Figure pat00010
상기 수학식 10을 이용하여 다음과 같이 변형 전개시킨다.
Figure pat00011
그리고 상기의 전개식을 ai 항으로 이항정리하면,
(s0ai+s1)(s2ai+s3)-(s1ai+s2)2 와 같이 변형시켜 전개시키면 다음의 수학식 11과 같은 2차 방정식을 얻을 수 있다.
Figure pat00012
상기 수학식 11의 각 계수를 다음의 수학식 12와 같이 치환한다.
Figure pat00013
상기 수학식 12와 같이 치환하면, 상기 수학식 11은 다음과 같이 표현된다.
Figure pat00088
이를 이용하여 에러개수 판별식으로 사용할 수 있다.
1) 에러 발생이 없는 경우
s0=s1=s2=s3=0
2) 단일 심벌 에러가 발생한 경우
si≠0, D1=D2=D3=0
3) 2중 심벌 에러가 발생한 경우
si≠0, D1≠0, D2≠0, D3≠0
4) 3중 심벌 이상의 에러가 발생한 경우
상기 1), 2), 3) 이외의 경우
상기 1), 2), 3), 4)에서 에러 갯수 판별후 해당 에러에 대한 에러 위치와 에러값을 결정해야 하며 각 경우 다음과 같이 수행한다.
3. 에러정정
* 단일 심벌 에러 발생시
단일 에러 발생시 신드롬은 s0=ei, s1=eiai 이고, 에러위치와 에러값은 다음의 수학식 13과 같이 구한다.
Figure pat00014
* 2중 심벌 에러 발생시
2중 심벌 에러 발생의 경우 에러위치 X1, X2를 근으로 갖는 에러위치 다항식을 z(x)=x2+z1x+z2 이라 정의한다. 상기 다항식으로부터 x=z1x' 으로 치환하면, 다음의 수학식 14와 같이 나타낼 수 있다.
Figure pat00015
여기서,
Figure pat00089
이고,
Figure pat00090
이다. 그리고 k의 트레이스(trace)인 Tr(k)를 T2(k)와 T4(k)로 구별하여 식을 쓰면,
Figure pat00016
이며, T2(k)=0 일때만 근을 갖는다.
유한체 GF (28) 상에서 트레이스를 취하면 m=8이므로, T2(k) 와 T4(k)는 각각 수학식 15와 16과 같이 나타낼 수 있다.
Figure pat00017
Figure pat00018
상기 수학식 15 및 16으로부터 T2(k)=0 이고, T4(k)=1 이면, 수학식 14에서 표현된 z(x')의 두근 x1 과 x2 는 다음의 수학식 17과 같이 표현할 수 있다.
Figure pat00019
그러나 T2(k)=0 이나 T4(k)=0 가 되는 경우에는 다음의 수학식 18과 같이 표현할 수 있다.
Figure pat00020
여기서, y는 T2(y)=1 이 되는 GF(28) 내의 한 원소이며 k1=y+y2 이라 할 때 T4(c)=T4(k+k1)=1 을 만족시킴으로서 상기 수학식 18로 표현되는 두 근이 결정된다.
이와 같이 계산을 하여 두 근을 구하는 방법외에 z1, z2 를 이용하여 k 의 값을 구한 다음 k 값을 롬(Read Only Memory:ROM) 어드레스의 입력으로 넣어 미리 계산된 두 근 중의 하나인 x1 을 바로 ROM의 출력으로 얻어 구할 수 있다. 다음의 표 1에 (32,28) 리드-솔로몬 부호인 경우의 k 값의 예를 들어 보면 다음과 같다.
다음의 표 1은 상기 수학식 14의 근을 구하는 트레이스 변환 테이블이다.
Figure pat00021
k 값이 상기 표 1에 제시된 범위를 벗어나면 3중 이상의 에러가 발생한 것으로 처리한다. 상기 과정을 통하여 얻은 x1 과 x2 를 이용하여 에러위치 X1, X2를 다음의 수학식 19와 같이 나타낼 수 있다.
Figure pat00022
또한, 에러값 Y1, Y2는 다음의 수학식 20과 같이 나타낼 수 있다.
Figure pat00023
* 3중 심벌 에러 발생시
만일 3중 심벌 에러가 발생하였다면 신드롬요소 si 는 다음의 수학식 21과 같이 표현된다.
Figure pat00024
또한, 에러위치 다항식은 다음의 수학식 22와 같다.
Figure pat00025
상기 수학식 22에서 각 차수의 계수 z1, z2, z3 는 다음의 수학식 23과 같이 표현할 수 있다.
Figure pat00026
그리고 상기 수학식 22는 3중 심벌 에러가 발생하였다면 '0' 가 된다. 에러위치 ai, aj, ak 를 이미 알고 있다고 가정하고 상기 수학식 21의 3원 일차 연립 방정식을 풀면 에러값 Y1, Y2, Y3는 다음의 수학식 24와 같다.
Figure pat00027
* 4중 심벌 에러 발생시
만일, 4중 심벌 에러가 발생하였다면 신드롬요소 si 는 다음의 수학식 25와 같다.
Figure pat00028
또한, 에러위치 다항식은 다음의 수학식 26과 같다.
Figure pat00029
상기 수학식 26에서 각 차수의 계수는 다음의 수학식 27과 같다.
Figure pat00030
그리고 상기 수학식 26은 4중 심벌 에러가 발생하였다면 '0' 이 된다.
에러위치 ai, aj, ak, al 를 이미 알고 있다고 가정하고 상기 수학식 25의 4원 일차 연립방정식을 풀면 에러값 Y1, Y2, Y3, Y4는 다음의 수학식 28과 같다.
Figure pat00031
혹은 =s0+Y4+Y3+Y2
* Errata(1 Error + 2 Erasure)가 발생한 경우
만일 수신부호에 Errata 에러가 발생하였다면 다음과 같은 방법으로 에러정정을 수행한다.
ㄱ) 이미 알려진 에러위치를 이용하여 에러위치 다항식을 생성한다.
Figure pat00032
상기 수학식 29에서,
n = 이용할 수 있는 이레이져 포인터의 개수
pi = 이레이져 포인터 번호 i에 의해 정의되는 위치
상기 수학식 29를 2 이레이져에 맞게 간단히 정리하면
Figure pat00033
와 같이 된다.
ㄴ) 신드롬 si와 이레이져 위치 다항식의 계수를 이용하여 (m-n)개의 새로운 신드롬 요소 Ti를 구한다.
Figure pat00034
여기서 m은 생성 다항식의 차수(degree)이다.
상기 수학식 31을 간단히 전개하면 다음과 같다.
Figure pat00035
ㄷ) 새로운 신드롬 요소 Ti를 이용하여 에러위치 다항식 σ(x)의 계수를 구한다.
Figure pat00036
ㄹ) 에러위치 다항식 σ(x)를 이용하여 에러의 위치를 구한다.
ㅁ) 이레이져 위치와 에러 위치를 이용하여 에러값을 구한다.
에러값을 구하는 방법은 3 이레이져 정정과 동일하다.
에러 위치 ai, aj, ak를 이미 알고 있다고 가정하고 수학식 21의 3원 1차 연립방정식을 풀면 에러값 Y3, Y2, Y1을 구할 수 있다.
Figure pat00037
지금까지 설명한 에러정정방법에 따라 리드-솔로몬 부호를 복호할 수 있으며, 실제 디지털 기기에 사용되는 에러정정부호는 CIRC(Cross Interleaved Reed-Solomon Code)로 C1, C2의 두 종류로 부호가 구성되어 있다. 즉, 에러정정 복호화 과정을 2단계로 구별하여 진행한다.
C1, C2 부호의 최소 디스턴스(Minimum Distance)를 5라 가정할 때, 에러정정의 경우는 2e+1≤5 까지 에러정정이 가능하고, 이레이저(erasure) 정정인 경우 f+1≤5 까지 에러정정이 가능하며, Errata 정정의 경우 2e+f+1≤5 까지 에러정정이 가능하다.
본 발명의 알고리즘에서 사용되는 복호순서는 C1 부호를 이용하여 C1 에러정정을 수행한 후, C2 부호 및 C1 플러그(Flag) 정보를 이용하여 C2 에러/이레이저/Errata 정정을 수행한다. C1 플러그의 의미는 C1 부호에 에러가 발생하였거나, 에러정정을 했어도 오정정의 가능성이 존재한다는 것을 의미한다. 또한, 이들 C1 플러그는 C2 이레이져 정정시 에러 위치 정보로 이용되어 최대 4개의 에러까지 정정이 가능하다. 최대 에러정정에 있어서 에러정정 능력만큼 에러검출 능력 또한 매우 중요하다. 미검출 에러와 오정정 에러가 직접적으로 음향 및 영상신호에 노이즈를 발생시킨다.
C2 부호 복호시 이런 일련의 미검출 및 오정정을 방지하기 위해 C1 플러그의 세트/리세트는 매우 중요한 부분이다. 즉, 시스템 특성 및 동작 상태와 EFM 데이터의 정확성에 따라 C1 부호 복호시 C1 플러그를 가변적으로 부가해야 한다.
그러면, 도면을 참조하여 설명한다.
도 4는 본 발명에 따른 에러정정방법으로서 C1 디코딩 알고리즘의 흐름도이다.
먼저, 수신신호로부터 신드롬을 계산한다.(400단계)
상기 400단계에서 계산된 신드롬에 의해 에러갯수 판별식을 이용하여 에러갯수를 판별한다.(402단계)
단일 심벌 에러 발생시의 신드롬은
Figure pat00038
이다.
또한, 2중 심벌 에러 발생시의 신드롬은 상기 수학식 10과 같다. 3중 심벌 에러 발생시의 신드롬은 상기 수학식 21과 같다. 4중 심벌 에러 발생시의 신드롬은 상기 수학식 25와 같다.
상기 수학식 10 내지 12에서 에러갯수를 판별하는 일예를 들어 이미 설명하였다.
에러 발생이 없는 경우, 단일 에러가 발생한 경우, 2중 에러가 발생한 경우, 3중 이상의 에러가 발생한 경우를 판별하는 판별식의 설명은 앞에서 이미 설명한 바와 같다.
즉, 도 4에서 에러갯수 ' 0 ' 여부를 판단하는 단계(402-1단계), 에러갯수 ' 1 ' 여부를 판단하는 단계(402-2단계), 에러갯수 ' 2 ' 여부를 판단하는 단계(402-3단계)는 상기 판별식에 의해서 결정된다.
상기 402단계에서 판별된 에러의 개수에 따라 에러징정을 수행한다.(404단계)
상기 402단계에서 판별된 에러의 개수가 '0' 이면 에러정정을 수행하지 않는다. 판별된 에러의 개수가 '1' 이면 ' 1 '에러정정을 수행한다.(404-1단계) 또한, 판별된 에러의 개수가 '2' 이면 '2' 에러정정을 수행한다.(404-2단계)
'1' 에러정정(404-l단계)은 상기 수학식 13에서 이미 설명한 바와 같다. 또한, '2' 에러정정(404-2단계)은 상기 수학식 14 내지 20에서 이미 설명한 바와 같다. 또한, 상기 404단계에서 판별된 에러의 개수가 '0' , '1' , '2' 이외의 개수이면 에러정정을 수행하지 않는다.
상기 에러개수 판별단계(402단계)에서 판별된 에러의 개수가 '0' 이거나 상기 에러정정단계(404단계)를 수행한 후에 상태검색을 수행한다.(406단계)
상태검색단계(406단계)는 시스템 특성, 데이터 및 플레이어 상황을 검색하기 위한 단계이다. 즉, EFM(Eight/Fourteen Modulation) 데이터 이상 유무, 플레이어(Player) 동작상태, 프레임 싱크(Frame Sync) 검출 유무 등을 확인한 다음 플러그(Flag)를 가변적으로 부가하기 위한 단계이다.
EFM 데이터 이상 유무에 대한 설명은 다음과 같다.
디스크로부터 입력되는 14비트 채널 데이터가 8비트로 복조되는데, 214=16384가지의 채널 데이터중 28=256가지의 채널 데이터만 변환한다. 나머지 16384-256=16128가지의 데이터는 불필요한 데이터이다. 만일 이러한 불필요한 데이터가 디스크로부터 입력된다면 정상적인 8비트 데이터로 복조될 수 없다. 이때 EFM 데이터 이상 유무 상태 플러그를 셋(set) 시킨다. 마찬가지로, 한 프레임(frame)의 시작 혹은 끝을 지시하는 프레임 싱크 데이터를 7.35KHz(=136㎲)마다 검출하지 못하면 해당 프레임분의 데이터가 이상이 있을 가능성이 크므로 프레임 싱크 검출유무 상태 플러그를 셋시킨다. 플레이어 동작 상태는 정상 동작과 비정상 동작으로 구분되는데 비정상적으로 플레이어가 동작할 때 플레이어 상태 플레그를 셋시킨다. 정상 상태란 노말(normal) 플레이 상태를 의미하며 비정상 상태는 패스트 포워드(fast forward), 리뷰(review), 서치(search) 등의 상태를 의미한다. C1 디코딩에서 사용되는 상태(STATUS)와 그때 부가되는 C1 플러그는 다음의 표 2와 같다.
Figure pat00039
그리고 상기 표 2에서 "reset/set" 의 경우와 같이 두가지 상황을 동시에 설정한 것은 시스템의 특성 및 여러 가지 응용회로에 따라 달라질 수 있음을 의미한다.
상기 상태검색단계(406단계)에서 검색된 상태의 양호 여부 및 상기 에러 개수 판별단계(402단계)에서 판별된 에러의 개수가 '3' 이상임을 판단하여 플러그를 "0" 또는 "1" 로 설정한다.(408단계)
상기 상태검색단계(406단계)에서 검색된 상태가 양호하면 플러그를 '0' 로 설정한다.(408-1단계) 반면, 상기 상태검색단계(406단계)에서 검색된 상태가 양호하지 않거나 또한, 상기 에러 개수 판별단계(402단계)에서 판별된 에러의 개수가 '3' 이상으로 판단되면 상기 에러정정단계(404단계) 및 상태검색단계(406단계)를 거치지 않고 직접적으로 플러그를 '1' 로 설정한다.(408-2단계)
도 5는 본 발명에 따른 에러정정방법으로서 C2 디코딩 알고리즘의 흐름도이다.
먼저, 수신신호로부터 신드롬을 계산한다.(500단계)
상기 신드롬 계산단계(500단계)에서 계산된 신드롬에 의해 에러갯수 판별식을 이용하여 에러갯수를 판별한다.(502단계)
도 4의 설명과 같이 단일 심벌 에러 발생시의 신드롬은
Figure pat00040
이다.
또한, 2중 심벌 에러 발생시의 신드롬은 상기 수학식 10과 같다. 3중 심벌 에러 발생시의 신드롬은 상기 수학식 21과 같다. 4중 심벌 에러 발생시의 신드롬은 상기 수학식 25와 같다.
상기 수학식 10 내지 12에서 에러갯수를 판별하는 일예를 들어 이미 설명하였다.
에러 발생이 없는 경우, 단일 에러가 발생한 경우, 2중 에러가 발생한 경우, 3중 이상의 에러가 발생한 경우를 판별하는 판별식의 설명은 앞에서 이미 설명한 바와 같다.
즉, 도 5에서 에러갯수 ' 0 ' 여부를 판단하는 단계(502-1단계), 에러갯수 ' 1 ' 여부를 판단하는 단계(502-2단계), 에러갯수 ' 2 ' 여부를 판단하는 단계(502-3단계)는 상기 판별식에 의해서 결정된다.
상기 에러개수 판별단계(502단계)에서 에러갯수 '2' 여부를 판단하는 단계(502-3단계)의 판단이 에러갯수가 '2' 로 판단되면 상기 C1 디코딩 과정에서 생성된 C1 플러그의 개수를 판단한다.(503단계)
상기 C1 플러그 개수 판단단계(503단계)에서 C1 플러그 개수가 '4' 이하이면 현재의 에러 위치가 상기 C1 디코딩 과정의 플러그 설정단계(408단계)에서 설정된 에러의 위치와 일치하는가를 판단한다.(504단계)
상기 에러개수 판별단계(502단계) 및/또는 상기 플러그 일치 여부 판단단계(504단계)를 통하여 상기 에러개수 판별단계(502단계)에서 판별된 에러개수가 '1'개이면 '1' 에러 정정을 수행하고. 상기 플러그 일치 여부 판단단계(504단계)의 판단이 현재 검출된 에러의 위치와 C1 디코딩 과정에서 설정된 에러의 위치가 일치하면 '2' 에러 정정을 수행한다.(506단계)
상기 '1' / '2' 에러정정단계(506단계)는 '1' 에러정정단계(506-1단계)와 '2' 에러정정단계(506-2단계)로 구분된다. '1' 에러정정단계(506-1단계)는 상기 수학식 13에서 설명한 바와 같이 이루어진다. 또한, '2' 에러정정단계(506-2단계)는 상기 수학식 14 내지 20에서 설명한 바와 같이 이루어진다.
상기 플러그 일치 여부 판단단계(504단계)의 판단이 현재 검출된 에러의 위치와 C1 디코딩 과정에서 설정된 에러의 위치가 일치하지 않으면 상기 C1 디코딩과정에서 생성된 C1 플러그의 개수를 판단한다.(507단계)
상기 에러개수 판별단계(502단계)의 판단이 현재 검출된 에러의 개수가 '2'를 초과하거나, 상기 C1 플러그 개수 판단단계(507단계)의 판단이 '2' 이하이면 이레이저 정정여부를 판단한다.(508단계)
상기 이레이저 정정여부 판단단계(508단계)의 판단은 다음의 표 3에서 상세히 설명한다.
Figure pat00041
상기 표 2에서와 같이 상기 표 3에서도 ON 또는 OFF( "ON/OFF" )의 두가지 상태를 선택적으로 설정한 것은 시스템의 특성 및 여러 가지 응용회로에 따라 달라질수 있음을 의미한다.
상기 이레이저 정정여부 판단단계(508)의 판단이 상기 표 3에 의해 'ON'이면 플러그의 개수를 판단한다.(510단계)
상기 플러그 개수 판단단계(510단계)에서 판단된 플러그의 개수가 '3' 또는 '4' 이면 '3' / '4' 이레이저 정정을 수행한다.(512단계)
상기 '3' / '4' 이레이저 정정단계(512단계)에서 '3' 이레이저 정정은 상기 수학식 21 내지 24에서 설명한 바와 같이 이루어진다. 또한, '4' 이레이저 정정은 상기 수학식 25 내지 28에서 설명한 바와 같이 이루어진다.
상기 플러그 개수 판단단계(510단계)에서 판단된 플러그의 개수가 '2' 이면 에레타 정정을 수행한다.(513단계)
에레타 정정단계(513단계)는 상기 수학식 29 내지 34에서 설명한 바와 같이 이루어진다.
상기 '3' / '4' 이레이저 정정단계(512단계)에서 이레이저 정정이 수행되거나 상기 에레타 정정단계(513단계)가 수행되고 난 후, 이레이저 정정 및 에레타 정정의 올바른 수행 여부를 확인하기 위하여 검산을 수행한다.(514단계)
상기 이레이저 정정여부 판단단계(508단계)의 판단이 'OFF'이면 플러그의 개수를 판단한다.(516단계)
상기 신드롬 계산단계(500단계) 내지 상기 플러그 개수 제2판단단계(516)가 수행되고 난 후 플러그를 설정한다.(518단계)
상기 플러그 설정단계(518단계)는 플러그 '0' 설정단계(518-1단계), 플러그 '1' 설정단계(518-2단계), 플러그 '복사(copy)' 설정단계(518-3단계)로 세분된다.
상기 플러그 '0' 설정단계(518-1단계)에서는 상기 에러개수 판별단계(502단계)의 에러갯수 ' 0 ' 여부를 판단하는 단계(502-1단계)의 판단이 현재 검출된 에러가 없거나, 상기 '1' / '2' 에러정정단계(506단계)에서 '1' 또는 '2' 에러가 정정되었거나, 또는 상기 검산단계(514단계)에서 검산된 결과가 양호할 때 플러그를 '0' 으로 설정한다.
상기 플러그 '1' 설정단계(518-2단계)는 상기 플러그 개수 제1판단단계(510단계)에서 판단된 플러그의 개수가 '0' , 또는 '1' 이거나, 상기 검산단계(514단계)에서 검산된 결과가 불량이거나, 또는 상기 플러그 개수 제2판단단계(516)에서 판단된 플러그의 개수가 '1' 또는 '2' 일때 플러그를 '1' 로 설정한다.
상기 플러그 '복사' 설정단계(518-3단계)는 상기 C1 플러그 개수 제3판단단계(503단계)의 판단이 C1 플러그 개수가 '4' 를 초과하거나, 상기 C1 플러그 개수 제4판단단계(507단계)의 판단이 C1 플러그 개수가 '2' 를 초과하거나, 상기 플러그 개수 제1판단단계(510단계)에서 판단된 플러그의 개수가 '5' 이거나, 또는 상기 플러그 개수 제2판단단계(516)에서 판단된 플러그의 개수가 '2' 를 초과할 때 플러그를 '복사' 설정한다.
상술한 바와 같은 본 발명에 의하면 에러와 이레이저가 합해진 경우에도 에러정정을 수행할 수 있는 효과를 제공한다.
도 1a는 종래 기술의 에러정정시 플러그(flag) 처리 방법에 따른 C1 디코딩 알고리즘을 보이는 도면이다.
도 1b는 종래 기술의 에러정정시 플러그(flag) 처리 방법에 따른 C2 디코딩 알고리즘을 보이는 도면이다.
도 2는 본 발명에 적용되는 일반적인 리드-솔로몬 부호의 신드롬 발생장치의 블록도이다.
도 3a는 본 발명이 적용되는 일반적인 리드-솔로몬 부호의 신드롬 발생장치로서 수학식 5의 s0를 구현한 장치도이다.
도 3b는 본 발명이 적용되는 일반적인 리드-솔로몬 부호의 신드롬 발생장치로서 수학식 5의 s1을 구현한 장치도이다.
도 3c는 본 발명이 적용되는 일반적인 리드-솔로몬 부호의 신드롬 발생장치로서 수학식 5의 s2를 구현한 장치도이다.
도 3d는 본 발명이 적용되는 일반적인 리드-솔로몬 부호의 신드롬 발생장치로서 수학식 5의 s3를 구현한 장치도이다.
도 4는 본 발명에 따른 에러정정방법으로서 C1 디코딩 알고리즘의 흐름도이다.
도 5는 본 발명에 따른 에러정정방법으로서 C2 디코딩 알고리즘의 흐름도이다.

Claims (17)

  1. 디지털 신호의 재생에 있어 리드-솔로몬(Reed-Solomon) 부호를 사용하여 데이터의 에러를 정정하기 위한 에러정정방법에 있어서,
    수신신호로부터 신드롬을 계산하는 단계(400단계);
    상기 신드롬 계산단계(400단계)에서 계산된 신드롬에 의해 에러갯수 판별식을 이용하여 에러갯수를 판별하는 단계(402단계);
    상기 에러개수 판별단계(402단계)에서 판별된 에러의 개수에 따라 에러정정을 수행하는 단계(404단계);
    상기 에러개수 판별단계(402단계)에서 판별된 에러의 개수가 '0' 이거나 상기 에러정정단계(404단계)를 수행한 후에 시스템의 상태검색을 수행하는 상태검색단계(406단계); 및
    상기 상태검색단계(406단계)에서 검색된 상태의 양호 여부 및 상기 에러 개수 판별단계(402단계)에서 판별된 에러의 개수가 '3' 이상임을 판단하여 C1 플러그를 "0" 또는 "1" 로 설정하는 C1 플러그 설정단계(408단계)를 갖는 C1 디코딩 과정
    그리고,
    수신신호로부터 신드롬을 계산하는 신드롬 계산단계(500단계);
    상기 신드롬 계산단계(500단계)에서 계산된 신드롬에 의해 에러개수 판별식을 이용하여 에러개수를 판별하는 에러개수 판별단계(502단계);
    상기 에러개수 판별단계(502단계)에서 판별된 에러의 개수가 '2' 로 판단되면 상기 C1 디코딩 과정에서 생성된 C1 플러그의 개수를 판단하는 C1 플러그 개수 제3판단단계(503단계);
    상기 C1 플러그 개수 제3판단단계(503단계)에서 C1 프러그 개수가 '4' 이하이면 현재의 에러 위치가 상기 C1 디코딩 과정의 플러그 설정단계(408단계)에서 설정된 에러의 위치와 일치하는가를 판단하는 플러그 일치 여부 판단단계(504단계);
    상기 에러개수 판별단계(502단계) 및/또는 상기 플러그 일치 여부 판단단계(504단계)를 통하여 상기 에러개수 판별단계(502단계)에서 판별된 에러개수가 '1'개이면 '1' 에러 정정을 수행하고, 상기 플러그 일치 여부 판단단계(504단계)의 판단이 현재 검출된 에러의 위치와 C1 디코딩 과정에서 설정된 에러의 위치가 일치하면 '2' 에러 정정을 수행하는 에러정정단계(506단계);
    상기 플러그 일치 여부 판단단계(504단계)의 판단이 현재 검출된 에러의 위치와 C1 디코딩 과정에서 설정된 에러의 위치가 일치하지 않으면 상기 C1 디코딩 과정에서 생성된 C1 플러그의 개수를 판단하는 C1 플러그 개수 제4판단단계(507단계);
    상기 에러개수 판별단계(502단계)의 판단이 현재 검출된 에러의 개수가 ' 2 '를 초과하거나, 상기 C1 플러그 개수 제4판단단계(507단계)의 판단이 ' 2 ' 이하이면 이레이저 정정여부를 판단하는 이레이저 정정여부 판단단계(508단계);
    상기 이레이저 정정여부 판단단계(508단계)의 판단이 'ON'이면 플러그의 개수를 판단하는 플러그 개수 제1판단단계(510단계);
    상기 플러그 개수 제1판단단계(510단계)에서 판단된 플러그의 개수가 '3' 또는 '4' 이면 '3' / '4' 이레이저 정정을 수행하는 '3' / '4' 이레이저 정정단계(512단계);
    상기 플러그 개수 제1판단단계(510단계)에서 판단된 플러그의 개수가 '2' 이면 에레타 정정을 수행하는 에레타 정정단계(513단계);
    상기 '3' / '4' 이레이저 정정단계(512단계)에서 이레이저 정정이 수행되거나 상기 에레타 정정단계(513단계)가 수행되고 난 후, 이레이저 정정 및 에레타 정정의 올바른 수행 여부를 확인하기 위하여 검산을 수행하는 검산단계(514단계);
    상기 이레이저 정정여부 판단단계(508단계)의 판단이 'OFF'이면 플러그의 개수를 판단하는 플러그 개수 제2판단단계(516단계);
    상기 신드롬 계산단계(500단계) 내지 상기 플러그 개수 제2판단단계(516단계)가 수행되고 난 후 플러그를 설정하는 플러그 설정단계(518단계)를 갖는 C2 디코딩 과정을 포함하는 에러정정방법.
  2. 제1항에 있어서, 상기 신드롬 계산단계(400단계)에서
    단일 심벌 에러 발생시의 신드롬은
    Figure pat00042
    이고, 2중 심벌 에러 발생시의 신드롬은
    Figure pat00043
    이고, 3중 심벌 에러 발생시의 신드롬은
    Figure pat00044
    이고, 4중 심벌 에러 발생시의 신드롬은
    Figure pat00045
    임을 특징으로 하는 에러정정방법.(단, S0 내지 S3은 신드롬 요소, ei 내지 el 는 에러값, ani 내지 anl은 에러 위치 번호, n은 0 내지 3)
  3. 제1항에 있어서, 상기 에러개수 판별단계(402단계)는
    Figure pat00046
    이라 하고,
    a) 에러 발생이 없는 경우
    s0=s1=s2=s3=0
    b) 단일 심벌 에러가 발생한 경우
    si≠0, D1=D2=D3=0
    c) 2중 심벌 에러가 발생한 경우
    si≠0, D1≠0, D2≠0, D3≠0
    d) 3중 심벌 이상의 에러가 발생한 경우
    상기 a), b), c) 이외의 경우
    로서 에러의 개수를 판별함을 특징으로 하는 에러정정방법.(단, S0 내지 S3은 신드롬 요소, i는 0 내지 3)
  4. 제1항 또는 제3항에 있어서, 상기 에러개수 판별단계(402단계)는
    에러갯수 ' 0 ' 여부를 판단하는 단계(402-1단계);
    에러갯수 ' 1 ' 여부를 판단하는 단계(402-2단계); 및
    에러갯수 ' 2 ' 여부를 판단하는 단계(402-3단계)로 세분됨을 특징으로 하는 에러정정방법.
  5. 제1항에 있어서, 상기 에러정정 수행단계(404단계)는
    상기 에러개수 판별단계(402단계)에서 판별된 에러의 개수가 '0' 이면 에러정정을 수행하지 않고, 판별된 에러의 개수가 '1' 이면 ' 1 '에러정정을 수행(404-1단계)하고, 판별된 에러의 개수가 '2' 이면 '2' 에러정정을 수행(404-2단계)하는 바,
    상기 '1' 에러정정(404-1단계)의 수행은
    X1 = s1/s0 ====> 에러위치
    Y1 = s0 ====> 에러값
    이고, 상기 '2' 에러정정(404-2단계)의 수행은
    2중 심벌 에러 발생의 경우 에러위치 X1, X2를 근으로 갖는 에러위치 다항식을 z(x)=x2+z1x+z2 이라 정의하면, 상기 다항식으로부터 x=z1x' 으로 치환하면, 상기 다항식은 다음의 수학식 14와 같이 나타낼 수 있고,
    [수학식 14]
    Figure pat00047
    (여기서,
    Figure pat00091
    이고,
    Figure pat00092
    ,
    Figure pat00093
    ) 또한, k의 트레이스(trace)인 Tr(k)를 T2(k) 와 T4(k)로 구별하여 식을 쓰면,
    Figure pat00048
    이고, 유한체 GF(28) 상에서 트레이스를 취하면 m=8이므로, 상기 T2(k) 와 T4(k)는 각각 수학식 15와 16과 같이 나타낼 수 있으며,
    [수학식 15]
    Figure pat00049
    [수학식 16]
    Figure pat00050
    상기 수학식 15 및 16으로부터 T2(k)=0 이고, T4(k)=1 이면, 수학식 14에서 표현된 z(x')의 두근 x1 과 x2 는 다음의 수학식 17과 같이 표현할 수 있는 바,
    [수학식 17]
    Figure pat00051
    그러나 T2(k)=0 이나 T4(k)=0 가 되는 경우에는 다음의 수학식 18과 같이 표현할 수 있고,
    [수학식 18]
    Figure pat00052
    여기서, y는 T2(y)=1 이 되는 GF (28) 내의 한 원소이며 k1=y+y2 이라 할 때 T4(c)=T4(k+k1)=1 을 만족시킴으로서 상기 수학식 18로 표현되는 두 근이 결정되는데,
    상기 과정을 통하여 얻은 x1 과 x2 를 이용하여 에러위치 X1, X2는 다음의 수학식 19와 같고, 에러값 Y1, Y2는 다음의 수학식 20과 같음을 특징으로 하고,
    [수학식 19]
    Figure pat00053
    [수학식 20]
    Figure pat00054
    상기 에러정정 수행단계(404단계)에서 판별된 에러의 개수가 '0' , '1' , '2' 이외의 개수이면 에러정정을 수행하지 않음을 특징으로 하는 에러정정방법.
  6. 제1에 있어서, 상기 상태검색단계(406단계)는
    시스템 특성, 데이터 및 플레이어 상황을 검색하는 단계로서 EFM(Eight/Fourteen Modulation) 데이터 이상 유무, 플레이어(Player) 동작상태, 프레임 싱크(Frame Sync) 검출 유무 등을 확인한 다음 플러그(Flag)를 가변적으로 부가하기 위한 단계인 바,
    Figure pat00055
    임을 특징으로 하는 에러정정방법.
  7. 제1항에 있어서, 상기 플러그 설정단계(408단계)는
    상기 상태검색단계(406단계)에서 검색된 상태가 양호하면 플러그를 '0' 로 설정하고, 검색된 상태가 양호하지 않으면 플러그를 '1' 로 설정하며, 상기 에러 개수판별단계(402단계)에서 판별된 에러의 개수가 '3' 이상으로 판단되면 상기 에러정정단계(404단계) 및 상태검색단계(406단계)를 거치지 않고 직접적으로 플러그를 '1' 로 설정함을 특징으로 하는 에러정정방법.
  8. 제1항에 있어서, 상기 플러그 설정단계(408단계)는
    상기 상태검색단계(406단계)에서 검색된 상태가 양호하면 플러그를 '0' 로 설정하는 단계(408-1단계); 및
    상기 상태검색단계(406단계)에서 검색된 상태가 양호하지 않거나 또한, 상기 에러 개수 판별단계(402단계)에서 판별된 에러의 개수가 '3' 이상으로 판단되면 상기 에러정정단계(404단계) 및 상태검색단계(406단계)를 거치지 않고 직접적으로 플러그를 '1' 로 설정하는 단계(408-2단계)로 세분됨을 특징으로 하는 에러정정방법.
  9. 제1항에 있어서, 상기 신드롬 계산단계(500단계)에서
    단일 심벌 에러 발생시의 신드롬은
    Figure pat00056
    이고, 2중 심벌 에러 발생시의 신드롬은
    Figure pat00057
    이고, 3중 심벌 에러 발생시의 신드롬은
    Figure pat00058
    이고, 4중 심벌 에러 발생시의 신드롬은
    Figure pat00059
    임을 특징으로 하는 에러정정방법.(단, S0 내지 S3은 신드롬 요소, ei 내지 el 는 에러값, ani 내지 anl은 에러 위치 번호, n은 0 내지 3)
  10. 제1항에 있어서, 상기 에러개수 판별단계(502단계)는
    Figure pat00060
    이라 하고,
    a) 에러 발생이 없는 경우
    s0=s1=s2=s3=0
    b) 단일 심벌 에러가 발생한 경우
    si≠0, D1=D2=D3=0
    c) 2중 심벌 에러가 발생한 경우
    si≠0, D1≠0, D2≠0, D3≠0
    d) 3중 심벌 이상의 에러가 발생한 경우
    상기 a), b), c) 이외의 경우
    로서 에러의 개수를 판별함을 특징으로 하는 에러정정방법.(단, S0 내지 S3은 신드롬 요소, i는 0 내지 3)
  11. 제1항 또는 제10항에 있어서, 상기 에러개수 판별단계(502단계)는
    에러갯수 ' 0 ' 여부를 판단하는 단계(502-1단계);
    에러갯수 ' 1 ' 여부를 판단하는 단계(502-2단계); 및
    에러갯수 ' 2 ' 여부를 판단하는 단계(502-3단계)로 세분됨을 특징으로 하는 에러정정방법.
  12. 제1항에 있어서, 상기 C1 플러그 개수 제3판단단계(503단계)는 C1 플러그의 개수가 '4' 를 초과하는지를 판단함을 특징으로 하는 에러정정방법.
  13. 제1항에 있어서, 상기 에러정정단계(506단계)는 '1' 에러정정단계(506-1단계)와 '2' 에러정정단계(506-2단계)로 구분되는 바,
    상기 '1' 에러정정단계(506-1단계)의 수행은
    X1 = s1/s0 ====> 에러위치
    Y1 = s0 ====> 에러값
    이고, 상기 '2' 에러정정단계(506-2단계)의 수행은
    2중 심벌 에러 발생의 경우 에러위치 X1, X2를 근으로 갖는 에러위치 다항식을 z(x)=x2+z1x+z2 이라 정의하면, 상기 다항식으로부터 x=z1x' 으로 치환하면, 상기 다항식은 다음의 수학식 14와 같이 나타낼 수 있고,
    [수학식 14]
    Figure pat00061
    (여기서,
    Figure pat00094
    이고,
    Figure pat00095
    ,
    Figure pat00096
    ) 또한, k의 트레이스(trace)인 Tr(k)를 T2(k) 와 T4(k)로 구별하여 식을 쓰면,
    Figure pat00062
    이고, 유한체 GF (28) 상에서 트레이스를 취하면 m=8이므로, 상기 T2(k) 와 T4(k)는 각각 수학식 15와 16과 같이 나타낼 수 있으며,
    [수학식 15]
    Figure pat00063
    [수학식 16]
    Figure pat00064
    상기 수학식 15 및 16으로부터 T2(k)=0 이고, T4(k)=1 이면, 수학식 14에서 표현된 z(x')의 두근 x1 과 x2 는 다음의 수학식 17과 같이 표현할 수 있는 바,
    [수학식 17]
    Figure pat00065
    그러나 T2(k)=0 이나 T4(k)=0 가 되는 경우에는 다음의 수학식 18과 같이 표현할 수 있고,
    [수학식 18]
    Figure pat00066
    여기서, y는 T2(y)=1 이 되는 GF (28) 내의 한 원소이며 k1=y+y2 이라 할 때 T4(c)=T4(k+k1)=1 을 만족시킴으로서 상기 수학식 18로 표현되는 두 근이 결정되는데, 상기 과정을 통하여 얻은 x1 과 x2 를 이용하여 에러위치 X1, X2는 다음의 수학식 19와 같고, 에러값 Y1, Y2는 다음의 수학식 20과 같음을 특징으로 하는 에러정정방법.
    [수학식 19]
    Figure pat00067
    [수학식 20]
    Figure pat00068
  14. 제1항에 있어서, 상기 C1 플러그 개수 제4판단단계(507단계)는 C1 플러그의 개수가 '2' 를 초과하는지를 판단함을 특징으로 하는 에러정정방법.
  15. 제1항에 있어서, 상기 이레이저 정정여부 판단단계(508단계)의 판단은 다음의 표와 같음을 특징으로 하는 에러정정방법.
    Figure pat00069
  16. 제1항에 있어서, 상기 '3' / '4' 이레이저 정정단계(512단계)에서 '3' 이레이저 정정은 신드롬요소 si 는 다음의 수학식 21과 같이 표현되고,
    [수학식 21]
    Figure pat00070
    또한, 에러위치 다항식은 다음의 수학식 22와 같으며,
    [수학식 22]
    Figure pat00071
    상기 수학식 22에서 각 차수의 계수 z1, z2, z3 는 다음의 수학식 23과 같이 표현할 수 있는 바,
    [수학식 23]
    Figure pat00072
    그리고 상기 수학식 22는 3중 심벌 에러가 발생하였다면 '0' 가 된다. 에러 위치 ai, aj, ak 를 이미 알고 있다고 가정하고 상기 수학식 21의 3원 일차 연립 방정식을 풀면 에러값 Y1, Y2, Y3는 다음의 수학식 24와 같고,
    [수학식 24]
    Figure pat00073
    '4' 이레이저 정정은 신드롬요소 si 는 다음의 수학식 25와 같고,
    [수학식 25]
    Figure pat00074
    또한, 에러위치 다항식은 다음의 수학식 26과 같으며,
    [수학식 26]
    Figure pat00075
    상기 수학식 26에서 각 차수의 계수는 다음의 수학식 27과 같은 바,
    [수학식 27]
    Figure pat00076
    그리고 상기 수학식 26은 4중 심벌 에러가 발생하였다면 '0' 이 되고, 에러위치 ai, aj, ak, al 를 이미 알고 있다고 가정하고 상기 수학식 25의 4원 일차 연립방정식을 풀면 에러값 Y1, Y2, Y3, Y4는 다음의 수학식 28과 같음을 특징으로 하는 에러정정방법.
    [수학식 28]
    Figure pat00077
    혹은 =s0+Y4+Y3+Y2
    (단, S0 내지 S3은 신드롬 요소, ei 내지 el 는 에러값, ani 내지 anl은 에러 위치 번호, n은 0 내지 3)
  17. 제1항에 있어서, 상기 플러그 설정단계(518단계)는
    플러그 '0' 설정단계(518-1단계), 플러그 '1' 설정단계(518-2단계), 플러그 '복사(copy)' 설정단계(518-3단계)로 세분되는 바,
    상기 플러그 '0' 설정단계(518-1단계)에서는 상기 에러개수 판별단계(502단계)의 에러갯수 ' 0 ' 여부를 판단하는 단계(502-1단계)의 판단이 현재 검출된 에러가 없거나, 상기 '1' / '2' 에러정정단계(506단계)에서 '1' 또는 '2' 에러가 정정되었거나, 또는 상기 검산단계(514단계)에서 검산된 결과가 양호할 때 플러그를 '0'으로 설정하고,
    상기 플러그 '1' 설정단계(518-2단계)는 상기 플러그 개수 제1판단단계(510단계)에서 판단된 플러그의 개수가 '0' , 또는 '1' 이거나, 상기 검산단계(514단계)에서 검산된 결과가 불량이거나, 또는 상기 플러그 개수 제2판단단계(516)에서 판단된 플러그의 개수가 '1' 또는 '2' 일때 플러그를 '1' 로 설정하며,
    상기 플러그 '복사' 설정단계(518-3단계)는 상기 C1 플러그 개수 제3판단단계(503단계)의 판단이 C1 플러그 개수가 '4' 를 초과하거나, 상기 C1 플러그 개수 제4판단단계(507단계)의 판단이 C1 플러그 개수가 '2' 를 초과하거나, 상기 플러그 개수 제1판단단계(510단계)에서 판단된 플러그의 개수가 '5' 이거나, 또는 상기 플러그 개수 제2판단단계(516)에서 판단된 플러그의 개수가 '2' 를 초과할 때 플러그를 '복사' 설정함을 특징으로 하는 에러정정방법.
KR1019970040757A 1997-08-25 1997-08-25 디지털 신호의 재생에 있어 에러정정방법 KR100532373B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970040757A KR100532373B1 (ko) 1997-08-25 1997-08-25 디지털 신호의 재생에 있어 에러정정방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970040757A KR100532373B1 (ko) 1997-08-25 1997-08-25 디지털 신호의 재생에 있어 에러정정방법

Publications (2)

Publication Number Publication Date
KR19990017736A KR19990017736A (ko) 1999-03-15
KR100532373B1 true KR100532373B1 (ko) 2006-03-24

Family

ID=37179838

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970040757A KR100532373B1 (ko) 1997-08-25 1997-08-25 디지털 신호의 재생에 있어 에러정정방법

Country Status (1)

Country Link
KR (1) KR100532373B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001126408A (ja) * 1999-10-29 2001-05-11 Sony Corp 光学式回転記録媒体、アドレス情報記録方法、アドレス情報復元方法、光学式記録装置、光学式再生装置、および、光学式記録・再生装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02146820A (ja) * 1988-11-28 1990-06-06 Nec Home Electron Ltd 2重リードソロモン符号復号方式
JPH05315974A (ja) * 1992-05-12 1993-11-26 Sharp Corp リードソロモン符号の復号装置
JPH0973736A (ja) * 1995-09-07 1997-03-18 Sony Corp ディジタル信号再生装置および再生方法
KR970023252A (ko) * 1995-10-14 1997-05-30 김광호 리드 솔로몬(Reed-Solomon)코드(Code)의 이레이저(Eraswre)정정 방법
KR0164518B1 (ko) * 1995-12-30 1999-03-20 김광호 컴팩트디스크 플레이어에 있어서 에러정정방법 및 장치
KR100225032B1 (ko) * 1996-10-17 1999-10-15 윤종용 이레이져 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치
KR100225857B1 (ko) * 1996-12-30 1999-10-15 구자홍 바이트 단위의 부호어 에러 정정 시스템
KR100239798B1 (ko) * 1997-03-25 2000-01-15 윤종용 디지털 신호의 재생에 있어 에러정정방법 및 그에 적용되는 장치

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02146820A (ja) * 1988-11-28 1990-06-06 Nec Home Electron Ltd 2重リードソロモン符号復号方式
JPH05315974A (ja) * 1992-05-12 1993-11-26 Sharp Corp リードソロモン符号の復号装置
JPH0973736A (ja) * 1995-09-07 1997-03-18 Sony Corp ディジタル信号再生装置および再生方法
KR970023252A (ko) * 1995-10-14 1997-05-30 김광호 리드 솔로몬(Reed-Solomon)코드(Code)의 이레이저(Eraswre)정정 방법
KR0164518B1 (ko) * 1995-12-30 1999-03-20 김광호 컴팩트디스크 플레이어에 있어서 에러정정방법 및 장치
KR100225032B1 (ko) * 1996-10-17 1999-10-15 윤종용 이레이져 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치
KR100225857B1 (ko) * 1996-12-30 1999-10-15 구자홍 바이트 단위의 부호어 에러 정정 시스템
KR100239798B1 (ko) * 1997-03-25 2000-01-15 윤종용 디지털 신호의 재생에 있어 에러정정방법 및 그에 적용되는 장치

Also Published As

Publication number Publication date
KR19990017736A (ko) 1999-03-15

Similar Documents

Publication Publication Date Title
KR100683624B1 (ko) 가속화된 리드-솔로몬 오류정정
EP0136604B1 (en) Decoding method and system.
JPH084233B2 (ja) 誤り訂正符号の復号装置
US4646301A (en) Decoding method and system for doubly-encoded Reed-Solomon codes
EP0136587A2 (en) Error correction circuit
EP0101218A2 (en) Methods of correcting errors in binary data
JPH06311050A (ja) 誤り訂正方法及びその装置
CN106506011B (zh) 电力线工频通信编码纠错方法
JPS632370B2 (ko)
KR100330102B1 (ko) 디지털 정보내의 오류 및 이레이져의 정정방법과 상기 방법의 실행에 적합한 장치
JPH058610B2 (ko)
KR0148004B1 (ko) 착오 정정장치
KR100330642B1 (ko) 오류정정방법및오류정정장치
KR100532373B1 (ko) 디지털 신호의 재생에 있어 에러정정방법
KR100239798B1 (ko) 디지털 신호의 재생에 있어 에러정정방법 및 그에 적용되는 장치
EP0650266A2 (en) An error correction code decoder and a method thereof
JP2694794B2 (ja) 誤り訂正処理方法
JPH0691471B2 (ja) 誤り訂正回路
JP2578739B2 (ja) イレ−ジャ訂正方法
JPH0778968B2 (ja) 軟判定復号方法
US20240063824A1 (en) Bose-chadhuri-hocquenghem (bch) encoder and method for generating a bch signal for navigation signal
JP3099890B2 (ja) Bch符号の誤り訂正装置
JP2796291B2 (ja) 誤り訂正方式
JP2768723B2 (ja) 復号化装置
JP2567598B2 (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: 20091113

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee