BEAR4 compression
From ScienceZero
WORK IN PROGRESS...
BEAR2 is designed for microcontrollers that has little RAM. It uses the data decompressed so far as the dictionary.
Header
BEAR2 (used in files) ssssss - symbol size (1-64) iiiii - maximum index size (1-32) cccc - maximum count size (1-16)
0 <symbol> 1 <index> <count>
do indexSize = min(log2(decompressedSize), maximumIndexSize) countSize = min(indexSize, maximumCountSize) read classBit if classBit = 0 then read symbol output symbol decompressedSize += 1 else read index, count endif loop