US20070211949A1
2007-09-13
11/683,621
2007-03-08
According to the invention, a method is provided for the compression of data which contain a plurality of information units, comprising: determining of one or more expected values for each of the information units; for each information unit, determining a coincidence of the value of the information unit with the one or more expected values; and producing output data which contain information concerning the coinciding of the values of the information units with the one or more expected values, and information concerning the values of the information units, if non-coincidences with the one or more expected values are found, in which the expected values are formed on the basis of values of information units which have already been subjected to the preceding steps for compression and form a two-dimensional context with respect to the present information unit.
Get notified when new applications in this technology area are published.
G06T9/005 » CPC main
Image coding Statistical coding, e.g. Huffman, run length coding
H03M7/46 » CPC further
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; Compression ; Expansion; Suppression of unnecessary data, e.g. redundancy reduction Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
H04N19/105 » CPC further
Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding; Selection of coding mode or of prediction mode Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
H04N19/182 » CPC further
Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
H04N19/593 » CPC further
Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
This application claims the benefit of priority of German Patent Application 10 2006 011 022.6 filed on Mar. 9, 2006.
DESCRIPTIONThe present invention relates to a method for the compression of data, and in particular a two-dimensional adaptive image compression method.
BACKGROUND OF THE INVENTIONKnown lossless image compression methods (e.g. GIF; PNG) are based on two compression principles:
It is also known to combine these two compression principles with each other.
In known string replacement methods the (originally two-dimensional) image is coded as a one-dimensional pixel string, which in turn is coded pixel for pixel. The local context which can be used for the compression of a pixel hereby consists merely of the pixels lying immediately to the left of the pixel which is just processed.
In the known run length coding, only horizontal “runs” of isochromatic pixels are recognized. Thereby, an image which consists of horizontal stripes is compressed
substantially better than an image which consists of vertical stripes.
The same restrictions apply for all “one-dimensional” string replacement methods.
There is a general concern in the lossless compression of data, particularly image data, to achieve as high a compression rate as possible, i.e. an image which is to be compressed is to be described by as few data as possible.
With this background, it is an object of the invention to increase the compression rate compared with known methods, without requiring a substantially greater calculation effort in the compression/decompression.
SUMMARY OF THE INVENTIONThis problem is solved by the invention indicated in the main claims. Advantageous embodiments are indicated in the subclaims.
In particular the invention is based on the knowledge that by means of the use of expected values, which are formed with the aid of a two-dimensional “compression context”, the compression rate can be increased, compared with known “one-dimensional” methods.
DESCRIPTION OF EXAMPLE EMBODIMENTSThe present invention will now be explained with the aid of example embodiments with reference to the drawings, in which:
FIG. 1 shows diagrammatically a two-dimensional pixel grid, to which the method according to the invention is able to be applied;
FIG. 2 shows a flow diagram which illustrates the individual steps of a compression method according to an embodiment of the invention; and
FIG. 3 shows a flow diagram which illustrates the individual steps of a decompression method according to an embodiment of the invention
FIG. 1 shows a two-dimensional pixel grid, to which the compression method according to the present invention is able to be applied. According to the compression method, a “context value” is formed for each pixel, which is based on the values of a predetermined parameter (e.g. colour, brightness etc.) of specific preceding pixels in two dimensions. In FIG. 1, one of the pixels is shown in black. To determine the context value of this pixel! the values of pixels are used which are no further than two pixels distant towards the x- or y-direction, i.e. the values of all pixels within the indicated marking.
The range of the context under consideration, i.e. the number of pixels to be taken into consideration towards the x- and y-direction can be determined differently depending on the application. Also, the “context form” resulting therefrom can vary—this may, for example, be circular.
The context values are used to determine expected values, as described below with reference to FIG. 2.
With reference to FIG. 2, the steps of a compression method according to a development of the invention will now be described:
The above-mentioned steps (apart from the initializing) are repeated for all the pixels of the image which is to be compressed.
When all the pixels have been processed and if the colour value of the last pixel corresponded to the first expected value E(x,y) , then finally the run length counter lz is increased by 1 and is transferred into the output file.
Instead of step 4.2.2.2.5, a lookup in a cashing table of the last written colours can take place, and (if successful) only the corresponding cash index can be written. The colour cash table is then updated accordingly.
The output file can then be further “subsequently compressed” with an entropy coder (e.g. Huffman method).
In carrying out the compression method, the following is brought about: For each pixel whose colour value P(x,y) corresponds to the current (first) expected value E(x,y), the run length lz is increased by one. If the colour value P(x,y) no longer corresponds to the first expected value E(x,y), but instead corresponds to the previous (second) expected value E′(x,y), then the run length lz is increased by one, is written into the output file and is then reset. In addition, the hash tables H and H′ are updated, i.e. the first (no longer applicable) expected value E(x,y) contained in the first hash table H and the second (now applicable) expected value E′(x,y) contained in the second hash table H′, are reciprocally exchanged.
As the (current and previous) expected values are known on the receiver side, colour values coinciding therewith do not have to be written into the source file. A transition from a colour value which corresponds to the current (first) expected value to a colour value which corresponds to the previous (second) expected value, is recognized on the receiver side by means of two successive run length values in the source file.
Only a new, “unexpected” colour value has to be written into the output file.
This can be illustrated by means of a simple example. In this example, “A” stands for pixels with a colour value which corresponds to the current expected value. “B” stands for pixels with a colour value which corresponds to the previous expected value. “C” stands for a pixel with a new. unexpected colour value. An example pixel sequence now reads
AAAAABAAAACFor each pixel A, the run length is increased by one. On reaching pixel B, the run length accordingly amounts to 5. The run length is then further increased by one to 6, is written into the output file and is reset to zero. The run length is then again increased by one for each pixel A. On reaching the pixel C, the run length amounts to 4 and is written into the source file. As the pixel C has an unexpected colour value, the latter is likewise written into the output file (provided with the mark M). The content of the output file is therefore
64MCThe hash tables described above are identical at the start of compressing on the transmitter and on the receiver side. Proceeding therefrom, the hash tables are updated both on the transmitter side and on the receiver side depending on the sequence of the transferred or received pixel information in accordance with the algorithm described above. By means of the hash tables, the pixel sequence can then be reconstructed on the receiver side by means of the content of the source file.
From the content of the source file it can therefore be determined that following 5 pixels with a colour value (A) corresponding respectively to the first expected value there is 1 pixel with a colour value (B) corresponding to the second expected value, followed by 4 pixels which respectively have a colour value corresponding to the (new) first expected value, followed by one pixel with a new colour value (C) . It is to be noted that successive pixels whose colour value corresponds respectively to an expected value, do not inevitably have the same colour value—rather each Pixel has an expected colour value.
The steps of a method for the decompression of a output file (hereinbelow “input file”) produced according to the compression method described above on the receiver side are described below with reference to FIG. 3:
It is to be noted that the method is not restricted to a particular representation of the colour value of a pixel. For example, the colour values can be represented as R,G,B triples or (in monochrome images) a an individual brightness value.
1. A method for the compression of data which contain a plurality of information units, in which the method for a present one of the plurality of information units comprises the following steps:
(A) comparing the value of a predetermined parameter of the present information unit with a first expected value; and if they coincide:
(a) increasing the value of a counter; or if they do not coincide:
(b) comparing the value of the predetermined parameter of the present information unit with a second expected value; and if they coincide:
(aa) increasing the counter value and
(ab) transferring the counter value into an output file or if they do not coincide:
(ba) transferring the counter value into the output file, if the counter value is greater than zero; and
(bb) transferring the value of the predetermined parameter of the present information unit into the output file.
2. The method according to claim 1, in which the first and the second expected values are formed on the basis of values of information units which have already been subjected to the preceding steps for compression.
3. The method according to claim 1, in which the first and the second expected values are formed on the basis of values of information units which form a two-dimensional context with regard to the present information unit.
4. The method according to claim 1, comprising:
forming a context value with respect to the present information unit by determining the value of the predetermined parameter of information units which have already been subjected to the preceding steps for compression;
running first and second hash tables, in which an entry in the first and in the second hash table is associated with every possible context value, and in which the first and second expected values are formed by entries in the first or second hash table, which are associated with the context value.
5. The method according to claim 4, in which when the value of the predetermined parameter of the present information unit coincides with a second expected value, an adaptation of the first and second expected values is carried out by reciprocal exchange of the corresponding entries in the first or second hash table.
6. The method according to claim 1, in which when the value of the predetermined parameter of the present information unit coincides with the second expected value, a resetting of the counter value is carried out.
7. The method according to claim 4, in which when the value of the predetermined parameter of the present information unit does not coincide with the second expected value, an adaptation of the first and second expected values is carried out by the following steps:
replacing the entry corresponding to the second expected value in the second hash table by the entry corresponding to the first expected value in the first hash table; and
replacing the entry corresponding to the first expected value in the first hash table by the value of the specified parameter of the present information unit.
8. The method according to claim 1, comprising:
repeating the steps for all the information units, in which, if for the last of the information units step (a) was carried out, a transfer of the counter value into the output file takes place.
9. The method according to claim 8,
in which at the start of carrying out the method, the first and second hash tables are initialised for all information units, and
in which the counter value is set to zero.
10. A method for the decompression of data in an input file, which have been compressed by the method according to any of the preceding claims, comprising:
selecting a value from the input file; and
if the selected value is a value of the predetermined parameter, associating the value to an actual information unit intended for output.
11. The method according to claim 10, comprising:
forming a context value with respect to the actual information unit on the basis of values which have been associated with already preceding information units intended for output; and
running third and fourth hash tables, in which an entry in the third and in the fourth hash table is associated with every possible context value.
12 . The method according to claim 11, comprising, if the selected value is a value of the predetermined parameter of an information unit:
replacing the entry associated with the context value with respect to the actual information unit in the fourth hash table by the correspondingly associated entry in the third hash table; and
replacing the entry associated with the context value with respect to the actual information unit in the third hash table by the value associated with the actual information unit.
13. The method according to claim 11, comprising, if the selected value is not a value of the predetermined parameter, and if an auxiliary provided flag is set:
reciprocal exchanging of the values associated with the context value with respect to the actual information unit in the third and fourth hash table; and
associating the value associated with the context value with respect to the actual information unit in the third hash table to the actual information unit.
14. The method according to claim 13, comprising:
associating the value associated with the context value with respect to the actual information unit in the third hash table to the actual information unit.
15. The method according to claim 11, comprising, if the selected value is not a value of the predetermined parameters and if an auxiliary provided flag is not set:
associating the value associated with the context value with respect to the actual information unit in the third hash table to the actual information unit.
16. The method according to claim 12, comprising a resetting of the auxiliary flag.
17. The method according to claim 13, comprising a setting of the auxiliary flag.
18. The method according to claim 11, comprising a repeating of the steps for all the values of the input file.
19. The method according to claim 18,
in which at the start of carrying out the method the third and fourth hash tables are initialised for all information units, and
in which the auxiliary flag is reset.
20. The method according to claim 10, in which the information units are formed by pixels of an image.
21. The method according to claim 20, in which the predetermined parameter is formed by the pixel colour.
22. The method according to claim 3, in which the two-dimensional context is formed by pixels of an image which are adjacent or close in the x- and y-direction.
23. A method for the compression of data, which contain a plurality of information units, comprising:
determining of one or more expected values for each of the information units;
for each information unit, determining a coincidence of the value of the information unit with the one or more expected values; and
generating output data which contain information concerning coincidences of the values of the information units with the one or more expected values, and also information concerning the values of the information units, if non-coincidences with the one or more expected values are found, in which the expected values are formed on the basis of values of information units which have already been subjected to the preceding steps for compression and form a two-dimensional context with respect to the present information unit.
24. A method for the decompression of data, comprising:
Receiving input data which correspond to the output data of the method according to claim 23;
Determining the values of at least a part of the plurality of information units with the aid of information concerning coincidences of the values with one or more expected values, in which the expected values are formed on the basis of values of information units which have already been subjected to the preceding steps for decompression and form a two-dimensional context with respect to the present information unit.
25. The method according to claim 23, in which the information units are formed by pixels of a two-dimensional image, and the two-dimensional context is formed by pixels in both image dimensions (x,y).
26. A data processing device which is adapted to carry out the method according claim 1.
27. A program comprising machine-readable instructions to carry out the method according to claims 1 on a data processing device.
28. A memory medium with a machine-readable program according to claim 27 stored thereon.