Knowledge

Deflate

Source đź“ť

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
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: 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.
1428: 1392: 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: 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 1815: 842:
Inflate is the decoding process that takes a Deflate bitstream for decompression and correctly produces the original full-size data or file.
2483: 2294: 1562: 1495: 1442: 746: 2183: 1735: 3025: 2689: 2512: 2306: 1997: 1327:, "String Searcher, and Compressor Using Same", published 1991-09-24, issued 1991-09-24, assigned to PKWare Inc. 1128: 782: 659: 309: 1671: 966:), a small, unencumbered, single-file reference implementation included in the /contrib/puff directory of the zlib distribution. 2694: 2271: 1406: 1370: 1096: 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
1354: 944: 545:: uses its own proprietary compression library (in C++ and Assembly) with an option to implement the DEFLATE64 storage format 2424: 1636: 1471: 408:, do not, as a result of the proprietary nature of the procedure and the very modest performance increase over Deflate. 2801: 2539: 2478: 2289: 2239: 2062: 1777: 1922: 1907: 1808: 1646: 1077: 1049: 1019: 889: 711: 707: 703: 2914: 1140: 1136: 794: 790: 1238: 1112: 766: 453: 2924: 2762: 2613: 2532: 2326: 1283: 1053: 893: 594: 899: 2897: 2517: 2311: 2099: 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.
2994: 2030: 1132: 1029: 786: 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
2659: 2984: 2887: 2429: 1987: 1801: 1185: 559:; achieves higher compression at the expense of CPU usage. ZopfliPNG is a variation of Zopfli for use with 218: 188:
outweighs the percentage compression loss due to using a non-optimal (thus, not technically Huffman) code.
1977: 1972: 2919: 2846: 2684: 2664: 2608: 2266: 2057: 1860: 1063: 1045: 885: 457: 359:
are used to generate the dynamic trees, so it is easy for a compressor to choose whichever is smaller.
20: 1320: 3020: 2929: 2870: 2796: 2644: 2234: 2229: 2084: 1927: 590: 560: 505: 217:
Within compressed blocks, if a duplicate series of bytes is spotted (a repeated string), then a back-
94: 2934: 2507: 2301: 2002: 1146: 948: 935: 814: 750: 601:
files with the possibility of smaller file sizes than zlib is able to achieve at maximum settings.
441: 417: 372: 1583:"Intel® Xeon® Processor E5-2600 and E5-2400 Series with Intel® Communications Chipset 89xx Series" 2875: 2246: 2133: 2089: 1902: 1885: 1875: 1277: 1175: 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
614: 75:
Katz also designed the original algorithm used to construct Deflate streams. This algorithm was
2500: 2251: 2035: 1880: 1180: 351: 2772: 1344: 975: 542: 2904: 1503: 567: 536: 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
2588: 2050: 2012: 1833: 1450: 1297: 689: 69: 43: 1730: 1606:"Introducing the IBM z15 - The enterprise platform for mission-critical hybrid multicloud" 8: 2819: 2710: 2669: 2654: 2623: 2618: 2527: 2434: 2367: 2336: 2321: 2104: 1222:
Package flate implements the DEFLATE compressed data format, described in RFC issue 1951.
863: 800: 355: 266:
256: end of block – stop processing if last block, otherwise start processing next block.
2892: 2862: 2841: 2747: 2679: 2573: 2261: 2077: 2067: 1962: 1942: 1937: 645: 386:
Other Deflate encoders have been produced, all of which will also produce a compatible
2473: 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
2836: 2824: 2806: 2674: 2558: 2495: 2341: 2256: 2212: 2173: 1855: 1642: 1422: 1386: 1350: 1086:: JavaScript speed-optimized port of zlib. Contains separate build with inflate only. 1007: 854: 731: 354:
by giving the bit length of the code for each symbol. The bit lengths are themselves
98: 1239:"PDF 32000-1:2008: Document management — Portable document format — Part 1: PDF 1.7" 2811: 2767: 2740: 2735: 2593: 2578: 2488: 2397: 2392: 2221: 1954: 1932: 1824: 1287: 1273: 416:
Implementations of Deflate are freely available in many languages. Apps written in
46: 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.
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
2730: 2544: 2468: 2449: 2419: 2387: 2353: 1912: 1850: 1781: 1739: 618: 598: 101:
file format for which Katz originally designed it. The patent has since expired.
76: 1750: 1300: 1258:
FlateDecode Decompresses data encoded using the zlib/deflate compression method
1059: 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 2522: 2316: 2045: 2040: 1897: 1870: 1842: 1518:"High Performance DEFLATE Compression with Optimizations for Genomic Data Sets" 1025: 630: 552: 445: 429: 252: 246: 109:
A Deflate stream consists of a series of blocks. Each block is preceded by a 3-
57: 81: 3014: 2829: 2777: 2444: 2439: 2414: 2346: 1967: 1865: 1548:
Heavily optimized library for DEFLATE/zlib/gzip compression and decompression
969: 925: 723: 677: 652: 633: 510:
This code is less clever, but hopefully more understandable and maintainable
208: 53: 1772: 1073: 869: 2950: 1917: 1892: 1793: 1722: 1483: 697: 448:
offer out-of-the-box support for Deflate in their libraries (respectively,
425: 198:
Replacing symbols with new, weighted symbols based on the frequency of use.
86: 877: 669: 665: 19:
This article is about the data compression algorithm. For other uses, see
2909: 2787: 2583: 2459: 2409: 1543: 1041: 997: 911: 881: 735: 575: 529: 49: 1106: 760: 2966: 2757: 2752: 2639: 2598: 2404: 1234: 993: 990:, Bob Flanders and Michael Holmes, published in PC Magazine 1994-01-11. 917: 497: 730:
compression channels feeding two physical compression engines. Linux,
1324: 1292: 859: 481: 387: 61: 27: 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
2880: 2725: 2382: 979: 465: 223: 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
2072: 1764: 1162: 1119:. This is a Silicon IP core supporting decompression of Deflate, 1083: 830: 491: 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:
673: 195:
The matching and replacement of duplicate strings with pointers.
2163: 1784:– an excellent algorithm to implement Deflate by Jesper Larsson 1567: 1158: 1154: 924:
machine language, written by Keir Fraser and released into the
921: 826: 822: 726:
and instead has multiple register sets to allow 32 independent
649: 556: 548: 876:
assembly language with optional memory paging support for the
578:. 3x faster than zlib -1. Useful for compressing genomic data. 179:
Most compressible data will end up being encoded using method
2998: 2603: 2196: 2143: 1037: 1015: 939: 804: 622: 571: 525: 519: 515: 501: 477: 437: 433: 401: 65: 1116: 770: 2153: 2007: 1992: 1982: 1496:"Plan 9 from Bell Labs's /n/sources/plan9/sys/src/libflate" 1407:"Binary Essence – "Calgary Corpus" compression comparisons" 1124: 1120: 1067: 1033: 1001: 963: 956: 952: 807: 778: 774: 693: 655: 586: 487: 421: 405: 340:{\displaystyle \left\lfloor {\frac {n}{2}}\right\rfloor -1} 212: 90: 160:
compressed block, complete with the Huffman table supplied
2128: 2094: 1676: 1610: 1127:
files. The ZipAccel-D IP core that can be implemented in
907: 903: 873: 379:(do not attempt compression, just store uncompressed) to 110: 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: 1233: 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 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. 3012: 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, 411: 1695: 1693: 1600: 1598: 845: 480:: the first implementation, originally done by 202: 68:archiving tool. Deflate was later specified in 1625: 1206:"flate package - compress/flate - Go Packages" 781:compression. ZipAccel-C can be implemented in 1809: 500:: contains a public-domain implementation in 394: 299:28–29: distances 16,385–32,768, 13 extra bits 1823: 1690: 1595: 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 1575: 191:Compression is achieved through two steps: 1816: 1802: 1790:– walk-through of a Deflate implementation 1203: 471: 1666: 1664: 1560: 1291: 920:, a fast and efficient implementation in 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 1272: 837: 123:: This is the last block in the stream. 3013: 1661: 1561:Mazzoleni, Andrea (21 February 2023). 1286:. p. 1. sec. Abstract. 1268: 1266: 1797: 1634: 1502:. Lucent Technologies. Archived from 1349:(4 ed.). Springer. p. 241. 1342: 1313: 1070:/zlib decompression, by David Manura. 362: 1443:"-m (Set compression Method) switch" 1319: 1090: 604: 1263: 13: 290:8–9: distances 17–32, 3 extra bits 14: 3037: 1716: 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 240: 104: 97:image files, in addition to the 3026:Lossless compression algorithms 1554: 1536: 1510: 1488: 1476: 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 1464: 1435: 1399: 1363: 1336: 1227: 1197: 1066:implementation of Deflate and 902:, written by Laurens Holst in 508:. The author, Wei Dai states " 424:library (under the permissive 1: 1191: 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 7: 1210:The Go Programming Language 1169: 636:for the AHA361-PCIX is an " 52:that uses a combination of 10: 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: 2959: 2943: 2861: 2786: 2718: 2709: 2632: 2566: 2557: 2458: 2375: 2366: 2282: 2230:Discrete cosine transform 2220: 2211: 2160:LZ77 + Huffman + context 2113: 2023: 1953: 1841: 1832: 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: 2715: 2594:Image resolution 2579:Coding tree unit 2564: 2563: 2373: 2372: 2218: 2217: 1839: 1838: 1825:Data compression 1818: 1811: 1804: 1795: 1794: 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: 1633: 1626: 1617: 1615: 1604: 1603: 1596: 1587: 1585: 1581: 1580: 1576: 1559: 1555: 1542: 1541: 1537: 1527: 1525: 1516: 1515: 1511: 1494: 1493: 1489: 1481: 1477: 1469: 1465: 1456: 1454: 1441: 1440: 1436: 1420: 1419: 1412: 1410: 1405: 1404: 1400: 1384: 1383: 1376: 1374: 1369: 1368: 1364: 1357: 1341: 1337: 1330: 1318: 1314: 1305: 1303: 1271: 1264: 1251: 1249: 1241: 1232: 1228: 1215: 1213: 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: 317: 313: 311: 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: 3029: 3028: 3023: 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: 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: 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: 1702: 1696: 1694: 1679: 1678: 1673: 1667: 1665: 1650: 1648:9780738458991 1644: 1640: 1639: 1631: 1629: 1613: 1612: 1607: 1601: 1599: 1584: 1578: 1570: 1569: 1564: 1557: 1549: 1545: 1539: 1523: 1519: 1513: 1505: 1501: 1497: 1491: 1485: 1479: 1473: 1467: 1453:on 2022-04-09 1452: 1448: 1444: 1438: 1430: 1424: 1408: 1402: 1394: 1388: 1372: 1366: 1358: 1352: 1348: 1347: 1339: 1326: 1322: 1316: 1302: 1299: 1294: 1289: 1285: 1281: 1280: 1275: 1269: 1267: 1259: 1247: 1240: 1236: 1230: 1223: 1211: 1207: 1200: 1196: 1187: 1184: 1182: 1179: 1177: 1174: 1173: 1164: 1160: 1156: 1152: 1148: 1145: 1142: 1138: 1134: 1130: 1126: 1122: 1118: 1114: 1111: 1108: 1105: 1102: 1098: 1095: 1094: 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: 843: 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: 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: 469: 467: 463: 459: 455: 450:java.util.zip 447: 443: 439: 435: 431: 427: 423: 419: 409: 407: 403: 392: 389: 384: 374: 370: 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 238: 235: 231: 229: 225: 220: 214: 210: 209:LZ77 and LZ78 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 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:.

Index

Deflation (disambiguation)
computing
lossless
data compression
file format
LZ77
Huffman coding
Phil Katz
PKZIP
RFC
patented
U.S. patent 5,051,745
PKWARE, Inc.
gzip
PNG
ZIP
bit
LZ77 and LZ78
LZSS
reference
KiB
Huffman coding
Huffman coding
canonical Huffman codes
run-length encoded
reference implementation
bitstream
7-Zip
zlib
C

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