WO2018021094A1 - データ圧縮符号化方法、復号化方法、その装置、及び、そのプログラム - Google Patents

データ圧縮符号化方法、復号化方法、その装置、及び、そのプログラム Download PDF

Info

Publication number
WO2018021094A1
WO2018021094A1 PCT/JP2017/025955 JP2017025955W WO2018021094A1 WO 2018021094 A1 WO2018021094 A1 WO 2018021094A1 JP 2017025955 W JP2017025955 W JP 2017025955W WO 2018021094 A1 WO2018021094 A1 WO 2018021094A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
column
encoding
record
decoding
Prior art date
Application number
PCT/JP2017/025955
Other languages
English (en)
French (fr)
Inventor
鈴木 隆之
柴田 薫
Original Assignee
株式会社高速屋
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社高速屋 filed Critical 株式会社高速屋
Priority to EP20197054.8A priority Critical patent/EP3771104A1/en
Priority to CN201780045701.9A priority patent/CN109478893B/zh
Priority to EP17834102.0A priority patent/EP3490153B1/en
Publication of WO2018021094A1 publication Critical patent/WO2018021094A1/ja
Priority to US16/235,741 priority patent/US10547324B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • H03M7/3077Sorting
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6035Handling of unkown probabilities
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference

Definitions

  • the following embodiment relates to a data compression encoding method, a decoding method, an apparatus thereof, and a program thereof.
  • FIG. 1 is a schematic view schematically illustrating these sensor networks.
  • the sensor network 1 data detected by the sensor 2 a and the like is transmitted to the processing device 4 via the sensor node 5 and the gateway 3.
  • the data to be transmitted tends to have a fixed data size.
  • the data compression apparatus is placed in the sensor node in the example of FIG.
  • a data string in which data of a predetermined size, such as the state of the environment detected by each sensor, is arranged in a specific order is called a record.
  • one record is fixed-length data composed of a fixed-length bit string.
  • the sensor network data such as the state of the environment detected by the sensor is output continuously as a record.
  • the sensor includes a temperature sensor, a humidity sensor, a pressure sensor, a rotation speed sensor, a wind speed sensor, a flow velocity sensor, an acceleration sensor, a speed sensor, a position sensor, or a sensor that detects on / off information of a switch.
  • FIG. 2 is a diagram for explaining an example of the above-described fixed length data.
  • the detection information of the sensor 2a is the number of rotation pulses, and the on / off information of the corresponding switches is detected as the detection information of the sensors 2b and 2c.
  • the fixed length data transmitted and received in the sensor network 1 has its bit length set to a fixed value.
  • the inside of the fixed-length bit data may be divided into fields in which the type of data to be described is determined for each predetermined number of bits.
  • FIG. 2A an example of decimal notation of fixed length data is described.
  • the 26-bit time is described in the first field of the fixed-length data
  • the 14-bit rotation pulse number that is the output of the rotation pulse number sensor 2a is described in the next field. Yes.
  • 1-bit data indicating whether the detection information of the sensor 2b is on or off, and then 1-bit data indicating whether the detection information of the sensor 2c is on or off are described.
  • the entire data bit length is a fixed value.
  • one sensor node 5 of the sensor network 1 is provided with three sensors.
  • the types of sensors and the number of sensors provided in one sensor node are not limited to this, and one or more arbitrary types of arbitrary types of sensors can be provided.
  • Fig. 2 (b) is a binary representation of the fixed-length data in decimal notation of Fig. 2 (a). Also in this case, the 26-bit time, 14-bit rotation pulse number, 1-bit sensor 1 on / off state, and sensor 2 on / off state are described from the beginning.
  • FIG. 2C shows the fixed-length data expressed in binary notation in FIG. 2B as continuous bits. In this case as well, what information from what bit to what bit from the head is determined in advance, so that the device that has received fixed-length data reads the bits from the head sequentially, Can be recognized.
  • the detection information of the sensor is the number of rotation pulses and the on / off information of the switch.
  • the sensor of the present embodiment is not limited to this, for example, The sensor can detect various detection amounts such as temperature, humidity, position, speed, acceleration, wind speed, flow velocity, pressure, and the like.
  • the present invention is not limited to sensor detection information, and can be applied to data that is sequentially transmitted from a transmission source.
  • a method is used in which a certain amount of data is accumulated, the data size is reduced by an existing compression technique, and then transferred to the receiving side. is there.
  • the compression efficiency cannot be improved. Therefore, if the compression efficiency is prioritized, a delay due to the accumulation time occurs. Therefore, when immediacy is required, it may be sent without being compressed. However, if data is transferred without being compressed, the data transfer amount becomes larger than that when the data is compressed.
  • Patent Documents 1 to 5 Prior arts of data compression include those disclosed in Patent Documents 1 to 5 and Non-Patent Document 1, both of which describe a data compression encoding method suitable for encoding fixed-length data. It has not been.
  • JP 2007-214998 A US Patent Publication No. 2011/0102104 Special table 2014-502827 JP 2010-26884 JP 2007-214813 A International Publication 2013/175909 JP 2007-212280 A JP2011-48514
  • a data compression encoding method, a decoding method, an apparatus thereof, and a program thereof suitable for encoding and decoding fixed-length data are provided.
  • a data compression encoding method, a decoding method, an apparatus thereof, and a program thereof suitable for encoding and decoding fixed-length data are provided.
  • the data compression encoding according to one aspect of the present invention is performed by converting a record including a fixed-length bit string including one or more fields in which the same kind of data is described in the same field among predetermined fields to a predetermined bit width.
  • the column is divided regardless of the boundary of the field, and the appearance probability of the bit value in the column at the same position over a plurality of records is obtained for each column, and the plurality of records are entropy-encoded based on the appearance probability.
  • the data compression encoding according to another aspect of the present invention is a compression of sensor data output by combining each sensor data input from one or more sensors with a record composed of a fixed-length bit string, compressing and encoding the record.
  • the record is divided into columns of a predetermined bit width, and the appearance probability of the bit value in the column at the same position is obtained for each column over a plurality of records that have been input up to that point.
  • each column constituting the record is encoded, and the encoded columns are combined and output for a predetermined number of records. That is, a fixed-length bit string obtained by combining sensor data input from one or more sensors, which are sequentially input in series, is regarded as virtual table data, and the virtual table data is compressed in the column direction. It is.
  • entropy coding is a coding method in which compression is performed by assigning a short code length to a symbol with a high appearance probability and assigning a long code length to a symbol with a low appearance probability.
  • Huffman codes Huffman codes, arithmetic codes, and the like are known.
  • Huffman codes such as adaptive Huffman codes and Canonical Huffman Codes
  • many systems using adaptive arithmetic codes, Q coders, range coders, etc. are known as arithmetic codes.
  • FIG. 5 It is a figure explaining the adaptive Huffman coding method of this embodiment by a specific example.
  • FIG. 6 It is a figure explaining the adaptive Huffman coding method of this embodiment by a specific example.
  • FIG. 6 It is FIG. (1) explaining the data compression encoding method of this embodiment which made column division
  • FIG. (2) explaining the data compression encoding method of this embodiment which made column division
  • FIG. (5) explaining the data compression encoding method of this embodiment which used column division
  • FIG. (6) explaining the data compression encoding method of this embodiment which made column division
  • FIG. (7) explaining the data compression encoding method of this embodiment which made column division
  • FIG. (The 8) explaining the data compression encoding method of this embodiment which made column division
  • FIG. (9) explaining the data compression encoding method of this embodiment which made column division
  • FIG. (The 3) explaining the decoding method which decodes the encoding data encoded with the adaptive Huffman encoding method of this embodiment by a specific example.
  • FIG. (The 4) explaining the decoding method which decodes the encoding data encoded by the adaptive Huffman encoding method of this embodiment by a specific example.
  • FIG. (5) explaining the decoding method which decodes the encoding data encoded with the adaptive Huffman encoding method of this embodiment by a specific example.
  • FIG. (6) explaining the decoding method which decodes the encoding data encoded with the adaptive Huffman encoding method of this embodiment by a specific example.
  • FIG. (2) explaining the decoding method which decodes the coding data encoded by the adaptive arithmetic coding method of this embodiment by a specific example.
  • FIG. (The 3) explaining the decoding method which decodes the encoding data encoded with the adaptive arithmetic coding method of this embodiment by a specific example.
  • FIG. (4) explaining the decoding method which decodes the encoding data encoded with the adaptive arithmetic encoding method of this embodiment by a specific example. It is FIG.
  • FIG. (5) explaining the decoding method which decodes the coding data encoded by the adaptive arithmetic coding method of this embodiment by a specific example.
  • FIG. (6) explaining the decoding method which decodes the coding data encoded by the adaptive arithmetic coding method of this embodiment by a specific example.
  • FIG. (7) explaining the decoding method which decodes the encoding data encoded by the adaptive arithmetic coding method of this embodiment by a specific example.
  • FIG. (The 8) explaining the decoding method which decodes the encoding data encoded with the adaptive arithmetic encoding method of this embodiment by a specific example. It is FIG.
  • FIG. (9) explaining the decoding method which decodes the coding data encoded by the adaptive arithmetic coding method of this embodiment by a specific example.
  • FIG. (10) explaining the decoding method which decodes the encoding data encoded with the adaptive arithmetic coding method of this embodiment by a specific example.
  • FIG. 3 is a diagram for explaining column division according to the present embodiment.
  • FIG. 3 shows an example of one record of fixed length data composed of a fixed length bit string.
  • a record is composed of a field having a predetermined bit position and width, and data is described in fields 1 to n.
  • the record is divided into columns each having a predetermined bit width.
  • column 1 is composed of 1 to a1 bits
  • column 2 is composed of a1 + 1 to a2 bits
  • column 3 is composed of a2 + 1 to a3 bits
  • column m is am ⁇ It consists of 1 + 1 to am bits.
  • a1 to am may be the same value or different values.
  • the column may be divided in accordance with the position and width of the field, or may be divided regardless of the width and position of the field. Further, the bit width of the column can be, for example, 1 bit, 2 bits, 4 bits, 8 bits, 16 bits, or the like.
  • the fixed-length data includes significant data as variable-length data, but also includes data that is fixed-length data by adjusting the data length by adding “0” after the data.
  • the method of the present embodiment is also applicable to a case where the length data is composed of fields for storing the same kind of data, and when the data is not recorded in the rear data, the data length is filled with “0” to make the data length a fixed value. Applicable.
  • a record composed of a fixed-length bit string of fixed-length data is composed of data having different meanings described in a plurality of predetermined fields, and each record has the same position.
  • the data described in the field is the same type of data.
  • the record is divided into columns that are blocks of an arbitrary number of bits, and each column is individually encoded continuously in the column direction, thereby realizing more effective compression encoding than the conventional encoding method. . That is, in this embodiment, one record is encoded by encoding each column continuously for each column at the same position of a plurality of records.
  • encoding each column individually means that the encoding process does not depend on data in different columns.
  • the field is a data storage position in the fixed-length data in which a lump of data is stored and the meaning of the lump of data stored is determined for each field.
  • Fixed-length data consists of data stored in one or more fields.
  • the column is obtained by dividing fixed-length data, but the data stored in the column is not necessarily limited to a single piece of meaningful data.
  • a column is a block of data that is simply divided, for example, a field may be divided across fields, or a field may be divided into a plurality of columns.
  • the method of dividing the column is the same over a plurality of fixed length data, and the same column shows a block of data of the same part over the plurality of fixed length data.
  • FIG. 4A is a diagram illustrating an example of a functional block configuration of the data compression encoding apparatus according to the present embodiment.
  • the data of each column is temporarily stored in the registers 11-1 to 11-m for each column, and then for each column.
  • the encoding means 12-1 to 12-m individually compress and encode each column.
  • the compression-encoded data of each column is made into one data stream by the mixing unit 13 and outputted as encoded data output of one record.
  • each of the column encoding units 12-1 to 12-m is described as being provided with an individual encoding unit, but the present invention is not necessarily limited to this.
  • the compression encoding process may be processed in a time division manner so that the means performs individual compression encoding for each column.
  • the data compression encoding apparatus according to the present embodiment is provided in, for example, a sensor node as in the example of FIG.
  • the compression encoding method used by the data compression encoding apparatus whose functional block configuration is shown in FIG. 4A can be an entropy encoding method including a method such as Huffman encoding.
  • the column encoding units 12-1 to 12-m employ the entropy encoding method
  • the column encoding units 12-1 to 12-m include frequency tables and codes as shown in FIG. 4A.
  • the chemical table is stored.
  • Such a compression encoding method of the present embodiment is particularly effective when the fixed-length bit string is composed of a plurality of independent information. Even if the division into columns ignores the boundary of fields including independent information of fixed-length bit strings, the average data amount after compression coding is reduced by not considering the correlation between columns. be able to.
  • FIG. 4B is a diagram illustrating another example of the functional block configuration of the data compression encoding apparatus according to the present embodiment.
  • the example shown in FIG. 4B is a case where arithmetic coding is used.
  • the dividing means 10a divides the record input for each column, and stores the data of each column in the column registers 11a-1 to 11a-m. Hold.
  • the column division range determination means 12a-1 to 12a-m the appearance probability is calculated based on the frequency of the read data value in each column, and the value into which the current range corresponding to the column is divided is calculated for each column. judge.
  • the range corresponding to the next column is obtained by the range dividing means from the obtained value and the column value.
  • the range division unit 18-1 calculates the range based on the result of processing the column 1 data and the column 1 data. Then, the range corresponding to column 2 is divided. Next, the column division range determination unit 12a-2 of the column 2 determines a value for dividing the range of the column 2 based on the appearance probability of the data of the column 2, and the range division unit 18- 2 divides the range for the next column 3. Similarly, the above processing is repeated up to column m. Then, the encoding means 19 encodes the input record based on the value with the shortest binary representation included in the range which is the range division result of the range dividing means 18-m, and obtains the encoded data output. .
  • FIG. 5A is a diagram illustrating an example of a functional block configuration of the decoding device according to the present embodiment.
  • the decoding apparatus shown in FIG. 5A is a decoding apparatus corresponding to the data compression encoding apparatus shown in FIG. 4A.
  • the dividing unit 16 divides the encoded data into columns.
  • the plurality of decoding units 14-1 to 14-m decode the encoded data of each column.
  • the decoding means 14-1 to 14-m refer to the frequency tables and the encoding tables 15-1 to 15-m provided for each column of data before encoding according to a specific encoding method. To decrypt.
  • the encoded data is read sequentially, and the symbol pattern of the encoded data is referred to the frequency table and encoding table provided for each column 1 to column m.
  • a symbol of decoded data is generated.
  • FIG. 5B is a diagram illustrating another example of the functional block configuration of the decoding device according to the present embodiment.
  • the decoding device shown in FIG. 5B is a decoding device corresponding to the data compression encoding device shown in FIG. 4B.
  • the encoded record is input to the column division range determination means 20-1 of the column 1.
  • the appearance probability is calculated based on the frequency of the decoded data value in each column, and a value by which the current range corresponding to the column is divided is obtained. .
  • the column 1 decoding unit 14a-1 to the column m decoding unit 14a-m the value obtained by dividing the current range corresponding to each column is compared with the value of the encoded data, and the decoded data of the column is compared. Ask for. Further, the range corresponding to the next column is obtained by the range dividing means based on the decoded data and the value obtained by dividing the previously obtained current range.
  • the decoded data of the column 1 decoding unit 14a-1 to the column m decoding unit 14a-m are combined by the mixing unit 17a, and a decoded record is output.
  • FIG. 6 is a flowchart for generally explaining the data compression encoding method of the present embodiment using the adaptive entropy encoding method.
  • the adaptive encoding method performs sequential compression encoding as data is input.
  • a frequency table used for entropy coding is initialized.
  • the frequency table is a count of how many times a certain symbol appears in the encoded data.
  • This frequency table itself is conventionally used in entropy coding.
  • the frequency table itself is characterized by counting symbols existing in columns at the same position of a plurality of records. As initialization, for example, all entries are set to 0.
  • step S12 a coding table is created based on the frequency table.
  • the encoding table is a Huffman code dictionary in the case of a Huffman code, an appearance probability in the case of an arithmetic code, and a table used when the original data is actually replaced with the encoding information.
  • step S11 When step S11 is repeated for the number of columns, the process proceeds to step S13.
  • a coding table is created based on the frequency table initialized in step S10.
  • step S13 one record that is a fixed-length bit string is read.
  • step S14 the record is divided into columns according to a predetermined method.
  • step S14a encoding is performed for each column, and in step S15, the encoded data for each column is mixed to form compressed encoded data for one record.
  • step S16 data for one record after compression encoding is output. When the data for one record is output for all the records, the compression encoding of the input data is completed.
  • step S18 the frequency table is updated.
  • the frequency table has the number of columns independently for each column.
  • the frequency table is updated based on the encoding result of the corresponding column of the previous record as the record is sequentially encoded for the predetermined column of the record without using the encoding result of the other columns. Is.
  • step S17 When the loop process in step S17 is completed, the process returns to step S11, an encoding table is created based on the frequency table of each column updated in the loop process in step S17, and the process proceeds to step S13 to perform the encoding process for the next record. move on. When there are no more records to process, compression encoding is complete.
  • FIG. 7 is a flowchart for generally explaining a data compression encoding method according to the present embodiment using a storage-type entropy encoding method.
  • the storage-type encoding method is one in which all data to be compression-encoded is read once and then compression-encoded. That is, once all the data to be encoded is read to complete the frequency table, the data is read again and encoded.
  • step S19 the frequency table is initialized.
  • iterative processing for the number of records is performed for all records of data to be encoded.
  • step S21 one record is read, and in step S22, the record is divided into columns by a predetermined method.
  • step S24 is repeated for the number of columns.
  • step S24 the frequency table provided for each column is updated.
  • step S26 the process of step S27 is repeated for the number of columns.
  • step S27 an encoding table is created from the frequency table.
  • the encoding table is a Huffman code dictionary in the case of a Huffman code, the appearance probability in the case of an arithmetic code, and a table used when the original data is actually replaced with the encoding information.
  • step S28 the process is repeated for the number of records included in the data to be encoded.
  • step S29 one record is read, and in step S30, the record is divided according to a predetermined method.
  • step S31 compression encoding is performed for each column, and in step S32, compression encoded data is mixed to obtain compressed encoded data of one record.
  • step S33 data for one record is output.
  • the loop process of step S28 when the repetition process for the number of records is completed, the process is terminated.
  • the number of records of data to be compression-encoded depends on how much data is collectively compressed and encoded when, for example, the data to be compression-encoded is fixed-length data received from a sensor or the like. .
  • the capacity of the data to be compressed and encoded collectively depends on the capacity of the memory included in the encoding device, but this should be determined as appropriate by those skilled in the art using this embodiment. Then, in accordance with the sequential transmission of data from the transmission source, the above-described data compression and coding are repeated.
  • step S40 the frequency table is initialized in step S40.
  • step S41 the process between steps S41 is repeated for the number of records.
  • step S42 one record is read, and in step S43, the record is divided into columns by a predetermined method.
  • step S45 is repeated for the number of columns.
  • step S45 the frequency table is updated for each column. When the frequency table for all the columns is updated, the frequency table is output in step S46, and the process proceeds to the loop in step S47.
  • step S47 the process of step S48 is repeated for the number of columns.
  • step S48 a coding table is created based on the frequency table.
  • step S49 the process between steps S49 is repeated for each record.
  • step S50 one record is read.
  • step S51 the record is divided into columns by a predetermined method.
  • step S52 the process of step S53 is repeated for the number of columns.
  • step S53 the column data is encoded.
  • step S54 the encoded data obtained in the loop of step S52 is mixed into one record.
  • step S55 data for one record is output.
  • step S60 the frequency table is read in step S60.
  • step S62 is repeated for the number of columns.
  • step S62 a code table is created based on the frequency table.
  • step S63 the processing during step S63 is repeated for the number of records.
  • step S64 one record is read.
  • step S66 is repeated for the number of columns.
  • step S66 column data is decoded based on the encoding table created in step S62.
  • step S67 the decoded data of each column is mixed into one record.
  • step S68 data for one record is output.
  • step S71 the frequency table is initialized in step S70.
  • step S72 the process of step S72 is repeated for the number of columns.
  • step S72 an encoding table is created based on the frequency table initialized in step S70 in the first process, and thereafter based on the frequency table updated in step S80.
  • step S73 one record is read.
  • step S74 the record is divided into columns by a predetermined method.
  • step S76 the column data is encoded based on the encoding table created in step S72.
  • step S77 the encoded data of each column is mixed for one record.
  • step S78 data for one record is output.
  • step S79 the process of step S80 is repeated for the number of columns.
  • step S80 the frequency table for each column is updated. When the repetition for the number of columns is completed, the process returns to step S71 to create an encoding table, and the processing of the next record after step S73 is repeated.
  • the adaptive Huffman decoding method shown in FIG. 11 decodes data encoded by the adaptive Huffman encoding method shown in FIG. Decoding of the encoded data is performed by reversely decoding the encoding table used for encoding and obtaining the original column data from the encoded data. Therefore, in the flow shown in FIG. 11, the step of mixing the column data encoding step and the encoded data in the flow shown in FIG. 10 is replaced with the step of decoding the column data and the step of mixing the decoded data.
  • One record reading step is replaced with an encoded data reading step for one record, and an encoded data output step is replaced with a decoded record output step.
  • step S85 the frequency table is initialized.
  • step S86 the process of step S87 is repeated for the number of columns.
  • step S87 an encoding table is created based on the frequency table initialized in step S85 in the first process, and thereafter based on the frequency table updated in step S94.
  • step S88 encoded data for one record is read.
  • step S89 the process of step S90 is repeated for the number of columns.
  • step S90 the column data is decoded based on the coding table created in step S87.
  • step S91 the decoded data of each column is mixed for one record.
  • step S92 data for one record is output.
  • step S94 the process of step S94 is repeated for the number of columns.
  • step S94 the frequency table for each column is updated.
  • FIGS. 12 and 13 are flowcharts for explaining the adaptive arithmetic coding and decoding method. This corresponds to the functional block configuration described above with reference to FIGS. 4B and 5B, and an adaptive arithmetic coding and decoding apparatus can be realized on a computer by a program that executes the algorithm shown in these flowcharts. .
  • step S95 the frequency table is initialized in step S95.
  • step S96 the process of step S97 is repeated for the number of columns.
  • step S97 an appearance probability table is created based on the frequency table initialized in step S95 in the first process, and thereafter based on the frequency table updated in step S106.
  • step S98 one record is read.
  • step S99 the record is divided into columns by a predetermined method.
  • step S100 the range is initialized.
  • the process of step S102 is repeated for the number of columns.
  • step S102 the range is divided according to the arithmetic coding method.
  • step S103 encoded data is created from the range finally obtained in the loop of step S101.
  • step S104 this encoded data is output as encoded data for one record.
  • step S105 the process of step S106 is repeated for the number of columns.
  • step S106 the frequency table is updated. When the processing for the number of columns is completed, the process returns to step S96 to create an appearance probability table, and the processing of the next record after step S98 is repeated.
  • the adaptive arithmetic decoding method shown in FIG. 13 decodes data encoded by the adaptive arithmetic encoding method shown in FIG.
  • step S110 the frequency table is initialized.
  • step S111 the process of step S112 is repeated for the number of columns.
  • step S112 an appearance probability table is created based on the frequency table.
  • step S113 encoded data for one record is read.
  • step S114 the range is initialized.
  • the processing of step S116a, step S116, and step S117 is repeated for the number of columns.
  • step S116a the appearance probability is calculated based on the frequency of the decoded data value in each column, and a value by which the current range corresponding to the column is divided is obtained.
  • step S116 a value obtained by dividing the current range corresponding to each column is compared with the value of the encoded data to obtain decoded data of the column.
  • step S117 a range corresponding to the next column is obtained based on the value obtained by dividing the decoded data obtained in step S116 and the current range obtained in step S116a.
  • step S118 the column decoded data obtained in step S116 is mixed for one record.
  • step S119 data for one record is output.
  • step S121 the process of step S121 is repeated for the number of columns.
  • step S121 the frequency table for each column is updated. When the processing for the number of columns is completed, the process returns to step S111 to create an appearance probability table, and the processing of the next record after step S113 is repeated.
  • the data compression encoding method and decoding method according to the present embodiment have been described above with reference to FIGS. 6 to 13. However, the data according to the present embodiment can be obtained by a program using the algorithm shown in the flowcharts shown in these drawings. It is also possible to mount the compression encoding device and the decoding device on a computer.
  • FIGS. 14A to 14C are diagrams for explaining the storage type Huffman coding method of the present embodiment by way of a specific example.
  • 10 records are accumulated, and then compressed and encoded together.
  • Illustrated in FIG. 14A is a record group 20 composed of 10 records having a fixed length of 8 bits. For example, each record is divided into a column 1 and a column 2 having a 4-bit width.
  • the record group 20 is also used as the record group to be encoded.
  • FIG. 14B illustrates an example of the code dictionary 25 when the Huffman code is used.
  • the code dictionary 25 is individually provided in each column.
  • the same code dictionary is used for the same column.
  • 14A to 14C since one record is divided into two columns, two code dictionaries are also provided.
  • reference numeral 21 indicates data that may appear for each column. That is, since one column consists of 4 bits, there are 24 permutations of 0 and 1. Therefore, in order to cover all combinations of these bits, the code dictionary 25 consists of 16 rows.
  • the reference numeral 22 indicates the number of appearances of each bit pattern in the record group 20.
  • the appearance probability of each data obtained from the number of appearances is indicated by a reference sign 23, and the reference sign 24 indicates self-information entropy.
  • Reference numeral 27 indicates encoded data of each column obtained by the above encoding.
  • the reference numeral 26 in FIG. 14C shows the encoded data for each record in the record group 20.
  • the code dictionary used at the time of compression encoding when performing decoding. Therefore, it is necessary to exchange the frequency table of the reference code 22 (or the code dictionary of the reference code 25) separately.
  • the storage type illustrated in FIGS. 14A to 14C is suitable for compressing and encoding a certain number of records collectively.
  • FIGS. 6 and 7 the frequency table and the coding table have been described as separate, but in the examples of FIGS. 14A to 14C, the frequency table has a structure included in the coding table.
  • FIG. 15A to FIG. 17B are diagrams for explaining the adaptive Huffman coding method of the present embodiment by a specific example.
  • the adaptive encoding / decoding method it is not necessary to obtain the appearance probability or occurrence frequency in advance, and encoding can be performed immediately when record data is generated. The encoded information can be decoded immediately.
  • FIG. 15A shows the encoding table 25, the record group 20, and the encoded data 31-1 of the first record in the initial state indicated by the reference numeral 30-1.
  • the record group 20 to be input is the same as that shown in FIG. However, as shown in FIG. 15A, an input record is shown in bold and an uninput record is shown in thin.
  • the structure of the encoding table 25 is the same as the structure of the code dictionary 25 shown in FIG.
  • the same reference numerals are assigned to the same items only in FIG. 15A.
  • the frequency table 22 included in the encoding table 25 in the initial state is all set to the same value “1” by applying Laplace smoothing. Appearance probability, self-information entropy, and Huffman code are obtained based on this frequency, and the first record is encoded using this code.
  • the encoding result is the same value as the input record as indicated by the encoded data 31-1. Since all frequencies are equal in the initial state, the compression effect cannot be obtained.
  • Encoding is performed sequentially by repeating the process in this way.
  • FIGS. 17A and 17B an encoding table of up to 6 records is shown. Similarly, update of the frequency table and appearance probability, self-information entropy, Huffman code are repeatedly obtained and encoded for all records. Encoding is possible.
  • FIG. 18A to FIG. 22B are diagrams for explaining the data compression encoding method according to the present embodiment in which the column division is performed in units of 1 bit by a specific example.
  • This method can reduce the memory capacity used for recording the frequency table during encoding and decoding.
  • it can be encoded by applying an arithmetic coding method. Since the frequency is updated while sequentially encoding in the column direction, an adaptive binary arithmetic encoding method is used.
  • an adaptive binary arithmetic encoding method is used as the arithmetic coding method itself.
  • a conventionally known method can be adopted as the arithmetic coding method itself. Refer to Non-Patent Document 1 if necessary.
  • the input record group 20 is the same data as shown in FIG. 14A, but is divided into columns in units of 1 bit.
  • the upper row of Table 40-1 shown in FIG. 18A is the frequency, and the lower row is the appearance probability corresponding thereto.
  • Table 40-1 is a table of the initial state. Originally, when the data is “0” and “1”, the respective frequencies are required, but only the frequency of “0” is listed in Table 40-1. Instead of recording the frequency in the case of “1”, a column of the total number of records 41-1 is provided. The frequency of “1” can be obtained by subtracting the frequency of “0” from the total number of records.
  • the frequency of “0” is 1 and the total number of records is 2 using Laplace smoothing. Appearance probabilities of “0” obtained from this frequency are listed in the lower row of Table 40-1. The appearance probability can be obtained by frequency / total number of records. The appearance probability of “1” can be calculated by (1 ⁇ (appearance probability of “0”)).
  • Mathematical coding is performed based on this appearance probability.
  • the appearance probability (frequency) independent for each column in this example, independent for each bit
  • the arithmetic encoding result of the first record is shown in the encoded data 42-1. Further, the range value obtained by arithmetic coding is described on the right side of the coded data 42-1.
  • the trailing “0” is omitted here as usual.
  • the frequency is independent of the frequency of other bits in the record, but the first bit is the first bit between different records.
  • the appearance frequency of the second bit is counted as in the second bit. Therefore, the appearance probability is obtained by dividing the number of “0” appearing at a predetermined bit position by the number of processed records.
  • the appearance probability of “1” is obtained by subtracting the appearance probability of “0” from 1.
  • the appearance frequency and appearance probability of the third record updated after the encoding of the second record is shown in Table 40-3 of FIG. 19A.
  • Table 40-3 the frequency is incremented by 1 only at the location where “0” appears in the second record, and is 3 respectively.
  • the frequency of the third bit and fifth bit where “1” appears remains the initial value. Further, the total number of records 41-2 is increased to 4.
  • Appearance probabilities obtained from the frequency and the total number of records are listed in the lower row of Table 40-3.
  • the appearance frequency and appearance probability of the fourth record updated after the encoding of the third record is shown in Table 40-4 of FIG. 19B.
  • Table 40-4 the frequency is incremented by 1 only at the place where “0” appears in the third record, and becomes 4 respectively.
  • the frequency of the third bit and fifth bit where “1” appears remains the initial value.
  • the total number of records 41-4 is increased to 5.
  • Appearance probabilities obtained from the frequency and the total number of records are listed in the lower part of Table 40-4.
  • the appearance frequency and appearance probability of the fifth record updated after the encoding of the fourth record is shown in Table 40-5 of FIG. 20A.
  • Table 40-5 the frequency is incremented by 1 only at the place where “0” appears in the fourth record, and is 5 respectively.
  • the frequencies of the third bit, the fifth bit, and the sixth bit at which “1” newly appears in the fourth record remain the previous values.
  • the total number of records 41-5 has been increased to 6. Appearance probabilities obtained from the frequency and the total number of records are listed in the lower part of Table 40-5.
  • the appearance frequency and appearance probability of the sixth record updated after the encoding of the fifth record is shown in Table 40-6 of FIG. 20B.
  • Table 40-6 the frequency is increased by 1 only at the location where “0” appears in the fifth record.
  • the frequencies of the first bit, the third bit, and the fifth bit where “1” newly appears in the fifth record remain the previous values.
  • the total number of records 41-6 has been increased to 7.
  • Appearance probabilities obtained from the frequency and the total number of records are listed in the lower part of Table 40-6.
  • the appearance frequency and appearance probability of the seventh record updated after the encoding of the sixth record is shown in Table 40-7 of FIG. 21A.
  • Table 40-7 the frequency value is incremented by 1 only where “0” appears in the sixth record.
  • the frequency of the 3rd and 5th bit locations where “1” newly appears in the 6th record remains the previous value.
  • the total number of records 41-7 is increased to 8.
  • Appearance probabilities obtained from the frequency and the total number of records are listed in the bottom row of Table 40-7.
  • the appearance frequency and the appearance probability of the eighth record updated after the encoding of the seventh record are shown in Table 40-8 of FIG. 21B.
  • Table 40-8 the frequency is increased by 1 only at the point where “0” appears in the seventh record.
  • the frequencies of the third and fifth bits where “1” newly appears in the seventh record remain the previous values.
  • the total number of records 41-8 has been increased to 9.
  • Appearance probabilities obtained from the frequency and the total number of records are listed in the bottom row of Table 40-8.
  • the appearance frequency and appearance probability of the ninth record updated after encoding of the eighth record are shown in Table 40-9 of FIG. 22A.
  • Table 40-9 the frequency value is incremented by 1 only at the point where “0” appears in the eighth record.
  • the frequency of the third bit and fifth bit where “1” newly appears in the eighth record remains the previous value.
  • the total number of records 41-9 is increased to 10.
  • Appearance probabilities obtained from the frequency and the total number of records are listed in the lower part of Table 40-9.
  • the appearance frequency and appearance probability of the 10th record updated after the encoding of the 9th record are shown in Table 40-10 of FIG. 22B.
  • Table 40-10 the frequency is increased by 1 only at the location where “0” appears in the ninth record.
  • the frequencies of the third and fourth bits where “1” newly appears in the ninth record remain the previous values.
  • the total number of records 41-10 has been increased to 11.
  • Appearance probabilities obtained from the frequency and the total number of records are listed in the lower part of Table 40-10.
  • encoding is performed by repeating frequency update and arithmetic encoding.
  • the method of the present embodiment provides a higher compression effect than the method using the conventional compression technique having one type of dictionary as a whole.
  • the following effects are obtained. For example, in the case of division into a plurality of bits, it is necessary to retain information for replacement for encoding only for the bit pattern of the division unit. Therefore, only a small amount of work memory is required for compression encoding.
  • FIG. 23A to FIG. 31B show processing examples of the decoding method of this embodiment.
  • FIGS. 23A and 23B are diagrams for explaining a decoding method for decoding encoded data encoded by the storage-type Huffman encoding method shown in FIGS. 14A to 14C.
  • the decoding side prepares a region of the decoding dictionary 50-1 shown in FIG. 23A in advance.
  • a table composed of 16 (2 to the 4th power) rows and 2 blocks is formed. Also, leave columns other than column a in the table blank.
  • the encoded bit string is read and decoded data is obtained from the decoding dictionary 50-1. Since the Huffman code is a prefix code, the encoded bit string can be decoded in order from the top. No special delimiter is required.
  • FIG. 23B shows a decoding record 51-2 obtained by decoding the encoded data 51-1 using the decoding dictionary 50-1.
  • the encoded data is “00”.
  • the encoded data “0” corresponds to the symbol sequence “0010”, and in the right column, the encoded data “0” is This corresponds to the symbol string “1000”. Therefore, the encoded data “00” becomes “00101000” after decoding.
  • the third row of the encoded data 51-1 The same applies to the third row of the encoded data 51-1.
  • the fourth line of the encoded data 51-1 is “010”. From the decoding dictionary 50-1, since the code “01” does not exist in the left column, “0” is taken as the encoded data of the left column. This corresponds to “0010” after decoding. Since the encoded data in the right column is “10”, looking at the decoding dictionary 50-1, the encoded data is “1100” after encoding. Therefore, the decoded symbol string is “00101100”. Similarly, the encoded data 51-1 can be decoded.
  • 24A to 26B are diagrams for explaining a decoding method for decoding encoded data encoded by the adaptive Huffman encoding method shown in FIGS. 15A to 17B. It is determined in advance to decode the encoded data encoded by the adaptive Huffman encoding method shown in FIGS. 15A to 17B, that is, to handle an 8-bit record consisting of two 4-bit columns. . A method for obtaining the Huffman code is also decided.
  • a table 50-2 shown in FIG. 24A is prepared in advance.
  • a table composed of 16 (2 to the 4th power) rows and 2 blocks is formed.
  • the initial value of the occurrence frequency is all set to “1” using Laplace smoothing similarly to the encoding, and the Huffman code is calculated.
  • the same table as the initial encoding table 30-1 shown in FIG. 15A is created.
  • the a column is the decoded data. This is performed for the left column and the right column, and by combining the two decoded data on Table 51-3, the record before encoding can be decoded. Since the Huffman code is a prefix code, it is possible to decode the encoded bit string in order from the top, so that no special delimiter is required.
  • the data “010101” of the second record is read.
  • the first column from the left e column is decoded. That is, “010” is found from the head of the encoded data, and it is obtained that this corresponds to the decoded data “0010” in Table 50-3.
  • the second column from the right e column is decoded. That is, since the remainder of the encoded data is “101”, it can be seen from Table 50-3 that this corresponds to “1000”. Therefore, it is acquired that the data in the right column after decoding is “1000”.
  • the decoded symbol strings of the left column and the right column are combined to obtain “00101000”.
  • the table 50-3 is updated. Since the Huffman code is a prefix code, no separator is required. Decoding can be performed by repeating this process.
  • the fourth encoded data is “00100010”. Therefore, from Table 50-5, “001” in the left column corresponds to “0010” and “00010” in the right column is “00010”. 1100 ". Therefore, it can be seen that the fourth decoded symbol string is “00101100”.
  • the fifth encoded data is “0000011”
  • “00000” corresponds to “1010” from the left column
  • “11” corresponds to “1000” from the right column of Table 50-6. I understand that Therefore, the fifth decoded symbol string is “10101000”.
  • FIGS. 18A to 22B are diagrams for explaining a decoding method for decoding encoded data encoded by the adaptive arithmetic encoding method shown in FIGS. 18A to 22B. It is determined in advance to decode the encoded data encoded by the adaptive arithmetic encoding method shown in FIGS. 18A to 22B, that is, to handle an 8-bit record consisting of 1 bit column ⁇ 8 columns. . Arithmetic coding methods are also decided.
  • a table 60-1 shown in FIG. 27A is prepared in advance.
  • a table consisting of 8 blocks is created. Each block requires two patterns when the column data is “0” and “1”, but only stores “0” as in the case of encoding.
  • the initial value of the occurrence frequency is all set to “1” using Laplace smoothing as in the encoding, and the appearance probability is calculated as shown in Table 60-1 shown in FIG. 27A. It is.
  • the data “00101” of the first record is read into the area 61-2. Since the arithmetic code is not a prefix code, it is necessary to use a protocol that can determine the record delimiter.
  • encoded data 0.15625 is obtained.
  • decoded data “00101000” which is a record before encoding, is obtained by performing range division in the same way as arithmetic encoding while determining column values based on this data.
  • the data “01” of the second record is read.
  • encoded data 0.25 is obtained.
  • Decoded data “00101000” is obtained by performing range division in the same way as arithmetic coding while determining column values based on this data.
  • a process example for obtaining the second decoded data will be described in detail.
  • Table 60-2 describes the frequency shown in FIG. 27B by the input of the first encoded data.
  • the input second encoded value “01” is the decimal part of the binary decimal number 0.01, which is 0.25 in decimal representation.
  • the decoded data is sequentially bit-by-bit based on the appearance probability of “0” for each column (bit). I will ask.
  • the initial value of the range when decoding the first bit is [0, 1).
  • the range division is repeated according to the appearance probability of “0” for each column.
  • the division value is calculated by the formula “(maximum range ⁇ minimum range) * probability of“ 0 ”+ minimum range”.
  • the appearance probability “0.667” is obtained as described in Table 60-2 from the frequency “2” of “0” and the number of records “3” described in the first column of Table 60-2, and the above-described formula To obtain the division value of the current range. Since the current range is the initial value [0, 1), the calculated division value is “0.667”.
  • the process for obtaining the division value corresponds to the process of the column division range determination means 20-1 shown in FIG. 5B. (Note that the appearance probability can be calculated in advance when the frequency is updated.)
  • the decoded bit value of the first column is “0”.
  • This processing corresponds to the processing of the column 1 decoding unit 14a-1 in FIG. 5B.
  • the bit value of the first column is “0” and the division value is “0.667”
  • the next range is set to [0, 0.667) which is smaller than the division value. This processing corresponds to the processing of the range dividing unit 21-1 in FIG. 5B.
  • the division value “0.444” of the current range [0, 0.667) is obtained from the appearance frequency of “0” in the second column of Table 60-2, and 2 from the magnitude relationship between this division value and the code value “0.25”.
  • the decoded bit value of the 1st column is “0”.
  • the next range is [0, 44 0.444) by this decoded bit value.
  • the processing for these second columns is the same as the processing for the first column, the column division range determination means 20-2, column 2 decoding means 14a-2 and range division means 21- described in FIG. 5B. 2 corresponds to the processing.
  • the division value “0.148” of the current range [0, 0.444) is obtained from the appearance frequency of “0” in the third column of Table 60-2, and the size of the division value and the code value “0.25” is calculated. From the relationship, the decoded bit value of the third column is “1”. Also, the next range is [0.148, 440.444) by this decoded bit value.
  • Decoding of one record is completed by sequentially repeating the above-described processing for each column. In this way, the column data that is sequentially decoded is mixed by the mixing unit 17a of FIG. 5B to obtain decoded data of one record.
  • the data “01” of the third record is read.
  • encoded data 0.25 is obtained.
  • Decoding data “00101000” is obtained by performing range division in the same manner as described for the second record while determining the column value based on this data.
  • the data “1” of the fourth record is read.
  • encoded data 0.5 is obtained.
  • Decoded data “00101100” is obtained by dividing the range in the same manner as described above while determining the column value based on this data.
  • the data “111” of the fifth record is read.
  • encoded data 0.875 is obtained.
  • Decoded data “10101000” is obtained by performing range division in the same manner as described above while determining column values based on this data.
  • the data “01” of the sixth record is read.
  • encoded data 0.25 is obtained.
  • Decoding data “00101000” is obtained by performing range division in the same manner as described above while determining column values based on this data.
  • the data “01” of the seventh record is read.
  • encoded data 0.25 is obtained.
  • Decoding data “00101000” is obtained by performing range division in the same manner as described above while determining column values based on this data.
  • encoded data 0.25 is obtained.
  • Decoding data “00101000” is obtained by performing range division in the same manner as described above while determining column values based on this data.
  • the data “10101” of the ninth record is read.
  • encoded data 0.65625 is obtained.
  • the decoded data “00110000” is obtained.
  • the data “101111” of the 10th record is read.
  • encoded data 0.734375 is obtained.
  • Decoding data “00111100” is obtained by performing range division in the same manner as described above while determining column values based on this data.
  • FIG. 32 is a hardware environment diagram of an exemplary computer that executes a program when the present embodiment is implemented by a program.
  • the exemplary computer 60 includes, for example, a CPU 50, ROM 51, RAM 52, network interface 53, storage device 56, read / write drive 57, and input / output device 59. These are connected to each other by a bus 55.
  • the CPU 50 executes a program that implements the present embodiment.
  • the program is recorded in the storage device 56 or the portable recording medium 58, and is expanded in the RAM 52 from these, so that the CPU 50 can execute the program.
  • the storage device 56 is, for example, a hard disk.
  • the portable recording medium 58 includes a magnetic disk such as a flexible disk, an optical disk such as a CD-ROM, a DVD, and a Blu-Ray, a semiconductor memory such as an IC memory, and the like, and is inserted into a read / write drive 57 to be portable recording medium 58. Reading from and writing to are performed.
  • the program that implements the present embodiment is recorded in the storage device 56 and the portable recording medium 58, but also the input fixed length data to be encoded is once recorded in these, and then stored in the RAM 52. It may be read and encoded.
  • the ROM 51 stores basic programs such as BIOS for executing communication via the bus 55 and the functions of the network interface 53 and the input / output device 59.
  • the basic functions of the exemplary computer 60 are realized by the CPU 50 executing these basic programs.
  • the input / output device 59 is used to receive input of information from a user who uses the exemplary computer 60 and to output information to the user.
  • the input / output device 59 includes, for example, a keyboard, a mouse, a touch panel, a display, a printer, and the like.
  • the network interface 53 is used for the exemplary computer 60 to communicate with other computers, network devices, and the like via the network 54.
  • a program that implements the present embodiment can be recorded in the storage device 56 or the portable recording medium 58 via the network 54. Further, a program that implements the present embodiment may be executed on another computer or network device connected to the network 54, and input / output data may be transmitted / received via the network 53.
  • fixed length data to be encoded can be transmitted from a terminal having a sensor connected to the network 54.
  • the network 54 may be any network as long as it can communicate between computers or between a computer and a network device, such as a wired network and a wireless network.
  • the network 54 may include the Internet, a LAN (Local Area Network), a WAN (Wide Area Network), a fixed telephone network, a mobile phone network, an ad hoc network, a VPN (Virtual Private Network), a sensor network, and the like.
  • the fixed-length bit string of fixed-length data is composed of data having different meanings described in a plurality of predetermined fields, and each fixed-length data If the data described in the field at the same position is the same type of data, the fixed-length bit string of the fixed-length data is divided into columns of an arbitrary number of bits, and the columns are individually separated in the column direction.
  • the encoding device of the present embodiment can be implemented by hardware such as an FPGA (Field Programmable Gate Array).
  • the encoding apparatus according to the present embodiment can be realized by combining a part of hardware and the other part of software and the hardware and software.
  • the above embodiments can be realized independently of each other or in combination with each other.
  • the embodiment using the adaptive encoding method it is possible to perform sequential compression encoding, and since it is not necessary to store data once collectively, it is possible to execute encoding in real time.
  • the above embodiment is applied to real-time encoding, a predetermined number of records that are sequentially input are virtually converted into table data and compressed in the column direction.

Landscapes

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

Abstract

固定長データを連続して符号化する場合に適した圧縮符号化方法、装置、及びプログラムを提供する。圧縮符号化方法は、予め決められたフィールドのうちの同一のフィールドに同種のデータが記述される、1以上のフィールドを含む固定長ビット列からなるレコードを所定のビット幅のカラムに分割することと、複数のレコードにわたって同一位置のカラムにおけるビット値の出現確率をカラムごとに求め、該出現確率に基づいてエントロピー符号化方法により複数の前記レコードを符号化することと、を含む。

Description

データ圧縮符号化方法、復号化方法、その装置、及び、そのプログラム
 以下の本実施形態は、データ圧縮符号化方法、復号化方法、その装置、及び、そのプログラムに関する。
 近年、複数のセンサ付き無線端末を空間に散在させ、それらが協調して環境や物理的状況を採取するセンサネットワークの構築が構想されている。また、自動車の電子制御化の進展に伴い、各種車載用のセンサネットワークが実用化されている。
 図1は、これらセンサネットワークを模式的に例示した概略図である。例えばセンサネットワーク1においては、センサ2a等が検出するデータをセンサノード5とゲートウェイ3を介して処理装置4に送信する。センサ2a、2b、2cが取得するデータを処理装置4に送る場合、送信されるデータは、データサイズが固定長となる傾向がある。なお、データ圧縮装置が置かれるのは、図1の例では、センサノードである。
 各センサが検出する環境の状態等の、サイズが予め決められたデータを特定の並び順で配置したデータ列をレコードと呼ぶ。このような場合、1レコードは、固定長のビット列からなる固定長データとなる。センサネットワークにおいては、センサが時々刻々と検出する環境の状態等のデータをレコードとして連続して出力する。ここで、センサは、温度センサ、湿度センサ、圧力センサ、回転数センサ、風速センサ、流速センサ、加速度センサ、速度センサ、または位置センサ、あるいはスイッチのオン・オフ情報を検出するものなどを含む。
 図2は、上述の固定長データ例を説明する図である。
 図2に示す例では、センサ2aの検出情報として、回転パルス数、センサ2b、2cの検出情報としてそれぞれ対応するスイッチのオン・オフ情報の場合を示す。
 センサネットワーク1で送受信される固定長データは、そのビット長が固定値に設定されている。そして、その固定長ビットデータの内部は、所定数のビットごとに、記述されるデータの種類が決められているフィールドに分けられていることもありえる。例えば、図2(a)においては、固定長データの10進数表記の例が記載されている。図2(a)の例においては、固定長データの先頭のフィールドに26ビットの時刻が記述され、次のフィールドに、回転パルス数センサ2aの出力である14ビットの回転パルス数が記述されている。また、その次には、センサ2bの検出情報がオンかオフかを示す1ビットのデータ、その次に、センサ2cの検出情報がオンかオフかを示す1ビットのデータが記述されている。そして、全体のデータビット長が固定値とされている。なお、図1及び図2の例では、センサネットワーク1の1つのセンサノード5に、3つのセンサが設けられていることを示している。しかし、1つのセンサノードに設けられるセンサの種類とセンサ数は、これに限定されるものではなく、1以上の任意の数の任意の種類のセンサを設けることが出来る。
 図2(b)は、図2(a)の10進数表記の固定長データを2進数表記したものである。この場合にも、先頭から、26ビットの時刻、14ビットの回転パルス数、1ビットのセンサ1のオン/オフ状態、センサ2のオン/オフ状態が記述されている。図2(c)は、図2(b)の2進数表記された固定長データを連続ビットとして表記したものである。この場合も、先頭から何ビット目から何ビット目がどういう情報を示しているかが予め決められているので、固定長データを受け取った装置は、先頭からビットを順次読み込むことにより、固定長データ内に記述されているデータを認識することが出来る。
 なお、図1~図2の例では、センサの検出情報として、回転パルス数及びスイッチのオン・オフ情報の場合を示したが、本実施形態のセンサはこれに限定されることは無く、例えば、温度、湿度、位置、速度、加速度、風速、流速、圧力などの様々な検出量を検出するセンサとすることが出来る。
 さらに、送受信されるデータをセンサの検出情報と限定する必要もない。本発明は、センサの検出情報に限らず、送信元から順次送信されるデータに適用可能である。
 このような固定長のレコードを連続して転送する場合、ある程度の分量のデータを蓄積し、既存の圧縮技術でデータサイズを小さくしてから転送し、受けた側が伸長する方法が用いられることがある。
 この場合、蓄積する量がある程度大きくないと圧縮効率が良くならないので、圧縮効率を優先すると蓄積時間による遅延が発生する。したがって、即時性が求められる場合には圧縮せずに送られることもある。しかし、圧縮せずに転送するとデータ転送量は圧縮した場合よりも大きくなってしまう。
 データ圧縮の従来技術として、特許文献1~5及び非特許文献1に開示されたものがあるが、いずれも、固定長のデータを符号化する場合に適したデータの圧縮符号化方法については記載されていない。
