KR101335419B1 - Qc-ldpc 복호 방법 - Google Patents

Qc-ldpc 복호 방법 Download PDF

Info

Publication number
KR101335419B1
KR101335419B1 KR1020120034827A KR20120034827A KR101335419B1 KR 101335419 B1 KR101335419 B1 KR 101335419B1 KR 1020120034827 A KR1020120034827 A KR 1020120034827A KR 20120034827 A KR20120034827 A KR 20120034827A KR 101335419 B1 KR101335419 B1 KR 101335419B1
Authority
KR
South Korea
Prior art keywords
matrix
update
sub
ldpc
check node
Prior art date
Application number
KR1020120034827A
Other languages
English (en)
Other versions
KR20130112442A (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 KR1020120034827A priority Critical patent/KR101335419B1/ko
Publication of KR20130112442A publication Critical patent/KR20130112442A/ko
Application granted granted Critical
Publication of KR101335419B1 publication Critical patent/KR101335419B1/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/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/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/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations

Landscapes

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

Abstract

본 발명은 유럽의 차세대 방송 시스템인 DVB 2.0 시스템에서 핵심 수신 기술인 LDPC(Low Density Parity Check) 복호 방법에 관한 것으로, LDPC 복호 시 부행렬(sub-matrix)에 MDSM이 존재하는 경우 체크 노드 및 배리어블 노드 업데이트를 위해 외부 정보(extrinsic information)가 잘못된 값으로 매핑되는 문제의 해결을 통해, MDSM이 존재하는 특정한 병렬성(parallelism)을 유지하면서도 전송율(throughput) 감소 및 성능열화의 문제없이 복호가 가능하도록 한 효과가 있다.

Description

QC-LDPC 복호 방법{Method for decoding QC-LDPC code}
본 발명은 유럽의 차세대 방송 시스템인 DVB 2.0 시스템에서 핵심 수신 기술인 LDPC(Low Density Parity Check) 복호 방법에 관한 것이다. LDPC 부호는 선형 블록 부호로써 섀넌(Shannon)의 채널 용량 한계에 가장 근접한 성능을 보이는 오류정정 부호이며, DVB 2.0 시스템에서는 통신의 신뢰도을 높이기 위해 LDPC 부호와 BCH(Bose-Chaudhuri-Hocquenghem) 부호를 연접하여 사용한다.
통신/방송 시스템은 잡음채널을 통하여 전송되는 데이터를 신뢰할 수 있는 데이터로 보장하기 위해 채널 부호화/복호화 방식을 이용한다.
여기서 이용되는 채널 부호화/복호화 방식의 설계는 섀넌 한계(Shannon limit)에 근접하는 성능을 목표로 한다.
LDPC(Low Density Parity Check) 부호는 저밀도 패리티 검사행렬을 갖는 선형블록 부호이며, 부호의 최소 거리(minimum distance) 특성이 우수하여 현재 섀넌 용량에 가장 근접한 부호로 알려져 있다.
또한, LDPC 부호는 반복 복호(interative decoding) 알고리즘을 사용하는 오류정정 부호이다.
종래에는 이와 같은 LDPC 부호는 구현 복잡도로 인해 널리 사용되지 못했으나, 최근 반도체 구현 기술의 발전으로 인해 LDPC 부호기 및 복호기에 대한 연구가 활발히 진행 중에 있다.
LDPC 부호의 복호는 패리티 검사 행렬에 의해 체크 노드(check node, CN)와 배리어블 노드(variable node, VN) 사이에서 반복적인 메시지 전달과정을 통해 오류 정정 능력을 향상시킨다.
이때, LDPC 부호의 복호는 노드 사이의 메시지 전달과정에 따라 다양한 복호방법이 존재하며, 크게 경판정 복호 방식과 연판정 복호 방식으로 나눠진다.
특히, 연판정 복호 방식은 최적의 성능을 보이는 합곱 알고리즘(Sum-Product Algorithm, SPA)과 하드웨어 구현 복잡도가 낮은 최소합 알고리즘(Min-Sum Algorithm, MSA)이 대표적인데, 연산의 복잡도와 성능 간의 트레이드-오프에 따라 선별적으로 사용된다.
최소합 알고리즘 방식은 SNR(signal-to-noise ratio) 추정이 필요하지 않으며 체크 노드의 연산과정에 있어서 단순히 작은 값만을 찾기 때문에 입력값을 상당부분 클리핑(Clipping) 하여도 성능 저하가 거의 없다는 장점이 있지만, 합곱 알고리즘에 비해 0.5~1dB정도의 성능이 열화되는 문제점이 있다.
또한, LDPC 부호의 복호는 부호어 길이가 길어질수록 복호기의 하드웨어 복잡도가 급격히 증가하여 실시간 하드웨어 구현에 어려움이 있다.
LDPC 복호기를 하드웨어로 구현하는 방법은 복호연산 처리 단위에 따라 직렬(Serial), 부분병렬(Partially Parallel), 완전병렬(Fully Parallel) 구조로 구분된다.
직렬 구조의 LDPC 복호기는 하드웨어 복잡도는 작으나 복호속도가 느리다는 문제점이 있고, 완전병렬 구조의 LDPC 복호기는 복호속도는 빠르나 하드웨어 면적이 큰 문제점이 있다.
부분병렬 구조의 LDPC 복호기는 두 가지 방법을 절충한 방식이다.
LDPC 복호연산은 패리티 검사 행렬에 의해 이루어지며, 체크 노드의 행 연산과 배리어블 노드의 열 연산 간의 반복되는 복잡한 연산으로 오류 정정 능력을 향상시킨다. 여기서, 패리티 검사 행렬의 각 행은 서로 독립적인 연산이 가능하나 행 내부에서의 연산은 시간적인 종속관계를 가지고 있다. 부분병렬 구조의 LDPC 복호기는 이와 같은 특성을 이용하여 패리티 검사 행렬의 각 행을 효율적으로 분할하여 하드웨어 구현에 적합한 복호를 할 수 있다.
DVB 2.0 시스템 규격은 R(부호율, Code Rate)에 따라 패리티 검사 행렬을 M by N 사이즈로 정의하고 있으며, 여기서 N은 프레임 길이이며 M은 N-(R*N)으로 정의된다. 예를 들어, R이 3/4이며 노멀 프레임(normal frame)인 경우 패리티 검사 행렬은 16200 by 64800의 사이즈로 정의된다.
이와 같이, DVB 2.0 시스템은 높은 전송 신뢰도를 위해 코드워드가 매우 긴 특성(노멀 프레임 기준 코드워드 길이 : 64800비트)을 가지며, 이로 인해 LDPC 복호기 구현에 높은 복잡도를 요구한다.
따라서, DVB 2.0 시스템의 규격은 시프트 레지스터(shift register)를 사용하여 실시간으로 부호화가 가능하고 메모리 소모가 적으며 부분병렬 구조의 복호가 가능한 QC(Quasi-Cyclic)-LDPC 부호 형태로 부호화 되어 있다.
도 1은 부행렬(sub-matrix) 기반의 변형된 패리티 검사 행렬을 나타낸 도면이다. DVB 2.0 시스템의 규격은 QC-LDPC 부호 형태로 부호화된 결과 도 1과 같이 360 기본 단위의 부 행렬로 재구성된 패리티 검사 행렬을 만들어 부행렬 단위로 효율적인 부분병렬 구조의 복호가 가능하다.
도 2는 R=3/4인 경우의 부분 병렬 구조의 패리티 검사행렬 변형과정을 나타낸 도면이다. 도 2는 R=3/4인 패리티 검사행렬을 부행렬 360단위로 분할시킨 변형된 패리티 검사 행렬을 나타내며, 1의 성분을 대각선으로 표시하였다.
이러한 효율적인 부분병렬 구조의 복호가 가능하려면, 360 단위인 모든 부행렬의 가중치(weight)가 1이어야만 하는 한계점이 있다.
도 3은 R=3/4인 경우의 부분병렬 구조의 패리티 검사행렬에서 MDSM(Multi Diagonal Sub Matrix)이 존재함을 나타내는 도면이다.
도 3을 참조하면, DVB 2.0 규격에서 제공하는 패리티 검사행렬을 360 단위로 재구성 하였을 때, 부행렬 기준으로 다수개의 대각(diagonal) 성분이 존재함을 알 수 있다. 이러한 다수개의 대각 성분이 존재하면, 복호 중 업데이트를 위한 메모리 접근에 있어서 충돌이 발생하여 부분병렬 구조의 복호를 할 수 없는 문제점이 있다.
R=3/4 기준으로 두 개의 대각 성분을 가진 MDSM은 21개이며, 세 개의 대각 성분을 가진 MDSM은 1개 존재한다.
도 4는 360/180/120/90-병렬성(Parallelism) 적용에 따른 MDSM 현상을 나타내는 도면이다. 병렬성 적용은 부행렬의 기본 단위를 더욱 작게 하는 것을 의미한다. 즉, 병렬성 적용을 통해 부행렬의 기본 단위 사이즈는 감소한다.
도 4를 참조하면, 병렬성 적용에 따라 다수개의 대각 성분이 제거됨을 알 수 있다. 하지만, 병렬성 적용을 통해 전송율(throughput)이 저하된다는 문제점이 있다.
여기서 종래의 문헌, 특히 “C. Marchand, J.-B. Dor´e, L. Conde-Canencia, and E. Boutillon, “Conflict resolution by matrix reordering for DVB-T2 LDPC decoders,” in Global Telecommunications Conference, 2009. GLOBECOM ’09. IEEE (Honolulu, USA), Oct. 2009.”에서 도 5와 같은 패리티 검사행렬의 확장된 등가 모델을 제시하였다.
도 5는 패리티 검사행렬의 확장된 등가 모델을 나타내는 도면이다. 도 5를 참조하면, 종래의 패리티 검사행렬의 등가 모델 확장을 통해 부행렬에 하나의 대각 성분만 존재하도록 하는 시도가 있어왔음을 알 수 있다. 하지만, 이러한 종래의 패리티 검사행렬의 등가 모델 확장은 메모리 사용량 증가 및 전송율도 감소하는 문제점이 있다.
또한, 도 6은 확장된 패리티 검사행렬 등가 모델의 성능평가를 나타낸 도면이다. 도 6에서 나타난 바와 같이, 360 기준으로 부분병렬 구조의 복호를 수행했을 때와 대비하여 패리티 검사 행렬의 변형에 의한 0.1 dB 정도의 성능 열화가 발생하는 문제점이 있다.
본 발명의 목적은 DVB 2.0 시스템에서 하드웨어 구현이 용이한 부분병렬 구조의 복호를 위해 변형된 패리티 검사행렬에 대해 MDSM이 존재하는 경우, 업데이틀 위한 메모리 충돌 현상, 전송율 저하 및 성능 열화의 문제점을 해결한 QC-LDPC 복호 방법을 제공함에 있다.
상기의 목적을 달성하기 위한 QC-LDPC 복호화를 수행하는 방법에 있어서, QC-LDPC 부호화된 신호를 수신하는 단계; 수신한 상기 신호를 기초로 부행렬로 재구성된 패리티 검사 행렬을 생성하는 단계; 및 생성한 상기 부행렬에 MDSM(Multi Diagonal Sub Matrix)이 존재하는 경우 배리어블 노드 업데이트를 위해 체크 노드 업데이트의 결과를 정순서로 읽는 단계;를 포함하는 것을 특징으로 하는 QC-LDPC 복호 방법이 제공된다.
바람직하게는, 상기 배리어블 노드 업데이트 및 상기 체크 노드 업데이트는 최소합 알고리즘을 이용한 복호 기법에 기반하는 것을 특징으로 한다.
바람직하게는, 상기 배리어블 노드 업데이트의 결과 및 상기 체크 노드 업데이트의 결과는 독립된 로컬 메모리에 저장되는 것을 특징으로 한다.
바람직하게는, 상기 체크 노드 업데이트의 결과는 압축된 형태로 출력되는 것을 특징으로 한다.
바람직하게는, 생성한 상기 부행렬에 대각(Diagonal) 성분이 0번째 인덱스(index)부터 시작하게 존재하는 경우 상기 대각 성분을 첫 번째 순서로 배정하는 단계; 및 상기 부행렬에 존재하는 다음 대각 성분에 대해 배리어블 노드 업데이트를 위해 체크 노드 업데이트 결과를 정순서로 읽는 단계;를 포함하는 것을 특징으로 한다.
바람직하게는, 체크 노드 기준으로 상기 부행렬이 몇 번째 순서인지의 인덱스(index)를 저장하는 단계; 및 저장된 상기 인덱스를 이용하여 배리어블 노드 업데이트 시 부호 값을 선택하는 단계;를 포함하는 것을 특징으로 한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명은 LDPC 복호 시 부행렬(sub-matrix)에 MDSM이 존재하는 경우 체크 노드 및 배리어블 노드 업데이트를 위해 외부 정보(extrinsic information)가 잘못된 값으로 매핑되는 문제의 해결을 통해, MDSM이 존재하는 특정한 병렬성(parallelism)을 유지하면서도 전송율(throughput) 감소 및 성능열화의 문제없이 복호가 가능한 방법을 제공한다.
도 1은 부분행렬 기반의 변형된 패리티 검사 행렬을 나타낸 도면.
도 2는 R=3/4인 경우의 부분 병렬 구조의 패리티 검사행렬 변형과정을 나타낸 도면.
도 3은 R=3/4인 경우의 부분병렬 구조의 패리티 검사행렬에서 MDSM(Multi Diagonal Sub Matrix)이 존재함을 나타내는 도면.
도 4는 360/180/120/90-병렬성(Parallelism) 적용에 따른 MDSM 현상을 나타내는 도면.
도 5는 패리티 검사행렬의 확장된 등가 모델을 나타내는 도면.
도 6은 확장된 패리티 검사행렬 등가 모델의 성능평가를 나타낸 도면.
도 7은 본 발명의 일 실시예에 따른 LDPC 복호기의 구조도.
도 8은 MDSM(2-diagonal이 존재)이 존재하는 부행렬을 나타내는 도면.
도 9는 MDSM(3-diagonal이 존재)이 존재하는 부행렬을 나타내는 도면.
도 10은 MDSM이 존재하는 부행렬에 대해 체크 노드의 행방향 기준으로 정해진 순서를 나타낸 도면.
도 11은 로컬 메모리(CtoV Memory)로부터 배리어블 노드 업데이트 입력 값을 구하기 위해 롬 테이블(VN_NUM)을 이용한 구조도.
도 12는 본 발명에서 제안한 방법에 의해 DVB-C2 환경에서의 성능평가 결과를 나타내는 도면.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 한편, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다.
도 7은 본 발명의 일 실시예에 따른 LDPC 복호기의 구조도이다. 도 7을 참조하면, 본 발명의 일 실시예에 따른 LDPC 복호기는 초기 LLRs 처리 모듈(Initial LLRs Processing Module, ILPM), 배리어블 노드 유닛 그룹 모듈(VNU Group Module, VNUGM), 체크 노드 유닛 그룹 모듈(CNU Group Module, CNUGM), 스위칭 네트워크 모듈(Switching Network Module, SNM) 및 메인 컨트롤러(Main Controller)를 포함하도록 구성된다.
초기 LLRs 처리 모듈은 LLR(Log-Likelihood Ratio, intrinsic information) 입력 값을 메모리에 저장하며, 반복 복호시 마다 상기 LLR 입력 값을 배리어블 노드 유닛 모듈을 구성하는 배리어블 노드 모듈(VNM)에 읽어주는 역할을 수행한다.
배리어블 노드 유닛 그룹 모듈과 체크 노드 유닛 그룹 모듈은 최소합 알고리즘을 이용한 복호 기법에 기반하여 각 노드별 업데이트 연산을 수행하며, 업데이트된 값을 저장하고 읽기 위해 각각의 로컬 메모리를 포함한다.
스위칭 네트워크 모듈은 R(부호율, Code Rate)에 따라 정의되는 에지(edge) 연결 방식에 따라, 배리어블 노드(variable node, VN)와 체크 노드(check node, CN) 사이에 메세지를 전달하는 기능을 수행한다.
또한, 스위칭 네트워크 모듈은 마지막으로 정해진 최대 반복 횟수의 복호 과정이 완료되면 특정 블록(예를 들면, VtoC_HardDec 블록)에서 결정변수 값을 하드-결정(hard-decision)하여 최종 출력으로 한다. 여기서, 반복 복호를 수행하면서 업데이트 되는 값을 외부 정보(extrinsic information)라 한다.
360개의 부행렬(sub-matrix)로 분할된 패리티 검사행렬에 의한 복호 연산은 체크 노드의 행 연산과 배리어블 노드의 열 연산 간의 반복되는 외부 정보 값의 업데이트 과정으로 이뤄진다.
여기서, 최소합 알고리즘 적용에 따른 체크 노드 업데이트 결과는 비트의 절약을 위해 압축된 형태로 출력될 수 있다.
압축된 형태의 예를 들면, 체크 노드 업데이트 결과는 [Sign_prod(1-bit),Sign_tot(14-bit),pos1(4-bit),min1(5-bit),min2(5-bit)]와 같다. 이러한 체크 노드 업데이트 결과의 압축 형태는 행 방향에 대한 체크 노드 업데이트 결과를 한 번에 모두 표현할 수 있다.
배리어블 노드와 체크 노드 간 업데이트 과정은 서로의 결과 값인 외부 정보 값을 주고받으며 이뤄지게 되는데, 이것은 로컬 메모리를 이용하여 구현될 수 있다. 즉, 체크 노드 및 배리어블 노드의 업데이트에 필요한 값을 상대방에 해당하는 로컬 메모리로부터 각 해당 연산기로 읽어 오면서 360개 연산기의 순서에 맞게 입력 시퀀스에 대한 재정렬 작업을 수행함으로써 배리어블 노드와 체크 노드 간 업데이트 과정이 수행될 수 있다.
하지만, 도 3에 대해 설명한 바와 같이 기본 360 단위인 부행렬에 MDSM(Multi Diagonal Sub Matrix)이 존재하게 될 경우, 각 노드에서 업데이트 연산을 수행하는데 있어서 크게 2가지 측면에서 문제가 발생한다.
첫째, 체크 노드 업데이트 출력의 압축된 형태로 인해 체크 노드 업데이트 시 필요한 값을 잘못 전달하게 되는 문제가 발생한다. 예를 들어 도 8과 같이, 체크 노드 업데이트 결과가 검은색 순서인 1과 2가 동시에 로컬 메모리(CtoV Memory)에 쓰이게 되면, 배리어블 노드 업데이트 시 역순의 순서대로 데이터 버스를 재정렬 후 읽어오게 되어 모두 min2 값으로 입력되는 문제가 발생된다. 여기서, 체크 노드 업데이트 결과를 [x1] 순서로 메모리 뱅크에 쓰게 되면 배리어블 노드 업데이트를 위해서는 [359-x1+1]의 위치의 뱅크부터 시작하게끔 재정렬 후 읽어오게 된다.
둘째, 배리어블 노드 업데이트 시 로컬 메모리(CtoV Memory)에 저장되어 있는 [Sign_prod Sign_tot pos1 min1 min2] 값으로부터 해당 입력값을 찾는 과정이 필요하며, 이 값의 부호는 Sign_prod*Sign_tot, 절대값은 min1과 min2중에서 선택하여 결정된다. 여기서, Sign_tot 값은 14개의 부호 비트가 (R=3/4 기준) 존재한다고 했을 때, 그림 10에서 보듯이 체크 노드의 행방향 기준으로 몇 번째 부행렬인지에 따라 부호비트 위치가 결정되고 최종적으로 Sign_prod*Sign_tot(해당 위치의 비트) 연산에 의해 계산된다. 그러나 MDSM이 존재하는 경우, 같은 부행렬에 다수개의 대각 성분이 존재하므로 같은 [Sign_prod Sign_tot pos1 min1 min2] 값으로부터 대각 성분의 수 만큼의 배리어블 노드 업데이트를 위한 입력값을 계산해야 한다. 이때 min1 위치를 나타내는 pos1이 다수개의 대각 성분 중 어느 대각 성분인지 구분하지 못해 정확한 부호 값을 선택할 수 없게 되는 문제점이 있다.
도 8은 MDSM(2-diagonal이 존재)이 존재하는 부행렬을 나타내는 도면이다.
본 발명은 도 8에서와 같이, MDSM이 존재하는 부행렬일 경우 배리어블 노드 업데이트를 위해 로컬 메모리(CtoV Memory)에서 읽어오는 순서가 배리어블 노드 업데이트 기준에서 정순서로 입력되도록 순서를 조정하여 MDSM으로 인한 절대값을 잘못 선택하는 첫번째 문제를 해결한다.
도 9는 MDSM(3-diagonal이 존재)이 존재하는 부행렬을 나타내는 도면이다.
본 발명은 도 9와 같이 부행렬에 3개의 대각 성분이 존재하면서 정확하게 0 인덱스(index)부터 시작하는 대각 성분이 존재할 경우에는 0 부터 시작하는 대각 성분을 첫 번째 순서로 배정한 다음 나머지 2개의 대각 성분에 대한 순서를 위와 같은 방법으로 정한 다음 최종 순서를 결정하게 된다.
또한, 배리어블 노드 업데이트 시 같은 [Sign_prod Sign_tot pos1 min1 min2] 값으로 부터 대각 성분의 수 만큼의 배리어블 노드 업데이트를 위한 입력값 연산이 수행되어야 하며 이 또한, MDSM으로 인해 잘못된 부호를 선택하게 한다. 따라서, 체크 노드 기준으로 몇 번째 부행렬인지의 인덱스를 ROM 테이블(VN_NUM)에 추가적으로 저장하여 배리어블 노드 업데이트 시 정확한 위치의 부호 값을 선택할 수 있게 함으로써 두번째 문제를 해결한다.
도 10은 MDSM이 존재하는 부행렬에 대해 체크 노드의 행방향 기준으로 정해진 순서를 나타낸 도면이며, 도 11은 로컬 메모리(CtoV Memory)로부터 배리어블 노드 업데이트 입력 값을 구하기 위해 롬 테이블(VN_NUM)을 이용한 구조도이다.
도 11에 따른 롬 테이블(VN_NUM)은 도 10에서와 같이 체크 노드의 행방향 기준으로 정해진 순서가 저장되어 있다.
도 12는 본 발명에서 제안한 방법에 의해 DVB-C2 환경에서의 성능평가 결과를 나타내는 도면이다.
도 12를 보면 본 발명에 따른 기법을 이용하여 LDPC 복호화를 수행하는 경우 MDSM으로 인한 성능열화가 존재하지 않는다.
따라서, 본 발명은 LDPC 복호 시 부행렬에 MDSM이 존재하는 경우 체크 노드 및 배리어블 업데이트를 위해 외부 정보(extrinsic information)가 잘못된 값으로 매핑되는 문제를 해결하였으며, 배리어블 노드 업데이트를 위해 CNU에 포함된 로컬 메모리(CtoV_Memory)에서 읽어오는 순서가 배리어블 노드 업데이트 기준에서 정순서로 입력되도록 순서의 조정 및 체크 노드 기준으로 몇 번째 부행렬인지의 인덱스(index)를 롬 (VN_NUM)에 추가적으로 저장하여 부행렬에 MDSM이 존재하더라고 정확한 값을 각 연산기로 매핑되게 하였다.
이는 종래의 기술에서는 부행렬에 MDSM이 사라지게 하여 문제를 해결한 것과 달리, MDSM이 존재하는 특정한 사이즈의 병렬성(parallelism)을 유지하면서도 전송율(throughput) 감소 및 성능열화 의 문제없이 복호가 가능한 방법을 제안하였다.
이상에서는 본 발명의 바람직한 실시예 및 응용예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예 및 응용예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.

Claims (6)

  1. QC-LDPC 복호화를 수행하는 방법에 있어서,
    QC-LDPC 부호화된 신호를 수신하는 단계;
    수신한 상기 신호를 기초로 부행렬로 재구성된 패리티 검사 행렬을 생성하는 단계;
    상기 부행렬을 기초로 체크 노드 업데이트와 배리어블 노드 업데이트를 수행하는 단계; 및
    상기 체크 노드 업데이트와 상기 배리어블 노드 업데이트의 결과 값을 기초로 복호값을 결정하는 단계를 포함하되,
    상기 업데이트를 수행하는 단계는, 상기 부행렬에 MDSM(Multi Diagonal Sub Matrix)이 존재하는 경우 상기 배리어블 노드 업데이트를 위해 상기 체크 노드 업데이트의 결과를 정순서로 읽는 것을 특징으로 하는 QC-LDPC 복호 방법.
  2. 제1항에 있어서,
    상기 배리어블 노드 업데이트 및 상기 체크 노드 업데이트는 최소합 알고리즘을 이용한 복호 기법에 기반하는 것
    을 특징으로 하는 QC-LDPC 복호 방법.
  3. 제1항에 있어서,
    상기 배리어블 노드 업데이트의 결과 및 상기 체크 노드 업데이트의 결과는 독립된 로컬 메모리에 저장되는 것
    을 특징으로 하는 QC-LDPC 복호 방법.
  4. 제2항에 있어서,
    상기 체크 노드 업데이트의 결과는 압축된 형태로 출력되는 것
    을 특징으로 하는 QC-LDPC 복호방법.
  5. 제1항에 있어서,
    상기 업데이트를 수행하는 단계는,
    생성한 상기 부행렬에 대각(Diagonal) 성분이 0번째 인덱스(index)부터 시작하게 존재하는 경우 상기 대각 성분을 첫 번째 순서로 배정하는 단계; 및
    상기 부행렬에 존재하는 다음 대각 성분에 대해 상기 배리어블 노드 업데이트를 위해 상기 체크 노드 업데이트 결과를 정순서로 읽는 단계;를 포함하는 것
    을 특징으로 하는 QC-LDPC 복호 방법.
  6. 제1항에 있어서,
    상기 업데이트를 수행하는 단계는,
    체크 노드 기준으로 상기 부행렬이 몇 번째 순서인지의 인덱스(index)를 저장하는 단계; 및
    저장된 상기 인덱스를 이용하여 상기 배리어블 노드 업데이트 시 부호 값을 선택하는 단계;를 포함하는 것
    을 특징으로 하는 QC-LDPC 복호 방법.
KR1020120034827A 2012-04-04 2012-04-04 Qc-ldpc 복호 방법 KR101335419B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120034827A KR101335419B1 (ko) 2012-04-04 2012-04-04 Qc-ldpc 복호 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120034827A KR101335419B1 (ko) 2012-04-04 2012-04-04 Qc-ldpc 복호 방법

Publications (2)

Publication Number Publication Date
KR20130112442A KR20130112442A (ko) 2013-10-14
KR101335419B1 true KR101335419B1 (ko) 2013-12-05

Family

ID=49633448

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120034827A KR101335419B1 (ko) 2012-04-04 2012-04-04 Qc-ldpc 복호 방법

Country Status (1)

Country Link
KR (1) KR101335419B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106877879A (zh) * 2016-12-30 2017-06-20 北京联想核芯科技有限公司 数据处理的方法以及编码器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090265600A1 (en) 2005-08-10 2009-10-22 Mitsubishi Electric Corporation Test matrix generating method, encoding method, decoding method, communication apparatus, communication system, encoder and decoder
KR20110070730A (ko) * 2009-12-18 2011-06-24 한국전자통신연구원 효율적인 ldpc 고속 부호화 방법 및 이를 이용하는 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090265600A1 (en) 2005-08-10 2009-10-22 Mitsubishi Electric Corporation Test matrix generating method, encoding method, decoding method, communication apparatus, communication system, encoder and decoder
KR20110070730A (ko) * 2009-12-18 2011-06-24 한국전자통신연구원 효율적인 ldpc 고속 부호화 방법 및 이를 이용하는 장치

Also Published As

Publication number Publication date
KR20130112442A (ko) 2013-10-14

Similar Documents

Publication Publication Date Title
KR102151739B1 (ko) Ldpc 부호의 부호화 장치, 그의 부호화 방법, 복호화 장치 및 그의 복호화 방법
CN104868925B (zh) 结构化ldpc码的编码方法、译码方法、编码装置和译码装置
CN107370490B (zh) 结构化ldpc的编码、译码方法及装置
JP5506878B2 (ja) 低密度パリティ検査符号のパリティ検査行列生成方法
US8572463B2 (en) Quasi-cyclic LDPC encoding and decoding for non-integer multiples of circulant size
US8671323B2 (en) High throughput decoder architecture for low-density parity-check convolutional codes
JP5122480B2 (ja) 高速な符号化方法および復号方法ならびに関連する装置
KR20080072392A (ko) 통신 시스템에서 신호 수신 장치 및 방법
EP2991231A1 (en) Multilevel encoding and multistage decoding
KR20160002946A (ko) 10gbase-t 시스템에서 ldpc 인코더의 방법 및 장치
KR101865068B1 (ko) 저밀도 패리티 검사 부호를 사용하는 시스템에서 신호 맵핑/디맵핑 장치 및 방법
US10727869B1 (en) Efficient method for packing low-density parity-check (LDPC) decode operations
KR20150003127A (ko) 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널 부호화/복호화 방법 및 장치
KR101335419B1 (ko) Qc-ldpc 복호 방법
Marchand et al. Conflict resolution by matrix reordering for DVB-T2 LDPC decoders
US11075650B1 (en) Sub-matrix reduction for quasi-cyclic LDPC codes
KR20090093778A (ko) 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널부호/복호 장치 및 방법
KR20090026709A (ko) 블록 길이가 가변적인 저밀도 패리티 검사 부호를 이용한채널 부호화/복호화 방법 및 장치
JP6789446B2 (ja) 送信機、受信機、通信システム、符号化率の変更方法、制御回路およびプログラム
Janvars et al. Hard decision decoding of single parity turbo product code with N-level quantization
KR20140145977A (ko) 패리티 검사 부호의 부호화 장치, 그의 부호화 방법, 복호화 장치 및 그의 복호화 방법
KR101192920B1 (ko) 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널부호/복호 장치 및 방법
CN107863971B (zh) 一种针对ptn的ldpc码校验矩阵的构造方法及***
KR101354731B1 (ko) 통신 시스템에서 연접 저밀도 생성 행렬 부호 부호화/복호장치 및 방법
Kumar et al. Performance evaluation and complexity analysis of re-jagged AR4JA code over AWGN channel

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee