笠原一輝のユビキタス情報局

CUDAエンコードSDKで普及促進を図るNVIDIA




 NVIDIAは2009 International CESの期間中に、報道関係者を集め説明会を行ない、同社が「CUDA Video Encoder Library」と呼ぶSDK(Software Developer Kit)の導入をサードパーティーが開始したことを明らかにした。CUDA Video Encoder Libraryは、ISV(独立系ソフトウェアベンダ)がCUDA対応エンコーダエンジンの実装を助けるSDKで、従来であれば数年の単位でかかっていた開発を、数カ月のレベルまで短縮することが可能になるという。

●CUDA対応エンコードソフト開発の壁となっていたエンコーダエンジンへの実装

 NVIDIA PureVideoマーケティング担当のPatrick Beaulieu氏は、「CUDAに限らず、エンコーダエンジンをゼロから開発するとなるととても時間がかかり、そのことがCUDA対応への壁となっていた」と、なかなか進まないCUDA対応エンコードソフトウェアの開発の障害が“時間”であることを明らかにした。

 すでにNVIDIAのCUDAに対応し、GPUを利用してエンコードできるソフトウェアはいくつかある。一番最初に対応が発表されたのがElemental TechnologiesのBadaboom Media Converterで、12月にはマイナーバージョンアップが行なわれ、複数GPUに対応したバージョン1.1がリリースされている。また、8月に行なわれたNVISIONのタイミングで発表されたのは、日本のマニア御用達であるペガシスのTMPGEnc 4 XPRESSと、ワールドワイドでのデファクトとも言えるCyberLinkのPowerDirector 7という2つのソフトウェアだ。

 ただし、Badaboom Media Converterと残りの2つでは、CUDAの利用レベルには大きな違いがある。それがエンコーダエンジンの対応だ。図1を見て欲しい、これは一般的なエンコーダソフトウェアでのエンコード方法だが、まずデコーダを利用して入力された動画をフレームに分割し、それにノイズリダクションやシャープネス、色補正といったさまざまなフィルタ処理を行ない、エンコーダエンジンで実際にフレームを圧縮し、最後にオーディオとマージしてHDDに保存するという処理を行なっている。一般的なソフトウェアでは図1の①のように、すべてのプロセスをCPUで行なっているので、CPUに高い負荷がかかってしまう。

 これに対して、Badaboom Media Converterに関しては自社でCUDA対応のエンコーダエンジンを開発しているため、こうした一連の処理をほとんどGPUで行なっている(図1の③)。だが、後の2つはエンコードに関してはCPUで行なわれており、フィルタ処理までをGPUで行なっているのだ(図1の②)。しかもCPUにとってもっとも負荷がかかっているのは実はエンコードの処理なので、せっかくCUDA対応にしても図1の②のような形では効果は限定的なものに留まってしまう。

 なぜそうなっているのかは、NVISIONでのペガシスのインタビューでも触れたとおりで、エンコードエンジンの開発にはものすごい時間がかかるからだ。このあたりの時間はISVによって違うだろうが、いくら開発にC言語の経験が生かせるCUDAであっても、ゼロからエンコーダエンジンの開発を始めるとなると、やはり「年単位での時間がかかる」(Beaulieu氏)ことになる。

図1 一般的なソフトウェアでのエンコード処理

●GeForce Release 181.20以降と32SP以上を搭載したGPUが必要に

 そこで、NVIDIAは“CUDA Video Encoder Library”と呼ばれるSDKを開発し、ISVに対して配布することを決定した。「CUDA Video Encoder Libraryの登場で、ISVは従来よりも短期間でエンコーダエンジンをCUDAに対応させることができる」(Beaulieu氏)という。

 Beaulieu氏によれば、CUDA Video Encoder Libraryの詳細は以下のような形になっているという。

①対応コーデックはMPEG-4 AVCでBaselineとMainの2つのプロファイルに対応
②エンドユーザー側ではGeForce Release 181.20以上が必要

 今回発表されたCUDA Video Encoder Libraryでは、サポートするコーデックはMPEG-4 AVCのみとなり、かつ対応しているプロファイルはBaselineとMainまでとなる。ハイエンドユーザーにとってはより高解像度などに対応できるHighプロファイルに対応していないことが気になるところだが「まもなく公開する予定のマイナーバージョンアップ版ではHighプロファイルに対応する予定」(Beaulieu氏)とのことなので、特に問題はなさそうだ。

 なお、オーディオに関しては今回のCUDA Video Encoder Libraryではサポートされておらず、CPUで処理されることになる。ただし、オーディオのエンコードはCPUパワーもあまり必要としないし、デコードの段階で映像とは分離されて処理されることになるので、特に大きな問題ではないだろう。

 気になるMPEG-4 AVC以外のコーデックへの対応に関しては「未定、ただし、名前がCUDA Video Encoder Libraryであって、CUDA MPEG-4 AVC Encoder Libraryではないことに注目して欲しい」(Beaulieu氏)と述べ、将来のバージョンでMPEG-2やWMVなどの別のコーデックにも対応する可能性があることを示唆した。

 なお、エンドユーザーの側でもCUDA Video Encoder Libraryを利用するにはいくつかの条件を満たす必要がある。「CUDA Video Encoder Libraryでは必要なライブラリのいくつかをドライバに実装している。このため、ユーザーは弊社の最新ドライバであるGeForce Release 181.20以降のディスプレイドライバをインストールしている必要がある」とのことで、ユーザーレベルでも最新のディスプレイドライバをインストールしておく必要がある。現時点で181.20以降のドライバが公開されているのはデスクトップのGPUのみで、ノートPCとQuadroに関しては公開されていないので、その公開を待つ必要がある。なお、対応OSはWindows XP/Vistaとなる。

 また、対応GPUはもちろんCUDAに対応したGeForce 8/9/GT2XXシリーズということになるが、ストリームプロセッサが32個以上である必要がある。チップセットに内蔵された統合型GPUなどの中には16個のストリームプロセッサしか内蔵していない製品もあるので、対応できない場合がある。なお、自分のGPUがどれだけのストリームプロセッサを内蔵しているかどうかは、NVIDIAコントロールパネルのヘルプ-システム情報で確認することができる。

