📄 readme
字号:
DESCRIPTION-----------This archive contains a simple and readable ANSI C library implementing LZSSencoding and decoding. This implementation is not intended to be the best,fastest, smallest, or any other performance related adjective.Included in this library is a sample program demonstrating the usage of theencode and decoding routines. The library has been designed so that it maybe linked with different sliding window search routines which can speed upthe compression time at the cost of additional memory space.More information on LZSS encoding may be found at:http://www.datacompression.info/LZSS.shtmlFILES-----COPYING - Rules for copying and distributing LGPL softwarebitfile.c - Library to allow bitwise reading and writing of files.bitfile.h - Header for bitfile library.brute.c - File implementing brute force search for strings matching the strings to be encoded.comp.c - Simple example of a compression only program.decomp.c - Simple example of a decompression only program.getopt.c - LGPL version of getopt source from GNU projectgetopt.h - LGPL version of getopt headers from GNU projecthash.c - File implementing hash table search for strings matching the strings to be encoded.LICENSE - GNU Lesser General Public Licenselist.c - File implementing linked list indexed search for strings matching the strings to be encoded.lzlocal.h - Header file defining interface to be used by files implementing searches for strings matching strings to be encoded.lzdecode.c - LZSS decoding sourcelzencode.c - LZSS encoding sourcelzss.h - LZSS encoding/decoding header fileslzvars.c - Variables used by both lzencode and lzdecodeMakefile - makefile for this project (assumes gcc compiler and GNU make)README - this filesample.c - Sample program demonstrating usage of encode and decode routines.BUILDING--------To build these files with GNU make and gcc:1. Edit the variable FMOBJ to choose the version of find match which will be used.2. Windows users should define the environment variable OS to be Windows or Windows_NT. This is often already done.3. Enter the command "make" from the command line.The sample programs comp and decomp are not built by default. To build theseprograms on Unix/Linux use the commands "make comp" and "make decomp". Windowsusers should use the commands "make comp.exe" and "make decomp.exe"USAGE-----Usage: sample <options>options: -c : Encode input file to output file. -d : Decode input file to output file. -i <filename> : Name of input file. -o <filename> : Name of output file. -h|? : Print out command line options.-c Performs LZSS style compression on specified input file (see -i) writing the results to the specified output file (see -o).-d Decompresses the specified input file (see -i) writing the results to the specified output file (see -o). Only files compressed by this program may be decompressed.-i <filename> The name of the input file. There is no valid usage of this program without a specified input file.-o <filename> The name of the output file. There is no valid usage of this program without a specified input file.HISTORY-------11/24/03 - Initial release12/10/03 - Changed handling of sliding window to better match standard algorithm description.12/11/03 - Added version with linked lists to speed up encode.12/12/03 - Added version with hash table to speed up encode.02/21/04 - Major changes: * Separated encode/decode, match finding, and main. * Use bitfiles for reading/writing files * Use traditional LZSS encoding where the coded/uncoded bits precede the symbol they are associated with, rather than aggregating the bits.11/08/04 - Major changes: * Split encode and decode routines for to allow for separate linking (see comp.c and decomp.c) * Makefile now builds code as libraries. This should make LGPL compliance a bit easier. * Upgraded to latest bitfile library. * Add the option to pass compression/decompression routines file pointers instead of file names.06/21/05 - Corrected BitFileGetBits/PutBits error that accessed an extra byte when given an integral number of bytes.12/27/05 - Major changes: * Use slower but clearer Get/PutBitsInt for reading/writing bits. * Replace mod with conditional Wrap macro. * Allow hash table to change size with dictionary.TODO----- Replace sequential string search with a multi-level hash and tree searches.AUTHOR------Michael Dipperstein (mdipper@cs.ucsb.edu)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -