KR100236367B1 - 에러 정정 방법 - Google Patents

에러 정정 방법 Download PDF

Info

Publication number
KR100236367B1
KR100236367B1 KR1019910023287A KR910023287A KR100236367B1 KR 100236367 B1 KR100236367 B1 KR 100236367B1 KR 1019910023287 A KR1019910023287 A KR 1019910023287A KR 910023287 A KR910023287 A KR 910023287A KR 100236367 B1 KR100236367 B1 KR 100236367B1
Authority
KR
South Korea
Prior art keywords
pointer
word
words
data
input
Prior art date
Application number
KR1019910023287A
Other languages
English (en)
Other versions
KR920013393A (ko
Inventor
다까시 오까다
가즈히로 야스다
가즈또시 시미즈메
Original Assignee
이데이 노부유끼
소니 가부시끼 가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이데이 노부유끼, 소니 가부시끼 가이샤 filed Critical 이데이 노부유끼
Publication of KR920013393A publication Critical patent/KR920013393A/ko
Application granted granted Critical
Publication of KR100236367B1 publication Critical patent/KR100236367B1/ko

Links

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
    • 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

Abstract

본 발명은 예를들면 소위(1)-ROM에 있어서 Q 계열 또는 P 계열의 에러 정점에 적용하여 적당한 에러 정정 방법에 관한 것이다. 본 발명은 2워드의 패리티 부호와 에러가 발생하고 있다고 추정되는 워드에 대하여 각각 셋트되어 있는 입력 포인터를 사용하여 보다 높은 신뢰성이고 고속으로 실수 정정을 실행할 수 있는 에러 정정 방법을 제공하는 것을 목적으로 한다.

Description

에러 정정 방법
제1도는 본 발명의 한 실시예의 CD-ROM 재생 장치에 의한 Q 계열의 에러 정정 순서를 나타내는 순서도.
제2도는 본 실시예의 CD-ROM 재생 장치에 의한 P 계열의 에러 정정 순서를 나타내는 순서도.
제3도는 CD-ROM의 1 블럭분의 데이타의 포맷선도.
제4도는 CD-ROM의 적부호의 설명도.
제5도는 CD 자체의 적부호의 설명도.
제6도는 CD-ROM의 에러 정정의 전체 흐름을 나타내는 순서도.
제7도는 CD-ROM 재생 장치의 일예를 나타내는 블럭도.
* 도면의 주요부분에 대한 부호의 설명 *
4 : CD 재생 장치 5 : CD-ROM용의 데코드 장치
6 : 디스크 12 : CD 용 데코더
14 : CD-ROM 용의 데코더
[발명의 상세한 설명]
본 발명은 예를들면 소위(1)-ROM에 있어서 Q 계열 또는 P 계열의 에러 정정에 적용하여 적당한 에러 정정 방법에 관한 것이다.
소위 콤팩트 디스크(CD) 재생 장치용의 디스크에 디지탈 데이타를 기록하는 CD-ROM 에서는 다른 콤퓨터 기기와 마찬가지로 비트 실수율이 10-12이하로서 고신뢰성이 필요하게 되어 있다.
일반적으로 CD 자체의 비트 실수율은 10-9정도이므로, CD-ROM에서는 CD 자체의 실수 정정 기능외에 CD 의 98개분의 프레임에서 되는 블럭 단위로서 완결하는 다른 실수 정정 부호를 갖추고 있다. 이 다른 실수 정정 부호는 P 계열 및 Q 계열에서 되는 적부호이다.
제3도는 CD-ROM 의 1블럭분의 데이타 포맷을 나타내고, 제3도에서, 1블럭은 2352바이트(도면상에서는 바이트를 B 로서 나타낸다)의 데이타에서 구성되고, 이 데이타의 내역은 선두에서 순서로 12바이트의 동기 패턴, 4바이트의 절대 시간과 모드를 나타내는 헤더, 2048바이트의 통상 데이타, 4바이트의 실수 검출용의 CRC 부호, 8바이트의 "0"의 패턴, 172바이트의 P 계열의 패리티(P 패리티) 및 104바이트의 Q 계열의 패리티(Q 패리티)로 되어 있다. 4바이트의 CRC 부호는 데이타의 재생시에 그들 P 계열 및 Q 계열의 실수 정정을 행한 후에, 데이타부의 실수 유무를 최종적으로 검사하기 위하여 사용되는 부호이고, CRC 부호의 미치는 범위는 동기 패턴, 헤더 및 통상의 데이타에서 되는 2064바이트의 데이타이다.
또한, 제3도의 포맷은 모드(1)인 경우의 포맷이고, 모드(2)인 경우에는 8바이트의 "0" 패턴이 생략되어 그 대신에 헤더와 통상의 데이타 사이에 8바이트의 서브 헤더가 삽입된다.
제3도의 포맷 데이타내에서 12바이트의 동기 패턴을 제외한 2340바이트의 데이타를 2 분할하여, 2 분할 후의 각각 1170바이트의 데이타에서 되는 데이타 그룹의 한쪽 인터리브의 상태를 제4도에 나타낸다. 제4도에서, 이 데이타 루프의 각 1바이트의 데이타를 선두에서 순서로 D0, D1, ..., D1169 로 하면, 우선 통상의 데이타(D0 D1031)를 24 행 ×43 열로 배열하고, P 패리티의 데이타(D1032 D1117)를 그것에 계속하는 2 행 × 43 열로 배열하고, Q 패리티의 데이타(D1118 D1169)를 최후의 2 행 × 26 열로 배열한다. 이경우, P 계열은 그들 43열의 각 열이고, Q 계열은 2행 × 43열의 배열을 경사로 횡절하는 계열이다. 즉 그들의 43 열의 각 열에 대한 24바이트의 통상 데이타에 각각 2바이트의 P 패리티가 부가되고, 경사 방향의 43바이트의 데이타(2바이트의 P 패리티가 포함한다.)에 각각 2바이트의 Q 패리티가 부가되어 있다.
구체적으로 1워드가 m 비트, 전체의 데이타가 n 워드, 패리티부를 제외하는 통상의 데이타가 k 워드, 에러가 없는 상태에서의 최소 간격이 d 인 가로와체 GF(2m)상에서 정의되는 리드 솔로몬(Reed-Solomon) 부호를 (m, n, k, d) 부호로 한다. 이때 CD-ROM 에서는 1워드가 1바이트이고, P 계열은 2워드의 패리티를 가지는 (8, 26, 24, 3) 부호이고, Q 계열은 같은 2워드의 패리티를 가지는 (8, 45, 43, 3) 부호이다. 즉, CD-ROM 의 에러 정정 부호는 각각 가로와체 GF(28) 상에서 정의되는 리드 솔로몬 부호의 적부호이다. 2워드의 패리티를 가지는 경우에는 1워드의 에러는 정확하게 정정할 수 있고, 2워드의 에러에서도 미리 포인더에 의하여 그 에러의 위치가 나누어져 있을 때에는 그들 에러를 정확하게 정정할 수 있다.
제3도에 나타내는 CD-ROM 의 1블럭분의 데이타는 CD 에서는 각각 24바이트의 데이타에서 되는 98프레임분의 데이타에 대응하고, 디스크에 기록하는 경우에는 C1 계열의 리드 솔로몬 부호와 C2 계열의 리드 솔로몬 부호를 인터리브로서 결합한 CIRC 가 부가된다. 제5도는 이러한 CD 자체의 실수 정정 부호로서의 CIRC 엔코드의 상태를 나타내고, 제5도에 나타나듯이 먼저 각각 24워드(=24바이트)에 데이타 루프(1)를 단위로서 데이타의 스크램블링이 실시되고, 이후에 각 24워드의 데이타에 대하여 각각 4워드의 C2 계열의 피티가 부가되어 데이타 루프(2)가 형성된다. 계속하여 인터리브가 실시된 후에, 각 28워드의 데이타에 대하여 각각 4워드의 C1 계열의 패리티가 부가되어 데이타 그룹(3)이 형성된다. CD 자체의 적부호에 대하여는 예를들면 특개소 57-4629호 공보 및 특개소 57-6417 호 공보 등에 개시되어 있으므로 상세한 설명은 생략한다.
즉, C2 계열은 (m=8, n=28, k=24, d=5)의 리드 솔로몬 부호이고, C1 계열은 (8, 32, 28, 5)의 리드 솔로몬 부호이다. 그리고, 포인터를 사용하지 않는 경우에서도, C1 계열의 패리티 부호에 의하여 각 32워드의 데이타에 대하여 2워드의 랜덤 에러를 정정할 수 있고, C2 계열의 패리티 부호에 의하여 각 28워드의 데이타에 대하여 2워드의 버스트 에러를 정정할 수 있다. 그러나, C1 계열 및 C2 계열의 에러 정정 부호를 사용하여도 최종적으로 정정할 수 없는 데이타가 남은 경우에는, 그 데이타는 그 데이타가 바르지 않다고 추정되는 것을 나타내는 포인터가 셋트된다.
제6도를 참조하여 CD-ROM 의 에러 정정의 전체 흐름을 설명한다. 이경우, 제3도의 각 블럭 데이타에 CD 자체의 C1 계열 및 C2 계열에서 되는 적부호가 부가되고, 이결과에 EFM 변조 등을 실시한 신호가 디스크에 기록되어 있다. 우선 CD-ROM 의 재생 장치에서는 제6도의 스텝(100)에서, CD 의 1프레임분에 상당하는 데이타를 디스크에서 순차 독취하여 EFM 복조 등을 실시한다. 그리고, 데이타의 소정 병체를 행함으로 스텝(101)에서 각각 32워드에서 되는 각 프레임에 대하여 CD 의 C1 계열의 에러 정정을 행함으로서 28워드의 데이타를 얻는다.
그러나, 예를들면 32워드중에 3워드 이상의 에러가 포함되어 있도록 하는 경우에는 에러 정정을 완전히 행할 수 있다. 그래서, 에러 정정이 완전하지 않을 때에는, 스텝 (102)에서, 28워드의 전데이타에 대하여 각각의 데이타가 정확하지 않다고 추정되는 것을 나타내는 C1 포인터를 셋트한다.
즉 28워드의 데이타 각각에 대하여 C1 포이터를 하이 레벨 "1"에 설정한다. 실제로는 C1 계열에서 2워드의 에러 정정을 행했을 때에는, 안전을 위하여 전 데이타에 대하여 C1 포인터를 셋트하도록 하는 방법도 제안되어 있다. 단 C1 포이터가 셋트되어 있는 데이타중에는 정확한 데이타도 포함되어 있으므로, 그 C1 포이터는 에러가 존재하는 가능성의 어느 데이타의 목안으로 생각하여도 좋다.
그후, 스텝(103)에서, 이제까지 C1 계열의 데코드를 행한 108프레임분의 데이타에서 4프레임 걸러 1워드의 데이타를 추출함으로서 모은 28워드의 데이타를 대상으로 C2 계열의 에러 정정을 행한다. C2 계열에서는 28워드내의 4워드가 패리티 워드이고, 28워드의 각각에 대하여 데이타가 잘못하고 있는 가능성이 있는지 어떤지를 나타내는 C1 포인터가 부가되어 있으므로, 이론상은 4워드의 에러 정정을 행할 수 있다. 그러나, C2 계열의 실수 정정을 행하여도 패리티 워드를 제외한 24워드의 에러 정정을 완전하게 행할 수 없는데 있다. 그러한 경우에는 24워드의 전데이타에 대하여 각각의 데이타가 정확하지 않다고 추정되는 것을 나타내는 C2 포인터를 셋트한다. 즉, 24워드의 데이타 각각에 대하여 C2 포인터를 하이 레벨 "1"에 설정한다. 단, C2 포인터로서는 전단에서 공급되는 C1 포인터를 그대로 복제하도록 하는 경우도 있다.
CD 자체의 에러 정정을 실행한 데코더는, 계속하는 스텝(105)에서 제3도에 나타내는 CD 의 98프레임분에 상당하는 CD-ROM 의 1블럭분의 에러 정정후의 2352(=24x98)워드의 데이타와 그 각 워드가 잘못하고 있는지 어떤지의 목안으로 되는 2352비트의 C2 포인터를 CD-ROM 의 데코더에 공급한다. 이것에 대응하여 CD-ROM 의 데코더는 우선 제4도에 나타내는 Q 계열의 각각 45워드의 데이타(이내의 2워드가 패리티 워드)에 대하여 Q 계열의 에러 정정을 행하고(스텝 106), 에러 정정이 완전하게 할 수 없던 것으로 추정되는 워드에 대하여는 포인터를 하이 레벨 "1"에 셋트한다 (스텝 107).
그후, CD-ROM 의 데코더는 제4도의 P 계열의 각각 26워드의 데이타(이내의 2워드가 패리티 워드)에 대하여 P 계열의 에러 정정을 행하고 (스텝 109), 그것에서도 에러 정정이 완전하게 할 수 없다고 추정되는 워드에 대하여는 포인터를 "1"에 셋트한다 (스텝 109). 그리고 스텝(110)에서 제3도의 CRC 부호를 사용하여 동기 패턴, 헤더 및 통상 데이타의 실수 검출을 행한 후에, CD-ROM 의 데코더는 에러 정정후의 데이타, 각 데이타에 각각 부가되어 있는 포인터 및 그 CRC 부호에 의하여 실수 검출 결과를 포스트 콤퓨터에 공급한다 (스텝 111). 그후, 스텝(112)에서는 다음 데이타의 취입 등이 실행된다.
이와같이 CD-ROM 에서는, 통상의 CD 의 실수 정정 부호에 가하여 P 계열과 Q 계열에서 되는 적부호가 부가되어 있으므로, 비트 실수율에서 10-12이하라는 고신뢰성이 확보되어 있다.
그러나, CD-ROM 의 신뢰성을 보다 높히는 것이 요구되고 있다. 신뢰성을 높히는 것은 실수 정정 확률 및 정정 불능 확률을 작게 하는 것을 의미한다. 신뢰성을 높히고, 실수 정정을 고속으로 실행할 수 있도록 하여, 리얼타임에서 CD-ROM 데이타의 재생을 할 수 있도록 하는 것이 요구되고 있다.
이것에 관하여 종래의 CD-ROM 의 P 계열 및 Q 계열의 실수 정정은 소프트웨어로서 복잡한 계산을 실행함으로서 행하여지고 있으며, 특히 비교적 작은 장치에서 에러 정정 속도를 고속화하는 데는 비방향이었다.
본 발명은 이러한 점에 감안하여, 2워드의 패리티 부호와 에러가 발생하고 있다고 추정되는 워드에 대하여 각각 셋트되어 있는 입력 포인터를 사용하여 보다 높은 신뢰성이고 고속으로 실수 정정을 실행할 수 있는 에러 정정 방법을 제공하는 것을 목적으로 한다.
본 발명에 의한 제1에러 정정 방법은 예를들면 도1에 나타나듯이, (N-2)(N 은 3 이상의 정수) 워드의 데이타에 부가되어 있는 2워드의 패리티 부호와 에러가 발생하고 있다고 추정되는 워드에 대하여 각각 셋트되어 있는 입력 포인터를 사용하여, 다음의 (가) 내지 (라)의 스텝에 의하여, (N-2) 워드 데이타의 에러 정정을 행하고, 에러 정정이 완전하게는 행해지지 않은 것으로 추정되는 데이타 워드에 대하여 각각 셋트되는 출력 포인터를 생성하는 것이다.
(가) 이들 (N-2) 워드의 데이타 및 2워드의 패리티 부호에서 2워드의 신드롬을 구하고 (스텝 114), 2워드의 신드롬에서 실수 위치 (i)을 계산한다(스텝 118).
(나) 실수 위치(i)가 (N-1) 이하이고 실수 위치(i)에서 입력 포인터가 셋트되어 있는 경우에(스텝 119, 120, 121), 입력 포인터가 또다른 2워드 이상의 위치에서 셋트되어 있을 때에는 그 입력 포인터를 그대로 출력 포인터로서 복제한다(스텝 122). 이것은 잘못하고 있는 데이타 워드의 개수가 너무 많아 에러 정정을 할 수 없다고 판단하고, 그 입력 포인터가 정확하다고 판단하는 것을 의미한다. 그 입력 포인터가 다른 1워드 이하의 위치에서 셋트되어 있을 때에는, 그 입력 포인터를 무시하여 실수 위치(i)의 1워드를 정정한다(스텝 123).
(다) 실수 위치(i)가 (N-1) 이하이고 실수 위치(i)에서 입력 포인터가 셋트되어 있는 경우에(스텝 119, 120, 124), 그 입력 포인터가 또다른 2워드 이상의 위치에서 셋트되어 있을 때에는 그 외의 위치에서 2워드 이상의 위치에서 셋트되어 있을때에는, 그외의 위치에서 2워드 이상의 실수가 발생하고 있으므로, 그 실수 위치(i)의 계산을 잘못된 것으로 간주하여, 그 입력 포인터를 그대로 출력 포인터로서 복제한고 (스텝 122). 그 입력 포인터가 다른 1워드의 위치에서 셋트되어 있을 때에는 모든 데이타에 대하여 그 출력 포인터를 셋트한다 (스텝 125). 이것은 실수 위치(i)의 계산 결과의 입력 포인터의 지시값이 모순이고 어느 데이타가 실수인 것인지 불명함으로, 모든 데이타가 잘못하고 있는 가능성이 있다고 추정하는 것을 의미한다. 그 입력 포인터가 다른 워드에서는 셋트되어 있지 않을 때에는 그 실수 위치(i)의 계산 결과가 정확하다고 간주하여 그 실수 위치(i)의 1워드를 정정한다(스텝 123).
(라) 실수 위치(i)가 N 이상인 경우에 (스텝 119, 126) 입력 포인터가 2워드 이상의 위치에서 셋트되어 있을 때에는 그 입력 포인터가 정확하다고 간주하여 그 입력 포인터를 그대로 그 출력 포인터로서 복제하고 (스텝 121), 그 입력 포인터가 1워드 이하의 위치에서 셋트되어 있을 때에는 어느 데이타가 실수인지가 불명하므로, 모든 데이타에 대하여 그 출력 포인터를 셋트한다(스텝 125).
본 발명에 의한 제2에러 정정 방법은 예를들면 제2도에 나타나듯이 (M-2)(M은 3 이상의 정수) 워드의 데이타에 부가되어 있는 2워드의 패리티 부호와 에러가 생기고 있다고 추정되는 워드에 대하여 각각 셋트되어 있는 입력 포인터를 사용하여, 다음의 (가) 내지 (라)의 스텝에 의하여, 그 (M-2) 워드 데이타의 에러 정정을 행하고, 에러 정정이 완전하게는 행하여지지 않은 것으로 추정되는 데이타 워드에 대하여 각각 셋트되는 출력 포인터를 생성하는 것이다.
(가) 이들 (M-2) 워드 데이타 및 2워드의 패리티 부호에서 2워드의 신드롬을 구하고 (스텝 128), 이들 2워드의 신드롬에서 실수 위치(j)를 계산한다(스텝 132).
(나) 실수 위치(j)가 (M-1) 이하이고, 실수 위치(j)에서 그 입력 포인터가 셋트되어 있는 경우에(스텝 133, 134, 135), 그 입력 포인터가 또다른 3워드 이상의 위치에서 셋트되어 있을 때에는 그 입력 포인터가 정확한 것으로 간주하여 그 입력 포인터를 그대로 출력 포인터로서 복제한다(스텝 138). 그 입력 포인터가 다른 2워드의 위치에서 셋트되어 있을때에는 다른 2워드에서의 실수에 의하여 실수 위치(j)의 계산 결과가 틀린 것으로 간주하여 입력 포인터가 셋트되어 있는 2워드를 정정하고 (스텝 137), 그 입력 포인터가 다른 1워드 이하의 위치에서 셋트되어 있을 때에는, 그 입력 포인터를 무시하여 실수 위치(j)의 1워드를 정정한다 (스텝 136).
(다) 실수 위치(j)가 (N-1) 이하이고, 이 실수 위치(j)에서 그 입력 포인터가 셋트되어 있지 않은 경우에 (스텝 133, 134, 139), 그 입력 포인터가 또다른 3워드 이상의 위치에서 셋트되어 있을 때에는 그 입력 포인터가, 정확하다고 간주하여 그 입력 포인터를 그대로 출력 포인터로서 복제한다 (스텝 138). 그 입력 포인터가 다른 2워드에서 셋트되어 있을때에는 2워드의 실수에 의하여 실수 위치(j)의 계산 결과가 틀린 것으로 간주하여 그 입력 포인터가 셋트되어 있는 2워드를 정정한다(스텝 137). 이것은 패리티 워드를 2워드 가져 2개소의 실수 위치가 미리 정확하게 나누어져 있을 때에는 2개소의 실수를 정확하게 정정할 수 있다는 특성을 이용한 것이다. 그 입력 포인터가 다른 1워드의 위치에서 셋트되어 있을 때에는, 잘못하고 있는 데이타가 특정할 수 없으므로 모든 데이타에 대하여 그 출력 포인터를 셋트하고 (스텝 140), 그 입력 포인터가 다른 워드에서는 셋트되어 있지 않을 때에는 그 실수 위치(j)의 1워드를 정정한다 (스텝 136).
(라) 실수 위치(j)가 N 이상인 경우에 (스텝 133, 141), 입력 포인터가 3워드 이상의 위치에서 셋트되어 있을 때에는 입력 포인터가 정확하다고 간주하여 그 입력 포인터를 그대로 출력 포인터로서 복제한고 (스텝 138), 입력 포인터가 2워드로서 셋트되어 있을 때에는, 2워드의 실수에 의하여 실수 위치(j) 값이 N 이상으로 되어 버리고, 2워드의 실수는 바른 것으로 간주하여, 그 입력 포인터가 셋트되어 있는 2워드를 정정한다 (스텝 137), 그 입력 포인터가 다른 1워드 이하의 위치에서 셋트되어 있을 때에는실수의 위치를 특정할 수 없으므로, 모든 데이타에 대하여 그 출력 포인터를 셋트한다 (스텝 140).
이하, 본 발명에 의한 에러 정정 방법의 한 실시예에 대하여 제1도, 제2도 및 제7도를 참조하여 설명한다. 본 예는 CD-ROM 의 에러 정정 방법에 본 발명을 적용한 것이다. 실시예의 정정 방법의 설명전에 그 정정 방법을 사용하는 CD-ROM 재생 장치에 대하여 설명한다.
제7CD-ROM 재생 장치의 일예를 나타내고, 제7도에서, 4는 전체로서 주지의 CD 재생 장치, 5는 전체로서 CD-ROM 용에 부가된 데코드 장치를 나타낸다. CD 재생 장치(4)에서, 6은 디스크, 7은 스핀들 모터, 8은 광학식 헤드, 9는 그들 스핀들 모터(7) 및 광학식 헤드(8)의 동작을 제어하는 서보 회로를 나타내고, 광학식 헤드(8)에서 출력되는 재생 신호(RF)를 RF 증폭기(10)를 거쳐 각각 서보 회로(9) 및 CD 용 데코더(12)에 공급한다. CD 용 데코더(12)는, 재생 신호에 EFM 복조 등을 실시한 후에 제5도에 나타내는 C1 부호와 C2 부호에서 되는 CIRC 를 사용하여 CD 자체의 에러 정정을 행하고, 에러가 정정되어 있지 않다고 추정되는 데이타에 대응하는 C2 포인터를 "1"로 셋트한다. 11은 서로 회로(9)와 CD 용 데코더(12)의 동작 동기를 취하기 위한 제어기 13은 CIRC 용의 RAM 이다.
데코드 장치(5)에서, 14는 CD-ROM 용의 데코더를 나타내고, CD-ROM 용의 데코더(14)에 CD 용의 데코드(12)에서 에러 정정 후의 데이타와 C2 포인터에서 되는 중간 데이타 (DA)를 공급한다. CD-ROM 용의 데코더(14)는, 그 중간 데이타 DA 중의 데이타에 대하여 C2 포이터 및 도 3에 나타내는 P 계열의 패리티 및 Q 계열의 패리티를 사용하여 에러 정정을 행하고, 에러 정정을 할 수 없었던 것으로 추정되는 데이타에 대하여는 포인터를 "1"로 셋트하고, 최후에 CRC 부호를 사용하여 에러 검출을 행한다. 이 에러 정정 후의 데이타, 포인터 정보 및 CRC 부호에 의한 에러 검출 결과는 인터페이스 회로(19)를 거쳐 외부의 포스트 콤퓨터에 공급된다. 15는 그 데코더(14)용의 버퍼 메모리, 16은 CD 재생 장치(4)의 제어기(11)의 동작과 그 데코더(14)의 동작을 동기시키는 제어용 CPU, 17은 ROM, 18은 RAM 이다.
20은 보간 회로, 21은 디지탈/아나로그 (D/A) 변환기를 나타내고, CD 용 데이코더(12)에서 출력되는 중간 데이타를 그들 보간 회로(20) 및 D/A 변환기(21)를 거쳐 도시 생략한 오디오 출력 단자에 공급한다. 디스크(6)에 기록되어 있는 데이타가 오디오 신호인 경우에는 그 보간 회로(20)는 C2 포인터가 셋트되어 있는 데이타에 대하여는 전후의 정상인 데이타를 사용하여 보간을 행하고, 이것에 의하여 오디오 출력 단자에서는 노이즈가 적은 음성 신호가 출력된다.
본 예의 CD-ROM 재생 장치의 재생 동작에 대하여 상세히 설명하는데 그 동작은 제6도의 스텝(106, 109)을 제외한 부분은 종래와 마찬가지이고, 스텝(106, 109)에 대응하는 CD-ROM 용 데코더(14)에 의하여 실행되는 부분만이 다르고 있으므로, 다른 부분의 동작만을 설명한다. 이 경우, CD-ROM 용 데코더(14)는 CD 용 데코더(12)에서 공급되는 중간 데이타(DA)를 도3에 나타내는 1블럭(CD 의 98프레임) 단위에서 처리하여 순차 Q 계열 및 P 계열의 에러 정정을 행한다. 이경우, Q 계열은 (m=8, n=45, k=43, d=3)의 리드 솔로몬 부호, P 계열은 (8, 26, 24, 3)의 리드 솔로몬 부호이고, 에러 정정을 위하여는 각각 2워드의 신드롬이 필요하고, 그 신드롬을 계산하기 위하여는 다음과 같은 검사 행렬(H)을 사용할 필요가 있다.
[수 1]
수(1)에서, P 계열에 대하여 N=25, Q 레벨에 대하여 N=44 이고, d 는 가로와체 GF(28)를 생성하기 위한 다음식으로 나타내는 다항식 G(X)의 원시원이다.
G(X)=X8+X4+X3+X2+1
이때에 공급되는 전 데이타의 개수는 (N+1) 이므로, 그들 데이타를 Wi(i=0, 1,...,N)으로 하면, 2워드의 신드롬(SO) 및 (S1)은 다음의 수(2)에 의하여 계산할 수 있다.
[수 2]
이들 2워드의 신드롬 값은 에러 워드의 개수에 의하여 다음과 같은 경우로 나눌 수 있다.
(1) 에러가 없는 경우
S0=S1=0 으로 된다.
(2) 에러가 1워드 발생한 경우
예를들면 i 번째의 워드(Wi)에 에러(Ei)가 발생한 것으로 하면, 다음의 수(3)가 성립한다.
[수 3]
S0=Ei
S1=diEi
이 관계식에서 i 는 다음의 수(4)로서 구할 수 있다.
[수 4]
i=log(S1/S0)
수 4 의 계산은 예를들면 변환 테이블로서의 ROM 등을 사용함으로서 쉽게 실행할 수 있다. 즉, 에러가 1워드 뿐일때에는 2워드의 신드롬에서 에러의 위치(i)가 그 에러값(Ei)을 알 수 있고, 에러의 검출 및 정정을 행할 수 있다.
(3) 에러가 2워드 발생한 경우
예를들면 2워드의 데이타(Wm) 및 (Wn)에 각각 에러 (Em) 및 (En)가 발생한 것으로 하면 (m=n), 다음의 수(5)가 성립한다.
[수 5]
S0=Em+En
S1=mEm+nEn
이 수(5)를 Em 및 En 에 대하여 풀면 다음과 같이 된다.
[수 6]
이것은 미리 에러의 위치(m) 및 (n) 이 나누어져 있으면, 에러의 값(Em) 및 (En)을 계산에 의하여 구할 수 있는 것을 의미한다. 따라서 예를들면 Q 계열의 에러 정정인 경우에는, CD 자체의 에러 저엉에 의하여 구하여지는 C2 포인터에 의하여 2워드의 에러 위치가 나누어지면, Q 계열의 에러 정정에 의하여 2워드의 에러를 완전하게 정정할 수 있다.
역으로, 에러가 2워드 이상이고 에러의 위치를 특정할 수 없는 경우에는, 그 에러를 정정할 수 없고 소실 정정이 발생함으로, 그 패리티 워드를 제외하는 (N-1)개의 데이타에 대하여는 모두 에러가 존재하는 것으로 추정하여 포인터를 "1"에 셋트할 필요가 있다.
제1도를 참조하여 본 예의 CD-ROM 용 데코더(14)에 의한 Q 계열의 에러 정정 방법(제6도의 스텝 106, 107에 대응하는 부분이다.)에 대하여 스텝 순으로 설명한다. 이 Q 계열의 에러 정정에서는 입력되는 45워드의 데이타 및 이들 각 데이타의 정오를 나타내는 43 비트의 출력용 포인터가 생성된다. C2 포인터 및 출력용의 포인터에 대한 개개의 비트는 각각 대응하는 데이타 워드가 정확하다고 추정될 때에, 로우 레벨 "0"로 되고, 잘못하여 있다고 추정될 때에 하이 "1"로 된다.
<스텝 113>
Q 계열의 정저 단위인 도 4 에 나타내는 45워드의 데이타를 취입한다. 이것과 병행하여 45 비트의 C2 포인터도 취입된다.
<스텝 114>
수 2(N=44)를 사용하여 2워드의 신드롬(So) 및 (S1)을 계산한다.
<스텝 115>
이들 2워드의 신드롬이 공히 0 인지 어떤지를 조사한다. 공히 0 일 때에는 CD-ROM 데코더(14)의 동작은 스텝(116)으로 이행하고, 그것 이외일 때에는 CD-ROM 데코더(14)의 동작은 스텝(118)으로 이행한다.
<스텝 116>
2워드의 신드롬이 공히 0 인 경우에는 모든 데이타는 정확하다고 추정됨으로, 각 데이타의 정오를 나타내는 43 비트(패리티 워드용의 2 비트는 필요가 없다)의 출력 포인터를 모두 로우 레벨 "0"로 설정하여 스텝(117)으로 진행한다.
<스텝 117>
패리티 워드를 제외하는 43워드의 데이타 및 대응하는 43 비트의 출력용 포인터를 P 계열의 에러 정정용 메모리에 기입하고, 다음의 45워드 데이타 등을 취입한다.
<스텝 118>
2워드의 신드롬을 사용하여 수 4 의 관계에서 실수 위치(i)를 계산한다. 45워드내에서 잘못하고 있는 것이 정확하게 1 개이면, 실수 위치(i)는 0 i 44 를 충족하는 정수이다. 한편, 잘못하고 있는 워드의 개수가 2 개 이상일때에는 그 위치(i)는 45 이상의 값으로 되던지, 그 실제의 실수 위치는 다른 44 이하의 값으로 된다. 단, 그 위치(i)가 2 개 이상의 실수 위치에 대한 어느 것인가 1 개의 위치에 일치하는 경우도 가질 수 있다.
<스텝 119>
그 실수 위치(i)가 44 이하인지 어떤지를 조사하고, 위치(i)가 44 이하일 때에는 스텝(120)으로 진행하고, 위치(i)가 45 이상일 때에는 스텝(126)으로 진행한다.
<스텝 120>
계산으로 구하여진 실수 위치(i)의 워드에 C2 포이터 C2P 가 셋트되어 있는지 어떤지, 즉 그 위치(i)의 워드에 대응하는 C2 포인터가 "1"인지 어떤지를 조사한다. C2 포인터가 셋트되어 있을 때에는 스텝(121)으로 나아가고, 셋트되어 있지 않을 때에는 스텝(124)으로 나아간다.
<스텝 121>
실수 위치(i) 이외의 위치에서도 C2 포인터 C2P 가 2 개 이상 셋트되어 있는지 어떤지를 조사한다.
<스텝 122>
C2 포인터가 위치(i) 이외에서도 2 개 이상 셋트되어 있을 때에는 C2 포인터는 바르다고 생각된다. 그 위치(i)를 포함하면, 3워드 이상의 에러가 존재하여 Q 계열에서는 에러 정정을 행할 수 없으므로, 에러 정정을 행하는 것없이 C2 포인터를 그대로 출력용의 포인터로서 복제한 후에 스텝(117)으로 이행한다.
<스텝 123>
C2 포인터가 위치(i) 이외에서는 1 개 이하 밖에 셋트되어 있지 않을 때에는 에러는 위치(i)에만 존재하는 것으로 간주한다. 즉, C2 포인터가 위치(i) 이외에서는 셋트되어 있지 않을 때에는 명확하게 에러는 위치(i)의 워드에만 존재한다. C2 포인터가 위치 (i) 이외에서 1 개만 셋트되어 있을 때는, 수 4 에서 위치(i)가 구하여져 있으므로, 그 위치 (i) 이외에서의 셋트는 틀린 것으로 간주하는 것이 타당하다. 그래서, 수 3 에서 그 위치(i)의 1워드의 에러 (Ei)을 구하고, 에러 값을 사용하여 그 위치(i)의 에러 정정을 행하여, 출력용의 포인터를 모두 "0"로 설정한 후에, 스텝(117)으로 이행한다.
<스텝 124>
스텝(120)에서 위치(i)에 C2 포인터가 셋트되어 있지 않을 때에는, 이 스텝(124)에서 다른 위치에 셋트되어 있는 C2 포인터의 수를 구한다. 그리고, 다른 위치에서 C2 포인터가 셋트되어 있지 않을 때에는, 스텝(123)으로 이행하여 그 위치(i)의 1워드의 에러 정정을 행한다. 다른 위치에서 C2 포인터가 2 개 이상 셋트되어 있을 때에는 2 개 이상의 에러 존재에 의하여 수 4 에 의한 위치(i)의 계산 결과가 틀린 것으로 간주하는 것이 타당하다. 그래서, C2 포인터가 바른 것으로 간주하여 스텝(122)으로 이행하여, 에러 정정을 행하지 않고, C2 포인터를 그대로 출력용의 포인터로서 복제한다.
이것에 관하여, 다른 위치에서 C2 포인터가 2 개만 셋트되어 있을 때에는 수 6 을 사용하면, 2워드분의 에러를 구할 수 있다. 그러나 Q 계열의 에러 정정 후에는 P 계열의 에러 정정을 행하도록 되어 있으므로, 이 계열의 에러 정정에서는 실수 검출 능력을 높히기 위하여 오히려 2워드의 에러 정정은 행하지 않도록 하고 있다.
<스텝 125>
스텝(124)에서 위치(i) 이외에서 셋트되어 있는 C2 포인터의 개수가 1 개일 때에는 C2 포인터 에러의 지시값과 수(4)에 의한 에러 위치(i)는 모순이다. 따라서 정확한 에러 위치는 특정할 수 없고, 43 개의 워드 전부가 잘못하고 있는 가능성이 있다고 추정하여, 이 스텝(125)에서는 이들 43 개의 워드에 대응하는 출력용의 포인터의 정부를 "1"로 설정한다. 이후에서 CD-ROM 용의 데코더(14)의 동작은 스텝(117)으로 이행한다.
<스텝 126>
스텝(119)에서 구하여진 위치(i)가 45 이상인 경우에는, 이 스텝(126)에서, "1"로 설정되어 있는 C2 포인터의 개수를 조사한다. 그 위치 (i)가 45 이상인 것은 에러 워드의 개수가 2 개 이상이기 때문으로 생각되고, "1"로 설정되어 있는 C2 포인터의 개수가 2 개 이상일 때에는, C2 포인터는 바른 것으로 간주할 수 있다. 그래서 이 경우는, 스텝(122)으로 이행하여 C2 포인터를 그대로, 출력용이 포이터로서 복제한다. 한편, C2 포인터가 셋트되어 있는 워드의 개수가 1 개 이하일 때에는 C2 포인터와 위치(i)의 계산 결과가 모순이므로, 스텝(125)으로 이행하여 모든 포인터로 셋트한다.
이상의 스텝에 의하여 Q 계열의 에러 정정이 행하여진다
다음에 제2도를 참조하여 본 예의 CD-ROM 용 데코더(14)에 의한 P 계열의 에러 정정 방법(제6도의 스텝 108, 109에 대응하는 부분이다.)에 대하여 스텝 순으로 설명한다. P 계열의 에러 정정에서는 입력되는 26워드의 데이타 및 Q 계열의 에러 정정에서 부가된 26 비트의 포인터를 처리함으로서, 출력용의 24워드 데이타 및 이들 각 데이타의 정오를 나타내는 24 비트의 출력용 포인터가 생성된다. 공급된 포인터 및 출력용의 포인터에 대한 개개의 비트는 각각 대응하는 데이타 워드가 정확하다고 추정될 때에 로우 레벨 "0"로 되고, 잘못하고 있다고 추정될때에 하이 레벨 "1"로 된다.
<스텝 127>
P 계열의 정정 단위인 도 4 에 나타내는 26워드의 데이타를 취입한다. 이것과 병행하여 26 비트의 Q 계열의 포인터도 취입된다.
<스텝 128>
수 2 (N=25)를 사용하여 2워드의 신드롬(S0) 및 (S1)을 계산한다.
<스텝 129>
이들 2워드의 신드롬이 공히 0 인지 어떤지를 조사한다. 공히 0 일 때에는 CD-ROM 데코더(14)의 동작은 스텝(130)으로 이행하고, 그것 이외일 때에는 CD-ROM 데코더(14)의 동작은 스텝(132)으로 이행한다.
<스텝 130>
2워드의 신드롬이 공히 0 인 경우에는 모든 데이타는 정확하다고 추정됨으로, 각 데이타의 정오를 나타내는 24 비트(패리티 워드용의 2 비트는 필요없다)의 출력 포인터를 모두 로우 레벨 "0"로 설정하여 스텝(131)으로 진행한다.
<스텝 131>
패리티 워드를 제외한 24워드의 데이타 및 대응하는 24 비트의 출력용 포인터를 Q 계열의 에러 정정용의 메모리에 기입하고, 다음 26워드의 데이타 등을 취입한다.
<스텝 132>
2워드의 신드롬을 사용하여 수 4 의 관계에서 실수 위치(j)를 계산한다. 26워드내에서 잘못하고 있는 것이 정확하게 1 개이면, 그 실수 위치(j)는 0 j 25 를 충족하는 정수이다. 한편, 잘못하고 있는 워드의 개수가 2 개 이상일때에는 그 위치(j)는 26 이상의 값으로 되던지, 실제의 실수 위치와는 다른 25 이하인 값으로 된다. 단, 그 위치(j)가 2 개 이상의 실수 위치의 어느 것인가 1 개의 위치에 일치하는 경우도 가질 수 있다.
<스텝 133>
실수 위치(j)가 25 이하인지 어떤지를 조사하고, 위치(j)가 25 이하일 때에는 스텝(134)으로 진행하고, 위치(j)가 26 이상일 때에는 스텝(141)으로 나아간다.
<스텝 134>
계산에서 얻어진 실수 위치(j)의 워드에 Q 계열의 포인터가 셋트되어 있는지 어떤지, 즉 그 위치(j)의 워드에 대응하는 포인터가 "1"인지 어떤지를 조사한다. 그 포인터가 셋트되어 있을 때에는 스텝(135)으로 진행하고, 셋트되어 있지 않을 때에는 스텝(139)으로 진행한다.
<스텝 135>
실수 위치(j) 이외의 위치에서 Q 계열의 포인터가 셋트되어 있는 워드의 개수를 조사한다. 이 경우에는 Q 계열의 포인터가 위치(j) 이외에서 셋트되어 있는 개수를 1 개 이하, 2 개 및 3 개 이상의 경우로 나눈다.
<스텝 136>
포인터가 위치(j) 이외에서는 1 개 이하밖에 셋트되어 있지 않을 때에는, 에러는 위치(j) 에만 존재하는 것으로 간주한다. 즉, 그 포인터가 위치(j) 이외에서는 셋트되어 있지 않을 때에는 명확하게 에러는 위치(j)의 워드에만 존재한다. 그 포인터가 위치(j) 이외에서 1개만 셋트되어 있을 때에는 수 4 에서 위치(j)가 구하여져 있으므로, 그 위치(j) 이외에서의 셋트는 틀림이 있다고 간주하는 것이 타당하다. 수 3 에서 그 위치(j)의 1워드의 에러 값(Ej)을 구하고, 이 에러 값을 사용하여 그 위치(j)의 에러 정정을 행하여, 출력용의 포인터를 모두 "0"으로 설정한 후에, 스텝(131)으로 이행한다.
<스텝 137>
스텝(135)에서 그 포인터가 위치(j) 이외의 2워드로서 셋트되어 있을 때에는 그 위치(j) 이외의 2워드로서 에러가 발생하고 있는 것으로 간주한다. 이것은 그 위치(j) 이외의 2워드 에러에 의하여, 수 4 에 의하여 잘못된 위치(j)가 계산된 것으로 간주하는 것이다. 미리 2워드의 에러 위치가 정확하게 나누어져 있는 경우에는 수 6 에 의하여 2워드의 에러값을 정확하게 계산하여, 이 값을 사용하여 2워드의 에러를 정확하게 정정할 수 있다. 그래서 그 위치(j) 이외에서 포인터가 셋트되어 있는 2개의 워드 에러 정정을 행하여 출력용의 포인터를 모두 "0"으로 설정한 후에, 스텝(131)으로 이행한다.
<스텝 138>
Q 계열의 포인터가 위치(j) 이외에서도 3 개 이상 셋트되어 있을 때에는, Q 계열의 포인터는 바르다고 생각된다. 그 위치(j)를 포함하면, 3워드 이상의 에러가 존재하여 P 계열에서도 에러 정정을 행할 수 없으므로, 에러 정정을 행하지 않고, Q 계열에서의 입력 포인터를 그대로 출력용의 포인터로서 복제한 후에 스텝(131)으로 이행한다.
<스텝 139>
스텝(134)에서 위치(j)에 Q 계열의 포인터가 셋트되어 있지 않을 때에는 이 스텝(139)에서 다른 위치에 셋트되어 있는 포인트의 수를 구한다. 그리고, 다른 위치에서 그 포인터가 셋트되어 있지 않을 때에는, 스텝(136)으로 이행하여 그 위치(j)의 1워드의 에러 정정을 행한다. 다른 위치에서 그 포인터가 2 개 셋트되어 있을 때에는 그들 2 개의 에러 존재에 의하여 수 4에 의한 위치(j)의 계산 결과가 틀린 것으로 간주하는 것이 타당하다. 그래서 Q 계열의 포인터가 바르다고 간주하여 스텝(137)으로 이행하여, Q 계열의 포인터에 의하여 지시되는 2워드의 에러 정정을 행한다. 다른 장치에서 그 포인터가 3 개 이상 셋트되어 있을 때에는 스텝(138)으로 이행하여 그 포인터를 출력용의 포인터로서 그대로 복제한다.
이것에 관하여, Q 계열에서는 2워드의 에러 정정을 행하지 않음에도 불구하고 P 계열에서는 2워드의 에러 정정을 행하는 것은 Q 계열에서는 에러 검출 능력보다도 에러 정정 능력을 중시하고 있기 때문이다.
<스텝 140>
스텝(139)에서 위치(j) 이외에서 셋트되어 있는 Q 계열의 포인터 개수가 1 개 일 때에는 그 포인터 에러의 지시값과 수(4)에 의한 에러의 위치(j)는 모순이다.
따라서 정확한 에러 위치를 특정할 수 없고, 24 개의 워드 전부가 잘못하고 있는 가능성이 있다고 추정하여, 이 스텝(140)에서는 24 개의 워드에 대응하는 출력용의 포인터의 전부를 "1"로 설정한다. 이후에서 CD-ROM 용의 데코더(14)의 동작은 스텝(131)으로 이행한다.
<스텝 141>
스텝(133)에서 구하여진 위치(j)가 26 이상인 경우에는 이 스텝(141)에서, "1"로 설정되어 있는 Q 계열의 포인터 개수를 조사한다. 그 위치(j)가 26 이상인 것은 에러 워드의 개수가 2 개 이상이기 때문이라 생각된다. 그러나, "1"에 설정되어 있는 포인터의 개수가 2 개일 때에는 그 포인터는 바른 것으로 간주할 수 있으므로, 스텝(137)으로 이행하여 포인터가 지시하는 2워드의 에러 정정을 행한다. 셋트되어 있는 포인터의 개수가 3 개 이상인 경우에는 에러 정정을 행할 수 없으므로, 스텝(138)으로 이행하여 그 포인터를 그대로 출력용의 포인터로서 복제한다. 한편, 그 포인터가 셋트되어 있는 워드의 개수가 1 개 이하일 때에는 그 포인터와 위치(j)의 계산 결과가 모순이므로, 스텝(140)으로 이행하여 모든 포인터를 셋트한다.
이상의 스텝에 의하여 P 계열의 에러 정정이 행하여진다.
상술한듯이 본 예에 의하면, Q 계열에서는 에러 검출 출력을 높게 하도록 하여, P 계열에서는 에러 정정 능력을 높게 하도록 하고 있으므로 전체로서 보정정 확률 및 정정 불능 확률을 보다 저감할 수 있다. Q 계열 및 P 계열의 쌍방에서 복잡한 계산은 수 4 의 계산 정도이므로(이것도 ROM 테이블 등에 의하여 용이하게 실행된다), 에러 정정을 매우 고속으로 리얼 타임으로서 실행할 수 있다.
또한, 본 발명은 상술의 실시예에 한정되지 않고, 예를들면 자기테이프를 기록 매체로 하는 디지탈 방식의 기록 재생 방법에 적용하는 등, 본 발명의 요지를 일탈하지 않는 범위에서 여러가지의 구성을 취득하는 것은 물론이다.
본 발명에 의하면, 비교적 용이한 1 개의 실수 위치(i) 또는 (j)를 구하는 계산을 행하고, 그 실수 위치 (i) 또는 (j)를 입력 포인터가 셋트되어 있는 위치와 비교할 뿐으로 고속으로 실수 정정을 실행할 수 있는 이익이 있다. 입력 포인터가 셋트되어 있는 워드 수에 따라 나누고 있으므로, 오정정 확률 및 정정 불능 확률을 낮게 할 수 있는 이익이 있다.

Claims (2)

  1. (정정) (N-2 ; N 은 3 이상의 정수) 워드의 데이터에 부가되어 있는 2워드의 패리티 부호와 에러가 발생하고 있으면, 추정되는 워드에 대하여 각각 셋트되어 있는 입력 포인터를 사용하여, 다음의 (가) 내지 (라)의 단계에 의하여, 상기 (N-2) 워드의 데이터에 대한 에러 정정을 행하고, 에러 정정이 완전하게 행하여지지 않은 것으로 추정되는 데이터 워드에 대하여 각각 셋트되는 출력 포인트를 생성하는 에러 정정 방법에 있어서,
    (가) 상기 (N-2) 워드의 데이터 및 2워드의 패리티 부호에서 2워드의 신드롬을 구하고, 2워드의 신드롬에서 실수 위치(i)를 계산하는 단계와 ;
    (나) 상기 실수 위치(i)가 (N-1) 이하이고 실수 위치(i)에서 상기 입력 포인터가 셋트되어 있는 경우에, 상기 입력 포인터가 또다른 2워드 이상의 위치에서 셋트되어 있을때에는 상기 입력 포인터를 그대로 상기 출력 포인터로서 복제하고, 상기 입력 포인터가 다른 1워드 이하의 위치에서 셋트되어 있을 때에는 상기 실수 위치(i)의 1워드를 정정하는 단계와 ;
    (다) 상기 실수 위치(i)가 (N-1) 이하이고 실수 위치(i)에서 상기 입력 포인터가 셋트되어 있는 경우에, 상기 입력 포인터가 또다른 2워드 이상의 위치에서 셋트되어 있을때에는 상기 입력 포인터를 그대로 상기 출력 포인터로서 복제하고, 상기 입력 포인터가 다른 1워드 이하의 위치에서 셋트되어 있을 때에는 모든 데이터에 대하여 상기 출력 포인터를 셋트하고, 상기 입력 포인터가 다른 워드에서는 셋트되어 있지 않을 때에는 상기 실수 위치(i)의 1워드를 정정하는 단계 및 ;
    (라) 상기 실수 위치(i)가 N 이상인 경우에, 상기 입력 포인터가 2워드 이상의 위치에서 셋트되어 있을 때에는 상기 입력 포인터를 그대로 상기 출력 포인터로서 복제하고, 상기 입력 포인터가 1워드 이하의 위치에서 셋트되어 있을 때에는 모든 데이터에 대하여 상기 출력 포인터를 셋트하는 단계를 포함하는 것을 특징으로 하는 에러 정정 방법.
  2. (정정) (M-2 ; M 은 3 이상의 정수) 워드의 데이터에 부가되어 있는 2워드의 패리티 부호와 에러가 발생하고 있다고 추정되는 워드에 대하여 각각 셋트되어 있는 입력 포인터를 사용하여, 다음의 (가) 내지 (라)의 단계에 의하여, 상기 (M-2) 워드의 데이터의 에러 정정을 행하고 에러정정이 완전히 행하여지지 않은 것으로 추정되는 데이터 워드에 대하여 각각 셋트되는 출력 포인트를 생성하는 에러 정정 방법에 있어서,
    (가) 상기 (M-2) 워드의 데이터 및 2워드의 패리티 부호에서 2워드의 신드롬을 구하고, 2워드의 신드롬에서 실수 위치(j)를 계산하는 단계와 ;
    (나) 상기 실수 위치(j)가 (M-1) 이하이고 실수 위치(j)에서 상기 입력 포인터가 셋트되어 있는 경우에, 상기 입력 포인터가 또다른 3워드 이사의 위치에서 셋트되어 있을때에는 상기 입력 포인터를 그대로 상기 출력 포인터로서 복제하고, 상기 입력 포인터가 다른 2워드 이하의 위치에서 셋트되어 있을 때에는 상기 입력 포인터가 셋트되어 있는 2워드를 정정하고 상기 입력 포인터가 다른 1워드 이하의 위치에서 셋트되어 있을 때에는 상기 실수 위치(j)의 1워드를 정정하는 단계와 ;
    (다) 상기 실수 위치(j)가 (N-1) 이하이고 실수 위치(j)에서 상기 입력 포인터가 셋트되어 있는 경우에, 상기 입력 포인터가 다른 3워드 이상의 위치에서 셋트되어 있을때에는 상기 입력 포인터를 그대로 상기 출력 포인터로서 복제하고, 상기 입력 포인터가 다른 2워드 이하의 위치에서 셋트되어 있을 때에는 상기 입력 포인터가 셋트되어 있는 2워드를 정정하고, 상기 입력 포인터가 다른 1워드의 위치에서 셋트되어 있을때는 모든 데이터에 대하여 상기 출력 포인터를 셋트하고, 상기 입력 포인터가 다른 워드에서는 셋트되어 있지 않을 때에는 상기 실수 위치(j)의 1워드를 정정하는 단계 및 ;
    (라) 상기 실수 위치(j)가 N 이상인 경우에, 상기 입력 포인터가 3워드 이상의 위치에서 셋트되어 있을 때에는 상기 입력 포인터를 그대로 상기 출력 포인터로서 복제하고, 상기 입력 포인터가 2워드에서 셋트되어 있을 때에는 상기 입력 포인터가 셋트되어 있는 2워드를 지정하고, 상기 입력 포인터가 1워드 위치에서 셋트되어 있을 때에는 모든 데이터에 대하여 상기 출력 포인터를 셋트하는 단계를 포함하는 것을 특징으로 하는 에러 정정 방법.
KR1019910023287A 1990-12-21 1991-12-18 에러 정정 방법 KR100236367B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2413508A JPH04222029A (ja) 1990-12-21 1990-12-21 エラー訂正方法
JP90-413508 1990-12-21

Publications (2)

Publication Number Publication Date
KR920013393A KR920013393A (ko) 1992-07-29
KR100236367B1 true KR100236367B1 (ko) 1999-12-15

Family

ID=18522137

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019910023287A KR100236367B1 (ko) 1990-12-21 1991-12-18 에러 정정 방법

Country Status (3)

Country Link
US (1) US5408477A (ko)
JP (1) JPH04222029A (ko)
KR (1) KR100236367B1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5592404A (en) * 1993-11-04 1997-01-07 Cirrus Logic, Inc. Versatile error correction system
US5581715A (en) * 1994-06-22 1996-12-03 Oak Technologies, Inc. IDE/ATA CD drive controller having a digital signal processor interface, dynamic random access memory, data error detection and correction, and a host interface
US5956757A (en) * 1996-03-22 1999-09-21 Adaptec, Inc. Method and apparatus for generating addresses
US5838695A (en) * 1996-12-30 1998-11-17 Winbond Electronics Corp. Method and apparatus for performing Reed-Solomon Product-like decoding of data in CD-ROM format
US5920578A (en) * 1997-04-23 1999-07-06 Cirrus Logic, Inc. Method and apparatus for efficiently processing a multi-dimensional code
US6048090A (en) * 1997-04-23 2000-04-11 Cirrus Logic, Inc. Error correction and concurrent verification of a product code
US5974580A (en) * 1997-07-23 1999-10-26 Cirrus Logic, Inc. Concurrent row/column syndrome generator for a product code
US6052815A (en) * 1997-11-14 2000-04-18 Cirrus Logic, Inc. ECC system for generating a CRC syndrome over randomized data in a computer storage device
US5996105A (en) * 1997-11-14 1999-11-30 Cirrus Logic, Inc. ECC system employing a data buffer for storing codeword data and a syndrome buffer for storing error syndromes
US5991911A (en) * 1997-11-14 1999-11-23 Cirrus Logic, Inc. Concurrent generation of ECC error syndromes and CRC validation syndromes in a DVD storage device
US6076165A (en) * 1998-01-16 2000-06-13 Sony Corporation Method for authenticating digital recording devices
US6457156B1 (en) * 1998-01-29 2002-09-24 Adaptec, Inc. Error correction method
US6047395A (en) * 1998-01-30 2000-04-04 Cirrus Logic, Inc. Error correction processor for correcting a multi-dimensional code by generating an erasure polynomial over one dimension for correcting multiple codewords in another dimension
US6272659B1 (en) 1998-05-18 2001-08-07 Cirrus Logic, Inc. Error correction code processor employing adjustable correction power for miscorrection minimization
JP3214478B2 (ja) * 1998-12-28 2001-10-02 日本電気株式会社 誤り訂正復号装置
US6405343B1 (en) * 1999-05-04 2002-06-11 Oak Technology, Inc. ECC Q-parity checkbyte indexing
TW441195B (en) * 1999-07-16 2001-06-16 Via Tech Inc Signal decoding method
TW468158B (en) * 2000-06-16 2001-12-11 Ali Corp Disc decoding method and system
US6594796B1 (en) * 2000-06-30 2003-07-15 Oak Technology, Inc. Simultaneous processing for error detection and P-parity and Q-parity ECC encoding
JP2002118471A (ja) * 2000-10-06 2002-04-19 Hitachi Ltd 記録再生装置及び誤り訂正符号化方法並びに情報記録方法
US20020199153A1 (en) * 2001-06-22 2002-12-26 Fall Thomas G. Sampling method for use with bursty communication channels
JP2005259305A (ja) * 2004-03-15 2005-09-22 Ricoh Co Ltd 情報記録方法、情報記録装置、及び情報記録媒体

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1161565A (en) * 1980-06-20 1984-01-31 Yoichiro Sako Method of error correction
JPS5829237A (ja) * 1981-08-14 1983-02-21 Sony Corp エラ−訂正方法
GB2156555B (en) * 1984-03-24 1988-03-09 Philips Nv Error correction of data symbols
JP2829963B2 (ja) * 1988-05-16 1998-12-02 ソニー株式会社 ディジタルデータ記録/再生装置

Also Published As

Publication number Publication date
KR920013393A (ko) 1992-07-29
JPH04222029A (ja) 1992-08-12
US5408477A (en) 1995-04-18

Similar Documents

Publication Publication Date Title
KR100236367B1 (ko) 에러 정정 방법
US4881232A (en) Method and apparatus for error correction
US4730321A (en) Disk drive with improved error correction code
US7653862B2 (en) Error detection and correction for encoded data
US4750178A (en) Error correction method
JP2920065B2 (ja) データ記録方法、記録装置、再生装置及び再生方法
JPS62217468A (ja) デイジタル情報の記録/再生方法及び装置
US4972416A (en) Error detection and correction method
EP0341863B1 (en) Sector mis-synchronization detection method
US20040030737A1 (en) Algebraic decoder and method for correcting an arbitrary mixture of burst and random errors
KR0140382B1 (ko) Dat의 오류정정을 위한 어드레스 발생회로
JP2605270B2 (ja) エラー訂正及びチエツク装置
JPS63160066A (ja) アドレスデ−タの処理装置
JP2735230B2 (ja) 書き換え形光ディスク装置
JP3219318B2 (ja) 誤り信号訂正装置
JP2647646B2 (ja) 誤り訂正方法
JP3462031B2 (ja) ディスク再生装置
JPS63298777A (ja) エラ−検出訂正方式
JPH0824269B2 (ja) 誤り訂正方法
JPH0344394B2 (ko)
JP2561236B2 (ja) 誤り訂正装置
KR19990049147A (ko) 에러정정방법
JP3524806B2 (ja) 符号誤り訂正方法
JP2692085B2 (ja) エラー訂正方法
JPH05135503A (ja) データ伝送方法

Legal Events

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

Payment date: 20110928

Year of fee payment: 13

EXPY Expiration of term