Interested Article - JPEG XL

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

Название

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

Особенности

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

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

Схема архитектуры кодека JPEG XL

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% .

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

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

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

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

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

  • JPEG XL Reference Software (libjxl)
    • лицензия: New BSD License (раннее Apache License 2.0 )
    • содержит (среди прочего):
      • кодировщик cjxl
      • декодировщик djxl
      • быстрый кодировщик fjxl только с режимом без потерь
      • инструмент для сравнительного анализа скорости и качества кодеков изображений benchmark_xl
      • GIMP и Gtk pixbuf плагин file-jxl
  • J40: Независимый, автономный декодер JPEG XL
    • лицензия: MIT License без указания авторства
    • Библиотека с одним заголовком C99 (без зависимостей)
    • "XL" римскими цифрами обозначает 40, отсюда и название
  • libjxl-tiny: более простая реализация кодера JPEG XL, предназначенная для фотоизображений без альфа-канала
    • лицензия: New BSD License
  • jxlatte: декодер JPEG XL на Java
    • лицензия: MIT License
  • jxl_decode: декодер JPEG XL на языке Python
    • лицензия: MIT License
  • jpeg-xl-encode: PHP-оболочка JPEG XL для кодировщика
    • лицензия: MIT License
  • hydrium: быстрый потоковый кодер JPEG XL со сверхнизким потреблением памяти, написанный на портативном C
    • лицензия: BSD License
  • jxl-oxide: небольшой декодер JPEG XL, полностью написанный на Rust
    • двойная лицензия: MIT License и Apache License 2.0

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

  • ImageMagick – набор инструментов для обработки растровой графики
  • XnView MP – просмотрщик и редактор растровой графики
  • Affinity Photo – редактор растровой графики
  • GIMP – редактор растровой графики; доступен плагин для GIMP 2.10
  • Krita – редактор растровой графики
  • gThumb – бесплатный просмотрщик изображений в Linux
  • IrfanView – бесплатный просмотрщик и редактор изображений для Windows; через официальный плагин
  • ExifTool – редактор метаданных
  • Adobe Lightroom Classic — редактор растровой графики и «проявки» RAW-снимков
  • ImageGlass - просмотрщик и редактор растровой графики
  • Apple Inc.
    • iOS/iPadOS – мобильная ОС версии 17 и новее – общесистемное чтение, включая Files и Photos
    • macOS – ОС, начиная с macOS Sonoma версии 14 и новее – чтение в Finder и Preview
    • visionOS (предполагается)
    • watchOS версии 10 и новее
    • Safari – веб-браузер версии 17 и новее через движок WebKit

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

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

  • 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. Эталонное ПО

Примечания

Комментарии

  1. Noise synthesis is an exception, as it's also featured in AVIF created before JPEG XL.

Источники

  1. . GitHub. Дата обращения: 4 апреля 2019. 24 апреля 2021 года.
  2. (англ.) . tech.slashdot.org . Дата обращения: 27 января 2022. 30 декабря 2021 года.
  3. (англ.) . GitLab . Дата обращения: 27 января 2022. 30 декабря 2021 года.
  4. (англ.) . Cloudinary . Дата обращения: 27 января 2022. 30 декабря 2021 года.
  5. Jon Sneyers. (англ.) . Reddit (14 декабря 2020). Дата обращения: 27 января 2022. 30 декабря 2021 года.
  6. Jon Sneyers. (англ.) . GitHub (3 июня 2021). Дата обращения: 27 января 2022. 30 декабря 2021 года.
  7. (англ.) . GitLab . Дата обращения: 27 января 2022. 30 декабря 2021 года.
  8. (англ.) . Дата обращения: 27 января 2022. 21 декабря 2021 года.
  9. Peter de Rivaz,Jack Haughton. 350–360. Alliance for Open Media (2018). Дата обращения: 15 января 2022. 2 мая 2019 года.
  10. 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 : .
  11. (12 октября 2020). Дата обращения: 27 января 2022. 15 января 2022 года.
  12. // GitHub . — 2021-12-21. 30 декабря 2021 года.
  13. // GitHub . — 2021-12-03. 30 декабря 2021 года.
  14. // GitHub . — 2021-12-03. 30 декабря 2012 года.
  15. ImageMagick Studio LLC. (англ.) . ImageMagick . Дата обращения: 27 января 2022. 2 января 2022 года.
  16. . Дата обращения: 27 января 2022. 7 ноября 2021 года.
  17. affinity.serif.com . Дата обращения: 14 июня 2023. 14 декабря 2022 года.
  18. Wilber. (англ.) . www.gimp.org (14 июня 2022). Дата обращения: 26 февраля 2023. 6 января 2023 года.
  19. Krita Foundation, Halla Rempt. (амер. англ.) . Krita (18 августа 2022). Дата обращения: 14 июня 2023. 20 января 2023 года.
  20. (англ.) . ubuntuhandbook.org . Дата обращения: 27 января 2022. 30 декабря 2021 года.
  21. . Дата обращения: 27 января 2022. 28 декабря 2021 года.
  22. . exiftool.org . Дата обращения: 27 января 2022. 26 января 2022 года.
  23. (рус.) . Adobe. Дата обращения: 17 ноября 2023. 17 ноября 2023 года.
  24. (англ.) . Apple Developer . Дата обращения: 14 июня 2023. 8 июня 2023 года.
  25. (амер. англ.) . Apple Developer Documentation . Дата обращения: 14 июня 2023.
  26. // GitHub . — 2022-01-07. 30 октября 2021 года.
  27. // GitHub . — 2022-01-06. 30 декабря 2021 года.
  28. // GitHub . — 2022-01-26. 30 декабря 2021 года.
  29. (амер. англ.) . paint.net Forum (29 августа 2022). Дата обращения: 14 июня 2023. 11 июня 2023 года.
  30. (англ.) . Дата обращения: 27 января 2022. 4 января 2022 года.
  31. (амер. англ.) . developer.mozilla.org (7 ноября 2023). Дата обращения: 17 ноября 2023. 17 ноября 2023 года.
  32. (амер. англ.) . addons.mozilla.org . Дата обращения: 17 ноября 2023. 17 ноября 2023 года.
  33. (англ.) . Дата обращения: 27 января 2022. 30 декабря 2021 года.
  34. Liam Proven. (англ.) . www.theregister.com . Дата обращения: 14 июня 2023. 23 июля 2023 года.
  35. . bugs.chromium.org . Дата обращения: 17 ноября 2023. 17 ноября 2023 года.
  36. 262588213843476 (англ.) . Gist . Дата обращения: 17 ноября 2023. 17 ноября 2023 года.
  37. . jpeg.org . Дата обращения: 27 января 2022. 30 декабря 2021 года.
  38. (англ.) . GitLab . Дата обращения: 27 января 2022. 20 октября 2021 года.

Ссылки

Источник —

Same as JPEG XL