Hello, I'm new here. I came to this forum because I have a general interest in data compression.
I have written code for several simple compression algorithms, and most of them are working correctly. However, the performance for the LZ77 based code is very poor. I use a ring buffer for IO buffering and store the offset to the next byte of the same value in the buffer, so that not every position in the window is checked for a match. It currently runs at about 100 kb/s for a 1kb window on a 2ghz computer. I was wondering if anyone had any suggestions to improve the performance of the algorithm. Thanks to everyone in advance.
Also, I created a fast preprocessor for entropy coders. It runs at over 100 mb/s and has moderate gains on compression ratio. Here are some benchmarks:
enwik8 100,000,000 bytes
enwik8 -> Huff0 -> output 63,081,072 bytes
enwik8 -> PrePred -> Huff0 -> output 50,986,908 bytes
7z.dll 1,478,656 bytes
7z.dll -> Huff0 -> output 1,059,865 bytes
7z.dll -> PrePred -> Huff0 -> output 892,123 bytes