Skip to content

Latest commit

 

History

History
68 lines (56 loc) · 3.82 KB

File metadata and controls

68 lines (56 loc) · 3.82 KB

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