Knowledge

Deflate

Source đź“ť

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

Index

DEFLATE
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

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

↑