Real-time HD video encoding on PS3?
Digital Foundry puts Cell to a serious test.
If there is one thing that is beyond doubt, it's that the raw computational power of the PlayStation 3's Cell CPU is something quite special. The architecture of the chip is somewhat unique - featuring a conventional PowerPC CPU core surrounded by eight ultra-fast satellite sub-processors (though one is disabled), each capable of some pretty phenomenal number-crunching. Just one of these SPUs can decode 300 MP3 files simultaneously in real time.
So long as the tasks fit the unique processing properties of the SPUs, in theory the chip should be capable of outperforming even the very latest in Intel i7 processing technology. Certainly, the Folding@Home client built into the Life With PlayStation software is clearly outperforming the equivalent multi-core Folding client available for PC (more on that a bit later).
So bearing in mind that video and video encoding is something I spend a lot of time doing (to the point where I constructed a second i7 workstation for encoding your HD vids so I can still continue working on other stuff), it was with some interest that I stumbled upon the CodecSys CE-10 h264 software. Dubbed as a consumer/prosumer-level h264 encoder, it runs from PC but with all the hard processing actually performed by the Cell chip in your PlayStation 3, which is connected to your computer via a conventional LAN cable.
It's actually not the first SPU-based encoder. Leadtek has its PCI Express-based SpursEngine card that works very quickly indeed using four SPUs, but doesn't appear to offer much in the way of quality compared to competitors, according to this review. The question is, can the CodecSys solution offer the speed increase we want from a solution like this, while still maintaining the quality? And secondly, does the whole package warrant the $200 price for the personal edition, or indeed the whopping great $2000 price for the professional version?
Well, it's fairly easy to find out as the developer, FixStars, offers a 14-day trial period of the full package, offering all the functionality of both versions of the software. Installation is easy. The program loads into your PC within moments and you simply put the PS3 code onto a USB flash drive, and point the OtherOS installer on the XMB towards it. You don't even need to partition your PS3 hard drive, even though the PS3 part of the package is based on the Yellow Dog Linux distribution. And with that, you are on your way.
First impressions of the options on offer are not massively encouraging. You're only given an average bitrate encoding profile, so just one pass then - not two, as is usually the case with most video encoders. The best way to encode video when you have a low bandwidth budget is via a minimum of two passes: the first is a general scan of the video to see which parts need the most data throughput, and which do not. The second pass then carries that out, giving the best picture quality with the available bandwidth budget. For a professional package to offer one-pass encoding only makes it very difficult to recommend straight off the bat.
That said, the speed is the key here, and make no mistake, CodecSys CE-10 can be stupendously fast. In my tests I found I could encode 720p at 35-40FPS, while 1080p came in at around 20-24FPS. That isn't exactly real-time, but it's still very, very fast. But speed counts for nothing in the greater scheme of things, if the quality of the encode you get out of the other end isn't particularly good. The freeware x264 encoder can pump out 1080p at a sustained 24FPS using just one core of a 3.0GHz Core 2 Duo if you turn off enough encoding features. Speed is important, but the whole point of h264 is that quality is king.
But CodecSys developer Fixstars reckons it's onto something special with its tech, as this press release says: "CodecSys utilises a patented, multi-codec approach in which a video stream is analysed and the codec best-suited for a particular frame or video sequence is automatically selected from an entire library of specialised codecs. By compressing video to under 3Mbps, CodecSys enables video providers to reduce their bandwidth needs by more than 50 per cent for HD quality and pack more video into less bandwidth."
Just the sort of claims I like as they are easily measured. Time for a quality showdown then, and everyone can check out the quality thanks to the glory of the Eurogamer HD player. I dug out my favourite stress test video - a short montage of Burnout Paradise clips, the same video I used for the infamous OnLive article, and used a 30FPS version for this comparison. It's worth pointing out that Fixstar itself has a number of samples on its website based on a couple of copyright free CG animated movies. However, generally speaking, these are easy to compress and offer little in the way of challenge to the encoder. Game video on the other hand can be far more of a worthwhile test: blurred images (e.g. out-of-focus background detail) are easy to compress but most games have a nigh-on infinite depth of field. Game video also has fast motion and is typically far more colourful: a combination that causes encoders lots of problems.