Zstandard

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 7. oktober 2019; checks kræver 9 redigeringer .
Zstandard
Type funktionsbibliotek og kommandolinjeværktøj [d]
Skrevet i Xi
Operativ system GNU/Linux , BSD og Mac OS
nyeste version
Licens modificeret BSD-licens [d] [2][3]ogGNU GPL 2[2][4]
Internet side facebook.github.io/… (  engelsk)

Zstandard  er en tabsfri datakomprimeringsalgoritme udviklet siden 2015 af Yann  Collet med støtte fra Facebook ; zstd  er en referenceimplementering af Zstandard-algoritmen i programmeringssproget C under den gratis BSD-licens . Version 1.0 af algoritmen og implementeringen blev indsendt i slutningen af ​​august 2016 [5] [6] .

Den kombinerer LZ77 -ordbogsdatakomprimeringsalgoritmen med Finite State Entropy ( ANS ) efficient entropy encoding (FSE ), en algoritme svarende til Huffman-koden , der implementerer et ikke-heltals antal bits til lagring af tegn [7] [8] .

Funktioner

Målet med udviklingen er at opnå kompressionsforhold, der er sammenlignelige med eller bedre end den klassiske deflateringsalgoritme (udviklet i midten af ​​1990'erne, implementeret i Zip , gzip og andre) ved en højere hastighed af både komprimering og dekompression. Brotli ( Google ) og LZFSE ( Apple bruger også ANS FSE) [9] løser lignende problemer .

Ifølge LTCB viser zstd 0,6 ved det maksimale kompressionsniveau et kompressionsniveau tæt på boz, yxz, tornado-arkiverne; højere end lza, brotli , bzip2 , mens de giver meget hurtig dekompression (2,2 ns/byte på Core i7-3930K ved 4,5 GHz) [10]

Algoritmen implementerer 22 kompressionsniveauer, som adskiller sig i hastighed og effektivitet (niveau "1" er det hurtigste, niveau "22" er mere effektivt). Valgfrit kan algoritmen analysere et givet datasæt for at kompilere specialiserede eksterne ordbøger. En brugerspecificeret ordbog forbedrer komprimeringsforholdet for lignende filer, men er påkrævet ved dekomprimering. Ordbøger bruges til at komprimere små filer, der har fælles strengsæt, såsom xml-filer [11] [12] .

Referenceimplementeringen af ​​algoritmen i C distribueres under den gratis BSD-licens [13] . Koden er offentliggjort på Github- webstedet . Fra og med version 1.3.1 [14] blev den begrænsede patentlicens fjernet fra vilkårene, og koden blev genlicenseret under vilkårene for den dobbelte BSD + GPLv2-licens. [femten]

Ansøgning

Zstandard-metoden har været inkluderet i Linux-kernen siden version 4.14 af november 2017 til brug på filsystemer, specifikt btrfs og squashfs . [16] [17] [18] Metoden blev også testet på FreeBSD til integration i OpenZFS filsystemet . [19]

Algoritmen bruges i en række datacentre og store databehandlingssystemer, især i AWS Red Shift [20] . Understøttet i databaser såsom RocksDB.

Kompressionsalgoritmen er understøttet i FreeArc 'Next archiver .

Beskrivelsen af ​​Zstandard-metoden og MIME-typen "application/zstd" er blevet indsendt til IETF som et internetudkast . [21]

Canonical planlægger at konvertere deb-pakkeformatet til zstd- komprimering i Ubuntu -distribution fra og med version 18.10 (oktober 2018) for at fremskynde installationsprocessen med omkring 10 procent. Pakkekomprimering med Zstd på niveau 19 resulterer i en lidt større pakkestørrelse end den tidligere brugte xz ( LZMA ) algoritme, men zstd tillader hurtigere dekompression [22] [23] .

En fuld implementering af algoritmen med et valg af komprimeringsniveau bruges i .NSZ/.XCZ [24] -formaterne udviklet af homebrew-fællesskabet til Nintendo Switch hybrid-spilkonsollen . [25] [26]

Noter

  1. Frigiv Z standard v1.5.2
  2. 1 2 Licens // 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 New Compression Algorithm Outperforming Zlib Arkiveret 7. oktober 2021 på Wayback Machine / InfoQ, 02. september 2016
  6. Livet efterligner satire: Facebook hylder zlib-morder ligesom Silicon Valley's Pied Piper , The Register (31. august 2016). Arkiveret fra originalen den 3. september 2016. Hentet 6. september 2016.
  7. Arkiveret kopi . Hentet 1. september 2016. Arkiveret fra originalen 5. marts 2016.
  8. Arkiveret kopi . Hentet 1. september 2016. Arkiveret fra originalen 11. september 2016.
  9. ↑ Apple har åbnet implementeringen af ​​LZFSE tabsfri kompressionsalgoritme Arkiveret 11. september 2016 på Wayback Machine // Opennet.ru, 07/07/2016
  10. Matt Mahoney. Large Text Compression Benchmark, .2157 zstd (29. august 2016). Hentet 1. september 2016. Arkiveret fra originalen 31. marts 2022.
  11. https://indico.fnal.gov/event/15154/contribution/5/material/slides/0.pdf Arkiveret 25. januar 2018 på Wayback Machine "Facebook-udviklere rapporterer massive hastigheds- og kompressionsforbedringer ved brug af ordbøger"
  12. Mindre og hurtigere datakomprimering med Zstandard - Facebook Code . Hentet 1. september 2016. Arkiveret fra originalen 8. november 2020.
  13. Facebook open sources Zstandard datakomprimeringsalgoritme, har til formål at erstatte teknologien bag Zip  , ZDnet (31. august 2016) . Arkiveret fra originalen den 1. september 2016. Hentet 1. september 2016.
  14. "Zstd v1.3.1 release" Arkiveret 12. september 2020 på Wayback Machine , GitHub
  15. "Ny licens" Arkiveret 12. september 2020 på Wayback Machine , GitHub
  16. [https://web.archive.org/web/20211122141753/https://lwn.net/Articles/733846/ Arkiveret 22. november 2021 på Wayback Machine Resten af ​​4.14-fletningsvinduet [LWN.net]]
  17. Linux_4.14 - Linux-kernenybegyndere . Hentet 13. august 2018. Arkiveret fra originalen 10. januar 2018.
  18. Zstd-komprimering for Btrfs & Squashfs indstillet til Linux 4.14, allerede brugt på Facebook - Phoronix . Hentet 13. august 2018. Arkiveret fra originalen 25. juli 2019.
  19. Arkiveret kopi . Hentet 13. august 2018. Arkiveret fra originalen 18. december 2019.
  20. Zstandard Encoding - Amazon Redshift . Hentet 13. august 2018. Arkiveret fra originalen 14. august 2021.
  21. Collet, Yann; Kucherawy, Murray S. Zstandard Compression og The application/zstd Media Type . IETF. Hentet: 13. juli 2018.
  22. Nye Ubuntu-installationer kunne fremskyndes med 10% med Zstd-kompressionsalgoritmen . Softpedia (12. marts 2018). Hentet 13. august 2018. Arkiveret fra originalen 6. oktober 2021.
  23. Kanonisk arbejde på Zstd-komprimerede Debian-pakker til Ubuntu -  Phoronix . phoronix (12. marts 2018). Hentet 13. august 2018. Arkiveret fra originalen 16. august 2021.
  24. RELEASE - nsZip - NSP kompressor/dekompressor for at reducere  lagerplads . GBAtemp.net - Det uafhængige videospilfællesskab. Hentet 3. november 2019. Arkiveret fra originalen 15. august 2021.
  25. Nico Bosshard. nsZip er et værktøj til at komprimere/dekomprimere Nintendo Switch-spil ved hjælp af det her specificerede NSZ-filformat: nicoboss/nsZip . — 31-10-2019. Arkiveret fra originalen den 27. marts 2022.
  26. Nintendo Switch Hack Guide - w3bsit3-dns.com . w3bsit3-dns.to. Hentet: 3. november 2019.

Links