JPEG XT (ISO/IEC 18477) — стандарт сжатия изображений, который определяет обратно совместимые расширения базового стандарта JPEG (ISO/IEC 10918-1 и ITU Rec. T.81).
JPEG XT расширяет JPEG поддержкой более высоких целочисленных битовых глубин, визуализации с высоким динамическим диапазоном и кодирования с плавающей точкой, кодирования без потерь, кодирования альфа-канала и расширяемого формата файла на основе JFIF . Он также включает реализацию эталонного программного обеспечения и спецификацию тестирования соответствия.
Расширения JPEG XT обратно совместимы с базовым форматом файла JPEG/JFIF — существующее программное обеспечение совместимо с предыдущими версиями и может считывать двоичный поток JPEG XT, хотя оно будет декодировать только базовое 8-битное изображение с потерями. [1]
Стандарты JPEG официально называются Информационные технологии – Масштабируемое сжатие и кодирование непрерывных тоновых неподвижных изображений . ISO/IEC 18477 состоит из следующих частей:
Основная часть 1 стандарта определяет спецификации JPEG, которые сегодня широко используются, такие как ISO/IEC 10918-1 (базовый формат), 10918-5 JPEG File Interchange Format (JFIF) и 10918-6 (печатные приложения). Он ограничивает режимы кодирования JPEG базовым, последовательным и прогрессивным Хаффманом и включает определения JFIF преобразований цветового пространства Rec. 601 с субдискретизацией цветности YCbCr . [2] [1] Первая спецификация была разработана Томасом Рихтером из Германии, Тимом Бруйлантсом и Питером Шелкенсом из Бельгии и швейцарско-иранским инженером Тураджем Эбрахими. [2]
Формат файла Box части 3 определяет расширяемый формат, который обратно совместим с JFIF. Расширения основаны на «коробках» — 64-килобайтных фрагментах, помеченных маркером приложения 11 («APP11»), содержащих слои данных улучшения и дополнительные двоичные метаданные, описывающие, как объединить их с базовым 8-битным слоем для формирования изображения полной точности. [3] Часть 3 основана на базовом формате медиафайлов ISO, используемом JPEG 2000 ; аналогичное расположение использовалось в более раннем формате JPEG-HDR от Dolby Labs , который стандартизирован в JPEG XT Часть 2. [2]
Часть 7 включает в себя инструменты кодирования HDR с плавающей точкой, которые создают слой изображения улучшения из изображения полной точности и гамма-скорректированного тонально отображенного 8-битного базового слоя изображения. Эти инструменты предназначены для визуализации с высоким динамическим диапазоном с множественными фотоэкспозициями и компьютерными изображениями , которые превышают линейную 16-битную целочисленную точность. [2]
Он определяет три основных алгоритма для реконструкции HDR-изображения: Профиль A использует общий логарифмический масштабный коэффициент для обратного тонального отображения базового слоя; Профиль B использует слой расширения изображения делителя, масштабированный общим значением экспозиции; Профиль C похож на A, но использует покомпонентные масштабные коэффициенты и логарифмическое пространство с кусочно-линейными функциями, что позволяет выполнять кодирование без потерь. Профиль A основан на формате изображения Radiance RGBE [2] , а Профиль B основан на формате XDepth от Trellis Management. [4]
Профиль D использует простой алгоритм, который не генерирует улучшенное изображение – слой улучшения используется для хранения расширенной точности коэффициентов передачи дискретного косинусного преобразования (DCT), а негамма-передаточная функция применяется для увеличения динамического диапазона до 12 бит. Обратная совместимость ограничена, поскольку устаревшие декодеры не понимают новые кривые EOTF и производят ненасыщенные цвета. [2] Профиль D не реализован в эталонном программном обеспечении.
JPEG XT также позволяет смешивать различные элементы из разных профилей в потоке кода, обеспечивая повышенную точность DCT и кодирование без потерь во всех профилях («полный профиль»). [1]
Часть 6, Целочисленное кодирование изображений промежуточного динамического диапазона (IDR), представляет собой расширение для кодирования 9–16-битных целочисленных выборок, типичных для данных датчика RAW ; его инструменты кодирования идентичны Части 7 Профиля C. [2]
Часть 2 определяет реализацию HDR-изображения на основе формата JPEG-HDR от Dolby. [5] Он использует формат изображения RGBE, определенный в Части 7 Профиля A, поддерживающий как целочисленные, так и плавающие образцы; формат файла основан на Части 3, но использует фирменный синтаксис текстовых метаданных. [2]
Кодирование без потерь в части 8 представляет собой расширение целочисленного и плавающего кодирования на основе профиля C части 7, что позволяет масштабировать сжатие с потерями до сжатия без потерь. Для точности 10 и 12 бит используется DCT без потерь от целого числа к целому, которое заменяет каждое пространство вращения тремя сдвигами (аналогично вейвлет-преобразованию в JPEG2000). Для точности 16 бит стандартом определена аппроксимация DCT с фиксированной точкой с потерями, которая требуется для реализации декодерами. Это позволяет кодеру предсказывать ошибки кодирования и сохранять их в слое улучшения, что позволяет выполнять реконструкцию без потерь. Остаточные ошибки в слое улучшения могут быть либо несжатыми, либо сжатыми с помощью DCT без потерь от целого числа к целому. [1] Характеристики сжатия и качества изображения в части 8 сопоставимы с PNG . [2] [3]
Часть 9 Расширение альфа-канала позволяет кодировать с потерями и без потерь прозрачные изображения и изображения произвольной формы. Оно использует слой непрозрачности (прозрачности), закодированный с целочисленной или плавающей точностью, и метаданные для указания того, было ли содержимое предварительно умножено на альфа или предварительно умножено и смешано с фоновым цветом. [1] [2]
В будущем расширения защиты конфиденциальности и безопасности позволят кодировать частные области изображения (или целые изображения) с уменьшенным разрешением, с цифровым шифрованием слоев улучшения для восстановления изображения полного разрешения только для тех, у кого есть частный ключ дешифрования. Только публичные области будут видны тем, у кого нет ключа. [1] [2]
Кодирование JPEG XT Part 2 HDR основано на формате Dolby JPEG-HDR, [5] созданном в 2005 году Грегом Уордом [6] из BrightSide Technologies и Мэриэнн Симмонс из Walt Disney Feature Animation как способ хранения изображений с высоким динамическим диапазоном внутри стандартного файла JPEG . BrightSide Technologies была приобретена Dolby Laboratories в 2007 году.
Кодирование изображения основано на двухслойном формате изображения RGBE , используемом рендерером Radiance , оба из которых также были созданы Ward. Уменьшение размера файла достигается путем предварительного преобразования изображения в версию с тональной компрессией , а затем сохранения реконструктивного изображения-множителя в маркерах APP11 в том же файле JPEG/JFIF. Обычное программное обеспечение для просмотра будет игнорировать изображение-множитель, позволяя любому человеку увидеть версию изображения с тональной компрессией, представленную в стандартном динамическом диапазоне и цветовой гамме.
Формат файла JPEG-HDR похож на формат файла JPEG XT Part 3 Box, но использует текстовые метаданные. [2]
Программы, поддерживающие JPEG-HDR, включают Photosphere Грега Уорда [7] и pfstools. [8]
ISO/IEC Joint Photography Experts Group поддерживает реализацию эталонного программного обеспечения для базового JPEG (ISO/IEC 10918-1 и 18477-1) и расширений JPEG XT (ISO/IEC 18477 части 2 и 6-9), а также JPEG-LS (ISO/IEC 14495). Сокращенная версия без JPEG-LS, арифметического кодирования и иерархического прогрессивного кодера, похожего на mozjpeg, доступна по лицензии ISO. [9] Как участник ICIP Grand Challenge, автор также включает в библиотеку некоторые существующие методы оптимизации JPEG, известные как «JPEG на стероидах». [10]
Программный кодер JPEG-HDR предоставлен Dolby Labs; программное обеспечение JPEG XT Part 7 Profile B предоставлено XDepth/Trellis Management; реализация всех остальных частей была предоставлена Штутгартским университетом .