Flash’s H.264 decoder is a Pig. Please Adobe, Go Buy CoreAVC!
December 5th, 2007Yesterday Adobe released Moviestar officially as “Adobe(r) Flash(r) Player 9 Update 3″. As the name implies, Moviestar includes the ability to playback H.264 video.
In the press release it says “The latest update also features hardware accelerated, multi-core enhanced, full-screen video playback for high-resolution viewing across major operating systems and browsers.”
After reading this, I first thought “wow! something is finally going to use my GPU for decoding!”. Unfortunately upon further investigation I discovered that the only hardware acceleration going on is for scaling. That’s definitely better than the software scaling flash was doing before (which is why those full-screen flash videos had so much tearing and lagginess) but not what I was hoping for.
I write this from my first-generation MacBook Pro which has an ATI Radeon X1600 GPU. This particular GPU is capable of doing hardware decoding of H.264 video. From ATI’s web site:
“Free your CPU to devote more processing power to other applications with Avivo’s hardware accelerated processing of new HD video formats, including H.264.”
Then there is a link to Cyberlink’s PowerDVD 6 expansion pack page where you are presented with the option to pay another $24.95 for a Windows-only package that will presumably use the “Avivo” hardware acceleration. Upon further searching, it seems that Nero, Elecard, and others are able to do hardware accelerated decoding as well.
As such, whether I use Mac OS X or Windows (without paying more money) I appear to be stuck with software decoding. I am not aware of any free software for Windows or any software at all for Mac OS X that can use my GPU’s H.264 decoder. That includes Quicktime Pro and the new Flash.
There’s more bad news. The new Flash does support “True HD” up to 1920×1080p but according to the system requirements page I would need a much faster Mac to be able to decode 1080p video as my 2 GHz Core Duo doesn’t pass the test. I can accept this in a vacuum but two major facts make this totally unacceptable:
1. My GPU could be doing it without a second thought and leaving my CPU for more important things.
2. If I were running Windows or Linux, it would be no problem at all! Have a look at the requirements table below.

Notice that 1080p can be decoded with a 1.8 GHz Core Duo on Windows and Linux but jumps up to a whopping 2.66 GHz on the Mac! Also notice that Adobe seems to have access to some kind of bizarre prototype Macintosh with a 1.33 GHz Core Duo for doing 480p decoding tests. wtf is that?
Of course, I would prefer Flash figure out how to do hardware-accelerated decoding. But if a software solution is the only choice, can’t they just buy these guys or at least license their decoder like Joost did? Just to give an idea of what can really be done in software, take a look at the requirements for the CoreAVC decoder:

As they say on their web site…
“The efficiency of CoreAVC in ’software’ is often compared to be faster than other solutions that try to rely on ‘hardware’ to increase playback performance of H.264 video.”
So in conclusion, a single core CPU released in August 2002 running an OS from 2001 with CoreAVC’s $7.95 H.264 decoder is able to blow the doors right off a brand new $2800 2.4 GHz MacBook Pro running Apple’s latest operating system and yesterday’s brand new version of Flash.
Please Adobe, go buy CoreAVC or get some ATI/Nvidia/Intel engineers parked at your offices for a couple months to sort this out. Please?
But, it’s not all bad news. Not only do we get nice hardware scaling which has existed in “regular” media players for many years but Flash now supports a whole load of great containers — MP4, M4A, MOV, MP4V, 3GP and 3G2. They can all be embedded right into your SWF’s with fancy overlays and all kinds of good stuff. This is very good news indeed. With the super-fast adoption of new versions of Flash we can look forward to much better web-based video very soon.




