Unified Video Decoder (UVD) について
Unified Video Decoder (UVD) は、かつてUniversal Video Decoderと呼ばれていた、
ATI Technologies (現AMD) が開発したハードウェア動画デコーダーです。この技術は、CPUに代わって動画のデコード処理を行うことで、システム全体の負荷を軽減し、よりスムーズな動画再生を実現します。特に、高解像度動画や複雑なコーデック処理において、その効果を発揮します。
対応OS
UVDは複数のオペレーティングシステムで利用できます。
Windows: 技術発表当初からサポートされており、DXVAというAPIを通じてハードウェアアクセラレーションが可能です。
メディアプレーヤーはDXVAをサポートすることでUVDを利用できます。
Linux: 2008年10月以降、AMDが設計したXvBAというAPIが提供され、
X Window SystemにおけるX video extension (Xv)を通じてUVDのハードウェアアクセラレーションが利用できるようになりました。また、2013年4月からは、NVIDIAによるVDPAU (Video Decode and Presentation API for Unix) を介したオープンソースのUVDサポートも提供されています。
機能
UVDは、時代とともに進化を続け、多くの機能強化が行われてきました。以下に、その主な変遷と機能について説明します。
UVD / UVD+
初期のUVDは、ATIのXilleonビデオプロセッサーをベースとしており、GPUと同じダイに組み込まれていました。Advanced Video Processor (AVP) も同様です。AMDによると、UVDは
H.264/AVCと
VC-1のデコードを完全にハードウェアで行うことができます。ただし、動画のポストプロセッシングはピクセルシェーダーやOpenCLカーネルに委ねられます。MPEG-2のデコードもサポートされていますが、これはUVDではなくシェーダーによって処理されます。
UVDはBlu-rayや
HD DVDの再生要件を満たしており、
H.264/AVCならば40Mbpsまでのビットレートをデコード可能です。また、
H.264/AVCにおけるCABACもサポートしています。
以前のGPUではCPUの補助が必要だった処理を、UVDはほとんどオフロードできます。旧世代のGPUでは、
H.264や
VC-1のビットストリームやエントロピーの伸展をCPUで行っていたのに対し、UVDはVLC/CAVLC/CABAC/フーリエ変換/動き予測/デブロッキングフィルターなどの処理をハードウェアで実行できます。ポストプロセッシング(ノイズ除去、インターレース解除、拡大・縮小など)はシェーダーに任せられます。AMDは、65nmプロセスにおいて、UVDがわずか4.7mm²のダイ面積しか使用しないと述べています。
UVD+は、Radeon HD 3000シリーズから搭載されたUVDの改良版で、高解像度動画のためにHDCPをサポートしています。ただし、UVD+は単にUVDとして販売されています。
UVD 2
Radeon HD 4000シリーズの発表に伴い、UVDは大幅に更新され、UVD 2となりました。UVD 2は、
H.264/MPEG-4 AVCや
VC-1のビットストリームの完全なデコードに加え、MPEG-2のiDCT(離散コサイン変換)レベルでのアクセラレーションも可能になりました。性能向上により、2つのストリームを同時にデコードできるようになったため、ピクチャー・イン・ピクチャーが可能となり、Blu-rayにおけるBD-Liveとの完全な互換性を実現しました。
UVD 2.2
UVD 2.2では、ローカルメモリインターフェースが再設計され、
H.264/
VC-1/MPEG-2の動画との互換性が向上しました。しかし、マーケティング上では「UVD 2 Enhanced」として、RV770/RV730シリーズで採用された
H.264/
VC-1/MPEG-2の同時デコード機能が強調されました。UVD 2.2は、UVD 2に対する追加アップデートという位置づけです。
UVD 3
UVD 3は、MPEG-2ビットストリームのデコード、
DivX/
XvidのMPEG-4 Part 2デコード、Blu-ray 3DのMultiview Video Codingデコードをサポートしました。さらに、120Hzのステレオ3Dサポートや、CPU補助の必要性を減らすための最適化も行われました。
UVD 4 / VCE 1
Radeon HD 7000シリーズ、Radeon Rx 200シリーズ、Rx 370(X)、Kaveri、KabiniなどのAPUに搭載されました。
H.264/AVCHDデコード時のエラー回復が改善され、AMD Fluid Motionに対応しました。
UVD 4.2 / VCE 2
Radeon R7 260(X)、R9 290シリーズ、R7 360(E)、R9 390(X)、Socket AM1のKabini、Socket FM2のKaveriに搭載されました。
UVD 5 / VCE 3
Radeon R9 285、R9 380(X)、R9 Fury(X)、R9 Nanoに搭載されました。
H.264のHigh Profile Level 5.2サポートと4K解像度のデコードに対応しました。
UVD 6 / VCE 3.1
Socket FM2とSocket AM4のCarrizo、Socket AM4のBristol Ridgeに搭載されました。
H.265と
JPEGのデコードに対応しました。
UVD 6.3 / VCE 3.4
Radeon RX 400シリーズ、RX 500シリーズに搭載されました。
H.265のエンコードに対応しました。
UVD 7 / VCE 4
Radeon RX Vegaシリーズに搭載されました。
UVDが有効なGPU
(注1): デュアルGPUである。
(注2): バージョン8.371以降のドライバーを使用しないと、
H.264向けにUVDを有効化した際にシステムがクラッシュする可能性があります。
脚注
ATI Avivo(TM) HD Technology Brief, July 2008
Presentation slides comparison between CPU decode, ATI Avivo HD and PureVideo HD and Decode comparison of
VC-1 and
H.264 video
* AMD Media Codecs—optional download