前回に引き続き、CPU以外のハードウェアを用いたトランスコードテストを試す。今回利用するのは、NVIDIAのGPUコンピューティングプラットフォームである「CUDA」を活用したアプリケーションである。コンシューマ向けのGPUコンピューティングの活用としても早くから注目されていたジャンルであるが、ここに来て対応ソフトが立て続けに正式リリースされている。これらをここで試してみたい。テスト環境やソースファイルなどは前回と同じである(表1、2) 【表1】テストに用いたソースファイル
【表2】テスト環境
●Elemental Technologies「Badaboom Media Converter」
まず紹介するのは、CUDA対応のエンコードソフトとして早くから話題に上がっていた、Elemental TechnologiesのH.264トランスコーダソフト「Badaboom Media Converter」である(画面1)。以前から体験版は提供されており、すでに最初期のβ版を用いたテストレポートも一度お届けしているが、10月下旬に正式版の一般販売が開始された。 予定よりかなり遅れたが、同時にその仕様も当初のアナウンスからいくつか変更されている。もっとも大きな違いは製品ラインナップが1つになったことで、無印版(29.99ドル)とPro版(99.99ドル)のという2つの区分がなくなり、1つのバージョンのみとなった。 価格は29.99ドルとなっているが、当初予定されていた無印版よりも大幅に機能が強化されており、AVCHDやHDVの入力に対応。また、出力は1,280×720ドットまで可能になっており、これも無印版の720×576ドットまでという制限が緩和されている。ただし、Pro版で予定されていた1,920×1,080ドット出力はサポートされていない。まとめるならば、当初予定されていたPro版をベースに出力解像度を720pに制限したものが29.99ドルで発売されたということになる。 購入はNVIDIAのサイトを経由して決済する格好となる。その後、ダウンロードリンクが提示される。そのリンク先に示されたファイルはレジスト済みの購入者専用バイナリになっているので、インストールするだけで利用可能だ。 製品版は、最初期のβ版に比べるとユーザーインターフェイスが変更されているものの、8月末にリリースされたβ版からは変わっていない。iPodなど動画を再生するデバイスを選択しておくことで、そのデバイスで利用可能な動画を作成できる。[ADVANCED]ボタンを押すことで、細かい調整も可能となるが、これも対象デバイスがサポートする範囲内でしか変更できないようになっている(画面2)。 ただし、この出力デバイスの設定はXMLファイルで保管されており、そのファイルの内容を変更することで、デフォルトで用意されたデバイス以外の設定も可能になる。この話題は同社WebサイトのFAQに掲載されているので、興味のある方は参照されたい。 このほか、ソースファイルのアスペクト比に準じた出力を行なう場合、指定した解像度によっては黒帯ができるのが一般的であるが、本製品の場合は、黒帯部分を自動的にカットした形で出力されるのも特徴となっている(画面3)。
それでは、実際にトランスコードのテストを行なってみたい。Badaboom Media ConverterはH.264出力しかできないため、テストも自ずと限定される。比較対象となるCPUを用いたトランスコードにはTMPGEnc 4.0 XPressを使用している(H.264トランスコードエンジンはMainConcept製)。一部のテストパターンは、Badaboom Media ConverterとTMPGEnc 4.0 XPressで同一の設定が使用できなかったので、2つのアプリケーションを分けて紹介する。 ■Badaboom Media Converterの出力設定 ■TMPGEnc 4.0 XPressの出力設定 Badaboom Media Converterで指定するビットレートは平均値となるが、TMPGEnc 4.0 Xpressでは最大値を入力する必要があったため、いくつかのパターンを試して、おおよそファイルサイズが似たあたりに落ち着く最大ビットレートを指定した。18,140Kbpsという中途半端な値なのは、Badaboom Media Converterで指定可能なビットレートが制限されているためで、MPEG-2 SD→H.264 SDの解像度が両ソフトで異なるのは両ソフトで指定可能な出力解像度が制限されているためである。 結果は、処理速度とCPU使用率を表3、4、出力映像のキャプチャを画面4~11に示した。速度面やCPU使用率の差では、GeForce GTX 280を使ったBadaboom Media Converterが極めて優れていることが分かる。CPUとは絶対的な性能差を見せつけている。 また、CPUの能力が劣る環境でも性能が落ちにくいというメリットも見えてくる。CPU使用率が少ないAVCHD→H.264 SDのところが分かりやすい。GeForce GTX 280を使った場合は、CPUによって速度がほとんど出なかったのに対し、CPUを使用する場合はCore 2 Extreme QX9770とCore 2 Quad Q9450の性能差が現れる。 画質については、両ソフトで結果が異なっているが、SD解像度のソースに関してはTMPGEnc 4.0 XPress側がソースファイルに指定されたピクセルアスペクト比に準じているためであろう。HD解像度のソースについてはBadaboom Media Converter側は勝手にトリミングをして引き延ばしたような格好になっており、これは謎な挙動である。このあたり、Badaboom Media Converterは少々クセがある印象を受ける。 色合いは両者ともまったく差はない。ただし、Badaboom Media Converterによる出力結果に比べると、TMPGEnc 4.0 XPressの方が若干シャープになる傾向は見て取れる。 【表3】GPUとCPUのトランスコード処理速度比較(Core 2 Extreme QX9770環境)
【表4】GPUとCPUのトランスコード処理速度比較(Core 2 Quad Q9450環境)
●ペガシス「TMPGEnc 4.0 XPress」 前回のSpursEngine、ViXS XCode3000および、先述のBadaboom Media Converterは、トランスコードの中心処理をCPU以外のハードウェアで実施するものであったが、ここから紹介する2つのアプリケーションは、映像に対するフィルタやエフェクト処理をハードウェアアクセラレーションするものである。まず取り上げるのは、ペガシスの「TMPGEnc 4.0 XPress」だ。 TMPGEnc 4.0 XPressも、8月にフィルタ処理のCUDA対応が表明され、正式版が待たれていた。先月30日にリリースされた「Ver.4.6.2.266」が最初の正式版となり、11月5日にはいくつかの修正が施された「Ver.4.6.3.267」がリリースされている。今回はもちろん後者を使用している。 この正式版でサポートされるGPUは、GeForce 8以降の製品となるが、G80コア(GeForce 8800 GTX/GTS 320/640MB版が該当)は除外されている。これは筆者の予想であるが、G80コアには1つ前の世代になるPureVideo1が採用されていることが理由ではないかと想像している。 実際の動作であるが、環境設定からCUDA関連の設定を有効にすることで、GPU側で処理が行なわれるようになる(画面12、13)。これはデフォルトではチェックが外されているので、GPUを使用する場合は、必ず設定しなければならない。
そして、CUDAを有効にしたあとは一度TMPGEnc 4.0 XPressを再起動し、最適化を行なう必要がある(画面14、15)。TMPGEnc 4.0 XPressのCUDA対応が最初に表明されたときのニュースリリースにある通り、処理によってはGPUで行なうよりもCPUで行なった方が高速になる場合がある。事前に最適化を行なうことで、CUDAを有効にした場合に性能低下が起こらないようにしているわけだ。この最適化処理は今回の2つの環境では、いずれも1分弱で完了した。 動画トランスコードを実行中にCUDAが活用されている場合は、その作業にCPU/GPUがどの程度の割合で関わっているかを表示するようになっている(画面16)。この表示は、GPUが使われていない場合には表示されない。 では、テスト結果の紹介に移りたい。ここで使用するアプリケーションはTMPGEnc 4.0 XPressのみで、画面12の3つのチェックを入れた状態と、すべて外した状態での比較を行なう。テストパターンは、フィルタを一切適用しない状態と、「映像ノイズ除去」、「輪郭強調」、「色調補正」の3つのフィルタを適用した状態それぞれで、下記のトランスコードを実行する。ちなみに、MPEG-2 HDはプログレッシブへの出力となるため、IP変換が行なわれるほか、解像度変換もあるので、フィルタなしといっても一定の画像処理が行なわれる。ただ、ここでは便宜上、上記3つの画像処理を加えたものを“フィルタあり”、そうでないものを“フィルタなし”としている。 ・DV-AVI→MPEG-2 SD(720×480ドット/7,200kbps CBR、DolbyDigitalオーディオ) 結果は、処理速度とCPU使用率を表5、6、出力映像のキャプチャを画面17~32に示している。CPU使用率の欄には、TMPGEnc 4.0 XPressでCUDAが使われているときのCPU/GPUのバランス表示も併記した。 処理速度については、フィルタを適用しない場合、やはり多少CPUの方が高速な傾向が出る。ただ、ペガシスのニュースリリースで当初示されていたような半分の速度しかでないといった極端な落ち込みはなく、最適化機能がそれなりに有効に働いていることが分かる。 一方、フィルタを適用した場合についてだが、こちらもHD解像度が絡まないとGPUによるフィルタ処理のメリットが見えてこない。ただ、AVCHDからのエンコードはSD/HDともに好結果であり、その威力を感じるものになっている。また、フィルタ適用ありでMPEG-2 SDからMPEG-2 HDへ出力した場合、CPUやCore 2 Extreme QX9770環境だとCPUの方が速いが、Core 2 Quad 9450環境ならCUDAを有効にした方が速くなっている。このあたり、CPUのボトルネックを多少なりとも補えているといえる結果だ。 CPU使用率に関しては、トランスコード処理自体はCPUで行なうため、劇的に下がることはない。しかしながら、全般にCUDAを有効にした方がCPU使用率が低い傾向にある。フィルタを適用しない場合でもCUDA有効時の方がCPU使用率が低い傾向にあるが、これはおそらくデコード処理をGPU側でやっていることの影響が大きいと思われる。 気になるのは画質である。フィルタ適用がない場合は、CUDAの有効/無効に関わらず同一の映像が出力されている。しかし、フィルタを適用した場合は明らかに色味が異なっている。特に、SD解像度をソースにした映像で、その差が分かりやすい。CUDAを有効にした場合の方は、やや鮮やかさが増し、青みが強くなっている。 もちろん、同じパラメータを指定したうえでの結果である。これは、どちらの結果が美しいといった問題ではなく、結果が違うということが問題なのである。フィルタを適用するユーザーというのは、当然、出力結果のクオリティにこだわりを持つ人のはずだ。特にTMPGEnc 4.0 XPressを従来から使っているユーザーにとっては、今までとクセが変わることに困惑するのではないだろうか。同一アプリケーションである以上、同じ出力結果が得られるべきだったと思う。 【表5】TMPGEnc 4.0 XPressにおけるGPUとCPUの処理速度比較(Core 2 Extreme QX9770環境)
【表6】TMPGEnc 4.0 XPressにおけるGPUとCPUの処理速度比較(Core 2 Extreme QX9770環境)
●サイバーリンク「PowerDirector 7」 続いては、サイバーリンクの「PowerDirector 7」である。動画編集ソフトである本製品は、11月7日に、一部のエフェクト処理をCUDAで実行可能にするアップデートをリリースした。少々余談ながら、このPowerDirector 7は、NVIDIAのCUDA対応を表明するとともに、AMDのRadeon HDシリーズでトランスコード処理をするデモも過去に公開しており、どちらを優先させるのか興味があったのだが、結果としてはCUDA対応が先になった。一方で、AMDからは改めてPowerDirector 7のATI Stream対応が表明されており、こちらはトランスコードをATI Streamで処理させるという点で期待がかかる。 とりあえず、今回はエフェクト処理のCUDA対応である。「Build 2227c」が対応版で、すでにダウンロード可能になっている。 このパッチを適用すると、環境設定の欄にCUDAアクセラレーションを使用するかの設定項目が表示されるようになり(画面33)、エフェクトの画面では、CUDAで処理可能なエフェクトのアイコンに、NVIDIAロゴが付記されるようになる(画面34、35)。ちなみに、このNVIDIAロゴは、CUDAアクセラレーションを無効にしていても表示されるのだが、こうした仕様は好みが分かれそうだ。CUDAアクセラレーションが可能なエフェクトは次の10種類である。 ・色の置換
それでは、テスト結果を紹介したい。利用できるエフェクトの質を考えると前回、今回のテスト中でも極端に異端なものとなるため、ここではSD解像度への出力に絞ってテストを行なった。「ペンインク」→「光線」→「放射状のぼかし」の順にエフェクトを適用し、CUDA有効/無効時の下記パターンを比較する。 ・DV-AVI→MPEG-2 SD(720×480ドット、8,000Kbps VBR、DolbyDigitalオーディオ) なお、PowerDirector7には、Smart Video Rendering Technology3というレンダリング高速化技術が実装されており、AVCHDソースを利用した場合に、これを利用可能であったため、有効にしてトランスコードを行なっている。そのため、AVCHDソースを利用した場合の方が高速な結果になっている。 結果は処理速度とCPU使用率を表7、8、出力映像のキャプチャを画面36~43に示した。ここは、かなり安定してCUDA有効時の方が高速に処理が完了していることが分かる。 また、Core 2 Extreme QX9770使用時で15~40%、Core 2 Quad Q9450使用時で40~55%程度高速化されるというように、CPUのグレードが下がっても、CUDA有効時の方が性能の低下が少ない傾向も明確に出ている。特にHD解像度のソースを利用したときの結果が分かりやすい。CUDA無効時はCore 2 Extreme QX9770とCore 2 Quad Q9450の差が8~9fpsであるのに対して、CUDA有効時は3fps弱に留まっている。 さらに大きなメリットとなっているのがCPU使用率の低さである。PowerDirector 7はしっかりとマルチスレッド化されていて、エフェクトを適用してトランスコード処理を行なうと、CPUをほぼ100%使う傾向が見て取れる。しかし、エフェクト処理をCUDAに委ねることで、そのCPU使用率は半分以下に抑えられる。それでいて処理は高速なのだから、より効果が際立っている。 画質の面では、エフェクトを適用しているせいで動画形式ごとのクセが強く出ているものの、CUDA有効時、無効時での出力結果に差はない。 【表7】PowerDirector 7のエフェクト処理におけるGPUとCPUの処理速度比較(Core 2 Extreme QX9770環境)
【表8】PowerDirector 7のエフェクト処理におけるGPUとCPUの処理速度比較(Core 2 Quad Q9450環境)
●兼用ハードウェアで高速なトランスコードが可能 以上の通り、NVIDIAのCUDAを活用するトランスコードソフトをテストしてきた。現状、トランスコード自体をGPUで処理させるというアプリケーションは限定されているが、その性能はかなり高い。今後、ピーク性能を伸ばすという観点では、将来的な性能向上が見込める点も含めて、GPUにかかる期待は大きい。 また、フィルタを適用するだけのアプリケーションであっても、特にHD解像度を利用する場合には大きな効果が認められる。例えばHDカムで撮影した映像を編集してDVDなりBlu-rayなりに出力するような、家庭的な動画活用において良い影響をもたらすのではないだろうか。 専用ハードウェアに比べるとCPU使用率が高めに出る傾向はある。しかし、コスト面では、GPUの場合、画面描画出力というPCにとって欠かせない作業を兼用するハードウェアであるという点において、専用ハードウェアよりも投資に対する抵抗は小さいと思われる。PCのアップグレード対象として、3D性能以外の面でGPUがクローズアップされる日も近そうだ。 ちなみに、今回はNVIDIAのCUDAを活用したアプリケーションを取り上げたが、ここに来て、AMDの動きが活発になっている。11月13日付けのニュースリリースにおいて、AMDのGPUコンピューティング技術であるATI Streamを、12月リリース予定のドライバに実装することを表明。同じく12月には、このATI Streamを活用したトランスコードソフト「ATI Avivo Video Converter」を“無償で”提供するとアナウンスしている。ソフトウェアベンダーとのパートナーシップも強化しているようであり、AMD製GPUのGPUコンピューティング利用も具体化してきそうだ。 □関連記事 (2008年11月21日) [Text by 多和田新也]
【PC Watchホームページ】
|