Формат изображения Ultra HDR v1.0

Введение

Этот документ определяет поведение нового формата файла, который кодирует изображение карты усиления логарифмического диапазона в файл изображения JPEG. Устаревшие устройства чтения, которые не поддерживают новый формат, считывают и отображают обычное изображение с низким динамическим диапазоном из файла изображения. Считыватели, поддерживающие этот формат, объединяют основное изображение с картой усиления и визуализируют изображение с расширенным динамическим диапазоном на совместимых дисплеях.

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

  1. Кодирование

    1. Генерация карты усиления
    2. Усиление сжатия карты
    3. Генерация контейнера карты усиления
  2. Декодирование


Пример макета файла формата изображения Ultra HDR со связанными метаданными и информацией о смещении.

Рисунок 1. Пример макета файла и соответствующие метаданные.

Мотивация

Целью этого формата файлов является кодирование дополнительной информации в файлах изображений SDR, которую можно использовать в сочетании с методом отображения для создания оптимального HDR-изображения в одном файле.

Чтобы это было практично, формат файла должен:

  • Быть обратно совместимым, чтобы в простых программах просмотра отображалось обычное изображение SDR.
  • Не занимают слишком много дополнительного места.

Кроме того, техника показа должна:

  • Не требует тяжелой обработки для декодирования.
  • Возможность адаптироваться к любому соотношению между белыми точками HDR и SDR дисплея, которое может значительно различаться между устройствами или даже временно на одном устройстве.

И, наконец, техника должна быть способна выполнять все предыдущие действия без необходимости:

  • Вырезка ярких моментов.
  • Сокрушающие тени.
  • Изменение или сжатие местного контраста.
  • Изменение относительных тональных отношений (между объектами сцены).

Зависимости

Ниже приведены нормативные ссылки для этой спецификации:

Определения

  • SDR-дисплей

    • Обычный дисплей, не предназначенный для отображения HDR-контента. Эти дисплеи обычно обеспечивают номинальную пиковую яркость около 400 кд/м 2 или меньше.
  • HDR-дисплей

    • Дисплей, предназначенный для HDR-контента. Эти дисплеи обычно обеспечивают номинальную пиковую яркость выше, чем у дисплеев SDR, обычно 800 кд/м 2 или выше, и обычно также имеют лучшие коэффициенты контрастности, чем дисплеи SDR.
  • Основное изображение

    • Первый экземпляр изображения в файле GContainer с добавленными к нему вторичными медиафайлами. Первичное изображение содержит метаданные GContainer XMP, определяющие порядок и свойства последующих файлов вторичных медиа-элементов в файловом контейнере.
  • Вторичное изображение

    • Последующие файлы медиа-элементов, которые добавляются к основному изображению в файле GContainer.
  • Сжатие диапазона

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

    • Максимальная линейная яркость содержимого SDR на дисплее в определенный момент времени.
  • HDR белая точка

    • Максимальная линейная яркость HDR-контента на дисплее в определенный момент времени. Это значение обычно выше точки белого SDR.
  • Способствовать росту

    • Точка белого HDR, разделенная на точку белого SDR.
  • Максимальное увеличение контента ( max_content_boost в уравнениях)

    • Это значение позволяет создателю контента ограничить, насколько ярче может стать изображение на дисплее HDR по сравнению с воспроизведением SDR.
    • Это значение является константой для конкретного изображения. Например, если значение равно четырем, то для любого данного пикселя линейная яркость отображаемого представления HDR должна быть не более чем в 4 раза выше линейной яркости представления SDR. На практике это означает, что более яркие части сцены могут отображаться в 4 раза ярче.
    • На практике это значение обычно превышает 1,0.
    • Всегда больше или равно минимальному увеличению контента .
  • Минимальное увеличение контента ( min_content_boost в уравнениях)

    • Это значение позволяет создателю контента ограничить, насколько темнее может стать изображение при отображении на дисплее HDR по сравнению с воспроизведением SDR. Это значение является константой для конкретного изображения.
    • Если, например, значение равно 0,5, то для любого данного пикселя линейная яркость отображаемого представления HDR должна быть (как минимум) в 0,5 раза больше линейной яркости представления SDR.
    • На практике это значение обычно равно или чуть меньше 1,0.
    • Всегда меньше или равно максимальному увеличению контента .
  • Максимальное увеличение дисплея ( max_display_boost в уравнениях)

    • Максимально доступное ускорение, поддерживаемое дисплеем в данный момент времени. Это значение может меняться со временем в зависимости от настроек устройства и других факторов, таких как условия окружающего освещения или количество ярких пикселей на экране.
    • Например, если это значение равно 4,0, то дисплей способен отображать пиксель, который не более чем в четыре раза ярче точки белого SDR. Это значение всегда >= 1,0, поскольку дисплей всегда может отображать белый цвет HDR, по крайней мере, такой же яркий, как белый цвет SDR.
  • Увеличение дисплея

    • Равно меньшему из двух значений: максимальное увеличение контента и максимальное увеличение отображения. Это значение всегда >= 1,0.
    • Например, если максимальное усиление контента равно 4,0, а максимальное усиление отображения — 3,0, то усиление отображения равно 3,0. Пиксели отображаются в 3 раза ярче, чем SDR, поскольку ограничивающим фактором являются возможности дисплея.
    • Другой пример: если максимальное усиление контента равно 4,0, а максимальное усиление отображения — 5,0, то усиление отображения равно 4,0. Пиксели отображаются в 4 раза ярче, чем SDR, поскольку ограничивающим фактором является содержание контента.
  • Целевое воспроизведение HDR

    • По мнению создателя контента, идеальное воспроизведение HDR.
  • Адаптированное воспроизведение HDR

    • Окончательное воспроизведение HDR, отображаемое на дисплее после адаптации целевого представления HDR к текущему усилению дисплея.
  • Карта усиления ( recovery(x, y) в уравнениях)

    • Карта, показывающая, насколько осветлить каждый пиксель в SDR-воспроизведении, чтобы получить целевое HDR-изображение. Эта карта может быть одноканальной или многоканальной. Многоканальная карта указывает отдельное усиление для каждого цветового канала, например красного, зеленого и синего. Этот документ иллюстрирует случай одноканальной карты.
  • clamp(x, a, b)

    • Ограничьте значение x диапазоном [a, b].
  • exp2(x)

    • Возведение в степень по основанию 2; 2 х .
  • floor(x)

    • Возвращает ближайшее целое число, равное или меньшее x.
  • log2(x)

    • Логарифм по основанию 2; журнал 2 (х)
  • pow(b, x)

    • Возведение в степень; б х .
  • XMP

    • Расширяемая платформа метаданных. Стандарт, определяющий метод кодирования метаданных в контейнер изображения; определено стандартом ISO 16684-1:2011(E) Спецификация XMP, часть 1 .
  • Мультиформатный формат

    • Формат нескольких изображений — это метод, разработанный Ассоциацией продуктов для камер и изображений (CIPA) для хранения нескольких изображений в кодировке JPEG в одном файле JPEG.
    • Для получения дополнительной информации см. соответствующую зависимость в Белой книге формата нескольких изображений CIPA DC-x 007-2009 .
  • GКонтейнер

    • GContainer — это метод хранения нескольких изображений в одном контейнере изображений, где одно изображение считается основным. Любые дополнительные изображения считаются альтернативными версиями или вспомогательными. Метаданные XMP используются для сообщения о наличии и значении любых дополнительных изображений. Для получения дополнительной информации см. раздел сведений о GContainer .

Кодировать

В этом разделе описывается, как закодировать соответствующий файл JPEG. Дополнительную информацию о формате JPEG см. в T.81 (09/92) Цифровое сжатие и кодирование неподвижных изображений с непрерывным тоном в разделе «Зависимости».

Генерация карты усиления

Конвейеры обработки изображений с камер обычно выполняют операцию сжатия диапазона для сжатия данных яркости с более высоким динамическим диапазоном в более низкий диапазон обычных дисплеев SDR. Карта усиления обеспечивает механизм хранения данных, достаточных для восстановления исходных данных яркости с более высоким динамическим диапазоном.

Следующие вычисления в этом разделе предполагают арифметику с плавающей запятой.

Следующие функции описывают образ SDR:

  • SDR'(x, y) представляет собой трехканальное нелинейное (обычно гамма-кодированное) первичное изображение.
  • SDR(x, y) — линейная версия трехканального первичного изображения, полученная путем преобразования в линейную версию цветового пространства первичного изображения. Например, из цветового пространства с передаточной функцией sRGB в линейное цветовое пространство, сохраняющее основные цвета sRGB.

