Difference between revisions of "BEAR4 compression"
From ScienceZero
m (moved BEAR2 compression to BEAR3 compression) |
|||
Line 1: | Line 1: | ||
WORK IN PROGRESS... | WORK IN PROGRESS... | ||
− | + | BEAR3 is designed for microcontrollers that has little RAM. It uses the data decompressed so far as the dictionary, compared to typical LZ compression this decreases efficiency since the index range must be larger and the need for storing the count. Most of the loss is recovered by only reading the number of bits required for the current range. | |
Header | Header |
Revision as of 19:50, 19 February 2011
WORK IN PROGRESS...
BEAR3 is designed for microcontrollers that has little RAM. It uses the data decompressed so far as the dictionary, compared to typical LZ compression this decreases efficiency since the index range must be larger and the need for storing the count. Most of the loss is recovered by only reading the number of bits required for the current range.
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