KR20030070135A - 에러 정정 코드를 디코딩하는 방법 및 장치 - Google Patents

에러 정정 코드를 디코딩하는 방법 및 장치 Download PDF

Info

Publication number
KR20030070135A
KR20030070135A KR10-2003-7009745A KR20037009745A KR20030070135A KR 20030070135 A KR20030070135 A KR 20030070135A KR 20037009745 A KR20037009745 A KR 20037009745A KR 20030070135 A KR20030070135 A KR 20030070135A
Authority
KR
South Korea
Prior art keywords
memory
code word
corrected
code
error correction
Prior art date
Application number
KR10-2003-7009745A
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 KR20030070135A publication Critical patent/KR20030070135A/ko

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2927Decoding strategies
    • H03M13/293Decoding strategies with erasure setting
    • 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
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2921Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes wherein error correction coding involves a diagonal direction
    • H03M13/2924Cross interleaved Reed-Solomon codes [CIRC]

Landscapes

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

Abstract

CIRC 코드 디코딩은, 출력 전에 각 입력 프레임에 대해 매 두 번째 데이터 심볼의 1-심볼 지연 동작과, 패리티 심볼의 반전, C1 워드 디코딩, 디인터리빙, C2 워드 디코딩, 및 2-심볼 지연 동작을 포함한다. 에러 정정 능력은, C1 워드 디코딩, 디인터리빙, 및 C2 워드 디코딩이 2-심볼 지연 동작과 출력 전에 두 번(더블 패스 동작) 수행되는 경우에는 향상될 수 있다. 본 발명은, 싱글 패스 동작 뿐만 아니라 더블 패스 동작도 가능하게 하며, 최소의 용량을 갖는 하나의 메모리를 사용하며, 여기서 메모리의 3개의 파트에는 특정 동작이 할당되며 또한 이 메모리는 특정 방식으로 제어된다.

Description

