2991:
2981:
722:) with a new hardware AHA3610 encoder chip. The new chip was designed to be capable of a sustained 2.5 Gbit/s. Using two of these chips, the AHA363-PCIe board can process Deflate at a rate of up to 5.0 Gbit/s (625 MB/s) using the two channels (two compression and two decompression). The AHA364-PCIe variant is an encode-only version of the card designed for out-going
662:. The AHA361/AHA362 boards are limited to only handling static Huffman blocks and require software to be modified to add support — the cards were not able to support the full Deflate specification, meaning they could only reliably decode their own output (a stream that did not contain any dynamic Huffman type 2 blocks).
358:
to produce as compact a representation as possible. As an alternative to including the tree representation, the "static tree" option provides standard fixed
Huffman trees. The compressed size using the static trees can be computed using the same statistics (the number of times each symbol appears) as
221:
is inserted, linking to the previous location of that identical string instead. An encoded match to an earlier string consists of an 8-bit length (3–258 bytes) and a 15-bit distance (1–32,768 bytes) to the beginning of the duplicate. Relative back-references can be made across any number of blocks,
399:
Deflate64, specified by PKWARE, is a proprietary variant of
Deflate. It's fundamentally the same algorithm. What has changed is the increase in dictionary size from 32 KB to 64 KB, an extension of the distance codes to 16 bits so that they may address a range of 64 KB, and the
400:
length code, which is extended to 16 bits so that it may define lengths of three to 65,538 bytes. This leads to
Deflate64 having a longer compression time, and potentially a slightly higher compression ratio, than Deflate. Several free and/or open source projects support Deflate64, such as
390:
capable of being decompressed by any existing
Deflate decoder. Differing implementations will likely produce variations on the final encoded bit-stream produced. The focus with non-zlib versions of an encoder has normally been to produce a more efficiently compressed and smaller encoded stream.
1329:
187:
encoding, which produces an optimized
Huffman tree customized for each block of data individually. Instructions to generate the necessary Huffman tree immediately follow the block header. The static Huffman option is used for short messages, where the fixed saving gained by omitting the tree
255:
which creates an unprefixed tree of non-overlapping intervals, where the length of each sequence is inversely proportional to the logarithm of the probability of that symbol needing to be encoded. The more likely it is that a symbol has to be encoded, the shorter its bit-sequence will be.
810:
E5-2600 and E5-2400 Processor Series (Sandy Bridge-EP/EN) supports hardware compression and decompression using QuickAssist
Technology. Depending on the chipset, compression and decompression rates of 5 Gbit/s, 10 Gbit/s, or 20 Gbit/s are
743:) is similar to the AHA363-PCIe but uses four AHA3610 chips for a sustained compression rate of 10 Gbit/s (1250 MB/s). Unlike the AHA362-PCIX, the decompression engines on the AHA363-PCIe and AHA367-PCIe boards are fully deflate compliant.
738:
kernel device drivers are available for both of the new cards, along with a modified zlib system library so that dynamically linked applications can automatically use the hardware support without internal modification. The AHA367-PCIe board
233:
If the distance is less than the length, the duplicate overlaps itself, indicating repetition. For example, a run of 10 identical bytes can be encoded as one byte, followed by a duplicate of length 9, beginning with the previous byte.
1149:
CPUs incorporate an improved version of the Nest
Accelerator Unit (NXU) hardware acceleration from the zEDC Express I/O expansion cards used in z14 systems for hardware Deflate compression and decompression as specified by
817:
CPUs incorporate an improved version of the Nest
Accelerator Unit (NXU) hardware acceleration from the zEDC Express I/O expansion cards used in z14 systems for hardware Deflate compression and decompression as specified by
276:
A match length code will always be followed by a distance code. Based on the distance code read, further "extra" bits may be read in order to produce the final distance. The distance tree contains space for 32 symbols:
1582:
789:, supports both Dynamic and Static Huffman tables, and can provide throughputs in excess of 100 Gbps. The company offers compression/decompression accelerator board reference designs for Intel FPGA (
345:
684:) or PCI-X cards featuring between one and six compression engines with claimed processing speeds of up to 3.6 Gbit/s (450 MB/s). A version of the cards are available with the separate brand
89:
As stated in the RFC document, an algorithm producing
Deflate files was widely thought to be implementable in a manner not covered by patents. This led to its widespread use – for example, in
1157:
architecture, IBM added hardware support for compressing and decompressing
Deflate (as specified by RFC 1951) to the formerly crypto-centric Nest accelerator (NX) core introduced with
825:
architecture, IBM added hardware support for compressing and decompressing Deflate (as specified by RFC 1951) to the formerly crypto-centric Nest accelerator (NX) core introduced with
237:
Searching the preceding text for duplicate substrings is the most computationally expensive part of the DEFLATE algorithm, and the operation which compression level settings affect.
251:
The second compression stage consists of replacing commonly used symbols with shorter representations and less commonly used symbols with longer representations. The method used is
1428:
1392:
850:
The normal intent with an alternative Inflate implementation is highly optimized decoding speed, or extremely predictable RAM usage for micro-controller embedded systems.
1700:
1815:
757:
contain high-speed hardware deflate and inflate engines compatible with both ZLIB and GZIP with some devices able to handle multiple simultaneous data streams.
1517:
581:
libdeflate: a library for fast, whole-buffer DEFLATE-based compression and decompression. Libdeflate is heavily optimized and especially on x86 processors.
2483:
2294:
522:, this version is freely licensed and achieves higher compression than zlib at the expense of CPU usage. Has an option to use the DEFLATE64 storage format.
1605:
2183:
1997:
3025:
2689:
2512:
2306:
629:) capable of compressing streams using Deflate at a rate of up to 3.0 Gbit/s (375 MB/s) for incoming uncompressed data. Accompanying the
1128:
782:
659:
2694:
2271:
1354:
842:
Inflate is the decoding process that takes a Deflate bitstream for decompression and correctly produces the original full-size data or file.
2424:
1562:
1495:
2801:
2539:
2478:
2289:
2239:
2062:
1907:
1442:
746:
1735:
1922:
1808:
1646:
1077:
1049:
1019:
889:
2914:
1327:, "String Searcher, and Compressor Using Same", published 1991-09-24, issued 1991-09-24, assigned to PKWare Inc.
309:
1671:
966:), a small, unencumbered, single-file reference implementation included in the /contrib/puff directory of the zlib distribution.
2924:
2762:
2613:
2532:
2326:
1406:
1370:
1283:
1096:
1053:
893:
594:
375:
allows the user to select from a sliding scale of likely resulting compression-level vs. speed of encoding. Options range from
585:
AdvanceCOMP uses the higher compression ratio versions of Deflate in 7-Zip, libdeflate, and Zopfli to enable recompression of
2897:
2517:
2311:
2099:
944:
545:: uses its own proprietary compression library (in C++ and Assembly) with an option to implement the DEFLATE64 storage format
2030:
2659:
1987:
1636:
2994:
1132:
1029:
786:
1471:
2984:
2887:
2429:
1801:
1185:
408:, do not, as a result of the proprietary nature of the procedure and the very modest performance increase over Deflate.
218:
1777:
1977:
1972:
2919:
711:
707:
703:
2846:
2684:
2664:
2608:
2266:
2057:
1860:
1140:
1136:
1063:
1045:
885:
794:
790:
457:
20:
1238:
1112:
766:
453:
3020:
2929:
2870:
2796:
2644:
2234:
2229:
2084:
2002:
1927:
590:
560:
505:
94:
899:
2934:
2507:
2301:
2133:
1146:
948:
935:
814:
441:
417:
372:
1902:
1165:
7.2 Technology Level 4 Expansion Pack or AIX 7.2 Technology Level 5 Service Pack 2 through the zlibNX library.
833:
7.2 Technology Level 4 Expansion Pack or AIX 7.2 Technology Level 5 Service Pack 2 through the zlibNX library.
490:: standard reference implementation adopted in many apps because of its open-source, permissive license. See
350:
The two codes (the 288-symbol length/literal tree and the 32-symbol distance tree) are themselves encoded as
2875:
2246:
2089:
1885:
1875:
1175:
559:; achieves higher compression at the expense of CPU usage. ZopfliPNG is a variation of Zopfli for use with
188:
outweighs the percentage compression loss due to using a non-optimal (thus, not technically Huffman) code.
2500:
2251:
2035:
1880:
1180:
351:
2904:
567:
536:
359:
are used to generate the dynamic trees, so it is easy for a compressor to choose whichever is smaller.
1320:
2588:
2050:
2012:
1833:
1297:
689:
217:
Within compressed blocks, if a duplicate series of bytes is spotted (a repeated string), then a back-
69:
43:
2819:
2669:
2654:
2623:
2618:
2527:
2434:
2336:
2321:
2104:
863:
800:
750:
601:
files with the possibility of smaller file sizes than zlib is able to achieve at maximum settings.
355:
1583:"Intel® Xeon® Processor E5-2600 and E5-2400 Series with Intel® Communications Chipset 89xx Series"
2892:
2862:
2841:
2747:
2679:
2573:
2261:
2077:
2067:
1962:
1942:
1937:
1277:
1135:
The company offers compression/decompression accelerator board reference designs for Intel FPGA (
1018:
implementation of Deflate and gzip decompression, by Thomas Mertes. Made available under the GNU
645:
614:
2473:
75:
Katz also designed the original algorithm used to construct Deflate streams. This algorithm was
2836:
2824:
2806:
2674:
2558:
2495:
2341:
2256:
2212:
2173:
1855:
1642:
1422:
1386:
1350:
1344:
975:
854:
731:
542:
98:
1503:
532:
by Simon Tatham, it has full decoding capability, but only supports static tree only creation
306:
Note that for the match distance symbols 2–29, the number of extra bits can be calculated as
2811:
2767:
2740:
2735:
2710:
2593:
2578:
2488:
2397:
2392:
2367:
2221:
1954:
1932:
1824:
1287:
1273:
46:
1450:
2730:
2544:
2468:
2449:
2419:
2387:
2353:
1912:
1850:
1781:
1739:
1730:
1606:"Introducing the IBM z15 - The enterprise platform for mission-critical hybrid multicloud"
618:
598:
76:
1222:
Package flate implements the DEFLATE compressed data format, described in RFC issue 1951.
266:
256: end of block – stop processing if last block, otherwise start processing next block.
2522:
2316:
2045:
2040:
1897:
1870:
1842:
630:
552:
445:
429:
386:
Other Deflate encoders have been produced, all of which will also produce a compatible
252:
246:
57:
1103:(Bitsim Accelerated Display Graphics Engine) controller offering for embedded systems.
1040:
decoder by Paul Sladen. Written for research/prototyping and made available under the
3014:
2829:
2777:
2444:
2439:
2414:
2346:
1967:
1865:
1086:: JavaScript speed-optimized port of zlib. Contains separate build with inflate only.
1007:
925:
723:
677:
652:
633:
354:
by giving the bit length of the code for each symbol. The bit lengths are themselves
208:
53:
1239:"PDF 32000-1:2008: Document management — Portable document format — Part 1: PDF 1.7"
2950:
1917:
1892:
1722:
425:
416:
Implementations of Deflate are freely available in many languages. Apps written in
86:
1011:
982:), Public domain Inflate implementation contained entirely in a single C function.
972:
written by Jørgen Ibsen in ANSI C and comes with zlib license. Adds about 2k code.
877:
383:
representing the maximum capability of the reference implementation in zlib/gzip.
371:
that chooses the amount of time spent looking for matching strings. The zlib/gzip
101:
file format for which Katz originally designed it. The patent has since expired.
2909:
2787:
2583:
2459:
2409:
1750:
1300:
1258:
FlateDecode Decompresses data encoded using the zlib/deflate compression method
1059:
1041:
997:
911:
881:
735:
575:
529:
176:
block option adds minimal overhead and is used for data that is incompressible.
140:: A stored (a.k.a. raw or literal) section, between 0 and 65,535 bytes in length
49:
1518:"High Performance DEFLATE Compression with Optimizations for Genomic Data Sets"
1025:
497:
109:
A Deflate stream consists of a series of blocks. Each block is preceded by a 3-
2966:
2757:
2752:
2639:
2598:
2404:
1234:
81:
1548:
Heavily optimized library for DEFLATE/zlib/gzip compression and decompression
969:
510:
This code is less clever, but hopefully more understandable and maintainable
1772:
1324:
1073:
869:
481:
387:
61:
27:
1793:
1483:
697:
448:
offer out-of-the-box support for Deflate in their libraries (respectively,
198:
Replacing symbols with new, weighted symbols based on the frequency of use.
669:
665:
19:
This article is about the data compression algorithm. For other uses, see
2880:
2725:
2382:
1543:
223:
1106:
760:
2072:
1162:
993:
990:, Bob Flanders and Michael Holmes, published in PC Magazine 1994-01-11.
917:
830:
730:
compression channels feeding two physical compression engines. Linux,
2163:
1567:
1292:
1158:
1154:
921:
859:
826:
822:
649:
556:
548:
1205:
461:
272:
286, 287: not used, reserved and illegal but still part of the tree.
150:
compressed block, using a pre-agreed Huffman tree defined in the RFC
979:
939:
519:
501:
465:
433:
2998:
2772:
2603:
2196:
2143:
1787:
1701:"Exploitation of In-Core Acceleration of POWER Processors for AIX"
1672:"Data compression by using the zlibNX library - IBM Documentation"
1484:
Does zlib support the new "Deflate64" format introduced by PKWare?
1099:
from BitSim. Hardware implementation of Inflate. Part of BitSim's
1037:
1015:
804:
622:
571:
525:
515:
477:
437:
401:
65:
1764:
1119:. This is a Silicon IP core supporting decompression of Deflate,
1083:
302:
30–31: not used, reserved and illegal but still part of the tree.
269:
257–285: combined with extra-bits, a match length of 3–258 bytes.
134:
Second and third bits: Encoding method used for this block type:
2153:
2007:
1992:
1982:
1124:
1120:
1067:
1033:
1001:
963:
956:
952:
807:
778:
774:
693:
673:
655:
586:
491:
487:
421:
405:
212:
195:
The matching and replacement of duplicate strings with pointers.
90:
1797:
1784:– an excellent algorithm to implement Deflate by Jesper Larsson
924:
machine language, written by Keir Fraser and released into the
726:
and instead has multiple register sets to allow 32 independent
2128:
2094:
1676:
1610:
907:
903:
876:
assembly language with optional memory paging support for the
873:
578:. 3x faster than zlib -1. Useful for compressing genomic data.
179:
Most compressible data will end up being encoded using method
110:
1116:
770:
1496:"Plan 9 from Bell Labs's /n/sources/plan9/sys/src/libflate"
1407:"Binary Essence – "Calgary Corpus" compression comparisons"
340:{\displaystyle \left\lfloor {\frac {n}{2}}\right\rfloor -1}
160:
compressed block, complete with the Huffman table supplied
1127:
files. The ZipAccel-D IP core that can be implemented in
379:(do not attempt compression, just store uncompressed) to
1774:
Extended Application of Suffix Trees to Data Compression
1755:
Deflate Compressed Data Format Specification version 1.3
1279:
DEFLATE Compressed Data Format Specification version 1.3
222:
as long as the distance appears within the last 32
1759:
688:
specifically designed for web-serving use rather than
611:
436:
can take advantage of the improved Deflate library in
1161:. This support is available to programs running with
829:. This support is available to programs running with
714:. In 2008, Comtech started producing two PCIe cards (
312:
259:
A tree is created, containing space for 288 symbols:
947:
by Michael Kohn and unrelated to "KZIP". Comes with
754:
432:(and compatible languages) can use paszlib. Apps in
2959:
2943:
2861:
2786:
2718:
2709:
2632:
2566:
2557:
2458:
2375:
2366:
2282:
2220:
2211:
2113:
2023:
1953:
1841:
1832:
528:'sshzlib.c': a standalone implementation under the
1788:Zip Files: History, Explanation and Implementation
1470:History of Lossless Data Compression Algorithms –
339:
129:: There are more blocks to process after this one.
1630:
1628:
644:" capable of using the hardware compression from
263:0–255: represent the literal bytes/symbols 0–255.
1427:: CS1 maint: bot: original URL status unknown (
1409:. Archived from the original on 27 December 2017
1391:: CS1 maint: bot: original URL status unknown (
773:. This is a Silicon IP core supporting Deflate,
1695:
1693:
1600:
1598:
480:: the first implementation, originally done by
68:archiving tool. Deflate was later specified in
1206:"flate package - compress/flate - Go Packages"
781:compression. ZipAccel-C can be implemented in
1809:
500:: contains a public-domain implementation in
299:28–29: distances 16,385–32,768, 13 extra bits
8:
1373:. Archived from the original on 21 June 2017
1080:implementation of Inflate by Chris Dickinson
296:26–27: distances 8,193–16,384, 12 extra bits
191:Compression is achieved through two steps:
2715:
2563:
2372:
2217:
1838:
1816:
1802:
1794:
1790:– walk-through of a Deflate implementation
1666:
1664:
1291:
920:, a fast and efficient implementation in
317:
311:
226:of uncompressed data decoded (termed the
1346:Data Compression: The Complete Reference
801:Intel Communications Chipset 89xx Series
367:During the compression stage, it is the
117:First bit: Last-block-in-stream marker:
1766:An Explanation of the Deflate Algorithm
1638:IBM z15 (8562) Technical Guide, Page 97
1196:
123:: This is the last block in the stream.
1561:Mazzoleni, Andrea (21 February 2023).
1420:
1384:
1286:. p. 1. sec. Abstract.
1268:
1266:
1502:. Lucent Technologies. Archived from
1349:(4 ed.). Springer. p. 241.
1070:/zlib decompression, by David Manura.
7:
1443:"-m (Set compression Method) switch"
290:8–9: distances 17–32, 3 extra bits
14:
1635:Lascu, Octavian (28 April 2021).
566:igzip: an encoder written in the
287:6–7: distances 9–16, 2 extra bits
2990:
2989:
2980:
2979:
996:by John Foderaro. Self-standing
539:, implements deflate compression
97:image files, in addition to the
3026:Lossless compression algorithms
1000:decoder distributed with a GNU
880:, and made available under the
872:, written by Andrew Collier in
284:4–5: distances 5–8, 1 extra bit
1732:.ZIP File Format Specification
1066:implementation of Deflate and
902:, written by Laurens Holst in
508:. The author, Wei Dai states "
424:library (under the permissive
1:
648:. The hardware is based on a
610:AHA361-PCIX/AHA362-PCIX from
551:: C implementation under the
494:for higher-performance forks.
412:Using Deflate in new software
1371:"Binary Essence – Deflate64"
1186:Comparison of file archivers
862:, written by Piotr Fusik in
846:Inflate-only implementations
518:: written by Igor Pavlov in
504:aimed at reducing potential
203:Duplicate string elimination
1210:The Go Programming Language
636:for the AHA361-PCIX is an "
52:that uses a combination of
3042:
2871:Compressed data structures
2193:RLE + BWT + MTF + Huffman
1861:Asymmetric numeral systems
1235:Adobe Systems Incorporated
951:source-code under the GNU
906:assembly language for the
640:" utility and customised "
395:Deflate64/Enhanced Deflate
244:
206:
21:Deflation (disambiguation)
18:
16:Data compression algorithm
2975:
2230:Discrete cosine transform
2160:LZ77 + Huffman + context
2935:Smallest grammar problem
1109:GPL FPGA implementation.
763:GPL FPGA implementation.
658:and four custom AHA3601
506:security vulnerabilities
404:, while others, such as
373:reference implementation
2876:Compressed suffix array
2425:Nyquist–Shannon theorem
1744:X. Deflating – Method 8
1563:"amadvance/advancecomp"
1343:David, Salomon (2007).
1176:List of archive formats
472:Encoder implementations
352:canonical Huffman codes
64:, for version 2 of his
1181:List of file archivers
341:
2905:Kolmogorov complexity
2773:Video characteristics
2150:LZ77 + Huffman + ANS
1769:– by Antaeus Feldspar
1321:US patent 5051745
1032:stand-alone Deflate (
955:license. Used in the
803:(Cave Creek) for the
676:. This is a range of
621:. Comtech produced a
568:x86 assembly language
537:Plan 9 from Bell Labs
454:System.IO.Compression
342:
166:: Reserved—don't use.
93:compressed files and
82:U.S. patent 5,051,745
60:. It was designed by
2995:Compression software
2589:Compression artifact
2545:Psychoacoustic model
1139:) and Xilinx FPGAs (
838:Decoder/decompressor
793:) and Xilinx FPGAs (
310:
2985:Compression formats
2624:Texture compression
2619:Standard test image
2435:Silence compression
1614:. 12 September 2019
1500:plan9.bell-labs.com
1248:. Adobe. p. 23
1153:Beginning with the
821:Beginning with the
2893:Information theory
2748:Display resolution
2574:Chroma subsampling
1963:Byte pair encoding
1908:Shannon–Fano–Elias
1780:2016-09-23 at the
1738:2014-12-05 at the
1097:Serial Inflate GPU
866:assembly language.
617:2006-12-08 at the
535:libflate: part of
420:typically use the
363:Encoder/compressor
356:run-length encoded
337:
281:0–3: distances 1–4
85:, and assigned to
38:, and also called
3008:
3007:
2857:
2856:
2807:Deblocking filter
2705:
2704:
2553:
2552:
2362:
2361:
2207:
2206:
1356:978-1-84628-602-5
1274:Deutsch, L. Peter
1246:Adobe Open Source
1091:Hardware decoders
910:, licensed under
741:PCI-ID: 193f:0367
732:Microsoft Windows
716:PCI-ID: 193f:0363
700:is also produced.
692:or backup use; a
605:Hardware encoders
492:Zlib § Forks
325:
3033:
3021:Data compression
2993:
2992:
2983:
2982:
2812:Lapped transform
2716:
2594:Image resolution
2579:Coding tree unit
2564:
2373:
2218:
1839:
1825:Data compression
1818:
1811:
1804:
1795:
1728:
1711:
1710:
1708:
1707:
1697:
1688:
1687:
1685:
1684:
1668:
1659:
1658:
1656:
1655:
1641:. IBM Redbooks.
1632:
1623:
1622:
1620:
1619:
1602:
1593:
1592:
1590:
1589:
1579:
1573:
1572:
1558:
1552:
1551:
1540:
1534:
1533:
1531:
1529:
1524:. 1 October 2019
1514:
1508:
1507:
1492:
1486:
1480:
1474:
1468:
1462:
1461:
1459:
1458:
1449:. Archived from
1447:sevenzip.osdn.jp
1439:
1433:
1432:
1426:
1418:
1416:
1414:
1403:
1397:
1396:
1390:
1382:
1380:
1378:
1367:
1361:
1360:
1340:
1334:
1333:
1332:
1328:
1325:Katz, Phillip W.
1317:
1311:
1310:
1308:
1307:
1295:
1293:10.17487/RFC1951
1270:
1261:
1260:
1255:
1253:
1243:
1231:
1225:
1224:
1219:
1217:
1204:The Go Authors.
1201:
989:
753:processors from
742:
721:
717:
683:
666:StorCompress 300
643:
639:
628:
511:
484:as part of PKZip
451:
382:
378:
346:
344:
343:
338:
330:
326:
318:
182:
165:
155:
145:
139:
128:
122:
84:
47:data compression
3041:
3040:
3036:
3035:
3034:
3032:
3031:
3030:
3011:
3010:
3009:
3004:
2971:
2955:
2939:
2920:Rate–distortion
2853:
2782:
2701:
2628:
2549:
2454:
2450:Sub-band coding
2358:
2283:Predictive type
2278:
2203:
2170:LZSS + Huffman
2120:LZ77 + Huffman
2109:
2019:
1955:Dictionary type
1949:
1851:Adaptive coding
1828:
1822:
1782:Wayback Machine
1740:Wayback Machine
1726:
1719:
1714:
1705:
1703:
1699:
1698:
1691:
1682:
1680:
1670:
1669:
1662:
1653:
1651:
1649:
1634:
1633:
1626:
1617:
1615:
1604:
1603:
1596:
1587:
1585:
1581:
1580:
1576:
1560:
1559:
1555:
1542:
1541:
1537:
1527:
1525:
1516:
1515:
1511:
1494:
1493:
1489:
1481:
1477:
1469:
1465:
1456:
1454:
1441:
1440:
1436:
1419:
1412:
1410:
1405:
1404:
1400:
1383:
1376:
1374:
1369:
1368:
1364:
1357:
1342:
1341:
1337:
1330:
1319:
1318:
1314:
1305:
1303:
1272:
1271:
1264:
1251:
1249:
1241:
1233:
1232:
1228:
1215:
1213:
1203:
1202:
1198:
1194:
1172:
1141:ZipAccel-RD-XIL
1137:ZipAccel-RD-INT
1093:
987:
848:
840:
795:ZipAccel-RD-XIL
791:ZipAccel-RD-INT
740:
719:
715:
681:
642:mod_deflate_aha
641:
637:
626:
619:Wayback Machine
607:
509:
474:
449:
414:
397:
380:
376:
365:
313:
308:
307:
249:
243:
215:
207:Main articles:
205:
185:dynamic Huffman
180:
163:
158:dynamic Huffman
153:
143:
137:
126:
120:
107:
80:
24:
17:
12:
11:
5:
3039:
3037:
3029:
3028:
3023:
3013:
3012:
3006:
3005:
3003:
3002:
2987:
2976:
2973:
2972:
2970:
2969:
2963:
2961:
2957:
2956:
2954:
2953:
2947:
2945:
2941:
2940:
2938:
2937:
2932:
2927:
2922:
2917:
2912:
2907:
2902:
2901:
2900:
2890:
2885:
2884:
2883:
2878:
2867:
2865:
2859:
2858:
2855:
2854:
2852:
2851:
2850:
2849:
2844:
2834:
2833:
2832:
2827:
2822:
2814:
2809:
2804:
2799:
2793:
2791:
2784:
2783:
2781:
2780:
2775:
2770:
2765:
2760:
2755:
2750:
2745:
2744:
2743:
2738:
2733:
2722:
2720:
2713:
2707:
2706:
2703:
2702:
2700:
2699:
2698:
2697:
2692:
2687:
2682:
2672:
2667:
2662:
2657:
2652:
2647:
2642:
2636:
2634:
2630:
2629:
2627:
2626:
2621:
2616:
2611:
2606:
2601:
2596:
2591:
2586:
2581:
2576:
2570:
2568:
2561:
2555:
2554:
2551:
2550:
2548:
2547:
2542:
2537:
2536:
2535:
2530:
2525:
2520:
2515:
2505:
2504:
2503:
2493:
2492:
2491:
2486:
2476:
2471:
2465:
2463:
2456:
2455:
2453:
2452:
2447:
2442:
2437:
2432:
2427:
2422:
2417:
2412:
2407:
2402:
2401:
2400:
2395:
2390:
2379:
2377:
2370:
2364:
2363:
2360:
2359:
2357:
2356:
2354:Psychoacoustic
2351:
2350:
2349:
2344:
2339:
2331:
2330:
2329:
2324:
2319:
2314:
2309:
2299:
2298:
2297:
2286:
2284:
2280:
2279:
2277:
2276:
2275:
2274:
2269:
2264:
2254:
2249:
2244:
2243:
2242:
2237:
2226:
2224:
2222:Transform type
2215:
2209:
2208:
2205:
2204:
2202:
2201:
2200:
2199:
2191:
2190:
2189:
2186:
2178:
2177:
2176:
2168:
2167:
2166:
2158:
2157:
2156:
2148:
2147:
2146:
2138:
2137:
2136:
2131:
2126:
2117:
2115:
2111:
2110:
2108:
2107:
2102:
2097:
2092:
2087:
2082:
2081:
2080:
2075:
2065:
2060:
2055:
2054:
2053:
2043:
2038:
2033:
2027:
2025:
2021:
2020:
2018:
2017:
2016:
2015:
2010:
2005:
2000:
1995:
1990:
1985:
1980:
1975:
1965:
1959:
1957:
1951:
1950:
1948:
1947:
1946:
1945:
1940:
1935:
1930:
1920:
1915:
1910:
1905:
1900:
1895:
1890:
1889:
1888:
1883:
1878:
1868:
1863:
1858:
1853:
1847:
1845:
1836:
1830:
1829:
1823:
1821:
1820:
1813:
1806:
1798:
1792:
1791:
1785:
1770:
1762:
1760:zlib Home Page
1757:
1747:
1742:; Section 10,
1718:
1717:External links
1715:
1713:
1712:
1689:
1660:
1647:
1624:
1594:
1574:
1553:
1535:
1522:Intel Software
1509:
1506:on 2006-03-15.
1487:
1475:
1463:
1434:
1398:
1362:
1355:
1335:
1312:
1262:
1226:
1195:
1193:
1190:
1189:
1188:
1183:
1178:
1171:
1168:
1167:
1166:
1151:
1144:
1110:
1104:
1092:
1089:
1088:
1087:
1081:
1071:
1057:
1023:
1005:
991:
985:
984:
983:
973:
967:
960:
932:
931:
930:
929:
915:
897:
867:
847:
844:
839:
836:
835:
834:
819:
812:
798:
764:
758:
744:
724:load balancers
701:
696:revision, the
674:Indra Networks
663:
625:card (PCI-ID:
606:
603:
583:
582:
579:
570:, released by
564:
553:Apache License
546:
540:
533:
523:
513:
495:
485:
473:
470:
446:.NET Framework
430:Borland Pascal
413:
410:
396:
393:
364:
361:
336:
333:
329:
324:
321:
316:
304:
303:
300:
297:
294:
291:
288:
285:
282:
274:
273:
270:
267:
264:
253:Huffman coding
247:Huffman coding
245:Main article:
242:
239:
228:sliding window
204:
201:
200:
199:
196:
170:
169:
168:
167:
161:
151:
148:static Huffman
141:
132:
131:
130:
124:
106:
103:
58:Huffman coding
15:
13:
10:
9:
6:
4:
3:
2:
3038:
3027:
3024:
3022:
3019:
3018:
3016:
3000:
2996:
2988:
2986:
2978:
2977:
2974:
2968:
2965:
2964:
2962:
2958:
2952:
2949:
2948:
2946:
2942:
2936:
2933:
2931:
2928:
2926:
2923:
2921:
2918:
2916:
2913:
2911:
2908:
2906:
2903:
2899:
2896:
2895:
2894:
2891:
2889:
2886:
2882:
2879:
2877:
2874:
2873:
2872:
2869:
2868:
2866:
2864:
2860:
2848:
2845:
2843:
2840:
2839:
2838:
2835:
2831:
2828:
2826:
2823:
2821:
2818:
2817:
2815:
2813:
2810:
2808:
2805:
2803:
2800:
2798:
2795:
2794:
2792:
2789:
2785:
2779:
2778:Video quality
2776:
2774:
2771:
2769:
2766:
2764:
2761:
2759:
2756:
2754:
2751:
2749:
2746:
2742:
2739:
2737:
2734:
2732:
2729:
2728:
2727:
2724:
2723:
2721:
2717:
2714:
2712:
2708:
2696:
2693:
2691:
2688:
2686:
2683:
2681:
2678:
2677:
2676:
2673:
2671:
2668:
2666:
2663:
2661:
2658:
2656:
2653:
2651:
2648:
2646:
2643:
2641:
2638:
2637:
2635:
2631:
2625:
2622:
2620:
2617:
2615:
2612:
2610:
2607:
2605:
2602:
2600:
2597:
2595:
2592:
2590:
2587:
2585:
2582:
2580:
2577:
2575:
2572:
2571:
2569:
2565:
2562:
2560:
2556:
2546:
2543:
2541:
2538:
2534:
2531:
2529:
2526:
2524:
2521:
2519:
2516:
2514:
2511:
2510:
2509:
2506:
2502:
2499:
2498:
2497:
2494:
2490:
2487:
2485:
2482:
2481:
2480:
2477:
2475:
2472:
2470:
2467:
2466:
2464:
2461:
2457:
2451:
2448:
2446:
2445:Speech coding
2443:
2441:
2440:Sound quality
2438:
2436:
2433:
2431:
2428:
2426:
2423:
2421:
2418:
2416:
2415:Dynamic range
2413:
2411:
2408:
2406:
2403:
2399:
2396:
2394:
2391:
2389:
2386:
2385:
2384:
2381:
2380:
2378:
2374:
2371:
2369:
2365:
2355:
2352:
2348:
2345:
2343:
2340:
2338:
2335:
2334:
2332:
2328:
2325:
2323:
2320:
2318:
2315:
2313:
2310:
2308:
2305:
2304:
2303:
2300:
2296:
2293:
2292:
2291:
2288:
2287:
2285:
2281:
2273:
2270:
2268:
2265:
2263:
2260:
2259:
2258:
2255:
2253:
2250:
2248:
2245:
2241:
2238:
2236:
2233:
2232:
2231:
2228:
2227:
2225:
2223:
2219:
2216:
2214:
2210:
2198:
2195:
2194:
2192:
2187:
2185:
2182:
2181:
2180:LZ77 + Range
2179:
2175:
2172:
2171:
2169:
2165:
2162:
2161:
2159:
2155:
2152:
2151:
2149:
2145:
2142:
2141:
2139:
2135:
2132:
2130:
2127:
2125:
2122:
2121:
2119:
2118:
2116:
2112:
2106:
2103:
2101:
2098:
2096:
2093:
2091:
2088:
2086:
2083:
2079:
2076:
2074:
2071:
2070:
2069:
2066:
2064:
2061:
2059:
2056:
2052:
2049:
2048:
2047:
2044:
2042:
2039:
2037:
2034:
2032:
2029:
2028:
2026:
2022:
2014:
2011:
2009:
2006:
2004:
2001:
1999:
1996:
1994:
1991:
1989:
1986:
1984:
1981:
1979:
1976:
1974:
1971:
1970:
1969:
1966:
1964:
1961:
1960:
1958:
1956:
1952:
1944:
1941:
1939:
1936:
1934:
1931:
1929:
1926:
1925:
1924:
1921:
1919:
1916:
1914:
1911:
1909:
1906:
1904:
1901:
1899:
1896:
1894:
1891:
1887:
1884:
1882:
1879:
1877:
1874:
1873:
1872:
1869:
1867:
1864:
1862:
1859:
1857:
1854:
1852:
1849:
1848:
1846:
1844:
1840:
1837:
1835:
1831:
1826:
1819:
1814:
1812:
1807:
1805:
1800:
1799:
1796:
1789:
1786:
1783:
1779:
1776:
1775:
1771:
1768:
1767:
1763:
1761:
1758:
1756:
1752:
1748:
1745:
1741:
1737:
1734:
1733:
1724:
1721:
1720:
1716:
1702:
1696:
1694:
1690:
1679:
1678:
1673:
1667:
1665:
1661:
1650:
1648:9780738458991
1644:
1640:
1639:
1631:
1629:
1625:
1613:
1612:
1607:
1601:
1599:
1595:
1584:
1578:
1575:
1570:
1569:
1564:
1557:
1554:
1549:
1545:
1539:
1536:
1523:
1519:
1513:
1510:
1505:
1501:
1497:
1491:
1488:
1485:
1479:
1476:
1473:
1467:
1464:
1453:on 2022-04-09
1452:
1448:
1444:
1438:
1435:
1430:
1424:
1408:
1402:
1399:
1394:
1388:
1372:
1366:
1363:
1358:
1352:
1348:
1347:
1339:
1336:
1326:
1322:
1316:
1313:
1302:
1299:
1294:
1289:
1285:
1281:
1280:
1275:
1269:
1267:
1263:
1259:
1247:
1240:
1236:
1230:
1227:
1223:
1211:
1207:
1200:
1197:
1191:
1187:
1184:
1182:
1179:
1177:
1174:
1173:
1169:
1164:
1160:
1156:
1152:
1148:
1145:
1142:
1138:
1134:
1130:
1126:
1122:
1118:
1114:
1111:
1108:
1105:
1102:
1098:
1095:
1094:
1090:
1085:
1082:
1079:
1075:
1072:
1069:
1065:
1061:
1058:
1055:
1051:
1047:
1043:
1039:
1035:
1031:
1027:
1024:
1021:
1017:
1013:
1009:
1006:
1003:
999:
995:
992:
986:
981:
977:
974:
971:
968:
965:
961:
958:
954:
950:
946:
943:
942:
941:
937:
934:
933:
927:
926:Public Domain
923:
919:
916:
913:
909:
905:
901:
898:
895:
891:
887:
883:
879:
875:
871:
868:
865:
861:
858:
857:
856:
853:
852:
851:
845:
843:
837:
832:
828:
824:
820:
816:
813:
809:
806:
802:
799:
796:
792:
788:
784:
780:
776:
772:
768:
765:
762:
759:
756:
752:
748:
745:
737:
733:
729:
725:
713:
709:
705:
702:
699:
695:
691:
687:
679:
675:
671:
667:
664:
661:
657:
654:
651:
647:
635:
632:
624:
620:
616:
613:
609:
608:
604:
602:
600:
596:
592:
588:
580:
577:
573:
569:
565:
562:
558:
554:
550:
547:
544:
541:
538:
534:
531:
527:
524:
521:
517:
514:
507:
503:
499:
496:
493:
489:
486:
483:
479:
476:
475:
471:
469:
467:
463:
459:
455:
450:java.util.zip
447:
443:
439:
435:
431:
427:
423:
419:
411:
409:
407:
403:
394:
392:
389:
384:
374:
370:
362:
360:
357:
353:
348:
334:
331:
327:
322:
319:
314:
301:
298:
295:
292:
289:
286:
283:
280:
279:
278:
271:
268:
265:
262:
261:
260:
257:
254:
248:
241:Bit reduction
240:
238:
235:
231:
229:
225:
220:
214:
210:
209:LZ77 and LZ78
202:
197:
194:
193:
192:
189:
186:
177:
175:
162:
159:
152:
149:
142:
136:
135:
133:
125:
119:
118:
116:
115:
114:
112:
105:Stream format
104:
102:
100:
96:
92:
88:
83:
78:
73:
72:1951 (1996).
71:
67:
63:
59:
55:
51:
48:
45:
41:
37:
34:(stylized as
33:
29:
22:
2951:Hutter Prize
2915:Quantization
2820:Compensation
2649:
2614:Quantization
2337:Compensation
2123:
1903:Shannon–Fano
1843:Entropy type
1773:
1765:
1754:
1743:
1731:
1723:PKWARE, Inc.
1704:. Retrieved
1681:. Retrieved
1675:
1652:. Retrieved
1637:
1616:. Retrieved
1609:
1586:. Retrieved
1577:
1566:
1556:
1547:
1544:"libdeflate"
1538:
1526:. Retrieved
1521:
1512:
1504:the original
1499:
1490:
1478:
1466:
1455:. Retrieved
1451:the original
1446:
1437:
1411:. Retrieved
1401:
1375:. Retrieved
1365:
1345:
1338:
1315:
1304:. Retrieved
1278:
1276:(May 1996).
1257:
1250:. Retrieved
1245:
1229:
1221:
1214:. Retrieved
1209:
1199:
1100:
860:6502 inflate
849:
841:
755:Cavium, Inc.
727:
685:
631:Linux kernel
584:
426:zlib License
415:
398:
385:
368:
366:
349:
305:
275:
258:
250:
236:
232:
227:
216:
190:
184:
178:
173:
171:
157:
147:
108:
87:PKWARE, Inc.
74:
39:
35:
31:
25:
2910:Prefix code
2763:Frame types
2584:Color space
2410:Convolution
2140:LZ77 + ANS
2051:Incremental
2024:Other types
1943:Levenshtein
1727:appnote.txt
1482:zlib FAQ –
1252:5 September
1216:5 September
1107:HDL-Deflate
1008:inflate.s7i
998:Common Lisp
918:inflate.asm
761:HDL-Deflate
736:OpenSolaris
712:AHA367-PCIe
708:AHA364-PCIe
704:AHA363-PCIe
612:Comtech AHA
576:MIT License
530:MIT License
456:). Apps in
428:). Apps in
50:file format
3015:Categories
2967:Mark Adler
2925:Redundancy
2842:Daubechies
2825:Estimation
2758:Frame rate
2680:Daubechies
2640:Chain code
2599:Macroblock
2405:Companding
2342:Estimation
2262:Daubechies
1968:Lempel–Ziv
1928:Exp-Golomb
1856:Arithmetic
1706:2021-11-01
1683:2021-11-01
1654:2021-11-01
1618:2021-11-01
1588:2016-05-18
1528:18 January
1457:2023-01-21
1306:2014-04-23
1192:References
1113:ZipAccel-D
1078:Javascript
1060:deflatelua
994:inflate.cl
959:installer.
811:available.
767:ZipAccel-C
686:WebEnhance
574:under the
464:(pure) or
2944:Community
2768:Interlace
2154:Zstandard
1933:Fibonacci
1923:Universal
1881:Canonical
1749:RFC
1472:Deflate64
1062:, a pure-
1056:licenses.
1028:, a pure-
1014:, a pure-
896:licenses.
878:SAM Coupé
720:193f:0364
682:17b4:0011
680:(PCI-ID:
627:193f:0001
482:Phil Katz
388:bitstream
332:−
219:reference
62:Phil Katz
28:computing
2930:Symmetry
2898:Timeline
2881:FM-index
2726:Bit rate
2719:Concepts
2567:Concepts
2430:Sampling
2383:Bit rate
2376:Concepts
2078:Sequitur
1913:Tunstall
1886:Modified
1876:Adaptive
1834:Lossless
1778:Archived
1736:Archived
1423:cite web
1387:cite web
1212:. Google
1170:See also
1150:RFC1951.
1117:CAST Inc
1022:license.
1012:gzip.s7i
1004:license.
962:puff.c (
870:SAMflate
855:Assembly
818:RFC1951.
771:CAST Inc
615:Archived
543:Hyperbac
498:Crypto++
466:ZLib-Ada
460:can use
328:⌋
315:⌊
113:header:
77:patented
44:lossless
2888:Entropy
2837:Wavelet
2816:Motion
2675:Wavelet
2655:Fractal
2650:Deflate
2633:Methods
2420:Latency
2333:Motion
2257:Wavelet
2174:LHA/LZH
2124:Deflate
2073:Re-Pair
2068:Grammar
1898:Shannon
1871:Huffman
1827:methods
1159:POWER7+
1147:IBM z15
1076:a pure-
1074:inflate
1026:pyflate
988:PCDEZIP
976:tinfl.c
827:POWER7+
815:IBM z15
728:virtual
638:ahagzip
462:Zip-Ada
440:. Both
369:encoder
42:) is a
36:DEFLATE
32:Deflate
2999:codecs
2960:People
2863:Theory
2830:Vector
2347:Vector
2164:Brotli
2114:Hybrid
2013:Snappy
1866:Golomb
1645:
1568:GitHub
1413:22 May
1377:22 May
1353:
1331:
1323:,
1155:POWER9
1133:FPGAs.
1036:) and
1030:Python
945:kunzip
922:M68000
900:gunzip
823:POWER9
751:Octeon
747:Nitrox
734:, and
653:Virtex
650:Xilinx
646:Apache
634:driver
563:files.
557:Google
549:Zopfli
183:, the
174:stored
2790:parts
2788:Codec
2753:Frame
2711:Video
2695:SPIHT
2604:Pixel
2559:Image
2513:ACELP
2484:ADPCM
2474:ÎĽ-law
2469:A-law
2462:parts
2460:Codec
2368:Audio
2307:ACELP
2295:ADPCM
2272:SPIHT
2213:Lossy
2197:bzip2
2188:LZHAM
2144:LZFSE
2046:Delta
1938:Gamma
1918:Unary
1893:Range
1242:(PDF)
1115:from
1101:BADGE
1038:bzip2
1016:Seed7
980:miniz
805:Intel
787:FPGAs
769:from
672:from
660:ASICs
623:PCI-X
572:Intel
526:PuTTY
516:7-Zip
478:PKZIP
438:7-Zip
402:7-Zip
66:PKZIP
40:Flate
2802:DPCM
2609:PSNR
2540:MDCT
2533:WLPC
2518:CELP
2479:DPCM
2327:WLPC
2312:CELP
2290:DPCM
2240:MDCT
2184:LZMA
2085:LDCT
2063:DPCM
2008:LZWL
1998:LZSS
1993:LZRW
1983:LZJB
1751:1951
1643:ISBN
1530:2020
1429:link
1415:2011
1393:link
1379:2011
1351:ISBN
1301:1951
1284:IETF
1254:2023
1218:2023
1129:ASIC
1125:Gzip
1123:and
1121:Zlib
1084:pako
1068:gzip
1054:DFSG
1050:LGPL
1034:gzip
1020:LGPL
1002:LGPL
970:tinf
964:zlib
957:GIMP
953:LGPL
894:DFSG
890:LGPL
864:6502
808:Xeon
783:ASIC
779:Gzip
777:and
775:Zlib
749:and
698:MX4E
694:PCIe
656:FPGA
597:and
587:gzip
488:zlib
452:and
444:and
442:Java
422:zlib
406:zlib
213:LZSS
211:and
172:The
156:: A
146:: A
91:gzip
56:and
54:LZ77
2847:DWT
2797:DCT
2741:VBR
2736:CBR
2731:ABR
2690:EZW
2685:DWT
2670:RLE
2660:KLT
2645:DCT
2528:LSP
2523:LAR
2508:LPC
2501:FFT
2398:VBR
2393:CBR
2388:ABR
2322:LSP
2317:LAR
2302:LPC
2267:DWT
2252:FFT
2247:DST
2235:DCT
2134:LZS
2129:LZX
2105:RLE
2100:PPM
2095:PAQ
2090:MTF
2058:DMC
2036:CTW
2031:BWT
2003:LZW
1988:LZO
1978:LZ4
1973:842
1725:'s
1677:IBM
1611:IBM
1298:RFC
1288:doi
1163:AIX
1131:or
1064:Lua
1046:GPL
1042:BSD
940:C++
912:BSD
908:MSX
904:Z80
886:GPL
882:BSD
874:Z80
831:AIX
785:or
690:SAN
678:PCI
670:MX3
599:ZIP
595:MNG
591:PNG
561:PNG
555:by
520:C++
502:C++
458:Ada
434:C++
293:...
230:).
224:KiB
111:bit
99:ZIP
95:PNG
79:as
70:RFC
26:In
3017::
2665:LP
2496:FT
2489:DM
2041:CM
1753:–
1729:,
1692:^
1674:.
1663:^
1627:^
1608:.
1597:^
1565:.
1546:.
1520:.
1498:.
1445:.
1425:}}
1421:{{
1389:}}
1385:{{
1296:.
1282:.
1265:^
1256:.
1244:.
1237:.
1220:.
1208:.
1143:).
797:).
593:,
589:,
512:".
468:.
347:.
181:10
164:11
154:10
144:01
138:00
30:,
3001:)
2997:(
1817:e
1810:t
1803:v
1746:.
1709:.
1686:.
1657:.
1621:.
1591:.
1571:.
1550:.
1532:.
1460:.
1431:)
1417:.
1395:)
1381:.
1359:.
1309:.
1290::
1052:/
1048:/
1044:/
1010:/
978:(
949:C
938:/
936:C
928:.
914:.
892:/
888:/
884:/
739:(
718:/
710:/
706:/
668:/
418:C
381:9
377:0
335:1
323:2
320:n
127:0
121:1
23:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.