|Versions tested:||2, 3c|
|Authors:||Matt Mahoney, Kenneth Oksanen|
A 20-bit hashed order-4 context is mapped into the last 3 bytes seen in that context in a move-to-front queue, plus a consecutive hit count. Queue positions (hits) or literals (misses) are arithmetic coded using the count and an an order-1 context (order-0 if the count is more than 3) as secondary context. After a byte is coded, it is moved to the front of the queue. The hit count is updated as follows: incremented (max 63) if the first byte is matched, set to 1 if any other byte is matched, or set to 0 in case of a miss.sr2 description from LTCB
sr 3C (aka SR3C) is a rewrite of sr 2 in C by Kenneth Oksanen. http://cessu.blogspot.com/2008/11/sr3c.html We use the version by Matt Mahoney which implements an interface for the SR3C.
The author of sr 3C describes the program.
email 2009, Oct 15
- SR3C uses significantly less memory than SR3 and SR3A.
- The hash table used for storing contexts is two-way associative instead of the direct-mapped hash table of SR3, and a 4-bit checksum has been added to each context.
- The policy of updating probabilities of arithmetically encoding rank bits and the policy for updating the MTF-queue has also been modified slightly.
- SR3C is a an implementation in plain C and it uses a callback-based interface. The code is re-entrant for separate compression streams.
(Have info that should be added here? E-mail.)
|Ver||Rating||CPR||DPR||S.E.||R.E.||Ratio||C. kB/s||D. kB/s|