Generations, a problem or not?

Generations, a problem or not?
time: 1:00, generation 1 vs original

When grading I sometimes get the whole film as one clip which I then split up in pieces, but I always ask my clients if they can provide me with the original files so I can conform from them. The reason is that I want to work with the best quality possible.

But does rendering a new version decrease the quality of the image or not? I decided to investigate it using the following clip.


Creating generations

So what happens to the image when it gets re-encoded over and over again?

I chose to use a Prores 4444 file from an Alexa. And since all software I am using can render Prores 4444, using the same codec in and out should keep the quality loss to a minimum.

The programs I used to do this test are:

  • Apple Final Cut Pro 7
  • Adobe Premiere CS6 and After Effects CS6
  • Autodesk Smoke 2013
  • Avid Media Composer 6
  • DaVinci Resolve

I imported the same clip into all programs, then put the clip on the timeline and exported the timeline.
To create several generations I imported the rendered clip and did the same procedure over and over again.

To analyse the result I used both my eyes and Adobe After Effects. In After Effects I pulled a difference key between the clips and as a result I got a black and white matte, where the white pixels represent the pixels that did change.

I took a sample at the first frame and after 1 second. Here are the results. You can click on the images to see the full resolution.

After Effects

I started to do my tests using After Effects set to 16bit. And was I surprised when I saw the result. I didn’t expect to see so many white (changed) pixels.

Aftereffects_0-v1-original
time: 0:00, original vs generation 1

At 1:00 it even looked worse. Here I also could see some kind of blocking artifacts.

time: 1:00, generation 1 vs original
time: 1:00, original vs generation 1

So what happens when comparing generation 2 with generation 1.

time: 0:00, generation 1 vs generation 2
time: 0:00, generation 1 vs generation 2
time: 1:00, generation 1 vs generation 2
time: 1:00, generation 1 vs generation 2

As you can see there is a lot less white which means that the quality loss is a lot less from the first to second generation.

Premiere

Well let’s see how this Adobe program handles the same clip.

time: 0:00, original vs generation 1
time: 0:00, original vs generation 1
time: 1:00, original vs generation 1
time: 1:00, original vs generation 1

This looks pretty much the same as After Effects (even when it feels like it’s a bit more white pixels in this version), so I guess they use the same encoder and decoder. What about the second generation?

time: 0:00, generation 1 vs generation 2
time: 0:00, generation 1 vs generation 2
time: 1:00, generation 1 vs generation 2
time: 1:00, generation 1 vs generation 2

Even this looks very similar to After Effects, but also here it feels like there are more white pixels then in After Effects.

Final Cut Pro 7

So for my next test I used Final Cut, the mother of Prores. If someone knows how to encode and decode Prores it should be Apple.

FCP

I did all 4 tests and all images turned out the same, no generation loss when rendering out the timeline with “same as source”. I tried 10 generations and got the same result. I even tried to start the export 5 frames later just to see if that could change the way the file was encoded, still the same result. This sounds to good to be true. The reason is the “Recompress All Frames” option that was turned off. When it’s off the data is copied and not recompressed. So what happens when we turn it on.

recompress

time: 0:00, original vs generation 1
time: 0:00, original vs generation 1
FCPrecompress_1-original-v1
time: 1:00, original vs generation 1

Now we see that the same kind of problem occurs, but with a much better result then the Adobe version. So what about the second generation.

time: 0:00, generation 1 vs generation 2
time: 0:00, generation 1 vs generation 2
time: 1:00, generation 1 vs generation 2
time: 1:00, generation 1 vs generation 2

At 0:00 there are a few pixels that changed but at 1:00 it looks like there is no loss at all.

Media Composer

To complete the list of editors I tested Avid Media Composer and got the following result.

time: 0:00, original vs generation 2
time: 0:00, original vs generation 1
time: 1:00, original vs generation 2
time: 1:00, original vs generation 1

This look pretty much like the results I got with the Adobe software.

time: 0:00, generation 1 vs generation 2
time: 0:00, generation 1 vs generation 2
time: 1:00, generation 1 vs generation 2
time: 1:00, generation 1 vs generation 2

DaVinci Resolve

Now let’s see what Resolve does to the same images.

time: 0:00, original vs generation 1
time: 0:00, original vs generation 1

This looks like there is very little loss, but i at 1:00 the result is not as good, but still much better then the Adobe and Avid versions and similar to the Final Cut – recompress version.

time: 1:00, original vs generation 1
time: 1:00, original vs generation 1

So what about the second generation?

generation 1 vs generation 2
generation 1 vs generation 2

It looks like there is no loss at all, neither at 0:00 or 1:00. I guess this means that once Resolve encoded the file the decoder can recreate the same result, which is good, but why does it loose quality in the first decode? I don’t know.

Smoke

The last program I used for this test is Smoke.

time: 0:00, original vs generation 1
time: 0:00, original vs generation 1
time: 1:00, original vs generation 1
time: 1:00, original vs generation 1

This looks a lot like the Resolve version.

generation 1 vs generation 2
generation 1 vs generation 2

And even here I get the same result as with Resolve, no loss at all.

Result

This test has been very mathematical, but do I SEE a difference after 1 generation?

Well if I zoom in and take a look I see the pixels change, but when I look at it in 100% I can hardly tell the difference.

What concerns me the most is that both (Avid/Adobe) and (FCP/Smoke/Resolve) change so much in the first generation. So if you need to create a generation use something like DPX or TIFF sequences to keep the best quality possible. (Yes, I tested that as well and there was no generation loss)

A question I am asking myself is why only Apple can create loss-less generations? Why don’t the other programs offer an option to not Recompress all frames like Final Cut does?

no-recompress

© 2013 Nikolai Waldman

Leave a Reply