Kedalaman dan keyakinan encoding

Peta kedalaman diserialisasi sebagai serangkaian properti XMP. Sebagai bagian dari proses serialisasi, peta kedalaman terlebih dahulu dikonversi ke format gambar tradisional. Pipeline encoding berisi tiga langkah (lihat Gambar 2):

  • Konversi dari format input (mis. nilai float atau int32) ke format gambar skala abu-abu bilangan bulat, mis. byte (8 bit) atau word (16 bit).
  • Kompres menggunakan codec gambar standar, misalnya JPEG atau PNG.
  • Menserialkan sebagai properti XMP string base64.
Gambar 2. Deskripsi pipeline encoding peta kedalaman.

Pipeline dapat bersifat lossless atau lossy, bergantung pada jumlah bit peta kedalaman asli dan jumlah bit yang digunakan untuk menyimpannya, misalnya 8 bit untuk codec JPEG dan 8 atau 16 bit untuk codec PNG.

Saat ini, dua format berbeda didukung: RangeLinear dan RangeInverse. RangeInverse adalah format yang direkomendasikan jika peta kedalaman akan kehilangan presisi saat dienkode, misalnya saat dikonversi dari float ke 8-bit. Fungsi ini mengalokasikan lebih banyak bit untuk nilai kedalaman dekat dan lebih sedikit bit untuk nilai jauh, dengan cara yang serupa dengan cara kerja z-buffer di kartu GPU.

Jika peta kedalaman memiliki peta keyakinan yang terlampir, peta keyakinan juga dikonversi ke format gambar tradisional menggunakan pipeline yang serupa dengan yang digunakan untuk kedalaman. Peta keyakinan selalu dienkode menggunakan format RangeLinear, dengan rentang keyakinan diasumsikan [0, 1].

RangeLinear

Misalkan d adalah kedalaman piksel, dan dekat serta jauh adalah nilai kedalaman minimum dan maksimum yang dipertimbangkan. Nilai kedalaman dinormalisasi terlebih dahulu ke rentang [0, 1] sebagai

kemudian kuantisasi ke 8 atau 16 bit sebagai

Sebaliknya, dengan kedalaman terkuantisasi d8bit, kedalaman d dapat dipulihkan sebagai

RangeInverse

Misalkan d adalah kedalaman piksel, dan dekat serta jauh adalah nilai kedalaman minimum dan maksimum yang dipertimbangkan. Nilai kedalaman dinormalisasi terlebih dahulu ke rentang [0, 1] sebagai

kemudian kuantisasi ke 8 atau 16 bit sebagai

Sebaliknya, mengingat kedalaman yang dinormalisasi dn, orang dapat memulihkan kedalaman d sebagai