ついに出ました、新しいMacBookとMacBook Pro。今回は前置きなし、早速本題に入ろう。お題は「新MacBook / ProのHDビデオ再生が軽い理由」、H.264のGPUハードウェアデコードがサポートされたという噂の真偽を検証することが目的だ。

「9400M」と「9400M G」を整理する

新MacBook / Proでは、ビデオチップが一新された。どちらもNVIDIA GeForceシリーズを採用、MacBookには「9400M G」、MacBook Proには「9400M G」と「9600M GT」の2基が搭載されている。ビデオチップは新MacBook / Proにおいて目玉的存在なため、お題であるデコード機能を検証する前に、きちんと整理しておきたい。

まず、名称について。Appleは新MacBook / Proに搭載されているビデオチップを「9400M」としているが、NVIDIAによれば正式名称は「9400M G」だという(編集部でアップルジャパンに確認したところ、「アップルでは『GeForce 9400M』以外の呼び方はしていない」とのこと)。

ちなみに「9400M」は、GeForce 9100M Gに外部GPUとして「9200M GS」または「9300M GS」を組み合わせた製品のこと。新MacBook / Proに採用されたチップは、NVIDIAが言うところのグラフィック機能統合型チップセット「mGPU (Motherboard GPU)」であり、1チップで構成される別物だ。「9400M」は新MacBook / Pro限定での呼び名と理解したい。

ついでに書いておくと、NVIDIAではGeForceシリーズの製品として、デスクトップ向けの「9400 GT」と、デスクトップ向けmGPUの「9400」をラインナップしている。ややこしい話だ。

システムプロファイラには「GeForce 9400M」として表示されているが、正式名称は「9400M G」だ (画面はMacBook)

NVIDA製ビデオチップの動画再生支援機能

GeForce 6シリーズ以降のNVIDIA製GPUには、「PureVideo」と呼ばれる動画再生支援機能が搭載されている。ビデオコーデックを復号化するときのアクセラレーション、ノイズリダクションなどをGPUの機能により処理することで、動画再生時におけるCPUの負荷を軽減する。GeForce 7以降ではHD品質の動画にも対応、「PureVideo HD」にアップグレードされた。

しかし、それはWindowsなどMac以外のプラットフォームでの話。2007年以降のMacBook Proシリーズには、GeForce 8シリーズの「8600M GT」が採用されているが、PureVideo HDがサポートされたことは確認できていない。1080pなど高品質なHDムービーを再生すれば、あっという間にCPU稼働率が100%近くにまでアップし、内蔵のCPUファンがうなりを立てて高速回転し始めるはずだ。

ところが、新MacBook / Proは違う。1080p (H.264) のHDムービーを再生しても、CPU稼働率はせいぜい30%前後。CPUファンもおとなしいもので、静かな環境で高品質な動画を楽しめるようになった。Appleから正式なコメントは発表されていないが、なにが変わった? 巷の噂どおり、H.264のGPUハードウェアデコードがサポートされたのか?

新MacBook ProでH.264ムービー (1080p) を再生しているところ。QuickTime PlayerのCPU稼働率の低さに注目

秘密は「AppleVAH264HW」にあり

噂の真偽を確かめるため最初に行ったことは、異なるムービープレイヤーを利用したCPU稼働率のテスト。新MacBook / Proに標準装備のQuickTime Player v7.5.5と、フリーのビデオプレイヤー「VLC」 (v0.9.4)を使い、AppleのHD Galleryサイトにある「Artbeats HD Library Demo Reel」の1080pムービー (H.264 / AAC) を再生、CPU稼働率をアクティビティモニタで確認する、というかんたんなものだ。

その結果だが、新MacBook / ProともQuickTime Player使用時が30%前後で、VLC使用時が90%前後となった。仮にPureVideo HD対応が実現されているにしても、すべてのムービープレイヤーでメリットを得られるわけではない、ということだ。

続いて行ったのが、QuickTime Playerがリンクしているフレームワークの調査。VLCでは高速化されないということは、ビデオドライバではなく描画に使用されるフレームワークレベルで機能が提供されるのかも、と考えたためだ。すると、QuartzCore.frameworkのバージョンが他のマシンで動作する現行版Leopard (v10.5.5 / Build 9F33) の「1.5.5」と違う「1.5.6」と判明。このフレームワークをv1.5.5と差し替えてHDムービーを再生したところ……30%前後で変化はなかった。QuickTime PlayerをOS X 10.5.5 / Build 9F33のものと差し替えたが、結果は同じ。どういうこと (矢沢永吉風に) ?

さらに探索を続けた結果、/System/Library/QuickTimeディレクトリに「AppleVAH264HW.component」なるQuickTimeの拡張書類を発見。名前からしてどうも怪しい、早速適当な名前にリネームしてHDムービーの再生を始めたところ……ビンゴ! めでたく (?) CPU稼働率が90%前後に上昇した。

システムフォルダで発見した「AppleVAH264HW.component」

以上の事実を整理すると、新MacBook / ProではH.264ムービーのGPUハードウェアデコードは可能だが、(PCのように) ドライバレベルで機能が提供されているわけではなく、QuickTimeにハードウェアデコード機能が追加されたに過ぎない。VLCのCPU稼働率が高いままであることは、その証拠といえる。そしてQuickTimeレベルでのサポートということは、1つ前の8600M GTを搭載したMacBook Proシリーズでも、H.264ムービーを軽々と再生できるようになる可能性が高いことを意味する。次のOS X、もしくはQuickTimeのアップデートを待とう。