Jump to content

Exif

From Wikipedia, the free encyclopedia

This is the current revision of this page, as edited by 99.146.242.37 (talk) at 11:33, 7 November 2024 (Privacy and security: add wikilink). The present address (URL) is a permanent link to this version.

(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)
Exif
Exif of a file in Wikimedia Commons (compact form)
Filename extension
.JPG, .TIF, .WAV, .PNG,[1].WEBP[2]
Developed byJEIDA, now JEITA, CIPA
Initial release1995; 29 years ago (1995)[3]
Latest release
3.0[4]
May 2023; 1 year ago (2023-05)[4]
Extended fromTIFF, JPEG, WAV
Extended toDCF

Exchangeable image file format (officially Exif, according to JEIDA/JEITA/CIPA specifications)[5] is a standard that specifies formats for images, sound, and ancillary tags used by digital cameras (including smartphones), scanners and other systems handling image and sound files recorded by digital cameras. The specification uses the following existing encoding formats with the addition of specific metadata tags: JPEG lossy coding for compressed image files, TIFF Rev. 6.0 (RGB or YCbCr) for uncompressed image files, and RIFF WAV for audio files (linear PCM or ITU-T G.711 μ-law PCM for uncompressed audio data, and IMA-ADPCM for compressed audio data).[6] It does not support JPEG 2000 or GIF encoded images.

This standard consists of the Exif image file specification and the Exif audio file specification.

Background

[edit]

Exif is supported by almost all camera manufacturers.

The metadata tags defined in the Exif standard cover a broad spectrum:

  • Camera settings: This includes static information such as the camera model and make, and information that varies with each image such as orientation (rotation), aperture, shutter speed, focal length, metering mode, and ISO speed information
  • Image metrics: Pixel dimensions, resolution, colorspace, and filesize
  • Date and time information, digital cameras will record the current date and time and save this in the metadata
  • Location information
  • A thumbnail for previewing the picture on the camera's LCD screen, in file managers, or in photo manipulation software
  • Descriptions
  • Copyright information

Version history

[edit]

The Japan Electronic Industries Development Association (JEIDA) produced the initial definition of Exif. Version 2.1 of the specification is dated 12 June 1998.[citation needed] JEITA established Exif version 2.2 (a.k.a. "Exif Print"), dated 20 February 2002 and released in April 2002.[7] Version 2.21 (with Adobe RGB support) is dated 11 July 2003, but was released in September 2003 following the release of DCF 2.0. Version 2.3 was released on 26 April 2010, and revised to 2.31 in July 2013 and revised to 2.32 on 17 May 2019, was jointly formulated by JEITA and CIPA. The latest version, 3.0, was released in May 2023, and brings, among other things, support for UTF-8 to allow text data in non-ASCII encoding.[4]

Versions
Version Release Date Changes
1.0 October 1995 Removed dependencies to io package
1.1 May 1997
2.0 November 1997 License change to MIT license
2.1 December 1998
2.2 April 2002 Added HEIC support
2.21 September 2003 Addition of "Exif Print"
2.21 (unified version) September 2009
2.3 April 2010
2.3 (revised) December 2012
2.31 July 2016
2.32 May 2019
3.0 May 2023 UTF-8 data type

Technical

[edit]

The Exif tag structure is borrowed from TIFF files. On several image specific properties, there is a large overlap between the tags defined in the TIFF, Exif, TIFF/EP, and DCF standards. For descriptive metadata, there is an overlap between Exif, IPTC Information Interchange Model and XMP info, which also can be embedded in a JPEG file. The Metadata Working Group has guidelines on mapping tags between these standards.[8]

When Exif is employed for JPEG files, the Exif data are stored in one of JPEG's defined utility Application Segments, the APP1 (segment marker 0xFFE1), which in effect holds an entire TIFF file within. When Exif is employed in TIFF files (also when used as "an embedded TIFF file" mentioned earlier), the TIFF Private Tag 0x8769 defines a sub-Image File Directory (IFD) that holds the Exif specified TIFF Tags. In addition, Exif also defines a Global Positioning System sub-IFD using the TIFF Private Tag 0x8825, holding location information, and an "Interoperability IFD" specified within the Exif sub-IFD, using the Exif tag 0xA005.

Formats specified in Exif standard are defined as folder structures that are based on Exif-JPEG and recording formats for memory. When these formats are used as Exif/DCF files together with the DCF specification (for better interoperability among devices of different types), their scope shall cover devices, recording media, and application software that handle them.

Geolocation

[edit]

The Exif format has standard tags for location information. As of 2014, many cameras and mobile phones have a built-in GPS receiver that stores the location information in the Exif header when a picture is taken. Some other cameras have a separate GPS receiver that fits into the flash connector or hot shoe. Recorded GPS data can also be added to any digital photograph on a computer, either by correlating the time stamps of the photographs with a GPS record from a hand-held GPS receiver or manually by using a map or mapping software. Some cameras can be paired with cellphones to provide the geolocation. The process of adding geographic information to a photograph is known as geotagging. Photo-sharing communities like Panoramio, locr or Flickr equally allow their users to upload geocoded pictures or to add geolocation information online.

Program support

[edit]

Exif data are embedded within the image file itself. While many recent image manipulation programs recognize and preserve Exif data when writing to a modified image, this is not the case for most older programs. Many image gallery programs also recognise Exif data and optionally display it alongside the images.

Software libraries, such as libexif[9] for C and Adobe XMP Toolkit[10] or Exiv2[11] for C++, Metadata Extractor[12] for Java, PIL/Pillow for Python, LEADTOOLS or ExifTool[13] for Perl, parse Exif data from files and read/write Exif tag values.

Problems

[edit]

Technical

[edit]

The Exif format has a number of drawbacks, mostly relating to its use of legacy file structures.

  • The derivation of Exif from the TIFF file structure using offset pointers in the files means that data can be spread anywhere within a file, which means that software is likely to corrupt any pointers or corresponding data that it does not decode/encode. For this reason most image editors damage or remove the Exif metadata to some extent upon saving.[14]
  • The standard defines a MakerNote tag, which allows camera manufacturers to place any custom format metadata in the file. This is used increasingly by camera manufacturers to store camera settings not listed in the Exif standard, such as shooting modes, post-processing settings, serial number, focusing modes, etc. As the tag contents are proprietary and manufacturer-specific, it can be difficult to retrieve this information from an image or to properly preserve it when rewriting an image. Manufacturers can encrypt portions of the information; for example, some Nikon cameras encrypt the detailed lens data in the MakerNote data.[15]
  • Exif is very often used in images created by scanners, but the standard makes no provisions for any scanner-specific information.[citation needed]
  • Photo manipulation software sometimes fails to update the embedded thumbnail after an editing operation, possibly causing the user to inadvertently publish compromising information.[16] For example, someone might blank out a licence registration plate of a car (for privacy concerns), only to have the thumbnail not so updated, meaning the information is still visible.
  • Exif metadata are restricted in size to 64 kB in JPEG images because according to the specification this information must be contained within a single JPEG APP1 segment. Although the FlashPix extensions allow information to span multiple JPEG APP2 segments, these extensions are not commonly used. This has prompted some camera manufacturers to develop non-standard techniques for storing the large preview images used by some digital cameras for LCD review. These non-standard extensions are commonly lost if a user re-saves the image using image editor software, possibly rendering the image incompatible with the original camera that created it. (In 2009, CIPA released the Multi Picture Object specification which addresses this deficiency and provides a standard way to store large previews in JPEG images.[17])
  • There is no way to record time-zone information along with the time, thus rendering the stored time ambiguous. However, time-zone information has been introduced recently by Exif version 2.31 (July 2016). Related tags are: "OffsetTime", "OffsetTimeOriginal" and "OffsetTimeDigitized".
  • There is no standard field to record readouts of a camera's accelerometers or inertial navigation system. Such data could help to establish the relationship between the image sensor's XYZ coordinate system and the gravity vector (i.e., which way is down in this image). It could also establish relative camera positions or orientations in a sequence of photos. Some software records this information using the GPSImgDirection tag along with custom GPSPitch and GPSRoll tags.[18]
  • The XResolution and YResolution tags provide the number of pixels per length unit for the width and height of the image, respectively. (The length unit itself is specified by the tag ResolutionUnit.) By default, these tags in combination are set to 72 pixels per inch (ppi).[19] These tags were inherited from the TIFF 6.0 standard and are required[20] even though for images produced by digital cameras, image resolution values such as ppi are meaningless.[21]