Функция Ysdr(x, y) определяется в диапазоне от 0,0 до 1,0 и представляет собой стандартный динамический диапазон линейной яркости основного изображения:

Ysdr(x, y) = primary_color_profile_to_luminance(SDR(x, y))

Аналогичные определения существуют для изображения HDR.

  • HDR'(x, y) представляет собой трехканальное нелинейное изображение, то есть изображение, закодированное PQ или HLG.
  • HDR(x, y) — трехканальное линейное HDR-изображение.

Yhdr(x, y) — яркость в данной точке HDR-изображения:

Yhdr(x, y) = primary_color_profile_to_luminance(HDR(x, y))

Yhdr(x, y) определяется в диапазоне от 0,0 до максимального увеличения контента.

Изображения SDR и HDR должны иметь одинаковое разрешение. Цветовой профиль изображения SDR определяет цветовое пространство изображения HDR.

Например, если основное изображение SDR имеет цветовой профиль Display-P3, то изображение HDR определяется относительно основных цветов этого профиля. Это означает, что изображение HDR также имеет основные цвета Display-P3.

Карта усиления вычисляется из двух линейных изображений, содержащих желаемую яркость HDR-изображения Yhdr(x, y) и изображение яркости стандартного диапазона Ysdr(x, y) .

Функция pixel_gain(x, y) определяется как соотношение между функцией Yhdr(x, y) и функцией Ysdr(x, y) :

pixel_gain(x, y) = (Yhdr(x, y) + offset_hdr) / (Ysdr(x, y) + offset_sdr)

Поведение функции pixel_gain(x, y) , где Ysdr(x, y) и offset_sdr равны нулю, определяется реализацией.

Например, реализации могут обрабатывать случай, когда Ysdr(x, y) и offset_sdr оба равны нулю, определив pixel_gain(x, y) как 1,0. Альтернативно, реализации также позволяют избежать этого сценария, используя ненулевое offset_sdr .

Реализация может выбрать значения offset_sdr и offset_hdr .

Карта усиления — это скалярная функция, которая кодирует pixel_gain(x, y) в логарифмическом пространстве относительно максимального увеличения контента и минимального увеличения контента:

map_min_log2 = log2(min_content_boost)
map_max_log2 = log2(max_content_boost)

log_recovery(x, y) = (log2(pixel_gain(x, y)) - map_min_log2)
                   / (map_max_log2 - map_min_log2)
clamped_recovery(x, y) = clamp(log_recovery(x, y), 0.0, 1.0)
recovery(x, y) = pow(clamped_recovery(x, y), map_gamma)

Поведение функции recovery(x, y) , где pixel_gain(x, y) равно нулю, определяется реализацией, поскольку log2(0) не определен.

map_gamma — это число с плавающей запятой, которое должно быть больше 0,0 и выбирается реализацией.

Значения максимального увеличения контента и минимального увеличения контента определяются реализацией и могут быть произвольно определены создателем контента. Максимальное усиление контента должно быть больше или равно 1,0. Минимальное увеличение контента должно находиться в диапазоне (0,0, 1,0).

Значения в recovery(x, y) ограничены диапазоном [0,0, 1,0].

Карта усиления хранится во вторичном изображении JPEG и, следовательно, должна быть закодирована с использованием 8-битных целых чисел без знака, то есть в диапазоне [0, 255]. Каждое значение представляет собой значение recovery(x, y) и хранится в одном пикселе вторичного изображения.

Для хранения 8-битных беззнаковых целых чисел закодированное значение определяется следующим образом:

encoded_recovery(x, y) = floor(recovery(x, y) * 255.0 + 0.5)

Вычисление функции кодирования выполняется в формате с плавающей запятой и в конце преобразуется в результат 8-битного целого числа без знака путем округления, как указано.

Результатом этого кодирования является 8-битное целое число без знака, представляющее значения recovery(x, y) от 0,0 до 1,0. Закодированная карта усиления должна быть сохранена во вторичном изображении в формате JPEG. Реализация выбирает степень сжатия, используемую во время кодирования JPEG.

