9 Dec 20:20
Re: Writing single EXR file with very many channels?
Florian Kainz <kainz <at> ilm.com>
2009-12-09 19:20:43 GMT
2009-12-09 19:20:43 GMT
Hi Kora, the IlmImf library does not allow writing the file channel by channel; all channels must be written at the same time. The OpenEXR file layout would channel-by-channel writing very inefficient. However, you can write a few scanlines at a time or a few tiles at a time; your frame buffer only has to be large enough to hold the portion of the image you are writing. (In the extreme, a single scan line or a single tile is enough.) Florian Koraxen wrote: > Hey guys, > > I have a question regarding how to deal memory consumption and > multi-layered EXR files. > > I need to write an EXR file that contains 10 different versions of a > same high res (5120 x 2880) image. This translates into an EXR file that > contains 10 layers x 4 channels = 40 channels. > > What I am doing is: > 1. Instantiate an exr framebuffer > 2. Allocate memory for 40 high-res channels, and insert() them all into > framebuffer > 3. Instantiate OutputFile object, and set the framebuffer to it > 4. Write the OutputFile > > The problem is that host system obviously runs out of memory during step #2. > > What's needed here is the ability to: > - Insert a channel to framebuffer > - Write it to disk > - Free memory > - Repeat 40 times > - End up with a *single* EXR file containing 40 channels > > How can this be done? > > Thanks a ton! > - Kora > > > ------------------------------------------------------------------------ > > _______________________________________________ > Openexr-devel mailing list > Openexr-devel <at> nongnu.org > http://lists.nongnu.org/mailman/listinfo/openexr-devel
RSS Feed