3rd November 2008, 12:47
I am trying to understand the DMC algorithm(s) and some of its improvements. By doing so, several questions occurred.
First, in the generalized setting over arbitrary alphabets: Does one
need to encode the escape symbol (as in PPM) or is it just used to follow
some path in the automaton (until one can estimate the probability
of the current symbol).
Second, Nania Francesco Antonios hook compresser seems to be the
DMC implementation with best compression ratio (LTCB). He describes
an improvement of the original algorithm which he calls ADMC (Advanced DMC). I have to admit that I could not follow those explanations.
Maybe someone (Nania?) could explain it again.
Third, are there any further (public) improvements to the original algorithms (despite combination with PPM or other compression algorithms)?
P.S. Apologies for bothering you with these questions - I am rather new to this field of data compression, so please be patient...
3rd November 2008, 14:15
First of all, willkommen
Originally Posted by Alibert
DMC algorithm is interesting for me too. You can find a compact design in PAQ8 series compressor. In PAQ8 series, DMC produces prediction as a submodel. So, actually it's different from hook implementation. But, I think, you will find it useful to understand for what's going on.
If you are curious about DMC performance, you can also check mcomp from WinRK's site. There is a bit different implementation in mcomp. You can read small details about it from the blog.
3rd November 2008, 22:02
Thank you for the links, osman.
Do you know any approaches for "size restriction" of the automaton other than deleting the complete automaton (and partly rebuilding it from the last fragment of the input)? I was wondering whether other techniques such as minimization of finite state machines can be adapted.
Last edited by Alibert; 4th November 2008 at 10:43.
6th February 2009, 12:17
Does anybody of you know where to find freehook 0.3 sources?
Is there any newer version out there?
Thanks in advance,
6th February 2009, 13:52
6th February 2009, 23:19
7th February 2009, 11:30
@LovePimple: Thank you for the link. My original starting point
has been LTCB, but there the link is obsolete. Maybe Matt
would like to use your's.
@Shelwien: I do not like the presentation of DMC in wikipedia.
In particular, I think using a "table" for the description of
the algorithm is inappropriate. DMC is based on an edge-weighted
directed graph (which of course can be implemented as a table).
Nevertheless, thank you for the link.
Last edited by Alibert; 7th February 2009 at 11:31.