ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Meta* ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ ΠΈ Π΄Π΅ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ Π½Π° Π΄Π°Π½Π½ΠΈ OpenZL, ΠΊΠΎΠΉΡΠΎ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΡΠΎΡΠΌΠ°ΡΠΈΡΠ΅ Zstd ΠΈ XZ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠ° ΠΏΠΎ-Π²ΠΈΡΠΎΠΊ ΠΏΡΠΎΡΠ΅Π½Ρ Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ ΠΈ ΡΠΊΠΎΡΠΎΡΡ Π½Π° ΡΠ°Π±ΠΎΡΠ°. OpenZL Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½ Π·Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ Π½Π° ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½ΠΈ Π½Π°Π±ΠΎΡΠΈ ΠΎΡ Π΄Π°Π½Π½ΠΈ, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ ΠΏΡΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊΡΠΎ ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°, ΡΡΠ΄ΡΡΠΆΠ°ΡΠΈ ΠΏΠΎΠ»Π΅ΡΠ° Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠΎΠ²ΡΠ°ΡΡΡΠΈ ΡΠ΅ ΡΠΈΠΏΠΎΠ²Π΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΠΎΠ΄ΡΡ Π½Π° OpenZL Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° C/C++ ΠΈ Π΅ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ BSD.
ΠΡΠΈ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Ρ Π°ΡΡΡΠΎΠ½ΠΎΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π½Π° Π·Π²Π΅Π·Π΄ΠΈ SAO, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡΡ OpenZL ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ°Π»ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡΡ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ Ρ 2.06 ΠΏΡΡΠΈ, Π΄ΠΎΠΊΠ°ΡΠΎ Π°Π»Π³ΠΎΡΠΈΡΡΠΌΡΡ zstd ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ° Ρ 1.31 ΠΏΡΡΠΈ, Π° XZ Ρ 1.64 ΠΏΡΡΠΈ. ΠΡΠΈ ΡΠΎΠ²Π° OpenZL Π½Π°Π΄ΠΌΠΈΠ½Π° zstd ΠΏΠΎ ΡΠΊΠΎΡΠΎΡΡ Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ Π΄Π²Π° ΠΏΡΡΠΈ (203 MB/s ΡΡΠ΅ΡΡ 115 MB/s), Π° XZ - 65 ΠΏΡΡΠΈ (203 MB/s ΡΡΠ΅ΡΡ 3.1 MB/s). Π Π°Π·ΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ΡΠΎ Π² OpenZL ΡΠ΅ ΠΎΠΊΠ°Π·Π° Π»ΡΡ Π½Π΅ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°ΡΠ΅Π»Π½ΠΎ ΠΏΠΎ-Π±Π°Π²Π½ΠΎ ΠΎΡ zstd (822 MB/s ΡΡΠ΅ΡΡ 890 MB/s) ΠΈ 27 ΠΏΡΡΠΈ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ ΠΎΡ XZ.

OpenZL Π½Π΅ Π΅ Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Ρ ΠΎΠ±ΡΠ° ΡΠ΅Π» ΠΈ ΠΏΠΎΠΊΠ°Π·Π²Π° Π΄ΠΎΠ±ΡΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ ΡΠ°ΠΌΠΎ Π·Π° Π΄Π°Π½Π½ΠΈ Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½Π° ΡΡΡΡΠΊΡΡΡΠ°. Π Π°Π±ΠΎΡΠ°ΡΠ° Π½Π° OpenZL ΡΠ΅ ΡΠ²Π΅ΠΆΠ΄Π° Π΄ΠΎ Π°Π΄Π°ΠΏΡΠΈΠ²Π½Π° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΎΡ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΡΠ΅Π΄Π°Π΄Π΅Π½ΠΎΡΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅. Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ ΡΠ΅ ΡΠΎΡΠΌΠΈΡΠ° ΠΊΠΎΠ΄ Π·Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ Π·Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈΡ ΡΠΎΡΠΌΠ°Ρ Π½Π° Π΄Π°Π½Π½ΠΈ. ΠΠ° ΡΠ°Π·ΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π΅Π½ Π΄Π΅ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΎΡ, ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Π²ΡΠΈΡΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ΠΈ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΎΡΠΈ.
ΠΠΎΠΌΠΏΡΠ΅ΡΠΈΡΡΠ° ΠΈ ΡΠ°Π·ΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ΡΠΎ ΡΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π΅Π΄Π½Π° ΡΡΠΈΠ»ΠΈΡΠ° Β«zliΒ» ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° libopenzl. Π‘ΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π° ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΠΏΡΠΎΡΠΈΠ»ΠΈ. ΠΠΊΠ»ΡΡΠ²Π° ΡΠ΅ Π²Π΅ΡΠ΅ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈ, ΠΎΠΏΠΈΡΠ²Π°ΡΠΈ ΡΠΈΠΏΠΎΠ²ΠΈ ΡΠΎΡΠΌΠ°ΡΠΈ Π½Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΡΠΈΠ» Π·Π° ΡΠΎΡΠΌΠ°Ρ CSV ΠΈΠ»ΠΈ Π΄Π°Π½Π½ΠΈ, ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½ΠΈ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΠΌΠ°ΡΠΈΠ² ΠΎΡ 64-Π±ΠΈΡΠΎΠ²ΠΈ ΡΠΈΡΠ»Π°. ΠΠΎΠΌΠΏΡΠ΅ΡΠΈΡΡΠ° Π΅ ΡΠ²Π΅Π΄Π΅Π½Π° Π΄ΠΎ ΠΈΠ·Π±ΠΎΡ Π½Π° ΠΏΡΠΎΡΠΈΠ» Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Β«zli list-profilesΒ» ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Β«zli compress βprofile ΠΈΠΌΠ΅_ΠΏΡΠΎΡΠΈΠ»Π°Β». ΠΠ° ΡΠ°Π·ΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° Β«zli decompressΒ».
ΠΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈΡΠ΅ ΡΠΎΡΠΌΠ°ΡΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΏΡΠΎΡΠΈΠ», ΠΊΠ°ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Β«zli trainΒ», ΠΊΠΎΡΡΠΎ ΡΠ°Π·ΠΊΡΠΈΠ²Π° Π·Π°ΠΊΠΎΠ½ΠΎΠΌΠ΅ΡΠ½ΠΎΡΡΠΈ Π² Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΈ ΡΠΎΡΠΌΠΈΡΠ° ΠΏΡΠΎΡΠΈΠ» Ρ ΠΎΠΏΡΠΈΠΌΠ°Π»Π½ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ. Π‘ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΎΠΏΡΠΈΡΡΠ° Β«βpareto-frontierΒ» ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈΡΡ ΠΏΡΠΎΡΠΈΠ» ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈΠ·ΠΈΡΠ°Π½ Ρ ΡΠ΅Π» ΡΡΠΊΠΎΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ΡΠΎ ΠΈΠ»ΠΈ ΡΠ°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ΡΠΎ, ΡΠ΅Π½Π°ΡΠ° Π½Π° ΠΊΠΎΠ΅ΡΠΎ Π΅ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° Π½ΠΈΠ²ΠΎΡΠΎ Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ. ΠΠ° ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ»ΠΎΠΆΠ½ΠΈ ΡΠΎΡΠΌΠ°ΡΠΈ Ρ Π²Π»ΠΎΠΆΠ΅Π½ΠΈ ΡΡΡΡΠΊΡΡΡΠΈ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΏΠΎΠ΄ΡΠ΅Π΄Π±Π°ΡΠ° Π½Π° ΡΠΎΡΠΌΠ°ΡΠΈΡΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ Π² ΡΡΡΡΠΊΡΡΡΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° Π΅Π·ΠΈΠΊΡΡ SDDL (Simple Data Description Language).
ΠΠ΅ΡΠΎΠ΄ΡΡ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΎΠΏΡΠΈΠΌΠ°Π»Π½ΠΈ ΠΎΠΏΠ°ΠΊΠΎΠ²ΡΠΈΡΠΈ ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π²Π° Π½Π° ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ΡΠΎ Π½Π° Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΡΠΈΡΠΈ, Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΠΊΠΎΠΈΡΠΎ Π΅ Π½Π°ΠΉ-Π΅ΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ Π·Π° ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡΠΈ ΠΎΡ Π΄Π°Π½Π½ΠΈ. ΠΠ° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ ΡΠ΅ ΡΠΎΡΠΌΠΈΡΠ° ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½ Π°ΡΠΈΠΊΠ»ΠΈΡΠ΅Π½ Π³ΡΠ°Ρ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈ, ΡΠΈΠΈΡΠΎ Π²ΡΠ·Π»ΠΈ ΡΠ° ΠΊΠΎΠ΄Π΅ΡΠΈΡΠ΅, Π° ΡΡΠ±ΠΎΠ²Π΅ΡΠ΅ β Π²Π°ΡΠΈΠ°Π½ΡΠΈΡΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Π½ΠΈΡ ΡΠΎΡΠΌΠ°Ρ. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΡΠΈΠΏΠ° Π½Π° ΠΏΠΎΡΡΡΠΏΠ²Π°ΡΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΡΠ΅ ΠΈΠ·Π±ΠΈΡΠ° Π²Π΅ΡΠΈΠ³Π° ΠΎΡ ΠΊΠΎΠ΄Π΅ΡΠΈ, ΠΊΠΎΡΡΠΎ ΠΎΠΏΡΠΈΠΌΠ°Π»Π½ΠΎ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ° ΠΏΠΎΡΡΡΠΏΠΈΠ»ΠΈΡ Π΅Π»Π΅ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΠΈ. ΠΡΠΈ ΡΠ°ΠΊΠ°Π²Π° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π·Π°Π³Π»Π°Π²ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ»Π° ΡΠ΅ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ° Ρ Π΅Π΄ΠΈΠ½ ΠΊΠΎΠ΄Π΅ΠΊ, ΠΏΠΎΠ»Π΅ΡΠΎ Ρ ΡΠ΅Π»ΠΈ ΡΠΈΡΠ»Π° β Ρ Π²ΡΠΎΡΠΈ, ΠΏΠΎΠ»Π΅ΡΠΎ Ρ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Ρ ΡΠ΅ Π±ΡΠΎΡΡ β Ρ ΡΡΠ΅ΡΠΈ, Π° ΠΏΠΎΠ»Π΅ΡΠΎ Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ β Ρ ΡΠ΅ΡΠ²ΡΡΡΠΈ.

ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
