米Adobe Systemsは17日(現地時間)、Flash Player 10.1のベータ版を公開した。また、時を同じくして、YouTubeでは1080pのフルHD動画の再生に対応した。さっそくこれらを試してみることにした。
Flash Player 10.1は、現行のFlash Player 10に対して、バグ修正といくつかの機能追加を行なったもの。追加機能としては、キーボードがない携帯端末でフォームに入力を行なう際にソフトキーボードを表示、マルチタッチによるジェスチャー、携帯端末での画面の縦横回転などがあるが、PC向けのものでもっとも大きなものはH.264でエンコードされた動画のハードウェアアクセラレーション再生だ。
過去記事で何度も扱った通り、H.264のフルHD(1,920×1,080ドット)動画は、デコード処理に膨大な演算を行なうので、3GHz駆動のクアッドコアなど、ハイエンドクラスのCPUでなんとか処理できるというレベルだ。
そこで、メジャーな動画再生ソフトでは、GPUの機能(これはシェーダだったり、専用回路だったりするが)を使って、H.264のデコード処理を行ない、CPUに負荷をかけることなく、かつコマ落ちのない再生を可能にしている。
今回のFlash Player 10.1も、これと同じように、DXVA(DirectX Video Acceleration)に対応することで、H.264のデコードにGPU(シェーダ)を使えるようになった。
なお、Flash Player 10.1はMac OS(Intel CPU)、およびLinux版も用意されているが、このH.264のハードウェアアクセラレーションには対応していない。Windowsでは、Windows XP/Vista(64bit可)/7(64bit可)に対応する。
また、対応できるGPUも制限がある。Adobeの情報によると、AMDではRadeon HD 4000シリーズ以降、Mobility Radeon HD 4000シリーズ以降、Radeon HD 3000以降(チップセット内蔵)、FirePro V3750/V5700/V7750/V8700/V8750以降。NVIDIAはGeForce 8400 GS以降、GeForce 8400M GS以降、GeForce 8100以降(チップセット内蔵)。IntelはIntel G4xシリーズとなっている。また、GPUではないがBroadcomのBCM70012も対応する。いずれも最新のGPUドライバ(NVIDIAではベータ版の195)が必要となる。
注意事項として、インストールにあたっては、現在入っている既存のバージョンをアンインストールする必要がある。また、当然のことだが、ベータ版のインストールによる不具合は自己責任となる。製品版は2010年上半期中に公開の予定だ。
検証に使ったION搭載のHP Mini 311 |
今回、検証にあたっては、NVIDIAから借用したIONベースのHP製ネットブック「Mini 311」(日本未発表)を利用した。主な仕様は、Atom N270(1.6GHz)、メモリ2GB、Windows 7(32bit)となっている。
まず、結論から言うと、YouTubeにおいて1080p動画のコマ落ちのない再生が可能だった。フレームレートは、動画を右クリックして「Show Video Info」を選び、表示された内容の「Dropped (コマ落ち)」の数字で判断した。動画については、NVIDIAが作成した1080pのテスト用のものを使っている。
YouTube上のH.264 1080p動画の平均ビットレートは3Mbpsを超えている。そのため、場合によってはPCの性能より、回線速度がボトルネックになって、バッファリングによる一時停止が発生してしまう。しかし、回線速度が十分に速い場合や、2回目以降の再生では、7Mbpsを越えるようなシーンでもコマ落ちは皆無と言っていい。これは、HDMI出力で1,920×1200ドット(WUXGA)表示対応の液晶ディスプレイに接続してフルスクリーン表示にしても同じ結果が得られた。CPU負荷はおおむね50~70%前後で推移していた。
参考までに、別のIntel 945GSE Express+Atom N270+メモリ2GBのマシンでは、CPU負荷が100%で張りつき、まともに再生できなかった。Core 2 Duo P9500(2.53GHz)+Flash Player 10の環境では、通常のウィンドウ表示で約7,700フレーム中700フレーム程度、フルスクリーン表示では2,000フレーム程度のコマ落ちが発生した。
Mini 311でYouTubeの1080p動画を再生させているところ。なお、ビデオ情報のDroppedに大きい数値が出ているのはバッファリング時にコマ落ちが発生したため。CPU負荷は60%前後で安定している | 同じ動画をIntel 945 GSE搭載のネットブックで再生すると、まともに再生できない |
ただし、今回使ったGPUドライバにはまだ不安定なところがある。YouTubeにアップされている動画には、1080pと書かれていても、実際の縦解像度は800ドット程度のものが少なくない。このような場合、うまくGPUアクセラレーションが効かないことがある。
また、これはGPUドライバの問題かは分からないが、WUXGA液晶にフルスクリーン表示させている間に、Alt+Tabキーでアクティブウィンドウの切り替えを行なうと、アクセラレーションが切れ、コマ落ちが起きる症状も発生した。ちなみに、実害はないが、アクセラレーションが効いている間は、ビデオの情報のビットレートが100kbps前後で終始表示されることも付記しておく(Flash Player 10やアクセラレーションが切れたときは数Mbpsとなる)。
縦解像度の問題については解決策があり、URLの最後に「&fmt=22」あるいは「&fmt=37」とつけると、強制的に前者は720p、後者は1080pの解像度になる。この設定なら、アクセラレーションがうまく機能する。なお、NVIDIAはこの問題を認識しており、今後のGPUドライバあるいはFlash Player側で対応するという。
ニコニコ動画(9)については、正確なフレームレートが把握できないのだが、いくつかの非常に重たい動画について明らかなコマ落ちが発生した。この問題もNVIDIAは調査中としている。
今回、Flash PlayerもGPUドライバもベータ版ということもあり、まだ不安定な印象はあるが、GPUアクセラレーションによる効果はすこぶる高い。これは、CPUが非力であればあるほど、効果を実感できるだろう。
YouTubeやニコニコ動画(9)に限らず、Flashビデオはネット上にあふれかえっている。また、ビデオカメラだけでなく、デジタルカメラでもフルHD動画撮影に対応し始めたことで、一般ユーザーが投稿する動画も、フルHD化がどんどん進んでいる。
これまでGPUというとゲーム用途がメインであったが、一般ユーザーでもあっても、PCを購入する際などは、新世代のチップセットを選んだり、単体GPUを加えるメリットは以前よりも格段に増したと言える。
(2009年 11月 18日)
[Reported by 若杉 紀彦]