KR101391859B1 - Method and device of encoding/decoding using sparse inverse code - Google Patents

Method and device of encoding/decoding using sparse inverse code Download PDF

Info

Publication number
KR101391859B1
KR101391859B1 KR1020120084180A KR20120084180A KR101391859B1 KR 101391859 B1 KR101391859 B1 KR 101391859B1 KR 1020120084180 A KR1020120084180 A KR 1020120084180A KR 20120084180 A KR20120084180 A KR 20120084180A KR 101391859 B1 KR101391859 B1 KR 101391859B1
Authority
KR
South Korea
Prior art keywords
message
matrix
column
block
length
Prior art date
Application number
KR1020120084180A
Other languages
Korean (ko)
Other versions
KR20140016775A (en
Inventor
최수정
Original Assignee
최수정
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 최수정 filed Critical 최수정
Priority to KR1020120084180A priority Critical patent/KR101391859B1/en
Priority to PCT/KR2013/005664 priority patent/WO2014021559A1/en
Publication of KR20140016775A publication Critical patent/KR20140016775A/en
Application granted granted Critical
Publication of KR101391859B1 publication Critical patent/KR101391859B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • 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 개의 행으로 정렬한 제k 열(column)과, 상기 제 k열에서 최초로 '1'이 존재하는 행을 제외한 각 행과 각 열에서 하나의 '1'만이 존재하도록 구성된 나머지 열들로 이루어진 n x n 크기의 제 1행렬을 생성하는 단계; 제1 행렬의 역행렬을 구하고, 역행렬에 대하여 2를 법으로 하는 법 연산(modulus operation)을 적용하여 제2 행렬을 생성하는 단계; 및 제2 행렬을 이용하여 코드워드(codeword)를 생성하여 전송하는 단계로 이루어진다. 또한, 복호화 방법은 전송 메시지를 수신하는 단계; 전송 메시지의 길이와 원본 메시지 데이터의 길이에서 기복호화된 메시지의 길이를 뺀 잔여 길이와 비교하는 단계; 비교 결과, 측정된 전송 메시지의 길이와 잔여 길이가 다를 경우, 전송 메시지를 n 블록으로 구분하여 n x n 크기의 제3 행렬을 생성하고, 비교 결과, 측정된 전송 메시지의 길이와 잔여 길이가 동일한 경우에는 전송 메시지를 모두 '0'으로 구성된 부분 복호화 메시지 데이터로 생성하는 단계; 생성된 제3 행렬의 n 개의 열들 중에서 상대적으로 가장 고밀도(densest)인 열을 선택하는 단계; 선택한 열을 근거로 부분 복호화 메시지 데이터를 생성하는 단계; 및 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 단계로 이루어진다.The present invention relates to a coding / decoding method and apparatus using a low-density inverse code. The encoding method includes: inputting data consisting of n bits received from the outside; k-th column in which each bit is arranged in n rows; and each row and each column excluding a row in which first '1' is present in the k- Generating a first matrix of nxn size made up of the remaining columns configured such that only one '1' is present in the column; Generating a second matrix by obtaining an inverse matrix of the first matrix and applying a modulus operation to the inverse matrix by 2; And generating and transmitting a codeword using the second matrix. The decoding method may further include receiving a transmission message; Comparing the length of the transmission message and the length of the original message data with the remaining length minus the length of the first decrypted message; As a result of the comparison, if the length and the remaining length of the measured transmission message are different, a third matrix of nxn size is generated by dividing the transmission message into n blocks. If the measured transmission message length and remaining length are equal Generating transmission messages as partial decryption message data composed of '0'; Selecting a row having the highest density among the n columns of the generated third matrix; Generating partial decryption message data based on the selected column; And decrypting using the generated partial decryption message data.

Figure R1020120084180
Figure R1020120084180

Description

저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치{METHOD AND DEVICE OF ENCODING/DECODING USING SPARSE INVERSE CODE}TECHNICAL FIELD [0001] The present invention relates to a method and apparatus for encoding / decoding using a low-density inverse code,

본 발명은 저밀도 역 코드(sparse inverse code)를 이용한 부호화/복호화 방법 및 장치에 관한 것으로서, 원본 메시지 데이터를 이용한 메시지 블록을 이용하여 행렬을 생성하고, 생성한 행렬의 역행렬과 데이터의 밀도(density)를 이용하여 메시지를 쉽게 부호화하고 복호화 할 수 있는 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치에 관한 것이다.
The present invention relates to a method and an apparatus for encoding / decoding using a low-density inverse code. The method includes generating a matrix using a message block using original message data, generating an inverse matrix of the generated matrix, To a method and apparatus for encoding / decoding using a low-density inverse code that can easily encode and decode a message by using a low-density inverse code.

일반적으로, 많은 통신 장치나 기록 재생 장치에 있어서는 입력 정보 계열을 부호화한 부호 계열을 전송함으로써 디지털 전송 정보의 비트 오류율(Bit Error Rate, BER)의 저감이 도모되고 있다.Generally, in many communication apparatuses and recording / reproducing apparatuses, a bit error rate (BER) of digital transmission information is reduced by transmitting a code sequence in which an input information sequence is coded.

최근, 예를 들어 이동 통신이나 우주 통신 등의 통신 분야, 및 지상파 또는 위성 디지털 방송이라는 방송 분야의 연구가 활발하게 진행되고 있으며, 그에 수반하여 오류 정정 부호화 및 복호의 효율화를 목적으로 한 부호 이론에 관한 연구도 꾸준하게 행하여지고 있다.In recent years, for example, studies have been actively made on the field of communication such as mobile communication and space communication, and the field of broadcasting such as terrestrial or satellite digital broadcasting, and a code theory for the purpose of improving the efficiency of error correction coding and decoding Research is also being carried out steadily.

부호 성능의 이론적 한계의 예로 섀넌(C.E.Shannon)의 통신로 부호화 정리에 의해 부여되는 섀넌 한계가 알려져 있다. 이에 부호 이론에 관한 연구의 목적 중 하나는 이 섀넌 한계에 가까운 성능을 나타내는 부호를 개발하는 것이다. An example of the theoretical limit of code performance is the Shannon limit given by C.E. Shannon's theorem of coding. One of the purposes of the study of code theory is to develop a code that is close to the Shannon limit.

섀넌 한계에 가까운 성능을 나타내는 부호화 방법으로서, 예를 들어 병렬 연접 컨볼루션 부호(parallel concatenated convolutional codes)나, 종렬 연접 컨볼루션 부호(serial concatenated convolutional codes) 등의, 소위 터보 부호화(turbo coding)라는 방법이 개발되고 있다.As a coding method showing performance close to the Shannon limit, for example, a so-called turbo coding method such as parallel concatenated convolutional codes or serial concatenated convolutional codes Is being developed.

또 최근에는, 이들 터보 부호화 이외에 전송 정보의 BER의 저감에 유효한 오류 정정 부호의 하나로서, 저밀도 패리티 검사[LDPC(low-density parity-check code)] 부호의 연구가 활발히 행해지고 있다.In recent years, studies on low-density parity-check (LDPC) codes have been actively conducted as one of error correction codes effective for reducing the BER of transmission information in addition to these turbo coding.

LDPC 부호는 R.G.Gallager에 의해 1963년에 제안된 부호화 방법으로 매우 우수한 복호(decoding) 성능을 갖고 있는 것이 밝혀졌다. 특히, 최근의 연구에 의해 LDPC 부호는 부호율이 낮은 부호에서는 부호 길이를 길게 해 감에 따라 섀넌 한계에 가까운 성능이 얻어지는 것을 알 수 있다. It has been found that the LDPC code has excellent decoding performance by the coding scheme proposed in 1963 by R.G.Gallager. In particular, according to recent studies, it can be seen that the LDPC code has a performance close to the Shannon limit as the code length is increased in the code with a low code rate.

그러나 매우 우수한 복호 성능을 갖고 있는 LDPC 부호 방법에 의하면, 복호 성능에 비하여 부호화(encoding) 단계에서 효율적이지 못하고, 계산이 복잡해지는 문제점이 발생한다. However, according to the LDPC coding method having a very good decoding performance, it is not efficient at the encoding step as compared with the decoding performance, and the calculation becomes complicated.

이에 부호화 단계에서부터 계산 과정을 줄일 수 있으며 복호화 단계에서도 데이터의 복호 성능이 개선된 코딩 방법의 필요성이 크게 대두되고 있다. Accordingly, it is possible to reduce the calculation process from the coding step, and a coding method in which the decoding performance of data is improved even in the decoding step is greatly required.

본 발명은 이와 같은 문제점을 해결하기 위한 것으로, 본 발명은 원본 메시지 데이터를 일정 규칙에 의하여 복수개의 블록들로 절단하고, 절단한 블록을 이용하여 메시지 블록을 생성하고, 메시지 블록을 이용하여 저밀도 행렬을 생성하고 생성된 행렬의 역행렬(inverse matrix)을 구한 후, 2를 법(modulus 2)으로 하는 연산을 적용하여 저밀도 역행렬을 사용하여 부호화함으로써, 부호화에 사용되는 계산을 감소시킬 수 있는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법을 제공하는 데에 그 목적이 있다.According to the present invention, the original message data is divided into a plurality of blocks according to a predetermined rule, a message block is generated using the truncated block, and a low density matrix (Inverse matrix) of the generated matrix, and then applying a calculation using a modulus of 2 (2) to perform coding using a low-density inverse matrix. Thus, a low-density inverse code and an encoding method using a sparse inverse code.

또한, 본 발명은 상기 부호화 방법에 의하여 부호화된 데이터를 행렬로 생성하고, 생성된 행렬에서 각 열(column)의 밀도(density)를 기반으로 데이터를 복호화함으로써, 복잡한 계산 과정이 생략되어 복호 성능을 개선시킬 수 있는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법을 제공하는 데에 그 목적이 있다.Also, according to the present invention, data encoded by the encoding method is generated as a matrix, and data is decoded based on the density of each column in the generated matrix, thereby complicated calculation is omitted. And a decoding method using a low-density sparse inverse code that can be improved.

나아가, 본 발명은 상기 부호화/복호화 방법을 실행하기 위한 저밀도 역 코드를 이용한 부호화/복호화 장치를 제공하는 데에 그 목적이 있다.
Furthermore, it is an object of the present invention to provide a coding / decoding apparatus using a low-density inverse code for executing the coding / decoding method.

본 발명의 실시예들에 따른 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법에 따르면, 외부로부터 전달받은 n개 비트로 이루어진 입력 데이터를 각 비트를 n 개의 행으로 정렬한 제k 열(column)과, 상기 제 k열에서 최초로 '1'이 존재하는 행을 제외한 각 행과 각 열에서 하나의 '1'만이 존재하도록 구성된 나머지 열들로 이루어진 n x n 크기의 제 1행렬을 생성하는 단계; 상기 제1 행렬의 역행렬을 구하고, 상기 역행렬에 대하여 2를 법으로 하는 법 연산(modulus operation)을 적용하여 제2 행렬을 생성하는 단계; 및 상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하여 전송하는 단계를 포함한다. According to the encoding method using the low-density inverse code according to the embodiments of the present invention, the input data composed of n bits received from the outside is divided into a k-th column in which each bit is arranged in n rows, Generating a first matrix of size nxn, each row including the first row in the kth column except for the first row and the remaining columns including only one '1' in each column; Generating an inverse matrix of the first matrix and generating a second matrix by applying a modulus operation to the inverse matrix by 2; And generating and transmitting a codeword using the second matrix.

한편, 상기 제1 행렬을 생성하는 단계에서 생성된 상기 제 1행렬은 상기 제k 열을 제외한 나머지 행들에 존재하는 '1'은 상기 제k 열에서 최초로 '1'이 나타나는 행을 제외하고, 행의 순서 또는 열의 순서대로 각 행과 각 열에 '1'이 하나씩 존재하도록 구성될 수 있다. Meanwhile, the first matrix generated in the step of generating the first matrix may be a matrix except for a row in which '1' appears first in the k-th column, '1' existing in the remaining rows except for the k- Quot; 1 " in each column and each column in the order of columns or columns.

본 발명의 실시예들에 있어서, 상기 제1 행렬을 생성하는 단계 이전에, 외부로부터 원본 메시지 데이터를 수신하는 단계; 상기 수신한 원본 메시지 데이터를 '1'을 기준으로 절단(chopping)하여 복수개의 절단된 블록들로 생성하는 단계; 상기 절단된 블록들 중 적어도 하나의 절단된 블록으로 구성된 메시지 블록을 생성하는 단계; 상기 생성된 메시지 블록들 중에서 적어도 하나의 '1'을 포함하는 메시지 블록들을 입력 데이터로 출력하는 단계를 더 포함할 수 있다. In embodiments of the present invention, prior to the step of generating the first matrix, receiving original message data from outside; Generating a plurality of truncated blocks by chopping the received original message data based on '1'; Generating a message block comprising at least one truncated block of the truncated blocks; And outputting message blocks including at least one '1' among the generated message blocks as input data.

본 발명의 실시예들에 있어서, 상기 수신한 원본 메시지 데이터를 복수개의 블록들로 절단(chopping)하는 단계는 상기 수신한 원본 메시지 데이터를 최초의 비트를 기준으로 '1'이 나오는 비트가 나올 때마다 상기 '1'이 존재하는 비트와 다음 비트 사이를 절단하는 방식이 사용될 수 있다. In the embodiments of the present invention, the step of chopping the received original message data into a plurality of blocks may be performed when a bit of '1' appears on the basis of the first bit of the received original message data A method may be used in which the bit where the '1' exists and the next bit are cut off.

본 발명의 실시예들에 있어서, 상기 메시지 블록을 생성하는 단계는 상기 메시지 블록은 상기 절단된 블록들 전체로 구성된 제1 메시지 블록과, 상기 제1 메시지 블록에서 상기 절단된 블록을 하나씩 제거하여 생성된 제2 메시지 블록 내지 제n 메시지 블록들로 이루어진다. 이 때, 상기 제n 메시지 블록은 모두 '0'으로 이루어진 블록, 하나의 '1'로만 이루어진 블록 및 적어도 하나의 '0'과 하나의 '1'로만 이루어진 블록들 중 하나가 될 수 있다. In the embodiments of the present invention, the message block may include a first message block including all of the truncated blocks, and a second message block generated by removing the truncated blocks one by one in the first message block And the second message block to the n-th message block. In this case, the nth message block may be one of '0' blocks, one '1' block, and at least one '0' and one '1' blocks.

이어서, 상기 메시지 블록을 입력 데이터로 출력하는 단계는 상기 제1 메시지 블록 내지 제n 메시지 블록을 순서대로 입력 데이터로 출력할 수 있다. The outputting of the message block as input data may output the first to nth message blocks as input data in order.

본 발명의 실시예들에 있어서, 상기 원본 메시지 데이터가 '0'으로만 이루어진 경우에는 상기 원본 메시지 데이터를 상기 코드워드로 생성할 수 있다. In embodiments of the present invention, when the original message data is only '0', the original message data may be generated as the codeword.

본 발명의 실시예들에 있어서, 상기 절단된 블록들 중 적어도 하나의 절단된 블록으로 구성된 메시지 블록을 생성하는 단계는 상기 절단된 블록들 중에서 '0'으로만 이루어진 영 블록을 상기 코드워드로 생성할 수 있다. 이 때, 상기 영 블록에 근거로 코드워드로 생성하는 단계는 상기 메시지 블록들을 근거로 코드워드를 생성하는 단계 이후에 수행된다. In the embodiments of the present invention, the step of generating a message block composed of at least one truncated block among the truncated blocks may include generating a zero block consisting of only '0' among the truncated blocks with the codeword can do. At this time, the step of generating a codeword based on the zero block is performed after the step of generating a codeword based on the message blocks.

본 발명의 실시예들에 있어서, 상기 생성된 메시지 블록들이 a개인 경우에는 상기 코드워드가 a개가 생성되고, 상기 생성된 메시지 블록들 중에서 적어도 하나의 '1'을 포함하는 메시시 블록이 b개인 경우에는 상기 입력 데이터, 상기 제1 행렬, 상기 제2 행렬 및 상기 코드워드가 b개가 생성된다. In the embodiments of the present invention, if the generated message blocks are a, a code word is generated, and a message block including at least one '1' among the generated message blocks is b , B pieces of the input data, the first matrix, the second matrix and the code word are generated.

본 발명의 실시예들에 있어서, 상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하기 위하여, 상기 생성된 제2 행렬의 제1 열 내지 제n 열을 순서대로 연결하는 방식으로 n2 길이의 코드워드를 생성한다. 이 때, 상기 입력 데이터가 n개 비트로 이루어진 경우, 상기 제2 행렬을 이용하여 생성한 코드워드는 n2의 길이를 갖는다.Order according to embodiments of the present invention, wherein using the second matrix to generate a code word (codeword), by connecting the first column to the n-th column of the second matrix, the generated order n 2 Length Lt; / RTI > In this case, if the input data is composed of n bits, the codeword generated using the second matrix has a length of n 2 .

본 발명의 실시예들에 따른 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법에 따르면, 전송 메시지를 수신하는 단계; 상기 수신한 전송 메시지의 길이와 원본 메시지 데이터의 길이에서 기복호화된 메시지의 길이를 뺀 잔여 길이를 비교하는 단계; 상기 비교 결과, 상기 측정된 전송 메시지의 길이와 상기 잔여 길이가 다를 경우, 상기 전송 메시지를 n 블록으로 구분하여 n x n 크기의 제3 행렬을 생성하는 단계; 상기 생성된 제3 행렬의 n 개의 열(column)들 중에서 상대적으로 가장 고밀도(densest)인 열을 선택하는 단계; 상기 선택한 열을 근거로 부분 복호화 메시지 데이터를 생성하는 단계; 및 상기 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 단계로 이루어진다. According to a decoding method using a low-density sparse inverse code according to embodiments of the present invention, there is provided a decoding method comprising: receiving a transmission message; Comparing a length of the received transmission message with a length of original message data minus a length of a message that has been decoded; Generating a third matrix of size n x n by dividing the transmission message into n blocks if the measured transmission message length and the residual length are different; Selecting a row having the highest density among n columns of the generated third matrix; Generating partial decryption message data based on the selected column; And decrypting the generated partial decryption message data using the generated partial decryption message data.

본 발명의 실시예들에 있어서, 상기 수신한 전송 메시지의 길이와 상기 잔여 길이를 비교하는 단계 이전에, 상기 수신한 전송 메시지의 길이를 측정하는 단계를 수행할 수 있다. In the embodiments of the present invention, the step of measuring the length of the received transmission message may be performed before comparing the length of the received transmission message with the residual length.

본 발명의 실시예들에 있어서, 상기 비교 결과, 상기 측정된 전송 메시지의 길이와 상기 잔여 길이가 동일한 경우, 상기 전송 메시지를 모두 '0'으로 구성된 부분 복호화 메시지 데이터로 생성한다. In the embodiments of the present invention, when the length of the measured transmission message is equal to the residual length, the transmission message is generated as partially decoded message data composed of '0'.

본 발명의 실시예들에 있어서, 상기 생성된 제3 행렬의 n 개의 열들 중에서 상대적으로 가장 고밀도(densest)인 열을 선택하는 단계에서, 상기 n 개의 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 열을 선택한다. 이 때, 상기 n 개의 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 열이 둘 이상인 경우, 제1 열을 기준으로 최초의 열을 선택한다. 또한, 상기 n 개의 열들 각각이 하나의 '1'만을 포함하고 있는 경우, 제k 행에 '1'을 포함하고 있는 열을 선택한다. In the embodiments of the present invention, in the step of selecting the row having the highest density among the n columns of the generated third matrix, it is preferable that '1' among the n columns is relatively most included Select the column you are in. In this case, if there are two or more columns including the largest number of '1' among the n columns, the first column is selected based on the first column. Also, if each of the n columns includes only one '1', a column including '1' in the k-th column is selected.

본 발명의 실시예들에 있어서, 상기 선택한 열을 근거로 부분 복호화 메시지 데이터를 생성하는 단계에서, 상기 선택한 열이 d 번째 열인 경우, (d-1)개의 '0'과 하나의 '1'이 순서대로 구성된 데이터를 부분 복호화 메시지 데이터로 생성한다. In embodiments of the present invention, when generating the partial decryption message data based on the selected column, if the selected column is the d-th column, (d-1) '0' and one '1' And generates sequentially decoded data as partial decrypted message data.

본 발명의 실시예들에 있어서, 상기 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 단계에서, 상기 생성된 부분 복호화 메시지 데이터를 이전에 생성된 부분 복호화 메시지 데이터에 순서대로 연속 결합하는 방식으로 복호화한다. In the embodiments of the present invention, in the step of decrypting using the generated partial decryption message data, the generated partial decryption message data is decrypted by successively joining the previously generated partial decryption message data in order .

본 발명의 실시예들에 따른 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치는 외부로부터 전달받은 n 개 비트로 이루어진 입력 데이터를 각 비트를 n 개의 행으로 정렬한 제k 열(column)과, 상기 제 k열에서 최초로 '1'이 존재하는 행을 제외한 각 행과 각 열에서 하나의 '1'만이 존재하도록 구성된 나머지 열들로 이루어진 n x n 크기의 제 1행렬을 생성하는 제1 행렬 생성부; 상기 제1 행렬의 역행렬을 구하고, 상기 역행렬에 대하여 2를 법으로 하는 법 연산(modulus operation)을 적용하여 제2 행렬을 생성하는 제2 행렬 생성부; 상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하는 코드워드 생성부; 및 상기 생성한 코드워드를 외부로 전송하는 코드워드 전송부를 포함한다. The encoding apparatus using a low-density inverse code according to embodiments of the present invention includes a k-th column in which input data composed of n bits received from the outside are arranged in n rows of bits, A first matrix generator for generating a first matrix of nxn in size, the first matrix consisting of each row excluding a row in which the first '1' exists in the kth column and the remaining columns configured to have only one '1' in each column; A second matrix generator for generating an inverse matrix of the first matrix and applying a modulus operation to the inverse matrix to generate a second matrix; A code word generator for generating a codeword using the second matrix; And a code word transmitter for transmitting the generated code word to the outside.

본 발명의 실시예들에 있어서, 외부로부터 원본 메시지 데이터를 수신하는 원본 메시지 데이터 수신부; 상기 수신한 원본 메시지 데이터를 '1'을 기준으로 절단(chopping)하여 복수개의 절단된 블록들로 생성하는 절단부; 상기 절단된 블록들 중 적어도 하나의 절단된 블록으로 구성된 메시지 블록을 생성하는 블록부; 및 상기 생성된 메시지 블록들 중에서 적어도 하나의 '1'을 포함하는 메시지 블록들을 입력 데이터로 출력하는 입력 데이터 출력부를 더 포함할 수 있다. In embodiments of the present invention, an original message data receiving unit for receiving original message data from the outside; A cutting unit for chopping the received original message data based on '1' to generate a plurality of cut blocks; A block for generating a message block composed of at least one truncated block among the truncated blocks; And an input data output unit for outputting, as input data, message blocks including at least one '1' among the generated message blocks.

본 발명의 실시예들에 따른 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치는 전송 메시지를 수신하는 전송 메시지 수신부; 상기 수신한 전송 메시지의 길이와 원본 메시지 데이터의 길이에서 기복호화된 메시지의 길이를 뺀 잔여 길이를 비교하는 전송 메시지 길이 비교부; 상기 비교 결과, 상기 측정된 전송 메시지의 길이와 상기 잔여 길이가 다를 경우, 상기 전송 메시지를 n 블록으로 구분하여 n x n 크기의 제3 행렬을 생성하는 제3 행렬 생성부; 상기 생성된 제3 행렬의 n 개의 열들 중에서 상대적으로 가장 고밀도(densest)인 열을 선택하는 선택부; 상기 선택한 열을 근거로 부분 복호화 메시지 데이터를 생성하는 부분 복호화 메시지 데이터 생성부; 및 상기 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 복호화부를 포함한다.A decoding apparatus using a low-density inverse code according to embodiments of the present invention includes a transmission message receiver for receiving a transmission message; A transmission message length comparing unit for comparing the length of the received transmission message with the remaining length obtained by subtracting the length of the original message data from the length of the original decoded message; A third matrix generator for generating a third matrix of size n x n by dividing the transmission message into n blocks if the measured transmission message length and the remaining length are different; A selector for selecting a row having the highest density among the n columns of the generated third matrix; A partial decryption message data generation unit for generating partial decryption message data based on the selected column; And a decoding unit decoding the generated partial decoding message data.

본 발명의 실시예들에 있어서, 상기 수신한 전송 메시지의 길이를 측정하고, 상기 측정한 전송 메시지의 길이를 상기 전송 메시지 길이 비교부에게 제공하는 전송 메시지 길이 측정부를 더 포함할 수 있다. The present invention may further include a transmission message length measuring unit measuring the length of the received transmission message and providing the measured transmission message length to the transmission message length comparison unit.

이상에서 설명한 바와 같은 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치에 따르면 다음과 같은 효과가 있다.According to the encoding / decoding method and apparatus using the low-density inverse code as described above, the following effects can be obtained.

첫째, 원본 메시지 데이터를 복수개의 블록들로 절단하고, 최초 입력 데이터 이후의 입력 데이터는 상기 절단된 블록들의 일부 블록들로 구성함으로써, 계산 부담을 감소시킬 수 있다.First, the original message data is divided into a plurality of blocks, and the input data after the initial input data is composed of some blocks of the truncated blocks, so that the calculation burden can be reduced.

둘째, 입력 데이터를 특정 행에 배치하고, 단위행렬(identity matrix)과 영행렬(zero matrix)을 배치하여 입력 데이터를 포함한 n x n 행렬을 생성함으로써, 추후 계산 과정이 줄어든다. Second, by placing the input data in a specific row and arranging an identity matrix and a zero matrix to generate an n x n matrix including input data, the calculation process is reduced in the future.

셋째, 입력 데이터, 단위행렬 그리고 영행렬로 구성된 저밀도 비특이 행렬의 역행렬의 규칙을 활용함으로써, 역행렬에 대한 계산 부담이 줄어든다. Third, by using the inverse matrix of the low density nonspecific matrix composed of input data, unit matrix and zero matrix, the computational burden on the inverse matrix is reduced.

넷째, 부호화 단계에서 행렬의 법칙에 따라 생성된 코드워드를 수신하여 이를 복호화 함으로써 계산 과정이 줄어든다.Fourth, the code word generated according to the law of the matrix is received in the encoding step and decoded, thereby reducing the calculation process.

다섯째, 데이터가 포함된 행이 가장 높은 밀도(density)를 가지는 것을 이용하여 데이터와 관련된 행을 선택함으로써, 복호화 과정을 효율적으로 할 수 있다.
Fifth, the decoding process can be efficiently performed by selecting the row related to the data by using the row having the data having the highest density.

[도 1]은 본 발명의 실시예들에 따른 저밀도 역 코드를 이용한 부호화 장치를 설명하기 위한 블록도
[도 2]는 본 발명의 실시예들에 따른 저밀도 역 코드를 이용한 복호화 장치를 설명하기 위한 블록도
[도 3]은 본 발명의 실시예들에 따른 저밀도 역 코드를 이용한 부호화 방법을 설명하기 위한 순서도
[도 4]는 본 발명의 실시예들에 따른 저밀도 역 코드를 이용한 복호화 방법을 설명하기 위한 순서도
1 is a block diagram for explaining an encoding apparatus using a low-density inverse code according to embodiments of the present invention;
2 is a block diagram for explaining a decoding apparatus using a low-density inverse code according to embodiments of the present invention
3 is a flowchart for explaining a coding method using a low-density inverse code according to embodiments of the present invention
4 is a flowchart illustrating a decoding method using a low-density inverse code according to embodiments of the present invention

첨부한 도면을 참조하여 본 발명의 실시예들에 따른 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치에 대하여 상세히 설명한다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나, 개략적인 구성을 이해하기 위하여 실제보다 축소하여 도시한 것이다.A method and an apparatus for encoding / decoding using a low-density inverse code according to embodiments of the present invention will be described in detail with reference to the accompanying drawings. The present invention is capable of various modifications and various forms, and specific embodiments are illustrated in the drawings and described in detail in the text. It is to be understood, however, that the invention is not intended to be limited to the particular forms disclosed, but on the contrary, is intended to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing. In the accompanying drawings, the dimensions of the structures are enlarged to illustrate the present invention, and are actually shown in a smaller scale than the actual dimensions in order to understand the schematic configuration.

또한, 제1 및 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 한편, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
Also, the terms first and second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. On the other hand, unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as either ideal or overly formal in the sense of the present application Do not.

도 1은 본 발명의 실시예들에 따른 저밀도 역 코드를 이용한 부호화 장치를 설명하기 위한 블록도이다. 1 is a block diagram illustrating an encoding apparatus using a low-density inverse code according to embodiments of the present invention.

도 1을 참조하면, 본 발명의 실시예들에 따른 저밀도 역 코드를 이용한 부호화 장치(100)는 원본 메시지 데이터 수신부(110), 절단부(120), 블록부(130), 입력 데이터 출력부(140), 제1 행렬 생성부(150), 제2 행렬 생성부(160), 코드워드(codeword) 생성부(170) 및 전송부(180)를 포함한다. 1, an encoding apparatus 100 using a low-density inverse code according to embodiments of the present invention includes an original message data receiving unit 110, a cutting unit 120, a block unit 130, an input data output unit 140 A first matrix generating unit 150, a second matrix generating unit 160, a codeword generating unit 170, and a transmitting unit 180.

원본 메시지 데이터 수신부(110)는 외부로부터 원본 메시지 데이터를 수신한다. The original message data receiving unit 110 receives the original message data from the outside.

절단부(120)는 상기 수신한 원본 메시지 데이터를 '1'을 기준으로 절단(chopping)하여 복수개의 절단된 블록들로 생성한다. 예를 들어, 절단부(120)는 상기 수신한 원본 메시지 데이터를 최초의 비트를 기준으로(첫 번째 비트로부터) '1'이 나오는 비트가 나올 때마다 상기 '1'이 존재하는 비트와 다음 비트 사이를 절단할 수 있다. 예를 들어, 원본 메시지 데이터가 '0001010101'일 경우, 절단부(120)는 '0001', '01', '01', '01'로 원본 메시지 데이터를 절단한다. The cutting unit 120 chopping the received original message data based on '1' to generate a plurality of cut blocks. For example, the cutout unit 120 may divide the received original message data into a first bit and a second bit each time a bit of '1' is extracted from the first bit (from the first bit) Can be cut. For example, when the original message data is '0001010101', the cutting unit 120 cuts the original message data into '0001', '01', '01', and '01'.

블록부(130)는 절단부(120)에서 절단한 블록들 중 적어도 하나의 절단된 블록으로 구성된 메시지 블록을 생성한다. 본 발명의 실시예들에 있어서, 블록부(130)는 상기 절단된 블록들 전체로 구성된 제1 메시지 블록과, 상기 제1 메시지 블록에서 상기 절단된 블록을 하나씩 제거하여 생성된 제2 메시지 블록 내지 제n 메시지 블록들로 메시지 블록을 생성할 수 있다. 예를 들어, 절단부(120)가 '0001010101'인 원본 메시지 데이터를 '0001', '01', '01', '01'로 절단한 경우, 블록부(130)는 절단된 블록 전체로 이루어진 제1 메시지 블록인'0001010101'과 제2 메시지 블록 내지 제4 메시지 블록으로 '010101', '0101', '01'를 각각 생성할 수 있다. 즉, 블록부(130)는 절단부(120)가 절단한 원본 메시지 데이터와 같거나 원본 메시지 데이터보다 길이(크기)가 작은 메시지 블록을 생성할 수 있다. 그리고 블록부(130)는 생성한 메시지 블록들을 연속하여 입력 데이터 출력부(140)로 전달한다. The block unit 130 generates a message block including at least one truncated block among the truncated blocks. In the embodiments of the present invention, the block unit 130 may include a first message block including all of the truncated blocks, a second message block generated by removing the truncated blocks one by one in the first message block, N < / RTI > message blocks. For example, when the cutout section 120 cuts the original message data of '0001010101' into '0001', '01', '01', and '01' 010101 ',' 0101 ', and' 01 'as the first message block' 0001010101 'and the second message block to the fourth message block, respectively. That is, the block unit 130 may generate a message block that is the same as the original message data cut by the cut unit 120 or has a smaller length (size) than the original message data. The block unit 130 continuously transmits the generated message blocks to the input data output unit 140.

본 발명의 실시예들에 있어서, 블록부(130)가 생성한 제n 메시지 블록은 모두 '0'으로 이루어진 블록, 하나의 '1'로만 이루어진 블록 및 적어도 하나의 '0'과 하나의 '1'로 이루어진 블록들 중 하나가 될 수 있다. In the embodiments of the present invention, the n-th message block generated by the block unit 130 includes all of '0' blocks, one '1' only block, and at least one '0' &Quot; < / RTI >

한편, 원본 메시지 데이터가 '0'으로만 이루어진 경우에는 상기 원본 메시지 데이터를 상기 코드워드로 바로 생성한다. 예를 들어, 원본 메시지 데이터가 '0'으로만 이루어진 경우, 원본 메시지 데이터가 그대로 절단부(120)와 블록부(130)를 거쳐 메시지 블록으로 생성될 수 있다. 이 때, 블록부(130)는 상기 메시지 블록을 입력 데이터 출력부(140), 제1 행렬 생성부(150) 및 제2 행렬 생성부(160)로 출력하지 않고 코드워드 생성부(170)로 출력하고, 코드워드 생성부(170)는 상기 원본 메시지 데이터를 코드워드로 바로 생성할 수 있다. 즉, 원본 메시지 데이터가 '0'으로만 이루어진 경우에는 절단부(120)와 블록부(130)만 거쳐 코드워드 생성부(170)로 바로 전달될 수 있다. On the other hand, when the original message data is only '0', the original message data is directly generated as the codeword. For example, when the original message data is only '0', the original message data can be directly generated as a message block through the cutoff unit 120 and the block unit 130. At this time, the block unit 130 does not output the message block to the input data output unit 140, the first matrix generation unit 150, and the second matrix generation unit 160, And the code word generator 170 can directly generate the original message data as a code word. That is, when the original message data is only '0', it can be directly transmitted to the code word generator 170 only through the cutter 120 and the block 130.

이와 달리, 원본 메시지 데이터가 '0'으로만 이루어진 경우, 절단부(120)와 블록부(130)를 거치지 않고 상기 원본 메시지 데이터를 코드워드 생성부(170)로 바로 전달하도록 장치를 구성할 수도 있을 것이다. Alternatively, if the original message data is only '0', the device may be configured to directly transmit the original message data to the codeword generator 170 without passing through the cutter 120 and the block 130 will be.

마찬가지로, 절단부(120)가 절단한 블록들 중에서 '0'으로만 이루어진 영 블록이 존재하는 경우에도, 상기 영 블록은 블록부(130)를 거쳐 바로 코드워드 생성부(170)로 전달되어 코드워드로 생성된다. 예를 들어, 원본 메시지 데이터가 '0001010100'인 경우, 절단부(120)는 순서대로 절단하여'0001', '01', '01', '00'이 절단된 블록으로 생성될 수 있다. 이 때, 마지막 블록은 '00'으로 이루어진 영 블록이므로, 입력 데이터 출력부(140), 제1 행렬 생성부(150)와 제2 행렬 생성부(160)로 전달되지 않고, 코드워드 생성부(170)로 바로 전달되어 코드워드로 생성될 수 있다. Likewise, even when a zero block composed of '0' is present among the blocks cut by the cut-out unit 120, the zero block is directly transmitted to the code word generating unit 170 via the block unit 130, . For example, when the original message data is '0001010100', the cutting unit 120 may be cut in order to generate a block in which '0001', '01', '01', and '00' are cut. In this case, since the last block is a zero block composed of '00', it is not transmitted to the input data output unit 140, the first matrix generator 150 and the second matrix generator 160, 170 to generate a code word.

입력 데이터 출력부(140)는 블록부(130)로부터 전달받은 메시지 블록들을 입력 데이터로 순서대로 출력한다. 본 발명의 실시예들에 있어서, 입력 데이터 출력부(140)는 상기 생성된 메시지 블록들 중에서 적어도 하나의 '1'을 포함하는 메시지 블록들을 입력 데이터로 출력한다. 한편, 입력 데이터 출력부(140)는 블록부(130)에서 생성한 메시지 블록들 중 적어도 하나의 '1'을 포함하는 메시지 블록을 제1 행렬 생성부(150)로 전달하는 기능을 하는 것이므로, 블록부(130)에서 입력 데이터 출력부(140)의 기능과 동일한 기능을 추가적으로 수행하도록 장치를 구성할 수 있다. 이 경우에는 블록부(130)와 입력 데이터 출력부(140)가 일체로 구성되는 것이다. The input data output unit 140 sequentially outputs the message blocks received from the block unit 130 as input data. In the embodiments of the present invention, the input data output unit 140 outputs message blocks including at least one '1' among the generated message blocks as input data. Meanwhile, the input data output unit 140 transmits a message block including at least one '1' among the message blocks generated by the block unit 130 to the first matrix generation unit 150, The device may be configured to perform the same function as the function of the input data output unit 140 in the block unit 130. In this case, the block unit 130 and the input data output unit 140 are integrally formed.

입력 데이터 출력부(140)는 원본 메시지 데이터인 제1 메시지 블록을 최초 입력 데이터로 출력하고, 상기 원본 메시지 데이터에서 상기 구분된 복수개의 블록들 중에서 하나의 블록을 제외한 나머지 블록들로 이루어진 데이터를 후속 입력 데이터로 출력한다. 본 발명의 실시예들에 있어서, 입력 데이터 출력부(140)는 이전에 출력한 입력 데이터의 첫 번째 비트로부터 최초의 '1'이 포함된 블록을 제외한 나머지 블록들로 이루어진 데이터를 후속 입력 데이터로 출력하는 단계를 반복한다. The input data output unit 140 outputs the first message block, which is the original message data, as the initial input data, and outputs the data composed of the remaining blocks except for one block among the plurality of separated blocks, And outputs it as input data. In the embodiments of the present invention, the input data output unit 140 outputs the data composed of the remaining blocks excluding the block including the first '1' from the first bit of the previously output input data to the subsequent input data Repeat the output step.

또한, 입력 데이터 출력부(140)는 상기 원본 메시지 데이터에서 블록부(130)로부터 전달받은 제n 메시지 블록까지 입력 데이터로 출력하는 것을 반복할 수 있다. 예를 들어, 원본 메시지 데이터가 '0001010101'일 경우, 입력 데이터 출력부(140)는 원본 메시지 데이터인 '0001010101'을 최초의 입력 데이터인 제1 입력 데이터로 출력하고, 제일 앞의 블록인'0001'블록을 제외한 나머지 데이터인 '010101'을 후속 입력 데이터인 제2 입력 데이터로 출력한다. 이어서, 입력 데이터 출력부(140)는 제2 입력 데이터에서 제일 앞의 블록인 '01'을 제외한 '0101'을 제3 입력 데이터로 출력하며, 제3 입력 데이터에서 제일 앞의 블록인 '01'을 제외한 '01'을 제4 입력 데이터로 출력한다. In addition, the input data output unit 140 may repeat the output of the original message data to the nth message block received from the block unit 130 as input data. For example, when the original message data is '0001010101', the input data output unit 140 outputs the original message data '0001010101' as the first input data as the first input data, and outputs '0001101101' 010101 ", which is the remaining data except for the " block ", as second input data which is subsequent input data. Then, the input data output unit 140 outputs '0101' excluding '01' which is the first block in the second input data as the third input data, and outputs '01' as the first block in the third input data, Quot; 01 " as the fourth input data.

한편, 절단부(120), 블록부(130)와 입력 데이터 출력부(140)가 원본 메시지 데이터를 블록들로 절단하고, 출력하는 입력 데이터의 블록들을 정하는 방식은 위에서 설명한 사항에 한정되지 않으며, 원본 메시지 데이터를 절단하고 블록화 하여 이전에 출력한 입력 데이터에서 특정 블록을 제외하고 입력 데이터를 출력하는 소위 서브루틴(sub-routine) 방식을 통하여 계산 부담을 줄일 수 있는 모든 방식은 본 발명의 권리범위에 다 포함된다고 할 것이다. Meanwhile, the method of cutting blocks of input data by cutting the original message data into blocks and outputting the blocks of the input data by the cutting unit 120, the block unit 130 and the input data output unit 140 is not limited to the above- All methods capable of reducing the calculation burden through the so-called sub-routine method of cutting out the message data and outputting the input data by excluding the specific block from the previously outputted input data by cutting off the message data are included in the scope of the present invention .

제1 행렬 생성부(150)는 입력 데이터 출력부(140)로부터 전달받은 n 개 비트로 이루어진 입력 데이터를 각 비트를 n 개의 행으로 정렬한 제k 열과, 상기 제 k열에서 최초로 '1'이 존재하는 행을 제외한 각 행과 각 열에서 하나의 '1'만이 존재하도록 구성된 나머지 열들로 이루어진 n x n 크기의 제 1행렬을 생성한다. The first matrix generating unit 150 generates a first matrix having input data consisting of n bits received from the input data output unit 140 and having k columns in which each bit is arranged in n rows, The first matrix having the size of nxn, which is composed of the remaining rows except for the row in which only one '1' exists in each row and each column, is generated.

여기서, 상기 제1 행렬은 상기 제k 열을 제외한 나머지 열들에 존재하는 '1'은 상기 제k 열에서 최초로 '1'이 나타나는 행을 제외하고, 행의 순서 또는 열의 순서대로 각 행과 각 열에 '1'이 하나씩 존재하도록 구성된다.Here, '1' existing in the other columns except for the k-th column is the same as the order of the rows or columns except for the row in which '1' appears first in the k-th column, Quot; 1 "

본 발명의 실시예들에 있어서, 제1 행렬은 상기 입력 데이터로 구성된 제k 열이 제1 열이고, 상기 나머지 열들이 제2 열 내지 제n 열이 될 수 있다. In embodiments of the present invention, the first matrix may be a k-th column composed of the input data, and the remaining columns may be a second column to an n-th column.

또한, 제1 행렬 생성부(150)는 상기 입력 데이터가 존재하는 열에서 최초로 '1'이 존재하는 행이 k 행인 경우, 상기 입력 데이터가 존재하지 않는 열들에서의 '1'은 행의 순서에 따라 제1 행 내지 제(k-1) 행 및 제(k+1) 행 내지 제n 행에 각각 존재하도록 제1 행렬을 생성한다. In the case where the first row in which the input data is present is k rows and the first row in which the input data exists is 'k', the first matrix generating unit 150 generates '1' The first matrix is generated so as to exist in the first to (k-1) -th rows and the (k + 1) -th to n-th rows, respectively.

여기서, 제1 행렬의 제1 열에 입력 데이터를 배열하는 것을 전제로 설명하기로 한다. Here, it is assumed that the input data is arranged in the first column of the first matrix.

예를 들어, 제1 행렬 생성부(150)는 제1 입력 데이터로 원본 메시지 데이터인 '0001010101'을 전달받는 경우, 제1 입력 데이터를 행렬의 제1 열에 배열하고 나머지 열들을 아래의 수학식 1과 같이 구성된 제1 행렬을 생성한다. For example, when the first matrix generator 150 receives the original message data '0001010101' as the first input data, the first matrix generator 150 arranges the first input data in the first column of the matrix, And generates a first matrix constructed as shown in FIG.

[수학식 1][Equation 1]

Figure 112012061460981-pat00001
Figure 112012061460981-pat00001

이어서, 제1 행렬 생성부(150)는 제2 입력 데이터로 '010101'을 전달받은 경우, 제2 입력 데이터를 행렬의 제1 열에 배열하고 나머지 열들을 아래의 수학식 2와 같이 구성된 행렬을 생성한다. If the first matrix generator 150 receives '010101' as the second input data, the first matrix generator 150 arranges the second input data in the first column of the matrix and generates the matrix having the remaining columns as shown in Equation 2 below do.

[수학식 2]&Quot; (2) "

Figure 112012061460981-pat00002
Figure 112012061460981-pat00002

또한, 제1 행렬 생성부(150)는 제3 입력 데이터로 '0101'을 전달받은 경우, 제3 입력 데이터를 행렬의 제1 열에 배열하고 나머지 열들을 아래의 수학식 3과 같이 구성된 행렬을 생성한다. If the first matrix generator 150 receives '0101' as the third input data, the first matrix generator 150 arranges the third input data in the first column of the matrix and generates the matrix having the remaining columns as shown in Equation 3 below do.

[수학식 3]&Quot; (3) "

Figure 112012061460981-pat00003
Figure 112012061460981-pat00003

마지막으로 제1 행렬 생성부(150)는 제4 입력 데이터로 '01'을 전달받은 경우, 제4 입력 데이터를 행렬의 제1 열에 배열하고 나머지 열들을 아래의 수학식 4와 같이 구성된 행렬을 생성한다. Finally, when the first matrix generator 150 receives '01' as the fourth input data, the first matrix generator 150 arranges the fourth input data in the first column of the matrix and generates the matrix having the remaining columns as shown in the following Equation (4) do.

[수학식 4]&Quot; (4) "

Figure 112012061460981-pat00004
Figure 112012061460981-pat00004

이와 같이, 제1 행렬 생성부(150)는 입력 데이터를 기준으로 일정한 규칙에 의하여 제1 행렬을 구성하며, 제1 행렬 생성부(150)가 생성하는 행렬의 개수(종류)는 원본 메시지 데이터가 구분되는 블록들의 수에 의하여 결정된다. 즉, 원본 메시지 데이터가 적어도 하나의 '1'을 포함하는 메시지 블록이 a개인 경우에는 제1 행렬의 개수도 a 개가 된다. In this way, the first matrix generator 150 forms a first matrix according to a predetermined rule based on the input data, and the number (types) of matrices generated by the first matrix generator 150 is Is determined by the number of blocks to be distinguished. That is, when the original message data includes at least one message block including '1', the number of the first matrix is also a.

제2 행렬 생성부(160)는 제1 행렬 생성부(150)에서 생성한 제1 행렬의 역행렬을 구한 후에 2를 법으로 하는 법 연산(modulus operation)을 적용하여 제2 행렬을 생성한다. 이 때, 제1 행렬 생성부(150)에서 a 개의 제1 행렬을 생성한 경우, 제2 행렬 생성부(160)도 a 개의 제2 행렬을 생성한다. The second matrix generating unit 160 obtains an inverse matrix of the first matrix generated by the first matrix generating unit 150 and then generates a second matrix by applying a modulus operation to the second matrix. In this case, when the first matrix generator 150 generates a first matrixes, the second matrix generator 160 also generates a second matrixes.

예를 들어, 제1 행렬 생성부(150)가 수학식 1 내지 수학식 4의 제1 행렬들을 생성한 경우에, 제2 행렬 생성부(160)는 수학식 1 내지 수학식 4의 제1 행렬들에 대응하는 수학식 5 내지 수학식 8의 제2 행렬들을 생성한다. For example, when the first matrix generating unit 150 generates the first matrices of Equations (1) to (4), the second matrix generating unit 160 generates the first matrix of Equations 1 to 4 The second matrices of Equations (5) to (8) corresponding to the first matrixes are generated.

[수학식 5]&Quot; (5) "

Figure 112012061460981-pat00005
Figure 112012061460981-pat00005

[수학식 6]&Quot; (6) "

Figure 112012061460981-pat00006
Figure 112012061460981-pat00006

[수학식 7]&Quot; (7) "

Figure 112012061460981-pat00007
Figure 112012061460981-pat00007

[수학식 8]&Quot; (8) "

Figure 112012061460981-pat00008
Figure 112012061460981-pat00008

코드워드(codeword) 생성부(160)는 제2 행렬 생성부(160)가 생성한 n x n 크기의 제2 행렬을 이용하여 n2 길이의 코드워드(codeword)를 생성한다. 본 발명의 실시예들에 있어서, 코드워드 생성부(170)는 상기 생성된 제2 행렬의 제1 열 내지 제n 열을 하나의 라인에 순서대로 배열하는 방식으로 n2 길이의 코드워드를 생성할 수 있다. 예를 들어, 코드워드 생성부(170)는 수학식 5의 제2 행렬에 대해서 '0100000000001000000000010000001000010101000010000000000100000000001000000000010000000000100000000001'의 코드워드를 생성할 수 있으며, 수학식 6의 제2 행렬에 대해서 '010000100101001000000100000010000001'의 코드워드를 생성할 수 있다. The codeword generation unit 160 generates a codeword of n 2 length using the second matrix of nxn size generated by the second matrix generation unit 160. In the embodiments of the present invention, the code word generator 170 generates a code word of length n 2 by sequentially arranging the first to n-th columns of the generated second matrix on one line can do. For example, the code word generator 170 may generate a codeword of '01000000000010000000000100000010000001000000001000000001001000000100100000000100000000100000000001' for the second matrix of Equation (5) and generate a codeword of '010000100101001000000100000010000001' for the second matrix of Equation (6) can do.

코드워드 생성부(170)는 제2 행렬 생성부(160)에서 a 개의 제2 행렬을 생성한 경우, 코드워드 생성부(170)도 a 개의 코드워드를 생성한다. When the second matrix generator 160 generates the a second matrices, the code word generator 170 also generates a code words.

전송부(180)는 코드워드(codeword) 생성부(160)에서 생성된 코드워드를 외부로 전송한다. The transmitting unit 180 transmits the codeword generated by the codeword generating unit 160 to the outside.

이와 같이, 저밀도 역 코드를 이용한 부호화 장치(100)는 원본 메시지 데이터를 절단하고, 메시지 블록들로 블록화하는 특징, 원본 메시지 데이터로부터 블록들 중 일부 블록만 입력 데이터로 출력하는 특징, 출력된 입력 데이터로 이루어진 열과 '1'을 하나만 포함하는 저밀도 열들로 구성된 행렬을 생성하는 특징, 제1 행렬을 역행렬 계산 방법과 법 연산을 통하여 제2 역행렬을 계산하는 특징을 이용하여 원본 메시지 데이터를 이용하여 기존의 부호화 방법에 비하여 계산 부담을 감소시킬 수 있다.
In this way, the encoding apparatus 100 using the low-density inverse code cuts off the original message data and blocks it into message blocks. The feature of outputting only some of the blocks from the original message data as input data, And a low-density column including only one row of '1', and a feature of calculating a second inverse matrix through an inverse matrix calculation method and a mathematical operation of a first matrix, The calculation burden can be reduced as compared with the encoding method.

도 2는 본 발명의 실시예들에 따른 저밀도 역 코드를 이용한 복호화 장치를 설명하기 위한 블록도이다.2 is a block diagram illustrating a decoding apparatus using a low-density inverse code according to embodiments of the present invention.

도 2를 참조하면, 본 발명의 실시예들에 따른 저밀도 역 코드를 이용한 복호화 장치(200)는 전송 메시지 수신부(210), 전송 메시지 길이 측정부(220), 전송 메시지 길이 비교부(230), 제3 행렬 생성부(240), 선택부(250), 부분 복호화 메시지 데이터 생성부(260), 복호화부(270)를 포함한다. Referring to FIG. 2, a decoding apparatus 200 using a low-density inverse code according to embodiments of the present invention includes a transmission message receiver 210, a transmission message length measurer 220, a transmission message length comparator 230, A third matrix generation unit 240, a selection unit 250, a partial decryption message data generation unit 260, and a decryption unit 270.

본 발명의 실시예들에 있어서, 저밀도 역 코드를 이용한 복호화 장치(200)는 부호화 장치(100)로부터 일정 정보를 전달받아 복호화 과정을 수행한다. 이 때, 본 복호화 장치(200)는 입력 데이터가 삽입된 행에 관한 정보, 원본 메시지 데이터의 길이에 대한 정보, 기복호화된 메시지의 길이(특정 시점까지 총 복호화된(decoded) 메시지의 길이)에 대한 정보, 전송 메시지 길이에 대한 정보들 중 적어도 하나의 정보를 사전에 또는 부호화 장치(100)로부터 전달받아 획득할 수 있다. In the embodiments of the present invention, the decoding apparatus 200 using the low-density inverse code receives the predetermined information from the encoding apparatus 100 and performs a decoding process. At this time, the decoding apparatus 200 decodes information about the row in which the input data is inserted, information on the length of the original message data, the length of the decoded message (the length of the decoded message until a specific point in time) And information on the length of the transmission message may be received in advance or from the encoding apparatus 100 and may be acquired.

전송 메시지 수신부(210)는 외부로부터 전송된 전송 메시지를 수신한다. 이 때, 전송 메시지 수신부(210)는 특정 길이를 갖는 전송 메시지를 수신할 수 있다. 예를 들어, 전송 메시지 수신부(210)는 n2 길이의 전송 메시지를 수신할 수 있다. The transmission message receiving unit 210 receives an externally transmitted transmission message. At this time, the transmission message receiving unit 210 can receive a transmission message having a specific length. For example, the transmission message receiving unit 210 may receive a transmission message of length n 2 .

전송 메시지 길이 측정부(220)는 전송 메시지 수신부(210)로부터 전달한 전송 메시지의 길이를 측정하고, 상기 측정한 전송 메시지의 길이를 전송 메시지 길이 비교부(230)에게 제공한다. The transmission message length measuring unit 220 measures the length of the transmission message transmitted from the transmission message receiving unit 210 and provides the transmission message length comparing unit 230 with the measured transmission message length.

한편, 복호화 장치(200)가 전송 메시지 길이를 측정하지 않고도 전송 메시지의 길이에 대한 정보를 알고 있는 경우에는 전송 메시지 길이 측정부(220)를 거치지 않고 전송 메시지 길이 비교부(230)로 상기 수신한 전송 메시지가 전달될 수도 있다. On the other hand, if the decoding apparatus 200 knows the information on the length of the transmission message without measuring the length of the transmission message, the transmission message length comparison unit 230 compares the received transmission message length A transmission message may be transmitted.

전송 메시지 길이 비교부(230)는 상기 수신한 전송 메시지의 길이와 원본 메시지 데이터의 길이에서 기복호화된 메시지의 길이를 뺀 잔여 길이를 비교한다. 즉, 전송 메시지 길이 비교부(230)는 특정 시점을 기준으로 아직 복호화 되지 않은 메시지의 길이와 해당 시점에 수신한 전송 메시지의 길이를 비교한다. The transmission message length comparison unit 230 compares the length of the received transmission message with the length of the original message data minus the length of the decoded message. That is, the transmission message length comparing unit 230 compares the length of a message that has not yet been decoded with respect to a specific point of time and the length of a transmission message received at that point of time.

전송 메시지 길이 비교부(230)가 비교한 결과, 상기 측정된 전송 메시지의 길이와 상기 잔여 길이가 동일한 경우에는 전송 메시지 길이 비교부(230)가 수신된 전송 메시지를 부분 복호화 메시지 데이터 생성부(260)로 전달하고, 부분 복호화 메시지 데이터 생성부(260)는 전송 메시지를 모두 0으로 구성된 부분 복호화 메시지 데이터로 바로 생성한다.If the length of the measured transmission message and the remaining length are equal, the transmission message length comparison unit 230 compares the received transmission message with the partial decoding message data generation unit 260 And the partial decryption message data generation unit 260 directly generates the partial decryption message data composed of all zeros.

한편, 전송 메시지 길이 비교부(230)가 비교한 결과, 상기 측정된 전송 메시지의 길이와 상기 잔여 길이가 다른 경우에는, 제3 행렬 생성부(240)는 상기 전달받은 전송 메시지를 이용하여 제3 행렬을 생성한다. 구체적으로, 제3 행렬 생성부(240)는 상기 전송 메시지를 n 블록으로 구분하여 n x n 크기의 제3 행렬을 생성한다. 예를 들어, 전송 메시지가 n2 길이를 갖는 경우, 제3 행렬 생성부(240)는 n x n 크기의 제3 행렬을 생성한다. 예를 들어, 제3 행렬 생성부(240)가 '0100000000001000000000010000001000010101000010000000000100000000001000000000010000000000100000000001'의 전송 메시지를 전달받은 경우, 제3 행렬 생성부(240)는 수학식 5와 같은 행렬을 제3 행렬로 생성한다. 여기서, 제3 행렬은 제2 행렬과 동일한 크기의 행렬이 될 수 있다. 한편, 채널 노이즈에 영향을 받지 않는 경우에는 제2 행렬과 동일한 제3 행렬로 생성하지만 채널 노이즈의 영향을 받는 경우에는 변질된 전송 메시지를 수신하게 되며 이에 따라서 제3 행렬의 성분들도 역시 바뀔 수 있다. 그럼에도 제3 행렬은 채널 노이즈와 무관하게 제2 행렬과 동일한 크기를 가질 것이다. On the other hand, when the transmission message length comparing unit 230 determines that the length of the measured transmission message is different from the residual length, the third matrix generating unit 240 generates a third And generates a matrix. Specifically, the third matrix generator 240 divides the transmission message into n blocks and generates a third matrix of nxn size. For example, if the transmission message has a length of n 2 , the third matrix generator 240 generates a third matrix of size nxn. For example, when the third matrix generator 240 receives a transmission message of '010000000000100000000001000010000101001000010000000010000000010000000000100000000100000000001', the third matrix generator 240 generates a matrix as shown in Equation (5) as a third matrix. Here, the third matrix may be a matrix having the same size as the second matrix. On the other hand, if it is not affected by the channel noise, the third matrix is generated by the same third matrix as the second matrix. However, if it is affected by the channel noise, it receives the corrupted transmission message. Accordingly, have. Nevertheless, the third matrix will have the same size as the second matrix regardless of the channel noise.

선택부(250)는 상기 생성된 제3 행렬의 n 개의 열들 중에서 상대적으로 가장 밀도가 높은 열을 선택한다. 즉, 선택부(250)는 최고밀도인 열을 선택하며, 만일 최고밀도가 동일한 여러 열들이 있는 경우에는 가장 먼저 나타나는 최고밀도 열을 선택한다. 본 발명의 실시예들에 있어서, 선택부(250)는 상기 n 개의 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 열을 선택한다. 예를 들어, 제3 행렬이 수학식 5의 행렬인 경우, 선택부(250)는 '1'을 가장 많이 포함하고 있는 제4 열을 선택하는 것이다. The selector 250 selects the row having the highest density among the n columns of the generated third matrix. That is, the selecting unit 250 selects the column having the highest density, and selects the highest density column that appears first if there are several columns having the same highest density. In the embodiments of the present invention, the selector 250 selects a column that includes the largest number of '1' among the n columns. For example, if the third matrix is the matrix of Equation (5), the selector 250 selects the fourth column that includes '1' most.

또한, 선택부(250)는 상기 n 개의 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 열이 둘 이상인 경우, 선택부(250)는 가장 빠른 열을 선택한다. 즉, 선택부(250)는 제1 열을 기준으로 최초의 열을 선택한다. 예를 들어, 제2 열과 제5 열의 밀도가 동일하게 가장 높은 경우에는, 선택부(250)는 제2 열을 선택할 수 있다. If the selector 250 has two or more columns including the largest number of '1' among the n columns, the selector 250 selects the fastest column. That is, the selecting unit 250 selects the first column based on the first column. For example, when the densities of the second and fifth columns are the same, the selecting unit 250 can select the second column.

아울러, 제3 행렬에서의 n 개의 열들이 각각이 하나의 '1'만을 포함하고 있는 경우, 선택부(250)는 제k 행에 '1'을 포함하고 있는 열을 선택한다. 즉, 부호화 장치(100)에서 입력 데이터를 제k 열에 삽입한 정보를 전달받은 복호화 장치(200)에서, 선택부(250)는 제3 행렬에서의 n 개의 열들이 각각이 하나의 '1'만을 포함하고 있을 때, 제k 행에 '1'을 포함하고 있는 열을 선택한다. 예를 들어, 제3 행렬이 수학식 8의 행렬인 경우(부호화 장치(100)에서 입력 데이터를 제1 열에 삽입한 경우), 선택부(250)는 제1 열 및 제2 열 중에서 제1 행에 '1'이 위치한 제2 열을 선택하는 것이다. In addition, when n columns in the third matrix include only one '1', the selector 250 selects a column including '1' in the k-th column. That is, in the decoding apparatus 200 receiving the information in which the input data is inserted in the k-th column in the encoding apparatus 100, the selector 250 selects the n columns in the third matrix, , Select the column that contains '1' in the kth row. For example, when the third matrix is the matrix of Equation 8 (when the input data is inserted into the first column by the encoding apparatus 100), the selector 250 selects the first row and the second row among the first and second columns, Quot; 1 " in the second column.

부분 복호화 메시지 데이터 생성부(260)는 선택부(250)에서 선택한 열을 근거로 부분 복호화 메시지 데이터를 생성한다. 본 발명의 실시예들에 있어서, 선택부(250)가 선택한 열이 d 번째 열인 경우, 부분 복호화 메시지 데이터 생성부(260)는 (d-1)개의 '0'과 하나의 '1'이 순서대로 구성된 데이터를 부분 복호화 메시지 데이터로 생성한다. The partial decryption message data generation unit 260 generates partial decryption message data based on the column selected by the selection unit 250. In the embodiments of the present invention, when the column selected by the selecting unit 250 is the d-th column, the partial decryption message data generating unit 260 generates (d-1) '0's and one' And generates the partial decryption message data.

앞에서 언급하였지만, 전송 메시지의 길이와 잔여 길이가 동일한 경우에는 부분 복호화 메시지 데이터 생성부(260)는 전송 메시지를 모두 0으로 구성된 부분 복호화 메시지 데이터로 생성한다.As described above, when the length of the transmission message is equal to the remaining length, the partial decryption message data generation unit 260 generates partial decryption message data including all zeros.

복호화부(270)는 부분 복호화 메시지 데이터 생성부(260)가 생성한 부분 복호화 메시지 데이터를 이용하여 복호화한다. 예를 들어, 복호화부(270)는 상기 생성된 부분 복호화 메시지 데이터를 이전에 생성된 부분 복호화 메시지 데이터에 순서대로 연속 결합하는 방식으로 복호화할 수 있다. The decryption unit 270 decrypts the partial decryption message using the partial decryption message data generated by the partial decryption message data generation unit 260. For example, the decryption unit 270 may decrypt the generated partial decryption message data by sequentially joining the generated partial decryption message data in order.

예를 들어, 최초로 생성된 제3 행렬이 수학식 5의 행렬이고, 선택부(250)가 '1'을 가장 많이 포함하고 있는 제4 열을 선택한 경우, 부분 복호화 메시지 데이터 생성부(260)는 4번째 비트가 '1'인 '0001'을 제1 부분 복호화 메시지 데이터로 획득한다. 이어서 생성된 제3 행렬이 수학식 6의 행렬이고, 선택부(250)가 '1'을 가장 많이 포함하고 있는 제2 열을 선택한 경우, 부분 복호화 메시지 데이터 생성부(260)는 2번째 비트가 '1'인 '01'을 제2 부분 복호화 메시지 데이터로 획득한다. 후속적으로 생성된 제3 행렬이 수학식 7의 행렬과 수학식 8의 행렬이고, 선택부(250)가 '1'을 가장 많이 포함하고 있는 제2 열을 선택한 경우, 부분 복호화 메시지 데이터 생성부(260)는 2번째 비트가 '1'인 '01'을 제3 부분 복호화 메시지 데이터 및 제4 부분 복호화 메시지 데이터로 각각 획득한다. For example, when the first generated third matrix is the matrix of Equation (5) and the selector 250 selects the fourth column that includes '1' most, the partial decryption message data generation unit 260 And acquires '0001' having the fourth bit '1' as the first partial decryption message data. If the generated third matrix is the matrix of Equation (6), and the selector 250 selects the second column that includes '1' the most, the partial decryption message data generating unit 260 generates '01', which is '1', as the second partial decryption message data. If the third matrix generated subsequently is the matrix of Equation (7) and the matrix of Equation (8), and the selecting unit (250) selects the second column including the most '1', the partial decoding message data generating unit The control unit 260 obtains '01' having the second bit '1' as the third partial decryption message data and the fourth partial decryption message data, respectively.

이에 복호화부(270)가 상기 제1 내지 제4 부분 복호화 메시지 데이터를 연속하여 결합하면, '0001010101'데이터를 복호화할 수 있다.If the decryption unit 270 continuously combines the first to fourth partial decryption message data, it can decrypt '0001010101' data.

이와 같이, 저밀도 역 코드를 이용한 복호화 장치(200)는 행렬에서 가장 복잡한, 최고밀도의 열을 선택하고, 상기 선택한 열의 순서를 이용하여 원본 메시지 데이터 또는 원본 메시지 데이터를 구성하는 부분 복호화 메시지 데이터를 복원할 수 있다. 따라서 기존의 복호화 장치와 달리, 아주 간단한 계산과 규칙에 의하여 메시지를 복호할 수 있는 성능을 구현할 수 있을 뿐 아니라, 노이즈가 포함되더라도 메시지 데이터가 포함된 행이 가장 높은 밀도(density)를 갖는 것에는 큰 영향이 없으므로 오류도 감소될 수 있다.
In this way, the decoding apparatus 200 using the low-density inverse code selects the most complex column of the highest density in the matrix and restores the partial decoding message data constituting the original message data or the original message data by using the order of the selected columns can do. Therefore, unlike existing decoders, it is possible not only to implement the performance of decrypting messages by very simple computations and rules, but also to ensure that the rows containing message data have the highest density even if noise is included Errors can also be reduced since there is no significant impact.

도 3은 본 발명의 실시예들에 따른 저밀도 역 코드를 이용한 부호화 방법을 설명하기 위한 순서도이다.FIG. 3 is a flowchart illustrating a coding method using a low-density inverse code according to embodiments of the present invention.

도 3을 참조하면, 본 발명의 실시예들에 따른 저밀도 역 코드를 이용한 부호화 방법에 따르면, 원본 메시지 데이터를 수신하고(S110), 상기 원본 메시지 데이터를 복수개의 블록들로 절단하며(S120), 절단된 블록들 중 적어도 하나의 절단된 블록으로 구성된 메시지 블록을 생성하고(S130), 상기 생성된 메시지 블록을 입력 데이터로 출력한다(S140). 상기 입력 데이터를 근거로 제1 행렬을 생성하고(S150), 상기 제1 행렬을 이용하여 제2 행렬을 생성한 후(S160), 상기 제2 행렬을 근거로 코드워드를 생성하고(S170), 이를 외부로 전송한다(S180).Referring to FIG. 3, according to an encoding method using a low-density inverse code according to embodiments of the present invention, original message data is received (S110), and the original message data is cut into a plurality of blocks (S120) A message block including at least one truncated block among the truncated blocks is generated (S130), and the generated message block is output as input data (S140). A first matrix is generated based on the input data (S150), a second matrix is generated using the first matrix (S160), a codeword is generated based on the second matrix (S170) And transmits it to the outside (S180).

구체적으로 살펴보면, 상기 수신한 원본 메시지 데이터를 '1'을 기준으로 절단(chopping)하여 복수개의 절단된 블록들로 생성한다. 본 발명의 실시예들에 있어서, 상기 원본 메시지 데이터의 첫 번째 비트로부터 1이 나올 때마다 데이터를 절단(chopping)하여 복수개의 블록들로 구분할 수 있다. 즉, 상기 수신한 원본 메시지 데이터를 최초의 비트를 기준으로 '1'이 나오는 비트가 나올 때마다 상기 '1'이 존재하는 비트와 다음 비트 사이를 절단한다. 예를 들어, 원본 메시지 데이터가 '0001010101'일 경우, '0001', '01', '01', '01'로 원본 메시지 데이터를 절단한다. In more detail, the received original message data is chopped on the basis of '1' to generate a plurality of truncated blocks. In embodiments of the present invention, the data may be chopped and divided into a plurality of blocks each time 1 is obtained from the first bit of the original message data. That is, each time a '1' bit is output based on the first bit of the received original message data, the bit between '1' and the next bit is cut off. For example, if the original message data is '0001010101', the original message data is cut with '0001', '01', '01', and '01'.

그리고, 상기 절단한 블록들 중 적어도 하나의 절단된 블록으로 구성된 메시지 블록을 생성한다. 상기 절단된 블록들 전체로 구성된 제1 메시지 블록과, 상기 제1 메시지 블록에서 상기 절단된 블록을 하나씩 제거하여 생성된 제2 메시지 블록 내지 제n 메시지 블록들로 메시지 블록을 생성할 수 있다. 여기서, 제n 메시지 블록은 모두 '0'으로 이루어진 블록, 하나의 '1'로만 이루어진 블록 및 적어도 하나의 '0'과 하나의 '1'로 이루어진 블록들 중 하나가 될 수 있다. Then, a message block including at least one truncated block among the truncated blocks is generated. A message block may be generated with a first message block composed of all of the truncated blocks and a second message block to nth message blocks generated by removing the truncated blocks one by one in the first message block. Here, the nth message block may be any one of '0' blocks, one '1' block, and at least one '0' and one '1' block.

예를 들어, '0001010101'인 원본 메시지 데이터를 '0001', '01', '01', '01'로 절단한 경우, 상기 절단된 블록 전체로 이루어진 제1 메시지 블록인'0001010101'과 제2 메시지 블록 내지 제4 메시지 블록으로 '010101', '0101', '01'을 각각 생성할 수 있다.For example, when the original message data of '0001010101' is cut into '0001', '01', '01', and '01', the first message block '0001010101' 010101 ',' 0101 ', and' 01 ', respectively, from the message block to the fourth message block.

본 발명의 다른 실시예들에 있어서, 원본 메시지 데이터가 '0'으로만 이루어진 경우에는 상기 원본 메시지 데이터를 그대로 절단하는 단계와 블록하는 단계를 거쳐서 코드워드로 바로 생성한다. 위 경우, 원본 메시지 데이터가 '0'으로만 이루질 때에는 입력 데이터로 출력하는 단계, 제1 행렬 생성 단계, 제2 행렬 생성 단계를 거치지 않고 상기 원본 메시지 데이터를 코드워드를 생성하는 것이다. In another embodiment of the present invention, when the original message data is only '0', the original message data is directly cut into a code word through a step of cutting and blocking. In this case, when the original message data is only '0', the original message data is generated as the input data without generating the first matrix and the second matrix.

마찬가지로, 원본 메시지 데이터가 모두 '0'으로 이루어진 경우가 아닌, 절단한 블록들 중에서 '0'으로만 이루어진 영 블록이 존재하는 경우에도 상기 영 블록을 그대로 절단하는 단계와 블록하는 단계를 거쳐서 코드워드로 생성한다. 예를 들어, 원본 메시지 데이터가 '0001010100'인 경우, 순서대로 절단하여'0001', '01', '01', '00'이 블록으로 절단할 수 있다. 이 경우, 마지막 블록이 '00'으로 이루어진 영 블록에 대해서는 코드워드 생성 단계가 수행되는 것이다. Likewise, when the original message data is not all '0', even if there is a zero block composed of only '0' among the cut blocks, the zero block is cut off as it is, . For example, when the original message data is '0001010100', '0001', '01', '01', and '00' can be cut into blocks by cutting them in order. In this case, a code word generation step is performed for a zero block in which the last block is '00'.

이어서, 상기 생성된 메시지 블록들 중에서 적어도 하나의 '1'을 포함하는 메시지 블록들을 입력 데이터로 출력한다. 구체적으로, 상기 제1 메시지 블록을 최초 입력 데이터로 출력하고, 상기 제2 내지 제n 메시지 블록을 후속 입력 데이터로 순서대로 출력한다. 본 발명의 실시예들에 있어서, 이전에 출력한 입력 데이터의 첫 번째 비트로부터 최초의 '1'이 포함된 블록을 제외한 나머지 블록들로 이루어진 데이터를 후속 입력 데이터로 출력하는 단계를 반복한다. 또한, 상기 원본 메시지 데이터에서 '1'이 포함된 마지막 블록을 출력할 때까지 반복할 수 있다. Then, message blocks including at least one '1' among the generated message blocks are output as input data. Specifically, the first message block is output as first input data, and the second through n-th message blocks are sequentially output as subsequent input data. In the embodiments of the present invention, the step of outputting, as the subsequent input data, the data composed of the remaining blocks excluding the block including the first '1' from the first bit of the previously outputted input data is repeated. Also, it is possible to repeat until the last block including '1' in the original message data is output.

예를 들어, 원본 메시지 데이터가 '0001010101'일 경우, 원본 메시지 데이터인 '0001010101'을 최초의 입력 데이터인 제1 입력 데이터로 출력하고, 제일 앞의 블록인'0001'블록을 제외한 나머지 데이터인 '010101'을 후속 입력 데이터인 제2 입력 데이터로 출력한다. 이어서, 제2 입력 데이터에서 제일 앞의 블록인 '01'을 제외한 '0101'을 제3 입력 데이터로 출력하며, 제3 입력 데이터에서 제일 앞의 블록인 '01'을 제외한 '01'을 제4 입력 데이터로 연속적으로 출력한다. For example, when the original message data is '0001010101', the original message data '0001010101' is output as the first input data as the first input data, and the remaining data excluding the '0001' 010101 'as second input data which is subsequent input data. Next, '0101' excluding '01' which is the first block in the second input data is outputted as third input data, '01' excluding '01' which is the first block in the third input data, And continuously outputs it as input data.

입력 데이터가 '0'으로만 이루어지지 않은 경우, 입력 데이터를 전달받고, n 개 비트로 이루어진 입력 데이터를 각 비트를 n 개의 행으로 정렬하여 제k 열을 구성하고, 상기 입력 데이터가 배열된 제k 열을 제외한 나머지 열에 '1'이 하나씩 존재하도록 제1 행렬을 구성한다. 이 때, 나머지 열들은 상기 제 k열에서 최초로 '1'이 존재하는 행을 제외한 각 행과 각 열에서 하나의 '1'만이 존재하도록 구성된다. 그리고 입력받은 입력 데이터가 n비트로 이루어진 경우에, 제1 행렬은 n x n 크기를 가질 수 있다. When the input data is not made of only " 0 ", the input data is received, the input data composed of n bits is arranged in n rows, and the kth column is formed, A first matrix is formed so that '1' is present in the other columns except for the column. At this time, the remaining columns are configured such that there is only one '1' in each row and each column except the row in which the first '1' exists in the k-th column. When the inputted input data is composed of n bits, the first matrix may have a size of n x n.

즉, 상기 제 1행렬은 상기 제k 열을 제외한 나머지 열들에 존재하는 '1'은 상기 제k 열에서 최초로 '1'이 나타나는 행을 제외하고, 행의 순서 또는 열의 순서대로 각 행과 각 열에 '1'이 하나씩 존재하도록 구성되는 것이다. 즉, 상기 입력 데이터가 존재하지 않는 행들에서 '1' 이 존재하는 열은 행의 순서에 따라 결정되며, 상기 입력 데이터가 존재하는 행에서 최초로 '1'이 존재하는 열은 건너뛰도록 제1 행렬을 구성할 수 있다. That is, in the first matrix, '1' existing in the columns other than the k-th column except for the row in which '1' appears first in the k-th column is not included in each row and each column Quot; 1 " That is, the columns in which '1' is present in the rows in which the input data does not exist are determined according to the order of the rows, and the first matrix '1' . ≪ / RTI >

다시 말하면, 상기 입력 데이터가 존재하는 열에서 최초로 '1'이 존재하는 열이 k 열인 경우, 상기 입력 데이터가 존재하지 않는 행들에서 '1'은 행의 순서에 따라 제1 열 내지 제(k-1)열 및 제(k+1)열 내지 제n 열에 각각 존재하도록 제1 행렬을 구성할 수 있다. In other words, when the first column in which the input data exists is k columns, '1' in the rows in which the input data does not exist is the first column to the (k- 1) -th column and the (k + 1) -th column to the n-th column, respectively.

예를 들어, 입력 데이터를 제1 열에 배열하고, 나머지 열들이 제2 열 내지 제n 열로 구성할 수도 있다. 이 때, 상기 제2 열은 상기 제1 열에서 최초로 '1'이 존재하는 행을 제외한 최초의 행에 '1'이 존재하고, 상기 제n 열은 상기 제1 열에서 최초로 1이 존재하는 행을 제외한 최후의 행에 '1'이 존재하고, 제3 열 내지 제(n-1) 열에서 '1'이 존재하는 행은 상기 열의 순서대로 이루어질 수 있다. For example, the input data may be arranged in the first column, and the remaining columns may be arranged in the second to n-th columns. Here, '1' is present in the first row excluding the row in which the first '1' exists in the first column, and the row n in which the first one exists in the first row is present in the second column. 1 " exists in the last row except for the first column, and the row in which '1' exists in the third column to the (n-1) th column may be performed in the order of the columns.

예를 들어, 입력 데이터가 '0001010101'인 경우, 입력 데이터를 제1 열에 배열하고, 나머지 열들을 본 발명의 실시예들에 따라 배열할 경우, 수학식 1과 같은 행렬을 제1 행렬로 생성할 수 있다. For example, when the input data is '0001010101', when the input data is arranged in the first column and the remaining columns are arranged according to the embodiments of the present invention, a matrix as shown in Equation 1 is generated as a first matrix .

만일, 입력 데이터가 '010101'인 경우, 입력 데이터를 제1 열에 배열하고, 나머지 열들을 본 발명의 실시예들에 따라 배열할 경우, 수학식 2와 같은 행렬을 제1 행렬로 생성할 수 있다. If the input data is '010101', the input data may be arranged in the first column, and the remaining columns may be arranged according to the embodiments of the present invention. .

마찬가지로 입력 데이터가 '0101'인 경우, 입력 데이터를 제1 열에 배열하고, 나머지 열들을 본 발명의 실시예들에 따라 배열할 경우, 수학식 3과 같은 행렬을 제1 행렬로 생성할 수 있다. Similarly, when the input data is '0101', the input data may be arranged in the first column, and the remaining columns may be arranged according to the embodiments of the present invention.

마지막으로 입력 데이터가 '01'인 경우, 입력 데이터를 제1 열에 배열하고, 나머지 열들을 본 발명의 실시예들에 따라 배열할 경우, 수학식 4와 같은 행렬을 제1 행렬로 생성할 수 있다. Finally, when the input data is '01', the input data is arranged in the first column, and the remaining columns are arranged according to the embodiments of the present invention, the matrix as shown in Equation 4 can be generated as the first matrix .

이어서, 생성된 제1 행렬의 역행렬을 구한 후에 2를 법으로 하는 법 연산(modulus operation)을 적용하여 제2 행렬을 생성한다. 예를 들어, 제1 행렬이 수학식 1의 행렬인 경우, 제2 행렬은 수학식 5의 행렬이 될 것이다. Subsequently, an inverse matrix of the generated first matrix is obtained, and then a second matrix is generated by applying a modulus operation of 2. For example, if the first matrix is a matrix of Equation (1), the second matrix may be a matrix of (5).

이어서, 제2 행렬을 이용하여 코드워드(codeword)를 생성하고, 이를 전송한다. 만일, 제2 행렬이 n x n 크기를 갖는 경우, n 개의 열을 하나의 라인에 순서대로 배열하는 방식으로 n2 길이의 코드워드를 생성할 수 있다. 예를 들어, 제2 행렬이 수학식 6의 행렬인 경우, 생성되는 코드워드는 '010000100101001000000100000010000001'이 된다. Subsequently, a codeword is generated using the second matrix and transmitted. If the second matrix has a size of nxn, it is possible to generate n 2 length codewords by arranging n columns in sequence on one line. For example, if the second matrix is a matrix of Equation (6), the generated code word becomes " 0100001001010010000001001000010000001 ".

본 발명의 실시예들에 있어서, 상기 원본 메시지 데이터가 적어도 하나의 '1'을 포함하는 메시지 블록이 a개인 경우에는 입력 데이터, 제1 행렬, 제2 행렬 및 코드워드의 개수도 a 개가 된다. 예를 들어, 원본 메시지 데이터가 '0001010101'인 경우, '0001', '01', '01', '01'의 총 4개의 블록들로 구분되고, 제1 행렬, 제2 행렬 및 코드워드도 총 4개의 종류를 이루어질 수 있다.
In the embodiments of the present invention, when the original message data includes at least one message block including '1', the number of input data, the first matrix, the second matrix and the code word is also a. For example, when the original message data is '0001010101', it is divided into four blocks of '0001', '01', '01', and '01', and the first matrix, the second matrix, A total of four types can be made.

도 4는 본 발명의 실시예들에 따른 저밀도 역 코드를 이용한 복호화 방법을 설명하기 위한 순서도이다.4 is a flowchart illustrating a decoding method using a low-density inverse code according to embodiments of the present invention.

도 4를 참조하면, 본 발명의 실시예들에 따른 저밀도 역 코드를 이용한 복호화 방법에 따르면, 전송 메시지를 수신하고(S210), 전송 메시지의 길이를 측정하며(S220), 전송 메시지의 길이와 원본 메시지 데이터의 길이에서 기복호화된 메시지의 길이를 뺀 잔여 길이를 비교한다(S230). 비교 결과, 전송 메시지의 길이와 상기 잔여 길이가 다른 경우, 전송 메시지를 기반으로 제3 행렬을 생성하고(S240), 제3 행렬에서 가장 고밀도(densest)인 열을 선택하고(S250), 선택한 열을 기반으로 일정한 규칙에 따라 부분 복호화 메시지 데이터를 생성한 후(S260), 생성한 부분 복호화 메시지 데이터를 결합하여 복호화한다(S270).Referring to FIG. 4, in the decoding method using a low-density inverse code according to the embodiments of the present invention, a transmission message is received (S210), a length of a transmission message is measured (S220) The remaining length obtained by subtracting the length of the message decoded from the length of the message data is compared (S230). As a result of the comparison, if the length of the transmission message and the remaining length are different, a third matrix is generated based on the transmission message (S240), a column having the highest density is selected from the third matrix (S250) (S260), and combines and decodes the generated partial decryption message data (S270).

위 각 단계들은 원본 메시지 데이터를 해당 블록에'1'이 하나만 포함되도록 블록들을 구분하는 경우, 상기 구분된 블록들의 개수만큼 상기 단계들을 반복하여 원본 메시지 데이터를 최종적으로 복원할 수 있다. In the case where the blocks are divided so that the original message data includes only '1' in the corresponding block, the steps can be repeated by the number of the divided blocks to finally restore the original message data.

구체적으로 살펴보면, 원본 메시지 데이터의 길이가 n 비트로 이루어지고, n2 길이로 이루어진 전송 메시지를 수신하는 경우에, 잔여 길이와 전송 메시지 길이가 다를 것이므로, n x n 크기의 제3 행렬을 생성할 수 있다. 예를 들어, 수신한 전송 메시지가 '010000100101001000000100000010000001'인 경우, 수학식 6과 같은 제3 행렬을 생성할 수 있다. Specifically, when the original message data has a length of n bits and a transmission message composed of n 2 lengths is received, the remaining length and the transmission message length will be different, so that a third matrix of nxn size can be generated. For example, when the received transmission message is '010000100101001000000100000010000001', a third matrix as shown in Equation (6) can be generated.

만일, 상기 측정된 전송 메시지의 길이와 상기 잔여 길이가 동일한 경우에는 수신된 전송 메시지를 이용하여 제3 행렬을 생성하지 않고, 전송 메시지를 모두 0으로 구성된 부분 복호화 메시지 데이터로 바로 생성한다. 이를 부호화 단계에서 생성된 코드워드가 '0'으로만 이루어진 경우에 발생할 수 있다. If the length of the measured transmission message and the remaining length are the same, the transmission message is directly generated as partial decoded message data composed of 0 without generating the third matrix using the received transmission message. This may occur when the code word generated in the encoding step is only '0'.

이어서, 생성한 제3 행렬에서 상기 생성된 제3 행렬의 n 개의 열들 중에서 상대적으로 가장 밀도가 높은 행을 선택한다. 구체적으로, 제3 행렬이 n 개의 열들로 이루어진 경우, 상기 n 개의 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 열을 선택한다. 예를 들어, 수학식 6과 같은 제3 행렬에서, '1'을 가장 많이 포함한 열으로서 두 번째 열을 선택하는 것이다. Then, a row having the highest density among the n columns of the generated third matrix is selected from the generated third matrix. Specifically, when the third matrix is made up of n columns, a column having the largest number of '1' among the n columns is selected. For example, in the third matrix as shown in Equation (6), the second column is selected as the column including the largest number of '1'.

만일 최고밀도가 동일한 여러 열들이 있는 경우에는 가장 먼저 나타나는 최고밀도 열을 선택한다. 특히, 제1 열을 기준으로 최초의 열을 선택하며, 예를 들어, 제2 열과 제5 열의 밀도가 동일하게 가장 높은 경우에는, 제2 열을 선택할 수 있다. If there are several rows with the same maximum density, choose the highest density column that appears first. In particular, the first column is selected on the basis of the first column. For example, if the density of the second column and the fifth column is the same, the second column can be selected.

제3 행렬에서의 n 개의 열들이 각각이 하나의 '1'만을 포함하고 있는 경우, 제k 행에 '1'을 포함하고 있는 열을 선택한다. 즉, 부호화 단계에서 입력 데이터를 제k 열에 삽입한 정보를 전달 받고, 제3 행렬에서의 n 개의 열들이 각각이 하나의 '1'만을 포함하고 있을 때, 제k 행에 '1'을 포함하고 있는 열을 선택한다. 예를 들어, 제3 행렬이 수학식 8의 행렬인 경우(부호화 장치(100)에서 입력 데이터를 제1 열에 삽입한 경우), 제1 열 및 제2 열 중에서 제1 행에 '1'이 위치한 제2 열을 선택하는 것이다. If n columns in the third matrix each contain only one '1', the column containing '1' in the k-th row is selected. That is, when the input information of the input data is inserted in the k-th column in the encoding step and the n columns in the third matrix include only one '1', the k-th row includes '1' Select the column you are in. For example, when the third matrix is the matrix of Equation 8 (when the encoding device 100 inserts the input data into the first column), if the first row and the second column are " 1 " The second column is selected.

이어서, 제3 행렬에서 선택한 열을 기반으로 메시지를 부분 복호화 메시지 데이터로 생성한다. 예를 들어, 선택한 열이 d 번째 열인 경우, (d-1)개의 '0'과 하나의 '1'이 순서대로 구성된 데이터를 부분 복호화 메시지 데이터로 생성한다. Then, the message is generated as partial decryption message data based on the column selected in the third matrix. For example, when the selected column is the d-th column, partial decryption message data is generated in which data composed of (d-1) '0' and one '1' are sequentially arranged.

이어서, 생성한 부분 복호화 메시지 데이터를 이용하여 복호화한다. 예를 들어, 기 생성된 부분 복호화 메시지 데이터를 이전에 생성된 부분 복호화 메시지 데이터에 순서대로 연속 결합하는 방식으로 복호화 할 수 있다. Then, decoding is performed using the generated partial decryption message data. For example, it is possible to decode the generated partial decryption message data by a method of successively combining the generated partial decryption message data with previously generated partial decryption message data.

예를 들어, 원본 메시지 데이터가 '0001010101'이라고 가정하는 경우, 최초로 생성된 제3 행렬은 수학식 5의 행렬이고, '1'을 가장 많이 포함하고 있는 제4 열이 선택될 것이다. 이에 4번째 비트가 '1'인 '0001'을 제1 부분 복호화 메시지 데이터로 획득된다. 이어서 생성된 제3 행렬이 수학식 6의 행렬이고, '1'을 가장 많이 포함하고 있는 제2 열이 선택될 경우, 2번째 비트가 '1'인 '01'을 제2 부분 복호화 메시지 데이터로 획득된다. 후속적으로 생성된 제3 행렬이 수학식 7의 행렬과 수학식 8의 행렬이고, 각각 제2 열을 선택한 경우, 2번째 비트가 '1'인 '01'을 제3 부분 복호화 메시지 데이터 및 제4 부분 복호화 메시지 데이터로 각각 획득될 수 있다. For example, if the original message data is assumed to be " 0001010101 ", the first generated third matrix is the matrix of Equation (5), and the fourth column that contains the most " 1 " Accordingly, '0001' having the fourth bit '1' is obtained as the first partial decryption message data. When the generated third matrix is the matrix of Equation (6), and the second column including the largest number of '1' is selected, '01', the second bit is '1', as the second partial decryption message data . If the third matrix generated subsequently is the matrix of Equation (7) and the matrix of Equation (8), respectively, if the second column is selected, '01' with the second bit '1' is referred to as the third partial decryption message data, And four partial decryption message data, respectively.

이에 상기 제1 내지 제4 부분 복호화 메시지 데이터를 연속하여 결합하면, '0001010101'데이터를 최종 복호화 데이터로 최종 획득할 수 있다.
If the first to fourth partial decryption message data are continuously combined, '0001010101' data can be finally obtained as final decoded data.

위에서 설명한, 실시예는 구체적인 설명을 위하여 기본적인 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치의 구조 및 과정을 예를 들어 서술한 것일 뿐, 그에 한정되는 것은 아니다. 본 발명이 속하는 기술 분야의 통상의 지식을 가진 당업자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
The embodiments described above are only illustrative of the structure and procedure of a coding / decoding method and apparatus using a basic low-density inverse code, but are not limited thereto. It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive.

100 : 부호화 장치 110 : 원본 메시지 데이터 수신부
120 : 절단부 130 : 블록부
140 : 입력 데이터 출력부 150 : 제1 행렬 생성부
160 : 제2 행렬 생성부 170 : 코드워드 생성부
180 : 전송부 200 : 복호화 장치
210 : 전송 메시지 수신부 220 : 전송 메시지 길이 측정부
230 :전송 메시지 길이 비교부 240 : 제3 행렬 생성부
250 : 선택부
260 : 부분 부호화 메시지 데이터 생성부
270 : 복호화부
100: encoding device 110: original message data receiver
120: cut part 130:
140: input data output unit 150: first matrix generation unit
160: second matrix generator 170: code word generator
180: Transmitting unit 200: Decoding device
210: transmission message reception unit 220: transmission message length measurement unit
230: transmission message length comparison unit 240: third matrix generation unit
250:
260: Coded partial message data generation unit
270:

Claims (40)

외부로부터 전달받은 n 개 비트로 이루어진 입력 데이터를 각 비트를 n 개의 행으로 정렬한 제k 열(column)과, 상기 제 k열에서 최초로 '1'이 존재하는 행을 제외한 각 행과 각 열에서 하나의 '1'만이 존재하도록 구성된 나머지 열들로 이루어진 n x n 크기의 제 1행렬을 생성하는 단계;
상기 제1 행렬의 역행렬을 구하고, 상기 역행렬에 대하여 2를 법으로 하는 법 연산(modulus operation)을 적용하여 제2 행렬을 생성하는 단계; 및
상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하여 전송하는 단계를 포함하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.
A kth column in which each bit is arranged in n rows and a column in which each bit except for a row in which first '1' exists in the kth column and one column in each column Generating a first matrix of size nxn made up of the remaining columns configured to contain only ' 1 '
Generating an inverse matrix of the first matrix and generating a second matrix by applying a modulus operation to the inverse matrix by 2; And
Generating a codeword using the second matrix and transmitting the codeword using the second matrix; and encoding the codeword using the second matrix.
제1항에 있어서, 상기 제1 행렬을 생성하는 단계에서,
상기 제 1행렬은 상기 제k 열을 제외한 나머지 행들에 존재하는 '1'은 상기 제k 열에서 최초로 '1'이 나타나는 행을 제외하고, 행의 순서 또는 열의 순서대로 각 행과 각 열에 '1'이 하나씩 존재하도록 구성되는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.
2. The method of claim 1, wherein in the step of generating the first matrix,
'1' existing in the remaining columns except for the k-th column may be replaced with '1' in each row and each column in the order of rows or columns except for a row in which '1' appears first in the k- And a decoding unit for decoding the encoded data using the low-frequency sparse inverse code.
제1항에 있어서, 상기 제1 행렬을 생성하는 단계 이전에
외부로부터 원본 메시지 데이터를 수신하는 단계;
상기 수신한 원본 메시지 데이터를 '1'을 기준으로 절단(chopping)하여 복수개의 절단된 블록들로 생성하는 단계;
상기 절단된 블록들 중 적어도 하나의 절단된 블록으로 구성된 메시지 블록을 생성하는 단계;
상기 생성된 메시지 블록들 중에서 적어도 하나의 '1'을 포함하는 메시지 블록들을 입력 데이터로 출력하는 단계를 더 포함하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.
2. The method of claim 1, further comprising: prior to the step of generating the first matrix
Receiving original message data from outside;
Generating a plurality of truncated blocks by chopping the received original message data based on '1';
Generating a message block comprising at least one truncated block of the truncated blocks;
And outputting the message blocks including at least one '1' among the generated message blocks as input data.
제3항에 있어서, 상기 수신한 원본 메시지 데이터를 복수개의 블록들로 절단(chopping)하는 단계는
상기 수신한 원본 메시지 데이터를 최초의 비트를 기준으로 '1'이 나오는 비트가 나올 때마다 상기 '1'이 존재하는 비트와 다음 비트 사이를 절단하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.
4. The method of claim 3, wherein chopping the received original message data into a plurality of blocks comprises:
1 'is present and the next bit is cut off every time a bit of' 1 'is output based on the first bit of the received original message data. The low-density sparse inverse code, .
제3항에 있어서, 상기 메시지 블록을 생성하는 단계에서
상기 메시지 블록은 상기 절단된 블록들 전체로 구성된 제1 메시지 블록과, 이전 메시지 블록에서 상기 절단된 블록들이 하나씩 차례로 제거하여 다음 메시지 블록을 생성하는 방식으로 생성되는 제2 메시지 블록 내지 제n 메시지 블록들로 이루어지는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.
4. The method of claim 3, wherein in the step of generating the message block
The message block includes a first message block including all of the truncated blocks and a second message block to an nth message block generated by removing the truncated blocks one by one in a previous message block to generate a next message block. Wherein the coding is performed using a low-density sparse inverse code.
제5항에 있어서,
상기 제n 메시지 블록은 모두 '0'으로 이루어진 블록, 하나의 '1'로만 이루어진 블록 및 적어도 하나의 '0'과 하나의 '1'로 이루어진 블록들 중 하나인 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.
6. The method of claim 5,
Wherein the nth message block is one of a block consisting of '0', a block consisting of only one '1' and at least one block consisting of '0' and one '1' sparse inverse code).
제5항에 있어서, 상기 메시지 블록을 입력 데이터로 출력하는 단계는
상기 제1 메시지 블록 내지 제n 메시지 블록을 순서대로 입력 데이터로 출력하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.
6. The method of claim 5, wherein the step of outputting the message block as input data comprises:
And the first message block to the n-th message block are sequentially output as input data. The coding method using a low-density inverse code.
제3항에 있어서,
상기 원본 메시지 데이터가 '0'으로만 이루어진 경우에는 상기 원본 메시지 데이터를 상기 코드워드로 생성하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.
The method of claim 3,
And generating the original message data by using the codeword if the original message data is only '0'.
제3항에 있어서, 상기 절단된 블록들 중 적어도 하나의 절단된 블록으로 구성된 메시지 블록을 생성하는 단계에서
상기 절단된 블록들 중에서 '0'으로만 이루어진 영 블록을 상기 코드워드로 생성하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.
4. The method of claim 3, wherein generating a message block comprising at least one truncated block of the truncated blocks
And a zero block composed of only '0' among the truncated blocks is generated as the codeword using the sparse inverse code.
제9항에 있어서,
상기 메시지 블록들을 근거로 코드워드를 생성한 이후에 상기 절단된 블록들 중에서 ‘0’으로만 이루어진 영 블록에 근거로 코드워드로 생성하는 을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.
10. The method of claim 9,
Using a low-density region code (sparse inverse code), characterized by that for generating from said cutting the block after the generation of the code word on the basis of the message block on the basis of the zero block consisting of only "0" as a code word Encoding method.
제3항에 있어서,
상기 생성된 메시지 블록들이 a개인 경우, 상기 코드워드가 a개가 생성되고,
상기 생성된 메시지 블록들 중에서 적어도 하나의 '1'을 포함하는 메시시 블록이 b개인 경우,
상기 입력 데이터, 상기 제1 행렬, 상기 제2 행렬 및 상기 코드워드가 b개가 생성되는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.
The method of claim 3,
If the generated message blocks are a, a number of code words are generated,
If the message block including at least one '1' among the generated message blocks is b,
Wherein b is generated for the input data, the first matrix, the second matrix and the codeword using a sparse inverse code.
제1항에 있어서, 상기 제2 행렬을 이용하여 코드워드를 생성하는 단계에서
상기 입력 데이터가 n개 비트로 이루어진 경우, 상기 코드워드는 n2의 길이를 갖는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.
2. The method of claim 1, wherein generating the codeword using the second matrix comprises:
Wherein when the input data is composed of n bits, the codeword has a length of n 2 .
제1항에 있어서, 상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하는 단계에서
상기 생성된 제2 행렬의 제1 열 내지 제n 열을 순서대로 연결하는 방식으로 n2 길이의 코드워드를 생성하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.
2. The method of claim 1, wherein generating the codeword using the second matrix comprises:
And generating n 2 length codewords by sequentially connecting the first to n-th columns of the generated second matrix.
제1항 내지 제13항 중 어느 하나의 한 항의 부호화 방법에 의하여 코드워드(codeword)로 생성되어 전송된 메시지를 복호화하기 위한 방법에 있어서,
전송 메시지를 수신하는 단계;
상기 수신한 전송 메시지의 길이와 원본 메시지 데이터의 길이에서 기복호화된 메시지의 길이를 뺀 잔여 길이를 비교하는 단계;
상기 비교 결과, 상기 측정된 전송 메시지의 길이와 상기 잔여 길이가 다를 경우, 상기 전송 메시지를 n 블록으로 구분하여 n x n 크기의 제3 행렬을 생성하는 단계;
상기 생성된 제3 행렬의 n 개의 열(column)들 중에서 상대적으로 가장 고밀도(densest)인 열을 선택하는 단계;
상기 선택한 열을 근거로 부분 복호화 메시지 데이터를 생성하는 단계; 및
상기 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 단계를 포함하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법.
A method for decoding a message generated by a codeword according to any one of claims 1 to 13 and transmitted, the method comprising:
Receiving a transmission message;
Comparing a length of the received transmission message with a length of original message data minus a length of a message that has been decoded;
Generating a third matrix of nxn size by dividing the transmission message into n blocks if the measured transmission message length and the residual length are different;
Selecting a row having the highest density among n columns of the generated third matrix;
Generating partial decryption message data based on the selected column; And
And decoding the generated partial decryption message data using the low-density sparse inverse code.
제14항에 있어서, 상기 수신한 전송 메시지의 길이와 상기 잔여 길이를 비교하는 단계 이전에,
상기 수신한 전송 메시지의 길이를 측정하는 단계를 더 포함하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법.
15. The method of claim 14, further comprising: prior to comparing the length of the received transmission message with the residual length,
The method of claim 1, further comprising measuring a length of the received transmission message.
제14항에 있어서,
상기 비교 결과, 상기 측정된 전송 메시지의 길이와 상기 잔여 길이가 동일한 경우,
상기 전송 메시지를 모두 '0'으로 구성된 부분 복호화 메시지 데이터로 생성하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법.
15. The method of claim 14,
If the length of the measured transmission message and the remaining length are equal,
And generating the partial decryption message data including all of the transmission messages as '0'.
제14항에 있어서, 상기 생성된 제3 행렬의 n 개의 열들 중에서 상대적으로 가장 고밀도(densest)인 열을 선택하는 단계는
상기 n 개의 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 열을 선택하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법.
15. The method of claim 14, wherein selecting the relatively highest densest column among the n columns of the generated third matrix
And a column having a relatively largest number of '1' among the n columns is selected by using a low density inverse code.
제17항에 있어서,
상기 n 개의 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 열이 둘 이상인 경우, 제1 열을 기준으로 최초의 열을 선택하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법.
18. The method of claim 17,
Wherein the first column is selected based on the first column when there are two or more columns including the largest number of '1' among the n columns, and a decoding method using a low density inverse code .
제17항에 있어서,
상기 n 개의 열들 각각이 하나의 ‘1’만을 포함하고 있는 경우,
부호화 방법에서 입력 데이터가 삽입된 제k 열에 대응되는 제k 행에 ‘1’을 포함하고 있는 열을 선택하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법.
18. The method of claim 17,
If each of the n columns includes only one '1'
Wherein a column including '1' in a k-th row corresponding to a k-th column in which input data is inserted in the coding method is selected.
제14항에 있어서, 상기 선택한 열을 근거로 부분 복호화 메시지 데이터를 생성하는 단계에서
상기 선택한 열이 d 번째 열인 경우, (d-1)개의 '0'과 하나의 '1'이 순서대로 구성된 데이터를 부분 복호화 메시지 데이터로 생성하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법.
15. The method of claim 14, further comprising: generating partial decryption message data based on the selected column
When the selected column is the d-th column, generating the partial decoded message data as data in which (d-1) 0's and one '1's are sequentially arranged as a partial decryption message data, Decoding method.
제14항에 있어서, 상기 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 단계는
상기 생성된 부분 복호화 메시지 데이터를 이전에 생성된 부분 복호화 메시지 데이터에 순서대로 연속 결합하는 방식으로 복호화하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법.
15. The method of claim 14, wherein the decoding using the generated partial decryption message data comprises:
And decrypting the generated partial decryption message data by a method of successively combining the generated partial decryption message data with the previously generated partial decryption message data in a sequential manner.
외부로부터 전달받은 n 개 비트로 이루어진 입력 데이터를 각 비트를 n 개의 행으로 정렬한 제k 열(column)과, 상기 제 k열에서 최초로 '1'이 존재하는 행을 제외한 각 행과 각 열에서 하나의 '1'만이 존재하도록 구성된 나머지 열들로 이루어진 n x n 크기의 제 1행렬을 생성하는 제1 행렬 생성부;
상기 제1 행렬의 역행렬을 구하고, 상기 역행렬에 대하여 2를 법으로 하는 법 연산(modulus operation)을 적용하여 제2 행렬을 생성하는 제2 행렬 생성부;
상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하는 코드워드 생성부; 및
상기 생성한 코드워드를 외부로 전송하는 코드워드 전송부를 포함하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.
A kth column in which each bit is arranged in n rows and a column in which each bit except for a row in which first '1' exists in the kth column and one column in each column A first matrix generating unit for generating a first matrix of nxn size made up of the remaining columns configured to have only " 1 "
A second matrix generator for generating an inverse matrix of the first matrix and applying a modulus operation to the inverse matrix to generate a second matrix;
A code word generator for generating a codeword using the second matrix; And
And a codeword transmission unit for transmitting the generated codeword to the outside.
제22항에 있어서,
상기 제1 행렬은 상기 제k 열을 제외한 나머지 열들에 존재하는 '1'은 상기 제k 열에서 최초로 '1'이 나타나는 행을 제외하고, 행의 순서 또는 열의 순서대로 각 행과 각 열에 '1'이 하나씩 존재하도록 구성되는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.
23. The method of claim 22,
1 'existing in the columns other than the k-th column may be replaced by' 1 'in each column and each column in the order of rows or columns except for a row in which' 1 'appears first in the k- Are arranged to be present one by one. The coding apparatus using the low-density inverse code.
제22항에 있어서,
외부로부터 원본 메시지 데이터를 수신하는 원본 메시지 데이터 수신부;
상기 수신한 원본 메시지 데이터를 '1'을 기준으로 절단(chopping)하여 복수개의 절단된 블록들로 생성하는 절단부;
상기 절단된 블록들 중 적어도 하나의 절단된 블록으로 구성된 메시지 블록을 생성하는 블록부; 및
상기 생성된 메시지 블록들 중에서 적어도 하나의 '1'을 포함하는 메시지 블록들을 입력 데이터로 출력하는 입력 데이터 출력부를 더 포함하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.
23. The method of claim 22,
An original message data receiving unit for receiving original message data from outside;
A cutting unit for chopping the received original message data based on '1' to generate a plurality of cut blocks;
A block for generating a message block composed of at least one truncated block among the truncated blocks; And
And an input data output unit for outputting, as input data, message blocks including at least one '1' among the generated message blocks.
제24항에 있어서, 상기 절단부는
상기 수신한 원본 메시지 데이터를 최초의 비트를 기준으로 '1'이 나오는 비트가 나올 때마다 상기 '1'이 존재하는 비트와 다음 비트 사이를 절단하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.
25. The apparatus of claim 24,
1 'is present and the next bit is cut off every time a bit of' 1 'is output based on the first bit of the received original message data. The low-density sparse inverse code, .
제24항에 있어서,
상기 블록부가 생성한 상기 메시지 블록은 상기 절단된 블록들 전체로 구성된 제1 메시지 블록과, 이전 메시지 블록에서 상기 절단된 블록들이 하나씩 차례로 제거하여 다음 메시지 블록을 생성하는 방식으로 생성되는 제2 메시지 블록 내지 제n 메시지 블록들로 이루어지는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.
25. The method of claim 24,
The message block generated by the block unit includes a first message block including all of the truncated blocks and a second message block generated by removing the truncated blocks one by one in a previous message block to generate a next message block, To n < th > message blocks. ≪ IMAGE >
제26항에 있어서,
상기 제n 메시지 블록은 모두 '0'으로 이루어진 블록, 하나의 '1'로만 이루어진 블록 및 적어도 하나의 '0'과 하나의 '1'로만 이루어진 블록들 중 하나인 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.
27. The method of claim 26,
Wherein the nth message block is one of a block consisting of '0', a block consisting of only one '1', and at least one block consisting of '0' and one '1' sparse inverse code).
제26항에 있어서, 상기 입력 데이터 출력부는
상기 제1 메시지 블록 내지 제n 메시지 블록을 순서대로 입력 데이터로 출력하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.
27. The apparatus of claim 26, wherein the input data output section
And the first message block to the n-th message block are sequentially output as input data.
제24항에 있어서,
상기 원본 메시지 데이터가 '0'으로만 이루어진 경우에는 상기 원본 메시지 데이터를 상기 코드워드로 생성하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.
25. The method of claim 24,
And generates the original message data as the codeword if the original message data is only '0'.
제24항에 있어서,
상기 절단부가 절단한 블록들 중에서 '0'으로만 이루어진 영 블록은 상기 코드워드로 생성되는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.
25. The method of claim 24,
And a zero block composed of only '0' among the blocks cut by the cut section is generated as the codeword.
제22항에 있어서,
상기 입력 데이터가 n개 비트로 이루어진 경우, 상기 코드워드 생성부가 생성한 코드워드는 n2의 길이를 갖는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.
23. The method of claim 22,
Wherein the codeword generated by the codeword generator has a length of n 2 when the input data is composed of n bits.
제22항에 있어서,
상기 코드워드 생성부는 상기 생성된 제2 행렬의 제1 열 내지 제n 열을 순서대로 연결하는 방식으로 n2 길이의 코드워드를 생성하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.
23. The method of claim 22,
Wherein the codeword generator generates a codeword of n 2 length by sequentially connecting the first to n-th columns of the generated second matrix, Device.
제22항 내지 제32항 중 어느 하나의 한 항의 부호화 장치를 통하여 코드워드(codeword)로 생성되어 전송된 메시지를 복호화하기 위한 장치에 있어서,
전송 메시지를 수신하는 전송 메시지 수신부;
상기 수신한 전송 메시지의 길이와 원본 메시지 데이터의 길이에서 기복호화된 메시지의 길이를 뺀 잔여 길이를 비교하는 전송 메시지 길이 비교부;
상기 비교 결과, 상기 측정된 전송 메시지의 길이와 상기 잔여 길이가 다를 경우, 상기 전송 메시지를 n 블록으로 구분하여 n x n 크기의 제3 행렬을 생성하는 제3 행렬 생성부;
상기 생성된 제3 행렬의 n 개의 열(row)들 중에서 상대적으로 가장 고밀도(densest)인 열을 선택하는 선택부;
상기 선택한 열을 근거로 부분 복호화 메시지 데이터를 생성하는 부분 복호화 메시지 데이터 생성부; 및
상기 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 복호화부를 포함하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.
33. An apparatus for decoding a message generated and transmitted as a codeword through an encoding apparatus according to any one of claims 22 to 32,
A transmission message receiver for receiving a transmission message;
A transmission message length comparing unit for comparing the length of the received transmission message with the remaining length obtained by subtracting the length of the original message data from the length of the original decoded message;
A third matrix generator for generating a third matrix of nxn size by dividing the transmission message into n blocks if the measured transmission message length and the residual length are different;
A selector for selecting a row having a relatively highest density among n rows of the generated third matrix;
A partial decryption message data generation unit for generating partial decryption message data based on the selected column; And
And a decoding unit decoding the generated partial decoding message data using the generated partial decoding message data.
제33항에 있어서,
상기 수신한 전송 메시지의 길이를 측정하고, 상기 측정한 전송 메시지의 길이를 상기 전송 메시지 길이 비교부에게 제공하는 전송 메시지 길이 측정부를 더 포함하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.
34. The method of claim 33,
And a transmission message length measurement unit for measuring a length of the received transmission message and providing the measured transmission message length to the transmission message length comparison unit. Decoding device.
제33항에 있어서,
상기 전송 메시지 길이 비교부에서의 비교 결과, 상기 측정된 전송 메시지의 길이와 상기 잔여 길이가 동일한 경우,
상기 부분 복호화 메시지 데이터 생성부가 상기 전송 메시지를 모두 '0'으로 구성된 부분 복호화 메시지 데이터로 생성하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.
34. The method of claim 33,
When the length of the measured transmission message and the remaining length are equal,
And the partial decryption message data generating unit generates the partial decryption message data composed of '0' as the transmission message.
제33항에 있어서, 상기 선택부는
상기 n 개의 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 열을 선택하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.
34. The apparatus of claim 33, wherein the selector
And a column having a relatively largest number of '1' among the n columns is selected by using a low-density sparse inverse code.
제36항에 있어서,
상기 n 개의 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 열이 둘 이상인 경우,
상기 선택부는 제1 열을 기준으로 최초의 열을 선택하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.
37. The method of claim 36,
If there are two or more columns including '1' among the n columns relatively,
Wherein the selection unit selects the first column based on the first column. The decoding apparatus using the low-density inverse code.
제36항에 있어서,
상기 n 개의 열들 각각이 하나의 ‘1’만을 포함하고 있는 경우,
상기 선택부는 부호화 장치에서 입력 데이터가 삽입된 제k 열에 대응되는 제k 행에 ‘1’을 포함하고 있는 열을 선택하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.
37. The method of claim 36,
If each of the n columns includes only one '1'
Wherein the selector selects a column including '1' in the k-th row corresponding to the k-th column in which the input data is inserted in the encoding apparatus.
제33항에 있어서, 상기 부분 복호화 메시지 데이터 생성부는
상기 선택부에서 선택한 행이 d 번째 열인 경우, (d-1)개의 '0'과 하나의 '1'이 순서대로 구성된 데이터를 부분 복호화 메시지 데이터로 생성하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.
34. The apparatus of claim 33, wherein the partial decryption message data generation unit
(D-1) '0' and one '1' in order when the row selected by the selection unit is the d-th column, as the partial decryption message data, code).
제33항에 있어서, 상기 복호화부는
상기 생성된 부분 복호화 메시지 데이터를 이전에 생성된 부분 복호화 메시지 데이터에 순서대로 연속 결합하는 방식으로 복호화하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.
34. The apparatus of claim 33, wherein the decoding unit
And decrypts the generated partial decryption message data by a method of successively combining the generated partial decryption message data with previously generated partial decryption message data in a sequential manner.
KR1020120084180A 2012-07-31 2012-07-31 Method and device of encoding/decoding using sparse inverse code KR101391859B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120084180A KR101391859B1 (en) 2012-07-31 2012-07-31 Method and device of encoding/decoding using sparse inverse code
PCT/KR2013/005664 WO2014021559A1 (en) 2012-07-31 2013-06-26 Method and apparatus for encoding/decoding using sparse inverse code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120084180A KR101391859B1 (en) 2012-07-31 2012-07-31 Method and device of encoding/decoding using sparse inverse code

Publications (2)

Publication Number Publication Date
KR20140016775A KR20140016775A (en) 2014-02-10
KR101391859B1 true KR101391859B1 (en) 2014-05-07

Family

ID=50028192

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120084180A KR101391859B1 (en) 2012-07-31 2012-07-31 Method and device of encoding/decoding using sparse inverse code

Country Status (2)

Country Link
KR (1) KR101391859B1 (en)
WO (1) WO2014021559A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220090908A (en) 2020-12-23 2022-06-30 이재연 A real-time indoor population density guide solution for social distance-keeping

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7171603B2 (en) * 2004-05-06 2007-01-30 Motorola, Inc. Method and apparatus for encoding and decoding data
KR100809616B1 (en) * 2005-10-19 2008-03-05 삼성전자주식회사 Apparatus and method for coding/decoding block low density parity check code with variable block length
JP4821684B2 (en) * 2007-04-02 2011-11-24 住友電気工業株式会社 Encoding device and encoding program
JP2010136279A (en) * 2008-12-08 2010-06-17 Sumitomo Electric Ind Ltd Encoding device, decoding device, method of creating generator matrix, and computer program
JP2011146899A (en) * 2010-01-14 2011-07-28 Panasonic Corp Encoder, decoder and encoding method and decoding method

Also Published As

Publication number Publication date
KR20140016775A (en) 2014-02-10
WO2014021559A1 (en) 2014-02-06

Similar Documents

Publication Publication Date Title
US20190190544A1 (en) Method and apparatus for generating a code word
US10340948B2 (en) Transmitter and receiver, and method of varying a coding rate
US9203608B2 (en) System for encrypting data with an error correction code
KR102289928B1 (en) Data processing method and device
KR20070116904A (en) Error correction encoder
CN107733441B (en) Coding method and device, decoding method and device
KR101391859B1 (en) Method and device of encoding/decoding using sparse inverse code
KR102111678B1 (en) Polar code device using interleaver, Polar code iterative decoding device, and coding method and decoding method using the same
US20170288697A1 (en) Ldpc shuffle decoder with initialization circuit comprising ordered set memory
KR101425506B1 (en) Method and device of encoding/decoding using complimentary sparse inverse code
EP3047575B1 (en) Encoding of multiple different quasi-cyclic low-density parity check (qc-ldpc) codes sharing common hardware resources
JP4634423B2 (en) Information transmission / reception method, encoding apparatus, and decoding apparatus
KR101391853B1 (en) Method and device of encoding/decoding using sparse inverse code
EP3614592A1 (en) Encoding method and device
CA2827347C (en) Error correction encoding method, decoding method and associated devices
US10972220B2 (en) Interleaving method and apparatus
KR101512078B1 (en) Method and device of encoding/decoding using specific density based sparse inverse code
Haghighat et al. Design of lossless turbo source encoders
Wasserman et al. Polar coding with CRC-aided list decoding
KR101512081B1 (en) Method and device of encoding/decoding using sparse matrix based on specific density
KR20180042510A (en) Method and apparatus for performing decoding of fountain code
KR101613984B1 (en) Method and device of encoding using relative high-density of input data
WO2019234923A1 (en) Transmission apparatus, reception apparatus and encoding method
CN108234069B (en) Low-bit-rate data sending method and device
KR20110068776A (en) Method and apparatus for encoding code using low density parity check

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee