WO2014200259A1 - 입력 데이터의 상대적 고밀도를 이용한 부호화 방법 및 장치 - Google Patents

입력 데이터의 상대적 고밀도를 이용한 부호화 방법 및 장치 Download PDF

Info

Publication number
WO2014200259A1
WO2014200259A1 PCT/KR2014/005114 KR2014005114W WO2014200259A1 WO 2014200259 A1 WO2014200259 A1 WO 2014200259A1 KR 2014005114 W KR2014005114 W KR 2014005114W WO 2014200259 A1 WO2014200259 A1 WO 2014200259A1
Authority
WO
WIPO (PCT)
Prior art keywords
coding matrix
message block
input data
row
column
Prior art date
Application number
PCT/KR2014/005114
Other languages
English (en)
French (fr)
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 WO2014200259A1 publication Critical patent/WO2014200259A1/ko

Links

Images

Classifications

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

Definitions

  • the present invention relates to an encoding method and apparatus using a relative high density of input data, to generate an encoding matrix reflecting characteristics of input data, and to easily encode a message using the density of data of the generated encoding matrix.
  • the present invention relates to a coding method and apparatus using a relatively high density of input data.
  • bit error rates (BERs) of digital transmission information are reduced by transmitting a code sequence encoding an input information sequence.
  • the present invention solves this problem, and the present invention generates a coding matrix that implements the characteristics of the input data, and efficiently generates a codeword using the generated coding matrix, thereby significantly improving the calculation used for encoding.
  • An object of the present invention is to provide an encoding method using a relatively high density of input data that can be reduced.
  • an object of the present invention is to provide an encoding apparatus using a relatively high density of input data for executing the encoding method.
  • the encoding method performs a k-th row when the first '1' is a k-th bit in n-bit input data. Generating a coding matrix configured to have a higher relative density than the remaining respective rows, or configured to have a k-th column relatively higher than the remaining respective columns; Generating a codeword using the coding matrix; And transmitting the generated codeword.
  • the number of '1's present in the kth row or the kth column in the coding matrix is the number of' 1s' present in the remaining rows or columns.
  • the k-th row or the k-th column is arranged to have a relatively larger number so that the relative density is higher than that of the remaining rows or columns.
  • a method of arranging the input data in the k-th row or the k-th column as it is, and '0' and the zero-th input of the input data in the k-th row or the k-th column may be configured to have a higher relative density than the remaining rows or columns by using any one of randomly mixing and arranging '1'. .
  • a method of configuring all kth bits of the input data as '1' in the kth row or the kth column and the kth row or the kth column may be configured to have a higher relative density than the remaining rows or columns by using any one of the methods of configuring all bits of '1'. have.
  • random data consisting of n bits equal to an input data length may be arranged in the k-th row or the k-th column so that the k-th row or the k-th column is remaining. It can be configured to have a relatively high density compared to the rows or columns of.
  • each of the remaining rows or columns except for the relatively dense kth row or the kth column has only one '1'.
  • the number of '1' and k in the remaining rows or columns except for the k-th row or the k-th column, which are relatively dense, are k.
  • the number of '1' present in the row or the k-th column may be configured to be relatively different.
  • the size of the coding matrix is a ⁇ b
  • the relatively dense column is the k-th column
  • the magnitude is b ⁇ a, where a is greater than or equal to k and b is a positive integer.
  • the method may further include outputting message blocks including at least one '1' among the generated message blocks as input data.
  • the message block may include a first message block including all of the truncated blocks, and a second message block to a second message block generated by removing the truncated blocks one by one from the first message block.
  • c consists of message blocks.
  • the first message blocks to the cth message blocks are output as input data in order.
  • the step of receiving data from the outside before generating the coding matrix is generated as a first message block, including '0' bits in front of '1' and '1' based on the first '1' from the previous message block, and then comprising the remaining bits.
  • the step of receiving data from the outside before generating the coding matrix Generating a message block consisting of n bits having a preset length using the received data; Outputting the message block as the generated input data.
  • the step of generating the message block the data block up to the first bit of the '1' in the previous message block, and by filling the number of bits of the excluded data from the received data to form a subsequent message block do.
  • the subsequent message block may be generated by filling the data of the bit number excluded from the previous message block with '1'. Can be.
  • the subsequent message block is filled by filling data from the subsequently received data with the number of bits excluded from the previous message block. Can be generated.
  • the step of receiving data from the outside before generating the coding matrix Generating a message block consisting of n bits having a preset length using the received data; Outputting the message block as the generated input data.
  • the subsequent message block is generated by excluding data up to the first bit of '1' from the previous message block and filling the number of bits of the excluded data with '1'. can do.
  • the rows of the coding matrix are sequentially connected. Generate a codeword.
  • the codeword is generated by sequentially connecting the columns of the coding matrix.
  • each row of the encoding matrix is defined as a codeword.
  • a distributed codeword that defines each column of the coding matrix as a codeword and generates as many codewords as the number of columns of the coding matrix.
  • the codeword may be generated by defining the concept of.
  • the first to kth rows of the coding matrix are determined.
  • Each row may be defined as a codeword to generate k codewords.
  • k codewords are generated by defining each column of the first to kth columns as a codeword in the coding matrix.
  • k + 1th to nth in the coding matrix when the kth row of the coding matrix is configured to have a higher relative density than the remaining rows, k + 1th to nth in the coding matrix.
  • Each row of the row may be defined as a codeword to generate nk codewords.
  • nk codewords are generated by defining each column of the k + 1 to nth columns as a codeword in the coding matrix. .
  • a codeword of all '0' may be generated without generating the coding matrix.
  • the length of the codeword generated using the coding matrix is m and all n bits of the input data consist only of '0', the m is not generated without generating the coding matrix. Can generate codewords of different lengths.
  • an encoding apparatus using a relatively high density of input data includes a k-th row in each of the remaining rows when the first '1' is the k-th bit in n-bit input data.
  • a coding matrix generator configured to generate a coding matrix configured to have a relatively high density, or to configure a k-th column with a relatively higher density than the remaining columns;
  • a codeword generator for generating a codeword using the coding matrix;
  • a codeword transmitter for transmitting the generated codeword to the outside.
  • the encoding method performs a k-th row when the first '1' is a k-th bit in n-bit input data. Generating a coding matrix configured to have a higher relative density than the remaining respective rows, or configured to have a k-th column relatively higher than the remaining respective columns; Generating a codeword using the coding matrix; And transmitting the generated codeword.
  • the number of '1's present in the kth row or the kth column in the coding matrix is the number of' 1s' present in the remaining rows or columns.
  • the k-th row or the k-th column is arranged to have a relatively larger number so that the relative density is higher than that of the remaining rows or columns.
  • a method of arranging the input data in the k-th row or the k-th column as it is, and '0' and the zero-th input of the input data in the k-th row or the k-th column may be configured to have a higher relative density than the remaining rows or columns by using any one of randomly mixing and arranging '1'. .
  • a method of configuring all kth bits of the input data as '1' in the kth row or the kth column and the kth row or the kth column may be configured to have a higher relative density than the remaining rows or columns by using any one of the methods of configuring all bits of '1'. have.
  • random data consisting of n bits equal to an input data length may be arranged in the k-th row or the k-th column so that the k-th row or the k-th column is remaining. It can be configured to have a relatively high density compared to the rows or columns of.
  • each of the remaining rows or columns except for the relatively dense kth row or the kth column has only one '1'.
  • the number of '1' and k in the remaining rows or columns except for the k-th row or the k-th column, which are relatively dense, are k.
  • the number of '1' present in the row or the k-th column may be configured to be relatively different.
  • the size of the coding matrix is a ⁇ b
  • the relatively dense column is the k-th column
  • the magnitude is b ⁇ a, where a is greater than or equal to k and b is a positive integer.
  • the method may further include outputting message blocks including at least one '1' among the generated message blocks as input data.
  • the message block may include a first message block including all of the truncated blocks, and a second message block to a second message block generated by removing the truncated blocks one by one from the first message block.
  • c consists of message blocks.
  • the first message blocks to the cth message blocks are output as input data in order.
  • the step of receiving data from the outside before generating the coding matrix is generated as a first message block, including '0' bits in front of '1' and '1' based on the first '1' from the previous message block, and then comprising the remaining bits.
  • the step of receiving data from the outside before generating the coding matrix Generating a message block consisting of n bits having a preset length using the received data; Outputting the message block as the generated input data.
  • the step of generating the message block the data block up to the first bit of the '1' in the previous message block, and by filling the number of bits of the excluded data from the received data to form a subsequent message block do.
  • the subsequent message block may be generated by filling the data of the bit number excluded from the previous message block with '1'. Can be.
  • the subsequent message block is filled by filling data from the subsequently received data with the number of bits excluded from the previous message block. Can be generated.
  • the step of receiving data from the outside before generating the coding matrix Generating a message block consisting of n bits having a preset length using the received data; Outputting the message block as the generated input data.
  • the subsequent message block is generated by excluding data up to the first bit of '1' from the previous message block and filling the number of bits of the excluded data with '1'. can do.
  • the rows of the coding matrix are sequentially connected. Generate a codeword.
  • the codeword is generated by sequentially connecting the columns of the coding matrix.
  • each row of the encoding matrix is defined as a codeword.
  • a distributed codeword that defines each column of the coding matrix as a codeword and generates as many codewords as the number of columns of the coding matrix.
  • the codeword may be generated by defining the concept of.
  • the first to kth rows of the coding matrix are determined.
  • Each row may be defined as a codeword to generate k codewords.
  • k codewords are generated by defining each column of the first to kth columns as a codeword in the coding matrix.
  • k + 1th to nth in the coding matrix when the kth row of the coding matrix is configured to have a higher relative density than the remaining rows, k + 1th to nth in the coding matrix.
  • Each row of the row may be defined as a codeword to generate nk codewords.
  • nk codewords are generated by defining each column of the k + 1 to nth columns as a codeword in the coding matrix. .
  • a codeword of all '0' may be generated without generating the coding matrix.
  • the length of the codeword generated using the coding matrix is m and all n bits of the input data consist only of '0', the m is not generated without generating the coding matrix. Can generate codewords of different lengths.
  • an encoding apparatus using a relatively high density of input data includes a k-th row in each of the remaining rows when the first '1' is the k-th bit in n-bit input data.
  • a coding matrix generator configured to generate a coding matrix configured to have a relatively high density, or to configure a k-th column with a relatively higher density than the remaining columns;
  • a codeword generator for generating a codeword using the coding matrix;
  • a codeword transmitter for transmitting the generated codeword to the outside.
  • FIG. 1 is a block diagram illustrating an encoding apparatus using a relatively high density of input data according to embodiments of the present invention.
  • FIG. 2 is a flowchart illustrating an encoding method using a relatively high density of input data according to embodiments of the present invention.
  • FIG. 3 is a block diagram illustrating an encoding apparatus using a relatively high density of input data according to another embodiment of the present invention.
  • FIG. 4 is a flowchart illustrating a coding method using a relatively high density of input data 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 relatively high density of input data according to embodiments of the present invention.
  • the encoding apparatus 100 using a relatively high density of input data may include a data receiver 110, a truncation unit 120, a block unit 130, and an input data output unit 140. ), A coding matrix generator 150, a codeword generator 160, and a transmitter 170.
  • the data receiver 110 receives data from the outside.
  • the cutter 120 chops the received data based on '1' to generate a plurality of cut blocks.
  • the truncation unit 120 cuts the received data between the bit in which the '1' exists and the next bit whenever a bit in which '1' appears based on the first bit (from the first bit). can do.
  • the cutter 120 cuts the data into '0001', '01', '1', '01', and '0'.
  • 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.
  • the message block may be generated as c-th message blocks. For example, when the cutting unit 120 cuts the received data of '0001011010' into '0001', '01', '1', '01', and '0', the block unit 130 is a cut block.
  • Each of the first message block '0001011010' and the second to fifth message blocks '011010', '1010', '010', and '0' may be generated. That is, the block unit 130 may generate a message block that is the same as the data cut by the cutting unit 120 or smaller in length (size) than the data. The block unit 130 continuously transfers the generated message blocks to the input data output unit 140.
  • the truncation part 120 is omitted and the block part 130 is based on the first '1' from the previous message block and the first message block is the original message and the subsequent message block is based on the first '1' from the previous message block.
  • the data consisting of the remaining bits creates the subsequent message block.
  • the block unit 130 may include '0001011010', which is the first message block, which is made up of the entire block, and '011010', '1010', '010', and '0', which are the second to fifth message blocks. Each can be created with The block unit 130 continuously transfers the generated message blocks to the input data output unit 140.
  • the c message block generated by the block unit 130 is a block composed of all '0's, 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 data when the data consists only of '0', the data is directly generated as the codeword.
  • the data may be generated as a message block through the cutout 120 and the block 130.
  • the block unit 130 outputs the message block to the codeword generator 160 without outputting the message block to the input data output unit 140 or the encoding matrix generator 150.
  • the codeword generator 160 may directly generate the data as a codeword. That is, when the data consists only of '0', the data may be directly transferred to the codeword generator 160 only through the cutout 120 and the block 130.
  • the device may be configured to transfer the data directly to the codeword generation unit 160 without passing through the cutting unit 120 and the block unit 130.
  • the zero block is directly transferred to the codeword generating unit 160 via 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 a zero block composed of '00', the last block is not directly transmitted to the input data output unit 140 and the encoding matrix generator 150 but is directly passed to the codeword generator 160 to generate the codeword. Can be.
  • 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 block The device 130 may be configured to additionally perform the same function as that of the input data output unit 140.
  • 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 including all of the truncated message blocks as first input data, and the data includes remaining blocks except for one block among the divided blocks. Output as subsequent 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 data from the data to the c message block transferred from the block unit 130. For example, when the data is '0001011010', the input data output unit 140 outputs the data '0001011010' as the first input data, which is the first input data, except for the '0001' block, which is the first block. The remaining data '011010' is output as second input data which is subsequent input data. Subsequently, the input data output unit 140 outputs, as the third input data, '1010' except for '01', which is the first block in the second input data, and '1', which is the first block in the third input data. 010 is output as the fourth input data.
  • the cutting unit 120, the block unit 130, and the input data output unit 140 cut the data into blocks and determine the blocks of the input data to be output.
  • all methods that can reduce the computational burden through the so-called sub-routine method of outputting the input data except for a specific block from the previously output input data by blocking the block are included in the scope of the present invention. will be.
  • the encoding matrix generator 150 generates an encoding matrix by using characteristics of input data including n bits received from the input data output unit 140.
  • the encoding matrix generator 150 may be configured such that when the first bit having '1' in the input data is the kth bit, the k-th row is higher in density than the other rows.
  • the coding matrix is configured such that the k-th column is higher in density than the remaining columns.
  • the encoding matrix generator 150 may have a number of '1's in the kth row or the kth column of the encoding matrix, respectively.
  • the k-th row or the k-th column is arranged so as to be larger than the number of '1' present in to configure the k-th row or the k-th column to have a higher relative density than the remaining rows or columns. That is, the relative density between rows or columns of the coding matrix means that the number of '1' of each row or column is large. That is, when each row is composed of 10 bits, when the number of '1's in the first row is 8 and the number of' 1s' in the second row is 3, the first row is smaller than the second row. The relative density will be high.
  • the encoding matrix generator 150 may make the fourth row of the encoding matrix relatively higher in density than the other rows. Or form a matrix such that the fourth column of the coding matrix has a higher relative density than the other columns. In other words, the encoding matrix generator 150 may configure the encoding matrix such that the number of '1's present in the fourth row or the fourth column is greater than the number of' 1s' present in the other row or column.
  • the encoding matrix generator 150 may configure a k-th row or a k-th column using the transferred input data. For example, the encoding matrix generator 150 may arrange the input data in the k-th row or the k-th column of the encoding matrix as it is. Alternatively, the encoding matrix generator 150 may randomly mix '0' and '1' of the input data in a kth row or a kth column of the encoding matrix. That is, the encoding matrix generator 150 arranges random data consisting of n bits equal to the input data length.
  • the encoding matrix generator 150 directly inputs the input data in the fourth row as shown in Equation 1 below.
  • the coding matrix to arrange can be comprised. This is generally used because the relative density of input data is high, that is, the number of '1' is relatively high in the input data.
  • the encoding matrix generator 150 may configure all kth and subsequent bits of the input data as '1' in the kth row or the kth column. If the input data is '0001011010', since the bit in which '1' first appears in the input data is the fourth bit, the encoding matrix generator 150 increases the relative density of the fourth row as shown in Equation 2 below. And, from the fourth bit, constitute all '1's.
  • the encoding matrix generator 150 may configure all bits of the k-th row or the k-th column as '1'. If the input data is '0001011010', since the first bit where '1' appears in the input data is the fourth bit, the encoding matrix generator 150 increases the relative density of the fourth row as shown in Equation 3 below. Form and specifically, all bits comprise '1'.
  • the encoding matrix generator 150 may use the k-th row or the zero by randomly arranging '1' and '0' in a k-th row or a k-th column.
  • the k-th column may be configured to have a relatively high density relative to each of the remaining rows or columns. If the input data is '0001011010', since the bit in which '1' first appears in the input data is the fourth bit, the encoding matrix generator 150 randomly generates the fourth row without a specific rule as shown in Equation 4 below. By arranging '0' and '1', the fourth row can be formed with a higher relative density than the other rows.
  • the relative density of the row or column corresponding to the bit in which '1' first appears in the input data may be higher than that of other rows or columns, and the coding matrix may be formed regardless of the number of '1's included in the input data. It is.
  • the encoding matrix generator 150 is arranged such that only one '1' exists in each row or column except for a relatively dense row or column that reflects the characteristics of the input data (the bit at which '1' first appears). can do.
  • the encoding matrix generation unit 150 excludes '1' existing in the remaining rows except for the k row, except for the column in which the first '1' appears in the kth row, and each row in the order of the rows or the columns. You can configure the rest of the rows so that there is one '1' in each column. That is, referring to Equations 1 to 4, if the input data is '0001011010', '1' is arranged in the order of rows and columns except for the fourth row. The first row contains '1' in the first column (the first bit), the second row contains '1' in the second column (the second bit), and the fifth row contains the fifth column (the fifth). Bit), and '1' may be arranged in the other rows except for the fourth row in the same or similar form as the identity matrix.
  • the encoding matrix generator 150 may configure the remaining rows of the encoding matrix such that one '1' is randomly present in one row rather than a unit matrix in which '1' is arranged in the order of rows and columns. Can be.
  • the encoding matrix generator 150 may configure the remaining rows of the encoding matrix such that a plurality of '1's exist, rather than a unit matrix format in which' 1's are arranged in the order of rows and columns.
  • the encoding matrix generator 150 arranges the relative density of the fourth row to be the highest as shown in Equation 5 below, and the remaining rows are randomly arranged to have '1', but the density is lower than that of the fourth row. Can be configured.
  • the encoding matrix generator 150 may have a '1' present in the k-th row or the k-th column having a relatively high density reflecting the characteristics of the input data (the first bits of which '1' appears).
  • the remaining rows of the coding matrix may be configured such that the number of and the number of '1' present in each of the remaining rows or columns are relatively different.
  • the encoding matrix generator 150 may include the number of '1's in the relatively high density kth row or the kth column reflecting the characteristics of the input data (the bits at which' 1 'first appears) and the remaining rows or the like.
  • the remaining rows of the coding matrix may be configured such that the number difference of '1' present in the column is at least two differences. If the number of '1's is seven in the kth row having the highest relative density of the coding matrix, the number of' 1s' of the remaining rows is five or less.
  • the encoding matrix generator 150 may generate an encoding matrix having a size of a ⁇ b.
  • the encoding matrix generator 150 may generate an encoding matrix having a size of b ⁇ a. Where a is greater than or equal to k and b is a positive integer.
  • b may be greater than or equal to 3.
  • b is set to be larger than 3 because it is difficult to have a density difference between rows or columns when the number of bits of a row or column is one or two.
  • the encoding matrix generator 150 may define the size of the encoding matrix irrespective of the length of the input data.
  • the encoding matrix generator 150 may generate an encoding matrix of size n ⁇ n for input data consisting of n bits.
  • the encoding matrix generator 150 may generate a coding matrix having a size of k ⁇ n, k ⁇ 3, and (k + 1) ⁇ 4 when '1' exists first in the kth bit of the input data. .
  • the encoding matrix generator 150 arranges the encoding matrix as '1' only in the kth row as shown in Equation 6 below, and n ⁇ 1.
  • a coding matrix of size may be generated. If the size of the coding matrix is defined as the size of a ⁇ b, a is greater than or equal to k, and b becomes 1.
  • the codeword generator 160 generates a single codeword.
  • the encoding matrix generator 150 may have a '1' present in the k-th row or the k-th column having a relatively high density reflecting the characteristics of the input data (the first bits of which '1' appears).
  • the remaining rows of the coding matrix may be configured such that the number of and the number of '1' present in each of the remaining rows or columns are relatively different.
  • the encoding matrix generator 150 may include the number of '1's in the relatively high density kth row or the kth column reflecting the characteristics of the input data (the bits at which' 1 'first appears) and the remaining rows or the like.
  • the remaining rows of the coding matrix may be configured such that the number difference of '1' present in the column is at least two differences. If the number of '1's is seven in the kth row having the highest relative density of the coding matrix, the number of' 1s' of the remaining rows is five or less.
  • the encoding matrix generator 150 may generate an encoding matrix having a size of a ⁇ b.
  • the encoding matrix generator 150 may generate an encoding matrix having a size of b ⁇ a. Where a is greater than or equal to k and b is a positive integer.
  • b may be greater than or equal to 3.
  • b is set to be larger than 3 because it is difficult to have a density difference between rows or columns when the number of bits of a row or column is one or two.
  • the encoding matrix generator 150 may define the size of the encoding matrix irrespective of the length of the input data.
  • the encoding matrix generator 150 may generate an encoding matrix of size n ⁇ n for input data consisting of n bits.
  • the encoding matrix generator 150 may generate a coding matrix having a size of k ⁇ n, k ⁇ 3, and (k + 1) ⁇ 4 when '1' exists first in the kth bit of the input data. .
  • the encoding matrix generator 150 arranges the encoding matrix as '1' only in the kth row as shown in Equation 6 below, and n ⁇ 1.
  • a coding matrix of size may be generated. If the size of the coding matrix is defined as the size of a ⁇ b, a is greater than or equal to k, and b becomes 1.
  • the codeword generator 160 generates a single codeword.
  • bit '1' may be used to compensate for the deleted bits without using the received data.
  • the first message block is the same as the received data. If the second message block deletes up to the first bit where '1' appears in the first message block, that is, '001' and then complements the remaining bits '011010' and the deleted bit with '1' in the first message block, 2 The message block is '011010111', and the third message block deletes the bits '1010111' and the deleted bits remaining until the first '1' appears in the second message block, that is, '01'.
  • the third message block is '101011111'
  • the fourth message block deletes '1' until the first bit where '1' appears in the third message block, ie, remains in the third message block.
  • Bits' 010 Bit '1' is supplemented by 11111 'and the deleted bit to obtain' 010111111 'as the fourth message block.
  • the fifth message block deletes '01' until the first bit in which the '1' appears in the fourth message block, and complements the bit '1' by the remaining bits '0111111' and the number of deleted bits in the fourth message block. 5 Get message block '01111111'.
  • the length of the received data is set to the length of the message block, it is generated from the first message block to the fifth message block.
  • the message blocks are generated as shown in Table 2 below.
  • a message block may be generated using the same method for each of the partial received data having a smaller number of bits than the received data, and each partial received data according to the type of bits constituting the partial received data. Different methods can be used to generate message blocks.
  • the number of bits of the data deleted in the previous message block from the neighboring partial received data is filled with the subsequent data of the previous message block to n bits having a fixed length. Generates subsequent message blocks that have been made. And when the number of bits of the data deleted from the previous message block is not completely filled from neighboring partial received data, the subsequent message block of n bits having a fixed length is generated by filling the non-filled data with bit '1'. can do. That is, the plurality of partial received data may be used to interwork with each other to generate a message block.
  • the length of the received data and the length of the message block may be the same.
  • the received data is used as a message block.
  • the subsequent message block may be filled with bit '1'.
  • the block unit 180 When the block unit 180 generates a message block having a fixed length and transmits the message block to the encoding matrix generator 140 in the above manner, not only the encoding performance is improved but also the error is significant in relation to the effect of the decoding performance. Can be reduced.

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 입력 데이터의 상대적 고밀도를 이용한 부호화 방법 및 장치에 관한 것으로 개시된 부호화 방법 및 장치는 n개 비트로 이루어진 입력 데이터에서 최초로 '1'이 존재하는 비트가 제k 번째 비트일 경우, 제k 행(row)을 나머지 각각의 행들에 비하여 상대적인 밀도가 높도록 구성되거나, 제k 열(column)을 나머지 각각의 열들에 비하여 상대적인 밀도가 높도록 구성된 부호화 행렬을 생성하는 단계; 부호화 행렬을 이용하여 코드워드(codeword)를 생성하는 단계 및 생성된 코드워드를 전송하는 단계로 이루어진다.

Description

입력 데이터의 상대적 고밀도를 이용한 부호화 방법 및 장치
본 발명은 입력 데이터의 상대적 고밀도를 이용한 부호화 방법 및 장치에 관한 것으로서, 입력 데이터의 특성이 반영된 부호화 행렬을 생성하고, 생성한 부호화 행렬의 데이터의 밀도(density)를 이용하여 메시지를 쉽게 부호화 할 수 있는 입력 데이터의 상대적 고밀도를 이용한 부호화 방법 및 장치에 관한 것이다.
일반적으로, 많은 통신 장치나 기록 재생 장치에 있어서는 입력 정보 계열을 부호화한 부호 계열을 전송함으로써 디지털 전송 정보의 비트 오류율(Bit Error Rate, BER)의 저감이 도모되고 있다.
최근, 예를 들어 이동 통신이나 우주 통신 등의 통신 분야, 및 지상파 또는 위성 디지털 방송이라는 방송 분야의 연구가 활발하게 진행되고 있으며, 그에 수반하여 오류 정정 부호화 및 복호의 효율성을 목적으로 한 부호 이론에 관한 연구도 꾸준하게 행하여지고 있다.
부호 성능의 이론적 한계의 예로 섀넌(C.E.Shannon)의 통신로 부호화 정리에 의해 부여되는 섀넌 한계가 알려져 있다. 이에 부호 이론에 관한 연구의 목적 중 하나는 이 섀넌 한계에 가까운 성능을 나타내는 부호를 개발하는 것이다.
그러나 기존에 개발된 코딩(encoding/decoding) 방법은 부호화(encoding) 단계에서 효율적이지 못하고, 계산이 복잡해지는 문제점이 발생한다.
이에 부호화 단계에서부터 계산 과정을 현저하게 줄일 수 있는 코딩 방법의 필요성이 크게 대두되고 있다.
본 발명은 이와 같은 문제점을 해결하기 위한 것으로, 본 발명은 입력 데이터의 특징을 구현한 부호화 행렬을 생성하고, 생성된 부호화 행렬을 사용하여 코드워드를 효율적으로 생성함으로써, 부호화에 사용되는 계산을 현저하게 감소시킬 수 있는 입력 데이터의 상대적 고밀도를 이용한 부호화 방법을 제공하는 데에 그 목적이 있다.
나아가, 본 발명은 상기 부호화 방법을 실행하기 위한 입력 데이터의 상대적 고밀도를 이용한 부호화 장치를 제공하는 데에 그 목적이 있다.
본 발명의 실시예들에 따른 입력 데이터의 상대적 고밀도를 이용한 부호화 방법에 따르면, 부호화 방법은 n개 비트로 이루어진 입력 데이터에서 최초의 '1'이 제k 번째 비트일 경우, 제k 행(row)을 나머지 각각의 행들에 비하여 상대적인 밀도가 높도록 구성되거나, 제k 열(column)을 나머지 각각의 열들에 비하여 상대적인 밀도가 높도록 구성된 부호화 행렬을 생성하는 단계; 상기 부호화 행렬을 이용하여 코드워드(codeword)를 생성하는 단계; 및 상기 생성된 코드워드를 전송하는 단계로 이루어진다.
본 발명의 실시예들에 있어서, 상기 부호화 행렬에서의 제k 행(row) 또는 제k 열(column)에 존재하는 '1'의 개수가 나머지 각각의 행들 또는 열들에 존재하는 '1'의 개수보다 상대적으로 많도록 배열하여 상기 제k 행(row) 또는 제k 열(column)을 나머지 각각의 행들 또는 열들에 비하여 상대적인 밀도가 높도록 구성한다.
일 예로, 상기 제k 행(row) 또는 제k 열(column)에 상기 입력 데이터를 그대로 배열하는 방법과 상기 제k 행(row) 또는 제k 열(column)에 상기 입력 데이터의 '0'과 '1'을 랜덤하게 섞어서 배열하는 방법 중 어느 하나의 방법을 이용하여 상기 제k 행(row) 또는 제k 열(column)을 나머지 각각의 행들 또는 열들에 비하여 상대적인 밀도가 높도록 구성할 수 있다.
다른 예로, 상기 제k 행(row) 또는 제k 열(column)에서 상기 입력 데이터의 제k 번째 비트부터 모두 '1'로 구성하는 방법과 상기 제k 행(row) 또는 제k 열(column)의 모든 비트를 '1'로 구성하는 방법 중 어느 하나의 방법을 이용하여 상기 제k 행(row) 또는 제k 열(column)을 나머지 각각의 행들 또는 열들에 비하여 상대적인 밀도가 높도록 구성할 수 있다.
또 다른 예로, 상기 제k 행(row) 또는 제k 열(column)에 입력 데이터 길이와 동일한 n개 비트로 이루어진 랜덤데이터를 배열하여 상기 제k 행(row) 또는 제k 열(column)을 나머지 각각의 행들 또는 열들에 비하여 상대적인 밀도가 높도록 구성할 수 있다.
본 발명의 실시예들에 있어서, 상기 부호화 행렬을 생성하는 단계에서, 상대적으로 밀도가 높은 제k 행 또는 제k 열을 제외한 나머지 행들 또는 열들 각각은 '1'이 하나만 존재하도록 한다.
본 발명의 다른 실시예들에 있어서, 상기 부호화 행렬을 생성하는 단계에서, 상대적으로 밀도가 높은 제k 행 또는 제k 열을 제외한 나머지 각각의 행들 또는 열들에 존재하는 '1'의 개수와 상기 k 행 또는 제k 열에 존재하는 '1'의 개수가 상대적으로 차이가 나도록 구성할 수 있다.
본 발명의 실시예들에 있어서, 상기 상대적으로 밀도가 높은 행이 제k 행인 경우에 상기 부호화 행렬의 크기는 a×b이고, 상기 상대적으로 밀도가 높은 열이 제k 열인 경우에 상기 부호화 행렬의 크기는 b×a이며, 여기서, a는 상기 k보다 크거나 같고, b는 양의 정수이다.
본 발명의 실시예들에 있어서, 상기 부호화 행렬을 생성하는 단계 이전에 외부로부터 데이터를 수신하는 단계; 상기 수신한 데이터를 '1'을 기준으로 절단(chopping)하여 복수개의 절단된 블록들로 생성하는 단계; 상기 절단된 블록들 중 적어도 하나의 절단된 블록으로 구성된 메시지 블록을 생성하는 단계; 상기 생성된 메시지 블록들 중에서 적어도 하나의 '1'을 포함하는 메시지 블록들을 입력 데이터로 출력하는 단계를 더 포함할 수 있다.
본 발명의 실시예들에 있어서, 상기 수신한 데이터를 복수개의 블록들로 절단(chopping)하는 단계에서는 상기 수신한 데이터를 최초의 비트를 기준으로 '1'이 나오는 비트가 나올 때마다 상기 '1'이 존재하는 비트와 다음 비트 사이를 절단한다.
그리고 상기 메시지 블록을 생성하는 단계에서, 상기 메시지 블록은 상기 절단된 블록들 전체로 구성된 제1 메시지 블록과, 상기 제1 메시지 블록에서 상기 절단된 블록을 하나씩 제거하여 생성된 제2 메시지 블록 내지 제c 메시지 블록들로 이루어진다.
이어서, 상기 메시지 블록을 부호화 행렬의 생성을 위한 입력 데이터로 출력하는 단계에서, 상기 제1 메시지 블록 내지 제c 메시지 블록을 순서대로 입력 데이터로 출력한다.
본 발명의 실시예들에 있어서, 상기 부호화 행렬을 생성하는 단계 이전에 외부로부터 데이터를 수신하는 단계; 상기 수신한 데이터를 제1 메시지 블록으로 생성하고, 이전 메시지 블록으로부터 최초의'1'을 기준으로'1'앞에 있는'0'비트들과'1'을 포함하여 삭제한 후에 나머지 비트들로 구성된 메시지 블록을 상기 제1 메시지 블록의 후속 메시지 블록으로 생성하는 메시지 블록을 생성하는 단계; 및 상기 생성된 메시지 블록을 순서대로 입력 데이터로 출력하는 단계를 더 포함할 수 있다.
본 발명의 실시예들에 있어서, 상기 부호화 행렬을 생성하는 단계 이전에 외부로부터 데이터를 수신하는 단계; 상기 수신한 데이터를 이용하여 사전에 설정된 길이인 n개 비트로 이루어진 메시지 블록을 생성하는 단계; 상기 메시지 블록을 상기 생성된 입력 데이터로 출력하는 단계로 이루어진다. 이 때, 상기 메시지 블록을 생성하는 단계에서, 이전 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터를 제외시키고, 상기 제외시킨 데이터의 비트 수 만큼을 상기 수신한 데이터로부터 채워서 후속 메시지 블록을 구성한다.
또한, 메시지 블록을 생성하는 단계에서, 상기 수신한 데이터로부터 상기 후속 메시지 블록을 구성하지 못하는 경우, 상기 이전 메시지 블록에서 제외된 비트 수 만큼의 데이터를 '1'로 채워서 상기 후속 메시지 블록을 생성할 수 있다.
또한, 메시지 블록을 생성하는 단계에서, 상기 수신한 데이터로부터 상기 후속 메시지 블록을 구성하지 못하는 경우, 상기 이전 메시지 블록에서 제외된 비트 수 만큼의 데이터를 후속으로 수신한 데이터로부터 채워서 상기 후속 메시지 블록을 생성할 수 있다.
본 발명의 실시예들에 있어서, 상기 부호화 행렬을 생성하는 단계 이전에 외부로부터 데이터를 수신하는 단계; 상기 수신한 데이터를 이용하여 사전에 설정된 길이인 n개 비트로 이루어진 메시지 블록을 생성하는 단계; 상기 메시지 블록을 상기 생성된 입력 데이터로 출력하는 단계로 이루어진다. 이 때, 상기 메시지 블록을 생성하는 단계에서, 이전 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터를 제외시키고, 상기 제외시킨 데이터의 비트 수 만큼을 '1'로 채워서 상기 후속 메시지 블록을 생성할 수 있다.
본 발명의 실시예들에 있어서, 상기 코드워드를 생성하는 단계에서, 상기 부호화 행렬의 제k 행이 나머지 행들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬의 행들을 순서대로 연결하는 방식으로 코드워드를 생성한다. 또한, 상기 부호화 행렬의 제k 열이 나머지 열들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬의 열들을 순서대로 연결하는 방식으로 코드워드를 생성한다.
본 발명의 실시예들에 있어서, 상기 코드워드를 생성하는 단계에서, 상기 부호화 행렬의 제k 행이 나머지 행들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬의 각 행을 코드워드로 정의하여 부호화 행렬의 행의 수만큼의 코드워드를 생성한다. 또한, 상기 부호화 행렬의 제k 열이 나머지 열들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬의 각 열을 코드워드로 정의하여 부호화 행렬의 열의 수만큼의 코드워드를 생성하는 분산된 코드워드의 개념을 정의하여 부호화 행렬의 열의 수만큼의 코드워드를 생성할 수도 있다.
본 발명의 실시예들에 있어서, 상기 코드워드를 생성하는 단계에서, 상기 부호화 행렬의 제k 행이 나머지 행들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬에서 제1 행 내지 제k 행의 각 행을 코드워드로 정의하여 k개의 코드워드를 생성할 수도 있다. 또한, 상기 부호화 행렬의 제k 열이 나머지 열들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬에서 제1 열 내지 제k 열의 각 열을 코드워드로 정의하여 k개의 코드워드를 생성한다.
본 발명의 실시예들에 있어서, 상기 코드워드를 생성하는 단계에서, 상기 부호화 행렬의 제k 행이 나머지 행들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬에서 제k+1 행 내지 제n 행의 각 행을 코드워드로 정의하여 n-k개의 코드워드를 생성할 수도 있다. 또한, 상기 부호화 행렬의 제k 열이 나머지 열들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬에서 제k+1 열 내지 제n 열의 각 열을 코드워드로 정의하여 n-k개의 코드워드를 생성한다.
본 발명의 실시예들에 있어서, 입력 데이터의 n개 비트가 모두 '0'으로만 이루어진 경우에는 상기 부호화 행렬을 생성하지 않고 모두 '0'으로 이루어진 코드워드(codeword)를 바로 생성할 수 있다.
본 발명의 실시예들에 있어서, 상기 부호화 행렬을 이용하여 생성한 코드워드의 길이가 m이고, 입력 데이터의 n개 비트가 모두 '0'으로만 이루어진 경우에는 상기 부호화 행렬을 생성하지 않고 상기 m이 아닌 다른 길이로 이루어진 코드워드(codeword)를 생성할 수 있다.
본 발명의 실시예들에 따른 입력 데이터의 상대적 고밀도를 이용한 부호화 장치는 n개 비트로 이루어진 입력 데이터에서 최초의 '1'이 제k 번째 비트일 경우, 제k 행(row)을 나머지 각각의 행들에 비하여 상대적인 밀도가 높도록 구성되거나, 제k 열(column)을 나머지 각각의 열들에 비하여 상대적인 밀도가 높도록 구성된 부호화 행렬을 생성하는 부호화 행렬 생성부; 상기 부호화 행렬을 이용하여 코드워드(codeword)를 생성하는 코드워드 생성부; 및 상기 생성한 코드워드를 외부로 전송하는 코드워드 전송부를 포함한다.
본 발명의 실시예들에 따른 입력 데이터의 상대적 고밀도를 이용한 부호화 방법에 따르면, 부호화 방법은 n개 비트로 이루어진 입력 데이터에서 최초의 '1'이 제k 번째 비트일 경우, 제k 행(row)을 나머지 각각의 행들에 비하여 상대적인 밀도가 높도록 구성되거나, 제k 열(column)을 나머지 각각의 열들에 비하여 상대적인 밀도가 높도록 구성된 부호화 행렬을 생성하는 단계; 상기 부호화 행렬을 이용하여 코드워드(codeword)를 생성하는 단계; 및 상기 생성된 코드워드를 전송하는 단계로 이루어진다.
본 발명의 실시예들에 있어서, 상기 부호화 행렬에서의 제k 행(row) 또는 제k 열(column)에 존재하는 '1'의 개수가 나머지 각각의 행들 또는 열들에 존재하는 '1'의 개수보다 상대적으로 많도록 배열하여 상기 제k 행(row) 또는 제k 열(column)을 나머지 각각의 행들 또는 열들에 비하여 상대적인 밀도가 높도록 구성한다.
일 예로, 상기 제k 행(row) 또는 제k 열(column)에 상기 입력 데이터를 그대로 배열하는 방법과 상기 제k 행(row) 또는 제k 열(column)에 상기 입력 데이터의 '0'과 '1'을 랜덤하게 섞어서 배열하는 방법 중 어느 하나의 방법을 이용하여 상기 제k 행(row) 또는 제k 열(column)을 나머지 각각의 행들 또는 열들에 비하여 상대적인 밀도가 높도록 구성할 수 있다.
다른 예로, 상기 제k 행(row) 또는 제k 열(column)에서 상기 입력 데이터의 제k 번째 비트부터 모두 '1'로 구성하는 방법과 상기 제k 행(row) 또는 제k 열(column)의 모든 비트를 '1'로 구성하는 방법 중 어느 하나의 방법을 이용하여 상기 제k 행(row) 또는 제k 열(column)을 나머지 각각의 행들 또는 열들에 비하여 상대적인 밀도가 높도록 구성할 수 있다.
또 다른 예로, 상기 제k 행(row) 또는 제k 열(column)에 입력 데이터 길이와 동일한 n개 비트로 이루어진 랜덤데이터를 배열하여 상기 제k 행(row) 또는 제k 열(column)을 나머지 각각의 행들 또는 열들에 비하여 상대적인 밀도가 높도록 구성할 수 있다.
본 발명의 실시예들에 있어서, 상기 부호화 행렬을 생성하는 단계에서, 상대적으로 밀도가 높은 제k 행 또는 제k 열을 제외한 나머지 행들 또는 열들 각각은 '1'이 하나만 존재하도록 한다.
본 발명의 다른 실시예들에 있어서, 상기 부호화 행렬을 생성하는 단계에서, 상대적으로 밀도가 높은 제k 행 또는 제k 열을 제외한 나머지 각각의 행들 또는 열들에 존재하는 '1'의 개수와 상기 k 행 또는 제k 열에 존재하는 '1'의 개수가 상대적으로 차이가 나도록 구성할 수 있다.
본 발명의 실시예들에 있어서, 상기 상대적으로 밀도가 높은 행이 제k 행인 경우에 상기 부호화 행렬의 크기는 a×b이고, 상기 상대적으로 밀도가 높은 열이 제k 열인 경우에 상기 부호화 행렬의 크기는 b×a이며, 여기서, a는 상기 k보다 크거나 같고, b는 양의 정수이다.
본 발명의 실시예들에 있어서, 상기 부호화 행렬을 생성하는 단계 이전에 외부로부터 데이터를 수신하는 단계; 상기 수신한 데이터를 '1'을 기준으로 절단(chopping)하여 복수개의 절단된 블록들로 생성하는 단계; 상기 절단된 블록들 중 적어도 하나의 절단된 블록으로 구성된 메시지 블록을 생성하는 단계; 상기 생성된 메시지 블록들 중에서 적어도 하나의 '1'을 포함하는 메시지 블록들을 입력 데이터로 출력하는 단계를 더 포함할 수 있다.
본 발명의 실시예들에 있어서, 상기 수신한 데이터를 복수개의 블록들로 절단(chopping)하는 단계에서는 상기 수신한 데이터를 최초의 비트를 기준으로 '1'이 나오는 비트가 나올 때마다 상기 '1'이 존재하는 비트와 다음 비트 사이를 절단한다.
그리고 상기 메시지 블록을 생성하는 단계에서, 상기 메시지 블록은 상기 절단된 블록들 전체로 구성된 제1 메시지 블록과, 상기 제1 메시지 블록에서 상기 절단된 블록을 하나씩 제거하여 생성된 제2 메시지 블록 내지 제c 메시지 블록들로 이루어진다.
이어서, 상기 메시지 블록을 부호화 행렬의 생성을 위한 입력 데이터로 출력하는 단계에서, 상기 제1 메시지 블록 내지 제c 메시지 블록을 순서대로 입력 데이터로 출력한다.
본 발명의 실시예들에 있어서, 상기 부호화 행렬을 생성하는 단계 이전에 외부로부터 데이터를 수신하는 단계; 상기 수신한 데이터를 제1 메시지 블록으로 생성하고, 이전 메시지 블록으로부터 최초의'1'을 기준으로'1'앞에 있는'0'비트들과'1'을 포함하여 삭제한 후에 나머지 비트들로 구성된 메시지 블록을 상기 제1 메시지 블록의 후속 메시지 블록으로 생성하는 메시지 블록을 생성하는 단계; 및 상기 생성된 메시지 블록을 순서대로 입력 데이터로 출력하는 단계를 더 포함할 수 있다.
본 발명의 실시예들에 있어서, 상기 부호화 행렬을 생성하는 단계 이전에 외부로부터 데이터를 수신하는 단계; 상기 수신한 데이터를 이용하여 사전에 설정된 길이인 n개 비트로 이루어진 메시지 블록을 생성하는 단계; 상기 메시지 블록을 상기 생성된 입력 데이터로 출력하는 단계로 이루어진다. 이 때, 상기 메시지 블록을 생성하는 단계에서, 이전 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터를 제외시키고, 상기 제외시킨 데이터의 비트 수 만큼을 상기 수신한 데이터로부터 채워서 후속 메시지 블록을 구성한다.
또한, 메시지 블록을 생성하는 단계에서, 상기 수신한 데이터로부터 상기 후속 메시지 블록을 구성하지 못하는 경우, 상기 이전 메시지 블록에서 제외된 비트 수 만큼의 데이터를 '1'로 채워서 상기 후속 메시지 블록을 생성할 수 있다.
또한, 메시지 블록을 생성하는 단계에서, 상기 수신한 데이터로부터 상기 후속 메시지 블록을 구성하지 못하는 경우, 상기 이전 메시지 블록에서 제외된 비트 수 만큼의 데이터를 후속으로 수신한 데이터로부터 채워서 상기 후속 메시지 블록을 생성할 수 있다.
본 발명의 실시예들에 있어서, 상기 부호화 행렬을 생성하는 단계 이전에 외부로부터 데이터를 수신하는 단계; 상기 수신한 데이터를 이용하여 사전에 설정된 길이인 n개 비트로 이루어진 메시지 블록을 생성하는 단계; 상기 메시지 블록을 상기 생성된 입력 데이터로 출력하는 단계로 이루어진다. 이 때, 상기 메시지 블록을 생성하는 단계에서, 이전 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터를 제외시키고, 상기 제외시킨 데이터의 비트 수 만큼을 '1'로 채워서 상기 후속 메시지 블록을 생성할 수 있다.
본 발명의 실시예들에 있어서, 상기 코드워드를 생성하는 단계에서, 상기 부호화 행렬의 제k 행이 나머지 행들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬의 행들을 순서대로 연결하는 방식으로 코드워드를 생성한다. 또한, 상기 부호화 행렬의 제k 열이 나머지 열들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬의 열들을 순서대로 연결하는 방식으로 코드워드를 생성한다.
본 발명의 실시예들에 있어서, 상기 코드워드를 생성하는 단계에서, 상기 부호화 행렬의 제k 행이 나머지 행들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬의 각 행을 코드워드로 정의하여 부호화 행렬의 행의 수만큼의 코드워드를 생성한다. 또한, 상기 부호화 행렬의 제k 열이 나머지 열들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬의 각 열을 코드워드로 정의하여 부호화 행렬의 열의 수만큼의 코드워드를 생성하는 분산된 코드워드의 개념을 정의하여 부호화 행렬의 열의 수만큼의 코드워드를 생성할 수도 있다.
본 발명의 실시예들에 있어서, 상기 코드워드를 생성하는 단계에서, 상기 부호화 행렬의 제k 행이 나머지 행들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬에서 제1 행 내지 제k 행의 각 행을 코드워드로 정의하여 k개의 코드워드를 생성할 수도 있다. 또한, 상기 부호화 행렬의 제k 열이 나머지 열들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬에서 제1 열 내지 제k 열의 각 열을 코드워드로 정의하여 k개의 코드워드를 생성한다.
본 발명의 실시예들에 있어서, 상기 코드워드를 생성하는 단계에서, 상기 부호화 행렬의 제k 행이 나머지 행들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬에서 제k+1 행 내지 제n 행의 각 행을 코드워드로 정의하여 n-k개의 코드워드를 생성할 수도 있다. 또한, 상기 부호화 행렬의 제k 열이 나머지 열들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬에서 제k+1 열 내지 제n 열의 각 열을 코드워드로 정의하여 n-k개의 코드워드를 생성한다.
본 발명의 실시예들에 있어서, 입력 데이터의 n개 비트가 모두 '0'으로만 이루어진 경우에는 상기 부호화 행렬을 생성하지 않고 모두 '0'으로 이루어진 코드워드(codeword)를 바로 생성할 수 있다.
본 발명의 실시예들에 있어서, 상기 부호화 행렬을 이용하여 생성한 코드워드의 길이가 m이고, 입력 데이터의 n개 비트가 모두 '0'으로만 이루어진 경우에는 상기 부호화 행렬을 생성하지 않고 상기 m이 아닌 다른 길이로 이루어진 코드워드(codeword)를 생성할 수 있다.
본 발명의 실시예들에 따른 입력 데이터의 상대적 고밀도를 이용한 부호화 장치는 n개 비트로 이루어진 입력 데이터에서 최초의 '1'이 제k 번째 비트일 경우, 제k 행(row)을 나머지 각각의 행들에 비하여 상대적인 밀도가 높도록 구성되거나, 제k 열(column)을 나머지 각각의 열들에 비하여 상대적인 밀도가 높도록 구성된 부호화 행렬을 생성하는 부호화 행렬 생성부; 상기 부호화 행렬을 이용하여 코드워드(codeword)를 생성하는 코드워드 생성부; 및 상기 생성한 코드워드를 외부로 전송하는 코드워드 전송부를 포함한다.
[도 1]은 본 발명의 실시예들에 따른 입력 데이터의 상대적 고밀도를 이용한 부호화 장치를 설명하기 위한 블록도
[도 2]는 본 발명의 실시예들에 따른 입력 데이터의 상대적 고밀도를 이용한 부호화 방법을 설명하기 위한 순서도
[도 3]은 본 발명의 다른 실시예들에 따른 입력 데이터의 상대적 고밀도를 이용한 부호화 장치를 설명하기 위한 블록도
[도 4]는 본 발명의 실시예들에 따른 입력 데이터의 상대적 고밀도를 이용한 부호화 방법을 설명하기 위한 순서도
첨부한 도면을 참조하여 본 발명의 실시예들에 따른 입력 데이터의 상대적 고밀도를 이용한 부호화 방법 및 장치에 대하여 상세히 설명한다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나, 개략적인 구성을 이해하기 위하여 실제보다 축소하여 도시한 것이다.
또한, 제1 및 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 한편, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 본 발명의 실시예들에 따른 입력 데이터의 상대적 고밀도를 이용한 부호화 장치를 설명하기 위한 블록도이다.
도 1을 참조하면, 본 발명의 실시예들에 따른 입력 데이터의 상대적 고밀도를 이용한 부호화 장치(100)는 데이터 수신부(110), 절단부(120), 블록부(130), 입력 데이터 출력부(140), 부호화 행렬 생성부(150), 코드워드 생성부(160) 및 전송부(170)를 포함한다.
데이터 수신부(110)는 외부로부터 데이터를 수신한다.
본 발명의 실시예들에 따르면, 절단부(120)는 상기 수신한 데이터를 '1'을 기준으로 절단(chopping)하여 복수개의 절단된 블록들로 생성한다. 예를 들어, 절단부(120)는 상기 수신한 데이터를 최초의 비트를 기준으로(첫 번째 비트로부터) '1'이 나오는 비트가 나올 때마다 상기 '1'이 존재하는 비트와 다음 비트 사이를 절단할 수 있다. 예를 들어, 데이터가 '0001011010'일 경우, 절단부(120)는 '0001', '01', '1', '01', '0'로 데이터를 절단한다.
본 발명의 실시예들에 따르면, 블록부(130)는 절단부(120)에서 절단한 블록들 중 적어도 하나의 절단된 블록으로 구성된 메시지 블록을 생성한다. 본 발명의 실시예들에 있어서, 블록부(130)는 상기 절단된 블록들 전체로 구성된 제1 메시지 블록과, 상기 제1 메시지 블록에서 상기 절단된 블록을 하나씩 제거하여 생성된 제2 메시지 블록 내지 제c 메시지 블록들로 메시지 블록을 생성할 수 있다. 예를 들어, 절단부(120)가 '0001011010'인 수신한 데이터를 '0001', '01', '1', '01', '0'로 절단한 경우, 블록부(130)는 절단된 블록 전체로 이루어진 제1 메시지 블록인'0001011010'과 제2 메시지 블록 내지 제5 메시지 블록인 '011010', '1010', '010', '0'으로 각각 생성할 수 있다. 즉, 블록부(130)는 절단부(120)가 절단한 데이터와 같거나 데이터보다 길이(크기)가 작은 메시지 블록을 생성할 수 있다. 그리고 블록부(130)는 생성한 메시지 블록들을 연속하여 입력 데이터 출력부(140)로 전달한다.
본 발명의 실시예들에 따르면, 절단부(120)를 생략하고 블록부(130)는 첫 번째 메시지 블록은 원본 메시지이고 그 다음의 후속 메시지 블록은 이전의 메시지 블록으로부터 최초의 '1'을 기준으로 '1' 앞에 있는 '0' 비트들과 '1'을 포함하여 삭제한 후에 나머지 비트들로 구성된 데이터가 후속 메시지 블록을 생성한다. 예를 들어, 블록부(130)는 절단된 블록 전체로 이루어진 제1 메시지 블록인 '0001011010'과 제2 메시지 블록 내지 제5 메시지 블록인 '011010', '1010', '010', '0'으로 각각 생성할 수 있다. 그리고 블록부(130)는 생성한 메시지 블록들을 연속하여 입력 데이터 출력부(140)로 전달한다.
본 발명의 실시예들에 있어서, 블록부(130)가 생성한 제c 메시지 블록은 모두 '0'으로 이루어진 블록, 하나의 '1'로만 이루어진 블록 및 적어도 하나의 '0'과 하나의 '1'로 이루어진 블록들 중 하나가 될 수 있다.
한편, 데이터가 '0'으로만 이루어진 경우에는 상기 데이터를 상기 코드워드로 바로 생성한다. 예를 들어, 데이터가 '0'으로만 이루어진 경우, 데이터가 그대로 절단부(120)와 블록부(130)를 거쳐 메시지 블록으로 생성될 수 있다. 이 때, 블록부(130)는 상기 메시지 블록을 입력 데이터 출력부(140), 부호화 행렬 생성부(150)로 출력하지 않고 코드워드 생성부(160)로 출력한다. 그리고 코드워드 생성부(160)는 상기 데이터를 코드워드로 바로 생성할 수 있다. 즉, 데이터가 '0'으로만 이루어진 경우에는 절단부(120)와 블록부(130)만 거쳐 코드워드 생성부(160)로 바로 전달될 수 있다.
한편 데이터가 '0'으로만 이루어진 경우, 절단부(120)와 블록부(130)를 거치지 않고 상기 데이터를 코드워드 생성부(160)로 바로 전달하도록 장치를 구성할 수도 있을 것이다.
마찬가지로, 절단부(120)가 절단한 블록들 중에서 '0'으로만 이루어진 영 블록이 존재하는 경우에도, 상기 영 블록은 블록부(130)를 거쳐 바로 코드워드 생성부(160)로 전달되어 코드워드로 생성된다. 예를 들어, 데이터가 '0001010100'인 경우, 절단부(120)는 순서대로 절단하여 '0001', '01', '01', '00'이 절단된 블록으로 생성될 수 있다. 이 때, 마지막 블록은 '00'으로 이루어진 영 블록이므로, 입력 데이터 출력부(140), 부호화 행렬 생성부(150)로 전달되지 않고, 코드워드 생성부(160)로 바로 전달되어 코드워드로 생성될 수 있다.
입력 데이터 출력부(140)는 블록부(130)로부터 전달받은 메시지 블록들을 입력 데이터로 순서대로 출력한다. 본 발명의 실시예들에 있어서, 입력 데이터 출력부(140)는 상기 생성된 메시지 블록들 중에서 적어도 하나의 '1'을 포함하는 메시지 블록들을 입력 데이터로 출력한다. 한편, 입력 데이터 출력부(140)는 블록부(130)에서 생성한 메시지 블록들 중 적어도 하나의 '1'을 포함하는 메시지 블록을 부호화 행렬 생성부(150)로 전달하는 기능을 하는 것이므로, 블록부(130)에서 입력 데이터 출력부(140)의 기능과 동일한 기능을 추가적으로 수행하도록 장치를 구성할 수 있다. 이 경우에는 블록부(130)와 입력 데이터 출력부(140)가 일체로 구성되는 것이다.
입력 데이터 출력부(140)는 절단된 메시지 블록들 전체로 구성된 제1 메시지 블록을 최초 입력 데이터로 출력하고, 상기 데이터에서 상기 구분된 복수개의 블록들 중에서 하나의 블록을 제외한 나머지 블록들로 이루어진 데이터를 후속 입력 데이터로 출력한다. 본 발명의 실시예들에 있어서, 입력 데이터 출력부(140)는 이전에 출력한 입력 데이터의 첫 번째 비트로부터 최초의 '1'이 포함된 블록을 제외한 나머지 블록들로 이루어진 데이터를 후속 입력 데이터로 출력하는 단계를 반복한다.
또한, 입력 데이터 출력부(140)는 상기 데이터에서 블록부(130)로부터 전달받은 제c 메시지 블록까지 입력 데이터로 출력하는 것을 반복할 수 있다. 예를 들어, 데이터가 '0001011010'일 경우, 입력 데이터 출력부(140)는 데이터인 '0001011010'을 최초의 입력 데이터인 제1 입력 데이터로 출력하고, 제일 앞의 블록인'0001'블록을 제외한 나머지 데이터인 '011010'을 후속 입력 데이터인 제2 입력 데이터로 출력한다. 이어서, 입력 데이터 출력부(140)는 제2 입력 데이터에서 제일 앞의 블록인 '01'을 제외한 '1010'을 제3 입력 데이터로 출력하며, 제3 입력 데이터에서 제일 앞의 블록인 '1'을 제외한 '010'을 제4 입력 데이터로 출력한다.
한편, 절단부(120), 블록부(130)와 입력 데이터 출력부(140)가 데이터를 블록들로 절단하고, 출력하는 입력 데이터의 블록들을 정하는 방식은 위에서 설명한 사항에 한정되지 않으며, 데이터를 절단하고 블록화 하여 이전에 출력한 입력 데이터에서 특정 블록을 제외하고 입력 데이터를 출력하는 소위 서브루틴(sub-routine) 방식을 통하여 계산 부담을 줄일 수 있는 모든 방식은 본 발명의 권리범위에 다 포함된다고 할 것이다.
부호화 행렬 생성부(150)는 입력 데이터 출력부(140)로부터 전달받은 n 개 비트로 이루어진 입력 데이터의 특성을 이용하여 부호화 행렬을 생성한다.
구체적으로, 부호화 행렬 생성부(150)는 입력 데이터에서 최초로 '1'이 존재하는 비트가 제k 번째 비트일 경우, 제k 행(row)을 나머지 각각의 행들에 비하여 상대적인 밀도가 높도록 구성되거나, 제k 열(column)을 나머지 각각의 열들에 비하여 상대적인 밀도가 높도록 구성된 부호화 행렬을 생성한다.
본 발명의 실시예들에 있어서, 부호화 행렬 생성부(150)는 상기 부호화 행렬에서의 제k 행(row) 또는 제k 열(column)에 존재하는 '1'의 개수가 나머지 각각의 행들 또는 열들에 존재하는 '1'의 개수보다 상대적으로 많도록 배열하여 상기 제k 행(row) 또는 제k 열(column)을 나머지 각각의 행들 또는 열들에 비하여 상대적인 밀도가 높도록 구성한다. 즉, 부호화 행렬의 행들 간 또는 열들 간 상대적인 밀도라 함은 각 행 또는 열의 구성성분(비트, component) 중'1'의 개수가 많은 것을 의미한다. 즉, 각 행이 10개의 비트로 이루어진 경우, 제1 행에존재하는 '1'의 개수가 8개이고, 제2 행에 존재하는 '1'의 개수가 3개인 경우, 제1 행이 제2 행보다 상대적인 밀도가 높다고 할 것이다.
예를 들어, 입력 데이터가 '0001011010'인 경우, '1'이 최초로 나타나는 비트가 4번째 비트이므로, 부호화 행렬 생성부(150)는 부호화 행렬의 제4 행을 다른 행보다 상대적인 밀도가 높도록 행렬을 구성하거나, 부호화 행렬의 제4 열을 다른 열보다 상대적인 밀도가 높도록 행렬을 구성한다. 다시 말하면, 부호화 행렬 생성부(150)는 제4 행 또는 제4 열에 존재하는 '1'의 개수를 다른 행 또는 열에 존재하는 '1'의 개수보다 많도록 부호화 행렬을 구성할 수 있다.
일 예로, 부호화 행렬 생성부(150)는 전달된 입력 데이터를 이용하여 제k 행 또는 제k 열을 구성할 수 있다. 예를 들어, 부호화 행렬 생성부(150)는 전달된 입력 데이터를 부호화 행렬의 제k 행(row) 또는 제k 열(column)에 입력 데이터를 그대로 배열할 수 있다. 또는 부호화 행렬 생성부(150)는 부호화 행렬의 제k 행(row) 또는 제k 열(column)에 상기 입력 데이터의 '0'과 '1'을 랜덤하게 섞어서 배열할 수 있다. 즉, 부호화 행렬 생성부(150)는 입력 데이터 길이와 동일한 n개 비트로 이루어진 랜덤데이터를 배열하는 것이다.
만일, 입력 데이터가 '0001011010'인 경우에 입력 데이터에서 최초로 '1'이 나타나는 비트가 4번째 비트이므로, 부호화 행렬 생성부(150)는 아래의 수학식 1과 같이 제4 행에 입력 데이터를 그대로 배열하는 부호화 행렬을 구성할 수 있다. 이는 일반적으로 입력 데이터의 상대적인 밀도가 높다는 것, 즉 입력 데이터에 '1'이 상대적으로 많다는 것을 이용한 것이다.
수학식 1
Figure PCTKR2014005114-appb-M000001
다른 예로, 부호화 행렬 생성부(150)는 제k 행(row) 또는 제k 열(column)에서 상기 입력 데이터의 제k 번째 이후의 비트를 모두 '1'로 구성할 수 있다. 만일, 입력 데이터가 '0001011010'인 경우에 입력 데이터에서 최초로 '1'이 나타나는 비트가 4번째 비트이므로, 부호화 행렬 생성부(150)는 아래의 수학식 2와 같이 제4 행의 상대적인 밀도를 높게 형성하고, 구체적으로 4번째 비트부터 모두 '1'로 구성하는 것이다.
수학식 2
Figure PCTKR2014005114-appb-M000002
또 다른 예로, 부호화 행렬 생성부(150)는 제k 행(row) 또는 제k 열(column)의 모든 비트를 '1'로 구성할 수 있다. 만일, 입력 데이터가 '0001011010'인 경우에 입력 데이터에서 최초로 '1'이 나타나는 비트가 4번째 비트이므로, 부호화 행렬 생성부(150)는 아래의 수학식 3과 같이 제4 행의 상대적인 밀도를 높게 형성하고, 구체적으로 전체 비트를 모두 '1'로 구성하는 것이다.
수학식 3
Figure PCTKR2014005114-appb-M000003
또 다른 예로, 부호화 행렬 생성부(150)는 제k 행(row) 또는 제k 열(column)에서 '1'과 '0'을 랜덤하게 배열하는 방법을 이용하여 상기 제k 행(row) 또는 제k 열(column)을 나머지 각각의 행들 또는 열들에 비하여 상대적인 밀도가 높도록 구성할 수 있다. 만일, 입력 데이터가 '0001011010'인 경우에 입력 데이터에서 최초로 '1'이 나타나는 비트가 4번째 비트이므로, 부호화 행렬 생성부(150)는 아래의 수학식 4와 같이 제4 행에 특정 규칙 없이 랜덤하게 '0'과 '1'을 배열하여 제4 행을 다른 행에 비하여 상대적인 밀도를 높게 형성시킬 수 있다. 즉, 입력 데이터에서 최초로 '1'이 나타나는 비트에 대응되는 행 또는 열의 상대적인 밀도를 다른 행 또는 열에 비하여 높게 형성하면 되는 것이고, 입력 데이터에 포함된 '1'의 개수와는 상관없게 부호화 행렬을 구성하는 것이다.
수학식 4
Figure PCTKR2014005114-appb-M000004
한편, 부호화 행렬 생성부(150)는 입력 데이터의 특성(최초로 '1'이 나타나나는 비트)이 반영된 상대적인 밀도가 높은 행 또는 열을 제외한 나머지 각각의 행 또는 열에는 '1'이 하나만 존재하도록 배열할 수 있다.
일 예로, 부호화 행렬 생성부(150)는 상기 k행을 제외한 나머지 행들에 존재하는 '1'을 상기 제k 행에서 최초로 '1'이 나타나는 열을 제외하고, 행의 순서 또는 열의 순서대로 각 행과 각 열에 '1'이 하나씩 존재하도록 나머지 행을 구성할 수 있다. 즉 수학식 1 내지 4를 참조하면, 만일 입력 데이터가 '0001011010'인 경우에 제4 행을 제외한 나머지 행들에는 '1'이 행과 열의 순서대로 배열된다. 제1 행에는 제1 열(첫 번째 비트)에 '1'이 존재하고, 제2 행에는 제2 열(두 번째 비트)에 '1'이 존재하고, 제5행에는 제5 열(다섯 번째 비트)에 '1'이 존재하고, 제4 행을 제외한 나머지 행에는 단위행렬(identity matrix)과 동일하거나 유사한 형태로 '1'이 배열될 수 있다.
다른 예로, 부호화 행렬 생성부(150)는 행과 열의 순서대로 '1'이 배열되는 단위행렬 형식이 아니라, 하나의 행에는 하나의 '1'이 랜덤하게 존재하도록 부호화 행렬의 나머지 행들을 구성할 수 있다.
또 다른 예로, 부호화 행렬 생성부(150)는 행과 열의 순서대로 '1'이 배열되는 단위행렬 형식이 아니라, 복수 개의 '1'들이 존재하도록 부호화 행렬의 나머지 행들을 구성할 수 있다.
즉, 부호화 행렬 생성부(150)는 아래의 수학식 5와 같이 제4 행의 상대적인 밀도를 가장 높도록 배열하고, 나머지 행들은 '1'을 랜덤하게 배열하되, 제4 행보다 밀도가 낮도록 구성할 수 있다.
수학식 5
Figure PCTKR2014005114-appb-M000005
본 발명의 다른 실시예들에 있어서, 부호화 행렬 생성부(150)는 입력 데이터의 특성(최초로 '1'이 나타나나는 비트)이 반영된 상대적인 밀도가 높은 제k 행 또는 제k 열에 존재하는 '1'의 개수와 나머지 각각의 행 또는 열에 존재하는 '1'의 개수가 상대적으로 차이가 나도록 부호화 행렬의 나머지 행들을 구성할 수 있다.
또한, 부호화 행렬 생성부(150)는 입력 데이터의 특성(최초로 '1'이 나타나나는 비트)이 반영된 상대적인 밀도가 높은 제k 행 또는 제k 열에 존재하는 '1'의 개수와 나머지 각각의 행 또는 열에 존재하는 '1'의 개수 차이가 적어도 2개의 차이가 나도록 부호화 행렬의 나머지 행들을 구성할 수 있다. 만일, 부호화 행렬의 상대적인 밀도가 가장 높은 제k 행에 '1'의 개수가 7개인 경우, 나머지 각각의 행들의 '1'의 개수는 5개 이하로 구성된다.
본 발명의 실시예들에 있어서, 상기 상대적으로 밀도가 높은 행이 제k 행인 경우에 부호화 행렬 생성부(150)는 a×b의 크기를 갖는 부호화 행렬을 생성할 수 있다. 상기 상대적으로 밀도가 높은 열이 제k 열인 경우에 부호화 행렬 생성부(150)는 b×a의 크기를 갖는 부호화 행렬을 생성할 수 있다. 이 때, a는 상기 k보다 크거나 같고, b는 양의 정수이다.
위에서 b는 3보다 크거나 같게 구성할 수도 있을 것이다. 이 때, b를 3보다 크게 설정한 이유는 행 또는 열의 비트 수가 한 개 또는 두 개일 경우에 행들 간 또는 열든 간의 밀도 차이를 갖도록 하는 것이 힘들기 때문이다.
본 발명의 실시예들에 있어서, 상기 상대적으로 밀도가 높은 행이 제k 행인 경우에, 부호화 행렬 생성부(150)는 부호화 행렬의 크기를 입력 데이터의 길이와 상관없이 정의할 수 있다.
예를 들어, 부호화 행렬 생성부(150)는 n개 비트로 이루어진 입력 데이터에 대해서 n×n 크기의 부호화 행렬을 생성할 수 있다. 또한, 부호화 행렬 생성부(150)는 입력 데이터의 제k 번째 비트에서 최초로 '1'이 존재할 경우, k×n, k×3, (k+1)×4 크기의 부호화 행렬을 생성할 수도 있다.
특히, 부호화 행렬 생성부(150)는 입력 데이터에서 최초의 '1'이 제k 번째 비트일 경우, 부호화 행렬을 아래의 수학식 6과 같이 제k 행에만 '1'을 배열하고, n×1 크기의 부호화 행렬을 생성할 수도 있다. 상기 부호화 행렬의 크기를 a×b의 크기로 정의하였다면, a는 k보다 크거나 같고, b가 1이 되는 것이다. 후술하겠지만, 이 때에는 코드워드 생성부(160)는 단수의 코드워드를 생성한다.
수학식 6
Figure PCTKR2014005114-appb-M000006
본 발명의 다른 실시예들에 있어서, 부호화 행렬 생성부(150)는 입력 데이터의 특성(최초로 '1'이 나타나나는 비트)이 반영된 상대적인 밀도가 높은 제k 행 또는 제k 열에 존재하는 '1'의 개수와 나머지 각각의 행 또는 열에 존재하는 '1'의 개수가 상대적으로 차이가 나도록 부호화 행렬의 나머지 행들을 구성할 수 있다.
또한, 부호화 행렬 생성부(150)는 입력 데이터의 특성(최초로 '1'이 나타나나는 비트)이 반영된 상대적인 밀도가 높은 제k 행 또는 제k 열에 존재하는 '1'의 개수와 나머지 각각의 행 또는 열에 존재하는 '1'의 개수 차이가 적어도 2개의 차이가 나도록 부호화 행렬의 나머지 행들을 구성할 수 있다. 만일, 부호화 행렬의 상대적인 밀도가 가장 높은 제k 행에 '1'의 개수가 7개인 경우, 나머지 각각의 행들의 '1'의 개수는 5개 이하로 구성된다.
본 발명의 실시예들에 있어서, 상기 상대적으로 밀도가 높은 행이 제k 행인 경우에 부호화 행렬 생성부(150)는 a×b의 크기를 갖는 부호화 행렬을 생성할 수 있다. 상기 상대적으로 밀도가 높은 열이 제k 열인 경우에 부호화 행렬 생성부(150)는 b×a의 크기를 갖는 부호화 행렬을 생성할 수 있다. 이 때, a는 상기 k보다 크거나 같고, b는 양의 정수이다.
위에서 b는 3보다 크거나 같게 구성할 수도 있을 것이다. 이 때, b를 3보다 크게 설정한 이유는 행 또는 열의 비트 수가 한 개 또는 두 개일 경우에 행들 간 또는 열든 간의 밀도 차이를 갖도록 하는 것이 힘들기 때문이다.
본 발명의 실시예들에 있어서, 상기 상대적으로 밀도가 높은 행이 제k 행인 경우에, 부호화 행렬 생성부(150)는 부호화 행렬의 크기를 입력 데이터의 길이와 상관없이 정의할 수 있다.
예를 들어, 부호화 행렬 생성부(150)는 n개 비트로 이루어진 입력 데이터에 대해서 n×n 크기의 부호화 행렬을 생성할 수 있다. 또한, 부호화 행렬 생성부(150)는 입력 데이터의 제k 번째 비트에서 최초로 '1'이 존재할 경우, k×n, k×3, (k+1)×4 크기의 부호화 행렬을 생성할 수도 있다.
특히, 부호화 행렬 생성부(150)는 입력 데이터에서 최초의 '1'이 제k 번째 비트일 경우, 부호화 행렬을 아래의 수학식 6과 같이 제k 행에만 '1'을 배열하고, n×1 크기의 부호화 행렬을 생성할 수도 있다. 상기 부호화 행렬의 크기를 a×b의 크기로 정의하였다면, a는 k보다 크거나 같고, b가 1이 되는 것이다. 후술하겠지만, 이 때에는 코드워드 생성부(160)는 단수의 코드워드를 생성한다.
표 1
메시지 블록 보완된 후속 데이터 비트 '1'로 보완
제 1 메시지 블록 00101
제 2 메시지 블록 01101 101
제 3 메시지 블록 10101 0 1
제 4 메시지 블록 01011 1
제 5 메시지 블록 01111 11
다른 한편으로 상기 수신한 데이터를 이용하지 않고 비트 '1'을 사용하여 삭제된 비트들을 보완할 수 있다.
구체적으로, 상기 수신한 데이터의 길이를 메시지 블록의 길이로 설정하면 상기 수신한 데이터 '001011010'의 길이인 9를 메시지 블록의 길이로 설정한 경우, 제1 메시지 블록은 상기 수신한 데이터와 동일하고 제2 메시지 블록은 제1 메시지 블록에서 최초로 '1'이 나타나는 비트까지 즉 '001'을 삭제한 후 제1 메시지 블록에서 남아있는 비트들 '011010'과 삭제된 비트만큼 '1'로 보완하면 제2 메시지 블록은 '011010111'이고, 제3 메시지 블록은 제2 메시지 블록에서 최초로 '1'이 나타나는 비트까지 즉 '01'을 삭제하고 제2 메시지 블록에서 남아있는 비트들 '1010111'과 삭제된 비트만큼 비트 '1'로 보완하여 제3 메시지 블록은 '101011111'이며, 제4 메시지 블록은 제3 메시지 블록에서 최초로 '1'이 나타나는 비트까지 즉 '1'을 삭제하고 제3 메시지 블록에서 남아있는 비트들 '01011111'와 삭제된 비트만큼 비트 '1'을 보완하여 제4 메시지 블록으로 '010111111'을 얻는다. 제5 메시지 블록은 제4 메시지 블록에서 최초로 '1'이 나타나는 비트까지 '01'을 삭제하고 제4 메시지 블록에서 남아있는 비트들 '0111111'와 삭제된 비트 수 만큼 비트 '1'을 보완하여 제5 메시지 블록 '01111111'을 얻는다.
그러므로 상기 수신한 데이터의 길이를 메시지 블록의 길이로 설정한 경우에는 제1 메시지 블록으로부터 제5 메시지 블록까지 생성된다. 상기 메시지 블록들이 생성되는 것을 정리하면 아래 표 2와 같다.
표 2
메시지 블록 비트 '1'로 보완
제 1 메시지 블록 001011010
제 2 메시지 블록 011010111 111
제 3 메시지 블록 101011111 11
제 4 메시지 블록 010111111 1
제 5 메시지 블록 011111111 11
또한, 상기 수신한 데이터가 복수개의 부분 수신 데이터로 분할하는 경우, 각 부분 수신 데이터에 대하여 메시지 블록을 생성하는 다양한 방법을 동시에 또는 각각 적용할 수 있다. 예를 들어, 상기 수신한 데이터보다 작은 비트 수를 갖는 부분 수신 데이터들 각각에 대해서 동일한 방법을 사용하여 메시지 블록을 생성할 수도 있고, 부분 수신 데이터들을 구성하는 비트의 종류에 따라 각각의 부분 수신 데이터들마다 다른 방법을 사용하여 메시지 블록을 생성할 수도 있다.
나아가, 상기 수신한 데이터가 복수개의 부분 수신 데이터로 분할하는 경우, 이웃하는 부분 수신 데이터로부터 이전 메시지 블록에서 삭제된 데이터의 비트 수 만큼을 이전 메시지 블록의 후속 데이터로 채워서 고정된 길이인 n 개 비트로 이루어진 후속 메시지 블록을 생성한다. 그리고 이웃하는 부분 수신 데이터로부터 이전 메시지 블록에서 삭제된 데이터의 비트 수 만큼을 전부 채우지 못하는 경우, 상기 채우지 못하는 만큼의 데이터를 비트 '1'로 채워서 고정된 길이인 n 개 비트로 이루어진 후속 메시지 블록을 생성할 수 있다. 즉, 복수의 부분 수신 데이터들이 서로 연동하여 메시지 블록을 생성하는데 사용될 수 있다.
한편, 상기 수신한 데이터의 길이와 상기 메시지 블록의 길이가 서로 동일할 수도 있다. 즉, 상기 수신한 데이터를 그대로 메시지 블록으로 사용하는 경우이다. 이 경우, 메시지 블록을 생성할 때에는 이전 메시지 블록에서 삭제된 비트에 대해서 후속 메시지 블록에 보충할 수신 데이터가 없으므로, 비트 '1'로 후속 메시지 블록을 채울 수 있다.
위와 같은 방법으로 블록부(180)가 고정된 길이의 메시지 블록을 생성하여 부호화 행렬 생성부(140)로 전달하는 경우에는, 부호화 성능을 향상시킬 뿐만 아니라 복호화 성능의 효과와 관련하여도 오류를 현저하게 감소시킬 수 있다.
위에서 설명한, 실시예는 구체적인 설명을 위하여 기본적인 입력 데이터의 상대적 고밀도를 이용한 부호화 방법 및 장치의 구조 및 과정을 예를 들어 서술한 것일 뿐, 그에 한정되는 것은 아니다. 본 발명이 속하는 기술 분야의 통상의 지식을 가진 당업자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.

Claims (47)

  1. n개 비트로 이루어진 입력 데이터에서 최초의 '1'이 제k 번째 비트일 경우, 제k 행(row)을 나머지 각각의 행들에 비하여 상대적인 밀도가 높도록 구성되거나, 제k 열(column)을 나머지 각각의 열들에 비하여 상대적인 밀도가 높도록 구성된 부호화 행렬을 생성하는 단계;
    상기 부호화 행렬을 이용하여 코드워드(codeword)를 생성하는 단계; 및
    상기 생성된 코드워드를 전송하는 단계를 포함하는 입력 데이터의 상대적 고밀도를 이용한 부호화 방법.
  2. 제1항에 있어서,
    상기 부호화 행렬에서의 제k 행(row) 또는 제k 열(column)에 존재하는 '1'의 개수가 나머지 각각의 행들 또는 열들에 존재하는 '1'의 개수보다 상대적으로 많도록 배열하여 상기 제k 행(row) 또는 제k 열(column)을 나머지 각각의 행들 또는 열들에 비하여 상대적인 밀도가 높도록 구성하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 방법.
  3. 제2항에 있어서, 상기 부호화 행렬을 생성하는 단계에서
    상기 제k 행(row) 또는 제k 열(column)에 상기 입력 데이터를 그대로 배열하는 방법과 상기 제k 행(row) 또는 제k 열(column)에 상기 입력 데이터의 '0'과 '1'을 랜덤하게 섞어서 배열하는 방법 중 어느 하나의 방법을 이용하여 상기 제k 행(row) 또는 제k 열(column)을 나머지 각각의 행들 또는 열들에 비하여 상대적인 밀도가 높도록 구성하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 방법.
  4. 제2항에 있어서, 상기 부호화 행렬을 생성하는 단계에서
    상기 제k 행(row) 또는 제k 열(column)에서 상기 입력 데이터의 제k 번째 비트부터 모두 '1'로 구성하는 방법과 상기 제k 행(row) 또는 제k 열(column)의 모든 비트를 '1'로 구성하는 방법 중 어느 하나의 방법을 이용하여 상기 제k 행(row) 또는 제k 열(column)을 나머지 각각의 행들 또는 열들에 비하여 상대적인 밀도가 높도록 구성하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 방법.
  5. 제2항에 있어서, 상기 부호화 행렬을 생성하는 단계에서
    상기 제k 행(row) 또는 제k 열(column)에서 입력 데이터 길이와 동일한 n개 비트로 이루어진 랜덤데이터를 배열하여 상기 제k 행(row) 또는 제k 열(column)을 나머지 각각의 행들 또는 열들에 비하여 상대적인 밀도가 높도록 구성하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 방법.
  6. 제3항 내지 제5항 중 어느 한 항에 있어서, 상기 부호화 행렬을 생성하는 단계에서
    상대적으로 밀도가 높은 제k 행 또는 제k 열을 제외한 나머지 행들 또는 열들 각각은 '1'이 하나만 존재하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 방법.
  7. 제3항 내지 제5항 중 어느 한 항에 있어서, 상기 부호화 행렬을 생성하는 단계에서
    상대적으로 밀도가 높은 제k 행 또는 제k 열을 제외한 나머지 각각의 행들 또는 열들에 존재하는 '1'의 개수와 상기 k 행 또는 제k 열에 존재하는 '1'의 개수가 상대적으로 차이가 나도록 부호화 행렬을 생성하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 방법.
  8. 제1항에 있어서,
    상기 부호화 행렬에서 상기 상대적으로 밀도가 높은 행이 제k 행인 경우에 상기 부호화 행렬의 크기는 a×b이고, 상기 상대적으로 밀도가 높은 열이 제k 열인 경우에 상기 부호화 행렬의 크기는 b×a이며, 여기서, a는 상기 k보다 크거나 같고, b는 양의 정수인 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 방법.
  9. 제1항에 있어서, 상기 부호화 행렬을 생성하는 단계 이전에
    외부로부터 데이터를 수신하는 단계;
    상기 수신한 데이터를 '1'을 기준으로 절단(chopping)하여 복수개의 절단된 블록들로 생성하는 단계;
    상기 절단된 블록들 중 적어도 하나의 절단된 블록으로 구성된 메시지 블록을 생성하는 단계; 및
    상기 생성된 메시지 블록들 중에서 적어도 하나의 '1'을 포함하는 메시지 블록들을 입력 데이터로 출력하는 단계를 더 포함하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 방법.
  10. 제9항에 있어서, 상기 수신한 데이터를 복수개의 블록들로 절단(chopping)하는 단계는
    상기 수신한 데이터를 최초의 비트를 기준으로 '1'이 나오는 비트가 나올 때마다 상기 '1'이 존재하는 비트와 다음 비트 사이를 절단하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 방법.
  11. 제9항에 있어서, 상기 메시지 블록을 생성하는 단계에서
    상기 메시지 블록은 상기 절단된 블록들 전체로 구성된 제1 메시지 블록과, 상기 제1 메시지 블록에서 상기 절단된 블록을 하나씩 제거하여 생성된 제2 메시지 블록 내지 제c 메시지 블록들로 이루어지는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 방법.
  12. 제11항에 있어서, 상기 메시지 블록을 입력 데이터로 출력하는 단계는
    상기 제1 메시지 블록 내지 제c 메시지 블록을 순서대로 입력 데이터로 출력하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 방법.
  13. 제1항에 있어서, 상기 부호화 행렬을 생성하는 단계 이전에
    외부로부터 데이터를 수신하는 단계;
    상기 수신한 데이터를 제1 메시지 블록으로 생성하고, 이전 메시지 블록으로부터 최초의'1'을 기준으로'1'앞에 있는'0'비트들과'1'을 포함하여 삭제한 후에 나머지 비트들로 구성된 메시지 블록을 상기 제1 메시지 블록의 후속 메시지 블록으로 생성하는 메시지 블록을 생성하는 단계; 및
    상기 생성된 메시지 블록을 순서대로 입력 데이터로 출력하는 단계를 더 포함하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 방법.
  14. 제1항에 있어서, 상기 부호화 행렬을 생성하는 단계 이전에
    외부로부터 데이터를 수신하는 단계;
    상기 수신한 데이터를 이용하여 사전에 설정된 길이인 n개 비트로 이루어진 메시지 블록을 생성하는 단계; 및
    상기 메시지 블록을 상기 생성된 입력 데이터로 출력하는 단계를 더 포함하고,
    상기 메시지 블록을 생성하는 단계는 이전 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터를 제외시키고, 상기 제외시킨 데이터의 비트 수 만큼을 상기 수신한 데이터로부터 채워서 후속 메시지 블록을 구성하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 방법.
  15. 제14항에 있어서, 상기 메시지 블록을 생성하는 단계에서
    상기 수신한 데이터로부터 상기 후속 메시지 블록을 구성하지 못하는 경우, 상기 이전 메시지 블록에서 제외된 비트 수 만큼의 데이터를 '1'로 채워서 상기 후속 메시지 블록을 생성하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 방법.
  16. 제14항에 있어서, 상기 메시지 블록을 생성하는 단계에서
    상기 수신한 데이터로부터 상기 후속 메시지 블록을 구성하지 못하는 경우, 상기 이전 메시지 블록에서 제외된 비트 수 만큼의 데이터를 후속으로 수신한 데이터로부터 채워서 상기 후속 메시지 블록을 생성하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 방법.
  17. 제1항에 있어서, 상기 부호화 행렬을 생성하는 단계 이전에
    외부로부터 데이터를 수신하는 단계;
    상기 수신한 데이터를 이용하여 사전에 설정된 길이인 n개 비트로 이루어진 메시지 블록을 생성하는 단계; 및
    상기 메시지 블록을 상기 생성된 입력 데이터로 출력하는 단계를 더 포함하고,
    상기 메시지 블록을 생성하는 단계는 이전 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터를 제외시키고, 상기 제외시킨 데이터의 비트 수 만큼을 '1'로 채워서 상기 후속 메시지 블록을 생성하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 방법.
  18. 제1항에 있어서, 상기 부호화 행렬을 이용하여 코드워드를 생성하는 단계에서
    상기 부호화 행렬의 제k 행이 나머지 행들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬의 행들을 순서대로 연결하는 방식으로 코드워드를 생성하고,
    상기 부호화 행렬의 제k 열이 나머지 열들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬의 열들을 순서대로 연결하는 방식으로 코드워드를 생성하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 방법.
  19. 제1항에 있어서, 상기 부호화 행렬을 이용하여 코드워드를 생성하는 단계에서
    상기 부호화 행렬의 제k 행이 나머지 행들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬의 각 행을 코드워드로 정의하여 부호화 행렬의 행의 수만큼의 코드워드를 생성하고,
    상기 부호화 행렬의 제k 열이 나머지 열들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬의 각 열을 코드워드로 정의하여 부호화 행렬의 열의 수만큼의 코드워드를 생성하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 방법.
  20. 제1항에 있어서, 상기 부호화 행렬을 이용하여 코드워드를 생성하는 단계에서
    상기 부호화 행렬의 제k 행이 나머지 행들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬의 제1 행 내지 제k 행의 각 행을 코드워드로 정의하여 k 개의 코드워드를 생성하고,
    상기 부호화 행렬의 제k 열이 나머지 열들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬의 제1 열 내지 제k 열의 각 열을 코드워드로 정의하여 k 개의 코드워드를 생성하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 방법.
  21. 제1항에 있어서, 상기 부호화 행렬을 이용하여 코드워드를 생성하는 단계에서
    상기 부호화 행렬의 제k 행이 나머지 행들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬의 제k+1 행 내지 제n 행의 각 행을 코드워드로 정의하여 n-k 개의 코드워드를 생성하고,
    상기 부호화 행렬의 제k 열이 나머지 열들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬의 제k+1 열 내지 제n 열의 각 열을 코드워드로 정의하여 n-k 개의 코드워드를 생성하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 방법.
  22. 제1항에 있어서, 상기 코드워드를 생성하는 단계에서
    입력 데이터의 n개 비트가 모두 '0'으로만 이루어진 경우에는 상기 부호화 행렬을 생성하지 않고 모두 '0'으로 이루어진 코드워드(codeword)를 바로 생성하는 것을 특징으로 하는 특정 밀도를 기반으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 방법.
  23. 제1항에 있어서, 상기 코드워드를 생성하는 단계에서
    상기 부호화 행렬을 이용하여 생성한 코드워드의 길이가 m이고, 입력 데이터의 n개 비트가 모두 '0'으로만 이루어진 경우에는 상기 부호화 행렬을 생성하지 않고 상기 m이 아닌 다른 길이로 이루어진 코드워드(codeword)를 생성하는 것을 특징으로 하는 특정 밀도를 기반으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 방법.
  24. n개 비트로 이루어진 입력 데이터에서 최초의 '1'이 제k 번째 비트일 경우, 제k 행(row)을 나머지 각각의 행들에 비하여 상대적인 밀도가 높도록 구성되거나, 제k 열(column)을 나머지 각각의 열들에 비하여 상대적인 밀도가 높도록 구성된 부호화 행렬을 생성하는 부호화 행렬 생성부;
    상기 부호화 행렬을 이용하여 코드워드(codeword)를 생성하는 코드워드 생성부; 및
    상기 생성한 코드워드를 외부로 전송하는 코드워드 전송부를 포함하는 입력 데이터의 상대적 고밀도를 이용한 부호화 장치.
  25. 제24항에 있어서,
    상기 부호화 행렬 생성부는 상기 부호화 행렬에서의 제k 행(row) 또는 제k 열(column)에 존재하는 '1'의 개수가 나머지 각각의 행들 또는 열들에 존재하는 '1'의 개수보다 상대적으로 많도록 배열하여 상기 제k 행(row) 또는 제k 열(column)을 나머지 각각의 행들 또는 열들에 비하여 상대적인 밀도가 높도록 구성하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 장치.
  26. 제25항에 있어서,
    상기 부호화 행렬 생성부는 상기 제k 행(row) 또는 제k 열(column)에 상기 입력 데이터를 상기 제k 행(row) 또는 제k 열(column)로 그대로 배열하는 방법과 상기 제k 행(row) 또는 제k 열(column)에 상기 입력 데이터의 '0'과 '1'을 랜덤하게 섞어서 배열하는 방법 중 어느 하나의 방법을 이용하여 상기 제k 행(row) 또는 제k 열(column)을 나머지 각각의 행들 또는 열들에 비하여 상대적인 밀도가 높도록 구성하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 장치.
  27. 제25항에 있어서,
    상기 부호화 행렬 생성부는 상기 제k 행(row) 또는 제k 열(column)에서 상기 입력 데이터의 제k 번째 비트부터 모두 '1'로 구성하는 방법과 상기 제k 행(row) 또는 제k 열(column)의 모든 비트를 '1'로 구성하는 방법 중 어느 하나의 방법을 이용하여 상기 제k 행(row) 또는 제k 열(column)을 나머지 각각의 행들 또는 열들에 비하여 상대적인 밀도가 높도록 구성하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 장치.
  28. 제25항에 있어서,
    상기 부호화 행렬 생성부는 상기 제k 행(row) 또는 제k 열(column)에서 입력 데이터 길이와 동일한 n개 비트로 이루어진 랜덤데이터를 배열하여 상기 제k 행(row) 또는 제k 열(column)을 나머지 각각의 행들 또는 열들에 비하여 상대적인 밀도가 높도록 구성하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 장치.
  29. 제26항 내지 제28항 중 어느 한 항에 있어서,
    상기 부호화 행렬 생성부는 상대적으로 밀도가 높은 제k 행 또는 제k 열을 제외한 나머지 각각의 행들 또는 열들에는 '1'이 하나만 존재하도록 상기 부호화 행렬을 생성하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 장치.
  30. 제26항 내지 제28항 중 어느 한 항에 있어서,
    상기 부호화 행렬 생성부는 상대적으로 밀도가 높은 제k 행 또는 제k 열을 제외한 나머지 각각의 행들 또는 열들에 존재하는 '1'의 개수와 상기 k 행 또는 제k 열에 존재하는 '1'의 개수가 상대적으로 차이가 나도록 부호화 행렬을 생성하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 장치.
  31. 제24항에 있어서,
    상기 부호화 행렬에서 상기 상대적으로 밀도가 높은 행이 제k 행인 경우에 상기 부호화 행렬의 크기는 a×b이고, 상기 상대적으로 밀도가 높은 열이 제k 열인 경우에 상기 부호화 행렬의 크기는 b×a이며, 여기서, a는 상기 k보다 크거나 같고, b는 양의 정수인 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 장치.
  32. 제24항에 있어서,
    외부로부터 데이터를 수신하는 데이터 수신부;
    상기 수신한 데이터를 '1'을 기준으로 절단(chopping)하여 복수개의 절단된 블록들로 생성하는 절단부;
    상기 절단된 블록들 중 적어도 하나의 절단된 블록으로 구성된 메시지 블록을 생성하는 블록부; 및
    상기 생성된 메시지 블록들 중에서 적어도 하나의 '1'을 포함하는 메시지 블록들을 입력 데이터로 출력하는 입력 데이터 출력부를 더 포함하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 장치.
  33. 제32항에 있어서, 상기 절단부는
    상기 수신한 데이터를 최초의 비트를 기준으로 '1'이 나오는 비트가 나올 때마다 상기 '1'이 존재하는 비트와 다음 비트 사이를 절단하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 장치.
  34. 제32항에 있어서,
    상기 블록부가 생성한 상기 메시지 블록은 상기 절단된 블록들 전체로 구성된 제1 메시지 블록과, 상기 제1 메시지 블록에서 상기 절단된 블록을 하나씩 제거하여 생성된 제2 메시지 블록 내지 제c 메시지 블록들로 이루어지는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 장치.
  35. 제34항에 있어서,
    상기 입력 데이터 출력부는 상기 제1 메시지 블록 내지 제c 메시지 블록을 순서대로 입력 데이터로 출력하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 장치.
  36. 제24항에 있어서,
    외부로부터 데이터를 수신하는 데이터 수신부;
    상기 수신한 데이터를 제1 메시지 블록으로 생성하고, 이전 메시지 블록으로부터 최초의'1'을 기준으로'1'앞에 있는'0'비트들과'1'을 포함하여 삭제한 후에 나머지 비트들로 구성된 메시지 블록을 상기 제1 메시지 블록의 후속 메시지 블록으로 생성하는 메시지 블록을 생성하는 블록부; 및
    상기 생성된 메시지 블록을 순서대로 입력 데이터로 출력하는 입력 데이터 출력부를 더 포함하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 장치.
  37. 제24항에 있어서,
    외부로부터 데이터를 수신하는 데이터 수신부;
    상기 수신한 데이터를 이용하여 사전에 설정된 길이인 n개 비트로 이루어진 메시지 블록을 생성하는 블록부; 및
    상기 생성된 메시지 블록을 순서대로 입력 데이터로 출력하는 입력 데이터 출력부를 더 포함하고,
    상기 블록부는 이전 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터를 제외시키고, 상기 제외시킨 데이터의 비트 수 만큼을 상기 수신한 데이터로부터 채워서 후속 메시지 블록을 구성하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 장치.
  38. 제37항에 있어서, 상기 블록부는
    상기 수신한 데이터로부터 상기 후속 메시지 블록을 구성하지 못하는 경우, 상기 이전 메시지 블록에서 제외된 비트 수 만큼의 데이터를 '1'로 채워서 상기 후속 메시지 블록을 생성하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 장치.
  39. 제37항에 있어서, 상기 블록부는
    상기 수신한 데이터로부터 상기 후속 메시지 블록을 구성하지 못하는 경우, 상기 이전 메시지 블록에서 제외된 비트 수 만큼의 데이터를 후속으로 수신한 데이터로부터 채워서 상기 후속 메시지 블록을 생성하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 장치.
  40. 제24항에 있어서,
    외부로부터 데이터를 수신하는 데이터 수신부;
    상기 수신한 데이터로부터 고정된 길이인 n개 비트로 이루어진 메시지 블록을 생성하는 블록부; 및
    상기 블록부에서 생성한 메시지 블록을 입력 데이터로 출력하는 입력 데이터 출력부를 더 포함하되,
    상기 블록부는 이전 메시지 블록에서 최초로 '1'이 나오는 비트까지의 데이터를 제외시키고, 상기 제외시킨 데이터의 비트 수 만큼을 '1'로 채워서 상기 후속 메시지 블록을 생성하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 장치.
  41. 제24항에 있어서, 상기 코드워드 생성부는
    상기 부호화 행렬의 제k 행이 나머지 행들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬의 행들을 순서대로 연결하는 방식으로 코드워드를 생성하고,
    상기 부호화 행렬의 제k 열이 나머지 열들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬의 열들을 순서대로 연결하는 방식으로 코드워드를 생성하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 장치.
  42. 제24항에 있어서, 상기 코드워드 생성부는
    상기 부호화 행렬의 제k 행이 나머지 행들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬의 각 행을 코드워드로 정의하여 부호화 행렬의 행의 수만큼의 코드워드를 생성하고,
    상기 부호화 행렬의 제k 열이 나머지 열들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬의 각 열을 코드워드로 정의하여 부호화 행렬의 열의 수만큼의 코드워드를 생성하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 장치.
  43. 제24항에 있어서, 상기 코드워드 생성부는
    상기 부호화 행렬의 제k 행이 나머지 행들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬의 제1 행 내지 제k 행의 각 행을 코드워드로 정의하여 k 개의 코드워드를 생성하고,
    상기 부호화 행렬의 제k 열이 나머지 열들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬의 제1 열 내지 제k 열의 각 열을 코드워드로 정의하여 k 개의 코드워드를 생성하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 장치.
  44. 제24항에 있어서, 상기 코드워드 생성부는
    상기 부호화 행렬의 제k 행이 나머지 행들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬의 제k+1 행 내지 제n 행의 각 행을 코드워드로 정의하여 n-k 개의 코드워드를 생성하고,
    상기 부호화 행렬의 제k 열이 나머지 열들에 비하여 상대적인 밀도가 높도록 구성된 경우에는 상기 부호화 행렬의 제k+1 열 내지 제n 열의 각 열을 코드워드로 정의하여 n-k 개의 코드워드를 생성것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 장치.
  45. 제24항에 있어서,
    입력 메시지의 n개 비트가 모두 '0'으로만 이루어진 경우에는 상기 부호화 행렬 생성부를 거치지 않고 상기 코드워드 생성부가 모두 '0'으로 이루어진 코드워드(codeword)를 바로 생성하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 장치.
  46. 제24항에 있어서, 상기 코드워드 생성부는
    상기 부호화 행렬을 이용하여 생성한 코드워드의 길이가 m이고, 입력 메시지의 n개 비트가 모두 '0'으로만 이루어진 경우에는 상기 부호화 행렬 생성부를 거치지 않고 상기 코드워드 생성부가 기 m이 아닌 다른 길이로 이루어진 코드워드(codeword)를 생성하는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 장치.
  47. 제24항에 있어서,
    상기 코드워드 생성부와 코드워드 전송부는 일체로 형성되는 것을 특징으로 하는 입력 데이터의 상대적 고밀도를 이용한 부호화 장치.
