昨今、大きな話題になっているのが、CPU以外のハードウェアを活用した動画トランスコードである。従来から、TVチューナ経由で取り込んだ映像を専用のハードウェアでMPEG-2やMPEG-4系の動画形式へエンコード/保存するものは珍しくなかったが、最近は手持ちの動画ファイルをCPU以外のハードウェアを用いてトランスコードできるソフトウェアが増えている。 具体的には、GPGPUを用いた動画トランスコードソフトウェアも登場し始めたほか、GPU以外にも専用ハードウェアを活用することが現実的になってきた。ここでは、こうしたCPU以外のハードウェアを活用した動画トランスコードをいくつか試してみたい。 今回は専用ハードウェア編として、SpursEngineとXCode 3000シリーズを取り上げる。次回は、NVIDIAのCUDAを活用したアプリケーションのチェックを行ないたい。 いくつかのハードウェア、ソフトウェアを試すが、アプリケーションによっては出力設定が制限されている場合もあり、すべての環境において同一の出力設定にはなっていない。ただ、可能な限り近い設定を選んでいるほか、ソースファイルは同一のものを使用しているので、異なる環境でもざっくりとした比較は可能となっている。 ソースファイルとテスト環境は、とくに断りがない限り表1、2の通りである。CPUのところで、Core 2 Quad Q9450相当としたのは、Core 2 Extreme QX9770のFSBや倍率を変更して、Q9450相当のクロックで動作させたからである。性能はCore 2 Quad Q9450のものとして構わない。 【表1】テストに用いたソースファイル
【表2】テスト環境
●SpursEngine搭載「Leadtek WinFast PxVC1100」 まずは、11月19日の発売が予定されているLeadtekの「WinFast PxVC1100」を取り上げたい。この製品は、東芝の「SpursEngine」を搭載するPCI Express x1接続の拡張カードである。 SpursEngineは、PS3のCPUであるCell/B.E.に使われているSPE 4基と、MPEG-2/H.264のエンコーダ/デコーダ専用ユニットを持たせたメディアプロセッサだ(図1)。すでに東芝のQosmioシリーズなどに採用されているが、本製品はPCI Express x1接続の拡張カードとして提供されるので、デスクトップPCの多くで利用可能なのが魅力になっている。
製品は、ロープロファイルにも対応した小型のものだが、ヒートシンクにはファンが付いている(写真1)。このヒートシンクの下には、SpursEngineのほか、ELPIDAのXDR DRAMが128MB搭載されている(写真2、3)。 ボード末端部には、FDDなどで使用する電源端子が付けられているのが目に留まる(写真4)。軽く試した限りでは、電源を接続しない状態でもトランスコード速度への影響は見られなかったが、処理負荷によっては電力不足になる可能性があるのかも知れない。端子がある以上、取り付けて利用すべきだろう。
付属のCD-ROMにはドライバのほか、コーレルの「Ulead DVD Movie Writer 5」、「Ulead VideoStudio 11 Plus」、「InterVideo WinDVD 8」といったバンドルソフトが収録されている(画面1~4)。WinFast PxVC1100が使用されるのは、Ulead DVD MovieWriter 5でのトランスコードとなる。Ulead VideoStudio 11 Plusは製品発表後に追加でバンドルが決まったものであるが、残念ながらWinFast PxVC1100によるアクセラレーションは行なわれない。とはいえ、動画の編集からオーサリング、視聴という3つのプロセスを実行するアプリケーションが揃ったという意味では、この追加は歓迎できるだろう。 【お詫びと訂正】初出時に、WinDVD 8について、WinFast PxVC1100を使った超解像処理が行なわれるとしておりましたが、超解像処理には対応しておりません。お詫びして訂正させていただきます。 本題である動画のトランスコードを行なうUlead DVD MovieWriter 5では、WinFast PxVC1100が搭載された環境において、ハードウェアアクセラレーションを有効にする設定項目が用意されている(画面5)。これにチェックを入れれば、WinFast PxVC1100を利用したトランスコードが行なわれることになる。 また、WinFast PxVC1100によるハードウェアアクセラレーションを有効にした状態でのみ、HD解像度のMPEG-2およびH.264への出力が可能になる(画面6)。なお、DV-AVIなどからHD解像度への直接出力はできず、ソース側はMPEG-2である必要がある。冒頭で紹介したソースファイルとしてDV-AVIからMPEG-2に変換したものを加えたのは、この仕様に対応するためである。
画面6で気が付かれた方もいるかと思うが、SD解像度のMPEG-2からHD解像度へ出力する際には、「Up Convert」という特別なメニューも用意されている。これについては、おそらくWinFast PxVC1100を利用した超解像処理が行なわれるという意味だと思われる。 さて、実際のパフォーマンス検証であるが、まずはUlead DVD MovieWriter 5だけでできるテストとして、DV-AVIおよびAVCHDファイルからのSD解像度のMPEG-2への出力を試してみたい。ここで出力するファイルは、720×480ドット/7,200kbps CBR/DolbyDigitalオーディオのファイルである。 性能測定結果と各条件におけるCPU使用率は表3に示した通り。性能の値はトランスコードに要した時間と各動画の総フレーム数から、1秒あたりの処理フレーム数を算出したものである。 結果を見ると、WinFast PxVC1100を使っても、CPUを使っても、ほとんど差がないことが分かる。AVCHDからMPEG-2 SDへの変換では若干ながら効果が出ているものの、CPUが変わると、それに相応して速度が低下している。 各トランスコード処理中のCPU使用率を見ると、ハードウェアアクセラレーションを有効にした場合には確実に下がっている。一部の処理はSpursEngine側に受け持たせているようであるが、劇的に低いCPU使用率というわけでもなく、CPU側の処理も性能面で重要であるために、WinFast PxVC1100によるハードウェアアクセラレーションを有効にしても、CPU性能に相応したトランスコードの時間を要しているということになる。 併せて、今回出力した動画ファイルの画質もチェックしてみたい(画面7~10)。ここでは、Core 2 Extreme QX9770環境で作成した動画から、TMPGEnc 4.0 XPressのキャプチャ機能を使って、動画ファイルで指定されている比率で保存したものである。結果は、ハードウェアアクセラレーション有効/無効に関わらず、まったく同一のものが出力されている。当たり前のことではあるが、重要なことである。 【表3】Ulead DVD MovieWriter 5におけるSpursEngineの効果
さて、Ulead DVD MovieWriter 5ではハードウェアアクセラレーションを無効にした場合にHD出力などができないため、WinFast PxVC1100を使用した場合のHD出力機能の性能などを相対的に見ることができない。そこで、CPUによるトランスコードを行なうソフトウェアとして、Ulead DVD MovieWriter 5と似た性格の(要するにライバル)製品である「Nero Vision 5」を使用した場合と比較することにした(画面11)。こちらのエクスポート機能を利用して、Ulead DVD MovieWriter 5のハードウェア有効時のトランスコード速度と比較することにしたい。 ここでテストするパターンは次の通り。両アプリケーションとも同じ設定が可能であったので、指定する値は相違なくテストを行なっている。また、異なるアプリケーションの同一設定で出力されたファイルが、同程度のファイルサイズであることも確認している。 ・DV-AVI→MPEG-2 SD(720×480ドット/7,200kbps CBR、DolbyDigitalオーディオ) 加えて、Ulead DVD MovieWriter 5のSpursEngine使用時には、画面6のところで説明した「Up Convert」を指定した場合の結果も併せて紹介している。ここで、H.264 HDという表記について補足しておくと、これはAVCHDに完全に準拠したものであることを確認できなかったため、H.264形式のHD解像度ファイル、という意味で便宜的に用いているものである。 ちなみに、Nero Vision 5で出力したH.264 HDファイルは少々怪しいところがあって、出力したファイルをNero関連ソフトで開くことはできるのだが、いくつかの(TMPGEnc、QuickTime、PowerDVD 8 Ultra、VLC Media Playerほか)のアプリケーションで開くことができなかった。先述のファイルサイズはUlead DVD MovieWriter 5で出力したものと同等程度ではあるのだが、正しく規格に準拠できていない可能性もある。トランスコードテストの結果には掲載しているが、参考程度にしていただければと思う。 性能測定結果と各条件時のCPU使用率は、CPU環境別に表4、5に掲載している。DV-AVIからMPEG-2 SDへの変換においてはCPUが圧倒的に高速な結果となっているが、表3で示したCPU使用時と比べても大きな差があることから、これはエンコーダの違いによる影響が大きいと思う。 その意味では、Neroのエンコーダは速度を重視したものという印象を受けるが、ほかの条件ではWinFast PxVC1100を使ったトランスコードが安定した速度を発揮。なかでも、H.264 HDへのトランスコード速度はCPUに比べて大きな差がついている。また、CPUが変わることで多少速度も落ちるが、その落ち込みはわりと小さく、うまくSpursEngine側に処理を委ねられている格好となっている。 MPEG-2/H.264のHD出力時のフレームレートは、リアルタイム処理を意識したものと思われる。今回のようなややリッチなCPU環境で40fpsを安定して超えるレベルということは、もう少しCPUの性能が落ちても30fpsはキープできるはずだ。チップの設計そのものが、そのラインを超えることを基本にしているのだろう。 また、CPUを使用するNero Vision 5を使ったトランスコード時は、CPU使用率がおおむね80%を超えるのに対し、WinFast PxVC1100を使用するUlead DVD MovieWriter 5でトランスコードを行なっている間は、CPU使用率が20%を下回ることが多い。WinFast PxVC1100使用時でも、MPEG-2 SDに変換する場合には、ややCPU使用率が高いことから、SpursEngineに委ねられる範囲がかなり限定されているものと想像される。 パフォーマンス面でもう1つ気になるのは、Ulead DVD MovieWriter 5で利用できる「Up Convert」を指定した場合に、速度が大きく落ち込むことだ。この機能の意味は、CPU使用率と画質のチェックからうかがうことができる。画質チェック用のキャプチャ画像は、Core 2 Extreme QX9770環境下の各条件でトランスコードした動画ファイルからキャプチャしたものを画面12~23に示している。先述の理由により、Nero Vision 5によるH.264 HDの出力結果のキャプチャ画面はない。 Up Convertを指定した場合にはCPU使用率がより低く抑えられることが表4、5から判断でき。また、出力される動画ファイルも解像感が増し、かなりクッキリとした映像になっていることが分かる。Ulead DVD MovieWriter 5のオリジナルが眠い映像、Nero Vision 5はシャープ感は強いという傾向が見られるが、Up Convertを使った結果は、どちらとも違う綺麗さを持っている。 これが、SpursEngineを活用した超解像処理の能力とみて良いだろう。つまり、Up Convertを指定しない場合は、Ulead DVD MovieWriter 5内部の解像度変換がCPU処理によって行なわれ、Up Convertを指定した場合はSpursEngineを使って独自の超解像処理が行なわれているということだ。 このほか、SD解像度→HD解像度、HD解像度→SD解像度へトランスコードした際の、黒帯の出方が両アプリケーションで異なっているのも気になる。SD→HDについては、Ulead側が4:3の画面アスペクト比、Nero側は10:11のピクセル比の映像をそれぞれHD化しているようである。一方、HD→SDについては、Nero側は16:9の比率の映像となっているが、Ulead側はもう少し横長の映像になっている。これは、どちらが間違っているというわけではなく、両社の発想の違いによるものと見ていい。Uleadは出力側の環境に合わせて適切なアスペクト比を決めているのに対し、Neroは元のソースに忠実に処理している格好といえる。 【表4】SpursEngineとCPUのトランスコード処理速度比較(Core 2 Extreme QX9770環境)
【表5】SpursEngineとCPUのトランスコード処理速度比較(Core 2 Quad Q9450環境)
●ViXS XCode3000搭載「VAIO type R Video Edition」 続いては、今年秋に発表された「VAIO type R Video Edition」(写真5)に搭載された、ViXSの「XCode 3000シリーズ」を試してみたい。XCode 3000シリーズは、昨年11月に発表されたトランスコーダチップで、コンパニオンチップタイプから、CPU機能を内蔵したSoCタイプまで、いくつかのラインナップが用意されている(写真6)。VAIO type Rに、どのチップが搭載されているかは明言されていないが、SoCである必要はないので、XCode 31xxのいずれかだと想像される。
このXCode3000シリーズは、VAIO type RでもVideo Editionにのみ搭載されており、出荷時に利用可能な状態になっている(画面24)。そして、TV視聴/録画ソフトの「GigaPocket Digital」、動画編集ソフト「VAIO Movie Story」、Blu-ray disc作成ソフト「Click to Disc/Click to Disc Editor」など、プリインストールされたいくつかのアプリケーションで利用できる。そして、トランスコードに使用するアプリケーションが「VAIO Content Exporter」だ。VAIO Content Exporterは、各種動画ファイルを、MPEG-1/2/4、DV-AVI、HDV、AVCHDなどに変換できる(画面25)。
XCode 3000シリーズを使用するには、メニューに用意された「ハードウェアトランスコード機能を使用」にチェックを入れることで機能が有効になる(画面26)。ただし、ソニーWebサイトよると、XCode 3000シリーズが使用される条件は下記に限定される。 ・AVC HDファイルからMPEG-2ファイルを出力する場合 XCode 3000シリーズが使用される場合は、その旨を表すダイヤログボックスが表示されるのでそれと分かる(画面27)。実際、上記条件以外のトランスコードを指定しても、この画面が表示されることはなく、パフォーマンスやCPU使用率も変化がない状態だった。 また、AVCHDファイルでも細かい条件があるようで、例えば1,920×1,080ドットのファイルを出力する場合には、XCode 3000シリーズは使用されず、1,440×1,080ドットの場合に限られている。
ということで、ここでは、上記の条件に合うテストを実施することにしたい。まず、ソースファイルであるが、AVCHDファイルは冒頭に記したものを使用する。そして、このAVCHDファイルをVAIO Content Exporterを使ってHDV(1,440×1,080ドット、MPEG-1 Layer-2オーディオ)へ変換したものを用意し、このファイルもソースとして使用する。 テストパターンは次の通り。また、テストに使用したVAIO type R Video Editionの主なスペックを表6に記しておく。 ・AVCHD→MPEG-2 SD(720×480ドット/8,000kbps VBR、DolbyDigitalオーディオ) 【表6】テストに使用したVAIO type R Video Editionの主な仕様
各パターンのトランスコード速度とCPU使用率をまとめたものが表7、各パターンの映像をキャプチャしたものが画面28~31である。非常に極端で、分かりやすい結果が出た。まず、AVCHDからMPEG-2 SDへの速度では、XCode 3000シリーズを無効にした方が、むしろ高速である一方、HDVからAVCHDへの変換ではXCodeがCPUに対して6倍以上という凄まじい性能を出した。 いずれも30~40fpsになっているあたりは、リアルタイムトランスコードを意識したものだろう。やや、SpursEngineよりも劣る印象は受けるが、CPUではリアルタイム処理できないような条件でも、XCode 3000を使えば大丈夫というレベルのパフォーマンスは持っていることになる。 さらに極端なのがCPU使用率で、XCode 3000シリーズを使用した場合は、大きいところでも5%強といったところで、極めて低く抑えられている。AVCHDからMPEG-2 SDへの変換は速度面では劣るものの、このCPU使用率の低さは大きな魅力だ。 TV視聴/録画ソフトのGigaPocket DigitalでもXCode 3000シリーズが使用されるが、こうしたソフトウェアを使う際に処理の一部をXCode 3000シリーズに委ねて、CPUリソースを空けることができ、快適な「ながら視聴」につながる。 また、画質面でも変化が見られる。まず、CPU使用時に比べて、XCode 3000シリーズでトランスコードした映像は、明らかに解像感が増している。ダウン/アップコンバート処理もXCode 3000シリーズ側で行なっており、その効果が良い方向に出ている印象を受ける。ちなみに、AVCHDからMPEG-2 SDへCPUを使ってトランスコードした映像は、やや緑みがかったような色合いへと変化している。本製品を使用する場合には、こうした画質変化にも留意する必要がある。 【表7】VAIO Content ExporterにおけるXCode 3000シリーズの効果
●CPUリソースを空ける専用ハードウェアの魅力 今回は専用のハードウェアを用いたトランスコードをチェックしてみた。結果を見ると、条件によっては性能面でCPUに劣るところもある。だが、こうした専用ハードウェアはとにかく性能を稼ごうとしているわけではなく、実用上必要なフレームレートを出せることを目的にしたと想像できる。つまり、リアルタイムエンコード/トランスコードの最低条件である30fpsをクリアすると言うことだが、これは、今回のほとんどのテストパターンでクリアできている。 もう1つ、トランスコード処理の一部(もしくは、ほとんど)を専用ハードウェアに委ねることで、CPU使用率が下がることも大きなメリットとなるだろう。 トランスコード中は人が手を加える必要がないので、別途ほかの作業を行ないたくなる。トランスコード中のCPUリソースが空いていれば、ほかの作業も並行して、より快適に作業できるようになるわけだ。もちろん、同時作業によってトランスコード処理速度が大きく低下することはない。 当然追加のコストは発生するが、こうしたメリットに魅力を感じる人なら導入効果は大きいと思う。今回紹介した製品以外にも、トムソンカノープスがSpursEngineを搭載する「FIRECODER Blu」を11月21日に発売する予定になっている。今後もこうした製品が充実することを期待したい。 □関連記事 (2008年11月20日) [Text by 多和田新也]
【PC Watchホームページ】
|