BigTIFF Design
This is the HTML equivalent of a former Wiki working place for preparing a 64-bit (larger than 4GB) TIFF
format specification. The design is based on a proposal by Steve Carlsen of Adobe, with input from various
other parties.
Briefly
- Version = 43
- 8-byte offset to first IFD
- Value/Offset fields are 8 bytes
- 8-byte offset to the next IFD
- add TIFFType of LONG8, an 8 byte (unsigned) int
- StripOffsets and TileOffsets and ByteCounts can be LONG8
More Detail
- The Version ID, in header bytes 2-3, formerly decimal 42, now changes to 43
- Header bytes 4-5 contain the decimal number 8.
- If there is some other number here, a reader should give up.
- This is to provide a nice way to move to 16-byte pointers some day.
- Header bytes 6-7 are reserved and must be zero.
- If they're not, a reader should give up.
- Header bytes 8-15 contain the 8-byte offset to the first IFD.
- Value/Offset fields are 8 bytes long, and take up bytes 8-15 in an IFD entry.
- If the value is <= 8 bytes, it must be stored in the field.
- All values must begin at an 8-byte-aligned address.
- 8-byte offset to the Next_IFD, at the end of an IFD.
- To keep IFD entries 8-byte-aligned, we begin with an 8-byte (instead of 2-byte) count of the number of directory entries.
- Add TIFFTypes of LONG8 (= 16), an 8 byte (unsigned) int, and SLONG8 (= 17).
- Add TIFFType IFD8 (=18) an 8byte IFD offset.
- StripOffsets and TileOffsets and ByteCounts may be LONG8 or the traditionally allowed LONG or SHORT.
- The proposed extension is ".tf8", and call it "8-Byte TIFF".
Otherwise, it's just like "original TIFF." ("TIFF Classic?")
Open Issues
- What to call the new format
- ChrisCox -- I don't think end users will understand what "8-byte TIFF" means
- AndreyKiselev - 23 Sep 2004 -- What about TIFF64? "64" is a widely used buzzword and should be directly associated with the 64-bit offsets and 64-bit architectures.
- What 3 character file extension to use (gotta be DOS compatible)
- What 4 character file type to use (for Macintosh)
- What MIME type to use
Samples
Example files from Steve Carlsen
Changes
- TIFFType 13 is ttIFD, 14 is assigned to ttUnicode, and 15 is assigned to ttComplex. So, I changed the types for ttLong8 and ttSLong8 to 16 and 17, respectively.
- AndreyKiselev - 23 Sep 2004 -- Where are these fields defined? Is there any new Technical Note or something? And what is encoding behind the word "Unicode"?
- ChrisCox - 27 Sep 2004 -- They are in the Adobe TIFF definitions. I am still working on releasing updated TIFF documentation.
- Added list of open issues.
- settle on version 43
- cleanup
- TIFFType 18 (8 byte IFD) added.
- Clarified that fields which may be LONG8 can also be one of the old supported types.
See also
AWare Systems' informal overview of the BigTIFF proposal