После того как карта усиления сохраняется во вторичном изображении, она добавляется к первичному изображению с метаданными MPF и GContainer XMP. Каталог GContainer основного образа должен содержать элемент для изображения карты усиления.

Разрешение сохраненной карты усиления определяется реализацией и может отличаться от разрешения основного изображения. В случае, если карта усиления масштабируется до разрешения, отличного от разрешения основного изображения для хранения, метод выборки должен быть билинейным или лучше и определяется реализацией.

Ориентация карты усиления должна совпадать с ориентацией основного изображения. Если они присутствуют, любые метаданные ориентации в сохраненном изображении карты усиления, как в EXIF, не используются.

Если он присутствует, цветовой профиль карты усиления не используется.

Получить контейнер карты

Цветовой профиль

Цветовой профиль изображения должен быть указан через профиль ICC для основного изображения.

XMP-атрибуты

Основное изображение содержит метаданные XMP для определения как минимум двух изображений с дополнительной семантической информацией для формата карты усиления HDR.

Следующие подразделы содержат подробную информацию, относящуюся к этому формату. Дополнительная информация относительно общего соответствия GContainer указана в разделе сведений о GContainer .

Значения атрибутов, описанные в следующих таблицах, сохраняются как простые значения XMP указанных типов базовых значений XMP.

Семантические значения элемента

Свойство Item:Semantic определяет значение каждого элемента мультимедиа в каталоге контейнера для конкретного приложения.

Ценить Описание
Начальный Указывает, что элемент мультимедиа является основным изображением, готовым к отображению в контейнере. Каталог должен содержать один «Основной» элемент.
Карта усиления Указывает, что медиа-элемент является картой усиления. Каталог может содержать не более одного элемента «GainMap».

Метаданные карты усиления HDR

Метаданные карты усиления кодируют информацию о том, как интерпретировать и применять карту усиления для создания HDR-представления основного изображения.

URI пространства имен XMP для расширения XMP метаданных карты усиления — http://ns.adobe.com/hdr-gain-map/1.0/ . Префикс пространства имен по умолчанию — hdrgm .

Эти метаданные хранятся в XMP-пакете изображения карты усиления, и в rdf:Description изображения карты усиления должны присутствовать следующие свойства:

Имя Тип Описание
hdrgm:Версия Текст Используемая версия формата карты усиления. Эта версия «1.0». Необходимый .
hdrgm:BaseRenditionIsHDR логическое значение Указывает динамический диапазон основного изображения. «False» указывает, что основное изображение является SDR, и карту усиления можно объединить с ним для создания HDR-изображения. «True» указывает, что основным изображением является HDR, и карта усиления может быть объединена с ним для создания представления SDR. Должно быть «Ложь». Необязательный; значение по умолчанию — «Ложь».
hdrgm:GainMapMin Реальный или упорядоченный массив действительных чисел Сохраняет значения map_min_log2 . Это log2 минимального повышения контента, который представляет собой минимально допустимое соотношение линейной яркости для целевого представления HDR относительно (деленного) изображения SDR в данном пикселе. Это может быть один Real или упорядоченный массив Real. Если это упорядоченный массив действительных чисел, он может содержать один элемент, который применяется ко всем каналам, или три элемента для красного, зеленого и синего каналов соответственно. Должно быть меньше или равно hdrgm:GainMapMax . Необязательный; значение по умолчанию — 0,0.
hdrgm:GainMapMax Реальный или упорядоченный массив действительных чисел Сохраняет значения map_max_log2 . Это log2 максимального повышения контента, который представляет собой максимально допустимое соотношение линейной яркости для целевого HDR-воспроизведения относительно (деленного) изображения SDR в данном пикселе. Это может быть один Real или упорядоченный массив Real. Если это упорядоченный массив действительных чисел, он может содержать один элемент, который применяется ко всем каналам, или три элемента для красного, зеленого и синего каналов соответственно. Должно быть больше или равно hdrgm:GainMapMin . Необходимый .
hdrgm:Гамма Реальный или упорядоченный массив действительных чисел Сохраняет значение(я) map_gamma . Это гамма, применяемая к сохраненным значениям карты. Это может быть один Real или упорядоченный массив Real. Если это упорядоченный массив действительных чисел, он может содержать один элемент, который применяется ко всем каналам, или три элемента для красного, зеленого и синего каналов соответственно. Должно быть больше 0,0. Необязательный; значение по умолчанию — 1,0.
hdrgm:OffsetSDR Реальный или упорядоченный массив действительных чисел Сохраняет значение(я) offset_sdr . Это смещение, которое применяется к значениям пикселей SDR во время создания и применения карты усиления. Это может быть один Real или упорядоченный массив Real. Если это упорядоченный массив действительных чисел, он может содержать один элемент, который применяется ко всем каналам, или три элемента для красного, зеленого и синего каналов соответственно. Должно быть 0,0 или больше. Необязательный; значение по умолчанию — 0,015625 (1/64).
hdrgm:OffsetHDR Реальный или упорядоченный массив действительных чисел Сохраняет значение(я) offset_hdr . Это смещение, которое применяется к значениям пикселей HDR во время создания и применения карты усиления. Это может быть один Real или упорядоченный массив Real. Если это упорядоченный массив действительных чисел, он может содержать один элемент, который применяется ко всем каналам, или три элемента для красного, зеленого и синего каналов соответственно. Должно быть 0,0 или больше. Необязательный; значение по умолчанию — 0,015625 (1/64).
hdrgm:HDRCapacityMin Настоящий Сохраняет значение hdr_capacity_min . Это log2 минимального значения усиления дисплея, при котором карта вообще применяется. Это значение также влияет на то, насколько сильно будет применяться карта усиления в зависимости от усиления дисплея. Должно быть 0,0 или больше. Необязательный; значение по умолчанию — 0,0.
hdrgm:HDRCapacityMax Настоящий Сохраняет значение hdr_capacity_max . Это log2 максимального значения усиления дисплея, при котором карта применяется полностью. Это значение также влияет на то, насколько сильно будет применяться карта усиления в зависимости от усиления дисплея. Должно быть больше, чем hdrgm:HDRCapacityMin . Необходимый .