에러 정정 코드를 디코딩하는 방법 및 장치{METHOD AND APPARATUS FOR DECODING ERROR CORRECTION CODE}
예를 들면, (28, 24) 리드-솔로몬 코드(C2 코드)를 갖는 CIRC 코드에 대한 인코딩 처리는 각 심볼이 8비트의 워드 길이를 갖는 24개의 데이터 심볼에 수행된다. 전형적인 오디오 어플리케이션에서, 각 오디오 샘플은 16비트로 표시된다. 위 CIRC 코드가 이러한 디지털 오디오 신호를 채널 코딩하는데 사용되면, 각 샘플은 2개의 8-비트 심볼로 표시될 수 있다. 이리하여 각 8-비트 심볼은 입체음향 오디오 데이터의 2 채널 중 하나의 채널의 하나의 오디오 샘플의 8MSB 또는 8LSB 중 하나를 나타낸다. 제 1 배열 상태를 갖는 이들 데이터 심볼은 인터리빙 동작에 의해 제 2 배열 상태로 변환된다. 이후 (32, 28) 리드-솔로몬 코드(C1 코드 워드)의 추가적인 인코딩 처리가 이제 제 2 배열 상태에 있는 28 심볼에 대해 수행된다.
도 1 은 이러한 RS 코드를 종래 방식으로 CIRC 코드 디코딩 하기 위한 회로를 도시한다. 이런 CIRC 디코더에서 주된 처리 단계는:
a) 스테이지 1SYMDEL에서 하나의 심볼만큼 매 두 번째 인입 데이터 심볼을 지연시키는 단계로서, 여기서 지연된 심볼 중 몇몇은 반전되는, 지연 단계와:
b) 스테이지 C1DEC에서 RS 코드 C1(32, 28, 5)을 디코딩하는 단계로서 이에 의해 에러 심볼을 정정하는, 디코딩 단계와:
c) 스테이지 UNEQDEL에서 디인터리빙하는 단계와;
d) 스테이지 C2DEC에서 RS 코드 C2(28, 24, 5)를 디코딩하는 단계로서 이에 의해 에러 심볼을 정정하는, 디코딩 단계와;
e) 스테이지 2SYMDEL에서 2개의 심볼만큼 C2 디코딩된 데이터 심볼 중 몇몇을 지연시키는 단계
이다.
매 32개의 인입 데이터 심볼은 하나의 프레임을 형성하며, 회로 1SYMDEL에 공급되며, 여기서 짝수 번호 매겨진 심볼만이 하나의 데이터 심볼 주기, 즉 하나의 프레임 크기만큼 지연된다. 회로 1SYMDEL로부터 출력된 32개의 심볼은 C1 디코더 C1DEC에 공급되며, 여기서 (32, 28, 5) 리드-솔로몬 코드(C1 코드 워드)의 실제 디코딩이 수행되며 C1 코드 워드에서 최대 2개의 에러 심볼이 정정된다. 3개 또는 이를 초과하는 개수의 에러가 C1 디코더에서 검출되는 경우에는, C1 포인터(즉, 삭제 플래그)가 현재의 C1 코드 워드에서 모든 데이터 심볼에 대해 설정된다.
데이터 심볼과 삭제 플래그는, 동일치 않은 길이의 지연 라인을 포함하는 디인터리빙 스테이지 UNEQDEL에서 더 처리된다. 스테이지 UNEQDEL의 출력은 C2 디코더(C2DEC)에 공급된다. 디인터리브 스테이지 UNEQDEL에서, C1 디코더로부터 생성된 각 데이터 심볼의 삭제 플래그는 데이터의 디인터리빙과 유사한 방식으로 디인터리빙된다. 최대 4개의 에러가 상기 C1 삭제 플래그를 사용하여 C2 디코더에서 정정될 수 있다. 최대 4개의 에러의 정정이 수행되고 나면, C1 삭제 플래그는 소거된다. 만일 4개를 초과하는 에러가 존재하는 경우에는, C1 삭제 플래그가 C2 코드 워드 내에 복사되거나, 또는 하나의 삭제 플래그가 C2 코드 워드의 모든 심볼에 대해 설정된다. CIRC 디코딩에서 마지막 스테이지는 2-심볼 지연(2SYMDEL)이다.
CIRC 코드 디코딩을 위한 종래의 여러 방법은, 예를 들면, EP-A-0 497 593, US-A-4 476 562, US-A-4 497 058, US-A-4 546 474, US-A-5 276 674 및 EP-A-0 156 440에 발표되어 있다. 이들 종래의 디코딩 방법에서 에러 처리는 소위 삭제 정정 방법에 따라 수행되며, 여기서 에러 심볼의 위치는 포인터 정보에 의해 표시되며, 필요한 정정은 이 에러 심볼에 수행된다. 전술된 C1 및 C2 코드 워드의 경우에, 최대 더블 에러의 검출 및 정정이 수행될 수 있으며, 만일 에러 위치가 이미 알려져 있는 경우에는 최대 4개의 삭제 또는 에러의 정정이 수행될 수 있다. 그리하여, 에러 정정 능력을 증가하기 위하여, 에러를 디코딩할 때 삭제 정정 방법을 수행하는 것이 바람직하다. 나아가, 삭제 정정 방법은 특히 버스트 에러를 정정할 때 효과적인 것으로 발견되었다.
도 1에 도시된 것과 같은 종래의 디코딩 방법은, 에러 정정 성능을 향상시킬 수 있는 CIRC 코드의 처리 블록을 이중으로 할 수 없다. 이 추가적인 특성을 제공하기 위해, 종래의 CIRC 디코더에 추가적인 회로를 소비하거나 또는 종래의 CIRC디코더를 변경할 수 있다.
EP-A-0 278 383에서, 종래의 디코딩 방법, 즉 종래의 CIRC 디코더를 사용하고 있지만 CIRC 코드의 이중 처리를 가능하게 하는 디코딩 방법이 발표되어 있다. '이중 처리'에서는 C1 디코딩과 C2 디코딩이 특정 순서로 두 번 수행된다: C1 코드 워드는 C1 디코더에 공급되며 여기서 (32, 28) 리드-솔로몬 코드의 실제 디코딩이 수행된다. 최대 2개의 에러 정정도 가능하다. 만약 3개 또는 이를 초과하는 개수의 에러가 C1 디코더에서 검출되는 경우에는, C1 포인터가 C1 코드 워드의 모든 심볼에 설정된다. 정정된 데이터와 C1 에러 포인터는 디인터리빙 스테이지에서 더 처리된다. 디인터리빙 스테이지의 출력은 C2 디코더에 공급되며, 여기서 최대 4개의 삭제 동작의 삭제 정정이 C1 포인터나 포인터들을 사용하여 수행된다. C2 디코더에서 삭제 정정을 완료할 때, C1 포인터(들)는 소거되며 어떤 포인터 정보도 두 번째 C2 디코딩 사이클로 전송되지 않는다. 두 번째 사이클 동안 C2 디코더로부터의 데이터는 인터리버에 공급되며, 이 인터리버는 원래의 재생 순서로 데이터를 되돌린다. 이후 첫 번째 디코딩 사이클을 반복하는 두 번째 디코딩 사이클을 시작한다. 그리하여 CIRC 코드의 이중 처리는 추가적인 인터리빙 스테이지를 사용하여 달성된다.
US-A-4 637 021에서는 CIRC 코드의 이중 처리를 수행하고 있지만, 싱글 패스 처리가 가능하지 않은 디코딩 방법이 기술되어 있다. 에러 검출과 정정은 C1 디코더와 C2 디코더를 사용하여 데이터 바이트의 블록을 처리함으로써 달성된다. 데이터가 처리되는 속도를 최대로 하기 위하여, C1 및 C2 디코더는 시스템 메모리에 저장되어 있는 데이터에 대해 동시에 작용하며, 여기서 C1 디코더는 C2 디코더 이전에 해당 데이터에 작용한다. 최대 이중-에러 정정의 에러 처리는 첫 번째 C1 디코딩 스테이지에서 수행되며 이중-에러 정정은 C1 디코딩 스테이지로부터 유도되는 포인터 정보를 참조함으로써 C2 디코딩 스테이지에서 수행된다. C1 포인터 정보는 에러 정정 시스템의 에러 정정 능력을 증가시키는데 사용되는 것이 아니라 디코딩 처리의 품질을 체크하는데 사용된다.
시스템 메모리로부터 C1 및 C2 디코더에 의해 판독된 데이터 바이터 열 (sequence)은 다음과 같다: 제 1 C1 디코더는 데이터 심볼 바이트(32바이트)의 C1 블록을 처리한다. 이후 제 1 C2 디코더는 C1 디코더에 의해 이미 처리된 데이터 바이트(28바이트)의 C2 블록을 처리한다. 이것은 제 1 패스(first pass)를 결정한다. 제 2 C1 디코더는 제 1 패스에 의해 이미 처리된 데이터 바이트를 처리하며 제 2 C2 디코더는 제 1 패스와 제 2 C1 디코더에 의해 이미 처리된 데이터 바이트를 처리한다. 이것은 제 2 패스를 결정한다. 디코더 사이클은 두 개의 제 1 패스와 제 2 패스 모두의 수행을 포함한다. 각 디코더 사이클을 종료할 때, 어드레스 카운터가 증분되며 추가 디코딩 사이클이 수행된다.
입력 버퍼 내의 데이터 심볼 (C1 블록) 입력이 준비된 직후 시스템 메모리에 새로운 데이터가 기록된다. 그리하여, 동작시, 4개의 디코더의 판독은 모든 이용가능한 데이터가 처리될 때까지 시스템 메모리를 거쳐 계속적으로 진행한다.
디인터리버의 구현과 데이터 제어를 위해 서로 다른 방법이 사용된다. 디인터리버 블록은 메모리 내에서 구현된다. 이 블록은 256*32 바이트를 가지며 2개의 블록, 즉 128*32 바이트를 가지는 C1 블록과 128*32 바이트를 가지는 C2 블록으로구성된다. C1 블록은 행 112 내지 행 239로 어드레스 된다. C2 블록은 행 240 내지 행 255로 어드레스 되며 이후 행 0 내지 행 111로 어드레스 된다. 이 메모리는 순환적(circular)이다. 제 1 C1 디코더는 32개의 데이터 바이트의 C1 블록을 처리하며 처음에 어드레스 112에서 C1 블록을 판독하기 위해 위치된다. 각 연속하는 디코딩 사이클(즉, C1 디코더와 C2 디코더 모두에 의한 2개의 패스의 수행)에서, C1 디코더는 그 다음 연속하는 더 높은 어드레스에서 C1 블록을 위해 위치되며 이 C1 블록을 판독한다. 그리하여, 두 번째 사이클 동안, C1 블록은 메모리 어드레스 위치(113)에 위치된다. 제 1 C2 디코더는 28개의 데이터 바이트의 C2 블록을 처리하며 처음에 메모리 어드레스(0)에서 C2 블록을 판독하기 위해 위치된다. C2 블록을 포함하는 이들 바이트는 2-차원 메모리 공간 내의 대각선을 따라 위치한다. 연속하는 디코딩 사이클에서, C2 블록을 포함하는 바이트는 변경된다. 제 2 C1 디코더는 처음에 메모리 어드레스(240)에서 C1 블록을 판독하기 위해 위치되며 제 2 C2 디코더는 처음에 메모리 어드레스(113)에서 C2 블록을 판독하기 위해 위치된다. 4개의 디코딩의 수행은 메모리를 거쳐 계속적으로 진행한다. 처리되지 않은 데이터가 메모리 내에 아직 있는 한, 디코딩 사이클이 계속된다. 메모리 내의 모든 데이터가 정정되고 나면, 에러 정정 시스템의 동작이 완료된다.
본 발명은, CIRC(cross interleave Reed-Solomon code) 에러 정정 코드를 디코딩하는 방법 및 장치, 특히 광 저장 매체로부터 판독된 디지털 데이터에서 버스트 에러 또는 랜덤 에러에 대해 증가된 정정 성능을 갖게 디코딩하는 방법 및 장치에 관한 것이다.
도 1 은 종래의 CIRC 코드 디코더의 기능 블록도.
도 2 는 더블 및 싱글 패스 동작에 대한 본 발명의 CIRC 코드 디코더의 블록도.
도 3 은 싱글 패스 뿐만 아니라 더블 패스 동작에 대해 CIRC 코드 디코딩을 위한 흐름도.
도 4 는 도 2에 있는 RAM의 파트인 M1 메모리 내의 1-심볼 지연 데이터 흐름을 도시하는 도면.
도 5 는 M1 메모리에 대한 어드레스 값을 계산하기 위한 회로를 도시하는 도면.
도 6 은 도 2에 있는 RAM의 파트인 메모리 M2와, c2_1 및 c2_2 디코더의 시작 위치 및 M2 메모리의 서로 다른 뱅크(bank)로부터 C2 코드 워드의 집합(assembling)을 도시하는 도면.
도 7 은 M2 메모리에 대한 어드레스 값을 계산하기 위한 회로를 도시하는 도면.
도 8 은 CIRC 코드 디코딩에서 2-심볼 지연 동작 동안 M3 메모리 내의 데이터 흐름을 도시하는 도면.
도 9 는 종래 및 본 발명의 CIRC 코드 디코딩에 대한 정정 결과를 도시하는 도면.
그러나, US-A-4 637 021에 제공되는 설명에 따른 CIRC 코드 디코딩은 몇몇 단점, 즉
a) 프레임에서 1-심볼 지연 동작과 패리티 심볼의 반전이 추가적인 회로를사용하여 수행되는 점과,
b) 2-심볼 지연 동작이 추가적인 회로를 사용하여 수행되는 점과,
c) 메모리가 32개의 바이트로 각각 구성된 256개의 뱅크(bank)와 이와 연관된 삭제 플래그를 요구하는 점으로서, 이리하여 메모리 용량이 각 블록이 109개의 뱅크만을 포함하는 2개의 CIRC 블록의 용량보다 상당히 더 높은 점과,
d) CIRC 디코더의 싱글 패스 동작이 가능하지 않은 단점
을 가진다.
본 발명이 해결하고자 하는 과제는, 싱글 패스 동작 뿐만 아니라 더블 패스 동작을 가능하게 하며 불필요한 추가적인 회로를 회피하며 그리고 최소의 메모리 용량만을 요구하는 CIRC 코드 디코딩을 제공하는 것이다. 이 과제는 청구항 1에 개시된 방법에 의해 해결된다. 본 방법을 사용하는 장치는 청구항 6에 개시된다.
적절히 지연된 C1 코드 워드는 C1 디코더에 공급되며, 여기서 (32, 28) 리드-솔로몬 코드의 실제 디코딩이 수행된다. 최대 2개의 에러의 정정이 가능하다. 만약 3개 또는 이를 초과하는 개수의 에러가 C1 디코더에서 검출되면, C1 포인터는 C1 코드 워드의 모든 심볼에 설정된다. 정정된 데이터와 C1 에러 포인터는 디인터리빙 스테이지에서 더 처리된다. 디인터리빙 스테이지의 출력은 C2 디코더에 공급되며, 여기서 최대 4개의 삭제 동작의 삭제 정정이 C1 포인터 또는 포인터들을 사용하여 수행된다. 그후, 원한다면, 위 첫 번째 디코딩 사이클을 반복하는 두 번째 디코딩 사이클을 시작한다. 이에 의해 예를 들어 메모리에 저장되어 있는 제 1 패스 C2 디코딩의 28개의 예비 정정된 출력 워드 또는 메모리에 아직 저장되어 있는워드(또는 해당하는 에러 정정 비트)는 제 2 패스 C1 디코딩을 위해 예를 들어 32개의 입력 데이터 심볼을 형성한다. 이에 의해 CIRC 코드의 '이중 처리'가 달성된다.
본 발명에 따라, 싱글 패스 뿐만 아니라 더블 패스 CIRC 코드 디코딩의 이용가능성과 CIRC 코드 디코딩의 1-심볼과 2-심볼 지연 동작이 메모리의 특정 제어와 어드레스 동작에 의해 달성된다. 유리하게도, 어떤 추가적인 하드웨어도 요구되지 않으며, 그리고 감소된 용량의 메모리로도 충분하다.
이중 패스 디코딩을 위해, 메모리 내의 모든 데이터 바이트는 싱글 디코더를 사용하여 두 번 정정된다. 디인터리버 구현을 위해, 218*32의 더 적은 메모리 사이즈가 전술한 디코딩 방법에서와 같이 256*32 대신에 사용된다{218은 전술한 2배(two-fold)의 CIRC 블록 길이에 해당한다}. 본 발명은 RS 코드의 삭제 정정 방법을 사용한다. 손상된 C1 코드 워드의 대규모 버스트 에러의 정정은, 만약 각 C1 코드워드가 최대 6개의 랜덤 에러를 포함하면, 낮은 입력 에러 율의 경우에 매우 효과적이다.
원리적으로 본 발명의 방법은, 에러 정정 코드, 예를 들어, CIRC 코드를 디코딩하는데 적합하며,
- 에러 정정 비트를 포함하는 코딩된 데이터 심볼의 현재 프레임을 메모리의 제 1 파트에 저장하는 단계와,
- 상기 메모리의 제 2 파트에 데이터 심볼의 상기 현재 프레임을 기록하는 단계로서 이에 의해 하나의 데이터 심볼 주기만큼 데이터 심볼의 파트를 지연시키며, 이때 이들 데이터 심볼은 C1 코드 워드를 나타내는, 기록 단계와,
- 상기 메모리로부터 상기 C1 코드 워드를 판독하며, 상기 C1 코드 워드에 대해 제 1 에러 정정을 포함하는 C1 디코딩을 수행하며, 그리고 정정된 C1 코드 워드를 상기 메모리의 상기 제 2 파트에 기록하는 단계와,
- 상기 메모리로부터 상기 정정된 C1 코드 워드를 판독하며, 상기 정정된 C1 코드 워드에 대해 디인터리빙을 수행하며, 그리고 제 2 에러 정정 또는 삭제 정정을 포함하는 C2 디코딩하는 단계와,
- 그 결과 생기는 정정된 C2 코드 워드를 상기 메모리의 제 3 파트에 저장하는 단계와,
- 상기 메모리의 상기 제 3 파트로부터 상기 정정된 C2 코드 워드를 판독하며, 코드 워드 데이터 심볼의 파트를 2개의 데이터 심볼 주기만큼 지연시키며, 그리고 그 결과 생기는 정정된 데이터 심볼을 상기 메모리의 상기 제 3 파트에 기록하는 단계와,
- 상기 메모리의 상기 제 3 파트로부터 현재 프레임의 정정된 데이터 심볼을 출력하는 단계
를 포함하거나. 또는
- 에러 정정 비트를 포함하는 코딩된 데이터 심볼의 현재 프레임을 메모리의 제 1 파트에 저장하는 단계와,
- 상기 메모리의 제 2 파트에 데이터 심볼의 상기 현재 프레임을 기록하는 단계로서 이에 의해 데이터 심볼의 파트를 하나의 데이터 심볼 주기만큼 지연시키며, 이때 이들 데이터 심볼은 C1 코드 워드를 나타내는, 기록 단계와,
- 상기 메모리로부터 상기 C1 코드 워드를 판독하며, 상기 C1 코드 워드에 대해 제 1 예비 에러 정정을 포함하는 예비 C1 디코딩을 수행하며, 그리고 예비 정정된 C1 코드 워드를 상기 메모리의 상기 제 2 파트에 기록하는 단계와,
- 상기 메모리로부터 상기 예비 정정된 C1 코드 워드를 판독하며, 상기 예비 정정된 C1 코드 워드에 대해 디인터리빙과, 제 2 예비 에러 정정 또는 예비 삭제 정정을 포함하는 예비 C2 디코딩을 수행하며, 그리고 그 결과 생기는 예비 정정된 C2 코드 워드를 상기 메모리의 상기 제 2 파트에 기록하는 단계와,
- 상기 메모리로부터 상기 예비 정정된 C2 코드 워드를 판독하며, 상기 에러 정정 비트의 요구되는 비트와 함께 상기 예비 정정된 C2 코드 워드에 대해 제 1 에러 정정을 포함하는 추가적인 C1 디코딩을 수행하며, 그리고 상기 추가 정정된 C1 코드 워드를 상기 메모리의 상기 제 2 파트에 기록하는 단계와,
- 상기 메모리로부터 상기 추가 정정된 C1 코드 워드를 판독하며, 상기 추가 정정된 C1 코드 워드에 대해 디인터리빙과, 제 2 에러 정정 또는 삭제 정정을 포함하는 추가 C2 디코딩을 수행하는 단계와,
- 그 결과 생기는 추가 정정된 C2 코드 워드를 상기 메모리의 제 3 파트에 저장하는 단계와,
- 상기 메모리의 상기 제 3 파트로부터 상기 정정된 C2 코드 워드를 판독하며, 코드 워드 데이터 심볼의 파트를 2개의 데이터 심볼 주기만큼 지연시키며, 그리고 그 결과 생기는 정정된 데이터 심볼을 상기 메모리의 상기 제 3 파트에 기록하는 단계와,
- 상기 메모리의 상기 제 3 파트로부터 현재 프레임의 정정된 데이터 심볼을 출력하는 단계
를 포함한다.
본 발명의 유리한 추가 실시예는 각 종속항에 개시되어 있다.
원리적으로, 에러 정정 코드, 예를 들어 CIRC 코드를 디코딩하기 위한 본 발명의 장치는,
- RS 디코더와,
- 메모리로서, 상기 메모리의 제 1 파트에 에러 정정 비트를 포함하는 코딩된 데이터 심볼의 현재 프레임이 저장되는, 메모리와,
- 상기 메모리의 제 2 파트에 데이터 심볼의 상기 현재 프레임의 기록 동작을 제어하는 제어기로서, 이에 의해 데이터 심볼의 파트를 하나의 데이터 심볼 주기만큼 지연시키며, 이때 이들 데이터 심볼은 C1 코드 워드를 나타내며, 여기서 상기 제어기는,
- 상기 메모리로부터 상기 C1 코드 워드를 판독하며, 상기 RS 디코더에서 상기 C1 코드 워드에 대해 제 1 에러 정정을 포함하는 C1 디코딩을 수행하며, 그리고 정정된 C1 코드 워드를 상기 메모리의 상기 제 2 파트에 기록하는 동작과,
- 상기 메모리로부터 상기 정정된 C1 코드 워드를 판독하며, 상기 정정된 C1 코드 워드에 대해 디인터리빙과, 상기 RS 디코더에서 제 2 에러 정정 또는 삭제 정정을 포함하는 C2 디코딩을 수행하는 동작과,
- 그 결과 생기는 정정된 C2 코드 워드를 상기 메모리의 제 3 파트에 저장하는 동작과,
- 상기 메모리의 상기 제 3 파트로부터 상기 정정된 C2 코드 워드를 판독하며, 코드 워드 데이터 심볼의 파트를 2개의 데이터 심볼 주기만큼 지연시키며, 그리고 그 결과 생기는 정정된 데이터 심볼을 상기 메모리의 상기 제 3 파트에 기록하는 동작
을 더 제어하는, 제어기와,
- 상기 메모리의 상기 제 3 파트로부터 현재 프레임의 정정된 데이터 심볼을 출력하기 위한 수단
을 포함하거나, 또는
- 단일 RS 디코더와,
- 메모리로서, 이 메모리의 제 1 파트에 에러 정정 비트를 포함하는 코딩된 데이터 심볼의 현재 프레임이 저장되는, 메모리와,
- 상기 메모리의 상기 제 2 파트에 데이터 심볼의 상기 현재 프레임의 기록 동작을 제어하는 제어기로서, 이에 의해 데이터 심볼의 파트를 하나의 데이터 심볼 주기만큼 지연시키며, 이때 이들 데이터 심볼은 C1 코드 워드를 나타내며, 여기서 상기 제어기는,
- 상기 메모리로부터 상기 C1 코드 워드를 판독하며, 상기 RS 디코더에서 상기 C1 코드 워드에 대해 제 1 예비 에러 정정을 포함하는 예비 C1 디코딩을 수행하며, 그리고 예비 정정된 C1 코드 워드를 상기 메모리의 상기 제 2 파트에 기록하는 동작과,
- 상기 메모리로부터 상기 예비 정정된 C1 코드 워드를 판독하며, 상기 예비 정정된 C1 코드 워드에 대해 디인터리빙과, 그리고 상기 RS 디코더에서 제 2 예비 에러 정정 또는 예비 삭제 정정을 포함하는 예비 C2 디코딩을 수행하며, 그리고 그 결과 생기는 예비 정정된 C2 코드 워드를 상기 메모리의 상기 제 2 파트에 기록하는 동작과,
- 상기 메모리로부터 상기 예비 정정된 C2 코드 워드를 판독하며, 상기 RS 디코더에서 상기 에러 정정 비트의 요구되는 비트와 함께 상기 예비 정정된 C2 코드 워드에 대해 제 1 에러 정정을 포함하는 추가적인 C1 디코딩을 수행하며, 그리고 추가 정정된 C1 코드 워드를 상기 메모리의 상기 제 2 파트에 기록하는 동작과,
- 상기 메모리로부터 상기 추가 정정된 C1 코드 워드를 판독하며, 상기 추가 정정된 C1 코드 워드에 대해 디인터리빙과, 상기 RS 디코더에서 제2 에러 정정 또는 삭제 정정을 포함하는 추가적인 C2 디코딩을 수행하는 동작과,
- 그 결과 생기는 정정된 C2 코드 워드를 상기 메모리의 제 3 파트에 저장하는 동작과,
- 상기 메모리의 상기 제 3 파트로부터 상기 정정된 C2 코드 워드를 판독하며, 코드 워드 데이터 심볼의 파트를 2개의 데이터 심볼 주기만큼 지연시키며, 그리고 그 결과 생기는 정정된 데이터 심볼을 상기 메모리의 상기 제 3 파트에 기록하는 동작
을 더 제어하는, 제어기와,
- 상기 메모리의 상기 제 3 파트로부터 현재 프레임의 정정된 데이터 심볼을 출력하기 위한 수단
을 포함한다.
본 발명의 장치의 유리한 추가 실시예는 각 종속항에 기재되어 있다.
본 발명의 예시적인 실시예는 첨부하는 도면을 참조하여 기술된다.
도 2 는 본 발명의 CIRC 코드 디코더의 주요 성분을 도시하며, 여기서 D 는 데이터 라인이나 데이터 버스를 나타내며, A 는 어드레스 라인이나 어드레스 버스를 나타낸다. 더블 및 싱글 패스 동작은 이 구성으로 구현된다.
수집 스테이지(acquisition stage)로부터 오는 데이터 스트림(acq_d)은 32개의 심볼을 저장할 수 있는 입력 로직(inp_log)에 저장된다. 이 입력 로직은 그 다음 프레임 시작 신호(nxf)와 바이트 클록(bc)을 또한 수신한다. 만약 충분한 양의 데이터가 입력 로직의 버퍼에서 이용가능하다면, 완전한 프레임이 RAM 메모리의 M1 파트에 저장된다. 디코더 디바이스는 종래의 RS 디코더(RSDEC)를 포함하며, 여기서 RS 코드에 대한 전술한 삭제 정정 방법이 구현된다. RSDEC는, 최대 4개의 삭제 또는 최대 2개의 에러, 또는 조건 2 * t + E < d에 따라 에러 및 삭제의 임의의 조합을 정정할 수 있으며, 여기서 t는 코드 워드에서의 에러의 수이며 E 는 삭제의 수이고 d는 RS 코드의 해밍 거리(Hamming distance)이며, 예를 들어 오디오 콤팩트 디스크 어플리케이션에 대해서 d=5이다.
메모리 RAM 내의 위치의 결정과 어드레싱, 데이터 또는 데이터 바이트를 RAM에 또는 RAM으로부터의 전송, 1-심볼 및 2-심볼 지연 동작, 디인터리빙 동작, 및 판독 및 기록 동작은 제어기(CONTR)를 사용하여 수행된다. 메모리(RAM)는 예를 들어 224개의 뱅크(bank)를 포함하며, 이들 뱅크 각각은 32개의 바이트와 이와 연관된 삭제 플래그를 포함한다. 이 메모리는 3개의 파트, 즉
- 1-심볼 지연 동작에 사용되는 M1 파트(예를 들어 뱅크 218-220)와,
- 디인터리빙 동작에 사용되는 M2 파트(예를 들어 뱅크 0-217)와,
- 2-심볼 지연 동작에 사용되는 M3 파트(예를 들어 뱅크 221-223)
를 포함한다.
RSDEC는 메모리(RAM)의 해당 파트로부터 요구되는 데이터를 수신하며, 각 데이터를 메모리(RAM)의 해당 파트로 송신한다. 전술한 2-심볼 지연 동작 이후, 각 경우에 24개의 데이터 바이트와 함께 이와 연관된 삭제 플래그가 메모리(RAM)의 M3 파트로부터 출력 로직(out_log)으로 로딩되며, 이 출력 로직은 에러 정정된 데이터 (aud_D)를 출력하며 그리고 프레임 시작 정보(fr_strt)와 바이트 클록(bc)을 또한 출력할 수 있다.
도 3 에 도시된 바와 같이, 흐름 블록(31)에서 CIRC 디코더 내의 제 1 동작은, 제어기(CONTR)의 초기화 동작, 더블 패스 또는 싱글 패스 동작을 위한 메모리(RAM)의 설정 동작, 및 카운터의 리셋 동작이다. M2 메모리의 뱅크 0-217은 더블 패스에 사용되며, 뱅크 108-217은 CIRC 디코더의 싱글 패스 동작에 사용된다. C1 디코딩의 2개의 패스와 C2 디코딩의 2개의 패스는 더블 패스 모드에서 수행되며, C1 디코딩의 하나의 패스와 C2 디코딩의 하나의 패스는 싱글 패스 모드에서 수행된다. 더블 패스 동작에서, c1_1 디코딩("_1"은 제 1 패스를 나타낸다)은 뱅크 108에서 그 시작 위치를 가지며, c2_1 디코딩은 뱅크 0에서 그 시작 위치를 가지며, c1_2 디코딩("_2"는 제 2 패스를 나타낸다)은 뱅크 217에서 그 시작 위치를 가지며, c2_2 디코딩은 뱅크 109에서 그 시작 위치를 가진다. 싱글 패스 동작에서, c1_1 디코딩과 c2_1 디코딩은 뱅크 108 및 뱅크 0에서 그 시작 위치를 각각 가진다. 충분한 양의 데이터가 입력 로직의 버퍼에서 이용가능하다면, M1 메모리의 뱅크 218에 프레임이 저장되며, 1-심볼 지연 동작은 단계 32와 흐름 블록(33)에 언급된 바와 같이 수행된다.
전술된 바와 같이, 입력 로직(inp_log)으로부터의 32개의 심볼의 프레임은 도 4에 도시된 바와 같이 M1 메모리의 해당 뱅크{도 4의 a와 도 4의 c에서 뱅크 어드레스 bk_add_m1(218), 도 4의 b에서 뱅크 어드레스 bk_add_m1(219), 도 4의 c에서 뱅크 어드레스 bk_add_m1(220)}에 로딩된다. 화살표 'wrt' 는 순환하는 방식으로 데이터가 현재 기록되어질 뱅크 어드레스(218 내지 220) 중 하나의 어드레스를 가리킨다.
도 5 는 M1 메모리 파트에 대한 어드레스 값(bk_add_m1)의 계산과 M2 메모리에 대한 기본 어드레스 계산을 도시한다. 현재 M1 뱅크 기록 어드레스는 수식 즉 bk_add_m1_w = ofst_m1 + count_m1_w 에 따라 계산되며, 여기서 값 count_m1_w는 기록 어드레스 카운터 count_m1_w로부터 유래하며 기록을 위한 M1 메모리 뱅크 어드레스를 한정하고, ofst_m1 은 '218'의 값을 갖는 고정된 오프셋이다. 만약 count_m1_w >2라면, 카운터 count_m1_w는 제로(0)로 리셋된다.
카운터 count_b는 3개의 출력(하나는 도 5에 도시되어 있지 않다)을 가지며, 뱅크 내의 심볼 어드레스(SYMADRBK)와 M1 메모리에 대한 짝수 또는 홀수 심볼(ev/od)을 출력한다. 이 카운터는 바이트 클록(bc)에 의해 보통 클록된다.
M1 메모리에 대한 M1 뱅크 판독 어드레스는 짝수 또는 홀수 심볼(ev/od)의 값 '0' 또는 '1'에 따라 다르며 다음의 수식, 즉
bk_add_m1_r_0 = ofst_m1 + count_m1_r 짝수
bk_add_m1_r_1 = ofst_m1 + (count_m1_r+2) mod 3 홀수
에 따라 계산되며, 여기서 값 count_m1_r 은 판독 어드레스 카운터 count_m1_r로부터 유래한다. 만약 count_m1_r > 2라면, 카운터 count_m1_r 은 제로로 리셋된다. 만약 ev/od 가 '1', 즉 홀수라면, 원래의 카운터 값 count_m1_r에 값 '2'가 추가되며, 그 결과는 ofst_m1에 추가되기 전에 모듈로-3-회로 'mod3'를 통과한다.
M1 메모리로부터의 심볼은 임시 레지스터(TR)에 로딩된다. 이 심볼의 한 바이트는, 카운터 count_b의 출력 값 SYMADRBK가 12, 13, 14, 15, 28, 29, 30, 또는 31의 값을 가지는 경우를 제외하고 반전된다(cf. 도 1의 C1DEC 입력). 이에 따라 채용된 count_b 값은 3-상 데이터 버스(DBS)를 거쳐 M2 메모리의 뱅크에 기록된다. 지연된 심볼은 M2 메모리의 해당 뱅크에 저장되며, 이에 의해 예를 들어 '108'은 M2 메모리의 시작 위치이다.
M2 뱅크 기록 어드레스 bk_add_m2_w 는 다음의 수식 즉
bk_add_m2_w = (ofst_c1_1 + count_m2_w) mod 218/109에 따라 계산되며, 여기서 ofst_c1_1 은, 아래에 기술된 바와 같이 변화하는, 메모리 내의 M2 시작 영역에 따른 오프셋 값이며, count_m2_w 는 카운터 count_m2_w의 출력 값이며, 그리고 'mod 218/109' 는 여기에서 그리고 이하에서 더블 패스 동작의 경우에는 'mod 218'을 나타내고 싱글 패스 동작의 경우에 'mod 109'를 나타내며, 그리고 해당 모듈로 회로의 기능이다. 만약 count_m2_w > mod (218/109-1)이라면, 카운터 count_m2_w 는 제로로 리셋된다. 서로다른 어드레스 값 bk_add_m1, bk_add_m2_w 및 SYMADRBK 는 서로다른 시간 주기에 어드레스 버스 ADRBS을 거쳐 출력된다. 어드레스 값 bk_add_m1 및 SYMADRBK 는 공통 어드레스 값의 2 파트를 나타낸다.
카운터 count_m1_w, count_m1_r 및 count_m2_w 은 그 다음 프레임 신호(nxf)에 의해 클록된다. 카운터 count_b 는 바이트 클록(bc)에 의해 클록되며 0 내지 31 까지 카운트된다. M1 메모리 내의 데이터 흐름은 3개의 nxf 신호 후에 반복되는데, 즉 도 4의 a 및 도 4의 d 가 M1 파트에 대해 동일하다.
C1 디코더의 제 1 패스 동작은 1-심볼 지연 동작 후에 수행된다{도 3의 블록(34)을 보라}. C1 코드 워드는 M2 메모리로부터 RS 디코더의 신드롬 생성기로 판독된다. C1 코드 워드의 디코딩과 정정이 수행되며 정정된 코드 워드는 M2 메모리에 저장된다.
판독 및 기록 동작 동안 C1 뱅크 어드레스는 다음의 수식 즉
bk_add_c1_fp = (ofst_c1_1 + count_rsd) mod 218/109에 따라 계산되며, 여기서 ofst_c1_1은 108의 고정 값을 가지며 처리 카운터count_rsd(도 5 에 도시되어 있지 않음)의 출력 값은 CIRC 디코더 내의 처리의 개수를 한정한다.
CIRC 디코더의 더블 패스 동작은 다음의 단계, 즉
a) c1_1 디코딩, 정정,
b) c2_1 디코더에 대한 디인터리빙,
c) c2_1 디코딩, 정정,
d) d1_2 디코딩, 정정,
e) c2_2 디코더에 대한 디인터리빙,
f) c2_2 디코딩, 정정
을 포함하며, 여기서 각 단계는 처리 카운터를 증분시킨다. 인입 CIRC 인코딩된 데이터의 각 데이터 심볼은 두 번 처리된다.
CIRC 디코더의 싱글 패스 동작은 다음의 단계, 즉
a) c1_1 디코딩, 정정,
b) c2_1 디코더에 대한 디인터리빙,
c) c2_1 디코딩, 정정
을 포함한다.
M2 메모리의 사이즈는 218*32*9이다. M2 는 두 개의 반쪽(two halves)을 가진다. 도 6의 a 는 메모리 M2에서 c1_1, c1_2, c2_1, 및 c2_2 디코더의 시작 위치와 M2 메모리의 서로다른 뱅크로부터의 C2 코드 워드의 집합을 도시한다. 수직 위치는 0 내지 217에 이르는 메모리 뱅크 어드레스 bk_add를 나타내며, 수평 위치는 0 내지 31에 이르는 심볼 어드레스 sym_add를 나타낸다. 심볼 어드레스 28 내지 31로부터 C1 코드 워드의 패리티 파트 PARP가 배열된다. 위 처리 단계에 대한 뱅크어드레스 오프셋 값 ofst_c1_1, ofst_c1_2, ofst_c2_1 및 ofst_c2_2 은, 각각 108, 217, 0 및 109이며 새로운 프레임에 대한 메모리 내의 시작 위치를 나타낸다.
새로운 데이터는 M1 메모리로부터 M2 메모리(파트 1)의 뱅크(108 내지 217)로 로딩되며 그리고 c1_1 및 c2_1 디코더에 의해 처리된다. 만약 109 뱅크가 c1_1 디코더에 의해 이미 사용되었다면, 이것은 뱅크 0에서 계속된다. c1_2 및 c2_2 디코더는 M2 메모리의 파트 2 내에서 오래된 데이터를 처리한다.
대안으로서, 시작 위치(108과 217, 및 0과 109)는 교환될 수 있으며, 즉 4개의 처리 열(sequence)은 대신에 메모리의 다른 반쪽에서 시작할 수 있다. 제 1 패스에서, 각 연속하는 디코더 사이클에서, C1 디코더에서부터 정정된 C1 워드는 동일한 뱅크 어드레스에 기록된다. M1 메모리로부터 그 다음 C1 워드는 M2 메모리의 그 다음 연속적으로 더 높은 뱅크 어드레스로 기록된다. 예를 들면,
a) M1 메모리로부터 C1 코드 워드를 M2 메모리의 뱅크 어드레스 #108에 기록하며,
b) M2 메모리의 뱅크 어드레스 #108로부터 이 C1 코드 워드를 판독하며 이를 C1 디코더에 로딩하며,
c) C1 디코더로부터 정정된 C1 코드 워드를 M2 메모리의 뱅크 어드레스 #108로 기록하며,
d) M1 메모리로부터 C1 코드 워드를 M2 메모리의 뱅크 어드레스 #109에 기록하며,
e) M2 메모리의 뱅크 어드레스 #109로부터 이 C1 코드 워드를 판독하며 이를C1 디코더에 로딩하며,
f) C1 디코더로부터 정정된 C1 코드 워드를 M2 메모리의 뱅크 어드레스 #109로 기록하며,
이와 같이 계속된다.
제 2 패스에서, 각 연속하는 디코더 사이클에서, C1 디코더에 대한 입력은 그 다음 연속적으로 더 높은 메모리 뱅크 어드레스로부터 판독된다. 정정된 C1 코드 워드는 동일한 메모리 뱅크 어드레스로 로딩된다. C2 코드 워드의 심볼은 M2 메모리 공간 내의 대각선을 따라 위치한다. 연속하는 디코딩 사이클에서 C2 코드 워드를 나타내는 데이터 심볼이 변경된다. C2 코드 워드를 기록하기 위한 초기 데이터 심볼은 메모리 뱅크 어드레스 0에 있고 데이터 심벌 어드레스 0에 있다. 제 1 패스 후에, 정정된 C 2 코드 워드는 동일 위치로 로딩된다(메모리 뱅크 어드레스, 데이터 심볼 어드레스). 제 2 패스 후에, 정정된 C2 코드 워드는 M3 메모리로 로딩된다.
도 7 은 M2 메모리 파트에 대한 어드레스 값의 계산을 상세하게 예시한다. 유리하게, 카운터 count_b 는 서로 다른 카운팅을 하기 위해 사용될 수 있으며 현재 뱅크에서 심볼 어드레스를 한정한다. 도 2에서 제어기(CONTR)로부터 오는 카운터 모드 신호(cnt_mod)는 RS 디코더의 현재 패스와 카운터 count_b의 해당 카운트 모드를 한정하는데, 즉 :
a) count_mode = 00 C1 디코더, 제 1 패스,
b) count_mode = 01 C2 디코더, 제 1 패스,
c) count_mode = 10 C1 디코더, 제 2 패스,
d) count_mode = 11 C2 디코더, 제 2 패스
를 한정한다.
C1을 처리하는 동안, count_b 는 제로(0)로부터 최대 32까지 이르는 반면, C2 처리 동안, count_b 는 제로(0)로부터 최대 28까지 이른다. 이들 시간 주기 동안, 카운터 count_b 는 바이트 클록(bc)에 의해 클록되지 않고 심볼 어드레스의 증분(+1sym_add)에 의해 클록된다.
4개의 입력을 가지는 멀티플렉서(mux4)는, cnt_mod = 00 일 때 입력 1에서 뱅크 어드레스 bk_add_c1_fp를 선택한다( fp 는 제 1 패스를 의미한다). 디인터리브된 C1 코드 워드는 C2 코드 워드로 변환되며 C2 디코더의 제 1 패스가 수행된다{도 3에서 블록(35)}. C2 코드 워드는 RS 디코더의 신드롬 생성기로 기록된다. C2 코드 워드의 디코딩과 정정이 수행되며 정정된 코드 워드는 M2 메모리에 저장된다.
도 6의 b 는 M2 메모리의 서로 다른 뱅크로부터 C2 코드 워드의 집합을 도시한다. 제 1 라인은 뱅크 어드레스 수를 도시하며 제 2 라인은 메모리 뱅크 내의 해당 심볼 어드레스 수를 나타낸다. 기록/판독 동작 동안 요구되는 28개의 뱅크 어드레스는 다음의 수식, 즉
bk_add_c2_fp = (ofst_c2_1 + count_rsd + 4*count_b) mod 218/109에 따라 계산되며, 여기서 count_b 는 현재 뱅크 어드레스 내의 심볼 어드레스를 한정한다.
멀티플렉서(mux4)는, cnt_mod = 01 일 때 입력 2에서 뱅크 어드레스 bk_add_c2_fp를 선택한다. C1 디코더 또는 C2 디코더의 제 2 패스는 스위치 on 또는 off 되는 CIRC 디코더{c2_1 디코더, 도 3의 블록(37)}의 더블 패스 동작 모드에 따라 수행된다. C1 코드 워드는 M2 메모리로부터 판독되며 RS 디코더의 신드롬 생성기로 로딩된다. C1 코드 워드의 디코딩과 정정이 수행되며 정정된 코드 워드는 M2 메모리에 저장된다. 기록/판독 동작 동안 뱅크 어드레스는 다음의 수식, 즉bk_add_c1_sp = (ofst_c1_2 + count_rsd) mod 218/109에 따라 계산된다.
멀티플렉서(mux4)는, cnt_mod = 10 일 때 입력 3에서 뱅크 어드레스(bk_add_c1_sp)를 선택한다(sp 는 제 2 패스를 의미한다). 디인터리브된 C1 코드 워드는 C2 코드 워드로 변환되며, C2 디코더의 제 2 패스가 수행된다{c2_1 디코더, 도 3의 블록(38)}. C2 코드 워드는 RS 디코더의 신드롬 생성기에 기록된다. C2 코드 워드의 디코딩과 정정이 수행되며 정정된 코드 워드는 M2 메모리에 저장된다. 기록/판독 동작 동안 요구되는 28개의 뱅크 어드레스는 다음의 수식, 즉 bk_add_c2_sp = (ofst_c2_2 + count_rsd + 4*count_b) mod 218/109에 따라 계산된다.
멀티플렉서(mux4)는, cnt_mod = 11 일 때 입력 4에서 뱅크 어드레스 bk_add_c2_sp를 선택한다. C2 코드 워드는 CIRC 디코더의 더블 또는 싱글 패스에 따라 M3 메모리에 또한 저장한다. 'C' 표시(notation)의 다음의 룰(rule)은 M2 및 M3 메모리 내의 판독/기록 어드레싱을 기술한다.
If(single pass) {
for(count_b=0; count_b<28; ++count_b) {
bk_add_c2_fp = (ofst_c2_1 + count_rsd + 4 times accumulatedcount_b) mod 109;
M3[ofst_m3][count_b] = M2[bk + add_c2_fp][count_b];
}
} else if(double pass) {
for(count_b=0; count_b<28; ++count_b) {
bk_add_c2_sp = (ofst_c2_2 + count_rsd + 4 times accumulated count_b) mod 218;
M3[ofst_m3][count_b] = M2[bk + add_c2_sp][count_b];
}
count_b에 계수 4를 곱하는 대신에, 현재 값 count_b 는 멀티플라이어(multiplier)를 절감하기 위해 4번 누적된다.
카운터 count_rsd 는 그 다음 처리 신호 +1proc 에 의해 클록된다. 싱글 패스 동작에서 카운터는, 만약 count_rsd > mod 108인 경우 리셋되는 반면, 더블 패스 동작에서 카운터는 count_rsd >mod 217이면 리셋된다. 카운터 count_b 의 제 1 출력은 뱅크 내의 심볼 어드레스 SYMADRBK를 전송한다. SYMADRBK 는 어드레스 버스 ADRBS를 거쳐 mux4의 출력과 함께 전송된다. M2 내의 뱅크 어드레스를 나타내는, 이 카운터의 추가 출력 신호 bk_add_m2는 가산기에서 이 가산기의 지연된 출력 신호와 결합되며, 지연을 위하여 이 가산기의 출력 신호는 임시 레지스터(TR1)에 중간에 저장된다. 가산기 출력 신호는 AND 게이트를 거쳐 추가 가산기에 송신되며, 이 추가 가산기는 제 2 입력 신호로서 count_rsd의 출력 신호를 수신한다. AND 게이트의 제 2 입력은, 만약 count_rsd가 값 '01' 또는 '11'을 가지면 로직 값 '1'을 수신하고 그렇치 않으면 로직 값 '0'을 수신한다.
추가 가산기의 출력 신호는 mod 218/109 스테이지를 거쳐 4개의 가산기의 제 1 입력으로 송신된다. 이들 4개의 가산기 중 제 1 가산기는 제 2 입력에서 오프셋 값 ofst_c1_1 = 108을 수신하며 그 출력 신호를 mux4의 입력 1에 제공한다. 이들 4개의 가산기 중 제 2 , 제 3, 및 제 4 가산기는 제 2 입력에서 오프셋 값 ofst_c2_1 = 0, ofst_c1_2 = 217, ofst_c2_2 = 109를 각각 수신하며, 그 출력 신호를 mux4의 입력 2, 3, 또는 4에 각각 제공한다.
CIRC 디코더의 더블 패스 동작을 수행하면, 2-심볼 지연 동작{도 3의 블록(39)}은 C2 디코더의 제 2 패스 동작 이후 수행된다.
CIRC 디코더의 싱글 패스 동작을 수행하면, 2-심볼 지연 동작{도 3의 블록(39)}은 C2 디코더의 제 1 패스 동작 이후 수행된다.
도 8 은 CIRC 디코더의 2-심볼 지연 동작 동안 M3 메모리 파트 내의 데이터 흐름을 도시하며, 여기서 M3 메모리는 3개의 뱅크, 즉 bk_221, bk_222, 및 bk_223을 포함한다. C2 디코딩 및 정정 이후, M2 메모리로부터 데이터 m2mem이 뱅크 bk_221로 로딩된다. 2-심볼 지연 작업은 다음의 2 단계, 즉
a) 지연된 데이터를 판독하며 이를 출력 로직 out_log에 전송하는 단계와,
b) M3 메모리에 겹쳐 쓰는(overwriting) 단계
를 포함한다.
다음의 표 1은 제 1 단계 동안 어드레스를 생성하는데 사용될 수 있다.
[표 1]
이 표 1에서
a) 'count_b' --> 카운터의 카운트 값,
b) 'bank' --> RAM 내의 bank_address 'bk',
c) 'sym_add' --> 뱅크 내의 심볼 어드레스
이다.
다음의 표 2는 제 2 패스 또는 단계 동안 판독/기록 어드레스를 생성하는데 사용될 수 있다. 'bank_r'은 판독을 위한 RAM 내의 bank_address 'bk'인 반면, 'bank_w' 는 기록을 위한 RAM 내의 bank_address 'bk'이다.
[표 2]
'bk_223'으로부터의 출력 데이터 OPLOG 는 출력 로직 'out_log'에 제공된다. 제어기(CONTR)의 카운터는 도 3의 흐름도의 단계 39 이후에 업데이트되며, 그리고 CIRC 디코더는 이후 입력 로직으로부터 오는 그 다음 프레임을 처리할 준비를 한다.
도 9에는 플래그 있는 바이트 율(FLGBR) 대 종래 및 본 발명의 더블 패스 CIRC 디코더의 입력 에러 율 (IPERRR) 결과가 도시되어 있다. 종래의 CIRC 디코더 CCIRCDEC의 정정 결과는 파선으로 도시되어 있으며 본 발명의 CIRC 디코더(NCIRCDEC)의 정정 결과는 실선으로 도시되어 있다. 각 곡선은 4개의 서로다른 입력 에러율 측정으로부터 작성된다. 다음의 에러 조합이 정정을 위해 입력되었다:
a) 각 C1 코드 워드에서 3개의 에러를 가지는 20개의 C1 코드 워드 'cdw'의 버스트 'brst' 에러.
여기서 그리고 이하의 에러 패턴에서, "각 C1 코드 워드 내의 에러"는 랜덤 에러이다.
b) 각 C1 코드 워드에서 4개의 에러를 가지는 20개의 C1 코드 워드의 버스트 에러.
c) 각 C1 코드 워드에서 5개의 에러를 가지는 20개의 C1 코드 워드의 버스트 에러.
d) 각 C1 코드 워드에서 6개의 에러를 가지는 20개의 C1 코드 워드의 버스트 에러.
e) 각 C1 코드 워드에서 3개의 에러를 가지는 30개의 C1 코드 워드의 버스트 에러
f) 각 C1 코드 워드에서 4개의 에러를 가지는 30개의 C1 코드 워드의 버스트 에러
g) 각 C1 코드 워드에서 5개의 에러를 가지는 30개의 C1 코드 워드의 버스트 에러
h) 각 C1 코드 워드에서 6개의 에러를 가지는 30개의 C1 코드 워드의 버스트 에러
i) 각 C1 코드 워드에서 3개의 에러를 가지는 40개의 C1 코드 워드의 버스트 에러
j) 각 C1 코드 워드에서 4개의 에러를 가지는 40개의 C1 코드 워드의 버스트 에러
k) 각 C1 코드 워드에서 5개의 에러를 가지는 40개의 C1 코드 워드의 버스트 에러
l) 각 C1 코드 워드에서 6개의 에러를 가지는 40개의 C1 코드 워드의 버스트 에러.
본 발명의 CIRC 디코더와 종래의 CIRC 디코더는 14개의 완전히 손상된 C1 코드 워드의 버스트 에러를 정정할 수 있다. 종래의 CIRC 디코더에 비해, 본 발명의 CIRC 디코더는 각 코드 워드에서 3개 또는 4개의 에러를 가지는 20개의 C1 코드 워드의 버스트 에러를 정정할 수 있는 것이 명백하다. 각 코드 워드가 5개 및 6개의 에러를 가지는 경우에, 디코더는 버스트 에러를 정정할 수 없지만, 오디오 데이터의 플래그 있는 바이트 율(FLGBR)은 종래 CIRC 디코더에 비해 더 상당히 낮다. 더 나은 정정 성능은 또한 '30개의 C1 코드 워드' 버스트 에러로 얻어진다. 본 발명의 CIRC 디코더는 각 코드 워드에서 3개의 에러를 가지는 30개의 C1 코드 워드의 버스트 에러를 정정할 수 있으며 플래그 있는 바이트 율(FLGBR)은 코드 워드 당 더 높은 에러 수에 대해서도 더 낮다.
본 발명은 비디오 CD와 CD-ROM과 같은 다른 디지털 저장 매체에 그리고 CIRC 코드와 유사한 코드의 디코딩에 또한 적용할 수 있다.
전술한 바와 같이, 본 발명은,, CIRC 에러 정정 코드를 디코딩하는 방법 및 장치 등에 이용가능하다.

