DEr JCALG1 Algorithmus implementiert den LZSS-Algorithmus. Das ist (soweit ich das korrekt überflogen habe) ein LZW mit zusätzlichem 'sliding window'. Entweder wird eine Zeichenkette als eintrag im Wörterbuch (LZW) kodiert, oder als "jetz kommen X Zeichen, die auch schon an Y Zeichen vorher vorkamen" kodiert wird. Je nachdem, was kürzer ist.
Ich habe mir die Implementierung von JCALG nicht angeschaut, aber könnte mir vorstellen, das das sliding Window nicht optimal umgesetzt wird. Im Übrigen bringt der JCALG1 bei mir nicht die besten Ergebnisse. Hier ist
zlib vorne. Da es zudem schnell genug ist, würde ich das benutzen. Tu ich ja auch.