Some lines from quicklz.c:
In level 1 the compressor shows ratio on enwik8 52%. How it's possible under such hash function and 4K cells in hash table?
// 1.5.0 final
static __inline ui32 hash_func(ui32 i)
#if QLZ_COMPRESSION_LEVEL == 2
return ((i >> 9) ^ (i >> 13) ^ i) & (QLZ_HASH_VALUES - 1);
return ((i >> 12) ^ i) & (QLZ_HASH_VALUES - 1);
If I change in my lz4i source hash function in on i >> 12) ^ i then the ratio "increases" from 52% to 72%...
Also I've changed in my code size of hash table from 512K to 16K cells, but did not observe acceleration...