Пример карты усиления XMP

Следующий пример допустимого XMP-пакета карты усиления содержит метаданные, взятые из файла примера, показанного в разделе «Введение» .

<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 5.5.0">
  <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
    <rdf:Description rdf:about=""
     xmlns:hdrgm="http://ns.adobe.com/hdr-gain-map/1.0/"
     hdrgm:Version="1.0"
     hdrgm:GainMapMin="-0.57609993"
     hdrgm:GainMapMax="4.7090998"
     hdrgm:Gamma="1"
     hdrgm:OffsetSDR="0.015625"
     hdrgm:OffsetHDR="0.015625"
     hdrgm:HDRCapacityMin="0"
     hdrgm:HDRCapacityMax="4.7090998"
     hdrgm:BaseRenditionIsHDR="False"/>
  </rdf:RDF>
</x:xmpmeta>

MPF хранилище карты усиления

Изображение карты усиления должно храниться как дополнительное изображение, как определено в CIPA DC-x 007-2009 Multi-Picture Format , как указано в разделе «Зависимости» .

Декодировать

В этом разделе описывается, как декодировать карту усиления из соответствующего файла JPEG.

Сигнал формата

Файл JPEG, соответствующий этому формату, можно идентифицировать по наличию hdrgm:Version="1.0" в XMP-пакете основного изображения, где hdrgm — это URI пространства имен http://ns.adobe.com/hdr-gain-map/1.0/ .

Найдите изображение карты усиления.

Подробную информацию о синтаксическом анализе и декодировании изображения см. в следующем разделе сведений о GContainer . Семантический элемент GainMap в XMP rdf:Directory используется для обозначения местоположения изображения карты усиления. Альтернативно, индекс MPF IFD и XMP сканированных изображений используются для определения местоположения карты усиления.

Обработка недопустимых метаданных

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

Если обнаружены недопустимые метаданные, карту усиления следует игнорировать и отображать изображение SDR.

Отображать

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

Используйте карту усиления для создания адаптированного представления HDR.

Следующие вычисления в этом разделе предполагают арифметику с плавающей запятой.

encoded_recovery(x, y) — это одноканальное 8-битное целое число без знака из изображения карты усиления.

Если карта усиления имеет разрешение, отличное от разрешения основного изображения, тогда encoded_recovery(x, y) вместо этого определяется путем отфильтрованной выборки изображения карты усиления для x и y в диапазоне ширины и высоты основного изображения соответственно. Метод фильтрации должен быть билинейным или лучше и определяется реализацией.

map_gamma определяется полем метаданных hdrgm:Gamma .

log_recovery(x, y) — это нормализованный прирост пикселей с плавающей запятой в логарифмическом пространстве:

recovery(x, y) = encoded_recovery(x, y) / 255.0
log_recovery(x, y) = pow(recovery(x, y), 1.0 / map_gamma)

Максимальное усиление дисплея — это скалярное значение с плавающей запятой, определяемое как соотношение между текущей точкой белого HDR и делением на текущую точку белого SDR. Это значение предоставляется системой отображения и может меняться со временем.

hdr_capacity_max определяется полем метаданных hdrgm:HDRCapacityMax . hdr_capacity_min определяется полем метаданных hdrgm:HDRCapacityMin .

weight_factor определяется следующим образом, когда hdrgm:BaseRenditionIsHDR имеет значение «False»:

unclamped_weight_factor = (log2(max_display_boost) - hdr_capacity_min)
                        / (hdr_capacity_max - hdr_capacity_min)
weight_factor = clamp(unclamped_weight_factor, 0.0, 1.0)

Если hdrgm:BaseRenditionIsHDR имеет значение «True», второе уравнение имеет следующий вид:

weight_factor = 1.0 - clamp(unclamped_weight_factor, 0.0, 1.0)

gain_map_max определяется полем метаданных hdrgm:GainMapMax . gain_map_min определяется полем метаданных hdrgm:GainMapMin . offset_sdr определяется полем метаданных hdrgm:OffsetSDR . offset_hdr определяется полем метаданных hdrgm:OffsetHDR .

Линейное адаптированное воспроизведение HDR можно рассчитать следующим образом:

log_boost(x, y) = gain_map_min * (1.0f - log_recovery(x, y))
                + gain_map_max * log_recovery(x, y)
HDR(x, y) = (SDR(x, y) + offset_sdr) * exp2(log_boost(x, y) * weight_factor)
          - offset_hdr

При необходимости реализация может применить преобразование к HDR(x, y) , чтобы поместить данные в пространство, ожидаемое дисплеем. Любые такие преобразования должны быть колориметрически корректными.

Детали GКонтейнера

В этом разделе указаны дополнительные требования, чтобы этот формат соответствовал метаданным XML GContainer. Метаданные сериализуются в соответствии со спецификацией XMP ISO 166841:2011(E), часть 1 , и встраиваются в основной файл изображения, как описано в спецификации Adobe XMP, часть 3, «Хранение в файлах» . Файл основного изображения содержит следующие элементы в формате RDF/XML.

Требования к пакетам XMP

Пакет XMP должен включать расширение XMP метаданных карты усиления через URI пространства имен http://ns.adobe.com/hdr-gain-map/1.0/ . Префикс пространства имен по умолчанию — hdrgm .

Пакет XMP должен определить hdrgm:Version="1.0" .

Элемент контейнера

Пространство имен XMP для расширения GContainer XMP — http://ns.google.com/photos/1.0/container/ . Префикс пространства имен по умолчанию — Container .

Первичное изображение содержит элемент Container:Directory в метаданных XMP, определяющий порядок и свойства последующего медиафайла в файловом контейнере. Каждому файлу в контейнере соответствует соответствующий медиа-элемент в Container:Directory . Элемент мультимедиа описывает расположение в файловом контейнере и основные свойства каждого объединенного файла.

Элемент контейнера кодируется в метаданные XMP основного изображения и определяет каталог элементов мультимедиа в контейнере. Элементы мультимедиа должны располагаться в файле-контейнере в том же порядке, что и элементы элемента мультимедиа в каталоге, и должны быть плотно упакованы.

Каталог может содержать только один «Основной» элемент изображения, и он должен быть первым элементом в каталоге.

Имя элемента Тип Описание
Контейнер:Каталог Упорядоченный массив структур Упорядоченный массив структур, каждая из которых содержит Container:Item , определяющую макет и содержимое контейнера.

Элемент элемента

Элементы элемента описывают, как каждый элемент мультимедиа используется приложением.

URI пространства имен XMP для расширения XMP элемента GContainer — http://ns.google.com/photos/1.0/container/item/ . Префикс пространства имен по умолчанию — Item .

Первым медиа-элементом должно быть основное изображение. Он должен указать Item:Semantic = "Primary" и Item:Mime указанные в значениях типа MIME элемента .

Длина элемента основного изображения определяется путем анализа основного изображения на основе его типа MIME, начиная с начала файлового контейнера.

Медиа-элементы могут содержать атрибут Item:Padding , определяющий дополнительное заполнение между концом медиа-элемента и началом следующего медиа-элемента. Если Item:Padding присутствует в последнем элементе мультимедиа в Container:Directory , он указывает заполнение между концом элемента и концом файла.

Каждый медиа-элемент должен содержать атрибуты Item:Mime type и Item:Semantic . Элементы мультимедиа вторичного изображения должны содержать атрибуты Item:Length .

Последовательные медиа-элементы могут совместно использовать данные ресурсов в файловом контейнере. Первый элемент мультимедиа определяет местоположение ресурса в файловом контейнере, а последующие общие элементы мультимедиа имеют Item:Length установленный в 0. В случае, если данные ресурса сами являются контейнером, Item:URI может использоваться для определения местоположения. данных элемента мультимедиа внутри ресурса.

Местоположение ресурсов элемента мультимедиа в контейнере определяется путем суммирования длины первичного кодирования изображения, значений Item:Length предшествующих ресурсов вторичного элемента мультимедиа и всех предыдущих значений Item:Padding . Item:Padding считается равным 0 для ресурсов элемента мультимедиа, в которых не указано его значение.

Имя атрибута Тип Описание
Предмет: Мим Текст Простая строка, указывающая тип MIME элемента мультимедиа в контейнере. Определение см. в разделе «Значения типа MIME элемента». Необходимый .
Пункт:Семантический Текст Простая строка, указывающая специфическое для приложения значение элемента мультимедиа. Определение см. в разделе Семантические значения элемента. Необходимый .
Товар: длина Целое число Простая строка, содержащая положительное целое число длины элемента в байтах. Длина 0 указывает, что ресурс элемента мультимедиа используется совместно с предыдущим элементом мультимедиа. Требуется для второстепенных медиа-элементов. Необязательно для основного элемента мультимедиа изображения.
Товар: Этикетка Текст Определенная реализацией строка, используемая для устранения неоднозначности нескольких элементов элемента с помощью одного и того же Item:Semantic . Необязательный .
Товар: набивка Целое число Строка, содержащая положительное целое число в байтах с дополнительным дополнением между концом элемента мультимедиа и началом следующего элемента мультимедиа или концом файла, если он используется в последнем элементе мультимедиа в Container:Directory . Если оно отсутствует, предполагается значение 0. Необязательный.
Пункт: URI Текст Строка URI, соответствующая разделу 8.11.9 ISO/IEC 14496-12 , содержащая относительный URI медиаданных внутри ресурса элемента мультимедиа. По умолчанию — это основной ресурс изображения. Необязательно для базового формата мультимедийных файлов ISO. Типы MIME ISO/IEC 14496-12 . Не может использоваться иначе.

Значения типа MIME элемента

Атрибут Item:Mime определяет тип MIME для каждого данных элемента мультимедиа.

Ценить Описание
изображение/JPEG Изображение в формате JPEG.

Пример GContainer XMP

В следующем примере допустимого пакета XMP GContainer метаданные взяты из файла примера, показанного в разделе «Введение» .

<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.1.2">
  <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
    <rdf:Description
     xmlns:Container="http://ns.google.com/photos/1.0/container/"
     xmlns:Item="http://ns.google.com/photos/1.0/container/item/"
     xmlns:hdrgm="http://ns.adobe.com/hdr-gain-map/1.0/"
     hdrgm:Version="1.0">
      <Container:Directory>
        <rdf:Seq>
          <rdf:li rdf:parseType="Resource">
            <Container:Item
             Item:Semantic="Primary"
             Item:Mime="image/jpeg"/>
          </rdf:li>
          <rdf:li rdf:parseType="Resource">
            <Container:Item
             Item:Semantic="GainMap"
             Item:Mime="image/jpeg"
             Item:Length="66171"/>
          </rdf:li>
        </rdf:Seq>
      </Container:Directory>
    </rdf:Description>
  </rdf:RDF>
</x:xmpmeta>