Nakamichi is a LZSS codec with super-fast decompression, targeting mainly highly redundant text data.
Written by Kaze.
http://www.codeproject.com/Articles/...34#xx4807834xx
http://www.sanmayce.com/Nakamichi/
A very quick'n'rough bench on Phenom 2:
It appears to be by far the fastest LZ decoder out there.Code:pcbsd-8973% ./fsbench -v all ~/bench/calgary.tar Codec version args C.Size (C.Ratio) E.Speed D.Speed E.Eff. D.Eff. 7z-deflate 9.20 5 986324 (x 3.197) 5608 KB/s 121 MB/s 3853e3 4061e3 7z-deflate64 9.20 5 954413 (x 3.303) 4826 KB/s 129 MB/s 3365e3 4176e3 crush 0.0.1 0 1115260 (x 2.827) 14.6 MB/s 160 MB/s 9675e3 11e6 LZ4 r114 1620566 (x 1.946) 252 MB/s 1082 MB/s 122e6 122e6 LZ4hc r114 1195650 (x 2.637) 17.0 MB/s 1287 MB/s 10e6 11e6 LZF 3.6 1524761 (x 2.068) 108 MB/s 441 MB/s 55e6 55e6 lzmat 1.1 1181402 (x 2.669) 16.6 MB/s 236 MB/s 10e6 11e6 LZO 2.06 1x1 1595374 (x 1.976) 269 MB/s 425 MB/s 132e6 133e6 miniz 1.11 6 1032885 (x 3.053) 14.0 MB/s 165 MB/s 9659e3 11e6 Nakamichi round 5 2024249 (x 1.558) 36.0 KB/s 1825 MB/s 12e3 2199e3 Nakamichi-nomemcpy round 5 2024249 (x 1.558) 25.8 KB/s 1750 MB/s 9440e0 2204e3 QuickLZ 1.5.1b6 1 1497111 (x 2.106) 303 MB/s 335 MB/s 159e6 160e6 RLE64 R3.00 64 2877120 (x 1.096) 1732 MB/s 4228 MB/s 151e6 151e6 Snappy 1.1.0 1619277 (x 1.947) 221 MB/s 646 MB/s 107e6 107e6 tornado 0.6a 6 989437 (x 3.187) 17.1 MB/s 75.9 MB/s 11e6 12e6 Yappy v2 10 1565492 (x 2.014) 55.9 MB/s 1119 MB/s 28e6 30e6 zlib 1.2.8 6 1034381 (x 3.048) 14.4 MB/s 234 MB/s 9883e3 12e6 zling 20140324 0 1036139 (x 3.043) 38.5 MB/s 96.2 MB/s 25e6 28e6 zopfli/zlib 1.0.0/1.2.8 15/6 976086 (x 3.230) 141 KB/s 240 MB/s 97e3 4234e3 CityHash32 1.1.0 3152900 (x 1.000) 2165 MB/s 2311 MB/s 32e15 32e15 CityHash64 1.1.0 3152904 (x 1.000) 4071 MB/s 4582 MB/s 32e15 32e15 CityHash128 1.1.0 3152912 (x 1.000) 4294 MB/s 4715 MB/s 32e15 32e15 uhash 2007-04-17 3152904 (x 1.000) 1350 MB/s 1431 MB/s 32e15 32e15 vhash 2007-04-17 3152912 (x 1.000) 5238 MB/s 5905 MB/s 32e15 32e15 umac 2007-04-17 3152904 (x 1.000) 1389 MB/s 1413 MB/s 32e15 32e15 vmac 2007-04-17 3152912 (x 1.000) 5226 MB/s 5635 MB/s 32e15 32e15 SipHash24 reference 3152904 (x 1.000) 1014 MB/s 1056 MB/s 32e15 32e15 murmur3_x86_32 2012-02-29 3152900 (x 1.000) 2197 MB/s 2315 MB/s 32e15 32e15 murmur3_x86_128 2012-02-29 3152912 (x 1.000) 2225 MB/s 2293 MB/s 32e15 32e15 murmur3_x64_128 2012-02-29 3152912 (x 1.000) 3481 MB/s 3771 MB/s 32e15 32e15 SpookyHash V2 2012-08-05 3152912 (x 1.000) 6098 MB/s 6651 MB/s 32e15 32e15 FNV1a-Jesteress 2013-06-16 3152900 (x 1.000) 5076 MB/s 5605 MB/s 32e15 32e15 FNV1a-Mantis 2013-06-16 3152900 (x 1.000) 5100 MB/s 5563 MB/s 32e15 32e15 FNV1a-Meiyan 2013-06-16 3152900 (x 1.000) 5082 MB/s 5557 MB/s 32e15 32e15 FNV1a-Tesla 2013-06-16 3152904 (x 1.000) 8100 MB/s 9351 MB/s 32e15 32e15 FNV1a-Tesla3 2013-06-16 3152904 (x 1.000) 8233 MB/s 9977 MB/s 32e15 32e15 FNV1a-Yorikke 2013-06-16 3152900 (x 1.000) 5923 MB/s 6856 MB/s 32e15 32e15 FNV1a-YoshimitsuTRIAD 2013-06-16 3152900 (x 1.000) 6224 MB/s 7030 MB/s 32e15 32e15 FNV1a-Yoshimura 2013-06-16 3152904 (x 1.000) 5761 MB/s 6525 MB/s 32e15 32e15 Blake224 SHA3 Final 64bit opt 3152924 (x 1.000) 138 MB/s 137 MB/s 32e15 32e15 Blake256 SHA3 Final 64bit opt 3152928 (x 1.000) 136 MB/s 137 MB/s 32e15 32e15 Blake384 SHA3 Final 64bit opt 3152944 (x 1.000) 227 MB/s 228 MB/s 32e15 32e15 Blake512 SHA3 Final 64bit opt 3152960 (x 1.000) 228 MB/s 230 MB/s 32e15 32e15 Keccak224 3.2 3152924 (x 1.000) 217 MB/s 225 MB/s 31e15 32e15 Keccak256 3.2 3152928 (x 1.000) 206 MB/s 209 MB/s 32e15 32e15 Keccak384 3.2 3152944 (x 1.000) 164 MB/s 165 MB/s 31e15 32e15 Keccak512 3.2 3152960 (x 1.000) 114 MB/s 114 MB/s 32e15 32e15 JH224 SHA3 Final 64bit opt 3152924 (x 1.000) 27.4 MB/s 27.7 MB/s 29e15 30e15 JH256 SHA3 Final 64bit opt 3152928 (x 1.000) 27.5 MB/s 27.4 MB/s 29e15 29e15 JH384 SHA3 Final 64bit opt 3152944 (x 1.000) 29.0 MB/s 29.5 MB/s 31e15 32e15 Skein224 SHA3 Final 64bit opt 3152924 (x 1.000) 477 MB/s 476 MB/s 32e15 32e15 Skein256 SHA3 Final 64bit opt 3152928 (x 1.000) 473 MB/s 479 MB/s 32e15 32e15 Skein384 SHA3 Final 64bit opt 3152944 (x 1.000) 465 MB/s 475 MB/s 32e15 32e15 Skein512 SHA3 Final 64bit opt 3152960 (x 1.000) 478 MB/s 483 MB/s 32e15 32e15 Skein1024 SHA3 Final 64bit opt 3153024 (x 1.000) 272 MB/s 272 MB/s 32e15 32e15 xxhash r29 3152900 (x 1.000) 4366 MB/s 4727 MB/s 32e15 32e15 AES128Bernstein little-4 128 3152896 (x 1.000) 149 MB/s 152 MB/s 0e0 0e0 AES256Hongjun v1 256 3152896 (x 1.000) 152 MB/s 156 MB/s 0e0 0e0 ChaCha 20080118 128 3152896 (x 1.000) 554 MB/s 562 MB/s 0e0 0e0 HC128 2007-01b 128 3152896 (x 1.000) 939 MB/s 974 MB/s 0e0 0e0 HC256 2007-01 256 3152896 (x 1.000) 659 MB/s 668 MB/s 0e0 0e0 Lex v2 128 3152896 (x 1.000) 401 MB/s 415 MB/s 0e0 0e0 Rabbit opt2 128 3152896 (x 1.000) 338 MB/s 356 MB/s 0e0 0e0 RC4 2005-08-21 128 3152896 (x 1.000) 181 MB/s 181 MB/s 0e0 0e0 Salsa20_8 merged 256 3152896 (x 1.000) 660 MB/s 664 MB/s 0e0 0e0 Salsa20_12 merged 256 3152896 (x 1.000) 431 MB/s 437 MB/s 0e0 0e0 Salsa20 merged 256 3152896 (x 1.000) 291 MB/s 295 MB/s 0e0 0e0 Snow2 fast 256 3152896 (x 1.000) 631 MB/s 636 MB/s 0e0 0e0 Sosemanuk 2005-04-26 256 3152896 (x 1.000) 403 MB/s 420 MB/s 0e0 0e0 Trivium 2006-02-23 80 3152896 (x 1.000) 547 MB/s 563 MB/s 0e0 0e0 bswap16 0 3152896 (x 1.000) 1485 MB/s - 0e0 0e0 CRC mismatch! bswap32 0 3152896 (x 1.000) 1957 MB/s - 0e0 0e0 CRC mismatch! bswap64 0 3152896 (x 1.000) 2417 MB/s - 0e0 0e0 CRC mismatch! memcpy 0 3152896 (x 1.000) 2165 MB/s - 0e0 0e0 memmove 0 3152896 (x 1.000) 2195 MB/s - 0e0 0e0 nop 0 1 (x3152896.000) 7457 MB/s 2757 GB/s 7456e6 7456e6 CRC mismatch! Codec version args C.Size (C.Ratio) E.Speed D.Speed E.Eff. D.Eff. done... (4*X*1) iteration(s)).
Note: Unlike f.e. lz4 it's not safe against lz stream corruption.
Note: There are also SIMD versions, I have not benchmarked them.