Details
What is PMP?

Top  |  Back to Pump

PMP is an image file format used by early Sony digital cameras such as the DSC-F1 released in 1996. Photos taken with these cameras were given filenames like PSN00001.PMP, PSN00002.PMP, and so on. The PMP format is based on JPEG but includes a proprietary header that stores camera metadata.

Why did Sony use it?

Top  |  Back to Pump

The DSC-F1 was capable of generating metadata, and Sony needed a file format that could store it. Nowadays almost all digital cameras store metadata in standard JPEG files according to the DCF/EXIF standards. But DCF/EXIF weren't adopted by the industry until 1998. Sony released the DSC-F1 in 1996 and since the industry hadn't yet settled on a standard they created their own proprietary file format.

What does it store?

Top  |  Back to Pump

PMP image files store the following metadata attributes (some of which are not used by the DSC-F1):

  • Original file size (in bytes)
  • Original image size (in pixels)
  • Lens orientation (forward/reverse)
  • Image quality (JPEG quality level)
  • Comment
  • Date/time originally taken
  • Date/time last modified
  • Shutter speed
  • Aperture (not used by DSC-F1)
  • Exposure bias (not used by DSC-F1)
  • Focal length (not used by DSC-F1)
  • Flash on/off

How does it work?

Top  |  Back to Pump

Sony PMP image files are actually standard JPEG files prefixed with a proprietary 124-byte header.

Following is a list of bytes within the PMP header that encode metadata attributes. These attributes are displayed in the Sony ALBUM.EXE utility when you pull down the "Image" menu and select "Information".

You can convert a PMP file to JPEG format with no loss of quality by simply removing the first 124 bytes of the file and changing the extension to JPG.

Byte Attribute Details
Byte 014JPG File SizePMP Size = 124 + [Byte 014]*256^2 + [Byte 015]*256 + [Byte 016]
Byte 015JPG File Sizesee [Byte 014]
Byte 016JPG File Sizesee [Byte 014]
Byte 023Horizontal Image SizeHorizontal Size = [Byte 023] * 256 + [Byte 024]
Byte 024Horizontal Image Sizesee [Byte 023]
Byte 025Vertical Image SizeVertical Size = [Byte 025] * 256 + [Byte 026]
Byte 026Vertical Image Sizesee [Byte 025]
Byte 028Lens Orientation0=Forward, 2=Reverse; DSC-F1 lens swivels to face forward or backward; backward-facing shots need to be rotated by 180 degrees
Byte 030Image QualityALBUM.EXE Version 1.0 reports as "Compression": 8="0.8", 23="1.7", 51="3.3"; these values probably correspond to JPEG Quality parameters in the range 0-4 or 1-5; ALBUM.EXE Version 1.5 reports as "Image Quality": 8="Snap shot", 23="Standard", 51="Fine"
Byte 041Horizontal Image SizeHorizontal Size = [Byte 041] * 256 + [Byte 042]
Byte 042Horizontal Image Sizesee [Byte 041]
Byte 043Vertical Image SizeVertical Size = [Byte 043] * 256 + [Byte 044]
Byte 044Vertical Image Sizesee [Byte 043]
Byte 053CommentCharacter 01
Byte 054CommentCharacter 02
Byte 055CommentCharacter 03
Byte 056CommentCharacter 04
Byte 057CommentCharacter 05
Byte 058CommentCharacter 06
Byte 059CommentCharacter 07
Byte 060CommentCharacter 08
Byte 061CommentCharacter 09
Byte 062CommentCharacter 10
Byte 063CommentCharacter 11
Byte 064CommentCharacter 12
Byte 065CommentCharacter 13
Byte 066CommentCharacter 14
Byte 067CommentCharacter 15
Byte 068CommentCharacter 16
Byte 069CommentCharacter 17
Byte 070CommentCharacter 18
Byte 071CommentCharacter 19
Byte 077Recorded Year99 = 1999, 0 = 2000, 1 = 2001, etc.
Byte 078Recorded Month1 - 12
Byte 079Recorded Day1 - 31
Byte 080Recorded Hour0 - 23
Byte 081Recorded Minute0 - 59
Byte 082Recorded Second0 - 59
Byte 085Edited Year99 = 1999, 0 = 2000, 1 = 2001, etc.
Byte 086Edited Month1 - 12
Byte 087Edited Day1 - 31
Byte 088Edited Hour0 - 23
Byte 089Edited Minute0 - 59
Byte 090Edited Second0 - 59
Byte 103Shutter SpeedALBUM.EXE Version 1.0 reports as "Y/100" where X = [Byte 103] * 256 + [Byte 104] and where Y = X if 0<=X<=32767 or Y = X - 65536 if 32769<=X<=65534; if X = 32768 or 65535, then ALBUM.EXE Version 1.0 reports "--"; ALBUM.EXE Version 1.5 reports as "about 1/Z second" where Z depends on X
Byte 104Shutter Speedsee [Byte 103]
Byte 107ApertureNot used by DSC-F1: defaults to 32768; ALBUM.EXE Version 1.0 reports as "Y/100" where X = [Byte 107] * 256 + [Byte 108] and where Y = X if 0<=X<=32767 or Y = X - 65536 if 32769<=X<=65534; if X = 32768 or 65535, then ALBUM.EXE Version 1.0 reports "--"
Byte 108Aperturesee [Byte 107]
Byte 109Exposure BiasNot used by DSC-F1: defaults to 32768; ALBUM.EXE Version 1.0 reports as "Y/100" where X = [Byte 109] * 256 + [Byte 110] and where Y = X if 0<=X<=32767 or Y = X - 65536 if 32769<=X<=65534; if X = 32768 or 65535, then ALBUM.EXE Version 1.0 reports "--"
Byte 110Exposure Biassee [Byte 109]
Byte 113Focal LengthNot used by DSC-F1: defaults to 65535; ALBUM.EXE Version 1.0 reports as "Y/100" where X = [Byte 113] * 256 + [Byte 114] and where Y = X if 0<=X<=32767 or Y = X - 65536 if 32769<=X<=65534; if X = 32768 or 65535, then ALBUM.EXE Version 1.0 reports "--"
Byte 114Focal Lengthsee [Byte 113]
Byte 119Flash0 = Off, 1 = On

Links to more info

Top  |  Back to Pump

You can read more about the DSC-F1 and Sony's PMP file format at: