1e145894eSFrank Warmerdam<html> 2e145894eSFrank Warmerdam<head> 3e145894eSFrank Warmerdam<title>BigTIFF Design</title> 4e145894eSFrank Warmerdam</head> 5e145894eSFrank Warmerdam<body> 6e145894eSFrank Warmerdam 7e145894eSFrank Warmerdam<h1>BigTIFF Design</h1> 8e145894eSFrank Warmerdam 9e145894eSFrank Warmerdam<p>This is the HTML equivalent of a former Wiki working place for preparing a 64-bit (larger than 4GB) TIFF 10e145894eSFrank Warmerdamformat specification. The design is based on a proposal by Steve Carlsen of Adobe, with input from various 11e145894eSFrank Warmerdamother parties.</p> 12e145894eSFrank Warmerdam 13e145894eSFrank Warmerdam<h2>Briefly</h2> 14e145894eSFrank Warmerdam<ul> 15e145894eSFrank Warmerdam<li>Version = 43</li> 16e145894eSFrank Warmerdam 17e145894eSFrank Warmerdam<li>8-byte offset to first IFD</li> 18e145894eSFrank Warmerdam<li>Value/Offset fields are 8 bytes</li> 19e145894eSFrank Warmerdam<li>8-byte offset to the next IFD</li> 20e145894eSFrank Warmerdam<li>add TIFFType of LONG8, an 8 byte (unsigned) int</li> 21e145894eSFrank Warmerdam<li>StripOffsets and TileOffsets and ByteCounts can be LONG8</li> 22e145894eSFrank Warmerdam</ul> 23e145894eSFrank Warmerdam 24e145894eSFrank Warmerdam<h2>More Detail</h2> 25e145894eSFrank Warmerdam<ul> 26e145894eSFrank Warmerdam<li>The Version ID, in header bytes 2-3, formerly decimal 42, now changes to 43</li> 27e145894eSFrank Warmerdam 28e145894eSFrank Warmerdam<li>Header bytes 4-5 contain the decimal number 8.<ul> 29e145894eSFrank Warmerdam <li>If there is some other number here, a reader should give up.</li> 30e145894eSFrank Warmerdam <li>This is to provide a nice way to move to 16-byte pointers some day.</li></ul></li> 31e145894eSFrank Warmerdam<li>Header bytes 6-7 are reserved and must be zero.<ul> 32e145894eSFrank Warmerdam <li>If they're not, a reader should give up.</li></ul></li> 33e145894eSFrank Warmerdam<li>Header bytes 8-15 contain the 8-byte offset to the first IFD.</li> 34e145894eSFrank Warmerdam<li>Value/Offset fields are 8 bytes long, and take up bytes 8-15 in an IFD entry.<ul> 35e145894eSFrank Warmerdam 36e145894eSFrank Warmerdam <li>If the value is <= 8 bytes, it must be stored in the field.</li> 37e145894eSFrank Warmerdam <li>All values must begin at an 8-byte-aligned address.</li></ul></li> 38e145894eSFrank Warmerdam<li>8-byte offset to the Next_IFD, at the end of an IFD.</li> 39e145894eSFrank Warmerdam<li>To keep IFD entries 8-byte-aligned, we begin with an 8-byte (instead of 2-byte) count of the number of directory entries.</li> 40e145894eSFrank Warmerdam<li>Add TIFFTypes of LONG8 (= 16), an 8 byte (unsigned) int, and SLONG8 (= 17).</li> 41e145894eSFrank Warmerdam<li>Add TIFFType IFD8 (=18) an 8byte IFD offset.</li> 42e145894eSFrank Warmerdam<li>StripOffsets and TileOffsets and ByteCounts may be LONG8 or the traditionally allowed LONG or SHORT.</li> 43e145894eSFrank Warmerdam 44e145894eSFrank Warmerdam<li>The proposed extension is ".tf8", and call it "8-Byte TIFF".</li> 45e145894eSFrank Warmerdam</ul> 46e145894eSFrank Warmerdam<p>Otherwise, it's just like "original TIFF." ("TIFF Classic?")</p> 47e145894eSFrank Warmerdam 48e145894eSFrank Warmerdam<h2>Open Issues</h2> 49e145894eSFrank Warmerdam<ul> 50e145894eSFrank Warmerdam<li>What to call the new format<ul> 51e145894eSFrank Warmerdam <li>ChrisCox -- I don't think end users will understand what "8-byte TIFF" means</li> 52e145894eSFrank Warmerdam <li>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.</li></ul></li> 53e145894eSFrank Warmerdam 54e145894eSFrank Warmerdam<li>What 3 character file extension to use (gotta be DOS compatible)</li> 55e145894eSFrank Warmerdam<li>What 4 character file type to use (for Macintosh)</li> 56e145894eSFrank Warmerdam<li>What MIME type to use</li> 57e145894eSFrank Warmerdam</ul> 58e145894eSFrank Warmerdam 59e145894eSFrank Warmerdam<h2>Samples</h2> 60*7e03e5ccSFrank Warmerdam<p><a href="http://www.awaresystems.be/imaging/tiff/bigtiff/BigTIFFSamples.zip">Example files</a> from Joris Van Damme</p> 61e145894eSFrank Warmerdam 62e145894eSFrank Warmerdam<h2>Changes</h2> 63e145894eSFrank Warmerdam 64e145894eSFrank Warmerdam<ul> 65e145894eSFrank Warmerdam<li>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.<ul> 66e145894eSFrank Warmerdam <li>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"?</li> 67e145894eSFrank Warmerdam <li>ChrisCox - 27 Sep 2004 -- They are in the Adobe TIFF definitions. I am still working on releasing updated TIFF documentation.</li></ul></li> 68e145894eSFrank Warmerdam<li>Added list of open issues.</li> 69e145894eSFrank Warmerdam<li>settle on version 43</li> 70e145894eSFrank Warmerdam<li>cleanup</li> 71e145894eSFrank Warmerdam<li>TIFFType 18 (8 byte IFD) added.</li> 72e145894eSFrank Warmerdam 73e145894eSFrank Warmerdam<li>Clarified that fields which may be LONG8 can also be one of the old supported types.</li> 74e145894eSFrank Warmerdam</ul> 75e145894eSFrank Warmerdam 76e145894eSFrank Warmerdam<h2>See also</h2> 77e145894eSFrank Warmerdam<p><a href="http://www.awaresystems.be/imaging/tiff/bigtiff.html">AWare Systems' informal overview of the BigTIFF proposal</a></p> 78e145894eSFrank Warmerdam 79e145894eSFrank Warmerdam</body> 80e145894eSFrank Warmerdam</html> 81