KR0141826B1 - 압축 데이타의 에러 정정 방법 - Google Patents
압축 데이타의 에러 정정 방법Info
- Publication number
- KR0141826B1 KR0141826B1 KR1019910024541A KR910024541A KR0141826B1 KR 0141826 B1 KR0141826 B1 KR 0141826B1 KR 1019910024541 A KR1019910024541 A KR 1019910024541A KR 910024541 A KR910024541 A KR 910024541A KR 0141826 B1 KR0141826 B1 KR 0141826B1
- Authority
- KR
- South Korea
- Prior art keywords
- error
- data
- correction
- decoding
- pointer
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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
-
- 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/00007—Time or data compression or expansion
-
- 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/1806—Pulse code modulation systems for audio signals
- G11B20/1809—Pulse code modulation systems for audio signals by interleaving
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Signal Processing (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Multimedia (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
본 발명은 압축된 디지탈 데이타의 전송을 위한 에러 정정 방법에 관한 것으로, 입력 데이타 계열에 K 심볼의 정정 능력을 갖는 패리티를 부가하여 전송된 데이타 계열에 발생한 에러를 2중 복호 방법으로 정정하는 시스템에서 C1 및 C2 계열 복호시 K 심볼까지의 에러를 정정한후, 정정된 데이타의 에러 유무를 판단함으로써 가정용 디지탈 브이 씨 알과 같이 높은 압축률로 데이타를 압축하여 기록, 재생하는 장치에서 에러 데이타의 오검출 및 오정정을 억제시켜 압축 데이타의 신장시에 발생되는 에러 전파에 따른 영향을 최소화하고, 정정 능력을 향상시킬 수 있다.
Description
제1도의 (a)는 이중 부호화의 C1 계열 엔코딩 설명도.
(b)는 이중 부호화의 C2 계열 엔코딩 설명도.
제2도는 이중 부호화 및 인터리브 블록도.
제3도는 씨 디 피의 C1 계열 복호과정에 대한 신호 흐름도.
제4도는 씨 디 피의 C2 계열 복호과정에 대한 신호 흐름도.
제5도는 본 발명의 압축 데이타의 에러 정정 방법이 적용되는 C1 계열 복호 블록도.
제6도는 제5도의 신호 흐름도.
제7도는 본 발명의 압축 데이타의 에러 정정 방법이 적용되는 C2 계열 복호 블록도.
제8도는 제7도의 신호 흐름도.
* 도면의 주요 부분에 대한 부호의 설명
11:제1신드롬 연산부 12:제1 A,B,C 연산부
13:제1제어부 14,24:1 에러 정정부
15,25:2 에러 정정부 16:제2신드롬 연산부
17:제2제어부 18,20,32:스위칭부
19,33:에러 포인트 부가부 21:제3신드롬 연산부
22:제2 A,B,C 연산부 23:제3제어부
26:제4신드롬 연산부 27:제6제어부
28:에러 포인트 카운터 29:제7제어부
30:소실 정정부 31:버퍼
33:에러 포인트 리세트부
본 발명은 압축된 디지탈 데이타의 전송을 위한 에러 정정 방법에 관한 것으로, 특히 가정용 디지탈 브이 씨 알과 같이 높은 압축률로 데이타를 압축하여 기록, 재생하는 장치에서 에러 데이타의 오검출 및 오정정을 억제시켜 압축 데이타의 신장시에 발생되는 에러 전파에 따른 영향을 최소화하고, 정정 능력을 향상시키는데 적당하도록한 압축 데이타의 에러 정정 방법에 관한 것이다.
디지탈 데이타를 기록하거나 재생하는 일반적인 장치는 GF(GALOIS FIELD, 28)상에서 리드 솔로몬(RS:REED SOLOMON) 부호를 사용하는데, 왜냐하면, RS 부호가 워드(8비트)단위의 연산을 하므로 비트 단위의 연산을 하는 부호에 비하여 고속 연산이 가능하고, 기록 부호화에서 사용하는 8-8 변환이나 8-10 변환 등의 워드 단위 정정에 적합하기 때문이다. 또한, 정정 능력을 향상시키기 위하여 RS 이중 부호화를 행하고, 버스트 에러를 랜덤 에러화 하기 위하여 인터리브(Inter leave)조합을 사용한다.
에러 정정의 기본 특성을 살펴보면, 에러 정정 부호화시에 사용하는 원시원(Primitive Element)의 연속하는 누승의 갯수에 따라 패리티 수가 결정되고, 그 부호의 에러 정정 능력 및 검출 능력이 다음과 같이 결정된다.
총 부호 길이 N, 정보 길이 K로 이어지는 (N,K) 부호어에서
패리티 수 = N - K
최소 거리 DMIN= N - K + 1
에러 정정 능력 ≤(N - K)/2
에러 검출 능력 ≤ N - K
소실 정정 능력 ≤ N - K
T개의 에러를 정정하고 동시에 T + D개의 에러를 검출하려면 다음 식을 만족하여야 한다.
DMIN≥ 2T + D + 1
즉, 동일한 능력의 정정 부호의 사용시 에러 정정 능력과 에러 검출 능력은 서로 상충관계에 놓이게 된다.
이중부호화를 살펴보면, 제1도에서와 같이 데이타에 대하여 먼저 수직방향으로 각 데이타의 연레 대한 엔코딩을 행하여 검사 패리티를 부가하고(C2 엔코딩), 이후 C2 엔코딩된 전체 데이타에 대하여 가로방향으로 각 데이타 행에 대한 엔코딩을 수행하여 검사 패리티를 부가하며(C1 엔코딩), 수신단에서의 에러 정정 복호시에는 상기의 연순으로 C1 엔코딩, C2 엔코딩을 수행한다.
부호기(Encoder)에 대하여 살펴보면,
유한체 : GF(28)
체생성 다항식 : X8+ X4+ X3+ X2+1
연속하는 원시원 α의 누승으로 α0(=1),α1,α2,α3를 선택
α0의 최소 다항식 M0(X) = X -1
α1의 최소 다항식 M1(X) = X -α
α2의 최소 다항식 M2(X) = X -α2
α3의 최소 다항식 M3(X) = X -α3
부호 생성 다항식 G(X) = LCM{ M0(X), M1(X), M2(X), M3(X) }
= (X-1)(X-α)(X-α2)(X-α3)
= X4+α75X3+α249X2+α78X + α6
여기서, C1 및 C2 계열의 부호화를 살펴보면,
C1 계열 부호
정보 다항식 A(X) = a23X23+ a22X22+ … + a1X1+ a0X0
부호 다항식 V(X) = A(X) X4- A(X) X4mod G(X)
부호 심볼수 N = 28
검사 심볼수 M = 4
정보 심볼수 K = 24
에러 정정 능력 : 2 에러 정정
* 단축 RS(28,24) 부호
C2 계열 부호
정보 다항식 A(X) = a27X27+ a26X26+ … + a1X1+ a0X0
부호 다항식 V(X) = A(X) X4- A(X) X4mod G(X)
부호 심볼수 N = 32
검사 심볼수 M = 4
정보 심볼수 K = 28
에러 정정 능력 : 2 에러 정정
소실 정정 능력 : 4 소실정정
* 단축 RS(32,28) 부호
1 심볼 에러 정정
에러 위치수 γ1= S1/S0
에러 크기 η1= S0
2 심볼 에러 정정
에러 위치 다항식 : σ(X) = X2+ σ1X + σ2
에러 위치수 γ1, γ2는 에러 위치 다항식에 GF(28)의 원 α0, α1, α255를 대입하여 구한다. 즉,
σ(αi) = 0
σ(αj) = 0
를 만족하는 원이 에러 위치수
Υγ1= αi
Υγ2= αj
로 되며, 에러 크기 η1, η2는 다음과 같다.
한편, 복호 과정을 살펴보면
부호 다항식을 V(X), 에러 다항식을 E(X)라 할 때,
수신 다항식 U(X) = V(X) + E(X)
* U(α) = V(α) + E(α) = E(α)
C1 계열 복호에 있어서,
첫째, 신드롬 연산
부호 구성시 원시원의 누승으로 α0, α1, α2, α3으로 사용하였으므로 i, j, K....심볼에 에러가 발생되었다면,
αi: 에러 심볼 위치
αj: 에러 크기
라 할 때, 신드롬은 다음의 식과 같이 된다.
S0= E(α0) = Ei+ Ej+ Ek+ …
S1= E(α1) = αiEi+ αjEj+ αkEk+ …
S2= E(α2) = α2iEi+ α2jEj+ α2kEk+ …
S3= E(α3) = α3iEi+ α3jEj+ α3kEk+ …
둘째, 에러 갯수 판단
비 에러 : S0= 0, S3= 0, A = B = C = 0
1 에러 : S0 0, S3 0, A = B = C = 0
2 에러 : A0, B0, C0
3 에러 이상 : 상기의 조건 외
C2 계열 복호에 있어서,
신드롬 연산, 에러 갯수 판단, 1 심볼 에러 정정, 2 심볼 에러 정정 과정은 C1 계열 복호시와 같고, 그 외의 소실정정은 다음과 같다.
소실 정정
η1= αi심볼 위치의 에러 크기
η2= αj심볼 위치의 에러 크기
η3= αk심볼 위치의 에러 크기
η4= αl심볼 위치의 에러 크기
라고 할 때, 에러 포인터에 의해 에러 의 위치를 알고 있으므로 다음과 같이 에러의 크기만을 구한다.
η1= 1/{ (αi+ αj) (αi+ αk) (αi+ αl) }
X{(S3+ (αj+ αk+αl)S2+ (αjαk+ αkαl+ αlαj)S1+ αjαkα1S0}
η2= 1/{ (αj+ αi) (αj+ αk) (αj+ αl) }
X{(S3+ (αi+ αk+αl)S2+ (αiαk+ αkαl+ αlαj)S1+ αiαkα1S0}
η3= 1/{ (αk+ αi) (αk+ αj) (αk+ αl) }
X{(S3+ (αi+ αj+αl)S2+ (αiαj+ αjαl+ αlαi)S1+ αiαjα1S0}
η4= 1/{ (αl+ αi) (αl+ αj) (αl+ αl) }
X{(S3+ (αi+ αj+αk)S2+ (αiαj+ αjαk+ αkαl)S1+ αjαkα1S0}
한편, 제2도에서와 같이 에러 정정부 주위에서 3차례의 인터리브(Inter leave)과정을 통하여 버스트 에러의 발생시 그 버스트 에러를 랜덤 에러화 함으로써 정정이 용이하도록 하였으며, 여기서 제3도 및 제4도를 참조하여 일반적인 CDP의 에러 복호 방식의 특징으로 설명하면 다음과 같다.
CDP의 에러 복호 방법은 기록 매체의 특성과 기록하는 정보가 음성이라는 특성에 따라 에러가 확실히 정정 능력 범위내에 있는 경우에만 정정된 데이타를 출력하고, 그 외의 경우에는 포인터를 부가하여 출력하였다.
결과적으로, C1,C2 계열 복호는 모두 2심볼 에러까지만을 정정하고, 소실 정정을 사용하지 않았으며, 에러 정정 복호후에는 데이타의 많은 심볼에 에러가 있을 확률이 높음을 나타내는 포인터가 부가되어 출력된다.
이와같이 에러 정정 부호의 능력을 에러 정정보다는 에러의 검출에 치중하는 이유는 기록하는 정보가 압축된 데이타가 아니기 때문에 에러 정정 처리후에 에러 심볼의 수정이 용이하고, 기록하는 정보가 음성이기 때문에 수정에 의한 데이타가 출력되어도 큰 지장이 없기 때문이다.
C2 계열 복호시 포인터를 부가함에 있어서 복잡한 조건을 부여하는 이유는 정정된 데이타 자체에 오정정이 발생되었는지의 여부를 알 수 없기 때문에 오검출, 오정정을 피하고 적절한 포인터를 부가하기 위함이다.
그러나, 이와같은 종래의 에러 정정 기법에 있어서는 오정정을 방지하기 위하여 에러의 정정 보다는 검출에 치중하였으므로 에러 정정 복호 후 데이타에 많은 양의 포인터가 부가하여 출력시켜야 하나, 가정용 디지탈 브이 씨 알은 높은 비율로 압축된 데이타로 신호를 처리하기 때문에 이와 같은 포인터를 이용하여 에러를 수정하기가 어렵다. 단 에러가 발생한 심볼이 있는 압축 단위 블록 전체를 이전 플레임의 해당 블록으로 치환하는 방법이 있으나 이러한 수정 방법은 블록 효과를 야기시키게 될 뿐더러 동화상의 경우에는 이에 따른 화질의 열화가 심하게 발생되는 문제점이 있다. 그리고, C2 계열 복호에 있어서는 C1 계열 복호시 부가한 포인터를 에러 정정을 사용하는 소실 정정에 실행하지 않고 다만 에러의 검출에 사용함에 따라 C2 계열 복호시에도 2 심볼 에러까지만 정정하게 되어 결과적으로 에러 정정 능력이 낮게되는 결함이 있다.
따라서, 본 발명의 목적은 원화상 복원시의 에러 포인터의 개수를 줄이고, 에러 데이타의 오검출을 억제시켜 에러 전파에 따른 영향이 최소화되게 하고, 정정능력이 향상되게 하는 압축 데이타의 에러 정정 방법을 제공함에 있다.
본 발명의 목적을 달성하기 위한 압축 데이타의 에러 정정 방법은 입력 데이타 계열에 K 심볼의 정정 능력을 갖는 패리티를 부가하여 전송된 데이타 계열에 발생한 에러를 2중 복호 방법으로 정정하는 데이타의 에러정정 방법에 있어서, C1 계열의 데이타를 입력받아 에러개수를 판단하여 K 심볼까지 에러를 정정하고, 에러 여부에 따라 포인터를 부가해서 C1 계열 데이타를 출력하는 C1 계열 복호단계와; C2 계열의 데이타를 입력받아 에러개수를 판단하여 K심볼까지 에러를 정정하고, 정정 데이타의 에러 여부에 따라 소실정정을 한 후 포인터를 복사하거나 또는 클리어시켜 C2 계열 데이타를 출력하는 C2계열 복호단계를 포함하여 이루어진다.
제5도는 본 발명의 압축 데이타 전송 에러 정정 방법이 적용되는 C1 계열 복호 블록도로서 이에 도시한 바와 같이, 수신 데이타 입력단에서 데이타를 입력하여 신드롬(S0-S3)을 연산하는 제1신드롬 연산부(11)와, 상기 제1신드롬 연산부(11)로부터 신드롬(S0-S3)을 공급받아 A(= S1 2+ S0S2), B(= S0S3+ S1S2), C(= S2 2+ S1S3)를 연산하는 제1 A,B,C연산부(12)와, 상기 제1연산부(11) 및 제1 A,B,C연산부(12)에서 신드롬(S0,S1) 및 A,B,C 값을 공급 받아 각 값에 따른 심볼 에러수를 구한 다음 그 에러수에 따라 제어신호(P,Q,R,S)를 출력하는 제1제어부(13)와, 상기 제1제어부(13)로부터 제어신호(Q)가 입력될때 상기 제1신드롬 연산부(11)로부터 신드롬(S0,S1)을 입력하여 1 에러의 위치 및 크기를 구한 후 1 에러를 정정하는 1 에러 정정부(14)와, 상기 제1제어부(13)로부터 제어신호(R)가 입력될때 상기 제1신드롬 연산부(11)로부터 신드롬(S0-S3)을 입력하여 2 에러의 위치 및 크기를 구한 후 2 에러를 정정하는 2 에러 정정부(15)와, 상기 1,2 에러 정정부(14),(15)로부터 정정된 데이타를 공급받아 신드롬(S0'-S3')을 연산하는 제2신드롬 연산부(16)와, 상기 제2신드롬 연산부(16)의 출력 신드롬 중 하나라도 0이 아닐때 스위칭 제어신호(U)를 출력하고 모두 0인 경우 스위칭 제어신호(T)를 출력하는 제2제어부(17)와, 상기 제어신호(S,U)가 입력될때 상기 수신데이타 입력단을 통해 입력되는 데이타를 에러 포인트 부가부(19)를 통하게 하고, 그 외에는 그대로 통과되게 하는 스위칭부(18)와, 상기 제2제어부(17)로부터 스위칭 제어신호(T)가 입력될때 정정된 데이타에 에러 포인트 부가 없이 그대로 출력되게 하고, 스위칭 제어신호(S,V)가 입력될때 에러 포인터를 부가시켜 출력되게 하는 스위칭부(20)로 구성하였다.
제7도는 본 발명의 압축 데이타 전송 에러 정정 방법에 적용되는 C2 계열 복호 블록도로서 이에 도시한 바와 같이, C1 계열 복호후의 데이타 입력단에서 데이타를 입력하여 신드롬(S0-S3)을 연산하는 제3신드롬 연산부(21)와, 상기 제3신드롬 연산부(21)로부터 신드롬(S0-S3)을 공급받아 A(= S1 2+ S0S2), B(= S0S3+ S1S2), C(= S2 2+ S1S3)를 연산하는 제2 A,B,C연산부(22)와, 상기 제3신드롬 연산부(21), 제2 A,B,C연산부(22)의 출력을 공급받아 각 값에 따른 제어신호(D,E,F)를 출력하는 제3제어부(23)와, 상기 제3제어부(23)로부터 제어신호(E)가 입력될때 1 에러의 위치를 연산하여 그 값과 입력단에서 입력된 부호어의 비교 결과에 따라 제어신호(D)를 출력하거나 1 에러의 크기를 정정함과 아울러 그 1 에러를 정정하는 1 에러 정정부(24)와, 상기 제3제어부(23)로부터 제어신호(F)가 입력될때 2 에러의 위치를 연산하여 그 값과 입력단에서 입력된 부호어의 비교 결과에 따라 제어신호(D)를 출력하거나 2 에러의 크기를 정정함과 아울러 그 2 에러를 정정하는 2 에러 정정부(25)와, 상기 1,2 에러 정정부(24),(25)로부터 정정된 데이타를 공급받아 신드롬(S0'-S3')을 연산하는 제2신드롬 연산부(26)와, 상기 제2신드롬 연산부(26)의 출력 신드롬 중 하나라도 0이 아닐때, 제어신호(D)를 출력하고 모두 0인 경우 제어신호(K)를 출력하는 제6제어부(27)와, 상기 제어신호(D)가 입력될때 데이타 입력단에서 종방향으로 해당 데이타 열을 입력한 후 부가된 에러 포인터의 수를 계산하는 에러 포인터 카운터(28)와, 상기 에러 포인터 카운터(28)에서 연산된 에러 포인터의 수에 따라 제어신호(L,W)를 출력하는 제7제어부(29)와, 상기 제어신호(W)가 입력될때 상기 제3신드롬 연산부(21), 데이타 입력단으로부터 신도롬과 데이타를 공급받아 소실정정하는 소실 정정부(30)와, 상기 제6,7제어부(27),(28)에 출력되는 제어신호(K),(L)에 따라 상기 소실 정정부(30)에서 소실 정정된 데이타를 그대로 출력하거나 에러포인터가 리세트되어 출력되게 하는 스위칭부(32)로 구성한 것으로, 이와같이 구성된 본 발명을 첨부한 제6도 및 제8도를 참조하여 상세히 설명하면 다음과 같다.
먼저 제5도 및 6도를 참조하여 C1 계열 복호과정을 설명하면, 제1신드롬 연산부(11)는 수신 데이타 입력단에서 데이타(예, 횡방향의 32 심볼)를 입력하여 신드롬 S0,S1,S2,S3을 연산 출력하고, 제1 A,B,C연산부(12)는 상기 제1신드롬 연산부(11)의 출력 신드롬 S0,S1,S2,S3을 공급받아 A(= S1 2+ S0S2), B(= S0S3+ S1S2), C(= S2 2+ S1S3)를 연산하여 이를 제1제어부(13)로 출력한다.
이에 따라 상기 제1제어부(13)는 상기 제1신드롬 연산부(11)로부터 신드롬 S0,S1,S2,S3을 공급받고, 상기 제1 A,B,C연산부(12)에서 연산된 A,B,C 값을 공급받아 그 값에 따라 다음과 같은 제어 신호를 출력하게 된다.
첫째, S0=0, S3=0, A,B,C=0 인 경우(에러가 없는 경우) 상기 과정을 제5도를 참조하여 설명하면, 이때, 제1제어부(13)는 제어신호(P)를 제1,2스위칭부(18),(20)에 출력함에 따라 그 스위칭부(18),(20)가 고정단자(b),(d)에 각각 단락되어 수신 데이타는 에러 포인터의 부가 없이 그대로 출력된다.
둘째, S0 0, S3 0, A=B=C=0 인 경우(1 심볼 에러인 경우), 제6도에서와 같이, 1 심볼 에러 정정후의 데이타에 대해 제2신드롬 연산을 하므로 그결과 신드롬이 모두 0인 경우에는 바르게 정정된 것으로 판단하여 정정된 데이타를 포인터의 부가 없이 그대로 출력하고, 신드롬이 하나라도 0이 아니면 오정정(예, 4 심볼 에러를 1 심볼 에러로 오검출)한 경우이므로 오정정에 의한 에러의 증가를 막기 위해 정정전의 데이타에 포인터를 부가하여 출력한다.
이를 제5도를 참조로 설명하면, 이때, 제1제어부(13)가 제어신호(Q)를 1 에러 정정부(14)로 출력함에 따라 1 에러 연산부(14A) 및 1 에러 크기 연산부(14B)는 상기 제1신드롬 연산부(11)로 부터 신드롬(S0,S1)을 입력하여 1 에러의 위치와 크기를 연산한 후, 이 값을 1 에러 정정회로(14C)에 출력함에 따라 그 1 에러 정정회로(14C)는 수신 데이타와 상기 1 에러 위치 연산부(14A) 및 1 에러 크기 연산부(14B)에서 연산된 1 에러의 위치와 크기를 입력하여 그 1 에러를 정정하게 된다.
셋째, A0, B0, C0인 경우(2 심볼 에러인 경우), 제6도에서와 같이, 2 심볼 에러 정정후의 데이타에 대하여 상기 1 심볼 에러 발생시와 같이 제2신드롬 연산을 행함으로써 3심볼 이상의 에러에 대한 오정정을 막는다.
여기서, 2심볼 에러라고 판단한 경우는 실제로는 2심볼 에러 이상이 되는데, 즉 실제로 2심볼 에러가 발생하여 2심볼 에러라고 판단하는 경우도 있고, 3심볼 이상이 발생하였는데도 2심볼 에러라고 판단하는 경우도 있다. 이것은 4심볼 패리티를 부가한 에러 정정 부호의 에러 갯수 판단 능력에 한계가 있기 때문이다.
이를 제5도를 참조하여 설명하면, 상기 제1제어부(13)에서 제어신호(R)를 2에러 정정부(15)로 출력하므로 그 2 에러 정정부(15)에서 2 에러 위치 연산부(15A)는 상기 1로 부터 신드롬 연산부(11)로부터 신드롬(S0,S1,S2,S3)을 입력하고, 상기 제1 A,B,C연산부(12)로 부터 A값을 입력하여 2 에러의 위치를 연산하게 되고, 2 에러 크기 연산부(15B)는 상기 제1신드롬 연산부(11)로부터 신드롬(S1,S2)을 입력함과 아울러 2에러 위치 연산부(15A)에서 연산된 위치 데이타를 입력하여 그 2 에러의 크기를 연산하며, 이와 동시에 2 에러 정정회로(15C)는 수신 데이타와 상기 2 에러 위치 연산부(15A), 2 에러 크기 연산부(15B)에서 각각 연산된 2 에러의 위치와 크기를 입력하여 2 에러를 정정한다.
넷째, 상기의 조건 이외의 경우(3 심볼 에러 이상인 경우), 제6도에서와 같이, 이때는 정정 능력을 벗어나는 경우이므로 해당 데이타행 전체에 포인터를 부가하여 출력한다. 즉, 제5도에서와 같이, 상기 제1제어부(13)에서 제어신호(S)를 상기 스위칭부(18),(20)를 출력함에 따라 그 스위칭부(18),(20)는 각각 고정단자(a),(d)에 단락되어 수신 데이타는 에러 포인트 부가부(19)에서 에러 포인트가 부가되어 출력된다.
이상의 경우 중 둘째 및 셋째에서 정정된 데이타는 제2신드롬 연산부(16)에 입력됨에 따라 그 제2신드롬 연산부(16)는 입력된 데이타로 신드롬(S0',S1',S2',S3')을 연산하여 그 결과를 제2제어부(17)로 출력하게 되고, 그 제2제어부(17)는 입력된 신드롬이 모두 0일때 제어신호(T)를 상기 스위칭부(20)로 출력함에 따라 그 스위칭부(20)가 고정단자(c)에 절환되어 정정된 데이타가 에러 포인터의 부가 없이 그대로 출력된다.
한편, 제2제어부(17)는 입력된 신드롬 중에서 하나라도 0이 아닌 신드롬이 있을때 제어신호(U,V)를 상기 스위칭부(18),(20)에 각각 출력함에 따라 그 스위칭부(18),(20)가 각각 고정단자(a),(d)에 단락되어 정정전의 데이타(수신 데이타)에 에러 포인트 부가부(19)에서 부가한 에러 포인터가 부가되어 출력된다.
이와같이 처리되는 C1 계열 복호의 특징을 설명하면, 부가한 4 심볼 패리티의 최대 정정 능력인 2 심볼 에러까지를 정정하였고, 제2신도롬 연산을 통해 그 정정이 과연 옳바른가를 판단하여 그 결과에 따라 포인터를 부가함으로써 오정정을 막는 동시에 불필요한 포인터가 부가되지 않는다.
한편, 제7도 및 제8도를 참조하여 C2 계열의 복호 과정을 설명하면, 제3신드롬 연산부(21)는 C1 계열 복호후, 데이타 입력단에서 데이타(예, 종방향의 28 심볼)를 입력하여 신드롬(S0,S1,S2,S3)을 연산하고, 제2 A,B,C연산부(22)는 상기 제3신드롬 연산부(21)의 출력 신드롬(S1,S2,S3,S4)을 입력하여 A(= S1 2+ S0S2), B(= S0S3+ S1S2), C(= S2 2+ S1S3)를 연산한 후 이를 제3제어부(23)로 출력함에 따라 그 제3제어부(23)는 상기 제2 A,B,C연산부(22)에서 연산된 A,B,C 값에 따라 다음과 같이 제어신호(D,E,F)를 출력하게 된다.
첫째, S0=0, S3=0, A,B,C=0 인 경우(에러가 없는 경우), 제8도에서와 같이, 입력된 열방향의 데이타에 부가된 포인터의 수를 세어 그 수가 C2 계열 심볼 수 N의 2/3이하이면 실제로 에러가 없는 것으로 판단하여 포인터를 부가하지 않고 데이타를 그대로 출력한다. 또한 포인터의 수가 C2 계열 심볼 수의 2/3보다 크면 오정정(5 심볼 에러를 비 에러로 오검출)하는 경우를 막기 위하여 C1 계열 복호시에 부가한 포인터를 복사하여 출력한다.
이를 제7도를 참조하여 설명하면, 제3제어부(23)가 제어신호(D')를 에러 포인터 카운터(28)와 제7제어부(29)로 출력함에 따라 그 에러 포인터 카운터(28)는 데이타 입력단에서 해당(종방향의) 데이타 열을 공급받아 부가된 에러 포인터의 수를 계산한후, 이를 제7제어부(29)로 출력한다.
제8도를 참조하여 1 또는 2 심볼 에러인 경우(후술할 둘째, 셋째의 경우)의 복호 과정을 설명하면, 에러 위치 I,J 가 C2 계열 부호어 N내에 존재하는지를 검사하여 에러의 위치가 모두 C2 계열 부호어 N내에 존재하는 것으로 판단되면, 해당 에러를 정정하고 정정후의 데이타에 대하여 제2신드롬 연산을 행한후 신드롬이 모두 0이면 바르게 정정된 것으로 판단하여 포인터를 부가하지 않고 정정된 데이타를 출력한다.
그러나, 발생한 에러의 위치가 C2 계열 부호어 밖이거나 제2신드롬 연산 결과 신드롬 가운데 하나라도 0이 아닌 경우에는 오정정한 것으로 판단하여 다음과 같이 소실 정정을 행한다.
C1 계열 복호후의 데이타에 대해 C2 계열 방향으로 부가된 포인터의 수를 세어 그 수가 소실 정정 능력 한계인 4개 이하이면 정정전의 데이타를 사용하여 소실정정을 수행한후 포인터의 부가 없이 데이타를 출력하고 그 수가 4보다 크면 C1 계열 복호시에 부가한 포인터를 복사하여 출력한다.
둘째, S0 0, S3 0, A=B=C=0 인경우(1 심볼 에러인 경우), 제어신호(E)를 1 에러 정정부(24)에 출력함에 따라 그 1 에러 정정부(24)에서 1 에러 위치 연산부(24A)는 제3신드롬 연산부(21)로부터 신드롬(S0,S1)을 입력하여 1 에러의 위치를 연산한후, 그 값(I)을 제5제어부(24B)로 출력하고, 이로 인하여 그 제5제어부(24B)는 입력된 값이 입력단에서 입력된 부호어의 크기가 최대크기 N(예, 28) 보다 큰것으로 판단될 경우 제어신호(G)를 1 에러 크기 연산부(24C)로 출력하여 그 1 에러 크기 연산부(24C)의 동작이 중단되고, 이와 동시에 제어신호(D)가 에러 포인터 카운터(28)에 출력되므로 그 에러 포인터 카운터(28)는 상기 첫번째에서와 같이 동작한다.
한편, 제5제어부(24B)는 입력된 값이 N 이하일 경우 제어신호를 출력하지 않으므로 1 에러 크기 연산부(24C)는 상기 제3신드롬 연산부(21)로부터 신드롬(S0,S1)을 입력하여 1 에러의 크기를 연산하며, 1 에러 정정회로(24D)는 데이타 입력단으로부터 데이타를 입력하고 1 에러 위치 연산부(24A)와 1 에러 크기 연산부(24C)에서 연산된 위치(I)와 크기를 입력하여 1 에러를 정정한다.
셋째, A0, B0, C0인 경우(2 에러인 경우), 상기 제3제어부(23)는 제어신호(F)를 2 에러 정정부(25)로 출력함에 따라 그 2 에러 정정부(25)의 2 에러 위치 연산부(25A)는 제3신드롬 연산부(21)로부터 신드롬(S0,S1,S2,S3)을 입력하여 2 에러의 위치를 연산한후, 그 연산값(I,J)를 제4제어부(25B)로 출력한다. 이에 따라 상기 제4제어부(25B)는 입력된 연산값 I,J 중에서 하나라도 입력단에서 입력된 부호어)의 최대크기 N(예, 28)보다 큰것으로 판명되면 제어신호(H)를 2 에러 크기 연산부(25C)로 출력하여 그 2 에러 크기 연산부(25C)의 구동을 정지시키는 동시에 제어신호(D)를 에러 포인터 카운터(28)로 출력하여 그 에러 포인터 카운터(28)가 상기 첫째의 경우에서와 같이 동작한다.
한편, 제4제어부(25B)는 입력된 연산값 I,J가 모두 N 이하일 경우 제어신호를 출력하지 않으므로 2 에러 크기 연산부(25C)는 상기 제3신드롬 연산부(21)의 신드롬(S1,S2)와 2 에러 위치 연산부(25A)에서 연산된 위치값 I,J를 입력하여 2 에러의 크기를 연산하고, 2 에러 정정회로(25D)는 데이타 입력단의 데이타와 2 에러 위치 연산부(25A) 및 2 에러 연산부(25C)에서 연산된 2 에러의 위치값 I,J 및 크기를 입력하여 2 에러를 정정하게 된다.
넷째, 상기의 조건 이외의 경우(3 심볼 에러 이상인 경우), 이때는 소실정정 능력을 벗어나므로 입력 데이타를 직접 소실 정정부(30)에 입력시켜 그 결과에 따라 데이타를 출력하게 되는데, 즉, 제어신호(D)를 상기 에러 포인터 카운터(28)에 출력하게 되고, 이하의 동작은 첫번째의 경우와 같다.
한편, 상기 둘째, 셋째의 경우에 있어서, 1 에러 또는 2 에러 정정후의 데이타는 제4신드롬 연산부(26)에 입력됨에 따라 그 제4신드롬 연산부(26)는 입력된 데이타로 신드롬(S0',S1',S2',S3')을 연산하여 그 결과를 제6제어부(27)로 출력한다.
이에 따라 상기 제6제어부(27)는 입력된 신드롬(S0',S1',S2',S3')을 검사하여 모두 0이면 제어신호(K)를 출력함에 따라 스위칭부(32)가 고정단자(e)에 단락되어 1 에러 또는 2 에러 정정후의 데이타중 에러 포인터 리세트부(33)에서 C1 계열 복호시 부가된 포인터가 리세트되어 출력된다. 그러나 입력된 신드롬이 하나라도 0이 아닐 경우 상기 제6제어부(27)는 제어신호(D)를 에러 포인터 카운터(28)로 출력하게 되고, 이하의 동작은 상기 첫번째의 경우에서와 같다.
한편, 첫번째, 네번째 등에서와 같이 에러 포인터 카운터(28)에서 제7제어부(29)로 에러 포인터의 수가 출력되면 그 제7제어부(29)는 다음과 같이 동작한다.
첫째, 제3제어부(23)에서 에러가 없는 것으로 판정된 상태 즉, D'가 온이고 에러 포인터의 수 ≤ N/3인 경우, 상기 제7제어부(29)는 제어신호(L)를 스위칭부(32)에 출력함에 따라 그 스위칭부(32)가 고정단자(f)에 단락되어 데이타 입력단에서 입력된 데이타가 그대로 출력된다.
둘째, D'가 온이고 에러 포인터의 수 ≤ 2N/3인 경우, 상기 제7제어부(29)는 제어신호(M)를 스위칭부(32)에 출력함에 따라 그 스위칭부(32)가 고정단자(e)에 단락되므로 데이타 입력단에서 입력된 데이타는 에러 포인터 리세트부(33)에서 C1 계열 복호시 부가된 에러 포인터가 리세트되어 출력된다.
셋째, D'가 오프이고 에러 포인터의 수 ≤ 4인 경우, 제7제어부(29)가 제어신호(W)를 출력하여 소실 정정부(30)를 동작시키고, 제어신호(M)를 스위칭부(32)로 출력한다.
그리고, η 에러크기 연산부(30A)는 제어신호(W)가 입력될때 제3신드롬 연산부(21)롬부터 공급받은 신드롬과 데이타 입력단에서 공급받은 데이타로 η 에러의 크기를 연산하여 그 값을 η 에러 소실 정정부(30B)에 출력함에 따라 그 η 에러 소실 정정부(30B)는 η 에러 크기 연산부(30A)의 출력과 데이타 입력단에서 공급받은 데이타로 η 에러를 소실 정정하고 이렇게 소실 정정된 데이타는 버퍼(31)에 입력된후, 제어신호(M)에 의해 고정단자(e)에 단락되어 있는 스위칭부(32)를 통해 에러 포인터 리세트부(33)에서 C1 계열 복호시 부가된 에러 포인터가 리세트되어 출력된다.
넷째, D'가 오프이고 에러 포인터의 수 4인 경우에는 상기 첫째에서와 같이 동작한다.
단, 상기 첫째-넷째에서 스위칭부(32)로 입력되는 데이타의 순서는 데이타 입력단으로부터의 데이타, 1 에러 정정부(24) 또는 2 에러 정정부(25)로부터의 데이타, η 에러 소실 정정부(30B)로 부터의 데이타 순이며, 나중에 입력된 데이타가 이전의 데이타를 대신하는 버퍼(31)를 통해 입력된다.
이와 같이 처리되는 C2 계열 복호의 특징을 설명하면, 에러가 발생되지 않을 때에도 C1 계열 포인터의 수를 조사하여 오정정 확률을 최소화 하였다. 1 또는 2 심볼 에러 발생시 에러 정정후의 데이타에 대하여 제2신드롬 연산 과정을 통해 오정정 여부를 검사하여 오정정 발생시에는 정정전의 데이타로 소실정정을 수행 함으로써 오정정을 방지하는 동시에 에러 정정 능력을 향상시켰다.
3 심볼 이상이 발생한 경우에도 소실 정정을 실행하여 에러 정정 능력을 향상시켰고, 반드시 필요한 경우에만 포인터를 부가함으로써 전체 에러 정정 복호후에 발생되는 포인터의 수를 최소화 하였다.
이상에서 상세히 설명한 바와 같이 본 발명은 압축된 데이타에 발생된 에러를 방지할 수 있도록 에러 정정 부호 자체가 갖는 에러 정정 및 검출 능력을 모두 에러 정정에 사용함으로써 압축된 데이타에 발생한 에러가 가능한 한 한정되어 원화상 복원시의 에러 전파를 방지할 수 있고, 제2신드롬 연산을 통해 에러 정정에 대한 오정정 여부를 판별하여 오정정 발생 확률을 최소화 함으로써 오정정으로 인한 화질의 열화를 방지할 수 있는 효과가 있고, 변환 부호화, 가변 길이 부호화 등을 사용한후, 압축 데이타에서 포인터가 부가된 에러 확률이 높은 데이타는 주위 데이타에 의한 수정(보간)이 어려운 점을 고려할때, 다수의 포인터를 부가하여 후단의 수정에 기대한 기존의 방법에 비하여 필요한 경우에만 포인터를 부가하므로 포인터를 최소화할 수 있어 다수의 포인터에 대한 수정으로써 다수의 블록 치환이 행하여져 화질이 열화되는 것을 최소화할 수 있는 이점이 있다.
Claims (6)
- 입력 데이타 계열에 K 심볼의 정정 능력을 갖는 패리티를 부가하여 전송된 데이타 계열에 발생한 에러를 2중 복호 방법으로 정정하는 데이타의 에러정정 방법에 있어서, C1 계열의 데이타를 입력받아 에러개수를 판단하여 K 심볼까지 에러를 정정하고, 에러 여부에 따라 포인터를 부가해서 C1 계열 데이타를 출력하는 C1계열 복호단계와; C2 계열의 데이타를 입력받아 에러개수를 판단하여 K심볼까지 에러를 정정하고, 정정 데이타의 에러 여부에 따라 소실정정을한 후 포인터를 복사하거나 또는 클리어시켜 C2 계열 데이타를 출력하는 C2 계열 복호단계를 포함하여 이루어지는 것을 특징으로 하는 압축 데이타의 에러 정정 방법.
- 제1항에 있어서, C1 계열 복호시 정정된 데이타의 에러 유무 판단에 의해 에러가 있다고 판단되었거나 K + 1 심볼 이상의 에러 발생시에만 정정전의 데이타에 포인터를 부가하는 것을 특징으로하는 압축 데이타의 에러 정정 방법.
- 제1항에 있어서, C1 계열 복호시 정정된 데이타의 에러 유무 판단에 의해 에러가 있다록 판단되었거나 K + 1 심볼 이상의 에러가 발생되는 경우 이외에는 포인터를 부가하지 않는 것을 특징으로하는 압축 데이타의 에러 정정 방법.
- 제1항에 있어서, C2 계열 복호시 에러가 발생되지 않으면 C1계열 복호시에 부가한 포인터의 수에 따라 C1 계열 복호시에 부가한 포인터의 복사 여부를 결정하는 것을 특징으로 하는 압축 데이타의 에러 정정 방법.
- 제1항에 있어서, C2 계열 복호시 K 심볼 에러 이하의 에러 발생되는 경우 에러의 위치가 모두 C2 계열 부호내에 존재하면 에러 정정을 수행하고, 정정후 데이타의 에러 유무를 판단하여 에러가 없다고 판정되면 포인터를 부가하지 않은채 데이타를 출력하고, 하나라도 부호어 밖이면 소실 정정을 하는 것을 특징으로 하는 압축 데이타의 에러 정정 방법.
- 제5항에 있어서, 정정된 데이타의 에러 유무 판단에 의해 에러가 있다고 판정되었거나 에러의 위치가 하나라도 C2 계열 부호어 밖이거나 3 에러 이상이라고 판정될 경우 C1 계열 복호후의 데이타에 대하여 C2 계열 방향으로 부가된 포인터 수를 세어 그 수가 소실 정정 능력 한계인 2K 이하이면 소실 정정을 수행하여 포인터의 부가 없이 데이타를 출력하고, 그 수가 2K 보다 크면 C1 계열 복호시에 부가한 포인터를 복사하여 출력하는 것을 특징으로 하는 압축 데이타의 에러 정정 방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019910024541A KR0141826B1 (ko) | 1991-12-27 | 1991-12-27 | 압축 데이타의 에러 정정 방법 |
US07/997,778 US5357526A (en) | 1991-12-27 | 1992-12-28 | Method and apparatus for correcting errors of compressed data |
JP4349598A JPH06188750A (ja) | 1991-12-27 | 1992-12-28 | 圧縮データのエラー訂正装置及び方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019910024541A KR0141826B1 (ko) | 1991-12-27 | 1991-12-27 | 압축 데이타의 에러 정정 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR930015380A KR930015380A (ko) | 1993-07-24 |
KR0141826B1 true KR0141826B1 (ko) | 1998-07-15 |
Family
ID=19326156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019910024541A KR0141826B1 (ko) | 1991-12-27 | 1991-12-27 | 압축 데이타의 에러 정정 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5357526A (ko) |
JP (1) | JPH06188750A (ko) |
KR (1) | KR0141826B1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3242148B2 (ja) * | 1992-05-29 | 2001-12-25 | パイオニア株式会社 | エラー訂正方法 |
US7328395B1 (en) * | 2004-04-13 | 2008-02-05 | Marvell International Ltd. | Iterative Reed-Solomon error-correction decoding |
DE102004036383B4 (de) * | 2004-07-27 | 2006-06-14 | Siemens Ag | Codier-und Decodierverfahren , sowie Codier- und Decodiervorrichtungen |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6076817A (ja) * | 1983-10-03 | 1985-05-01 | Mitsubishi Electric Corp | 復号化システム |
JPS6280866A (ja) * | 1985-10-04 | 1987-04-14 | Sony Corp | デイジタル情報信号の記録装置 |
JPH082028B2 (ja) * | 1986-06-18 | 1996-01-10 | 三菱電機株式会社 | 符号訂正装置 |
JPS6387025A (ja) * | 1986-09-30 | 1988-04-18 | Nec Home Electronics Ltd | 符号誤り訂正回路 |
JPS63193723A (ja) * | 1987-02-06 | 1988-08-11 | Sony Corp | リ−ドソロモン符号の復号方法 |
JP2532917B2 (ja) * | 1988-04-20 | 1996-09-11 | 三洋電機株式会社 | デ―タ誤り検出回路 |
US4928280A (en) * | 1988-04-29 | 1990-05-22 | International Business Machines Corporation | Fast processor for multi-bit error correction codes |
-
1991
- 1991-12-27 KR KR1019910024541A patent/KR0141826B1/ko not_active IP Right Cessation
-
1992
- 1992-12-28 JP JP4349598A patent/JPH06188750A/ja active Pending
- 1992-12-28 US US07/997,778 patent/US5357526A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
KR930015380A (ko) | 1993-07-24 |
US5357526A (en) | 1994-10-18 |
JPH06188750A (ja) | 1994-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR880000426B1 (ko) | 이중 부호화 리드 솔로몬 코드에 대한 복호화 방법 및 장치 | |
US6044482A (en) | Digital transmission system for encoding and decoding attribute data into error checking symbols of main data | |
US4703485A (en) | Method and apparatus for computing and implementing error detection check bytes | |
JPH084233B2 (ja) | 誤り訂正符号の復号装置 | |
JPH0831806B2 (ja) | エラー訂正方法 | |
US7096403B2 (en) | Iterative concatenated code decoding circuit and encoding/decoding system using the same | |
JPS628056B2 (ko) | ||
KR20040046649A (ko) | 에러 정정을 위한 부호화 장치 및 방법과 복호화 장치 및방법 | |
KR0141826B1 (ko) | 압축 데이타의 에러 정정 방법 | |
US5809042A (en) | Interleave type error correction method and apparatus | |
US7296215B2 (en) | Signal processing method and signal processing circuit | |
JP3537722B2 (ja) | 記録再生装置 | |
JP3271208B2 (ja) | エラー訂正復号装置 | |
US8209589B2 (en) | Reed-solomon decoder with a variable number of correctable errors | |
KR100207492B1 (ko) | 에러 정정 검사 방법 및 장치 | |
JPS6160618B2 (ko) | ||
JP2768723B2 (ja) | 復号化装置 | |
JP2796291B2 (ja) | 誤り訂正方式 | |
KR19990039252A (ko) | 이레이저 정정방법 및 그 장치 | |
JP3583905B2 (ja) | 誤り訂正装置 | |
KR870001607B1 (ko) | 디지탈 오디오 기기의 코드워드 에러처리용 데코더 회로 | |
JPH05235906A (ja) | 多元符号の復号装置及びこれを用いた誤り訂正・検出方式 | |
KR100258440B1 (ko) | 단축 비씨에이취 부호의 복호방법 및 이에 적합한 복호기(Decoding algorithm for shortered BCH code) | |
KR890003154B1 (ko) | 에러값을 구하는 에러정정용 r-s데코오더 회로 | |
KR0166755B1 (ko) | 디지탈기록재생시스템의 오류수정을 위한 제어신호발생방법 및 그 장치 |
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: 20080102 Year of fee payment: 11 |
|
LAPS | Lapse due to unpaid annual fee |