KR101172228B1 - Omp 기법에 따른 ldpc디코딩 장치 및 이를 위한 변환된 패리티 검사 행렬 생성 장치 - Google Patents
Omp 기법에 따른 ldpc디코딩 장치 및 이를 위한 변환된 패리티 검사 행렬 생성 장치 Download PDFInfo
- Publication number
- KR101172228B1 KR101172228B1 KR1020110087201A KR20110087201A KR101172228B1 KR 101172228 B1 KR101172228 B1 KR 101172228B1 KR 1020110087201 A KR1020110087201 A KR 1020110087201A KR 20110087201 A KR20110087201 A KR 20110087201A KR 101172228 B1 KR101172228 B1 KR 101172228B1
- Authority
- KR
- South Korea
- Prior art keywords
- parity check
- check matrix
- row
- value
- group
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/3905—Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
- H03M13/3927—Log-Likelihood Ratio [LLR] computation by combination of forward and backward metrics into LLRs
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Error Detection And Correction (AREA)
Abstract
OMP(Overlapped Message Passing) 기법에 따른 LDPC 디코딩 장치 및 이를 위한 변환된 패리티 검사 행렬 생성 장치가 개시된다. 개시된 패리티 검사 행렬 생성 장치는 a1(2 이상의 정수임)개의 행을 단위로 행렬원소가 a2(2 이상의 정수임)개의 열 만큼 시프트되는 특성을 가지는 패리티 검사 행렬에 대해, 서로 겹치지 않는 상기 a1의 배수개의 연속되는 행을 각각 포함하는 b1(2 이상의 정수임)개의 행 그룹 및 서로 겹치지 않는 상기 a2의 배수개의 연속되는 열을 각각 포함하는 b2(2 이상의 정수임)개의 열 그룹을 정의하는 행/열 그룹 정의부; 및 상기 b1개의 행 그룹 중 적어도 일부의 행 그룹의 상기 패리티 검사 행렬 내에서의 위치를 재정렬하고, 상기 b2개의 열 그룹 중 적어도 일부의 열 그룹의 상기 패리티 검사 행렬 내에서의 위치를 재정렬하여 상기 패리티 검사 행렬의 변환된 패리티 검사 행렬을 생성하는 패리티 검사 행렬 변환부를 포함한다.
Description
본 발명의 실시예들은 LDPC(Low Density Parity Check) 디코딩 장치 및 이를 위한 패리티 검사 행렬 생성 장치에 관한 것으로서, 더욱 상세하게는 OMP(Overlap Message Passing) 기법에 따른 LDPC 디코딩 장치 및 이에 이용되는 변환된 패리티 검사 행렬을 생성하는 장치에 관한 것이다.
4세대 무선 이동 통신 시스템에서는 사용자에게 다양한 멀티미디어 서비스를 제공하기 위해 고속의 데이터 전송률(Data Transfer Rate)과 낮은 오류율(Error Rate)을 요구하고 있다. 보다 구체적으로, 4세대 무선 이동 통신에서는 고속 이동 시 최대 100Mbps, 저속 이동 또는 정지 시 최대 155Mbps~1Gbps의 데이터 전송 속도를 요구하고 있다. 따라서 열악한 전송 환경에서 고품질, 고신뢰성 통신을 수행하기 위해서는 채널 코딩/디코딩 기술이 필수적으로 수반되어야 한다.
채널 코딩/디코딩 기술은 채널의 성격에 따라 여러 가지 형태로 변형되어 사용될 수 있는데, 기본적으로 오류 정정 코드(Error Correcting Code)를 이용하여 신호를 코딩/디코딩하는 기술이 공통적으로 사용된다.
오류 정정 코드는 신뢰할 수 없는 채널 상에서 신뢰할 수 있는 통신을 달성하기 위해 사용되는 것으로서, 대표적인 예로 저 밀도 패리티 검사(LDPC: Low Density Parity Check) 코드를 이용한 코딩/디코딩 기법(이하, 'LDPC 코딩'이라고 한다)이 있다.
LDPC 코딩/디코딩은 간단한 확률적(probabilistic) 복호법을 이용한 코딩 기법으로서, 반복 복호를 통하여 수신 신호를 디코딩한다. LDPC 코딩/디코딩은 대부분의 엘리먼트들이 0의 값(Zero Value)을 가지며, 0의 값을 가지는 엘리먼트들 이외의 극소수의 엘리먼트들이 0이 아닌 값(Non-Zero Value, 예를 들어 1의 값)을 가지는 패리티 검사 행렬(Parity Check Matrix)에 의해 정의된다.
그런데, LDPC 코드의 부호어(codeword)의 길이가 길어짐에 따라 LDPC 디코딩의 반복으로 인해 출력이 지연되는 문제점이 발생하고 있으며, 이를 해결하기 위한 다양한 연구가 진행되고 있다. 특히, 하드웨어의 사용량을 줄이면서 스루풋(throughput)을 향상시킬 수 있는 OMP(Overlap Message Passing) 기법에 따른 LDPC 디코딩에 대한 관심이 증가하고 있다.
OMP 기법에 따른 LDPC 디코딩의 대표적인 예로서, QC(Quasi-Cyclic) LDPC 디코딩이 있으며, 이와 관련하여 한국공개특허 제2007-0042105호(발명명칭: 저밀도 패리티 검사 부호의 패리티 검사 행렬 설계 방법)에서는 저밀도 패리티 검사 부호의 부호율을 결정하고, 결정된 부호율을 고려하여 적어도 두 개의 정수거리 순환행렬들을 생성하고, 생성된 적어도 두 개의 정수거리 순환행렬들을 조합하여 기저 행렬을 생성하고, 저밀도 패리티 검사 부호에서 지원 가능한 모든 부호율 각각에 대응하는 적어도 하나의 부행렬을 미리 정의하고, 기저 행렬 내의 원소들 중 값이 1인 원소들을 상기 결정된 부호율에 대응하여 정의되어 있는 부행렬로 치환하여 패리티 검사 행렬을 생성하는 방법을 개시하고 있다.
한편, CMMB(China Multimedia Mobile Broadcasting)는 중국 정부가 자체 개발한 휴대 이동 방송 기술 표준으로서, 9216의 길이를 가지는 부호어를 사용한다. 따라서, CMMB 표준에 따르는 부호어를 빠르고 효율적으로 디코딩하기 위해서는 LDPC 디코딩과 같은 디코딩 기법을 이용하여야 한다.
그러나, CMMB 표준에 따른 패리티 검사 행렬은 HS(High-Structured) LDPC 구조를 가지는바, 이러한 CMMB 표준에 대해서는 앞서 설명한 QC LPDC 디코딩을 적용할 수 없다는 문제점이 있었다.
본 발명의 목적은 OMP 기법에 따른 LDPC 디코딩에 이용되는 변환된 패리티 검사 행렬을 효율적으로 생성하는 장치 및 변환된 패리티 검사 행렬을 이용한 LDPC 디코딩 장치(일례로, CMMB 칩)를 제안하는 것이다.
본 발명의 다른 목적들은 하기의 실시예를 통해 당업자에 의해 도출될 수 있을 것이다.
상기한 목적을 달성하기 위해 본 발명의 바람직한 일 실시예에 따르면, 패리티 검사 행렬을 구성하는 다수의 서브 블록 중 적어도 일부의 위치가 재정렬된 상기 패리티 검사 행렬의 변환된 패리티 검사 행렬을 생성하는 패리티 검사 행렬 변환부를 포함하되,
상기 패리티 검사 행렬은 a1(2 이상의 정수임)개의 행을 단위로 하여 행렬원소가 a2(2 이상의 정수임)개의 열 만큼 반복적으로 시프트되는 특성을 가지며, 상기 서브 블록의 행의 크기는 상기 a1의 정수배이고, 상기 서브 블록의 열의 크기는 상기 a2의 정수배인 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩을 위한 변환된 패리티 검사 행렬 생성 장치가 제공된다.
또한, 본 발명의 다른 실시예에 따르면, 반복적인 디코딩 과정 각각에서, 제1 순서에 따라 체크 노드 연산을 수행하고, 제2 순서에 따라 배리어블 노드 연산을 수행하되, 일부의 체크 노드 연산과 일부의 배리어블 노드 연산을 동시에 수행하는 연산 수행부를 포함하고, 상기 제1 순서는 패리티 검사 행렬을 구성하는 다수의 서브 블록 중 적어도 일부의 위치가 재정렬된 상기 패리티 검사 행렬의 변환된 패리티 검사 행렬의 행의 순서(재정렬된 행의 순서)와 대응되고, 상기 제2 순서는 상기 변환된 패리티 검사 행렬의 열의 순서(재정렬된 열의 순서)와 대응되되, 상기 패리티 검사 행렬은 a1(2 이상의 정수임)개의 행을 단위로 하여 행렬원소가 a2(2 이상의 정수임)개의 열 만큼 반복적으로 시프트되는 특성을 가지고, 상기 서브 블록의 행의 크기는 상기 a1의 정수배이고, 상기 서브 블록의 열의 크기는 상기 a2의 정수배인 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩 장치가 제공된다.
또한, 본 발명의 또 다른 실시예에 따르면, 패리티 검사 행렬을 구성하는 다수의 서브 블록 중 적어도 일부의 위치가 재정렬된 상기 패리티 검사 행렬의 변환된 패리티 검사 행렬을 이용하여 OMP 기법에 따른 LDPC 디코딩을 수행하는 디코딩부를 포함하되, 상기 패리티 검사 행렬은 a1(2 이상의 정수임)개의 행을 단위로 하여 행렬원소가 a2(2 이상의 정수임)개의 열 만큼 반복적으로 시프트되는 특성을 가지며, 상기 서브 블록의 행의 크기는 상기 a1의 정수배이고, 상기 서브 블록의 열의 크기는 상기 a2의 정수배인 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩 장치가 제공된다.
또한, 본 발명의 또 다른 실시예에 따르면, 제1 패리티 검사 행렬을 이용하여 CMMB 데이터를 OMP 기법에 따른 LDPC 디코딩하는 디코딩부를 포함하되, 상기 제1 패리티 검사 행렬은 CMMB 표준에 따른 제2 패리티 검사 행렬을 구성하는 다수의 서브 블록의 위치가 재정렬된 행렬인 것을 특징으로 하는 CMMB 칩이 제공된다..
본 발명에 따르면, CMMB 표준에서 이용되는 패리티 검사 행렬 등과 같은 패리티 검사 행렬을 OMP 기법에 따른 LDPC 디코딩에 이용될 수 있도록 용이하게 변환시킬 수 있게 된다.
또한, 본 발명에 따르면, 변환된 패리티 검사 행렬을 이용하여 시스템 사용율을 낮춤과 동시에 LDPC 디코딩의 속도를 향상시킬 수 있는 장점이 있다.
도 1은 LDPC 코딩/디코딩의 개념을 설명하기 위한 도면이다.
도 2는 OMP 기법에 따른 LDPC 디코딩의 개념을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 OMP 기법에 따른 LDPC 디코딩을 위한 변환된 패리티 검사 행렬의 생성 장치의 개략적인 구성을 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 OMP 기법에 따른 LDPC 디코딩을 위한 변환된 패리티 검사 행렬의 생성 방법의 전체적인 흐름을 도시한 순서도이다.
도 5 및 도 6은 CMMB 표준에서 사용되는 패리티 검사 행렬을 도시한 도면이다.
도 7 및 도 8은 본 발명에 따라서 변환된 패리티 검사 행렬의 일례를 도시한 도면이다.
도 9는 본 발명의 일 실시예에 따른 OMP 기법에 따른 LDPC 디코딩 장치의 개략적인 구성을 도시한 도면이다.
도 10은 본 발명의 일 실시예에 따른 연산 수행부를 구성하는 제1 연산기 및 제2 연산기 및 이의 동작 개념을 설명하기 위한 도면이다.
도 2는 OMP 기법에 따른 LDPC 디코딩의 개념을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 OMP 기법에 따른 LDPC 디코딩을 위한 변환된 패리티 검사 행렬의 생성 장치의 개략적인 구성을 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 OMP 기법에 따른 LDPC 디코딩을 위한 변환된 패리티 검사 행렬의 생성 방법의 전체적인 흐름을 도시한 순서도이다.
도 5 및 도 6은 CMMB 표준에서 사용되는 패리티 검사 행렬을 도시한 도면이다.
도 7 및 도 8은 본 발명에 따라서 변환된 패리티 검사 행렬의 일례를 도시한 도면이다.
도 9는 본 발명의 일 실시예에 따른 OMP 기법에 따른 LDPC 디코딩 장치의 개략적인 구성을 도시한 도면이다.
도 10은 본 발명의 일 실시예에 따른 연산 수행부를 구성하는 제1 연산기 및 제2 연산기 및 이의 동작 개념을 설명하기 위한 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 LDPC 코딩/디코딩의 개념을 설명하기 위한 도면으로서, 도 1에서는 패리티 검사 행렬의 일 예 및 이에 대응되는 팩터 그래프(Factor Graph)를 도시하고 있다.
블록 코딩/디코딩의 하나인 LDPC 코딩/디코딩은 패리티 검사 행렬에 의해 정의된다. 여기서, 코딩/디코딩의 복잡도를 줄이기 위하여 적은 개수의 0이 아닌 값(일례로 "1", 이하에서는 설명의 편의를 위해 "0이 아닌 값"이 "1"인 것으로 가정하기로 한다)을 포함하는 패리티 검사 행렬이 사용된다. 또한, LDPC 디코딩은 연판정(Soft Decision) 디코딩 알고리즘인 합-곱(Sum-Product) 알고리즘 또는 최소 합(Min-Sum) 알고리즘 등을 이용하여 수행될 수 있다.
이 때, 패리티 검사 행렬의 각 열(column)에 포함되는 1의 값을 가지는 행렬원소의 개수는 배리어블 노드 차수와 대응되고, 패리티 검사 행렬의 각 행(row)에 포함되는 1의 값을 가지는 행렬원소의 개수는 체크 노드 차수와 대응된다. 각 열에 대한 배리어블 노드 차수가 모두 동일하고 각 행에 대한 체크 노드 차수가 모두 동일한 경우 LDPC 코드는 균일(regular) LDPC 코드이며, 각 열에 대한 변수 노드 차수가 다르거나 각 행에 대한 체크 노드 차수가 다른 경우 LDPC 코드는 비균일 LDPC 코드이다.
도 1을 참고하면, 패리티 검사 행렬(H)은 배리어블 노드(v1, v2, …, v10)와 체크 노드(c1, c2,…, c5)의 연결 관계에 기초하여 정의된다. 그리고, 패리티 검사 행렬(H)의 차원은 배리어블 노드의 개수 및 체크 노드의 개수에 따라 5×10이 된다.
배리어블 노드 및 체크 노드 사이의 연결 관계를 나타낸 팩터 그래프 상에서v1은 c1 및 c3와 연결되어 있으므로, 패리티 검사 행렬(H)의 1열1행 원소와 1열 3행 원소는 "1"이고, 1열의 나머지 원소들은 모두 0으로 결정된다. 마찬가지로, v2는 c1 및 c2와 연결되어 있으므로, 2열1행 원소와 2열2행 원소는 "1"이고 2열의 나머지 원소들은 모두 "0"임을 알 수 있다. 상술한 방식으로, 패리티 검사 행렬의 모든 원소들은 "1" 또는 "0"중 어느 하나로 결정된다.
또한, 배리어블 노드 차수는 각각의 변수 노드에 연결된 선들의 개수와 동일하며, 체크 노드 차수는 각각의 체크 노드에 연결된 선들의 개수와 동일하다. 즉, 도 1의 팩터 그래프를 참조하면, 배리어블 노드 각각에는 두 개의 선이 연결되어 있으므로, 변수 노드 차수는 "2"임을 알 수 있다. 또한, 체크 노드 차수는 "4"이다.
상기의 코딩 방법에 따라 코딩된 데이터들에 대해 디코딩을 수행하는 경우, 배리어블 노드 및 체크 노드 각각은 자신과 연결된 다른 노드로 디코딩 결과를 전송하거나, 다른 노드의 디코딩 결과를 수신한다. 즉, 하나의 노드가 다른 노드로부터 다른 노드의 디코딩 결과를 수신하는 경우, 상기 하나의 노드는 다른 노드의 디코딩 결과를 이용하여 디코딩을 수행하고, 자신의 디코딩 결과를 자신과 연결된 다른 노드로 전송한다.
이 때, 체크 노드들에서 수행되는 디코딩 동작을 체크 노드 연산(Check Node Operation/Check to Variable Operation)이라 하고, 배리어블 노드들에서 수행되는 디코딩 동작을 배리어블 노드 연산(Variable Node Operation/Variable to Check Operation)이라 한다.
체크 노드 연산 및 배리어블 노드 연산을 통해 시험 코드(Tentative Code)가 생성되고, 생성된 시험 코드는 패리티 검사(Parity Check)를 통해 유효한 부호어(Valid Codeword)인지를 검사 받는다. 만약, 생성된 시험 코드가 유효한 부호어이면 디코딩 동작이 종료되고, 유효한 부호어가 아니면 디코딩 동작이 반복 수행된다.
계속하여, 도 2는 OMP(Overlap Message Passing) 기법에 따른 LDPC 디코딩의 개념을 설명하기 위한 도면이다.
OMP 기법에 따른 LDPC 디코딩의 기본 개념은 체크 노드 연산과 배리어블 노드 연산을 수행하는 경우에 있어 서로 메모리의 독립성이 보장된다면, 도 2의 (a)에 도시된 바와 같이 체크 노드 연산과 배리어블 노드 연산이 오버랩되는 구간(210, 220)에서는 오버랩되는 일부의 체크 노드 연산과 일부의 배리어블 노드 연산을 동시에 수행하여 연산 시간을 줄이는 것에 있다.
OMP 기법에 따라 LDPC 디코딩을 수행하기 위해서는 패리티 검사 행렬이 재정렬 내지 변환되어야 한다. 보다 상세하게, OMP 기법에 따라 LDPC 디코딩을 수행하기 위해서는 패리티 검사 행렬 내의 0의 값을 가지는 행렬원소가 패리티 검사 행렬 내의 좌측 상단과 우측 하단으로 모여야 한다.
이에 대해 보다 상세히 살펴보면, 도 2의 (b)에 도시된 바와 같이 원본 패리티 검사 행렬을 이용하는 경우, 5개의 체크 노드 연산의 수행을 완료한 후 10개의 배리어블 노드 연산을 수행하고, 이 후에 다시 3개의 체크 노드 연산이 수행되어야 하므로, LDPC 디코딩은 총 18 스텝(step) 동안 수행된다.
그러나, 도 2의 (c)에 도시된 바와 같이 행 간의 위치 변화 내지 열 간의 위치 변화를 통해 0의 값을 가지는 행렬원소가 좌측 상단과 우측 하단으로 모인 변환된 패리티 검사 행렬을 이용하는 경우, 0번째 행에 대한 체크 노드 연산 시에 0번째 열에 대한 배리어블 노드 연산을 동시에 수행하여도 상관된 메모리 간에 독립성이 보장되게 된다. 따라서, 도 2의 (c)에 도시된 바와 같은 변환된 패리티 검사 행렬을 이용하는 경우 LDPC 디코딩은 총 12 스텝 동안 수행되며, 이에 따라 LDPC 디코딩의 수행 시간이 단축된다.
하지만, OMP 기법에 따른 LDPC 디코딩을 위한 패리티 검사 행렬의 변환 방법에 대한 연구는 QC 구조를 가지는 패리티 검사 행렬에 대한 연구가 대부분이었고, 이러한 연구들은 아래에서 설명하는 HS(High-Structured) 구조를 가지는 패리티 검사 행렬에 대해서는 적용이 불가능하다는 문제점이 있었다.
따라서, 이하에서는 HS 구조를 가지는 패리티 검사 행렬을 OMP 기법에 따른 LDPC 디코딩에 이용될 수 있도록 변환하는 본 발명의 실시예들을 상세하게 설명하기로 한다.
도 3은 본 발명의 일 실시예에 따른 OMP 기법에 따른 LDPC 디코딩을 위한 변환된 패리티 검사 행렬의 생성 장치(이하, "변환된 패리티 검사 행렬 생성 장치"라고 함)의 개략적인 구성을 도시한 도면이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 변환된 패리티 검사 행렬 생성 장치(300)는 행/열 그룹 정의부(310) 및 패리티 검사 행렬 변환부(320)를 포함할 수 있다.
또한, 도 4는 본 발명의 일 실시예에 따른 OMP 기법에 따른 LDPC 디코딩을 위한 변환된 패리티 검사 행렬의 생성 방법의 전체적인 흐름을 도시한 순서도이다.
이하, 도 3 및 도 4를 참조하여 본 발명의 일 실시예에 따른 패리티 검사 행렬 생성 장치의 동작(패리티 검사 행렬 생성 방법)에 대해 상세히 설명하기로 한다.
먼저, 단계(S410)에서는 행/열 그룹 정의부(310)가 패리티 검사 행렬에 대해 다수의 행 그룹 및 다수의 열 그룹을 정의한다.
이 때, 패리티 검사 행렬은 a1(2 이상의 정수임)개의 행을 단위로 행렬원소가 a2(2 이상의 정수임)개의 열 만큼 반복적으로 시프트되는 특성을 가지는 패리티 검사 행렬이다. 다시 말해, a1번째 행 ~ 2a1-1번째 행의 행렬원소는 0번째 행 ~ a1-1번째 행의 행렬원소를 기준으로 a2개의 열만큼 시프트되고, 2a1번째 행 ~ 3a1-1번째 행의 행렬원소는 a1번째 행 ~ 2a1-1번째 행의 행렬원소를 기준으로 a2개의 열만큼 시프트되며, 이러한 특성은 패리티 검사 행렬의 모든 행에 대해 반복된다.
일례로서, 패리티 검사 행렬은 CMMB(China Mobile Multimedia Broadcasting) 표준에서 사용되는 패리티 검사 행렬일 수 있다.
보다 상세하게, 패리티 검사 행렬은 코드 레이트(Code Rate)가 1/2인 코드의 디코딩에 이용되는 1/2 코드 패리티 검사 행렬일 수도 있고, 코드 레이트가 3/4인 코드의 디코딩에 이용되는 3/4 코드 패리티 검사 행렬일 수도 있다. 아래의 표 1은 코드 레이트가 1/2인 패리티 검사 행렬(1/2 코드 패리티 검사 행렬)과 코드 레이트가 3/4인 패리티 검사 행렬(3/4 코드 패리티 검사 행렬)의 특성을 정리한 표이다.
Code Rate, r | Information, k | Length, N | Row Weight dc | Column Weight dv |
1/2 | 4,608 | 9,216 | 6 | 3 |
3/4 | 6,912 | 9,216 | 12 | 3 |
이 때, 1/2 코드 패리티 검사 행렬은 도 5의 (a)에 도시된 바와 같이 행의 개수가 4608개이고, 열의 개수가 9216개이고, a1은 18의 값을 가지고, a2는 36의 값을 가진다. 따라서, 1/2 코드 패리티 검사 행렬 내에서, 행렬원소들은 18개의 행을 단위로 하여 행렬원소가 36개의 열만큼 반복적으로 시프트된다.
또한, 3/4 코드 패리티 검사 행렬은 도 5의 (b)에 도시된 바와 같이 행의 개수가 2304개이고, 열의 개수가 9216개이고, a1은 9의 값을 가지고, a2는 36의 값을 가진다(도 5에서, 검은색 점으로 표시된 부분이 1의 값을 가지는 행렬원소와 대응됨). 따라서, 3/4 코드 패리티 검사 행렬 내에서, 행렬원소들은 9개의 행을 단위로 하여 행렬원소가 36개의 열만큼 반복적으로 시프트된다.
도 6의 (a) 및 (b)에서는 도 5의 (a) 및 (b)에 도시된 패리티 검사 행렬의 패턴을 간략화하여 도시하고 있다.
한편, 본 발명의 일 실시예에 따르면, 상기와 같은 특징을 가지는 패리티 검사 행렬은 아래의 수학식 1을 이용하여 생성될 수 있다.
여기서, Hm ,n은 패리티 검사 행렬 내의 1의 값의 열 인덱스를 행렬원소로 하는 제1 행렬의 (m,n)번째 행렬원소로서, 패리티 검사 행렬의 m번째 행에서의 n번째 0이 아닌 값의 열 인덱스를 의미한다. 그리고, H'i ,j는 패리티 검사 행렬의 0번째 행으로부터 a1-1번째 행까지의 행을 포함하는 서브 패리티 검사 행렬 내의 1의 열 인덱스를 행렬원소로 하는 제2 행렬의 (i,j)번째 행렬원소로서 서브 패리티 검사 행렬의 i번째 행에서의 j번째 1의 값의 열 인덱스를 의미한다. 또한, qu( )는 나머지 버림 함수, k는 패리티 검사 행렬의 행의 개수, N은 패리티 검사 행렬의 열의 개수, dc는 패리티 검사 행렬의 각 행에서의 1의 값의 개수를 각각 의미한다.
이와 같이, 제1 행렬 및 제2 행렬을 이용하여 패리티 검사 행렬을 생성하는 경우, 적은 양의 정보(즉, 서브 패리티 검사 행렬 내의 1의 값의 열 인덱스)만을 이용하여 전체 패리티 검사 행렬을 생성할 수 있게 되어, LDPC 디코딩 시의 메모리 사용량을 줄일 수 있게 된다.
예를 들어, 패리티 검사 행렬이 CMMB 표준에 따른 패리티 검사 행렬인 경우, 앞서 표 1에서 설명한 바와 같이 각 행 내의 1의 값의 개수는 6개 또는 12개이므로(Row Weight dc), 패리티 검사 행렬은 18×6 또는 9×12(즉, a1×dc)의 크기를 가지는 제2 행렬을 이용하여 생성될 수 있으므로, LDPC 디코딩 시의 메모리 사용량을 현저히 줄일 수 있게 된다.
본 발명의 일 실시예에 따른 행/열 그룹 정의부(310)는 위와 같은 특성을 가지는 패리티 검사행렬에 대해 다수의 행 및 열을 정의한다.
보다 상세하게, 단계(S410)에서 행/열 그룹 정의부(310)는 도 7에 도시된 바와 같이 패리티 검사 행렬을 대상으로 하여 a1의 정수배(일례로, a1의 2배)의 개수의 연속되는 행을 각각 포함하는 b1(2 이상의 정수임)개의 행 그룹을 정의하고, a2의 정수배(일례로, a2의 2배)의 개수의 연속되는 열을 각각 포함하는 b2(2 이상의 정수임)개의 열 그룹을 정의한다.
이에 따라, 패리티 검사 행렬은 행의 크기가 a1의 정수배이고 열의 크기가 a2의 정수배인 다수(=b1×b2)의 서브 블록으로 구획된다.
다음으로, 단계(S420)에서 패리티 검사 행렬 변환부(320)는 패리티 검사 행렬을 구성하는 다수의 서브 블록 중 적어도 일부의 위치가 재정렬된 패리티 검사 행렬(즉, 변환된 패리티 검사 행렬)을 생성한다.
이 때, 패리티 검사 행렬 변환부(320)는 OMP 기법에 따른 LDCP 디코딩의 수행을 위해, 패리티 검사 행렬 내의 1의 값이 패리티 검사 행렬의 좌측 상단 및 우측 하단 중 적어도 하나의 영역으로 모이도록 다수의 서브 블록 중 적어도 일부의 위치를 재정렬할 수 있다.
본 발명의 일 실시예에 따르면, 패리티 검사 행렬 변환부(320)는 b1개의 행 그룹 중 적어도 일부의 위치를 재정렬하고, b2개의 열 그룹 중 적어도 일부의 위치를 재정렬하여 다수의 서브 블록 중 적어도 일부의 위치를 재정렬할 수 있다. 다시 말해, 패리티 검사 행렬 변환부(320)는 행 그룹 단위 및 열 그룹 단위로 행렬원소의 위치를 변환하여 1의 값이 패리티 검사 행렬 내에서 좌측 하단 내지 우측 상단으로 모이도록 할 수 있다.
이 때, 패리티 검사 행렬이 CMMB 표준에서 사용되는 패리티 검사 행렬인 경우, b1의 값 및 b2의 값은 4일 수 있다. 즉, 단계(S410)에서 행/열 그룹 정의부(310)는 CMMB 표준에서 사용되는 패리티 검사 행렬의 행렬원소를 4개의 행 그룹 및 4개의 열 그룹으로 그룹핑하고, 단계(S420)에서 패리티 검사 행렬 변환부(320)는 4개의 행 그룹 중 적어도 일부의 위치를 재정렬하고 4개의 열 그룹 중 적어도 일부의 위치를 재정렬하여 다수의 서브 블록 중 적어도 일부의 위치를 재정렬할 수 있다.
본 발명의 일 실시예에 따르면, 패리티 검사 행렬이 1/2 코드 패리티 검사 행렬이고, b1의 값 및 b2의 값이 4인 경우, 4개의 행 그룹 중에서, 첫번째 행 그룹은 두번째 행 그룹의 위치로, 두번째 행 그룹은 세번째 행 그룹의 위치로, 세번째 행 그룹은 첫번째 행 그룹의 위치로 각각 이동될 수 있고, 4개의 열 그룹 중에서, 세번째 열 그룹은 네번째 열 그룹의 위치로, 네번째 열 그룹은 세번째 열 그룹의 위치로 각각 이동될 수 있다. 다시 말해, 1/2 코드 패리티 검사 행렬 내에서 행 그룹은 "(1), (2), (3), (4)"의 순서에서 "(3), (1), (2), (4)"의 순서로 재정렬되고, 열 그룹은 "(1), (2), (3), (4)"의 순서에서 "(1), (2), (4), (3)"의 순서로 재정렬될 수 있다.
이 때, 1/2 코드 패리티 검사 행렬은 크기가 4608×9216이며, a1 및 a2가 각각 18 및 36의 값을 가지므로, 첫번째 행 그룹에 포함되는 행의 개수는 630(=18×35)개이고, 두번째 행 그룹에 포함되는 행의 개수는 1890(=18×105)개이고, 세번째 행 그룹에 포함되는 행의 개수 및 네번째 행 그룹에 포함되는 행의 개수는 1044(=18×58)개일 수 있다. 또한, 첫번째 열 그룹에 포함되는 열의 개수 및 세번째 열 그룹에 포함되는 열의 개수는 2052(=36×57)개이고, 두번째 열 그룹에 포함되는 열의 개수는 3024(=36×84)개이고, 네번째 열 그룹에 포함되는 열의 개수는 2088(=36×58)개일 수 있다. 즉, 패리티 검사 행렬이 1/2 패리티 검사 행렬인 경우, 서브 블록은 630×2052, 630×2088, 630×3024, 1044×2052, 1044×2088, 1044×3024, 1890×2052, 1890×2088, 1890×3024 중에서 어느 하나의 크기를 가질 수 있다.
도 8의 (a)에서는 상기와 같이 행 그룹 및 열 그룹이 재배열된(즉, 다수의 서브 블록이 재배열된) 1/2 코드 패리티 검사 행렬의 변환된 패리티 검사 행렬을 도시하고 있고, 도 8의 (b)에서는 도 8의 (a)의 변환된 패리티 검사 행렬을 간략화하여 도시하고 있다. 도 8의 (a)를 참조하면, 0의 값을 가지는 행렬원소들이 1/2 코드 패리티 행렬 내의 좌측 하단 및 우측 상단으로 효과적으로 모이게 되는 것을 확인할 수 있다.
이와 같이 변환된 패리티 검사 행렬을 이용하여 OMP 기법에 따른 LDPC 디코딩을 수행하는 경우, 도 8의 (c)에 도시된 바와 같이 1044개의 체크 노드 연산과 배리어블 노드 연산이 오버랩되어 동시에 수행될 수 있게 되고, 이에 따라 LDPC 디코딩이 수행 속도를 증가시킬 수 있게 된다.
한편, 본 발명의 다른 실시예에 따르면, 패리티 검사 행렬이 3/4 코드 패리티 검사 행렬이고, b1의 값 및 b2의 값이 4인 경우, 4개의 행 그룹 중에서, 첫번째 행 그룹은 세번째 행 그룹의 위치로, 두번째 행 그룹은 첫번째 행 그룹의 위치로, 세번째 행 그룹은 두번째 행 그룹의 위치로 각각 이동될 수 있고, 4개의 열 그룹 중에서, 첫번째 열 그룹은 세번째 열 그룹의 위치로, 두번째 열 그룹은 첫번째 열 그룹의 위치로, 세번째 열 그룹은 네번째 열 그룹의 위치로, 네번째 열 그룹은 두번째 열 그룹의 위치로 각각 이동될 수 있다. 다시 말해, 3/4 코드 패리티 검사 행렬 내에서 행 그룹은 "(1), (2), (3), (4)"의 순서에서 "(2), (3), (1), (4)"의 순서로 재정렬되고, 열 그룹은 "(1), (2), (3), (4)"의 순서에서 "(2), (4), (1), (3)"의 순서로 재정렬될 수 있다.
이 때, 3/4 코드 패리티 검사 행렬은 크기가 2304×9216이며, a1 및 a2가 각각 9 및 36의 값을 가지므로, 첫번째 행 그룹에 포함되는 행의 개수, 두번째 행 그룹에 포함되는 행의 개수 및 네번째 행 그룹에 포함되는 행의 개수는 각각 630(=9×70)개이고, 세번째 행 그룹에 포함되는 행의 개수는 514(=9×46)개일 수 있다. 또한, 첫번째 열 그룹에 포함되는 열의 개수는 1080(=36×30)개이고, 두번째 열 그룹에 포함되는 열의 개수 및 세번째 열 그룹에 포함되는 열의 개수는 2520(=36×70)개이고, 네번째 열 그룹에 포함되는 열의 개수는 3096(=36×86)개일 수 있다. 즉, 패리티 검사 행렬이 3/4 패리티 검사 행렬인 경우, 서브 블록은 512×1080, 512×2520, 512×3096, 630×1080, 630×2520, 630×3096, 중에서 어느 하나의 크기를 가질 수 있다.
도 9의 (a)에서는 상기와 같이 행 그룹 및 열 그룹이 재배열된(즉, 다수의 서브 블록이 재배열된) 3/4 코드 패리티 검사 행렬의 변환된 패리티 검사 행렬을 도시하고 있고, 도 9의 (b)에서는 도 9의 (a)의 변환된 패리티 검사 행렬을 간략화하여 도시하고 있다. 도 9의 (a)를 참조하면, 0의 값을 가지는 행렬원소들이 3/4 코드 패리티 행렬 내의 좌측 하단 및 우측 상단으로 효과적으로 모이게 되는 것을 확인할 수 있다.
이와 같이 변환된 패리티 검사 행렬을 이용하여 OMP 기법에 따른 LDPC 디코딩을 수행하는 경우, 도 9의 (c)에 도시된 바와 같이 630개의 체크 노드 연산과 배리어블 노드 연산이 오버랩되어 동시에 수행될 수 있게 되고, 이에 따라 LDPC 디코딩이 수행 속도를 증가시킬 수 있게 된다.
한편, 패리티 검사 행렬 변환부(320)는 상기의 수학식 1을 이용하여 직접 변환된 패리티 검사 행렬을 생성할 수 있다. 보다 상세하게, 패리티 검사 행렬 변환부(320)는 변환된 패리티 검사 행렬의 생성을 통해 재정렬될 행의 순서에 따라 순차적으로 행 인덱스를 m에 대입하여 변환된 패리티 검사 행렬을 생성할 수 있다.
일례로서, 패리티 검사 행렬이 앞서 설명한 1/2 패리티 검사 행렬인 경우, 패리티 검사 행렬 변환부(320)는 변환된 패리티 검사 행렬의 생성을 통해 재정렬될 행의 순서에 따라 2520부터 3563까지의 값을 순차적으로 m에 대입한 후, 0부터 629까지의 값을 m에 순차적으로 대입하고, 계속해서 630으로부터 2519까지의 값 및 3564로부터 4067까지의 값을 순차적으로 대입하여 변환된 패리티 검사 행렬을 생성할 수 있다.
이와 같이, 패리티 검사 행렬 생성 장치(300)가 상기한 수학식 1을 이용하여 변환된 패리티 검사 행렬을 생성하는 경우, 종래의 LDPC 디코딩 기법에 비해 디코딩 시 사용되는 메모리의 양(메모리 사용량)을 현저하게 줄일 수 있는 장점이 있다.
다시 말해, 패리티 검사 행렬을 행의 크기 및 열의 크기가 각각 a1의 정수배 및 a2의 정수배인 다수의 서브 블록으로 구획하는 경우, 서브 패리티 검사 행렬 내의 1의 값의 열 인덱스만을 이용하여서도 상기한 수학식 1을 통해서 변환된 패리티 검사 행렬을 직접적으로 생성할 수 있게 되므로, 메모리 사용량을 줄여 시스템에 걸리는 부하를 줄임과 동시에 빠른 속도로 LDPC 디코딩을 수행할 수 있게 되는 장점이 있다.
도 10은 본 발명의 일 실시예에 따른 OMP 기법에 따른 LDPC 디코딩 장치(이하, "LDPC 디코딩 장치"라고 함)의 개략적인 구성을 도시한 도면이다.
도 11을 참조하면, 본 발명의 일 실시예에 따른 LDPC 디코딩 장치(1000)는 디코딩부(1010) 및 저장부(1020)를 포함하고, 디코딩부(1010)는 연산 수행부(1011) 및 연산 순서 결정부(1012)를 포함할 수 있다. 이하, 각 구성 요소 별로 그 기능을 상술하기로 한다.
디코딩부(1010)는 패리티 검사 행렬을 구성하는 다수의 서브 블록 중 적어도 일부의 위치가 재정렬된 변환된 패리티 검사 행렬을 이용하여 OMP 기법에 따른 LDPC 디코딩을 수행한다.
여기서, 패리티 검사 행렬 및 변환된 패리티 검사 행렬은 앞서 도 3 내지 도 9에서 설명한 것과 동일한 특성을 가지므로 이에 대한 설명은 생략하기로 한다.
디코딩부(1010)의 동작을 보다 상세하게 살펴보면, 연산 수행부(1011)는 반복적인 디코딩 과정 각각에서, 제1 순서에 따라 체크 노드 연산을 수행하고, 제2 순서에 따라 배리어블 노드 연산을 수행하되, 일부의 체크 노드 연산과 일부의 배리어블 노드 연산을 동시에 수행한다. 그리고, 연산 순서 결정부(1012)는 상기한 제1 순서 및 제2 순서를 결정한다.
본 발명의 일 실시예에 따르면, 연산 순서 결정부(1012)는 앞서 도 3 내지 도 9에서 설명한 변환된 패리티 검사 행렬의 행의 순서(즉, 재정렬된 행의 순서)와 대응되도록 제1 순서를 결정하고, 변환된 패리티 검사 행렬의 열의 순서(즉, 재정렬된 열의 순서)와 대응되도록 제2 순서를 결정할 수 있다. 다시 말해, 연산 순서 결정부(1012)는 패리티 검사 행렬의 행 인덱스 및 열 인덱스를 대상으로 하여, a1의 정수배의 개수의 연속되는 행 인덱스를 각각 포함하는 b1개의 행 인덱스 그룹 및 a2의 정수배의 개수의 연속되는 열 인덱스를 각각 포함하는 b1개의 열 인덱스 그룹을 정의하고, b1개의 행 인덱스 그룹 중 적어도 일부의 위치를 재정렬하거나 b2개의 열 인덱스 그룹 중 적어도 일부의 위치를 재정렬하여 재정렬된 행의 순서 및 재정렬된 열의 순서를 결정할 수 있다.
일례로서, 패리티 검사 행렬이 1/2 패리티 검사 행렬이고, b1의 값 및 b2의 값이 4인 경우, 4개의 행 인덱스 그룹 중에서, 첫번째 행 인덱스 그룹은 두번째 행 인덱스 그룹의 위치로, 두번째 행 인덱스 그룹은 세번째 행 인덱스 그룹의 위치로, 세번째 행 인덱스 그룹은 첫번째 행 인덱스 그룹의 위치로 각각 이동될 수 있다. 아울러, 4개의 열 인덱스 그룹 중에서, 세번째 열 인덱스 그룹은 네번째 열 인덱스 그룹의 위치로, 네번째 열 인덱스 그룹은 세번째 열 인덱스 그룹의 위치로 각각 이동될 수 있다.
이 경우, 첫번째 행 인덱스 그룹에 포함되는 행 인덱스의 개수는 630개이고, 두번째 행 인덱스 그룹에 포함되는 행 인덱스의 개수는 18100개이고, 세번째 행 인덱스 그룹에 포함되는 행 인덱스의 개수 및 네번째 행 인덱스 그룹에 포함되는 행 인덱스의 개수는 1044개일 수 있다. 그리고, 첫번째 열 인덱스 그룹에 포함되는 열 인덱스의 개수 및 세번째 열 인덱스 그룹에 포함되는 열 인덱스의 개수는 2052개이고, 두번째 열 인덱스 그룹에 포함되는 열 인덱스의 개수는 3024개이고, 네번째 열 인덱스 그룹에 포함되는 열 인덱스의 개수는 2088개일 수 있다.
다른 일례로서, 패리티 검사 행렬이 3/4 패리티 검사 행렬이고, b1의 값 및 b2의 값이 4인 경우, 4개의 행 인덱스 그룹 중에서, 첫번째 행 인덱스 그룹은 세번째 행 인덱스 그룹의 위치로, 두번째 행 인덱스 그룹은 첫번째 행 인덱스 그룹의 위치로, 세번째 행 인덱스 그룹은 두번째 행 인덱스 그룹의 위치로 각각 이동될 수 있다. 아울러, 4개의 열 인덱스 그룹 중에서, 첫번째 열 인덱스 그룹은 세번째 열 인덱스 그룹의 위치로, 두번째 열 인덱스 그룹은 첫번째 열 인덱스 그룹의 위치로, 세번째 열 인덱스 그룹은 네번째 열 인덱스 그룹의 위치로, 네번째 열 인덱스 그룹은 두번째 열 인덱스 그룹의 위치로 각각 이동될 수 있다.
이 경우, 첫번째 행 인덱스 그룹에 포함되는 행 인덱스의 개수, 두번째 행 인덱스 그룹에 포함되는 행 인덱스의 개수 및 네번째 행 인덱스 그룹에 포함되는 행 인덱스의 개수는 630개이고, 세번째 행 인덱스 그룹에 포함되는 행 인덱스의 개수는 414개일 수 있다. 그리고, 첫번째 열 인덱스 그룹에 포함되는 열 인덱스의 개수는 1080개이고, 두번째 열 인덱스 그룹에 포함되는 열 인덱스의 개수 및 세번째 열 인덱스 그룹에 포함되는 열 인덱스의 개수는 각각 2520개이고, 네번째 열 인덱스 그룹에 포함되는 열 인덱스의 개수는 30106개일 수 있다.
저장부(1020)는 패리티 검사 행렬 내의 1의 값과 대응되는 LLR(Log Likelihood Ratio) 값을 저장한다.
본 발명의 일 실시예에 따르면, LLR 값의 저장부(1020)에서의 주소값(이하, "LLR 값의 주소값"이라고 함)은 패리티 검사 행렬 내의 1의 값의 열 인덱스를 포함할 수 있다. 보다 상세하게, LLR 값의 주소값은 패리티 검사 행렬 내의 1의 값의 열 인덱스 및 해당 열에서의 1의 값의 순서값으로 구성될 수 있다.
예를 들어, 패리티 검사 행렬이 CMMB 표준에 따른 패리티 검사 행렬인 경우, 열 인덱스가 1080인 열(즉, 1080번째 열)에 포함된 3개의 1의 값과 대응되는 LLR 값의 주소값은 각각 [1080, 1], [1080,2], [1080, 3] 일 수 있다.
이 경우, 연산 수행부(1011)는 제1 순서에 따라 각 행에 포함된 1의 값과 대응되는 LLR 값을 저장부(1020)에서 독출하고, 독출된 LLR 값에 대해 체크 노드 연산을 수행하여 LLR 값을 갱신한 후, 이를 저장부(1020)에 재저장함으로써 체크 노드 연산을 수행할 수 있다. 또한, 연산 수행부(1011)는 제2 순서에 따라 각 열에 포함된 각 열에 포함된 1의 값과 대응되는 LLR 값을 저장부(1020)에서 독출하고, 독출된 LLR 값에 대해 배리어블 노드 연산을 수행하여 LLR 값을 갱신한 후, 이를 저장부(1020)에 재저장함으로써 배리어블 노드 연산을 수행할 수 있다.
본 발명의 일 실시예에 따르면, 체크 노드 연산을 수행하는 경우, 연산 수행부(1011)는 각 행에 포함된 1의 값의 열 인덱스를 산출하고, 산출된 열 인덱스를 이용하여 각 행에 포함된 1의 값과 대응되는 LLR 값을 저장부(1020)에서 검색하여 독출할 수 있다.
본 발명의 일 실시예에 따르면, 연산 수행부(1011)는 상기한 수학식 1을 이용하여 각 행에 포함된 1의 값의 열 인덱스를 산출할 수 있다. 이 때, 연산 수행부(1011)는 제1 순서에 따라 순차적으로 행 인덱스를 m에 대입하여 각 행에 포함된 0이 아닌 값의 열 인덱스를 산출할 수 있다.
또한, 본 발명의 일 실시예에 따르면, 배리어블 노드 연산을 수행하는 경우, 연산 수행부(1011)는 배리어블 노드 연산을 수행하고자 하는 열의 인덱스를 직접 이용하여 각 열에 포함된 1의 값과 대응되는 LLR 값을 저장부(1020)에서 독출할 수 있다.
한편, 본 발명의 일 실시예에 따르면, 연산 수행부(1011)는 최소 합 알고리즘에 따라 체크 노드 연산 및 배리어블 노드 연산을 수행할 수 있다.
이 경우, 연산 수행부(1011)는 최소값(min) 연산 또는 합 연산을 수행하는 제1 연산기 및 합 연산을 수행하는 제2 연산기를 포함할 수 있다. 이하, 도 11을 참조하여 각 연산기에 대해 상세하게 설명하기로 한다.
도 11은 본 발명의 일 실시예에 따른 연산 수행부(1010)를 구성하는 제1 연산기(1110)(도 11의 (a)) 및 제2 연산기(1120)(도 11의 (b))를 도시한 도면이다.
먼저, 도 11의 (a)를 참조하면, 제1 연산기(1110)는 제1 디멀티플렉서(1111), 제2 디멀티플렉서(1112), 1의 보수 연산기(1113), 제1 가산기(1114) 및 제3 디멀티플렉서(1115)를 포함할 수 있다.
제1 디멀티플렉서(1111)는 제어신호에 기초하여 제1 입력값(즉, Y) 및 제1 입력값의 절대값 중에서 어느 하나를 선택하여 출력하고, 제2 디멀티플렉서(1112)는 제어신호에 기초하여 제2 입력값(즉, X) 및 제2 입력값의 절대값 중에서 어느 하나를 선택하여 출력한다. 여기서, 제1 입력값 및 제2 입력값은 최소값 연산 또는 합 연산의 수행 대상이 되는 LLR 값이다. 최소값 연산 또는 합 연산의 수행 대상인 LLR 값이 3개 이상인 경우, 한 쌍의 LLR 값이 제1 연산기(1111)로 순차적으로 입력될 수 있다.
1의 보수 연산기(1113)는 제어신호에 기초하여 제2 디멀티플렉서(1112)의 출력값에 대해 선택적으로 1의 보수 연산을 수행한다.
제1 가산기(1114)는 제어신호를 캐리 입력값(Cin)으로 하여 제1 디멀티플렉서(1111)의 출력값과 1의 보수 연산기(1113)의 출력값에 대해 합 연산을 수행하여 합 출력값(sum) 및 캐리 출력값(Cout)을 출력한다.
제3 디멀티플렉서(1115)는 제1 가산기(1114)의 캐리 출력값에 기초하여 제1 디멀티플렉서의 출력값(1111)과 제2 디멀티플렉서의 출력값(1112) 중에서 어느 하나를 선택하여 출력한다.
이와 같이 구성되는 제1 연산기(1110)는 제어신호의 값에 따라 최소값 연산 및 합 연산 중에서 어느 하나를 수행할 수 있다.
본 발명의 일 실시예에 따르면, 제어신호가 하이 로직 값(일례로, 1의 값)을 가지는 경우, 제1 연산기(1110)는 최소값 연산기로 동작하고, 제어신호가 로우 로직 값(일례로, 0의 값)을 가지는 경우, 제1 연산기(1110)는 합 연산기(즉, 가산기)로 동작할 수 있다.
다시 말해, 제어신호가 1의 값을 가진다면, 제1 디멀티플렉서(1111)는 제1 입력값의 절대값을 출력하고, 제2 디멀티플렉서(1112)는 제2 입력값의 절대값을 출력하고, 1의 보수 연산기(1113)는 제2 입력값의 절대값에 대해 1의 보수 연산을 수행하며, 제1 가산기(1114)로는 1의 캐리 입력값이 입력된다. 따라서, 제1 가산기(1114)는 제1 입력값의 절대값과 제2 입력값의 절대값에 대해 차 연산을 수행하게 되고, 이의 결과로 출력되는 캐리 출력값에 의해 제3 디멀티플렉서(1115)는 제1 입력값의 절대값과 제2 입력값의 절대값 중에서 작은 값(즉, 최소값)을 출력하게 된다. 이에 따라, 제1 연산기(1110)는 최소값 연산기로 동작하게 된다.
또한, 제어신호가 0의 값을 가진다면, 제1 디멀티플렉서(1111)는 제1 입력값을 출력하고, 제2 디멀티플렉서(1112)는 제2 입력값을 출력하고, 1의 보수 연산기(1113)는 제2 입력값에 대해 1의 보수 연산을 수행하지 않으며, 제1 가산기(1114)로는 0의 캐리 입력값이 입력된다. 따라서, 제1 가산기(1114)는 제1 입력값과 제2 입력값을 합산한 값을 출력한다. 이에 따라 제1 연산기(1110)는 합 연산기(즉, 가산기)로 동작하게 된다.
다음으로, 도 11의 (b)를 참조하면, 제2 연산기(1120)는 제2 가산기(1121)를 포함하며, 제1 입력값(즉, Y)과 제2 입력값(즉, X)에 합 연산을 수행한다.
이와 같이 구성되는 제1 연산기(1110) 및 제2 연산기(1120)를 포함하는 연산 수행부(1012)는 체크 노드 연산 시에는 제1 연산기(1110)만을 이용하여 최소값 연산을 수행하고, 체크 노드 연산과 동시에 수행되는 배리어블 노드 연산 시에는 제2 연산기(1120)만을 이용하여 합 연산을 수행하며, 체크 노드 연산과 동시에 수행되지 않는 배리어블 노드 연산 시에는 제1 연산기(1110)와 제2 연산기(1120)를 모두 이용하여 합 연산을 수행할 수 있다.
즉, 연산 수행부(1012)는 도 11의 (c)에 도시된 제1 구간에서는 제1 연산기(1110)를 이용한 최소값 연산을 수행하고, 제2 구간에서는 제1 연산기(1110)를 이용한 최소값 연산 및 제2 연산기(1120)를 이용한 합 연산을 동시에 수행하며, 제3 구간에서는 제1 연산기(1110)를 이용한 합 연산 및 제2 연산기(1120)를 이용한 합 연산을 동시에 수행할 수 있다. 이를 위해, 제1 구간 및 제2 구간 동안에는 1의 값을 가지는 제어신호가 제1 연산기(1110)로 입력되고, 제3 구간 동안에는 0의 값을 가지는 제어신호가 제1 연산기(1110)로 입력된다.
이에 따라, 배리어블 노드 연산을 보다 빠르게 수행할 수 있게 되어 LDPC 디코딩에 소요되는 시간을 줄일 수 있게 된다.
한편, 도 11에서는 연산 수행부(1012)가 하나의 제1 연산기(1110) 및 하나의 제2 연산기(1120)를 포함하는 것으로 도시하였으나, 본 발명의 다른 실시예에 따르면, 제1 연산기(1110)의 개수 및 제2 연산기(1120)의 개수는 2 이상일 수 있다. 이 경우, 2 이상의 체크 노드 연산 및 2 이상의 배리어블 노드 연산이 병렬적으로 수행될 수 있게 되어 LDPC 디코딩에 소요되는 시간을 더욱 줄일 수 있게 된다.
또한, 본 발명의 일 실시예에 따르면, LDPC 디코딩 장치(1000)는 CMMB 칩 형태로 구현될 수 있다. 이 경우, 디코딩부(1010)는 상기한 변환된 패리티 검사 행렬(제1 패리티 검사 행렬)을 이용하여 CMMB 데이터를 OMP 기법에 따른 LDPC 디코딩을 수행할 수 있다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
300: 변환된 패리티 검사 행렬 생성 장치
310: 행/열 그룹 정의부 320: 패리티 검사 행렬 변환부
1000: LDPC 디코딩 장치 1010: 디코딩부
1011: 연산 순서 결정부 1012: 연산 수행부
1020: 저장부 1110: 제1 연산기
1111: 제1 디멀티플렉서 1112: 제2 디멀티플렉서
1113: 1의 보수 연산기 1114: 제1 가산기
1115: 제3 디멀티플렉서 1120: 제2 연산기
1121: 제2 연산기
310: 행/열 그룹 정의부 320: 패리티 검사 행렬 변환부
1000: LDPC 디코딩 장치 1010: 디코딩부
1011: 연산 순서 결정부 1012: 연산 수행부
1020: 저장부 1110: 제1 연산기
1111: 제1 디멀티플렉서 1112: 제2 디멀티플렉서
1113: 1의 보수 연산기 1114: 제1 가산기
1115: 제3 디멀티플렉서 1120: 제2 연산기
1121: 제2 연산기
Claims (36)
- 패리티 검사 행렬을 구성하는 다수의 서브 블록 중 적어도 일부의 위치가 재정렬된 상기 패리티 검사 행렬의 변환된 패리티 검사 행렬을 생성하는 패리티 검사 행렬 변환부를 포함하되,
상기 패리티 검사 행렬은 a1(2 이상의 정수임)개의 행을 단위로 하여 행렬원소가 a2(2 이상의 정수임)개의 열 만큼 반복적으로 시프트되는 특성을 가지며, 상기 서브 블록의 행의 크기는 상기 a1의 정수배이고, 상기 서브 블록의 열의 크기는 상기 a2의 정수배인 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩을 위한 변환된 패리티 검사 행렬 생성 장치. - 제1항에 있어서,
상기 패리티 검사 행렬 변환부는 상기 패리티 검사 행렬 내의 1의 값이 상기 패리티 검사 행렬의 좌측 상단 및 우측 하단 중 적어도 하나의 영역으로 모이도록 상기 다수의 서브 블록 중 적어도 일부의 위치를 재정렬하는 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩을 위한 변환된 패리티 검사 행렬 생성 장치. - 제1항에 있어서,
상기 패리티 검사 행렬 변환부는 아래의 수학식을 이용하여 상기 변환된 패리티 검사 행렬을 생성하는 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩을 위한 변환된 패리티 검사 행렬 생성 장치.
여기서, Hm,n은 상기 패리티 검사 행렬 내의 1의 값의 열 인덱스를 행렬원소로 하는 제1 행렬의 (m,n)번째 행렬원소로서 상기 패리티 검사 행렬의 m번째 행에서의 n번째 1의 값의 열 인덱스, H'i,j는 상기 패리티 검사 행렬의 0번째 행으로부터 a1-1번째 행까지의 행을 포함하는 서브 패리티 검사 행렬 내의 1의 값의 열 인덱스를 행렬원소로 하는 제2 행렬의 (i,j)번째 행렬원소로서 상기 서브 패리티 검사 행렬의 i번째 행에서의 j번째 1의 값의 열 인덱스, qu( )는 나머지 버림 함수, k는 상기 패리티 검사 행렬의 행의 개수, N은 상기 패리티 검사 행렬의 열의 개수, dc는 상기 패리티 검사 행렬의 각 행에서의 1의 값의 개수를 각각 의미함. - 제3항에 있어서,
상기 패리티 검사 행렬 변환부는 상기 변환된 패리티 검사 행렬의 생성을 통해 재정렬될 행의 순서에 따라 순차적으로 행 인덱스를 상기 m에 대입하여 상기 변환된 패리티 검사 행렬을 생성하는 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩을 위한 변환된 패리티 검사 행렬 생성 장치. - 제1항에 있어서,
상기 패리티 검사 행렬을 대상으로 하여 상기 a1의 정수배의 개수의 연속되는 행을 각각 포함하는 b1(2 이상의 정수임)개의 행 그룹 및 상기 a2의 정수배의 개수의 연속되는 열을 각각 포함하는 b2(2 이상의 정수임)개의 열 그룹을 정의하는 행/열 그룹 정의부를 더 포함하되,
상기 패리티 검사 행렬 변환부는 상기 b1개의 행 그룹 중 적어도 일부의 위치를 재정렬하거나 상기 b2개의 열 그룹 중 적어도 일부의 위치를 재정렬하여 상기 적어도 일부의 서브 블록의 위치를 재정렬하는 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩을 위한 변환된 패리티 검사 행렬 생성 장치. - 제5항에 있어서,
상기 패리티 검사 행렬은
행의 개수가 4608개이고, 열의 개수가 9216개이고, 상기 a1의 값이 18이고, 상기 a2의 값이 36인 CMMB(China Mobile Multimedia Broadcasting) 표준에 따른 1/2 코드 패리티 검사 행렬이거나 또는 행의 개수가 2304개이고, 열의 개수가 9216개이고, 상기 a1의 값이 9이고, 상기 a2의 값이 36인 CMMB 표준에 따른 3/4 코드 패리티 검사 행렬인 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩을 위한 변환된 패리티 검사 행렬 생성 장치. - 제6항에 있어서,
상기 패리티 검사 행렬은 1/2 코드 패리티 검사 행렬이고,
상기 b1의 값 및 상기 b2의 값은 4이며,
상기 b1개의 행 그룹 중에서, 첫번째 행 그룹은 두번째 행 그룹의 위치로, 상기 두번째 행 그룹은 세번째 행 그룹의 위치로, 상기 세번째 행 그룹은 상기 첫번째 행 그룹의 위치로 각각 이동되고,
상기 b2개의 열 그룹 중에서, 세번째 열 그룹은 네번째 열 그룹의 위치로, 상기 네번째 열 그룹은 상기 세번째 열 그룹의 위치로 각각 이동되는 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩을 위한 변환된 패리티 검사 행렬 생성 장치. - 제7항에 있어서,
상기 첫번째 행 그룹에 포함되는 행의 개수는 630개이고, 상기 두번째 행 그룹에 포함되는 행의 개수는 1890개이고, 상기 세번째 행 그룹에 포함되는 행의 개수 및 상기 네번째 행 그룹에 포함되는 행의 개수는 1044개이며,
상기 첫번째 열 그룹에 포함되는 열의 개수 및 상기 세번째 열 그룹에 포함되는 열의 개수는 2052개이고, 상기 두번째 열 그룹에 포함되는 열의 개수는 3024개이고, 상기 네번째 열 그룹에 포함되는 열의 개수는 2088개인 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩을 위한 변환된 패리티 검사 행렬 생성 장치. - 제6항에 있어서,
상기 패리티 검사 행렬은 3/4 코드 패리티 검사 행렬이고,
상기 b1의 값 및 상기 b2의 값은 4이며,
상기 b1개의 행 그룹 중에서, 첫번째 행 그룹은 세번째 행 그룹의 위치로, 두번째 행 그룹은 상기 첫번째 행 그룹의 위치로, 상기 세번째 행 그룹은 상기 두번째 행 그룹의 위치로 각각 이동되고,
상기 b2개의 열 그룹 중에서, 첫번째 열 그룹은 세번째 열 그룹의 위치로, 두번째 열 그룹은 상기 첫번째 열 그룹의 위치로, 상기 세번째 열 그룹은 네번째 열 그룹의 위치로, 상기 네번째 열 그룹은 상기 두번째 열 그룹의 위치로 각각 이동되는 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩을 위한 변환된 패리티 검사 행렬 생성 장치. - 제9항에 있어서,
상기 첫번째 행 그룹에 포함되는 행의 개수, 상기 두번째 행 그룹에 포함되는 행의 개수 및 상기 네번째 행 그룹에 포함되는 행의 개수는 630개이고, 상기 세번째 행 그룹에 포함되는 행의 개수는 414개이며,
상기 첫번째 열 그룹에 포함되는 열의 개수는 1080개이고, 상기 두번째 열 그룹에 포함되는 열의 개수 및 상기 세번째 열 그룹에 포함되는 열의 개수는 각각 2520개이고, 상기 네번째 열 그룹에 포함되는 열의 개수는 3096개인 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩을 위한 변환된 패리티 검사 행렬 생성 장치. - 반복적인 디코딩 과정 각각에서, 제1 순서에 따라 체크 노드 연산을 수행하고, 제2 순서에 따라 배리어블 노드 연산을 수행하되, 일부의 체크 노드 연산과 일부의 배리어블 노드 연산을 동시에 수행하는 연산 수행부를 포함하고,
상기 제1 순서는 패리티 검사 행렬을 구성하는 다수의 서브 블록 중 적어도 일부의 위치가 재정렬된 상기 패리티 검사 행렬의 변환된 패리티 검사 행렬의 행의 순서(재정렬된 행의 순서)와 대응되고, 상기 제2 순서는 상기 변환된 패리티 검사 행렬의 열의 순서(재정렬된 열의 순서)와 대응되되,
상기 패리티 검사 행렬은 a1(2 이상의 정수임)개의 행을 단위로 하여 행렬원소가 a2(2 이상의 정수임)개의 열 만큼 반복적으로 시프트되는 특성을 가지고, 상기 서브 블록의 행의 크기는 상기 a1의 정수배이고, 상기 서브 블록의 열의 크기는 상기 a2의 정수배인 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩 장치. - 제11항에 있어서,
상기 패리티 검사 행렬 내의 1의 값과 대응되는 LLR(Log Likelihood Ratio) 값을 저장하는 저장부를 더 포함하되,
상기 연산 수행부는 상기 제1 순서에 따라 각 행에 포함된 1의 값과 대응되는 LLR 값에 대해 체크 노드 연산을 수행하여 상기 각 행에 포함된 1의 값과 대응되는 LLR 값을 갱신하고, 상기 제2 순서에 따라 각 열에 포함된 1의 값과 대응되는 LLR 값에 대해 배리어블 노드 연산을 수행하여 상기 각 열에 포함된 1의 값과 대응되는 LLR 값을 갱신하는 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩 장치. - 제12항에 있어서,
상기 LLR 값의 상기 저장부에서의 주소값은 상기 패리티 검사 행렬 내의 1의 값의 열 인덱스를 포함하고,
상기 연산 수행부는 체크 노드 연산의 수행 시, 상기 각 행에 포함된 1의 값의 열 인덱스를 산출하고, 상기 산출된 열 인덱스를 이용하여 상기 각 행에 포함된 1의 값과 대응되는 LLR 값을 상기 저장부에서 검색하는 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩 장치. - 제13항에 있어서,
상기 연산 수행부는 아래의 수학식을 이용하여 상기 각 행에 포함된 1의 값의 열 인덱스를 산출하는 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩 장치.
여기서, Hm,n은 상기 패리티 검사 행렬 내의 1의 값의 열 인덱스를 행렬원소로 하는 제1 행렬의 (m,n)번째 행렬원소로서 상기 패리티 검사 행렬의 m번째 행에서의 n번째 1의 값의 열 인덱스, H'i,j는 상기 패리티 검사 행렬의 0번째 행으로부터 a1-1번째 행까지의 행을 포함하는 서브 패리티 검사 행렬 내의 1의 값의 열 인덱스를 행렬원소로 하는 제2 행렬의 (i,j)번째 행렬원소로서 상기 서브 패리티 검사 행렬의 i번째 행에서의 j번째 1의 값의 열 인덱스, qu( )는 나머지 버림 함수, k는 상기 패리티 검사 행렬의 행의 개수, N은 상기 패리티 검사 행렬의 열의 개수, dc는 상기 패리티 검사 행렬의 각 행에서의 1의 값의 개수를 각각 의미함. - 제14항에 있어서,
상기 연산 수행부는 상기 제1 순서에 따라 순차적으로 행 인덱스를 상기 m에 대입하여 상기 각 행에 포함된 1의 값의 열 인덱스를 산출하는 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩 장치. - 제11항에 있어서,
상기 변환된 패리티 검사 행렬은 상기 패리티 검사 행렬 내의 1의 값이 상기 패리티 검사 행렬의 좌측 상단 및 우측 하단 중 적어도 하나의 영역으로 모이도록 다수의 서브 블록 중 적어도 일부의 위치가 재정렬된 것임을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩 장치. - 제11항에 있어서,
상기 제1 순서 및 상기 제2 순서를 결정하는 연산 순서 결정부를 더 포함하되,
상기 연산 순서 결정부는
상기 패리티 검사 행렬의 행 인덱스 및 열 인덱스를 대상으로 하여, 상기 a1의 정수배의 개수의 연속되는 행 인덱스를 각각 포함하는 b1(2 이상의 정수임)개의 행 인덱스 그룹 및 상기 a2의 정수배의 개수의 연속되는 열 인덱스를 각각 포함하는 b2(2 이상의 정수임)개의 열 인덱스 그룹을 정의하고,
상기 b1개의 행 인덱스 그룹 중 적어도 일부의 위치를 재정렬하거나 상기 b2개의 열 인덱스 그룹 중 적어도 일부의 위치를 재정렬하여 상기 재정렬된 행의 순서 및 상기 재정렬된 열의 순서를 결정하는 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩 장치. - 제17항에 있어서,
상기 패리티 검사 행렬은
행의 개수가 4608개이고, 열의 개수가 9216개이고, 상기 a1의 값이 18이고, 상기 a2의 값이 36인 CMMB 표준에 따른 1/2 코드 패리티 검사 행렬이거나 또는 행의 개수가 2304개이고, 열의 개수가 9216개이고, 상기 a1의 값이 9이고, 상기 a2의 값이 36인 CMMB 표준에 따른 3/4 코드 패리티 검사 행렬인 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩 장치. - 제18항에 있어서,
상기 패리티 검사 행렬은 1/2 코드 패리티 검사 행렬이고,
상기 b1의 값 및 상기 b2의 값은 4이며,
상기 b1개의 행 인덱스 그룹 중에서, 첫번째 행 인덱스 그룹은 두번째 행 인덱스 그룹의 위치로, 상기 두번째 행 인덱스 그룹은 세번째 행 인덱스 그룹의 위치로, 상기 세번째 행 인덱스 그룹은 상기 첫번째 행 인덱스 그룹의 위치로 각각 이동되고,
상기 b2개의 열 인덱스 그룹 중에서, 세번째 열 인덱스 그룹은 네번째 열 인덱스 그룹의 위치로, 상기 네번째 열 인덱스 그룹은 상기 세번째 열 인덱스 그룹의 위치로 각각 이동되는 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩 장치. - 제19항에 있어서,
상기 첫번째 행 인덱스 그룹에 포함되는 행 인덱스의 개수는 630개이고, 상기 두번째 행 인덱스 그룹에 포함되는 행 인덱스의 개수는 1890개이고, 상기 세번째 행 인덱스 그룹에 포함되는 행 인덱스의 개수 및 상기 네번째 행 인덱스 그룹에 포함되는 행 인덱스의 개수는 1044개이며,
상기 첫번째 열 인덱스 그룹에 포함되는 열 인덱스의 개수 및 상기 세번째 열 인덱스 그룹에 포함되는 열 인덱스의 개수는 2052개이고, 상기 두번째 열 인덱스 그룹에 포함되는 열 인덱스의 개수는 3024개이고, 상기 네번째 열 인덱스 그룹에 포함되는 열 인덱스의 개수는 2088개인 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩 장치. - 제18항에 있어서,
상기 패리티 검사 행렬은 3/4 코드 패리티 검사 행렬이고,
상기 b1의 값 및 상기 b2의 값은 4이며,
상기 b1개의 행 인덱스 그룹 중에서, 첫번째 행 인덱스 그룹은 세번째 행 인덱스 그룹의 위치로, 두번째 행 인덱스 그룹은 상기 첫번째 행 인덱스 그룹의 위치로, 상기 세번째 행 인덱스 그룹은 상기 두번째 행 인덱스 그룹의 위치로 각각 이동되고,
상기 b2개의 열 인덱스 그룹 중에서, 첫번째 열 인덱스 그룹은 세번째 열 인덱스 그룹의 위치로, 두번째 열 인덱스 그룹은 상기 첫번째 열 인덱스 그룹의 위치로, 상기 세번째 열 인덱스 그룹은 네번째 열 인덱스 그룹의 위치로, 상기 네번째 열 인덱스 그룹은 상기 두번째 열 인덱스 그룹의 위치로 각각 이동되는 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩 장치. - 제21항에 있어서,
상기 첫번째 행 인덱스 그룹에 포함되는 행 인덱스의 개수, 상기 두번째 행 인덱스 그룹에 포함되는 행 인덱스의 개수 및 상기 네번째 행 인덱스 그룹에 포함되는 행 인덱스의 개수는 630개이고, 상기 세번째 행 인덱스 그룹에 포함되는 행 인덱스의 개수는 414개이며,
상기 첫번째 열 인덱스 그룹에 포함되는 열 인덱스의 개수는 1080개이고, 상기 두번째 열 인덱스 그룹에 포함되는 열 인덱스의 개수 및 상기 세번째 열 인덱스 그룹에 포함되는 열 인덱스의 개수는 각각 2520개이고, 상기 네번째 열 인덱스 그룹에 포함되는 열 인덱스의 개수는 3096개인 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩 장치. - 제11항에 있어서,
상기 연산 수행부는
최소 합(Min-Sum) 알고리즘에 따라 체크 노드 연산 및 배리어블 노드 연산을 수행하되,
제1 가산기를 포함하고, 최소값 연산을 수행하여 체크 노드 연산을 수행하거나 합 연산을 수행하여 배리어블 노드 연산을 수행하는 제1 연산기; 및 제2 가산기를 포함하고, 합 연산을 수행하여 배리어블 노드 연산을 수행하는 제2 연산기를 포함하며,
상기 동시에 수행되는 일부의 배리어블 노드 연산을 제외한 나머지 배리어블 노드 연산의 수행 시, 상기 제1 연산기와 상기 제2 연산기를 모두 이용하여 합 연산을 수행하는 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩 장치. - 제23항에 있어서,
상기 제1 연산기는
제어신호에 기초하여 제1 입력값 및 상기 제1 입력값의 절대값 중에서 어느 하나를 선택하여 출력하는 제1 디멀티플렉서; 상기 제어신호에 기초하여 제2 입력값 및 상기 제2 입력값의 절대값 중에서 어느 하나를 선택하여 출력하는 제2 디멀티플렉서; 상기 제어신호에 기초하여 상기 제2 디멀티플렉서의 출력값에 대해 선택적으로 1의 보수 연산을 수행하는 1의 보수 연산기; 및 상기 제1 디멀티플렉서의 출력값과 상기 제2 디멀티플렉서의 출력값 중에서 어느 하나를 선택하여 출력하는 제3 디멀티플렉서를 더 포함하되,
상기 제1 가산기는 상기 제어신호를 캐리 입력값(Cin)으로 하여 상기 제1 디멀티플렉서의 출력값과 상기 1의 보수 연산기의 출력값에 대해 합 연산을 수행하여 합 출력값(sum) 및 캐리 출력값(Cout)을 출력하고, 상기 제3 디멀티플렉서는 상기 캐리 출력값에 기초하여 상기 제1 디멀티플렉서의 출력값과 상기 제2 디멀티플렉서의 출력값 중에서 어느 하나를 선택하여 출력하는 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩 장치. - 제24항에 있어서,
상기 제어신호는 체크 노드 연산이 수행 시 하이 로직 값을 가지고, 상기 나머지 배리어블 노드 연산의 수행 시 로우 로직의 값을 가지되,
상기 제어신호가 하이 로직 값을 가지는 경우, 상기 제1 디멀티플렉서는 상기 제1 입력값의 절대값을 출력하고, 상기 제2 디멀티플렉서는 상기 제2 입력값의 절대값을 출력하며, 상기 1의 보수 연산기는 1의 보수 연산을 수행하고,
상기 제어신호가 로우 로직 값을 가지는 경우, 상기 제1 디멀티플렉서는 상기 제1 입력값을 출력하고, 상기 제2 디멀티플렉서는 상기 제2 입력값을 출력하며, 상기 1의 보수 연산기는 1의 보수 연산을 수행하지 않는 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩 장치. - 패리티 검사 행렬을 구성하는 다수의 서브 블록 중 적어도 일부의 위치가 재정렬된 상기 패리티 검사 행렬의 변환된 패리티 검사 행렬을 이용하여 OMP 기법에 따른 LDPC 디코딩을 수행하는 디코딩부를 포함하되,
상기 패리티 검사 행렬은 a1(2 이상의 정수임)개의 행을 단위로 하여 행렬원소가 a2(2 이상의 정수임)개의 열 만큼 반복적으로 시프트되는 특성을 가지며, 상기 서브 블록의 행의 크기는 상기 a1의 정수배이고, 상기 서브 블록의 열의 크기는 상기 a2의 정수배인 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩 장치. - 제26항에 있어서,
상기 변환된 패리티 검사 행렬은 상기 패리티 검사 행렬 내의 1의 값이 상기 패리티 검사 행렬의 좌측 상단 및 우측 하단 중 적어도 하나의 영역으로 모이도록 다수의 서브 블록 중 적어도 일부의 위치가 재정렬된 것임을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩 장치. - 제26항에 있어서,
상기 변환된 패리티 검사 행렬은 아래의 수학식을 이용하여 산출되는 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩 장치.
여기서, Hm,n은 상기 패리티 검사 행렬 내의 1의 값의 열 인덱스를 행렬원소로 하는 제1 행렬의 (m,n)번째 행렬원소로서 상기 패리티 검사 행렬의 m번째 행에서의 n번째 1의 값의 열 인덱스, H'i,j는 상기 패리티 검사 행렬의 0번째 행으로부터 a1-1번째 행까지의 행을 포함하는 서브 패리티 검사 행렬 내의 1의 값의 열 인덱스를 행렬원소로 하는 제2 행렬의 (i,j)번째 행렬원소로서 상기 서브 패리티 검사 행렬의 i번째 행에서의 j번째 1의 값의 열 인덱스, qu( )는 나머지 버림 함수, k는 상기 패리티 검사 행렬의 행의 개수, N은 상기 패리티 검사 행렬의 열의 개수, dc는 상기 패리티 검사 행렬의 각 행에서의 1의 값의 개수를 각각 의미함. - 제26항에 있어서,
상기 패리티 검사 행렬은
행의 개수가 4608개이고, 열의 개수가 9216개이고, 상기 a1의 값이 18이고, 상기 a2의 값이 36인 CMMB 표준에서 사용되는 1/2 코드 패리티 검사 행렬이거나 또는 행의 개수가 2304개이고, 열의 개수가 9216개이고, 상기 a1의 값이 9이고, 상기 a2의 값이 36인 CMMB 표준에서 사용되는 3/4 코드 패리티 검사 행렬인 것을 특징으로 하는 OMP 기법에 따른 LDPC 디코딩 장치. - 제1 패리티 검사 행렬을 이용하여 CMMB 데이터를 OMP 기법에 따른 LDPC 디코딩하는 디코딩부를 포함하되,
상기 제1 패리티 검사 행렬은 CMMB 표준에 따른 제2 패리티 검사 행렬을 구성하는 다수의 서브 블록의 위치가 재정렬된 행렬인 것을 특징으로 하는 CMMB 칩. - 제30항에 있어서,
상기 서브 블록은 18c1×36c2 또는 9c1×36c2의 크기(c1 및 c2는 1 이상의 정수임)를 가지는 것을 특징으로 하는 CMMB 칩. - 제30항에 있어서,
상기 제1 패리티 검사 행렬은 아래의 수학식을 이용하여 재정렬된 행렬인 것을 특징으로 하는 CMMB 칩.
여기서, Hm,n은 상기 제2 패리티 검사 행렬 내의 1의 값의 열 인덱스를 행렬원소로 하는 제1 행렬의 (m,n)번째 행렬원소로서 상기 제2 패리티 검사 행렬의 m번째 행에서의 n번째 1의 값의 열 인덱스, H'i,j는 상기 제2 패리티 검사 행렬의 0번째 행으로부터 a1-1번째 행까지의 행을 포함하는 서브 패리티 검사 행렬 내의 1의 값의 열 인덱스를 행렬원소로 하는 제2 행렬의 (i,j)번째 행렬원소로서 상기 서브 패리티 검사 행렬의 i번째 행에서의 j번째 1의 값의 열 인덱스, qu( )는 나머지 버림 함수, k는 상기 제2 패리티 검사 행렬의 행의 개수, N은 상기 제2 패리티 검사 행렬의 열의 개수, dc는 상기 제2 패리티 검사 행렬의 각 행에서의 1의 값1의 값각 의미함. - 제32항에 있어서,
상기 m에는 상기 제2 패리티 검사 행렬의 행 인덱스가 상기 제1 패리티 검사 행렬에서의 행 인덱스 순서(재정렬된 행 인덱스 순서)에 따라 대입되는 것을 특징으로 하는 CMMB 칩. - 제30항에 있어서,
상기 디코딩부는
최소 합 알고리즘에 따라 반복적인 디코딩 과정 각각에서, 제1 순서에 따라 체크 노드 연산을 수행하고, 제2 순서에 따라 배리어블 노드 연산을 수행하며, 일부의 체크 노드 연산과 일부의 배리어블 노드 연산을 동시에 수행하되,
제1 가산기를 포함하고, 최소값 연산을 수행하여 체크 노드 연산을 수행하거나 합 연산을 수행하여 배리어블 노드 연산을 수행하는 제1 연산기; 및 제2 가산기를 포함하고, 합 연산을 수행하여 배리어블 노드 연산을 수행하는 제2 연산기를 포함하며,
상기 동시에 수행되는 일부의 배리어블 노드 연산을 제외한 나머지 배리어블 노드 연산의 수행 시, 상기 제1 연산기와 상기 제2 연산기를 모두 이용하여 합 연산을 수행하는 것을 특징으로 하는 CMMB 칩. - 제34항에 있어서,
상기 제1 연산기는
제어신호에 기초하여 제1 입력값 및 상기 제1 입력값의 절대값 중에서 어느 하나를 선택하여 출력하는 제1 디멀티플렉서; 상기 제어신호에 기초하여 제2 입력값 및 상기 제2 입력값의 절대값 중에서 어느 하나를 선택하여 출력하는 제2 디멀티플렉서; 상기 제어신호에 기초하여 상기 제2 디멀티플렉서의 출력값에 대해 선택적으로 1의 보수 연산을 수행하는 1의 보수 연산기; 및 상기 제1 디멀티플렉서의 출력값과 상기 제2 디멀티플렉서의 출력값 중에서 어느 하나를 선택하여 출력하는 제3 디멀티플렉서를 더 포함하되,
상기 제1 가산기는 상기 제어신호를 캐리 입력값(Cin)으로 하여 상기 제1 디멀티플렉서의 출력값과 상기 1의 보수 연산기의 출력값에 대해 합 연산을 수행하여 합 출력값(sum) 및 캐리 출력값(Cout)을 출력하고, 상기 제3 디멀티플렉서는 상기 캐리 출력값에 기초하여 상기 제1 디멀티플렉서의 출력값과 상기 제2 디멀티플렉서의 출력값 중에서 어느 하나를 선택하여 출력하는 것을 특징으로 하는 CMMB 칩. - 제35항에 있어서,
상기 제어신호는 체크 노드 연산이 수행 시 하이 로직 값을 가지고, 상기 나머지 배리어블 노드 연산의 수행 시 로우 로직의 값을 가지되,
상기 제어신호가 하이 로직 값을 가지는 경우, 상기 제1 디멀티플렉서는 상기 제1 입력값의 절대값을 출력하고, 상기 제2 디멀티플렉서는 상기 제2 입력값의 절대값을 출력하며, 상기 1의 보수 연산기는 1의 보수 연산을 수행하고,
상기 제어신호가 로우 로직 값을 가지는 경우, 상기 제1 디멀티플렉서는 상기 제1 입력값을 출력하고, 상기 제2 디멀티플렉서는 상기 제2 입력값을 출력하며, 상기 1의 보수 연산기는 1의 보수 연산을 수행하지 않는 것을 특징으로 하는 CMMB 칩.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110087201A KR101172228B1 (ko) | 2011-08-30 | 2011-08-30 | Omp 기법에 따른 ldpc디코딩 장치 및 이를 위한 변환된 패리티 검사 행렬 생성 장치 |
CN201210017296.9A CN102970045B (zh) | 2011-08-30 | 2012-01-19 | Omp的ldpc解码装置及转换奇偶校验矩阵生成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110087201A KR101172228B1 (ko) | 2011-08-30 | 2011-08-30 | Omp 기법에 따른 ldpc디코딩 장치 및 이를 위한 변환된 패리티 검사 행렬 생성 장치 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120067137A Division KR20130024737A (ko) | 2012-06-22 | 2012-06-22 | Omp 기법에 따른 ldpc 디코딩 장치 및 이를 위한 변환된 패리티 검사 행렬 생성 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101172228B1 true KR101172228B1 (ko) | 2012-08-07 |
Family
ID=46887143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110087201A KR101172228B1 (ko) | 2011-08-30 | 2011-08-30 | Omp 기법에 따른 ldpc디코딩 장치 및 이를 위한 변환된 패리티 검사 행렬 생성 장치 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR101172228B1 (ko) |
CN (1) | CN102970045B (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101478466B1 (ko) * | 2013-10-24 | 2015-01-06 | 인하대학교 산학협력단 | 효율적인 1의 보수 체계를 이용한 저밀도 패리티 검사 복호 장치 및 그 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100881889B1 (ko) | 2004-07-19 | 2009-02-06 | 텍사스 인스트루먼츠 인코포레이티드 | 저밀도 패리티 검사(ldpc) 코드들에 대한 계층화된디코딩 방식의 개선 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009031805A2 (en) * | 2007-09-05 | 2009-03-12 | Lg Electronics Inc. | Method of transmitting and receiving a signal and apparatus for transmitting and receiving a signal |
CN101335592B (zh) * | 2008-08-04 | 2010-12-15 | 北京理工大学 | 基于矩阵分块的高速ldpc译码器实现方法 |
CN102025441B (zh) * | 2009-09-11 | 2013-07-31 | 北京泰美世纪科技有限公司 | Ldpc码校验矩阵的构造方法、ldpc码的编码方法和编码装置 |
-
2011
- 2011-08-30 KR KR1020110087201A patent/KR101172228B1/ko active IP Right Grant
-
2012
- 2012-01-19 CN CN201210017296.9A patent/CN102970045B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100881889B1 (ko) | 2004-07-19 | 2009-02-06 | 텍사스 인스트루먼츠 인코포레이티드 | 저밀도 패리티 검사(ldpc) 코드들에 대한 계층화된디코딩 방식의 개선 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101478466B1 (ko) * | 2013-10-24 | 2015-01-06 | 인하대학교 산학협력단 | 효율적인 1의 보수 체계를 이용한 저밀도 패리티 검사 복호 장치 및 그 방법 |
Also Published As
Publication number | Publication date |
---|---|
CN102970045A (zh) | 2013-03-13 |
CN102970045B (zh) | 2016-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101789959B1 (ko) | 구조적 ldpc의 인코딩 방법, 디코딩 방법, 인코딩 장치 및 디코딩 장치 | |
KR102347823B1 (ko) | 구조화된 ldpc의 부호화 및 복호화 방법 및 장치 | |
TWI415396B (zh) | 適用於根據里德-索羅門碼建立之低密度同位檢查碼的解碼器及解碼方法 | |
KR100809619B1 (ko) | 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법 | |
Yen et al. | A 5.79-Gb/s energy-efficient multirate LDPC codec chip for IEEE 802.15. 3c applications | |
CN102394660B (zh) | 分组交织的准循环扩展并行编码ldpc码的编码方法和编码器 | |
KR20110124659A (ko) | 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 계층적 복호 장치 및 방법 | |
KR102583534B1 (ko) | 통신 또는 방송 시스템에서 채널 부호화/복호화 방법 및 장치 | |
US9825650B2 (en) | Decoder architecture for cyclically-coupled quasi-cyclic low-density parity-check codes | |
KR20170124469A (ko) | 코드 디코딩 에러 정정 방법 및 장치 | |
JP4832447B2 (ja) | チャネルコードを用いた復号化装置及び方法 | |
KR20110087268A (ko) | 디코딩 회로 및 인코딩 회로 | |
CN109120275B (zh) | 一种编码方法及装置、计算机存储介质 | |
Roberts | Simulation and implementation design of multi-mode decoder for WiMAX and WLAN applications | |
Bocharova et al. | LDPC convolutional codes versus QC LDPC block codes in communication standard scenarios | |
KR101503653B1 (ko) | 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널 부호화/복호화 방법 및 장치 | |
KR101172228B1 (ko) | Omp 기법에 따른 ldpc디코딩 장치 및 이를 위한 변환된 패리티 검사 행렬 생성 장치 | |
Kanchetla et al. | Multi‐standard high‐throughput and low‐power quasi‐cyclic low density parity check decoder for worldwide interoperability for microwave access and wireless fidelity standards | |
KR20090064709A (ko) | Ldpc 부호의 패리티 검사 행렬 생성 장치 및 그방법과, 그를 이용한 ldpc 부/복호화 장치 | |
Nagarajan et al. | High-throughput VLSI implementations of iterative decoders and related code construction problems | |
CN102412845A (zh) | 基于欧氏几何的准循环低密度校验码的构造方法 | |
KR20130024737A (ko) | Omp 기법에 따른 ldpc 디코딩 장치 및 이를 위한 변환된 패리티 검사 행렬 생성 장치 | |
Leroux et al. | Turbo product code decoder without interleaving resource: From parallelism exploration to high efficiency architecture | |
CN108400836B (zh) | 一种多码率多码长qc-ldpc码的构造和编码方法 | |
KR101335419B1 (ko) | Qc-ldpc 복호 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
A107 | Divisional application of patent | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160705 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20180702 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20190624 Year of fee payment: 8 |