That looks odd.  I'll need to refer back to the code to see how this could
come to be ...

On 28 March 2016 at 16:17, Deke Kincaid <dekekinc...@gmail.com> wrote:

> 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
>
>
_______________________________________________
Openexr-devel mailing list
Openexr-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/openexr-devel

Reply via email to