西川和久の不定期コラム

ネットブックで1080p動画が観られるアクセラレータ「Broadcom Crystal HD/BCM70012」



Broadcom Crystal HD/BCM70012

 ネットブックが出始めた2008年頃は、HD/フルHD動画はまだあまり身近なものではなく、YouTubeの動画も含め、ちょっとネットが使えて、音楽が聴けて……と、ライトな使い方なら全く問題無かった。しかし、最近はYouTubeがフルHD対応となったり、720pそして1080pの動画も身近になってきた。デジカメの動画機能でさえHD対応になった。

 そうなると、GMA950/3150ビデオ機能を搭載したネットブックでは、スムーズな再生がほぼ不可能になる。そこで今回は、ネットブックでも1080p動画が再生できるハードウェア・アクセラレータを試して見たい。


●Broadcom BCM70012の仕様

 ハードウェア・アクセラレータと言えば思い出すのは、その昔CPUがi286/i386の頃、JPEGハードウェアボードがあった。CPUパワーでJPEG画像を展開するには遅いので、専用ハードウェアを使って速くする仕掛けのボードだ。今回ご紹介するBroadcomのBCM70012もこの発想と同じ。すなわちCPUでH.264などをデコードするには、Atomプロセッサのように非力なCPUでは遅すぎるため専用ハードウェアの助けを借りる。

 同じAtomプロセッサでも、Zシリーズに使われるチップセットIntel US15Wに内蔵のGMA500は、動画支援機構を持ち、フルHDを難なく再生できる。ところが新型Atomプロセッサも含め、GMA950そしてGMA3150には動画支援機構が無く、フルHDどころかHD動画も満足に再生することはできない。主な用途としてネットを楽しむ=ネットブック/ネットトップなのに、動画の高解像度化に伴い、ネットすら楽しめなくなってしまった。しかも機種によっては、液晶パネルだけHD解像度……。何とも寂しい話である。

 これをチップセットレベルで解決したのが、IONプラットフォームだ。「GeForce 9400M G」を搭載し、シングルコアのAtomプロセッサでも、フルHDやBlu-ray Disc映像の再生を可能にしている。またCUDAが使えるのでエンコードも速い。

 Broadcom BCM70012は、先に書いたように、汎用バスへ接続するカード(モジュール)レベルでこの問題を解決する。同社のHPにある仕様をそのまま抜粋すると以下の通り。簡単に言えば、フルHDの1080p動画やBlu-ray Discにも対応するものだ。

・H.264/AVC HP at L 4.1 1080p/1080i, 40 Mbps
・SMPTE VC-1 AP at L 3 1080p/1080i, 40 Mbps
・WMV9 (VC-1 SP and MP)
・MPEG-2 MP @ ML and MP @ HL
・QVGA to Full HD (1080p) support
・Streaming Media playback
・Blu-ray disc playback
・Protected media playback

 ちなみに、BCM70012は、正確には著作権保護とPCI Expressへの変換だけを行なうチップで、デコードはBCM70010という別のチップが行なう。Broadomでは、基本的にこの2チップのセットのことをBCM70012と表記しているので、ここでもそのようにする。このカードは、HPやDellなどネットブックのBTOでオプション扱いになっているケースはあるが、一般的に単品では流通していない。入手はYahoo!オークションやeBayとなる。3,500円前後/20ドル前後が相場のようだ。参考までに、今回はYahoo!オークションで3,480円(送料込み)で購入したが、いつもこの価格で購入できるわけではない。

【お詫びと訂正】初出時にBCM70012およびBCM70010の機能について誤った記載をしておりました。ご指摘頂いた読者の方に感謝しますとともに、お詫びして訂正させて頂きます。

 ドライバは同社のHPからダウンロード可能だ。Windows XP、Vista、7、32bitそして64bit版に対応している。また、Linux版はソースコードでの公開だ(Kernelのバージョン2.6.11以上)。

 対応するソフトウェアは、Windows Media Player 12、Flash Player 10.1、TotalMedia Theatre(OEM版)、CyberLink PowerDVD(OEM版)となっている。同じWindows Media PlayerでもXPとVistaはバージョンが11なので作動対象外となる。

 Flash Player 10.1は、ハードウェア・アクセラレータに対応した新しいバージョンで、現在はβ2となっている。ロジックとしては、DXVA(DirectX Video Acceleration/DirectShowの下でビデオレンダリングをアクセラレーションするためのAPI)を使い、ハードウェア・アクセラレーションを行なう。対象となるフォーマットはMPEG-2、H.264、VC-1だ。

 なお非公式ながら、GOM Player、Kmplayer、Media Player Classic(Home Cinema Edition含む)なども動くとされている。

BCM970012(表)。miniPCIeカードなので小さい。覆っているのは金属パネル。放熱用かも知れない BCM970012(裏)。止めるネジは付属していないので該当するネジを持ってない場合は少し厄介だ ドライバダウンロードページ。Windows XP/Vista/7、32/64bitに対応している。Linux用のソースコードもある

●実験その1「Intel D510MOボード使用PC」Windows 7 Home Premium(64bit)

 まずはじめのテストは、少し前に掲載した「Intel D510MOボード」を使用する。このマザーボードは、Atom D510プロセッサ(クロック1.66GHz、2次キャッシュ512KB×2、TDP 13W)を搭載し、チップセットはIntel NM10 Express、そしてグラフィックスはチップセット内蔵のGMA3150となっている。CPUがデュアルコアという以外は、最近出回っている新型Atom N450プロセッサ搭載ネットブックなどと仕様が近い。これでどの程度動くのかによって、ある程度参考になるだろう。

 さらにこのD510MOには、ボード上にminiPCIeのカードスロットがある。一般的にはここにminiPCIeの無線LANカードを入れると思うのだが、今回のBCM970012も同じminiPCIeなので、仕様的には問題は無く好都合だ。

 スロットのある場所が場所なだけに、当初はケースからマザーボードを外さないと入らないかもと思っていたが、PCIバスの上から滑り込ますことができた。また、BCM970012を止めるネジ2本は必要無く、ちょうどネジの位置にストッパーのようなものがあったので、固定も簡単にできた。

Intel D510MO。左側にminiPCIeのカードスロットがある。本来なら無線LAN用だろう miniPCIeへBCM970012をセット。マザーボードをケースから外さずにセットできた。またネジ穴の部分にストッパーが付いているためネジは不要

 問題無くカードが入っていることを確認して電源ON。Windowsが起動するとドライバを要求するが、この時は何もしない。先にダウンロードしたドライバのzipファイルを展開し、「CrystalHD_3.1.6.32」(32bit版)と、「CrystalHD_3.1.6.64」(64bit版)の該当フォルダにあるSETUP.EXEを実行する。まずドライバの前にVisual C++ 2008 Redistributable Package SP1がインストールされ、その後ウィザードが開始、メッセージに従い進めば「Broadcom CrystalHD Decoder」がインストールされる。デバイスマネージャを開くと、[サウンド、ビデオ、およびゲーム コントローラー]の部分に[Broadcom CrystalHD Video Decoder]の項目が増えている。

 次にAdobe Flash Player 10.1β2のインストールを行なう。この時注意しなければならないのは、コントロールパネルの[プログラムと機能]からFlash Player 10のモジュールを先に削除しなければならないことだ。「Adobe Flash Player 10 ActiveX」はIE用、「Adobe Flash Player 10 Plugin」はその他のWebブラウザ用だ。これを削除しないと10.1がうまくインストールできないケースもあるようだ。

先にVisual C++ 2008 Redistributable Package SP1がインストールされる Broadcom CrystalHD Decoderのインストール
デバイスマネージャで確認 Adobe Flash Player 10.1のあるページ
Adobe Flash Player 10.1β2をインストール IE8のアドオン管理でバージョンを確認

 ドライバなどの設定も終わったので、Windows Media Playerでいつもテストに使っているフルHD動画を再生した。BCM970012を使わないケースではCPU使用率60%前後で収まるが、動き自体はコマ送り状態でとても鑑賞に堪える状態ではない。次にBCM970012を付けると、CPU使用率15%前後へと下がり、再生自体も問題無く行なわれた。明らかにハードウェア・アクセラレータが効いている。これはなかなか調子良さそうだ。

1080p動画をWindows Media Playerで再生(BCM970012無し)。CPU使用率64%。ただし激しくコマ落ちする 1080p動画をWindows Media Playerで再生(BCM970012あり)。CPU使用率12%。コマ落ちも無く快適に再生した

 次にFlash Player 10.1β2を使い、YouTubeのHD動画(720p)を再生した。アクセラレータ無しの状態では、一見30fps近く出ているので、問題無く再生しているように思えるが、コマ落ちが多く動きがスムーズでは無い。CPU使用率も80%前後だ。アクセラレータありにすると、CPU利用率が45%前後と下がり、コマ落ちもほぼ無い状態でスムーズに再生が可能となった。ただフルHD動画(1080p)に関しては、コマ落ちが激しく、音は正常に出るものの、うまく再生できなかった。

 先のWindows Media Playerでの結果を見ると、BCM70012自体はフルHDに対応できる能力は持っているものの、Flash Player 10.1のチューニングがβ2と言うこともあり、まだまだなのだろう。この点は残念だが、Flash Player 10.1の完成版に期待したい。

 気になる点としては、意外と発熱が多いことだ。ずっと負荷がかかる再生を続けていると、指で長時間触れないほど熱くなる。

YouTubeで720p動画を再生(BCM970012無し)。CPU使用率84%。26.79fps、1227dropped。コマ落ちが発生し快適に再生できない YouTubeで720p動画を再生(BCM970012あり)。CPU使用率45%。29.64fps、58dropped。若干コマ落ちがあるものの快適に再生できる YouTubeで1080p動画を再生(BCM970012あり)。CPU使用率27%。1.71fps、2689dropped。コマ落ちが激しい上に約2fpsしか出ない

●実験その2「EeePC 901-X」Windows 7 Home Premium(32bit)

 IntelのD510MOマザーボードを使った実験がうまく行ったので、次はEeePC 901-Xでテストすることにした。まず肝心のminiPCIeスロットは、この機種の場合、無線LANカードが入っている。とりあえずこれを外し、BCM970012をセットする。多くのノートPCはこのパターンでカード自体は装着可能であるが、メーカー保証が無くなる点には注意して欲しい。本体から無線LANが無くなってしまうので困ってしまうものの、最近では非常に小さく邪魔にならないUSBタイプの無線LANアダプタがあるので、BCM970012の調子が良く、入れっ放しにできるのであれば、これを使えば支障は無い。

 さらに、miniPCIeカードスロットに空きがある時は、カードを止めるネジが意外と身の回りには無く、別途用意しなければならない。また、ネットの情報を見ると、BIOSとの相性や、本体に備わっているminiPCIeスロットが、メーカー指定の無線LANカード専用になっていて、BCM970012を認識しないこともあるようだ。PCによってはハードルが高い可能性がある。

EeePC 901-Xの内蔵無線LANを外す。もともとminiPCIeには無線LANカードが入っているので外す EeePC 901-XにBCM970012をセット。セット自体は問題無いが、アンテナ線が他に触れると危ないので、後でテープ止めする 小さいUSBタイプの無線LANユニット。PLANEX GW-USMicroN(IEEE802.11n対応)。内蔵の無線LANユニットが無くなっても、これならそれほど邪魔にならない

 CPUがAtom N270プロセッサということもあり、BCM970012無しでのYouTube HD動画(720p)再生は、1〜2fps、CPU使用率ほぼ100%と、かなり厳しいものとなっている。一般的なネットブックやネットトップは新型Atomプロセッサを含め、この状態とほぼ同じになるだろう。とても楽しく鑑賞できるものではない。

 アクセラレータをつけた状態では改善され、CPU使用率75%前後、15〜25fpsと、多少コマ落ちはあるものの、それなりに観られる映像となる。フルHD動画(1080p)に関しては残念ながらアクセラレータありでもコマ落ちが激しく実用に耐えなかった。なお、YouTubeが最近実験しているHTML5/videoタグでの再生は、アクセラレータが全く効かず、720pでもCPU使用率100%、コマ落ちが激しく観ることはできなかった。

YouTubeで720p動画を再生(BCM970012無し)。CPU使用率98%。1.35fps、6519dropped。コマ落ちが激しい上に約1fpsしか出ない YouTubeで720p動画を再生(BCM970012あり)。CPU使用率78%。17.16fps、608dropped。コマ落ちがありfpsも15fps程度と低いがそれなりに観られる HTML5/videoタグで再生(BCM970012あり)。YouTubeのHTML5/videoタグでの再生は全く効果が無かった

 Windows Media Playerでの再生は、先の64bit版と同じ結果だったので、同社のHPにあった非公式ながら動くとなっていた「GOM Player」を試すことにした。GOM Playerは、DXVAにも対応しているので、BCM970012のアクセラレータを使うことが可能だ。設定方法は割りと分かり難いので、画面キャプチャを参考にして欲しい。

 結果は問題無く、CPU使用率35%前後でテスト用のフルHD動画が再生できた。Windows 7はH.264に標準対応したこともあり、GOM Playerなど、他社のメディアプレーヤを使うケースは減っているものの、例えばダイレクトにflvファイルを再生する時などに有効だと思われる。

GOM PlayerでDXVAを使う設定1。[フィルタ][停止フィルタ]の「高速モードで再生する」にチェックする GOM PlayerでDXVAを使う設定2。[フィルタ][カスタマイズ]のカスタム設定で[フィルタを追加]、Broadcom Video Decoderを選択する GOM Playerで1080p動画を再生。CPU使用率35%でフルHD動画をスムーズに再生した。DirectShowのFilterリストに、Broadcom Video Decoderがあるのがわかる

●実験その3「Gateway LT2100-51R」Windows 7 Starter

 事務所のスタッフが所有する「Gateway LT2100-51R」(Intel Atom N450プロセッサ+NM10 Express/GMA3150)が、Windows 7 Starterだったので実験をしたところ、YouTubeに関してはほぼ同じ結果となった。

 ただ、Windows Media PlayerとGOM PlayerでDXVAを使う再生は、CPU使用率は同程度に下がるものの、少しの間はスムーズに動くのだが、その後コマ送り状態となってしまった。見る限りパワー不足でコマ送りになっているのではなく、バッファリングで引っかかっている雰囲気だ。バッファリング済みの一瞬はスムーズに再生される。この件は、今回テストしたマシン固有の問題なのか、Windows Starter固有の問題なのかは不明である。

 余談になるが、Windows 7 StarterはMPEG-2のデコーダを搭載していない。従って、DVDドライブを接続しても、そのままではDVDビデオを観ることができない。今回テストに使ったGOM PlayerはMPEG-2やDVDビデオにも対応しているので、Starterユーザーにはお勧めだ。

Windows Media PlayerでフルHD動画を再生中。CPU使用率12%。一見順調に動いているのだが、(多分)バッファリングの境目でコマ落ちする BCM970012の取り付け。Gateway LT2100-51Rは、2つminiPCIeスロットがあり、一つはハーフサイズの無線LANカード、もう一つは空きになっているので、そこへBCM970012を付ける

●実験その4「EeePC 901-X」Windows XP Home Edition

 Atomプロセッサを使ったPCとしては、Windows XPも多いと思われるので、実験を行なった結果、YouTubeのHD動画(720p)に関しては、Windows 7の32bit版とほぼ同じとなった。ただGOM PlayerでDXVAを使う再生は、再生が始まった途端、OSがいきなりリブートしてしまった。何度行なっても同じ結果なので、EeePC 901-Xとの相性か、もともとこの組み合わせがうまく動かないかは不明である。なおXP付属のWindows Media Playerはバージョンが11なので、BCM70012のドライバは未対応となる。

Windows XPへBCM970012の環境を構築。デバイスマネージャ、そしてIE8のアドオンの管理で、それぞれモジュールが追加されている YouTubeで720p動画を再生(BCM970012あり)。CPU使用率78%。21.04fps、493dropped。コマ落ちがありfpsも20fps程度と低いがそれなりに観られる


●未完成だが将来性に期待

 BCM70012自体の能力は、Windows Media Playerの再生結果を見れば分かるように、1080p動画を楽々処理できる。しかしFlash Player 10.1がまだβ2と言うこともあり、YouTubeでは720p動画を表示するのがやっとのレベルだ。加えて、HD再生モードに切り替える時、なかなか映像がスタートしなかったり、ブラウザが反応しなくなるなど、まだまだ完成度は低い。

 ただ不安定なのは同じだが、IONプラットフォーム(AspireRevo ASR3610-A44)だと、Atom 330プロセッサで1080p動画を余裕で再生できている。BCM70012でも最終的にはこのレベルになる事を期待しながら、Flash Player 10.1の完成を待ちたい。新型Atomプロセッサ+NM10 Expressのマシンも含め、YouTubeなどで720p/1080p動画を観ることができるようになりそうだ。

 加えてExpressCard/34版があれば(筆者がThinkPad T43のユーザーなので、なおさら期待しているのだが)、少し古いノートPCの助けにもなりそうだ。Atomプロセッサユーザーには、今後注目のデバイスと言えよう。

【2月22日追記】公式サイトで新しいドライバ「Crystal HD Driver 3.1.8」が公開されました。

 新ドライバでは、Windows XPでGOM Playerを使った時の突然のリブートが無くなったほか、YouTubeの1080p動画もほぼ30fpsで再生可能となりました。