Previous Up Next

Supported File Types

Exifprobe will process files in the formats mentioned below.

The focus in development has been on images produced by digital cameras, but images produced by other devices (e.g. scanners) are also of interest. It is the format of the image file which matters, not the producing device. It is worth noting that the program is not limited to EXIF formats. Despite the name, the primary purpose of the program has always been to illuminate the structure of image files, and to present all of the information found, most of which, until fairly recently, has been contained in EXIF sections. The program will quite readily report the contents of JFIF files, for example...there just isn't as much interesting data to report. "Plain" TIFF and JPEG files are handled with or without EXIF contents.

The most recent distribution of exifprobe (2.0.0) adds support for a number of formats often reported as "raw" formats, although that label best applies to the format of the primary image data contained, rather than to the file format, Many of these files are based upon or derived from the TIFF file format.

TIFF/TIFFEP

The TIFF and TIFFEP specifications are open, published and available. I believe the implementation of these formats to be reasonably complete and accurate,

Exifprobe makes some checks of format, but since it attempts neither display nor rewriting of data, it can (and will) accept and read files which baseline TIFF display and edit programs will refuse to contemplate.

It must be noted that there are several camera formats (some of which are noted below) which identify themselves as TIFF (via a TIFF header) and use the IFD as primary format, but which pay no obeisance to the TIFF specification.

JPEG

The JPEG specification is open and well-defined. Exifprobe reads and displays standard JPEG "markers'' and picks interesting data from them for the image summary. APPn markers are recognized, but only APP0 (JFIF/JFXX/CIFF) and APP1 (EXIF) markers are fully expanded. APP3 (Meta) sections are expanded and the included TIFF section displayed, but little interpretation is done. Recently some information about these sections in Kodak cameras has begun to appear on the internet, but I have few samples which contain these sections and the information published so far is not sufficiently detailed to permit more complete expansion of the IFD. APP12 markers are incompletely and crudely expanded. Other markers are reported, but may be displayed only by hex/ascii dump.

EXIF

Exifprobe supports version 2.2 (and earlier) of the EXIF specification. There are three tags (SpatialFrequencyResponse, OECF, and SpectralSensitivity) which are reported but not expanded. The EXIF specification makes extensive use of the TIFF format, but regrettably forces some violations of that specification (as modified by TechNote II in 1995).

MakerNotes

Exifprobe will read and expand all MakerNotes which are written in a format similar to theTIFF IFD format. Some camera makers produce MakerNotes in proprietary, mostly fully binary, formats which are difficult to reverse-engineer. All of the "known" MakerNote formats are in a semblance of TIFF IFD format. Exifprobe will interpret all MakerNotes for which information has been posted on the internet. Nearly all of this information has been supplied by camera owners who have spent a great deal of time and effort decoding the information found in camera images. Only one manufactureer, Foveon, has published information describing a MakerNote format. Foveon provides a description of the MakerNote format used in Sigma/Foveon cameras. This MakerNote is found in JPEG images produced by these cameras, not in X3F files (Foveon has also provided an abbreviated description of the X3F format, sufficient to read and display the contents of the file).

There are a number of variations of IFD format used for MakerNotes. Exifprobe attempts to avoid dependence upon make and model information as much as possible; it determines the 'scheme' used to write the note without reference to make or model, so that it may be able to present at least the raw data from an unknown model. Make and model information may then be used to determine how the note is interpreted, Some manufacturers have used just one MakerNote version for all models to date (although some models may use different subsets of the data). Exifprobe assumes that an unknown model for these makers (i.e. unknown to exifprobe) will use that same noteversion. Other manufacturers have used different noteversions for different models, with different schemes, different tag numbers, even different interpretations for the same tag number). Exifprobe will in that case attempt to deduce the appropriate noteversion to use for a model it does not recognize. If that fails, only the raw data is presented.

CR2

The Canon CR2 format is a modified TIFF format, and will show up as FileType "TIFF" when probed. Aside from use of the TIFF IFD, the format pays little attention to the requirements of the TIFF specification.

All CR2 images I have seen include four TIFF IFDs, although it is likely that the number depends upon user camera settings. There are a couple of peculiar things about two of these IFDs.

