Эффективное кодирование и декодирование без специального оборудования;
В частности, JPEG XL примерно так же быстро кодируется и декодируется, как старый JPEG с использованием libjpeg-turbo, и на порядок быстрее кодируется и декодируется по сравнению с
HEIC
и
x265
. Кроме того, он распараллеливаемый.
JPEG XL основан на идеях формата PIK от Google и формата FUIF от
Cloudinary
(который был, в свою очередь, основан на
FLIF
)
.
Формат в основном основан на двух режимах кодирования:
VarDCT
(
дискретное косинусное преобразование
(ДКП) с переменным размером блока) — использует тот же алгоритм ДКП, что и устаревший JPEG, но блоки вместо ограничения 8x8 имеют различные размеры (от 2x2 до 256x256), неквадратные формы (например, 16x8, 8x32, 32x64) или могут использовать другие преобразования (AFV, Hornuss).
Модульный
— отвечает, среди прочего, за эффективное кодирование контента без потерь. Этот режим используется для сохранения полей адаптивного квантования, дополнительных каналов (например,
альфа-канала
,
карты глубины
, теплового канала,
плашечных цветов
и т. д.) и коэффициентов
децимации
(изображение с пониженной частотой дискретизации 1:8) режима VarDCT. Он также допускает сжатие с потерями с помощью модифицированного
преобразования Хаара
(называемого «squeeze»), которое имеет прогрессивные свойства: качество изображения растёт с увеличением объёма загружаемых данных. Одним из способов постепенной загрузки изображений на основе VarDCT является сохранение коэффициентов децимации VarDCT с модульным «сжатием», благодаря чему оба режима работают в тандеме.
В обоих режимах может помочь раздельное моделирование конкретных особенностей изображения, неизвестных в других кодеках на момент создания формата:
для кодирования, например, волос;
повторяющиеся "участки", такие как текст, точки или
спрайты
,
синтез шума (поскольку шум трудно кодировать в обоих основных режимах, лучше оценить его значение в кодере, сохранить его, а затем восстановить шум в декодере).
Режимы с потерями обычно используют цветовое пространство XYB, полученное из
LMS
.
JPEG XL также может без потерь повторно кодировать уже существующие устаревшие файлы JPEG, напрямую копируя коэффициенты блоков DCT JPEG в блоки 8x8 VarDCT в JPEG XL, что делает возможным меньший размер файла за счёт лучшего энтропийного кодирования. Ранее существовал отдельный режим, специализирующийся именно на этом, называемый Brunsli, который был отделён от VarDCT и модульным, но он был отменён, чтобы упростить спецификацию и сделать декодер меньше на 20%
.
По умолчанию используется параметр, визуально близкий к значению без потерь, который по-прежнему обеспечивает хорошее сжатие
.
Анимированные (многокадровые) изображения не выполняют
расширенное межкадровое предсказание
, хотя доступны некоторые рудиментарные инструменты межкадрового кодирования:
фреймы могут быть меньше полного размера холста, оставляя другие пиксели нетронутыми;
фреймы поддерживают несколько режимов наложения в дополнение к замене предыдущих фреймов, такие как сложение и умножение
;
можно запомнить до четырех кадров
и ссылаться на них в более поздних кадрах
.
Firefox
–
веб-браузер
; в тестировании. Поддержка включается через экспериментальные настройки в Firefox Nightly
или через аддон
в основной версии.
Chromium
– веб-браузер; был в тестировании с 1 апреля 2021. 9 декабря 2022 поддержка была удалена
, однако, пользователи продолжают настаивать на включении поддержки нового формата
.
Edge
— веб-браузер; экспериментальная поддержка осуществлялась в версиях 91–109, начиная с версии 110 была удалена.
История
В 2017 году JTC1/SC29/WG1 (JPEG) объявила конкурс предложений по JPEG XL — стандарту кодирования изображений следующего поколения
.
Формат файла (битовый поток) был заморожен 25 декабря 2020 года
и официально стандартизирован 13 октября 2021 года. Любой файл, соответствующий этому стандарту, гарантированно может быть декодирован во всех будущих версиях.
Статус стандартизации
Общепринятое название
Часть
Дата первого публичного выпуска (Первое издание)
ISO/IEC Number
Formal Title
JPEG XL
Часть 1
30 марта 2022
Система кодирования изображений JPEG XL. Часть 1. Базовая система кодирования
Часть 2
13 октября 2021
Система кодирования изображений JPEG XL. Часть 2. Формат файла
Часть 3
3 октября 2022
Система кодирования изображений JPEG XL. Часть 3. Тестирование на соответствие
Часть 4
5 августа 2022
Система кодирования изображений JPEG XL. Часть 4. Эталонное ПО
Примечания
Комментарии
Noise synthesis is an exception, as it's also featured in
AVIF
created before JPEG XL.
Источники
↑
(неопр.)
. GitHub. Дата обращения: 4 апреля 2019.
24 апреля 2021 года.
(англ.)
.
tech.slashdot.org
. Дата обращения: 27 января 2022.
30 декабря 2021 года.
(англ.)
.
GitLab
. Дата обращения: 27 января 2022.
30 декабря 2021 года.
↑
(англ.)
.
Cloudinary
. Дата обращения: 27 января 2022.
30 декабря 2021 года.
Jon Sneyers.
(англ.)
.
Reddit
(14 декабря 2020). Дата обращения: 27 января 2022.
30 декабря 2021 года.
Jon Sneyers.
(англ.)
.
GitHub
(3 июня 2021). Дата обращения: 27 января 2022.
30 декабря 2021 года.
(англ.)
.
GitLab
. Дата обращения: 27 января 2022.
30 декабря 2021 года.
(англ.)
. Дата обращения: 27 января 2022.
21 декабря 2021 года.
Peter de Rivaz,Jack Haughton.
(неопр.)
350–360.
Alliance for Open Media
(2018). Дата обращения: 15 января 2022.
2 мая 2019 года.
Jyrki Alakuijala, Ruud van Asseldonk, Sami Boukortt, Martin Bruse, Iulia-Maria Comía.
// Applications of Digital Image Processing XLII. — 2019-09-01. —
Т. 11137
. — Vol. 11137. —
С. 111370K
. — P. 20. —
ISBN 9781510629677
. —
doi
:
. —
Bibcode
:
.
(неопр.)
(12 октября 2020). Дата обращения: 27 января 2022.
15 января 2022 года.