home *** CD-ROM | disk | FTP | other *** search
/ Archive Magazine 1996 / ARCHIVE_96.iso / discs / mag_discs / volume_2 / issue_05 / utilities / COMP_DOC < prev    next >
Text File  |  1988-09-28  |  6KB  |  136 lines

  1. ->docs.compress
  2.  
  3.      Name: compress
  4.  
  5.   Purpose: Data compression
  6.  
  7.     Usage: compress [-dfvcV] [-b maxbits] [file ...]
  8.  
  9.                      -V         => print Version
  10.                      -e         => erase old file
  11.                      -d         => uncompress
  12.                      -v         => verbose
  13.                      -f         => force overwrite of output file
  14.                      -n         => no header: useful to uncompress old files
  15.                      -b maxbits => maxbits.  If -b is specified, then 
  16.                                    maxbits MUST be given also.
  17.                      -c         => cat all output to stdout
  18.                      -C         => generate output compatible with compress 2.0                                                                                 
  19. Overview
  20. ========
  21. Compress, is a UNIX program for squashing files so that they take up less
  22. room either for transfer or for storage. Compress files, can be identified
  23. by the fact that they usually have a '.Z' at the end of their filename and
  24. are indecipherable by conventional means. Basically compress works by being
  25. fed an ordinary file which it compresses and writes back to disc with a '.Z'
  26. (or in the case of the Archimedes a '_Z')  tacked onto the end of the old file
  27. name. File atributes, load, exec addresses etc. are preserved on the new file.
  28. When you actually want to use the file, you feed the _Z form into either
  29. uncompress or compress with the -d flag (these are identical programs) and the
  30. original file without the '_Z' is recreated.
  31.  
  32. Compress uses the LZW technique like arc (elsewhere on this disc). A crucial
  33. parameter in this, is the 'number of bits' used for codes. Whereas arc uses
  34. a fixed number 13. Compress, can use a variable number. This has advantages,
  35. because for long files, the more bits, the more efficient the compression is.
  36. However, more bits means more memory and some machines do not have as much
  37. memory as one might guess. All this implies, that either you or someone else
  38. may end up with a 'Z' file that can't be expanded on a given machine.
  39. This version of compress, needs 500K of memory to run, over and above the
  40. program memory and will cope with compress files encoded using upto and
  41. including 16 bits. If you want to be on the safe side, encode your files
  42. using 12 bits which is something of a standard; being the best that PDP11
  43. owners can manage. But not it should be said, too much of a standard in case
  44. you were thinking things were getting simple at this point. There have been
  45. several older formats for .Z files which compress can cope with if the 
  46. correct flags are set so look out for these.
  47.  
  48.  
  49. Description
  50. ===========
  51.  
  52. Compress  reduces the size of the named files using adaptive Lempel-Ziv coding.
  53. Whenever possible, each file is replaced by one with the extension _Z while
  54. keeping the same attributes. If no files are specified, the standard input is
  55. compressed to the standard output. Compressed files can be restored to their
  56. original form using uncompress or compress -d. 
  57.  
  58. Compress uses the modified Lempel-Ziv algorithm popularized in
  59. "A Technique for High Performance Data Compression", Terry A. Welch,"IEEE
  60. Computer,"vol. 17, no. 6 (June 1984), pp. 8-19.
  61. Common substrings in the file are first replaced by 9-bit codes 257 and up.
  62. When code 512 is reached, the algorithm switches to 10-bit codes and
  63. continues to use more bits until the limit specified by the flag is reached
  64. (default 16). Bits must be between 9 and 16. After the bits limit is attained,
  65. compress periodically checks the compression ratio.  If it is increasing,
  66. compress continues to use the existing code dictionary.  However, if the 
  67. compression ratio decreases, compress discards the table of substrings and
  68. rebuilds it from scratch.  This allows the algorithm to adapt to the next
  69. "block" of the file.
  70.  
  71. Note that the -b flag is omitted for uncompress, since the bits parameter
  72. specified during compression is encoded within the output, along with
  73. a magic number to ensure that neither decompression of random data nor
  74. recompression of compressed data is attempted. 
  75.  
  76. The amount of compression obtained depends on the size of the input, the number
  77. of bits per code, and the distribution of common substrings. Typically, text
  78. such as source code or English is reduced by 50-60%. Compression is generally
  79. much better than that achieved by Huffman coding or adaptive Huffman coding
  80. and takes less time to compute. Under the -v option, a message is printed
  81. yielding the percentage of reduction for each file compressed. If the -V
  82. option is specified, the current version and compile options are printed on
  83. stderr.
  84.  
  85. The -f flag, causes existing files on disc to be overwritten whilst the
  86. -e flag, makes compress delete the source file after using it.
  87.  
  88. Diagnostics
  89. ===========
  90. Usage: compress [-dfvcV] [-b maxbits] [file ...]
  91.  
  92. Invalid options were specified on the command line.
  93.  
  94. Missing maxbits
  95. Maxbits must follow -b.
  96.  
  97. file :not in compressed format
  98. The file specified to uncompress has not been compressed.
  99.  
  100. file :compressed with xx bits, can only handle yy bits.
  101.  
  102. File was compressed by a program that could deal with more bits than the
  103. compress code on this machine. Recompress the file with smaller bits.
  104.  
  105. file :already has _Z suffix -- no change
  106. The file is assumed to be already compressed.
  107. Rename the file and try again.
  108.  
  109. file :filename too long to tack on _Z
  110. The file cannot be compressed because its name is longer than 10 characters.
  111. Rename and try again.
  112.  
  113. file already exists; do you wish to overwrite (y or n)?
  114. Respond "y" if you want the output file to be replaced; "n" if not.
  115.  
  116. uncompress: corrupt input
  117. A memory access violation was detected which usually means that the input file
  118. has been corrupted.
  119.  
  120. Compression: "xx.xx%"
  121. Percentage of the input saved by compression.
  122. (Relevant only for -v.)
  123.  
  124. -- not a regular file: unchanged
  125. When the input file is not a regular file, (e.g. a directory), it is left
  126. unaltered.
  127.  
  128. -- file unchanged
  129. No savings is achieved by
  130. compression.  The input remains virgin.
  131.  
  132.  
  133. Notes
  134. Release 1.00 October 1988.
  135. Archimedes implementation (c) David Pilling 1988.
  136.