Examples

  • Depth data in Google Photos is stored using XMP metadata, with different handling for data sizes below and above 64 KB.

  • Smaller depth data is directly embedded within the main XMP block using the GDepth:Data tag.

  • Larger depth data is split, with key properties in the main XMP and the raw depth and confidence data moved to an extended XMP section referenced by xmpNote:HasExtendedXMP.

  • The GDepth namespace defines specific tags for depth metadata like format, near/far values, and measurement units.

  • Extended XMP allows for storing large depth and confidence data separately, ensuring efficient handling of comprehensive depth information.

Total XMP blob size smaller than 64 KB

  <rdf:Description rdf:about=""
                   xmlns:GDepth="http://ns.google.com/photos/1.0/depthmap/"
                   GDepth:Mime="image/jpeg"
                   GDepth:Format="RangeInverse"
                   GDepth:Near="29.3"
                   GDepth:Far="878.7"
                   GDepth:Mime="image/png"
                   GDepth:Data="iVBORw0KGgoAAAANSUhEUgAAAtAAAAPACAYAAAA..." />

Total XMP blob size larger than 64 KB

  <rdf:Description rdf:about=""
                   xmlns:GDepth="http://ns.google.com/photos/1.0/depthmap/"
                   xmlns:xmpNote="http://ns.adobe.com/xmp/note/"
                   GDepth:Mime="image/jpeg"
                   GDepth:Format="RangeInverse"
                   GDepth:Near="29.3"
                   GDepth:Far="878.7"
                   GDepth:Mime="image/png"
                   GDepth:MeasureType="OpticalAxis"
                   GDepth:ConfidenceMime="image/png"
                   GDepth:Manufacturer="Primesense"
                   GDepth:Model="Carmine"
                   GDepth:Software="Tango 1.0"
                   GDepth:Units="mm"
                   xmpNote:HasExtendedXMP="36BE52D449F3E6B9760D7602FF75168D"/>

  and a possibly very large extended xmp section:

  <rdf:Description rdf:about=""
                   xmlns:GDepth="http://ns.google.com/photos/1.0/depthmap/"
                   GDepth:Data="iVBORw0KGgoAAAANSUhEUgAAAtAAAAPACAYAAAA..."
                   GDepth:Confidence="iVBORw0KGgoAAATNSUhEUgBAAtAAAACCA..." />