Profondità e affidabilità della codifica

Una mappa di profondità viene serializzata come insieme di proprietà XMP. Come parte del processo di serializzazione, la mappa di profondità viene prima convertita in un formato immagine tradizionale. La pipeline di codifica contiene tre passaggi (vedi la Figura 2):

  • Converti dal formato di input (ad es. valori in virgola mobile o int32) in un formato dell'immagine in scala di grigi intero, ad es. byte (8 bit) o parole (16 bit).
  • Comprimi utilizzando un codec immagine standard, ad esempio JPEG o PNG.
  • Serializzazione come proprietà XMP di stringa base64.
Figura 2. Descrizione della pipeline di codifica Depthmap.

La pipeline può essere perdita o perdita, a seconda del numero di bit della mappa di profondità originale e del numero di bit utilizzati per archiviarla, ad esempio 8 bit per un codec JPEG e 8 o 16 bit per un codec PNG.

Al momento sono supportati due formati diversi: RangeLinear e RangeInverse. RangeInverse è il formato consigliato se la mappa di profondità perde la precisione quando viene codificata, ad esempio durante la conversione da floating a 8 bit. Alloca più bit ai valori di profondità vicina e meno bit ai valori lontani, in modo simile al funzionamento dello z-buffer nelle schede GPU.

Se la mappa di profondità ha una mappa di confidenza allegata, questa viene convertita anche in un formato immagine tradizionale utilizzando una pipeline simile a quella utilizzata per la profondità. La mappa di confidenza è sempre codificata utilizzando il formato RangeLinear, con l'intervallo di confidenza presunto [0, 1].

IntervalloLineare

Indica la profondità di un pixel e i valori di profondità minima e massima considerati. Il valore di profondità viene prima normalizzato nell'intervallo [0, 1] come

quindi quantifica fino a 8 o 16 bit come

Al contrario, data la profondità quantizzata d8bit, si può recuperare la profondità d come

Intervallo inverso

Indica la profondità di un pixel e i valori di profondità minima e massima considerati. Il valore di profondità viene prima normalizzato nell'intervallo [0, 1] come

quindi quantifica fino a 8 o 16 bit come

Al contrario, data la profondità normalizzata dn, si può recuperare la profondità d come