Skip to content

jkataja/pompom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Arithmetic Coding and PPM compression
Janne J Kataja <firstname.lastname@iki.fi>


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/

About

Arithmetic Coding and PPM compression

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published