Im doing a small research in order to know how this algorithm works, since wikipedia says : "No complete natural language specification of the compressed format seems to exist, other than the one attempted in the following text" makes me search all over the internet for small clues about this topic (all content related of how it work its related to Igor Pavlov, this is how i end up here). This is what i got:
It uses a dictionary compression algorithm with special support for repeatedly used match distances.
Its a LZ77 variant optmized for high compression ratios and fast decompression.
The compression principle is similar to Deflate but uses Range encoding instead of Huffman
It uses binary tree.
I read lzma-specification.txt so i know how headers and other basics stuffs are working
i know lz77,deflate,dinary tree, markov chains and range encoding works but.............
Im not that good with c/c++ so looking at the code (and since its optmized) makes me hard to understand lmza and lmza2... maybe if you can tell me how LMZA will compress this data i will be able to understand the code:
"This is how LZMA works, i know small strings doesnt compress well but its just for example purposes"
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Im doing a small research in order to know how this algorithm works, since wikipedia says : "No complete natural language specification of the compressed format seems to exist, other than the one attempted in the following text" makes me search all over the internet for small clues about this topic (all content related of how it work its related to Igor Pavlov, this is how i end up here). This is what i got:
i know lz77,deflate,dinary tree, markov chains and range encoding works but.............
Im not that good with c/c++ so looking at the code (and since its optmized) makes me hard to understand lmza and lmza2... maybe if you can tell me how LMZA will compress this data i will be able to understand the code:
"This is how LZMA works, i know small strings doesnt compress well but its just for example purposes"
Look
CPP\7zip\Bundles\LzmaSpec\LzmaSpec.cpp
in LZMA SDK.
That code is not optimized.
So it's simpler to understand.