Why I never render PNG
Вставка
- Опубліковано 19 бер 2024
- 🔽 The full playlist: Master Optimization in Blender 🔽
• Master Optimization in...
The article that sparked the video 👉 skientia.co/cgi/image-formats...
Downloadable image of the decision tree 👉 1drv.ms/i/s!AuLCSE-VGaTGgY0hf... - Фільми й анімація
A few amendments to the video. Thanks commenters for pointing this out.
1. The PNG/EXR difference comparison does not show only compression. It shows every difference between the two.
2. Often, TIFF is the preferred deliverable for print.
3. Cryptomattes ought not be lossy. Use ZIP 32-bit.
4. Bit-depth doesn't only double the amount of data; it does so for each channel. So an RGB image with double bit depth increases six-fold in precision, while only doubling in data. Good trade-off.
5. DWAA doesn't store 32-bit information, which is why the sizes are the same in the chart. (Unless the passes are named in a specific way.)
6. EXR doesn't bake in the tone-mapping. If you need that, TIFF is a good alternative to PNG.
When you say EXR doesn't bake the tone-mapping are you referring to the color transform? I don't have an AGX color transform option in Krita, so baking that in to png is the only way
@graphikeye You can use TIFF too, as it bakes transforms and its 32bit. If You still wanna use EXR, You can use build-in Krita's OpenColorIO library and set path for Blender LUTs configs, it will let You use the same configs, but only for View transform(AgX/Filmic), not Look.
For more info check out Krita docs -- Color Managed Workflow part, they mention Blender interaction here.
#4 is just... wrong!
8 bit depth = 8(r) + 8(g) + 8(b) = 24 bpp (bits per pixel)
16 bit depth = 16(r) + 16(g) + 16(b) = 48 bpp
32 bit depth = 32(r) + 32(g) + 32(b) = 96 bpp
Doubling the bit depth still only doubles the data.
@@stephen-boddy Shit, you're right. What I meant is that it increases the precision six-fold. Thanks for pointing it out. There's a lot of places to stumble on this topic.
My only problem with EXR is that there's no accurate color configuration for it in Premiere Pro, especially for Agx. Unless there's one that i don't know of.
Would love if you could share your knowledge on this.
I think the comparison at 5:00 is a bit misleading. PNG is lossless format so it should show the exact same pixel values if you're encoding the same data. The difference there is that EXR can store floating point values where PNG only stores integer values regardless of the bit depth hence the massive difference in the sky and highlights.
This makes sense in the context of rendering but there are scenarios where you don't need the data to be HDR (when creating textures typically) it would be interesting to compare how EXR and PNG compare in that scenario
Honestly, you're right on the money. It was a bit of an unfair comparison in a few ways, and I wish in hindsight that I'd shown a bit more nuance. As you say, the argument doesn't necessarily hold regarding textures. Thanks for the thoughtful comment.
@@robinsquaresW for hindsight
When you dragged that PNG in it was quite visibly darker. That looked like it was in the wrong color space to me.
@@kzone272 that's a common display error with PNG when shown in things like a browser but I find it you open it with photopea it displays correctly, as it does when loaded into a project as an asset
@@kzone272I believe that's simply due to the display transform, like how rec709 is gamma 2.2 and srgb is gamma 2.4, the EXR is also a "HDR" image, so most applications will choose to display it in HDR if your monitor supports it, I may be wrong though
Great explanation! But, regarding deliverables, one should always talk to the client, or in my case, check with the printer first. The printer told me that he prefers 16 bit TIFFs for best quality. The test prints for my upcoming exhibition are looking gorgeous, btw. 😎
Oh, absolutely. Honestly, I just forgot to mention print. It's such a small part of my work these days. I'll pin your comment.
Save it as tiff at the end. Rendering tiffs will just fill your drive.
@@jhalanddesign I usually go EXR and export what I need in post.
@@robinsquaresWheres the Pin LUL
I was thinking something similar with TIFFs. I switched over a few months ago and I've noticed a nice quality bump with some of my renders since.
0:55 is misleading. Bit depth refers to the precision with which the SAME image/video is stored. Storing values beyond "white" has nothing to do with the number of bits. You can do that in 8 bits or any number of bits.
Also, saying that 8, 16 and 32 bits "double" the amount of data is strange since we are talking about precision. A 16bit PNG has 256 times more possible values per channel than 8bit. It's not just 2x as precise. This explains much better why 16bit is fine in almost all cases - and why some industries work with 10 or 12 bits - because 16 or 32 bit is unnecessarily precise.
3:20 He confuses HDR with lossless. PNG is lossless meaning an encoded image can be decoded into the exact same data. He actually means HDR again (storing values beyond white). But PNGs are also often used for that.
5:00 For whatever reason he is comparing a HDR file with a non-HDR file. Even if he thinks these files store the same data, the comparison doesn't make sense since two lossless files with the same precision obviously should contain identical pixel values - assuming you encode and decode the data correctly. Strange "proofs".
you are awesome
So is that what he says completely wrong, or are his arguments still valid?
@@sebastiengorecki4254 im wondering the same
I find this comment more valid than the entire video!
@@sebastiengorecki4254 I would lean towards "wrong".
Your comparison between the EXR and PNG isn't showing the difference in compression quality. PNG exports with SDR tonemapping, whereas EXR export are linear unclipped HDR data. This means you will see a big difference in the brighter areas, which are squashed down when doing SDR tonemapping. You should have exported the PNG with linear tonemapping and clipped the EXR to a max of 1.0 to get a perfect comparison.
You're absolutely right. That would've been a more fair comparison. But the HDR/SDR difference is one that I feel is relevant and that I wanted to show. But you're right; it definitely doesn't show compression alone. I wouldn't say that breaks the core argument though.
Linearly encoded PNG is still integer and "SDR". Unusable regardless of the encoding, not to mention its inapt "alpha" encoding.
Very much appriciate your effort. The whole series is a must See and very well done.
Learning about DWAA EXRs a few years ago blew my mind. Why this didn't become the gold standard for decently compressed high quality outputs IMMEDIATELY is just mind boggling to me. We've had this format for so long and it's been practically ignored for like half its existence.
Amazingly well laid out, thank you. I have been using .png since my photography days, so this is a game changer for me!
I find it very amusing that the slide about bit-depth had the gradient all stepped to bits both literal and figurative 😂
the video that i needed years ago, but i'm glad it's here now
great work!
Absolutely amazing video, great source for the video, and just a great explanation!
Watched your other videos, I really love how you explain things and very easy to understand.
As a consumer of a lot of online renders, I've learned that some image sharing websites will do extra compression of JPGs. That's why people "accuse" JPG of being low quality, because like it or not, a lot of places will take the opportunity to compress it "a little bit", which when the image is reshared, websites will compress it "a little bit" again. That's why terms like "Needs more JPEG" exists. Trying to do the same thing with PNG would only make the PNG load slower, but no quality reduction (though nowadays some sites seem to convert to JPG anyway). Additionally, I have one friend who does 2D art and was told to render in JPG "due to its lower quality" to try to sell the "full, proper quality" elsewhere like a patron subscription service. It's much harder to deliver a low-quality PNG than a JPG.
That was incredibly informative 😮
The reason jpeg is smaller is because you loose a lot of information about the Hue even if your setting is acceptable for your eyes that are better at detecting contrasts. If you do professional work please use png as it correctly stores the result of your render, jpeg does not and it would show as soon as you start doing color corections. For your delivery still use png as it's the most accurate output you can give too. If you don't know if you need lossless, you do. Always. As for the test shown with the difference layer on a png, what it was is the color space change. If someone needs a smaller size he can always convert the images. If the goal is to convert the images to video at some point you would have double compression on jpg. Stick to 16bit png for work and delivering with 8bit png is fine.
Thank you for the explanation❤
I've learned a few things... Great episode!
amazing video as always
Amazing video exactly what i needed for an upcoming project :)))
Fantastic vid. Ive always used png, now i know better. Greetings from Ecuador, you've earned a sub!
That's basically a entire lesson on rendering. Nice video !
It's hard to find channels that provide actual information these days. I get why clickbait-y titles are needed but most of the popular Blender youtubers are just pumping videos filled with memes that give little to no info about the topic they are supposed to be on. So it was refreshing to see a video that provides knowledge. Great video!
Fantastic work ❤
Great series appreciate it learn a lot :)
👍🏻 Great! Informative! And all in a nutshell.
Thank you very much!
very interesting, thank you!
What a great video!
Which would be best to use as an overlay in video editing? I used to use Tiff image files, but it had its problems with giving me a white edge, so I switched over to PNG (ping) images and the white edge issue was gone!
The bg music is so soothing 😌
excellent! 🧡
DUDE! i have 10 years of blender experience so i didn't learn anything new (except that win+ctrl+shift+B which blew my mind lol), but i still watched every video in this series because the explanation quality was SO high and enjoyable. i'll pass the link to this playlist to all of my students! thanks for you hard work, the community is getting so filled by literally noobs teaching everybody how to do stuff that people like you are a much needed breath of fresh hair!
Thank you so much. Comments like this make my day.
I used to hate and avoid exr files because of the ridiculously large file size. Thanks so much for this tip!
Thank you sir!!!
Wow that was amazing!! Seems like small information but huge for the quality and space!! Thank you man, you saved my life!!
Thanks for sharing! I didn't know about the difference between JPG and PNG regarding (with/without) transparency. I did learn about DWAA codec, but probably didn't need 32 bit for my short 😅 good visual charts too.
Great Video!!
Awesome series man!
Robin Squares: "Why I never render PNG"
Also Robin Squares: "For deliverables I do PNG..."
Oh if only modern formats like .webp and .jxl were more adopted.
Awesome stuff, please, does this apply when rendering an image sequence for a video? I've always used png, and most times the "alpha" is not necessary. Can i use jpeg at 90% quality instead?
This video is incredible and is going to save me so much space it isn't even funny. 🙏🙏🙏
Anyone know how to work with EXR DWAA and After Efffects? I gave up with trying to match the colors of exported files to blender color settings.
Good video, but comparing zoomed in JPEG and PNG should have been done without interpolation, as that defeats the purpose of the comparison.
Great series, and this is the best episode!
How insightful and informative! Thank you for making this video! Will look at the whole series!
Appreciate your work! One more thing, Do you think there's no such differences on saving time? I often do render animations which get me to render over 2,000-3,000 frames. Heard TIFF and EXR format save faster than PNG though. What's your thought about saving time for EXR (DWAA, 16 bit)?
You're right, EXR both saves and loads faster than PNG does. Compressing and de-compressing a file takes time, and EXR does that much more cleverly. Although bigger files can sometimes load slowly if they're on a slow hard-drive.
I did some quick preliminary tests on loading time (which I assume are comparable to saving time,) and it seemed to depend much more on bit-depth than file type. Which makes sense.
Can't tell you much more than that.
Pleeease, tell me what is that music playing on the background ?
most sophisticated clickbait title ever 👑
What color space are you using (agx, standard etc.) on render, and how do you set it up in davinci? There are tons of tuts about color managment but they all cover ACES
For everything photoreal, I work in AgX with a display transform that suits the scene (I typically leave it at the middle contrast level,) and export in AgX log. In Resolve, I've converted the AgX OCIO to LUTs, which I haven't had any accuracy problems with. Sometimes, I use the AgX OCIO directly in Fusion.
But the charts in my videos are typically sRGB, standard tonemapping, to retain my brand colors.
@@robinsquares Thanks for reply. You may consider making tutorial on that topic, that would be great.
One issue I've experienced with using exr is that when it's saved in blender, it usually doesn't look like the png file when loaded into a photo manipulation program like krita. This is usually cos of the color management (AGX or Filmic)
Damn dude, insta subscribe, howcome I haven't found you sooner. Known about this, been using EXR. I am only a hobby artist. But your explanation is clear and your video was so pleasant to watch I had to stop on 2 minute mark and make sure I subscribe.
yes but what about the workflow, preview, editing, and so on. EXR boggled my head and i just switched to jpeg instead.
Do you have an upcoming video on working with EXR?
Amazing
Thank you! It was informative and of course fun. That comparison between PNG and DXR was a bit unfair since you know that gamma curve is probably different or something.. but again, thanks!
seeing the comparisons between PNG and JPEG, I feel like an idiot looking at my folders of PNG sequences that take up multiple gigabytes lol
In the comparison i think we compared 32 bit EXR file with 16 bit PNG file. This can be a reason for the difference in quality.
Btw great video, learned something new.
this is great for still images, but when i want to import an animation i am not using exr because the image doesnt look the same. I need to transform the colours with a special LUT for Agx, but i havent found one yet that correctly transforms the colours
What a great video. Literally, i've been using png for the last 8 years without knowing the real difference. Thanks.
Honestly, when I was working with 3ds max and vray I always exported exr 32bpc but now I'm using blender an I'm more than happy with the default filmic blender tone mapping 😄 it saves me a lot of time. Now I just save it as a PNG 16bpc, do slight color adjustments and it's done for my use case ✨
Awesome
Thank you
How can I solve the linear problem? When I import the EXR into PHOTOSHOP, several colors are modified and it becomes more saturated and bright
thank you
Is it true that exr doesn't have filmic or agx color space like jpeg and png?
I was Blown away!
I hope someone can answer this but if I want to color grade my render in davinci should I go for 32bit exr or is it not worth it? For context I do vfx for some medium sized brands.
That is the industry standard, yes. However, you'll find that you don't need 32-bit for grading. Many movie cameras deliver 12-bit.
Thanks
THANK YOUUUUUUUUUU!
Holy shit. Useful content ahoy
Thank you for the video. Could you make a video explaining the mechanism of packing various images into one exr file? Please.
If you look real close, the whole process is shown in the video. Compositor file output.
Most the time i want a file that is easy to share and can be edited later. Storage is cheap so 16 bit png is usually fine. If i need hdr then i look at exr.
Great video, easy to follow, and translates well across a huge range of software! Have a subscribe kind sir
i like this very much
thank you. I have been saying this for years, but because png is significantly slower to write than other formats due to the compression. So much so that I have had cases where it took longer to write the frame to disk, than to render it in the first place.
Came for the knowledge and stayed for the soothing background music. Thanks for sharing this with us!
Cool to see we don't need TIFF files anymore.
As a photographer I have found first hand that there are images and situations that can’t be properly displayed using a 100% quality jpeg. It is simply not possible in extreme situations to have smooth gradients.
So if you are working in a colorful project I recommend you to test it in some situations.
Also, a lot of screens nowadays are 10 bit. All HDR screens are 10 bit, they have to be. But if your image is not in HDR (does blender even support that?) it might not matter.
10 bit would probably solve the Joe’s banding problem, but jpegs don’t support 10 bit.
EDIT: As others pointed out in other comments, EXR seems to support HDR andin this video HDR seems to be confused with lossless.
Hey, thanks for the In-Depth Video. Love to see more professional knowledge getting to the Blender Community.
You could have added that there is a difference between 16 bit EXR and 16 Bit png. 16bit exr is "half" float meaning that you get 32bit float values where negative colors (lower that 0) or overbrights (brighter that 255 or 1) while having half the precision. 16 bit png and tiffs only have integers values so you dont have negatives or overbrights.
In regards to png vs jpg, png gets smaller file sizes whith the amount of color represent. so a 10k image with only black and white and no greys should be much smaller than the corresponding jpg.
Kepp up the good work :)
Excelent
So when working in Photoshop, how does exr compare to other formats like native psd, tiff, pdf, and basically all the other formats?
It's a disaster
I think it's workable with the EXRIO plugin (free.) But there are better alternatives than Photoshop.
@@robinsquares I use a M1 Mac at home and Mac OS at work so I'm going to need something that isn't Windows exe exclusive
I can recommend Affinity Photo for stills and DaVinci Resolve for video. (Actually, I grade still with Resolve too. The tools are just amazing.) But if you're stuck with Adobe, I get it. My heart goes out to you.@@MStrong95
@@robinsquares Unstucking "yourself" is the ultimate solution.
Fusion Standalone is not only worth it (as much as Nuke) but severely overlooked. Compositing programs are AE + PS + Resolve all at once and few people realize it.
Thanks for the video! It’s really hard to find storage for png renders but I can’t figure out how to make EXR look the same with AGX color Blender viewport render. I send it to AE and use opencolorIO but it’s not the same with png renders no matter what I do. Can you make a video about this topic?
Time to bring in WEBP!I know some devs are already working on using it in their addons to minimize RAM usage. Next, there must be an addon that automatically converts and relinks all my assets 😂
JPEG can't do very slow gradients because there is quantization in YCbCr domain, which is only removed with the new JpegLi codec which no software has. You can see a similar effect in the video encoding on the chart scenes here. They show a grey ellipse with blocky borders instead of a smooth blob. Lossless EXR compression is better/faster than PNG. But it's a very complex format and only pro tools support it fully.
Making this video right when I need it gets a like. Also I appreciate not having to see Windows. (I'm aware it's most likely what you use, since Photoshop and all, but as long as I don't have to see it, I'm good.)
Thanks, I had no idea that EXR existed but my file size is way smaller now!
Thank you! I'll use this as a guide from now on.
All this time my only rule is that: There's no point using .PNG if it's not indexed.
My blending is so god damn optimized right now, you have no idea
And yet your mouth is a sewer, so I don't think your 'blending' matters much at all. It is 3D art, and AI will soon destroy many of the jobs.
"oh i get it... well i guess EXR is only useful if you actually work professionally as aaaaAAAAAAAA DWAA DOES W H A T ! ?"
such a good series dude!
My only problem with EXR is that if you change the render to "high contrast" in the color management settings, EXR renders will render out with no contrast settings applied. Does anyone know a workaround for this?
Is there a different way to make a rgba video other than using quicktime with png codes set to rgba? Would be nice to crush the filesize of those clips that are like 1gb for 15s
I would tell you if I knew. Honestly, I don't have enough experience with that.
As a pointer, one could refer to the DaVinci Resolve Export section of the latest documentation/manual, as the UA-cam comment area isn't the most practical place for detailed or in-depth technical answers.
h265 / HVEC can support alpha channels or vp9 .webm but may not be supported by all media players. You'd need to render PNG first and then convert
non-HDR formats typically use a color space that applies a gamma function to squeeze more important color data along the bit depth. Thats why you see the colors change doing a diff check on the EXR vs PNG (lossless). DDWA and JPG compressions are very destructive even if you don't think you can see anything change. Also PNG uses zip compression per scan line, so at a point it doesn't matter how high you crank the quality slider, the compression will have a diminishing return on size and will impact load times. I personally don't see why anyone in this day in age would not use lossless, even if your image was horribly compressed blender still unpacks that image in full in memory. maybe you save a bit of time on loading time? but use a NMVe and you'll get 7GB/s transfer speeds and be laughing when your 5GB blend file loads in one second
what about the other exr compression files? pxr24? dwab? piz? and do they affect the depth?... also nice video , i always render png and dwaa.
Edit: i mean by depth as z depth
There are some small differences between them all, but they all get the job done. I didn't want to get into the details in the video, but here's a summary.
PIZ is best for grainy images
PXR24 changes the bit depth, which can really help with size, but is slightly more confusing to work with
B44 isn't adaptive, so you get more predictable image sizes
There's little to prefer DWAA over DWAB. They compress differently sized blocks of data.
They should all handle Z-depth the same.
@@robinsquaresthanks.. i always wanted to know the difference
Hey, great video! I would really love to get some downloadable graphics i can reference later
Thanks! Is there a way to check my channel's community posts? I've posted the flowchart there. I'll see if I can link it in the description.
(edit: Here's a download for you 1drv.ms/i/s!AuLCSE-VGaTGgY0hfb0SI6w9ijT1dw?e=5gYyTh)
@@robinsquaresthank you! It's really great seeing a channel like yours rising like it should, I hope you continue the great work!
My problem with EXR is that the export is in completely different contrast and colors than what the vieweport shows me. I understand that EXR carries a greater depth of color but honestly, I don't have the time and I'm tired of having to adjust contrast and complexly recolor every export.
Can you please drop a 15 minute long tutorial on texture projection? In blender 4.0
I want to know usability, plus movie workflow. Because everytime I have used EXR outside of HDRis for Unity, it has been a nightmare to work with.
you should also test these against WebP since Google (creator of WebP) claims even smaller file sizes and less noticeable artifacts then JPEG.
And AVIF as well.
Is there any difference with TIFF and PNG?
I like dark gradient backgrounds but you must know the atrocity UA-cam compression does to it, it very distracting. Anyway, great video!
Would it be better if it were white?
I guess a solid dark background would be just fine in these cases. I like dark gradients but when they are this subtle they are just banded into blobs when compressed.
@@lpcamargo I used a solid color for all the backgrounds, so I guess that's still a problem. I've heard that you can get a better bitrate in 4K?