home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / compress / xpk25usr.lha / Docs / NUKE.doc < prev    next >
Text File  |  1992-06-06  |  3KB  |  75 lines

  1.                                     NUKE
  2.                 An LZ77 variant with hyperfast decompression
  3.                                 Version 1.00
  4.                     Copyright 1992 Urban Dominik Mueller
  5.  
  6.  
  7.  
  8.                             License/Disclaimer
  9.                             ------------------
  10.  
  11.     This library may be freely distributed with the XPK compression
  12. package, as long as it is kept in its original, complete, and unmodified
  13. form.  It may not be distributed by itself or in a commercial package of
  14. any kind without my permission.
  15.  
  16.     This program is distributed in the hope that it will be useful, but
  17. WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  18. or FITNESS FOR A PARTICULAR PURPOSE.
  19.  
  20.  
  21.                                 Description
  22.                                 -----------
  23.  
  24.     NUKE is an XPK packer sublibrary which implements a highly optimized
  25. form of the popular LZ77 compression algorithm.  This is essentially the
  26. same algorithm used in PowerPacker, Imploder and (among other algorithms)
  27. in the LZH/LHA packers.
  28.  
  29.     Most applications of packers mean packing once and unpacking many times.
  30. One example is a PD program that gets distributed around the world, or a
  31. compressed program on the hard disk the needs to be decompressed when loaded.
  32. NUKE tries to be fast at decompression, thus restricts itself from applying
  33. fancy algorithms (Huffman, Ari-coding). In order to achieve reasonable
  34. compression factors anyway, it scans a very long range (more than 24K)
  35. for identical byte sequences and if it finds any, it outputs offset and
  36. length instead of the bytes themselves.
  37.  
  38. Of course scanning such a long range for duplicates is quite a CPU-intensive
  39. process.  I have tried to make it as fast as possible, and with around
  40. 35K/sec (A3000) I'd say I've come close to the best that can be done with
  41. this approach. There's a drawback, though. The compression must use large
  42. hashing tables to reach this speed. I've made sure that NUKE is still
  43. usable on a plain 512K Amiga, but you won't be able to run many things
  44. besides NUKE while you're packing. There is, by the way, no increase in
  45. mem needs with increasing file size.
  46.  
  47.     Following is a table briefly listing some comparative statistics for
  48. NUKE.  These were generated by xBench on the standard XPK benchmark system
  49. (A3000/25 with SCRAM, using the AmigaVision executable as data). Note that
  50. memory needs don't include xpkmaster.library's buffers.
  51.  
  52. Method   Packing   Unpacking   Packing   Unpacking   Compression
  53.          Memory     Memory      Speed      Speed        Ratio
  54. ------   -------   ---------   -------   ---------   -----------
  55.  NUKE      192K        0K      35 K/s     613 K/s       45.2%  
  56.  
  57.  
  58.                               Version History
  59.                               ---------------
  60.  
  61. 1.0     First public release.
  62.  
  63.  
  64.  
  65.                               Contact Address
  66.                               ---------------
  67.  
  68.     Urban Dominik Mueller
  69.     Schulhausstrasse 83
  70.  CH-6312 Steinhausen
  71.     SWITZERLAND
  72.  
  73.     umueller@amiga.physik.unizh.ch
  74.     umueller@iiic.ethz.ch
  75.