Lz77 compression

The first algorithm to use the Lempel-Ziv substitutional compression schemes, proposed in 1977. LZ77 compression keeps track of the last n bytes of data seen, and when a phrase is encountered that has already been seen, it outputs a pair of values corresponding to the position of the phrase in the previously-seen buffer of data, and the length of the phrase. In effect the compressor moves a fixed-size "window" over the data (generally referred to as a "sliding window"), with the position part of the (position, length) pair referring to the position of the phrase within the window. Decompression is simple and fast: whenever a (POSITION, LENGTH) pair is encountered, go to that POSITION in the window and copy LENGTH bytes to the output. Archivers as (arj, lha, zip, zoo) are variations on LZ77.

Free Online Dictionary of Computing