KR20090040223A - 복호 장치 및 방법, 송수신 시스템, 수신장치 및 방법, 및 프로그램 - Google Patents

복호 장치 및 방법, 송수신 시스템, 수신장치 및 방법, 및 프로그램 Download PDF

Info

Publication number
KR20090040223A
KR20090040223A KR1020080101347A KR20080101347A KR20090040223A KR 20090040223 A KR20090040223 A KR 20090040223A KR 1020080101347 A KR1020080101347 A KR 1020080101347A KR 20080101347 A KR20080101347 A KR 20080101347A KR 20090040223 A KR20090040223 A KR 20090040223A
Authority
KR
South Korea
Prior art keywords
matrix
unit
value
shift
decoding
Prior art date
Application number
KR1020080101347A
Other languages
English (en)
Inventor
타카시 요코카와
Original Assignee
소니 가부시끼 가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 소니 가부시끼 가이샤 filed Critical 소니 가부시끼 가이샤
Publication of KR20090040223A publication Critical patent/KR20090040223A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6513Support of multiple code types, e.g. unified decoder for LDPC and turbo codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1137Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • H03M13/1165QC-LDPC codes as defined for the digital video broadcasting [DVB] specifications, e.g. DVB-Satellite [DVB-S2]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • H03M13/1168Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices wherein the sub-matrices have column and row weights greater than one, e.g. multi-diagonal sub-matrices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • H03M13/1185Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Error Detection And Correction (AREA)

Abstract

제 1포맷 또는 제 2의 포맷으로 수신되는 LDPC(Low Density Parity Check) 부호를 복호하는 복호 장치가 기재되어 있다. 상기 제 1의 포맷 또는 상기 제 2의 포맷으로 LDPC 부호를 수신한 결과 얻을 수 있는 수신치를 복호하기 위한 연산으로서, F개의 체크 노드의 연산 또는 F개의 가변 노드의 연산을 병렬적으로 실시하는 연산을 적어도 실행한다.
가변 노드, 체크 노드, 복호, 단위 행렬, 준행렬, 시프트 행렬

Description

