5
ビデオトランスコーディングの検証:AMD、Intel、Nvidiaの詳細

Intel、AMD、Nvidia: デコードとエンコードのサポート

デコードサポート:フォーマットの歴史

Intelにとって、モーション補正は、数世代のグラフィックス製品(GMA 900、850、3000、3100)において、ビデオパイプラインのハードウェアアクセラレーションが唯一採用されていた段階でした。つまり、Intelのロジック回路がモーション補正を行う前に、ソフトウェアデコーダーを使用してビデオビットストリームを解凍する必要がありました。MPEG-2の完全なハードウェアデコードが実現したのは、3100の後継機種で、VC-1とH.264のサポートは4500MHDまで待たなければなりませんでした。GMA 500はImagination TechnologiesがIntel向けに開発したため、GMA 500には含まれません。

一方、AMDは最近、Radeon HD 6000シリーズとともにUVD 3をリリースしました。当初、UVD 1はVC-1とH.264のデコードをフルサポートしていました。UVD 2では、MPEG-2に周波数変換と動き補償が追加されました。UVD 3では、MVC、MPEG-2、MPEG-4/DivX/Xvidのデコードをフルサポートしています。AMDの5000シリーズカードのUVDは、ファームウェアレベルのリビジョンアップが行われました。ハードウェアの変更が十分に行われたため、AMDはデュアルストリームデコードのサポートを追加しました。Radeon HD 4000シリーズでは、ピクチャーインピクチャーとデュアルストリームデコードのサポートは既にありましたが、SD解像度に限定されていました。

Nvidiaは、GeForce FXでMPEG-1/MPEG-2のハードウェアデコード機能を提供し始めました。PureVideoの第一世代は、Nvidiaがそのハードウェアを採用し、デインターレースとオーバーレイのサイズ変更を改良してGeForce 6000シリーズに搭載したことで誕生しました。しかし、周波数変換、初期実行、可変長デコードがサポートされていなかったため、デコードアクセラレーションは限定的でした。H.264のハードウェアデコードはGeForce 6600まで実現されていませんでした。現在、PureVideoは第四世代に進化し、MPEG-4(アドバンスド)シンプルプロファイルのビットストリームデコードと、3D Blu-rayコンテンツ用のMVCが追加されています。

エンコードサポート

Quick Syncが登場するまでは、デスクトップPC向けの固定機能エンコーダーというものは存在しませんでした。ほぼすべてのエンコードは、CPUパワーのみを使ってソフトウェア側で実行されていました。高速なコンピューターがあれば、エンコード速度も速くなる、それだけのことでした。そして、かなり昔のことを思い出すと、ソフトウェアベースのエンコードはシングルスレッドでしか実行されず、パフォーマンスが著しく制限されていた時代がありました。時代は変わり、処理はほぼ並列化できるようになりました。

Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。

大部分は依然としてソフトウェアベースのエンコーダを扱っています。唯一の違いは、GPGPUプログラミングライブラリを使ってGPUですべての処理を実行できるエンコーダが登場したことです。私たちは皆、汎用GPUコンピューティングこそが​​、少なくともCPUが提供する限定的な並列処理能力と比較すると未来の技術だと考えてきましたが、ここで扱うタスクは、汎用ロジック回路ではCPUほど高速にも効率的(電力効率的にも)にも実行できません。そのため、グラフィックカード上のハードウェアで動作するGPGPUベースのエンコーダと、Intelの固定機能と汎用機能を組み合わせた実装を比較することになります。

エンコード側では、固定機能ロジックがプログラマブル実行ユニットと連携して動作します。EU(Intelはコプロセッサと呼んでいます)にはメディアサンプラーブロックが接続されており、動き推定を処理してプログラマブルロジックを補完します。もちろん、トランスコード中に発生するデコードタスクは、すでに説明したのと同じ固定機能パイプラインを通過するため、そこでもパフォーマンスが向上します。MPEG-2、VC-1、またはAVCを入力すると、反対側からMPEG-2またはAVC出力が得られます。 

対象となるアプリケーションによって、各社がクイックシンクをどのように活用しているかは当然異なります。例えばCyber​​Linkの場合、PowerDVD 10はパイプラインのデコードアクセラレーションを活用しています。一方、MediaEspressoプロジェクトははるかに複雑で、ファイルの読み込み、デコード、エンコード、そして出力ストリームの折り返しといった処理が必要になります。さらに、ビデオ編集アプリであるPowerDirectorでは、エンコード段階に送られる前に行われるエフェクトや合成といったポストプロセスも考慮する必要があります。

トランスコーディングの最適化

トランスコードパイプラインは、ファイルの読み込み、デコード、エンコード、そして出力という一連の処理で構成されます。GPGPUベースのエンコードが開発される以前は、トランスコードソフトウェアはCPUを使用してビデオメモリ(ハードウェアアクセラレーションによるデコード後にデータが保存される場所)からデータをコピーし、システムメモリに送り返していました。そして、CPUがエンコード処理を実行していました。

固定機能デコーダはGPUと同じシリコン上に配置されているため、ソフトウェアはデータをシステムメモリにコピーし直す処理(最初の図のステップ4)を省略できます。汎用GPUベースのトランスコーディングでは、ほぼすべてのプロセスを1つのシリコン上で実行できます。ただし、これらはパフォーマンス重視の考慮事項であり、本日の焦点は品質です。それでは先に進みましょう。