ImageUniqueID isn't very

Posted on April 7, 2015
Tags: software

EXIF has an ImageUniqueID tag, which is supposed to contain a unique identifier for each image.

However, of the 766 pictures I’ve taken with my Samsung Galaxy S 4, 430 of them contain one ImageUniqueID, 245 of them contain another ImageUniqueID, and the remaining 91 contain no ImageUniqueID at all.

WhiteAndNerdy:Android ppelleti$ exiftool -s -q -ImageUniqueID *.jpg | sort | uniq -c
 430 ImageUniqueID                   : S13F0SAGE04
 245 ImageUniqueID                   : S13F0SAGI01
WhiteAndNerdy:Android ppelleti$ ls | wc -l
     766
WhiteAndNerdy:Android ppelleti$ ghci
GHCi, version 7.8.3: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude> 766 - (430 + 245)
91
Prelude> :q
Leaving GHCi.

All of the pictures with the ImageUniqueID S13F0SAGE04 seem to be before a certain date, and all of the pictures with the ImageUniqueID S13F0SAGI01 are after that date. So that, plus some searching I’ve done online, suggests that Samsung is actually storing a version number of some sort in the ImageUniqueID tag.

It’s less clear what the pattern is for photos that don’t have an ImageUniqueID. It appears that all of the photos that don’t have an ImageUniqueID were either taken indoors, at night, or with the front-facing camera. In other words, all pictures taken in daylight with the rear-facing camera appear to have an ImageUniqueID.

Not sure what to make of this, other than that you can’t trust people/companies to implement specifications correctly.