README (lzlib-1.12.tar.lz) | : | README (lzlib-1.13.tar.lz) | ||
---|---|---|---|---|
skipping to change at line 34 | skipping to change at line 34 | |||
* Additionally the lzip reference implementation is copylefted, which | * Additionally the lzip reference implementation is copylefted, which | |||
guarantees that it will remain free forever. | guarantees that it will remain free forever. | |||
A nice feature of the lzip format is that a corrupt byte is easier to repair | A nice feature of the lzip format is that a corrupt byte is easier to repair | |||
the nearer it is from the beginning of the file. Therefore, with the help of | the nearer it is from the beginning of the file. Therefore, with the help of | |||
lziprecover, losing an entire archive just because of a corrupt byte near | lziprecover, losing an entire archive just because of a corrupt byte near | |||
the beginning is a thing of the past. | the beginning is a thing of the past. | |||
The functions and variables forming the interface of the compression library | The functions and variables forming the interface of the compression library | |||
are declared in the file 'lzlib.h'. Usage examples of the library are given | are declared in the file 'lzlib.h'. Usage examples of the library are given | |||
in the files 'bbexample.c', 'ffexample.c', and 'main.c' from the source | in the files 'bbexample.c', 'ffexample.c', and 'minilzip.c' from the source | |||
distribution. | distribution. | |||
All the library functions are thread safe. The library does not install any | ||||
signal handler. The decoder checks the consistency of the compressed data, | ||||
so the library should never crash even in case of corrupted input. | ||||
Compression/decompression is done by repeatedly calling a couple of | Compression/decompression is done by repeatedly calling a couple of | |||
read/write functions until all the data have been processed by the library. | read/write functions until all the data have been processed by the library. | |||
This interface is safer and less error prone than the traditional zlib | This interface is safer and less error prone than the traditional zlib | |||
interface. | interface. | |||
Compression/decompression is done when the read function is called. This | Compression/decompression is done when the read function is called. This | |||
means the value returned by the position functions will not be updated until | means the value returned by the position functions will not be updated until | |||
a read call, even if a lot of data are written. If you want the data to be | a read call, even if a lot of data are written. If you want the data to be | |||
compressed in advance, just call the read function with a size equal to 0. | compressed in advance, just call the read function with a size equal to 0. | |||
skipping to change at line 63 | skipping to change at line 67 | |||
Lzlib will correctly decompress a data stream which is the concatenation of | Lzlib will correctly decompress a data stream which is the concatenation of | |||
two or more compressed data streams. The result is the concatenation of the | two or more compressed data streams. The result is the concatenation of the | |||
corresponding decompressed data streams. Integrity testing of concatenated | corresponding decompressed data streams. Integrity testing of concatenated | |||
compressed data streams is also supported. | compressed data streams is also supported. | |||
Lzlib is able to compress and decompress streams of unlimited size by | Lzlib is able to compress and decompress streams of unlimited size by | |||
automatically creating multimember output. The members so created are large, | automatically creating multimember output. The members so created are large, | |||
about 2 PiB each. | about 2 PiB each. | |||
All the library functions are thread safe. The library does not install | ||||
any signal handler. The decoder checks the consistency of the compressed | ||||
data, so the library should never crash even in case of corrupted input. | ||||
In spite of its name (Lempel-Ziv-Markov chain-Algorithm), LZMA is not a | In spite of its name (Lempel-Ziv-Markov chain-Algorithm), LZMA is not a | |||
concrete algorithm; it is more like "any algorithm using the LZMA coding | concrete algorithm; it is more like "any algorithm using the LZMA coding | |||
scheme". For example, the option '-0' of lzip uses the scheme in almost the | scheme". For example, the option '-0' of lzip uses the scheme in almost the | |||
simplest way possible; issuing the longest match it can find, or a literal | simplest way possible; issuing the longest match it can find, or a literal | |||
byte if it can't find a match. Inversely, a much more elaborated way of | byte if it can't find a match. Inversely, a much more elaborated way of | |||
finding coding sequences of minimum size than the one currently used by lzip | finding coding sequences of minimum size than the one currently used by lzip | |||
could be developed, and the resulting sequence could also be coded using the | could be developed, and the resulting sequence could also be coded using the | |||
LZMA coding scheme. | LZMA coding scheme. | |||
Lzlib currently implements two variants of the LZMA algorithm; fast (used by | Lzlib currently implements two variants of the LZMA algorithm: fast (used by | |||
option '-0' of minilzip) and normal (used by all other compression levels). | option '-0' of minilzip) and normal (used by all other compression levels). | |||
The high compression of LZMA comes from combining two basic, well-proven | The high compression of LZMA comes from combining two basic, well-proven | |||
compression ideas: sliding dictionaries (LZ77/78) and markov models (the | compression ideas: sliding dictionaries (LZ77/78) and markov models (the | |||
thing used by every compression algorithm that uses a range encoder or | thing used by every compression algorithm that uses a range encoder or | |||
similar order-0 entropy coder as its last stage) with segregation of | similar order-0 entropy coder as its last stage) with segregation of | |||
contexts according to what the bits are used for. | contexts according to what the bits are used for. | |||
The ideas embodied in lzlib are due to (at least) the following people: | The ideas embodied in lzlib are due to (at least) the following people: | |||
Abraham Lempel and Jacob Ziv (for the LZ algorithm), Andrey Markov (for the | Abraham Lempel and Jacob Ziv (for the LZ algorithm), Andrey Markov (for the | |||
definition of Markov chains), G.N.N. Martin (for the definition of range | definition of Markov chains), G.N.N. Martin (for the definition of range | |||
encoding), Igor Pavlov (for putting all the above together in LZMA), and | encoding), Igor Pavlov (for putting all the above together in LZMA), and | |||
Julian Seward (for bzip2's CLI). | Julian Seward (for bzip2's CLI). | |||
LANGUAGE NOTE: Uncompressed = not compressed = plain data; it may never have | LANGUAGE NOTE: Uncompressed = not compressed = plain data; it may never have | |||
been compressed. Decompressed is used to refer to data which have undergone | been compressed. Decompressed is used to refer to data which have undergone | |||
the process of decompression. | the process of decompression. | |||
Copyright (C) 2009-2021 Antonio Diaz Diaz. | Copyright (C) 2009-2022 Antonio Diaz Diaz. | |||
This file is free documentation: you have unlimited permission to copy, | This file is free documentation: you have unlimited permission to copy, | |||
distribute, and modify it. | distribute, and modify it. | |||
The file Makefile.in is a data file used by configure to produce the | The file Makefile.in is a data file used by configure to produce the | |||
Makefile. It has the same copyright owner and permissions that configure | Makefile. It has the same copyright owner and permissions that configure | |||
itself. | itself. | |||
End of changes. 5 change blocks. | ||||
7 lines changed or deleted | 7 lines changed or added |