特開2007-214998号 米国特許公開第2011/0200104号 特表2014-502827号 特開2010- 26884号 特開2007-214813号 国際公開2013/175909号 特開2007-221280号 特開2011- 48514号
lossless compression handbook, academic press, 2002/8/15, ISBN-10:0126208611, ISBN-13:978-0126208610
 したがって、本発明の一側面に従った実施形態においては、固定長データを符号化し、また復号化するのに適したデータ圧縮符号化方法、復号化方法、その装置、及び、そのプログラムを提供することを目的とする。
 本発明の一側面によるデータ圧縮符号化は、予め決められたフィールドのうちの同一のフィールドに同種のデータが記述される、1以上のフィールドを含む固定長ビット列からなるレコードを所定のビット幅のカラムに、前記フィールドの境界とは無関係に分割することと、複数のレコードにわたって同一位置のカラムにおけるビット値の出現確率をカラムごとに求め、該出現確率に基づいて複数の前記レコードをエントロピー符号化することと、を含む。
 また、本発明の別の一側面によるデータ圧縮符号化は、1以上のセンサから入力される各センサデータを固定長ビット列からなるレコードに結合し該レコードを圧縮符号化して出力するセンサデータの圧縮符号化であって、前記レコードを所定のビット幅のカラムに分割し、その時点までに入力済みの複数のレコードにわたって同一位置のカラムにおけるビット値の出現確率をカラムごとに求め、該出現確率に基づいてエントロピー符号化により前記レコードを構成する各カラムを符号化し、前記符号化された各カラムを結合して出力することを所定数のレコード分繰り返す。
 すなわち、順次直列に入力される所定数の、1以上のセンサから入力されるセンサデータを結合した固定長ビット列を仮想的な表データとみなし、この仮想的な表データを列方向に圧縮するものである。
 なお、エントロピー符号化とは出現確率の大きいシンボルには短い符号長を割り当て出現確率の小さいシンボルには長い符号長を割り当てることで圧縮を行う符号化方式である。エントロピー符号化に用いる代表的な符号としてはハフマン符号、算術符号などが知られている。
ハフマン符号は適応型ハフマン符号、Canonical Huffman Codes等多くの方式があり算術符号には適応型算術符号、Qコーダー、レンジコーダー、等を用いた多くの方式が知られている。
 本発明の一側面に従った実施形態によれば、固定長データを符号化する場合に適したデータ圧縮符号化方法、復号化方法、その装置、及び、そのプログラムを提供することが出来る。
センサネットワークを模式的に例示した概略図である。 固定長データ例を説明する図である。 本実施形態の符号化方法に従ったカラム分割を説明する図である。 本実施形態によるデータ圧縮符号化装置の機能ブロック構成の一つの例を示す図である。 本実施形態によるデータ圧縮符号化装置の機能ブロック構成の他の例を示す図である。 本実施形態による復号化装置の機能ブロック構成の一つの例を示す図である。 本実施形態による第2の復号化装置の機能ブロック構成の他の例を示す図である。 適応型のエントロピー符号化方法を用いた本実施形態のデータ圧縮符号化方法を一般的に説明するフローチャートである。 蓄積型のエントロピー符号化方法を用いた本実施形態のデータ圧縮符号化方法を一般的に説明するフローチャートである。 蓄積型ハフマン符号化方法を説明するフローチャートである。 蓄積型ハフマン復号化方法を説明するフローチャートである。 適応型ハフマン符号化方法を説明するフローチャートである。 適応型ハフマン復号化方法を説明するフローチャートである。 適応型算術符号化方法を説明するフローチャートである。 適応型算術復号化方法を説明するフローチャートである。 本実施形態の蓄積型ハフマン符号化方法を具体例により説明するためのレコード群を例示する図である。 本実施形態の蓄積型ハフマン符号化方法を具体例により説明するための符号辞書を例示する図である。 本実施形態の蓄積型ハフマン符号化方法による符号化データを具体例により説明する図である。 本実施形態の適応型ハフマン符号化方法を具体例により説明する図である。(その1)である。 本実施形態の適応型ハフマン符号化方法を具体例により説明する図である。(その2)である。 本実施形態の適応型ハフマン符号化方法を具体例により説明する図である。(その3)である。 本実施形態の適応型ハフマン符号化方法を具体例により説明する図である。(その4)である。 本実施形態の適応型ハフマン符号化方法を具体例により説明する図である。(その5)である。 本実施形態の適応型ハフマン符号化方法を具体例により説明する図である。(その6)である。 カラム分割を1ビット単位とした本実施形態のデータ圧縮符号化方法を具体例により説明する図(その1)である。 カラム分割を1ビット単位とした本実施形態のデータ圧縮符号化方法を具体例により説明する図(その2)である。 カラム分割を1ビット単位とした本実施形態のデータ圧縮符号化方法を具体例により説明する図(その3)である。 カラム分割を1ビット単位とした本実施形態のデータ圧縮符号化方法を具体例により説明する図(その4)である。 カラム分割を1ビット単位とした本実施形態のデータ圧縮符号化方法を具体例により説明する図(その5)である。 カラム分割を1ビット単位とした本実施形態のデータ圧縮符号化方法を具体例により説明する図(その6)である。 カラム分割を1ビット単位とした本実施形態のデータ圧縮符号化方法を具体例により説明する図(その7)である。 カラム分割を1ビット単位とした本実施形態のデータ圧縮符号化方法を具体例により説明する図(その8)である。 カラム分割を1ビット単位とした本実施形態のデータ圧縮符号化方法を具体例により説明する図(その9)である。 カラム分割を1ビット単位とした本実施形態のデータ圧縮符号化方法を具体例により説明する図(その10)である。 本実施形態の蓄積型ハフマン符号化方法により符号化された符号化データを復号する復号化方法による符号辞書作成を具体例により説明する図である。 本実施形態の蓄積型ハフマン符号化方法により符号化された符号化データの復号を具体例により説明する図である。 本実施形態の適応型ハフマン符号化方法により符号化された符号化データを復号する復号化方法を具体例により説明する図(その1)である。 本実施形態の適応型ハフマン符号化方法により符号化された符号化データを復号する復号化方法を具体例により説明する図(その2)である。 本実施形態の適応型ハフマン符号化方法により符号化された符号化データを復号する復号化方法を具体例により説明する図(その3)である。 本実施形態の適応型ハフマン符号化方法により符号化された符号化データを復号する復号化方法を具体例により説明する図(その4)である。 本実施形態の適応型ハフマン符号化方法により符号化された符号化データを復号する復号化方法を具体例により説明する図(その5)である。 本実施形態の適応型ハフマン符号化方法により符号化された符号化データを復号する復号化方法を具体例により説明する図(その6)である。 本実施形態の適応型算術符号化方法により符号化された符号化データを復号する復号化方法を具体例により説明する図(その1)である。 本実施形態の適応型算術符号化方法により符号化された符号化データを復号する復号化方法を具体例により説明する図(その2)である。 本実施形態の適応型算術符号化方法により符号化された符号化データを復号する復号化方法を具体例により説明する図(その3)である。 本実施形態の適応型算術符号化方法により符号化された符号化データを復号する復号化方法を具体例により説明する図(その4)である。 本実施形態の適応型算術符号化方法により符号化された符号化データを復号する復号化方法を具体例により説明する図(その5)である。 本実施形態の適応型算術符号化方法により符号化された符号化データを復号する復号化方法を具体例により説明する図(その6)である。 本実施形態の適応型算術符号化方法により符号化された符号化データを復号する復号化方法を具体例により説明する図(その7)である。 本実施形態の適応型算術符号化方法により符号化された符号化データを復号する復号化方法を具体例により説明する図(その8)である。 本実施形態の適応型算術符号化方法により符号化された符号化データを復号する復号化方法を具体例により説明する図(その9)である。 本実施形態の適応型算術符号化方法により符号化された符号化データを復号する復号化方法を具体例により説明する図(その10)である。 本実施形態をプログラムで実装する場合の、プログラムを実行する例示的コンピュータのハードウェア環境図である。
 図3は、本実施形態に従ったカラム分割を説明する図である。
 図3は、固定長ビット列からなる固定長データの1レコードの例を示す。レコードは、決められたビット位置と幅のフィールドからなっており、フィールド1~フィールドnにデータが記述される。本実施形態においては、レコードを所定ビット幅からなるカラムに分割する。例えば、図3の場合、カラム1は、1~a1ビットからなり、カラム2は、a1+1~a2ビットからなり、カラム3は、a2+1~a3ビットからなり、以降同様に、カラムmは、am-1+1~amビットからなる。a1~amは、同一値であってもよいし、それぞれ異なる値であっても良い。また、カラムは、フィールドの位置と幅に合わせて分割してもよいし、フィールドの幅や位置とは関係なく分割するものであっても良い。また、カラムのビット幅は、例えば、1ビット、2ビット、4ビット、8ビット、16ビットなどとすることが出来る。
 なお、固定長データには、有意なデータが可変長データとして構成されるが、データの後方に「0」を追加することにより、データ長を調整して、固定長データするものも含み、可変長データが、同種のデータを格納するフィールドからなり、後方のデータにおいてデータが記録されない場合に「0」で埋めてデータ長を固定値にする、というような場合にも本実施形態の方法は適用可能である。上述のように、本実施形態においては、固定長データの固定長ビット列からなるレコードが、複数の決められたフィールドに記述される異なる意味を持つデータから構成され、レコードごとに、同じ位置にあるフィールドに記述されるデータが同じ種類のデータとする。そして、レコードを任意のビット数のブロックであるカラムに分割し、カラム相互には個別に、カラム方向に連続して符号化することにより、従来の符号化方法より有効な圧縮符号化を実現する。すなわち、本実施形態においては、複数のレコードの同じ位置のカラムごとに連続して各カラムを符号化することにより、一つのレコードを符号化する。
 ここで、カラム相互に個別に符号化するとは、符号化のプロセスが、異なるカラムのデータに依存しない、ということを意味する。また、フィールドは、一塊のデータを格納し、フィールドごとに、格納されている一塊のデータの意味が決められているような固定長データ内のデータ格納位置である。固定長データは、1以上のフィールドに格納されたデータからなる。カラムは、固定長データを分割したものであるが、必ずしもカラムに格納されるデータは一塊の意味のあるデータとなっていると限る必要はない。カラムは、フィールドにまたがって分割されることもあれば、一つのフィールドが複数のカラムに分割されることもあるなど、単純に分割されたデータの塊である。ただし、カラムの分割の仕方は、複数の固定長データに渡って同一であり、同一のカラムは、複数の固定長データに渡って、同様な部分のデータの塊を示す。
 図4Aは、本実施形態によるデータ圧縮符号化装置の機能ブロック構成の一つの例を示す図である。図4Aにあるように、入力レコードをカラムに分割手段10で分割した後、各カラムのデータは、それぞれ、各カラム用のレジスタ11-1~11-mに一旦格納されてから、各カラム用符号化手段12-1~12-mにより、カラムごとに個別に圧縮符号化される。圧縮符号化された各カラムのデータは、混合手段13によって1つのデータストリームとされ、1つのレコードの符号化データ出力として出力される。
 ここで、各カラム用符号化手段12-1~12-mは、それぞれ、個別の符号化手段が設けられているように記載されているが、必ずしもこれには限定されず、1つの符号化手段がカラムごとに個別な圧縮符号化となるように時分割で圧縮符号化処理を処理するようにしても良い。なお、本実施形態によるデータ圧縮符号化装置は、図1の例のように、例えば、センサノードに設けられる。
 図4Aに機能ブロック構成を示すデータ圧縮符号化装置の用いる圧縮符号化方法は、例えば、ハフマン符号化などの方法を含む、エントロピー符号化方法とすることが出来る。カラム用符号化手段12-1~12-mがエントロピー符号化方法を採用する場合には、各カラム用符号化手段12-1~12-mには、図4Aに示すように頻度表と符号化表が格納される。
 このような、本実施形態の圧縮符号化方法は、固定長ビット列が複数の独立した情報により構成されている時に特に効果がある。たとえ、カラムへの分割が、固定長ビット列の独立した情報を含むフィールドの境界を無視したものであっても、カラムの間の相関を考慮しないことにより圧縮符号化後の平均データ量を小さくすることができる。
 図4Bは、本実施形態によるデータ圧縮符号化装置の機能ブロック構成の他の例を示す図である。図4Bに示す例は、算術符号化を用いる場合である。
 図4Bに示すように、算術符号化における符号化の場合には、レコード入力に対し、分割手段10aがカラムごとの分割を行い、カラム用レジスタ11a-1~11a―mに各カラムのデータを保持する。そして、カラム分割範囲判定手段12a-1~12a-mにおいて、それぞれのカラムにおける読み込んだデータ値の頻度により出現確率を計算し、当該カラムに対応する現在のレンジが分割される値をカラムごとに判定する。そして、求めた値とカラムの値からレンジ分割手段により次のカラムに対応するレンジを求める。
 すなわち、カラム1のカラム分割範囲判定手段12a-1が処理を終わると、レンジ分割手段18-1において、カラム1のデータとカラム1のデータを処理した結果に基づいて、レンジを算術符号化方法に従いカラム2に対応するレンジを分割する。次に、カラム2のカラム分割範囲判定手段12a-2がカラム2のデータの出現確率によりカラム2のレンジを分割する値を判定し、その結果とカラム2のデータとから、レンジ分割手段18-2が次のカラム3のためのレンジを分割する。以下同様に、カラムmまで、上述の処理を繰り返す。そして、符号化手段19において、レンジ分割手段18-mのレンジ分割結果であるレンジに含まれる二進数表現が最も短くなる値に基づいて入力されたレコードを符号化して、符号化データ出力を得る。
 図5Aは、本実施形態による復号化装置の機能ブロック構成の一つの例を示す図である。
 図5Aに示す復号化装置は、図4Aに示すデータ圧縮符号化装置に対応する復号化装置である。図4Aのデータ圧縮符号化装置によって符号化された符号化データが入力されると、分割手段16が符号化データをカラムに分割する。そして、複数の復号化手段14-1~14-mは、各カラムの符号化データを復号化する。このとき、復号化手段14-1~14-mは、具体的な符号化方法に従って、符号化前のデータのカラムごとに設けられる頻度表、符号化表15-1~15-mを参照して復号化を行う。例えば、符号化方法が、ハフマン符号化の場合には、符号化データを順次読み込み、符号化データのシンボルパターンを各カラム1~カラムmに対して設けられた頻度表、符号化表を参照して、復号化データのシンボルを生成する。
 そして、カラムごとに復号された復号化データを混合手段17で結合して復号レコードを出力する。
 図5Bは、本実施形態による復号化装置の機能ブロック構成の他の例を示す図である。
 図5Bに示す復号化装置は、図4Bに示すデータ圧縮符号化装置に対応する復号化装置である。
 図5Bに示す算術符号の復号化の場合には、符号化されたレコードはカラム1のカラム分割範囲判定手段20-1に入力される。そして、カラム分割範囲判定手段20a-1~20a-mにおいて、それぞれのカラムにおける復号化されたデータ値の頻度により出現確率を計算し、当該カラムに対応する現在のレンジが分割される値を求める。そして、カラム1復号化手段14a-1~カラムm復号化手段14a-mにおいて、各カラムに対応する現在のレンジが分割される値と符号化データの値を比較して当該カラムの復号化データを求める。さらにこの復号化データと先に求められた現在のレンジが分割される値に基づき、レンジ分割手段により次のカラムに対応するレンジを求める。カラム1復号化手段14a-1~カラムm復号化手段14a-mの復号化データが混合手段17aで結合され、復号レコードが出力される。
 図6は、適応型のエントロピー符号化方法を用いた本実施形態のデータ圧縮符号化方法を一般的に説明するフローチャートである。適応型の符号化方法はデータが入力されるに従い逐次圧縮符号化するものである。
 まず、ステップS10において、エントロピー符号化に用いる頻度表を初期化する。頻度表とは、あるシンボルが符号化データ内で何回現れたかを計数したものである。この頻度表自体は、エントロピー符号化において従来から使用されているものである、本実施形態においては、複数のレコードの同一位置のカラムに存在するシンボルを計数することが特徴である。初期化として例えば、全てのエントリを0に設定する。
 次にステップS11のループにおいては、1レコードのカラムの数だけ、ステップS12の処理を繰り返し行う。ステップS12では、頻度表に基づく、符号化表の作成を行なう。符号化表は、ハフマン符号の場合、ハフマン符号辞書であり、算術符号の場合には、出現確率であり、実際に符号化情報に元データを置き換える場合に用いる表である。
 ステップS11のカラム数分の繰り返し処理が終了すると、ステップS13に進む。ステップS11の最初の処理においては、ステップS10で初期化された頻度表に基づいて符号化表が作成される。
 ステップS13において、固定長ビット列である1レコードを読み込む。次に、ステップS14において、レコードを、予め決められた方法に従って、カラムに分割する。ステップS14aにおいては、カラムごとの符号化を行い、ステップS15において、カラムごとの符号化データを混合して、1レコードの圧縮符号化データとする。ステップS16において、圧縮符号化後の1レコード分のデータを出力する。この1レコード分のデータを全てのレコードについて出力し終わると、入力データの圧縮符号化が完了したことになる。
 次にステップS16の後に、ステップS17に進み、ステップS18の処理をカラム数分繰り返し行う。ステップS18では、頻度表の更新を行う。このとき、頻度表は、カラムごとに独立して、カラム数分持つ。頻度表の更新は、他のカラムの符号化結果は用いず、レコードの所定のカラムについて、レコードを順次符号化していくに従い、以前のレコードの対応するカラムの符号化結果に基づいて更新されるものである。
 ステップS17のループ処理が終了すると、ステップS11に戻り、ステップS17のループ処理で更新した各カラムの頻度表に基づいて符号化表を作成し、ステップS13に進んで次のレコードの符号化処理に進む。処理するレコードがなくなった時点で、圧縮符号化の完了となる。
 なお、エントロピー符号化方式に該当するいくつかの方式について、具体例を挙げて後にさらに詳しく説明する。
 図7は、蓄積型のエントロピー符号化方法を用いた本実施形態に従ったデータ圧縮符号化方法を一般的に説明するフローチャートである。蓄積型の符号化方法は圧縮符号化すべきデータを一旦全て読み込んでから圧縮符号化するものである。すなわち、符号化するデータを一旦全て読み込んで頻度表を完成してから、再びデータを読み込んで、符号化するものである。
 まず、ステップS19において、頻度表を初期化する。ステップS20のループにおいて、符号化すべきデータの全てのレコードについて、レコード数分の繰り返し処理を行う。ステップS21においては、1レコードを読み込み、ステップS22において、予め決められた方法によってレコードをカラムに分割する。ステップS23のループで、ステップS24をカラム数分繰り返し処理する。ステップS24においては、カラムごとに個別に設けられた頻度表を更新する。ステップS23のカラム数分の繰り返し処理が終わると、ステップS20のレコード数分の繰り返し処理が終わったか判断し、終わっていない場合には繰り返し処理を継続し、終わった場合には、ステップS25に進む。ステップS25に至った時点で、符号化すべき全てのデータについて頻度表の更新が終わったことになるので、頻度表を出力して、ステップS26に進む。
 ステップS26においては、カラム数の分だけステップS27の処理を繰り返す。ステップS27においては、頻度表から符号化表を作成する。符号化表は、ハフマン符号の場合には、ハフマン符号辞書であり、算術符号の場合には、出現確率であり、実際に符号化情報に元データを置き換える場合に用いる表である。ステップS26のカラム数分の繰り返し処理が終了すると、ステップS28に進む。
 ステップS28では、符号化すべきデータに含まれるレコード数分だけ繰り返し処理を行う。ステップS29においては、1レコードを読み込み、ステップS30において、レコードを予め決められた方法に従って分割する。ステップS31において、カラムごとに圧縮符号化し、ステップS32において、圧縮符号化データを混合して、1レコードの圧縮符号化データを得る。ステップS33において、1レコード分のデータを出力する。ステップS28のループ処理において、レコード数分の繰り返し処理が終了した場合には、処理を終了する。
 なお、ここで、圧縮符号化すべきデータのレコード数は、例えば、圧縮符号化すべきデータがセンサなどから受信する固定長データである場合、どの程度のデータをまとめて圧縮符号化するかに依存する。まとめて圧縮符号化するデータの容量は、符号化装置が有するメモリの容量などに依存するが、これは、本実施形態を利用する当業者によって適宜決定されるべきものである。そして、送信元からデータが順次送信されてくることに応じて上述のデータをまとめての圧縮符号化を繰り返す。
 図8及び図9は、蓄積型ハフマン符号化及び復号化方法をさらに詳しく説明するフローチャートである。
 図8に示す蓄積型ハフマン符号化方法においては、ステップS40において、頻度表を初期化する。ステップS41のループで、ステップS41の間の処理をレコード数分繰り返す。ステップS42においては、1レコードを読み込み、ステップS43において、レコードを所定の方法で、カラムに分割する。ステップS44のループで、ステップS45をカラム数分繰り返す。ステップS45においては、頻度表をカラムごとに更新する。そして、全てのカラムの頻度表を更新するとステップS46において頻度表を出力し、ステップS47のループに進む。
 ステップS47のループにおいては、ステップS48の処理をカラム数分繰り返す。ステップS48においては、頻度表に基づいて符号化表を作成する。
 次にステップS49のループにおいて、ステップS49の間にある処理をレコード分繰り返す。ステップS50においては、1レコードを読み込む。ステップS51においては、レコードを所定の方法でカラムに分割する。ステップS52のループにおいては、ステップS53の処理をカラム数分繰り返す。ステップS53においては、カラムデータを符号化する。次にステップS54において、ステップS52のループで求めた符号化データを1レコードに混合する。ステップS55においては、1レコード分のデータを出力する。レコード数分の処理が終わったら、処理を終了する。
 図9に示す蓄積型ハフマン復号化方法においては、ステップS60において、頻度表を読み込む。ステップS61のループにおいては、ステップS62をおカラム数分繰り返す。ステップS62において、頻度表に基づいて符号表を作成する。ステップS63のループにおいては、ステップS63の間の処理をレコード数分繰り返す。ステップS64においては、1レコードを読み込む。ステップS65のループにおいては、ステップS66をカラム数分繰り返す。ステップS66においては、ステップS62で作成した符号化表に基づいてカラムデータを復号化する。ステップS67においては、各カラムの復号化データを1レコードに混合する。ステップS68においては、1レコード分のデータを出力する。レコード数分の処理が終わったら、処理を終了する。
 図10及び図11は、適応型ハフマン符号化及び復号化方法を説明するフローチャートである。
 図10に示す適応型ハフマン符号化方法においては、ステップS70において、頻度表を初期化する。ステップS71のループにおいては、ステップS72の処理をカラム数分繰り返す。ステップS72において、初回の処理ではステップS70で初期化された頻度表に基づいて、それ以降はステップS80で更新された頻度表に基づいて符号化表を作成する。ステップS73においては、1レコードを読み込む。ステップS74において、レコードを所定の方法でカラムに分割する。ステップS75のループにおいては、ステップS76の処理をカラム数分繰り返す。ステップS76においては、ステップS72で作成した符号化表に基づいてカラムデータを符号化する。ステップS77においては、各カラムの符号化データを1レコード分混合する。ステップS78においては、1レコード分のデータを出力する。ステップS79のループにおいては、ステップS80の処理をカラム数分繰り返す。ステップS80において、各カラムの頻度表を更新する。カラム数分の繰り返しが終わると、ステップS71に戻って符号化表を作成し、ステップS73以降の次のレコードの処理を繰り返す。
 図11に示す適応型ハフマン復号化方法は、図10に示す適合型ハフマン符号化方法で符号化されたデータを復号化するものである。符号化データの復号は、符号化に用いられた符号化表を逆引きして符号化データから元のカラムのデータを求めることにより行われる。したがって、図11に示すフローは、図10に示すフローのカラムデータの符号化のステップと符号化データを混合するステップが、カラムデータの復号化のステップと復号化データを混合するステップに置き換わり、1レコード読込みステップが1レコード分の符号化データ読込みステップに、符号化データの出力ステップが復号化されたレコードの出力ステップに置き換わったものである。
 図11に示すように、ステップS85において、頻度表を初期化する。ステップS86のループにおいては、ステップS87の処理をカラム数分繰り返す。ステップS87において、初回の処理ではステップS85で初期化された頻度表に基づいて、それ以降はステップS94で更新された頻度表に基づいて、符号化表を作成する。ステップS88においては、1レコード分の符号化データを読み込む。ステップS89のループにおいては、ステップS90の処理をカラム数分繰り返す。ステップS90においては、ステップS87で作成した符号化表に基づいてカラムデータを復号化する。ステップS91においては、各カラムの復号化データを1レコード分混合する。ステップS92において、1レコード分のデータを出力する。ステップS93のループにおいては、ステップS94の処理をカラム数分繰り返す。ステップS94においては、各カラムの頻度表を更新する。カラム数分の処理が終わると、ステップS86に戻って符号化表を作成し、ステップS88以降の次のレコードの処理を繰り返す。
 図12及び図13は、適応型算術符号化及び復号化方法を説明するフローチャートである。先に図4B及び図5Bにより説明した機能ブロックの構成に対応するものであり、これらフローチャートに示すアルゴリズムを実行するプログラムにより、コンピュータ上に適応型算術符号化及び復号化装置を実現することができる。
 図12に示す適応型算術符号化方法においては、ステップS95において、頻度表を初期化する。ステップS96のループにおいては、ステップS97の処理をカラム数分繰り返す。ステップS97において、初回の処理ではステップS95で初期化された頻度表に基づいて、それ以降はステップS106で更新された頻度表に基づいて、出現確率表を作成する。ステップS98においては、1レコードを読み込む。ステップS99においては、レコードを所定の方法でカラムに分割する。ステップS100においては、レンジを初期化する。ステップS101のループにおいては、ステップS102の処理をカラム数分繰り返す。ステップS102においては、レンジを算術符号化方法に従って分割する。ステップS103においては、ステップS101のループで最終的に得られたレンジから符号化データを作成する。ステップS104においては、この符号化データを1レコード分の符号化データとして出力する。ステップS105のループにおいては、ステップS106の処理をカラム数分繰り返す。ステップS106においては、頻度表を更新する。カラム数分の処理が終わると、ステップS96に戻って出現確率表を作成し、ステップS98以降の次のレコードの処理を繰り返す。
 図13に示す適応型算術復号化方法は、図12に示す適合型算術符号化方法で符号化されたデータを復号化するものである。
 図13に示すように、ステップS110において、頻度表を初期化する。ステップS111のループにおいては、ステップS112の処理をカラム数分繰り返す。ステップS112においては、頻度表に基づき、出現確率表を作成する。ステップS113においては、1レコード分の符号化データを読み込む。ステップS114において、レンジを初期化する。ステップS115のループにおいては、ステップS116a、ステップS116とステップS117の処理をカラム数分繰り返す。ステップS116aにおいては、それぞれのカラムにおける復号化されたデータ値の頻度により出現確率を計算し、当該カラムに対応する現在のレンジが分割される値を求める。ステップS116においては、各カラムに対応する現在のレンジが分割される値と符号化データの値を比較して当該カラムの復号化データを求める。ステップS117においては、ステップS116で求めた復号化デー
タとステップS116aで求めた現在のレンジが分割される値に基づき、次のカラムに対応するレンジを求める。ステップS118においては、ステップS116で求めたカラム復号化データを1レコード分混合する。ステップS119においては、1レコード分のデータを出力する。ステップS120のループにおいては、ステップS121の処理をカラム数分繰り返す。ステップS121においては、各カラムの頻度表を更新する。カラム数分の処理が終わると、ステップS111に戻って出現確率表を作成し、ステップS113以降の次のレコードの処理を繰り返す。
 以上、図6~図13を参照して本実施形態に係るデータ圧縮符号化方法及び復号化方法を説明したが、これら図面に記載したフローチャートに示すアルゴリズムを用いたプログラムにより本実施形態に係るデータ圧縮符号化装置及び復号化装置をコンピュータ上に実装することも可能である。
 次にレコードの具体例を用いて本実施形態のデータ圧縮符号化・復号化について説明する。
 図14A~図22Bは、本実施形態のデータ圧縮符号化方法の処理例を示す。
 図14A~Cは、本実施形態の蓄積型ハフマン符号化方法を具体例により説明する図である。図14A~Cに示す例では、10個のレコードを蓄積し、その後一括して圧縮符号化する。
 図14Aに例示するのは、固定長8ビットの10件のレコードからなるレコード群20である。各レコードは、例えば、4ビット幅のカラム1とカラム2に分割されるものとする。なお、これ以降の他の方式の符号化の説明においても、符号化の対象となるレコード群として、同じくレコード群20を用いる。
 図14Bに例示するのは、ハフマン符号を用いた場合の符号辞書25の例である。従来のハフマン符号化の方法については、非特許文献1を参照されたい。本実施形態の場合、符号辞書25は、それぞれのカラムに個別に持つ。同一のカラムについては、同一の符号辞書を使う。図14A~Cの場合、1レコードを2つのカラムに分割しているので、符号辞書も2つ設けられている。
 図14Bにおいて、引用符号21で示すのはそれぞれのカラムに対して出現する可能性のあるデータである。つまり、1つのカラムは4ビットからなっているので、0と1の順列が、24通りある。したがって、これらのビットの組み合わせ全てを網羅するために、符号辞書25は、16個の行からなっている。
 引用符号22で示すのは、レコード群20における、各ビットパターンの出現回数を求めたものである。この出現回数から各データの出現確率を求めたものが引用符号23で示されるものであり、引用符号24で示すのは自己情報エントロピーである。出現確率23は、出現回数22を、レコードの数で割ったもので得られる。例えば、引用符号25で示される符号辞書の左の符号辞書において、「0010」の出現回数は7回であるが、全レコード数は、10件なので、出現確率23は、7/10=0.7となる。また、自己情報エントロピー24をSとし、出現確率23をpとすると、S=-log(p)で与えられる。この出現確率23及び自己情報エントロピー24を基に符号化を行う。
 引用符号27で示すのが上記符号化で得られた各カラムの符号化データである。このハフマン符号を結合することでレコードを圧縮符号化した符号化データが得られる。図14Cの引用符号26に示すのがレコード群20の各レコードに対する符号化データである。レコード群20と符号化データ26を比較すると、データ量が削減されていることが判るが、この方法では、復号化を行う際に、圧縮符号化の時に使用した符号辞書を参照する必要があるため別途引用符号22の頻度表(または、引用符号25の符号辞書)の授受が
