Zstandardi
Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 7. lokakuuta 2019 tarkistetusta
versiosta . tarkastukset vaativat
9 muokkausta .
Zstandard on häviötön tietojen pakkausalgoritmi , jonka Yann Collet on kehittänyt vuodesta 2015 lähtien Facebookin tuella . zstd on Zstandard-algoritmin referenssitoteutus C-ohjelmointikielellä ilmaisella BSD - lisenssillä . Algoritmin ja toteutuksen versio 1.0 toimitettiin elokuun 2016 lopussa [5] [6] .
Se yhdistää LZ77 - sanakirjan datan pakkausalgoritmin Finite State Entropy ( ANS ) -tehokkaaseen entropiakoodaukseen (FSE ), joka on samanlainen kuin Huffman-koodi , joka toteuttaa ei-kokonaislukumäärän bittejä merkkien tallentamiseen [7] [8] .
Ominaisuudet
Kehityksen tavoitteena on saavuttaa klassiseen deflate -algoritmiin (kehitetty 1990-luvun puolivälissä, toteutettu Zip , gzip ja muissa muodoissa) vastaavat tai paremmat pakkaussuhteet sekä pakkaus- että purkunopeudella. Brotli ( Google ) ja LZFSE ( Apple käyttää myös ANS FSE ) [9] ratkaisevat samanlaisia ongelmia .
LTCB:n mukaan zstd 0.6 suurimmalla pakkaustasolla näyttää pakkaustason lähellä boz, yxz, tornado arkistointia; korkeampi kuin lza, brotli , bzip2 ja tarjoaa erittäin nopean purkamisen (2,2 ns/tavu Core i7-3930K:ssa 4,5 GHz:llä) [10]
Algoritmi toteuttaa 22 pakkaustasoa, jotka eroavat nopeuden ja tehokkuuden suhteen (taso "1" on nopein, taso "22" on tehokkaampi). Vaihtoehtoisesti algoritmi voi analysoida tietyn tietojoukon laatiakseen erikoistuneita ulkoisia sanakirjoja. Käyttäjän määrittämä sanakirja parantaa samankaltaisten tiedostojen pakkaussuhdetta, mutta sitä tarvitaan purettaessa. Sanakirjoja käytetään pakkaamaan pieniä tiedostoja, joilla on yhteisiä merkkijonoja, kuten xml-tiedostoja [11] [12] .
Algoritmin viitetoteutus C:ssä jaetaan ilmaisella BSD-lisenssillä [13] . Koodi on julkaistu Github- sivustolla . Versiosta 1.3.1 [14] alkaen rajoitettu patenttilisenssi poistettiin ehdoista ja koodi lisensoitiin uudelleen kaksois-BSD + GPLv2 -lisenssin ehtojen mukaisesti. [viisitoista]
Sovellus
Zstandard-menetelmä on sisällytetty Linux-ytimeen marraskuun 2017 versiosta 4.14 lähtien käytettäväksi tiedostojärjestelmissä, erityisesti btrfs- ja squashfs- järjestelmissä . [16] [17] [18] Menetelmää testattiin myös FreeBSD:llä sen integroimiseksi OpenZFS- tiedostojärjestelmään . [19]
Algoritmia käytetään useissa datakeskuksissa ja suurissa tietojenkäsittelyjärjestelmissä, erityisesti AWS Red Shiftissä [20] . Tuettu tietokannoissa, kuten RocksDB.
FreeArc 'Next -arkistointiohjelma tukee pakkausalgoritmia .
Zstandard-menetelmän kuvaus ja MIME-tyyppi "application/zstd" on toimitettu IETF:lle Internet-luonnoksena . [21]
Canonical aikoo muuntaa deb-pakettimuodon zstd- pakkaukseksi Ubuntu -jakelussa versiosta 18.10 (lokakuu 2018) alkaen asennusprosessin nopeuttamiseksi noin 10 prosenttia. Pakettien pakkaus Zstd:llä tasolla 19 johtaa hieman suurempaan pakettikokoon kuin aiemmin käytetty xz ( LZMA ) -algoritmi, mutta zstd mahdollistaa nopeamman purkamisen [22] [23] .
.NSZ/.XCZ [24] -muodoissa, jotka homebrew-yhteisö on kehittänyt Nintendo Switch -hybridipelikonsolia varten, käytetään algoritmin täydellistä toteutusta, jossa on valittava pakkaustaso . [25] [26]
Muistiinpanot
- ↑ Vapauta Z-standardi v1.5.2
- ↑ 1 2 -lisenssi // https://github.com/facebook/zstd/blob/v1.3.3/README.md
- ↑ https://github.com/facebook/zstd/blob/v1.3.3/LICENSE
- ↑ https://github.com/facebook/zstd/blob/v1.3.3/COPYING
- ↑ Sergio De Simone, Facebook Open-Sources Uusi pakkausalgoritmi, joka ylittää Zlibin Arkistoitu 7. lokakuuta 2021 Wayback Machineen / InfoQ, 2. syyskuuta 2016
- ↑ Elämä jäljittelee satiiria: Facebook mainostaa zlib-tappajaa aivan kuten Piilaakson Pied Piper , The Register (31. elokuuta 2016). Arkistoitu alkuperäisestä 3. syyskuuta 2016. Haettu 6. syyskuuta 2016.
- ↑ Arkistoitu kopio . Haettu 1. syyskuuta 2016. Arkistoitu alkuperäisestä 5. maaliskuuta 2016. (määrätön)
- ↑ Arkistoitu kopio . Haettu 1. syyskuuta 2016. Arkistoitu alkuperäisestä 11. syyskuuta 2016. (määrätön)
- ↑ Apple on avannut häviöttömän LZFSE -pakkausalgoritmin toteutuksen. Arkistoitu 11. syyskuuta 2016 Wayback Machinessa // Opennet.ru, 7.7.2016
- ↑ Matt Mahoney. Large Text Compression Benchmark, .2157 zstd (29. elokuuta 2016). Haettu 1. syyskuuta 2016. Arkistoitu alkuperäisestä 31. maaliskuuta 2022. (määrätön)
- ↑ https://indico.fnal.gov/event/15154/contribution/5/material/slides/0.pdf Arkistoitu 25. tammikuuta 2018 Wayback Machinessa "Facebook-kehittäjät raportoivat massiivisista nopeuksista ja pakkaussuhteen parannuksista sanakirjoja käytettäessä"
- ↑ Pienempi ja nopeampi tiedonpakkaus Zstandard-Facebook Codella . Haettu 1. syyskuuta 2016. Arkistoitu alkuperäisestä 8. marraskuuta 2020. (määrätön)
- ↑ Facebookin avoimet lähdekoodit Zstandardin tiedonpakkausalgoritmi, jonka tarkoituksena on korvata Zipin, ZDnetin (31. elokuuta 2016) takana oleva teknologia . Arkistoitu alkuperäisestä 1. syyskuuta 2016. Haettu 1.9.2016.
- ↑ "Zstd v1.3.1 release" Arkistoitu 12. syyskuuta 2020 Wayback Machineen GitHubissa
- ↑ "Uusi lisenssi" Arkistoitu 12. syyskuuta 2020 Wayback Machinessa , GitHub
- ↑ [https://web.archive.org/web/20211122141753/https://lwn.net/Articles/733846/ Arkistoitu 22. marraskuuta 2021 Wayback Machinessa Loput 4.14:n yhdistämisikkunasta [LWN.net]]
- ↑ Linux_4.14 - Linux-ytimen aloittelijat . Haettu 13. elokuuta 2018. Arkistoitu alkuperäisestä 10. tammikuuta 2018. (määrätön)
- ↑ Zstd Compression for Btrfs & Squashfs Set for Linux 4.14, jo käytetty Facebookissa - Phoronix . Haettu 13. elokuuta 2018. Arkistoitu alkuperäisestä 25. heinäkuuta 2019. (määrätön)
- ↑ Arkistoitu kopio . Haettu 13. elokuuta 2018. Arkistoitu alkuperäisestä 18. joulukuuta 2019. (määrätön)
- ↑ Zstandardikoodaus - Amazon Redshift . Haettu 13. elokuuta 2018. Arkistoitu alkuperäisestä 14. elokuuta 2021. (määrätön)
- ↑ Collet, Yann; Kucherawy, Murray S. Zstandardin pakkaus ja sovellus/zstd-mediatyyppi . IETF. Haettu: 13.7.2018. (määrätön)
- ↑ Uusia Ubuntu-asennuksia voidaan nopeuttaa 10 % Zstd-pakkausalgoritmin avulla . Softpedia (12. maaliskuuta 2018). Haettu 13. elokuuta 2018. Arkistoitu alkuperäisestä 6. lokakuuta 2021. (määrätön)
- ↑ Kanoninen työskentely Zstd-pakkattujen Debian-pakettien kanssa Ubuntu - Phoronixille . phoronix (12. maaliskuuta 2018). Haettu 13. elokuuta 2018. Arkistoitu alkuperäisestä 16. elokuuta 2021.
- ↑ RELEASE - nsZip - NSP kompressori/dekompressori vähentää tallennustilaa . GBAtemp.net - Itsenäinen videopeliyhteisö. Haettu 3. marraskuuta 2019. Arkistoitu alkuperäisestä 15. elokuuta 2021.
- ↑ Nico Bosshard. nsZip on työkalu Nintendo Switch -pelien pakkaamiseen/purkaamiseen käyttämällä tässä määritettyä NSZ-tiedostomuotoa: nicoboss/nsZip . – 31.10.2019. Arkistoitu alkuperäisestä 27. maaliskuuta 2022.
- ↑ Nintendo Switchin hakkerointiopas - w3bsit3-dns.com . w3bsit3-dns.to. Haettu: 3.11.2019. (määrätön)
Linkit