If you have a properly tuned post production workflow then the amount of times you’ll recompress an intermediate video is zero or once; the most common case is recompressing assets like intros, bumpers, motion graphics, and others once they make their way into a final program.
I wanted to do an informal test between Avid DNxHD, Apple ProRes HQ, and GoPro Cineform to see how they stacked up through 5 rounds of recompression. To illustrate the differences, I took my original test video into Adobe Photoshop, added the compressed video to the layer above, set the compressed video layer’s blend mode to difference, and applied an exposure adjustment layer with gamma correction set to 2.0 to more clearly see the differences. This comparison should casually highlight the generation loss inherent in each format.
Recorded by the Canon 5DmkIII, h.264 all-I 1080p29.97. This was recorded for NBC as part of a web clip around the time of the 2012 Olympics.
First up is Avid DNxHD 175 8-bit. These were encoded by Adobe Media Encoder to the MOV container using Avid’s official Quicktime codec. If you ever wondered what the number in each DNxHD preset means, it’s the bitrate in megabits per second. 175 was chosen because it is similar to ProRes HQ’s bitrate of ~180Mbps. Below is the normal screenshot followed by a difference comparison to the original frame. You’ll see, quite easily, substantial blocking artifacts in both screenshots.
Terence Curren of Burbank, CA based Alpha Dogs aptly pointed out a flaw in that I was comparing an 8-bit format to ProRes HQ and GoPro Cineform which are 10-bit formats. Below are screenshots of Avid DNxHD 175x 10-bit produced by Adobe Media Encoder for a more fair comparison. As you can see, blocky artifacts are still pronounced.
FFMPEG/FFMBC’s DNxHD 175 8-bit profile is processed through the command-line program FFMBC. Surprisingly, FFMPEG/FFMBC’s implementation of DNxHD produces less compression artifacts overall and less blocking artifacts. FFMPEG/FFMBC’s encoder, at time of writing, only supports 8-bit color.
This sample is from the official Apple ProRes codec controlled by Adobe Media Encoder on Mac OSX. You’ll see substantially less blocking artifacts in detailed areas in comparison to Avid DNxHD with some subtle blocking in areas of low detail.
This sample is from FFMPEG/FFMBC’s ProRes HQ profile processed through the command-line program FFMBC. Similar to Apple’s official codec, FFMPEG/FFMBC adds more compression artifacts overall but produces less blocking in areas of low detail.
Last, but not least, is a sample of GoPro’s Cineform codec processed through Adobe Media Encoder. The one odd thing about this implementation is that there are no controls to set bitrate. The calculate bitrate is ~235Mbps which makes this a less fair comparison; it puts Cineform closer to Apple ProRes4444 and Avid DNxHD 220. With that said, I am still including it for comparison as it appears to have more compression artifacts overall, but suffers less from blocking than the other intermediate formats.
Again, I have to stress that the difference screenshots are brightened for better viewing and are not as severe as they initially appear. Almost all of these intermediate formats hold a decent amount of detail throughout rounds of recompression with the only, surprisingly, stand out failure being Avid’s implementation of their own DNxHD codec because of severe visible blocking. Apple’s official ProRes codec seems to perform the best in terms of introducing the least amount of artifacts after 5 generations.
So what exactly is the take away if you won’t see this level of compression “in the wild”? It seems that Avid’s DNxHD either has more aggressive compression or pre filtering/blurring than the other codecs which may lead it to being less suitable for a greenscreen intermediate than ProRes or Cineform. Cineform may be sacrificing color fidelity to keep sharpness and edge detail; because of its uncontrollable bitrate it may be a hard 1:1 comparison. ProRes may be striking some kind of balance between overall fidelity and sharpness. Different design philosophies from each codec.