Программисты со всего мира работают над решением проблемы эффективного хранения «тяжелых» файлов на различных электронных устройствах. Наиболее интересными являются фотографии и фильмы — их можно «упростить» так, что вес конечного изображения уменьшится, потеряв часть информации, но человеческий глаз не заметит этих изменений на экране своего устройства. Для этой цели были изобретены системы кодирования изображений. Долгое время, да и сегодня, лидером в таких системах кодирования является JPEG, который был создан в 1992 году. Прошло время, и совсем недавно появился достойный конкурент — JPEG XL, созданный той же организацией, что и его предшественник. Именно об этом формате, его инновациях и особенностях мы поговорим далее в этой статье.
Что может дать JPEG XL пользователям и чем он отличается от конкурентов?
Новая система кодирования изображений JPEG XL была разработана для решения широкого круга задач как для обычных пользователей, так и для профессионалов, работающих с изображениями. Например, новый формат имеет довольно внушительный максимальный размер, глубину цвета и количество каналов по сравнению с конкурентами.
Еще одной важной особенностью нового формата является достаточно низкая мощность, необходимая для кодирования и декодирования изображений, тогда как для специальных видеокодеков могут даже потребоваться аппаратные комплексы, предназначенные исключительно для их эффективного кодирования и декодирования.
О совместимости с различными системами и форматами
Важным нововведением в JPEG XL является возможность полного перекодирования. Таким образом, вы можете без потерь перекодировать файлы как из JPEG в JPEG XL, так и наоборот. Напомним, что передача изображения из одного кодека в другой ранее требовала декодирования изображения пиксель за пикселем, а затем кодирования этих пикселей в другом формате. Этот способ приводит к потере части информации, что влечет за собой искажение и шум в изображении. Однако новый JPEG XL устраняет эту проблему, поэтому нет необходимости хранить и обрабатывать на серверах несколько одинаковых изображений в разных форматах. Если обнаружен устаревший просмотрщик, сервер сам перекодирует изображение в стандартный формат JPEG и отправляет его клиенту.
Благодаря возможности декодировать изображения «на лету», сайты могут делать это постепенно. Это означает, что если страница только загрузилась или интернет-соединение клиента довольно медленное, то изображение на странице не загрузится в полном разрешении и будет пикселированным, становясь все более резким по мере загрузки остальных данных.
Особенности нового формата
- Кодирование с потерями: JPEG XL способен сжать изображение примерно на 60% больше, чем JPEG, при сохранении того же визуального качества;
- Кодирование без потерь: примерно на 35% проще, чем PNG, и почти на 50% для HDR;
- Возможность перекодирования изображений JPEG в новый формат JPEG XL с уменьшением размера изображения на 20%;
- Универсальность: JPEG XL поддерживает альфа-канал, HDR, анимацию, кодирование без потерь. Это делает его способным заменить JPEG, PNG, GIF, WebP и TIFF;
- JPEG XL намного эффективнее других кодеков — вы получаете лучшее качество за меньшие деньги;
- Более быстрое кодирование и декодирование по сравнению с другими форматами;
- Свободное распространение и открытый исходный код.
- Вы можете сами попробовать сравнить разные форматы, посмотрев на закодированные в них изображения и полученный вес на этой странице.
- Может показаться, что JPEG XL может заменить все форматы, но AVIF, HEIC и некоторые другие кодеки остаются лидерами благодаря своей лучшей адаптации к видео, устойчивости к более низким битрейтам и поддержке крупными корпорациями, такими как Apple (HEIC) и Google (AV1).
Технические потребности
В новый кодек JPEG XL разработчики включили несколько интересных и полезных режимов кодирования. Как уже упоминалось, в нем есть режим перекодирования «старых» JPEG, уменьшающий их размер. Другой способ — кодирование с потерями, называемое VarDCT (дискретное косинусное преобразование с переменным размером блока). Существует также режим кодирования без потерь, Modular, который представляет собой модифицированное преобразование Хаара, используемое для сжатия изображений с переменным коэффициентом сжатия. VarDCT использует то же преобразование, но только для кодирования изображений DC (т.е. размером 1:8).
Изображения JPEG XL также содержат так называемые предикаты — небольшие программы, которые значительно повышают эффективность сжатия за счет того, что цвет каждого пикселя выражается в цветах его соседей. Это становится возможным благодаря правилу 110, которое возможно в блоках предикатов JPEG XL. Казалось бы, поскольку новый кодек является программируемым, он может стать новым инструментом для хакеров, но возможность появления таких «троянов» была учтена разработчиками, и декодирование каждого пикселя было ограничено, чтобы декодер не мог попасть в бесконечный цикл, как это может произойти в некоторых других форматах, поддерживающих полноценные языки программирования, таких как SVG или PostScript.