Site icon ProVideo Coalition

Fight of the File Formats! PNGs or EXRs?

Fight of the File Formats! PNGs or EXRs? 12

Are some file formats faster than others? There are many different image file formats out there, and they all have different features. But when you queue up your composition to render and choose a Prores or MP4, or a TIFF or a JPG, the last thing you’re probably thinking about is if rendering one format is faster than another…

But the performance differences between the various formats are quite significant, and not something that should be ignored. Take a second to think about hardware upgrades. If your render takes 15 minutes, how much would you spend to make it take 10 minutes, or 5 minutes? If you can get a 15 minutes render down to only 90 seconds, then you’ve made it 10 x faster. That’s a pretty big improvement, and would represent several generations of hardware and potentially thousands of dollars.

But what if you can get the same increase in performance just by choosing a different file format? For free, right now, with no new hardware?

If you’re using PNG files, then you can. All you have to do is stop using them.

The video has all the details, but here’s the summary.

A few years ago I wrote an extensive series on After Effects & Performance, which spans 18 articles and about 100,000 words.  As part of that series, I tried benchmarking various file formats to see if there was much of a performance difference between them. To my surprise, I discovered that PNG files are really, astonishingly slow. Much slower than any other file format.

In one test, the PNG render was over 20 times slower than other formats such as JPEG, TIFF and Prores. While I wrote about the results in Part 14 of the Performance series, the incredible slowness was so unexpected that I wondered if it was a bug. But apparently not.

After Effects & Performance is an 18-part, 100,000 word series on everything that After Effects does… check it out!

It was so surprising that I always intended to re-check the results again, which is what I’ve done here. These are simple benchmarks that only test the speed differences of the various file formats themselves – there’s no other image processing or effects rendering going on.

The test renders were only 50 frames long, but that was still enough to demonstrate clear differences in rendering times between the various formats. Although I also tested rendering at various bit depths, there was hardly any performance difference here.  This was surprising to me, but also good to know. While plugins and other image processing can be slower when working in 16 or 32 bit modes, it’s nice to know that file formats themselves don’t seemed affected.

Benchmarking properly is hard, but also very tedious. Some of the render times here vary by only 1 or 2 seconds. If I’d run the same tests multiple times and averaged the results, I’m pretty sure those differences would disappear. It’s not unusual to try rendering the same thing many times and have the times vary by a second or two.

But the difference between 15 minutes and 2 minutes?  That’s not going to disappear.

Are we the bad guys?

This older article from 2018 includes details of a former bug that made some types of EXR files slow. But it’s old news! They work great now…

One of the motivations for testing different file formats is the persistent notion that EXR files are slow, or at least extra slow in After Effects.  This is also something that I have written about extensively, first in 2018 and more recently when I looked at the DWA compression type.

Up until 2019, there was some truth to this rumor. There was a bug in the way that After Effects dealt with some types of EXR files, which made them very slow. The bug only affected multi-channel EXRs, and only once they got to a certain file size, so a small EXR file with only RGBA channels would be fine. This is probably why it took so long for the bug to be discovered. For After Effects 2018 and 2019, you could manually install an updated version of the EXR plugin to work around the bug, and then Adobe completely overhauled EXR support with the release of After Effects 2020.

This is a pretty important thing to understand.

EXR support in After Effects was completely overhauled more than three years ago, and any suggestion that EXRs are slow is now simply wrong.

The EXR file format was developed by Industrial Light & Magic specifically for digital visual fx, and it remains the industry standard file format for vfx and high-end post production. Anyone working with HDR images, or with 32bit floating point projects in After Effects should be using EXR files.  It’s a no-brainer.

Really, the question is why would you use PNG files? There’s a word for anyone who suggests you should use a PNG file and that word is “wrong”.

If you want to render to an 8 bit image sequence with an alpha channel, at least use TIFFs.  You can choose to use LZW compression to keep the file size down and they’re massively faster than PNGs. Without LZW compression, they’re even faster but the file sizes will be much larger.

So the lesson is simple:

Don’t use PNGs!

EXR files are my default setting. You can read more about why right here…

The EXR format actually offers several different types of image compression, including zip. My own preference is to use the DWA algorithm, which I write about here. Maybe I’ll try some more benchmarks specifically looking at EXR compression in the future…

There are lots of graphs in the video above, and to save you trying to hit the pause button at the right time, I’ve included most of them below.

Bear in mind that these are relatively short renders – 50 frames only – and as mentioned above, variations of 1 or 2 seconds are pretty normal. But not 800 seconds. That’s not normal.

 

Anyway I’ve been writing After Effects articles and tutorials for over 20 years, so please take the time to check out my other articles.

Exit mobile version