KR20040014909A - 크로스 인터리브 리드 솔로몬 코드 정정 - Google Patents

크로스 인터리브 리드 솔로몬 코드 정정 Download PDF

Info

Publication number
KR20040014909A
KR20040014909A KR1020030050513A KR20030050513A KR20040014909A KR 20040014909 A KR20040014909 A KR 20040014909A KR 1020030050513 A KR1020030050513 A KR 1020030050513A KR 20030050513 A KR20030050513 A KR 20030050513A KR 20040014909 A KR20040014909 A KR 20040014909A
Authority
KR
South Korea
Prior art keywords
codeword
decoder
memory
corrected
circ
Prior art date
Application number
KR1020030050513A
Other languages
English (en)
Inventor
알렉산더 크라브첸코
마르텐 카부츠
비자야 라마도스
아미트 싱흐
Original Assignee
톰슨 라이센싱 소시에떼 아노님
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 톰슨 라이센싱 소시에떼 아노님 filed Critical 톰슨 라이센싱 소시에떼 아노님
Publication of KR20040014909A publication Critical patent/KR20040014909A/ko

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, 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 using interleaving techniques
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6566Implementations concerning memory access contentions
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1806Pulse code modulation systems for audio signals
    • G11B20/1809Pulse code modulation systems for audio signals by interleaving
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, 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 using interleaving techniques
    • H03M13/2732Convolutional interleaver; Interleavers using shift-registers or delay lines like, e.g. Ramsey type interleaver
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, 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 using interleaving techniques
    • H03M13/275Interleaver wherein the permutation pattern is obtained using a congruential operation of the type y=ax+b modulo c
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, 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 using interleaving techniques
    • H03M13/276Interleaving address generation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, 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 using interleaving techniques
    • H03M13/2782Interleaver implementations, which reduce the amount of required interleaving memory
    • H03M13/2785Interleaver using in-place interleaving, i.e. writing to and reading from the memory is performed at the same memory location
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • G11B2020/1836Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information using a Reed Solomon [RS] code

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

본 발명은 크로스 인터리브 리드-솔로몬 코드 정정(cross interleave Reed-Solomon code correction) 방법에 관한 것으로, 상기 방법은:
- 제 1의 C1 코드워드를 제 1 메모리 수단으로부터 C1 디코더 수단으로 입력하는 단계,
- 제 2의 C1 코드워드를 상기 C1 디코더 수단으로부터 제 2 메모리 수단으로 출력하는 단계, 및
- 상기 제 2 메모리 수단에서 제 1의 C2 코드워드를 생성하기 위해서 상기 제 2의 C1 코드워드를 디인터리브(de-interleave)하는 단계를 포함한다.

Description

