-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathREADME
61 lines (41 loc) · 1.82 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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/