JPEG XL

JPEG XL — это Royalty-free формат файла растровой графики, который поддерживает сжатие как с потерями, так и без потерь. Он призван превзойти существующие растровые форматы и, таким образом, стать их универсальной заменой[3].

Общие сведения
JPEG XL
Расширение .jxl
MIME-тип image/jxl
Сигнатура FF 0A or 00 00 00 0C 4A 58 4C 20 0D 0A 87 0A
Разработчик
Опубликован 24 декабря 2020[2]
Тип формата Графический формат
Расширен из
Стандарт(ы) ISO/IEC 18181
Открытый формат? Да (royalty-free)
Сайт

Название

  • JPEG — Joint Photographic Experts Group, Объединённая группа экспертов по фотографии, который является комитетом, разработавшим этот формат.
  • X является частью названия нескольких стандартов JPEG с 2000 года: JPEG XT, JPEG XR, JPEG XS.
  • L означает Long-term (долгосрочный), потому что намерение авторов для формата состоит в том, чтобы заменить устаревший JPEG и продлиться так же долго[4].

Особенности

  • Улучшенная функциональность и эффективность по сравнению с традиционными форматами изображений (например, JPEG, GIF и PNG);
  • Размеры изображения более миллиарда (230-1) пикселей с каждой стороны[5];
  • До 4100 каналов (полутоновые или RGB), дополнительный альфа-канал и до 4096 "дополнительных" каналов[5];
  • Прогрессивное декодирование (по разрешению и точности);
  • Транскодирование JPEG без потерь с уменьшением размера ~20 %;
    • JPEG-файлы CMYK не поддерживаются для перекодирования, но они очень редки[6];
    • Транскодирование в прогрессивный формат JPEG XL поддерживается форматом, но ещё не реализовано в справочном программном обеспечении[7];
  • Кодирование без потерь и альфа-кодирование без потерь;
  • Поддержка как фотографических, так и синтетических изображений;
  • Плавное ухудшение качества в большом диапазоне битрейтов;
  • Перцептивно оптимизированный эталонный кодировщик;
  • Поддержка широкой цветовой гаммы и HDR;
  • Поддержка анимированного контента;
  • Эффективное кодирование и декодирование без специального оборудования;
    • В частности, JPEG XL примерно так же быстро кодируется и декодируется, как старый JPEG с использованием libjpeg-turbo, и на порядок быстрее кодируется и декодируется по сравнению с HEIC и x265[5]. Он также является распараллеливаемым.
  • Royalty-free формат с эталонной реализацией с открытым исходным кодом[8].

Технические детали

undefined

JPEG XL основан на идеях от Google формата PIK и формата FUIF от Cloudinary (который был в свою очередь основан на FLIF)[9].

Формат в основном основан на двух режимах кодирования:

  • VarDCT (дискретное косинусное преобразование (ДКП) с переменным размером блока) — использует тот же алгоритм ДКП, что и устаревший JPEG, но блоки вместо ограничения 8x8 имеют различные размеры (от 2x2 до 256x256), неквадратные формы (например, 16x8, 8x32, 32x64) или могут использовать другие преобразования (AFV, Hornuss).
  • Модульный — отвечает, среди прочего, за эффективное кодирование контента без потерь. Этот режим используется для сохранения полей адаптивного квантования, дополнительных каналов (например, альфа-канал, карта глубины, тепловой канал, плашечных цветов и т. д.) и коэффициентов децимации (изображение с пониженной частотой дискретизации 1:8) режима VarDCT. Он также допускает сжатие с потерями с помощью модифицированного преобразования Хаара (называемого «сжатие»), которое имеет прогрессивные свойства: качество изображения увеличивается с увеличением объёма загружаемых данных. Одним из способов постепенной загрузки изображений на основе VarDCT является сохранение коэффициентов децимации VarDCT с модульным «сжатием», благодаря чему оба режима работают в тандеме.

В обоих режимах может помочь раздельное моделирование конкретных особенностей изображения, неизвестных в других кодеках на момент создания формата:[a]

  • сплайны для кодирования, например, волос;
  • повторяющиеся "участки", такие как текст, точки или спрайты,
  • синтез шума (поскольку шум трудно кодировать в обоих основных режимах, лучше оценить его значение в кодере, сохранить его, а затем восстановить шум в декодере).

Режимы с потерями обычно используют цветовое пространство XYB, полученное из LMS[11].

JPEG XL также может без потерь повторно кодировать уже существующие устаревшие файлы JPEG, напрямую копируя коэффициенты блоков DCT JPEG в блоки 8x8 VarDCT в JPEG XL, что делает возможным меньший размер файла за счёт лучшего энтропийного кодирования. Ранее существовал отдельный режим, специализирующийся именно на этом, называемый Brunsli, который был отделён от VarDCT и модульным, но он был отменён, чтобы упростить спецификацию и сделать декодер меньше на 20%[12].

По умолчанию используется параметр, визуально близкий к значению без потерь, который по-прежнему обеспечивает хорошее сжатие[5].

Анимированные (многокадровые) изображения не выполняют расширенное межкадровое предсказание, хотя доступны некоторые элементарные инструменты межкадрового кодирования:

  • кадры могут обновлять только часть изображения;
  • помимо замены частей холста, кадры также можно смешивать, добавлять или умножать на его части[13];
  • можно запомнить до четырех кадров[14] и ссылаться на них в более поздних кадрах[15].

Программное обеспечение

Реализация кодека

  • JPEG XL Reference Software (libjxl)
    • лицензия: New BSD License (раннее Apache License 2.0)
    • содержит (среди прочего):
      • кодировщик cjxl
      • декодировщик djxl
      • быстрый кодировщик режима только без потерь fjxl
      • инструмент для сравнительного анализа скорости и качества кодеков изображений benchmark_xl
      • GIMP и Gtk pixbuf плагин file-jxl

Официальная поддержка

  • ImageMagick[16] – набор инструментов для обработки растровой графики
  • XnView MP[17] – просмотрщик и редактор растровой графики
  • GIMP[18] – редактор растровой графики; доступен плагин для GIMP 2.10
  • gThumb[19] – бесплатный просмотрщик изображений в Linux
  • IrfanView[20] – бесплатный просмотрщик и редактор изображений для Windows
  • ExifTool[21] – редактор метаданных

Неофициальная поддержка

Предварительная поддержка

История

В 2017 году JTC1/SC29/WG1 (JPEG) объявила конкурс предложений по JPEG XL — стандарту кодирования изображений следующего поколения[27].

Формат файла (битовый поток) был заморожен 25 декабря 2020 года[28] и официально стандартизирован 13 октября 2021 года. Любой файл, соответствующий этому стандарту, гарантированно будет декодируем во всех будущих версиях.

Статус стандартизации

Общее название Этап Дата первого публичного выпуска (Первое издание) ISO/IEC Number Formal Title
JPEG XL Этап 1 публикуется, запланировано на начало 2022 года ISO/IEC FDIS 18181-1 JPEG XL Система кодирования изображений. Часть 1. Базовая система кодирования
Этап 2 13 октября 2021 ISO/IEC 18181-2 JPEG XL Система кодирования изображений. Часть 2. Формат файла
Этап 3 3 октября 2022 ISO/IEC DIS 18181-3 JPEG XL Система кодирования изображений. Часть 3. Тестирование на соответствие
Этап 4 5 августа 2022 ISO/IEC DIS 18181-4 JPEG XL Система кодирования изображений. Часть 4. Эталонное программное обеспечение

Примечания

Комментарии

Источники

Ссылки