크로스 인터리브 리드 솔로몬 코드 정정{CROSS INTERLEAVE REED-SOLOMON CODE CORRECTION}
본 발명은 일반적으로 리드 솔로몬 코드를 이용하여 디지털 데이터에 대한 에러 정정을 수행하는 방법 및 장치에 관한 것으로, 더 상세하게는, 크로스 인터리브 리드 솔로몬 코드 정정(cross interleave Reed-Solomon code correction) 방법 및 장치에 관한 것이다.
컴팩트 오디오 디스크에서 통상적으로 사용되는 한가지 에러 정정 코드가 소위 CIRC 정정 코드이다. CIRC는 크로스 인터리브 리드 솔로몬 코드(Cross Interleave Reed-Solomon Code)의 약자이다. CIRC 정정 코드의 경우에, (28, 24) 리드 솔로몬 코드(C2 코드)의 인코딩 처리는 24개 데이터 심벌(symbol)에 대해 수행되고, 각각의 심벌은 8비트로 구성된다. 이러한 통상적인 오디오 응용에서, 각각의 오디오 샘플은 16비트이고, 각각 8비트인 2개의 심벌로 형성된다. 따라서,각각의 8비트 심벌은 스테레오 오디오 데이터의 2개 채널 중 한 채널의 오디오 샘플의 상측 또는 하측에 있다. 이러한 데이터 심벌은 제 1 배치 상태에 있게 되고, 그 다음에, 데이터는 인터리브 동작에 의해 제 1 배치 상태에서 제 2 배치 상태로 재배치된다. 이때 (32, 28) 리드 솔로몬 코드(C1 코드)의 인코딩 처리는 이제 제 2 배치 상태에 있는 28개 심벌에 대해 실행된다. CIRC 정정 코드를 디코딩할 때, C1 디코딩이 먼저 수행된 다음 디인터리브가 수행되며, 그후 C2 디코딩이 수행된다.
CIRC 정정 코드를 디코딩하는 다양한 방법이 이미 알려져 있고, 이러한 방법의 예시가 예를 들어 US-A-4 546 474, US-A-4 476 562 및 US-A-4 497 058에 개시되어 있다. 반면, 리드 솔로몬 코드를 디코딩하는 다양한 방법이 또한 알려져 있고, 이러한 방법의 예시가 US-A-4 476 562에 개시되어 있다.
종래의 CIRC 정정 코드의 디코딩 방법에 따르면, 최대 2중 에러 정정을 포함한 에러 처리는 제 1 스테이지의 C1 디코딩에서 실행되고, 2중 에러 정정은 C1 디코딩으로부터 얻어지는 포인터 정보를 참조함으로써 다음 스테이지의 C2 디코딩에서 실행된다.
제안된 한가지 에러 정정 코드의 디코딩 방법이 소위 삭제 정정(erasure correction) 방법인데, 이 방법에서 에러 심벌의 위치는 포인터 정보에 의해 표시되고, 이러한 에러 심벌에 대해 필요한 정정이 수행된다. 전술한 C1 및 C2 코드의 경우에, 최대 2중 에러(2개 심벌)의 검출 및 정정이 개별적으로 수행될 수 있다. 그러나, 만일 에러 위치가 이미 알려져 있다면, 최대 4중 에러(4개 심벌)의 에러정정이 수행될 수 있다.
따라서, 에러 정정 능력을 향상시키기 위해서, 에러를 디코딩하는 삭제 정정 방법을 수행하는 것이 바람직했다. 게다가, 삭제 정정 방법은 버스트 에러를 정정하는데 있어서 특히 효과적인 것으로 밝혀졌다. 반면, 삭제 정정 동작을 적절하게 수행하기 위해서는 포인터 정보로부터 에러 위치를 미리 알고 있어야 하고, 또한 그 포인터 정보의 신뢰성이 상대적으로 높아야 한다.
종래의 CIRC 정정 코드의 코딩 방법에 따르면, 최대 2중 에러의 에러 정정이 C1 디코더에서 실행된다. 이러한 경우, 물론 정정될 수 없는 3중 에러가 발생할 수 있다는 불안함이 있기 때문에, C1 포인터가 다음 스테이지에서 C2 디코더로 송신되어서, C1 포인터를 이용하여 C2 디코더에서 에러 정정이 실행된다.
더 상세하게, 종래의 CIRC 정정 코드의 경우에, 일련의 C1 코드(C1 열)는 대안적으로 2개의 인접한 프레임(1개 프레임: 32개 심벌)에 포함된 32개 심벌로 형성된다. 일련의 C2 코드(C2 열)는 108개의 연속적인 프레임 중 미리 결정된 프레임들에 포함된 28개 심벌로 형성된다. C1 열의 인터리브 길이가 C2 열의 인터리브 길이보다 짧기 때문에, 대기행렬(queuing) 또는 검토(review)와 같은 고속-순방향 재생 동작이 수행될 때 일부 프레임이 누락되어 프레임의 연속성이 상실된다는 문제점이 발생한다. 즉, C1 포인터는 불연속 지점 앞뒤에 있는 한 프레임에 에러가 있다는 것을 나타내기 위해 사용되지만, C1 포인터는 단지 다른 프레임에 에러가 없다는 것을 나타낸다. 반면, C2 열의 인터리브 길이는 108개 프레임을 갖고, 이러한 108개 프레임은 불연속 지점을 포함할 것이다. 따라서, 이것은 또한 정확한C2 열이 아니다. 전술한 C1 포인터의 사용에 의해 부정확한 C2 열에 대한 삭제 정정을 수행할 때, 에러 정정은 부정확할 것이다.
최대 에러 정정 능력이 삭제 정정 방법에 의해 얻어지는 상황에서, CIRC 정정 코드의 에러 정정을 수행할 때, 이러한 불완전 또는 부정확한 에러 정정 문제점을 해결하기 위해서, C1 디코딩 및 C2 디코딩이 특정한 순서로 2번 실행되는 에러 정정 방법이 제안되었다(이러한 C1 디코딩 및 C2 디코딩의 2중 실행이 US-A-4 637 021에 개시되어 있다). 그 순서는 예를 들어, C1 디코딩 다음에 C2 디코딩, 다음에 C1 디코딩, 다음에 C2 디코딩이 될 수 있다. 제 1의 C2 디코딩에서, 앞 스테이지의 C1 디코딩에 의해 얻어진 C1 포인터를 이용하여 삭제 정정이 수행되며, 이러한 삭제 정정에서 발생할 수 있는 잘못된 정정은 제 2의 C1 디코딩 및 C2 디코딩에 의해 방지되고, 이것은 종래의 CIRC 정정 코드를 디코딩하는 방법과 유사하다.
EP-A-0 278 383는 리드 솔로몬 코드를 이용한 에러 정정 방법을 나타낸다. 에러 정정이 신드롬(syndrome)과 에러 위치의 곱셈 결과를 이용하여 수행되는 경우, 다른 신드롬이 추가되어 새로운 신드롬을 형성한다. 반복적으로 이러한 프로시저를 실행함으로써 다수의 산술 연산에 의해 에러 벡터가 얻어져서, 소위 삭제 정정 기법에 의해 에러 정정을 수행한다. 그후, 계산된 제 1 에러 벡터를 이용하여 다른 에러 벡터를 계산함으로써, 산술 연산 횟수가 감소될 수 있다.
도 1은 종래의 리드 솔로몬(RS) 코드의 크로스 인터리브 리드 솔로몬 코드(CIRC) 디코딩을 예시하는 블럭도이다. CIRC 디코더의 주요 태스크는 다음을 수행하는 것이다:
1. 인입 데이터를 1개 심벌만큼 지연;
2. C1 코드(32, 28)의 디코딩 및 잘못된 심벌 정정;
3. 디인터리브;
4. C2 코드(28, 24)의 디코딩 및 잘못된 심벌의 정정;
5. 2개 심벌 지연
인입 데이터의 32개 심벌은 하나의 프레임을 형성하고, 시간 지연 회로에 공급되며(1개 심벌 지연), 여기서 짝수 번호 심벌만이 1개 프레임양만큼 지연된다. 시간 지연 회로로부터 출력된 32개 심벌은 C1 디코더에 공급되고, 여기서 (32, 28) 리드 솔로몬 코드(C1 코드워드)의 실제 디코딩이 실행된다. C1 코드워드내 최대 2개의 에러 심벌의 에러 정정이 C1 디코더에서 수행된다. 3개 이상의 에러가 C1 디코더에서 검출될 때, C1 포인터(삭제 플래그)는 C1 코드워드내 모든 심벌에 대해 설정된다. 데이터 및 삭제 플래그는 디인터리브 회로에서 추가 처리된다(동일하지 않은 지연선 길이).
디인터리브 회로의 출력은 C2 디코더에 공급된다. 디인터리브 회로에서, C1 디코더로부터 생성된 각각의 심벌의 삭제 플래그는 데이터의 디인터리브와 유사한 방식으로 디인터리브된다. 최대 4개 에러의 삭제 정정은 C1 삭제 플래그의 이용에 의해 C2 디코더에서 실행된다.
만일 최대 4개 에러 심벌의 정정이 C2 디코더에 의해 가능하다면, C1 삭제 플래그가 클리어된다. 만일 불가능하다면, C2 코드워드내 C1 삭제 플래그가 카피되거나 또는 C2 코드워드의 모든 심벌에 대한 삭제 플래그가 설정된다. CIRC 디코딩의 마지막 스테이지는 2개 심벌 지연이다. 2개 심벌 지연회로에 의해 상기 지연이 실행된다. CIRC 정정 코드의 2중 사용은 에러 정정 시스템의 정정 능력의 향상을 초래한다.
그러나, 도 1에 도시된 바와 같은 유형의 종래의 CIRC 디코더의 공통적인 단점은, CIRC 코드의 2중 블럭 처리를 할 수 없다는 것이다.
따라서, 본 발명의 목적은 개선된 CIRC 정정 방법 및 CIRC 정정을 위한 개선된 컴퓨터 프로그램 및 리드 솔로몬 디코더를 제공하는 것이다.
도 1은 종래 기술의 CIRC 디코더의 블럭도;
도 2는 본 발명의 한 실시예에 따른 CIRC 디코더의 제 1 패스를 예시하는 블럭도;
도 3은 도 2의 디코더의 제 2 패스를 예시하는 블럭도;
도 4는 CIRC 디코더의 대안적인 실시예를 예시하는 블럭도;
도 5는 CIRC 정정 코드의 2중 처리 및 단일 처리를 위한 CIRC 디코더의 동작에 대한 플로우차트;
도 6은 M1 메모리에서의 데이터 흐름을 예시하는 구조도;
도 7은 M1 메모리에서의 어드레스 계산을 예시하는 블럭도;
도 8은 메모리(M2,a)의 동작을 예시하는 도면;
도 9a-9b는 메모리(M2,a)의 동작을 추가 예시하는 도면;
도 10은 M2 메모리에서의 어드레스 계산을 예시하는 블럭도;
도 11은 다른 버스트(burst) 에러의 정정 결과를 예시하는 지표 선(characteristic line)을 나타내는 도면.
<도면의 주요 부분에 대한 부호의 설명>
1 : 입력 논리부 3,11 : 멀티플렉서
4,12 : RS 디코더 6 : 디멀티플렉서
7 : M2,a 메모리 8 : 레지스터
9 : M2,b 메모리 10 : 제어기
14 : M3 메모리 15 : 출력 논리부
M1,(M2,a),(M2,b),M3 : 메모리 C1,C2 : 디코더
D1,D2 : 디인터리버
본 발명은 청구항 1에 따른 개선된 CIRC 정정 방법을 제공한다. 또한, 본 발명은 추가적인 독립항에 따른 개선된 컴퓨터 프로그램 및 리드 솔로몬 디코더를 제공한다. 본 발명의 바람직한 실시예가 종속항에 제공된다.
본 발명은 CIRC 디코더의 단일 패스 및 2중 패스 동작을 할 수 있다. 1개 심벌 지연 동작, 2개 심벌 지연 동작 및 CIRC 정정 코드의 2중 또는 단일 디코딩은 4개의 분리된 메모리의 이용 및 각각의 메모리의 특수 제어 및 어드레싱에 의해 실현된다.
본 발명은 CIRC 코드의 2중 블럭 처리를 할 수 있다는 점에서 특히 유리하다.
본 발명의 예시적인 실시예가 첨부된 도면을 참조하여 설명된다.
도 2는 CIRC 디코더의 블럭도를 나타낸다. 디코더는 C1 코드워드(CW)의 저장을 위한 메모리(M1)를 구비한다. 또한, C1 디코더, 관련된 디인터리버(de-interleaver)(D1)를 갖는 메모리(M2,a), 관련된 디인터리버(D2)내의 메모리(M2,b), C2 디코더 및 메모리(M3)가 있다. 제 1 패스의 시작단에서, C1 CW는 메모리(M1)에 저장된다. 상기 메모리로부터 C1 CW는 C1 디코더로 입력된다. C1 디코더는 다른 C1 CW를 M2,a로 출력한다. 만일 메모리(M1)의 C1 CW가 정정될 수 없다면, C1 디코더로부터 출력되는 C1 CW는 메모리(M1)의 C1 CW의 카피이다.
이러한 예시에서, C1 CW내 모든 심벌에 대해 삭제 플래그가 설정된다. 만일 메모리(M1)의 C1 CW가 정정될 수 있다면, C1 디코더로부터 출력되는 C1 CW은 메모리(M1)의 정정된 C1 CW이다. 디인터리버(D1)에 의해 디인터리브 동작이 수행된다. 그 결과, C2 CW가 메모리(M2,a)에 저장된다. 메모리(M2,a)의 C2 CW는 C2 디코더로 입력된다. C2 디코더는 C2 CW를 다시 메모리(M2,a)에 기록한다. 이러한 C2 CW는 최초의 C2 CW가 정정될 수 없는 경우에 최초의 C2 CW의 카피이거나, 또는 그렇지 않으면 정정된 C2 CW이다. C2 CW가 정정될 수 없는 경우, 다시 삭제 플래그가 설정된다.
도 3은 제 2 패스를 예시한다. M2,a의 C1 CW는 C1 디코더로 입력된다. C1 디코더는 C1 CW를 메모리(M2,b)로 출력한다. 메모리(M2,b)의 C1 CW는 메모리(M2,a)의 C1 CW가 정정될 수 없는 경우에 메모리(M2,a)의 C1 CW의 카피이거나, 또는 그렇지 않으면 메모리(M2,a)의 정정된 C1 CW이다. 메모리(M2,a)의 C1 CW가 정정될 수 없는 경우에, C1 디코더로부터 출력되고 메모리(M2,b)에 저장되는 코드워드 C1 CW에서 삭제 플래그가 설정된다. 디인터리버(D2)가 개시된다. 그 결과, 코드워드 C2 CW가 메모리(M2,b)에 제공된다. C2 CW는 C2 디코더에 입력된다. C2 디코더는 코드워드 C2 CW를 메모리(M3)로 출력한다. C2 디코더에 의해 출력되는 C2 CW는 메모리(M2,b)의 C2 CW가 정정될 수 없는 경우에 메모리(M2,b)의 C2 CW의 카피이거나, 또는 그렇지 않으면 메모리(M2,b)의 정정된 C2 CW이다. 메모리(M2,b)의 C2 CW가 정정될 수 없다면, 삭제 플래그가 설정된다.
더 상세한 실시예가 다음에 설명될 것이다:
시스템 구성요소
도 4는 CIRC 디코더의 주요 구성요소를 나타내는 CIRC 디코더의 블럭도를 예시한다(CIRC 디코더의 2중 및 단일 패스는 이러한 구조로 구현된다). 취득 부분으로부터의 데이터 스트림은 입력 논리부(1)에 저장된다. 입력 논리부는 32개 심벌을 저장할 수 있다. 만일 입력 논리부의 버퍼에서 충분한 데이터가 사용가능하다면, 프레임은 M1 메모리에 저장된다. M1 메모리는 CIRC 디코더의 1개 심벌 지연 태스크를 위해 사용된다. MUX1 멀티플렉서(3)는 CIRC 디코더의 패스에 따라서, M1 메모리로부터 C1 디코더로, 또는 M2,a 메모리로부터 C1 디코더로 데이터를 멀티플렉스하는데 사용된다.
블럭(4)은 종래의 RS 디코더이다. 이러한 블럭에서, 소위 RS 코드의 삭제 정정 방법이 구현된다. RS 디코더(4)는 다음의 조건하에서 4개 삭제, 또는 2개 에러 또는 에러와 삭제의 임의의 조합을 정정할 수 있다: 2*t+E < d, 여기서 t는 코드워드내 에러의 갯수이고, E는 삭제 갯수이며, d는 RS 코드의 해밍 간격(Hammingdistance)이다(컴팩트 오디오 디스크 응용에서 d=5이다). 제 1의 플래그 프로세서 블럭{블럭(5)}은 C1 디코더의 에러 상태를 생성하고, 출력 삭제 플래그를 한정한다. 디멀티플렉서(DEMUX1)(6)는 C1 디코더 출력을 M2,a 메모리 또는 레지스터(buf_reg)(8)로 디멀티플렉스하는데 사용된다. 디멀티플렉서(6)의 출력은 CIRC 디코더의 패스에 종속된다. M2,a 메모리(7)는 CIRC 디코더의 제 1 패스동안 C2 코드워드내 C1 코드워드를 디인터리브하고 어셈블링하는데 사용된다. 레지스터(8)는 정정된 C1 코드워드를 저장하는데 사용된다. M2,b 메모리(9)는 CIRC 디코더의 제 2 패스동안 C2 코드워드내 C1 코드워드를 디인터리브하고 어셈블링하는데 사용된다. CIRC 디코더의 제어기(10)는 다음의 태스크동안 메모리 관리를 수행한다:
a) 1개 심벌 지연 태스크;
b) C1 디코더 태스크;
c) 디인터리브 및 C2 디코더 태스크;
d) 2개 심벌 지연 태스크.
멀티플렉서(11)(MUX2)는 CIRC 디코더의 패스에 따라서, M2,a 메모리로부터 C2 디코더로, 또는 M2,b 메모리로부터 C2 디코더로 데이터를 멀티플렉스하는데 사용된다. 블럭(12)은 종래의 RS 디코더이다. 이러한 디코더는 RS 디코더(4)와 동일한 성능을 갖는다. 제 2의 플래그 프로세서 블럭{블럭(13)}은 C2 디코더의 에러 상태를 생성하고, 출력 삭제 플래그를 한정한다. M3 메모리(14)는 CIRC 디코더의 2개 심벌 지연 태스크를 위해 사용된다. 출력 논리부(15)는 M3 메모리로부터의 24개 심벌을 저장하는데 사용된다.
CIRC 디코더에서의 데이터 제어
CIRC 정정 코드의 2중 및 단일 처리를 위한 CIRC 디코더의 동작이 도 5의 흐름도로 도시된다. 만일 nxt_frame 신호가 활성이라면{단계(2)}, 프레임은 입력 논리부로부터 M1 메모리의 대응하는 뱅크로 로딩되고, 1개 심벌 지연 태스크가 실행된다{단계(3)}. 단계(4)동안, 데이터는 M1 메모리(도 4 참조)로부터 MUX1 멀티플렉서를 통해 C1 디코더로 전달된다. 동시에, 신드롬이 계산된다. C1 디코딩 처리는 32개 심벌을 전달한 후에 개시된다. 디인터리버 태스크{단계(5)}는 M2,a 메모리에서 수행된다. C2 코드워드의 28개 심벌은 M2,a 메모리로부터 MUX2 멀티플렉서를 통해 C2 디코더로 전달된다. 동시에, 신드롬이 계산된다. C2 디코딩 처리는 28개 심벌을 전달한 후에 개시된다. C1, C2 처리의 개시 이후에, 제어기는 C1 처리가 준비되기를 기다린다{단계(6)}. 만일 C1 처리가 준비되면, C1 디코더로부터의 C1 코드워드는 M2,a 메모리에 기록된다{단계(7)}. 그후, 제어기는 C2 처리가 준비되기를 기다린다{단계(8)}. 데이터 흐름에서의 다음 단계는 CIRC 디코더의 단일 또는 2중 패스 동작에 종속된다{단계(9)}. 만일 CIRC 디코더가 단일 패스를 수행하고 C2 처리가 준비되면, C2 디코더로부터의 정정된 C2 코드워드는 M3 메모리에 기록된다. 이후 2개 심벌 지연 태스크는 M3 메모리로 수행된다. 그후, 대응하는 데이터 아이템은 출력 논리부로 로딩된다{단계(16)}. 만일 CIRC 디코더가 2중 패스를 수행하고 C2 처리가 준비되면, C2 디코더로부터의 정정된 C2 코드워드는 M2,a메모리에 기록되고{단계(10)}, CIRC 디코더의 제 2 패스가 개시된다. C1 코드워드는 M2,a 메모리로부터 MUX1 멀티플렉서를 통해 C1 디코더로 전달된다. 동시에, 신드롬이 계산된다. C1 디코딩 처리는 32개 심벌을 전달한 후에 개시된다{단계(11)}. 디인터리버 태스크{단계(12)}는 M2,b 메모리에서 수행된다. C2 코드워드의 28개 심벌은 M2,b 메모리로부터 MUX2 멀티플렉서를 통해 C2 디코더로 전달된다. 동시에, 신드롬이 계산된다. C2 디코딩 처리는 28개 심벌을 전달한 후에 개시된다.
C1, C2 처리의 개시후에, 제어기는 C1 처리가 준비되기를 기다린다{단계(13)}. 만일 C1 처리가 준비되면, C1 디코더로부터의 정정된 C1 코드워드는 buf_reg에 기록된다{단계(14)}. 만일 C2 처리가 준비되면, C2 디코더로부터의 정정된 C2 코드워드는 M3 메모리에 기록된다{단계(16)}. 이때 2개 심벌 지연 태스크는 M3 메모리로 수행된다. 이후, 대응하는 데이터 아이템은 출력 논리부로 로딩된다{단계(16)}. 카운터는 단계(18)동안 갱신된다. 단계(18)에 이어서, ECC 블럭은 입력 논리부로부터의 새로운 프레임을 처리할 준비가 되어 있다.
CIRC 디코더에서의 데이터 어드레싱
다른 메모리에서의 어드레싱과 위치 결정, 및 1개 심벌 지연동안의 판독 및 기록 동작에서 전송된 데이터 바이트의 제어, 디인터리브 및 2개 심벌 지연 동작이 제어기(10)를 이용하여 수행된다.
1개 심벌 지연 태스크
M1 메모리는 CIRC 디코더의 1개 심벌 지연 태스크를 위해 사용되고, 어드레스(0,1,2)를 갖는 3개 뱅크를 포함한다. 각각의 뱅크는 32개 심벌로 구성된다. 각각의 심벌은 9바이트를 포함한다. MS 비트는 "삭제 플래그"이고, (7:0) 비트는 데이터이다. 삭제 비트는 심벌이 손상된 것을 나타낸다. 만일 입력 논리부의 버퍼에서 충분한 데이터가 사용가능하다면, M1 메모리의 대응하는 뱅크에 프레임이 저장되고, 1개 심벌 지연 동작이 실행된다. 도 6은 M1 메모리에서의 데이터 흐름을 예시한다. M1 메모리는 순환 속성을 갖는다. M1 메모리에서의 데이터 흐름은 3개 next_frame 신호 이후에 반복된다. 즉, 도 6의 a)와 도 6의 d)는 동일하다. 도 7은 M1 메모리에서의 어드레스 계산을 예시한다. 입력 논리부로부터의 프레임은 M1 메모리의 대응하는 뱅크로 로딩된다. 뱅크 어드레스는 다음 식에 따라서 계산되고:
bank_add_m1_w = count_m1_w,
여기서 count_m1_w 카운터는 기록 동작동안 M1 메모리에서 뱅크 어드레스를 한정한다. 32개 심벌은 뱅크의 대응하는 심벌 어드레스로 로딩된다. count_b_m1 카운터는 심벌 어드레스를 뱅크로 한정한다. M1 메모리 판독을 위한 뱅크 어드레스는 짝수 또는 홀수 심벌에 종속된다.
뱅크 어드레스는 다음 식에 따라 계산된다:
band_add_0_m1_r = count_m1_r, //짝수
bank_add_1_m1_r = (count_m1_r + 2) %3) //홀수
뱅크 어드레스는 count_m1_r 카운터 및 mod3 회로를 한정한다. M1 메모리로부터의 심벌은 TR 임시 레지스터에 로딩된다(도 7 참조). 바이트가 반전되는지 여부는 count_b_m1 카운터의 카운터 상태에 달려있다(만일 count_b_m1=12,13,14,15,28,29,30,31이면 반전된다). 삭제 비트는 반전되지 않는다. 지연된 심벌은 제 1 패스동안 C1 디코더의 신드롬 생성기로 전송된다.
CIRC 디코더의 제 1 패스 동안의 디인터리버 태스크
M2,a 메모리는 C2 코드워드내 C1 코드워드의 디인터리브 및 어셈블링을 위해 사용되고 110개 뱅크를 포함한다. 각각의 뱅크는 32개 심벌로 구성된다. 각각의 심벌은 9비트를 포함한다. 디인터리버의 태스크는 C1 코드워드를 디인터리브하고, 디인터리브된 C1 코드워드를 C2 코드워드로 어셈블링하는 것이다. 디인터리버 태스크는 M2,a 메모리의 대응하는 어드레싱에 의해 CIRC 디코더의 제 1 패스동안 M2,a 메모리에서 수행된다. 디인터리버 태스크는 C1 디코딩, 정정 및 C1 정정된 코드워드의 M2,a 메모리로의 저장 후에 수행된다. M2,a 메모리는 순환 속성을 갖는다.
도 8 및 도 9a-9b는 M2,a 메모리를 예시한다. 잘 이해하기 위해서, 2차원의 데카르트 좌표계의 요소로서 M2,a 메모리를 설명할 수 있다(도 9a-9b). 수직 Y축 위치는 각각 32개 심벌의 데이터(C1 코드워드)를 포함한다. 각각의 수평 X축은 각각의 Y축 위치에서의 심벌(9비트)를 나타낸다. 심벌은 좌측에서 우측으로 이동하는 각각의 Y축 위치내에서 순차적으로 번호가 매겨진다.
C2 코드워드를 포함하는 심벌은 M2,a 메모리 공간에서 대각선을 따라서 놓여 있다. 1, 2, 3, 4, 54 및 108개 디코더 사이클에서 C2 코드워드의 심벌이 도 9a-9b에 도시되어 있다. 연속적인 디코딩 사이클에서, C2 코드워드를 포함하는 심벌이 변경된다. C2 코드워드의 기록을 위해 초기 배치된 심벌은 Y 위치(0), X 위치(0)에 위치된다(도 8). C2 코드워드내 심벌의 어드레스를 계산하는 일반식은
add_c2 = (count_rsd + 4*I)%mod 110
이고, 여기서 count_rsd는 디코더 사이클의 카운터(0,...,109)이고, 이것은 Y 위치(메모리 뱅크)를 한정하며, I는 0 내지 27의 값을 갖는다.
CIRC 디코더의 제 2 패스동안의 디인터리버 태스크
CIRC 디코더의 제 2 패스동안의 디인터리버 태스크가 M2,b 메모리에서 수행된다. 상기 디인터리버는 동일하지 않은 길이의 지연 라인을 갖는 통상적인 디인터리버이다(도 1 참조). 디인터리버 태스크는 C1 디코딩, 정정 및 C1 정정된 코드워드의 buf_reg 레지스터로의 저장후에 수행된다.
판독+기록 동작동안 M2,a 메모리에서의 데이터 어드레싱
C1 및 C2 디코더는 CIRC 디코더내 데이터에 대해 동시에 동작한다. C1 디코더는 C2 디코더의 앞쪽 데이터에 대해 동작한다. C1 디코더의 출력(제 1 패스)은 Y 위치(109)에 C1 코드워드를 기록하기 위해 초기 배치된다(도 8). 각각의 이어지는 디코더 사이클에서, C1 디코더의 출력은정정된 C1 코드워드를 위해 배치되고,상기 코드워드를 다음의 연속적으로 더 높은 값을 갖는 Y 위치(109,0,1,... 0)에 기록한다. C1 디코더의 입력(제 2 패스)은 Y 위치(0)에 C1 코드워드를 기록하기 위해 초기 배치된다(도 8). 각각의 이어지는 디코더 사이클에서, C1 디코더의 입력은 C1 코드워드를 위해 배치되고, 상기 코드워드를 다음의 연속적으로 더 높은 값을 갖는 Y 위치(0,1,2,...)에서 판독한다. C2 코드워드의 기록을 위해 초기 배치된 심벌은 Y 위치(0), X 위치(0)에 있다(도 8).
CIRC 디코더의 2중 패스를 위한 M2,a 메모리의 데이터 처리(도 5 및 도 8 참조)는 다음 단계를 포함한다:
1) 디인터리빙, M2,a로부터 C2 디코더로 C2 코드워드 판독;
2) C1 디코더로부터의 정정된 C1 코드워드를 M2,a 메모리에 기록;
3) C2 디코더로부터의 정정된 C2 코드워드를 M2,a 메모리에 기록;
4) M2,a 메모리로부터 C1 디코더로 C1 코드워드 판독.
CIRC 디코더의 단일 패스를 위한 M2,a 메모리의 데이터 처리(도 5 및 도 8 참조)는 다음의 단계를 포함한다:
1) 디인터리브, M2,a로부터 C2 디코더로 C2 코드워드를 판독;
2) C1 디코더로부터의 정정된 C1 코드워드를 M2,a 메모리로 기록.
도 10(어드레스 생성기)은 대응하는 단계동안 M2,a 메모리(add_m2)에서의 어드레스 계산을 예시한다. count_rsd 카운터는 디코더 사이클을 한정하고, 기록 및 판독 동작 동안 M2,a 메모리의 다른 뱅크 어드레스를 계산하기 위한 기본 카운터이다. count_b_m2_c1 카운터는 뱅크내에서 심벌 어드레스를 한정한다(카운터는 31까지 카운트한다). count_b_m2_c2 카운터는 뱅크내에서 심벌 어드레스를 한정한다(카운터는 27까지 카운트한다). 각각의 +1 sym_add에서, count_b_m2_c1 카운터 및 count_b_m2_c2 카운터는 카운트업한다. 서브블럭(1)은 CIRC 디코더의 2중 패스의 제 1 단계동안 어드레스를 계산한다. M2,a 메모리의 뱅크 어드레스의 계산을 위한 식은
bank_add = (count_rsd + 4*count_b_m2_c2)%mod 110
이고, 여기서 count_b_m2_c2 카운터는 뱅크내에서 심벌의 어드레스를 한정한다. 심벌은 이러한 어드레스에 따라서 M2,a 메모리로부터 C2 디코더로 판독된다. 서브블럭(2)은 2중 패스의 제 2 단계동안 어드레스를 계산한다. M2,a 메모리의 뱅크 어드레스의 계산을 위한 식은
bank_add = (count_rsd + 109)%mod 110
이고, 여기서 count_b_m2_c1 카운터는 뱅크내에서 심벌의 어드레스를 한정한다. 정정된 C1 코드워드의 심벌은 이러한 주소에 따라서 C1 디코더로부터 M2,a 메모리로 기록된다. 서브블럭(3)은 2중 패스의 제 3 단계동안 어드레스를 계산한다. M2,a 메모리의 뱅크 어드레스의 계산을 위한 식은
bank_add = (count_rsd + 4*count_b_m2_c2)%mod 110
이고, 여기서 count_b_m2_c2 카운터는 뱅크내에서 심벌의 어드레스를 한정한다. 정정된 C2 코드워드의 심벌은 이러한 어드레스에 따라서 C2 디코더로부터 M2,a 메모리로 기록된다. 서브블럭(4)은 2중 패스의 제 4 단계동안 어드레스를 계산한다. M2,a 메모리의 뱅크 어드레스의 계산을 위한 식은
bank_add = (count_rsd + 109)%mod 110
이고, 여기서 count_b_m2_c1 카운터는 뱅크내에서 심벌의 어드레스를 한정한다. 이러한 어드레스에 따라서 심벌이 M2,a 메모리로부터 C1 디코더로 판독된다.
CIRC 디코더의 제 2 패스동안의 디인터리버 태스크
사용될 이러한 태스크를 위해서, 종래의 디인터리버는 동일하지 않은 길이의 지연 라인을 갖는다(도 1 참조). 이러한 디인터리버는 M2,b 메모리내에 구현되었다.
2개 심벌 지연 태스크
M3 메모리는 CIRC 디코더에서 2개 심벌 지연 태스크를 위해 사용되고, 어드레스(0,1,2)를 갖는 3개 뱅크를 포함한다. 뱅크0는 28개 심벌로 구성되고, 뱅크1 및 뱅크2는 각각 24개 심벌로 구성된다. C2 디코딩 및 정정후에 데이터는 뱅크0로 로딩된다.
2개 심벌 지연 태스크는 2개 단계를 포함한다:
1) 지연된 데이터를 출력 논리부로 판독;
2) M3 메모리에 다시 기록(overwriting).
다음의 표 1은 제 1 단계동안 어드레스를 생성하는데 사용된다.
count-b 0 1 2 3 4 5 6 7 8 9 10 11
뱅크 0 0 0 0 2 2 2 2 0 0 0 0
sym-add 0 1 6 7 4 5 6 7 2 3 8 9
count-b 12 13 14 15 16 17 18 19 20 21 22 23
뱅크 2 2 2 2 0 0 0 0 2 2 2 2
sym-add 12 13 14 15 4 5 10 11 20 21 22 23
여기서 count_b는 바이트 카운터이고, 뱅크는 M3에서의 뱅크 어드레스이며, sym_add는 뱅크내에서 심벌 어드레스이다.
다음의 표 2는 제 2 단계(판독/기록) 동안 어드레스를 생성하는데 사용된다.
count-b 0 1 2 3 4 5 6 7 8 9 10 11
bank-r 1 1 1 1 0 0 0 0 1 1 1 1
sym-add 4 5 6 7 16 17 22 23 12 13 14 15
bank-w 2 2 2 2 1 1 1 1 2 2 2 2
sym-add 4 5 6 7 4 5 6 7 12 13 14 15
count-b 12 13 14 15 16 17 18 19 20 21 22 23
bank-r 0 0 0 0 1 1 1 1 0 0 0 0
sym-add 18 19 24 25 20 21 22 23 20 21 26 27
bank-w 1 1 1 1 2 2 2 2 1 1 1 1
sym-add 12 13 14 15 20 21 22 23 20 21 22 23
CIRC 디코더의 시뮬레이션 결과(2중 패스)
도 11은 다른 버스트 에러의 정정 결과를 나타낸다. 종래의 CIRC 디코더의 정정 결과는 점선으로 도시되고, 본 발명의 CIRC 디코더에 대한 결과는 실선으로 도시된다.
다음의 에러 조합은 정정을 위한 입력이다:
1) 각각의 코드워드내에 3개 에러를 갖는 20개 C1 코드워드의 버스트 에러(랜덤 에러);
2) 각각의 코드워드내에 4개 에러를 갖는 20개 C1 코드워드의 버스트 에러;
3) 각각의 코드워드내에 5개 에러를 갖는 20개 C1 코드워드의 버스트 에러;
4) 각각의 코드워드내에 6개 에러를 갖는 20개 C1 코드워드의 버스트 에러;
5) 각각의 코드워드내에 3개 에러를 갖는 30개 C1 코드워드의 버스트 에러;
6) 각각의 코드워드내에 4개 에러를 갖는 30개 C1 코드워드의 버스트 에러;
7) 각각의 코드워드내에 5개 에러를 갖는 30개 C1 코드워드의 버스트 에러;
8) 각각의 코드워드내에 6개 에러를 갖는 30개 C1 코드워드의 버스트 에러;
9) 각각의 코드워드내에 3개 에러를 갖는 40개 C1 코드워드의 버스트 에러;
10) 각각의 코드워드내에 4개 에러를 갖는 40개 C1 코드워드의 버스트 에러;
11) 각각의 코드워드내에 5개 에러를 갖는 40개 C1 코드워드의 버스트 에러;
12) 각각의 코드워드내에 6개 에러를 갖는 40개 C1 코드워드의 버스트 에러.
본 발명의 CIRC 디코더 및 종래의 CIRC 디코더 모두 완전히 손상된 14개의 C1 코드워드의 버스트 에러를 정정할 수 있다. 종래의 CIRC 디코더와 비교할 때, 본 발명의 CIRC 디코더는 유리하게 각각의 코드워드내에 3개 또는 4개의 에러를 갖는 20개의 C1 코드워드의 버스트 에러를 정정할 수 있다. 각각의 코드워드가 5개 및 6개 에러를 갖는 경우에, 디코더는 버스트 에러를 정정할 수 없지만, 오디오 데이터의 플래그된 바이트 전송율은 여전히 종래의 CIRC 디코더에서보다 상당히 낮다. '30개의 C1 코드워드' 버스트 에러를 이용하여 더 우수한 정정 성능이 또한 얻어진다. 본 발명의 CIRC 디코더는 각각의 코드워드내에 3개의 에러를 갖는 30개의 C1 코드워드의 버스트 에러를 정정할 수 있고, 플래그된 바이트 전송율은 더 높은 에러 갯수/코드워드 때문에 또한 더 낮아진다.
4개의 분리된 메모리의 분리된 제어 및 어드레싱은 본 발명의 CIRC 디코더의 속도를 상당히 증가시킨다는 점에 주목한다.
판독 및 기록 동작동안의 M1,M2,a 메모리 및 M2,a,M2,b 메모리의 병렬 제어 및 어드레싱은 또한 본 발명의 CIRC 디코더의 속도를 상당히 증가시킨다.
전술한 CIRC 디코더와 비교해서 더 작은 크기를 갖는 메모리가 디인터리버 구현을 위해 이용된다.
디인터리버 태스크는 제 1 패스동안 M2,a 메모리에서 수행된다.
M2,a 메모리의 크기는 110×32×9이다. 디인터리버 태스크는 제 2 패스동안 M2,b 메모리에서 수행된다. M2,b 메모리의 크기는 1404×9(종래의 디인터리버)이다. 크기 256×32×9를 갖는 메모리는 전술한 CIRC 디코더에서 양쪽 디인터리버를 위해 사용된다.
2개 심벌 지연 태스크는 M3 메모리에서 수행된다. M3 메모리는 룩업 테이블로서 동작하고, 또한 CIRC 디코더의 동작 속도를 증가시킨다.
본 발명의 CIRC 디코더에서, CIRC 디코더의 단일 패스 모드를 실행할 수 있다.
본 발명의 디코딩 방법은 소위 RS 코드의 삭제 정정 방법을 이용하는데 적당하다. 손상된 C1 코드워드의 큰 버스트 에러의 정정은 낮은 입력 에러율에 의해 매우 효과적이다(각각의 C1 코드워드는 많아야 최대 6개 랜덤 에러를 포함한다).
전술한 바와 같이, 본 발명은 개선된 CIRC 정정 방법 및 CIRC 정정을 위한 개선된 컴퓨터 프로그램 및 리드 솔로몬 디코더를 제공할 수 있다.