必要である。図14A~Cに例示した蓄積型の場合、ある程度のレコードをまとめて圧縮符号化するのに適する。
 なお、図6及び図7の説明においては、頻度表と符号化表は別個のものとして説明したが、図14A~Cの例においては、頻度表は符号化表に含まれる構造となっている。
 図15A~図17Bは、本実施形態の適応型ハフマン符号化方法を具体例により説明する図である。適応型の符号化復号化方法では、事前に出現確率ないし発生頻度を求めておく必要がなく、レコードデータが発生した時点で即時に符号化することができる。またこの符号化された情報は即時に復号化できる。
 図15Aに示すのは、引用符号30-1で示す初期状態の符号化表25、レコード群20及び最初のレコードの符号化データ31-1である。入力されるレコード群20は、図14に示すものと同じである。ただし、図15Aに示すように、入力されたレコードは太字で未入力のレコードは薄い字で表記している。
 符号化表25の構造は図14に示す符号辞書25の構造と同じである。同一の項目には図15Aにおいてのみ同一の引用符号を付している。初期状態の符号化表25に含まれる頻度表22にはラプラススムージングを適用してすべて同一の値“1”としてある。この頻度を基に出現確率、自己情報エントロピー、ハフマン符号を求め、この符号を用いて最初のレコードを符号化する。符号化結果は、符号化データ31-1に示すとおり入力レコードと同じ値である。初期状態ではすべての頻度が等しくなるため圧縮の効果は得られない。
 次に、最初のレコードを基に頻度表を更新する。出現したデータに該当する項の頻度を一定値増加させる。図15Bに示すように、左のカラムでは「0010」、右のカラムでは「1000」の発生回数が1増加している。この頻度表を基に改めて出現確率、自己情報エントロピーを求めたものが30-2として示した符号化表25であり、ハフマン符号を求めたものが符号化データ31-2に太字で示されている。符号化データ31-2では、圧縮効果が得られていない最初のレコードに比べ、圧縮効果が現れたことを示している。
 次に、図16Aに示すように、3番目のレコードの左カラムに「0010」、右カラムに「1000」が再び現れているので、30-3として示した符号化表の左の頻度表の「0010」の項と、右の頻度表の「1000」の項が3に更新されている。この頻度表に基づいてハフマン符号化した結果が、符号化データ31-3に示されている。
 更に、図16Bにおいて、4番目のレコードの左カラムに「0010」、右カラムに「1100」が現れているので、30-4として示した符号化表の頻度表においては、左の頻度表において、「0010」の項が4に更新されている。また、右の頻度表において「1100」の項は、初めて現れたのであるが、初期値が1であるため、更新はされていない。この頻度表に基づいてハフマン符号化した結果が、符号化データ31-4に示されている。
 更に、図17Aにおいて、5番目のレコードの左カラムに「1010」、右カラムに「1000」が現れているので、30-5として示した符号化表の頻度表においては、左の頻度表において、「1010」の項が1の初期値に維持されている。また、右の頻度表において「1000」の項は、4に更新されている。この頻度表に基づいてハフマン符号化した結果が符号化データ31-5に示されている。
 更に、図17Bにおいて、6番目のレコードの左カラムに「0010」、右カラムに「1000」が現れているので、30-6として示した符号化表の頻度表においては、左の頻度表において、「0010」の項が5に更新されている。また、右の頻度表において「1000」の項は、5に更新されている。この頻度表に基づいてハフマン符号化した結果が符号化データ31-6に示されている。
 このように処理を繰り返すことにより、順次符号化していく。図17A、Bには、6レコードまでの符号化表を記してあるが、同様に頻度表の更新と出現確率、自己情報エントロピー、ハフマン符号を繰り返し求め、符号化することにより、全てのレコードについて符号化が可能である。
 このように、適応型の符号化方法を用いると、符号辞書の授受が不要なためレコード数が少ないデータでも圧縮効果が得られることが示される。
 図18A~図22Bは、カラム分割を1ビット単位とした本実施形態のデータ圧縮符号化方法を具体例により説明する図である。
 この方法により符号化及び復号化時に頻度表の記録に使用するメモリ容量を削減することができる。
 ビット単位に分割したときは、算術符号化(Arithmetic coding)の方法を応用して符号化することができる。また、カラム方向に順次符号化しながら頻度を更新していくので、適応型二値算術符号化方法を用いる。算術符号化の方法自体は従来から知られたものを採用ができる。必要とあれば非特許文献1を参照されたい。
 入力されるレコード群20は、図14Aに示すものと同じデータであるが1ビット単位にカラム分割している。
 図18Aに示す表40-1の上段が頻度であり、下段がそれに対応する出現確率である。以下の図18A~図22Bまで同様である。表40-1は初期状態の表である。本来はデータが「0」の場合と「1」の場合それぞれの頻度が必要になるが、「0」の頻度のみを表40-1に記載している。「1」の場合の頻度を記録する代わりに総レコード数41-1の欄を設けている。「1」の頻度は総レコード数から「0」の頻度を減ずることで求めることができる。初期値は、やはりラプラススムージングを用いて「0」の頻度が1、総レコード数は2としている。この頻度から求めた「0」の出現確率を表40-1の下の段に記載している。出現確率は、頻度/総レコード数で求めることが出来る。また、「1」の出現確率は (1 - (「0」の出現確率))で計算することができる。
 この出現確率を基に算術符号化を行う。ここで、本実施形態では、カラムごとに独立した(今の例の場合、ビットごとに独立した)出現確率(頻度)を用いる。1レコード目の算術符号化結果が、符号化データ42-1に示されている。また、算術符号化で求めたレンジの値が符号化データ42-1の右側に記載されている。このレンジに含まれる最も短いビット数で表現できる数値の2進数表現の小数部分が算術符号化の結果になる。この例の場合は0.00101(2進数)=0.15625(10進数)であるから結果は「00101」になる。一般に、算術符号化の場合、符号化結果の末尾の「0」は省略しても復号することが可能であるので、通常の通り、ここでは、末尾の「0」を省略している。また、符号化結果として、本実施形態では、ビット単位でカラム分割するので、頻度は、レコード内の他のビットの頻度とは無関係に、しかし、異なるレコード間では、1ビット目は1ビット目のビットの出現頻度、2ビット目は2ビット目の出現頻度・・・のように、ビット位置によって決まるビットの出現頻度を計数する。したがって、出現確率は、所定のビット位置に現れた「0」の数を、処理したレコード数で割ることによって得ている。「1」の出現確率は、1から「0」の出現確率を引くことによって得ている。
 1レコード目の符号化の後に更新された2レコード目の出現頻度と出現確率が図18Bの表40-2に示されている。「0」の頻度のみを求めているので、表40-2においては、1レコード目で「0」が現れた箇所だけ頻度が1増加されている。「1」が現れた3ビット目と5ビット目の箇所の頻度は初期値のままである。また、総レコード数41-2が3に増加されている。頻度と総レコード数から求めた出現確率が頻度表40-2の下の段に記載されている。そして、この出現確率から行った算術符号化結果が、符号化データ42-2の2番目に2番目のレコードに対応して示されている。算術符号化のレンジの値が変化していることが分かる。このレンジに含まれる最小ビット数の2進表現は0.01(2進)=0.25(10進)であるから符号化の結果は「01」になる。
 2レコード目の符号化の後に更新された3レコード目の出現頻度と出現確率が図19Aの表40-3に示されている。表40-3においては、2レコード目で「0」が現れた箇所だけ頻度が1増加され、それぞれ、3となっている。「1」が現れた3ビット目と5ビット目の箇所の頻度は初期値のままである。また、総レコード数41-2が4に増加されている。頻度と総レコード数から求めた出現確率が表40-3の下の段に記載されている。そして、この出現確率から行った算術符号化結果が、符号化データ42-3の3番目に3番目のレコードに対応して示されている。算術符号化のレンジの値が変化していることが分かる。0.01(2進)=0.25(10進)であるから符号化の結果は「01」になる。
 3レコード目の符号化の後に更新された4レコード目の出現頻度と出現確率が図19Bの表40-4に示されている。表40-4においては、3レコード目で「0」が現れた箇所だけ頻度が1増加され、それぞれ、4となっている。「1」が現れた3ビット目と5ビット目の箇所の頻度は初期値のままである。また、総レコード数41-4が5に増加されている。頻度と総レコード数から求めた出現確率が表40-4の下の段に記載されている。そして、この出現確率から行った算術符号化結果が、符号化データ42-4の4番目に4番目のレコードに対応して示されている。算術符号化のレンジの値が変化していることが分かる。0.1(2進)=0.5(10進)であるから符号化の結果は「1」になる。
 4レコード目の符号化の後に更新された5レコード目の出現頻度と出現確率が図20Aの表40-5に示されている。表40-5においては、4レコード目で「0」が現れた箇所だけ頻度が1増加され、それぞれ、5となっている。4レコード目で新たに「1」が現れた3ビット目と5ビット目と6ビット目の箇所の頻度は、以前の値のままである。また、総レコード数41-5が6に増加されている。頻度と総レコード数から求めた出現確率が表40-5の下の段に記載されている。そして、この出現確率から行った算術符号化結果が、符号化データ42-5の5番目に5番目のレコードに対応して示されている。算術符号化のレンジの値が変化していることが分かる。0.111(2進)=0.875(10進)であるから符号化の結果は「111」になる。
 5レコード目の符号化の後に更新された6レコード目の出現頻度と出現確率が図20Bの表40-6に示されている。表40-6においては、5レコード目で「0」が現れた箇所だけ頻度が1増加されている。5レコード目で新たに「1」が現れた1ビット目と3ビット目と5ビット目の箇所の頻度は、以前の値のままである。また、総レコード数41-6が7に増加されている。頻度と総レコード数から求めた出現確率が表40-6の下の段に記載されている。そして、この出現確率から行った算術符号化結果が、符号化データ42-6の6番目に6番目のレコードに対応して示されている。算術符号化のレンジの値が変化していることが分かる。0.01(2進)=0.25(10進)であるから符号化の結果は「01」になる。
 6レコード目の符号化の後に更新された7レコード目の出現頻度と出現確率が図21Aの表40-7に示されている。表40-7においては、6レコード目で「0」が現れた箇所だけ頻度値が1増加されている。6レコード目で新たに「1」が現れた3ビット目と5ビット目の箇所の頻度は、以前の値のままである。また、総レコード数41-7が8に増加されている。頻度と総レコード数から求めた出現確率が表40-7の下の段に記載されている。そして、この出現確率から行った算術符号化結果が、符号化データ42-7の7番目に7番目のレコードに対応して示されている。算術符号化のレンジの値が変化していることが分かる。0.01(2進)=0.25(10進)であるから符号化の結果は「01」になる。
 7レコード目の符号化の後に更新された8レコード目の出現頻度と出現確率が図21Bの表40-8に示されている。表40-8においては、7レコード目で「0」が現れた箇所だけ頻度が1増加されている。7レコード目で新たに「1」が現れた3ビット目と5ビット目の箇所の頻度は、以前の値のままである。また、総レコード数41-8が9に増加されている。頻度と総レコード数から求めた出現確率が表40-8の下の段に記載されている。そして、この出現確率から行った算術符号化結果が、符号化データ42-8の8番目に8番目のレコードに対応して示されている。算術符号化のレンジの値が変化していることが分かる。0.01(2進)=0.25(10進)であるから符号化の結果は「01」になる。
 8レコード目の符号化の後に更新された9レコード目の出現頻度と出現確率が図22Aの表40-9に示されている。表40-9においては、8レコード目で「0」が現れた箇所だけ頻度値が1増加されている。8レコード目で新たに「1」が現れた3ビット目と5ビット目の箇所の頻度は、以前の値のままである。また、総レコード数41-9が10に増加されている。頻度と総レコード数から求めた出現確率が表40-9の下の段に記載されている。そして、この出現確率から行った算術符号化結果が、符号化データ42-9の9番目に9番目のレコードに対応して示されている。算術符号化のレンジの値が変化していることが分かる。0.10101(2進)=0.65625(10進)であるから符号化の結果は「10101」になる。
 9レコード目の符号化の後に更新された10レコード目の出現頻度と出現確率が図22Bの表40-10に示されている。表40-10においては、9レコード目で「0」が現れた箇所だけ頻度が1増加されている。9レコード目で新たに「1」が現れた3ビット目と4ビット目の箇所の頻度は、以前の値のままである。また、総レコード数41-10が11に増加されている。頻度と総レコード数から求めた出現確率が表40-10の下の段に記載されている。そして、この出現確率から行った算術符号化結果が、符号化データ42-10の10番目に10番目のレコードに対応して示されている。算術符号化のレンジの値が変化していることが分かる。0.101111(2進)=0.734375(10進)であるから符号化の結果は「101111」になる。
 このように、頻度の更新、算術符号化を繰り返すことで符号化を行う。
 上記ビットごとの分割で、算術符号化を用いる場合には、以下のような効果がある。
 すなわち、レコード全体を1カラムと見做せば従来技術と同様の圧縮になるが、本実施形態の例で必要とする頻度表の大きさは8ビットのレコードをビット単位に分割した場合8+1=9であるが、従来技術では256の大きさを必要とする。なお、出現確率は頻度表から計算できるので別途記憶する必要はない。
 仮にレコード長が32ビットだとすると本実施形態の例では33、従来技術では2の32乗=4294967296になり、レコード長が長いデータではレコード全体を1カラムと見做す方法は現実的には不可能になる。分割を行った場合全体で1種類の辞書を持つ従来の圧縮技術を用いる方法よりも本実施形態の例の方法の方が高い圧縮効果が得られる。
  なお、1ビット単位に分割して、列方向に圧縮符号化する場合、以下のような効果がある。例えば、複数ビット単位に分割する場合は、分割単位のビットのパターンだけ、符号化用に置き換えるための情報を保持しておかなければいけないが、1ビット単位であると、1ビットが「1」か否かだけを保持しておけばよいので、圧縮符号化時に必要となる作業メモリの容量が少なくて済む。また、複数ビット単位に分割する場合は、分割単位ごとにシンボルの置き換えを行い、1レコード分圧縮符号化する必要があるが、1ビット単位で分割する場合には、1レコードのビット数と「1」あるいは「0」のビット数を得るのみで圧縮符号化が可能となるので、圧縮符号化を行なうためのロジックも簡単になる。
 図23A~図31Bは、本実施形態の復号化方法の処理例を示す。
 図23A、Bは、図14A~Cに示す蓄積型ハフマン符号化方法により符号化された符号化データを復号する復号化方法を説明する図である。
 事前に図14A~Cに示す蓄積型ハフマン符号化方法により符号化された符号化データを復号すること、即ち、4ビットのカラムが2つからなる8ビットのレコードを扱うことを決めておく。またハフマン符号を求める方式も取り決めておく。
 さらに復号側では事前に図23Aに示す復号辞書50-1の領域を用意する。上記の取り決めにより16(2の4乗)行2ブロックからなる表ができる。また表のa列以外の列は空欄にしておく。
 次に符号化で作成されたシンボルの発生頻度を列bに読み込む。この場合32個の整数値を読み込むことになる。この発生頻度を基に列cの出現確率を計算しハフマン木を作成しハフマン符号を列eに求めて復号辞書50-1を完成させる。ハフマン符号の計算手順は符号化と同一の手順を用いる必要がある。この復号信号50-1は、図14Bに示す符号辞書24と同一である。
 列bの発生頻度ではなく列cの出現確率を授受する方法もある。また列eのハフマン符号表を授受することもでき、この場合はハフマン符号を求める方式は事前に取り決めておく必要はない。
 次に符号化ビット列を読み込み復号辞書50-1から復号化データを求める。ハフマン符号は接頭符号であるから符号化ビット列を先頭から順に復号化することができる。特別な区切り記号は必要ない。
 図23Bは、復号辞書50-1を用いて、符号化データ51-1を復号化した復号レコード51-2を示すものである。符号化データ51-1の第1行を見ると、符号化データは「00」となっている。復号辞書50-1の列aと列eを見ると、左カラムにおいては、符号化データ「0」は、シンボル列「0010」に対応し、右カラムにおいては、符号化データ「0」は、シンボル列「1000」に対応している。従って、符号化データ「00」は、復号化後は、「00101000」となる。符号化データ51-1の第3行まで同様である。
 符号化データ51-1の第4行は「010」となっている。復号辞書50-1から、左コラムでは、「01」という符号は存在しないので、左コラムの符号化データとして「0」を取る。これは、復号化後は「0010」に対応する。右コラムの符号化データは「10」となるので、復号辞書50-1を見ると、符号化後は「1100」となる。従って、復号化後のシンボル列は、「00101100」となる。以下同様にして、符号化データ51-1を復号化することが出来る。
 図24A~図26Bは、図15A~図17Bに示す適応型ハフマン符号化方法により符号化された符号化データを復号する復号化方法を説明する図である。
 事前に図15A~図17Bに示す適応型ハフマン符号化方法により符号化された符号化データを復号すること、即ち、4ビットのカラムが2つからなる8ビットのレコードを扱うことを決めておく。またハフマン符号を求める方式も取り決めておく。
 復号側では事前に図24Aに示す表50-2を用意する。上記の取り決めにより16(2の4乗)行2ブロックからなる表ができる。この方法では事前に頻度表の授受を行わないので発生頻度の初期値は符号化時と同様にラプラススムージングを用いてすべて「1」としてハフマン符号を計算する。結果として、図15Aに示す初期状態の符号化表30-1と同一の表が作成される。
 ここで最初の符号化データ「00101000」を領域51-2に読み込んだ時点で表50-2のe列から対応する符号を求めればa列が復号化データである。これを左のカラムと右のカラムについて行い、2つの復号化データを表51-3上で結合することにより、符号化前のレコードを復号することができる。ハフマン符号は接頭符号であるから符号化ビット列を先頭から順に復号化することができるので、特別な区切り記号は必要ない。
 左カラムの復号化データは「0010」、右カラムの復号化データは「1000」であるから表50-2の該当する欄の頻度に1加算する。この加算した頻度を基に図24Bに示す表50-3のハフマン符号を求める。
 ここで2レコード目のデータ「010101」を読み込む。最初に左側のe列から1カラム目を復号化する。つまり、符号化データの先頭から「010」を見つけて、これが、表50-3において復号化後のデータ「0010」に対応することを取得する。続けて右側のe列から2カラム目を復号化する。つまり、符号化データの残りが「101」になっていることから、表50-3を見ると、これは、「1000」に対応することが分かる。従って、復号化後の右カラムのデータは「1000」であることを取得する。そして、左カラムと右カラムの復号化後のシンボル列を結合し、「00101000」を得る。そして、表50-3を更新する。ハフマン符号は接頭符号であるから区切り記号は必要ない。この処理を繰り返すことで復号化ができる。
 図25Aにおいては、3番目の符号化データが「001001」であるので、表50-4の左カラムから「001」が「0010」に、右カラムから「001」が「1000」に対応することが分かる。従って、3番目の復号化後シンボル列は、「00101000」となる。
 また、図25Bに示すように4番目の符号化データは「00100010」であるので、表50-5から、左カラムの「001」が「0010」に対応し、右カラムの「00010」が「1100」に対応すると分かる。従って、4番目の復号化後のシンボル列が「00101100」であることがわかる。
 図26Aに示すように、5番目の符号化データが「0000011」であるので、表50-6の左カラムから「00000」が「1010」に、右カラムから「11」が「1000」に対応することが分かる。従って、5番目の復号化後シンボル列は、「10101000」となる。
 また、6番目の符号化データは「0101」であるので、表50-7から、左カラムの「01」が「0010」に対応し、右カラムの「01」が「1000」に対応すると分かる。従って、6番目の復号化後のシンボル列が「00101000」であることがわかる。以上の処理を繰り返すことですべてのレコードの復号化を行うことができる。
 図27A~図31Bは、図18A~図22Bに示す適応型算術符号化方法により符号化された符号化データを復号する復号化方法を説明する図である。
 事前に図18A~図22Bに示す適応型算術符号化方法により符号化された符号化データを復号すること、即ち、1ビットのカラム×8カラムからなる8ビットのレコードを扱うことを決めておく。また算術符号化の方式も取り決めておく。
 復号側では事前に図27Aに示す表60-1を用意する。上述の取り決めにより8ブロックからなる表ができる。各ブロックはカラムデータが「0」の時と「1」の時の2通りが必要だが符号化の時と同様に「0」の時のみを記憶する。適応型では事前に頻度表の授受を行わないので発生頻度の初期値は符号化時と同様にラプラススムージングを用いてすべて「1」として出現確率を計算したのが図27Aに示す表60-1である。
 ここで1レコード目のデータ「00101」を領域61-2に読み込む。なお、算術符号は接頭符号ではないのでレコード区切りが判定できるプロトコルを使う必要がある。
 受信データ「00101」を2進小数と解釈すると符号化データ0.15625が得られる。このデータに基づきカラム値を判定しながら算術符号化と同様の方法でレンジの分割を行うことで表61-3に示すように符号化前のレコードである復号化データ「00101000」が得られる。
 レコード数に1加算し、この復号化データ「00101000」の「0」であるカラムの頻度に1を加算して改めて出現確率を計算したのが図27Bに示す表60-2である。
 ここで2レコード目のデータ「01」を読み込む。
 受信データ「01」を2進小数と解釈すると符号化データ0.25が得られる。このデータに基づきカラム値を判定しながら算術符号化と同様の方法でレンジの分割を行うことで復号化データ「00101000」が得られる。以下、この2番目の復号化データ取得のための処理例を念のため詳細に説明する。
 表60-2には1番目の符号化データの入力により、図27Bに示す頻度が記載されている。入力された2番目の符号化値「01」は2進小数 0.01 の小数部分であり、10進表現では0.25となる。この10進表現の値「0.25」と復号された各カラムの「0」の頻度から求めたカラム(ビット)ごとの「0」の出現確率に基づいて、ビットごとに復号化データを順次求めていく。最初のビットを復号化するときのレンジの初期値は[0,1)である。カラムごとの「0」の出現確率に従ってレンジ分割を繰り返す。分割値は「(レンジの最大 - レンジの最小)*「0」の確率 + レンジの最小」の計算式により計算される。
 まず、表60-2の最初のカラムに記載された「0」の頻度「2」とレコード数「3」から表60-2に記載されたように出現確率「0.667」を求め、上述の式により現在のレンジの分割値を求める。現在のレンジは初期値の[0,1)であるから、算出される分割値は「0.667」である。この分割値を求める処理は図5Bに示すカラム分割範囲判定手段20-1の処理に対応する。(なお、出現確率は頻度が更新された時に予め計算しておくこともできる。)
 復号されたレコードの各カラムの値は、符号値<=分割値のとき「0」、符号値>分割値のとき「1」になる。今の場合、分割値は「0.667」、符号値は「0.25」であるから、最初のカラムの復号されたビット値は「0」になる。この処理は、図5Bのカラム1復号化手段14a-1の処理に対応する。また、最初のカラムのビット値が「0」、分割値は「0.667」であるから、次のレンジを分割値より小さい範囲の[0, 0.667)とする。この処理は、図5Bのレンジ分割手段21-1の処理に対応する。
 次に表60-2の2番目のカラムの「0」の出現頻度から現在のレンジ[0, 0.667)の分割値「0.444」を求め、この分割値と符号値「0.25」の大小関係から2番目のカラムの復号されたビット値は「0」になる。また、この復号ビット値により次のレンジは[0, 0.444)になる。これらの2番目のカラムについての処理は、最初のカラムについての処理と同様に、図5Bに記載されたカラム分割範囲判定手段20-2、カラム2復号化手段14a-2及びレンジ分割手段21-2による処理対応する。
 以下同様に、に表60-2の3番目のカラムの「0」の出現頻度から現在のレンジ[0, 0.444)の分割値「0.148」を求め、この分割値と符号値「0.25」の大小関係から3番目のカラムの復号されたビット値は「1」になる。また、この復号ビット値により次のレンジは[0.148, 0.444)になる。
 上述の処理を順次カラムごとに繰り返すことで1つのレコードの復号化が完成する。
 このように、順次復号化されるカラムデータを図5Bの混合手段17aで混合して、1レコードの復号化データとする。
 次に図27Bに示す表60-2のレコード数に1加算し、2番目の復号化データ「00101000」の「0」であるカラムの頻度に1を加算して改めて出現確率を計算したものが図28Aに示す表60-3である。
 ここで3レコード目のデータ「01」を読み込む。受信データ「01」を2進小数と解釈すると符号化データ0.25が得られる。このデータに基づきカラム値を判定しながら2番目のレコードについて説明したと同様の方法でレンジの分割を行うことで復号化データ「00101000」が得られる。
 レコード数に1加算し、この復号化データ「00101000」の「0」であるカラムの頻度に1を加算して改めて出現確率を計算したのが図28Bに示す表60-4である。
 ここで4レコード目のデータ「1」を読み込む。受信データ「1」を2進小数と解釈すると符号化データ0.5が得られる。このデータに基づきカラム値を判定しながら先に説明したと同様の方法でレンジの分割を行うことで復号化データ「00101100」が得られる。
 レコード数に1加算し、この復号化データ「00101100」の「0」であるカラムの頻度に1を加算して改めて出現確率を計算したのが図29Aに示す表60-5である。
 ここで5レコード目のデータ「111」を読み込む。受信データ「111」を2進小数と解釈すると符号化データ0.875が得られる。このデータに基づきカラム値を判定しながら先に説明したと同様の方法でレンジの分割を行うことで復号化データ「10101000」が得られる。
 レコード数に1加算し、この復号化データ「10101000」の「0」であるカラムの頻度に1を加算して改めて出現確率を計算したのが図29Bに示す表60-6である。
 ここで6レコード目のデータ「01」を読み込む。受信データ「01」を2進小数と解釈すると符号化データ0.25が得られる。このデータに基づきカラム値を判定しながら先に説明したと同様の方法でレンジの分割を行うことで復号化データ「00101000」が得られる。
 レコード数に1加算し、この復号化データ「00101000」の「0」であるカラムの頻度に1を加算して改めて出現確率を計算したのが図30Aに示す表60-7である。
 ここで7レコード目のデータ「01」を読み込む。受信データ「01」を2進小数と解釈すると符号化データ0.25が得られる。このデータに基づきカラム値を判定しながら先に説明したと同様の方法でレンジの分割を行うことで復号化データ「00101000」が得られる。
 レコード数に1加算し、この復号化データ「00101000」の「0」であるカラムの頻度に1を加算して改めて出現確率を計算したのが図30Bに示す表60-8である。
 ここで8レコード目のデータ「01」を読み込む受信データ「01」を2進小数と解釈すると符号化データ0.25が得られる。このデータに基づきカラム値を判定しながら先に説明したと同様の方法でレンジの分割を行うことで復号化データ「00101000」が得られる。
 レコード数に1加算し、この復号化データ「00101000」の「0」であるカラムの頻度に1を加算して改めて出現確率を計算したのが図31Aに示す表60-9である。
 ここで9レコード目のデータ「10101」を読み込む。受信データ「10101」を2進小数と解釈すると符号化データ0.65625が得られる。このデータに基づきカラム値を判定しながら先に説明したと同様の方法でレンジの分割を行うことで復号化データ「00110000」が得られる。
 レコード数に1加算し、この復号化データ「00110000」の「0」であるカラムの頻度に1を加算して改めて出現確率を計算したのが図31Bに示す表60-10である。
 ここで10レコード目のデータ「101111」を読み込む。受信データ「101111」を2進小数と解釈すると符号化データ0.734375が得られる。このデータに基づきカラム値を判定しながら先に説明したと同様の方法でレンジの分割を行うことで復号化データ「00111100」が得られる。
 図32は、本実施形態をプログラムで実装する場合の、プログラムを実行する例示的コンピュータのハードウェア環境図である。
 例示的コンピュータ60は、例えば、CPU50、ROM51、RAM52、ネットワークインタフェース53、記憶装置56、読み書きドライブ57、入出力デバイス59を含む。これらは、バス55によって、相互に接続される。
 CPU50は、本実施形態を実装するプログラムを実行する。プログラムは、記憶装置56あるいは、可搬記録媒体58に記録され、これらから、RAM52に展開されることによって、CPU50で実行可能となる。
 記憶装置56は、例えば、ハードディスクなどである。可搬記録媒体58は、フレキシブルディスクなどの磁気ディスク、CD-ROM、DVD、Blu-Rayなどの光ディスク、ICメモリなどの半導体メモリなどを含み、読み書きドライブ57に挿入されて、可搬記録媒体58への読み書きが行われる。本実施形態においては、本実施形態を実装するプログラムが記憶装置56や可搬記録媒体58に記録されるのみならず、符号化対象の入力固定長データが一旦これらに記録されてから、RAM52に読み出されて、符号化されても良い。
 ROM51は、バス55を介しての通信や、ネットワークインタフェース53、入出力デバイス59の機能を実行するためのBIOSなどの基本プログラムが格納される。CPU50がこれらの基本プログラムを実行することにより、例示的コンピュータ60の基本機能が実現される。
 入出力デバイス59は、例示的コンピュータ60を使用するユーザからの情報の入力を受け付けたり、ユーザへの情報の出力を行ったりするために用いられる。入出力デバイス59は、例えば、キーボード、マウス、タッチパネル、ディスプレイ、プリンタ等を含む。
 ネットワークインタフェース53は、例示的コンピュータ60がネットワーク54を介して、他のコンピュータやネットワーク装置等と通信を行うために用いられる。本実施形態においては、本実施形態を実装するプログラムが、ネットワーク54を介して、記憶装置56あるいは可搬記録媒体58に記録されることが出来る。また、ネットワーク54に接続された他のコンピュータやネットワーク装置上で、本実施形態を実装するプログラムを実行し、その入出力データの送受信を、ネットワーク53を介して行ってもよい。更に、符号化されるべき固定長データは、ネットワーク54に接続された、センサを有する端末から送信されてくることが出来る。
 ネットワーク54は、有線ネットワーク、無線ネットワークなどコンピュータ同士あるいはコンピュータとネットワーク装置との間で通信を行うことができるものであればいずれのものであってもよい。一例では、ネットワーク54は、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)、固定電話ネットワーク、携帯電話ネットワーク、アドホックネットワーク、VPN(Virtual Private Network)、センサネットワークなどを含むことが出来る。
 以上説明したように、本発明の一側面による本実施形態においては、固定長データの固定長ビット列が、複数の決められたフィールドに記述される異なる意味を持つデータから構成され、固定長データごとに、同じ位置にあるフィールドに記述されるデータが同じ種類のデータである場合に、固定長データの固定長ビット列を任意のビット数のカラムに分割し、カラム相互には個別に、カラム方向に連続して符号化することにより、圧縮率が従来の符号化方法より高い圧縮符号化を実現することが出来る。
 圧縮率の向上の例としては、本発明者による本実施形態を利用した圧縮符号化装置の試作機によれば、70,016バイト、560,128ビットの元データに対し、13,532バイト、94,000ビット(パッディングビットを含まず)まで圧縮することが出来た。gzipが14,464バイト、115,712ビットの圧縮、bzip2が12,985バイト、103,880ビットの圧縮であったことから、本実施形態の圧縮符号化方法の有効性が理解できる。
 また、本実施形態の符号化装置は、FPGA(Field Programmable Gate Array)などのハードウェアによって実装することも出来る。
 例えば、本実施形態の符号化装置は、一部をハードウェアで、他の部分をソフトウェアで、ハードウェアとソフトウェアを組み合わせて実現することも出来る。
 また、上記各実施形態は、相互に独立に、あるいは、相互に組み合わされて実現されることが出来る。
 上記実施形態において、適応型符号化方法を用いる実施形態においては、逐次圧縮符号化することができ、一旦データをまとめて格納する必要が無いので、リアルタイムに符号化を実行することが出来る。上記実施形態をリアルタイムの符号化に適用する場合、順次入力される所定数のレコードを仮想的に表データとして、列方向に圧縮することとなる。
1   センサネットワーク
2   センサ
3   ゲートウェイ
4   処理装置
10、10a、16   分割手段
11-1~11-m、11a-1~11a-m   カラム1~mレジスタ
12-1~12-m   カラム1~m符号化手段
12a―1~12a-m、20-1~20-m   カラム1~mカラム分割範囲判定手段
13、17、17a   混合手段
14-1~14-m、14a-1~14a-m   カラム1~m復号化手段
15-1~15-m   カラム1~m頻度表、符号化表
18-1~18-m、21-1~21-m   レンジ分割手段
19   符号化手段
50   CPU
51   ROM
52   RAM
53   ネットワークインタフェース
54   ネットワーク
55   バス
56   記憶装置
57   読み書きドライブ
58   可搬記録媒体
59   入出力デバイス
 

Claims (17)

  1.  送信元から順次送信される複数のデータの内の同一属性のデータが記述される1以上のフィールドを含む固定長ビット列からなるレコードを、2以上の所定数一時的に蓄積する蓄積ステップと、
     前記2以上の所定数のレコードを、所定のビット幅のカラムに、前記フィールドの境界とは無関係に分割する分割ステップと、
     前記2以上の所定数のレコードにわたって同一位置のカラムにおけるビット値の出現確率をカラムごとに求め、該出現確率に基づいてエントロピー符号化方法により2以上の所定数の前記レコードを符号化する符号化ステップと、
     を含み、
     前記蓄積ステップ、前記分割ステップ及び前記符号化ステップを繰り返すことを特徴とするデータ圧縮符号化方法。
  2.  前記所定のビット幅のカラムに分割することは、ビット幅1のカラムに分割することである、請求項1に記載のデータ圧縮符号化方法。
  3.  請求項1に記載のデータ圧縮符号化方法によって圧縮符号化されたデータを復号化する復号化方法であって、
     前記圧縮符号化されたデータをカラム毎にエントロピー符号の復号化方法により復号することと、
      該カラムごとに復号された復号化データを結合することと、
    を含む復号化方法。
  4.  請求項1に記載のデータ圧縮符号化方法をコンピュータに実行させるプログラム。
  5.  請求項3に記載の復号化方法をコンピュータに実行させるプログラム。
  6.  送信元から順次送信される複数のデータの内の同一属性のデータが記述される1以上のフィールドを含む固定長ビット列からなるレコードを、2以上の所定数一時的に蓄積する蓄積手段と、
     前記2以上の所定数のレコードを、所定のビット幅のカラムに、前記フィールドの境界とは無関係に分割する分割手段と、
     前記2以上の所定数のレコードにわたって同一位置のカラムにおけるビット値の出現確率をカラムごとに求め、該出現確率に基づいてエントロピー符号化方法により2以上の所定数の前記レコードを符号化する符号化手段と、
     を含み、
     前記蓄積手段、前記分割手段及び前記符号化手段による処理を繰り返すことを特徴とするデータ圧縮符号化装置。
  7.  請求項6に記載のデータ圧縮符号化装置によって圧縮符号化されたデータを復号化する復号化装置において、
     前記圧縮符号化されたデータをカラム毎にエントロピー符号の復号化方法により復号する復号化手段と、
      該カラムごとに復号された復号化データを結合する混合手段と、
    を含む復号化装置。
  8.  送信元から順次送信されるデータの内の同一属性のデータが記述される1以上のフィールドから構成される固定長ビット列からなるレコードを圧縮符号化して出力するデータ圧縮符号化方法において、
    前記レコードを所定のビット幅のカラムに分割する分割ステップと、
     現時点で入力されるレコードについて、その時点までに入力済みの複数のレコードにわたって同一位置のカラムにおけるビット値の出現確率をカラムごとに求めたものと前記現時点で入力されるレコードの対応するカラムのビット値から、前記現時点で入力されるレコードの対応するカラムの出現確率を求め、該出現確率に基づいて適応型エントロピー符号化方法により前記レコードを構成する各カラムを符号化する符号化ステップと、
    前記符号化された各カラムを結合して出力する出力ステップを含み、
    前記分割ステップ、前記符号化ステップ及び前記出力ステップを所定数のレコード分繰り返すことを特徴とするデータ圧縮符号化方法。
  9.  前記カラムのビット幅は、カラムごとに異なる、請求項8に記載のデータ圧縮符号化方法。
  10.  前記カラムのビット幅は、前記フィールドのビット幅である、請求項8に記載のデータ圧縮符号化方法。
  11.  前記カラムのビット幅は、前記フィールドのビット幅とは無関係である、請求項8に記載のデータ圧縮符号化方法。
  12.  前記カラムのビット幅は、1ビットである、請求項8に記載のデータ圧縮符号化方法。
  13.  請求項8に記載のデータ圧縮符号化方法によって圧縮符号化され出力されたデータを復号化する復号化方法であって、
     前記圧縮符号化されたデータを入力しカラム毎に適応型エントロピー符号の復号化方法により復号することと、
     該カラムごとに復号された復号化データを結合することと、
    を含む復号化方法。
  14.  請求項8に記載のデータ圧縮符号化方法をコンピュータに実行させるプログラム。
  15.  請求項13に記載の復号化方法をコンピュータに実行させるプログラム。
  16.  送信元から順次送信されるデータの内の同一属性のデータが記述される1以上のフィールドから構成される固定長ビット列からなるレコードを圧縮符号化して出力するデータ圧縮符号化装置において、
    前記レコードを所定のビット幅のカラムに分割する分割手段と、
     現時点で入力されるレコードについて、その時点までに入力済みのレコードにわたって同一位置のカラムにおけるビット値の出現確率をカラムごとに求めたものと前記現時点で入力されるレコードの対応するカラムのビット値から、前記現時点で入力されるレコードの対応するカラムの出現確率を求め、該出現確率に基づいて適応型エントロピー符号化方法により前記レコードを構成する各カラムを符号化する符号化手段と、
    該符号化された前記各カラムを結合して出力する出力手段を含み、
    前記分割手段、前記符号化手段及び前記出力手段による処理を所定数のレコード分繰り返すことを特徴とするデータ圧縮符号化装置。
  17.  請求項16に記載のデータ圧縮符号化装置によって圧縮符号化され出力されたデータを復号化する復号化装置において、
     前記圧縮符号化されたデータを入力しカラム毎に適応型エントロピー符号の復号化方法により復号する復号化手段と、
     該カラムごとに復号された復号化データを結合する混合手段と、
    を含む復号化装置。
PCT/JP2017/025955 2016-07-25 2017-07-18 データ圧縮符号化方法、復号化方法、その装置、及び、そのプログラム WO2018021094A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP20197054.8A EP3771104A1 (en) 2016-07-25 2017-07-18 Data compression coding method, decoding method, apparatus for the methods, and program for the methods
CN201780045701.9A CN109478893B (zh) 2016-07-25 2017-07-18 数据压缩编码方法、其装置及存储介质
EP17834102.0A EP3490153B1 (en) 2016-07-25 2017-07-18 Data compression coding method, device therefor, and program therefor
US16/235,741 US10547324B2 (en) 2016-07-25 2018-12-28 Data compression coding method, apparatus therefor, and program therefor

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016-145397 2016-07-25
JP2016145397A JP6336524B2 (ja) 2016-07-25 2016-07-25 データ圧縮符号化方法、その装置、及び、そのプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/235,741 Continuation US10547324B2 (en) 2016-07-25 2018-12-28 Data compression coding method, apparatus therefor, and program therefor

Publications (1)

Publication Number Publication Date
WO2018021094A1 true WO2018021094A1 (ja) 2018-02-01

Family

ID=61015968

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/025955 WO2018021094A1 (ja) 2016-07-25 2017-07-18 データ圧縮符号化方法、復号化方法、その装置、及び、そのプログラム

Country Status (5)

Country Link
US (1) US10547324B2 (ja)
EP (2) EP3490153B1 (ja)
JP (1) JP6336524B2 (ja)
CN (1) CN109478893B (ja)
WO (1) WO2018021094A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020021177A (ja) * 2018-07-30 2020-02-06 富士通株式会社 情報処理装置、分散処理システム、および分散処理プログラム

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102552833B1 (ko) * 2018-05-28 2023-07-06 삼성에스디에스 주식회사 데이터 엔트로피 기반의 데이터 프로세싱 방법
EP3817236A1 (en) * 2019-11-04 2021-05-05 Samsung Electronics Co., Ltd. Neural network data processing method and apparatus
CN111181568A (zh) * 2020-01-10 2020-05-19 深圳花果公社商业服务有限公司 数据压缩装置及方法、数据解压装置及方法
US20230214367A1 (en) * 2022-01-05 2023-07-06 AVAST Software s.r.o. System and method for data compression and decompression
CN115441878A (zh) * 2022-08-05 2022-12-06 海飞科(南京)信息技术有限公司 针对文本压缩的fse码表快速建立方法
CN115078892B (zh) * 2022-08-19 2022-11-01 深圳天川电气技术有限公司 一种单机大传动变频器状态远程监测系统
DE102022003682A1 (de) * 2022-10-05 2024-04-11 Mercedes-Benz Group AG Verfahren zur Kompression und Dekompression von Log-Dateien und informationstechnisches System
CN115658628B (zh) * 2022-12-19 2023-03-21 武汉惠强新能源材料科技有限公司 用于mes系统的生产数据智能管理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007221280A (ja) * 2006-02-15 2007-08-30 Hitachi Zosen Corp データの圧縮方法および復元方法、並びにプラント設備における状態変化検出方法
JP2010026884A (ja) * 2008-07-23 2010-02-04 Hitachi Ltd データ圧縮処理を伴うデータ管理方法
JP2011048514A (ja) * 2009-08-26 2011-03-10 Panasonic Electric Works Co Ltd データ管理装置及び認証システム
WO2013175909A1 (ja) * 2012-05-25 2013-11-28 クラリオン株式会社 データ解凍/圧縮装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2587134B2 (ja) * 1990-12-17 1997-03-05 日本電信電話株式会社 サブバンド符号化方式
JP2000305822A (ja) * 1999-04-26 2000-11-02 Denso Corp データベース管理装置,データベースレコード抽出装置,データベース管理方法及びデータベースレコード抽出方法
US6748520B1 (en) * 2000-05-02 2004-06-08 3Com Corporation System and method for compressing and decompressing a binary code image
JP4143471B2 (ja) * 2003-05-21 2008-09-03 キヤノン株式会社 画像符号化方法、画像符号化装置及び記録装置
JP2006100973A (ja) * 2004-09-28 2006-04-13 Nomura Research Institute Ltd データ圧縮装置、及びデータ伸長装置
JP4434155B2 (ja) * 2006-02-08 2010-03-17 ソニー株式会社 符号化方法、符号化プログラムおよび符号化装置
JP4846381B2 (ja) 2006-02-08 2011-12-28 富士通セミコンダクター株式会社 帯域割り当て方法、通信制御装置及び通信装置
JP2007214998A (ja) 2006-02-10 2007-08-23 Fuji Xerox Co Ltd 符号化装置、復号化装置、符号化方法、復号化方法、及びプログラム
US20090006399A1 (en) * 2007-06-29 2009-01-01 International Business Machines Corporation Compression method for relational tables based on combined column and row coding
US7609179B2 (en) * 2008-01-08 2009-10-27 International Business Machines Corporation Method for compressed data with reduced dictionary sizes by coding value prefixes
US7827187B2 (en) * 2008-04-04 2010-11-02 International Business Machines Corporation Frequency partitioning: entropy compression with fixed size fields
US7683809B2 (en) * 2008-04-11 2010-03-23 Aceurity, Inc. Advanced lossless bit coding
JP5169495B2 (ja) * 2008-05-30 2013-03-27 東洋製罐株式会社 圧縮成形金型及び圧縮成形装置
US8108361B2 (en) * 2008-07-31 2012-01-31 Microsoft Corporation Efficient column based data encoding for large-scale data storage
JP5180782B2 (ja) * 2008-11-11 2013-04-10 日本電信電話株式会社 並列分散情報源符号化システム及び並列分散情報源符号化・復号化方法
EP2362657B1 (en) * 2010-02-18 2013-04-24 Research In Motion Limited Parallel entropy coding and decoding methods and devices
US8487791B2 (en) 2010-02-18 2013-07-16 Research In Motion Limited Parallel entropy coding and decoding methods and devices
US8519871B2 (en) * 2010-10-01 2013-08-27 Research In Motion Limited Methods and devices for parallel encoding and decoding using a bitstream structured for reduced delay
HUE046377T2 (hu) 2011-01-14 2020-03-30 Ge Video Compression Llc Entrópia kódoló és dekódoló séma
US10816579B2 (en) * 2012-03-13 2020-10-27 Informetis Corporation Sensor, sensor signal processor, and power line signal encoder
US8933829B2 (en) * 2013-09-23 2015-01-13 International Business Machines Corporation Data compression using dictionary encoding
US10235377B2 (en) * 2013-12-23 2019-03-19 Sap Se Adaptive dictionary compression/decompression for column-store databases
CN104156990B (zh) * 2014-07-03 2018-02-27 华南理工大学 一种支持特大型数据窗口的无损压缩编码方法及系统
CN104462524A (zh) * 2014-12-24 2015-03-25 福建江夏学院 一种物联网数据压缩存储方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007221280A (ja) * 2006-02-15 2007-08-30 Hitachi Zosen Corp データの圧縮方法および復元方法、並びにプラント設備における状態変化検出方法
JP2010026884A (ja) * 2008-07-23 2010-02-04 Hitachi Ltd データ圧縮処理を伴うデータ管理方法
JP2011048514A (ja) * 2009-08-26 2011-03-10 Panasonic Electric Works Co Ltd データ管理装置及び認証システム
WO2013175909A1 (ja) * 2012-05-25 2013-11-28 クラリオン株式会社 データ解凍/圧縮装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020021177A (ja) * 2018-07-30 2020-02-06 富士通株式会社 情報処理装置、分散処理システム、および分散処理プログラム
JP7047651B2 (ja) 2018-07-30 2022-04-05 富士通株式会社 情報処理装置、分散処理システム、および分散処理プログラム

Also Published As

Publication number Publication date
CN109478893B (zh) 2023-05-09
CN109478893A (zh) 2019-03-15
EP3490153A1 (en) 2019-05-29
US20190140657A1 (en) 2019-05-09
US10547324B2 (en) 2020-01-28
JP6336524B2 (ja) 2018-06-06
EP3490153B1 (en) 2023-11-01
EP3490153A4 (en) 2020-03-11
EP3771104A1 (en) 2021-01-27
JP2018022933A (ja) 2018-02-08

Similar Documents

Publication Publication Date Title
JP6336524B2 (ja) データ圧縮符号化方法、その装置、及び、そのプログラム
Goyal et al. Deepzip: Lossless data compression using recurrent neural networks
KR100808664B1 (ko) 패리티 검사행렬 저장 방법 및 이를 이용한 블록 저밀도패리티 검사 부호화 방법 및 장치
JP5221047B2 (ja) 圧縮率の向上のために改善されたコンテキストモデル選択を使用するcabac符号化方法及び装置、並びにcabac復号化方法及び装置
US6061398A (en) Method of and apparatus for compressing and restoring data
JP4801776B2 (ja) データ圧縮
CN110021369B (zh) 基因测序数据压缩解压方法、系统及计算机可读介质
CN104468044A (zh) 应用于网络传输中的数据压缩的方法及装置
JP5656593B2 (ja) 符号化データを復号する装置及び方法
WO2019076177A1 (zh) 基因测序数据压缩预处理、压缩、解压方法、系统及计算机可读介质
CN112398484A (zh) 一种编码方法及相关设备
CN110868223A (zh) 一种哈夫曼编码的数值运算实现方法及电路
JP2018074604A (ja) データ圧縮符号化方法、復号化方法、その装置、及び、そのプログラム
JP6336636B2 (ja) データ圧縮符号化方法、その装置、及び、そのプログラム
JP4758494B2 (ja) ビット長を符号に変換する回路及び方法
ES2311637T3 (es) Procedimiento y dispositivo para procesar simbolos binarios generados por una fuente de datos, un medio legible por un ordenador; un elemento de programa de ordenador.
Shoba et al. A Study on Data Compression Using Huffman Coding Algorithms
Kaipa et al. System for random access dna sequence compression
JP5959474B2 (ja) 符号装置、復号装置、方法、及びプログラム
JP5642651B2 (ja) 復号装置、符号化復号システム、符号化復号方法、及び復号プログラム
Challa et al. A novel compression technique for DNA sequence compaction
Singla et al. Data compression modelling: Huffman and Arithmetic
Hu et al. The case for error-bounded lossy floating-point data compression on interconnection networks
Wei et al. Efficient VLSI Huffman encoder implementation and its application in high rate serial data encoding
CN109698704B (zh) 比对型基因测序数据解压方法、系统及计算机可读介质

Legal Events

Date Code Title Description
DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17834102

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2017834102

Country of ref document: EP

Effective date: 20190225