Claims (10)

  1. 에러 정정 코드, 예를 들어, CIRC 코드를 디코딩(inp_log, RSDEC, out_log, CONTR, RAM)하는 방법에 있어서,
    - 에러 정정 비트를 포함하는 코딩된 데이터 심볼의 현재 프레임을 메모리(RAM)의 제 1 파트(M1)에 저장하는 단계와,
    - 상기 메모리의 제 2 파트(M2)에 데이터 심볼의 상기 현재 프레임을 기록하는 단계로서 이에 의해 하나의 데이터 심볼 주기만큼 데이터 심볼의 파트를 지연 (1SYMDEL)시키며, 이때 상기 데이터 심볼은 C1 코드 워드를 나타내는, 기록 단계와,
    - 상기 메모리로부터 상기 C1 코드 워드를 판독(34)하며, 상기 C1 코드 워드에 대해 제 1 에러 정정을 포함하는 C1 디코딩(C1DEC)을 수행하며, 그리고 정정된 C1 코드 워드를 상기 메모리의 상기 제 2 파트(M2)에 기록하는 단계와,
    - 상기 메모리로부터 상기 정정된 C1 코드 워드를 판독(35)하며, 상기 정정된 C1 코드 워드에 대해 디인터리빙(UNEQDEL)과, 제 2 에러 정정 또는 삭제 정정을 포함하는 C2 디코딩(C2DEC)하는 단계와,
    - 그 결과 생기는 정정된 C2 코드 워드를 상기 메모리의 제 3 파트(M3)에 저장하는 단계와,
    - 상기 메모리의 상기 제 3 파트(M3)로부터 상기 정정된 C2 코드 워드를 판독(39)하며, 코드 워드 데이터 심볼의 파트를 2개의 데이터 심볼 주기만큼 지연(2SYMDEL)시키며, 그리고 그 결과 생기는 정정된 데이터 심볼을 상기 메모리의 상기 제 3 파트(M3)에 기록하는 단계와,
    - 상기 메모리의 상기 제 3 파트(M3)로부터 현재 프레임의 정정된 데이터 심볼을 출력(out_log)하는 단계
    를 포함하는 것을 특징으로 하는, 에러 정정 코드를 디코딩하는 방법.
  2. 에러 정정 코드, 예를 들어, CIRC 코드를 디코딩(inp_log, RSDEC, out_log, CONTR, RAM)하는 방법에 있어서,
    - 에러 정정 비트를 포함하는 코딩된 데이터 심볼의 현재 프레임을 메모리 (RAM)의 제 1 파트(M1)에 저장하는 단계와,
    - 상기 메모리의 제 2 파트(M2)에 데이터 심볼의 상기 현재 프레임을 기록 (33)하는 단계로서 이에 의해 데이터 심볼의 파트를 하나의 데이터 심볼 주기만큼 지연(1SYMDEL)시키며, 이때 상기 데이터 심볼은 C1 코드 워드를 나타내는, 기록 단계와,
    - 상기 메모리로부터 상기 C1 코드 워드를 판독(34)하며, 상기 C1 코드 워드에 대해 제 1 예비 에러 정정을 포함하는 예비 C1 디코딩(C1DEC)을 수행하며, 그리고 예비 정정된 C1 코드 워드를 상기 메모리의 상기 제 2 파트(M2)에 기록하는 단계와,
    - 상기 메모리로부터 상기 예비 정정된 C1 코드 워드를 판독(35)하며, 상기 예비 정정된 C1 코드 워드에 대해 디인터리빙(UNEQDEL)과, 제 2 예비 에러 정정 또는 예비 삭제 정정을 포함하는 예비 C2 디코딩(C2DEC)을 수행하며, 그리고 그 결과 생기는 예비 정정된 C2 코드 워드를 상기 메모리의 상기 제 2 파트(M2)에 기록하는 단계와,
    - 상기 메모리로부터 상기 예비 정정된 C2 코드 워드를 판독(37)하며, 상기 에러 정정 비트의 요구되는 비트와 함께 상기 예비 정정된 C2 코드 워드에 대해 제 1 에러 정정을 포함하는 추가적인 C1 디코딩(C1DEC)을 수행하며, 그리고 상기 추가 정정된 C1 코드 워드를 상기 메모리의 상기 제 2 파트(M2)에 기록하는 단계와,
    - 상기 메모리로부터 상기 추가 정정된 C1 코드 워드를 판독(38)하며, 상기 추가 정정된 C1 코드 워드에 대해 디인터리빙(UNEQDEL)과, 제 2 에러 정정 또는 삭제 정정을 포함하는 추가적인 C2 디코딩(C2DEC)을 수행하는 단계와,
    - 그 결과 생기는 추가 정정된 C2 코드 워드를 상기 메모리의 제 3 파트(M3)에 저장하는 단계와,
    - 상기 메모리의 상기 제 3 파트(M3)로부터 상기 정정된 C2 코드 워드를 판독(39)하며, 코드 워드 데이터 심볼의 파트를 2개의 데이터 심볼 주기만큼 지연 (2SYMDEL)시키며, 그리고 그 결과 생기는 정정된 데이터 심볼을 상기 메모리의 상기 제 3 파트(M3)에 기록하는 단계와,
    - 상기 메모리의 상기 제 3 파트(M3)로부터 현재 프레임의 정정된 데이터 심볼을 출력(out_log)하는 단계
    를 포함하는 것을 특징으로 하는, 에러 정정 코드를 디코딩하는 방법.
  3. 제 1 항 또는 제 2 항에 있어서, 상기 메모리(RAM)의 상기 제 1 파트(M1)는 제 1 개수-예를 들어 3개-의 뱅크(bk)로 구성되며, 상기 뱅크에는 데이터 심벌의 각 연속하는 프레임이 순환 방식으로 기록되는, 에러 정정 코드를 디코딩하는 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서, 상기 메모리(RAM)의 상기 제 2 파트(M2)는 제 2 개수의 뱅크(bk)로 구성되며, 상기 제 2 개수는 상기 에러 정정 코드의 블록의 뱅크 개수의 2배이며, 상기 메모리의 상기 제 2 파트(M2)는 상기 디인터리빙에 사용되는, 에러 정정 코드를 디코딩하는 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서, 상기 메모리(RAM)의 상기 제 3 파트(M3)는 제 3 개수-예를 들어 3개-의 뱅크(bk)로 구성되는, 에러 정정 코드를 디코딩하는 방법.
  6. 에러 정정 코드, 예를 들어 CIRC 코드를 디코딩(inp_log, RSDEC, out_log, CONTR, RAM)하기 위한 장치에 있어서,
    - RS 디코더(RSDEC)와,
    - 메모리(RAM)로서 상기 메모리의 제 1 파트(M1)에는 에러 정정 비트를 포함하는 코딩된 데이터 심볼의 현재 프레임이 저장되는, 메모리와,
    - 상기 메모리의 제 2 파트(M2)에 데이터 심볼의 상기 현재 프레임의 기록동작(33)을 제어하는 제어기(CONTR)로서, 이에 의해 데이터 심볼의 파트를 하나의 데이터 심볼 주기만큼 지연(1SYMDEL)시키며, 이때 이들 데이터 심볼은 C1 코드 워드를 나타내며, 여기서 상기 제어기(CONTR)는,
    - 상기 메모리로부터 상기 C1 코드 워드를 판독(34)하며, 상기 RS 디코더에서 상기 C1 코드 워드에 대해 제 1 에러 정정을 포함하는 C1 디코딩(C1DEC)을 수행하며, 그리고 정정된 C1 코드 워드를 상기 메모리의 상기 제 2 파트(M2)에 기록하는 동작과,
    - 상기 메모리로부터 상기 정정된 C1 코드 워드를 판독(35)하며, 상기 정정된 C1 코드 워드에 대해 디인터리빙(UNEQDEL)과, 상기 RS 디코더에서 제 2 에러 정정 또는 삭제 정정을 포함하는 C2 디코딩(C2DEC)을 수행하는 동작과,
    - 그 결과 생기는 정정된 C2 코드 워드를 상기 메모리의 제 3 파트 (M3)에 저장하는 동작과,
    - 상기 메모리의 상기 제 3 파트(M3)로부터 상기 정정된 C2 코드 워드를 판독(39)하며, 코드 워드 데이터 심볼의 파트를 2개의 데이터 심볼 주기만큼 지연(2SYMDEL)시키며, 그리고 그 결과 생기는 정정된 데이터 심볼을 상기 메모리의 상기 제 3 파트(M3)에 기록하는 동작
    을 더 제어하는, 제어기(CONTR)와,
    - 상기 메모리의 상기 제 3 파트(M3)로부터 현재 프레임의 정정된 데이터 심볼을 출력하기 위한 수단(out_log)
    을 포함하는, 에러 정정 코드를 디코딩하기 위한 장치.
  7. 에러 정정 코드, 예를 들어 CIRC 코드를 디코딩(inp_log, RSDEC, out_log, CONTR, RAM)하기 위한 장치에 있어서,
    - 단일 RS 디코더(RSDEC)와,
    - 메모리(RAM)로서, 상기 메모리의 제 1 파트(M1)에는 에러 정정 비트를 포함하는 코딩된 데이터 심볼의 현재 프레임이 저장되는, 메모리(RAM)와,
    - 상기 메모리의 제 2 파트(M2)에 데이터 심볼의 상기 현재 프레임의 기록 동작(33)을 제어하는 제어기(CONTR)로서, 이에 의해 데이터 심볼의 파트를 하나의 데이터 심볼 주기만큼 지연(1SYMDEL)시키며, 이때 이들 데이터 심볼은 C1 코드 워드를 나타내며, 여기서 상기 제어기(CONTR)는,
    - 상기 메모리로부터 상기 C1 코드 워드를 판독(34)하며, 상기 RS 디코더에서 상기 C1 코드 워드에 대해 제 1 예비 에러 정정을 포함하는 예비 C1 디코딩(C1DEC)을 수행하며, 그리고 예비 정정된 C1 코드 워드를 상기 메모리의 상기 제 2 파트(M2)에 기록하는 동작과,
    - 상기 메모리로부터 상기 예비 정정된 C1 코드 워드를 판독(35)하며, 상기 예비 정정된 C1 코드 워드에 대해 디인터리빙(UNEQDEL)과, 그리고 상기 RS 디코더에서 제 2 예비 에러 정정 또는 예비 삭제 정정을 포함하는 예비 C2 디코딩 (C2DEC)을 수행하며, 그리고 그 결과 생기는 예비 정정된 C2 코드 워드를 상기 메모리의 상기 제 2 파트(M2)에 기록하는 동작과,
    - 상기 메모리로부터 상기 예비 정정된 C2 코드 워드를 판독(37)하며,상기 RS 디코더에서 상기 에러 정정 비트의 요구되는 비트와 함께 상기 예비 정정된 C2 코드 워드에 대해 제 1 에러 정정을 포함하는 추가적인 C1 디코딩(C1DEC)을 수행하며, 그리고 추가 정정된 C1 코드 워드를 상기 메모리의 상기 제 2 파트(M2)에 기록하는 동작과.
    - 상기 메모리로부터 상기 추가 정정된 C1 코드 워드를 판독(38)하며, 상기 추가 정정된 C1 코드 워드에 대해 디인터리빙(UNEQDEL)과, 상기 RS 디코더에서 제 2 에러 정정 또는 삭제 정정을 포함하는 추가적인 C2 디코딩(C2DEC)을 수행하는 동작과,
    - 그 결과 생기는 정정된 C2 코드 워드를 상기 메모리의 제 3 파트 (M3)에 저장하는 동작과,
    `- 상기 메모리의 상기 제 3 파트(M3)로부터 상기 정정된 C2 코드 워드를 판독(39)하며, 코드 워드 데이터 심볼의 파트를 2개의 데이터 심볼 주기만큼 지연(2SYMDEL)시키며, 그리고 그 결과 생기는 정정된 데이터 심볼을 상기 메모리의 상기 제 3 파트(M3)에 기록하는 동작
    을 더 제어하는, 제어기(CONTR)와,
    - 상기 메모리의 상기 제 3 파트(M3)로부터 현재 프레임의 정정된 데이터 심볼을 출력하기 위한 수단(out_log)
    을 포함하는, 에러 정정 코드를 디코딩하기 위한 장치.
  8. 제 6 항 또는 제 7 항에 있어서, 상기 메모리(RAM)의 상기 제 1 파트(M1)는제 1 개수-예를 들어 3개-의 뱅크(bk)로 구성되며, 상기 뱅크에는 데이터 심볼의 각 연속하는 프레임이 순환 방식으로 기록되는, 에러 정정 코드를 디코딩하기 위한 장치.
  9. 제 6 항 내지 제 8 항 중 어느 한 항에 있어서, 상기 메모리(RAM)의 상기 제 2 파트(M2)는 제 2 개수의 뱅크(bk)로 구성되며, 이 개수는 상기 에러 정정 코드의 블록의 뱅크 개수의 2배이며 그리고 상기 메모리의 상기 제 2 파트(M2)는 상기 디인터리빙에 사용되는, 에러 정정 코드를 디코딩하기 위한 장치.
  10. 제 6 항 내지 제 9 항 중 어느 한 항에 있어서, 상기 메모리(RAM)의 상기 제 3 파트(M3)는 제 3 개수-예를 들어 3개-의 뱅크(bk)로 구성되는, 에러 정정 코드를 디코딩하기 위한 장치.
KR10-2003-7009745A 2001-02-16 2002-02-04 에러 정정 코드를 디코딩하는 방법 및 장치 KR20030070135A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP01103804A EP1233523A1 (en) 2001-02-16 2001-02-16 Method and apparatus for decoding error correction code
EP01103804.9 2001-02-16
PCT/EP2002/001105 WO2002069505A1 (en) 2001-02-16 2002-02-04 Method and apparatus for decoding error correction code

Publications (1)

Publication Number Publication Date
KR20030070135A true KR20030070135A (ko) 2003-08-27

Family

ID=8176515

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-7009745A KR20030070135A (ko) 2001-02-16 2002-02-04 에러 정정 코드를 디코딩하는 방법 및 장치

Country Status (8)

Country Link
US (1) US7139961B2 (ko)
EP (2) EP1233523A1 (ko)
JP (1) JP3891568B2 (ko)
KR (1) KR20030070135A (ko)
CN (1) CN1316751C (ko)
MY (1) MY130133A (ko)
TW (1) TWI266487B (ko)
WO (1) WO2002069505A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101037578B1 (ko) * 2010-03-16 2011-05-27 주식회사 한빛구조엔지니어링 경간보강재를 이용한 띠장부재 및 이를 이용한 흙막이지지공법
KR20140093248A (ko) * 2011-11-18 2014-07-25 쌘디스크 엔터프라이즈 아이피 엘엘씨 복수의 패리티 세그먼트를 갖는 코드워드를 디코딩하기 위한 시스템, 방법 및 장치들

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3960061B2 (ja) * 2002-01-31 2007-08-15 ソニー株式会社 データ記録媒体、データ記録方法および装置、データ再生方法および装置、データ送信方法およびデータ受信方法
TWI254283B (en) * 2003-06-03 2006-05-01 Sunplus Technology Co Ltd Error correction device of block code and method thereof
EP1830471A1 (en) * 2006-02-10 2007-09-05 Deutsche Thomson-Brandt Gmbh Apparatus and method for decoding data
US7734984B2 (en) * 2006-04-13 2010-06-08 Trident Microsystems (Far East) Ltd. Erasures assisted block code decoder and related method
US8077520B1 (en) * 2008-09-05 2011-12-13 Marvell International Ltd. Determining threshold voltage distribution in flash memory
CN102541675B (zh) * 2010-12-23 2015-03-11 慧荣科技股份有限公司 提升错误更正能力的方法、记忆装置及其控制器
CN102034555B (zh) * 2011-01-19 2012-09-19 哈尔滨工业大学 一种利用奇偶校验码进行故障在线纠错装置及方法
US8910012B2 (en) * 2012-10-16 2014-12-09 International Business Machines Corporation Block-interleaved and error correction code (ECC)-encoded sub data set (SDS) format
JP2015222467A (ja) * 2014-05-22 2015-12-10 ルネサスエレクトロニクス株式会社 マイクロコントローラ及びそれを用いた電子制御装置
US9772899B2 (en) * 2015-05-04 2017-09-26 Texas Instruments Incorporated Error correction code management of write-once memory codes
KR20180059151A (ko) * 2016-11-25 2018-06-04 에스케이하이닉스 주식회사 에러 정정 회로 및 이를 포함하는 메모리 컨트롤러

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4637021A (en) * 1983-09-28 1987-01-13 Pioneer Electronic Corporation Multiple pass error correction
JPS63193723A (ja) * 1987-02-06 1988-08-11 Sony Corp リ−ドソロモン符号の復号方法
US4845714A (en) * 1987-06-08 1989-07-04 Exabyte Corporation Multiple pass error correction process and apparatus for product codes
KR950009386B1 (ko) * 1993-04-21 1995-08-21 삼성전자주식회사 어드레스 생성회로
BR9505853A (pt) * 1994-03-01 1996-02-21 Sony Corp Processo e aparelho de codificação e de decodificação de sinal digital e meio de registro de sinal digital
JP3305966B2 (ja) * 1995-12-25 2002-07-24 ソニー株式会社 データ復号装置及びその方法並びにデータ再生装置
WO1999048097A1 (en) * 1998-03-18 1999-09-23 Stmicroelectronics S.R.L. Reed-solomon decoding of data read from dvd or cd supports
US6701151B2 (en) * 2001-03-27 2004-03-02 Ericsson Inc. Short access for realizing a signaling radio bearer in geran

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101037578B1 (ko) * 2010-03-16 2011-05-27 주식회사 한빛구조엔지니어링 경간보강재를 이용한 띠장부재 및 이를 이용한 흙막이지지공법
KR20140093248A (ko) * 2011-11-18 2014-07-25 쌘디스크 엔터프라이즈 아이피 엘엘씨 복수의 패리티 세그먼트를 갖는 코드워드를 디코딩하기 위한 시스템, 방법 및 장치들

Also Published As

Publication number Publication date
WO2002069505A1 (en) 2002-09-06
JP3891568B2 (ja) 2007-03-14
EP1362426A1 (en) 2003-11-19
US20040088635A1 (en) 2004-05-06
EP1233523A1 (en) 2002-08-21
JP2004519174A (ja) 2004-06-24
TWI266487B (en) 2006-11-11
CN1316751C (zh) 2007-05-16
US7139961B2 (en) 2006-11-21
MY130133A (en) 2007-06-29
CN1491486A (zh) 2004-04-21

Similar Documents

Publication Publication Date Title
JP3465113B2 (ja) トリプル直交インターリーブ式エラー訂正システム
EP0748058A2 (en) Implied interleaving, a family of systematic interleavers and deinterleavers
US20020049947A1 (en) Product code based forward error correction system
KR20030070135A (ko) 에러 정정 코드를 디코딩하는 방법 및 장치
US6832042B1 (en) Encoding and decoding system in an optical disk storage device
US20040030985A1 (en) Cross interleave reed-solomon code correction
US4606026A (en) Error-correcting method and apparatus for the transmission of word-wise organized data
KR100499467B1 (ko) 블록 인터리빙 방법 및 그를 위한 장치
US6718505B1 (en) Method and apparatus for error correction in a process of decoding cross-interleaved Reed-Solomon code (CIRC)
JP3362146B2 (ja) 再生装置および記録再生装置
EP1111799B1 (en) Error correction with a cross-interleaved Reed-Solomon code, particularly for CD-ROM
KR0140382B1 (ko) Dat의 오류정정을 위한 어드레스 발생회로
JPH03242027A (ja) インターリーブを付加した並列誤り訂正方式
JP3992443B2 (ja) 符号化方法、復号方法、符号化回路、復号回路、記憶装置、記憶媒体、通信装置
US6694473B1 (en) Parallel signal decoding method
KR100200810B1 (ko) 오류 정정부호화 방법 및 장치
EP1388946A1 (en) Cross interleave reed-solomon code correction
JP2536861B2 (ja) 多段復号化方法
KR19990049147A (ko) 에러정정방법
JP2763413B2 (ja) 誤り訂正符号の符号器ならびに符号化方法およびその復号器ならびに復号方法
JP2008072190A (ja) データ伝送装置
JPS61237523A (ja) 誤り訂正方法
JPH09107294A (ja) エラー訂正方法
JPS59224933A (ja) 誤り訂正復号回路
JPS6029074A (ja) 誤り検出訂正符号化方法

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
NORF Unpaid initial registration fee