LZ4

壓縮演算法

LZ4是一種無失真資料壓縮演算法,著重於壓縮和解壓縮速度,它屬於面向位元組的LZ77壓縮方案家族。

LZ4
原作者Yann Collet
開發者Yann Collet
首次發布2011年4月24日 (2011-04-24)
目前版本1.10(2024年7月22日,​4個月前​(2024-07-22[1]
原始碼庫 編輯維基數據鏈結
程式語言C
作業系統跨平台
平台可移植
類型資料壓縮
許可協定Simplified BSD License
網站lz4.org 編輯維基數據鏈結

特徵

LZ4 演算法目標是提供速度和壓縮比的良好權衡,壓縮率比 LZO 差,也比 Deflate 類型的演算法差,但是 LZ4 壓縮速度與 LZO 相似,比 DEFLATE 快數倍,而解壓縮速度則明顯快於 LZO。[2]

設計

壓縮可以在流或者塊中進行。在尋找最佳匹配時投入更多努力可達到更高的壓縮率,這樣的結果是更小的輸出和更快的解壓縮速度。

實現

Yann Collet使用C語言製成的參考實現發布在BSD許可證之下。此演算法已有多種語言的移植繫結,包括JavaC#Python等。[3]像是Hadoop等資料庫使用此演算法進行快速壓縮。LZ4也在Linux核心 3.11中被原生實現。[4]ZFS檔案系統的FreeBSDIllumos、ZFS on Linux,以及ZFS-OSX實現都支援LZ4演算法進行即時壓縮。[5][6][7][8]Linux從3.19-rc1開始在SquashFS中支援LZ4。[9]Yann Collet也在較新版的Zstd壓縮軟體中實現了LZ4。

參考資料

  1. ^ https://github.com/lz4/lz4/releases/tag/v1.10.0. [2024-09-30].  缺少或|title=為空 (幫助)
  2. ^ Michael Larabel. Support For Compressing The Linux Kernel With LZ4. Phoronix. 2013-01-28 [2015-08-28]. (原始內容存檔於2020-11-27). 
  3. ^ GitHub上的Extremely Fast Compression algorithm http://www.lz4.org
  4. ^ Jonathan Corbet. Kernel development. LWN.net. 2013-07-19 [2015-08-28]. (原始內容存檔於2017-12-15). 
  5. ^ FreeBSD 9.2-RELEASE Release Notes. FreeBSD. 2013-11-13 [2015-08-28]. (原始內容存檔於2020-11-12). 
  6. ^ LZ4 Compression. illumos. [2015-08-28]. (原始內容存檔於2018-10-09). 
  7. ^ GitHub上的Illumos #3035 LZ4 compression support in ZFS and GRUB
  8. ^ Features: lz4 compression. OpenZFS. [2015-08-28]. (原始內容存檔於2020-04-25). 
  9. ^ Phillip Lougher. Squashfs: Add LZ4 compression configuration option. 2014-11-27 [2015-08-28]. 

外部連結