복호 장치 및 방법, 송수신 시스템, 수신장치 및 방법, 및 프로그램{Data decoding apparatus, data decoding method, data transmitting/receiving system, data receiving apparatus, data receiving method and program}
본 발명은 2007년 10월 19일 일본 특허청에 제출된 일본 특허 번호 JP 2007-272517호와 관련된 주제를 포함하고 있으며, 그 내용은 참조로서 본 명세서에 포함되어 있다.
본 발명은, 복호 장치 및 방법, 송수신 시스템, 수신장치 및 방법, 및 프로그램에 관한 것이다. 특히, 구조가 다른 복수의 LDPC 부호의 복호를 실행할 수 있으며 회로 규모 축소도 도모할 수 있는 복호 장치 및 방법, 송수신 시스템, 수신장치 및 방법, 및 프로그램에 관한 것이다.
통신 시스템은, 코딩을 사용해 잡음이 있는 통신 채널을 통해 신뢰성 있는 통신을 하고 있다. 예를 들면, 위성 네트워크와 같은 무선 시스템에서는, 지리적 및 환경적 요인에 의한 잡음원(noise sources)이 많다. 이러한 통신 채널은 고정 용량을 나타내며, 어느 신호대 잡음비(SNR)에 있어서의 각 심볼에 대한 비를 나타낼 수 있으며 섀넌 한계(Shanon limit)로서 알려진 이론적 상한을 규정하고 있 다. 결과적으로, 코딩 설계는 이 섀넌 한계에 가까워지는 레이트를 달성하는 것을 목적으로 하고 있다. 이 목적은, 대역폭 제약 위성 시스템에 대해서 특히 밀접한 관계가 있다.
최근에는, 섀넌 한계에 가까운 성능을 나타내는 부호화 방법으로서 예를 들면, PCCC(Parallel Concatenated Convolutional Codes)와 SCCC(Serially Concatenated Convolutional Codes)에 근거하는 코드처리에서 이용되는 터보 부호화(Turbo coding)라고 칭해지는 수법이 개발되고 있다. 또, 이러한 터보 부호가 개발되는 한편, 종래부터 알려진 부호화 방법인 저밀도 패리티 검사 부호(Low Density Parity Check codes)(이하, LDPC 부호라고 칭한다)가 각광을 받고 있다.
LDPC 부호는, R. G. Gallager에 의한 "Low Density Parity Check Codes", Cambridge, Massachusetts: M.I.T.Press, 1963에서 최초로 제안된 것이며, 그 후, LDPC부호는, D.J.C.MacKay에 의한 "Good error correcting codes based on very parse matrices", submitted to IEEE Trans. Inf. Theory, IT-45, pp. 399-431, 1999과 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에 기재된 바와 같이 재주목 받기에 이른 것이다.
LDPC 부호는, 최근의 연구에 의해, 터보 부호와 같이, 부호장을 길게 하여, 섀넌 한계에 가까운 성능을 얻을 수 있는 것을 알 수 있다. 또, LDPC 부호는, 최소 거리가 부호장에 비례한다고 하는 성질이 있으므로, 그 특징으로서 블록 에러 확률 특성이 좋고, 게다가 터보 부호 등의 복호 특성에 대해 관측되는, 이른바 에러 플로어(error floor) 현상이 대부분 생기지 않는 이점이 특징이다.
이하, 이러한 LDPC 부호에 대해 구체적으로 설명한다. LDPC 부호는, 선형 부호이며, 반드시 2차원 코드가 될 필요는 없지만, 여기에서는, 2차원으로 설명한다.
LDPC 부호는, 그 LDPC 부호를 정의하는 패리티 검사 행렬(parity check matrix)이 스파스 행렬(sparse matrix)이라는 것이 최대의 특징이다. 여기서, 스파스 행렬이란, 1의 값을 가지는 행렬의 요소 매우 적은 행렬이며, 스파스 패리티 검사 행렬을 H로 나타내는 것으로 한다. 도 1은 대표적인 스파스 패리티 검사 행렬을 나타내고 있다. 도 1에 도시한 바와 같이, 각 열의 허밍 가중치("1"의 수)는, "3"이며, 각 행의 허밍 가중치는 "6"이다. 각 열의 허밍 가중치는 한 열과 한 행내에 1의 값을 가지는 요소로서 포함되는 개수이다.
각 행 및 각 열의 허밍 가중치를 가지는 패리티 검사 행렬 H에 의해서 정의되는 LDPC 부호는, 규칙(regular) LDPC 부호라고 칭해진다. 한편, 각 행 및 각 열에서 변화되는 허밍 가중치를 가지는 패리티 검사 행렬 H에 의해서 정의되는 LDPC 부호는, 불규칙(irregular) LDPC 부호라고 칭해진다.
이러한 LDPC 부호에 의한 부호화는, 검사 행렬 H에 근거해 생성 행렬 G를 생성하고, 이 생성 행렬 G를 2차원의 정보 메시지에 대해서 곱셈하는 것에 의해서 부호어(coded word)를 생성하는 것으로 실현된다. 구체적으로는, LDPC 부호에 의한 부호화를 실시하는 부호화 장치는, 우선, LDPC 부호를 정의하는 패리티 검사 행렬 H의 전치행렬 HT에 대해서, 식 GHT=0이 성립하는 생성 행렬 G를 산출한다. 여기서, 생성 행렬 G가, k×n행렬인 경우에는, 부호화 장치는, 생성 행렬 G에 대해서 k비트로 구성되는 정보 메시지(벡터 u)를 곱셈하고, n비트로 구성되는 부호어 c(=uG)를 생성한다. 이 부호화 장치는 생성된 부호어를, "0"의 부호 비트를 "+1"로, 값이 "1"의 부호 비트를 "-1"로 매핑하여 송신하며 소정의 통신로를 통해 수신측으로 전송한다. 부호화 장치는, 패리티 검사 행렬 H에 의해 정의된 LDPC 부호에 근거하여 정보 메시지 u를 부호어 c로 부호화한다.
n비트의 부호어 c가, n-k비트의 패리티 비트가 이어지는 k비트의 정보 메시지로 구성된 n비트 시퀀스와 대응되는 구성 코드인 경우에, 도 2에 도시된 바와 같이 n-k행과 n열로 구성된 (n-k)행×n열 패리티 검사 행렬 H에서는, n비트의 부호어 c의 k비트 정보 메시지에 대응하는 (n-k)행×k열 패리티 검사 행렬 H가 정보부로 칭해지며, n비트의 부호어 c의 (n-k) 패리티 비트에 대응하는 (n-k)행×(n-k)열 행렬부를, 패리티부라고 칭한다. 패리티부가, 하부 삼각 행렬 또는 상부 삼각 행렬로 되어 있으면, 정보 메시지 u를 LDPC 부호에 근거하는 부호화 방법을 이용하여 부호화하는 처리는, LDPC 부호를 정의하는 패리티 검사 행렬 H를 이용해 실시할 수 있다.
즉, 패리티 검사 행렬 H는, 도 2에 도시한 바와 같이, 정보부와 하부 삼각 행렬인 패리티부로 구성되며, 패리티부로 작용하는 하부 삼각 행렬의 각 요소가, 모두 1이다. 이러한 경우에, 패리티 비트 시퀀스는 다음과 같이 구해진다. 먼저, 부호어 c의 패리티 비트 시퀀스의 첫 번째의 패리티 비트는, 정보 메시지 u에 포함된 각 비트에 대해 EXOR(배타적 논리합)를 연산한 결과 얻어지는 값을, 패리티 검사 행렬 H의 정보부의 첫 번째 행내에 1의 값을 가지는 행렬 요소에 대응하는 비트로 가진다.
그 후에, 부호어 c의 패리티 비트 시퀀스의 2번째의 패리티 비트는, 정보 메시지 u에 포함된 각 메시지 비트와 패리티 비트 시퀀스의 첫 번째의 패리티 비트에 대해 EXOR(배타적 논리합)를 연산한 결과 얻어지는 값을, 패리티 검사 행렬 H의 정보부의 두 번째 행내에 1의 값을 가지는 행렬 요소에 대응하는 비트로 가진다.
그 후에, 부호어 c의 패리티 비트 시퀀스의 3번째의 패리티 비트는, 정보 메시지 u에 포함된 각 메시지 비트와 패리티 비트 시퀀스의 첫 번째와 두 번째의 패리티 비트에 대해 EXOR(배타적 논리합)를 연산한 결과 얻어지는 값을, 패리티 검사 행렬 H의 정보부의 세 번째 행내에 1의 값을 가지는 행렬 요소에 대응하는 비트로 가진다.
그 후에, 패리티 비트 시퀀스의 네 번째와 다섯 번째의 패리티 비트도 동일하게 구해진다. 일반적으로, 부호어 c의 패리티 비트 시퀀스의 i 번째의 패리티 비트는, 정보 메시지 u에 포함된 각 메시지 비트와 패리티 비트 시퀀스의 (i-1) 번째의 패리티 비트에 대해 EXOR(배타적 논리합)를 연산한 결과 얻어지는 값을, 패리티 검사 행렬 H의 정보부의 i 번째 행내에 1의 값을 가지는 행렬 요소에 대응하는 비트로 가진다.
이상과 같이 하여, (n-k)번째 패리티 비트를 구하고, 패리티 비트 시퀀스는, k비트의 정보 메시지 u에 이어 배치하여, n비트의 부호어 c를 얻을 수 있다.
한편, LDPC 부호의 복호는, 메시지 노드(message node)와 체크 노드라고 불리는 가변 노드들로 구성된 소위 타나 그라프(Tanner graph)에 대한 확률 전파(belief propagation)에 근거하는 메시지 전달 알고리즘에 따라 실시하는 것이 가능하다. 메시지 전달 알고리즘은, Gallager가 확률 복호(Probabilistic Decoding) 로 칭해 제안한 알고리즘이며, 가변 노드와 체크 노드를, 단지 노드라고도 칭한다.
확률 복호 알로리즘의 경우에, 각 노드에서 주고 받는 메시지는 실수이다. 그러므로, 해석적으로 풀기 위해서는, 연속한 값을 가지는 메시지의 확률 분포도를 추적할 필요가 있다. 즉, 매우 어려운 해석을 필요로 하게 된다. 이러한 문제를 해결하기 위해서, LDPC 부호의 복호 알고리즘으로서, 또는 LDCP 부호를 이용하여 이미 부호화된 데이터를 복호하는 복호 알고리즘으로서, 알고리즘 A 또는 알고리즘 B를 제안하고 있다.
LDPC 부호의 복호는, 예를 들면, 도3에 나타내는 순서에 따라서 행해진다. 다음의 설명에서는, LDPC 부호의 복호는, LDPC 부호를 복호하는 처리라고 단순하게 칭해지며, 복호 대상으로서 작용하는 LDPC 부호는, LDPC 부호에 의해 이미 부호화된 데이터를 의미한다. 어느 부호장을 가지는 LDPC 부호에 근거하여 부호화된 수신 데이터의 i번째를 U0(u0i)로 표시하며, 체크 노드로부터 출력되는 j번째의 메시지, 즉 체크 노드에 접속하고 있는 j번째의 가지로부터 출력되는 메시지를 uj로 표시하며, 가변 노드로부터 출력되는 i번째의 메시지 즉, 가변 노드에 접속하고 있는 i번째의 가지로부터 출력되는 메시지를 vi로 표시한다. 또, 여기에서, 메시지란, 값이 "0"이 되는 확률을 나타내는 이른바 대수 확률비(log likelihood ratio) 등을 표현하는 실수치이다.
도 3에 도시한 바와 같이, 복호 처리를 나타내는 절차는, 수신 데이터 U0(u0i)가 수신되어 메시지 u0j가 "0"으로 초기화되는 동시에, 반복 처리의 카운터로서의 정수를 취하는 변수 k가 "0"으로 초기화되는 스텝(S101)에서 시작된다. 그 후에, 복호 처리는 스텝(S12)으로 진행된다. 스텝(S102)에서는, 식(1)에 나타내는 가변 노드의 연산을 실시하기 위해, 수신 데이터 U0(u0i)가 메시지 vi와 같이 이용되어, 메시지 vi를 구하게 된다. 그 후에, 식(2)에 나타내는 체크 노드의 연산을 실시하기 위해 메시지 vi가 이용되어 메시지 uj가 구해진다.
[식 1]
Figure 112008071868327-PAT00001
[식 2]
Figure 112008071868327-PAT00002
여기서, 식(1)과 식(2)에 있어서의 dv와 dc는, 각각, 패리티 검사 행렬 H의 세로 방향(열)과 횡방향(행)의 "1"의 개수, 즉, 열의 가중치(허밍 가중치)와 행의 가중치를 나타내며, 임의적으로 선택 가능한 파라미터이다. 예를 들면, (3,6) 부호의 경우에, 각 열의 가중치는 3이다(즉, dv=3). 반면에, 각 행의 가중치는 6이다(즉, dc=6).
식(1) 또는 (2)의 합계 또는 증배 연산에서는, 각각, 메시지를 출력하려고 하는 가지(edge)로부터 입력된 메시지를 연산의 대상으로 이용하지 않으므로, 합계 또는 증배 연산의 범위가 각각, 1 내지 dv-1 또는 1내지 dc-1이 되고 있다. 게다가, 식(2)에 따라 메시지 uj를 구하는 증배 처리는, 다음과 같이 식(3)과 (4)에 따라 수행될 수 있다. 식(3)에 따라 입력 v1, v2에 대해서 얻을 수 있는 함수 R(v1, v2)의 값 1에 대한 테이블을 미리 작성해 둔다. 식(3)에 표시된 바와 같이, 함수 R(v1, v2)의 값 x는 입력 v1, v2의 함수이다. 식(4)에 표시된 재귀적 방법에 의해, 테이블로부터 구해지는 값 x를 이용하여 메시지 uj의 값이 구해질 수 있다.
[식 3]
Figure 112008071868327-PAT00003
[식 4]
Figure 112008071868327-PAT00004
게다가, 스텝(S102)에서는, 변수 k가 "1"만큼 인크리먼트(increment)되고, 복호 처리는 스텝(S103)으로 진행된다. 스텝(S103)에서는, 변수 k가 소정의 반복 복호 회수 N과 비교된 후에 소정의 반복 복호 회수 N의 이상인지 아닌지가 판정된다. 스텝(S103)에서 수행된 처리에 의해 얻어진 판정 결과가 변수 k가 N이상이 아니라고 판정하면, 처리는 스텝(S102)으로 돌아와, 스텝(S102)과 스텝(S103)의 처리를 반복한다.
또, 스텝(S103)에서 수행된 처리에 의해 얻어진 판정 결과가 변수 k가 N이상이라고 판정하면, 처리는 스텝(S14)으로 진행되어, 식(5)에 나타내는 연산을 실시하는 것에 의해서 최종적으로 출력하는 복호 결과서 메시지 v가 구해지고, 출력되어 LDPC 부호의 복호 처리가 종료한다.
[식 5]
Figure 112008071868327-PAT00005
식(5)의 연산은, 식(1)의 연산과는 달리, 가변 노드에 접속하고 있는 모든 가지로부터의 메시지 uj를 이용해 행해진다.
이러한 LDPC 부호의 복호에서는, 예를 들면(3, 6) 부호의 경우에는, 도 4에 도시한 바와 같이 각 노드에서 메시지가 전달된다. 도 4에서는, "="(이콜)로 가리키는 노드는, 가변 노드를 나타내며, 그 노드에서 식(1)에 나타낸 가변 노드의 연산을 한다. 한편, "+"(플러스)로 가리키는 노드는, 체크 노드를 나타내며, 그 노드에서 식(2)에 나타낸 체크 노드의 연산을 한다.
특히, 알고리즘 A에 따라, 메시지가 2차원적으로 생성되며, "+" 연산자가 가리키는 체크 노드에서, dc-1개의 입력 메시지(체크 노드에 입력되는 메시지 vi)의 배타적 논리합연산을 실시하고, "="에 의해 가리키는 가변 노드에서는, 수신 데이터 R에 대해서, dv-1개의 입력 메시지(가변 노드에 입력되는 메시지 uj)가 모두 다른 비트값을 가지는 경우에, 수신 데이터 R이 출력되기 전에, 수신 데이터 R의 부호(sign)는 반전된다.
또, 최근에, LDPC 부호의 복호의 실장법에 관한 연구도 행해지고 있다. 실장 방법에 대해 말하기 전에, 우선 LDPC 부호의 복호를 도식화하여 설명한다.
도 5는 (3, 6)부호의 LDPC 부호(부호화율 1/2, 부호장 12)의 패리티 검사 행렬(parity check matrix) H의 예이다. LDPC 부호를 정의하는 도 5의 패리티 검사 행렬 H는, 도 6과 같이, 타나 그라프를 이용해 표시될 수 있다. 도 6에서는, "+"로 표시된 노드가 체크 노드이며, "="로 표시된 노드가 가변 노드이다. 체크 노드와 가변 노드는 각각 패리티 검사 행렬 H의 행과 열에 대응한다. 체크 노드와 가변 노드와의 사이를 연결하는 라인은 가지(edge)이며, 패리티 검사 행렬 H의"1"에 상당한다. 즉, 패리티 검사 행렬 H의 제 j행과 제 i열의 교차점에 존재하는 요소가 1인 경우에는, 도 6의 위로부터 i번째의 가변 노드("="의 노드)와 위로부터 j번째의 체크 노드("+"의 노드)가, 요소가 1의 값을 가지는 교차점에 대응하는 가지에 의해 접속된다. 체크 노드와 가변 노드와의 사이를 연결하는 가지는, LDPC 부호에 의해 부호화된 수신 데이터의 비트가 체크 노드에 대한 구속 조건을 가지는 것을 나타낸다. 도 6은, 도 5의 패리티 검사 행렬 H의 타나 그라프가 되고 있다.
LDPC 부호의 복호 방법인 섬 프로덕트 알고리즘(Sum Product Algorithm)은, 가변 노드의 연산과 체크 노드의 연산을 반복해 실시한다.
가변 노드에서는, 도 7과 같이, 식(1)의 가변 노드의 연산을 실시한다. 즉, 도 7의 합계 연산에서는, 가변 노드에 접속하고 있는 가지중 i번째의 가지에 대응하는 메시지 vi는, 가변 노드에 접속하고 있는 나머지의 가지로부터의 메시지 u1 및 u2와 수신 데이터 u0i를 이용해 계산된다. 다른 가지에 대응하는 메시지도 이와 같이 계산된다.
체크 노드의 연산에 대해 설명하기 전에, 식(2)를, 식 a×b=exp{ln(|a|)+ln(|b|)}×sign(a)×sign(b)의 관계를 이용하여, 식(6)과 같이 고쳐 쓴다. 단, sign(x)는, x≥0 이면, 1(논리 0)이며, x<0 이면, -1(논리 1)이다.
[식 6]
Figure 112008071868327-PAT00006
게다가, x≥0이면, 비선형 함수φ(x) =-ln(tanh(x/2))를 정의하면, 그 역함수 φ-1(x)은, 식φ-11(x) =2tanh-11(e-x)로 나타내지기 때문에, 식(6)은, 식(7)과 같이 쓸 수 있다.
[식 7]
Figure 112008071868327-PAT00007
체크 노드에서는, 도 8과 같이, 식(7)의 체크 노드의 연산을 실시한다. 즉, 도 8의 증배 연산에서는, 체크 노드에 접속하고 있는 가지 중 j번째의 가지에 대응하는 메시지 uj는, 체크 노드에 연결되고 있는 나머지의 가지로부터의 메시지 v1,v2,v3,v4,v5를 이용해 계산된다. 다른 가지에 대응하는 메시지도 이와 같이 계산된다.
비선형 함수φ(x)는,φ(x) =ln((ex+1)/(ex-1))로 나타낼 수 있으므로. x>0 인 경우, φ(x)=φ-1(x), 즉, 비선형 함수φ(x)의 연산 결과와 그 역함수φ-1(x)의 연산 결과와는 동일하다. 함수 φ(x) 및 φ-1(x)을 하드웨어에 실장할 때, LUT(Look Up Table))를 이용해 실장되는 경우가 있지만, 양자는 동일한 LUT가 된다.
또, 식(1)의 가변 노드의 합계(summation) 연산은, 식(5)의 합계 연산과 다음의 식(8)의 감산(subtraction) 연산으로 나눌 수 있다.
[식 8]
Vi= V-Vdu
따라서, 식(5) 및 식(8)과 식(7)의 연산을 반복해 실시하는 것으로, 식(1)의 가변 노드의 연산과 식(7)의 체크 노드의 연산을 반복해 실시할 수 있다. 이 경우, 식(5) 및 식(8)의 가변 노드의 연산 중, 식(5)의 연산의 결과를 그대로 최종적인 복호 결과로 할 수 있다.
섬 프로덕트 알고리즘을 하드웨어에 실장하고, 복호 장치로 하는 경우, 식(1) 또는 식(5) 및 식(8)에서 나타내지는 가변 노드 연산(가변 노드의 연산) 및 식(7)에서 나타내지는 체크 노드 연산(체크 노드의 연산)을 적당한 회로 규모와 동작 주파수로 반복해 실시하는 것이 필요하다.
이하, 이러한 복호 장치의 실장의 예에 대해 설명한다.
LDPC 부호의 복호 알고리즘은, 그 특징으로서 지극히 높은 병렬처리 복호 장 치의 실장을 가능하게 한다. 그렇지만, 부호장이 큰 부호의 완전 병렬 복호 장치는 회로 규모가 매우 커져, 실현이 곤란하다.
최근에, 이러한 문제를 해결허기 위해서, 현실적인 회로 규모로의 복호 장치의 실장에 적절한 구조를 가지는 LDPC 부호가 제안되어 DVB-S.2(ETSI EN302307) 등의 전송 방식으로 채용되고 있다. 따라서, 다음의 설명에서는, 제안된 LDPC 부호를 DVB-S.2의 LDPC 부호라고 칭한다.
DVB-S.2의 LDPC 부호는, 패리티 검사 행렬에 대해서 행/열 치환을 하여 얻어지는 구조를 가지는 행렬에 의해 정의될 수 있다.
즉, DVB-S.2의 LDPC 부호는, P=360으로 했을 때, P×P의 단위행렬, P×P의 준단위 행렬, P×P의 시프트 행렬, P×P의 합행렬(sum matrix)과, P×P의 0행렬을 결합하여 얻어지는 구조를 가지는 패리티 검사 행렬로 표시될 수 있다. 준단위 행렬은 각각 1의 값을 가지는 한 개 이상의 요소들이 각각 0으로 설정되어 있는 단위행렬이다. 시프트 행렬은, 단위 행렬, 또는 준단위행렬을 순회 시프트(cyclic shift)한 행렬이다. 합행렬(sum matrix)은, 단위행렬, 준단위행렬, 또는 시프트 행렬중 적어도 2개 이상에 대해 행렬 가산 처리를 적용한 행렬이다. 다음의 설명에서는, 한 개의 구조를 가지는 패리티 검사 행렬은, P×P의 구조를 가지는 구성 행렬로 구성된 패리티 검사 행렬이라고 부르며, P×P의 구조를 가지는 구성 행렬로 구성된 패리티 검사 행렬에 의해 정의된 LDPC 부호는 P부호라고 칭한다.
이러한 P부호를 이용하여, P개의 수신치(P비트) 및 P개의 메시지(P비트)를 동시에 처리하는 복호 장치가 실장 가능해지고 있다.
다만, 이하에서는 설명을 용이하게 이해하도록 하기 위해서, P=6에 대한 설명을 실시해 간다. 도 9는, 부호화율 2/3, 부호장 108의 LDPC 부호를 나타내는 패리티 검사 행렬이며, 6×6의 구조의 패리티 검사 행렬의 일례를 나타내고 있다. 도9의 예에서는, 6×6의 구조를 가지는 구성 행렬을 이해하기 쉽도록 하기 위해서, 도 9의 패리티 검사 행렬 H의 6×6의 각 구성 행렬의 사이에는 간격이 제공된다. 도 9의 예를 보기 쉽도록 하기 위해, 패리티 검사 행렬 H내에서 0의 값을 가지는 각 요소가 피어리어드 "."에 의해 표시된다. 즉, 도 9의 예의 패리티 검사 행렬은, 6×6의 단위행렬, 6×6의 준단위행렬, 6×6의 시프트 행렬과 6×6의 합행렬을 포함하는 복수의 구성 행렬에 의해 얻어지는 구조를 가지고 있다. 이미 상술한 바와 같이, 준단위행렬은 각각 1의 값을 가지는 한 개 이상의 요소들이 각각 0으로 설정되어 있는 단위행렬이다.
도 10은, 이러한 P=6의 LDPC 부호를 복호하는 복호 장치의 일례를 나타내고 있다.
도 10의 예의 복호 장치는, 수신치 버퍼(200), 수신치 저장 메모리(201), 노드 연산부(202), 시프트부(203), 메시지 저장 메모리(204) 및 복호 결과 저장 메모리(205)를 포함하도록 구성되어 있다.
수신치 버퍼(200)는 통신로를 통해 수신된 데이터(D200)가 데이터(D201)로서 수신치 저장 메모리(201)에 전송되기 전에, 한 개의 부호의 크기를 가지는 수신된 데이터(D200)로 저장하는 버퍼이다. 수신치 버퍼(200)에 데이터(D200)를 전송 하는 전송 방식에 따라, 수신치 버퍼(200)에 저장된 데이터(D200)의 부호 비트의 재배치 처리가 몇몇 경우에 실행되기도 한다.
각각 6 개의 비트로 구성된 6 피스 단위내에서 동시에, 도 9의 패리티 검사 행렬 H의 열의 순서에 따라, 수신치 저장 메모리(201)로부터 수신치 데이터(D201)가 판독된다. 즉, 6×6의 행렬이 되는 단위로 수신치 저장 메모리(201)로부터 수신치 데이터(D201)가 판독된다. 그리고, 수신 데이터(D202)로서 노드 연산부 (202)에 공급한다.
노드 연산부(202)는 6개의 노드 연산기(210-1 내지 210-6)를 가지고 있다. 6개의 노드 연산기(210-1 내지 210-6)의 각각은, 수신치 저장 메모리(201)로부터 판독된 6개의 수신 데이터중 소정의 한 개와, 메시지 저장 메모리(204)로부터 공급되는 6개의 메시지(D205)중 소정의 한 개에 대해서 동시에, 도 10의 블록도에 도시하지 않는 제어부의 지시에 근거하여, 체크 노드 연산 또는 가변 노드 연산을 각각 병행에 실시하고, 계산한 메시지(D203)를 시프트부(203)에 각각 공급한다. 즉, 노드 연산기(210-1 내지 210-6)에 의해서 각각 동시 연산된 6개의 메시지(D203)가 출력되고, 시프트부(203)에 공급된다. 또, 가변 노드 연산시에는, 노드 연산기(210-1 내지 210-6)에 의해서 각각 연산된 6개의 복호 결과(D206)가 동시에 출력되고, 복호 결과 저장 메모리(205)에 공급된다.
노드 연산부(202)의 노드 연산기(210-1 내지 210-6)가 6개의 메시지(D203)를 시프트부(203)로 공급하는 경우, 도 10의 블럭도의 도시하지 않는 제어부는 6개의 메시지에 대응하는 가지가, 도 9의 패리티 검사 행렬의 요소 행렬로 작 용하는 단위 행렬과 같은 구성 행렬에 대해 몇몇 순회 시프트 연산이 실행되어지는 가지라는 것을 나타내는 정보를 시프트부(203)에 제공한다. 이러 정보에 근거하여, 시프트부(203)는 6개의 메시지(D203)를 재배치하기 위해 순회 시프트를 실시해, 그 결과를 메시지(D204)로서 메시지 저장 메모리(204)에 공급한다.
메시지 저장 메모리(204)에서는, 시프트부(203)로부터 공급된 6개의 메시지 (D204)를, 도 10의 도시하지 않는 제어부에 의해 지정되는 주소에 저장된다. 메시지 저장 메모리(204)는, 도 10으 도시하지 않는 제어부로부터 지정되는 주소로부터 읽어낸 6개의 데이터를 6개의 메시지(D205)로서 노드 연산부(202)에 공급한다.
복호 결과 저장 메모리(205)는, 노드 연산부(202)의 노드 연산기(210-1 내지 210-6)로부터 동시에 각각 공급되는 6비트 분의 복호 결과(D206), 즉 6개의 복호 결과(D206)를 저장하고, 복호가 완료한 후에, 복호 결과(D207)로서 출력한다.
도 10의 복호 장치는, 각종 메모리에 데이터를 기입하는 순서, 각 메모리로부터 데이터를 팜독하는 순서와 시프트량을 적절히 제어하여, 단일 부호뿐만 아니라, 동일한 구조를 가지는 다른 부호의 복호를 행할 수도 있다.
도 11은, 노드 연산부(202)의 6개의 노드 연산기(210-1 내지 210-6)의 각각의 구성예를 나타내고 있다. 이하, 6개의 노드 연산기(210-1 내지 210-6)를 각각 구별할 필요가 없는 경우, 노드 연산기(210-1 내지 210-6)는 단지 노드 연산기(210)로 칭한다.
도 11의 예의 노드 연산기(210)는, 식(1)에 따르는 가변 노드 연산과 식(7)에 따르는 체크 노드 연산을 서로 바꾸어 실시할 수 있다.
노드 연산기(210)는, 외부로부터 메시지(데이터)가 공급(입력)되는 입력 포트로서 2개의 입력 포트(P301, P302)를 가지고 있다. 즉, 입력 포트(P301)에는, 도 10의 수신치 저장 메모리(201)로부터 판독된 수신 데이터(D202)가 공급된다. 입력 포트(P302)에는, 도 10의 메시지 저장 메모리(204)로부터 판독된 메시지(D205)가 공급된다.
또, 노드 연산기(210)는 또한 메시지 또는 연산 결과를 출력하기 위해 두 개의 출력 포트(P303, P304)를 가지고 있다. 즉, 도 10의 대표적인 복호 장치에서는, 시프트부(203)에 메시지(D203)를 공급하는 출력 포트(P303)와 복호 결과 저장 메모리(205)에 복호 결과(D206)를 공급하는 출력 포트(P304)가 있다.
그리고, 노드 연산기(210)는, V와 C 입력 단말을 각각 가지는 실렉터(301, 316, 318)를 가지고 있다. 이러한 실렉터(301, 316, 318)의 각각이 V 입력 단말을 선택했을 경우에는, 노드 연산기(210)는 가변 노드 연산을 실시하게 된다. 이것에 대해서, 실렉터(301, 316, 318)가 C 입력 단말을 선택했을 경우에는, 노드 연산기(210)는 체크 노드 연산을 실시하게 된다.
우선, 가변 노드 연산을 실시하는 경우의 동작의 관점으로부터, 노드 연산기 (210)를 설명한다.
노드 연산기(210)는, 도 10의 복호 장치의 메시지 저장 메모리(204)로부터 공급되며 체크 노드로부터 시작되는 한 열의 메시지(D205)를 입력 포트(P302)를 통해 수신한다. 메시지(D205)는, 메시지(D301)(메시지 uj)로서 한 개씩 순차적 으로 실렉터(301)를 통과해, 메시지(D306)로서 가산기(302)에 입력된다. 가산기(302)는, 실렉터(317)의 출력 데이터(D323)를 수신한다. 가산기(302)는 메시지(D306)에 대해서, 실렉터(317)의 출력 데이터(D323)를 가산하여, 레지스터(303)에 저장되는 합을 구하게 된다.
실렉터(317)의 입력이 레지스터(303)의 출력 데이터(D307)측으로 연결되어 있는 경우, 가산기(302)에 의해, 레지스터(303)에 저장되어 있는 데이터(D307)가, 실렉터(301)에 의해 출력된 메시지(D306)에 가산되고, 그 가산치가 레지스터(303)에 재저장된다.
실렉터(317)의 입력이 실렉터(318)의 출력 데이터(D322)측으로 연결된 경우에는, 가산기(302)에 의해, 실렉터(318)의 출력 데이터(D322)가, 실렉터(301)에 의해 출력된 메시지(D306)에 가산된다. 즉, 실렉터(318)의 출력 데이터(D322)는, 입력 포트(P301)에 의해 데이터(D300)로서 수신된 데이터(D202)(또는 uoi)이다. 따라서, 가산기(302)는, 실렉터(301)에 의해 출력된 메시지(D306)에 수신 데이터 (D202)(u0i)를 가산하고, 그 가산치가 레지스터(303)에 저장된다.
이러한 동작이 한 열에 대해 반복되므로, 레지스터(303)에는, j=1로부터 dv까지의 Σuj+uoi에 상당하는 데이터(D307)가 축적된다. Σuj+uoi에 상당하는 데이터(D307)는, 실렉터(304)를 통해 레지스터(305)에 저장된다.
한편, 지연용 FIFO(310)는, 레지스터(305)로부터 새로운 데이터(D308)(j=1로 부터 dv까지의Σuj+uoi)가 출력될 때까지, 메시지(D306)를 지연용 FIFO(310)내에서 보관함으로써, 실렉터(301)에 의해 체크 노드로부터 출력된 메시지(D306)를 지연시키는데 사용된다. 지연용 FIFO(310)는, 지연된 메시지(D306)를, 지연 입력 메시지(D315)로 감산기(312)에 공급한다.
지연용 FIFO(310)에 의해 출력된 지연 입력 메시지(D315)는, 감산기(312)에 의해 레지스터(305)의 출력 데이터(D308)로부터 감산되고, 그 감산치(D316)(j=1로부터 dv-1까지의 Σuj+uoi)가 얻어진다. 감산기(312)는, 메시지(D316)를 실렉터(316)로 출력한다. 그 후에, 감산기(312)는, 메시지(D316)를 메시지(D321)로서 출력 포트(P303)로 출력한다. 그리고, 출력 포트(P303)는 메시지(D321)를 도 10의 복호 장치의 시프트부(203)에 출력 메시지(D203)로서 공급된다.
이상의 내용을 환언하면, 가변 노드로 작용하는 노드 연산기(210)는, 가변 노드로 작용하는 노드 연산기(210)에 연결되어 있는 모든 체크 노드로부터의 메시지와 수신 데이터의 총합으로부터, 특정한 체크 노드로부터의 메시지를 감산하여, 한 가지(edge)를 통해 특정한 체크 노드로 출력되는 메시지를 계산한다.
다음에, 노드 연산기(210)에 의해 수행되는 체크 노드 연산을 실시하는 경우를 설명한다.
도 10의 복호 장치의 메시지 저장 메모리(204)로부터 공급되는 1행분의 가변 노드로부터의 메시지(D205)가 입력 포트(P302)를 통해 노드 연산기(210)에 의해 수신되면, 메시지(D301)(메시지 vi)로서 한 개씩 입력되어 그 절대치(D303)(|vi|)가 LUT(300)에 공급된다.
LUT(300)는, 식(7)의 체크 노드 연산에 있어서의 비선형 함수φ(x)의 연산 결과를, 절대치(D303)(|vi|)가 되며, 인수 x와 관련된 값으로 저장하는 LUT이다. 즉, LUT(300)는, 값(D305)(φ(|vi|)을 저장하기 위해 이용된다. 절대치(D303)(|vi|)가 LUT(300)에 공급되면, LUT(300)는 r한 개의 값을 D305(φ(|vi|)로 출력한다.
LUT(300)로부터 판독된 연산 결과(D305)(φ(|vi|)는, 실렉터(301)를 통과해 메시지(D306)로서 가산기(302)에 입력된다. 가산기(302)는, 실렉터(301)에 의해 출력된 메시지(D306)를, 실렉터(317)의 출력 데이터(D323)에 가산하여 합을 구하고, 그 합은 레지스터(303)에 저장된다. 이 경우, 실렉터(317)의 입력측이 데이터(D307)를 출력하는 레지스터(303)에 연결된다. 그러므로, 가산기(302)는 레지스터(303)에 의해 실렉터(317)를 통해 가산기(302)로 공급된 데이터(D307)를 실렉터(301)에 의해 출력된 베시지(D306)에 가산하여, 합이 구해지며, 그 합은 레지스터(303)에 재저장된다. 이와 같이, 데이터(D307)는, 연산 결과(D305)(φ|vi|))의 적산치가 된다.
1행 분의 메시지(D301)(메시지 vi)에 대해 LUT(300)로부터 판독된 연산 결과 (D305)(φ|vi|))가 적산되면, 그 적산치(D307)(i=1로부터 dc까지의Σφ(|vi|))는 실렉터(304)를 통과하고, 레지스터(305)에 저장된다.
한편, 지연용 FIFO(310)는, 레지스터(305)로부터 새로운 데이터(D308)(i=1로부터 dc까지의Σφ(|vi|))가 출력될 때까지, 지연용 FIFO(310)내에 출력 데이터(D306)를 보관하여, 실렉터(301)의 출력 데이터(D306) 즉, LUT(300)의 연산 결과(D305)를 지연시키기 위해 이용된다. 지연용 FIFO(310)는 연산 결과(D305)를 지연 데이터(D315)로서 감산기(312)에 공급한다.
감산기(312)는 레지스터(305)에 의해 출력되는 새로운 데이터(D308)로부터, 지연 데이터(D315)를 감산하고, 그 감산치(D316)(i=1로부터 dc-1까지의Σφ(|vi|))를 LUT(314)에 공급한다.
LUT(314)는 다음과 같이 동작하는 LUT이다. LUT(314)에서는, 감산치(D316)가 인수 x가 된다. 인수 x에 대해서는, 식(7)의 체크 노드 연산에 있어서의 비선형 함수φ(x)의 역함수φ-1(x)의 연산 결과를 출력하는 LUT이며, 감산기(312)가 감산치(D316)(i=1로부터 dc-1까지의Σφ(|vi|)를 LUT(314)에 공급하면, LUT(314)는 역함수φ-1(Σφ(|vi|))의 연산을 실시한 연산 결과(D318)(φ-1(Σφ(|vi|)))를 출력한다.
이상의 처리와 병행하여, 각 메시지(D301)(또는 각 메시지 vi) 정부를 나타내는 부호 비트(sign bit)(D304)(또는 sign(vi))와 레지스터(307)에 저장되어 있는 값(D310)의 배타적 논리합이 EXOR 회로(306)에서 연산되어, 그 연산 결과(D309)가 레지스터(307)에 재저장된다. 메시지(D301)의 부호 비트(D304)는 메시지(D301)가 포지티브(positive)인지 아니면 네가티브(negative)인지를 나타내는 비트이다.
1행 분에 대한 메시지(D301)의 부호 비트가 EXOR 회로(306)에 의해 적산되어 레지스터(307)에 적산되므로, 레지스터(307)는 그 적산치(D310)(i=1로부터 dc까지의∏sign(vi))가 실렉터(308)를 통과하여, 레지스터(309)에 저장된다.
한편, 지연용 FIFO(310)는, 레지스터(309)로부터 새로운 데이터(D311)(i=1로부터 dc까지의∏sign(vi))가 출력될 때까지, 지연용 FIFO(310)내에 부호 비트(D304)를 보관함으로써, 적산에 이용된 부호 비트(D304)(sign(vi))를 지연한다. 지연용 FIFO(310)는 지연된 부호 비트(D304)를, 지연 부호 비트(D313)로서 EXOR 회로(315)에 공급한다.
지연용 FIFO(310)로부터 수신된 지연 부호 비트(D313)와 레지스터(309)의 적산치(D311)의 배타적 논리합이 EXOR 회로(315)에서 연산되어, 그 연산 결과가 부호 비트(D319)(i=1로부터 dc-1까지의 ∏sign(vi))로서 출력된다.
최종적으로, 선택기(316)는, LUT(314)의 연산 결과(D318)(φ-1(Σφ(|vi|)))에 대해서, EXOR 회로(315)로부터 수신된 부호 비트(D319)를 부가하며, 메시지(D321)를 생성한다. 그리고, 선택기(316)는, 출력 포트(P303)로 메시지(D321)를 출력한다. 그 출력 포트(P303)는, 도 10의 복호 장치의 시프트 부(203)로 그 메시지(D321)를 전달한다.
이상의 내용을 환언하면, 식(7)에 따라 체크 노드의 처리를 수행하는 경우에, 노드 연산기(210)는, 체크 노드로 작용하는 노드 연산기(210)에 연결되어 있는 모든 가변 노드로부터 수신된 메시지의 합계로부터, 특정한 가변 노드로부터의 메시지를 감산함으로써, 가지를 통해 특정한 가변 노드로 출력되는 메시지의 연산을 실현하고 있다.
노드 연산기(210)는, 복호의 최종단에서, 식(1)의 가변 노드 연산 대신에, 식(5)의 연산을 실행하며, 출력 데이터(D308)를 복호 결과(D206)로서, 출력 포트(P304)를 통해 도 10의 복호 결과 저장 메모리(205)에 출력한다. 복호의 최종단은, 예를 들면, 미리 정해진 반복 복호의 회수 N만 행해지는 가변 노드 연산 및 체크 노드 연산중 마지막에 행해지는 가변 노드 연산이다.
도 10의 예의 복호 장치는, P=6의 부호에 대한 복호 장치이지만, P가 6이외의 P의 부호의 복호 장치도 기본적으로 도 10의 예와 기본적으로 같은 구성을 취할 수 있다.
P의 부호의 복호 장치를, 종래의 기술과 도 10의 예와 같은 구성으로 실현되는 경우, 노드 연산기는, 병렬로 연결된 6개의 노드 연산기 대신에 병렬로 연결된 Pro의 노드 연산기가 요구된다. 게다가, 시프트부도, 6×6 순회 시프트 연산 대신에 P×P의 순회 시프트 연산을 실시할 필요가 있다. 그리고, 각종 메모리도, 단지 6개의 데이터 대신에 P개의 데이터를 동시에 판독 및 기입 동작을 허용해야 한다.
따라서, P의 값이 큰 경우에는, 복호 장치 전체의 회로 규모가 증대해 버린다는 문제가 발생한다.
또, 종래의 복호 장치에서는, P의 부호 이외의 부호, 예를 들면 Q의 부호의 복호를 행할 수 없다. 따라서, 하나의 전송 시스템에 이용하는 부호는 모두, P의 부호가 되는 것이 필요했다. 그 때문에, 예를 들면, 높은 전송 레이트의 고정 수신기 전용의 서비스용으로 P의 부호, 전송 레이트는 낮지만 소비 전력 제한이 큰 휴대형 수신기 전용의 서비스용으로는 Q의 부호를 채용하는 전송 시스템에서는, 공용 수신기를 구성하는 경우에, P의 부호와 Q의 부호의 각각 대해 전용의 복호 장치를 따로 따로 마련할 필요가 있다하는 문제도 생겨 버린다.
본 발명은, 이러한 문제를 개선하기 위해 고안되었으며, 구조가 다른 복수의 LDPC 부호의 복호와, 회로 규모 축소도 도모할 수 있는 복호 장치를 제공하는 것을 목적으로 하는 것이다.
본 발명의 한 실시예에 따르면, P×P의 단위행렬, 상기 P×P의 단위행렬의 한 개 이상의 행렬 요소들의 각각의 값을 1에서 10까지의 값으로 설정하여 얻어지는 P×P의 준단위행렬, 상기 P×P의 단위행렬 혹은 P×P의 준단위행렬을 순회 시프트하여 얻어지는 P×P의 시프트 행렬, 상기 P×P의 단위행렬, P×P의 준단위행렬과 P×P의 시프트 행렬중 적어도 두 개의 행렬에 대해 행렬 가산 처리를 수행하여 얻 어지는 P×P의 합행렬(sum matrix)과 P×P의 0행렬을 포함하여 얻어지는 복수의 제 1의 구성 행렬을 결합하여 얻어지는 제 1의 구조를 가지는 제 1의 초기 패리티 패리티 검사 행렬에 의해 표시되거나, 또는 상기 제 1의 초기 패리티 패리티 검사 행렬의 행과 열중 적어도 한 개 이상을, 상기 제 1의 구조를 가지는 행렬로 재배치함으로써 얻어지는 제 1의 재배치후 행렬로 표시되는 제 1의 포맷(P는 정수) 또는,
Q×Q의 단위행렬, 상기 Q×Q의 단위행렬의 한 개 이상의 행렬 요소들의 각각의 값을 1에서 10까지의 값으로 설정하여 얻어지는 Q×Q의 준단위행렬, 상기 Q×Q의 단위행렬 혹은 Q×Q의 준단위행렬을 순회 시프트하여 얻어지는 Q×Q의 시프트 행렬, 상기 Q×Q의 단위행렬, Q×Q의 준단위행렬과 Q×Q의 시프트 행렬중 적어도 두 개의 행렬에 대해 행렬 가산 처리를 수행하여 얻어지는 Q×Q의 합행렬과 Q×Q의 0행렬을 포함하여 얻어지는 복수의 제 2의 구성 행렬을 결합하여 얻어지는 제 2의 구조를 가지는 제 2의 초기 패리티 패리티 검사 행렬에 의해 표시되거나, 또는 상기 제 2의 초기 패리티 패리티 검사 행렬의 행과 열중 적어도 한 개 이상을, 상기 제 2의 구조를 가지는 행렬로 재배치함으로써 얻어지는 제 2의 재배치후 행렬로 표시되는 제 2의 포맷(Q는 상기 정수 Q와 P에 대해 공통적인 비균일성 측정 인자 F를 가지는 정수이다.)으로 수신되는 LDPC(Low Density Parity Check) 부호를 복호하는 복호 장치에 있어서,
상기 제 1의 포맷 또는 상기 제 2의 포맷의 LDPC 부호를 수신한 결과 얻을 수 있는 수신치를 복호하기 위한 연산으로서, F개의 체크 노드의 연산 또는 F개의 가변 노드의 연산을 병렬적으로 실시하는 연산을 적어도 실행하는 복호 장치가 제 공된다.
상술한 복호 장치는,
상기 F개의 체크 노드의 연산 또는 F개의 가변 노드의 연산을 병렬적으로 실시해, 각 연산의 결과 얻을 수 있는 F개의 메시지를 출력하는 메시지 계산 수단과,
상기 메시지 계산 수단으로부터 출력되는 F개의 상기 메시지에 대해서, F×F의 순회 시프트를 실시해 출력하는 시프트 수단과,
상기 시프트 수단으로부터 출력되는 F개의 상기 메시지를 저장하고, 상기 저장된 F개의 메시지를 읽어내거나 또는 상기 F개의 수신치를 저장하거나 혹은 상기 저장된 F개의 수신치를 읽어내는 기억 수단을 구비한다.
상기 복호 장치는,
상기 제 1의 구조를 가지는 상기 제 1의 초기 패리티 패리티 검사 행렬에 의해 표시되거나 또는 상기 제 2의 구조를 가지는 상기 제 2의 초기 패리티 패리티 검사 행렬에 의해 표시된 상기 수신치에 대해, 적어도 열 재배치 처리 또는 상기 열 재배치 처리에 대응하는 처리를 수행함으로써, 상기 제 1의 또는 상기 제 2의 구성 행렬로부터 도출되는 제 3의 구성행렬이 되는 제 3의 구조를 가지는 행렬내에 포함되어 있으며, 상기 제 3의 구성 행렬에 대응하는 F개의 상기 수신치로 구성된 단위를 상기 메시지 계산 수단으로 제공하는 동작을, 상기 수신치를 상기 메시지 계산 수단으로 제공하는 공급하는 연산으로서, 제어하는 제어 수단을 추가로 구비한다. 상기 제 3의 구조는, F×F의 단위행렬, 상기 F×F의 단위행렬의 한 개 이상의 행렬 요소들의 각각의 값을 1에서 10까지의 값으로 설정하여 얻어지는 F×F 의 준단위행렬, 상기 F×F의 단위행렬 혹은 F×F의 준단위행렬을 순회 시프트하여 얻어지는 F×F의 시프트 행렬, 상기 F×F의 단위행렬, F×F의 준단위행렬과 F×F의 시프트 행렬중 적어도 두 개의 행렬에 대해 행렬 가산 처리를 수행하여 얻어지는 F×F의 합행렬과 F×F의 0행렬을 포함하여 얻어지는 구조가 된다.
본 발명의 다른 실시예에 따르는 복호 방법은, 복호 장치에 대한 복호 방법이며, 본 발명의 또 다른 실시예에 따르는 프로그램은 복호 방법을 실행하는 프로그램이다.
즉, 본 발명의 또 다른 실시예에 따르면,
P×P의 단위행렬, 상기 P×P의 단위행렬의 한 개 이상의 행렬 요소들의 각각의 값을 1에서 10까지의 값으로 설정하여 얻어지는 P×P의 준단위행렬, 상기 P×P의 단위행렬 혹은 P×P의 준단위행렬을 순회 시프트하여 얻어지는 P×P의 시프트 행렬, 상기 P×P의 단위행렬, P×P의 준단위행렬과 P×P의 시프트 행렬중 적어도 두 개의 행렬에 대해 행렬 가산 처리를 수행하여 얻어지는 P×P의 합행렬(sum matrix)과 P×P의 0행렬을 포함하여 얻어지는 복수의 제 1의 구성 행렬을 결합하여 얻어지는 제 1의 구조를 가지는 제 1의 초기 패리티 패리티 검사 행렬에 의해 표시되거나, 또는 상기 제 1의 초기 패리티 패리티 검사 행렬의 행과 열중 적어도 한 개 이상을, 상기 제 1의 구조를 가지는 행렬로 재배치함으로써 얻어지는 제 1의 재배치후 행렬로 표시되는 제 1의 포맷(P는 정수) 또는,
Q×Q의 단위행렬, 상기 Q×Q의 단위행렬의 한 개 이상의 행렬 요소들의 각각의 값을 1에서 10까지의 값으로 설정하여 얻어지는 Q×Q의 준단위행렬, 상기 Q×Q 의 단위행렬 혹은 Q×Q의 준단위행렬을 순회 시프트하여 얻어지는 Q×Q의 시프트 행렬, 상기 Q×Q의 단위행렬, Q×Q의 준단위행렬과 Q×Q의 시프트 행렬중 적어도 두 개의 행렬에 대해 행렬 가산 처리를 수행하여 얻어지는 Q×Q의 합행렬과 Q×Q의 0행렬을 포함하여 얻어지는 복수의 제 2의 구성 행렬을 결합하여 얻어지는 제 2의 구조를 가지는 제 2의 초기 패리티 패리티 검사 행렬에 의해 표시되거나, 또는 상기 제 2의 초기 패리티 패리티 검사 행렬의 행과 열중 적어도 한 개 이상을, 상기 제 2의 구조를 가지는 행렬로 재배치함으로써 얻어지는 제 2의 재배치후 행렬로 표시되는 제 2의 포맷(Q는 상기 정수 Q와 P에 대해 공통적인 비균일성 측정 인자 F를 가지는 정수이다.)으로 수신되는 LDPC(Low Density Parity Check) 부호를 복호하는 복호 장치에 의해 이용되는 복호 방법이 제공된다.
상기 제 1의 포맷 또는 상기 제 2의 포맷의 LDPC 부호를 수신한 결과 얻을 수 있는 수신치를 복호하기 위해, 상기 복호 장치는, F개의 체크 노드의 연산 또는 F개의 가변 노드의 연산을 병렬적으로 실시하는 스텝을 실행한다.
게다가, 본 발명의 또 다른 실시예에 따르면,
P×P의 단위행렬, 상기 P×P의 단위행렬의 한 개 이상의 행렬 요소들의 각각의 값을 1에서 10까지의 값으로 설정하여 얻어지는 P×P의 준단위행렬, 상기 P×P의 단위행렬 혹은 P×P의 준단위행렬을 순회 시프트하여 얻어지는 P×P의 시프트 행렬, 상기 P×P의 단위행렬, P×P의 준단위행렬과 P×P의 시프트 행렬중 적어도 두 개의 행렬에 대해 행렬 가산 처리를 수행하여 얻어지는 P×P의 합행렬(sum matrix)과 P×P의 0행렬을 포함하여 얻어지는 복수의 제 1의 구성 행렬을 결합하여 얻어지는 제 1의 구조를 가지는 제 1의 초기 패리티 패리티 검사 행렬에 의해 표시되거나, 또는 상기 제 1의 초기 패리티 패리티 검사 행렬의 행과 열중 적어도 한 개 이상을, 상기 제 1의 구조를 가지는 행렬로 재배치함으로써 얻어지는 제 1의 재배치후 행렬로 표시되는 제 1의 포맷(P는 정수) 또는,
Q×Q의 단위행렬, 상기 Q×Q의 단위행렬의 한 개 이상의 행렬 요소들의 각각의 값을 1에서 10까지의 값으로 설정하여 얻어지는 Q×Q의 준단위행렬, 상기 Q×Q의 단위행렬 혹은 Q×Q의 준단위행렬을 순회 시프트하여 얻어지는 Q×Q의 시프트 행렬, 상기 Q×Q의 단위행렬, Q×Q의 준단위행렬과 Q×Q의 시프트 행렬중 적어도 두 개의 행렬에 대해 행렬 가산 처리를 수행하여 얻어지는 Q×Q의 합행렬과 Q×Q의 0행렬을 포함하여 얻어지는 복수의 제 2의 구성 행렬을 결합하여 얻어지는 제 2의 구조를 가지는 제 2의 초기 패리티 패리티 검사 행렬에 의해 표시되거나, 또는 상기 제 2의 초기 패리티 패리티 검사 행렬의 행과 열중 적어도 한 개 이상을, 상기 제 2의 구조를 가지는 행렬로 재배치함으로써 얻어지는 제 2의 재배치후 행렬로 표시되는 제 2의 포맷(Q는 상기 정수 Q와 P에 대해 공통적인 비균일성 측정 인자 F를 가지는 정수이다.)으로 수신되는 LDPC 부호를 복호하는 복호 장치를 제어하는 컴퓨터에 의해 실행되는 프로그램이 제공된다.
상기 제 1의 포맷 또는 상기 제 2의 포맷의 LDPC 부호를 수신한 결과 얻을 수 있는 수신치를 복호하기 위한 연산으로서, F개의 체크 노드의 연산 또는 F개의 가변 노드의 연산을 병렬적으로 실시하는 스텝을 포함한다.
본 발명의 다른 실시예에 따르면 데이터 송수신 시스템이 제공된다. 그 데이터 송수신 시스템에서는,
에러 정정 코드(ECC)로서 이용되는 LDPC 부호는,
α×α의 단위행렬, 상기 α×α의 단위행렬의 한 개 이상의 행렬 요소들의 각각의 값을 1에서 10까지의 값으로 설정하여 얻어지는 α×α의 준단위행렬, 상기 α×α의 단위행렬 혹은 α×α의 준단위행렬을 순회 시프트하여 얻어지는 α×α의 시프트 행렬, 상기 α×α의 단위행렬, α×α의 준단위행렬과 α×α의 시프트 행렬중 적어도 두 개의 행렬에 대해 행렬 가산 처리를 수행하여 얻어지는 α×α의 합행렬과 α×α의 0행렬을 포함하여 얻어지는 복수의 구성 행렬을 결합하여 얻어지는 구조를 가지는 초기 패리티 패리티 검사 행렬에 의해 표시되거나, 또는 상기 초기 패리티 패리티 검사 행렬의 행과 열중 적어도 한 개 이상을, 상기 구조를 가지는 행렬로 재배치함으로써 얻어지는 재배치후 행렬로 표시될 수 있는 포맷(α는 1이 아닌 다른 정수)을 가지며,
K개의 정수치는, 1이외의 정수치 F의 배수가 되는 서로 다른 복수의 정수치중 선택되며(K는 2이상의 정수치),
상기 선택된 K개의 정수치의 각각은, 상기α로서 각각 대입되었을 때에 서로 다른 K종류의 LDPC 부호를 공급하게 되며,
상기 서로 다른 K종류의 상기 LDPC 부호의 각각은, 에러 정정 코드로서 사용된다.
본 발명의 다른 실시예에 따르는 데이터 송수신 시스템에서는, 아래에 기재된 바와 같이 결정된 에러 정정 코드(ECC)로서 이용된다. 에러 정정 코드(ECC) 로서 이용되는 LDPC 부호는, α×α의 단위행렬, 상기 α×α의 단위행렬의 한 개 이상의 행렬 요소들의 각각의 값을 1에서 10까지의 값으로 설정하여 얻어지는 α×α의 준단위행렬, 상기 α×α의 단위행렬 혹은 α×α의 준단위행렬을 순회 시프트하여 얻어지는 α×α의 시프트 행렬, 상기 α×α의 단위행렬, α×α의 준단위행렬과 α×α의 시프트 행렬중 적어도 두 개의 행렬에 대해 행렬 가산 처리를 수행하여 얻어지는 α×α의 합행렬과 α×α의 0행렬을 포함하여 얻어지는 복수의 구성 행렬을 결합하여 얻어지는 구조를 가지는 초기 패리티 패리티 검사 행렬에 의해 표시되거나, 또는 상기 초기 패리티 패리티 검사 행렬의 행과 열중 적어도 한 개 이상을, 상기 구조를 가지는 행렬로 재배치함으로써 얻어지는 재배치후 행렬로 표시될 수 있는 포맷(α는 1이 아닌 다른 정수)을 가진다. 먼저, K개의 정수치는, 1이외의 정수치 F의 배수가 되는 서로 다른 복수의 정수치중 선택되며(K는 2이상의 정수치), 상기 선택된 K개의 정수치의 각각은, 상기α로서 각각 대입되었을 때에 서로 다른 K종류의 LDPC 부호를 공급하게 되며, 상기 서로 다른 K종류의 상기 LDPC 부호의 각각은, 에러 정정 코드로서 사용된다.
본 발명의 다른 실시예에 따르면, 데이터 송수신 시스템에서 이용되는 데이터 수신 장치가 제공되며,
에러 정정 코드(ECC)로서 이용되는 LDPC 부호는,
α×α의 단위행렬, 상기 α×α의 단위행렬의 한 개 이상의 행렬 요소들의 각각의 값을 1에서 10까지의 값으로 설정하여 얻어지는 α×α의 준단위행렬, 상기 α×α의 단위행렬 혹은 α×α의 준단위행렬을 순회 시프트하여 얻어지는 α×α 의 시프트 행렬, 상기 α×α의 단위행렬, α×α의 준단위행렬과 α×α의 시프트 행렬중 적어도 두 개의 행렬에 대해 행렬 가산 처리를 수행하여 얻어지는 α×α의 합행렬과 α×α의 0행렬을 포함하여 얻어지는 복수의 구성 행렬을 결합하여 얻어지는 구조를 가지는 초기 패리티 패리티 검사 행렬에 의해 표시되거나, 또는 상기 초기 패리티 패리티 검사 행렬의 행과 열중 적어도 한 개 이상을, 상기 구조를 가지는 행렬로 재배치함으로써 얻어지는 재배치후 행렬로 표시될 수 있는 포맷(α는 1이 아닌 다른 정수)을 가지며,
K개의 정수치는, 1이외의 정수치 F의 배수가 되는 서로 다른 복수의 정수치중 선택되며 (K는 2이상의 정수치),
상기 선택된 K개의 정수치의 각각은, 상기α로서 각각 대입되었을 때에 서로 다른 K종류의 LDPC 부호를 공급하게 되며,
상기 서로 다른 K종류의 상기 LDPC 부호의 각각은, 에러 정정 코드로서 사용된다.
상기 데이터 수신장치는,
상기 서로 다른 K종류중 어느 한 포맷의 LDPC 부호를 수신한 결과 얻을 수 있는 수신치를 복호하기 위한 연산을 실시하는 복호 수단을 구비하며,
F개의 체크 노드의 연산 또는 F개의 가변 노드의 연산을 병렬적으로 실시하는 연산을 적어도 실행함으로써, 상기 수신치는 상기 정수 α가 상기 K개의 정수치중 한 개의 정수치로 설정되어 있는 상기 포맷을 가진다.
본 발명의 다른 방법에 따르는 데이터 수신방법은 상기 데이터 수신 장치를 위해 제공되는 방법이다.
즉, 본 발명의 다른 방법에 따르면, 데이터 송수신 시스템에서 이용되는 데이터 수신 장치의 데이터 수신방법이 제공된다.
그 수신 방법에서는, 에러 정정 코드(ECC)로서 이용되는 LDPC 부호는,
α×α의 단위행렬, 상기 α×α의 단위행렬의 한 개 이상의 행렬 요소들의 각각의 값을 1에서 10까지의 값으로 설정하여 얻어지는 α×α의 준단위행렬, 상기 α×α의 단위행렬 혹은 α×α의 준단위행렬을 순회 시프트하여 얻어지는 α×α의 시프트 행렬, 상기 α×α의 단위행렬, α×α의 준단위행렬과 α×α의 시프트 행렬중 적어도 두 개의 행렬에 대해 행렬 가산 처리를 수행하여 얻어지는 α×α의 합행렬과 α×α의 0행렬을 포함하여 얻어지는 복수의 구성 행렬을 결합하여 얻어지는 구조를 가지는 초기 패리티 패리티 검사 행렬에 의해 표시되거나, 또는 상기 초기 패리티 패리티 검사 행렬의 행과 열중 적어도 한 개 이상을, 상기 구조를 가지는 행렬로 재배치함으로써 얻어지는 재배치후 행렬로 표시될 수 있는 포맷(α는 1이 아닌 다른 정수)을 가지며,
K개의 정수치는, 1이외의 정수치 F의 배수가 되는 서로 다른 복수의 정수치중 선택되며 (K는 2이상의 정수치),
상기 선택된 K개의 정수치의 각각은, 상기α로서 각각 대입되었을 때에 서로 다른 K종류의 LDPC 부호를 공급하게 되며,
상기 서로 다른 K종류의 상기 LDPC 부호의 각각은, 에러 정정 코드로서 사용되며,
상기 데이터 수신방법은,
상기 서로 다른 K종류중 어느 한 포맷의 LDPC 부호를 수신한 결과 얻을 수 있는 수신치를 복호하기 위한 연산 스텝을 포함하며,
F개의 체크 노드의 연산 또는 F개의 가변 노드의 연산을 병렬적으로 실시하는 연산을 적어도 실행함으로써, 상기 수신치는 상기 정수 α가 상기 K개의 정수치중 한 개의 정수치로 설정되어 있는 상기 포맷을 가진다.
본 발명에 의하면, LDPC 부호를 복호하는 복호 장치, 그 복호 장치를 구성요소로 포함하는 수신장치, 또는 그 수신장치를 구성요소에 포함하는 송수신 시스템을 제공할 수 있다. 특히, 구조가 다른 복수의 LDPC 부호의 복호가 가능하며, 본 발명의 다른 실시예에 따르는 복호 장치나 수신장치 전체의 회로 규모 축소도 도모할 수 있다.
이하에 본 발명의 실시의 형태를 설명하지만, 청구항에 기재의 구성 요건과 명세서 또는 도면에 있어서의 구체적인 예와의 대응 관계를 예시하면, 다음과 같이 된다. 이 기재는, 청구항에 기재되어 있는 발명을 지지하는 구체적인 예가, 명세서 또는 도면에 기재되어 있는 것을 확인하기 위한 것이다. 따라서, 명세서 또는 도면에는 기재되어 있지만, 구성 요건에 대응하는 것으로서 여기에는 기재되지 않은 구체적인 예가 있다고 해도, 그것은 그 구체적인 예가 그 구성 요건에 대응하는 것이 아니다라는 것을 의미하는 것은 아니다. 반대로, 구체적인 예가 구성 요 건에 대응하는 것으로서 여기에 기재되어 있다고 해도, 그것은 그 구체적인 예가, 그 구성 요건 이외의 구성 요건에는 대응하지 않디는 것을 의미하는 것도 아니다.
게다가, 이 기재는, 명세서 또는 도면에 기재되어 있는 구체적인 예에 대응하는 발명이, 청구항에 모두 기재되어 있는 것을 의미하는 것은 아니다. 환언하면, 이 기재는, 명세서 또는 도면에 기재되어 있는 구체적인 예에 대응하는 발명이며, 이 출원의 청구항에는 기재되지 않은 발명의 존재, 즉, 장래, 분할 출원되거나 보정에 의해 추가되는 발명의 존재를 부정하는 것은 아니다.
본 발명의 한 실시예에서는, LDPC(Low Density Parity Check) 부호를 복호하는 복호 장치(예를 들면 도 12의 복호 장치)가 제공된다.
즉, P×P의 단위행렬, 상기 P×P의 단위행렬의 한 개 이상의 행렬 요소들의 각각의 값을 1에서 10까지의 값으로 설정하여 얻어지는 P×P의 준단위행렬, 상기 P×P의 단위행렬 혹은 P×P의 준단위행렬을 순회 시프트하여 얻어지는 P×P의 시프트 행렬, 상기 P×P의 단위행렬, P×P의 준단위행렬과 P×P의 시프트 행렬중 적어도 두 개의 행렬에 대해 행렬 가산 처리를 수행하여 얻어지는 P×P의 합행렬(sum matrix)과 P×P의 0행렬을 포함하여 얻어지는 복수의 제 1의 구성 행렬을 결합하여 얻어지는 제 1의 구조를 가지는 제 1의 초기 패리티 패리티 검사 행렬에 의해 표시되거나, 또는 상기 제 1의 초기 패리티 패리티 검사 행렬의 행과 열중 적어도 한 개 이상을, 상기 제 1의 구조를 가지는 행렬로 재배치함으로써 얻어지는 제 1의 재배치후 행렬로 표시되는 제 1의 포맷(P는 정수) 또는,
Q×Q의 단위행렬, 상기 Q×Q의 단위행렬의 한 개 이상의 행렬 요소들의 각각 의 값을 1에서 10까지의 값으로 설정하여 얻어지는 Q×Q의 준단위행렬, 상기 Q×Q의 단위행렬 혹은 Q×Q의 준단위행렬을 순회 시프트하여 얻어지는 Q×Q의 시프트 행렬, 상기 Q×Q의 단위행렬, Q×Q의 준단위행렬과 Q×Q의 시프트 행렬중 적어도 두 개의 행렬에 대해 행렬 가산 처리를 수행하여 얻어지는 Q×Q의 합행렬과 Q×Q의 0행렬을 포함하여 얻어지는 복수의 제 2의 구성 행렬을 결합하여 얻어지는 제 2의 구조를 가지는 제 2의 초기 패리티 패리티 검사 행렬에 의해 표시되거나, 또는 상기 제 2의 초기 패리티 패리티 검사 행렬의 행과 열중 적어도 한 개 이상을, 상기 제 2의 구조를 가지는 행렬로 재배치함으로써 얻어지는 제 2의 재배치후 행렬로 표시되는 제 2의 포맷(Q는 상기 정수 Q와 P에 대해 공통적인 비균일성 측정 인자 F를 가지는 정수이다.)으로 수신되는 LDPC(Low Density Parity Check) 부호를 복호하는 복호 장치가 제공되며,
상기 제 1의 포맷 또는 상기 제 2의 포맷의 LDPC 부호를 수신한 결과 얻을 수 있는 수신치를 복호하기 위한 연산으로서, F개의 체크 노드의 연산 또는 F개의 가변 노드의 연산을 병렬적으로 실시하는 연산을 적어도 실행한다(예를 들면, F=3의 경우에는, 수신치를 복호하는 연산은, 도 12의 노드 연산기(510-1 내지 510-3)가 처리하는 연산을 포함한다).
상기 복호 장치는,
상기 F개의 체크 노드의 연산 또는 F개의 가변 노드의 연산을 병렬적으로 실시해, 각 연산의 결과 얻을 수 있는 F개의 메시지를 출력하는 메시지 계산 수단(예를 들면 도 12의 노드 연산부(502))과,
상기 메시지 계산 수단으로부터 출력되는 F개의 상기 메시지에 대해서, F×F의 순회 시프트를 실시해 출력하는 시프트 수단(예를 들면 도 12의 시프트부 (503))과,
상기 시프트 수단으로부터 출력되는 F개의 상기 메시지를 저장하고, 상기 저장된 F개의 메시지를 읽어내거나 또는 상기 F개의 수신치를 저장하거나 혹은 상기 저장된 F개의 수신치를 읽어내는 기억 수단(예를 들면, 도12의 메시지 저장 메모리 (504)나 수신치 저장 메모리(501))을 구비한다.
상기 복호 장치는, 상기 제 1의 구조를 가지는 상기 제 1의 초기 패리티 패리티 검사 행렬에 의해 표시되거나 또는 상기 제 2의 구조를 가지는 상기 제 2의 초기 패리티 패리티 검사 행렬에 의해 표시된 상기 수신치에 대해, 적어도 열 재배치 처리 또는 상기 열 재배치 처리에 대응하는 처리를 수행함으로써, 상기 제 1의 또는 상기 제 2의 구성 행렬로부터 도출되는 제 3의 구성행렬이 되는 제 3의 구조를 가지는 행렬내에 포함되어 있으며, 상기 제 3의 구성 행렬에 대응하는 F개의 상기 수신치로 구성된 단위를 상기 메시지 계산 수단으로 제공하는 동작을, 상기 수신치를 상기 메시지 계산 수단으로 제공하는 공급하는 연산으로서, 제어하는 제어 수단(예를 들면 도 12의 제어부(506))을 추가로 구비하며, 상기 제 3의 구조는, F×F의 단위행렬, 상기 F×F의 단위행렬의 한 개 이상의 행렬 요소들의 각각의 값을 1에서 10까지의 값으로 설정하여 얻어지는 F×F의 준단위행렬, 상기 F×F의 단위행렬 혹은 F×F의 준단위행렬을 순회 시프트하여 얻어지는 F×F의 시프트 행렬, 상기 F×F의 단위행렬, F×F의 준단위행렬과 F×F의 시프트 행렬중 적어도 두 개의 행렬 에 대해 행렬 가산 처리를 수행하여 얻어지는 F×F의 합행렬과 F×F의 0행렬을 포함하여 얻어지는 구조가 된다.
다음에, 본 발명의 기술에 대해 설명한다.
본 명세서에서 말하는 「P의 부호」란, 준순회(QC(Quasi Cyclic)) 부호의 성질을 가지는 LDPC부호의 하나이다.
여기서 QC부호란, 임의의 부호어를, 어느 자연수의 주기만큼 순회(cyclic) 시프트한 비트 계열이며, 원래의 부호어 이외의 다른 부호어가 되는 부호를 말한다.
QC부호의 검사 행렬은, 순회 행렬(cyclic matrix)을 이용해 나타낼 수 있다. 순회 행렬은 본 명세서에서 말하는 시프트 행렬이다. 시프트 행렬로 칭해지는 순회 행렬은, 다른 행렬의 모든 열로부터 선택된 특정한 열에 대해서 순회 시프트를 실행하여 얻어지는 행렬로 정의된다. 특정한 열의 보기는 제 1열이다.
P의 부호를 정의하는 패리티 검사 행렬의 시프트 행렬은, 상술한 것처럼, P×P의 단위행렬 또는 P×P의 준단위행렬에 대해 순회 시프트 연산을 실행하여 얻어지는 행렬이다. 즉, P×P의 단위행렬 또는 P×P의 준단위행렬에 대해서 순회 시프트를 1열씩 차례차례 실행함으로써, 서로 다른 형태를 가지는 시프트 행렬이 차례차례 생성되어 가게 된다. 그리고, P×P의 단위행렬 또는 P×P의 준단위행렬에 대해서 순회 시프트가 종료하면, 원래의 P×P의 단위행렬 또는 원래의 P×P의이 재차 생성된다. 즉, 이러한 순회 시프트의 단위가 P가 되고 있다.
여기서, 유의해야 할 점은, 엄밀하게는, P의 부호로 이용되는 P×P의 준단위 행렬과 준단위행렬의 P×P의 시프트 행렬은, QC부호를 정의하는 행렬에는 포함되지 않는다는 점이다. 즉, P의 부호를 포함하는 DVB-S2의 LDPC 부호를 정의하는 패리티 검사 행렬의 우측 상부 부분의 한 위치에만 준단위행렬이 나타난다. 그러므로, 이러한 관점에서, 엄밀하게는, DVB-S2의 LDPC 부호는, QC부호는 아니다. 다만, DVB-S2의 LDPC 부호의 복호기에서는, 이러한 누락된 부분에 대해서는 간단한 예외 처리를 실행한다. 그러므로, DVB-S2의 LDPC 부호와 QC 부호를 복호하는 복호기의 아키텍쳐(architecture)상에는 아무런 차이가 없다. 상기한 이유에 의해, P의 부호는, QC부호의 하나가 되지 않으며, 대신에, QC(준순회 : quasi cyclic)부호의 성질을 가진 LDPC 부호라고 기재하고 있다.
환언하면, P×P의 구조를 각각 가지는 구성 행렬로 구성된 패리티 검사 행렬은, P×P의 단위행렬, 상기 P×P의 단위행렬의 한 개 이상의 행렬 요소들의 각각의 값을 1에서 10까지의 값으로 설정하여 얻어지는 P×P의 준단위행렬, 상기 P×P의 단위행렬 혹은 P×P의 준단위행렬을 사이클릭 시프트하여 얻어지는 P×P의 시프트 행렬, 상기 P×P의 단위행렬, P×P의 준단위행렬과 P×P의 시프트 행렬중 적어도 두 개의 행렬에 대해 행렬 가산 처리를 수행하여 얻어지는 P×P의 합행렬(sum matrix)과 P×P의 0행렬을 포함하여 얻어지는 구성 행렬을 규칙적으로 배열함으로써 얻어지는 행렬이다.
즉, P의 부호는, P×P의 단위행렬, P×P의 준단위행렬, P×P의 시프트 행렬, P×P의 합행렬과 P×P의 0행렬과 같은 P×P의 구성 행렬이 되는 단위들을 규칙적으로 재배열함으로써 구성되는 구조를 가지는 패리티 검사 행렬에 의해 표시될 수 있 다는 규칙성 특징을 가지고 있다. P의 부호의 복호 장치를, 도 10의 예와 같은 구성의 복호 장치와 동일한 기술에 의해 실현되는 경우, 병렬로 연결된 6개의 노드 연산기 대신에 병렬로 연결된 P개의 노드 연산기들이 요구된다. 또, 시프트부도, 단지 6×6 순회 시프트 연산 대신에 P×P의 순회 시프트를 실시할 필요가 있다. 게다가, 각종 메모리도, 단지 6개의 데이터 대신에, P개의 데이터를 동시에 판독 및 기입 동작을 실행할 필요가 있다.
상기 문제를 해결하기 위해, 본 발명인은 한 가지 기술을 발명했다. 그 기술에 따르면, P×P의 구조의 패리티 검사 행렬의 행과 열의 치환을 실시하여, F×F의 구성 행렬을 규칙적으로 배치시킨 행렬을 생성하는 재배치 처리가 실행되거나, 또는 재배치 처리와 동등한 처리가 실행된다. 그리고, 마지막으로, 재배치 처리 또는 재배치 처리와 동등한 처리의 결과로서 얻어지며, F×F의 구성 행렬을 가지는 재배치후 행렬에 따르는 데이터에 대해서 복호가 실행된다. 이 경우, F는 정수 P의 측정을 의미한다. 다음의 설명에서는, 재배치 처리와 재배치 처리와 동등한 처리는 모두 재배치 처리라고 칭한다. F×F의 구성 행렬은 P×P의 구성 행렬과 같은 동일한 종류로 분류된다. 즉, F×F의 구성 행렬은, F×F의 단위행렬, 상기 F×F의 단위행렬의 한 개 이상의 행렬 요소들의 각각의 값을 1에서 10까지의 값으로 설정하여 얻어지는 F×F의 준단위행렬, 상기 F×F의 단위행렬 혹은 F×F의 준단위행렬을 사이클릭 시프트하여 얻어지는 F×F의 시프트 행렬, 상기 F×F의 단위행렬, F×F의 준단위행렬과 F×F의 시프트 행렬중 적어도 두 개의 행렬에 대해 행렬 가산 처리를 수행하여 얻어지는 F×F의 합행렬(sum matrix)과 F×F의 0 행렬과 같은 종류들로 분류된다.
다음과 같은 이유에 의해, 재배치 처리와 재배치 처리와 동등한 처리는, 단순히 모두 재배치 처리라고 칭한다는 것을 명심하자. 즉, 데이터 복호 전에(또는 노드 연산기에 데이터를 공급하기 전에), P×P의 구성 행렬로 구성된 최초의 행렬로서 버퍼에 저장된 패리티 검사 행렬내에, 행과/또는 열을 실제적으로 재배치하여 재배치 처리를 실행하고, 노드 연산기 바로 이전의 단계에서 제공되는 메모리를 통해 노드 연산기에 배치후(post-arrangement)행렬을 공급하기 전에, 버퍼내에 배치후 행렬을 저장하는 것은 필수적이 아니다. 즉, 재배치 처리와 동등한 처리를 위해 제공되는 동등한 기술에 따라, P×P의 구조의 구성 행렬을 가지는 패리티 검사 행렬에 따라 수신된 그 상태대로, 버퍼내에 데이터를 저장하고, 노드 연산기로 데이터를 공급하는 단계 이전에, 메모리내의 F×F의 구조의 구성 행렬을 가지는 패리티 검사 행렬내에 행과/또는 열을 재배치하기 전에 버퍼로부터 메모리로 데이터를 전달하는 동등한 처리가 실행될 수 있다. 즉, 노드 연산기로부터 관찰하면, 재배치 처리와 재배치 처리와 동등한 처리는, P×P의 구조의 구성 행렬을 가지는 패리티 검사 행렬의 열과/또는 행이 재배치되어, F×F의 구조의 구성 행렬을 가지는 행렬을 생성하는 동일한 상태를 만들어 낸다. 이러한 상태는, 노드 연산기의 처리를 위해 적합하다.
환언하면, 본 발명의 기법은, P×P의 구조의 패리티 검사 행렬로 표현되는 값으로 버퍼에 저장되어 있는 수신치중에서 적어도 열의 재배치 처리 혹은 그것과 등가인 처리를 포함하는 재배치 처리를 실행는 수법이다. 그러므로, 본 발명의 기술은, 노드 연산기에 수신치를 제공하는 제어로서, F×F의 구성 행렬에 대응하는 F개의 수신치로 구성된 단위로 수신치를 노드 연산기에 공급하는 연산을 실행하는 기술을 말한다.
그러므로, 이러한 본 발명의 수법을 적용하면, P의 부호를 복호하는 경우에도, P개의 노드 연산기에 병렬적으로 실행되는 P개의 병렬 처리들은 F개의 노드 연산기에 의해서만 병렬적으로 처리될 수 있는 F개의 병렬 처리로 감소될 수 있다. 또, 시프트부도, P×P 순회 시프트 연산 대신에 F×F의 순회 시프트를 실시하면 충분하게 된다. 그리고, 각종 메모리도, P개의 데이터 대신에 F개의 데이터를 동시에 판독하고 기입하는 것을 허용할 필요가 있다.
이상과 같이, 본 발명의 기법을 적용하면, 본 발명의 한 실시예에 따르는 복호 장치 전체를, 종래의 복호 장치와 비교해 보면, 큰 폭으로 회로 규모를 작게할 수 있게 된다. 다만, 상세한 것에 대하여는 후술하지만, 정수 P는 복수 존재하는 경우가 있으며, 이러한 경우에, 최소치를 F로 할 필요는 없고, 대신에 전송 레이트(transmission rate)와 회로의 동작 주파수를 위한 최적치를 F로서 채용하면 매우 적합하다.
또한, 상세한 것에 대하여는 후술 하지만, P와는 다른 값이며 1이외의 Q가, F를 가지는 경우가 있다. 즉, F가 P와 Q의 공약수인 경우이다. 이 경우에, 본 발명의 수법을 적용하면, F개의 병렬 노드 연산기들을 이용하는 복호 장치는, P의 부호 뿐만 아니라 P 또는 Q의 부호도 선택적으로 복호하는 것이 가능하게 된다.
다음에는, 본 발명의 실시예에 따르는 복호 장치가 다음과 같이 설명된다. P=6에 대해서 F=3으로 했을 경우에는, 본 발명의 기법을 적용하면, 복호 장치는, 도 12의 구성을 취할 수 있다. 즉, 도 12는, 본 발명을 적용한 복호 장치의 구성예를 나타내고 있다.
도 12의 예의 복호 장치는, 수신치 버퍼(500), 수신치 저장 메모리(501), 노드 연산부(502), 시프트부(503), 메시지 저장 메모리(504), 복호 결과 저장 메모리 (505) 및 제어부(506)를 포함하도록 구성되어 있다.
이와 같이, 도 12의 예의 복호 장치는, 제어부(506)를 제외하면, 상술의 도10의 예의 복호 장치와 기본적으로 같다. 즉, 각각의 기능적 구성요소와 그 기능적 구성요소의 각 역할을, 도 12의 복호 장치의 각 기능적 구성요소의 기능으로 도시한 블록의 연결관계가 제어부(506)를 제외하면, 상술의 도 10의 예의 복호 장치와 기본적으로 같다. 그러나, 각 구성요소의 시점으로부터 관찰하면, 도 12의 복호 장치와 도 10의 복호 장치는 다음과 같은 차이가 있다.
즉, 도 10의 복호 장치에서 이용되는 수신치 버퍼(200), 수신치 저장 메모리(201), 노드 연산부(202), 시프트부(203), 메시지 저장 메모리(204) 및 복호 결과 저장 메모리(205)는, P=6개의 데이터(6비트)를 동시에 읽고 쓰기할 수 있는 메모리 구성을 취하고 있다. 이에 대해, 도 12의 복호 장치에서 이용되는 수신치 버퍼(500), 수신치 저장 메모리(501), 메시지 저장 메모리(504), 복호 결과 저장 메모리(505)는, F=3개의 데이터(3비트)를 동시에 읽고 쓰기할 수 있는 메모리 구성을 취하고 있다.
또한, 도 10의 복호 장치의 시프트부(203)는, 6×6(=P×P)의 순회 시프트를 실시하는 구성을 가지고 있다. 이것에 대해서, 도 12의 복호 장치의 시프트부 (503)는, 3×3(=F×F)의 순회 시프트를 실시하는 구성을 가지고 있다.
또, 도 10의 복호 장치의 노드 연산부(202)는, P=6개의 노드 연산기(210-1 내지 210-6)를 가지고 있다. 이것에 대해서, 도 12의 복호 장치의 노드 연산부 (502)는, F=3개의 노드 연산기(510-1 내지 510-3)를 가지고 있다.
따라서, 이상의 각 구성요소의 차이가 있으므로, 도 12의 예의 복호 장치는 전체적으로, 도 10의 예의 종래의 복호 장치와 비교하면, 회로 규모가 축소된 장치로 구성할 수 있다.
노드 연산기(510-1 내지 510-3)는, 도 11의 구성을 가지는 노드 연산기(210)를 그대로 채용할 수 있다. 노드 연산기(510-1 내지 510-3) 자체는, 도11의 구성 이외의 구성을 채용했을 경우에도, 본 발명을 적용할 수 있다.
또한, 가변 노드와 체크 노드로 각각 사용될 수 있는 노드 연산기(510-1 내지 510-3) 대신에, 3개의 가변 노드 연산기와 3개의 체크 노드 연산기가 다른 회로로서 구성되어 있는 복호 장치에 대해서도, 본 발명을 적용할 수 있다.
또한, 노드 연산기(510-1 내지 510-3)를 이용하지 않고 가변 노드 연산을 실시하는 경우에도, 본 발명을 적용할 수 있다.
이하, 도 12의 예의 복호 장치의 동작에 대해 설명한다.
후술하는 바와 같이, 도 12의 예의 복호 장치는, F를 약수로 가지는 임의의 P에 대해서, P의 부호를 복호할 수 있다. 다만, 도 12의 예의 복호 장치에 의해 실행되는 동작들에 대한 다음의 설명에서는, 도 12의 예의 복호 장치를 도 10의 예 의 종래의 복호 장치와 비교하기 용이하도록 하기 위해서, 복호 대상을, 도 9의 6×6의 구조의 패리티 검사 행렬로 나타나는 P=6의 LDPC 부호라고 설정한다.
수신치 버퍼(500)는, 통신로를 통해 수신한 데이터(D500)를 1부호 만큼 저장하여, 그 데이터(D500)를 수신치 저장 메모리(501)에 데이터(D501)로서 전송한다.
패리티 검사 행렬의 열의 재배치 처리는 부호 계열의 부호 비트들을 재배치하는 처리에 대응한다. 따라서, 제어부(506)의 제어에 근거하여, 다음과 같은 재배치 처리 수신치 버퍼(500)에 대해 실행된다.
도 9의 검사 행렬은, 재배치의 단위가 되는 6×6의 구성 행렬의 집합체로 취급된다. 도 13과 도 14에 도시된 소정 규칙에 근거하여, 6×6의 구성 행렬의 각각은, 6×6의 구성 행렬을, 3×3의 구성 행렬의 집합체가 되는 행렬로 재배치하는 처리를 거치게 된다. 소정 규칙에 의해, 도 14의 3×3의 구성 행렬은, 행 번호 또는 열번호를 2로 나눈 나머지가 동일하게 되는 행과 열들로 구성되는 행렬이다. 그러므로, 3×3의 구성 행렬은 도 14에 도시된 바와 같이, 우수 또는 홀수 열을 각각 가지는 우수 또는 홀수 열과 행들을 가지는 행렬로 구성된다. 즉, 도 13의 6×6의 구성 행렬은, 도 14의 3×3의 구성 행렬과 같이 4부분으로 분할될 수 있다.
구체적으로는, 도 9에 도시된 바와 같이, 사용자는, 각각 6×6의 구조를 가지는 구성 행렬로 된 패리티 검사 행렬의 6×6의 시프트 행렬을 나타내는 도 13을 참조하여야 한다. 도 13에서는, 동그라미(○)안의 수치는 열번호를 나타내고 있으며, 직사각형(□)안의 수치는 행 번호를 나타내고 있다.
도 14에 도시된 바와 같이, 도 13의 6×6의 시프트 행렬은, 상술한 규칙에 따르는 재배치 처리를 거친 후에, 6×6의 시프트 행렬을 4개의 3×3의 구성 행렬로 된 재배치후(post-rearrangement) 행렬로 변환된다. 도 14의 재배치후 행렬은, 도 14에 도시된 바와 같이, 두 개의 3×3의 0행렬, 한 개의 3×3의 준단위행렬, 한 개의 3×3의 시프트 행렬이 되는 4개의 3×3의 구성 행렬(사선으로 표시됨)로 구성되어 있는 것을 알 수 있다.
도 9에 도시된 바와 같이, 각각 6×6의 구조를 가지는 구성 행렬로 된 패리티 검사 행렬의 6×6의 시프트 행렬을 구성하는 다른 6×6의 각 구성 행렬도 각각 상술한 재배치 처리를 거치게 된다. 그 결과, 도 9의 6×6의 구조의 패리티 검사 행렬은, 도 15의 구조의 재배치후 행렬로 재배치된다. 도 9의 6×6의 구조를 각각 가지는 구성 행렬로 된 패리티 검사 행렬을 재배치하는 처리의 결과로 얻어지는 구성 행렬의 각각을, 인식하기 쉬운 3×3의 구조를 각각 가지는 구성 행렬로 만들기 위해서, 도 15의 패리티 검사 행렬의 3×3의 구성 행렬들 사이에는 간격이 제공된다는 점을 명심하자. 도 15의 패리티 검사 행렬은, 3×3의 단위행렬, 3×3의 준단위행렬, 3×3의 시프트 행렬, 3×3의 합행렬과 3×3의 0행렬의 조합에 의해 구성되어 있다.
따라서, 도 12의 복호 장치의 수신치 저장 메모리(501)의 후단의 동작은, F=3에 대한 동작이 되는 반면에, 도 10의 수신치 저장 메모리(201)의 후단의 동작은 F=6에 대한 동작이 된다는 사실을 제외하고는, 도 12의 복호 장치의 수신치 저장 메모리(501)의 후단의 동작은, 도 10의 수신치 저장 메모리(201)의 후단의 동작 과 비슷하다. 환언하면, 도 12의 복호 장치의 수신치 저장 메모리(501)의 후단의 동작은, 도 12의 복호 장치가 P=3인 경우의 P의 부호를 복호하는 장치인 것 같이 수행된 동작과 거의 동일하다.
도 12의 복호 장치의 수신치 저장 메모리(501)에 재배치된 부호 비트들을 통신 라인을 통해 출력하기 전에 수신된 부호 비트들을 재배치하는 방법은, 먼저 전송 방식으로서 실행되었다면, 부호 비트들은 상술한 재배치 처리와 동시에 역방향으로 수신치 버퍼(500)에서 재배치된다. 상술한 재배치 처리와 동시에 역방향으로 부호 비트들을 재배치하는 대신에, 부호 비트들은 수신치 버퍼(500)에서 재배치 처리 전이나 또는 후에 재배치될 수 있다.
상기 설명에서는, P=6의 약수로서 3(F=3)을 채용했을 경우의 예에 대해 설명했다. 당연히, 상술한 바와 같이 약수는 1이 아니어야 하므로, P=6의 다른 약수 F, 즉 2를 채용할 수도 있다. 이 경우, 다음과 같이 미리 정해진 소정의 규칙에 따라, 도 9의 6×6의 구조의 구성 행렬로 구성된 패리티 검사 행렬에 대해 재배치 처리가 실행된다. 6×6의 구조의 구성 행렬의 각각은, 6×6의 구조의 구성 행렬을 도 16의 재배치후 행렬로 재배치하는 재배치 처리를 거치게 된다. 도 16에 도시된 바와 같이, 재배치후 행렬은, 행 번호 또는 열번호를 3으로 각각 나눈 나머지가 동일하게 되는 행과 열끼리로 구성되는 행렬의 집합체이다.
구체적으로는, 예를 들면, 도 13의 6×6의 시프트 행렬은 상술한 소정의 규칙에 따르는 재배치 처리를 거진 후에, 도 16의 2×2의 구성 행렬로 구성된 재배치 후행렬을 얻을 수 있다. 도 16의 재배치 후행렬은, 도중 점선으로 표시된 바와 같이, 2×2의 0행렬, 2×2의 준단위행렬, 2×2의 시프트 행렬이 되는, 9개의 2×2의 구성 행렬로 나누어 진다.
따라서, F=2의 경우에도, 도 12의 복호 장치의 수신치 저장 메모리(501)의 후단의 동작은, F=2에 대한 동작이 되는 반면에, 도 10의 수신치 저장 메모리(201)의 후단의 동작은 F=6에 대한 동작이 된다는 사실을 제외하고는, 도 12의 복호 장치의 수신치 저장 메모리(501)의 후단의 동작은, 도 10의 수신치 저장 메모리(201)의 후단의 동작과 비슷하다. 환언하면, 도 12의 복호 장치의 수신치 저장 메모리(501)의 후단의 동작은, 도 12의 복호 장치가 P=2인 경우의 P의 부호를 복호하는 장치인 것 같이 수행된 동작과 거의 동일하다.
즉, F=2로 했을 경우에는, 복호 장치는, 도 12의 구성을 취할 필요는 없다. 즉, 2개의 병렬 노드 연산기, 2×2의 순회 시프트를 실시하는 시프트부 및 2개의 데이터(2 bit)의 데이터를 동시에 읽고 쓰기할 수 있는 각종 메모리를 가지는 구성을 취하면 충분하다.
게다가, 상기 설명에서는, P가 6인 경우의 예에 대해 설명했지만, 당연히 P는 6이 아닌 수가 되는 경우가 있다. 예를 들면, P=360이 되는 본 발명은 검사 행렬의 구조에 따라서는, P=360이 P×P의 구조를 가지는 구성 행렬의 패리티 건사 행렬에 적용될 수 있다. 이와 같이 임의의 값이 P가 되는 경우에서도, 본 발명의 기법은 적용 가능하다. 그리고, 본 발명의 기법에 의하면, P가 결정된 후에는, 1이외의 임의의 약수를 F로서 채용하는 것도 가능하다.
즉, 임의의 P와 그 P의 약수중 1을 제외한 임의의 F가 채용되었을 경우, P× P의 구조의 패리티 검사 행렬(P의 LDPC 부호)에 대해서, 다음과 같은 소정 규칙에 따르는 재배치 처리가 실행되어, F병렬의 노드 연산기, F×F의 순회 시프트를 실시하는 시프트부 및 F개의 데이터(F비트)의 데이터를 동시에 읽고 쓰기할 수 있는 각종 메모리를 가지는 구성으로, 복호 장치를 실장할 수 있게 된다.
상기 소정 규칙에 따라, P×P의 구조의 구성 행렬의 각각은, P=F×J로부터 도출된 J에 근거하여, 행과 열을 J로 나눈 나머지가 동일하게 되는 행과 열끼리로 구성되는 F×F의 구성 행렬로 나누어진다. 이 때에, 행 번호는, 0 내지 P-1의 범위내에서, 패리티 검사 행렬을 구성하는 각각 P×P의 구성 행렬내에 포함된 P행의 각각에 할당된 수이며, 열번호는, 패리티 검사 행렬을 구성하는 각각 P×P의 구성 행렬내에 포함된 P행의 각각에 할당된 수이며, 0 내지 P-1범위내의 수이다.
상술한 바와 같이, 재배치 처리는, P×P의 구조의 구성 행렬로 된 행렬로서, 버퍼내에 저장되어 있는 패리티 검사 행렬을 재배치하여, F×F의 구조의 구성 행렬로 된 재배치 후행렬을 생성하고, 메모리를 통해 노드 연산기에 재배치 후행렬을 공급하기 전에 버퍼내에 재배치 후행렬을 다시 한 번 저장하는 재배치 처리에 한정되어 있는 것은 아니다. 즉, 상술의 예에서는, 수신치 버퍼(500)에 저장되어 있는 패리티 검사 행렬을, P×P의 구조의 구성 행렬로 된 행렬로서 재배치하는 처리가 실행되어, F×F의 구조의 구성 행렬로 된 재배치 후행렬을 생성하고, 메모리를 통해 노드 연산기(502)에 재배치 후행렬을 공급하기 전에 수신치 버퍼(500)에 재배치 후행렬을 다시 한 번 저장한다. 그렇지만, 등가 처리가 실행되어, 수신치 버퍼(500)에, P×P의 구조의 구성 행렬로 된 패리티 검사 행렬과 같은 형태로 그대로 저장하고, 그 후에, 노드 연산부(502)에 데이터를 제공하기 전에, F×F의 구조의 구성 행렬로 된 재배치 후행렬을 생성하기 위해, 상술의 소정 규칙에 따라수신치 메모리(501)에 P×P의 구조의 구성 행렬로 패리티 검사 행렬의 행과/또는 열을 재배치한다. 즉, 소정 규칙에 따라 수신치 메모리(501)로부터 데이터가 판독되어 노드 연산부(502)로 공급된다. 즉, 재배치 처리는 등가 기술에 따르는 등가 처리를 포함하는 광범위한 개념의 처리이다. 상술한 소정 규칙에 따라 수신치 메모리(501)로부터 데이터를 판독하는 처리를 제어하는 부분으로서 제어부를 지정함으로써, 제어는 용이하게 실행될 수 있다, 도 12의 복호 장치의 경우에는, 제어부(506)가 이러한 제어부로 작용한다.
또한, 상술의 실시예는, 부호장 108, 부호화율(encoding ratio) 2/3의 예였지만, 이러한 값은 단지 대표적인 값에 지나지 않는 것은 말할 필요도 없다. 즉, 예를 들면, P=6이 되며, 가지 총수가 동일하거나 또는 그 이하이면, 임의의 부호장, 임의의 부호화율을 채용해도, 단지 제어 신호를 바꾸어, 동일한 복호 장치를 이용해 복호하는 것이 가능하다. 게다가, P가 같고 부호장과 가지의 총수가 각각 소정치 이하가 되는 조건을 만족하는 부호의 복호 장치는, 같은 조건을 만족시키는 부호장, 다른 부호화율의 부호를 가지는 데이터를 복호할 수 있다.
이상의 내용을 정리하면 다음과 같다. 본 발명을 적용하면, P의 값에 구속되는 일없이, 전송 레이트나 동작 주파수에 따라, 복호 처리시에 병렬성을 나타내는 F가 정수 P의 약수로부터 임의로 선택될 수 있다. 이것에 의해, 회로 규모가 작은 복호 장치를 개발하는 것이 가능하게 된다.
예를 들면, P가 360인 경우에는, F는 360, 180, 120이라고 하는 약수중에서 임의의 것을 선택할 수 있다. F는, 상술한 노드 연산기의 병렬수가 된다는 사실로부터 알 수 있듯이, 본 발명을 채용했을 경우에는 복호 처리의 병렬성을 나타내는 값을 말한다. 그러므로, 복호 장치의 개발자는, 복호의 병렬성을 고려하면서, 전송 레이트와 회로의 동작 주파수에 따라 최적인 값을 F로서 선택할 수 있게 된다.
즉, 필요한 전송 레이트에 대해서, P중에서 큰 약수 F를 선택했을 때에는, 복호 처리의 병렬성이 필요이상으로 높아지게 된다. 그러므로, 복호 처리시의 높은 병렬성 때문에 복호 처리시에 요구되는 시간이 짧아지게 되므로, 복호 처리를 하기 위해 필요한 시간 보다 더욱 오랜 기간에만 데이터가 도착한다. 그러므로, P의 약수중 적당한 값을 F로서 선택함으로써, 각 구간이 복호 처리에 필요한 시산 길이와 거의 동일하게 된다. 이 경우에는, F가 감소되므로, 복호 처리시의 병렬성도 역시 감소하게 된다. 결과적으로, 복호 장치의 회로 규모를 삭감할 수 있다. 또, 장래적에 회로가 고속 동작하게 되면, 복호 장치의 병렬성을 내리기 위해 F로서 작은 값을 채용할 수 있다. 이 경우에도, 종래와 동등의 성능을 달성하는 것이 가능하게 된다.
게다가, P와 Q(다만, P > Q)가 공약수를 가질 때, 그 공약수를 복호의 병렬성 F로서 채용한 복호 장치는, P의 부호와 Q의 부호의 양자를 복호하는 것이 가능하다.
따라서, 예를 들면, 높은 전송 레이트를 필요로 하는 서비스에는 큰 P의 부 호를 이용하고, 높은 전송 레이트를 요구하지 않는 휴대형 수신기용 서비스에서는 작은 Q 의 부호를 이용했을 경우에도, 두 개의 서비스에 공통적인 수신 장치가 되는 휴대형 수신기용 서비스의 부호와, 높은 전송 레이트를 요구하는 서비스의 부로를 복호할 수 있는 복호 기능이 제공된 수신장치를, 동일한 복호 장치로 실현할 수 있다.
즉, 공통 수신장치를 실현 가능하다는 것은, P의 부호와 Q의 부호의 양쪽 모두를 전송 시스템안에 공존시키는 것을 가능하게 한다.
예를 들면, DVB-S.2의 LDPC 부호를 8PSK와 30 Msym/s로 송신하는 경우에는, 부호 비트의 비트율은 90Mbps가 된다. 패리티 검사 행렬의 열 가중치의 평균은 대체로 3.5정도가 되므로, 각 부호 비트에 필요한 연산량은, 복호 회수를 50회로 하면, 3.5×50×2=350정도가 된다. 따라서, 클락 주파수는 이 연산량에, 회로의 효율성을 반영하여 1.5배정도를 곱셈하여 얻어진 곱셈 결과로 설정될 필요가 있다.그러므로, 클락수를 연산의 병렬성 360으로 나누면, 즉, 복호 장치는 90Mbps×350×1.5/360=131.25MHz에서 동작하는 것이 필요하다. 이 경우, P=360은 복호 처리의 병렬성을 나타내며, 90Mbps는 부호 비트의 비트율이며, 1.5는 회로의 효율성을 나타내고 있다.
이 경우, 복호 처리의 병렬성(parallelism)을 나타내는 P=360에 대해서 종래의 복호 장치는, 360개의 데이터를 동시에 읽고 쓰기할 수 있는 메모리를 실현하기 위하여, RAM을 채용할 필요가 있었다. 이러한 RAM은, 데이터의 큰 비트수를 저장하기 위해 요구되는 RAM의 각각의 저장 용량을 나타내는 워드수가 적기 때문 에, 열악한 면적 효율을 야기시킨다. 또한, 종래의 복호 장치는 360개의 노드 연산기를 요구하고 있다. 그러므로, 종래의 복호 장치의 회로 규모는 매우 크게 되었다.
그러므로, DVB-S.2의 LDPC 부호를, 상술의 90 Mbps보다 낮은 전송 방식, 예를 들면 15Mbps의 전송 방식으로 응용하는 경우, 복호의 병렬성을 F=60이라고 설정해도, 같은 동작 주파수로 같은 복호 회수를 실현하는 것, 즉 같은 복호 성능을 달성할 수 있다.
복호의 병렬성을 F=60으로 할 수 있으면, 동시에 읽고 쓰기해야 할 데이터가 60개가 된다. 따라서, 메모리를 구성하는 경우에는, 상술한 종래의 RAM과 비교하여 워드수가 6배의 RAM이며, 저장된 데이터의 비트수를 줄인 동일한 갯수의 RAM를 채용하는 것이 가능하다. 종래의 면적 효율이 나쁜 RAM과 비교하면, 새로운 RAM은 면적 효율을 획기적으로 개선하는 작은 규모의 크기를 가지고 있다. 즉, 종래의 RAM과 동일한 워드수를 가지는 적은 수의 새로운 RAM이 사용될 수 있다. 모두의 경우에는, 동일한 비트 수를 저장하기 위해 이용되는 면적의 효율도 상당히 개선된다. 게다가, 병렬 노드 연산기의 수는 단지 60이므로, 종래의 복호 장치의 회로 크기는 더욱 감소하게 된다.
즉, DVB-S.2의 LDPC 부호를, 예를 들면 지상파의 방송에 이용하는 경우, 소비 전력의 문제로 인해 휴대형 이동 수신기로의 수신은 어려워진다. 이러한 문제를 래결하기 위해, 예를 들면 휴대형 수신기 전용에는, Q를 60으로 했던 것보다 더욱 짧은 부호장의 부호를 이용하고 서비스를 실시하는 경우를 상정할 수 있다. 그러한 경우에도, 본 발명을 적용함으로써, 복호의 병렬성을 나타내는 값을, F=60으로 설정한 복호 장치를 용이하게 실현하는 것이 가능하다. 복호 장치는, 부호장 64,800의 부호까지 복호할 수 있는 복호 장치이며, P=360의 부호와 Q=60의 부호의 양자를 복호할 수 있는 복호 장치이다. 따라서, 이러한 복호 장치를 갖춘 수신장치는, 고정 수신용 서비스(P=360의 부호를 이용하는 서비스)와 휴대형 수신기용 서비스(Q=60의 부호를 이용하는 서비스)의 양쪽 모두를 수신하는 것이 가능하게 된다.
이상의 내용을 정리하면, 본 발명을 적용하면, 큰 P를 가지는 LDPC 부호의 복호 장치를, 그 약수 F에 근거해 실장하는 것이 가능하게 된다. 즉, 비트율이 낮은 전송 방식과, 증가된 처리 속도를 가지는 회로를 채용한 장래의 시스템을 위한 복호 장치를 실현하는 것이 가능하다. 종래의 복호 장치와 비교하면, 본 발명의 실시예에 따르는 복호 장치는 작은 규모의 회로를 가지고 있다.
또, 본 발명을 적용하면, 복수의 공약수 F를 가지는 정수 P에 근거하는 부호는, 모두 F에 근거하는 복호 장치로 복호할 수 있게 된다. 따라서, 전송 레이트나 수신 형태가 다른 서비스에 따라 조절된 적합한 크기의 LDPC 부호를 하나의 전송 시스템에 공존시키는 것이 가능하게 된다.
즉, 상술의 예의 전송 시스템에서는, P의 부호와 Q의 부호의 2 종류만이 이용되었지만, 일반적으로, K개(2이상의 정수치)의 다른 종류의 α부호(예를 들면, P부호와 Q부호)가 사용될 수 있으며, K는 2이상의 정수치)의 정수치α는 사용된 부호의 형태를, K는 사용된 부호의 다른 종류의 형태를 나태낸다. K는, 1이 아닌 F의 배수가 되는 복수의 다른 정수치로부터 시스템 설계자에 의해 선택된 정수치를 나타낸다. 즉, 사용될 수 있는 사로 다른 α 부호는 K가 된다.
그런데, 상술한 일련의 처리는 하드웨어에 의해 실행시킬 수도 있고, 소프트웨어에 의해 실행시킬 수도 있다.
상술한 일련의 처리를 소프트웨어에 의해 실행시키는 경우, 본 발명이 적용되는 복호 장치는, 예를 들면, 도 17에 나타나는 컴퓨터로 구성할 수도 있다.
도 17의 복호 장치에서는, CPU(Central Processing Unit)(1001)는, ROM(Read Only Memory)(1002)에 기록되어 있는 프로그램, 또는 기억부(1008)로부터 RAM(Random Access Memory)(1003)에 로드 된 프로그램에 따라서 각종의 처리를 실행한다. RAM(1003)는 또한, CPU(1001)가 각종의 처리를 실행하는데 요구되는 데이터와 같은 여러가지 종류의 정보를 적절하게 기억한다.
CPU(1001), ROM(1002) 및 RAM(1003)은 버스(1004)를 통해 서로 접속되어 있다. 이 버스(1004)에는 또한, 입출력 인터페이스(1005)도 접속되어 있다.
입출력 인터페이스(1005)에는, 키보드, 마우스를 포함하는 입력부(1006), 디스플레이를 포함하는 출력부(1007), 하드 디스크를 포함하는 기억부(1008) 및 모뎀, 터미널 어댑터 등을 포함하는 통신부(1009)가 접속되어 있다. 통신부(1009)는, 인터넷을 포함한 네트워크를 통해 다른 장치(도시하지 않음)와의 사이에 실시하는 통신을 제어한다.
입출력 인터페이스(1005)는 또한, 필요에 따라서 기록 매체가 장착되는 드라이브(1010)에 접속되어 있다. 기록 매체는, 자기 디스크, 광디스크, 광학 자기 디스크, 혹은 반도체 메모리가 될 수 있는 분리가능 매체(1111)이다. 상술한 바와 같이, CPU(1001)에 의해 실행되는 컴퓨터 프로그램은 분리가능 매체(1111)로부터 기억부(1008)에 설치된다.
상술한 바와 같이, 이미 언급된 일련의 처리를 소프트웨어 및/또는 하드웨어에 의해 실행될 수 있다. 상술한 일련의 처리가 소프트웨어에 의해 실행되는 경우, 그 소프트웨어를 구성하는 프로그램이, 전용의 하드웨어에 내장되어 있는 컴퓨터, 범용의 퍼스널 컴퓨터 등에, 네트워크나 기록 매체(1111)로부터 설치된다. 이 경우에, 컴퓨터 또는 범용의 퍼스널 컴퓨터는 복호 장치로 작용하는 컴퓨터이다. 범용의 퍼스널 컴퓨터는, 각종의 프로그램을 퍼스널 컴퓨터내에 설치하여 각종의 기능을 실행하는 것이 가능한 퍼스널 컴퓨터이다.
컴퓨터 또는 범용의 퍼스널 컴퓨터내에 설치된 프로그램을, 컴퓨터 또는 범용의 퍼스널 컴퓨터에 의해 각각 실행되는 프로그램으로 기록하기 위한 상술의 분리가능 매체(1111)는, 도 17의 복호 장치의 본체와는 별도로 이용자에게 제공되는 분리가능 기록매체이다. 패키지 매체로 불려지는, 분리가능 기록매체의 보기로는, 플렉서블 디스크와 같은 자기 디스크, CD-ROM(Compact Disk-Read Only Memory) 또는 VD(Digital Versatile Disk)와 같은 광디스크, MD(Mini-Disk)와 같은 광학 자기 디스크 및 반도체 메모리를 포함한다. 분리가능 매체로부터 프로그램을 설치하는 대신에, 복호 장치의 본체에 내장된 기록매체에 미리 프로그램들이 저장될 수 있다. 내장된 기록 매체의 보기로는, ROM(1002)과, 기억부(1008)에 포함되는 하드 디스크가 있다.
본 명세서에서는, 기록 매체에 기록되는 프로그램을 기술하는 스텝은, 그 순서에 따라서 시계열적으로 행해지는 처리는 물론, 반드시 시계열적으로 처리되지 않아도, 병렬적 혹은 개별적으로 실행되는 처리도 포함하는 것이다.
게다가, 첨부된 청구항들 또는 그와 동등한 것들의 범위내에 있는 한, 여러가지 수정, 결합, 소결합과 변경들이 가능하다는 것을 당업자는 알 수 있다.
또, 본 명세서에서는, 시스템이란, 복수의 장치나 처리부에 의해 구성되는 장치 전체를 나타내는 것이다.
도 1은, LDPC 부호를 정의하는 대표적인 스파스 패리티 검사 행렬의 예를 나타내는 도면이다.
도 2는, LDPC 부호를 정의하는 패리티 검사 행렬로서, 하부 삼각형을 포함하는 패리티 검사 행렬의 예를 나타내는 도면이다.
도 3은, LDPC 부호를 복호할 때의 일련의 처리 행정을 설명하는 플로차트이다.
도 4는, 메시지의 흐름의 설명도이다.
도 5는, (3, 6) LDPC 부호의 패리티 검사 행렬의 예를 나타내는 도면이다.
도 6은, 도 5의 패리티 검사 행렬의 타나 그라프를 나타내는 도면이다.
도 7은, 가변 노드에서 실행되는 메시지 계산을 설명하는 도면이다.
도 8은, 체크 노드에서의 메시지 계산을 설명하는 도면이다.
도 9는, 6×6의 구조의 패리티 검사 행렬의 예를 나타내는 도면이다.
도10은, P=6에 대한 LDPC 부호로 기재된 LDPC 부호의 종래의 복호 장치의 구성예를 나타내는 블럭도이다.
도 11은, 도 10의 복호 장치의 노드 연산기의 구성예를 나타내는 블럭도이다.
도 12는, P=6에 대한 LDPC 부호를 이용하여 부호화된 부호를 복호하는 장치로서, 본 발명의 실시예에 의해 제공되는 복호 장치를 도시한 블럭도이다.
도 13은, 6×6의 시프트 행렬의 일례를 나타내는 도면이다.
도 14는, 도 13의 6×6의 시프트 행렬의 행과 열을 재배치하여, 3×3의 구성 행렬을 생성하는 수법을 설명하는 도면이다.
도 15는, 도 9의 6×6의 구조의 패리티 검사 행렬에 대해서, 도 14의 처리 결과로서 얻어지는 재배치 행렬이 되는 3×3의 구조의 행렬을 나타내는 도면이다.
도 16은, 도 13의 6×6의 시프트 행렬의 행과 열을 재배치하여, 2×2의 구성 행렬을 생성하는 수법을 설명하는 도면이다.
도 17은, 본 발명이 적용되는 복호 장치의 다른 실시 형태로서의, 컴퓨터의 구성예를 나타내는 블럭도이다.

Claims (8)

  1. P×P의 단위행렬, 상기 P×P의 단위행렬의 한 개 이상의 행렬 요소들의 각각의 값을 1에서 10까지의 값으로 설정하여 얻어지는 P×P의 준단위행렬, 상기 P×P의 단위행렬 혹은 P×P의 준단위행렬을 순회 시프트하여 얻어지는 P×P의 시프트 행렬, 상기 P×P의 단위행렬, P×P의 준단위행렬과 P×P의 시프트 행렬중 적어도 두 개의 행렬에 대해 행렬 가산 처리를 수행하여 얻어지는 P×P의 합행렬(sum matrix)과 P×P의 0행렬을 포함하여 얻어지는 복수의 제 1의 구성 행렬을 결합하여 얻어지는 제 1의 구조를 가지는 제 1의 초기 패리티 패리티 검사 행렬에 의해 표시되거나, 또는 상기 제 1의 초기 패리티 패리티 검사 행렬의 행과 열중 적어도 한 개 이상을, 상기 제 1의 구조를 가지는 행렬로 재배치함으로써 얻어지는 제 1의 재배치후 행렬로 표시되는 제 1의 포맷(P는 정수) 또는,
    Q×Q의 단위행렬, 상기 Q×Q의 단위행렬의 한 개 이상의 행렬 요소들의 각각의 값을 1에서 10까지의 값으로 설정하여 얻어지는 Q×Q의 준단위행렬, 상기 Q×Q의 단위행렬 혹은 Q×Q의 준단위행렬을 순회 시프트하여 얻어지는 Q×Q의 시프트 행렬, 상기 Q×Q의 단위행렬, Q×Q의 준단위행렬과 Q×Q의 시프트 행렬중 적어도 두 개의 행렬에 대해 행렬 가산 처리를 수행하여 얻어지는 Q×Q의 합행렬과 Q×Q의 0행렬을 포함하여 얻어지는 복수의 제 2의 구성 행렬을 결합하여 얻어지는 제 2의 구조를 가지는 제 2의 초기 패리티 패리티 검사 행렬에 의해 표시되거나, 또는 상기 제 2의 초기 패리티 패리티 검사 행렬의 행과 열중 적어도 한 개 이상을, 상기 제 2의 구조를 가지는 행렬로 재배치함으로써 얻어지는 제 2의 재배치후 행렬로 표시되는 제 2의 포맷(Q는 상기 정수 Q와 P에 대해 공통적인 비균일성 측정 인자 F를 가지는 정수이다.)으로 수신되는 LDPC(Low Density Parity Check) 부호를 복호하는 복호 장치에 있어서,
    상기 제 1의 포맷 또는 상기 제 2의 포맷의 LDPC 부호를 수신한 결과 얻을 수 있는 수신치를 복호하기 위한 연산으로서, F개의 체크 노드의 연산 또는 F개의 가변 노드의 연산을 병렬적으로 실시하는 연산을 적어도 실행하는 복호 장치.
  2. 제 1항에 있어서,
    상기 F개의 체크 노드의 연산 또는 F개의 가변 노드의 연산을 병렬적으로 실시해, 각 연산의 결과 얻을 수 있는 F개의 메시지를 출력하는 메시지 계산 수단과,
    상기 메시지 계산 수단으로부터 출력되는 F개의 상기 메시지에 대해서, F×F의 순회 시프트를 실시해 출력하는 시프트 수단과,
    상기 시프트 수단으로부터 출력되는 F개의 상기 메시지를 저장하고, 상기 저장된 F개의 메시지를 읽어내거나 또는 상기 F개의 수신치를 저장하거나 혹은 상기 저장된 F개의 수신치를 읽어내는 기억 수단을 구비한 복호 장치.
  3. 제 2항에 있어서,
    상기 복호 장치는,
    상기 제 1의 구조를 가지는 상기 제 1의 초기 패리티 패리티 검사 행렬에 의 해 표시되거나 또는 상기 제 2의 구조를 가지는 상기 제 2의 초기 패리티 패리티 검사 행렬에 의해 표시된 상기 수신치에 대해, 적어도 열 재배치 처리 또는 상기 열 재배치 처리에 대응하는 처리를 수행함으로써, 상기 제 1의 또는 상기 제 2의 구성 행렬로부터 도출되는 제 3의 구성행렬이 되는 제 3의 구조를 가지는 행렬내에 포함되어 있으며, 상기 제 3의 구성 행렬에 대응하는 F개의 상기 수신치로 구성된 단위를 상기 메시지 계산 수단으로 제공하는 동작을, 상기 수신치를 상기 메시지 계산 수단으로 제공하는 공급하는 연산으로서, 제어하는 제어 수단을 추가로 구비하며,
    상기 제 3의 구조는, F×F의 단위행렬, 상기 F×F의 단위행렬의 한 개 이상의 행렬 요소들의 각각의 값을 1에서 10까지의 값으로 설정하여 얻어지는 F×F의 준단위행렬, 상기 F×F의 단위행렬 혹은 F×F의 준단위행렬을 순회 시프트하여 얻어지는 F×F의 시프트 행렬, 상기 F×F의 단위행렬, F×F의 준단위행렬과 F×F의 시프트 행렬중 적어도 두 개의 행렬에 대해 행렬 가산 처리를 수행하여 얻어지는 F×F의 합행렬과 F×F의 0행렬을 포함하여 얻어지는 구조가 되는 복호 장치.
  4. P×P의 단위행렬, 상기 P×P의 단위행렬의 한 개 이상의 행렬 요소들의 각각의 값을 1에서 10까지의 값으로 설정하여 얻어지는 P×P의 준단위행렬, 상기 P×P의 단위행렬 혹은 P×P의 준단위행렬을 순회 시프트하여 얻어지는 P×P의 시프트 행렬, 상기 P×P의 단위행렬, P×P의 준단위행렬과 P×P의 시프트 행렬중 적어도 두 개의 행렬에 대해 행렬 가산 처리를 수행하여 얻어지는 P×P의 합행렬(sum matrix)과 P×P의 0행렬을 포함하여 얻어지는 복수의 제 1의 구성 행렬을 결합하여 얻어지는 제 1의 구조를 가지는 제 1의 초기 패리티 패리티 검사 행렬에 의해 표시되거나, 또는 상기 제 1의 초기 패리티 패리티 검사 행렬의 행과 열중 적어도 한 개 이상을, 상기 제 1의 구조를 가지는 행렬로 재배치함으로써 얻어지는 제 1의 재배치후 행렬로 표시되는 제 1의 포맷(P는 정수) 또는,
    Q×Q의 단위행렬, 상기 Q×Q의 단위행렬의 한 개 이상의 행렬 요소들의 각각의 값을 1에서 10까지의 값으로 설정하여 얻어지는 Q×Q의 준단위행렬, 상기 Q×Q의 단위행렬 혹은 Q×Q의 준단위행렬을 순회 시프트하여 얻어지는 Q×Q의 시프트 행렬, 상기 Q×Q의 단위행렬, Q×Q의 준단위행렬과 Q×Q의 시프트 행렬중 적어도 두 개의 행렬에 대해 행렬 가산 처리를 수행하여 얻어지는 Q×Q의 합행렬과 Q×Q의 0행렬을 포함하여 얻어지는 복수의 제 2의 구성 행렬을 결합하여 얻어지는 제 2의 구조를 가지는 제 2의 초기 패리티 패리티 검사 행렬에 의해 표시되거나, 또는 상기 제 2의 초기 패리티 패리티 검사 행렬의 행과 열중 적어도 한 개 이상을, 상기 제 2의 구조를 가지는 행렬로 재배치함으로써 얻어지는 제 2의 재배치후 행렬로 표시되는 제 2의 포맷(Q는 상기 정수 Q와 P에 대해 공통적인 비균일성 측정 인자 F를 가지는 정수이다.)으로 수신되는 LDPC(Low Density Parity Check) 부호를 복호하는 복호 장치에 의해 이용되는 복호 방법에 있어서,
    상기 제 1의 포맷 또는 상기 제 2의 포맷의 LDPC 부호를 수신한 결과 얻을 수 있는 수신치를 복호하기 위해, 상기 복호 장치는,
    F개의 체크 노드의 연산 또는 F개의 가변 노드의 연산을 병렬적으로 실시하 는 스텝을 실행하는 복호 방법.
  5. P×P의 단위행렬, 상기 P×P의 단위행렬의 한 개 이상의 행렬 요소들의 각각의 값을 1에서 10까지의 값으로 설정하여 얻어지는 P×P의 준단위행렬, 상기 P×P의 단위행렬 혹은 P×P의 준단위행렬을 순회 시프트하여 얻어지는 P×P의 시프트 행렬, 상기 P×P의 단위행렬, P×P의 준단위행렬과 P×P의 시프트 행렬중 적어도 두 개의 행렬에 대해 행렬 가산 처리를 수행하여 얻어지는 P×P의 합행렬(sum matrix)과 P×P의 0행렬을 포함하여 얻어지는 복수의 제 1의 구성 행렬을 결합하여 얻어지는 제 1의 구조를 가지는 제 1의 초기 패리티 패리티 검사 행렬에 의해 표시되거나, 또는 상기 제 1의 초기 패리티 패리티 검사 행렬의 행과 열중 적어도 한 개 이상을, 상기 제 1의 구조를 가지는 행렬로 재배치함으로써 얻어지는 제 1의 재배치후 행렬로 표시되는 제 1의 포맷(P는 정수) 또는,
    Q×Q의 단위행렬, 상기 Q×Q의 단위행렬의 한 개 이상의 행렬 요소들의 각각의 값을 1에서 10까지의 값으로 설정하여 얻어지는 Q×Q의 준단위행렬, 상기 Q×Q의 단위행렬 혹은 Q×Q의 준단위행렬을 순회 시프트하여 얻어지는 Q×Q의 시프트 행렬, 상기 Q×Q의 단위행렬, Q×Q의 준단위행렬과 Q×Q의 시프트 행렬중 적어도 두 개의 행렬에 대해 행렬 가산 처리를 수행하여 얻어지는 Q×Q의 합행렬과 Q×Q의 0행렬을 포함하여 얻어지는 복수의 제 2의 구성 행렬을 결합하여 얻어지는 제 2의 구조를 가지는 제 2의 초기 패리티 패리티 검사 행렬에 의해 표시되거나, 또는 상기 제 2의 초기 패리티 패리티 검사 행렬의 행과 열중 적어도 한 개 이상을, 상기 제 2의 구조를 가지는 행렬로 재배치함으로써 얻어지는 제 2의 재배치후 행렬로 표시되는 제 2의 포맷(Q는 상기 정수 Q와 P에 대해 공통적인 비균일성 측정 인자 F를 가지는 정수이다.)으로 수신되는 LDPC 부호를 복호하는 복호 장치를 제어하는 컴퓨터에 의해 실행되는 프로그램에 있어서,
    상기 제 1의 포맷 또는 상기 제 2의 포맷의 LDPC 부호를 수신한 결과 얻을 수 있는 수신치를 복호하기 위한 연산으로서, F개의 체크 노드의 연산 또는 F개의 가변 노드의 연산을 병렬적으로 실시하는 스텝을 포함하는 프로그램.
  6. 데이터 송수신 시스템에 있어서,
    에러 정정 코드(ECC)로서 이용되는 LDPC 부호는,
    α×α의 단위행렬, 상기 α×α의 단위행렬의 한 개 이상의 행렬 요소들의 각각의 값을 1에서 10까지의 값으로 설정하여 얻어지는 α×α의 준단위행렬, 상기 α×α의 단위행렬 혹은 α×α의 준단위행렬을 순회 시프트하여 얻어지는 α×α의 시프트 행렬, 상기 α×α의 단위행렬, α×α의 준단위행렬과 α×α의 시프트 행렬중 적어도 두 개의 행렬에 대해 행렬 가산 처리를 수행하여 얻어지는 α×α의 합행렬과 α×α의 0행렬을 포함하여 얻어지는 복수의 구성 행렬을 결합하여 얻어지는 구조를 가지는 초기 패리티 패리티 검사 행렬에 의해 표시되거나, 또는 상기 초기 패리티 패리티 검사 행렬의 행과 열중 적어도 한 개 이상을, 상기 구조를 가지는 행렬로 재배치함으로써 얻어지는 재배치후 행렬로 표시될 수 있는 포맷(α는 1이 아닌 다른 정수)을 가지며,
    K개의 정수치는, 1이외의 정수치 F의 배수가 되는 서로 다른 복수의 정수치중 선택되며 (K는 2이상의 정수치),
    상기 선택된 K개의 정수치의 각각은, 상기α로서 각각 대입되었을 때에 서로 다른 K종류의 LDPC 부호를 공급하게 되며,
    상기 서로 다른 K종류의 상기 LDPC 부호의 각각은, 에러 정정 코드로서 사용되는 데이터 송수신 시스템.
  7. 데이터 송수신 시스템에서 이용되는 데이터 수신 장치에 있어서,
    에러 정정 코드(ECC)로서 이용되는 LDPC 부호는,
    α×α의 단위행렬, 상기 α×α의 단위행렬의 한 개 이상의 행렬 요소들의 각각의 값을 1에서 10까지의 값으로 설정하여 얻어지는 α×α의 준단위행렬, 상기 α×α의 단위행렬 혹은 α×α의 준단위행렬을 순회 시프트하여 얻어지는 α×α의 시프트 행렬, 상기 α×α의 단위행렬, α×α의 준단위행렬과 α×α의 시프트 행렬중 적어도 두 개의 행렬에 대해 행렬 가산 처리를 수행하여 얻어지는 α×α의 합행렬과 α×α의 0행렬을 포함하여 얻어지는 복수의 구성 행렬을 결합하여 얻어지는 구조를 가지는 초기 패리티 패리티 검사 행렬에 의해 표시되거나, 또는 상기 초기 패리티 패리티 검사 행렬의 행과 열중 적어도 한 개 이상을, 상기 구조를 가지는 행렬로 재배치함으로써 얻어지는 재배치후 행렬로 표시될 수 있는 포맷(α는 1이 아닌 다른 정수)을 가지며,
    K개의 정수치는, 1이외의 정수치 F의 배수가 되는 서로 다른 복수의 정수치 중 선택되며 (K는 2이상의 정수치),
    상기 선택된 K개의 정수치의 각각은, 상기α로서 각각 대입되었을 때에 서로 다른 K종류의 LDPC 부호를 공급하게 되며,
    상기 서로 다른 K종류의 상기 LDPC 부호의 각각은, 에러 정정 코드로서 사용되며,
    상기 데이터 수신장치는,
    상기 서로 다른 K종류중 어느 한 포맷의 LDPC 부호를 수신한 결과 얻을 수 있는 수신치를 복호하기 위한 연산을 실시하는 복호 수단을 구비하며,
    F개의 체크 노드의 연산 또는 F개의 가변 노드의 연산을 병렬적으로 실시하는 연산을 적어도 실행함으로써, 상기 수신치는 상기 정수 α가 상기 K개의 정수치중 한 개의 정수치로 설정되어 있는 상기 포맷을 가지는 데이터 수신장치.
  8. 데이터 송수신 시스템에서 이용되는 데이터 수신 장치의 데이터 수신방법에 있어서,
    에러 정정 코드(ECC)로서 이용되는 LDPC 부호는,
    α×α의 단위행렬, 상기 α×α의 단위행렬의 한 개 이상의 행렬 요소들의 각각의 값을 1에서 10까지의 값으로 설정하여 얻어지는 α×α의 준단위행렬, 상기 α×α의 단위행렬 혹은 α×α의 준단위행렬을 순회 시프트하여 얻어지는 α×α의 시프트 행렬, 상기 α×α의 단위행렬, α×α의 준단위행렬과 α×α의 시프트 행렬중 적어도 두 개의 행렬에 대해 행렬 가산 처리를 수행하여 얻어지는 α×α의 합행렬과 α×α의 0행렬을 포함하여 얻어지는 복수의 구성 행렬을 결합하여 얻어지는 구조를 가지는 초기 패리티 패리티 검사 행렬에 의해 표시되거나, 또는 상기 초기 패리티 패리티 검사 행렬의 행과 열중 적어도 한 개 이상을, 상기 구조를 가지는 행렬로 재배치함으로써 얻어지는 재배치후 행렬로 표시될 수 있는 포맷(α는 1이 아닌 다른 정수)을 가지며,
    K개의 정수치는, 1이외의 정수치 F의 배수가 되는 서로 다른 복수의 정수치중 선택되며 (K는 2이상의 정수치),
    상기 선택된 K개의 정수치의 각각은, 상기α로서 각각 대입되었을 때에 서로 다른 K종류의 LDPC 부호를 공급하게 되며,
    상기 서로 다른 K종류의 상기 LDPC 부호의 각각은, 에러 정정 코드로서 사용되며,
    상기 데이터 수신방법은,
    상기 서로 다른 K종류중 어느 한 포맷의 LDPC 부호를 수신한 결과 얻을 수 있는 수신치를 복호하기 위한 연산 스텝을 포함하며,
    F개의 체크 노드의 연산 또는 F개의 가변 노드의 연산을 병렬적으로 실시하는 연산을 적어도 실행함으로써, 상기 수신치는 상기 정수 α가 상기 K개의 정수치중 한 개의 정수치로 설정되어 있는 상기 포맷을 가지는 데이터 수신방법.
KR1020080101347A 2007-10-19 2008-10-15 복호 장치 및 방법, 송수신 시스템, 수신장치 및 방법, 및 프로그램 KR20090040223A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2007-272517 2007-10-19
JP2007272517A JP4487212B2 (ja) 2007-10-19 2007-10-19 復号装置および方法、送受信システム、受信装置および方法、並びにプログラム

Publications (1)

Publication Number Publication Date
KR20090040223A true KR20090040223A (ko) 2009-04-23

Family

ID=40564717

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080101347A KR20090040223A (ko) 2007-10-19 2008-10-15 복호 장치 및 방법, 송수신 시스템, 수신장치 및 방법, 및 프로그램

Country Status (6)

Country Link
US (1) US8234555B2 (ko)
EP (1) EP2088679A3 (ko)
JP (1) JP4487212B2 (ko)
KR (1) KR20090040223A (ko)
CN (1) CN101442317B (ko)
TW (1) TWI373922B (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8276053B2 (en) * 2009-11-08 2012-09-25 Mediatek Inc. Decoding circuit operating in response to decoded result and/or a plurality of viterbi target levels with pattern dependency
TW201126537A (en) * 2010-01-20 2011-08-01 Sunplus Technology Co Ltd Memory utilization method for low density parity check code, low density parity check code decoding method and apparatus thereof
US8539304B1 (en) 2010-04-27 2013-09-17 Marvell International Ltd. Parallel encoder for low-density parity-check (LDPC) codes
JP4861509B1 (ja) 2010-10-29 2012-01-25 株式会社東芝 符号化・復号化装置、データ記憶装置、及び方法
JP5829627B2 (ja) * 2011-01-21 2015-12-09 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 符号化方法、復号方法、符号化器、及び、復号器
US8918694B2 (en) * 2011-02-28 2014-12-23 Clariphy Communications, Inc. Non-concatenated FEC codes for ultra-high speed optical transport networks
US10063262B2 (en) 2011-02-28 2018-08-28 Inphi Corporation Non-concatenated FEC codes for ultra-high speed optical transport networks
US10103751B2 (en) * 2011-02-28 2018-10-16 Inphi Corporation Non-concatenated FEC codes for ultra-high speed optical transport networks
WO2017084024A1 (zh) * 2015-11-17 2017-05-26 华为技术有限公司 低密度奇偶校验码的译码方法和译码器
US10050642B2 (en) * 2016-03-17 2018-08-14 Silicon Motion Inc. Low power scheme for bit flipping low density parity check decoder
US10116333B2 (en) * 2016-07-29 2018-10-30 Sandisk Technologies Llc Decoder with parallel decoding paths
KR102523059B1 (ko) * 2018-04-18 2023-04-19 에스케이하이닉스 주식회사 에러 정정 회로 및 그것을 포함하는 메모리 시스템
US10998919B2 (en) * 2019-10-02 2021-05-04 Microsoft Technology Licensing, Llc Coded stream processing
US11424766B1 (en) 2020-01-31 2022-08-23 Marvell Asia Pte Ltd. Method and device for energy-efficient decoders
US11265015B2 (en) * 2020-05-15 2022-03-01 SK Hynix Inc. Out-of-order processing for bit-flipping decoders in non-volatile memory devices

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1407555A1 (en) * 2001-05-09 2004-04-14 Comtech Telecommunications Corp. Low density parity check codes and low density turbo product codes
US6633856B2 (en) * 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
ES2282671T3 (es) * 2002-07-03 2007-10-16 The Directv Group, Inc. Codificacion de codigos de comprobacion de paridad de baja densidad (ldpc) utilizando una matriz de comprobacion de paridad estructurada.
US7162684B2 (en) * 2003-01-27 2007-01-09 Texas Instruments Incorporated Efficient encoder for low-density-parity-check codes
US6957375B2 (en) * 2003-02-26 2005-10-18 Flarion Technologies, Inc. Method and apparatus for performing low-density parity-check (LDPC) code operations using a multi-level permutation
JP4225163B2 (ja) * 2003-05-13 2009-02-18 ソニー株式会社 復号装置および復号方法、並びにプログラム
JP4224777B2 (ja) * 2003-05-13 2009-02-18 ソニー株式会社 復号方法および復号装置、並びにプログラム
US7296208B2 (en) * 2003-07-03 2007-11-13 The Directv Group, Inc. Method and system for generating parallel decodable low density parity check (LDPC) codes
KR100809619B1 (ko) * 2003-08-26 2008-03-05 삼성전자주식회사 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법
FI121431B (fi) * 2004-09-13 2010-11-15 Tamfelt Pmc Oy Paperikoneessa käytettävä kudosrakenne ja menetelmä sen valmistamiseksi
WO2006039801A1 (en) * 2004-10-12 2006-04-20 Nortel Networks Limited System and method for low density parity check encoding of data
CN100550655C (zh) * 2004-11-04 2009-10-14 中兴通讯股份有限公司 一种低密度奇偶校验码的编码器/译码器及其生成方法
CN101069356A (zh) 2004-12-02 2007-11-07 三菱电机株式会社 解码装置以及通信装置
CN100583651C (zh) * 2004-12-22 2010-01-20 Lg电子株式会社 用于使用信道代码解码的装置和方法
US7900127B2 (en) * 2005-01-10 2011-03-01 Broadcom Corporation LDPC (Low Density Parity Check) codes with corresponding parity check matrices selectively constructed with CSI (Cyclic Shifted Identity) and null sub-matrices
JP4622654B2 (ja) * 2005-04-25 2011-02-02 ソニー株式会社 復号装置および復号方法
JP2006340016A (ja) 2005-06-01 2006-12-14 Toshiba Microelectronics Corp 誤り訂正符号復号装置及びそれを用いた復号方法
JP2007036776A (ja) * 2005-07-28 2007-02-08 Sony Corp 復号装置および復号方法
JP2007081602A (ja) * 2005-09-13 2007-03-29 Sony Corp 復号装置および復号方法
KR100946905B1 (ko) * 2005-09-27 2010-03-09 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 신호 송수신 장치 및 방법
US7707479B2 (en) * 2005-12-13 2010-04-27 Samsung Electronics Co., Ltd. Method of generating structured irregular low density parity checkcodes for wireless systems
US7805652B1 (en) * 2006-02-10 2010-09-28 Marvell International Ltd. Methods for generating and implementing quasi-cyclic irregular low-density parity check codes
JP2007272517A (ja) 2006-03-31 2007-10-18 National Institute Of Multimedia Education マイクロシナリオデータ分析システムおよびマイクロシナリオデータ分析プログラム
JP4856605B2 (ja) * 2006-08-31 2012-01-18 パナソニック株式会社 符号化方法、符号化装置、及び送信装置
JP4702632B2 (ja) * 2007-04-06 2011-06-15 ソニー株式会社 符号化方法および符号化装置、並びにプログラム
JP2008301152A (ja) 2007-05-31 2008-12-11 Sony Corp 復号装置および方法、並びにプログラム
JP4487213B2 (ja) * 2007-10-19 2010-06-23 ソニー株式会社 復号装置および方法、並びにプログラム

Also Published As

Publication number Publication date
TW200935754A (en) 2009-08-16
EP2088679A3 (en) 2012-08-01
CN101442317A (zh) 2009-05-27
JP2009100421A (ja) 2009-05-07
US8234555B2 (en) 2012-07-31
EP2088679A2 (en) 2009-08-12
US20090106621A1 (en) 2009-04-23
CN101442317B (zh) 2012-07-11
TWI373922B (en) 2012-10-01
JP4487212B2 (ja) 2010-06-23

Similar Documents

Publication Publication Date Title
JP4487213B2 (ja) 復号装置および方法、並びにプログラム
KR20090040223A (ko) 복호 장치 및 방법, 송수신 시스템, 수신장치 및 방법, 및 프로그램
KR101158919B1 (ko) 복호 방법 및 복호 장치, 및 기록 매체
KR101090001B1 (ko) 복호 장치 및 복호 방법, 및 기록 매체
JP4622654B2 (ja) 復号装置および復号方法
KR20080096387A (ko) 디코딩 장치
JP4285148B2 (ja) 復号装置および復号方法、並びにプログラム
JP4821724B2 (ja) 復号装置および復号方法
JP4729964B2 (ja) 復号装置および復号方法
JP4730592B2 (ja) 復号装置および復号方法
JP4284600B2 (ja) 復号装置
JP4822071B2 (ja) 復号装置および復号方法
JP4288582B2 (ja) 復号装置および復号方法、並びにプログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application