TMPGEnc 4.0 XPress にて NVIDIA CUDA 2.0 を使用したエンコード時間比較
先日、ノイズの多い映像を TMPGEnc 4.0 XPress にてエンコードすることがありました。ノイズが多いので、ノイズ除去や輪郭強調などのフィルターをかけたのですが、フィルターをたくさんかけると当然のことながらエンコード時間がとんでもなく延びてしまいます。
そこで TMPGEnc 4.0 XPress に先頃実装された NVIDIA CUDA 2.0 の機能を使ってみようと思い立ったわけで、どのくらい効果があるのか調べてみました。
測定条件
以下の条件で、ソース映像1分(MPEG-2)のエンコード時間をCUDAのオプションを変えて比較。
- エンコードソフト:TMPGEnc 4.0 XPress Version. 4.7.0.280
- OS:Windows XP SP2
- CPU:Intel(R) Core(TM) i7 920 2.66MHz(OCなし)
- Hyper Threading(HT):ON
- メモリ:3G byte
- エンコード形式:DivX 2pass
- CUDAデバイス(ビデオカード):nVidia GeForce 9600GT
NVIDIA CUDA 2.0 の設定の「フィルタリングにCUDAを使用する」と「ハードウェア映像デコーダーを使用する」の組みあわせを変えて測定する。
測定結果
3回くらいの平均を取ればより正確なのでしょうが、1回のみの結果です。
使用フィルタ:インターレース解除、映像クロップ、映像ノイズ除去、輪郭強調×2、映像シャープネス、スマートシャープ
フィルタリングにCUDAを使用する:ON
ハードウェア映像デコーダーを使用する:ON
エンコード時間:2分46秒
フィルタリングにCUDAを使用する:ON
ハードウェア映像デコーダーを使用する:OFF
エンコード時間:2分30秒
フィルタリングにCUDAを使用する:OFF
ハードウェア映像デコーダーを使用する:ON
エンコード時間:4分20秒
フィルタリングにCUDAを使用する:OFF
ハードウェア映像デコーダーを使用する:OFF
エンコード時間:4分03秒(CUDA未使用)
使用フィルタ:インターレース解除
フィルタリングにCUDAを使用する:ON
ハードウェア映像デコーダーを使用する:ON
エンコード時間:1分20秒
フィルタリングにCUDAを使用する:ON
ハードウェア映像デコーダーを使用する:OFF
エンコード時間:1分04秒
フィルタリングにCUDAを使用する:OFF
ハードウェア映像デコーダーを使用する:ON
エンコード時間:1分18秒
フィルタリングにCUDAを使用する:OFF
ハードウェア映像デコーダーを使用する:OFF
エンコード時間:1分04秒(CUDA未使用)
なお、「NVIDIA CUDA 2.0 使用」のチェックボックスをOFFにした場合は、「フィルタリングにCUDAを使用する」「ハードウェア映像デコーダーを使用する」が両方ともチェックが外れるが、「フィルタリングにCUDAを使用する:OFF、ハードウェア映像デコーダーを使用する:OFF」の結果と同一であった。
結論
測定結果から、フィルターの処理には断然CUDAが有利である。また、ハードウェア映像デコーダーを使用した場合は、大幅に処理時間が延びてしまう。ここは、GPUとCPUの性能のバランスで違ってくると思われる。最近の GTX295 などを使用した場合、どの程度改善されるのか気になるところ。
従って、現在の環境で、CUDA 2.0 の設定はフィルターの有無にかかわらず、
フィルタリングにCUDAを使用する:ON
ハードウェア映像デコーダーを使用する:OFF
で行こうと思います。
○参考リンク
株式会社ぺガシス:TMPGEnc 4.0 XPress 注目の新機能
TMPGEnc 4.0 XPress CUDA機能 体験版 チュートリアル
株式会社ぺガシス