Knowledge

Lempel–Ziv–Markov chain algorithm

Source 📝

5106: 5096: 3894: 3884: 3874: 700: 43: 2074:(up to 4, from the LZMA header or LZMA2 properties packet) least significant bits of the dictionary position (the number of bytes coded since the last dictionary reset modulo the dictionary size). Note that the dictionary size is normally the multiple of a large power of 2, so these values are equivalently described as the least significant bits of the number of uncompressed bytes seen since the last dictionary reset. 84: 131: 265:, using a complex model to make a probability prediction of each bit. The dictionary compressor finds matches using sophisticated dictionary data structures, and produces a stream of literal symbols and phrase references, which is encoded one bit at a time by the range encoder: many encodings are possible, and a 273:
the bitfields in each representation of a literal or phrase: this is nearly as simple as a generic byte-based model, but gives much better compression because it avoids mixing unrelated bits together in the same context. Furthermore, compared to classic dictionary compression (such as the one used in
3207:
LZMA2 is a modified version of LZMA that offers a better compression ratio for uncompressible data (random data expands about 0.005%, compared to 1.35% with original LZMA), and optionally can compress multiple parts of large files in parallel, greatly increasing compression speed but with a possible
2106:
is an array of 8 values in the 0–2 range, one for each bit position in a byte, which are 1 or 2 if the previous packet was a *MATCH and it is either the most significant bit position or all the more significant bits in the literal to encode/decode are equal to the bits in the corresponding positions
1642:
In the 7-zip LZMA file format, configuration is performed by a header containing the "properties" byte followed by the 32-bit little-endian dictionary size in bytes. In LZMA2, the properties byte can optionally be changed at the start of LZMA2 LZMA packets, while the dictionary size is specified in
289:
In LZMA compression, the compressed stream is a stream of bits, encoded using an adaptive binary range coder. The stream is divided into packets, each packet describing either a single byte, or an LZ77 sequence with its length and distance implicitly or explicitly encoded. Each part of each packet
272:
Prior to LZMA, most encoder models were purely byte-based (i.e. they coded each bit using only a cascade of contexts to represent the dependencies on previous bits from the same byte). The main innovation of LZMA is that instead of a generic byte-based model, LZMA's model uses contexts specific to
440:
The distance encoding starts with a 6-bit "distance slot", which determines how many further bits are needed. Distances are decoded as a binary concatenation of, from most to least significant, two bits depending on the distance slot, some bits encoded with fixed 0.5 probability, and some context
1466:
Non-reverse bit-tree decoding works by keeping a pointer to the tree of variables, which starts at the root. As long as the pointer does not point to a leaf, a bit is decoded using the variable indicated by the pointer, and the pointer is moved to either the left or right children depending on
244:
is a simple container format that can include both uncompressed data and LZMA data, possibly with multiple different LZMA encoding parameters. LZMA2 supports arbitrarily scalable multithreaded compression and decompression and efficient compression of data which is partially incompressible.
763:
Embedded decoder by Lasse Collin included in the Linux kernel source from which the LZMA and LZMA2 algorithm details can be relatively easily deduced: thus, while citing source code as reference is not ideal, any programmer should be able to check the claims below with a few hours of work.
2557:
The LZMA2 container supports multiple runs of compressed LZMA data and uncompressed data. Each LZMA compressed run can have a different LZMA configuration and dictionary. This improves the compression of partially or completely incompressible files and allows multithreaded compression and
391:
LONGREP packets remove the distance used from the list of the most recent distances and reinsert it at the front, to avoid useless repeated entry, while MATCH just adds the distance to the front even if already present in the list and SHORTREP and LONGREP don't alter the list.
290:
is modeled with independent contexts, so the probability predictions for each bit are correlated with the values of that bit (and related bits from the same field) in previous packets of the same type. Both the lzip and the LZMA SDK documentation describes this stream format.
1474:
Reverse bit-tree decoding instead decodes from least significant bit to most significant bits, and thus only supports ranges that are powers of two, and always decodes the same number of bits. It is equivalent to performing non-reverse bittree decoding with a power of two
2558:
multithreaded decompression by breaking the file into runs that can be compressed or decompressed independently in parallel. Criticism of LZMA2's changes over LZMA include header fields not being covered by CRCs, and parallel decompression not being possible in practice.
1470:
Non-reverse bit-tree decoding thus happens from most significant to least significant bit, stopping when only one value in the valid range is possible (this conceptually allows to have range sizes that are not powers of two, even though LZMA does not make use of this).
1662:
value is conceptually based on which of the patterns in the following table match the latest 2–4 packet types seen, and is implemented as a state machine state updated according to the transition table listed in the table every time a packet is output.
1446:
The range decoder also provides the bit-tree, reverse bit-tree and fixed probability integer decoding facilities, which are used to decode integers, and generalize the single-bit decoding described above. To decode unsigned integers less than
1651:
The LZMA packet format has already been described, and this section specifies how LZMA statistically models the LZ-encoded streams, or in other words which probability variables are passed to the range decoder to decode each bit.
2099:
value is the byte that would have been decoded if a SHORTREP packet had been used (in other words, the byte found at the dictionary at the last used distance); it is only used just after a *MATCH packet.
2876:
LZHAM (LZ, Huffman, Arithmetic, Markov), is an LZMA-like implementation that trades compression throughput for very high ratios and higher decompression throughput. It was placed by its author in the
986: 2780:
used during compression. Small code size and relatively low memory overhead, particularly with smaller dictionary lengths, and free source code make the LZMA decompression algorithm well-suited to
1084: 1203: 779:(typically implemented using a 16-bit data type) representing the predicted probability of the bit being 0, which is read and updated by the range decoder (and should be initialized to 1655:
Those probability variables are implemented as multi-dimensional arrays; before introducing them, a few values that are used as indices in these multidimensional arrays are defined.
1307: 1514:
added to the conceptual value), and the variable at index 0 in the array is unused, while the one at index 1 is the root, and the left and right children indices are computed as 2
434:
As in LZ77, the length is not limited by the distance, because copying from the dictionary is defined as if the copy was performed byte by byte, keeping the distance constant.
2845:: another LZMA implementation mostly for Unix-like systems to be directly competing with xz. It mainly features a simpler file format and therefore easier error recovery. 2776:
Decompression-only code for LZMA generally compiles to around 5 KB, and the amount of RAM required during decompression is principally determined by the size of the
2118:
The literal/Literal set of variables can be seen as a "pseudo-bit-tree" similar to a bit-tree but with 3 variables instead of 1 in every node, chosen depending on the
56: 2944:- LZMA Unix Port was finally replaced by xz which features better and faster compression; from here we know even LZMA Unix Port was a lot better than gzip and bzip2. 1422:
and floor operation is done before the multiplication, not after (apparently to avoid requiring fast hardware support for 32-bit multiplication with a 64-bit result)
1414: 1250: 907: 806: 2129:
is incorrect; they are instead coded simply as their byte value, but using the pseudo-bit-tree just described and the additional context listed in the table below.
2708:
LZMA2 compression, which is an improved version of LZMA, is now the default compression method for the .7z format, starting with version 9.30 on October 26, 2012.
2660:
The LZMA compressed data, starting with the 5 bytes (of which the first is ignored) used to initialize the range coder (which are included in the compressed size)
105: 2594:
0x80–0xff denotes an LZMA chunk, where the lowest 5 bits are used as bit 16–20 of the uncompressed size minus one, and bit 5–6 indicates what should be reset
2955: 2904: 775:
Context-based range decoding is invoked by the LZMA algorithm passing it a reference to the "context", which consists of the unsigned 11-bit variable
3389:
LZHAM is a lossless data compression codec written in C/C++ with a compression ratio similar to LZMA but with 1.5–8 times faster decompression speed.
1541:
Fixed probability integer decoding simply performs fixed probability bit decoding repeatedly, reading bits from the most to the least significant.
281:
formats), the dictionary sizes can be and usually are much larger, taking advantage of the large amount of memory available on modern systems.
62: 3930: 839:
to the 32-bit value starting at the second byte in the stream interpreted as big-endian; the first byte in the stream is completely ignored.
2677:, while the .7z file format, which can contain either LZMA or LZMA2 data, is documented in the 7zformat.txt file contained in the LZMA SDK. 4598: 4409: 813:
Fixed probability range decoding instead assumes a 0.5 probability, but operates slightly differently from context-based range decoding.
756:
No complete natural language specification of the compressed format seems to exist, other than the one attempted in the following text.
1583:
is the number of high bits of the previous byte to use as a context for literal encoding (the default value used by the LZMA SDK is 3)
92: 3460: 5140: 4804: 4627: 4421: 4112: 4809: 4386: 1459:
11-bit probability variables is provided, which are conceptually arranged as the internal nodes of a complete binary tree with
2895: 1372:
unconditionally. The resulting sign bit is used to both decide the bit to return and to generate a mask that is combined with
3104: 923: 2803:-like command line tool, supporting both LZMA and LZMA2 in its xz file format. It made its way into several software of the 4539: 717: 148: 261:
with huge dictionary sizes and special support for repeatedly used match distances), whose output is then encoded with a
2111:, while otherwise it is 0; the choice between the 1 or 2 values depends on the value of the bit at the same position in 4916: 4654: 4593: 4404: 4354: 4177: 1026: 772:
LZMA data is at the lowest level decoded one bit at a time by the range decoder, at the direction of the LZMA decoder.
388:
LONGREP refers to LONGREP packets, *REP refers to both LONGREP and SHORTREP, and *MATCH refers to both MATCH and *REP.
141: 4037: 4022: 3923: 2690: 1143: 743: 173: 70: 3428: 2085:(up to 4, from the LZMA header or LZMA2 properties packet) most significant bits of the previous uncompressed byte. 725: 5029: 5039: 4877: 4728: 4647: 4441: 5012: 4632: 4426: 4214: 3791: 2864: 2724: 1538:
is implicitly represented by its logarithm, and has its own independent implementation for efficiency reasons.
1467:
whether the bit is 0 or 1; when the pointer points to a leaf, the number associated with the leaf is returned.
710: 2963: 2908: 5109: 4145: 3877: 3453: 2736: 2732: 1266: 4774: 5099: 5002: 4544: 4102: 3916: 3605: 3284: 2125:
The claim, found in some sources, that literals after a *MATCH are coded as the XOR of the byte value with
5145: 4092: 4087: 3559: 2773:(for images) and BCJ for executable code. It also provides some other compression algorithms used in 7z. 2728: 437:
Distances are logically 32-bit and distance 0 points to the most recently added byte in the dictionary.
5034: 4961: 4799: 4779: 4723: 4381: 4172: 3975: 3854: 2744: 238:), while still maintaining decompression speed similar to other commonly used compression algorithms. 5135: 5044: 4985: 4911: 4759: 4349: 4344: 4199: 4042: 3828: 3195: 2836: 2740: 199: 31: 3078: 2122:
value at the bit position of the next bit to decode after the bit-tree context denoted by the node.
5049: 4622: 4416: 4117: 3897: 3446: 2896: 2720: 2698: 441:
encoded bits, according to the following table (distance slots 0−3 directly encode distances 0−3).
203: 3324: 3171: 4990: 4361: 4248: 4204: 4017: 4000: 3990: 3887: 3408: 721: 97: 4615: 4366: 4150: 3995: 1425:
Fixed probability decoding is not strictly equivalent to context-based range decoding with any
4887: 3433: 5019: 3625: 2694: 1666:
The initial state is 0, and thus packets before the beginning are assumed to be LIT packets.
1392: 1228: 885: 784: 4703: 4165: 4127: 3948: 3873: 2615:
LZMA state resets cause a reset of all LZMA state except the dictionary, and specifically:
17: 2792:
In addition to the 7-Zip reference implementation, the following support the LZMA format.
8: 4934: 4825: 4784: 4769: 4738: 4733: 4642: 4549: 4482: 4451: 4436: 4219: 3818: 3640: 2824: 2712: 266: 2578:
LZMA2 data consists of packets starting with a control byte, with the following values:
2092:
value denotes whether a packet that includes a length is a LONGREP rather than a MATCH.
1364:, for performance reasons, does not include a conditional branch, but instead subtracts 5007: 4977: 4956: 4862: 4794: 4688: 4376: 4192: 4182: 4077: 4057: 4052: 3513: 3493: 2859:
starting with version 12.1. It also can use various other compression methods such as
1429:
value, due to the fact that context-based range decoding discards the lower 11 bits of
4588: 4951: 4939: 4921: 4789: 4673: 4610: 4456: 4371: 4327: 4288: 3970: 3823: 3803: 3796: 3786: 3781: 3771: 3766: 3756: 3751: 3728: 3723: 3688: 3683: 3678: 3663: 3653: 3630: 3610: 3503: 2852: 2848: 2651:
A 16-bit big-endian value encoding the low 16 bits of the uncompressed size minus one
274: 4926: 4882: 4855: 4850: 4708: 4693: 4603: 4512: 4507: 4336: 4069: 4047: 3939: 3648: 3620: 254: 215: 4845: 4659: 4583: 4564: 4534: 4502: 4468: 4027: 3965: 3813: 3498: 2781: 3243:"PyLZMA – Platform independent python bindings for the LZMA compression library" 3006: 4637: 4431: 4160: 4155: 4012: 3985: 3957: 3743: 3718: 3469: 3242: 2777: 2770: 262: 223: 2766: 2697:, with an additional special exception for linked binaries, but was placed by 1437:
as just described, while fixed probability decoding only discards the last bit
5129: 4944: 4892: 4559: 4554: 4529: 4461: 4082: 3980: 3808: 3349: 2877: 2759: 2702: 3384: 3030: 338:
A one-byte LZ77 sequence. Distance is equal to the last used LZ77 distance.
5065: 4032: 4007: 3908: 3658: 3574: 3508: 3124: 2828: 2816: 382:
An LZ77 sequence. Distance is equal to the fourth last used LZ77 distance.
360:
An LZ77 sequence. Distance is equal to the second last used LZ77 distance.
2933: 371:
An LZ77 sequence. Distance is equal to the third last used LZ77 distance.
5024: 4902: 4698: 4574: 4524: 3635: 3175: 2900: 2755: 2689:
is available as LZMA SDK. It was originally dual-licensed under both the
2611:
3: state reset, properties reset using properties byte, dictionary reset
428:
The length encoded using 8 bits, gives the lengths range from 18 to 273.
269:
algorithm is used to select an optimal one under certain approximations.
3263: 420:
The length encoded using 3 bits, gives the lengths range from 10 to 17.
5081: 4872: 4867: 4754: 4713: 4519: 3844: 2751: 412:
The length encoded using 3 bits, gives the lengths range from 2 to 9.
30:"LZMA" redirects here. For the airport with the ICAO code "LZMA", see 3584: 3483: 2804: 230:
in 1977 and features a high compression ratio (generally higher than
227: 195: 3413: 3309: 2561:
The LZMA2 header consists of a byte indicating the dictionary size:
1498:
function in the Linux kernel, integers are actually returned in the
728:. Statements consisting only of original research should be removed. 349:
An LZ77 sequence. Distance is equal to the last used LZ77 distance.
4995: 4840: 4497: 3579: 3539: 3220: 2796: 2670: 1601:
is the number of low bits of the dictionary position to include in
1589:
is the number of low bits of the dictionary position to include in
816:
The range decoder state consists of two unsigned 32-bit variables,
760: 235: 3438: 3363: 4764: 4238: 4187: 3703: 3698: 3057: 2643:
The data to be copied verbatim into the dictionary and the output
1360:
The Linux kernel implementation of fixed-probability decoding in
327:
A typical LZ77 sequence describing sequence length and distance.
3418: 2765:
In addition to LZMA, the SDK and 7-Zip also implements multiple
2654:
A 16-bit big-endian value encoding the compressed size minus one
1215:
Fixed-probability range decoding of a bit proceeds in this way:
83: 4278: 3549: 3529: 2985: 2856: 2832: 3288: 2827:
systems contains xz code, and many software distributors like
2585:
1 denotes a dictionary reset followed by an uncompressed chunk
5113: 4718: 4311: 4258: 3668: 3534: 2860: 2808: 2716: 2686: 231: 211: 202:. It has been under development since either 1996 or 1998 by 3151: 2657:
A properties/lclppb byte if bit 6 in the control byte is set
2571:
Odd values less than 40 indicate a 3×2 bytes dictionary size
316:
A single byte encoded using an adaptive binary range coder.
4268: 4122: 4107: 4097: 3849: 3776: 3761: 3733: 3693: 3569: 3564: 3544: 3488: 2842: 2820: 2812: 2800: 2568:
Even values less than 40 indicate a 2 bytes dictionary size
2413:
distance: 14+ distance slots, after fixed probability bits
278: 258: 234:) and a variable compression-dictionary size (up to 4  219: 2735:
bindings for the C++ library, as well as ports of LZMA to
2640:
A 16-bit big-endian value encoding the data size minus one
2588:
2 denotes an uncompressed chunk without a dictionary reset
1555:"properties" byte and a dictionary size. The value of the 4243: 4209: 3859: 3713: 3673: 3615: 3423: 3403: 2132:
The probability variable groups used in LZMA are those:
827:
Initialization of the range decoder consists of setting
3600: 2705:
on December 2, 2008, with the release of version 4.62.
2673:
format, which can contain LZMA2 data, is documented at
981:{\displaystyle \lfloor range/2^{11}\rfloor \times prob} 207: 2927: 2925: 2903:
that the algorithm is his own creation. (2004-02-19).
2608:
2: state reset, properties reset using properties byte
2769:
intended to improve compression, ranging from simple
1395: 1269: 1231: 1146: 1029: 926: 888: 787: 2922: 2715:LZMA compression library was originally written in 824:(representing the encoded point within the range). 2762:as the basis for its dictionary search algorithm. 2750:The 7-Zip implementation uses several variants of 1408: 1301: 1244: 1197: 1078: 980: 901: 800: 689: 3052: 3050: 3048: 3046: 2680: 1079:{\displaystyle \lfloor 2^{11}-prob\rfloor /2^{5}} 5127: 868:Context-based range decoding of a bit using the 3024: 3022: 1198:{\displaystyle prob-\lfloor prob/2^{5}\rfloor } 3043: 3031:"Xz format inadequate for long-term archiving" 1623:must not be greater than 4. In LZMA2 streams, 759:The description below is based on the compact 3924: 3454: 3434:Data compression, Compressors & Archivers 3073: 3071: 3028: 2807:world with its high performance (compared to 2799:: a streaming implementation that contains a 1607:(the default value used by the LZMA SDK is 2) 1595:(the default value used by the LZMA SDK is 0) 284: 3938: 3019: 2934:"A Quick Benchmark: Gzip vs. Bzip2 vs. LZMA" 2931: 1296: 1270: 1192: 1162: 1058: 1030: 960: 927: 3316: 3149: 3145: 3143: 3141: 2983: 1534:range to a caller-provided variable, where 1441: 872:probability variable proceeds in this way: 71:Learn how and when to remove these messages 3931: 3917: 3883: 3461: 3447: 3341: 3068: 2977: 2839:now use xz for compressing their releases. 3385:"LZHAM – Lossless Data Compression Codec" 3325:"Accepted dpkg 1.17.0 (source amd64 all)" 3322: 2953: 744:Learn how and when to remove this message 174:Learn how and when to remove this message 3138: 3102: 2855:compressions format that was created by 2787: 108:of all important aspects of the article. 3261: 2685:The LZMA implementation extracted from 2629:The last distances for repeated matches 2565:40 indicates a 4 GB − 1 dictionary size 1646: 1302:{\displaystyle \lfloor range/2\rfloor } 767: 14: 5128: 2396:>> 1) − 1)-bit reverse bit-tree 1526:function instead adds integers in the 857:Read a byte from the compressed stream 104:Please consider expanding the lead to 3912: 3442: 3282: 3240: 3152:"LZMA SDK (Software Development Kit)" 1643:the LZMA2 header as later described. 1549:The LZMA decoder is configured by an 1544: 3356: 2664: 2540:match length: after bit sequence 11 2517:match length: after bit sequence 10 860:Set the least significant 8 bits of 842:Normalization proceeds in this way: 693: 124: 77: 36: 3838:Document packaging and distribution 3744:Software packaging and distribution 3468: 3419:LZMA SDK (Software Development Kit) 3264:"Programming Help: Pascal LZMA SDK" 3058:"LZMA Specification.7z in LZMA SDK" 3004: 2490:match length: after bit sequence 0 2460:match length: after bit sequence 1 2066:values consist of respectively the 820:(representing the range size), and 27:Lossless data compression algorithm 24: 395:The length is encoded as follows: 25: 5157: 3397: 2598:Bits 5–6 for LZMA chunks can be: 2574:Values higher than 40 are invalid 810:, representing 0.5 probability). 188:Lempel–Ziv–Markov chain algorithm 151:and remove advice or instruction. 52:This article has multiple issues. 5105: 5104: 5095: 5094: 3893: 3892: 3882: 3872: 3347: 3285:"compress/lzma package for Go 1" 2954:Klausmann, Tobias (2008-05-08). 2636:Uncompressed chunks consist of: 1615:must not be greater than 8, and 1099:is greater than or equal to the 698: 214:archiver. This algorithm uses a 129: 82: 41: 5141:Lossless compression algorithms 3377: 3302: 3276: 3255: 3234: 3213: 3208:reduction in compression ratio. 3188: 3164: 3117: 2956:"Gzip, Bzip2 and Lzma compared" 2899:has asserted multiple times on 2552: 1678:next state when next packet is 690:Decompression algorithm details 218:scheme somewhat similar to the 96:may be too short to adequately 60:or discuss these issues on the 3096: 2998: 2947: 2889: 2811:) and small size (compared to 2681:7-Zip reference implementation 2389:distance: 4–13 distance slots 293:There are 7 types of packets: 106:provide an accessible overview 13: 1: 3429:Windows Binaries for XZ Utils 3241:Bauch, Joachim (2010-04-07). 3103:Collin, Lasse; Pavlov, Igor. 2883: 2731:. There are also third-party 2582:0 denotes the end of the file 3283:Vieru, Andrei (2012-06-28). 3262:Birtles, Alan (2006-06-13). 3007:"Data Compression Explained" 1639:must not be greater than 4. 7: 2932:Lasse Collin (2005-05-31). 2386:, reverse bit-tree context 2345:256 values pseudo-bit-tree 2134: 1668: 724:the claims made and adding 456:Fixed 0.5 probability bits 443: 401:Length code (bit sequence) 397: 299:Packed code (bit sequence) 295: 248: 10: 5162: 4986:Compressed data structures 4308:RLE + BWT + MTF + Huffman 3976:Asymmetric numeral systems 3855:Open Packaging Conventions 285:Compressed format overview 206:and was first used in the 29: 5090: 5074: 5058: 4976: 4901: 4833: 4824: 4747: 4681: 4672: 4573: 4490: 4481: 4397: 4345:Discrete cosine transform 4335: 4326: 4275:LZ77 + Huffman + context 4228: 4138: 4068: 3956: 3947: 3868: 3837: 3742: 3594:Archiving and compression 3593: 3522: 3476: 3409:Lzip format specification 2591:3–0x7f are invalid values 2545: 2522: 2495: 2418: 2410:reverse bit-tree context 2398: 2371: 2347: 1880: 1877: 1874: 1871: 1868: 1861: 1858: 1789: 1786: 1783: 1780: 1777: 1774: 1766: 1677: 1674: 1479:, and reversing the last 1333:is greater or equal than 200:lossless data compression 32:Martin Airport (Slovakia) 5050:Smallest grammar problem 2871: 2647:LZMA chunks consist of: 2308:after bit sequence 1111 1442:Range coding of integers 257:algorithm (a variant of 4991:Compressed suffix array 4540:Nyquist–Shannon theorem 3414:XZ format specification 3172:"Browse /LZMA SDK/4.23" 3105:"lib/xz/xz_dec_lzma2.c" 2960:Blog of an Alpha animal 2719:but has been ported to 2416:4-bit reverse bit-tree 2363:, 5), bit-tree context 2283:after bit sequence 111 2258:after bit sequence 110 1254:, perform normalization 911:, perform normalization 680:(((slot − 1) / 2) − 5) 222:algorithm published by 3850:OEBPS Container Format 3364:"What is a Zipx File?" 3221:"HISTORY of the 7-Zip" 2880:on 15 September 2020. 2851:: an extension to the 2632:All LZMA probabilities 2523:middle bits of length 2226:after bit sequence 11 1611:In non-LZMA2 streams, 1433:before multiplying by 1410: 1409:{\displaystyle 2^{11}} 1303: 1246: 1245:{\displaystyle 2^{24}} 1199: 1080: 982: 903: 902:{\displaystyle 2^{24}} 864:to the byte value read 802: 801:{\displaystyle 2^{10}} 255:dictionary compression 216:dictionary compression 5020:Kolmogorov complexity 4888:Video characteristics 4265:LZ77 + Huffman + ANS 3424:LZMA Utils = XZ Utils 3387:. Richard Geldreich. 3125:"The .xz File Format" 2788:Other implementations 2767:preprocessing filters 2695:Common Public License 2419:low bits of distance 2399:low bits of distance 2342:after bit sequence 0 2201:after bit sequence 1 1411: 1304: 1247: 1200: 1081: 983: 904: 803: 459:Context encoded bits 5110:Compression software 4704:Compression artifact 4660:Psychoacoustic model 3150:Igor Pavlov (2013). 3079:"Lzip Stream Format" 2984:Igor Pavlov (2013). 2546:high bits of length 2543:256 values bit-tree 2435:match length: start 2081:value is set to the 1647:LZMA coding contexts 1491:bits of the result. 1393: 1267: 1229: 1144: 1027: 924: 886: 785: 768:Range coding of bits 450:6-bit distance slot 149:rewrite this article 5100:Compression formats 4739:Texture compression 4734:Standard test image 4550:Silence compression 3029:Antonio Diaz Diaz. 2537:, bit-tree context 2514:, bit-tree context 2496:low bits of length 2487:, bit-tree context 2369:64 values bit-tree 2348:literal byte value 2339:, bit-tree context 446: 305:Packet description 267:dynamic programming 5146:Israeli inventions 5008:Information theory 4863:Display resolution 4689:Chroma subsampling 4078:Byte pair encoding 4023:Shannon–Fano–Elias 3845:OEB Package Format 3404:Official home page 2520:8 values bit-tree 2493:8 values bit-tree 1545:LZMA configuration 1524:rc_bittree_reverse 1406: 1299: 1242: 1195: 1076: 978: 899: 798: 709:possibly contains 445:Distance encoding 444: 5123: 5122: 4972: 4971: 4922:Deblocking filter 4820: 4819: 4668: 4667: 4477: 4476: 4322: 4321: 3906: 3905: 3350:"Lzip Benchmarks" 3329:Debian Package QA 3196:"Inno Setup Help" 2665:xz and 7z formats 2550: 2549: 2333:literal_pos_state 2329:prev_byte_lc_msbs 2144:Parameterized by 2079:prev_byte_lc_msbs 2064:literal_pos_state 2056: 2055: 1675:previous packets 1592:literal_pos_state 754: 753: 746: 711:original research 687: 686: 666:((slot / 2) − 5) 432: 431: 386: 385: 321:1+0 + len + dist 184: 183: 176: 166: 165: 142:a manual or guide 123: 122: 75: 16:(Redirected from 5153: 5136:Data compression 5108: 5107: 5098: 5097: 4927:Lapped transform 4831: 4830: 4709:Image resolution 4694:Coding tree unit 4679: 4678: 4488: 4487: 4333: 4332: 3954: 3953: 3940:Data compression 3933: 3926: 3919: 3910: 3909: 3896: 3895: 3886: 3885: 3876: 3523:Compression only 3463: 3456: 3449: 3440: 3439: 3392: 3391: 3381: 3375: 3374: 3372: 3371: 3360: 3354: 3353: 3352:. LZIP (nongnu). 3345: 3339: 3338: 3336: 3335: 3320: 3314: 3313: 3306: 3300: 3299: 3297: 3296: 3287:. Archived from 3280: 3274: 3273: 3271: 3270: 3259: 3253: 3252: 3250: 3249: 3238: 3232: 3231: 3229: 3228: 3217: 3211: 3210: 3204: 3203: 3198:. jrsoftware.org 3192: 3186: 3185: 3183: 3182: 3168: 3162: 3161: 3159: 3158: 3147: 3136: 3135: 3133: 3132: 3121: 3115: 3114: 3112: 3111: 3100: 3094: 3093: 3091: 3089: 3075: 3066: 3065: 3054: 3041: 3040: 3038: 3037: 3026: 3017: 3016: 3014: 3013: 3002: 2996: 2995: 2993: 2992: 2981: 2975: 2974: 2972: 2971: 2962:. Archived from 2951: 2945: 2943: 2941: 2940: 2929: 2920: 2919: 2917: 2916: 2907:. Archived from 2893: 2602:0: nothing reset 2449:len_dec.choice2 2366:distance: start 2337:literal_bit_mode 2135: 2120:literal_bit_mode 2104:literal_bit_mode 1669: 1634: 1606: 1594: 1575: 1560: 1554: 1533: 1525: 1509: 1497: 1490: 1458: 1417: 1415: 1413: 1412: 1407: 1405: 1404: 1387:The division by 1363: 1310: 1308: 1306: 1305: 1300: 1292: 1253: 1251: 1249: 1248: 1243: 1241: 1240: 1206: 1204: 1202: 1201: 1196: 1191: 1190: 1181: 1087: 1085: 1083: 1082: 1077: 1075: 1074: 1065: 1042: 1041: 989: 987: 985: 984: 979: 959: 958: 949: 910: 908: 906: 905: 900: 898: 897: 834: 809: 807: 805: 804: 799: 797: 796: 749: 742: 738: 735: 729: 726:inline citations 702: 701: 694: 447: 398: 376:1+1+1+1+1 + len 365:1+1+1+1+0 + len 296: 198:used to perform 179: 172: 161: 158: 152: 140:is written like 133: 132: 125: 118: 115: 109: 86: 78: 67: 45: 44: 37: 21: 5161: 5160: 5156: 5155: 5154: 5152: 5151: 5150: 5126: 5125: 5124: 5119: 5086: 5070: 5054: 5035:Rate–distortion 4968: 4897: 4816: 4743: 4664: 4569: 4565:Sub-band coding 4473: 4398:Predictive type 4393: 4318: 4285:LZSS + Huffman 4235:LZ77 + Huffman 4224: 4134: 4070:Dictionary type 4064: 3966:Adaptive coding 3943: 3937: 3907: 3902: 3864: 3833: 3814:Package (macOS) 3738: 3589: 3518: 3472: 3470:Archive formats 3467: 3400: 3395: 3383: 3382: 3378: 3369: 3367: 3362: 3361: 3357: 3346: 3342: 3333: 3331: 3323:Guillem Jover. 3321: 3317: 3308: 3307: 3303: 3294: 3292: 3281: 3277: 3268: 3266: 3260: 3256: 3247: 3245: 3239: 3235: 3226: 3224: 3219: 3218: 3214: 3201: 3199: 3194: 3193: 3189: 3180: 3178: 3170: 3169: 3165: 3156: 3154: 3148: 3139: 3130: 3128: 3123: 3122: 3118: 3109: 3107: 3101: 3097: 3087: 3085: 3077: 3076: 3069: 3056: 3055: 3044: 3035: 3033: 3027: 3020: 3011: 3009: 3005:Mahoney, Matt. 3003: 2999: 2990: 2988: 2982: 2978: 2969: 2967: 2952: 2948: 2938: 2936: 2930: 2923: 2914: 2912: 2894: 2890: 2886: 2874: 2790: 2683: 2667: 2619:The range coder 2555: 2424:len_dec.choice 1649: 1624: 1602: 1590: 1562: 1556: 1550: 1547: 1527: 1523: 1499: 1495: 1484: 1480: 1452: 1444: 1418:when computing 1400: 1396: 1394: 1391: 1390: 1388: 1361: 1288: 1268: 1265: 1264: 1262: 1236: 1232: 1230: 1227: 1226: 1224: 1186: 1182: 1177: 1145: 1142: 1141: 1139: 1070: 1066: 1061: 1037: 1033: 1028: 1025: 1024: 1022: 954: 950: 945: 925: 922: 921: 919: 893: 889: 887: 884: 883: 881: 832: 792: 788: 786: 783: 782: 780: 770: 750: 739: 733: 730: 715: 703: 699: 692: 453:Highest 2 bits 287: 251: 180: 169: 168: 167: 162: 156: 153: 146: 134: 130: 119: 113: 110: 103: 91:This article's 87: 46: 42: 35: 28: 23: 22: 15: 12: 11: 5: 5159: 5149: 5148: 5143: 5138: 5121: 5120: 5118: 5117: 5102: 5091: 5088: 5087: 5085: 5084: 5078: 5076: 5072: 5071: 5069: 5068: 5062: 5060: 5056: 5055: 5053: 5052: 5047: 5042: 5037: 5032: 5027: 5022: 5017: 5016: 5015: 5005: 5000: 4999: 4998: 4993: 4982: 4980: 4974: 4973: 4970: 4969: 4967: 4966: 4965: 4964: 4959: 4949: 4948: 4947: 4942: 4937: 4929: 4924: 4919: 4914: 4908: 4906: 4899: 4898: 4896: 4895: 4890: 4885: 4880: 4875: 4870: 4865: 4860: 4859: 4858: 4853: 4848: 4837: 4835: 4828: 4822: 4821: 4818: 4817: 4815: 4814: 4813: 4812: 4807: 4802: 4797: 4787: 4782: 4777: 4772: 4767: 4762: 4757: 4751: 4749: 4745: 4744: 4742: 4741: 4736: 4731: 4726: 4721: 4716: 4711: 4706: 4701: 4696: 4691: 4685: 4683: 4676: 4670: 4669: 4666: 4665: 4663: 4662: 4657: 4652: 4651: 4650: 4645: 4640: 4635: 4630: 4620: 4619: 4618: 4608: 4607: 4606: 4601: 4591: 4586: 4580: 4578: 4571: 4570: 4568: 4567: 4562: 4557: 4552: 4547: 4542: 4537: 4532: 4527: 4522: 4517: 4516: 4515: 4510: 4505: 4494: 4492: 4485: 4479: 4478: 4475: 4474: 4472: 4471: 4469:Psychoacoustic 4466: 4465: 4464: 4459: 4454: 4446: 4445: 4444: 4439: 4434: 4429: 4424: 4414: 4413: 4412: 4401: 4399: 4395: 4394: 4392: 4391: 4390: 4389: 4384: 4379: 4369: 4364: 4359: 4358: 4357: 4352: 4341: 4339: 4337:Transform type 4330: 4324: 4323: 4320: 4319: 4317: 4316: 4315: 4314: 4306: 4305: 4304: 4301: 4293: 4292: 4291: 4283: 4282: 4281: 4273: 4272: 4271: 4263: 4262: 4261: 4253: 4252: 4251: 4246: 4241: 4232: 4230: 4226: 4225: 4223: 4222: 4217: 4212: 4207: 4202: 4197: 4196: 4195: 4190: 4180: 4175: 4170: 4169: 4168: 4158: 4153: 4148: 4142: 4140: 4136: 4135: 4133: 4132: 4131: 4130: 4125: 4120: 4115: 4110: 4105: 4100: 4095: 4090: 4080: 4074: 4072: 4066: 4065: 4063: 4062: 4061: 4060: 4055: 4050: 4045: 4035: 4030: 4025: 4020: 4015: 4010: 4005: 4004: 4003: 3998: 3993: 3983: 3978: 3973: 3968: 3962: 3960: 3951: 3945: 3944: 3936: 3935: 3928: 3921: 3913: 3904: 3903: 3901: 3900: 3890: 3880: 3869: 3866: 3865: 3863: 3862: 3857: 3852: 3847: 3841: 3839: 3835: 3834: 3832: 3831: 3826: 3821: 3816: 3811: 3806: 3801: 3800: 3799: 3794: 3789: 3779: 3774: 3769: 3764: 3759: 3754: 3748: 3746: 3740: 3739: 3737: 3736: 3731: 3726: 3721: 3716: 3711: 3708: 3707: 3706: 3696: 3691: 3686: 3681: 3676: 3671: 3666: 3661: 3656: 3651: 3646: 3643: 3638: 3633: 3628: 3623: 3618: 3613: 3608: 3603: 3597: 3595: 3591: 3590: 3588: 3587: 3582: 3577: 3572: 3567: 3562: 3557: 3552: 3547: 3542: 3537: 3532: 3526: 3524: 3520: 3519: 3517: 3516: 3511: 3506: 3501: 3496: 3491: 3486: 3480: 3478: 3477:Archiving only 3474: 3473: 3466: 3465: 3458: 3451: 3443: 3437: 3436: 3431: 3426: 3421: 3416: 3411: 3406: 3399: 3398:External links 3396: 3394: 3393: 3376: 3355: 3340: 3315: 3301: 3275: 3254: 3233: 3212: 3187: 3163: 3137: 3116: 3095: 3067: 3042: 3018: 2997: 2976: 2946: 2921: 2887: 2885: 2882: 2873: 2870: 2869: 2868: 2846: 2840: 2789: 2786: 2784:applications. 2778:sliding window 2771:delta encoding 2760:Patricia trees 2711:The reference 2682: 2679: 2666: 2663: 2662: 2661: 2658: 2655: 2652: 2645: 2644: 2641: 2634: 2633: 2630: 2627: 2620: 2613: 2612: 2609: 2606: 2605:1: state reset 2603: 2596: 2595: 2592: 2589: 2586: 2583: 2576: 2575: 2572: 2569: 2566: 2554: 2551: 2548: 2547: 2544: 2541: 2538: 2532: 2529: 2525: 2524: 2521: 2518: 2515: 2505: 2502: 2498: 2497: 2494: 2491: 2488: 2478: 2475: 2471: 2470: 2467: 2464: 2461: 2458: 2453: 2450: 2446: 2445: 2442: 2439: 2436: 2433: 2428: 2425: 2421: 2420: 2417: 2414: 2411: 2408: 2405: 2401: 2400: 2397: 2390: 2387: 2381: 2378: 2374: 2373: 2372:distance slot 2370: 2367: 2364: 2357: 2354: 2350: 2349: 2346: 2343: 2340: 2326: 2323: 2319: 2318: 2315: 2312: 2309: 2306: 2301: 2298: 2294: 2293: 2290: 2287: 2284: 2281: 2276: 2273: 2269: 2268: 2265: 2262: 2259: 2256: 2247: 2244: 2240: 2239: 2236: 2230: 2227: 2224: 2219: 2216: 2212: 2211: 2208: 2205: 2202: 2199: 2194: 2191: 2187: 2186: 2183: 2180: 2177: 2174: 2165: 2162: 2158: 2157: 2156:If bit 1 then 2154: 2153:If bit 0 then 2151: 2148: 2145: 2142: 2141:LZMA SDK name 2139: 2054: 2053: 2050: 2047: 2044: 2041: 2038: 2035: 2033: 2031: 2027: 2026: 2023: 2020: 2017: 2014: 2011: 2008: 2006: 2004: 2000: 1999: 1996: 1993: 1990: 1987: 1984: 1981: 1979: 1977: 1973: 1972: 1969: 1966: 1963: 1960: 1957: 1954: 1952: 1950: 1946: 1945: 1942: 1939: 1936: 1933: 1930: 1927: 1925: 1923: 1919: 1918: 1915: 1912: 1909: 1906: 1903: 1900: 1897: 1895: 1891: 1890: 1887: 1883: 1882: 1879: 1876: 1873: 1870: 1867: 1864: 1862: 1860: 1856: 1855: 1852: 1849: 1846: 1843: 1840: 1837: 1835: 1833: 1829: 1828: 1825: 1822: 1819: 1816: 1813: 1810: 1807: 1804: 1800: 1799: 1796: 1792: 1791: 1788: 1785: 1782: 1779: 1776: 1773: 1770: 1768: 1764: 1763: 1760: 1757: 1754: 1751: 1748: 1745: 1742: 1740: 1736: 1735: 1732: 1729: 1726: 1723: 1720: 1717: 1714: 1712: 1708: 1707: 1704: 1701: 1698: 1695: 1692: 1689: 1686: 1683: 1680: 1679: 1676: 1673: 1648: 1645: 1609: 1608: 1596: 1584: 1546: 1543: 1482: 1451:, an array of 1443: 1440: 1439: 1438: 1423: 1403: 1399: 1358: 1357: 1356: 1355: 1352: 1329:Otherwise (if 1327: 1326: 1325: 1311: 1298: 1295: 1291: 1287: 1284: 1281: 1278: 1275: 1272: 1255: 1239: 1235: 1213: 1212: 1211: 1210: 1207: 1194: 1189: 1185: 1180: 1176: 1173: 1170: 1167: 1164: 1161: 1158: 1155: 1152: 1149: 1132: 1118: 1095:Otherwise (if 1093: 1092: 1091: 1088: 1073: 1069: 1064: 1060: 1057: 1054: 1051: 1048: 1045: 1040: 1036: 1032: 1011: 990: 977: 974: 971: 968: 965: 962: 957: 953: 948: 944: 941: 938: 935: 932: 929: 912: 896: 892: 866: 865: 858: 855: 854:left by 8 bits 795: 791: 769: 766: 752: 751: 706: 704: 697: 691: 688: 685: 684: 681: 678: 675: 671: 670: 667: 664: 661: 657: 656: 653: 650: 647: 643: 642: 639: 636: 633: 629: 628: 625: 622: 619: 615: 614: 611: 608: 605: 601: 600: 597: 594: 591: 587: 586: 583: 580: 577: 573: 572: 569: 566: 563: 559: 558: 555: 552: 549: 545: 544: 541: 538: 535: 531: 530: 527: 524: 521: 517: 516: 513: 510: 507: 503: 502: 499: 496: 493: 489: 488: 485: 482: 479: 475: 474: 471: 468: 465: 461: 460: 457: 454: 451: 430: 429: 426: 422: 421: 418: 414: 413: 410: 406: 405: 402: 384: 383: 380: 377: 373: 372: 369: 366: 362: 361: 358: 355: 354:1+1+1+0 + len 351: 350: 347: 344: 343:1+1+0+1 + len 340: 339: 336: 333: 329: 328: 325: 322: 318: 317: 314: 311: 307: 306: 303: 300: 286: 283: 250: 247: 224:Abraham Lempel 210:format of the 182: 181: 164: 163: 137: 135: 128: 121: 120: 100:the key points 90: 88: 81: 76: 50: 49: 47: 40: 26: 9: 6: 4: 3: 2: 5158: 5147: 5144: 5142: 5139: 5137: 5134: 5133: 5131: 5115: 5111: 5103: 5101: 5093: 5092: 5089: 5083: 5080: 5079: 5077: 5073: 5067: 5064: 5063: 5061: 5057: 5051: 5048: 5046: 5043: 5041: 5038: 5036: 5033: 5031: 5028: 5026: 5023: 5021: 5018: 5014: 5011: 5010: 5009: 5006: 5004: 5001: 4997: 4994: 4992: 4989: 4988: 4987: 4984: 4983: 4981: 4979: 4975: 4963: 4960: 4958: 4955: 4954: 4953: 4950: 4946: 4943: 4941: 4938: 4936: 4933: 4932: 4930: 4928: 4925: 4923: 4920: 4918: 4915: 4913: 4910: 4909: 4907: 4904: 4900: 4894: 4893:Video quality 4891: 4889: 4886: 4884: 4881: 4879: 4876: 4874: 4871: 4869: 4866: 4864: 4861: 4857: 4854: 4852: 4849: 4847: 4844: 4843: 4842: 4839: 4838: 4836: 4832: 4829: 4827: 4823: 4811: 4808: 4806: 4803: 4801: 4798: 4796: 4793: 4792: 4791: 4788: 4786: 4783: 4781: 4778: 4776: 4773: 4771: 4768: 4766: 4763: 4761: 4758: 4756: 4753: 4752: 4750: 4746: 4740: 4737: 4735: 4732: 4730: 4727: 4725: 4722: 4720: 4717: 4715: 4712: 4710: 4707: 4705: 4702: 4700: 4697: 4695: 4692: 4690: 4687: 4686: 4684: 4680: 4677: 4675: 4671: 4661: 4658: 4656: 4653: 4649: 4646: 4644: 4641: 4639: 4636: 4634: 4631: 4629: 4626: 4625: 4624: 4621: 4617: 4614: 4613: 4612: 4609: 4605: 4602: 4600: 4597: 4596: 4595: 4592: 4590: 4587: 4585: 4582: 4581: 4579: 4576: 4572: 4566: 4563: 4561: 4560:Speech coding 4558: 4556: 4555:Sound quality 4553: 4551: 4548: 4546: 4543: 4541: 4538: 4536: 4533: 4531: 4530:Dynamic range 4528: 4526: 4523: 4521: 4518: 4514: 4511: 4509: 4506: 4504: 4501: 4500: 4499: 4496: 4495: 4493: 4489: 4486: 4484: 4480: 4470: 4467: 4463: 4460: 4458: 4455: 4453: 4450: 4449: 4447: 4443: 4440: 4438: 4435: 4433: 4430: 4428: 4425: 4423: 4420: 4419: 4418: 4415: 4411: 4408: 4407: 4406: 4403: 4402: 4400: 4396: 4388: 4385: 4383: 4380: 4378: 4375: 4374: 4373: 4370: 4368: 4365: 4363: 4360: 4356: 4353: 4351: 4348: 4347: 4346: 4343: 4342: 4340: 4338: 4334: 4331: 4329: 4325: 4313: 4310: 4309: 4307: 4302: 4300: 4297: 4296: 4295:LZ77 + Range 4294: 4290: 4287: 4286: 4284: 4280: 4277: 4276: 4274: 4270: 4267: 4266: 4264: 4260: 4257: 4256: 4254: 4250: 4247: 4245: 4242: 4240: 4237: 4236: 4234: 4233: 4231: 4227: 4221: 4218: 4216: 4213: 4211: 4208: 4206: 4203: 4201: 4198: 4194: 4191: 4189: 4186: 4185: 4184: 4181: 4179: 4176: 4174: 4171: 4167: 4164: 4163: 4162: 4159: 4157: 4154: 4152: 4149: 4147: 4144: 4143: 4141: 4137: 4129: 4126: 4124: 4121: 4119: 4116: 4114: 4111: 4109: 4106: 4104: 4101: 4099: 4096: 4094: 4091: 4089: 4086: 4085: 4084: 4081: 4079: 4076: 4075: 4073: 4071: 4067: 4059: 4056: 4054: 4051: 4049: 4046: 4044: 4041: 4040: 4039: 4036: 4034: 4031: 4029: 4026: 4024: 4021: 4019: 4016: 4014: 4011: 4009: 4006: 4002: 3999: 3997: 3994: 3992: 3989: 3988: 3987: 3984: 3982: 3979: 3977: 3974: 3972: 3969: 3967: 3964: 3963: 3961: 3959: 3955: 3952: 3950: 3946: 3941: 3934: 3929: 3927: 3922: 3920: 3915: 3914: 3911: 3899: 3891: 3889: 3881: 3879: 3875: 3871: 3870: 3867: 3861: 3858: 3856: 3853: 3851: 3848: 3846: 3843: 3842: 3840: 3836: 3830: 3827: 3825: 3822: 3820: 3817: 3815: 3812: 3810: 3807: 3805: 3802: 3798: 3795: 3793: 3790: 3788: 3785: 3784: 3783: 3780: 3778: 3775: 3773: 3770: 3768: 3765: 3763: 3760: 3758: 3755: 3753: 3750: 3749: 3747: 3745: 3741: 3735: 3732: 3730: 3727: 3725: 3722: 3720: 3717: 3715: 3712: 3709: 3705: 3702: 3701: 3700: 3697: 3695: 3692: 3690: 3687: 3685: 3682: 3680: 3677: 3675: 3672: 3670: 3667: 3665: 3662: 3660: 3657: 3655: 3652: 3650: 3647: 3644: 3642: 3639: 3637: 3634: 3632: 3629: 3627: 3624: 3622: 3619: 3617: 3614: 3612: 3609: 3607: 3604: 3602: 3599: 3598: 3596: 3592: 3586: 3583: 3581: 3578: 3576: 3573: 3571: 3568: 3566: 3563: 3561: 3558: 3556: 3553: 3551: 3548: 3546: 3543: 3541: 3538: 3536: 3533: 3531: 3528: 3527: 3525: 3521: 3515: 3512: 3510: 3507: 3505: 3502: 3500: 3497: 3495: 3492: 3490: 3487: 3485: 3482: 3481: 3479: 3475: 3471: 3464: 3459: 3457: 3452: 3450: 3445: 3444: 3441: 3435: 3432: 3430: 3427: 3425: 3422: 3420: 3417: 3415: 3412: 3410: 3407: 3405: 3402: 3401: 3390: 3386: 3380: 3365: 3359: 3351: 3344: 3330: 3326: 3319: 3311: 3305: 3291:on 2016-09-21 3290: 3286: 3279: 3265: 3258: 3244: 3237: 3222: 3216: 3209: 3197: 3191: 3177: 3173: 3167: 3153: 3146: 3144: 3142: 3126: 3120: 3106: 3099: 3084: 3080: 3074: 3072: 3063: 3059: 3053: 3051: 3049: 3047: 3032: 3025: 3023: 3008: 3001: 2987: 2980: 2966:on 2013-01-06 2965: 2961: 2957: 2950: 2935: 2928: 2926: 2911:on 2012-11-09 2910: 2906: 2902: 2898: 2892: 2888: 2881: 2879: 2878:public domain 2866: 2862: 2858: 2854: 2850: 2847: 2844: 2841: 2838: 2834: 2830: 2826: 2822: 2818: 2814: 2810: 2806: 2802: 2798: 2795: 2794: 2793: 2785: 2783: 2779: 2774: 2772: 2768: 2763: 2761: 2757: 2753: 2748: 2746: 2742: 2738: 2734: 2730: 2726: 2722: 2718: 2714: 2709: 2706: 2704: 2703:public domain 2700: 2696: 2692: 2688: 2678: 2676: 2672: 2659: 2656: 2653: 2650: 2649: 2648: 2642: 2639: 2638: 2637: 2631: 2628: 2625: 2621: 2618: 2617: 2616: 2610: 2607: 2604: 2601: 2600: 2599: 2593: 2590: 2587: 2584: 2581: 2580: 2579: 2573: 2570: 2567: 2564: 2563: 2562: 2559: 2542: 2539: 2536: 2533: 2530: 2528:len_dec.high 2527: 2526: 2519: 2516: 2513: 2509: 2506: 2503: 2500: 2499: 2492: 2489: 2486: 2482: 2479: 2476: 2473: 2472: 2468: 2466:10–17 length 2465: 2462: 2459: 2457: 2454: 2451: 2448: 2447: 2443: 2440: 2437: 2434: 2432: 2429: 2426: 2423: 2422: 2415: 2412: 2409: 2406: 2403: 2402: 2395: 2394:distance_slot 2391: 2388: 2385: 2384:distance_slot 2382: 2379: 2377:dist_special 2376: 2375: 2368: 2365: 2362: 2358: 2355: 2352: 2351: 2344: 2341: 2338: 2334: 2330: 2327: 2324: 2321: 2320: 2316: 2313: 2310: 2307: 2305: 2302: 2299: 2296: 2295: 2291: 2288: 2285: 2282: 2280: 2277: 2274: 2271: 2270: 2266: 2263: 2260: 2257: 2255: 2251: 2248: 2245: 2243:is_rep0_long 2242: 2241: 2237: 2235: 2231: 2228: 2225: 2223: 2220: 2217: 2214: 2213: 2209: 2206: 2203: 2200: 2198: 2195: 2192: 2189: 2188: 2184: 2181: 2178: 2176:packet start 2175: 2173: 2169: 2166: 2163: 2160: 2159: 2155: 2152: 2149: 2146: 2143: 2140: 2137: 2136: 2133: 2130: 2128: 2123: 2121: 2116: 2114: 2110: 2105: 2101: 2098: 2093: 2091: 2086: 2084: 2080: 2075: 2073: 2069: 2065: 2061: 2051: 2048: 2045: 2042: 2039: 2036: 2034: 2032: 2029: 2028: 2024: 2021: 2018: 2015: 2012: 2009: 2007: 2005: 2002: 2001: 1997: 1994: 1991: 1988: 1985: 1982: 1980: 1978: 1975: 1974: 1970: 1967: 1964: 1961: 1958: 1955: 1953: 1951: 1948: 1947: 1943: 1940: 1937: 1934: 1931: 1928: 1926: 1924: 1921: 1920: 1916: 1913: 1910: 1907: 1904: 1901: 1898: 1896: 1893: 1892: 1888: 1885: 1884: 1865: 1863: 1857: 1853: 1850: 1847: 1844: 1841: 1838: 1836: 1834: 1831: 1830: 1826: 1823: 1820: 1817: 1814: 1811: 1808: 1805: 1802: 1801: 1797: 1794: 1793: 1771: 1769: 1765: 1761: 1758: 1755: 1752: 1749: 1746: 1743: 1741: 1738: 1737: 1733: 1730: 1727: 1724: 1721: 1718: 1715: 1713: 1710: 1709: 1705: 1702: 1699: 1696: 1693: 1691:2nd previous 1690: 1688:3rd previous 1687: 1685:4th previous 1684: 1682: 1681: 1671: 1670: 1667: 1664: 1661: 1656: 1653: 1644: 1640: 1638: 1632: 1628: 1622: 1618: 1614: 1605: 1600: 1597: 1593: 1588: 1585: 1582: 1579: 1578: 1577: 1573: 1569: 1565: 1559: 1553: 1542: 1539: 1537: 1531: 1521: 1517: 1513: 1507: 1503: 1492: 1488: 1478: 1472: 1468: 1464: 1462: 1456: 1450: 1436: 1432: 1428: 1424: 1421: 1401: 1397: 1386: 1385: 1384: 1381: 1379: 1376:and added to 1375: 1371: 1367: 1353: 1351: 1347: 1343: 1339: 1338: 1336: 1332: 1328: 1323: 1322: 1320: 1317:is less than 1316: 1312: 1293: 1289: 1285: 1282: 1279: 1276: 1273: 1260: 1256: 1237: 1233: 1223:is less than 1222: 1218: 1217: 1216: 1208: 1187: 1183: 1178: 1174: 1171: 1168: 1165: 1159: 1156: 1153: 1150: 1147: 1137: 1133: 1131: 1127: 1123: 1119: 1117: 1113: 1109: 1105: 1104: 1102: 1098: 1094: 1089: 1071: 1067: 1062: 1055: 1052: 1049: 1046: 1043: 1038: 1034: 1020: 1016: 1012: 1010: 1006: 1002: 1001: 999: 996:is less than 995: 991: 975: 972: 969: 966: 963: 955: 951: 946: 942: 939: 936: 933: 930: 917: 913: 894: 890: 880:is less than 879: 875: 874: 873: 871: 863: 859: 856: 853: 849: 845: 844: 843: 840: 838: 830: 825: 823: 819: 814: 811: 793: 789: 778: 773: 765: 762: 757: 748: 745: 737: 727: 723: 719: 713: 712: 707:This section 705: 696: 695: 682: 679: 676: 673: 672: 668: 665: 662: 660:14–62 (even) 659: 658: 654: 651: 648: 645: 644: 640: 637: 634: 631: 630: 626: 623: 620: 617: 616: 612: 609: 606: 603: 602: 598: 595: 592: 589: 588: 584: 581: 578: 575: 574: 570: 567: 564: 561: 560: 556: 553: 550: 547: 546: 542: 539: 536: 533: 532: 528: 525: 522: 519: 518: 514: 511: 508: 505: 504: 500: 497: 494: 491: 490: 486: 483: 480: 477: 476: 472: 469: 466: 463: 462: 458: 455: 452: 449: 448: 442: 438: 435: 427: 424: 423: 419: 416: 415: 411: 408: 407: 403: 400: 399: 396: 393: 389: 381: 378: 375: 374: 370: 367: 364: 363: 359: 356: 353: 352: 348: 345: 342: 341: 337: 334: 331: 330: 326: 323: 320: 319: 315: 312: 310:0 + byteCode 309: 308: 304: 301: 298: 297: 294: 291: 282: 280: 276: 270: 268: 264: 263:range encoder 260: 256: 246: 243: 239: 237: 233: 229: 225: 221: 217: 213: 209: 205: 201: 197: 193: 189: 178: 175: 160: 150: 145: 143: 138:This article 136: 127: 126: 117: 107: 101: 99: 94: 89: 85: 80: 79: 74: 72: 65: 64: 59: 58: 53: 48: 39: 38: 33: 19: 5066:Hutter Prize 5030:Quantization 4935:Compensation 4729:Quantization 4452:Compensation 4298: 4018:Shannon–Fano 3958:Entropy type 3554: 3388: 3379: 3368:. Retrieved 3366:. WinZip.com 3358: 3348:Diaz, Diaz. 3343: 3332:. Retrieved 3328: 3318: 3304: 3293:. Retrieved 3289:the original 3278: 3267:. Retrieved 3257: 3246:. Retrieved 3236: 3225:. Retrieved 3223:. 2012-10-26 3215: 3206: 3200:. Retrieved 3190: 3179:. Retrieved 3166: 3155:. Retrieved 3129:. Retrieved 3127:. 2009-08-27 3119: 3108:. Retrieved 3098: 3086:. Retrieved 3082: 3061: 3034:. Retrieved 3010:. Retrieved 3000: 2989:. Retrieved 2979: 2968:. Retrieved 2964:the original 2959: 2949: 2937:. Retrieved 2913:. Retrieved 2909:the original 2905:"LZMA spec?" 2891: 2875: 2817:Linux kernel 2791: 2775: 2764: 2756:binary trees 2749: 2710: 2707: 2684: 2674: 2668: 2646: 2635: 2623: 2614: 2597: 2577: 2560: 2556: 2553:LZMA2 format 2534: 2511: 2507: 2501:len_dec.mid 2484: 2480: 2474:len_dec.low 2455: 2430: 2393: 2383: 2361:match_length 2360: 2336: 2332: 2328: 2303: 2278: 2253: 2249: 2233: 2221: 2196: 2171: 2167: 2150:Coding mode 2131: 2126: 2124: 2119: 2117: 2112: 2108: 2103: 2102: 2096: 2094: 2089: 2087: 2082: 2078: 2076: 2071: 2067: 2063: 2059: 2057: 1665: 1659: 1657: 1654: 1650: 1641: 1636: 1630: 1626: 1620: 1616: 1612: 1610: 1603: 1598: 1591: 1586: 1580: 1571: 1567: 1563: 1557: 1551: 1548: 1540: 1535: 1529: 1519: 1515: 1511: 1510:range (with 1505: 1501: 1493: 1486: 1476: 1473: 1469: 1465: 1460: 1454: 1448: 1445: 1434: 1430: 1426: 1419: 1382: 1377: 1373: 1369: 1365: 1359: 1354:Return bit 1 1349: 1345: 1341: 1334: 1330: 1324:Return bit 0 1318: 1314: 1258: 1220: 1214: 1209:Return bit 1 1135: 1129: 1125: 1121: 1115: 1111: 1107: 1100: 1096: 1090:Return bit 0 1018: 1014: 1008: 1004: 997: 993: 915: 877: 869: 867: 861: 851: 847: 841: 836: 828: 826: 821: 817: 815: 812: 776: 774: 771: 758: 755: 740: 731: 708: 674:15–63 (odd) 439: 436: 433: 425:1+1+ 8 bits 417:1+0+ 3 bits 404:Description 394: 390: 387: 302:Packet name 292: 288: 271: 253:LZMA uses a 252: 241: 240: 191: 187: 185: 170: 154: 147:Please help 139: 111: 95: 93:lead section 68: 61: 55: 54:Please help 51: 5025:Prefix code 4878:Frame types 4699:Color space 4525:Convolution 4255:LZ77 + ANS 4166:Incremental 4139:Other types 4058:Levenshtein 3176:SourceForge 3088:14 November 3083:Lzip Manual 2986:"7z Format" 2901:SourceForge 2897:Igor Pavlov 2752:hash chains 2713:open source 2699:Igor Pavlov 2675:tukaani.org 2469:18+ length 2452:LenChoice2 2444:10+ length 2441:2–9 length 2404:dist_align 2246:IsRep0Long 1383:Note that: 1362:rc_direct() 846:Shift both 204:Igor Pavlov 5130:Categories 5082:Mark Adler 5040:Redundancy 4957:Daubechies 4940:Estimation 4873:Frame rate 4795:Daubechies 4755:Chain code 4714:Macroblock 4520:Companding 4457:Estimation 4377:Daubechies 4083:Lempel–Ziv 4043:Exp-Golomb 3971:Arithmetic 3878:Comparison 3370:2016-03-14 3334:2015-10-21 3295:2013-06-16 3269:2013-06-16 3248:2013-06-16 3227:2013-06-16 3202:2013-06-16 3181:2014-02-12 3157:2013-06-16 3131:2013-06-16 3110:2013-06-16 3036:2018-07-20 3012:2013-11-13 2991:2013-06-16 2970:2013-06-16 2939:2015-10-21 2915:2013-06-16 2884:References 2829:kernel.org 2427:LenChoice 2353:dist_slot 2232:SHORTREP/ 2147:Used when 2127:match_byte 2113:match_byte 2109:match_byte 2097:match_byte 1496:rc_bittree 734:April 2012 718:improve it 409:0+ 3 bits 57:improve it 5059:Community 4883:Interlace 4269:Zstandard 4048:Fibonacci 4038:Universal 3996:Canonical 3585:Zstandard 3310:"Zip-Ada" 3062:7-zip.org 2805:Unix-like 2512:pos_state 2485:pos_state 2264:SHORTREP 2254:pos_state 2172:pos_state 2161:is_match 2060:pos_state 1986:SHORTREP 1902:SHORTREP 1889:SHORTREP 1809:SHORTREP 1798:SHORTREP 1706:SHORTREP 1694:previous 1604:pos_state 1576:, where: 1522:+ 1. The 1297:⌋ 1271:⌊ 1193:⌋ 1163:⌊ 1160:− 1059:⌋ 1044:− 1031:⌊ 964:× 961:⌋ 928:⌊ 722:verifying 335:SHORTREP 228:Jacob Ziv 196:algorithm 157:July 2014 114:July 2014 98:summarize 63:talk page 5045:Symmetry 5013:Timeline 4996:FM-index 4841:Bit rate 4834:Concepts 4682:Concepts 4545:Sampling 4498:Bit rate 4491:Concepts 4193:Sequitur 4028:Tunstall 4001:Modified 3991:Adaptive 3949:Lossless 3898:Category 3792:Java RAR 3540:compress 2782:embedded 2691:GNU LGPL 2531:LenHigh 2380:SpecPos 2356:PosSlot 2325:Literal 2322:literal 2317:LONGREP 2314:LONGREP 2300:IsRepG2 2297:is_rep2 2292:LONGREP 2289:LONGREP 2275:IsRepG1 2272:is_rep1 2267:LONGREP 2238:LONGREP 2234:LONGREP 2218:IsRepG0 2215:is_rep0 2164:IsMatch 2138:XZ name 1959:LONGREP 1866:LONGREP 1772:LONGREP 1703:LONGREP 1561:byte is 1463:leaves. 1348:− 1128:− 1114:− 379:LONGREP 368:LONGREP 357:LONGREP 346:LONGREP 332:1+1+0+0 249:Overview 194:) is an 5003:Entropy 4952:Wavelet 4931:Motion 4790:Wavelet 4770:Fractal 4765:Deflate 4748:Methods 4535:Latency 4448:Motion 4372:Wavelet 4289:LHA/LZH 4239:Deflate 4188:Re-Pair 4183:Grammar 4013:Shannon 3986:Huffman 3942:methods 3626:Cabinet 2815:). The 2701:in the 2504:LenMid 2477:LenLow 2190:is_rep 2185:*MATCH 2037:*MATCH 2010:*MATCH 1886:*MATCH 1795:*MATCH 1574:× 9 × 5 1494:In the 1416:⁠ 1389:⁠ 1309:⁠ 1263:⁠ 1252:⁠ 1225:⁠ 1205:⁠ 1140:⁠ 1086:⁠ 1023:⁠ 988:⁠ 920:⁠ 909:⁠ 882:⁠ 808:⁠ 781:⁠ 716:Please 5114:codecs 5075:People 4978:Theory 4945:Vector 4462:Vector 4279:Brotli 4229:Hybrid 4128:Snappy 3981:Golomb 3550:Zopfli 3530:Brotli 2857:WinZip 2837:Fedora 2833:Debian 2737:Pascal 2733:Python 2727:, and 2721:ANSI C 2535:is_REP 2508:is_REP 2481:is_REP 2456:is_REP 2431:is_REP 2407:Align 2207:MATCH 2193:IsRep 2090:is_REP 2013:MATCH 1932:MATCH 1839:MATCH 1744:MATCH 1700:MATCH 1672:state 1570:× 9 + 1558:lclppb 1552:lclppb 1504:, 2 × 835:, and 324:MATCH 4905:parts 4903:Codec 4868:Frame 4826:Video 4810:SPIHT 4719:Pixel 4674:Image 4628:ACELP 4599:ADPCM 4589:μ-law 4584:A-law 4577:parts 4575:Codec 4483:Audio 4422:ACELP 4410:ADPCM 4387:SPIHT 4328:Lossy 4312:bzip2 4303:LZHAM 4259:LZFSE 4161:Delta 4053:Gamma 4033:Unary 4008:Range 3669:lrzip 3535:bzip2 2872:LZHAM 2809:bzip2 2687:7-Zip 2669:The . 2626:value 2624:state 2304:state 2279:state 2250:state 2222:state 2210:*REP 2197:state 2168:state 2040:*REP 1660:state 1536:limit 1530:limit 1518:and 2 1512:limit 1506:limit 1502:limit 1487:limit 1477:limit 1461:limit 1455:limit 1449:limit 1431:range 1420:bound 1378:range 1368:from 1366:range 1350:range 1335:range 1319:range 1259:range 1221:range 1130:bound 1116:bound 1112:range 1108:range 1101:bound 1009:bound 1005:range 998:bound 916:bound 878:range 848:range 833:2 − 1 829:range 818:range 242:LZMA2 232:bzip2 212:7-Zip 4917:DPCM 4724:PSNR 4655:MDCT 4648:WLPC 4633:CELP 4594:DPCM 4442:WLPC 4427:CELP 4405:DPCM 4355:MDCT 4299:LZMA 4200:LDCT 4178:DPCM 4123:LZWL 4113:LZSS 4108:LZRW 4098:LZJB 3888:List 3829:XBAP 3809:MSIX 3762:APPX 3734:ZPAQ 3704:sitx 3694:rzip 3654:.egg 3649:.dmg 3645:DGCA 3570:lzop 3565:lzip 3555:LZMA 3545:gzip 3514:WARC 3494:shar 3489:cpio 3090:2019 2865:PPMd 2863:and 2861:BZip 2849:ZIPX 2843:lzip 2835:and 2823:and 2821:dpkg 2813:gzip 2801:gzip 2758:and 2743:and 2729:Java 2693:and 2622:The 2463:bit 2438:bit 2359:min( 2311:bit 2286:bit 2261:bit 2229:bit 2204:bit 2182:LIT 2179:bit 2095:The 2088:The 2077:The 2070:and 2062:and 2058:The 1983:LIT 1956:LIT 1929:LIT 1905:LIT 1899:LIT 1869:LIT 1842:LIT 1815:LIT 1812:LIT 1806:LIT 1778:LIT 1775:LIT 1750:LIT 1747:LIT 1722:LIT 1719:LIT 1716:LIT 1697:LIT 1658:The 1635:and 1619:and 1528:[0, 1457:− 1) 1435:prob 1427:prob 1374:code 1370:code 1346:code 1342:code 1340:Set 1331:code 1315:code 1257:Set 1136:prob 1134:Set 1126:code 1122:code 1120:Set 1106:Set 1097:code 1019:prob 1015:prob 1013:Set 1003:Set 994:code 914:Set 870:prob 862:code 852:code 850:and 837:code 822:code 777:prob 313:LIT 279:gzip 277:and 259:LZ77 226:and 220:LZ77 192:LZMA 186:The 18:LZMA 4962:DWT 4912:DCT 4856:VBR 4851:CBR 4846:ABR 4805:EZW 4800:DWT 4785:RLE 4775:KLT 4760:DCT 4643:LSP 4638:LAR 4623:LPC 4616:FFT 4513:VBR 4508:CBR 4503:ABR 4437:LSP 4432:LAR 4417:LPC 4382:DWT 4367:FFT 4362:DST 4350:DCT 4249:LZS 4244:LZX 4220:RLE 4215:PPM 4210:PAQ 4205:MTF 4173:DMC 4151:CTW 4146:BWT 4118:LZW 4103:LZO 4093:LZ4 4088:842 3860:PAQ 3824:XAP 3819:RPM 3804:MSI 3797:EAR 3787:WAR 3782:JAR 3777:ipa 3772:HAP 3767:deb 3757:App 3752:apk 3729:ZIP 3724:zoo 3719:Xar 3714:UDA 3710:SQX 3699:sit 3689:RAR 3684:PEA 3679:MPQ 3674:LZX 3664:LHA 3659:kgb 3641:dar 3636:cpt 3631:cfs 3616:ARJ 3611:ARC 3606:ACE 3560:LZ4 3509:WAD 3504:LBR 3499:tar 2853:ZIP 2825:RPM 2745:Ada 2717:C++ 2107:in 2052:11 2049:11 2046:10 2030:11 2025:11 2022:11 2019:10 2003:10 1998:11 1995:11 1992:10 1971:11 1968:11 1965:10 1944:11 1941:11 1938:10 1481:log 1344:to 1337:): 1313:If 1261:to 1219:If 1138:to 1124:to 1110:to 1103:): 1017:to 1007:to 992:If 918:to 876:If 831:to 720:by 677:11 663:10 649:11 646:13 635:10 632:12 621:11 618:11 607:10 604:10 593:11 579:10 565:11 551:10 537:11 523:10 509:11 495:10 481:01 467:00 275:zip 5132:: 4780:LP 4611:FT 4604:DM 4156:CM 3621:B1 3601:7z 3580:xz 3575:SQ 3484:ar 3327:. 3205:. 3174:. 3140:^ 3081:. 3070:^ 3060:. 3045:^ 3021:^ 2958:. 2924:^ 2831:, 2819:, 2797:xz 2754:, 2747:. 2741:Go 2739:, 2725:C# 2723:, 2671:xz 2510:, 2483:, 2392:(( 2335:, 2331:, 2252:, 2170:, 2115:. 2083:lc 2072:lp 2068:pb 2043:5 2016:4 1989:6 1976:9 1962:5 1949:8 1935:4 1922:7 1917:9 1914:8 1911:7 1908:3 1894:6 1881:9 1878:8 1875:7 1872:2 1859:5 1854:9 1851:8 1848:7 1845:1 1832:4 1827:9 1824:8 1821:7 1818:0 1803:3 1790:9 1787:8 1784:7 1781:0 1767:2 1762:9 1759:8 1756:7 1753:0 1739:1 1734:9 1731:8 1728:7 1725:0 1711:0 1637:pb 1631:lp 1629:+ 1627:lc 1621:pb 1617:lp 1613:lc 1599:pb 1587:lp 1581:lc 1572:pb 1568:lp 1566:+ 1564:lc 1402:11 1380:. 1321:: 1238:24 1039:11 1021:+ 1000:: 956:11 895:24 794:10 761:XZ 683:4 669:4 655:5 652:0 641:5 638:0 627:4 624:0 613:4 610:0 599:3 596:0 590:9 585:3 582:0 576:8 571:2 568:0 562:7 557:2 554:0 548:6 543:1 540:0 534:5 529:1 526:0 520:4 515:0 512:0 506:3 501:0 498:0 492:2 487:0 484:0 478:1 473:0 470:0 464:0 236:GB 208:7z 66:. 5116:) 5112:( 3932:e 3925:t 3918:v 3462:e 3455:t 3448:v 3373:. 3337:. 3312:. 3298:. 3272:. 3251:. 3230:. 3184:. 3160:. 3134:. 3113:. 3092:. 3064:. 3039:. 3015:. 2994:. 2973:. 2942:. 2918:. 2867:. 1633:) 1625:( 1532:) 1520:i 1516:i 1508:) 1500:[ 1489:) 1485:( 1483:2 1453:( 1398:2 1294:2 1290:/ 1286:e 1283:g 1280:n 1277:a 1274:r 1234:2 1188:5 1184:2 1179:/ 1175:b 1172:o 1169:r 1166:p 1157:b 1154:o 1151:r 1148:p 1072:5 1068:2 1063:/ 1056:b 1053:o 1050:r 1047:p 1035:2 976:b 973:o 970:r 967:p 952:2 947:/ 943:e 940:g 937:n 934:a 931:r 891:2 790:2 747:) 741:( 736:) 732:( 714:. 190:( 177:) 171:( 159:) 155:( 144:. 116:) 112:( 102:. 73:) 69:( 34:. 20:)

Index

LZMA
Martin Airport (Slovakia)
improve it
talk page
Learn how and when to remove these messages

lead section
summarize
provide an accessible overview
a manual or guide
rewrite this article
Learn how and when to remove this message
algorithm
lossless data compression
Igor Pavlov
7z
7-Zip
dictionary compression
LZ77
Abraham Lempel
Jacob Ziv
bzip2
GB
dictionary compression
LZ77
range encoder
dynamic programming
zip
gzip
original research

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