Sistema ta' kompressjoni OpenZL, li taqbeż lil Zstd u XZ f'termini ta' veloċità u livell ta' kompressjoni ta' dejta strutturata

Meta* introduċiet OpenZL, toolkit ta' kompressjoni u dekompressjoni tad-dejta li toffri rati ta' kompressjoni u veloċità ogħla mill-formati Zstd u XZ. OpenZL hija mfassla għall-kompressjoni effiċjenti ta' settijiet ta' dejta strutturati, bħal dawk użati fit-tagħlim awtomatiku, kif ukoll ħwienet tad-dejta li fihom oqsma b'diversi tipi ta' informazzjoni ripetuti. OpenZL hija miktuba f'C/C++ u hija open-source taħt il-liċenzja BSD.

Meta kkompressat database li fiha l-katalgu tal-istilel astronomiċi SAO, OpenZL naqqas id-daqs tad-dejta b'fattur ta' 2.06, filwaqt li l-algoritmu zstd ikkompressa d-dejta b'fattur ta' 1.31, u XZ b'fattur ta' 1.64. Barra minn hekk, OpenZL qabeż lil zstd fil-veloċità tal-kompressjoni b'fattur ta' 2 (203 MB/s kontra 115 MB/s), u XZ b'fattur ta' 65 (203 MB/s kontra 3.1 MB/s). Id-dekompressjoni f'OpenZL kienet kemxejn aktar bil-mod minn zstd (822 MB/s kontra 890 MB/s) u 27 darba aktar mgħaġġla minn XZ.

 Sistema ta' kompressjoni OpenZL, li taqbeż lil Zstd u XZ f'termini ta' veloċità u livell ta' kompressjoni ta' dejta strutturata

OpenZL mhuwiex algoritmu għal skop ġenerali u juri riżultati tajbin biss għal dejta bi struttura magħrufa. L-operazzjoni ta' OpenZL tikkonsisti fil-ġenerazzjoni b'mod adattiv ta' packer ibbażat fuq id-deskrizzjoni tad-dejta pprovduta. Dan jiġġenera kodiċi ta' kompressjoni ottimizzat għal format speċifiku tad-dejta. Unpacker universali, kompatibbli mal-packers iġġenerati kollha, jintuża għad-dekompressjoni.

L-ippakkjar u l-iżpakkjar jitwettqu bl-użu ta' utilità waħda, "zli," jew il-librerija libopenzl. L-istruttura tad-dejta hija deskritta fil-forma ta' profili. Dan jinkludi sett ta' profili predefiniti li jiddeskrivu formati tipiċi ta' ħażna. Pereżempju, profil għall-format CSV jew dejta maħżuna bħala array ta' 64-bit. Il-kompressjoni hija sempliċi daqs li tagħżel profil bil-kmand "zli list-profiles" u tibda l-proċess ta' kompressjoni bil-kmand "zli compress --profile profile_name". Biex tneħħi l-pakkett, sempliċement mexxi "zli decompress."

Għal formati speċifiċi, irid jinħoloq profil apposta bl-użu tal-kmand "zli train", li jidentifika mudelli fid-dejta u jiġġenera profil b'livell ottimali ta' kompressjoni. Bl-użu tal-għażla "--pareto-frontier", il-profil maħluq jista' jiġi ottimizzat biex iħaffef il-kompressjoni jew id-dekompressjoni, għad-detriment tal-kompressjoni. Is-Simple Data Description Language (SDDL) jista' jintuża biex jiddeskrivi formati kumplessi bi strutturi nested u jiddefinixxi t-tqassim tal-formati tad-dejta fi ħdan l-istrutturi.

Il-metodu għall-ħolqien ta' packers ottimali huwa bbażat fuq sett ta' encoders primittivi, li kull wieħed minnhom huwa l-aktar effettiv għal tipi u sekwenzi ta' dejta speċifiċi. Għall-kompressjoni, jiġi ffurmat graff tal-ipproċessar tad-dejta aċikliku dirett, bil-codecs bħala nodi u l-varjanti tad-dejta fil-format ipproċessat bħala truf. Skont it-tip ta' dejta tad-dħul, tintgħażel katina ta' codecs li tikkompressa b'mod ottimali l-element tad-dejta li jkun dieħel. B'dan l-arranġament, il-header tal-fajl jiġi kkompressat bl-użu ta' codec wieħed, il-qasam tad-dejta integer bl-użu ta' codec ieħor, il-qasam tal-counter li jiżdied bl-użu ta' codec ieħor, u l-qasam tad-dejta string bl-użu ta' codec ieħor.

 Sistema ta' kompressjoni OpenZL, li taqbeż lil Zstd u XZ f'termini ta' veloċità u livell ta' kompressjoni ta' dejta strutturata


Sors: opennet.ru

Żid kumment