I'm happy to share with you a new PPMX! Traditionally, new PPMX is a complete rewrite of a program. It's heavily optimized an order-5 PPM with some simple SEE-like tricks. Memory usage was increased to about 300 MB.
Enjoy! :_superman2:
Printable View
I'm happy to share with you a new PPMX! Traditionally, new PPMX is a complete rewrite of a program. It's heavily optimized an order-5 PPM with some simple SEE-like tricks. Memory usage was increased to about 300 MB.
Enjoy! :_superman2:
Hello everyone,
thanks! But that was really unexpected (having in mind your latest statement in ppmx 0.06-thread...) ;)
Best regards!
Here's the requested benchmark: http://nishi.dreamhosters.com/u/ppmx07.htm
I guess we can say that its an improvement comparing to v06 (its not so obvious vs 06p4 though)
Tested. http://mattmahoney.net/dc/text.html#1936
It might help to have an option to use more memory, at least for LTCB.
Edit: 1.1236 on the generic benchmark. http://mattmahoney.net/dc/uiq/
Thanks a lot! :cool:
I decided to try some experiments with order 0-1-2-3-5 models like ppmx but using an ISSE chain rather than PPM. This ZPAQ model uses 269 MB, to get it close to the 300 MB used by ppmx. Context mixing compresses a little smaller but is 4-6 times slower.
ppmx enwik8 100000000 -> 23941730 in 34.4 secCode:(i5.cfg)
comp 3 3 0 0 5 (hh hm ph pm n)
0 icm 5 (order 0,1,2,3,5 chain)
1 isse 13 0
2 isse 20 1
3 isse 20 2
4 isse 21 3
(5 mix 8 0 5 16 255) (to uncomment mixer, change n from 5 to 6 above)
hcomp
c++ *c=a b=c a=0 (save in rotating buffer M)
d= 1 hash *d=a (order 1)
d++ b-- hash *d=a (order 2)
d++ b-- hash *d=a (order 3)
d++ b-- hash b-- hash *d=a (order 5)
halt
post
0
end
zpaq oci5 -> 22619665 in 152 sec (without mixer)
zpaq oci5 -> 22310984 in 178 sec (with mixer)
ppmx calgary.tar 3152896 -> 797832 in 1.5 sec
zpaq oci5 -> 742959 in 5.5 sec (without mixer)
zpaq oci5 -> 729767 in 6.3 sec (with mixer)
Also, using straight mixing (order 0) works a little better than using an ISSE chain by itself, but not as well as combining both techniques.
enwik8 -> 22467590 in 159 secCode:comp 3 3 0 0 6 (hh hm ph pm n)
0 icm 5 (orders 0,1,2,3,5)
1 icm 13
2 icm 20
3 icm 20
4 icm 21
5 mix 8 0 5 16 255
(rest is unchanged)
calgary.tar -> 740989 in 5.6 sec