While preparing to release the ARJBETA sources I was inspired to write some new compression and decompression routines.
The decoder is very 68000 centered; first write the decoder in 68000 assembly then write the matching compression program.
Now I need some input...
1 At the moment I use the Calgary Compression Corpus for testing but that is not very representative for Atari programs and data. So my request is some data and programs to tweak the code.
2 While tweaking there are decisions to make, better compression and a lager decompression program or less compression and a smaler program? What about speed? Better compression usually means less speed.
This is the current status:
Code: Select all
orig size Atari m7 m4 ni1
bib 111261 32720 40556 36758
book1 768771 293573 354523 331295
book2 610856 191953 230976 213641
geo 102400 67209 71523 74066
news 377109 135530 160683 147993
obj1 21504 10264 10922 11231
obj2 246814 78664 85488 84667
paper1 53161 17838 20046 20659
paper2 82199 28105 32933 32395
paper3 46526 17457 19686 20483
paper4 13286 5400 6025 6591
paper5 11954 4896 5439 5930
paper6 38105 12910 14358 15046
pic 513216 50788 59941 59548
progc 39611 12964 14351 14977
progl 71646 15569 17421 17627
progp 49379 10866 12018 12187
readme 2479 1217 1499 1581
sizes 689 336 454 455
sources 1177 635 824 853
trans 93695 18008 22151 20197
totaal 3255838 1006902 1181817 1128180
Further planned developments.
1 An in place depacker: After decompression the compressed data is overwritten by the decompressed data, no extra space needed.
2 A better replacement for ARJ m7 with a larger sliding dictionary and longer match lengths.
3 A 68000 depacker very optimized for depacking speed.
With the computers of today packing for the Atari ST is easier. When I wrote ARJBETA my biggest problem was memory. One 1Mb was a lot of memory. Now we measure memory in gigabytes instead of megabytes opening up some interesting possibilities for data compression. The speed of modern computers is also a very big bonus. My current development system is a 64Gb AMD Ryzen 9 3900X running Linux.
Hans