XDCAM-EX vs. AVCCAM
by Barry Green

 

I recently had a chance to spend a day with one of these:




That's the AG-HMR10. It's a field HD-SDI recording unit, in the AVCCAM lineup. What that means is, it's an external recorder/playback deck, with HD-SDI input, recording to AVC-HD onto SD memory cards. Sort of like a Panasonic version of a NanoFlash, if you will.

I put it through its paces, but I wanted to give it a workout -- a real test. And, since most of the talk I hear about people wanting the NanoFlash is all about trying to improve the recording quality from their EX1 or EX3, I figured, hey, let's see what the HMR10 can do with an EX1!

So, I got an EX1 for a day, tethered it through HD-SDI to the HMR10, and set out to push things to the limit -- and beyond. Those who have read my articles before will probably recognize that I'm a codec-buster, I like to push things to the breaking point so that we at least know where the breaking point is. And in my prior testing of the EX1, I came to the conclusion that the XDCAM EX codec is really pretty solid, far far superior to HDV, but it's not perfect and it does have its limits.

But how would AVCCAM perform, compared to XDCAM-EX? The top bitrate on the HMR10 is an average of 21 megabits (peak 24), so that gives it just over half the bandwidth of XDCAM-EX -- could it compare? Especially when people talk about the NanoFlash, they're usually talking about 100, 160, or even 220 megabits per second to get better quality -- how could the low bandwidth of 21 megabits of AVC stand up to that? Would it even be as good as the stock codec? Sony makes plenty of effort to deride AVCHD as a "consumer" format, and XDCAM-EX is clearly marketed by them as a "professional" format, so how would this "consumer" format stack up against their "professional" one?

Mathematically I think it should do pretty well; the oft-stated efficiency factor is that H.264 (also known as AVC) is two to 2.5 times as efficient as MPEG-2. Meaning that AVC should be able to get equivalent quality using half to 40% of the bitrate as compared to MPEG-2. But, what doesn't get oft-quoted is that the efficiency claims are most relevant the smaller the bitrates go -- meaning, as more and more bits are thrown at the problem, the differences between the codecs will shrink. Think about it -- if you gave them each 10,000 megabits to encode a stream, they're both going to do a fantastic job, right? But it's when the going gets tough that AVC really pulls ahead. So -- Sony themselves claim that 9 megabits of AVCHD is enough to match the visual quality of 25 megabits of MPEG-2 HDV; the question I'm looking at is, how does 21 megabits of AVC stack up against 35 megabits of XDCAM-EX?


THE CONTENDERS:


XDCAM-EX

  • 1920 x 1080 full raster
  • 4:2:0 color sampling
  • long-Group of Pictures (GoP) encoding
  • 8-bit quantization
  • MPEG-2 encoding technology
  • 35 megabits/sec average data rate

AVCCAM

  • 1920 x 1080 full raster
  • 4:2:0 color sampling
  • long-Group of Pictures (GoP) encoding
  • 8-bit quantization
  • H.264 MPEG-4 Layer 10 encoding technology (recorded as AVCHD)
  • 21 megabits/sec average data rate

As you can see, they're pretty much the same across the board, the same basic specifications, with the difference being the encoding technology used. AVC is later/newer technology, a more advanced and more efficient encoder. AVC is able to squeeze more picture into the same amount of bandwidth (think of it as miles per gallon in a car; MPEG-2 might get 20 miles per gallon, AVC gets about 45 miles per gallon in comparison).

One of the major differences between how AVC works, versus MPEG-2, is in the block sizes that they use. MPEG-2 uses 8x8-pixel blocks, breaking the entire picture up into 8x8-pixel areas. When things are going smooth, you'll never know they're there, but when things get really hairy in the compression, you'll see that blocky texture appear; you may have noticed this effect on HDTV programming or youtube/vimeo when net congestion hits; the image can start turning blocky. Where MPEG-2 uses a fixed 8x8 block size, AVC can vary its block size, using as small as 2x2 pixel blocks. Because of this, AVC can have a lot smoother degradation of the image; it won't turn to discrete digital blocks, and the result is usually a more organic/natural looking image, rather than a blocky digital-looking image. This is a key factor in what I was looking for: if I could get the EX1 to go blocky, what would happen to the AVCCAM?

