home *** CD-ROM | disk | FTP | other *** search
- NUKE
- An LZ77 variant with hyperfast decompression
- Version 1.00
- Copyright 1992 Urban Dominik Mueller
-
-
-
- License/Disclaimer
- ------------------
-
- This library may be freely distributed with the XPK compression
- package, as long as it is kept in its original, complete, and unmodified
- form. It may not be distributed by itself or in a commercial package of
- any kind without my permission.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- or FITNESS FOR A PARTICULAR PURPOSE.
-
-
- Description
- -----------
-
- NUKE is an XPK packer sublibrary which implements a highly optimized
- form of the popular LZ77 compression algorithm. This is essentially the
- same algorithm used in PowerPacker, Imploder and (among other algorithms)
- in the LZH/LHA packers.
-
- Most applications of packers mean packing once and unpacking many times.
- One example is a PD program that gets distributed around the world, or a
- compressed program on the hard disk the needs to be decompressed when loaded.
- NUKE tries to be fast at decompression, thus restricts itself from applying
- fancy algorithms (Huffman, Ari-coding). In order to achieve reasonable
- compression factors anyway, it scans a very long range (more than 24K)
- for identical byte sequences and if it finds any, it outputs offset and
- length instead of the bytes themselves.
-
- Of course scanning such a long range for duplicates is quite a CPU-intensive
- process. I have tried to make it as fast as possible, and with around
- 35K/sec (A3000) I'd say I've come close to the best that can be done with
- this approach. There's a drawback, though. The compression must use large
- hashing tables to reach this speed. I've made sure that NUKE is still
- usable on a plain 512K Amiga, but you won't be able to run many things
- besides NUKE while you're packing. There is, by the way, no increase in
- mem needs with increasing file size.
-
- Following is a table briefly listing some comparative statistics for
- NUKE. These were generated by xBench on the standard XPK benchmark system
- (A3000/25 with SCRAM, using the AmigaVision executable as data). Note that
- memory needs don't include xpkmaster.library's buffers.
-
- Method Packing Unpacking Packing Unpacking Compression
- Memory Memory Speed Speed Ratio
- ------ ------- --------- ------- --------- -----------
- NUKE 192K 0K 35 K/s 613 K/s 45.2%
-
-
- Version History
- ---------------
-
- 1.0 First public release.
-
-
-
- Contact Address
- ---------------
-
- Urban Dominik Mueller
- Schulhausstrasse 83
- CH-6312 Steinhausen
- SWITZERLAND
-
- umueller@amiga.physik.unizh.ch
- umueller@iiic.ethz.ch
-