EXR DWA lossy compression does not work with cryptomatte

Generic forum to discuss Octane Render, post ideas and suggest improvements.
Forum rules
Please add your OS and Hardware Configuration in your signature, it makes it easier for us to help you analyze problems. Example: Win 7 64 | Geforce GTX680 | i7 3770 | 16GB
Post Reply
Padi
OctaneRender Team
Posts: 24
Joined: Thu Jan 18, 2018 8:50 pm
Contact:

Dear Support Team

The current implementation for EXR DWAA and DWAB compression in Octane kernel does not take into consideration all necessary features of that standard.

In particular the cryptomatte render passes need to be compressed lossless. For the RNDR network we would like to suggest EXR DWAA/DWAB compression as the preferred output format. The format will save bandwidth for both, the nodes uploading the frames and the artists downloading the final renders. To do so the cryptomatte and other passes need to be treated correctly. As a second point, Octane probably uses the default compression level of 45. It might be desirable also to change the default value for the artist.

I will copy paste from a few online sources instead of writing it myself:
https://community.foundry.com/discuss/t ... d-when-not

DWA does some automagical lossy/lossless compression based on channel names which most people are not aware of unless you read the source code.

If you render data AOV such as XYZ, UV, motion vectors, etc.. these need to be losslessly compressed. Unfortunately most renderers are not aware of these issues so you can accidentally screw yourself with it. Actually you can also accidentally screw yourself with Nuke too.

Lossy Channel names:
R, G, B, Y, RY, BY (capital channel names are required)

RLE compressed:
A

Zip compressed - All other channel names not fitting the above:
Red, red, r, Green, green, g, Blue, blue, b, x, y, z, U, u, V, v, etc...

[here probably also cryptomatte should be included?]

So as you can see from the above, a common one which can bone you is XYZ. The Y will be lossy. You need to name them instead xyz so the dwa compressor uses a lossless compression.

You can read more about this in the source code below. There is a nice multi paragraph header explanation about it (which they really should have in the EXR docs).

https://github.com/openexr/openexr/blob ... ressor.cpp


Psyop:
https://github.com/Psyop/Cryptomatte/issues/35
This will be fixed in a V-Ray nightly soon. To fix it we patched the OpenEXR2 library to allow us to explicitly specify if a channel should be DWA compressed.

VRAY:
https://docs.chaosgroup.com/display/VRA ... Update+1.1
Fixed wrong Cryptomatte channel name when using DWA compression
https://docs.chaosgroup.com/display/VRA ... at+Options
You can set DWA compression level by adding an extra EXR attribute dwaCompressionLevel, for example dwaCompressionLevel=40.0.

Redshift:
https://docs.redshift3d.com/display/RSD ... ro+to+AOVs
DWA Compression Level
Set the level of compression for OpenEXR file format, default of 45 will yield a perceptibly lossless image but a drastic reduction in file size. Higher values mean more compression at smaller file sizes and vice versa.
Cheers,
Padi from the RNDR team
Padi
OctaneRender Team
Posts: 24
Joined: Thu Jan 18, 2018 8:50 pm
Contact:

Same topic in another thread :

viewtopic.php?f=23&t=73699&p=377099
Padi
OctaneRender Team
Posts: 24
Joined: Thu Jan 18, 2018 8:50 pm
Contact:

This issue has now been fixed in 2020.1.2
viewtopic.php?f=24&t=75100&p=385032#p385032
Post Reply

Return to “General Discussion”