KR20140100835A - 특정밀도를 기반으로 하는 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치 - Google Patents

특정밀도를 기반으로 하는 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치 Download PDF

Info

Publication number
KR20140100835A
KR20140100835A KR1020130014101A KR20130014101A KR20140100835A KR 20140100835 A KR20140100835 A KR 20140100835A KR 1020130014101 A KR1020130014101 A KR 1020130014101A KR 20130014101 A KR20130014101 A KR 20130014101A KR 20140100835 A KR20140100835 A KR 20140100835A
Authority
KR
South Korea
Prior art keywords
column
row
message
matrix
component
Prior art date
Application number
KR1020130014101A
Other languages
English (en)
Other versions
KR101512078B1 (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 KR20130014101A priority Critical patent/KR101512078B1/ko
Priority to PCT/KR2014/000983 priority patent/WO2014123351A1/ko
Publication of KR20140100835A publication Critical patent/KR20140100835A/ko
Application granted granted Critical
Publication of KR101512078B1 publication Critical patent/KR101512078B1/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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • 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/033Theoretical methods to calculate these checking codes
    • H03M13/036Heuristic code construction methods, i.e. code construction or code search based on using trial-and-error
    • 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

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 발명은 특정 밀도를 기반으로 하는 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치에 관한 것이다.
부호화 방법은 원본 메시지 데이터의 각 비트를 n 개의 열(column)로 정렬한 제1 행(row)으로 배열하거나 원본 메시지 데이터의 각 비트를 n 개의 행(row)으로 정렬한 제1 열(column)로 배열하고, 상기 원본 메시지 데이터를 제1 행에 배열하는 경우에는 상기 제1 행에서 최초로 '1'이 존재하는 열을 제i 열이라고 할 때 제2 행부터 제i 행까지 1≤j<i를 만족하는 j에 대하여 제j+1 행의 제j 열의 성분을 '1'로 하고, 제j+1 행의 나머지 성분은 '0'이 되도록 구성하고, i<j≤n을 만족하는 j에 대하여 상기 제1 행의 제j 열의 성분이 '0'이면 제j 행의 제j 열의 성분은 '1'이고 제j 행의 나머지 성분은 '0'으로 구성하며, 상기 제1 행의 제j 열의 성분이 '1'이면 제j 행의 제1 열부터 제j-1 열까지 성분은 '0'으로 하고, 제j 행의 제j 열부터 제n 열까지 상기 제 1행의 제j 열부터 제n 열까지의 성분과 동일하도록 구성하여 이루어진 n x n 크기의 제1 행렬을 생성하고, 상기 원본 메시지 데이터를 제1 열에 배열하는 경우에는 상기 제1 열에서 최초로 '1'이 존재하는 행을 제i 행이라고 할 때 제2 열부터 제i 열까지 1≤j<i를 만족하는 j에 대하여 제j+1 열의 제j 행의 성분을 '1'로 하고, 제j+1 열의 나머지 성분은 '0'이 되도록 구성하고, i<j≤n을 만족하는 j에 대하여 상기 제1 열의 제j 행의 성분이 '0'이면 제j 열의 제j 행의 성분은 '1'이고 제j 열의 나머지 성분은 '0'으로 구성하며, 상기 제1 열의 제j 행의 성분이 '1'이면 제j 열의 제1 행부터 제j-1 행까지 성분은 '0'으로 하고, 제j 열의 제j 행부터 제n 행까지 상기 제 1열의 제j 행부터 제n 행까지의 성분과 동일하도록 구성하여 이루어진 n x n 크기의 제1 행렬을 생성하는 단계 ; 상기 제1 행렬의 역행렬을 구하고, 상기 역행렬에 대하여 2를 법(modulus)으로 하는 법 연산(modulus operation)을 적용하여 제2 행렬을 생성하는 단계; 및 상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하여 전송하는 단계를 포함하는 특정 밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법으로 이루어진다.
또한, 복호화 방법은 전송 메시지를 수신하는 단계; 상기 수신한 전송 메시지를 n 블록으로 구분하고, 상기 n 블록의 각 블록을 순서대로 행 또는 열로 배열하여 n x n 크기의 제3 행렬을 생성하는 단계; 상기 n 블록의 각 블록을 순서대로 행으로 배열하여 제3 행렬을 생성한 경우에는 상기 제3 행렬에서 행의 성분들의 합이 2 이상인 최초의 행을 제i 행 또는 제1 열의 성분이 '1'이고 동시에 그 행의 성분들의 합이 2 이상인 행을 제i 행이라고 할 때, 1≤j<i에 대하여 제3 행렬의 제j 행의 제j+1 열의 성분이 '1'이고 제j 행의 나머지 성분은 '0'으로 하며, 제3 행렬의 제i 행의 제1 열부터 제i-1 열까지 성분은 '0'으로 하고 제i 행의 제i 열의 성분은 '1'로 하며, i+1≤j≤n에 대하여 제3 행렬의 제j 행의 제j 열 성분을 '1'로 하고 제j 행의 제1 열부터 제j-1 열까지의 성분은 '0'으로 하여 제4 행렬을 생성하고, 상기 n 블록의 각 블록을 순서대로 열로 배열하여 제3 행렬을 생성한 경우에는 상기 제3 행렬에서 열의 성분들의 합이 2 이상인 최초의 열을 제i 열 또는 제1 행의 성분이 '1'이고 동시에 그 열의 성분들의 합이 2 이상인 열을 제i 열이라고 할 때, 1≤j<i에 대하여 제3 행렬의 제j 열의 제j+1 행의 성분이 '1'이고 제j 열의 나머지 성분은 '0'으로 하며, 제3 행렬의 제i 열의 제1 행부터 제i-1 행까지 성분은 '0'으로 하고 제i 열의 제i 행의 성분은 '1'로 하며, i+1≤j≤n에 대하여 제3 행렬의 제j 열의 제j 행 성분을 '1'로 하고 제j 열의 제1 행부터 제j-1 행까지의 성분은 '0'으로 하여 제4 행렬을 생성하는 단계; 상기 제4 행렬에서 제1 행렬을 생성할 때 n개의 비트로 구성된 메시지 데이터가 행에 배치되는 경우에, 행(row) 복호화 메시지는 1≤j≤n에 대하여 제i 행의 성분의 합이 '2'이상인 마지막 행을 제j 행이라고 할 때, 1≤i≤j에 대하여 제i 행의 성분의 합이 '2'미만이면 행(row) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 행의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제i 번째의 성분은 '1'로 하고, 제j 행의 제j 열을 제외하고 j<k를 만족하는 k에 대하여 상기 제4 행렬에서 제j 행의 제k 열의 성분이 제j 행의 제j 열의 성분을 제외한 최초의 '1'이고 상기 제4 행렬의 제k 열의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제k 번째의 성분은 '1'로 하며, j<i<k와 k<i≤n을 만족하는 i에 대하여 제i 행의 성분의 합이 '2'미만이면 행(row) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 행의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제i 번째의 성분은 '1'로 하고, 열(column) 복호화 메시지는 상기 제4 행렬에서 1≤i≤n에 대하여 제i 열의 성분의 합이 '2' 미만이면 열(column)복호화 메시지의 제i 번째의 성분은 '0'이고 상기 제4 행렬에서 제i 열의 성분의 합이 '2' 이상이면 열(column)복호화 메시지의 제i 번째의 성분은 '1'로 하여 행(row) 복호화 메시지와 열(column) 복호화 메시지를 생성하고, 상기 제4 행렬에서 제1 행렬을 생성할 때 n개의 비트로 구성된 메시지 데이터가 열에 배치되는 경우에, 열(column) 복호화 메시지는 1≤i≤n에 대하여 제i 열의 성분의 합이 '2'이상인 마지막 열을 제j 열이라고 할 때, 1≤i≤j에 대하여 제i 열의 성분의 합이 '2'미만이면 열(row) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 열의 성분의 합이 '2' 이상이면 열(column) 복호화 메시지의 제i 번째의 성분은 '1'로 하고, 제j 열의 제j 행을 제외하고 j<k를 만족하는 k에 대하여 상기 제4 행렬에서 제j 열의 제k 행의 성분이 제j 열의 제j 행의 성분을 제외한 최초의 '1'이고 상기 제4 행렬의 제k 행의 성분의 합이 '2' 이상이면 열(column) 복호화 메시지의 제k 번째의 성분은 '1'로 하며, j<i<k와 k<i≤n을 만족하는 i에 대하여 제i 열의 성분의 합이 '2'미만이면 열(column) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 열의 성분의 합이 '2' 이상이면 열(column) 복호화 메시지의 제i 번째의 성분은 '1'로 하고, 행(row) 복호화 메시지는 상기 제4 행렬에서 1≤i≤n에 대하여 제i 행의 성분의 합이 '2' 미만이면 행(row)복호화 메시지의 제i 번째의 성분은 '0'이고 상기 제4 행렬에서 제i 행의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제i 번째의 성분은 '1'로 하여 행(row) 복호화 메시지와 열(column) 복호화 메시지를 생성하는 행(row)과 열(column) 복호화 메시지 단계; 및 1≤i≤n에 대하여 상기 행(row) 복호화 메시지의 제i 번째 성분과 열(column) 복호화 메시지의 제i 번째 성분을 비교하여 동일한 경우에 복호화 메시지의 제i 번째 성분을 상기 동일한 값으로 선택하여 복호화하고 상기 행(row) 복호화 메시지와 열(column) 복호화 메시지를 비교하여 동일하지 않은 경우에는 메시지 입력 데이터의 길이 n과 동일한 길이의 복호화 메시지를 얻을 때까지 상기 유사한 부호화 과정과 복호화 과정을 반복 실행하며 이전 단계에서 이미 복호화된 메시지의 성분은 최종 복호화 메시지 성분으로 정하여 그대로 두고 이전단계에서 동일하지 않았던 성분들을 복호화하는 복호화 단계로 이루어진다.

Description

특정밀도를 기반으로 하는 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치 {METHODE AND DEVICE OF ENCODING/DECODING USING SPECIFIC DENSITY BASED SPARSE INVERSE CODE}
본 발명은 특정밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화/복호화 방법 및 장치에 관한 것으로서, 원본 메시지 데이터로부터 행렬을 생성하고, 생성한 행렬의 역행렬과 전송된 데이터의 밀도(density)를 이용하여 메시지를 쉽게 부호화하고 복호화 할 수 있는 특정밀도를 기반으로 하는 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치에 관한 것이다.
일반적으로, 많은 통신 장치나 저장 장치, 기록 재생 장치에 있어서는 입력 정보 계열을 부호화한 부호 계열을 전송함으로써 디지털 전송 정보의 비트 오류율(Bit Error Rate, BER)의 저감이 도모되고 있다.
최근, 예를 들어 이동 통신이나 우주 통신 등의 통신 분야, 및 지상파 또는 위성 디지털 방송이라는 방송 분야의 연구가 활발하게 진행되고 있으며, 그에 수반하여 오류 정정 부호화 및 복호의 효율화를 목적으로 한 부호 이론에 관한 연구도 꾸준하게 행하여지고 있다.
부호 성능의 이론적 한계의 예로 섀넌(C.E.Shannon)의 통신로 부호화 정리에 의해 부여되는 섀넌 한계가 알려져 있다. 이에 부호 이론에 관한 연구의 목적 중 하나는 이 섀넌 한계에 가까운 성능을 나타내는 부호를 개발하는 것이다.
그러나 기존에 개발된 부호화(encoding) 또는 복호화(decoding) 방법보다 더욱 계산이 간단하고 효율적인 부호화 또는 복호화 기술이 요구된다.
이에 부호화 단계에서부터 계산 과정을 줄일 수 있으며 복호화 단계에서도 데이터의 복호 성능의 효율성을 개선한 코딩 방법의 필요성이 크게 대두되고 있다.
본 발명은 이와 같은 문제점을 해결하기 위한 것으로, 본 발명은 원본 메시지 데이터로부터 행렬을 생성하고 생성된 행렬의 역행렬(inverse matrix)을 구한 후, 2를 법(modulus 2)으로 하는 법 연산(modulus operation)을 적용한 행렬을 사용하여 부호화함으로써, 부호화에 사용되는 계산을 감소시킬 수 있는 특정밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법을 제공하는 데에 그 목적이 있다.
또한, 본 발명은 상기 부호화 방법에 의하여 부호화된 데이터를 행렬로 생성하고, 생성된 행렬에서 행(row) 또는 열(column)의 특정밀도(density)를 기반으로 하여 데이터를 복호화 함으로써, 복잡한 계산 과정이 생략되어 복호의 효율성을 개선시킬 수 있는 저밀도 역 코드 (sparse inverse code)를 이용한 특정밀도를 기반으로 하는 저밀도 역 코드의 복호화 방법을 제공하는 데에 그 목적이 있다.
나아가, 본 발명은 상기 특정밀도를 기반으로 하는 저밀도 역 코드의 부호화/복호화 방법을 실행하기 위한 저밀도 역 코드 (sparse inverse code)를 이용한 특정밀도를 기반으로 하는 저밀도 역 코드의 부호화/복호화 장치를 제공하는 데에 그 목적이 있다.
본 발명의 실시예들에 따른 특정밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법에 따르면, 원본 메시지 데이터의 각 비트를 n 개의 열(column)로 정렬한 제1 행(row)으로 배열하거나 원본 메시지 데이터의 각 비트를 n 개의 행(row)으로 정렬한 제1 열(column)로 배열하고, 상기 원본 메시지 데이터를 제1 행에 배열하는 경우에는 상기 제1 행에서 최초로 '1'이 존재하는 열을 제i 열이라고 할 때 제2 행부터 제i 행까지 1≤j<i를 만족하는 j에 대하여 제j+1 행의 제j 열의 성분을 '1'로 하고, 제j+1 행의 나머지 성분은 '0'이 되도록 구성하고, i<j≤n을 만족하는 j에 대하여 상기 제1 행의 제j 열의 성분이 '0'이면 제j 행의 제j 열의 성분은 '1'이고 제j 행의 나머지 성분은 '0'으로 구성하며, 상기 제1 행의 제j 열의 성분이 '1'이면 제j 행의 제1 열부터 제j-1 열까지 성분은 '0'으로 하고, 제j 행의 제j 열부터 제n 열까지 상기 제 1행의 제j 열부터 제n 열까지의 성분과 동일하도록 구성하여 이루어진 n x n 크기의 제1 행렬을 생성하고, 상기 원본 메시지 데이터를 제1 열에 배열하는 경우에는 상기 제1 열에서 최초로 '1'이 존재하는 행을 제i 행이라고 할 때 제2 열부터 제i 열까지 1≤j<i를 만족하는 j에 대하여 제j+1 열의 제j 행의 성분을 '1'로 하고, 제j+1 열의 나머지 성분은 '0'이 되도록 구성하고, i<j≤n을 만족하는 j에 대하여 상기 제1 열의 제j 행의 성분이 '0'이면 제j 열의 제j 행의 성분은 '1'이고 제j 열의 나머지 성분은 '0'으로 구성하며, 상기 제1 열의 제j 행의 성분이 '1'이면 제j 열의 제1 행부터 제j-1 행까지 성분은 '0'으로 하고, 제j 열의 제j 행부터 제n 행까지 상기 제 1열의 제j 행부터 제n 행까지의 성분과 동일하도록 구성하여 이루어진 n x n 크기의 제1 행렬을 생성하는 단계; 상기 제1 행렬의 역행렬을 구하고, 상기 역행렬에 대하여 2를 법(modulus)으로 하는 법 연산(modulus operation)을 적용하여 제2 행렬을 생성하는 단계; 및 상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하여 전송하는 단계를 포함한다.
본 발명의 실시예들에 있어서, 상기 메시지 데이터의 n개 비트가 모두 '0'으로만 이루어진 경우에는 상기 제1 행렬 및 상기 제2 행렬을 생성하지 않고 모두 '0'으로 이루어진 길이가 n2인 상기 코드워드(codeword)를 생성한다.
본 발명의 다른 실시예들에 있어서, 상기 메시지 데이터의 n개 비트가 모두 '0'으로만 이루어진 경우에는 상기 제1 행렬 및 상기 제2 행렬을 생성하지 않고 n2이 아닌 다른 길이로 이루어진 코드워드(codeword)를 생성할 수 있다.
본 발명의 다른 실시예들에 있어서, 상기 메시지 데이터의 n개 비트가 모두 '0'으로만 이루어진 경우에는 상기 제1 행렬 및 상기 제2 행렬을 생성하지 않고 n2개가 아닌 다른 개수의 '0'으로 이루어진 코드워드(codeword)를 생성한다.
본 발명의 실시예들에 있어서, 상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하는 단계에서 상기 원본 메시지 데이터를 상기 제1 행렬의 제1 행에 배열하는 경우에는 상기 생성된 제2 행렬의 제1 행 내지 제n 행을 순서대로 연결하는 방식으로 n2의 길이의 상기 코드워드를 생성하고, 상기 원본 메시지 데이터를 상기 제1 행렬의 제1 열에 배열하는 경우에는 상기 생성된 제2 행렬의 제1 열 내지 제n 열을 순서대로 연결하는 방식으로 n2의 길이의 상기 코드워드(codeword)를 생성할 수 있다.
본 발명의 실시예들에 따른 특정밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법에 따르면, 전송 메시지를 수신하는 단계; 상기 수신된 전송 메시지를 n 블록으로 구분하고, 상기 n 블록의 각 블록을 순서대로 행 또는 열로 배열하여 n x n 크기의 제3 행렬을 생성하는 단계; 상기 n 블록의 각 블록을 순서대로 행으로 배열하여 제3 행렬을 생성한 경우에는 상기 제3 행렬에서 행의 성분들의 합이 2 이상인 최초의 행을 제i 행 또는 제1 열의 성분이 '1'이고 동시에 그 행의 성분들의 합이 2 이상인 행을 제i 행이라고 할 때, 1≤j<i에 대하여 제3 행렬의 제j 행의 제j+1 열의 성분이 '1'이고 제j 행의 나머지 성분은 '0'으로 하며, 제3 행렬의 제i 행의 제1 열부터 제i-1 열까지 성분은 '0'으로 하고 제i 행의 제i 열의 성분은 '1'로 하며, i+1≤j≤n에 대하여 제3 행렬의 제j 행의 제j 열 성분을 '1'로 하고 제j 행의 제1 열부터 제j-1 열까지의 성분은 '0'으로 하여 제4 행렬을 생성하고, 상기 n 블록의 각 블록을 순서대로 열로 배열하여 제3 행렬을 생성한 경우에는 상기 제3 행렬에서 열의 성분들의 합이 2 이상인 최초의 열을 제i 열 또는 제1 행의 성분이 '1'이고 동시에 그 열의 성분들의 합이 2 이상인 열을 제i 열이라고 할 때, 1≤j<i에 대하여 제3 행렬의 제j 열의 제j+1 행의 성분이 '1'이고 제j 열의 나머지 성분은 '0'으로 하며, 제3 행렬의 제i 열의 제1 행부터 제i-1 행까지 성분은 '0'으로 하고 제i 열의 제i 행의 성분은 '1'로 하며, i+1≤j≤n에 대하여 제3 행렬의 제j 열의 제j 행 성분을 '1'로 하고 제j 열의 제1 행부터 제j-1 행까지의 성분은 '0'으로 하여 제4 행렬을 생성하는 단계; 상기 제4 행렬에서 제1 행렬을 생성할 때 n개의 비트로 구성된 메시지 데이터가 행에 배치되는 경우에, 행(row) 복호화 메시지는 1≤j≤n에 대하여 제i 행의 성분의 합이 '2'이상인 마지막 행을 제j 행이라고 할 때, 1≤i≤j에 대하여 제i 행의 성분의 합이 '2'미만이면 행(row) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 행의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제i 번째의 성분은 '1'로 하고, 제j 행의 제j 열을 제외하고 j<k를 만족하는 k에 대하여 상기 제4 행렬에서 제j 행의 제k 열의 성분이 제j 행의 제j 열의 성분을 제외한 최초의 '1'이고 상기 제4 행렬의 제k 열의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제k 번째의 성분은 '1'로 하며, j<i<k와 k<i≤n을 만족하는 i에 대하여 제i 행의 성분의 합이 '2'미만이면 행(row) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 행의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제i 번째의 성분은 '1'로 하고, 열(column) 복호화 메시지는 상기 제4 행렬에서 1≤i≤n에 대하여 제i 열의 성분의 합이 '2' 미만이면 열(column)복호화 메시지의 제i 번째의 성분은 '0'이고 상기 제4 행렬에서 제i 열의 성분의 합이 '2' 이상이면 열(column)복호화 메시지의 제i 번째의 성분은 '1'로 하여 행(row) 복호화 메시지와 열(column) 복호화 메시지를 생성하고, 상기 제4 행렬에서 제1 행렬을 생성할 때 n개의 비트로 구성된 메시지 데이터가 열에 배치되는 경우에, 열(column) 복호화 메시지는 1≤i≤n에 대하여 제i 열의 성분의 합이 '2'이상인 마지막 열을 제j 열이라고 할 때, 1≤i≤j에 대하여 제i 열의 성분의 합이 '2'미만이면 열(row) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 열의 성분의 합이 '2' 이상이면 열(column) 복호화 메시지의 제i 번째의 성분은 '1'로 하고, 제j 열의 제j 행을 제외하고 j<k를 만족하는 k에 대하여 상기 제4 행렬에서 제j 열의 제k 행의 성분이 제j 열의 제j 행의 성분을 제외한 최초의 '1'이고 상기 제4 행렬의 제k 행의 성분의 합이 '2' 이상이면 열(column) 복호화 메시지의 제k 번째의 성분은 '1'로 하며, j<i<k와 k<i≤n을 만족하는 i에 대하여 제i 열의 성분의 합이 '2'미만이면 열(column) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 열의 성분의 합이 '2' 이상이면 열(column) 복호화 메시지의 제i 번째의 성분은 '1'로 하고, 행(row) 복호화 메시지는 상기 제4 행렬에서 1≤i≤n에 대하여 제i 행의 성분의 합이 '2' 미만이면 행(row)복호화 메시지의 제i 번째의 성분은 '0'이고 상기 제4 행렬에서 제i 행의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제i 번째의 성분은 '1'로 하여 행(row) 복호화 메시지와 열(column) 복호화 메시지를 생성하는 행(row)과 열(column) 복호화 메시지 단계; 및 1≤i≤n에 대하여 상기 행(row) 복호화 메시지의 제i 번째 성분과 열(column) 복호화 메시지의 제i 번째 성분을 비교하여 동일한 경우에 복호화 메시지의 제i 번째 성분을 상기 동일한 값으로 선택하여 복호화하고 상기 행(row) 복호화 메시지와 열(column) 복호화 메시지를 비교하여 동일하지 않은 경우에는 메시지 입력 데이터의 길이 n과 동일한 길이의 복호화 메시지를 얻을 때까지 상기 유사한 부호화 과정과 복호화 과정을 반복 실행하며 이전 단계에서 이미 복호화된 메시지의 성분은 최종 복호화 메시지 성분으로 정하여 그대로 두고 이전단계에서 동일하지 않았던 성분들을 복호화하는 복호화 단계를 포함한다.
본 발명의 실시예들에 있어서, 상기 전송 메시지를 수신하는 단계 이후에 상기 수신한 전송 메시지의 길이를 측정하는 단계; 상기 측정한 전송 메시지의 길이를 비교하는 단계를 더 포함할 수 있다. 이 때, 상기 비교 결과, 상기 측정된 전송 메시지의 길이가 n2인 경우, 상기 전송된 메시지를 n 블록으로 구분하고, 상기 n 블록의 각 블록을 순서대로 행 또는 열로 배열하여 n x n 크기의 제3 행렬을 생성한다.
본 발명의 실시예들에 있어서, 상기 측정된 전송 메시지의 길이가 n2이 아닌 경우, 상기 제3 행렬과 상기 제4 행렬 그리고 상기 행(row)과 열(column) 복호화 메시지 단계를 생략하여 상기 복호화 단계에서 상기 부호화 단계의 입력 메시지 길이인 n 개의 '0'으로 구성된 복호화 메시지 데이터를 생성하여 복호화한다.
본 발명의 실시예들에 있어서, 상기 행(row) 복호화 메시지의 제i 번째 성분과 열(column) 복호화 메시지의 제i 번째 성분을 비교하여 복호화 메시지를 얻는 복호화 단계에서 복호화 메시지의 제i 번째 성분은 상기 행(row) 복호화 메시지의 제i 번째 성분과 열(column) 복호화 메시지의 제i 번째 성분의 동일한 값으로 하며, 최초의 상기 동일한 값을 최종 복호화 메시지로 결정한다. 따라서 최초로 복호화된 메시지를 우선적으로 기억하며 후속 복호화 메시지는 이전에 복호화되지 않았던 성분들이 복호화된다.
본 발명의 실시예들에 따른 특정밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치는 제1 행렬 생성부, 제2 행렬 생성부, 코드워드 생성부 및 전송부를 포함한다. 제1 행렬 생성부는 원본 메시지 데이터의 각 비트를 n 개의 열(column)로 정렬한 제1 행(row)으로 배열하거나 원본 메시지 데이터의 각 비트를 n 개의 행(row)으로 정렬한 제1 열(column)로 배열하고, 상기 원본 메시지 데이터를 제1 행에 배열하는 경우에는 상기 제1 행에서 최초로 '1'이 존재하는 열을 제i 열이라고 할 때 제2 행부터 제i 행까지 1≤j<i를 만족하는 j에 대하여 제j+1 행의 제j 열의 성분을 '1'로 하고, 제j+1 행의 나머지 성분은 '0'이 되도록 구성하고, i<j≤n을 만족하는 j에 대하여 상기 제1 행의 제j 열의 성분이 '0'이면 제j 행의 제j 열의 성분은 '1'이고 제j 행의 나머지 성분은 '0'으로 구성하며, 상기 제1 행의 제j 열의 성분이 '1'이면 제j 행의 제1 열부터 제j-1 열까지 성분은 '0'으로 하고, 제j 행의 제j 열부터 제n 열까지 상기 제 1행의 제j 열부터 제n 열까지의 성분과 동일하도록 구성하여 이루어진 n x n 크기의 제1 행렬을 생성한다. 이와 달리, 상기 원본 메시지 데이터를 제1 열에 배열하는 경우에는 상기 제1 열에서 최초로 '1'이 존재하는 행을 제i 행이라고 할 때 제2 열부터 제i 열까지 1≤j<i를 만족하는 j에 대하여 제j+1 열의 제j 행의 성분을 '1'로 하고, 제j+1 열의 나머지 성분은 '0'이 되도록 구성하고, i<j≤n을 만족하는 j에 대하여 상기 제1 열의 제j 행의 성분이 '0'이면 제j 열의 제j 행의 성분은 '1'이고 제j 열의 나머지 성분은 '0'으로 구성하며, 상기 제1 열의 제j 행의 성분이 '1'이면 제j 열의 제1 행부터 제j-1 행까지 성분은 '0'으로 하고, 제j 열의 제j 행부터 제n 행까지 상기 제 1열의 제j 행부터 제n 행까지의 성분과 동일하도록 구성하여 이루어진 n x n 크기의 제1 행렬을 생성한다. 제2 행렬 생성부는 상기 제1 행렬의 역행렬을 구하고, 상기 역행렬에 대하여 2를 법(modulus)으로 하는 법 연산(modulus operation)을 적용하여 제2 행렬을 생성한다. 상기 코드워드 생성부 및 전송부는 상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하고 전송한다.
본 발명의 실시예들에 따른 특정밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치는 전송 메시지를 수신하는 전송 메시지 수신부, 제3 행렬 생성부, 제4 행렬 생성부, 행(row)과 열(column) 복호화 메시지부 및 복호화부를 포함한다. 제3 행렬 생성부는 상기 수신된 전송 메시지를 n 블록으로 구분하고, 상기 n 블록의 각 블록을 순서대로 행 또는 열로 배열하여 n x n 크기의 제3 행렬을 생성한다. 제4 행렬 생성부는 기 제3 행렬이 상기 n 블록의 각 블록을 순서대로 행으로 배열하여 제3 행렬을 생성한 경우에는 상기 제3 행렬에서 행의 성분들의 합이 2 이상인 최초의 행을 제i 행 또는 제1 열의 성분이 '1'이고 동시에 그 행의 성분들의 합이 2 이상인 행을 제i 행이라고 할 때, 1≤j<i에 대하여 제3 행렬의 제j 행의 제j+1 열의 성분이 '1'이고 제j 행의 나머지 성분은 '0'으로 하며, 제3 행렬의 제i 행의 제1 열부터 제i-1 열까지 성분은 '0'으로 하고 제i 행의 제i 열의 성분은 '1'로 하며, i+1≤j≤n에 대하여 제3 행렬의 제j 행의 제j 열 성분을 '1'로 하고 제j 행의 제1 열부터 제j-1 열까지의 성분은 '0'으로 하여 제4 행렬을 생성한다. 이와 달리, 제4 행렬 생성부는 상기 제3 행렬이 상기 n 블록의 각 블록을 순서대로 열로 배열하여 제3 행렬을 생성한 경우에는 상기 제3 행렬에서 열의 성분들의 합이 2 이상인 최초의 열을 제i 열 또는 제1 행의 성분이 '1'이고 동시에 그 열의 성분들의 합이 2 이상인 열을 제i 열이라고 할 때, 1≤j<i에 대하여 제3 행렬의 제j 열의 제j+1 행의 성분이 '1'이고 제j 열의 나머지 성분은 '0'으로 하며, 제3 행렬의 제i 열의 제1 행부터 제i-1 행까지 성분은 '0'으로 하고 제i 열의 제i 행의 성분은 '1'로 하며, i+1≤j≤n에 대하여 제3 행렬의 제j 열의 제j 행 성분을 '1'로 하고 제j 열의 제1 행부터 제j-1 행까지의 성분은 '0'으로 하여 제4 행렬을 생성한다. 행(row)과 열(column) 복호화 메시지부는 상기 제4 행렬에서 제1 행렬을 생성할 때 n개의 비트로 구성된 메시지 데이터가 행에 배치되는 경우에, 행(row) 복호화 메시지는 1≤j≤n에 대하여 제i 행의 성분의 합이 '2'이상인 마지막 행을 제j 행이라고 할 때, 1≤i≤j에 대하여 제i 행의 성분의 합이 '2'미만이면 행(row) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 행의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제i 번째의 성분은 '1'로 하고, 제j 행의 제j 열을 제외하고 j<k를 만족하는 k에 대하여 상기 제4 행렬에서 제j 행의 제k 열의 성분이 제j 행의 제j 열의 성분을 제외한 최초의 '1'이고 상기 제4 행렬의 제k 열의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제k 번째의 성분은 '1'로 하며, j<i<k와 k<i≤n을 만족하는 i에 대하여 제i 행의 성분의 합이 '2'미만이면 행(row) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 행의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제i 번째의 성분은 '1'로 하고, 열(column) 복호화 메시지는 상기 제4 행렬에서 1≤i≤n에 대하여 제i 열의 성분의 합이 '2' 미만이면 열(column)복호화 메시지의 제i 번째의 성분은 '0'이고 상기 제4 행렬에서 제i 열의 성분의 합이 '2' 이상이면 열(column)복호화 메시지의 제i 번째의 성분은 '1'로 하여 행(row) 복호화 메시지와 열(column) 복호화 메시지를 생성한다. 이와 달리, 행(row)과 열(column) 복호화 메시지부는 상기 제4 행렬에서 제1 행렬을 생성할 때 n개의 비트로 구성된 메시지 데이터가 열에 배치되는 경우에, 열(column) 복호화 메시지는 1≤i≤n에 대하여 제i 열의 성분의 합이 '2'이상인 마지막 열을 제j 열이라고 할 때, 1≤i≤j에 대하여 제i 열의 성분의 합이 '2'미만이면 열(row) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 열의 성분의 합이 '2' 이상이면 열(column) 복호화 메시지의 제i 번째의 성분은 '1'로 하고, 제j 열의 제j 행을 제외하고 j<k를 만족하는 k에 대하여 상기 제4 행렬에서 제j 열의 제k 행의 성분이 제j 열의 제j 행의 성분을 제외한 최초의 '1'이고 상기 제4 행렬의 제k 행의 성분의 합이 '2' 이상이면 열(column) 복호화 메시지의 제k 번째의 성분은 '1'로 하며, j<i<k와 k<i≤n을 만족하는 i에 대하여 제i 열의 성분의 합이 '2'미만이면 열(column) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 열의 성분의 합이 '2' 이상이면 열(column) 복호화 메시지의 제i 번째의 성분은 '1'로 하고, 행(row) 복호화 메시지는 상기 제4 행렬에서 1≤i≤n에 대하여 제i 행의 성분의 합이 '2' 미만이면 행(row)복호화 메시지의 제i 번째의 성분은 '0'이고 상기 제4 행렬에서 제i 행의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제i 번째의 성분은 '1'로 하여 행(row) 복호화 메시지와 열(column) 복호화 메시지를 생성한다. 한편, 복호화부는 1≤i≤n에 대하여 상기 행(row) 복호화 메시지의 제i 번째 성분과 열(column) 복호화 메시지의 제i 번째 성분을 비교하여 동일한 경우에 복호화 메시지의 제i 번째 성분을 상기 동일한 값으로 선택하여 복호화하고 상기 행(row) 복호화 메시지와 열(column) 복호화 메시지를 비교하여 동일하지 않은 경우에는 메시지 입력 데이터의 길이 n과 동일한 길이의 복호화 메시지를 얻을 때까지 상기 유사한 부호화 과정과 복호화 과정을 반복 실행하며 이전 단계에서 이미 복호화된 메시지의 성분은 최종 복호화 메시지 성분으로 정하여 그대로 두고 이전단계에서 동일하지 않았던 성분들을 복호화한다.
본 발명의 실시예들에 있어서, 복호화 장치는 상기 전송 메시지 수신부에서 수신한 전송 메시지의 길이를 측정하는 전송 메시지 길이 측정부 및 상기 측정한 전송 메시지의 길이를 비교하는 전송 메시지 길이 비교부를 더 포함한다. 이 때, 상기 비교 결과 상기 전송 메시지의 길이가 n2인 경우, 상기 제3 행렬부는 상기 전송된 메시지를 n 블록으로 구분하고, 상기 n 블록의 각 블록을 순서대로 행 또는 열로 배열하여 n x n 크기의 제3 행렬을 생성한다.
본 발명의 실시예들에 있어서, 상기 측정된 전송 메시지의 길이가 n2이 아닌 경우, 상기 제3 행렬 생성부와 상기 제4 행렬 생성부 및 상기 행(row)과 열(column) 복호화 메시지부를 건너뛰고, 상기 복호화부가 상기 부호화 장치의 입력 메시지 길이인 n 개의 '0'으로 구성된 복호화 메시지 데이터를 생성하여 복호화한다.
이상에서 설명한 바와 같은 특정밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화/복호화 방법 및 장치에 따르면 다음과 같은 효과가 있다.
원본 메시지 데이터 n 개 비트에서 각 비트를 n 개의 열(column)로 정렬한 제1 행(row) 또는 각 비트를 n 개의 행(row)으로 정렬한 제1 열(column)로 배열되고, 상기 제1 행에서 최초로 '1'이 존재하는 열을 제i 열이라고 할 때 제2 행부터 제i 행까지 1≤j<i를 만족하는 j에 대하여 제j+1 행의 제j 열의 성분을 '1'로 하고, 제j+1 행의 나머지 성분은 '0'이 되도록 구성하고, i<j≤n을 만족하는 j에 대하여 상기 제1 행의 제j 열의 성분이 '0'이면 제j 행의 제j 열의 성분은 '1'이고 제j 행의 나머지 성분은 '0'으로 구성하며, 상기 제1 행의 제j 열의 성분이 '1'이면 제j 행의 제1 열부터 제j-1 열까지 성분은 '0'으로 하고, 제j 행의 제j 열부터 제n 열까지 상기 제 1행의 제j 열부터 제n 열까지의 성분과 동일하도록 구성하여 이루어진 n x n 크기의 제1 행렬을 생성하거나 또는 상기 제1 열에서 최초로 '1'이 존재하는 행을 제i 행이라고 할 때 제2 열부터 제i 열까지 1≤j<i를 만족하는 j에 대하여 제j+1 열의 제j 행의 성분을 '1'로 하고, 제j+1 열의 나머지 성분은 '0'이 되도록 구성하고, i<j≤n을 만족하는 j에 대하여 상기 제1 열의 제j 행의 성분이 '0'이면 제j 열의 제j 행의 성분은 '1'이고 제j 열의 나머지 성분은 '0'으로 구성하며, 상기 제1 열의 제j 행의 성분이 '1'이면 제j 열의 제1 행부터 제j-1 행까지 성분은 '0'으로 하고, 제j 열의 제j 행부터 제n 행까지 상기 제 1열의 제j 행부터 제n 행까지의 성분과 동일하도록 구성하여 이루어진 n x n 크기의 제1 행렬을 생성함으로써 부호화와 복호화의 복잡도를 감소시키며 입력 데이터를 특정 행 또는 특정 열에 배치하고, 입력 데이터의 부분 데이터를 나머지 행 또는 열에 배열하여 n x n 크기의 저밀도인 제1 행렬을 생성함으로써 부호화와 복호화의 계산 부담을 줄일 수 있다.
상기 제1 행렬의 역행렬을 구하고, 상기 역행렬에 대하여 2를 법(modulus)으로 하는 법 연산(modulus operation)을 적용하여 생성된 제2 행렬에서 나타나는 규칙들은 부호화와 복호화의 계산 부담을 현저하게 감소시켜 부호화와 복호화의 효율성을 향상시키며, 특히 더욱 간단하고 쉬운 복호화의 원천 기술을 제공하여 복호화의 성능을 개선시킨다.
n개의 비트로 구성된 메시지 입력 데이터를 행 또는 열로 배열할 때, 상기 메시지 입력 데이터에서 최초로 '1'이 나타나는 열 또는 행을 제i 열 또는 제i 행이라고 할 때, 상기 제2 행렬은 n개의 비트로 구성된 메시지 데이터에서 1≤k≤n에 대하여 제k 열의 성분이 0이면 상기 제2 행렬의 제k 행 또는 제k 열의 성분의 합은 1이고 n개의 비트로 구성된 메시지 데이터에서 1≤k≤n에 대하여 제k 열의 성분이 1이면 상기 제2 행렬의 제k 행 또는 제k 열의 성분의 합은 2이다. 그러므로 상기 제2 행렬에서 각 행과 각 열의 합은 '1' 또는 '2'이다. 이를 이용하여 매우 간단하고 쉬운 복호화 방법을 제공하는데 그 목적이 있다.
부호화 단계에서 행렬의 행 또는 열의 순서대로 연접하여 생성된 코드워드를 수신하여 간단한 부호화와 복호화에서 복호기능을 향상시킨다.
전송된 메시지를 n 블록으로 구분하고, 상기 n 블록의 각 블록을 순서대로 행 또는 열로 배열하여 n x n 크기의 제3 행렬을 생성하고 상기 제3 행렬로부터 행의 성분들의 합이 2이상인 최초의 행을 제i 행 또는 제1 열의 성분이 '1'이고 동시에 그 행의 성분들의 합이 2이상인 행을 제i 행이라고 할 때, 1≤j<i에 대하여 제3 행렬의 제j 행의 제j+1 열의 성분이 '1'이고 제j 행의 나머지 성분은 '0'으로 하며, 제3 행렬의 제i 행의 제1 열부터 제i-1 열까지 성분은 '0'으로 하고 제i 행의 제i 열의 성분은 '1'로 한다. i+1≤j≤n에 대하여 제3 행렬의 제j 행의 제j 열 성분을 '1'로 하고 제j 행의 제1 열부터 제j-1 열까지의 성분은 '0'으로 하여 제4 행렬을 생성하거나 또는 상기 제3 행렬에서 열의 성분들의 합이 2이상인 최초의 열을 제i 열 또는 제1 행의 성분이 '1'이고 동시에 그 열의 성분들의 합이 2이상인 열을 제i 열이라고 할 때, i<j≤n에 대하여 제3 행렬의 제j 열의 제j+1 행의 성분이 '1'이고 제j 열의 나머지 성분은 '0'으로 하며, 제3 행렬의 제i 열의 제1 행부터 제i-1 행까지 성분은 '0'으로 하고 제i 열의 제i 행의 성분은 '1'로 한다. i+1≤j≤n에 대하여 제3 행렬의 제j 열의 제j 행 성분을 '1'로 하고 제j 열의 제1 행부터 제j-1 행까지의 성분은 '0'으로 하여 제4 행렬을 생성함으로써 복호화의 성능을 향상시킨다.
전송된 메시지의 길이를 측정하여 전송 메시지의 길이를 비교하여 상기 비교 결과, 상기 측정된 전송 메시지의 길이가 n2인 경우, 상기 전송된 메시지를 n 블록으로 구분하고, 상기 n 블록의 각 블록을 순서대로 행 또는 열로 배열하여 n x n 크기의 제3 행렬을 생성하고 상기 제3 행렬에서 행의 성분들의 합이 2이상인 최초의 행을 제i 행 또는 제1 열의 성분이 '1'이고 동시에 그 행의 성분들의 합이 2이상인 행을 제i 행이라고 할 때, 1≤j<i에 대하여 제3 행렬의 제j 행의 제j+1 열의 성분이 '1'이고 제j 행의 나머지 성분은 '0'으로 하며, 제3 행렬의 제i 행의 제1 열부터 제i-1 열까지 성분은 '0'으로 하고 제i 행의 제i 열의 성분은 '1'로 한다. i+1≤j≤n에 대하여 제3 행렬의 제j 행의 제j 열 성분을 '1'로 하고 제j 행의 제1 열부터 제j-1 열까지의 성분은 '0'으로 하여 제4 행렬을 생성하거나 또는 상기 제3 행렬에서 열의 성분들의 합이 2이상인 최초의 열을 제i 열 또는 제1 행의 성분이 '1'이고 동시에 그 열의 성분들의 합이 2이상인 열을 제i 열이라고 할 때, 1≤j<i에 대하여 제3 행렬의 제j 열의 제j+1 행의 성분이 '1'이고 제j 열의 나머지 성분은 '0'으로 하며, 제3 행렬의 제i 열의 제1 행부터 제i-1 행까지 성분은 '0'으로 하고 제i 열의 제i 행의 성분은 '1'로 한다. i+1≤j≤n에 대하여 제3 행렬의 제j 열의 제j 행 성분을 '1'로 하고 제j 열의 제1 행부터 제j-1 행까지의 성분은 '0'으로 하여 제4 행렬을 생성하고 전송된 메시지의 길이를 측정하여 전송 메시지의 길이를 비교하여 상기 비교 결과, 상기 측정된 전송 메시지의 길이가 n2이 아닌 경우에는 제3 행렬과 제4 행렬을 생성하지 않고 직접 메시지를 복호화함으로써 복호화의 성능을 향상시킨다.
상기 제4 행렬에서 부호화 단계에서 제1 행렬을 생성할 때 n개의 비트로 구성된 메시지 데이터가 행에 배치되는 경우의 행(row) 복호화 메시지는 1≤j≤n에 대하여 제i 행의 성분의 합이 '2'이상인 마지막 행을 제j 행이라고 할 때, 1≤i≤j에 대하여 제i 행의 성분의 합이 '2'미만이면 행(row) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 행의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제i 번째의 성분은 '1'이다. 그리고 제j 행의 제j 열을 제외하고 j < k를 만족하는 k에 대하여 상기 제4 행렬에서 제j 행의 제k 열의 성분이 제j 행의 제j 열의 성분을 제외한 최초의 '1'이고 상기 제4 행렬의 제k 열의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제k 번째의 성분은 '1'로 결정한다. j<i<k와 k<i≤n을 만족하는 i에 대하여 제i 행의 성분의 합이 '2'미만이면 행(row) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 행의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제i 번째의 성분은 '1'이다. 그리고 열(column) 복호화 메시지는 상기 제4 행렬에서 1≤j≤n에 대하여 제i 열의 성분의 합이 '2' 미만이면 열(column)복호화 메시지의 제i 번째의 성분은 '0'이고 상기 제4 행렬에서 제i 열의 성분의 합이 '2' 이상이면 열(column)복호화 메시지의 제i 번째의 성분은 '1'로 하여 행(row) 복호화 메시지와 열(column) 복호화 메시지를 생성하거나 상기 제4 행렬에서 부호화 단계에서 제1 행렬을 생성할 때 n개의 비트로 구성된 메시지 데이터가 열에 배치되는 경우의 열(column) 복호화 메시지는 1≤j≤n에 대하여 제i 열의 성분의 합이 '2'이상인 마지막 열을 제j 열이라고 할 때, 1≤i≤j에 대하여 제i 열의 성분의 합이 '2'미만이면 열(row) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 열의 성분의 합이 '2' 이상이면 열(column)) 복호화 메시지의 제i 번째의 성분은 '1'이다. 그리고 제j 열의 제j 행을 제외하고 j < k를 만족하는 k에 대하여 상기 제4 행렬에서 제j 열의 제k 행의 성분이 제j 열의 제j 행의 성분을 제외한 최초의 '1'이고 상기 제4 행렬의 제k 행의 성분의 합이 '2' 이상이면 열(column) 복호화 메시지의 제k 번째의 성분은 '1'로 결정한다. j<i<k와 k<i≤n을 만족하는 i에 대하여 제i 열의 성분의 합이 '2'미만이면 열(column) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 열의 성분의 합이 '2' 이상이면 열(column) 복호화 메시지의 제i 번째의 성분은 '1'이다. 그리고 행(row) 복호화 메시지는 상기 제4 행렬에서 1≤j≤n에 대하여 제i 행의 성분의 합이 '2' 미만이면 행(row)복호화 메시지의 제i 번째의 성분은 '0'이고 상기 제4 행렬에서 제i 행의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제i 번째의 성분은 '1'로 하여 행(row) 복호화 메시지와 열(column) 복호화 메시지를 생성함으로써 복호화의 복잡도를 매우 감소시키며 복호화의 성능을 매우 향상시킨다.
1≤i≤n에 대하여 상기 행(row) 복호화 메시지의 제i 번째 성분과 열(column) 복호화 메시지의 제i 번째 성분을 비교하여 동일한 경우에 복호화 메시지의 제i 번째 성분을 상기 동일한 값으로 선택하여 복호화하고 상기 행(row) 복호화 메시지와 열(column) 복호화 메시지를 비교하여 동일하지 않은 경우에는 메시지 입력 데이터의 길이 n과 동일한 길이의 복호화 메시지를 얻을 때까지 상기 유사한 부호화 과정과 복호화 과정을 반복 실행하며 이전 단계에서 이미 복호화된 메시지의 성분은 최종 복호화 메시지 성분으로 정하여 그대로 두고 이전단계에서 동일하지 않았던 성분들을 복호화함으로써 복호화의 복잡도를 감소시키고 복호화의 성능을 향상시킨다.
상기 제4 행렬에서 원본 메시지 데이터에 관한 정보가 포함된 행 또는 열의 특정 밀도를 이용하여 매우 간단하고 효율적인 복호화를 한다.
나아가, 본 발명은 상기 특정한 밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)의 부호화/복호화 방법을 실행하기 위한 특정한 밀도를 기반으로 하는 저밀도 역 코드의 부호화/복호화 장치를 제공하는 데에 그 목적이 있다.
[도 1]은 본 발명의 실시예들에 따른 특정밀도를 기반으로 하는 저밀도 역 코드를 이용한 부호화 장치를 설명하기 위한 블록도
[도 2]는 본 발명의 실시예들에 따른 특정밀도를 기반으로 하는 저밀도 역 코드를 이용한 부호화 방법을 설명하기 위한 순서도
[도 3]은 본 발명의 실시예들에 따른 특정밀도를 기반으로 하는 저밀도 역 코드를 이용한 복호화 장치를 설명하기 위한 블록도
[도 4]는 본 발명의 실시예들에 따른 특정밀도를 기반으로 하는 저밀도 역 코드를 이용한 복호화 방법을 설명하기 위한 순서도
첨부한 도면을 참조하여 본 발명의 실시예들에 따른 특정밀도를 기반으로 하는 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치에 대하여 상세히 설명한다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나, 개략적인 구성을 이해하기 위하여 실제보다 축소하여 도시한 것이다.
또한, 제1 및 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 한편, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 본 발명의 실시예들에 따른 특정밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치를 설명하기 위한 블록도이고, 도 2는 본 발명의 실시예들에 따른 특정밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법을 설명하기 위한 순서도이다.
도 1 및 도 2를 참조하면, 본 발명의 실시예들에 따른 특정밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치(100)는 제1 행렬 생성부(110), 제2 행렬 생성부(120), 코드워드(codeword) 생성부(130) 및 전송부(140)를 포함한다.
본 발명의 실시예들에 있어서, 제1 행렬 생성부(110)의 입력 데이터 n개 비트가 모두 '0'으로 이루어진 경우에는 제1 행렬 생성부(110)와 제2 행렬 생성부(120)를 생략하여 코드워드(codeword) 생성부(130)에서 '0'으로 이루어진 길이가 n2인 코드워드를 생성한다.
본 발명의 다른 실시예들에 있어서, 제1 행렬 생성부(110)의 입력 데이터가 n개 비트가 모두 '0'으로 이루어진 경우에는 제1 행렬 생성부(110)와 제2 행렬 생성부(120)를 생략하여 코드워드(codeword) 생성부(130)에서 n개의 '0'으로 이루어진 코드워드를 생성한다.
본 발명의 다른 실시예들에 있어서, 제1 행렬 생성부(110)의 입력 데이터 n개 비트가 모두 '0'으로 이루어진 경우에는 제1 행렬 생성부(110)와 제2 행렬 생성부(120)를 생략하여 코드워드(codeword) 생성부(130)에서 '0' 또는 '1'로 이루어진 하나의 비트를 코드워드로 생성한다.
본 발명의 또 다른 실시예들에 있어서, 제1 행렬 생성부(110)의 입력 데이터 n개 비트가 모두 '0'으로 이루어진 경우에는 제1 행렬 생성부(110)와 제2 행렬 생성부(120)를 생략하여 코드워드(codeword) 생성부(130)에서 길이가 n2이 아닌 코드워드를 생성한다.
제1 행렬 생성부(110)는 원본 메시지 데이터 n 개 비트에서 각 비트를 n 개의 열(column)로 정렬한 제1 행(row) 또는 각 비트를 n 개의 행(row)으로 정렬한 제1 열(column)로 배열되고, 상기 제1 행에서 최초로 '1'이 존재하는 열을 제i 열이라고 할 때 제2 행부터 제i 행까지 1≤j<i를 만족하는 j에 대하여 제j+1 행의 제j 열의 성분을 '1'로 하고, 제j+1 행의 나머지 성분은 '0'이 되도록 구성하고, i<j≤n을 만족하는 j에 대하여 상기 제1 행의 제j 열의 성분이 '0'이면 제j 행의 제j 열의 성분은 '1'이고 제j 행의 나머지 성분은 '0'으로 구성하며, 상기 제1 행의 제j 열의 성분이 '1'이면 제j 행의 제1 열부터 제j-1 열까지 성분은 '0'으로 하고, 제j 행의 제j 열부터 제n 열까지 상기 제 1행의 제j 열부터 제n 열까지의 성분과 동일하도록 구성하여 이루어진 n x n 크기의 제1 행렬을 생성한다. 또는 상기 제1 열에서 최초로 '1'이 존재하는 행을 제i 행이라고 할 때 제2 열부터 제i 열까지 1≤j<i를 만족하는 j에 대하여 제j+1 열의 제j 행의 성분을 '1'로 하고, 제j+1 열의 나머지 성분은 '0'이 되도록 구성하고, i<j≤n을 만족하는 j에 대하여 상기 제1 열의 제j 행의 성분이 '0'이면 제j 열의 제j 행의 성분은 '1'이고 제j 열의 나머지 성분은 '0'으로 구성하며, 상기 제1 열의 제j 행의 성분이 '1'이면 제j 열의 제1 행부터 제j-1 행까지 성분은 '0'으로 하고, 제j 열의 제j 행부터 제n 행까지 상기 제 1열의 제j 행부터 제n 행까지의 성분과 동일하도록 구성하여 이루어진 n x n 크기의 제1 행렬을 생성한다(S110).
예를 들어, 제1 행렬 생성부(110)의 메시지 입력 데이터 '0010100110'에 대하여 메시지 입력 데이터를 제1 행에 배치하여 제1 행렬을 생성하면 수학식 1과 같은 제1 행렬을 생성한다. 또한 제1 행렬 생성부(110)의 메시지 입력 데이터 '0010100110'에 대하여 메시지 입력 데이터를 제1 열에 배치하여 제1 행렬을 생성하면 수학식 2와 같은 제1 행렬을 생성한다.
[수학식 1]
Figure pat00001
[수학식 2]
Figure pat00002
제2 행렬 생성부(120)는 제1 행렬 생성부(110)에서 생성한 제1 행렬의 역행렬을 구한 후에 2를 법(modulus)으로 하는 법 연산(modulus operation)을 적용하여 제2 행렬을 생성한다(S120).
예를 들어, 제1 행렬 생성부(110)가 수학식 1과 같은 제1 행렬을 생성한 경우에 제2 행렬 생성부(120)는 수학식 3과 같은 제2 행렬을 생성한다. 제1 행렬 생성부(110)가 수학식 2와 같은 제1 행렬을 생성한 경우에 제2 행렬 생성부(120)는 수학식 4와 같은 제2 행렬을 생성한다.
[수학식 3]
Figure pat00003
[수학식 4]
Figure pat00004
코드워드 생성부(130)는 제2 행렬 생성부(120)가 생성한 n x n 크기의 제2 행렬의 제1 행 내지 제n 행 또는 제1 열 내지 제n 열을 하나의 라인에 순서대로 배열하는 방식으로 n2 길이의 코드워드를 생성한다(S130). 예를 들어, 코드워드 생성부(130)는 수학식 3의 제2 행렬에 대해서 '0100000000001000000010001000000001000000000010010000000100000000001000000000011000000000100000000001'의 코드워드를 생성할 수 있으며, 수학식 4의 제2 행렬에 대하여 '0010000000100000000001000000000001000000001010000000000100000000001000000010010000000001100000000001'의 코드워드를 생성할 수 있다.
한편, 메시지 데이터의 길이 n 에 대하여 메시지 데이터가 모두 '0'으로 이루어진 경우에는 제1 행렬 생성부(110)와 제2 행렬 생성부(120)를 건너뛰어(생략하여) 코드워드 생성부(130)에서 '0'으로 이루어진 길이가 n2 인 코드워드를 생성하여 전송부(140)에 전달한다.
본 발명의 다른 실시예들에 있어서, 메시지 데이터의 길이 n 에 대하여 메시지 데이터가 모두 '0'으로 이루어진 경우에는 제1 행렬 생성부(110)와 제2 행렬 생성부(120)를 생략하여 코드워드 생성부(130)에서 '0'으로 이루어진 길이가 n 인 코드워드를 생성하여 전송부(140)에 전달한다.
본 발명의 다른 실시예들에 있어서, 메시지 데이터의 길이 n에 대하여 메시지 데이터가 모두 '0'으로 이루어진 경우에는 제1 행렬 생성부(110)와 제2 행렬 생성부(120)를 생략하여 코드워드 생성부(130)에서 '0' 또는 '1'을 코드워드로 생성하여 전송부(140)에 전달한다.
본 발명의 다른 실시예들에 있어서, 메시지 데이터의 길이 n에 대하여 메시지 데이터가 모두 '0'으로 이루어진 경우에는 제1 행렬 생성부(110)와 제2 행렬 생성부(120)를 생략하여 코드워드 생성부(130)에서 길이가 n2이 아닌 코드워드를 생성하여 전송부(140)에 전달한다.
전송부(140)는 코드워드 생성부(130)에서 생성된 코드워드를 외부로 전송한다(S140).
이와 같이, 특정밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치(100)는 원본 메시지 데이터를 제1 행 또는 제1 열에 배치하여 저밀도의 상기 제1 행렬을 생성하고 특히, 상기 제2 행렬의 각 행과 각 열은 '1'의 개수가 한 개 또는 두 개인 매우 저밀도이므로 부호화의 계산 부담을 줄일 수 있다.
또한, 특정밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치(100)는 제2 행렬 생성부(120)에서 생성된 제2 행렬에서 나타나는 '0'과 '1'의 특정한 배열(array)의 규칙들은 메시지 데이터에 관한 정보를 나타내기 때문에 부호화와 복호화의 계산 부담을 줄이고 부호화와 복호화가 매우 간단하기 때문에 부호화와 복호화의 성능을 향상시키며 효율적이다.
도 3은 본 발명의 실시예들에 따른 특정 밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치(200)를 설명하기 위한 블록도이고, 도 4는 본 발명의 실시예들에 따른 특정 밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법을 설명하기 위한 순서도이다.
도 3 및 도 4를 참조하면 본 발명의 실시예들에 따른 특정 밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치(200)는 전송 메시지 수신부(210), 전송 메시지 길이 측정부(220), 전송 메시지 길이 비교부(230), 제3 행렬 생성부(240), 제4 행렬 생성부(250), 행(row)과 열(column) 복호화 메시지부(260), 복호화부(270)를 포함한다.
특정 밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치(200)는 부호화 장치(100)로부터 일정 정보를 전달 받아 복호화 과정을 수행할 수 있다. 이 때 본 복호화 장치(200)는 원본 메시지 길이에 대한 정보 또는 메시지 입력 데이터의 길이, 전송 메시지의 길이에 대한 정보를 사전에 부호화 장치(100)로부터 전달 받아 획득할 수 있다.
전송 메시지 수신부(210)는 외부로부터 전송된 전송 메시지를 수신한다. 이 때, 전송 메시지 수신부(210)는 특정 길이를 갖는 전송 메시지를 수신할 수 있다. 예를 들어, 전송 메시지 수신부(210)는 n2 , n 또는 1 의 길이를 갖는 전송 메시지를 수신할 수 있다. 이와 달리, 전송 메시지 수신부(210)는 n2 또는 n2 이 아닌 길이로 이루어진 전송 메시지를 수신할 수 있다.
전송 메시지 길이 측정부(220)는 전송 메시지 수신부(210)로부터 전달한 전송 메시지의 길이를 측정하고(S220), 상기 측정된 전송 메시지의 길이를 바탕으로 전송된 메시지는 제3 행렬 생성부(240), 제4 행렬 생성부(250), 행(row)과 열(column) 복호화 메시지부(260), 복호화부(270)로 전달된다.
전송 메시지 길이 비교부(230)에서 상기 측정한 전송 메시지의 길이를 비교한다. 이 때, 전송 메시지 길이 비교부(230)는 전송 메시지의 길이가 n2 인지 아닌지를 판단할 수 있다. 또한, 전송 메시지 길이 비교부(230)는 전송 메시지의 길이가 특정 길이를 갖는 지를 판단할 수 있다.
한편 비교 결과, 전송 메시지의 길이가 n 개 이거나 1 개 이거나, 또는 n2 개가 아닌 경우에는 제3 행렬 생성부(240), 제4 행렬 생성부(250), 행(row)과 열(column) 복호화 메시지부(260)를 생략하고(건너뛰고) 복호화부(270)에서 메시지 데이터의 길이만큼의 '0'으로 이루어진 복호화 메시지를 생성한다(S270). 예를 들어, 메시지 입력 데이터의 길이가 10인 경우에, 제3 행렬 생성부(240), 제4 행렬 생성부(250), 행(row)과 열(column) 복호화 메시지부(260)를 생략하고 복호화부에서 '0000000000'을 복호화 메시지로 생성한다.
한편, 상기 전송 메시지 길이 비교부(230)에서 전송 메시지의 길이가 n2 인 경우에는 전송된 메시지는 제3 행렬 생성부(240)로 전달된다.
본 발명의 다른 실시예들에 있어서, 복호화 장치(200)가 전송 메시지의 길이에 대한 정보를 이미 알고 있는 경우에는 전송 메시지 길이 측정부(220)와 전송 메시지 길이 비교부(230)를 생략하여 바로 제3 행렬 생성부(240), 제4 행렬 생성부(250), 행(row)과 열(column) 복호화 메시지부(260), 복호화부(270)로 전달될 수 있다.
제3 행렬 생성부(240)는 상기 전송된 메시지를 n 블록으로 구분하고, 상기 n 블록의 각 블록을 순서대로 행 또는 열로 배열하여 n x n 크기의 제3 행렬을 생성한다. 이 때, 제3 행렬 생성부(240)는 제3 행렬을 n2 길이의 전송 메시지를 n 블록으로 구분한 후, 제1 행 내지 제n 행으로 구성된 제3 행렬을 생성하거나, 제1 열 내지 제n 열로 구성된 제3 행렬을 생성한다(S240).
예를 들면 전송 메시지 수신부(210)에서 수신된 전송된 메시지가
'0100000000001000000010001000000001000000000010010000000100000000001000000000011000000000100000000001'이면 전송 메시지 길이 측정부(220)에서 전송된 메시지 길이가 100으로 측정되고, 전송 메시지 길이 비교부(230)에서 비교결과 전송된 메시지의 길이가 n2 이므로 제3 행렬 생성부(240)로 전달되어 제3 행렬 생성부(240)에서는 수학식 5와 같은 제3 행렬을 생성한다.
[수학식 5]
Figure pat00005
예를 들면 전송 메시지 수신부(210)에서 수신된 전송된 메시지가
'0010000000100000000001000000000001000000001010000000000100000000001000000010010000000001100000000001'이면 전송 메시지 길이 측정부(220)에서 전송된 메시지 길이가 100으로 측정되고, 전송 메시지 길이 비교부(230)에서 비교결과 전송된 메시지의 길이가 n2 이므로 제3 행렬 생성부(240)로 전달되어 제3 행렬 생성부(240)에서는 수학식 6과 같은 제3 행렬을 생성한다.
[수학식 6]
Figure pat00006
제4 행렬 생성부(250)는 상기 제3 행렬 생성부(240)에서 생성된 제3 행렬에서 행의 성분들의 합이 2이상인 최초의 행을 제i 행 또는 제1 열의 성분이 '1'이고 동시에 그 행의 성분들의 합이 2이상인 행을 제i 행이라고 할 때, 1≤j<i에 대하여 제3 행렬의 제j 행의 제j+1 열의 성분이 '1'이고 제j 행의 나머지 성분은 '0'으로 하며, 제3 행렬의 제i 행의 제1 열부터 제i-1 열까지 성분은 '0'으로 하고 제i 행의 제i 열의 성분은 '1'로 한다. i+1≤j≤n에 대하여 제3 행렬의 제j 행의 제j 열 성분을 '1'로 하고 제j 행의 제1 열부터 제j-1 열까지의 성분은 '0'으로 하여 제4 행렬을 생성하거나 또는 상기 제3 행렬에서 열의 성분들의 합이 2이상인 최초의 열을 제i 열 또는 제1 행의 성분이 '1'이고 동시에 그 열의 성분들의 합이 2이상인 열을 제i 열이라고 할 때, 1≤j<i에 대하여 제3 행렬의 제j 열의 제j+1 행의 성분이 '1'이고 제j 열의 나머지 성분은 '0'으로 하며, 제3 행렬의 제i 열의 제1 행부터 제i-1 행까지 성분은 '0'으로 하고 제i 열의 제i 행의 성분은 '1'로 한다. i+1≤j≤n에 대하여 제3 행렬의 제j 열의 제j 행 성분을 '1'로 하고 제j 열의 제1 행부터 제j-1 행까지의 성분은 '0'으로 하여 제4 행렬을 생성한다(S250).
예를 들면, 메시지 입력 데이터가 '0010100110'인 경우에 제3 행렬 생성부(240)에서 생성된 제3 행렬이 수학식 5와 같은 경우에 수학식 7과 같은 제4 행렬을 얻을 수 있으며, 제3 행렬 생성부(240)에서 생성된 제3 행렬이 수학식 6과 같은 경우에 수학식 8과 같은 제4 행렬을 얻을 수 있다.
[수학식 7]
Figure pat00007
[수학식 8]
Figure pat00008
행(row)과 열(column) 복호화 메시지부(260)에서는 부호화 단계에서 제1 행렬을 생성할 때 n 개의 비트로 구성된 메시지 데이터가 행에 배치되는 경우의 행(row) 복호화 메시지는 상기 제4 행렬에서 1≤j≤n에 대하여 제i 행의 성분의 합이 '2'이상인 마지막 행을 제j 행이라고 할 때, 1≤i≤j에 대하여 제i 행의 성분의 합이 '2'미만이면 행(row) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 행의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제i 번째의 성분은 '1'이다. 그리고 제j 행의 제j 열을 제외하고 j < k를 만족하는 k에 대하여 상기 제4 행렬에서 제j 행의 제k 열의 성분이 제j 행의 제j 열의 성분을 제외한 최초의 '1'이고 상기 제4 행렬의 제k 열의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제k 번째의 성분은 '1'로 결정한다. j<i<k와 k<i≤n을 만족하는 i에 대하여 제i 행의 성분의 합이 '2'미만이면 행(row) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 행의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제i 번째의 성분은 '1'이다. 그리고 열(column) 복호화 메시지는 상기 제4 행렬에서 1≤j≤n에 대하여 제i 열의 성분의 합이 '2' 미만이면 열(column)복호화 메시지의 제i 번째의 성분은 '0'이고 상기 제4 행렬에서 제i 열의 성분의 합이 '2' 이상이면 열(column)복호화 메시지의 제i 번째의 성분은 '1'로 하여 행(row)과 열(column) 복호화 메시지를 생성한다(S260).
예를 들면, 부호화 단계에서 입력 데이터가 제1 행렬 생성부(110)에서 제1 행렬의 제1 행에 배치된 경우에는 제4 행렬인 수학식 7에서 행(row) 복호화 메시지는 제4 행렬의 제1 행의 성분의 합은 1이므로 복호화 메시지는 '0', 제2 행의 성분의 합은 '1'이므로 복호화 메시지는 '0', 제3 행의 성분의 합은 2이므로 복호화 메시지는 '1', 제4 행의 성분의 합은 1이므로 복호화 메시지는 '0', 제5 행의 성분의 합은 2이므로 복호화 메시지는 '1', 제6 행의 성분의 합은 1이므로 복호화 메시지는 '0', 제7 행의 성분의 합은 1이므로 복호화 메시지는 '0', 제8 행의 성분의 합은 2이므로 복호화 메시지는 '1'이고 제8 행이 행의 성분의 합이 2 이상인 마지막 행이므로 제8 행의 제8 열을 제외한 제 9열의 성분이 '1'이고 제9 열의 성분의 합이 '2'이므로 행(row) 복호화 메시지의 제9 번쩨 성분은 1로 결정하며, 제10 행의 성분의 합은 1이므로 복호화 메시지는 '0'이다. 따라서 행(row) 복호화 메시지는 '0010100110' 이다. 제4 행렬인 수학식 7에서 열(row) 복호화 메시지는 제4 행렬의 제1 열의 성분의 합은 0이므로 복호화 메시지는 '0', 제2 열의 성분의 합은 1이므로 복호화 메시지는 '0', 제3 열의 성분의 합은 2이므로 복호화 메시지는 '1', 제4 열의 성분의 합은 1이므로 복호화 메시지는 '0', 제5 열의 성분의 합은 2이므로 복호화 메시지는 '1', 제6 열의 성분의 합은 1이므로 복호화 메시지는 '0', 제7 열의 성분의 합은 1이므로 복호화 메시지는 '0', 제8 열의 성분의 합은 2이므로 복호화 메시지는 '1', 제9 열의 성분의 합은 2이므로 복호화 메시지는 '1', 제10 열의 성분의 합은 1이므로 복호화 메시지는 '0' 이므로 열(column) 복호화 메시지는 '0010100110' 이다.
행(row)과 열(column) 복호화 메시지부(260)에서는 부호화 단계에서 제1 행렬을 생성할 때 n개의 비트로 구성된 메시지 데이터가 열에 배치되는 경우의 열(column) 복호화 메시지는 상기 제4 행렬에서 1≤j≤n에 대하여 제i 열의 성분의 합이 '2'이상인 마지막 열을 제j 열이라고 할 때, 1≤i≤j에 대하여 제i 열의 성분의 합이 '2'미만이면 열(row) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 열의 성분의 합이 '2' 이상이면 열(column)) 복호화 메시지의 제i 번째의 성분은 '1'이다. 그리고 제j 열의 제j 행을 제외하고 j < k를 만족하는 k에 대하여 상기 제4 행렬에서 제j 열의 제k 행의 성분이 제j 열의 제j 행의 성분을 제외한 최초의 '1'이고 상기 제4 행렬의 제k 행의 성분의 합이 '2' 이상이면 열(column) 복호화 메시지의 제k 번째의 성분은 '1'로 결정한다. j<i<k와 k<i≤n을 만족하는 i에 대하여 제i 열의 성분의 합이 '2'미만이면 열(column) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 열의 성분의 합이 '2' 이상이면 열(column) 복호화 메시지의 제i 번째의 성분은 '1'이다. 그리고 행(row) 복호화 메시지는 상기 제4 행렬에서 1≤i≤n에 대하여 제i 행의 성분의 합이 '2' 미만이면 행(row)복호화 메시지의 제i 번째의 성분은 '0'이고 상기 제4 행렬에서 제i 행의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제i 번째의 성분은 '1'로 하여 행(row)과 열(column) 복호화 메시지를 생성한다(S260).
예를 들면, 부호화 단계에서 입력 데이터가 제1 행렬 생성부(110)에서 제1 행렬의 제1 열에 배치된 경우에 제4 행렬인 수학식 8에서 행(row) 복호화 메시지는 제4 행렬의 제1 행의 성분의 합은 0이므로 복호화 메시지는 '0', 제2 행의 성분의 합은 1이므로 복호화 메시지는 '0', 제3 행의 성분의 합은 2이므로 복호화 메시지는 '1', 제4 행의 성분의 합은 1이므로 복호화 메시지는 '0', 제5 행의 성분의 합은 2이므로 복호화 메시지는 '1', 제6 행의 성분의 합은 1이므로 복호화 메시지는 '0', 제7 행의 성분의 합은 1이므로 복호화 메시지는 '0', 제8 행의 성분의 합은 1이므로 복호화 메시지는 '0', 제9 행의 성분의 합은 2이므로 복호화 메시지는 '1', 제10 행의 성분의 합은 1이므로 복호화 메시지는 '0' 이다. 따라서 행(row) 복호화 메시지는 '0010100110' 이다. 제4 행렬인 수학식 8에서 열(row) 복호화 메시지는 제4 행렬의 제1 열의 성분의 합은 1이므로 복호화 메시지는 '0', 제2 열의 성분의 합은 1이므로 복호화 메시지는 '0', 제3 열의 성분의 합은 2이므로 복호화 메시지는 '1', 제4 열의 성분의 합은 1이므로 복호화 메시지는 '0', 제5 열의 성분의 합은 2이므로 복호화 메시지는 '1', 제6 열의 성분의 합은 1이므로 복호화 메시지는 '0', 제7 열의 성분의 합은 1이므로 복호화 메시지는 '0', 제8 열의 성분의 합은 2이므로 복호화 메시지는 '1'이고 제8 열이 성분의 합이 2 이상인 마지막 열이기 때문에 제8 열의 제8 행을 제외한 제9 열에서 '1'이 나타나고 제9 행의 합이 2 이상이다. 그러므로 열(row) 복호화 메시지의 제9 번째 성분은 '1'로 결정한다. 그리고 제10 열의 성분의 합은 1이므로 복호화 메시지는 '0' 이다, 따라서 열 (column) 복호화 메시지는 '0010100110' 이다.
복호화부(270)에서는 1≤i≤n에 대하여 상기 행(row) 복호화 메시지의 제i 번째 성분과 열(column) 복호화 메시지의 제i 번째 성분을 비교하여 동일한 경우에 복호화 메시지의 제i 번째 성분을 상기 동일한 값으로 선택하여 복호화하고 상기 행(row) 복호화 메시지와 열(column) 복호화 메시지를 비교하여 동일하지 않은 경우에는 메시지 입력 데이터의 길이 n과 동일한 길이의 복호화 메시지를 얻을 때까지 상기 유사한 부호화 과정과 복호화 과정을 반복 실행하며 이전 단계에서 이미 복호화된 메시지의 성분은 최종 복호화 메시지 성분으로 정하여 그대로 두고 이전단계에서 동일하지 않았던 성분들을 복호화한다(S270).
예를 들면, 행(row) 복호화 메시지가 '0010100110'이고 열 (column) 복호화 메시지가 '0010100110'이면 복호화부(270)는 '0010100110'을 복호화 메시지로 한다.
복호화부(270)에서는 부호화와 복호화 과정을 반복하는 경우에 있어서 최종 복호화 메시지는 이전의 부호화와 복호화 과정에서 이미 복호화된 메시지를 최종 복호화 메시지로 결정한다.
100 : 부호화 장치 110 : 제1 행렬 생성부
120 : 제2 행렬 생성부 130 : 코드워드 생성부
140 : 전송부 200 : 복호화 장치
210 : 전송 메시지 수신부 220 : 전송 메시지 길이 측정부
230 : 전송 메시지 길이 비교부 240 : 제3 행렬 생성부
250 : 제4 행렬 생성부 260 : 행과 열 복호화 메시지부
270 : 복호화부

