KR102098202B1 - 부호화 장치 및 그의 부호화 방법 - Google Patents

부호화 장치 및 그의 부호화 방법 Download PDF

Info

Publication number
KR102098202B1
KR102098202B1 KR1020140058333A KR20140058333A KR102098202B1 KR 102098202 B1 KR102098202 B1 KR 102098202B1 KR 1020140058333 A KR1020140058333 A KR 1020140058333A KR 20140058333 A KR20140058333 A KR 20140058333A KR 102098202 B1 KR102098202 B1 KR 102098202B1
Authority
KR
South Korea
Prior art keywords
sub
matrix
parity
codeword
last
Prior art date
Application number
KR1020140058333A
Other languages
English (en)
Other versions
KR20150131541A (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 KR1020140058333A priority Critical patent/KR102098202B1/ko
Priority to US14/580,514 priority patent/US9660669B2/en
Publication of KR20150131541A publication Critical patent/KR20150131541A/ko
Application granted granted Critical
Publication of KR102098202B1 publication Critical patent/KR102098202B1/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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • 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
    • 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/1154Low-density parity-check convolutional codes [LDPC-CC]
    • 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/1191Codes on graphs other than LDPC codes
    • H03M13/1194Repeat-accumulate [RA] codes
    • H03M13/1197Irregular repeat-accumulate [IRA] 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
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] 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/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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations

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

LDPC(Low Density Parity Check) 부호를 수행하는 부호화 장치가 개시된다. 본 부호화 장치는 정보어 제1 부행렬과 정보어 제1 부행렬에 인접하여 배치된 패리티 제1 부행렬 및 정보어 제2 부행렬과 정보어 제2 부행렬에 인접하여 배치된 패리티 제2 부행렬로 구성되는 복수의 블록 각각에 대한 LDPC 부호화 수행 시 패리티 제2 부행렬의 원소를 변경하여 LDPC 부호화를 수행하는 인코더, 복수의 블록 중 하나에 대한 LDPC 부호화에 의해 생성된 패리티 비트들 중 마지막 패리티 비트의 비트 값을 판단하는 비트 판단부 및, 마지막 패리티 비트의 비트 값에 기초하여 다음 블록에 대한 LDPC 부호화에 의해 생성된 패리티 비트들의 비트 값을 반전시키는 비트 변경부를 포함한다.

Description

부호화 장치 및 그의 부호화 방법 { ENCODING APPARATUS AND ENCODING METHOD THEREOF }
본 발명은 부호화 장치 및 그의 부호화 방법에 관한 것으로, 더욱 상세하게는 LDPC 부호를 수행하는 부호화 장치 및 그의 부호화 방법에 관한 것이다.
SC-LDPC(Spatially Coupled Low Density Parity Check) 부호의 장점은 복호기(decoder)에서 파이프라인(pipeline) 구조를 적용하여 병렬적인 복호를 지원할 수 있다는 점이다. 이에 따라, 기존 LDPC-BC(block code)로는 불가능했던 길이의 부호어도 고려될 수 있다.
한편, LDPC 부호의 주요 특징 중 하나는 패리티 검사 행렬(Parity Check Matrix, PCM)이 동일한 행렬 구조를 갖는다면, 부호의 길이가 길어질수록 성능이 우수해진다는 것이다. 따라서, 가능하다면 길이가 긴 LDPC 부호를 사용하는 것이 성능면에서 유리하다.
그런데, 지금까지 일반적인 통신 및 방송 시스템에서 사용되던 LDPC 부호의 최대 길이는 64,800 비트였지만, SC-LDPC 부호를 사용하면 그보다 훨씬 더 긴 비트 길이에 대해서도 현실적인 복잡도로 복호가 가능하다. 이에 따라, SC-LDPC 부호는 기존의 LDPC 부호보다 훨씬 더 큰 패리티 검사 행렬로 설계될 수 있다.
하지만, 부호어의 길이가 길어질수록 부호기(encoder)의 복잡도 또한 증가하는 문제가 발생한다는 점에서, 부호화 복잡도 문제를 해결하기 위해 IRA(Irregular Repeat Accumulate) 구조를 갖는 부호가 이용되기도 한다.
하지만, SC-IRA(Spatially Coupled Irregular Repeat Accumulate) 부호에서도 부호어의 길이가 길어지면 부호화 복잡도 역시 선형적으로 증가하는 문제가 존재한다. 이이 따라, SC-IRA 부호에서 부호화 복잡도를 낮추기 위한 방안의 모색이 요청된다.
본 발명은 상술한 필요성에 따른 것으로, 본 발명의 목적은 부호어의 길이가 길어지더라도 부호화의 복잡도는 낮추기 위해 부호화를 병렬적으로 수행하는 부호화 장치 및 그의 부호화 방법을 제공함에 있다.
이상과 같은 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 부호화 장치는 정보어 제1 부행렬과 상기 정보어 제1 부행렬에 인접하여 배치된 패리티 제1 부행렬 및 정보어 제2 부행렬과 상기 정보어 제2 부행렬에 인접하여 배치된 패리티 제2 부행렬로 구성되는 복수의 블록 각각에 대한 LDPC 부호화 수행 시 상기 패리티 제2 부행렬의 원소를 변경하여 LDPC 부호화를 수행하는 인코더, 상기 복수의 블록 중 하나에 대한 LDPC 부호화에 의해 생성된 패리티 비트들 중 마지막 패리티 비트의 비트 값을 판단하는 비트 판단부 및, 상기 마지막 패리티 비트의 비트 값에 기초하여 다음 블록에 대한 LDPC 부호화에 의해 생성된 비트들의 비트 값을 반전시키는 비트 변경부를 포함한다.
이 경우, 상기 비트 판단부는 상기 마지막 패리티 비트의 비트 값에 기초하여 상기 다음 블록의 패리티 비트들의 반전 여부가 수행된 후 상기 다음 블록에 대한 LDPC 부호화에 의해 생성된 패리티 비트들 중 마지막 패리티 비트의 비트 값을 판단하고, 상기 비트 변경부는 상기 마지막 패리티 비트의 비트 값에 기초하여 상기 다음 블록 이후의 블록에 대한 LDPC 부호화에 의해 생성된 비트들의 비트 값을 반전시킬 수 있다.
또한, 상기 패리티 제1 부행렬은 이중 대각 구조를 가지는 행렬이고, 상기 패리티 제2 부행렬은, 첫 번째 행의 가장 마지막 열에 1이 존재하고 나머지 부분은 0인 행렬일 수 있다.
이 경우, 상기 인코더는 상기 패리티 제2 부행렬의 첫 번째 행의 마지막 열의 원소를 0으로 변경하여 상기 복수의 블록 각각에 대한 LDPC 부호화를 수행할 수 있다.
한편, 상기 비트 변경부는 상기 복수의 블록 중 하나에 대한 LDPC 부호화에 의해 생성된 패리티 비트들 중 마지막 패리티 비트가 1인 경우, 상기 다음 블록에 대한 LDPC 부호화에 의해 생성된 비트들을 반전시킬 수 있다.
한편, 본 발명의 일 실시 예에 따른 부호화 방법은 정보어 제1 부행렬과 상기 정보어 제1 부행렬에 인접하여 배치된 패리티 제1 부행렬 및 정보어 제2 부행렬과 상기 정보어 제2 부행렬에 인접하여 배치된 패리티 제2 부행렬로 구성되는 복수의 블록 각각에 대한 LDPC 부호화 수행 시 상기 패리티 제2 부행렬의 원소를 변경하여 LDPC 부호화를 수행하는 단계, 상기 복수의 블록 중 하나에 대한 LDPC 부호화에 의해 생성된 패리티 비트들 중 마지막 패리티 비트의 비트 값을 판단하는 단계 및, 상기 마지막 패리티 비트의 비트 값에 기초하여 다음 블록에 대한 LDPC 부호화에 의해 생성된 비트들의 비트 값을 반전시키는 단계를 포함한다.
이 경우, 상기 판단하는 단계는 상기 마지막 패리티 비트의 비트 값에 기초하여 상기 다음 블록의 패리티 비트들의 반전 여부가 수행된 후 상기 다음 블록에 대한 LDPC 부호화에 의해 생성된 패리티 비트들 중 마지막 패리티 비트의 비트 값을 판단하고, 상기 반전시키는 단계는 상기 마지막 패리티 비트의 비트 값에 기초하여 상기 다음 블록 이후의 블록에 대한 LDPC 부호화에 의해 생성된 비트들의 비트 값을 반전시킬 수 있다.
또한, 상기 패리티 제1 부행렬은 이중 대각 구조를 가지는 행렬이고, 상기 패리티 제2 부행렬은, 첫 번째 행의 가장 마지막 열에 1이 존재하고 나머지 부분은 0인 행렬일 수 있다.
이 경우, 상기 LDPC 부호화를 수행하는 단계는 상기 패리티 제2 부행렬의 첫 번째 행의 마지막 열의 원소를 0으로 변경하여 상기 복수의 블록 각각에 대한 LDPC 부호화를 수행할 수 있다.
한편, 상기 반전시키는 단계는 상기 복수의 블록 중 하나에 대한 LDPC 부호화에 의해 생성된 패리티 비트들 중 마지막 패리티 비트가 1인 경우, 상기 다음 블록에 대한 LDPC 부호화에 의해 생성된 비트들을 반전시킬 수 있다.
이상과 같은 본 발명의 다양한 실시 예에 따르면 SC-IRA 부호의 부호화 시 병렬적으로 부호화를 수행할 수 있다는 점에서, 긴 길이를 갖는 부호어를 고속으로 처리할 수 있게 된다.
도 1은 본 발명의 일 실시 예에 따른 부호화 장치의 구성을 설명하기 위한 블록도,
도 2는 SC-LDPC 부호의 패리티 검사 행렬의 구조를 설명하기 위한 도면,
도 3은 패리티 부분 행렬이 이중 대각 구조를 갖는 SC-LDPC 부호의 패리티 검사 행렬의 일 예를 나타내는 도면,
도 4는 도 3과 같은 구조를 갖는 패리티 검사 행렬을 열 치환하여 생성된 패리티 검사 행렬의 구조를 나타내는 도면,
도 5 내지 도 8은 본 발명의 일 실시 예에 따른 부호화 방법을 설명하기 위한 도면들,
도 9 및 도 10은 본 발명의 일 실시 예에 따른 부호화 방법의 효과를 설명하기 위한 도면들, 그리고
도 11은 본 발명의 일 실시 예에 따른 부호화 방법을 설명하기 위한 흐름도이다.
이하에서는 첨부된 도면을 참조하여 본 발명을 더욱 상세하게 설명한다.
도 1은 본 발명의 일 실시 예에 따른 인코딩 부호화 구성을 설명하기 위한 블록도이다. 도 1에 따르며, 부호화 장치(100)는 인코더(110), 비트 판단부(120) 및 비트 변경부(130)를 포함한다.
인코더(110)는 입력되는 비트들에 대해 LDPC(Low Density Parity Check) 부호화를 수행한다.
구체적으로, 인코더(110)는 패리티 검사 행렬(Parity Check Matrix, PCM)에 기초하여 입력되는 비트들을 정보어 비트들로 LDPC 부호화를 수행하여 부호어(codeword)(또는, LDPC 부호어)를 생성할 수 있다.
여기에서, 부호어는 정보어 비트들과 패리티 비트들로 구성될 수 있다. 예를 들어, 인코더(110)는 k 비트로 구성된 정보어 비트들 I=(i1,i2,...,ik)에 대해 LDPC 부호화를 수행하여, n-k 비트로 구성된 패리티 비트들 P=(p1,p2,...,pn -k)을 생성할 수 있다. 이에 따라 n 비트로 구성된 부호어 C=(c1,c2,...,cn)=(i1,i2,...,ik,p1,p2,...,pn-k)가 생성될 수 있다.
이를 위해, 인코더(110)는 LDPC 부호화에 이용되는 패리티 검사 행렬에 대한 정보를 기저장하고 있을 수 있다.
한편, 인코더(110)에서 수행되는 LDPC 부호는 SC-LDPC(Spatially Coupled Low Density Parity Check) 부호, 구체적으로 SC-IRA(Spatially Coupled Irregular Repeat Accumulate) 구조의 LDPC 부호라는 점에서, 이하에서는 SC-LDPC 부호에서 이용되는 패리티 검사 행렬에 대해 살펴보도록 한다.
SC-LDPC 부호의 경우, 패리티 검사 행렬은 도 2와 같이 공간적으로 연결된(spatially coupled) 구조를 가진다.
도 2를 참조하면, 도 2에서 좌측은 SC-LDPC 부호에 이용되는 패리티 검사 행렬의 구조를 나타내는 도면이고, 우측은 좌측과 같은 구조를 만족하는 패리티 검사 행렬의 구체적인 일 예를 나타낸다.
구체적으로, SC-LDPC 부호의 패리티 검사 행렬은 복수의 부행렬(sub-matrix)로 구성되며, 복수의 부 행렬은 행에 따라 쉬프트되면서 반복적으로 배치될 수 있다.
예를 들어, 도 2에 도시된 것과 같이 패리티 검사 행렬 H는 부행렬 H0, H1, H2,...로 구성되며, 부행렬 각각은 행에 따라 쉬프트되면서 반복적으로 배치될 수 있다.
즉, 부행렬 H0(0)이 배치되고, 부행렬 H0(0)의 아래에 부행렬 H1(1)이 인접하여 배치되고, 부행렬 H1(1)의 우측에 부행렬 H0(1)이 인접하여 배치될 수 있다. 그리고, 부행렬 H1(1), 부행렬 H0(1)의 아래에 부행렬 H2(2), 부행렬 H1(2)이 각각 인접하여 배치되고, 부행렬 H1(2)의 우측에 부행렬 H0(2)이 인접하여 배치될 수 있다. 그리고, 부행렬 H1(2), 부행렬 H0(2)의 아래에 부행렬 H2(3), 부행렬 H1(3)이 각각 인접하여 배치되고, 부행렬 H1(3)의 우측에 부행렬 H0(3)이 인접하여 배치될 수 있다.
이와 같이, 부행렬이 부행렬을 구성하는 행만큼 아래 행으로 갈수록 부행렬을 구성하는 열만큼 우측으로 쉬프트되어 배치되는 형태가 반복되어 패리티 검사 행렬을 구성할 수 있다.
한편, SC-LDPC 부호의 패리티 검사 행렬에서 패리티 부분 행렬은 이중 대각(dual diagonal) 구조를 가질 수 있다. 여기에서, 패리티 부분 행렬은 패리티 비트들에 대응되는 열들로 구성된 부분 행렬로, 정사각 행렬일 수 있다.
이에 따라, 패리티 부분 행렬은 첫 번째 행의 첫 번째 열에서부터 대각선 방향으로 마지막 행의 마지막 열까지 1이 존재하고 두 번째 행의 첫 번째 열에서부터 대각선 방향으로 마지막 행의 마지막 열 바로 전의 열까지 1이 존재할 수 있다. 그리고, 나머지 부분은 0으로 구성될 수 있다.
이에 따라, 패리티 부분 행렬에 포함된 열들 중에서 마지막 열을 제외한 나머지 열들 각각에 존재하는 1의 개수는 2 개이고, 마지막 열에 존재하는 1의 개수는 1 개가 된다.
한편, 도 3은 패리티 부분 행렬이 이중 대각 구조를 갖는 SC-LDPC 부호의 패리티 검사 행렬의 일 예를 나타낸다. 이와 같은 구조를 갖는 패리티 검사 행렬은 현재 표준 제정 중인 ATSC(Advanced Television Systems Committee) 3.0 표준에서 이용될 수 있다.
한편, 패리티 검사 행렬을 H, 부호어를 C라 할 때, LDPC 부호화 과정은 H×CT=0을 만족하는 부호어를 생성하는 과정이다. 따라서, 패리티 검사 행렬의 각 열은 부호어의 각 비트에 대응되므로, 패리티 검사 행렬에서 정보어 비트들에 대응되는 열들로 구성된 부분 행렬을 정보어 부분 행렬이라 하고, 패리티 비트들에 대응되는 열들로 구성된 부분 행렬을 패리티 부분 행렬이라 할 수 있다.
즉, 도 3의 패리티 검사 행렬(300)은 정보어 부분 행렬(310)과 패리티 부분 행렬(320)로 구성되는 것으로 볼 수 있다.
이 경우, 정보어 부분 행렬(310)은 행에 따라 쉬프트되면서 반복적으로 배치되는 복수의 부 행렬(A, B)로 구성될 수 있으며, 패리티 부분 행렬(320)는 이중 대각 구조를 가질 수 있다.
이와 같이 패리티 부분 행렬이 이중 대각 구조를 비균일 반복 누적(Irregular Repeat Accumulate, IRA) 구조라 할 수 있다.
한편, 도 3과 같은 구조를 갖는 패리티 검사 행렬(300)에 기초하여 LDPC 부호화를 수행하는 방법은 다음과 같다.
먼저, 패리티 검사 행렬(300)의 각 행에 대해 임시 패리티 비트들을 계산한다. 이때, 임시 패리티 비트들은 정보어 부분 행렬(310)에 기초하여 산출될 수 있다.
구체적으로, i 번째 임시 패리티 비트 ti는 정보어 부분 행렬(310)의 i 번째 행에서 1이 존재하는 열에 대응되는 정보어 비트들을 이진-합(modulo-2)으로 더해 얻어질 수 있다.
예를 들어, 정보어 부분 행렬(310)의 i 번째 행에서 첫 번째, 네 번째, 다섯 번째 열에 1이 존재한다면, 임시 패리티 비트 ti는 ti=i1+i4+i5에 의해 산출될 수 있다. 여기에서, i1는 첫 번째 정보어 비트, i4는 네 번째 정보어 비트, i5는 다섯 번째 정보어 비트를 의미하고, +는 이진-합을 의미한다.
이후, 생성된 임시 패리티 비트들을 순차적으로 누적하여 패리티 비트들이 최종적으로 산출될 수 있다.
구체적으로, p0=t0로 설정하고, i 값을 1부터 시작하여 계속 증분하여, i 번째 패리티 비트 pi를 pi=pi -1+ti로 산출할 수 있다. 즉, p1=p0+t1, p2=p1+t2,...와 같은 방식으로 패리티 비트들 p0,p1,...를 산출할 수 있다. 여기에서 +는 이진-합을 의미한다.
한편, 도 3과 같은 구조를 갖는 패리티 검사 행렬(300)에 대해 열 치환(permutation)을 수행하면, 도 4와 같은 구조를 갖는 패리티 검사 행렬(400)에 생성될 수 있다. 여기에서, 행렬에서 열을 치환하는 것은 열들의 위치를 서로 변경하는 것으로, 열 치환에 의해 부호어 비트들의 위치만이 변경되므로 부호의 특성에 전혀 영향을 미치지 않는다.
도 4를 참조하면, 패리티 검사 행렬(400)에서는 도 3의 패리티 검사 행렬(300)을 구성하는 복수의 부행렬 중 하나와 특정한 형태를 갖는 행렬이 결합되어 새로운 행렬을 구성하고, 해당 행렬이 행에 따라 쉬프트되면서 반복적으로 배치될 수 있다.
여기에서, 특정한 형태를 갖는 행렬은 이중 대각 구조를 갖는 행렬이거나, 첫 번째 행의 마지막 열이 1이고 나머지 부분은 0인 행렬일 수 있다.
즉, 도 4와 같이, 부행렬(A)(411)과 이중 대각 구조를 갖는 행렬(412)이 서로 인접하여 배치되어 행렬(H1)(410)을 구성하고, 부행렬(B)(421)와 첫 번째 행의 마지막 열이 1이고 나머지 부분은 0인 행렬(422)이 인접하여 배치되어 행렬(H2)(420)을 구성한다. 이 경우, 행렬(H2)(420)은 행렬(H1)(410)의 아래 인접하여 배치된다.
결국, 이와 같이 배치된 행렬(H1)과 행렬(H2)가 행에 따라 쉬프트되면서 반복적으로 배치되어 패리티 검사 행렬(400)을 구성할 수 있다.
한편, 도 4와 같은 구조를 갖는 패리티 검사 행렬(400)은 도 3과 같은 구조를 갖는 패리티 검사 행렬(300)의 열이 치환되어 생성된다는 점에서, 패리티 검사 행렬(400)의 부행렬(A)(411), 부행렬(B)(421)은 정보어 부분 행렬(310)에 속했던 행렬들이고, 특정한 형태를 갖는 행렬(412, 422)은 패리티 부분 행렬(320)에 속했던 행렬들일 수 있다.
따라서, 이하에서는 부행렬(A)(411), 부행렬(B)(421)과 같이 정보어 부분 행렬(310)에 대응되는 행렬들을 정보어 부행렬이라 하고, 특정한 형태를 갖는 행렬(412, 422)과 같이 패리티 부분 행렬(320)에 대응되는 행렬들을 패리티 부행렬이라 하도록 한다.
또한, 서로 인접하여 배치된 정보어 부행렬들 각각에 대응되는 정보어 비트들을 서브 정보어 비트들이라 할 때, 서브 정보어 비트들 시퀀스는 정보어 부분 행렬(310)에 대응되는 정보어 비트들이 될 수 있다. 이와 마찬가지로, 서로 인접하여 배치된 패리티 부행렬들 각각에 대응되는 패리티 비트들을 서브 패리티 비트들이라 할 때, 서브 패리티 비트들 시퀀스는 패리티 부분 행렬(320)에 대응되는 패리티 비트들이 될 수 있다.
따라서, 이하에서는 서로 인접하여 배치된 정보어 부행렬들과 서로 인접하여 배치된 패리티 부행렬들이 결합된 행렬(즉, 도 4의 행렬(H1)과 행렬(H2)이 결합된 행렬) 각각에 의해 생성된 비트들을 서브 부호어(sub codeword)라 하기로 한다.
한편, 도 4와 같은 구조를 갖는 패리티 검사 행렬의 경우 특정한 형태의 행렬이 행에 따라 쉬프트되면서 반복적으로 배치된다는 점에서, 결국 SC-LDPC 부호의 패리티 검사 행렬과 동일한 구조로 볼 수 있다. 따라서, 이하에서는 도 4와 같은 구조를 갖는 부호를 SC-IRA 부호라 하며, 이와 같은, SC-IRA 부호의 경우 SC-LDPC 부호의 우수한 특성과 IRA 부호의 낮은 복잡도 부호화 특성을 가질 수 있게 된다.
한편, 도 4에서는 2 개의 행렬 즉, 행렬(H1)과 행렬(H2)이 반복 배치되어 패리티 검사 행렬을 구성하는 것으로 도시하였으나 이는 일 예에 불과하며, SC-IRA 부호에서 이용되는 패리티 검사 행렬은 2 개 이상의 행렬이 반복 배치되는 형태를 가질 수 있음은 물론이다.
한편, 인코더(110)는 도 4와 같은 구조를 갖는 패리티 검사 행렬에 기초하여 LDPC 부호화를 수행할 있다.
이하에서는, 도 5 내지 도 8을 참조하여, 인코더(110)가 도 4와 같은 구조를 갖는 패리티 검사 행렬에 기초하여 LDPC 부호화를 수행하는 방법에 대해 설명하도록 한다.
인코더(110)는 정보어 제1 부행렬과 정보어 제1 부행렬에 인접하여 배치된 패리티 제1 부행렬과 정보어 제2 부행렬과 정보어 제2 부행렬에 인접하여 배치된 패리티 제2 부행렬로 구성되는 복수의 블록 각각에 대한 LDPC 부호화 시 패리티 제2 부행렬의 원소를 변경하여 LDPC 부호화를 수행할 수 있다. 여기에서, 패리티 제1 부행렬은 이중 대각 구조를 가자는 행렬이며, 패리티 제2 부행렬은 첫 번째 행의 마지막 열에 1이 존재하고 나머지 부분은 0인 행렬일 수 있다.
즉, 도 5와 같이 패리티 검사 행렬(500)이 정보어 제1 부행렬(A1), 정보어 제1 부행렬(A1)에 인접하여 배치된 패리티 제1 부행렬(A2), 정보어 제2 부행렬(B1), 정보어 제2 부행렬(B1)에 인접하여 배치된 패리티 제2 부행렬(B2)로 구성된 경우를 가정한다. 이 경우, 정보어 제1 부행렬(A1)과 패리티 제1 부행렬(A2)이 결합된 행렬과 정보어 제2 부행렬(B1)과 패리티 제2 부행렬(B2)이 결합된 행렬은 행에 따라 쉬프트되면서 반복적으로 배치될 수 있다.
여기에서, 패리티 제1 부행렬(A2)은 이중 대각 구조를 가지는 행렬이고, 패리티 제2 부행렬(B2)은 첫 번째 행의 마지막 열에 1이 존재하고 나머지 부분은 0인 행렬일 수 있다.
이와 같은 경우, 패리티 검사 행렬(500)은 서브 부호어 단위로 복수의 블록으로 구분될 수 있다.
즉, 패리티 검사 행렬(500)은 서로 인접하여 배치된 정보어 제1 부행렬들(A1, B1)(510-1, 530-1)과 서로 인접하여 배치된 패리티 제1 부행렬(A2, B2)(520-1, 540-1)이 결합된 행렬은 1 번째 블록, 서로 인접하여 배치된 정보어 제1 부행렬들(A1, B1)(510-2, 530-2)과 서로 인접하여 배치된 패리티 제1 부행렬(A2, B2)(520-2, 540-2)이 결합된 행렬은 2 번째 블록,... 서로 인접하여 배치된 정보어 제1 부행렬들(A1, B1)(510-N-1, 530-N-1)과 서로 인접하여 배치된 패리티 제1 부행렬(A2, B2)(520-N-1, 540-N-1)이 결합된 행렬은 (N-1) 번째 블록, 정보어 제1 부행렬(A1)(510-N)과 패리티 제1 부행렬(A2)(520-N)이 결합된 행렬은 N 번째 블록에 해당할 수 있다.
이 경우, 인코더(110)는 각 블록에 대한 LDPC 부호화를 병렬적으로 수행하여 복수의 서브 부호어를 생성할 수 있다.
이를 위해, 인코더(110)는 각 블록에 대한 LDPC 부호화 시 패리티 제2 부행렬의 첫 번째 행의 마지막 열의 원소를 0으로 변경하여 복수의 블록 각각에 대한 LDPC 부호화를 수행할 수 있다.
여기에서, 패리티 제2 부행렬은 첫 번째 행의 마지막 열에 1이 존재하고 나머지 부분은 0인 행렬이라는 점에서, 패리티 제2 부행렬의 첫 번째 행의 마지막 열을 0으로 설정하면, 패리티 제2 부행렬은 영(zero) 행렬이 된다.
즉, 인코더(110)는 도 6과 같이 패리티 제2 부행렬(B2)가 영 행렬인 것으로 가정하고 각 블록에 대한 LDPC 부호화를 수행할 수 있다.
이에 따라, 인코더(110)는 1 번째 블록에 대한 LDPC 부호화를 수행하여 제1 서브 부호어(550-1)를 생성하고, 2 번째 블록에 대한 LDPC 부호화를 수행하여 제2 서브 부호어(550-2)를 생성하고,..., (N-1) 번째 블록에 대한 LDPC 부호화를 수행하여 제N-1 서브 부호어(550-N-1)를 생성하고, N 번째 블록에 기초하여 제N 서브 부호어(550-N)를 생성할 수 있다.
이와 같이 패리티 제2 부행렬(B2)을 영 행렬인 것으로 가정하고 부호화를 수행하는 경우, t 번째 블록의 패리티 비트 부분이 t+1 번째 블록에 대한 부호화 과정에 영향을 미치지 않게 된다는 점에서, t 번째 블록에 대한 부호화가 수행되어 있지 않더라도 t+1 번째 블록에 대한 부호화를 독립적으로 수행할 수 있다. 이에 따라, 각 블록에 대한 부호화가 병렬적으로 수행될 수 있게 된다.
한편, 비트 판단부(120)는 복수의 블록 중 하나에 대한 LDPC 부호화에 의해 생성된 패리티 비트들 중 마지막 패리티 비트의 비트 값을 판단한다.
구체적으로, 비트 판단부(120)는 복수의 블록 중 첫 번째 블록에 대한 LDPC 부호화에 의해 생성된 패리티 비트들 즉, 제1 서브 패리티 비트들 중 마지막 패리티 비트의 비트 값이 0 또는 1인지를 판단한다. 즉, 비트 판단부(120)는 도 6에서 도시된 제1 서브 부호어(550-1)의 제1 서브 패리티 비트들 중 마지막 서브 패리티 비트의 비트 값이 0 또는 1인지를 판단한다.
비트 변경부(130)는 마지막 패리티 비트의 비트 값에 기초하여 다음 블록에 대한 LDPC 부호화에 의해 생성된 비트들의 비트 값을 반전시킨다. 여기에서, 비트 값을 반전시킨다는 것은 0을 1로 변경하고 1을 0으로 변경하는 것을 의미한다.
구체적으로, 비트 변경부(130)는 복수의 블록 중 하나에 대한 LDPC 부호화에 의해 생성된 패리티 비트들 중 마지막 패리티 비트가 1인 경우, 다음 블록에 대한 LDPC 부호화에 의해 생성된 비트들을 반전시킨다.
먼저, 비트 변경부(130)는 복수의 블록 중 첫 번째 블록에 대한 LDPC 부호화에 의해 생성된 패리티 비트들 중 마지막 패리티 비트 값이 1인 경우, 두 번째 블록에 대한 LDPC 부호화에 의해 생성된 패리티 비트들을 반전시킬 수 있다.
예를 들어, 비트 변경부(130)는 도 7과 같이 제1 서브 부호어(550-1)의 제1 서브 패리티 비트들 중 마지막 서브 패리티 비트의 비트 값이 1인 경우, 제2 서브 부호어를 구성하는 비트들을 반전시킬 수 있다. 예를 들어, 제2 서브 부호어가 00110...0110으로 구성된 경우, 반전에 의해 제2 서브 부호어는 11001...1001가 된다.
이와 같은 반전 동작을 수행하는 것은 복수의 블록에 대해 LDPC 부호화를 병렬적으로 수행하기 위해, 첫 번째 행의 마지막 열에 1이 존재하고 나머지 부분은 0인 패리티 부행렬을 영 행렬으로 가정하고 LDPC 부호화를 수행하였기 때문이다.
한편, 비트 판단부(120)는 마지막 패리티 비트의 비트 값에 기초하여 다음 블록의 패리티 비트들의 반전 여부가 수행된 후, 다음 블록에 대한 LDPC 부호화에 의해 생성된 패리티 비트들 중 마지막 패리티 비트의 비트 값을 판단한다.
즉, 상술한 바와 같이 비트 변경부(130)는 복수의 블록 중 첫 번째 블록에 대한 LDPC 부호화에 의해 생성된 패리티 비트들 중 마지막 패리티 비트 값이 0인 경우 두 번째 블록에 대한 LDPC 부호화에 의해 생성된 비트들을 반전시키기 않지만, 첫 번째 블록에 대한 LDPC 부호화에 의해 생성된 패리티 비트들 중 마지막 패리티 비트 값이 1인 경우 두 번째 블록에 대한 LDPC 부호화에 의해 생성된 비트들을 반전시킨다.
이와 같이 비트 변경부(130)에 의해 첫 번째 블록에 대한 LDPC 부호화에 의해 생성된 패리티 비트들 중 마지막 패리티 비트 값에 의해 두 번째 블록에 의해 생성된 비트들을 반전시키거나 그대로 유지하는 동작이 수행된 이후, 비트 판단부(120)는 두 번째 블록에 대한 LDPC 부호화에 의해 생성된 패리티 비트들 중 마지막 패리티 비트의 비트 값을 판단한다.
예를 들어, 비트 판단부(120)는 도 7에서 도시된 제2 서브 부호어(550-2)의 제2 서브 패리티 비트들 중 마지막 서브 패리티 비트의 비트 값이 0 또는 1인지를 판단한다. 상술한 예에서, 반전에 의해 제2 서브 부호어(550-2)는 11001...1001가 되었다는 점에서, 마지막 서브 패리티 비트의 비트 값은 1이 될 수 있다.
이후, 비트 변경부(130)는 마지막 패리티 비트의 비트 값에 기초하여 다음 블록 이후의 블록에 대한 LDPC 부호화에 의해 생성된 비트들의 비트 값을 반전시킬 수 있다.
즉, 비트 변경부(130)는 복수의 블록 중 두 번째 블록에 대한 LDPC 부호화에 의해 생성된 패리티 비트들 중 마지막 패리티 비트 값에 기초하여 세 번째 블록에 대한 LDPC 부호화에 의해 생성된 비트들을 반전시킬 수 있다.
예를 들어, 비트 변경부(130)는 도 8과 같이 제2 서브 부호어(550-2)의 제2 서브 패리티 비트들 중 마지막 서브 패리티 비트의 비트 값이 1인 경우, 제3 서브 부호어의 제3 서브 패리티 비트들을 반전시킬 수 있다. 상술한 예에서, 반전에 의해 제2 서브 부호어(550-2)의 마지막 서브 패리티 비트의 비트 값은 1로 변경되었다는 점에서, 비트 변경부(130)는 제3 서브 부호어를 구성하는 비트들을 반전시킬 수 있다.
한편, 비트 판단부(120)와 비트 변경부(130)는 나머지 블록에 대해 상술한 과정을 반복할 수 있다.
즉, 비트 판단부(120)는 t 번째 블록에 대한 LDPC 부호화에 의해 생성된 패리티 비트들 중 마지막 패리티 비트의 비트 값을 판단하며, 비트 변경부(130)는 해당 마지막 패리티 비트의 비트 값에 기초하여 t+1 번째 블록에 대한 LDPC 부호화에 의해 생성된 비트들을 반전시킬 수 있다.
상술한 과정이 마지막 블록에 대해 완료되면, 부호어가 최종적으로 생성될 수 있다. 즉, 첫 번째 블록을 제외한 나머지 블록 모두에 대응되는 비트들에 대한 반전 여부가 순차적으로 수행된 후의 서브 부호어를 나열하면 SC-LDPC 부호의 패리티 검사 행렬에 기초하여 생성되는 부호어가 될 수 있다.
즉, 부호화 장치(100)는 첫 번째 블록을 제외한 나머지 블록 모두에 대응되는 비트들에 대한 반전 여부가 순차적으로 수행된 후의 제1 서브 부호어, 제2 서브 부호어,...,제N-1 서브 부호어, 제N 서브 부호어 각각을 구성하는 비트들을 순차적으로 나열하여 출력할 수 있다. 이에 따라, 부호화 장치(100)에서 출력되는 비트들은 SC-LDPC 부호의 패리티 검사 행렬에 기초하여 생성되는 부호어가 될 수 있다.
도 9 및 도 10은 본 발명의 일 실시 예에 따른 부호화 방법의 효과를 설명하기 위한 도면들이다.
도 9는 SC-IRA 부호의 기존 부호화 방법을 설명하기 위한 도면이고, 도 10은 본 발명의 일 실시 예에 따른 SC-IRA 부호의 부호화 방법을 설명하기 위한 도면이다.
도 9를 참조하면, 기존 부호화 방법은 패리티 검사 행렬의 각 블록에 대한 부호화는 순차적으로 진행된다. 즉, t+1 번째 블록에 대한 부호화를 수행하기 위해서는 t 번째 블록에 대한 부호화의 결과가 얻어져야 한다. 이는 t+1 번째 블록 중 패리티 부행렬에 존재하는 단 하나의 1 때문이다. 이에 따라, t 번째 블록과 t+1 번째 블록은 서로 연결되어 있으며, 각 블록에 대해 독립적으로 부호화가 수행될 수 ldT다
즉, 도 9에 도시된 바와 같이 ① 1 번째 블록에 대해 임시 패리티 비트들을 생성하고 ② 순차 누적 과정을 통해 패리티 비트를 산출한다. 다만, 2 번째 블록에 대한 부호화 시, 2 번째 블록은 1 번째 블록과 서로 연결되어 있다는 점에서 ③ 1 번째 블록 및 2 번째 블록에 대해 임시 패리티 비트들을 생성하고 ④ 순차 누적 과정을 패리티 비트를 산출한다.
하지만, 도 10을 참조하면, 본 발명에서는 패리티 부행렬을 영 행렬로 간주하여 각 블록에 대한 부호화를 수행하기 때문에 t+1 번째 블록에 대한 부호화 과정에 t 번째 블록의 패리티 비트 부분은 영향을 미치지 않게 된다. 즉, t 번째 블록에 대한 부호화가 수행되어 있지 않더라도, t+1 번째 블록에 대한 부호화를 수행할 수 있게 된다.
즉, 도 10에 도시된 바와 같이 각 블록에 대해 ① 임시 패리티 비트들을 생성하고, ② 순차 누적 과정을 통해 패리티 비트를 산출하여, 서브 부호어를 생성할 수 있다.
이와 같이, 본 발명에서는 각 블록에 대한 부호화가 병렬적으로 수행될 수 있다. 이에 따라, 가령 패리티 검사 행렬이 N 개의 블록으로 구성되는 경우 기존 방법이 부호화에 a×N 시간이 소요된다면, 본 발명에서는 a 시간에 부호화를 완료할 수 있게 된다.
또한, 상술한 바와 같이 각 서브 부호어를 병렬적으로 생성한 후, 0 을 간주했던 패리티 부행렬의 1을 고려하여 반전 동작을 수행하게 된다. 가령, t 번째 블록의 마지막 서브 부호어 비트가 1이라면, t+1 번째 블록의 서브 부호어 전체를 반전시킨다.
이 경우, t 번째 블록 반전 여부가 결정된 후 t+1 번째 블록의 반전 여부가 결정되기는 하지만, 반전 동작은 하드웨어 구현에 따라 수 클락(clock) 이내의 매우 짧은 시간에 수행될 수 있다는 점에서, 전체 서브 부호어에 대한 반전 동작 또한 짧은 시간에 구현될 수 있다.
이때, 반전 동작에 소요되는 시간을 c라 한다면, 본 발명에서 부호화에 소요되는 시간은 a+c가 될 수 있다. 여기에서, c는 a에 비해 매우 짧은 값이라는 점에서, 본 발명에서의 부호화 방법에서 소요되는 시간은 a+c로 a+c < a×N이 될 수 있으며, 결국 a×N-(a+c) 만큼의 시간이 단축될 수 있다.
도 11은 본 발명의 일 실시 예에 따른 부호화 방법을 설명하기 위한 흐름도이다.
먼저, 정보어 제1 부행렬과 정보어 제1 부행렬에 인접하여 배치된 패리티 제1 부행렬 및 정보어 제2 부행렬과 정보어 제2 부행렬에 인접하여 배치된 패리티 제2 부행렬로 구성되는 복수의 블록 각각에 대한 LDPC 부호화 수행 시 패리티 제2 부행렬의 원소를 변경하여 LDPC 부호화를 수행한다(S1110).
여기에서, 패리티 제1 부행렬은 이중 대각 구조를 가지는 행렬이고, 패리티 제2 부행렬은 첫 번째 행의 가장 마지막 열에 1이 존재하고 나머지 부분은 0인 행렬일 수 있다.
구체적으로, 패리티 제2 부행렬의 첫 번째 행의 마지막 열의 원소를 0으로 변경하여 복수의 블록 각각에 대한 LDPC 부호화를 수행할 수 있다.
이후, 복수의 블록 중 하나에 대한 LDPC 부호화에 의해 생성된 패리티 비트들 중 마지막 패리티 비트의 비트 값을 판단한다(S1120).
그리고, 마지막 패리티 비트의 비트 값에 기초하여 다음 블록에 대한 LDPC 부호화에 의해 생성된 비트들의 비트 값을 반전시킨다(S1130).
이 경우, 복수의 블록 중 하나에 대한 LDPC 부호화에 의해 생성된 패리티 비트들 중 마지막 패리티 비트가 1인 경우, 다음 블록에 대한 LDPC 부호화에 의해 생성된 비트들을 반전시킬 수 있다.
한편, S1120 단계는 마지막 패리티 비트의 비트 값에 기초하여 다음 블록의 패리티 비트들의 반전 여부가 수행된 후 다음 블록에 대한 LDPC 부호화에 의해 생성된 패리티 비트들 중 마지막 패리티 비트의 비트 값을 판단하고, S1130 단계는 마지막 패리티 비트의 비트 값에 기초하여 다음 블록 이후의 블록에 대한 LDPC 부호화에 의해 생성된 비트들의 비트 값을 반전시킬 수 있다.
한편, 각 블록에 대해 병렬적으로 부호화를 수행하는 구체적인 방법에 대해서는 상술한 바 있다.
한편, 본 발명에 따른 부호화 방법을 순차적으로 수행하는 프로그램이 저장된 비일시적 판독 가능 매체(non-transitory computer readable medium)가 제공될 수 있다.
비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
또한, 부호화 장치에 대해 도시한 상술한 블록도에서는 버스(bus)를 미도시하였으나, 부호화 장치에서 각 구성요소 간의 통신은 버스를 통해 이루어질 수도 있다. 또한, 부호화 장치에는 상술한 다양한 단계를 수행하는 CPU, 마이크로 프로세서 등과 같은 프로세서가 더 포함될 수도 있다.
또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100 : 부호화 장치 110 : 인코더
120 : 비트 판단부 130 : 비트 변경부

Claims (10)

  1. 인코딩 장치에 있어서,
    패리티 검사 행렬에 기초하여 입력 비트들을 인코딩하여 제1 서브 코드워드 및 제2 서브 코드워드를 생성하는 인코더;
    상기 제1 서브 코드워드의 마지막 패리티 비트 값을 판단하는 비트 판단부; 및
    상기 제1 서브 코드워드의 마지막 패리티 비트 값이 1인 경우, 상기 제2 서브 코드워드의 비트들을 반전시키는 비트 변경부;를 포함하며,
    상기 제1 서브 코드워드는, 상기 패리티 검사 행렬에 포함된 제1 블록을 기초하여 생성되고,
    상기 제2 서브 코드워드는, 상기 패리티 검사 행렬에 포함된 제2 블록을 기초하여 생성되며,
    상기 제2 블록은, 상기 패리티 검사 행렬에서 상기 제1 블록을 기준으로 컬럼 방향으로 기설정된 수의 로우만큼 쉬프트된 지점에 위치하고,
    상기 인코더는,
    상기 제1 서브 코드워드의 마지막 패리티 비트 값이 0인 경우, 상기 제1 서브 코드워드 및 상기 제2 서브 코드워드에 기초하여 상기 패리티 검사 행렬에 대응되는 코드워드를 생성하고, 상기 제1 서브 코드워드의 마지막 패리티 비트 값이 1인 경우, 상기 제1 서브 코드워드 및 상기 반전된 제2 서브 코드워드에 기초하여 상기 패리티 검사 행렬에 대응되는 코드워드를 생성하는 인코딩 장치.
  2. 제1항에 있어서,
    상기 제1 블록은, 제1 정보어 서브 매트릭스 및 이중 대각 구조를 갖는 제1 패리티 서브 매트릭스를 포함하고,
    상기 제2 블록은, 제2 정보어 서브 매트릭스 및 첫 번째 행의 가장 마지막 열에 1이 존재하고 나머지 부분은 0인 제2 패리티 서브 매트릭스를 포함하는 인코딩 장치.
  3. 제2항에 있어서,
    상기 인코더는,
    상기 제2 패리티 서브 매트릭스의 첫 번째 행의 마지막 열의 원소를 0으로 변경하는 인코딩 장치.
  4. 제1항에 있어서,
    상기 인코더는, 상기 패리티 검사 행렬에 포함된 제3 블록에 기초하여 제3 서브 코드워드를 생성하고,
    상기 제3 블록은, 상기 패리티 검사 행렬에서 상기 제2 블록을 기준으로 컬럼 방향으로 기설정된 수의 로우만큼 쉬프트된 지점에 위치하는 인코딩 장치.
  5. 제4항에 있어서,
    상기 비트 판단부는,
    상기 제1 서브 코드워드의 마지막 패리티 비트 값이 0인 경우, 상기 제2 서브 코드워드의 마지막 패리티 비트 값을 판단하고, 상기 제1 서브 코드워드의 마지막 패리티 비트 값이 1인 경우, 상기 반전된 제2 서브 코드워드의 마지막 패리티 비트 값을 판단하며,
    상기 비트 변경부는, 상기 판단된 마지막 패리티 비트 값이 1인 경우, 상기 제3 서브 코드워드의 비트들을 반전시키고,
    상기 인코더는,
    상기 판단된 마지막 패리티 비트 값이 0인 경우, 상기 제3 서브 코드워드에 기초하여 상기 패리티 검사 행렬에 대응되는 코드워드를 생성하고, 상기 판단된 마지막 패리티 비트 값이 1인 경우, 상기 반전된 제3 서브 코드워드에 기초하여 상기 패리티 검사 행렬에 대응되는 코드워드를 생성하는 인코딩 장치.
  6. 인코딩 방법에 있어서,
    패리티 검사 행렬에 기초하여 입력 비트들을 인코딩하여 제1 서브 코드워드 및 제2 서브 코드워드를 생성하는 단계;
    상기 제1 서브 코드워드의 마지막 패리티 비트 값을 판단하는 단계; 및
    상기 제1 서브 코드워드의 마지막 패리티 비트 값이 1인 경우, 상기 제2 서브 코드워드의 비트들을 반전시키는 단계; 및
    상기 제1 서브 코드워드 및 제2 서브 코드워드에 기초하여 코드워드를 생성하는 단계;를 포함하며,
    상기 제1 서브 코드워드는, 상기 패리티 검사 행렬에 포함된 제1 블록을 기초하여 생성되고,
    상기 제2 서브 코드워드는, 상기 패리티 검사 행렬에 포함된 제2 블록을 기초하여 생성되며,
    상기 제2 블록은, 상기 패리티 검사 행렬에서 상기 제1 블록을 기준으로 컬럼 방향으로 기설정된 수의 로우만큼 쉬프트된 지점에 위치하고,
    상기 코드워드를 생성하는 단계는,
    상기 제1 서브 코드워드의 마지막 패리티 비트 값이 0인 경우, 상기 제1 서브 코드워드 및 상기 제2 서브 코드워드에 기초하여 상기 패리티 검사 행렬에 대응되는 코드워드를 생성하고, 상기 제1 서브 코드워드의 마지막 패리티 비트 값이 1인 경우, 상기 제1 서브 코드워드 및 상기 반전된 제2 서브 코드워드에 기초하여 상기 패리티 검사 행렬에 대응되는 코드워드를 생성하는 인코딩 방법.
  7. 제6항에 있어서,
    상기 제1 블록은, 제1 정보어 서브 매트릭스 및 이중 대각 구조를 갖는 제1 패리티 서브 매트릭스를 포함하고,
    상기 제2 블록은, 제2 정보어 서브 매트릭스 및 첫 번째 행의 가장 마지막 열에 1이 존재하고 나머지 부분은 0인 제2 패리티 서브 매트릭스를 포함하는 인코딩 방법.
  8. 제7항에 있어서,
    상기 제1 서브 코드워드 및 제2 서브 코드워드를 생성하는 단계는,
    상기 제2 패리티 서브 매트릭스의 첫 번째 행의 마지막 열의 원소를 0으로 변경하는 인코딩 방법.
  9. 제6항에 있어서,
    상기 패리티 검사 행렬에 포함된 제3 블록에 기초하여 제3 서브 코드워드를 생성하는 단계;를 더 포함하고,
    상기 제3 블록은, 상기 패리티 검사 행렬에서 상기 제2 블록을 기준으로 컬럼 방향으로 기설정된 수의 로우만큼 쉬프트된 지점에 위치하는 인코딩 방법.
  10. 제9항에 있어서,
    상기 제1 서브 코드워드의 마지막 패리티 비트 값이 0인 경우, 상기 제2 서브 코드워드의 마지막 패리티 비트 값을 판단하고, 상기 제1 서브 코드워드의 마지막 패리티 비트 값이 1인 경우, 상기 반전된 제2 서브 코드워드의 마지막 패리티 비트 값을 판단하는 단계;
    상기 판단된 마지막 패리티 비트 값이 1인 경우, 상기 제3 서브 코드워드의 비트들을 반전시키는 단계; 및
    상기 판단된 마지막 패리티 비트 값이 0인 경우, 상기 제3 서브 코드워드에 기초하여 상기 패리티 검사 행렬에 대응되는 코드워드를 생성하고, 상기 판단된 마지막 패리티 비트 값이 1인 경우, 상기 반전된 제3 서브 코드워드에 기초하여 상기 패리티 검사 행렬에 대응되는 코드워드를 생성하는 단계;를 더 포함하는 인코딩 방법.
KR1020140058333A 2014-05-15 2014-05-15 부호화 장치 및 그의 부호화 방법 KR102098202B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140058333A KR102098202B1 (ko) 2014-05-15 2014-05-15 부호화 장치 및 그의 부호화 방법
US14/580,514 US9660669B2 (en) 2014-05-15 2014-12-23 Encoding apparatus and encoding method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140058333A KR102098202B1 (ko) 2014-05-15 2014-05-15 부호화 장치 및 그의 부호화 방법

Publications (2)

Publication Number Publication Date
KR20150131541A KR20150131541A (ko) 2015-11-25
KR102098202B1 true KR102098202B1 (ko) 2020-04-07

Family

ID=54539369

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140058333A KR102098202B1 (ko) 2014-05-15 2014-05-15 부호화 장치 및 그의 부호화 방법

Country Status (2)

Country Link
US (1) US9660669B2 (ko)
KR (1) KR102098202B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6629073B2 (ja) * 2016-01-04 2020-01-15 日本放送協会 符号化装置、半導体チップ及び符号化プログラム
CN106603082A (zh) * 2016-12-12 2017-04-26 中国人民解放军国防科学技术大学 通用型高速ldpc码编码方法及编码器
CN108429602B (zh) * 2017-02-15 2022-01-28 中兴通讯股份有限公司 一种数据处理方法、装置及发射端
JP7124276B2 (ja) * 2017-08-14 2022-08-24 富士通株式会社 伝送装置、及び誤り訂正方法
KR20210099388A (ko) 2020-02-04 2021-08-12 한국전자통신연구원 Ldpc 복호 방법 및 ldpc 복호 장치
CN115955217B (zh) * 2023-03-15 2023-05-16 南京沁恒微电子股份有限公司 一种低复杂度数字滤波器系数自适应组合编码方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110131463A1 (en) 2009-12-02 2011-06-02 Lsi Corporation Forward substitution for error-correction encoding and the like

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100837730B1 (ko) * 2006-09-29 2008-06-13 한국전자통신연구원 사전에 지정한 패리티를 검사한 결과를 이용해 ldpc코드를 부호화하는 방법
US8392814B2 (en) * 2008-10-07 2013-03-05 Qualcomm Incorporated Method and apparatus for high speed structured multi rate low density parity check codes
KR20110070730A (ko) * 2009-12-18 2011-06-24 한국전자통신연구원 효율적인 ldpc 고속 부호화 방법 및 이를 이용하는 장치
US20110154168A1 (en) * 2009-12-18 2011-06-23 Electronics And Telecommunications Research Institute Effective high-speed ldpc encoding method and apparatus using the same

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110131463A1 (en) 2009-12-02 2011-06-02 Lsi Corporation Forward substitution for error-correction encoding and the like

Also Published As

Publication number Publication date
KR20150131541A (ko) 2015-11-25
US9660669B2 (en) 2017-05-23
US20150333767A1 (en) 2015-11-19

Similar Documents

Publication Publication Date Title
KR102098202B1 (ko) 부호화 장치 및 그의 부호화 방법
JP5112468B2 (ja) 誤り検出訂正回路、メモリコントローラ、および半導体メモリ装置
US9996420B2 (en) Error-correction encoding and decoding
KR102157667B1 (ko) 천공 장치 및 그의 천공 방법
US8869003B2 (en) Method, apparatus, computer program product and device providing semi-parallel low density parity check decoding using a block structured parity check matrix
KR20130029080A (ko) 소거 없는 플래시 메모리의 다중 프로그래밍
US8438448B2 (en) Decoding method and device for low density generator matrix codes
US10090860B2 (en) Memory system using integrated parallel interleaved concatenation
US20080134008A1 (en) Parallel LDPC Decoder
TWI669916B (zh) 低密度奇偶校驗碼延伸方法
WO2017018008A1 (ja) 符号化装置、メモリコントローラ、通信システムおよび符号化方法
KR101913900B1 (ko) 조기 디코딩 종료 검출을 갖는 디코더
US8448041B1 (en) Multistage LDPC encoding
US9350390B2 (en) Encoder, decoder and semiconductor device including the same
US11316534B2 (en) Encoding method and device, decoding method and device, and storage medium
KR101320684B1 (ko) 연접 비씨에이치 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치
CN110113058B (zh) 编译码方法、装置、设备及计算机可读存储介质
US20100185913A1 (en) Method for decoding ldpc code and the circuit thereof
Badack et al. Modified DEC BCH codes for parallel correction of 3-bit errors comprising a pair of adjacent errors
KR101355988B1 (ko) 연접 비씨에이치 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치
US20150254130A1 (en) Error correction decoder
US9009577B1 (en) Circuitry and method for forward error correction
KR101304570B1 (ko) 패리티 체크 행렬 생성 방법, 이를 이용한 오류 정정 방법 및 장치, 오류 정정 장치용 디코더 그리고 오류 정정 장치를 포함하는 메모리 및 전자장치
CN107959502B (zh) 一种ldpc编码方法
KR101355986B1 (ko) 연접 비씨에이치 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치

Legal Events

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