KR20040093748A - 오류정정의 추가층을 오류정정코드 내에 삽입하는 방법 및장치 - Google Patents
오류정정의 추가층을 오류정정코드 내에 삽입하는 방법 및장치 Download PDFInfo
- Publication number
- KR20040093748A KR20040093748A KR10-2004-7015810A KR20047015810A KR20040093748A KR 20040093748 A KR20040093748 A KR 20040093748A KR 20047015810 A KR20047015810 A KR 20047015810A KR 20040093748 A KR20040093748 A KR 20040093748A
- Authority
- KR
- South Korea
- Prior art keywords
- code
- error correction
- block
- row
- ldc
- 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
- H03M13/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer 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/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2945—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using at least three error correction codes
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
-
- 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/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2942—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes wherein a block of parity bits is computed only from combined information bits or only from parity bits, e.g. a second block of parity bits is computed from a first block of parity bits obtained by systematic encoding of a block of information bits, or a block of parity bits is obtained by an XOR combination of sub-blocks of information bits
-
- 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
- H03M13/1515—Reed-Solomon 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/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—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 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/2909—Product 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/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2954—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using Picket codes or other codes providing error burst detection capabilities, e.g. burst indicator codes and long distance codes [LDC]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Editing Of Facsimile Originals (AREA)
- Image Processing (AREA)
Abstract
본 발명은, 정보를 오류정정코드의 코드어들로 인코딩하고, 다수의 코드어를 코드블록의 열 내에 배치하는 경우, 오류정정의 추가층을 DVD의 제품코드 또는 DVR의 피켓코드 등의 오류정정코드 내에 삽입하는 방법에 관한 것이다. 오류정정능력을 향상시키는 호환성을 잃지 않고 용이하게 수행될 수 있는 오류정정의 추가층을 제공하기 위해서, 감소된 코드블록이 되는 소정의 추가규칙에 따라 행 심볼들을 함께 추가함으로써 상기 코드블록의 각 행의 길이를 감소시키는 단계와, 수평 오류정정코드를 사용하여 상기 감소된 코드블록의 단축된 행들을 인코딩하여 수평 패리티들을 얻는 단계와, 추가층으로서 상기 수평 패리티들을 상기 오류정정코드에 삽입하는 단계를 포함하는 방법을 제안한다.
Description
본 발명은, 정보를 오류정정코드의 코드어들로 인코딩하고, 다수의 코드어를 코드블록의 열 내에 배치하는 경우의 오류정정의 추가층을 오류정정코드 내에 삽입하는 방법에 관한 것이다. 또한, 본 발명은, 상기와 같은 오류정정코드를 디코딩하는 방법, 이에 대응한 장치, 이러한 코드의 코드어들을 기억하는 저장매체, 상기와 같은 코드어들을 포함한 신호 및 상기 방법을 실행하기 위한 컴퓨터 프로그램에 관한 것이다.
WO 00/07300에는 워드식 삽입으로 멀티워드 정보를 인코딩하는 방법이 기재되어 있다. 여기서, 소위 피켓(picket) 코드는, 2개의 형태의 코드어로 이루어진, LDC(Long Distance Code; 장거리 코드) 코드어 및 BIS(Burst Indicator Subcode; 버스트 표시기 서브코드) 코드어가 기재되어 있고, 이것은 광 기록매체 상에 데이터, 특히 비디오 데이터를 기억하기 위한 DVR(디지털 비디오 레코딩)에 사용될 것이다. 상기 BIS 코드어는, 오류정정능력이 크다. 최악의 경우의 상황하에서도, 그들은 정확히 디코딩될 수 없을 가능성이 매우 적다. BIS열의 디코딩 후 오류의 버스는 인지될 수 있다. 소거 스트래티지를 적용한 후도 상기 오류정정능력이 보다적은 상기 LDC코드어를 정확히 디코딩할 수 있다.
기존의 오류정정코드, 예를 들면, DVD에서의 제품코드와 비교하여, 상기 피켓코드 (다수의) 버스트 오류를 정정하는 능력을 향상시킨다. 그러나, 피켓 코드는, 보다 적게 랜덤한 오류를 정정할 수 있다. 따라서, 본 발명의 목적은, 오류정정능력을 개선하여, 특히 랜덤한 오류를 정정하는 구성을 제공하여, 현재의 오류정정코드방식과 호환성을 잃지 않고 쉽게 실행하는데 있다. 상기 구성은, 임의의 오류정정코드에, 특히 DVR에 사용된 피켓 코드와 DVD에 사용된 제품코드에 적용가능하다.
상기 목적은, 다음의 단계들:
- 감소된 코드블록이 되는 소정의 추가규칙에 따라 행 심볼들을 함께 추가함으로써 상기 코드블록의 각 행의 길이를 감소시키는 단계와,
- 수평 오류정정코드를 사용하여 상기 감소된 코드블록의 단축된 행들을 인코딩하여 수평 패리티들을 얻는 단계와,
- 추가층으로서 상기 수평 패리티들을 상기 오류정정코드에 삽입하는 단계를 포함한 청구항 1에 기재된 것과 같은 방법으로 달성된다.
본 발명은 일반적인 아이디어에 의거하여 상기 코드블록의 열 내에 배치된 코드어들로 이루어진 코드블록에 대한 수평 패리티들을 발생하는데 있다. 상기 코드블록의 필드 크기를 감소시키기 위해서, 예를 들면, 상기 코드블록의 각 행의 길이를 감소시키기 위해서, 상기 코드블록의 각 행 내의 행 심볼은, 소정의 추가규칙에 따라 추가된다. 그 후, 상기 발생된 수평 패리티들은, 오류정정을 위해 추가층으로서 상기 코드 내에 삽입될 수 있다. 이러한 추가층은, 소거, 버스트 오류 및 디코딩 실패를 정정하기 위한 디코딩시에 사용될 수 있다. 상기 코드블록의 행의 길이의 감소는, 보다 작은 필드에 대한 오류정정코드를 사용할 가능성을 나타냄으로써 중복성의 전체 양을 감소시킨다. 상기 얻어진 수평 패리티들은 별도로 보호되므로, 높은 수준의 오류정정능력은 디코딩 실패 및 정정오류를 정정하기 위한 본 발명에 따라 달성될 수 있다.
또한, 본 발명은, 상술한 것과 같은 인코딩방법에 따라 오류정정의 추가층을 삽입한 오류정정코드를 디코딩하는 방법에 관한 것으로, 상기 방법은:
- 상기 오류정정코드로부터 상기 수평 패리티들을 추출하는 단계와,
- 감소된 코드블록이 되는 청구항 1의 인코딩방법시에 사용된 상기 소정 추가규칙에 따른 방법과 동일한 행 심볼을 함께 추가함으로써 상기 코드블록의 각 행의 길이를 감소시키는 단계와,
- 상기 수평 패리티들을 사용하여 상기 감소된 코드블록의 단축된 행들을 디코딩하는 단계를 포함한다.
또 다른 본 발명은, 청구항 12 및 13에 기재된 것과 같은 상기에 대응한 장치와, 오류정정의 추가층을 삽입하는 오류정정코드의 코드어 형태로 데이터 기억하는 저장매체, 특히 CD, DVD 또는 DVR 디스크 등의 광 기록매체와, 청구항 15에 기재된 것과 같은 코드어 형태의 데이터를 포함한 신호와, 그리고 컴퓨터 상에서 동작시에 컴퓨터가 상기 청구항 1 또는 10의 방법의 단계들을 실행하도록 하는 프로그램 코드수단을 포함한 컴퓨터 프로그램에 관한 것이다. 본 발명의 바람직한 실시예들은 종속항에 기재되어 있다.
바람직하게, 본 발명은, 상기 코드 블록이 LDC 블록의 열들에 배치된, LDC 코드어, 특히 GF(28)에 대한 [248,216,33] 리드 솔로몬 코드어를 포함한 LDC 블록이고, BIS 코드어가 추가로 특히, GF(28)에 대한 [62,30,33] 리드 솔로몬 코드어를 사용하는, 특히 DVR에 사용된 것처럼 피켓 코드를 사용하는 방법에서 적용된다. 상기 얻어진 수평 패리티는 추가 오류정정코드로 인코딩되는 것이 바람직하다, 즉 피켓 코드를 사용하는 경우, 상기 수평 패리티들은 상기 BIS 코드어 내에 인코딩되어 기록되는 것이 바람직하다.
본 발명을 LDC 및 BIS 코드어로 이루어진 피켓 코드에 적용하는 경우, 상기 LDC 코드어는, 먼저 길이를 감소시킨 후 제 2 중간 블록을 나타내는 소정값의 소정수의 심볼을 추가함으로써 상기 얻어진 제 1 중간 블록을 수평방향으로 확대한다. 그리고, 상기 제 2 중간블록은, 상술한 것과 같은 그 길이를 감소시키기 위해 상기 소정의 추가규칙을 적용하는 코드블록으로서 사용될 것이다. 청구항 4 및 5에는, 상기 LDC 블록의 LDC 코드어들의 길이를 감소시키는 바람직하는 방법이 기재되어 있다. 단순함을 위해, 제 1 중간블록은, 필요한 계산 수를 약간씩 감소시키기 위해서 심볼값이 제로인 소정수의 심볼을 각 행에 추가함으로써 확대된다.
청구항 7에는 코드블록의 각 행의 길이를 감소시키기 위해 행 심볼을 함께 추가시키는데 사용된 상기 소정 추가규칙에 대한 바람직한 실시예가 기재되어 있다. 상기 기재된 추가규칙은, 서로 다른 수의 심볼만큼 상기 코드블록의 제 2 수평부분의 각 행에 대한 회전을 한 후 동일한 행 내에 있고 제 1 부분 또는 제 2 부분 내에 있는 동일한 열로부터 제 1 부분의 심볼과 제 2 부분의 심볼을 추가한다. 이것에 의해 최종적으로 얻어진 수평 패리티들의 오류정정능력을 향상시킨다.
또한, 본 발명은, 코드 블록이 제품코드, 특히 DVD 제품코드의 2개의 블록을 포함하는 제품코드에 바람직하게 적용될 수 있다. 바람직한 실시예에서는, GF(28)에 대한 [182,172,11]코드어 등의 DVD 제품코드어를 포함하는 2개의 DVD 코드블록을 조합하여 청구항 1에 기재된 것과 같은 삽입방법에서 사용된 코드블록을 형성한다. 이러한 응용에 있어서, 상기 얻어진 수평 패리티들은, 예를 들면 GF(28)에 대한 데이터를 포함한 [192,182,11]리드 솔로몬 코드어만을 포함한 추가 패리티 코드에 의해 인코딩되는 것이 바람직하고, 이렇게 얻어진 패리티들은 상기 DVD 제품코드어와 함께 저장된다.
이하, 본 발명을 다음의 도면들을 참조하여 더욱 상세히 설명한다:
도 1은 피켓 코드의 인코딩처리의 개략적인 설명도,
도 2는 본 발명에 따른 인코딩장치의 블록도,
도 3은 본 발명에 따른 인코딩방법의 흐름도,
도 4는 상기 인코딩방법의 인코딩 단계를 나타내고,
도 5는 본 발명에 따른 디코딩장치의 블록도,
도 6은 본 발명에 따른 디코딩방법의 흐름도,
도 7은 본 발명에 따른 인코딩장치의 다른 실시예의 블록도,
도 8은 본 발명을 제품코드에 적용하는 것을 나타낸다.
도 1은 WO 00/07300에 기재된 것처럼 인코딩방법의 개략적인 표현을 나타낸다. 먼저, 호스트 또는 애플리케이션이어도 되는 소스로부터 수신된 것과 같은 사용자 데이터는, 각각이 2048+4바이트로 이루어진 데이터 프레임으로 분할된다. 도 1의 블록 200에 도시된 것처럼, 이들 프레임 중 32개는 다음 인코딩단계에서 참조한다. 블록 202에서는, 데이터 블록을 형성하여 각각 216행의 304열로 배치한다. 블록 204에서는, 32행 패리티의 추가에 의해 장거리 코드(LDC) 블록을 형성한다. 블록 206에서는, 152열 및 496행에 따라 ECC 클러스터를 배치한다. 이것은, 종합 코드 포맷 NTT인 물리섹터 블록(218)에 ECC로 적힌 4개의 부분을 채우도록 구성된다.
레코딩 시스템에 의해 추가된 어드레스 및 제어 데이터도 연속적인 단계로 변환된다. 먼저, 논리 어드레스 및 제어 데이터는, 블록(208)에서 32 x 18바이트로 배치된다. 그 논리 어드레스는, 기능성의 용도에 관련된 것들이고, 사용자 프로그램의 렌더링의 지속기간까지 중계된 국면을 나타내기도 한다. 또한, 물리 어드레스는, 블록(210)에서 16 x 9 바이트로 배치된다. 상기 물리 어드레스는, 광 디스크 등의 기록매체에 관해 물리적 거리까지 중계하였다. 상기 반복된 리넘버링 및 인터리빙으로 인해, 물리 어드레스와 논리 어드레스간의 관계는 깨진다. 프로그램에 있어서 서로 밀접하게 수반하는 항목들은, 물리적 거리가 상당히 서로 이격되고, 이와는 반대이어도 된다. 또한, 매핑은 균일하게 진척되지 않고 있다. 블록(212)에서는, 24열 x 30행의 액세스 블록에서 어드레스들을 조합한다. 블록(214)에서는 추가된 패리티를 갖는 32행이 있다. 블록(216)에서는, 이들을 3열 및 496행으로 이루어진 버스트 표시기 서브코드(BIS) 클러스터 내에 배치한다. 이들은 그 3개의 BIS 열을 블록 218에 채운다. 또한, 동기 비트 그룹의 행이 추가되므로, 155열 x 496행의 물리 클러스터가 성립된다. 아울러, 이들은 도시된 것처럼 496 레코딩 프레임으로 그룹화된 16개의 물리섹터를 구성한다.
일반적으로, LDC 코드어 및 BIS 코드어로 이루어진 상술한 오류정정코드는, 피켓 코드라고 불리고 DVR 기술에서 사용된다. 상기 코드의 더욱 상세한 내용에 관해서는, 특히 상기 코드에 대한 인코딩 및 디코딩장치, 코드 포맷, 인터리빙 및 매핑방법, 및 프레임 포맷을 여기서 인용문헌으로 포함한 WO 00/07300을 참조한다. 도 2에는, 본 발명에 따른 인코딩 장치, 특히 오류정정의 제 3 층을 2개의 층인 LDC 및 BIS층을 포함하는 도 1에 도시된 피켓 코드에 삽입하는 장치의 블록도가 도시되어 있다. 도 3에는, 상기에 대응한 인코딩방법의 단계들을 나타낸 대응 흐름도가 도시되어 있다. 도 4는 코드에 관한 상기 단계들의 실행을 나타낸다. 오류정정의 추가층을 상기 피켓 코드 내에 삽입하는 것을 이들 도면을 사용하여 설명한다.
첫 번째 단계 S11에서는, 정보원(10)으로부터 출력되는, 예를 들면 전송채널, 애플리케이션 또는 저장매체로부터 출력되는 사용자 데이터를, 유한체(Galois field) GF(28)에 대한 [248,216,33] 리드 솔로몬(RS) 코드어인 304개의 LDC 코드어로 인코딩한다. 이러한 인코딩은, 사용자 데이터 서브블록 L1과 패리티 데이터 서브블록 L2로 이루어진 LDC 블록 L이 되는 LDC 인코더(11)로 수행된다. 상기 LDC 코드어 c는, 각각 216개의 사용자 데이터 심볼과 32개의 패리티 심볼을 포함하고 상기 LDC블록 L의 열들에 배치된다.
다음 단계 S12에서는, LDC 코드어 c마다 216개의 코드어 심볼, 예를 들면 사용자 데이터 서브블록 L1의 216개의 사용자 데이터 심볼을 유니트(12)에 의해 [217,216,2] 코드어로 인코딩한다. 이것을 이루기 위해서는, 상기 LDC코드어 c의 각각은, GF(28)에 대한 304개의 [217,216,2]RS 코드어를 남기는 31개의 위치에 펑처링된다. 이와는 달리, LDC 코드어 c마다, 216개의 코드어 심볼을 취하여 이들의 216개의 심볼에 대해 전체 패리티 심볼을 계산할 수 있다. 그래서, 304개의 [217,216,2]코드어 rj(여기서, 0≤j≤216)를 포함한 제 1 중간 코드블록 I1이 형성된다. 이러한 제 1 중간 코드블록 I1은, 217행 ri=(r0 i,...r303 i)(여기서, 0≤j≤216)을 갖는다. 이들 행은, 2x217-304=130개의 제로를 추가함으로써, 즉 제로들로 이루어진 블록 I2를 추가함으로써 연장되어, 0≤j≤216 및 0≤j≤433일 경우 코드 심볼rj i의 434열 217행으로 이루어진 제 2 중간 코드블록 I이 된다. 이러한 제 2 중간 코드블록 I는 각각 217행 및 217열을 포함하는 2개의 절반 U1 및 U2로 분할될 수 있다.
다음에, 이들 2개의 코드블록 U1,U2는, 제 1 코드 블록 U1의 각 행 심볼마다 소정의 추가 규칙에 따라 제 2 코드블록 U2의 행 심볼을 제 1 코드블록 U1의 코드심볼에 추가함으로써 감소된 코드블록 U1으로 변환된다. 특정 예로서는, 제2 중간 코드블록 I2의 각 행 ri는, 유니트(13)에서 다음과 같은 상기 감소된 코드블록 V1의 보다 짧은 길이를 갖는 코드벡터 vi로 변환된다(단계 13):
블록 13에서 0≤i, j≤216에 대해,
vi j=ri j+ri 217+(j+i mod 217).
새로운 코드벡터 vi는, GF(28)에 대한 [219,217,3] RS코드에 의해 제 3 층 ECC인코더(14)에 의해 수평방향으로 대칭적으로 인코딩되어 수평 패리티들 V2를 얻는다(단계 S14). 그래서, 219개의 심볼을 갖는 217개의 수평[219,217,3] RS코드어 h를 포함하는 코드블록 V가 얻어진다. 그래서, 그 217개의 벡터 vi의 인코딩은, 제 3 층 ECC 패리티 추출기(15)에 의해 추출된 217x2=434패리티 심볼을 생성한다(단계 S15). 이들 수평 패리티들은, [62,30,33] RS코드를 사용하는 BIS 인코더(16)에 의해 BIS 정보원으로부터 BIS 정보와 함께 BIS 코드어에 인코딩되어 기록된다(S16). 이것은, 434바이트를 사용하여 상기 수평 패리티들을 삽입하는 것에 대해 피켓 코드의 현재 포맷에서 상기 BIS코드어의 576바이트는 미정의되어 있기 때문에 가능하다. 현재 포맷의 나머지는, 동일한 것을 유지한다: 즉, 제 3 층은 이들 434개의 여분의 수평 패리티 바이트로만 이루어진다. 끝으로, 인터리버(interleaver)(17)에서는, WO 00/07300에 기재된 것 같은 LDC 코드어에서의 BIS 코드어를 인터리빙한 후 그 인터리빙된 데이터스트림을 변조기(19)에 출력하여 더욱 처리한다(S17). 본 발명에서 제안한 제 3 층이 종래의 오류정정 인코딩 및 디코딩방식과 호환가능하므로, DVR 재생장치는, 상기 제 3 층의 디코딩을 반드시 실행할 필요는 없다.
이때, 제 1 및 제 2 코드블록의 코드요소를 추가하기 위한 상술한 추가 규칙과, 제로값을 갖는 다수의 심볼을 추가함으로써 제 1 중간 코드블록의 확장은, 단지 예들일 뿐이다. 서로 다른 추가규칙도, 그 규칙이 최종적으로 얻어진 코드를 디코딩하는 디코더에 대해 미리 결정되고 공지되면 마찬가지로 사용될 수 있다. 이는 제 1 중간 코드블록의 확장에 대해서도 사용될 수 있다. 게다가, 값이 1인 심볼을 사용하는 확장 또는, 심볼로 이루어진 소정의 시퀀스를 사용하는 확장도 사용될 수 있다. 예를 들면, 게다가 제 1 중간 코드블록 I1의 각 행을 확장하기 위해 2x253-304=202개의 0의 사용은 217개의 [255,253,3] RS 코드어가 될 가능성이 있다.
이하, 상술한 것과 같은 오류정정의 제 3 층을 포함한 상기 확장된 피켓 코드의 디코딩을 도 5 및 도 6을 참조하여 더욱 상세히 설명하고, 이때 도면들은, 본 발명에 따른 디코딩장치의 블록도(도 5)와 본 발명에 따른 디코딩방법을 설명하는 흐름도(도 6)이다. 상기 피켓 코드는, BIS 코드어를 디코딩하고, 소거 스트래티지를 적용하고, LDC코드어를 디코딩함으로써 디코딩된다. 이하, 본 발명의 피켓 코드에 삽입된 제 3 층이 1개 또는 2개의 디코딩 실패 및 LDC 코드어의 1개의 정정오류를 어떻게 보호하는지를 설명하겠다.
먼저, BIS 코드어는, BIS 코드어와 LDC 코드어를 포함하는 복조기(20)로부터 수신된 데이터로부터 BIS-LDC 분할기(21)에 의해 추출되고, 그 BIS 코드어는 먼저 BIS 디코더(22)에 의해 디코딩된다(단계 S21). 여기서는, 오류 디코딩만을 적용한다. 상기 BIS 코드어가 오류정정능력이 매우 크게 보호되므로, 모든 BIS 코드어는 정확히 디코딩된다고 가정한다. 그래서, 도 4에 도시된 코드블록 V의 217개의 [219,217,3] RS 코드어의 각각의 2개의 패리티는 공지되어 있다. 또한, 이것은 이들이 인접한 BIS바이트에 영향을 주기 때문에 버스트 오류에 대한 지식을 제공하고, 이러한 인식은 버스트 오류가 의심되는 경우, 즉 유니트(23)에서 소거가 선언되는 경우 LDC바이트를 소거하게 된다(단계 S22). 이하, LDC 코드어는, LDC 디코더(24)에 의해 정정된다(단계 S23). 그러나, 해밍거리 33은, 각 소거에 관한 정정을 위한 1개의 여유 바이트가 오류값을 계산하는데 필요하고 나머지 오류마다 2개의 여유 바이트가 오류위치 플러스 오류값을 계산하는데 필요하므로 불충분할 수도 있다. 이때, 버스트 오류가 없으면 각 버스트 오류 바이트를 정정하는데 2바이트가 필요할 것이다. 이러한 내용에 의해 인식된 버스트 오류 바이트를 정정하는데 1바이트만 필요하다.
2개의 전와된 LDC코드어에 대해 디코딩이 실패했다, 3개의 디코딩 실패가 있다고 가정한다. a, b는 대응한 열 인덱스로 한다. 행 i라고 하면, vj i는 {j,217+(j+i mod 217)} ∩{a,b}=Ø인 경우 상술한 것처럼 게산될 수 있다. i가 주어지면, 세트 {j,217+(j+i mod 217)}가 인덱스의 세트 {0,...,433}로 분할되므로, 거의 2개의 좌표 vj i는 재구성될 수 있다. 이것은, 대응한 [219,217,3] RS 코드어에는 2개 이하의 소거를 남게 한다. 이들은, 제 3 층 ECC 패리티 추출기(25)에 의해 상기 디코딩된 BIS 코드어로부터 추출될 수 있는 별도의 패리티 검사정보를 사용하여 정정될 수 있다.
모두 0≤i, j≤216에 대한 지식 vj i을 사용하고 그것들의 정의를 상술한 것처럼 사용함으로써, 코드 심볼 rj i은 {j,217+(j+i mod 217)}≠{a,b}이면 재구성될 수 있다. 모든 세트 {j,217+(j+i mod 217)}는 서로 동일하지 않다. 그래서, 최대 1개의 행 ri에서 2개의 미지의 좌표가 그대로 있다. 그들의 대응 열은, [217,216,2]코드어이다. 상기 2개의 나머지 미지의 것은 직접 소거정정에 의해 재구성될 수 있다. 필요한 경우, 모든 LDC 코드어는, 완벽히 재구성될 수 있다. 이것에 의해 제 3 층 디코딩이 종료한다.
일반적으로, 제어기(27)는, 소거 및 디코더 실패의 위치에 따라, 정정된 바이트와 디코더 실패의 위치를 복귀시키는 제 3 층 ECC 디코더(28)를 제어한다. 제 3 층을 디코딩 가능하게 하기 위해서, 상기 감소된 코드블록 V1은 유니트(26)에서 인코딩할 때 사용되었던 상기 추가규칙에 따라 재구성된다. 유니트(29)는, 코드블록 U1 및 U2의 행들을 재구성하기 위해 반대의 "추가 트릭(adding trick)"을 적용하도록 설치되어 있다. 끝으로, LDC 디코더(30)는, 오류의 위치에 의거하여, 소거 디코딩만으로 제 1 중간 코드블록 I1의 펑처링된 LDC 코드어를 디코딩하도록 설치되어 있다. 그 결과의 데이터스트림은, 최종적으로 변조기(31)에 출력되어 더 처리된다.
디코딩에 대해 많은 경우는 구분된다. 먼저, 디코더 실패의 수를 사용하여양쪽의 경우를 구분한다(단계 S24). 하나의 디코딩 실패만 있는 경우(S27), [217,216,2] 코드 구조에 의해 주어진 패리티 검사는 사용될 필요가 없다. 실제로, [219,217,3] RS 코드에 있는 2개의 패리티 중 하나는, 전체 패리티 검사이다. 이것이 의미하는 것은, 코드 벡터 v를 산출하기 위한 상술한 수식과 함께, 식 ∑jrj i의 패리티들을 i마다 사용가능하다는 것을 말한다. 즉, 상기 행 ri의 전체 패리티는, 사용가능하다. 그래서, 1열이 디코딩 실패로 인해 소거되면, 이러한 전체 패리티를 사용하여 이러한 열을 즉시 재구성할 수 있다.
상기 [219,217,3]RS 코드어의 다른 패리티들은, 별도의 검사로서 사용될 필요가 있어 하나의 정정오류와 함께 하나의 디코딩 실패의 상황이 검출된다. a를 디코딩 실패에 대응한 열의 인덱스로 하고, b를 정정오류에 대응한 열의 인덱스로 한다. E를 b번째 열에서의 오류 위치의 세트로 한다. 벡터 vi(i∈E)는, 세트 {j,217+(j+i mod 217)}(0≤j≤216)들 중 아무것도 {a,b}와 같지 않다. 모든 세트{j,217+(j+i mod 217)}는 서로 동일하지 않다. 따라서, E에 있는 최대 하나의 인덱스 i에 대해, 벡터 vi는 하나의 오류와 함께 하나의 소거를 포함하지 않는다. 이하 설명되는 것처럼, 열 b는 |E|≥2인 적어도 2개의 오류를 포함한다. 그래서, 하나의 소거 및 하나의 디코딩 실패를 포함하는 적어도 한 개의 행 vi이다. 이것은, 상기 [219,217,3] RS 코드 구조를 사용하여 검출될 것이다.
LDC 코드어의 하나의 정정오류가 있고 디코딩 실패가 없으면(S25), 상기 재구성된 벡터 vi는 BIS 열에서의 패리티들을 사용하여 검출될 수 있는 최대 한 개의 오류를 포함한다. 벡터 vi에서의 오류 위치를 비교함으로써(적어도 2개의 오류가 있음), 다음과 같이 LDC 코드어가 정정오류가 난 것을 찾을 수 있다. 상기 행 ri으로 구성된 제 2 중간 코드블록 I2의 열 b가 정정오류가 난 LDC 코드어에 해당한다고 한다. 이러한 열은, [217,216,2]에 있는 코드어이므로 적어도 2개의 오류를 포함한다. E를 다음의 경우와 같은 b번째 열에서의 오류위치의 세트로 한다:
- 경우 b≤216: 이것은, i∈E에 대해 모든 벡터 vi b가 부정확하고 상기 [219,217,3]코드 구조를 사용하여 정정될 것이라는 것을 의미한다. 다른 코드 벡터 vj i는 정정되지 않을 것이다. 상기 정정된 코드벡터 모두는, 공동 하위 인덱스 j=b를 공유한다. 이것은, b를 나타내고, i∈E에 대해 ri b=vi b+ ri 217+(b+i mod 217)을 재구성할 수 있다.
- 경우 b>216: i∈E에 대해, 모든 코드벡터 vi b-i mod 217=ri b-i mod 217+ri 217+b는 부정확하다. 이들 vi b-i mod 217에 대해, 상위 인덱스 플러스 하위 인덱스는, b mod 217과 같다. 달리 말하면, 그들은 대각선 상에 있다. 그래서, 그들의 정정 b는, 대각선이 오류를 포함하는지를 검사함으로써 밝혀진다. 따라서, 이전처럼, 모든 코드 심볼ri j를 재구성할 수 있다.
상기 두가지 경우를 구분하기 위해서는 라인 상에 또는 대각선 상에 오류가 있는지의 여부를 구분 가능할 필요가 있다. 이는, 적어도 2개의 오류가 있기 때문에 가능하다.
완벽함을 위해, 3개의 디코딩 실패에 대한 검출은 즉시 가능하다(S26). 또한, 2개의 정정오류(S28)는, vj i에서의 오류가 한 개의 라인 상에 또는 한 개의 대각선 상에 있을 수 없기 때문에 검출될 수 있다.
디코딩 스트래티지는, LDC 코드어의 정정오류가 일어나지 않는다고 가정함으로써 단순화될 수 있다. 또한, 한 개의 디코딩 실패 정정이 2개의 디코딩 실패 정정보다 훨씬 단순하므로, 그것은 본 발명에 따른 제 3 층의 최대한의 오류정정능력을 이용하지 않고 하나의 디코딩 실패 정정을 실행하는데만 선택될 수 있다. 216개의 소거된 LDC 바이트를 2회 정정하려면, 적어도 432개의 중복 패리티 검사 바이트가 필요하다. 본 발명에 따른 방법은, 434개의 중복 바이트를 사용하고, 그래서 거의 최적이다.
그래서, 본 발명에서는, DVD에 사용된대로 제품 코드 구조를 도입하도록 되어 있다. 인코딩시에 얻어진 별도의 수평 패리티들은, BIS 열 내에 저장되어 있다. 그들은, 그 BIS 열이 아주 잘 보호되어 있으므로 BIS 디코딩 후 오류없이 디코딩할 때 얻어질 수 있다. 그러나, 문제는, 제품 구조가 어떠한 종류가 허용되고 보호가 어떠한 종류가 필요한지이다.
오류체제에서만 버스트 인식 후 아주 많은 오류를 갖는 하나의 LDC 코드어가 있다. 1회의 소거의 수 플러스 2회의 오류의 수는, 32바이트의 중복성을 초과한다. 그것은 2개의 상기와 같은 LDC 코드어를 정정하도록 별도의 제품구조를 추가하고자 한다(하나만 BIS 열내에 사용가능한 576바이트를 갖고 상기 DVD 제품코드보다 나쁘게 판명되지는 않기 때문에 더욱 가능하지 않다). LDC 코드어가 버스트 인식후 아주 많은 오류를 가지면, 정정오류의 가능성은 매우 적고, 이 대신에 LDC 코드어를 정정할 수 없는 것을 검출할 것이다. 하나는 상기와 같이 검출된 LDC 코드어에서의 216개의 데이터 바이트를 정정할 필요만 있다. 304개의 LDC코드어가 있다. 이들은, 행렬에서 열로서 취급될 것이다. 매 행이 거리 3을 갖도록 2열을 더 추가하는 경우, 상기 문제는 2개의 디코딩 불가능한 LDC 코드어들이 검출될 수 있기 때문에 해결되고, 그들을 소거하고 그 2개의 패리티 열을 사용하여 그들을 정정할 수 있다.
그러나, 그것은 이렇게 쉽지 않다. 행 코드어의 길이가 306, 크기(=숫자 데이터 바이트= LDC 데이터 열의 수)가 304, 거리가 3이어야 한다. 그리고, 또한, 8비트 심볼인 바이트를 사용하여야 한다. 이와 같은 RS 코드는 존재하지 않는다. 최대 길이는, 적어도 3의 최소거리를 갖는 바이트의 비확장 RS 코드에 대해 28-1이다. 상기 2개의 LDC 코드어를 정정하기 위한 제품코드에서 필요한 여분의 바이트의 최소수는, 적어도 216*2=432바이트(216행이 있고, 1바이트를 정정하려면 1바이트 소거가 필요하다)이다.
이하, 서로 다른 경우를 사용하여 본 발명에 따른 디코딩을 행하는 이유를 또 설명하겠다. 이 경우들은:
A) 217바이트의 2개의 LDC 열은, 제 1 행렬(U1)에서 소거되고,
B) 위의 경우와 동일하지만 제 2 행렬(U2)에서 소거되고,
C) 217바이트의 1개의 LDC열은 제 1 행렬에서는 소거되고 217바이트의 1개의 LDC열은 제 2 행렬에서 소거되며,
D) 217바이트의 1개의 LDC열은 제 1 행렬에서 오류 상태에 있고(만일, LDC 코드어가 정정오류이고, 217바이트의 소거된 LDC열로 되는 아주 많은 오류의 존재를 217바이트의 1개의 LDC열이 검출할 수 없었을 경우);
E) 217바이트의 1개의 LDC열은, 제 2 행렬에서 오류 상태에 있다.
A)에 따르면 : U1의 2개의 소거열에 의해 V의 2개의 열이 소거된다. V의 모든 다른 바이트는, 상기 정정된 LDC코드어로부터 데이터 바이트로 계산될 수 있다. LDC코드어에 정정오류가 없는 경우(경우 A), V의 모든 다른 바이트의 값은 정확하다. BIS영역에 저장된 2개의 패리티 열도, (이전에 설명된 것처럼) 오류가 없다. 그래서, 패리티를 갖는 행에 대해 RS코드어의 거리가 3이기 때문에 V의 각 행에서의 2개의 소거를 정정할 수 있다. (추가 연산을 적용하기 전에 각 행의 심볼을 수평방향으로 특정 수의 위치만큼 시프트함으로써 U2로부터 얻어지는) 행렬 U2'가 공지되어 있으므로, 그 행렬 U2'은 상기 정정된 V로부터 각 행의 심볼을 감산하여 U1을 얻을 수 있다. 그래서, 모든 LDC 데이터 바이트는 정정된다. 정정오류가 있는 LDC 코드어가 있으면 LDC 코드어는 문제가 있는 상태이다, 즉 LDC 코드어가 V의 모든 행을 정정할 수 없거나 또는 LDC 코드어가 정정오류를 행하는 것 중 어느 한쪽을 LDC 코드어는 검출할 수 있다.
B)에 따르면 : U2의 2개 소거열에 의해 U2' 및 그에 따라 V에서 2개의 대각선이 소거된다. 경우 A에서처럼, V에서 행 당 2개의 소거를 갖는다. V를 정정하고, 공지된 U1을 감산하여 U2'를 얻는다. 행렬 U2'의 행을 시프트하여 U2를 얻는다. 이에 따라서, 모든 LDC 데이터 바이트는 정정된다.
C)에 따르면 : U1의 1개의 소거열에 의해 V의 1개의 열이 소거된다. U2의 1개의 소거열에 의해 U2' 및 그에 따라 V에서의 1개의 대각선이 소거된다. 그래서, V에의 1개의 소거열과 1개의 소거 대각선을 갖는다. 다음의 사항에 특별히 주의할 필요가 있다: 상기 소거열 및 상기 소거 대각선은, 정확히 하나의 위치에서 중복된다. 이것은, V의 모든 행이 1개의 소거를 갖는 1행을 제외하고는 2개의 소거를 갖는다는 것을 의미한다. 경우 A 및 B에서처럼, V를 정정할 수 있다. 그러나, U1 및 U2'를 어떻게 다시 찾는가 ? 만약 위치가 U1에서 소거되고 U2'에서 소거되지 않으면, 이 U2'에서의 이러한 위치의 값을 V에서의 이러한 위치의 값에서 감산하여 U1에서의 상기 소거된 위치의 값을 얻을 수 있다. 마찬가지로, U1에서 소거되지 않은 U2'에서의 상기 소거된 위치를 재구성할 수 있다. 다음의 하나의 문제를 갖는다: 즉, 양 행렬에서 소거된 U1 및 U2'에서 정확히 하나의 위치이다. 이러한 위치는, 행렬 U1 및 U2'에서 소거되어 있다. 그래서, U1에서의 단일 소거 및 U2에서의 단일 소거를 제외하고는 (그 행렬의 행을 시프트한 후) 행렬 U1 및 행렬 U2를 재구성할 수 있다. LDC코드어의 첫 번째 217바이트로부터 나오는 행렬 U1에서의 217행을 가지므로, U1의 각 열은, 최소 거리가 2인 RS 코드어이다. 이것은, 단일 소거를 정정하는데 충분하다. 마찬가지로, U2에서 단일 소거를 정정할 수 있다.
D) 및 E)에 따르면 : LDC코드어에 정정오류가 있는 경우 적어도 33(=최소거리)바이트의 오류가 있다. 217바이트만 유지하고 31바이트는 버리고 확실히 아는 경우, 적어도 2개의 오류인채로 있다. 상기의 경우 D 및 E에서, 하나의 정정오류가 있는 LDC 코드어를 갖는다. 이것에 의해 U1의 열에서의 적어도 2개의 오류가 생기거나 U2의 열에서의 적어도 2개의 오류가 생기게 된다. 이 양 경우에 있어서, 이것에 의해, V의 분리된 행에서 적어도 2개의 오류가 생기게 된다. 이들은, BIS영역에 저장된 패리티들과 함께 패리티들을 갖는 행 당 거리 3이기 때문에 정정될 수 있다. 이것은, 행 당 1개의 오류를 정정할 수 있다는 것을 의미한다. 일단 V가 정정되면, U1 또는 U2에서의 어느 열이 정정오류가 있었는지가 문제로 남는다.
D)에 따르면 : U1의 열에는 오류가 있고 그에 따라 V의 열에는 오류들이 나타난다. 적어도 2개의 오류가 있다: 즉, 일정 열에 그 오류가 배향되어 있는지를 인식할 수 있다. 이러한 경우, 상기 정정된 V로부터 감산한 U2'를 알아 U1을 얻는다. 모든 오류는 다시 정정된다: 즉, U1 및 U2는 모두 재구성된다.
E)에 따르면 : U2의 열에는 오류들이 있고 그에 따라 U2'의 대각선과 V의 대각선에는 오류들이 나타난다. 적어도 2개의 오류가 있다: 즉, 일정 대각선에 그 오류가 배향되어 있는지를 인식할 수 있다. 이러한 경우, 상기 정정된 V로부터 감산한 U1을 알아 U2를 얻는다. 모든 오류는 다시 정정된다.
임의의 피켓 코드가 사용될 수 있는 더욱 일반적인 상황에 있어서, GF(q)에 대한 m[n,k,d] RS 코드어, 즉 LDC 코드어를 갖는다. m개의 코드어마다, k개의 코드어 위치는, GF(q)에 대한 [k+p,k,p+1] RS 코드어 내에 인코딩된다. 이들은, 행렬{Ri,j}0≤i≤k+p-1,0≤j≤m-1의 열을 구성할 것이다. 0≤i≤k+p-1마다, 수치{0,...,m-1}의 세트는, 0≤w≤si, 비공백 세트 Si,w로 분할된다. 0≤i≤k+p-1 및 0≤w≤si-1에 대해, Vi,w=∑j∈Si,wRi,w를 계산한다. i마다 {Vi,w}0≤w≤si-1는 pi패리티 심볼을 계산함으로써 거리 D인 코드어로 대칭적으로 인코딩된다. ∑0≤i≤k+p-1pi패리티 심볼은 BIS열에 저장되어 있다.
세트 Si,w는 다음의 제약을 만족한다고 한다. 모든 0≤j≤m-1 및 j를 포함하지 않고 D-1 요소를 갖지 않는 모든 세트 F에 대해,
#{j∈Si,w이도록 w에 대해 i:Si,w∩F≠Ø}≤pi.
그후, LDC의 D-1개의 디코딩 실패까지 정정될 수 있다. 또한, 디코딩 실패와 정정오류의 조합으로 정정하여도 된다. 상술한 것과 같은 방법은, 다음을 이용한다: 이전의 문단의 수식에 의해 Vi,w를 계산한다. 가능하다면, 미지의 Vi,w는, pi패리티를 사용하는 소거 정정으로 회복되고, Vi,w에 대한 수식을 사용하여 행렬 R의 모든 엔트리는 디코딩 실패에 대응한 열에서의 최대 p개의 엔트리를 제외하고는 재구성되고, 끝으로 이들 열에서의 중복 정보는 행렬 R 및 필요한 경우 모든 LDC 코드어를 완전히 재구성하는데 사용된다.
또한, 본 발명은 제품코드에 적용될 수 있다. DVD에서는, 제품코드를 사용하여 수평방향과 수직방향으로 행렬 D를 확장한다. 패리티들에 관한 패리티들은, 큰 제품 거리를 보장한다. 실제로, 기록방향으로 배향된 행은 디코딩된다. 아주 많은랜덤한 오류 또는 버스트 오류에 영향을 받으면 디코딩 실패가 나타난다. 수직 중복성은, 정정오류와 디코딩 실패로부터 회복되어야 한다.
상술한 피켓코드의 확장에서, 행렬 R은 행렬 D의 역할을 한다. 또한, 여기서는 일종의 제품코드가 형성된다. 그러나, 패리티들에 관한 패리티들은, BIS 코드어에 의해 강한 보호로 인해 수평 패리티들을 전와시키지 않는다고 가정하므로 필요하지 않다. 열은 실패 또는 정정오류를 디코딩함으로써 영향을 받기도 한다. 상술한 "추가 트릭"은, RS 코드의 길이가 필드 크기로 제한되기 때문에 도입된다. 이러한 "추가 트릭"을 사용하여 도 7 및 도 8을 참조하여 일반적으로 제품코드에 대한 대안을 제공하는 방법을 설명하겠다.
첫 번째 간단한 확장은, 제 3 층의 여분의 수평 패리티들을 나타낸 열을 코드어로 인코딩하는데 있음으로써 오류없이 이들 열들을 회복할 수 없을 가능성이 상당한 경우 최소거리를 보장한다. 일례로서, 상기 "추가 트릭"은 행과 열의 역할을 상호교환한 후 DVD 블록 D1,D2에 적용되고, 각 DVD 블록 D1,D2는 도 8에 도시된 것처럼 172 x 192 행렬이다. 유니트(42)에 의해 2개의 블록 D1,D2를 조합전 또는 조합 후, 그 블록의 모든 열은, DVD 인코더(41)에서 182 x(2x192)행렬인 조합된 DVD 블록 D3로 되는 GF(28)에 대한 2x192[182,172,11]RS 코드어로 인코딩된다. 따라서, 인코딩되는 데이터는, 정보원(40)으로부터 얻어진다. 이러한 조합된 DVD 블록 D3는 상술한 것처럼 분할된다. 즉, 유니트(43)에서 0≤i≤181 및 0≤j≤191일 경우, 다음과 같이 계산된다:
Vi j=ri j+ri 192+(j+i mod 192).
그래서, 상기 얻어진 행렬 V1은 행렬 V를 제공하는 GF(28)에 대한 182[208,192,17]RS 코드어가 되는 제 3 층 ECC 인코더(44)에 의해 수평방향으로 인코딩된다. 패리티 V2는 182바이트로 이루어진 16열을 구성한다. 이들은, 패리티 추출기(45)에 의해 추출된 후 패리티들에 관한 패리티들의 블록 V3를 제공하는 패리티 인코더(46)에 의해 GF(28)에 대한 16[192,182,11] RS 코드어로 인코딩된다. 그래서, 이들 16개의 코드어와 함께 상기 확장된 행렬 D3는, 출력부(47)에 의해 더욱 처리, 예를 들면 그것을 디스크에 기록하기 위한 변조기(48)에 출력된다. 2개의 DVD 블록이 종래의 방법에 따라 인터리빙되면, 9664(=2x(192x10+182x16))패리티 심볼이 필요할 것이다. 본 발명에 따른 "추가 트릭"을 사용함으로써, 6912(=2x912x10+192x16) 패리티 심볼이 필요하다. 디코딩시에, 모든 열은, 먼저 디코딩되는 것에 의해 디코딩 실패와 정정오류가 생기기도 한다. 상술한 것처럼, 그것은, 소거한 상태로 놓아두고 가능한 한 많이 행렬 V를 재구성함으로써 연속된다. 수평 코드 구조를 사용하여 행렬 V에서 소거 및 오류를 정정한다. 그후에, 행렬 D3는, 정정오류가 생긴 열을 인식하면서 가능한 한 많이 재구성되어야 한다. 수직 패리티들은, 행렬 D3를 완전히 재구성하는 방법을 나타낼 것이다.
2개의 인터리빙된 DVD 블록의 성능과 상기 제안된 방법의 성능은, 비교될 필요가 있다. 두 방법은 수직방향으로 동등하게 우세하다. 상기 제안된 방법에 따라수평방향으로 행 당 16 패리티보다 더 많이 필요로 하기도 한다. 그러나, (16패리티에서 30 패리티까지 증가하는) 14개의 여분의 패리티를 가져도 중복양에 있어서 절약할 수 있다. 상기 제안된 방법은, 오류정정능력을 향상시키기 위한 매우 유용한 방법이다.
Claims (16)
- 정보를 오류정정코드의 코드어들로 인코딩하고, 다수의 코드어를 코드블록의 열 내에 배치하는 경우의 오류정정의 추가층을 오류정정코드 내에 삽입하고,- 감소된 코드블록이 되는 소정의 추가규칙에 따라 행 심볼들을 함께 추가함으로써 상기 코드블록의 각 행의 길이를 감소시키는 단계와,- 수평 오류정정코드를 사용하여 상기 감소된 코드블록의 단축된 행들을 인코딩하여 수평 패리티들을 얻는 단계와,- 추가층으로서 상기 수평 패리티들을 상기 오류정정코드에 삽입하는 단계를 포함하는 것을 특징으로 하는 삽입방법.
- 제 1 항에 있어서,상기 코드블록은, LDC 코드어, 특히 상기 LDC 블록의 열 내에 배치된 GF(28)에 대한 리드 솔로몬 코드어를 포함한 장거리 코드(LDC) 블록인 것을 특징으로 하는 삽입방법.
- 제 2 항에 있어서,- 제 1 중간블록이 되는 상기 LDC 블록의 각 LDC 코드어의 길이를 R을 감소시키는 단계와,- 상기 제 1 중간블록의 각 행을, 연속적인 단계에서 코드블록으로서 사용된 제 2 중간블록이 되는 소정 값을 갖는 소정 수의 심볼만큼 확장시키는 단계를 더 포함한 것을 특징으로 하는 삽입방법.
- 제 3 항에 있어서,각 LDC 코드어의 길이는, 각 LDC 코드어의 소정 위치에서 소정 수의 심볼을 펑처링하여 감소되는 것을 특징으로 하는 삽입방법.
- 제 3 항에 있어서,각 LDC 코드어의 길이는, LDC 코드어의 소정 수의 심볼을 선택하고, 상기 LDC 코드어의 소정 수의 패리티 심볼을 결정함으로써 감소되는 것을 특징으로 하는 삽입방법.
- 제 3 항에 있어서,상기 제 1 중간블록의 행은, 심볼값이 제로인 소정 수의 심볼을 각 행에 추가함으로써 확장되는 것을 특징으로 하는 삽입방법.
- 제 1 항에 있어서,상기 코드블록의 각 행의 길이는, 각 행의 (m+(j+i mod k))번째 심볼을 동일한 행의 j번째 심볼에 추가함으로써 감소되고, 여기서 i는 행수, j는 열수 및 m은 2로 나눈 열의 최대수인 것을 특징으로 하는 삽입방법.
- 제 1 항에 있어서,상기 코드블록은, 상기 코드블록의 열들 내에 배치되고, 제품코드, 특히 제품코드어, 특히 GF(28)에 대한 코드어 등의 동일한 DVD 제품코드의 제품코드어를 포함한 DVD제품코드의 2개의 블록을 포함한 것을 특징으로 하는 삽입방법.
- 제 1 항에 있어서,상기 수평 패리티들은, 추가의 오류정정코드에 의해, 특히 GF(28)에 대한 리드 솔로몬 코드어를 포함한 버스트 표시기 서브코드(BIS)에 의해 또는, GF(28)에 대한 리드 솔로몬 코드어를 포함한 추가의 패리티 코드에 의해 인코딩되는 것을 특징으로 하는 삽입방법.
- 청구항 1의 방법에 따라 오류정정의 추가층을 삽입한 오류정정코드를 디코딩하되, 상기 수평 패리티들은 상기 오류정정코드 내에 추가층으로서 삽입되고, 상기 코드의 다수의 코드어가 코드블록의 열내에 배치되고,- 상기 오류정정코드로부터 상기 수평 패리티들을 추출하는 단계와,- 감소된 코드블록이 되는 청구항 1의 인코딩방법시에 사용된 상기 소정 추가규칙에 따른 방법과 동일한 행 심볼을 함께 추가함으로써 상기 코드블록의 각 행의 길이를 감소시키는 단계와,- 상기 수평 패리티들을 사용하여 상기 감소된 코드블록의 단축된 행들을 디코딩하는 단계를 포함한 것을 특징으로 하는 디코딩방법.
- 제 10 항에 있어서,수신된 데이터스트림을 디코딩하여 상기 코드블록을 얻는 단계와, 상기 소정의 추가 규칙의 반대의 소정의 감산규칙에 따라 상기 감소된 코드블록의 행 심볼들로부터 상기 얻어진 코드블록의 행 심볼들을 감산함으로서 상기 얻어진 코드블록내에 있는 오류 및 소거를 정정하는 단계를 더 포함한 것을 특징으로 하는 디코딩방법.
- 정보를 오류정정코드의 코드어들로 인코딩하고, 다수의 코드어를 코드블록의 열 내에 배치하는 경우의 오류정정의 추가층을 오류정정코드 내에 삽입하고,- 감소된 코드블록이 되는 소정의 추가규칙에 따라 행 심볼들을 함께 추가함으로써 상기 코드블록의 각 행의 길이를 감소시키는 수단과,- 수평 오류정정코드를 사용하여 상기 감소된 코드블록의 단축된 행들을 인코딩하여 수평 패리티들을 얻는 수단과,- 추가층으로서 상기 수평 패리티들을 상기 오류정정코드에 삽입하는 수단을 구비한 것을 특징으로 하는 삽입장치.
- 청구항 1의 방법에 따라 오류정정의 추가층을 삽입한 오류정정코드를 디코딩하되, 상기 수평 패리티들은 상기 오류정정코드 내에 추가층으로서 삽입되고, 상기 코드의 다수의 코드어가 코드블록의 열내에 배치되고,- 상기 오류정정코드로부터 상기 수평 패리티들을 추출하는 수단과,- 감소된 코드블록이 되는 청구항 1의 인코딩방법시에 사용된 상기 소정 추가규칙에 따른 방법과 동일한 행 심볼을 함께 추가함으로써 상기 코드블록의 각 행의 길이를 감소시키는 수단과,- 상기 수평 패리티들을 사용하여 상기 감소된 코드블록의 단축된 행들을 디코딩하는 수단을 구비한 것을 특징으로 하는 디코딩장치.
- 오류정정코드에 추가층으로서 수평 패리티를 삽입하고, 코드블록의 열 내에 상기 코드의 다수의 코드어를 배치하는 경우, 청구항 1의 방법에 따라 오류정정의 추가층을 삽입한 상기 오류정정코드의 코드어 형태로 데이터를 저장한 것을 특징으로 하는 저장매체.
- 오류정정코드에 추가층으로서 수평 패리티를 삽입하고, 코드블록의 열 내에 상기 코드의 다수의 코드어를 배치하는 경우, 청구항 1의 방법에 따라 오류정정의 추가층을 삽입한 오류정정코드의 코드어 형태로 데이터를 포함한 것을 특징으로 하는 신호.
- 컴퓨터 상에서 동작하는 경우, 청구항 1 또는 10의 방법의 단계들을 컴퓨터가 실행하도록 하는 프로그램 코드수단을 포함한 것을 특징으로 하는 컴퓨터 프로그램.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP02076356 | 2002-04-05 | ||
EP02076356.1 | 2002-04-05 | ||
PCT/IB2003/001003 WO2003085839A1 (en) | 2002-04-05 | 2003-03-14 | Method and apparatus for embedding an additional layer of error correction into an error correcting code |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20040093748A true KR20040093748A (ko) | 2004-11-08 |
Family
ID=28685927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2004-7015810A KR20040093748A (ko) | 2002-04-05 | 2003-03-14 | 오류정정의 추가층을 오류정정코드 내에 삽입하는 방법 및장치 |
Country Status (10)
Country | Link |
---|---|
US (1) | US7188295B2 (ko) |
EP (1) | EP1500200B1 (ko) |
JP (1) | JP4141963B2 (ko) |
KR (1) | KR20040093748A (ko) |
CN (1) | CN100539444C (ko) |
AT (1) | ATE408931T1 (ko) |
AU (1) | AU2003209596A1 (ko) |
DE (1) | DE60323622D1 (ko) |
TW (1) | TW200401971A (ko) |
WO (1) | WO2003085839A1 (ko) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7382707B2 (en) | 2003-12-03 | 2008-06-03 | Mediatek Inc. | Recording method and apparatus for optical disk drive |
TWI245272B (en) | 2003-12-03 | 2005-12-11 | Mediatek Inc | Recording method and apparatus for optical disk drive |
US8254218B2 (en) | 2003-12-03 | 2012-08-28 | Mediatek Inc. | Recording method and apparatus for optical disk drive |
US7281193B2 (en) | 2004-09-27 | 2007-10-09 | Mediatek Inc. | Method and apparatus for decoding multiword information |
US7284183B2 (en) | 2004-11-04 | 2007-10-16 | Mediatek Inc. | Method and apparatus for decoding multiword information |
JP2006190346A (ja) * | 2004-12-28 | 2006-07-20 | Toshiba Corp | エラー訂正処理装置及びエラー訂正処理方法 |
JP2006209928A (ja) * | 2005-01-31 | 2006-08-10 | Sony Corp | 光ディスク製造方法及び装置、光ディスク、並びに、光ディスク再生方法及び装置 |
CN1779833B (zh) * | 2005-09-27 | 2011-05-18 | 威盛电子股份有限公司 | 计算错误检测码的方法 |
CN100533578C (zh) * | 2005-12-30 | 2009-08-26 | 上海乐金广电电子有限公司 | 高密度光盘纠错码解码装置和方法 |
KR100772393B1 (ko) | 2006-02-08 | 2007-11-01 | 삼성전자주식회사 | 에러 정정 블록, 에러 정정 블록의 생성 방법 및 장치,에러 정정 방법 |
KR101300810B1 (ko) * | 2006-04-03 | 2013-08-26 | 삼성전자주식회사 | 데이터 인코딩 및 디코딩 방법과 그 장치, 저장 매체, 및저장 매체 구동 시스템 |
US8255763B1 (en) * | 2006-11-08 | 2012-08-28 | Marvell International Ltd. | Error correction system using an iterative product code |
US8145975B2 (en) * | 2008-02-28 | 2012-03-27 | Ip Video Communications Corporation | Universal packet loss recovery system for delivery of real-time streaming multimedia content over packet-switched networks |
CN101477823B (zh) * | 2009-01-21 | 2010-12-29 | 凌阳科技股份有限公司 | 一种解码系统与方法 |
DE102010006876B4 (de) * | 2010-02-04 | 2012-10-31 | Infineon Technologies Ag | Verfahren und Vorrichtung zur Kodierung von Daten |
KR20120059806A (ko) * | 2010-12-01 | 2012-06-11 | 한국전자통신연구원 | 에러 정정 부호의 생성방법, 복호 방법 및 그 장치 |
EP2672387B1 (en) * | 2012-06-04 | 2018-08-01 | Amplidata NV | A distributed object storage system |
US8996969B2 (en) * | 2012-12-08 | 2015-03-31 | Lsi Corporation | Low density parity check decoder with miscorrection handling |
KR102254102B1 (ko) | 2015-01-23 | 2021-05-20 | 삼성전자주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
CN109787713B (zh) * | 2017-11-15 | 2020-10-09 | 华为技术有限公司 | 一种循环冗余校验crc计算方法和装置 |
US10649841B2 (en) * | 2018-03-05 | 2020-05-12 | Alibaba Group Holding Limited | Supporting multiple page lengths with unique error correction coding via galois field dimension folding |
CN109191151A (zh) * | 2018-08-23 | 2019-01-11 | 东莞市将为防伪科技有限公司 | 一种防伪方法 |
CN109472336B (zh) * | 2018-10-16 | 2023-05-02 | 易宝严选科技(深圳)有限公司 | 一种防伪方法 |
US11031956B2 (en) * | 2019-06-25 | 2021-06-08 | Samsung Electronics Co., Ltd. | Generalized concatenated error correction coding scheme with locality |
CN110492889B (zh) * | 2019-08-16 | 2023-05-30 | 西安紫光国芯半导体有限公司 | 检测纠正两位错误的编码解码方法、编码解码器及处理器 |
CN110489269B (zh) * | 2019-08-16 | 2023-08-15 | 西安紫光国芯半导体有限公司 | 检测纠正三位错误的编码解码方法、编码解码器及处理器 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5247523A (en) * | 1989-07-12 | 1993-09-21 | Hitachi, Ltd. | Code error correction apparatus |
US5784387A (en) * | 1994-10-31 | 1998-07-21 | International Business Machines Corporation | Method for detecting start-of-frame, end of frame and idle words in a data stream |
JPH08204583A (ja) * | 1995-01-20 | 1996-08-09 | Sanyo Electric Co Ltd | ディジタル信号の処理方法および処理装置 |
KR100914640B1 (ko) * | 1998-04-29 | 2009-08-28 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 다중워드 정보를 인코딩 및 디코딩하는 방법, 장치 및기록매체 |
JPH11328879A (ja) * | 1998-05-19 | 1999-11-30 | Sony Corp | 誤り訂正装置および光ディスク再生装置 |
KR100900059B1 (ko) | 1998-07-27 | 2009-06-01 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 인코딩 장치 및 디코딩 장치, 인코딩 및 디코딩 방법 |
US6581178B1 (en) * | 1999-02-15 | 2003-06-17 | Nec Corporation | Error correction coding/decoding method and apparatus |
US6625774B1 (en) | 1999-10-29 | 2003-09-23 | Stmicroelectronics, Inc. | Redundancy system and method for locating errors in interleaved code words |
US7356752B2 (en) * | 2000-03-14 | 2008-04-08 | Comtech Telecommunications Corp. | Enhanced turbo product codes |
US7093179B2 (en) * | 2001-03-22 | 2006-08-15 | University Of Florida | Method and coding means for error-correction utilizing concatenated parity and turbo codes |
-
2003
- 2003-03-14 EP EP03745852A patent/EP1500200B1/en not_active Expired - Lifetime
- 2003-03-14 DE DE60323622T patent/DE60323622D1/de not_active Expired - Fee Related
- 2003-03-14 AU AU2003209596A patent/AU2003209596A1/en not_active Abandoned
- 2003-03-14 JP JP2003582910A patent/JP4141963B2/ja not_active Expired - Fee Related
- 2003-03-14 AT AT03745852T patent/ATE408931T1/de not_active IP Right Cessation
- 2003-03-14 WO PCT/IB2003/001003 patent/WO2003085839A1/en active IP Right Grant
- 2003-03-14 CN CNB038076756A patent/CN100539444C/zh not_active Expired - Fee Related
- 2003-03-14 US US10/509,478 patent/US7188295B2/en not_active Expired - Fee Related
- 2003-03-14 KR KR10-2004-7015810A patent/KR20040093748A/ko active IP Right Grant
- 2003-04-02 TW TW092107507A patent/TW200401971A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
EP1500200A1 (en) | 2005-01-26 |
ATE408931T1 (de) | 2008-10-15 |
TW200401971A (en) | 2004-02-01 |
US20050154959A1 (en) | 2005-07-14 |
US7188295B2 (en) | 2007-03-06 |
WO2003085839A1 (en) | 2003-10-16 |
CN1647392A (zh) | 2005-07-27 |
JP2005522137A (ja) | 2005-07-21 |
DE60323622D1 (de) | 2008-10-30 |
CN100539444C (zh) | 2009-09-09 |
JP4141963B2 (ja) | 2008-08-27 |
AU2003209596A1 (en) | 2003-10-20 |
AU2003209596A8 (en) | 2003-10-20 |
EP1500200B1 (en) | 2008-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20040093748A (ko) | 오류정정의 추가층을 오류정정코드 내에 삽입하는 방법 및장치 | |
JP4098245B2 (ja) | 符号化及び復号化の方法 | |
JP4709485B2 (ja) | オンドライブ統合化セクタ・フォーマットraidの誤り訂正符号システムおよび方法 | |
US6903887B2 (en) | Multiple level (ML), integrated sector format (ISF), error correction code (ECC) encoding and decoding processes for data storage or communication devices and systems | |
US7103829B2 (en) | Coding for informed decoders | |
US20040257900A1 (en) | Data recording method, recording medium and reproduction apparatus | |
EP1640988B1 (en) | Method and apparatus for decoding multiword information | |
US7047477B2 (en) | Enhanced coding for informed decoders | |
JP4290881B2 (ja) | エラー訂正コードを含む磁気媒体上へのデータの格納のための方法及び装置 | |
US7340663B2 (en) | Method and apparatus for embedding an additional layer of error correction into an error correcting code | |
JP4854588B2 (ja) | ディジタル光メディアにおいて使用されるコードワードおよびコードワードを生成する方法 | |
US20030115536A1 (en) | Recording method, reproducing method, recording apparatus, and reproducing apparatus | |
JP4191043B2 (ja) | 単純な復号化方法及び装置 | |
US6694473B1 (en) | Parallel signal decoding method | |
US7284183B2 (en) | Method and apparatus for decoding multiword information | |
KR20040067102A (ko) | 고밀도 광디스크의 에러정정 블록 엔코딩 및 디코딩 방법 | |
US20060195758A1 (en) | Method of storing information on an optical disc | |
KR20040067104A (ko) | 고밀도 광디스크의 에러정정 블록 엔코딩 및 디코딩 방법 | |
JP2009064554A (ja) | エラー訂正コードを含む磁気媒体上へのデータの格納のための方法及び装置 | |
KR20040067103A (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 | ||
NORF | Unpaid initial registration fee |