I know for Blender sets the color management setting globally for the project. As far as I am aware every data that is saved as image, will pass through the color management of Blender.
Now the problem is, I have data that I want to store as an image format (e.g. png not OpenEXR or HDR), that shouldn't be passed through color management. For instance I have an ID-mask in compositing, that I would like to store. This isn't an image, like a render, were the transformation through the LUT makes sense (or does it?).
If my understanding is correct, the color management used by the file output node treats the values like pixels, mapping each value to the corresponding value in the LUT. However with such data like the ID-mask the function should either be
1) the identity, if the output format allows to store floating point ([0.0, 1.0] -> [0.0, 1.0], f(x)=x) or
2) only scale to the range of output format (e.g. [0.0, 1.0] -> [0, 255], f(x) = (int) x * 255.0).
The latter of course introduces inaccuracies due to different ranges of values, but still does what is expected.
How can this be achieved or is my understanding of color management fundamentally flawed?