Хотел давно тиснуть этот пост, но не было повода. А тут как раз LVD сделал MegaLZ. Мне он понравился, а особенно то, что есть packer под Win.
В общем для Commodore64 существует довольно сильный компрессор PuCrunch - http://www.cs.tut.fi/~albert/Dev/pucrunch/
Коротко о нём:
Сообщение от
http://www.cs.tut.fi/~albert/Dev/pucrunch/
Pucrunch is a Hybrid LZ77 and RLE compressor, uses an Elias Gamma Code for lengths, mixture of Gamma Code and linear for LZ77 offset, and ranked RLE bytes indexed by the same Gamma Code. Uses no extra memory in decompression.
Вот тестдрайв на файлах от MegaLZ_Benchmark - http://lvd.nm.ru/MegaLZ/ на чуть-чуть подправленном PuCrunch (убран заголовок из выходных файлов). Запускался с параметрами -c0 -d -fdelta
Код:
|Apri_PuCrunch
| |New MegaLZ
| | |Old MegaLZ
| | | |Bitbuster Extreme v0.1
| | | | |HRUST2.1
| | | | | |RIP v0.01
-------+-------+-------+-------+-------+-------+------
code-1 | 12403 | 12654 | 12863 | 12827 | 12865 | 12118
code-2 | 7818 | 7767 | 8034 | 8119 | 8012 | 7689
code-3 | 8257 | 8406 | 8524 | 8181 | 8291 | 7891
-------+-------+-------+-------+-------+-------+------
scrv-1 | 4603 | 4672 | 4724 | 4757 | 4705 | 4551
scrv-2 | 4121 | 4074 | 4148 | 4170 | 4144 | 4030
scrv-3 | 3660 | 3604 | 3688 | 3717 | 3722 | 3544
scrv-4 | 2146 | 2211 | 2314 | 2270 | 2359 | 2165
scrv-5 | 4405 | 4399 | 4479 | 4470 | 4486 | 4298
scrv-6 | 4344 | 4233 | 4324 | 4300 | 4345 | 4129
scrv-7 | 3789 | 3788 | 3899 | 3902 | 3921 | 3721
scrv-8 | 5278 | 5275 | 5340 | 5345 | 5308 | 5139
scrv-9 | 5028 | 4958 | 5043 | 5081 | 5048 | 4844
-------+-------+-------+-------+-------+-------+------
text-1 | 3862 | 3858 | 3986 | 4077 | 4004 | 3726
text-2 | 6748 | 7341 | 7663 | 7766 | 7549 | 6525
text-3 | 9172 | 10252 | 10681 | 11156 | 10360 | 8847
text-4 | 18567 | 20406 | 21417 | 22246 | 20892 | 17334
text-5 | 9478 | 10443 | 10919 | 11225 | 10618 | 9088
В некоторых тестах PuCrunch выигрывает MegaLZ, а в некоторых проигрывает ему. Очень хорошо жмет текстовые файлы.
Декомпрессор PuCrunch занимает 255байт(после моей небольшой доработки), но не релоцируем. В целом выигрывает у MegaLZ на 1.5кб.
См. в аттаче оригинальный PuCrunch, мною чуть подправленный Apri_Pucrunch+декомпрессор для Alasm'a и запакованные им файлы для сводного benchmark'a.