Claims (15)

  1. 크로스 인터리브 리드 솔로몬 코드 정정(cross interleave Reed-Solomon code correction) 방법에 있어서,
    - 제 1의 C1 코드워드를 제 1 메모리 수단으로부터 C1 디코더 수단으로 입력하는 단계;
    - 제 2의 C1 코드워드를 상기 C1 디코더 수단으로부터 제 2 메모리 수단으로 출력하는 단계; 및
    - 상기 제 2 메모리 수단에서 제 1의 C2 코드워드를 생성하기 위해 상기 제 2의 C1 코드워드를 디인터리브(deinterleave)하는 단계를 포함하는, 크로스 인터리브 리드 솔로몬 코드 정정 방법.
  2. 제 1항에 있어서, 상기 제 1의 C1 코드워드가 정정될 수 있는 경우에 상기 제 2의 C1 코드워드는 상기 정정된 제 1의 C1 코드워드이고, 상기 제 1의 C1 코드워드가 정정될 수 없는 경우에 상기 제 2의 C1 코드워드는 상기 제 1의 C1 코드워드의 카피(copy)인, 크로스 인터리브 리드 솔로몬 코드 정정 방법.
  3. 제 2항에 있어서, 상기 제 1의 C1 코드워드가 정정될 수 없는 경우에 상기 제 2의 C1 코드워드내 각각의 심벌에 대해 삭제 플래그가 설정되는, 크로스 인터리브 리드 솔로몬 코드 정정 방법.
  4. 제 1항 내지 제 3항 중 어느 한 항에 있어서,
    - 상기 제 1의 C2 코드워드를 상기 제 2 메모리 수단으로부터 C2 디코더 수단으로 입력하는 단계; 및
    - 제 2의 C2 코드워드를 상기 C2 디코더 수단으로부터 상기 제 2 메모리 수단으로 출력하는 단계를 더 포함하는, 크로스 인터리브 리드 솔로몬 코드 정정 방법.
  5. 제 4항에 있어서, 상기 제 1의 C2 코드워드가 정정될 수 있는 경우에 상기 제 2의 C2 코드워드는 상기 정정된 제 1의 C2 코드워드이고, 상기 제 1의 C2 코드워드가 정정될 수 없는 경우에 상기 제 2의 C2 코드워드는 상기 제 1의 C2 코드워드의 카피인, 크로스 인터리브 리드 솔로몬 코드 정정 방법.
  6. 제 5항에 있어서, 상기 제 1의 C2 코드워드가 정정될 수 없는 경우에 상기 제 2의 C2 코드워드내 각각의 심벌에 대해 삭제 플래그를 설정하는 단계를 더 포함하는, 크로스 인터리브 리드 솔로몬 코드 정정 방법.
  7. 제 1항 내지 제 6항 중 어느 한 항에 있어서,
    - 제 2의 C1 코드워드를 상기 제 2 메모리 수단으로부터 상기 C1 디코더 수단으로 입력하는 단계;
    - 제 3의 C1 코드워드를 상기 C1 디코더 수단으로부터 제 3 메모리 수단으로 출력하는 단계; 및
    - 상기 제 3 메모리 수단에서 제 3의 C2 코드워드를 생성하기 위해서 상기 제 3의 C1 코드워드를 디인터리브(deinterleave)하는 단계를 더 포함하는, 크로스 인터리브 리드 솔로몬 코드 정정 방법.
  8. 제 7항에 있어서, 상기 제 2의 C1 코드워드가 정정될 수 있는 경우에 상기 제 3의 C1 코드워드는 상기 정정된 제 2의 C1 코드워드이고, 상기 제 2의 C1 코드워드가 정정될 수 없는 경우에 상기 제 3의 C1 코드워드는 상기 제 2의 C1 코드워드의 카피인, 크로스 인터리브 리드 솔로몬 코드 정정 방법.
  9. 제 8항에 있어서, 상기 제 2의 C1 코드워드가 정정될 수 없는 경우에 상기 제 3의 C1 코드워드내 각각의 심벌에 대해 삭제 플래그를 설정하는 단계를 더 포함하는, 크로스 인터리브 리드 솔로몬 코드 정정 방법.
  10. 제 7항 내지 제 9항 중 어느 한 항에 있어서,
    - 상기 제 3의 C2 코드워드를 상기 제 3 메모리 수단으로부터 상기 C2 디코더 수단으로 입력하는 단계; 및
    - 제 4의 C2 코드워드를 상기 C2 디코더 수단으로부터 상기 제 4 메모리 수단으로 출력하는 단계를 더 포함하는, 크로스 인터리브 리드 솔로몬 코드 정정 방법.
  11. 제 10항에 있어서, 상기 제 3의 C2 코드워드가 정정될 수 있는 경우에 상기 제 4의 C2 코드워드는 상기 정정된 제 3의 C2 코드워드이고, 상기 제 3의 C2 코드워드가 정정될 수 없는 경우에 상기 제 4의 C2 코드워드는 상기 제 3의 C2 코드워드의 카피인, 크로스 인터리브 리드 솔로몬 코드 정정 방법.
  12. 제 11항에 있어서, 상기 제 3의 C2 코드워드가 정정될 수 없는 경우에 상기 제 4의 C2 코드워드내 각각의 심벌에 대해 삭제 플래그를 설정하는 단계를 더 포함하는, 크로스 인터리브 리드 솔로몬 코드 정정 방법.
  13. 제 1항 내지 제 12항 중 어느 한 항에 따른 방법을 수행하기 위한 프로그램 수단을 포함하는, 컴퓨터 프로그램 제품.
  14. 제 1항 내지 제 12항 중 어느 한 항의 방법에 따라 크로스 인터리브 리드 솔로몬 코드 정정을 하기 위한 수단을 포함하는, 리드 솔로몬 디코더.
  15. 제 14항에 따른 리드 솔로몬 디코더를 포함하는, CD 또는 DVD 플레이어 또는 레코더와 같은 오디오 또는 비디오 디바이스.
