TIFF Tag JPEGInterchangeFormat
|Code||513 (hex 0x0201)|
Old-style JPEG compression field. TechNote2 invalidates this part of the specification.
No new TIFF writer code should ever attempt to use this tag. It is part of an invalidated compression scheme, old-style JPEG, that was always unclear to begin with, and next enjoyed many mutually exclusive implementations. The following description is for TIFF reading purposes only.
This field was originally intended to indicate whether a JPEG interchange format bitstream is present in the TIFF file. If a JPEG interchange format bitstream is present, then this field should point to the Start of Image (SOI) marker code.
If this field is zero or not present, a JPEG interchange format bitstream is not present.
In practice, many different uses of the JPEGInterchangeFormat and JPEGInterchangeFormatLength tags are observed in old-style JPEG compressed TIFFs.
The field can be absent. In this case, often the JPEGQTables, JPEGDCTables, and JPEGACTables tags are included, and these tags should be consulted to find the table data.
The field can be present. If so, JPEGInterchangeFormatLength can be used to indicate the length of the embedded JPEG stream, but the Length tag can also be absent. The JPEGQTables, JPEGDCTables, and JPEGACTables tags can be present, but they can point to incorrect positions or even positions beyond EOF, so reading this data from the JPEG stream pointed to by JPEGInterchangeFormat, when present, seems safest.
The JPEG stream pointed to by the JPEGInterchangeFormat tag and possibly limited in length by the JPEGInterchangeFortmatLength tag, can be a complete and valid JPEG stream. But it can also be only the start of such a stream, up to but not including the SOS marker. If that is the case, most often an SOS marker is included right at the beginning of the first strip's JPEG compressed data.