They must be implementing something incorrectly then. Below is a truncated exrheader on a file out of Nuke with the "interleave" knob set to "channels" which means each layer is put into a separate part..
file testMultiPartChannelsdwaa.exr: file format version: 2, flags 0x1000 part 0: channels (type chlist): x, 16-bit floating-point, sampling 1 1 y, 16-bit floating-point, sampling 1 1 z, 16-bit floating-point, sampling 1 1 chunkCount (type int): 34 compression (type compression): dwa, small scanline blocks dataWindow (type box2i): (0 240) - (2047 1315) displayWindow (type box2i): (0 0) - (2047 1555) dwaCompressionLevel (type float): 45 lineOrder (type lineOrder): increasing y name (type string): "N.left" nuke/full_layer_names (type int): 0 nuke/node_hash (type string): "368b9d1b87a4b787" nuke/version (type string): "9.0v8" pixelAspectRatio (type float): 1 screenWindowCenter (type v2f): (0 0) screenWindowWidth (type float): 1 type (type string): "scanlineimage" version (type int): 1 view (type string): "left" part 1: channels (type chlist): x, 16-bit floating-point, sampling 1 1 y, 16-bit floating-point, sampling 1 1 z, 16-bit floating-point, sampling 1 1 chunkCount (type int): 34 compression (type compression): dwa, small scanline blocks dataWindow (type box2i): (0 240) - (2047 1315) displayWindow (type box2i): (0 0) - (2047 1555) dwaCompressionLevel (type float): 45 lineOrder (type lineOrder): increasing y name (type string): "P.left" pixelAspectRatio (type float): 1 screenWindowCenter (type v2f): (0 0) screenWindowWidth (type float): 1 type (type string): "scanlineimage" version (type int): 1 view (type string): "left" part 2: channels (type chlist): Z, 16-bit floating-point, sampling 1 1 chunkCount (type int): 34 compression (type compression): dwa, small scanline blocks dataWindow (type box2i): (0 240) - (2047 1315) displayWindow (type box2i): (0 0) - (2047 1555) dwaCompressionLevel (type float): 45 lineOrder (type lineOrder): increasing y name (type string): "depth.left" pixelAspectRatio (type float): 1 screenWindowCenter (type v2f): (0 0) screenWindowWidth (type float): 1 type (type string): "scanlineimage" version (type int): 1 view (type string): "left" part 3: channels (type chlist): u, 16-bit floating-point, sampling 1 1 v, 16-bit floating-point, sampling 1 1 chunkCount (type int): 34 compression (type compression): dwa, small scanline blocks dataWindow (type box2i): (0 240) - (2047 1315) displayWindow (type box2i): (0 0) - (2047 1555) dwaCompressionLevel (type float): 45 lineOrder (type lineOrder): increasing y name (type string): "motion.left" pixelAspectRatio (type float): 1 screenWindowCenter (type v2f): (0 0) screenWindowWidth (type float): 1 type (type string): "scanlineimage" version (type int): 1 view (type string): "left" part 4: channels (type chlist): A, 16-bit floating-point, sampling 1 1 B, 16-bit floating-point, sampling 1 1 G, 16-bit floating-point, sampling 1 1 R, 16-bit floating-point, sampling 1 1 chunkCount (type int): 34 compression (type compression): dwa, small scanline blocks dataWindow (type box2i): (0 240) - (2047 1315) displayWindow (type box2i): (0 0) - (2047 1555) dwaCompressionLevel (type float): 45 lineOrder (type lineOrder): increasing y name (type string): "rgba.left" pixelAspectRatio (type float): 1 screenWindowCenter (type v2f): (0 0) screenWindowWidth (type float): 1 type (type string): "scanlineimage" version (type int): 1 view (type string): "left" On Mon, Mar 28, 2016 at 3:16 PM, Piotr Stanczyk <piotr.stanc...@gmail.com> wrote: > +1 .. there is nothing that the client code really has to do. It's purely > based off the channel names. > > -Piotr > > > On 28 March 2016 at 15:05, Karl Rasche <karlras...@gmail.com> wrote: > >> Deke - >> >> All the channel rule setup should happen automagically; there isn't >> anything for Nuke to setup. >> >> That said, if your channels are all named RGB going into the write node, >> they'll all be handled the same by the compressor. >> >> Karl >> >> On Monday, March 28, 2016, Deke Kincaid <dekekinc...@gmail.com> wrote: >> >>> Thanks for the info Karl. Currently Nuke doesn't follow these rules and >>> when you pick DWAA and just compresses all channels the same instead of >>> selectively based on channel names. So we are having to write some hackery >>> to work around it at the moment. >>> >>> I'll put this into my feature request/bug to the Foundry. >>> >>> On Mon, Mar 28, 2016 at 2:15 PM, Karl Rasche <karlras...@gmail.com> >>> wrote: >>> >>>> >>>> This won't help on the documentation front, but for your question about >>>> how channels are handled... >>>> >>>> This is setup in initializeChannelRules() >>>> <https://github.com/openexr/openexr/blob/master/OpenEXR/IlmImf/ImfDwaCompressor.cpp#L3120>. >>>> That logic is basically saying: >>>> >>>> >>>> - If the channel name is A, use a lossless RLE compression on it >>>> - If the channel name is {Y, BY, RY}, and the data is {FLOAT, >>>> HALF}, lossy compress the channel >>>> - If the channel name is {R, G, B}, and the data is {FLOAT, HALF}, >>>> lossy compress the channels. >>>> - If we have R, G, and B channels, convert to a color difference >>>> format prior to quantization. Otherwise, deal with the channels >>>> independently as-is. >>>> - Otherwise, use a lossless compression on the data >>>> >>>> So channels named {y, u, U, v, V} should not be lossy compressed. >>>> >>>> The rule set that Jonathan is referring to is in >>>> initializeLegacyChannelRules() >>>> <https://github.com/openexr/openexr/blob/master/OpenEXR/IlmImf/ImfDwaCompressor.cpp#L3149>, >>>> and are slightly different from what 2.2 does by default. >>>> >>>> Most of this is hold-over from the time before multi-part files allowed >>>> more control over compression on different channel sets. >>>> >>>> Karl >>>> >>>> On Mon, Mar 28, 2016 at 1:56 PM, Richard Hadsell < >>>> hads...@blueskystudios.com> wrote: >>>> >>>>> There has been discussion on the [nuke-prerelease] e-mail list about >>>>> DWAA and DWAB compression with OpenExr 2.2. I checked the OpenExr >>>>> Technical Introduction, but was disappointed to see that it has not been >>>>> updated since November 2013. Is there any chance that someone is working >>>>> on an update? >>>>> >>>>> It is not difficult to use DWAA and DWAB compressions, which are >>>>> available in the compression header. That is not the problem. The >>>>> questions that I would like to see answered pertain more to lossy vs. >>>>> lossless compression. The [nuke-prerelease] discussion included >>>>> interesting information like this: >>>>> >>>>> On Thu, Mar 17, 2016 at 1:03 PM, Jonathan Egstad < >>>>> jonathan.egs...@dreamworks.com> wrote: >>>>> ... >>>>> > 3. Does the lossyness cause issues with data aov's, motion vectors, >>>>> uv, position, normals, etc...? >>>>> >>>>> Yup - it will destroy data AOVs like normals, positions, etc. I >>>>> believe the codec recognizes typical color-channel names like >>>>> 'r/R/red/RED', etc and only lossy compresses those. Channels it doesn't >>>>> recognize will get lossless compressed with I believe ZIP - alpha for >>>>> example is lossless compressed. >>>>> One gotcha is I think it traps 'Y/y, u/U, v/V' as valid color channels >>>>> and lossy-compresses those, which is a problem for xyz and uv channels... >>>>> This is how our internal codec works so you might want to check that >>>>> the one in the official OpenEXR2.2+ release has these behaviors. >>>>> ... >>>>> (end quote) >>>>> >>>>> It would be great to see a list of those special channel names. Are >>>>> they the only channels that are compressed with DWAA/DWAB? What >>>>> compression would be applied to the other channels? Does this behavior >>>>> apply to all lossy compressions? >>>>> >>>>> I hope to see answers to these questions in an updated Technical Intro >>>>> (eventually). >>>>> >>>>> -- >>>>> Dick Hadsell 203-992-6320 Fax: 203-992-6001 >>>>> Reply-to: hads...@blueskystudios.com >>>>> Blue Sky Studios http://www.blueskystudios.com >>>>> 1 American Lane, Greenwich, CT 06831-2560 >>>>> >>>>> >>>>> _______________________________________________ >>>>> Openexr-devel mailing list >>>>> Openexr-devel@nongnu.org >>>>> https://lists.nongnu.org/mailman/listinfo/openexr-devel >>>>> >>>>> >>>> >>>> _______________________________________________ >>>> Openexr-devel mailing list >>>> Openexr-devel@nongnu.org >>>> https://lists.nongnu.org/mailman/listinfo/openexr-devel >>>> >>>> >>> >> _______________________________________________ >> Openexr-devel mailing list >> Openexr-devel@nongnu.org >> https://lists.nongnu.org/mailman/listinfo/openexr-devel >> >> >
_______________________________________________ Openexr-devel mailing list Openexr-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/openexr-devel