Firefox 157 увімкне декодування JPEG XL за замовчуванням на всіх платформах
Інженер Mozilla оголосив про намір постачати JPEG XL у Firefox 157 із декодером jxl-rs на Rust, увімкненим за замовчуванням на всіх платформах — через роки після того, як Safari додав підтримку.
Інженер Mozilla Тімоті Ніккел повідомив у розсилці dev-platform, що починаючи з Firefox 157 браузер має намір увімкнути декодування JPEG XL за замовчуванням на всіх платформах. Досі формат розвивався за налаштуванням image.jxl.enabled, яке сьогодні типово ввімкнене лише в Nightly, а прапорець у Firefox Labs доступний на всіх каналах із версії 152.
Декодер і стандарт
Декодер Firefox — це jxl-rs, написаний мовою Rust. JPEG XL стандартизовано як ISO/IEC 18181; позиція Mozilla щодо формату нейтральна, а оцінка Технічної архітектурної групи W3C позначена як «задоволена із застереженнями». Підтримка надходитиме через єдине налаштування image.jxl.enabled для всіх платформ.
Що роблять інші браузери
Safari додав JPEG XL у версії 17.0 ще 2023 року. Chrome тримає формат за прапорцем #enable-jxl-image-format, використовуючи ту саму бібліотеку на Rust, і поки не заявив про намір постачати його. За словами Ніккела, реалізація має функціональний паритет з іншими форматами зображень Mozilla та з реалізацією JXL у Blink, включно з анімацією та прогресивним відображенням. Єдиний виняток — HDR: HDR-зображення показуються як SDR, як і для всіх інших підтримуваних форматів, але тональне відображення для JXL значно краще, ніж для решти форматів. Safari, зазначає він, не має ні прогресивного рендерингу, ні анімації.
Швидкодія, тестування та відкриті питання
Швидкодія була головним занепокоєнням на етапі прототипу. jxl-rs 0.6.0 отримав підтримку багатопотокового декодування, і патчі для його ввімкнення мають з’явитися незабаром. У тесті п’яти форматів на зображеннях різного розміру Firefox на машині Ніккела трохи випереджав Safari, який використовує C++ libjxl, хоча на малих зображеннях розрив з іншими декодерами Firefox більший.
Коректність покриває каталог jpegxl у web-platform-tests — розрядність, альфа-канал, відтінки сірого, CMYK, керування кольором, орієнтація та інструменти кодування — а також приблизно 30 тестів Gecko для потокового й інкрементного декодування, кількості кадрів анімації, масштабування та пошкоджених файлів, mochitest-и для прогресивного рендерингу й телеметрії, референсні тести та бенчмарки, що надходять до Perfherder.
У тій самій дискусії розробник Сергій Давидов зазначив, що декодування JPEG XL без втрат, за його однопотоковим вимірюванням, приблизно у 30 разів повільніше за WebP без втрат, тоді як розмір файлу зменшується лише на 10 відсотків, і запропонував постачати у Firefox 157 лише JPEG XL із втратами. Ніккел підтвердив, що анімований JPEG XL підтримується.
SiTech — веброзробка з підтримкою AI
Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.