|
Copyright © 2000-2005 Oliver Roberts, All Rights Reserved.
Block-sorting/huffman xpk compression library based on Julian Seward's bzip2 algorithms (for 68K, OS4, MorphOS and WarpOS)
Julian Sadler's bzip2 compresses files using the Burrows-Wheeler block
sorting text compression algorithm, and Huffman coding. Compression is
generally considerably better than that achieved by more conventional
LZ77/LZ78-based compressors, and approaches the performance of the PPM
family of statistical compressors.
xpkBZP2.library uses the same compression algorithm as bzip2, and allows
you to compress files with the same high crunch factor as bzip2, but under
the XPK interface.
In summary, xpkBZP2.library offers generally a very high compression ratio,
typically around 70-90%. Of course, there's no such thing as a free lunch,
and the downside is that the compression routines require lots of memory,
although there are modes available which use less memory, at the expense of
compression efficiency.
| |
Changes since 1.6:
|
- PPC OS4 native version public release - rebuilt with GCC 3.4.3,
now 10% faster at packing, and upto 30% faster unpacking
- MorphOS and WarpOS versions recompiled with VBCC 0.8h, both
now 2% faster at packing/unpacking and 6% faster unpacking for MorphOS
|
|
The following benchmarks were generating after booting with no startup-sequence
on my 50MHz 68060 and 240MHz 603e. The standard set of benchmark files was
used in all cases, with the figures below being generated from the averages.
68k version |
Mode | Ratio | Pack Speed | Unpack Speed | Pack Mem | Unpack Mem | Description |
0..19 | 79.5% | 107K/s | 330K/s | 1171K | 488K | 100K -1 |
20..29 | 80.2% | 111K/s | 326K/s | 1953K | 878K | 200K -2 |
30..39 | 80.4% | 109K/s | 324K/s | 2734K | 1269K | 300K -3 |
40..49 | 80.7% | 106K/s | 323K/s | 3515K | 1660K | 400K -4 |
50..59 | 80.8% | 104K/s | 320K/s | 4296K | 2058K | 500K -5 |
60..69 | 80.8% | 102K/s | 319K/s | 5078K | 2441K | 600K -6 |
70..79 | 80.9% | 103K/s | 316K/s | 5957K | 2832K | 700K -7 |
80..89 | 80.9% | 103K/s | 313K/s | 6640K | 3222K | 800K -8 |
90..100 | 80.7% | 103K/s | 310K/s | 7421K | 3613K | 900K -9 |
OS4 version |
Mode | Ratio | Pack Speed | Unpack Speed | Pack Mem | Unpack Mem | Description |
0..19 | 79.5% | 227K/s | 1231K/s | 1171K | 488K | 100K -1 |
20..29 | 80.2% | 239K/s | 1130K/s | 1953K | 878K | 200K -2 |
30..39 | 80.4% | 235K/s | 1089K/s | 2734K | 1269K | 300K -3 |
40..49 | 80.7% | 224K/s | 1056K/s | 3515K | 1660K | 400K -4 |
50..59 | 80.8% | 217K/s | 1021K/s | 4296K | 2058K | 500K -5 |
60..69 | 80.8% | 213K/s | 996K/s | 5078K | 2441K | 600K -6 |
70..79 | 80.9% | 213K/s | 985K/s | 5957K | 2832K | 700K -7 |
80..89 | 80.9% | 213K/s | 878K/s | 6640K | 3222K | 800K -8 |
90..100 | 80.7% | 211K/s | 964K/s | 7421K | 3613K | 900K -9 |
WarpOS version |
Mode | Ratio | Pack Speed | Unpack Speed | Pack Mem | Unpack Mem | Description |
0..19 | 79.5% | 201K/s | 985K/s | 1171K | 488K | 100K -1 |
20..29 | 80.2% | 212K/s | 928K/s | 1953K | 878K | 200K -2 |
30..39 | 80.4% | 208K/s | 900K/s | 2734K | 1269K | 300K -3 |
40..49 | 80.7% | 199K/s | 877K/s | 3515K | 1660K | 400K -4 |
50..59 | 80.8% | 195K/s | 855K/s | 4296K | 2058K | 500K -5 |
60..69 | 80.8% | 191K/s | 850K/s | 5078K | 2441K | 600K -6 |
70..79 | 80.9% | 191K/s | 837K/s | 5957K | 2832K | 700K -7 |
80..89 | 80.9% | 191K/s | 832K/s | 6640K | 3222K | 800K -8 |
90..100 | 80.7% | 190K/s | 822K/s | 7421K | 3613K | 900K -9 |
MorphOS version |
Mode | Ratio | Pack Speed | Unpack Speed | Pack Mem | Unpack Mem | Description |
0..19 | 79.5% | 198K/s | 971K/s | 1171K | 488K | 100K -1 |
20..29 | 80.2% | 208K/s | 909K/s | 1953K | 878K | 200K -2 |
30..39 | 80.4% | 205K/s | 885K/s | 2734K | 1269K | 300K -3 |
40..49 | 80.7% | 195K/s | 861K/s | 3515K | 1660K | 400K -4 |
50..59 | 80.8% | 191K/s | 840K/s | 4296K | 2058K | 500K -5 |
60..69 | 80.8% | 187K/s | 834K/s | 5078K | 2441K | 600K -6 |
70..79 | 80.9% | 187K/s | 824K/s | 5957K | 2832K | 700K -7 |
80..89 | 80.9% | 187K/s | 819K/s | 6640K | 3222K | 800K -8 |
90..100 | 80.7% | 186K/s | 810K/s | 7421K | 3613K | 900K -9 |
- Kickstart 3.0 or higher
- XPK compression package
- At least 8Mb free ram to use maximum compression
68k version
- 68020 processor or higher (optimized versions included)
OS4 version
- PPC accelerator card / AmigaOne
- AmigaOS 4.0 pre-release or newer
WarpOS version
- PPC accelerator card + 68040/060
- WarpUp Release 4 (powerpc.library V15) or higher
MorphOS version
- PPC accelerator card
- MorphOS beta release 1 or higher
|
|