IFD 2 marks the related image data as JPEG compressed, using the old, deprecated Compression value '6'. The PhotoMetricInterpretation is given as "RGB", and the data length is exactly the length required for 3 component RGB at the pixel size given, suggesting that it not compressed. In fact the extracted RGB data can be wrapped in a TIFF IFD (using e.g. the ImageMagick convert program) to produce a displayable RGB image. The data is uncompressed RGB data, despite the JPEG compression indicator.

IFD 3 contains 12 bit, 2 component lossless JPEG image data. Even JPEG libraries specially compiled to handle 12 bit data and lossless JPEG don't know what to do with 2 components. I don't know what this is, but it may be CFA data ``losslessly'' compressed.

Dave Coffin's dcraw program will handle these images; unfortunately "dcraw.c" is not comprehensible by mere mortals...

ORF

Olympus ORF files come in two flavors, both of which are based upon the TIFF IFD. Olympus has taken the unusual step of marking their formats with unique "magic numbers" in the header (a different magic number for each flavor). This simple step should have been taken for the other TIFF-derived formats (including DNG), since it informs a TIFF reader immediately that it can't handle this file.

One of the formats (magic=0x5352="RS") contains primary image data in "packed" 12 bit CFA format. The other (magic=0x4f52="RO") provides 12 bit "unpacked'' (16 bits per sample) CFA data. The data do not appear to be compressed.

NEF

NEF files are fundamentally TIFFEP format. Primary image data is stored as 12 bit CFA, either uncompressed or compressed by a proprietary technique. It is reported that the color balance data in some recent high-end Nikons is encrypted.

DNG

DNG format is strongly based upon the TIFF format, with a collection of additional tags.

K25/KDC

KDC files are TIFFEP format, with primary image data stored as uncompressed CFA, or CFA compressed by a proprietary compression scheme. All K25 files I have seen are also TIFFEP with uncompressed CFA (no compressed data seen).

CIFF/CRW

CIFF is a proprietary (but published) format of Canon. It is used as a "raw" format in CRW files, or may be included in an APP0 segment in JPEG files as a means to include metadata. The format uses directories with fixed length (ten bytes) entries. It is similar to TIFF in that values may be stored directly in the entry or at an offset, but places directories AFTER data to which the entries may point (which may be subdirectories, which may point to earlier data...). The specification may be found at
http://xyrion.org/ciff/CIFFspecV1R04.pdf

MRW

MRW is a proprietary "raw" image format of Konica Minolta. Support in exifprobe is based upon information presented by Dalibor Jelinek at
http://www.dalibor.cz/minolta/raw_file_format.htm

PEF

Pentax PEF format is rather standard TIFF format which stores primary image data as Packbits RLE compressed CFA.

RAF

RAF is a proprietary "raw" format of Fujifilm. It is an untagged format and the implementation in exifprobe is preliminary, based upon nothing more than examination of a few images I've downloaded from the internet. The primary image data is "interpolated" CFA (is that really raw?) uncompressed. The CFA data for the secondary pixels used in some models is apparently interlaced by rows with the data for primary pixels. I assume that the tables found in the images are white balance or color balance tables.

The files contain a JPEG image complete with EXIF data, which will be displayed by exifprobe.

Feedback is welcome.

JP2/JPEG2000

The final JPEG2000 specification has not been released to the public. It is copyrighted by the IOC, which appears disinclined to make it public. The implementation of the format (and JP2) in exifprobe is based upon the outdated draft specification released some years ago and the jasper code available at
http://www.ece.uvic.ca/~mdadams/jasper/

X3F

The X3F "raw" image format for the Sigma/Foveon image sensor is partially described in a document provided at
http://www.x3f.info/technotes/FileDocs/X3F_Format.pdf
Some detail information is blacklined (as proprietary) from the document, but the structural information is sufficient to read the files. One section which is not described by the published data is found in all samples I have seen (CAMF), and that section cannot be expanded as a result. There may be others. The format allows inclusion of image data in a variety of formats, but descriptors for some of the formats are "reserved".


Previous Up Next