Matrox CompressHD races to the H.264 finish line
COW Library : Matrox Video Systems : Craig Seeman : Matrox CompressHD races to the H.264 finish line
H.264 has finally become "the" codec we're likely to use for delivery. For web use Quicktime, Flash and now Silverlight use it. In addition it's part of the Blu-ray specs as well as delivery for iPods and iPhones. While having a single codec certainly simplifies delivery, encoding to H.264 is SLOOOOW. It brings the fastest computers to their knees and our brows cover with sweet as deadlines loom. Matrox CompressHD, with MAX technology, promises to ignite the after burners for H.264 encoding and it certainly delivers.
CompressHD is a half length PCIe card which fits into MacPros (10.5.6 and up), Apple Intel Xserves and Windows PCs (XP 32bit and Vista 32 and 64bit). I tested it on a MacPro 8 Core Xeon 2.8GHz 8GB RAM system. Once the card was in place I installed the software/firmware. Once completed the pop-up window notifies you to Shutdown. This might throw you for a moment since many installers give you a Restart rather than a Shutdown button. If you're not attentive to the function of the button you just clicked you might wait a bit wondering what happened to that familiar chime. Just remember to power back up.
You'll find the Matrox folder in your Applications you'll find a Firmware Updater and a Software Uninstaller. When Matrox releases updates, you run the Uninstaller first before running the new Installer. If you forget, you'll get a popup reminding you when you attempt to run the updated installer.
In your System Preferences you find a Matrox CompressHD prefpane. When clicked it'll reveal the Product Name, Serial Number, Firmware and Software Version making that information very easy to access. In addition there's a button to Activate or Deactivate the Matrox MAX H.264 codec.
On occasion you may have reason to Deactivate it. Handling it this way is far more convenient than an uninstall. One such instance is when using Telestream Wirecast for streaming or recording to hard drive. Wirecast's live encoding is tied to Apple's H.264. An attempt to stream or record to disk crashes Wirecast immediately. It's simple to go into Matrox prefpane and Deactivate but CompressHD isn't always happy with that. You may get a warning that the codec is in use by Compressor and you'll have to follow Deactivation (or Activation) with a reboot or go into Activity Monitor and Force Quite Compressor related functions. This is a Compressor bug as it doesn't give up control even after quitting. I'd also note that you must Deactivate CompressHD to use a Qmaster “Virtual” Quick Cluster but MAX technology obviates the need to do that.
Off to the Races
Can this rabbit run faster than 8 instances of a Qmaster “Virtual” Quick Cluster ? CompressHD had it beat by 300% or more every which way. In nearly every attempt, it lived up to the promise of faster than real time. This was even with Apple Compressor's Frame Controls Deinterlace Better engaged.
First I tested with 1080p30 XDCAM EX .mov file running 10:58. That's just one second short of YouTube's maximum runtime. I was down scaling it to 720p at 5000kbps. To get a full measure of the impact I encoded without Qmaster, 4 instances, 8 instances and finally CompressHD codec. Sans Qmaster took 37:40, 4 instances 31:53, 8 instances 26:58. CompressHD burned through it in 8:40. That's 3 times faster than 8 instances. To put it another way that would be 2 such encodes per hour compared to nearly 7. That's a major productivity boost if you need to do a few of these encodes a day. Of course you're not always targeting 720p if it's for web or a client screener. Downscaling to 640x360 at 2000kbps dropped the time down to 6:08. Doing a 640x360 1500kbps baseline encode for iPod/iPhone was 4:48, more than twice real time! These kinds of numbers hold for long form as well. This certainly is a boon to feature/documentary encoding and certainly facilitates the ability to turn around a couple of hours of digital dailies.
CompressHD also does encoding for Blu-ray and the encode times are also faster than real time. This time I used a 1080p30 XDCAM EX source at 48:02. Targeting 1080 took 37:39 and targeting 720p 46:46. Again both were faster than real time.
Under the Hood
The Matrox CompressHD H.264 bring a few more tweaks to the fore that are important to compressionists.
Looking at the lower left under Compressor you'll see a few things different than Apple's H.264. It includes “entropy” encoding (algorithm), it's own de-interlace and level setting:
Compared to Apple's
Entropy encoding algorithm is an important option. CABAC generally results in a bit more quality but also is a bit more work to decode on the viewing computer. CAVLC tends to be easier to decode and is commonly used in low powered devices such as iPods and iPhones. Apples compressor uses CAVLC only unfortunately. You can verify this by using the free cross platform MediaInfo to examine the encodes. I did find a bug in which HD targeted encodes would show as CABAC even if set to CAVLC. Matrox says they are working on the fix.
Whereas Apple's H.264 automatically determines the Level, CompressHD allows the compressionist to set this. This can be important when meeting certain specs. Find out more about H.264 Levels here. CompressHD has no Quality setting and always does single pass encoding. You shouldn't be concerned because its encodes easily rival the quality of Apple's H.264.
I did do a comparison between CompressHD's deinterlace to Apple's Frame Controls set to Better, using just CompressHD's codec. It was mixed bag as to which was better. Each had their moments. Frame Controls on the left and CompressHD deinterlace on the right.
This is one example where CompressHD's deinterlace lead. Look at the interlacing on the shoe of the person doing a cartwheel on the left by Frame Controls Better on the left compared to CompressHD on the right.
Here's another example where CompressHD deinterlace faired better. Look at the top and bottom of the “f.” CompressHD deinterlace on the right.
While Frame Controls has stair-stepping on the left it looks even across the letter's edge compared to CompressHD's deinterlace on the right. I like Frame Controls here.
Frame Controls wins this one on the left as the shoulder has a clean edge.
Keep in mind all the above is with CompressHD's codec. It really depends on the content whether you choose Frame Controls or or CompressHD's deinterlace.
Frame Controls deinterlace is notoriously slow using Apple's H.264 and one might think if that carried over to it's use with CompressHD that additional time might be a factor. Frame Controls deinterlace Better does not drag the encode times that severely when used with CompressHD.
I used an interlaced DV .mov for these tests. The source was 4:38. I targeted a 640x480 2000kbps deinterlaced encode. Using Apple's H.264 codec with Frame Controls Better took 11:26. Using CompressHD's codec with Frame Controls was a much zippier 3:08. That's significantly better than real time. Using CompressHD's Deinterlace only shaved off a few more seconds, coming in at 2:55. Frame Controls certainly isn't a significant handicap with MAX technology.
Blu-ray a Panel to itself
CompressHD also has it's own Blu-ray settings panel. The panel is unusual in that you describe both the source and the compression settings.
Apple's Compressor also has it's own settings for H.264 HD but it's described for DVD Studio Pro which only author's the defunct HD-DVD, not Blu-ray.
The settings control and intent are too widely disparate to make comparisons. CompressHD encodes, using the .264 extension, are compatible with Adobe Encore and Roxio Toast with Blu-ray plugin. I haven't found a file player that plays .264 as of yet.
For those who do screen capture based tutorials, CompressHD does have a size constraint. It can handle 64x64 up to 1920x1088 and must be even values. A full screen capture of a 23” Apple Cinema display would be 1920x1200. Granted the final export is rarely that size when doing tutorials and even if you were to integrate with 1920x1080 HD production your exported capture would work. Testing with Telestream ScreenFlow, I found speed gains in the 300% range as well.