Re: Does OpenEXR Handle Large Images
Florian Kainz <[email protected]> Wed, 16 Feb 2011 10:48:15 -0800
| Newsgroups | gmane.comp.video.openexr.user |
|---|---|
| Message-ID | <[email protected]> |
Hi Ben, There's one more limitation on the file size - the raw data for a compressed block in the file cannot be larger than 2GBytes. In scanline files a block is a group of contiguous scanlines (32 for PIZ, B44 and B44A; 16 for PXR24 and ZIP; and 1 for the rest). In tiled files each tile is its own block. You could hit the compression block size limit with extremely wide multi-channel files, but this is more of a theoretical issue. For example, a 10-channel, 16-bit PIZ-compressed file would have to be over 3.3 million pixels wide. With tiled files, the maximum size of the compression block size is unlikely to be a problem unless the tiles are very large. Florian Michael Wolf wrote: > On Tue, 15 Feb 2011 20:38:10 +0100, Ben Thompson <[email protected]> > wrote: > >> Hello Everyone, > > Hello Ben, > >> I'm trying to create large HDR image files. I have been using >> applications that write both .hdr and .exr; I have been using the former >> for no special reason. >> >> However, it seems that the applications generate invalid .hdr files when >> the image is more than 32767 pixels wide. I believe this is because they >> write RLE-compressed .hdr and RLE is not supported for images this wide. >> >> I'd like to know if .exr files have any limits on image size both in the >> case of no compression and compression with each/any of the available >> compression methods. I know of RLE, Zip (with and without >> multi-scanline, PIZ and PXR24. > > The largest file I've created is a tiled EXR at 86,400 x 43,200 pixels, > half, ZIP compressed, 3.9GB. > > So far the only major limitation I've encountered is the C++ i/o library > on windows capping at 2GB, which is why I have a patch for windows that > uses OS specific i/o routines. > (it works as expected out of the box on OSX, the only other platform we > support so far). > > Basically, pointers into the file are 64-bit and dimensions 32-bit > integer. I suspect those to be the only limits. > > I can send you the patch if you need it. > > Cheers, > Mike >