Корпорація Google представила нову опенсорс-бібліотеку Jpegli, яка стискає зображення на 35% ефективніше, зберігаючи при цьому високу якість.
Про це розповідає ProIT
Дослідники Google протягом багатьох років працювали над покращенням стиснення даних (Brotli), аудіо (Lyra V2), ну й зображень (WebP). Jpegli — останній їх проєкт, спрямований на покращення коефіцієнта стиснення застарілих файлів JPEG у системах, де сучасне стиснення, наприклад WebP, може бути недоступним або бажаним.
Як йдеться в повідомленні в офіційному блозі Google, серед переваг Jpegli:
- Сумісність. Кодер та декодер повністю сумісні з API/ABI з libjpeg-turbo та MozJPEG.
- Висока якість. При роботі з зображеннями виконуються більш точні та «психовізуально ефективні» обчислення, завдяки чому зображення виходять чіткішими.
- Швидкість. Хоча якість зображення та ефективність стиснення у Jpegli краща, швидкість кодування знаходиться десь на рівні з libjpeg-turbo та MozJPEG. Завдяки цьому веброзробники можуть легко вбудувати нову бібліотеку в робочі процеси без шкоди швидкості роботи та споживання пам’яті.
- Можливість кодування зображення з виділенням 10 і більше біт на колірний компонент. Традиційні бібліотеки кодують зображення з використанням 8 бітів на компонент, що призводить до артефактів на плавних градієнтах.
- Ефективність стиснення. Jpegli стискає зображення ефективніше традиційних кодерів, що дозволяє заощаджувати ресурси.
Як працює Jpegli
Jpegli використовує низку нових методів для зменшення шуму та покращення якості зображення. Це:
- адаптивна евристика квантування він JPEG XL;
- покращений вибір матриці квантування;
- точне обчислення проміжних результатів;
- можливість використання більш вдосконаленого простору кольорів.
Google провів тестування, порівнявши роботу Jpegli, libjpeg-turbo та MozJPEG на кількох бітрейтах. Що з цього вийшло — можете побачити на діаграмі нижче.