Sistemi i kompresimit OpenZL, i cili tejkalon Zstd dhe XZ në shpejtësi dhe nivelin e kompresimit të të dhënave të strukturuara.

Kompania Meta* ka prezantuar një mjet për kompresimin dhe dekompresimin e të dhënave OpenZL, që, krahasuar me formatet Zstd dhe XZ, demonstron një nivel më të lartë kompresimi dhe shpejtësi pune. OpenZL është dizajnuar për kompresimin efikas të grupeve të strukturuara të të dhënave, të tilla si ato që përdoren në mësimin e makinerive, si dhe depozita që përmbajnë fusha me lloje të ndryshme informacioni të përsëritur. Kodi OpenZL është shkruar në C/C++ dhe është në dispozicion me licencë BSD.

Duke me kompaktimin e DB-së me katalogun astronomik të yjeve SAO, mjeti OpenZL arriti të zvogëlojë madhësinë e të dhënave me 2.06 herë, ndërsa algoritmi zstd e kompresoi informacionin me 1.31 herë, dhe XZ me 1.64 herë. Në të njëjtën kohë, për shpejtësinë e kompresimit, OpenZL e kaloi zstd dy herë (203 MB/s kundrejt 115 MB/s), dhe XZ 65 herë (203 MB/s kundrejt 3.1 MB/s). Zbardhja në OpenZL doli të jetë disi më e ngadalshme se zstd (822 MB/s kundrejt 890 MB/s) dhe 27 herë më e shpejtë se XZ.

Sistemi i kompresimit OpenZL, i cili tejkalon Zstd dhe XZ në shpejtësi dhe nivelin e kompresimit të të dhënave të strukturuara.

OpenZL nuk është një algoritëm i cilësisë së përgjithshme dhe tregon rezultate të mira vetëm për të dhëna me strukturë të njohur paraprakisht. Funksionimi i OpenZL përfshin gjenerimin adaptiv të paketuesve mbi bazën e përshkrimit të dhënave të dorëzuara. Si rezultat, formohet kodi për kompresimin të optimizuar për formatin e caktuar të të dhënave. Për dekomprimimin përdoret një paketues universal, i cili është i përshtatshëm për të gjithë paketuesit e gjeneruar.

Paketimi dhe zbardhja kryhet nëpërmjet një utilitari "zli" ose bibliotekës libopenzl. Struktura e të dhënave përshkruhet në formën e profileve. Në të përfshihet një grup profileve të paracaktuar, që përshkruajnë formate standarde të ruajtjes. Për shembull, një profil për formatin CSV ose të dhënat e ruajtur në formë të një vargu të numrave 64-bitë. Kompresimi reduktohet në zgjedhjen e profilit me komandën "zli list-profiles" dhe fillimin e procesit të paketimit me komandën "zli compress —profile emri_profilit". Për zbardhjen mjafton të ekzekutohet "zli decompress."

Për formate specifike, kërkohet të krijohet një profil i vetë, duke përdorur komandën "zli train", e cila identifikon ligjshmëritë në të dhëna dhe krijon një profil me nivelin optimal të kompresimit. Duke përdorur opsionin "—pareto-frontier", profili i krijuar mund të modernizohet në drejtim të përshpejtimit të paketimit ose zbardhjes, me kosto të uljes së nivelit të kompresimit. Për të përshkruar formate komplekse me struktura të thelluara dhe për të përcaktuar shpërndarjen e formateve të të dhënave në struktura mund të përdoret gjuha SDDL (Simple Data Description Language).

Metoda e krijimit të paketuesve optimalë bazohet në përdorimin e një grupi koduesish primitivë, çdo njëri prej të cilëve është më efikas për lloje dhe sekuenca të veçanta të të dhënave. Për kompresimin formohet një grafik i orientuar aciklik i përpunimit të të dhënave, ku nodet janë kodekët, dhe anët janë variacionet e të dhënave në formatin e përpunuar. Në varësi të llojit të të dhënave që hyjnë, zgjidhet një zinxhir kodekësh që kompresojnë optimalisht elementin e dhënë. Me këtë organizim, titulli i skedarit kompresohet me një kodek, fusha me të dhëna të plota me të dytin, fusha me një numër në rritje me të tretin, dhe fusha me të dhëna stringu me të katërtin.

Sistemi i kompresimit OpenZL, i cili tejkalon Zstd dhe XZ në shpejtësi dhe nivelin e kompresimit të të dhënave të strukturuara.


Burimi: opennet.ru
Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS 🔥 Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS | ProHoster