Home > Archive > Compression > September 2004 > Looking for an object oriented implementation of PPM
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Looking for an object oriented implementation of PPM
|
|
| Sachin Garg 2004-09-25, 8:57 am |
| Hi,
I was reading about Object Oriented designing, patterns etc... and
unfortunatly noticed that almost all desgning examples I found tackle
real-world situations which are more about modelling objects like cats,
dogs, humans, teachers, rectangles and sqaures, supply-chain etc...
I wish to find a few examples about how OO designing principles and
patterns (like strategy) fit into designing complex algorithms (and
ofcourse the performance issues relating to it)
PPM bieng something somewhat complicated and something which I fully
understand (I think), I was wondering if I someone can point me to an
OO implementation.
All available code I know of is either in C (or C-style C++) which
doesnt has much to offer when it comes undertanding OO.
Sachin Garg [India]
http://sachingarg.go.to
http://www.geocities.com/schngrg
| |
| Matt Mahoney 2004-09-25, 8:55 pm |
| "Sachin Garg" <schngrg@gmail.com> wrote in message
news:1096112040.698335.277130@k17g2000odb.googlegroups.com...
> I wish to find a few examples about how OO designing principles and
> patterns (like strategy) fit into designing complex algorithms (and
> ofcourse the performance issues relating to it)
>
> PPM bieng something somewhat complicated and something which I fully
> understand (I think), I was wondering if I someone can point me to an
> OO implementation.
PAQ6 uses an object oriented design. However it uses context model mixing,
which gives better compression than PPM. However, like PPM, there is a
logical separation of prediction and encoding, which is captured by the
classes Predictor and Encoder. Prediction is broken into stages: a group of
Models (with a common base class) followed by Mixers and SSE stages). Other
classes are used for lower level data structures.
http://cs.fit.edu/~mmahoney/compression/#paq6
Newer versions such as PAQAR4 give better compression (the best on several
benchmarks), but the documentation hasn't kept up with the code very well,
and some non OO code was added (global variables, assembler). The main
difference with the PAQAR design is that each Mixer has its own SSE stage,
whose results are then averaged.
I don't believe that OO design hurts performance if done right, although PAQ
does make some concessions to execution speed by avoiding exceptions and run
time resolution of virtual functions.
-- Matt Mahoney
| |
| Sachin Garg 2004-09-27, 3:55 am |
| Unfortunatly, It seems that the servers to that link are
down, you would probably want to check with the servers.
I could find the google cache of page but google doesnt
caches the .CPPs
Do you have a mirror? Or can you mail me the code?
Sachin Garg [India]
http://sachingarg.go.to
http://www.geocities.com/schngrg
| |
| Matt Mahoney 2004-09-28, 8:55 pm |
| "Sachin Garg" <schngrg@gmail.com> wrote in message news:<1096260048.233850.217380@h37g2000oda.googlegroups.com>...
> Unfortunatly, It seems that the servers to that link are
> down, you would probably want to check with the servers.
>
> I could find the google cache of page but google doesnt
> caches the .CPPs
>
> Do you have a mirror? Or can you mail me the code?
>
> Sachin Garg [India]
> http://sachingarg.go.to
> http://www.geocities.com/schngrg
The site is back up. http://www.cs.fit.edu/~mmahoney/compression/
Florida Tech was shut down for hurricane Jeanne without electricity or
Internet(second hurricane this month).
-- Matt Mahoney
|
|
|
|
|