Privacy and security

[edit]

Since the Exif tag contains metadata about the photo, it can pose a privacy problem. For example, a photo taken with a GPS-enabled camera can reveal the exact location and time it was taken, and the unique ID number of the device - this is all done by default - often without the user's knowledge. Many users may be unaware that their photos are tagged by default in this manner, or that specialist software may be required to remove the Exif tag before publishing. For example, a whistleblower, journalist or political dissident relying on the protection of anonymity to allow them to report malfeasance by a corporate entity, criminal, or government may therefore find their safety compromised by this default data collection.

In December 2012, anti-virus businessman John McAfee was arrested in Guatemala while fleeing from alleged persecution[22] in neighboring Belize. Vice magazine had published an exclusive interview on their website with McAfee "on the run"[23] that included a photo of McAfee with a Vice reporter taken with a phone that had geotagged the image.[24] The photo's metadata included GPS coordinates locating McAfee in Guatemala, and he was captured two days later.[25] McAfee later claimed to have edited the Exif data from his phone to provide a false location.[26]

According to documents leaked by Edward Snowden, the NSA is targeting Exif information under the XKeyscore program.[27]

The privacy problem of Exif data can be avoided by removing the Exif data using a metadata removal tool.[28]

[edit]

Metadata Working Group was formed by a consortium of companies in 2006 (according to their web page) or 2007 (as stated in their own press release). Version 2.0 of the specification was released in November 2010,[8] giving recommendations concerning the use of Exif, IPTC and XMP metadata in images.

Extensible Metadata Platform (XMP) is an ISO standard, originally created by Adobe Systems Inc., for the creation, processing and interchange of standardized and custom metadata for digital documents and data sets. IPTC was developed in the early 1990s by the International Press Telecommunications Council (IPTC) to expedite the international exchange of news among newspapers and news agencies.

Exif fields

[edit]

Not all devices use every available metadata field in the Exif standard.

Example

[edit]
DigiKam screenshot showing Exif data

The following table shows Exif metadata for a photo made with a typical digital camera. Authorship and copyright information is generally not provided in the camera's output, so it must be filled in during later stages of processing. Some programs, such as Canon's Digital Photo Professional, allow the name of the owner to be added to the camera itself.

Tag Value
Manufacturer CASIO
Model QV-4000
Orientation (rotation) top-left [8 possible values[29]]
Software Ver1.01
Date and time 2003:08:11 16:45:32
YCbCr positioning centered
Compression JPEG compression
X resolution 72.00
Y resolution 72.00
Resolution unit Inch
Exposure time 1/659 s
F-number f/4.0
Exposure program Normal program
Exif version Exif version 2.1
Date and time (original) 2003:08:11 16:45:32
Date and time (digitized) 2003:08:11 16:45:32
Components configuration Y Cb Cr –
Compressed bits per pixel 4.01
Exposure bias 0.0
Max. aperture value 2.00
Metering mode Pattern
Flash Flash did not fire
Focal length 20.1 mm
MakerNote 432 bytes unknown data
FlashPix version FlashPix version 1.0
Color space sRGB
Pixel X dimension 2240
Pixel Y dimension 1680
File source DSC
Interoperability index R98
Interoperability version (null)

Time Tags

[edit]

In addition to the basic date and time tags (DateTime, DateTimeOriginal, and DateTimeDigitized), there are three corresponding "subsecond" tags: SubsecTime, SubsecTimeOriginal, and SubsecTimeDigitized. The SubsecTime tag is defined in version 2.3 as "a tag used to record fractions of seconds for the DateTime tag;"[6] the SubsecTimeOriginal and SubsecTimeDigitized fields are defined similarly. The subsecond tags are of variable length, meaning manufacturers may choose the number of ASCII-encoded decimal digits to place in these tags. For DateTime = 2000:01:01 00:00:00, the actual time with various subsecond values would be:

  • SubsecTime = 2: 2000:01:01 00:00:00.2
  • SubsecTime = 23: 2000:01:01 00:00:00.23
  • SubsecTime = 234: 2000:01:01 00:00:00.234
  • SubsecTime = 2345: 2000:01:01 00:00:00.2345

The standard does not specify which particular event during the "taking" of a picture the time tags should describe. The standard is, in fact, ambiguous. The DateTimeOriginal tag is defined as "The date and time when the original image data was generated." For an exposure—say, 30 seconds—longer than the granularity of the timestamp (one second for the DateTimeOriginal tag), the tag's time could correspond to the beginning of the exposure, the end of the exposure, or some other time. This confusion is exacerbated for the subsecond tags, where the granularity (down to 1/10000th of a second in the examples in the standard) is shorter than many common exposure durations.

As noted above, tags to specify the previously-missing timezone information were added in Exif version 2.31. These are "OffsetTime", "OffsetTimeOriginal" and "OffsetTimeDigitized". They are formatted as seven ASCII characters (including the null terminator) denoting the hours and minutes of the offset, like +01:00 or -01:00. The offset is "from UTC (the time difference from Universal Coordinated Time including daylight saving time) of the time of"[6] the matching tag.

FlashPix extensions

[edit]

The Exif specification also includes a description of FPXR (FlashPix-ready) information, which may be stored in APP2 of JPEG images using a structure similar to that of a FlashPix file.[30] These FlashPix extensions allow meta-information to be preserved when converting between FPXR JPEG images and FlashPix images. FPXR information may be found in images from some models of digital cameras by Kodak and Hewlett-Packard.[31] Below is an example of the FPXR information found in a JPEG image from a Kodak EasyShare V570 digital camera:

Tag Value
Code page 1200
Used extension numbers 1
Extension name Screen nail
Extension class ID 10000230-6FC0-11D0-BD01-00609719A180
Extension persistence Invalidated by modification
Extension create date 2003:03:29 17:47:50
Extension modify date 2003:03:29 17:47:50
Creating application Picoss
Extension description Presized image for LCD
Storage-stream pathname /.Screen Nail_bd0100609719a180
Screen nail (124,498 bytes of data containing 640×480 JPEG preview image)

Exif audio files

[edit]

The Exif specification describes the RIFF file format used for WAV audio files and defines a number of tags for storing meta-information such as artist, copyright, creation date, and more in these files.[32] The following table gives an example of Exif information found in a WAV file written by the Pentax Optio WP digital camera:

Tag Value
Encoding Microsoft PCM
Number of channels 1
Sampling rate 7872
Avg. bytes per second 7872
Bits per sample 8
Date created 2005:08:08
Exif version 0220
Related image file IMGP1149.JPG
Time created 16:23:35
Make PENTAX Corporation
Model PENTAX Optio WP
MakerNote (2064 bytes of data)

MakerNote data

[edit]

The "MakerNote" tag contains image information normally in a proprietary binary format. Some of these manufacturer-specific formats have been decoded:

  • OZHiker (not updated since 2008): Agfa, Canon, Casio, Epson, Fujifilm, Konica/Minolta, Kyocera/Contax, Nikon, Olympus, Panasonic, Pentax/Asahi, Ricoh, Sony[33]
  • Kamisaka (not updated since 2007): Canon, Casio, FujiFilm, ISL, KDDI, Konica/Minolta, Mamiya, Nikon, Panasonic, Pentax, Ricoh, Sigma, Sony, WWL[34]
  • X3F Info: Sigma/Foveon[35]
  • ExifTool: Canon, Casio, FujiFilm, GE, HP, JVC/Victor, Kodak, Leaf, Minolta/Konica-Minolta, Nikon, Olympus/Epson, Panasonic/Leica, Pentax/Asahi, Reconyx, Ricoh, Samsung, Sanyo, Sigma/Foveon, Sony, etc.[36]
  • Olypedia: Olympus[37]

The proprietary formats used by many manufacturers break if the MakerNote tag data is moved (i.e. by inserting or editing a tag that precedes it). The reason to edit to the Exif data could be as simple as to add copyright information, an Exif comment, etc. There are two solutions for this problem:

  • When the Exif data is saved, the MakerNote data is stored at the same place as before.
  • A special offset tag is added. This tag contains the information by how many bytes the MakerNote data was moved in comparison to the original index.

Microsoft has implemented the last solution in Windows 10: In the Windows explorer you can change the Exif data of an image file by the properties window. Here the tab sheet "Details" contains some Exif data like title, subject, comments etc. and these Exif data can also be changed and stored. When the image file is saved the tag "OffsetSchema" (tag ID = 0xea1d) is added and this tag contains a signed 32 bit number. With this number the original index of "MakerNote" can be restored:

Original index of "MakerNote" = Current index of "MakerNote" - Value of tag "OffsetSchema"

But the tag "OffsetSchema" was defined by Microsoft and it is not part of the official Exif standard.

In some cases, camera vendors also store important information only in proprietary makernote fields, instead of using available Exif standard tags. An example for this is Nikon's ISO speed settings tag.[38]

See also

[edit]

References

