BigTIFF Design — LibTIFF 4.5.1 documentation

# BigTIFF Design

This design details 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 Joris Van Damme.

## 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.