xpkSHRI ========= xpkSHRI.library Version 2.2 (30 Jan 1996) Copyright 1996 by Matthias Meixner 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 in a commercial package of any kind without my written permission. You must not distribute the library without this documentation. You must not remove the copyright-information from the library or this document. 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 ----------- SHRI is an XPK packer sublibrary which implements a highly for compression rate optimized compressor, that uses offset/len encoding with adaptive arithmetic aftercoding for best compression results. Its compression rate is better than that of most other packers, e.g. lha, zoo or powerpacker. It supports 7 modes, which differ in the size of the dictionary: Modes Dictionarysize ------ -------------- 0- 14 1k 15- 28 2k 29- 42 4k 43- 56 8k 57- 70 16k 71- 84 32k 85-100 64k A larger dictionarysize gives a higher compression rate and faster decompression, but slows down the compression. Here are some benchmarks to give you an impression of the compressionrate compared to other compression-libraries (BLZW,NUKE,RAKE 68020 V1.5) These tests were done on an A4000/040. Binary (assembler of SAS-C6.51): Packer UComp Comp CF CTime CSpd UTime USpd ------------------------------------------------------------------ blzw 104540 67144 35.8% 0.63 163659 0.16 634266 nuke 104540 53672 48.7% 2.15 48562 0.08 1244520 rake 104540 52980 49.4% 0.75 138040 0.07 1341530 shri.0 104540 48404 53.7% 2.94 35484 1.57 66409 shri.15 104540 47544 54.6% 2.97 35094 1.53 68291 shri.29 104540 46652 55.4% 3.13 33343 1.50 69491 shri.43 104540 46236 55.8% 3.40 30724 1.43 72610 shri.57 104540 46080 56.0% 3.69 28311 1.42 73229 shri.71 104540 45952 56.1% 4.11 25425 1.40 74198 shri.85 104540 45732 56.3% 4.71 22182 1.40 74430 English text: Packer UComp Comp CF CTime CSpd UTime USpd ------------------------------------------------------------------ blzw 284397 140160 50.8% 1.39 204168 0.42 662889 nuke 284397 139540 51.0% 11.21 25349 0.26 1082039 rake 284397 131760 53.7% 3.85 73740 0.23 1195470 shri.0 284397 137008 51.9% 8.68 32757 4.72 60228 shri.15 284397 131576 53.8% 8.30 34254 4.23 67146 shri.29 284397 126456 55.6% 8.17 34799 3.76 75561 shri.43 284397 121336 57.4% 8.52 33349 3.32 85499 shri.57 284397 116380 59.1% 9.61 29578 2.96 95968 shri.71 284397 112132 60.6% 11.90 23896 2.69 105528 shri.85 284397 108028 62.1% 16.84 16886 2.52 112634 C-sourcecode: Packer UComp Comp CF CTime CSpd UTime USpd ------------------------------------------------------------------ blzw 102137 38400 62.5% 0.44 230525 0.14 709441 nuke 102137 28300 72.3% 1.66 61493 0.06 1655974 rake 102137 24916 75.7% 1.30 78178 0.05 1889131 shri.0 102137 30088 70.6% 2.01 50606 0.94 107935 shri.15 102137 27228 73.4% 2.02 50511 0.83 122441 shri.29 102137 25460 75.1% 2.19 46441 0.74 136683 shri.43 102137 23984 76.6% 2.59 39410 0.68 149844 shri.57 102137 22528 78.0% 3.31 30803 0.60 168234 shri.71 102137 21360 79.1% 4.66 21906 0.55 183074 shri.85 102137 20704 79.8% 5.94 17173 0.53 189540 As you can see, this library is not meant to be used for online-compression as it is used in e.g. XFH. It is meant to be used for achieving highest compression-rates. These can be useful, when transferring files via modem, for a backup to a slow medium (floppy disks) when you have a fast computer or for creating archives with the xpkarchive.library. The decompressionspeed of this version is about 82% higher than that of version 1.0. The compression is about 5% faster. History ------- V0.2 First public Release V0.3 XpksPackChunk retured XPKERR_CORRUPT instead of XPKERR_EXPANSION - Bug fixed in V0.3 V0.4 SHRI could not decompress files, which where partly compressable - Bug fixed in V0.4 V1.0 New Version with improved compression- and decompressionspeed V2.1 Improved decompressionspeed, all relevant parts of the decompressor are now written in assembler. V2.2 Removed important bug in the decompression-part, that produced errors with chunksizes above 32767 bytes Contact Address --------------- Matthias Meixner Sandberg 13 36145 Schwarzbach Germany meixner@rbg.informatik.th-darmstadt.de