LZ4
壓縮演算法
LZ4是一種無失真數據壓縮演算法,着重於壓縮和解壓縮速度,它屬於面向位元組的LZ77壓縮方案家族。
原作者 | Yann Collet |
---|---|
開發者 | Yann Collet |
首次發佈 | 2011年4月24日 |
目前版本 | 1.10(2024年7月22日[1]) |
原始碼庫 | |
程式語言 | C |
作業系統 | 跨平台 |
平台 | 可移植 |
類型 | 數據壓縮 |
許可協定 | Simplified BSD License |
網站 | lz4 |
特徵
LZ4 演算法目標是提供速度和壓縮比的良好權衡,壓縮率比 LZO 差,也比 Deflate 類型的演算法差,但是 LZ4 壓縮速度與 LZO 相似,比 DEFLATE 快數倍,而解壓縮速度則明顯快於 LZO。[2]
設計
壓縮可以在流或者塊中進行。在尋找最佳匹配時投入更多努力可達到更高的壓縮率,這樣的結果是更小的輸出和更快的解壓縮速度。
實現
Yann Collet使用C語言製成的參考實現發佈在BSD許可證之下。此演算法已有多種語言的移植和繫結,包括Java、C#、Python等。[3]像是Hadoop等資料庫使用此演算法進行快速壓縮。LZ4也在Linux內核 3.11中被原生實現。[4]ZFS檔案系統的FreeBSD、Illumos、ZFS on Linux,以及ZFS-OSX實現都支援LZ4演算法進行即時壓縮。[5][6][7][8]Linux從3.19-rc1開始在SquashFS中支援LZ4。[9]Yann Collet也在較新版的Zstd壓縮軟件中實現了LZ4。
參考資料
- ^ https://github.com/lz4/lz4/releases/tag/v1.10.0. [2024-09-30]. 缺少或
|title=
為空 (幫助) - ^ Michael Larabel. Support For Compressing The Linux Kernel With LZ4. Phoronix. 2013-01-28 [2015-08-28]. (原始內容存檔於2020-11-27).
- ^ GitHub上的Extremely Fast Compression algorithm http://www.lz4.org
- ^ Jonathan Corbet. Kernel development. LWN.net. 2013-07-19 [2015-08-28]. (原始內容存檔於2017-12-15).
- ^ FreeBSD 9.2-RELEASE Release Notes. FreeBSD. 2013-11-13 [2015-08-28]. (原始內容存檔於2020-11-12).
- ^ LZ4 Compression. illumos. [2015-08-28]. (原始內容存檔於2018-10-09).
- ^ GitHub上的Illumos #3035 LZ4 compression support in ZFS and GRUB
- ^ Features: lz4 compression. OpenZFS. [2015-08-28]. (原始內容存檔於2020-04-25).
- ^ Phillip Lougher. Squashfs: Add LZ4 compression configuration option. 2014-11-27 [2015-08-28].