KR100791225B1 - 유형적으로 분류된 인덱스를 이용한 ldpc 복호화 장치및 그 방법 - Google Patents

유형적으로 분류된 인덱스를 이용한 ldpc 복호화 장치및 그 방법 Download PDF

Info

Publication number
KR100791225B1
KR100791225B1 KR1020060115857A KR20060115857A KR100791225B1 KR 100791225 B1 KR100791225 B1 KR 100791225B1 KR 1020060115857 A KR1020060115857 A KR 1020060115857A KR 20060115857 A KR20060115857 A KR 20060115857A KR 100791225 B1 KR100791225 B1 KR 100791225B1
Authority
KR
South Korea
Prior art keywords
index
memory
node
memory unit
bit
Prior art date
Application number
KR1020060115857A
Other languages
English (en)
Other versions
KR20070057659A (ko
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 한국전자통신연구원
Priority to US11/607,592 priority Critical patent/US8122315B2/en
Publication of KR20070057659A publication Critical patent/KR20070057659A/ko
Application granted granted Critical
Publication of KR100791225B1 publication Critical patent/KR100791225B1/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/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/1134Full parallel processing, i.e. all bit nodes or check nodes are 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
    • 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations
    • 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/6522Intended application, e.g. transmission or communication standard
    • 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/6561Parallelized implementations

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. 청구범위에 기재된 발명이 속한 기술분야
본 발명은 유형적으로 분류된 인덱스를 이용한 LDPC 복호화 장치 및 그 방법에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은, 구조화된 패리티검사행렬(예를 들면, DVB-S2 표준에서 채택하고 있는 패리티검사행렬)을 사용하는 LDPC(Low Density Parity Check) 복호장치를 구현함에 있어서, 병렬 복호가 가능하도록 메모리 구조를 구성하고, 유형적으로 분류된 인덱스(롬 인덱스, 주소 인덱스, 치환 인덱스)를 통하여 메모리 제어/관리를 수행함으로써, 신속하게 효율적으로 LDPC 복호를 수행할 수 있게 하는, 유형적으로 분류된 인덱스를 이용한 LDPC 복호화 장치 및 그 방법을 제공하는데 그 목적이 있음.
3. 발명의 해결방법의 요지
본 발명은, 구조화된 패리티검사행렬을 사용하는 LDPC 복호화 장치에 있어서, 수신 데이터에 채널 추정치를 곱하여, 복수의 메모리블록으로 이루어진 메모리부에 할당하기 위한 메모리 할당 수단; 상기 메모리부에 저장된 데이터에 대한 롬 인덱스, 주소 인덱스, 치환 인덱스를 저장하는 인덱스 저장 수단; 상기 롬 인덱스, 상기 주소 인덱스, 및 상기 치환 인덱스를 이용하여 상기 메모리부에 저장된 데이터를 병렬로 가져와서 검사 노드를 업데이트하기 위한 검사노드 업데이트 수단; 및 상기 메모리부에 저장된 데이터와 상기 검사노드 업데이트 수단에서 업데이트된 검사노드 정보를 이용하여 비트 노드를 업데이트하기 위한 비트노드 업데이트 수단을 포함함.
4. 발명의 중요한 용도
본 발명은 LDPC 복호기 등에 이용됨.
저밀도 패리티 검사, LDPC, 검사노드, CNU(Check Node Update), 비트노드, BNU(Bit Node Update), 인덱스, 롬 인덱스, 주소 인덱스, 치환 인덱스

Description

유형적으로 분류된 인덱스를 이용한 LDPC 복호화 장치 및 그 방법{Apparatus and Method for LDPC Decoding using type-classified index}
도 1 은 본 발명에 따른 유형적으로 분류된 인덱스를 이용한 LDPC 복호화 장치의 일실시예 구성도,
도 2 는 본 발명이 적용되는 도 1의 LLR 메모리부의 구성도,
도 3 은 도 2의 LLR 메모리부에서의 패리티비트에 대한 메모리 블록의 일실시예 상세구성도,
도 4 는 도 2의 LLR 메모리부에 대한 전체 구조도,
도 5 는 도 2의 LLR 메모리부에서의 정보비트들에 대한 메모리 블록의 일실시예 상세 구성도,
도 6 은 본 발명에 따른 LDPC 복호화 과정에서의 인덱스 관계에 대한 일실시예 설명도,
도 7 은 본 발명에 따른 LDPC 복호화 과정에서 사용되는 롬 인덱스와 주소 인덱스의 관계에 대한 일실시예 설명도,
도 8a 내지 8c 는 본 발명에 따른 LDPC 복호화 과정에서 사용되는 인덱스에 대한 일실시예 구성도이다.
* 도면의 주요 부분에 대한 부호의 설명
100: 초기화/버퍼링부(메모리 할당부) 110 : LLR 메모리부
120: 검사노드 업데이트부 130 : 비트노드 업데이트부
140 : 복호비트 생성부 150: 오류증후 검사부
160: 인덱스 저장부 161: 롬 인덱스 레지스터
162: 주소 인덱스 레지스터 163: 치환 레지스터
본 발명은 유형적으로 분류된 인덱스를 이용한 LDPC 복호화 장치 및 그 방법에 관한 것으로, 더욱 상세하게는 구조화된 패리티검사행렬(예를 들면, DVB-S2 표준에서 채택하고 있는 패리티검사행렬)을 사용하는 LDPC(Low Density Parity Check) 복호장치를 구현함에 있어서, 병렬 복호가 가능하도록 메모리 구조를 구성하고, 유형적으로 분류된 인덱스(롬 인덱스, 주소 인덱스, 치환 인덱스)를 통하여 메모리 제어/관리를 수행함으로써, 신속하게 효율적으로 LDPC 복호를 수행할 수 있게 하는, 유형적으로 분류된 인덱스를 이용한 LDPC 복호화 장치 및 그 방법에 관한 것이다.
통신/방송 시스템은 잡음채널을 통하여 전송되는 데이터를 신뢰할 수 있는 데이터로 보장하기 위해 채널 부호화/복호화 방식을 적용한다. 이러한 채널 부호화/복호화 방식의 설계는 샤논 한계에 근접하는 성능을 목표로 한다.
지금까지 알려진 채널부호 알고리즘 중 샤논 한계에 가장 근접하는 부호로 알려진 부호들 중 하나가 바로 LDPC 부호이다.
종래에는 구현의 어려움으로 인해 LDPC가 널리 사용되지는 못하였다. 그 중 한가지의 이유는 LDPC 부호화 기술이 매우 복잡하다는 것이었다.
정보 데이터를 LDPC 부호화하기 위해서는 패리티생성행렬이 필요하며, 패리티생성행렬은 '부호화하고자 하는 정보데이터의 길이'와 '부가되는 패리티 길이'에 따라 다르게 구성되어 지며, 또한 복호 후 원하는 성능을 만족하기 위해서는 부호화시 사용되는 패리티생성행렬이 매우 중요하다.
LDPC 부호는 그 명칭 그대로 '저밀도 패리티 검사 부호'를 나타내는 것으로서, 패리티생성행렬은 희소 행렬(Sparse Matrix)을 요구한다. 하지만, 부호어 데이터와 부가되는 패리티비트 수에 따라 희소 행렬에서의 "1"의 수도 증가하기 때문에, 희소 행렬의 생성 자체가 중요하고 어렵지만, 일단 만들어진 생성행렬을 저장하는 메모리관리도 구현에 있어서는 매우 중요한 일이 아닐 수 없다.
한편, 패리티생성행렬의 구성은 부호화 과정뿐만 아니라 복호과정에서도 속도 개선 및 성능에 지대한 영향을 미치고, 또한 복호과정에서 패리티생성행렬의 구성에 따라 CNU(Check Node Update)와 BNU(Bit Node Update) 과정이 결정되기 때문에, 이를 위한 효율적인 메모리관리 및 제어 방법이 필수적으로 요구되어 진다.
한편, 종래의 LDPC 복호기의 대부분은 이동통신용으로 제작된 것으로서, 이 동통신 표준에서는 짧은 프레임을 처리하기 때문에 노드정보 업데이트 프로세스(비트노드 업데이트 프로세스와 검사노드 업데이트 프로세스)를 직렬로 처리해도 이동통신의 표준에서 제시하는 속도를 따를 수 있고, 또한 짧은 프레임 처리이기 때문에 병렬로 처리하는 방식에 있어서도 그다지 문제가 되지 않는다. 하지만, DVB-S2의 표준에서의 복호 과정에서는 64800비트를 처리하도록 되어 있어서, 이동통신에서와 같이 직렬 처리를 방식을 취한다면 업데이트 프로세스의 속도의 저하를 초래할 것이기 때문에, 효율적인 병렬처리 방식이 절실히 요구된다.
본 발명은 상기 요구에 부응하기 위하여 제안된 것으로, 구조화된 패리티검사행렬(예를 들면, DVB-S2 표준에서 채택하고 있는 패리티검사행렬)을 사용하는 LDPC(Low Density Parity Check) 복호장치를 구현함에 있어서, 병렬 복호가 가능하도록 메모리 구조를 구성하고, 유형적으로 분류된 인덱스(롬 인덱스, 주소 인덱스, 치환 인덱스)를 통하여 메모리 제어/관리를 수행함으로써, 신속하게 효율적으로 LDPC 복호를 수행할 수 있게 하는, 유형적으로 분류된 인덱스를 이용한 LDPC 복호화 장치 및 그 방법을 제공하는데 그 목적이 있다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명은, 구조화된 패리티검사행렬을 사용하는 LDPC 복호화 장치에 있어서, 수신 데이터에 채널 추정치를 곱하여, 복수의 메모리블록으로 이루어진 메모리부에 할당하기 위한 메모리 할당 수단; 상기 메모리부에 저장된 데이터에 대한 롬 인덱스, 주소 인덱스, 치환 인덱스를 저장하는 인덱스 저장 수단; 상기 롬 인덱스, 상기 주소 인덱스, 및 상기 치환 인덱스를 이용하여 상기 메모리부에 저장된 데이터를 병렬로 가져와서 검사 노드를 업데이트하기 위한 검사노드 업데이트 수단; 및상기 메모리부에 저장된 데이터와 상기 검사노드 업데이트 수단에서 업데이트된 검사노드 정보를 이용하여 비트 노드를 업데이트하기 위한 비트노드 업데이트 수단을 포함한다.
한편, 본 발명은, 구조화된 패리티검사행렬을 사용하는 LDPC 복호화 방법에 있어서, 수신 데이터에 채널 추정치를 곱하여, 복수의 메모리블록으로 이루어진 메모리부에 저장하는 메모리 할당 단계; 상기 메모리부에 저장된 데이터에 대한 롬 인덱스, 주소 인덱스, 및 치환 인덱스를 이용하여 상기 메모리부에 저장된 데이터를 병렬로 가져와서 검사 노드를 업데이트하는 검사노드 업데이트 단계; 및 상기 메모리부에 저장된 데이터와 상기 검사노드 업데이트 단계를 통하여 업데이트된 검사노드 정보를 이용하여 비트 노드를 업데이트하는 비트노드 업데이트 단계를 포함한다. 또한, 상기 본 발명은, 상기 비트노드 업데이트 단계에서 업데이트된 비트 노드 정보를 이용하여 복호화된 데이터비트를 생성하는 복호비트 생성 단계; 및 상 기 생성된 복호 비트에 대한 오류증후 검사 결과에 따라 상기 검사노드 업데이트 단계 및 상기 비트노드 업데이트 단계의 반복을 제어하는 반복 제어 단계를 더 포함한다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.
도 1 은 본 발명에 따른 유형적으로 분류된 인덱스를 이용한 LDPC 복호화 장치의 일실시예 구성도로서, 구조화된 패리티검사행렬을 사용한 LDPC 복호를 바탕으로 한다.
도 1에 도시된 바와 같이, 본 발명에 따른 LDPC 복호화 장치는, 초기화/버퍼링부(즉, '메모리 할당부'라 할 수 있다)(100), LLR 메모리부(110), 검사노드 업데이트부(Check Node Update Block)(120), 비트노드 업데이트부(Bit Node Update Block)(130), 복호 비트 생성부(140), 오류증후 검사부(150), 인덱스 저장부(160)를 포함하여 이루어진다. 이하, 각각의 구성요소에 대하여 설명하기로 한다.
초기화/버퍼링부(Initialization & Buffering Block)(100)는 수신된 데이터를 채널 추정치와 곱하여 LLR 메모리부(110)에 초기 할당(저장)한다.
LLR 메모리부(110)는 복수의 메모리블록으로 구성되는데, 메모리블록들은 DVB-S2 표준에서 제시하고 있는 Column address register 구조와 동일하게 배열되며, 값 또한 순서대로 저장된다. 하나의 블록(메모리블록)에는 360개의 데이터 심볼로 이루어진다.
검사노드 업데이트부(Check Node Update Block)(120)는 LLR 메모리부(110)에 저장된 정보와 인덱스 저장부(160)에 저장된 인덱스(롬/주소/치환 인덱스)를 이용하여 검사 노드를 업데이트한다. 즉, 검사노드 업데이트부(120)는 롬 인덱스, 주소 인덱스, 및 치환 인덱스를 기초로 LLR 메모리부(110)에 저장된 데이터를 병렬로 가져와서 검사 노드를 업데이트한다.
비트노드 업데이트부(Bit Node Update Block)(130)는 LLR 메모리부(110)에 저장된 정보와, 검사노드 업데이트부(120)에서 업데이트된 검사노드 정보를 이용하여 비트 노드를 업데이트한다.
복호 비트 생성부(140)는 비트노드 업데이트부(130)의 출력을 이용하여 복호된 데이터를 생성한다. 오류증후 검사부(150)는 복호 비트 생성부(140)에서 출력된 복호된 데이터에 대한 오류 검사를 통하여 검사노드 업데이트(CNU)와 비트노드 업데이트(BNU)의 반복 여부를 결정하는 블록이다.
인덱스 저장부(160)는 LLR 메모리부(110)에 저장된 데이터에 대한 롬 인덱스(Rom_Index), 주소 인덱스(Address_Index), 치환 인덱스(Permut_Index)를 저장하며 각각의 인덱스마다 별개의 레지스터(Register)(161, 162, 163)에 저장한다. 여기서, 롬 인덱스(Rom_Index)는 몇 번째 열(列)의 메모리에 있는지(즉, 메모리 구성 도인 도 6에서 몇 번째 열(列)에 해당하는 메모리블록인지)를 나타내고, 주소 인덱스(Address_Index)는 해당 롬 인덱스에서 몇 번째 블록에 있는지(즉, 선택된 특정 롬(메모리) 중에서 몇 번째 행(行)에 속하는 블록인지)를 나타내며, 치환 인덱스(Permut_Index)는 해당 블록에서 몇 번째 심볼에 해당하는지(메모리 블록 하나를 360개로 나눈 중에서 몇 번째인지)를 나타낸다.
롬 인덱스는 BNU(비트노드 업데이트)처리를 병렬로 하기 위해 메모리를 분할하는 역할을 하는 것이고, 주소 인덱스와 치환 인덱스는 CNU(검사노드업데이트)처리를 병렬로 하기 위해 정하는 것이다. 이렇게 인덱스를 규정하는 이유는 업데이트 프로세스를 병렬로 처리하기 위함이다.
한편, 상기와 같은 본 발명에 따른 LDPC 복호화 장치에서 수행되는 LDPC 복호화 방법을 설명하면, 이러한 방법을 구현하기 위해서는 병렬 복호가 가능하도록 메모리 구조를 구성하고, 그 메모리의 효율적인 제어/관리를 위해 롬 인덱스, 주소 인덱스, 및 치환 인덱스 등과 같은 유형적으로 분류된 인덱스를 사용해야 한다.
먼저, 상기와 같은 본 발명에서는 수신신호와 채널 추정치를 곱하여 LLR 메모리부(110)에 할당(저장)하고, LLR 메모리부에 할당(저장)된 정보를 이용하여 검사 노드를 업데이트한다. 다음으로는, 본 발명은 메모리 할당 과정과 검사 노드 업데이트 과정에서 제공된 정보를 이용하여 비트 노드를 업데이트하고, 이러한 검사 노드 업데이트 과정 및 비트 노드 업데이트 과정을 반복적으로 수행하거나 또는 중지하도록 제어하며, 그 제어과정에서 얻은 정보데이터를 이용해 복호 결정비트를 출력한다.
도 2 는 본 발명이 적용되는 도 1의 LLR 메모리부의 구성도이다.
도 2에 도시된 바와 같이, LLR 메모리부(110)는 부호율 1/2일 때의 '정보비트 부분'에 대한 메모리 구조를 나타내며, 도면 상에서의 하나의 박스(201, 202)는 6비트인 심볼 360개로 구성된다. 그리고, 도 2의 오른쪽에 표시된 인덱스는 노드정보 업데이트 시에 참조하기 위한 변수이다. 즉, M[0][0][360](211)은 메모리블록 "201"의 인덱스, M[0][1][360](212)은 메모리블록 "202"의 인덱스를 나타낸다. 그리고, "201"과 같이 동일한 '열(列)'에 있는 메모리 블록은 동일한 '메모리'에 저장된다.
도 3 은 도 2의 LLR 메모리부에서의 패리티비트에 대한 메모리 블록의 일실시예 상세구성도이다.
'패리티 비트'의 메모리 구조는 검사 노드 업데이트를 효율적으로 계산하기 위해, 정보데이터의 롬 개수만큼 메모리(롬)개수를 증가시키면서 메모리에 할당하는 구조를 가진다.
부호율 1/2일 경우, 패리티 검사 행렬 주소마다 90개 심볼씩 증가하여, 하나의 블록(메모리 블록)에는 360개의 데이터 심볼이 저장된다.
데이터를 360개의 심볼마다 블록(데이터 블록)으로 나눌 경우에는 도 5와 같이 나누어서 복호과정을 진행한다.
부분병렬은 360개의 검사노드 업데이트(CNU) 프로세서와 비트노드 업데이트(BNU) 프로세서를 가지고 있어야 하며, 이들을 행 가중치(Row Weight)의 개수만큼 동시에 계산한다.
360개의 데이터 심볼을 가지고 있는 하나의 블록에 대한 검사노드 업데이트(CNU) 계산이 끝나면 동일한 방법으로 다음 블록에 대하여 검사노드 업데이트(CNU) 계산을 하는 방식으로, 차례대로 90개의 블록들에 대하여 직렬로 검사노드 업데이트(CNU) 계산을 수행한다. 여기서, 검사노드 업데이트(CNU) 계산시에는 각 블록 인덱스와 각 블록에서 시작위치에 대한 인덱스가 필요한다. 한편, 비트노드 업데이트(BNU) 계산시에는 시작위치는 항상 각 블록의 시작점이므로 블록 인덱스만 필요하다.
도 4 는 도 2의 LLR 메모리부에 대한 전체 구조도이다.
본 발명에서의 LLR 메모리부(110)의 전체 구조는 도 4에 도시된 바와 같은 DVB-S2 표준에서 제시하는 열 주소 가중치(Column Address Weight) 구조와 동일한 구조로 배열되며, 값 또한 순서대로 저장한다.
도 5 는 도 2의 LLR 메모리부에서의 정보비트들에 대한 메모리 블록의 일실시예 상세구성도이다.
LLR 메모리부(110)의 하나의 메모리블록(도 2의 "201", "202" 참조)은 360개의 데이터 심볼로 되어 있으며, 총 90개의 블록이 각각 메모리에 저장된다(도 2에서 "200"에 포함되는 블록은 90개이다).
도 6 은 본 발명에 따른 LDPC 복호화 과정에서의 인덱스 관계에 대한 일실시예 설명도이다.
초기화/버퍼링부(100)는 LLR 메모리부(110)에 초기값을 저장하는데, 그 구체적인 과정은 수신 데이터에 채널 추정치를 곱하여 360개의 심볼마다 병렬로 각 메 모리에 저장한다.
세로 블록들(즉, 동일한 '열'의 블록들)은 같은 메모리에 저장하며, 메모리의 개수는 열 가중치(Comlumn Weight)의 수와 동일한 총 8개를 사용한다.
하나의 메모리에 사용되는 총 데이터 심볼 개수는 32,400개(하나의 메모리는 90개의 메모리 블록으로 구성되고, 각각의 블록은 360개의 심볼을 포함하는 경우)의 심볼(각 심볼은 6비트)로 구성되어 있으며, 144비트를 하나의 주소에 저장한다고 가정할 때, 1,350개의 주소가 필요하다.
본 발명에서 구현하고자 하는 칩의 메모리는 144비트 × 4K개가 가능하므로 하나의 메모리에 충분히 저장 가능하다.
검사노드 업데이트부(CNU)(60)는 하나의 메모리마다는 144비트씩 엑세스하여 8개의 메모리에 병렬로 엑세스할 수 있으며, 비트노드 업데이트부(BNU)(61)는 각 메모리에 있는 주소를 참조해서 병렬로 가져와서 계산한다.
도 7 은 본 발명에 따른 LDPC 복호화 과정에 사용되는 롬 인덱스와 주소 인덱스의 관계에 대한 일실시예 설명도이다.
주소 인덱스(Address Index) 블록은 각 90개로 나뉘어져 있으며, 각 블록은 360개의 데이터가 저장되어 있다.
0번째 주소 인덱스(Address index)(Address index=0)에 대한 블록에는 수신데이터의 0번째 심볼부터 359개 심볼이 저장되며, 2번째 블록(Address index=1)에는 360번째부터 360개 심볼이 저장되어, 90개의 메모리블록에는 총 32,400개(90×360=32,400)의 수신데이터 심볼이 저장된다.
초기화/버퍼링부(100)는 상기와 같은 저장 방식을 사용하면, 채널 추정값이 곱해진 수신데이터를 간단히 저장시킬 수가 있다.
도 8a 내지 8c 는 본 발명에 따른 LDPC 복호화 과정에서 사용되는 인덱스에 대한 일실시예 구성도이다.
도 8a는 롬 인덱스(Rom Index)를 나타내고, 도 8b는 주소 인덱스(Address Index)를 나타내며, 도 8c는 치환 인덱스(Permut Index)를 나타낸다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
상기와 같은 본 발명은, 구조화된 패리티검사행렬(예를 들면, DVB-S2 표준에서 채택하고 있는 패리티검사행렬)을 사용하는 LDPC 복호화 장치를 구현함에 있어서, 병렬 복호를 가능하게 메모리 구조를 구성하고 그 메모리의 제어/관리를 위해 유형적으로 분류된 인덱스를 사용함으로써, 효율적인 메모리 관리를 가능하게 하고, 메모리 구조를 최적화할 수 있으며, 이로 인하여 종국적으로는 LDPC 복호를 신속하게 수행하는 효과가 있다.

Claims (10)

  1. 구조화된 패리티검사행렬을 사용하는 LDPC 복호화 장치에 있어서,
    수신 데이터에 채널 추정치를 곱하여, 복수의 메모리블록으로 이루어진 메모리부에 할당하기 위한 메모리 할당 수단;
    상기 메모리부에 저장된 데이터에 대한 롬 인덱스, 주소 인덱스, 치환 인덱스를 저장하는 인덱스 저장 수단;
    상기 롬 인덱스, 상기 주소 인덱스, 및 상기 치환 인덱스를 이용하여 상기 메모리부에 저장된 데이터를 병렬로 가져와서 검사 노드를 업데이트하기 위한 검사노드 업데이트 수단; 및
    상기 메모리부에 저장된 데이터와 상기 검사노드 업데이트 수단에서 업데이트된 검사노드 정보를 이용하여 비트 노드를 업데이트하기 위한 비트노드 업데이트 수단
    을 포함하는 유형적으로 분류된 인덱스를 이용한 LDPC 복호화 장치.
  2. 제 1 항에 있어서,
    상기 롬 인덱스는 몇 번째 열(列)의 메모리에 있는지를 나타내고, 상기 주소 인덱스는 해당 메모리에서 몇 번째 메모리블록에 있는지를 나타내며, 상기 치환 인덱스는 해당 메모리블록에서 몇 번째 심볼 데이터인지를 나타내는 것을 특징으로 하는 유형적으로 분류된 인덱스를 이용한 LDPC 복호화 장치.
  3. 제 1 항에 있어서,
    상기 인덱스 저장 수단은,
    상기 롬 인덱스, 상기 주소 인덱스 및 상기 치환 인덱스를 별개로 구분하여 저장/관리하는 것을 특징으로 하는 유형적으로 분류된 인덱스를 이용한 LDPC 복호화 장치.
  4. 제 1 항에 있어서,
    상기 메모리부는,
    DVB-S2 표준에서 규정하고 있는 Column Address Register 구조와 동일하게 구성되는 것을 특징으로 하는 유형적으로 분류된 인덱스를 이용한 LDPC 복호화 장치.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 검사노드 업데이트 수단은,
    상기 메모리부의 각각의 메모리블록에 대한 인덱스 및 각 메모리블록에서의 시작위치에 대한 인덱스를 이용하여 검사노드 업데이트를 수행하는 것을 특징으로 하는 유형적으로 분류된 인덱스를 이용한 LDPC 복호화 장치.
  6. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 비트노드 업데이트 수단은,
    상기 메모리부의 각각의 메모리 블록에 대한 인덱스를 이용하여 비트노드 업데이트를 수행하는 것을 특징으로 하는 유형적으로 분류된 인덱스를 이용한 LDPC 복호화 장치.
  7. 구조화된 패리티검사행렬을 사용하는 LDPC 복호화 방법에 있어서,
    수신 데이터에 채널 추정치를 곱하여, 복수의 메모리블록으로 이루어진 메모리부에 저장하는 메모리 할당 단계;
    상기 메모리부에 저장된 데이터에 대한 롬 인덱스, 주소 인덱스, 및 치환 인덱스를 이용하여 상기 메모리부에 저장된 데이터를 병렬로 가져와서 검사 노드를 업데이트하는 검사노드 업데이트 단계; 및
    상기 메모리부에 저장된 데이터와 상기 검사노드 업데이트 단계를 통하여 업데이트된 검사노드 정보를 이용하여 비트 노드를 업데이트하는 비트노드 업데이트 단계
    를 포함하는 유형적으로 분류된 인덱스를 이용한 LDPC 복호화 방법.
  8. 제 7 항에 있어서,
    상기 비트노드 업데이트 단계에서 업데이트된 비트 노드 정보를 이용하여 복호화된 데이터비트를 생성하는 복호비트 생성 단계; 및
    상기 생성된 복호 비트에 대한 오류증후 검사 결과에 따라 상기 검사노드 업데이트 단계 및 상기 비트노드 업데이트 단계의 반복을 제어하는 반복 제어 단계
    를 더 포함하는 유형적으로 분류된 인덱스를 이용한 LDPC 복호화 방법.
  9. 제 7 항 또는 제 8 항에 있어서,
    상기 롬 인덱스는 몇 번째 열(列)의 메모리에 있는지를 나타내고, 상기 주소 인덱스는 해당 메모리에서 몇 번째 메모리블록에 있는지를 나타내며, 상기 치환 인덱스는 해당 메모리블록에서 몇 번째 심볼 데이터인지를 나타내는 것을 특징으로 하는 유형적으로 분류된 인덱스를 이용한 LDPC 복호화 방법.
  10. 제 9 항에 있어서,
    상기 메모리부는,
    DVB-S2 표준에서 규정하고 있는 Column Address Register 구조와 동일하게 구성되는 것을 특징으로 하는 유형적으로 분류된 인덱스를 이용한 LDPC 복호화 방법.
KR1020060115857A 2005-12-01 2006-11-22 유형적으로 분류된 인덱스를 이용한 ldpc 복호화 장치및 그 방법 KR100791225B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/607,592 US8122315B2 (en) 2005-12-01 2006-11-30 LDPC decoding apparatus and method using type-classified index

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020050116053 2005-12-01
KR20050116053 2005-12-01

Publications (2)

Publication Number Publication Date
KR20070057659A KR20070057659A (ko) 2007-06-07
KR100791225B1 true KR100791225B1 (ko) 2008-01-03

Family

ID=38354963

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060115857A KR100791225B1 (ko) 2005-12-01 2006-11-22 유형적으로 분류된 인덱스를 이용한 ldpc 복호화 장치및 그 방법

Country Status (1)

Country Link
KR (1) KR100791225B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8296640B2 (en) 2008-06-20 2012-10-23 Samsung Electronics Co., Ltd. Method and apparatus for parallel processing multimode LDPC decoder
US8335979B2 (en) * 2008-12-08 2012-12-18 Samsung Electronics Co., Ltd. Contention-free parallel processing multimode LDPC decoder
WO2012177062A2 (ko) * 2011-06-21 2012-12-27 가온미디어 주식회사 메모리공유 기반의 dvb-t2/s2/c2 파이핑 포맷 방송신호 처리 방법 및 이를 위한 파이핑 포맷 방송신호 처리 프로그램을 기록한 컴퓨터로 판독가능한 기록매체

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004186940A (ja) * 2002-12-03 2004-07-02 Nec Corp 誤り訂正符号復号装置
WO2004077680A1 (ja) 2003-02-28 2004-09-10 Mitsubishi Denki Kabushiki Kaisha 検査行列生成方法および検査行列生成装置
KR20050004118A (ko) * 2003-07-03 2005-01-12 더 디렉티브 그룹, 인크. 병렬 디코딩이 가능한 저밀도 패리티 검사 코드를생성하기 위한 방법 및 시스템
KR20050100152A (ko) * 2004-04-13 2005-10-18 한국전자통신연구원 순차적 복호를 이용한 저밀도 패리티 검사 부호의 복호장치 및 그 방법
EP1601108A1 (en) 2004-05-03 2005-11-30 Broadcom Corporation Decoding LDPC (low density parity check) codes using multiplications (or additions in log-domain) for check and bit node processing
KR20060068168A (ko) * 2004-12-16 2006-06-21 한국전자통신연구원 저 복잡도 ldpc복호 장치 및 그 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004186940A (ja) * 2002-12-03 2004-07-02 Nec Corp 誤り訂正符号復号装置
WO2004077680A1 (ja) 2003-02-28 2004-09-10 Mitsubishi Denki Kabushiki Kaisha 検査行列生成方法および検査行列生成装置
KR20050004118A (ko) * 2003-07-03 2005-01-12 더 디렉티브 그룹, 인크. 병렬 디코딩이 가능한 저밀도 패리티 검사 코드를생성하기 위한 방법 및 시스템
KR20050100152A (ko) * 2004-04-13 2005-10-18 한국전자통신연구원 순차적 복호를 이용한 저밀도 패리티 검사 부호의 복호장치 및 그 방법
EP1601108A1 (en) 2004-05-03 2005-11-30 Broadcom Corporation Decoding LDPC (low density parity check) codes using multiplications (or additions in log-domain) for check and bit node processing
KR20060068168A (ko) * 2004-12-16 2006-06-21 한국전자통신연구원 저 복잡도 ldpc복호 장치 및 그 방법

Also Published As

Publication number Publication date
KR20070057659A (ko) 2007-06-07

Similar Documents

Publication Publication Date Title
CN104868925B (zh) 结构化ldpc码的编码方法、译码方法、编码装置和译码装置
KR100808664B1 (ko) 패리티 검사행렬 저장 방법 및 이를 이용한 블록 저밀도패리티 검사 부호화 방법 및 장치
US8453034B2 (en) Error detection/correction circuit, memory controller and semiconductor memory apparatus
WO2016112857A1 (zh) Ldpc码编码器和译码器
US8347170B2 (en) Method and apparatus for performing decoding using LDPC code
US20040153938A1 (en) Error correcting code decoding device, program and method used in the same
JP4602406B2 (ja) データをエンコード及びデコードするための方法並びに装置
US8122315B2 (en) LDPC decoding apparatus and method using type-classified index
KR20100119502A (ko) 증가된 용량의 이종의 스토리지 엘리먼트들
US9698819B1 (en) Huffman code generation
JP2007215089A (ja) 復号装置及び復号方法
US8438448B2 (en) Decoding method and device for low density generator matrix codes
KR102019893B1 (ko) 저밀도 패리티 검사 부호를 지원하는 통신 시스템에서 신호 수신 장치 및 방법
CN101335592B (zh) 基于矩阵分块的高速ldpc译码器实现方法
JPWO2010073922A1 (ja) 誤り訂正符号化装置、復号装置、符号化方法、復号方法、及びそのプログラム
CN106936444B (zh) 一种集合译码方法和集合译码器
KR20060068168A (ko) 저 복잡도 ldpc복호 장치 및 그 방법
US8566665B2 (en) Systems and methods for error correction using low density parity check codes using multiple layer check equations
KR102355082B1 (ko) 채널 편파 코드의 연속 제거 리스트 디코딩을 위한 효율적인 생존 메모리 아키텍처
KR100791225B1 (ko) 유형적으로 분류된 인덱스를 이용한 ldpc 복호화 장치및 그 방법
KR100550101B1 (ko) 저밀도 패리티 검사 부호의 부호화와 복호 장치 및 그방법
CN109935263B (zh) 非易失性存储器的编译码方法及存储系统
CN101800627B (zh) 一种多码率兼容的高速ldpc编码器的硬件实现
KR20160116980A (ko) Ldpc 복호기의 vss 알고리즘을 위한 h 행렬의 스케줄링 장치 및 그 방법
WO2007082626A2 (en) Method and apparatus for error correction decoding

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20111129

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20121129

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee