KR101425506B1 - 보완적인 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치 - Google Patents

보완적인 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치 Download PDF

Info

Publication number
KR101425506B1
KR101425506B1 KR1020120105488A KR20120105488A KR101425506B1 KR 101425506 B1 KR101425506 B1 KR 101425506B1 KR 1020120105488 A KR1020120105488 A KR 1020120105488A KR 20120105488 A KR20120105488 A KR 20120105488A KR 101425506 B1 KR101425506 B1 KR 101425506B1
Authority
KR
South Korea
Prior art keywords
message
matrix
row
data
column
Prior art date
Application number
KR1020120105488A
Other languages
English (en)
Other versions
KR20140039113A (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 KR1020120105488A priority Critical patent/KR101425506B1/ko
Priority to PCT/KR2013/007909 priority patent/WO2014046395A1/ko
Publication of KR20140039113A publication Critical patent/KR20140039113A/ko
Application granted granted Critical
Publication of KR101425506B1 publication Critical patent/KR101425506B1/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

Abstract

본 발명은 보완적인 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치에 관한 것이다.
부호화 방법은 원본 메시지 데이터로부터 n 개 비트로 이루어지고, n 개 비트로 이루어진 이전 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터를 삭제시키고, 삭제된 데이터의 비트 수 만큼을 원본 메시지 데이터로부터 이전 메시지 블록의 후속 데이터에 연속하여 채워지거나 후속 데이터 비트들이 부족한 경우에는 비트 1로 채워서 n 개 비트로 이루어진 후속 메시지 블록으로 이루어지는 메시지 블록으로 생성하는 단계; 1 내지 n 중 어느 하나의 자연수인 k에 대하여 n 개 비트로 이루어진 메시지 블록의 각 비트를 n 개의 열(행)로 정렬한 k번째 행(열)인 제k 행(열)과, 제k 행(열)에서 최초로 '1'이 존재하는 열(행)을 제외한 각 행과 각 열에서 하나의 '1'만이 존재하도록 구성된 나머지 행(열)들로 이루어진 n x n 크기의 제1 행렬을 생성하는 단계; 제1 행렬의 역행렬을 구하고, 역행렬에 대하여 2를 법으로 하는 법 연산(modulus operation)을 적용하여 제2 행렬을 생성하는 단계; 및 메시지 블록 또는 제2 행렬을 이용하여 코드워드(codeword)를 생성하여 전송하는 단계를 포함하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법으로 이루어진다.
또한, 복호화 방법은 전송 메시지를 수신하는 단계; 수신한 전송 메시지의 길이를 측정하는 단계; 측정한 전송 메시지의 길이를 비교하는 단계; 비교 결과, 측정된 전송 메시지의 길이가 n2 인 경우, 전송 메시지를 n 블록으로 구분하고, n 블록의 각 블록을 순서대로 행 또는 열로 배열하여 n × n 크기의 제3 행렬을 생성하는 단계; n 블록의 각 블록을 순서대로 행으로 배열하여 제3 행렬을 생성한 경우에는 생성된 제3 행렬의 n 개의 행(row)들 중에서 상대적으로 가장 고밀도(densest)인 행을 선택하고, n 블록의 각 블록을 순서대로 열로 배열하여 제3 행렬을 생성한 경우에는 생성된 제3 행렬의 n 개의 열(column)들 중에서 상대적으로 가장 고밀도(densest)인 열을 선택하는 단계; 선택한 행 또는 열을 근거로 부분 복호화 메시지 데이터를 생성하고, 측정된 전송 메시지의 길이가 1인 경우에는 n 개의 '0' 으로 이루어진 부분 복호화 메시지 데이터를 생성하는 단계; 및 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 단계로 이루어진다.

Description

보완적인 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치{METHOD AND DEVICE OF ENCODING/DECODING USING COMPLIMENTARY SPARSE INVERSE CODE}
본 발명은 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화/복호화 방법 및 장치에 관한 것으로서, 원본 메시지 데이터로부터 생성된 메시지 블록을 이용하여 행렬을 생성하고, 생성한 행렬의 역행렬과 전송된 데이터의 밀도(density)를 이용하여 메시지를 쉽게 부호화하고 복호화 할 수 있는 보완적인 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치에 관한 것이다.
일반적으로, 많은 통신 장치나 기록 재생 장치에 있어서는 입력 정보 계열을 부호화한 부호 계열을 전송함으로써 디지털 전송 정보의 비트 오류율(Bit Error Rate, BER)의 저감이 도모되고 있다.
최근, 예를 들어 이동 통신이나 우주 통신 등의 통신 분야, 및 지상파 또는 위성 디지털 방송이라는 방송 분야의 연구가 활발하게 진행되고 있으며, 그에 수반하여 오류 정정 부호화 및 복호의 효율화를 목적으로 한 부호 이론에 관한 연구도 꾸준하게 행하여지고 있다.
부호 성능의 이론적 한계의 예로 섀넌(C.E.Shannon)의 통신로 부호화 정리에 의해 부여되는 섀넌 한계가 알려져 있다. 이에 부호 이론에 관한 연구의 목적 중 하나는 이 섀넌 한계에 가까운 성능을 나타내는 부호를 개발하는 것이다.
그러나 기존에 개발된 부호화 방법들은 복호화(decoding) 및 부호화(encoding) 단계에서 효율적이지 못하고, 계산이 복잡해지는 문제점이 발생한다.
이에 부호화 단계에서부터 계산 과정을 현저하게 줄일 수 있으며 복호화 단계에서도 데이터의 복호 성능이 현저하게 개선된 코딩 방법의 필요성이 크게 대두되고 있다.
본 발명은 이와 같은 문제점을 해결하기 위한 것으로, 본 발명은 원본 메시지 데이터로부터 n개 비트로 이루어진 메시지 블록을 생성하고, 메시지 블록을 이용하여 행렬을 생성하고 생성된 행렬의 역행렬(inverse matrix)을 구한 후, 2를 법(modulus 2)으로 하는 연산을 적용한 역행렬을 사용하여 부호화함으로써, 부호화에 사용되는 계산을 현저하게 감소시킬 수 있는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법을 제공하는 데에 그 목적이 있다.
또한, 본 발명은 상기 부호화 방법에 의하여 부호화된 데이터를 행렬로 생성하고, 생성된 행렬에서 각 행(row) 또는 열(column)의 밀도(density)를 기반으로 데이터를 복호화 함으로써, 복잡한 계산 과정이 생략되어 복호 성능을 현저하게 개선시킬 수 있는 저밀도 역 코드(sparse inverse code)를 이용한 보완적인 복호화 방법을 제공하는 데에 그 목적이 있다.
나아가, 본 발명은 상기 보완적인 부호화/복호화 방법을 실행하기 위한 저밀도 역 코드를 이용한 보완적인 부호화/복호화 장치를 제공하는 데에 그 목적이 있다.
본 발명의 실시예들에 따른 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법에 따르면, 원본 메시지 데이터로부터 n 개 비트로 이루어진 메시지 블록으로 생성하는 단계; 1 내지 n 중 어느 하나의 자연수인 k에 대하여 상기 n 개 비트로 이루어진 메시지 블록의 각 비트를 n 개의 열(column)로 정렬한 k번째 행인 제k 행(row) 또는 상기 n 개 비트로 이루어진 메시지 블록의 각 비트를 n 개의 행(row)으로 정렬한 k번째 열인 제k 열(column)로 배열되고, 상기 메시지 블록이 상기 제k 행에 배열되는 경우에는 상기 제k 행과, 상기 제k 행에서 최초로 '1'이 존재하는 열을 제외한 각 행과 각 열에서 하나의 '1'만이 존재하도록 구성된 나머지 행들로 이루어진 n x n 크기의 제1 행렬을 생성하고, 상기 메시지 블록이 상기 제k 열에 배열되는 경우에는 상기 제k 열과, 상기 제k 열에서 최초로 '1'이 존재하는 행을 제외한 각 열과 각 행에서 하나의 '1'만이 존재하도록 구성된 나머지 열들로 이루어진 n x n 크기의 제1 행렬을 생성하는 단계; 상기 제1 행렬의 역행렬을 구하고, 상기 역행렬에 대하여 2를 법으로 하는 법 연산(modulus operation)을 적용하여 제2 행렬을 생성하는 단계; 및 상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하여 전송하는 단계를 포함한다.
본 발명의 실시예들에 있어서, 상기 메시지 블록을 생성하는 단계에서, n 개 비트로 이루어진 이전 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터를 삭제시키고, 상기 원본 메시지 데이터로부터 상기 삭제된 데이터의 비트 수 만큼을 이전 메시지 블록의 후속 데이터로 채워서 n 개 비트로 이루어진 후속 메시지 블록을 생성한다. 여기서, 상기 원본 메시지 데이터로부터 이전 메시지 블록의 후속 데이터로부터 상기 삭제된 데이터의 비트 수 만큼을 전부 채우지 못하는 경우, 상기 채우지 못하는 만큼의 데이터를 비트 '1'로 채워서 상기 후속 메시지 블록을 n 개 비트를 갖도록 생성한다.
본 발명의 다른 실시예들에 있어서, 상기 메시지 블록을 생성하는 단계에서, 상기 n 개 비트로 이루어진 이전 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터를 삭제시키고, 상기 삭제된 데이터의 비트 수 만큼을 비트 '1'로 채워서 n 개 비트로 이루어진 후속 메시지 블록을 생성한다.
본 발명의 실시예들에 있어서, 상기 원본 메시지 데이터가 복수개의 부분 원본 메시지 데이터로 분할하는 경우, 상기 각 부분 원본 메시지 데이터에 대하여 n 개 비트로 이루어진 이전 메시지 블록에서 최초로 ‘1’이 나오는 비트까지의 데이터를 삭제시키고, 상기 원본 메시지 데이터로부터 상기 삭제된 데이터의 비트 수 만큼을 이전 메시지 블록의 후속 데이터로 채워서 n 개 비트로 이루어진 후속 메시지 블록을 생성하는 방법을 사용하거나, 상기 원본 메시지 데이터 또는 부분 원본 메시지 데이터로부터 이전 메시지 블록의 후속 데이터로부터 상기 삭제된 데이터의 비트 수 만큼을 전부 채우지 못하는 경우, 상기 채우지 못하는 만큼의 데이터를 비트 ‘1’로 채워서 상기 후속 메시지 블록을 n 개 비트를 갖도록 생성하는 방법을 사용하거나, 상기 n 개 비트로 이루어진 이전 메시지 블록에서 최초로 ‘1’이 나오는 비트까지의 데이터를 삭제시키고, 상기 삭제된 데이터의 비트 수 만큼을 비트 ‘1’로 채워서 n 개 비트로 이루어진 후속 메시지 블록을 생성하는 방법을 사용하여 n 개 비트로 이루어진 후속 메시지 블록을 생성한다.
또한, 상기 원본 메시지 데이터가 복수개의 부분 원본 메시지 데이터로 분할하는 경우, 이웃하는 부분 원본 메시지 데이터로부터 이전 메시지 블록에서 삭제된 데이터의 비트 수 만큼을 이전 메시지 블록의 후속 데이터로 채워서 n 개 비트로 이루어진 후속 메시지 블록을 생성하고, 이웃하는 부분 원본 메시지 데이터로부터 이전 메시지 블록에서 삭제된 데이터의 비트 수 만큼을 전부 채우지 못하는 경우, 상기 채우지 못하는 만큼의 데이터를 비트 '1'로 채워서 n 개 비트로 이루어진 후속 메시지 블록을 생성한다.
한편, 상기 원본 메시지 데이터의 길이와 상기 메시지 블록의 길이가 서로 동일할 수 있다.
본 발명의 실시예들에 있어서, 상기 메시지 블록이 모두 '0'으로만 이루어진 경우에는 '0' 또는 '1'로 이루어진 하나의 비트를 상기 코드워드로 생성한다.
본 발명의 다른 실시예들에 있어서, 상기 제1 행렬을 생성하는 단계에서 상기 메시지 블록에서 최초로 '1'이 나오는 비트가 제k 번째 비트인 경우에, 상기 메시지 블록을 1≤t≤k를 만족하는 제t 행 또는 제t 열에 배열한다.
본 발명의 실시예들에 있어서, 상기 제1 행렬을 생성하는 단계에서, 상기 메시지 블록에서 최초로 '1'이 나오는 비트가 제k 번째 비트이면 상기 메시지 블록을 1≤t≤k를 만족하는 제t 행 또는 제t 열에 배열하고, 상기 제t 행 또는 제t 열을 제외한 나머지 행들 또는 열들에 존재하는 '1'은 상기 제t 행 또는 제t 열에서 최초로 '1'이 나타나는 열 또는 행을 제외하고, 행의 순서 또는 열의 순서대로 각 행과 각 열에 '1'이 하나씩 존재하도록 제1 행렬을 생성한다.
여기서, 최초로 '1'이 나오는 비트가 제k 번째인 상기 메시지 블록이 제1 행렬의 제t 행에 배열되는 경우, 제k 행의 제t 열을 '1', 제k 열을 '0'으로 배열하고 상기 제k 행의 나머지 열은 상기 메시지 블록과 동일하게 구성하며, 제1 행에서 제(k-1) 행까지는 (k-1) × 1 크기의 영행렬, (k-1) × (k-1) 크기의 단위행렬 및 (k-1) × (n-k) 크기의 영행렬을 순서대로 배열하고, 제(k-1) 행에서 제n 행까지는 (n-k) × k 크기의 영행렬과 (n-k) × (n-k) 크기의 단위행렬을 순서대로 배열하여 제2 행렬을 생성한다. 또한, 최초로 '1'이 나오는 비트가 제k 번째인 상기 메시지 블록이 제1 행렬의 제t 열에 배열되는 경우, 제k 열의 제t 행을 '1', 제k 행을 '0'으로 배열하고 상기 제k 열의 나머지 행은 상기 메시지 블록과 동일하게 구성하며, 제1 열에서 제(k-1) 열까지는 (k-1) × 1 크기의 영행렬, (k-1) × (k-1) 크기의 단위행렬 및 (k-1) × (n-k) 크기의 영행렬을 순서대로 배열하고, 제(k-1) 열에서 제n 열까지는 (n-k) × k 크기의 영행렬과 (n-k) × (n-k) 크기의 단위행렬을 순서대로 배열하여 제2 행렬을 생성한다.
본 발명의 실시예들에 있어서, 상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하는 단계에서 상기 메시지 블록이 n개 비트로 이루어진 경우, 상기 코드워드의 길이는 n2 또는 1이 될 수 있다. 구체적으로, 한 개 이상의 비트 1을 가진 상기 메시지 블록이 n개 비트들로 이루어진 경우, 상기 코드워드의 길이는 n2 이고, 모두 비트 0으로 이루어진 상기 메시지 블록이 n개 비트들로 이루어진 경우, 상기 코드워드의 길이는 1이다.
또한, 상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하는 단계에서 상기 생성된 제2 행렬의 제1 행 내지 제n 행을 순서대로 연결하는 방식으로 n2 길이의 코드워드를 생성한다. 이와 달리, 상기 생성된 제2 행렬의 제1 열 내지 제n 열을 순서대로 연결하는 방식으로 n2 길이의 코드워드를 생성할 수 있다.
본 발명의 실시예들에 따른 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법에 따르면, 전송 메시지를 수신하는 단계; 상기 수신한 전송 메시지의 길이를 측정하는 단계; 상기 측정한 전송 메시지의 길이를 비교하는 단계; 상기 비교 결과, 상기 측정된 전송 메시지의 길이가 n2 인 경우, 상기 전송 메시지를 n 블록으로 구분하고, 상기 n 블록의 각 블록을 순서대로 행 또는 열로 배열하여 n × n 크기의 제3 행렬을 생성하는 단계; 상기 n 블록의 각 블록을 순서대로 행으로 배열하여 상기 제3 행렬을 생성한 경우에는 상기 생성된 제3 행렬의 n 개의 행(row)들 중에서 상대적으로 가장 고밀도(densest)인 행을 선택하고, 상기 n 블록의 각 블록을 순서대로 열로 배열하여 상기 제3 행렬을 생성한 경우에는 상기 생성된 제3 행렬의 n 개의 열(column)들 중에서 상대적으로 가장 고밀도(densest)인 열을 선택하는 단계; 상기 선택한 행 또는 열을 근거로 부분 복호화 메시지 데이터를 생성하는 단계; 및 상기 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 단계를 포함한다.
본 발명의 실시예들에 있어서, 상기 비교 결과, 상기 측정된 전송 메시지의 길이가 '1' 인 경우, 메시지 블록의 길이인 n 개의 '0'으로 구성된 부분 복호화 메시지 데이터로 생성한다.
본 발명의 실시예들에 있어서, 상기 생성된 제3 행렬의 n 개의 행(row)들 또는 n 개의 열(column)들 중에서 상대적으로 가장 고밀도(densest)인 행 또는 열을 선택하는 단계는 상기 n 개의 행들 또는 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 행 또는 열을 선택한다.
여기서, 상기 n 개의 행들 또는 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 행 또는 열이 둘 이상인 경우, 제1 행 또는 제1 열을 기준으로 최초의 행 또는 열을 선택한다.
본 발명의 실시예들에 있어서, 상기 제3 행렬을 생성하는 단계 중 상기 n 블록의 각 블록을 순서대로 행으로 배열하여 상기 제3 행렬을 생성한 경우에서 상기 n 개의 행들 각각이 하나의 '1'만을 포함하고 있으면, 제k 열에 '1'을 포함하고 있는 행을 선택한다.
본 발명의 다른 실시예들에 있어서, 상기 제3 행렬을 생성하는 단계 중 상기 n 블록의 각 블록을 순서대로 열로 배열하여 상기 제3 행렬을 생한 경우에서 상기 n 개의 열들 각각이 하나의 '1'만을 포함하고 있으면, 제k 행에 '1'을 포함하고 있는 열을 선택한다.
본 발명의 실시예들에 있어서, 상기 선택한 행 또는 열을 근거로 부분 복호화 메시지 데이터를 생성하는 단계에서 상기 선택한 행 또는 열이 d 번째 행 또는 열인 경우, 먼적 연속적인 (d-1)개의 '0'과 다음으로 '1'이 순서대로 구성된 데이터를 부분 복호화 메시지 데이터로 생성할 수 있다.
본 발명의 실시예들에 있어서, 상기 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 단계에서 상기 생성된 부분 복호화 메시지 데이터를 이전에 생성된 복호화 메시지 데이터에 순서대로 연속 결합한다.
본 발명의 실시예들에 있어서, 상기 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 단계에서 상기 복호화된 메시지의 길이가 상기 원본 메시지 데이터의 길이보다 크거나 같은 경우, 상기 원본 메시지 데이터의 길이만큼의 메시지를 복호화한다.
본 발명의 실시예들에 따른 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치는 원본 메시지 데이터로부터 n 개 비트로 이루어진 메시지 블록으로 생성하는 메시지 블록 생성부; 1 내지 n 중 어느 하나의 자연수인 k에 대하여 상기 n 개 비트로 이루어진 메시지 블록의 각 비트를 n 개의 열(column)로 정렬한 k번째 행인 제k 행(row) 또는 상기 n 개 비트로 이루어진 메시지 블록의 각 비트를 n 개의 행(row)으로 정렬한 k번째 열인 제k 열(column)로 배열되고, 상기 메시지 블록이 상기 제k 행에 배열되는 경우에는 상기 제k 행과, 상기 제k 행에서 최초로 '1'이 존재하는 열을 제외한 각 행과 각 열에서 하나의 '1'만이 존재하도록 구성된 나머지 행들로 이루어진 n x n 크기의 제1 행렬을 생성하고, 상기 메시지 블록이 상기 제k 열에 배열되는 경우에는 상기 제k 열과, 상기 제k 열에서 최초로 '1'이 존재하는 행을 제외한 각 열과 각 행에서 하나의 '1'만이 존재하도록 구성된 나머지 열들로 이루어진 n x n 크기의 제1 행렬을 생성하는 제1 행렬 생성부; 상기 제1 행렬의 역행렬을 구하고, 상기 역행렬에 대하여 2를 법으로 하는 법 연산(modulus operation)을 적용하여 제2 행렬을 생성하는 제2 행렬 생성부; 상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하는 코드워드 생성부; 및 상기 생성한 코드워드를 외부로 전송하는 전송부를 포함한다.
본 발명의 실시예들에 따른 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치는 전송 메시지를 수신하는 전송 메시지 수신부; 상기 수신한 전송 메시지의 길이를 측정하는 전송 메시지 길이 측정부; 상기 측정한 전송 메시지의 길이를 비교하는 전송 메시지 길이 비교부; 상기 비교 결과, 상기 측정된 전송 메시지의 길이가 n2 인 경우, 상기 전송 메시지를 n 블록으로 구분하고, 상기 n 블록의 각 블록을 순서대로 행 또는 열로 배열하여 n × n 크기의 제3 행렬을 생성하는 제3 행렬 생성부; 상기 n 블록의 각 블록을 순서대로 행으로 배열하여 상기 제3 행렬을 생성한 경우에는 상기 생성된 제3 행렬의 n 개의 행(row)들 중에서 상대적으로 가장 고밀도(densest)인 행을 선택하고, 상기 n 블록의 각 블록을 순서대로 열로 배열하여 상기 제3 행렬을 생성한 경우에는 상기 생성된 제3 행렬의 n 개의 열(column)들 중에서 상대적으로 가장 고밀도(densest)인 열을 선택하는 선택부; 상기 선택한 행 또는 열을 근거로 부분 복호화 메시지 데이터를 생성하는 부분 복호화 메시지 데이터 생성부; 및 상기 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 복호화부를 포함한다.
이상에서 설명한 바와 같은 블록크기가 지정된 보완적인 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치에 따르면 다음과 같은 효과가 있다.
첫째, 원본 메시지 데이터를 일정한 크기의 적어도 하나의 메시지 블록들로 절단하고, 최초 메시지 블록 이후의 후속 메시지 블록은 이전 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터를 삭제시키고, 상기 삭제된 데이터의 비트 수 만큼을 상기 원본 메시지에서 이전 메시지 블록의 후속 데이터 비트들로 채워서 후속 메시지 블록을 생성하거나, 상기 메시지 블록에서 상기 삭제된 데이터의 비트 수 만큼을 상기 원본 메시지로부터 이전 메시지 블록의 후속 데이터 비트들로 채우지 못하는 경우, 상기 채우지 못하는 만큼의 데이터를 '1'로 채워서 후속 메시지 블록을 생성하거나, 또는 상기 메시지 블록에서 상기 삭제된 데이터의 비트 수 만큼을 '1'로 채워서 후속 메시지 블록을 생성함으로써, 복호화 성능의 효과와 관련하여 오류를 현저하게 감소시킬 수 있다.
둘째, n개의 비트로 구성된 입력 데이터(메시지 블록)를 특정 k행 또는 특정 k열에 배치하고 상기 제k 행에 배열되는 경우에는 상기 제k 행과, 상기 제k 행에서 최초로 '1'이 존재하는 열을 제외한 각 행과 각 열에서 하나의 '1'만이 존재하도록 구성된 나머지 행들로 이루어진 n x n 크기의 저밀도 제1 행렬을 생성하고, 상기 메시지 블록이 상기 제k 열에 배열되는 경우에는 상기 제k 열과, 상기 제k 열에서 최초로 '1'이 존재하는 행을 제외한 각 열과 각 행에서 하나의 '1'만이 존재하도록 구성된 나머지 열들로 이루어진 n x n 크기의 저밀도인 제1 행렬을 생성함으로써 부호화와 복호화에서 계산 부담을 줄일 수 있다.
셋째, 입력 데이터를 특정 행 또는 특정 열에 배치하고, 단위행렬(identity matrix)과 영행렬(zero matrix)을 배치하여 입력 데이터를 포함한 n x n 크기의 저밀도인 제1 행렬을 생성함으로써, 부호화와 복호화에서 추후 계산 과정이 줄어든다.
넷째, 제2 행렬에서 나타나는 규칙들은 복호화의 원천 기술을 제공하고 복호화의 계산 부담을 줄이며, 복호화의 효과를 향상한다.
다섯째, 입력 데이터, 단위행렬 그리고 영행렬로 구성된 제1 행렬의 역행렬 규칙 또는 제2 행렬의 규칙을 활용함으로써, 역행렬에 대한 계산 부담이 줄어들고 복호화의 기술과 성능의 효과에 가장 중요한 역할을 한다.
여섯째, 부호화 단계에서 행렬의 행 또는 열의 순서대로 연접하여 생성된 코드워드를 수신하여 간단한 부호화와 복호화에서 복호 기능을 향상시킨다.
일곱째, 데이터가 포함된 행 또는 열이 가장 높은 밀도(density)를 가지는 것을 이용하여 데이터와 관련된 행 또는 열을 선택함으로써, 복호화 과정을 매우 간단하고 매우 효율적으로 할 수 있다.
[도 1]은 본 발명의 실시예들에 따른 보완적인 저밀도 역 코드를 이용한 부호화 장치를 설명하기 위한 블록도
[도 2]는 본 발명의 실시예들에 따른 보완적인 저밀도 역 코드를 이용한 부호화 방법을 설명하기 위한 순서도
[도 3]은 본 발명의 실시예들에 따른 보완적인 저밀도 역 코드를 이용한 복호화 장치를 설명하기 위한 블록도
[도 4]는 본 발명의 실시예들에 따른 보완적인 저밀도 역 코드를 이용한 복호화 방법을 설명하기 위한 순서도
첨부한 도면을 참조하여 본 발명의 실시예들에 따른 보완적인 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치에 대하여 상세히 설명한다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나, 개략적인 구성을 이해하기 위하여 실제보다 축소하여 도시한 것이다.
또한, 제1 및 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 한편, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 본 발명의 실시예들에 따른 보완적인 저밀도 역 코드를 이용한 부호화 장치를 설명하기 위한 블록도이고, 도 2는 본 발명의 실시예들에 따른 보완적인 저밀도 역 코드를 이용한 부호화 방법을 설명하기 위한 순서도이다.
도 1 및 도 2를 참조하면, 본 발명의 실시예들에 따른 보완적인 저밀도 역 코드를 이용한 부호화 장치(100)는 메시지 블록 생성부(110), 제1 행렬 생성부(120), 제2 행렬 생성부(130), 코드워드(codeword) 생성부(140) 및 전송부(150)를 포함한다.
메시지 블록 생성부(110)는 원본 메시지 데이터로부터 n 개 비트로 이루어진 메시지 블록을 생성한다(S110). 예를 들어, 사용자의 설정 또는 초기화 설정값 등에 따라 메시지 블록의 길이가 특정된다.
만일 원본 메시지 데이터가 100 비트이고, 메시지 블록의 길이가 30 비트로 고정되는 경우에, 메시지 블록은 30 비트이고 잔여 비트가 70 비트로 설정될 수도 있고, 각각 30 비트의 길이를 가지는 3개의 메시지 블록과 10 비트의 길이를 가지는 잔여 비트로 나누어질 수도 있다. 또한, 각각 30 비트의 길이를 가지는 3개의 메시지 블록과 나머지 10비트에 더미 비트가 채워져서 30 비트의 길이를 가지는 메시지 블록으로 구성될 수도 있다.
본 발명의 실시예들에 있어서, 메시지 블록 생성부(110)는 사전에 설정된 길이만큼 원본 메시지 데이터로부터 추출하고, 해당 메시지 블록을 제1 행렬 생성부(120)로 전달한다. 이어서, 메시지 블록 생성부(110)는 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터를 삭제하고, 상기 삭제된 비트 수 만큼을 상기 원본 메시지에서 메시지 블록의 후속 데이터 비트들로 채운다. 여기서 메시지 블록에서 남아있는 데이터가 먼저오고 다음으로 보완되는 비트들 순으로 메시지 블록을 구성할 수 있다.
또한 상기 메시지 블록에서 상기 삭제된 데이터의 비트 수 만큼을 상기 원본 메시지에서 메시지 블록의 후속 데이터 비트들로 채우지 못하는 경우, 상기 채우지 못하는 만큼의 데이터를 '1'로 채워서 후속 메시지 블록을 구성한다.
또는 메시지 블록에서 삭제된 데이터 비트 수만큼 원본 메시지 데이터를 이용하지 않고 비트 '1'을 사용하여 메시지 블록을 생성할 수도 있다. 따라서 후속 메시지 블록은 절단된 만큼의 비트 수가 원본 메시지 데이터로부터 메시지 블록의 후속 데이터에 이어서 보충되거나 또는 비트 '1'만을 사용하여 보충함으로써, 항상 사전에 설정된 길이를 갖도록 한다.
예를 들어, 원본 메시지 데이터의 길이가 9인 '001011010'에 대하여 메시지 블록의 길이를 5로 설정하면, 제1 메시지 블록은 '00101'이고, 상기 제1 메시지 블록을 이용하여 제1 행렬이 생성된다.
상기 제1 메시지 블록의 후속 메시지 블록인 제2 메시지 블록은 제1 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터인 '001'을 삭제한 후 제1 메시지 블록에서 남아 있는 두 개의 비트들 '01'과 원본 메시지 데이터에서 제1 메시지 블록의 후속 데이터 '1010'에서 삭제된 3개의 비트 수 만큼 '1010'에서 순차적으로 취하여 '101'을 얻을 수 있으며 상기 제1 메시지 블록에서 남아있던 두 개의 비트들 '01'과 순차적으로 결합하면 설정된 길이가 5인 제2 메시지 블록 '01101'을 얻는다.
상기 제2 메시지 블록의 후속 메시지 블록인 제3 메시지 블록은 제2 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터인 '01'을 삭제하면 제2 메시지 블록에서 남아 있는 세 개의 비트들 '101'에 두 개의 비트를 추가하여야 한다. 이 때, 상기 제2 메시지 블록에서 삭제된 비트 수 만큼 채우기 위해 원본 메시지 데이터에 남아있는 '0'을 제2 메시지 블록의 남아있는 '101'과 순차적으로 결합하여 '1010'을 얻을 수 있다. 그러나 설정된 메시지 블록의 길이인 5를 충족하지 못하므로 비트 '1'을 마지막에 추가하여 제3 메시지 블록 '10101'을 얻을 수 있다. 다시 말해서, 제3 메시지 블록에서 '마지막 한 개의 비트 '1'을 보충하지 않으면 원본 메시지 데이터의 잔여 데이터(비트)가 없어서, 원본 메시지 데이터로부터는 후속 메시지 블록을 채워줄 수 없다. 이와 같은 경우, 후속 메시지 블록에는 '1'로 채워진다.
제4 메시지 블록은 제3 메시지 블록에서 최초로 '1'이 나타나는 비트까지 즉 '1'을 삭제하고 제3 메시지 블록에서 남아있는 비트들 '0101'과 원본 메시지 데이터에서 제3 블록 메시지의 후속 데이터가 더 이상 없기 때문에 설정된 블록 메시지 길이를 충족하지 못하는 비트 수 만큼 '1'로서 채워간다. 따라서 제4 메시지 블록은 '01011'이 된다.
제5 메시지 블록은 제4 메시지 블록에서 최초로 '1'이 나타나는 비트까지 즉 '01'을 삭제한 후에 남아있는 있는 비트들 '011'과 추가 두 개의 비트 '11'을 순차적으로 결합하여 제5 메시지 블록은 '01111'이 된다.
그러므로 총 길이가 9인 원본 메시지 데이터 '001011010'에 대하여 제 1 메시지 블록으로부터 제5 메시지 블록이 생성된다. 상기 메시지 블록들이 생성되는 것을 정리하면 아래 표 1과 같다.
메시지 블록 보완된 후속데이터 비트 '1'로 보완
제 1 메시지 블록 00101
제 2 메시지 블록 01101 101
제 3 메시지 블록 10101 0 1
제 4 메시지 블록 01011 1
제 5 메시지 블록 01111 11
다른 한편으로 원본 메시지 데이터를 이용하지 않고 비트 '1'을 사용하여 삭제된 비트들을 보완할 수 있다.
구체적으로, 원본 메시지 블록의 길이를 메시지 블록의 길이로 설정하면 상기 원본 메시지 데이터 '001011010'에 대하여 제1 메시지 블록은 상기 원본 메시지 데이터와 동일하고 제2 메시지 블록은 제1 메시지 블록에서 최초로 '1'이 나타나는 비트까지 즉 '001'을 삭제한 후 제1 메시지 블록에서 남아있는 비트들 '011010'과 삭제된 비트만큼 '1'로 보완하면 제2 메시지 블록은 '011010111'이고, 제3 메시지 블록은 제2 메시지 블록에서 최초로 '1'이 나타나는 비트까지 즉 '01'을 삭제하고 제2 메시지 블록에서 남아있는 비트들 '1010111'과 삭제된 비트만큼 비트 '1'로 보완하여 제3 메시지 블록은 '101011111'이며, 제4 메시지 블록은 제3 메시지 블록에서 최초로 '1'이 나타나는 비트까지 즉 '1'을 삭제하고 제3 메시지 블록에서 남아있는 비트들 '01011111'와 삭제된 비트만큼 비트 '1'을 보완하여 제4 메시지 블록으로 '010111111'을 얻는다. 제5 메시지 블록은 제4 메시지 블록에서 최초로 '1'이 나타나는 비트까지 '01'을 삭제하고 제4 메시지 블록에서 남아있는 비트들 '0111111'와 삭제된 비트 수 만큼 비트 '1'을 보완하여 제5 메시지 블록 '01111111'을 얻는다.
그러므로 상기 원본 메시지 데이터의 길이를 메시지 블록의 길이로 설정한 경우에는 제1 메시지 블록으로부터 제5 메시지 블록까지 생성된다. 상기 메시지 블록들이 생성되는 것을 정리하면 아래 표 2와 같다.
메시지 블록 비트 '1'로 보완
제 1 메시지 블록 001011010
제 2 메시지 블록 011010111 111
제 3 메시지 블록 101011111 11
제 4 메시지 블록 010111111 1
제 5 메시지 블록 011111111 11
또한, 원본 메시지 데이터가 복수개의 부분 원본 메시지 데이터로 분할하는 경우, 각 부분 원본 메시지 데이터에 대하여 메시지 블록을 생성하는 다양한 방법을 동시에 또는 각각 적용할 수 있다. 예를 들어, 원본 메시지 데이터보다 작은 비트 수를 갖는 부분 원본 메시지 데이터들 각각에 대해서 동일한 방법을 사용하여 메시지 블록을 생성할 수도 있고, 부분 원본 메시지 데이터들을 구성하는 비트의 종류에 따라 각각의 부분 원본 메시지 데이터들마다 다른 방법을 사용하여 메시지 블록을 생성할 수도 있다.
나아가, 상기 원본 메시지 데이터가 복수개의 부분 원본 메시지 데이터로 분할하는 경우, 이웃하는 부분 원본 메시지 데이터로부터 이전 메시지 블록에서 삭제된 데이터의 비트 수 만큼을 이전 메시지 블록의 후속 데이터로 채워서 n 개 비트로 이루어진 후속 메시지 블록을 생성한다. 그리고 이웃하는 부분 원본 메시지 데이터로부터 이전 메시지 블록에서 삭제된 데이터의 비트 수 만큼을 전부 채우지 못하는 경우, 상기 채우지 못하는 만큼의 데이터를 비트 '1'로 채워서 n 개 비트로 이루어진 후속 메시지 블록을 생성할 수 있다. 즉, 복수의 부분 원본 메시지 데이터들이 서로 연동하여 메시지 블록을 생성하는데 사용될 수 있다.
한편, 원본 메시지 데이터의 길이와 상기 메시지 블록의 길이가 서로 동일할 수도 있다. 즉, 원본 메시지 데이터를 그대로 메시지 블록으로 사용하는 경우이다. 이 경우, 메시지 블록을 생성할 때에는 이전 메시지 블록에서 삭제된 비트에 대해서 후속 메시지 블록에 보충할 원본 메시지 데이터가 없으므로, 비트 '1'로 후속 메시지 블록을 채울 수 있다.
한편, 메시지 블록 생성부(110)는 메시지 블록이 모두 '0'으로만 이루어진 경우에는 메시지 블록 생성부(110)는 '0' 또는 '1'로 이루어진 하나의 비트를 코드워드 생성부(140)에서 코드워드로 생성한다.
본 발명의 실시예들에 있어서, 제1 행렬 생성부(120)는 메시지 블록 생성부(110)로부터 전달받은 n 개 비트로 이루어진 메시지 블록을 1 내지 n 중 어느 하나의 자연수인 k에 대하여 각 비트를 n 개의 열로 정렬한 k번째 행인 제k 행(row)과, 상기 제 k행에서 최초로 '1'이 존재하는 열을 제외한 각 행과 각 열에서 하나의 '1'만이 존재하도록 구성된 나머지 행들로 이루어진 n x n 크기의 제1 행렬을 생성한다(S120).
또한, 제1 행렬 생성부(120)는 상기 메시지 블록이 상기 제k 행에 배열되는 경우에는 상기 제1 행렬은 상기 제k 행을 제외한 나머지 행들에 존재하는 '1'은 상기 제k 행에서 최초로 '1'이 나타나는 열을 제외하고, 행의 순서 또는 열의 순서대로 각 행과 각 열에 '1'이 하나씩 존재하도록 제1 행렬을 구성할 수 있다.
본 발명의 다른 실시예들에 있어서, 제1 행렬 생성부(120)는 메시지 블록 생성부(110)로부터 전달받은 n 개 비트로 이루어진 메시지 블록을 각 비트를 n 개의 행(row)으로 정렬한 k번째 열인 제k 열(column)과, 상기 제k 열과, 상기 제k 열에서 최초로 '1'이 존재하는 행을 제외한 각 열과 각 행에서 하나의 '1'만이 존재하도록 구성된 나머지 열들로 이루어진 n x n 크기의 제1 행렬을 생성할 수 있다.
나아가, 제1 행렬 생성부(120)는 상기 메시지 블록이 상기 제k 열에 배열되는 경우에는 상기 제1 행렬은 상기 제k 열을 제외한 나머지 열들에 존재하는 '1'은 상기 제k 열에서 최초로 '1'이 나타나는 행을 제외하고, 열의 순서 또는 행의 순서대로 각 열과 각 행에 '1'이 하나씩 존재하도록 제1 행렬을 구성할 수 있다.
즉, 제1 행렬 생성부(120)는 메시지 블록 생성부(110)로부터 전달받은 메시지 블록을 특정 행(row)에 배열할 수 있고, 특정 열(column)로 배열할 수도 있다.
예를 들어, 메시지 블록 생성부(110)에서 제1 메시지 블록으로 '00101'을 제1 행렬 생성부(120)로 전달할 경우, 제1 행렬 생성부(120)는 상기 제1 메시지 블록을 제1 행으로 구성하고, 나머지 행을 상기 제1 행을 제외한 나머지 행들인 제2 행 내지 제n 행에는 상기 제1 행에서 최초로 '1'이 나타나는 열을 제외하고, 행의 순서 또는 열의 순서대로 각 행과 각 열에 '1'이 하나씩 존재하도록 제1 행렬을 구성할 수 있다.
즉, 제1 행렬 생성부(120)는 제1 메시지 블록 '00101'에 대해서는 아래의 수학식 1과 같이 구성된 제1 행렬을 생성한다.
[수학식 1]
Figure 112012076993731-pat00001
이어서, 제1 행렬 생성부(120)는 제2 메시지 블록이 '01101'이고, 제3 메시지 블록이 '10101'인 경우에는 각각 아래의 수학식 2, 수학식 3과 같은 제1 행렬을 생성한다.
[수학식 2]
Figure 112012076993731-pat00002
[수학식 3]
Figure 112012076993731-pat00003
제2 행렬 생성부(130)는 제1 행렬 생성부(120)에서 생성한 제1 행렬의 역행렬을 구한 후에 2를 법으로 하는 법 연산(modulus operation)을 적용하여 제2 행렬을 생성한다(S130). 이 때, 제1 행렬 생성부(120)에서 a 개의 제1 행렬을 생성한 경우, 제2 행렬 생성부(130)도 a 개의 제2 행렬을 생성한다.
예를 들어, 제1 행렬 생성부(120)가 수학식 1 내지 수학식 3의 제1 행렬들을 생성한 경우에, 제2 행렬 생성부(130)는 수학식 1 내지 수학식 3의 제1 행렬들에 대응하는 수학식 4 내지 수학식 6의 제2 행렬들을 생성한다.
[수학식 4]
Figure 112012076993731-pat00004
[수학식 5]
Figure 112012076993731-pat00005
[수학식 6]
Figure 112012076993731-pat00006
본 발명의 실시예들에 있어서, 제1 행렬 생성부(120)는 상기 메시지 블록에서 최초로 '1'이 나오는 비트가 제k 비트인 경우에, 상기 메시지 블록을 1≤t≤k를 만족하는 제t 행 또는 제t 열에 배열할 수 있다. 이 때, 제1 행렬 생성부(120)는 상기 제t 행 또는 제t 열을 제외한 나머지 행들 또는 열들에 존재하는 '1'은 상기 제t 행 또는 제t 열에서 최초로 '1'이 나타나는 열 또는 행을 제외하고, 행의 순서 또는 열의 순서대로 각 행과 각 열에 '1'이 하나씩 존재하도록 제1 행렬을 생성할 수 도 있다.
이 경우, 최초로 '1'이 나오는 비트가 제k 번째인 상기 메시지 블록이 제1 행렬의 제t 행에 배열되는 경우, 제2 행렬 생성부(130)는 제k 행의 제t 열을 '1', 제k 열을 '0'으로 배열하고 상기 제k 행의 나머지 열은 상기 메시지 블록과 동일하게 구성하며, 제1 행에서 제(k-1) 행까지는 (k-1) × 1 크기의 영행렬, (k-1) × (k-1) 크기의 단위행렬 및 (k-1) × (n-k) 크기의 영행렬을 순서대로 배열하고, 제(k-1) 행에서 제n 행까지는 (n-k) × k 크기의 영행렬과 (n-k) × (n-k) 크기의 단위행렬을 순서대로 배열하여 제2 행렬을 생성할 수 있다.
마찬가지로, 최초로 '1'이 나오는 비트가 제k 번째인 상기 메시지 블록이 제1 행렬의 제t 열에 배열되는 경우, 제2 행렬 생성부(130)는 제k 열의 제t 행을 '1', 제k 행을 '0'으로 배열하고 상기 제k 열의 나머지 행은 상기 메시지 블록과 동일하게 구성하며, 제1 열에서 제(k-1) 열까지는 (k-1) × 1 크기의 영행렬, (k-1) × (k-1) 크기의 단위행렬 및 (k-1) × (n-k) 크기의 영행렬을 순서대로 배열하고, 제(k-1) 열에서 제n 열까지는 (n-k) × k 크기의 영행렬과 (n-k) × (n-k) 크기의 단위행렬을 순서대로 배열하여 제2 행렬을 생성할 수 있다.
이와 같이, 제1 행렬을 구성하는 방법에 따라, 제2 행렬을 역행렬과 2를 법으로 하는 법연산을 거치지 않고, 간단한 규칙에 의하여 제2 행렬을 생성할 수도 있다.
본 발명의 실시예들에 있어서, 코드워드(codeword) 생성부(140)는 제2 행렬 생성부(130)가 생성한 n × n 크기의 제2 행렬을 이용하여 n2 길이의 코드워드(codeword)를 생성한다(S140). 본 발명의 실시예들에 있어서, 코드워드 생성부(140)는 상기 생성된 제2 행렬의 제1 행 내지 제n 행을 하나의 라인에 순서대로 배열하는 방식으로 n2 길이의 코드워드를 생성할 수 있다. 예를 들어, 코드워드 생성부(140)는 수학식 4의 제2 행렬에 대해서 '0100000100100010001000001'의 코드워드를 생성할 수 있으며, 수학식 5의 제2 행렬에 대해서 '0100010101001000001000001'의 코드워드를 생성할 수 있다.
메시지 블록이 상기 제k 열에 배열되는 경우에는 코드워드 생성부(140)는 상기 생성된 제2 행렬의 제1 열 내지 제n 열을 순서대로 연결하는 방식으로 n2 길이의 코드워드를 생성한다.
한편, 코드워드 생성부(140)는 메시지 블록 생성부(110)로부터 모두 0으로 구성된 메시지 블록이 코드워드 생성부에 입력되는 경우에는 코드워드 생성부(140)는 '0' 또는 '1'이 코드워드가 되어 하나의 비트를 전송부(150)에 전달한다.
한편, 코드워드 생성부(140)는 메시지 블록 생성부(110)로부터 하나의 비트만이 전달된 경우에는, 코드워드 생성부(140)는 상기 전달받은 하나의 비트를 전송부(150)에 전달한다.
따라서 코드워드 생성부(140)가 생성한 코드워드는 그 길이가 n2 또는 1 이 될 것이다.
전송부(150)는 코드워드 생성부(140)에서 생성된 코드워드를 외부로 전송한다(S150).
이와 같이, 저밀도 역 코드를 이용한 부호화 장치(100)는 원본 메시지 데이터를 일정한 크기의 단수 또는 복수개의 블록들로 절단하고, 최초 메시지 블록 이후의 후속 메시지 블록은 최초 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터를 삭제하고, 상기 삭제된 데이터의 비트 수 만큼을 상기 원본 메시지 데이터에서 메시지 블록의 후속 데이터의 비트들로 채우고, 상기 메시지 블록에서 상기 삭제된 데이터의 비트 수 만큼을 채우지 못하는 경우, 상기 채우지 못하는 만큼의 데이터를 '1'로 채워서 후속 메시지 블록을 구성하거나, 또는 상기 삭제된 데이터의 비트 수 만큼을 비트 '1'로 보완함으로써 후속 메시지 블록을 생성한다. 이와 같은 방법으로 인하여 부호화의 계산 부담과 복호화 성능이 매우 향상되어 오류를 현저하게 감소시킬 수 있다.
도 3은 본 발명의 실시예들에 따른 보완적인 저밀도 역 코드를 이용한 복호화 장치를 설명하기 위한 블록도이고, 도 4는 본 발명의 실시예들에 따른 보완적인 저밀도 역 코드를 이용한 복호화 방법을 설명하기 위한 순서도이다.
도 3 및 도 4를 참조하면, 본 발명의 실시예들에 따른 보완적인 저밀도 역 코드를 이용한 복호화 장치(200)는 전송 메시지 수신부(210), 전송 메시지 길이 측정부(220), 전송 메시지 길이 비교부(230), 제3 행렬 생성부(240), 선택부(250), 부분 복호화 메시지 데이터 생성부(260), 복호화부(270)를 포함한다.
본 발명의 실시예들에 있어서, 저밀도 역 코드를 이용한 복호화 장치(200)는 부호화 장치(100)로부터 일정 정보를 전달받아 복호화 과정을 수행한다. 이 때, 본 복호화 장치(200)는 입력 데이터가 삽입된 행 또는 열에 관한 정보, 원본 메시지 데이터의 길이에 대한 정보, 메시지 블록의 길이, 기복호화된 메시지의 길이(특정 시점까지 총 복호화된(decoded) 메시지의 길이)에 대한 정보, 전송 메시지 길이에 대한 정보들 중 적어도 하나의 정보를 사전에 또는 부호화 장치(100)로부터 전달받아 획득할 수 있다.
전송 메시지 수신부(210)는 외부로부터 전송된 전송 메시지를 수신한다. 이 때, 전송 메시지 수신부(210)는 특정 길이를 갖는 전송 메시지를 수신할 수 있다. 예를 들어, 전송 메시지 수신부(210)는 n2 비트 또는 1 비트의 길이를 갖는 전송 메시지를 수신할 수 있다(S210).
전송 메시지 길이 측정부(220)는 전송 메시지 수신부(210)로부터 전달한 전송 메시지의 길이를 측정하고(S220), 상기 측정된 전송 메시지의 길이를 바탕으로 전송된 메시지는 제3 행렬 생성부(230) 또는 부분 복호화 메시지 데이터 생성부(250)로 전달된다.
한편, 복호화 장치(200)가 전송 메시지 길이를 측정하지 않고도 전송 메시지의 길이에 대한 정보를 이미 알고 있는 경우에는 전송 메시지 길이 측정부(220)를 거치지 않고 전송 메시지 길이 비교부(230)는 전송 메시지가 하나의 비트인지 여부를 판단하고(S230), 상기 비교결과. 전송된 메시지는 제3 행렬 생성부(240) 또는 부분 복호화 메시지 데이터 생성부(260)로 전달될 수 있다.
전송 메시지 길이 비교부(230)는 전송 메시지의 길이가 1 비트인지 여부를 판단한다(S230).
상기 전송 메시지 길이 비교부(230)에서 비교결과, 전송 메시지의 길이가 1이면 부분 복호화 메시지 데이터 생성부(260)로 전달한다. 이 경우, 부분 복호화 메시지 데이터 생성부(260)는 메시지 블록의 길이가 n인 경우, 메시지 블록의 길이(크기)만큼 '0'으로 이루어진 부분 복호화 메시지를 생성한다. 예를 들어, 메시지 블록의 길이가 5 비트인 경우에, 부분 복호화 메시지 데이터 생성부(260)는 '00000'를 부분 복호화 메시지 데이터로 생성한다.
한편, 전송 메시지 길이 비교부(230)에서 전송 메시지의 길이가 n2 인 경우에는 전송된 메시지는 제3 행렬 생성부(240)로 전달된다.
제3 행렬 생성부(240)는 상기 전송 메시지를 n 블록으로 구분하고, 상기 n 블록의 각 블록을 순서대로 행 또는 열로 배열하여 n × n 크기의 제3 행렬을 생성한다. 이 때, 제3 행렬 생성부(240)는 제3 행렬을 n2 길이의 전송 메시지를 n 블록으로 구분한 후, 제1 행 내지 제n 행으로 구성된 제3 행렬을 생성하거나, 제1 열 내지 제n 열로 구성된 제3 행렬을 생성할 수도 있다(S240).
예를 들면 전송메시지 수신부(210)에서 수신된 전송된 메시지가 010101110이면 전송메시지 길이 측정부(220)에서 전송된 메시지 길이가 9로 측정되고, 전송메시지 길이 비교부(230)에서 비교결과 전송된 메시지의 길이가 1이 아니므로 제3 행렬 생성부(240)로 전달되어 제3 행렬 생성부(240)에서는 을 제3 행렬로 생성한다.
[수학식 7]
Figure 112012076993731-pat00007
선택부(250)는 상기 생성된 제3 행렬의 n 개의 행(row)들 중에서 상대적으로 가장 밀도가 높은 행을 선택한다. 즉, 선택부(250)는 최고밀도인 행을 선택하며, 만일 최고밀도가 동일한 여러 행들이 있는 경우에는 가장 먼저 나타나는 최고밀도 행을 선택한다. 본 발명의 실시예들에 있어서, 선택부(250)는 상기 n 개의 행들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 행을 선택한다. 예를 들어, 제3 행렬이 수학식 5의 행렬인 경우, 선택부(250)는 '1'을 가장 많이 포함하고 있는 제2 행을 선택하는 것이다(S250).
또한, 선택부(250)는 상기 n 개의 행들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 행이 둘 이상인 경우, 선택부(250)는 가장 빠른 행을 선택한다. 즉, 선택부(250)는 제1 행을 기준으로 최초의 행을 선택한다. 예를 들어, 제2 행과 제5 행의 밀도가 동일하게 가장 높은 경우에는, 선택부(250)는 제2 행을 선택할 수 있다.
아울러, 제3 행렬에서의 n 개의 행들이 각각이 하나의 '1'만을 포함하고 있는 경우, 선택부(250)는 제k 열(cloumn)에 '1'을 포함하고 있는 행을 선택한다. 즉, 부호화 장치(100)에서 입력 데이터를 제k 행에 삽입한 정보를 전달받은 복호화 장치(200)에서, 선택부(250)는 제3 행렬에서의 n 개의 행들이 각각이 하나의 '1'만을 포함하고 있을 때, 제k 열(cloumn)에 '1'을 포함하고 있는 행을 선택한다.
아울러, 선택부(250)는 제3 행렬 생성부(240)가 전송 메시지를 열 순서대로 배열된 제3 행렬을 생성하는 경우에는, 상기 생성된 제3 행렬의 n 개의 열들 중에서 상대적으로 가장 밀도가 높은 열을 선택할 수 있다. 이 때, 선택부(250)는 행을 기준으로 제3 행렬이 생성된 경우에서 고밀도인 행을 선택하는 대신에 고밀도인 행을 선택하는 대신에 고밀도인 열을 선택하는 것만 차이가 있을 뿐 나머지 기술적 사항은 동일하다고 할 것이므로, 상세한 설명을 생략하기로 한다.
부분 복호화 메시지 데이터 생성부(260)는 선택부(250)에서 선택한 행 또는 열을 근거로 부분 복호화 메시지 데이터를 생성한다(S260).
본 발명의 실시예들에 있어서, 선택부(250)가 선택한 행이 d 번째 행인 경우, 부분 복호화 메시지 데이터 생성부(260)는 먼저 연속적으로 (d-1)개의 '0'과 다음으로 하나의 '1'이 순서대로 구성된 데이터를 부분 복호화 메시지 데이터로 생성한다. 마찬가지로, 선택부(250)가 선택한 열이 d 번째 열인 경우, 부분 복호화 메시지 데이터 생성부(260)는 먼저 연속적으로 (d-1)개의 '0'과 다음으로 하나의 '1'이 순서대로 구성된 데이터를 부분 복호화 메시지 데이터로 생성한다.
예를 들면, 수학식 4가 제3 행렬 생성부(240)에서 생성된 제3 행렬인 경우에 선택부(250)는 제 3행을 선택하고, 부분 복호화 메시지 생성부(260)에서 부분 복호화 메시지는 '001'이며, 수학식 5가 제 3 행렬 생성부(240)에서 생성된 제3 행렬인 경우에 선택부(250)는 제2 행을 선택하고, 부분 복호화 메시지 생성부(260)에서 부분 복호화 메시지는 '01'이며, 수학식 6이 제3 행렬 생성부(240)에서 생성된 제3 행렬인 경우에 선택부(250)는 제1 행을 선택하고, 부분 복호화 메시지 생성부(260)에서 부분 복호화 메시지는 '1'이 된다.
앞에서 언급하였지만, 전송 메시지의 길이가 1 비트인 경우에는 부분 복호화 메시지 데이터 생성부(260)는 메시지 블록의 길이만큼이 모두 0으로 구성된 부분 복호화 메시지 데이터로 생성한다.
복호화부(270)는 부분 복호화 메시지 데이터 생성부(260)가 생성한 부분 복호화 메시지 데이터를 이용하여 복호화한다(S270).
예를 들어, 복호화부(270)는 상기 생성된 부분 복호화 메시지 데이터를 이용하여 이전의 부분 복호화된 메시지에 다음으로 순차적으로 현재 부분 복호화된 메시지(S260)를 연접(concatenation)하여 복호화 메시지를 생성한다(S270). 다시 말하면, 복호화부(270)는 상기 생성된 부분 복호화 메시지 데이터를 이전에 생성된 복호화 메시지 데이터에 순서대로 연속 결합하는 방식으로 복호화할 수 있다.
예를 들면, 수학식 4에서 제 3 행렬 생성부(240)에서 생성된 제3 행렬인 경우에 선택부(250)는 제3 행을 선택하고, 부분 복호화 메시지 생성부(260)에서 부분 복호화 메시지는 '001'이며, 복호화부(270)에서 복호화 메시지는 '001'이고 다음으로 수학식 5에서 제3 행렬 생성부(240)에서 생성된 제3 행렬인 경우에 선택부(250)는 제 2행을 선택하고, 부분 복호화 메시지 생성부(260)에서 부분 복호화 메시지는 '01'이며, 복호화부(270)에서는 이전 복호화 메시지 '001'에 현재 부분 복호화 메시지 '01'을 연결하여 복호화 메시지 '00101'을 얻는다. 다음으로 수학식 6에서 제 3 행렬 생성부(240)에서 생성된 제3 행렬인 경우에 선택부(250)는 제 1행을 선택하고, 부분 복호화 메시지 생성부(260)에서 부분 복호화 메시지는 '1'이며, 이전 복호화 메시지 '00101'에 현재 부분 복호화 메시지 '1'을 연결하여 복호화 메시지 '001011'을 얻는다.
한편, 복호화부(270)가 복호화한 메시지의 길이가 원본 메시지 데이터의 길이보다 크거나 같은 경우, 상기 원본 메시지 데이터의 길이만큼의 메시지를 복호화하고, 전체 복호화된 메시지 중 원본 메시지 데이터의 길이를 초과하여 복호화된 비트들은 최종적으로 복호화 메시지에서 제외한다.
예를 들면 원본 메시지가 '00111010'인 경우에 복호화부(270)에서 복호화 메시지가 '001110101'인 경우에 복호화부(270)에서 마지막 비트 '1'을 제외한 '00111010'을 최종 복호화메시지로 출력한다.
이와 같이, 저밀도 역 코드를 이용한 복호화 장치(200)는 행렬에서 가장 복잡한, 최고밀도의 행 또는 열을 선택하고, 상기 선택한 행의 순서 또는 열의 순서를 이용하여 원본 메시지 데이터 또는 원본 메시지 데이터를 구성하는 부분 복호화 메시지 데이터를 복원할 수 있다. 이에 아주 간단한 계산과 규칙에 의하여 메시지를 복호할 수 있는 성능을 구현할 수 있을 뿐 아니라, 노이즈가 포함되더라도 메시지 데이터가 포함된 행 또는 열이 가장 높은 밀도(density)를 갖는 것에는 큰 영향이 없으므로 오류도 현저히 감소될 수 있다. 나아가, 일정한 크기의 메시지 블록을 이용한 행렬들에 의하여 구성된 코드워드에 의하여 복호화하므로, 오류율을 현저하게 감소시킬 수 있다. 또한, 메시지 블록이 '0'으로 이루어진 경우에는 하나의 비트만을 전달받아 아주 쉽게 복호화하도록 함으로써, 계산 부담을 줄일 수 있다.
위에서 설명한, 실시예는 구체적인 설명을 위하여 기본적인 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치의 구조 및 과정을 예를 들어 서술한 것일 뿐, 그에 한정되는 것은 아니다. 본 발명이 속하는 기술 분야의 통상의 지식을 가진 당업자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
100 : 부호화 장치 110 : 메시지 블록 생성부
120 : 제1 행렬 생성부 130 : 제2 행렬 생성부
140 : 코드워드 생성부 150 : 전송부
200 : 복호화 장치 210 : 전송 메시지 수신부
220 : 전송 메시지 길이 측정부 230 : 전송 메시지 길이 비교부
240 : 제3 행렬 생성부 250 : 선택부
260 : 부분 부호화 메시지 데이터 생성부
270 : 복호화부

Claims (42)

  1. 원본 메시지 데이터로부터 n 개 비트로 이루어진 메시지 블록으로 생성하는 단계;
    1 내지 n 중 어느 하나의 자연수인 k에 대하여 상기 n 개 비트로 이루어진 메시지 블록의 각 비트를 n 개의 열(column)로 정렬한 k번째 행인 제k 행(row) 또는 상기 n 개 비트로 이루어진 메시지 블록의 각 비트를 n 개의 행(row)으로 정렬한 k번째 열인 제k 열(column)로 배열되고,
    상기 메시지 블록이 상기 제k 행에 배열되는 경우에는 상기 제k 행과, 상기 제k 행에서 최초로 '1'이 존재하는 열을 제외한 각 행과 각 열에서 하나의 '1'만이 존재하도록 구성된 나머지 행들로 이루어진 n x n 크기의 제1 행렬을 생성하고,
    상기 메시지 블록이 상기 제k 열에 배열되는 경우에는 상기 제k 열과, 상기 제k 열에서 최초로 '1'이 존재하는 행을 제외한 각 열과 각 행에서 하나의 '1'만이 존재하도록 구성된 나머지 열들로 이루어진 n x n 크기의 제1 행렬을 생성하는 단계;
    상기 제1 행렬의 역행렬을 구하고, 상기 역행렬에 대하여 2를 법으로 하는 법 연산(modulus operation)을 적용하여 제2 행렬을 생성하는 단계; 및
    상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하여 전송하는 단계를 포함하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.
  2. 제1항에 있어서, 상기 메시지 블록을 생성하는 단계에서
    n 개 비트로 이루어진 이전 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터를 삭제시키고, 상기 원본 메시지 데이터로부터 상기 삭제된 데이터의 비트 수 만큼을 이전 메시지 블록의 후속 데이터로 채워서 n 개 비트로 이루어진 후속 메시지 블록을 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.
  3. 제2항에 있어서, 상기 메시지 블록을 생성하는 단계에서
    상기 원본 메시지 데이터로부터 이전 메시지 블록의 후속 데이터로부터 상기 삭제된 데이터의 비트 수 만큼을 전부 채우지 못하는 경우, 상기 채우지 못하는 만큼의 데이터를 비트 '1'로 채워서 상기 후속 메시지 블록을 n 개 비트를 갖도록 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.
  4. 제1항에 있어서, 상기 메시지 블록을 생성하는 단계에서
    상기 n 개 비트로 이루어진 이전 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터를 삭제시키고, 상기 삭제된 데이터의 비트 수 만큼을 비트 '1'로 채워서 n 개 비트로 이루어진 후속 메시지 블록을 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.
  5. 제1항에 있어서,
    상기 원본 메시지 데이터가 복수개의 부분 원본 메시지 데이터로 분할하는 경우,
    상기 각 부분 원본 메시지 데이터에 대하여
    n 개 비트로 이루어진 이전 메시지 블록에서 최초로 ‘1’이 나오는 비트까지의 데이터를 삭제시키고, 상기 원본 메시지 데이터로부터 상기 삭제된 데이터의 비트 수 만큼을 이전 메시지 블록의 후속 데이터로 채워서 n 개 비트로 이루어진 후속 메시지 블록을 생성하는 방법을 사용하거나, 상기 원본 메시지 데이터 또는 부분 원본 메시지 데이터로부터 이전 메시지 블록의 후속 데이터로부터 상기 삭제된 데이터의 비트 수 만큼을 전부 채우지 못하는 경우, 상기 채우지 못하는 만큼의 데이터를 비트 ‘1’로 채워서 상기 후속 메시지 블록을 n 개 비트를 갖도록 생성하는 방법을 사용하거나, 상기 n 개 비트로 이루어진 이전 메시지 블록에서 최초로 ‘1’이 나오는 비트까지의 데이터를 삭제시키고, 상기 삭제된 데이터의 비트 수 만큼을 비트 ‘1’로 채워서 n 개 비트로 이루어진 후속 메시지 블록을 생성하는 방법을 사용하여 n 개 비트로 이루어진 후속 메시지 블록을 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.
  6. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 원본 메시지 데이터가 복수개의 부분 원본 메시지 데이터로 분할하는 경우,
    이웃하는 부분 원본 메시지 데이터로부터 이전 메시지 블록에서 삭제된 데이터의 비트 수 만큼을 이전 메시지 블록의 후속 데이터로 채워서 n 개 비트로 이루어진 후속 메시지 블록을 생성하고,
    이웃하는 부분 원본 메시지 데이터로부터 이전 메시지 블록에서 삭제된 데이터의 비트 수 만큼을 전부 채우지 못하는 경우, 상기 채우지 못하는 만큼의 데이터를 비트 '1'로 채워서 n 개 비트로 이루어진 후속 메시지 블록을 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.
  7. 제1항 또는 제4항에 있어서, 상기 원본 메시지 데이터의 길이와 상기 메시지 블록의 길이가 서로 동일한 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.
  8. 제1항에 있어서,
    상기 메시지 블록이 모두 '0'으로만 이루어진 경우에는 '0' 또는 '1'로 이루어진 하나의 비트를 상기 코드워드로 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.
  9. 제1항에 있어서, 상기 제1 행렬을 생성하는 단계에서
    상기 메시지 블록에서 최초로 '1'이 나오는 비트가 제k 번째 비트인 경우에, 상기 메시지 블록을 1≤t≤k를 만족하는 제t 행 또는 제t 열에 배열하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.
  10. 제1항에 있어서, 상기 제1 행렬을 생성하는 단계에서
    상기 메시지 블록에서 최초로 '1'이 나오는 비트가 제k 번째 비트이면 상기 메시지 블록을 1≤t≤k를 만족하는 제t 행 또는 제t 열에 배열하고,
    상기 제t 행 또는 제t 열을 제외한 나머지 행들 또는 열들에 존재하는 '1'은 상기 제t 행 또는 제t 열에서 최초로 '1'이 나타나는 열 또는 행을 제외하고, 행의 순서 또는 열의 순서대로 각 행과 각 열에 '1'이 하나씩 존재하도록 제1 행렬을 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.
  11. 제10항에 있어서, 상기 제2 행렬을 생성하는 단계에서
    최초로 '1'이 나오는 비트가 제k 번째인 상기 메시지 블록이 제1 행렬의 제t 행에 배열되는 경우,
    제k 행의 제t 열을 '1', 제k 열을 '0'으로 배열하고 상기 제k 행의 나머지 열은 상기 메시지 블록과 동일하게 구성하며, 제1 행에서 제(k-1) 행까지는 (k-1) × 1 크기의 영행렬, (k-1) × (k-1) 크기의 단위행렬 및 (k-1) × (n-k) 크기의 영행렬을 순서대로 배열하고, 제(k-1) 행에서 제n 행까지는 (n-k) × k 크기의 영행렬과 (n-k) × (n-k) 크기의 단위행렬을 순서대로 배열하여 제2 행렬을 생성하고,
    최초로 '1'이 나오는 비트가 제k 번째인 상기 메시지 블록이 제1 행렬의 제t 열에 배열되는 경우,
    제k 열의 제t 행을 '1', 제k 행을 '0'으로 배열하고 상기 제k 열의 나머지 행은 상기 메시지 블록과 동일하게 구성하며, 제1 열에서 제(k-1) 열까지는 (k-1) × 1 크기의 영행렬, (k-1) × (k-1) 크기의 단위행렬 및 (k-1) × (n-k) 크기의 영행렬을 순서대로 배열하고, 제(k-1) 열에서 제n 열까지는 (n-k) × k 크기의 영행렬과 (n-k) × (n-k) 크기의 단위행렬을 순서대로 배열하여 제2 행렬을 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.
  12. 제1항에 있어서, 상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하는 단계에서
    상기 메시지 블록이 n개 비트로 이루어진 경우, 상기 코드워드의 길이는 n2 또는 1인 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.
  13. 제1항에 있어서, 상기 제2 행렬을 이용하여 코드워드를 생성하는 단계에서
    상기 메시지 블록이 상기 제k 행에 배열되는 경우에는 상기 생성된 제2 행렬의 제1 행 내지 제n 행을 순서대로 연결하는 방식으로 n2 길이의 코드워드를 생성하고,
    상기 메시지 블록이 상기 제k 열에 배열되는 경우에는 상기 생성된 제2 행렬의 제1 열 내지 제n 열을 순서대로 연결하는 방식으로 n2 길이의 코드워드를 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.
  14. 부호화 방법에 의하여 코드워드(codeword)로 생성되어 전송된 메시지를 복호화하기 위한 방법에 있어서,
    전송 메시지를 수신하는 단계;
    상기 수신한 전송 메시지의 길이를 측정하는 단계;
    상기 측정한 전송 메시지의 길이를 비교하는 단계;
    상기 비교 결과, 상기 측정된 전송 메시지의 길이가 n2 인 경우, 상기 전송 메시지를 n 블록으로 구분하고, 상기 n 블록의 각 블록을 순서대로 행 또는 열로 배열하여 n × n 크기의 제3 행렬을 생성하는 단계;
    상기 n 블록의 각 블록을 순서대로 행으로 배열하여 상기 제3 행렬을 생성한 경우에는 상기 생성된 제3 행렬의 n 개의 행(row)들 중에서 상대적으로 가장 고밀도(densest)인 행을 선택하고, 상기 n 블록의 각 블록을 순서대로 열로 배열하여 상기 제3 행렬을 생성한 경우에는 상기 생성된 제3 행렬의 n 개의 열(column)들 중에서 상대적으로 가장 고밀도(densest)인 열을 선택하는 단계;
    상기 선택한 행 또는 열을 근거로 부분 복호화 메시지 데이터를 생성하는 단계; 및
    상기 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 단계를 포함하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법.
  15. 제14항에 있어서,
    상기 비교 결과, 상기 측정된 전송 메시지의 길이가 '1' 인 경우,
    메시지 블록의 길이인 n 개의 '0'으로 구성된 부분 복호화 메시지 데이터로 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법.
  16. 제14항에 있어서, 상기 생성된 제3 행렬의 n 개의 행(row)들 또는 n 개의 열(column)들 중에서 상대적으로 가장 고밀도(densest)인 행 또는 열을 선택하는 단계는
    상기 n 개의 행들 또는 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 행 또는 열을 선택하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법.
  17. 제16항에 있어서,
    상기 n 개의 행들 또는 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 행 또는 열이 둘 이상인 경우, 제1 행 또는 제1 열을 기준으로 최초의 행 또는 열을 선택하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법.
  18. 제16항에 있어서,
    상기 제3 행렬을 생성하는 단계 중 상기 n 블록의 각 블록을 행으로 배열하여 상기 제3 행렬을 생성한 경우에는 상기 n 개의 행들 각각이 하나의 '1'만을 포함하고 있으면, 제k 열에 '1'을 포함하고 있는 행을 선택하고,
    상기 제3 행렬을 생성하는 단계 중 상기 n 블록의 각 블록을 열로 배열하여 상기 제3 행렬을 생성한 경우에는 상기 n 개의 열들 각각이 하나의 '1'만을 포함하고 있으면, 제k 행에 '1'을 포함하고 있는 열을 선택하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법.
  19. 제14항에 있어서, 상기 선택한 행 또는 열을 근거로 부분 복호화 메시지 데이터를 생성하는 단계에서
    상기 선택한 행 또는 열이 d 번째 행 또는 열인 경우, 먼저 연속적인 (d-1)개의 '0'과 다음으로 하나의 '1'이 순서대로 구성된 데이터를 부분 복호화 메시지 데이터로 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법.
  20. 제14항에 있어서, 상기 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 단계에서
    상기 생성된 부분 복호화 메시지 데이터를 이전에 생성된 복호화 메시지 데이터에 순서대로 연속 결합하는 방식으로 복호화하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법.
  21. 제14항에 있어서, 상기 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 단계에서
    상기 복호화된 메시지의 길이가 원본 메시지 데이터의 길이보다 크거나 같은 경우, 상기 원본 메시지 데이터의 길이만큼의 메시지를 복호화하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법.
  22. 원본 메시지 데이터로부터 n 개 비트로 이루어진 메시지 블록으로 생성하는 메시지 블록 생성부;
    1 내지 n 중 어느 하나의 자연수인 k에 대하여 상기 n 개 비트로 이루어진 메시지 블록의 각 비트를 n 개의 열(column)로 정렬한 k번째 행인 제k 행(row) 또는 상기 n 개 비트로 이루어진 메시지 블록의 각 비트를 n 개의 행(row)으로 정렬한 k번째 열인 제k 열(column)로 배열되고,
    상기 메시지 블록이 상기 제k 행에 배열되는 경우에는 상기 제k 행과, 상기 제k 행에서 최초로 '1'이 존재하는 열을 제외한 각 행과 각 열에서 하나의 '1'만이 존재하도록 구성된 나머지 행들로 이루어진 n x n 크기의 제1 행렬을 생성하고,
    상기 메시지 블록이 상기 제k 열에 배열되는 경우에는 상기 제k 열과, 상기 제k 열에서 최초로 '1'이 존재하는 행을 제외한 각 열과 각 행에서 하나의 '1'만이 존재하도록 구성된 나머지 열들로 이루어진 n x n 크기의 제1 행렬을 생성하는 제1 행렬 생성부;
    상기 제1 행렬의 역행렬을 구하고, 상기 역행렬에 대하여 2를 법으로 하는 법 연산(modulus operation)을 적용하여 제2 행렬을 생성하는 제2 행렬 생성부;
    상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하는 코드워드 생성부; 및
    상기 생성한 코드워드를 외부로 전송하는 전송부를 포함하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.
  23. 제22항에 있어서, 상기 메시지 블록 생성부는
    n 개 비트로 이루어진 이전 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터를 삭제시키고, 상기 원본 메시지 데이터로부터 상기 삭제된 데이터의 비트 수 만큼을 이전 메시지 블록의 후속 데이터로 채워서 n 개 비트로 이루어진 후속 메시지 블록을 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.
  24. 제23항에 있어서, 상기 메시지 블록 생성부는
    상기 원본 메시지 데이터로부터 이전 메시지 블록의 후속 데이터로부터 상기 삭제된 데이터의 비트 수 만큼을 전부 채우지 못하는 경우, 상기 채우지 못하는 만큼의 데이터를 비트 '1'로 채워서 상기 후속 메시지 블록을 n 개 비트를 갖도록 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.
  25. 제22항에 있어서, 상기 메시지 블록을 생성부는
    상기 n 개 비트로 이루어진 이전 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터를 삭제시키고, 상기 삭제된 데이터의 비트 수 만큼을 비트 '1'로 채워서 n 개 비트로 이루어진 후속 메시지 블록을 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.
  26. 제22항에 있어서,
    상기 원본 메시지 데이터가 복수개의 부분 원본 메시지 데이터로 분할하는 경우,
    상기 각 부분 원본 메시지 데이터에 대하여
    n 개 비트로 이루어진 이전 메시지 블록에서 최초로 ‘1’이 나오는 비트까지의 데이터를 삭제시키고, 상기 원본 메시지 데이터로부터 상기 삭제된 데이터의 비트 수 만큼을 이전 메시지 블록의 후속 데이터로 채워서 n 개 비트로 이루어진 후속 메시지 블록을 생성하는 방법을 사용하거나, 상기 원본 메시지 데이터 또는 부분 원본 메시지 데이터로부터 이전 메시지 블록의 후속 데이터로부터 상기 삭제된 데이터의 비트 수 만큼을 전부 채우지 못하는 경우, 상기 채우지 못하는 만큼의 데이터를 비트 ‘1’로 채워서 상기 후속 메시지 블록을 n 개 비트를 갖도록 생성하는 방법을 사용하거나, 상기 n 개 비트로 이루어진 이전 메시지 블록에서 최초로 ‘1’이 나오는 비트까지의 데이터를 삭제시키고, 상기 삭제된 데이터의 비트 수 만큼을 비트 ‘1’로 채워서 n 개 비트로 이루어진 후속 메시지 블록을 생성하는 방법을 사용하여 n 개 비트로 이루어진 후속 메시지 블록을 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.
  27. 제22항 내지 제25항 중 어느 한 항에 있어서,
    상기 메시지 블록 생성부는
    상기 원본 메시지 데이터가 복수개의 부분 원본 메시지 데이터로 분할하는 경우,
    이웃하는 부분 원본 메시지 데이터로부터 이전 메시지 블록에서 삭제된 데이터의 비트 수 만큼을 이전 메시지 블록의 후속 데이터로 채워서 n 개 비트로 이루어진 후속 메시지 블록을 생성하고,
    이웃하는 부분 원본 메시지 데이터로부터 이전 메시지 블록에서 삭제된 데이터의 비트 수 만큼을 전부 채우지 못하는 경우, 상기 채우지 못하는 만큼의 데이터를 비트 '1'로 채워서 n 개 비트로 이루어진 후속 메시지 블록을 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.
  28. 제22항 또는 제25항에 있어서, 상기 원본 메시지 데이터의 길이와 상기 메시지 블록의 길이가 서로 동일한 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.
  29. 제22항에 있어서, 상기 코드워드 생성부는
    상기 메시지 블록이 모두 '0'으로만 이루어진 경우에는 '0' 또는 '1'로 이루어진 하나의 비트를 상기 코드워드로 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.
  30. 제22항에 있어서, 상기 제1 행렬 생성부는
    상기 메시지 블록에서 최초로 '1'이 나오는 비트가 제k 번째 비트인 경우에, 상기 메시지 블록을 1≤t≤k를 만족하는 제t 행 또는 제t 행에 배열하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.
  31. 제22항에 있어서, 상기 제1 행렬 생성부는
    상기 메시지 블록에서 최초로 '1'이 나오는 비트가 제k 번째 비트이면 상기 메시지 블록을 1≤t≤k를 만족하는 제t 행 또는 제t 열에 배열하고,
    상기 제t 행 또는 제t 열을 제외한 나머지 행들 또는 열들에 존재하는 '1'은 상기 제t 행 또는 제t 열에서 최초로 '1'이 나타나는 열 또는 행을 제외하고, 행의 순서 또는 열의 순서대로 각 행과 각 열에 '1'이 하나씩 존재하도록 제1 행렬을 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.
  32. 제31항에 있어서, 상기 제2 행렬 생성부는
    최초로 '1'이 나오는 비트가 제k 번째인 상기 메시지 블록이 제1 행렬의 제t 행에 배열되는 경우,
    제k 행의 제t 열을 '1', 제k 열을 '0'으로 배열하고 상기 제k 행의 나머지 열은 상기 메시지 블록과 동일하게 구성하며, 제1 행에서 제(k-1) 행까지는 (k-1) × 1 크기의 영행렬, (k-1) × (k-1) 크기의 단위행렬 및 (k-1) × (n-k) 크기의 영행렬을 순서대로 배열하고, 제(k-1) 행에서 제n 행까지는 (n-k) × k 크기의 영행렬과 (n-k) × (n-k) 크기의 단위행렬을 순서대로 배열하여 제2 행렬을 생성하고,
    최초로 '1'이 나오는 비트가 제k 번째인 상기 메시지 블록이 제1 행렬의 제t 열에 배열되는 경우,
    제k 열의 제t 행을 '1', 제k 행을 '0'으로 배열하고 상기 제k 열의 나머지 행은 상기 메시지 블록과 동일하게 구성하며, 제1 열에서 제(k-1) 열까지는 (k-1) × 1 크기의 영행렬, (k-1) × (k-1) 크기의 단위행렬 및 (k-1) × (n-k) 크기의 영행렬을 순서대로 배열하고, 제(k-1) 열에서 제n 열까지는 (n-k) × k 크기의 영행렬과 (n-k) × (n-k) 크기의 단위행렬을 순서대로 배열하여 제2 행렬을 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.
  33. 제22항에 있어서,
    상기 메시지 블록이 n개 비트로 이루어진 경우, 상기 코드워드의 길이는 n2 또는 1인 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.
  34. 제22항에 있어서, 상기 코드워드 생성부는
    상기 메시지 블록이 상기 제k 행에 배열되는 경우에는 상기 생성된 제2 행렬의 제1 행 내지 제n 행을 순서대로 연결하는 방식으로 n2 길이의 코드워드를 생성하고,
    상기 메시지 블록이 상기 제k 열에 배열되는 경우에는 상기 생성된 제2 행렬의 제1 열 내지 제n 열을 순서대로 연결하는 방식으로 n2 길이의 코드워드를 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.
  35. 부호화 장치를 통하여 코드워드(codeword)로 생성되어 전송된 메시지를 복호화하기 위한 장치에 있어서,
    전송 메시지를 수신하는 전송 메시지 수신부;
    상기 수신한 전송 메시지의 길이를 측정하는 전송 메시지 길이 측정부;
    상기 측정한 전송 메시지의 길이를 비교하는 전송 메시지 길이 비교부;
    상기 비교 결과, 상기 측정된 전송 메시지의 길이가 n2 인 경우, 상기 전송 메시지를 n 블록으로 구분하고, 상기 n 블록의 각 블록을 순서대로 행 또는 열로 배열하여 n × n 크기의 제3 행렬을 생성하는 제3 행렬 생성부;
    상기 n 블록의 각 블록을 순서대로 행으로 배열하여 상기 제3 행렬을 생성한 경우에는 상기 생성된 제3 행렬의 n 개의 행(row)들 중에서 상대적으로 가장 고밀도(densest)인 행을 선택하고, 상기 n 블록의 각 블록을 순서대로 열로 배열하여 상기 제3 행렬을 생성한 경우에는 상기 생성된 제3 행렬의 n 개의 열(column)들 중에서 상대적으로 가장 고밀도(densest)인 열을 선택하는 선택부;
    상기 선택한 행 또는 열을 근거로 부분 복호화 메시지 데이터를 생성하는 부분 복호화 메시지 데이터 생성부; 및
    상기 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 복호화부를 포함하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.
  36. 제35항에 있어서,
    상기 비교 결과, 상기 측정된 전송 메시지의 길이가 '1' 인 경우, 상기 부분 복호화 메시지 데이터 생성부는 메시지 블록의 길이인 n 개의 '0'으로 구성된 부분 복호화 메시지 데이터를 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.
  37. 제35항에 있어서, 상기 선택부는
    상기 n 개의 행들 또는 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 행 또는 열을 선택하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.
  38. 제37항에 있어서, 상기 선택부는
    상기 n 개의 행들 또는 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 행 또는 열이 둘 이상인 경우, 제1 행 또는 제1 열을 기준으로 최초의 행 또는 열을 선택하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.
  39. 제37항에 있어서,
    상기 제3 행렬을 생성하는 단계 중 상기 n 블록의 각 블록을 행으로 배열하여 상기 제3 행렬을 생성한 경우에서
    상기 n 개의 행들 각각이 하나의 '1'만을 포함하고 있으면, 제k 열에 '1'을 포함하고 있는 행을 선택하고,
    상기 제3 행렬을 생성하는 단계 중 상기 n 블록의 각 블록을 열로 배열하여 상기 제3 행렬을 생성한 경우에서
    상기 n 개의 열들 각각이 하나의 '1'만을 포함하고 있으면, 제k 행에 '1'을 포함하고 있는 열을 선택하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.
  40. 제35항에 있어서, 상기 부분 복호화 메시지 데이터 생성부는
    상기 선택한 행 또는 열이 d 번째 행 또는 열인 경우, 먼저 연속적인 (d-1)개의 '0'과 다음으로 하나의 '1'이 순서대로 구성된 데이터를 부분 복호화 메시지 데이터로 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.
  41. 제35항에 있어서, 상기 복호화부는
    상기 생성된 부분 복호화 메시지 데이터를 이전에 생성된 복호화 메시지 데이터에 순서대로 연속 결합하는 방식으로 복호화하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.
  42. 제35항에 있어서, 상기 복호화부는
    상기 복호화된 메시지의 길이가 원본 메시지 데이터의 길이보다 크거나 같은경우, 상기 원본 메시지 데이터의 길이만큼의 메시지를 복호화하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.
KR1020120105488A 2012-09-22 2012-09-22 보완적인 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치 KR101425506B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120105488A KR101425506B1 (ko) 2012-09-22 2012-09-22 보완적인 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치
PCT/KR2013/007909 WO2014046395A1 (ko) 2012-09-22 2013-09-02 보완적인 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120105488A KR101425506B1 (ko) 2012-09-22 2012-09-22 보완적인 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20140039113A KR20140039113A (ko) 2014-04-01
KR101425506B1 true KR101425506B1 (ko) 2014-08-05

Family

ID=50341649

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120105488A KR101425506B1 (ko) 2012-09-22 2012-09-22 보완적인 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치

Country Status (2)

Country Link
KR (1) KR101425506B1 (ko)
WO (1) WO2014046395A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102326527B1 (ko) * 2020-06-23 2021-11-15 서울대학교산학협력단 비대칭 암호화 기반의 보안 통신을 수행하는 데이터 전송 장치 및 그 동작 방법
KR102364733B1 (ko) * 2020-11-26 2022-02-17 전남대학교산학협력단 Pbrl-ldpc 부호를 이용한 채널 코딩을 통해 통신을 수행하는 데이터 전송 장치 및 그 동작 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100809616B1 (ko) 2005-10-19 2008-03-05 삼성전자주식회사 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
JP2008258774A (ja) 2007-04-02 2008-10-23 Sumitomo Electric Ind Ltd 符号化装置および符号化プログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8065585B1 (en) * 2007-08-30 2011-11-22 L-3 Communications Corporation High data throughput turbo product encoder
KR101545565B1 (ko) * 2008-12-04 2015-08-19 에스케이텔레콤 주식회사 최대 유사성 복호화 장치 및 방법
EP2457378A4 (en) * 2009-07-23 2016-08-10 Ericsson Telefon Ab L M METHOD AND DEVICE FOR IMAGE CODING AND DECODING
CN102484484B (zh) * 2009-08-25 2014-08-20 富士通株式会社 发送机、编码装置、接收机以及解码装置
US9270299B2 (en) * 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100809616B1 (ko) 2005-10-19 2008-03-05 삼성전자주식회사 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
JP2008258774A (ja) 2007-04-02 2008-10-23 Sumitomo Electric Ind Ltd 符号化装置および符号化プログラム

Also Published As

Publication number Publication date
KR20140039113A (ko) 2014-04-01
WO2014046395A1 (ko) 2014-03-27

Similar Documents

Publication Publication Date Title
TWI648956B (zh) 極化碼的速率匹配方法及通道編碼器
KR101445080B1 (ko) 하이브리드 자동 반복 요구 방식을 사용하는 통신 시스템에서 신호 송신 방법 및 장치
JP5875713B2 (ja) 送信機および受信機、並びに符号化率可変方法
KR101366284B1 (ko) 골레이 부호를 이용한 블록 부호 생성 방법, 데이터 부호화방법 및 데이터 부호화 장치
CN108400838B (zh) 数据处理方法及设备
KR100970645B1 (ko) 블록 코드를 이용한 다양한 길이를 가진 정보의 채널 코딩방법
CN101073205A (zh) 低密度奇偶校验编码器和解码器以及低密度奇偶校验编码和解码方法
KR102289928B1 (ko) 데이터 프로세싱 방법 및 디바이스
KR20090065791A (ko) 낮은 복잡도 및 고속 복호를 위한 패리티 검사행렬 생성방법과, 그를 이용한 저밀도 패리티 검사 부호의 부호화장치 및 그 방법
KR20130052506A (ko) 멀티미디어 통신 시스템에서 준순환 저밀도 패리티 검사 부호 송/수신 장치 및 방법
WO2008075627A1 (ja) 符号化装置、符号化方法、符号化復号装置及び通信装置
KR20160105312A (ko) 가변 길이 시그널링 정보 부호화를 위한 제로 패딩 장치 및 이를 이용한 제로 패딩 방법
US20160149590A1 (en) Length and rate compatible ldpc encoder and decoder
KR101425506B1 (ko) 보완적인 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치
KR102453471B1 (ko) 고정 길이 시그널링 정보 부호화를 위한 제로 패딩 장치 및 이를 이용한 제로 패딩 방법
KR101772008B1 (ko) 통신 및 방송시스템에서 송수신 방법 및 장치
CN107733441B (zh) 编码方法及装置、译码方法及装置
CN114079530A (zh) 编码方法及装置
US20170288697A1 (en) Ldpc shuffle decoder with initialization circuit comprising ordered set memory
KR101391859B1 (ko) 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치
CN108574491B (zh) 数据处理方法、数据处理装置和通信设备
KR101512078B1 (ko) 특정밀도를 기반으로 하는 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치
KR101391853B1 (ko) 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치
KR101613984B1 (ko) 입력 데이터의 상대적 고밀도를 이용한 부호화 방법 및 장치
KR101512081B1 (ko) 특정 밀도를 기반으로 하는 저밀도 행렬을 이용한 부호화/복호화 방법 및 장치

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee