LZ77

LZ77 is a general-purpose data compression algorithm. It works by putting codes in the compressed datastream which indicate that some recently-decompressed data is to be repeated.

Technical notes
The original LZ77 compression scheme forces the repeat-matched-string and emit-literal-character codes to be interleaved, so that there are the same number of each. Most actual "LZ77" implementations have no such peculiarity. Most are more similar to LZSS than to the original LZ77, though many (especially when Huffman coding is involved) have been optimized to the point where they don't look very much like LZSS, either.

In practice, the terms LZ77 and LZSS should not be assumed to mean anything more specific than "some form of generalized LZ77/LZSS compression".

Resources

 * Wikipedia: LZ77 and LZ78