Глубина кодирования и уверенность

Карта глубины сериализуется как набор свойств XMP . В рамках процесса сериализации карта глубины сначала преобразуется в традиционный формат изображения. Конвейер кодирования состоит из трех шагов (см. рис. 2):

  • Преобразование из входного формата (например, значений с плавающей запятой или int32) в целочисленный формат изображения в градациях серого, например байты (8 бит) или слова (16 бит).
  • Сжатие с использованием стандартного кодека изображения, например, JPEG или PNG.
  • Сериализация как свойство XMP строки base64.
Рисунок 2. Описание конвейера кодирования карты глубины.

Конвейер может быть без потерь или с потерями, в зависимости от количества бит исходной карты глубины и количества битов, используемых для ее хранения, например, 8 бит для кодека JPEG и 8 или 16 бит для кодека PNG.

В настоящее время поддерживаются два различных формата: RangeLinear и RangeInverse . Формат RangeInverse рекомендуется, если карта глубины потеряет точность при кодировании, например, при преобразовании из числа с плавающей запятой в 8-битное. Он выделяет больше битов для ближних значений глубины и меньше битов для дальних значений, аналогично тому, как z-буфер работает в картах GPU.

Если карта глубины имеет прикрепленную карту достоверности, карта достоверности также преобразуется в традиционный формат изображения с использованием конвейера, аналогичного тому, который используется для глубины. Карта достоверности всегда кодируется с использованием формата RangeLinear с доверительным диапазоном, который предполагается равным [0, 1].

ДиапазонЛинейный

Пусть d — глубина пикселя, а ближний и дальний — минимальное и максимальное рассматриваемые значения глубины. Значение глубины сначала нормализуется к диапазону [0, 1] как

затем квантовать до 8 или 16 бит как

И наоборот, учитывая квантованную глубину d 8 бит , можно восстановить глубину d как

RangeInverse

Пусть d — глубина пикселя, а ближний и дальний — минимальное и максимальное рассматриваемые значения глубины. Значение глубины сначала нормализуется к диапазону [0, 1] как

затем квантовать до 8 или 16 бит как

И наоборот, учитывая нормализованную глубину d n , можно восстановить глубину d как