Knowledge

Lempel–Ziv–Welch

Source 📝

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

Index

LZW (algorithm)
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

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