Return-Path: <rvdt@oce.nl>
Received: from inmx005.isp.belgacom.be (inmx005.isp.belgacom.be [195.238.3.148])
        by mailst006.isp.belgacom.be (8.12.9/8.12.9/Skynet-MAILSTORE-2.14) with ESMTP id i3M6GLd5026753
        for <joris.at.lebbeke@skynet.be>; Thu, 22 Apr 2004 08:16:21 +0200
        (envelope-from <rvdt@oce.nl>)
Received: from smtp01.oce.nl (smtp01.oce.nl [134.188.1.25])
        by inmx005.isp.belgacom.be (8.12.9/8.12.9/Skynet-IN-2.32) with ESMTP id i3M6GFhO008101
        for <joris.at.lebbeke@skynet.be>; Thu, 22 Apr 2004 08:16:15 +0200
        (envelope-from <rvdt@oce.nl>)
Received: from smtp05.oce.nl (smtp05.oce.nl [134.188.1.26])
	by smtp01.oce.nl (8.12.8p1/8.12.8) with ESMTP id i3M6FO0T007782;
	Thu, 22 Apr 2004 08:15:24 +0200 (MEST)
Received: from smtp-venlo.oce.nl (localhost [127.0.0.1])
	by smtp05.oce.nl (8.12.8p1/8.12.8) with ESMTP id i3M6FMJe012090;
	Thu, 22 Apr 2004 08:15:23 +0200 (MEST)
Received: from smtp03.oce.nl (smtp03.oce.nl [134.188.150.26])
	by smtp-venlo.oce.nl (8.12.8p1/8.12.8) with ESMTP id i3M6FKkQ021630;
	Thu, 22 Apr 2004 08:15:20 +0200 (MEST)
Received: from oce.nl (localhost [127.0.0.1])
	by smtp03.oce.nl (8.12.8p1/8.12.8) with ESMTP id i3M6FI9W029212;
	Thu, 22 Apr 2004 08:15:19 +0200 (MEST)
Message-ID: <408762F6.ED2D912A@oce.nl>
Date: Thu, 22 Apr 2004 08:15:18 +0200
From: Rob van den Tillaart <rvdt@oce.nl>
X-Mailer: Mozilla 4.61 [en]C-CCK-MCD   (WinNT; I)
X-Accept-Language: en,nl
MIME-Version: 1.0
To: Frank Warmerdam <warmerdam@pobox.com>
CC: Joris <joris.at.lebbeke@skynet.be>, Tiff@remotesensing.org
Subject: Large Tiff and roadsigns
References: <20040420141539.95223.qmail@web60203.mail.yahoo.com> <004d01c426e5$c68fdde0$9701f151@dfgrrxsknr4e> <40868B44.5@pobox.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Filter-Version: 1.12a-oce (smtp-venlo)
X-Spam-Scanner: E-mail has been checked
X-Spam-Scanner-Check: not spam (whitelisted), SpamAssassin (score=-2.6,
	required 5, BAYES_20 -2.60, REFERENCES -0.00,
	USER_AGENT_MOZILLA_XM 0.00)
X-UIDL: 54ef5e9e92c1d11c9aa64582c6345fdf


Hi,

Yesterday when I drove home from work I was triggered bij a roadsign
indicating the distance to the next cities. Every few kilometers there
was a new roadsign. Suddenly I was aware that these are pointers or
offsets. These pointers reference to a location with respect to the
current location. Some pointed forward others backward (other side of
the road :) and some pointed sideward.

What could this mean for large TIFF files?

Currently all offsets in a TIFF file are relative to the start of the
file. If we just change this with offsets relative to the current
position it is possible to handle multipage tiff files of arbitrary size
(individual images smaller than 2GB). The type of offset could be 32 bit
signed int an existing type. The only thing needed to do is an
indication that offsets are relative iso absolute. 

header >IFD -> 	IFD ->	IFD -> 	IFD -> 	IFD-> 	IFD ->	IFD -> 	IFD -> 	IFD
0GB	1GB	2GB	3GB	4 GB	5GB	6GB	7GB	8GB	9GB

(GB= gigabyte absolute offset from start of file) 

In this oversimplified example the offset to the next IFD is just 1 GB
away.

However if the images themselves are larger than 2GB the pointers to the
next IFD are not long 
enough and there is still a need for a 64 bit offset type.

The use of signed int's is chosen as the IFD is often after the image
data.

This relative offset concept certainly has drawbacks I overlook right
now, but it has some nice properties too so lets add it to the
discussion.

regards,
rob tillaart
