連載
» 2007年02月20日 11時00分 公開

元麻布春男のWatchTower:Vista第1世代のテレパソは買いか!? (1/2)

ようやくVistaを搭載した第1世代のPCが出そろってきたが、日本独自で進化を遂げてきたデジタル放送などのHDコンテンツ視聴環境と、新UIのWindows Aeroとの関係を軸に現状を見ていく。

[元麻布春男,ITmedia]

HDコンテンツ視聴時にWindows Aeroがオフになる矛盾

Vistaでオーバーレイ表示を行なうとWindows Aeroが無効になる旨のアラートが表示される

 わが国のPC、特にデスクトップPCにおいてTVの占める地位は高い。映画産業がTVのスポンサーでもある米国でコンテンツの王様が映画だとすれば、TV局が映画の制作費を出すわが国では、コンテンツの王様はTVだと言っても過言ではない。テレビの受信機能をフィーチャーしたPCは、テレパソなどと呼ばれ、量販店の店頭で重要な位置を占める。テレパソは、いかにTVをきれいに受信するか、ディスプレイに表示するか、録画するかを競い合っている。その延長線上にデジタル放送への対応があり、デジタル放送の表示と録画は、デスクトップPC、ノートPCを問わず、ハイエンドモデルでは不可欠な機能ととらえられている。

 1月30日に一般発売が始まったWindows VistaをプリインストールしたPCであっても、それは例外ではない。ところが、Windows Vistaをプリインストールしたテレパソは、これまでとちょっと挙動が異なるのだ。それが最も顕著に表れるのは、デジタル放送やHD DVD/Blu-rayといった、HDの動画コンテンツを視聴する場合だ。

 これらHDの動画コンテンツに対応したPCは、言うまでもなくハイエンド、あるいはそれに準じたモデルである。ほとんどがHome Premium以上のグレードのWindows Vistaをプリインストールし、Aeroに対応したグラフィックス機能を備える。ところが、HDの動画コンテンツの再生を始めると、Aeroが無効になってしまうのである。特に、ウィンドウ状態で再生アプリケーションを動かすと、明らかにAeroが無効になってしまうモデルが大半を占める。どうしてこのようなことが生じるのだろうか。

グラフィックスのアーキテクチャを一新したVista

Vistaではドライバモデルがユーザーモードとカーネルモードに分離された

 Windows Vistaでは、システムの安定性向上、将来のGPUへの対応、仮想化環境の普及、コンテンツ保護技術の確立など、さまざまな理由でグラフィックスアーキテクチャが改められた。Windows NT 4.0からWindows XPまで、ディスプレイドライバをはじめとする主要なグラフィックスコンポーネントは、カーネルモードで動作していた。カーネルモードで動作するソフトウェアは、たった1つの誤動作でシステム全体の動作を脅かしてしまう。ディスプレイドライバの不調が、ブルースクリーンを発生させる引き金になりかねない。

 Windows Vistaでは、ディスプレイドライバをシンプルなカーネルモードドライバと、大半の処理を受け持つユーザーモードドライバに分離し、多くのグラフィックスコンポーネントをユーザーモードに移した。この新しいドライバモデルがWindows Vista Display Driver Model(WDDM)である。

 このWDDMに準拠したディスプレイドライバと連携して動作するグラフィックスコンポーネントの1つに、Desktop Window Manager(DWM)がある。DWMは、デスクトップ描画のコーディネーターであり、各アプリケーションの描画をデスクトップ上で実際に表示されるサイズに調整して、描画バッファ(バックバッファ)へ書き込む。すべての描画が完了したところで、そのバッファをフロントバッファ(ディスプレイに出力されるバッファ)へ切り替える。

 このようなアーキテクチャとすることで、ユーザーは描きかけの画面を見ることがなくなる(画面描画品質の向上)。また各アプリケーションはデスクトップへ描画するウィンドウサイズを気にせずにすむようになる。これはあたかもアプリケーションが、グラフィックスチップを占有して、フルスクリーン描画をしているようなものだ。

 この延長線上には、アプリケーションから見たグラフィックスチップを仮想化してしまおうというアイデアがある。グラフィックスチップの仮想化は、多くのシェーダーユニットを内蔵し、マルチスレッド処理が可能になったグラフィックスチップの性能を引き出すことを可能にする。たとえば40個の汎用シェーダーユニットを内蔵したグラフィックスチップがあったとすると、Windows XPでは40個のシェーダーユニットを1つのアプリケーションが利用していた。Windows Vistaでは、40個を1つのアプリケーションが使うこともできれば、あるアプリケーションが20個、もう1つが20個といった使い方も可能になる(もちろんアプリケーションは、自分がいくつの物理シェーダーユニットを使っているかは認識しない)。

 さらに仮想化は、それぞれの仮想グラフィックスチップ間でリソースをセキュアに管理することにも貢献する。この機能をサポートするグラフィックスチップは、ページ単位でメモリを管理するMMUを内蔵することになっている。Windows Vistaのグラフィックスサブシステムのうち、現在、明確な形でユーザーの目に触れるのはAeroであり、Flip 3Dであるわけだが、グランドプランとしてはこのような構想に基づく。

WinHEC 2006で公開されたWDDM 2.0/2.1の各フィーチャー(写真=左/中央)と各バージョンの相違点(写真=右)

理想と現実のギャップを埋めるべく段階的に機能を向上するも……

 このような大きな構想を実現する場合、問題になるのは理想と現実とのギャップである。マイクロソフトにどれだけ優秀なエンジニアがいようと、1日ですべてのプログラムを完成することはできない。また、マイクロソフトの努力とは別に、この構想を実現できるグラフィックスチップが必要だ。実際のハードウェアによる検証なしに、ソフトウェアの開発が完了することはない。

 大きな構想を実現するには、少しづつステップを踏みながら、ソフトウェアとハードウェアの連携をとりながら開発を行っていく必要がある。Windows Vistaも例外ではなく、グラフィックスハードウェアとWDDM(ISVが提供するドライバと、マイクロソフトが提供するモジュール)は、段階的に機能を向上させていくことになっている。

WDDMとDirectXの相関関係
WDDMのバージョン GPU(DirectXの世代)
WDDM 1.0 DirectX 9
WDDM 2.0 DirectX 10
WDDM 2.1 DirectX 10.1

 PC上でHD動画を扱う際に、多くのコンテンツホルダはコンテンツ管理の枠組みを用意することを求めた。言い換えれば、不正にコピーできない仕組みを組み込むよう、求めたわけだ。このこと自体は、Windows Vistaのグラフィックスアーキテクチャの方向性と合致するし、このような要求があることがWindows Vistaの方向性に影響を与えたとも考えられる

 Windows Vistaでは、HD動画が記録されたメディア(HD DVDやBlu-ray Disc)あるいはデジタルTVチューナーユニットのソースを暗号化されたまま取り出し、セキュアな環境でデコードし、バスの先にグラフィックスチップがある場合は、再暗号化して送り出す。グラフィックスチップは、メモリを仮想化し内蔵するメモリマネージャユニットで、1つのアプリケーションがほかのアプリケーションが利用しているメモリ領域を参照できないよう管理する。これにより、HD動画再生アプリケーションが展開するコンテンツの中身が、ほかのアプリケーション(画面キャプチャ機能を持ったものなど)からのぞき見られることはなくなる。DWMのみがすべてのメモリ領域を参照し、最終的な描画画面を作成し、HDCPによる暗号化を伴う形で、HDCP対応のディスプレイに送り出す。つまりディスプレイの上ではコンテンツが見えるのに、画面をキャプチャすることはできない、という仕組みができあがる。

 問題は、現時点で上に示したグラフィックスメモリの仮想化が実現していない点にある。この機能が提供されるのはWDDM 2.1とされており、Windows VistaにOS側コンポーネントが含まれていないのはもちろん、現時点では正式に対応したグラフィックスチップも存在しないものと思われる。そもそも、グラフィックスチップを含めた、I/Oデバイスの仮想化は、現在PCI SIGで進行中の標準化プロジェクトであり、それを待たずに独自のドライバと独自のインプリメントでグラフィックスチップに仮想化機能を付与するのは相当のリスクが伴う。マイクロソフトはWDDM 3.0で、仮想マシンの対応も行う(これが実現するとVirtualPC上で、Aeroが動く複数のWindows Vistaがフル機能に近い形で利用できるようになる)としているが、独自のインプリメントではWDDM 3.0への移行時に、インプリメントをやり直さなければならなくなることも考えられるからだ。

WDDM 2.1での堅牢性を述べたスライド(写真=左と中央)。仮想マシンへの対応はWDDM 3.0からの予定だ(写真=右)

 つまり、現時点のWindows Vistaでは、ディスプレイ出力でHDCPをサポートしていようと、完全にセキュアな形でコンテンツ保護されたHD動画を扱うことができない。コンテンツがデコードされたグラフィックスメモリがほかのアプリケーションから覗かれてしまう可能性があるからだ。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

この記事が気に入ったら
ITmedia PC USER に「いいね!」しよう