[edit]
  1. ^ "Extensions to the PNG 1.2 Specification, Version 1.5.0". ftp-osl.osuosl.org. 2017-07-15. Retrieved 4 March 2021.
  2. ^ "The Metadata in WEBP (.webp) files". dev.exiv2.org. Retrieved 16 Feb 2022.
  3. ^ "Exif Exchangeable Image File Format, Version 2.2, Sustainability of Digital Formats: Planning for Library of Congress Collections". Library of Congress. 26 February 2014. Retrieved 2020-08-18.
  4. ^ a b c "Exif 3.0 released, featuring UTF-8 support". IPTC. 1 June 2023.
  5. ^ "Exif2-1.PDF" (PDF). Archived from the original (PDF) on 2013-11-11.
  6. ^ a b c "Standard of the Camera & Imaging Products Association, CIPA DC-008-Translation-2012, Exchangeable image file format for digital still cameras: Exif Version 2.3" (PDF). Retrieved 2014-04-08.
  7. ^ Technical Standardization Committee on AV & IT Storage Systems and Equipment (April 2002). "Exchangeable Image File Format for Digital Still Cameras" (PDF). Version 2.2. Japan Electronics and Information Technology Industries Association. JEITA CP-3451. Archived from the original (PDF) on 2017-12-24. Retrieved 2008-01-28.
  8. ^ a b "Guidelines for Handling Image Metadata" (PDF). Metadata Working group. 2010-11-01. Archived from the original (PDF) on 2012-01-31. Retrieved 2015-05-11.
  9. ^ "The libexif C EXIF library". Retrieved 2022-07-06.
  10. ^ "Adobe XMP Toolkit SDK". Adobe Inc.
  11. ^ "Exiv2 Image Metadata Library". Andreas Huggel. Archived from the original on 2012-02-12. Retrieved 2009-02-12.
  12. ^ "Metadata Extractor". Drew Noakes. Archived from the original on 2007-09-27. Retrieved 2011-02-18.
  13. ^ "Image::ExifTool Perl library". Phil Harvey. Retrieved 2009-02-12.
  14. ^ "TIFF Revision 6.0" (PDF). Adobe. 1992-06-03. Archived from the original (PDF) on 2012-07-03. Retrieved 2009-04-07.
  15. ^ "Nikon Tags: Nikon LensData01 Tags". Phil Harvey. 2008-01-25. Retrieved 2008-01-28.
  16. ^ Maximillian Dornseif (2004-12-17). "EXIF Thumbnail in JPEG images". disLEXia 3000 blog. Archived from the original on September 28, 2007. Retrieved 2008-01-28.
  17. ^ "Multi-Picture Format" (PDF). CIPA. 2009-02-04. Archived from the original (PDF) on 2016-04-05. Retrieved 2014-04-29.
  18. ^ "Geotagging with ExifTool". www.sno.phy.queensu.ca. Retrieved 2019-10-06.
  19. ^ "CIPA DC-008-Translation-2019 Exchangeable image file format for digital still cameras: Exif Version 2.32" (PDF). Retrieved August 3, 2021.
  20. ^ "TIFF Tags". Library of Congress. Retrieved August 3, 2021.
  21. ^ Weistra, Riny. "Dpi, misunderstandings and explanation, what is dpi". Retrieved August 3, 2021.
  22. ^ "McAfee wins stay of deportation from Guatemala". CNN. 7 December 2012. Retrieved 2012-12-26.
  23. ^ We Are with John McAfee Right Now, Suckers, Vice, December 3, 2012, retrieved 7 December 2012
  24. ^ Alex Wilhelm (December 3, 2012), Vice leaves metadata in photo of John McAfee, pinpointing him to a location in Guatemala, The Next Web, archived from the original on 6 December 2012, retrieved 7 December 2012
  25. ^ "John McAfee arrested in Guatemala for illegal entry", CBS News, December 5, 2012, retrieved 7 December 2012
  26. ^ Alex Wilhelm (3 December 2012). "In fresh twist, John McAfee now claims he falsified the metadata of the photo that placed him in Guatemala". The Next Web. Retrieved 5 November 2018.
  27. ^ Staff (July 31, 2013). "XKeyscore Presentation from 2008 – Read in Full – Training Materials for the XKeyscore Program Detail How Analysts Can Use It and Other Systems to Mine Enormous Agency Databases and Develop Intelligence from the Web – Revealed: NSA Program That Collects 'Nearly Everything a User Does on the Internet'". The Guardian. Retrieved August 6, 2013.
  28. ^ Hassan, Nihad, and Hijazi, Rami. Digital Privacy and Security Using Windows: A Practical Guide. Apress, 2017, pp. 57-59.
  29. ^ "JPEG Rotation and EXIF Orientation / Digital Cameras with Orientation Sensors etc". Impulseadventure.com. Archived from the original on 2022-03-07. Retrieved 2012-12-26.{{cite web}}: CS1 maint: bot: original URL status unknown (link)
  30. ^ (JEITA CP-3451) Section 4.7.2: Interoperability Structure of APP2 in Compressed Data.
  31. ^ Phil Harvey (18 March 2011). "FlashPix Tags". Retrieved 29 March 2011.
  32. ^ (JEITA CP-3451) Section 5: Exif Audio File Specification.
  33. ^ Evan Hunter. "EXIF Makernotes - Reference Information". OZHiker. Retrieved 2008-01-29.
  34. ^ "Exif MakerNote 解析カイセキ情報" (in Japanese). Kamisaka. Archived from the original on 2008-12-06. Retrieved 2008-01-29.
  35. ^ "SIGMA and FOVEON EXIF MakerNote Documentation". x3f.info. Archived from the original on 2007-08-05. Retrieved 2008-03-26.
  36. ^ "Makernote Types". exiftool.org.
  37. ^ "Olympus Makernotes" (in German). Olypedia. Archived from the original on 2008-01-19. Retrieved 2008-01-29.
  38. ^ Huggel, Andreas (2012-04-25). "Makernote formats and specifications". Retrieved 2012-09-09.
[edit]