So, armed with an EX1 and an HMR10 and an SxS card, I set out to see if I could break some codecs. I put the camera in the most compromising, challenging situations I could think of -- billowing banners against a backdrop of highly detailed trees and bushes, with the wind blowing, handheld. Driving and panning past fields of reeds and pine trees with their billions of needles and individual reeds all blowing in the wind. Snap zooms onto flags with a tree background. Handheld shots of a palm tree as 45-mph traffic zoomed through the frame. Rotating, spinning, bouncing, whatever I could do to challenge the codecs as hard as I could. I also pushed them to the limit by using 1080/60i mode (interlaced is much harder on a codec than progressive encoding is). I also boosted up the in-camera sharpness, because that really makes codecs unhappy!

The great thing about this is, because the AVCCAM recorder was taking the uncompressed 4:2:2 HD-SDI feed off the EX1, and also recording to its internal SxS memory card, it meant that I had absolutely pixel-for-pixel identical frames going to both codecs. No complications from trying to match two cameras here, and there were no other factors to consider -- both codecs were being fed the identical same image from the same camera head. So I made sure to snap my fingers at the beginning of each take to create a "sync mark", and then I could line all the footage up in the NLE and see exactly what the differences were, frame by frame. Any differences would be purely attributable to the codec and nothing else.

I then sifted through the footage, and found that by and large, most of it looked pretty much the same. As I said before, XDCAM-EX is a reasonably robust codec and it handles most situations pretty well. Through most of the scenes, there wasn't much of a difference between both codecs (except, of course, for AVCCAM taking up around half the space to do the same job, a not-insubstantial consideration). I toggled back and forth and saw that while there were minor differences here and there, for the most part there wasn't much to show them as being all that different, and they both looked very good.

But every once in a while, I struck gold (er, meaning, I pushed the codec so hard it shattered into a mess of blocky pixels!) Sometimes I pushed the camera so hard the codec would break down. Those were the moments I was looking for. And I'm surprised to say -- in those cases, AVCCAM mopped the floor with XDCAM EX. XDCAM went mega-blocky, but AVCCAM stayed smooth, even when it lost detail. In every case that I examined, every single time, the AVCCAM looked better. Its "more organic" degradation isn't a myth or marketing speak, it's for real. And, the MPEG-2 nature of XDCAM caused some frequent spurious pixels popping up all over the image when it was too stressed, but AVCCAM kept it together much more efficiently.

So -- conclusions? Easy -- AVCCAM's 21mbps PH mode is a clearly superior codec over XDCAM EX. No question, no argument, no doubt. While XDCAM kept up with AVCCAM in almost all the testing, it took nearly 70% more space to do it. And then there were the codec-stress times when AVCCAM was just significantly superior. Any way you slice it, the recorded image of the AVCCAM was as good or better, on cheaper media, in much smaller file sizes for easier archiving and storage (and not to mention the metadata that you can use in AVCCAM, helpful in locating your archived clips).

All long-GoP codecs are not created equal (even within the h.264 family!) but AVCCAM's PH mode is more than a match for XDCAM EX, and records on commodity memory, and takes up less space. After filling the XDCAM's 8GB SxS card I had, the AVCCAM's 8GB SD memory card was less than half full. I am not what you might call a fan of long-GoP codecs (I prefer intraframe, thankyouverymuch) but I will say that I am pretty impressed with how well AVCCAM worked here.

For those who want to see the kind of examples I pulled from my footage, here are animated .GIF files with particularly illustrative differences. The following are pixel-for-pixel extractions out of the original uncompressed 1920x1080 HD frames, as recorded by each recorder and then frame-grabbed from my NLE. They were then stacked and animated in .GIF format for use here. And, keep in mind, these are frames from the most-stressed situations, so none of these frames are going to look actually "good" -- but the question is, which one is better?




Click image to view animation


Click image to view animation


Click image to view animation


Click image to view animation


Click image to view animation


Click image to view animation

The above .GIF files should be taken as illustrative examples, but are not pixel-accurate (because, after all, they've been recompressed as GIF files!) If you want the unmodified original uncompressed frame grabs to examine for yourself, those are available as multiple-layer PhotoShop documents. To use them, download them, open in PhotoShop, then look at the Layers window. You'll see two layers, "AVCCAM" and "EX1". The AVCCAM layer is on top. De-select its "eyeball" and you'll hide it, letting the EX1 layer show through. Re-select the AVCCAM eyeball and it'll re-enable the AVCCAM layer. That way you can toggle between them to your heart's content.


Here are the original files:

Discuss this in the Forum