[WinHEC 2006#07]Windows Vista環境下のビデオ再生&著作権保護機構
Glenn Evans氏(Technical Lead,DMD/WAVE,Microsoft)
|
WinHEC 2006の主役は,(当たり前だが)なんといってもWindows Vistaであった。 ゲームユースには関係ないものの,OSの性格を知るうえで興味をそそる「ビデオ再生」と,その関連セッションについてのレポートをお届けしよう。
■Windows Vistaにおけるビデオアクセラレーション「DXVA 2.0」
「PCでビデオ再生」というのは,いまや当たり前のPC活用スタイルであり,Windows XP以前では「オーバーレイ表示」という手法が主流であった。これはWindowsデスクトップ画面に“穴を開け”,そこにビデオ再生画面をはめ込む形で表示する方法だ。デスクトップ画面の描画から切り離して処理化できるため,グラフィックスメモリなどの帯域消費を最少限に留め,比較的,低負荷にビデオ再生が行える手段として,Windows 95時代から長らく主流の方式として活用されてきた。
Windows Vistaでは,基本的にこのオーバーレイが廃止され,ビデオ再生フレームは「3Dグラフィックスのテクスチャ」として出力されて,デスクトップ画面上に3Dグラフィックスパイプラインを経て表示される。高負荷にはなるが,拡大/縮小やさまざまな画像処理が適用可能となる……ものとして,この新方式の利点が取り沙汰されている。もっとも,そういったお題目は事態の一面であって,デスクトップ描画が完全に3Dグラフィックスパイプラインに統合されてしまったので,特異な存在であるオーバーレイをもはやサポートしきれないというのが本音だと思われる。 いずれにせよ,このドラスティックなビデオ再生パイプラインの「聖域なき構造改革」は,従来のハードウェアとの決別も余儀なくされるため,痛みは小さくない。しかし,その甲斐あってビデオ再生を取り巻くハードウェア事情が整理整頓されて,便利になっていきそうな気配もあるのだ。
左:Windows Vistaにおけるビデオ再生関連の階層図。「EVR」はEnhanced Video Renderer。「MFT」はMedia Foundation Transformの略だ。個別に説明すると長くなるので省略。最下層にDXVA 2.0があることを確認できればOKだ。DXVA 2.0についてはこれから述べる
右:Windows Vistaにおけるビデオ再生パイプライン。ビデオ再生においてOSコンポーネントやAPIがグラフィックスチップアクセラレーションをサポートする
|
|
|
DXVA 2.0は,Windows環境下のビデオ再生の仕組みにおいてソフトウェアハードウェアが,よりスピーディかつ簡単に強調しあえるような環境を作り出すために生まれた
|
Windows Vistaでビデオ表示を司るのは,DirectX Video Acceleration 2.0(DXVA 2.0)だ。DXVA 2.0は,ビデオのデコードとデコードした映像フレームの画像処理を行うためのAPIセットになる。もちろん,これらの処理は,グラフィックスチップをはじめとしたD3Dハードウェアでアクセラレートすることが可能だ。 これまで,ビデオアクセラレーションは,各ハードウェアベンダー(グラフィックスチップ,ビデオキャプチャデバイス,ビデオデコーダデバイスのメーカー)が各ソフトウェアベンダー(プレイヤーソフト,キャプチャソフトのメーカー)と組んで製品開発を行わなければならなかったのだが,ハードウェアとソフトウェアを結びつけるハブとなる部分の標準化をDXVA 2.0が受け持つことで,ソフトとハードの連携がスピーディに行えて,なおかつ楽になるというわけだ。 画一的な仕様になることで各ハードウェアの個性が失われないか……と心配する人もいるかもしれないが,Microsoftは,この点は問題がないとしている。消費電力,映像処理の品質やそのメソッド,パフォーマンスといった部分で独自性は訴えられるというのだ。まぁ,家電のビデオプレイヤーやビデオレコーダといった製品群が,それぞれ固有の高画質化機能などで独自性を訴えているが,ああいったことがDXVA 2.0でも成り立つというわけである。
左:Windows Vistaより前の時代のビデオ再生。ソフトウェア会社(ISV)とハードウェア会社(IHV)とが相互に連携して対応アプリを開発しなければ,ビデオアクセラレーションは利用できなかった
右:Windows VistaからはDXVA 2.0がISVとIHVの仲立ちをするので,すべてのソフトウェアにおいて,すべてのハードウェアアクセラレーションが利用しやすくなる
|
|
|
■DXVA 2.0の仕組み
DXVA 2.0がある以上,DXVA 1.0というものも当然ある。DXVA 1.0はDirectX 8でリリースされ,Windows XP環境下では標準的なビデオアクセラレーションAPIとして活躍していた。 DXVA 1.0と2.0の階層図を見てもらうと分かるが,DXVA 2.0ではビデオ再生のかなりの部分をグラフィックスハードウェアに任せることができるようになる。また,互換性維持のためにDXVA 1.0へのAPIコールをDXVA 2.0へ変換するためのトランスレータも,DXVA 2.0に内蔵される。
左:DXVA 1.0の階層図
右:DXVA 2.0の階層図
|
|
|
DXVA 2.0ではビデオ再生の各機能ブロックでのアクセラレーションが可能になる
|
DXVA 2.0ではビデオ再生パイプラインを構成する各機能ブロックが,その機能ブロック専用のAPIによって制御されるようになる。それは,例えばビデオのデコード,デコード後の映像処理,ビデオキャプチャといった各機能をAPI制御できるようになるということ。つまり,さまざまな機能ブロックに対して,多様なハードウェアのアクセラレーションの介入を許すということでもある。 DXVA 1.0までのビデオアクセラレーションといえば動き補償予測(MCP:motion-compensated prediction)や逆離散コサイン変換(IDCT:inverse discrete-cosine transform)といったものしかサポートされなかったが,DXVA 2.0では,より広範囲なアクセラレーションを許容し,これが標準化されたAPI下で制御可能になるということだ。
ビデオのデコード処理における各機能ブロックについても,標準化されたAPI管理下でハードウェアアクセラレーションが可能となり,ビデオレンダラ(ビデオの描画,出力)ブロックには生フレームを渡せるようになる。
左:med025.pptのp.13…DXVA 2.0ではさまざまなコーデックのハードウェアでコードがサポートされる
右:各ビデオフォーマットをデコードするための機能ブロックのプロファイル群
|
|
|
プレイヤーソフトの開発側としては,APIの仕様さえ理解すれば,そうした最新の高画質化ロジックが容易に使え,ユーザーの立場で見れば自分の気に入ったメーカーの高画質化ロジックを選択するといったことが可能になる
|
デコード後のフレームに対しての映像処理においても,ハードウェアの介入の標準化がなされる。具体的には色空間変換のような基本的な処理から,インタレースフレームのプログレッシブ化(I/P変換),アスペクト/解像度変換(スケーリング処理)といった処理系が相当する。いわゆる家電AV機器の高画質化ロジック的な機能ブロックを,PC環境下で部品として自由に組み合わせたり,アクセラレーションする機会が得られるというわけだ。 これまでNVIDIAが「PureVideo」,ATI Technologiesが「Avivo Technology」として,独自の高画質化ロジックを競っていたが,ああいった高画質化機能がDXVA 2.0では,Windows Vista境下の標準API下でマネージメントされるようになるわけだ。
現在は,その処理の大半がCPUで行われているビデオキャプチャについても,DXVA 2.0ではハードウェアアクセラレーションが利くようになる。キャプチャしたデータのメモリマネージメントもDXVA 2.0が面倒を見てくれて,WDDM構造(WDDMについてはレポート第6弾参照)の恩恵もあって,キャプチャ時のシステム安定性はかなり高くなるという。
・med134.pptのp.3…ビデオキャプチャのパイプライン。キャプチャの場合,取り込んだデータの処理と,それを表示するための処理が並行して走るため,システム負荷はかなり高くなる
・med025.pptのp.16…ビデオキャプチャ時にGPUなどのハードウェアアクセラレーションの恩恵が得られるのは大きい
|
|
|
■DXVA 2.0は高解像度ビデオ時代に向けて用意された
Windows Vistaが,ここまでビデオ再生のアクセラレーションにこと細かく注力しているのにはいくつか理由がある。 これまで野放しになっていたのは,さまざまな手法が乱立していても,それでもなんとなく「PCにおけるビデオ環境」が問題なく回ってこられたからだ。ところが,Windows Vista世代ではネット配信されるコンテンツまでが高解像度化(HD化,ハイビジョン化」されるほどの,「高解像度ビデオ時代」が到来する。 ご存じの人も多いと思うが,フルスペックの1920×1080ドット/60fpsの高解像度ムービー映像は,デコード,映像処理,著作権保護処理(後述),描画,表示といったプロセスのすべてをこなすのに,3GHzクラスのCPUでもギリギリいけるかいけないかといった状況となる。アクセラレーションは必須といっていいだろう。
このタイミングでアクセラレーション手法が乱立してぐちゃぐちゃになっても困る。そこで,ビデオ再生のパイプラインの各機能ブロックを部品単位でアクセラレーションできるようにすることで,多様なアクセラレーションハードウェアを利用できるようにしつつ,これをシステマティックに管理できるようにしようとしたわけだ。 方式が大きく変わることで,Windows Vista導入期には少なからず混乱を呼ぶだろうが,長いスパンで見ればこのほうがハードウェアベンダ,ソフトウェアベンダ,ユーザーのすべてにメリットがあるとMicrosoftは考えたのだろう。
PVP-OPM。グラフィックスカードの出力端子に鍵マークが付いている表現に注目
|
■Windows Vista時代のビデオ著作権保護
PCにも無縁ではなくなってきた「高解像度ビデオ時代」において,注目を集めているのが著作権保護機構だ。 高解像度のビデオコンテンツは,いわばスタジオマスタークオリティ(あるいはこれに近い)であり,これが違法複製されると,コンテンツホルダーは商売の根幹にダメージを被ることになる。高解像度ビデオ時代において,コンテンツの保護は非常に重要なテーマなのだ。
Windows Vistaも,この時代の流れに沿う形で著作権保護機構をOSレベルでサポートする。 この保護機構は二段構えとなっており,その第一段目といえるのが「PVP-OPM」(Protected Video Path-Output Protection Management)である。 これは簡単にいえば,映像出力段階までの著作権保護になる。
ドライバがハードウェアの正当性をチェック
|
Windows Vistaでは,著作権保護されたコンテンツにアクセスする際,ハッキングされたハードウェアや,ハードウェアのふりをしたエミュレータでないか,その正当性をドライバソフトウェアがチェックする。
GPU側に純正を示す固有IDを返す仕組みを実装したり,チップやカード上に認証チップなどを組み合わせたりする仕組みを取り入れることになるわけだ。 続いて,OS側がドライバがハッキングされていないかをチェック,さらにコンテンツ側が認証プロトコルを実施してOSが正統なものかをチェックして信頼関係を結ぶ。これが完璧かどうかという議論はさておいても,少なくとも「手軽さゆえに起こるカジュアルコピー」は防げることだろう。
そして,さらに深い“バス”レベルでの著作権保護機構にもWindows Vistaは対応する。 それが「PVP-UAB」(Protected Video Path - User Accessible Bus)だ。
左:PVP-OPMでは3段階の認証で正当性を確認する
右:PVP-UAB。グラフィックスカードの接続バス端子に鍵マークが付いている点に注目
|
|
|
ドライバとハードウェアの信頼関係締結にも暗号を採用
|
これは簡単にいうと,PCのマザーボード上やグラフィックスカード等の周辺機器を往来する,バス信号レベルでのプロテクションだ。カジュアルコピー防止というよりは,高度な組織レベルでのハッキングを防止するための方策になる。 まず,各ハードウェアを結ぶバス線を流れるデジタルデータに対し,AES128bitの暗号化を適用するようにする。 そして,ハードウェアとドライバの信頼関係を結ぶ際の暗号鍵交換の信頼性もさらに高度化し,2048bitのDiffie-Hellman鍵交換方式で行う。本当はハードウェア側(たとえばグラフィックスチップ)にシリアル番号的な個別キーを盛り込みたいところだが,コスト的に難しいため,ドライバとハードウェアで共通な2048bitの暗号鍵を持たせて,AES暗号のハッシュデータをキーにした認証を行う。
そしてWindows Vista世代ではグラフィックスカード製品やビデオキャプチャ製品などの映像出力端子にも著作権保護機構を組み込んだものを標準仕様とする。DVIやHDMIといったデジタル映像端子にはデジタル著作権保護機構である「HDCP」(High-bandwidth Digital Content Protection)機構に準拠の端子が義務づけられる。アナログRGB,色差コンポーネントビデオ,Sビデオ,コンポジットビデオといったアナログ映像信号に対しては,CGMS-Aプロテクションが組み込まれ,さらにコンテンツ側の著作権保護ポリシーに従った形で解像度変換も行われる。つまり,ハッキングしやすいアナログビデオ信号については,すでに出力段階でハイビジョンを低解像度化して出力してしまう……という措置も可能にするのだ。つまり不正コピーされても,低解像度化で画質を低下させて価値を低くするというわけだ。
Windows Vista世代ではグラフィックスカードのようなPCデバイスの接続端子にも著作権保護機構が盛り込まれる。将来的には非対応ビデオカードではハイビジョンの再生が行えなくなる可能性も大
|
この「PVP-OPM」,「PVP-UAB」のコンビネーションにより,次世代DVDコンテンツはもちろん,次世代メディアの主役ともいわれるネットワーク配信のコンテンツまでもが保護されるようになり,その保護の範囲内でユーザーは安心してデジタルデータのやりとりができるようになる(購入したコンテンツの個人利用権と著作権保護の議論については,ここではあえて触れない)。 ここまで徹底した著作権保護機構がPCシステム,Windows Vistaに組み込まれるのは,これまでのPCシステムが,主流デジタルコンテンツであるCD-DA(音楽CD)やDVD-Videoのカジュアル違法コピーの温床となってしまったことへの反省があるためだ。また,もちろん,デジタルコンテンツ業界から強い要望があったことも,大きな動機になっている。 これまでPCは,コンテンツを作り出す側の機械……いわゆるプロフェッショナル機材と民生機の中間的な位置づけであった。プロ機と民生機の境が曖昧だったからこそ,PCが安価な開発機として広く利用されるようになり,その流れでコンテンツの取り扱いについては特権を与えられてきたような経緯もあった(編注:業務用機材を使った映像のデジタルコピーは著作権法の規制範囲外)。ところがPCが一般化し,もはや民生機となりつつある現在,そうした特権の見直し時期がやってきたというわけだ。 Windows Vistaは使いやすくなった最新Windowsという側面のほかに,次世代メディアコンテンツを利用するためのプロトコルとしての側面も持たされているのである。(トライゼット西川善司)
|
|
|