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
else
read index, count
for each count
read symbolFromDecompressed
output symbol
next
endif
loop