Just for your information: I have started porting TarsaLZP into Java. Java code is much more readable than assembly code so it will be easier for you to figure out what is going on in my algorithm. As for now it's not working. There are only some common (for decoder and encoder) fuctions related to modelling and simple GUI.
Archive with NetBeans project of TarsaLZP is here: http://www.ii.uj.edu.pl/~tarsa/jTarsaLZP.7z .
Currently I have exams so I can't work on the code but I will be free at the beginning of next month.
If you know some good (fast and efficient) arithmetic coder written in Java, please let me know.
I will experiment with Java version of TarsaLZP and when big achievments are done I will port them to assembly.
On my ToDo list are:
- order-12 LZP (or another order higher than ,
- skipping read from higher order models if symbol is not seen in lower order models (just write because reading in that case is unnecessary) - I don't know if it will speed things up as AFAIK memory controller writes and reads entire cache lines (maybe I'm wrong here and it can update only a few bytes),
jTarsaLZP is working now. Read the rest of topic to know how it works and how it progressed.