home *** CD-ROM | disk | FTP | other *** search
/ World of A1200 / World_Of_A1200.iso / programs / compress / misc / xpk / docs / blzw.doc next >
Text File  |  1995-02-27  |  5KB  |  113 lines

  1.                                    BLZW
  2.                    Bryan's turbo-charged LZW compressor
  3.                                Version 1.00
  4.                          Copyright 1992 Bryan Ford
  5.  
  6.  
  7.  
  8.                             License/Disclaimer
  9.                             ~~~~~~~~~~~~~~~~~~
  10.  
  11.     BLZW is free software; you can redistribute it and/or modify it under
  12. the terms of the GNU General Public License as published by the Free
  13. Software Foundation; either version 2 of the License, or (at your option)
  14. any later version.
  15.  
  16.     BLZW is distributed in the hope that it will be useful, but WITHOUT ANY
  17. WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  18. FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
  19. details.
  20.  
  21.     You should have received a copy of the GNU General Public License along
  22. with this program; if not, write to the Free Software Foundation, Inc.,
  23. 675 Mass Ave, Cambridge, MA 02139, USA.
  24.  
  25.  
  26.  
  27.                                 Description
  28.                                 ~~~~~~~~~~~
  29.  
  30.     BLZW is an XPK packer sublibrary which implements a highly optimized
  31. form of the popular LZW compression algorithm.  This is essentially the
  32. same algorithm used in Arc, Zoo, and Unix compress.
  33.  
  34.     Most common packers for the Amiga are oriented toward pack-once,
  35. unpack-many situations (games, demos, etc.), and thus concentrate on
  36. unpacking speed while sacrificing decompression.  Unlike these, BLZW is
  37. intended for situations where packing speed is also important: for example,
  38. in real-time communications (i.e. compressing data going into a modem and
  39. decompressing it as it comes out the other end), or hard drive backup.
  40.  
  41.     The LZW algorithm can operate in several modes, or "maximum code
  42. sizes." Without getting into too many technicalities, larger codes
  43. generally result in better compression ratios (especially for large files)
  44. and slightly higher speed, but require more memory for both packing and
  45. unpacking.  BLZW can be told to use any maximum code size from 9 to 15
  46. bits.  For comparison, Arc used an LZW algorithm with a maximum code size
  47. of 12 bits, Zoo operated at 13 bits, and Unix compress commonly operates at
  48. 14 or 16 bits.  (Supporting 16-bit compression in BLZW would have
  49. necessitated significant slowdown, so I decided not to support it for now.)
  50.  
  51.     To select the maximum code size BLZW uses, look at the table below,
  52. find the code size you want (or just look for the mode with the statistics
  53. you would like), and select any number within the listed "mode range". Then
  54. append a period and the mode number to the "BLZW" keyword specified to XPK
  55. (or any other program that lets you specify an XPK method).  For example,
  56. to get 14-bit compression, you could type "XPK BLZW.80 <infile> <outfile>".
  57. If you specify no maximum code size, BLZW defaults to 13 bits, and hence
  58. operates at basically the same compression ratio as Zoo (although much
  59. faster).
  60.  
  61.     Following is a table briefly listing some comparative statistics for
  62. BLZW.  These were generated by xbench on the standard XPK benchmark system
  63. (A3000/25 with SCRAM, using the AmigaVision executable as data).
  64.  
  65.  Code    Mode    Packing   Unpacking   Packing   Unpacking   Compression
  66.  Size    Range   Memory     Memory      Speed      Speed        Ratio
  67. ~~~~~~   ~~~~~   ~~~~~~~   ~~~~~~~~~   ~~~~~~~   ~~~~~~~~~   ~~~~~~~~~~~
  68.    9      0-14      3K         2K      159 K/s    303 K/s       24.4%
  69.   10     15-28      7K         4K      141 K/s    328 K/s       29.4%
  70.   11     29-42     15K         8K      135 K/s    343 K/s       31.7%
  71.   12     43-57     30K        16K      134 K/s    356 K/s       32.4%
  72.   13     58-71     60K        32K      139 K/s    364 K/s       32.9%
  73.   14     72-85    120K        64K      143 K/s    374 K/s       33.1%
  74.   15    86-100    240K       128K      157 K/s    381 K/s       33.7%
  75.  
  76.  
  77.  
  78.                               Version History
  79.                               ~~~~~~~~~~~~~~~
  80.  
  81. 3.00    (R3, 24-Sep-92)
  82.         Fixed a bug in the compressor that would generate a bad file if
  83.             the last code written needed to expand the code size.
  84.  
  85. 2.00    (???)
  86.         Hmmm, dunno exactly what happened to this version...
  87.  
  88. 1.00    (R2, 4-Jun-92)
  89.         First public release.
  90.  
  91.  
  92.  
  93.                               Contact Address
  94.                               ~~~~~~~~~~~~~~~
  95.  
  96.     I tend to move around a great deal, so mail sent directly to me
  97. sometimes has a hard time catching up.  If you want mail to reach me (it
  98. may take a while, but it WILL reach me), send it to this address:
  99.  
  100.         Bryan Ford
  101.         8749 Alta Hills Circle
  102.         Sandy, UT 84093
  103.  
  104.     I can be reached more quickly (for the time being anyway) on the phone
  105. or through one of the electronic mail addresses below:
  106.  
  107.         (801) 585-4619
  108.         bryan.ford@m.cc.utah.edu
  109.         baf0863@cc.utah.edu
  110.         baf0863@utahcca.bitnet
  111.  
  112.  
  113.