KR101143732B1 - 복호 방법 및 복호 장치, 기록 재생 장치 및 방법과, 재생 장치 및 방법 - Google Patents
복호 방법 및 복호 장치, 기록 재생 장치 및 방법과, 재생 장치 및 방법 Download PDFInfo
- Publication number
- KR101143732B1 KR101143732B1 KR1020057001762A KR20057001762A KR101143732B1 KR 101143732 B1 KR101143732 B1 KR 101143732B1 KR 1020057001762 A KR1020057001762 A KR 1020057001762A KR 20057001762 A KR20057001762 A KR 20057001762A KR 101143732 B1 KR101143732 B1 KR 101143732B1
- Authority
- KR
- South Korea
- Prior art keywords
- decoding
- check matrix
- linear
- recording
- parity check
- Prior art date
Links
Images
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
- 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
-
- 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/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- 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/1866—Error detection or correction; Testing, e.g. of drop-outs by interleaving
-
- 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/11—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 using multiple parity 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/11—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 using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
-
- 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/11—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 using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1191—Codes on graphs other than LDPC codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/19—Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming 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/2933—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 a block and a convolutional code
- H03M13/2936—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 a block and a convolutional code comprising an outer Reed-Solomon code and an inner convolutional code
-
- 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
- G11B2020/1836—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information using a Reed Solomon [RS] code
-
- 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
-
- 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/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/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
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)
Abstract
본 발명은, 환 R 상의 선형 부호에 의해 부호화한 부호화 데이터를 복호하는 경우에 이용하기에 적합한, 복호 방법 및 복호 장치, 프로그램, 기록 재생 장치 및 방법과, 재생 장치 및 방법에 관한 것이다. 저밀도화 처리부는, 단계 S21에서, 패리티 검사 행렬 저밀도화 처리를 실행하고, 취득한 수신어에 포함되는 패리티 검사 행렬의 행에 대하여 선형 결합을 행하고, 선형 결합 결과로부터 패리티 검사 행렬을 생성함으로써, 복호에 이용되는 패리티 검사 행렬의 밀도를 성기게 한다. 그리고, 단계 S22에서, LDPC 복호부는, 단계 S21의 처리에 의해 저밀도화된 패리티 검사 행렬을 이용하여, 섬 프로덕트 알고리즘(SRA)을 이용한 복호 처리를 행한다. 단계 S22의 처리가 종료하면, LDPC 복호부는, 그 수신어에 대한 복호 처리를 종료한다. 본 발명은, 오류 정정 시스템에 적용할 수 있다.
패리티 검사 행렬, 섬 프로덕트 알고리즘, 수신어, 저밀도화, 복호
Description
본 발명은, 복호 방법 및 복호 장치, 프로그램, 기록 재생 장치 및 방법과, 재생 장치 및 방법에 관한 것으로, 특히, 환 R 상의 선형 부호에 의해 부호화한 부호화 데이터를 복호하는 경우에 이용하기에 적합한, 복호 방법 및 복호 장치, 프로그램, 기록 재생 장치 및 방법과, 재생 장치 및 방법에 관한 것이다.
최근, 예를 들면, 이동체 통신이나 심우주 통신이라는 통신 분야, 및 지상파 또는 위성 디지털 방송이라는 방송 분야의 연구가 현저히 진행되고 있지만, 그에 수반하여, 오류 정정 부호화 및 복호의 효율화를 목적으로 부호 이론에 관한 연구도 활발히 행해지고 있다.
부호 성능의 이론적 한계로서는, 소위 샤논(C.E.Shannon)의 통신로 부호화 정리에 의해서 주어지는 샤논 한계가 알려져 있다. 부호 이론에 관한 연구는, 이 샤논 한계에 가까운 성능을 나타내는 부호를 개발하는 것을 목적으로 행해지고 있다. 최근에는, 샤논 한계에 가까운 성능을 나타내는 부호화 방법으로서, 예를 들면, 병렬 연접 컨볼루션 부호(PCCC(Parallel Concatenated Convolutional Codes)) 나, 종렬 연접 컨볼루션 부호(SCCC(Serially Concatenated Convolutional Codes))라는, 소위 터보 부호화(Turbo coding)라고 불리는 방법이 개발되어 있다. 또한, 이들 터보 부호가 개발되는 한편, 오래전부터 알려져 있는 부호화 방법인 저밀도 패리티 검사 부호(Low Density Parity Check codes)(이하, LDPC 부호라 함)가 각광을 받고 있다.
LDPC 부호는, R.G.Gallager에 의한 「R.G.Gallager, "Low Density Parity Check Codes", Cambridge, Massachusetts:M.I.T.Press, 1963」에 있어서 최초로 제안된 것으로, 그 후, 「D.J.C.MacKay, "Good error correcting codes based on very sparse matrices", Submitted to IEEE Trans.Inf.Theory, IT-45, pp.399-431, 1999」나, 「M.G.Luby, M.Mitzenmacher, M.A.Shokrollahi and D.A.Spielman, "Analysis of low density codes and improved designs using irregular graphs", in Proceedings of ACM Symposium on Theory of Computing, pp.249-258, 1998」 등에 있어서 재주목받기에 이른 것이다.
LDPC 부호는, 최근의 연구에 의해, 터보 부호 등과 마찬가지로, 부호 길이를 길게 해 감에 따라서, 샤논 한계에 가까운 성능을 얻을 수 있음을 알수 있게 되어다. 또한, LDPC 부호는, 최소 거리가 부호 길이에 비례한다는 성질이 있는 것으로부터, 그 특징으로서, 블록 오류 확률 특성이 좋고, 또한, 터보 부호 등의 복호 특성에 있어서 관측되는, 소위 에러 플로어 현상이 거의 발생하지 않는 것도 이점으로 들 수 있다.
이하, 이러한 LDPC 부호에 대하여 구체적으로 설명한다. 또한, LDPC 부호 는, 선형 부호이고, 반드시 2원일 필요는 없지만, 여기서는, 2원인 것으로 하여 설명한다.
LDPC 부호는, 그 LDPC 부호를 정의하는 검사 행렬(parity check matrix)가 성긴 것인 것을 최대의 특징으로 하는 것이다. 여기서, 성긴 행렬이란, 행렬의 콤포넌트의 "1"의 개수가 매우 적게 구성되는 것으로, 성긴 검사 행렬을 H로 나타내는 것으로 하면, 그와 같은 검사 행렬로는, 예를 들면, 도 1에 도시되는 HLDPC와 같이, 각 행의 허밍 가중치("1"의 수)(weight)가 "2"이고, 또한, 각 열의 허밍 가중치가 "4"인 것 등이 있다.
이와 같이, 각 행 및 각 열의 허밍 가중치가 일정한 검사 행렬 H에 의해서 정의되는 LDPC 부호는, 레귤러 LDPC 부호라고 불린다. 한편, 각 행 및 각 열의 허밍 가중치가 일정하지 않은 검사 행렬 H에 의해서 정의되는 LDPC 부호는, 이레귤러 LDPC 부호라고 불린다.
이러한 LDPC 부호에 의한 부호화는, 검사 행렬 H에 기초하여 생성 행렬 G를 생성하고, 이 생성 행렬 G를 2원의 정보 메시지에 대하여 승산함으로써 부호어를 생성하는 것으로 실현된다. 구체적으로는, LDPC 부호에 의한 부호화를 행하는 부호화 장치는, 우선, 검사 행렬 H의 전치 행렬 HT와의 사이에, 식 GHT=0이 성립하는 생성 행렬 G를 산출한다. 여기서, 생성 행렬 G가 k×n 행렬인 경우에는, 부호화 장치는 생성 행렬 G에 대하여 k 비트로 이루어지는 정보 메시지(벡터 u)를 승산하여, n 비트로 이루어지는 부호어 c(=uG)를 생성한다. 이 부호화 장치에 의해서 생 성된 부호어는, 값이 "0"인 부호 비트가 "+1"로, 값이 "1"인 부호 비트가 "1"로와 같이 맵핑되어 송신되고, 소정의 통신로를 통해 수신측에서 수신되어지게 된다.
한편, LDPC 부호의 복호는, Gallager가 확률 복호(Probabilistic Dccoding)라 칭하여 제안한 알고리즘으로, 베리어블 노드(variable node(메시지 노드(message node)라고도 함))와, 체크 노드(check node)로 이루어지는, 소위 태너 그래프(Tanner graph) 상에서의 확률 전파(belief propagation)에 의한 메시지 패싱 알고리즘에 의해서 행할 수 있다. 여기서, 이하, 적절하게, 베리어블 노드와 체크 노드를, 단순히 노드라고도 한다.
예를 들면, 도 1에 도시되는 패리티 검사 행렬 HLDPC는, 도 2에 도시되는 바와 같은 태너 그래프에 의해서 표시된다. 도 2의 태너 그래프는, 도 1의 패리티 검사 행렬 HLDPC의 각 열을 베리어블 노드, 각 행을 체크 노드로 하고, 패리티 검사 행렬 HLDPC의 값이「1」인 i행 j열의 요소에 대하여, j번째의 베리어블 노드와 i번째의 체크 노드를 엣지(edge)로 하여 연결하고 있다.
그러나, 확률 복호에 있어서는, 각 노드 사이에서 교환되는 메시지가 실수값이기 때문에, 해석적으로 풀기 위해서는, 연속된 값을 취하는 메시지의 확률 분포 그 자체를 추적할 필요가 있어, 매우 어려움을 수반하는 해석을 필요로 하게 된다. 따라서, Gallager는, LDPC 부호의 복호 알고리즘으로서, 알고리즘 A 또는 알고리즘 B를 제안하고 있다.
LDPC 부호의 복호는, 일반적으로는, 도 2에 도시한 바와 같은 수순에 따라서 행해진다. 또한, 여기서는, 수신값(수신한 부호 계열)을 U0(U0i)로 하고, 체크 노드로부터 출력되는 메시지를 Uj로 하고, 베리어블 노드로부터 출력되는 메시지를 vi로 한다. 또한, 여기서는, 메시지란, 값이 "O"인 것 같은 것을, 소위 대수 우도비(log likelihood ratio)로 표현한 실수값이다.
LDPC 부호의 복호는, 일반적으로는, 도 3에 도시한 바와 같은 수순에 따라서 행해진다. 또한, 여기서는, 수신값(수신한 부호 계열)을 U0(U0i)로 하고, 체크 노드로부터 출력되는 메시지를 Uj로 하고, 베리어블 노드로부터 출력되는 메시지를 vi로 한다. 또한, 여기서는, 메시지란, 값이 "0"인 것 같은 것을, 소위 대수 우도비(log likelihood ratio)로 표현한 실수값이다.
우선, LDPC 부호의 복호에 있어서는, 도 3에 도시한 바와 같이, 단계 S1에서, 수신값 U0(U0i)가 수신되고, 메시지 uj가 "O"에 초기화됨과 함께, 반복 처리의 카운터로서의 정수를 취하는 변수 k가 "0"으로 초기화되고, 단계 S2로 진행한다. 단계 S2에서, 수신값 U0(u0i)에 기초하여, 수학식 1에 나타내는 연산(베리어블 노드의 연산)을 행함으로써 메시지 vi이 구해지고, 또한, 이 메시지 vi에 기초하여, 수학식 2에 나타내는 연산(체크 노드의 연산)을 행함으로써 메시지 uj가 구해진다.
여기서, 수학식 1과 수학식 2에서의 dv와 dc는, 각각, 검사 행렬 H의 세로 방향(열)과 가로 방향(행)의 "1"의 개수를 나타내는 임의로 선택 가능하게 되는 파라미터로서, 예를 들면, (3,6) 부호의 경우에는, dv=3, dc=6으로 된다.
또한, 수학식 1 또는 수학식 2의 연산에서는, 각각, 메시지를 출력하고자 하는 브랜치(edge)(베리어블 노드와 체크 노드를 연결하는 선)로부터 입력된 메시지를, 합 또는 곱 연산의 파라미터로는 이용하지 않기 때문에, 합 또는 곱 연산의 범위가, 1 내지 dv-1 또는 1 내지 dc-1로 되어 있다. 또한, 수학식 2에 나타내는 연산은, 실제로는, 2입력 v1, v2에 대한 1출력으로 정의되는 수학식 3에 나타내는 함수 R(v1, v2)의 테이블을 미리 작성해 두고, 이를 수학식 4에 나타낸 바와 같이 연속적(재귀적)으로 이용함으로써 행해진다.
단계 S2에서는, 또한, 변수 k가 "1"만큼 인크리먼트되고, 단계 S3으로 진행한다. 단계 S3에서는, 변수 k가 소정의 반복 복호 횟수 N보다도 큰지의 여부가 판 정된다. 단계 S3에서, 변수 k가 N보다도 크지 않다고 판정된 경우, 단계 S2로 되돌아가, 이하, 마찬가지의 처리가 반복된다.
또한, 단계 S3에서, 변수 k가 N보다도 크다고 판정된 경우, 단계 S4로 진행하여, 수학식 5에 나타내는 연산을 행함으로써 최종적으로 출력하는 복호 결과로서의 메시지 vi가 구해져서 출력되고, LDPC 부호의 복호 처리가 종료한다.
여기서, 수학식 5의 연산은, 수학식 1의 연산과는 달리, 베리어블 노드에 접속하고 있는 모든 브랜치로부터의 입력 메시지를 이용하여 행해진다.
이러한 LDPC 부호의 복호는, 예를 들면, (3, 6) 부호의 경우에는, 도 4에 도시한 바와 같이, 각 노드 사이에서 메시지의 교환이 행해진다. 또한, 도 4에서의 "="로 나타내는 노드(베리어블 노드)에서는, 수학식 1에 나타낸 연산이 행해지고, "+"로 나타내는 노드(체크 노드)에서는, 수학식 2에 나타낸 연산이 행해진다. 특히, 알고리즘 A에서는, 메시지를 2원화하여, "+"로 나타내는 노드에서, dc-1개의 입력 메시지의 배타적 논리합 연산을 행하고, "="로 나타내는 노드에서, 수신값 R에 대하여, dv-1개의 입력 메시지가 모두 서로 다른 비트값이었던 경우에는, 부호를 반전하여 출력한다.
또한, 한편으로, 최근, LDPC 부호의 복호의 실장법에 관한 연구도 행해지고 있다. 실장 방법에 대하여 설명하기 전에, 우선, LDPC 부호의 복호를 모식화하여 설명한다.
도 5는, (3, 6) LDPC 부호(부호화율 1/2, 부호 길이 12)의 검사 행렬(parity check matrix)의 예이다. LDPC 부호의 검사 행렬은, 도 6과 같이, 태너 그래프를 이용하여 써서 나타낼 수 있다. 여기서, 도 6에서, "+"로 표시되는 것이 체크 노드이고, "="로 표시되는 것이 베리어블 노드이다. 체크 노드와 베리어블 노드는, 각각, 검사 행렬의 행과 열에 대응한다. 체크 노드와 베리어블 노드 사이의 결선은, 브랜치(edge)이고, 검사 행렬의 "1"에 상당한다. 즉, 검사 행렬의 제 j행 제 i열의 콤포넌트가 1인 경우에는, 도 6에서, 위에서부터 i번째의 베리어블 노드("="의 노드)와, 위에서부터 j번째의 체크 노드("+"의 노드)가, 브랜치에 의해 접속된다. 브랜치는, 베리어블 노드에 대응하는 부호 비트가, 체크 노드에 대응하는 구속 조건을 갖는 것을 나타낸다. 또한, 도 6은, 도 5의 검사 행렬의 태너 그래프로 되어 있다.
LDPC 부호의 복호 방법으로서는, 섬 프로덕트 알고리즘(Sum Product Algorithm)이 있다(예를 들면, 「와다야마 타다시, "저밀도 패리티 검사 부호와 sum-product 알고리즘에 대하여", [online], 평성 13년 6월 22일 오카야마 현립 대학, [평성 15년 5월 19일 검색], 인터넷, <URL:http://vega.c.oka-pu.ac.jp/~wadayama/pdf/LDPC.pdf>」 참조).
이 섬 프로덕트 알고리즘에서는, 베리어블 노드의 연산과 체크 노드의 연산이 반복하여 행해진다.
베리어블 노드에서는, 도 7과 같이, 수학식 1의 연산(베리어블 노드 연산)을 행한다. 즉, 도 7에서, 계산하고자 하는 브랜치에 대응하는 메시지 vi는, 베리어블 노드에 연결되어 있는 나머지 브랜치로부터의 메시지 u1 및 u2와, 수신 정보 u0i
를 이용하여 계산된다. 다른 브랜치에 대응하는 메시지도 마찬가지로 계산된다.
다음으로, 체크 노드의 연산에 대하여 설명하기 전에, 수학식 2를, 식 a×b=exp{1n(|a|)+1n(|b|)}×sign(a)×sign(b)의 관계를 이용하여, 수학식 6과 같이 다시 쓴다. 단, sign(x)는, x≥O일 때 1이고, x<O일 때 -1이다.
또한, x≥0에서, φ(x)=1n(tanh(x/2))로 정의하면, φ-1(x)=2tanh-1(e-x)이기 때문에, 수학식 6은 수학식 7과 같이 쓸 수 있다.
체크 노드에서는, 도 8과 같이, 수학식 7의 연산(체크 노드 연산)을 행한다. 즉, 도 8에서, 계산하고자 하는 브랜치에 대응하는 메시지 uj는, 체크 노드에 연결되어 있는 나머지 브랜치로부터의 메세지 v1, v2, v3, v4, v
5를 이용하여 계산된다. 다른 브랜치에 대응하는 메시지도 마찬가지로 계산된다.
또한, 함수 φ(x)는, φ(x)=1n((ex+1)/(ex-1))로도 나타낼 수 있고, x>O에서, φ(x)=φ-1(x)이다. 함수 φ(x) 및 φ-1(x)를 하드웨어에 실장할 때에는, LUT(Look Up Table)를 이용하여 실장되는 경우가 있는데, 양자 모두 동일한 LUT로 된다.
섬 프로덕트 알고리즘을 하드웨어에 실장하는 경우, 수학식 1로 표시되는 베리어블 노드 연산 및 수학식 7로 표시되는 체크 노드 연산을, 적절한 회로 규모와 동작 주파수로 반복하여 행하는 것이 필요하다.
또한, 이러한 섬 프로덕트 알고리즘을 적용한 LDPC 부호의 연산 코스트의 산출 방법도 널리 알려져 있다(예를 들면, 「Matthew C.Davey, David J C MaoKay" Low Density Parity Check Codes over GF(q)"」 참조).
이상과 같이 섬 프로덕트 알고리즘(SPA)을 적응하여 양호한 복호 성능을 얻기 위해서는, 패리티 검사 행렬이 저밀도일 필요가 있다.
또한, 그 밖의 일반의 선형 부호, 예를 들면, 리드 솔로몬(Reed Solomon) 부호 등의 패리티 검사 행렬 H는, 정의체의 원시근을 α로 한 경우, 도 9와 같이 표시된다. 도 9에 도시된 바와 같이, 선형 부호의 패리티 검사 행렬 H는, 일반적으 로 저밀도가 아니다. 이러한 저밀도가 아닌 리드 솔로몬 부호에는, 유클리드(Euclid)의 알고리즘 등을 이용한 복호(이하, 통상 복호라 함)가 행해진다.
도 10은, 리드 솔로몬 부호를 이용하여 오류 정정을 행하는 오류 정정 시스템의 구성예를 나타내는 블록도이다. 도 10에 도시되는 오류 정정 시스템은, 예를 들면, 디지털 텔레비젼 등의 디지털 통신 시스템에 이용되는 시스템이다.
도 10의 오류 정정 시스템에서는, 송신측인 부호화 장치(10)로부터 송신된 디지털 정보가, 예를 들면, 인터넷으로 대표되는 통신로(21)를 통하여, 수신측인 복호 장치(30)에 공급된다.
부호화 장치(10)는, 외부로부터 공급된 송신용의 디지털 정보를, 리드 솔로몬 부호를 이용하여 부호화하는 리드 솔로몬 부호화부(11), 부호화된 디지털 정보의 재배열을 행하는 인터리버(12), 컨볼루션 부호화를 행하는 컨볼루션 부호화부(13), 및 통신로(21)를 통하여, 복호 장치(30)와 통신을 행하는 통신 처리부(14)로 이루어진다.
또한, 복호 장치(30)는, 통신로(21)를 통하여 공급된 송신어를 취득하는 통신 처리부(31), 취득한 송신어에 컨볼루션 복호를 행하는 컨볼루션 복호부(32), 재배열된 정보를 원래의 순서대로 되돌리는 디인터리버(33), 및 리드 솔로몬 복호(통상 복호)를 행하는 리드 솔로몬 복호부(34)로 이루어진다.
부호화 장치(10)의 외부로부터 공급된 송신용의 디지털 정보는, 부호화 장치(10)의 리드 솔로몬 부호화부(11)에서, 리드 솔로몬 부호화된 후, 인터리버(12)에 공급된다. 인터리버(12)는, 주로 통신로(21)에서 발생하는 버스트적 오류를 확산 시키기 위해서, 정보의 재배열(인터리빙)을 행한다. 리드 솔로몬 부호는, 복수 비트를 1심볼로 하는 오류 정정을 행하기 때문에, 인터리버(12)는, 심볼 단위로 버스트적 오류를 확산하는 심볼 인터리빙을 행한다.
재배열이 행해진 송신용의 디지털 정보는, 또한, 컨볼루션 부호화부(13)에 서, 복수의 정보 블록에 기초하여 순차적으로 부호 계열이 정해지는 컨볼루션 부호가 행해진다. 예를 들면, 구속 길이 K의 컨볼루션 부호화부(13)는, 인터리버(12)로부터 디지털 정보가 k 비트인 정보 블록마다 공급되면, 금회에 공급된 정보 블록뿐만 아니라, 과거에 공급된 정보 블록도 포함시킨 K개의 정보 블록에 기초하여, n 비트의 부호 블록으로 부호화한다.
그리고, 컨볼루션 부호화된 디지털 정보는, 통신 처리부(14)에서, 송신 가능한 데이터 형식으로 변환되어, 통신로(21)를 통하여 복호 장치(30)에 공급된다.
복호 장치(30)는, 통신 처리부(31)에서, 유선 또는 무선의 통신로(21)를 통하여 공급된 송신어를 취득한다. 취득된 송신어는, 컨볼루션 복호부(32)에 의해, 컨볼루션 복호가 행해진다. 디인터리버(33)는, 컨볼루션 복호된 정보를 취득하면, 부호화 장치(10)의 인터리버(12)에서 행해진 인터리빙에 대응한 방법으로 정보의 재배열을 행하고, 재배열된 정보를 원래의 순서로 되돌리는 처리(디인터리빙)를 행한다. 리드 솔로몬 복호부(34)는, 원래의 순서로 돌아간 디지털 정보에, 통상 복호에 의한 리드 솔로몬 복호 처리를 행하여, 부호화되기 전의 디지털 정보를 재현하고, 그 정보를 복호 장치(30)의 외부에 출력한다.
이상과 같이 하여, 도 10의 오류 정정 시스템은, 통신 시에 발생한 오류를 정정하여, 보다 정확한 통신을 행할 수 있도록 한다.
도 11은, 리드 솔로몬 부호를 이용하여 오류 정정을 행하는 오류 정정 시스템을 적용한 기록 재생 장치의 구성예를 나타내는 블록도이다. 도 11에 도시되는 기록 재생 장치는, 예를 들면, DVD(Digital Versatile Disc) 레코드 플레이어 등의 디지털 기록 매체의 기록 재생 장치이다.
도 11의 기록 재생 장치(50)는, 외부로부터 공급된 디지털 정보를, 부호화 처리부(60)에서 부호화하고, 기록 재생 처리부(70)에서 기록 매체(72)에 기록한다. 또한, 기록 재생 장치(50)는, 기록 매체(72)에 기록되어 있는 디지털 정보를, 기록 재생 처리부(70)에서 재생하고, 복호 처리부(80)에서 복호 처리를 행하여 원래의 디지털 정보를 취득하고, 그 정보를 외부에 출력한다.
부호화 처리부(60)는, 디지털 정보에 서로 다른 차원에 관한 리드 솔로몬 부호를 행하는 제1 리드 솔로몬 부호화부(61-1) 내지 제n 리드 솔로몬 부호화부(61-n)로 이루어진다.
기록 재생 처리부(70)는, 부호화 처리부(60)로부터 공급된 정보를 기록 매체(72)에 기록하는 기록부(71), 예를 들면, 광 디스크 등의 기록 매체(72), 기록 매체(72)에 기록되어 있는 정보를 재생하는 재생부(73)로 이루어진다.
또한, 복호 처리부(80)는, 부호화 처리부(60)에 대응하는 복호기로서, 디지털 정보에 서로 다른 차원에 관한 리드 솔로몬 복호(통상 복호)를 행하는 제1 리드 솔로몬 복호부(81-1) 내지 제n 리드 솔로몬 복호부(81-n)로 이루어진다.
부호화 처리부(60)의 외부로부터 공급된 디지털 정보는, 제1 리드 솔로몬 부 호화부(61-1)에서 1차원째에 관한 리드 솔로몬 부호화가 행해진다. 계속해서, 디지털 정보는, 제2 리드 솔로몬 부호화부(61-2) 내지 제n 리드 솔로몬 부호화부(61-n)의 각 부에서, 2차원째 내지 n차원째까지의 각 차원째에 관한 리드 솔로몬 부호가 행해진다. 제n 리드 솔로몬 부호화부(61-n)에 의한 부호화가 종료하면, 부호화 처리부(60)는, 부호화된 디지털 정보를 기록 재생 처리부(70)에 공급한다. 기록 재생 처리부(70)의 기록부(71)는, 부호화 처리부(60)로부터 공급된 디지털 정보를 기록 매체(72)에 기록한다.
기록 재생 처리부(70)의 재생부(73)는, 기록 매체(72)에 기록되어 있는 디지털 정보(부호화된 디지털 정보)를 재생하여, 복호 처리부(80)에 공급한다.
복호 처리부(80)는, 제1 리드 솔로몬 복호부(81-1) 내지 제n 리드 솔로몬 복호부(81-n)의 각 부에서, 재생부(73)로부터 공급된 디지털 정보에, 각 차원째에 관한 리드 솔로몬 복호(통상 복호)를 행하고, 원래의 디지털 정보를 복원한다. 또한, 복호 처리부(80)는, 부호화 처리부(60)의 경우와 반대로, 우선, 제n 리드 솔로몬 복호부(81-n)에서 제n 차원째에 관한 리드 솔로몬 복호부터 행하고, n-1 차원째, n-2 차원째로 순서대로 차원 수를 내리도록 리드 솔로몬 복호를 행하고, 마지막으로 제1 차원째에 관한 리드 솔로몬 복호를 행한다. 복호 처리부(80)는, 복원한 원래의 디지털 정보를 기록 재생 장치(50)의 외부에 출력한다.
이상과 같이 하여, 도 11의 기록 재생 장치(50)는, 정보의 기록이나 재생시에 발생한 정보의 오류를 정정한다.
이상과 같은 리드 솔로몬 부호나 BCH(Bose-Chaudhuri-Hocquenghem) 부호 등 에 대한 통상 복호는, 수신한 값을 「O」 또는 「1」만으로 추정하는 경판정의 수신어에 대하여 행하는 복호 방법이다.
그러나, 연판정의 수신어가 얻어지는 경우, 통상적으로, 연판정 수신어를 이용한 복호 성능에 비해, 경판정 수신어를 이용한 복호 성능은 떨어지기 때문에, 연판정 수신어가 얻어지는 시스템에서, 상술한 바와 같이 리드 솔로몬 부호를 통상 복호하도록 한 경우, 그 복호 성능이 좋지 않다는 과제가 있었다.
따라서, 상술한 바와 같은 섬 프로덕트 알고리즘을 이용하여 복호하는 방법을 생각할 수 있는데, 일반적인 선형 부호의 패리티 검사 행렬은, 통상적으로, 저밀도가 아니기 때문에, 복호 성능이 좋지 않다는 과제가 있었다. 또한, 만일, 공급된 패리티 검사 행렬이 저밀도라 하여도, 큰 유한체 상에서의 섬 프로덕트 알고리즘은 매우 복잡하여, 그 연산 코스트도 커져 버린다는 과제도 있었다.
본 발명은 이러한 상황을 감안하여 이루어진 것으로, 일반적인 선형 부호에 대한 복호 방법으로서 섬 프로덕트 알고리즘을 적용한 경우에, 용이하게, 성능이 좋은 복호 처리를 행할 수 있도록 하는 것이다.
본 발명의 제1 복호 방법은, 환 R 상의 선형 부호의 검사 행렬에 대하여, 값이 1인 요소의 밀도를 저밀도화시키는 저밀도화 처리 단계와, 저밀도화 처리 단계의 처리에 의해 저밀도화된 검사 행렬을 이용하여, 선형 부호를 섬 프로덕트 알고리즘에 의해 복호하는 복호 단계를 포함하는 것을 특징으로 한다.
상기 환은, 소수의 멱승을 원소로 하는 유한체일 수 있다.
상기 선형 부호는, 유한체 상의 BCH 부호 또는 리드 솔로몬 부호를 포함할 수 있다.
상기 저밀도화 처리 단계는, 검사 행렬의 각 행의 선형 결합을 계산하는 선형 결합 계산 단계와, 선형 결합 계산 단계의 처리에 의해 계산된 선형 결합에 의해서 얻어지는 벡터의 집합 중에서, 부호보 공간을 확장하는, 보다 가중치가 낮은 벡터 부분 집합을 추출하고, 벡터 부분 집합의 전체 벡터를 행 성분으로 하는 새로운 검사 행렬을 작성하는 검사 행렬 작성 단계를 포함하도록 할 수 있다.
상기 저밀도화 처리 단계는, 유한체 상의 검사 행렬을, 유한체의 부분체 상에 소정의 차원으로 전개하는 전개 단계를 더 포함하고, 선형 결합 계산 단계는, 전개 단계의 처리에 의해 전개된 검사 행렬의 각 행의 선형 결합을 계산할 수 있다.
본 발명의 제1 복호 장치는, 환 R 상의 선형 부호의 검사 행렬에 대하여, 값이 1인 요소의 밀도를 저밀도화시키는 저밀도화 처리를 행하는 저밀도화 처리 수단과, 저밀도화 처리 수단에 의해 저밀도화된 검사 행렬을 이용하여, 선형 부호를 섬 프로덕트 알고리즘에 의해 복호하는 복호 수단을 포함하는 것을 특징으로 한다.
상기 환은, 소수의 멱승을 원소로 하는 유한체일 수 있다.
상기 선형 부호는, 유한체 상의 BCH 부호 또는 리드 솔로몬 부호를 포함할 수 있다.
상기 저밀도화 처리 수단은, 검사 행렬의 각 행의 선형 결합을 계산하는 선형 결합 계산 수단과, 선형 결합 계산 수단에 의해 계산된 선형 결합에 의해서 얻 어지는 벡터의 집합 중에서, 부호보 공간을 확장하는, 보다 가중치가 낮은 벡터 부분집합을 추출하고, 벡터 부분 집합의 전체 벡터를 행 성분으로 하는 새로운 검사 행렬을 작성하는 검사 행렬 작성 수단을 구비하도록 할 수 있다.
상기 저밀도화 처리 수단은, 유한체 상의 검사 행렬을, 유한체의 부분체 상에 소정의 차원으로 전개하는 전개 수단을 더 구비하고, 선형 결합 계산 수단은, 전개 수단에 의해 전개된 검사 행렬의 각 행의 선형 결합을 계산할 수 있다.
컨볼루션 부호화된 선형 부호를 연판정 복호하는 연판정 복호 수단을 더 구비하고, 저밀도화 처리 수단은, 연판정 복호 수단에 의해 연판정 복호된 선형 부호의 검사 행렬에 대하여, 값이 1인 요소의 밀도를 저밀도화시킬 수 있다.
상기 연판정 복호 수단에 의한 연판정 복호, 저밀도화 처리 수단에 의한 저밀도화 처리, 및 복호 수단에 의한 복호를 반복하여 실행할 수 있다.
본 발명의 제1 프로그램은, 환 R 상의 선형 부호의 검사 행렬에 대하여, 값이 1인 요소의 밀도를 저밀도화시키는 저밀도화 처리 단계와, 저밀도화 처리 단계의 처리에 의해 저밀도화된 검사 행렬을 이용하여, 선형 부호를 섬 프로덕트 알고리즘에 의해 복호하는 복호 단계를 컴퓨터에 실행시키는 것을 특징으로 한다.
본 발명의 제2 복호 방법은, 수신값을 입력하는 입력 단계와, 선형 부호의 검사 행렬에 대하여, 값이 1인 요소의 밀도를 저밀도화시킨 검사 행렬과, 입력 단계의 처리에 의해 입력된 수신값을 이용하여, 선형 부호를 섬 프로덕트 알고리즘에 의해 복호하는 복호 단계를 포함하는 것을 특징으로 한다.
본 발명의 제2 복호 장치는, 수신값을 입력하는 입력 수단과, 선형 부호의 검사 행렬에 대하여, 값이 1인 요소의 밀도를 저밀도화시킨 검사 행렬과, 입력 수단에 의해 입력된 수신값을 이용하여, 선형 부호를 섬 프로덕트 알고리즘에 의해 복호하는 복호 수단을 포함하는 것을 특징으로 한다.
본 발명의 제2 프로그램은, 수신값을 입력하는 입력 단계와, 선형 부호의 검사 행렬에 대하여, 값이 1인 요소의 밀도를 저밀도화시킨 검사 행렬과, 입력 단계의 처리에 의해 입력된 수신값을 이용하여, 선형 부호를 섬 프로덕트 알고리즘에 의해 복호하는 복호 단계를 컴퓨터에 실행시키는 것을 특징으로 한다.
본 발명의 제1 기록 재생 장치는, 환 R 상의 선형 부호를 기록 매체에 기록하는 기록 수단과, 기록 수단에 의해 기록된 선형 부호를 재생하는 재생 수단과, 재생 수단에 의해 재생된 선형 부호의 검사 행렬에 대하여, 값이 1인 요소의 밀도를 저밀도화시키는 저밀도화 처리를 행하는 저밀도화 처리 수단과, 저밀도화 처리 수단에 의해 저밀도화된 검사 행렬을 이용하여, 선형 부호를 섬 프로덕트 알고리즘에 의해 복호하는 복호 수단을 포함하는 것을 특징으로 한다.
상기 선형 부호는, 소정의 차원으로 곱셈 부호화된 선형 부호이고, 저밀도화 처리 수단은, 검사 행렬에 대하여, 각 차원에 대하여, 저밀도화 처리를 행하고, 복호 수단은, 저밀도화된 검사 행렬의 각 차원에 대하여, 섬 프로덕트 알고리즘에 의한 복호를 행할 수 있다.
상기 저밀도화 처리 수단에 의한 저밀도화 처리, 및 복호 수단에 의한 복호를 반복 실행할 수 있다.
본 발명의 제1 기록 재생 방법은, 환 R 상의 선형 부호의, 기록 매체에의 기 록을 제어하는 기록 제어 단계와, 기록 제어 단계의 처리에 의해 기록이 제어된 선형 부호의, 재생을 제어하는 재생 제어 단계와, 재생 제어 단계의 처리에 의해 재생이 제어된 선형 부호의 검사 행렬에 대하여, 값이 1인 요소의 밀도를 저밀도화시키는 저밀도화 처리를 행하는 저밀도화 처리 단계와, 저밀도화 처리 단계의 처리에 의해 저밀도화된 검사 행렬을 이용하여, 선형 부호를 섬 프로덕트 알고리즘에 의해 복호하는 복호 단계를 포함하는 것을 특징으로 한다.
본 발명의 제3 프로그램은, 환 R 상의 선형 부호의, 상기 기록 매체에의 기록을 제어하는 기록 제어 단계와, 상기 기록 제어 단계의 처리에 의해 기록이 제어된 상기 선형 부호의, 재생을 제어하는 재생 제어 단계와, 상기 재생 제어 단계의 처리에 의해 재생이 제어된 상기 선형 부호의 검사 행렬에 대하여, 값이 1인 요소의 밀도를 저밀도화시키는 저밀도화 처리를 행하는 저밀도화 처리 단계와, 상기 저밀도화 처리 단계의 처리에 의해 저밀도화된 상기 검사 행렬을 이용하여, 상기 선형 부호를 섬 프로덕트 알고리즘에 의해 복호하는 복호 단계를 컴퓨터에 실행시키는 것을 특징으로 한다.
본 발명의 제2 기록 재생 장치는, 환 R 상의 선형 부호를 기록 매체에 기록하는 기록 수단과, 기록 수단에 의해 기록된 선형 부호를 재생하는 재생 수단과, 선형 부호의 검사 행렬에 대하여, 값이 1인 요소의 밀도를 저밀도화시킨 검사 행렬을 이용하여, 선형 부호를 섬 프로덕트 알고리즘에 의해 복호하는 복호 수단을 포함하는 것을 특징으로 한다.
본 발명의 제2 기록 재생 방법은, 환 R 상의 선형 부호의, 기록 매체에의 기 록을 제어하는 기록 제어 단계와, 기록 제어 단계의 처리에 의해 기록이 제어된 선형 부호의 재생을 제어하는 재생 제어 단계와, 선형 부호의 검사 행렬에 대하여, 값이 1인 요소의 밀도를 저밀도화시킨 검사 행렬을 이용하여, 선형 부호를 섬 프로덕트 알고리즘에 의해 복호하는 복호 단계를 포함하는 것을 특징으로 한다.
본 발명의 제4 프로그램은, 환 R 상의 선형 부호의, 기록 매체에의 기록을 제어하는 기록 제어 단계와, 기록 제어 단계의 처리에 의해 기록이 제어된 선형 부호의 재생을 제어하는 재생 제어 단계와, 선형 부호의 검사 행렬에 대하여, 값이 1인 요소의 밀도를 저밀도화시킨 검사 행렬을 이용하여, 선형 부호를 섬 프로덕트 알고리즘에 의해 복호하는 복호 단계를 컴퓨터에 실행시키는 것을 특징으로 한다.
본 발명의 제1 재생 장치는, 기록 수단에 의해 기록된, 환 R 상의 선형 부호를 재생하는 재생 수단과, 재생 수단에 의해 재생된 선형 부호의 검사 행렬에 대하여, 값이 1인 요소의 밀도를 저밀도화시키는 저밀도화 처리를 행하는 저밀도화 처리 수단과, 저밀도화 처리 수단에 의해 저밀도화된 검사 행렬을 이용하여, 선형 부호를 섬 프로덕트 알고리즘에 의해 복호하는 복호 수단을 포함하는 것을 특징으로 한다.
상기 선형 부호는, 소정의 차원으로 곱셈 부호화된 선형 부호이고, 저밀도화 처리 수단은, 검사 행렬에 대하여, 각 차원에 대하여, 저밀도화 처리를 행하고, 복호 수단은, 저밀도화된 검사 행렬의 각 차원에 대하여, 섬 프로덕트 알고리즘에 의한 복호를 행할 수 있다.
상기 저밀도화 처리 수단에 의한 저밀도화 처리, 및 복호 수단에 의한 복호 를 반복 실행할 수 있다.
본 발명의 제1 재생 방법은, 기록 매체에 기록된, 환 R 상의 선형 부호의 재생을 제어하는 재생 제어 단계와, 재생 제어 단계의 처리에 의해 재생이 제어된 선형 부호의 검사 행렬에 대하여, 값이 1인 요소의 밀도를 저밀도화시키는 저밀도화 처리를 행하는 저밀도화 처리 단계와, 저밀도화 처리 단계의 처리에 의해 저밀도화된 검사 행렬을 이용하여, 선형 부호를 섬 프로덕트 알고리즘에 의해 복호하는 복호 단계를 포함하는 것을 특징으로 한다.
본 발명의 제5 프로그램은, 기록 매체에 기록된, 환 R 상의 선형 부호의 재생을 제어하는 재생 제어 단계와, 재생 제어 단계의 처리에 의해 재생이 제어된 선형 부호의 검사 행렬에 대하여, 값이 1인 요소의 밀도를 저밀도화시키는 저밀도화 처리를 행하는 저밀도화 처리 단계와, 저밀도화 처리 단계의 처리에 의해 저밀도화된 검사 행렬을 이용하여, 선형 부호를 섬 프로덕트 알고리즘에 의해 복호하는 복호 단계를 컴퓨터에 실행시키는 것을 특징으로 한다.
본 발명의 제2 재생 장치는, 기록 매체에 기록된, 환 R 상의 선형 부호를 재생하는 재생 수단과, 선형 부호의 검사 행렬에 대하여, 값이 1인 요소의 밀도를 저밀도화시킨 검사 행렬을 이용하여, 선형 부호를 섬 프로덕트 알고리즘에 의해 복호하는 복호 수단을 포함하는 것을 특징으로 한다.
본 발명의 제2 재생 방법은, 기록 매체에 기록된, 환 R 상의 선형 부호의 재생을 제어하는 재생 제어 단계와, 선형 부호의 검사 행렬에 대하여, 값이 1인 요소의 밀도를 저밀도화시킨 검사 행렬을 이용하여, 선형 부호를 섬 프로덕트 알고리즘 에 의해 복호하는 복호 단계를 포함하는 것을 특징으로 한다.
본 발명의 제6 프로그램은, 기록 매체에 기록된, 환 R 상의 선형 부호의 재생을 제어하는 재생 제어 단계와, 선형 부호의 검사 행렬에 대하여, 값이 1인 요소의 밀도를 저밀도화시킨 검사 행렬을 이용하여, 선형 부호를 섬 프로덕트 알고리즘에 의해 복호하는 복호 단계를 컴퓨터에 실행시키는 것을 특징으로 한다.
본 발명에서는, 환 R 상의 선형 부호의 검사 행렬에 대하여, 값이 1인 요소의 밀도가 저밀도화되고, 그 저밀도화된 검사 행렬이 이용되어, 선형 부호가 섬 프로덕트 알고리즘에 의해 복호된다.
또한, 본 발명에서는, 값이 1인 요소의 밀도를 저밀도화시킨 검사 행렬이 이용되어, 선형 부호가 섬 프로덕트 알고리즘에 의해 복호된다.
도 1은 저밀도 패리티 검사 행렬의 예를 나타내는 도면.
도 2는 도 1의 패리티 검사 행렬에 대응하는 태너 그래프를 설명하는 도면.
도 3은 LDPC 부호의 복호 수순을 설명하는 흐름도.
도 4는 메시지의 흐름을 설명하는 도면.
도 5는 LDPC 부호의 검사 행렬의 예를 나타내는 도면.
도 6은 검사 행렬의 태너 그래프를 나타내는 도면.
도 7은 베리어블 노드를 나타내는 도면.
도 8은 체크 노드를 나타내는 도면.
도 9는 리드 솔로몬 부호의 검사 행렬의 예를 나타내는 도면.
도 10은 종래의 오류 정정 시스템의 구성예를 나타내는 도면.
도 11은 종래의 기록 재생 장치의 구성예를 나타내는 도면.
도 12는 본 발명을 적용한 복호 장치의 구성예를 나타내는 도면.
도 13은 도 12의 복호 장치에 의한 복호 처리를 설명하는 흐름도.
도 14는 도 13의 단계 S21에서 실행되는 패리티 검사 행렬 저밀도화 처리를 설명하는 흐름도.
도 15는 BCH 부호의 패리티 검사 행렬의 예를 나타내는 도면.
도 16은 도 15의 패리티 검사 행렬에 대응하는 태너 그래프를 나타내는 도면.
도 17은 전개된 패리티 검사 행렬의 예를 나타내는 도면.
도 18은 도 17의 패리티 검사 행렬에 대응하는 태너 그래프를 나타내는 도면.
도 19는 복호 성능을 비교하기 위한 그래프.
도 20은 본 발명을 적용한 복호 장치의 다른 구성예를 나타내는 도면.
도 21은 도 20의 복호 장치에 의한 복호 처리를 설명하는 흐름도.
도 22는 리드 솔로몬 부호에서의 패리티 검사 행렬의 예를 나타내는 도면.
도 23은 전개된 패리티 검사 행렬의 예를 나타내는 도면.
도 24는 복호 성능을 비교하기 위한 그래프.
도 25는 본 발명을 적용한 오류 정정 시스템의 구성예를 나타내는 블록도.
도 26은 본 발명을 적용한 오류 정정 시스템의 다른 구성예를 나타내는 블록 도.
도 27은 본 발명을 적용한 기록 재생 장치의 구성예를 나타내는 블록도.
도 28은 기록 장치의 구성예를 나타내는 블록도.
도 29는 본 발명을 적용한 재생 장치의 구성예를 나타내는 블록도.
도 30은 본 발명을 적용한 기록 재생 장치의 다른 구성예를 나타내는 블록도.
도 31은 본 발명을 적용한 재생 장치의 다른 구성예를 나타내는 블록도.
도 32는 본 발명을 적용한 컴퓨터의 일 실시 형태의 구성예를 나타내는 블록도.
이하, 본 발명의 실시 형태에 대하여 설명하겠지만, 먼저 본 발명이 적용되는 기술의 예에 대하여 설명한다.
도 12는, 본 발명을 적용한 복호 장치의 구성예를 나타내는 블록도이다.
도 12에서, 복호 장치(100)는, 예를 들면, BCH 부호에 대응하는 복호 장치로서, 환 R 상의(또는 유한체 상의) 수신어의 패리티 검사 행렬을 충분히 저밀도인 행렬로 변환하는 저밀도화 처리부(110) 및 저밀도화된 패리티 검사 행렬을 이용하여, 수신어를 복호하는 LDPC 복호부(121)로 이루어진다.
저밀도화 처리부(110)는, 패리티 검사 행렬의 행의 선형 결합을 계산하는 선형 결합 계산부(111), 선형 결합된 행을 이용하여, 충분히 성긴 패리티 검사 행렬을 작성하는 패리티 검사 행렬 작성부(112), 및 작성된 패리티 검사 행렬의 등급이 원래의 패리티 검사 행렬의 등급과 동일한지의 여부를 판정하는 판정 처리부(113)로 구성된다.
선형 결합 계산부(111)는, 취득한 수신어에 포함되는 패리티 검사 행렬의 각 행의 선형 결합을, 모든 조합에 대하여 계산한다. 즉, 선형 결합 계산부(111)는, n행의 패리티 검사 행렬에 대하여, 2n 가지의 조합으로 선형 결합을 계산한다. 선형 결합 계산부(111)는, 계산 결과 및 수신어를 패리티 검사 행렬 작성부(112)에 공급한다.
패리티 검사 행렬 작성부(112)는, 선형 결합 계산부(111)로부터 공급된 계산 결과, 즉, 선형 결합된 행 중에서, 소정의 조건에 따라서 행을 추출하고, 그 추출한 행으로 구성되는 패리티 검사 행렬을 작성한다. 패리티 검사 행렬 작성부(112)는, 예를 들면, 선형 결합된 행 중에서, 값이 「1」인 요소의 수가 소정의 수 이하의 행을 추출하는 등, 작성한 패리티 검사 행렬의 밀도가 성기게 되도록 조건을 설정하여, 그 조건에 해당하는 행을 추출한다. 패리티 검사 행렬 작성부(112)는, 작성한 패리티 검사 행렬 및 수신어를 판정 처리부(113)에 공급한다. 또한, 후술하는 바와 같이, 판정 처리부(113)에서, 작성한 패리티 검사 행렬의 등급이 원래의 패리티 검사 행렬의 등급과 다르다고 판정된 경우, 패리티 검사 행렬 작성부(112)는, 재차, 행의 추출을 행하여, 새로운 패리티 검사 행렬을 작성한다. 그 때, 패리티 검사 행렬 작성부(112)는, 전회 행한 행의 추출의 조건을 변경하여, 전회 작성된 패리티 검사 행렬과 서로 다른 행으로 구성되는 패리티 검사 행렬을 작성한 다.
판정 처리부(113)는, 패리티 검사 행렬 작성부(112)에서 작성된 패리티 검사 행렬의 등급(층 수)이, 원래의 패리티 검사 행렬의 등급과 일치하는지의 여부를 판정한다. 등급이 일치한다고 판정한 경우, 판정 처리부(113)는, 수신어와, 작성된패리티 검사 행렬을 LDPC 복호부(121)에 공급한다. 등급이 일치하지 않는다고 판정한 경우, 판정 처리부(113)는, 처리를 패리티 검사 행렬 작성부(112)로 되돌려, 새로운 패리티 검사 행렬을 작성시킨다.
이상과 같이, 저밀도화 처리부(110)는, 수신어에 포함되는 BCH 부호의 패리티 검사 행렬의 밀도를 저밀도화시키고, 그 저밀도화된 패리티 검사 행렬을 수신어와 함께 LDPC 복호부(121)에 공급한다.
LDPC 복호부(121)는, 취득한 저밀도화된 패리티 검사 행렬을 이용하여, 수신어를 섬 프로덕트 알고리즘에 의해 복호하고, 복호된 수신어를 복호 장치(100)의 외부에 출력한다.
이상과 같이, 저밀도화 처리부(110)가 수신어의 패리티 검사 행렬을 저밀도화시킴으로써, LDPC 복호부(121)는, 그 저밀도의 패리티 검사 행렬을 이용하여, 섬 프로덕트 알고리즘를 이용한 복호 처리를 행할 수 있어, 성능이 좋은 복호 처리를 행할 수 있다. 또한, 저밀도화 처리부(110)가 수신어의 패리티 검사 행렬을, 선형 결합을 이용하여 저밀도화시키기 때문에, LDPC 복호부(121)는, 부분체 상의 복호를 행할 수 있어, 연산 코스트를 삭감할 수도 있다. 즉, 섬 프로덕트 알고리즘를 이용한 복호 처리를 행하기 전에, 패리티 검사 행렬의 밀도를, 선형 결합에 의해 저 밀도화시킴으로써, 복호 장치(100)는, 용이하게, 성능이 좋은 복호 처리를 행할 수 있다.
다음으로, 이상과 같은 복호 장치에 의한 복호 처리에 대하여, 도 13의 흐름도를 참조하여 설명한다.
먼저, 복호 장치(100)의 저밀도화 처리부(110)는, 단계 S21에서, 패리티 검사 행렬 저밀도화 처리를 실행하여, 취득한 수신어에 포함되는 패리티 검사 행렬의 밀도를 성기게 한다. 패리티 검사 행렬 저밀도화 처리의 상세에 대해서는, 도 14의 흐름도를 참조하여 후술한다.
그리고, 단계 S22에서, LDPC 복호부(121)는, 단계 S21의 처리에 의해 저밀도화된 패리티 검사 행렬을 이용하여, 섬 프로덕트 알고리즘(SPA)을 이용한 복호 처리를 행한다. 단계 S22의 처리가 종료하면, LDPC 복호부(121)는, 그 수신어에 대한 복호 처리를 종료한다. 또한, 복호 장치(100)는, 상술한 복호 처리를 수신어마다(블록마다) 실행한다.
다음으로, 도 14의 흐름도를 참조하여, 도 13의 단계 S21에서 실행되는 패리티 검사 행렬 저밀도화 처리의 상세 내용을 설명한다.
먼저, 단계 S41에서, 저밀도화 처리부(110)의 선형 결합 계산부(111)는, 취득한 수신어에 포함되는 패리티 검사 행렬의 각 행을 이용하여, 모든 조합으로 선형 결합을 행하여, 결합 결과를 계산한다.
선형 결합을 계산한 선형 결합 계산부(111)는, 단계 S42에서, 후술하는 바와 같이 행의 추출 조건으로 되는 변수 n의 값을, 예를 들면, 「1」등의 초기 값으로 설정한다. 그리고, 선형 결합 계산부(111)는, 수신어, 선형 결합의 계산 결과, 및 변수 n을 패리티 검사 행렬 작성부(112)에 공급하고, 단계 S43으로 처리를 진행시킨다.
단계 S43에서, 패리티 검사 행렬 작성부(112)는, 취득한 선형 결합 결과의 각각에 대하여 값이 「1」인 요소의 수 weight를 산출하고, 모든 선형 결합 결과 중에서, 값이 「1」인 요소의 수 weight가 변수 n 이하인 것을 추출하고, 이들을 행으로 하는 새로운 저밀도의 패리티 검사 행렬을 작성한다.
즉, 패리티 검사 행렬 작성부(112)는, 선형 결합 계산부(111)에서 계산된 선형 결합에 의해서 얻어지는 벡터의 집합 중에서, 부호보 공간을 확장하는, 보다 가중치가 낮은 벡터 부분 집합을 추출하여, 벡터 부분 집합의 전체 벡터를 행 성분으로 하는 새로운 패리티 검사 행렬을 작성한다.
새로운 패리티 검사 행렬을 작성한 패리티 검사 행렬 작성부(112)는, 단계 S44로 처리를 진행시켜, 변수 n의 값에 「1」을 가산하고, 수신어, 작성한 패리티 검사 행렬, 및 변수 n을 판정 처리부(113)에 공급한다.
수신어, 작성한 패리티 검사 행렬, 및 변수 n을 공급받은 판정 처리부(113)는, 단계 S45에서, 수신어에 포함되는 원래의 패리티 검사 행렬에 관한 정보에 기초하여, 원래의 패리티 검사 행렬의 등급(층 수)과, 저밀도의 패리티 검사 행렬의 등급(층 수)이 일치하는지의 여부를 판정한다.
예를 들면, 저밀도의 패리티 검사 행렬의 등급이 낮고, 원래의 패리티 검사 행렬과 일치하지 않는다고 판정한 경우, 판정 처리부(113)는, 단계 S43으로 처리를 되돌려, 그 이후의 처리를 반복한다. 즉, 판정 처리부(113)는, 패리티 검사 행렬 작성부(112)에 그 판정 결과를 공급하고, 재차, 패리티 검사 행렬 작성부(112)에 저밀도의 패리티 검사 행렬을 작성시킨다. 그 때, 선형 결합 결과로부터 추출하는 조건으로 되는 변수 n의 값이 전회의 처리의 시간과 서로 다르기 때문에, 패리티 검사 행렬 작성부(112)는, 전회와 서로 다른 행을 갖는(전회와 요소가 서로 다른) 저밀도의 패리티 검사 행렬을 작성할 수 있다.
단계 S45에서, 원래의 패리티 검사 행렬의 등급(층 수)과, 저밀도의 패리티 검사 행렬의 등급(층 수)이 일치한다고 판정한 경우, 판정 처리부(113)는, 단계 S46으로 처리를 진행시켜, 수신어, 및 작성된 저밀도의 패리티 검사 행렬을 LDPC 복호부(121)에 출력하고, 도 13의 단계 S22로 처리를 되돌린다.
이상과 같이, 복호 처리, 및 패리티 검사 행렬 저밀도화 처리를 실행함으로써, 복호 장치(100)는, 섬 프로덕트 알고리즘을 이용한 복호 처리를 행하기 전에, 패리티 검사 행렬의 밀도를 선형 결합에 의해 저밀도화시키기 때문에, 용이하게, 성능이 좋은 복호 처리를 행할 수 있다.
다음으로, 이상의 복호 장치(100)를 이용한 구체적인 저밀도화의 예에 대하여 설명한다.
이하에서는, 유한체를 소수의 멱승을 원소로 하는 유한체 GF(24)(GF(2)의 4차 확대체)로 하고, 선형 부호 C로서, 부호 길이 15, 정보 길이 7인(15, 7)-BCH 부호를 복호하는 경우에 대해 설명한다.
선형 부호 C의 패리티 검사 행렬 H가, 예를 들면, 도 15와 같이 주어지는 것으로 한다. 도 15에 도시되는 패리티 검사 행렬 H는 8행 15열의 행렬로서, 이 패리티 검사 행렬 H에 대응하는 태너 그래프는 도 16과 같이 표시된다. 도 16의 태너 그래프는, 도 15에 도시되는 패리티 검사 행렬 H의 각 열을 「=」로 나타나는 베리어블 노드로 나타내고, 각 행을 「+」로 나타나는 체크 노드로 나타낸 그래프로서, 베리어블 노드와 체크 노드를 연결하는 엣지(edge)의 밀도가 높아져 있고, 도 15의 패리티 검사 행렬 H가 저밀도의 행렬이 아님을 나타내고 있다.
도 12의 저밀도화 처리부(110)는, 상술한 바와 같이, 이 8행을 이용하여 선형 결합을 행하고, 「1」의 밀도가 적은 28=256개의 행 벡터를 작성한다. 그리고, 저밀도화 처리부(110)는, 「1」의 개수가 4 이하인 행 벡터를 15개 추출하고, 15원 벡터를 세로로 열거하여 작성한, 도 17에 도시되는 바와 같은 새로운 행렬 Hsp4을 작성한다. 도 17에 도시되는 행렬 Hsp4에 대응하는 태너 그래프는, 도 18에 도시된 바와 같이 된다. 도 17에 도시되는 행렬 Hsp4의 행 수 및 열 수가 모두 15이기 때문에, 도 18에 도시되는 태너 그래프의 베리어블 노드 및 체크 노드의 수가 모두 15개로 되고, 도 16의 경우와 비교하여, 베리어블 노드와 체크 노드를 연결하는 엣지(edge)의 밀도가 낮게 되어 있다.
저밀도화 처리부(110)는, 이 행렬 Hsp4을 패리티 검사 행렬로 하여, LDPC 복호부(121)에 공급한다. LDPC 복호부(121)는, 도 17에 도시되는 저밀도의 패리티 검사 행렬 Hsp4을 이용하여, 수신어에 대하여, 섬 프로덕트 알고리즘을 적용한 복호를 행한다.
도 19는, 이러한 패리티 검사 행렬을 갖는 BCH 부호를 비터비(Viterbi) 복호에 의해 최우 복호한 경우와, 도 17에 도시되는 바와 같은 저밀도 패리티 검사 행렬 Hsp4을 이용하여 섬 프로덕트 알고리즘에 의한 복호를 행한 경우의 복호 성능의 비교를 나타내는 그래프이다.
도 19에서, 곡선(131)은, 섬 프로덕트 알고리즘(SPA)에 의한 복호 결과의, 비트 에러 레이트(BER)를 나타내고 있고((2) bch 15 7(wgt4) SPA BER), 곡선(132)은, 비터비 복호에 의한 복호 결과의 비트 에러 레이트(BER)를 나타내고 있다((1) bch 15 7 ML BER). 또한, 점(133)에 의해 플로팅된 데이터는, 섬 프로덕트 알고리즘에 의한 복호 결과의 프레임 에러 레이트(FER)를 나타내고 있고((2) bch 15 7(wgt4) SPA FER), 점(134)에 의해 플로팅된 데이터는, 비터비 복호에 의한 복호 결과의 프레임 에러 레이트(FER)를 나타내고 있다((1) bch 15 7 ML FER).
최우 복호(도 19의 곡선(132))는, 섬 프로덕트 알고리즘과 같은 확률적 복호를 이용한 경우의 성능 한계이지만, 도 19에 도시된 바와 같이 본 발명을 이용한 곡선(131)은, 그 성능 한계에 비슷한 성능을 올리고 있다.
이상과 같이, 복호 장치(1OO)는, BCH 부호에 대하여, 섬 프로덕트 알고리즘을 이용한 복호 처리를 행하기 전에, 패리티 검사 행렬의 밀도를 선형 결합에 의해 저밀도화시키기 때문에, 용이하게, 성능이 좋은 복호 처리를 행할 수 있다.
또한, 이상에서는, BCH 부호에 대한 복호 처리에 대하여 설명했지만, 이에 한하지 않고, 예를 들면, 리드 솔로몬 부호 등과 같이, 일반적인 선형 부호이면 어떠한 부호 방법이어도 된다. 이하에, 리드 솔로몬 부호에 대하여 섬 프로덕트 알고리즘을 적용한 복호를 행하는 경우에 대해 설명한다.
도 20은, 본 발명을 적용한 복호 장치의 다른 구성예를 나타내는 블록도이다. 도 20에서, 복호 장치(150)는, 예를 들면, 리드 솔로몬 부호에 대응하는 복호 장치로서, 수신어의 패리티 검사 행렬을 전개하는 전개 처리부(161), 전개된 패리티 검사 행렬을 충분히 저밀도인 행렬로 변환하는 저밀도화 처리부(170), 및 저밀도화된 패리티 검사 행렬을 이용하여, 수신어를 복호하는 LDPC 복호부(181)로 이루어진다.
전개 처리부(161)는, 패리티 검사 행렬의 저밀도화 처리의 전 처리로서, 취득한 수신어에 포함되는 패리티 검사 행렬의 각 요소를 그 행렬의 유한체의 차원에 따라서, 각각 소정의 차수로 전개한다. 즉, 전개 처리부(161)는, 소수의 멱승을 원소로 하는 유한체 상의 패리티 검사 행렬을, 그 유한체의 부분체 상에 소정의 차원으로 전개한다. 전개 처리부(161)는, 그 전개된 패리티 검사 행렬 및 수신어를 저밀도화 처리부(170)에 공급한다.
저밀도화 처리부(170)는, 패리티 검사 행렬의 행의 선형 결합을 계산하는 선형 결합 계산부(171), 선형 결합된 행을 이용하여 충분히 성긴 패리티 검사 행렬을 작성하는 패리티 검사 행렬 작성부(172), 및 작성된 패리티 검사 행렬의 등급이 원래의 패리티 검사 행렬의 등급과 동일한인지의 여부를 판정하는 판정 처리부(173) 로 구성된다. 이들 각 부의 구성 및 동작은, 각각, 도 12에 도시되는 복호 장치(100)의 저밀도화 처리부(110)의 경우와 마찬가지이기 때문에, 이들의 설명은 생략한다. 즉, 저밀도화 처리부(170)를 구성하는 선형 결합 계산부(171) 내지 판정 처리부(173)는, 도 12에 도시되는 선형 결합 계산부(111) 내지 판정 처리부(113)에 각각 대응한다. 단, 저밀도화 처리부(170)는, 전개 처리부(161)로부터 공급된, 전개된 패리티 검사 행렬에 대하여 저밀도화 처리를 행한다.
저밀도화 처리부(170)는, 전개 처리부(161)에 의해 전개된 리드 솔로몬 부호의 패리티 검사 행렬의 밀도를 저밀도화시키고, 그 저밀도화된 패리티 검사 행렬을 수신어와 함께 LDPC 복호부(181)에 공급한다.
LDPC 복호부(181)는, 취득한 저밀도화된 패리티 검사 행렬을 이용하여, 수신어를 섬 프로덕트 알고리즘에 의해 복호하고, 복호된 수신어를 복호 장치(150)의 외부에 출력한다.
이상과 같이, 저밀도화 처리부(170)가 패리티 검사 행렬을 저밀도화시키기 전에, 전개 처리부(161)에 의해 패리티 검사 행렬의 전개를 행함으로써, LDPC 복호부(181)에 의한, 저밀도화된 패리티 검사 행렬 Hsp24을 이용한 섬 프로덕트 알고리즘에 의한 복호 처리의 연산 코스트는, 이하에 나타내는 수학식 8과 같이, 수신어에 포함되는 패리티 검사 행렬 H를 이용하여 섬 프로덕트 알고리즘에 의한 복호 처리를 행한 경우에 비해, 약 4분의 1로 삭감된다.
따라서, 복호 장치(150)는, 용이하게, 성능이 좋은 복호 처리를 용이하게 행할 수 있다.
다음으로, 이상과 같은 복호 장치(150)에 의한 복호 처리에 대하여, 도 21의 흐름도를 참조하여 설명한다.
먼저, 복호 장치(150)의 전개 처리부(161)는, 단계 S61에서, 취득한 수신어에 포함되는 패리티 검사 행렬을 그 유한체의 차원에 맞추어 전개한다. 그리고, 전개 처리부(161)는, 전개한 패리티 검사 행렬 및 수신어를 저밀도화 처리부(170)에 공급하고, 처리를 단계 S62로 진행시킨다.
저밀도화 처리부(170)는, 단계 S62에서, 패리티 검사 행렬 저밀도화 처리를 실행하고, 전개된 패리티 검사 행렬의 밀도를 성기게 한다. 패리티 검사 행렬 저밀도화 처리의 상세한 내용에 대해서는, 도 14의 흐름도를 참조하여 설명한 경우와 마찬가지이기 때문에 그 상세한 설명은 생략한다. 단, 이 경우의 패리티 검사 행렬 저밀도화 처리에 있어서, 저밀도화 처리부(170)는, 상술한 바와 같이 전개 처리부(161)에 의해 전개된 패리티 검사 행렬을 저밀도화시키도록 처리를 행한다.
그리고, 단계 S63에서, LDPC 복호부(181)는, 단계 S62의 처리에 의해 저밀도화된 패리티 검사 행렬을 이용하여, 섬 프로덕트 알고리즘(SPA)을 이용한 복호 처리를 행한다. 단계 S63의 처리가 종료하면, LDPC 복호부(121)는, 그 수신어에 대 한 복호 처리를 종료한다. 또한, 복호 장치(150)는, 상술한 복호 처리를 수신어마다(블록마다) 실행한다.
이상과 같이, 복호 처리를 실행함으로써, 복호 장치(150)는, 저밀도화 처리를 행하기 전에, 패리티 검사 행렬의 각 요소를 전개시키기 때문에, 용이하게, 성능이 좋은 복호 처리를 행할 수 있다.
다음으로, 이상의 복호 장치(150)를 이용한 구체적인 전개의 예에 대하여 설명한다.
이하에서는, 유한체를 GF(24)로 하고, 선형 부호 C로 하여, 부호 길이 15, 정보 길이 11인 (15, 11)- 리드 솔로몬 부호를 복호하는 경우에 대해 설명한다. 또한, GF(24)의 원시근을 α로 하고, 그 원시근 α로 이루어지는 원시 다항식을 수학식 9로 하고, 부호의 생성 다항식을 수학식 10으로 한다.
이 때의 선형 부호 C의 패리티 검사 행렬은, 도 22에 도시된 바와 같이 공급된다. 도 22에 도시되는 패리티 검사 행렬 H는 4행 15열의 행렬이다. 그런데, 유한체 GF(24)는, GF(2)의 4차 확대체이기 때문에, 유한체 GF(24) 상의 원소, 행렬을 모두 4차원으로 전개하는 것이 가능하다. 복호 장치(150)의 전개 처리부(161)는, 도 22에 도시되는 패리티 검사 행렬 H를 전개하고, 도 23에 도시되는 바와 같은 16행 60열의 패리티 검사 행렬 Hexp로 변환한다. 이 경우, 전개 처리부(161)는, 도 22에 도시되는 패리티 검사 행렬 H의 각 요소를 4×4의 요소군으로 전개함으로써, 도 23에 도시되는 패리티 검사 행렬 Hexp를 생성한다.
복호 장치(150)의 저밀도화 처리부(170)는, 이 전개된 패리티 검사 행렬 Hexp에 대하여 저밀도화 처리를 행하고, LDPC 복호부(181)는, 저밀도화된 패리티 검사 행렬 Hexp를 이용하여, 섬 프로덕트 알고리즘에 의한 복호 처리를 행한다.
도 24는, 이러한 패리티 검사 행렬을 갖는 리드 솔로몬 부호를 통상 복호한 경우와, 도 23의 전개된 패리티 검사 행렬 Hexp를 저밀도화한 패리티 검사 행렬 Hsp24를 이용하여 섬 프로덕트 알고리즘에 의한 복호를 행한 경우의 복호 성능의 비교를 나타내는 그래프이다.
도 24에서, 곡선(191)은, 저밀도화한 패리티 검사 행렬 Hsp24를 이용하여 섬 프로덕트 알고리즘(SPA)에 의한 복호를 행한 경우의 복호 결과의, 비트 에러 레이트(BER)를 나타내고 있고((4) RS wgt24 SPA BER), 곡선(192)은, 통상 복호에 의한 복호 결과의 비트 에러 레이트(BER)를 나타내고 있다((3) RS ORD BER). 또한, 점(193)에 의해 플로팅된 데이터는, 저밀도화한 패리티 검사 행렬 Hsp24를 이용하여 섬 프로덕트 알고리즘에 의한 복호를 행한 경우의 복호 결과의 프레임 에러 레이트 (FER)를 나타내고 있고((4) RS wgt24 SPA FER), 점(194)에 의해 플로팅된 데이터는, 통상 복호에 의한 복호 결과의 프레임 에러 레이트(FER)를 나타내고 있다((3) RS ORD FER).
도 24에 도시된 바와 같이, 본 발명을 이용한 복호의 복호 결과인 곡선(191)(점(193))은, 통상 복호의 경우의 복호 결과인 곡선(192)(점(194))과 비교하여, 보다 좋은 성능을 얻을 수 있다.
이상과 같이, 복호 장치(150)는, 리드 솔로몬 부호에 대하여, 섬 프로덕트 알고리즘을 이용한 복호 처리를 행하기 전에, 패리티 검사 행렬의 밀도를 선형 결합에 의해 저밀도화시키기 때문에, 용이하게, 성능이 좋은 복호 처리를 행할 수 있다. 또한, 복호 장치(150)는, 패리티 검사 행렬을 저밀도화시키기 전에, 패리티 검사 행렬의 각 요소, 행렬을 전개하기 때문에, 연산 코스트를 낮게 억제할 수 있다.
도 25는, 본 발명을 적용한, 리드 솔로몬 부호를 이용한 오류 정정 시스템의 구성예를 나타내는 블록도이다. 도 25에 도시되는 오류 정정 시스템은, 예를 들면, 디지털 텔레비전 등의 디지털 통신 시스템에 이용되는 시스템이다.
도 25의 오류 정정 시스템에서는, 송신측인 부호화 장치(210)로부터 송신된 디지털 정보가, 예를 들면, 인터넷으로 대표되는 통신로(221)를 통하여, 수신측인 복호 장치(230)에 공급된다.
부호화 장치(210)는, 외부로부터 공급된 송신용의 디지털 정보를, 리드 솔로몬 부호를 이용하여 부호화하는 리드 솔로몬 부호화부(211), 부호화된 디지털 정보 의 재배열을 행하는 인터리버(212), 컨볼루션 부호화를 행하는 컨볼루션 부호화부(213), 및 통신로(221)를 통하여, 복호 장치(230)와 통신을 행하는 통신 처리부(214)로 이루어진다.
리드 솔로몬 부호화부(211)는, 부호화 장치(210)의 외부로부터 공급된 디지털 정보에 대하여, 리드 솔로몬 부호를 이용한 부호화 처리를 행하고, 부호화된 디지털 정보를 인터리버(212)에 공급한다. 인터리버(212)는, 그 부호화된 디지털 정보를, 주로 통신로(221)에서 발생하는 버스트적 오류를 확산시키기 위해서, 정보의 재배열(인터리빙)을 행한다. 리드 솔로몬 부호는 복수 비트를 1심볼로 하는 오류 정정을 행하기 때문에, 인터리버(212)는, 심볼 단위로 버스트적 오류를 확산하는 심볼 인터리빙을 행한다. 정보의 재배열을 종료한 인터리버(212)는, 그 재배열된 디지털 정보를 컨볼루션 부호화부(213)에 공급한다.
컨볼루션 부호화부(213)는, 재배열된 디지털 정보에 대하여, 과거에 부호화한 정보를 참조하여, 복수의 정보 블록에 기초하여, 순차적으로 부호 계열이 정해지는 컨볼루션 부호를 행한다. 예를 들면, 구속 길이 K인 컨볼루션 부호화부(213)는, 인터리버(212)로부터 디지털 정보가 k 비트의 정보 블록마다 공급되면, 금회 공급된 정보 블록뿐만 아니라, 과거에 공급된 정보 블록도 포함시킨 K개의 정보 블록에 기초하여, n 비트의 부호 블록으로 부호화한다. 컨볼루션 부호화가 완료하면, 컨볼루션 부호화부(213)는, 컨볼루션 부호화된 디지털 정보를 통신 처리부 (214)에 공급한다.
통신 처리부 (214)는, 통신 제어 처리를 행하고, 소정의 프로토콜에 기초하 여, 공급된 디지털 정보를 송신어로서, 통신로(221)를 통하여 복호 장치(230)에 송신한다.
부호화 장치(210)로부터 출력된 디지털 정보는, 통신로(221)를 통하여 복호 장치(230)에 공급된다.
복호 장치(230)는, 통신로(221)를 통하여 공급된 디지털 정보를, 수신어로서 수신하는 통신 처리부(231), 통신 처리부(231)가 취득한 수신어에 대하여, 컨볼루션 복호 처리를 행하는 컨볼루션 복호부(232), 컨볼루션 복호된 수신어를 원래의 순서대로 재배열하는 디인터리버(233), 및, 원래의 순서대로 복귀된 디지털 정보에, 섬 프로덕트 알고리즘에 의한 복호 처리를 행하여, 리드 솔로몬 부호화되기 전의 디지털 정보를 복원하는 리드 솔로몬 SPA 복호부(234)로 이루어진다.
통신 처리부(231)는, 통신로(221)를 통하여 부호화 장치(210)의 통신 처리부(214)와 통신을 행하고, 소정의 프로토콜에 기초하여, 통신 처리부(214)로부터 공급된 디지털 정보를 수신어로서 취득한다. 통신 처리부(231)는, 취득한 수신어를 컨볼루션 복호부(232)에 공급한다.
컨볼루션 복호부(232)는, 부호화 장치(210)의 컨볼루션 부호화부(213)에 의한 부호화 방법에 대응한 방법으로, 송신 처리부(231)로부터 공급된 수신어를 복호한다. 즉, 컨볼루션 복호부(232)는, 수신어에 대하여, 예를 들면, 사후 확률 최대화 복호(MAP 복호(Maximum a posteriori probability decoding))를 실현하는 BCJR(Bah1, Cocke, Jelinek, and Raviv) 알고리즘이나 SOVA(soft output Viterbi algorithm) 등을 이용하여, 연판정 복호를 행한다. 그리고, 컨볼루션 복호부(232) 는, 이 연판정 복호된 수신어를 디인터리버(233)에 공급한다.
디인터리버(233)는, 공급된 수신어에 대하여, 부호화 장치(210)의 인터리버(212)에서 행해진 인터리빙에 대응한 방법으로 정보의 재배열을 행하고, 재배열된 정보를 원래의 순서대로 복귀하는 처리(디인터리빙)를 행하고, 원래의 순서대로 재배열된 수신어를, 리드 솔로몬 SPA 복호부(234)에 공급한다.
리드 솔로몬 SPA 복호부(234)는, 도 20에 도시되는 복호 장치(150)와 기본적으로 마찬가지의 구성으로, 기본적으로 마찬가지의 동작을 행하고, 복호 장치(150)의 경우와 마찬가지로, 도 20의 블록도, 및 도 21에 도시되는 흐름도를 적용할 수 있으므로, 그 상세한 설명을 생략한다.
리드 솔로몬 SPA 복호부(234)는, 리드 솔로몬 부호화된 수신어에 대하여, 그 패리티 검사 행렬을 전개함과 함께 저밀도화하고, 그 패리티 검사 행렬을 이용하여, 섬 프로덕트 알고리즘에 의한 복호 처리를 행하고, 부호화되기 전의 원래의 디지털 정보를 복원한다. 리드 솔로몬 SPA 복호부(234)는, 복호한 디지털 정보를 복호 장치(230)의 외부에 출력한다.
이상과 같이 하여, 도 25의 오류 정정 시스템은, 용이하게, 성능이 좋은 복호 처리를 행할 수 있어, 보다 정확한 통신을 행할 수 있다. 또한, 복호 장치(230)는, 패리티 검사 행렬을 저밀도화시키기 전에, 패리티 검사 행렬의 각 요소, 행렬을 전개하기 때문에, 복호 처리의 연산 코스트를 낮게 억제할 수 있다.
또한, 이상에서는, 오류 정정 시스템은, 리드 솔로몬 부호를 복호하도록 설명했지만, 이에 한하지 않고, 예를 들면, BCH 부호를 복호하도록 해도 된다.
도 26은, 본 발명을 적용한, 리드 솔로몬 부호를 이용한 오류 정정 시스템의 다른 구성예를 나타내는 블록도이다. 도 26에 도시되는 오류 정정 시스템은, 예를 들면, 디지털 텔레비전 등의 디지털 통신 시스템에 이용되는 시스템이다. 도 25에 도시되는 경우와 마찬가지의 부분에 대해서는 동일한 부호를 붙이고 있고, 그 설명을 생략한다.
도 26의 오류 정정 시스템에서는, 송신측인 부호화 장치(210)에서 부호화된 디지털 정보가, 예를 들면, 인터넷으로 대표되는 통신로(221)를 통하여, 수신측인 복호 장치(240)에 공급된다.
복호 장치(240)는, 통신로(221)를 통하여 공급된 디지털 정보를, 수신어로서 수신하는 통신 처리부(241), 통신 처리부(241)가 취득한 수신어에 대하여, 컨볼루션 복호 처리를 행하는 컨볼루션 복호부(242), 컨볼루션 복호된 수신어를 원래의 순서대로 재배열하는 디인터리버(243), 원래의 순서대로 복귀된 디지털 정보에, 섬 프로덕트 알고리즘에 의한 복호 처리를 행하고, 리드 솔로몬 부호화되기 전의 디지털 정보를 복원하는 리드 솔로몬 SPA 복호부(244), 및, 부호화 장치(210)의 인터리버(212)와 마찬가지로, 디지털 정보의 재배열을 행하는 인터리버(245)로 이루어진다.
통신 처리부(241)는, 도 25의 통신 처리부(231)의 경우와 마찬가지로, 통신로(221)를 통하여 부호화 장치(210)의 통신 처리부(214)와 통신을 행하고, 소정의 프로토콜에 기초하여, 통신 처리부(214)로부터 공급된 디지털 정보를 수신어로서 취득한다. 통신 처리부(241)는, 취득한 수신어를 컨볼루션 복호부(242)에 공급한 다.
컨볼루션 복호부(242)는, 도 25의 컨볼루션 복호부(232)의 경우와 마찬가지로, 부호화 장치(210)의 컨볼루션 부호화부(213)에 의한 부호화 방법에 대응한 방법으로, 송신 처리부(241)로부터 공급된 수신어를 복호한다. 즉, 컨볼루션 복호부(242)는, 수신어에 대하여, 예를 들면, BCJR 알고리즘이나 SOVA 등을 이용하여, 연판정 복호를 행한다. 그리고, 컨볼루션 복호부(242)는, 이 연판정 복호된 수신어를 디인터리버(243)에 공급한다. 또한, 컨볼루션 복호부(242)에는, 인터리버(245)로부터, 섬 프로덕트 알고리즘에 의한 복호가 행해진 수신어가 재차 재배열되어 공급된다. 컨볼루션 복호부(242)는, 이 수신어에 대하여도, 통신 처리부(241)로부터 공급된 수신어의 경우와 마찬가지로, 예를 들면, BCJR 알고리즘이나 SOVA 등을 이용하여, 연판정 복호를 행하고, 디인터리버(243)에 공급한다.
디인터리버(243)는, 도 25의 디인터리버(233)의 경우와 마찬가지로, 컨볼루션 복호부(242)로부터 공급된 수신어에 대하여, 부호화 장치(210)의 인터리버(212)에서 행해진 인터리빙에 대응한 방법으로 정보의 재배열을 행하고, 재배열된 정보를 원래의 순서대로 복귀하는 처리(디인터리빙)를 행하고, 원래의 순서대로 재배열된 수신어를, 리드 솔로몬 SPA 복호부(244)에 공급한다. 또한, 상술한 바와 같이, 컨볼루션 복호부(242)로부터 공급되는 수신어에는, 통신 처리부(241)로부터 컨볼루션 복호부(242)를 통하여 공급되는 수신어 외에, 인터리버(245)로부터 컨볼루션 복호부(242)를 통하여 공급되는 수신어도 포함된다.
리드 솔로몬 SPA 복호부(244)는, 도 25의 리드 솔로몬 SPA 복호부(244)의 경 우와 마찬가지로, 도 20에 도시되는 복호 장치(150)와 기본적으로 마찬가지의 구성으로, 기본적으로 마찬가지의 동작을 행하고, 복호 장치(150)의 경우와 마찬가지로, 도 20의 블록도, 및 도 21에 도시되는 흐름도를 적용할 수 있다.
리드 솔로몬 SPA 복호부(244)는, 디인터리버(243)로부터 취득한 수신어에 대하여, 그 수신어에 포함되는 패리티 검사 행렬을 전개함과 함께 저밀도화하고, 그 패리티 검사 행렬을 이용하여 섬 프로덕트 알고리즘에 의한 복호 처리를 행하고, 부호화되기 전의 원래의 디지털 정보를 복원한다. 리드 솔로몬 SPA 복호부(244)는, 복호한 디지털 정보를 복호 장치(240)의 외부에 출력한다. 또한, 리드 솔로몬 SPA 복호부(244)는, 그 복호한 디지털 정보를 인터리버(245)에 공급한다.
인터리버(245)는, 부호화 장치(210)의 인터리버(212)와 마찬가지로, 취득한 디지털 정보를 소정의 순서대로 재배열한다. 이 인터리버(245)에 의한 재배열의 패턴은, 인터리버(212)와 마찬가지이다. 이와 같이 하여 재배열된 디지털 정보는, 컨볼루션 복호부(242)에 공급된다.
이상과 같이, 복호 장치(240)는, 통신 처리부(241)에서 취득한 수신어에 대하여, 디인터리버(243)와 인터리버(245)를 통하면서, 컨볼루션 복호부(242)에 의한 연판정 복호와, 리드 솔로몬 SPA 복호부(244)에 의한 섬 프로덕트 알고리즘을 이용한 복호를 반복하여 행하고, 복호 처리에서의 복호 오류 확률을 작게 해 간다. 또한, 이 복호의 반복 횟수는, 미리 정해져 있어도 되고, 예를 들면, 오류 정정하는 개소의 수 등과 같은 소정의 조건에 기초하여, 반복을 중지할지의 여부가 판정되도록해도 된다.
이와 같이 함으로써, 복호 장치(240)는, 용이하게 성능이 좋은 복호 처리를 행할 수 있어, 도 26의 오류 정정 시스템은, 보다 정확한 통신을 행할 수 있다. 또한, 복호 장치(240)는, 패리티 검사 행렬을 저밀도화시키기 전에, 패리티 검사 행렬의 각 요소, 행렬을 전개하기 때문에, 복호 처리의 연산 코스트를 낮게 억제할 수 있다.
또한, 이상에서, 리드 솔로몬 SPA 복호부(244)는, 복호한 디지털 정보를 복호 장치(240)의 외부에 출력함과 함께 인터리버(245)에 공급하도록 설명했지만, 이에 한하지 않고, 예를 들면, 복호를 반복하고 있는 동안에는, 인터리버(245)에만 복호한 디지털 정보를 공급하도록 하고, 복호의 반복이 종료한 경우에, 디지털 정보의 출력처를 인터리버(245)로부터 복호 장치(240)의 외부로 바꾸어, 복호한 디지털 정보를 출력하도록 하여도 된다.
또한, 이상에서는, 오류 정정 시스템은, 리드 솔로몬 부호를 복호하도록 설명했지만, 이에 한하지 않고, 예를 들면, BCH 부호를 복호하도록 해도 된다.
도 27은, 본 발명을 적용한, 리드 솔로몬 부호를 이용하여 오류 정정을 행하는 오류 정정 시스템을 적용한 기록 재생 장치의 구성예를 나타내는 블록도이다. 도 27에 도시되는 기록 재생 장치는, 예를 들면, DVD 레코드 플레이어 등의 디지털 기록 매체의 기록 재생 장치이다.
도 27의 기록 재생 장치(250)는, 외부로부터 공급된 디지털 정보를, 부호화 처리부(260)에서 부호화하고, 기록 재생 처리부(270)에서 기록 매체(272)에 기록한다. 또한, 기록 재생 장치(250)는, 기록 매체(272)에 기록되어 있는 디지털 정보 를, 기록 재생 처리부(270)에서 재생하고, 복호 처리부(280)에서 복호 처리를 행하여 원래의 디지털 정보를 취득하고, 그 정보를 외부에 출력한다.
부호화 처리부(260)는, 디지털 정보에 서로 다른 차원에 관한 리드 솔로몬 부호를 행하는 제1 리드 솔로몬 부호화부(261-1) 내지 제n 리드 솔로몬 부호화부(261-n)로 이루어진다.
부호화 처리부(260)의 외부로부터 공급된 디지털 정보는, 제1 리드 솔로몬 부호화부(261-1)에서 1차원째에 관한 리드 솔로몬 부호화가 행하여진다. 계속해서, 디지털 정보는, 제2 리드 솔로몬 부호화부(261-2) 내지 제n 리드 솔로몬 부호화부(261-n)의 각 부에서, 2차원째 내지 n차원째까지의 각 차원째에 관한 리드 솔로몬 부호가 순서대로 행해진다. 제n 리드 솔로몬 부호화부(261-n)에 의한 부호화가 종료하면, 부호화 처리부(260)는, 부호화된 디지털 정보를 기록 재생 처리부(270)에 공급한다.
기록 재생 처리부(270)는, 부호화 처리부(260)로부터 공급된 정보를 기록 매체(272)에 기록하는 기록부(271), 예를 들면, 광 디스크 등의 기록 매체(272), 기록 매체(272)에 기록되어 있는 정보를 재생하는 재생부(273)로 이루어진다.
기록 재생 처리부(270)의 기록부(271)는, 부호화 처리부(260)로부터 공급된 디지털 정보를 NRZI(Non Return to Zero Invert) 변환(NRZI 부호화) 등을 하여 기록 매체(272)에 기록한다. 또한, 기록 재생 처리부(270)의 재생부(273)는, 기록 매체(272)에 기록되어 있는 디지털 정보(리드 솔로몬 부호화된 디지털 정보)를 재생하고, 그 디지털 정보에 실시된 NRZI 변환을 원래대로 되돌리고(복호하고), 그 디지털 정보를 복호 처리부(280)에 공급한다.
복호 처리부(280)는, 부호화 처리부(260)에 대응하는 복호기로서, 디지털 정보에 서로 다른 차원에 관하여, 섬 프로덕트 알고리즘에 의한 복호 처리를 행하는 제1 리드 솔로몬 SPA 복호부(281-1) 내지 제n 리드 솔로몬 SPA 복호부(281-n)로 이루어진다.
제1 리드 솔로몬 SPA 복호부(281-1) 내지 제n 리드 솔로몬 SPA 복호부(281-n)는, 각각, 부호화 처리부(260)의 제1 리드 솔로몬 부호화부(261-1) 내지 제n 리드 솔로몬 부호화부(261-n)에 대응하고, 각 차원에 관한 리드 솔로몬 부호에 대하여, 섬 프로덕트 알고리즘에 의한 복호를 행한다. 제1 리드 솔로몬 SPA 복호부(281-1) 내지 제n 리드 솔로몬 SPA 복호부(281-n)는, 각각, 도 20에 도시되는 복호 장치(150)와 기본적으로 마찬가지의 구성이고, 기본적으로 마찬가지의 동작을 행한다. 따라서, 제1 리드 솔로몬 SPA 복호부(281-1) 내지 제n 리드 솔로몬 SPA 복호부(281-n)는, 각각, 복호 장치(150)의 경우와 마찬가지로, 도 20의 블록도, 및 도 21에 도시되는 흐름도를 적용할 수 있다.
복호 처리부(280)는, 제1 리드 솔로몬 SPA 복호부(281-1) 내지 제n 리드 솔로몬 SPA 복호부(281-n)의 각 부에서, 재생부(273)로부터 공급된 디지털 정보에 대하여, 패리티 검사 행렬의 각 요소, 행렬을 전개하고, 그 패리티 검사 행렬을 저밀도화하고, 각 차원째에 관한 섬 프로덕트 알고리즘에 의한 복호 처리를 행한다. 그 때, 복호 처리부(280)는, 도 27에 도시된 바와 같이, 부호화 처리부(260)의 경우와 반대로, 우선, 제n 리드 솔로몬 SPA 복호부(281-n)에서 제n 차원째에 관한 섬 프로덕트 알고리즘에 의한 복호 처리부터 행하고, 계속해서, 직렬로 접속되는 각 리드 솔로몬 SPA 복호부에서, 각각, n-1 차원째, n-2 차원째로 순서대로 차원 수를 내리 도록 섬 프로덕트 알고리즘에 의한 복호 처리를 행하고, 마지막으로 제1 리드 솔로몬 SPA 복호부(281-1)에서 제1 차원째에 관한 섬 프로덕트 알고리즘에 의한 복호 처리를 행한다. 복호 처리부(280)는, 이와 같이 하여 복원한 원래의 디지털 정보를 기록 재생 장치(250)의 외부에 출력한다.
이와 같이 함으로써, 복호 처리부(280)는, 용이하게 성능이 좋은 복호 처리를 행할 수 있고, 기록 재생 장치(250)는, 보다 정확하게 디지털 정보의 기록 및 재생을 행할 수 있다. 또한, 복호 처리부(280)는, 패리티 검사 행렬을 저밀도화시키기 전에, 패리티 검사 행렬의 각 요소, 행렬을 전개하기 때문에, 복호 처리의 연산 코스트를 낮게 억제할 수 있다.
또한, 이상에서는, 기록 재생 장치(250)는, 리드 솔로몬 부호를 복호하도록 설명했지만, 이에 한하지 않고, 예를 들면, BCH 부호를 복호하도록 해도 된다.
이상에서는, 디지털 정보의 기록 및 재생을 행하는 기록 재생 장치의 예에 대하여 설명했지만, 이 기록 재생 장치(250)의, 디지털 정보를 기록 매체에 기록하는 기록 기능과, 기록 매체에 기록되어 있는 디지털 정보를 재생하는 재생 기능이 별개로 구성되도록 해도 된다.
도 28은, 도 27의 기록 재생 장치(250)와 마찬가지의 기록 기능을 갖는 기록 장치의 구성예를 나타내는 블록도이다. 또한, 도 27에 도시되는 경우와 마찬가지의 부분에 대하여는 동일한 부호를 붙이고 있고, 그 설명을 생략한다.
도 28의 기록 장치(300)는, 제1 리드 솔로몬 부호화부(261-1) 내지 제n 리드 솔로몬 부호화부(261-n)로 이루어지는 부호화 처리부(260), 및 기록부(271) 및 기록 매체(272)로 이루어지는 기록 처리부(310)를 갖는다. 기록 장치(300)의 부호화 처리부(260)의 외부로부터 공급된 디지털 정보는, 먼저, 제1 리드 솔로몬 부호화부(261-1)에서 1차원째에 관한 리드 솔로몬 부호화가 행하여진다. 계속해서, 그 1차원째에 관하여 부호화된 디지털 정보는, 제2 리드 솔로몬 부호화부(261-2) 내지 제n 리드 솔로몬 부호화부(261-n)의 각 부에 순서대로 공급되고, 각 부에서, 2차원째 내지 n차원째까지의 각 차원째에 관한 리드 솔로몬 부호가 행해진다. 제n 리드 솔로몬 부호화부(261-n)에 의한 부호화가 종료하면, 부호화 처리부(260)는, 부호화된 디지털 정보를 기록 처리부(310)에 공급한다.
기록 처리부(310)는, 부호화 처리부(260)로부터 공급된 정보를 기록 매체(272)에 기록하는 기록부(271), 및 예를 들면, 광 디스크 등의 기록 매체(272)를 포함한다. 기록 처리부(310)의 기록부(271)는, 부호화 처리부(260)로부터 공급된 디지털 정보를 NRZI 변환(NRZI 부호화) 등을 하여 기록 매체(272)에 기록한다.
즉, 기록 장치(300)는, 도 27의 기록 재생 장치(250)와 마찬가지로, 부호화 처리부(260)에서 디지털 정보를 리드 솔로몬 부호화하고, 기록 처리부(310)의 기록부(271)의 제어에 의해, 그 리드 솔로몬 부호화된 디지털 정보를 기록 매체(272)에 기록한다.
이러한 기록 장치(300)에 대응하는 재생 장치를 도 29에 도시한다. 또한, 도 27에 도시되는 경우와 마찬가지의 부분에 대해서는 동일한 부호를 붙이고 있고, 그 설명을 생략한다.
도 29의 재생 장치(350)는, 도 28에 도시되는 기록 장치(300)에 대응하는 재생 장치이고, 제1 리드 솔로몬 SPA 복호부(281-1) 내지 제n 리드 솔로몬 복호부(281-n)로 이루어지는 복호 처리부(280), 및 기록 매체(272) 및 재생부(273)로 이루어지는 재생 처리부(350)를 갖는다. 재생 장치(350)의 재생부(273)는, 기록 매체(272)에 기록되어 있는 디지털 정보(리드 솔로몬 부호화된 디지털 정보)를 재생하고, 그 디지털 정보에 실시된 NRZI 변환을 원래대로 되돌려(복호하여), 그 디지털 정보를 복호 처리부(280)에 공급한다.
복호 처리부(280)는, 제1 리드 솔로몬 SPA 복호부(281-1) 내지 제n 리드 솔로몬 SPA 복호부(281-n)의 각 부에서, 재생부(273)로부터 공급된 디지털 정보에 대하여, 패리티 검사 행렬의 각 요소, 행렬을 전개하고, 그 패리티 검사 행렬을 저밀도화하여, 각 차원째에 관한 섬 프로덕트 알고리즘에 의한 복호 처리를 행한다. 그 때, 복호 처리부(280)는, 도 29에 도시된 바와 같이, 부호화 처리부(260)의 경우와 반대로, 우선, 제n 리드 솔로몬 SPA 복호부(281-n)에서 제n 차원째에 관한 섬 프로덕트 알고리즘에 의한 복호 처리부터 행하고, 계속해서, 직렬로 접속되는 각 리드 솔로몬 SPA 복호부에서, 각각, n-1 차원째, n-2 차원째로 순서대로 차원 수를 내리 도록 섬 프로덕트 알고리즘에 의한 복호 처리를 행하고, 마지막으로 제1 리드 솔로몬 SPA 복호부(281-1)에서 제1 차원째에 관한 섬 프로덕트 알고리즘에 의한 복호 처리를 행한다. 복호 처리부(280)는, 이와 같이 하여 복원한 원래의 디지털 정보를 재생 장치(350)의 외부에 출력한다.
이와 같이 함으로써, 복호 처리부(280)는, 용이하게 성능이 좋은 복호 처리를 행할 수 있고, 재생 장치(350)는, 보다 정확하게 디지털 정보의 재생을 행할 수 있다. 또한, 복호 처리부(280)는, 패리티 검사 행렬을 저밀도화시키기 전에, 패리티 검사 행렬의 각 요소, 행렬을 전개하기 때문에, 복호 처리의 연산 코스트를 억제할 수 있다.
또한, 이상에서는, 기록 재생 장치(300)는, 리드 솔로몬 부호를 복호하도록 설명했지만, 이에 한하지 않고, 예를 들면, BCH 부호를 복호하도록 하여도 된다.
도 30은, 본 발명을 적용한, 리드 솔로몬 부호를 이용하여 오류 정정을 행하는 오류 정정 시스템을 적용한 기록 재생 장치의 구성예를 나타내는 블록도이다. 도 30에 도시되는 기록 재생 장치(400)는, 예를 들면, DVD 레코드 플레이어 등의 디지털 기록 매체의 기록 재생 장치이다. 또한, 도 27에 도시되는 경우와 마찬가지의 부분에 대해서는 동일한 부호를 붙이고 있고, 그 설명을 생략한다.
도 30의 기록 재생 장치(400)는, 외부로부터 공급된 디지털 정보를, 부호화 처리부(260)에서 부호화하고, 기록 재생 처리부(270)에서 기록 매체(272)에 기록한다. 또한, 기록 재생 장치(400)는, 기록 매체(272)에 기록되어 있는 디지털 정보를, 기록 재생 처리부(270)에서 재생하고, 복호 처리부(410)에서 복호 처리를 행하여 원래의 디지털 정보를 취득하고, 그 정보를 외부에 출력한다.
복호 처리부(410)는, 부호화 처리부(260)에 대응하는 복호기로서, 각각이, 도 27에 도시되는 복호 처리부(280)와 마찬가지의 구성이고, 마찬가지의 복호 처리를 행하는, 직렬로 접속된 m개의 복호부인 제1 복호부(420-1) 내지 제m 복호부 (420-m)로 이루어진다.
제1 복호부(420-1)는, 도 27의 복호 처리부(280)와 마찬가지로, 부호화 처리부(260)의 제1 리드 솔로몬 부호화부(261-1) 내지 제n 리드 솔로몬 부호화부(261-n)에 대응하여, 각 차원에 관한 리드 솔로몬 부호에 대하여, 섬 프로덕트 알고리즘에의한 복호를 행하는, 직렬로 접속된 n개의 복호부인 제1 리드 솔로몬 SPA 복호부(421-1-1) 내지 제n 리드 솔로몬 SPA 복호부(421-1-n)로 구성된다. 이 제1 리드 솔로몬 SPA 복호부(421-1-1) 내지 제n 리드 솔로몬 SPA 복호부(421-1-n)는, 각각, 도 20에 도시되는 복호 장치(150)와 기본적으로 마찬가지의 구성이고, 기본적으로 마찬가지의 동작을 행한다. 따라서, 이들의, 제1 리드 솔로몬 SPA 복호부(421-1-1) 내지 제n 리드 솔로몬 SPA 복호부(421-1-n)는, 각각, 복호 장치(150)의 경우와 마찬가지로, 도 20의 블록도, 및 도 21에 도시되는 흐름도를 적용할 수 있다.
제2 복호부(420-2) 내지 제m 복호부(420-m)도, 각각, 제1 복호부(420-1)와 마찬가지의 구성이고, 제1 복호부(420-1)와 마찬가지의 동작을 행한다. 예를 들면, 제2 복호부(420-2)는, 직렬로 접속된 n개의 복호부인 제1 리드 솔로몬 SPA 복호부(421-2-1) 내지 제n 리드 솔로몬 SPA 복호부(421-2-n)로 구성되고, 제m 복호부(420-m)도 직렬로 접속된 n개의 복호부인 제1 리드 솔로몬 SPA 복호부(421-m-1) 내지 제n 리드 솔로몬 SPA 복호부(421-m-n)로 구성된다. 또한, 이들 제2 복호부(420-2) 내지 제m 복호부(420-m)를 구성하는 제1 리드 솔로몬 SPA 복호부 내지 제n 리드 솔로몬 SPA 복호부는 모두, 각각, 도 20에 도시되는 복호 장치(150)와 기본적으로 마찬가지의 구성이고, 기본적으로 마찬가지의 동작을 행하기 때문에, 각각, 복호 장치(150)의 경우와 마찬가지로, 도 20의 블록도, 및 도 21에 도시되는 흐름도를 적용할 수 있다.
복호 처리부(410)는, 우선, 재생부(273)로부터 공급된 디지털 정보에 대하여, 제1 복호부(420-1)의 제1 리드 솔로몬 SPA 복호부(421-1-1) 내지 제n 리드 솔로몬 SPA 복호부(421-1-n)의 각 부에서, 패리티 검사 행렬의 각 요소, 행렬을 전개하고, 그 패리티 검사 행렬을 저밀도화하여, 각 차원째에 관한 섬 프로덕트 알고리즘에 의한 복호 처리를 행한다.
그 때, 제1 복호부(420-1)는, 부호화 처리부(260)의 경우와 반대로, 우선, 제n 리드 솔로몬 SPA 복호부(421-1-n)에서 제n 차원째에 관한 섬 프로덕트 알고리즘에 의한 복호 처리부터 행하고, 계속해서, 직렬로 접속되는 각 리드 솔로몬 SPA 복호부에서, 각각, n-1 차원째, n-2 차원째로 순서대로 차원 수를 내리도록 섬 프로덕트 알고리즘에 의한 복호 처리를 행하고, 마지막으로 제1 리드 솔로몬 SPA 복호부(421-1-1)에서 제1 차원째에 관한 섬 프로덕트 알고리즘에 의한 복호 처리를 행한다.
복호 처리가 종료하면, 제1 복호부(420-1)는, 복호된 디지털 정보를 제2 복호부(420-2)에 공급한다. 제2 복호부(420-2)는, 제1 복호부(420-1)의 경우와 마찬가지로, 제1 리드 솔로몬 SPA 복호부(421-2-1) 내지 제n 리드 솔로몬 SPA 복호부(421-2-n)를 이용하여, 차원 수를 1개씩 내리는 순서대로 섬 프로덕트 알고리즘에 의한 복호 처리를 행하고, 복호된 디지털 정보를 다음의 복호부에 공급한다. 이와 같이 하여, 순서대로 제m 복호부(420-m)까지 복호 처리가 계속할 수 있다. 제m 복 호부(420-m)에서의 복호 처리가 완료하면, 복호 처리부(410)는, 복호된 디지털 정보를 기록 재생 장치(400)의 외부에 출력한다.
이와 같이 함으로써, 복호 처리부(410)는, 용이하게 성능이 좋은 복호 처리를 행할 수 있어, 기록 재생 장치(400)는, 보다 정확하게 디지털 정보의 기록 및 재생을 행할 수 있다. 또한, 복호 처리부(410)는, 패리티 검사 행렬을 저밀도화시키기 전에, 패리티 검사 행렬의 각 요소, 행렬을 전개하기 때문에, 복호 처리의 연산 코스트를 낮게 억제할 수 있다.
또한, 이상에서는, 기록 재생 장치(400)는, 리드 솔로몬 부호를 복호하도록 설명했지만, 이에 한하지 않고, 예를 들면, BCH 부호를 복호하도록 해도 된다.
또한, 이상에서는, 디지털 정보의 기록 및 재생을 행하는 기록 재생 장치의 예에 대하여 설명했지만, 이 기록 재생 장치(400)의, 디지털 정보를 기록 매체에 기록하는 기록 기능과, 기록 매체에 기록되어 있는 디지털 정보를 재생하는 재생 기능이 별개로 구성되도록 해도 된다. 그 경우, 도 30의 기록 재생 장치(400)와 마찬가지의 기록 기능을 갖는 기록 장치는, 도 28에 도시되는 기록 장치(300)와 마찬가지의 구성이고, 마찬가지의 동작을 행하기 때문에, 도 28의 블록도를 적용할 수가 있고, 그 설명을 생략한다.
이러한 도 30의 기록 재생 장치(400)와 마찬가지의 기록 기능을 갖는 기록 장치인 기록 장치(300)에 대응하는 재생 장치를 도 31에 도시한다. 또한, 도 30에 도시된 경우와 마찬가지의 부분에 대해서는 동일한 부호를 붙이고 있고, 그 설명을 생략한다.
도 31의 재생 장치(450)는, 도 28에 도시되는 기록 장치(300)에 대응하는 재생 장치이고, 제1 복호부(420-1) 내지 제m 복호부(420-m)로 이루어지는 복호 처리부(410), 및 기록 매체(272) 및 재생부(273)로 이루어지는 재생 처리부(460)를 갖는다. 재생 장치(450)의 재생부(273)는, 기록 매체(272)에 기록되어 있는 디지털 정보(리드 솔로몬 부호화된 디지털 정보)를 재생하고, 그 디지털 정보에 실시된 NRZI 변환을 원래대로 되돌리고(복호하고), 그 디지털 정보를 복호 처리부(410)에 공급한다.
복호 처리부(410)는, 우선, 재생부(273)로부터 공급된 디지털 정보에 대하여, 제1 복호부(420-1)에서, 패리티 검사 행렬의 각 요소, 행렬을 전개하고, 그 패리티 검사 행렬을 저밀도화하여, 섬 프로덕트 알고리즘에 의한 복호 처리를 각차원에 대하여 행한다. 계속해서, 복호 처리부(410)는, 디지털 정보를, 직렬로 접속되는 제2 복호부(420-2 내지 420-m)에, 순서대로 공급하고, 각 부에서 섬 프로덕트 알고리즘에 의한 복호 처리를 행한다. 제m 복호부(420-m)에서의 복호 처리가 완료하면, 복호 처리부(410)는, 복호된 디지털 정보를 기록 재생 장치(400)의 외부에 출력한다.
이와 같이 함으로써, 복호 처리부(410)는, 용이하게 성능이 좋은 복호 처리를 행할 수 있고, 재생 장치(450)는, 보다 정확하게 디지털 정보의 재생을 행할 수 있다. 또한, 복호 처리부(410)는, 패리티 검사 행렬을 저밀도화시키기 전에, 패리티 검사 행렬의 각 요소, 행렬을 전개하기 때문에, 복호 처리의 연산 코스트를 억제할 수 있다.
또한, 이상에서는, BCH 부호 또는 리드 솔로몬 부호에 대한 복호에 본 발명을 적용하는 경우에 대해 설명했지만, 이에 한하지 않고, 본 발명은, 일반적인 선형 부호이면 어떠한 부호에 대응하는 복호에 본 발명을 적용하도록 해도 된다.
또한, 이상에서는, 재생 장치(450)는, 리드 솔로몬 부호를 복호하도록 설명하였지만, 이에 한하지 않고, 예를 들면, BCH 부호를 복호하도록 하여도 된다.
또한, 이상에서는, 예를 들면, 도 12에 도시되는 복호 장치(1OO), 도 20에 도시되는 복호 장치(150), 도 25에 도시되는 리드 솔로몬 SPA 복호부(234), 도 26에 도시되는 리드 솔로몬 SPA 복호부(244), 도 27에 도시되는 제1 리드 솔로몬 SPA 복호부(281-1) 내지 제n 리드 솔로몬 복호부(281-n), 및 도 30에 도시되는 제1 복호부(420-1) 내지 제m 복호부(420-m)와 같은, 본 발명을 적용한 복호 장치 또는 복호부는, 일반의 선형 부호에 대한 복호 방법으로서, 검사 행렬을 저밀도화하고, 그 저밀도화한 검사 행렬을 이용하여, 선형 부호를 복호하도록 설명했지만, 이에 한하지 않고, 예를 들면, 다른 장치 또는 다른 처리부에서, 검사 행렬을 미리 저밀도화해 두도록 해도 된다. 그 경우, 복호 장치(또는 복호부)는, 그 미리 저밀도화된 검사 행렬을 이용하여, 부호화 장치 등으로부터 공급되는 선형 부호의 복호를 행한다. 즉, 예를 들면, 도 25에 도시되는 복호 장치(230), 도 26에 도시되는 복호 장치(240), 도 27에 도시되는 기록 재생 장치(250), 도 29에 도시되는 재생 장치(350),도 30에 도시되는 기록 재생 장치(400), 또는, 도 31에 도시되는 재생 장치(450)의 외부에서 검사 행렬이 미리 저밀도화되도록 하고, 각 장치가, 그 미리 저밀도화된 검사 행렬을 이용하여, 공급되는 선형 부호의 복호를 행하도록 하여도 된 다.
상술한 일련의 처리는, 하드웨어에 의해 실행시킬 수도 있고, 소프트웨어에 의해 실행시킬 수도 있다. 소프트웨어에 의해 실행되는 경우, 상술한 화상 처리 장치는, 도 32에 도시되는 퍼스널 컴퓨터로 구성된다.
도 32에서, 퍼스널 컴퓨터(500)의 CPU(Central Processing Unit)(501)는, R OM(Read 0nly Memory)(502)에 기억되어 있는 프로그램, 또는 기억부(513)로부터 RAM(Random Access Memory)(503)에 로드된 프로그램에 따라서 각종의 처리를 실행한다. RAM(503)에는 또한, CPU(501)가 각종의 처리를 실행함에 있어서 필요한 데이터 등도 적절하게 기억된다.
CPU(501), ROM(502), 및 RAM(503)은, 버스(504)를 통하여 서로 접속되어 있다. 이 버스(504)에는 또한, 입출력 인터페이스(510)도 접속되어 있다.
입출력 인터페이스(510)에는, 키보드, 마우스 등으로 이루어지는 입력부(511), CRT(Cathode Ray Tube), LCD(Liquid Crystal display) 등으로 이루어지는 디스플레이, 및 스피커 등으로 이루어지는 출력부(512), 하드디스크 등으로 구성되는 기억부(513), 모뎀 등으로 구성되는 통신부(514)가 접속되어 있다. 통신부(514)는, 인터넷을 포함하는 네트워크를 통한 통신 처리를 행한다.
입출력 인터페이스(510)에는 또한, 필요에 따라 드라이브(515)가 접속되고, 자기 디스크, 광 디스크, 광 자기 디스크, 혹은 반도체 메모리 등의 리무버블 미디어(921)가 적절하게 장착되고, 이들로부터 판독된 컴퓨터 프로그램이, 필요에 따라 기억부(513)에 인스톨된다.
일련의 처리를 소프트웨어에 의해 실행시키는 경우에는, 그 소프트웨어를 구성하는 프로그램이, 네트워크나 기록 매체로부터 인스톨된다.
이 기록 매체는, 도 32에 도시된 바와 같이, 장치 본체와는 별도로, 사용자에게 프로그램을 제공하기 위해 배포되는, 프로그램이 기록되어 있는 자기 디스크(플로피 디스크를 포함함), 광 디스크(CD-ROM(Compact Disk-Read Only Memory), DVD(Digital Versatile Disk)를 포함함), 광 자기 디스크(MD(Mini-Disk)를 포함함), 혹은 반도체 메모리 등으로 이루어지는 리무버블 미디어(521)로 구성될 뿐만 아니라, 장치 본체에 미리 내장된 상태로 사용자에게 제공되는, 프로그램이 기록되어 있는 ROM(502)이나, 기억부(513)에 포함되는 하드디스크 등으로 구성된다.
또한, 본 명세서에서, 기록 매체에 기록되는 프로그램을 기술하는 단계는, 기재된 순서에 따라서 시계열적으로 행해지는 처리는 물론, 반드시 시계열적으로 처리되지 않더라도, 병렬적 혹은 개별적으로 실행되는 처리도 포함하는 것이다.
또한, 본 명세서에서, 시스템이란, 복수의 장치로 구성되는 장치 전체를 나타내는 것이다.
이상과 같이 본 발명에 따르면, 일반적인 선형 부호의 복호 처리를 행할 수 있다.
특히, 일반적인 선형 부호에 대한 복호 방법으로서 섬 프로덕트 알고리즘을 적용한 경우에, 용이하게, 성능이 좋은 복호 처리를 행할 수 있다.
Claims (32)
- 환 R 상의 선형 부호의 복호 방법으로서,상기 선형 부호의 검사 행렬의 각 행의 선형 결합을 계산하는 선형 결합 계산 단계와,상기 선형 결합 계산 단계의 처리에 의해 계산된 상기 선형 결합에 의해 얻어지는 벡터의 집합 중에서, 부호보(符號補) 공간을 확장하는, 보다 가중치가 낮은 벡터 부분 집합을 추출하고, 상기 벡터 부분 집합의 전체 벡터를 행 성분으로 하는 새로운 검사 행렬을 작성하는 것에 의해, 값이 1인 요소의 밀도를 저밀도화시키는 검사 행렬 작성 단계와,상기 검사 행렬 작성 단계의 처리에 의해 작성된 새로운 검사 행렬을 이용하여, 상기 선형 부호를 섬 프로덕트 알고리즘에 의해 복호하는 복호 단계를 포함하는 것을 특징으로 하는 복호 방법.
- 삭제
- 삭제
- 삭제
- 제1항에 있어서,상기 환은 소수의 멱승을 원소로 하는 유한체이고,상기 유한체 상의 상기 검사 행렬을, 상기 유한체의 부분체 상에 소정의 차원으로 전개하는 전개 단계를 더 포함하고,상기 선형 결합 계산 단계는, 상기 전개 단계의 처리에 의해 전개된 상기 검사 행렬의 각 행의 선형 결합을 계산하는 것을 특징으로 하는 복호 방법.
- 환 R 상의 선형 부호의 복호 장치로서,상기 선형 부호의 검사 행렬의 각 행의 선형 결합을 계산하는 선형 결합 계산 수단과,상기 선형 결합 계산 수단에 의해 계산된 상기 선형 결합에 의해 얻어지는 벡터의 집합 중에서, 부호보 공간을 확장하는, 보다 가중치가 낮은 벡터 부분 집합을 추출하고, 상기 벡터 부분 집합의 전체 벡터를 행 성분으로 하는 새로운 검사 행렬을 작성하는 것에 의해, 값이 1인 요소의 밀도를 저밀도화시키는 검사 행렬 작성 수단과,상기 검사 행렬 작성 수단에 의해 작성된 새로운 검사 행렬을 이용하여, 상기 선형 부호를 섬 프로덕트 알고리즘에 의해 복호하는 복호 수단을 포함하는 것을 특징으로 하는 복호 장치.
- 삭제
- 삭제
- 삭제
- 삭제
- 제6항에 있어서,컨볼루션 부호화된 선형 부호를 연판정 복호하는 연판정 복호 수단을 더 구비하고,상기 선형 결합 계산 수단은, 상기 연판정 복호 수단에 의해 연판정 복호된 상기 선형 부호의 검사 행렬의 각 행의 선형 결합을 계산하는 것을 특징으로 하는 복호 장치.
- 제11항에 있어서,상기 연판정 복호 수단에 의한 상기 연판정 복호, 상기 선형 결합 계산 수단에 의한 계산 및 상기 검사 행렬 작성 수단에 의한 새로운 검사 행렬의 작성, 및 상기 복호 수단에 의한 상기 복호를 반복하여 실행하는 것을 특징으로 하는 복호 장치.
- 삭제
- 삭제
- 삭제
- 삭제
- 기록 매체에 정보를 기록하고, 상기 기록 매체에 기록된 상기 정보를 재생하는 기록 재생 장치로서,환 R 상의 선형 부호를 상기 기록 매체에 기록하는 기록 수단과,상기 기록 수단에 의해 기록된 상기 선형 부호를 재생하는 재생 수단과,상기 재생 수단에 의해 재생된 상기 선형 부호의 검사 행렬의 각 행의 선형 결합을 계산하는 선형 결합 계산 수단과,상기 선형 결합 계산 수단에 의해 계산된 상기 선형 결합에 의해 얻어지는 벡터의 집합 중에서, 부호보 공간을 확장하는, 보다 가중치가 낮은 벡터 부분 집합을 추출하고, 상기 벡터 부분 집합의 전체 벡터를 행 성분으로 하는 새로운 검사 행렬을 작성하는 것에 의해, 값이 1인 요소의 밀도를 저밀도화시키는 검사 행렬 작성 수단과,상기 검사 행렬 작성 수단에 의해 작성된 새로운 검사 행렬을 이용하여, 상기 선형 부호를 섬 프로덕트 알고리즘에 의해 복호하는 복호 수단을 포함하는 것을 특징으로 하는 기록 재생 장치.
- 삭제
- 삭제
- 기록 매체에 정보를 기록하고, 상기 기록 매체에 기록된 상기 정보를 재생하는 기록 재생 장치의 기록 재생 방법으로서,환 R 상의 선형 부호의, 상기 기록 매체에의 기록을 제어하는 기록 제어 단계와,상기 기록 제어 단계의 처리에 의해 기록이 제어된 상기 선형 부호의 재생을 제어하는 재생 제어 단계와,상기 재생 제어 단계의 처리에 의해 재생이 제어된 상기 선형 부호의 검사 행렬의 각 행의 선형 결합을 계산하는 선형 결합 계산 단계와,상기 선형 결합 계산 단계의 처리에 의해 계산된 상기 선형 결합에 의해 얻어지는 벡터의 집합 중에서, 부호보 공간을 확장하는, 보다 가중치가 낮은 벡터 부분 집합을 추출하고, 상기 벡터 부분 집합의 전체 벡터를 행 성분으로 하는 새로운 검사 행렬을 작성하는 것에 의해, 값이 1인 요소의 밀도를 저밀도화시키는 검사 행렬 작성 단계와,상기 검사 행렬 작성 단계의 처리에 의해 작성된 새로운 검사 행렬을 이용하여, 상기 선형 부호를 섬 프로덕트 알고리즘에 의해 복호하는 복호 단계를 포함하는 것을 특징으로 하는 기록 재생 방법.
- 삭제
- 삭제
- 삭제
- 삭제
- 기록 매체에 기록된 정보를 재생하는 재생 장치로서,상기 기록 매체에 기록된, 환 R 상의 선형 부호를 재생하는 재생 수단과,상기 재생 수단에 의해 재생된 상기 선형 부호의 검사 행렬의 각 행의 선형 결합을 계산하는 선형 결합 계산 수단과,상기 선형 결합 계산 수단에 의해 계산된 상기 선형 결합에 의해 얻어지는 벡터의 집합 중에서, 부호보 공간을 확장하는, 보다 가중치가 낮은 벡터 부분 집합을 추출하고, 상기 벡터 부분 집합의 전체 벡터를 행 성분으로 하는 새로운 검사 행렬을 작성하는 것에 의해, 값이 1인 요소의 밀도를 저밀도화시키는 검사 행렬 작성 수단과,상기 검사 행렬 작성 수단에 의해 작성된 새로운 검사 행렬을 이용하여, 상기 선형 부호를 섬 프로덕트 알고리즘에 의해 복호하는 복호 수단을 포함하는 것을 특징으로 하는 재생 장치.
- 삭제
- 삭제
- 기록 매체에 기록된 정보를 재생하는 재생 장치의 재생 방법으로서,상기 기록 매체에 기록된, 환 R 상의 선형 부호의 재생을 제어하는 재생 제어 단계와,상기 재생 제어 단계의 처리에 의해 재생이 제어된 상기 선형 부호의 검사 행렬의 각 행의 선형 결합을 계산하는 선형 결합 계산 단계와,상기 선형 결합 계산 단계의 처리에 의해 계산된 상기 선형 결합에 의해 얻어지는 벡터의 집합 중에서, 부호보 공간을 확장하는, 보다 가중치가 낮은 벡터 부분 집합을 추출하고, 상기 벡터 부분 집합의 전체 벡터를 행 성분으로 하는 새로운 검사 행렬을 작성하는 것에 의해, 값이 1인 요소의 밀도를 저밀도화시키는 검사 행렬 작성 단계와,상기 검사 행렬 작성 단계의 처리에 의해 작성된 새로운 검사 행렬을 이용하여, 상기 선형 부호를 섬 프로덕트 알고리즘에 의해 복호하는 복호 단계를 포함하는 것을 특징으로 하는 재생 방법.
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPJP-P-2003-00153927 | 2003-05-30 | ||
JP2003153927 | 2003-05-30 | ||
PCT/JP2004/007747 WO2004107585A1 (ja) | 2003-05-30 | 2004-05-28 | 復号方法および復号装置、プログラム、記録再生装置および方法、並びに、再生装置および方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060014020A KR20060014020A (ko) | 2006-02-14 |
KR101143732B1 true KR101143732B1 (ko) | 2012-05-09 |
Family
ID=33487304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020057001762A KR101143732B1 (ko) | 2003-05-30 | 2004-05-28 | 복호 방법 및 복호 장치, 기록 재생 장치 및 방법과, 재생 장치 및 방법 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7607063B2 (ko) |
EP (1) | EP1524771B1 (ko) |
JP (1) | JP4432902B2 (ko) |
KR (1) | KR101143732B1 (ko) |
CN (1) | CN100546204C (ko) |
DE (1) | DE602004030869D1 (ko) |
ES (1) | ES2356912T3 (ko) |
WO (1) | WO2004107585A1 (ko) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050044963A (ko) * | 2003-11-08 | 2005-05-16 | 삼성전자주식회사 | q차 제곱 잉여류를 이용한 준순환 저밀도 패러티 검사부호 생성 방법 |
JP4534128B2 (ja) * | 2004-03-05 | 2010-09-01 | ソニー株式会社 | 符号化方法および装置 |
US7581157B2 (en) | 2004-06-24 | 2009-08-25 | Lg Electronics Inc. | Method and apparatus of encoding and decoding data using low density parity check code in a wireless communication system |
US7752521B2 (en) * | 2004-10-12 | 2010-07-06 | Nortel Networks Limited | Low density parity check (LDPC) code |
US7996746B2 (en) | 2004-10-12 | 2011-08-09 | Nortel Networks Limited | Structured low-density parity-check (LDPC) code |
CN100583651C (zh) | 2004-12-22 | 2010-01-20 | Lg电子株式会社 | 用于使用信道代码解码的装置和方法 |
US7958424B2 (en) * | 2005-06-22 | 2011-06-07 | Trident Microsystems (Far East) Ltd. | Multi-channel LDPC decoder architecture |
US11327674B2 (en) | 2012-06-05 | 2022-05-10 | Pure Storage, Inc. | Storage vault tiering and data migration in a distributed storage network |
KR101119111B1 (ko) | 2006-05-04 | 2012-03-16 | 엘지전자 주식회사 | Ldpc 부호를 이용한 데이터 재전송 방법 |
US7814398B2 (en) | 2006-06-09 | 2010-10-12 | Seagate Technology Llc | Communication channel with Reed-Solomon encoding and single parity check |
US8689092B2 (en) | 2006-09-18 | 2014-04-01 | Availink, Inc. | Family of LDPC codes for video broadcasting applications |
WO2008034289A1 (en) * | 2006-09-18 | 2008-03-27 | Juntan Zhang | Bit mapping scheme for an ldpc coded 32apsk system |
WO2008034287A1 (en) | 2006-09-18 | 2008-03-27 | Juntan Zhang | An interleaving scheme for an ldpc coded 32apsk system |
US8230299B2 (en) | 2006-09-18 | 2012-07-24 | Availink, Inc. | Interleaving scheme for an LDPC coded QPSK/8PSK system |
US20110173509A1 (en) * | 2006-09-18 | 2011-07-14 | Availink, Inc. | Bit mapping scheme for an ldpc coded 16apsk system |
US7900126B2 (en) | 2006-09-28 | 2011-03-01 | Via Telecom, Inc. | Systems and methods for reduced complexity LDPC decoding |
KR101221911B1 (ko) * | 2006-11-17 | 2013-01-15 | 엘지전자 주식회사 | Ldpc 부호를 이용하여 재전송을 수행하는 방법 |
JP4858335B2 (ja) * | 2007-07-10 | 2012-01-18 | ソニー株式会社 | 符号化方法および符号化装置 |
KR101493999B1 (ko) * | 2007-09-06 | 2015-02-17 | 삼성전자주식회사 | 선형 부호 생성 장치 및 방법 |
US8301979B2 (en) * | 2008-10-07 | 2012-10-30 | Sandisk Il Ltd. | Low density parity code (LDPC) decoding for memory with multiple log likelihood ratio (LLR) decoders |
US8135015B2 (en) * | 2009-03-27 | 2012-03-13 | Qualcomm Incorporated | System and method of transmitting and receiving data frames |
US8443255B2 (en) * | 2010-08-26 | 2013-05-14 | Qualcomm Incorporated | Parity check matrix optimization and selection for iterative decoding |
US8756473B1 (en) * | 2010-12-23 | 2014-06-17 | Sk Hynix Memory Solutions Inc. | Solid state device coding architecture for chipkill and endurance improvement |
US8918705B1 (en) | 2012-01-11 | 2014-12-23 | Sk Hynix Memory Solutions Inc. | Error recovery by modifying soft information |
US8739008B2 (en) * | 2012-02-22 | 2014-05-27 | Silicon Motion, Inc. | Method for determining parity check matrix utilized in flash memory system and related flash memory system thereof |
US9613052B2 (en) * | 2012-06-05 | 2017-04-04 | International Business Machines Corporation | Establishing trust within a cloud computing system |
US9183095B1 (en) | 2013-06-28 | 2015-11-10 | Sk Hynix Memory Solutions Inc. | Recovering from a program failure by combining write data |
FR3032571B1 (fr) * | 2015-02-11 | 2017-03-10 | Commissariat Energie Atomique | Methode de decodage iteratif de sequences lfsr a faible probabilite de fausse alarme |
US9973212B2 (en) * | 2015-09-08 | 2018-05-15 | Storart Technology Co. Ltd. | Decoding algorithm with enhanced parity check matrix and re-encoding scheme for LDPC code |
CN111988112A (zh) * | 2019-05-23 | 2020-11-24 | 华为技术有限公司 | 通信方法和装置 |
JP2023539208A (ja) * | 2020-08-31 | 2023-09-13 | マサチューセッツ インスティテュート オブ テクノロジー | ネットワークコーディングベースのセキュア通信 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3818442A (en) * | 1972-11-08 | 1974-06-18 | Trw Inc | Error-correcting decoder for group codes |
US6789227B2 (en) * | 2001-07-05 | 2004-09-07 | International Business Machines Corporation | System and method for generating low density parity check codes using bit-filling |
US6895547B2 (en) | 2001-07-11 | 2005-05-17 | International Business Machines Corporation | Method and apparatus for low density parity check encoding of data |
US7000167B2 (en) * | 2001-08-01 | 2006-02-14 | International Business Machines Corporation | Decoding low density parity check codes |
JP3833545B2 (ja) * | 2002-02-13 | 2006-10-11 | 三菱電機株式会社 | 通信システム、受信機、送信機および通信方法 |
JP3893383B2 (ja) * | 2002-02-28 | 2007-03-14 | 三菱電機株式会社 | Ldpc符号用検査行列生成方法および検査行列生成装置 |
US7103818B2 (en) | 2002-09-30 | 2006-09-05 | Mitsubishi Electric Research Laboratories, Inc | Transforming generalized parity check matrices for error-correcting codes |
KR20040033554A (ko) | 2002-10-15 | 2004-04-28 | 삼성전자주식회사 | 에러 정정 부호화 장치 및 그 방법 |
-
2004
- 2004-05-28 CN CNB2004800006021A patent/CN100546204C/zh not_active Expired - Fee Related
- 2004-05-28 DE DE602004030869T patent/DE602004030869D1/de not_active Expired - Lifetime
- 2004-05-28 EP EP04735346A patent/EP1524771B1/en not_active Expired - Fee Related
- 2004-05-28 ES ES04735346T patent/ES2356912T3/es not_active Expired - Lifetime
- 2004-05-28 KR KR1020057001762A patent/KR101143732B1/ko not_active IP Right Cessation
- 2004-05-28 WO PCT/JP2004/007747 patent/WO2004107585A1/ja active Application Filing
- 2004-05-28 JP JP2005506568A patent/JP4432902B2/ja not_active Expired - Fee Related
- 2004-05-28 US US10/523,452 patent/US7607063B2/en not_active Expired - Fee Related
Non-Patent Citations (2)
Title |
---|
R. Lucas et al.,"On Iterative Soft Decision Decoding of Linear Binary Block codes and Product Codes," IEEE JSAC Vol. 16, No. 2, Feb. 1998.. * |
R. Lucas et al.,"On Iterative Soft Decision Decoding of Linear Binary Block codes and Product Codes," IEEE JSAC Vol. 16, No. 2, Feb. 1998..* |
Also Published As
Publication number | Publication date |
---|---|
JPWO2004107585A1 (ja) | 2006-07-20 |
EP1524771A4 (en) | 2007-09-05 |
CN1698272A (zh) | 2005-11-16 |
CN100546204C (zh) | 2009-09-30 |
EP1524771B1 (en) | 2011-01-05 |
KR20060014020A (ko) | 2006-02-14 |
JP4432902B2 (ja) | 2010-03-17 |
US20060015791A1 (en) | 2006-01-19 |
EP1524771A1 (en) | 2005-04-20 |
ES2356912T3 (es) | 2011-04-14 |
DE602004030869D1 (de) | 2011-02-17 |
WO2004107585A1 (ja) | 2004-12-09 |
US7607063B2 (en) | 2009-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101143732B1 (ko) | 복호 방법 및 복호 장치, 기록 재생 장치 및 방법과, 재생 장치 및 방법 | |
US7689888B2 (en) | Decoding apparatus and method and program | |
KR100996029B1 (ko) | 저밀도 패리티 검사 코드의 부호화 장치 및 방법 | |
US7536628B2 (en) | Decoding apparatus, decoding method and program | |
US7536623B2 (en) | Method and apparatus for generating a low-density parity check code | |
US11115051B2 (en) | Systems and methods for decoding error correcting codes | |
US8078936B2 (en) | Encoding method, encoding apparatus, and program | |
JP3893383B2 (ja) | Ldpc符号用検査行列生成方法および検査行列生成装置 | |
US7243286B2 (en) | Method and apparatus for generating parity information for error correction | |
Vasic | Structured iteratively decodable codes based on Steiner systems and their application in magnetic recording | |
JP4412401B2 (ja) | 復号装置、復号方法、受信装置、および記憶媒体再生装置 | |
JP4005084B2 (ja) | 検査行列生成方法および検査行列生成装置 | |
JP2008035524A (ja) | 反復確率伝搬を使用して記号ブロックを復号化する装置および方法 | |
KR20070065834A (ko) | 복호장치, 제어 방법, 및 프로그램 | |
KR20100039294A (ko) | 부호화 방법 및 부호화 장치 | |
JP2007166605A (ja) | パリティ検査行列、パリティ検査行列の生成方法、エンコーディング方法及びエラー訂正装置 | |
JP2005051469A (ja) | 符号化装置および符号化方法、並びにプログラム | |
KR101125100B1 (ko) | 천공 기술을 활용하는 리드 솔로몬 기반 준순환 저밀도 패리티 검사 부호 생성 방법과 이를 이용하는 부호화 및 복호화 방법 및 저장 장치. | |
JP2004088449A (ja) | 符号化装置及び符号化方法、並びに復号装置及び復号方法 | |
JP2006100941A (ja) | 信号処理装置、低密度パリティ検査符号の符号化方法および復号方法 | |
JP2010028408A (ja) | 情報処理装置、情報処理方法、およびプログラム | |
JP4288582B2 (ja) | 復号装置および復号方法、並びにプログラム | |
Pal et al. | Error-Control Coding Algorithms and Architecture for Modern Applications Powered by LDPC Codes and Belief Propagation | |
JP2004104686A (ja) | 符号解析方法及び符号解析装置、並びに復号方法及び復号装置 | |
Hayes | Low Density Parity Check Codes For Telemetry Applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20150422 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20160422 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |