オープンソースのロスレス圧縮

圧縮アルゴリズムはロスレス(可逆圧縮)とロッシー(不可逆圧縮)に大別できますが、この記事は特にオープンソースのロスレス圧縮についてまとめた資料です。

ロスレス圧縮

ロスレス圧縮アルゴリズムは解凍機能が正確にデータを失うことなく元のファイルを復元することができファイルサイズを減少させることが出来ます。

ロスレス圧縮アルゴリズムの系譜

ロスレス圧縮フォーマットの比較

アーカイブ
フォーマット MIME-TYPE 拡張子 圧縮アルゴリズム 誤り検出符合 リカバリレコード 暗号化 Unicode
ファイル名
タイムスタンプの精度
zip application/zip .zip Shrink,
Reduce (levels 1-4),
Implode
,Deflate,
Deflate64,
bzip2,
LZMA (EFS),
WavPack,
PPMd.
Yes
(CRC-32)
No Yes
(AES)
Yes 2s
7z application/x-7z-compressed .7z LZMA,
LZMA2,
Bzip2,
PPMd,
DEFLATE
Yes
(CRC-32)
No Yes
(AES-256)
Yes 1ms
lha,lzh application/x-lzh-compressed .lha,
.lzh,
LZSSとハフマン符号 Yes
(recent only)
No No No 1s,
2s
rar application/x-rar-compressed .rar PPMd Yes
(CRC-32, BLAKE2)
Yes Yes
(AES-256)
Yes 2s,
1s,
6.5536ms,
25.6µs,
100ns
tar application/x-tar .tar * Partial
(metadata only).*1
No Yes Yes 1s
Cabinet application/vnd.ms-cab-compressed .cab DEFLATE,
Quantum compression,
LZX
Optional PKCS7 No Optional Yes 2s
  • *1 gzipと組み合わせることで完全な誤り訂正となる
圧縮のみ
フォーマット MIME-TYPE 拡張子 圧縮アルゴリズム 誤り検出符合 リカバリレコード 暗号化
gzip application/x-gzip .gz DEFLATE Yes
(CRC-32)
No No
bzip2 application/x-bzip2 .bz2 bzip2 Yes
(CRC-32)
No No
lz4 ? .lz4 LZ77 family Yes
(xxhash)
No No
xz application/x-xz .xz LZMA2 Yes
(header: CRC-32, data: CRC-32, CRC-64, SHA-256)
No No
lzo ? ? ? Yes
(adler32,
CRC-32)
No No

参考