WO2014021559A1 - Method and apparatus for encoding/decoding using sparse inverse code - Google Patents

Method and apparatus for encoding/decoding using sparse inverse code Download PDF

Info

Publication number
WO2014021559A1
WO2014021559A1 PCT/KR2013/005664 KR2013005664W WO2014021559A1 WO 2014021559 A1 WO2014021559 A1 WO 2014021559A1 KR 2013005664 W KR2013005664 W KR 2013005664W WO 2014021559 A1 WO2014021559 A1 WO 2014021559A1
Authority
WO
WIPO (PCT)
Prior art keywords
message
matrix
column
generated
length
Prior art date
Application number
PCT/KR2013/005664
Other languages
French (fr)
Korean (ko)
Inventor
최수정
Original Assignee
Choi Sujeong
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Choi Sujeong filed Critical Choi Sujeong
Publication of WO2014021559A1 publication Critical patent/WO2014021559A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes

Definitions

  • the present invention relates to a method and apparatus for encoding / decoding using a low density inverse code, wherein a matrix is generated using a message block using original message data, and an inverse matrix of the generated matrix and data density are used.
  • a method and apparatus for encoding / decoding using a low density inverse code that can easily encode and decode a message using
  • bit error rates (BERs) of digital transmission information are reduced by transmitting a code sequence encoding an input information sequence.
  • turbo coding As a coding method exhibiting performance near the Shannon limit, for example, a method called so-called turbo coding such as parallel concatenated convolutional codes or serial concatenated convolutional codes. Is being developed.
  • LDPC low-density parity-check code
  • the LDPC code is a coding method proposed in 1963 by R.G.Gallager and has been found to have a very good decoding performance.
  • recent studies have shown that LDPC codes have a performance close to Shannon's limit as the code length increases in codes having low code rates.
  • the present invention is to solve such a problem, the present invention is to cut the original message data into a plurality of blocks by a predetermined rule, to generate a message block using the cut block, a low-density matrix using the message block Low-density inverse code that can reduce the computation used for encoding by generating a matrix and obtaining an inverse matrix of the generated matrix, and then encoding using a low-density inverse matrix by applying an operation of modulus 2
  • An object of the present invention is to provide a coding method using sparse inverse code.
  • the present invention generates a data encoded by the encoding method as a matrix, and by decoding the data based on the density of each column in the generated matrix, a complex calculation process is omitted to improve the decoding performance
  • An object of the present invention is to provide a decoding method using a sparse inverse code that can be improved.
  • an object of the present invention is to provide an encoding / decoding apparatus using a low density inverse code for executing the encoding / decoding method.
  • a k-column in which n bits of input data received from the outside is arranged in n rows, Generating a first matrix having an nxn size consisting of each row except for the first '1' in k-th column and the remaining columns configured to have only one '1' in each column; 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.
  • the first matrix generated in the step of generating the first matrix is '1' present in the remaining rows except for the kth column, except that the first '1' appears in the kth column.
  • Each row and column may have one '1' in the order of or columns.
  • the method may further include outputting message blocks including at least one '1' among the generated message blocks as input data.
  • the step of chopping the received original message data into a plurality of blocks may be performed when a bit of '1' appears based on the first bit of the received original message data. Each time, a method of cutting between the bit in which the '1' exists and the next bit may be used.
  • the generating of the message block may include generating the message block by removing a truncated block one by one from the first message block including the truncated blocks as a whole. Second message blocks to n-th message blocks. At this time, the n-th message block may be one of all blocks consisting of '0', blocks consisting of only one '1' and blocks consisting of at least one '0' and one '1'.
  • the outputting of the message block as input data may output the first to n-th message blocks as input data in order.
  • the original message data when the original message data consists only of '0', the original message data may be generated as the codeword.
  • generating the message block composed of at least one truncated block among the truncated blocks may generate a zero block consisting of only zeros among the truncated blocks as the codeword. can do.
  • the step of generating a codeword based on the zero block is performed after the step of generating a codeword based on the message blocks.
  • a codeword is generated, and a message block including b at least one '1' is generated among the generated message blocks.
  • b the input data, the first matrix, the second matrix and the codeword are generated.
  • n 2 lengths are formed by concatenating the first to nth columns of the generated second matrix in order. Generate a codeword of. At this time, when the input data is composed of n bits, the codeword generated using the second matrix has a length of n 2 .
  • a method comprising: receiving a transmission message; Comparing the length of the received transmission message with the length of the original message data minus the length of the decoded message; Generating a third matrix of size n ⁇ n by dividing the transmission message into n blocks if the length of the measured transmission message and the remaining length are different from each other as a result of the comparison; Selecting a relatively densest column among the n columns of the generated third matrix; Generating partial decoded message data based on the selected column; And decoding using the generated partial decrypted message data.
  • the step of measuring the length of the received transmission message may be performed before comparing the length of the received transmission message with the remaining length.
  • the number of '1' is relatively the highest among the n columns.
  • Select a column when there are two or more columns including '1' relatively most among the n columns, the first column is selected based on the first column.
  • a column including '1' in the kth row is selected.
  • the step of generating partial decoded message data based on the selected column when the selected column is a d-th column, (d-1) '0' and one '1' The data constructed in the order is generated as partial decrypted message data.
  • the generated partial decoded message data is decoded by successively combining the generated partial decoded message data in order.
  • An encoding apparatus using a low density inverse code includes a k-column in which n bits are arranged in n rows of input data consisting of n bits received from the outside, and A first matrix generator configured to generate a first matrix having an nxn size consisting of each row except for the first row having '1' in k-th column and the remaining columns configured to have only one '1' in each column; 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 codeword transmitter for transmitting the generated codeword to the outside.
  • the original message data receiving unit for receiving the original message data from the outside;
  • a truncation unit chopping the received original message data based on '1' to generate a plurality of truncated blocks;
  • a block unit generating a message block composed of at least one truncated block among the truncated blocks;
  • an input data output unit configured to output message blocks including at least one '1' among the generated message blocks as input data.
  • Decoding apparatus using a low density inverse code (sparse inverse code) includes a transmission message receiving unit for receiving a transmission message; A transmission message length comparison unit for comparing the length of the received transmission message with the length of the original message data minus the length of the decoded message; A third matrix generator configured to generate a third matrix having a size of n ⁇ n by dividing the transmission message into n blocks when the measured length of the transmission message and the remaining length are different from each other; A selection unit for selecting a column having the highest density among the n columns of the generated third matrix; A partial decrypted message data generation unit generating partial decrypted message data based on the selected column; And a decoder which decodes the generated partial decoded message data.
  • the transmission message length measuring unit for measuring the length of the received transmission message, and providing the length of the measured transmission message to the transmission message length comparison unit may be further included.
  • the original message data is cut into a plurality of blocks, and the input data after the initial input data consists of some blocks of the truncated blocks, thereby reducing the computational burden.
  • the calculation process is reduced by receiving and decoding a codeword generated according to the law of the matrix in the encoding step.
  • the decoding process may be efficiently performed by selecting a row related to data by using a row having data having the highest density.
  • FIG. 1 is a block diagram illustrating an encoding apparatus using a low density inverse code according to embodiments of the present invention.
  • FIG. 2 is a block diagram illustrating a decoding apparatus using a low density inverse code according to embodiments of the present invention.
  • FIG. 3 is a flowchart illustrating a coding method using a low density inverse code according to embodiments of the present invention.
  • FIG. 4 is a flowchart illustrating a decoding method using a 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 low density inverse code according to embodiments of the present invention.
  • the encoding apparatus 100 using the low density inverse code may include an original message data receiver 110, a truncation unit 120, a block unit 130, and an input data output unit 140. ), A first matrix generator 150, a second matrix generator 160, a codeword generator 170, and a transmitter 180.
  • the original message data receiving unit 110 receives original message data from the outside.
  • the cutting unit 120 chops the received original message data based on '1' to generate a plurality of cut blocks. For example, the truncation unit 120 may determine that the received original message data has a bit between the first bit and the next bit whenever a bit with a '1' appears based on the first bit (from the first bit). Can be cut. For example, when the original message data is '0001010101', the cutting unit 120 cuts the original message data into '0001', '01', '01', and '01'.
  • the block unit 130 generates a message block composed of at least one cut block among the blocks cut by the cut unit 120.
  • the block unit 130 may include a first message block including all of the truncated blocks, and a second message block generated by removing the truncated blocks one by one from the first message block.
  • a message block can be generated with n-th message blocks. For example, when the cutting unit 120 cuts the original message data of '0001010101' into '0001', '01', '01', and '01', the block unit 130 is formed of the entire cut block.
  • '010101', '0101', and '01' may be generated from the first message block '0001010101' and the second to fourth message blocks. That is, the block unit 130 may generate a message block that is the same as the original message data cut by the cutting unit 120 or smaller in length (size) than the original message data. The block unit 130 continuously transfers the generated message blocks to the input data output unit 140.
  • the n-th message block generated by the block unit 130 is a block consisting entirely of '0', a block consisting of only one '1', and at least one '0' and one '1'. It can be one of the blocks consisting of '.
  • the original message data when the original message data consists only of '0', the original message data is directly generated as the codeword.
  • the original message data when the original message data is composed only of '0', the original message data may be generated as a message block through the cutting unit 120 and the block unit 130 as it is. In this case, the block unit 130 does not output the message block to the codeword generator 170 without outputting the input data output unit 140, the first matrix generator 150, and the second matrix generator 160.
  • the codeword generator 170 may directly generate the original message data as a codeword. That is, when the original message data consists only of '0', it may be directly transmitted to the codeword generation unit 170 only through the cutting unit 120 and the block unit 130.
  • the device may be configured to directly transfer the original message data to the codeword generator 170 without passing through the cutting unit 120 and the block unit 130. will be.
  • the zero block is transferred to the codeword generating unit 170 directly through the block unit 130 to be a codeword. Is generated.
  • the cutting unit 120 may be cut in order to generate a block in which '0001', '01', '01', and '00' are cut.
  • the last block is not transmitted to the input data output unit 140, the first matrix generator 150, and the second matrix generator 160, and the codeword generator ( 170 may be directly transmitted to generate a codeword.
  • the input data output unit 140 outputs the message blocks received from the block unit 130 as input data in order.
  • the input data output unit 140 outputs message blocks including at least one '1' among the generated message blocks as input data.
  • the input data output unit 140 transmits a message block including at least one '1' among the message blocks generated by the block unit 130 to the first matrix generator 150.
  • the block 130 may be configured to additionally perform the same function as that of the input data output unit 140. In this case, the block unit 130 and the input data output unit 140 are integrally formed.
  • the input data output unit 140 outputs the first message block, which is the original message data, as the first input data, and follows data composed of blocks other than one block among the divided blocks in the original message data. Output as input data.
  • the input data output unit 140 converts the data consisting of the remaining blocks except the block containing the first '1' from the first bit of the previously output input data into subsequent input data. Repeat the output steps.
  • the input data output unit 140 may repeat outputting the input message from the original message data to the nth message block received from the block unit 130.
  • the input data output unit 140 outputs the original message data '0001010101' as first input data, which is the first input data, and the first block, '0001'. '010101', the remaining data except for the block, is output as second input data, which is subsequent input data.
  • the input data output unit 140 outputs '0101', except for '01', the first block in the second input data, as the third input data, and '01', which is the first block in the third input data. Outputs '01' except for the fourth input data.
  • the cutting unit 120, the block unit 130, and the input data output unit 140 cut the original message data into blocks, and determine a block of the input data to be output. All methods that can reduce the computational burden through a so-called sub-routine method that cuts and blocks message data and outputs input data except for a specific block from previously output input data are within the scope of the present invention. It will be included.
  • the first matrix generator 150 has a kth column in which the n-bit input data received from the input data output unit 140 is arranged in n rows, and '1' is first present in the kth column.
  • a first matrix of size nxn is formed of each row except for a row, and remaining columns configured to have only one '1' in each column.
  • '1' existing in the remaining columns except for the kth column is in each row and each column in the order of the rows or the columns except for the first '1' in the kth column.
  • '1' is configured to exist one by one.
  • the k-th column including the input data may be a first column, and the remaining columns may be second to nth columns.
  • the first matrix generation unit 150 has k rows in which '1' exists first in the column in which the input data exists, '1' in the columns in which the input data does not exist is in the order of the rows. Accordingly, a first matrix is generated to exist in the first through (k-1) th rows and the (k + 1) through nth rows, respectively.
  • the first matrix generator 150 when the first matrix generator 150 receives the original message data '0001010101' as the first input data, the first matrix generator 150 arranges the first input data in the first column of the matrix and the remaining columns are represented by Equation 1 below. Generate a first matrix constructed as follows.
  • the first matrix generator 150 when the first matrix generator 150 receives '010101' as the second input data, the first matrix generator 150 arranges the second input data in the first column of the matrix and generates a matrix including the remaining columns as shown in Equation 2 below. do.
  • the first matrix generator 150 when the first matrix generator 150 receives '0101' as the third input data, the first matrix generator 150 arranges the third input data in the first column of the matrix and generates a matrix having the remaining columns as shown in Equation 3 below. do.
  • the first matrix generator 150 when the first matrix generator 150 receives '01' as the fourth input data, the first matrix generator 150 arranges the fourth input data in the first column of the matrix and generates a matrix having the remaining columns as shown in Equation 4 below. do.
  • the first matrix generator 150 configures the first matrix according to a predetermined rule based on the input data, and the number (type) of the matrix generated by the first matrix generator 150 is the original message data. It is determined by the number of blocks separated. That is, when the original message data contains a message block containing at least one '1', the number of first matrices is also a.
  • the second matrix generator 160 After obtaining the inverse of the first matrix generated by the first matrix generator 150, the second matrix generator 160 generates a second matrix by applying a modulus operation of 2 to the law. In this case, when the first matrix generator 150 generates a first matrix, the second matrix generator 160 also generates a second matrix.
  • the second matrix generator 160 is the first matrix of Equations 1 to 4.
  • the codeword generator 160 generates a codeword of length n 2 by using a second matrix of nxn size generated by the second matrix generator 160.
  • code word generator 170 generates a code word of n 2, the length of the first column to the n-th column of the second matrix, the generated in such a manner as to arrange them in a single line in order can do.
  • the codeword generator 170 may generate a codeword of '0100000000001000000000010000001000010101000010000000000100000000001000000000010000000000100000001' for the second matrix of Equation 5, and generate a codeword of '010000100101001000000100000010000001' for the second matrix of Equation 6. can do.
  • the codeword generator 170 When the codeword generator 170 generates a second matrix in the second matrix generator 160, the codeword generator 170 also generates a codeword.
  • the transmitter 180 transmits the codeword generated by the codeword generator 160 to the outside.
  • the encoding apparatus 100 using the low density inverse code cuts original message data and blocks the message message into blocks, outputs only some of the blocks as input data from the original message data, and outputs the input data.
  • the original message data using the feature of generating a matrix consisting of a column consisting of a low density columns containing only one '1', the first matrix to the inverse matrix calculation method and the second inverse matrix through the arithmetic operation
  • the computational burden can be reduced as compared to the encoding method.
  • FIG. 2 is a block diagram illustrating a decoding apparatus using a low density inverse code according to embodiments of the present invention.
  • the decoding apparatus 200 using the low density inverse code includes a transmission message receiver 210, a transmission message length measurement unit 220, a transmission message length comparison unit 230, A third matrix generator 240, a selector 250, a partial decoded message data generator 260, and a decoder 270 are included.
  • the decoding apparatus 200 using the low density inverse code receives predetermined information from the encoding apparatus 100 and performs a decoding process. At this time, the decoding apparatus 200 includes information on a row into which input data is inserted, information on a length of original message data, and a length of a decoded message (total length of a total decoded message up to a specific point in time). Information about at least one of the information about the information and the transmission message length may be received 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 receiver 210 may receive a transmission message of length n 2 .
  • the transmission message length measurement unit 220 measures the length of the transmission message transmitted from the transmission message receiver 210 and provides the transmission message length comparison unit 230 with the measured length of the transmission message.
  • the decoding apparatus 200 knows the information on the length of the transmission message without measuring the transmission message length, the received message to the transmission message length comparison unit 230 without passing through the transmission message length measurement unit 220 The transmission message may be delivered.
  • the transmission message length comparison unit 230 compares the length of the received transmission message with the remaining length obtained by subtracting the length of the decoded message from the length of the original message data. That is, the transmission message length comparison unit 230 compares the length of the message which has not yet been decoded with respect to the specific time point and the length of the transmission message received at the time point.
  • the transmission message length comparison unit 230 converts the received transmission message into the partial decoded message data generation unit 260. ), And the partial decryption message data generation unit 260 immediately generates the transmission message as partial decryption message data composed of all zeros.
  • the third matrix generator 240 uses the received transmission message to generate a third message. Create a matrix.
  • the third matrix generator 240 divides the transmission message into n blocks to generate a third matrix of nxn size. For example, when the transmission message has n 2 length, the third matrix generator 240 generates a third matrix of nxn size.
  • the third matrix generator 240 when the third matrix generator 240 receives a transmission message of '01000000000010000000000100000010000101010000100000000001000000000010000000000100000000001', the third matrix generator 240 generates a matrix, such as Equation 5, as a third matrix.
  • the third matrix may be a matrix having the same size as the second matrix.
  • it is not affected by the channel noise, it is generated as the same third matrix as the second matrix, but when the channel noise is affected, the corrupted transmission message is received. have. Nevertheless, the third matrix will have the same magnitude as the second matrix regardless of the channel noise.
  • the selector 250 selects a column having the highest density among the n columns of the generated third matrix. That is, the selector 250 selects a column having the highest density, and selects the highest density column that appears first when there are several columns having the same maximum density. In the embodiments of the present invention, the selector 250 selects a column that includes the largest number of '1' among the n columns. For example, when the third matrix is the matrix of Equation 5, the selector 250 selects the fourth column including '1' the most.
  • the selector 250 selects the fastest column when there are two or more columns including '1' relatively most among the n columns. That is, the selector 250 selects the first column based on the first column. For example, when the density of the second row and the fifth row is the same, the selector 250 may select the second row.
  • the selector 250 selects a column including '1' in the kth row. That is, in the decoding apparatus 200 that receives the information of inserting the input data into the k-th column by the encoding apparatus 100, the selector 250 selects each of the n columns of the third matrix, each of which has only one '1'. If so, select the column containing '1' in the kth row.
  • the selector 250 includes the first row among the first column and the second column. Is to select the second column in which '1' is located.
  • the partial decoded message data generator 260 generates partial decoded message data based on the column selected by the selector 250. In the embodiments of the present invention, when the column selected by the selector 250 is the d-th column, the partial decoded message data generation unit 260 has (d-1) '0's and one' 1 'in order. The data constructed as described above is generated as partial decrypted message data.
  • the partial decryption message data generator 260 generates the transmission message as partial decryption message data composed of all zeros.
  • the decoder 270 decodes the partial decoded message data generated by the partial decoded message data generator 260. For example, the decoder 270 may decode the generated partial decoded message data by successively combining the generated partial decoded message data in order.
  • the partial decoded message data generator 260 may Obtain '0001' having the fourth bit '1' as the first partial decoded message data. Subsequently, when the generated third matrix is the matrix of Equation 6 and the selector 250 selects the second column including the most '1', the partial decoding message data generation unit 260 has a second bit. '01', which is '1', is obtained as second partial decoded message data.
  • the decoder 270 may decode '0001010101' data.
  • the decoding apparatus 200 using the low density inverse code selects the most complex and highest density column in the matrix, and restores the original message data or the partial decoded message data constituting the original message data using the order of the selected columns. can do. Therefore, unlike the conventional decoding apparatus, not only can the performance of decoding the message by simple calculations and rules, but also the noise containing the highest density of the row containing the message data Since there is no significant effect, errors can be reduced.
  • FIG. 3 is a flowchart illustrating a coding method using a low density inverse code according to embodiments of the present invention.
  • original message data is received (S110), the original message data is cut into a plurality of blocks (S120), A message block composed of at least one truncated block among the truncated blocks is generated (S130), and the generated message block is output as input data (S140).
  • the received original message data is chopped based on '1' to generate a plurality of truncated blocks.
  • the data may be chopped into a plurality of blocks. That is, whenever a bit with '1' appears in the received original message data based on the first bit, the received original message data is truncated between the bit where the '1' exists and the next bit. For example, when the original message data is '0001010101', the original message data is cut into '0001', '01', '01', and '01'.
  • a message block composed of at least one truncated block among the truncated blocks is generated.
  • a message block may be generated from a first message block including all of the truncated blocks, and second to n th message blocks generated by removing the truncated blocks one by one from the first message block.
  • the n-th message block may be one of blocks consisting of all '0's, blocks consisting of only one' 1 'and blocks consisting of at least one' 0 'and one' 1 '.
  • the first message block, '0001010101' and the second, consisting of the truncated block as a whole '010101', '0101', and '01' may be generated as the message block to the fourth message block, respectively.
  • the original message data when the original message data is composed of only '0', the original message data is directly generated as a codeword through the steps of cutting and blocking the original message data.
  • the codeword is generated from the original message data without outputting as input data, generating a first matrix, and generating a second matrix.
  • the codewords are truncated and blocked.
  • the codeword generation step is performed on the zero block where the last block is '00'.
  • message blocks including at least one '1' among the generated message blocks are output as input data.
  • the first message block is output as first input data
  • the second to nth message blocks are sequentially output as subsequent input data.
  • the step of outputting the data consisting of the remaining blocks except for the block containing the first '1' from the first bit of the previously output input data as subsequent input data may be repeated until the last block including '1' is output from the original message data.
  • the original message data is '0001010101'
  • the original message data '0001010101' is output as the first input data, which is the first input data
  • the remaining data except for the '0001' block, which is the first block.
  • 010101 ' is output as second input data which is subsequent input data.
  • '0101' except for '01', which is the first block in the second input data is output as third input data
  • '01' except for '01', which is the first block, in the third input data, is fourth.
  • the input data is not composed only of '0'
  • the input data is received, and the k-th column is formed by arranging the n-bit input data into n rows in each of the n-bit input data.
  • the first matrix is configured such that one '1' exists in the remaining columns except the column. In this case, the remaining columns are configured such that only one '1' exists in each row and each column except the row in which '1' exists first in the k-th column.
  • the first matrix may have a size of n ⁇ n.
  • the first matrix has '1' present in the remaining columns except for the kth column, except that the first '1' appears in the kth column, in each row and each column in the order of the rows or the columns.
  • '1' is configured to exist one by one. That is, the column in which '1' exists in the rows in which the input data does not exist is determined according to the order of the rows, and the first matrix in which the column in which '1' exists first is skipped in the row in which the input data exists. Can be configured.
  • a column in which '1' exists for the first time in the column in which the input data exists is k columns
  • '1' in rows where the input data does not exist may correspond to the first column through k ⁇ according to the order of the rows.
  • the first matrix may be configured to exist in the column and the (k + 1) th to n th columns, respectively.
  • the input data may be arranged in the first column, and the remaining columns may be configured as the second to nth columns.
  • the second column is '1' in the first row except for the first '1' in the first column
  • the nth column is the first column in the first column.
  • the row where '1' exists in the last row except for and '1' exists in the third to (n-1) th columns may be formed in the order of the columns.
  • Equation 1 when the input data is '0001010101', when the input data is arranged in the first column and the remaining columns are arranged in accordance with the embodiments of the present invention, a matrix such as Equation 1 may be generated as the first matrix. Can be.
  • Equation 2 may be generated as the first matrix.
  • Equation 3 when the input data is '0101', when the input data is arranged in the first column and the remaining columns are arranged in accordance with the embodiments of the present invention, a matrix such as Equation 3 may be generated as the first matrix.
  • Equation 4 a matrix such as Equation 4 may be generated as the first matrix.
  • a second matrix is generated by applying a modulus operation of 2 as a law. For example, if the first matrix is the matrix of Equation 1, the second matrix will be the matrix of Equation 5.
  • n 2 length codewords may be generated by arranging n columns in one line in order. For example, when the second matrix is the matrix of Equation 6, the generated codeword is '010000100101001000000100000010000001'.
  • the number of input data, first matrix, second matrix, and codeword is also a.
  • the original message data is '0001010101', it is divided into four blocks, '0001', '01', '01', and '01', and the first matrix, the second matrix, and the codeword are also Four kinds can be achieved.
  • FIG. 4 is a flowchart illustrating a decoding method using a low density inverse code according to embodiments of the present invention.
  • a transmission message is received (S210), a length of the transmission message is measured (S220), and a length and an original of the transmission message are provided.
  • the remaining length is obtained by subtracting the length of the decoded message from the length of the message data (S230).
  • a third matrix is generated based on the transmission message (S240), a column having the highest density in the third matrix (S250), and the selected column
  • the generated partial decoded message data are combined and decoded (S270).
  • the original message data may be finally restored by repeating the steps by the number of the divided blocks.
  • a third matrix of size nxn can be generated.
  • a third matrix like Equation 6 may be generated.
  • a third matrix is not directly generated using the received transmission message, and the transmission message is directly generated as partial decoded message data composed of all zeros. This may occur when the codeword generated in the encoding step consists only of '0'.
  • a relatively dense row is selected from the n columns of the generated third matrix in the generated third matrix.
  • the third matrix is composed of n columns
  • a column including relatively most '1' among the n columns is selected.
  • the second column is selected as the column containing '1' the most.
  • the highest density column appears first.
  • the first column may be selected based on the first column. For example, when the density of the second column and the fifth column is equally high, the second column may be selected.
  • the column including '1' in the kth row is selected. That is, when the encoding step receives the information of inserting the input data into the k-th column, and when the n columns of the third matrix each include only one '1', the k-th row includes '1'. Select a column For example, when the third matrix is the matrix of Equation 8 (when input data is inserted into the first column by the encoding apparatus 100), '1' is positioned in the first row among the first and second columns. To select the second column.
  • a message is generated as partially decoded message data based on the column selected in the third matrix. For example, when the selected column is a d-th column, data consisting of (d-1) '0' and one '1' in order is generated as partial decoded message data.
  • decoding is performed using the generated partial decoded message data.
  • the pre-generated partial decoded message data may be decoded by successively combining the previously generated partial decoded message data in order.
  • the first generated third matrix is the matrix of Equation 5, and the fourth column including '1' most will be selected. Accordingly, '0001' having the fourth bit '1' is obtained as the first partial decoded message data. Subsequently, when the generated third matrix is the matrix of Equation 6 and the second column including the most '1' is selected, '01' having the second bit '1' is used as the second partial decoded message data. Obtained.

Abstract

The present invention relates to a method and an apparatus for encoding/decoding using a sparse inverse code. The method for encoding comprises the steps of: forming a first matrix having a size of n x n, comprising a kth column in which each bit from inputted data from the outside that comprises n number of bits is aligned in an n number of rows, each column excluding the first column in which '1' exists from the kth column, and remaining columns configured so that only one '1' exists in each of the columns; and a step of forming a second matrix by finding a reverse matrix of the first matrix, and applying to the reverse matrix a modulus operation in which 2 is the modulus; and generating and transmitting a codeword by using the second matrix. In addition, the method for decoding comprises the steps of: receiving a transmitted message; comparing with a remaining length, which is calculated by subtracting the length of a pre-decoded message from the length of the transmitted message and the length of original message data; differentiating the transmitted message as an n block and forming a third matrix having a size of n x n, when the length of the transmitted message and the remaining length that are measured are different as a result of the comparison, and generating the transmitted message into partially decoded message data comprising all 0s, when the length of the transmitted message and the remaining length that are measured are identical as a result of the comparison; selecting the relatively densest column from an n number of columns in the third matrix which is generated; generating the partially decoded message data on the basis of the row that is selected; and decoding by using the partially decoded message data that is generated.

Description

저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치Method and apparatus for encoding / decoding using low density inverse code
본 발명은 저밀도 역 코드(sparse inverse code)를 이용한 부호화/복호화 방법 및 장치에 관한 것으로서, 원본 메시지 데이터를 이용한 메시지 블록을 이용하여 행렬을 생성하고, 생성한 행렬의 역행렬과 데이터의 밀도(density)를 이용하여 메시지를 쉽게 부호화하고 복호화 할 수 있는 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for encoding / decoding using a low density inverse code, wherein a matrix is generated using a message block using original message data, and an inverse matrix of the generated matrix and data density are used. A method and apparatus for encoding / decoding using a low density inverse code that can easily encode and decode a message using
일반적으로, 많은 통신 장치나 기록 재생 장치에 있어서는 입력 정보 계열을 부호화한 부호 계열을 전송함으로써 디지털 전송 정보의 비트 오류율(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.
섀넌 한계에 가까운 성능을 나타내는 부호화 방법으로서, 예를 들어 병렬 연접 컨볼루션 부호(parallel concatenated convolutional codes)나, 종렬 연접 컨볼루션 부호(serial concatenated convolutional codes) 등의, 소위 터보 부호화(turbo coding)라는 방법이 개발되고 있다.As a coding method exhibiting performance near the Shannon limit, for example, a method called so-called turbo coding such as parallel concatenated convolutional codes or serial concatenated convolutional codes. Is being developed.
또 최근에는, 이들 터보 부호화 이외에 전송 정보의 BER의 저감에 유효한 오류 정정 부호의 하나로서, 저밀도 패리티 검사[LDPC(low-density parity-check code)] 부호의 연구가 활발히 행해지고 있다.In recent years, research has been actively conducted on low density parity check (LDPC (low-density parity-check code)) codes as one of error correction codes effective for reducing BER of transmission information in addition to these turbo coding.
LDPC 부호는 R.G.Gallager에 의해 1963년에 제안된 부호화 방법으로 매우 우수한 복호(decoding) 성능을 갖고 있는 것이 밝혀졌다. 특히, 최근의 연구에 의해 LDPC 부호는 부호율이 낮은 부호에서는 부호 길이를 길게 해 감에 따라 섀넌 한계에 가까운 성능이 얻어지는 것을 알 수 있다. The LDPC code is a coding method proposed in 1963 by R.G.Gallager and has been found to have a very good decoding performance. In particular, recent studies have shown that LDPC codes have a performance close to Shannon's limit as the code length increases in codes having low code rates.
그러나 매우 우수한 복호 성능을 갖고 있는 LDPC 부호 방법에 의하면, 복호 성능에 비하여 부호화(encoding) 단계에서 효율적이지 못하고, 계산이 복잡해지는 문제점이 발생한다. However, according to the LDPC coding method having a very good decoding performance, there is a problem that it is not efficient in the encoding step and the calculation is complicated as compared with the decoding performance.
이에 부호화 단계에서부터 계산 과정을 줄일 수 있으며 복호화 단계에서도 데이터의 복호 성능이 개선된 코딩 방법의 필요성이 크게 대두되고 있다. Accordingly, a need for a coding method capable of reducing a calculation process from an encoding stage and an improved decoding performance of data has emerged in the decoding stage.
본 발명은 이와 같은 문제점을 해결하기 위한 것으로, 본 발명은 원본 메시지 데이터를 일정 규칙에 의하여 복수개의 블록들로 절단하고, 절단한 블록을 이용하여 메시지 블록을 생성하고, 메시지 블록을 이용하여 저밀도 행렬을 생성하고 생성된 행렬의 역행렬(inverse matrix)을 구한 후, 2를 법(modulus 2)으로 하는 연산을 적용하여 저밀도 역행렬을 사용하여 부호화함으로써, 부호화에 사용되는 계산을 감소시킬 수 있는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법을 제공하는 데에 그 목적이 있다.The present invention is to solve such a problem, the present invention is to cut the original message data into a plurality of blocks by a predetermined rule, to generate a message block using the cut block, a low-density matrix using the message block Low-density inverse code that can reduce the computation used for encoding by generating a matrix and obtaining an inverse matrix of the generated matrix, and then encoding using a low-density inverse matrix by applying an operation of modulus 2 An object of the present invention is to provide a coding method using sparse inverse code.
또한, 본 발명은 상기 부호화 방법에 의하여 부호화된 데이터를 행렬로 생성하고, 생성된 행렬에서 각 열(column)의 밀도(density)를 기반으로 데이터를 복호화함으로써, 복잡한 계산 과정이 생략되어 복호 성능을 개선시킬 수 있는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법을 제공하는 데에 그 목적이 있다.In addition, the present invention generates a data encoded by the encoding method as a matrix, and by decoding the data based on the density of each column in the generated matrix, a complex calculation process is omitted to improve the decoding performance An object of the present invention is to provide a decoding method using a sparse inverse code that can be improved.
나아가, 본 발명은 상기 부호화/복호화 방법을 실행하기 위한 저밀도 역 코드를 이용한 부호화/복호화 장치를 제공하는 데에 그 목적이 있다.Furthermore, an object of the present invention is to provide an encoding / decoding apparatus using a low density inverse code for executing the encoding / decoding method.
본 발명의 실시예들에 따른 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법에 따르면, 외부로부터 전달받은 n개 비트로 이루어진 입력 데이터를 각 비트를 n 개의 행으로 정렬한 제k 열(column)과, 상기 제 k열에서 최초로 '1'이 존재하는 행을 제외한 각 행과 각 열에서 하나의 '1'만이 존재하도록 구성된 나머지 열들로 이루어진 n x n 크기의 제 1행렬을 생성하는 단계; 상기 제1 행렬의 역행렬을 구하고, 상기 역행렬에 대하여 2를 법으로 하는 법 연산(modulus operation)을 적용하여 제2 행렬을 생성하는 단계; 및 상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하여 전송하는 단계를 포함한다. According to an encoding method using a sparse inverse code according to an embodiment of the present invention, a k-column in which n bits of input data received from the outside is arranged in n rows, Generating a first matrix having an nxn size consisting of each row except for the first '1' in k-th column and the remaining columns configured to have only one '1' in each column; 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.
한편, 상기 제1 행렬을 생성하는 단계에서 생성된 상기 제 1행렬은 상기 제k 열을 제외한 나머지 행들에 존재하는 '1'은 상기 제k 열에서 최초로 '1'이 나타나는 행을 제외하고, 행의 순서 또는 열의 순서대로 각 행과 각 열에 '1'이 하나씩 존재하도록 구성될 수 있다. On the other hand, the first matrix generated in the step of generating the first matrix is '1' present in the remaining rows except for the kth column, except that the first '1' appears in the kth column. Each row and column may have one '1' in the order of or columns.
본 발명의 실시예들에 있어서, 상기 제1 행렬을 생성하는 단계 이전에, 외부로부터 원본 메시지 데이터를 수신하는 단계; 상기 수신한 원본 메시지 데이터를 '1'을 기준으로 절단(chopping)하여 복수개의 절단된 블록들로 생성하는 단계; 상기 절단된 블록들 중 적어도 하나의 절단된 블록으로 구성된 메시지 블록을 생성하는 단계; 상기 생성된 메시지 블록들 중에서 적어도 하나의 '1'을 포함하는 메시지 블록들을 입력 데이터로 출력하는 단계를 더 포함할 수 있다. In embodiments of the present invention, prior to generating the first matrix, receiving original message data from an external source; Chopping the received original message data on the basis of '1' to generate a plurality of truncated blocks; Generating a message block composed of at least one truncated block of the truncated blocks; The method may further include outputting message blocks including at least one '1' among the generated message blocks as input data.
본 발명의 실시예들에 있어서, 상기 수신한 원본 메시지 데이터를 복수개의 블록들로 절단(chopping)하는 단계는 상기 수신한 원본 메시지 데이터를 최초의 비트를 기준으로 '1'이 나오는 비트가 나올 때마다 상기 '1'이 존재하는 비트와 다음 비트 사이를 절단하는 방식이 사용될 수 있다. In embodiments of the present invention, the step of chopping the received original message data into a plurality of blocks may be performed when a bit of '1' appears based on the first bit of the received original message data. Each time, a method of cutting between the bit in which the '1' exists and the next bit may be used.
본 발명의 실시예들에 있어서, 상기 메시지 블록을 생성하는 단계는 상기 메시지 블록은 상기 절단된 블록들 전체로 구성된 제1 메시지 블록과, 상기 제1 메시지 블록에서 상기 절단된 블록을 하나씩 제거하여 생성된 제2 메시지 블록 내지 제n 메시지 블록들로 이루어진다. 이 때, 상기 제n 메시지 블록은 모두 '0'으로 이루어진 블록, 하나의 '1'로만 이루어진 블록 및 적어도 하나의 '0'과 하나의 '1'로만 이루어진 블록들 중 하나가 될 수 있다. In an embodiment of the present disclosure, the generating of the message block may include generating the message block by removing a truncated block one by one from the first message block including the truncated blocks as a whole. Second message blocks to n-th message blocks. At this time, the n-th message block may be one of all blocks consisting of '0', blocks consisting of only one '1' and blocks consisting of at least one '0' and one '1'.
이어서, 상기 메시지 블록을 입력 데이터로 출력하는 단계는 상기 제1 메시지 블록 내지 제n 메시지 블록을 순서대로 입력 데이터로 출력할 수 있다. Subsequently, the outputting of the message block as input data may output the first to n-th message blocks as input data in order.
본 발명의 실시예들에 있어서, 상기 원본 메시지 데이터가 '0'으로만 이루어진 경우에는 상기 원본 메시지 데이터를 상기 코드워드로 생성할 수 있다. In embodiments of the present invention, when the original message data consists only of '0', the original message data may be generated as the codeword.
본 발명의 실시예들에 있어서, 상기 절단된 블록들 중 적어도 하나의 절단된 블록으로 구성된 메시지 블록을 생성하는 단계는 상기 절단된 블록들 중에서 '0'으로만 이루어진 영 블록을 상기 코드워드로 생성할 수 있다. 이 때, 상기 영 블록에 근거로 코드워드로 생성하는 단계는 상기 메시지 블록들을 근거로 코드워드를 생성하는 단계 이후에 수행된다. In an embodiment of the present disclosure, generating the message block composed of at least one truncated block among the truncated blocks may generate a zero block consisting of only zeros among the truncated blocks as the codeword. can do. At this time, the step of generating a codeword based on the zero block is performed after the step of generating a codeword based on the message blocks.
본 발명의 실시예들에 있어서, 상기 생성된 메시지 블록들이 a개인 경우에는 상기 코드워드가 a개가 생성되고, 상기 생성된 메시지 블록들 중에서 적어도 하나의 '1'을 포함하는 메시시 블록이 b개인 경우에는 상기 입력 데이터, 상기 제1 행렬, 상기 제2 행렬 및 상기 코드워드가 b개가 생성된다. In embodiments of the present invention, when the generated message blocks are a, a codeword is generated, and a message block including b at least one '1' is generated among the generated message blocks. In this case, b the input data, the first matrix, the second matrix and the codeword are generated.
본 발명의 실시예들에 있어서, 상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하기 위하여, 상기 생성된 제2 행렬의 제1 열 내지 제n 열을 순서대로 연결하는 방식으로 n2 길이의 코드워드를 생성한다. 이 때, 상기 입력 데이터가 n개 비트로 이루어진 경우, 상기 제2 행렬을 이용하여 생성한 코드워드는 n2의 길이를 갖는다.In embodiments of the present invention, in order to generate a codeword using the second matrix, n 2 lengths are formed by concatenating the first to nth columns of the generated second matrix in order. Generate a codeword of. At this time, when the input data is composed of n bits, the codeword generated using the second matrix has a length of n 2 .
본 발명의 실시예들에 따른 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법에 따르면, 전송 메시지를 수신하는 단계; 상기 수신한 전송 메시지의 길이와 원본 메시지 데이터의 길이에서 기복호화된 메시지의 길이를 뺀 잔여 길이를 비교하는 단계; 상기 비교 결과, 상기 측정된 전송 메시지의 길이와 상기 잔여 길이가 다를 경우, 상기 전송 메시지를 n 블록으로 구분하여 n x n 크기의 제3 행렬을 생성하는 단계; 상기 생성된 제3 행렬의 n 개의 열(column)들 중에서 상대적으로 가장 고밀도(densest)인 열을 선택하는 단계; 상기 선택한 열을 근거로 부분 복호화 메시지 데이터를 생성하는 단계; 및 상기 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 단계로 이루어진다. According to a decoding method using a sparse inverse code in accordance with embodiments of the present invention, a method comprising: receiving a transmission message; Comparing the length of the received transmission message with the length of the original message data minus the length of the decoded message; Generating a third matrix of size n × n by dividing the transmission message into n blocks if the length of the measured transmission message and the remaining length are different from each other as a result of the comparison; Selecting a relatively densest column among the n columns of the generated third matrix; Generating partial decoded message data based on the selected column; And decoding using the generated partial decrypted message data.
본 발명의 실시예들에 있어서, 상기 수신한 전송 메시지의 길이와 상기 잔여 길이를 비교하는 단계 이전에, 상기 수신한 전송 메시지의 길이를 측정하는 단계를 수행할 수 있다. In embodiments of the present disclosure, the step of measuring the length of the received transmission message may be performed before comparing the length of the received transmission message with the remaining length.
본 발명의 실시예들에 있어서, 상기 비교 결과, 상기 측정된 전송 메시지의 길이와 상기 잔여 길이가 동일한 경우, 상기 전송 메시지를 모두 '0'으로 구성된 부분 복호화 메시지 데이터로 생성한다. In embodiments of the present invention, if the length of the measured transmission message and the remaining length are the same as the result of the comparison, all of the transmission message is generated as partial decoded message data composed of '0'.
본 발명의 실시예들에 있어서, 상기 생성된 제3 행렬의 n 개의 열들 중에서 상대적으로 가장 고밀도(densest)인 열을 선택하는 단계에서, 상기 n 개의 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 열을 선택한다. 이 때, 상기 n 개의 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 열이 둘 이상인 경우, 제1 열을 기준으로 최초의 열을 선택한다. 또한, 상기 n 개의 열들 각각이 하나의 '1'만을 포함하고 있는 경우, 제k 행에 '1'을 포함하고 있는 열을 선택한다. In the embodiments of the present invention, in selecting the relatively densest column among the n columns of the generated third matrix, the number of '1' is relatively the highest among the n columns. Select a column In this case, when there are two or more columns including '1' relatively most among the n columns, the first column is selected based on the first column. In addition, when each of the n columns includes only one '1', a column including '1' in the kth row is selected.
본 발명의 실시예들에 있어서, 상기 선택한 열을 근거로 부분 복호화 메시지 데이터를 생성하는 단계에서, 상기 선택한 열이 d 번째 열인 경우, (d-1)개의 '0'과 하나의 '1'이 순서대로 구성된 데이터를 부분 복호화 메시지 데이터로 생성한다. In embodiments of the present invention, in the step of generating partial decoded message data based on the selected column, when the selected column is a d-th column, (d-1) '0' and one '1' The data constructed in the order is generated as partial decrypted message data.
본 발명의 실시예들에 있어서, 상기 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 단계에서, 상기 생성된 부분 복호화 메시지 데이터를 이전에 생성된 부분 복호화 메시지 데이터에 순서대로 연속 결합하는 방식으로 복호화한다. In the embodiments of the present invention, in the decoding using the generated partial decoded message data, the generated partial decoded message data is decoded by successively combining the generated partial decoded message data in order. .
본 발명의 실시예들에 따른 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치는 외부로부터 전달받은 n 개 비트로 이루어진 입력 데이터를 각 비트를 n 개의 행으로 정렬한 제k 열(column)과, 상기 제 k열에서 최초로 '1'이 존재하는 행을 제외한 각 행과 각 열에서 하나의 '1'만이 존재하도록 구성된 나머지 열들로 이루어진 n x n 크기의 제 1행렬을 생성하는 제1 행렬 생성부; 상기 제1 행렬의 역행렬을 구하고, 상기 역행렬에 대하여 2를 법으로 하는 법 연산(modulus operation)을 적용하여 제2 행렬을 생성하는 제2 행렬 생성부; 상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하는 코드워드 생성부; 및 상기 생성한 코드워드를 외부로 전송하는 코드워드 전송부를 포함한다. An encoding apparatus using a low density inverse code according to an embodiment of the present invention includes a k-column in which n bits are arranged in n rows of input data consisting of n bits received from the outside, and A first matrix generator configured to generate a first matrix having an nxn size consisting of each row except for the first row having '1' in k-th column and the remaining columns configured to have only one '1' in each column; 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 codeword transmitter for transmitting the generated codeword to the outside.
본 발명의 실시예들에 있어서, 외부로부터 원본 메시지 데이터를 수신하는 원본 메시지 데이터 수신부; 상기 수신한 원본 메시지 데이터를 '1'을 기준으로 절단(chopping)하여 복수개의 절단된 블록들로 생성하는 절단부; 상기 절단된 블록들 중 적어도 하나의 절단된 블록으로 구성된 메시지 블록을 생성하는 블록부; 및 상기 생성된 메시지 블록들 중에서 적어도 하나의 '1'을 포함하는 메시지 블록들을 입력 데이터로 출력하는 입력 데이터 출력부를 더 포함할 수 있다. In an embodiment of the present invention, the original message data receiving unit for receiving the original message data from the outside; A truncation unit chopping the received original message data based on '1' to generate a plurality of truncated blocks; A block unit generating a message block composed of at least one truncated block among the truncated blocks; And an input data output unit configured to output message blocks including at least one '1' among the generated message blocks as input data.
본 발명의 실시예들에 따른 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치는 전송 메시지를 수신하는 전송 메시지 수신부; 상기 수신한 전송 메시지의 길이와 원본 메시지 데이터의 길이에서 기복호화된 메시지의 길이를 뺀 잔여 길이를 비교하는 전송 메시지 길이 비교부; 상기 비교 결과, 상기 측정된 전송 메시지의 길이와 상기 잔여 길이가 다를 경우, 상기 전송 메시지를 n 블록으로 구분하여 n x n 크기의 제3 행렬을 생성하는 제3 행렬 생성부; 상기 생성된 제3 행렬의 n 개의 열들 중에서 상대적으로 가장 고밀도(densest)인 열을 선택하는 선택부; 상기 선택한 열을 근거로 부분 복호화 메시지 데이터를 생성하는 부분 복호화 메시지 데이터 생성부; 및 상기 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 복호화부를 포함한다.Decoding apparatus using a 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 comparison unit for comparing the length of the received transmission message with the length of the original message data minus the length of the decoded message; A third matrix generator configured to generate a third matrix having a size of n × n by dividing the transmission message into n blocks when the measured length of the transmission message and the remaining length are different from each other; A selection unit for selecting a column having the highest density among the n columns of the generated third matrix; A partial decrypted message data generation unit generating partial decrypted message data based on the selected column; And a decoder which decodes the generated partial decoded message data.
본 발명의 실시예들에 있어서, 상기 수신한 전송 메시지의 길이를 측정하고, 상기 측정한 전송 메시지의 길이를 상기 전송 메시지 길이 비교부에게 제공하는 전송 메시지 길이 측정부를 더 포함할 수 있다. In embodiments of the present invention, the transmission message length measuring unit for measuring the length of the received transmission message, and providing the length of the measured transmission message to the transmission message length comparison unit may be further included.
이상에서 설명한 바와 같은 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치에 따르면 다음과 같은 효과가 있다.According to the encoding / decoding method and apparatus using the low density inverse code as described above, the following effects are obtained.
첫째, 원본 메시지 데이터를 복수개의 블록들로 절단하고, 최초 입력 데이터 이후의 입력 데이터는 상기 절단된 블록들의 일부 블록들로 구성함으로써, 계산 부담을 감소시킬 수 있다.First, the original message data is cut into a plurality of blocks, and the input data after the initial input data consists of some blocks of the truncated blocks, thereby reducing the computational burden.
둘째, 입력 데이터를 특정 행에 배치하고, 단위행렬(identity matrix)과 영행렬(zero matrix)을 배치하여 입력 데이터를 포함한 n x n 행렬을 생성함으로써, 추후 계산 과정이 줄어든다. Second, by arranging the input data in a specific row and by placing an identity matrix and a zero matrix to generate an n x n matrix including the input data, further calculation process is reduced.
셋째, 입력 데이터, 단위행렬 그리고 영행렬로 구성된 저밀도 비특이 행렬의 역행렬의 규칙을 활용함으로써, 역행렬에 대한 계산 부담이 줄어든다. Third, by utilizing the rules of the inverse of the low density non-specific matrix composed of the input data, the unit matrix, and the zero matrix, the computational burden on the inverse matrix is reduced.
넷째, 부호화 단계에서 행렬의 법칙에 따라 생성된 코드워드를 수신하여 이를 복호화 함으로써 계산 과정이 줄어든다.Fourth, the calculation process is reduced by receiving and decoding a codeword generated according to the law of the matrix in the encoding step.
다섯째, 데이터가 포함된 행이 가장 높은 밀도(density)를 가지는 것을 이용하여 데이터와 관련된 행을 선택함으로써, 복호화 과정을 효율적으로 할 수 있다. Fifth, the decoding process may be efficiently performed by selecting a row related to data by using a row having data having the highest density.
[도 1]은 본 발명의 실시예들에 따른 저밀도 역 코드를 이용한 부호화 장치를 설명하기 위한 블록도1 is a block diagram illustrating an encoding apparatus using a low density inverse code according to embodiments of the present invention.
[도 2]는 본 발명의 실시예들에 따른 저밀도 역 코드를 이용한 복호화 장치를 설명하기 위한 블록도2 is a block diagram illustrating a decoding apparatus using a low density inverse code according to embodiments of the present invention.
[도 3]은 본 발명의 실시예들에 따른 저밀도 역 코드를 이용한 부호화 방법을 설명하기 위한 순서도3 is a flowchart illustrating a coding method using a low density inverse code according to embodiments of the present invention.
[도 4]는 본 발명의 실시예들에 따른 저밀도 역 코드를 이용한 복호화 방법을 설명하기 위한 순서도4 is a flowchart illustrating a decoding method using a low density inverse code according to embodiments of the present invention.
첨부한 도면을 참조하여 본 발명의 실시예들에 따른 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치에 대하여 상세히 설명한다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나, 개략적인 구성을 이해하기 위하여 실제보다 축소하여 도시한 것이다.A method and apparatus for encoding / decoding using a low density inverse code according to embodiments of the present invention will be described in detail with reference to the accompanying drawings. 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은 본 발명의 실시예들에 따른 저밀도 역 코드를 이용한 부호화 장치를 설명하기 위한 블록도이다. 1 is a block diagram illustrating an encoding apparatus using a low density inverse code according to embodiments of the present invention.
도 1을 참조하면, 본 발명의 실시예들에 따른 저밀도 역 코드를 이용한 부호화 장치(100)는 원본 메시지 데이터 수신부(110), 절단부(120), 블록부(130), 입력 데이터 출력부(140), 제1 행렬 생성부(150), 제2 행렬 생성부(160), 코드워드(codeword) 생성부(170) 및 전송부(180)를 포함한다. Referring to FIG. 1, the encoding apparatus 100 using the low density inverse code according to the embodiments of the present invention may include an original message data receiver 110, a truncation unit 120, a block unit 130, and an input data output unit 140. ), A first matrix generator 150, a second matrix generator 160, a codeword generator 170, and a transmitter 180.
원본 메시지 데이터 수신부(110)는 외부로부터 원본 메시지 데이터를 수신한다. The original message data receiving unit 110 receives original message data from the outside.
절단부(120)는 상기 수신한 원본 메시지 데이터를 '1'을 기준으로 절단(chopping)하여 복수개의 절단된 블록들로 생성한다. 예를 들어, 절단부(120)는 상기 수신한 원본 메시지 데이터를 최초의 비트를 기준으로(첫 번째 비트로부터) '1'이 나오는 비트가 나올 때마다 상기 '1'이 존재하는 비트와 다음 비트 사이를 절단할 수 있다. 예를 들어, 원본 메시지 데이터가 '0001010101'일 경우, 절단부(120)는 '0001', '01', '01', '01'로 원본 메시지 데이터를 절단한다. The cutting unit 120 chops the received original message data based on '1' to generate a plurality of cut blocks. For example, the truncation unit 120 may determine that the received original message data has a bit between the first bit and the next bit whenever a bit with a '1' appears based on the first bit (from the first bit). Can be cut. For example, when the original message data is '0001010101', the cutting unit 120 cuts the original message data into '0001', '01', '01', and '01'.
블록부(130)는 절단부(120)에서 절단한 블록들 중 적어도 하나의 절단된 블록으로 구성된 메시지 블록을 생성한다. 본 발명의 실시예들에 있어서, 블록부(130)는 상기 절단된 블록들 전체로 구성된 제1 메시지 블록과, 상기 제1 메시지 블록에서 상기 절단된 블록을 하나씩 제거하여 생성된 제2 메시지 블록 내지 제n 메시지 블록들로 메시지 블록을 생성할 수 있다. 예를 들어, 절단부(120)가 '0001010101'인 원본 메시지 데이터를 '0001', '01', '01', '01'로 절단한 경우, 블록부(130)는 절단된 블록 전체로 이루어진 제1 메시지 블록인'0001010101'과 제2 메시지 블록 내지 제4 메시지 블록으로 '010101', '0101', '01'를 각각 생성할 수 있다. 즉, 블록부(130)는 절단부(120)가 절단한 원본 메시지 데이터와 같거나 원본 메시지 데이터보다 길이(크기)가 작은 메시지 블록을 생성할 수 있다. 그리고 블록부(130)는 생성한 메시지 블록들을 연속하여 입력 데이터 출력부(140)로 전달한다. The block unit 130 generates a message block composed of at least one cut block among the blocks cut by the cut unit 120. In some embodiments of the present invention, the block unit 130 may include a first message block including all of the truncated blocks, and a second message block generated by removing the truncated blocks one by one from the first message block. A message block can be generated with n-th message blocks. For example, when the cutting unit 120 cuts the original message data of '0001010101' into '0001', '01', '01', and '01', the block unit 130 is formed of the entire cut block. '010101', '0101', and '01' may be generated from the first message block '0001010101' and the second to fourth message blocks. That is, the block unit 130 may generate a message block that is the same as the original message data cut by the cutting unit 120 or smaller in length (size) than the original message data. The block unit 130 continuously transfers the generated message blocks to the input data output unit 140.
본 발명의 실시예들에 있어서, 블록부(130)가 생성한 제n 메시지 블록은 모두 '0'으로 이루어진 블록, 하나의 '1'로만 이루어진 블록 및 적어도 하나의 '0'과 하나의 '1'로 이루어진 블록들 중 하나가 될 수 있다. In the embodiments of the present invention, the n-th message block generated by the block unit 130 is a block consisting entirely of '0', a block consisting of only one '1', and at least one '0' and one '1'. It can be one of the blocks consisting of '.
한편, 원본 메시지 데이터가 '0'으로만 이루어진 경우에는 상기 원본 메시지 데이터를 상기 코드워드로 바로 생성한다. 예를 들어, 원본 메시지 데이터가 '0'으로만 이루어진 경우, 원본 메시지 데이터가 그대로 절단부(120)와 블록부(130)를 거쳐 메시지 블록으로 생성될 수 있다. 이 때, 블록부(130)는 상기 메시지 블록을 입력 데이터 출력부(140), 제1 행렬 생성부(150) 및 제2 행렬 생성부(160)로 출력하지 않고 코드워드 생성부(170)로 출력하고, 코드워드 생성부(170)는 상기 원본 메시지 데이터를 코드워드로 바로 생성할 수 있다. 즉, 원본 메시지 데이터가 '0'으로만 이루어진 경우에는 절단부(120)와 블록부(130)만 거쳐 코드워드 생성부(170)로 바로 전달될 수 있다. On the other hand, when the original message data consists only of '0', the original message data is directly generated as the codeword. For example, when the original message data is composed only of '0', the original message data may be generated as a message block through the cutting unit 120 and the block unit 130 as it is. In this case, the block unit 130 does not output the message block to the codeword generator 170 without outputting the input data output unit 140, the first matrix generator 150, and the second matrix generator 160. The codeword generator 170 may directly generate the original message data as a codeword. That is, when the original message data consists only of '0', it may be directly transmitted to the codeword generation unit 170 only through the cutting unit 120 and the block unit 130.
이와 달리, 원본 메시지 데이터가 '0'으로만 이루어진 경우, 절단부(120)와 블록부(130)를 거치지 않고 상기 원본 메시지 데이터를 코드워드 생성부(170)로 바로 전달하도록 장치를 구성할 수도 있을 것이다. On the contrary, when the original message data consists only of '0', the device may be configured to directly transfer the original message data to the codeword generator 170 without passing through the cutting unit 120 and the block unit 130. will be.
마찬가지로, 절단부(120)가 절단한 블록들 중에서 '0'으로만 이루어진 영 블록이 존재하는 경우에도, 상기 영 블록은 블록부(130)를 거쳐 바로 코드워드 생성부(170)로 전달되어 코드워드로 생성된다. 예를 들어, 원본 메시지 데이터가 '0001010100'인 경우, 절단부(120)는 순서대로 절단하여'0001', '01', '01', '00'이 절단된 블록으로 생성될 수 있다. 이 때, 마지막 블록은 '00'으로 이루어진 영 블록이므로, 입력 데이터 출력부(140), 제1 행렬 생성부(150)와 제2 행렬 생성부(160)로 전달되지 않고, 코드워드 생성부(170)로 바로 전달되어 코드워드로 생성될 수 있다. Similarly, even when there is a zero block composed of only '0' among the blocks cut by the cutting unit 120, the zero block is transferred to the codeword generating unit 170 directly through the block unit 130 to be a codeword. Is generated. For example, when the original message data is '0001010100', the cutting unit 120 may be cut in order to generate a block in which '0001', '01', '01', and '00' are cut. In this case, since the last block is a zero block composed of '00', the last block is not transmitted to the input data output unit 140, the first matrix generator 150, and the second matrix generator 160, and the codeword generator ( 170 may be directly transmitted to generate a codeword.
입력 데이터 출력부(140)는 블록부(130)로부터 전달받은 메시지 블록들을 입력 데이터로 순서대로 출력한다. 본 발명의 실시예들에 있어서, 입력 데이터 출력부(140)는 상기 생성된 메시지 블록들 중에서 적어도 하나의 '1'을 포함하는 메시지 블록들을 입력 데이터로 출력한다. 한편, 입력 데이터 출력부(140)는 블록부(130)에서 생성한 메시지 블록들 중 적어도 하나의 '1'을 포함하는 메시지 블록을 제1 행렬 생성부(150)로 전달하는 기능을 하는 것이므로, 블록부(130)에서 입력 데이터 출력부(140)의 기능과 동일한 기능을 추가적으로 수행하도록 장치를 구성할 수 있다. 이 경우에는 블록부(130)와 입력 데이터 출력부(140)가 일체로 구성되는 것이다. The input data output unit 140 outputs the message blocks received from the block unit 130 as input data in order. In embodiments of the present invention, the input data output unit 140 outputs message blocks including at least one '1' among the generated message blocks as input data. Meanwhile, since the input data output unit 140 transmits a message block including at least one '1' among the message blocks generated by the block unit 130 to the first matrix generator 150, The block 130 may be configured to additionally perform the same function as that of the input data output unit 140. In this case, the block unit 130 and the input data output unit 140 are integrally formed.
입력 데이터 출력부(140)는 원본 메시지 데이터인 제1 메시지 블록을 최초 입력 데이터로 출력하고, 상기 원본 메시지 데이터에서 상기 구분된 복수개의 블록들 중에서 하나의 블록을 제외한 나머지 블록들로 이루어진 데이터를 후속 입력 데이터로 출력한다. 본 발명의 실시예들에 있어서, 입력 데이터 출력부(140)는 이전에 출력한 입력 데이터의 첫 번째 비트로부터 최초의 '1'이 포함된 블록을 제외한 나머지 블록들로 이루어진 데이터를 후속 입력 데이터로 출력하는 단계를 반복한다. The input data output unit 140 outputs the first message block, which is the original message data, as the first input data, and follows data composed of blocks other than one block among the divided blocks in the original message data. Output as input data. In the embodiments of the present invention, the input data output unit 140 converts the data consisting of the remaining blocks except the block containing the first '1' from the first bit of the previously output input data into subsequent input data. Repeat the output steps.
또한, 입력 데이터 출력부(140)는 상기 원본 메시지 데이터에서 블록부(130)로부터 전달받은 제n 메시지 블록까지 입력 데이터로 출력하는 것을 반복할 수 있다. 예를 들어, 원본 메시지 데이터가 '0001010101'일 경우, 입력 데이터 출력부(140)는 원본 메시지 데이터인 '0001010101'을 최초의 입력 데이터인 제1 입력 데이터로 출력하고, 제일 앞의 블록인'0001'블록을 제외한 나머지 데이터인 '010101'을 후속 입력 데이터인 제2 입력 데이터로 출력한다. 이어서, 입력 데이터 출력부(140)는 제2 입력 데이터에서 제일 앞의 블록인 '01'을 제외한 '0101'을 제3 입력 데이터로 출력하며, 제3 입력 데이터에서 제일 앞의 블록인 '01'을 제외한 '01'을 제4 입력 데이터로 출력한다. In addition, the input data output unit 140 may repeat outputting the input message from the original message data to the nth message block received from the block unit 130. For example, when the original message data is '0001010101', the input data output unit 140 outputs the original message data '0001010101' as first input data, which is the first input data, and the first block, '0001'. '010101', the remaining data except for the block, is output as second input data, which is subsequent input data. Subsequently, the input data output unit 140 outputs '0101', except for '01', the first block in the second input data, as the third input data, and '01', which is the first block in the third input data. Outputs '01' except for the fourth input data.
한편, 절단부(120), 블록부(130)와 입력 데이터 출력부(140)가 원본 메시지 데이터를 블록들로 절단하고, 출력하는 입력 데이터의 블록들을 정하는 방식은 위에서 설명한 사항에 한정되지 않으며, 원본 메시지 데이터를 절단하고 블록화 하여 이전에 출력한 입력 데이터에서 특정 블록을 제외하고 입력 데이터를 출력하는 소위 서브루틴(sub-routine) 방식을 통하여 계산 부담을 줄일 수 있는 모든 방식은 본 발명의 권리범위에 다 포함된다고 할 것이다. The cutting unit 120, the block unit 130, and the input data output unit 140 cut the original message data into blocks, and determine a block of the input data to be output. All methods that can reduce the computational burden through a so-called sub-routine method that cuts and blocks message data and outputs input data except for a specific block from previously output input data are within the scope of the present invention. It will be included.
제1 행렬 생성부(150)는 입력 데이터 출력부(140)로부터 전달받은 n 개 비트로 이루어진 입력 데이터를 각 비트를 n 개의 행으로 정렬한 제k 열과, 상기 제 k열에서 최초로 '1'이 존재하는 행을 제외한 각 행과 각 열에서 하나의 '1'만이 존재하도록 구성된 나머지 열들로 이루어진 n x n 크기의 제 1행렬을 생성한다. The first matrix generator 150 has a kth column in which the n-bit input data received from the input data output unit 140 is arranged in n rows, and '1' is first present in the kth column. A first matrix of size nxn is formed of each row except for a row, and remaining columns configured to have only one '1' in each column.
여기서, 상기 제1 행렬은 상기 제k 열을 제외한 나머지 열들에 존재하는 '1'은 상기 제k 열에서 최초로 '1'이 나타나는 행을 제외하고, 행의 순서 또는 열의 순서대로 각 행과 각 열에 '1'이 하나씩 존재하도록 구성된다.Here, in the first matrix, '1' existing in the remaining columns except for the kth column is in each row and each column in the order of the rows or the columns except for the first '1' in the kth column. '1' is configured to exist one by one.
본 발명의 실시예들에 있어서, 제1 행렬은 상기 입력 데이터로 구성된 제k 열이 제1 열이고, 상기 나머지 열들이 제2 열 내지 제n 열이 될 수 있다. In embodiments of the present invention, the k-th column including the input data may be a first column, and the remaining columns may be second to nth columns.
또한, 제1 행렬 생성부(150)는 상기 입력 데이터가 존재하는 열에서 최초로 '1'이 존재하는 행이 k 행인 경우, 상기 입력 데이터가 존재하지 않는 열들에서의 '1'은 행의 순서에 따라 제1 행 내지 제(k-1) 행 및 제(k+1) 행 내지 제n 행에 각각 존재하도록 제1 행렬을 생성한다. In addition, when the first matrix generation unit 150 has k rows in which '1' exists first in the column in which the input data exists, '1' in the columns in which the input data does not exist is in the order of the rows. Accordingly, a first matrix is generated to exist in the first through (k-1) th rows and the (k + 1) through nth rows, respectively.
여기서, 제1 행렬의 제1 열에 입력 데이터를 배열하는 것을 전제로 설명하기로 한다. Here, it will be described on the premise that the input data is arranged in the first column of the first matrix.
예를 들어, 제1 행렬 생성부(150)는 제1 입력 데이터로 원본 메시지 데이터인 '0001010101'을 전달받는 경우, 제1 입력 데이터를 행렬의 제1 열에 배열하고 나머지 열들을 아래의 수학식 1과 같이 구성된 제1 행렬을 생성한다. For example, when the first matrix generator 150 receives the original message data '0001010101' as the first input data, the first matrix generator 150 arranges the first input data in the first column of the matrix and the remaining columns are represented by Equation 1 below. Generate a first matrix constructed as follows.
[수학식 1][Equation 1]
Figure PCTKR2013005664-appb-I000001
Figure PCTKR2013005664-appb-I000001
이어서, 제1 행렬 생성부(150)는 제2 입력 데이터로 '010101'을 전달받은 경우, 제2 입력 데이터를 행렬의 제1 열에 배열하고 나머지 열들을 아래의 수학식 2와 같이 구성된 행렬을 생성한다. Subsequently, when the first matrix generator 150 receives '010101' as the second input data, the first matrix generator 150 arranges the second input data in the first column of the matrix and generates a matrix including the remaining columns as shown in Equation 2 below. do.
[수학식 2][Equation 2]
Figure PCTKR2013005664-appb-I000002
Figure PCTKR2013005664-appb-I000002
또한, 제1 행렬 생성부(150)는 제3 입력 데이터로 '0101'을 전달받은 경우, 제3 입력 데이터를 행렬의 제1 열에 배열하고 나머지 열들을 아래의 수학식 3과 같이 구성된 행렬을 생성한다. In addition, when the first matrix generator 150 receives '0101' as the third input data, the first matrix generator 150 arranges the third input data in the first column of the matrix and generates a matrix having the remaining columns as shown in Equation 3 below. do.
[수학식 3][Equation 3]
Figure PCTKR2013005664-appb-I000003
Figure PCTKR2013005664-appb-I000003
마지막으로 제1 행렬 생성부(150)는 제4 입력 데이터로 '01'을 전달받은 경우, 제4 입력 데이터를 행렬의 제1 열에 배열하고 나머지 열들을 아래의 수학식 4와 같이 구성된 행렬을 생성한다. Finally, when the first matrix generator 150 receives '01' as the fourth input data, the first matrix generator 150 arranges the fourth input data in the first column of the matrix and generates a matrix having the remaining columns as shown in Equation 4 below. do.
[수학식 4][Equation 4]
Figure PCTKR2013005664-appb-I000004
Figure PCTKR2013005664-appb-I000004
이와 같이, 제1 행렬 생성부(150)는 입력 데이터를 기준으로 일정한 규칙에 의하여 제1 행렬을 구성하며, 제1 행렬 생성부(150)가 생성하는 행렬의 개수(종류)는 원본 메시지 데이터가 구분되는 블록들의 수에 의하여 결정된다. 즉, 원본 메시지 데이터가 적어도 하나의 '1'을 포함하는 메시지 블록이 a개인 경우에는 제1 행렬의 개수도 a 개가 된다. As described above, the first matrix generator 150 configures the first matrix according to a predetermined rule based on the input data, and the number (type) of the matrix generated by the first matrix generator 150 is the original message data. It is determined by the number of blocks separated. That is, when the original message data contains a message block containing at least one '1', the number of first matrices is also a.
제2 행렬 생성부(160)는 제1 행렬 생성부(150)에서 생성한 제1 행렬의 역행렬을 구한 후에 2를 법으로 하는 법 연산(modulus operation)을 적용하여 제2 행렬을 생성한다. 이 때, 제1 행렬 생성부(150)에서 a 개의 제1 행렬을 생성한 경우, 제2 행렬 생성부(160)도 a 개의 제2 행렬을 생성한다. After obtaining the inverse of the first matrix generated by the first matrix generator 150, the second matrix generator 160 generates a second matrix by applying a modulus operation of 2 to the law. In this case, when the first matrix generator 150 generates a first matrix, the second matrix generator 160 also generates a second matrix.
예를 들어, 제1 행렬 생성부(150)가 수학식 1 내지 수학식 4의 제1 행렬들을 생성한 경우에, 제2 행렬 생성부(160)는 수학식 1 내지 수학식 4의 제1 행렬들에 대응하는 수학식 5 내지 수학식 8의 제2 행렬들을 생성한다. For example, when the first matrix generator 150 generates the first matrices of Equations 1 to 4, the second matrix generator 160 is the first matrix of Equations 1 to 4. Generate second matrices corresponding to Equations 5 to 8;
[수학식 5][Equation 5]
Figure PCTKR2013005664-appb-I000005
Figure PCTKR2013005664-appb-I000005
[수학식 6][Equation 6]
Figure PCTKR2013005664-appb-I000006
Figure PCTKR2013005664-appb-I000006
[수학식 7][Equation 7]
Figure PCTKR2013005664-appb-I000007
Figure PCTKR2013005664-appb-I000007
[수학식 8][Equation 8]
Figure PCTKR2013005664-appb-I000008
Figure PCTKR2013005664-appb-I000008
코드워드(codeword) 생성부(160)는 제2 행렬 생성부(160)가 생성한 n x n 크기의 제2 행렬을 이용하여 n2 길이의 코드워드(codeword)를 생성한다. 본 발명의 실시예들에 있어서, 코드워드 생성부(170)는 상기 생성된 제2 행렬의 제1 열 내지 제n 열을 하나의 라인에 순서대로 배열하는 방식으로 n2 길이의 코드워드를 생성할 수 있다. 예를 들어, 코드워드 생성부(170)는 수학식 5의 제2 행렬에 대해서 '0100000000001000000000010000001000010101000010000000000100000000001000000000010000000000100000000001'의 코드워드를 생성할 수 있으며, 수학식 6의 제2 행렬에 대해서 '010000100101001000000100000010000001'의 코드워드를 생성할 수 있다. The codeword generator 160 generates a codeword of length n 2 by using a second matrix of nxn size generated by the second matrix generator 160. In embodiments of the present invention, code word generator 170 generates a code word of n 2, the length of the first column to the n-th column of the second matrix, the generated in such a manner as to arrange them in a single line in order can do. For example, the codeword generator 170 may generate a codeword of '0100000000001000000000010000001000010101000010000000000100000000001000000000010000000000100000000001' for the second matrix of Equation 5, and generate a codeword of '010000100101001000000100000010000001' for the second matrix of Equation 6. can do.
코드워드 생성부(170)는 제2 행렬 생성부(160)에서 a 개의 제2 행렬을 생성한 경우, 코드워드 생성부(170)도 a 개의 코드워드를 생성한다. When the codeword generator 170 generates a second matrix in the second matrix generator 160, the codeword generator 170 also generates a codeword.
전송부(180)는 코드워드(codeword) 생성부(160)에서 생성된 코드워드를 외부로 전송한다. The transmitter 180 transmits the codeword generated by the codeword generator 160 to the outside.
이와 같이, 저밀도 역 코드를 이용한 부호화 장치(100)는 원본 메시지 데이터를 절단하고, 메시지 블록들로 블록화하는 특징, 원본 메시지 데이터로부터 블록들 중 일부 블록만 입력 데이터로 출력하는 특징, 출력된 입력 데이터로 이루어진 열과 '1'을 하나만 포함하는 저밀도 열들로 구성된 행렬을 생성하는 특징, 제1 행렬을 역행렬 계산 방법과 법 연산을 통하여 제2 역행렬을 계산하는 특징을 이용하여 원본 메시지 데이터를 이용하여 기존의 부호화 방법에 비하여 계산 부담을 감소시킬 수 있다. As described above, the encoding apparatus 100 using the low density inverse code cuts original message data and blocks the message message into blocks, outputs only some of the blocks as input data from the original message data, and outputs the input data. By using the original message data using the feature of generating a matrix consisting of a column consisting of a low density columns containing only one '1', the first matrix to the inverse matrix calculation method and the second inverse matrix through the arithmetic operation The computational burden can be reduced as compared to the encoding method.
도 2는 본 발명의 실시예들에 따른 저밀도 역 코드를 이용한 복호화 장치를 설명하기 위한 블록도이다.2 is a block diagram illustrating a decoding apparatus using a low density inverse code according to embodiments of the present invention.
도 2를 참조하면, 본 발명의 실시예들에 따른 저밀도 역 코드를 이용한 복호화 장치(200)는 전송 메시지 수신부(210), 전송 메시지 길이 측정부(220), 전송 메시지 길이 비교부(230), 제3 행렬 생성부(240), 선택부(250), 부분 복호화 메시지 데이터 생성부(260), 복호화부(270)를 포함한다. Referring to FIG. 2, the decoding apparatus 200 using the 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, a transmission message length comparison unit 230, A third matrix generator 240, a selector 250, a partial decoded message data generator 260, and a decoder 270 are included.
본 발명의 실시예들에 있어서, 저밀도 역 코드를 이용한 복호화 장치(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. At this time, the decoding apparatus 200 includes information on a row into which input data is inserted, information on a length of original message data, and a length of a decoded message (total length of a total decoded message up to a specific point in time). Information about at least one of the information about the information and the transmission message length may be received in advance or received from the encoding apparatus 100.
전송 메시지 수신부(210)는 외부로부터 전송된 전송 메시지를 수신한다. 이 때, 전송 메시지 수신부(210)는 특정 길이를 갖는 전송 메시지를 수신할 수 있다. 예를 들어, 전송 메시지 수신부(210)는 n2 길이의 전송 메시지를 수신할 수 있다. 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 receiver 210 may receive a transmission message of length n 2 .
전송 메시지 길이 측정부(220)는 전송 메시지 수신부(210)로부터 전달한 전송 메시지의 길이를 측정하고, 상기 측정한 전송 메시지의 길이를 전송 메시지 길이 비교부(230)에게 제공한다. The transmission message length measurement unit 220 measures the length of the transmission message transmitted from the transmission message receiver 210 and provides the transmission message length comparison unit 230 with the measured length of the transmission message.
한편, 복호화 장치(200)가 전송 메시지 길이를 측정하지 않고도 전송 메시지의 길이에 대한 정보를 알고 있는 경우에는 전송 메시지 길이 측정부(220)를 거치지 않고 전송 메시지 길이 비교부(230)로 상기 수신한 전송 메시지가 전달될 수도 있다. On the other hand, if the decoding apparatus 200 knows the information on the length of the transmission message without measuring the transmission message length, the received message to the transmission message length comparison unit 230 without passing through the transmission message length measurement unit 220 The transmission message may be delivered.
전송 메시지 길이 비교부(230)는 상기 수신한 전송 메시지의 길이와 원본 메시지 데이터의 길이에서 기복호화된 메시지의 길이를 뺀 잔여 길이를 비교한다. 즉, 전송 메시지 길이 비교부(230)는 특정 시점을 기준으로 아직 복호화 되지 않은 메시지의 길이와 해당 시점에 수신한 전송 메시지의 길이를 비교한다. The transmission message length comparison unit 230 compares the length of the received transmission message with the remaining length obtained by subtracting the length of the decoded message from the length of the original message data. That is, the transmission message length comparison unit 230 compares the length of the message which has not yet been decoded with respect to the specific time point and the length of the transmission message received at the time point.
전송 메시지 길이 비교부(230)가 비교한 결과, 상기 측정된 전송 메시지의 길이와 상기 잔여 길이가 동일한 경우에는 전송 메시지 길이 비교부(230)가 수신된 전송 메시지를 부분 복호화 메시지 데이터 생성부(260)로 전달하고, 부분 복호화 메시지 데이터 생성부(260)는 전송 메시지를 모두 0으로 구성된 부분 복호화 메시지 데이터로 바로 생성한다.As a result of the comparison by the transmission message length comparison unit 230, when the measured length of the transmission message and the remaining length are the same, the transmission message length comparison unit 230 converts the received transmission message into the partial decoded message data generation unit 260. ), And the partial decryption message data generation unit 260 immediately generates the transmission message as partial decryption message data composed of all zeros.
한편, 전송 메시지 길이 비교부(230)가 비교한 결과, 상기 측정된 전송 메시지의 길이와 상기 잔여 길이가 다른 경우에는, 제3 행렬 생성부(240)는 상기 전달받은 전송 메시지를 이용하여 제3 행렬을 생성한다. 구체적으로, 제3 행렬 생성부(240)는 상기 전송 메시지를 n 블록으로 구분하여 n x n 크기의 제3 행렬을 생성한다. 예를 들어, 전송 메시지가 n2 길이를 갖는 경우, 제3 행렬 생성부(240)는 n x n 크기의 제3 행렬을 생성한다. 예를 들어, 제3 행렬 생성부(240)가 '0100000000001000000000010000001000010101000010000000000100000000001000000000010000000000100000000001'의 전송 메시지를 전달받은 경우, 제3 행렬 생성부(240)는 수학식 5와 같은 행렬을 제3 행렬로 생성한다. 여기서, 제3 행렬은 제2 행렬과 동일한 크기의 행렬이 될 수 있다. 한편, 채널 노이즈에 영향을 받지 않는 경우에는 제2 행렬과 동일한 제3 행렬로 생성하지만 채널 노이즈의 영향을 받는 경우에는 변질된 전송 메시지를 수신하게 되며 이에 따라서 제3 행렬의 성분들도 역시 바뀔 수 있다. 그럼에도 제3 행렬은 채널 노이즈와 무관하게 제2 행렬과 동일한 크기를 가질 것이다. Meanwhile, as a result of the comparison by the transmission message length comparison unit 230, when the measured length of the transmission message is different from the remaining length, the third matrix generator 240 uses the received transmission message to generate a third message. Create a matrix. In detail, the third matrix generator 240 divides the transmission message into n blocks to generate a third matrix of nxn size. For example, when the transmission message has n 2 length, the third matrix generator 240 generates a third matrix of nxn size. For example, when the third matrix generator 240 receives a transmission message of '0100000000001000000000010000001000010101000010000000000100000000001000000000010000000000100000000001', the third matrix generator 240 generates a matrix, such as Equation 5, as a third matrix. Here, the third matrix may be a matrix having the same size as the second matrix. On the other hand, if it is not affected by the channel noise, it is generated as the same third matrix as the second matrix, but when the channel noise is affected, the corrupted transmission message is received. have. Nevertheless, the third matrix will have the same magnitude as the second matrix regardless of the channel noise.
선택부(250)는 상기 생성된 제3 행렬의 n 개의 열들 중에서 상대적으로 가장 밀도가 높은 열을 선택한다. 즉, 선택부(250)는 최고밀도인 열을 선택하며, 만일 최고밀도가 동일한 여러 열들이 있는 경우에는 가장 먼저 나타나는 최고밀도 열을 선택한다. 본 발명의 실시예들에 있어서, 선택부(250)는 상기 n 개의 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 열을 선택한다. 예를 들어, 제3 행렬이 수학식 5의 행렬인 경우, 선택부(250)는 '1'을 가장 많이 포함하고 있는 제4 열을 선택하는 것이다. The selector 250 selects a column having the highest density among the n columns of the generated third matrix. That is, the selector 250 selects a column having the highest density, and selects the highest density column that appears first when there are several columns having the same maximum density. In the embodiments of the present invention, the selector 250 selects a column that includes the largest number of '1' among the n columns. For example, when the third matrix is the matrix of Equation 5, the selector 250 selects the fourth column including '1' the most.
또한, 선택부(250)는 상기 n 개의 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 열이 둘 이상인 경우, 선택부(250)는 가장 빠른 열을 선택한다. 즉, 선택부(250)는 제1 열을 기준으로 최초의 열을 선택한다. 예를 들어, 제2 열과 제5 열의 밀도가 동일하게 가장 높은 경우에는, 선택부(250)는 제2 열을 선택할 수 있다. In addition, the selector 250 selects the fastest column when there are two or more columns including '1' relatively most among the n columns. That is, the selector 250 selects the first column based on the first column. For example, when the density of the second row and the fifth row is the same, the selector 250 may select the second row.
아울러, 제3 행렬에서의 n 개의 열들이 각각이 하나의 '1'만을 포함하고 있는 경우, 선택부(250)는 제k 행에 '1'을 포함하고 있는 열을 선택한다. 즉, 부호화 장치(100)에서 입력 데이터를 제k 열에 삽입한 정보를 전달받은 복호화 장치(200)에서, 선택부(250)는 제3 행렬에서의 n 개의 열들이 각각이 하나의 '1'만을 포함하고 있을 때, 제k 행에 '1'을 포함하고 있는 열을 선택한다. 예를 들어, 제3 행렬이 수학식 8의 행렬인 경우(부호화 장치(100)에서 입력 데이터를 제1 열에 삽입한 경우), 선택부(250)는 제1 열 및 제2 열 중에서 제1 행에 '1'이 위치한 제2 열을 선택하는 것이다. In addition, when the n columns of the third matrix each include only one '1', the selector 250 selects a column including '1' in the kth row. That is, in the decoding apparatus 200 that receives the information of inserting the input data into the k-th column by the encoding apparatus 100, the selector 250 selects each of the n columns of the third matrix, each of which has only one '1'. If so, select the column containing '1' in the kth row. For example, when the third matrix is the matrix of Equation 8 (when the input device inserts the input data into the first column), the selector 250 includes the first row among the first column and the second column. Is to select the second column in which '1' is located.
부분 복호화 메시지 데이터 생성부(260)는 선택부(250)에서 선택한 열을 근거로 부분 복호화 메시지 데이터를 생성한다. 본 발명의 실시예들에 있어서, 선택부(250)가 선택한 열이 d 번째 열인 경우, 부분 복호화 메시지 데이터 생성부(260)는 (d-1)개의 '0'과 하나의 '1'이 순서대로 구성된 데이터를 부분 복호화 메시지 데이터로 생성한다. The partial decoded message data generator 260 generates partial decoded message data based on the column selected by the selector 250. In the embodiments of the present invention, when the column selected by the selector 250 is the d-th column, the partial decoded message data generation unit 260 has (d-1) '0's and one' 1 'in order. The data constructed as described above is generated as partial decrypted message data.
앞에서 언급하였지만, 전송 메시지의 길이와 잔여 길이가 동일한 경우에는 부분 복호화 메시지 데이터 생성부(260)는 전송 메시지를 모두 0으로 구성된 부분 복호화 메시지 데이터로 생성한다.As mentioned above, when the length of the transmission message is the same as the remaining length, the partial decryption message data generator 260 generates the transmission message as partial decryption message data composed of all zeros.
복호화부(270)는 부분 복호화 메시지 데이터 생성부(260)가 생성한 부분 복호화 메시지 데이터를 이용하여 복호화한다. 예를 들어, 복호화부(270)는 상기 생성된 부분 복호화 메시지 데이터를 이전에 생성된 부분 복호화 메시지 데이터에 순서대로 연속 결합하는 방식으로 복호화할 수 있다. The decoder 270 decodes the partial decoded message data generated by the partial decoded message data generator 260. For example, the decoder 270 may decode the generated partial decoded message data by successively combining the generated partial decoded message data in order.
예를 들어, 최초로 생성된 제3 행렬이 수학식 5의 행렬이고, 선택부(250)가 '1'을 가장 많이 포함하고 있는 제4 열을 선택한 경우, 부분 복호화 메시지 데이터 생성부(260)는 4번째 비트가 '1'인 '0001'을 제1 부분 복호화 메시지 데이터로 획득한다. 이어서 생성된 제3 행렬이 수학식 6의 행렬이고, 선택부(250)가 '1'을 가장 많이 포함하고 있는 제2 열을 선택한 경우, 부분 복호화 메시지 데이터 생성부(260)는 2번째 비트가 '1'인 '01'을 제2 부분 복호화 메시지 데이터로 획득한다. 후속적으로 생성된 제3 행렬이 수학식 7의 행렬과 수학식 8의 행렬이고, 선택부(250)가 '1'을 가장 많이 포함하고 있는 제2 열을 선택한 경우, 부분 복호화 메시지 데이터 생성부(260)는 2번째 비트가 '1'인 '01'을 제3 부분 복호화 메시지 데이터 및 제4 부분 복호화 메시지 데이터로 각각 획득한다. For example, when the first generated third matrix is the matrix of Equation 5, and the selector 250 selects the fourth column including the most '1', the partial decoded message data generator 260 may Obtain '0001' having the fourth bit '1' as the first partial decoded message data. Subsequently, when the generated third matrix is the matrix of Equation 6 and the selector 250 selects the second column including the most '1', the partial decoding message data generation unit 260 has a second bit. '01', which is '1', is obtained as second partial decoded message data. Subsequently, when the third matrix generated is the matrix of Equation 7 and the matrix of Equation 8, and the selector 250 selects the second column including the most '1', the partial decoding message data generation unit In step 260, '01' whose second bit is '1' is obtained as third partial decoded message data and fourth partial decoded message data, respectively.
이에 복호화부(270)가 상기 제1 내지 제4 부분 복호화 메시지 데이터를 연속하여 결합하면, '0001010101'데이터를 복호화할 수 있다.Accordingly, when the decoder 270 continuously combines the first to fourth partial decrypted message data, the decoder 270 may decode '0001010101' data.
이와 같이, 저밀도 역 코드를 이용한 복호화 장치(200)는 행렬에서 가장 복잡한, 최고밀도의 열을 선택하고, 상기 선택한 열의 순서를 이용하여 원본 메시지 데이터 또는 원본 메시지 데이터를 구성하는 부분 복호화 메시지 데이터를 복원할 수 있다. 따라서 기존의 복호화 장치와 달리, 아주 간단한 계산과 규칙에 의하여 메시지를 복호할 수 있는 성능을 구현할 수 있을 뿐 아니라, 노이즈가 포함되더라도 메시지 데이터가 포함된 행이 가장 높은 밀도(density)를 갖는 것에는 큰 영향이 없으므로 오류도 감소될 수 있다. As described above, the decoding apparatus 200 using the low density inverse code selects the most complex and highest density column in the matrix, and restores the original message data or the partial decoded message data constituting the original message data using the order of the selected columns. can do. Therefore, unlike the conventional decoding apparatus, not only can the performance of decoding the message by simple calculations and rules, but also the noise containing the highest density of the row containing the message data Since there is no significant effect, errors can be reduced.
도 3은 본 발명의 실시예들에 따른 저밀도 역 코드를 이용한 부호화 방법을 설명하기 위한 순서도이다.3 is a flowchart illustrating a coding method using a low density inverse code according to embodiments of the present invention.
도 3을 참조하면, 본 발명의 실시예들에 따른 저밀도 역 코드를 이용한 부호화 방법에 따르면, 원본 메시지 데이터를 수신하고(S110), 상기 원본 메시지 데이터를 복수개의 블록들로 절단하며(S120), 절단된 블록들 중 적어도 하나의 절단된 블록으로 구성된 메시지 블록을 생성하고(S130), 상기 생성된 메시지 블록을 입력 데이터로 출력한다(S140). 상기 입력 데이터를 근거로 제1 행렬을 생성하고(S150), 상기 제1 행렬을 이용하여 제2 행렬을 생성한 후(S160), 상기 제2 행렬을 근거로 코드워드를 생성하고(S170), 이를 외부로 전송한다(S180).Referring to FIG. 3, according to an encoding method using a low density inverse code according to embodiments of the present invention, original message data is received (S110), the original message data is cut into a plurality of blocks (S120), A message block composed of at least one truncated block among the truncated blocks is generated (S130), and the generated message block is output as input data (S140). Generate a first matrix based on the input data (S150), generate a second matrix using the first matrix (S160), generate a codeword based on the second matrix (S170), This is transmitted to the outside (S180).
구체적으로 살펴보면, 상기 수신한 원본 메시지 데이터를 '1'을 기준으로 절단(chopping)하여 복수개의 절단된 블록들로 생성한다. 본 발명의 실시예들에 있어서, 상기 원본 메시지 데이터의 첫 번째 비트로부터 1이 나올 때마다 데이터를 절단(chopping)하여 복수개의 블록들로 구분할 수 있다. 즉, 상기 수신한 원본 메시지 데이터를 최초의 비트를 기준으로 '1'이 나오는 비트가 나올 때마다 상기 '1'이 존재하는 비트와 다음 비트 사이를 절단한다. 예를 들어, 원본 메시지 데이터가 '0001010101'일 경우, '0001', '01', '01', '01'로 원본 메시지 데이터를 절단한다. Specifically, the received original message data is chopped based on '1' to generate a plurality of truncated blocks. In embodiments of the present invention, whenever a 1 is obtained from the first bit of the original message data, the data may be chopped into a plurality of blocks. That is, whenever a bit with '1' appears in the received original message data based on the first bit, the received original message data is truncated between the bit where the '1' exists and the next bit. For example, when the original message data is '0001010101', the original message data is cut into '0001', '01', '01', and '01'.
그리고, 상기 절단한 블록들 중 적어도 하나의 절단된 블록으로 구성된 메시지 블록을 생성한다. 상기 절단된 블록들 전체로 구성된 제1 메시지 블록과, 상기 제1 메시지 블록에서 상기 절단된 블록을 하나씩 제거하여 생성된 제2 메시지 블록 내지 제n 메시지 블록들로 메시지 블록을 생성할 수 있다. 여기서, 제n 메시지 블록은 모두 '0'으로 이루어진 블록, 하나의 '1'로만 이루어진 블록 및 적어도 하나의 '0'과 하나의 '1'로 이루어진 블록들 중 하나가 될 수 있다. Then, a message block composed of at least one truncated block among the truncated blocks is generated. A message block may be generated from a first message block including all of the truncated blocks, and second to n th message blocks generated by removing the truncated blocks one by one from the first message block. Here, the n-th message block may be one of blocks consisting of all '0's, blocks consisting of only one' 1 'and blocks consisting of at least one' 0 'and one' 1 '.
예를 들어, '0001010101'인 원본 메시지 데이터를 '0001', '01', '01', '01'로 절단한 경우, 상기 절단된 블록 전체로 이루어진 제1 메시지 블록인'0001010101'과 제2 메시지 블록 내지 제4 메시지 블록으로 '010101', '0101', '01'을 각각 생성할 수 있다.For example, when the original message data of '0001010101' is cut into '0001', '01', '01', and '01', the first message block, '0001010101' and the second, consisting of the truncated block as a whole '010101', '0101', and '01' may be generated as the message block to the fourth message block, respectively.
본 발명의 다른 실시예들에 있어서, 원본 메시지 데이터가 '0'으로만 이루어진 경우에는 상기 원본 메시지 데이터를 그대로 절단하는 단계와 블록하는 단계를 거쳐서 코드워드로 바로 생성한다. 위 경우, 원본 메시지 데이터가 '0'으로만 이루질 때에는 입력 데이터로 출력하는 단계, 제1 행렬 생성 단계, 제2 행렬 생성 단계를 거치지 않고 상기 원본 메시지 데이터를 코드워드를 생성하는 것이다. In other embodiments of the present invention, when the original message data is composed of only '0', the original message data is directly generated as a codeword through the steps of cutting and blocking the original message data. In this case, when the original message data consists only of '0', the codeword is generated from the original message data without outputting as input data, generating a first matrix, and generating a second matrix.
마찬가지로, 원본 메시지 데이터가 모두 '0'으로 이루어진 경우가 아닌, 절단한 블록들 중에서 '0'으로만 이루어진 영 블록이 존재하는 경우에도 상기 영 블록을 그대로 절단하는 단계와 블록하는 단계를 거쳐서 코드워드로 생성한다. 예를 들어, 원본 메시지 데이터가 '0001010100'인 경우, 순서대로 절단하여'0001', '01', '01', '00'이 블록으로 절단할 수 있다. 이 경우, 마지막 블록이 '00'으로 이루어진 영 블록에 대해서는 코드워드 생성 단계가 수행되는 것이다. Similarly, if the original message data does not consist of all zeros, but there are zero blocks consisting of only zeros among the truncated blocks, the codewords are truncated and blocked. To create. For example, when the original message data is '0001010100', '0001', '01', '01', and '00' may be cut into blocks by sequentially cutting. In this case, the codeword generation step is performed on the zero block where the last block is '00'.
이어서, 상기 생성된 메시지 블록들 중에서 적어도 하나의 '1'을 포함하는 메시지 블록들을 입력 데이터로 출력한다. 구체적으로, 상기 제1 메시지 블록을 최초 입력 데이터로 출력하고, 상기 제2 내지 제n 메시지 블록을 후속 입력 데이터로 순서대로 출력한다. 본 발명의 실시예들에 있어서, 이전에 출력한 입력 데이터의 첫 번째 비트로부터 최초의 '1'이 포함된 블록을 제외한 나머지 블록들로 이루어진 데이터를 후속 입력 데이터로 출력하는 단계를 반복한다. 또한, 상기 원본 메시지 데이터에서 '1'이 포함된 마지막 블록을 출력할 때까지 반복할 수 있다. Subsequently, message blocks including at least one '1' among the generated message blocks are output as input data. Specifically, the first message block is output as first input data, and the second to nth message blocks are sequentially output as subsequent input data. In embodiments of the present invention, the step of outputting the data consisting of the remaining blocks except for the block containing the first '1' from the first bit of the previously output input data as subsequent input data. In addition, it may be repeated until the last block including '1' is output from the original message data.
예를 들어, 원본 메시지 데이터가 '0001010101'일 경우, 원본 메시지 데이터인 '0001010101'을 최초의 입력 데이터인 제1 입력 데이터로 출력하고, 제일 앞의 블록인'0001'블록을 제외한 나머지 데이터인 '010101'을 후속 입력 데이터인 제2 입력 데이터로 출력한다. 이어서, 제2 입력 데이터에서 제일 앞의 블록인 '01'을 제외한 '0101'을 제3 입력 데이터로 출력하며, 제3 입력 데이터에서 제일 앞의 블록인 '01'을 제외한 '01'을 제4 입력 데이터로 연속적으로 출력한다. For example, when the original message data is '0001010101', the original message data '0001010101' is output as the first input data, which is the first input data, and the remaining data, except for the '0001' block, which is the first block. 010101 'is output as second input data which is subsequent input data. Subsequently, '0101' except for '01', which is the first block in the second input data, is output as third input data, and '01', except for '01', which is the first block, in the third input data, is fourth. Output continuously as input data.
입력 데이터가 '0'으로만 이루어지지 않은 경우, 입력 데이터를 전달받고, n 개 비트로 이루어진 입력 데이터를 각 비트를 n 개의 행으로 정렬하여 제k 열을 구성하고, 상기 입력 데이터가 배열된 제k 열을 제외한 나머지 열에 '1'이 하나씩 존재하도록 제1 행렬을 구성한다. 이 때, 나머지 열들은 상기 제 k열에서 최초로 '1'이 존재하는 행을 제외한 각 행과 각 열에서 하나의 '1'만이 존재하도록 구성된다. 그리고 입력받은 입력 데이터가 n비트로 이루어진 경우에, 제1 행렬은 n x n 크기를 가질 수 있다. If the input data is not composed only of '0', the input data is received, and the k-th column is formed by arranging the n-bit input data into n rows in each of the n-bit input data. The first matrix is configured such that one '1' exists in the remaining columns except the column. In this case, the remaining columns are configured such that only one '1' exists in each row and each column except the row in which '1' exists first in the k-th column. When the input data received includes n bits, the first matrix may have a size of n × n.
즉, 상기 제 1행렬은 상기 제k 열을 제외한 나머지 열들에 존재하는 '1'은 상기 제k 열에서 최초로 '1'이 나타나는 행을 제외하고, 행의 순서 또는 열의 순서대로 각 행과 각 열에 '1'이 하나씩 존재하도록 구성되는 것이다. 즉, 상기 입력 데이터가 존재하지 않는 행들에서 '1' 이 존재하는 열은 행의 순서에 따라 결정되며, 상기 입력 데이터가 존재하는 행에서 최초로 '1'이 존재하는 열은 건너뛰도록 제1 행렬을 구성할 수 있다. That is, the first matrix has '1' present in the remaining columns except for the kth column, except that the first '1' appears in the kth column, in each row and each column in the order of the rows or the columns. '1' is configured to exist one by one. That is, the column in which '1' exists in the rows in which the input data does not exist is determined according to the order of the rows, and the first matrix in which the column in which '1' exists first is skipped in the row in which the input data exists. Can be configured.
다시 말하면, 상기 입력 데이터가 존재하는 열에서 최초로 '1'이 존재하는 열이 k 열인 경우, 상기 입력 데이터가 존재하지 않는 행들에서 '1'은 행의 순서에 따라 제1 열 내지 제(k-1)열 및 제(k+1)열 내지 제n 열에 각각 존재하도록 제1 행렬을 구성할 수 있다. In other words, when a column in which '1' exists for the first time in the column in which the input data exists is k columns, '1' in rows where the input data does not exist may correspond to the first column through k− according to the order of the rows. 1) The first matrix may be configured to exist in the column and the (k + 1) th to n th columns, respectively.
예를 들어, 입력 데이터를 제1 열에 배열하고, 나머지 열들이 제2 열 내지 제n 열로 구성할 수도 있다. 이 때, 상기 제2 열은 상기 제1 열에서 최초로 '1'이 존재하는 행을 제외한 최초의 행에 '1'이 존재하고, 상기 제n 열은 상기 제1 열에서 최초로 1이 존재하는 행을 제외한 최후의 행에 '1'이 존재하고, 제3 열 내지 제(n-1) 열에서 '1'이 존재하는 행은 상기 열의 순서대로 이루어질 수 있다. For example, the input data may be arranged in the first column, and the remaining columns may be configured as the second to nth columns. In this case, the second column is '1' in the first row except for the first '1' in the first column, and the nth column is the first column in the first column. The row where '1' exists in the last row except for and '1' exists in the third to (n-1) th columns may be formed in the order of the columns.
예를 들어, 입력 데이터가 '0001010101'인 경우, 입력 데이터를 제1 열에 배열하고, 나머지 열들을 본 발명의 실시예들에 따라 배열할 경우, 수학식 1과 같은 행렬을 제1 행렬로 생성할 수 있다. For example, when the input data is '0001010101', when the input data is arranged in the first column and the remaining columns are arranged in accordance with the embodiments of the present invention, a matrix such as Equation 1 may be generated as the first matrix. Can be.
만일, 입력 데이터가 '010101'인 경우, 입력 데이터를 제1 열에 배열하고, 나머지 열들을 본 발명의 실시예들에 따라 배열할 경우, 수학식 2와 같은 행렬을 제1 행렬로 생성할 수 있다. If the input data is '010101', when the input data is arranged in the first column and the remaining columns are arranged according to the embodiments of the present invention, a matrix such as Equation 2 may be generated as the first matrix. .
마찬가지로 입력 데이터가 '0101'인 경우, 입력 데이터를 제1 열에 배열하고, 나머지 열들을 본 발명의 실시예들에 따라 배열할 경우, 수학식 3과 같은 행렬을 제1 행렬로 생성할 수 있다. Similarly, when the input data is '0101', when the input data is arranged in the first column and the remaining columns are arranged in accordance with the embodiments of the present invention, a matrix such as Equation 3 may be generated as the first matrix.
마지막으로 입력 데이터가 '01'인 경우, 입력 데이터를 제1 열에 배열하고, 나머지 열들을 본 발명의 실시예들에 따라 배열할 경우, 수학식 4와 같은 행렬을 제1 행렬로 생성할 수 있다. Finally, when the input data is '01', when the input data is arranged in the first column and the remaining columns are arranged according to the embodiments of the present invention, a matrix such as Equation 4 may be generated as the first matrix. .
이어서, 생성된 제1 행렬의 역행렬을 구한 후에 2를 법으로 하는 법 연산(modulus operation)을 적용하여 제2 행렬을 생성한다. 예를 들어, 제1 행렬이 수학식 1의 행렬인 경우, 제2 행렬은 수학식 5의 행렬이 될 것이다. Subsequently, after obtaining an inverse of the generated first matrix, a second matrix is generated by applying a modulus operation of 2 as a law. For example, if the first matrix is the matrix of Equation 1, the second matrix will be the matrix of Equation 5.
이어서, 제2 행렬을 이용하여 코드워드(codeword)를 생성하고, 이를 전송한다. 만일, 제2 행렬이 n x n 크기를 갖는 경우, n 개의 열을 하나의 라인에 순서대로 배열하는 방식으로 n2 길이의 코드워드를 생성할 수 있다. 예를 들어, 제2 행렬이 수학식 6의 행렬인 경우, 생성되는 코드워드는 '010000100101001000000100000010000001'이 된다. Subsequently, a codeword is generated using the second matrix and transmitted. If the second matrix has nxn size, n 2 length codewords may be generated by arranging n columns in one line in order. For example, when the second matrix is the matrix of Equation 6, the generated codeword is '010000100101001000000100000010000001'.
본 발명의 실시예들에 있어서, 상기 원본 메시지 데이터가 적어도 하나의 '1'을 포함하는 메시지 블록이 a개인 경우에는 입력 데이터, 제1 행렬, 제2 행렬 및 코드워드의 개수도 a 개가 된다. 예를 들어, 원본 메시지 데이터가 '0001010101'인 경우, '0001', '01', '01', '01'의 총 4개의 블록들로 구분되고, 제1 행렬, 제2 행렬 및 코드워드도 총 4개의 종류를 이루어질 수 있다. In embodiments of the present invention, when the original message data includes a message block including at least one '1', the number of input data, first matrix, second matrix, and codeword is also a. For example, when the original message data is '0001010101', it is divided into four blocks, '0001', '01', '01', and '01', and the first matrix, the second matrix, and the codeword are also Four kinds can be achieved.
도 4는 본 발명의 실시예들에 따른 저밀도 역 코드를 이용한 복호화 방법을 설명하기 위한 순서도이다.4 is a flowchart illustrating a decoding method using a low density inverse code according to embodiments of the present invention.
도 4를 참조하면, 본 발명의 실시예들에 따른 저밀도 역 코드를 이용한 복호화 방법에 따르면, 전송 메시지를 수신하고(S210), 전송 메시지의 길이를 측정하며(S220), 전송 메시지의 길이와 원본 메시지 데이터의 길이에서 기복호화된 메시지의 길이를 뺀 잔여 길이를 비교한다(S230). 비교 결과, 전송 메시지의 길이와 상기 잔여 길이가 다른 경우, 전송 메시지를 기반으로 제3 행렬을 생성하고(S240), 제3 행렬에서 가장 고밀도(densest)인 열을 선택하고(S250), 선택한 열을 기반으로 일정한 규칙에 따라 부분 복호화 메시지 데이터를 생성한 후(S260), 생성한 부분 복호화 메시지 데이터를 결합하여 복호화한다(S270).Referring to FIG. 4, according to a decoding method using a low density inverse code according to embodiments of the present invention, a transmission message is received (S210), a length of the transmission message is measured (S220), and a length and an original of the transmission message are provided. The remaining length is obtained by subtracting the length of the decoded message from the length of the message data (S230). As a result of the comparison, when the length of the transmission message is different from the remaining length, a third matrix is generated based on the transmission message (S240), a column having the highest density in the third matrix (S250), and the selected column After generating the partial decoded message data according to a predetermined rule based on (S260), the generated partial decoded message data are combined and decoded (S270).
위 각 단계들은 원본 메시지 데이터를 해당 블록에'1'이 하나만 포함되도록 블록들을 구분하는 경우, 상기 구분된 블록들의 개수만큼 상기 단계들을 반복하여 원본 메시지 데이터를 최종적으로 복원할 수 있다. In the above steps, when the blocks are classified such that only one '1' is included in the original message data, the original message data may be finally restored by repeating the steps by the number of the divided blocks.
구체적으로 살펴보면, 원본 메시지 데이터의 길이가 n 비트로 이루어지고, n2 길이로 이루어진 전송 메시지를 수신하는 경우에, 잔여 길이와 전송 메시지 길이가 다를 것이므로, n x n 크기의 제3 행렬을 생성할 수 있다. 예를 들어, 수신한 전송 메시지가 '010000100101001000000100000010000001'인 경우, 수학식 6과 같은 제3 행렬을 생성할 수 있다. In detail, when the length of the original message data is n bits and a transmission message of length n 2 is received, since the remaining length and the transmission message length will be different, a third matrix of size nxn can be generated. For example, when the received transmission message is '010000100101001000000100000010000001', a third matrix like Equation 6 may be generated.
만일, 상기 측정된 전송 메시지의 길이와 상기 잔여 길이가 동일한 경우에는 수신된 전송 메시지를 이용하여 제3 행렬을 생성하지 않고, 전송 메시지를 모두 0으로 구성된 부분 복호화 메시지 데이터로 바로 생성한다. 이를 부호화 단계에서 생성된 코드워드가 '0'으로만 이루어진 경우에 발생할 수 있다. If the measured length of the transmission message and the remaining length are the same, a third matrix is not directly generated using the received transmission message, and the transmission message is directly generated as partial decoded message data composed of all zeros. This may occur when the codeword generated in the encoding step consists only of '0'.
이어서, 생성한 제3 행렬에서 상기 생성된 제3 행렬의 n 개의 열들 중에서 상대적으로 가장 밀도가 높은 행을 선택한다. 구체적으로, 제3 행렬이 n 개의 열들로 이루어진 경우, 상기 n 개의 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 열을 선택한다. 예를 들어, 수학식 6과 같은 제3 행렬에서, '1'을 가장 많이 포함한 열으로서 두 번째 열을 선택하는 것이다. Subsequently, a relatively dense row is selected from the n columns of the generated third matrix in the generated third matrix. In detail, when the third matrix is composed of n columns, a column including relatively most '1' among the n columns is selected. For example, in the third matrix as shown in Equation 6, the second column is selected as the column containing '1' the most.
만일 최고밀도가 동일한 여러 열들이 있는 경우에는 가장 먼저 나타나는 최고밀도 열을 선택한다. 특히, 제1 열을 기준으로 최초의 열을 선택하며, 예를 들어, 제2 열과 제5 열의 밀도가 동일하게 가장 높은 경우에는, 제2 열을 선택할 수 있다. If there are several columns with the same highest density, the highest density column appears first. In particular, the first column may be selected based on the first column. For example, when the density of the second column and the fifth column is equally high, the second column may be selected.
제3 행렬에서의 n 개의 열들이 각각이 하나의 '1'만을 포함하고 있는 경우, 제k 행에 '1'을 포함하고 있는 열을 선택한다. 즉, 부호화 단계에서 입력 데이터를 제k 열에 삽입한 정보를 전달 받고, 제3 행렬에서의 n 개의 열들이 각각이 하나의 '1'만을 포함하고 있을 때, 제k 행에 '1'을 포함하고 있는 열을 선택한다. 예를 들어, 제3 행렬이 수학식 8의 행렬인 경우(부호화 장치(100)에서 입력 데이터를 제1 열에 삽입한 경우), 제1 열 및 제2 열 중에서 제1 행에 '1'이 위치한 제2 열을 선택하는 것이다. If the n columns of the third matrix each include only one '1', the column including '1' in the kth row is selected. That is, when the encoding step receives the information of inserting the input data into the k-th column, and when the n columns of the third matrix each include only one '1', the k-th row includes '1'. Select a column For example, when the third matrix is the matrix of Equation 8 (when input data is inserted into the first column by the encoding apparatus 100), '1' is positioned in the first row among the first and second columns. To select the second column.
이어서, 제3 행렬에서 선택한 열을 기반으로 메시지를 부분 복호화 메시지 데이터로 생성한다. 예를 들어, 선택한 열이 d 번째 열인 경우, (d-1)개의 '0'과 하나의 '1'이 순서대로 구성된 데이터를 부분 복호화 메시지 데이터로 생성한다. Subsequently, a message is generated as partially decoded message data based on the column selected in the third matrix. For example, when the selected column is a d-th column, data consisting of (d-1) '0' and one '1' in order is generated as partial decoded message data.
이어서, 생성한 부분 복호화 메시지 데이터를 이용하여 복호화한다. 예를 들어, 기 생성된 부분 복호화 메시지 데이터를 이전에 생성된 부분 복호화 메시지 데이터에 순서대로 연속 결합하는 방식으로 복호화 할 수 있다. Subsequently, decoding is performed using the generated partial decoded message data. For example, the pre-generated partial decoded message data may be decoded by successively combining the previously generated partial decoded message data in order.
예를 들어, 원본 메시지 데이터가 '0001010101'이라고 가정하는 경우, 최초로 생성된 제3 행렬은 수학식 5의 행렬이고, '1'을 가장 많이 포함하고 있는 제4 열이 선택될 것이다. 이에 4번째 비트가 '1'인 '0001'을 제1 부분 복호화 메시지 데이터로 획득된다. 이어서 생성된 제3 행렬이 수학식 6의 행렬이고, '1'을 가장 많이 포함하고 있는 제2 열이 선택될 경우, 2번째 비트가 '1'인 '01'을 제2 부분 복호화 메시지 데이터로 획득된다. 후속적으로 생성된 제3 행렬이 수학식 7의 행렬과 수학식 8의 행렬이고, 각각 제2 열을 선택한 경우, 2번째 비트가 '1'인 '01'을 제3 부분 복호화 메시지 데이터 및 제4 부분 복호화 메시지 데이터로 각각 획득될 수 있다. For example, assuming that the original message data is '0001010101', the first generated third matrix is the matrix of Equation 5, and the fourth column including '1' most will be selected. Accordingly, '0001' having the fourth bit '1' is obtained as the first partial decoded message data. Subsequently, when the generated third matrix is the matrix of Equation 6 and the second column including the most '1' is selected, '01' having the second bit '1' is used as the second partial decoded message data. Obtained. Subsequently, when the third matrix generated is the matrix of Equation 7 and the matrix of Equation 8, and each of the second columns is selected, '01' whose second bit is '1' is the third partial decoded message data and the first matrix. Each of the four partial decrypted message data may be obtained.
이에 상기 제1 내지 제4 부분 복호화 메시지 데이터를 연속하여 결합하면, '0001010101'데이터를 최종 복호화 데이터로 최종 획득할 수 있다.Accordingly, when the first to fourth partial decryption message data are continuously combined, '0001010101' data may be finally obtained as the final decrypted data.
위에서 설명한, 실시예는 구체적인 설명을 위하여 기본적인 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치의 구조 및 과정을 예를 들어 서술한 것일 뿐, 그에 한정되는 것은 아니다. 본 발명이 속하는 기술 분야의 통상의 지식을 가진 당업자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 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.

Claims (40)

  1. 외부로부터 전달받은 n 개 비트로 이루어진 입력 데이터를 각 비트를 n 개의 행으로 정렬한 제k 열(column)과, 상기 제 k열에서 최초로 '1'이 존재하는 행을 제외한 각 행과 각 열에서 하나의 '1'만이 존재하도록 구성된 나머지 열들로 이루어진 n x n 크기의 제 1행렬을 생성하는 단계; A k-column in which each bit is arranged into n rows of input data composed of n bits received from the outside, and one in each row and each column except a row in which the '1' first appears in the k-th column. Generating a first matrix of size nxn of remaining columns configured to have only '1' of;
    상기 제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)를 이용한 부호화 방법.And generating and transmitting a codeword using the second matrix, wherein the encoding method uses a low density inverse code.
  2. 제1항에 있어서, 상기 제1 행렬을 생성하는 단계에서,The method of claim 1, wherein generating the first matrix comprises:
    상기 제 1행렬은 상기 제k 열을 제외한 나머지 행들에 존재하는 '1'은 상기 제k 열에서 최초로 '1'이 나타나는 행을 제외하고, 행의 순서 또는 열의 순서대로 각 행과 각 열에 '1'이 하나씩 존재하도록 구성되는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법. The first matrix is '1' in the remaining rows except for the kth column, except that the first '1' appears in the kth column, '1' in each row and each column in the order of the rows or columns. The coding method using a sparse inverse code, characterized in that 'is configured to exist one by one.
  3. 제1항에 있어서, 상기 제1 행렬을 생성하는 단계 이전에The method of claim 1, prior to generating the first matrix.
    외부로부터 원본 메시지 데이터를 수신하는 단계;Receiving original message data from the outside;
    상기 수신한 원본 메시지 데이터를 '1'을 기준으로 절단(chopping)하여 복수개의 절단된 블록들로 생성하는 단계;Chopping the received original message data on the basis of '1' to generate a plurality of truncated blocks;
    상기 절단된 블록들 중 적어도 하나의 절단된 블록으로 구성된 메시지 블록을 생성하는 단계;Generating a message block composed of at least one truncated block of the truncated blocks;
    상기 생성된 메시지 블록들 중에서 적어도 하나의 '1'을 포함하는 메시지 블록들을 입력 데이터로 출력하는 단계를 더 포함하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.And outputting, as input data, message blocks including at least one '1' from among the generated message blocks.
  4. 제3항에 있어서, 상기 수신한 원본 메시지 데이터를 복수개의 블록들로 절단(chopping)하는 단계는The method of claim 3, wherein chopping the received original message data into a plurality of blocks comprises:
    상기 수신한 원본 메시지 데이터를 최초의 비트를 기준으로 '1'이 나오는 비트가 나올 때마다 상기 '1'이 존재하는 비트와 다음 비트 사이를 절단하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.A sparse inverse code, characterized in that for each bit of the received original message data, a bit between which the '1' appears and a next bit are truncated. Encoding method using.
  5. 제3항에 있어서, 상기 메시지 블록을 생성하는 단계에서4. The method of claim 3, wherein generating the message block
    상기 메시지 블록은 상기 절단된 블록들 전체로 구성된 제1 메시지 블록과, 상기 제1 메시지 블록에서 상기 절단된 블록을 하나씩 제거하여 생성된 제2 메시지 블록 내지 제n 메시지 블록들로 이루어지는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.The message block may include a first message block including the truncated blocks as a whole, and second message blocks to n-th message blocks generated by removing the truncated blocks one by one from the first message block. A coding method using a sparse inverse code.
  6. 제5항에 있어서, The method of claim 5,
    상기 제n 메시지 블록은 모두 '0'으로 이루어진 블록, 하나의 '1'로만 이루어진 블록 및 적어도 하나의 '0'과 하나의 '1'로 이루어진 블록들 중 하나인 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법. The n-th message block is one of a block composed of all '0's, one block composed of only one' 1 ', and at least one block composed of' 0 'and one' 1 '. A coding method using sparse inverse code.
  7. 제5항에 있어서, 상기 메시지 블록을 입력 데이터로 출력하는 단계는The method of claim 5, wherein the outputting of the message block as input data comprises:
    상기 제1 메시지 블록 내지 제n 메시지 블록을 순서대로 입력 데이터로 출력하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.And encoding the first message block and the n-th message block as input data in order.
  8. 제3항에 있어서, The method of claim 3,
    상기 원본 메시지 데이터가 '0'으로만 이루어진 경우에는 상기 원본 메시지 데이터를 상기 코드워드로 생성하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법. And encoding the original message data as the codeword when the original message data consists only of '0'.
  9. 제3항에 있어서, 상기 절단된 블록들 중 적어도 하나의 절단된 블록으로 구성된 메시지 블록을 생성하는 단계에서The method of claim 3, further comprising: generating a message block composed of at least one truncated block among the truncated blocks.
    상기 절단된 블록들 중에서 '0'으로만 이루어진 영 블록을 상기 코드워드로 생성하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법. A coding method using a sparse inverse code, characterized by generating a zero block consisting of only zeros among the truncated blocks as the codeword.
  10. 제9항에 있어서, The method of claim 9,
    상기 영 블록에 근거로 코드워드로 생성하는 단계는 상기 메시지 블록들을 근거로 코드워드를 생성하는 단계 이후에 수행되는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.The generating of the codeword based on the zero block is performed after generating the codeword based on the message blocks. The encoding method using a sparse inverse code.
  11. 제3항에 있어서,The method of claim 3,
    상기 생성된 메시지 블록들이 a개인 경우, 상기 코드워드가 a개가 생성되고, If the generated message blocks are a, a codeword is generated,
    상기 생성된 메시지 블록들 중에서 적어도 하나의 '1'을 포함하는 메시시 블록이 b개인 경우, If there are b message blocks including at least one '1' among the generated message blocks,
    상기 입력 데이터, 상기 제1 행렬, 상기 제2 행렬 및 상기 코드워드가 b개가 생성되는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.And b codewords are generated for the input data, the first matrix, the second matrix, and the codeword.
  12. 제1항에 있어서, 상기 제2 행렬을 이용하여 코드워드를 생성하는 단계에서The method of claim 1, wherein generating a codeword using the second matrix
    상기 입력 데이터가 n개 비트로 이루어진 경우, 상기 코드워드는 n2의 길이를 갖는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.And the codeword has a length of n 2 when the input data consists of n bits.
  13. 제1항에 있어서, 상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하는 단계에서The method of claim 1, wherein generating a codeword using the second matrix
    상기 생성된 제2 행렬의 제1 열 내지 제n 열을 순서대로 연결하는 방식으로 n2 길이의 코드워드를 생성하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법.And a code word having an length of n 2 is generated by connecting the first to n th columns of the generated second matrix in order.
  14. 제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;
    상기 수신한 전송 메시지의 길이와 원본 메시지 데이터의 길이에서 기복호화된 메시지의 길이를 뺀 잔여 길이를 비교하는 단계;Comparing the length of the received transmission message with the length of the original message data minus the length of the decoded message;
    상기 비교 결과, 상기 측정된 전송 메시지의 길이와 상기 잔여 길이가 다를 경우, 상기 전송 메시지를 n 블록으로 구분하여 n x n 크기의 제3 행렬을 생성하는 단계; Generating a third matrix of size n × n by dividing the transmission message into n blocks if the length of the measured transmission message and the remaining length are different from each other as a result of the comparison;
    상기 생성된 제3 행렬의 n 개의 열(column)들 중에서 상대적으로 가장 고밀도(densest)인 열을 선택하는 단계; Selecting a relatively densest column among the n columns of the generated third matrix;
    상기 선택한 열을 근거로 부분 복호화 메시지 데이터를 생성하는 단계; 및Generating partial decoded message data based on the selected column; And
    상기 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 단계를 포함하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법.A decoding method using a low density inverse code, comprising: decoding using the generated partial decoded message data.
  15. 제14항에 있어서, 상기 수신한 전송 메시지의 길이와 상기 잔여 길이를 비교하는 단계 이전에,15. The method of claim 14, wherein before comparing the remaining length of the received transmission message with the remaining length:
    상기 수신한 전송 메시지의 길이를 측정하는 단계를 더 포함하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법.And a method of measuring the length of the received transmission message.
  16. 제14항에 있어서, The method of claim 14,
    상기 비교 결과, 상기 측정된 전송 메시지의 길이와 상기 잔여 길이가 동일한 경우, If the result of the comparison, the length of the measured transmission message and the remaining length is the same,
    상기 전송 메시지를 모두 '0'으로 구성된 부분 복호화 메시지 데이터로 생성하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법.And decoding all of the transmission messages into partial decoded message data composed of '0's.
  17. 제14항에 있어서, 상기 생성된 제3 행렬의 n 개의 열들 중에서 상대적으로 가장 고밀도(densest)인 열을 선택하는 단계는15. The method of claim 14, wherein selecting a relatively densest column among the n columns of the generated third matrix is
    상기 n 개의 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 열을 선택하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법.The decoding method using a sparse inverse code, characterized in that for selecting the column containing the most relatively '1' among the n columns.
  18. 제17항에 있어서,The method of claim 17,
    상기 n 개의 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 열이 둘 이상인 경우, 제1 열을 기준으로 최초의 열을 선택하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법. Decoding method using a sparse inverse code, characterized in that the first column is selected based on the first column when there are two or more columns containing '1' relatively most among the n columns. .
  19. 제17항에 있어서,The method of claim 17,
    상기 n 개의 열들 각각이 하나의 '1'만을 포함하고 있는 경우, 제k 행에 '1'을 포함하고 있는 열을 선택하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법. If each of the n columns includes only one '1', the decoding method using a low density inverse code (sparse inverse code), characterized in that for selecting the column containing '1' in the k-th row.
  20. 제14항에 있어서, 상기 선택한 열을 근거로 부분 복호화 메시지 데이터를 생성하는 단계에서15. The method of claim 14, wherein generating partial decrypted message data based on the selected column
    상기 선택한 열이 d 번째 열인 경우, (d-1)개의 '0'과 하나의 '1'이 순서대로 구성된 데이터를 부분 복호화 메시지 데이터로 생성하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법. When the selected column is a d-th column, a sparse inverse code may be generated as partial decoded message data including (d-1) pieces of '0' and one '1' in order. Decryption method used.
  21. 제14항에 있어서, 상기 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 단계는The method of claim 14, wherein the decoding using the generated partial decrypted message data is performed.
    상기 생성된 부분 복호화 메시지 데이터를 이전에 생성된 부분 복호화 메시지 데이터에 순서대로 연속 결합하는 방식으로 복호화하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 방법. And decoding the generated partial decoded message data by successively combining the generated partial decoded message data in order in succession.
  22. 외부로부터 전달받은 n 개 비트로 이루어진 입력 데이터를 각 비트를 n 개의 행으로 정렬한 제k 열(column)과, 상기 제 k열에서 최초로 '1'이 존재하는 행을 제외한 각 행과 각 열에서 하나의 '1'만이 존재하도록 구성된 나머지 열들로 이루어진 n x n 크기의 제 1행렬을 생성하는 제1 행렬 생성부;A k-column in which each bit is arranged into n rows of input data composed of n bits received from the outside, and one in each row and each column except a row in which the '1' first appears in the k-th column. A first matrix generator configured to generate a first matrix having an nxn size consisting of remaining columns configured to have only '1' of;
    상기 제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)를 이용한 부호화 장치.A coding device using a low density inverse code including a codeword transmitter for transmitting the generated codeword to the outside.
  23. 제22항에 있어서,The method of claim 22,
    상기 제1 행렬은 상기 제k 열을 제외한 나머지 열들에 존재하는 '1'은 상기 제k 열에서 최초로 '1'이 나타나는 행을 제외하고, 행의 순서 또는 열의 순서대로 각 행과 각 열에 '1'이 하나씩 존재하도록 구성되는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.In the first matrix, '1' existing in the remaining columns except for the kth column is '1' in each row and each column in the order of the rows or the columns except for the first '1' in the kth column. Coding apparatus using a sparse inverse code, characterized in that 'is configured to exist one by one.
  24. 제22항에 있어서,The method of claim 22,
    외부로부터 원본 메시지 데이터를 수신하는 원본 메시지 데이터 수신부;An original message data receiving unit for receiving original message data from the outside;
    상기 수신한 원본 메시지 데이터를 '1'을 기준으로 절단(chopping)하여 복수개의 절단된 블록들로 생성하는 절단부;A truncation unit chopping the received original message data based on '1' to generate a plurality of truncated blocks;
    상기 절단된 블록들 중 적어도 하나의 절단된 블록으로 구성된 메시지 블록을 생성하는 블록부; 및A block unit generating a message block composed of at least one truncated block among the truncated blocks; And
    상기 생성된 메시지 블록들 중에서 적어도 하나의 '1'을 포함하는 메시지 블록들을 입력 데이터로 출력하는 입력 데이터 출력부를 더 포함하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.And an input data output unit configured to output message blocks including at least one '1' from among the generated message blocks as input data.
  25. 제24항에 있어서, 상기 절단부는The method of claim 24, wherein the cut portion
    상기 수신한 원본 메시지 데이터를 최초의 비트를 기준으로 '1'이 나오는 비트가 나올 때마다 상기 '1'이 존재하는 비트와 다음 비트 사이를 절단하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.A sparse inverse code, characterized in that for each bit of the received original message data, a bit between which the '1' appears and a next bit are truncated. Coding apparatus using the.
  26. 제24항에 있어서, The method of claim 24,
    상기 블록부가 생성한 상기 메시지 블록은 상기 절단된 블록들 전체로 구성된 제1 메시지 블록과, 상기 제1 메시지 블록에서 상기 절단된 블록을 하나씩 제거하여 생성된 제2 메시지 블록 내지 제n 메시지 블록들로 이루어지는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.The message block generated by the block unit includes a first message block including all of the truncated blocks, and second message blocks to n-th message blocks generated by removing the truncated blocks one by one from the first message block. A coding apparatus using a low density sparse inverse code, characterized in that formed.
  27. 제26항에 있어서,The method of claim 26,
    상기 제n 메시지 블록은 모두 '0'으로 이루어진 블록, 하나의 '1'로만 이루어진 블록 및 적어도 하나의 '0'과 하나의 '1'로만 이루어진 블록들 중 하나인 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.The n-th message block is one of a block composed of all '0's, one block composed of only one' 1 ', and at least one block composed of only' 0 'and one' 1 '. Coding apparatus using sparse inverse code.
  28. 제26항에 있어서, 상기 입력 데이터 출력부는27. The apparatus of claim 26, wherein the input data output unit
    상기 제1 메시지 블록 내지 제n 메시지 블록을 순서대로 입력 데이터로 출력하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.And encoding the first message block and the n-th message block as input data in order.
  29. 제24항에 있어서,The method of claim 24,
    상기 원본 메시지 데이터가 '0'으로만 이루어진 경우에는 상기 원본 메시지 데이터를 상기 코드워드로 생성하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.And encoding the original message data as the codeword when the original message data consists only of '0'.
  30. 제24항에 있어서,The method of claim 24,
    상기 절단부가 절단한 블록들 중에서 '0'으로만 이루어진 영 블록은 상기 코드워드로 생성되는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.The zero block consisting of only zeros among the blocks cut by the truncation unit is generated as the codeword, wherein the encoding device using a low density inverse code (sparse inverse code).
  31. 제22항에 있어서,The method of claim 22,
    상기 입력 데이터가 n개 비트로 이루어진 경우, 상기 코드워드 생성부가 생성한 코드워드는 n2의 길이를 갖는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.And a codeword generated by the codeword generator has a length of n 2 when the input data is composed of n bits.
  32. 제22항에 있어서,The method of claim 22,
    상기 코드워드 생성부는 상기 생성된 제2 행렬의 제1 열 내지 제n 열을 순서대로 연결하는 방식으로 n2 길이의 코드워드를 생성하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 장치.The codeword generator generates a codeword having a length of n 2 in a manner of connecting the first to nth columns of the generated second matrix in order, thereby encoding using a low density inverse code. Device.
  33. 제22항 내지 제32항 중 어느 하나의 한 항의 부호화 장치를 통하여 코드워드(codeword)로 생성되어 전송된 메시지를 복호화하기 위한 장치에 있어서, An apparatus for decoding a message generated and transmitted as a codeword through the encoding apparatus of any one of claims 22 to 32,
    전송 메시지를 수신하는 전송 메시지 수신부;A transmission message receiver for receiving a transmission message;
    상기 수신한 전송 메시지의 길이와 원본 메시지 데이터의 길이에서 기복호화된 메시지의 길이를 뺀 잔여 길이를 비교하는 전송 메시지 길이 비교부;A transmission message length comparison unit for comparing the length of the received transmission message with the length of the original message data minus the length of the decoded message;
    상기 비교 결과, 상기 측정된 전송 메시지의 길이와 상기 잔여 길이가 다를 경우, 상기 전송 메시지를 n 블록으로 구분하여 n x n 크기의 제3 행렬을 생성하는 제3 행렬 생성부; A third matrix generator configured to generate a third matrix having a size of n × n by dividing the transmission message into n blocks when the measured length of the transmission message and the remaining length are different from each other;
    상기 생성된 제3 행렬의 n 개의 열(row)들 중에서 상대적으로 가장 고밀도(densest)인 열을 선택하는 선택부; A selection unit for selecting a relatively densest column among the n rows of the generated third matrix;
    상기 선택한 열을 근거로 부분 복호화 메시지 데이터를 생성하는 부분 복호화 메시지 데이터 생성부; 및A partial decrypted message data generation unit generating partial decrypted message data based on the selected column; And
    상기 생성된 부분 복호화 메시지 데이터를 이용하여 복호화하는 복호화부를 포함하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.A decoding device using a low density inverse code including a decoding unit for decoding using the generated partial decoded message data.
  34. 제33항에 있어서, The method of claim 33, wherein
    상기 수신한 전송 메시지의 길이를 측정하고, 상기 측정한 전송 메시지의 길이를 상기 전송 메시지 길이 비교부에게 제공하는 전송 메시지 길이 측정부를 더 포함하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.Measuring the length of the received transmission message, and using the low density inverse code (sparse inverse code) characterized in that it further comprises a transmission message length measuring unit for providing the measured length of the transmission message to the transmission message length comparison unit Decryption device.
  35. 제33항에 있어서,The method of claim 33, wherein
    상기 전송 메시지 길이 비교부에서의 비교 결과, 상기 측정된 전송 메시지의 길이와 상기 잔여 길이가 동일한 경우, When a result of the comparison in the transmission message length comparison unit is equal to the measured length of the transmission message and the remaining length,
    상기 부분 복호화 메시지 데이터 생성부가 상기 전송 메시지를 모두 '0'으로 구성된 부분 복호화 메시지 데이터로 생성하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.And the partial decryption message data generation unit generates the partial decryption message data including all of the transmission messages as '0'.
  36. 제33항에 있어서, 상기 선택부는The method of claim 33, wherein the selection unit
    상기 n 개의 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 열을 선택하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.Decoding apparatus using a sparse inverse code, characterized in that for selecting the column containing the most relatively '1' among the n columns.
  37. 제36항에 있어서,The method of claim 36,
    상기 n 개의 열들 중에서 '1'을 상대적으로 가장 많이 포함하고 있는 열이 둘 이상인 경우, If there is more than one column that contains '1' the most among the n columns,
    상기 선택부는 제1 열을 기준으로 최초의 열을 선택하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.And the selector selects the first column based on the first column.
  38. 제36항에 있어서,The method of claim 36,
    상기 n 개의 열들 각각이 하나의 '1'만을 포함하고 있는 경우, When each of the n columns includes only one '1',
    상기 선택부는 제k 행에 '1'을 포함하고 있는 열을 선택하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.And the selector selects a column including '1' in the k-th row.
  39. 제33항에 있어서, 상기 부분 복호화 메시지 데이터 생성부는34. The method of claim 33, wherein the partial decoded message data generation unit
    상기 선택부에서 선택한 행이 d 번째 열인 경우, (d-1)개의 '0'과 하나의 '1'이 순서대로 구성된 데이터를 부분 복호화 메시지 데이터로 생성하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.When the row selected by the selector is the d-th column, a low density inverse code (sparse inverse) characterized by generating (d-1) data consisting of '0' and one '1' in order as partial decoded message data. decoding apparatus using code).
  40. 제33항에 있어서, 상기 복호화부는The method of claim 33, wherein the decoding unit
    상기 생성된 부분 복호화 메시지 데이터를 이전에 생성된 부분 복호화 메시지 데이터에 순서대로 연속 결합하는 방식으로 복호화하는 것을 특징으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 복호화 장치.And decoding the generated partial decoded message data by successively combining the generated partial decoded message data in sequence in order.
PCT/KR2013/005664 2012-07-31 2013-06-26 Method and apparatus for encoding/decoding using sparse inverse code WO2014021559A1 (en)

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
WO2014021559A1 true WO2014021559A1 (en) 2014-02-06

Family

ID=50028192

Family Applications (1)

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

Country Status (2)

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

Families Citing this family (1)

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

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050251730A1 (en) * 2004-05-06 2005-11-10 Classon Brian K Method and apparatus for encoding and decoding data
KR100809616B1 (en) * 2005-10-19 2008-03-05 삼성전자주식회사 Apparatus and method for coding/decoding block low density parity check code with variable block length
JP2008258774A (en) * 2007-04-02 2008-10-23 Sumitomo Electric Ind Ltd Coder and coding program
JP2010136279A (en) * 2008-12-08 2010-06-17 Sumitomo Electric Ind Ltd Encoding device, decoding device, method of creating generator matrix, and computer program
JP2011146899A (en) * 2010-01-14 2011-07-28 Panasonic Corp Encoder, decoder and encoding method and decoding method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050251730A1 (en) * 2004-05-06 2005-11-10 Classon Brian K Method and apparatus for encoding and decoding data
KR100809616B1 (en) * 2005-10-19 2008-03-05 삼성전자주식회사 Apparatus and method for coding/decoding block low density parity check code with variable block length
JP2008258774A (en) * 2007-04-02 2008-10-23 Sumitomo Electric Ind Ltd Coder and coding program
JP2010136279A (en) * 2008-12-08 2010-06-17 Sumitomo Electric Ind Ltd Encoding device, decoding device, method of creating generator matrix, and computer program
JP2011146899A (en) * 2010-01-14 2011-07-28 Panasonic Corp Encoder, decoder and encoding method and decoding method

Also Published As

Publication number Publication date
KR101391859B1 (en) 2014-05-07
KR20140016775A (en) 2014-02-10

Similar Documents

Publication Publication Date Title
CN109196800B (en) Generalized polarization code construction
KR100549894B1 (en) Encoding device, encoding method, mobile station and base station
CA2299947A1 (en) The application of error correction coding to transmission equipment protection
EP2351230A2 (en) Channel-encoding/decoding apparatus and method using low-density parity-check codes
CN112398484B (en) Coding method and related equipment
WO2015012572A1 (en) Apparatus and method for receiving signal in communication system supporting low density parity check code
US8375269B2 (en) Data transmission system and method of correcting an error in parallel data paths of a data transmission system
KR20050094764A (en) Channel encoding apparatus and method
US20030188248A1 (en) Apparatus for iterative hard-decision forward error correction decoding
KR101874537B1 (en) Method and Apparatus for Parallel Decoding of Polar Codes
WO2013015548A2 (en) Ldpc encoding/decoding method and device using same
WO2014021559A1 (en) Method and apparatus for encoding/decoding using sparse inverse code
JP7009717B2 (en) Coding method and coding device
WO2018143717A1 (en) Method and apparatus for transmitting and receiving signal by using polar coding
WO2012118327A2 (en) Method and apparatus for transmitting and receiving in a communication/broadcasting system
KR101856417B1 (en) Method and Apparatus for Parallel Successive-Cancellation Polar Encoding-Decoding Using Polar-CRC Concatenated Codes
WO2014046395A1 (en) Encoding/decoding method and apparatus using complementary sparse inverse code
WO2014021558A1 (en) Method and apparatus for encoding/decoding using sparse inverse code
KR100731985B1 (en) Device and method for pipelined parallel crc
Cheng et al. CRC location design for polar codes
KR20230033623A (en) Data encoding method, encoder, and data decoding method
KR100528139B1 (en) Methods of, and apparatus for, producing code words
WO2014123351A1 (en) Method and apparatus for encoding/decoding using sparse inverse code based on specific density
WO2013077498A1 (en) Method for coding and decoding distributed source using low-density parity check codes and apparatus for coding and decoding distributed source
EP2285003B1 (en) Correction of errors in a codeword

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: 13824837

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: 13824837

Country of ref document: EP

Kind code of ref document: A1