KR1020030050513A 2002-08-10 2003-07-23 크로스 인터리브 리드 솔로몬 코드 정정 KR20040014909A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP02090289A EP1388944A1 (en) 2002-08-10 2002-08-10 Cross interleave reed-solomon code correction
EP02090289.6 2002-08-10

Publications (1)

Publication Number Publication Date
KR20040014909A true KR20040014909A (ko) 2004-02-18

Family

ID=30129230

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030050513A KR20040014909A (ko) 2002-08-10 2003-07-23 크로스 인터리브 리드 솔로몬 코드 정정

Country Status (6)

Country Link
US (1) US20040030985A1 (ko)
EP (1) EP1388944A1 (ko)
JP (1) JP2004080762A (ko)
KR (1) KR20040014909A (ko)
CN (1) CN1482744A (ko)
TW (1) TWI231478B (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8194722B2 (en) 2004-10-11 2012-06-05 Broadcom Corporation Various methods and apparatuses for impulse noise mitigation
US20060083323A1 (en) * 2004-10-15 2006-04-20 Desjardins Philip Method and apparatus for detecting transmission errors for digital subscriber lines
US20060083322A1 (en) * 2004-10-15 2006-04-20 Desjardins Philip Method and apparatus for detecting transmission errors for digital subscriber lines
US20060083324A1 (en) * 2004-10-15 2006-04-20 Desjardins Philip Method and apparatus for detecting transmission errors for digital subscriber lines
US7953163B2 (en) 2004-11-30 2011-05-31 Broadcom Corporation Block linear equalization in a multicarrier communication system
US7852950B2 (en) 2005-02-25 2010-12-14 Broadcom Corporation Methods and apparatuses for canceling correlated noise in a multi-carrier communication system
US9374257B2 (en) 2005-03-18 2016-06-21 Broadcom Corporation Methods and apparatuses of measuring impulse noise parameters in multi-carrier communication systems
US7813439B2 (en) 2006-02-06 2010-10-12 Broadcom Corporation Various methods and apparatuses for impulse noise detection
US8605837B2 (en) 2008-10-10 2013-12-10 Broadcom Corporation Adaptive frequency-domain reference noise canceller for multicarrier communications systems

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1161565A (en) * 1980-06-20 1984-01-31 Yoichiro Sako Method of error correction
JPS5710558A (en) * 1980-06-20 1982-01-20 Sony Corp Error correcting method
CA1170776A (en) * 1980-07-18 1984-07-10 Yoichiro Sako Method of error correction of blocks of data
US4637021A (en) * 1983-09-28 1987-01-13 Pioneer Electronic Corporation Multiple pass error correction
EP0188627B1 (en) * 1984-07-21 1990-10-10 Sony Corporation Apparatus for recording and/or reproducing optical cards
JPS63193723A (ja) * 1987-02-06 1988-08-11 Sony Corp リ−ドソロモン符号の復号方法
US5392299A (en) * 1992-01-15 1995-02-21 E-Systems, Inc. Triple orthogonally interleaed error correction system
JP3305966B2 (ja) * 1995-12-25 2002-07-24 ソニー株式会社 データ復号装置及びその方法並びにデータ再生装置
US6112324A (en) * 1996-02-02 2000-08-29 The Arizona Board Of Regents Acting On Behalf Of The University Of Arizona Direct access compact disc, writing and reading method and device for same
US5996105A (en) * 1997-11-14 1999-11-30 Cirrus Logic, Inc. ECC system employing a data buffer for storing codeword data and a syndrome buffer for storing error syndromes
TW479226B (en) * 2000-12-15 2002-03-11 Acer Labs Inc Disc decoding system and method

Also Published As

Publication number Publication date
TWI231478B (en) 2005-04-21
TW200403633A (en) 2004-03-01
EP1388944A1 (en) 2004-02-11
JP2004080762A (ja) 2004-03-11
CN1482744A (zh) 2004-03-17
US20040030985A1 (en) 2004-02-12

Similar Documents

Publication Publication Date Title
US4637021A (en) Multiple pass error correction
US5392299A (en) Triple orthogonally interleaed error correction system
CA1295745C (en) Method and apparatus for error correction
US4730321A (en) Disk drive with improved error correction code
US20020049947A1 (en) Product code based forward error correction system
US6041431A (en) Method and apparatus for performing error correction code operations
US7945780B1 (en) Apparatus for dynamically configurable interleaver scheme using at least one dynamically changeable interleaving parameter
US7139961B2 (en) Method and apparatus for decoding error correction code
KR20040014909A (ko) 크로스 인터리브 리드 솔로몬 코드 정정
JP2001357630A (ja) 光ディスク記憶装置の符号化/復号化システム
KR20040093499A (ko) 오류정정의 추가층을 오류정정코드 내에 삽입하는 방법 및장치
JPH0142069B2 (ko)
US6718505B1 (en) Method and apparatus for error correction in a process of decoding cross-interleaved Reed-Solomon code (CIRC)
JP3242148B2 (ja) エラー訂正方法
EP1388946A1 (en) Cross interleave reed-solomon code correction
EP1111799B1 (en) Error correction with a cross-interleaved Reed-Solomon code, particularly for CD-ROM
KR100200810B1 (ko) 오류 정정부호화 방법 및 장치
JPS6052964A (ja) 誤り訂正方法
JP2792670B2 (ja) 誤り訂正符号の復号方法
KR100196927B1 (ko) 디지털 영상신호 기록/재생장치의 오류정정방법
US7555698B2 (en) Method and apparatus for extracting specific data from BIS data
KR100425083B1 (ko) 이종 광 디스크 에러정정 회로
JPH043525A (ja) 符号誤り訂正装置
KR100200052B1 (ko) 고밀도 컴팩트 디스크용 오류정정 복호기
JPS61110247A (ja) 記憶装置

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid