KR100239798B1 - Error correction method in the reproduction of digital signal and apparatus therefor - Google Patents
Error correction method in the reproduction of digital signal and apparatus therefor Download PDFInfo
- Publication number
- KR100239798B1 KR100239798B1 KR1019970010382A KR19970010382A KR100239798B1 KR 100239798 B1 KR100239798 B1 KR 100239798B1 KR 1019970010382 A KR1019970010382 A KR 1019970010382A KR 19970010382 A KR19970010382 A KR 19970010382A KR 100239798 B1 KR100239798 B1 KR 100239798B1
- Authority
- KR
- South Korea
- Prior art keywords
- error
- plug
- error correction
- equation
- determination
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/14—Digital recording or reproducing using self-clocking codes
- G11B20/1403—Digital recording or reproducing using self-clocking codes characterised by the use of two levels
- G11B20/1423—Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code
- G11B20/1426—Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code conversion to or from block codes or representations thereof
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/14—Digital recording or reproducing using self-clocking codes
- G11B20/1403—Digital recording or reproducing using self-clocking codes characterised by the use of two levels
- G11B20/1423—Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code
- G11B20/1426—Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code conversion to or from block codes or representations thereof
- G11B2020/1461—8 to 14 modulation, e.g. the EFM code used on CDs or mini-discs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
- G11B2020/1836—Error 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) 부호를 사용하여 데이터의 에러를 정정하기 위한 에러정정방법 및 그에 적용되는 장치에 관한 것이다. 이는 디지털 신호의 재생에 있어 리드-솔로몬(Reed-Solomon) 부호를 사용하여 데이터의 에러를 정정하기 위한 에러정정방법에 있어서, 수신신호로부터 신드롬을 계산하는 단계(400단계); 상기 신드롬 계산단계(400단계)에서 계산된 신드롬에 의해 에러갯수 판별식을 이용하여 에러갯수를 판별하는 단계(402단계); 상기 에러갯수 판별단계(402단계)에서 판별된 에러의 개수에 따라 에러정정을 수행하는 단계(404단계); 상기 에러개수 판별단계(402단계)에서 판별된 에러의 개수가 '0'이거나 상기 에러정정단계(404단계)를 수행한 후에 시스템의 상태검색을 수행하는 상태검색단계(406단계); 및 상기 상태 검색단계(406단계)에서 검색된 상태의 양호 여부 및 상기 에러 개수 판별단계(402단계)에서 판별된 에러의 개수가 '3' 이상임을 판단하여 플러그를 "0" 또는 "1"로 설정하는 플러그 설정단계(408단계)를 갖는 C1 디코딩 과정 그리고, 수신신호로부터 신드롬을 계산하는 신드롬 계산단계(500단계); 상기 신드롬 계산단계(500단계)에서 계산된 시드롬에 의해 에러개수 판별식을 이용하여 에러개수를 판별하는 에러개수 판별단계(502단계); 상기 에러개수 판별단계(502단계)에서 판별된 에러의 개수가 '2'로 판단되면 현재의 에러 위치가 상기 C1 디코딩 과정의 플러그 설정단계(408단계)에서 설정된 에러의 위치와 일치하는가를 판단하는 플러그 일치 여부판단단계(504단계); 상기 에러개수 판별단계(502단계) 및/또는 상기 플러그 일치여부 판단단계(504단계)를 통하여 상기 에러개수 판별단계(502단계)에서 판별된 에러개수가 '1'개 이면 '1' 에러 정정을 수행하고, 상기 플러그 일치 여부 판단단계(504단계)의 판단이 현재 검출된 에러의 위치와 C1 디코딩 과정에서 설정된 에러의 위치가 일치하면 '2' 에러 정정을 수행하는 에러정정단계(506단계); 상기 에러개수 판별단계(502단계)의 판단이 현재 검출된 에러의 개수가 '2'를 초과하면 이레이저 정정여부를 판단하는 이레이저 정정여부 판단단계(508)단계; 상기 이레이저 정정여부 판단단계(508)의 판단이 'ON'이면 플러그의 개수를 판단하는 플러그 개수 제1판단단계(510단계); 상기 플러그 개수 제1판단단계(510단계)에서 판단된 플러그의 개수가 '3' 또는 '4'이면 '3'/'4' 이레이저 정정을 수행하는 '3'/'4' 이레이저 정정단계(512단계); 상기 '3'/'4' 이레이저 정정단계(512단계)에서 '3' 또는 '4' 이레이저 정정이 수행되고 난 후, 이레이저 정정이 올바른 수행 여부를 확인하기 위하여 검산을 수행하는 검산단계(514단계); 상기 플러그 일치 여부 판단단계(504단계) 및/또는 상기 이레이저 정정여부 판단단계(508단계)를 통하여 상기 플러그 이치 여부 판단단계(504단계)의 판단이 현재 검출된 에러의 위치와 C1 디코딩 과정에서 설정된 에러의 위치가 일치하지 않거나 또는 상기 이레이저 정정여부 판단단계(508)의 판단이 'OFF'이면 플러그의 개수를 판단하는 플러그 개수 제2판단단계(516단계); 상기 신드롬 계산단계(500단계) 내지 상기 플러그 개수 제2판단단계(516)가 수행되고 난 후 플러그를 설정하는 플러그 설정단계(518단계)를 갖는 C2 디코딩 과정을 포함한다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to data error correction in digital signal reproduction, and more particularly, to an error correction method for correcting an error in data using a Reed-Solomon code and an apparatus applied thereto. In the error correction method for correcting an error of data using a Reed-Solomon code in the reproduction of a digital signal, the method comprising: calculating a syndrome from a received signal (step 400); Determining an error number using an error number determination equation based on the syndrome calculated in the syndrome calculation step (step 400); Performing error correction according to the number of errors determined in the error number determination step (402) (step 404); A status search step (406) of performing a status search of a system after performing the error correction step (404) or the number of errors determined in the error number determination step (402); And setting the plug to "0" or "1" by determining whether the state searched in the state search step (406) is good or the number of errors determined in the error number determination step (402) is greater than or equal to '3'. A C1 decoding process having a plug setting step (408), and a syndrome calculation step (500) for calculating a syndrome from the received signal; An error number determination step (502) of determining an error number using an error number determination equation by the seed calculated in the syndrome calculation step (500); If the number of errors determined in the error number determination step (502) is determined to be '2', it is determined whether the current error position matches the error position set in the plug setting step (408) of the C1 decoding process. Determining whether a plug is matched (step 504); If the number of errors determined in the error number determination step (502) through the error number determination step (502) and / or the plug match determination step (504) is '1' error correction is performed. An error correction step (506) of performing a “2” error correction when the location of the error detected in the plug matching determination step (504) and the location of the error set in the C1 decoding process coincide; An erasure correction determination step (508) of determining whether or not the error count determination step (502) determines whether the error is corrected when the number of currently detected errors exceeds '2'; A first plug determination step (510) of determining the number of plugs when the determination of the erasure correction determination step (508) is 'ON'; '3' / '4' erasure correction step for performing '3' / '4' erasure correction when the number of plugs determined in the first determination step (510) is '3' or '4' (Step 512); After the '3' or '4' eraser correction is performed in the '3' / '4' eraser correcting step (step 512), a checking step of performing checking to confirm whether the eraser correction is performed correctly. (Step 514); In the plug matching determination step (504) and / or the erasure correction determination step (508), the determination of the plug value determination step (504) is performed in the position of the currently detected error and the C1 decoding process. A second plug determination step (516) of determining the number of plugs when the position of the set error does not match or the determination of the eraser correction determination (508) is 'OFF'; And a plug setting step (518) for setting a plug after the syndrome calculation step (500) to the plug number second determination step (516) are performed.
Description
본 발명은 디지털 신호의 재생에 있어서 데이터 에러정정에 관한 것으로서, 특히 리드-솔로몬(Reed-Solomon) 부호를 사용하여 데이터의 에러를 정정하기 위한 에러정정방법및 그에 적용되는 장치에 관한 것이다.BACKGROUND OF THE
일반적으로, 디지털 신호의 전송 혹은 기록하는 경우에 있어서 전송 시스템상의 노이즈로 인하여 데이터에 에러가 발생될 수 있다. 이러한 에러를 가능하면 방지하기 위해서 데이터를 전송하거나 기록할 때 체크워드(Check Word)를 부가하여 에러 데이터를 정정한다.In general, when transmitting or recording a digital signal, an error may occur in the data due to noise on the transmission system. In order to prevent such an error if possible, a check word is added when data is transmitted or recorded to correct the error data.
컴팩트 디스크 플레이어에서 에러 정정을 위해 이용되는 부호는 통상적으로 논바이너리(Non-binary) BCH 부호의 한 부류인 리드-솔로몬 부호이다. 리드-솔로몬 부호의 능력은 산발오류(Random Error) 뿐만 아니라 연집오류(Burst Error)까지도 정정이 가능한 것이다. 그런데 이러한 리드-솔로몬 부호를 이용의 단점은 리드-솔로몬 부호는 유한체 GF(2m)의 원소를 심벌(Symbol)로 하는 블록(block) 계열 부호이므로 바이너리(binary) BCH 부호와는 달리 에러값(error value)를 구해야 하는 등 복호화 과정이 매우 복잡하다. 특히, 에러정정능력, 유한체의 크기, 및 유한체 연산의 종류와 횟수 등에 의해 시스템의 복잡도가 크게 좌우되며, 복호화하는데 소요되는 시간도 시스템의 복잡도에 비례하여 길어진다.The code used for error correction in compact disc players is typically the Reed-Solomon code, which is a class of Non-binary BCH codes. Reed-Solomon code's ability can correct not only random error but also burst error. However, the disadvantage of using the Reed-Solomon code is that the Reed-Solomon code is a block-based code that uses the element of the finite field GF (2 m ) as a symbol, so unlike the binary BCH code, it is an error value. The decoding process is very complicated, such as the need to obtain an error value. In particular, the complexity of the system depends largely on the error correction capability, the size of the finite field, the type and number of finite field operations, and the time required for decoding also increases in proportion to the complexity of the system.
도 1a는 종래 기술의 에러정정시 플러그(flag) 처리 방법에 따른 C1 디코딩 알고리즘을 보이는 도면이다.FIG. 1A illustrates a C1 decoding algorithm according to a plug processing method of error correction in the prior art.
신드롬(Syndrome)을 계산한다.(100단계)Calculate the Syndrome (Step 100)
상기 100단계에서 계산된 신드롬에 대하여 에러의 개수가 "0"개 인가를 판단한다.(102단계)It is determined whether the number of errors is "0" with respect to the syndrome calculated in step 100 (step 102).
상기 102단계의 판단이 에러의 개수가 "0"이면, 플러그(flag)를 "0"으로 하고 종료한다.(104단계)In
상기 102단계의 판단이 에러의 개수가 "0"이 아니면, 에러의 개수가 "1"인가를 판단한다.(106단계)In
상기 106단계의 판단이 에러의 개수가 "1"이면, 1 에러정정을 수행한다.(108단계)In
상기 108단계에서 1 에러정정을 수행하고 나면, 플러그(flag)를 "0"으로 하고 종료한다.(104단계)After 1 error correction is performed in
상기 106단계의 판단이 에러의 개수가 "1"이 아니면, 에러의 개수가 "2"인가를 판단한다.(110단계)In
상기 110단계의 판단이 에러의 개수가 "2"이면, 2 에러정정을 수행한다.(112단계)In
상기 110단계의 판단이 에러의 개수가 "2"가 아니거나, 상기 112단계에서 2 에러정정을 수행하고 난 후에 플러그(flag)를 "1"로 하고 종료한다.(114단계)In
도 1b는 종래 기술의 에러 정정시 플러그(flag) 처리방법에 따른 C2 디코딩 알고리즘을 보이는 도면이다.FIG. 1B illustrates a C2 decoding algorithm according to a plug processing method of error correction in the prior art.
신드롬(Syndrome)을 계산한다.(150단계)Calculate the Syndrome (Step 150)
상기 150단계에서 계산된 신드롬에 대해서 에러의 개수가 "0"개 인가를 판단한다.(152단계)It is determined whether the number of errors is "0" for the syndrome calculated in step 150 (step 152).
상기 152단계의 판단이 에러의 개수가 "0"이면, 플러그(flag)를 "0"으로 하고 종료한다.(154단계)If the determination of
상기 152단계 판단이 에러의 개수가 "0"이 아니면, 에러의 개수가 "1"인가를 판단한다.(156단계)In
상기 156단계의 판단이 에러의 개수가 "1이면, 1 에러정정을 수행한다.(158단계)In
상기 158단계에서 1 에러정정을 수행하고 나면, 플러그(flag)를 "0"으로 하고 종료한다.(154단계)After 1 error correction is performed in
상기 156단계의 판단이 에러의 개수가 "1"이 아니면, 에러의 개수가 "2"인가를 판단한다.(160단계)In
상기 160단계의 판단이 에러의 개수가 "2"이면, 플러그를 체크한다.(162단계)In
상기 162단계의 체크된 결과가 "good"이면, 2 에러정정을 수행한다.(164단계)If the checked result of
상기 164단계에서 2 에러정정을 수행하고 난 후, 플러그(flag)를 "0"으로 하고 종료한다.(154단계)After performing 2 error corrections in
상기 162단계의 체크된 결과가 "bad"이면, 플러그의 개수가 "2"보다 큰가를 판단한다.(166단계)If the checked result of
상기 166단계의 판단이 플러그의 개수가 "2"보다 크면 플러그를 복사하고 종료한다.(168단계)If the number of plugs is greater than "2" in
상기 166단계의 판단이 플러그의 개수가 "2"보다 크지 않으면, 플러그를 "1"로 하고 종료한다.(170단계)If the number of plugs is not greater than " 2 ", the determination of
컴팩트 디스크 플레이어 기기에 사용되는 리드-솔로몬(Reed-Solomon) 에러정정장치에서는 C1 코드에서 2 에러까지 정정하고, C2 코드에서는 4 이레이저(erasure)까지 정정이 가능하나 실제로는 2 에러까지만 정정하였다. 2에러만 정정할 경우 버스트 에러(burst error)가 부호어 개수로 8개 이상이 발생하면 에러정정을 할 수 없으나 4 이레이저 정정을 할 경우 16개의 부호어까지 연속적으로 에러가 발생하여도 에러정정을 할 수 있는 장점이 있다. 그러나, 최대의 에러 정정을 행할 경우 8/14변조 데이터가 부정확하거나 플레이어 동작 상태가 불안정하면 오정할 수 있는 확률이 매우 커진다.The Reed-Solomon error correcting device used in the compact disc player device can correct up to 2 errors in the C1 code, and up to 4 erasures in the C2 code, but only up to 2 errors. If only 2 errors are corrected, if 8 or more burst errors occur as the number of codewords, error correction is not possible.However, if 4 errors are corrected, error correction is possible even if 16 errors occur consecutively. There is an advantage to doing this. However, when the maximum error correction is performed, the probability of miscorrection becomes very large if the 8/14 modulation data is incorrect or the player operation state is unstable.
따라서 본 발명의 목적은 종래 기술의 문제점을 개선하기 위하여 안출된 것으로서 에러 정정 능력을 최대한 발휘하면서, 보다 간단한 구조를 가지면 신속하게 수행하는 복호 알고리즘을 갖는 에러 정정방법을 제공함에 있다.Accordingly, an object of the present invention is to provide an error correction method having a decoding algorithm that is designed to improve the problems of the prior art, while exhibiting the maximum error correction capability and having a simpler structure.
본 발명의 다른 목적은 상기 목적의 에러 정정방법에 적용되는 에러 정정장치를 제공함에 있다.Another object of the present invention is to provide an error correction apparatus applied to the error correction method of the above object.
도 1a는 종래 기술의 에러 정정시 플러그(flag) 처리방법에 따른 C1 디코딩 알고리즘을 보이는 도면이다.1A is a diagram illustrating a C1 decoding algorithm according to a plug processing method of error correction in the prior art.
도 1b는 종래 기술의 에러 정정시 플러그(flag) 처리방법에 따른 C2 디코딩 알고리즘을 보이는 도면이다.FIG. 1B illustrates a C2 decoding algorithm according to a plug processing method of error correction in the prior art.
도 2는 본 발명에 적용되는 일반적인 리드-솔로몬 부호의 신드롬 발생장치의 블록도이다.2 is a block diagram of a syndrome generator of a general Reed-Solomon code according to the present invention.
도 3a는 본 발명이 적용되는 일반적인 리드-솔로몬 부호의 신드롬 발생장치로서 수학식 5의 s0를 구현한 장치도이다.3A is a schematic diagram of a device for implementing s 0 of
도 3b는 본 발명이 적용되는 일반적인 리드-솔로몬 부호의 신드롬 발생장치로서 수학식 5의 s1을 구현한 장치도이다.FIG. 3b is a device diagram of s 1 of
도 3c는 본 발명에 적용되는 일반적인 리드-솔로몬 부호의 신드롬 발생장치로서 수학식 5의 s2를 구현한 장치도이다.FIG. 3C is a schematic diagram of a device for implementing s 2 of
도 3d는 본 발명이 적용되는 일반적인 리드-솔로몬 부호의 신드롬 발생장치로서 수학식 5의 s3를 구현한 장치도이다.FIG. 3D is a device diagram implementing s 3 of
도 4는 본 발명에 따른 에러정정방법으로서 C1 디코딩 알고리즘의 흐름도이다.4 is a flowchart of a C1 decoding algorithm as an error correction method according to the present invention.
도 5는 본 발명에 따른 에러 정정방법으로서 C2 디코딩 알고리즘의 흐름도이다.5 is a flowchart of a C2 decoding algorithm as an error correction method according to the present invention.
도 6a 내지 도 6b는 본 발명에 따른 에러 정정장치의 블록도이다.6A to 6B are block diagrams of an error correction apparatus according to the present invention.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 에러정정방법은 디지털 신호의 재생에 있어 리드-솔로몬(Reed-Solomon) 부호를 사용하여 데이터의 에러를 정정하기 위한 에러 정정방법에 있어서, 신드롬을 계산하는 단계(400단계); 상기 신드롬 계산단계(400단계)에서 계산된 신드롬에 의해 에러개수 판별식을 이용하여 에러 개수를 판별하는 단계(402단계); 상기 에러개수 판별단계(402단계)에서 판별된 에러의 개수에 따라 에러정정을 수행하는 단계(404단계); 상기 에러개수 판별단계(402단계)에서 판별된 에러의 개수가 '0'이거나 상기 에러정정단계(404단계)를 수행한 후에 시스템의 상태 검색을 수행하는 상태검색단계(406단계); 및 상기 상태 검색단계(406단계)에서 검색돈 상태의 양호 여부 및 상기 에러 개수 판별단계(402단계)에서 판별된 에러의 개수가 '3'이상임을 판단하여 플러그를 "0" 또는 "1"로 설정하는 플러그 설정단계(408)단계)를 갖는 C1디코딩 과정 그리고, 수신신호로부터 신드롬을 계산하는 신드롬 계산단계(500단계); 상기 신드롬 계산단계(500단계)에서 계산된 신드롬에 의해 에러개수 판별식을 이용하여 에러개수를 판별하는 에러개수 판별단계(502단계); 상기 에러개수 판별단계(502단계)에서 판별된 에러의 개수가 '2'로 판단되면 현재의 에러 위치가 상기 C1디코딩 과정의 플로그 설정단계(408단계)에서 설정된 에러의 위치와 일치하는가를 판단하는 플러그 일치 여부 판단단계(504단계); 상기 에러개수 판별단계(502단계) 및/또는 상기 플러그 일치 여부 판단단계(504단계)를 통하여 상기 에러개수 판별단계(502단계)에서 판별된 에러개수가 '1'개이면 '1'에러정정을 수행하고, 상기 플러그 일치 여부 판단단계(504단계)의 판단이 현재 검출된 에러의 위치와 C1디코딩 과정에서 설정된 에러의 위치가 일치하면 '2'에러 정정을 수행하는 에러정정단계(506단계); 상기 에러개수 판별단계(502단계)의 판단이 현재 검출된 에러의 개수가 '2'를 초과하면 이레이저 정정여부를 판단하는 이레이저 정정 여부 판단단계(508단계); 상기 이레이저 정정여부 판단단계(508)의 판단이 'ON'이면 플러그의 개수를 판단하는 플러그 개수 제1판단단계(510단계); 상기 플러그 개수 제1판단단계(510단계)에서 판단된 플러그의 개수가 '3' 또는 '4'이면 '3'/'4' 이레이저 정정을 '3'/'4' 이레이저 정정단계(512단계); 상기 '3'/'4' 이레이저 정정단계(512단계)에서 '3' 또는 '4' 이레이저 정정이 수행되고 난 후, 이레이저 정정이 올바른 수행 여부를 확인하기 위하여 검산을 수행하는 검산단계(514단계; 상기 플러그 일치 여부 판단단계(504단계) 및/또는 상기 이레이저 정정여부 판단단계(508단계)를 통하여 상기 플러그 일치 여부 판단단계(504단계)의 판단이 현재 검출된 에러의 위치와 C1 디코딩 과정에서 설정된 에러의 위치가 일치하지 않거나 또는 상기 이레이저 정정 여부 판단단계(508)의 판단이 'OFF'이면 플러그의 개수를 판단하는 플러그 개수 제2판단단계(516단계); 상기 신드롬 계산단계(500단계) 내지 상기 플러그 개수 제2판단단계(516)가 수행되고 난 후 플러그를 설정하는 플러그 설정단계(518단계)를 갖는 C2 디코딩 과정을 포함한다.The error correction method of the present invention for achieving the above object is to calculate the syndrome in the error correction method for correcting the error of the data using the Reed-Solomon code in the reproduction of the digital signal Step (step 400); Determining an error number using an error number determination equation based on the syndrome calculated in the syndrome calculation step (step 400); Performing error correction according to the number of errors determined in the error number determination step (402) (step 404); A status search step (step 406) of performing a status search of a system after performing the error correction step (404) or the number of errors determined in the error number determination step (402); And the plug is determined to be "0" or "1" in the state retrieval step (406) to determine whether the retrieval state is good and the number of errors determined in the error number determination step (402) is greater than or equal to '3'. A C1 decoding process having a plug setting step (408) step of setting and a syndrome calculation step (step 500) of calculating a syndrome from a received signal; An error number determination step (502) of determining an error number using an error number determination equation by the syndrome calculated in the syndrome calculation step (500); If the number of errors determined in the error number determination step (502) is determined to be '2', it is determined whether the current error position matches the position of the error set in the plug setting step (408) of the C1 decoding process. Determining whether a plug is matched (step 504); If the number of errors determined in the error number determination step (502) through the error number determination step (502) and / or the plug match determination step (504) is '1' error correction is performed. An error correction step (506) of performing error correction if the location of the error detected in the plug matching determination step (504) and the location of the error set in the C1 decoding process match; An erasure correction determination step (508) of determining whether an error is corrected if the number of errors currently detected in the error number determination step (502) exceeds '2'; A first plug determination step (510) of determining the number of plugs when the determination of the erasure correction determination step (508) is 'ON'; If the number of plugs determined in the first determination step (510) is '3' or '4', the '3' / '4' eraser correction is performed by '3' / '4' erasure correction (512). step); After the '3' or '4' eraser correction is performed in the '3' / '4' eraser correcting step (step 512), a checking step of performing checking to confirm whether the eraser correction is performed correctly. The determination of the plug matching determination step (504) through the plug matching determination step (504) and / or the erasure correction determination step (508) is performed by the step (504). A second plug determination step (516) of determining the number of plugs when the position of the error set during the C1 decoding process does not match or the determination of the erasure correction step (508) is 'OFF'; And a plug setting step (step 518) of setting a plug after the plug number
상기 신드롬 계산단계(400단계)에서 단일 심벌 에러 발생시의 신드롬은The syndrome when a single symbol error occurs in the
이고, 2중 심벌 에러 발생시의 신드롬은When the double symbol error occurs, the syndrome is
이고, 3중 심벌 에러 발생시의 신드롬은When the triple symbol error occurs, the syndrome is
이고, 4중 심벌 에러 발생시의 신드롬은The syndrome when a quadruple symbol error occurs
임을 특징으로 한다.It is characterized by that.
상기 에러 개수 판별단계(402단계)는The error number determination step (402)
이라 하고,This is called,
a) 에러 발생이 없는 경우a) If no error occurs
b) 단일 심벌 에러가 발생한 경우b) when a single symbol error occurs
c) 2중 심벌 에러가 발생한 경우c) a double symbol error occurs
d) 3중 심벌 이상의 에러가 발생한 경우d) an error of more than three symbols occurs
상기 a), b), c) 이외의 경우Other than a), b) and c) above
로서 에러의 개수를 판별함을 특징으로 한다.As a result, the number of errors is determined.
상기 에러개수 판별단계(402단계)는 에러개수 '0' 여부를 판단하는 단계(402-1단계); 에러개수 '1' 여부를 판단하는 단계(402-2단계); 및 에러개수 '2' 여부를 판단하는 단계(402-3단계)로 세분됨을 특징으로 한다.The error number determination step (step 402) may include determining whether the error number is '0' (step 402-1); Determining whether the number of errors is '1' (step 402-2); And determining whether the error number is '2' (step 402-3).
상기 에러 정정 수행단계(404단계)는 상기 에러개수 판별단계(402단계)에서 판별된 에러의 개수가 '0'이면 에러정정을 수행하지 않고, 판별된 에러의 개수가 '1'이면 '1'에러정정을 수행(404-1단계)하고, 판별된 에러의 개수가 '2'이면 '2' 에러정정을 수행(404-2단계)하는 바, 상기 '1' 에러정정(404-1단계)의 수행은In the error correcting step (404), if the number of errors determined in the error number determining step (402) is '0', error correction is not performed. If the determined number of errors is '1', '1' If error correction is performed (step 404-1), and if the number of the determined errors is '2', '2' error correction is performed (step 404-2), and the '1' error correction (step 404-1) is performed. The conduct of
이고, 상기 '2' 에러정정(404-2단계)의 수행은 2중 심벌 에러 발생의 경우 에러 위치 X1, X2를 근으로 갖는 에러위치 다항식을이라 정의하면, 상기 다항식으로부터으로 치환하면, 상기 다항식은 다음의 수학식 14와 같이 나타낼 수 있고,Performing the '2' error correction (step 404-2) is an error position polynomial having the error positions X1 and X2 in the case of a double symbol error occurrence. In this definition, from the polynomial When substituted with, the polynomial can be represented by the following equation (14),
(여기서,이고, ) 또한, k의 트레이스(trace)인를와로 구별하여 식을 쓰면(here, ego, ) Is also a trace of k To Wow If you write
이고, 유한체 GF(28) 상에서 트레이스를 취하면 m=8이므로, 상기와는 각각 수학식 15와 16과 같이 나타낼 수 있으며,And taking the trace on the finite field GF (2 8 ), m = 8, Wow Can be represented as in Equations 15 and 16, respectively.
상기 수학식 15 및 16으로부터이고,이면, 수학식 14에서 표현된의 두근과는 다음의 수학식 17과 같이 표현할 수 있는 바,From Equations 15 and 16 ego, If is expressed in equation (14) Pounding and Can be expressed as in Equation 17 below.
그러나이나가 되는 경우에는 다음의 수학식 18과 같이 표현할 수 있고,But or If it becomes can be expressed as the following equation (18),
여기서, y는이 되는내의 한 원소이며이라 할 때을 만족시킴으로서 상기 수학식 18로 표현되는 두 근이 결정되는데, 상기 과정을 통하여 얻은과를 이용하여 에러 위치 X1, X2는 다음의 수학식 19와 같고, 에러값 Y1, Y2는 다음의 수학식 20과 같음을 특징으로 하고,Where y is Being Is an element within When called By satisfying the two roots represented by the equation (18) is determined, obtained through the process and The error positions X1 and X2 are represented by Equation 19 below, and the error values Y1 and Y2 are represented by Equation 20 below.
상기 에러 정정 수행단계(404단계)에서 판별된 에러의 개수가 '0', '1', '2' 이외의 개수이면 에러정정을 수행하지 않음을 특징으로 한다.If the number of errors determined in the error correction step (404) is other than '0', '1', or '2', error correction is not performed.
상기 상태검색단계(406단계)는 시스템 특성, 데이터 및 플레이어 상황을 검색하는 단계로서 EFM(Eight/Fourteen Modulation) 데이터 이상 유무, 플레이어(Player) 동작상태, 프레임 싱크(Frame Sync) 검출 유무 등을 확인한 다음 플러그(Flag)를 가변적으로 부가하기 위한 단계인 바,The state search step (406) is a step of searching for system characteristics, data, and player status, and confirms whether there is an abnormality of EFM (Eight / Fourteen Modulation) data, a player operating state, a frame sync detection, etc. A step for variably adding a next plug,
임을 특징으로 한다.It is characterized by that.
상기 플러그 설정단계(408단계)는 상기 상태검색단계(406단계)에서 검색된 상태가 양호하면 플러그를 '0'으로 설정하고, 검색된 상태가 양호하지 않으면 플러그를 '1'로 설정하며, 상기 에러 개수 판별단계(402단계)에서 판별된 에러의 개수가 '3'이상으로 판단되면 사익 에러정정단계(404단계) 및 상태검색단계(406단계)를 거치지 않고 직접적으로 플러그를 '1'로 설정함을 특징으로 한다.The plug setting step (408) sets the plug to '0' if the detected state is good in the state searching step (406), and sets the plug to '1' if the detected state is not good, and the number of errors If the number of errors determined in the determination step (402) is greater than or equal to '3', the plug is directly set to '1' without going through the error correction step (404) and the status search step (406). It features.
상기 플러그 설정단계(408단계)는 상기 상태검색단계(406단계)에서 검색된 상태가 양호하면 플러그를 '0'으로 설정하는 단계(408-1단계); 및 상기 상태검색단계(406단계)에서 검색된 상태가 양호하지 않거나 또한, 상기 에러 개수 판별단계(402단계)에서 판별된 에러의 개수가 '3'이상으로 판단되면 상기 에러정정단계(404단계) 및 상태검색단계(406단계)를 거치지 않고 직접적으로 플러그를 '1'로 설정하는 단계(408-2단계)로 세분됨을 특징으로 한다.The plug setting step (408) may include setting a plug to '0' (step 408-1) if the state found in the state searching step (406) is good; And the error correction step (404) when the status searched in the status search step (406) is not good or the number of errors determined in the error number determination step (402) is determined to be '3' or more. It is characterized in that it is subdivided into the step (408-2) of setting the plug directly to '1' without going through the state search step (406).
상기 신드롬 계산단계(500단계)에서 단일 심벌 에러 발생시의 신드롬은In the syndrome calculation step (500), a syndrome when a single symbol error occurs
이고, 2중 심벌 에러 발생시의 신드롬은When the double symbol error occurs, the syndrome is
이고, 3중 심벌 에러 발생시의 신드롬은When the triple symbol error occurs, the syndrome is
이고, 4중 심벌 에러 발생시의 신드롬은The syndrome when a quadruple symbol error occurs
임을 특징으로 한다.It is characterized by that.
상기 에러 개수 판별단계(502단계)는The error number determination step (502)
이라 하고,This is called,
a) 에러 발생이 없는 경우a) If no error occurs
b) 단일 심벌 에러가 발생한 경우b) when a single symbol error occurs
c) 2중 심벌 에러가 발생한 경우c) a double symbol error occurs
d) 3중 심벌 이상의 에러가 발생한 경우d) an error of more than three symbols occurs
상기 a), b), c) 이외의 경우Other than a), b) and c) above
로서 에러의 개수를 판별함을 특징으로 한다.As a result, the number of errors is determined.
상기 에러개수 판별단계(502단계)는 에러개수 '0' 여부를 판단하는 단계(502-1단계); 에러개수 '1' 여부를 판단하는 단계(502-2단계); 및 에러개수 '2' 여부를 판단하는 단계(502-3단계)로 세분됨을 특징으로 한다.The error number determination step (step 502) may include determining whether the error number is '0' (step 502-1); Determining whether the number of errors is '1' (step 502-2); And determining whether the number of errors is '2' (step 502-3).
상기 에러정정단계(506단계)는 '1' 에러정정단계(506-1단계)와 '2' 에러정정단계(506-2단계)하는 바, 상기 '1' 에러정정단계(506-1단계)의 수행은The error correction step (506) is a '1' error correction step (step 506-1) and the '2' error correction step (step 506-2), the '1' error correction step (506-1) The conduct of
이고, 상기 '2' 에러정정단계(506-2단계)의 수행은 2중 심벌 에러 발생의 경우 에러 위치 X1, X2를 근으로 갖는 에러위치 다항식을이라 정의하면, 상기 다항식으로부터으로 치환하면, 상기 다항식은 다음의 수학식 14와 같이 나타낼 수 있고,Performing the '2' error correction step (step 506-2), the error position polynomial having the error position X1, X2 in the case of a double symbol error occurrence In this definition, from the polynomial When substituted with, the polynomial can be represented by the following equation (14),
<수학식 14><Equation 14>
(여기서,이고, ) 또한, k의 트레이스(trace)인를와로 구별하여 식을 쓰면(here, ego, ) Is also a trace of k To Wow If you write
이고, 유한체상에서 트레이스를 취하면 m=8이므로, 상기와는 각각 수학식 15와 16과 같이 나타낼 수 있으며,And finite body Taking trace on m = 8, so Wow Can be represented as in Equations 15 and 16, respectively.
<수학식 15><Equation 15>
<수학식 16><Equation 16>
상기 수학식 15 및 16으로부터이고,이면, 수학식 14에서 표현된의 두근과는 다음의 수학식 17과 같이 표현할 수 있는 바,From Equations 15 and 16 ego, If is expressed in equation (14) Pounding and Can be expressed as in Equation 17 below.
<수학식 17><Equation 17>
그러나,이나가 되는 경우에는 다음의 수학식 18과 같이 표현할 수 있고,But, or If it becomes can be expressed as the following equation (18),
<수학식 18><Equation 18>
여기서, y는이 되는내의 한 원소이며이라 할 때을 만족시킴으로서 상기 수학식 18로 표현되는 두 근이 결정되는데, 상기 과정을 통하여 얻은과를 이용하여 에러 위치 X1, X2는 다음의 수학식 19와 같고, 에러값 Y1, Y2는 다음의 수학식 20과 같음을 특징으로 하고,Where y is Being Is an element within When called By satisfying the two roots represented by the equation (18) is determined, obtained through the process and The error positions X1 and X2 are represented by Equation 19 below, and the error values Y1 and Y2 are represented by Equation 20 below.
<수학식 19><Equation 19>
<수학식 20><Equation 20>
상기 이레이저 정정 여부 판단단계(508단계)의 판단은 다음의 표와 같음을 특징으로 한다.The determination of the erasure correction step (508) is as shown in the following table.
상기 '3'/'4' 이레이저 정정단계(512단계)에서 '3'이레이저 정정은 신드롬 요서는 다음의 수학식 21과 같이 표현되고,In the '3' / '4' erasure correction step (step 512), the '3' erasure correction is a syndrome request. Is expressed as in
또한, 에러위치 다항식은 다음의 수학식 22와 같으며,In addition, the error position polynomial is represented by the following
상기 수학식 22에서 각 차수의 계수는 다음의 수학식 23과 같이 표현할 수 있는 바,Coefficient of each order in
그리고 상기 수학식 22는 3중 심벌 에러가 발생하였다면 '0'이 된다. 에러 위치를 이미 알고 있다고 가정하고 상기 수학식 21의 3원 일차 연립 방정식을 풀면 에러값 Y1, Y2, Y3는 다음의 수학식 24와 같고,
'4'이레이저 정정은 신드롬 요소는 다음의 수학식 25와 같고,'4' eraser correction syndrome element Is equal to the following
또한, 에러위치 다항식은 다음의 수학식 26과 같으며,In addition, the error position polynomial is represented by the following
상기 수학식 26에서 각 차수의 계수는 다음의 수학식 27과 같은 바,In
그리고 상기 수학식 26은 4중 심벌 에러가 발생하였다면 '0'이 되고, 에러위치를 이미 알고 있다고 가정하고 상기 수학식 25의 4원 일차 연립방정식을 풀면 에러값 Y1, Y2, Y3, Y4는 다음의 수학식 28과 같음을 특징으로 한다.
상기 플러그 설정단계(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', '2'이거나, 상기 검산단계(514단계애서 검산된 결과가 불량이거나, 또는 사익 플러그 개수 제2판단단계(516)에서 판단된 플러그의 개수가 '1'또는 '2'일 때 플러그를 '1'로 설정하며, 상기 플러그 '복사' 설정단계(518-3단계)는 상기 플러그 개수 제1판단단계(510단계)에서 판단된 플러그의 개수가 '5'이거나, 또는 상기 플러그 개수 제2판단단계(516)에서 판단된 플러그의 개수가 '2'를 초과할 때 플러그를 '복사' 설정함을 특징으로 한다.The plug setting step (step 518) includes plug '0' setting step (step 518-1), plug '1' setting step (step 518-2), plug 'copy' setting step (step 518-3) In the plug '0' setting step (step 518-1), the determination of the step (502-1) of determining whether the error number '0' of the error number determination step (502) is currently detected. If no error is detected, or if the error '1' or '2' is corrected in the '1' / '2' error correction step (step 506), or the result of the check in the check step (514) is satisfactory, In the step of setting the plug '1' (step 518-2), the number of plugs determined in the first determination step (510) of the plug number is '0', '1', '2'. Or the plug is set to '1' when the number of plugs determined in the checking step (514) is bad or the number of plugs determined in the second judging
또한 상기 본 발명의 다른 목적을 달성하기 위한 장치는In addition, the apparatus for achieving the other object of the present invention
디지털 신호의 재생에 있어 리드-솔로몬(Reed-Solomon) 부호를 사용하여 데이터의 에러를 정정하기 위한 에러정정장치에 있어서, 에러정정 복호 알고리즘이 코딩(coding)화 되어 내장된 프로그램 롬; 상기 프로그램 롬에서 출력되는 인스트럭션(instruction)을 저장하는 프로그램 레지스터; 상기 프로그램 레지스터에 저장된 인스트럭션을 소정의 코딩 형태에 따라 제어신호를 출력하는 프로그램 디코더; 상기 프로그램 디코더로부터 출력되는 신호와 에러정정연산부로부터 출력된 신호를 입력신호로 하여 에러 정정시 특정 스텝(step)이나 인스트럭션을 일정 주기만큼 유지하거나, 다른 스텝으로 분기할 경우를 판단하여 제어신호를 발생하는 점프 콘트롤부; 상기 프로그램 레지스터로부터 출력되는 신호와 상기 프로그램 디코더로부터 출력되는 신호 및 상기 점프 콘트롤부로부터 출력되는 제어신호에 의해 어드레스(address)를 카운팅(counting)하는 프로그램 어드레스 카운터; 및 상기 프로그램 디코더로부터 출력된 신호에 의해 에러정정에 필요한 부호 데이터의 입출력 조절신호를 발생하는 연산제어부를 갖는 에러정정제어부 그리고, 각 구성 요소간의 신호를 인터페이스하는 데이터 버스; 에러정정에 필요한 부호 데이터와 플러그를 리드/라이트(read/write)시에 사용하는 어드레스를 발생하는 어드레스 발생기; 상기 데이터 버스에 접속되고, 유한체상의 임의의 원소를 정수값로 변환하는변환기; 상기 데이터 버스에 접속되고, 정수값를 유한체상의 임의의 원소로 변환하는변환기; 상기 데이터 버스에 접속되고, C2부호 에러정정시 C2부호 데이터를 읽은 후 C1 플러그를 읽어들이는데 이때 C1 플러그의 개수를 계수화하는 C1 플러그 카운터; 상기 데이터 버스에 접속되고, 제로 데이터를 검출하여 개수를 측정 후 측정 개수를 출력하는 제로 카운터; 상기 데이터 버스에 접속되고, 부호 데이터 및 플러그 등을 입출력하는 입출력 레지스터; 상기 어드레스 발생기로부터 출력되는 일측의 출력신호와 상기변환기로부터 출력되는 일측의 출력신호를 입력신호로 하여 에러정정 연산 도중에 발생된 에러의 위치를 정수값으로 저장하거나 상기 어드레스 발생기로부터 출력되는 이레이저의 위치를 정수값으로 저장하는 에러위치 저장 레지스터; 상기 어드레스 발생기로부터 출력된 및 상기 에러위치 저장 레지스터로부터 출력된 신호를 선택적으로 출력하는 제1신호선택기; 상기 데이터 버스에 접속되고, 유한체상의 임의의 원소를혹은표현으로 변환 출력하는 역원기; 상기 데이터 버스에 접속되고, 2중 심벌 에러정정에 사용되며 에러 위치 다항식의 근을 구하는 트레이스 변환기; 상기 데이터 버스에 접속되어 8비트 내부 데이터 버스상의 데이터 혹은 상기 역원기로부터 출력되는 데이터를 선택적으로 출력하는 제2신호선택기; 상기 데이터 버스에 접속되어 8비트 내부 데이터 버스상의 데이터 혹은 상기 트레이스 변환기를 거친 데이터를 선택적으로 출력하는 제3신호선택기; 상기 제2신호선택기로부터 출력된 신호를 일시적으로 저장하는 MA레지스터; 상기 제3신호선택기로부터 출력되는 데이터를 일시적으로 저장하는 MB레지스터; 상기 데이터 버스에 접속되어 데이터를 일시적으로 저장하는 AB레지스터; 상기 데이터 버스에 접속되어 연산도중에 발생된 템포러리(Temporary) 데이터를 일시적으로 저장하는 TEMP레지스터; 상기 데이터 버스에 접속되어 부호 데이터로부터 신드롬 요소를 구하는 신드롬 생성기; 상기 데이터 버스에 접속되고, 에러정정 처리 후 각 부호 데이터에 플러그 정보를 부가하거나 혹은 플러그 정보를 복사하는 C1/C2 플러그 생성기; 상기 데이터 버스에 접속되어 에러정정 연산 도중 발생된 중요 계수 데이터나 각종 근을 저장하는 RAM; 상기 MA레지스터로부터 출력된 신호와 상기 MB레지스터로부터 출력된 신호를 입력신호로 하여 유한체상의 원소들을 곱하는 곱셈기; 및 상기 곱셈기로부터 출력된 신호와 상기 AB레지스터로부터 출력된 신호로 입력신호로 하여 유한체상의 원소들을 더하는 덧셈기를 갖는 에러정정연산부를 포함한다.An error correction apparatus for correcting an error of data by using a Reed-Solomon code in reproduction of a digital signal, comprising: a program ROM in which an error correction decoding algorithm is coded and embedded; A program register for storing an instruction output from the program ROM; A program decoder configured to output a control signal according to a predetermined coding type from an instruction stored in the program register; Generates a control signal by determining whether to maintain a specific step or instruction for a certain period or branch to another step when correcting an error using the signal output from the program decoder and the signal output from the error correction operation unit as input signals. A jump controller; A program address counter that counts an address based on a signal output from the program register, a signal output from the program decoder, and a control signal output from the jump controller; And an error correction control unit having an operation control unit for generating an input / output control signal of code data necessary for error correction by the signal output from the program decoder, and a data bus for interfacing signals between components. An address generator for generating code data necessary for error correction and an address for reading / writing plugs; A finite body connected to the data bus Elements on Pinterest To an integer value Convert to converter; An integer value connected to the data bus To finite body Elements on Pinterest Convert to converter; A C1 plug counter connected to the data bus and reading the C1 plug after reading the C2 code data when correcting the C2 code error; A zero counter connected to the data bus and configured to detect zero data, measure a number, and output a measured number; An input / output register connected to the data bus to input and output code data, a plug, and the like; An output signal of one side output from the address generator and the An error position storage register for storing, as an integer value, a position of an error generated during an error correction operation using an output signal of one side output from the converter as an integer value or storing the position of an eraser output from the address generator as an integer value; A first signal selector for selectively outputting a signal output from the address generator and output from the error position storage register; A finite body connected to the data bus Elements on Pinterest To or An inverter for converting and outputting into a representation; Error location polynomial connected to the data bus and used for double symbol error correction A trace converter for finding the root of the tracer; A second signal selector connected to the data bus and selectively outputting data on an 8-bit internal data bus or data output from the inverse generator; A third signal selector connected to the data bus and selectively outputting data on an 8-bit internal data bus or data passed through the trace converter; A MA register for temporarily storing a signal output from the second signal selector; An MB register for temporarily storing data output from the third signal selector; An AB register connected to the data bus to temporarily store data; A TEMP register connected to the data bus to temporarily store temporal data generated during a calculation; A syndrome element connected to the data bus from symbol data A syndrome generator for obtaining a; A C1 / C2 plug generator connected to the data bus for adding plug information or copying plug information to each code data after an error correction process; A RAM connected to the data bus and storing important coefficient data or various roots generated during an error correction operation; Finite field using the signal output from the MA register and the signal output from the MB register as input signals A multiplier for multiplying the elements of the phase; And a signal output from the multiplier and a signal output from the AB register as finite elements as input signals. It includes an error correction operation unit having an adder for adding the elements of the phase.
상기 역원기는 에러정정연산중 나눗셈 연산을 수행할 때 사용됨을 특징으로 한다.The inverse generator is used when performing a division operation during an error correction operation.
상기 덧셈기는 익스클루시브-와(Exclusive-OR) 게이트로 구성됨을 특징으로 한다.The adder is composed of an exclusive-OR gate.
이하, 본 발명의 바람직한 실시예를 상세히 설명한다.Hereinafter, preferred embodiments of the present invention will be described in detail.
일반적으로 리드-솔로몬 부호의 복호과정은 다음과 같은 5단계로 집약된다.In general, the decoding process of the Reed-Solomon code is concentrated in five steps as follows.
1) 수신부호로부터 신드롬(syndrome)을 계산한다.1) Calculate the syndrome from the receiving code.
2) 에러위치 다항식(error locator polynomial)을 계산한다.2) Compute the error locator polynomial.
3) 에러위치번호(error location number)를 계산한다.3) Calculate the error location number.
4) 에러값(error value)을 계산한다.4) Calculate the error value.
5) 에러정정(error correction)을 수행한다.5) Perform error correction.
전송부호 c(x)를 전송하였을 때 전송도중 에러 e(x)가 발생하였다면, 수신부호 r(x)는 수학식 1과 같이 표현할 수 있다.If an error e (x) occurs during transmission when the transmission code c (x) is transmitted, the reception code r (x) may be expressed as Equation (1).
a를 유한체(finite field)상의 원시원(premitive element)이라 하면은 생성다항식 g(x)의 근이 되고, 이근을 상기 수학식 1에 대입하면 다음의 수학식 2와 수학식 3과 같이 표현할 수 있다.a is a finite field The primitive element Is the root of the generated polynomial g (x), and can be expressed as
그리고 I번째 신드롬요소(syndrome element)는 다음의 수학식 4와 같이 표현할 수 있다.The I-th syndrome element may be expressed as in
실제로 컴팩트 디스크 플레이어상에서 적용되는 2중 에러정정 (32,28), (28,24) 리드-솔로몬 부호의 신드롬(syndrome) 발생장치는 도 1에서 보이는 바와 같다.In practice, a double error correction (32, 28), (28, 24) Reed-Solomon code syndrome generator applied on a compact disc player is shown in FIG.
도 2는 본 발명에 적용되는 일반적인 리드-솔로몬 부호의 신드롬 발생장치의 블록도이다.2 is a block diagram of a syndrome generator of a general Reed-Solomon code according to the present invention.
도 2의 구성을 보면, 수신신호(200) r(x)와 곱셈기(202)에서 출력되는 신호가 가산기(204)로 입력되고, 가산기(204)에서 출력된 신호는 플립플롭(flip-flop)(206)으로 입력되고, 플립플롭(206)에서 출력된 신호는 곱셈기(202)로 입력되고, 곱셈기(202)에서는 플립플롭(206)에서 출력된 신호와 생성 다항식의 근(208)을 곱하여 가산기(204)로 출력한다.Referring to the configuration of FIG. 2, the received signal 200 r (x) and the signal output from the
예를 들어, 유한체상의 임의의 원소에을 곱할 경우 다음의 수학식 5와 같이 표현된다.For example, finite Elements on Pinterest on When multiply by, it is expressed as
상기 수학식 5에 대한 장치는 도 3a 내지 도 3d와 같이 구성된다.The apparatus for
도 3a는 본 발명이 적용되는 일반적인 리드-솔로몬 부호의 신드롬 발생장치로서 수학식 5의를 구현한 장치도이다.3A is a syndrome generator of a general Reed-Solomon code to which the present invention is applied. This is also a device implementation.
도 3b는 본 발명이 적용되는 일반적인 리드-솔로몬 부호의 신드롬 발생장치로서 수학식 5의을 구현한 장치도이다.Figure 3b is a syndrome generator of the general Reed-Solomon code to which the present invention is applied This is also a device implementation.
도 3c는 본 발명이 적용되는 일반적인 리드-솔로몬 부호의 신드롬 발생장치로서 수학식 5의를 구현한 장치도이다.3c is a syndrome generator of a general Reed-Solomon code to which the present invention is applied. This is also a device implementation.
도 3d는 본 발명이 적용되는 일반적인 리드-솔로몬 부호의 신드롬 발생장치로서 수학식 5의를 구현한 장치도이다.3d is a syndrome generator of a general Reed-Solomon code to which the present invention is applied. This is also a device implementation.
전송 도중 발생한 에러를 다음의 수학식 6에 나타내면 다음과 같다.An error occurring during the transmission is shown in Equation 6 below.
또한, 실제로개의 오류가 발생한다면, 상기 수학식 6을 다음의 수학식 7과 같이 표현할 수 있다.Also, actually If 6 errors occur, Equation 6 may be expressed as Equation 7 below.
상기 수학식 4로 정의된 신드롬요소는 수신부호에 생성 다항식의 근을 대입하여 구해지고 각각의 신드롬요소는 다음의 수학식 8과 같다.Syndrome element defined by
상기 수학식 8에서 에러값를라 하고 에러 위치 번호를라 하면 다음의 수학식 9와 같다.Error value in Equation 8 To Error location number To In the following equation (9).
상기 수학식 9로부터와를 구하여 상기 수학식 7로 표현되는 에러 e(x)를 알아내는 것이 리드-솔로몬 부호를 이용하여 복호하는 과정을 말한다.From Equation 9 Wow Finding the error e (x) represented by Equation 7 refers to a process of decoding using Reed-Solomon code.
그러면 수신신호로부터 에러를 계산한 후 다음에 기술된 에러 신드롬 판별을 수행한다.Then, after calculating the error from the received signal, the error syndrome determination described next is performed.
2중 에러인 경우 신드롬 요소는 상기 수학식 8로부터 다음의 수학식 10을 얻을 수 있다.Double error In the case of the syndrome element, the following Equation 10 can be obtained from Equation 8.
상기 수학식 10을 이용하여Using Equation 10
와 같이 변형시켜 전개시키면 다음의 수학식 11과 같은 2차 방정식을 얻을 수 있다. By transforming and developing as follows, a quadratic equation can be obtained as shown in Equation 11 below.
상기 수학식 11의 각 계수를 다음의 수학식 12와 같이 치환한다.Each coefficient of Equation 11 is substituted as in Equation 12 below.
상기 수학식 12와 같이 치환하면, 상기 수학식 11은 다음과 같이 표현된다.When substituted as in Equation 12, Equation 11 is expressed as follows.
이를 이용하여 에러개수 판별식으로 사용할 수 있다.By using this, it can be used as error count discrimination formula.
1) 에러 발생이 없는 경우1) If no error occurs
2) 단일 심벌 에러가 발생한 경우2) Single symbol error occurs
3) 2중 심벌 에러가 발생한 경우3) In case of double symbol error
4) 3중 심벌 이상의 에러가 발생한 경우4) If an error of more than 3 symbols occurs
상기 1), 2), 3) 이외의 경우When other than 1), 2), 3) above
상기 1), 2), 3), 4)에서 에러 개수 판별후 해당 에러에 대한 에러 위치와 에러값을 결정해야 하며 각 경우 다음과 같이 수행한다.After determining the number of errors in 1), 2), 3), and 4), the error position and error value for the corresponding error should be determined.
* 단일 심벌 에러 발생시* In case of single symbol error
단일 에러 발생시 신드롬은이고, 에러위치와 에러값은 다음의 수학식 13과 같이 구한다.If a single error occurs, the syndrome The error position and error value are obtained as in Equation 13.
*2중 심벌 에러 발생시* When double symbol error occurs
2중 심벌 에러 발생의 경우 에러 위치 X1, X2를 근으로 갖는 에러위치 다항식을이라 정의한다. 상기 다항식으로부터으로 치환하면, 다음의 수학식 14와 같이 나타낼 수 있고,In case of double symbol error, the error position polynomial with error positions X1 and X2 This is defined as. From the polynomial If replaced with, the following equation (14),
<수학식 14><Equation 14>
여기서,이고, 이다. 그리고, k의 트레이스(trace)인를와로 구별하여 식을 쓰면 다음과 같다.here, ego, to be. And k's trace To Wow If you write the formula as follows:
유한체상에서 트레이스를 취하면 m=8이므로,와는 각각 수학식 15와 16과 같이 나타낼 수 있으며,Finite body If you take a trace on m = 8, Wow Can be represented as in Equations 15 and 16, respectively.
<수학식 15><Equation 15>
<수학식 16><Equation 16>
상기 수학식 15 및 16으로부터이고,이면, 수학식 14에서 표현된의 두근과는 다음의 수학식 17과 같이 표현할 수 있는 바,From Equations 15 and 16 ego, If is expressed in equation (14) Pounding and Can be expressed as in Equation 17 below.
<수학식 17><Equation 17>
그러나이나가 되는 경우에는 다음의 수학식 18과 같이 표현할 수 있다.But or When can be expressed as shown in Equation 18 below.
<수학식 18><Equation 18>
여기서, y는이 되는내의 한 원소이며이라 할 때을 만족시킴으로서 상기 수학식 18로 표현되는 두 근이 결정된다.Where y is Being Is an element within When called By satisfying the two roots represented by the equation (18) is determined.
이와 같이 계산을 하여 두 근을 구하는 방법 외에를 이용하여 k의 값을 구한 다음 k값을 롬(Read Only Memory;ROM)의 어드레스 입력으로 넣어 미리 계산된 두 근 중의 하나인을 바로 ROM의 출력으로 얻어 구할 수 있다. 다음의 표 1에 (32,28) 리드-솔로몬 부호인 경우의 k값의 예를 들어 보면 다음과 같다.In addition to calculating the two roots by calculating like this Find the value of k by using and insert the value of k into the address input of ROM (Read Only Memory; ROM). Can be obtained directly from the ROM output. Table 1 below shows an example of the value of k in the case of the (32,28) Reed-Solomon code.
다음의 표 1은 상기 수학식 14의 근을 구하는 트레이스 변환 테이블이다.Table 1 below is a trace conversion table for finding the root of Equation 14.
상기 표 1의 x에 대한 k값을 나타내는 기술적 관계는 기 출원된 대한민국 특허출원 제90-21950호(출원인 삼성전자)에 상세히 개시되어 있으므로 이에 대한 설명은 생략한다.The technical relationship showing the k value for x in Table 1 is disclosed in detail in Korean Patent Application No. 90-21950 (Applicant Samsung Electronics), which is already filed, and thus description thereof will be omitted.
k값이 상기 표 1에 제시된 범위를 벗어나면 3중 이상의 에러가 발생한 것으로 처리한다. 상기 과정을 통하여 얻은과를 이용하여 에러 위치 X1, X2를 다음의 수학식 19와 같이 나타낼 수 있다.If the value of k is outside the range shown in Table 1, the error is treated as three or more errors. Obtained through the above process and The error positions X1 and X2 can be expressed by Equation 19 below.
<수학식 19><Equation 19>
또한, 에러값 Y1, Y2는 다음의 수학식 20과 같이 나타낼 수 있다.In addition, the error values Y1 and Y2 may be represented by Equation 20 below.
<수학식 20><Equation 20>
* 3중 심벌 에러 발생시* In case of triple symbol error
만일 3중 심벌 에러가 발생하였다면 신드롬 요소는 다음의 수학식 21과 같이 표현된다.Syndrome element if a triple symbol error occurs Is expressed by
<수학식 21><
또한, 에러위치 다항식은 다음의 수학식 22와 같다.The error position polynomial is represented by the following equation (22).
<수학식 22><
상기 수학식 22에서 각 차수의 계수는 다음의 수학식 23과 같이 표현할 수 있다.Coefficient of each order in
<수학식 23><
그리고 상기 수학식 22는 3중 심벌 에러가 발생하였다면 '0'이 된다. 에러 위치를 이미 알고 있다고 가정하고 상기 수학식 21의 3원 일차 연립 방정식을 풀면 에러값 Y1, Y2, Y3는 다음의 수학식 24와 같다.
<수학식 24><
* 4중 심벌 에러 발생시* In case of quadruple symbol error
만일, 4중 심벌 에러가 발생하였다면 신드롬 요소는 다음의 수학식 25와 같다.Syndrome element if a quad symbol error occurs Is as shown in
<수학식 25><
또한, 에러위치 다항식은 다음의 수학식 26과 같다.In addition, the error position polynomial is represented by
<수학식 26><
상기 수학식 26에서 각 차수의 계수는 다음의 수학식 27과 같다.In
<수학식 27><
그리고 상기 수학식 26은 4중 심벌 에러가 발생하였다면 '0'이 된다.
에러위치를 이미 알고 있다고 가정하고 상기 수학식 25의 4원 일차 연립방정식을 풀면 에러값 Y1, Y2, Y3, Y4는 다음의 수학식 28과 같다.Error location Suppose we already know the equation and solve the quadratic first-order system of
<수학식 28><Equation 28>
지금까지 설명한 에러정정방법에 따라 리드-솔로몬 부호를 복호할 수 있으며, 실제 디지털 기기에 사용되는 에러정정부호는 CIRC(Cross Interleaved Reed-Solomon Code)로 C1, C2의 두 종류로 부호가 구성되어 있다. 즉, 에러정정복호화 과정을 2단계로 구별하여 진행한다.The Reed-Solomon code can be decoded according to the error correction method described so far, and the error correction code used in digital devices is CIRC (Cross Interleaved Reed-Solomon Code) and consists of two types of codes: C1 and C2 . That is, the error correction decoding process is divided into two stages.
C1, C2 부호의 최소 디스턴스(Minimum Distance)를 5라 가정할 때, 에러정정의 경우는까지 에러정정이 가능하며, 이레이저(erasure) 정정인 경우까지 에러정정이 가능하다. 여기서, t는 에러정정 능력을 말한다.If the minimum distance of the C1 and C2 codes is assumed to be 5, in case of error correction, Error correction is possible up to the case of erasure Error correction is possible. Where t is the error correction capability.
본 발명의 알고리즘에서 사용되는 복호순서는 C1 부호를 이용하여 C1 에러정정을 수행한 후, C2 부호 및 C1 플러그(Flag) 정보를 이용하여 C2 에러/이레이저 정정을 수행한다. 그러면, 도면을 참조하여 설명한다.The decoding sequence used in the algorithm of the present invention performs C1 error correction using C1 code, and then performs C2 error / eraser correction using C2 code and C1 plug information. This will be described with reference to the drawings.
도 4는 본 발명에 따른 에러정정방법으로서 C1 디코딩 알고리즘의 흐름도이다.4 is a flowchart of a C1 decoding algorithm as an error correction method according to the present invention.
먼저, 수신신호로부터 신드롬을 계산한다.(400단계)First, a syndrome is calculated from the received signal (step 400).
상기 400단계에서 계산된 신드롬에 의해 에러갯수 판별식을 이용하여 에러갯수를 판별한다.(402단계)The number of errors is determined using an error number discrimination equation based on the syndrome calculated in step 400 (step 402).
단일 심벌 에러 발생시의 신드롬은The syndrome when a single symbol error occurs
이다.to be.
또한, 2중 심벌 에러 발생시의 신드롬은 상기 수학식 10과 같다. 3중 심벌 에러 발생시의 신드롬은 상기 수학식 21과 같다. 4중 심벌 에러 발생시의 신드롬은 상기 수학식 25와 같다.In addition, the syndrome when a double symbol error occurs is shown in Equation (10). The syndrome when a triple symbol error occurs is represented by
상기 수학식 10 내지 12에서 에러갯수를 판별하는 일예를 들어 이미 설명하였다.An example of determining the number of errors in Equations 10 to 12 has already been described.
에러 발생이 없는 경우, 단일 에러가 발생한 경우, 2중 에러가 발생한 경우, 3중 이상의 에러가 발생한 경우를 판별하는 판별식의 설명은 앞에서 이미 설명한 바와 같다.In the case where there is no error, a single error occurs, a double error occurs, and a triple or more error occurs, the description of the discrimination equation is as described above.
즉, 도 4에서 에러갯수 '0' 여부를 판단하는 단계(402-1단계), 에러갯수 '1' 여부를 판단하는 단계(402-2단계), 에러갯수 '2' 여부를 판단하는 단계(402-3단계)는 상기 판별식에 의해서 결정된다.That is, in FIG. 4, determining whether the error number is '0' (step 402-1), determining whether the error number is '1' (step 402-2), and determining whether the error number is '2' ( Step 402-3) is determined by the above discriminant.
상기 402단계에서 판별된 에러의 개수에 따라 에러정정을 수행한다.(404단계)Error correction is performed according to the number of errors determined in step 402 (step 404).
상기 402단계에서 판별된 에러의 개수가 '0'이면 에러정정을 수행하지 않는다. 판별된 에러의 개수가 '1'이면 '1'에러정정을 수행한다.(404-1단계) 또한, 판별된 에러의 개수가 '2'이면 '2'에러정정을 수행한다.(404-2단계)If the number of errors determined in
'1'에러정정(404-1단계)은 상기 수학식 13에서 이미 설명한 바와 같다. 또한, 판별된 에러의 개수가 '2'이면 '2'에러정정을 수행한다.(404-2단계)'1' error correction (step 404-1) is as described above in Equation (13). In addition, if the determined number of errors is '2', '2' error correction is performed (step 404-2).
'1'에러정정(404-1단계)은 상기 수학식 13에서 이미 설명한 바와 같다. 또한, '2'에러정정(404-2단계)은 상기 수학식 14 내지 20에서 이미 설명한 바와 같다. 또한, 상기 404단계에서 판별된 에러의 개수가 '0','1', '2' 이외의 개수이면 에러정정을 수행하지 않는다.'1' error correction (step 404-1) is as described above in Equation (13). In addition, the '2' error correction (step 404-2) is the same as already described in the equations (14) to (20). In addition, if the number of errors determined in
상기 에러개수 판별단계(402단계)에서 판별된 에러의 개수가 '0'이거나 상기 에러정정단계(404단계)를 수행한 후에 상태검색을 수행한다.(406단계)The number of errors determined in the error count determination step (402) is '0' or the state search is performed after the error correction step (404).
상태검색단계(406단계)는 시스템 특성, 데이터 및 플레이어 상황을 검색하기 위한 단계이다. 즉, EFM(Eight/Fourteen Modulation) 데이터 이상 유무, 플레이어(Player) 동작상태, 프레임 싱크(Frame Sync) 검출 유무 등을 확인한 다음 플러그(Flag)를 가변적으로 부가하기 위한 단계이다.The status search step (406) is a step for searching for system characteristics, data, and player status. That is, after checking whether there is an abnormality of EFM (Eight / Fourteen Modulation) data, a player operation state, a frame sync detection, etc., it is a step for variably adding a plug.
EFM 데이터 이상 유무에 대한 설명은 다음과 같다.The explanation on the abnormality of EFM data is as follows.
디스크로부터 입력되는 14비트 채널 데이터가 8비트로 복조되는데,가지의 채널 데이터중가지의 채널 데이터만 변환한다. 나머지 16384-256=16128가지의 데이터는 불필요한 데이터이다. 만일 이러한 불필요한 데이터가 디스크로부터 입력된다면 정상적인 8비트 데이터로 복조될 수 없다. 이때 EFM 데이터 이상 유무 상태 플러그를 셋(set) 시킨다. 마찬가지로, 한 프레임(frame)의 시작 혹은 끝을 지시하는 프레임 싱크 데이터를 7.35㎑(=136㎲)마다 검출하지 못하면 해당 프레임분의 데이터가 이상이 있을 가능성이 크므로 프레임 싱크 검출유무 상태 플러그를 셋시킨다. 플레이어 동작 상태는 정상 동작과 비정상 동작으로 구분되는데 비정상적으로 플레이어가 동작할 때 플레이어 상태 플레그를 셋시킨다. 정상 상태란 노말(normal) 플레이 상태를 의미하며 비정상 상태는 패스트 포워드(fast forward), 리뷰(review), 서치(search) 등의 상태를 의미한다. C1 디코딩에서 사용되는 상태(STATUS)와 그때 부가되는 C1 플러그는 다음의 표 2와 같다.The 14-bit channel data input from the disc is demodulated into 8 bits. Of channel data Convert only channel data. The remaining 16384-256 = 16128 data are unnecessary data. If such unnecessary data is input from the disc, it cannot be demodulated into normal 8-bit data. At this time, the plug of EFM data status is set. Similarly, if frame sync data indicating the start or end of one frame is not detected every 7.35 ms (= 136 ms), the data for the corresponding frame is likely to be abnormal, so set the frame sync detection status plug. Let's do it. The player action state is divided into normal action and abnormal action. When the player operates abnormally, the player state flag is set. The normal state refers to a normal play state, and the abnormal state refers to states such as fast forward, review, and search. STATUS used in C1 decoding and the C1 plug added at that time are shown in Table 2 below.
그리고 상기 표 2에서 "reset/set"의 경우와 같이 두가지 상황을 동시에 설정한 것은 시스템의 특성 및 여러 가지 응용회로에 따라 달라질 수 있음을 의미한다.In addition, as shown in the case of "reset / set" in Table 2, setting two situations simultaneously means that the characteristics of the system and various application circuits may vary.
상기 상태검색단계(406단계)에서 검색된 상태의 양호 여부 및 상기 에러 개수 판별단계(402단계)에서 판별된 에러의 개수가 '3'이상임을 판단하여 플러그를 "0" 또는 "1"로 설정한다.(408단계)The plug is set to "0" or "1" by determining whether the state searched in the state search step (406) is good or the number of errors determined in the error number determination step (402) is greater than or equal to '3'. (Step 408)
상기 상태검색단계(406단계)에서 검색된 상태가 양호하면 플러그를 '0'로 설정한다.(408-1단계) 반면, 상기 상태검색단계(406단계)에서 검색된 상태가 양호하지 않거나 또한, 상기 에러 개수 판별단계(402단계)에서 판별된 에러의 개수가 '3'이상으로 판단되면 상기 에러정정단계(404단계) 및 상태검색단계(406단계)를 거치지 않고 직접적으로 플러그를 '1'로 설정한다.(408-2단계)The plug is set to '0' if the state found in the
도 5는 본 발명에 따른 에러정정방법으로서 C2 디코딩 알고리즘의 흐름도이다.5 is a flowchart of a C2 decoding algorithm as an error correction method according to the present invention.
먼저, 수신신호로부터 신드롬을 계산한다.(500단계)First, a syndrome is calculated from the received signal (step 500).
상기 신드롬 계산단계(500단계)에서 계산된 신드롬에 의해 에러갯수 판별식을 이용하여 에러갯수를 판별한다.(502단계)The number of errors is determined using an error number discrimination equation by the syndrome calculated in the syndrome calculation step (step 500).
도 4의 설명과 같이 단일 심벌 에러 발생의 신드롬은As shown in FIG. 4, the syndrome of occurrence of a single symbol error is
이다.to be.
또한, 2중 심벌 에러 발생시의 신드롬은 상기 수학식 10과 같다. 3중 심벌 에러 발생시의 신드롬은 상기 수학식 21과 같다. 4중 심벌 에러 발생시의 신드롬은 상기 수학식 25와 같다.In addition, the syndrome when a double symbol error occurs is shown in Equation (10). The syndrome when a triple symbol error occurs is represented by
상기 수학식 10 내지 12에서 에러갯수를 판별하는 일예를 들어 이미 설명하였다.An example of determining the number of errors in Equations 10 to 12 has already been described.
에러 발생이 없는 경우, 단일 에러가 발생한 경우, 2중 에러가 발생한 경우, 2중 이상의 에러가 발생한 경우를 판별하는 판별식의 설명은 앞에서 이미 설명한 바와 같다.In the case where there is no error, a single error occurs, a double error occurs, and a description of the discrimination equation for determining the case where a double error or more occurs has been described above.
즉, 도 5에서 에러갯수 '0' 여부를 판단하는 단계(502-1단계), 에러갯수 '1' 여부를 판단하는 단계(502-2단계), 에러갯수 '2' 여부를 판단하는 단계(502-3단계)는 상기 판별식에 의해서 결정된다.That is, the step of determining whether the error number '0' (step 502-1), the step of determining whether the error number '1' (step 502-2), the step of determining whether or not the error number '2' in FIG. Step 502-3) is determined by the discriminant.
상기 에러개수 판별단계(502단계)에서 에러갯수 '2' 여부를 판단하는 단계(502-3단계)의 판단이 에러갯수가 '2'로 판단되면 현재의 에러 위치가 C1 디코딩 알고리즘에서 설정된 플러그에 의해 설정된 에러 위치와 일치하는가를 판단한다.(504단계)If the determination of the number of errors in
상기 에러개수 판별단계(502단계) 및/또는 상기 플러그 일치 여부 판단단계(504단계)를 통하여 상기 에러개수 판별단계(502단계)에서 판별된 에러개수가 '1'개이면 '1'에러 정정을 수행하고, 상기 플러그 일치 여부 판단단계(504단계)의 판단이 현재 검출된 에러의 위치와 C1 디코딩 알고리즘에서 설정된 에러의 위치가 일치하면 '2' 에러 정정을 수행한다.(506단계)If the number of errors determined in the error number determination step (502) through the error number determination step (502) and / or the plug match determination step (504) is '1' error correction is performed. In
상기 '1'/'2' 에러정정단계(506단계)는 '1' 에러정정단계(506-1단계)와 '2' 에러정정단계(506-2단계)로 구분된다. '1' 에러정정단계(506-1단계)는 상기 수학식 13에서 설명한 바와 같이 이루어진다. 또한, '2' 에러정정단계(506-2단계)는 상기 수학식 14 내지 20에서 설명한 바와 같이 이루어진다.The '1' / '2' error correction step (step 506) is divided into an '1' error correction step (step 506-1) and a '2' error correction step (step 506-2). An error correction step 506-1 is performed as described in Equation 13 above. In addition, the '2' error correction step (step 506-2) is performed as described in equations (14) to (20).
상기 에러개수 판별단계(502단계)의 에러갯수 '2'여부를 판단하는 단계(502-3단계)의 판단이 현재 검출된 에러의 개수가 '2'가 아니면 이레이저 정정여부를 판단한다.(508단계)The determination of the step (502-3) of the error number determination step (502) determines whether the error is corrected if the number of detected errors is not '2'. 508 steps)
상기 이레이저 정정여부 판단단계(508단계)의 판단은 다음의 표 3에서 상세히 설명한다.The determination of the erasure correction step (508) is described in detail in Table 3 below.
상기 표 2에서와 같이 상기 표 3에서도 ON 또는 OFF("ON/OFF")의 두가지 상태를 선택적으로 설정한 것은 시스템의 특성 및 여러가지 응용회로에 따라 달라질 수 있음을 의미한다.As shown in Table 2, the selective setting of two states of ON or OFF ("ON / OFF") also in Table 3 means that the characteristics of the system and various application circuits may vary.
상기 이레이저 정정여부 판단단계(508)의 판단이 상기 표 3에 의해 'ON'이면 플러그의 개수를 판단한다.(510단계)If the determination of the
상기 플러그 개수 제1판단단계(510단계)에서 판단된 플러그의 개수가 '3' 또는 '4'이면 '3'/'4' 이레이저 정정을 수행한다.(512단계)If the number of plugs determined in the first determination step (510) is '3' or '4', the '3' / '4' erasure correction is performed (step 512).
상기 '3'/'4' 이레이저 정정단계(512단계)에서 '3' 이레이저 정정은 상기 수학식 21 내지 24에서 설명한 바와 같이 이루어진다. 또한 '4' 이레이저 정정은 상기 수학식 25 내지 28에서 설명한 바와 같이 이루어진다.In the '3' / '4' erasure correction step (step 512), the '3' erasure correction is performed as described in
상기 '3'/'4' 이레이저 정정단계(512단계)에서 '3' 또는 '4' 이레이저 정정이 수행되고 난 후, 이레이저 정정이 올바른 수행 여부를 확인하기 위하여 검산을 수행한다.(514단계)After the '3' or '4' erasure correction is performed in the '3' / '4' erasure correction step (step 512), a check is performed to confirm whether the erasure correction is correctly performed. Step 514)
상기 플러그 일치 여부 판단단계(504단계) 및/또는 상기 이레이저 정정여부 판단단계(508단계)를 통하여 상기 플러그 일치 여부 판단단계(504단계)의 판단이 현재 검출된 에러의 위치와 C1 디코딩 알고리즘에서 설정된 에러의 위치가 일치하지 않거나 또는 상기 이레이저 정정여부 판단단계(508)의 판단이 상기 표 3에 의해 'OFF'이면 플러그의 개수를 판단한다.(516단계)The determination of the plug matching determination step (504) through the plug matching determination step (504) and / or the erasure correction determination step (508) is performed in the position of the currently detected error and the C1 decoding algorithm. If the position of the set error does not match or the determination of the eraser
상기 신드롬 계산단계(500단계) 내지 상기 플러그 개수 제2판단단계(516)가 수행되고 난 후 플러그를 설정한다.(518단계)The plug is set after the syndrome calculation step (500) to the plug number second determination step (516) is performed (step 518).
상기 플러그 설정단계(518단계)는 플러그 '0' 설정단계(518-1단계), 플러그 '1' 설정단계(518-2단계), 플러그 '복사(copy)' 설정단계(518-3단계)로 구분된다.The plug setting step (step 518) includes plug '0' setting step (step 518-1), plug '1' setting step (step 518-2), plug 'copy' setting step (step 518-3) Separated by.
상기 플러그 '0' 설정단계(518-1단계)에서는 상기 에러개수 판별단계(502단계)의 에러갯수 '0' 여부를 판단하는 단계(502-1단계)의 판단이 현재 검출된 에러가 없거나, 상기 '1'/'2' 에러정정단계(506단계)에서 '1' 또는 '2' 에러가 정정되었거나, 또는 상기 검산단계(514단계)에서 검산된 결과가 양호할 때 플러그를 '0'으로 설정한다.In the plug '0' setting step (step 518-1), the determination of the step (502-1) of determining whether the error number '0' in the error number determination step (502) does not include an error currently detected; When the error '1' or '2' is corrected in the '1' / '2' error correction step (step 506) or the result of the check in the check step (514) is satisfactory, the plug is changed to '0'. Set it.
상기 플러그 '1' 설정단계(518-2단계)는 상기 플러그 개수 제1판단단계(510단계)에서 판단된 플러그의 개수가 '0', '1', '2' 이거나, 상기 검산단계(514단계)에서 검산된 결과가 불량이거나, 또는 상기 플러그 개수 제2판단단계(516)에서 판단된 플러그의 개수가 '1' 또는 '2'일 때 플러그를 '1'로 설정한다.In the plug '1' setting step (518-2), the number of plugs determined in the plug number first determination step (510) is '0', '1', or '2', or the checking step (514). The plug is set to '1' when the result checked in step) is bad or the number of plugs determined in the plug determination
상기 플러그 '복사' 설정단계(518-3단계)는 상기 플러그 개수 제1판단단계(510단계)에서 판단된 플러그의 개수가 '5'이거나, 또는 상기 플러그 개수 제2판단단계(516)에서 판단된 플러그의 개수가 '2'를 초과할때 플러그를 '복사' 설정한다.In the plug 'copy' setting step (step 518-3), the number of plugs determined in the plug number first determination step (510) is '5', or the plug number is determined in the
이제 본 발명의 다른 목적을 달성하기 위한 에러정정장치를 설명한다.Now, an error correction apparatus for achieving another object of the present invention will be described.
도 6a 내지 도 6b는 본 발명에 따른 에러정정장치의 블록도이다.6A to 6B are block diagrams of an error correction apparatus according to the present invention.
특히, 도 6a는 본 발명에 따른 에러정정장치의 에러정정제어부의 블록도이고, 도 6b는 에러정정연산부의 블록도이다.In particular, FIG. 6A is a block diagram of an error correction control unit of the error correction apparatus according to the present invention, and FIG. 6B is a block diagram of an error correction operation unit.
먼저, 도 6a에 도시된 에러정정제어부는 프로그램 롬(600), 상기 프로그램 롬(600)의 출력신호를 입력신호로 하는 프로그램 레지스터(6020), 상기 프로그램 레지스터(6020)의 출력신호를 입력신호로 하는 프로그램 디코더(604), 상기 프로그램 디코더(604)의 일측 출력신호와 도 6b에 도시된 바와 같은 에러정정연산부의 출력신호를 입력신호로 하는 점프 콘트롤부(606), 상기 점프 콘트롤부(606)의 출력신호와 상기 프로그램 레지스터(602)의 출력신호 및 상기 프로그램 디코더(604)의 다른 출력신호를 입력신호로 하는 프로그램 어드레스 카운터(608), 및 상기 프로그램 디코더(604)의 출력신호를 입력신호로 하여 에러정정연산부(도 6b)로 출력하는 연산 제어부(610)로 구성된다.First, the error correction control unit illustrated in FIG. 6A uses a
한편, 도 6b에 도시된 에러정정연산부는 어드레스 발생기(650),변환기(652),변환기(654), C1 플러그 카운터(656), 제로 카운터(658), 입출력(i/o) 레지스터(660), 에러위치 저장 레지스터(662), 제1신호선택기(664), 역원기(666), 트레이(trace) 변환기(668), 제2신호선택기(670), 제3신호선택기(672), MA 레지스터(674), MB 레지스터(676), AB 레지스터(678), TEMP 레지스터(680), 신드롬 생성기(682), C1/C2 플러그 발생기(684), RAM(686), 곱셈기(688), 덧셈기(690), 및 데이터 버스(data bus)로 구성된다.On the other hand, the error correction operation unit shown in Figure 6b, the
그러면 도 6a 및 도 6b에 도시된 에러정정제어부 및 에러정정연산부를 구성하는 구성요소들간의 상호 유기적인 동작 설명을 실시한다.Next, a description will be given of the mutual organic operation between the components constituting the error correction control unit and the error correction operation unit shown in FIGS. 6A and 6B.
도 6a에 도시된 바와 같은 에러정정제어부는 에러정정 기능이 상기 도 4 및 도 5에서 설명된 바와 같은 알고리즘의 플로우(flow) 대로 수행되도록 제어신호를 발생한다. 프로그램 롬(600)은 에러정정 복호 알고리즘이 코디(coding)화 되어 내장된다. 즉, 상기 도 4 및 도 5에서 설명한 바와 같은 C1 및 C2 디코딩 알고리즘이 코딩화 되어 내장된다. 프로그램 레지스터(602)는 상기 프로그램 롬(600)에서 출력되는 인스트럭션(instruction)을 저장한다. 프로그램 디코더(604)는 상기 프로그램 레지스터(602)에 저장된 인스트럭션을 소정의 코딩 형태에 따라 제어신호를 출력한다. 점프 콘트롤부(606)는 상기 프로그램 디코더(604)로부터 출력되는 신호와 도 6b에 도시된 에러정정연산부로부터 출력되는 신호를 입력신호로 하여 에러 정정시 특정 스텝(step)이나 인스트럭션을 일정 주기만큼 유지하거나, 다른 스텝으로 분기할 경우를 판단하여 그 때의 상황에 알맞는 제어신호를 발생한다. 프로그램 어드레스 카운터(608)는 상기 프로그램 레지스터(602)로부터 출력되는 신호와 상기 프로그램 디코더(604)로부터 출력되는 신호 및 상기 점프 콘트롤부(606)로부터 출력되는 제어신회에 의해 어드레스(address)를 카운팅(counting)한다. 연산제어부(610)는 상기 프로그램 디코더(604)로부터 출력된 신호에 의해 에러정정에 필요한 부호 데이터의 입출력조절신호를 발생한다.The error correction control unit as shown in FIG. 6A generates a control signal such that the error correction function is performed according to the flow of the algorithm as described with reference to FIGS. 4 and 5. The
한편, 도 6b에 도시된 바와 같은 에러정정연산부는 에러정정을 위한 연산처리와 부호 데이터 및 C1/C2 플러그를 리드/라이트(read/write)시에 필요한 어드레스를 발생한다. 어드레스 발생기(650)는 에러정정에 필요한 부호 데이터와 플러그를 리드/라이트(read/write)시에 사용하는 어드레스를 발생한다. 부호 데이터는 C1 데이터와 C2 데이터를 일컫는다. 또한, 플러그는 C1 플러그와 C2 플러그를 일컫는다.변환기(652)는 데이터 버스(692)에 접속되고, 유한체상의 임의의 원소를 정수값(i)로 변환한다. 상기변환기(652)에서 변환된 정수들은 에러위치 저장 레지스트(662)로 출력된다.변환기(654)는 데이터 버스(692)에 접속되고, 정수값(i)를 유한체상의 임의의 원소로 변환한다. 이들 임의의 원소들은 에러정정 연산에 사용된다. C1 플러그 카운터(656)는 데이터버스(692)에 접속되고, C2 부호 에러정정시 C2 부호 데이터를 읽은 후 C1 플러그를 읽어들이는데 이때 C1 플러그의 개수를 계수화한다. 제로 카운터(658)는 데이터버스(692)에 접속되고, 제로 데이터를 검출하여 개수를 측정 후 측정 개수를 출력한다. 입출력 레지스터(660)는 데이터 버스(692)에 접속되고, 부호 데이터 및 플러그 등을 입출력할 때 사용되는 인터페이스 회로이다. 에러위치 저장 레지스터(662)는 상기 어드레스 발생기(650)로부터 출력되는 일측의 출력신호외 상기변환기(652)로부터 출력되는 일측의 출력신호를 입력신호로 하여 에러정정 연산 도중에 발생된 에러의 위치를 정수값으로 저장하거나 상기 어드레스 발생기(650)로부터 출력되는 이레이저의 위치를 정수값으로 저장한다. 제1신호선택기(664)는 상기 어드레스 발생기(650)로부터 출력된 및 상기 에러위치 저장 레지스터(662)로부터 출력된 신호를 선택적으로 출력한다. 역원기(666)는 데이터 버스(692)에 접속되고 유한체상의 임의의 원소를혹은표현으로 변환 출력한다. 역원기(666)는 에러정정 연산중 나눗셈 연산을 수행할 때 사용된다. 트레이스 변환기(668)는 데이터 버스(692)에 접속되고, 2중 심벌 에러정정에 사용되며 에러위치 다항식의 근을 구한다. 이에 대한 변환표는 상기 표 1에서 이미 설명한 바와 같이 수행한다. 제2신호선택기(670)는 데이터 버스(692)에 접속되어 8비트 내부 데이터 버스상의 데이터 혹은 상기 역원기(666)로부터 출력되는 데이터를 선택적으로 출력한다. 제3신호선택기(672)는 데이터버스(692)에 접속되어 8비트 내부 데이터 버스상의 데이터 혹은 상기 트레이스 변환기(668)를 거친 데이터를 선택적으로 출력한다. MA 레지스터(674)는 상기 제2신호선택기(670)로부터 출력된 신호를 일시적으로 저장한다. MB 레지스터(676)는 상기 제3신호선택기(672)로부터 출력되는 데이터를 일시적으로 저장한다. AB 레지스터(678)는 데이터 버스(692)에 접속되어 데이터를 일시적으로 저장한다. TEMP 레지스터(680)는 데이터 버스(692)에 접속되어 연산도중에 발생된 템포러리(Temporary) 데이터를 일시적으로 저장한다. 신드롬 생성기(682)는 데이터 버스(692)에 접속되어 부호 데이터로부터 신드롬 요소를 구하는 회로이며내지까지 구하는 실시예를 상기 도 3a 내지 도 3d에서 보인 바 있다. C1/C2 플러그 생성기(684)는 데이터버스(692)에 접속되고, 에러정정 처리 후 각 부호 데이터에 플러그 정보를 부가하거나 혹은 플러그 정보를 복사한다. RAM(686)은 데이터 버스(6920)에 접속되어 에러정정 연산 도중 발생된 중요 계수 데이터나 각종 근을 저장한다. 곱셈기(688)는 상기 MA, 레지스터(674)로부터 출력된 신호와 상기 MB 레지스터(676)로부터 출력된 신호를 입력신호로 하여 유한체상의 원소들을 곱한다. 덧셈기(690)는 상기 곱셈기(688)로부터 출력된 신호와 상기 AB 레지스터(678)로부터 출력된 신호를 입력신호로 하여 유한체상의 원소들을 더한다. 상기 덧셈기(690)는 익스클루시브-오아(Exclusive-OR) 게이트로 구성된다.On the other hand, the error correction operation unit as shown in Fig. 6b generates an operation process for error correction and an address necessary for reading / writing the sign data and the C1 / C2 plug. The
상술한 바와 같은 본 발명에 의하면 다음과 같은 효과를 갖는다.According to the present invention as described above has the following effects.
종래의 디지털 A/V(Audio/Video) 기기에 사용되는 리드-솔로몬 에러정정장치에서는 C1 코드에서 2 에러까지 정정하고, C2 코드에서는 4 이레이저까지 정정이 가능하나 실제로는 2 에러까지만 정정하였다. 2 에러만 정정할 경우 버스트(burst) 에러가 코드 워드 개수로 8개 이상이 발생하면 에러정정을 할 수 없으나, 본 발명에서와 같이 4 이레이저 정정을 수행할 경우 16개의 코드 워드까지 연속적으로 에러가 발생하여도 에러정정을 수행할 수 있는 효과를 제공한다.The Reed-Solomon error correction device used in the conventional digital A / V (Audio / Video) device corrects up to 2 errors in the C1 code, and up to 4 erasers in the C2 code, but only up to 2 errors. If only 2 errors are corrected If 8 or more burst errors occur as the number of code words, error correction cannot be performed. However, if 4 erasure correction is performed as in the present invention, up to 16 code words can be used continuously. Even if the error occurs, the error correction can be performed.
Claims (11)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970010382A KR100239798B1 (en) | 1997-03-25 | 1997-03-25 | Error correction method in the reproduction of digital signal and apparatus therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970010382A KR100239798B1 (en) | 1997-03-25 | 1997-03-25 | Error correction method in the reproduction of digital signal and apparatus therefor |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19980074516A KR19980074516A (en) | 1998-11-05 |
KR100239798B1 true KR100239798B1 (en) | 2000-01-15 |
Family
ID=19500746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970010382A KR100239798B1 (en) | 1997-03-25 | 1997-03-25 | Error correction method in the reproduction of digital signal and apparatus therefor |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100239798B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100532373B1 (en) * | 1997-08-25 | 2006-03-24 | 삼성전자주식회사 | Error correction method in reproduction of digital signal |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100564532B1 (en) * | 1997-07-24 | 2006-05-25 | 삼성전자주식회사 | Error correction method by generation error flag |
KR101437396B1 (en) * | 2008-02-27 | 2014-09-05 | 삼성전자주식회사 | Memory system comprising ecc block for reducing a latency and error correction method thereof |
-
1997
- 1997-03-25 KR KR1019970010382A patent/KR100239798B1/en not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100532373B1 (en) * | 1997-08-25 | 2006-03-24 | 삼성전자주식회사 | Error correction method in reproduction of digital signal |
Also Published As
Publication number | Publication date |
---|---|
KR19980074516A (en) | 1998-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0167627A1 (en) | Method and apparatus for decoding error correction code | |
JP3234130B2 (en) | Error correction code decoding method and circuit using this method | |
JPH084233B2 (en) | Error correction code decoding device | |
JPS632370B2 (en) | ||
US6138263A (en) | Error correcting method and apparatus for information data having error correcting product code block | |
KR100239798B1 (en) | Error correction method in the reproduction of digital signal and apparatus therefor | |
KR0148004B1 (en) | Error detection apparatus | |
KR100330642B1 (en) | Error Correction Method and Error Correction Device | |
KR100281946B1 (en) | Syndrome calculation device | |
KR100532373B1 (en) | Error correction method in reproduction of digital signal | |
JP2685180B2 (en) | Error correction device | |
JP2553576B2 (en) | Error correction device | |
JPH0691471B2 (en) | Error correction circuit | |
US20240063824A1 (en) | Bose-chadhuri-hocquenghem (bch) encoder and method for generating a bch signal for navigation signal | |
KR100246342B1 (en) | Reed solomon error correction apparatus | |
JPS6160618B2 (en) | ||
JP3583905B2 (en) | Error correction device | |
JP3099890B2 (en) | Error correction device for BCH code | |
JP2553575B2 (en) | Error correction device | |
JP3223513B2 (en) | Error correction decoding device | |
KR0149298B1 (en) | Reed-solomon decoder | |
KR20000062472A (en) | Error-detecting device and method thereof | |
JP3595271B2 (en) | Error correction decoding method and apparatus | |
JP2662457B2 (en) | BCH code decoding circuit | |
JPH0636286B2 (en) | Error correction method and apparatus |
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: 20071001 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |