home *** CD-ROM | disk | FTP | other *** search
-
-
-
- CRUNCH v2.0
-
-
- CRUNCH v2.0 is a state of the art file compression utility. It
- embodies all of the concepts employed in the UNIX COMPRESS /
- ARC512 algorithm, but is additionally enhanced by a "metastatic
- code reassignment" facility. This is one of several concepts I
- am developing as part of an effort to advance data compression
- techniques beyond current performance limits. I believe this is
- the first time this principle has been proposed or implemented.
-
- The code reassignment is augmented with a refined incremental
- compression ratio analysis for adaptive reset. This provides
- additional improvement, especially on files with certain struc-
- tural variations. (It is ironic to note that if the file
- ARC512.EXE is CRUNCHed, the resulting file is nearly 14% smaller
- than the file produced when that program is used to compress
- itself). Although short files will generally produce the same
- results as the above mentioned utilities, CRUNCH saves a few
- extra bytes by eliminating zero fill between code length changes.
-
- Please note that the above discussion relates to file compres-
- sion, not to the relative merits of ARC's vs. LBR's as structures
- for collections of files. Also note that the quoted ratio is
- not claimed to be typical.
-
-
- Other improvements include:
-
- 1. Use of multi-sector I/O when running in a CP/M 3.0+ environ-
- ment (automatically selected when appropriate). May be
- permanently deactivated if desired.
-
- 2. Relaxed restrictions on filenames (eg. files with a "Z" as
- the middle extension character, such as .AZM files, are not a
- problem).
-
- 3. Improved wildcard operation- non critical errors will abort
- only the current file, not the entire operation.
-
- 4. "Verbose" and "Quiet" modes of operation. The former gives
- full running progress reports while compressing, including number
- of input and output records, compression ratio, "codes assigned"
- and "codes reassigned". Although some of this information has
- limited usefulness, it is amusing to watch. "Quiet" may be pre-
- ferred when using slow (or printing) terminals, and will allow
- the results of up to 24 wildcard operations to remain on the
- console.
-
- 5. Optional prompt before erasure of pre-existing files. A
- warning will be issued if an existing file is about to be over-
- written. This feature can be deactivated if desired.
-
- 6. Full compatibility with all crunched files. UNCR 2.0 will
- uncrunch all "crunched" files, regardless of which version of
- CRUNCH was used to create them. CRUNCH v2.0 will always use the
- improved algorithm to create new files.
-
-
-
- 7. "Confirm" mode of operation. Used in conjunction with a wild-
- card filespec, this option allows selectively crunching or un-
- crunching a subset of all files matching the spec. The user will
- be prompted (Y/N) for each file matching file; a response of "N"
- will simply move on to the next file.
-
- 8. Continuous checking for ^C abort.
-
- 9. Inclusion of a "NOP" code. In addition to the normal special
- EOF and RESET codes, the new structure sets aside two additional
- codes as reserved (one "NOP", one "SPARE"). The "NOP" code can
- be inserted into the data stream at any point and will always be
- ignored by the uncruncher. One possible use of this would be a
- "Telenet Trap"- where the CRUNCH program would monitor its output
- and insert a NOP code if it saw that the output would otherwise
- produce an undesired sequence (ref: R. Freed's PCP-WARN.MQG /
- PCP-FIX.MQG), thus producing files guaranteed to be transmittable
- while using PC-PURSUIT. Although the current CRUNCH program does
- not yet monitor for this, the structure is already set up so this
- (or any other sequence) could be inhibited at any time, yet all
- files would remain upward/downward compatible. Other data comp-
- ression schemes do not have this flexibility.
-
-
- NOTES:
-
- If crunching a file ever causes the result to be larger or equal
- to the original, the program will prompt for whether you really
- want to keep the result or not. CRUNCH does not attempt to de-
- termine whether conventional squeezing would produce a smaller
- file (this is quite unlikely in other than object [.COM /.REL] or
- certain numeric data files). If you want to know, squeeze it and
- find out.
-