KR20150031568A - 디지털 비디오 방송 시스템에서 LDPC(Low Density Parity Check) 복호기 및 LDPC 복호기의 복호화 방법 - Google Patents

디지털 비디오 방송 시스템에서 LDPC(Low Density Parity Check) 복호기 및 LDPC 복호기의 복호화 방법 Download PDF

Info

Publication number
KR20150031568A
KR20150031568A KR20130110918A KR20130110918A KR20150031568A KR 20150031568 A KR20150031568 A KR 20150031568A KR 20130110918 A KR20130110918 A KR 20130110918A KR 20130110918 A KR20130110918 A KR 20130110918A KR 20150031568 A KR20150031568 A KR 20150031568A
Authority
KR
South Korea
Prior art keywords
algorithm
decoding
log
likelihood
value
Prior art date
Application number
KR20130110918A
Other languages
English (en)
Other versions
KR102241416B1 (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 KR1020130110918A priority Critical patent/KR102241416B1/ko
Priority to US14/477,177 priority patent/US10153783B2/en
Publication of KR20150031568A publication Critical patent/KR20150031568A/ko
Application granted granted Critical
Publication of KR102241416B1 publication Critical patent/KR102241416B1/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
    • H03M13/1165QC-LDPC codes as defined for the digital video broadcasting [DVB] specifications, e.g. DVB-Satellite [DVB-S2]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • 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
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • 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
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • H03M13/112Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule with correction functions for the min-sum rule, e.g. using an offset or a scaling factor
    • 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
    • H03M13/1125Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using different domains for check node and bit node processing, wherein the different domains include probabilities, likelihood ratios, likelihood differences, log-likelihood ratios or log-likelihood difference pairs
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • 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/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/658Scaling by multiplication or division
    • 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/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/6583Normalization other than scaling, e.g. by subtraction

Landscapes

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

Abstract

디지털 비디오 방송 시스템에서 LDPC 복호기 및 LDPC 복호기의 복호화 방법이 개시된다. 디맵퍼(Demapper)에서 출력된 비트 각각의 로그-우도비(Log-Likelihood Ratio; LLR) 값과 변수 노드 및 검사 노드 간에 주고받는 로그-우도비 메시지를 저장하는 메모리; 및 LDPC 부호의 부호율(code rate)에 기초하여 제1 알고리즘 및 제2 알고리즘 중 어느 하나의 복호화 알고리즘을 선택하고, 상기 선택된 복호화 알고리즘을 이용하여 상기 로그-우도비 메시지에 대한 복호를 수행하는 노드 프로세서를 포함하는 LDPC(Low Density Parity Check) 복호기를 제공할 수 있다.

Description

디지털 비디오 방송 시스템에서 LDPC(Low Density Parity Check) 복호기 및 LDPC 복호기의 복호화 방법{APPARATUS AND METHOD FOR DECODING LOW DENSITY PARITY CHECK(LDPC) CODES IN DIGITAL VIDEO BROADCASTING(DVB) SYSTEM}
아래의 실시예들은 디지털 방송 시스템에서 LDPC(Low Density Parity Check) 복호기 및 LDPC 복호기의 복호화 방법에 관한 것이다.
디지털 비디오 방송(DIGITAL VIDEO BROADCASTING; DVB) 시스템은 다양한 응용 분야를 갖는다. 예를 들어, DVB-S2의 경우 위성 방송의 송수신 규격을 정의한 표준 규격이고, DVB-T2는 지상파 방송, DVB-C2는 케이블 방송의 송수신 규격을 정의한 표준 규격이다. 또한, DVB-NGH(Next Generation Handheld)는 차세대 휴대 방송 규격을 정의한 표준 규격이다. LDPC(Low Density Parity Check) 부호는 앞서 언급한 다양한 형태의 디지털 방송 규격에서 공통적으로 이용될 수 있다.
일 실시예에 따르면, LDPC(Low Density Parity Check) 복호기는 디맵퍼(Demapper)에서 출력된 비트 각각의 로그-우도비(Log-Likelihood Ratio; LLR) 값과 변수 노드 및 검사 노드 간에 주고받는 로그-우도비 메시지를 저장하는 메모리; 및 LDPC 부호의 부호율(code rate)에 기초하여 제1 알고리즘 및 제2 알고리즘 중 어느 하나의 복호화 알고리즘을 선택하고, 상기 선택된 복호화 알고리즘을 이용하여 상기 로그-우도비 메시지에 대한 복호를 수행하는 노드 프로세서를 포함한다.
상기 노드 프로세서는 상기 로그-우도비 메시지에 대한 덧셈 연산을 수행하는 변수 노드 프로세서; 및 상기 부호율(code rate)과 미리 설정된 임계치를 비교하고, 상기 비교 결과를 기초로 선택된 어느 하나의 복호화 알고리즘을 이용하여 상기 로그-우도비 메시지에 대한 복호를 수행하는 검사 노드 프로세서를 포함할 수 있다.
상기 제1 알고리즘은 F(x)-based sum-product 복호화 알고리즘을 포함하고, 상기 제2 알고리즘은 Min-sum based 복호화 알고리즘을 포함할 수 있다.
상기 검사 노드 프로세서는 상기 부호율(code rate)과 미리 설정된 임계치를 비교하고, 상기 비교 결과를 기초로 상기 제1 알고리즘 및 상기 제2 알고리즘 중 어느 하나의 복호화 알고리즘을 선택하는 제어기; 상기 비교 결과, 상기 부호율(code rate)이 상기 미리 설정된 임계치보다 같거나 작으면, 상기 제1 알고리즘을 이용하여 상기 로그-우도비 메시지에 대한 복호를 수행하는 제1 복호기; 및 상기 비교 결과, 상기 부호율(code rate)이 상기 미리 설정된 임계치보다 크면, 상기 제2 알고리즘을 이용하여 상기 로그-우도비 메시지에 대한 복호를 수행하는 제2 복호기를 포함할 수 있다.
상기 제1 복호기 및 상기 제2 복호기는 서로 상보적으로 상기 복호를 수행할 수 있다.
상기 제1 복호기는 d개의 로그-우도비 메시지들을 수신하고, 상기 d 개의 로그-우도비 메시지들에 대한 함수 값 F(x) = lncot(x/2)을 연산하여 하나씩 축적한 후, d 시간만큼 지연시킨 후 하나씩 차감하여 F-1(x)을 연산하여 출력함으로써 상기 로그-우도비 메시지에 대한 복호를 수행할 수 있다.
상기 제2 복호기는 d개의 로그-우도비 메시지들을 수신하고, 상기 d 개의 로그-우도비 메시지들에 대한 첫 번째 최소값 및 두 번째 최소값 중 선택된 어느 하나의 최소값을 제1 값으로 나누거나 또는 상기 선택된 어느 하나의 최소값에 제2 값을 더하여 출력함으로써 상기 로그-우도비 메시지에 대한 복호를 수행할 수 있다.
일 실시예에 따르면, LDPC(Low Density Parity Check) 복호기의 복호화 방법은 디맵퍼(Demapper)에서 출력된 비트 각각의 로그-우도비(Log-Likelihood Ratio; LLR) 값과 변수 노드 및 검사 노드 간에 주고받는 로그-우도비 메시지를 저장하는 단계; 및 LDPC 부호의 부호율(code rate)에 기초하여 제1 알고리즘 및 제2 알고리즘 중 선택된 복호화 알고리즘을 이용하여 상기 로그-우도비 메시지에 대한 복호를 수행하는 단계를 포함한다.
상기 복호를 수행하는 단계는 상기 부호율(code rate)과 미리 설정된 임계치를 비교하는 단계; 상기 비교 결과를 기초로 상기 제1 알고리즘 및 상기 제2 알고리즘 중 어느 하나의 복호화 알고리즘을 선택하는 단계; 및 상기 선택된 상기 복호화 알고리즘을 이용하여 상기 로그-우도비 메시지에 대한 복호를 수행하는 단계를 포함할 수 있다.
상기 제1 알고리즘은 F(x)-based sum-product 복호화 알고리즘을 포함하고, 상기 제2 알고리즘은 Min-sum based 복호화 알고리즘을 포함할 수 있다.
상기 비교 결과를 기초로 상기 제1 알고리즘 및 상기 제2 알고리즘 중 어느 하나의 복호화 알고리즘을 선택하는 단계는 상기 부호율(code rate)이 상기 미리 설정된 임계치보다 같거나 작으면, 상기 제1 알고리즘을 상기 복호화 알고리즘으로 선택하는 단계를 포함하고, 상기 로그-우도비 메시지에 대한 복호를 수행하는 단계는 상기 제1 알고리즘을 이용하여 상기 로그-우도비 메시지에 대한 복호를 수행하는 단계를 포함할 수 있다.
상기 제1 알고리즘을 이용하여 상기 로그-우도비 메시지에 대한 복호를 수행하는 단계는 d개의 로그-우도비 메시지들을 수신하는 단계; 상기 d 개의 로그-우도비 메시지들에 대한 함수 값 F(x) = lncot(x/2)을 연산하는 단계; 상기 연산 결과를 축적하여 총합하는 단계; 상기 총합 결과를 d 시간만큼 지연시키는 단계; 상기 지연된 총합 결과에서 로그-우도비 메시지들에 대한 함수 값 F(x)을 하나씩 차감하는 단계; 상기 차감한 결과를 이용하여 F-1(x)을 연산하는 단계; 및 상기 d개의 로그-우도비 메시지들에 대한 F-1(x) 연산 결과를 출력하는 단계를 포함할 수 있다.
상기 비교 결과를 기초로 상기 제1 알고리즘 및 상기 제2 알고리즘 중 어느 하나의 복호화 알고리즘을 선택하는 단계는 상기 부호율(code rate)이 상기 미리 설정된 임계치보다 크면, 상기 제2 알고리즘을 상기 복호화 알고리즘으로 선택하는 단계를 포함하고, 상기 로그-우도비 메시지에 대한 복호를 수행하는 단계는 상기 제2 알고리즘을 이용하여 상기 로그-우도비 메시지에 대한 복호를 수행하는 단계를 포함할 수 있다.
상기 제2 알고리즘을 이용하여 상기 로그-우도비 메시지에 대한 복호를 수행하는 단계는 d개의 로그-우도비 메시지들을 수신하는 단계; 상기 d 개의 로그-우도비 메시지들에 대한 첫 번째 최소값 및 두 번째 최소값을 찾는 단계; 첫 번째 최소값 및 두 번째 최소값 중 어느 하나의 최소값을 선택하는 단계; 상기 선택한 최소값을 제1 값으로 나누거나 또는 상기 선택된 최소값에 제2 값을 더하는 단계; 및 상기 d개의 로그-우도비 메시지들에 대한 F-1(x) 연산 결과를 출력하는 단계를 포함할 수 있다.
상기 제1 알고리즘 및 상기 제2 알고리즘은 서로 상보적으로 선택되어 상기 복호를 수행할 수 있다.
도 1은 일반적인 디지털 비디오 방송 시스템의 구조를 나타낸 도면이다.
도 2는 일 실시예에 따른 LDPC 복호기의 구조를 나타낸 도면이다.
도 3은 일 실시예에 따른 디지털 방송 시스템에서 변수 노드와 검사 노드 간에 주고받는 메시지를 나타낸 도면이다.
도 4는 일 실시예에 따른 노드 프로세서의 구조를 나타낸 블록도이다.
도 5는 다른 실시예에 따른 노드 프로세서의 구조를 나타낸 블록도이다.
도 6은 일 실시예에 따른 LDPC(Low Density Parity Check) 복호기의 복호화 방법을 나타낸 플로우 차트이다.
도 7은 일 실시예에 따른 LDPC 복호기의 노드 프로세서에서 수행되는 F(x)-based sum-product 복호화 알고리즘에 따른 복호화 방법을 나타낸 플로우 차트이다.
도 8은 일 실시예에 따른 LDPC 복호기의 노드 프로세서에서 수행되는 min-sum based 복호화 알고리즘에 따른 복호화 방법을 나타낸 플로우 차트이다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 일실시예들에 의해 제한되거나 한정되는 것은 아니다. 또한, 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일반적인 디지털 방송 시스템의 구조를 나타낸 도면이다.
도 1을 참조하면, 일반적인 디지털 방송 시스템의 베이스밴드(baseband) 부분을 나타낸 도면을 살펴볼 수 있다.
디지털 방송 시스템은 직교 주파수 분할 변조 방식 (OFDM)의 통신 방식을 기본으로 하며, 송신단에서 첫 번째 블록인 소스(Source) 블록(105)은 데이터의 비트 스트림을 생성한다.
소스 코딩(Source coding) 블록(110)은 소스(Source) 블록(105)에서 생성한 데이터의 비트 스트림에서 불필요한 정보를 압축한다.
채널 코딩(Channel coding) 블록(115)은 채널(135)에서 발생될 오류에 대비해 미리 데이터 보호를 위한 추가적인 패리티 비트를 추가한다.
맵퍼(Mapper) 블록(120)은 패리티가 추가된 데이터 비트 스트림을 변조 심볼 스트림으로 매핑한다. 이때, 변조 방법으로는 주로 BPSK(Binary Phase Shift Keying), QPSK(Quadrature phase-shift keying), 16 QAM(Quadrature Amplitude Modulation) 등이 이용될 수 있다.
IDFT 블록(125)은 맵퍼(Mapper) 블록(120)으로부터 직렬로 들어오는 변조된 심볼 스트림을 병렬로 입력받아 시간 도메인의 값으로 전환한다.
송신단에서 마지막 블록인 Add CP 블록(130)은 OFDM 심볼간의 심볼 간 간섭(Inter-symbol interference; ISI)를 피하기 위해 심볼 스트림의 마지막 몇 개의 샘플들을 앞 쪽으로 복사한다. 이렇게 복사된 샘플들은 '싸이클릭 프리픽스(Cyclic Prefix; CP)'라고 불린다.
송신단에서 완성된 시간 도메인의 OFDM 심볼은 채널(135)을 통과한다. 이 때, 채널에서는 각 신호 샘플에 페이딩 팩터(fading factor)가 곱해지고 백색 가우시안 잡음(white Gaussian noise)이 더해진다.
수신단의 첫번째 블록인 Remove CP 블록(140)은 송신단의 Add CP 블록(130)에서 추가된 싸이클릭 프리픽스(CP)를 먼저 제거한다.
DFT 블록(145)은 싸이클릭 프리픽스(CP)가 제거된 심볼 스트림을 다시 주파수 도메인의 심볼 스트림으로 전환시킨다.
이때, 수신단이 수신한 심볼 스트림들 중 어느 하나의 심볼은 아래의 <수학식 1>과 같이 표현할 수 있다.
Figure pat00001
여기서,
Figure pat00002
는 수신단이 수신한 심볼이고,
Figure pat00003
는 채널에서 곱해진 페이딩 팩터(fading factor),
Figure pat00004
는 송신단에서 변조된 송신 심볼을, 그리고
Figure pat00005
은 채널에서 더해진 잡음에 해당된다.
채널 추정(Channel estimator) 블록(150)은 DFT 블록(145)의 출력에서 나온 각각의 주어진 심볼에 대하여 페이딩 팩터(fading factor) 값을 추정한다.
디맵퍼(Demmaper) 블록(155)은 주어진 심볼의 각각의 비트에 해당하는 로그-우도비(Log-Likelihood Ratio; LLR) 값을 구한다. 예를 들어, QPSK 변조 방법이 사용된 경우, 디맵퍼(Demmaper) 블록(155)은 하나의 심볼
Figure pat00006
에 대하여 두 개의 비트에 해당하는 로그-우도비(LLR) 값을 생성하여 채널 디코딩(Channel decoding) 블록(160)으로 전달한다.
채널 디코딩(Channel decoding) 블록(160)은 각 비트에 대한 로그-우도비(LLR) 값을 이용하여 실제 각 비트 값을 복호한다.
채널 디코딩(Channel decoding) 블록(160)은 디지털 방송 시스템에서는 LDPC 복호기 또는 BCH 복호기로 구성될 수 있으며, 일 실시예에서는 LDPC 복호기를 이용하는 경우를 설명한다.
채널 디코딩(Channel decoding) 블록(160)에서 복호된 각 정보 비트 스트림은 소스 디코딩(Source decoding) 블록(165)에서 압축된 정보 비트 스트림으로부터 원래의 정보 비트 스트림으로 복구되어 마지막 싱크(Sink) 블록(170)으로 전달된다.
디지털 방송 시스템은 일반 무선 통신 시스템과는 달리 고화질의 영상 데이터를 전송하기 때문에 매우 신뢰도가 높은 채널 부호기/복호기를 필요로 한다. 채널 부호기/복호기의 성능을 높이기 위해서는 크게 두 가지 방법이 사용될 수 있다. 첫 번째 방법은 블록 길이가 매우 긴 부호를 사용하여 부호어들 간의 최소 거리를 증가시키는 것이다. 디지털 방송 시스템에서는 길이 64800 비트와 16200 비트의 LDPC 부호를 채택하여 사용할 수 있다. 이는 음성이나 소량의 데이터 통신을 위주로 하는 일반적인 무선 통신 시스템에서 사용되는 블록 길이인 수 백 비트에서 수 천 비트의 채널 부호에 비해 매우 길이가 긴 채널 부호를 사용하는 것이다.
두 번째 방법은 부호율(code rate)이 매우 낮은 부호를 사용하는 것이다.
하지만 이 방법은 한정된 주파수와 지원해야 하는 데이터 쓰루풋(throughput) 등을 고려할 때 많은 제약을 가지므로 디지털 방송 시스템에서는 데이터 전송의 신뢰도를 높이기 위해 첫 번째 방법이 주로 사용된다. 두 번째 방법은 채널 환경이 열악한 경우에 추가적으로 사용되어 신뢰도를 높일 수 있다.
일 실시예에서 고려하는 디지털 방송 시스템의 LDPC 복호기와 같이 16200/64800 비트 길이의 LDPC 부호를 사용하는 경우, 복호기의 복잡도가 성능에 큰 영향을 끼칠 수 있다. LDPC 복호기의 복잡도를 좌우하는 두 가지 큰 요소는 메모리 크기와 노드 프로세서가 될 수 있다.
여기서, LDPC 부호는 오류 정정 부호의 일종으로서 완전한 전송을 보장할 수는 없지만 정보 유실 확률을 가능한 한 원하는 만큼 적게 할 수 있다. LDPC 부호는 `Shannon limit'에 가장 근접하는 오류 정정 부호로서,데이터 전송율을 일정 수준 이상 유지할 수 있다.
LDPC 부호는 해밍(Hamming) 부호에서 사용하고 있는 것과 유사한 패리티 체크 행렬(parity-check matrix)을 사용하고, 이때, 패리티 체크 행렬은 희소(sparsity) 조건에 따라 불규칙적으로 생성되는 소위 '희소 행렬(Sparse matrix)'에 해당할 수 있다.
도 2는 일 실시예에 따른 LDPC 복호기의 구조를 나타낸 도면이다.
도 2를 참조하면, 일 실시예에 따른 LDPC(Low-Density Parity-Check) 복호기는 메모리(210) 및 노드 프로세서(230)를 포함할 수 있다.
메모리(210)는 디맵퍼(demapper)에서 출력된 각 비트의 로그-우도비(LLR) 값을 저장하며, 변수 노드 프로세서(233)와 검사 노드 프로세서(236) 간에 주고 받는 로그-우도비 메시지(들)를 저장할 수 있다. 이때, 로그-우도비 메시지는 검사 노드와 변수 노드 간의 에지를 통해 전달되는 메시지로서, '로그-우도비 에지 메시지(LLR edge message)'라고도 불릴 수 있다.
노드 프로세서(230)는 LDPC 부호의 부호율(code rate)에 기초하여 제1 알고리즘 및 제2 알고리즘 중 어느 하나의 복호화 알고리즘을 선택하고, 선택된 복호화 알고리즘을 이용하여 로그-우도비 메시지에 대한 복호를 수행할 수 있다.
여기서, '부호율(code rate)'은 조직 부호에서 한 블록 중의 정보점의 개수 k와 한 블록 길이 n과의 비를 나타내는 값으로, k/n와 같이 나타낼 수 있다.
제1 알고리즘은 F(x)-based sum-product 복호화 알고리즘을 포함하고, 제2 알고리즘은 Min-sum 복호화 알고리즘을 포함할 수 있다.
노드 프로세서(230)는 크게 변수 노드 프로세서(233)와 검사 노드 프로세서(236)로 나누어질 수 있다.
변수 노드 프로세서(233)는 로그-우도비 메시지에 대하여 덧셈 연산과 같이 간단한 연산을 수행할 수 있다.
검사 노드 프로세서(236)는 부호율(code rate)과 미리 설정된 임계치를 비교하고, 비교 결과를 기초로 선택된 어느 하나의 복호화 알고리즘을 이용하여 로그-우도비 메시지에 대한 복호를 수행할 수 있다.
노드 프로세서(230)의 구체적인 구성에 대하여는 도 4를 참조하여 설명한다.
일 실시예에서는 블록 크기가 큰 채널 부호의 로그-우도비 (LLR)와 복호 메시지 등을 저장하기 위해 용량이 큰 메모리(210)를 사용할 수 있다.
또한, 노드 프로세서(230)는 변수 노드 프로세서(233)와 검사 노드 프로세서(236)를 각각 구현할 수도 있고, 두 가지 연산이 공통된 부분을 하나의 모듈로 합쳐서 구현할 수도 있다. 이 때에는 하나의 모듈이 모드가 바뀔 때 마다 변수 노드 프로세서 또는 검사 노드 프로세서로 동작할 수 있다.
변수 노드 프로세서(233)의 연산은 에지 메시지가 로그-우도비 메시지인 경우에는 단순 덧셈 또는 축적기(accumulator)에 해당하는 연산을 수행하여, 검사 노드 프로세서(236)의 연산에 비해 상대적으로 적은 복잡도를 갖는다. 변수 노드 프로세서(233)에서 수행하는 연산은 아래의 <수학식 2>와 같이 나타낼 수 있다.
아래의 수학식들에서 나타나는 기호의 의미는 도 3을 함께 참조하기로 한다.
Figure pat00007
여기서,
Figure pat00008
Figure pat00009
번째 반복 복호 회수에서 변수 노드
Figure pat00010
에서 검사 노드
Figure pat00011
로의 로그-우도비(LLR) 메시지이다. 그리고,
Figure pat00012
는 검사 노드
Figure pat00013
에서 변수 노드
Figure pat00014
로의 로그-우도비(LLR) 메시지이다.
또한,
Figure pat00015
는 디맵퍼(demapper)에서 수신된 초기 로그-우도비(LLR) 메시지이고,
Figure pat00016
는 수신 심볼,
Figure pat00017
는 잡음 분산, 함수
Figure pat00018
은 주변 노드들의 집합을 나타낸다.
잘 알려진 스케쥴링인 방법인 레이어드 BP (layered Belief Propagation) 스케쥴링을 사용하는 경우, 변수 노드 프로세서(233)는 단순히 메모리로 대체될 수도 있다.
검사 노드 프로세서(236)는 변수 노드 프로세서(233)에 비해 상대적으로 복잡한 연산을 수행한다.
에지 메시지의 형태에 따라 함수가 조금씩 변하지만 대부분 많이 사용하는 로그-우도비(LLR) 메시지를 사용한다고 가정하면 검사 노드 프로세서(236)가 수행하는 연산은 아래의 <수학식 3>과 같이 나타낼 수 있다.
Figure pat00019
<수학식 3>의 경우, tanh(x)를 이용하고, 곱셈 연산이 들어가기 때문에 연산의 복잡도가 증가될 수 있다. BP 알고리즘의 특성상 한 노드에서 특정 에지(edge)로 나가는 메시지를 계산할 때에는 그 에지로 들어오는 메시지를 제외하고 연산을 수행한다.
예를 들어, 도 3에서 변수 노드 V2와 같이 4개의 에지가 한 노드에 연결되어 있을 때 tanh(x)의 곱셈으로 이루어진 연산을 수행하기 위해서는 각각 3개의 값을 곱하는 연산을 총 4번 해 주어야 한다. 이는 에지가 늘어날수록 연산량이 기하 급수적으로 늘어남을 의미한다.
따라서, 좀 더 쉬운 구현을 위하여 아래의 <수학식 4>와 같이 변형된 수학식이 사용될 수 있다.
Figure pat00020
여기서,
Figure pat00021
이다.
<수학식 4>에서는 역함수 F-1(x)가 본함수 F(x)와 일치하기 때문에 하나의 수학식 계산을 통해 두 함수의 값을 모두 구할 수 있으며, 또한 곱하기 연산이 사라져서 연산량이 줄어든다. 더 나아가, <수학식 4>에서는 모든 입력 값들을 다 더한 후 한 개씩 빼는 연산을 통해 전체 덧셈의 수를 에지 수의 대략 두 배 정도로 줄일 수 있어서 연산량을 대폭 감소시킬 수 있다.
위의 <수학식 4>와 같은 알고리즘을 'F(x)-based sum-product 알고리즘'이라 부를 수 있다.
F(x)-based sum-product 알고리즘은 Fixed point 구현 시에 비트(bit) 수를 충분히 하지 않으면 성능에 큰 열화가 발생할 수 있다. 그 이유는 F(x)를 그래프로 그려보면 1/x의 그래프처럼 0에서 무한대로 급격하게 수렴하는 값을 갖기 때문이다. 따라서, x 값을 양자화(quantize) 할 때 x가 0에 가까워 짐에 따라 F(x) 값의 변화가 심해져서 양자화(quantization) 오류가 크게 발생할 수 있다.
물론, 비트(bit)의 개수를 충분히 주면 x 값의 간격이 작아지므로 문제가 적어 지지만 구현 복잡도가 증가할 수 있다.
도 3은 일 실시예에 따른 디지털 방송 시스템에서 변수 노드와 검사 노드 간에 주고받는 메시지를 나타낸 도면이다.
도 3의 310을 참조하면, 변수 노드들(V1, V2, V3, V4, V5)과 검사 노드들(C1, C2, C3, C4)이 에지(edge)를 통해 로그-우도비(LLR) 메시지들을 주고받는 것을 살펴볼 수 있다.
330은 변수 노드로 입력되는 로그-우도비 메시지들을 나타낸다.
330에서 변수 노드로 입력되는 로그-우도비 메시지들은 아래의 <수학식 5>와 같이 나타낼 수 있다.
Figure pat00022
여기서,
Figure pat00023
는 변수 노드(v)에서 검사 노드(c)로 j번째 에지를 따라 전송되는 메시지를 나타내고,
Figure pat00024
는 검사 노드(c)에서 변수 노드(v)로 i번째 에지를 따라 전송되는 메시지를 나타낸다.
Figure pat00025
는 채널로부터 수신된 로그-우드비 메시지를 나타내고,
Figure pat00026
Figure pat00027
는 변수 노드 (또는 검사 노드)의 디그리(degree), 다시 말해, 각 변수 노드 또는 검사 노드와 연결된 이웃 노드의 개수를 나타낸다.
또한, 350은 검사 노드로 입력되는 로그-우도비 메시지들을 나타낸다.
350에서 검사 노드로 입력되는 로그-우도비 메시지들은 아래의 <수학식 6>과 같이 나타낼 수 있다.
Figure pat00028
여기서,
Figure pat00029
는 검사 노드
Figure pat00030
에 연결된 에지의 집합을 나타내고,
Figure pat00031
Figure pat00032
에서 j번째 에지를 제외한 집합을 나타낸다.
도 4는 일 실시예에 따른 노드 프로세서의 구조를 나타낸 블록도이다.
도 4를 참조하면, 일 실시예에 따른 노드 프로세서(400)는 제어기(410), 제1 복호기(430) 및 제2 복호기(450)를 포함한다.
제어기(410)는 LDPC 부호의 부호율(code rate)과 미리 설정된 임계치를 비교하고, 비교 결과를 기초로 제1 알고리즘 및 제2 알고리즘 중 어느 하나의 복호화 알고리즘을 선택할 수 있다.
제1 복호기(430)는 제어기(410)의 비교 결과, 부호율(code rate)이 미리 설정된 임계치보다 같거나 작으면, 제1 알고리즘을 이용하여 LDPC 부호어, 다시 말해 로그-우도비 메시지에 대한 복호를 수행할 수 있다. 제1 복호기(430)는 제1 알고리즘인 F(x)-based sum-product 복호화 알고리즘을 수행하는 'F(x)-based sum-product 복호기'일 수 있다.
예를 들어, 검사 노드에 에지가 d개 연결되어 있는 경우, 제1 복호기(430)는 d개의 로그-우도비 메시지들을 수신하고, d 개의 로그-우도비 메시지들에 대한 함수 값 F(x) = lncot(x/2)을 연산하여 하나씩 축적한 후, d 시간만큼 지연시킨 후 하나씩 차감하여 F-1(x)을 연산하여 출력함으로써 로그-우도비 메시지에 대한 복호를 수행할 수 있다.
보다 구체적인 제1 복호기(430)의 동작은 도 7을 참조할 수 있다.
제2 복호기(450)는 제어기(410)의 비교 결과, 부호율(code rate)이 미리 설정된 임계치보다 크면, 제2 알고리즘을 이용하여 LDPC 부호어, 다시 말해 로그-우도비 메시지에 대한 복호를 수행할 수 있다. 제2 복호기(450)는 제2 알고리즘인 Min-sum based 복호화 알고리즘을 수행하는 'Min-sum based 복호기'일 수 있다.
예를 들어, 검사 노드에 에지가 d개 연결되어 있는 경우, 제2 복호기(450)는 d개의 로그-우도비 메시지들을 수신하고, d 개의 로그-우도비 메시지들에 대한 첫 번째 최소값 및 두 번째 최소값 중 선택된 어느 하나의 최소값을 제1 값으로 나누거나 또는 선택된 어느 하나의 최소값에 제2 값을 더하여 출력함으로써 로그-우도비 메시지에 대한 복호를 수행할 수 있다.
보다 구체적인 제2 복호기(450)의 동작은 도 8을 참조할 수 있다.
제1 복호기(430) 및 제2 복호기(450)는 서로 상보적으로 복호를 수행할 수 있다. 제1 복호기(430) 및 제2 복호기(450)은 각각 변수 노드 프로세스 및 검사 노드 프로세서를 포함할 수 있다.
도 5는 다른 실시예에 따른 노드 프로세서의 구조를 나타낸 블록도이다.
도 5를 참조하면, 다른 실시예에 따른 노드 프로세서(500)는 제어기(510), 검사 노드 프로세서 1(520), 검사 노드 프로세서 2(530), 변수 노드 프로세서(540) 및 메모리(550)를 포함할 수 있다. 이때, 메모리(550)는 도 5와 같이 노드 프로세서 내에 포함될 수도 있고, 노드 프로세서의 외부에 위치할 수도 있다.
제어기(510)는 부호율(code rate)과 미리 설정된 임계치를 비교하고, 비교 결과를 기초로 제1 알고리즘 및 제2 알고리즘 중 어느 하나의 복호화 알고리즘을 선택할 수 있다.
검사 노드 프로세서 1(520)는 도 4의 F(x)-based sum-product 복호기(430)의 내부에 포함된 검사 노드 프로세서와 마찬가지로, 제어기(510)의 비교 결과, 부호율(code rate)이 미리 설정된 임계치보다 같거나 작으면, F(x)-based sum-product 알고리즘을 이용하여 로그-우도비 메시지에 대한 복호를 수행할 수 있다.
검사 노드 프로세서 2(530)는 도 4의 Min-sum based 복호기(450)의 내부에 포함된 검사 노드 프로세서와 마찬가지로, 제어기(510)의 비교 결과, 부호율(code rate)이 미리 설정된 임계치보다 크면, Min-sum based 알고리즘을 이용하여 로그-우도비 메시지에 대한 복호를 수행할 수 있다.
변수 노드 프로세서(540)는 로그-우도비 메시지에 대한 덧셈 연산을 수행할 수 있으며, 검사 노드 프로세서 1(520) 및 검사 노드 프로세서 2(530)에 의해 공유될 수 있다.
도 6은 일 실시예에 따른 LDPC(Low Density Parity Check) 복호기의 복호화 방법을 나타낸 플로우 차트이다.
도 6을 참조하면, LDPC 복호기는 변수 노드 및 검사 노드 간에 주고받는 로그-우도비 메시지를 저장할 수 있다(610). LDPC 복호기는 디맵퍼(Demapper)에서 출력된 비트 각각의 로그-우도비(Log-Likelihood Ratio; LLR) 값 또한 저장할 수 있다.
LDPC 복호기는 LDPC 부호의 부호율(code rate)에 기초하여 제1 알고리즘 및 제2 알고리즘 중 선택된 복호화 알고리즘을 이용하여 로그-우도비 메시지에 대한 복호를 수행할 수 있다(630).
단계 630에서, LDPC 복호기는 부호율(code rate)과 미리 설정된 임계치를 비교하고, 비교 결과를 기초로 제1 알고리즘 및 제2 알고리즘 중 어느 하나의 복호화 알고리즘을 선택한 후, 선택된 복호화 알고리즘을 이용하여 로그-우도비 메시지에 대한 복호를 수행할 수 있다. 제1 알고리즘은 F(x)-based sum-product 복호화 알고리즘을 포함하고, 제2 알고리즘은 Min-sum based 복호화 알고리즘을 포함할 수 있다.
예를 들어, LDPC 복호기는 부호율(code rate)이 미리 설정된 임계치보다 같거나 작으면, F(x)-based sum-product 복호화 알고리즘을 선택하고, F(x)-based sum-product 복호화 알고리즘을 이용하여 로그-우도비 메시지에 대한 복호를 수행할 수 있다. LDPC 복호기가 F(x)-based sum-product 복호화 알고리즘을 이용하여 로그-우도비 메시지에 대한 복호를 수행하는 방법은 아래의 도 7을 참조한다.
또한, LDPC 복호기는 부호율(code rate)이 미리 설정된 임계치보다 크면, Min-sum based 복호화 알고리즘을 선택하고, Min-sum based 복호화 알고리즘을 이용하여 로그-우도비 메시지에 대한 복호를 수행할 수 있다. LDPC 복호기가 Min-sum based 복호화 알고리즘을 이용하여 로그-우도비 메시지에 대한 복호를 수행하는 방법은 아래의 도 8을 참조한다.
도 7은 일 실시예에 따른 LDPC 복호기의 노드 프로세서에서 수행되는 F(x)-based sum-product 복호화 알고리즘에 따른 복호화 방법을 나타낸 플로우 차트이다.
도 7을 참조하면, 검사 노드에 에지가 d개 연결되어 있는 경우에 노드 프로세서가 F(x)-based sum-product 복호화 알고리즘을 수행하는 과정을 살펴볼 수 있다.
노드 프로세서는 각 검사 노드를 통해 입력된 d개의 로그-우도비 메시지들을 수신할 수 있다(710).
노드 프로세서는 각각의 d 개의 로그-우도비 메시지들에 대한 함수 값 F(x) = lncot(x/2) 연산을 수행할 수 있다(720).
노드 프로세서는 단계 720의 연산 결과를 축적기(accumulator)에서 하나씩 축적하여 총합할 수 있다(730).
노드 프로세서는 단계 730의 총합 결과를 d clock 시간만큼 지연시킬 수 있다(750). 단계 750에서 총합 결과를 d clock 시간만큼 지연(delay)시키는 데에는 d 개의 레지스터가 이용될 수 있다.
노드 프로세서는 750에서 d clock 시간만큼 지연된 총합 결과에서 로그-우도비 메시지들에 대한 함수 값 F(x)을 하나씩 차감(740)한 후, 차감 결과를 이용하여 F-1(x) 연산을 수행할 수 있다(760).
노드 프로세서는 d개의 로그-우도비 메시지들에 대한 F-1(x) 연산 결과를 출력할 수 있다(770).
여기서, 총합 결과를 d clock 시간만큼 지연시키는 이유는 로그-우도비 메시지들의 입력이 모두 d개이므로 모든 입력이 다 축적된 후 총합에서 한 개씩 입력 값을 차감하기 위한 것이다. 따라서, 노드 프로세서는 처음 d clock에서는 로그-우도비 메시지 입력을 한 개씩 축적하고, 그 다음 d clock에서는 단계 740과 같이 한 데이터씩 총합에서 차감한 후, 단계 760과 같이 F-1(x)을 통해 다시 d개의 로그-우도비 메시지들로 변환할 수 있다. 마지막으로 노드 프로세서는 최종 d clock 동안 d개의 로그-우도비 메시지들을 출력할 수 있다.
상술한 과정에서 F(x)를 사용하는 연산 역시 F(x)값을 저장해야 하고, 비트 수가 늘어날 수록 복잡도가 증가할 수 있다. 따라서, 일 실시예에서는 검사 노드의 메시지 갱신 식을 아래의 <수학식 7>와 같이 간단화하여 표현할 수 있다.
아래의 <수학식 7>는 에지의 수가 3개일 때 한 에지로 출력되는 메시지를 계산하기 위한 검사 노드의 갱신식이다.
Figure pat00033
여기서 m1, m2는 입력되는 로그-우도비 메시지들을 나타내고, y는 출력되는 로그-우도비 메시지들을 나타낸다. 또한, sgn(x)는 사인 값을 취하는 함수로 x가 0보다 크거나 같으면 '+1'의 값을 갖고, 0보다 작으면 '-1'의 값을 갖는다.
<수학식 7>에서 두 번째 등호는 로그-우도비 메시지의 입력이 두 개일 경우에만 적용되는 간단화 식이다.
입력되는 로그-우도비 메시지의 개수가 세 개 이상의 경우에는 두 개씩 차례로 연산을 해야 하므로 위 F(x)를 이용하여 한 번에 더하고 하나씩 빼는 연산에 비해서 연산량이 증가한다. 하지만 이 식은 잘 알려진 min-sum 알고리즘을 유도하기 위해 사용될 수 있다.
<수학식 7>에서 세 번째 등호는 'min-sum 알고리즘' 또는 '수정된 min-sum 알고리즘'을 나타낸 식이다.
두 번째 등호의 식에서 더해지는 항인 ln 함수는 m1, m2에 따라 결정되는 값이다. 이를 간략화 하여 세 번째 등호의 식에서처럼 1보다 큰 α값으로 나누어 주거나, m1, m2에 따라 상수 값 β를 더하게 된다.
이 때, β가 0이면 'Normalized min-sum 알고리즘'이라 부르며, α가 1이면 'offset min-sum 알고리즘'이라 부른다.
Normalized min-sum 알고리즘의 경우에는 대략 1.2~1.3 정도의 α값으로 나누어 주게 되지만 채널 환경이나 부호율에 따라 약간씩 달라질 수 있다.
아래의 <수학식 8>은 offset min-sum 알고리즘의 일 예에 따른 β값을 나타낸 식이다.
Figure pat00034
Offset min-sum 알고리즘의 경우, 성능이 일반적으로 normalized min-sum 알고리즘보다 우수하나 더해지는 β값이 두 번째 등호식의 ln 함수와 같이 m1, m2에 따라 결정될 수 있다. 그러므로, 입력이 여러 개로 증가할 때에는 연산을 직렬적으로 여러 번 수행해야 하므로 복잡도가 ln 함수를 사용할 때보다는 줄어들지만 크게 감소하지는 않는다.
반면, normalized min-sum 알고리즘의 경우, 입력이 여러 개인 경우에도 첫 번째 최소값(minimum)과 두 번째 최소값만을 구한 후 이를 공유해서 사용하고, α값 또한 보통 같은 값으로 고정하여 사용하여 복잡도를 줄일 수 있다.
도 8은 일 실시예에 따른 LDPC 복호기의 노드 프로세서에서 수행되는 min-sum based 복호화 알고리즘에 따른 복호화 방법을 나타낸 플로우 차트이다.
도 8을 참조하면, 노드 프로세서가 수정된 min-sum 알고리즘을 포함한 min-sum 알고리즘을 수행하는 과정을 살펴볼 수 있다.
노드 프로세서는 d개의 로그-우도비 메시지들의 입력을 수신(810)하면, 첫 번째 최소값 및 두 번째 최소값을 찾을 수 있다(820). 이때, 노드 프로세서가 첫 번째 최소값뿐만 아니라 두 번째 최소값도 찾는 이유는 d개의 에지들 중 첫 번째 최소값에 해당하는 로그-우도비 메시지가 입력되는 에지로의 출력에서는 첫 번째 최소값이 아닌 두 번째 최소값을 이용하여 출력 값을 계산하기 때문이다.
물론, 노드 프로세서는 첫 번째 최소값에 해당하는 로그-우도비 메시지가 입력되는 에지 이외의 에지로의 출력에는 첫 번째 최소값을 이용하여 출력 값을 계산할 수 있다.
노드 프로세서는 최소값 선택기를 이용하여 첫 번째 최소값 및 두 번째 최소값 중 어느 하나의 최소값을 선택할 수 있다(830). 단계 830에서 노드 프로세서는 주어진 에지가 첫 번째 최소값이 들어오는 에지인가 아닌가를 판단하여 첫 번째 또는 두 번째 최소값을 선택할 수 있다.
노드 프로세서는 단계 830에서 선택한 어느 하나의 최소값을 제1 값(예를 들어, 알파(α) 값)으로 나누거나 또는 선택된 최소값에 제2 값(예를 들어, 베타(β) 값)을 더할 수 있다(840). 단계 840에서 노드 프로세서는 알고리즘에 따라서 구해진 최소값을 제1 값(예를 들어, 알파(α) 값)으로 나누어 주거나 최소값에 제2 값(예를 들어, 베타(β) 값)을 더할 수 있다.
노드 프로세서는 단계 840을 거친 d개의 로그-우도비 메시지들을 출력할 수 있다(850).
이상에서 설명된 장치는 하드웨어 구성 요소, 소프트웨어 구성 요소, 및/또는 하드웨어 구성 요소 및 소프트웨어 구성 요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성 요소는, 예를 들어, 프로세서, 컨트롤러, ALU(Arithmetic Logic Unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
210: 메모리
230: 노드 프로세서
233: 변수 노드 프로세서
236: 검사 노드 프로세서

Claims (16)

  1. 디맵퍼(Demapper)에서 출력된 비트 각각의 로그-우도비(Log-Likelihood Ratio; LLR) 값과 변수 노드 및 검사 노드 간에 주고받는 로그-우도비 메시지를 저장하는 메모리; 및
    LDPC 부호의 부호율(code rate)에 기초하여 제1 알고리즘 및 제2 알고리즘 중 어느 하나의 복호화 알고리즘을 선택하고, 상기 선택된 복호화 알고리즘을 이용하여 상기 로그-우도비 메시지에 대한 복호를 수행하는 노드 프로세서
    를 포함하는 LDPC(Low Density Parity Check) 복호기.
  2. 제1항에 있어서,
    상기 노드 프로세서는
    상기 로그-우도비 메시지에 대한 덧셈 연산을 수행하는 변수 노드 프로세서; 및
    상기 부호율(code rate)과 미리 설정된 임계치를 비교하고, 상기 비교 결과를 기초로 선택된 어느 하나의 복호화 알고리즘을 이용하여 상기 로그-우도비 메시지에 대한 복호를 수행하는 검사 노드 프로세서
    를 포함하는 LDPC 복호기.
  3. 제1항에 있어서,
    상기 제1 알고리즘은 F(x)-based sum-product 복호화 알고리즘을 포함하고,
    상기 제2 알고리즘은 Min-sum 복호화 알고리즘을 포함하는 LDPC 복호기.
  4. 제1항에 있어서,
    상기 검사 노드 프로세서는
    상기 부호율(code rate)과 미리 설정된 임계치를 비교하고, 상기 비교 결과를 기초로 상기 제1 알고리즘 및 상기 제2 알고리즘 중 어느 하나의 복호화 알고리즘을 선택하는 제어기;
    상기 비교 결과, 상기 부호율(code rate)이 상기 미리 설정된 임계치보다 같거나 작으면, 상기 제1 알고리즘을 이용하여 상기 로그-우도비 메시지에 대한 복호를 수행하는 제1 복호기; 및
    상기 비교 결과, 상기 부호율(code rate)이 상기 미리 설정된 임계치보다 크면, 상기 제2 알고리즘을 이용하여 상기 로그-우도비 메시지에 대한 복호를 수행하는 제2 복호기
    를 포함하는 LDPC 복호기.
  5. 제4항에 있어서,
    상기 제1 복호기 및 상기 제2 복호기는 서로 상보적으로 상기 복호를 수행하는 LDPC 복호기.
  6. 제4항에 있어서,
    상기 제1 복호기는
    d개의 로그-우도비 메시지들을 수신하고, 상기 d 개의 로그-우도비 메시지들에 대한 함수 값 F(x) = lncot(x/2)을 연산하여 하나씩 축적한 후, d 시간만큼 지연시킨 후 하나씩 차감하여 F-1(x)을 연산하여 출력함으로써 상기 로그-우도비 메시지에 대한 복호를 수행하는 LDPC 복호기.
  7. 제4항에 있어서,
    상기 제2 복호기는
    d개의 로그-우도비 메시지들을 수신하고, 상기 d 개의 로그-우도비 메시지들에 대한 첫 번째 최소값 및 두 번째 최소값 중 선택된 어느 하나의 최소값을 제1 값으로 나누거나 또는 상기 선택된 어느 하나의 최소값에 제2 값을 더하여 출력함으로써 상기 로그-우도비 메시지에 대한 복호를 수행하는 LDPC 복호기.
  8. 디맵퍼(Demapper)에서 출력된 비트 각각의 로그-우도비(Log-Likelihood Ratio; LLR) 값과 변수 노드 및 검사 노드 간에 주고받는 로그-우도비 메시지를 저장하는 단계;
    LDPC 부호의 부호율(code rate)에 기초하여 제1 알고리즘 및 제2 알고리즘 중 선택된 복호화 알고리즘을 이용하여 상기 로그-우도비 메시지에 대한 복호를 수행하는 단계
    를 포함하는 LDPC(Low Density Parity Check) 복호기의 복호화 방법.
  9. 제8항에 있어서,
    상기 복호를 수행하는 단계는
    상기 부호율(code rate)과 미리 설정된 임계치를 비교하는 단계;
    상기 비교 결과를 기초로 상기 제1 알고리즘 및 상기 제2 알고리즘 중 어느 하나의 복호화 알고리즘을 선택하는 단계; 및
    상기 선택된 상기 복호화 알고리즘을 이용하여 상기 로그-우도비 메시지에 대한 복호를 수행하는 단계
    를 포함하는 LDPC 복호기의 복호화 방법.
  10. 제8항에 있어서,
    상기 제1 알고리즘은 F(x)-based sum-product 복호화 알고리즘을 포함하고,
    상기 제2 알고리즘은 Min-sum 복호화 알고리즘을 포함하는 LDPC 복호기의 복호화 방법.
  11. 제9항에 있어서,
    상기 비교 결과를 기초로 상기 제1 알고리즘 및 상기 제2 알고리즘 중 어느 하나의 복호화 알고리즘을 선택하는 단계는
    상기 부호율(code rate)이 상기 미리 설정된 임계치보다 같거나 작으면, 상기 제1 알고리즘을 상기 복호화 알고리즘으로 선택하는 단계
    를 포함하고,
    상기 로그-우도비 메시지에 대한 복호를 수행하는 단계는
    상기 제1 알고리즘을 이용하여 상기 로그-우도비 메시지에 대한 복호를 수행하는 단계
    를 포함하는 LDPC 복호기의 복호화 방법.
  12. 제11항에 있어서,
    상기 제1 알고리즘을 이용하여 상기 로그-우도비 메시지에 대한 복호를 수행하는 단계는
    d개의 로그-우도비 메시지들을 수신하는 단계;
    상기 d 개의 로그-우도비 메시지들에 대한 함수 값 F(x) = lncot(x/2)을 연산하는 단계;
    상기 연산 결과를 축적하여 총합하는 단계;
    상기 총합 결과를 d 시간만큼 지연시키는 단계;
    상기 지연된 총합 결과에서 로그-우도비 메시지들에 대한 함수 값 F(x)을 하나씩 차감하는 단계;
    상기 차감한 결과를 이용하여 F-1(x)을 연산하는 단계; 및
    상기 d개의 로그-우도비 메시지들에 대한 F-1(x) 연산 결과를 출력하는 단계
    를 포함하는 LDPC 복호기의 복호화 방법.
  13. 제9항에 있어서,
    상기 비교 결과를 기초로 상기 제1 알고리즘 및 상기 제2 알고리즘 중 어느 하나의 복호화 알고리즘을 선택하는 단계는
    상기 부호율(code rate)이 상기 미리 설정된 임계치보다 크면, 상기 제2 알고리즘을 상기 복호화 알고리즘으로 선택하는 단계
    를 포함하고,
    상기 로그-우도비 메시지에 대한 복호를 수행하는 단계는
    상기 제2 알고리즘을 이용하여 상기 로그-우도비 메시지에 대한 복호를 수행하는 단계
    를 포함하는 LDPC 복호기의 복호화 방법.
  14. 제13항에 있어서,
    상기 제2 알고리즘을 이용하여 상기 로그-우도비 메시지에 대한 복호를 수행하는 단계는
    d개의 로그-우도비 메시지들을 수신하는 단계;
    상기 d 개의 로그-우도비 메시지들에 대한 첫 번째 최소값 및 두 번째 최소값을 찾는 단계;
    첫 번째 최소값 및 두 번째 최소값 중 어느 하나의 최소값을 선택하는 단계;
    상기 선택한 최소값을 제1 값으로 나누거나 또는 상기 선택된 최소값에 제2 값을 더하는 단계; 및
    상기 d개의 로그-우도비 메시지들에 대한 F-1(x) 연산 결과를 출력하는 단계
    를 포함하는 LDPC 복호기의 복호화 방법.
  15. 제8항에 있어서,
    상기 제1 알고리즘 및 상기 제2 알고리즘은
    서로 상보적으로 선택되어 상기 복호를 수행하는 LDPC 복호기.
  16. 제8항 내지 제15항 중에서 어느 하나의 항의 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.
KR1020130110918A 2013-09-16 2013-09-16 디지털 비디오 방송 시스템에서 LDPC(Low Density Parity Check) 복호기 및 LDPC 복호기의 복호화 방법 KR102241416B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130110918A KR102241416B1 (ko) 2013-09-16 2013-09-16 디지털 비디오 방송 시스템에서 LDPC(Low Density Parity Check) 복호기 및 LDPC 복호기의 복호화 방법
US14/477,177 US10153783B2 (en) 2013-09-16 2014-09-04 Low density party check (LDPC) decoder and method of decoding performed by LDPC decoder in digital video broadcasting (DVB) system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130110918A KR102241416B1 (ko) 2013-09-16 2013-09-16 디지털 비디오 방송 시스템에서 LDPC(Low Density Parity Check) 복호기 및 LDPC 복호기의 복호화 방법

Publications (2)

Publication Number Publication Date
KR20150031568A true KR20150031568A (ko) 2015-03-25
KR102241416B1 KR102241416B1 (ko) 2021-04-16

Family

ID=52669137

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130110918A KR102241416B1 (ko) 2013-09-16 2013-09-16 디지털 비디오 방송 시스템에서 LDPC(Low Density Parity Check) 복호기 및 LDPC 복호기의 복호화 방법

Country Status (2)

Country Link
US (1) US10153783B2 (ko)
KR (1) KR102241416B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015098037A1 (ja) * 2013-12-27 2015-07-02 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 送信装置、受信装置、送信方法および受信方法
US10090957B2 (en) * 2014-10-06 2018-10-02 Nokia Of America Corporation Cost effective network interference cancellation for wireless networks
US10778371B2 (en) * 2016-11-02 2020-09-15 Qualcomm Incorporated Deeply-pipelined high-throughput LDPC decoder architecture
WO2019053165A1 (en) * 2017-09-15 2019-03-21 Telefonaktiebolaget Lm Ericsson (Publ) MODULATION TECHNIQUES DEPENDING ON THE CODING RATE

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100174965A1 (en) * 2009-01-07 2010-07-08 Intel Corporation Ldpc codes with small amount of wiring
US7900126B2 (en) * 2006-09-28 2011-03-01 Via Telecom, Inc. Systems and methods for reduced complexity LDPC decoding
US8078933B2 (en) * 2005-05-18 2011-12-13 The Governors Of The University Of Alberta Decoder for low-density parity-check convolutional codes

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6938196B2 (en) 2001-06-15 2005-08-30 Flarion Technologies, Inc. Node processors for use in parity check decoders
WO2003021440A1 (en) * 2001-09-01 2003-03-13 Bermai, Inc. Decoding architecture for low density parity check codes
US7350130B2 (en) * 2002-08-15 2008-03-25 Broadcom Corporation Decoding LDPC (low density parity check) code with new operators based on min* operator
US7770090B1 (en) * 2005-09-14 2010-08-03 Trident Microsystems (Far East) Ltd. Efficient decoders for LDPC codes
WO2007107805A1 (en) 2006-03-17 2007-09-27 Nokia Corporation Method for operating a software radio receiver and software radio receiver
US8230312B1 (en) * 2008-01-09 2012-07-24 Marvell International Ltd. Iterative decoder memory arrangement
US8719670B1 (en) * 2008-05-07 2014-05-06 Sk Hynix Memory Solutions Inc. Coding architecture for multi-level NAND flash memory with stuck cells
US8321772B1 (en) * 2008-10-20 2012-11-27 Link—A—Media Devices Corporation SOVA sharing during LDPC global iteration
US8601352B1 (en) * 2009-07-30 2013-12-03 Apple Inc. Efficient LDPC codes
US8650459B1 (en) * 2011-02-16 2014-02-11 Sk Hynix Memory Solutions Inc. Soft input, soft ouput mappers and demappers for block codes
US8595590B1 (en) * 2012-12-03 2013-11-26 Digital PowerRadio, LLC Systems and methods for encoding and decoding of check-irregular non-systematic IRA codes
US9191256B2 (en) * 2012-12-03 2015-11-17 Digital PowerRadio, LLC Systems and methods for advanced iterative decoding and channel estimation of concatenated coding systems
US8935598B1 (en) * 2013-03-12 2015-01-13 Pmc-Sierra Us, Inc. System and method for adaptive check node approximation in LDPC decoding

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8078933B2 (en) * 2005-05-18 2011-12-13 The Governors Of The University Of Alberta Decoder for low-density parity-check convolutional codes
US7900126B2 (en) * 2006-09-28 2011-03-01 Via Telecom, Inc. Systems and methods for reduced complexity LDPC decoding
US20100174965A1 (en) * 2009-01-07 2010-07-08 Intel Corporation Ldpc codes with small amount of wiring

Also Published As

Publication number Publication date
US10153783B2 (en) 2018-12-11
KR102241416B1 (ko) 2021-04-16
US20150082116A1 (en) 2015-03-19

Similar Documents

Publication Publication Date Title
JP5122551B2 (ja) 対数尤度マッパのスケールファクタを最適化するブロードキャストレシーバ及び方法
US7395487B2 (en) Common circuitry supporting both bit node and check node processing in LDPC (Low Density Parity Check) decoder
US8880973B1 (en) Detector-decoder interface for GF(q) iterative decoding
KR100804793B1 (ko) 저밀도 패러티 검사 복호기에서의 검사 노드 갱신 방법
Fritzmann et al. Analysis of error-correcting codes for lattice-based key exchange
US9369152B2 (en) Systems and methods for decoding with late reliability information
EP2302803A1 (en) Node processors for use in parity check decoders
US10498363B2 (en) Low density parity check decoder using binary logarithm and decoding method thereof
KR101817168B1 (ko) 극 부호의 근사화된 신뢰전파 복호화 방법 및 장치
CN107404321B (zh) 用于纠错码解码的方法和设备
JP2011129981A (ja) ノイズ分散による入力対数尤度比のスケーリングに基づくsum−product復号法(ビリーフプロパゲーション法)の計算手法
KR20140111890A (ko) 무선 통신 시스템에서 주파수-직각 진폭 변조를 위한 복호화 및 부호화 방법 및 장치
EP2892158A1 (en) Receiver, transmitter, and communication method
Chen et al. Sparse code multiple access decoding based on a Monte Carlo Markov chain method
KR102241416B1 (ko) 디지털 비디오 방송 시스템에서 LDPC(Low Density Parity Check) 복호기 및 LDPC 복호기의 복호화 방법
JP2018019401A (ja) リード・ソロモン復号器及び復号方法
US9614548B1 (en) Systems and methods for hybrid message passing and bit flipping decoding of LDPC codes
CN114556824A (zh) 用于多级极化编码调制发送和接收的方法和设备
US9531577B2 (en) Bit-likelihood calculating apparatus and bit-likelihood calculating method
KR101698875B1 (ko) Ldpc 부호의 복호 방법 및 장치
US11476870B2 (en) Variable node processing methods and devices for message-passing decoding of non-binary codes
KR102045438B1 (ko) Ldpc 부호의 복호를 위한 방법 및 장치
US10903855B2 (en) Convolutional LDPC decoding method and apparatus, decoder, and system
US9467174B2 (en) Low complexity high-order syndrome calculator for block codes and method of calculating high-order syndrome
US11245421B2 (en) Check node processing methods and devices with insertion sort

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