Late night (or already morning) here and I guess time to release something. Well, working under PPM is timeless process. Since the last release, PPMX was many times rewritten from scratch, I tested many ideas, applied many improvements and optimizations. Found that PPMX 0.05 is totally wrong, and I must write a proper enough PPM-based compressor, doesn't matter will it be greatest or not. So, here are the PPMX 0.06. Quite a baseline order-4 PPM, no SEE, no special tricks or gimmicks. Anyway, with that PPM engine I started something essentially new. At least, I did something new in PPM area - I just can't see that PPMd is everywhere and only. If directly compare to PPMd (-o4) PPMX has really different properties:
Having said that PPMX is much more complex project than, say, BCM or even PIMPLE. Despite PPMX.CPP is as small as 8 KB, it is very tricky to remove all redundant computations and make it faster. I spent on PPMX far much more time than on noted BCM. It's both more interesting, more complex and really non trivial task. So, anyway, enjoy new release!
- It uses hash tables, so no need in rebuild/flush tree
- It is much more stable on "bad" files for PPMd - audio, already compressed and some binary files
- PPMX has no SEE
- It has more aggressive model update (more non-stationary model)
- The model set is order-4-2-1-0-(-1), i.e. PPMX has no order-3 model
- Memory usage is fixed and is about 70 MB
EDIT: Uploaded PPMX 0.06P4 - A highly optimized build that utilizes SSE2 vectorization. As a note you need a Pentium 4 or newer processor.