KR20140041071A - Ldpc 부호화 장치 및 방법 - Google Patents

Ldpc 부호화 장치 및 방법 Download PDF

Info

Publication number
KR20140041071A
KR20140041071A KR1020120107982A KR20120107982A KR20140041071A KR 20140041071 A KR20140041071 A KR 20140041071A KR 1020120107982 A KR1020120107982 A KR 1020120107982A KR 20120107982 A KR20120107982 A KR 20120107982A KR 20140041071 A KR20140041071 A KR 20140041071A
Authority
KR
South Korea
Prior art keywords
bits
parity
parity bits
ldpc encoding
registers
Prior art date
Application number
KR1020120107982A
Other languages
English (en)
Inventor
이인기
오덕길
정지원
김민혁
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020120107982A priority Critical patent/KR20140041071A/ko
Priority to US14/031,279 priority patent/US20140089766A1/en
Publication of KR20140041071A publication Critical patent/KR20140041071A/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/13Linear codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • H03M13/1165QC-LDPC codes as defined for the digital video broadcasting [DVB] specifications, e.g. DVB-Satellite [DVB-S2]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/611Specific encoding aspects, e.g. encoding by means of decoding
    • 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

Abstract

N개의 비트(bits)를 포함하는 M개의 레지스터를 저장하고, 상기 M개의 레지스터를 N개씩 M번의 부분 병렬 연산하여 N*M개의 패리티 비트를 구한 후, 상기 N*M개의 패리티 비트에 대하여 N번째 마다 주기적으로, 이전 패리티 비트를 참조하여 다음 N개의 패리티 비트를 각각 상호 반전시키는 LDPC 부호화 장치 및 방법을 제공한다.

Description

LDPC 부호화 장치 및 방법{APPARATUS AND METHOD FOR LDPC ENCODING}
본 발명의 실시예들은 무선 통신 시스템에서 LDPC(Low Density Parity Check) 부호기의 고속 부호화 장치 및 방법에 관한 것이다.
고품질의 서비스를 제공하는 무선 통신 시스템은 페이딩, 비선형성 등 채널 환경이 유선 통신 시스템에 비해 열악하기 때문에, 오류 정정 능력이 뛰어난 오류 제어 방식을 적용해야 한다.
광대역 위성 방송에 적용되는 오류 정정 부호는 DVB-S(Digital Video Broadcasting-Satellite)에 적용되는 연접 부호, DVB-RCS(Digital Video Broadcasting-Return Channel By Satellite)에 적용되는 터보 부호, DVB-S2(Digital Video Broadcasting - Satellite - Second Generation)에 적용되는 LDPC 부호가 있다.
연접 부호는 높은 부호 이득을 얻을 수 있으며, 무선 통신 시스템에서 각광을 받고 있는 채널 오류 제어 기법이나 성능에 있어서 기존의 기술에 비하여 향상된 성능을 발휘하고 있어, 이에 근접한 성능을 나타내는 터보 부호가 1993년에 발표된 바 있다.
300Mbps급 이상의 광대역 전송 시스템은 터보 부호의 적용이 불가능 하여 고속 데이터 전송에 효율적이고 성능이 우수한 부호기의 적용이 필수 불가결하며, 따라서, 초고화질 다채널 실감 방송 서비스를 전국 단위로 제공하기 위한 100Mbps급 이상의 초고속 위성 방송 전송 기술은 DVB-S2에서 제시된 LDPC 부호화 방식이 적합하다.
유럽식 위성 방송 표준안인 DVB-S2에 적용되는 채널 용량 한계에 근접한 LDPC 부호는 복호기 동작에 있어, 터보 부호에 비해 복호화의 복잡도가 낮을 뿐 아니라 좋은 거리 특성으로 오류마루 현상이 나타나지 않고, 완전 병렬 처리로 고속 처리가 가능하다.
하지만, 일반적인 LDPC 부호화 장치는 부호화 과정에서 이전 값과 현재 값을 누적하는 연산이 필요하므로, 병렬 처리가 불가능한 경우가 있다.
본 발명의 일실시예는 부분 병렬 처리가 가능한 LDPC 부호화 장치 및 방법을 제공하는 것을 목적으로 한다.
본 발명의 일실시예는 고속으로 클럭 연산을 수행하여 기가급 단위의 고속 부호화기를 구현하는 것을 목적으로 한다.
본 발명의 일실시예에 따른 LDPC 부호화 장치는 N개의 비트(bits)를 포함하는 M개의 레지스터를 저장하는 저장부, 상기 M개의 레지스터를 N개씩 M번의 부분 병렬 연산하여 N*M개의 패리티 비트를 구하는 연산부, 및 상기 N*M개의 패리티 비트에 대하여 N번째 마다 주기적으로, 이전 패리티 비트를 참조하여 다음 N개의 패리티 비트를 각각 상호 반전시키는 반전부를 포함할 수 있다.
본 발명의 일측에 따르면, 상기 N은 360이며, 상기 M은 90일 수 있다.
본 발명의 일측에 따르면, 상기 연산부는 제1 인덱스 리스트를 참조하여 상기 M개의 레지스터 중 어느 하나 이상을 추출하는 추출부, 및 제2 인덱스 리스트를 이용하여 추출된 레지스터에 포함된 상기 N개의 비트를 치환 (permutation)시키는 치환부를 포함할 수 있다.
본 발명의 일측에 따르면, 상기 추출부는 상기 제1 인덱스 리스트에 포함된 하나 이상의 제1 인덱스 값과 대응되는 각각의 레지스터를 추출할 수 있다.
본 발명의 일측에 따르면, 상기 치환부는 상기 제2 인덱스 리스트에 포함된 하나 이상의 제2 인덱스 값과 대응되는 순서의 비트를 첫번째 비트로 위치시키고, 다음 순서의 하나 이상의 비트를 순서대로 정렬할 수 있다.
본 발명의 일측에 따르면, 상기 저장부는 상기 N*M개의 패리티 비트를 N개씩 각각의 주소에 저장할 수 있다.
본 발명의 일측에 따르면, 상기 반전부는 상기 각각의 주소 중 마지막 주소에서 상기 N개의 패리티 비트를 추출하고, 상기 추출된 N개의 패리티 비트의 마지막 패리티 비트를 참조하여, 상기 다음 N개의 패리티 비트를 각각 상호 반전시킬 수 있다.
본 발명의 일측에 따르면, 상기 이전 패리티 비트의 최초 패리티 비트는 N번째 패리티 비트일 수 있다.
본 발명의 일측에 따르면, 상기 반전부 상기 이전 패리티 비트가 기설정된 값을 가지는 경우, 상기 다음 N개의 패리티 비트를 각각 상호 반전시킬 수 있다.
본 발명의 일측에 따르면, 상기 기설정된 값이 1일 수 있다.
본 발명의 일실시예에 따른 LDPC 부호화 방법은 N개의 비트(bits)를 포함하는 M개의 레지스터를 저장하는 단계, 상기 M개의 레지스터를 N개씩 M번의 부분 병렬 연산하여 N*M개의 패리티 비트를 구하는 단계, 및 상기 N*M개의 패리티 비트에 대하여 N번째 마다 주기적으로, 이전 패리티 비트를 참조하여 다음 N개의 패리티 비트를 각각 상호 반전시키는 단계를 포함할 수 있다.
본 발명의 일실시예에 따르면 부분 병렬 처리가 가능한 LDPC 부호화 장치 및 방법을 제공할 수 있다.
본 발명의 일실시예는 고속으로 클럭 연산을 수행하여 기가급 단위의 고속 부호화기를 구현할 수 있다.
도 1은 본 발명의 일실시예에 따른 LDPC 부호화 장치의 구성을 도시한 블록도이다.
도 2는 LDPC 부호화에 따른 H 매트릭스 구조를 도시한 도면이다.
도 3은 본 발명의 일측에 따른 LDPC 부호화 알고리즘 구조를 도시한 도면이다.
도 4는 본 발명의 일측에 따른 연산부의 구성을 도시한 블록도이다.
도 5는 본 발명의 일측에 따른 제1 인덱스 리스트를 도시한 도면이다.
도 6은 본 발명의 일측에 따른 제2 인덱스 리스트를 도시한 도면이다.
도 7은 본 발명의 일실시예에 따른 LDPC 부화화 방법을 도시한 도면이다.
이하 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 실시예를 상세하게 설명하지만, 본 발명이 실시예에 의해 제한되거나 한정되는 것은 아니다.
한편, 본 발명을 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는, 그 상세한 설명을 생략할 것이다. 그리고, 본 명세서에서 사용되는 용어(terminology)들은 본 발명의 실시예를 적절히 표현하기 위해 사용된 용어들로서, 이는 사용자, 운용자의 의도 또는 본 발명이 속하는 분야의 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 일실시예에 따른 LDPC 부호화 장치의 구성을 도시한 블록도이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 LDPC 부호화 장치는 저장부(110), 연산부(120), 및 반전부(130)를 포함할 수 있다. 저장부(110)는 N개의 비트(bits)를 포함하는 M개의 레지스터를 저장하며, 연산부(120)는 상기 M개의 레지스터를 N개씩 M번의 부분 병렬 연산하여 N*M개의 패리티 비트를 구할 수 있으며, 반전부(130)는 상기 N*M개의 패리티 비트에 대하여 N번째 마다 주기적으로, 이전 패리티 비트를 참조하여 다음 N개의 패리티 비트를 각각 상호 반전시킬 수 있다.
도 2는 LDPC 부호화에 따른 H 매트릭스 구조를 도시한 도면이다.
도 2를 참조하면, DVB-S2 방식의 LDPC 부호의 H 매트릭스(matrix)로 구성될 수 있으며, 정보 비트의 정보 영역(Information part)(210)과 패리티 비트의 패리티 영역(parity part)(220)로 구성될 수 있다. 정보 영역에서는 ‘1’의 위치가 부호율에 따라 다양하게 분포할 수 있으며, 패리티 영역은 도 1에 도시된 바와 같이, 계단식으로 ‘1’의 위치가 고정될 수 있다.
DVB-S2 기반 LDPC는 360개씩 부분 병렬 연산을 수행할 수 있도록 설계되어 있으나, 부호화 과정에서 이전 값과 현재 값을 누적하는 연산이 필요하므로 병렬 처리하는 것이 어려울 수 있다.
본 발명의 LDPC 부호화 장치는 누산기(accumulator) 연산 전까지의 과정을 기설정된 개수씩 부분 병렬로 연산한 후, 상기 연산 결과에 따라 패리티 비트를 상호 반전하여 고속으로 부호를 연산할 수 있다.
도 3은 본 발명의 일측에 따른 LDPC 부호화 알고리즘 구조를 도시한 도면이다.
도 3을 참조하면, 본 발명의 일실시예에 따른 LDPC 부호화 장치는 N개의 비트(bits)를 포함하는 M개의 레지스터(310)를 저장하며, M개의 레지스터(310)를 N개씩 M번의 부분 병렬 연산하여 N*M개의 패리티 비트를 구할 수 있다.
본 발명의 이해를 돕고자 상기 N을 360으로, 상기 M을 90으로 가정하여 설명하도록 한다.
예를 들어, 모든 정보 비트는 순서대로 360개씩 레지스터에 저장될 수 있으며, 1/2의 부호화율을 가질 경우 크기가 360인 레지스터는 90개가 될 수 있다. 본 발명의 일측에 따른 LDPC 부호화 장치는 90개의 레지스터에 정보 비트가 모두 저장되면, 제1 인덱스 리스트 및 제2 인덱스 리스트를 참조하여 각 정보 비트에 대한 패리티 연산을 수행할 수 있다.
도 4는 본 발명의 일측에 따른 연산부의 구성을 도시한 블록도이다.
도 4를 참조하면, 연산부(400)는 제1 인덱스 리스트를 참조하여 상기 M개의 레지스터 중 어느 하나 이상을 추출하는 추출부(410) 및 제2 인덱스 리스트를 이용하여 추출된 레지스터에 포함된 상기 N개의 비트를 치환 (permutation)시키는 치환부(420)를 포함할 수 있다.
추출부(410)는 상기 제1 인덱스 리스트에 포함된 하나 이상의 제1 인덱스 값과 대응되는 각각의 레지스터를 추출할 수 있으며, 치환부(420)는 상기 제2 인덱스 리스트에 포함된 하나 이상의 제2 인덱스 값과 대응되는 순서의 비트를 첫번째 비트로 위치시키고, 다음 순서의 하나 이상의 비트를 순서대로 정렬할 수 있다.
도 5는 본 발명의 일측에 따른 제1 인덱스 리스트를 도시한 도면이고, 도 6은 본 발명의 일측에 따른 제2 인덱스 리스트를 도시한 도면이다.
도 5 및 도 6을 참조하면, 제1 인덱스 리스트는 레지스터에 대한 하나 이상의 제1 인덱스 값이 저장되어 있고, 제2 인덱스 리스트는 선택된 제1 인덱스 값에 의해 선택된 레지스터 내의 N개의 비트를 나타낼 수 있다. 예를 들어, 제2 인덱스 리스트는 제1 인덱스 값에 의해 선택된 레지스터 내의 360개 데이터의 치환(Permutation) 값을 나타낼 수 있다.
예를 들어, 본 발명의 일측에 따른 LDPC 부호화 장치는 제1 인덱스 리스트로부터 '26, 27, 30, 36, 74'의 제1 인덱스 값을 읽어 올 수 있고, 제2 인덱스리스트로부터 '60, 101, 293, 0, 179'의 제2 인덱스 값을 읽어 올 수 있다. 본 발명의 일측에 따른 LDPC 부호화 장치는 상기 각각의 인덱스 값을 참조하여, 도 3의 레지스터 중 26번째, 27번째, 30번째, 36번째, 74번째의 레지스터를 추출한 후, 추출된 각각의 레지스터에 대한 치환 작업을 수행할 수 있다. 구체적으로, LDPC 부호화 장치는 26번째 레지스터의 60번째 비트를 처음으로 위치하도록 하고, 59번째의 비트를 가장 마지막으로 위치하도록 치환할 수 있다. 마찬가지로, LDPC 부호화 장치는 27번째 레지스터의 101번째 비트, 30번째 레지스터의 293번째 비트, 36번째 레지스터의 0번째 비트, 74번째 레지스터의 179번째 비트를 각각 처음으로 위치하도록 치환 할 수 있다.
LDPC 부호화 장치는 각각의 레지스터의 360개의 비트들을 모두 병렬 연산할 수 있으며, 가장 첫 줄의 연산이 끝나게 되면 도 3에 도시된 P0를 구할 수 있으며, 순차적으로 Pa90, Pa180, Pa270, …, Pa32040의 패리티 비트를 구할 수 있다.
LDPC 부호화 장치는 이전 패리티 비트를 참조하여 다음 패리티 비트들을 구하기 위하여, 360개의 패리티 비트를 저장부의 첫번째 주소에 저장할 수 있으며, 크기 360을 가지는 레지스터에 저장할 수 있다. 즉, 본 발명의 일측에 따른 저장부는 상기 N*M개의 패리티 비트를 N개씩 각각의 주소에 저장할 수 있다.
LDPC 부호화 장치는 상기와 같은 과정을 90번을 반복하여, 정보 비트에 대한 패리티 연산을 마칠 수 있으며, 도 3에 도시된 Pa0 내지 Pa89까지의 패리티 비트를 구할 수 있다.
LDPC 부호화 장치가 저장부의 마지막 주소에서 360개의 패리티 비트들을 추출한 경우, 추출된 패리티 비트들 중 Pa89의 패리티 비트는 완벽히 모든 연산이 끝난 데이터일 수 있으나,
Figure pat00001
이 연산되어야 하나 Pa90 이후의 패리티 비트에 대해서는 제대로 연산이 이루어지지 않아, Pa89이외의 다른 패리티 비트에 대한 값은 완벽하지 않을 수 있다.
LDPC 부호화 장치는 상기 반전부를 이용하여 상기 각각의 주소 중 마지막 주소에서 상기 N개의 패리티 비트를 추출하고, 상기 추출된 N개의 패리티 비트의 마지막 패리티 비트를 참조하여, 상기 다음 N개의 패리티 비트를 각각 상호 반전시킬 수 있다. 이때, 상기 이전 패리티 비트의 최초 패리티 비트는 N번째 패리티 비트일 수 있다.
LDPC 부호화 장치는 상기 이전 패리티 비트가 기설정된 값을 가지는 경우, 상기 반전부를 이용하여 상기 다음 N개의 패리티 비트를 각각 상호 반전시킬 수 있다. 이때, 상기 기설정된 값이 1일 수 있다.
본 발명의 일측에 따르면, 패리티 비트 연산은 비트 연산의 배타적 논리합(eXclusive OR) 연산을 통하여 이루어지는 바, 예를 들어, LDPC 부호화 장치는 Pa89가 ‘1’일 경우 Pa90 내지 Pa179까지의 패리티 비트를 모두 반전시킬 수 있다. 또한, LDPC 부호화 장치는 모든 연산이 끝난 Pa179의 값이 ‘1’일 경우, Pa180 내지 Pa269까지의 패리티 비트를 모두 반전시킬 수 있다.
상기와 같은 논리에서, LDPC 부호화 장치는 저장부의 마지막 주소에서 추출된 360개의 패리티 비트들에 있어서, Pa89가 ‘1’이라면 Pa179의 값을 반전시키고, 연산된 Pa179의 값이 ‘1’이라면 Pa269의 값을 반전시키는 등의 순차적인 과정을 총 359번 반복함으로써, 가장 마지막 패리티 비트를 연산할 수 있다.
LDPC 부호화 장치는 마지막 패리티 비트에 대한 연산이 완료되면, 다시 저장부의 첫번째 주소의 패리티 비트를 추출하여, 각각 360개의 패리티 비트들을 반전 또는 비반전 시킬 수 있다.
본 발명의 일측에 따르면, 처음 정보 비트에 대한 연산으로 q(부호화율 1/2의 경우=90)클럭이 사용될 수 있으며, 마지막 패리티 비트들에 대한 연산으로 359 클럭이 사용될 수 있다. 또한, 마지막으로 다시 저장부의 주소를 읽어오는 과정을 통하여 q-1 클럭을 사용함에 따라, 총 2q+358+α의 클럭만을 사용하여 LDPC 부호화 과정을 수행할 수 있다. 이때, 상기 α는 각종 연산과 저장부의 읽기/쓰기에 사용되는 클럭이다.
도 7은 본 발명의 일실시예에 따른 LDPC 부화화 방법을 도시한 도면이다.
도 7을 참조하면, LDPC 부호화 장치는 N개의 비트(bits)를 포함하는 M개의 레지스터를 저장할 수 있고(710), 상기 M개의 레지스터를 N개씩 M번의 부분 병렬 연산하여 N*M개의 패리티 비트를 구할 수 있으며(720), 상기 N*M개의 패리티 비트에 대하여 N번째 마다 주기적으로, 이전 패리티 비트를 참조하여 다음 N개의 패리티 비트를 각각 상호 반전시킬 수 있다(730).
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다. 
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
110: 저장부
120: 연산부
130: 반전부

Claims (20)

  1. N개의 비트(bits)를 포함하는 M개의 레지스터를 저장하는 저장부;
    상기 M개의 레지스터를 N개씩 M번의 부분 병렬 연산하여 N*M개의 패리티 비트를 구하는 연산부; 및
    상기 N*M개의 패리티 비트에 대하여 N번째 마다 주기적으로, 이전 패리티 비트를 참조하여 다음 N개의 패리티 비트를 각각 상호 반전시키는 반전부;
    를 포함하는 LDPC 부호화 장치.
  2. 제1항에 있어서,
    상기 N은 360이며,
    상기 M은 90인 LDPC 부호화 장치.
  3. 제1항에 있어서,
    상기 연산부는,
    제1 인덱스 리스트를 참조하여 상기 M개의 레지스터 중 어느 하나 이상을 추출하는 추출부; 및
    제2 인덱스 리스트를 이용하여 추출된 레지스터에 포함된 상기 N개의 비트를 치환 (permutation)시키는 치환부
    를 포함하는 LDPC 부호화 장치.
  4. 제3항에 있어서,
    상기 추출부는,
    상기 제1 인덱스 리스트에 포함된 하나 이상의 제1 인덱스 값과 대응되는 각각의 레지스터를 추출하는 LDPC 부호화 장치.
  5. 제3항에 있어서,
    상기 치환부는,
    상기 제2 인덱스 리스트에 포함된 하나 이상의 제2 인덱스 값과 대응되는 순서의 비트를 첫번째 비트로 위치시키고, 다음 순서의 하나 이상의 비트를 순서대로 정렬하는 LDPC 부호화 장치.
  6. 제1항에 있어서,
    상기 저장부는,
    상기 N*M개의 패리티 비트를 N개씩 각각의 주소에 저장하는 LDPC 부호화 장치.
  7. 제6항에 있어서,
    상기 반전부는,
    상기 각각의 주소 중 마지막 주소에서 상기 N개의 패리티 비트를 추출하고, 상기 추출된 N개의 패리티 비트의 마지막 패리티 비트를 참조하여, 상기 다음 N개의 패리티 비트를 각각 상호 반전시키는 LDPC 부호화 장치.
  8. 제1항에 있어서,
    상기 이전 패리티 비트의 최초 패리티 비트는,
    N번째 패리티 비트인 LDPC 부호화 장치.
  9. 제1항에 있어서,
    상기 반전부,
    상기 이전 패리티 비트가 기설정된 값을 가지는 경우, 상기 다음 N개의 패리티 비트를 각각 상호 반전시키는 LDPC 부호화 장치.
  10. 제9항에 있어서,
    상기 기설정된 값이 1인 LDPC 부호화 장치.
  11. N개의 비트(bits)를 포함하는 M개의 레지스터를 저장하는 단계;
    상기 M개의 레지스터를 N개씩 M번의 부분 병렬 연산하여 N*M개의 패리티 비트를 구하는 단계; 및
    상기 N*M개의 패리티 비트에 대하여 N번째 마다 주기적으로, 이전 패리티 비트를 참조하여 다음 N개의 패리티 비트를 각각 상호 반전시키는 단계;
    를 포함하는 LDPC 부호화 방법.
  12. 제11항에 있어서,
    상기 N은 360이며,
    상기 M은 90인 LDPC 부호화 방법.
  13. 제11항에 있어서,
    상기 N*M개의 패리티 비트를 구하는 단계는,
    제1 인덱스 리스트를 참조하여 상기 M개의 레지스터 중 어느 하나 이상을 추출하는 단계; 및
    제2 인덱스 리스트를 이용하여 추출된 레지스터에 포함된 상기 N개의 비트를 치환 (permutation)시키는 단계
    를 포함하는 LDPC 부호화 방법.
  14. 제13항에 있어서,
    상기 N*M개의 패리티 비트를 구하는 단계는,
    상기 제1 인덱스 리스트에 포함된 하나 이상의 제1 인덱스 값과 대응되는 각각의 레지스터를 추출하는 단계
    를 더 포함하는 LDPC 부호화 방법.
  15. 제13항에 있어서,
    상기 N*M개의 패리티 비트를 구하는 단계는,
    상기 제2 인덱스 리스트에 포함된 하나 이상의 제2 인덱스 값과 대응되는 순서의 비트를 첫번째 비트로 위치시키고, 다음 순서의 하나 이상의 비트를 순서대로 정렬하는 단계
    를 더 포함하는 LDPC 부호화 방법.
  16. 제11항에 있어서,
    상기 N*M개의 패리티 비트를 N개씩 각각의 주소에 저장하는 단계
    를 더 포함하는 LDPC 부호화 방법.
  17. 제16항에 있어서,
    상기 다음 N개의 패리티 비트를 각각 상호 반전시키는 단계는,
    상기 각각의 주소 중 마지막 주소에서 상기 N개의 패리티 비트를 추출하는 단계; 및
    상기 추출된 N개의 패리티 비트의 마지막 패리티 비트를 참조하여, 상기 다음 N개의 패리티 비트를 각각 상호 반전시키는 단계
    를 포함하는 LDPC 부호화 방법.
  18. 제11항에 있어서,
    상기 이전 패리티 비트의 최초 패리티 비트는,
    N번째 패리티 비트인 LDPC 부호화 방법.
  19. 제11항에 있어서,
    상기 다음 N개의 패리티 비트를 각각 상호 반전시키는 단계는,
    상기 이전 패리티 비트가 기설정된 값을 가지는 경우, 상기 다음 N개의 패리티 비트를 각각 상호 반전시키는 단계
    를 포함하는 LDPC 부호화 방법.
  20. 제19항에 있어서,
    상기 기설정된 값이 1인 LDPC 부호화 방법.
KR1020120107982A 2012-09-27 2012-09-27 Ldpc 부호화 장치 및 방법 KR20140041071A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120107982A KR20140041071A (ko) 2012-09-27 2012-09-27 Ldpc 부호화 장치 및 방법
US14/031,279 US20140089766A1 (en) 2012-09-27 2013-09-19 Apparatus and method for low density parity check (ldpc) encoding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120107982A KR20140041071A (ko) 2012-09-27 2012-09-27 Ldpc 부호화 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20140041071A true KR20140041071A (ko) 2014-04-04

Family

ID=50340180

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120107982A KR20140041071A (ko) 2012-09-27 2012-09-27 Ldpc 부호화 장치 및 방법

Country Status (2)

Country Link
US (1) US20140089766A1 (ko)
KR (1) KR20140041071A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102235639B1 (ko) 2015-03-12 2021-04-05 한국전자통신연구원 데이터 송수신 장치
US10425104B2 (en) 2016-11-11 2019-09-24 Electronics And Telecommunications Research Institute Scheduling method of a parity check matrix and an LDPC decoder for performing scheduling of a parity check matrix

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162684B2 (en) * 2003-01-27 2007-01-09 Texas Instruments Incorporated Efficient encoder for low-density-parity-check codes
WO2005096509A1 (en) * 2004-03-31 2005-10-13 Intel Corporation Multi-threshold message passing decoding of low-density parity check codes
US7506238B2 (en) * 2004-08-13 2009-03-17 Texas Instruments Incorporated Simplified LDPC encoding for digital communications
US8307268B2 (en) * 2007-12-06 2012-11-06 Marvell World Trade Ltd. Iterative decoder systems and methods
TWI419481B (zh) * 2009-12-31 2013-12-11 Nat Univ Tsing Hua 低密度奇偶檢查碼編解碼器及其方法
US8402341B2 (en) * 2010-02-18 2013-03-19 Mustafa Eroz Method and system for providing low density parity check (LDPC) encoding and decoding

Also Published As

Publication number Publication date
US20140089766A1 (en) 2014-03-27

Similar Documents

Publication Publication Date Title
US20200177208A1 (en) Device, system and method of implementing product error correction codes for fast encoding and decoding
US8572463B2 (en) Quasi-cyclic LDPC encoding and decoding for non-integer multiples of circulant size
US20150077277A1 (en) Reduced polar codes
TW201126918A (en) Improved turbo-equalization methods for iterative decoders
CN102412847A (zh) 用联合节点处理来解码低密度奇偶校验码的方法和设备
US20120207224A1 (en) Memory efficient implementation of ldpc decoder
US20100100788A1 (en) Programmable quasi-cyclic low-density parity check (QC LDPC) encoder for read channel
JP2015015701A5 (ko)
CN107979445B (zh) 使用预先排序的输入的基于基本校验节点的校正子解码
US11296723B2 (en) Methods and apparatuses for data processing in communication system
EP3364578B1 (en) Parallel decoding for qc-ldpc codes
JP2007215089A (ja) 復号装置及び復号方法
US9660669B2 (en) Encoding apparatus and encoding method thereof
BR112017018314B1 (pt) Aparelho e método de puncionamento de paridade, e aparelho de puncionamento de paridade inverso
US8438448B2 (en) Decoding method and device for low density generator matrix codes
KR102019893B1 (ko) 저밀도 패리티 검사 부호를 지원하는 통신 시스템에서 신호 수신 장치 및 방법
US10657001B2 (en) Converting a data chunk into a ring algebraic structure for fast erasure coding
US8312343B2 (en) Systems and methods for re-using decoding parity in a detector circuit
KR20140041071A (ko) Ldpc 부호화 장치 및 방법
US10193574B1 (en) Efficient syndrome calculation in processing a GLDPC code
EP3408956A1 (en) Apparatus and method for multi-code distributed storage
RU2014110139A (ru) Полярные коды произвольной длины
CN113131947B (zh) 译码方法、译码器和译码装置
US9128888B2 (en) Method and apparatus for turbo decoder memory collision resolution
CN113014267B (zh) 译码方法、设备、可读存储介质、芯片及计算机程序产品

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid