WO2014046395A1 - Encoding/decoding method and apparatus using complementary sparse inverse code - Google Patents
Encoding/decoding method and apparatus using complementary sparse inverse code Download PDFInfo
- Publication number
- WO2014046395A1 WO2014046395A1 PCT/KR2013/007909 KR2013007909W WO2014046395A1 WO 2014046395 A1 WO2014046395 A1 WO 2014046395A1 KR 2013007909 W KR2013007909 W KR 2013007909W WO 2014046395 A1 WO2014046395 A1 WO 2014046395A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- message
- matrix
- row
- column
- data
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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
Definitions
- the present invention relates to a method and apparatus for encoding / decoding using complementary low density inverse code, wherein a matrix is generated from a message block of fixed length from original message data, and the inverse of the generated matrix and the transmitted data
- the present invention relates to a method and apparatus for encoding / decoding using a complementary low density inverse code that can easily encode and decode a message using a density of.
- bit error rates (BERs) of digital transmission information are reduced by transmitting a code sequence encoding an input information sequence.
- the need for a coding method in which the decoding process can be significantly reduced from the encoding stage and the data decoding performance is significantly improved in the decoding stage is also increasing.
- the present invention solves this problem.
- the present invention generates a message block having a fixed length from original message data, generates a matrix using the message block, and obtains an inverse matrix of the generated matrix. Then, by encoding using an inverse matrix to which the operation of modulus 2 is applied, an encoding method using a complementary low density inverse code capable of significantly reducing the calculation used for encoding is provided. Its purpose is to.
- the present invention provides a complex calculation process by generating data encoded by the encoding method into a matrix and decoding the data based on the density of each row or column in the generated matrix. It is an object of the present invention to provide a complementary decoding method using a sparse inverse code that can be omitted to significantly improve decoding performance.
- an object of the present invention is to provide a complementary encoding / decoding apparatus using a low density inverse code for executing the complementary encoding / decoding method.
- the method includes: generating a message block having n bits of fixed length from original message data; A k-th row in which each bit of the message block of n bits is arranged in n columns or a k-th column in which each bit of the message block of n bits is arranged in n rows (column), and when the message block is arranged in the k-th row, each row except for the k-th row, a column in which '1' first appears in the k-th row, and one 'in each column Generate a first matrix of size nxn consisting of remaining rows configured to have only 1 ', and in the case where the message block is arranged in the kth column, the kth column and the first' 1 'in the kth column Generating a first matrix having an nxn size consisting of each column except the other columns and the remaining columns configured to have only one '1' in
- the generating of the message block in the generating of the message block, data up to the first bit of the '1' in the previous message block having a fixed length of n bits is deleted, and the original message data is deleted from the original message data.
- the number of bits of deleted data is filled with the subsequent data of the previous message block to produce a subsequent message block of n bits of fixed length.
- the subsequent message block may be filled with bit '1' and the fixed length of the subsequent message block may be of a fixed length.
- the data up to the first bit of the '1' in the previous message block having n bits of fixed length is deleted, and the deleted data is deleted. Fill a bit '1' by the number of bits in to create a subsequent message block of n bits of fixed length.
- the partial original message data is fixed using at least one of the methods of claims 2 to 4. Create a subsequent message block of n bits of length.
- n is a fixed length by filling the number of bits of data deleted in the previous message block from neighboring partial original message data with subsequent data of the previous message block. If a subsequent message block consisting of three bits is generated, and all the number of bits of data deleted in the previous message block are not filled from neighboring partial original message data, the non-filled data is filled with bit '1' to have a fixed length. Generates a subsequent message block of n bits.
- the length of the original message data and the length of the message block may be the same.
- the message block when the first occurrence of '1' in the message block in the step of generating the first matrix is the kth bit, the message block satisfies 1 ⁇ t ⁇ k. To the tth row or tth column.
- the message block in the step of generating the first matrix, if the first bit of the '1' in the message block is the kth bit, the message block satisfies 1 ⁇ t ⁇ k Arranged in a row or t-th column, and '1' present in the remaining rows or columns except for the t-th or t-th column except for a column or row in which '1' first appears in the t-th or t-th column ,
- the first matrix is generated such that '1' is present in each row and each column in the order of the rows or the columns.
- the t th column of the k th row is '1' and the k th column is '0'
- the remaining columns of the kth row are configured in the same manner as the message block, and from the first row to the (k-1) th row, a zero matrix of size (k-1) ⁇ 1, (k-1) ⁇ ( k-1) a unit matrix of size and (k-1) ⁇ (nk) zero matrix are arranged in order, and from (k-1) to nth rows, the matrix of size (nk) ⁇ k
- a second matrix is generated by arranging the unit matrix of size (nk) ⁇ (nk) in order.
- the t th row of the k th column is arranged as '1' and the k th row is '0'
- the remaining rows of the k-th column are configured in the same manner as the message block, and from the first column to the (k-1) th column, a zero matrix of size (k-1) ⁇ 1, (k-1) ⁇ (k-1 )
- the unit matrix of size and (k-1) ⁇ (nk) zero matrix are arranged in order, and from the (k-1) th column to the nth column, (nk) ⁇ k matrix and (nk)
- a second matrix is generated by arranging unit matrices of size ⁇ (nk) in order.
- the length of the codeword when the message block is composed of n bits, the length of the codeword may be n 2 or 1. . Specifically, when the message block having one or more bits 1 is composed of n bits, the length of the codeword is n 2 , and the message block having all bits 0 is composed of n bits. The length of the codeword is one.
- a codeword having a length of n 2 is generated by sequentially connecting the first to nth rows of the generated second matrix.
- n 2 length codewords may be generated by sequentially connecting the first to nth columns of the generated second matrix.
- the decoding method using the complementary low density inverse code (sparse inverse code) according to an embodiment of the present invention, receiving a transmission message; Measuring a length of the received transmission message; Comparing the measured lengths of the transmission messages; As a result of the comparison, when the measured transmission message length is n 2 , the transmission message is divided into n blocks, and each block of the n blocks is arranged in rows or columns in order to form a third matrix having an size of n ⁇ n. Generating; In the case where the third matrix is generated by arranging each block of the n blocks in order, a row having the highest density among the n rows of the generated third matrix is selected.
- the data is generated as partial decoded message data composed of n '0' lengths of message blocks.
- selecting a row or column having a relatively highest density among the n rows or n columns of the generated third matrix may be determined by the n. Select the row or column that contains the most relatively '1' among the rows or columns.
- the first row or column is selected based on the first row or the first column.
- each of the n rows is one '1'. If it contains only ',' the row containing '1' in the kth column is selected.
- each of the n columns is one '1'. If it contains only, select the column that contains '1' in the kth row.
- the selected row or column is a d-th row or column in the step of generating partial decoded message data based on the selected row or column, distant consecutive (d-1) '0's. Data consisting of '1' and '1' in order may be generated as partial decrypted message data.
- the generated partial decoded message data is sequentially combined with previously generated decoded message data.
- the length of the decoded message is greater than or equal to the length of the original message data in the decoding using the generated partial decoded message data, the length of the original message data is equal to. Decrypt the message.
- An encoding apparatus using a complementary low density inverse code includes a message block generation unit generating a message block of n bits having a fixed length from original message data; A k-th row in which each bit of the message block of n bits is arranged in n columns, or a k-th column in which each bit of the message block of n bits is arranged in n rows, If the message block is arranged in the k-th row, the k-th row, and each row except for the column where '1' first appears in the k-th row, and the remaining one configured to have only one '1' in each column When a first matrix of size nxn is formed, and the message block is arranged in the k-th column, the k-th column, each column except for the first '1' in the k-th column, and each row A first matrix generator configured to generate a first matrix having an nxn size consisting of remaining columns configured to have only one '1'; A second matrix generator configured to generate a
- Decoding apparatus using a complementary low density inverse code (sparse inverse code) includes a transmission message receiving unit for receiving a transmission message; A transmission message length measuring unit measuring a length of the received transmission message; A transmission message length comparison unit comparing the measured transmission message lengths; As a result of the comparison, when the measured transmission message length is n 2 , the transmission message is divided into n blocks, and each block of the n blocks is arranged in rows or columns in order to form a third matrix having an size of n ⁇ n.
- a third matrix generator for generating; In the case where the third matrix is generated by arranging each block of the n blocks in order, a row having the highest density among the n rows of the generated third matrix is selected.
- a selection unit for selecting a column having the highest density among the n columns of the generated third matrix when the third matrix is generated by arranging each block of the n blocks in order; ; A partial decoded message data generation unit configured to generate partial decoded message data based on the selected row or column; And a decoder which decodes the generated partial decoded message data.
- the original message data is truncated into at least one message blocks of a certain size, and subsequent message blocks after the first message block delete data up to the first bit with a '1' in the previous message block, and the deleted data.
- Cattle can be.
- the kth row and the column where '1' is present in the kth row for the first time Generating a low density first matrix of size nxn consisting of each row except the other rows and the remaining rows configured to have only one '1' in each column, and wherein the k-th column and the Encoding and decoding are avoided by generating a low density first matrix of size nxn consisting of each column except for the first '1' in the kth column and the remaining columns configured to have only one '1' in each row. Can be reduced.
- the input data is arranged in a specific row or a specific column, and an identity matrix and a zero matrix are arranged to generate a low density first matrix having an nxn size including the input data.
- the calculation process is reduced.
- the rules appearing in the second matrix provide a source description of decoding, reduce the computational burden of decoding, and improve the effectiveness of decoding.
- the codewords generated by concatenating the rows or columns of the matrix are received to improve the decoding function in simple encoding and decoding.
- the decoding process can be made very simple and very efficient.
- FIG. 1 is a block diagram illustrating an encoding apparatus using a complementary low density inverse code according to embodiments of the present invention.
- FIG. 2 is a flowchart illustrating a coding method using a complementary low density inverse code according to embodiments of the present invention.
- FIG. 3 is a block diagram illustrating a decoding apparatus using a complementary low density inverse code according to embodiments of the present invention.
- FIG. 4 is a flowchart illustrating a decoding method using a complementary low density inverse code according to embodiments of the present invention.
- first and second 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.
- the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component.
- all terms used herein, including technical or scientific terms have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art and shall not be construed in ideal or excessively formal meanings unless expressly defined in this application. Do not.
- FIG. 1 is a block diagram illustrating an encoding apparatus using a complementary low density inverse code according to embodiments of the present invention
- FIG. 2 illustrates an encoding method using a complementary low density inverse code according to embodiments of the present invention. It is a flowchart for doing so.
- the encoding apparatus 100 using the complementary low density inverse code may include a message block generator 110, a first matrix generator 120, and a second matrix. It includes a generator 130, a codeword generator 140 and the transmitter 150.
- the message block generation unit 110 generates a message block consisting of n bits having a fixed length from the original message data (S110). For example, the length of the message block is specified according to a user setting or initialization setting value.
- the message block may be set to 30 bits and the remaining bits set to 70 bits, with three message blocks and 10 each having a length of 30 bits. It may be divided into residual bits having a length of bits. In addition, three message blocks each having a length of 30 bits and a dummy bit may be filled in the remaining 10 bits, and thus may be composed of a message block having a length of 30 bits.
- the message block generator 110 extracts the original message data by a predetermined length and transfers the corresponding message block to the first matrix generator 120. Subsequently, the message block generation unit 110 deletes the data up to the first '1' bit in the message block, and fills the deleted data with the subsequent data bits of the message block in the original message.
- the message block may be configured in order of the data remaining in the message block first, followed by the complementary bits.
- the subsequent message block is configured by filling the unfilled data with '1'.
- the message block may be generated using bit '1' without using the original message data as many as the data bits deleted from the message block.
- the subsequent message block thus ensures that the number of bits as truncated is always followed by subsequent data in the message block from the original message data, or by using only bit '1' to always have a preset length.
- the length of the message block is set to 5 for '001011010' having a length of original message data of 9
- the first message block is '00101'
- a first matrix is generated using the first message block. do.
- the second message block which is a subsequent message block of the first message block, has two bits remaining in the first message block after deleting '001', which is data up to the first '1' bit in the first message block.
- '101' can be obtained by sequentially taking the number of bits' 1010 'deleted from 01' and subsequent data '1010' of the first message block in the original message data, and the two bits remaining in the first message block are obtained.
- a second message block '01101' having a set length of 5 is obtained.
- the third message block which is a subsequent message block of the second message block, deletes three bits '101' in the second message block when the first message block '01' is deleted from the second message block. Two bits must be added to '.
- '1010' may be obtained by sequentially combining '0' remaining in the original message data with '101' remaining in the second message block to fill as many bits as deleted bits in the second message block.
- the third message block '10101' may be obtained by adding bit '1' to the end since the set message block does not satisfy 5, which is the length of the set message block.
- the fourth message block deletes '1' until the first bit in which the '1' appears in the third message block, and bits '0101' remaining in the third message block and subsequent data of the third block message in the original message data. Since there are no more bits, the number of bits that do not satisfy the set block message length is filled as '1'. Therefore, the fourth message block becomes '01011'.
- the fifth message block sequentially combines the bits '011' remaining after deleting '01' to the first bit where '1' appears in the fourth message block, and the additional two bits '11'.
- the block becomes '01111'.
- a fifth message block is generated from the first message block for the original message data '001011010' having a total length of nine.
- the message blocks are generated as shown in Table 1 below.
- bit '1' can be used to compensate for the deleted bits without using the original message data.
- the first message block is the same as the original message data
- the second message block is the first '1' in the first message block.
- the fifth message block deletes '01' until the first bit in which the '1' appears in the fourth message block, and complements the bit '1' by the remaining bits '0111111' and the number of deleted bits in the fourth message block. 5 Get message block '01111111'.
- the first message block is generated from the fifth message block.
- the message blocks are generated as shown in Table 2 below.
- a message block may be generated using the same method for each of the partial original message data having a smaller number of bits than the original message data, and each partial original may be generated according to the type of bits constituting the partial original message data.
- Different message data may be used to generate a message block using a different method.
- n is a fixed length n by filling the number of bits of data deleted in the previous message block from neighboring partial original message data with subsequent data of the previous message block. Create a subsequent message block of bits. And when the number of bits of data deleted in the previous message block is not completely filled from neighboring partial original message data, the subsequent message block of n bits having a fixed length is filled by filling the non-filled data with bit '1'. Can be generated. That is, the plurality of partial original message data may be used to interwork with each other to generate a message block.
- the length of the original message data and the length of the message block may be the same.
- the original message data is used as the message block.
- the subsequent message block can be filled with bit '1'.
- the message block generator 110 is all made up of only '0', the message block generator 110 is a codeword generator 140 for one bit consisting of '0' or '1' Generate as codeword in.
- the first matrix generator 120 may include a k-th row in which a message block composed of n bits received from the message block generator 110 is arranged in n columns of each bit; In operation S120, a first matrix having an nxn size is formed of each row except for a column in which '1' is present in the k-th row, and the remaining rows configured to have only one '1' in each column (S120).
- the first matrix generator 120 determines that '1' exists in the remaining rows except for the kth row. Except for the column in which '1' appears, the first matrix may be configured such that one '1' exists in each row and each column in the order of the rows or the columns.
- the first matrix generator 120 k-th arranges each bit into n rows of a message block composed of n bits received from the message block generator 110.
- a first matrix of size nxn consisting of a column, the k-th column, each column except for the first '1' in the k-th column, and the remaining columns configured to have only one '1' in each row. Can be generated.
- the first matrix generator 120 may indicate that the first matrix is present in the remaining columns except for the kth column, where '1' is the first in the kth column. Except for the rows where 1 'appears, the first matrix may be configured such that there is one' 1 'in each column and each row in the order of the columns or the rows.
- the first matrix generator 120 may arrange the message blocks received from the message block generator 110 in a specific row or in a specific column.
- the first matrix generator 120 transmits the first message block to the first message block.
- the first matrix can be configured such that '1' is present in each column.
- the first matrix generator 120 generates a first matrix configured as in Equation 1 below with respect to the first message block '00101'.
- the first matrix generator 120 generates a first matrix as shown in Equations 2 and 3 below. .
- the second matrix generator 130 After obtaining the inverse of the first matrix generated by the first matrix generator 120, the second matrix generator 130 generates a second matrix by applying a modulus operation of 2 (S130). ). In this case, when the first matrix generator 120 generates a first matrix, the second matrix generator 130 also generates a second matrix.
- the second matrix generator 130 is the first matrix of Equations 1 to 3 Second matrices of Equations 4 to 6 are generated.
- the first matrix generator 120 may satisfy the message block with 1 ⁇ t ⁇ k when the bit in which the first '1' appears in the message block is the kth bit. Can be arranged in t rows or t columns.
- the first matrix generator 120 may include '1' existing in the remaining rows or columns except for the t th row or the t th column, or a column in which '1' appears first in the t th row or the t th column. Except for rows, the first matrix may be generated such that one '1' exists in each row and each column in the order of the rows or the columns.
- the second matrix generator 130 selects the t-th column of the k-th row by '1'. ', Arranging the k th column to' 0 'and the remaining columns of the k th row are configured in the same manner as the message block, and the first to the (k-1) th rows are (k-1) ⁇ 1 in size.
- a second matrix may be generated by arranging a (nk) ⁇ k sized matrix and a (nk) ⁇ (nk) sized matrix in order.
- the second matrix generator 130 sets the t-th row of the k-th column to '1', the first.
- the k rows are arranged as '0', and the remaining rows of the k th column are configured in the same manner as the message block, and from the first column to the (k-1) column, a zero matrix of size (k-1) ⁇ 1, ( Unit matrix of size k-1) ⁇ (k-1) and zero matrix of size (k-1) ⁇ (nk) are arranged in order, and (nk) ⁇
- a second matrix may be generated by arranging a k matrix having a size k and a unit matrix having a size of (nk) ⁇ (nk) in order.
- the second matrix can be generated by a simple rule without performing the inverse matrix and the law operation of 2 as the law.
- the codeword generator 140 uses a second matrix of size n ⁇ n generated by the second matrix generator 130 to generate a codeword of length n 2.
- the codeword generator 140 generates a codeword of length n 2 by arranging the first to nth rows of the generated second matrix in order on one line. can do.
- the codeword generator 140 may generate a codeword of '0100000100100010001000001' for the second matrix of Equation 4, and generate a codeword of '0100010101001000001000001' for the second matrix of Equation 5. can do.
- the codeword generator 140 When the message block is arranged in the k-th column, the codeword generator 140 generates a codeword having a length of n 2 by connecting the first to nth columns of the generated second matrix in order.
- the codeword generator 140 may have a value of '0' or '1'. It becomes a codeword and transmits one bit to the transmitter 150.
- the codeword generator 140 transmits the received one bit to the transmitter 150. do.
- the codeword generated by the codeword generator 140 may have a length of n 2 or 1.
- the transmitter 150 transmits the codeword generated by the codeword generator 140 to the outside (S150).
- the encoding apparatus 100 using the low density inverse code cuts the original message data into singular or plural blocks of a predetermined size, and subsequent message blocks after the first message block have a '1' first in the first message block. Deleting data up to bits, filling the number of bits of the deleted data with bits of subsequent data of the message block in the original message data, and failing to fill the number of bits of the deleted data in the message block, Subsequent message blocks are generated by filling the unfilled data with '1' or by supplementing the bit number of the deleted data with bits '1'. In this way, the computational burden and decoding performance of encoding are greatly improved, and errors can be significantly reduced.
- FIG. 3 is a block diagram illustrating a decoding apparatus using a complementary low density inverse code according to embodiments of the present invention
- FIG. 4 illustrates a decoding method using a complementary low density inverse code according to embodiments of the present invention. It is a flowchart for doing so.
- the decoding apparatus 200 using the complementary low density inverse code includes a transmission message receiver 210, a transmission message length measurement unit 220, and a transmission message length comparison.
- the unit 230 includes a third matrix generator 240, a selector 250, a partial decoded message data generator 260, and a decoder 270.
- the decoding apparatus 200 using the low density inverse code receives predetermined information from the encoding apparatus 100 and performs a decoding process.
- the decoding apparatus 200 may include information on a row or column into which input data is inserted, information on a length of original message data, a length of a message block, and a length of a decoded message (to be decoded to a specific point in time).
- Information about the length of the message) and information about the length of the transmission message may be acquired in advance or received from the encoding apparatus 100.
- the transmission message receiving unit 210 receives a transmission message transmitted from the outside. At this time, the transmission message receiving unit 210 may receive a transmission message having a specific length. For example, the transmission message receiving unit 210 may receive a transmission message having a length of n 2 bits or 1 bit (S210).
- the transmission message length measuring unit 220 measures the length of the transmission message transmitted from the transmission message receiving unit 210 (S220), and the transmitted message is based on the measured length of the transmission message in the third matrix generator 230. Alternatively, the partial decoded message data generator 250 is transmitted.
- the transmission message length comparison unit 230 does not go through the transmission message length measurement unit 220, the transmission message It is determined whether is one bit (S230), and the comparison result.
- the transmitted message may be delivered to the third matrix generator 240 or the partial decoded message data generator 260.
- the transmission message length comparison unit 230 determines whether the length of the transmission message is 1 bit (S230).
- the transmission message length comparison unit 230 transmits the partial message data generation unit 260.
- the partial decryption message data generation unit 260 generates a partial decryption message composed of '0' by the length (size) of the message block. For example, when the length of the message block is 5 bits, the partial decoded message data generator 260 generates '00000' as partial decoded message data.
- the transmitted message is transferred to the third matrix generator 240.
- the third matrix generator 240 divides the transmission message into n blocks, and arranges each block of the n blocks in rows or columns in order to generate a third matrix having an size of n ⁇ n. At this time, the third matrix generator 240 divides the third matrix into n blocks of n 2 length transmission messages, and then generates a third matrix including first rows to nth rows, A third matrix including the nth column may be generated (S240).
- the transmitted message received by the transmission message receiving unit 210 is 010101110
- the message length transmitted by the transmission message length measuring unit 220 is measured as 9
- the comparison message transmitted by the transmission message length comparing unit 230 is transmitted. Since the length of the message is not 1, the message is transmitted to the third matrix generator 240 and the third matrix generator 240 generates a as a third matrix.
- the selector 250 selects a row having the highest density among the n rows of the generated third matrix. That is, the selector 250 selects the row having the highest density, and if there are several rows having the same maximum density, the selector 250 selects the highest density row that appears first. In the embodiments of the present invention, the selector 250 selects a row that includes the largest number '1' among the n rows. For example, when the third matrix is the matrix of Equation 5, the selector 250 selects the second row including the most '1' (S250).
- the selector 250 selects the earliest row when there are two or more rows including '1' relatively largely among the n rows. That is, the selector 250 selects the first row based on the first row. For example, when the density of the second row and the fifth row is equally high, the selector 250 may select the second row.
- the selector 250 selects a row including '1' in the k-th column (cloumn). That is, in the decoding apparatus 200 that receives the information of inserting the input data into the k-th row from the encoding apparatus 100, the selector 250 has n rows in the third matrix, each of which has one '1'. When it contains only, select the row that contains '1' in the k th column (cloumn).
- the selector 250 has the highest density among the n columns of the generated third matrix. You can choose high heat. In this case, the selector 250 differs only in selecting a high-density column instead of selecting a high-density row instead of selecting a high-density row in the case where the third matrix is generated based on the row. Since the details are the same, detailed descriptions will be omitted.
- the partial decryption message data generator 260 generates partial decrypted message data based on the row or column selected by the selector 250 (S260).
- the partial decoded message data generation unit 260 when the row selected by the selector 250 is the d-th row, the partial decoded message data generation unit 260 first sequentially (d-1) zeros and one next. Generates data composed of '1' in this order as partial decoded message data.
- the partial decoded message data generating unit 260 when the column selected by the selector 250 is the d-th column, the partial decoded message data generating unit 260 first consists of (d-1) '0's and then one' 1 'in sequence. Generate data as partial decrypted message data.
- Equation 4 when Equation 4 is the third matrix generated by the third matrix generator 240, the selector 250 selects the third row, and the partial decoded message generator 260 performs the partial decoded message. Is '001', and when Equation 5 is the third matrix generated by the third matrix generator 240, the selector 250 selects the second row, and the partial decryption message generator 260 partially selects the second row.
- the decoding message is '01'
- Equation 6 is the third matrix generated by the third matrix generator 240
- the selector 250 selects the first row and the partial decryption message generator 260.
- the partial decryption message in becomes '1'.
- the partial decryption message data generation unit 260 generates the partial decryption message data having zero length as the length of the message block.
- the decoder 270 decodes the partial decoded message data generated by the partial decoded message data generator 260 (S270).
- the decoder 270 generates a decrypted message by concatenating the current partially decoded message S260 sequentially next to the previous partially decoded message using the generated partial decoded message data. (S270).
- the decoder 270 may decode the generated partial decoded message data by sequentially combining the generated partial decoded message data in order with the previously generated decoded message data.
- the selector 250 selects the third row, and the partial decoded message generator 260 performs the partial decoded message. Is '001', and when the decoding message is '001' in the decoder 270 and the third matrix generated by the third matrix generator 240 in Equation 5 is selected, the selector 250 is the second.
- the partial decryption message is' 01 'in the partial decryption message generator 260, and the decryption message' 00101 is connected by the current partial decryption message '01' to the previous decryption message '001' in the decryption unit 270. 'Get.
- the selector 250 selects the first row, and in the partial decoded message generator 260, the partial decoded message is' 1 ', and the decryption message' 001011 'is obtained by concatenating the current partial decryption message' 1 'to the previous decryption message' 00101 '.
- the decryption unit 270 determines whether the length of the message decrypted by the decryption unit 270 is greater than or equal to the length of the original message data. If the length of the message decrypted by the decryption unit 270 is greater than or equal to the length of the original message data, the message is decrypted by the length of the original message data, and exceeds the length of the original message data of the entire decoded message The decoded bits are finally excluded from the decoded message.
- the decoding unit 270 outputs '00111010' except the last bit '1' as the final decrypted message when the decoding message is '001110101'. .
- the decoding apparatus 200 using the low density inverse code selects the most complex, highest density row or column in a matrix, and constructs original message data or original message data using the order of the selected rows or the columns.
- the partial decrypted message data can be restored.
- Very simple calculations and rules can be used to decode the message, and even if noise is included, there is no significant effect on the highest density of the row or column containing the message data. Can also be significantly reduced.
- the decoding is performed by a codeword formed by matrices using a message block of a constant size, the error rate can be significantly reduced.
- the message block is composed of '0', only one bit is received and thus easily decoded, thereby reducing the computational burden.
- encoding apparatus 110 message block generating unit
- decoding apparatus 210 transmission message receiving unit
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
The present invention relates to an encoding/decoding method and an apparatus using complementary sparse inverse code. The encoding method includes the steps of: creating a message block generated as a successive message block created from n number of bits of fixed length by deleting the data of the bits up to the bit in which the first "1" appears from a previous message block formed from n number of bits of fixed length and n number of bits of fixed length from the original message data, and continuously filling the successive data of the previous message block from the original message data up to the number of bits of the deleted data, or filling with 1 bits in the case where there are not enough successive data bits; creating a first matrix of size n x n in which the k-th row (column) has each bit of a message block created from n number of bits arranged into n number of columns (rows), and the remaining rows are composed so that only one "1" exists in each row and each column wherein the first column (row) in which a "1" exists is excluded from the k-th row (column); obtaining an inverse matrix of the first matrix and generating a second matrix by applying a modulo 2 modulus operation to the inverse matrix; and generating code words by using the message block or the second matrix in order to transmit the code words.
Description
본 발명은 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화/복호화 방법 및 장치에 관한 것으로서, 원본 메시지 데이터로부터 고정된 길이의 메시지 블록으로부터 행렬을 생성하고, 생성한 행렬의 역행렬과 전송된 데이터의 밀도(density)를 이용하여 메시지를 쉽게 부호화하고 복호화 할 수 있는 보완적인 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for encoding / decoding using complementary low density inverse code, wherein a matrix is generated from a message block of fixed length from original message data, and the inverse of the generated matrix and the transmitted data The present invention relates to a method and apparatus for encoding / decoding using a complementary low density inverse code that can easily encode and decode a message using a density of.
일반적으로, 많은 통신 장치나 기록 재생 장치에 있어서는 입력 정보 계열을 부호화한 부호 계열을 전송함으로써 디지털 전송 정보의 비트 오류율(Bit Error Rate, BER)의 저감이 도모되고 있다.In general, in many communication apparatuses and recording / reproducing apparatuses, bit error rates (BERs) of digital transmission information are reduced by transmitting a code sequence encoding an input information sequence.
최근, 예를 들어 이동 통신이나 우주 통신 등의 통신 분야, 및 지상파 또는 위성 디지털 방송이라는 방송 분야의 연구가 활발하게 진행되고 있으며, 그에 수반하여 오류 정정 부호화 및 복호의 효율화를 목적으로 한 부호 이론에 관한 연구도 꾸준하게 행하여지고 있다.In recent years, for example, researches in communication fields such as mobile communication and space communication, and broadcasting fields such as terrestrial or satellite digital broadcasting have been actively conducted. Accordingly, code theory aimed at improving error correction encoding and decoding has been actively conducted. Research on this is being done steadily.
부호 성능의 이론적 한계의 예로 섀넌(C.E.Shannon)의 통신로 부호화 정리에 의해 부여되는 섀넌 한계가 알려져 있다. 이에 부호 이론에 관한 연구의 목적 중 하나는 이 섀넌 한계에 가까운 성능을 나타내는 부호를 개발하는 것이다. As an example of the theoretical limit of code performance, the Shannon limit imposed by C.E.Shannon's communication coding theorem is known. One of the aims of the study of sign theory is to develop codes that show performance close to this Shannon limit.
그러나 기존에 개발된 부호화 방법들은 복호화(decoding) 및 부호화(encoding) 단계에서 효율적이지 못하고, 계산이 복잡해지는 문제점이 발생한다.However, conventionally developed coding methods are not efficient in the decoding and encoding stages, and a problem arises in that the calculation becomes complicated.
이에 부호화 단계에서부터 계산 과정을 현저하게 줄일 수 있으며 복호화 단계에서도 데이터의 복호 성능이 현저하게 개선된 코딩 방법의 필요성이 크게 대두되고 있다.Accordingly, the need for a coding method in which the decoding process can be significantly reduced from the encoding stage and the data decoding performance is significantly improved in the decoding stage is also increasing.
본 발명은 이와 같은 문제점을 해결하기 위한 것으로, 본 발명은 원본 메시지 데이터로부터 고정된 길이로 이루어진 메시지 블록을 생성하고, 메시지 블록을 이용하여 행렬을 생성하고 생성된 행렬의 역행렬(inverse matrix)을 구한 후, 2를 법(modulus 2)으로 하는 연산을 적용한 역행렬을 사용하여 부호화함으로써, 부호화에 사용되는 계산을 현저하게 감소시킬 수 있는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법을 제공하는 데에 그 목적이 있다.The present invention solves this problem. The present invention generates a message block having a fixed length from original message data, generates a matrix using the message block, and obtains an inverse matrix of the generated matrix. Then, by encoding using an inverse matrix to which the operation of modulus 2 is applied, an encoding method using a complementary low density inverse code capable of significantly reducing the calculation used for encoding is provided. Its purpose is to.
또한, 본 발명은 상기 부호화 방법에 의하여 부호화된 데이터를 행렬로 생성하고, 생성된 행렬에서 각 행(row) 또는 열(column)의 밀도(density)를 기반으로 데이터를 복호화 함으로써, 복잡한 계산 과정이 생략되어 복호 성능을 현저하게 개선시킬 수 있는 저밀도 역 코드(sparse inverse code)를 이용한 보완적인 복호화 방법을 제공하는 데에 그 목적이 있다.In addition, the present invention provides a complex calculation process by generating data encoded by the encoding method into a matrix and decoding the data based on the density of each row or column in the generated matrix. It is an object of the present invention to provide a complementary decoding method using a sparse inverse code that can be omitted to significantly improve decoding performance.
나아가, 본 발명은 상기 보완적인 부호화/복호화 방법을 실행하기 위한 저밀도 역 코드를 이용한 보완적인 부호화/복호화 장치를 제공하는 데에 그 목적이 있다.Furthermore, an object of the present invention is to provide a complementary encoding / decoding apparatus using a low density inverse code for executing the complementary encoding / decoding method.
본 발명의 실시예들에 따른 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법에 따르면, 원본 메시지 데이터로부터 고정된 길이인 n 개 비트로 이루어진 메시지 블록으로 생성하는 단계; 상기 n 개 비트로 이루어진 메시지 블록의 각 비트를 n 개의 열(column)로 정렬한 제k 행(row) 또는 상기 n 개 비트로 이루어진 메시지 블록의 각 비트를 n 개의 행(row)으로 정렬한 제k 열(column)로 배열되고, 상기 메시지 블록이 상기 제k 행에 배열되는 경우에는 상기 제k 행과, 상기 제k 행에서 최초로 '1'이 존재하는 열을 제외한 각 행과 각 열에서 하나의 '1'만이 존재하도록 구성된 나머지 행들로 이루어진 n x n 크기의 제1 행렬을 생성하고, 상기 메시지 블록이 상기 제k 열에 배열되는 경우에는 상기 제k 열과, 상기 제k 열에서 최초로 '1'이 존재하는 행을 제외한 각 열과 각 행에서 하나의 '1'만이 존재하도록 구성된 나머지 열들로 이루어진 n x n 크기의 제1 행렬을 생성하는 단계; 상기 제1 행렬의 역행렬을 구하고, 상기 역행렬에 대하여 2를 법으로 하는 법 연산(modulus operation)을 적용하여 제2 행렬을 생성하는 단계; 및 상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하여 전송하는 단계를 포함한다. According to an encoding method using a complementary low density inverse code according to embodiments of the present invention, the method includes: generating a message block having n bits of fixed length from original message data; A k-th row in which each bit of the message block of n bits is arranged in n columns or a k-th column in which each bit of the message block of n bits is arranged in n rows (column), and when the message block is arranged in the k-th row, each row except for the k-th row, a column in which '1' first appears in the k-th row, and one 'in each column Generate a first matrix of size nxn consisting of remaining rows configured to have only 1 ', and in the case where the message block is arranged in the kth column, the kth column and the first' 1 'in the kth column Generating a first matrix having an nxn size consisting of each column except the other columns and the remaining columns configured to have only one '1' in each row; Obtaining an inverse matrix of the first matrix and generating a second matrix by applying a modulus operation of 2 to the inverse matrix; And generating and transmitting a codeword using the second matrix.
본 발명의 실시예들에 있어서, 상기 메시지 블록을 생성하는 단계에서, 고정된 길이인 n 개 비트로 이루어진 이전 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터를 삭제시키고, 상기 원본 메시지 데이터로부터 상기 삭제된 데이터의 비트 수 만큼을 이전 메시지 블록의 후속 데이터로 채워서 고정된 길이인 n 개 비트로 이루어진 후속 메시지 블록을 생성한다. 여기서, 상기 원본 메시지 데이터로부터 이전 메시지 블록의 후속 데이터로부터 상기 삭제된 데이터의 비트 수 만큼을 전부 채우지 못하는 경우, 상기 채우지 못하는 만큼의 데이터를 비트 '1'로 채워서 상기 후속 메시지 블록을 고정된 길이인 n 개 비트를 갖도록 생성한다. In an embodiment of the present invention, in the generating of the message block, data up to the first bit of the '1' in the previous message block having a fixed length of n bits is deleted, and the original message data is deleted from the original message data. The number of bits of deleted data is filled with the subsequent data of the previous message block to produce a subsequent message block of n bits of fixed length. In this case, when the number of bits of the erased data is not completely filled from the subsequent data of the previous message block from the original message data, the subsequent message block may be filled with bit '1' and the fixed length of the subsequent message block may be of a fixed length. Generate to have n bits.
본 발명의 다른 실시예들에 있어서, 상기 메시지 블록을 생성하는 단계에서, 상기 고정된 길이인 n 개 비트로 이루어진 이전 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터를 삭제시키고, 상기 삭제된 데이터의 비트 수 만큼을 비트 '1'로 채워서 고정된 길이인 n 개 비트로 이루어진 후속 메시지 블록을 생성한다. In another embodiment of the present invention, in the generating of the message block, the data up to the first bit of the '1' in the previous message block having n bits of fixed length is deleted, and the deleted data is deleted. Fill a bit '1' by the number of bits in to create a subsequent message block of n bits of fixed length.
본 발명의 실시예들에 있어서, 상기 원본 메시지 데이터가 복수개의 부분 원본 메시지 데이터로 분할하는 경우, 상기 각 부분 원본 메시지 데이터에 대하여 제2항 내지 제4항의 방법 중 적어도 하나의 방법을 이용하여 고정된 길이인 n 개 비트로 이루어진 후속 메시지 블록을 생성한다. In the embodiments of the present invention, when the original message data is divided into a plurality of partial original message data, the partial original message data is fixed using at least one of the methods of claims 2 to 4. Create a subsequent message block of n bits of length.
또한, 상기 원본 메시지 데이터가 복수개의 부분 원본 메시지 데이터로 분할하는 경우, 이웃하는 부분 원본 메시지 데이터로부터 이전 메시지 블록에서 삭제된 데이터의 비트 수 만큼을 이전 메시지 블록의 후속 데이터로 채워서 고정된 길이인 n 개 비트로 이루어진 후속 메시지 블록을 생성하고, 이웃하는 부분 원본 메시지 데이터로부터 이전 메시지 블록에서 삭제된 데이터의 비트 수 만큼을 전부 채우지 못하는 경우, 상기 채우지 못하는 만큼의 데이터를 비트 '1'로 채워서 고정된 길이인 n 개 비트로 이루어진 후속 메시지 블록을 생성한다. In addition, when the original message data is divided into a plurality of partial original message data, n is a fixed length by filling the number of bits of data deleted in the previous message block from neighboring partial original message data with subsequent data of the previous message block. If a subsequent message block consisting of three bits is generated, and all the number of bits of data deleted in the previous message block are not filled from neighboring partial original message data, the non-filled data is filled with bit '1' to have a fixed length. Generates a subsequent message block of n bits.
한편, 상기 원본 메시지 데이터의 길이와 상기 메시지 블록의 길이가 서로 동일할 수 있다. Meanwhile, the length of the original message data and the length of the message block may be the same.
본 발명의 실시예들에 있어서, 상기 메시지 블록이 모두 '0'으로만 이루어진 경우에는 '0' 또는 '1'로 이루어진 하나의 비트를 상기 코드워드로 생성한다. In the embodiments of the present invention, when the message blocks are all composed of only '0', one bit consisting of '0' or '1' is generated as the codeword.
본 발명의 다른 실시예들에 있어서, 상기 제1 행렬을 생성하는 단계에서 상기 메시지 블록에서 최초로 '1'이 나오는 비트가 제k 번째 비트인 경우에, 상기 메시지 블록을 1≤t≤k를 만족하는 제t 행 또는 제t 열에 배열한다. In another embodiment of the present invention, when the first occurrence of '1' in the message block in the step of generating the first matrix is the kth bit, the message block satisfies 1 ≦ t ≦ k. To the tth row or tth column.
본 발명의 실시예들에 있어서, 상기 제1 행렬을 생성하는 단계에서, 상기 메시지 블록에서 최초로 '1'이 나오는 비트가 제k 번째 비트이면 상기 메시지 블록을 1≤t≤k를 만족하는 제t 행 또는 제t 열에 배열하고, 상기 제t 행 또는 제t 열을 제외한 나머지 행들 또는 열들에 존재하는 '1'은 상기 제t 행 또는 제t 열에서 최초로 '1'이 나타나는 열 또는 행을 제외하고, 행의 순서 또는 열의 순서대로 각 행과 각 열에 '1'이 하나씩 존재하도록 제1 행렬을 생성한다. In an embodiment of the present invention, in the step of generating the first matrix, if the first bit of the '1' in the message block is the kth bit, the message block satisfies 1 ≦ t ≦ k Arranged in a row or t-th column, and '1' present in the remaining rows or columns except for the t-th or t-th column except for a column or row in which '1' first appears in the t-th or t-th column , The first matrix is generated such that '1' is present in each row and each column in the order of the rows or the columns.
여기서, 최초로 '1'이 나오는 비트가 제k 번째인 상기 메시지 블록이 제1 행렬의 제t 행에 배열되는 경우, 제k 행의 제t 열을 '1', 제k 열을 '0'으로 배열하고 상기 제k 행의 나머지 열은 상기 메시지 블록과 동일하게 구성하며, 제1 행에서 제(k-1) 행까지는 (k-1) × 1 크기의 영행렬, (k-1) × (k-1) 크기의 단위행렬 및 (k-1) × (n-k) 크기의 영행렬을 순서대로 배열하고, 제(k-1) 행에서 제n 행까지는 (n-k) × k 크기의 영행렬과 (n-k) × (n-k) 크기의 단위행렬을 순서대로 배열하여 제2 행렬을 생성한다. 또한, 최초로 '1'이 나오는 비트가 제k 번째인 상기 메시지 블록이 제1 행렬의 제t 열에 배열되는 경우, 제k 열의 제t 행을 '1', 제k 행을 '0'으로 배열하고 상기 제k 열의 나머지 행은 상기 메시지 블록과 동일하게 구성하며, 제1 열에서 제(k-1) 열까지는 (k-1) × 1 크기의 영행렬, (k-1) × (k-1) 크기의 단위행렬 및 (k-1) × (n-k) 크기의 영행렬을 순서대로 배열하고, 제(k-1) 열에서 제n 열까지는 (n-k) × k 크기의 영행렬과 (n-k) × (n-k) 크기의 단위행렬을 순서대로 배열하여 제2 행렬을 생성한다. Here, when the k-th block of the first bit of the '1' is arranged in the t th row of the first matrix, the t th column of the k th row is '1' and the k th column is '0' And the remaining columns of the kth row are configured in the same manner as the message block, and from the first row to the (k-1) th row, a zero matrix of size (k-1) × 1, (k-1) × ( k-1) a unit matrix of size and (k-1) × (nk) zero matrix are arranged in order, and from (k-1) to nth rows, the matrix of size (nk) × k A second matrix is generated by arranging the unit matrix of size (nk) × (nk) in order. In addition, when the message block having the k-th bit where '1' first appears is arranged in the t th column of the first matrix, the t th row of the k th column is arranged as '1' and the k th row is '0' The remaining rows of the k-th column are configured in the same manner as the message block, and from the first column to the (k-1) th column, a zero matrix of size (k-1) × 1, (k-1) × (k-1 ) The unit matrix of size and (k-1) × (nk) zero matrix are arranged in order, and from the (k-1) th column to the nth column, (nk) × k matrix and (nk) A second matrix is generated by arranging unit matrices of size × (nk) in order.
본 발명의 실시예들에 있어서, 상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하는 단계에서 상기 메시지 블록이 n개 비트로 이루어진 경우, 상기 코드워드의 길이는 n2 또는 1이 될 수 있다. 구체적으로, 한 개 이상의 비트 1을 가진 상기 메시지 블록이 n개 비트들로 이루어진 경우, 상기 코드워드의 길이는 n2 이고, 모두 비트 0으로 이루어진 상기 메시지 블록이 n개 비트들로 이루어진 경우, 상기 코드워드의 길이는 1이다. In embodiments of the present invention, when generating the codeword (codeword) using the second matrix, when the message block is composed of n bits, the length of the codeword may be n 2 or 1. . Specifically, when the message block having one or more bits 1 is composed of n bits, the length of the codeword is n 2 , and the message block having all bits 0 is composed of n bits. The length of the codeword is one.
또한, 상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하는 단계에서 상기 생성된 제2 행렬의 제1 행 내지 제n 행을 순서대로 연결하는 방식으로 n2 길이의 코드워드를 생성한다. 이와 달리, 상기 생성된 제2 행렬의 제1 열 내지 제n 열을 순서대로 연결하는 방식으로 n2 길이의 코드워드를 생성할 수 있다. In addition, in generating a codeword using the second matrix, a codeword having a length of n 2 is generated by sequentially connecting the first to nth rows of the generated second matrix. Alternatively, n 2 length codewords may be generated by sequentially connecting the first to nth columns of the generated second matrix.
본 발명의 실시예들에 따른 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법에 따르면, 전송 메시지를 수신하는 단계; 상기 수신한 전송 메시지의 길이를 측정하는 단계; 상기 측정한 전송 메시지의 길이를 비교하는 단계; 상기 비교 결과, 상기 측정된 전송 메시지의 길이가 n2 인 경우, 상기 전송 메시지를 n 블록으로 구분하고, 상기 n 블록의 각 블록을 순서대로 행 또는 열로 배열하여 n × n 크기의 제3 행렬을 생성하는 단계; 상기 n 블록의 각 블록을 순서대로 행으로 배열하여 상기 제3 행렬을 생성한 경우에는 상기 생성된 제3 행렬의 n 개의 행(row)들 중에서 상대적으로 가장 고밀도(densest)인 행을 선택하고, 상기 n 블록의 각 블록을 순서대로 열로 배열하여 상기 제3 행렬을 생성한 경우에는 상기 생성된 제3 행렬의 n 개의 열(column)들 중에서 상대적으로 가장 고밀도(densest)인 열을 선택하는 단계; 상기 선택한 행 또는 열을 근거로 부분 복호화 메시지 데이터를 생성하는 단계; 및 상기 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 단계를 포함한다. According to the decoding method using the complementary low density inverse code (sparse inverse code) according to an embodiment of the present invention, receiving a transmission message; Measuring a length of the received transmission message; Comparing the measured lengths of the transmission messages; As a result of the comparison, when the measured transmission message length is n 2 , the transmission message is divided into n blocks, and each block of the n blocks is arranged in rows or columns in order to form a third matrix having an size of n × n. Generating; In the case where the third matrix is generated by arranging each block of the n blocks in order, a row having the highest density among the n rows of the generated third matrix is selected. Selecting a column having the highest density among the n columns of the generated third matrix when the third matrix is generated by arranging each block of the n blocks in order; Generating partial decoded message data based on the selected row or column; And decoding using the generated partial decrypted message data.
본 발명의 실시예들에 있어서, 상기 비교 결과, 상기 측정된 전송 메시지의 길이가 '1' 인 경우, 메시지 블록의 길이인 n 개의 '0'으로 구성된 부분 복호화 메시지 데이터로 생성한다. In embodiments of the present invention, as a result of the comparison, when the measured length of the transmission message is '1', the data is generated as partial decoded message data composed of n '0' lengths of message blocks.
본 발명의 실시예들에 있어서, 상기 생성된 제3 행렬의 n 개의 행(row)들 또는 n 개의 열(column)들 중에서 상대적으로 가장 고밀도(densest)인 행 또는 열을 선택하는 단계는 상기 n 개의 행들 또는 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 행 또는 열을 선택한다. In embodiments of the present invention, selecting a row or column having a relatively highest density among the n rows or n columns of the generated third matrix may be determined by the n. Select the row or column that contains the most relatively '1' among the rows or columns.
여기서, 상기 n 개의 행들 또는 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 행 또는 열이 둘 이상인 경우, 제1 행 또는 제1 열을 기준으로 최초의 행 또는 열을 선택한다. Here, when there are two or more rows or columns including '1' among the n rows or columns, the first row or column is selected based on the first row or the first column.
본 발명의 실시예들에 있어서, 상기 제3 행렬을 생성하는 단계 중 상기 n 블록의 각 블록을 순서대로 행으로 배열하여 상기 제3 행렬을 생성한 경우에서 상기 n 개의 행들 각각이 하나의 '1'만을 포함하고 있으면, 제k 열에 '1'을 포함하고 있는 행을 선택한다.In embodiments of the present invention, in the case of generating the third matrix by arranging each block of the n blocks in a row in the order of generating the third matrix, each of the n rows is one '1'. If it contains only ',' the row containing '1' in the kth column is selected.
본 발명의 다른 실시예들에 있어서, 상기 제3 행렬을 생성하는 단계 중 상기 n 블록의 각 블록을 순서대로 열로 배열하여 상기 제3 행렬을 생한 경우에서 상기 n 개의 열들 각각이 하나의 '1'만을 포함하고 있으면, 제k 행에 '1'을 포함하고 있는 열을 선택한다. In another embodiment of the present invention, in the case of generating the third matrix by arranging each block of the n blocks in sequence in the step of generating the third matrix, each of the n columns is one '1'. If it contains only, select the column that contains '1' in the kth row.
본 발명의 실시예들에 있어서, 상기 선택한 행 또는 열을 근거로 부분 복호화 메시지 데이터를 생성하는 단계에서 상기 선택한 행 또는 열이 d 번째 행 또는 열인 경우, 먼적 연속적인 (d-1)개의 '0'과 다음으로 '1'이 순서대로 구성된 데이터를 부분 복호화 메시지 데이터로 생성할 수 있다. In embodiments of the present invention, if the selected row or column is a d-th row or column in the step of generating partial decoded message data based on the selected row or column, distant consecutive (d-1) '0's. Data consisting of '1' and '1' in order may be generated as partial decrypted message data.
본 발명의 실시예들에 있어서, 상기 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 단계에서 상기 생성된 부분 복호화 메시지 데이터를 이전에 생성된 복호화 메시지 데이터에 순서대로 연속 결합한다. In embodiments of the present invention, in the decoding using the generated partial decoded message data, the generated partial decoded message data is sequentially combined with previously generated decoded message data.
본 발명의 실시예들에 있어서, 상기 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 단계에서 상기 복호화된 메시지의 길이가 상기 원본 메시지 데이터의 길이보다 크거나 같은 경우, 상기 원본 메시지 데이터의 길이만큼의 메시지를 복호화한다. In embodiments of the present invention, if the length of the decoded message is greater than or equal to the length of the original message data in the decoding using the generated partial decoded message data, the length of the original message data is equal to. Decrypt the message.
본 발명의 실시예들에 따른 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치는 원본 메시지 데이터로부터 고정된 길이인 n 개 비트로 이루어진 메시지 블록으로 생성하는 메시지 블록 생성부; 상기 n 개 비트로 이루어진 메시지 블록의 각 비트를 n 개의 열로 정렬한 제k 행(row) 또는 상기 n 개 비트로 이루어진 메시지 블록의 각 비트를 n 개의 행으로 정렬한 제k 열(column)로 배열되고, 상기 메시지 블록이 상기 제k 행에 배열되는 경우에는 상기 제k 행과, 상기 제k 행에서 최초로 '1'이 존재하는 열을 제외한 각 행과 각 열에서 하나의 '1'만이 존재하도록 구성된 나머지 행들로 이루어진 n x n 크기의 제1 행렬을 생성하고, 상기 메시지 블록이 상기 제k 열에 배열되는 경우에는 상기 제k 열과, 상기 제k 열에서 최초로 '1'이 존재하는 행을 제외한 각 열과 각 행에서 하나의 '1'만이 존재하도록 구성된 나머지 열들로 이루어진 n x n 크기의 제1 행렬을 생성하는 제1 행렬 생성부; 상기 제1 행렬의 역행렬을 구하고, 상기 역행렬에 대하여 2를 법으로 하는 법 연산(modulus operation)을 적용하여 제2 행렬을 생성하는 제2 행렬 생성부; 상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하는 코드워드 생성부; 및 상기 생성한 코드워드를 외부로 전송하는 전송부를 포함한다. An encoding apparatus using a complementary low density inverse code according to embodiments of the present invention includes a message block generation unit generating a message block of n bits having a fixed length from original message data; A k-th row in which each bit of the message block of n bits is arranged in n columns, or a k-th column in which each bit of the message block of n bits is arranged in n rows, If the message block is arranged in the k-th row, the k-th row, and each row except for the column where '1' first appears in the k-th row, and the remaining one configured to have only one '1' in each column When a first matrix of size nxn is formed, and the message block is arranged in the k-th column, the k-th column, each column except for the first '1' in the k-th column, and each row A first matrix generator configured to generate a first matrix having an nxn size consisting of remaining columns configured to have only one '1'; A second matrix generator which obtains an inverse of the first matrix and generates a second matrix by applying a modulus operation of 2 to the inverse matrix; A codeword generator for generating a codeword using the second matrix; And a transmission unit for transmitting the generated codeword to the outside.
본 발명의 실시예들에 따른 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치는 전송 메시지를 수신하는 전송 메시지 수신부; 상기 수신한 전송 메시지의 길이를 측정하는 전송 메시지 길이 측정부; 상기 측정한 전송 메시지의 길이를 비교하는 전송 메시지 길이 비교부; 상기 비교 결과, 상기 측정된 전송 메시지의 길이가 n2 인 경우, 상기 전송 메시지를 n 블록으로 구분하고, 상기 n 블록의 각 블록을 순서대로 행 또는 열로 배열하여 n × n 크기의 제3 행렬을 생성하는 제3 행렬 생성부; 상기 n 블록의 각 블록을 순서대로 행으로 배열하여 상기 제3 행렬을 생성한 경우에는 상기 생성된 제3 행렬의 n 개의 행(row)들 중에서 상대적으로 가장 고밀도(densest)인 행을 선택하고, 상기 n 블록의 각 블록을 순서대로 열로 배열하여 상기 제3 행렬을 생성한 경우에는 상기 생성된 제3 행렬의 n 개의 열(column)들 중에서 상대적으로 가장 고밀도(densest)인 열을 선택하는 선택부; 상기 선택한 행 또는 열을 근거로 부분 복호화 메시지 데이터를 생성하는 부분 복호화 메시지 데이터 생성부; 및 상기 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 복호화부를 포함한다. Decoding apparatus using a complementary low density inverse code (sparse inverse code) according to an embodiment of the present invention includes a transmission message receiving unit for receiving a transmission message; A transmission message length measuring unit measuring a length of the received transmission message; A transmission message length comparison unit comparing the measured transmission message lengths; As a result of the comparison, when the measured transmission message length is n 2 , the transmission message is divided into n blocks, and each block of the n blocks is arranged in rows or columns in order to form a third matrix having an size of n × n. A third matrix generator for generating; In the case where the third matrix is generated by arranging each block of the n blocks in order, a row having the highest density among the n rows of the generated third matrix is selected. A selection unit for selecting a column having the highest density among the n columns of the generated third matrix when the third matrix is generated by arranging each block of the n blocks in order; ; A partial decoded message data generation unit configured to generate partial decoded message data based on the selected row or column; And a decoder which decodes the generated partial decoded message data.
이상에서 설명한 바와 같은 블록크기가 지정된 보완적인 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치에 따르면 다음과 같은 효과가 있다.According to the encoding / decoding method and apparatus using the complementary low density inverse code with the block size as described above, the following effects are obtained.
첫째, 원본 메시지 데이터를 일정한 크기의 적어도 하나의 메시지 블록들로 절단하고, 최초 메시지 블록 이후의 후속 메시지 블록은 이전 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터를 삭제시키고, 상기 삭제된 데이터의 비트 수 만큼을 상기 원본 메시지에서 이전 메시지 블록의 후속 데이터 비트들로 채워서 후속 메시지 블록을 생성하거나, 상기 메시지 블록에서 상기 삭제된 데이터의 비트 수 만큼을 상기 원본 메시지로부터 이전 메시지 블록의 후속 데이터 비트들로 채우지 못하는 경우, 상기 채우지 못하는 만큼의 데이터를 '1'로 채워서 후속 메시지 블록을 생성하거나, 또는 상기 메시지 블록에서 상기 삭제된 데이터의 비트 수 만큼을 '1'로 채워서 후속 메시지 블록을 생성함으로써, 복호화 성능의 효과와 관련하여 오류를 현저하게 감소시킬 수 있다.First, the original message data is truncated into at least one message blocks of a certain size, and subsequent message blocks after the first message block delete data up to the first bit with a '1' in the previous message block, and the deleted data. Fills the subsequent message block by the number of bits of the original message with the subsequent data bits of the previous message block, or the subsequent data bits of the previous message block by the number of bits of the deleted data in the message block. If not filled, the next message block is filled with '1' to generate the subsequent message block, or the subsequent message block is filled with '1' by the number of bits of the deleted data in the message block. Significantly reduce errors with respect to the effectiveness of decoding performance. Cattle can be.
둘째, n개의 비트로 구성된 입력 데이터(메시지 블록)를 특정 k행 또는 특정 k열에 배치하고 상기 제k 행에 배열되는 경우에는 상기 제k 행과, 상기 제k 행에서 최초로 '1'이 존재하는 열을 제외한 각 행과 각 열에서 하나의 '1'만이 존재하도록 구성된 나머지 행들로 이루어진 n x n 크기의 저밀도 제1 행렬을 생성하고, 상기 메시지 블록이 상기 제k 열에 배열되는 경우에는 상기 제k 열과, 상기 제k 열에서 최초로 '1'이 존재하는 행을 제외한 각 열과 각 행에서 하나의 '1'만이 존재하도록 구성된 나머지 열들로 이루어진 n x n 크기의 저밀도인 제1 행렬을 생성함으로써 부호화와 복호화에서 계산 부담을 줄일 수 있다. Second, when the input data (message block) consisting of n bits is arranged in a specific k row or a specific k column and arranged in the kth row, the kth row and the column where '1' is present in the kth row for the first time Generating a low density first matrix of size nxn consisting of each row except the other rows and the remaining rows configured to have only one '1' in each column, and wherein the k-th column and the Encoding and decoding are avoided by generating a low density first matrix of size nxn consisting of each column except for the first '1' in the kth column and the remaining columns configured to have only one '1' in each row. Can be reduced.
셋째, 입력 데이터를 특정 행 또는 특정 열에 배치하고, 단위행렬(identity matrix)과 영행렬(zero matrix)을 배치하여 입력 데이터를 포함한 n x n 크기의 저밀도인 제1 행렬을 생성함으로써, 부호화와 복호화에서 추후 계산 과정이 줄어든다. Third, the input data is arranged in a specific row or a specific column, and an identity matrix and a zero matrix are arranged to generate a low density first matrix having an nxn size including the input data. The calculation process is reduced.
넷째, 제2 행렬에서 나타나는 규칙들은 복호화의 원천 기술을 제공하고 복호화의 계산 부담을 줄이며, 복호화의 효과를 향상한다.Fourth, the rules appearing in the second matrix provide a source description of decoding, reduce the computational burden of decoding, and improve the effectiveness of decoding.
다섯째, 입력 데이터, 단위행렬 그리고 영행렬로 구성된 제1 행렬의 역행렬 규칙 또는 제2 행렬의 규칙을 활용함으로써, 역행렬에 대한 계산 부담이 줄어들고 복호화의 기술과 성능의 효과에 가장 중요한 역할을 한다. Fifth, by utilizing the inverse matrix rule of the first matrix or the second matrix of input data, unit matrix, and zero matrix, the computational burden on the inverse matrix is reduced and plays an important role in the effect of the decoding technique and performance.
여섯째, 부호화 단계에서 행렬의 행 또는 열의 순서대로 연접하여 생성된 코드워드를 수신하여 간단한 부호화와 복호화에서 복호 기능을 향상시킨다. Sixth, in the encoding step, the codewords generated by concatenating the rows or columns of the matrix are received to improve the decoding function in simple encoding and decoding.
일곱째, 데이터가 포함된 행 또는 열이 가장 높은 밀도(density)를 가지는 것을 이용하여 데이터와 관련된 행 또는 열을 선택함으로써, 복호화 과정을 매우 간단하고 매우 효율적으로 할 수 있다. Seventh, by selecting the row or column associated with the data by using the row or column having the highest density, the decoding process can be made very simple and very efficient.
[도 1]은 본 발명의 실시예들에 따른 보완적인 저밀도 역 코드를 이용한 부호화 장치를 설명하기 위한 블록도1 is a block diagram illustrating an encoding apparatus using a complementary low density inverse code according to embodiments of the present invention.
[도 2]는 본 발명의 실시예들에 따른 보완적인 저밀도 역 코드를 이용한 부호화 방법을 설명하기 위한 순서도2 is a flowchart illustrating a coding method using a complementary low density inverse code according to embodiments of the present invention.
[도 3]은 본 발명의 실시예들에 따른 보완적인 저밀도 역 코드를 이용한 복호화 장치를 설명하기 위한 블록도3 is a block diagram illustrating a decoding apparatus using a complementary low density inverse code according to embodiments of the present invention.
[도 4]는 본 발명의 실시예들에 따른 보완적인 저밀도 역 코드를 이용한 복호화 방법을 설명하기 위한 순서도4 is a flowchart illustrating a decoding method using a complementary low density inverse code according to embodiments of the present invention.
첨부한 도면을 참조하여 본 발명의 실시예들에 따른 보완적인 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치에 대하여 상세히 설명한다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나, 개략적인 구성을 이해하기 위하여 실제보다 축소하여 도시한 것이다.Hereinafter, a method and apparatus for encoding / decoding using a complementary low density inverse code according to embodiments of the present invention will be described in detail. As the inventive concept allows for various changes and numerous modifications, particular embodiments will be illustrated in the drawings and described in detail in the text. However, this is not intended to limit the present invention to a specific disclosed form, it should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention. In describing the drawings, similar reference numerals are used for similar elements. In the accompanying drawings, the dimensions of the structure is shown to be larger than the actual size for clarity of the invention, or to reduce the actual size to understand the schematic configuration.
또한, 제1 및 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 한편, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. In addition, terms such as first and second 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 the second component, and similarly, the second component may also be referred to as the 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. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art and shall not be construed in ideal or excessively formal meanings unless expressly defined in this application. Do not.
도 1은 본 발명의 실시예들에 따른 보완적인 저밀도 역 코드를 이용한 부호화 장치를 설명하기 위한 블록도이고, 도 2는 본 발명의 실시예들에 따른 보완적인 저밀도 역 코드를 이용한 부호화 방법을 설명하기 위한 순서도이다. 1 is a block diagram illustrating an encoding apparatus using a complementary low density inverse code according to embodiments of the present invention, and FIG. 2 illustrates an encoding method using a complementary low density inverse code according to embodiments of the present invention. It is a flowchart for doing so.
도 1 및 도 2를 참조하면, 본 발명의 실시예들에 따른 보완적인 저밀도 역 코드를 이용한 부호화 장치(100)는 메시지 블록 생성부(110), 제1 행렬 생성부(120), 제2 행렬 생성부(130), 코드워드(codeword) 생성부(140) 및 전송부(150)를 포함한다. 1 and 2, the encoding apparatus 100 using the complementary low density inverse code according to the embodiments of the present invention may include a message block generator 110, a first matrix generator 120, and a second matrix. It includes a generator 130, a codeword generator 140 and the transmitter 150.
메시지 블록 생성부(110)는 원본 메시지 데이터로부터 고정된 길이인 n 개 비트로 이루어진 메시지 블록을 생성한다(S110). 예를 들어, 사용자의 설정 또는 초기화 설정값 등에 따라 메시지 블록의 길이가 특정된다. The message block generation unit 110 generates a message block consisting of n bits having a fixed length from the original message data (S110). For example, the length of the message block is specified according to a user setting or initialization setting value.
만일 원본 메시지 데이터가 100 비트이고, 메시지 블록의 길이가 30 비트로 고정되는 경우에, 메시지 블록은 30 비트이고 잔여 비트가 70 비트로 설정될 수도 있고, 각각 30 비트의 길이를 가지는 3개의 메시지 블록과 10 비트의 길이를 가지는 잔여 비트로 나누어질 수도 있다. 또한, 각각 30 비트의 길이를 가지는 3개의 메시지 블록과 나머지 10비트에 더미 비트가 채워져서 30 비트의 길이를 가지는 메시지 블록으로 구성될 수도 있다. If the original message data is 100 bits and the length of the message block is fixed to 30 bits, the message block may be set to 30 bits and the remaining bits set to 70 bits, with three message blocks and 10 each having a length of 30 bits. It may be divided into residual bits having a length of bits. In addition, three message blocks each having a length of 30 bits and a dummy bit may be filled in the remaining 10 bits, and thus may be composed of a message block having a length of 30 bits.
본 발명의 실시예들에 있어서, 메시지 블록 생성부(110)는 사전에 설정된 길이만큼 원본 메시지 데이터로부터 추출하고, 해당 메시지 블록을 제1 행렬 생성부(120)로 전달한다. 이어서, 메시지 블록 생성부(110)는 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터를 삭제하고, 상기 삭제된 비트 수 만큼을 상기 원본 메시지에서 메시지 블록의 후속 데이터 비트들로 채운다. 여기서 메시지 블록에서 남아있는 데이터가 먼저오고 다음으로 보완되는 비트들 순으로 메시지 블록을 구성할 수 있다. In the embodiments of the present invention, the message block generator 110 extracts the original message data by a predetermined length and transfers the corresponding message block to the first matrix generator 120. Subsequently, the message block generation unit 110 deletes the data up to the first '1' bit in the message block, and fills the deleted data with the subsequent data bits of the message block in the original message. Here, the message block may be configured in order of the data remaining in the message block first, followed by the complementary bits.
또한 상기 메시지 블록에서 상기 삭제된 데이터의 비트 수 만큼을 상기 원본 메시지에서 메시지 블록의 후속 데이터 비트들로 채우지 못하는 경우, 상기 채우지 못하는 만큼의 데이터를 '1'로 채워서 후속 메시지 블록을 구성한다. Further, when the number of bits of the deleted data in the message block cannot be filled with subsequent data bits of the message block in the original message, the subsequent message block is configured by filling the unfilled data with '1'.
또는 메시지 블록에서 삭제된 데이터 비트 수만큼 원본 메시지 데이터를 이용하지 않고 비트 '1'을 사용하여 메시지 블록을 생성할 수도 있다. 따라서 후속 메시지 블록은 절단된 만큼의 비트 수가 원본 메시지 데이터로부터 메시지 블록의 후속 데이터에 이어서 보충되거나 또는 비트 '1'만을 사용하여 보충함으로써, 항상 사전에 설정된 길이를 갖도록 한다. Alternatively, the message block may be generated using bit '1' without using the original message data as many as the data bits deleted from the message block. The subsequent message block thus ensures that the number of bits as truncated is always followed by subsequent data in the message block from the original message data, or by using only bit '1' to always have a preset length.
예를 들어, 원본 메시지 데이터의 길이가 9인 '001011010'에 대하여 메시지 블록의 길이를 5로 설정하면, 제1 메시지 블록은 '00101'이고, 상기 제1 메시지 블록을 이용하여 제1 행렬이 생성된다. For example, if the length of the message block is set to 5 for '001011010' having a length of original message data of 9, the first message block is '00101', and a first matrix is generated using the first message block. do.
상기 제1 메시지 블록의 후속 메시지 블록인 제2 메시지 블록은 제1 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터인 '001'을 삭제한 후 제1 메시지 블록에서 남아 있는 두 개의 비트들 '01'과 원본 메시지 데이터에서 제1 메시지 블록의 후속 데이터 '1010'에서 삭제된 3개의 비트 수 만큼 '1010'에서 순차적으로 취하여 '101'을 얻을 수 있으며 상기 제1 메시지 블록에서 남아있던 두 개의 비트들 '01'과 순차적으로 결합하면 설정된 길이가 5인 제2 메시지 블록 '01101'을 얻는다. The second message block, which is a subsequent message block of the first message block, has two bits remaining in the first message block after deleting '001', which is data up to the first '1' bit in the first message block. '101' can be obtained by sequentially taking the number of bits' 1010 'deleted from 01' and subsequent data '1010' of the first message block in the original message data, and the two bits remaining in the first message block are obtained. When sequentially combined with the '01', a second message block '01101' having a set length of 5 is obtained.
상기 제2 메시지 블록의 후속 메시지 블록인 제3 메시지 블록은 제2 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터인 '01'을 삭제하면 제2 메시지 블록에서 남아 있는 세 개의 비트들 '101'에 두 개의 비트를 추가하여야 한다. 이 때, 상기 제2 메시지 블록에서 삭제된 비트 수 만큼 채우기 위해 원본 메시지 데이터에 남아있는 '0'을 제2 메시지 블록의 남아있는 '101'과 순차적으로 결합하여 '1010'을 얻을 수 있다. 그러나 설정된 메시지 블록의 길이인 5를 충족하지 못하므로 비트 '1'을 마지막에 추가하여 제3 메시지 블록 '10101'을 얻을 수 있다. 다시 말해서, 제3 메시지 블록에서 '마지막 한 개의 비트 '1'을 보충하지 않으면 원본 메시지 데이터의 잔여 데이터(비트)가 없어서, 원본 메시지 데이터로부터는 후속 메시지 블록을 채워줄 수 없다. 이와 같은 경우, 후속 메시지 블록에는 '1'로 채워진다. The third message block, which is a subsequent message block of the second message block, deletes three bits '101' in the second message block when the first message block '01' is deleted from the second message block. Two bits must be added to '. In this case, '1010' may be obtained by sequentially combining '0' remaining in the original message data with '101' remaining in the second message block to fill as many bits as deleted bits in the second message block. However, the third message block '10101' may be obtained by adding bit '1' to the end since the set message block does not satisfy 5, which is the length of the set message block. In other words, if the 'last one bit' 1 'is not replenished in the third message block, there is no remaining data (bit) of the original message data, so that subsequent message blocks cannot be filled from the original message data. In such a case, subsequent message blocks are filled with '1'.
제4 메시지 블록은 제3 메시지 블록에서 최초로 '1'이 나타나는 비트까지 즉 '1'을 삭제하고 제3 메시지 블록에서 남아있는 비트들 '0101'과 원본 메시지 데이터에서 제3 블록 메시지의 후속 데이터가 더 이상 없기 때문에 설정된 블록 메시지 길이를 충족하지 못하는 비트 수 만큼 '1'로서 채워간다. 따라서 제4 메시지 블록은 '01011'이 된다. The fourth message block deletes '1' until the first bit in which the '1' appears in the third message block, and bits '0101' remaining in the third message block and subsequent data of the third block message in the original message data. Since there are no more bits, the number of bits that do not satisfy the set block message length is filled as '1'. Therefore, the fourth message block becomes '01011'.
제5 메시지 블록은 제4 메시지 블록에서 최초로 '1'이 나타나는 비트까지 즉 '01'을 삭제한 후에 남아있는 있는 비트들 '011'과 추가 두 개의 비트 '11'을 순차적으로 결합하여 제5 메시지 블록은 '01111'이 된다. The fifth message block sequentially combines the bits '011' remaining after deleting '01' to the first bit where '1' appears in the fourth message block, and the additional two bits '11'. The block becomes '01111'.
그러므로 총 길이가 9인 원본 메시지 데이터 '001011010'에 대하여 제 1 메시지 블록으로부터 제5 메시지 블록이 생성된다. 상기 메시지 블록들이 생성되는 것을 정리하면 아래 표 1과 같다. Therefore, a fifth message block is generated from the first message block for the original message data '001011010' having a total length of nine. In summary, the message blocks are generated as shown in Table 1 below.
다른 한편으로 원본 메시지 데이터를 이용하지 않고 비트 '1'을 사용하여 삭제된 비트들을 보완할 수 있다. On the other hand, the bit '1' can be used to compensate for the deleted bits without using the original message data.
구체적으로, 원본 메시지 블록의 길이를 메시지 블록의 길이로 설정하면 상기 원본 메시지 데이터 '001011010'에 대하여 제1 메시지 블록은 상기 원본 메시지 데이터와 동일하고 제2 메시지 블록은 제1 메시지 블록에서 최초로 '1'이 나타나는 비트까지 즉 '001'을 삭제한 후 제1 메시지 블록에서 남아있는 비트들 '011010'과 삭제된 비트만큼 '1'로 보완하면 제2 메시지 블록은 '011010111'이고, 제3 메시지 블록은 제2 메시지 블록에서 최초로 '1'이 나타나는 비트까지 즉 '01'을 삭제하고 제2 메시지 블록에서 남아있는 비트들 '1010111'과 삭제된 비트만큼 비트 '1'로 보완하여 제3 메시지 블록은 '101011111'이며, 제4 메시지 블록은 제3 메시지 블록에서 최초로 '1'이 나타나는 비트까지 즉 '1'을 삭제하고 제3 메시지 블록에서 남아있는 비트들 '01011111'와 삭제된 비트만큼 비트 '1'을 보완하여 제4 메시지 블록으로 '010111111'을 얻는다. 제5 메시지 블록은 제4 메시지 블록에서 최초로 '1'이 나타나는 비트까지 '01'을 삭제하고 제4 메시지 블록에서 남아있는 비트들 '0111111'와 삭제된 비트 수 만큼 비트 '1'을 보완하여 제5 메시지 블록 '01111111'을 얻는다. Specifically, when the length of the original message block is set to the length of the message block, for the original message data '001011010', the first message block is the same as the original message data, and the second message block is the first '1' in the first message block. After deleting '001' until the bit where 'appears, and complementing the remaining bits' 011010' and '1' by the deleted bit in the first message block, the second message block is' 011010111 'and the third message block. Deletes the bit until the first '1' appears in the second message block, that is, '01', and complements the remaining bits '1010111' and the deleted bit with the bit '1' in the second message block, '101011111', and the fourth message block deletes '1' until the first bit where '1' appears in the third message block, and bits '1 011111' and bits deleted by the remaining bits in the third message block. 'To get' 010111111 'as the fourth message block. The fifth message block deletes '01' until the first bit in which the '1' appears in the fourth message block, and complements the bit '1' by the remaining bits '0111111' and the number of deleted bits in the fourth message block. 5 Get message block '01111111'.
그러므로 상기 원본 메시지 데이터의 길이를 메시지 블록의 길이로 설정한 경우에는 제1 메시지 블록으로부터 제5 메시지 블록까지 생성된다. 상기 메시지 블록들이 생성되는 것을 정리하면 아래 표 2와 같다. Therefore, when the length of the original message data is set to the length of the message block, the first message block is generated from the fifth message block. In summary, the message blocks are generated as shown in Table 2 below.
또한, 원본 메시지 데이터가 복수개의 부분 원본 메시지 데이터로 분할하는 경우, 각 부분 원본 메시지 데이터에 대하여 메시지 블록을 생성하는 다양한 방법을 동시에 또는 각각 적용할 수 있다. 예를 들어, 원본 메시지 데이터보다 작은 비트 수를 갖는 부분 원본 메시지 데이터들 각각에 대해서 동일한 방법을 사용하여 메시지 블록을 생성할 수도 있고, 부분 원본 메시지 데이터들을 구성하는 비트의 종류에 따라 각각의 부분 원본 메시지 데이터들마다 다른 방법을 사용하여 메시지 블록을 생성할 수도 있다. In addition, when the original message data is divided into a plurality of partial original message data, various methods of generating a message block for each partial original message data may be applied simultaneously or separately. For example, a message block may be generated using the same method for each of the partial original message data having a smaller number of bits than the original message data, and each partial original may be generated according to the type of bits constituting the partial original message data. Different message data may be used to generate a message block using a different method.
나아가, 상기 원본 메시지 데이터가 복수개의 부분 원본 메시지 데이터로 분할하는 경우, 이웃하는 부분 원본 메시지 데이터로부터 이전 메시지 블록에서 삭제된 데이터의 비트 수 만큼을 이전 메시지 블록의 후속 데이터로 채워서 고정된 길이인 n 개 비트로 이루어진 후속 메시지 블록을 생성한다. 그리고 이웃하는 부분 원본 메시지 데이터로부터 이전 메시지 블록에서 삭제된 데이터의 비트 수 만큼을 전부 채우지 못하는 경우, 상기 채우지 못하는 만큼의 데이터를 비트 '1'로 채워서 고정된 길이인 n 개 비트로 이루어진 후속 메시지 블록을 생성할 수 있다. 즉, 복수의 부분 원본 메시지 데이터들이 서로 연동하여 메시지 블록을 생성하는데 사용될 수 있다. Further, when the original message data is divided into a plurality of partial original message data, n is a fixed length n by filling the number of bits of data deleted in the previous message block from neighboring partial original message data with subsequent data of the previous message block. Create a subsequent message block of bits. And when the number of bits of data deleted in the previous message block is not completely filled from neighboring partial original message data, the subsequent message block of n bits having a fixed length is filled by filling the non-filled data with bit '1'. Can be generated. That is, the plurality of partial original message data may be used to interwork with each other to generate a message block.
한편, 원본 메시지 데이터의 길이와 상기 메시지 블록의 길이가 서로 동일할 수도 있다. 즉, 원본 메시지 데이터를 그대로 메시지 블록으로 사용하는 경우이다. 이 경우, 메시지 블록을 생성할 때에는 이전 메시지 블록에서 삭제된 비트에 대해서 후속 메시지 블록에 보충할 원본 메시지 데이터가 없으므로, 비트 '1'로 후속 메시지 블록을 채울 수 있다. Meanwhile, the length of the original message data and the length of the message block may be the same. In other words, the original message data is used as the message block. In this case, when generating the message block, since there is no original message data to supplement the subsequent message block with respect to the bit deleted from the previous message block, the subsequent message block can be filled with bit '1'.
한편, 메시지 블록 생성부(110)는 메시지 블록이 모두 '0'으로만 이루어진 경우에는 메시지 블록 생성부(110)는 '0' 또는 '1'로 이루어진 하나의 비트를 코드워드 생성부(140)에서 코드워드로 생성한다. On the other hand, if the message block generator 110 is all made up of only '0', the message block generator 110 is a codeword generator 140 for one bit consisting of '0' or '1' Generate as codeword in.
본 발명의 실시예들에 있어서, 제1 행렬 생성부(120)는 메시지 블록 생성부(110)로부터 전달받은 n 개 비트로 이루어진 메시지 블록을 각 비트를 n 개의 열로 정렬한 제k 행(row)과, 상기 제 k행에서 최초로 '1'이 존재하는 열을 제외한 각 행과 각 열에서 하나의 '1'만이 존재하도록 구성된 나머지 행들로 이루어진 n x n 크기의 제1 행렬을 생성한다(S120). In embodiments of the present invention, the first matrix generator 120 may include a k-th row in which a message block composed of n bits received from the message block generator 110 is arranged in n columns of each bit; In operation S120, a first matrix having an nxn size is formed of each row except for a column in which '1' is present in the k-th row, and the remaining rows configured to have only one '1' in each column (S120).
또한, 제1 행렬 생성부(120)는 상기 메시지 블록이 상기 제k 행에 배열되는 경우에는 상기 제1 행렬은 상기 제k 행을 제외한 나머지 행들에 존재하는 '1'은 상기 제k 행에서 최초로 '1'이 나타나는 열을 제외하고, 행의 순서 또는 열의 순서대로 각 행과 각 열에 '1'이 하나씩 존재하도록 제1 행렬을 구성할 수 있다. In addition, when the message block is arranged in the kth row, the first matrix generator 120 determines that '1' exists in the remaining rows except for the kth row. Except for the column in which '1' appears, the first matrix may be configured such that one '1' exists in each row and each column in the order of the rows or the columns.
본 발명의 다른 실시예들에 있어서, 제1 행렬 생성부(120)는 메시지 블록 생성부(110)로부터 전달받은 n 개 비트로 이루어진 메시지 블록을 각 비트를 n 개의 행(row)으로 정렬한 제k 열(column)과, 상기 제k 열과, 상기 제k 열에서 최초로 '1'이 존재하는 행을 제외한 각 열과 각 행에서 하나의 '1'만이 존재하도록 구성된 나머지 열들로 이루어진 n x n 크기의 제1 행렬을 생성할 수 있다.In other embodiments of the present invention, the first matrix generator 120 k-th arranges each bit into n rows of a message block composed of n bits received from the message block generator 110. A first matrix of size nxn consisting of a column, the k-th column, each column except for the first '1' in the k-th column, and the remaining columns configured to have only one '1' in each row. Can be generated.
나아가, 제1 행렬 생성부(120)는 상기 메시지 블록이 상기 제k 열에 배열되는 경우에는 상기 제1 행렬은 상기 제k 열을 제외한 나머지 열들에 존재하는 '1'은 상기 제k 열에서 최초로 '1'이 나타나는 행을 제외하고, 열의 순서 또는 행의 순서대로 각 열과 각 행에 '1'이 하나씩 존재하도록 제1 행렬을 구성할 수 있다. Further, when the message block is arranged in the kth column, the first matrix generator 120 may indicate that the first matrix is present in the remaining columns except for the kth column, where '1' is the first in the kth column. Except for the rows where 1 'appears, the first matrix may be configured such that there is one' 1 'in each column and each row in the order of the columns or the rows.
즉, 제1 행렬 생성부(120)는 메시지 블록 생성부(110)로부터 전달받은 메시지 블록을 특정 행(row)에 배열할 수 있고, 특정 열(column)로 배열할 수도 있다. That is, the first matrix generator 120 may arrange the message blocks received from the message block generator 110 in a specific row or in a specific column.
예를 들어, 메시지 블록 생성부(110)에서 제1 메시지 블록으로 '00101'을 제1 행렬 생성부(120)로 전달할 경우, 제1 행렬 생성부(120)는 상기 제1 메시지 블록을 제1 행으로 구성하고, 나머지 행을 상기 제1 행을 제외한 나머지 행들인 제2 행 내지 제n 행에는 상기 제1 행에서 최초로 '1'이 나타나는 열을 제외하고, 행의 순서 또는 열의 순서대로 각 행과 각 열에 '1'이 하나씩 존재하도록 제1 행렬을 구성할 수 있다. For example, when the message block generator 110 transmits '00101' to the first message block from the message block generator 110 to the first matrix generator 120, the first matrix generator 120 transmits the first message block to the first message block. Each row in the order of the columns or the order of the columns, except for the column in which the first '1' appears in the first row in the second row to the nth row, which are remaining rows except the first row. And the first matrix can be configured such that '1' is present in each column.
즉, 제1 행렬 생성부(120)는 제1 메시지 블록 '00101'에 대해서는 아래의 수학식 1과 같이 구성된 제1 행렬을 생성한다. That is, the first matrix generator 120 generates a first matrix configured as in Equation 1 below with respect to the first message block '00101'.
이어서, 제1 행렬 생성부(120)는 제2 메시지 블록이 '01101'이고, 제3 메시지 블록이 '10101'인 경우에는 각각 아래의 수학식 2, 수학식 3과 같은 제1 행렬을 생성한다. Subsequently, when the second message block is '01101' and the third message block is '10101', the first matrix generator 120 generates a first matrix as shown in Equations 2 and 3 below. .
제2 행렬 생성부(130)는 제1 행렬 생성부(120)에서 생성한 제1 행렬의 역행렬을 구한 후에 2를 법으로 하는 법 연산(modulus operation)을 적용하여 제2 행렬을 생성한다(S130). 이 때, 제1 행렬 생성부(120)에서 a 개의 제1 행렬을 생성한 경우, 제2 행렬 생성부(130)도 a 개의 제2 행렬을 생성한다. After obtaining the inverse of the first matrix generated by the first matrix generator 120, the second matrix generator 130 generates a second matrix by applying a modulus operation of 2 (S130). ). In this case, when the first matrix generator 120 generates a first matrix, the second matrix generator 130 also generates a second matrix.
예를 들어, 제1 행렬 생성부(120)가 수학식 1 내지 수학식 3의 제1 행렬들을 생성한 경우에, 제2 행렬 생성부(130)는 수학식 1 내지 수학식 3의 제1 행렬들에 대응하는 수학식 4 내지 수학식 6의 제2 행렬들을 생성한다. For example, when the first matrix generator 120 generates the first matrices of Equations 1 to 3, the second matrix generator 130 is the first matrix of Equations 1 to 3 Second matrices of Equations 4 to 6 are generated.
본 발명의 실시예들에 있어서, 제1 행렬 생성부(120)는 상기 메시지 블록에서 최초로 '1'이 나오는 비트가 제k 비트인 경우에, 상기 메시지 블록을 1≤t≤k를 만족하는 제t 행 또는 제t 열에 배열할 수 있다. 이 때, 제1 행렬 생성부(120)는 상기 제t 행 또는 제t 열을 제외한 나머지 행들 또는 열들에 존재하는 '1'은 상기 제t 행 또는 제t 열에서 최초로 '1'이 나타나는 열 또는 행을 제외하고, 행의 순서 또는 열의 순서대로 각 행과 각 열에 '1'이 하나씩 존재하도록 제1 행렬을 생성할 수 도 있다. In an embodiment of the present invention, the first matrix generator 120 may satisfy the message block with 1 ≦ t ≦ k when the bit in which the first '1' appears in the message block is the kth bit. Can be arranged in t rows or t columns. In this case, the first matrix generator 120 may include '1' existing in the remaining rows or columns except for the t th row or the t th column, or a column in which '1' appears first in the t th row or the t th column. Except for rows, the first matrix may be generated such that one '1' exists in each row and each column in the order of the rows or the columns.
이 경우, 최초로 '1'이 나오는 비트가 제k 번째인 상기 메시지 블록이 제1 행렬의 제t 행에 배열되는 경우, 제2 행렬 생성부(130)는 제k 행의 제t 열을 '1', 제k 열을 '0'으로 배열하고 상기 제k 행의 나머지 열은 상기 메시지 블록과 동일하게 구성하며, 제1 행에서 제(k-1) 행까지는 (k-1) × 1 크기의 영행렬, (k-1) × (k-1) 크기의 단위행렬 및 (k-1) × (n-k) 크기의 영행렬을 순서대로 배열하고, 제(k-1) 행에서 제n 행까지는 (n-k) × k 크기의 영행렬과 (n-k) × (n-k) 크기의 단위행렬을 순서대로 배열하여 제2 행렬을 생성할 수 있다. In this case, when the message block having the k-th bit where '1' first appears is arranged in the t-th row of the first matrix, the second matrix generator 130 selects the t-th column of the k-th row by '1'. ', Arranging the k th column to' 0 'and the remaining columns of the k th row are configured in the same manner as the message block, and the first to the (k-1) th rows are (k-1) × 1 in size. The zero matrix, the unit matrix of size (k-1) × (k-1) and the zero matrix of size (k-1) × (nk) are arranged in order, and the (k-1) to nth rows A second matrix may be generated by arranging a (nk) × k sized matrix and a (nk) × (nk) sized matrix in order.
마찬가지로, 최초로 '1'이 나오는 비트가 제k 번째인 상기 메시지 블록이 제1 행렬의 제t 열에 배열되는 경우, 제2 행렬 생성부(130)는 제k 열의 제t 행을 '1', 제k 행을 '0'으로 배열하고 상기 제k 열의 나머지 행은 상기 메시지 블록과 동일하게 구성하며, 제1 열에서 제(k-1) 열까지는 (k-1) × 1 크기의 영행렬, (k-1) × (k-1) 크기의 단위행렬 및 (k-1) × (n-k) 크기의 영행렬을 순서대로 배열하고, 제(k-1) 열에서 제n 열까지는 (n-k) × k 크기의 영행렬과 (n-k) × (n-k) 크기의 단위행렬을 순서대로 배열하여 제2 행렬을 생성할 수 있다. Similarly, when the message block having the k-th bit where '1' first appears is arranged in the t-th column of the first matrix, the second matrix generator 130 sets the t-th row of the k-th column to '1', the first. The k rows are arranged as '0', and the remaining rows of the k th column are configured in the same manner as the message block, and from the first column to the (k-1) column, a zero matrix of size (k-1) × 1, ( Unit matrix of size k-1) × (k-1) and zero matrix of size (k-1) × (nk) are arranged in order, and (nk) × A second matrix may be generated by arranging a k matrix having a size k and a unit matrix having a size of (nk) × (nk) in order.
이와 같이, 제1 행렬을 구성하는 방법에 따라, 제2 행렬을 역행렬과 2를 법으로 하는 법연산을 거치지 않고, 간단한 규칙에 의하여 제2 행렬을 생성할 수도 있다. As described above, according to the method of constructing the first matrix, the second matrix can be generated by a simple rule without performing the inverse matrix and the law operation of 2 as the law.
본 발명의 실시예들에 있어서, 코드워드(codeword) 생성부(140)는 제2 행렬 생성부(130)가 생성한 n × n 크기의 제2 행렬을 이용하여 n2 길이의 코드워드(codeword)를 생성한다(S140). 본 발명의 실시예들에 있어서, 코드워드 생성부(140)는 상기 생성된 제2 행렬의 제1 행 내지 제n 행을 하나의 라인에 순서대로 배열하는 방식으로 n2 길이의 코드워드를 생성할 수 있다. 예를 들어, 코드워드 생성부(140)는 수학식 4의 제2 행렬에 대해서 '0100000100100010001000001'의 코드워드를 생성할 수 있으며, 수학식 5의 제2 행렬에 대해서 '0100010101001000001000001'의 코드워드를 생성할 수 있다. In the embodiments of the present invention, the codeword generator 140 uses a second matrix of size n × n generated by the second matrix generator 130 to generate a codeword of length n 2. ) Is generated (S140). In embodiments of the present invention, the codeword generator 140 generates a codeword of length n 2 by arranging the first to nth rows of the generated second matrix in order on one line. can do. For example, the codeword generator 140 may generate a codeword of '0100000100100010001000001' for the second matrix of Equation 4, and generate a codeword of '0100010101001000001000001' for the second matrix of Equation 5. can do.
메시지 블록이 상기 제k 열에 배열되는 경우에는 코드워드 생성부(140)는 상기 생성된 제2 행렬의 제1 열 내지 제n 열을 순서대로 연결하는 방식으로 n2 길이의 코드워드를 생성한다. When the message block is arranged in the k-th column, the codeword generator 140 generates a codeword having a length of n 2 by connecting the first to nth columns of the generated second matrix in order.
한편, 코드워드 생성부(140)는 메시지 블록 생성부(110)로부터 모두 0으로 구성된 메시지 블록이 코드워드 생성부에 입력되는 경우에는 코드워드 생성부(140)는 '0' 또는 '1'이 코드워드가 되어 하나의 비트를 전송부(150)에 전달한다. Meanwhile, when the message block composed of all zeros is input from the message block generator 110 to the codeword generator, the codeword generator 140 may have a value of '0' or '1'. It becomes a codeword and transmits one bit to the transmitter 150.
한편, 코드워드 생성부(140)는 메시지 블록 생성부(110)로부터 하나의 비트만이 전달된 경우에는, 코드워드 생성부(140)는 상기 전달받은 하나의 비트를 전송부(150)에 전달한다. Meanwhile, when only one bit is transmitted from the message block generator 110, the codeword generator 140 transmits the received one bit to the transmitter 150. do.
따라서 코드워드 생성부(140)가 생성한 코드워드는 그 길이가 n2 또는 1 이 될 것이다. Therefore, the codeword generated by the codeword generator 140 may have a length of n 2 or 1.
전송부(150)는 코드워드 생성부(140)에서 생성된 코드워드를 외부로 전송한다(S150).The transmitter 150 transmits the codeword generated by the codeword generator 140 to the outside (S150).
이와 같이, 저밀도 역 코드를 이용한 부호화 장치(100)는 원본 메시지 데이터를 일정한 크기의 단수 또는 복수개의 블록들로 절단하고, 최초 메시지 블록 이후의 후속 메시지 블록은 최초 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터를 삭제하고, 상기 삭제된 데이터의 비트 수 만큼을 상기 원본 메시지 데이터에서 메시지 블록의 후속 데이터의 비트들로 채우고, 상기 메시지 블록에서 상기 삭제된 데이터의 비트 수 만큼을 채우지 못하는 경우, 상기 채우지 못하는 만큼의 데이터를 '1'로 채워서 후속 메시지 블록을 구성하거나, 또는 상기 삭제된 데이터의 비트 수 만큼을 비트 '1'로 보완함으로써 후속 메시지 블록을 생성한다. 이와 같은 방법으로 인하여 부호화의 계산 부담과 복호화 성능이 매우 향상되어 오류를 현저하게 감소시킬 수 있다. As such, the encoding apparatus 100 using the low density inverse code cuts the original message data into singular or plural blocks of a predetermined size, and subsequent message blocks after the first message block have a '1' first in the first message block. Deleting data up to bits, filling the number of bits of the deleted data with bits of subsequent data of the message block in the original message data, and failing to fill the number of bits of the deleted data in the message block, Subsequent message blocks are generated by filling the unfilled data with '1' or by supplementing the bit number of the deleted data with bits '1'. In this way, the computational burden and decoding performance of encoding are greatly improved, and errors can be significantly reduced.
도 3은 본 발명의 실시예들에 따른 보완적인 저밀도 역 코드를 이용한 복호화 장치를 설명하기 위한 블록도이고, 도 4는 본 발명의 실시예들에 따른 보완적인 저밀도 역 코드를 이용한 복호화 방법을 설명하기 위한 순서도이다. 3 is a block diagram illustrating a decoding apparatus using a complementary low density inverse code according to embodiments of the present invention, and FIG. 4 illustrates a decoding method using a complementary low density inverse code according to embodiments of the present invention. It is a flowchart for doing so.
도 3 및 도 4를 참조하면, 본 발명의 실시예들에 따른 보완적인 저밀도 역 코드를 이용한 복호화 장치(200)는 전송 메시지 수신부(210), 전송 메시지 길이 측정부(220), 전송 메시지 길이 비교부(230), 제3 행렬 생성부(240), 선택부(250), 부분 복호화 메시지 데이터 생성부(260), 복호화부(270)를 포함한다. 3 and 4, the decoding apparatus 200 using the complementary low density inverse code according to the embodiments of the present invention includes a transmission message receiver 210, a transmission message length measurement unit 220, and a transmission message length comparison. The unit 230 includes a third matrix generator 240, a selector 250, a partial decoded message data generator 260, and a decoder 270.
본 발명의 실시예들에 있어서, 저밀도 역 코드를 이용한 복호화 장치(200)는 부호화 장치(100)로부터 일정 정보를 전달받아 복호화 과정을 수행한다. 이 때, 본 복호화 장치(200)는 입력 데이터가 삽입된 행 또는 열에 관한 정보, 원본 메시지 데이터의 길이에 대한 정보, 메시지 블록의 길이, 기복호화된 메시지의 길이(특정 시점까지 총 복호화된(decoded) 메시지의 길이)에 대한 정보, 전송 메시지 길이에 대한 정보들 중 적어도 하나의 정보를 사전에 또는 부호화 장치(100)로부터 전달받아 획득할 수 있다. In the embodiments of the present invention, the decoding apparatus 200 using the low density inverse code receives predetermined information from the encoding apparatus 100 and performs a decoding process. In this case, the decoding apparatus 200 may include information on a row or column into which input data is inserted, information on a length of original message data, a length of a message block, and a length of a decoded message (to be decoded to a specific point in time). Information about the length of the message) and information about the length of the transmission message may be acquired in advance or received from the encoding apparatus 100.
전송 메시지 수신부(210)는 외부로부터 전송된 전송 메시지를 수신한다. 이 때, 전송 메시지 수신부(210)는 특정 길이를 갖는 전송 메시지를 수신할 수 있다. 예를 들어, 전송 메시지 수신부(210)는 n2 비트 또는 1 비트의 길이를 갖는 전송 메시지를 수신할 수 있다(S210). The transmission message receiving unit 210 receives a transmission message transmitted from the outside. At this time, the transmission message receiving unit 210 may receive a transmission message having a specific length. For example, the transmission message receiving unit 210 may receive a transmission message having a length of n 2 bits or 1 bit (S210).
전송 메시지 길이 측정부(220)는 전송 메시지 수신부(210)로부터 전달한 전송 메시지의 길이를 측정하고(S220), 상기 측정된 전송 메시지의 길이를 바탕으로 전송된 메시지는 제3 행렬 생성부(230) 또는 부분 복호화 메시지 데이터 생성부(250)로 전달된다. The transmission message length measuring unit 220 measures the length of the transmission message transmitted from the transmission message receiving unit 210 (S220), and the transmitted message is based on the measured length of the transmission message in the third matrix generator 230. Alternatively, the partial decoded message data generator 250 is transmitted.
한편, 복호화 장치(200)가 전송 메시지 길이를 측정하지 않고도 전송 메시지의 길이에 대한 정보를 이미 알고 있는 경우에는 전송 메시지 길이 측정부(220)를 거치지 않고 전송 메시지 길이 비교부(230)는 전송 메시지가 하나의 비트인지 여부를 판단하고(S230), 상기 비교결과. 전송된 메시지는 제3 행렬 생성부(240) 또는 부분 복호화 메시지 데이터 생성부(260)로 전달될 수 있다. On the other hand, if the decoding apparatus 200 already knows the information on the length of the transmission message without measuring the transmission message length, the transmission message length comparison unit 230 does not go through the transmission message length measurement unit 220, the transmission message It is determined whether is one bit (S230), and the comparison result. The transmitted message may be delivered to the third matrix generator 240 or the partial decoded message data generator 260.
전송 메시지 길이 비교부(230)는 전송 메시지의 길이가 1 비트인지 여부를 판단한다(S230). The transmission message length comparison unit 230 determines whether the length of the transmission message is 1 bit (S230).
상기 전송 메시지 길이 비교부(230)에서 비교결과, 전송 메시지의 길이가 1이면 부분 복호화 메시지 데이터 생성부(260)로 전달한다. 이 경우, 부분 복호화 메시지 데이터 생성부(260)는 메시지 블록의 길이가 n인 경우, 메시지 블록의 길이(크기)만큼 '0'으로 이루어진 부분 복호화 메시지를 생성한다. 예를 들어, 메시지 블록의 길이가 5 비트인 경우에, 부분 복호화 메시지 데이터 생성부(260)는 '00000'를 부분 복호화 메시지 데이터로 생성한다. As a result of the comparison in the transmission message length comparison unit 230, if the transmission message length is 1, the transmission message length comparison unit 230 transmits the partial message data generation unit 260. In this case, when the length of the message block is n, the partial decryption message data generation unit 260 generates a partial decryption message composed of '0' by the length (size) of the message block. For example, when the length of the message block is 5 bits, the partial decoded message data generator 260 generates '00000' as partial decoded message data.
한편, 전송 메시지 길이 비교부(230)에서 전송 메시지의 길이가 n2 인 경우에는 전송된 메시지는 제3 행렬 생성부(240)로 전달된다.On the other hand, if the length of the transmission message in the transmission message length comparison unit 230 is n 2 , the transmitted message is transferred to the third matrix generator 240.
제3 행렬 생성부(240)는 상기 전송 메시지를 n 블록으로 구분하고, 상기 n 블록의 각 블록을 순서대로 행 또는 열로 배열하여 n × n 크기의 제3 행렬을 생성한다. 이 때, 제3 행렬 생성부(240)는 제3 행렬을 n2 길이의 전송 메시지를 n 블록으로 구분한 후, 제1 행 내지 제n 행으로 구성된 제3 행렬을 생성하거나, 제1 열 내지 제n 열로 구성된 제3 행렬을 생성할 수도 있다(S240). The third matrix generator 240 divides the transmission message into n blocks, and arranges each block of the n blocks in rows or columns in order to generate a third matrix having an size of n × n. At this time, the third matrix generator 240 divides the third matrix into n blocks of n 2 length transmission messages, and then generates a third matrix including first rows to nth rows, A third matrix including the nth column may be generated (S240).
예를 들면 전송메시지 수신부(210)에서 수신된 전송된 메시지가 010101110이면 전송메시지 길이 측정부(220)에서 전송된 메시지 길이가 9로 측정되고, 전송메시지 길이 비교부(230)에서 비교결과 전송된 메시지의 길이가 1이 아니므로 제3 행렬 생성부(240)로 전달되어 제3 행렬 생성부(240)에서는 을 제3 행렬로 생성한다.For example, if the transmitted message received by the transmission message receiving unit 210 is 010101110, the message length transmitted by the transmission message length measuring unit 220 is measured as 9, and the comparison message transmitted by the transmission message length comparing unit 230 is transmitted. Since the length of the message is not 1, the message is transmitted to the third matrix generator 240 and the third matrix generator 240 generates a as a third matrix.
선택부(250)는 상기 생성된 제3 행렬의 n 개의 행(row)들 중에서 상대적으로 가장 밀도가 높은 행을 선택한다. 즉, 선택부(250)는 최고밀도인 행을 선택하며, 만일 최고밀도가 동일한 여러 행들이 있는 경우에는 가장 먼저 나타나는 최고밀도 행을 선택한다. 본 발명의 실시예들에 있어서, 선택부(250)는 상기 n 개의 행들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 행을 선택한다. 예를 들어, 제3 행렬이 수학식 5의 행렬인 경우, 선택부(250)는 '1'을 가장 많이 포함하고 있는 제2 행을 선택하는 것이다(S250). The selector 250 selects a row having the highest density among the n rows of the generated third matrix. That is, the selector 250 selects the row having the highest density, and if there are several rows having the same maximum density, the selector 250 selects the highest density row that appears first. In the embodiments of the present invention, the selector 250 selects a row that includes the largest number '1' among the n rows. For example, when the third matrix is the matrix of Equation 5, the selector 250 selects the second row including the most '1' (S250).
또한, 선택부(250)는 상기 n 개의 행들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 행이 둘 이상인 경우, 선택부(250)는 가장 빠른 행을 선택한다. 즉, 선택부(250)는 제1 행을 기준으로 최초의 행을 선택한다. 예를 들어, 제2 행과 제5 행의 밀도가 동일하게 가장 높은 경우에는, 선택부(250)는 제2 행을 선택할 수 있다. In addition, the selector 250 selects the earliest row when there are two or more rows including '1' relatively largely among the n rows. That is, the selector 250 selects the first row based on the first row. For example, when the density of the second row and the fifth row is equally high, the selector 250 may select the second row.
아울러, 제3 행렬에서의 n 개의 행들이 각각이 하나의 '1'만을 포함하고 있는 경우, 선택부(250)는 제k 열(cloumn)에 '1'을 포함하고 있는 행을 선택한다. 즉, 부호화 장치(100)에서 입력 데이터를 제k 행에 삽입한 정보를 전달받은 복호화 장치(200)에서, 선택부(250)는 제3 행렬에서의 n 개의 행들이 각각이 하나의 '1'만을 포함하고 있을 때, 제k 열(cloumn)에 '1'을 포함하고 있는 행을 선택한다. In addition, when the n rows of the third matrix each include only one '1', the selector 250 selects a row including '1' in the k-th column (cloumn). That is, in the decoding apparatus 200 that receives the information of inserting the input data into the k-th row from the encoding apparatus 100, the selector 250 has n rows in the third matrix, each of which has one '1'. When it contains only, select the row that contains '1' in the k th column (cloumn).
아울러, 선택부(250)는 제3 행렬 생성부(240)가 전송 메시지를 열 순서대로 배열된 제3 행렬을 생성하는 경우에는, 상기 생성된 제3 행렬의 n 개의 열들 중에서 상대적으로 가장 밀도가 높은 열을 선택할 수 있다. 이 때, 선택부(250)는 행을 기준으로 제3 행렬이 생성된 경우에서 고밀도인 행을 선택하는 대신에 고밀도인 행을 선택하는 대신에 고밀도인 열을 선택하는 것만 차이가 있을 뿐 나머지 기술적 사항은 동일하다고 할 것이므로, 상세한 설명을 생략하기로 한다. In addition, when the third matrix generator 240 generates a third matrix in which transmission messages are arranged in column order, the selector 250 has the highest density among the n columns of the generated third matrix. You can choose high heat. In this case, the selector 250 differs only in selecting a high-density column instead of selecting a high-density row instead of selecting a high-density row in the case where the third matrix is generated based on the row. Since the details are the same, detailed descriptions will be omitted.
부분 복호화 메시지 데이터 생성부(260)는 선택부(250)에서 선택한 행 또는 열을 근거로 부분 복호화 메시지 데이터를 생성한다(S260). The partial decryption message data generator 260 generates partial decrypted message data based on the row or column selected by the selector 250 (S260).
본 발명의 실시예들에 있어서, 선택부(250)가 선택한 행이 d 번째 행인 경우, 부분 복호화 메시지 데이터 생성부(260)는 먼저 연속적으로 (d-1)개의 '0'과 다음으로 하나의 '1'이 순서대로 구성된 데이터를 부분 복호화 메시지 데이터로 생성한다. 마찬가지로, 선택부(250)가 선택한 열이 d 번째 열인 경우, 부분 복호화 메시지 데이터 생성부(260)는 먼저 연속적으로 (d-1)개의 '0'과 다음으로 하나의 '1'이 순서대로 구성된 데이터를 부분 복호화 메시지 데이터로 생성한다. In the embodiments of the present invention, when the row selected by the selector 250 is the d-th row, the partial decoded message data generation unit 260 first sequentially (d-1) zeros and one next. Generates data composed of '1' in this order as partial decoded message data. Similarly, when the column selected by the selector 250 is the d-th column, the partial decoded message data generating unit 260 first consists of (d-1) '0's and then one' 1 'in sequence. Generate data as partial decrypted message data.
예를 들면, 수학식 4가 제3 행렬 생성부(240)에서 생성된 제3 행렬인 경우에 선택부(250)는 제 3행을 선택하고, 부분 복호화 메시지 생성부(260)에서 부분 복호화 메시지는 '001'이며, 수학식 5가 제 3 행렬 생성부(240)에서 생성된 제3 행렬인 경우에 선택부(250)는 제2 행을 선택하고, 부분 복호화 메시지 생성부(260)에서 부분 복호화 메시지는 '01'이며, 수학식 6이 제3 행렬 생성부(240)에서 생성된 제3 행렬인 경우에 선택부(250)는 제1 행을 선택하고, 부분 복호화 메시지 생성부(260)에서 부분 복호화 메시지는 '1'이 된다. For example, when Equation 4 is the third matrix generated by the third matrix generator 240, the selector 250 selects the third row, and the partial decoded message generator 260 performs the partial decoded message. Is '001', and when Equation 5 is the third matrix generated by the third matrix generator 240, the selector 250 selects the second row, and the partial decryption message generator 260 partially selects the second row. The decoding message is '01', and when Equation 6 is the third matrix generated by the third matrix generator 240, the selector 250 selects the first row and the partial decryption message generator 260. The partial decryption message in becomes '1'.
앞에서 언급하였지만, 전송 메시지의 길이가 1 비트인 경우에는 부분 복호화 메시지 데이터 생성부(260)는 메시지 블록의 길이만큼이 모두 0으로 구성된 부분 복호화 메시지 데이터로 생성한다. As mentioned above, when the length of the transmission message is 1 bit, the partial decryption message data generation unit 260 generates the partial decryption message data having zero length as the length of the message block.
복호화부(270)는 부분 복호화 메시지 데이터 생성부(260)가 생성한 부분 복호화 메시지 데이터를 이용하여 복호화한다(S270). The decoder 270 decodes the partial decoded message data generated by the partial decoded message data generator 260 (S270).
예를 들어, 복호화부(270)는 상기 생성된 부분 복호화 메시지 데이터를 이용하여 이전의 부분 복호화된 메시지에 다음으로 순차적으로 현재 부분 복호화된 메시지(S260)를 연접(concatenation)하여 복호화 메시지를 생성한다(S270). 다시 말하면, 복호화부(270)는 상기 생성된 부분 복호화 메시지 데이터를 이전에 생성된 복호화 메시지 데이터에 순서대로 연속 결합하는 방식으로 복호화할 수 있다. For example, the decoder 270 generates a decrypted message by concatenating the current partially decoded message S260 sequentially next to the previous partially decoded message using the generated partial decoded message data. (S270). In other words, the decoder 270 may decode the generated partial decoded message data by sequentially combining the generated partial decoded message data in order with the previously generated decoded message data.
예를 들면, 수학식 4에서 제 3 행렬 생성부(240)에서 생성된 제3 행렬인 경우에 선택부(250)는 제3 행을 선택하고, 부분 복호화 메시지 생성부(260)에서 부분 복호화 메시지는 '001'이며, 복호화부(270)에서 복호화 메시지는 '001'이고 다음으로 수학식 5에서 제3 행렬 생성부(240)에서 생성된 제3 행렬인 경우에 선택부(250)는 제 2행을 선택하고, 부분 복호화 메시지 생성부(260)에서 부분 복호화 메시지는 '01'이며, 복호화부(270)에서는 이전 복호화 메시지 '001'에 현재 부분 복호화 메시지 '01'을 연결하여 복호화 메시지 '00101'을 얻는다. 다음으로 수학식 6에서 제 3 행렬 생성부(240)에서 생성된 제3 행렬인 경우에 선택부(250)는 제 1행을 선택하고, 부분 복호화 메시지 생성부(260)에서 부분 복호화 메시지는 '1'이며, 이전 복호화 메시지 '00101'에 현재 부분 복호화 메시지 '1'을 연결하여 복호화 메시지 '001011'을 얻는다. For example, in the case of the third matrix generated by the third matrix generator 240 in Equation 4, the selector 250 selects the third row, and the partial decoded message generator 260 performs the partial decoded message. Is '001', and when the decoding message is '001' in the decoder 270 and the third matrix generated by the third matrix generator 240 in Equation 5 is selected, the selector 250 is the second. The partial decryption message is' 01 'in the partial decryption message generator 260, and the decryption message' 00101 is connected by the current partial decryption message '01' to the previous decryption message '001' in the decryption unit 270. 'Get. Next, in the case of the third matrix generated by the third matrix generator 240 in Equation 6, the selector 250 selects the first row, and in the partial decoded message generator 260, the partial decoded message is' 1 ', and the decryption message' 001011 'is obtained by concatenating the current partial decryption message' 1 'to the previous decryption message' 00101 '.
한편, 복호화부(270)가 복호화한 메시지의 길이가 원본 메시지 데이터의 길이보다 크거나 같은 경우, 상기 원본 메시지 데이터의 길이만큼의 메시지를 복호화하고, 전체 복호화된 메시지 중 원본 메시지 데이터의 길이를 초과하여 복호화된 비트들은 최종적으로 복호화 메시지에서 제외한다. On the other hand, if the length of the message decrypted by the decryption unit 270 is greater than or equal to the length of the original message data, the message is decrypted by the length of the original message data, and exceeds the length of the original message data of the entire decoded message The decoded bits are finally excluded from the decoded message.
예를 들면 원본 메시지가 '00111010'인 경우에 복호화부(270)에서 복호화 메시지가 '001110101'인 경우에 복호화부(270)에서 마지막 비트 '1'을 제외한 '00111010'을 최종 복호화메시지로 출력한다. For example, when the original message is '00111010', the decoding unit 270 outputs '00111010' except the last bit '1' as the final decrypted message when the decoding message is '001110101'. .
이와 같이, 저밀도 역 코드를 이용한 복호화 장치(200)는 행렬에서 가장 복잡한, 최고밀도의 행 또는 열을 선택하고, 상기 선택한 행의 순서 또는 열의 순서를 이용하여 원본 메시지 데이터 또는 원본 메시지 데이터를 구성하는 부분 복호화 메시지 데이터를 복원할 수 있다. 이에 아주 간단한 계산과 규칙에 의하여 메시지를 복호할 수 있는 성능을 구현할 수 있을 뿐 아니라, 노이즈가 포함되더라도 메시지 데이터가 포함된 행 또는 열이 가장 높은 밀도(density)를 갖는 것에는 큰 영향이 없으므로 오류도 현저히 감소될 수 있다. 나아가, 일정한 크기의 메시지 블록을 이용한 행렬들에 의하여 구성된 코드워드에 의하여 복호화하므로, 오류율을 현저하게 감소시킬 수 있다. 또한, 메시지 블록이 '0'으로 이루어진 경우에는 하나의 비트만을 전달받아 아주 쉽게 복호화하도록 함으로써, 계산 부담을 줄일 수 있다. As described above, the decoding apparatus 200 using the low density inverse code selects the most complex, highest density row or column in a matrix, and constructs original message data or original message data using the order of the selected rows or the columns. The partial decrypted message data can be restored. Very simple calculations and rules can be used to decode the message, and even if noise is included, there is no significant effect on the highest density of the row or column containing the message data. Can also be significantly reduced. Furthermore, since the decoding is performed by a codeword formed by matrices using a message block of a constant size, the error rate can be significantly reduced. In addition, when the message block is composed of '0', only one bit is received and thus easily decoded, thereby reducing the computational burden.
위에서 설명한, 실시예는 구체적인 설명을 위하여 기본적인 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치의 구조 및 과정을 예를 들어 서술한 것일 뿐, 그에 한정되는 것은 아니다. 본 발명이 속하는 기술 분야의 통상의 지식을 가진 당업자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. The above-described embodiment is merely an example of the structure and process of an encoding / decoding method and apparatus using a basic low density inverse code, but is not limited thereto. Those skilled in the art will understand that the present invention can be easily modified in other specific forms without changing the technical spirit or essential features of the present invention. Therefore, it should be understood that the embodiments described above are exemplary in all respects and not restrictive.
[부호의 설명][Description of the code]
100 : 부호화 장치 110 : 메시지 블록 생성부100: encoding apparatus 110: message block generating unit
120 : 제1 행렬 생성부 130 : 제2 행렬 생성부120: first matrix generator 130: second matrix generator
140 : 코드워드 생성부 150 : 전송부 140: codeword generation unit 150: transmission unit
200 : 복호화 장치 210 : 전송 메시지 수신부200: decoding apparatus 210: transmission message receiving unit
220 : 전송 메시지 길이 측정부 230 : 전송 메시지 길이 비교부 220: transmission message length measurement unit 230: transmission message length comparison unit
240 : 제3 행렬 생성부 250 : 선택부 240: third matrix generator 250: selector
260 : 부분 부호화 메시지 데이터 생성부 260: partial encoded message data generation unit
270 : 복호화부270 decryption unit
Claims (42)
- 원본 메시지 데이터로부터 고정된 길이인 n 개 비트로 이루어진 메시지 블록으로 생성하는 단계;Generating from the original message data a message block of n bits of fixed length;상기 n 개 비트로 이루어진 메시지 블록의 각 비트를 n 개의 열(column)로 정렬한 제k 행(row) 또는 상기 n 개 비트로 이루어진 메시지 블록의 각 비트를 n 개의 행(row)으로 정렬한 제k 열(column)로 배열되고, A k-th row in which each bit of the message block of n bits is arranged in n columns or a k-th column in which each bit of the message block of n bits is arranged in n rows arranged in (column),상기 메시지 블록이 상기 제k 행에 배열되는 경우에는 상기 제k 행과, 상기 제k 행에서 최초로 '1'이 존재하는 열을 제외한 각 행과 각 열에서 하나의 '1'만이 존재하도록 구성된 나머지 행들로 이루어진 n x n 크기의 제1 행렬을 생성하고, If the message block is arranged in the k-th row, the k-th row, and each row except for the column where '1' first appears in the k-th row, and the remaining one configured to have only one '1' in each column Create a first matrix of size nxn of rows,상기 메시지 블록이 상기 제k 열에 배열되는 경우에는 상기 제k 열과, 상기 제k 열에서 최초로 '1'이 존재하는 행을 제외한 각 열과 각 행에서 하나의 '1'만이 존재하도록 구성된 나머지 열들로 이루어진 n x n 크기의 제1 행렬을 생성하는 단계; When the message block is arranged in the k-th column, the k-th column includes each column except for the first row of '1' in the k-th column, and the remaining columns configured to have only one '1' in each row. generating a first matrix of nxn size;상기 제1 행렬의 역행렬을 구하고, 상기 역행렬에 대하여 2를 법으로 하는 법 연산(modulus operation)을 적용하여 제2 행렬을 생성하는 단계; 및Obtaining an inverse matrix of the first matrix and generating a second matrix by applying a modulus operation of 2 to the inverse matrix; And상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하여 전송하는 단계를 포함하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.Generating and transmitting a codeword using the second matrix, wherein the encoding method uses a complementary low density inverse code.
- 제1항에 있어서, 상기 메시지 블록을 생성하는 단계에서The method of claim 1, wherein generating the message block고정된 길이인 n 개 비트로 이루어진 이전 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터를 삭제시키고, 상기 원본 메시지 데이터로부터 상기 삭제된 데이터의 비트 수 만큼을 이전 메시지 블록의 후속 데이터로 채워서 고정된 길이인 n 개 비트로 이루어진 후속 메시지 블록을 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.In the previous message block having a fixed length of n bits, the data up to the first '1' bit is deleted, and the number of bits of the deleted data is filled from the original message data with subsequent data of the previous message block, thereby fixing the data. A method of encoding using a complementary low density inverse code, characterized by generating a subsequent message block of length n bits.
- 제2항에 있어서, 상기 메시지 블록을 생성하는 단계에서The method of claim 2, wherein generating the message block상기 원본 메시지 데이터로부터 이전 메시지 블록의 후속 데이터로부터 상기 삭제된 데이터의 비트 수 만큼을 전부 채우지 못하는 경우, 상기 채우지 못하는 만큼의 데이터를 비트 '1'로 채워서 상기 후속 메시지 블록을 고정된 길이인 n 개 비트를 갖도록 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.When the number of bits of the deleted data is not completely filled from the subsequent data of the previous message block from the original message data, the non-filled data is filled with bit '1' so that the subsequent message blocks have n fixed lengths. A coding method using complementary low density inverse code, characterized in that it is generated to have a bit.
- 제1항에 있어서, 상기 메시지 블록을 생성하는 단계에서The method of claim 1, wherein generating the message block상기 고정된 길이인 n 개 비트로 이루어진 이전 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터를 삭제시키고, 상기 삭제된 데이터의 비트 수 만큼을 비트 '1'로 채워서 고정된 길이인 n 개 비트로 이루어진 후속 메시지 블록을 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법. In the previous message block consisting of the n bits of the fixed length, the data up to the first bit of '1' is deleted, and the number of bits of the deleted data is filled with the bit '1' to the number of bits of n bits of fixed length. An encoding method using a complementary low density inverse code, characterized in that it generates a subsequent message block.
- 제1항 내지 제4항 중 어느 한 항에 있어서, The method according to any one of claims 1 to 4,상기 원본 메시지 데이터가 복수개의 부분 원본 메시지 데이터로 분할하는 경우, When the original message data is divided into a plurality of partial original message data,상기 각 부분 원본 메시지 데이터에 대하여 제2항 내지 제4항의 방법 중 적어도 하나의 방법을 이용하여 고정된 길이인 n 개 비트로 이루어진 후속 메시지 블록을 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.Complementary low density inverse code (sparse inverse) characterized in that for each of the partial original message data to generate a subsequent message block of a fixed length n bits using at least one of the method of claim 2 to claim 4 coding method using code).
- 제1항 내지 제4항 중 어느 한 항에 있어서,The method according to any one of claims 1 to 4,상기 원본 메시지 데이터가 복수개의 부분 원본 메시지 데이터로 분할하는 경우,When the original message data is divided into a plurality of partial original message data,이웃하는 부분 원본 메시지 데이터로부터 이전 메시지 블록에서 삭제된 데이터의 비트 수 만큼을 이전 메시지 블록의 후속 데이터로 채워서 고정된 길이인 n 개 비트로 이루어진 후속 메시지 블록을 생성하고, From the neighboring partial original message data, the number of bits of data deleted in the previous message block is filled with subsequent data of the previous message block to produce a subsequent message block of n bits of fixed length,이웃하는 부분 원본 메시지 데이터로부터 이전 메시지 블록에서 삭제된 데이터의 비트 수 만큼을 전부 채우지 못하는 경우, 상기 채우지 못하는 만큼의 데이터를 비트 '1'로 채워서 고정된 길이인 n 개 비트로 이루어진 후속 메시지 블록을 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법. If not all the bits of the data deleted from the previous message block are filled from neighboring partial original message data, the non-filled data is filled with bit '1' to generate a subsequent message block of n bits of fixed length. A coding method using a complementary low density inverse code, characterized in that the.
- 제1항 또는 제4항에 있어서, 상기 원본 메시지 데이터의 길이와 상기 메시지 블록의 길이가 서로 동일한 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.The encoding method according to claim 1 or 4, wherein the length of the original message data and the length of the message block are the same.
- 제1항에 있어서, The method of claim 1,상기 메시지 블록이 모두 '0'으로만 이루어진 경우에는 '0' 또는 '1'로 이루어진 하나의 비트를 상기 코드워드로 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법. If the message blocks are all composed of only '0', a coding method using a complementary low density inverse code, characterized in that one bit consisting of '0' or '1' is generated as the codeword. .
- 제1항에 있어서, 상기 제1 행렬을 생성하는 단계에서The method of claim 1, wherein generating the first matrix상기 메시지 블록에서 최초로 '1'이 나오는 비트가 제k 번째 비트인 경우에, 상기 메시지 블록을 1≤t≤k를 만족하는 제t 행 또는 제t 열에 배열하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법. A complementary low density inverse code characterized by arranging the message block in a t th row or a t th column satisfying 1 ≦ t ≦ k when the first bit of the '1' in the message block is the k th bit; coding method using sparse inverse code.
- 제1항에 있어서, 상기 제1 행렬을 생성하는 단계에서The method of claim 1, wherein generating the first matrix상기 메시지 블록에서 최초로 '1'이 나오는 비트가 제k 번째 비트이면 상기 메시지 블록을 1≤t≤k를 만족하는 제t 행 또는 제t 열에 배열하고, If the first bit of the '1' in the message block is the k th bit, the message block is arranged in the t th row or the t th column satisfying 1≤t≤k,상기 제t 행 또는 제t 열을 제외한 나머지 행들 또는 열들에 존재하는 '1'은 상기 제t 행 또는 제t 열에서 최초로 '1'이 나타나는 열 또는 행을 제외하고, 행의 순서 또는 열의 순서대로 각 행과 각 열에 '1'이 하나씩 존재하도록 제1 행렬을 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법. '1' present in the remaining rows or columns except for the t th row or the t th column is in the order of the rows or the columns except for the column or the row in which the first '1' appears in the t th row or the t th column A coding method using a complementary low density inverse code, characterized in that the first matrix is generated such that one '1' exists in each row and each column.
- 제10항에 있어서, 상기 제2 행렬을 생성하는 단계에서 11. The method of claim 10, wherein generating the second matrix최초로 '1'이 나오는 비트가 제k 번째인 상기 메시지 블록이 제1 행렬의 제t 행에 배열되는 경우, If the message block in which the first bit of the '1' is the k-th is arranged in the t th row of the first matrix,제k 행의 제t 열을 '1', 제k 열을 '0'으로 배열하고 상기 제k 행의 나머지 열은 상기 메시지 블록과 동일하게 구성하며, 제1 행에서 제(k-1) 행까지는 (k-1) × 1 크기의 영행렬, (k-1) × (k-1) 크기의 단위행렬 및 (k-1) × (n-k) 크기의 영행렬을 순서대로 배열하고, 제(k-1) 행에서 제n 행까지는 (n-k) × k 크기의 영행렬과 (n-k) × (n-k) 크기의 단위행렬을 순서대로 배열하여 제2 행렬을 생성하고, The t-th column of the k-th row is arranged as '1', the k-th column is arranged as '0', and the remaining columns of the k-th row are configured in the same manner as the message block, and the k-th row in the first row Up to (k-1) × 1 zero matrix, (k-1) × (k-1) unit matrix and (k-1) × (nk) size matrix in order, and ( From k-1) to n-th row, a second matrix is generated by arranging (nk) × k-sized matrix and (nk) × (nk) -sized matrix in order.최초로 '1'이 나오는 비트가 제k 번째인 상기 메시지 블록이 제1 행렬의 제t 열에 배열되는 경우, When the message block in which the first bit of the '1' is the k-th is arranged in the t th column of the first matrix,제k 열의 제t 행을 '1', 제k 행을 '0'으로 배열하고 상기 제k 열의 나머지 행은 상기 메시지 블록과 동일하게 구성하며, 제1 열에서 제(k-1) 열까지는 (k-1) × 1 크기의 영행렬, (k-1) × (k-1) 크기의 단위행렬 및 (k-1) × (n-k) 크기의 영행렬을 순서대로 배열하고, 제(k-1) 열에서 제n 열까지는 (n-k) × k 크기의 영행렬과 (n-k) × (n-k) 크기의 단위행렬을 순서대로 배열하여 제2 행렬을 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법. The t th row of the k th column is arranged as '1', the k th row is arranged as '0', and the remaining rows of the k th column are configured in the same manner as the message block, and the first to kth columns are ( k-1) × 1 sized matrix, (k-1) × (k-1) sized matrix and (k-1) × (nk) sized matrix 1) Complementary low-density inverse code, characterized by generating a second matrix by arranging (nk) × k zero matrixes and (nk) × (nk) unit matrixes in order from column to n-th column. A coding method using sparse inverse code.
- 제1항에 있어서, 상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하는 단계에서The method of claim 1, wherein generating a codeword using the second matrix상기 메시지 블록이 n개 비트로 이루어진 경우, 상기 코드워드의 길이는 n2 또는 1인 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.If the message block is composed of n bits, the length of the codeword is n 2 or 1, characterized in that the encoding method using a complementary low density inverse code (sparse inverse code).
- 제1항에 있어서, 상기 제2 행렬을 이용하여 코드워드를 생성하는 단계에서The method of claim 1, wherein generating a codeword using the second matrix상기 메시지 블록이 상기 제k 행에 배열되는 경우에는 상기 생성된 제2 행렬의 제1 행 내지 제n 행을 순서대로 연결하는 방식으로 n2 길이의 코드워드를 생성하고,When the message block is arranged in the k-th row, a codeword having a length of n 2 is generated by concatenating first to nth rows of the generated second matrix in order.상기 메시지 블록이 상기 제k 열에 배열되는 경우에는 상기 생성된 제2 행렬의 제1 열 내지 제n 열을 순서대로 연결하는 방식으로 n2 길이의 코드워드를 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.When the message block is arranged in the k-th column, a complementary low-density inverse is generated by generating a codeword of length n 2 by connecting the first to nth columns of the generated second matrix in order. A coding method using a sparse inverse code.
- 제1항 내지 제13항 중 어느 하나의 한 항의 부호화 방법에 의하여 코드워드(codeword)로 생성되어 전송된 메시지를 복호화하기 위한 방법에 있어서, A method for decoding a message generated and transmitted as a codeword by the encoding method of any one of claims 1 to 13,전송 메시지를 수신하는 단계;Receiving a transmission message;상기 수신한 전송 메시지의 길이를 측정하는 단계;Measuring a length of the received transmission message;상기 측정한 전송 메시지의 길이를 비교하는 단계;Comparing the measured lengths of the transmission messages;상기 비교 결과, 상기 측정된 전송 메시지의 길이가 n2 인 경우, 상기 전송 메시지를 n 블록으로 구분하고, 상기 n 블록의 각 블록을 순서대로 행 또는 열로 배열하여 n × n 크기의 제3 행렬을 생성하는 단계; As a result of the comparison, when the measured transmission message length is n 2 , the transmission message is divided into n blocks, and each block of the n blocks is arranged in rows or columns in order to form a third matrix having an size of n × n. Generating;상기 n 블록의 각 블록을 순서대로 행으로 배열하여 상기 제3 행렬을 생성한 경우에는 상기 생성된 제3 행렬의 n 개의 행(row)들 중에서 상대적으로 가장 고밀도(densest)인 행을 선택하고, 상기 n 블록의 각 블록을 순서대로 열로 배열하여 상기 제3 행렬을 생성한 경우에는 상기 생성된 제3 행렬의 n 개의 열(column)들 중에서 상대적으로 가장 고밀도(densest)인 열을 선택하는 단계; In the case where the third matrix is generated by arranging each block of the n blocks in order, a row having the highest density among the n rows of the generated third matrix is selected. Selecting a column having the highest density among the n columns of the generated third matrix when the third matrix is generated by arranging each block of the n blocks in order;상기 선택한 행 또는 열을 근거로 부분 복호화 메시지 데이터를 생성하는 단계; 및Generating partial decoded message data based on the selected row or column; And상기 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 단계를 포함하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법.And a decoding method using the generated partial decoded message data, the decoding method using a complementary low density inverse code.
- 제14항에 있어서, The method of claim 14,상기 비교 결과, 상기 측정된 전송 메시지의 길이가 '1' 인 경우, As a result of the comparison, when the length of the measured transmission message is '1',메시지 블록의 길이인 n 개의 '0'으로 구성된 부분 복호화 메시지 데이터로 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법. A decoding method using a complementary low density inverse code, characterized in that to generate a partial decoded message data consisting of n '0' length of the message block.
- 제14항에 있어서, 상기 생성된 제3 행렬의 n 개의 행(row)들 또는 n 개의 열(column)들 중에서 상대적으로 가장 고밀도(densest)인 행 또는 열을 선택하는 단계는15. The method of claim 14, wherein selecting the relatively densest row or column of the n rows or n columns of the generated third matrix is상기 n 개의 행들 또는 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 행 또는 열을 선택하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법.A method of decoding using a complementary low density inverse code, characterized in that for selecting the row or column containing a relatively large number of '1' among the n rows or columns.
- 제16항에 있어서,The method of claim 16,상기 n 개의 행들 또는 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 행 또는 열이 둘 이상인 경우, 제1 행 또는 제1 열을 기준으로 최초의 행 또는 열을 선택하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법.Complementary, characterized in that the first row or column is selected based on the first row or the first column when there is more than one row or column that contains the most '1' among the n rows or columns Decoding method using sparse inverse code.
- 제16항에 있어서, The method of claim 16,상기 제3 행렬을 생성하는 단계 중 상기 n 블록의 각 블록을 행으로 배열하여 상기 제3 행렬을 생성한 경우에는 상기 n 개의 행들 각각이 하나의 '1'만을 포함하고 있으면, 제k 열에 '1'을 포함하고 있는 행을 선택하고,When the third matrix is generated by arranging each block of the n blocks in a row during the generating of the third matrix, if each of the n rows includes only one '1', '1' in column k Select the row containing ",상기 제3 행렬을 생성하는 단계 중 상기 n 블록의 각 블록을 열로 배열하여 상기 제3 행렬을 생성한 경우에는 상기 n 개의 열들 각각이 하나의 '1'만을 포함하고 있으면, 제k 행에 '1'을 포함하고 있는 열을 선택하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법. When the third matrix is generated by arranging each block of the n blocks into columns during the generating of the third matrix, if each of the n columns includes only one '1', '1' in the kth row. A decoding method using a complementary low density inverse code, characterized in that for selecting a column containing a '.
- 제14항에 있어서, 상기 선택한 행 또는 열을 근거로 부분 복호화 메시지 데이터를 생성하는 단계에서15. The method of claim 14, wherein generating partial decrypted message data based on the selected row or column상기 선택한 행 또는 열이 d 번째 행 또는 열인 경우, 먼저 연속적인 (d-1)개의 '0'과 다음으로 하나의 '1'이 순서대로 구성된 데이터를 부분 복호화 메시지 데이터로 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법. When the selected row or column is the d-th row or column, first, data consisting of consecutive (d-1) '0's and one' 1 'in sequence are generated as partial decoded message data. Decoding method using complementary low density inverse code.
- 제14항에 있어서, 상기 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 단계에서15. The method of claim 14, wherein the decoding by using the generated partial decrypted message data상기 생성된 부분 복호화 메시지 데이터를 이전에 생성된 복호화 메시지 데이터에 순서대로 연속 결합하는 방식으로 복호화하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법. And decoding the generated partial decoded message data by successively combining the generated partial decoded message data in sequence with the previously generated decoded message data.
- 제14항에 있어서, 상기 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 단계에서15. The method of claim 14, wherein the decoding by using the generated partial decrypted message data상기 복호화된 메시지의 길이가 원본 메시지 데이터의 길이보다 크거나 같은 경우, 상기 원본 메시지 데이터의 길이만큼의 메시지를 복호화하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법. And if the length of the decoded message is greater than or equal to the length of the original message data, decoding the message as much as the length of the original message data.
- 원본 메시지 데이터로부터 고정된 길이인 n 개 비트로 이루어진 메시지 블록으로 생성하는 메시지 블록 생성부;A message block generation unit for generating a message block including n bits of fixed length from original message data;상기 n 개 비트로 이루어진 메시지 블록의 각 비트를 n 개의 열로 정렬한 제k 행(row) 또는 상기 n 개 비트로 이루어진 메시지 블록의 각 비트를 n 개의 행으로 정렬한 제k 열(column)로 배열되고, A k-th row in which each bit of the message block of n bits is arranged in n columns, or a k-th column in which each bit of the message block of n bits is arranged in n rows,상기 메시지 블록이 상기 제k 행에 배열되는 경우에는 상기 제k 행과, 상기 제k 행에서 최초로 '1'이 존재하는 열을 제외한 각 행과 각 열에서 하나의 '1'만이 존재하도록 구성된 나머지 행들로 이루어진 n x n 크기의 제1 행렬을 생성하고, If the message block is arranged in the k-th row, the k-th row, and each row except for the column where '1' first appears in the k-th row, and the remaining one configured to have only one '1' in each column Create a first matrix of size nxn of rows,상기 메시지 블록이 상기 제k 열에 배열되는 경우에는 상기 제k 열과, 상기 제k 열에서 최초로 '1'이 존재하는 행을 제외한 각 열과 각 행에서 하나의 '1'만이 존재하도록 구성된 나머지 열들로 이루어진 n x n 크기의 제1 행렬을 생성하는 제1 행렬 생성부;When the message block is arranged in the k-th column, the k-th column includes each column except for the first row of '1' in the k-th column, and the remaining columns configured to have only one '1' in each row. a first matrix generator configured to generate a first matrix having a size of nxn;상기 제1 행렬의 역행렬을 구하고, 상기 역행렬에 대하여 2를 법으로 하는 법 연산(modulus operation)을 적용하여 제2 행렬을 생성하는 제2 행렬 생성부; A second matrix generator which obtains an inverse of the first matrix and generates a second matrix by applying a modulus operation of 2 to the inverse matrix;상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하는 코드워드 생성부; 및A codeword generator for generating a codeword using the second matrix; And상기 생성한 코드워드를 외부로 전송하는 전송부를 포함하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.An encoding apparatus using a complementary low density inverse code including a transmitting unit for transmitting the generated codeword to the outside.
- 제22항에 있어서, 상기 메시지 블록 생성부는 The method of claim 22, wherein the message block generating unit고정된 길이인 n 개 비트로 이루어진 이전 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터를 삭제시키고, 상기 원본 메시지 데이터로부터 상기 삭제된 데이터의 비트 수 만큼을 이전 메시지 블록의 후속 데이터로 채워서 고정된 길이인 n 개 비트로 이루어진 후속 메시지 블록을 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.In the previous message block having a fixed length of n bits, the data up to the first '1' bit is deleted, and the number of bits of the deleted data is filled from the original message data with subsequent data of the previous message block, thereby fixing the data. A coding device using a complementary low density inverse code, characterized in that for generating a subsequent message block consisting of n bits of length.
- 제23항에 있어서, 상기 메시지 블록 생성부는 The method of claim 23, wherein the message block generating unit상기 원본 메시지 데이터로부터 이전 메시지 블록의 후속 데이터로부터 상기 삭제된 데이터의 비트 수 만큼을 전부 채우지 못하는 경우, 상기 채우지 못하는 만큼의 데이터를 비트 '1'로 채워서 상기 후속 메시지 블록을 고정된 길이인 n 개 비트를 갖도록 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.When the number of bits of the deleted data is not completely filled from the subsequent data of the previous message block from the original message data, the non-filled data is filled with bit '1' so that the subsequent message blocks have n fixed lengths. A coding apparatus using a complementary low density inverse code, characterized in that it is generated to have a bit.
- 제22항에 있어서, 상기 메시지 블록을 생성부는 The method of claim 22, wherein the message block generating unit상기 고정된 길이인 n 개 비트로 이루어진 이전 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터를 삭제시키고, 상기 삭제된 데이터의 비트 수 만큼을 비트 '1'로 채워서 고정된 길이인 n 개 비트로 이루어진 후속 메시지 블록을 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.In the previous message block consisting of the n bits of the fixed length, the data up to the first bit of '1' is deleted, and the number of bits of the deleted data is filled with the bit '1' to the number of bits of n bits of fixed length. A coding apparatus using a complementary low density inverse code, characterized in that for generating a subsequent message block.
- 제22항 내지 제25항 중 어느 한 항에 있어서, The method according to any one of claims 22 to 25,상기 원본 메시지 데이터가 복수개의 부분 원본 메시지 데이터로 분할하는 경우, When the original message data is divided into a plurality of partial original message data,상기 각 부분 원본 메시지 데이터에 대하여 제2항 내지 제4항의 방법 중 적어도 하나의 방법을 이용하여 고정된 길이인 n 개 비트로 이루어진 후속 메시지 블록을 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.Complementary low density inverse code (sparse inverse) characterized in that for each of the partial original message data to generate a subsequent message block of a fixed length n bits using at least one of the method of claim 2 to claim 4 coding apparatus using code).
- 제22항 내지 제25항 중 어느 한 항에 있어서, The method according to any one of claims 22 to 25,상기 메시지 블록 생성부는 The message block generation unit상기 원본 메시지 데이터가 복수개의 부분 원본 메시지 데이터로 분할하는 경우,When the original message data is divided into a plurality of partial original message data,이웃하는 부분 원본 메시지 데이터로부터 이전 메시지 블록에서 삭제된 데이터의 비트 수 만큼을 이전 메시지 블록의 후속 데이터로 채워서 고정된 길이인 n 개 비트로 이루어진 후속 메시지 블록을 생성하고, From the neighboring partial original message data, the number of bits of data deleted in the previous message block is filled with subsequent data of the previous message block to produce a subsequent message block of n bits of fixed length,이웃하는 부분 원본 메시지 데이터로부터 이전 메시지 블록에서 삭제된 데이터의 비트 수 만큼을 전부 채우지 못하는 경우, 상기 채우지 못하는 만큼의 데이터를 비트 '1'로 채워서 고정된 길이인 n 개 비트로 이루어진 후속 메시지 블록을 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치. If not all the bits of the data deleted from the previous message block are filled from neighboring partial original message data, the non-filled data is filled with bit '1' to generate a subsequent message block of n bits of fixed length. An encoding apparatus using a complementary low density inverse code, characterized in that the.
- 제22항 또는 제25항에 있어서, 상기 원본 메시지 데이터의 길이와 상기 메시지 블록의 길이가 서로 동일한 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치. 26. The encoding apparatus according to claim 22 or 25, wherein a length of the original message data and a length of the message block are equal to each other.
- 제22항에 있어서, 상기 코드워드 생성부는 The method of claim 22, wherein the codeword generation unit상기 메시지 블록이 모두 '0'으로만 이루어진 경우에는 '0' 또는 '1'로 이루어진 하나의 비트를 상기 코드워드로 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.If the message blocks are all composed of only '0', the encoding device using a complementary low density inverse code, characterized in that to generate one bit consisting of '0' or '1' as the codeword .
- 제22항에 있어서, 상기 제1 행렬 생성부는 The method of claim 22, wherein the first matrix generator상기 메시지 블록에서 최초로 '1'이 나오는 비트가 제k 번째 비트인 경우에, 상기 메시지 블록을 1≤t≤k를 만족하는 제t 행 또는 제t 행에 배열하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.In the case where the first bit of the '1' in the message block is the kth bit, the message block is arranged in a t-th row or a t-th row satisfying 1≤t≤k. Encoder using a sparse inverse code.
- 제22항에 있어서, 상기 제1 행렬 생성부는 The method of claim 22, wherein the first matrix generator상기 메시지 블록에서 최초로 '1'이 나오는 비트가 제k 번째 비트이면 상기 메시지 블록을 1≤t≤k를 만족하는 제t 행 또는 제t 열에 배열하고, If the first bit of the '1' in the message block is the k th bit, the message block is arranged in the t th row or the t th column satisfying 1≤t≤k,상기 제t 행 또는 제t 열을 제외한 나머지 행들 또는 열들에 존재하는 '1'은 상기 제t 행 또는 제t 열에서 최초로 '1'이 나타나는 열 또는 행을 제외하고, 행의 순서 또는 열의 순서대로 각 행과 각 열에 '1'이 하나씩 존재하도록 제1 행렬을 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치. '1' present in the remaining rows or columns except for the t th row or the t th column is in the order of the rows or the columns except for the column or the row in which the first '1' appears in the t th row or the t th column A coding apparatus using a complementary low density inverse code, characterized in that the first matrix is generated such that one '1' exists in each row and each column.
- 제31항에 있어서, 상기 제2 행렬 생성부는 The method of claim 31, wherein the second matrix generator최초로 '1'이 나오는 비트가 제k 번째인 상기 메시지 블록이 제1 행렬의 제t 행에 배열되는 경우, If the message block in which the first bit of the '1' is the k-th is arranged in the t th row of the first matrix,제k 행의 제t 열을 '1', 제k 열을 '0'으로 배열하고 상기 제k 행의 나머지 열은 상기 메시지 블록과 동일하게 구성하며, 제1 행에서 제(k-1) 행까지는 (k-1) × 1 크기의 영행렬, (k-1) × (k-1) 크기의 단위행렬 및 (k-1) × (n-k) 크기의 영행렬을 순서대로 배열하고, 제(k-1) 행에서 제n 행까지는 (n-k) × k 크기의 영행렬과 (n-k) × (n-k) 크기의 단위행렬을 순서대로 배열하여 제2 행렬을 생성하고, The t-th column of the k-th row is arranged as '1', the k-th column is arranged as '0', and the remaining columns of the k-th row are configured in the same manner as the message block, and the k-th row in the first row Up to (k-1) × 1 zero matrix, (k-1) × (k-1) unit matrix and (k-1) × (nk) size matrix in order, and ( From k-1) to n-th row, a second matrix is generated by arranging (nk) × k-sized matrix and (nk) × (nk) -sized matrix in order.최초로 '1'이 나오는 비트가 제k 번째인 상기 메시지 블록이 제1 행렬의 제t 열에 배열되는 경우, When the message block in which the first bit of the '1' is the k-th is arranged in the t th column of the first matrix,제k 열의 제t 행을 '1', 제k 행을 '0'으로 배열하고 상기 제k 열의 나머지 행은 상기 메시지 블록과 동일하게 구성하며, 제1 열에서 제(k-1) 열까지는 (k-1) × 1 크기의 영행렬, (k-1) × (k-1) 크기의 단위행렬 및 (k-1) × (n-k) 크기의 영행렬을 순서대로 배열하고, 제(k-1) 열에서 제n 열까지는 (n-k) × k 크기의 영행렬과 (n-k) × (n-k) 크기의 단위행렬을 순서대로 배열하여 제2 행렬을 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.The t th row of the k th column is arranged as '1', the k th row is arranged as '0', and the remaining rows of the k th column are configured in the same manner as the message block, and the first to kth columns are ( k-1) × 1 sized matrix, (k-1) × (k-1) sized matrix and (k-1) × (nk) sized matrix 1) Complementary low-density inverse code, characterized by generating a second matrix by arranging (nk) × k zero matrixes and (nk) × (nk) unit matrixes in order from column to n-th column. Coding apparatus using sparse inverse code.
- 제22항에 있어서, The method of claim 22,상기 메시지 블록이 n개 비트로 이루어진 경우, 상기 코드워드의 길이는 n2 또는 1인 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.If the message block is composed of n bits, the length of the codeword is n 2 or 1, characterized in that the encoding device using a complementary low density inverse code (sparse inverse code).
- 제22항에 있어서, 상기 코드워드 생성부는 The method of claim 22, wherein the codeword generation unit상기 메시지 블록이 상기 제k 행에 배열되는 경우에는 상기 생성된 제2 행렬의 제1 행 내지 제n 행을 순서대로 연결하는 방식으로 n2 길이의 코드워드를 생성하고,When the message block is arranged in the k-th row, a codeword having a length of n 2 is generated by concatenating first to nth rows of the generated second matrix in order.상기 메시지 블록이 상기 제k 열에 배열되는 경우에는 상기 생성된 제2 행렬의 제1 열 내지 제n 열을 순서대로 연결하는 방식으로 n2 길이의 코드워드를 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.When the message block is arranged in the k-th column, a complementary low-density inverse is generated by generating a codeword of length n 2 by connecting the first to nth columns of the generated second matrix in order. Encoder using a sparse inverse code.
- 제22항 내지 제34항 중 어느 하나의 한 항의 부호화 장치를 통하여 코드워드(codeword)로 생성되어 전송된 메시지를 복호화하기 위한 장치에 있어서, An apparatus for decoding a message generated and transmitted as a codeword through the encoding apparatus of any one of claims 22 to 34,전송 메시지를 수신하는 전송 메시지 수신부;A transmission message receiver for receiving a transmission message;상기 수신한 전송 메시지의 길이를 측정하는 전송 메시지 길이 측정부;A transmission message length measuring unit measuring a length of the received transmission message;상기 측정한 전송 메시지의 길이를 비교하는 전송 메시지 길이 비교부;A transmission message length comparison unit comparing the measured transmission message lengths;상기 비교 결과, 상기 측정된 전송 메시지의 길이가 n2 인 경우, 상기 전송 메시지를 n 블록으로 구분하고, 상기 n 블록의 각 블록을 순서대로 행 또는 열로 배열하여 n × n 크기의 제3 행렬을 생성하는 제3 행렬 생성부; As a result of the comparison, when the measured transmission message length is n 2 , the transmission message is divided into n blocks, and each block of the n blocks is arranged in rows or columns in order to form a third matrix having an size of n × n. A third matrix generator for generating;상기 n 블록의 각 블록을 순서대로 행으로 배열하여 상기 제3 행렬을 생성한 경우에는 상기 생성된 제3 행렬의 n 개의 행(row)들 중에서 상대적으로 가장 고밀도(densest)인 행을 선택하고, 상기 n 블록의 각 블록을 순서대로 열로 배열하여 상기 제3 행렬을 생성한 경우에는 상기 생성된 제3 행렬의 n 개의 열(column)들 중에서 상대적으로 가장 고밀도(densest)인 열을 선택하는 선택부; In the case where the third matrix is generated by arranging each block of the n blocks in order, a row having the highest density among the n rows of the generated third matrix is selected. A selection unit for selecting a column having the highest density among the n columns of the generated third matrix when the third matrix is generated by arranging each block of the n blocks in order; ;상기 선택한 행 또는 열을 근거로 부분 복호화 메시지 데이터를 생성하는 부분 복호화 메시지 데이터 생성부; 및A partial decoded message data generation unit configured to generate partial decoded message data based on the selected row or column; And상기 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 복호화부를 포함하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.A decoding apparatus using a complementary low density inverse code including a decoder to decode the generated partial decoded message data.
- 제35항에 있어서, 36. The method of claim 35 wherein상기 비교 결과, 상기 측정된 전송 메시지의 길이가 '1' 인 경우, 상기 부분 복호화 메시지 데이터 생성부는 메시지 블록의 길이인 n 개의 '0'으로 구성된 부분 복호화 메시지 데이터를 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.As a result of the comparison, when the measured length of the transmitted message is '1', the partial decoded message data generation unit generates partial decoded message data consisting of n '0' lengths of message blocks. A decoding apparatus using a low density sparse inverse code.
- 제35항에 있어서, 상기 선택부는 The method of claim 35, wherein the selection unit상기 n 개의 행들 또는 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 행 또는 열을 선택하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.And a row or column having a relatively large number of '1's among the n rows or columns, the decoding device using a complementary low density inverse code.
- 제37항에 있어서, 상기 선택부는The method of claim 37, wherein the selection unit상기 n 개의 행들 또는 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 행 또는 열이 둘 이상인 경우, 제1 행 또는 제1 열을 기준으로 최초의 행 또는 열을 선택하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.Complementary, characterized in that the first row or column is selected based on the first row or the first column when there is more than one row or column that contains the most '1' among the n rows or columns A decoding apparatus using a low density sparse inverse code.
- 제37항에 있어서,The method of claim 37,상기 제3 행렬을 생성하는 단계 중 상기 n 블록의 각 블록을 행으로 배열하여 상기 제3 행렬을 생성한 경우에서 In the case of generating the third matrix by generating the third matrix by arranging each block of the n blocks in a row상기 n 개의 행들 각각이 하나의 '1'만을 포함하고 있으면, 제k 열에 '1'을 포함하고 있는 행을 선택하고,If each of the n rows includes only one '1', the row including '1' in the kth column is selected.상기 제3 행렬을 생성하는 단계 중 상기 n 블록의 각 블록을 열로 배열하여 상기 제3 행렬을 생성한 경우에서 In the case of generating the third matrix by generating the third matrix by arranging each block of the n blocks in a column during the generating of the third matrix.상기 n 개의 열들 각각이 하나의 '1'만을 포함하고 있으면, 제k 행에 '1'을 포함하고 있는 열을 선택하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.And if each of the n columns includes only one '1', selecting a column including '1' in the k-th row, wherein the decoding device uses a complementary low density inverse code.
- 제35항에 있어서, 상기 부분 복호화 메시지 데이터 생성부는36. The method of claim 35, wherein the partial decrypted message data generation unit상기 선택한 행 또는 열이 d 번째 행 또는 열인 경우, 먼저 연속적인 (d-1)개의 '0'과 다음으로 하나의 '1'이 순서대로 구성된 데이터를 부분 복호화 메시지 데이터로 생성하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.When the selected row or column is the d-th row or column, first, data consisting of consecutive (d-1) '0's and one' 1 'in sequence are generated as partial decoded message data. A decoding device using complementary low density inverse code.
- 제35항에 있어서, 상기 복호화부는The method of claim 35, wherein the decoding unit상기 생성된 부분 복호화 메시지 데이터를 이전에 생성된 복호화 메시지 데이터에 순서대로 연속 결합하는 방식으로 복호화하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.And decoding the generated partial decoded message data in a manner of successively combining the generated partial decoded message data in sequence with previously generated decoded message data.
- 제35항에 있어서, 상기 복호화부는The method of claim 35, wherein the decoding unit상기 복호화된 메시지의 길이가 원본 메시지 데이터의 길이보다 크거나 같은경우, 상기 원본 메시지 데이터의 길이만큼의 메시지를 복호화하는 것을 특징으로 하는 보완적인 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.And if the length of the decoded message is greater than or equal to the length of the original message data, decoding the message as much as the length of the original message data.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120105488A KR101425506B1 (en) | 2012-09-22 | 2012-09-22 | Method and device of encoding/decoding using complimentary sparse inverse code |
KR10-2012-0105488 | 2012-09-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2014046395A1 true WO2014046395A1 (en) | 2014-03-27 |
Family
ID=50341649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2013/007909 WO2014046395A1 (en) | 2012-09-22 | 2013-09-02 | Encoding/decoding method and apparatus using complementary sparse inverse code |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR101425506B1 (en) |
WO (1) | WO2014046395A1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102326527B1 (en) * | 2020-06-23 | 2021-11-15 | 서울대학교산학협력단 | Data transmission device that performs secure communication based on asymmetric encryption and operating method thereof |
KR102364733B1 (en) * | 2020-11-26 | 2022-02-17 | 전남대학교산학협력단 | Data transmission apparatus that performs communication through channel coding using a pbrl-ldpc code and the operating method thereof |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100064180A (en) * | 2008-12-04 | 2010-06-14 | 에스케이 텔레콤주식회사 | Maximum likelihood decoding apparatus and method |
US8065585B1 (en) * | 2007-08-30 | 2011-11-22 | L-3 Communications Corporation | High data throughput turbo product encoder |
US20120159282A1 (en) * | 2009-08-25 | 2012-06-21 | Fujitsu Limited | Transmitter, encoding apparatus, receiver, and decoding apparatus |
US20120170858A1 (en) * | 2009-07-23 | 2012-07-05 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for encoding and decoding of images |
US20120210190A1 (en) * | 2011-02-11 | 2012-08-16 | Qualcomm Incorporated | Encoding and decoding using elastic codes with flexible source block mapping |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
-
2012
- 2012-09-22 KR KR1020120105488A patent/KR101425506B1/en not_active IP Right Cessation
-
2013
- 2013-09-02 WO PCT/KR2013/007909 patent/WO2014046395A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8065585B1 (en) * | 2007-08-30 | 2011-11-22 | L-3 Communications Corporation | High data throughput turbo product encoder |
KR20100064180A (en) * | 2008-12-04 | 2010-06-14 | 에스케이 텔레콤주식회사 | Maximum likelihood decoding apparatus and method |
US20120170858A1 (en) * | 2009-07-23 | 2012-07-05 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for encoding and decoding of images |
US20120159282A1 (en) * | 2009-08-25 | 2012-06-21 | Fujitsu Limited | Transmitter, encoding apparatus, receiver, and decoding apparatus |
US20120210190A1 (en) * | 2011-02-11 | 2012-08-16 | Qualcomm Incorporated | Encoding and decoding using elastic codes with flexible source block mapping |
Also Published As
Publication number | Publication date |
---|---|
KR20140039113A (en) | 2014-04-01 |
KR101425506B1 (en) | 2014-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108377183B (en) | XDR data information encryption method, device, equipment and medium | |
WO2015160205A1 (en) | Method and apparatus for generating codeword, and method and apparatus for recovering codeword | |
JP2020509643A5 (en) | ||
EP0814614B1 (en) | High bit-rate Huffman decoding | |
US20070168835A1 (en) | Serial communications system and method | |
US20010008001A1 (en) | Switching system and scramble control method | |
KR20130052506A (en) | Apparatus and method for transmitting/receiving quasi-cyclic low density parity check code in multimedia communication system | |
WO2014046395A1 (en) | Encoding/decoding method and apparatus using complementary sparse inverse code | |
US20030188248A1 (en) | Apparatus for iterative hard-decision forward error correction decoding | |
KR101874537B1 (en) | Method and Apparatus for Parallel Decoding of Polar Codes | |
Cohen et al. | AES as error correction: Cryptosystems for reliable communication | |
CN110519004B (en) | Coding method and related equipment | |
WO2012118327A2 (en) | Method and apparatus for transmitting and receiving in a communication/broadcasting system | |
WO2014021559A1 (en) | Method and apparatus for encoding/decoding using sparse inverse code | |
WO2014123351A1 (en) | Method and apparatus for encoding/decoding using sparse inverse code based on specific density | |
WO2014021558A1 (en) | Method and apparatus for encoding/decoding using sparse inverse code | |
KR20230033623A (en) | Data encoding method, encoder, and data decoding method | |
US4899340A (en) | Error correcting code and error correcting circuit using the same | |
WO2014200259A1 (en) | Encoding method and apparatus using relatively high density of input data | |
JP2010200247A (en) | Digital transmission system and digital transmission method | |
WO2014123353A1 (en) | Method and apparatus for encoding/decoding using sparse matrix based on specific density | |
US8233622B2 (en) | Transmitting parallel data via high-speed serial interconnection | |
JPH11168479A (en) | Device and method for extracting sample value for dss system | |
JP5968577B2 (en) | Communication apparatus, communication system, and error correction frame generation method | |
KR20100068795A (en) | Apparatus and method for tail biting convolutional coding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 13839555 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 13839555 Country of ref document: EP Kind code of ref document: A1 |