Claims (18)

  1. n 개의 비트로 이루어진 원본 메시지 데이터를 부호화하는 방법에 있어서,
    원본 메시지 데이터의 각 비트를 n 개의 열(column)로 정렬한 제1 행(row)으로 배열하거나 원본 메시지 데이터의 각 비트를 n 개의 행(row)으로 정렬한 제1 열(column)로 배열하고,
    상기 원본 메시지 데이터를 제1 행에 배열하는 경우에는
    상기 제1 행에서 최초로 '1'이 존재하는 열을 제i 열이라고 할 때 제2 행부터 제i 행까지 1≤j<i를 만족하는 j에 대하여 제j+1 행의 제j 열의 성분을 '1'로 하고, 제j+1 행의 나머지 성분은 '0'이 되도록 구성하고, i<j≤n을 만족하는 j에 대하여 상기 제1 행의 제j 열의 성분이 '0'이면 제j 행의 제j 열의 성분은 '1'이고 제j 행의 나머지 성분은 '0'으로 구성하며, 상기 제1 행의 제j 열의 성분이 '1'이면 제j 행의 제1 열부터 제j-1 열까지 성분은 '0'으로 하고, 제j 행의 제j 열부터 제n 열까지 상기 제 1행의 제j 열부터 제n 열까지의 성분과 동일하도록 구성하여 이루어진 n x n 크기의 제1 행렬을 생성하고,
    상기 원본 메시지 데이터를 제1 열에 배열하는 경우에는
    상기 제1 열에서 최초로 '1'이 존재하는 행을 제i 행이라고 할 때 제2 열부터 제i 열까지 1≤j<i를 만족하는 j에 대하여 제j+1 열의 제j 행의 성분을 '1'로 하고, 제j+1 열의 나머지 성분은 '0'이 되도록 구성하고, i<j≤n을 만족하는 j에 대하여 상기 제1 열의 제j 행의 성분이 '0'이면 제j 열의 제j 행의 성분은 '1'이고 제j 열의 나머지 성분은 '0'으로 구성하며, 상기 제1 열의 제j 행의 성분이 '1'이면 제j 열의 제1 행부터 제j-1 행까지 성분은 '0'으로 하고, 제j 열의 제j 행부터 제n 행까지 상기 제 1열의 제j 행부터 제n 행까지의 성분과 동일하도록 구성하여 이루어진 n x n 크기의 제1 행렬을 생성하는 단계;
    상기 제1 행렬의 역행렬을 구하고, 상기 역행렬에 대하여 2를 법(modulus)으로 하는 법 연산(modulus operation)을 적용하여 제2 행렬을 생성하는 단계; 및
    상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하여 전송하는 단계를 포함하는 특정 밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.
  2. 제1항에 있어서,
    상기 메시지 데이터의 n개 비트가 모두 '0'으로만 이루어진 경우에는 상기 제1 행렬 및 상기 제2 행렬을 생성하지 않고 모두 '0'으로 이루어진 길이가 n2인 상기 코드워드(codeword)를 생성하는 것을 특징으로 하는 특정 밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.
  3. 제1항에 있어서,
    상기 메시지 데이터의 n개 비트가 모두 '0'으로만 이루어진 경우에는 상기 제1 행렬 및 상기 제2 행렬을 생성하지 않고 n2이 아닌 다른 길이로 이루어진 코드워드(codeword)를 생성하는 것을 특징으로 하는 특정 밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)의 부호화 방법.
  4. 제1항에 있어서,
    상기 메시지 데이터의 n개 비트가 모두 '0'으로만 이루어진 경우에는 상기 제1 행렬 및 상기 제2 행렬을 생성하지 않고 n2개가 아닌 다른 개수의 '0'으로 이루어진 코드워드(codeword)를 생성하는 것을 특징으로 하는 특정 밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)의 부호화 방법.
  5. 제1항에 있어서,
    상기 제2 행렬을 이용하여 상기 코드워드(codeword)를 생성하는 단계에서
    상기 원본 메시지 데이터를 상기 제1 행렬의 제1 행에 배열하는 경우에는 상기 생성된 제2 행렬의 제1 행 내지 제n 행을 순서대로 연결하는 방식으로 n2의 길이의 상기 코드워드를 생성하고,
    상기 원본 메시지 데이터를 상기 제1 행렬의 제1 열에 배열하는 경우에는 상기 생성된 제2 행렬의 제1 열 내지 제n 열을 순서대로 연결하는 방식으로 n2의 길이의 상기 코드워드(codeword)를 생성하는 것을 특징으로 하는 특정 밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)의 부호화 방법.
  6. 제1항 내지 제5항 중 어느 하나의 한 항의 부호화 방법에 의하여 코드워드(codeword)로 생성되어 전송된 메시지를 복호화하기 위한 방법에 있어서,
    전송 메시지를 수신하는 단계;
    상기 수신된 전송 메시지를 n 블록으로 구분하고, 상기 n 블록의 각 블록을 순서대로 행 또는 열로 배열하여 n x n 크기의 제3 행렬을 생성하는 단계;
    상기 n 블록의 각 블록을 순서대로 행으로 배열하여 제3 행렬을 생성한 경우에는
    상기 제3 행렬에서 행의 성분들의 합이 2 이상인 최초의 행을 제i 행 또는 제1 열의 성분이 '1'이고 동시에 그 행의 성분들의 합이 2 이상인 행을 제i 행이라고 할 때, 1≤j<i에 대하여 제3 행렬의 제j 행의 제j+1 열의 성분이 '1'이고 제j 행의 나머지 성분은 '0'으로 하며, 제3 행렬의 제i 행의 제1 열부터 제i-1 열까지 성분은 '0'으로 하고 제i 행의 제i 열의 성분은 '1'로 하며, i+1≤j≤n에 대하여 제3 행렬의 제j 행의 제j 열 성분을 '1'로 하고 제j 행의 제1 열부터 제j-1 열까지의 성분은 '0'으로 하여 제4 행렬을 생성하고
    상기 n 블록의 각 블록을 순서대로 열로 배열하여 제3 행렬을 생성한 경우에는
    상기 제3 행렬에서 열의 성분들의 합이 2 이상인 최초의 열을 제i 열 또는 제1 행의 성분이 '1'이고 동시에 그 열의 성분들의 합이 2 이상인 열을 제i 열이라고 할 때, 1≤j<i에 대하여 제3 행렬의 제j 열의 제j+1 행의 성분이 '1'이고 제j 열의 나머지 성분은 '0'으로 하며, 제3 행렬의 제i 열의 제1 행부터 제i-1 행까지 성분은 '0'으로 하고 제i 열의 제i 행의 성분은 '1'로 하며, i+1≤j≤n에 대하여 제3 행렬의 제j 열의 제j 행 성분을 '1'로 하고 제j 열의 제1 행부터 제j-1 행까지의 성분은 '0'으로 하여 제4 행렬을 생성하는 단계;
    상기 제4 행렬에서 제1 행렬을 생성할 때 n개의 비트로 구성된 메시지 데이터가 행에 배치되는 경우에, 행(row) 복호화 메시지는 1≤j≤n에 대하여 제i 행의 성분의 합이 '2'이상인 마지막 행을 제j 행이라고 할 때, 1≤i≤j에 대하여 제i 행의 성분의 합이 '2'미만이면 행(row) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 행의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제i 번째의 성분은 '1'로 하고, 제j 행의 제j 열을 제외하고 j<k를 만족하는 k에 대하여 상기 제4 행렬에서 제j 행의 제k 열의 성분이 제j 행의 제j 열의 성분을 제외한 최초의 '1'이고 상기 제4 행렬의 제k 열의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제k 번째의 성분은 '1'로 하며, j<i<k와 k<i≤n을 만족하는 i에 대하여 제i 행의 성분의 합이 '2'미만이면 행(row) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 행의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제i 번째의 성분은 '1'로 하고, 열(column) 복호화 메시지는 상기 제4 행렬에서 1≤i≤n에 대하여 제i 열의 성분의 합이 '2' 미만이면 열(column)복호화 메시지의 제i 번째의 성분은 '0'이고 상기 제4 행렬에서 제i 열의 성분의 합이 '2' 이상이면 열(column)복호화 메시지의 제i 번째의 성분은 '1'로 하여 행(row) 복호화 메시지와 열(column) 복호화 메시지를 생성하고
    상기 제4 행렬에서 제1 행렬을 생성할 때 n개의 비트로 구성된 메시지 데이터가 열에 배치되는 경우에, 열(column) 복호화 메시지는 1≤i≤n에 대하여 제i 열의 성분의 합이 '2'이상인 마지막 열을 제j 열이라고 할 때, 1≤i≤j에 대하여 제i 열의 성분의 합이 '2'미만이면 열(row) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 열의 성분의 합이 '2' 이상이면 열(column) 복호화 메시지의 제i 번째의 성분은 '1'로 하고, 제j 열의 제j 행을 제외하고 j<k를 만족하는 k에 대하여 상기 제4 행렬에서 제j 열의 제k 행의 성분이 제j 열의 제j 행의 성분을 제외한 최초의 '1'이고 상기 제4 행렬의 제k 행의 성분의 합이 '2' 이상이면 열(column) 복호화 메시지의 제k 번째의 성분은 '1'로 하며, j<i<k와 k<i≤n을 만족하는 i에 대하여 제i 열의 성분의 합이 '2'미만이면 열(column) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 열의 성분의 합이 '2' 이상이면 열(column) 복호화 메시지의 제i 번째의 성분은 '1'로 하고, 행(row) 복호화 메시지는 상기 제4 행렬에서 1≤i≤n에 대하여 제i 행의 성분의 합이 '2' 미만이면 행(row)복호화 메시지의 제i 번째의 성분은 '0'이고 상기 제4 행렬에서 제i 행의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제i 번째의 성분은 '1'로 하여 행(row) 복호화 메시지와 열(column) 복호화 메시지를 생성하는 행(row)과 열(column) 복호화 메시지 단계; 및
    1≤i≤n에 대하여 상기 행(row) 복호화 메시지의 제i 번째 성분과 열(column) 복호화 메시지의 제i 번째 성분을 비교하여 동일한 경우에 복호화 메시지의 제i 번째 성분을 상기 동일한 값으로 선택하여 복호화하고 상기 행(row) 복호화 메시지와 열(column) 복호화 메시지를 비교하여 동일하지 않은 경우에는 메시지 입력 데이터의 길이 n과 동일한 길이의 복호화 메시지를 얻을 때까지 상기 단계들을 반복 실행하며 이전 단계에서 이미 복호화된 메시지의 성분은 최종 복호화 메시지 성분으로 정하여 그대로 두고 이전단계에서 동일하지 않았던 성분들을 복호화하는 복호화 단계를 포함하는 특정 밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법.
  7. 제6항에 있어서,
    상기 전송 메시지를 수신하는 단계 이후에
    상기 수신한 전송 메시지의 길이를 측정하는 단계;
    상기 측정한 전송 메시지의 길이를 비교하는 단계를 더 포함하고,
    상기 비교 결과, 상기 측정된 전송 메시지의 길이가 n2인 경우, 상기 전송된 메시지를 n 블록으로 구분하고, 상기 n 블록의 각 블록을 순서대로 행 또는 열로 배열하여 n x n 크기의 제3 행렬을 생성하는 것을 특징으로 하는 특정 밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법.
  8. 제7항에 있어서,
    상기 측정된 전송 메시지의 길이가 n2이 아닌 경우, 상기 제3 행렬과 상기 제4 행렬 그리고 상기 행(row)과 열(column) 복호화 메시지 단계를 생략하여 상기 복호화 단계에서
    상기 부호화 단계의 입력 메시지 길이인 n 개의 '0'으로 구성된 복호화 메시지 데이터를 생성하여 복호화하는 것을 특징으로 하는 특정 밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법.
  9. 제6항에 있어서,
    상기 행(row) 복호화 메시지의 제i 번째 성분과 상기 열(column) 복호화 메시지의 제i 번째 성분을 비교하여 복호화 메시지를 얻는 상기 복호화 단계에서
    복호화 메시지의 제i 번째 성분은 상기 행(row) 복호화 메시지의 제i 번째 성분과 열(column) 복호화 메시지의 제i 번째 성분의 동일한 값으로 하며, 최초의 상기 동일한 값을 최종 복호화 메시지로 결정하고, 최초로 복호화된 메시지를 우선적으로 기억하며 후속 복호화 메시지는 이전에 복호화되지 않았던 성분들이 복호화하는 것을 특징으로 하는 특정 밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법.
  10. n 개의 비트로 이루어진 원본 메시지 데이터를 부호화하기 위한 장치에 있어서,
    원본 메시지 데이터의 각 비트를 n 개의 열(column)로 정렬한 제1 행(row)으로 배열하거나 원본 메시지 데이터의 각 비트를 n 개의 행(row)으로 정렬한 제1 열(column)로 배열하고,
    상기 원본 메시지 데이터를 제1 행에 배열하는 경우에는
    상기 제1 행에서 최초로 '1'이 존재하는 열을 제i 열이라고 할 때 제2 행부터 제i 행까지 1≤j<i를 만족하는 j에 대하여 제j+1 행의 제j 열의 성분을 '1'로 하고, 제j+1 행의 나머지 성분은 '0'이 되도록 구성하고, i<j≤n을 만족하는 j에 대하여 상기 제1 행의 제j 열의 성분이 '0'이면 제j 행의 제j 열의 성분은 '1'이고 제j 행의 나머지 성분은 '0'으로 구성하며, 상기 제1 행의 제j 열의 성분이 '1'이면 제j 행의 제1 열부터 제j-1 열까지 성분은 '0'으로 하고, 제j 행의 제j 열부터 제n 열까지 상기 제 1행의 제j 열부터 제n 열까지의 성분과 동일하도록 구성하여 이루어진 n x n 크기의 제1 행렬을 생성하고,
    상기 원본 메시지 데이터를 제1 열에 배열하는 경우에는
    상기 제1 열에서 최초로 '1'이 존재하는 행을 제i 행이라고 할 때 제2 열부터 제i 열까지 1≤j<i를 만족하는 j에 대하여 제j+1 열의 제j 행의 성분을 '1'로 하고, 제j+1 열의 나머지 성분은 '0'이 되도록 구성하고, i<j≤n을 만족하는 j에 대하여 상기 제1 열의 제j 행의 성분이 '0'이면 제j 열의 제j 행의 성분은 '1'이고 제j 열의 나머지 성분은 '0'으로 구성하며, 상기 제1 열의 제j 행의 성분이 '1'이면 제j 열의 제1 행부터 제j-1 행까지 성분은 '0'으로 하고, 제j 열의 제j 행부터 제n 행까지 상기 제 1열의 제j 행부터 제n 행까지의 성분과 동일하도록 구성하여 이루어진 n x n 크기의 제1 행렬을 생성하는 제1 행렬 생성부;
    상기 제1 행렬의 역행렬을 구하고, 상기 역행렬에 대하여 2를 법(modulus)으로 하는 법 연산(modulus operation)을 적용하여 제2 행렬을 생성하는 제2 행렬 생성부;
    상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하는 코드워드 생성부;
    상기 생성한 코드워드를 전송하는 전송부를 포함하는 특정 밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.
  11. 제10항에 있어서,
    상기 메시지 데이터의 n개 비트가 모두 '0'으로만 이루어진 경우에는 상기 제1 행렬 생성부 또는 상기 제2 행렬 생성부를 건너뛰고,
    상기 코드워드(codeword) 생성부가 모두 '0'으로 이루어진 길이가 n2인 코드워드를 생성하는 것을 특징으로 하는 특정 밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.
  12. 제10항에 있어서,
    상기 메시지 데이터의 n개 비트가 모두 '0'으로만 이루어진 경우에는 상기 제1 행렬 생성부 및 상기 제2 행렬 생성부를 건너뛰고,
    상기 코드워드(codeword) 생성부가
    n2이 아닌 다른 길이로 이루어진 코드워드(codeword)를 생성하는 것을 특징으로 하는 특정 밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)의 부호화 장치.
  13. 제10항에 있어서,
    상기 메시지 데이터의 n개 비트가 모두 '0'으로만 이루어진 경우에는 상기 제1 행렬 생성부 및 상기 제2 행렬 생성부를 건너뛰고,
    상기 코드워드(codeword) 생성부가
    n2개가 아닌 다른 개수의 '0'으로 이루어진 코드워드(codeword)를 생성하는 것을 특징으로 하는 특정 밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)의 부호화 장치.
  14. 제10항에 있어서,
    상기 제2 행렬부에서 생성된 제2 행렬을 이용하여 상기 코드워드(codeword)를 생성하는 상기 코드워드(codeword) 생성부가
    상기 원본 메시지 데이터를 상기 제1 행렬의 제1 행에 배열하는 경우에는 상기 생성된 제2 행렬의 제1 행 내지 제n 행을 순서대로 연결하는 방식으로 n2의 길이의 상기 코드워드(codeword)를 생성하고,
    상기 원본 메시지 데이터를 상기 제1 행렬의 제1 열에 배열하는 경우에는 상기 제2 행렬을 이용하여 제1 열 내지 제n 열을 순서대로 연결하는 방식으로 n2의 길이의 상기 코드워드(codeword)를 생성하는 것을 특징으로 하는 특정 밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)의 부호화 장치.
  15. 제10항 내지 제14항 중 어느 하나의 한 항의 부호화 장치를 통하여 코드워드(codeword)로 생성되어 전송된 메시지를 복호화하기 위한 장치에 있어서,
    전송 메시지를 수신하는 전송 메시지 수신부;
    상기 수신된 전송 메시지를 n 블록으로 구분하고, 상기 n 블록의 각 블록을 순서대로 행 또는 열로 배열하여 n x n 크기의 제3 행렬을 생성하는 제3 행렬 생성부;
    상기 제3 행렬이 상기 n 블록의 각 블록을 순서대로 행으로 배열하여 제3 행렬을 생성한 경우에는
    상기 제3 행렬에서 행의 성분들의 합이 2 이상인 최초의 행을 제i 행 또는 제1 열의 성분이 '1'이고 동시에 그 행의 성분들의 합이 2 이상인 행을 제i 행이라고 할 때, 1≤j<i에 대하여 제3 행렬의 제j 행의 제j+1 열의 성분이 '1'이고 제j 행의 나머지 성분은 '0'으로 하며, 제3 행렬의 제i 행의 제1 열부터 제i-1 열까지 성분은 '0'으로 하고 제i 행의 제i 열의 성분은 '1'로 하며, i+1≤j≤n에 대하여 제3 행렬의 제j 행의 제j 열 성분을 '1'로 하고 제j 행의 제1 열부터 제j-1 열까지의 성분은 '0'으로 하여 제4 행렬을 생성하고
    상기 제3 행렬이 상기 n 블록의 각 블록을 순서대로 열로 배열하여 제3 행렬을 생성한 경우에는
    상기 제3 행렬에서 열의 성분들의 합이 2 이상인 최초의 열을 제i 열 또는 제1 행의 성분이 '1'이고 동시에 그 열의 성분들의 합이 2 이상인 열을 제i 열이라고 할 때, 1≤j<i에 대하여 제3 행렬의 제j 열의 제j+1 행의 성분이 '1'이고 제j 열의 나머지 성분은 '0'으로 하며, 제3 행렬의 제i 열의 제1 행부터 제i-1 행까지 성분은 '0'으로 하고 제i 열의 제i 행의 성분은 '1'로 하며, i+1≤j≤n에 대하여 제3 행렬의 제j 열의 제j 행 성분을 '1'로 하고 제j 열의 제1 행부터 제j-1 행까지의 성분은 '0'으로 하여 제4 행렬을 생성하는 제4 행렬 생성부;
    상기 제4 행렬에서 제1 행렬을 생성할 때 n개의 비트로 구성된 메시지 데이터가 행에 배치되는 경우에, 행(row) 복호화 메시지는 1≤j≤n에 대하여 제i 행의 성분의 합이 '2'이상인 마지막 행을 제j 행이라고 할 때, 1≤i≤j에 대하여 제i 행의 성분의 합이 '2'미만이면 행(row) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 행의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제i 번째의 성분은 '1'로 하고, 제j 행의 제j 열을 제외하고 j<k를 만족하는 k에 대하여 상기 제4 행렬에서 제j 행의 제k 열의 성분이 제j 행의 제j 열의 성분을 제외한 최초의 '1'이고 상기 제4 행렬의 제k 열의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제k 번째의 성분은 '1'로 하며, j<i<k와 k<i≤n을 만족하는 i에 대하여 제i 행의 성분의 합이 '2'미만이면 행(row) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 행의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제i 번째의 성분은 '1'로 하고, 열(column) 복호화 메시지는 상기 제4 행렬에서 1≤i≤n에 대하여 제i 열의 성분의 합이 '2' 미만이면 열(column)복호화 메시지의 제i 번째의 성분은 '0'이고 상기 제4 행렬에서 제i 열의 성분의 합이 '2' 이상이면 열(column)복호화 메시지의 제i 번째의 성분은 '1'로 하여 행(row) 복호화 메시지와 열(column) 복호화 메시지를 생성하고
    상기 제4 행렬에서 제1 행렬을 생성할 때 n개의 비트로 구성된 메시지 데이터가 열에 배치되는 경우에, 열(column) 복호화 메시지는 1≤i≤n에 대하여 제i 열의 성분의 합이 '2'이상인 마지막 열을 제j 열이라고 할 때, 1≤i≤j에 대하여 제i 열의 성분의 합이 '2'미만이면 열(row) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 열의 성분의 합이 '2' 이상이면 열(column) 복호화 메시지의 제i 번째의 성분은 '1'로 하고, 제j 열의 제j 행을 제외하고 j<k를 만족하는 k에 대하여 상기 제4 행렬에서 제j 열의 제k 행의 성분이 제j 열의 제j 행의 성분을 제외한 최초의 '1'이고 상기 제4 행렬의 제k 행의 성분의 합이 '2' 이상이면 열(column) 복호화 메시지의 제k 번째의 성분은 '1'로 하며, j<i<k와 k<i≤n을 만족하는 i에 대하여 제i 열의 성분의 합이 '2'미만이면 열(column) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 열의 성분의 합이 '2' 이상이면 열(column) 복호화 메시지의 제i 번째의 성분은 '1'로 하고, 행(row) 복호화 메시지는 상기 제4 행렬에서 1≤i≤n에 대하여 제i 행의 성분의 합이 '2' 미만이면 행(row)복호화 메시지의 제i 번째의 성분은 '0'이고 상기 제4 행렬에서 제i 행의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제i 번째의 성분은 '1'로 하여 행(row) 복호화 메시지와 열(column) 복호화 메시지를 생성하는 행(row)과 열(column) 복호화 메시지부;
    1≤i≤n에 대하여 상기 행(row) 복호화 메시지의 제i 번째 성분과 열(column) 복호화 메시지의 제i 번째 성분을 비교하여 동일한 경우에 복호화 메시지의 제i 번째 성분을 상기 동일한 값으로 선택하여 복호화하고 상기 행(row) 복호화 메시지와 열(column) 복호화 메시지를 비교하여 동일하지 않은 경우에는 메시지 입력 데이터의 길이 n과 동일한 길이의 복호화 메시지를 얻을 때까지 상기 단계들을 반복 실행하며 이전 단계에서 이미 복호화된 메시지의 성분은 최종 복호화 메시지 성분으로 정하여 그대로 두고 이전단계에서 동일하지 않았던 성분들을 복호화하는 복호화부를 포함하는 특정 밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.
  16. 제15항에 있어서,
    상기 전송 메시지 수신부에서 수신한 전송 메시지의 길이를 측정하는 전송 메시지 길이 측정부;
    상기 측정한 전송 메시지의 길이를 비교하는 전송 메시지 길이 비교부를 더 포함하고,
    상기 비교 결과 상기 전송 메시지의 길이가 n2인 경우, 상기 제3 행렬부는 상기 전송된 메시지를 n 블록으로 구분하고, 상기 n 블록의 각 블록을 순서대로 행 또는 열로 배열하여 n x n 크기의 제3 행렬을 생성하는 것을 특징으로 하는 특정 밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.
  17. 제16항에 있어서,
    상기 측정된 전송 메시지의 길이가 n2이 아닌 경우, 상기 제3 행렬 생성부와 상기 제4 행렬 생성부 및 상기 행(row)과 열(column) 복호화 메시지부를 건너뛰고,
    상기 복호화부가 상기 부호화 장치의 입력 메시지 길이인 n 개의 '0'으로 구성된 복호화 메시지 데이터를 생성하여 복호화하는 것을 특징으로 하는 특정 밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.
  18. 제15항에 있어서,
    상기 복호화부에서
    상기 행(row)과 열(column) 복호화 메시지부에서 생성된 행(row) 복호화 메시지의 제i 번째 성분과 상기 행(row)과 열(column) 복호화 메시지부에서 생성된 열(column) 복호화 메시지의 제i 번째 성분을 비교하여 복호화 메시지를 얻고 복호화 메시지의 제i 번째 성분은 상기 행(row) 복호화 메시지의 제i 번째 성분과 열(column) 복호화 메시지의 제i 번째 성분의 동일한 값으로 하며, 최초의 상기 동일한 값을 최종 복호화 메시지로 결정하고, 최초로 복호화된 메시지를 우선적으로 기억하며 후속 복호화 메시지는 이전에 복호화되지 않았던 성분들이 복호화하는 것을 특징으로 하는 특정 밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.
