2016年1月4日月曜日

NVIDIA 製 GPU の動画再生支援機能について【動画をハードウェアアクセラレーションで再生する】

NVIDIA 製 GPU の多くのモデルには、YouTube などの H.264 (AVC) 動画を再生支援してくれるデコーダーが搭載されています。

昔はこのビデオデコーダーは "PureVideo" や "PureVideo HD" などと称されていて、公式サイトにもモデルごとの機能の一覧が載っていました。

しかし、困ったことに現在ではあまり大々的にはこういったビデオデコーダーの仕様は記載されないようになっているようなのです。

理由は NVIDIA のみが知るというよりありませんが、CPU によるソフトウェアデコードでも十分なパフォーマンスが得られるようになってきて、あまり有難がられないからではないかと思います。

といっても現在でも新しい世代の NVIDIA 製 GPU ほど、続々と高性能・高機能なビデオデコーダーが搭載されるようにはなっています。といっても公式にその機能の名称がつけられているわけではなさそうです。

世代

NVIDIA 製 GPU のビデオデコーダーはいくつか世代によって機能・性能が分かれており、現在のところ第 7 世代まであるようです。

上述の通り、公式名称はないため、例えば第 5 世代のデコーダーは俗に "PureVideo HD 5" or "VP5" などと称されているようです。

参考
Nvidia PureVideo

VDPAU Feature Set

ところで、NVIDIA は Linux などの UNIX 系 OS のサポートも行っており、それらの環境から GPU のビデオデコーダーを利用するための API は VDPAU (Video Decode and Presentation API for Unix) と言います。VDPAU は NVIDIA 公式の呼称です。

参考
VDPAU

そして GPU が搭載しているビデオデコーダーの世代によって機能は違いますので、機能別に例えば VDPAU Feature Set A や VDPAU Feature Set B などとして公式に分類されています。

Feature Set A は俗にいう "PureVideo HD 1"、Feature Set B は "PureVideo HD 5" におおむね相当しています。

この分類は Windows ユーザーにも十分役に立つと思います。なぜなら、ハードウェアに搭載されたビデオデコーダーが UNIX から利用できて、Windows からでは利用できない仕様になっているということはおおよそないと思われるからです。

自分の NVIDIA 製 GPU がどの世代のデコーダーを搭載しているのかを知るには以下の公式サイトが役に立ちます。

Appendix A. Supported NVIDIA GPU Products

これからわかるように、モデルナンバー上の世代とビデオデコーダーの世代は必ずしも一致していません。

ビデオデコーダーの性能の目安

VDPAU Feature Set の分類は機能を表していますが、あくまでも上限の画素数やコーデックについてです。

これは 同じ世代でも GPU の動作クロックなどといった要素によってさまざまなため、どれぐらいの性能があるかは明示されていません。

YouTube 動画での目安としては以下のようなもののようです。

Feature Set A B,C は仕様としてフル HD 程度の画素数まで対応しています。

Feature Set D のデコーダーは前世代のデコーダーに比べると性能が非常に高く、また 4K 画素数のデコードに対応しています。手持ちの Quadro K2100M だと大体 3840 * 2160 の YouTube 動画は 30 Hz なら余裕で再生できますが、60 Hz は完全に無理です。40 Hz 程度が限界のようです。

Feature Set E のデコーダーは性能がさらに高くなっています。Digital Cinema Initiatives という団体による 4K のもう 1 つの定義である DCI 4K (4096 * 2160 画素) のデコードに対応しています。

Feature Set F では H.265 (HEVC) のデコードに対応しているようです。

0 件のコメント:

コメントを投稿