Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Compression Experiment

Warning

Do not run on untrusted input. The author assume no responsibility for any data loss or corruption.

Algorithm Details

Algorithm v1: Order-4 Context Modeler + rANS Entropy Coder (.fv1)

# Usage:
v1.exe file_to_compress
v1.exe file_to_decompress.fv1

Algorithm v2: Full-Block BWT + Adaptive Context-Mixing Range Coder (.fv2)

# Usage:
v2.exe file_to_compress
v2.exe file_to_decompress.fv2

Both implementations support compiling into a self-extracting executable:

odin run v1 -define:SFX=shakespeare.txt

Benchmark Results on enwik8 (100 MB)

Algorithm / Level Compressed Size (bytes) Compression Time (s) Decompression Time (s)
fv2 20,789,653 145.736 s 15.023 s
xz / LZMA2 (-9) 24,865,244 79.018 s 1.067 s
xz / LZMA2 (-6) 26,375,764 55.579 s 1.140 s
zstd (-19) 26,936,936 53.059 s 0.148 s
brotli (-q11) 27,045,057 172.364 s 0.243 s
bzip2 (-9) 29,008,758 5.415 s 2.489 s
zstd (-15) 29,430,901 23.089 s 0.135 s
brotli (-q9) 29,473,899 10.515 s 0.238 s
fv1 29,813,950 15.089 s 18.929 s
brotli (-q5) 31,792,290 1.852 s 0.243 s
zstd (-7) 31,981,436 1.518 s 0.140 s
bzip2 (-1) 33,259,568 5.488 s 2.178 s
xz / LZMA2 (-1) 33,276,380 4.921 s 1.366 s
zstd (-3) 35,419,425 0.580 s 0.138 s
zlib (Deflate -9) 36,493,234 3.005 s 0.181 s
gzip (-9) 36,493,246 3.133 s 0.192 s
zlib (Deflate -6) 36,877,083 1.481 s 0.193 s
gzip (-6) 36,877,095 1.587 s 0.199 s
brotli (-q1) 39,123,256 0.451 s 0.330 s
zstd (-1) 40,662,735 0.350 s 0.115 s
lz4 (HC -12) 41,927,831 5.316 s 0.059 s
zlib (Deflate -1) 52,705,901 0.459 s 0.222 s
gzip (-1) 52,705,913 0.487 s 0.235 s
lz4 (default) 57,277,262 0.214 s 0.057 s

Resources

About

My experiments about text compression

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages