Knowledge

Lempel–Ziv–Welch

Source 📝

25: 3521: 3511: 445:. Five-bit codes are needed to give sufficient combinations to encompass this set of 27 values. The dictionary is initialized with these 27 values. As the dictionary grows, the codes must grow in width to accommodate the additional entries. A 5-bit code gives 2 = 32 possible combinations of bits, so when the 33rd dictionary word is created, the algorithm must switch at that point from 5-bit strings to 6-bit strings (for 2028:
if the previous match is "wiki" and current match is "pedia", then the LZAP encoder adds 5 new sequences to the dictionary: "wikip", "wikipe", "wikiped", "wikipedi", and "wikipedia", where the LZMW encoder adds only the one sequence "wikipedia". This eliminates some of the complexity of LZMW, at the price of adding more dictionary entries.
140:
the data as it is encoded. At each stage in compression, input bytes are gathered into a sequence until the next character would make a sequence with no code yet in the dictionary. The code for the sequence (without that character) is added to the output, and a new code (for the sequence with that character) is added to the dictionary.
153:
typically one greater than the clear code). The clear code lets the table be reinitialized after it fills up, which lets the encoding adapt to changing patterns in the input data. Smart encoders can monitor the compression efficiency and clear the table whenever the existing table no longer matches the input well.
2023:
LZMW (1985, by V. Miller, M. Wegman) – Searches input for the longest string already in the dictionary (the "current" match); adds the concatenation of the previous match with the current match to the dictionary. (Dictionary entries thus grow more rapidly; but this scheme is much more complicated to
353:
emit ω at the new width instead of the old width, so that to the decoder it looks like the width changes one code too early. This is called "early change"; it caused so much confusion that Adobe now allows both versions in PDF files, but includes an explicit flag in the header of each LZW-compressed
1712:
At each stage, the decoder receives a code X; it looks X up in the table and outputs the sequence χ it codes, and it conjectures χ + ? as the entry the encoder just added – because the encoder emitted X for χ precisely because χ + ? was not in the table, and the encoder goes ahead and adds
300:
iteration, and so its first character is the same as the first character of the current string), and updates the dictionary with the new string. The decoder then proceeds to the next input (which was already read in the previous iteration) and processes it as before, and so on until it has exhausted
139:
The scenario described by Welch's 1984 paper encodes sequences of 8-bit data as fixed-length 12-bit codes. The codes from 0 to 255 represent 1-character sequences consisting of the corresponding 8-bit character, and the codes 256 through 4095 are created in a dictionary for sequences encountered in
2027:
LZAP (1988, by James Storer) – modification of LZMW: instead of adding just the concatenation of the previous match with the current match to the dictionary, add the concatenations of the previous match with each initial substring of the current match ("AP" stands for "all prefixes"). For example,
1720:
This works as long as the codes received are in the decoder's dictionary, so that they can be decoded into sequences. What happens if the decoder receives a code Z that is not yet in its dictionary? Since the decoder is always just one code behind the encoder, Z can be in the encoder's dictionary
411:
at every stage, both in encoding and decoding the data. This example has been constructed to give reasonable compression on a very short message. In real text data, repetition is generally less pronounced, so longer input streams are typically necessary before the compression builds up efficiency.
201:
A dictionary is initialized to contain the single-character strings corresponding to all the possible input characters (and nothing else except the clear and stop codes if they're being used). The algorithm works by scanning through the input string for successively longer substrings until it finds
143:
The idea was quickly adapted to other situations. In an image based on a color table, for example, the natural character alphabet is the set of color table indexes, and in the 1980s, many images had small color tables (on the order of 16 colors). For such a reduced alphabet, the full 12-bit codes
341:
The decoder is always one code behind the encoder in building the table, so when it sees the code for ω, it generates an entry for code 2 − 1. Since this is the point where the encoder increases the code width, the decoder must increase the width here as well—at the point where it
148:
code was introduced: codes typically start one bit wider than the symbols being encoded, and as each code size is used up, the code width increases by 1 bit, up to some prescribed maximum (typically 12 bits). When the maximum code value is reached, encoding proceeds using the existing table, but
156:
Since codes are added in a manner determined by the data, the decoder mimics building the table as it sees the resulting codes. It is critical that the encoder and decoder agree on the variety of LZW used: the size of the alphabet, the maximum table size (and code width), whether variable-width
152:
Further refinements include reserving a code to indicate that the code table should be cleared and restored to its initial state (a "clear code", typically the first value immediately after the values for the individual alphabet characters), and a code to indicate the end of data (a "stop code",
390:
first"). In LSB-first packing, the first code is aligned so that the least significant bit of the code falls in the least significant bit of the first stream byte, and if the code has more than 8 bits, the high-order bits left over are aligned with the least significant bits of the next byte;
210:
In this way, successively longer strings are registered in the dictionary and available for subsequent encoding as single output values. The algorithm works best on data with repeated patterns, so the initial parts of a message see little compression. As the message grows, however, the
1812:
might seem unlikely, this pattern is fairly common when the input stream is characterized by significant repetition. In particular, long strings of a single character (which are common in the kinds of images LZW is often used to encode) repeatedly generate patterns of this sort.
309:
If variable-width codes are being used, the encoder and decoder must be careful to change the width at the same points in the encoded data so they don't disagree on boundaries between individual codes in the stream. In the standard version, the encoder increases the width from
206:
in the dictionary) is retrieved from the dictionary and sent to output, and the new string (including the last character) is added to the dictionary with the next available code. The last input character is then used as the next starting point to scan for substrings.
157:
encoding is used, initial code size, and whether to use the clear and stop codes (and what values they have). Most formats that employ LZW build this information into the format specification or provide explicit fields for them in a compression header for the data.
776:
Buffer input characters in a sequence ω until ω + next character is not in the dictionary. Emit the code for ω, and add ω + next character to the dictionary. Start buffering again with the next character. (The string to be encoded is "TOBEORNOTTOBEORTOBEORNOT#".)
282:
The decoding algorithm works by reading a value from the encoded input and outputting the corresponding string from the dictionary. However, the full dictionary is not needed, only the initial dictionary that contains single-character strings (and that is usually
2013:
Unisys's US patent on the LZW algorithm expired on June 20, 2003, 20 years after it had been filed. Patents that had been filed in the United Kingdom, France, Germany, Italy, Japan and Canada all expired in 2004, likewise 20 years after they had been filed.
453:. (Previously generated output is not affected by the code-width change, but once a 6-bit value is generated in the dictionary, it could conceivably be the next code emitted, so the width for subsequent output shifts to 6 bits to accommodate that.) 433:
is used to represent a stop code: a code outside the plaintext alphabet that triggers special handling. We arbitrarily assign these the values 1 through 26 for the letters, and 0 for the stop code '#'. (Most flavors of LZW would put the stop code
1241:
Using LZW has saved 29 bits out of 125, reducing the message by more than 23%. If the message were longer, then the dictionary words would begin to represent longer and longer sections of text, sending repeated words very compactly.
395:
significant bit falls in the MSB of the first stream byte, with overflow aligned with the MSB of the next byte; further codes are written with MSB going into the most significant bit not yet used in the current stream byte.
1821:
The simple scheme described above focuses on the LZW algorithm itself. Many applications apply further encoding to the sequence of output symbols. Some package the coded stream as printable characters using some form of
215:
tends asymptotically to the maximum (i.e., the compression factor or ratio improves on an increasing curve, and not linearly, approaching a theoretical maximum inside a limited time period rather than over infinite time).
365:
When the table is cleared in response to a clear code, both encoder and decoder change the code width after the clear code back to the initial code width, starting with the code immediately following the clear code.
391:
further codes are packed with LSB going into the least significant bit not yet used in the current stream byte, proceeding into further bytes as necessary. MSB-first packing aligns the first code so that its
287:
in the program, instead of sent with the encoded data). Instead, the full dictionary is rebuilt during the decoding process the following way: after decoding a value and outputting a string, the decoder
1994:
In 1993–94, and again in 1999, Unisys Corporation received widespread condemnation when it attempted to enforce licensing fees for LZW in GIF images. The 1993–1994 Unisys-CompuServe controversy (
2300: 119:
algorithm published by Lempel and Ziv in 1978. The algorithm is simple to implement and has the potential for very high throughput in hardware implementations. It is the algorithm of the
1717:
code Z that the decoder receives. So the decoder looks up Z, decodes it into the sequence ω and takes the first letter z and tacks it onto the end of χ as the next dictionary entry.
296:
decoded string (or the first character of current string, if the next one can't be decoded; since if the next value is unknown, then it must be the value added to the dictionary in
1830:. Such a coder estimates the probability distribution for the value of the next symbol, based on the observed frequencies of values so far. A standard entropy encoding such as 449:
code values, including those previously output with only five bits). Note that since the all-zero code 00000 is used, and is labeled "0", the 33rd dictionary entry is labeled
1805:) and emits the new code it just inserted. The argument above shows that whenever the decoder receives a code not in its dictionary, the situation must look like this. 1761:
So even though the Z code is not in the table, the decoder is able to infer the unknown sequence and adds χ + (the first character of χ) to the table as the value of Z.
2147: 1250:
To decode an LZW-compressed archive, one needs to know in advance the initial dictionary used, but additional entries can be reconstructed as they are always simply
374:
Since the codes emitted typically do not fall on byte boundaries, the encoder and decoder must agree on how codes are packed into bytes. The two common methods are
1963:
In addition to the above patents, Welch's 1983 patent also includes citations to several other patents that influenced it, including two 1980 Japanese patents (
1725:
generated it, when emitting the previous code X for χ. Thus Z codes some ω that is χ + ?, and the decoder can determine the unknown character as follows:
322:
is encountered that is not in the table (so that a code must be added for it) but the next available code in the table is 2 (the first code requiring
202:
one that is not in the dictionary. When such a string is found, the index for the string without the last character (i.e., the longest substring that
3560: 3565: 54: 2345: 1909: 3013: 2824: 1826:; this increases the encoded length and decreases the compression rate. Conversely, increased compression can often be achieved with an 2713: 438:
the data alphabet, but nothing in the basic algorithm requires that. The encoder and decoder only have to agree what value it has.)
3555: 3219: 3042: 2836: 2527: 2054: 3224: 2801: 2180: 2024:
implement.) Miller and Wegman also suggest deleting low-frequency entries from the dictionary when the dictionary fills up.
1861:
systems around 1986. It has since disappeared from many distributions, both because it infringed the LZW patent and because
2954: 3331: 3069: 3008: 2819: 2769: 2592: 2220: 2452: 2437: 2338: 2049: 1877:
as a part of the distribution. Several other popular compression utilities also used LZW or closely related methods.
76: 47: 3444: 354:
stream to indicate whether early change is being used. Of the graphics file formats that support LZW compression,
3454: 3292: 3143: 3062: 2856: 2006:, which in turn fostered an email exchange that eventually culminated in the creation of the patent-unencumbered 3427: 3047: 2841: 2629: 3524: 2560: 1747:
is the first character in the input stream after χ, and since ω is the string appearing immediately after χ,
3189: 3514: 3417: 2959: 2517: 2331: 2507: 2502: 407:
The following example illustrates the LZW algorithm in action, showing the status of the output and the
3449: 3376: 3214: 3194: 3138: 2796: 2587: 2390: 3550: 3459: 3400: 3326: 3174: 2764: 2759: 2614: 2457: 2069: 2007: 1846:
LZW compression became the first widely used universal data compression method on computers. A large
97: 37: 2305: 3464: 3037: 2831: 2167: 41: 33: 3405: 2776: 2663: 2619: 2432: 2415: 2405: 1823: 1729:
The decoder sees X and then Z, where X codes the sequence χ and Z codes some unknown sequence ω.
349:
Unfortunately, some early implementations of the encoding algorithm increase the code width and
3030: 2781: 2565: 2410: 2162: 2064: 212: 58: 3302: 399:
GIF files use LSB-first packing order. TIFF files and PDF files use MSB-first packing order.
3434: 1960:
by Welch, assigned to Sperry Corporation, later Unisys Corporation, filed on June 20, 1983.
379: 3118: 2580: 2542: 2363: 387: 1713:
it. But what is the missing letter? It is the first letter in the sequence coded by the
256:
Concatenate the previous string emitted to output with its first symbol. Call this string
8: 3349: 3240: 3199: 3184: 3153: 3148: 3057: 2964: 2897: 2866: 2851: 2634: 1936:
Corporation, filed on August 10, 1981. Two US patents were issued for the LZW algorithm:
1732:
The decoder knows that the encoder just added Z as a code for χ + some unknown character
334: + 1 bits), and then increases the code width so that the next code emitted is 3422: 3392: 3371: 3277: 3209: 3103: 2791: 2607: 2597: 2492: 2472: 2467: 2128: 1929: 3003: 3366: 3354: 3336: 3204: 3088: 3025: 2871: 2786: 2742: 2703: 2385: 2073: 1835: 1968: 3341: 3297: 3270: 3265: 3123: 3108: 3018: 2927: 2922: 2751: 2484: 2462: 2354: 2172: 2132: 2120: 1988: 1964: 1943: 1847: 408: 415:
The plaintext to be encoded (from an alphabet using only the capital letters) is:
3260: 3074: 2998: 2979: 2949: 2917: 2883: 2442: 2380: 3052: 2846: 2575: 2570: 2427: 2400: 2372: 2108: 1947: 1850:
text file can typically be compressed via LZW to about half its original size.
1831: 104: 2284: 2204: 1983: 1977: 1956: 1938: 1924: 1237:
Encoded length = (6 codes × 5 bits/code) + (11 codes × 6 bits/code) = 96 bits.
3544: 3359: 3307: 2974: 2969: 2944: 2876: 2497: 2395: 2294: 2176: 2044: 1919: 1893: 1251: 289: 116: 2124: 3480: 2447: 2422: 2323: 2228: 244:
Concatenate the previous string emitted to output with the first symbol of
2278: 3439: 3317: 3113: 2989: 2939: 2104: 284: 115:. It was published by Welch in 1984 as an improved implementation of the 112: 1922:
and other countries for LZW and similar algorithms. LZ78 was covered by
1765:
This situation occurs whenever the encoder encounters input of the form
3496: 3287: 3282: 3169: 3128: 2934: 1995: 1874: 144:
yielded poor compression unless the image was large, so the idea of a
108: 100: 1910:
Graphics Interchange Format § Unisys and LZW patent enforcement
421:
There are 26 symbols in the plaintext alphabet (the capital letters
3410: 3255: 2912: 2314: 1870: 1854: 124: 2290:
High speed data compression and decompression apparatus and method
3179: 2653: 2602: 1897: 1866: 456:
The initial dictionary, then, consists of the following entries:
326: + 1 bits). The encoder emits the code for ω at width 2693: 2315:
Shrink, Reduce, and Implode: The Legacy Zip Compression Methods
1999: 1933: 1915: 231:
Read the next encoded symbol: Is it encoded in the dictionary?
228:
Initialize the dictionary to contain all strings of length one.
169:
Initialize the dictionary to contain all strings of length one.
2148:"Compression of individual sequences via variable-rate coding" 1900:
for most text and color-table-based image data in PDF files.)
1838:
then uses shorter codes for values with higher probabilities.
3528: 3133: 2726: 2673: 2318: 791: 2683: 2537: 2522: 2512: 2081: 2077: 2059: 2031: 1885: 1862: 1858: 355: 224:
A high-level view of the decoding algorithm is shown here:
194:
followed by the next symbol in the input to the dictionary.
165:
A high-level view of the encoding algorithm is shown here:
120: 1884:
image format in 1987. It may also (optionally) be used in
2658: 2624: 1972: 1951: 1889: 1881: 1869:
algorithm, but as of 2008 at least FreeBSD includes both
442: 359: 128: 1865:
produced better compression ratios using the LZ77-based
1234:
Unencoded length = 25 symbols × 5 bits/symbol = 125 bits
1880:
LZW became very widely used when it became part of the
149:
new codes are not generated for addition to the table.
1987:(1977) from Klaus E. Holtz, and a 1981 German patent ( 2109:"A Technique for High-Performance Data Compression" 1857:, which became a more or less standard utility in 967:32 requires 6 bits, so for next output use 6 bits 1282: 1279: 1262: 785: 782: 176:in the dictionary that matches the current input. 3542: 2279:Rosettacode wiki, algorithm in various languages 1998:being the creator of the GIF format) prompted a 46:but its sources remain unclear because it lacks 2215: 2213: 1928:by Lempel, Ziv, Cohn, and Eastman, assigned to 1751:must be the first character of the sequence ω. 2339: 846:27 = first available code after 0 through 26 318: + 1 when a sequence ω +  16:Universal lossless data compression algorithm 2353: 2210: 2099: 2097: 2346: 2332: 1853:LZW was used in the public-domain program 2264:Data Compression – The complete reference 2251:Data Compression – The complete reference 2166: 2145: 2004:Thoughts on a GIF-replacement file format 77:Learn how and when to remove this message 2295:SharpLZW – C# open source implementation 2094: 1954:, originally filed on June 1, 1983, and 1432:created code 31 (last to fit in 5 bits) 1206:# stops the algorithm; send the cur seq 342:generates the largest code that fits in 2155:IEEE Transactions on Information Theory 1785:is not. The encoder emits the code for 441:A computer renders these as strings of 304: 278:Repeat Step 2 until end of input string 3561:Computer-related introductions in 1984 3543: 2310:on Dr. Dobbs Journal (October 1, 1989) 1758:must also be the first character of χ. 1754:Since χ is an initial substring of ω, 3566:Discovery and invention controversies 2327: 2103: 1892:files. (Although LZW is available in 1797:in the input (starting at the second 2317:explains LZW and how it was used in 18: 2034:is a syllable-based variant of LZW. 292:it with the first character of the 13: 1896:software, Acrobat by default uses 1793:into the dictionary. Next it sees 1781:is already in the dictionary, but 1585:next coded sequence received (BE) 330:(since that code does not require 14: 3577: 2272: 1816: 1458:so start reading input at 6 bits 3520: 3519: 3510: 3509: 369: 23: 3556:Lossless compression algorithms 2301:Lecture including LZW algorithm 2256: 2243: 2197: 2139: 1981:(1974) from John S. Hoerning, 237:Emit the corresponding string 179:Emit the dictionary index for 1: 2088: 1245: 771: 248:. Add this to the dictionary. 2146:Ziv, J.; Lempel, A. (1978). 1559:36 = TO + 1st symbol (B) of 134: 90:Lempel–Ziv–Welch 7: 2055:Lempel–Ziv–Storer–Szymanski 2038: 2017: 2010:(PNG) file format in 1995. 1991:) from Karl Eckhart Heinz. 267:to the dictionary and emit 219: 160: 10: 3582: 3401:Compressed data structures 2723:RLE + BWT + MTF + Huffman 2391:Asymmetric numeral systems 1907: 1903: 418:TOBEORNOTTOBEORTOBEORNOT# 402: 338: + 1 bits wide. 3505: 3489: 3473: 3391: 3316: 3248: 3239: 3162: 3096: 3087: 2988: 2905: 2896: 2812: 2760:Discrete cosine transform 2750: 2741: 2690:LZ77 + Huffman + context 2643: 2553: 2483: 2371: 2362: 2070:Discrete cosine transform 2008:Portable Network Graphics 2002:comp.graphics discussion 1789:, putting a new code for 1268: 1265: 1259: 794: 788: 358:uses early change, while 123:file compression utility 98:lossless data compression 3465:Smallest grammar problem 2227:. Unisys. Archived from 2221:"LZW Patent Information" 2177:10.1109/TIT.1978.1055934 1918:have been issued in the 1828:adaptive entropy encoder 172:Find the longest string 32:This article includes a 3406:Compressed suffix array 2955:Nyquist–Shannon theorem 2125:10.1109/MC.1984.1659158 1841: 1824:binary-to-text encoding 1808:Although input of form 1773:is a single character, 1254:of previous entries. 362:and most others don't. 61:more precise citations. 2065:Context tree weighting 3435:Kolmogorov complexity 3303:Video characteristics 2680:LZ77 + Huffman + ANS 2285:U.S. patent 4,558,302 2205:U.S. patent 4,558,302 1984:U.S. patent 4,366,551 1978:U.S. patent 4,021,782 1957:U.S. patent 4,558,302 1939:U.S. patent 4,814,746 1925:U.S. patent 4,464,650 1266:New Dictionary Entry 380:least significant bit 183:to output and remove 3525:Compression software 3119:Compression artifact 3075:Psychoacoustic model 2308:LZW Data Compression 2299:MIT OpenCourseWare: 2266:, 4th ed., page 212. 2253:, 4th ed., page 209. 1721:only if the encoder 792:Extended Dictionary 388:most significant bit 305:Variable-width codes 3515:Compression formats 3154:Texture compression 3149:Standard test image 2965:Silence compression 127:and is used in the 3423:Information theory 3278:Display resolution 3104:Chroma subsampling 2493:Byte pair encoding 2438:Shannon–Fano–Elias 2288:, Terry A. Welch, 2076:algorithm used in 1930:Sperry Corporation 1227:and the stop code 301:the input stream. 34:list of references 3538: 3537: 3387: 3386: 3337:Deblocking filter 3235: 3234: 3083: 3082: 2892: 2891: 2737: 2736: 2074:lossy compression 1836:arithmetic coding 1710: 1709: 1231: 1230: 783:Current Sequence 769: 768: 213:compression ratio 96:) is a universal 87: 86: 79: 3573: 3551:Data compression 3523: 3522: 3513: 3512: 3342:Lapped transform 3246: 3245: 3124:Image resolution 3109:Coding tree unit 3094: 3093: 2903: 2902: 2748: 2747: 2369: 2368: 2355:Data compression 2348: 2341: 2334: 2325: 2324: 2287: 2267: 2260: 2254: 2247: 2241: 2240: 2238: 2236: 2231:on June 26, 2009 2217: 2208: 2207: 2201: 2195: 2194: 2192: 2191: 2185: 2179:. Archived from 2170: 2152: 2143: 2137: 2136: 2101: 2084:coding standards 1986: 1980: 1975:'s Jun Kanatsu, 1959: 1950:and assigned to 1944:Victor S. Miller 1941: 1927: 1777:is a string and 1263:Output Sequence 1257: 1256: 1220: 1199: 1175: 1151: 1127: 1103: 1079: 1055: 1031: 1007: 983: 958: 934: 910: 886: 862: 837: 780: 779: 459: 458: 82: 75: 71: 68: 62: 57:this article by 48:inline citations 27: 26: 19: 3581: 3580: 3576: 3575: 3574: 3572: 3571: 3570: 3541: 3540: 3539: 3534: 3501: 3485: 3469: 3450:Rate–distortion 3383: 3312: 3231: 3158: 3079: 2984: 2980:Sub-band coding 2888: 2813:Predictive type 2808: 2733: 2700:LZSS + Huffman 2650:LZ77 + Huffman 2639: 2549: 2485:Dictionary type 2479: 2381:Adaptive coding 2358: 2352: 2283: 2275: 2270: 2262:David Salomon, 2261: 2257: 2249:David Salomon, 2248: 2244: 2234: 2232: 2219: 2218: 2211: 2203: 2202: 2198: 2189: 2187: 2183: 2150: 2144: 2140: 2102: 2095: 2091: 2041: 2020: 1982: 1976: 1955: 1937: 1923: 1912: 1906: 1844: 1819: 1248: 1218: 1197: 1173: 1149: 1125: 1101: 1077: 1053: 1029: 1005: 981: 956: 932: 908: 884: 860: 835: 774: 419: 405: 372: 307: 222: 187:from the input. 163: 137: 83: 72: 66: 63: 52: 38:related reading 28: 24: 17: 12: 11: 5: 3579: 3569: 3568: 3563: 3558: 3553: 3536: 3535: 3533: 3532: 3517: 3506: 3503: 3502: 3500: 3499: 3493: 3491: 3487: 3486: 3484: 3483: 3477: 3475: 3471: 3470: 3468: 3467: 3462: 3457: 3452: 3447: 3442: 3437: 3432: 3431: 3430: 3420: 3415: 3414: 3413: 3408: 3397: 3395: 3389: 3388: 3385: 3384: 3382: 3381: 3380: 3379: 3374: 3364: 3363: 3362: 3357: 3352: 3344: 3339: 3334: 3329: 3323: 3321: 3314: 3313: 3311: 3310: 3305: 3300: 3295: 3290: 3285: 3280: 3275: 3274: 3273: 3268: 3263: 3252: 3250: 3243: 3237: 3236: 3233: 3232: 3230: 3229: 3228: 3227: 3222: 3217: 3212: 3202: 3197: 3192: 3187: 3182: 3177: 3172: 3166: 3164: 3160: 3159: 3157: 3156: 3151: 3146: 3141: 3136: 3131: 3126: 3121: 3116: 3111: 3106: 3100: 3098: 3091: 3085: 3084: 3081: 3080: 3078: 3077: 3072: 3067: 3066: 3065: 3060: 3055: 3050: 3045: 3035: 3034: 3033: 3023: 3022: 3021: 3016: 3006: 3001: 2995: 2993: 2986: 2985: 2983: 2982: 2977: 2972: 2967: 2962: 2957: 2952: 2947: 2942: 2937: 2932: 2931: 2930: 2925: 2920: 2909: 2907: 2900: 2894: 2893: 2890: 2889: 2887: 2886: 2884:Psychoacoustic 2881: 2880: 2879: 2874: 2869: 2861: 2860: 2859: 2854: 2849: 2844: 2839: 2829: 2828: 2827: 2816: 2814: 2810: 2809: 2807: 2806: 2805: 2804: 2799: 2794: 2784: 2779: 2774: 2773: 2772: 2767: 2756: 2754: 2752:Transform type 2745: 2739: 2738: 2735: 2734: 2732: 2731: 2730: 2729: 2721: 2720: 2719: 2716: 2708: 2707: 2706: 2698: 2697: 2696: 2688: 2687: 2686: 2678: 2677: 2676: 2668: 2667: 2666: 2661: 2656: 2647: 2645: 2641: 2640: 2638: 2637: 2632: 2627: 2622: 2617: 2612: 2611: 2610: 2605: 2595: 2590: 2585: 2584: 2583: 2573: 2568: 2563: 2557: 2555: 2551: 2550: 2548: 2547: 2546: 2545: 2540: 2535: 2530: 2525: 2520: 2515: 2510: 2505: 2495: 2489: 2487: 2481: 2480: 2478: 2477: 2476: 2475: 2470: 2465: 2460: 2450: 2445: 2440: 2435: 2430: 2425: 2420: 2419: 2418: 2413: 2408: 2398: 2393: 2388: 2383: 2377: 2375: 2366: 2360: 2359: 2351: 2350: 2343: 2336: 2328: 2322: 2321: 2312: 2303: 2297: 2292: 2281: 2274: 2273:External links 2271: 2269: 2268: 2255: 2242: 2209: 2196: 2168:10.1.1.14.2892 2138: 2092: 2090: 2087: 2086: 2085: 2067: 2062: 2057: 2052: 2047: 2040: 2037: 2036: 2035: 2029: 2025: 2019: 2016: 1948:Mark N. Wegman 1908:Main article: 1905: 1902: 1843: 1840: 1832:Huffman coding 1818: 1817:Further coding 1815: 1763: 1762: 1759: 1752: 1741: 1730: 1708: 1707: 1705: 1703: 1701: 1699: 1697: 1694: 1691: 1687: 1686: 1684: 1681: 1678: 1675: 1672: 1669: 1666: 1662: 1661: 1659: 1656: 1653: 1650: 1647: 1644: 1641: 1637: 1636: 1634: 1631: 1628: 1625: 1622: 1619: 1616: 1612: 1611: 1609: 1606: 1603: 1600: 1597: 1594: 1591: 1587: 1586: 1583: 1580: 1577: 1574: 1571: 1568: 1565: 1561: 1560: 1557: 1554: 1551: 1548: 1545: 1542: 1539: 1535: 1534: 1532: 1529: 1526: 1523: 1520: 1517: 1514: 1510: 1509: 1507: 1504: 1501: 1498: 1495: 1492: 1489: 1485: 1484: 1482: 1479: 1476: 1473: 1470: 1467: 1464: 1460: 1459: 1456: 1453: 1450: 1447: 1444: 1441: 1438: 1434: 1433: 1430: 1427: 1424: 1421: 1418: 1415: 1412: 1408: 1407: 1405: 1402: 1399: 1396: 1393: 1390: 1387: 1383: 1382: 1380: 1377: 1374: 1371: 1368: 1365: 1362: 1358: 1357: 1355: 1352: 1349: 1346: 1343: 1340: 1337: 1333: 1332: 1330: 1327: 1324: 1321: 1318: 1315: 1312: 1308: 1307: 1305: 1302: 1299: 1297: 1295: 1292: 1289: 1285: 1284: 1281: 1278: 1275: 1271: 1270: 1267: 1264: 1261: 1252:concatenations 1247: 1244: 1239: 1238: 1235: 1229: 1228: 1225: 1223: 1221: 1216: 1213: 1211: 1208: 1207: 1204: 1202: 1200: 1195: 1192: 1189: 1185: 1184: 1182: 1179: 1176: 1171: 1168: 1165: 1161: 1160: 1158: 1155: 1152: 1147: 1144: 1141: 1137: 1136: 1134: 1131: 1128: 1123: 1120: 1117: 1113: 1112: 1110: 1107: 1104: 1099: 1096: 1093: 1089: 1088: 1086: 1083: 1080: 1075: 1072: 1069: 1065: 1064: 1062: 1059: 1056: 1051: 1048: 1045: 1041: 1040: 1038: 1035: 1032: 1027: 1024: 1021: 1017: 1016: 1014: 1011: 1008: 1003: 1000: 997: 993: 992: 990: 987: 984: 979: 976: 973: 969: 968: 965: 962: 959: 954: 951: 948: 944: 943: 941: 938: 935: 930: 927: 924: 920: 919: 917: 914: 911: 906: 903: 900: 896: 895: 893: 890: 887: 882: 879: 876: 872: 871: 869: 866: 863: 858: 855: 852: 848: 847: 844: 841: 838: 833: 830: 827: 823: 822: 820: 818: 816: 814: 812: 809: 805: 804: 801: 797: 796: 793: 790: 787: 784: 773: 770: 767: 766: 763: 760: 756: 755: 752: 749: 745: 744: 741: 738: 734: 733: 730: 727: 723: 722: 719: 716: 712: 711: 708: 705: 701: 700: 697: 694: 690: 689: 686: 683: 679: 678: 675: 672: 668: 667: 664: 661: 657: 656: 653: 650: 646: 645: 642: 639: 635: 634: 631: 628: 624: 623: 620: 617: 613: 612: 609: 606: 602: 601: 598: 595: 591: 590: 587: 584: 580: 579: 576: 573: 569: 568: 565: 562: 558: 557: 554: 551: 547: 546: 543: 540: 536: 535: 532: 529: 525: 524: 521: 518: 514: 513: 510: 507: 503: 502: 499: 496: 492: 491: 488: 485: 481: 480: 477: 474: 470: 469: 466: 463: 417: 404: 401: 371: 368: 306: 303: 280: 279: 276: 275: 274: 273: 272: 261: 251: 250: 249: 242: 229: 221: 218: 199: 198: 195: 188: 177: 170: 162: 159: 146:variable-width 136: 133: 131:image format. 105:Abraham Lempel 85: 84: 42:external links 31: 29: 22: 15: 9: 6: 4: 3: 2: 3578: 3567: 3564: 3562: 3559: 3557: 3554: 3552: 3549: 3548: 3546: 3530: 3526: 3518: 3516: 3508: 3507: 3504: 3498: 3495: 3494: 3492: 3488: 3482: 3479: 3478: 3476: 3472: 3466: 3463: 3461: 3458: 3456: 3453: 3451: 3448: 3446: 3443: 3441: 3438: 3436: 3433: 3429: 3426: 3425: 3424: 3421: 3419: 3416: 3412: 3409: 3407: 3404: 3403: 3402: 3399: 3398: 3396: 3394: 3390: 3378: 3375: 3373: 3370: 3369: 3368: 3365: 3361: 3358: 3356: 3353: 3351: 3348: 3347: 3345: 3343: 3340: 3338: 3335: 3333: 3330: 3328: 3325: 3324: 3322: 3319: 3315: 3309: 3308:Video quality 3306: 3304: 3301: 3299: 3296: 3294: 3291: 3289: 3286: 3284: 3281: 3279: 3276: 3272: 3269: 3267: 3264: 3262: 3259: 3258: 3257: 3254: 3253: 3251: 3247: 3244: 3242: 3238: 3226: 3223: 3221: 3218: 3216: 3213: 3211: 3208: 3207: 3206: 3203: 3201: 3198: 3196: 3193: 3191: 3188: 3186: 3183: 3181: 3178: 3176: 3173: 3171: 3168: 3167: 3165: 3161: 3155: 3152: 3150: 3147: 3145: 3142: 3140: 3137: 3135: 3132: 3130: 3127: 3125: 3122: 3120: 3117: 3115: 3112: 3110: 3107: 3105: 3102: 3101: 3099: 3095: 3092: 3090: 3086: 3076: 3073: 3071: 3068: 3064: 3061: 3059: 3056: 3054: 3051: 3049: 3046: 3044: 3041: 3040: 3039: 3036: 3032: 3029: 3028: 3027: 3024: 3020: 3017: 3015: 3012: 3011: 3010: 3007: 3005: 3002: 3000: 2997: 2996: 2994: 2991: 2987: 2981: 2978: 2976: 2975:Speech coding 2973: 2971: 2970:Sound quality 2968: 2966: 2963: 2961: 2958: 2956: 2953: 2951: 2948: 2946: 2945:Dynamic range 2943: 2941: 2938: 2936: 2933: 2929: 2926: 2924: 2921: 2919: 2916: 2915: 2914: 2911: 2910: 2908: 2904: 2901: 2899: 2895: 2885: 2882: 2878: 2875: 2873: 2870: 2868: 2865: 2864: 2862: 2858: 2855: 2853: 2850: 2848: 2845: 2843: 2840: 2838: 2835: 2834: 2833: 2830: 2826: 2823: 2822: 2821: 2818: 2817: 2815: 2811: 2803: 2800: 2798: 2795: 2793: 2790: 2789: 2788: 2785: 2783: 2780: 2778: 2775: 2771: 2768: 2766: 2763: 2762: 2761: 2758: 2757: 2755: 2753: 2749: 2746: 2744: 2740: 2728: 2725: 2724: 2722: 2717: 2715: 2712: 2711: 2710:LZ77 + Range 2709: 2705: 2702: 2701: 2699: 2695: 2692: 2691: 2689: 2685: 2682: 2681: 2679: 2675: 2672: 2671: 2669: 2665: 2662: 2660: 2657: 2655: 2652: 2651: 2649: 2648: 2646: 2642: 2636: 2633: 2631: 2628: 2626: 2623: 2621: 2618: 2616: 2613: 2609: 2606: 2604: 2601: 2600: 2599: 2596: 2594: 2591: 2589: 2586: 2582: 2579: 2578: 2577: 2574: 2572: 2569: 2567: 2564: 2562: 2559: 2558: 2556: 2552: 2544: 2541: 2539: 2536: 2534: 2531: 2529: 2526: 2524: 2521: 2519: 2516: 2514: 2511: 2509: 2506: 2504: 2501: 2500: 2499: 2496: 2494: 2491: 2490: 2488: 2486: 2482: 2474: 2471: 2469: 2466: 2464: 2461: 2459: 2456: 2455: 2454: 2451: 2449: 2446: 2444: 2441: 2439: 2436: 2434: 2431: 2429: 2426: 2424: 2421: 2417: 2414: 2412: 2409: 2407: 2404: 2403: 2402: 2399: 2397: 2394: 2392: 2389: 2387: 2384: 2382: 2379: 2378: 2376: 2374: 2370: 2367: 2365: 2361: 2356: 2349: 2344: 2342: 2337: 2335: 2330: 2329: 2326: 2320: 2316: 2313: 2311: 2309: 2306:Mark Nelson, 2304: 2302: 2298: 2296: 2293: 2291: 2286: 2282: 2280: 2277: 2276: 2265: 2259: 2252: 2246: 2230: 2226: 2222: 2216: 2214: 2206: 2200: 2186:on 2012-04-12 2182: 2178: 2174: 2169: 2164: 2160: 2156: 2149: 2142: 2134: 2130: 2126: 2122: 2118: 2114: 2110: 2106: 2100: 2098: 2093: 2083: 2079: 2075: 2071: 2068: 2066: 2063: 2061: 2058: 2056: 2053: 2051: 2048: 2046: 2045:LZ77 and LZ78 2043: 2042: 2033: 2030: 2026: 2022: 2021: 2015: 2011: 2009: 2005: 2001: 1997: 1992: 1990: 1989:DE19813118676 1985: 1979: 1974: 1970: 1966: 1961: 1958: 1953: 1949: 1945: 1940: 1935: 1931: 1926: 1921: 1920:United States 1917: 1911: 1901: 1899: 1895: 1894:Adobe Acrobat 1891: 1887: 1883: 1878: 1876: 1872: 1868: 1864: 1860: 1856: 1851: 1849: 1839: 1837: 1833: 1829: 1825: 1814: 1811: 1806: 1804: 1800: 1796: 1792: 1788: 1784: 1780: 1776: 1772: 1768: 1760: 1757: 1753: 1750: 1746: 1742: 1739: 1736:, so ω = χ + 1735: 1731: 1728: 1727: 1726: 1724: 1718: 1716: 1706: 1704: 1702: 1700: 1698: 1695: 1692: 1689: 1688: 1685: 1682: 1679: 1676: 1673: 1670: 1667: 1664: 1663: 1660: 1657: 1654: 1651: 1648: 1645: 1642: 1639: 1638: 1635: 1632: 1629: 1626: 1623: 1620: 1617: 1614: 1613: 1610: 1607: 1604: 1601: 1598: 1595: 1592: 1589: 1588: 1584: 1581: 1578: 1575: 1572: 1569: 1566: 1563: 1562: 1558: 1555: 1552: 1549: 1546: 1543: 1540: 1537: 1536: 1533: 1530: 1527: 1524: 1521: 1518: 1515: 1512: 1511: 1508: 1505: 1502: 1499: 1496: 1493: 1490: 1487: 1486: 1483: 1480: 1477: 1474: 1471: 1468: 1465: 1462: 1461: 1457: 1454: 1451: 1448: 1445: 1442: 1439: 1436: 1435: 1431: 1428: 1425: 1422: 1419: 1416: 1413: 1410: 1409: 1406: 1403: 1400: 1397: 1394: 1391: 1388: 1385: 1384: 1381: 1378: 1375: 1372: 1369: 1366: 1363: 1360: 1359: 1356: 1353: 1350: 1347: 1344: 1341: 1338: 1335: 1334: 1331: 1328: 1325: 1322: 1319: 1316: 1313: 1310: 1309: 1306: 1303: 1300: 1298: 1296: 1293: 1290: 1287: 1286: 1276: 1273: 1272: 1258: 1255: 1253: 1243: 1236: 1233: 1232: 1226: 1224: 1222: 1217: 1214: 1212: 1210: 1209: 1205: 1203: 1201: 1196: 1193: 1190: 1187: 1186: 1183: 1180: 1177: 1172: 1169: 1166: 1163: 1162: 1159: 1156: 1153: 1148: 1145: 1142: 1139: 1138: 1135: 1132: 1129: 1124: 1121: 1118: 1115: 1114: 1111: 1108: 1105: 1100: 1097: 1094: 1091: 1090: 1087: 1084: 1081: 1076: 1073: 1070: 1067: 1066: 1063: 1060: 1057: 1052: 1049: 1046: 1043: 1042: 1039: 1036: 1033: 1028: 1025: 1022: 1019: 1018: 1015: 1012: 1009: 1004: 1001: 998: 995: 994: 991: 988: 985: 980: 977: 974: 971: 970: 966: 963: 960: 955: 952: 949: 946: 945: 942: 939: 936: 931: 928: 925: 922: 921: 918: 915: 912: 907: 904: 901: 898: 897: 894: 891: 888: 883: 880: 877: 874: 873: 870: 867: 864: 859: 856: 853: 850: 849: 845: 842: 839: 834: 831: 828: 825: 824: 821: 819: 817: 815: 813: 810: 807: 806: 802: 799: 798: 781: 778: 764: 761: 758: 757: 753: 750: 747: 746: 742: 739: 736: 735: 731: 728: 725: 724: 720: 717: 714: 713: 709: 706: 703: 702: 698: 695: 692: 691: 687: 684: 681: 680: 676: 673: 670: 669: 665: 662: 659: 658: 654: 651: 648: 647: 643: 640: 637: 636: 632: 629: 626: 625: 621: 618: 615: 614: 610: 607: 604: 603: 599: 596: 593: 592: 588: 585: 582: 581: 577: 574: 571: 570: 566: 563: 560: 559: 555: 552: 549: 548: 544: 541: 538: 537: 533: 530: 527: 526: 522: 519: 516: 515: 511: 508: 505: 504: 500: 497: 494: 493: 489: 486: 483: 482: 478: 475: 472: 471: 467: 464: 461: 460: 457: 454: 452: 448: 444: 439: 437: 432: 428: 424: 416: 413: 410: 400: 397: 394: 389: 385: 381: 377: 370:Packing order 367: 363: 361: 357: 352: 347: 345: 339: 337: 333: 329: 325: 321: 317: 313: 302: 299: 295: 291: 286: 277: 270: 266: 262: 259: 255: 254: 252: 247: 243: 240: 236: 235: 233: 232: 230: 227: 226: 225: 217: 214: 208: 205: 197:Go to Step 2. 196: 193: 189: 186: 182: 178: 175: 171: 168: 167: 166: 158: 154: 150: 147: 141: 132: 130: 126: 122: 118: 114: 110: 106: 102: 99: 95: 91: 81: 78: 70: 60: 56: 50: 49: 43: 39: 35: 30: 21: 20: 3481:Hutter Prize 3445:Quantization 3350:Compensation 3144:Quantization 2867:Compensation 2532: 2433:Shannon–Fano 2373:Entropy type 2307: 2289: 2263: 2258: 2250: 2245: 2233:. Retrieved 2229:the original 2225:About Unisys 2224: 2199: 2188:. Retrieved 2181:the original 2158: 2154: 2141: 2116: 2112: 2105:Welch, Terry 2012: 2003: 1993: 1962: 1913: 1879: 1852: 1845: 1827: 1820: 1809: 1807: 1802: 1798: 1794: 1790: 1786: 1782: 1778: 1774: 1770: 1766: 1764: 1755: 1748: 1744: 1737: 1733: 1722: 1719: 1714: 1711: 1249: 1240: 775: 455: 450: 446: 440: 435: 430: 426: 422: 420: 414: 406: 398: 392: 383: 382:first") and 375: 373: 364: 350: 348: 343: 340: 335: 331: 327: 323: 319: 315: 311: 308: 297: 293: 290:concatenates 281: 268: 264: 257: 245: 238: 223: 209: 203: 200: 191: 184: 180: 173: 164: 155: 151: 145: 142: 138: 93: 89: 88: 73: 64: 53:Please help 45: 3440:Prefix code 3293:Frame types 3114:Color space 2940:Convolution 2670:LZ77 + ANS 2581:Incremental 2554:Other types 2473:Levenshtein 2119:(6): 8–19. 1969:JP17790880A 1283:Conjecture 113:Terry Welch 103:created by 67:August 2017 59:introducing 3545:Categories 3497:Mark Adler 3455:Redundancy 3372:Daubechies 3355:Estimation 3288:Frame rate 3210:Daubechies 3170:Chain code 3129:Macroblock 2935:Companding 2872:Estimation 2792:Daubechies 2498:Lempel–Ziv 2458:Exp-Golomb 2386:Arithmetic 2190:2009-03-03 2161:(5): 530. 2089:References 1996:CompuServe 1965:JP9343880A 1875:uncompress 786:Next Char 409:dictionary 285:hard coded 271:to output. 241:to output. 3474:Community 3298:Interlace 2684:Zstandard 2463:Fibonacci 2453:Universal 2411:Canonical 2163:CiteSeerX 2072:(DCT), a 1269:Comments 795:Comments 384:MSB-first 376:LSB-first 135:Algorithm 109:Jacob Ziv 101:algorithm 3460:Symmetry 3428:Timeline 3411:FM-index 3256:Bit rate 3249:Concepts 3097:Concepts 2960:Sampling 2913:Bit rate 2906:Concepts 2608:Sequitur 2443:Tunstall 2416:Modified 2406:Adaptive 2364:Lossless 2235:March 6, 2113:Computer 2107:(1984). 2039:See also 2018:Variants 1932:, later 1914:Various 1871:compress 1855:compress 1769:, where 1246:Decoding 772:Encoding 468:Decimal 425:through 220:Decoding 161:Encoding 125:compress 3418:Entropy 3367:Wavelet 3346:Motion 3205:Wavelet 3185:Fractal 3180:Deflate 3163:Methods 2950:Latency 2863:Motion 2787:Wavelet 2704:LHA/LZH 2654:Deflate 2603:Re-Pair 2598:Grammar 2428:Shannon 2401:Huffman 2357:methods 2133:2055321 1971:) from 1916:patents 1904:Patents 1898:DEFLATE 1867:DEFLATE 1848:English 789:Output 403:Example 55:improve 3529:codecs 3490:People 3393:Theory 3360:Vector 2877:Vector 2694:Brotli 2644:Hybrid 2543:Snappy 2396:Golomb 2165:  2131:  2000:Usenet 1934:Unisys 1743:Since 1690:000000 1665:100010 1640:100000 1615:011110 1590:100100 1564:011111 1538:011101 1513:011011 1488:010100 1463:001111 1437:001110 1260:Input 1219:000000 1198:100010 1174:100000 1150:011110 1126:100100 1102:011111 1078:011101 1054:011011 1030:010100 1006:001111 982:001110 465:Binary 462:Symbol 346:bits. 111:, and 3320:parts 3318:Codec 3283:Frame 3241:Video 3225:SPIHT 3134:Pixel 3089:Image 3043:ACELP 3014:ADPCM 3004:μ-law 2999:A-law 2992:parts 2990:Codec 2898:Audio 2837:ACELP 2825:ADPCM 2802:SPIHT 2743:Lossy 2727:bzip2 2718:LZHAM 2674:LZFSE 2576:Delta 2468:Gamma 2448:Unary 2423:Range 2319:PKZIP 2184:(PDF) 2151:(PDF) 2129:S2CID 1810:cScSc 1803:cScSc 1767:cScSc 1627:TOBE 1411:10010 1386:01111 1361:00101 1336:00010 1311:01111 1288:10100 1280:Full 1277:Code 957:10010 933:01111 909:00101 885:00010 861:01111 836:10100 808:NULL 803:Bits 762:11010 751:11001 740:11000 729:10111 718:10110 707:10101 696:10100 685:10011 674:10010 663:10001 652:10000 641:01111 630:01110 619:01101 608:01100 597:01011 586:01010 575:01001 564:01000 553:00111 542:00110 531:00101 520:00100 509:00011 498:00010 487:00001 476:00000 436:after 234:Yes: 40:, or 3332:DPCM 3139:PSNR 3070:MDCT 3063:WLPC 3048:CELP 3009:DPCM 2857:WLPC 2842:CELP 2820:DPCM 2770:MDCT 2714:LZMA 2615:LDCT 2593:DPCM 2538:LZWL 2528:LZSS 2523:LZRW 2513:LZJB 2237:2014 2082:MPEG 2080:and 2078:JPEG 2060:LZJB 2050:LZMA 2032:LZWL 1967:and 1946:and 1888:and 1886:TIFF 1873:and 1863:gzip 1859:Unix 1842:Uses 1723:just 1715:next 1680:42: 1677:RNO 1674:41: 1655:41: 1652:EOR 1649:40: 1630:40: 1624:39: 1608:TOB? 1605:39: 1602:ORT 1599:38: 1596:TOB 1582:OR? 1579:38: 1576:BEO 1573:37: 1556:BE? 1553:37: 1550:TOB 1547:36: 1528:36: 1522:35: 1503:35: 1497:34: 1478:34: 1472:33: 1452:33: 1446:32: 1426:32: 1420:31: 1401:31: 1395:30: 1376:30: 1370:29: 1351:29: 1345:28: 1326:28: 1320:27: 1301:27: 1274:Bits 1178:41: 1154:40: 1133:TOBE 1130:39: 1116:TOB 1106:38: 1082:37: 1058:36: 1034:35: 1010:34: 986:33: 961:32: 937:31: 913:30: 889:29: 865:28: 840:27: 800:Code 443:bits 429:). 393:most 356:TIFF 351:then 298:this 294:next 263:Add 253:No: 190:Add 121:Unix 117:LZ78 3377:DWT 3327:DCT 3271:VBR 3266:CBR 3261:ABR 3220:EZW 3215:DWT 3200:RLE 3190:KLT 3175:DCT 3058:LSP 3053:LAR 3038:LPC 3031:FFT 2928:VBR 2923:CBR 2918:ABR 2852:LSP 2847:LAR 2832:LPC 2797:DWT 2782:FFT 2777:DST 2765:DCT 2664:LZS 2659:LZX 2635:RLE 2630:PPM 2625:PAQ 2620:MTF 2588:DMC 2566:CTW 2561:BWT 2533:LZW 2518:LZO 2508:LZ4 2503:842 2173:doi 2121:doi 1973:NEC 1952:IBM 1942:by 1890:PDF 1882:GIF 1834:or 1801:of 1795:cSc 1791:cSc 1783:cSc 1683:OT? 1671:OT 1668:34 1658:RN? 1646:RN 1643:32 1633:EO? 1621:EO 1618:30 1593:36 1570:OR 1567:31 1544:BE 1541:29 1531:TO? 1525:TT 1519:TO 1516:27 1500:OT 1491:20 1475:NO 1466:15 1455:N? 1449:RN 1440:14 1429:R? 1423:OR 1414:18 1398:EO 1389:15 1373:BE 1348:OB 1323:TO 1314:15 1291:20 1188:OT 1181:RNO 1164:RN 1157:EOR 1140:EO 1109:ORT 1092:OR 1085:BEO 1068:BE 1061:TOB 1044:TO 964:RN 843:TO 765:26 754:25 743:24 732:23 721:22 710:21 699:20 688:19 677:18 666:17 655:16 644:15 633:14 622:13 611:12 600:11 589:10 447:all 360:GIF 314:to 129:GIF 94:LZW 3547:: 3195:LP 3026:FT 3019:DM 2571:CM 2223:. 2212:^ 2171:. 2159:24 2157:. 2153:. 2127:. 2117:17 2115:. 2111:. 2096:^ 1787:cS 1779:cS 1696:# 1693:0 1506:T? 1494:T 1481:O? 1469:O 1443:N 1417:R 1404:O? 1392:O 1379:E? 1367:E 1364:5 1354:B? 1342:B 1339:2 1329:O? 1317:O 1304:T? 1294:T 1194:34 1191:# 1170:32 1167:O 1146:30 1143:R 1122:36 1119:E 1098:31 1095:T 1074:29 1071:O 1050:27 1047:B 1037:TT 1026:20 1023:T 1020:T 1013:OT 1002:15 999:T 996:O 989:NO 978:14 975:O 972:N 953:18 950:N 947:R 940:OR 929:15 926:R 923:O 916:EO 902:O 899:E 892:BE 878:E 875:B 868:OB 857:15 854:B 851:O 832:20 829:O 826:T 578:9 567:8 556:7 545:6 534:5 523:4 512:3 501:2 490:1 479:0 451:32 386:(" 378:(" 204:is 107:, 44:, 36:, 3531:) 3527:( 2347:e 2340:t 2333:v 2239:. 2193:. 2175:: 2135:. 2123:: 1799:c 1775:S 1771:c 1756:c 1749:c 1745:c 1740:. 1738:c 1734:c 1215:0 905:5 881:2 811:T 759:Z 748:Y 737:X 726:W 715:V 704:U 693:T 682:S 671:R 660:Q 649:P 638:O 627:N 616:M 605:L 594:K 583:J 572:I 561:H 550:G 539:F 528:E 517:D 506:C 495:B 484:A 473:# 431:# 427:Z 423:A 344:p 336:p 332:p 328:p 324:p 320:s 316:p 312:p 269:V 265:V 260:. 258:V 246:W 239:W 192:W 185:W 181:W 174:W 92:( 80:) 74:( 69:) 65:( 51:.

Index

list of references
related reading
external links
inline citations
improve
introducing
Learn how and when to remove this message
lossless data compression
algorithm
Abraham Lempel
Jacob Ziv
Terry Welch
LZ78
Unix
compress
GIF
compression ratio
hard coded
concatenates
TIFF
GIF
least significant bit
most significant bit
dictionary
bits
concatenations
binary-to-text encoding
Huffman coding
arithmetic coding
English

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