WO2016004629A1 - 一种计算数据的预期压缩率的方法及装置 - Google Patents
一种计算数据的预期压缩率的方法及装置 Download PDFInfo
- Publication number
- WO2016004629A1 WO2016004629A1 PCT/CN2014/082077 CN2014082077W WO2016004629A1 WO 2016004629 A1 WO2016004629 A1 WO 2016004629A1 CN 2014082077 W CN2014082077 W CN 2014082077W WO 2016004629 A1 WO2016004629 A1 WO 2016004629A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- frequency
- symbol
- length
- frequency sub
- symbols
- Prior art date
Links
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/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- 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/6082—Selection strategies
-
- 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/6058—Saving memory space in the encoder or decoder
-
- 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/3068—Precoding preceding compression, e.g. Burrows-Wheeler transformation
-
- 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
Definitions
- the present invention relates to the field of data processing technologies, and in particular, to a method and apparatus for calculating an expected compression ratio of data. Background technique
- Embodiments of the present invention provide a method and apparatus for calculating an expected compression ratio of data, which are used to solve the defect of low accuracy in the method of calculating the expected compression ratio of the current data.
- a method of calculating an expected compression ratio of data including
- the related indicator includes a cardinality of a symbol set and/or a set of symbol frequencies
- the symbol set includes all symbols appearing in the symbol sequence, and any two symbols in the symbol set are different;
- the cardinality of the set of symbols is the number of all symbols in the set of symbols
- the frequency in the set of symbol frequencies is the number of times each symbol in the set of symbols appears in the sequence of symbols, respectively.
- the expected coding length after the data to be compressed is encoded by using a specified coding manner is calculated according to the related indicator, specifically including :
- each of the symbols in the symbol set is expressed by the fixed length coding mode to have the same bit length.
- the second expected coding length is calculated by recursively dividing the symbol frequency set, and the specific information includes: determining the symbol set When the cardinality is greater than or equal to the preset partitioning threshold, the symbol frequency set is recursively divided to obtain at least two frequency sub-sets obtained after the recursive partitioning is completed; for any one of the at least two frequency sub-sets And a number of sub-sets, the expected code length when the specified number of symbols are expressed by the Huffman coding mode, wherein the specified number is a sum of all frequencies included in the arbitrary frequency subset;
- the sum of the expected code lengths is taken as the second expected code length.
- the symbol frequency set is recursively divided to obtain at least two frequency sub-collections obtained after the recursive partitioning is completed, and specifically includes:
- the frequency is The collection returns to continue the partitioning process.
- the symbol frequency set is divided to obtain two frequency sub-collections, including:
- the two frequency sub-sets obtained by dividing the minimum difference corresponding to the division mode are used as two frequency sub-sets obtained by dividing the symbol frequency set.
- the symbol frequency set is divided to obtain two frequency sub-collections, including:
- the sorted symbol frequency set is sequentially divided into N-1 times according to the following rule, where N is the cardinality of the symbol set;
- the first frequency sub-set and the second frequency sub-divide obtained by dividing the minimum difference corresponding to the division mode are used as the two frequency sub-sets obtained by dividing the symbol frequency set.
- the expected code length when the specified number of symbols are expressed by the Huffman coding mode is calculated, which specifically includes:
- the data type of the data to be compressed is binary data
- the related indicator further includes a cursor The cardinality of the set, the length of the cursor, the maximum run, and any one of the symbols of each group of consecutively repeated symbols;
- the cardinality of the set of cursors is the number of all symbols in the set of cursors
- the cursor length is the space cost of any one of the cursors, wherein the cursors included in the cursor set are equal in length;
- the run range included by the run set is a number of times the cursor included in the cursor set continuously appears at a corresponding position in the symbol sequence;
- the maximum run is the maximum of the number of occurrences of each cursor in a corresponding position line in the symbol sequence.
- the expected coding length after the data to be compressed is encoded by using a specified coding manner is calculated according to the correlation indicator, specifically including : Calculating a bit length required for the maximum run length to be expressed by the run length coding mode, wherein each run length in the run set is expressed by the run length coding mode, and the maximum bit length The lengths of the bits required for the run length code to be expressed by the run length coding method are equal;
- Bit length a product of a bit length required for expressing in the run length coding manner and a base of the cursor set, as required for all the run lengths of the calculated run length coding manner.
- the sum of the bit lengths is used as a third expected code length, where the third expected code length is an expected code length obtained by encoding the data to be compressed by using the run length coding mode.
- an apparatus for calculating an expected compression ratio of data including
- a parsing unit configured to parse the data to be compressed into a sequence of symbols
- An acquiring unit configured to acquire a correlation indicator of the symbol sequence, where the correlation indicator is used to represent a distribution rule of symbols in the symbol sequence;
- a first calculating unit configured to calculate, according to the correlation indicator, an expected code length after the data to be compressed is encoded by using a specified coding manner
- a second calculating unit configured to use a ratio of the calculated expected code length to an initial length of the data to be compressed as an expected compression ratio of the data to be compressed.
- the related indicator obtained by the acquiring unit includes a cardinality and/or a symbol frequency set of the symbol set;
- the symbol set includes all symbols appearing in the symbol sequence, and any two symbols in the symbol set are different;
- the cardinality of the set of symbols is the number of all symbols in the set of symbols
- the frequency in the set of symbol frequencies is the number of times each symbol in the set of symbols appears in the sequence of symbols, respectively.
- each of the symbols in the symbol set is expressed by the fixed length coding mode to have the same bit length.
- the first calculating unit is specifically configured to:
- the second expected code length is calculated by recursively dividing the set of symbol frequencies, wherein the second expected code length is a length of the expected code after the data to be compressed is encoded by Huffman coding.
- the first calculating unit is configured to recursively divide the symbol frequency set to calculate a second expected coding length, For:
- the sum of the expected code lengths is taken as the second expected code length.
- the first calculating unit recursively divides the symbol frequency set to obtain at least two frequency sub-collections obtained after the recursive partitioning is completed, specifically:
- the frequency is The collection returns to continue the partitioning process.
- the two frequency sub-sets divided by the division method corresponding to the minimum difference are used as the opposite
- the set of symbol frequencies is divided to obtain two subsets of frequency.
- the first calculating unit when the symbol frequency set is divided, to obtain two frequency sub-collections, specifically:
- the sorted symbol frequency set is sequentially divided into N-1 times according to the following rule, where N is the cardinality of the symbol set;
- the first frequency sub-set and the second frequency sub-divide obtained by dividing the minimum difference corresponding to the division mode are used as the two frequency sub-sets obtained by dividing the symbol frequency set.
- the first calculating unit is configured to calculate a specified number of symbols when the Huffman coding manner is used When the length of the code is expected, it is specifically:
- the data type of the data to be compressed is binary data
- the correlation acquired by the acquiring unit is The indicator further includes a cardinality of the cursor set, a cursor bit length, a maximum run length, and any one of each group of consecutively repeated symbols;
- the cardinality of the set of cursors is the number of all symbols in the set of cursors
- the cursor length is the space cost of any one of the cursors, wherein the cursors included in the cursor set are equal in length;
- the run range included by the run set is a number of times the cursor included in the cursor set continuously appears at a corresponding position in the symbol sequence;
- the maximum run is the maximum of the number of occurrences of each cursor in a corresponding position line in the symbol sequence.
- the first calculating unit is specifically configured to:
- Bit length a product of a bit length required for expressing in the run length coding manner and a base of the cursor set, as required for all the run lengths of the calculated run length coding manner.
- the sum of the bit lengths is taken as a third expected code length, wherein the third expected code length
- the expected code length obtained by encoding the data to be compressed by using the run length coding mode.
- the expected compression ratio of the data when calculating the expected compression ratio of the data, it is calculated according to the standard deviation of the frequency of the symbol, or according to the XOR value of the continuous symbol and the standard deviation of the difference, and the standard deviation of the frequency of the symbol, Or, the difference between the XOR value of the continuous symbol and the standard deviation of the difference is small. Therefore, the current method for calculating the expected compression ratio of the data has the disadvantage that the accuracy is low.
- a A method for calculating an expected compression ratio of data parsing the data to be compressed into a symbol sequence, and obtaining a correlation index of the symbol sequence; wherein, the correlation indicator is used to characterize the distribution rule of the symbol in the symbol sequence; and the calculation is to be compressed according to the relevant index
- the data is the expected code length encoded by the specified coding mode, and the ratio of the calculated expected code length to the initial length of the data to be compressed is used as the expected compression ratio of the data to be compressed.
- the symbol sequence is used.
- the correlation index of the symbol distribution law in the sequence has a high correlation with the expected compression ratio of the data, and the calculation process considers the technical characteristics of the compression coding method. Therefore, the accuracy of the current method for calculating the expected compression ratio of the data is solved. A lower degree of defects.
- FIG. 3 is a schematic diagram showing the functional structure of an apparatus for calculating an expected compression ratio of data according to an embodiment of the present invention
- FIG. 4 is a schematic diagram showing the physical structure of an apparatus for calculating an expected compression ratio of data according to an embodiment of the present invention.
- system and “network” are often used interchangeably herein.
- the term “and/or” is merely an association describing an associated object, indicating that there may be three relationships, such as , A and / or B, can mean: There are A alone, there are A and B, there are three cases of B.
- the letter "/" in this article generally indicates that the context of the context is an “or” relationship .
- the compressibility of the data is fundamentally dependent on the redundancy characteristics of the data itself.
- the existing process calculates the expected compression ratio of the data according to the standard deviation of the frequency of the symbol, or based on the exclusive value of the continuous symbol and the standard deviation of the difference, and the standard deviation of the frequency of the symbol, or The XOR value of the continuous symbol and the standard deviation of the difference are less correlated with the expected compression ratio. Therefore, the current method of calculating the expected compression ratio of the data has the disadvantage of lower accuracy, in order to solve the expectation of the current calculation data.
- a method for calculating an expected compression ratio of data is proposed.
- the data to be compressed is parsed into a symbol sequence, and the symbol sequence is obtained.
- Related indicators wherein, the relevant indicators are used to characterize the distribution of symbols in the symbol sequence;
- Off indicator calculating the expected code length of the data to be compressed encoded by the specified coding mode, and using the ratio of the calculated expected code length to the initial length of the data to be compressed as the expected compression ratio of the data to be compressed, in this scheme
- Calculating the expected compression ratio of the data by using the correlation index of the distribution law of the symbols in the symbol sequence, and the correlation index indicating the distribution law of the symbols in the symbol sequence has a high correlation with the expected compression ratio of the data, thus solving the present A less accurate defect exists in the process of calculating the expected compression ratio of the data.
- Step 100 Parse the data to be compressed into a symbol sequence
- Step 110 Obtain a correlation indicator of a symbol sequence, where the correlation indicator is used to represent a distribution rule of symbols in the symbol sequence;
- Step 120 Calculate, according to the relevant indicator, an expected code length after the data to be compressed is encoded by using a specified coding manner
- Step 130 The ratio of the calculated expected code length to the initial length of the data to be compressed is taken as the expected compression ratio of the data to be compressed.
- the related indicator has multiple forms, and optionally, may include a cardinality and/or a symbol frequency set of the symbol set;
- the symbol set includes all symbols appearing in the symbol sequence, and any two symbols in the symbol set are different;
- the cardinality of the symbol set is the number of all symbols in the symbol set
- the frequency in the set of symbol frequencies is the number of times each symbol in the set of symbols appears in the sequence of symbols.
- the symbol set of the symbol sequence is (ABCDEFG), and the symbol frequency set is (4244668), wherein the frequency 4 at the 1st bit is the number of times the symbol A appears in the symbol sequence, located at The frequency 2 of the 2nd bit is the number of times the symbol B appears in the symbol sequence, the frequency 4 at the 3rd bit is the number of times the symbol C appears in the symbol sequence, and the frequency 5 at the 4th bit is the symbol D appearing in the symbol sequence.
- the frequency 6 at the 5th bit is the number of times the symbol E appears in the symbol sequence
- the frequency 6 at the 6th bit is the number of times the symbol F appears in the symbol sequence
- the frequency 8 at the 7th bit is the symbol G at The number of occurrences in the sequence of symbols.
- the relevant indicator there are various ways to calculate the expected code length after the data to be compressed is encoded by the specified coding mode. Alternatively, the following manner may be used:
- the symbol sequence is (ABBCCCDDDDEEEEEFFFFFFGGGGGGGACAEAG), (ABCDEFG) is a symbol set, and when the symbol sequence is encoded by fixed length coding, the bit length of each symbol after encoding is equal, that is, the symbol A, When the symbol B, the symbol C, the symbol D, the symbol E, the symbol F, and the symbol G are expressed by the fixed length coding method, the occupied bit lengths are equal, wherein any one of the symbols in the determined symbol set is used.
- the long coding mode expresses the bit length, it can be implemented by using the formula 1:
- n is the length of any one of the symbols expressed by the fixed length coding mode
- N is the cardinality of the symbol set.
- the first expected code length obtained by encoding the data to be compressed by the fixed length coding mode is 34 and the product of "lo g2 7l.
- the second expected code length is calculated by recursively dividing the symbol frequency set, wherein the second expected code length is an expected code length after the data to be compressed is encoded by Huffman coding.
- the symbol frequency set is recursively divided to obtain at least two frequency sub-collections obtained after the recursive partitioning is completed;
- the sum of the expected code lengths is taken as the second expected code length.
- the symbol frequency set is (4, 2, 2, 2, 1, 1, 1), and the symbol frequency set is divided by recursive partitioning.
- four frequency sub-sets are obtained: frequency sub-set 1 ( 4, 2), frequency sub-set 2 (2, 2), frequency sub-set 3 (1), frequency sub-set 4 (1, 1), for frequency sub-set 1, calculate Huffman coded expression frequency sub-set 1 (4, 2)
- the frequency sub-set 4 (1, 1) is calculated according to the calculation process for the frequency sub-set 1 corresponding to the expected expected code length 2, the expected code length 3, the expected code length 4, and the expected code length 1 and the expected code length 2 are calculated.
- the sum of the expected code length 3 and the expected code length 4 is expected, and the sum of the sums is taken as the second expected code length.
- the symbol frequency set is recursively divided, and the manner of obtaining at least two frequency sub-sets obtained after the recursive partitioning is completed is applicable.
- the following manner may be used: The number sub-set repeatedly performs the following division processing until the base of the divided frequency subset is less than the preset base threshold, or until the recursive division reaches the preset level threshold, the division is stopped:
- the symbol frequency set is (4, 3, 3, 2, 2, 2, 1, 1, 1)
- the first division obtains two frequency sub-sets, that is, the first-order division obtains two frequency sub-sets.
- (4, 3, 3) 3, 2, 2, 2, 1, 1, 1)
- the second division dividing (4, 3, 3) into two frequency sub-sets: (4 ), (3, 3), divide (3, 2, 2, 2, 1, 1, 1) into two frequency sub-sets: (3, 2), (2, 2, 1, 1, 1), That is, the second division gets four frequencies
- Subsets: (4), (3, 3), (3, 2), (2, 2, 1, 1, 1), hypothesis (4), (3, 3), (3, 2), (2 2, 1, 1, 1) can not be divided again.
- the symbol frequency set is recursively divided, and at least two frequency sub-sets obtained after the recursive division is completed are: (4) , ( 3, 3), (3, 2), (2, 2, 1, 1, 1); if (2, 2, 1, 1, 1) can be further divided into (2, 2), (1 1, 1), that is, three-level division obtains two frequency sub-sets: (2, 2), (1, 1, 1).
- the symbol frequency set is recursively divided to obtain recursive division.
- the at least two frequency sub-sets obtained after completion are: (4), (3, 3), (3, 2), (2, 2), (1, 1, 1).
- the symbol frequency set is divided, and the two frequency sub-sets are obtained in multiple ways.
- the following methods may be used:
- the two frequency sub-sets obtained by dividing the minimum difference corresponding to the division method are divided into two frequency sub-sets obtained by dividing the symbol frequency set.
- the symbol frequency set is divided to obtain two frequency sub-sets
- Body includes:
- the sorted symbol frequency set is sequentially divided into N-1 times according to the following rules, where N is the cardinality of the symbol set;
- the first frequency sub-set and the second frequency sub-divide obtained by dividing the minimum difference corresponding to the division mode are used as the two frequency sub-sets obtained by dividing the symbol frequency set.
- the product of the calculated expected bit length and the arbitrary one frequency is used as the number of symbols of the arbitrary frequency, and the expected code length when expressed by Huffman coding;
- the calculated number of symbols of the sum of all the frequencies in the arbitrary frequency sub-set, and the total expected coding length when expressed in Huffman coding, as a specified number of symbols, expressed in Huffman coding The expected code length.
- the method for calculating the expected bit length required for the symbol corresponding to the frequency is expressed by the Huffman coding method.
- Huffman coding method A variety of, optional, can be used as follows: Determining the recursive partitioning level as the first bit length required for the symbol corresponding to the frequency to be expressed by Huffman coding;
- the calculated sum of the first bit length and the second bit length is used as the expected bit length required for the symbol corresponding to the frequency to be expressed in Huffman coding.
- the recursive division is 3, and the first digit is 3.
- the second bit length required for expressing the symbol in Huffman coding mode can be calculated by using Equation 1.
- N is the cardinality of the frequency subset of any frequency
- n is the second bit length.
- the data type of the data to be compressed is binary data
- the related indicators further include a cardinality of the cursor set, a cursor length, and a maximum run length
- the cursor set includes a symbol in the symbol sequence that is different from the adjacent symbols, and any one of the consecutively repeated symbols in each group;
- the cardinality of the cursor set is the number of all symbols in the cursor set
- the cursor length is the space cost of any cursor in the cursor set, wherein each cursor included in the cursor set has the same bit length;
- the run set includes a run for the number of times the cursor included in the set of cursors appears consecutively at the corresponding position in the sequence of symbols.
- the maximum run is the maximum of the number of consecutive occurrences of each cursor in the corresponding position in the symbol sequence.
- the cursor is a symbol different from the previous adjacent symbol in the symbol sequence, wherein the non-adjacent cursors may be the same symbol; the run is the number of consecutive repetitions of the cursor; It consists of symbols that appear in the sequence of symbols, and any two symbols in the set of symbols are different.
- the symbol sequence is ( ABBCCCDDDDEEEEEFFFFFFGGGGGGGACAEAG )
- the cursor set is
- the cursor of the first position in the cursor set has a run of 1
- the cursor of the second position in the cursor set has a run of 2
- the run of the third cursor of the third set in the cursor set is 3
- the cursor D of the 4th digit in the cursor set has a run of 4
- the cursor of the 5th digit in the cursor set has a run of 5
- the cursor of the 6th cursor in the cursor set has a run of 6 .
- the cursor of the seventh bit in the cursor set has a run of 7
- the cursor of the eighth bit in the cursor set has a run of 1
- the cursor of the ninth bit in the cursor set has a run of 1 and is in the cursor.
- the cursor A of the 10th place in the set has a run of 1
- the cursor E of the 11th place in the cursor set has a run of 1
- the cursor A of the 12th place in the cursor set has a run of 1 and is in the cursor set.
- the 13th cursor G has a run of 1.
- the calculated maximum run length is the product of the bit length required by the run length coding method and the base of the cursor set, and is used as the calculated bit length required for all run-length run-length coding expressions;
- the sum of the bit lengths is taken as a third expected code length, wherein the third expected code length is an expected code length obtained by encoding the data to be compressed using run-length coding.
- the formula 1 when calculating the bit length required for the maximum run length to use the run length coding mode, the formula 1 may be used for calculation.
- N is the maximum run, such as the symbol sequence ABBCCCDDDDEEEEEFFFFFFGGGGGGGACAEAG, at this time, the maximum run For 7, the length of the bit required for each run-length run-length encoding is "lo g2 7l".
- the calculated expected code length and the initial length of the data to be compressed are calculated.
- the ratio of the degree, as the expected compression ratio of the data to be compressed may be as follows: determining a preset length of any symbol included in the symbol sequence, wherein the preset length of each symbol included in the symbol sequence is equal;
- the ratio of the calculated third expected code length to the initial length is taken as the third expected compression ratio of the data to be compressed.
- the data to be compressed is compressed by the specified coding mode.
- the following manner when it is determined that the expected compression ratio reaches the preset threshold of the compression rate, when the compressed data is to be compressed by the specified coding mode, optionally, the following manner may be used:
- the data to be compressed is compressed by using a fixed length coding method
- the data to be compressed is compressed by Huffman coding
- the compressed data is compressed by the run length coding method.
- the ratio of the calculated fourth expected code length to the initial length of the cursor set is taken as the expected compression ratio of the cursor set.
- the following operations when it is determined that the expected compression ratio reaches the preset threshold of the compression rate, when the compressed data is to be compressed by the specified coding mode, optionally, the following operations may be used:
- the product of the third expected compression ratio, the ratio, and the expected compression ratio of the cursor set is determined.
- the compressed data is compressed by the run length coding method and the fixed length coding method.
- the ratio of the calculated fifth expected code length to the initial length of the cursor set as a tour The expected compression ratio of the target set.
- the following manner when it is determined that the expected compression ratio reaches the preset threshold of the compression rate, when the compressed data is to be compressed by the specified coding mode, optionally, the following manner may be used:
- the product of the third expected compression ratio, the ratio, and the expected compression ratio of the set of cursors is determined.
- the preset threshold of the compression rate is reached, the data to be compressed is compressed by the run length coding method and the Huffman coding method.
- the correlation indicator when the data type of the data to be compressed is text data, the correlation indicator further includes a cardinality of the symbol pair set and/or a symbol pair frequency set;
- the symbol pair set includes a set of symbol pairs appearing in the symbol sequence, and any two symbol pairs in the symbol pair set are different, and any one symbol pair is any two adjacent symbols in the symbol sequence;
- the cardinality of the pair of symbols is the number of pairs of symbols contained in the pair of symbols
- the symbol pair frequency set includes the number of times each symbol pair in the symbol pair set appears in the symbol sequence.
- the following manner when calculating the expected code length after the data to be compressed is encoded by the specified coding mode, optionally, the following manner may be used:
- the symbol lengths required for each symbol pair in the symbol pair set are expressed in a fixed length coding manner.
- the expected code length after the data to be compressed is encoded by the specified coding mode.
- the seventh expected code length is calculated by recursively dividing the symbol pair frequency set, wherein the seventh expected code length is an expected code length after the data to be compressed is encoded by Huffman coding.
- the seventh expected coding length by recursively dividing the symbol pair frequency set.
- the following manner may be used:
- the sum of the expected code lengths is taken as the seventh expected code length.
- the symbol pair is recursively divided, and the method for obtaining at least two frequency sub-collections obtained after the recursive partitioning is completed is applicable.
- the frequency sub-set repeatedly performs the following division processing, until the base of the divided frequency subset is less than the preset base threshold, or until the recursive division reaches the preset level threshold, the division is stopped:
- the symbol pair frequency group is divided, and there are multiple ways to obtain two frequency sub-sets.
- the following methods may be used:
- the two frequency sub-sets obtained by dividing the minimum difference corresponding to the division method are used as the two frequency sub-sets obtained by dividing the symbol-pair frequency set.
- the symbol pair frequency group is divided, and there are multiple ways to obtain two frequency sub-sets.
- the following methods may be used:
- the sorted symbol pair frequency series is sequentially divided into N-1 times according to the following rules, where N is the cardinal number of the symbol pair set;
- the first frequency sub-set and the second frequency sub-set obtained by dividing the minimum difference corresponding to the division manner are used as the two frequency sub-sets obtained by dividing the symbol pair frequency set.
- the manner of calculating the expected bit length required by the symbol corresponding to the frequency in the Huffman coding manner is calculated. There are a variety of, optional, you can use the following methods:
- the calculated sum of the first bit length and the second bit length is used as the expected bit length required for the symbol pair corresponding to the frequency to be expressed by Huffman coding.
- the recursive division is 3, and the first digit is 3.
- the formula can be used to calculate the second bit length required by the Huffman coding method.
- N is the cardinality of the frequency subset of any frequency
- n is the second bit length.
- the ratio of the calculated expected code length to the initial length of the data to be compressed is used as the expected compression ratio of the data to be compressed.
- the ratio of the calculated seventh expected code length to the initial length is taken as the seventh expected compression ratio of the data to be compressed.
- the formula 1 when calculating the first bit length required to express the determined pair of symbols, the formula 1 may be used.
- N is the number of pairs of symbols
- n is the first bit length.
- the formula 1 when calculating the second bit length required for the sum of the symbols of all the frequencies included in the frequency set, the formula 1 may also be used.
- N is all the frequencies included in the symbol pair frequency set.
- the sum of n is the second digit.
- the cardinality of the symbol set is 9, then the number of pairs of symbols formed by 9 symbols is 81, and the first bit length nl is "log 2 8l1 , and the sum of all frequencies included in the symbol pair frequency set is 46, then the second The bit length n2 is "log 2 46l. Since nl is greater than n2, the product of n2 and 46 is taken as the initial length of the data to be compressed.
- the data to be compressed is compressed by the specified coding mode.
- the compressed data when determining that the expected compression ratio reaches the preset threshold of the compression rate, there are multiple ways to compress the data to be compressed by using the specified coding mode.
- the following manner may be used: When it is determined that the sixth expected compression ratio reaches the preset threshold of the compression rate, the compressed data is compressed by using a fixed length coding manner; or
- the data to be compressed is compressed by Huffman coding.
- the preset length of any one of the symbols included in the determined symbol sequence may be a preset length, such as 1 byte, or 2 bytes. Of course, it may also change according to other application scenarios. This is no longer done - detail.
- Step 200 Parse the data to be compressed into a symbol sequence (ABBDDEEEEFFFFFFABAC); Step 210: Obtain a correlation indicator of the symbol sequence, where the correlation indicator is used to represent a distribution rule of symbols in the symbol sequence;
- the correlation indicator includes the cardinality of the symbol set, wherein the symbol set is (ABCDEF), the cardinality of the symbol set is 6, and the symbol frequency set is (3, 3, 1, 2, 4, 6).
- Step 220 Calculate, according to the base 6 of the symbol set, a bit length required for expressing any symbol included in the symbol set (ABCDEF) by using a fixed length coding manner;
- each symbol in the symbol set (ABCDEF) is equal in length when expressed in fixed length coding, that is, symbol A, symbol B, symbol C, symbol D, symbol E,
- the symbol lengths required for the symbol F ⁇ to be expressed in fixed length coding are equal.
- Step 230 Determine a product of the calculated bit length and a sum of all frequencies 19 included in the frequency set;
- Step 240 The product is used as a first expected code length, where the first expected code length is an expected code length obtained by encoding the data to be compressed by using a fixed length coding mode;
- Step 250 The ratio of the calculated first expected code length to the initial length of the data to be compressed is taken as the first expected compression ratio of the data to be compressed.
- an embodiment of the present invention provides an apparatus for calculating an expected compression ratio of data, where the apparatus for calculating an expected compression ratio includes a parsing unit 30, and obtaining The unit 31, the first calculating unit 32, and the second calculating unit 33, wherein:
- the parsing unit 30 is configured to parse the data to be compressed into a symbol sequence
- An obtaining unit 31 configured to acquire a correlation indicator of a symbol sequence, where the correlation indicator is used to represent a distribution rule of symbols in the symbol sequence;
- a first calculating unit 32 configured to calculate, according to the relevant indicator, an expected code length that is to be compressed by using a specified encoding manner
- the second calculating unit 33 is configured to use a ratio of the calculated expected code length to an initial length of the data to be compressed as an expected compression ratio of the data to be compressed.
- the correlation indicator obtained by the obtaining unit 31 includes a cardinality and/or a symbol frequency set of the symbol set;
- the symbol set includes all symbols appearing in the symbol sequence, and any two symbols in the symbol set are different;
- the cardinality of the symbol set is the number of all symbols in the symbol set
- the frequency in the set of symbol frequencies is the number of times each symbol in the set of symbols appears in the sequence of symbols, respectively.
- the first calculating unit 32 is specifically configured to:
- each of the symbols in the symbol set is expressed by a fixed length coding method and the bit lengths required are equal.
- the first calculating unit 32 is specifically configured to:
- the second expected code length is calculated by recursively dividing the symbol frequency set, wherein the second expected code length is an expected code length after the data to be compressed is encoded by Huffman coding. Degree.
- the specific calculation unit is:
- the symbol frequency set is recursively divided to obtain at least two frequency sub-collections obtained after the recursive partitioning is completed;
- the sum of the expected code lengths is taken as the second expected code length.
- the first calculating unit 32 recursively divides the symbol frequency set to obtain at least two frequency sub-collections obtained after the recursive partitioning is completed, specifically:
- the first calculating unit 32 divides the symbol frequency set to obtain two frequency sub-sets, which are specifically:
- the two frequency sub-sets obtained by dividing the minimum difference corresponding to the division method are divided into two frequency sub-sets obtained by dividing the symbol frequency set.
- the first calculating unit 32 divides the symbol frequency set to obtain two frequency sub-sets, which are specifically:
- the sorted symbol frequency set is sequentially divided into N-1 times according to the following rules, where N is the cardinality of the symbol set;
- the first frequency sub-set and the second frequency sub-divide obtained by dividing the minimum difference corresponding to the division mode are used as the two frequency sub-sets obtained by dividing the symbol frequency set.
- the first calculation unit 32 when calculating the expected coding length when the specified number of symbols are expressed by Huffman coding, is specifically: Performing, for each frequency component included in the arbitrary frequency sub-set, performing: determining a recursive partitioning level corresponding to the frequency subset of the arbitrary frequency group;
- the product of the calculated expected bit length and the arbitrary one frequency is used as the number of symbols of the arbitrary frequency, and the expected code length when expressed by Huffman coding;
- the calculated number of symbols of the sum of all the frequencies in the arbitrary frequency sub-set, and the total expected coding length when expressed in Huffman coding, as a specified number of symbols, expressed in Huffman coding The expected code length.
- the data type of the data to be compressed is binary data
- the related indicators obtained by the obtaining unit 31 further include a cardinality of the cursor set, a cursor length, and a maximum run length
- the cursor set includes a symbol in the symbol sequence that is different from the adjacent symbols, and any one of the consecutively repeated symbols in each group;
- the cardinality of the cursor set is the number of all symbols in the cursor set
- the cursor length is the space cost of any cursor in the cursor set, wherein each cursor included in the cursor set has the same bit length;
- the run range included by the run set is the number of times the cursor included in the cursor set continuously appears in the corresponding position in the symbol sequence;
- the maximum run is the maximum of the number of times each cursor appears in the corresponding position in the symbol sequence.
- the first calculating unit 32 is specifically configured to:
- the calculated maximum run length is the product of the bit length required by the run length coding method and the base of the cursor set, and is used as the calculated bit length required for all run-length run-length coding expressions;
- the product of the cardinality of the cursor set as the calculated bit length of all cursors; Determining the calculated bit length of all the cursors, and the sum of the bit lengths required for the expression of all the run-length run-length coding methods;
- the sum of the bit lengths is taken as a third expected code length, wherein the third expected code length is an expected code length obtained by encoding the data to be compressed using run-length coding.
- the network interface card includes at least one processor 401, a communication bus 402, a memory 403, and at least one communication interface 404.
- the communication bus 402 is used to implement the connection and communication between the above components, and the communication interface 404 is used to connect and communicate with external devices.
- the memory 403 is configured to store program code that needs to be executed.
- the processor 401 executes the program code in the memory 403, the following functions are implemented:
- the ratio of the calculated expected code length to the initial length of the data to be compressed is taken as the expected compression ratio of the data to be compressed.
- a method for calculating an expected compression ratio of data is provided.
- the data to be compressed is parsed into a symbol sequence, and related indicators of the symbol sequence are obtained; wherein, the relevant indicator is used for Characterizing the distribution law of symbols in the symbol sequence; calculating the expected code length after encoding the data to be compressed by the specified coding mode according to the relevant index, and using the ratio of the calculated expected code length to the initial length of the data to be compressed as the to-be-compressed The expected compression ratio of the data.
- the correlation index of the distribution law of the symbols in the symbol sequence is used to calculate the expected compression ratio of the data in the symbol sequence, and the expected compression of the data is characterized.
- the rate correlation is high, thus solving the drawbacks that are currently less accurate in the process of calculating the expected compression ratio of the data.
- the present invention has been described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each flow and/or block of the flowchart illustrations and/or FIG.
- These computer program instructions can be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing device to produce a machine for the execution of instructions for execution by a processor of a computer or other programmable data processing device.
- the computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction device.
- the apparatus functions in one or more blocks of a flow or a flow diagram and/or block diagram of a flowchart.
- These computer program instructions can also be loaded onto a computer or other programmable data processing device such that a series of operational steps are performed on a computer or other programmable device to produce computer-implemented processing for execution on a computer or other programmable device.
- the instructions provide steps for implementing the functions in one or more blocks of the flowchart or in a flow or block of the flowchart.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
一种计算数据的预期压缩率的方法及装置,涉及数据处理技术领域,在该方案中,是用表征符号序列中的符号的分布规律的相关指标来计算数据的预期压缩率的,表征符号序列中的符号的分布规律的相关指标与数据的预期压缩率相关性较高,因此,解决了现在在计算数据的预期压缩率的过程中存在的准确度较低的缺陷。
Description
一种计算数据的预期压缩率的方法及装置 技术领域
本发明涉及数据处理技术领域, 特别涉及一种计算数据的预期压缩率的 方法及装置。 背景技术
随着信息社会的发展, 数据量以指数级的形式进行增长, 数据压缩以可 以消除信息冗余, 提高数据传输效率、 存储资源的利用率的优点而广泛应用 于各个领域。
在压缩数据过程中,需要占用 CPU ( Central Processing Unit, 中央处理器) 和内存资源, 对系统性能有一定程度的负面影响, 数据的可压缩性根本上取 决于其数据自身的冗余特征, 也就是说不是所有的数据都适合压缩, 例如, 现有研究表明, 压缩低冗余度的数据会引起更多的计算开销, 严重浪费系统 资源。 因此, 在数据压缩之前, 判定数据是否适合进行压缩的技术显得尤为 重要。
目前, 在判定数据是否适合进行压缩时, 根据预期压缩率来判断, 但是, 目前计算预期压缩率的方法存在准确度较低的缺陷。 发明内容
本发明实施例提供一种计算数据的预期压缩率的方法及装置, 用以解决 当前计算数据的预期压缩率的方法中存在的准确度较低的缺陷。
本发明实施例提供的具体技术方案如下:
第一方面, 提供一种计算数据的预期压缩率的方法, 包括
将待压缩数据解析为符号序列;
获取所述符号序列的相关指标, 其中, 所述相关指标用于表征所述符号 序列中的符号的分布规律;
根据所述相关指标, 计算将所述待压缩数据釆用指定编码方式编码后的 预期编码长度;
将计算得到的预期编码长度与所述待压缩数据的初始长度的比值, 作为 所述待压缩数据的预期压缩率。
结合第一方面, 在第一种可能的实现方式中, 所述相关指标包括符号集 合的基数和 /或符号频数集合;
其中, 所述符号集合包括所述符号序列中出现的所有符号, 且所述符号 集合中的任意两个符号均不相同;
所述符号集合的基数为所述符号集合中的所有符号的个数;
所述符号频数集合中的频数为所述符号集合中的各个符号分别在所述符 号序列中分别出现的次数。
结合第一方面的第一种可能的实现方式, 在第二种可能的实现方式中, 根据所述相关指标, 计算将所述待压缩数据釆用指定编码方式编码后的预期 编码长度, 具体包括:
根据所述符号集合的基数, 计算所述符号集合所包括的任意一符号釆用 定长编码方式表达时所需要的位长, 其中, 所述符号集合中的每一个符号釆 用所述定长编码方式表达时所需要的位长均相等;
确定计算出的位长与所述符号频数集合中包括的所有频数之和的乘积; 将确定的乘积作为第一预期编码长度, 其中, 所述第一预期编码长度为 将所述待压缩数据釆用所述定长编码方式编码得到的预期编码长度;
其中, 所述符号集合中的每一个符号釆用所述定长编码方式表达时所需 要的位长均相等。
结合第一方面的第一种可能的实现方式, 在第三种可能的实现方式中, 根据所述相关指标, 计算将所述待压缩数据釆用指定编码方式编码后的预期 编码长度, 具体包括:
通过对所述符号频数集合进行递归划分, 计算第二预期编码长度, 其中, 所述第二预期编码长度为将所述待压缩数据釆用哈夫曼编码方式编码后的预
期编码长度。
结合第一方面的第三种可能的实现方式, 在第四种可能的实现方式中, 通过对所述符号频数集合进行递归划分, 计算第二预期编码长度, 具体包括: 确定所述符号集合的基数大于或者等于预设划分门限值时, 将所述符号 频数集合进行递归划分, 获取递归划分完成后得到的至少两个频数子集合; 针对所述至少两个频数子集合中的任意一频数子集合, 计算指定数目个 符号釆用所述哈夫曼编码方式表达时的预期编码长度, 其中, 所述指定数目 为该任意一频数子集合中包括的所有频数之和;
将针对每一个频数子集合分别计算出的预期编码长度相加, 得到预期编 码长度之和;
将所述预期编码长度之和, 作为所述第二预期编码长度。
结合第一方面的第四种可能的实现方式, 在第五种可能的实现方式中, 将所述符号频数集合进行递归划分, 获取递归划分完成后得到的至少两个频 数子集合, 具体包括:
对划分得到的每个频数子集合重复执行下述划分处理, 直至划分得到的 频数子集合的基数小于所述预设基数门限值时, 或者直至递归划分级数达到 预设级数门限值时, 停止划分:
对所述符号频数集合进行划分, 得到两个频数子集合;
针对每个频数子集合, 确定出该频数子集合的基数大于或者等于所述预 设基数门限值, 或者递归划分级数大于或者等于所述预设级数门限值时, 对 该频数子集合返回继续执行划分处理。
结合第一方面的第五种可能的实现方式, 在第六种可能的实现方式中, 对所述符号频数集合进行划分, 得到两个频数子集合, 具体包括:
确定对所述符号频数集合进行划分的所有划分方式;
针对每种划分方式, 分别执行:
釆用该划分方式对所述符号频数集合进行划分, 得到两个频数子集合; 判定得到的两个频数子集合中的第一频数子集合中包括的任意一频数,
是否均大于或者等于得到的两个频数子集合中的第二频数子集合中包括的任 一频数;
从所有划分方式中确定出指定划分方式, 其中, 所述指定划分方式中的 任意一种划分方式下得到的两个频数子集合中的第一频数子集合中包括的任 意一频数, 均大于或者等于得到的两个频数子集合中的第二频数子集合中包 括的任意一频数;
针对所述指定划分方式中的每种划分方式, 计算该划分方式下得到的两 个频数子集合中的第一频数子集合包括的所有频数之和与第二频数子集合包 括的所有频数之和之间的差值;
从得到的所有差值中, 确定出最小差值;
将该最小差值对应的划分方式下划分得到的两个频数子集合, 作为对所 述符号频数集合进行划分, 得到的两个频数子集合。
结合第一方面的第五种可能的实现方式, 在第七种可能的实现方式中, 对所述符号频数集合进行划分, 得到两个频数子集合, 具体包括:
将所述符号频数集合中包括的所有频数进行排序;
将排序后的符号频数集合, 按照如下规则依次进行 N-1次划分, N为所述 符号集合的基数;
将排序后的符号频数集合中的排序在首位的频数、 排序在第 X位的频数, 及位于排序在首位和第 X位之间的所有频数, 作为第 X次划分得到的第一频数 子集合, 其中, X为大于等于 1小于等于 N-1的正整数;
将排序后的符号频数集合中的排序在末位的频数,及排序在末位和第 X位 之间的所有频数, 作为所述第 X次划分得到的第二频数子集合;
计算针对每一次划分得到的第一频数子集合包括的所有频数之和, 与第 二频数子集合包括的所有频数之和之间的差值;
将最小差值对应划分方式下划分得到的第一频数子集合与第二频数子集 合, 作为对所述符号频数集合划分, 得到的两个频数子集合。
结合第一方面的第四至第七种可能的实现方式, 在第八种可能的实现方
式中, 计算指定数目个符号釆用所述哈夫曼编码方式表达时的预期编码长度, 具体包括:
针对该任意一频数子集合中包含的任意一频数, 分别执行:
确定该任意一频数所在频数子集合对应的递归划分级数;
根据确定出的递归划分级数和所述任意一频数所在频数子集合的基数, 计算该频数所对应的符号釆用所述哈夫曼编码方式表达时所需要的预期位 长;
将计算出的预期位长与该任意一频数的乘积, 作为该任意一频数数目个 符号, 釆用所述哈夫曼编码方式表达时的预期编码长度;
将计算出的该任意一频数子集合中的所有频数之和的数目个符号, 釆用 所述哈夫曼编码方式表达时的总预期编码长度, 作为指定数目个符号釆用所 述哈夫曼编码方式表达时的预期编码长度。
结合第一方面, 或者第一方面的第一至第八种可能的实现方式, 在第九 种可能的实现方式中, 所述待压缩数据的数据类型为二进制数据, 所述相关 指标还包括游标集合的基数、 游标位长、 最大游程; 及每一组连续重复出现的符号中的任意一符号;
所述游标集合的基数为所述游标集合中的所有符号的个数;
所述游标位长为所述游标集合中的任意一游标的空间开销, 其中, 所述 游标集合中包含的各游标的位长均相等;
所述游程集合包括的游程为所述游标集合包括的游标在所述符号序列中 的对应位置连续出现的次数;
所述最大游程为各游标分别在所述符号序列中的对应位置连线出现的次 数中的最大值。
结合第一方面的第九种可能的实现方式, 在第十种可能的实现方式中, 根据所述相关指标, 计算将所述待压缩数据釆用指定编码方式编码后的预期 编码长度, 具体包括:
计算所述最大游程釆用所述游程编码方式表达时所需要的位长, 其中, 所述游程集合中的每一个游程釆用所述游程编码方式表达时所需要的位长, 与所述最大游程釆用所述游程编码方式表达时所需要的位长均相等;
将计算出的所述最大游程釆用所述游程编码方式表达时所需的位长, 与 所述游标集合的基数的乘积, 作为计算出的所有游程釆用所述游程编码方式 表达所需要的位长;
将所述游标位长与所述游标集合的基数的乘积, 作为计算出的所有游标 的位长;
确定计算得到的所有游标的位长, 与计算得到的所有游程釆用所述游程 编码方式表达所需要的位长之和;
将所述位长之和作为第三预期编码长度, 其中, 所述第三预期编码长度 为将所述待压缩数据釆用所述游程编码方式编码得到的预期编码长度。
第二方面, 提供一种计算数据的预期压缩率的装置, 包括
解析单元, 用于将待压缩数据解析为符号序列;
获取单元, 用于获取所述符号序列的相关指标, 其中, 所述相关指标用 于表征所述符号序列中的符号的分布规律;
第一计算单元, 用于根据所述相关指标, 计算将所述待压缩数据釆用指 定编码方式编码后的预期编码长度;
第二计算单元, 用于将计算得到的预期编码长度与所述待压缩数据的初 始长度的比值, 作为所述待压缩数据的预期压缩率。
结合第二方面, 在第一种可能的实现方式中, 所述获取单元获取的相关 指标包括符号集合的基数和 /或符号频数集合;
其中, 所述符号集合包括所述符号序列中出现的所有符号, 且所述符号 集合中的任意两个符号均不相同;
所述符号集合的基数为所述符号集合中的所有符号的个数;
所述符号频数集合中的频数为所述符号集合中的各个符号分别在所述符 号序列中分别出现的次数。
结合第二方面的第一种可能的实现方式, 在第二种可能的实现方式中, 所述第一计算单元具体用于:
根据所述符号集合的基数, 计算所述符号集合所包括的任意一符号釆用 定长编码方式表达时所需要的位长, 其中, 所述符号集合中的每一个符号釆 用所述定长编码方式表达时所需要的位长均相等;
确定计算出的位长与所述符号频数集合中包括的所有频数之和的乘积; 将确定的乘积作为第一预期编码长度, 其中, 所述第一预期编码长度为 将所述待压缩数据釆用所述定长编码方式编码得到的预期编码长度;
其中, 所述符号集合中的每一个符号釆用所述定长编码方式表达时所需 要的位长均相等。
结合第二方面的第一种可能的实现方式, 在第三种可能的实现方式中, 所述第一计算单元具体用于:
通过对所述符号频数集合进行递归划分, 计算第二预期编码长度, 其中, 所述第二预期编码长度为将所述待压缩数据釆用哈夫曼编码方式编码后的预 期编码长度。
结合第二方面的第三种可能的实现方式, 在第四种可能的实现方式中, 所述第一计算单元在通过对所述符号频数集合进行递归划分, 计算第二预期 编码长度时, 具体为:
确定所述符号集合的基数大于或者等于预设划分门限值时, 将所述符号 频数集合进行递归划分, 获取递归划分完成后得到的至少两个频数子集合; 针对所述至少两个频数子集合中的任意一频数子集合, 计算指定数目个 符号釆用所述哈夫曼编码方式表达时的预期编码长度, 其中, 所述指定数目 为该任意一频数子集合中包括的所有频数之和;
将针对每一个频数子集合分别计算出的预期编码长度相加, 得到预期编 码长度之和;
将所述预期编码长度之和, 作为所述第二预期编码长度。
结合第二方面的第四种可能的实现方式, 在第五种可能的实现方式中,
所述第一计算单元在将所述符号频数集合进行递归划分, 获取递归划分完成 后得到的至少两个频数子集合时, 具体为:
对划分得到的每个频数子集合重复执行下述划分处理, 直至划分得到的 频数子集合的基数小于所述预设基数门限值时, 或者直至递归划分级数达到 预设级数门限值时, 停止划分:
对所述符号频数集合进行划分, 得到两个频数子集合;
针对每个频数子集合, 确定出该频数子集合的基数大于或者等于所述预 设基数门限值, 或者递归划分级数大于或者等于所述预设级数门限值时, 对 该频数子集合返回继续执行划分处理。
结合第二方面的第五种可能的实现方式, 在第六种可能的实现方式中, 所述第一计算单元在对所述符号频数集合进行划分, 得到两个频数子集合时, 具体为:
确定对所述符号频数集合进行划分的所有划分方式;
针对每种划分方式, 分别执行:
釆用该划分方式对所述符号频数集合进行划分, 得到两个频数子集合; 判定得到的两个频数子集合中的第一频数子集合中包括的任意一频数, 是否均大于或者等于得到的两个频数子集合中的第二频数子集合中包括的任 一频数;
从所有划分方式中确定出指定划分方式, 其中, 所述指定划分方式中的 任意一种划分方式下得到的两个频数子集合中的第一频数子集合中包括的任 意一频数, 均大于或者等于得到的两个频数子集合中的第二频数子集合中包 括的任意一频数;
针对所述指定划分方式中的每种划分方式, 计算该划分方式下得到的两 个频数子集合中的第一频数子集合包括的所有频数之和与第二频数子集合包 括的所有频数之和之间的差值;
从得到的所有差值中, 确定出最小差值;
将该最小差值对应的划分方式下划分得到的两个频数子集合, 作为对所
述符号频数集合进行划分, 得到的两个频数子集合。
结合第二方面的第五种可能的实现方式, 在第七种可能的实现方式中, 所述第一计算单元在对所述符号频数集合进行划分, 得到两个频数子集合时, 具体为:
将所述符号频数集合中包括的所有频数进行排序;
将排序后的符号频数集合, 按照如下规则依次进行 N-1次划分, N为所述 符号集合的基数;
将排序后的符号频数集合中的排序在首位的频数、 排序在第 X位的频数, 及位于排序在首位和第 X位之间的所有频数, 作为第 X次划分得到的第一频数 子集合, 其中, X为大于等于 1小于等于 N-1的正整数;
将排序后的符号频数集合中的排序在末位的频数,及排序在末位和第 X位 之间的所有频数, 作为所述第 X次划分得到的第二频数子集合;
计算针对每一次划分得到的第一频数子集合包括的所有频数之和, 与第 二频数子集合包括的所有频数之和之间的差值;
将最小差值对应划分方式下划分得到的第一频数子集合与第二频数子集 合, 作为对所述符号频数集合划分, 得到的两个频数子集合。
结合第二方面的第四至第七种可能的实现方式, 在第八种可能的实现方 式中, 所述第一计算单元在计算指定数目个符号釆用所述哈夫曼编码方式表 达时的预期编码长度时, 具体为:
针对该任意一频数子集合中包含的任意一频数, 分别执行:
确定该任意一频数所在频数子集合对应的递归划分级数;
根据确定出的递归划分级数和所述任意一频数所在频数子集合的基数, 计算该频数所对应的符号釆用所述哈夫曼编码方式表达时所需要的预期位 长;
将计算出的预期位长与该任意一频数的乘积, 作为该任意一频数数目个 符号, 釆用所述哈夫曼编码方式表达时的预期编码长度;
将计算出的该任意一频数子集合中的所有频数之和的数目个符号, 釆用
所述哈夫曼编码方式表达时的总预期编码长度, 作为指定数目个符号釆用所 述哈夫曼编码方式表达时的预期编码长度。
结合第二方面, 或者第二方面的第一至第八种可能的实现方式, 在第九 种可能的实现方式中, 所述待压缩数据的数据类型为二进制数据, 所述获取 单元获取的相关指标还包括游标集合的基数、 游标位长、 最大游程; 及每一组连续重复出现的符号中的任意一符号;
所述游标集合的基数为所述游标集合中的所有符号的个数;
所述游标位长为所述游标集合中的任意一游标的空间开销, 其中, 所述 游标集合中包含的各游标的位长均相等;
所述游程集合包括的游程为所述游标集合包括的游标在所述符号序列中 的对应位置连续出现的次数;
所述最大游程为各游标分别在所述符号序列中的对应位置连线出现的次 数中的最大值。
结合第二方面的第九种可能的实现方式, 在第十种可能的实现方式中, 所述第一计算单元具体用于:
计算所述最大游程釆用所述游程编码方式表达时所需要的位长, 其中, 所述游程集合中的每一个游程釆用所述游程编码方式表达时所需要的位长, 与所述最大游程釆用所述游程编码方式表达时所需要的位长均相等;
将计算出的所述最大游程釆用所述游程编码方式表达时所需的位长, 与 所述游标集合的基数的乘积, 作为计算出的所有游程釆用所述游程编码方式 表达所需要的位长;
将所述游标位长与所述游标集合的基数的乘积, 作为计算出的所有游标 的位长;
确定计算得到的所有游标的位长, 与计算得到的所有游程釆用所述游程 编码方式表达所需要的位长之和;
将所述位长之和作为第三预期编码长度, 其中, 所述第三预期编码长度
为将所述待压缩数据釆用所述游程编码方式编码得到的预期编码长度。
本发明有益效果如下:
现有技术中, 在计算数据的预期压缩率时, 是根据符号的频数的标准差, 或者, 根据连续符号的异或值和差值的标准差进行计算的, 而符号的频数的 标准差, 或者, 连续符号的异或值和差值的标准差与压缩率的相关性较小, 因此, 目前计算数据的预期压缩率的方法存在准确度较低的缺点, 本发明实 施例中, 提出一种计算数据的预期压缩率的方法: 将待压缩数据解析为符号 序列, 并获取符号序列的相关指标; 其中, 相关指标用于表征符号序列中的 符号的分布规律; 根据相关指标计算将待压缩数据釆用指定编码方式编码后 的预期编码长度, 并将计算得到的预期编码长度与待压缩数据的初始长度的 比值, 作为待压缩数据的预期压缩率, 在该方案中, 是用表征符号序列中的 符号的分布规律的相关指标来计算数据的预期压缩率的, 表征符号序列中的 符号的分布规律的相关指标与数据的预期压缩率相关性较高, 且计算过程考 虑了压缩编码方法的技术特点, 因此, 解决了当前计算数据预期压缩率的方 法中存在的准确度较低的缺陷。 附图说明
图 1为本发明实施例中计算数据的预期压缩率的详细流程图;
图 2为本发明实施例中计算数据的预期压缩率的实施例;
图 3为本发明实施例中计算数据的预期压缩率的装置的功能结构示意图; 图 4为本发明实施例中计算数据的预期压缩率的装置的实体结构示意图。 具体实施方式
为使本发明实施例的目的、 技术方案和优点更加清楚, 下面将结合本发 明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完整地描述, 显然, 所描述的实施例是本发明一部分实施例, 而不是全部的实施例。 基于 本发明中的实施例, 本领域普通技术人员在没有作出创造性劳动前提下所获
得的所有其他实施例, 都属于本发明保护的范围。
另外, 本文中术语"系统,,和"网络"在本文中常被可互换使用。本文中术语 "和 /或", 仅仅是一种描述关联对象的关联关系, 表示可以存在三种关系, 例 如, A和 /或 B, 可以表示: 单独存在 A, 同时存在 A和 B, 单独存在 B这三 种情况。 另外, 本文中字母 "/" , 一般表示前后关联对象是一种 "或" 的关系。
现有技术中, 在数据压缩之前, 先要判定待压缩的数据是否适合进行压 缩处理, 并根据判定结果确定是否对数据进行压缩, 数据的可压缩性根本上 取决于其数据自身的冗余特征, 现有过程在计算数据的预期压缩率时, 是根 据符号的频数的标准差, 或者, 根据连续符号的异或值和差值的标准差进行 计算的, 而符号的频数的标准差, 或者, 连续符号的异或值和差值的标准差 与预期压缩率的相关性较小, 因此, 目前的计算数据的预期压缩率的方法存 在准确度较低的缺点, 为了解决当前计算数据的预期压缩率的方法中存在的 准确度较低的缺陷, 本发明实施例中, 提出一种计算数据的预期压缩率的方 法, 该方法中: 将待压缩数据解析为符号序列, 并获取符号序列的相关指标; 其中, 相关指标用于表征符号序列中的符号的分布规律; 根据相关指标, 计 算将待压缩数据釆用指定编码方式编码后的预期编码长度, 并将计算得到的 预期编码长度与待压缩数据的初始长度的比值作为待压缩数据的预期压缩 率, 在该方案中, 用表征符号序列中的符号的分布规律的相关指标来计算数 据的预期压缩率, 表征符号序列中的符号的分布规律的相关指标与数据的预 期压缩率相关性较高, 因此, 解决了现在在计算数据的预期压缩率的过程中 存在的准确度较低的缺陷。
下面结合说明书附图对本发明优选的实施方式进行详细说明, 应当理解, 此处所描述的优选实施例仅用于说明和解释本发明, 并不用于限定本发明, 并且在不冲突的情况下, 本申请中的实施例及实施例中的特征可以相互组合。
下面结合附图对本发明优选的实施方式进行详细说明。
参阅图 1 所示, 本发明实施例中, 计算数据的预期压缩率的详细流程如 下:
步骤 100: 将待压缩数据解析为符号序列;
步骤 110: 获取符号序列的相关指标, 其中, 相关指标用于表征符号序列 中的符号的分布规律;
步骤 120: 根据相关指标, 计算将待压缩数据釆用指定编码方式编码后的 预期编码长度;
步骤 130: 将计算得到的预期编码长度与待压缩数据的初始长度的比值, 作为待压缩数据的预期压缩率。
本发明实施例中, 相关指标有多种形式, 可选的, 可以包括符号集合的 基数和 /或符号频数集合;
其中, 符号集合包括符号序列中出现的所有符号, 且符号集合中的任意 两个符号均不相同;
符号集合的基数为符号集合中的所有符号的个数;
符号频数集合中的频数为符号集合中的各符号分别在符号序列中出现的 次数。
如,符号序列为( ABBCCCDDDDEEEEEFFFFFFGGGGGGGACAEAG ) , 则这个符号序列的符号集合为 (ABCDEFG ) , 符号频数集合为 (4244668 ) , 其中, 位于第 1位的频数 4为符号 A在符号序列中出现的次数, 位于第 2位的频 数 2为符号 B在符号序列中出现的次数,位于第 3位的频数 4为符号 C在符号序列 中出现的次数, 位于第 4位的频数 5为符号 D在符号序列中出现的次数, 位于第 5位的频数 6为符号 E在符号序列中出现的次数, 位于第 6位的频数 6为符号 F在 符号序列中出现的次数, 位于第 7位的频数 8为符号 G在符号序列中出现的次 数。
本发明实施例中, 根据相关指标, 计算将待压缩数据釆用指定编码方式 编码后的预期编码长度的方式有多种, 可选的, 可以釆用如下方式:
根据符号集合的基数, 计算符号集合所包括的任意一符号釆用定长编码 方式表达时所需要的位长, 其中, 符号集合中的每一个符号釆用定长编码方 式表达时所需要的位长均相等;
确定计算出的位长与符号频数集合中包括的所有频数之和的乘积; 将确定的乘积作为第一预期编码长度, 其中, 第一预期编码长度为将待 压缩数据釆用定长编码方式编码后得到的预期编码长度;
如,符号序列为( ABBCCCDDDDEEEEEFFFFFFGGGGGGGACAEAG ) , ( ABCDEFG )为符号集合, 釆用定长编码对符号序列进行编码时, 编码后的 每一个符号所占的位长是相等的, 也就是说, 符号 A、 符号 B、 符号 C、 符号 D、 符号 E、 符号 F、 符号 G釆用定长编码方式表达时, 所占的位长都是相等 的, 其中, 在确定符号集合中的任意一符号釆用定长编码方式表达所占的位 长时, 可以釆用公式一来实现:
η = Γΐοβ2Νΐ (公式一)
其中, n为任意一符号釆用定长编码方式表达所占的位长;
「1表示向上取整;
N为符号集合的基数。
例 口, log2N = 7.2, 则 n = riog2Nl = 8。
上述实施例过程中, 将待压缩数据釆用定长编码方式编码得到的第一预 期编码长度为 34与 「log27l的乘积。
当然, 根据相关指标, 计算将待压缩数据釆用指定编码方式编码后的预 期编码长度时, 还可以釆用如下方式:
通过对符号频数集合进行递归划分, 计算第二预期编码长度, 其中, 第 二预期编码长度为将待压缩数据釆用哈夫曼编码方式编码后的预期编码长 度。
本发明实施例中, 通过对符号频数集合进行递归划分, 计算第二预期编 码长度的方式有多种, 可选的, 可以釆用如下方式:
确定符号集合的基数大于或者等于预设划分门限值时, 将符号频数集合 进行递归划分, 获取递归划分完成后得到的至少两个频数子集合;
针对至少两个频数子集合中的任意一频数子集合, 计算指定数目个符号 釆用哈夫曼编码方式表达时的预期编码长度, 其中, 指定数目为该任意一频
数子集合中包括的所有频数之和;
将针对每一个频数子集合分别计算出的预期编码长度相加, 得到预期编 码长度之和;
将预期编码长度之和, 作为第二预期编码长度。
例如, 符号频数集合为 (4、 2、 2、 2、 1、 1、 1 ), 对符号频数集合釆用 递归划分进行划分, 递归划分完成后, 得到 4个频数子集合: 频数子集合 1 (4、 2)、 频数子集合 2 (2、 2)、 频数子集合 3 (1)、 频数子集合 4 ( 1、 1 ), 针对频数子集合 1 , 计算釆用哈夫曼编码表达频数子集合 1 (4、 2 )对应的 6 个符号时的预期编码长度 1, 针对 4个频数子集合中的其他三个频数子集合: 频数子集合 2 (2、 2)、 频数子集合 3 ( 1)、 频数子集合 4 ( 1、 1 ), 都按照针 对频数子集合 1的计算过程计算相应的预期编码长度 2、 预期编码长度 3、 预 期编码长度 4, 并计算预期编码长度 1、 预期编码长度 2、 预期编码长度 3、 预期编码长度 4的相加之和, 并将相加之和作为第二预期编码长度。
本发明实施例中, 将符号频数集合进行递归划分, 获取递归划分完成后 得到的至少两个频数子集合的方式有多种, 可选的, 可以釆用如下方式: 对划分得到的每个频数子集合重复执行下述划分处理, 直至划分得到的 频数子集合的基数小于预设基数门限值时, 或者直至递归划分级数达到预设 级数门限值时, 停止划分:
对符号频数集合进行划分, 得到两个频数子集合;
针对每个频数子集合, 确定出该频数子集合的基数大于或者等于预设基 数门限值, 或者递归划分级数大于或者等于预设级数门限值时, 对该频数子 集合返回继续执行划分处理。
例如, 符号频数集合为 (4、 3、 3、 3、 2、 2、 2、 1、 1、 1 ) , 第一次划 分得到两个频数子集合, 也就是一级划分得到两个频数子集合: (4、 3、 3) 、 (3、 2、 2、 2、 1、 1、 1 ) , 然后进行第二次划分, 将(4、 3、 3) 划分为两 个频数子集合: (4) 、 (3、 3) , 将(3、 2、 2、 2、 1、 1、 1 ) 划分为两个 频数子集合: (3、 2) 、 (2、 2、 1、 1、 1 ) , 也就是二级划分得到四个频数
子集合: (4) 、 (3、 3) 、 (3、 2) 、 (2、 2、 1、 1、 1 ) , 假设(4) 、 (3、 3) 、 (3、 2) 、 (2、 2、 1、 1、 1 ) 均不能再划分, 此时, 递归划分完成, 则将符号频数集合进行递归划分, 获取递归划分完成后得到的至少两个频数 子集合为: (4) 、 (3、 3) 、 (3、 2) 、 (2、 2、 1、 1、 1 ) ; 若其中 (2、 2、 1、 1、 1 )还能再划分为 (2、 2) 、 (1、 1、 1 ) , 也就是三级划分得到两 个频数子集合: (2、 2) 、 (1、 1、 1 ) , 此时, 递归划分完成, 则将符号频 数集合进行递归划分, 获取递归划分完成后得到的至少两个频数子集合为: (4) 、 (3、 3) 、 (3、 2) 、 (2、 2) 、 (1、 1、 1 ) 。
本发明实施例中, 对符号频数集合进行划分, 得到两个频数子集合的方 式有多种, 可选的, 可以釆用如下方式:
确定对符号频数集合进行划分的所有划分方式;
针对每种划分方式, 分别执行:
釆用该划分方式对符号频数集合进行划分, 得到两个频数子集合; 判定得到的两个频数子集合中的第一频数子集合中包括的任意一频数, 是否均大于或者等于得到的两个频数子集合中的第二频数子集合中包括的任 意一频数;
从所有划分方式中确定出指定划分方式, 其中, 指定划分方式中的任意 一种划分方式下得到的两个频数子集合中的第一频数子集合中包括的任意一 频数, 均大于或者等于得到的两个频数子集合中的第二频数子集合中包括的 任意一频数;
针对指定划分方式中的每种划分方式, 计算该划分方式下得到的两个频 数子集合中的第一频数子集合包括的所有频数之和与第二频数子集合包括的 所有频数之和之间的差值;
从得到的所有差值中, 确定出最小差值;
将该最小差值对应的划分方式下划分得到的两个频数子集合, 作为对符 号频数集合进行划分, 得到的两个频数子集合。
本发明实施例中, 对符号频数集合进行划分, 得到两个频数子集合, 具
体包括:
将符号频数集合中包括的所有频数进行排序;
将排序后的符号频数集合, 按照如下规则依次进行 N-1次划分, N为符号 集合的基数;
将排序后的符号频数集合中的排序在首位的频数、 排序在第 X位的频数, 及位于排序在首位和第 X位之间的所有频数, 作为第 X次划分得到的第一频数 子集合, 其中, X为大于等于 1小于等于 N-1的正整数;
将排序后的符号频数集合中的排序在末位的频数,及排序在末位和第 X位 之间的所有频数, 作为第 X次划分得到的第二频数子集合;
计算针对每一次划分得到的第一频数子集合包括的所有频数之和, 与第 二频数子集合包括的所有频数之和之间的差值;
将最小差值对应划分方式下划分得到的第一频数子集合与第二频数子集 合, 作为对符号频数集合划分, 得到的两个频数子集合。
本发明实施例中, 计算指定数目个符号釆用哈夫曼编码方式表达时的预 期编码长度的方式有多种, 可选的, 可以釆用如下方式:
针对该任意一频数子集合中包含的任意一频数, 分别执行:
确定该任意一频数所在频数子集合对应的递归划分级数;
根据确定出的递归划分级数和该任意一频数所在频数子集合的基数, 计 算该频数所对应的符号釆用哈夫曼编码方式表达时所需要的预期位长;
将计算出的预期位长与该任意一频数的乘积, 作为该任意一频数数目个 符号, 釆用哈夫曼编码方式表达时的预期编码长度;
将计算出的该任意一频数子集合中的所有频数之和的数目个符号, 釆用 哈夫曼编码方式表达时的总预期编码长度, 作为指定数目个符号釆用哈夫曼 编码方式表达时的预期编码长度。
本发明实施例中, 根据确定出的递归划分级数和任意一频数所在频数子 集合的基数, 计算该频数所对应的符号釆用哈夫曼编码方式表达时所需要的 预期位长的方式有多种, 可选的, 可以釆用如下方式:
将确定出的递归划分级数作为该频数所对应的符号釆用哈夫曼编码方式 表达时所需要的第一位长;
根据任意一频数所在频数子集合的基数, 计算该频数所对应的符号釆用 哈夫曼编码方式表达时所需要的第二位长;
将计算得出的第一位长和第二位长之和, 作为该频数所对应的符号釆用 哈夫曼编码方式表达时所需要的预期位长。
例如: 递归划分级数为 3 , 则第一位长为 3。
在根据任意一频数所在频数子集合的基数, 计算该频数所对应的符号釆 用哈夫曼编码方式表达时所需要的第二位长时, 可以釆用公式一进行计算, 在釆用公式一具体计算时, N为任意一频数所在频数子集合的基数, n为第二 位长。
本发明实施例中, 待压缩数据的数据类型为二进制数据, 相关指标还包 括游标集合的基数、 游标位长、 最大游程;
其中, 游标集合包括符号序列中与相邻的符号均不相同的符号, 及每一 组连续重复出现的符号中的任意一符号;
游标集合的基数为游标集合中的所有符号的个数;
游标位长为游标集合中的任意一游标的空间开销, 其中, 游标集合中包 含的各游标的位长均相等;
游程集合包括的游程为游标集合包括的游标在符号序列中的对应位置连 续出现的次数。
最大游程为各游标分别在符号序列中的对应位置连续出现的次数中的最 大值。
也就是说, 本发明实施例中, 游标为在符号序列中与之前的相邻的符号 不同的符号, 其中, 不相邻的游标可以是相同符号; 游程为游标连续重复出 现的次数; 符号集合由符号序列中出现过的符号构成, 且符号集合中的任意 两个符号均不相同。
例如, 符号序列为
( ABBCCCDDDDEEEEEFFFFFFGGGGGGGACAEAG ) , 游标集合为
( ABCDEFGACAEAG ) , 处于游标集合中的第 1位的游标 A的游程为 1 , 处于 游标集合中的第 2位的游标 Β的游程为 2 ,处于游标集合中的第 3位的游标 C的游 程为 3 , 处于游标集合中的第 4位的游标 D的游程为 4, 处于游标集合中的第 5 位的游标 Ε的游程为 5 , 处于游标集合中的第 6位的游标 F的游程为 6 , 处于游标 集合中的第 7位的游标 G的游程为 7 , 处于游标集合中的第 8位的游标 Α的游程 为 1 , 处于游标集合中的第 9位的游标 C的游程为 1 , 处于游标集合中的第 10位 的游标 A的游程为 1 , 处于游标集合中的第 11位的游标 E的游程为 1 , 处于游标 集合中的第 12位的游标 A的游程为 1 , 处于游标集合中的第 13位的游标 G的游 程为 1。
此时, 在根据相关指标, 计算将待压缩数据釆用指定编码方式编码后的 预期编码长度时, 可以釆用如下方式:
计算最大游程釆用游程编码方式表达时所需要的位长, 其中, 游程集合 中的每一个游程釆用游程编码方式表达时所需要的位长, 与最大游程釆用游 程编码方式表达时所需要的位长均相等;
将计算出的最大游程釆用游程编码方式表达时所需的位长, 与游标集合 的基数的乘积, 作为计算出的所有游程釆用游程编码方式表达所需要的位长; 将游标位长与游标集合的基数的乘积, 作为计算出的所有游标的位长; 确定计算得到的所有游标的位长, 与计算得到的所有游程釆用游程编码 方式表达所需要的位长之和;
将位长之和作为第三预期编码长度, 其中, 第三预期编码长度为将待压 缩数据釆用游程编码方式编码得到的预期编码长度。
本发明实施例中, 计算最大游程釆用游程编码方式表达时所需要的位长 时, 可以釆用公式一进行计算, 此时, N 为最大游程, 如符号序列为 ABBCCCDDDDEEEEEFFFFFFGGGGGGGACAEAG, 此时, 最大游程为 7, 则每一个游程釆用游程编码方式表达时所需要的位长为「log27l 。
本发明实施例中, 在将计算得到的预期编码长度与待压缩数据的初始长
度的比值, 作为待压缩数据的预期压缩率时, 可以釆用如下方式: 确定符号序列包括的任意一符号的预设长度, 其中, 符号序列包括的各 符号的预设长度均相等;
将确定出的预设长度与符号频数集合包括的所有频数之和的乘积, 作为 待压缩数据的初始长度;
将计算得到的第一预期编码长度与初始长度的比值, 作为待压缩数据的 第一预期压缩率; 或者
将计算得到的第二预期编码长度与初始长度的比值, 作为待压缩数据的 第二预期压缩率; 或者
将计算得到的第三预期编码长度与初始长度的比值, 作为待压缩数据的 第三预期压缩率。
本发明实施例中, 在将计算得到的预期编码长度与待压缩数据的初始长 度的比值, 作为待压缩数据的预期压缩率之后, 还包括如下操作:
确定预期压缩率达到压缩率预设门限值时, 对待压缩数据釆用指定编码 方式进行压缩处理。
本发明实施例中, 确定预期压缩率达到压缩率预设门限值时, 对待压缩 数据釆用指定编码方式进行压缩处理时, 可选的, 可以釆用如下方式:
确定第一预期压缩率达到压缩率预设门限值时, 对待压缩数据釆用定长 编码方式进行压缩处理; 或者
确定第二预期压缩率达到压缩率预设门限值时, 对待压缩数据釆用哈夫 曼编码方式进行压缩处理; 或者
确定第三预期压缩率达到压缩率预设门限值时, 对待压缩数据釆用游程 编码方式进行压缩处理。
本发明实施例中, 在根据相关指标, 计算将待压缩数据釆用指定编码方 式编码后的预期编码长度之后, 还包括如下操作:
根据符号集合的基数, 计算游标集合所包括的任意一符号釆用定长编码 方式表达时所需要的位长;
确定计算出的位长与游标集合基数的乘积, 将乘积作为第四预期编码长 度, 其中, 第四预期编码长度为将游标集合釆用定长编码方式编码得到的预 期编码长度;
确定游标集合包括的任意一游标的预设长度, 其中, 游标集合包括的每 一个游标的预设长度均相等;
将确定出的预设长度与游标集合的基数的乘积, 作为游标集合的初始长 度;
将计算得到的第四预期编码长度与游标集合的初始长度的比值, 作为游 标集合的预期压缩率。
本发明实施例中, 确定预期压缩率达到压缩率预设门限值时, 对待压缩 数据釆用指定编码方式进行压缩处理时, 可选的, 可以釆用如下操作:
计算所有游标釆用游程编码方式表达时所需要的位长与第三预期编码长 度的比值;
确定第三预期压缩率、 比值及游标集合的预期压缩率的乘积, 达到压缩 率预设门限值时, 对待压缩数据釆用游程编码方式和定长编码方式进行压缩 处理。
本发明实施例中, 在根据相关指标, 计算将待压缩数据釆用指定编码方 式编码后的预期编码长度之后, 还包括如下操作:
确定游标集合的符号频数集合;
通过对确定出的游标集合的符号频数集合进行递归划分, 计算第五预期 编码长度, 其中, 第五预期编码长度为将游标集合釆用哈夫曼编码方式编码 后的预期编码长度;
确定游标集合包括的任意一游标的预设长度, 其中, 游标集合包括的每 一个游标的预设长度均相等;
将确定出的预设长度与游标集合的基数的乘积, 作为游标集合的初始长 度;
将计算得到的第五预期编码长度与游标集合的初始长度的比值, 作为游
标集合的预期压缩率。
本发明实施例中, 确定预期压缩率达到压缩率预设门限值时, 对待压缩 数据釆用指定编码方式进行压缩处理时, 可选的, 可以釆用如下方式:
确定计算得到的所有游标釆用游程编码方式表达时所需要的位长与第三 预期编码长度的比值;
确定第三预期压缩率、 比值及游标集合的预期压缩率的乘积, 达到压缩 率预设门限值时, 对待压缩数据釆用游程编码方式和哈夫曼编码方式进行压 缩处理。
本发明实施例中, 待压缩数据的数据类型为文本数据时, 相关指标还包 括符号对集合的基数和 /或符号对频数集合;
其中, 符号对集合包括符号序列中出现的符号对所组成的集合, 且符号 对集合中的任意两个符号对均不相同, 任意一个符号对为在符号序列中任意 两个相邻的符号;
符号对集合的基数为符号对集合所含符号对的个数;
符号对频数集合包括符号对集合中的各个符号对在符号序列中分别出现 的次数。
本发明实施例中, 根据相关指标, 计算将待压缩数据釆用指定编码方式 编码后的预期编码长度时, 可选的, 可以釆用如下方式:
根据符号对集合的基数, 计算符号对集合所包括的任意一符号对釆用定 长编码方式表达时所需要的位长;
确定计算出的位长与符号对频数集合中包括的所有频数之和的乘积; 将乘积作为第六预期编码长度, 其中, 第六预期编码长度为将待压缩数 据釆用定长编码方式编码后的预期编码长度;
其中, 符号对集合中的每一个符号对釆用定长编码方式表达时所需要的 位长均相等。
本发明实施例中, 根据相关指标, 计算将待压缩数据釆用指定编码方式 编码后的预期编码长度的方式有多种, 可选的, 可以釆用如下方式:
通过对符号对频数集合进行递归划分, 计算第七预期编码长度, 其中, 第七预期编码长度为将待压缩数据釆用哈夫曼编码方式编码后的预期编码长 度。
本发明实施例中, 通过对符号对频数集合进行递归划分, 计算第七预期 编码长度的方式有多种, 可选的, 可以釆用如下方式:
确定符号对集合的基数大于或者等于预设划分门限值时, 将符号对频数 集合进行递归划分, 获取递归划分完成后得到的至少两个频数子集合;
针对至少两个频数子集合中的任意一频数子集合, 计算指定数目个符号 对釆用哈夫曼编码方式表达时的预期编码长度, 其中, 指定数目为该任意一 频数子集合中包括的所有频数之和;
将针对每一个频数子集合分别计算出的预期编码长度相加, 得到预期编 码长度之和;
将预期编码长度之和, 作为第七预期编码长度。
本发明实施例中, 将符号对频数集合进行递归划分, 获取递归划分完成 后得到的至少两个频数子集合的方式有多种, 可选的, 可以釆用如下方式: 对划分得到的每个频数子集合重复执行下述划分处理, 直至划分得到的 频数子集合的基数小于预设基数门限值时, 或者直至递归划分级数达到预设 级数门限值时, 停止划分:
对符号对频数集合进行划分, 得到两个频数子集合;
针对每个频数子集合, 确定出该频数子集合的基数大于或者等于预设基 数门限值, 或者递归划分级数大于或者等于预设级数门限值时, 对该频数子 集合返回继续执行划分处理。
本发明实施例中, 对符号对频数集合进行划分, 得到两个频数子集合的 方式有多种, 可选的, 可以釆用如下方式:
确定对符号对频数集合进行划分的所有划分方式;
针对每种划分方式, 分别执行:
釆用该划分方式对符号对频数集合进行划分, 得到两个频数子集合;
判定得到的两个频数子集合中的第一频数子集合中包括的任意一频数, 是否均大于或者等于得到的两个频数子集合中的第二频数子集合中包括的任 意一频数;
从所有划分方式中确定出指定划分方式, 其中, 指定划分方式中的任意 一种划分方式下得到的两个频数子集合中的第一频数子集合中包括的任意一 频数, 均大于或者等于得到的两个频数子集合中的第二频数子集合中包括的 任意一频数;
针对指定划分方式中的每种划分方式, 计算该划分方式下得到的两个频 数子集合中的第一频数子集合包括的所有频数之和与第二频数子集合包括的 所有频数之和之间的差值;
从得到的所有差值中, 确定出最小差值;
将该最小差值对应的划分方式下划分得到的两个频数子集合, 作为对符 号对频数集合进行划分, 得到的两个频数子集合。
本发明实施例中, 对符号对频数集合进行划分, 得到两个频数子集合的 方式有多种, 可选的, 可以釆用如下方式:
将符号对频数集合中包括的所有频数进行排序;
将排序后的符号对频数集合, 按照如下规则依次进行 N-1次划分, N为符 号对集合的基数;
将排序后的符号对频数集合中的排序在首位的频数、 排序在第 X位的频 数, 及位于排序在首位和第 X位之间的所有频数, 作为第 X次划分得到的第一 频数子集合, 其中, X为大于等于 1小于等于 N-1的正整数;
将排序后的符号对频数集合中的排序在末位的频数,及排序在末位和第 X 位之间的所有频数, 作为第 X次划分得到的第二频数子集合;
计算针对每一次划分得到的第一频数子集合包括的所有频数之和, 与第 二频数子集合包括的所有频数之和之间的差值;
将最小差值对应划分方式下划分得到的第一频数子集合与第二频数子集 合, 作为对符号对频数集合划分, 得到的两个频数子集合。
本发明实施例中, 计算指定数目个符号对釆用哈夫曼编码方式表达时的 预期编码长度的方式有多种, 可选的, 可以釆用如下方式:
针对该任意一频数子集合中包含的任意一频数, 分别执行:
确定该任意一频数所在的频数子集合对应的递归划分级数;
根据确定出的递归划分级数和任意一频数所在的频数子集合的基数, 计 算该频数所对应的符号对釆用哈夫曼编码方式表达时所需要的预期位长; 将计算出的预期位长与该任意一频数的乘积, 作为该任意一频数数目个 符号对, 釆用哈夫曼编码方式表达时的预期编码长度;
将计算出的该任意一频数子集合中的所有频数之和的数目个符号对, 釆 用哈夫曼编码方式表达时的总预期编码长度, 作为指定数目个符号对釆用哈 夫曼编码方式表达时的预期编码长度。
本发明实施例中, 根据确定出的递归划分级数和任意一频数所在频数子 集合的基数, 计算该频数所对应的符号对釆用哈夫曼编码方式表达时所需要 的预期位长的方式有多种, 可选的, 可以釆用如下方式:
将确定出的递归划分级数作为该频数所对应的符号对釆用哈夫曼编码方 式表达时所需要的第一位长;
根据任意一频数所在频数子集合的基数, 计算该频数所对应的符号对釆 用哈夫曼编码方式表达时所需要的第二位长;
将计算得出的第一位长和第二位长之和, 作为该频数所对应的符号对釆 用哈夫曼编码方式表达时所需要的预期位长。
例如: 递归划分级数为 3 , 则第一位长为 3。
在根据任意一频数所在频数子集合的基数, 计算该频数所对应的符号对 釆用哈夫曼编码方式表达时所需要的第二位长时, 可以釆用公式一进行计算, 在釆用公式一具体计算时, N为任意一频数所在频数子集合的基数, n为第二 位长。
本发明实施例中, 将计算得到的预期编码长度与待压缩数据的初始长度 的比值, 作为待压缩数据的预期压缩率的方式有多种, 可选的, 可以釆用如
下方式:
确定符号集合的基数数目个符号所能构成的符号对数量;
计算表达确定出的符号对数量个符号对所需的第一位长;
计算表达符号对频数集合包括的所有频数之和个符号对所需的第二位 长;
将第一位长和第二位长中的最小值与符号对频数集合包括的所有频数之 和的乘积, 作为待压缩数据的初始长度;
将计算得到的第六预期编码长度与初始长度的比值, 作为待压缩数据的 第六预期压缩率; 或者
将计算得到的第七预期编码长度与初始长度的比值, 作为待压缩数据的 第七预期压缩率。
本发明实施例中, 计算表达确定出的符号对数量个符号对所需的第一位 长时, 可以釆用公式一, 此时, N为符号对数量, n为第一位长。
本发明实施例中, 计算表达符号对频数集合包括的所有频数之和个符号 对所需的第二位长时, 也可以釆用公式一, 此时, N 为符号对频数集合包括 的所有频数之和, n为第二位长。
例如, 符号集合的基数为 9 , 则 9个符号所构成的符号对数量为 81 , 则 第一位长 nl为「log28l1 , 符号对频数集合包括的所有频数之和为 46 , 则第二 位长 n2为「log246l, 由于 nl 大于 n2,则将 n2与 46的乘积作为待压缩数据的 初始长度。
本发明实施例中, 将计算得到的预期编码长度与待压缩数据的初始长度 的比值, 作为待压缩数据的预期压缩率之后, 还包括如下操作:
确定预期压缩率达到压缩率预设门限值时, 对待压缩数据釆用指定编码 方式进行压缩处理。
本发明实施例中, 确定预期压缩率达到压缩率预设门限值时, 对待压缩 数据釆用指定编码方式进行压缩处理的方式有多种, 可选的, 可以釆用如下 方式:
确定第六预期压缩率达到压缩率预设门限值时, 对待压缩数据釆用定长 编码方式进行压缩处理; 或者
确定第七预期压缩率达到压缩率预设门限值时, 对待压缩数据釆用哈夫 曼编码方式进行压缩处理。
本发明实施例中, 确定的符号序列包括的任意一符号的预设长度可以是 预设的长度如 1字节, 也可以是 2字节, 当然, 还可以随着其他应用场景而 变化, 在此不再进行——详述。
为了更好地理解本发明实施例, 以下给出具体应用场景, 针对计算数据 的预期压缩率的过程, 作出进一步详细描述, 如图 2所示:
步骤 200: 将待压缩数据解析为符号序列( ABBDDEEEEFFFFFFABAC ); 步骤 210: 获取符号序列的相关指标, 其中, 相关指标用于表征符号序列 中的符号的分布规律;
在该步骤中, 相关指标包括符号集合的基数, 其中, 符号集合为 ( ABCDEF ), 符号集合的基数为 6, 符号频数集合为 (3 , 3 , 1 , 2, 4, 6 )。
步骤 220: 根据符号集合的基数 6, 计算符号集合(ABCDEF )所包括的 任意一符号釆用定长编码方式表达时所需要的位长;
在该步骤中, 符号集合(ABCDEF ) 中的每一个符号釆用定长编码方式 表达时所需要的位长均相等, 也就是说, 符号 A、 符号 B、 符号 C、 符号 D、 符号 E、 符号 F釆用定长编码方式表达时所需要的位长均相等。
步骤 230: 确定计算出的位长与频数集合中包括的所有频数之和 19的乘 积;
步骤 240: 将乘积作为第一预期编码长度, 其中, 第一预期编码长度为将 待压缩数据釆用定长编码方式编码得到的预期编码长度;
步骤 250:将计算得到的第一预期编码长度与待压缩数据的初始长度的比 值, 作为待压缩数据的第一预期压缩率。
基于上述技术方案, 参阅图 3 所示, 本发明实施例提供一种计算数据的 预期压缩率的装置, 该计算数据的预期压缩率的装置包括解析单元 30、 获取
单元 31、 第一计算单元 32 , 及第二计算单元 33 , 其中:
解析单元 30 , 用于将待压缩数据解析为符号序列;
获取单元 31 , 用于获取符号序列的相关指标, 其中, 相关指标用于表征 符号序列中的符号的分布规律;
第一计算单元 32 , 用于根据相关指标, 计算将待压缩数据釆用指定编码 方式编码后的预期编码长度;
第二计算单元 33 , 用于将计算得到的预期编码长度与待压缩数据的初始 长度的比值, 作为待压缩数据的预期压缩率。
本发明实施例中, 可选的, 获取单元 31获取的相关指标包括符号集合的 基数和 /或符号频数集合;
其中, 符号集合包括符号序列中出现的所有符号, 且符号集合中的任意 两个符号均不相同;
符号集合的基数为符号集合中的所有符号的个数;
符号频数集合中的频数为符号集合中的各个符号分别在符号序列中分别 出现的次数。
本发明实施例中, 可选的, 第一计算单元 32具体用于:
根据符号集合的基数, 计算符号集合所包括的任意一符号釆用定长编码 方式表达时所需要的位长, 其中, 符号集合中的每一个符号釆用定长编码方 式表达时所需要的位长均相等;
确定计算出的位长与符号频数集合中包括的所有频数之和的乘积; 将确定的乘积作为第一预期编码长度, 其中, 第一预期编码长度为将待 压缩数据釆用定长编码方式编码得到的预期编码长度;
其中, 符号集合中的每一个符号釆用定长编码方式表达时所需要的位长 均相等。
本发明实施例中, 可选的, 第一计算单元 32具体用于:
通过对符号频数集合进行递归划分, 计算第二预期编码长度, 其中, 第 二预期编码长度为将待压缩数据釆用哈夫曼编码方式编码后的预期编码长
度。
本发明实施例中, 可选的, 第一计算单元 32在通过对符号频数集合进行 递归划分, 计算第二预期编码长度时, 具体为:
确定符号集合的基数大于或者等于预设划分门限值时, 将符号频数集合 进行递归划分, 获取递归划分完成后得到的至少两个频数子集合;
针对至少两个频数子集合中的任意一频数子集合, 计算指定数目个符号 釆用哈夫曼编码方式表达时的预期编码长度, 其中, 指定数目为该任意一频 数子集合中包括的所有频数之和;
将针对每一个频数子集合分别计算出的预期编码长度相加, 得到预期编 码长度之和;
将预期编码长度之和, 作为第二预期编码长度。
本发明实施例中, 可选的, 第一计算单元 32在将符号频数集合进行递归 划分, 获取递归划分完成后得到的至少两个频数子集合时, 具体为:
对划分得到的每个频数子集合重复执行下述划分处理, 直至划分得到的 频数子集合的基数小于预设基数门限值时, 或者直至递归划分级数达到预设 级数门限值时, 停止划分:
对符号频数集合进行划分, 得到两个频数子集合;
针对每个频数子集合, 确定出该频数子集合的基数大于或者等于预设基 数门限值, 或者递归划分级数大于或者等于预设级数门限值时, 对该频数子 集合返回继续执行划分处理。
本发明实施例中, 可选的, 第一计算单元 32在对符号频数集合进行划分, 得到两个频数子集合时, 具体为:
确定对符号频数集合进行划分的所有划分方式;
针对每种划分方式, 分别执行:
釆用该划分方式对符号频数集合进行划分, 得到两个频数子集合; 判定得到的两个频数子集合中的第一频数子集合中包括的任意一频数, 是否均大于或者等于得到的两个频数子集合中的第二频数子集合中包括的任
一频数;
从所有划分方式中确定出指定划分方式, 其中, 指定划分方式中的任意 一种划分方式下得到的两个频数子集合中的第一频数子集合中包括的任意一 频数, 均大于或者等于得到的两个频数子集合中的第二频数子集合中包括的 任意一频数;
针对指定划分方式中的每种划分方式, 计算该划分方式下得到的两个频 数子集合中的第一频数子集合包括的所有频数之和与第二频数子集合包括的 所有频数之和之间的差值;
从得到的所有差值中, 确定出最小差值;
将该最小差值对应的划分方式下划分得到的两个频数子集合, 作为对符 号频数集合进行划分, 得到的两个频数子集合。
本发明实施例中, 可选的, 第一计算单元 32在对符号频数集合进行划分, 得到两个频数子集合时, 具体为:
将符号频数集合中包括的所有频数进行排序;
将排序后的符号频数集合, 按照如下规则依次进行 N-1次划分, N为符号 集合的基数;
将排序后的符号频数集合中的排序在首位的频数、 排序在第 X位的频数, 及位于排序在首位和第 X位之间的所有频数, 作为第 X次划分得到的第一频数 子集合, 其中, X为大于等于 1小于等于 N-1的正整数;
将排序后的符号频数集合中的排序在末位的频数,及排序在末位和第 X位 之间的所有频数, 作为第 X次划分得到的第二频数子集合;
计算针对每一次划分得到的第一频数子集合包括的所有频数之和, 与第 二频数子集合包括的所有频数之和之间的差值;
将最小差值对应划分方式下划分得到的第一频数子集合与第二频数子集 合, 作为对符号频数集合划分, 得到的两个频数子集合。
本发明实施例中, 可选的, 第一计算单元 32在计算指定数目个符号釆用 哈夫曼编码方式表达时的预期编码长度时, 具体为:
针对该任意一频数子集合中包含的任意一频数, 分别执行: 确定该任意一频数所在频数子集合对应的递归划分级数;
根据确定出的递归划分级数和任意一频数所在频数子集合的基数, 计算 该频数所对应的符号釆用哈夫曼编码方式表达时所需要的预期位长;
将计算出的预期位长与该任意一频数的乘积, 作为该任意一频数数目个 符号, 釆用哈夫曼编码方式表达时的预期编码长度;
将计算出的该任意一频数子集合中的所有频数之和的数目个符号, 釆用 哈夫曼编码方式表达时的总预期编码长度, 作为指定数目个符号釆用哈夫曼 编码方式表达时的预期编码长度。
本发明实施例中, 可选的, 待压缩数据的数据类型为二进制数据, 获取 单元 31获取的相关指标还包括游标集合的基数、 游标位长、 最大游程;
其中, 游标集合包括符号序列中与相邻的符号均不相同的符号, 及每一 组连续重复出现的符号中的任意一符号;
游标集合的基数为游标集合中的所有符号的个数;
游标位长为游标集合中的任意一游标的空间开销, 其中, 游标集合中包 含的各游标的位长均相等;
游程集合包括的游程为游标集合包括的游标在符号序列中的对应位置连 续出现的次数;
最大游程为各游标分别在符号序列中的对应位置连线出现的次数中的最 大值。
本发明实施例中, 可选的, 第一计算单元 32具体用于:
计算最大游程釆用游程编码方式表达时所需要的位长, 其中, 游程集合 中的每一个游程釆用游程编码方式表达时所需要的位长, 与最大游程釆用游 程编码方式表达时所需要的位长均相等;
将计算出的最大游程釆用游程编码方式表达时所需的位长, 与游标集合 的基数的乘积, 作为计算出的所有游程釆用游程编码方式表达所需要的位长; 将游标位长与游标集合的基数的乘积, 作为计算出的所有游标的位长;
确定计算得到的所有游标的位长, 与计算得到的所有游程釆用游程编码 方式表达所需要的位长之和;
将位长之和作为第三预期编码长度, 其中, 第三预期编码长度为将待压 缩数据釆用游程编码方式编码得到的预期编码长度。
如图 4所示, 为本发明实施例提供的网络接口卡的实体装置图, 网络接口 卡包括至少一个处理器 401 , 通信总线 402, 存储器 403以及至少一个通信接口 404。
其中, 通信总线 402用于实现上述组件之间的连接并通信, 通信接口 404 用于与外部设备连接并通信。
其中, 存储器 403用于存储需要执行的程序代码, 当处理器 401执行存 储器 403中的程序代码时, 实现如下功能:
将待压缩数据解析为符号序列;
获取符号序列的相关指标, 其中, 相关指标用于表征符号序列中的符号 的分布规律;
根据相关指标, 计算将待压缩数据釆用指定编码方式编码后的预期编码 长度;
将计算得到的预期编码长度与待压缩数据的初始长度的比值, 作为待压 缩数据的预期压缩率。
综上所述, 本发明实施例中, 提出一种计算数据的预期压缩率的方法, 该方法中: 将待压缩数据解析为符号序列, 并获取符号序列的相关指标; 其 中, 相关指标用于表征符号序列中的符号的分布规律; 根据相关指标计算将 待压缩数据釆用指定编码方式编码后的预期编码长度, 并将计算得到的预期 编码长度与待压缩数据的初始长度的比值作为待压缩数据的预期压缩率, 在 该方案中, 用表征符号序列中的符号的分布规律的相关指标来计算数据的预 期压缩率的, 表征符号序列中的符号的分布规律的相关指标与数据的预期压 缩率相关性较高, 因此, 解决了现在在计算数据的预期压缩率的过程中存在 的准确度较低的缺陷。
本发明是参照根据本发明实施例的方法、 设备(系统) 、 和计算机程序 产品的流程图和 /或方框图来描述的。 应理解可由计算机程序指令实现流程 图和 /或方框图中的每一流程和 /或方框、 以及流程图和 /或方框图中的流 程和 /或方框的结合。 可提供这些计算机程序指令到通用计算机、 专用计算 机、 嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器, 使 得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现 在流程图一个流程或多个流程和 /或方框图一个方框或多个方框中的功能的 装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设 备以特定方式工作的计算机可读存储器中, 使得存储在该计算机可读存储器 中的指令产生包括指令装置的制造品, 该指令装置实现在流程图一个流程或 多个流程和 /或方框图一个方框或多个方框中的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上, 使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的 处理, 从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图 一个流程或多个流程和 /或方框图一个方框或多个方框中的功能的步骤。
尽管已描述了本发明的优选实施例, 但本领域内的技术人员一旦得知了 基本创造性概念, 则可对这些实施例作出另外的变更和修改。 所以, 所附权 利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。 脱离本发明实施例的精神和范围。 这样, 倘若本发明实施例的这些修改和变 型属于本发明权利要求及其等同技术的范围之内, 则本发明也意图包含这些 改动和变型在内。
Claims
1、 一种计算数据的预期压缩率的方法, 其特征在于, 包括
将待压缩数据解析为符号序列;
获取所述符号序列的相关指标, 其中, 所述相关指标用于表征所述符号 序列中的符号的分布规律;
根据所述相关指标, 计算将所述待压缩数据釆用指定编码方式编码后的 预期编码长度;
将计算得到的预期编码长度与所述待压缩数据的初始长度的比值, 作为 所述待压缩数据的预期压缩率。
2、 如权利要求 1所述的方法, 其特征在于, 所述相关指标包括符号集合 的基数和 /或符号频数集合;
其中, 所述符号集合包括所述符号序列中出现的所有符号, 且所述符号 集合中的任意两个符号均不相同;
所述符号集合的基数为所述符号集合中的所有符号的个数;
所述符号频数集合中的频数为所述符号集合中的各个符号分别在所述符 号序列中分别出现的次数。
3、 如权利要求 2所述的方法, 其特征在于, 根据所述相关指标, 计算将 所述待压缩数据釆用指定编码方式编码后的预期编码长度, 具体包括:
根据所述符号集合的基数, 计算所述符号集合所包括的任意一符号釆用 定长编码方式表达时所需要的位长, 其中, 所述符号集合中的每一个符号釆 用所述定长编码方式表达时所需要的位长均相等;
确定计算出的位长与所述符号频数集合中包括的所有频数之和的乘积; 将确定的乘积作为第一预期编码长度, 其中, 所述第一预期编码长度为 将所述待压缩数据釆用所述定长编码方式编码得到的预期编码长度;
其中, 所述符号集合中的每一个符号釆用所述定长编码方式表达时所需 要的位长均相等。
4、 如权利要求 2所述的方法, 其特征在于, 根据所述相关指标, 计算将 所述待压缩数据釆用指定编码方式编码后的预期编码长度, 具体包括:
通过对所述符号频数集合进行递归划分, 计算第二预期编码长度, 其中, 所述第二预期编码长度为将所述待压缩数据釆用哈夫曼编码方式编码后的预 期编码长度。
5、 如权利要求 4所述的方法, 其特征在于, 通过对所述符号频数集合进 行递归划分, 计算第二预期编码长度, 具体包括:
确定所述符号集合的基数大于或者等于预设划分门限值时, 将所述符号 频数集合进行递归划分, 获取递归划分完成后得到的至少两个频数子集合; 针对所述至少两个频数子集合中的任意一频数子集合, 计算指定数目个 符号釆用所述哈夫曼编码方式表达时的预期编码长度, 其中, 所述指定数目 为该任意一频数子集合中包括的所有频数之和;
将针对每一个频数子集合分别计算出的预期编码长度相加, 得到预期编 码长度之和;
将所述预期编码长度之和, 作为所述第二预期编码长度。
6、 如权利要求 5所述的方法, 其特征在于, 将所述符号频数集合进行递 归划分, 获取递归划分完成后得到的至少两个频数子集合, 具体包括:
对划分得到的每个频数子集合重复执行下述划分处理, 直至划分得到的 频数子集合的基数小于所述预设基数门限值时, 或者直至递归划分级数达到 预设级数门限值时, 停止划分:
对所述符号频数集合进行划分, 得到两个频数子集合;
针对每个频数子集合, 确定出该频数子集合的基数大于或者等于所述预 设基数门限值, 或者递归划分级数大于或者等于所述预设级数门限值时, 对 该频数子集合返回继续执行划分处理。
7、 如权利要求 6所述的方法, 其特征在于, 对所述符号频数集合进行划 分, 得到两个频数子集合, 具体包括:
确定对所述符号频数集合进行划分的所有划分方式;
针对每种划分方式, 分别执行:
釆用该划分方式对所述符号频数集合进行划分, 得到两个频数子集合; 判定得到的两个频数子集合中的第一频数子集合中包括的任意一频数, 是否均大于或者等于得到的两个频数子集合中的第二频数子集合中包括的任 一频数;
从所有划分方式中确定出指定划分方式, 其中, 所述指定划分方式中的 任意一种划分方式下得到的两个频数子集合中的第一频数子集合中包括的任 意一频数, 均大于或者等于得到的两个频数子集合中的第二频数子集合中包 括的任意一频数;
针对所述指定划分方式中的每种划分方式, 计算该划分方式下得到的两 个频数子集合中的第一频数子集合包括的所有频数之和与第二频数子集合包 括的所有频数之和之间的差值;
从得到的所有差值中, 确定出最小差值;
将该最小差值对应的划分方式下划分得到的两个频数子集合, 作为对所 述符号频数集合进行划分, 得到的两个频数子集合。
8、 如权利要求 6所述的方法, 其特征在于, 对所述符号频数集合进行划 分, 得到两个频数子集合, 具体包括:
将所述符号频数集合中包括的所有频数进行排序;
将排序后的符号频数集合, 按照如下规则依次进行 N-1次划分, N为所述 符号集合的基数;
将排序后的符号频数集合中的排序在首位的频数、 排序在第 X位的频数, 及位于排序在首位和第 X位之间的所有频数, 作为第 X次划分得到的第一频数 子集合, 其中, X为大于等于 1小于等于 N-1的正整数;
将排序后的符号频数集合中的排序在末位的频数,及排序在末位和第 X位 之间的所有频数, 作为所述第 X次划分得到的第二频数子集合;
计算针对每一次划分得到的第一频数子集合包括的所有频数之和, 与第 二频数子集合包括的所有频数之和之间的差值;
将最小差值对应划分方式下划分得到的第一频数子集合与第二频数子集 合, 作为对所述符号频数集合划分, 得到的两个频数子集合。
9、 如权利要求 5-8任一项所述的方法, 其特征在于, 计算指定数目个符 号釆用所述哈夫曼编码方式表达时的预期编码长度, 具体包括:
针对该任意一频数子集合中包含的任意一频数, 分别执行:
确定该任意一频数所在频数子集合对应的递归划分级数;
根据确定出的递归划分级数和所述任意一频数所在频数子集合的基数, 计算该频数所对应的符号釆用所述哈夫曼编码方式表达时所需要的预期位 长;
将计算出的预期位长与该任意一频数的乘积, 作为该任意一频数数目个 符号, 釆用所述哈夫曼编码方式表达时的预期编码长度;
将计算出的该任意一频数子集合中的所有频数之和的数目个符号, 釆用 所述哈夫曼编码方式表达时的总预期编码长度, 作为指定数目个符号釆用所 述哈夫曼编码方式表达时的预期编码长度。
10、 如权利要求 1-9任一项所述的方法, 其特征在于, 所述待压缩数据的 数据类型为二进制数据, 所述相关指标还包括游标集合的基数、 游标位长、 最大游程; 及每一组连续重复出现的符号中的任意一符号;
所述游标集合的基数为所述游标集合中的所有符号的个数;
所述游标位长为所述游标集合中的任意一游标的空间开销, 其中, 所述 游标集合中包含的各游标的位长均相等;
所述游程集合包括的游程为所述游标集合包括的游标在所述符号序列中 的对应位置连续出现的次数;
所述最大游程为各游标分别在所述符号序列中的对应位置连线出现的次 数中的最大值。
11、 如权利要求 10所述的方法, 其特征在于, 根据所述相关指标, 计算
将所述待压缩数据釆用指定编码方式编码后的预期编码长度, 具体包括: 计算所述最大游程釆用所述游程编码方式表达时所需要的位长, 其中, 所述游程集合中的每一个游程釆用所述游程编码方式表达时所需要的位长, 与所述最大游程釆用所述游程编码方式表达时所需要的位长均相等;
将计算出的所述最大游程釆用所述游程编码方式表达时所需的位长, 与 所述游标集合的基数的乘积, 作为计算出的所有游程釆用所述游程编码方式 表达所需要的位长;
将所述游标位长与所述游标集合的基数的乘积, 作为计算出的所有游标 的位长;
确定计算得到的所有游标的位长, 与计算得到的所有游程釆用所述游程 编码方式表达所需要的位长之和;
将所述位长之和作为第三预期编码长度, 其中, 所述第三预期编码长度 为将所述待压缩数据釆用所述游程编码方式编码得到的预期编码长度。
12、 一种计算数据的预期压缩率的装置, 其特征在于, 包括
解析单元, 用于将待压缩数据解析为符号序列;
获取单元, 用于获取所述符号序列的相关指标, 其中, 所述相关指标用 于表征所述符号序列中的符号的分布规律;
第一计算单元, 用于根据所述相关指标, 计算将所述待压缩数据釆用指 定编码方式编码后的预期编码长度;
第二计算单元, 用于将计算得到的预期编码长度与所述待压缩数据的初 始长度的比值, 作为所述待压缩数据的预期压缩率。
13、 如权利要求 12所述的装置, 其特征在于, 所述获取单元获取的相关 指标包括符号集合的基数和 /或符号频数集合;
其中, 所述符号集合包括所述符号序列中出现的所有符号, 且所述符号 集合中的任意两个符号均不相同;
所述符号集合的基数为所述符号集合中的所有符号的个数;
所述符号频数集合中的频数为所述符号集合中的各个符号分别在所述符
号序列中分别出现的次数。
14、 如权利要求 13所述的装置, 其特征在于, 所述第一计算单元具体用 于:
根据所述符号集合的基数, 计算所述符号集合所包括的任意一符号釆用 定长编码方式表达时所需要的位长, 其中, 所述符号集合中的每一个符号釆 用所述定长编码方式表达时所需要的位长均相等;
确定计算出的位长与所述符号频数集合中包括的所有频数之和的乘积; 将确定的乘积作为第一预期编码长度, 其中, 所述第一预期编码长度为 将所述待压缩数据釆用所述定长编码方式编码得到的预期编码长度;
其中, 所述符号集合中的每一个符号釆用所述定长编码方式表达时所需 要的位长均相等。
15、 如权利要求 13所述的装置, 其特征在于, 所述第一计算单元具体用 于:
通过对所述符号频数集合进行递归划分, 计算第二预期编码长度, 其中, 所述第二预期编码长度为将所述待压缩数据釆用哈夫曼编码方式编码后的预 期编码长度。
16、 如权利要求 15所述的装置, 其特征在于, 所述第一计算单元在通过 对所述符号频数集合进行递归划分, 计算第二预期编码长度时, 具体为: 确定所述符号集合的基数大于或者等于预设划分门限值时, 将所述符号 频数集合进行递归划分, 获取递归划分完成后得到的至少两个频数子集合; 针对所述至少两个频数子集合中的任意一频数子集合, 计算指定数目个 符号釆用所述哈夫曼编码方式表达时的预期编码长度, 其中, 所述指定数目 为该任意一频数子集合中包括的所有频数之和;
将针对每一个频数子集合分别计算出的预期编码长度相加, 得到预期编 码长度之和;
将所述预期编码长度之和, 作为所述第二预期编码长度。
17、 如权利要求 16所述的装置, 其特征在于, 所述第一计算单元在将所
述符号频数集合进行递归划分, 获取递归划分完成后得到的至少两个频数子 集合时, 具体为:
对划分得到的每个频数子集合重复执行下述划分处理, 直至划分得到的 频数子集合的基数小于所述预设基数门限值时, 或者直至递归划分级数达到 预设级数门限值时, 停止划分:
对所述符号频数集合进行划分, 得到两个频数子集合;
针对每个频数子集合, 确定出该频数子集合的基数大于或者等于所述预 设基数门限值, 或者递归划分级数大于或者等于所述预设级数门限值时, 对 该频数子集合返回继续执行划分处理。
18、 如权利要求 17所述的装置, 其特征在于, 所述第一计算单元在对所 述符号频数集合进行划分, 得到两个频数子集合时, 具体为:
确定对所述符号频数集合进行划分的所有划分方式;
针对每种划分方式, 分别执行:
釆用该划分方式对所述符号频数集合进行划分, 得到两个频数子集合; 判定得到的两个频数子集合中的第一频数子集合中包括的任意一频数, 是否均大于或者等于得到的两个频数子集合中的第二频数子集合中包括的任 一频数;
从所有划分方式中确定出指定划分方式, 其中, 所述指定划分方式中的 任意一种划分方式下得到的两个频数子集合中的第一频数子集合中包括的任 意一频数, 均大于或者等于得到的两个频数子集合中的第二频数子集合中包 括的任意一频数;
针对所述指定划分方式中的每种划分方式, 计算该划分方式下得到的两 个频数子集合中的第一频数子集合包括的所有频数之和与第二频数子集合包 括的所有频数之和之间的差值;
从得到的所有差值中, 确定出最小差值;
将该最小差值对应的划分方式下划分得到的两个频数子集合, 作为对所 述符号频数集合进行划分, 得到的两个频数子集合。
19、 如权利要求 17所述的装置, 其特征在于, 所述第一计算单元在对所 述符号频数集合进行划分, 得到两个频数子集合时, 具体为:
将所述符号频数集合中包括的所有频数进行排序;
将排序后的符号频数集合, 按照如下规则依次进行 N-1次划分, N为所述 符号集合的基数;
将排序后的符号频数集合中的排序在首位的频数、 排序在第 X位的频数, 及位于排序在首位和第 X位之间的所有频数, 作为第 X次划分得到的第一频数 子集合, 其中, X为大于等于 1小于等于 N-1的正整数;
将排序后的符号频数集合中的排序在末位的频数,及排序在末位和第 X位 之间的所有频数, 作为所述第 X次划分得到的第二频数子集合;
计算针对每一次划分得到的第一频数子集合包括的所有频数之和, 与第 二频数子集合包括的所有频数之和之间的差值;
将最小差值对应划分方式下划分得到的第一频数子集合与第二频数子集 合, 作为对所述符号频数集合划分, 得到的两个频数子集合。
20、 如权利要求 16-19任一项所述的装置, 其特征在于, 所述第一计算单 元在计算指定数目个符号釆用所述哈夫曼编码方式表达时的预期编码长度 时, 具体为:
针对该任意一频数子集合中包含的任意一频数, 分别执行:
确定该任意一频数所在频数子集合对应的递归划分级数;
根据确定出的递归划分级数和所述任意一频数所在频数子集合的基数, 计算该频数所对应的符号釆用所述哈夫曼编码方式表达时所需要的预期位 长;
将计算出的预期位长与该任意一频数的乘积, 作为该任意一频数数目个 符号, 釆用所述哈夫曼编码方式表达时的预期编码长度;
将计算出的该任意一频数子集合中的所有频数之和的数目个符号, 釆用 所述哈夫曼编码方式表达时的总预期编码长度, 作为指定数目个符号釆用所 述哈夫曼编码方式表达时的预期编码长度。
21、 如权利要求 12-20任一项所述的装置, 其特征在于, 所述待压缩数据 的数据类型为二进制数据, 所述获取单元获取的相关指标还包括游标集合的 基数、 游标位长、 最大游程; 及每一组连续重复出现的符号中的任意一符号;
所述游标集合的基数为所述游标集合中的所有符号的个数;
所述游标位长为所述游标集合中的任意一游标的空间开销, 其中, 所述 游标集合中包含的各游标的位长均相等;
所述游程集合包括的游程为所述游标集合包括的游标在所述符号序列中 的对应位置连续出现的次数;
所述最大游程为各游标分别在所述符号序列中的对应位置连线出现的次 数中的最大值。
22、 如权利要求 21所述的装置, 其特征在于, 所述第一计算单元具体用 于:
计算所述最大游程釆用所述游程编码方式表达时所需要的位长, 其中, 所述游程集合中的每一个游程釆用所述游程编码方式表达时所需要的位长, 与所述最大游程釆用所述游程编码方式表达时所需要的位长均相等;
将计算出的所述最大游程釆用所述游程编码方式表达时所需的位长, 与 所述游标集合的基数的乘积, 作为计算出的所有游程釆用所述游程编码方式 表达所需要的位长;
将所述游标位长与所述游标集合的基数的乘积, 作为计算出的所有游标 的位长;
确定计算得到的所有游标的位长, 与计算得到的所有游程釆用所述游程 编码方式表达所需要的位长之和;
将所述位长之和作为第三预期编码长度, 其中, 所述第三预期编码长度 为将所述待压缩数据釆用所述游程编码方式编码得到的预期编码长度。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2014/082077 WO2016004629A1 (zh) | 2014-07-11 | 2014-07-11 | 一种计算数据的预期压缩率的方法及装置 |
CN201480036812.XA CN106170760B (zh) | 2014-07-11 | 2014-07-11 | 一种计算数据的预期压缩率的方法及装置 |
US15/397,098 US9722631B2 (en) | 2014-07-11 | 2017-01-03 | Method and apparatus for calculating estimated data compression ratio |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2014/082077 WO2016004629A1 (zh) | 2014-07-11 | 2014-07-11 | 一种计算数据的预期压缩率的方法及装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/397,098 Continuation US9722631B2 (en) | 2014-07-11 | 2017-01-03 | Method and apparatus for calculating estimated data compression ratio |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016004629A1 true WO2016004629A1 (zh) | 2016-01-14 |
Family
ID=55063531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2014/082077 WO2016004629A1 (zh) | 2014-07-11 | 2014-07-11 | 一种计算数据的预期压缩率的方法及装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9722631B2 (zh) |
CN (1) | CN106170760B (zh) |
WO (1) | WO2016004629A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3407198A1 (en) * | 2017-05-22 | 2018-11-28 | Siemens Aktiengesellschaft | System, device and method for frozen period detection in sensor datasets |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1127558A (zh) * | 1994-04-22 | 1996-07-24 | 索尼公司 | 数据传输装置和数据记录装置及数据传输方法和数据记录方法 |
JP2000259187A (ja) * | 1999-03-05 | 2000-09-22 | Hitachi Information Technology Co Ltd | 音声データ圧縮方法 |
WO2006056247A1 (fr) * | 2004-11-26 | 2006-06-01 | Siemens Vdo Automotive | Procede de compression de donnees numeriques |
CN102890268A (zh) * | 2012-10-11 | 2013-01-23 | 南京莱斯信息技术股份有限公司 | 一种雷达信号无损压缩的方法 |
CN103152430A (zh) * | 2013-03-21 | 2013-06-12 | 河海大学 | 一种缩减数据占用空间的云存储方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3584032B2 (ja) * | 2003-02-24 | 2004-11-04 | 沖電気工業株式会社 | データ圧縮装置及びデータ展開装置 |
US8295615B2 (en) | 2007-05-10 | 2012-10-23 | International Business Machines Corporation | Selective compression of synchronized content based on a calculated compression ratio |
US8321386B1 (en) | 2008-04-14 | 2012-11-27 | Netapp, Inc. | System and method for estimating a compressibility of data in a storage device |
CN101299611B (zh) * | 2008-06-30 | 2011-10-05 | 中国电子科技集团公司第二十八研究所 | 一种基于集合游程的数据压缩方法 |
US8195636B2 (en) | 2009-04-29 | 2012-06-05 | Netapp, Inc. | Predicting space reclamation in deduplicated datasets |
US8615499B2 (en) | 2012-01-27 | 2013-12-24 | International Business Machines Corporation | Estimating data reduction in storage systems |
US9246511B2 (en) | 2012-03-20 | 2016-01-26 | Sandisk Technologies Inc. | Method and apparatus to process data based upon estimated compressibility of the data |
US8650163B1 (en) | 2012-08-20 | 2014-02-11 | International Business Machines Corporation | Estimation of data reduction rate in a data storage system |
US9564918B2 (en) * | 2013-01-10 | 2017-02-07 | International Business Machines Corporation | Real-time reduction of CPU overhead for data compression |
US20140244604A1 (en) * | 2013-02-28 | 2014-08-28 | Microsoft Corporation | Predicting data compressibility using data entropy estimation |
CN103346800B (zh) * | 2013-07-08 | 2016-10-05 | 沈阳东软医疗系统有限公司 | 一种数据压缩方法及装置 |
CN103746702B (zh) * | 2013-12-17 | 2017-01-11 | 记忆科技(深圳)有限公司 | 数据的无损压缩方法与装置 |
-
2014
- 2014-07-11 WO PCT/CN2014/082077 patent/WO2016004629A1/zh active Application Filing
- 2014-07-11 CN CN201480036812.XA patent/CN106170760B/zh active Active
-
2017
- 2017-01-03 US US15/397,098 patent/US9722631B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1127558A (zh) * | 1994-04-22 | 1996-07-24 | 索尼公司 | 数据传输装置和数据记录装置及数据传输方法和数据记录方法 |
JP2000259187A (ja) * | 1999-03-05 | 2000-09-22 | Hitachi Information Technology Co Ltd | 音声データ圧縮方法 |
WO2006056247A1 (fr) * | 2004-11-26 | 2006-06-01 | Siemens Vdo Automotive | Procede de compression de donnees numeriques |
CN102890268A (zh) * | 2012-10-11 | 2013-01-23 | 南京莱斯信息技术股份有限公司 | 一种雷达信号无损压缩的方法 |
CN103152430A (zh) * | 2013-03-21 | 2013-06-12 | 河海大学 | 一种缩减数据占用空间的云存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106170760A (zh) | 2016-11-30 |
CN106170760B (zh) | 2019-11-05 |
US20170117918A1 (en) | 2017-04-27 |
US9722631B2 (en) | 2017-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106549673B (zh) | 一种数据压缩方法及装置 | |
US10680645B2 (en) | System and method for data storage, transfer, synchronization, and security using codeword probability estimation | |
US11551785B2 (en) | Gene sequencing data compression preprocessing, compression and decompression method, system, and computer-readable medium | |
US10476519B2 (en) | System and method for high-speed transfer of small data sets | |
US20130019029A1 (en) | Lossless compression of a predictive data stream having mixed data types | |
CN110825323B (zh) | 浮点数数据的存储、读取方法和计算机可读存储介质 | |
Kirsch et al. | Directly lower bounding the information capacity for channels with iid deletions and duplications | |
WO2019080670A1 (zh) | 基因测序数据压缩解压方法、系统及计算机可读介质 | |
US20200364269A1 (en) | Fingerprints for compressed columnar data search | |
KR20120137235A (ko) | 유전자 데이터를 압축하는 방법 및 장치 | |
US11868616B2 (en) | System and method for low-distortion compaction of floating-point numbers | |
CN104038233A (zh) | 基于相邻位异或运算的测试数据压缩与解压缩方法 | |
CN113630125A (zh) | 数据压缩、编码解压缩方法、装置、电子设备及存储介质 | |
CN102084594A (zh) | 用于处理数字数据的方法 | |
CN106537914B (zh) | 通过限制的进位运算来执行算术编译的方法和设备 | |
WO2016004629A1 (zh) | 一种计算数据的预期压缩率的方法及装置 | |
CN106484753B (zh) | 数据处理方法 | |
CN103746701A (zh) | 一种用于Rice无损数据压缩的快速编码选项选择方法 | |
CN110808739A (zh) | 一种信源符号概率分布未知的二元编码方法及装置 | |
Zweimuller | Asymptotic orbit complexity of infinite measure preserving transformations | |
CN112100453A (zh) | 一种字符串分布统计方法、系统、设备及计算机存储介质 | |
CN113904900B (zh) | 一种实时遥测信源分阶相对编码方法 | |
CN113595557B (zh) | 一种数据处理的方法和装置 | |
CN117786169B (zh) | 一种数据自适应存储方法、装置、电子设备及存储介质 | |
CN117827147B (zh) | 一种比特频数筛查方法、装置、电子设备及介质 |
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: 14897319 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 14897319 Country of ref document: EP Kind code of ref document: A1 |