WO2016132430A1 - データ圧縮装置、データ伸張装置、データ圧縮方法、データ伸張方法及びプログラム - Google Patents
データ圧縮装置、データ伸張装置、データ圧縮方法、データ伸張方法及びプログラム Download PDFInfo
- Publication number
- WO2016132430A1 WO2016132430A1 PCT/JP2015/054125 JP2015054125W WO2016132430A1 WO 2016132430 A1 WO2016132430 A1 WO 2016132430A1 JP 2015054125 W JP2015054125 W JP 2015054125W WO 2016132430 A1 WO2016132430 A1 WO 2016132430A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- unit
- integers
- data
- code
- bits
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6017—Methods or arrangements to increase the throughput
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4031—Fixed length to variable length coding
- H03M7/4037—Prefix coding
- H03M7/4087—Encoding of a tuple of symbols
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/46—Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6064—Selection of Compressor
- H03M7/607—Selection between different types of compressors
Definitions
- the present invention relates to a data compression device, a data expansion device, a data compression method, a data expansion method, and a program.
- the present invention relates to a data compression apparatus, a data expansion apparatus, a data compression method, a data expansion method, and a program that use a method of dividing and encoding an integer.
- a coding method for reversibly compressing a fixed-length integer string first a prediction value for the encoding target data is obtained, then a residual between the prediction value and the encoding target data is obtained, and a data sequence comprising the residuals A method is used to encode the data in an appropriate manner. That is, this method generates a prediction value for obtaining a prediction value for the encoding target data, generates a residual for calculating a residual between the prediction value and the encoding target data, and encodes a data sequence including the residual by an appropriate method. Consists of residual coding.
- a data sequence composed of a small value, that is, a value close to 0, can be obtained compared to the actual data sequence by interposing a step for obtaining a residual. Therefore, according to this method, the residual encoding on the encoding target data is likely to be effective, and the compression effect is often increased.
- ⁇ As an example in generating predicted values and residuals, there is a method of taking the difference from the previous value as the residual. Specifically, the previous value is selected as the predicted value, and a simple integer subtraction value is adopted as the residual as the residual generation method. More generally, a method such as linear prediction is selected as the predicted value.
- residual encoding various methods such as gamma encoding and delta encoding have been proposed. These residual encoding methods are roughly classified into two methods: a method for improving the compression rate and a method for improving the processing speed such as the compression speed and the decompression speed.
- the integer value is defined as a first integer composed of upper bits and a second integer composed of lower bits.
- encoding methods for dividing integers are collectively referred to as upper and lower bit division methods.
- the first integer consisting of the upper bits is encoded and output by an appropriate variable length code such as a gamma code or a delta code.
- the second integer consisting of the lower bits is output as fixed-length binary data without being encoded.
- the Golomb-Rice code employs an alpha code as the first integer encoding method.
- Patent Document 1 discloses a first integer encoding method composed of upper bits and a method of increasing the compression rate by dynamically determining the upper bit and lower bit division positions.
- Patent Document 2 discloses an image compression method using an upper and lower bit division method.
- the upper and lower bit division method is effective when the fluctuation of the lower bits is large due to noise mixed in the integer sequence to be compressed.
- the lower bit mixed with noise is difficult to compress, so it is output as fixed-length binary data without compression, and only the upper bit, which is relatively easy to compress, is compressed. It is a natural idea. As shown in FIG. 8, when the integer string is divided into upper bits and lower bits, the upper bits are easy to compress and the lower bits are difficult to compress.
- a method proposed for solving such a problem is a method of generating and outputting codes in byte units or word units.
- the word is a unit of a fixed length, and indicates a unit such as 2 bytes or 4 bytes, for example.
- compression methods for generating codes in byte units and word units are referred to as byte unit processing methods and word unit processing methods, respectively.
- Non-Patent Document 1 a coding method such as Variable-Byte (Non-Patent Document 1) is well known.
- word unit processing method Simple9 (Non-Patent Document 2), PForDelta (Non-Patent Document 3), and the like are known.
- gamma codes, delta codes, Golomb-Rice codes, etc. integers are encoded one by one.
- a plurality of integers are encoded together and the result is generated in word units.
- Compressibility and processing speed are in a trade-off relationship.
- the compression rate is improved, but the processing speed is reduced.
- the processing speed is improved, but the compression rate is lowered.
- the present invention realizes a reversible compression method of an integer sequence that can improve the processing speed while maintaining a high compression rate by the upper and lower bit division method by making both the upper and lower bit division method and the word unit processing method compatible. For the purpose.
- the data compression apparatus is A data acquisition unit that acquires n integers from encoded data including a plurality of integers represented by binary data of unit bit number that is the number of bits of a processing unit; An integer dividing unit that divides each integer of the n integers acquired by the data acquisition unit, wherein each integer of the n integers is represented by a lower bit of the number of divided bits And n first integers represented by upper bits obtained by removing the lower bits from the integers, and output n first integers and n second integers.
- the data compression apparatus encodes the n first integers output from the integer dividing unit, and encodes the n first integers to obtain a bit number that is a natural number multiple of the unit bit number.
- a first encoding unit that outputs the first code represented by the binary data.
- the data compression apparatus encodes the n second integers output from the integer dividing unit, and outputs a result obtained by encoding the n second integers as a second code.
- FIG. 1 is a block configuration diagram of a data compression apparatus according to Embodiment 1.
- FIG. 1 is a block configuration diagram of a data decompression apparatus according to Embodiment 1.
- FIG. 2 is a hardware configuration diagram of the data compression device and the data decompression device according to the first embodiment.
- FIG. 3 is a flowchart of a data compression method and data compression process of the data compression apparatus according to the first embodiment.
- FIG. 3 is a flowchart of a data decompression method and a data decompression process of the data decompression apparatus according to the first embodiment.
- the data compression method of the data compression device which concerns on Embodiment 2, and the flowchart of a data compression process.
- FIG. 10 is a flowchart of a data decompression method and data decompression processing of the data decompression apparatus according to the second embodiment. Explanatory drawing about the bit division
- Embodiment 1 FIG. *** Explanation of configuration *** A block configuration of the data compression apparatus 100 according to the present embodiment will be described with reference to FIG.
- the number of unit bits that is the number of bits of a processing unit is L bits.
- the number of unit bits is also called a word or byte.
- the number of unit bits is also referred to as a word unit that is the length of a word.
- the bit length of binary data representing an integer is L bits as in the number of unit bits.
- L is a value such as 16, 32, or 64, but is not limited to these values.
- the present embodiment can be applied to an integer having an arbitrary bit length.
- the data compression apparatus 100 acquires the encoded data 11 to be encoded, encodes the acquired encoded data 11, and stores the encoded result in the encoded data 12.
- the encoded data 11 is an ordered integer sequence. The number of integers included in the encoded data 11 is arbitrary.
- the encoded data 11 is also referred to as input data.
- the data compression apparatus 100 includes a data acquisition unit 101, an integer division unit 102, an encoding adjustment unit 103, a first encoding unit 104, a first result output unit 105, a second encoding unit 106, and a second result.
- An output unit 107 is provided.
- a storage unit 1201 is connected to the data compression apparatus 100.
- the storage unit 1201 stores encoded data 12.
- the data acquisition unit 101 reads an integer included in the encoded data 11.
- the data acquisition unit 101 acquires n integers from the encoded data 11 including a plurality of integers represented by binary data having a unit bit number that is the number of bits of a processing unit, where n is a natural number.
- the data acquisition unit 101 is also referred to as an input unit.
- the integer dividing unit 102 converts the integer acquired by the data acquiring unit 101 into a first integer 1021 composed of upper (Lb) bits and a second integer composed of lower b bits. Divide into integers 1022. That is, the integer dividing unit 102 divides each integer of n integers acquired by the data acquiring unit 101. The integer dividing unit 102 represents each integer of n integers by a second integer 1022 represented by lower bits of the divided bit number b and upper bits obtained by removing the lower bits from each integer of n integers. The first integer 1021 is divided. Then, the integer dividing unit 102 outputs n first integers and n second integers.
- the encoding adjustment unit 103 determines the number n of integers to be encoded at a time.
- the encoding adjustment unit 103 is also referred to as a determination unit 1031 and an encoding unit adjustment unit.
- the determination unit 1031 that is, the encoding adjustment unit 103 determines k as a natural number and a number k times the unit bit number L as n.
- the first encoding unit 104 encodes the n first integers 1021 output from the integer dividing unit 102.
- the first encoding unit 104 outputs the result of encoding the n first integers 1021 as a first code 1041 represented by binary data having a bit number that is a natural number multiple of the unit bit number L.
- the first encoding unit 104 encodes the n first integers 1021 determined by the encoding adjustment unit 103.
- the first encoding unit 104 uses a word unit processing method such as Simple 9 for generating a code result in units of words during encoding.
- the first encoding unit 104 outputs a first code 1041 obtained by encoding n first integers 1021.
- the data size of the first code 1041 output from the first encoding unit 104 is a multiple of L bits in word units due to the nature of the first encoding unit 104.
- the first encoding unit 104 is also referred to as a first integer encoding unit.
- the first result output unit 105 adds the first code 1041 generated by the first encoding unit 104 to the encoded data 12.
- the first result output unit 105 is also referred to as a first encoding result output unit.
- the second encoding unit 106 encodes the n second integers 1022 determined by the encoding adjustment unit 103 and outputs the encoded second integers 1022 as second codes 1061. That is, the second encoding unit 106 encodes the n second integers 1022 output from the integer dividing unit 102 and encodes the n second integers 1022 as the second code 1061. Output.
- the second code 1061 is represented by binary data having the number of bits obtained by multiplying the divided bit number b by n. That is, the second encoding unit 106 generates n b-bit integers as n ⁇ b-bit fixed-length binary data.
- the second encoding unit 106 is also referred to as a second integer encoding unit.
- the encoding result by the second encoding unit 106 is not generated in units of words. That is, the number of bits (n ⁇ b) of the second code 1061 may not be a multiple of L.
- a second code 1061 represented by binary data of the number of bits can be output.
- the second result output unit 107 adds the second code 1061 generated by the second encoding unit 106 to the encoded data 12. According to the present embodiment, due to the nature of the second encoding unit 106, the data size of the output second code 1061 is a multiple of L bits in word units.
- the second result output unit 107 is also referred to as a second encoding result output unit.
- the storage unit 1201 stores the first code 1041 output by the first encoding unit 104 and the second code 1061 output by the second encoding unit 106 continuously after the first code 1041.
- the first code 1041 and the second code 1061 are described alternately in succession.
- the encoding adjustment unit 103 selects a multiple (k ⁇ L) of the word unit L as the number n of integers to be encoded at one time.
- k is a parameter determined in advance by the user of the data compression apparatus 100.
- the size of the second code 1061 generated by the second encoding unit 106 is (k ⁇ L ⁇ b) bits, that is, It is a multiple of L bits in word units. Therefore, the second result output unit 107 can output the second code 1061 having a multiple of L bits per word without consuming extra bit space.
- the data decompression device 200 is a device that decompresses the encoded data 12 that has been encoded by the data compression device 100 and includes the first code 1041 and the second code 1061.
- the data decompression device 200 receives the encoded data 12 and outputs the encoded data 11 that is the original data 22 before being compressed by the data compression device 100.
- the data decompression apparatus 200 includes an encoded data acquisition unit 201, a first decoding unit 202, a second decoding unit 204, an integer combining unit 205, and an output unit 206.
- the first decoding unit 202 includes a first decoding processing unit 2021 and an end determination unit 203.
- the encoded data acquisition unit 201 reads data to be decoded from the encoded data 12. As described above, the encoded data 12 includes the first code 1041 and the second code 1061 that are alternately described. Therefore, the encoded data acquisition unit 201 reads the first code 1041 and the second code 1061 alternately.
- the encoded data acquisition unit 201 is also referred to as an input unit.
- the first decoding unit 202 decodes the first code 1041 read from the encoded data 12 into a plurality of first integers 1021. That is, the first decoding unit 202 acquires the first code 1041 and decodes the acquired first code 1041 into n first integers 1021. Due to the nature of the data compression apparatus 100, the first decoding unit 202 can perform decoding processing with L bits in word units.
- the first decoding unit 202 is also referred to as a first integer decoding unit.
- the first decoding processing unit 2021 executes a first integer decoding process for one word of the first code 1041 acquired from the encoded data acquisition unit 201.
- the end determination unit 203 corresponds to the encoding adjustment unit 103 in the data compression apparatus 100.
- the end determination unit 203 determines whether or not the decoding of n first integers has been completed by the number n of integers to be compressed at a time set by the encoding adjustment unit 103. If the decoding of the n first integers has not been completed, the end determination unit 203 continues the first integer decoding process by the first decoding processing unit 2021. Further, when the decoding of the n first integers has been completed, the end determination unit 203 proceeds to the decoding process of the second integer.
- the end determination unit 203 is also referred to as a first integer decoding process end determination unit.
- the second decoding unit 204 decodes the second code 1061 read from the encoded data 12 into a plurality of second integers. That is, the second decoding unit 204 acquires the second code 1061 from the encoded data 12 and decodes the acquired second code 1061 into n second integers 1022. Due to the nature of the data compression apparatus 100, the second decoding unit 204 can perform a decoding process in units of words.
- the second decoding unit 204 is also referred to as a second integer decoding unit.
- the integer combining unit 205 recombines the decoded first and second integers, and decodes the original integer data. That is, the integer combining unit 205 generates n integers based on the n first integers 1021 and the n second integers 1022.
- the output unit 206 outputs the decoding result obtained by the integer combining unit 205 as the original data 22.
- the original data 22 is the encoded data 11 before being encoded.
- the data compression apparatus 100 and the data expansion apparatus 200 are computers.
- the data compression device 100 and the data decompression device 200 include hardware such as a processor 901, an auxiliary storage device 902, a memory 903, a communication device 904, an input interface 905, and a display interface 906.
- the processor 901 is connected to other hardware via the signal line 910, and controls these other hardware.
- the input interface 905 is connected to the input device 907.
- the display interface 906 is connected to the display 908.
- the processor 901 is an IC (Integrated Circuit) that performs processing.
- the processor 901 is, for example, a CPU (Central Processing Unit), a DSP (Digital Signal Processor), or a GPU (Graphics Processing Unit).
- the auxiliary storage device 902 is, for example, a ROM (Read Only Memory), a flash memory, or an HDD (Hard Disk Drive).
- the memory 903 is, for example, a RAM (Random Access Memory).
- the communication device 904 includes a receiver 9041 that receives data and a transmitter 9042 that transmits data.
- the communication device 904 is, for example, a communication chip or a NIC (Network Interface Card).
- the input interface 905 is a port to which the cable 911 of the input device 907 is connected.
- the input interface 905 is, for example, a USB (Universal Serial Bus) terminal.
- the display interface 906 is a port to which the cable 912 of the display 908 is connected.
- the display interface 906 is, for example, a USB terminal or an HDMI (registered trademark) (High Definition Multimedia Interface) terminal.
- the input device 907 is, for example, a mouse, a keyboard, or a touch panel.
- the display 908 is, for example, an LCD (Liquid Crystal Display).
- the auxiliary storage device 902 includes the data acquisition unit 101, the integer division unit 102, the encoding adjustment unit 103, the first encoding unit 104, and the first result output unit illustrated in FIG. 105, a program for realizing the functions of the second encoding unit 106 and the second result output unit 107 is stored.
- the data acquisition unit 101, the integer division unit 102, the encoding adjustment unit 103, the first encoding unit 104, the first result output unit 105, the second encoding unit 106, and the second result output unit 107 will be described. Collectively referred to as “data compression unit”.
- the encoded data acquisition unit 201, the first decoding processing unit 2021, the end determination unit 203, the second decoding unit 204, and the like shown in FIG. A program for realizing the functions of the integer combining unit 205 and the output unit 206 is stored.
- the encoded data acquisition unit 201, the first decoding processing unit 2021, the end determination unit 203, the second decoding unit 204, the integer combining unit 205, and the output unit 206 are collectively referred to as “data decompression device unit”. To do. Either or both of “data compression device part” and “data decompression device part” may be simply referred to as “part”.
- the program that implements the function of the “data compression device” described above is also referred to as a data compression program.
- the program that realizes the function of the “data decompression device” described above is also referred to as a data decompression program.
- the program that realizes the function of “unit” may be a single program or a plurality of programs.
- This program is loaded into the memory 903, read into the processor 901, and executed by the processor 901.
- the auxiliary storage device 902 also stores an OS (Operating System). Then, at least a part of the OS is loaded into the memory 903, and the processor 901 executes a program that realizes the function of “unit” while executing the OS.
- OS Operating System
- each of the data compression device 100 and the data decompression device 200 may include a plurality of processors 901.
- a plurality of processors 901 may execute a program for realizing the function of “unit” in cooperation with each other.
- information, data, signal values, and variable values indicating the results of the processing of “unit” are stored as files in the memory 903, the auxiliary storage device 902, or a register or cache memory in the processor 901.
- circuitry may be provided as “circuitry”. Further, “part” may be read as “circuit”, “process”, “procedure”, or “processing”. Further, “processing” may be read as “circuit”, “process”, “procedure”, or “part”. “Circuit” and “Circuitry” include not only the processor 901 but also other types of processing circuits such as a logic IC or GA (Gate Array) or ASIC (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array). It is a concept to include.
- GA Gate Array
- ASIC Application Specific Integrated Circuit
- FPGA Field-Programmable Gate Array
- a program product is a storage medium, a storage device, or the like on which a program that realizes the function described as a “part” is recorded. It is what you are loading.
- ⁇ Data acquisition process S1001> The data acquisition unit 101 executes a data acquisition process S1001 in which n is a natural number and n integers are acquired from the encoded data 11 including a plurality of integers represented by binary data of the unit bit number L.
- the data acquisition process S1001 includes the process of S101 and the process of S102.
- step S ⁇ b> 101 the data acquisition unit 101 determines whether all integers included in the encoded data 11 have been encoded. If the data acquisition unit 101 determines that the encoding process for all integers included in the encoded data 11 has been completed, the data acquisition unit 101 ends the process. If the data acquisition unit 101 determines that the encoding process for all integers included in the encoded data 11 has not been completed, the process proceeds to S102.
- the data acquisition unit 101 reads an integer to be newly encoded from the encoded data 11. At this time, the data acquisition unit 101 reads (k ⁇ L), that is, n integers, according to the parameter k determined by the encoding adjustment unit 103. When only less than (k ⁇ L) integers remain in the encoded data 11, the data acquisition unit 101 reads all integers. The process proceeds to S103.
- the integer dividing unit 102 executes an integer dividing process S1002 that divides each integer of n integers acquired in the data acquiring process S1001.
- the integer dividing unit 102 converts each integer of n integers into a second integer 1022 represented by lower bits of the divided bit number b and lower bits from each integer of n integers. This is divided into the first integer 1021 represented by the removed upper bits.
- the integer division unit 102 outputs n first integers 1021 and n second integers 1022.
- the integer division process S1002 includes the process of S103.
- the integer dividing unit 102 converts the read (k ⁇ L) integers into a first integer 1021 composed of (L ⁇ b) bits of upper bits and a second integer composed of b bits of lower bits. It is divided into 1022. The process proceeds to S104.
- the first encoding unit 104 executes a first encoding process S1003 that encodes the n first integers 1021 output by the integer division process S1002.
- the first encoding unit 104 expresses the result of encoding n first integers 1021 as binary data having a bit number that is a natural number multiple of the unit bit number L.
- the first code 1041 is output.
- the first encoding process S1003 includes the process of S104 and the process of S105.
- the first encoding unit 104 encodes (k ⁇ L) first integers using the word unit processing method to generate a first code 1041.
- the process proceeds to S105.
- the first result output unit 105 adds the first code 1041 generated by the first encoding unit 104 to the encoded data 12.
- the process proceeds to S106.
- the second encoding unit 106 encodes the n second integers 1022 output by the integer division processing S1002, and outputs the result of encoding the n second integers 1022 as the second code 1061.
- the second encoding process S1004 is executed.
- the second encoding process S1004 includes the process of S106 and the process of S107.
- the second encoding unit 106 encodes (k ⁇ L) second integers into (k ⁇ L ⁇ b) bits, that is, (n ⁇ b) bits of fixed-length binary data, A second code 1061 is generated.
- the process proceeds to S107.
- the second result output unit 107 adds the second code 1061 generated by the second encoding unit 106 to the encoded data 12. The process returns to S101.
- a plurality of integers included in the encoded data 11 are encoded as a first code 1041 in which n first integers 1021 are encoded and n second integers 1022 are encoded.
- the encoded data 12 in which the second code 1061 is alternately described is output.
- step S ⁇ b> 201 the encoded data acquisition unit 201 determines whether the decoding process for all data included in the encoded data 12 has been completed. If the encoded data acquisition unit 201 determines that the decoding process for all data has been completed, the process ends. If the encoded data acquisition unit 201 determines that the decoding process for all the data has not been completed, the process proceeds to S202.
- the encoded data acquisition unit 201 determines whether the next process is the first integer decoding process or the second integer decoding process.
- the initial state in the data decompression process S200 is the first integer decoding process.
- the process proceeds to S203.
- the next process is the decoding process of the second integer, the process proceeds to S208.
- the first decoding unit 202 obtains the first code 1041 included in the encoded data 12 encoded by the data compression processing S100, and decodes the first code 1041 into n first integers 1021. 1 decryption processing S2002 is executed. The first decoding unit 202 sequentially acquires the first unit data 10411 that is binary data of the unit bit number L from the first code 1041, decodes the acquired first unit data 10411, and obtains the first unit data 10411 obtained by decoding. The number of integers 1021 of 1 is counted.
- the first decoding unit 202 repeats the process of acquiring the first unit data 10411 from the first code 1041 and decoding the acquired first unit data 10411 until the counted number becomes equal to n.
- the first decoding process S2002 includes processes from S203 to S207.
- step S ⁇ b> 203 the encoded data acquisition unit 201 reads one word of data to be newly decoded from the encoded data 12.
- One word is L bits.
- the process proceeds to S204.
- the first decoding processing unit 2021 of the first decoding unit 202 decodes the read one word into a plurality of first integers 1021.
- the process proceeds to S205.
- step S206 the end determination unit 203 sets the next process to be performed as the second integer decoding process. This setting is used in the determination in S202.
- the end determination unit 203 initializes the number of decoded first integers used in the determination of S205 to zero. The process returns to S202.
- step S ⁇ b> 207 the end determination unit 203 sets the next process to be performed to the first integer decoding process. This setting is used in the determination in S202. The process returns to S202.
- the second decoding unit 204 acquires the second code 1061 from the encoded data 12, and executes a second decoding process S2003 for decoding the acquired second code 1061 into n second integers 1022.
- the second decoding unit 204 acquires, from the second code 1061, the second unit data 10611 that is binary data having the unit bit number L by the number of products of the divided bit numbers b and k.
- the second decoding unit 204 decodes the obtained second unit data 10611, which is the product of the number of divided bits b and k, into n second integers 1022.
- the second decoding process S2003 includes the process from S208 to S209.
- the encoded data acquisition unit 201 reads (k ⁇ b) words of data to be newly decoded from the encoded data 12. The process proceeds to S209.
- the second decoding unit 204 decodes the read (k ⁇ b) words into (k ⁇ L) second integers. The process proceeds to S210.
- the integer combining unit 205 executes an integer combining process S2004 for generating n integers based on the n first integers 1021 and the n second integers 1022.
- the integer combining process S2004 includes the process from S210 to S212.
- the integer combining unit 205 performs (k ⁇ L) first integers decoded by the first decoding unit 202 and (k ⁇ L) first integers decoded by the second decoding unit 204. Recombines each integer of 2.
- the integer combining unit 205 recombines (k ⁇ L) first integers and (k ⁇ L) second integers to generate (k ⁇ L) integers.
- the process proceeds to S211.
- the process proceeds to S212.
- the end determination unit 203 sets the next process to be performed to the first integer decoding process. This setting is used in the determination in S202. The process returns to S201.
- the data compression apparatus reversibly compresses a data series composed of fixed-length integer value data having a word length of L bits.
- the encoding adjustment unit selects a multiple (k ⁇ L) of the word length L as the number n of integers to be encoded at one time.
- the first encoding unit generates (k ⁇ L) first integer encoding results determined by the encoding adjustment unit so as to be a multiple of the word length L. That is, the first encoding unit performs word unit compression.
- the second encoding unit packs the number n of second integers determined by the encoding adjustment unit into (k ⁇ b) words, that is, (k ⁇ b ⁇ L) bits.
- the data compression apparatus further includes a first encoding result output unit that outputs the encoding result generated by the first encoding unit with a length that is a multiple of the word length L. Further, the data compression apparatus outputs the encoding result generated by the second encoding unit in a length of (k ⁇ b) words, that is, (k ⁇ b ⁇ L) bits. A result output unit is provided.
- the first integer decoding unit reads the compressed data one word at a time and repeats the decoding process in units of words, thereby decoding into the first integer.
- the end determination unit determines whether (k ⁇ L) first integers have been decoded. If the determination result is true, the end determination unit shifts the processing to the second decoding unit.
- the second decoding unit reads the compressed data in units of words, and decodes the compressed data into second integers having the same number as the number of first integers decoded by the first decoding unit.
- the second decoding unit converts (k ⁇ b) words into (k ⁇ L) second integers determined from the bit division position parameter b and the number k of the decoded first integers.
- the integer combining unit obtains the original (k ⁇ L) integer values by combining the output results of the first decoding unit and the second decoding unit.
- the upper and lower bit division method can be adopted, and the first integer encoding result composed of the upper bits and the second integer encoding result composed of the lower bits. Can be generated in units of words. Therefore, the data compression apparatus according to the present embodiment can improve the processing speed while improving the compression rate.
- the first encoding result and the second encoding result can be alternately output in small amounts. Therefore, according to the data compression apparatus, even if the encoded data 11 is very large size data, it is not necessary to read all the data at once in the compression process, and the data is read little by little and sequentially processed. can do. Further, according to the data decompression apparatus, even if the encoded data 12 is very large size data, it is not necessary to read all the data at once in the decompression process, and the data is read little by little and sequentially. Can be processed.
- Embodiment 2 FIG. In the present embodiment, differences from the first embodiment will be mainly described.
- FIG. 1 The block configuration showing the data compression apparatus 100a according to the present embodiment is represented by FIG. 1 as in the first embodiment. Further, the block configuration showing the data decompression apparatus 200a according to the present embodiment is represented by FIG. 2 as in the first embodiment.
- the same components as those described in Embodiment 1 are denoted by the same reference numerals, and the description thereof may be omitted.
- the function and operation of the encoding adjustment unit 103 are different from those in the first embodiment.
- the encoding adjustment unit 103 in FIG. 1 is described as the encoding adjustment unit 103a
- the determination unit 1031 is described as the determination unit 1031a.
- the determination unit 1031a that is, the encoding adjustment unit 103a determines K as a natural number, K as an upper limit value of k, c as a natural number, and parameter c.
- the encoding adjustment unit 103a selects k for which the number of redundant bits that are redundant in encoding is c or less.
- the encoding adjustment unit 103a uses the two parameters K and c in order to determine the number n of integers to be encoded at one time. Specifically, the encoding adjustment unit 103a selects a multiple (K ⁇ L) of the word length L as the upper limit of the number of integers encoded at one time. Also, the encoding adjustment unit 103a sets a redundant parameter c that is redundant when encoding (k ⁇ L) first integers within a range of k ⁇ K. Choose the smallest k that is less than or equal to bits.
- the function and operation of the first decoding unit 202 are different from those in the first embodiment.
- the end determination unit 203 and the first decoding processing unit 2021 of the first decoding unit 202 in FIG. 2 are used as the end determination unit 203a and the first decoding processing unit 2021a of the first decoding unit 202a.
- the end determination unit 203a determines K as a natural number, determines K as an upper limit value of k, sets c as a natural number, and determines a parameter c.
- the end determination unit 203a uses the two parameters K and c to determine whether or not the first integer decoding process has been completed.
- the data compression method and data compression process S100a of the data compression apparatus 100a according to the present embodiment will be described with reference to FIG.
- the process of S301 is the same as the process of S101 of FIG. That is, in S301, the data acquisition unit 101 determines whether or not the encoding process for all integers included in the encoded data 11 has been completed. If the data acquisition unit 101 determines that the encoding process for all integers included in the encoded data 11 has been completed, the data acquisition unit 101 ends the process. If the data acquisition unit 101 determines that the encoding process for all integers included in the encoded data 11 has not been completed, the process proceeds to S302.
- the data acquisition unit 101 newly reads L integers from the encoded data 11. When only less than L integers remain in the encoded data 11, all integers are read.
- the data acquisition unit 101 increments the parameter k. As described above, the initial value of k is 0.
- the process of S302 corresponds to the process of S102 of FIG. The process proceeds to S303.
- the integer dividing unit 102 divides the read L integers into a first integer 1021 consisting of (L ⁇ b) bits of upper bits and a second integer 1022 consisting of b bits of lower bits. To do.
- the process of S303 corresponds to the process of S103 in FIG. The process proceeds to S304.
- the first encoding unit 104 encodes (k ⁇ L) first integers 1021 by the word unit processing method to generate the first code 1041.
- the process of S304 corresponds to the process of S104 in FIG. The process proceeds to S305.
- the first result output unit 105 appends the first code 1041 generated by the first encoding unit 104 to the encoded data 12.
- the process of S306 corresponds to the process of S105 in FIG. The process proceeds to S307.
- the second encoding unit 106 encodes (k ⁇ L) second integers into (k ⁇ L ⁇ b) -bit fixed-length binary data, and generates a second code 1061.
- the process of S307 corresponds to the process of S106 in FIG. The process proceeds to S308.
- the second result output unit 107 adds the second code 1061 generated by the second encoding unit 106 to the encoded data 12.
- the process of S308 corresponds to the process of S107 in FIG.
- the process proceeds to S309.
- the second result output unit 107 initializes the parameter k to 0, and returns to S301. This is the end of the description of the data compression processing S100a of the data compression device 100a.
- the encoding adjustment unit 103a can select the optimum k within a range of the given parameter K or less. Become. As the value of k is smaller, the processing speed of the data compression process is improved, but the compression rate is lowered. However, by operating the encoding adjustment unit 103a as shown in FIG. 6, it is possible to select the minimum k while ensuring a state where the compression rate is increased to some extent. Thus, high performance is maintained for both compression rate and processing speed.
- the surplus bits that play an important role in the operation of the encoding adjustment unit 103a will be described using Simple 9 as an example.
- the integer sequence to be encoded is three integers 1 (1), 5 (101), and 3 (11).
- the numbers in parentheses are integers expressed as binary numbers.
- the maximum integer in the integer string is 5, and the binary digit number of 5 is 3. Therefore, when Simple 9 is used, the compression rate is most improved by selecting a data encoding method that can stuff nine 9-digit binary integers.
- the encoding method actually selected is a 9-digit binary integer even though the maximum number of digits is 3. It becomes a method of packing three.
- the cause of the surplus bits is that the integer to be encoded is not sufficient.
- the number of integers to be encoded at a time may be increased.
- the encoding adjustment unit 103 increases the number of integers encoded at one time and performs encoding again when surplus bits exceed a certain threshold (parameter c). Can be interpreted.
- the process of S401 is the same as the process of S201 of FIG. That is, in S401, the encoded data acquisition unit 201 determines whether or not the decoding process for all integers included in the encoded data 12 has been completed. If the encoded data acquisition unit 201 determines that the decoding process for all integers included in the encoded data 12 has been completed, the encoded data acquisition unit 201 ends the process. If the encoded data acquisition unit 201 determines that the decoding process of all integers included in the encoded data 12 has not been completed, the process proceeds to S402.
- the process of S402 is the same as the process of S202 of FIG.
- the encoded data acquisition unit 201 determines whether the next process is the first integer decoding process or the second integer decoding process.
- the initial state in the data expansion process S200a is the first integer decoding process.
- the process proceeds to S403. If the next process is the decoding process of the second integer, the process proceeds to S409.
- the first decoding unit 202 sequentially acquires the first unit data 10411 that is binary data having the unit bit number L from the first code 1041, and decodes the acquired first unit data 10411.
- the first decoding unit 202 decodes the first unit data 10411 in the range of k ⁇ K, the number of redundant bits that are redundant in decoding is equal to or less than c, and the first decoding unit 202 obtained by decoding K is selected such that the number of integers 1021 is equal to the product of the number of unit bits L and k, or k is selected to be equal to K.
- the process of S403 is the same as the process of S203 of FIG. That is, in S403, the encoded data acquisition unit 201 reads one word of data to be newly decoded from the encoded data 12. One word is L bits. The process proceeds to S404.
- the first decoding processing unit 2021a of the first decoding unit 202a decodes the read one word into a plurality of first integers. Then, the first decoding processing unit 2021a updates the value of the parameter k to a value obtained by dividing the number of first integers that have been decoded by L. The initial value of k is 0. The process proceeds to S405.
- the first decoding processing unit 2021a determines whether or not the number of first integers for which decoding has been completed is a multiple of L. If the number of first integers for which decoding has been completed is not a multiple of L, the first decoding processing unit 2021a proceeds to S408 because decoding of the first integer has not yet been completed. When the number of first integers that have been decoded is a multiple of L, the first decoding processing unit 2021a may have completed decoding the first integer. It progresses to S406 which is a process.
- the end determination unit 203a determines that the first integer has not been decoded when k ⁇ K and the surplus bits in the first encoding result decoded in S404 are larger than c. Determine and proceed to S408. The end determination unit 203a determines that decoding of the first integer has been completed when k ⁇ K or the surplus bits in the first encoding result decoded in S404 are equal to or less than c, and the process proceeds to S407.
- the end determination unit 203a sets the next process to be performed as the second integer decoding process. This setting is used in the determination in S402.
- the end determination unit 203a initializes the number of decoded first integers used in the determination of S405, that is, the number of first integers that have been decoded to zero. The process returns to S402.
- the process of S407 corresponds to the process of S206 in FIG.
- step S413 the end determination unit 203a sets the next process to be performed to the first integer decoding process. This setting is used in the determination in S402.
- the end determination unit 203a initializes the parameter k to 0.
- the process returns to S401. This is the end of the description of the data expansion method of the data expansion device 200a.
- the encoding adjustment unit selects a multiple of word length L (K ⁇ L) as the upper limit of the number of integers to be encoded at one time.
- the encoding adjusting unit encodes (k ⁇ L) first integers in a range of k ⁇ K so that redundant bits that are redundant in encoding are not more than c bits. Choose the smallest k. Then, the encoding adjustment unit selects a multiple (k ⁇ L) of the word length L as the number of integers to be encoded at one time.
- the first encoding unit generates (k ⁇ L) first integer encoding results determined by the encoding adjustment unit so as to be a multiple of the word length L.
- the second encoding unit packs the number of second integers determined by the encoding adjustment unit into (k ⁇ b) words (k ⁇ b ⁇ L bits).
- the second decoding unit decodes (k ⁇ b) words determined from the bit division position parameter b and the number k of the decoded first integers into (k ⁇ L) second integers. .
- the integer coupling unit obtains (k ⁇ L) integer values.
- the encoding adjustment unit 103a can select an optimum k within a range of the given parameter K or less. .
- the processing speed is improved, but the compression rate is lowered.
- the data compression apparatus 100a as described in the present embodiment, it is possible to select the minimum k while ensuring a state where the compression rate is increased to some extent, and the compression rate and processing speed can be selected. Both can be maintained at high performance.
- the data acquisition unit, the integer division unit, the encoding adjustment unit, the first encoding unit, the first result output unit, the second encoding unit, and the second result output unit are independent of each other.
- a data compression apparatus is configured as the functional block.
- the encoded data acquisition unit, the first decoding processing unit, the end determination unit, the second decoding unit, the integer combining unit, and the output unit constitute a data expansion device as independent function blocks.
- the data compression device and the data expansion device are not limited to the above configuration. The configuration of the data compression device and the data expansion device is arbitrary.
- the data acquisition unit, the integer division unit, the encoding adjustment unit, the first encoding unit, the first result output unit, the second encoding unit, and the second result output unit are realized by one functional block Good.
- the encoded data acquisition unit, the first decoding processing unit, the end determination unit, the second decoding unit, the integer combining unit, and the output unit may be realized by one functional block.
- the functional blocks of the data compression apparatus and data decompression apparatus are arbitrary as long as the functions described in the above embodiments can be realized.
- the data compression device and the data decompression device may be configured by any other combination of these functional blocks or an arbitrary block configuration.
- each of the data compression device and the data decompression device may be a data compression system or a data decompression system constituted by a plurality of devices, instead of a single device. Also, one device or one system including a data compression device and a data expansion device may be used.
- Embodiments 1 and 2 have been described, a plurality of these two embodiments may be partially combined. Alternatively, one of the two embodiments may be partially implemented. In addition, these two embodiments may be implemented in any combination as a whole or in part. In addition, said embodiment is an essentially preferable illustration, Comprising: It does not intend restrict
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Description
この方法では、残差を求める段階を挟むことにより、実データ系列と比較して、小さい値すなわち0に近い値から成るデータ系列を得られる。よって、この方法によれば、符号化対象データに対する残差符号化が効きやすくなり、圧縮効果が高まることが多い。
上下ビット分割方式では、上位ビットから成る第1の整数を、ガンマ符号やデルタ符号のような適当な可変長符号により符号化し出力する。そして、下位ビットから成る第2の整数については、符号化せずに、固定長のバイナリデータとして出力する。ゴロム・ライス符号では、第1の整数の符号化方法としてアルファ符号を採用している。
上下ビット分割方式は、圧縮対象となる整数列にノイズが混在するなどして、下位ビットの変動が大きいときに有効な方式である。ノイズが混在した下位ビットは、圧縮が困難であるため、圧縮せずに固定長バイナリデータとして出力し、比較的圧縮が容易な上位ビットのみを圧縮する、というのが上下ビット分割方式の基本的な考え方である。
図8に示すように、整数列を上位ビットと下位ビットとにビット分割した場合、上位ビットは圧縮が容易であり、下位ビットは圧縮が困難となる。
処理単位のビット数である単位ビット数のバイナリデータで表された整数を複数含む符号化データから、nを自然数とし、n個の整数を取得するデータ取得部と、
前記データ取得部により取得された前記n個の整数の各整数を分割する整数分割部であって、前記n個の整数の各整数を、分割ビット数の下位ビットで表される第2の整数と、前記n個の整数の各整数から前記下位ビットを除いた上位ビットにより表される第1の整数とに分割し、n個の第1の整数とn個の第2の整数とを出力する整数分割部と、
前記整数分割部から出力された前記n個の第1の整数を符号化する第1の符号化部であって、前記n個の第1の整数を符号化した結果を前記単位ビット数の自然数倍のビット数のバイナリデータで表される第1符号として出力する第1の符号化部と、
前記整数分割部から出力された前記n個の第2の整数を符号化し、前記n個の第2の整数を符号化した結果を第2符号として出力する第2の符号化部とを備える。
***構成の説明***
図1を用いて、本実施の形態に係るデータ圧縮装置100のブロック構成について説明する。
以下の説明では、処理単位のビット数である単位ビット数をLビットとする。単位ビット数をワードあるいはバイトともいう。単位ビット数は、ワードの長さであるワード単位とも称される。
また、整数を表すバイナリデータのビット長は、単位ビット数と同じく、Lビットとする。Lは、16、32、64等の値であるが、これらの値に限定されるものではない。本実施の形態は、任意のビット長の整数に対して適用することができる。
第1の符号化部104は、符号化調整部103において決定されたn個の第1の整数1021を符号化する。第1の符号化部104は、符号化に際し、Simple9のような、符号結果をワード単位に生成するワード単位処理方式を利用する。第1の符号化部104は、n個の第1の整数1021を符号化した第1符号1041を出力する。ここで、第1の符号化部104により出力される第1符号1041のデータサイズは、第1の符号化部104の性質により、ワード単位であるLビットの倍数となる。第1の符号化部104は、第1の整数符号化部とも称される。
第2符号1061は、分割ビット数bにnを乗じた数のビット数のバイナリデータで表される。すなわち、第2の符号化部106は、n個のbビット整数をn×bビットの固定長バイナリデータに生成する。第2の符号化部106は、第2の整数符号化部とも称される。
符号化調整部103では、一度に符号化する整数の個数nとして、ワード単位Lの倍数(k×L)を選択する。ここで、kは予めデータ圧縮装置100の利用者により決定されるパラメータである。
符号化調整部103が、n=k×Lのようにnを設定することにより、第2の符号化部106で生成される第2符号1061のサイズが(k×L×b)ビット、すなわちワード単位Lビットの倍数となる。したがって、第2の結果出力部107は、余分なビットスペースを消費することなく、ワード単位Lビットの倍数サイズの第2符号1061を出力することができる。
データ伸張装置200は、データ圧縮装置100により符号化された符号化済データ12であって、第1符号1041と第2符号1061とを含む符号化済データ12を伸張する装置である。データ伸張装置200は、符号化済データ12を入力とし、データ圧縮装置100によって圧縮される前の元データ22である符号化データ11を出力する。
終了判定部203は、データ圧縮装置100における符号化調整部103に対応する。終了判定部203は、符号化調整部103により設定された一度に圧縮する整数の個数n分だけ、n個の第1の整数の復号が終了したか否かを判定する。終了判定部203は、n個の第1の整数の復号が終了していない場合は、引き続き、第1の復号処理部2021による第1の整数の復号処理を行う。また、終了判定部203は、n個の第1の整数の復号が終了している場合は、第2の整数の復号処理へ移行する。終了判定部203は、第1の整数復号処理終了判定部とも称される。
出力部206は、整数結合部205で得られた復号結果を元データ22として出力する。元データ22は、符号化される前の符号化データ11である。
データ圧縮装置100、データ伸張装置200は、プロセッサ901、補助記憶装置902、メモリ903、通信装置904、入力インタフェース905、ディスプレイインタフェース906といったハードウェアを備える。
プロセッサ901は、信号線910を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
入力インタフェース905は、入力装置907に接続されている。
ディスプレイインタフェース906は、ディスプレイ908に接続されている。
プロセッサ901は、例えば、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
補助記憶装置902は、例えば、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)である。
メモリ903は、例えば、RAM(Random Access Memory)である。
通信装置904は、データを受信するレシーバー9041及びデータを送信するトランスミッター9042を含む。
通信装置904は、例えば、通信チップ又はNIC(Network Interface Card)である。
入力インタフェース905は、入力装置907のケーブル911が接続されるポートである。
入力インタフェース905は、例えば、USB(Universal Serial Bus)端子である。
ディスプレイインタフェース906は、ディスプレイ908のケーブル912が接続されるポートである。
ディスプレイインタフェース906は、例えば、USB端子又はHDMI(登録商標)(High Definition Multimedia Interface)端子である。
入力装置907は、例えば、マウス、キーボード又はタッチパネルである。
ディスプレイ908は、例えば、LCD(Liquid Crystal Display)である。
また、補助記憶装置902には、コンピュータがデータ伸張装置200の場合、図2に示す符号化済データ取得部201、第1の復号処理部2021、終了判定部203、第2の復号部204、整数結合部205、出力部206の機能を実現するプログラムが記憶されている。以下、符号化済データ取得部201、第1の復号処理部2021、終了判定部203、第2の復号部204、整数結合部205、出力部206をまとめて「データ伸張装置の部」と表記する。「データ圧縮装置の部」と「データ伸張装置の部」とのいずれかあるいは両方を単に「部」と表記する場合もある。
このプログラムは、メモリ903にロードされ、プロセッサ901に読み込まれ、プロセッサ901によって実行される。
更に、補助記憶装置902には、OS(Operating System)も記憶されている。
そして、OSの少なくとも一部がメモリ903にロードされ、プロセッサ901はOSを実行しながら、「部」の機能を実現するプログラムを実行する。
図3では、1つのプロセッサ901が図示されているが、データ圧縮装置100、データ伸張装置200の各々が複数のプロセッサ901を備えていてもよい。
そして、複数のプロセッサ901が「部」の機能を実現するプログラムを連携して実行してもよい。
また、「部」の処理の結果を示す情報やデータや信号値や変数値が、メモリ903、補助記憶装置902、又は、プロセッサ901内のレジスタ又はキャッシュメモリにファイルとして記憶される。
また、「部」を「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。また、「処理」を「回路」又は「工程」又は「手順」又は「部」に読み替えてもよい。
「回路」及び「サーキットリー」は、プロセッサ901だけでなく、ロジックIC又はGA(Gate Array)又はASIC(Application Specific Integrated Circuit)又はFPGA(Field-Programmable Gate Array)といった他の種類の処理回路をも包含する概念である。
図4を用いて、本実施の形態に係るデータ圧縮装置100のデータ圧縮方法、データ圧縮処理S100について説明する。
データ取得部101は、単位ビット数Lのバイナリデータで表された整数を複数含む符号化データ11から、nを自然数とし、n個の整数を取得するデータ取得処理S1001を実行する。データ取得処理S1001はS101の処理とS102の処理とを有する。
S101において、データ取得部101は、符号化データ11に含まれる全整数の符号化処理を完了したかどうかを判定する。
データ取得部101は、符号化データ11に含まれる全整数の符号化処理を完了していると判定した場合は、処理を終了する。データ取得部101は、符号化データ11に含まれる全整数の符号化処理を完了していないと判定した場合は、S102に進む。
整数分割部102は、データ取得処理S1001により取得されたn個の整数の各整数を分割する整数分割処理S1002を実行する。整数分割処理S1002では、整数分割部102は、n個の整数の各整数を、分割ビット数bの下位ビットで表される第2の整数1022と、n個の整数の各整数から下位ビットを除いた上位ビットにより表される第1の整数1021とに分割する。また、整数分割処理S1002では、整数分割部102は、n個の第1の整数1021とn個の第2の整数1022とを出力する。整数分割処理S1002は、S103の処理を有する。
第1の符号化部104は、整数分割処理S1002により出力されたn個の第1の整数1021を符号化する第1の符号化処理S1003を実行する。第1の符号化処理S1003では、第1の符号化部104は、n個の第1の整数1021を符号化した結果を単位ビット数Lの自然数倍のビット数のバイナリデータで表される第1符号1041として出力する。第1の符号化処理S1003は、S104の処理とS105の処理とを有する。
S105において、第1の結果出力部105は、第1の符号化部104により生成された第1符号1041を符号化済データ12に追記する。処理はS106に進む。
第2の符号化部106は、整数分割処理S1002により出力されたn個の第2の整数1022を符号化し、n個の第2の整数1022を符号化した結果を第2符号1061として出力する第2の符号化処理S1004を実行する。第2の符号化処理S1004は、S106の処理とS107の処理とを有する。
S107において、第2の結果出力部107は、第2の符号化部106により生成された第2符号1061を符号化済データ12に追記する。処理はS101に戻る。
このデータ圧縮方法により、符号化データ11に含まれる複数の整数が、n個の第1の整数1021が符号化された第1符号1041と、n個の第2の整数1022が符号化された第2符号1061とが交互に記述された符号化済データ12が出力される。
S201において、符号化済データ取得部201は、符号化済データ12に含まれる全データの復号処理を完了したかどうかを判定する。符号化済データ取得部201は、全データの復号処理を完了していると判定した場合は、処理を終了する。符号化済データ取得部201は、全データの復号処理を完了していないと判定した場合は、S202に進む。
第1の復号部202は、データ圧縮処理S100により符号化された符号化済データ12に含まれる第1符号1041を取得し、第1符号1041をn個の第1の整数1021に復号する第1の復号処理S2002を実行する。
第1の復号部202は、第1符号1041から、単位ビット数Lのバイナリデータである第1単位データ10411を順に取得し、取得した第1単位データ10411を復号し、復号より得られた第1の整数1021の個数をカウントする。第1の復号部202は、カウントした個数がnと等しくなるまで、第1符号1041から第1単位データ10411を取得し、取得した第1単位データ10411を復号する処理を繰り返す。第1の復号処理S2002はS203の処理からS207の処理を有する。
S204において、第1の復号部202の第1の復号処理部2021は、読み込んだ1ワードを、複数の第1の整数1021へ復号する。処理はS205に進む。
S205において、第1の復号部202の終了判定部203は、第1の復号処理部2021でn(=k×L)個の第1の整数が復号されたか否かを判定する。すなわち、終了判定部203は、第1の整数の復号済み個数がn個であるか否かを判定する。n個の第1の整数が復号された場合はS206に進む。n個の第1の整数の復号が未完了の場合は、S207に進む。
S206において、終了判定部203は、次に行う処理を、第2の整数の復号処理に設定する。この設定は、S202における判定で用いられる。また、終了判定部203は、S205の判定で利用する第1の整数の復号済み個数を0個に初期化する。処理はS202に戻る。
S207において、終了判定部203は、次に行う処理を、第1の整数の復号処理に設定する。この設定は、S202における判定で用いられる。処理はS202に戻る。
第2の復号部204は、符号化済データ12から第2符号1061を取得し、取得した第2符号1061をn個の第2の整数1022に復号する第2の復号処理S2003を実行する。
第2の復号部204は、第2符号1061から、単位ビット数Lのバイナリデータである第2単位データ10611を、分割ビット数bとkとの積の数だけ取得する。第2の復号部204は、取得した分割ビット数bとkとの積の数の第2単位データ10611をn個の第2の整数1022に復号する。第2の復号処理S2003はS208の処理からS209の処理を有する。
S209において、第2の復号部204は、読み込んだ(k×b)個のワードを、(k×L)個の第2の整数へ復号する。処理はS210に進む。
以上の第2の復号処理S2003により、n(=k×L)個の第2の整数が生成される。
整数結合部205は、n個の第1の整数1021とn個の第2の整数1022とに基づいて、n個の整数を生成する整数結合処理S2004を実行する。整数結合処理S2004はS210の処理からS212の処理を有する。
S211において、出力部206は、整数結合部205により生成されたn(=k×L)個の整数を元データ22に追記する。処理はS212に進む。
S212において、終了判定部203は、次に行う処理を、第1の整数の復号処理に設定する。この設定は、S202における判定で用いられる。処理はS201に戻る。
以上で、データ伸張装置200のデータ伸張方法、データ伸張処理S200についての説明を終わる。
本実施の形態に係るデータ圧縮装置は、ワード長Lビットの固定長の整数値データから成るデータ系列を可逆圧縮する。符号化調整部は、一度に符号化する整数の個数nとして、ワード長Lの倍数(k×L)を選択する。第1の符号化部は、符号化調整部において決定された(k×L)個の第1の整数の符号化結果を、ワード長Lの倍数となるように生成する。すなわち、第1の符号化部は、ワード単位圧縮を実施する。第2の符号化部は、符号化調整部において決定された個数nの第2の整数を、(k×b)個のワード、すなわち(k×b×L)ビットにパッキングする。
また、本実施の形態に係るデータ圧縮装置は、第1の符号化部で生成された符号化結果をワード長Lの倍数の長さで出力する第1の符号化結果出力部を備える。また、データ圧縮装置は、第2の符号化部で生成された符号化結果を(k×b)個のワード、すなわち(k×b×L)ビットの長さで出力する第2の符号化結果出力部を備える。
整数結合部は、第1の復号部と第2の復号部の出力結果を結合することにより元の(k×L)個の整数値を得る。
本実施の形態では、主に、実施の形態1と異なる点について説明する。
本実施の形態に係るデータ圧縮装置100aを示すブロック構成は、実施の形態1と同様に図1によって表される。また、本実施の形態に係るデータ伸張装置200aを示すブロック構成は、実施の形態1と同様に図2によって表される。実施の形態1で説明した構成と同様の構成については同一の符号を付し、その説明を省略する場合がある。
決定部1031a、すなわち符号化調整部103aは、Kを自然数とし、kの上限値としてKを決定すると共に、cを自然数とし、パラメータcを決定する。符号化調整部103aは、k≦Kの範囲においてn個の第1の整数1021を符号化した際に、符号化に際して冗長となる余剰ビットのビット数がc以下となるkを選択する。
終了判定部203aは、Kを自然数とし、kの上限値としてKを決定すると共に、cを自然数とし、パラメータcを決定する。終了判定部203aは、第1の整数の復号処理が完了したか否かを判定するために、2個のパラメータK、cを用いる。
図6を用いて、本実施の形態に係るデータ圧縮装置100aのデータ圧縮方法、データ圧縮処理S100aについて説明する。
データ圧縮装置100aは、データ圧縮処理S100aの開始時に、パラメータkをk=0と初期化する。
データ取得部101は、符号化データ11に含まれる全整数の符号化処理を完了していると判定した場合は、処理を終了する。データ取得部101は、符号化データ11に含まれる全整数の符号化処理を完了していないと判定した場合は、S302に進む。
S309において、第2の結果出力部107は、パラメータkを0に初期化し、S301に戻る。
以上で、データ圧縮装置100aのデータ圧縮処理S100aについての説明を終わる。
例えば、符号化対象となる整数列が、1(1),5(101),3(11)という3個の整数であるとする。カッコ内は整数を2進数で表したものである。このとき、整数列のうち最大の整数は5であり、5の2進桁数は3である。従って、Simple9を用いると、本来、3桁の2進整数を9個詰めることが可能なデータ符号方法を選択することにより、最も圧縮率が向上する。しかしながら、上記整数列の例では、符号化対象となる整数が3個しか無いため、最大桁数が3であるにも関わらず、実際に選択される符号化方式は、9桁の2進整数を3個詰めるという方式となってしまう。このように、ワード単位処理方式を採用しているために、出力符号をワード単位に生成するという制約があり、本来であれば不要である冗長なビットが付加されることがある。このような冗長なビットを、余剰ビットと呼んでいる。上記整数列の例においては、3桁の数値が3個であるので、本来9ビットで表現できるデータを、実際には、9桁の数値3個として27ビットを使用して表現しているので、余剰ビットは18ビットとなる。
データ伸張装置200aは、データ伸張処理S200aの開始時に、パラメータkをk=0と初期化する。
符号化済データ取得部201は、符号化済データ12に含まれる全整数の復号処理を完了していると判定した場合は、処理を終了する。符号化済データ取得部201は、符号化済データ12に含まれる全整数の復号処理を完了していないと判定した場合は、S402に進む。
第1の復号処理部2021aは、復号が完了した第1の整数の個数がLの倍数となっていない場合、第1の整数の復号がまだ完了していないため、S408に進む。
第1の復号処理部2021aは、復号が完了した第1の整数の個数がLの倍数となっている場合、第1の整数の復号が完了している可能性があるため、次の判定の処理であるS406に進む。
S413において、終了判定部203aは、次に行う処理を、第1の整数の復号処理に設定する。この設定は、S402における判定で用いられる。また、終了判定部203aは、パラメータkを0に初期化する。処理はS401に戻る。
以上で、データ伸張装置200aのデータ伸張方法についての説明を終わる。
以上のように、本実施の形態に係るデータ圧縮装置では、符号化調整部は、一度に符号化する整数の個数の上限として、ワード長Lの倍数(K×L)を選択する。また、符号化調整部は、k<Kの範囲で、(k×L)個の第1の整数を符号化した際に、符号化に際して冗長となる余剰ビットが、cビット以下となるような最小のkを選択する。そして、符号化調整部は、一度に符号化する整数の個数として、ワード長Lの倍数(k×L)を選択する。第1の符号化部は、符号化調整部において決定された(k×L)個の第1の整数の符号化結果を、ワード長Lの倍数となるように生成する。第2の符号化部は、符号化調整部において決定された個数の第2の整数を、(k×b)個のワード(k×b×Lビット)にパッキングする。
なお、上記の実施の形態は、本質的に好ましい例示であって、本発明、その適用物や用途の範囲を制限することを意図するものではなく、必要に応じて種々の変更が可能である。
Claims (13)
- 処理単位のビット数である単位ビット数のバイナリデータで表された整数を複数含む符号化データから、nを自然数とし、n個の整数を取得するデータ取得部と、
前記データ取得部により取得された前記n個の整数の各整数を分割する整数分割部であって、前記n個の整数の各整数を、分割ビット数の下位ビットで表される第2の整数と、前記n個の整数の各整数から前記下位ビットを除いた上位ビットにより表される第1の整数とに分割し、n個の第1の整数とn個の第2の整数とを出力する整数分割部と、
前記整数分割部から出力された前記n個の第1の整数を符号化する第1の符号化部であって、前記n個の第1の整数を符号化した結果を前記単位ビット数の自然数倍のビット数のバイナリデータで表される第1符号として出力する第1の符号化部と、
前記整数分割部から出力された前記n個の第2の整数を符号化し、前記n個の第2の整数を符号化した結果を第2符号として出力する第2の符号化部と
を備えるデータ圧縮装置。 - 前記第2の符号化部は、
前記分割ビット数にnを乗じた数のビット数のバイナリデータで表される前記第2符号を出力する請求項1に記載のデータ圧縮装置。 - 前記データ圧縮装置は、
kを自然数とし、前記単位ビット数のk倍の数をnとして決定する決定部を備え、
前記第2の符号化部は、
前記単位ビット数に、前記分割ビット数とkとの積を乗じた数のビット数のバイナリデータで表される前記第2符号を出力する請求項2に記載のデータ圧縮装置。 - 前記データ圧縮装置は、
前記第1の符号化部により出力された前記第1符号を記憶すると共に、前記第1符号の後ろに連続して前記第2の符号化部により出力された前記第2符号を記憶する記憶部を備える請求項3に記載のデータ圧縮装置。 - 前記決定部は、
Kを自然数とし、kの上限値としてKを決定すると共に、cを自然数とし、パラメータcを決定し、k≦Kの範囲においてn個の第1の整数を符号化した際に、符号化に際して冗長となる余剰ビットのビット数がc以下となるkを選択する請求項3または4に記載のデータ圧縮装置。 - 請求項3または4に記載のデータ圧縮装置により符号化された符号化済データであって、前記第1符号と前記第2符号とを含む符号化済データから前記第1符号を取得し、取得した前記第1符号を前記n個の第1の整数に復号する第1の復号部と、
前記符号化済データから前記第2符号を取得し、取得した前記第2符号を前記n個の第2の整数に復号する第2の復号部と、
前記n個の第1の整数と前記n個の第2の整数とに基づいて、前記n個の整数を生成する整数結合部と
を備えるデータ伸張装置。 - 前記第2の復号部は、
前記第2符号から、前記単位ビット数のバイナリデータである第2単位データを、前記分割ビット数とkとの積の数だけ取得し、取得した前記分割ビット数とkとの積の数の前記第2単位データを前記n個の第2の整数に復号する請求項6に記載のデータ伸張装置。 - 前記第1の復号部は、
前記第1符号から、前記単位ビット数のバイナリデータである第1単位データを順に取得し、取得した前記第1単位データを復号し、復号より得られた第1の整数の個数をカウントし、前記個数がnと等しくなるまで、前記第1符号から前記第1単位データを取得し、取得した前記第1単位データを復号する処理を繰り返す請求項6または7に記載のデータ伸張装置。 - 前記データ伸張装置は、
Kを自然数とし、kの上限値としてKを決定すると共に、cを自然数とし、パラメータcを決定する終了判定部を備え、
前記第1の復号部は、
前記第1符号から、前記単位ビット数のバイナリデータである第1単位データを順に取得し、取得した前記第1単位データを復号し、k<Kの範囲において前記第1単位データを復号した際に、復号に際して冗長となる余剰ビットのビット数がc以下となり、かつ、復号より得られた第1の整数の個数が前記単位ビット数とkとの積と等しくなるk、あるいは、k=Kを選択し、前記個数が前記単位ビット数とkとの積と等しくなるまで、前記第1符号から前記第1単位データを取得し、取得した前記第1単位データを復号する処理を繰り返す請求項6または7に記載のデータ伸張装置。 - データ取得部が、処理単位のビット数である単位ビット数のバイナリデータで表された整数を複数含む符号化データから、nを自然数とし、n個の整数を取得し、
整数分割部が、前記データ取得部により取得された前記n個の整数の各整数を分割する整数分割部であって、前記n個の整数の各整数を、分割ビット数の下位ビットで表される第2の整数と、前記n個の整数の各整数から前記下位ビットを除いた上位ビットにより表される第1の整数とに分割し、n個の第1の整数とn個の第2の整数とを出力し、
第1の符号化部が、前記整数分割部から出力された前記n個の第1の整数を符号化する第1の符号化部であって、前記n個の第1の整数を符号化した結果を前記単位ビット数の自然数倍のビット数のバイナリデータで表される第1符号として出力し、
第2の符号化部が、前記整数分割部から出力された前記n個の第2の整数を符号化し、前記n個の第2の整数を符号化した結果を第2符号として出力するデータ圧縮方法。 - 第1の復号部が、請求項10に記載のデータ圧縮方法により符号化された符号化済データであって、前記第1符号と前記第2符号とを含む符号化済データに含まれる前記第1符号を取得し、取得した前記第1符号を前記n個の第1の整数に復号し、
第2の復号部が、前記符号化済データから前記第2符号を取得し、取得した前記第2符号を前記n個の第2の整数に復号し、
整数結合部が、前記n個の第1の整数と前記n個の第2の整数とに基づいて、前記n個の整数を生成するデータ伸張方法。 - 処理単位のビット数である単位ビット数のバイナリデータで表された整数を複数含む符号化データから、nを自然数とし、n個の整数を取得するデータ取得処理と、
前記データ取得処理により取得された前記n個の整数の各整数を分割する整数分割処理であって、前記n個の整数の各整数を、分割ビット数の下位ビットで表される第2の整数と、前記n個の整数の各整数から前記下位ビットを除いた上位ビットにより表される第1の整数とに分割し、n個の第1の整数とn個の第2の整数とを出力する整数分割処理と、
前記整数分割処理により出力された前記n個の第1の整数を符号化する第1の符号化処理であって、前記n個の第1の整数を符号化した結果を前記単位ビット数の自然数倍のビット数のバイナリデータで表される第1符号として出力する第1の符号化処理と、
前記整数分割処理により出力された前記n個の第2の整数を符号化し、前記n個の第2の整数を符号化した結果を第2符号として出力する第2の符号化処理と
をコンピュータに実行させるプログラム。 - 請求項12に記載のプログラムにより符号化された符号化済データであって、前記第1符号と前記第2符号とを含む符号化済データに含まれる前記第1符号を取得し、取得した前記第1符号を前記n個の第1の整数に復号する第1の復号処理と、
前記符号化済データから前記第2符号を取得し、取得した前記第2符号を前記n個の第2の整数に復号する第2の復号処理と、
前記n個の第1の整数と前記n個の第2の整数とに基づいて、前記n個の整数を生成する整数結合処理と
をコンピュータに実行させるプログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201580075824.8A CN107251438B (zh) | 2015-02-16 | 2015-02-16 | 数据压缩装置及方法、数据解压缩装置及方法和记录介质 |
JP2017500150A JP6227186B2 (ja) | 2015-02-16 | 2015-02-16 | データ圧縮装置、データ伸張装置、データ圧縮方法、データ伸張方法及びプログラム |
US15/536,030 US9979415B2 (en) | 2015-02-16 | 2015-02-16 | Data compression apparatus, data decompression apparatus, data compression method, data compression method, and computer readable medium |
PCT/JP2015/054125 WO2016132430A1 (ja) | 2015-02-16 | 2015-02-16 | データ圧縮装置、データ伸張装置、データ圧縮方法、データ伸張方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2015/054125 WO2016132430A1 (ja) | 2015-02-16 | 2015-02-16 | データ圧縮装置、データ伸張装置、データ圧縮方法、データ伸張方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016132430A1 true WO2016132430A1 (ja) | 2016-08-25 |
Family
ID=56688808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2015/054125 WO2016132430A1 (ja) | 2015-02-16 | 2015-02-16 | データ圧縮装置、データ伸張装置、データ圧縮方法、データ伸張方法及びプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US9979415B2 (ja) |
JP (1) | JP6227186B2 (ja) |
CN (1) | CN107251438B (ja) |
WO (1) | WO2016132430A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018006174A1 (en) * | 2016-07-06 | 2018-01-11 | Kinematicsoup Technologies Inc. | Method of compression for fixed-length data |
CN107919943A (zh) * | 2016-10-11 | 2018-04-17 | 阿里巴巴集团控股有限公司 | 二进制数据的编码、解码方法和装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107682016B (zh) * | 2017-09-26 | 2021-09-17 | 深信服科技股份有限公司 | 一种数据压缩方法、数据解压方法及相关系统 |
CN113868206A (zh) * | 2021-10-08 | 2021-12-31 | 八十一赞科技发展(重庆)有限公司 | 一种数据压缩方法、解压缩方法、装置及存储介质 |
CN116861271B (zh) * | 2023-09-05 | 2023-12-08 | 智联信通科技股份有限公司 | 基于大数据的数据分析处理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011109385A (ja) * | 2009-11-17 | 2011-06-02 | Mitsubishi Electric Corp | 画像符号化装置 |
JP2011223244A (ja) * | 2010-04-08 | 2011-11-04 | Yokogawa Electric Corp | データ圧縮装置およびデータ復元装置 |
JP2012134858A (ja) * | 2010-12-22 | 2012-07-12 | Mitsubishi Electric Corp | データ圧縮装置及びデータ圧縮方法及びデータ圧縮プログラム |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0071680B1 (en) * | 1981-08-07 | 1988-10-26 | International Business Machines Corporation | Data recording or transmission system using run length limited coding |
US5179711A (en) * | 1989-12-26 | 1993-01-12 | International Business Machines Corporation | Minimum identical consecutive run length data units compression method by searching consecutive data pair comparison results stored in a string |
JP3273119B2 (ja) * | 1995-09-29 | 2002-04-08 | 京セラ株式会社 | データ圧縮・伸長装置 |
US6570511B1 (en) * | 2001-10-15 | 2003-05-27 | Unisys Corporation | Data compression method and apparatus implemented with limited length character tables and compact string code utilization |
JP2004070120A (ja) | 2002-08-08 | 2004-03-04 | Dainippon Printing Co Ltd | 時系列信号の符号化装置、復号装置および記録媒体 |
JP4357852B2 (ja) | 2003-02-24 | 2009-11-04 | 大日本印刷株式会社 | 時系列信号の圧縮解析装置および変換装置 |
JP2005151327A (ja) | 2003-11-18 | 2005-06-09 | Nec Micro Systems Ltd | Pcmデータ圧縮・伸長方法及び装置 |
US7430328B2 (en) | 2004-12-01 | 2008-09-30 | Honeywell International Inc. | Rice lossless compression module |
JP4131969B2 (ja) | 2005-02-07 | 2008-08-13 | 富士フイルム株式会社 | データ圧縮装置およびデータ圧縮プログラム |
US7183950B2 (en) | 2005-02-07 | 2007-02-27 | Fuji Photo Film Co., Ltd. | Data compression apparatus, and data compression program storage medium |
JP2007088962A (ja) | 2005-09-26 | 2007-04-05 | Nippon Telegr & Teleph Corp <Ntt> | 順序データ圧縮方法、順序データ解凍方法、順序データ処理プログラム、順序データ圧縮装置、順序データ解凍装置、および、順序データ処理システム |
JP4888335B2 (ja) | 2007-10-25 | 2012-02-29 | ソニー株式会社 | 符号化方法及び装置、並びにプログラム |
JP2009260747A (ja) | 2008-04-17 | 2009-11-05 | Canon Inc | 画像符号化装置及びその制御方法 |
JP5458056B2 (ja) | 2010-05-28 | 2014-04-02 | 株式会社日立製作所 | 時系列データの圧縮方法および圧縮装置 |
JP5639011B2 (ja) | 2011-06-28 | 2014-12-10 | 日本電信電話株式会社 | データ蓄積装置、データ蓄積方法、及びプログラム |
GB2507127B (en) * | 2012-10-22 | 2014-10-08 | Gurulogic Microsystems Oy | Encoder, decoder and method |
CN103840839B (zh) * | 2014-03-21 | 2017-06-27 | 中国科学院声学研究所 | 一种井下声波成像测井数据的实时压缩方法 |
-
2015
- 2015-02-16 CN CN201580075824.8A patent/CN107251438B/zh active Active
- 2015-02-16 WO PCT/JP2015/054125 patent/WO2016132430A1/ja active Application Filing
- 2015-02-16 JP JP2017500150A patent/JP6227186B2/ja active Active
- 2015-02-16 US US15/536,030 patent/US9979415B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011109385A (ja) * | 2009-11-17 | 2011-06-02 | Mitsubishi Electric Corp | 画像符号化装置 |
JP2011223244A (ja) * | 2010-04-08 | 2011-11-04 | Yokogawa Electric Corp | データ圧縮装置およびデータ復元装置 |
JP2012134858A (ja) * | 2010-12-22 | 2012-07-12 | Mitsubishi Electric Corp | データ圧縮装置及びデータ圧縮方法及びデータ圧縮プログラム |
Non-Patent Citations (1)
Title |
---|
VO NGOC ANH ET AL.: "Inverted Index Compression Using Word-Aligned Binary Codes", INFORMATION RETRIEVAL, vol. 8, 2005, pages 151 - 166 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018006174A1 (en) * | 2016-07-06 | 2018-01-11 | Kinematicsoup Technologies Inc. | Method of compression for fixed-length data |
US11362674B2 (en) | 2016-07-06 | 2022-06-14 | Kinematicsoup Technologies Inc. | Method of compression for fixed-length data |
CN107919943A (zh) * | 2016-10-11 | 2018-04-17 | 阿里巴巴集团控股有限公司 | 二进制数据的编码、解码方法和装置 |
EP3528389A4 (en) * | 2016-10-11 | 2020-05-13 | Alibaba Group Holding Limited | METHODS AND DEVICES FOR ENCODING AND DECODING BINARY DATA |
CN107919943B (zh) * | 2016-10-11 | 2020-08-04 | 阿里巴巴集团控股有限公司 | 二进制数据的编码、解码方法和装置 |
US10785277B2 (en) | 2016-10-11 | 2020-09-22 | Alibaba Group Holding Limited | Methods and devices for encoding and decoding binary data |
Also Published As
Publication number | Publication date |
---|---|
US20170338834A1 (en) | 2017-11-23 |
US9979415B2 (en) | 2018-05-22 |
JP6227186B2 (ja) | 2017-11-08 |
CN107251438B (zh) | 2020-10-30 |
JPWO2016132430A1 (ja) | 2017-06-01 |
CN107251438A (zh) | 2017-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6227186B2 (ja) | データ圧縮装置、データ伸張装置、データ圧縮方法、データ伸張方法及びプログラム | |
KR100894002B1 (ko) | 선택적 압축과 복원 및 압축 데이터에 대한 데이터 포맷을위한 장치 및 방법 | |
US9847791B2 (en) | System and method for compressing data using asymmetric numeral systems with probability distributions | |
JP7031828B2 (ja) | 意味論的値のデータ圧縮及び解凍のための方法、装置、及びシステム | |
US9041567B2 (en) | Using variable encodings to compress an input data stream to a compressed output data stream | |
US8937563B2 (en) | Using variable length encoding to compress an input data stream to a compressed output data stream | |
US7545291B2 (en) | FIFO radix coder for electrical computers and digital data processing systems | |
WO2009009602A1 (en) | Data coding/decoding for electrical computers and digital data processing systems | |
JP2022520158A (ja) | 動的ハフマン表生成のためのハードウェア領域を節約するためのラッチカウントの削減 | |
JP5619326B2 (ja) | 符号化装置、復号装置、符号化方法、符号化プログラム、復号方法および復号プログラム | |
WO2010044099A1 (en) | Lossless content encoding | |
JP4037875B2 (ja) | コンピュータグラフィックスデータ符号化装置、復号化装置、符号化方法、および、復号化方法 | |
US8638243B2 (en) | Data compression device, data compression method, and medium | |
JP2016052046A (ja) | 圧縮装置、伸長装置およびストレージ装置 | |
AU2017248412A1 (en) | Information processing apparatus, and data management method | |
CN113346913B (zh) | 使用减量的出现次数的数据压缩 | |
JP2010258532A (ja) | ビット長を符号に変換する回路及び方法 | |
US10931303B1 (en) | Data processing system | |
US8711013B2 (en) | Coding circuitry for difference-based data transformation | |
Berz et al. | Comparison of lossless data compression methods | |
Mesut et al. | ISSDC: Digram coding based lossless data compression algorithm | |
US9558109B2 (en) | Method and apparatus for flash memory arithmetic encoding and decoding | |
JP2014027573A (ja) | Ykm形式圧縮プログラムを記録した記録媒体 | |
Klask | P‐26: An Image Compression Scheme for Small Microprocessors | |
Selva et al. | SRComp: short read sequence compression using |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 15882535 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2017500150 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 15536030 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 15882535 Country of ref document: EP Kind code of ref document: A1 |