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[1] |
Тип формата | Графический формат |
Расширен из | |
Стандарт(ы) | 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 %;
- Кодирование без потерь и альфа-кодирование без потерь;
- Поддержка как фотографических, так и синтетических изображений;
- Плавное ухудшение качества в большом диапазоне битрейтов;
- Перцептивно оптимизированный эталонный кодировщик;
- Поддержка широкой цветовой гаммы и HDR;
- Поддержка анимированного контента;
- Эффективное кодирование и декодирование без специального оборудования;
- Royalty-free формат с эталонной реализацией с открытым исходным кодом[8].
Технические детали
JPEG XL основан на идеях от Google формата PIK и формата FUIF от Cloudinary (который был в свою очередь основан на FLIF)[9].
Формат в основном основан на двух режимах кодирования:
- VarDCT (дискретное косинусное преобразование (ДКП) с переменным размером блока) — использует тот же алгоритм ДКП, что и устаревший JPEG, но блоки вместо ограничения 8x8 имеют различные размеры (от 2x2 до 256x256), неквадратные формы (например, 16x8, 8x32, 32x64) или могут использовать другие преобразования (AFV, Hornuss).
- Модульный — отвечает, среди прочего, за эффективное кодирование контента без потерь. Этот режим используется для сохранения полей адаптивного квантования, дополнительных каналов (например, альфа-канал, карта глубины, тепловой канал, плашечных цветов и т. д.) и коэффициентов децимации (изображение с пониженной частотой дискретизации 1:8) режима VarDCT. Он также допускает сжатие с потерями с помощью модифицированного преобразования Хаара (называемого «сжатие»), которое имеет прогрессивные свойства: качество изображения увеличивается с увеличением объёма загружаемых данных. Одним из способов постепенной загрузки изображений на основе VarDCT является сохранение коэффициентов децимации VarDCT с модульным «сжатием», благодаря чему оба режима работают в тандеме.
В обоих режимах может помочь раздельное моделирование конкретных особенностей изображения, неизвестных в других кодеках на момент создания формата:[lower-alpha 1]
- сплайны для кодирования, например, волос;
- повторяющиеся "участки", такие как текст, точки или спрайты,
- синтез шума (поскольку шум трудно кодировать в обоих основных режимах, лучше оценить его значение в кодере, сохранить его, а затем восстановить шум в декодере).
Режимы с потерями обычно используют цветовое пространство XYB, полученное из LMS[11].
JPEG XL также может без потерь повторно кодировать уже существующие устаревшие файлы JPEG, напрямую копируя коэффициенты блоков DCT JPEG в блоки 8x8 VarDCT в JPEG XL, что делает возможным меньший размер файла за счёт лучшего энтропийного кодирования. Ранее существовал отдельный режим, специализирующийся именно на этом, называемый Brunsli, который был отделён от VarDCT и модульным, но он был отменён, чтобы упростить спецификацию и сделать декодер меньше на 20%[12].
По умолчанию используется параметр, визуально близкий к значению без потерь, который по-прежнему обеспечивает хорошее сжатие[5].
Анимированные (многокадровые) изображения не выполняют расширенное межкадровое предсказание, хотя доступны некоторые элементарные инструменты межкадрового кодирования:
Программное обеспечение
Реализация кодека
- JPEG XL Reference Software (libjxl)
- лицензия: New BSD License (раннее Apache License 2.0)
- содержит (среди прочего):
- кодировщик
cjxl
- декодировщик
djxl
- быстрый кодировщик режима только без потерь
fjxl
- инструмент для сравнительного анализа скорости и качества кодеков изображений
benchmark_xl
- GIMP и Gtk pixbuf плагин
file-jxl
- кодировщик
Официальная поддержка
Неофициальная поддержка
- Приложения Qt / KDE[21] – через плагин
- Microsoft Windows[22] – через плагин WIC, т. е. для использования посредством Средства просмотра фотографий Windows, Проводнике и т.д.
- macOS[23] – через автономное приложение и плагин быстрого просмотра
- GIMP[4] – редактор растровой графики; доступен плагин для GIMP 2.10
Предварительная поддержка
- Firefox[24] – веб-браузер; в тестировании (в Firefox Nightly)
- Chromium[25] – веб-браузер; в тестировании (в Chrome Beta и Edge Canary)
История
В 2017 году JTC1/SC29/WG1 (JPEG) объявила конкурс предложений по JPEG XL — стандарту кодирования изображений следующего поколения[26].
Формат файла (битовый поток) был заморожен 25 декабря 2020 года[27] и официально стандартизирован 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 | в разработке, запланировано на 2022 год | ISO/IEC DIS 18181-3 | JPEG XL Система кодирования изображений. Часть 3. Тестирование на соответствие | |
Этап 4 | в разработке, запланировано на 2022 год | ISO/IEC DIS 18181-4 | JPEG XL Система кодирования изображений. Часть 4. Эталонное программное обеспечение |
Примечания
- https://gitlab.com/wg1/jpeg-xl/-/tags/v0.2
- fuif/README.md . GitHub. Дата обращения: 4 апреля 2019. Архивировано 24 апреля 2021 года.
- Can JPEG XL Become the Next Free and Open Image Format? (англ.). tech.slashdot.org. Дата обращения: 27 января 2022. Архивировано 30 декабря 2021 года.
- Support for reading/writing JPEG XL images (#4681) · Issues · GNOME / GIMP (англ.). GitLab. Дата обращения: 27 января 2022. Архивировано 30 декабря 2021 года.
- How JPEG XL Compares to Other Image Codecs (англ.). Cloudinary. Дата обращения: 27 января 2022. Архивировано 30 декабря 2021 года.
- Jon Sneyers. JPEG XL as PSD transfer/storage alternative (англ.). Reddit (14 декабря 2020). Дата обращения: 27 января 2022. Архивировано 30 декабря 2021 года.
- Jon Sneyers. Progressive Transcoding · Issue #92 (англ.). GitHub (3 июня 2021). Дата обращения: 27 января 2022. Архивировано 30 декабря 2021 года.
- JPEG / JPEG XL Reference Software (англ.). GitLab. Дата обращения: 27 января 2022. Архивировано 30 декабря 2021 года.
- FLIF - Free Lossless Image Format (англ.). Дата обращения: 27 января 2022. Архивировано 21 декабря 2021 года.
- Peter de Rivaz,Jack Haughton. AV1 Bitstream & Decoding Process Specification 350–360. Alliance for Open Media (2018). Дата обращения: 15 января 2022.
- Jyrki Alakuijala, Ruud van Asseldonk, Sami Boukortt, Martin Bruse, Iulia-Maria Comía. JPEG XL next-generation image compression architecture and coding tools // Applications of Digital Image Processing XLII. — 2019-09-01. — Т. 11137. — Vol. 11137. — С. 111370K. — P. 20. — ISBN 9781510629677. — doi:10.1117/12.2529237. — .
- JPEG XL vs. AVIF (12 октября 2020). Дата обращения: 27 января 2022.
- JPEG XL reference implementation // GitHub. — 2021-12-21. Архивировано 30 декабря 2021 года.
- JPEG XL reference implementation // GitHub. — 2021-12-03. Архивировано 30 декабря 2021 года.
- JPEG XL reference implementation // GitHub. — 2021-12-03. Архивировано 30 декабря 2012 года.
- ImageMagick Studio LLC. ImageMagick (англ.). ImageMagick. Дата обращения: 27 января 2022. Архивировано 2 января 2022 года.
- JPEG XL - MantisBT . Дата обращения: 27 января 2022. Архивировано 7 ноября 2021 года.
- gThumb Image Viewer 3.11.3 Adds JPEG XL (.jxl) Support [Ubuntu PPA | UbuntuHandbook] (англ.). ubuntuhandbook.org. Дата обращения: 27 января 2022. Архивировано 30 декабря 2021 года.
- IrfanView PlugIns . Дата обращения: 27 января 2022. Архивировано 28 декабря 2021 года.
- ExifTool by Phil Harvey . exiftool.org. Дата обращения: 27 января 2022.
- qt-jpegxl-image-plugin // GitHub. — 2022-01-07. Архивировано 30 октября 2021 года.
- JPEG XL WIC // GitHub. — 2022-01-06. Архивировано 30 декабря 2021 года.
- JXLook // GitHub. — 2022-01-26. Архивировано 30 декабря 2021 года.
- (JPEG-XL) Implement support for JPEG XL (image/jxl) (англ.). Дата обращения: 27 января 2022. Архивировано 4 января 2022 года.
- Chromium - An open-source project to help move the web forward. - Monorail (англ.). Дата обращения: 27 января 2022. Архивировано 30 декабря 2021 года.
- JPEG - Next-Generation Image Compression (JPEG XL) Final Call for Proposals . jpeg.org. Дата обращения: 27 января 2022. Архивировано 30 декабря 2021 года.
- v0.2 · Tags · JPEG / JPEG XL Reference Software (англ.). GitLab. Дата обращения: 27 января 2022. Архивировано 20 октября 2021 года.