Zstandard
Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från
versionen som granskades den 7 oktober 2019; kontroller kräver
9 redigeringar .
Zstandard är en förlustfri datakomprimeringsalgoritm utvecklad sedan 2015 av Yann Collet med stöd av Facebook ; zstd är en referensimplementering av Zstandard-algoritmen i programmeringsspråket C under den kostnadsfria BSD-licensen . Version 1.0 av algoritmen och implementeringen lämnades in i slutet av augusti 2016 [5] [6] .
Den kombinerar LZ77 -ordboksdatakomprimeringsalgoritmen med Finite State Entropy ( ANS ) effektiv entropikodning (FSE ), en algoritm som liknar Huffman-koden som implementerar ett icke-heltalsantal bitar för att lagra tecken [7] [8] .
Funktioner
Målet med utvecklingen är att uppnå kompressionsförhållanden som är jämförbara med eller överlägsna den klassiska deflateringsalgoritmen (utvecklad i mitten av 1990-talet, implementerad i Zip , gzip och andra) vid en högre hastighet av både komprimering och dekompression. Brotli ( Google ) och LZFSE ( Apple använder också ANS FSE ) [9] löser liknande problem .
Enligt LTCB visar zstd 0.6 vid den maximala komprimeringsnivån en komprimeringsnivå nära boz, yxz, tornadoarkiverare; högre än lza, brotli , bzip2 samtidigt som de ger mycket snabb dekompression (2,2 ns/byte på Core i7-3930K vid 4,5 GHz) [10]
Algoritmen implementerar 22 kompressionsnivåer, som skiljer sig åt i hastighet och effektivitet (nivå "1" är snabbast, nivå "22" är mer effektiv). Valfritt kan algoritmen analysera en given datamängd för att sammanställa specialiserade externa ordböcker. En användarspecificerad ordlista förbättrar komprimeringsförhållandet för liknande filer, men krävs vid dekomprimering. Ordböcker används för att komprimera små filer som har gemensamma stränguppsättningar, såsom xml-filer [11] [12] .
Referensimplementeringen av algoritmen i C distribueras under den kostnadsfria BSD-licensen [13] . Koden publiceras på Github- webbplatsen . Från och med version 1.3.1 [14] togs den begränsade patentlicensen bort från villkoren, och koden återlicensierades under villkoren för den dubbla BSD + GPLv2-licensen. [femton]
Applikation
Zstandard-metoden har inkluderats i Linux-kärnan sedan version 4.14 i november 2017 för användning på filsystem, särskilt btrfs och squashfs . [16] [17] [18] Metoden testades även på FreeBSD för integration i OpenZFS -filsystemet . [19]
Algoritmen används i ett antal datacenter och stora databehandlingssystem, särskilt i AWS Red Shift [20] . Stöds i databaser som RocksDB.
Kompressionsalgoritmen stöds i FreeArc 'Next- arkivet .
Beskrivningen av Zstandard-metoden och MIME-typen "application/zstd" har skickats till IETF som ett Internetutkast . [21]
Canonical planerar att konvertera deb-paketformatet till zstd- komprimering i Ubuntu -distribution från och med version 18.10 (oktober 2018) för att påskynda installationsprocessen med cirka 10 procent. Paketkomprimering med Zstd på nivå 19 resulterar i en något större paketstorlek än den tidigare använda xz ( LZMA ) algoritmen, men zstd tillåter snabbare dekomprimering [22] [23] .
En fullständig implementering av algoritmen med val av komprimeringsnivå används i formaten .NSZ/.XCZ [24] som utvecklats av homebrew-gemenskapen för Nintendo Switch -hybridspelkonsolen . [25] [26]
Anteckningar
- ↑ Släpp Z standard v1.5.2
- ↑ 1 2 Licens // 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 New Compression Algorithm Outperforming Zlib Arkiverad 7 oktober 2021 på Wayback Machine / InfoQ, 2 september 2016
- ↑ Livet imiterar satir: Facebook hyllar zlib-mördare precis som Silicon Valley's Pied Piper , The Register (31 augusti 2016). Arkiverad från originalet den 3 september 2016. Hämtad 6 september 2016.
- ↑ Arkiverad kopia . Hämtad 1 september 2016. Arkiverad från originalet 5 mars 2016. (obestämd)
- ↑ Arkiverad kopia . Hämtad 1 september 2016. Arkiverad från originalet 11 september 2016. (obestämd)
- ↑ Apple har öppnat implementeringen av LZFSE förlustfri komprimeringsalgoritm Arkiverad 11 september 2016 på Wayback Machine // Opennet.ru, 07/07/2016
- ↑ Matt Mahoney. Large Text Compression Benchmark, .2157 zstd (29 augusti 2016). Hämtad 1 september 2016. Arkiverad från originalet 31 mars 2022. (obestämd)
- ↑ https://indico.fnal.gov/event/15154/contribution/5/material/slides/0.pdf Arkiverad 25 januari 2018 på Wayback Machine "Facebook-utvecklare rapporterar enorma hastigheter och förbättringar av kompressionsförhållandet när de använder ordböcker"
- ↑ Mindre och snabbare datakomprimering med Zstandard - Facebook Code . Hämtad 1 september 2016. Arkiverad från originalet 8 november 2020. (obestämd)
- ↑ Facebooks Zstandard datakomprimeringsalgoritm med öppna källor, syftar till att ersätta tekniken bakom Zip , ZDnet (31 augusti 2016) . Arkiverad från originalet den 1 september 2016. Hämtad 1 september 2016.
- ↑ "Zstd v1.3.1 release" Arkiverad 12 september 2020 på Wayback Machine , GitHub
- ↑ "Ny licens" Arkiverad 12 september 2020 på Wayback Machine , GitHub
- ↑ [https://web.archive.org/web/20211122141753/https://lwn.net/Articles/733846/ Arkiverad 22 november 2021 på Wayback Machine Resten av 4.14 sammanslagningsfönstret [LWN.net]]
- ↑ Linux_4.14 - Nybörjare i Linuxkärnan . Hämtad 13 augusti 2018. Arkiverad från originalet 10 januari 2018. (obestämd)
- ↑ Zstd-komprimering för Btrfs & Squashfs Set för Linux 4.14, som redan används inom Facebook - Phoronix . Hämtad 13 augusti 2018. Arkiverad från originalet 25 juli 2019. (obestämd)
- ↑ Arkiverad kopia . Hämtad 13 augusti 2018. Arkiverad från originalet 18 december 2019. (obestämd)
- ↑ Zstandardkodning - Amazon Redshift . Hämtad 13 augusti 2018. Arkiverad från originalet 14 augusti 2021. (obestämd)
- ↑ Collet, Yann; Kucherawy, Murray S. Zstandard Compression och The application/zstd Media Type . IETF. Hämtad: 13 juli 2018. (obestämd)
- ↑ Nya Ubuntu-installationer kan snabbas upp med 10% med Zstd-komprimeringsalgoritmen . Softpedia (12 mars 2018). Hämtad 13 augusti 2018. Arkiverad från originalet 6 oktober 2021. (obestämd)
- ↑ Kanoniskt arbete med Zstd-komprimerade Debian-paket för Ubuntu - Phoronix . phoronix (12 mars 2018). Hämtad 13 augusti 2018. Arkiverad från originalet 16 augusti 2021.
- ↑ RELEASE - nsZip - NSP kompressor/dekompressor för att minska lagringen . GBAtemp.net - The Independent Video Game Community. Hämtad 3 november 2019. Arkiverad från originalet 15 augusti 2021.
- ↑ Nico Bosshard. nsZip är ett verktyg för att komprimera/dekomprimera Nintendo Switch-spel med det här specificerade NSZ-filformatet: nicoboss/nsZip . — 2019-10-31. Arkiverad från originalet den 27 mars 2022.
- ↑ Nintendo Switch Hack Guide - w3bsit3-dns.com . w3bsit3-dns.to. Hämtad: 3 november 2019. (obestämd)
Länkar