jkataja/pompom
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
Arithmetic Coding and PPM compression Janne J Kataja <[email protected]> Configure: $ $VISUAL common.pri Edit the -march=___ , -msse4.2 and -mcrc32 gcc options to match your target hardware (options in 'gcc --help=target'). Setting -DBUILTIN_CRC enables the use of CRC32c hardware intrisics. The instruction is added in SSE4.2 (available in i5/i7 or later). Otherwise, software hashing will be used. Using CRC32 instruction has a major impact on performance. Build: Minimum of gcc 4.4 is required to build. $ qmake $ make Usage: $ bin/pompom -h Usage: pompom [OPTION]... Compress or decompress input using fixed-order PPM compression. Reads from standard input and writes to standard output. Options: -c [ --stdout ] compress to stdout (default) -d [ --decompress ] decompress to stdout -h [ --help ] show this help -a [ --adapt ] compress: fast local adaptation -A [ --adaptsize ] arg (=22) compress: adaptation threshold in bits [8,32] -r [ --reset ] compress: full reset model on memory limit -b [ --bootsize ] arg (=32) compress: bootstrap buffer size in KiB [1,255] -n [ --count ] arg (=0) compress: stop after count bytes -o [ --order ] arg (=3) compress: model order [1,6] -m [ --mem ] arg (=32) compress: memory use in MiB [8,2048] Benchmarking: Place a text corpus in directory ex. calgary/ , largetext/ or pizzachili/ . Benchmarking script runtest.pl takes a path containing a test corpus as an argument, and 1) compresses data using gzip, bzip2, 7zip and pompom, 2) uncompresses the data, 3) checks that md5sum of original and uncompressed files match and 4) outputs a LaTeX table of the results, with total compression and uncompression time and compressed file bpc ratio. $ data/runtest.pl data/calgary/