home *** CD-ROM | disk | FTP | other *** search
- BLZW
- Bryan's turbo-charged LZW compressor
- Version 1.00
- Copyright 1992 Bryan Ford
-
-
-
- License/Disclaimer
- ~~~~~~~~~~~~~~~~~~
-
- BLZW is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your option)
- any later version.
-
- BLZW 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. See the GNU General Public License for more
- details.
-
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 675 Mass Ave, Cambridge, MA 02139, USA.
-
-
-
- Description
- ~~~~~~~~~~~
-
- BLZW is an XPK packer sublibrary which implements a highly optimized
- form of the popular LZW compression algorithm. This is essentially the
- same algorithm used in Arc, Zoo, and Unix compress.
-
- Most common packers for the Amiga are oriented toward pack-once,
- unpack-many situations (games, demos, etc.), and thus concentrate on
- unpacking speed while sacrificing decompression. Unlike these, BLZW is
- intended for situations where packing speed is also important: for example,
- in real-time communications (i.e. compressing data going into a modem and
- decompressing it as it comes out the other end), or hard drive backup.
-
- The LZW algorithm can operate in several modes, or "maximum code
- sizes." Without getting into too many technicalities, larger codes
- generally result in better compression ratios (especially for large files)
- and slightly higher speed, but require more memory for both packing and
- unpacking. BLZW can be told to use any maximum code size from 9 to 15
- bits. For comparison, Arc used an LZW algorithm with a maximum code size
- of 12 bits, Zoo operated at 13 bits, and Unix compress commonly operates at
- 14 or 16 bits. (Supporting 16-bit compression in BLZW would have
- necessitated significant slowdown, so I decided not to support it for now.)
-
- To select the maximum code size BLZW uses, look at the table below,
- find the code size you want (or just look for the mode with the statistics
- you would like), and select any number within the listed "mode range". Then
- append a period and the mode number to the "BLZW" keyword specified to XPK
- (or any other program that lets you specify an XPK method). For example,
- to get 14-bit compression, you could type "XPK BLZW.80 <infile> <outfile>".
- If you specify no maximum code size, BLZW defaults to 13 bits, and hence
- operates at basically the same compression ratio as Zoo (although much
- faster).
-
- Following is a table briefly listing some comparative statistics for
- BLZW. These were generated by xbench on the standard XPK benchmark system
- (A3000/25 with SCRAM, using the AmigaVision executable as data).
-
- Code Mode Packing Unpacking Packing Unpacking Compression
- Size Range Memory Memory Speed Speed Ratio
- ~~~~~~ ~~~~~ ~~~~~~~ ~~~~~~~~~ ~~~~~~~ ~~~~~~~~~ ~~~~~~~~~~~
- 9 0-14 3K 2K 159 K/s 303 K/s 24.4%
- 10 15-28 7K 4K 141 K/s 328 K/s 29.4%
- 11 29-42 15K 8K 135 K/s 343 K/s 31.7%
- 12 43-57 30K 16K 134 K/s 356 K/s 32.4%
- 13 58-71 60K 32K 139 K/s 364 K/s 32.9%
- 14 72-85 120K 64K 143 K/s 374 K/s 33.1%
- 15 86-100 240K 128K 157 K/s 381 K/s 33.7%
-
-
-
- Version History
- ~~~~~~~~~~~~~~~
-
- 3.00 (R3, 24-Sep-92)
- Fixed a bug in the compressor that would generate a bad file if
- the last code written needed to expand the code size.
-
- 2.00 (???)
- Hmmm, dunno exactly what happened to this version...
-
- 1.00 (R2, 4-Jun-92)
- First public release.
-
-
-
- Contact Address
- ~~~~~~~~~~~~~~~
-
- I tend to move around a great deal, so mail sent directly to me
- sometimes has a hard time catching up. If you want mail to reach me (it
- may take a while, but it WILL reach me), send it to this address:
-
- Bryan Ford
- 8749 Alta Hills Circle
- Sandy, UT 84093
-
- I can be reached more quickly (for the time being anyway) on the phone
- or through one of the electronic mail addresses below:
-
- (801) 585-4619
- bryan.ford@m.cc.utah.edu
- baf0863@cc.utah.edu
- baf0863@utahcca.bitnet
-
-
-