WO2014131526A1 - Modificateur d'entropie et procédé - Google Patents

Modificateur d'entropie et procédé Download PDF

Info

Publication number
WO2014131526A1
WO2014131526A1 PCT/EP2014/000529 EP2014000529W WO2014131526A1 WO 2014131526 A1 WO2014131526 A1 WO 2014131526A1 EP 2014000529 W EP2014000529 W EP 2014000529W WO 2014131526 A1 WO2014131526 A1 WO 2014131526A1
Authority
WO
WIPO (PCT)
Prior art keywords
entropy
data
entropy modifier
modifier
input data
Prior art date
Application number
PCT/EP2014/000529
Other languages
English (en)
Inventor
Ossi Kalevo
Original Assignee
Gurulogic Microsystems Oy
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gurulogic Microsystems Oy filed Critical Gurulogic Microsystems Oy
Priority to CN201480024777.XA priority Critical patent/CN105164923B/zh
Priority to JP2015559443A priority patent/JP6073506B2/ja
Priority to EP14713379.7A priority patent/EP2962396A1/fr
Priority to KR1020157024996A priority patent/KR102068383B1/ko
Priority to RU2015132038A priority patent/RU2611249C1/ru
Priority to US14/254,102 priority patent/US8933826B2/en
Publication of WO2014131526A1 publication Critical patent/WO2014131526A1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/46Conversion 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding

