Knowledge

Lempel–Ziv–Markov chain algorithm

Source 📝

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

Index

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
improve it

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