DEFLATE

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
(Partial rewrite)
m
 
(5 intermediate revisions by one user not shown)
Line 3: Line 3:
 
|subcat=Compression
 
|subcat=Compression
 
|pronom={{PRONOM|x-cmp/16}}
 
|pronom={{PRONOM|x-cmp/16}}
 +
|wikidata={{wikidata|Q2712}}
 
|released=~1991
 
|released=~1991
 
}}
 
}}
'''Deflate''' (stylized as '''DEFLATE''', '''Deflate''', or '''deflate''') is a widely used lossless compression algorithm based on [[LZ77]] and [[Huffman coding]].
+
'''Deflate''' (stylized as '''DEFLATE''', '''Deflate''', or '''deflate''') is a widely used lossless compression algorithm based on [[LZ77 with Huffman coding]].
  
It was originally developed for use in PKZIP 2.x. For many software implementations that support creation or extraction of [[ZIP]] archive files, DEFLATE is the only compression algorithm supported.
+
It was originally developed for use in [[PKZIP]] 2.x. For many software implementations that support creation or extraction of [[ZIP]] archive files, Deflate is the only compression algorithm supported.
  
 
There is a popular extension of Deflate known as [[zlib]] format, and the term "Deflate" often turns out to mean zlib. Formats that use Deflate ''without'' zlib include [[ZIP]] and [[gzip]].
 
There is a popular extension of Deflate known as [[zlib]] format, and the term "Deflate" often turns out to mean zlib. Formats that use Deflate ''without'' zlib include [[ZIP]] and [[gzip]].
  
The term '''Inflate''' is sometimes used in conjunction with decompressing this format. This is not to be confused with the [[Inflate|joke Inflate format]].
+
The term '''Inflate''' is sometimes used in conjunction with decompressing this format.
 +
 
 +
== Format details ==
 +
DEFLATE is a segmented format, with each segment using one of three compression schemes:
 +
* 0: Non-compressed.
 +
* 1: LZ77+Huffman, with predefined Huffman codebooks. Likely intended as a low-overhead scheme for small files.
 +
* 2: LZ77+Huffman, static Huffman, with codebooks stored at the beginning of the segment.
 +
 
 +
Only non-compressed segments have a size limit.
  
 
== See also ==
 
== See also ==
Line 18: Line 27:
  
 
== Software ==
 
== Software ==
* Refer to [[zlib#Software]]. Libraries that support zlib often also support the original Deflate format.
+
* [https://zlib.net/ zlib]
 +
* [https://github.com/madler/infgen infgen] - Deflate "disassembler"
 +
 
 +
See also [[zlib#Software]], and [[ZIP#Software]].
  
 
== References ==
 
== References ==

Latest revision as of 13:35, 6 October 2024

File Format
Name DEFLATE
Ontology
PRONOM x-cmp/16
Wikidata ID Q2712
Released ~1991

Deflate (stylized as DEFLATE, Deflate, or deflate) is a widely used lossless compression algorithm based on LZ77 with Huffman coding.

It was originally developed for use in PKZIP 2.x. For many software implementations that support creation or extraction of ZIP archive files, Deflate is the only compression algorithm supported.

There is a popular extension of Deflate known as zlib format, and the term "Deflate" often turns out to mean zlib. Formats that use Deflate without zlib include ZIP and gzip.

The term Inflate is sometimes used in conjunction with decompressing this format.

Contents

[edit] Format details

DEFLATE is a segmented format, with each segment using one of three compression schemes:

  • 0: Non-compressed.
  • 1: LZ77+Huffman, with predefined Huffman codebooks. Likely intended as a low-overhead scheme for small files.
  • 2: LZ77+Huffman, static Huffman, with codebooks stored at the beginning of the segment.

Only non-compressed segments have a size limit.

[edit] See also

[edit] Software

See also zlib#Software, and ZIP#Software.

[edit] References

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox