| Versions tested: | 2, 3C |
| Rating: | 6 |
| Performance C/D: | 11/0 |
| Optimal parameters: | default |
| Links: | sr2.zip sr3c-1.0.zip |
| Authors: | Matt Mahoney, Kenneth Oksanen |
| Algorithms: | SR+ARI |
| Notable peformances: | - |
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 | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CompressionRatings.Com | ||||||||||||
| <none> | ||||||||||||
| 2 | 4 | 9 | 0 | 332 | 0 | 2.641 | 5062 | 4639 | ||||
| 3C | 6 | + | + | -17% | 2.763 | +4.6% | 3255 | -36% | 3343 | -28% | ||