Compression
Algorithms that represent data using fewer bits or symbols.
Compression algorithms reduce storage or transmission size by removing repetition, using shorter codes, or reusing earlier data.
Run-Length Encoding
Compresses repeated consecutive values by storing each value with its run length.
Huffman Coding
Builds a prefix code that gives shorter bit strings to more frequent symbols.
LZ77
Compresses repeated substrings by referring back to earlier bytes in a sliding window.
LZW
Compresses streams by replacing repeated phrases with dictionary codes built during encoding.
Arithmetic Coding
Encodes a message as a number inside a probability interval.
Brotli
Compresses web content with dictionary references and entropy coding.
Burrows-Wheeler Transform
Reorders text so similar characters become easier to compress.
Deflate
Compresses data by combining LZ77 backreferences with Huffman-coded symbols.
Delta Encoding
Stores changes between neighboring values instead of the values themselves.
Golomb Coding
Encodes small nonnegative integers compactly when small values are common.
Prediction by Partial Matching
Compresses by predicting the next symbol from recent context.
ANS Coding
Encodes symbols near entropy limits using a single integer state machine.
Range Coding
Compresses symbols by narrowing a numeric range according to their probabilities.
Bit-Packing
Stores small integer values using only the number of bits they need.
Variable-Length Encoding
Represents common values with shorter codes and uncommon values with longer codes.
Elias Gamma Coding
Encodes positive integers with a unary length prefix and binary payload.
Elias Delta Coding
Encodes positive integers by gamma-coding the binary length before the payload.
Rice Coding
Encodes nonnegative integers using quotient-remainder codes with a power-of-two divisor.
Move-to-Front Transform
Replaces each symbol with its position in a changing list moved to the front after use.
Byte Pair Encoding
Repeatedly replaces frequent adjacent symbol pairs with new symbols.
Zstandard Compression
Combines LZ-style matching with modern entropy coding for fast general-purpose compression.
LZMA
Compresses data with LZ-style matches and range-coded probability models.
Canonical Huffman Coding
Canonical Huffman Coding assigns compact codes to symbols or integers.
Adaptive Huffman Coding
Adaptive Huffman Coding assigns compact codes to symbols or integers.
Shannon-Fano Coding
Shannon-Fano Coding assigns compact codes to symbols or integers.
Tunstall Coding
Tunstall Coding reduces data size using coding, prediction, dictionary, or transform structure.
Frame of Reference Encoding
Frame of Reference Encoding reduces data size using coding, prediction, dictionary, or transform structure.
Patched Frame of Reference
Patched Frame of Reference reduces data size using coding, prediction, dictionary, or transform structure.
Run-Length Bit Packing Hybrid
Run-Length Bit Packing Hybrid reduces data size using coding, prediction, dictionary, or transform structure.
Predictive Image Coding
Predictive Image Coding reduces data size using coding, prediction, dictionary, or transform structure.
JPEG DCT Compression
JPEG DCT Compression transforms image blocks before quantization and entropy coding.
JPEG-LS
JPEG-LS transforms image blocks before quantization and entropy coding.
PNG Filtering
PNG Filtering reduces data size using coding, prediction, dictionary, or transform structure.
FLAC Linear Prediction
FLAC Linear Prediction encodes prediction errors instead of raw samples.
Context Mixing Compression
Context Mixing Compression reduces data size using coding, prediction, dictionary, or transform structure.
LZ78
Compresses by emitting dictionary references while growing a phrase dictionary from the input stream.
LZSS
Compresses by choosing between literal bytes and LZ77-style back-references.
Context Tree Weighting
Context Tree Weighting addresses predictive compression by mixing predictions from contexts of different depths.
Context Mixing
Context Mixing addresses predictive compression by combining many model predictions into an arithmetic coder.
PAQ Compression
PAQ Compression addresses predictive compression by using context mixing and adaptive models for high compression ratios.
Sequitur Compression
Sequitur Compression addresses grammar-based compression by building a context-free grammar by replacing repeated digrams.
Re-Pair Compression
Re-Pair Compression addresses grammar-based compression by repeatedly replacing the most frequent adjacent symbol pair.
rANS Coding
rANS Coding addresses asymmetric numeral systems by encoding symbols by updating an integer state according to symbol frequencies.