ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Google ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈ Π½ΠΎΠ²Π°ΡΠ° ΠΎΡΠ²ΠΎΡΠ΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° jpegli Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π΅ΠΊ ΠΈ Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ Π·Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² JPEG ΡΠΎΡΠΌΠ°Ρ. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π²ΠΊΠ»ΡΡΠ²Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π·Π° ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ° Π½Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ΡΠΎ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠΈ 35% ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ΅ΠΏΠ΅Π½ΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ Π½Π° Π²ΠΈΡΠΎΠΊΠΎΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ JPEG ΠΊΠΎΠ΄Π΅ΡΠΈ. Π ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ libjpeg-turbo Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° jpegli ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ Π½Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΈ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° Π±ΠΈΡΡΠ΅ΠΉΡΠ° Ρ 32%. ΠΠ° Π½ΠΈΠ²ΠΎ API ΠΈ ABI Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ° Ρ libjpeg62 ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° Π·Π° Π½Π΅ΠΉΠ½ΠΎΡΠΎ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΡΠ²Π°Π½Π΅. ΠΠΎΠ΄ΡΡ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° C++ ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ BSD.

ΠΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ΅ΠΏΠ΅Π½ΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π° ΡΡΠ΅Π· ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° Π½Π°ΠΏΡΠ΅Π΄Π½Π°Π»ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π·Π° Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠΌΠΎΠ²Π΅ΡΠ΅ Π² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎΡΠΎ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠΈ ΠΏΠΎ-Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° ΠΏΡΠΈΡ ΠΎΠ²ΠΈΠ·ΡΠ°Π»Π½ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ°Π½Π΅, Ρ ΡΠ΅Π» Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΠ·Π½ΠΈΠΊΠ²Π°ΡΠΈΡΠ΅ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΈ. ΠΠΎ-ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ, Π² jpegli Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π°Π΄Π°ΠΏΡΠΈΠ²Π½Π° Ρ Π΅Π²ΡΠΈΡΡΠΈΠΊΠ° Π·Π° ΠΊΠ²Π°Π½ΡΠΎΠ²Π°Π½Π΅, ΠΏΡΠΈΠ»Π°Π³Π°Π½Π° Π² ΠΏΡΠΎΠ΅ΠΊΡΠ° JPEG XL, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ Π·Π° ΠΈΠ·Π±ΠΎΡ Π½Π° ΠΊΠ²Π°Π½ΡΠΎΠ²Π° ΠΌΠ°ΡΡΠΈΡΠ° ΠΈ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° jpegli ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Ρ ΡΠ΅Π·ΠΎΠ»ΡΡΠΈΡ ΠΎΡ 10 ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ Π±ΠΈΡΠ° Π½Π° ΡΠ²Π΅ΡΠΎΠ²ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. Π Π΅Π·ΡΠ»ΡΠ°ΡΡΡ ΠΎΡ Π½ΠΎΠ²ΠΈΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ Π·Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ ΡΠ΅ Π°Π΄Π°ΠΏΡΠΈΡΠ° Π·Π° ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π» Π½Π° JPEG ΡΠΎΡΠΌΠ°ΡΠ°, ΠΊΠΎΠΉΡΠΎ Π΄ΠΎΠΏΡΡΠΊΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ ΡΠ°ΠΌΠΎ Π½Π° 8 Π±ΠΈΡΠ° Π½Π° ΡΠ²Π΅ΡΠΎΠ²ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. Π’Π°Π·ΠΈ ΠΎΡΠΎΠ±Π΅Π½ΠΎΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ Ρ Π²Π΅ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅ Π΄Π΅ΠΊΠΎΠ΄Π΅ΡΠΈ, ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½ΠΈ Π·Π° 8-Π±ΠΈΡΠΎΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΡΠ²Π΅ΡΠΎΠ²ΠΈ ΡΡΡΡΠ°Π²ΠΊΠΈ.
ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΡΠ°, ΠΊΠΎΠ΄ΠΈΡΠ°Π½ΠΈ Ρ jpegli, ΡΠ° Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΈ ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ° JPEG, Π½Π΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π΄Π΅ΠΊΠΎΠ΄Π΅ΡΠΈ ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½ΠΈ Π² ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈ JPEG ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°ΡΠΈ ΠΈ ΡΠ΅Π± Π±ΡΠ°ΡΠ·ΡΡΠΈ. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ Π·Π° ΡΠ°Π·Π°ΡΡ
ΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½ΠΈ Ρ jpegli, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ Π½Π°ΠΌΠ°Π»Π΅Π½ΠΈΠ΅ Π½Π° Π°ΡΡΠ΅ΡΠ°ΡΠΈΡΠ΅. Π‘ΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Ρ jpegli Π΅ ΡΡΠ°Π²Π½ΠΈΠΌΠ° Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈΡΠ΅ libjpeg-turbo ΠΈ MozJPEG.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
