Zstandard

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 7. října 2019; kontroly vyžadují 9 úprav .
Zstandard
Typ knihovna funkcí a nástroj příkazového řádku [d]
Zapsáno v Xi
Operační systém GNU/Linux , BSD a Mac OS
Nejnovější verze
Licence upravená licence BSD [d] [2][3]aGNU GPL 2[2][4]
webová stránka facebook.github.io/… ​(  anglicky)

Zstandard  je bezztrátový algoritmus komprese dat vyvinutý od roku 2015 Yannem  Colletem s podporou Facebooku ; zstd  je referenční implementace algoritmu Zstandard v programovacím jazyce C pod bezplatnou licencí BSD . Verze 1.0 algoritmu a implementace byla předložena na konci srpna 2016 [5] [6] .

Kombinuje algoritmus komprese dat slovníku LZ77 s efektivním entropickým kódováním (FSE ) Finite State Entropy ( ANS ) , což je algoritmus podobný Huffmanovu kódu , který implementuje neceločíselný počet bitů pro ukládání znaků [7] [8] .

Funkce

Cílem vývoje je dosáhnout kompresních poměrů srovnatelných nebo lepších než klasický deflační algoritmus (vyvinutý v polovině 90. let, implementovaný v Zip , gzip a dalších) při vyšší rychlosti komprese i dekomprese. Podobné problémy řeší Brotli ( Google ) a LZFSE ( Apple také používá ANS FSE) [9] .

Podle LTCB vykazuje zstd 0.6 při maximální úrovni komprese úroveň komprese blízkou archivátorům boz, yxz, tornado; vyšší než lza, brotli , bzip2 a zároveň poskytuje velmi rychlou dekompresi (2,2 ns/bajt na Core i7-3930K při 4,5 GHz) [10]

Algoritmus implementuje 22 úrovní komprese, které se liší rychlostí a účinností (úroveň „1“ je nejrychlejší, úroveň „22“ je efektivnější). Algoritmus může volitelně analyzovat daný soubor dat a sestavit specializované externí slovníky. Uživatelem zadaný slovník zlepšuje kompresní poměr podobných souborů, ale je vyžadován při dekompresi. Slovníky se používají ke kompresi malých souborů, které mají společné sady řetězců, jako jsou soubory xml [11] [12] .

Referenční implementace algoritmu v jazyce C je distribuována pod bezplatnou licencí BSD [13] . Kód je zveřejněn na webu Github . Počínaje verzí 1.3.1 [14] byla z podmínek odstraněna omezená patentová licence a kód byl znovu licencován za podmínek duální licence BSD + GPLv2. [patnáct]

Aplikace

Metoda Zstandard je součástí linuxového jádra od verze 4.14 z listopadu 2017 pro použití na souborových systémech, konkrétně btrfs a squashfs . [16] [17] [18] Metoda byla také testována na FreeBSD pro integraci do souborového systému OpenZFS . [19]

Algoritmus se používá v řadě datových center a systémů zpracování velkých dat, zejména v AWS Red Shift [20] . Podporováno v databázích, jako je RocksDB.

Algoritmus komprese je podporován v archivátoru FreeArc 'Next .

Popis metody Zstandard a MIME typu "application/zstd" byly předloženy IETF jako internetový koncept . [21]

Canonical plánuje převést formát balíčku deb na kompresi zstd v distribuci Ubuntu počínaje verzí 18.10 (říjen 2018), aby se proces instalace urychlil asi o 10 procent. Komprese paketů pomocí Zstd na úrovni 19 má za následek o něco větší velikost paketů než dříve používaný algoritmus xz ( LZMA ), ale zstd umožňuje rychlejší dekompresi [22] [23] .

Plná implementace algoritmu s možností výběru úrovně komprese je použita ve formátech .NSZ/.XCZ [24] vyvinutých komunitou homebrew pro hybridní herní konzoli Nintendo Switch . [25] [26]

Poznámky

  1. Vydání Z standard v1.5.2
  2. 1 2 Licence // https://github.com/facebook/zstd/blob/v1.3.3/README.md
  3. https://github.com/facebook/zstd/blob/v1.3.3/LICENSE
  4. https://github.com/facebook/zstd/blob/v1.3.3/COPYING
  5. Sergio De Simone, Facebook Open-Sources Nový kompresní algoritmus překonávající Zlib Archivováno 7. října 2021 na Wayback Machine / InfoQ, 2. září 2016
  6. Život napodobuje satiru: Facebook propaguje zabijáka zlib stejně jako Krysař ze Silicon Valley , The Register (31. srpna 2016). Archivováno z originálu 3. září 2016. Staženo 6. září 2016.
  7. Archivovaná kopie . Získáno 1. září 2016. Archivováno z originálu 5. března 2016.
  8. Archivovaná kopie . Získáno 1. září 2016. Archivováno z originálu 11. září 2016.
  9. ↑ Apple zahájil implementaci bezeztrátového kompresního algoritmu LZFSE Archivováno 11. září 2016 na Wayback Machine // Opennet.ru, 7. 7. 2016
  10. Matt Mahoney. Velký test komprese textu, 0,2157 zstd (29. srpna 2016). Získáno 1. září 2016. Archivováno z originálu 31. března 2022.
  11. https://indico.fnal.gov/event/15154/contribution/5/material/slides/0.pdf Archivováno 25. ledna 2018 na Wayback Machine „Vývojáři Facebooku hlásí masivní zrychlení a zlepšení kompresního poměru při používání slovníků“
  12. Menší a rychlejší komprese dat pomocí Zstandard - Facebook Code . Získáno 1. září 2016. Archivováno z originálu 8. listopadu 2020.
  13. Facebook open source Algoritmus komprese dat Zstandard, jehož cílem je nahradit technologii Zip  , ZDnet (31. srpna 2016) . Archivováno z originálu 1. září 2016. Staženo 1. září 2016.
  14. „Vydání Zstd v1.3.1“ Archivováno 12. září 2020 na Wayback Machine , GitHub
  15. „Nová licence“ Archivováno 12. září 2020 na Wayback Machine , GitHub
  16. [https://web.archive.org/web/20211122141753/https://lwn.net/Articles/733846/ Archivováno 22. listopadu 2021 na Wayback Machine Zbytek začleňovacího okna 4.14 [LWN.net]]
  17. Linux_4.14 – nováčci linuxového jádra . Získáno 13. 8. 2018. Archivováno z originálu 10. 1. 2018.
  18. Zstd komprese pro Btrfs & Squashfs sada pro Linux 4.14, již se používá na Facebooku - Phoronix . Získáno 13. srpna 2018. Archivováno z originálu dne 25. července 2019.
  19. Archivovaná kopie . Získáno 13. srpna 2018. Archivováno z originálu 18. prosince 2019.
  20. Zstandardní kódování – Amazon Redshift . Získáno 13. srpna 2018. Archivováno z originálu 14. srpna 2021.
  21. Collet, Yann; Kucherawy, Murray S. Standardní komprese a typ média aplikace/zstd . IETF. Staženo: 13. července 2018.
  22. Nové instalace Ubuntu by mohly být zrychleny o 10 % pomocí kompresního algoritmu Zstd . Softpedia (12. 3. 2018). Získáno 13. srpna 2018. Archivováno z originálu dne 6. října 2021.
  23. Canonical Working on Zstd-Compressed Debian Packages for Ubuntu -  Phoronix . phoronix (12. března 2018). Získáno 13. srpna 2018. Archivováno z originálu 16. srpna 2021.
  24. RELEASE - nsZip - NSP kompresor/dekompresor pro snížení  úložiště . GBAtemp.net – nezávislá komunita videoher. Získáno 3. listopadu 2019. Archivováno z originálu 15. srpna 2021.
  25. Nico Bosshard. nsZip je nástroj pro kompresi/dekompresi her Nintendo Switch pomocí zde specifikovaného formátu souboru NSZ: nicoboss/nsZip . — 2019-10-31. Archivováno z originálu 27. března 2022.
  26. Nintendo Switch Hack Guide - w3bsit3-dns.com . w3bsit3-dns.to. Staženo: 3. listopadu 2019.

Odkazy