PCT/KR2014/005114 2013-06-14 2014-06-11 입력 데이터의 상대적 고밀도를 이용한 부호화 방법 및 장치 WO2014200259A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2013-0068471 2013-06-14
KR1020130068471A KR101613984B1 (ko) 2013-06-14 2013-06-14 입력 데이터의 상대적 고밀도를 이용한 부호화 방법 및 장치

Publications (1)

Publication Number Publication Date
WO2014200259A1 true WO2014200259A1 (ko) 2014-12-18

Family

ID=52022486

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2014/005114 WO2014200259A1 (ko) 2013-06-14 2014-06-11 입력 데이터의 상대적 고밀도를 이용한 부호화 방법 및 장치

Country Status (2)

Country Link
KR (1) KR101613984B1 (ko)
WO (1) WO2014200259A1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030142742A1 (en) * 2002-01-30 2003-07-31 Rf Saw Components, Incorporated Modulation by combined multi-pulse per group with simultaneous phase and time shift keying and method of using the same
US8184024B2 (en) * 2009-11-17 2012-05-22 Fujitsu Limited Data encoding process, data decoding process, computer-readable recording medium storing data encoding program, and computer-readable recording medium storing data decoding program
US8233545B2 (en) * 2006-08-21 2012-07-31 Texas Instruments Incorporated Run length encoding in VLIW architecture
KR20120121144A (ko) * 2011-04-26 2012-11-05 삼성전자주식회사 무선통신 시스템에서 데이터 송?수신 방법 및 장치

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100989860B1 (ko) 2008-02-12 2010-10-29 전북대학교산학협력단 블록 길이를 유지하면서 부호화율을 낮추는 행 분할 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030142742A1 (en) * 2002-01-30 2003-07-31 Rf Saw Components, Incorporated Modulation by combined multi-pulse per group with simultaneous phase and time shift keying and method of using the same
US8233545B2 (en) * 2006-08-21 2012-07-31 Texas Instruments Incorporated Run length encoding in VLIW architecture
US8184024B2 (en) * 2009-11-17 2012-05-22 Fujitsu Limited Data encoding process, data decoding process, computer-readable recording medium storing data encoding program, and computer-readable recording medium storing data decoding program
KR20120121144A (ko) * 2011-04-26 2012-11-05 삼성전자주식회사 무선통신 시스템에서 데이터 송?수신 방법 및 장치

Also Published As

Publication number Publication date
KR101613984B1 (ko) 2016-04-20
KR20140145825A (ko) 2014-12-24

Similar Documents

Publication Publication Date Title
WO2014092502A1 (en) Encoding method and apparatus using crc code and polar
WO2015160205A1 (ko) 부호어를 생성하는 방법 및 장치 그리고 부호어를 복원하는 방법 및 장치
WO2018231023A1 (ko) 극부호를 위한 시퀀스 생성 방법 및 그 저장 매체와 그를 이용한 데이터 송신 방법 및 장치
US8271850B2 (en) Fast low-density parity-check code encoder
WO2017018859A1 (en) Method and apparatus for channel encoding and channel decoding in a wireless communication system
KR920017482A (ko) 우선순위 비디오 데이타의 재결합 장치
GB2264028A (en) Parallel scrambling system
JPS58200654A (ja) 通信装置
WO2018030794A1 (ko) 폴라 코드를 이용한 harq 수행 방법
EP2847953A1 (en) Apparatus and method of transmitting and receiving packet in a broadcasting and communication system
US20010008001A1 (en) Switching system and scramble control method
WO2021060758A1 (ko) 데이터 무손실 압축 장치 및 그 방법
JPH0715484A (ja) データ通信方法および装置
Zhou et al. On BATS codes with variable batch sizes
WO2013115563A1 (en) Apparatus and method for transmitting/receiving data in communication system
WO2014200259A1 (ko) 입력 데이터의 상대적 고밀도를 이용한 부호화 방법 및 장치
WO2012118327A2 (en) Method and apparatus for transmitting and receiving in a communication/broadcasting system
WO2015147613A1 (ko) 방송 및/또는 통신 시스템에서 패킷 생성 및 복원 방법 및 장치
WO2010047462A1 (ko) 랩터 코드를 위한 싱글 스테이지 디코더와 이를 이용한 심볼 복원 방법 및 무선 통신 장치
WO2014046395A1 (ko) 보완적인 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치
WO2019004527A1 (ko) 연속 변수 양자키 분배의 정보 조정을 위한 이진 비트키 추정 방법 및 장치
WO2014021559A1 (ko) 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치
KR100474722B1 (ko) 디지털 통신시스템에서 데이터 프레임을 동기화하는 방법
WO2014123351A1 (ko) 특정밀도를 기반으로 하는 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치
WO2014021558A1 (ko) 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치

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

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

Country of ref document: EP

Kind code of ref document: A1