ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ 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
