JPEG XL vs. AVIF for web use-cases 🔥 Горячее 💬 Длинная дискуссия
Для сжатия фотографий с потерями в вебе AVIF почти всегда даёт файлы меньше, чем JPEG XL: при настройках усилия по умолчанию лучший результат JPEG XL обычно на 15–25% больше, а при максимальных настройках разрыв сокращается до 6–20%. Бывают исключения, где JPEG XL близок к AVIF или даже обгоняет его, поэтому для конкретного изображения стоит пробовать оба формата. Для скриншотов и иллюстраций AVIF заметно лучше: эквивалентный JPEG XL больше на 30–90% при обычных настройках и на 20–70% при максимальных. Для изображений с прозрачностью AVIF тоже выигрывает: версия libjxl больше на 31–44% и 61–70% соответственно, а jixel всегда кодирует прозрачность без потерь, из-за чего файлы в 2–3 раза крупнее, чем у AVIF.
Выбор кодера JPEG XL сильно влияет на результат: новый jixel обычно даёт меньшие файлы, чем libjxl, кроме изображений с детальной прозрачностью. AVIF в целом быстрее кодируется и требует меньше памяти с учётом размера файла, а декодируется в 2–3 раза быстрее JPEG XL при среднем качестве, хотя на очень высоких качествах разрыв сокращается. Повышенные настройки усилия оправданы для AVIF и jixel, но не для libjxl: они намного медленнее, расходуют больше памяти и почти не улучшают результат, иногда даже увеличивая файл. Режим 4:2:0 у AVIF не стоит делать значением по умолчанию — он редко уменьшает размер и затрудняет достижение высокого качества, хотя быстрее кодируется и декодируется; лучше использовать 4:4:4. Настройки качества работают надёжно у всех кодеров.
Анимированный AVIF по сути представляет собой переупаковку видео AV1 — MP4 можно преобразовать в AVIF и обратно без потерь, поэтому он так хорошо работает с движением. Однако в Chrome и Safari он воспроизводится плохо, хотя в Firefox всё в порядке: это чисто проблема реализации. При этом анимированный AVIF поддерживает прозрачность, чего нет у видео AV1.
Комментарии (186)
Обсуждение дополняет статью практическими данными о качестве энкодеров, проблемами рендеринга в браузерах и специфическими сценариями использования (анимации, HDR, архивация), при этом подтверждая преимущество AVIF в размере файлов для веба.
-
Спор: Пользователь @PaulHoule заметил потерю деталей в бликах на фото F1 в AVIF, однако @jaffathecake пояснил, что это было вызвано некорректной работой WASM-рендерера в браузере без поддержки JPEG XL, а не самим форматом.
-
Спор: По мнению @linolevan, текущие энкодеры JPEG XL недостаточно оптимизированы: использование более качественного энкодера позволило ему уменьшить размер lossless-скриншота на 39% и иллюстрации на 30% по сравнению с результатами в статье.
-
Совет: Для достижения максимального сжатия AVIF с сохранением прозрачности PNG @Metricon рекомендует использовать ffmpeg с параметрами: libaom-av1, crf 25, cpu-used 3 и специфическими настройками sharpness и chroma-deltaq.
-
AVIF считается более подходящим форматом для замены GIF и создания анимаций с прозрачностью, так как он фактически является переупакованным видео AV1, оптимизированным под движение.
-
JPEG XL обладает уникальным преимуществом в виде возможности эффективного транскодинга существующих JPEG-файлов, что делает его ценным для архивации фото.
-
Совет: По опыту @yhjc2692, медленная работа libjxl на высоких настройках (efforts >7) связана с итеративной оптимизацией метрики Butteraugli; для ускорения процесса он разработал GPU-порт gjxl (CUDA/Metal).
-
AVIF выигрывает на маленьких изображениях, в то время как JPEG XL предпочтительнее для lossless-сжатия, высокобитрейтных изображений и прогрессивного рендеринга.
-
Контейнерная архитектура AVIF может упростить будущий переход на новые кодеки (AV2, AV3) без необходимости повторного внедрения формата на сайтах.
I think people are really forgetting that JXL's encoders are bad right now. For instance, in TFA Jake presents- The Firefox screenshot w/ lossless JXL at 66.9kB, when with a better encoder you get get it down to like 40.7kB (39% smaller) — @linolevan
Перевод: Мне кажется, люди забывают, что энкодеры JXL сейчас работают плохо. Например, в статье Джейк приводит скриншот Firefox с lossless JXL размером 66,9 кБ, в то время как с более качественным энкодером его можно сжать до 40,7 кБ (на 39% меньше).
Shipping JPEG XL in Chrome 🔥 Горячее 💬 Длинная дискуссия
Chrome 155 добавил поддержку JPEG XL — современного формата изображений, обеспечивающего на 30–50% лучшую компрессию по сравнению с JPEG, включая lossless режим и нативную поддержку HDR. Реализация выполнена на Rust в библиотеке jxl-rs, что устраняет типичные уязвимости C++-кодеков (переполнение буфера, use-after-free) благодаря памяти-безопасному языку, при этом сохраняя высокую производительность через SIMD-оптимизации, вдохновлённые библиотекой Highway и использующие стабилизированную функцию target_feature_11. Разработчики подтвердили отсутствие memory safety багов после omfattющего fuzzing и AI-поддержки проверки кода. Поддержка JPEG XL в Chrome стала результатом давнего запроса сообщества, отражённого в Interop 2026, где формат был одним из самых популярных предложений. Команда призывает веб-разработчиков использовать .jxl в своих пайплайнах для более быстрой, богатой и безопасной веб-среды, обещая продолжать улучшать формат на основе обратной связи.
Комментарии (351)
Firefox планирует добавить поддержку JPEG XL в версии 158, расширив кросс‐браузерную совместимость. Chrome ранее удалил поддержку в версии 110, но восстановил её в Chrome 155, что указывает на смену стратегии. Safari пока не поддерживает прогрессивную загрузку в libjxl, а также анимацию и прогрессивный рендеринг JPEG XL на iOS, отставая от Chrome и Firefox, которые уже включили эти возможности. По данным caniuse, поддержка JPEG XL составляет лишь ~17 % сайтов, в отличие от ~97 % для WebP, что отражает низкую текущую адаптацию. Совместимость с приложениями остаётся проблемой: Telegram, macOS и многие просмотрщики не открывают JXL‐файлы. Rust‐реализация обеспечивает защиту от типичных уязвимостей C++ (переполнение буфера, use‐after‐free), но её производительность может варьироваться — заявленная скорость «примерно так же быстро, как лучшая небезопасная альтернатива» требует проверки на реальной нагрузке. Для типичного веб‐контента AVIF обычно показывает лучшую компрессию и скорость, тогда как JPEG XL считается менее подходящим. По расширению .jxl нельзя определить, используется ли сжатие с потерями или без, что усложняет пользовательский опыт. Создание JPEG XL в некоторых графических редакторах (например, Affinity) даёт плохие результаты и нестабильную компрессию, отпугивая пользователей. Для научных изображений, требующих более 8‐битной глубины, лучше использовать AVIF, так как текущий декодер JPEG XL ограничивает внутреннее представление 8‐битами.
The case against JPEG XL
JPEG XL — технически впечатляющий кодек, превосходящий JPEG и более универсальный, чем WebP, но его место в браузерах под вопросом. Хотя он был отклонён Chrome в 2023 году, появление Rust-декодера в Firefox и Chrome может сигнализировать о пересмотре позиции, особенно на фоне уязвимости WebP 2023 года. Однако автор, ранее поддерживавший JPEG XL, теперь считает, что его преимущества для веба исчерпаны. По объёму веб-контента подавляющее большинство изображений обслуживается с потерями, а без потерь JPEG XL выигрывает лишь около 11,9% перед WebP — на искусственном наборе данных (157 Мп фото, 10 Мп иллюстраций, 27 Мп книг), неrepresenting типичный веб. Это слишком мало, чтобы оправдать внедрение нового кодекса в браузеры, особенно учитывая, что в lossy-сжатии JPEG XL уступает конкурентам.
Современные энкодеры, включая AV1, достигли лучшего соотношения скорости и качества на бит благодаря perceptual tuning на основе человеческих испытаний. AVIF теперь доминирует во всём диапазоне fidelity, нивелируя единственное реальное преимущество JPEG XL. Автор отмечает, что дискуссия вокруг JPEG XL часто отражает желание большего выбора для разработчиков, а не техническую необходимость, особенно на фоне политики вокруг Google и AV1. Тем не менее, JPEG XL остаётся ценным для профессиональных сценариев вне веба — фотографии, печать, медицинская визуализация — где его возможности могут быть востребованы. В браузерах же его внедрение сейчас не кажется оправданным.
Комментарии (115)
Обсуждение подтверждает сомнения автора в перспективах JPEG XL для веба, добавляя данные о производительности, сложности реализации и ограничениях аппаратного декодирования, а также подчёркивая политические и патентные факторы, влияющие на его принятие, но указывает на потенциальные ниши в профессиональном фото‐ и RAW‐рабочем процессе. libjxl и cjpegli позволяют получать компактные, высококачественные изображения даже для контента с высоким частотным спектром, например комиксов, где другие кодеки требуют компромиссов. WebP‐lossless ограничен 8‐битным RGB, поэтому отдельный формат для истинно lossless‐изображений остаётся необходимым. JXL‐preview в macOS сильно нагружает процессор и память из‐за вычисления «prime», что делает его потенциальным вектором DoS даже для небольших файлов. JXL выигрывает в lossless‐сжатии над WebP и PNG, но в lossy‐режиме часто уступает AVIF и даже обычному JPEG. Аппаратные декодеры AVIF ограничены профилем Main (4:2:0), что делает его менее подходящим для фотосъёмки, где предпочтителен 4:4:4 и 10‐бит. Спор: Некоторые считают, что отсутствие поддержки браузерами препятствует использованию JXL вне веба, в то время как другие указывают, что основные сценарии (например, отправка фото по e‐mail) всё равно требуют транс‐кодирования. Спор: Вопрос открытости: JXL полностью открытый, тогда как AVIF основан на AV1, который хотя и royalty‐free, но имеет патентные споры (Sisvel/Access, Dolby vs Snap), что меняет баланс сравнения. Камеры пока не поддерживают JPEG XL; поддержка ограничивается HEIF, а JPEG остаётся доминирующим форматом из‐за совместимости. Adobe включил JPEG XL в PDF, что может заставить браузеры добавить поддержку формата для корректного отображения PDF‐документов. Совет: Для веб‐публикаций рекомендуется удалять метаданные и транскодировать в уже поддерживаемый формат, поскольку экономия трафика от JXL не компенсирует совместимостиных проблем.