Funny you should ask. As it turns out, in that original example I posted, a 3-channel image will be default be named R,G,B and a 1-channel image will default to "Y".
Right after I send the message, I remembered that certain channel names get a different treatment under dwaa, and tried naming the one channel "R": # still fails, even with channel name "R" oiiotool --pattern checker 512x512 1 -d half -chnames R -compression dwaa -tile 8 8 -o test.exr # still passes, even with a channel named "Y" oiiotool --pattern checker 512x512 3 -d half -chnames Y,G,B -compression dwaa -tile 8 8 -o test.exr Also, remember that even with one "Y" channel, it worked fine for 16x16 tiles, but hit the assertion when smaller. Oh, but wait, I just tried one more combination! # 3 channel fails! But only if all at least 2 channels are non-RGB? Still works with 16x16 tiles. oiiotool --pattern checker 512x512 3 -d half -chnames Y,X,B -compression dwaa -tile 8 8 -o test.exr I can transfer this to a GI "Issue" if you prefer. I tried the mail list first thinking that maybe somebody was going to tell me it's a known problem or that I'm obviously doing something wrong rather than it being a bug. > On Nov 21, 2018, at 6:44 AM, Karl Rasche <karlras...@gmail.com> wrote: > > Hey Larry - > > What is the single channel named? > > For tiled files, dwaa == dwab, so you should hit the same issue with either > case. There’s a couple of paths that lead to hitting zlib, and the channel > naming should tell us which that is. > > My guess is there’s some degenerate case in the buffer sizing logic. > > Karl > > On Tue, Nov 20, 2018 at 9:49 PM Larry Gritz <l...@larrygritz.com > <mailto:l...@larrygritz.com>> wrote: > Here is a strange behavior (easy to repro for those of you who might have a > copy of OIIO lying around): > > # works > oiiotool --pattern checker 512x512 1 -d half -compression dwaa -tile 16 > 16 -o test.exr > > # fails > oiiotool --pattern checker 512x512 1 -d half -compression dwaa -tile 8 8 > -o test.exr > > Just writing a simple tiled 1-channel half exr file with dwaa (or dwab) > compression. It succeeds with 16x16 tiles but fails with 8x8, wherein > writeTiles() throws an exception with the following message: > > > Failed to write pixel data to image file "test.bb700d14.temp.exr". Data > compression (zlib) failed. > > > Curiously, if I instead make a 3-channel file, > > oiiotool --pattern checker 512x512 3 -d half -compression dwaa -tile 8 8 > -o test.exr > > that succeeds (also fine with 4x4, 2x2, 1x1 tile size). Using zip compression > is fine. I can only make it fail with the specific combination of 1 channel > images + dwaa/dwab compression + tile size < 16. > > Anybody have any insight, or has this bug been reported before? > > Here's the OIIO issue if anyone wants to follow up there or reference it: > https://github.com/OpenImageIO/oiio/issues/1844 > <https://github.com/OpenImageIO/oiio/issues/1844> > > -- > Larry Gritz > l...@larrygritz.com <mailto:l...@larrygritz.com> > > > > > > _______________________________________________ > Openexr-devel mailing list > Openexr-devel@nongnu.org <mailto:Openexr-devel@nongnu.org> > https://lists.nongnu.org/mailman/listinfo/openexr-devel > <https://lists.nongnu.org/mailman/listinfo/openexr-devel> -- Larry Gritz l...@larrygritz.com
_______________________________________________ Openexr-devel mailing list Openexr-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/openexr-devel