Versions tested: 0.1e
Optimal parameters: 75
Links: cmm4_01e_080420.7z
Authors: Christopher Mattern
Algorithms: X86, CM
Notable peformances: -


CMM4 0.1e Is a variable order context mixing coder, it predicts using the four "highest" (ranking: 643210) models in each bit coding step and, in addition, the match model input. Orders 0 and 1 are implemented using a table lookup, all higher orders use nibble based hashing. Matches are found using order 4 and 6 LZP, the pointers and a quick exclusion hash are stored within the model's hashing tables. The mixer joins the 4 (or 5 in presence of a match model) predictions and outputs them to a SSE stage. A mixer (similar to (L)PAQ) is selected based on the last byte's 4 MSBs and on the coding order. The SSE context is made of an order 0 context and quantized combination of the previous symbol rank, the match length and partially matched symbol. This results in a notable compression increase on redundant data. The model's counters are quantized using the PAQ's state machine since CMM4 (will be replaced). Despite the use of hashing most data structures are tuned to never cross a cache line per nibble (the models) or octet (the mixer) (only SSE does). The core compression performance is equivalent to LPAQ1/2, while being faster. In addition there's a filter framework, which currently implements an x86 transform and will be extended.
description by the author, borrowed from the LTCB


(Have info that should be added here? E-mail.)

Qualified configurations
Ver Rating CPR DPR S.E. R.E. Ratio C. kB/s D. kB/s
0.1e 84 156 12 25 28 4.304 953 938

Version info

0.1e, tar: yes, mode: 32-bit, crc32: a563b309, decoder: 27 kB, tested: 2010 Apr 15
compression: cmm4.exe <args> <src> <cfile>
decompression: cmm4.exe d <cfile> <src>