Формат файла растровой графики, поддерживающий сжатие с потерями и без потерь.
JPEG XL — это бесплатный формат файлов растровой графики , который поддерживает сжатие как с потерями , так и без потерь . Он призван превзойти существующие растровые форматы и, таким образом, стать их универсальной заменой. [6]
Имя
Название состоит из JPEG (от Объединенной группы экспертов по фотографии , которая является комитетом, разработавшим формат), X (часть названия нескольких стандартов JPEG с 2000 года: JPEG XT , JPEG XR , JPEG XS ) и L (для долгосрочный). Буква L была включена, потому что авторы намерены сделать так, чтобы этот формат заменил устаревший JPEG и прослужил так же долго. [7]
Авторы
Основными авторами спецификации являются Юрки Алакуйала, Джон Снейерс и Лука Версари. Другими соавторами являются Сами Букортт, Алекс Деймо, Мориц Фиршинг, Томас Фишбахер, Евгений Ключников, Роберт Обрик, Александр Ратушняк, Золтан Шабадка, Лоде Вандевенн и Ян Вассенберг.
История
В августе 2017 года JTC1/SC29/WG1 (JPEG) опубликовала конкурс предложений по JPEG XL, стандарту кодирования изображений следующего поколения. [8]
Предложения были представлены к сентябрю 2018 года, что привело к составлению проекта комитета в июле 2019 года. [9]
В основном он был основан на комбинации предложения под названием PIK, [10] представленного Google , и предложения под названием FUIF [11]. ] — сам основан на FLIF — представлено Cloudinary .
Битовый поток был неофициально заморожен 24 декабря 2020 года с выпуском версии 0.2 эталонного программного обеспечения libjxl. [12]
Формат файла и базовая система кодирования были официально стандартизированы 13 октября 2021 года и 30 марта 2022 года соответственно. [5] [13]
Описание
В конкурсе заявок на JPEG XL [8] говорится о требовании стандарта сжатия изображений следующего поколения со значительно более высокой эффективностью сжатия (улучшение на 60%) по сравнению с JPEG. Ожидается, что этот стандарт превзойдет производительность сжатия неподвижных изображений, продемонстрированную HEIC , AVIF , WebP и JPEG 2000 . Он также обеспечивает эффективные возможности повторного сжатия без потерь для изображений в традиционном/устаревшем формате JPEG.
Размеры изображения более миллиарда (2 30 −1) пикселей с каждой стороны. [18]
До 4099 каналов. Основные каналы: один канал для оттенков серого, три канала для RGB или четыре канала для CMYK . Остальные каналы являются необязательными и могут использоваться для хранения альфа-данных (прямых или предварительно умноженных), глубины или тепловых данных. [18]
Может быть несколько кадров с ненулевой продолжительностью (для анимации) или с нулевой длительностью (что делает их более похожими на слои в графическом программном обеспечении ). Рамки могут быть меньше или больше холста изображения и могут смешиваться различными способами. Однако для кодирования реалистичного контента по-прежнему предпочтительнее использовать обычные видеокодеки .
Независимые плитки: декодирование частей большого изображения за счет сохранения изображений в плитках.
Прогрессивное декодирование: режим, специально разработанный для быстрой загрузки больших изображений в зависимости от разрешения устройства просмотра.
Обратимое перекодирование JPEG : можно добиться уменьшения размера примерно на 20%.
Поддержка как фотографических, так и синтетических изображений: формат имеет два взаимодополняющих режима, которые можно использовать в зависимости от содержимого изображения.
Плавное снижение качества в широком диапазоне битрейтов . Потеря качества не такая резкая, как в старых форматах.
Эталонный кодер, оптимизированный для восприятия, который использует перцептивное цветовое пространство , адаптивное квантование и консервативные настройки по умолчанию.
Поддержка широкой цветовой гаммы и HDR : JPEG XL имеет встроенную поддержку различных цветовых пространств, кривых передачи и высокой яркости экрана.
Эффективное кодирование и декодирование без необходимости специального оборудования: JPEG XL кодирует и декодирует примерно так же быстро, как и старый JPEG с использованием libjpeg-turbo , и на порядок быстрее кодирует и декодирует по сравнению с HEIC с x265 . [18] Это также можно распараллелить.
JPEG XL основан на идеях формата PIK от Google и формата FUIF от Cloudinary (который, в свою очередь, основан на FLIF ). [20]
Формат в основном основан на двух режимах кодирования:
Режим VarDCT ( DCT с переменным размером блока ) – он основан на том же алгоритме DCT, что и устаревший JPEG , но блоки, вместо того, чтобы ограничиваться 8×8, бывают разных размеров (от 2×2 до 256×256), не квадратные формы (например, 16×8, 8×32, 32×64) или можно использовать другие преобразования (AFV, Hornuss). Он используется только для трех цветовых каналов, которые обычно используют цветовое пространство XYB (хотя YCbCr также поддерживается для повторного сжатия устаревшего JPEG). Режим VarDCT основан на PIK (с потерями). В режимах с потерями обычно используется цветовое пространство XYB , полученное из LMS . [21]
Модульный режим отвечает, среди прочего, за эффективное кодирование контента без потерь, а также за цели с потерями и почти без потерь. Модульный модуль также можно использовать внутри VarDCT для сохранения 2D-данных, т. е. всего, кроме коэффициентов AC (высокочастотного) DCT, включая изображение постоянного тока (которое всегда представляет собой изображение с субдискретизацией 1:8, поэтому также включает низкочастотные коэффициенты AC в случае, если используются размеры блоков больше 8×8), веса адаптивного квантования и силы фильтра.
Любые дополнительные/дополнительные каналы (например , альфа , глубина , тепловые , плашечные цвета и т. д.) всегда кодируются в модульном режиме. Он был основан на FUIF в сочетании с элементами PIK без потерь, WebP без потерь и новыми идеями, которые были разработаны на этапе сотрудничества в процессе стандартизации. [22] Модульный режим обеспечивает сжатие с потерями с помощью модифицированного преобразования Хаара , называемого «сжатие», которое имеет прогрессивные свойства, качество изображения увеличивается с увеличением объема загружаемых данных.
Один из способов более прогрессивной загрузки изображений на основе VarDCT — сохранение коэффициентов DC в отдельном «кадре DC», который использует модульное сжатие: позволяет просматривать предварительные просмотры, соответствующие изображениям с субдискретизацией 1:16, 1:32 и т. д. Сжатое преобразование также можно использовать для постепенного кодирования альфа-канала вместе с цветовыми каналами, закодированными в VarDCT, благодаря чему оба режима работают в тандеме.
Для JPEG XL по умолчанию используется настройка, близкая к визуальным потерям , которая по-прежнему обеспечивает хорошее сжатие. [18]
Этим режимам может способствовать отдельное моделирование конкретных особенностей изображения, называемых:
Сплайны для кодирования, например, волос (еще не используются эталонным кодировщиком).
Повторение «патчей», таких как текст, точки или спрайты .
Синтез шума: поскольку шум трудно сжимать, его лучше отделить, а затем восстановить в декодере. Это похоже на синтез зерна пленки в современных видеокодеках, таких как AV1 , хотя синтез шума JPEG XL не направлен на имитацию детализации аналоговой фотопленки, а скорее на моделирование фотонного шума на уровне пикселей, как это происходит в цифровой камере. при высоких настройках ISO .
Кодек JPEG XL может перекодировать без потерь широко распространенное подмножество файлов JPEG путем прямого копирования блочных коэффициентов DCT JPEG в блоки VarDCT 8×8, что делает возможным уменьшение размеров файлов благодаря превосходному энтропийному кодированию JPEG XL. Этот процесс является обратимым и позволяет побитно реконструировать исходный файл JPEG, хотя ограничения ограничивают поддержку некоторых файлов. [23]
Прогнозирование выполняется с использованием попиксельного декоррелятора без дополнительной информации, включая параметризованный самокорректирующийся взвешенный ансамбль предикторов. Контекстное моделирование включает в себя специализированные статические модели и мощные метаадаптивные модели, которые учитывают локальные ошибки, с сигнальной древовидной структурой и выбором предикторов для каждого контекста. Энтропийное кодирование поддерживается LZ77 и может использовать либо асимметричные системы счисления , либо префиксные коды (полезно для кодеров низкой сложности или для уменьшения накладных расходов коротких потоков). [16]
Анимированные (многокадровые) изображения не выполняют расширенное межкадровое предсказание , хотя доступны некоторые элементарные инструменты межкадрового кодирования:
Рамки могут быть меньше полного размера холста, при этом остальные пиксели остаются нетронутыми.
Помимо замены предыдущих кадров, кадры поддерживают несколько режимов наложения, например сложение или умножение. [24]
Можно запомнить до четырех кадров и использовать их в последующих кадрах с помощью инструмента кодирования «патчи».
Позиция Google в отношении JPEG XL неоднозначна, поскольку они внесли свой вклад в этот формат, но воздержались от его реализации в Chromium и Google Chrome. С января 2024 года Интернет-магазин Chrome предлагает расширение JPEG XL Viewer. [37]
Программное обеспечение
Реализации кодеков
Справочное программное обеспечение JPEG XL (libjxl)
Safari 17 и более поздние версии [49] [50] через движок WebKit [51]
Pale Moon v31.4.0 и более поздние версии (v31.4.1 исправлен неправильный цвет декодированных изображений JPEG XL, v31.4.2 исправлено отображение прозрачности JPEG-XL для изображений с альфа-каналом , а v32.0.0 поддерживает прогрессивное декодирование и анимацию для JPEG XL.) [52]
ImageMagick – чтение и запись изображений JPEG XL.
Приложения KDE можно создавать с помощью плагина KImageFormats со встроенной поддержкой JPEG XL. [55] Это дает большинству приложений KDE встроенную поддержку чтения и записи и работает со всеми приложениями файлового менеджера Dolphin, включая просмотрщик изображений Gwenview, инструмент цифрового рисования Krita и менеджер фотографий DigiKam .
Поддержка JPEG XL в веб-браузерах Chromium и Chrome была введена для тестирования 1 апреля 2021 г. [63] и удалена 9 декабря 2022 г., при этом поддержка была удалена в версии 110. [64] [65] Команда Chrome отметила отсутствие интереса. из экосистемы, недостаточные улучшения и желание сосредоточиться на улучшении существующих форматов как причины удаления поддержки JPEG XL. [63] [66] [64] Это решение встретило сопротивление со стороны сообщества, многие из которых высказались в поддержку JPEG XL в системе отслеживания ошибок Chromium. [63] [67] [66] Джон Снейерс, соавтор спецификации JPEG XL, поставил под сомнение выводы, сделанные командой Chrome, заявив: «Я думаю, что произошла досадная неправильная интерпретация данных ... которая к сожалению, привели [ sic ] к неправильному решению». [68] Это решение также подверглось критике со стороны Грега Фароу из Фонда свободного программного обеспечения , который заявил, что оно демонстрирует «тревожную степень контроля» Google над сетью и веб-браузерами. [69]
^ Это предварительная запись. См. официальный список типов носителей [1] и предварительный список [2] .
Рекомендации
^ «Типы носителей». ИАНА. Архивировано из оригинала 21 октября 2022 г. Проверено 21 октября 2022 г.
^ «Предварительные типы носителей». ИАНА. Архивировано из оригинала 07 декабря 2023 г. Проверено 7 декабря 2023 г.
^ «Обзор формата JPEG XL» . Гитхаб. Архивировано из оригинала 20 октября 2022 г. Проверено 20 октября 2022 г.
^ ab "fuif/README.md". Гитхаб. 04.04.2019. Архивировано из оригинала 24 апреля 2021 г.
^ abc ISO/IEC 18181-1:2022 Информационные технологии. Система кодирования изображений JPEG XL. Часть 1. Базовая система кодирования.
^ ab «Может ли JPEG XL стать следующим бесплатным и открытым форматом изображений? - Slashdot». 20 февраля 2021 г. Архивировано из оригинала 30 декабря 2021 г.
^ «Поддержка чтения/записи изображений JPEG XL (# 4681) · Проблемы · GNOME / GIMP» . 26 февраля 2021 г. Архивировано из оригинала 30 декабря 2021 г.
^ ab «N79010 Окончательный прием предложений по стандарту кодирования изображений следующего поколения (JPEG XL)» (PDF) . ISO/IEC JTC 1/SC 29/WG 1 (ITU-T SG16) . 15 апреля 2018 г.
^ «PIK, новый формат изображений с потерями/без потерь для фотографий и Интернета» . Гитхаб . Проверено 17 октября 2022 г.
^ «FUIF, бесплатный универсальный формат изображений» . Гитхаб . Проверено 17 октября 2022 г.
^ «Справочное программное обеспечение JPEG XL v0.2» . ГитЛаб . 2021-02-19. Архивировано из оригинала 20 октября 2021 г.
^ ab ISO / IEC 18181-2: 2021 Информационные технологии. Система кодирования изображений JPEG XL. Часть 2. Формат файла.
^ «Использование Saliency в прогрессивных изображениях JPEG XL» . Проверено 17 октября 2022 г.
^ «JPEG XL поступил в проект комитета» . JPEG.org . 03.08.2019. Архивировано из оригинала 3 августа 2019 г. Проверено 3 августа 2019 г. Текущие участники обязались выпустить его публично под лицензией с открытым исходным кодом и без лицензионных отчислений.
^ ab «Белая книга JPEG XL» (PDF) . JPEG.org . 29 января 2021 г. Архивировано (PDF) из оригинала 2 мая 2021 года . Проверено 17 марта 2021 г.
^ «JPEG XL против AVIF — страница 6» . encode.su . Проверено 22 октября 2022 г.
↑ abcd Снейерс, Джон (26 мая 2020 г.). «Чем JPEG XL сравнивается с другими кодеками изображений». Облачно . Архивировано из оригинала 30 декабря 2021 г. Проверено 19 февраля 2021 г.
^ «libjxl/libjxl: эталонная реализация формата изображения JPEG XL» . Гитхаб . Архивировано из оригинала 22 мая 2022 г. Проверено 5 июня 2022 г.
^ «FLIF — бесплатный формат изображений без потерь» . Архивировано из оригинала 21 декабря 2021 г. Проверено 06 апреля 2021 г.
^ Алакуйала, Юрки; ван Ассельдонк, Рууд; Букортт, Сами; Шабадка, Золтан; Брюс, Мартин; Комса, Юлия-Мария; Фиршинг, Мориц; Фишбахер, Томас; Ключников Евгений; Гомес, Себастьян; Обрик, Роберт; Потемпа, Кшиштоф; Ратушняк, Александр; Снейерс, Джон; Шабадка, Золтан; Вандервенн, Лоде; Версари, Лука; Вассенберг, январь (6 сентября 2019 г.). «Архитектура сжатия изображений нового поколения и инструменты кодирования JPEG XL». В Тешере, Эндрю Дж.; Эбрахими, Турадж (ред.). Применение цифровой обработки изображений XLII . Том. 11137. с. 20. Бибкод : 2019SPIE11137E..0KA. дои : 10.1117/12.2529237 . ISBN9781510629677.
^ "FLIF, 3 сентября 2021 г., комментарий любителей" . Гитхаб .
^ Снейерс, Джон (10 декабря 2021 г.). «Запрос на функцию: разрешить jbrd восстановить часть файла, если это невозможно для всего файла». Гитхаб .
^ «Эталонная реализация JPEG XL» . Гитхаб . 3 декабря 2021 года. Архивировано из оригинала 30 декабря 2021 года . Проверено 24 июня 2021 г.
^ Андре, Эрик (20 апреля 2021 г.). «Заявление Facebook о поддержке проблемы Chromium № 1178058». bugs.chromium.org . Проверено 3 ноября 2022 г.
^ Андре, Эрик (24 мая 2021 г.). «Заявление Facebook о поддержке проблемы Firefox № 1539075». bugzilla.mozilla.org . Проверено 3 ноября 2022 г.
^ Розентол, Леонард (07.06.2021). «Заявление о поддержке Adobe по проблеме Firefox № 1539075». bugzilla.mozilla.org . Проверено 3 ноября 2022 г.
^ Чан, Эрик (23 августа 2022 г.). «Заявление о поддержке Adobe по проблеме Chromium № 1178058». bugs.chromium.org . Проверено 3 ноября 2022 г.
^ Вустер, Роланд (24 августа 2022 г.). «Заявление о поддержке проблемы Chromium № 1178058 от председателя VESA DisplayHDR и главного инженера группы клиентских вычислений Intel». bugs.chromium.org . Проверено 3 ноября 2022 г.
^ Вустер, Роланд (11 ноября 2022 г.). «Усиленное заявление о поддержке проблемы Chromium № 1178058 со стороны председателя VESA DisplayHDR и главного инженера группы клиентских вычислений Intel». bugs.chromium.org . Проверено 11 ноября 2022 г.
^ Шовен, Марио (26 августа 2022 г.). «Заявление The Guardian о поддержке проблемы Chromium № 1178058» . bugs.chromium.org . Проверено 3 ноября 2022 г.
^ Шовен, Марио (13 января 2022 г.). «Заявление The Guardian о поддержке проблемы Firefox № 1539075». bugzilla.mozilla.org . Проверено 3 ноября 2022 г.
^ Макаскилл, Дон (04 января 2022 г.). «Заявление о поддержке Flickr и SmugMug по проблеме Firefox № 1539075». bugzilla.mozilla.org . Проверено 3 ноября 2022 г.
^ Бенделл, Колин (17 октября 2022 г.). «Заявление Shopify о поддержке проблемы Chromium № 1178058». bugs.chromium.org . Проверено 3 ноября 2022 г.
^ Ремпт, Ремпт (10 ноября 2022 г.). «Заявление о поддержке Krita Foundation по вопросу Chromium № 1178058». bugs.chromium.org . Проверено 11 ноября 2022 г.
^ Брайтман, Тони (11 ноября 2022 г.). «Заявление о поддержке SerifLabs компании Serif Ltd. по проблеме Chromium № 1178058» . bugs.chromium.org . Проверено 11 ноября 2022 г.
^ "Программа просмотра JPEG XL" . chromewebstore.google.com . Проверено 7 февраля 2024 г.
^ «Обновите JPEG-XL с учетом последних изменений» . Гитхаб . 27.12.2019 . Проверено 10 октября 2022 г.
^ «ПОЖАЛУЙСТА, НЕ ОТКРЫВАЙТЕ НОВЫЕ ВОПРОСЫ ЗДЕСЬ» . Проверено 27 мая 2021 г.
^ Сиипола, Йоханнес (31 октября 2022 г.), JPEG XL Encode , получено 29 ноября 2022 г.
^ Лео Изен (6 марта 2023 г.). «гидрий». Гитхаб . Проверено 2 апреля 2023 г.
↑ Вону Чхве (29 октября 2023 г.). «jxl-оксид». Гитхаб . Проверено 29 сентября 2023 г.
^ «JPEG XL: как все началось, как идет» . Облачно. 12 июля 2023 г. Проверено 3 ноября 2023 г.
^ «macOS 14 Sonoma: обзор Ars Technica» . АрсТехника . 29 октября 2023 г. Проверено 29 октября 2023 г.
^ «Изучите медиаформаты для Интернета — WWDC23 — Видео» . Разработчик Apple . Проверено 6 июня 2023 г.
^ "Примечания к выпуску бета-версии Safari 17" . Документация разработчика Apple . Проверено 6 июня 2023 г.
^ «208235 – Поддержка изображений JPEG XL» . bugs.webkit.org . Проверено 28 июля 2023 г.
^ «Бледная Луна — Примечания к выпуску для архивных версий» . Проверено 17 января 2024 г.
^ «Поддержка JPEG-XL (# 2040) · Проблемы · GNOME / Epiphany · GitLab» . ГитЛаб . 12 апреля 2023 г. Проверено 28 июля 2023 г.
^ «257871 — [CMake] Включить JPEG XL по умолчанию, больше не является экспериментальным» . bugs.webkit.org . Проверено 28 июля 2023 г.
^ "KImageFormats". КДЕ изобретать . Проверено 29 октября 2023 г.
^ «Поддерживаемые форматы графики и изображений» . XnView.com . Проверено 17 января 2024 г.
^ "Jpeg Xl Вик". Гитхаб . 27 ноября 2021 года. Архивировано из оригинала 30 декабря 2021 года . Проверено 23 марта 2021 г.
^ "Большой палец JXL WIN" . Гитхаб . 11 июня 2022 г. Проверено 27 декабря 2022 г.
^ "JXLook". Гитхаб . Декабрь 2021 г. Архивировано из оригинала 30 декабря 2021 г. Проверено 01 марта 2021 г.
^ "Плагин libjxl gdk-pixbuf" . Гитхаб . Проверено 26 ноября 2022 г.
^ "Плагин изображения Qt jpegxl" . Гитхаб . Проверено 29 октября 2023 г.
^ «1539075 - (JPEG-XL) Реализовать поддержку JPEG XL (Image/JXL)» . Архивировано из оригинала 4 января 2022 г. Проверено 01 марта 2021 г.
^ abc «Проблема 1178058: поддержка декодирования JPEG XL (image/jxl) в режиме Flash (ошибка отслеживания)» . bugs.chromium.org . Проверено 16 декабря 2022 г.
^ ab Доказано, Лиам. «Google выпускает новую версию JPEG из Chromium». www.theregister.com . Проверено 6 июня 2023 г.
^ Поддержка JPEG XL
^ аб Снейерс, Джон (2 ноября 2022 г.). «Дело в пользу JPEG-XL». Облачный блог . Проверено 30 декабря 2022 г.
^ Шенкленд, Стивен (03 ноября 2022 г.). «Chrome отказался от формата фотографий JPEG XL, который мог бы сэкономить место на телефоне» . CNET . Проверено 3 ноября 2022 г.
^ Снейерс, Джон (14 декабря 2022 г.). «Re: Намерение создать прототип: поддержка декодирования JPEG XL (image/jxl) в Blink». блинк-дев (список рассылки) . Проверено 30 декабря 2022 г.
^ Перди, Кевин (17 апреля 2023 г.). «FSF: убийство Chrome JPEG XL показывает, как работает Интернет в условиях гегемонии браузера». Арс Техника . Проверено 6 июня 2023 г.