KR20130014101A 2013-02-07 2013-02-07 특정밀도를 기반으로 하는 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치 KR101512078B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR20130014101A KR101512078B1 (ko) 2013-02-07 2013-02-07 특정밀도를 기반으로 하는 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치
PCT/KR2014/000983 WO2014123351A1 (ko) 2013-02-07 2014-02-05 특정밀도를 기반으로 하는 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130014101A KR101512078B1 (ko) 2013-02-07 2013-02-07 특정밀도를 기반으로 하는 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20140100835A true KR20140100835A (ko) 2014-08-18
KR101512078B1 KR101512078B1 (ko) 2015-04-14

Family

ID=51299901

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130014101A KR101512078B1 (ko) 2013-02-07 2013-02-07 특정밀도를 기반으로 하는 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치

Country Status (2)

Country Link
KR (1) KR101512078B1 (ko)
WO (1) WO2014123351A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101942037B1 (ko) * 2018-12-06 2019-01-24 동국대학교 산학협력단 비밀키 암호화를 통한 데이터 통신을 수행하는 자동차 전자 제어 장치 및 그 동작 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100906474B1 (ko) * 2003-01-29 2009-07-08 삼성전자주식회사 저밀도 부가정보 발생용 매트릭스를 이용한 에러 정정방법 및그 장치
KR100975061B1 (ko) * 2003-11-28 2010-08-11 삼성전자주식회사 저밀도 패리티 검사를 이용한 패리티 정보 생성 방법
KR101073907B1 (ko) * 2004-07-27 2011-10-17 엘지전자 주식회사 Ldpc 코드를 이용한 부호화 방법 및 부호화를 위한컴퓨터로 읽을 수 있는 기록 매체
KR20070063851A (ko) * 2005-12-15 2007-06-20 삼성전자주식회사 패리티 검사 행렬, 패리티 검사 행렬 생성 방법, 인코딩방법 및 에러 정정 장치
JP4634423B2 (ja) 2007-08-30 2011-02-16 日本電信電話株式会社 情報送受信方法、符号化装置および復号化装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101942037B1 (ko) * 2018-12-06 2019-01-24 동국대학교 산학협력단 비밀키 암호화를 통한 데이터 통신을 수행하는 자동차 전자 제어 장치 및 그 동작 방법

