Az OpenZL tömörítési rendszer gyorsaságban és tömörítési szintben megelőzi a Zstd-t és az XZ-t a strukturált adatok esetében.

A Meta* bemutatta az OpenZL adatkompresszáló és -dekompresszáló eszközét, amely a Zstd és az XZ formátumokhoz képest magasabb tömörítési szintet és teljesítményt mutat. Az OpenZL célja, hogy hatékonyan tömörítse a strukturált adatállományokat, például a gépi tanulás során használtakat, valamint azokat a tárolókat, amelyek különböző ismétlődő információtípusokat tartalmaznak. Az OpenZL kódja C/C++ nyelven íródott és BSD licenc alatt elérhető.

A SAO csillagászati katalógust tartalmazó adatbázis tömörítésekor az OpenZL eszköz 2.06-szoros méretcsökkentést ért el, míg a zstd algoritmus 1.31-szer, az XZ pedig 1.64-szer tömörítette az adatokat. A tömörítési sebesség szempontjából az OpenZL kétszer gyorsabb volt a zstd-nél (203 MB/s szemben 115 MB/s) és 65-ször gyorsabb az XZ-nél (203 MB/s szemben 3.1 MB/s). Az OpenZL dekompresszálása csak kissé volt lassabb a zstd-hez képest (822 MB/s szemben 890 MB/s), és 27-szer gyorsabb volt az XZ-nál.

Az OpenZL tömörítési rendszer gyorsaságban és tömörítési szintben megelőzi a Zstd-t és az XZ-t a strukturált adatok esetében.

Az OpenZL nem általános célú algoritmus, és csak előre ismert adatstruktúrák esetén mutat jó teljesítményt. Az OpenZL működése a megadott adatleírás alapján készített adaptív tömörítő generálására korlátozódik. Ennek eredményeként a bontásra szánt kódot a konkrét adatformátumhoz optimalizálják. A dekompresszáláshoz egy univerzális dekompresszor használatos, amely kompatibilis az összes generált tömörítővel.

A tömörítést és dekompresszálást az «zli» nevű eszközzel vagy a libopenzl könyvtárral végezzük. Az adat struktúráját profilok formájában írjuk le. Már létezik egy előre definiált profilkészlet, amely a tipikus tárolási formátumokat írja le, például a CSV formátumot vagy az 64 bites számokból álló tömbökben tárolt adatokat. A tömörítés a «zli list-profiles» parancs használatával a profil kiválasztásával és a «zli compress —profile profil_neve» parancs futtatásával történik. A dekompresszáláshoz elegendő az «zli decompress» parancs futtatása.

Speciális formátumok esetén saját profilt kell létrehozni a „zli train” parancs használatával, amely feltárja az adatmintázatokat és létrehozza az optimális tömörítési szintet. A „—pareto-frontier” opcióval a létrehozott profilt tovább lehet fejleszteni a csomagolás vagy a kicsomagolás gyorsítása érdekében, a tömörítési szint csökkentésének árán. Összetett formátumok leírásához, amelyek egymásba ágyazott struktúrákat tartalmaznak, valamint az adatformátumok elrendezésének meghatározásához az SDDL (Simple Data Description Language) nyelv alkalmazható.

Az optimális tömörítók létrehozásának módszere primitiv kódolók készletének alkalmazásán alapul, melyek mindegyike a legaktívabb különböző adatfajták és adatsorozatok esetén. A tömörítés egy irányított, ciklusmentes gráfot alakít ki, amelynek csomópontjai a kodekek, élei pedig a feldolgozott formátum variációi. Az érkező adatformátum típusától függően az optimális adatfeldolgozó kodeklánc kerül kiválasztásra. Ilyen struktúrában a fájl fejlécét egy kodek tömöríti, az egész számú adatokat egy másik, a növekvő számlálót egy harmadik, míg a szöveges adatokat egy negyedik kodek.

Az OpenZL tömörítési rendszer gyorsaságban és tömörítési szintben megelőzi a Zstd-t és az XZ-t a strukturált adatok esetében.


Forrás: opennet.ru
Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster