Hello, I have some questions about LZMA.

I found this comment below at LzmaLib.h.

/*
RAM requirements for LZMA:
for compression: (dictSize * 11.5 + 6 MB) + state_size
for decompression: dictSize + state_size
state_size = (4 + (1.5 << (lc + lp))) KB by default (lc=3, lp=0), state_size = 16 KB.
LZMA properties (5 bytes) format
Offset Size Description
0 1 lc, lp and pb in encoded form.
1 4 dictSize (little endian).*/

I am curious about how each compression/decompression memory usage formula comes.

(especially a very big constant 6 MB for compression...)

And is it possible to use very small memory(about 4KB) for compression/decompression?

Thanks in advance.

Last edit: Yeonjong Bong 2014-02-26