Compression is data processing aimed at reducing the amount of information (e.g., for archiving and transfer). There is lossyand lossless compression. Compression algorithms can be either general-purpose or designed for specific types of data (e.g., for sound– including FLAC – Free Lossless Audio Codec, psychoacoustic model + Huffman coding in MP3; image – e.g., DCT, fractal, waveletcompression, RLE, Deflate, LZW; video – e.g., DivX, Cinepak, Indeo; textures in games and programs (e.g., S3TC, NVIDIA NeuralTexture Compression), executable files (e.g., UCL). The most commonly used compression algorithm is Deflate (LZ77 + Huffmancoding) – it is lossless and general-purpose. Depending on the compression method, there are dictionary algorithms (e.g., LZ77, LZW,LZSS, LZMA, LZ4, BPE, Zstd, Brotli), entropic algorithms (e.g., arithmetic and Huffman coding), predictive algorithms (e.g., PPM),and other types (including RLE, delta encoding). Some of the compression algorithms are patented. Deflate as a standard should bereplaced by more efficient algorithms (e.g., Brotli, Zstd, LZMA). The importance of compression is growing due to the general trendtowards growth of data.
Dominik Maciej Matusiak (Mon,) studied this question.