Skip to content
Back to categories

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.

CompressionO(n)

Run-Length Encoding

Compresses repeated consecutive values by storing each value with its run length.

BeginnerFoundationFormula4 links
CompressionEncodingClassic
CompressionO(n log n)

Huffman Coding

Builds a prefix code that gives shorter bit strings to more frequent symbols.

IntermediateFoundationFormula22 links
CompressionPrefix CodeGreedyTree
CompressionO(nw)

LZ77

Compresses repeated substrings by referring back to earlier bytes in a sliding window.

IntermediateCoreFormula8 links
CompressionSliding WindowDictionary CompressionClassic
CompressionO(n)

LZW

Compresses streams by replacing repeated phrases with dictionary codes built during encoding.

IntermediateCoreFormula5 links
CompressionDictionary CompressionEncodingClassic
CompressionO(n)

Arithmetic Coding

Encodes a message as a number inside a probability interval.

AdvancedExtendedFormula7 links
CompressionEntropy CodingEncoding
CompressionO(n)

Brotli

Compresses web content with dictionary references and entropy coding.

AdvancedExtendedNo formula3 links
CompressionDictionary CompressionEntropy Coding
CompressionO(n log n)

Burrows-Wheeler Transform

Reorders text so similar characters become easier to compress.

AdvancedExtendedFormula5 links
CompressionTransform CodingStrings
CompressionO(n)

Deflate

Compresses data by combining LZ77 backreferences with Huffman-coded symbols.

IntermediateCoreFormula5 links
CompressionDictionary CompressionEntropy CodingEncoding
CompressionO(n)

Delta Encoding

Stores changes between neighboring values instead of the values themselves.

BeginnerCoreFormula3 links
CompressionDelta CodingEncoding
CompressionO(n)

Golomb Coding

Encodes small nonnegative integers compactly when small values are common.

IntermediateExtendedFormula3 links
CompressionInteger DataEncoding
CompressionO(nk)

Prediction by Partial Matching

Compresses by predicting the next symbol from recent context.

AdvancedSpecializedFormula3 links
CompressionPredictive CodingEntropy Coding
CompressionO(n)

ANS Coding

Encodes symbols near entropy limits using a single integer state machine.

AdvancedSpecializedFormula3 links
CompressionEntropy CodingEncodingBit Level
CompressionO(n)

Range Coding

Compresses symbols by narrowing a numeric range according to their probabilities.

AdvancedSpecializedFormula4 links
CompressionEntropy CodingEncoding
CompressionO(n)

Bit-Packing

Stores small integer values using only the number of bits they need.

IntermediateExtendedFormula2 links
CompressionBit LevelInteger DataEncoding
CompressionO(n)

Variable-Length Encoding

Represents common values with shorter codes and uncommon values with longer codes.

BeginnerCoreFormula6 links
CompressionEncodingPrefix CodeBit Level
CompressionO(log n)

Elias Gamma Coding

Encodes positive integers with a unary length prefix and binary payload.

IntermediateExtendedFormula5 links
CompressionEncodingInteger DataBit Level
CompressionO(log n)

Elias Delta Coding

Encodes positive integers by gamma-coding the binary length before the payload.

IntermediateExtendedFormula5 links
CompressionEncodingInteger DataBit Level
CompressionO(log n)

Rice Coding

Encodes nonnegative integers using quotient-remainder codes with a power-of-two divisor.

IntermediateExtendedFormula3 links
CompressionEncodingInteger DataEntropy Coding
CompressionO(n * alphabet)

Move-to-Front Transform

Replaces each symbol with its position in a changing list moved to the front after use.

IntermediateCoreNo formula3 links
CompressionTransform CodingDictionary CompressionEncoding
CompressionO(k n)

Byte Pair Encoding

Repeatedly replaces frequent adjacent symbol pairs with new symbols.

IntermediateCoreFormula2 links
CompressionDictionary CompressionTokenizationEncoding
CompressionO(n)

Zstandard Compression

Combines LZ-style matching with modern entropy coding for fast general-purpose compression.

AdvancedExtendedNo formula3 links
CompressionDictionary CompressionEntropy CodingBit Level
CompressionO(n log n)

LZMA

Compresses data with LZ-style matches and range-coded probability models.

AdvancedExtendedFormula2 links
CompressionDictionary CompressionEntropy CodingPredictive Coding
CompressionO(n)

Canonical Huffman Coding

Canonical Huffman Coding assigns compact codes to symbols or integers.

IntermediateCoreFormula4 links
CompressionEncoding
CompressionO(n)

Adaptive Huffman Coding

Adaptive Huffman Coding assigns compact codes to symbols or integers.

IntermediateCoreFormula3 links
CompressionEncoding
CompressionO(n)

Shannon-Fano Coding

Shannon-Fano Coding assigns compact codes to symbols or integers.

IntermediateCoreNo formula2 links
CompressionEncoding
CompressionO(n)

Tunstall Coding

Tunstall Coding reduces data size using coding, prediction, dictionary, or transform structure.

IntermediateExtendedNo formula1 links
CompressionEncoding
CompressionO(n)

Frame of Reference Encoding

Frame of Reference Encoding reduces data size using coding, prediction, dictionary, or transform structure.

IntermediateCoreFormula1 links
CompressionEncoding
CompressionO(n)

Patched Frame of Reference

Patched Frame of Reference reduces data size using coding, prediction, dictionary, or transform structure.

IntermediateExtendedFormula1 links
CompressionEncoding
CompressionO(n)

Run-Length Bit Packing Hybrid

Run-Length Bit Packing Hybrid reduces data size using coding, prediction, dictionary, or transform structure.

IntermediateExtendedNo formula1 links
CompressionEncoding
CompressionO(n)

Predictive Image Coding

Predictive Image Coding reduces data size using coding, prediction, dictionary, or transform structure.

IntermediateExtendedNo formula1 links
CompressionEncoding
CompressionO(n)

JPEG DCT Compression

JPEG DCT Compression transforms image blocks before quantization and entropy coding.

IntermediateCoreFormula1 links
CompressionEncoding
CompressionO(n)

JPEG-LS

JPEG-LS transforms image blocks before quantization and entropy coding.

IntermediateExtendedNo formula1 links
CompressionEncoding
CompressionO(n)

PNG Filtering

PNG Filtering reduces data size using coding, prediction, dictionary, or transform structure.

IntermediateCoreFormula1 links
CompressionEncoding
CompressionO(n)

FLAC Linear Prediction

FLAC Linear Prediction encodes prediction errors instead of raw samples.

IntermediateCoreFormula1 links
CompressionEncoding
CompressionO(n)

Context Mixing Compression

Context Mixing Compression reduces data size using coding, prediction, dictionary, or transform structure.

IntermediateExtendedNo formula2 links
CompressionEncoding
CompressionO(log n)

LZ78

Compresses by emitting dictionary references while growing a phrase dictionary from the input stream.

IntermediateCoreNo formula4 links
Compression
CompressionO(log n)

LZSS

Compresses by choosing between literal bytes and LZ77-style back-references.

IntermediateCoreNo formula2 links
CompressionStrings
CompressionO((V + E) log V)

Context Tree Weighting

Context Tree Weighting addresses predictive compression by mixing predictions from contexts of different depths.

AdvancedSpecializedNo formula6 links
Compression
CompressionO(n)

Context Mixing

Context Mixing addresses predictive compression by combining many model predictions into an arithmetic coder.

AdvancedSpecializedNo formula6 links
Compression
CompressionO(n)

PAQ Compression

PAQ Compression addresses predictive compression by using context mixing and adaptive models for high compression ratios.

AdvancedSpecializedNo formula6 links
Compression
CompressionO(n)

Sequitur Compression

Sequitur Compression addresses grammar-based compression by building a context-free grammar by replacing repeated digrams.

IntermediateExtendedNo formula3 links
Compression
CompressionO(n)

Re-Pair Compression

Re-Pair Compression addresses grammar-based compression by repeatedly replacing the most frequent adjacent symbol pair.

IntermediateExtendedNo formula3 links
Compression
CompressionO(n)

rANS Coding

rANS Coding addresses asymmetric numeral systems by encoding symbols by updating an integer state according to symbol frequencies.

IntermediateExtendedNo formula2 links
Compression