Windows Media Player12とffdshowのDXVA機能

 
Windows Media Player12とffdshowのDXVA機能
 
Microsoft DTV-DVD Video Decoderとffdshow DXVA Video Decoderを
MPC HomeCinemaのGPU動画再生支援に利用
(2010.01.15作成)
DXVA(DirectX Video Acceleration、DirectX ビデオアクセラレータ)は、DirectShow
 の下でビデオレンダリングをアクセラレーションする為のMicrosoft 標準の新しい API
 (Application Program Interface)。
 DXVAには現時点ではDXVA1とDXVA2があり、DXVA2の方が性能が優れ、対応フォ
 ーマットが豊富だが、利用出来るのはVistaと7のみとなる。
Windows 7付属のWindows Media Player12は、GPUの動画再生支援機能に対応し
 ておりHD動画再生時のCPU負担を大きく下げると云う。これは、一新されたMPEG2と
 H.264のデコーダ Microsoft DTV-DVD Video DecoderがDXVAに対応した事に
 基づく部分が大きい。
一方、多くのフォーマットに対応しているDirectShow Decoderとして有名なffdshowは、
 最近になってffdshow DXVA Video Decoderが搭載されて、H.264とVC-1に対し
 て DXVA機能を利用する事が可能となった。
MPC HomeCinemaは他形式の動画に対応したマルチメディアプレイヤーで、DXVA
 
を使ったGPUの動画再生支援機能を外部フィルタを借用しても実行する事が可能とな
 っている。
そこでGeForce9600GT搭載PCにおいて、MPC HomeCinemaの外部フィルタとして
 Microsoft DTV-DVD Video Decoder
及びffdshow DXVA Video Decoder
 を使用した際の各種動画ファイル再生時のCPU使用率を検討してみた。
 マシン環境は、Intel Core 2 Quad Q6600(2.40GHz)、DDR2(PC2-6400)6GBで、
  GeForce9600GT(VRAM 512MB、Drive v195.62)。
  OSは 64ビット版Windows 7 Professinal 。
 32ビットコーデック環境は、Preferred Filter Tweaker for Windows 7を使用する事に
  より筆者が常用しているVista環境 とほぼ同様の環境とした(こちらを参照)。
  なお、ffdshowのビデオ設定では H.264/AVC等は常時有効としてあるが、MPEG2
    は利用時のみ有効に設定した。
  光学ドライブは、I-O DATAのBD&HD DVDコンポドライブBRD-SH6B(LG電子のGGW
  -H20N)を使用した。
 
 I.MPC HomeCinemaの環境設定
   MPC HomeCinemaは、32ビット版のv1.3.1249.0を使用した。
    「表示」メニュー/「オプション」の「内部フィルタ」項目の「変換フィルタ」で、該当フィル
     タのチェック/未チェックを行った。
     なお、ソースフィルタのMatroskaとMP4/MOVは別の理由(こちらを参照)から外して
      使用している。
   「表示」メニュー/「オプション」の「外部フィルタ」項目で「フィルタの追加」から、
    DXVA機能をサポートしシステムにインストールされている映像デコーダを登録した。
    H.264/AVC動画のデコーダとして、
      CyberLink H.264/AVC Decoder(PDVD8)
       PowerDVD8 Ultra b8.0.2217に含まれるデコーダを使用。
      MicrosoftDTV-DVD Video Decoder
       Windows 7インストール時に導入されるWindows Media Player12.0.7600.16415
       由来のバージョン6.1.7140.0を使用
      ffdshow DXVA Video Decoder
       32ビット版ffdshow_rev3200_20100112_clsidを使用
    MPEG2動画のデコーダとして、
      CyberLink Video/SP Decoder(PDVD8)
    VC-1動画のデコーダとして、
      ffdshow DXVA Video DecoderWMVideo Decoder DMO
    対象として、DXVA機能をサポートしていない ffdshow Video Decoderを登録。
    各々「優先する」として試験目的に応じて、該当フィルタのチェック/未チェックを行った。
 
 II.グラフィックボードのDXVA対応規格
  
 GPUは、GeForce9600GT(VRAM 512MB、Drive v195.62) を使用した。
    DXVA Checker32_2.1.0.0(ここから入手)によるDXVA対応状況の解析は、以下
    の如く、MPEG2, VC1, WMV9, H.264を DXVA2でサポートしているのが確認出来る。
 
 III.素材
    1) H.264_AC3.m2tsファイル
     Panasonic製のビデオカメラ HDC-SD9のHGモードで撮影してHD Writerでムーブ
     した素材
     
H.264_AC3.m2ts[映像:H.264/AVC(High@L4.0)、解像度:1920x1080、29.97fps、
        8.0Mbps]
    2) H.264_AAC.mp4ファイル
     SANYO製のムービーカメラ Xacti DMX-HD1000のFull-HDモードで撮影した素材
      H.264_aac.mp4[映像:H.264/AVC(Main@L4.0)、解像度:1920x1080、59.94fps、
       11.7Mbps]

    3) MPEG2_AAC.tsファイルの再生
     地デジ邦画番組をPT1で録画した素材
      MPEG2_AAC.ts[映像:MPEG2(Main@High)、解像度:1920x1080、29.97fps、
      12.0Mbps]
    その他
  
 Windows Media Player12のGPU動画再生支援機能
   Windows 7で一新されたMPEG2とH.264のデコーダ Microsoft DTV-DVD Video
     Decoder(msmpeg2 vdec.dll)を MPC HomeCinemaの外部フィルタとして借
     用することによりその性能を検証してみた。     
     Microsoft DTV-DVD Video Decoderは、Windows 7インストール時に導入
      されるバージョン6.1.7140.0である。

    DXVA Checker(x32) 2.1.0.0を用いて、インストール済み対応デコーダを解析。
      H.264_AC3.m2tsファイルのDXVA Checker解析
 
       何故か?CyberLink H.264/AVC Decoder (PDVD8)を確認出来ない。
      H.264_AAC.mp4ファイルのDXVA Checker解析
       敢えてffdshow DXVA Video Decoderを無効にしてチェックした(下図参照)。
 
      MPEG2_AAC.tsファイルのDXVA Checker解析
 
     Microsoft DTV-DVD Video Decoderは、DXVA2対応のH.264及び MPEG2デコ
      ーダとして利用可能となっている事が確認出来る。
   方法
     MPC HomeCinemaの外部フィルタとして以下のデコーダを登録し、チェック/未チ
     ェック(有効/無効)して再生した。
 
     結果は、WindowsタスクマネージャーでCPU使用率の平均値を目算で示した。
   成績
    CPU使用率
     H.264_AC3.m2tsファイルの再生
 使用デコーダ
内部H264/AVC
(DXVA)
外部ffdshow
外部PDVD8
外部Microsoft
DTV-DVD
 CPU使用率
 (平均値)
7%
25%
7%
8%
     H.264_AAC.mp4ファイルの再生
 使用デコーダ
内部H264/AVC
(FFmpeg)
外部ffdshow
外部PDVD8
外部Microsoft
DTV-DVD
 CPU使用率
 (平均値)
22%
24%
7%
8%
     MPEG2_AAC.tsファイルの再生
 使用デコーダ
内部MPEG-2
外部ffdshow
外部PDVD8
外部Microsoft
DTV-DVD
 CPU使用率
 (平均値)
11%
20%
12%
13%
     Microsoft DTV-DVD Video DecoderのCPU使用率を DXVA機能をサポートし
      ていない ffdshow Video Decoderと比較すると、CyberLink社のPDVD8と同
      程度にCPUの負担を軽減させる効果がみられた。
       H.264_AC3.m2tsファイルでは68%、 H.264_AAC.mp4ファイルでは67%、
       MPEG2_AAC.tsファイルでは35% の負担減。
    画質
      H.264_AC3.m2tsファイルを再生して画質を比較したが、Microsoft DTV-DVD
      Video Decoderを使用した場合でも、優秀なCyberLink H.264/AVC Decoder
      (PDVD8)と比べてやや荒いが遜色なかった(下図)。
    考察
     Windows Media Player12は、CPUコアー数の少ない非力な環境での実験におい
      ては50%→17%等と著明な減少効果が観察されると云う。
     今回は別の方法論であったが、Core 2 Quad環境でもMicrosoft DTV-DVD Video
      Decoderは明らなDXVA機能を有する事が確認され、DXVA対応プレイヤーである
      MPC HomeCinemaで利用出来る事が示された。
     なお、MPC HomeCinemaでWMVファイルを再生する場合に、WMVideoDecoder
      DMOを外部デコーダとして借用しても、CPUの負担を軽減させる効果は得られ
      なかった。
 
  
 ffdshowのDXVA対応について
   ffdshow_rev3200_20100112_clsidとffdshow_rev3200_20100112_clsid_x64では、
   「DXVA Video decoder configuration」の設定でH.264とVC1に対してDXVA機能を
   有するffdshow DXVA Video Decoderを利用する事が可能となった。
 
   H.264_AAC.mp4ファイルDXVA Checker解析
 
    MPC HomeCinemaのオプションで、外部フィルタとしてffdshow Video Decoder
     別に ffdshow DXVA Video Decoderを登録してチェックする。
     H.264のデコードが可能な内部フィルタ、他の外部フィルタを無効にする。
 
    H.264圧縮ファイルを再生すると ffdshow DXVA Video Decoderが利用される。
 
     CPU使用率(Nero5のAVC_HDTVで変換したH.264_AAC.mp4ファイルを再生)
     
ffdshow Video Decoder利用時
    ↓
    ffdshow DXVA Video Decoder利用時
       ffdshow Video Decoderと比べて、CPU使用率の平均値31〜39%→6〜
        10%に減少した。しかし、

   <問題点>ffdshow DXVA Video Decoderで再生の可否
         印:再生可能、 ×印:再生不可(音声のみで映像の描画が出来ない)
     H.264_AC3.m2tsファイル
      Panasonicのビデオカメラ HDC-SD9のHGモードで撮影してムーブした素材
      ブルーレイのビデオ作品Bから AnyDVD HDでリッピングした素材
      PanasonicのBDレコーダーDMR-BW800で録画した地上デジタル放送(邦
        画番組)を、HGモードでダビングしたBD-REから リッピングした素材

     H.264_AAC.mp4ファイル
      ×SANYOのXacti DMX-HD1000でFull-HD撮影(Main1,920x1,080, , 59.92fps)
      ×SANYOのXacti DMX-HD1000でHD-SHQ撮影(Base1,280x720, 29.97fps)
      SANYOのXacti DMX-CA65で撮影した素材(Main 640x480、29.97fps)
      QuickTime Proで変換した素材(Main 504x336, 24fpsないしMain 640x480
         , 29.97fpsないしMain1,920x1,080, 59.92fps)
      TMPGEnc 4.0 XPressで変換した素材(Baseline 640x480、29.97fps)
      HandBrakeで変換した素材(Main 544x3040、23.976fps)
      StaxRipで変換した素材(High 544x3040、23.976fps)
      Nero5のAVC_HDTVで変換した素材(Main1,920x1,080, 30.002fps)

     ナッ何んと!筆者が常用している SANYOの Xacti DMX-HD1000で撮影した
      
素材のみが ffdshow DXVA Video Decoderで再生出来ない Y (>_<、)Y

      ffdshow Video Decoderは、2007年12月03日のffdshow_rev1685_clsid以降か
      ら Xacti DMX-HD1000撮影したFull-HD素材の再生が可能となっている。
      この素材を DSベースの動画編集・変換ソフトで再利用する場合、このバージ
      ョンのffdshow DXVA Video Decoder
を有効にしていると
悪影響が危惧さ
      ので、は無効にしておく事とした。
      ・・・何時かは改良される事が期待される。
    画質
     H.264_AC3.m2tsファイルを再生して画質を比較したが、ffdshow DXVA Video
     Decoderを使用した場合でも、CyberLink H.264/AVC Decoder(PDVD8)と比
     べてやや荒いが遜色なかった。
     なお、H264/AVC(DXVA)を使用した場合は、ややノイズとボケがみられる映
      像となっている。
   <備考>
    64ビット版MPC HomeCinemaはPDVD8を借用出来なかったが、DXVA対応の
      ffdshow DXVA Video Decoderを利用出来るようになった。

    筆者の使用するGeForce9600GTは、ffdshow DXVA Video Decoderの場合で
     も VC-1のDXVAには未対応のようだ(CPUの負担軽減効果が認められない)。


| Kenのムービー計画へ >動画狂コーナーへ |