Definitions

  • the present invention relates to entropy modifiers which are operable to receive input data and generate corresponding output data whose entropy has been modified relative to that of the input data, for example for purposes of data compression and/or data de-compression; the entropy modifiers are implementable using electronic hardware and/or software products stored on machine-readable data storage media and executable upon computing hardware. Moreover, the present invention also concerns methods of modifying entropy of input data to generate corresponding output data which has a modified degree of entropy relative to that of the input data. Furthermore, the present invention relates to software products recorded on machine-readable data storage media, wherein the software products are executable upon computing hardware for executing aforementioned methods.
  • the entropy modifiers are useable, for example, as component parts of data communication systems and data supply systems, for example media supply systems.
  • entropy is a measure of an uncertainty in a random variable, and pertains to physical continuous systems, for example as in thermodynamics, as well as to information systems, for example data communication systems.
  • entropy is more appropriately referred to as being Shannon entropy; reference is made to Claude E. Shannon's 1948 scientific paper "A Mathematical Theory of Communication” which is hereby incorporated by reference Shannon entropy is useable for quantifying an expected value of information contained in a given message.
  • Shannon entropy is expressible in terms of nats and bans, as well as bits.
  • Shannon entropy provides an absolute limit regarding a best possible lossless encoding or compression of any communication, assuming that a given communication is susceptible to being represented as a sequence of independent and identically-distributed random variables. Moreover, Shannon's theory has indentified that an average length L of a shortest possible representation to encode a given message in a given alphabet is their entropy E divided by a logarithm of a number of symbols N present in the alphabet , namely as defined in Equation 1 (Eq.
  • the entropy E is a measure of unpredictability or information content.
  • compressed output data generated by applying the method to corresponding input data has a similar quantity of information as the input data, but the output data includes fewer data bits relative to the input data. In consequence, the compressed output data is more unpredictable because it contains less redundancy of information therein.
  • Data irrespective of type of the data, require data storage space, and also bandwidth in communication network capacity when moved from one spatial location to another. Such bandwidth corresponds to investment of communication infrastructure and utilization of energy in reality. As volumes of data to be communicated are projected to increase in future, more data storage space and more communication system capacity will be needed, and often also more energy will be needed. In the contemporary Internet, there are stored huge quantities of data, often in multiple copies. Thus, any approach which is able to compress data, especially when such compression is lossless, is potentially of great technical and economic benefit. Contemporarily, there are several known methods for reducing entropy within data sets, for compressing the data sets. Moreover, there are known methods of modifying entropy present in data sets, for example Delta coding and Run-Length- Encoding (RLE), but new methods are still required which provide more effective data compression of data.
  • RLE Run-Length- Encoding
  • RLE In respect of conventional RLE coding, there is stored either a given value, namely bit, or two times the value, namely bit, and then a number of similar values, namely bits, after that.
  • RLE can be applied selectively, for example, namely its coding can be reserved solely for coding runs including a known amount of bits for a number of similar values.
  • Such selective application of RLE requires that the same value be put once or twice again into a given data stream with each new run.
  • a first object of the present invention is to provide an improved entropy modification, for example for providing improved compression of data.
  • a second object of the present invention is to provide an improved method of entropy modification, for example for providing improved compression of data.
  • an entropy modifier as claimed in appended claim 1 there is provided an entropy modifier which is operable to encode a stream of input data bits (D1 ) having a first entropy for generating corresponding entropy-modified output data (D2) having a second entropy, wherein
  • the entropy modifier (10) is operable to generate the output data (D2) to include an information of a first bit which functions as a reference value for subsequent data included in the output data (D2);
  • the output data (D2) further includes data indicative of run lengths of mutually similar bits present in the input data bits (D1 ), wherein the run lengths of mutually similar bits are substantially limited in size so as not to exceed a maximum run length value (MaxRun); and
  • the present invention is of advantage in that selective use of run length representation of the data is able to provide enhanced entropy modification, for example enhanced data compression.
  • the entropy modifier is implemented such that the one or more maximum run lengths of the groups of mutually similar bits are controlled by a plurality of escape codes.
  • One kind of escape code solution employed uses a maximum run length value and an indication that the amount of similar bits is continued. In this kind of solution all the symbols can be coded as one data stream.
  • the other kind of escape code enables utilization of many different solutions that are separated from the coded symbols and represents the continuous amount of similar bits value that is greater than the maximum run length value.
  • This kind of solution can be handled as two separate streams or the solution can be designed so that any value representing the number is not bigger than the maximum run, such that they can also be coded with the same stream of other symbols.
  • escape methods are optionally employed.
  • the entropy modifier is operable to handle the input stream of data (D1 ) using the maximum run length in manner which is dynamically varied as a function of a nature of the stream of input data (D1).
  • the entropy modifier is operable to function as a data pre-processor for formatting the input data (D1 ) to the output data (D2) for subsequent compression in one or more coding arrangements to generate compressed data (D3)
  • the entropy modifier is implemented such that the at least one escape code is implemented as a "0" value within the output data (D2) generated by the entropy modifier.
  • the one or more coding arrangements include one or more of: ODelta coder, RLE coding, VLC coding, Huffman coding, Delta coding, Arithmetic coding, Range coding.
  • the entropy modifier is operable to handle the stream of input data bits (D1 ) in a plurality of parts which are separately processed. More optionally, the entropy modifier is operable to handle the plurality of parts in a temporally parallel manner, namely by way of parallel execution. More optionally, the entropy modifier is operable to handle the plurality of parts by using maximum run lengths which are mutually different for one or more of the parts.
  • the information of a first bit can be encoded into its own data stream or to the same data stream with the run length information or the information of a first bit can be included with the information of used coding method.
  • the entropy modifier is implemented to function as an encoder for compressing the stream of input data (D1 ) to generate the entropy-modified output (D2, D3).
  • the entropy modifier is operable to assist to transform a bit string present in the input data (D1 ) to symbols present in the entropy modified output data (D2).
  • the entropy modifier includes computing hardware, wherein the computing hardware is operable to execute one or more software products recorded on machine-readable data storage media for processing the stream of input data (D1 ) to generate the output data (D2).
  • an entropy modifier which is operable to decode a stream of input data bits (D3 or D4) having a first entropy for generating corresponding entropy-modified output data (D5) having a second entropy, wherein (a) the entropy modifier (10) is operable to process the input data (D3 or D4) by using an information of a first bit thereof to function as a reference value for subsequent data included in the input data (D3 or D4);
  • the entropy modifier (10) is operable to process data present in the input data (D3 or D4) which is indicative of run lengths of mutually similar bits present in the input data bits (D3 or D4), wherein the run lengths of mutually similar bits are substantially limited in size so as not to exceed a maximum run length value (MaxRun); and
  • the entropy modifier (10) is operable to detect one or more occurrences of the run lengths in the input data (D1 ) substantially exceeding the maximum run length value as denoted by at least one escape code included in the input data (D3 or D4).
  • the entropy modifier is operable to process one or more maximum run lengths of the groups of mutually similar bits by using at least one escape code. More optionally, the entropy modifier is implemented such that the one or more maximum run lengths of the groups of mutually similar bits are processed by using a plurality of escape codes.
  • One kind of escape code solution employed uses a maximum run length value and an indication that the amount of similar bits is continued. In this kind of solution all the symbols can be coded as one data stream, similarly decoded a one data stream.
  • the other kind of escape code enables utilization of many different solutions that are separated from the coded symbols and represents the continuous amount of similar bits value that is greater than the maximum run length value.
  • This kind of solution can be handled as two separate streams or the solution can be designed so that any value representing the number is not bigger than the maximum run, such that they can also be coded with the same stream of other symbols.
  • other escape methods are optionally employed.
  • the entropy modifier is operable to handle the input stream of data (D3 or D4) using the maximum run length in manner which is dynamically varied as a function of a nature of the stream of input data (D3 or D4).
  • the entropy modifier is operable to handle the information of the value of a first bit in the stream of input data (D3 or D4) separately from a sequence of data bits. More optionally, the entropy modifier is operable to handle the value of the first bit as separately encoded relative to the sequence of data values that represent a continuous amount of similar bits. More optionally, the entropy modifier is implemented such that the at least one escape code is implemented as a "0" value within the entropy modifier.
  • the entropy modifier is operable to decode data elements present in the input data (D3 or D4) and apply an inverse entropy modification to generate the output data (D5) as a decoded bit stream.
  • the entropy modifier is utilized for post-processing in conjunction with one or more coding arrangements for handling the stream of input data bits (D3), wherein the one or more coding arrangements include one or more of: ODelta coder, RLE coding, VLC coding, Huffman coding, Delta coding, Arithmetic coding, Range coding.
  • the one or more coding arrangements include one or more of: ODelta coder, RLE coding, VLC coding, Huffman coding, Delta coding, Arithmetic coding, Range coding.
  • the entropy modifier is operable to handle the stream of input data bits (D3 or D4) in a plurality of parts which are separately encoded or decoded. More optionally, the entropy modifier is operable to handle the plurality of parts in a temporally parallel manner, namely by way of parallel execution. More optionally, the entropy modifier is operable to handle the plurality of parts by using maximum run lengths which are mutually different for one or more of the parts.
  • the entropy modifier is implemented to function as a post-processor for entropy modifying the stream of input data (D3 or D4) after decoding to generate the entropy-modified output (D5).
  • the entropy modifier is operable to assist to transform symbols present in the input data (D3 or D4) to a bit string present in the output data (D5).
  • the entropy modifier includes computing hardware, wherein the computing hardware is operable to execute one or more software products recorded on machine-readable data storage media for processing the stream of input data (D3 or D4) to generate the output data (D5).
  • a method of using an entropy modifier to encode a stream of input data bits (D1 ) having a first entropy for generating corresponding entropy-modified output data (D2) having a second entropy wherein the method includes:
  • the method includes using the entropy modifier to control one or more maximum run lengths of the groups of mutually similar bits by using at least one escape code. More optionally, the method includes using a plurality of escape codes to control the one or more maximum run lengths of the groups of mutually similar bits. More optionally, the method includes using the entropy modifier to handle the input stream of data (D1 ) using the maximum run length in manner which is dynamically varied as a function of a nature of the stream of input data (D1 ). Optionally, the method includes using the entropy modifier to handle the information of the value of a first bit in the stream of input data (D1 ) separately from a sequence of data bits. More optionally, the method includes using the entropy modifier to handle the value of the first bit as separately encoded relative to the sequence of data values that represent a continuous amount of similar bits.
  • the method is implemented such that the at least one escape code is implemented as a "0" value within the entropy modifier.
  • the method includes using the entropy modifier for post-processing in conjunction with one or more coding arrangements for handling the stream of input data bits (D1 ), wherein the one or more coding arrangements include one or more of: ODelta coder, RLE coding, VLC coding, Huffman coding, Delta coding, Arithmetic coding, Range coding.
  • the method includes using the entropy modifier to handle the stream of input data bits (D1 ) in a plurality of parts which are separately encoded or decoded.
  • the method includes using the entropy modifier to handle the plurality of parts in a temporally parallel manner, namely by way of parallel execution.
  • the method includes using the entropy modifier to handle the plurality of parts by using maximum run lengths which are mutually different for one or more of the parts.
  • the method includes implementing the entropy modifier to function as an encoder for compressing the stream of input data (D1 ) to generate the entropy- modified output (D2, D3). More optionally, the method includes using the entropy modifier to assist to transform a bit string present in the input data (D1 ) to symbols present in the entropy modified output data (D2). More optionally, the method includes implementing the entropy modifier to include computing hardware, wherein the computing hardware is operable to execute one or more software products recorded on machine-readable data storage media for processing the stream of input data (D1 ) to generate the output data (D2).
  • a stream of input data bits (D3 or D4) having a first entropy for generating corresponding entropy-modified output data (D5) having a second entropy wherein the method includes:
  • the entropy modifier (10) is operable to detect one or more occurrences of the run lengths in the input data (D1 ) substantially exceeding the maximum run length value as denoted by at least one escape code included in the input data
  • the method includes using the entropy modifier to process one or more maximum run lengths of the groups of mutually similar bits by using at least one escape code. More optionally, the method includes processing the one or more maximum run lengths of the groups of mutually similar bits by using a plurality of escape codes.
  • the method includes using the entropy modifier to handle the input stream of data (D3 or D4) using the maximum run length in manner which is dynamically varied as a function of a nature of the stream of input data (D3 or D4).
  • the method includes using the entropy modifier to handle the information of the value of a first bit in the stream of input data (D3 or D4) separately from a sequence of data bits. More optionally, the method includes using the entropy modifier to handle the value of the first bit as separately encoded relative to the sequence of data values that represent a continuous amount of similar bits. More optionally, the method is implemented such that the at least one escape code is implemented as a "0" value within the entropy modifier.
  • the method includes using the entropy modifier to decode data elements present in the input data (D3 or D4) and apply an inverse entropy modification to generate the output data (D5) as a decoded bit stream.
  • the method includes using the entropy modifier for post-processing in conjunction with one or more coding arrangements for handling the stream of input data bits (D3), wherein the one or more coding arrangements include one or more of: ODelta coder, RLE coding, VLC coding, Huffman coding, Delta coding, Arithmetic coding, Range coding.
  • the one or more coding arrangements include one or more of: ODelta coder, RLE coding, VLC coding, Huffman coding, Delta coding, Arithmetic coding, Range coding.
  • the method includes using the entropy modifier to handle the stream of input data bits (D3 or D4) in a plurality of parts which are separately processed. More optionally, the method includes using the entropy modifier to handle the plurality of parts in a temporally parallel manner, namely by way of parallel execution.
  • the decoder gets the information of a first bit (value) from its own data stream or from the same data stream with the run length information or the information can be included with the information of the used coding arrangement(s).
  • the method includes using the entropy modifier to handle the plurality of parts by using maximum run lengths which are mutually different for one or more of the parts.
  • the method includes using the entropy modifier to function as a decoder for decompressing the stream of input data (D3 or D4) to generate the entropy- modified output (D5).
  • the method includes using the entropy modifier to assist to transform symbols present in the input data (D3 or D4) to a bit string present in the output data (D5).
  • the method includes implementing the entropy modifier to computing hardware, wherein the computing hardware is operable to execute one or more software products recorded on machine-readable data storage media for processing the stream of input data (D3 or D4) to generate the output data (D5).
  • a software product recorded on machine-readable data storage media wherein the software product is executable upon computing hardware for executing the method pursuant to the third aspect of the invention.
  • a software product recorded on machine-readable data storage media wherein the software product is executable upon computing hardware for executing the method pursuant to the fourth aspect of the invention.
  • FIG. 1 is an illustration of a codec system including entropy modifiers pursuant to the present invention.
  • an underlined number is employed to represent an item over which the underlined number is positioned or an item to which the underlined number is adjacent.
  • a non-underlined number relates to an item identified by a line linking the non-underlined number to the item.
  • the non-underlined number is used to identify a general item at which the arrow is pointing.
  • input data D1 is supplied to a first entropy modifier 10 which transforms the input data to generate corresponding transformed data D2; the data D2 is optionally mutually different in size relative to the data D1 , depending upon a nature of transformation employed in the first entropy modifier 10, and has reduced entropy, relative to the data D2.
  • the data D2 is further coded via an encoding stage 20 to generate final encoded output data D3; when the encoding stage 20 is not employed, data D2 and D3 are mutually similar.
  • the encoded output data D3 is stored in data memory 30 and/or transmitted via a data communication network 40.
  • the output data D3 is communicated directly to a second entropy modifier 60, or optionally via a decoding stage 50 to the second entropy modifier 60 when the aforesaid encoding stage 20 is employed such that data D4 is substantially similar to the data D2.
  • the second entropy modifier 60 generates decoded output data D5 which is substantially similar to the input data D1.
  • the first entropy modifier 10 and the second entropy modifier 60 perform mutually inverse entropy modifying operations, for example as in a codec configuration.
  • the first and second entropy modifiers 10, 60 are operable to process data therethrough as a plurality of parallel streams of data for achieving faster entropy modification, for example faster encoding and/or decoding.
  • Such faster processing using a plurality of parallel data streams is beneficial when handling large volumes of data, for example streamed video content from data servers, for example from Internet-based servers providing cable TV services.
  • the first entropy modifier 10 therefore consumes a stream of bits present in the data D1 and creates from them data elements whose entropy is reduced compared to the entropy of the input data D1.
  • These modified data elements are optionally further encoded in the encoding stage 20 by employing methods such as Variable-Length- Coding (VLC), Huffman coding, Arithmetic coding, Range coding, Run-Length- Encoding (RLC) and similar.
  • VLC Variable-Length- Coding
  • Huffman coding Arithmetic coding
  • Range coding Range coding
  • Run-Length- Encoding RLC
  • the entropy modification executed within the first entropy 10 is reversible and beneficially lossless, mutatis mutandis also in the second entropy modifier 60.
  • the entropy modification executed within the first entropy modifier 10 at least stores a new data element containing a continuous amount of similar bits after every change of bit value
  • an indication of a first bit in any given sequence there should be provided an indication of a first bit in any given sequence.
  • an escape code that enables a limited number of codes to be employed for representing data elements, namely a maximum run, when the data elements are to be compressed.
  • the escape code is represented by digit "0"; the escape code denotes a highest value that the data element can represent, namely a maximum run, and it additionally conveys information that the bit value is continued.
  • one or more codes corresponding to a maximum run of bits are varied, depending upon the data and its properties; in other words, the one or more codes corresponding to the maximum run are adaptively varied depending upon the data to be compressed.
  • the entropy modifiers 10, 60 utilize pre- and/or post-processing methods, for example an ODelta operator, that operates for 1-bit data.
  • data being processed therethrough can be of any kind, for example image data, video data, audio data, reference data, masks, split bits, sign bits, and compressed data, namely any sort of data that can be processed in bits.
  • bytes or words of any data can be inserted into a stream that includes bits, and can be processed through the entropy modifiers 10, 60.
  • entropy modifier and "inverse entropy modifier” will be abbreviated to EM, IEM respectfully, namely for use in providing data compression and data decompression respectively, namely executed via the first and second entropy modifiers 10, 60 respectfully.
  • the entropy modifiers 10, 60 optionally are implemented using computing hardware (CPU) 70 which is operable to execute one or more software products 80 recorded on machine-readable data storage media 90 for implementing methods pursuant to the present invention.
  • CPU computing hardware
  • the entropy modifiers 10, 60 employ one parameter that defines a maximum run number of 0's or 1's, for example present in a stream of data bits. Moreover, entropy modifiers 10, 60 also employ an escape element that is used when the run of bits in the bit stream is larger than the maximum run in the bit stream. Beneficially, the maximum run length L is set to one or more in a series:
  • the escape element is chosen to be a value "0", because a plurality of zero similar bits is not possible when implementing the invention. It will be appreciated that if the number of similar bits is decreased by one count as above, then the escape element is beneficially the maximum run.
  • the entropy modifier 10 requires, when compression of a stream of bits is desired, for a first bit in the stream to be known, so that the corresponding compressed bit stream can be subsequently decoded, namely decompressed, reversibly in the entropy modifier 60.
  • An original stream of bits is as follows: 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 1 1 1 1 which includes twenty six bits in total in the stream, of which there are sixteen "1's" and ten "0's".
  • the aforementioned original stream of bits is encodable by applying a method pursuant to the present invention to generate a corresponding sequence of codes:
  • escape symbol "0" When the escape symbol "0" is used for limiting the number of different symbols to 4 different values from 0 (escape) to 3 (maximum run length), and also the first bit value has been added as the first symbol to the stream, we thereby will get:
  • 0122001011303 which includes thirteen codes in total in the stream, of which there are five "O's", four "1's",two "2's” andtwo"3's".
  • Table 1 is merely an example, and implementation of embodiments of the present invention is able to generate many alternative examples. For example, other maximum run values and other escape codes can be employed. Moreover, the first bit is optionally inserted separately, and it does not then influence the actual codes employed and their associated compression to any significant extent.
  • the entropy modifiers 10, 60 are operable, in certain circumstances, to increase entropy, and it is therefore beneficial for output data from the entropy modifiers 10, 60 to be monitored, for example using a signal monitoring arrangement, to determine whether or not an adopted coding regime provides a desired degree of data compression.
  • the signal monitoring arrangement can be employed to control operation of the entropy modifiers 10, 60 in an adaptive manner to ensure that a desired modification in entropy therethrough is achieved in operation.
  • the entropy modifier 10 be used to apply one or more test encoding regimes when commencing encoding of a data stream in order to search for an optimal value of maximum run to employ for obtaining optimal data compression; the maximum run can have a major impact on entropy E.
  • the entropy E associated of the first bit value in a given data stream has a major impact on the entropy E when the length of given data stream is relatively short; for example, the first bit value is beneficially transmitted separately from other code words used to represent the given data stream.
  • the entropy modifiers 10, 60 be employed in combination with entropy coding methods such as Variable-Length-Coding (VLC), Huffman coding, Run-Length-Encoding (RLE), Arithmetic coding and Range coding.
  • VLC Variable-Length-Coding
  • RLE Run-Length-Encoding
  • Arithmetic coding Arithmetic coding
  • Range coding Alternatively, other types of entropy modifiers such as Delta coding are beneficially employed in combination therewith.
  • Such entropy coding methods are beneficially employed after the entropy modifier 10, and before the entropy modifier 60; alternatively, or additionally, such entropy coding methods are beneficially employed before the entropy modifier 10, and after the entropy modifier 60; for example, in an event that original data to be encoded is alphanumeric, numbers, bytes or words, the original data is coded efficiently with additional coding as provided in Table 2: Table 2: additional coding employable with an entropy modifier pursuant to the present invention
  • VLC/Huffman/ When the given data stream includes many mutually similar Arithmetic/Range data values
  • the entropy modifiers 10, 60 are employed in a recursive manner.
  • entropy modifiers pursuant to the present invention are beneficially employed in conjunction with other types of entropy modifiers, wherein the other types of entropy modifiers are optionally known types.
  • Known types include Delta coding for example.
  • Delta coding is employed for processing numerical values that are provided in a format of bytes or words.
  • a maximum run length of 7 bits is employed with an associated escape code being "0".
  • a first bit in an encoded sequence is the same as a corresponding original data bit present in an original data stream to be encoded.
  • the 1-bit ODelta operation can be run recursively.
  • Equation 7 (Eq. 7) corresponds to amount of bits in the original bit stream.
  • An equivalent entropy modified (EM) code is as follows, in a generally similar manner to that employed to generate Table 1 :
  • Equation 8 corresponds to the amount of bits after the entropy modification. Moreover, it will be appreciated that this amount of bits is less than that associated with Equation 7 (Eq.7).
  • Equation 8 Equation 8
  • Equation 9 Equation 9
  • This example illustrates that it is possible to compress the original stream of data bits efficiently when the original stream of data is firstly compressed using a 1 -bit ODelta operator and then with an entropy modifier pursuant to the present invention.
  • Example 1 The aforesaid original bit stream in Example 1 is divided into two parts, and benefits of entropy modifying pursuant to the present invention are optimized by selecting a best combination of these two resulting streams of data.
  • the value of first bit of the entropy modifier is transmitted separately and is not inserted into a resulting entropy- reduced series of codes.
  • a first entropy modification result obtainable is similar to Example 1 , wherein the first bit is also set as a "1 " code word.
  • a similar maximum run of seven bits is employed, and "0" is employed for the escape code, as provided in Table 3:
  • entropy-modified original data is optionally beneficially compressed more efficiently than the ODelta coded data, although the entropy of the latter one is smaller, namely 5.80 bits ⁇ 6.00 bits; 1 -bit data is not so practical for implementations of entropy encoders, although Arithmetic coding, amongst others, is beneficially employed also for compressing 1-bit data.
  • the original stream of bits is split into more than two parts, prior to being subject to entropy modification processes for achieving data compression.
  • splitting of the original stream of data bits to one or more streams, namely parts can be executed automatically by a method including:
  • the present invention is also concerned with a method of decoding the encoded output data, wherein an inverse of steps (a) to (d) are utilized.
  • the method includes splitting or combining data blocks present in the original stream of bits so that encoding is implemented more efficiently, for example for achieving an enhanced compression ratio and/or achieving substantially lossless compression.
  • step (b) is implemented in a coarse manner, namely just dividing up the original stream of data bits when multiple long run sections are encountered in the original stream of data bits, namely after or between regions of the original stream of data bits where there is a big enough region of the stream of data bits where the data bits vary sequentially in a rapid manner.
  • an original stream of data bits is processed to provide intermediate encoded data, for example via application of VLC, Arithmetic or Range coding and/or RLE, which is then subjected to entropy modification pursuant to the present invention to generate output encoded data which is compressed and reduced in entropy; such as approach is illustrated in FIG. 1.
  • VLC Very Low-CPU
  • Arithmetic or Range coding and/or RLE Arithmetic or Range coding and/or RLE
  • entropy modification pursuant to the present invention to generate output encoded data which is compressed and reduced in entropy; such as approach is illustrated in FIG. 1.
  • entropy optimizations are implemented such that an original bit, alphabetic, number, byte, word in the original steam of data bits is first coded using some other method, and after that, entropy modification pursuant to the present invention applied to generate encoded output data.
  • entropy modification pursuant to the present invention applied to generate encoded output data.
  • contemporary known run-length encoding (RLE) methods there is generated a given value, and then thereafter corresponding data indicative of the number of occurrences of this given value, before it is followed by another subsequent value.
  • RLE run-length encoding
  • the present invention derives from an observation that, if only 1 -bit values are employed, there is no need to add "0" and "1" data values into a stream of data to be encoded, because they occur alternately in turn; thus, it is sufficient that only the first value in a given sequence be expressed in a transmission of encoded data.
  • the present invention is akin to RLE coding but employs a 1-bit data stream as aforementioned.
  • the escape code is an addition that enables more efficient usage of practical encoding methods to be employed.
  • embodiments of the present invention include sending one or more coding tables from an encoder to a corresponding decoder to assist with decoding of encoded data sent from the encoder and received at the decoder.
  • Some very advantageous methods of delivering such coding tables have been disclosed for example in a patent application GB1403039.9, filed by the Applicant on 20 th of February, 2014, incorporated as a reference herein.
  • Further methods of combining entropy coding and delivering code tables have been disclosed in patent application GB 403038.1 , filed by the Applicant on 20 th of February, 2014, also incorporated as a reference. Both the aforementioned disclosed methods suit well for using in combination with the embodiments of this invention, and help minimize the additional encoding data needed for entropy coding.
  • Escape codes which are employed for implementing embodiments of the present invention are susceptible to being implemented in several different ways. For example, in a case of a run-length symbol or digit that continues with a "0" value, satisfactory encoding is achievable. However, situations potentially arise where these amount values are small, while conversely, occasionally, very large values may occur; in these situations, the escape code is beneficially set to a next value that is not yet used, or allocated for use as a code word.
  • a maximum run- length employed is seven bits or elements, and the escape code is "0"
  • a code word "8" is used during generation of an encoded data stream; this new escape code only adds one new code word, and after this, the actual number of symbols is expressible using any method, for example in 1 , 2 and/or 3 bytes, or using half-bytes (i.e. "nibbles").
  • the actual number of symbols is transmitted without being compressed.
  • the actual number of symbols is combined with the maximum run-length value and then compressed together with other data values in an entropy compressor, namely entropy modifier.
  • a suitable escape value for use in embodiments of the present invention, it is advantageous to express at once a total number of adjacent elements, and therefore, after invoking this escape value, the same bit is not continued subsequently in contradistinction to use of an escape value.
  • Such a new form of termination provides an escape, namely code word, that is useable in addition to a continuous escape method as aforementioned; alternatively, such a new escape code is useable as an only alternative, and, in such case, its code word is beneficially settable to a value "0".
  • a given data value of this terminating code is often small, but occasionally large, it is beneficial to express the number of consecutive similar symbols present in data with an alternating number of bytes or nibbles.
  • One bit of such a byte for example a least significant bit (LSB) or most significant bit (MSB) is beneficially reserved to indicate the termination of the number, for example bit string, and thus beneficially its code word is set to a value "0" or "1" in a case where the value ends, in other cases, the value continues.
  • LSB least significant bit
  • MSB most significant bit
  • an example of functionality of an escape code will next be described in a situation wherein both types of escape are utilized.
  • a maximum run of 14 elements is employed, with a code word for a continuous escape being denoted by 15, wherein a code word for a terminating escape is 0.
  • values for the amounts of consecutive similar symbols or bits are: 9, 1024, 16, 9, 12, 2000, 7, 20, 21 , 6, 8, 120, 12, ...
  • the example utilizes half-bytes (i.e. nibbles) of which a most significant bit (MSB) of value "1" is employed to indicate the termination of the number, namely bit string.
  • MSB most significant bit
  • the terminating escape it is feasible to subtract from the number, namely the bit stream, the following:
  • the entropy modifiers 10, 60 need to be able to interpret code words having values in a range 0 to 15. It is feasible to express this example by using merely a single escape code, wherein a code word "0" corresponds to an escape code that also indicates a terminating escape; in such an alternative example of a single type of escape code, the continuous escape is not used, and the other parameters are as above, namely:
  • the best coding solution can be selected based on the Entropy that is calculated for all the three solutions separately.
  • Embodiments of the present invention for providing entropy modification (EM) and inverse entropy modification (IEM) will next be described.
  • EM entropy modification
  • IEM inverse entropy modification
  • other embodiments are also feasible within the scope of the present invention, for example corresponding entropy modifiers based upon digital hardware, for example variable- state-machines, ASIC's and similar.
  • "GetBit”, "SetBit” and “ClearBit” instructions in the following examples function always to update "HeaderBits" values.
  • a "Headerlndex" value is also updated when a next bit will be in a next byte.
  • the first bit is stored as one code.
  • the first bit value is separated from the codes as aforementioned, for example with reference to Table 3.
  • a corresponding decoder is beneficially optimized by writing multiple bits together to a destination byte contributing to decoded output data.
  • “MaxRun” provided in following example embodiments is similar to (maximum run length + 1); for example, when a maximum run length of 7 bits is employed, a value of 8 is given as function parameter "AMaxRun" in the following embodiments.
  • iHeaderlndex iHeaderBits, iRunLength, ilndex : Cardinal;
  • ADstBitOffset : 0:
  • bLastBit GetBit(APtrSrc, ⁇ iHeaderlndex, ⁇ iHeaderBits);
  • bBit GetBit(APtrSrc, ⁇ iHeaderlndex, ⁇ iHeaderBits);
  • iDstBitOffset 0;
  • a smallest entropy usually corresponds to a best data compression, but when small amounts of data are to be handled, compressing the data is not always so straightforward; for example, 1 -bit data is usually difficult to compress efficiently, and therefore, the entropy modifiers 10, 60 that is operable to process 1-bit information is potentially, commercially, a very valuable invention.
  • processing data in a format which is more easily compressible often results in a reduction in entropy of the formatted data in comparison to corresponding original data prior to formatting processes being applied.
  • the size of the data D2 is not necessarily smaller than the size of the data D1 , but its entropy is smaller, even though the data D1 and D2 include mutually similar information.
  • the size of the data D2 is dependent run-lengths employed. For example, in the data D1 , the size of data elements is 1 bit, whereas the size of the data D2 depends on the size of run length employed.
  • the encoding stage 20 beneficially employs VLC transformations which is able to compress the data D2 into 52 bits to provide the data D3.
  • the entropy modifiers 10, 60 do not always provide data compression and decompression respectively, but are capable of providing data compression and decompression when employed with other encoding stages.
  • Embodiments of the present invention are beneficially included as component parts of communication systems, audio-visual consumer products, scientific image- processing equipment, computing devices, wireless-enabled communication devices such as smart phones, digital cameras, digital surveillance equipment, interactive computer games, to mention a few examples.
  • Increased data compression is capable of reducing data storage requirements, saving energy and enables faster communication to be achieved, all of which would be regarded as beneficial technical effects employable in industry, for example.
  • the embodiments are implementable in software products, hardware, or any combination thereof.
  • the software products are optionally downloadable as software applications, namely "software apps”.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

L'invention concerne un modificateur d'entropie (10, 60) qui peut être employé pour coder, en variante décoder, un flux de bits de données d'entrée ayant une première entropie pour générer des données de sortie à entropie modifiée correspondantes ayant une deuxième entropie, le modificateur d'entropie pouvant être employé pour traiter le flux de bits de données d'entrée pour gérer des groupes de bits mutuellement similaires et la valeur du premier bit, et une ou plusieurs longueurs de passage maximales des groupes de bits mutuellement similaires. Éventuellement, le modificateur d'entropie (10, 60) peut être employé pour commander une ou plusieurs longueurs de passage maximales des groupes de bits mutuellement similaires au moyen d'au moins un code d'échappement.
PCT/EP2014/000529 2013-03-01 2014-03-01 Modificateur d'entropie et procédé WO2014131526A1 (fr)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201480024777.XA CN105164923B (zh) 2013-03-01 2014-03-01 熵修正器及方法
JP2015559443A JP6073506B2 (ja) 2013-03-01 2014-03-01 エントロピー変更器及び方法
EP14713379.7A EP2962396A1 (fr) 2013-03-01 2014-03-01 Modificateur d'entropie et procédé
KR1020157024996A KR102068383B1 (ko) 2013-03-01 2014-03-01 엔트로피 변형기 및 방법
RU2015132038A RU2611249C1 (ru) 2013-03-01 2014-03-01 Модификатор энтропии и способ его использования
US14/254,102 US8933826B2 (en) 2013-03-01 2014-04-16 Encoder apparatus, decoder apparatus and method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1303658.7 2013-03-01
GB1303658.7A GB2511493B (en) 2013-03-01 2013-03-01 Entropy modifier and method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2014/000531 Continuation WO2014131528A1 (fr) 2013-03-01 2014-03-01 Appareil codeur, appareil décodeur et procédé associé

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US13/782,757 Continuation-In-Part US8754791B1 (en) 2013-03-01 2013-03-01 Entropy modifier and method
US14/254,102 Continuation-In-Part US8933826B2 (en) 2013-03-01 2014-04-16 Encoder apparatus, decoder apparatus and method

Publications (1)

Publication Number Publication Date
WO2014131526A1 true WO2014131526A1 (fr) 2014-09-04

Family

ID=48142235

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/EP2014/000531 WO2014131528A1 (fr) 2013-03-01 2014-03-01 Appareil codeur, appareil décodeur et procédé associé
PCT/EP2014/000529 WO2014131526A1 (fr) 2013-03-01 2014-03-01 Modificateur d'entropie et procédé

Family Applications Before (1)

Application Number Title Priority Date Filing Date
PCT/EP2014/000531 WO2014131528A1 (fr) 2013-03-01 2014-03-01 Appareil codeur, appareil décodeur et procédé associé

Country Status (7)

Country Link
EP (2) EP2962397A1 (fr)
JP (1) JP6073506B2 (fr)
KR (1) KR102068383B1 (fr)
CN (2) CN105409129B (fr)
GB (1) GB2511493B (fr)
RU (1) RU2611249C1 (fr)
WO (2) WO2014131528A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9859920B2 (en) 2014-06-27 2018-01-02 Gurulogic Microsystems Oy Encoder and decoder

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2523347B (en) 2014-02-20 2016-01-13 Gurulogic Microsystems Oy Encoder, decoder and method
US20190195742A1 (en) * 2017-12-22 2019-06-27 Schneider Electric Software, Llc Automated detection of anomalous industrial process operation
CN108737976B (zh) * 2018-05-22 2021-05-04 南京大学 一种基于北斗短报文的压缩传输方法
FR3105660B1 (fr) * 2019-12-18 2022-10-14 Commissariat Energie Atomique Procédé et dispositif de codage additif de signaux pour implémenter des opérations MAC numériques à précision dynamique

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2301252A (en) * 1995-05-23 1996-11-27 Ibm Run length data compression
EP2131501A1 (fr) * 2008-06-06 2009-12-09 Harman Becker Automotive Systems GmbH Procédé de compression et décompression de données et appareil de traitement de données

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5550777A (en) * 1979-05-21 1980-04-12 Toshiba Corp Information compression device
JPS5621483A (en) * 1979-07-31 1981-02-27 Fuji Photo Film Co Ltd Encoding system of picture signal
JP3010631B2 (ja) * 1989-02-14 2000-02-21 ソニー株式会社 ランレングス符号化方式
JPH036924A (ja) * 1989-06-05 1991-01-14 Hitachi Ltd 端末装置
US5627534A (en) * 1995-03-23 1997-05-06 International Business Machines Corporation Dual stage compression of bit mapped image data using refined run length and LZ compression
JPH08294142A (ja) * 1995-04-24 1996-11-05 Omron Corp 画像情報圧縮方法、及びこの方法を使用した画像表示装置
US5710561A (en) * 1996-01-02 1998-01-20 Peerless Systems Corporation Method and apparatus for double run-length encoding of binary data
US6269338B1 (en) * 1996-10-10 2001-07-31 U.S. Philips Corporation Data compression and expansion of an audio signal
JP4260908B2 (ja) * 1997-06-25 2009-04-30 株式会社日本デジタル研究所 ランレングス符号化方法および画像処理装置
JP2001136524A (ja) * 1999-11-02 2001-05-18 Ricoh Co Ltd 圧縮伸長装置
US6359548B1 (en) * 2000-10-16 2002-03-19 Unisys Corporation Data compression and decompression method and apparatus with embedded filtering of infrequently encountered strings
US6384751B1 (en) * 2000-12-22 2002-05-07 Unisys Corporation Data compression/decompression circuit and method
US6719689B2 (en) * 2001-04-30 2004-04-13 Medtronic, Inc. Method and system for compressing and storing data in a medical device having limited storage
CN1636405A (zh) * 2001-05-29 2005-07-06 皇家菲利浦电子有限公司 用于视频代码转换的方法和设备
KR20060109448A (ko) * 2003-10-31 2006-10-20 코닌클리케 필립스 일렉트로닉스 엔.브이. 비디오 신호 인코딩 방법
US7205912B1 (en) * 2005-10-31 2007-04-17 Seagate Technology Llc Structured set partitioning and multilevel coding for partial response channels
RU2426227C2 (ru) * 2006-11-14 2011-08-10 Квэлкомм Инкорпорейтед Кодирование кодов переменной длины с эффективным использованием памяти
KR101454167B1 (ko) * 2007-09-07 2014-10-27 삼성전자주식회사 데이터 압축 및 복원 장치 및 방법
US7804428B2 (en) * 2008-11-10 2010-09-28 Apple Inc. System and method for compressing a stream of integer-valued data
JP2010245938A (ja) * 2009-04-08 2010-10-28 Sony Corp 信号処理装置、信号処理方法、プログラム
EP2464017A4 (fr) * 2009-08-06 2012-07-11 Panasonic Corp Procédé de codage, procédé de décodage, dispositif de codage et dispositif de décodage
US8410959B2 (en) * 2010-04-09 2013-04-02 Qualcomm, Incorporated Variable length codes for coding of video data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2301252A (en) * 1995-05-23 1996-11-27 Ibm Run length data compression
EP2131501A1 (fr) * 2008-06-06 2009-12-09 Harman Becker Automotive Systems GmbH Procédé de compression et décompression de données et appareil de traitement de données

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HELD G ED - HELD G: "Data Compression;Techniques and Applications; Hardware and Software Considerations", 1 January 1983, DATA COMPRESSION. TECHNIQUES AND APPLICATIONS HARDWARE AND SOFTWARE CONSIDERATIONS, CHICHESTER, J.WILEY & SONS, GB, PAGE(S) 18 - 20,26, XP002252154 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9859920B2 (en) 2014-06-27 2018-01-02 Gurulogic Microsystems Oy Encoder and decoder

Also Published As

Publication number Publication date
CN105409129B (zh) 2018-11-16
KR102068383B1 (ko) 2020-02-11
JP6073506B2 (ja) 2017-02-01
RU2611249C1 (ru) 2017-02-21
JP2016514404A (ja) 2016-05-19
EP2962396A1 (fr) 2016-01-06
WO2014131528A1 (fr) 2014-09-04
KR20150126858A (ko) 2015-11-13
CN105409129A (zh) 2016-03-16
EP2962397A1 (fr) 2016-01-06
CN105164923A (zh) 2015-12-16
GB201303658D0 (en) 2013-04-17
CN105164923B (zh) 2018-10-23
GB2511493B (en) 2017-04-05
GB2511493A (en) 2014-09-10

Similar Documents

Publication Publication Date Title
KR101737294B1 (ko) 심볼 압축을 수반하는 데이터의 소스 코딩 및 디코딩을 위한 방법들 및 디바이스들
RU2417518C2 (ru) Эффективное кодирование и декодирование блоков преобразования
US8810439B1 (en) Encoder, decoder and method
US8823560B1 (en) Data encoder, data decoder and method
CN112188198B (zh) 图像数据压缩解压方法及系统
EP2962396A1 (fr) Modificateur d'entropie et procédé
GB2523347A (en) Encoder, decoder and method
US8933826B2 (en) Encoder apparatus, decoder apparatus and method
RU2709656C2 (ru) Кодер, декодер и способ, использующие модовые символы
US8754791B1 (en) Entropy modifier and method
Martinez et al. Marlin: A high throughput variable-to-fixed codec using plurally parsable dictionaries
KR101549740B1 (ko) 이진 데이터의 압축 및 압축해제 방법과 장치
Krainyk Combined Run-Length and Huffman Encoding for Image Compression
KR100189875B1 (ko) 허브만 부호 복호화장치
JP2003087573A (ja) 画像圧縮装置及び画像伸張装置
Mazumdar et al. Comparison Between Different Compression Techniques using Various Encoding Methods
JPH10177565A (ja) 画像復号化装置

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201480024777.X

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14713379

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
ENP Entry into the national phase

Ref document number: 2015559443

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20157024996

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2015132038

Country of ref document: RU

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2014713379

Country of ref document: EP