1
$\begingroup$

I use the compositor to save my renders into files with the "File Output" node. I want to have the smallest file size while preserving all information. I use PNG file format with the highest compression ratio, i.e. 100%.

My problem comes from the output file size. It seems that the compression ratio in the "File Output" node is not the same as the one when manually saving the image with the Image Editor (Image Editor > Image > Save As...).

Here are the figures with the default Cube rendering.

File Output node in compositor :

  • PNG 0% : 8.3 MB
  • PNG 15% : 1.0 MB
  • PNG 100% : 610 KB

Manual saving via Image Editor :

  • PNG 0% : 8.3 MB
  • PNG 15% : 75 KB
  • PNG 100% : 38 KB

So for the same level of compression, I have different image size.

Maybe I miss something. Can anyone help ? Thanks.

Blender version : official 2.82 on Linux.

Screenshot of my compositor node settings :

Screenshot_compositor_node_settings

File browser with file sizes :

Screenshot_file_browser

All files look the same (resized below) :

DefaultCubeRender

$\endgroup$
  • 1
    $\begingroup$ I can't reproduce this issue on my system, both have manually saved images and the ones from the file output node have the same size. The compression ratios you're reporting from the Image Editor don't seem right, even for when your only save a black and white version. $\endgroup$ – Robert Gützkow Feb 20 '20 at 13:42
  • $\begingroup$ Thank you for responding. If I understand, you say that file sizes I report from Image Editor saving are not correct. I've just check and I find the same results. I edit my post to add screenshots of my file browser showing those files and their size. And I've checked with GIMP, there is no difference between files (that's expected). $\endgroup$ – H.P Feb 20 '20 at 15:57
3
$\begingroup$

The difference comes from the dithering. This post-process is not applied on the viewer node but is applied on the render. You can find more info on dithering : https://docs.blender.org/manual/en/dev/render/output/settings.html#dithering

Dithering is a technique for blurring pixels to prevent banding that is seen in areas of gradients, where stair-stepping appears between colors

Dithering adds noise. It explains why file sizes are not the same (noise is harder to compress). Below, the first image does not have dithering and the second one does have dithering (maybe you need to zoom in to see the difference).

To get back to my initial question, the image saved with the File Output node via the Compositor has dithering and the image saved from the Viewer Node via the Image Editor does not have dithering.

I get the info from developers on ticket I opened : https://developer.blender.org/T74071

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.