Versions tested: | 0.999b |
Optimal parameters: | a2 |
Links: | ha_nt.zip |
Authors: | Harri Hirvola |
Algorithms: | PPM,LZ+HUF |
Notable peformances: | - |
the program documentation (info.txt)HA is a small file archiver utility. It's main goal is to offer maximum compression without fancy addons.
[...]
Available switches are:
- 0,1,2 Try compression method #. More than one can be specified. Methods are:
- 0-CPY Simple copying of files.
- 1-ASC Default method using sliding window dictionary followed by arithmetic coder. Offers quite good compression on wide variety of file types.
- 2-HSC Compression method based on finite context model and arithmetic coder. Quite slow for binary data, but offers very good compression especially for longer text files.
the program documentation (readme)HA is an archiver which I released in january 1993 as version 0.98. After that I had plans to improve speed, archive handling etc. which would have required total rewrite of the code. For that I unfortunately could not find time. Because there has been quite considerably interest for internals of HA (especially for the HSC compression method) I decided to make a source level release from my current test version (0.999 beta) and place it under GNU General Public License. The sources for this version are not very consistent or clean, but everything should work.
There are several improvements which should be made before this could be called version 1.0. Some of the most obvious of these are:
- Compression methods should be coded in assembler for PC and using more efficient data structures for 32 bit platforms. Current version does some things only to overcome 64kB segments of 8086.
- UNIX port has still some problems and is missing some things (for example a grouping operator in wildcard matches).
- File handling is far from optimum.
- Archive handling is not too clever either.
- Testing should be done more thoroughly as there are many special cases in compression routines which get used very rarely.
- Documentation of code and algorithms is totally missing.
This archive (ha0999.zip) contains this readme, MSDOS executable ha.exe and source files for HA 0.999beta. Ha.exe is NOT compiled directly from included sources. Some critical parts of it were compiled from hand optimized versions of compiler output. It is somewhat faster than "pure C" version.
MSDOS sources are for Borland C 4.0 but older versions of bcc should work. Makefile needs some editing as some paths are hardcoded in it. UNIX sources are not very generic. I have only tested this using Linux on PC and AIX on IBM6000. Only compiler and make utility that I have tested are GCC and GNU MAKE.
Porting HA should be fairly easy as all machine specific code is in machine.h and machine.c under machine specific directories. Md_funcs.txt documents these functions. Examples can be found from pc and nix directories.
(Have info that should be added here? E-mail.)
Ver | Rating | CPR | DPR | S.E. | R.E. | Ratio | C. kB/s | D. kB/s | ||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
a1 | ||||||||||||
0.999b | crash while decompressing (app1) | |||||||||||
a2 | ||||||||||||
0.999b | 79 | 80 | 78 | 128 | 2 | 2.768 | 1624 | 1408 |