The Cyclic Redundancy Check (CRC) performs a mathematical calculation on a block of data. It returns a number that represents the content and organization of that data with the idea that the CRC returns a number that uniquely identifies the data, a fingerprint (called the checksum. It's calculated by performing a modulo 2 division of the data by a generator polynomial and recording the remainder after division.
Lempel-Ziv coding are substitutional compression schemes proposed by Jakob Ziv and Abraham Lempel in 1977-78. The two main schemes are LZ77 and LZ78.
Lempel-Ziv Welch compression (LZW) is the algorithm used by the UNIX compress command to reduce the size of files for archival or transmission efficiency. It was designed by Terry Welch in 1984 for hardware implementation in high-performance disk controllers. The algorithm relies on the reoccurrence of byte sequences (or strings) in its input.
LZ77 scans through a fixed-length block of data and eliminates repeating data by substituting a pointer back to the original data.
LZ78 scans through a block of data and creates a dictionary of repeating phrases. Then, instead of repeating a section of data, a pointer that indicates the original data is substituted.