热门问题
时间线
聊天
视角

Zstandard

壓縮演算法 来自维基百科,自由的百科全书

Remove ads

Zstandard(或Zstd)是由FacebookYann Collet英語Yann Collet開發的一個無失真資料壓縮演算法。該名稱也指其C語言參考實作。第1版的實作於2016年8月31日釋出為自由軟體[2][3][4]

快速預覽 原作者, 開發者 ...
Remove ads

特色

設計Zstandard的目的是提供一個類似於DEFLATE演算法的壓縮比,但更快,特別是解壓縮快的演算法。它的壓縮等級從負5級(最快)到22級(壓縮速度最慢,但是壓縮比最高)可以調整。[5]

zstd套件裡面有壓縮和解壓縮的並列(多執行緒)實作。從1.3.2版本(2017年10月)開始,zstd 有選擇地進行非常長的搜尋和重複資料消除(--long,128MiB窗口),類似於rzip或lrzip。[6]

壓縮速度在最快和最慢級別之間可以相差20倍或更多,而解壓縮速度統統很快,在最快和最慢級別之間相差不到20%。[7] Zstandard命令列有一個「自動調整」(--adapt)模式,根據I/O條件改變壓縮等級,主要是寫入輸出的速度。

Zstd在其最大壓縮等級下的壓縮比接近lzma、lzham和ppmx,並且比lzabzip2效能更好。[8][9] Zstandard達到了目前的帕雷托最適性,因為它解壓縮的速度比任何其他目前可用的演算法都要快,並且有類似的或者更好的壓縮比。[10][11]

字典對小檔案的壓縮比有很大的影響,所以Zstandard可以使用使用者提供的壓縮字典。它還提供了一種訓練模式,能夠從一組樣本生成一個字典。[12][13] 特別是,可以載入一個字典來處理檔案之間具有冗餘的大型檔案集,但不一定在每個檔案(例如紀錄檔檔案)內。

Remove ads

使用情況

快速預覽 副檔名, 網路媒體型式 ...

Linux核心自2017年11月以來就套件含了Zstandard (4.14版本) ,作為btrfsSquashFS檔案系統的壓縮方法。[15][16][17]

2017年,Allan Jude將Zstandard整合到FreeBSD核心中,[18] 用於概念驗證OpenZFS壓縮方法。[7] 隨後,它受整合為核心傾印(英語:Core dump)(使用者程式和核心崩潰)的壓縮器選項。

AWS RedshiftRocksDB資料庫支援使用Zstandard進行欄位壓縮。[19]

2018年3月,CanonicalUbuntu Linux發行版中測試了[20]預設使用zstd作為deb壓縮方法。與deb的xz壓縮相比,等級19的zstd解壓縮速度要快得多,但代價是套件檔案大小增加了6%。Debian開發者Ian Jackson英語Ian Jackson希望再等幾年再官方採用zstd來封裝。[21][22][23]

2018年,該演算法釋出為 RFC 8478,它還定義了相關的媒體類型「application/zstd」、副檔名「zst」和HTTP內容編碼「zstd」。[24]

2019年10月,隨著pacman 5.2套件管理器的釋出,Arch Linux增加了對zstd套件壓縮方法的支援,[25] 2020年1月,官方儲存庫中的套件從xz轉換為zstd。Arch採用zstd -c -T0 --ultra -20 -,與xz相比,所有壓縮檔的大小增加了0.8%,解壓速度提高了1300%;當使用多個執行緒時,解壓主記憶體增加了50 MiB,壓縮主記憶體會增加,但會隨著使用的執行緒數而擴充。[26][27][28][29] 在.NSZ / .XCZ檔案格式中完整實作了該演算法以及多種壓縮等級,[30]任天堂Switch混合遊戲機的自製英語homebrew (video games)社群開發。[31]

Remove ads

授權條款

參考實作以BSD授權條款授權,釋出在GitHub上。自1.0版本以來,它有額外的專利權授權。[32]

自1.3.1版,[33]拿掉此專利權授權,授權改成BSD + GPLv2雙授權。[34]

參見

參考資料

外部連結

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads