In Figure 1 we can see the first part of a jpg taken with an iPhone5.
IFD is an Image File Directory. Adobe defines it as: a 2 byte count of the number of directory entries (i.e. the number of fields), followed by a sequence of 12 byte field entries, followed by a 4 byte offset of the next IFD (or 0 if none).
We can see that in this case we have 0x00 0x0a (10) 12 byte directory entries the start of each being marked in green. Adobe details the structure of each entry as follows:
Bytes 0-1 The tag that identifies the field
Bytes 2-3 The field type
Bytes 4-7 the number of values, Count of the indicated type
Bytes 8-11 The Value Offset, the file offset (in bytes) of the Value of the field
1 = BYTE 8-bit unsigned integer.
2 = ASCII 8-bit byte that contains a 7-bit ASCII code; the last byte must be NUL (binary zero).
3 = SHORT 16-bit (2-byte) unsigned integer.
4 = LONG 32-bit (4-byte) unsigned integer.
5 = RATIONAL Two LONGs: the first represents the numerator of a fraction; the second, the denominator.
The remaining four bytes of any directory entry, bytes 4-7 contain an offset from the TIFF structure header to the location of the Value data. However Adobe states where the value is four bytes or less (as in this case) that:
To save time and space the Value Offset contains the Value instead of pointing to the Value if and only if the Value fits into 4 bytes. If the Value is shorter than 4 bytes, it is left-justified within the 4-byte Value Offset, i.e., stored in the lower numbered bytes. Whether the Value fits within 4 bytes is determined by the Type and Count of the field.
0001 GPSLatitudeRef ------ Indicates whether the latitude is north or south latitude.
0002 GPSLatitude ---------- Indicates the latitude.
0003 GPSLongitudeRef ---- Indicates whether the longitude is east or west longitude.
0004 GPSLongitude --------- Indicates the longitude.