Also Published As

Publication number Publication date
KR101512078B1 (ko) 2015-04-14
WO2014123351A1 (ko) 2014-08-14

Similar Documents

Publication Publication Date Title
US10536171B2 (en) Encoding/decoding method, device, and system
JP6584036B2 (ja) 署名対応Polarエンコーダ及びデコーダ
JP5231218B2 (ja) さまざまな符号クラスの符号化および復号化への応用を有するインプレース変換
US9203608B2 (en) System for encrypting data with an error correction code
CN108400838B (zh) 数据处理方法及设备
US9287897B2 (en) Systematic rate-independent Reed-Solomon erasure codes
KR20170097580A (ko) 폴라 코딩 장치
US8438448B2 (en) Decoding method and device for low density generator matrix codes
JPWO2019130475A1 (ja) 通信路分極を用いた誤り訂正符号化方法および装置、復号方法および装置
CN110233698B (zh) 极化码的编码及译码方法、发送设备、接收设备、介质
US20030188248A1 (en) Apparatus for iterative hard-decision forward error correction decoding
KR101527267B1 (ko) 직교 다중 디스크립션 코딩
WO2018149354A1 (zh) 极化码的编码方法、装置及设备、存储介质
CN105933107A (zh) 一种基于ldpc变码技术的纠错加密方法
KR101512078B1 (ko) 특정밀도를 기반으로 하는 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치
US20170288697A1 (en) Ldpc shuffle decoder with initialization circuit comprising ordered set memory
KR101425506B1 (ko) 보완적인 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치
CN114221740B (zh) 基于bats码的传输方法、装置、设备及可读存储介质
CN115811381A (zh) 网络通信方法、网络通信装置、电子设备及存储介质
KR101512081B1 (ko) 특정 밀도를 기반으로 하는 저밀도 행렬을 이용한 부호화/복호화 방법 및 장치
KR100874484B1 (ko) 준순환 저밀도 패리티 검사 부호화 방법 및 장치
KR101391859B1 (ko) 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치
US9160364B1 (en) Code word formatter of shortened non-binary linear error correction code
WO2018149304A1 (zh) 数据处理方法和装置、数据处理设备及存储介质
CN114204943A (zh) 编码方法和装置

Legal Events

Date Code Title Description
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
LAPS Lapse due to unpaid annual fee