tandemstrong
and that's it. Decompression doesn't use any memory, only the I/O buffers.
On the compression side, the memory cost is : + buffer for compression (typically == size of data to compress) + 16 KB for tables
And that's it.
We are very very far from the 12 MB mentioned.
It measures memory usage from the lz4 command line utility, without mentioning it. This is completely different from lz4 algorithm.
Effectively, it measures input / output buffers, which are external to lz4. Plus it uses highest settings for such buffers, also without mentioning it. Using -B4 setting, for example, would reduce I/O buffer memory by a 50X factor.
lz4 itself uses only 16KB for compression.
There is a function, called LZ4_decompress_safe_usingDict() which seems to match your objectives.
In case of doubt, you should ask directly the author, at : https://groups.google.com/forum/#!forum/lz4c