KR100913965B1 - 일부가 사전에 알려진 정보의 코딩 및 디코딩 - Google Patents
일부가 사전에 알려진 정보의 코딩 및 디코딩 Download PDFInfo
- Publication number
- KR100913965B1 KR100913965B1 KR1020037000666A KR20037000666A KR100913965B1 KR 100913965 B1 KR100913965 B1 KR 100913965B1 KR 1020037000666 A KR1020037000666 A KR 1020037000666A KR 20037000666 A KR20037000666 A KR 20037000666A KR 100913965 B1 KR100913965 B1 KR 100913965B1
- Authority
- KR
- South Korea
- Prior art keywords
- information
- code
- words
- matrix
- codeword
- Prior art date
Links
- 239000011159 matrix material Substances 0.000 claims abstract description 149
- 238000000034 method Methods 0.000 claims abstract description 76
- 238000012937 correction Methods 0.000 claims abstract description 26
- 208000011580 syndromic disease Diseases 0.000 claims description 25
- 238000010187 selection method Methods 0.000 claims 2
- 230000003287 optical effect Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 3
- 239000000969 carrier Substances 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 241000251468 Actinopterygii Species 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000006735 deficit Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/005—Correction of errors induced by the transmission channel, if related to the coding algorithm
-
- 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/158—Finite field arithmetic processing
-
- 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
-
- 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Algebra (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
본 발명은, 손상되어 있을 수도 있는 수신된 코드어들(r)을 디코딩하는 디코더에 적어도 1개의 정보심볼(m1, m2, m3)이 사전에 알려진 경우에, 향상된 에러정정 성능을 제공하기 위해 복수의 정보심볼(m1, m2, …, mk)을 포함하는 정보어들(m)을 코드(C)의 코드어들(c)로 인코딩하기 위한 생성자 행렬(G)을 선택하는 방법에 관한 것이다. 또한, 본 발명은, 정보어들(m)을 코드어들(c)로 인코딩하는 방법과 손상되어 있을 수도 있는 코드어들(r)을 디코딩하는 방법에 관한 것이다. 디코딩을 수행하기 전에 일부의 정보심볼들이 디코더에 알려진 경우에, 향상된 정정 능력을 갖는 코드를 설계하기 위해, 본 발명에 따르면, 상기 코드(C)의 적어도 1개의 서브코드(C')의 최소 해밍거리가 상기 코드(C)의 최소 해밍거리보다 크고, 상기 생성자 행렬(G)로부터 상기 적어도 1개의 사전에 알려진 정보심볼(m1, m2, m3)에 대응하는 적어도 1개의 행을 생략함으로써, 상기 서브코드(C')의 서브코드 생성자 행렬(G')이 상기 코드(C)의 상기 생성자 행렬(G)로부터 유도되도록, 상기 생성자 행렬(G)이 선택되는 구성이 제안된다.
생성자 행렬, 디코딩, 에러정정, 정보심볼, 해밍거리
Description
본 발명은, 손상되어 있을 수도 있는 수신된 코드어들을 디코딩하는 디코더에 적어도 1개의 정보심볼이 사전에 알려진 경우에, 향상된 에러정정 성능을 제공하기 위해 복수의 정보심볼을 포함하는 정보어들을 코드의 코드어들로 인코딩하기 위한 생성자 행렬(generator matrix)을 선택하는 방법에 관한 것이다. 더구나, 본 발명은, 정보어들을 코드어들로 인코딩하는 방법과, 코드의 손상되어 있을 수도 있는 코드어들을 정보어들로 디코딩하는 방법에 관한 것이다. 더욱이, 본 발명은, 정보어들을 인코딩하는 대응하는 장치, 손상되어 있을 수도 있는 코드어들을 디코딩하는 대응하는 장치, 상기한 방법들을 구현하는 컴퓨터 프로그램, 사용자 데이터를 기록하는 데이터 매체와, 사용자 데이터를 전송하기 위한 신호에 관한 것이다.
정보어들을 코드어들로 인코딩하기 위해 생성자 행렬을 이용한다는 개념은 널리 사용되고 있으며, 예를 들면 Richard E. Blahut "Theory and Practice of Error-Control Codes", Addison Wesley, May 1984, Sec. 3.2에 공지되어 있다. 이와 같은 생성자 행렬은 특히 CD 오디오 표준 등의 표준에서 사용되고 기술되어 있다.
에러로부터 정보를 보호하기 위한 계층적인 대수 코드의 사용에 대한 특정한 예로서, 광 매체 상의 어드레스 검색의 분야에서는, 광 매체의 섹터 어드레스가 에러정정 코드에 의해 보호되는 헤더의 일부분이다. 다수의 경우에, 예를 들면, 연속적인 섹터들을 기록 또는 판독하고자 하거나, 대략적으로 알려진 디스크 영역으로 강제적으로 트랙 점프를 하는 경우에, 현재 섹터의 많은 헤더 정보를 이전에 판독된 섹터들과 목록표들로부터 추론할 수 있다. 그러나, 알려진 코드들에 대해서는, 정보심볼들을 부분적으로 알고 있으면, 코드의 향상된 에러정정 성능이 거의 실현되지 않는다.
따라서, 본 발명은, 인코더에게 알려지지 않은 부채널이 아마 디코더로 전송된 코드어에 인코딩된 정보의 일부분에 대해 알려주는, 심볼 에러들을 발생하는 채널에 대한 코딩에 관한 것이다. 본 발명의 목적은, 디코딩을 하기 전에 디코더에 일부의 정보심볼들이 알려진 경우에, 향상된 에러정정 성능을 갖는 코드를 설계함에 있다. 본 발명의 또 다른 목적은, 정보어들을 코드어들로 인코딩하는 방법과, 이와 같은 인코딩 방법에 의해 인코딩된 손상되어 있을 수도 있는 코드어를 디코딩하는 방법을 제공함에 있다. 더구나, 대응하는 장치들이 제공된다.
이들 목적은 청구항 1에 기재된 생성자 행렬을 선택하는 방법에 의해 달성되는데, 이에 따르면, 상기 코드의 적어도 1개의 서브코드의 최소 해밍거리(Hamming distance)가 상기 코드의 최소 해밍거리보다 크고, 상기 생성자 행렬로부터 상기 적어도 1개의 사전에 알려진 정보심볼에 대응하는 적어도 1개의 행을 생략함으로써, 상기 서브코드의 서브코드 생성자 행렬이 상기 코드의 상기 생성자 행렬로부터 유도되도록, 상기 생성자 행렬이 선택된다. 상기한 목적은 청구항 7에 기재된 인코딩 방법과 청구항 12에 기재된 디코딩 방법에 의해서도 달성된다.
본 발명에 따르면, 정보어들의 일부의 정보심볼들이 알려진 경우에, 디코더가 유효 해밍거리를 증진시킬 수 있도록, 코드어들에 대한 정보어들의 매핑이 이루어진다. 그러나, 디코더는, 만약에 존재한다면, 어떤 심볼들이 실제로 디코더에 알려지는지에 대해서는 통보받지 않은 것으로 가정한다. 유효 해밍거리의 이와 같은 향상을 얻기 위해서는, 특정한 소정의(즉, 사전에 선택된) 생성자 행렬이 사용된다. 그후, 상기한 소정의 생성자 행렬은 인코딩과 디코딩을 위해 사용되는데, 즉 이것은 표준 생성자 행렬로서 사용될 필요가 있다. 즉, 서브코드의 최소 해밍거리가 전체 코드의 최소 해밍거리보다 크도록, 생성자 행렬이 선택된다.
상기한 소정의 생성자 행렬을 사용할 때, 어드레스 정보가 더욱 신뢰할 수 있게 보호된다. 어드레스 정보의 일부분, 예를 들면 최상위 비트가 디코더에 이미 알려진 경우에, 데이터 매체, 예를 들면 디스크 상의 특정한 어드레스를 액세스하기 위한 새로운 명령이 주어지면, 어드레스 검색이 더욱 신뢰성을 갖게 되는데, 이것은 기록과정 중에는 매우 중요하다. 그후, 디코더는 증가된 최소 해밍거리를 갖는 서브코드를 효율적으로 이용할 수 있다. 그러나, 어떤 정보심볼들도 사전에 디코더로 알려지지 않으면, 검색된 코드어의 디코딩이 여전히 가능하며, 본 발명에 따라 사용된 코드의 해밍거리가 알려진 코드들의 해밍거리와 같아지게 되는데, 즉 디코딩 과정중에 더 큰 최소 해밍거리를 갖는 서브코드가 사용될 수 없게 된다.
예를 들면, 손상되어 있을 수도 있는 코드어를 데이터 매체로부터 판독하여 이 코드어를 검색할 때, 적어도 1개의 정보심볼, 예를 들면 판독 어드레스의 최상위 비트가 사전에 디코더로 알려진 경우에, 디코더는 먼저 상기한 정보심볼들의 대응하는 정보어를 코드어로 인코딩하는데 이미 사용된 상기 생성자 행렬의 대응하는 행들을 사용하여 알려진 정보심볼들을 먼저 인코딩한 후, 결과값을 가산하여 중간 워드를 생성한다. 그후, 이와 같은 중간 워드는 디코딩하고자 하는 수신된 코드어로부터 감산한다. 그후, 결과값은 알려지지 않은 정보심볼들에 대응하는 정보어의 인코딩을 위해 사용된 생성자 행렬, 즉 인코딩을 위해 사용된 생성자 행렬의 부분만을 포함하는 서브코드 생성자 행렬을 사용하는 디코딩 방법에 의해 디코딩되고, 사전에 디코더로 알려진 정보심볼들에 대응하는 행들이 생략되며, 디코더는 서브코드 생성자 행렬로서 생성자 행렬의 나머지 열들만을 사용하여 상기 감산의 결과값을 디코딩한다. 이것은, 서브코드 생성자 행렬에서는, 사전에 알려진 정보심볼들에 대응하지 않는 생성자 행렬의 행들만이 나타난다는 것을 의미한다.
전술한 것과 같이 생성자 행렬을 선택할 때, 디코딩을 수행하기 전에 일부의 정보 심볼들이 디코더로 알려지면, 에러정정 성능이 향상될 수 있다. 어떤 정보심볼들과 얼마나 많은 정보심볼들이 디코더로 알려졌는지에 의존하여 다양한 개량 수준이 존재할 수 있다.
본 발명의 바람직한 실시예는 청구항 2에 기재되어 있다. 본 실시예에 따르면, 코드의 생성자 행렬은 서로 다른 수의 행을 갖는 적어도 2개의 서브코드 생성자 매트릭스를 포함하고, 이와 같은 서브코드 생성자 매트릭스의 모든 열은 상기 생성자 행렬의 일부분, 즉 상기 서브코드 생성자 행렬로부터 유도된 서브코드들이 상기 생성자 행렬로부터 유도된 상기 코드에 내포된다. 생성자 행렬의 각각의 행은, 특정한 수의 제로값들을 각각 갖는 다항식을 표시하는 것으로 생각할 수도 있다. 본 실시예에 따르면, 특정한 제로값들이 각각의 다항식, 즉 생성자 행렬의 1개의 행으로 표시되는 각각의 다항식에 공통된다. 그러나, 각각의 다항식은 적어도 1개의 제로값에 있어서 다른 다항식과 다르다. 이와 같은 실시예에 따르면, 사전에 디코더에 알려진 정보심볼들의 수가 증가함에 따라 해밍거리가 증가될 수 있다.
또한, 생성자 행렬의 에러정정 성능이 사전에 디코더에 알려진 정보심볼들의 수가 증가함에 따라 증가하도록, 생성자 행렬이 선택될 수도 있다. 더구나, 생성자 행렬의 일부, 그러나 전부는 아닌, 행에 의해 발생된 상기 코드의 모든 적절한 서브코드들의 해밍거리가 상기 코드의 해밍거리보다 크도록, 생성자 행렬이 선택될 수도 있다. 이와 같은 구성은, 이미 1개의 정보심볼이 디코더에 사전에 알려진 경우에는, 어떤 정보심볼이 사전에 알려지는지에 무관하게, 개량된 에러정정 성능을 갖게 된다는 이점을 갖는다.
상기한 생성자 행렬을 선택하는 또 다른 바람직한 실시예는 청구항 3 내지 6에 기재되어 있다. 본 발명에 따라 정보어들을 코드어들로 인코딩하는 방법은 청구항 7에 기재되어 있으며, 그것의 바람직한 실시예는 청구항 8 내지 11에 기재되어 있다. 본 발명에 따라 손상되어 있을 수도 있는 코드어들을 정보어들로 디코딩하는 방법은 청구항 12에 기재되어 있으며, 그것의 바람직한 실시예는 청구항 13 내지 18에 기재되어 있다.
본 발명에 따른 손상되어 있을 수도 있는 코드어를 디코딩하는 방법은, 일반적으로, 상기 정보어들이 본 발명에 따라 선택된 생성자 행렬을 사용하여 상기 코드어들로 인코딩되고, 향상된 에러정정 성능을 갖는 상기 손상되어 있을 수도 있는 코드어를 디코딩하기 위해 상기 손상되어 있을 수도 있는 코드어 내부에 포함된 상기 적어도 1개의 사전에 알려진 정보심볼의 기여값을 참작하는 것을 특징으로 한다. 바람직한 실시예에 있어서는, 상기 손상되어 있을 수도 있는 코드어를 디코딩하기 전에, 상기 손상되어 있을 수도 있는 코드어에 포함된 상기 적어도 1개의 시전에 알려진 정보심볼의 기여값을 상기 손상되어 있을 수도 있는 코드어로부터 감산한다.
본 발명의 바람직한 실시예는 코드 펑쳐링(puncturing)에 기반을 두고 있다. 이때, 정보어들을 정규 생성자 행렬을 사용하여 인코딩된 코드어들보다 큰 길이를 갖는 중간 코드어들로 인코딩하기 위해 큰 중간 생성자 행렬이 사용된다. 그러나, 이들 중간 코드어들로부터는, 일부 심볼들이 생략되어 최종 코드어가 얻어진다. 디코딩과정 중에, 손상되어 있을 수도 있는 코드어는 먼저 사전에 알려진 정보심볼들을 사용하여 연장되어 의사 코드어를 얻으며, 그후 인코딩 과정중에 사용된 상기 중간 생성자 행렬을 사용하여 디코딩된다. 그후, 얻어진 제 2 의사 코드어는, 바람직하게는 본 발명의 실시예에서 공지된 구성을 갖는 에러 및 소거 디코더로 입력되어, 정보어를 검색한다.
본 실시예의 한가지 주된 이점은, 사전에 알려진 정보심볼들이 순차적인 순서로 알려진 것인지 여부에 무관하게, 더 큰 최소 해밍거리가 얻어질 수 있다는 것이다. 정보심볼들이 순차적으로 알려지지 않더라도, 생성자 행렬이 본 발명의 본 실시예에 따라 선택 및 사용되는 경우에는, 각각의 추가적으로 알려진 정보심볼에 의해 서브코드의 최소 해밍거리가 증가될 수 있다.
본 발명의 유리한 적용분야는 특히 광 매체 상의 어드레스 검색 분야에 관한 것이다. 본 발명을 이용할 때, 더 높은 에러정정 성능에 의해 어드레스 또는 타이밍 정보가 보호되어, 어드레스 검색을 더욱 더 안전하고 정확하게 할 수 있다. 더구나, 본 발명은, 예를 들면, 통신 시스템 또는 인터넷 등의 전송선로를 통해 전송된 직렬 데이터 스트림 내부의 어드레스 정보를 안전하게 지키는데 사용될 수도 있다. 일반적으로, 정보의 일부가 사전에 디코더로 알려진 경우에, 종래의 코드에 비해 개량된 에러정정 성능을 갖는 코드에 의해 정보를 보호하는데 사용될 수 있다.
본 발명에 따라 정보어들을 인코딩하는 장치와 손상되어 있을 수도 있는 코드어들을 디코딩하는 장치는 청구항 23 및 24에 기재되어 있다. 이들 장치는 더욱 더 개발될 수 있으며, 청구항 1에 따른 생성자 행렬을 선택하는 방법을 참조하여 위에서 설명한 실시예와 유사한 실시예를 가질 수 있다는 것은 자명하다.
본 발명에 따른 어느 한가지 또는 모든 방법을 구현하기 위한 본 발명에 따른 컴퓨터 프로그램은 청구항 25에 기재되어 있다.
본 발명에 따른 데이터 매체는 청구항 26 및 27에 기재되어 있다. 이와 같은 데이터 매체는 바람직하게는 오디오, 비디오 또는 소프트웨어를 저장하는데 사용되며, 기록가능 또는 재기록가능한 형태, 특히 CD 또는 DVD 등의 광 기록매체일 수 있다. 특정한 응용분야는 디지털 비디오 레코딩(DVR) 분야이다. 일반적으로, 이와 같은 데이터 매체는 시스템 데이터 항목들, 특히 데이터 매체의 제조시에 데이터 매체 상에 미리 기록되어 구입시에 사용자 데이터를 기록하기 위한 비어 있는 데이터 매체에 이미 존재하는 어드레스 데이터, 타이밍 데이터 또는 위치 데이터의 시스템 데이터 항목들을 포함한다. 따라서, 본 발명은 상기한 시스템 데이터 항목들을 인코딩하는데 사용될 수 있다. 그러나, 본 발명은 사용자 데이터를 인코딩하는데에도 마찬가지로 사용될 수 있다.
더구나, 사용자 데이터를 전송하며, 본 발명에 따른 방법에 의해 인코딩된 시스템 데이터 항목들, 예를 들면 위치, 어드레스 또는 타이밍 데이터를 포함하는 신호가 청구항 28에 기재되어 있다.
이하, 본 발명을 다음의 첨부도면을 참조하여 더욱 상세히 설명한다:
도 1은 종래의 코드어의 포맷을 나타낸 것이고,
도 2는 인코딩 및 디코딩 체계의 블록도이며,
도 3은 본 발명에 따라 정보어들을 인코딩하는 장치를 나타낸 것이고,
도 4는 본 발명에 따른 디코딩 장치를 나타낸 것이며,
도 5는 본 발명에 따른 인코딩 장치의 다른 실시예를 나타낸 것이고,
도 6은 본 발명에 따른 인코딩 장치의 또 다른 실시예를 나타낸 것이며,
도 7은 본 발명에 따른 디코딩 장치의 일 실시예를 나타낸 것이고,
도 8은 도 7에 도시된 디코딩 장치에 사용된 코드어로부터 정보심볼들을 추출하는 수단을 나타낸 것이며,
도 9는 본 발명에 따른 인코딩 장치의 또 다른 실시예를 나타낸 것이고,
도 10은 본 발명에 따른 대응하는 디코딩 장치를 나타낸 것이다.
도 1은 [n,k] 블록 코드, 예를 들면 리드-솔로몬 코드의 코드어들 c의 일반적인 체계를 나타낸 것이다. 코드어는 k개의 정보심볼들을 포함하는 정보어 m과 상기 정보어 m을 코드어 c로 인코딩할 때 발생된 n-k개의 패리티 워드들을 포함하는 패리티 워드 p를 포함한다.
도 2는 인코딩 및 디코딩을 사용하는 통상적인 시스템의 블록도를 나타낸 것이다. 이때, 예를 들면 마스터 테이프 또는 마스터 디스크 상에 기록된 데이터 소스(1)로부터 출력된 사용자 데이터, 예를 들면 오디오 또는 비디오 데이터는, 데이터 매체, 예를 들면 디스크 상에 저장되기 전에 인코딩되거나, 다시 디코딩되고 이 데이터가 데이터 싱크(sink)(9)로 전달되어 재생되기 전에, 전송 채널을 통해, 예를 들면 인터넷을 통해 전송된다.
도면에서 알 수 있는 것과 같이, 소스(1)의 사용자 데이터는 먼저 소스 인코더(2)에 의해 인코딩된 후, ECC 인코더(3)에 의해 에러정정 인코딩된 다음, 인코딩된 사용자 데이터, 즉 코드어들이 코드어들에 에러가 도입될 수 있는 채널(5) 상으로 주어지기 전에, 변조기(4), 예를 들면 EFM 변조기에 의해 변조된다. 이때, 채널(5)은, 전송 채널 뿐만 아니라, 추후에 재생하기 위해 데이터 매체 상에의 인코딩된 데이터의 저장을 포함하도록 넓게 해석된다.
데이터의 재생을 하고자 하는 경우에는, 인코딩된 데이터가 ECC 인코더(7)에 의해 에러정정 디코딩되고 소스 디코더(8)에 의해 소스 디코딩되기 전에, 복조기(6), 예를 들면 EFM 복조기에 의해 복조되어야만 한다. 최종적으로, 디코딩된 사용자 데이터는 사용자 데이터의 재생을 위해 싱크(9), 예를 들면 플레이어 장치로 입력될 수 있다.
그러나, 이와 같은 전체적인 시스템은, 사용자 데이터를 인코딩 및 디코딩하는데 사용될 뿐만 아니라, 관리 데이터와 같은 임의의 데이터, 특히 어드레스 데이터를 위해 마찬가지로 사용될 수도 있다. 이와 같은 어드레스 데이터는, 데이터 매체 상, 또는 사용자 데이터의 데이터 스트림 내부의 특정한 위치를 찾는데 사용된다. 기록가능하거나 재기록가능한 디스크 상에서는, 이와 같은 어드레스 데이터가 일반적으로 사용자 데이터가 기록되기 전에 비어 있는 디스크 상에 사전에 기록된다.
본 발명은 데이터의 인코딩 및 디코딩에 관한 것이다. 이때, 특정한 소정의 생성자 행렬이 사용되는데, 이 행렬의 선택도 본 발명에 따른 방법에 의해 설명된다. 본 발명의 특정한 응용분야는 광 기록매체 상에 저장된 어드레스들의 어드레스 검색 분야를 들 수 있다.
도 3은 본 발명에 따라 정보어들 m을 인코딩하는 장치의 일 실시예를 나타낸 것이다, 이때, 인코딩장치(10)는, 일정한 수의 정보심볼들 m1, m2, …, mk를 포함하는 정보어들 m을 코드 C의 코드어들 c로 인코딩하는 인코딩부(11)를 구비한다. 향상된 에러정정 성능을 얻기 위해, 소정의 특정한 생성자 행렬 G가 사용되어 정보어들 m을 인코딩한다. 이와 같은 생성자 행렬 G는 선택부(12)에 의해 한번 선택되고 정의된 후, 계속적인 사용을 위해 인코딩장치(10)와 디코딩장치로 주어지거나 바람직하게는 저장된다. 그후, 생성자 행렬 G를 사용하여, 정보어들 m이 인코딩부(11)에 의해 코드어들 c로 인코딩된다. 이들 코드어 c는 기록부(13)로 제공되어, 코드어들 c를 광 기록매체(14), 예를 들면 CD나 DVD 상에 기록할 수 있다.
일례로서, 본 발명, 특히 생성자 행렬 G의 바람직한 선택에 대해 더욱 상세히 설명한다. 이 예는 g(x)=x3+x+1에 의해 생성된 [7,4,3] 이진 해밍 코드 C에 기반을 두고 있다. 먼저, 이 코드의 "정규의" 사용에 대해 설명하는 한편, 그후 본 발명에 따른 코드의 사용에 대해 설명한다.
보통, 코드 C는 4(일반적으로 k)행과 7(일반적으로 n)열을 갖는 다음과 같은 생성자 행렬에 대응하는 계층적인 형태로 사용된다:
정보어 m=(m1,m2,m3,m4)은 코드어 c=m·Gsys 상에 매핑된다. i번째 정보심볼 mi가 디코딩을 하기 전에 디코더에 알려지면, 디코더는 디코딩을 하기 전에 수신된 워드 r에 대한 mi의 기여값을 뺄 수 있다. 이것은 디코더가 나머지 수신된 워드 r-mi·Gsys i를 생성자 행렬 Gsys로부터 i번째 행이 제거된 코드로 디코딩한다는 것을 의미하는데, 이때 Gsys i는 Gsys의 i번째 행을 나타낸다. Gsys의 최대 3개의 행을 삭제하여 얻어진 코드 C의 거의 모든 서브코드들 C'이 여전히 해밍거리 3을 갖기 때문에, 3개까지의 정보 비트를 아는 것은 알지 못하는 정보 비트에 대한 정정 성능을 크게 변경시키지는 않는다. 정보 비트들 m1, m3 및 m4가 알려질 때에만, m2를 검색하기 위한 해밍거리가 4로 증가된다.
본 발명에 따르면, 동일한 코드 C에 대한 또 다른 생성자 행렬 Gid는 다음과 주어진다:
코드의 인코딩을 위해 (비계층적) 생성자 행렬 Gid가 사용되면, 특정한 정보 비트들 또는 정보심볼들- 정보심볼은 1보다 큰 비트를 포함할 수 있다 -이 알려진 경우에, 도 4에 도시된 것과 같이 정보가 제공된 디코더가 코드 C의 더 유리한 서브코드들 C'을 디코딩할 수 있다. 예를 들어, 디코더가 첫 번째 정보 비트 m1을 알고 있으면, [7, 3, 4] 단순코드에 대응하는 Gid의 마지막 3행 g2, g3, g4에 의해 생성된 서브코드 C'을 사용할 수 있다. 다른 예로서, 마지막 3 비트 m2, m3, m4가 디코더에 알려지면, [7,1,7] 반복 코드에 대응하는 Gid의 첫 번째 행에 의해 발생된 서브코드를 사용하여, 3개의 비트 에러가 존재하는 경우에도 디코더가 m1을 신뢰할 수 잇게 복원할 수 있게 된다.
손상되어 있을 수도 있는 판독된 코드어 r을 디코딩하는 장치를 도 4에 도시하였다. 이때, 디코딩 장치(20)는 판독부(21)에 의해 데이터 매체(14)로부터 판독 된 손상되어 있을 수도 있는 코드어 r을 수신한다. 코드어 c에 인코딩된 정보어 m이 2개의 정보심볼 m1, m2, m3, m4를 포함한다고 가정하고, 디코딩 장치(20)가 사전에 3개의 정보심볼 m2, m3, m4를 알고 있다고 더 가정하면, 첫 번째 단계에서, 저장부(23) 내부의 인코딩장치(20)에 저장되고, 데이터 매체(14) 상에 저장되며 손상되어 있을 수도 있는 코드어들 r로서 판독된 코드어들 c를 인코딩하는데 이미 사용된 생성자 행렬 G를 사용하여 인코딩장치(22)에 의해 상기한 정보심볼 m2, m3, m4
가 인코딩된다. 이와 같은 인코딩을 위해, 인코딩부(22)는 알려진 정보심볼 m2, m3, m4
에 대응하는 생성자 행렬 G의 행들을 사용한다.
다음 단계에서, 이와 같은 인코딩의 결과값, 즉 알려진 정보심볼들 m2, m3, m4과 생성자 행렬 Gid의 대응하는 행들 g2, g3, g4와의 곱은 가산부(24)에 의해 가산되어, 중간 워드 s를 제공한다. 감산부(25)에서는, 판독된 코드어 r로부터 중간 워드 s가 감산되고, 이와 같은 감산의 결과가 디코딩부(26)로 주어진다. 이때, 서브코드 생성자 행렬 G'을 사용하여 발생된 서브코드 C'이 디코딩되며, 이 경우 서브코드 생성자 행렬 G'은, 생성자 행렬 G로부터 알려진 정보심볼들 m2, m3, m4에 대응하는 모든 열들을 생략함으로써, 즉 본 실시예에서는 행들 g2, g3, g4를 생략함으로써, 형성수단(27)에서 생성자 행렬 G로부터 유도된다. 따라서, 본 실시예에서는, 서브코드 생성자 행렬 G'이 생성자 행렬 G의 첫 번째 행 g1 만을 포함한다. 그 결 과, 모르는 정보심볼 m1이 검색될 수 있으므로, 전체 정보어 m을 최종적으로 알게 된다. 따라서, 일반적으로는, 손상되어 있을 수도 있는 코드어에 포함된 사전에 알려진 정보심볼들이 상기한 손상되어 있을 수도 있는 코드어로부터 감산되고, 상기한 감산 결과가 디코딩된다.
이하, 디코딩 방법을 예를 들어 더욱 더 상세히 설명한다. 코드 C의 코드어들 c는 다음과 같이 주어진다:
일반적으로, 생성자 행렬 G는 k개의 행과 N개의 열을 포함하며, 정보어 m은 k개의 열을 포함하고 코드어 c는 n개의 열을 포함한다.
이때, 정보심볼들 m2, m3, m4가 사전에 디코더로 알려지고, 판독된 코드어 r이 저장된 코드어 c에 추가적인 노이즈 n의 합으로 주어진다고 가정하면, 중간 워드 s는 먼저 다음과 같이 계산된다:
그후, 손상되어 있을 수도 있는 판독된 코드어 r과 중간 워드 s의 차이가 다음과 같이 계산된다:
이때, 정보심볼 m1이 1 비트만을 포함하고, 생성자 행렬 G의 행 g1이 일정하며, 노 이즈 n이 알려진 경우에, 정보심볼 m1은 0 또는 1일 수 있다. 이때, 본 발명에 따라 선택된 위에서 주어진 생성자 행렬 Gid를 사용하면, g1은 (1 1 1 1 1 1 1)로 주어지므로, m1 g1은 (0 0 0 0 0 0 0) 또는 (1 1 1 1 1 1 1)일 수 있다. 전술한 m1 g1 + n의 계산이 예를 들면 (0 0 1 0 0 1 1)을 제공하면, m1 g1이 (0 0 0 0 0 0 0)으로 주어질 확률이 너 높아지므로, m1이 비트값 0를 갖는 결과를 제공하게 된다. 이와 같은 예에서 알 수 있는 것과 같이, 판독된 코드어의 3개의 비트 에러에도 불구하고 정보심볼 m1이 결정될 수 있는데, 이것은 나머지 서브코드 C'이 해밍거리 7을 갖는다는 것을 의미한다.
본 발명은 신속하고 신뢰할 수 있는 어드레스 검색을 위해 사용될 수 있는 간단한 예에 의해 예시될 수도 있다. 통상적으로, [7, 4, 3] 이진 해밍 코드는 생성자 다항식 g(x)=x3+x+1에 의해 발생된다. 각각의 코드어는 생성자 다항식 g(x)의 이진 다항식 배수에 해당한다. 계층적 인코더가 사용되는 경우에는, 정보 비트들이 고차 위치에서 변경되지 않은 상태로 나타나는 한편, 패리티 비트들은 저차 위치에 존재한다.
아래에는, 코드의 16개의 모든 코드어들의 목록이 주어져 있는데, 각각의 코드어 다항식의 계수들은 벡터로 주어진다. 가장 높은 차수의 심볼 c6은 좌측에 위치하는 한편, 가장 낮은 차수의 심볼 c0은 각각의 코드어의 우측에 위치한다. 4개의 가장 촤측의 비트들 c6…c3는 4개의 정보 비트들 m4…m1에 대응하고, 3개의 가장 우측의 비트들 c2, c1, c0는 패리티 비트들 p3, p2, p1이다. 조사를 통해, 임의의 2개의 코드어들은 적어도 3개의 위치에서 서로 다르다는 것을 검사할 수 있는데, 이것은 코드의 해밍거리가 3으로, 1개의 에러가 정정될 수 있다는 것을 의미한다:
일례로서, 위에서부터 5번째 코드어는 1·g(x)(다항식 표현으로), 위에서부터 4번째 코드어는 x·g(x)이며, 위에서부터 10번째 코드어는 x2·g(x)이다. 중요한 것은, 임의의 2개의 코드어들의 (mod 2) 합은 GF(2)에 걸쳐 선형 코드이므로, 이것은 다시 코드어가 되는데, 즉 이 코드는 군을 형성한다. 각각의 정보 비트는 1 비트 에러로부터 보호되며, 일부의 정보 비트에 대한 지식은 다른 정보 비트의 정정 성능을 증가시키지 않는다.
본 발명에 따르면, 코드어로의 정보 비트들의 매핑은, 적어도 1개, 주어진 실시예에서는 3개의 정보 비트에 대한 지식이 나머지, 상기한 예에서는 4번째 정보 비트에 대한 정정 성능을 증가시키도록 변경된다. 이하에서, 3개의 남은 최상위 비트들 m4, m3, m2는 어드레스의 MSB(Most Significant Bit)로 불릴 수 있으며, 마지막 정보 비트 m1은 어드레스의 LSB(Least Significant Bit)로 불릴 수 있다. 본 발명에 따른 코드 구성은, MSB가 알려지면, LSB를 추출하기 위한 강한 코드가 얻어지도록 구성된다. 어떤 정보 비트도 사전에 알려지지 않으면, 통상적인 코드의 에러정정 성능에 비해 에러정정 성능이 변하지 않는다.
본 발명에 따르면, 코드의 선형성이 사용된다. MSB의 인코딩을 위해, 상기한 표에서 m1=0를 갖는 계층적인 코드어들이 사용된다. 이때, 실제로 8개의 이와 같은 코드어가 존재한다는 점에 주목하기 바란다. c(MSB)가 이와 같은 코딩의 결과값이면, LSB도 인코딩하기 위해, c(LSB=0)=0000000 및 c(LSB=1)=1111111이 선택된다. 전송되는 최종적인 코드어 c는 c=(MSB)+c(LSB)인데, 이때 "+"는 GF(2)에 대한 벡터 가산을 표시한다. 이때, (GF(2)에 대한) 코드의 선형성으로 인해, c는 다시 코드(표)에 속한다는 점에 주목하기 바란다. 더구나, c(MSB)에의 c(LSB)의 가산 효과는 MSB의 값을 스크램블하는데, 즉 LSB=1이면, MSB의 값이 반전된다는 점에 주목하기 바란다. 따라서, 모든 정보 비트들에서 전체 코드는 더 이상 계층적이 아니다.
이와 같은 코드어 c가 일부의 채널을 통해 전송될 때, 코드어에 비트 에러가 도입된다. 따라서, 수신된 코드어는 손상될 수 있으므로, 에러 위치가 코드어 c로부터 벗어난 손상되어 있을 수도 있는 코드어 r로 불리게 된다. 정보 비트들에 대해 아무 것도 모르면, 전송된 코드어 c가 해밍코드에 속한다는 것만이 알게 되므로, 항상 1 비트 에러가 정정될 수 있다. 아마 수신된 워드 r로부터 코드어 c를 복원하는 에러정정을 거친 후에, 먼저 코드어 c의 네 번째 비트인 LSB(정보 심볼 m1)를 추출함으로써 정보가 검색될 수 있으며, 주어진 LSB를 사용하여 LSB=0 또는 LSB=1에 의존하여 코드어 c로부터 (0 0 0 0 0 0 0) 또는 (1 1 1 1 1 1 1)이 각각 감산된다. 그후, 이 결과값의 첫 번째 3개의 비트로서 MSB를 사용할 수 있다. 그러나, 1개보다 많은 전송 에러가 존재하면, 디코딩 결과에 에러가 존재하게 되는데, 이것은 항상 단일 에러정정 해밍 코드에 대해 발생된다.
그러나, MSB가 디코딩하기 전에 알려져 있다고 가정하자. 먼저, 코드어의 최상위 부분 c(MSB)는 디코더에 의해 재구성된 후, 수신된 워드 r로부터 감산된다. 따라서, 채널 에러에 의해 손상된 (0 0 0 0 0 0 0) 또는 (1 1 1 1 1 1 1)이 남게 된다. 이들 2개의 워드의 거리가 7이기 때문에, 3 비트 에러가 존재하더라도 LSB를 찾을 수 있다. 따라서, 전체 코드에 대해 단지 3개의 패리티 비트를 이용함으로써, MSB가 알려지면 LSB가 [7, 1, 7] 반복 코드에 의해 효과적으로 보호된다. 이와 같은 예에서, [7, 4, 3] 해밍코드는 [7, 1, 7] 서브코드와 이 코드의 공통집합(co-set)으로 분할된다.
이미 설명한 것과 같이, 본 발명은 광 기록매체에 사용되는 어드레스를 보호하는데 사용될 수 있다. 그러나, 본 발명은 전송 선로를 통해 전송될 수도 있는 직렬 데이터 스트림의 어드레스를 보호하는데에도 사용될 수 있다. 일반적으로, 본 발명은, 정보어들이 코드로 인코딩되고, 적어도 1개의 정보심볼이 사전에 디코더에 알려진 경우에 개량된 에러정정 성능이 달성되는 임의의 응용분야에 적용될 수 있다.
더욱 일반적으로, 본 발명은 임의의 선형 코드, 특히 리드 솔로몬 코드에 적용될 수 있다. [n, k, n-k+1] RS 코드가 다수의 서브코드들로 분할될 수 있으므로, j개의 최상위 정보 심볼들이 알려지면, 나머지 k-j개의 정보심볼들을 디코딩하기 위한 유효 거리가 n-k+1+j가 된다. 또한, 디코딩 과정은, j개의 알려진 정보심볼들을 재인코딩하는 과정과, 이와 같은 재인코딩의 결과를 수신된 워드로부터 감산하는 과정과, 적절한 디코더를 사용하여 남아 있는 높은 거리 서브코드를 디코딩하는 과정으로 구성된다.
본 발명의 또 다른 실시예에 있어서, 생성자 행렬 G는, 적어도 2개의 서브코드가 상기 생성자 행렬 G에 의해 발생된 코드 내부에 포함되도록 선택될 수 있다. 이것을 다음의 예에 의해 예시한다. 본 발명에 따르면, 생성자 행렬 G은 G=(g1(x)g2(x)g3(x))T로서 선택되는데, 이때,
이고, 이때 α는 α3=1+α를 만족하는 GF(8)의 성분이다.
따라서, 대응하는 생성자 행렬은 다음과 같이 된다:
따라서, 코드 C의 코드어들 c(x)는 생성자 다항식 g3(x)의 다항식 배수가 된다. 이에 따라, 이와 같은 생성자 행렬 G에 의해 발생된 코드는 R, Blabut의 전술한 문헌의 섹션 7.2에서 알 수 있는 것과 같이 최소 해밍거리 3을 갖는다.
정보어 m=(m1 m2 m3)의 정보심볼 m3가 사전에 디코더에게 알려져 있다고 가정하면, 대응하는 서브코드 생성자 G2'=(g1 g2)T에 의해 발생되고 해밍거리 4를 갖는 서브코드 C2'이 사용될 수 있다. 이와 같은 서브코드 C2'에서, 모든 코드어들은 생성자 다항식 g1 및 g2의 조합이다.
정보심볼들 m2 및 m3가 알려지면, 서브코드 생성자 행렬 G1'=(g1)에 의해 발생 되고 최소 해밍거리 5를 갖는 서브코드 C1'가 사용될 수 있다.
더구나, 생성자 다항식의 일부가 다른 생성자 다항식들의 다항식 배수이기 때문에, 생성자 행렬 G의 상기한 선택으로, 코드어들 c=m·G의 계산을 위해 더 적은 승산이 필요하게 된다.
상기한 예에서 알 수 있는 것과 같이, 서브코드들 C1' 및 C2'은 코드 C에 포함되며, 각각의 서브코드 C1', C2'은 대응하는 서브코드 생성자 행렬 G1', G2'에 의해 발생된다. 상기한 서브코드 생성자 행렬들 G1', G2' 각각은 서로 다른 수의 행을 가지며, 이때 모든 행들은 상기한 생성자 행렬 G의 일부분이다. 일반적으로, 각각의 서브코드 생성자 행렬이 증가된 수의 행을 포함하고, 각각의 서브코드 생성자 행렬이 1개의 열을 생략하여 다른 서브코드 생성자 행렬로부터 얻어질 수 있도록, G의 선택이 행해질 수 있다. 상기한 예에서, 서브코드 생성자 행렬 G1'은, 두번째 행을 생략함으로써, 즉 생성자 다항식 g2(x)를 삭제함으로써 서브코드 생성자 행렬 G2'으로부터 유도된다. 서브코드 생성자 행렬 G2'은 G의 마지막 행을 삭제함으로써, 즉 생성자 다항식 g3(x)를 삭제함으로써 생성자 행렬 G로부터 유도된다.
또한, 생성자 행렬 G는, 첫 번째 i개의 행(이때, i는 1과 같거나 큰 정수이다)이 서브코드 C1'을 얻기 위한 서브코드 생성자 행렬 Gi'을 형성하도록 선택될 수도 있는데, 이때 상기한 생성자 행렬 G의 첫 번째 i+1개의 행으로 이루어진 서브코 드 생성자 행렬 Gi+1'로부터 얻어진 서브코드 Ci+1'에 대해 해밍거리가 더 커진다.
더욱 일반적으로, 코드 C는 다음과 같은 생성자 다항식을 갖는 GF(q)에 대해 [n≤q-1, k, n-k+1] RS 코드일 수 있다:
이때, α는 GF(q)의 원시 성분이다. 코드 C의 코드어들은 생성자 다항식 gk(x)의 다항식 배수인 최대 n-1의 차수를 갖는 다항식 c(x)로 표시된다. 본 발명에 따르면, 정보심볼들 m0, m1, …, mk-1을 다음과 같이 인코딩하는 것이 제안된다:
따라서, 정보어 m은 j번째의 행이 다항식 gj(x)의 계수들로 구성되는 생성자 행렬 G를 사용하여 인코딩된다. 생성자 행렬 G의 w개의 상단 행은 다항식 g1(x), g2(x), …, gw(x)를 표시하며, 이들 모드는 gw(x)의 배수이다. 그 결과, 이들 상단의 w개의 행은 [n, w, n-w+1]의 잔여 코드를 발생한다. 따라서, 디코더에게 (mw, …, mk-1)에 대해 알려지면, 생성자 다항식 gw(x)를 갖는 RS 코드에 대한 디코더를 사용하여 0.5 (n-w)에 이르는 에러를 정정할 수 있다. 이때, 연속적인 w들에 대한 잔여 코드는 원래의 RS 코드 C에 포함된 서브코드들이라는 점에 주목하기 바란다.
또 다른 효율적인 인코딩 방법은 다음 단계로 구성된다. 먼저, 코드 파라미 터 c1(x)가 c1(x)=m1에 의해 초기화된다. 그후, j=2 내지 k에 대해, 다음의 코드 파라미터들 cj(x)가 다음과 같이 계산된다:
마지막으로, 코드어 다항식 c(x)가 다음과 같이 계산된다:
상기한 코드어 다항식 c(x)의 계수들은 함께 코드 C의 코드어 c=(c0,…,cn-1)을 구성한다.
본 발명의 또 다른 바람직한 실시예를 도 5 내지 도 8을 참조하여 설명한다. 도 5 및 도 6에는 주파수 영역 인코딩을 위한 본 발명에 따른 인코딩 장치의 2가지 실시예를 나타내었고, 도 7에는 대응하는 디코딩 장치가 도시되어 있으며, 도 8에는 도 7의 디코딩 장치의 일부분인 추출부가 상세히 도시되어 있다.
주파수 영역 인코딩 및 디코딩을 디지털 비디오 레코딩(DVR)의 분야의 상세한 예에 의해 설명한다. 본 실시예에 있어서, 함께 6개의 정보심볼을 구성하는 5개의 어드레스 심볼들과 1개의 보조 심볼을 포함하는 어드레스 정보가 워블신호로 저장된 워블 코드로 인코딩된다. 특정한 실시예에 있어서는, 갈로아체(Galois Field) GF(16)에 대해 [11, 6, 6,] 리드-솔로몬 형태의 코드가 사용되는데, 이때 α는 원 시 성분이다. 따라서, 코드어들 c는 c(x)=c0+c1x+c2x2+…c10
x10의 형태를 갖는다. (사용자 심볼로도 불리는) 6개의 정보심볼들은 m5, m6, …, m10으로 라벨이 붙여지는데, 즉 심볼 m0 내지 m4는 이와 같은 특정한 실시예에서는 사용되지 않는다. 생성자 다항식 g(x)는 다음과 같이 주어진다:
디코더에 어떤 정보심볼도 알려지지 않은 경우에, 상기한 코드는 6의 최소 해밍거리를 갖는다. 그러나, 정보심볼 m5가 알려지면, 최소 해밍거리는 1만큼 증가한다. 각각의 추가적인 연속적인 정보심볼들이 디코더에 알려지면, 마찬가지로 최소 해밍거리가 1만큼 증가한다.
인코딩 규칙을 구현하기 전에, 이하에서 설명하는 다수의 정의가 이루어져야만 한다. 부모(parent) 생성자 다항식 g(p)(x)는 다음과 같이 정의된다:
그후, 5≤i≤10에 대해, 성분 생성자 다항식들 g(i)가 다음과 같이 정의된다:
이때,
따라서, 코드어 c를 인코딩하기 위한 인코딩 규칙은 다음과 같이 주어진다:
따라서, 상기한 코드어 다항식 c(x)의 계수들은 코드 C의 코드어 c를 구성한다.
피드 퍼워드 레지스터를 사용한 이와 같은 인코딩 규칙의 구현을 도 5에 도시하였다. 이 도면에서 알 수 있는 것과 같이, 첫 번째 부분에서 정보심볼들 m5 내지 m10은 먼저 특정한 파라미터로 승산되고, 각각의 피드백 시프트 레지스터에 공급된 후, 가산된다. 그후, 합이 부모 생성자 다항식의 계수를 포함하는 피드 포워드 시프트 레지스터로 입력되어, 코드어 다항식 c(x)를 형성한다.
GF(q)에 대해 [n,k,n-k+1] 리드-솔로몬 코드의 코드어로의 k개의 정보심볼들 mn-k, mn-k+1, …, mn-1을 포함하는 정보어 m의 주파수 영역 인코딩을 구현하기 위한 일반적인 정의는 다음과 같다:
부모 생성자 다항식(g(p)(x))는 다음과 같이 주어진다:
이때, α는 최대 n의 차수의 GF(q)의 비제로값의 성분이고, b는 정수이다. n-k≤i ≤n-1에 대한 성분 생성자 다항식 g(i)(x)는 다음과 같이 정의된다:
이때,
및
이 성립한다. 코드어 다항식(c(x))는 다음과 같이 계산된다:
이때, 상기한 코드어 다항식 c(x)의 계수는 코드 C의 코드어 c를 구성한다.
인코딩 장치의 약간 다른 실시예를 도 6에 도시하였다. 이때, [12, 7, 6] 코드에 대한 인코딩 규칙과 7개의 정보심볼들 m5, m6, …, m11을 코드어 c(x)로 인코딩하기 위한 인코딩 규칙이 구현된다. 이와 같은 특정한 실시예에 대한 인코딩 규칙은 다음과 같이 주어진다:
도 5 및 도 6의 인코딩 규칙들 사이의 차이는, 도 6에 도시된 인코딩 규칙에서는 정보심볼 m11이 직접 사용되고, 도 6에 도시된 장치에서 구현되는 인코딩 방법은 주 파수 및 시간 영역 인코딩의 하이브리드 방법인 반면에, 도 5의 장치에 구현된 인코딩 방법은 순수한 주파수 영역 인코딩에 대한 방법이라는 점이다.
k개의 정보심볼 mn-k, mn-k+1, ..., mn-1을 포함하는 정보어 m을 GF(q)에 대해 [n,k,n-k+1] 리드-솔로몬 코드로 하이브리드 인코딩을 구현하기 위한 일반적인 정의는 다음과 같이 주어진다:
부모 생성자 다항식(g(t)(x))는 다음과 같이 주어진다:
이때, α는 최대 n의 차수의 GF(q)의 비제로값의 성분이고, b는 정수이다. n-k≤i≤n-2에 대한 성분 생성자 다항식 g(i)(x)는 다음과 같이 정의된다:
이때,
및
가 성립한다. 코드어 다항식(c(x))는 다음과 같이 계산된다:
이때, 상기한 코드어 다항식 c(x)의 계수는 코드 C의 코드어 c를 구성한다.
위에서 알 수 있는 것과 같이, 이들 실시예에서 모든 성분 생성자 다항식들은 다음과 같은 다항식을 공통적으로 갖는다:
따라서, 부모 및 성분 생성자 다항식들의 다음과 같은 특성이 정보심볼들의 추출을 위해 사용될 수 있다:
j≠1, 5≤i, j≤10에 대해 g(i)(αj)=0.
따라서, 정보심볼들 mi는 다음과 같이 추출될 수 있다:
대응하는 디코딩 장치를 도 7에 도시하였다. 이때, 심볼 r0, r1, …, r11을 포함하는 수신된 워드 r(x)는 손상되어 있을 수도 있는 코드어, 즉 코드어 c와 노이즈 n을 포함한다고 가정한다. 수신된 워드 r로부터, 신드롬들 Sj가 신드롬(syndrome) 생성부(30)에서 계산되는데, 이때 0≤j≤4에 대해 Sj=c(αj)+n(αj)=n(αj)와 5≤j≤10에 대해 Sj=n(αj)+mj가 성립한다.
디코딩을 행하기 전에 디코더에 kmax-4개의 정보심볼들 m5, m6, …, mkmax
가 알려졌다는 가정하에서, 알려진 정보심볼들 mj의 기여값을 5≤j≤kmax에 대한 계산된 신드롬들 Sj로부터 제거할 수 있다. 따라서, 본 발명에 따르면, 신드롬들 Sj가 신드롬 변형부(31)에서 변형되어, 추가적인 (변형된) 신드롬들 S'j가 얻어진다.
0≤k≤4에 대해, 신드롬들이 변형되지 않는다는 것이 성립하는데, 즉 S'k=Sk이다. 그러나, 5≤k≤kmax에 대해서는, 신드롬들이 S'k≒Sk-mk만큼 변형되는데, 즉 대응하는 정보심볼이 디코더에 알려진 각각의 신드롬 S가 변형된다. 그후, 얻어진 변형된 신드롬들 S'과 사전에 알려진 정보심볼들의 수에 대한 정보(kmax)는 에러 위치 및 에러값들을 계산하는 에러 패턴 연산부(32)로 입력되어, 코드어 c의 계수들 c0, c1, …, c11이 얻어진다. 실제적인 구현예에서, 상기한 에러 패턴 연산부(32)는 키 방정식를 푸는 장치와 친(Chien) 검색 및 포니(Forney) 알고리즘을 구현하는 장치를 구비할 수 있다. 전술한 것과 같이, 0≤k≤4에 대해 S'k=Sk=n(αk)이고 5≤k≤kmax에 대해 S'k=Sk-mk=(n(αk)+mk)-mk=n(αk)이다, 그 결과, 0≤k≤kmax에 대해 S'k=n(αk)인데, 이것은, 효과적으로 최소 해밍거리 kmax+2를 갖는 코드가 사용된다는 것을 의미한다.
마지막으로, 얻어진 코드어 계수들 c0, c1, …c11이 추출부(33) 내부에서 모든 정보심볼들 m5, m6, …, m11을 추출하는데 사용되는데, 이때 정보심볼들은 다음과 같이 주어진다:
상기한 추출부(33)의 상세한 실시예를 도 8에 도시하였다.
전술한 것과 같이, 정보심볼들 m5, m6, …, mkmax가 알려지면, 전술한 코드의 해밍거리가 kmax+2로 증가되어, 더욱 더 신뢰할 수 있는 어드레스 인식을 가능하게 한다. 해밍거리의 증가는 추가적인 중복성(redundancy)을 필요로 하지 않으며, 코드의 디코더는 일부의 추가적인 신드롬들을 계산할 수 있는 통상적인 디코더일 수 있다. 따라서, 일부의 정보심볼의 지식은 이들 정보심볼에 대응하는 신드롬들을 갱신하고 그후 이들 신드롬을 사용할 수 있도록 허용한다.
더욱 일반적으로, 신드롬들 Sj는 다음과 같이 계산되고,
정보심볼들 mn-k, mn-k+1, …, mm-k+s-1이 사전에 알려지면, 상기한 추가적인 신드롬들(S')이 다음과 같이 계산된다:
정보심볼들은,
n-k≤j≤n-2에 대해 mj=c(αj+b) 및 mn-1=cn-1
또는
n-k≤j≤n-1에 대해 mj=c(αj+b)
에 의해 얻어질 수 있다.
이하에서는, 주파수 영역 인코딩에 대응하는 3x5 생성자 행렬에 대한 일례가 주어진다. i=1, 2, 3에 대해, 생성자 행렬의 i번째 행은 최대 4의 차수를 갖는 다항식 fi(x)에 대응하므로, fi(1)=fi(α)=0, fi(αi-1)=1이며, 1≤j≤3에 대해서는, i≠j이면 fi(αj+1)=0이 된다. 이때, α는 α3=1+α를 만족하는 GF(8)의 성분이다. 다음의 다항식은 이들 요구사항을 만족한다:
이것은 다음과 같은 생성자 행렬을 제공한다:
이하, 코드 펑쳐링에 기반을 둔 본 발명의 또 다른 실시예를 도 9 및 도 10을 참조하여 설명한다. 도 9는 정보어 m을 코드어 c로 인코딩하는 방법을 나타낸 것이고, 도 10은 손상되어 있을 수도 있는 코드어 r을 정보어 m으로 디코딩하는 방법을 나타낸 것이다.
도 9에 도시된 것과 같이, k개의 정보심볼들을 포함하는 정보어 m은 중간 생성자 행렬 G"을 사용하여 인코딩장치(40)의 인코딩부(41)에 의해 인코딩된다. 이러한 중간 생성자 행렬 G"은 선택부(42)에 의해 선택된 생성자 행렬 G로부터 유도된다. 중간 생성자 행렬 G"은, 그것이 생성자 행렬 G보다 적어도 1개 많은 열을 포함한다는 점에서 생성자 행렬 G보다 크다. 일반적으로, 생성자 행렬 G는 k개의 행과 n개의 열을 갖는 한편, 중간 생성자 행렬 G"은 k개의 행과 n+k개의 열을 가지며, 서로 다른 위치에 한 개의 제로값이 아닌 엔트리를 갖는 k개의 열을 포함한다. 정보어 m을 인코딩하기 위해 상기한 중간 생성자 행렬 G를 사용할 때, k+n개의 심볼들을 갖는 중간 코드어 t가 얻어진다. 상기한 중간 코드어 t로부터, 상기한 중간 코드어 t의 다수의 심볼을 생략함으로써, 코드어 발생부(44)로부터 코드어 c가 얻어진다. 이때, 생략하려는 심볼들의 수는 상기한 중간 생성자 행렬 G"과 상기 생성자 행렬 G의 열의 수의 차이에 해당한다. 따라서, 얻어진 코드어 c는 n개의 심볼을 포함한다.
디코딩 중에, n개의 심볼을 포함하는 손상되어 있을 수도 있는 코드어 r이 도 10에 도시된 것과 같이 디코더에 의해 수신된다. 첫 번째 단계에서, 수신된 워드는 신장부(50)에 의해 제 1 의사 코드어 r'으로 신장된다. 이때, 인코더에서 이미 사용된 상기한 중간 생성자 행렬 G는 상기한 의사 코드어 r'의 길이를 결정하는데 사용되는데, 즉 상기한 의사 코드어 r'의 심볼들의 수는 상기한 중간 생성자 행렬 G"의 열의 수에 해당하며, 즉 수신된 워드 r의 n개의 심볼들에 k개의 소거 부분이 추가되어 의사 코드어 r'을 얻는다.
그후, 교체부(51)에서는, 사전에 알려진 정보심볼, 예를 들면 m1, m5, m6가 상기한 의사 코드어 r'의 상기한 사전에 알려진 정보심볼들의 위치에 대응하는 소거 위치에서 교체된다. 이것은, 소거 1, 5, 6이 사전에 알려진 정보심볼 m1, m5, m6에 의해 교체된다는 것을 의미한다. 그후, 얻어진 두번째 의사 코드어 r"은, 바람직하게는 상기한 중간 생성자 행렬 G"을 사용하여 상기한 두 번째 의사 코드어 r"을 k개의 심볼을 포함하는 정보어 m으로 디코딩하는 본 실시예에서 공지된 에러 및 소거 디코더인 디코더부(52)로 입력된다.
본 발명의 이와 같은 실시예에 따르면, 본 발명의 다른 실시예들에 비해 더 큰 중간 생성자 행렬 G"이 사용된다. 그러나, 본 발명의 이점은, 정보심볼들이 연속적인 순서로 사전에 알려질 필요가 없으며, 정보어 내부의 정보심볼의 위치에 무관하게 사전에 알려진 임의의 추가적인 정보심볼이, 일반적으로 정보심볼이 사전에 알려지지 않은 경우에 사용된 코드에 비해 향상된 최소 해밍거리를 제공한다는 것이다.
이하, 코드 펑쳐링에 기반을 둔 실시예를 이와 다른 방식으로 예시한다. 다음과 같이 정의된 갈로아체 GF(8)에 대한 [8, 3, 6] 신장된 리드-솔로몬 코드 C를 고려하자. 다음과 같은 경우에, 그리고 이 경우에만 벡터 c=(c-1, c0, c1, …, c6)가 C 내부에 위치한다:
이때, α는 α3=1+α를 만족하는 GF(8)의 성분이다.
다음과 같은 중간 생성자 행렬 G"이 코드 C를 생성한다는 것을 알 수 있다:
이 중간 생성자 행렬 G"의 최우측 5개의 열이 생성자 행렬 G로서 사용되는데, 즉 생성자 행렬 G는 다음과 같다:
이 생성자 행렬 G에 의해 발생된 코드는 최소 해밍거리 3을 갖는다. 임의의 j개의 정보심볼을 알면, 최소 해밍거리가 3으로부터 3+j로 효율적으로 증가된다.
Claims (43)
- 손상되어 있을 수도 있는 수신된 코드어들(r)을 디코딩하는 디코더에 적어도 1개의 정보심볼(m1, m2, m3)이 사전에 알려진 경우에, 향상된 에러정정 성능을 제공하기 위해 복수의 정보심볼(m1, m2, …, mk)을 포함하는 정보어들(m)을 코드(C)의 코드어들(c)로 인코딩하기 위한 생성자 행렬(G)을 선택하는 방법에 있어서,상기 코드(C)의 적어도 1개의 서브코드(C')의 최소 해밍거리가 상기 코드(C)의 최소 해밍거리보다 크고, 상기 생성자 행렬(G)로부터 상기 적어도 1개의 사전에 알려진 정보심볼(m1, m2, m3)에 대응하는 적어도 1개의 행을 생략함으로써, 상기 서브코드(C')의 서브코드 생성자 행렬(G')이 상기 코드(C)의 상기 생성자 행렬(G)로부터 유도되도록, 상기 생성자 행렬(G)이 선택되는 것을 특징으로 하는 선택방법.
- 제 1항에 있어서,각각 증가하는 해밍거리를 갖는 적어도 2개의 서브코드(C1', C2', C3')가 존재하고, 상기 서브코드들(C1', C2', C3')은 상기 코드(C) 내부에 포함되며, 각각의 서브코드(C1', C2', C3')가 대응하는 서브코드 생성자 행렬(G1', G2', G3')에 의해 발생되도록, 상기 생성자 행렬(G)이 선택되고, 각각의 서브코드 생성자 행렬(G1', G2', G3')은 서로 다른 수의 행을 가지며, 모든 행들은 상기 생성자 행렬(G)의 일부분인 것을 특징으로 하는 선택방법.
- 제 2항에 있어서,상기 서브코드 생성자 행렬들(G1', G2', G3')은 증가하는 수의 행들을 포함하고, 이 수치는 각각의 생성자 행렬(G1', G2', G3')에 대해 1만큼 증가하며, (i-1)번째 서브코드 생성자 행렬(G1')이 i번째 서브코드 생성자 행렬(G2')로부터 1개의 행을 생략하여 유도되는 것을 특징으로 하는 선택방법.
- 제 3항에 있어서,모든 정수 i(i는 1과 같거나 큰 정수이지만 최대 k-1이며, 이때 K는 상기 생성자 행렬(G)의 행들의 수이다), i행들의 수가 상기 생성자 행렬(G)의 i+1개의 행들의 수로 구성되는 서브코드 생성자 행렬(Gi+1')로부터 얻어진 서브코드(Ci+1')보다 큰 해밍거리를 갖는 서브코드(C1')을 얻기 위한 서브코드 생성자 행렬(Gi')을 구성하도록, 상기 생성자 행렬(G)이 선택되는 것을 특징으로 하는 선택방법.
- 제 1항에 있어서,상기 생성자 행렬(G)은, 상기 생성자 행렬(G)보다 적어도 1개 많은 열을 갖고, 한 개의 제로값이 아닌 엔트리를 갖는 상기 적어도 1개의 열을 생략함으로써 증가된 최소 해밍거리를 갖는 코드를 발생하는 더 큰 중간 생성자 행렬(G")로부터 유도되는 것을 특징으로 하는 선택방법.
- 제 5항에 있어서,상기 생성자 행렬(G)은 k개의 행과 n개의 열을 갖고, k개의 행과 n+k개의 열을 갖는 상기 중간 생성자 행렬(G")은 서로 다른 위치에 한 개의 제로값이 아닌 엔트리를 각각 갖는 k개의 열을 포함하며, 상기 생성자 행렬(G)은 상기 k개의 열을 생략함으로써 상기 중간 생성자 행렬(G")로부터 유도되는 것을 특징으로 하는 선택방법.
- 손상되어 있을 수도 있는 수신된 코드어들(r)을 디코딩하는 디코더에 적어도 1개의 정보심볼(m1, m2, m3)이 사전에 알려진 경우에, 향상된 에러정정 성능을 제공하기 위해 복수의 정보심볼(m1, m2, …, mk)을 포함하는 정보어들(m)을 코드(C)의 코드어들(c)로 인코딩하는 방법에 있어서,상기 정보어들(m)을 상기 코드어들(c)로 인코딩하는데 청구항 1에 따라 선택된 생성자 행렬(G)이 사용되는 것을 특징으로 하는 인코딩방법.
- 제 7항에 있어서,k개의 정보심볼들(mn-k, mn-k+1, …, mn-1)을 포함하는 정보어(m)가 GF(q)에 대해 [n,k,n-k+1] 리드-솔로몬 코드의 코드어(c)로 인코딩되고, 상기 인코딩은,a) 다음 식에 따라 부모 생성자 다항식(g(p)(x))을 정의하는 단계와,(이때, α는 최대 n의 차수를 갖는 GF(q)의 비제로값 성분이고, b는 정수이다)b) n-k≤i≤n-1에 대해 다음 식에 따라 성분 생성자 다항식(g(i))을 정의하는 단계와,이때,및c) 다음 식에 따라 코드어 다항식(c(x))을 계산하는 단계를 포함하고,상기 코드어 다항식(c(x))의 계수들은 코드(C)의 코드어(c)를 구성하는 것을 특징으로 하는 인코딩방법.
- 제 7항에 있어서,k개의 정보심볼들(mn-k, mn-k+1, …, mn-1)을 포함하는 정보어(m)가 GF(q)에 대해 [n,k,n-k+1] 리드-솔로몬 코드의 코드어(c)로 인코딩되고, 상기 인코딩은,a) 다음 식에 따라 부모 생성자 다항식(g(p)(x))을 정의하는 단계와,(이때, α는 최대 n의 차수를 갖는 GF(q)의 비제로값 성분이고, b는 정수이다)b) n-k≤i≤n-2에 대해 다음 식에 따라 성분 생성자 다항식(g(i))을 정의하는 단계와,이때,및c) 다음 식에 따라 코드어 다항식(c(x))을 계산하는 단계를 포함하고,상기 코드어 다항식(c(x))의 계수들은 코드(C)의 코드어(c)를 구성하는 것을 특징으로 하는 인코딩방법.
- 제 7항에 있어서,상기 생성자 행렬(G)보다 적어도 1개 많은 열을 갖고, 한 개의 제로값이 아닌 엔트리를 갖는 상기 적어도 1개의 열을 생략함으로써 증가된 최소 해밍거리를 갖는 코드를 발생하는 더 큰 중간 생성자 행렬(G")로부터 유도된 생성자 행렬(G)은, 상기 정보어들(m)을 상기 코드어들(c)로 인코딩하는데 사용되고,a) 상기 중간 생성자 행렬(G")을 사용하여 상기 정보어들(m)을 인코딩하여 중간 코드어들(t)을 발생하는 단계와,b) 적어도 1개의 심볼을 생략함으로써 상기 중간 코드어들(t)로부터 상기 코드어들(c)을 발생하는 단계를 포함하며, 생략할 심볼의 개수는 상기 중간 생성자 행렬(G")과 상기 생성자 행렬(G)의 열 수의 차이에 해당하는 것을 특징으로 하는 인코딩방법.
- 코드(C)의 손상되어 있을 수도 있는 코드어들(r)을 정보심볼들(m1, m2, …, mk)을 포함하는 정보어들(m)로 디코딩하되, 상기 정보어들(m)이 생성자 행렬(G)을 사용하여 상기 코드(C)의 코드어들(c)로 인코딩되고, 적어도 1개의 정보심볼(m1, m2, m3)이 디코딩하기 전에 사전에 알려진 경우에, 상기 코드(C)에 향상된 에러정정 성능이 제공되는 디코딩 방법에 있어서,상기 정보어들(m)은 청구항 1의 방법에 따라 선택된 생성자 행렬(G)을 사용하여 상기 코드어들(c)로 인코딩되고, 향상된 에러정정 성능을 갖는 상기 손상되어 있을 수도 있는 코드어(r)를 디코딩하기 위해, 상기 손상되어 있을 수도 있는 코드어(r)에 포함된 상기 적어도 1개의 사전에 알려진 정보심볼(m1, m2, m3)의 기여값을 참작하는 것을 특징으로 하는 디코딩방법.
- 제 12항에 있어서,a) 상기 코드(C)의 상기 생성자 행렬(G)의 대응하는 행들을 사용하여 상기 사전에 알려진 정보심볼들(m1, m2, m3)을 인코딩하는 단계와,b) 중간 워드(s)를 나타내는 인코딩 단계의 결과값을 가산하는 단계와,c) 디코딩하려는 상기 손상되어 있을 수도 있는 코드어(r)로부터 상기 중간 워드(s)를 감산하는 단계와,d) 상기 감산의 결과값을 디코딩하여, 상기 사전에 알려진 정보심볼들에 대응하지 않는 생성자 행렬(G)의 행들에 의해 발생된 코드를 디코딩하는 단계와,e) 정보어(m)를 복원하는 단계를 포함하는 것을 특징으로 하는 디코딩방법.
- 제 12항에 있어서,a) 손상되어 있을 수도 있는 수신된 코드어(r)로부터 신드롬들(S)을 생성하는 단계와,b) 상기 사전에 알려진 정보심볼들(m5, m6, …, mkmax)과 상기 손상되어 있을 수도 있는 코드어(r)를 사용하여 추가적인 신드롬들(S')을 생성하는 단계와,c) 상기 신드롬들(S)과 추가적인 신드롬들(S')을 사용하여 정보어(m)를 계산하는 단계를 포함하는 것을 특징으로 하는 디코딩방법.
- 제 14항에 있어서,정보어는,c1) 상기 신드롬들(S)과 추가적인 신드롬들(S')을 사용하여 에러 위치들과 에러값들을 계산하여 코드어(c)를 얻는 단계와,c2) 상기 얻어진 코드어(c)로부터 정보어(m)를 추출하는 단계를 포함하는 단계에 의해 계산되는 것을 특징으로 하는 디코딩방법.
- 제 12항에 있어서,상기 생성자 행렬(G)보다 적어도 1개 많은 열을 갖고, 한 개의 제로값이 아닌 엔트리를 갖는 상기 적어도 1개의 열을 생략함으로써 증가된 최소 해밍거리를 갖는 코드를 발생하는 더 큰 중간 생성자 행렬(G")로부터 유도된 생성자 행렬(G)은, 상기 정보어들(m)을 상기 코드어들(c)로 인코딩하는데 사용되고,a) 상기 중간 생성자 행렬(G")에서 삭제된 상기 열들에 대응하는 위치에 소거 부분들을 추가함으로써, 상기 손상되어 있을 수도 있는 코드어(r)를 의사 코드어(r')로 신장하여, 상기 생성자 행렬(G)을 얻는 단계와,b) 상기 사전에 알려진 정보심볼들(m1, m2, m3)에 대응하는 위치에 있는 소거 부분들을 사전에 알려진 정보심볼들로 교체하여 제 2 의사 코드어(r")를 얻는 단계와,c) 상기 제 2 의사 코드어(r")를 디코딩하여, 상기 중간 생성자 행렬(G")에 의해 발생된 코드의 에러 및 소거 디코딩을 수행하는 단계를 포함하는 것을 특징으로 하는 디코딩방법.
- 삭제
- 삭제
- 삭제
- 삭제
- 손상되어 있을 수도 있는 수신된 코드어들(r)을 디코딩하는 디코더에 적어도 1개의 정보심볼(m1, m2, m3)이 사전에 알려진 경우에, 향상된 에러정정 성능을 제공하기 위해 복수의 정보심볼(m1, m2, …, mk)을 포함하는 정보어들(m)을 코드(C)의 코드어들(c)로 인코딩하는 장치에 있어서,청구항 1에 기재된 방법에 따라 선택된 생성자 행렬(G)를 사용하여 상기 정보어들(m)을 상기 코드어들(c)로 인코딩하는 수단을 구비한 것을 특징으로 하는 인코딩장치.
- 코드(C)의 손상되어 있을 수도 있는 코드어들(r)을 정보심볼들(m1, m2, …, mk)을 포함하는 정보어들(m)로 디코딩하되, 상기 정보어들(m)이 청구항 1에 기재된 방법에 의해 선택된 생성자 행렬(G)을 사용하여 상기 코드(C)의 코드어들(c)로 인코딩되고, 적어도 1개의 정보심볼(m1, m2, m3)이 디코딩하기 전에 사전에 알려진 경우에, 상기 코드(C)에 향상된 에러정정 성능이 제공되며, 향상된 에러정정 성능을 갖는 상기 손상되어 있을 수도 있는 코드어(r)를 디코딩하기 위해, 상기 손상되어 있을 수도 있는 코드어(r)에 포함된 상기 적어도 1개의 사전에 알려진 정보심볼(m1, m2, m3)의 기여값을 참작하는 수단을 구비한 것을 특징으로 하는 디코딩장치.
- 삭제
- 삭제
- 사용자 데이터를 기록하는 데이터 기록매체에 있어서,상기 데이터 기록매체가 청구항 7에 기재된 방법에 의해 인코딩된 저장된 시스템 데이터 항목들을 구비하고,상기 시스템 데이터 항목들은, 상기 데이터 기록매체 상의 특정한 위치를 찾는데 사용되는 어드레스 데이터 및 타이밍 데이터 중 적어도 하나를 포함하는 것을 특징으로 하는 데이터 기록매체.
- 삭제
- 제 1 항에 있어서,상기 정보어들(m)은 데이터 항목들을 포함하고, 연속적인 정보어들은 소정의 대응하는 데이터 항목을 가져, 첫 번째 데이터 항목을 포함하는 첫 번째 정보어를 알면, 다음 정보어들에 포함된 1개 이상의 연속적인 데이터 항목들의 데이터 항목 성분들을 알게 되는 것을 특징으로 하는 선택방법.
- 제 29항에 있어서,상기 정보어들(m)은, 어드레스 정보를 포함하는 것을 특징으로 하는 선택방법.
- 제 30항에 있어서,상기 정보어들(m)은, 직렬 데이터 스트림 내부의 위치들 및 데이터 매체 상의 위치들중 적어도 하나의 위치의 어드레스 정보를 포함하는 것을 특징으로 하는 선택방법.
- 제 30항에 있어서,상기 방법은, 어드레스 정보를 워블신호로 데이터 매체 상에 저장되는 워블 코드로 인코딩하기 위해 디지털 비디오 레코딩에서 사용되는 것을 특징으로 하는 선택방법.
- 제 30항에 있어서,상기 어드레스 정보의 상기 정보어들(m)은, 다중 비트 정보심볼들을 포함하는 것을 특징으로 하는 선택방법.
- 제 7 항에 있어서,상기 정보어들(m)은 데이터 항목들을 포함하고, 연속적인 정보어들은 소정의 대응하는 데이터 항목을 가져, 첫 번째 데이터 항목을 포함하는 첫 번째 정보어를 알면, 다음 정보어들에 포함된 1개 이상의 연속적인 데이터 항목들의 데이터 항목 성분들을 알게 되는 것을 특징으로 하는 인코딩방법.
- 제 34항에 있어서,상기 정보어들(m)은, 어드레스 정보를 포함하는 것을 특징으로 하는 인코딩방법.
- 제 35항에 있어서,상기 정보어들(m)은, 직렬 데이터 스트림 내부의 위치들 및 데이터 매체 상의 위치들중 적어도 하나의 위치의 어드레스 정보를 포함하는 것을 특징으로 하는 인코딩방법.
- 제 35항에 있어서,상기 방법은, 어드레스 정보를 워블신호로 데이터 매체 상에 저장되는 워블 코드로 인코딩하기 위해 디지털 비디오 레코딩에서 사용되는 것을 특징으로 하는 인코딩방법.
- 제 35항에 있어서,상기 어드레스 정보의 상기 정보어들(m)은, 다중 비트 정보심볼들을 포함하는 것을 특징으로 하는 인코딩방법.
- 제 12 항에 있어서,상기 정보어들(m)은 데이터 항목들을 포함하고, 연속적인 정보어들은 소정의 대응하는 데이터 항목을 가져, 첫 번째 데이터 항목을 포함하는 첫 번째 정보어를 알면, 다음 정보어들에 포함된 1개 이상의 연속적인 데이터 항목들의 데이터 항목 성분들을 알게 되는 것을 특징으로 하는 디코딩방법.
- 제 39항에 있어서,상기 정보어들(m)은, 어드레스 정보를 포함하는 것을 특징으로 하는 디코딩방법.
- 제 40항에 있어서,상기 정보어들(m)은, 직렬 데이터 스트림 내부의 위치들 및 데이터 매체 상의 위치들 중 적어도 하나의 위치의 어드레스 정보를 포함하는 것을 특징으로 하는 디코딩방법.
- 제 40항에 있어서,상기 방법은, 어드레스 정보를 워블신호로 데이터 매체 상에 저장되는 워블 코드로 인코딩하기 위해 디지털 비디오 레코딩에서 사용되는 것을 특징으로 하는 디코딩방법.
- 제 40항에 있어서,상기 어드레스 정보의 상기 정보어들(m)은, 다중 비트 정보심볼들을 포함하는 것을 특징으로 하는 디코딩방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP01201841 | 2001-05-16 | ||
EP01201841.2 | 2001-05-16 | ||
PCT/IB2002/001624 WO2002093754A1 (en) | 2001-05-16 | 2002-05-08 | Coding and decoding of partially a priori known information |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20030016410A KR20030016410A (ko) | 2003-02-26 |
KR100913965B1 true KR100913965B1 (ko) | 2009-08-25 |
Family
ID=8180322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020037000666A KR100913965B1 (ko) | 2001-05-16 | 2002-05-08 | 일부가 사전에 알려진 정보의 코딩 및 디코딩 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7103829B2 (ko) |
EP (1) | EP1393454A1 (ko) |
JP (1) | JP4194850B2 (ko) |
KR (1) | KR100913965B1 (ko) |
CN (1) | CN100557984C (ko) |
WO (1) | WO2002093754A1 (ko) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6996249B2 (en) * | 2002-01-11 | 2006-02-07 | Nec Laboratories America, Inc. | Applying informed coding, informed embedding and perceptual shaping to design a robust, high-capacity watermark |
TWI257085B (en) * | 2002-01-21 | 2006-06-21 | Koninkl Philips Electronics Nv | Method of encoding and decoding |
KR20040094436A (ko) * | 2002-03-08 | 2004-11-09 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 절단된 코드어의 결합 디코딩방법 |
US7218255B1 (en) * | 2002-12-04 | 2007-05-15 | Marvell International Ltd. | Methods and apparatus for improving minimum Hamming weights of a sequence |
US7158058B1 (en) | 2002-12-09 | 2007-01-02 | Marvell International Ltd. | Method and apparatus for generating a seed set in a data dependent seed selector |
KR100896684B1 (ko) | 2004-01-27 | 2009-05-14 | 삼성전자주식회사 | 수신 성능이 향상된 디지털 방송 송수신 시스템 및 그의신호처리방법 |
US8374284B2 (en) * | 2004-02-12 | 2013-02-12 | Apple, Inc. | Universal decoder |
GB2413652A (en) * | 2004-04-28 | 2005-11-02 | David Hostettler Wain | 7/4 Hamming error correction |
KR100692596B1 (ko) | 2004-05-06 | 2007-03-13 | 삼성전자주식회사 | 수신 성능이 향상된 디지털 방송 송수신 시스템 및 그의신호처리방법 |
US7325183B2 (en) * | 2004-07-21 | 2008-01-29 | Hewlett-Packard Development Company, L.P. | Error correction code generation method and apparatus |
EP1641128A1 (en) * | 2004-09-22 | 2006-03-29 | STMicroelectronics N.V. | Method and device for delivering punctured code words encoded with a LDPC code. |
TWI273775B (en) * | 2005-06-17 | 2007-02-11 | Mediatek Inc | Method for generating syndrome value and related syndrome generator |
CN101258685A (zh) * | 2005-07-20 | 2008-09-03 | 诺基亚公司 | 用于ofdm***的自适应多级分组编码调制 |
US20070283223A1 (en) * | 2006-06-01 | 2007-12-06 | International Business Machines Corporation | Systems, methods, and computer program products for providing a two-bit symbol bus error correcting code with all checkbits transferred last |
US20070283208A1 (en) * | 2006-06-01 | 2007-12-06 | International Business Machines Corporation | Systems, methods, and computer program products for providing a two-bit symbol bus error correcting code with bus diagnostic features |
US20070283207A1 (en) * | 2006-06-01 | 2007-12-06 | International Business Machines Corporation | Systems, methods, and computer program products for providing a two-bit symbol bus error correcting code with bus timing improvements |
US7721178B2 (en) * | 2006-06-01 | 2010-05-18 | International Business Machines Corporation | Systems, methods, and computer program products for providing a two-bit symbol bus error correcting code |
KR100826511B1 (ko) | 2006-06-27 | 2008-05-02 | 삼성전자주식회사 | 스터핑 바이트를 이용하여 에러정정 능력을 높일 수 있는장치와 방법 |
KR100856129B1 (ko) * | 2006-12-29 | 2008-09-03 | 삼성전자주식회사 | 오정정 확률을 줄이는 에러 정정 회로, 그 방법 및 상기회로를 구비하는 반도체 메모리 장치 |
JP2008226300A (ja) | 2007-03-09 | 2008-09-25 | Nec Electronics Corp | 復号方法及び復号回路 |
KR100852193B1 (ko) * | 2007-05-02 | 2008-08-13 | 삼성전자주식회사 | 오류 제어 코드 장치 및 그 방법 |
MX2010004148A (es) | 2007-10-15 | 2010-05-17 | Thomson Licensing | Aparatos y metodos para comunicar actividad de modo de rafaga. |
KR101366284B1 (ko) * | 2007-11-13 | 2014-02-20 | 엘지전자 주식회사 | 골레이 부호를 이용한 블록 부호 생성 방법, 데이터 부호화방법 및 데이터 부호화 장치 |
KR200449830Y1 (ko) * | 2008-07-03 | 2010-08-12 | 박정주 | 복수날도구용 고정구 |
FR2935859B1 (fr) * | 2008-09-08 | 2010-11-05 | Centre Nat Rech Scient | Procede cryptographique de generation d'une clef publique |
US8352837B1 (en) * | 2009-03-20 | 2013-01-08 | Marvell International Ltd. | System and methods for storing data encoded with error information in a storage medium |
US8406354B2 (en) * | 2009-07-01 | 2013-03-26 | Telefonaktiebolaget L M Ericsson (Publ) | Interference cancellation in a multi-user receiver |
FR2983665B1 (fr) * | 2011-12-02 | 2014-06-20 | Commissariat Energie Atomique | Procede de generation d'un code correcteur lineaire maximise, procede et dispositif de decodage d'un tel code |
US9459955B2 (en) * | 2012-05-24 | 2016-10-04 | Sandisk Technologies Llc | System and method to scramble data based on a scramble key |
CN108292925A (zh) * | 2015-11-02 | 2018-07-17 | 华为技术有限公司 | 通过使用m阶GEL码对数据进行编码/解码的方法与设备 |
US10866857B2 (en) * | 2017-10-09 | 2020-12-15 | Tsofun Algorithms Ltd. | Encoding and decoding of permuted cyclic codes |
CN108564972B (zh) * | 2018-03-14 | 2020-05-29 | 广东紫晶信息存储技术股份有限公司 | 一种用于光盘数据存储的冗余恢复码纠错方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5051998A (en) | 1988-06-28 | 1991-09-24 | Matsushita Electric Industrial Co., Ltd. | Data block deinterleaving and error correction system |
US5872798A (en) | 1994-02-16 | 1999-02-16 | U.S. Philips Corporation | Error correctable data transmission method and device based on semi-cyclic codes |
EP1033843A2 (en) * | 1999-03-04 | 2000-09-06 | Lucent Technologies Inc. | Error control coding for transmission equipment protection |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL8200560A (nl) * | 1982-02-15 | 1983-09-01 | Philips Nv | Stelsel voor kommunikatie middels herhaald uitgezonden berichten alsmede stations voor gebruik in zo een stelsel. |
DE69317867T2 (de) * | 1992-12-14 | 1998-10-22 | Koninkl Philips Electronics Nv | Verfahren und Vorrichtung zur Realisierung eines Quasiproduktkodes mit verschiedenen Fehlerschutzstufen |
CA2131674A1 (en) * | 1993-09-10 | 1995-03-11 | Kalyan Ganesan | High performance error control coding in channel encoders and decoders |
US6301221B1 (en) * | 1997-09-10 | 2001-10-09 | Hewlett-Packard Company | Methods and apparatus for encoding data |
EP0924909A1 (en) * | 1997-12-17 | 1999-06-23 | Hewlett-Packard Company | Methods and apparatus for decoding DOFDM-data |
-
2002
- 2002-05-08 JP JP2002590512A patent/JP4194850B2/ja not_active Expired - Fee Related
- 2002-05-08 EP EP02727881A patent/EP1393454A1/en not_active Withdrawn
- 2002-05-08 CN CNB028023854A patent/CN100557984C/zh not_active Expired - Fee Related
- 2002-05-08 KR KR1020037000666A patent/KR100913965B1/ko not_active IP Right Cessation
- 2002-05-08 WO PCT/IB2002/001624 patent/WO2002093754A1/en active Application Filing
- 2002-05-13 US US10/144,529 patent/US7103829B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5051998A (en) | 1988-06-28 | 1991-09-24 | Matsushita Electric Industrial Co., Ltd. | Data block deinterleaving and error correction system |
US5872798A (en) | 1994-02-16 | 1999-02-16 | U.S. Philips Corporation | Error correctable data transmission method and device based on semi-cyclic codes |
EP1033843A2 (en) * | 1999-03-04 | 2000-09-06 | Lucent Technologies Inc. | Error control coding for transmission equipment protection |
Non-Patent Citations (1)
Title |
---|
Van Dijk et al., Coding for informed decoders, Proc. of IEEE symposium on information theory, pp.202, 2001 |
Also Published As
Publication number | Publication date |
---|---|
JP4194850B2 (ja) | 2008-12-10 |
WO2002093754A1 (en) | 2002-11-21 |
US20030066014A1 (en) | 2003-04-03 |
CN100557984C (zh) | 2009-11-04 |
EP1393454A1 (en) | 2004-03-03 |
JP2004520679A (ja) | 2004-07-08 |
CN1465140A (zh) | 2003-12-31 |
KR20030016410A (ko) | 2003-02-26 |
US7103829B2 (en) | 2006-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100913965B1 (ko) | 일부가 사전에 알려진 정보의 코딩 및 디코딩 | |
JP4098245B2 (ja) | 符号化及び復号化の方法 | |
US5224106A (en) | Multi-level error correction system | |
US20060248427A1 (en) | Optical disk device and data randomizing method for optical disk drive | |
JP2005500730A (ja) | 復号器に情報が与えられる場合の改良された符号化 | |
WO1999005793A1 (en) | Concurrent row/column syndrome generator for a product code | |
KR20040093748A (ko) | 오류정정의 추가층을 오류정정코드 내에 삽입하는 방법 및장치 | |
JP2002008325A (ja) | 情報記録再生方法およびこれを用いた情報記録再生回路装置 | |
US7340663B2 (en) | Method and apparatus for embedding an additional layer of error correction into an error correcting code | |
JP2000503513A (ja) | 変形リードソロモン符号選択および符号化システム | |
JP4527255B2 (ja) | 同期エラーを検出するためのシステムおよび方法 | |
JP3810765B2 (ja) | 複雑度を減らしたコードテーブルを使用する復調装置及びその方法 | |
US7487429B2 (en) | Simple decoding method and apparatus | |
US5889794A (en) | Two-level error correction encoder | |
JP4135497B2 (ja) | データ再生方法及びデータ再生装置 | |
US7185263B2 (en) | Method of joint decoding of possibly mutilated code words | |
TWI317212B (en) | Coding for informed decoders | |
JP2002222524A (ja) | 光ディスク装置および光ディスク装置用データランダム化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
J201 | Request for trial against refusal decision | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20120816 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20130814 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20150811 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20160809 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20170809 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |