Skip to content

Latest commit

 

History

History
216 lines (180 loc) · 6.53 KB

compression.md

File metadata and controls

216 lines (180 loc) · 6.53 KB

Compression

-- algorithms

Dynamic Markov compression

Prediction by partial matching

PPMd

  • also called: 'Partial Matching by Dmitry'
  • variant of: 'Prediction by partial matching'
  • implemented in (applications): '7-Zip', 'PKZIP'
  • applications: 'Lossless text compression'

Asymmetric numeral systems

tANS

Tunstall coding

Golomb coding

Rice coding

LZ77

  • also called: 'LZ1'
  • applications: 'Lossless compression'
  • form of: 'Dictionary coder'

LZ78

  • also called: 'LZ2'
  • applications: 'Lossless compression'
  • form of: 'Dictionary coder'

DEFLATE

  • https://en.wikipedia.org/wiki/DEFLATE
  • based on: 'LZ77', 'Huffman coding'
  • implemented in (libraries): 'zlib'
  • implemented in (applications): 'PKZIP', 'gzip'
  • applications: 'Lossless compression'
  • file formats: 'Zip', 'gzip', 'PNG'
  • RFC: 1951

Lempel–Ziv–Welch

Golomb-Rice coding

Block Gilbert Moore coding

  • also called: 'BGMC'

Elias delta coding

Microsoft Point-to-Point Compression

-- lossless

Zstandard

LZFSE

  • also called: 'Lempel–Ziv Finite State Entropy'
  • https://en.wikipedia.org/wiki/LZFSE
  • uses: 'LZ77', 'tANS'
  • implemented in: 'lzfse/lzfse'
  • reference implementation license: 'BSD license'
  • applications: 'Lossless compression'

bzip2

  • https://en.wikipedia.org/wiki/Bzip2
  • uses: 'Burrows–Wheeler transform', 'Move-to-front transform', 'Huffman coding', 'Run-length encoding', 'Elias delta coding'
  • file formats: 'bzip2'
  • applications: 'Lossless compression'

Brotli

Huffyuv

  • also called: 'HuffYUV'
  • https://en.wikipedia.org/wiki/Huffyuv
  • similar: 'Lossless jpeg'
  • input: 'video'
  • implemented in: 'Huffyuv', 'FFmpeg'
  • supported colorspaces: 'RGB24', 'RGB32', 'RGBA', 'YUY2', 'YV12'
  • reference implementation license: 'GNU General Public License'
  • applications: 'Lossless video compression'

Lagarith

MSU Lossless Video Codec

YULS

  • also called: 'YUVsoft's Lossless Video Codec'
  • applications: 'Lossless video compression'

Lossless H.264

UCL

-- lossy

SILK

CELT

  • https://en.wikipedia.org/wiki/CELT
  • applications: 'Lossy audio compression'
  • goals: 'low-latency'
  • uses: 'Modified discrete cosine transform', 'Pyramid Vector Quantization'
  • implemented in: 'libcelt'
  • reference implementation license: '2-clause BSD'

Opus

Audio Lossless Coding

FLAC

  • https://en.wikipedia.org/wiki/FLAC
  • uses: 'Linear prediction', 'Golomb-Rice coding', 'Run-length encoding'
  • implemented in (libraries): 'libFLAC'
  • reference implementation license: 'BSD License'
  • goals: 'DRM free'
  • applications: 'Lossless audio compression'

JPEG

  • https://en.wikipedia.org/wiki/JPEG
  • uses: 'Discrete cosine transform', 'Run-length encoding', 'Huffman coding'
  • implemented in (libraries): 'libjpeg', 'Guetzli'
  • file formats: 'JIF', 'JFIF', 'Exif'
  • properties: 'lossless operations on blocks'
  • applications: 'Lossy image compression'

H.264