AWARE [SYSTEMS] Imaging expertise for the Delphi developer
AWare Systems, Imaging expertise for the Delphi developer, Home TIFF and LibTiff Mailing List Archive

LibTiff Mailing List

TIFF and LibTiff Mailing List Archive
August 2008

Previous Thread
Next Thread

Previous by Thread
Next by Thread

Previous by Date
Next by Date

Contact

The TIFF Mailing List Homepage
This list is run by Frank Warmerdam
Archive maintained by AWare Systems



Valid HTML 4.01!



Thread

2008.08.22 08:56 "creating sparse files......", by Rogier Wolff
2008.08.22 13:11 "Re: creating sparse files......", by Toby Thain
2008.08.22 15:45 "Re: creating sparse files......", by Rogier Wolff
2008.08.22 16:26 "Re: creating sparse files......", by Toby Thain
2008.08.22 14:44 "Re: creating sparse files......", by Bob Friesenhahn
2008.08.22 15:21 "Re: creating sparse files......", by Toby Thain
2008.08.22 16:27 "Re: creating sparse files......", by Rogier Wolff
2008.08.22 16:40 "Re: creating sparse files......", by Bob Friesenhahn
2008.08.22 16:52 "Re: creating sparse files......", by Rogier Wolff
2008.08.22 18:11 "Re: creating sparse files......", by Bob Friesenhahn
2008.08.22 20:02 "Re: creating sparse files......", by Phillip Crews
2008.08.23 00:12 "Re: creating sparse files......", by Edward Lam
2008.08.23 15:26 "Re: creating sparse files......", by Rogier Wolff
2008.08.23 16:07 "Re: creating sparse files......", by Bob Friesenhahn
2008.08.23 16:23 "Re: creating sparse files......", by Rogier Wolff
2008.08.23 16:46 "Re: creating sparse files......", by Bob Friesenhahn
2008.08.23 15:08 "Re: creating sparse files......", by Rogier Wolff
2008.08.23 15:54 "Re: creating sparse files......", by Bob Friesenhahn
2008.08.23 15:58 "Re: creating sparse files......", by Rogier Wolff
2008.08.23 16:02 "Re: creating sparse files......", by Rogier Wolff
2008.08.23 16:51 "Re: creating sparse files......", by Gene Amtower
2008.08.23 17:39 "Re: creating sparse files......", by Rogier Wolff
2008.08.23 18:03 "Re: creating sparse files......", by Toby Thain
2008.08.23 18:49 "Re: creating sparse files......", by Rogier Wolff
2008.08.25 06:28 "Re: creating sparse files......", by Andrey Kiselev
2008.08.25 09:37 "Re: creating sparse files......", by <jcupitt@gmail.com>
2008.08.25 10:41 "Re: creating sparse files......", by Rob Van Den Tillaart
2008.08.25 12:15 "Re: creating sparse files......", by <jcupitt@gmail.com>
2008.08.26 13:14 "Re: creating sparse files......", by Edward Lam

2008.08.22 08:56 "creating sparse files......", by Rogier Wolff

Hi, 

I'm stitching kind of large panoramas. This results in big
intermediate files. On my last run, which took overnight to stitch,
I thought 42 Gb of free disk space would be enough. Wrong!

I got over thrity files of over 1.2Gbytes, filling up the disk. 

It turns out that most of the files contain lots of zeroes. On Unix
this can be stored effciently by not issueing a "write" with a buffer
full of zeroes, but by seeking over the area. The operating system
will act as if the area was filled with zeroes. 

I'v modified "tif_unix.c" to read: 


static int isallzero (tdata_t buf, tsize_t size)
{
        int i;
        for (i=0;i<size;i++)
                if (buf[i]) return 0;
        return 1;
}

static tsize_t
_tiffWriteProc(thandle_t fd, tdata_t buf, tsize_t size)
{
        if (isallzero (buf, size))
                return (lseek ((int) fd, (off_t)size, SEEK_CUR));
        else
                return ((tsize_t) write((int) fd, buf, (size_t) size));
}

static toff_t
_tiffSeekProc(thandle_t fd, toff_t off, int whence)
{
        return ((toff_t) lseek((int) fd, (off_t) off, whence));
}

static int
_tiffCloseProc(thandle_t fd)
{
        toff_t curoffset;
        toff_t fsize;

        curoffset = _tiffSeekProc (fd, 0, SEEK_CUR);
        fsize     = _tiffSeekProc (fd, 0, SEEK_END);
        if (curoffset > fsize) {
                ftruncate((int)fd, curoffset);
        }

        return (close((int) fd));
}


I haven't tested it yet. Maybe someone here has the same problem I
have , and is willing to do a test-run. I'll make a proper patch later
on. This is just to allow you guys know and to invite comments.... 

While writing this Email message, I've found a bug: If an area is
written, and then later zeroed by the application program the new code
won't work. I'll have to think about how to get this case right. In
practise a modified libtiff should be easy to plug into "hugin" and
the results should be visible, the bug-situation will probably not
trigger.

(I used to be able to hit the "compress" checkbox inside hugin, and it
would work. But it seems to have gone "dead" in the version currently 
installed on my machine.)

	Roger.


-- 
** R.E.Wolff@BitWizard.nl ** http://www.BitWizard.nl/ ** +31-15-2600998 **
**    Delftechpark 26 2628 XH  Delft, The Netherlands. KVK: 27239233    **
*-- BitWizard writes Linux device drivers for any device you may have! --*
Q: It doesn't work. A: Look buddy, doesn't work is an ambiguous statement. 
Does it sit on the couch all day? Is it unemployed? Please be specific! 
Define 'it' and what it isn't doing. --------- Adapted from lxrbot FAQ