Mapa głębi jest serializowana jako zbiór właściwości XMP. W ramach procesu serializacji mapa głębi jest najpierw konwertowana na tradycyjny format obrazu. Proces kodowania obejmuje 3 etapy (patrz rysunek 2):
- Przekształć dane z formatu wejściowego (np. wartości zmiennoprzecinkowe lub int32) na format obrazu w odcieniach szarości, np. bajty (8 bitów) lub słowa (16 bitów).
- Skompresuj obraz za pomocą standardowego kodeka obrazu, np. JPEG lub PNG.
- Serializuj jako właściwość XMP w formacie ciągu tekstowego Base64.

Potok może być bezstratny lub stratny w zależności od liczby bitów oryginalnej mapy głębi i liczby bitów używanych do jej przechowywania, np. 8 bitów w przypadku kodeka JPEG i 8 lub 16 bitów w przypadku kodeka PNG.
Obecnie obsługiwane są 2 formaty: RangeLinear i RangeInverse. RangeInverse to zalecany format, jeśli mapa głębi straci precyzję podczas kodowania, np. podczas konwersji z liczby zmiennoprzecinkowej na 8-bitową. Przydziela więcej bitów do wartości głębi bliskiej, a mniej do wartości głębi dalekiej, podobnie jak bufor Z na kartach graficznych.
Jeśli mapa głębi ma dołączoną mapę ufności, jest ona również konwertowana na tradycyjny format obrazu przy użyciu podobnego procesu jak w przypadku głębi. Mapa ufności jest zawsze kodowana w formacie RangeLinear, a zakres ufności przyjmuje się jako [0, 1].
RangeLinear
Niech d będzie głębią piksela, a near i far minimalną i maksymalną rozważaną wartością głębi. Wartość głębi jest najpierw normalizowana do zakresu [0, 1] jako
RangeInverse
Niech d będzie głębią piksela, a near i far minimalną i maksymalną rozważaną wartością głębi. Wartość głębi jest najpierw normalizowana do zakresu [0, 1] jako