DEFLATE

deflate-decodedeflateddeflatingthe compression algorithm
In computing, Deflate is a lossless data compression algorithm and associated file format that uses a combination of the LZ77 algorithm and Huffman coding.wikipedia
133 Related Articles

Data compression

compressionvideo compressioncompressed
In computing, Deflate is a lossless data compression algorithm and associated file format that uses a combination of the LZ77 algorithm and Huffman coding.
DEFLATE is a variation on LZ optimized for decompression speed and compression ratio, but compression can be slow.

Lossless compression

losslesslossless data compressioncompression
In computing, Deflate is a lossless data compression algorithm and associated file format that uses a combination of the LZ77 algorithm and Huffman coding.
The primary encoding algorithms used to produce bit sequences are Huffman coding (also used by DEFLATE) and arithmetic coding.

Gzip

gunzip.tgzzcat
This has led to its widespread use, for example in gzip compressed files, PNG image files and the ZIP file format for which Katz originally designed it. pyflate, a pure-Python stand-alone Deflate (gzip) and bzip2 decoder by Paul Sladen. Written for research/prototyping and made available under the BSD/GPL/LGPL/DFSG licenses.
gzip is based on the DEFLATE algorithm, which is a combination of LZ77 and Huffman coding.

LZ77 and LZ78

LZ77Lempel-ZivLempel-Ziv compression
In computing, Deflate is a lossless data compression algorithm and associated file format that uses a combination of the LZ77 algorithm and Huffman coding.
Besides their academic influence, these algorithms formed the basis of several ubiquitous compression schemes, including GIF and the DEFLATE algorithm used in PNG and ZIP.

Zlib

zlib wrapper
Several free and/or open source projects support Deflate64, such as 7-Zip, while others, such as zlib, do not, as a result of the proprietary nature of the procedure and the very modest performance increase over Deflate.
zlib was written by Jean-loup Gailly and Mark Adler and is an abstraction of the DEFLATE compression algorithm used in their gzip file compression program.

Run-length encoding

RLErun length encodingrun-length encoded
The bit lengths are themselves run-length encoded to produce as compact a representation as possible.
However, newer compression methods such as DEFLATE often use LZ77-based algorithms, a generalization of run-length encoding that can take advantage of runs of strings of characters (such as ).

Zip (file format)

ZIPzip file.zip
This has led to its widespread use, for example in gzip compressed files, PNG image files and the ZIP file format for which Katz originally designed it.
The ZIP file format permits a number of compression algorithms, though DEFLATE is the most common.

Portable Network Graphics

PNG.pngPNGs
This has led to its widespread use, for example in gzip compressed files, PNG image files and the ZIP file format for which Katz originally designed it. Zopfli: C implementation by Google that achieves highest compression at the expense of CPU usage. ZopfliPNG is a variation of Zopfli for use with PNGs. Apache licensed.
compression: DEFLATE

Zopfli

Zopfli: C implementation by Google that achieves highest compression at the expense of CPU usage. ZopfliPNG is a variation of Zopfli for use with PNGs. Apache licensed.
Zopfli is data compression software that encodes data into DEFLATE, gzip and zlib formats.

Huffman coding

HuffmanHuffman codehuffman coded
In computing, Deflate is a lossless data compression algorithm and associated file format that uses a combination of the LZ77 algorithm and Huffman coding.
DEFLATE (PKZIP's algorithm) and multimedia codecs such as JPEG and MP3 have a front-end model and quantization followed by the use of prefix codes; these are often called "Huffman codes" even though most applications use pre-defined variable-length codes rather than codes designed using Huffman's algorithm.

AdvanceCOMP

Programs written using the Borland dialects of Pascal can use paszlib; a C++ library is included as part of 7-Zip/AdvanceCOMP.
AdvanceCOMP works with files using the LZ/Huffman-based compression algorithm known as DEFLATE, the most widely used compression encoding systems in use.

PKZIP

PKWAREPKSFX Self-Extract Utility Version 2.04gZIP
It was originally defined by Phil Katz for version 2 of his PKZIP archiving tool.
PKZIP 1.93a (released in October 1991): An alpha version that introduced a new compression method which Katz called "deflating". It was supposed to be quickly followed by a final PKZIP 2 release, but there were numerous delays.

7-Zip

Igor Pavlovp7zip7Zip
Several free and/or open source projects support Deflate64, such as 7-Zip, while others, such as zlib, do not, as a result of the proprietary nature of the procedure and the very modest performance increase over Deflate. Programs written using the Borland dialects of Pascal can use paszlib; a C++ library is included as part of 7-Zip/AdvanceCOMP.
When compressing ZIP or gzip files, 7-Zip uses its own DEFLATE encoder, which may achieve higher compression, but at lower speed, than the more common zlib DEFLATE implementation.

Bzip2

BZIPBZ2bunzip2
pyflate, a pure-Python stand-alone Deflate (gzip) and bzip2 decoder by Paul Sladen. Written for research/prototyping and made available under the BSD/GPL/LGPL/DFSG licenses.
bzip2 compresses most files more effectively than the older LZW (.Z) and Deflate (.zip and .gz) compression algorithms, but is considerably slower.

List of archive formats

archive formatscompressed file formatPIM
List of archive formats

Computing

computer technologycomputercomputational
In computing, Deflate is a lossless data compression algorithm and associated file format that uses a combination of the LZ77 algorithm and Huffman coding.

Algorithm

algorithmscomputer algorithmalgorithm design
In computing, Deflate is a lossless data compression algorithm and associated file format that uses a combination of the LZ77 algorithm and Huffman coding.

File format

formatformatsfile formats
In computing, Deflate is a lossless data compression algorithm and associated file format that uses a combination of the LZ77 algorithm and Huffman coding.

Phil Katz

It was originally defined by Phil Katz for version 2 of his PKZIP archiving tool.

PKWare

PKWARE, Inc.
The original algorithm as designed by Katz was patented as and assigned to PKWARE, Inc. As stated in the RFC document, an algorithm producing Deflate files is widely thought to be implementable in a manner not covered by patents.

Bit

binary digitbitsbinary digits
Each block is preceded by a 3-bit header:

Reference (computer science)

referencereferencesHandle
Within compressed blocks, if a duplicate series of bytes is spotted (a repeated string), then a back-reference is inserted, linking to the previous location of that identical string instead.

Kibibyte

KiBKBkibibytes
Relative back-references can be made across any number of blocks, as long as the distance appears within the last 32 KB of uncompressed data decoded (termed the sliding window).

Truncation

truncatetruncatedtruncating
Note that for the match distance symbols 2–29, the number of extra bits can be calculated as, truncated.

Canonical Huffman code

canonical encodingcanonical Huffman tables
The code is itself a canonical Huffman code sent by giving the bit length of the code for each symbol.