●餅は餅屋にという戦略で、ATI Avivo Video Converterに対抗

 NVIDIAはCUDA Video Encoder LibraryをISVに対して無償で提供する。「ISVは弊社と開発契約を結ぶだけで無償で利用することができる。ただし、MPEG-4 AVCというコーデックを利用したソフトウェアを販売するにはMPEG LAなどとロイヤリティに関する契約を結ぶ必要があり、そちらはソフトウェアベンダの負担となる」(Beaulieu氏)という。

 NVIDIAのソフトウェア開発契約にはいくつかのレベルがある。例えば大手のOEMなどのティアワンレベルから、小さなISVなどを対象にした開発契約などがあるが、基本的には同社のWebサイトで簡単な開発契約に同意するだけで、CUDA Video Encoder Libraryが利用できるようになるという。ただし、現時点では大手のソフトウェアベンダに対して情報が提供されている段階で、まもなく同社の開発者向けWebサイトにCUDA Video Encoder Libraryに関する情報が提供され、開発契約を結べば利用できるようになるとのことだ。

 NVIDIAがこうした戦略をとる背景には、やはり競合他社との競争という側面がある。Radeon HDシリーズを展開するAMDは、ATI Avivo Video ConverterをRadeon HD 4000シリーズのユーザーに対して無償公開しており、NVIDIAとしてもそれに対して何らかのメッセージを出す必要があったのだろう。Beaulieu氏によれば「競合他社の製品はCPUも併用した処理を行なっている。これに対して弊社のソリューションの場合はすべてをGPUで行ない、CPUはフリーの状態にすることを目指している」と、その違いを強調する。また、「弊社はソフトウェアの開発を行なう会社ではない。だから、より使いやすいユーザーインターフェイスや高品質なフィルタといった開発ではISVにはかなわないことは言うまでもない。だから、時間のかかるエンコーダエンジンの開発の助けとなるライブラリを弊社から提供し、それ以外に関してはISVに任せるというのが基本的な戦略だ」(Beaulieu氏)と、そのメリットを強調する。

 つまり、AMDの“無償”戦略に対して、多少ならお金を払ってもクオリティを重視するユーザーに、使いやすいユーザーインターフェイスや高品質なフィルタをISVに提供してもらうことで、より使いやすく高品質なエンコーダソフトウェアからCUDAを利用できるようにしたいとNVIDIAでは考えているということだ。一概にどちらの方が正しいとは言えない問題だが、クオリティを何よりも重視する日本のユーザーにとっては受け入れやすい考え方とは言えるのではないだろうか。

●CyberLinkが対応ソフトウェアをCESで公開、他のベンダも続くか?

 2009 International CESの会場に設営されたNVIDIAのブースでは、CyberLinkのPowerDirector 7のCUDA Video Encoder Library対応版が公開され、デモされていた。従来のPowerDirector 7ではフィルタなどに関してはCUDA対応になっていたもの、MPEG-4 AVCのエンコーダエンジンに関してはCPUでの実行となっていた。しかし、今回発表されたバージョンではMPEG-4 AVCエンコーダエンジンに関してもCUDA対応となっており、CPUに比べて数倍~十数倍の速度でエンコードが可能になるとのことだった。

 日本のユーザーとして気になるのは、ペガシスのTMPGEnc 4 XPRESSのエンコーダエンジンがCUDA Video Encoder Libraryを利用したエンコーダエンジンを実装するかどうかだろう。これに関してはBeaulieu氏は「CyberLink以外の複数のソフトウェアベンダとも話をしているとしか言えない」と、具体的な話は避けたが、NVISIONではNVIDIAと共同で記者会見までしたペガシスだけに、当然話をしていると考えるのが妥当だろう。他のエンコーダソフトウェアも含めて、早期に対応が進むことに期待したい。

NVIDIAのブースで紹介されていたCyberLink PowerDirector 7のCUDA Video Encoder Library

□関連記事
【2008年8月29日】【笠原】ペガシスがCUDAに賭けた理由
http://pc.watch.impress.co.jp/docs/2008/0829/ubiq225.htm
【2008年11月21日】【多和田】CPU以外のハードウェアを活用した動画トランスコードを試す【NVIDIA CUDA編】
http://pc.watch.impress.co.jp/docs/2008/1121/tawada158.htm

バックナンバー

(2009年1月15日)

[Reported by 笠原一輝]


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp ご質問に対して、個別にご回答はいたしません

Copyright (c) 2009 Impress Watch Corporation, an Impress Group company. All rights reserved.