SpursEngineによる「超解像」を試す


(2009.6.12)

東芝製メディアストリーミングプロセッサ「SpursEngine」による「超解像」やエンコードのアクセラレーション機能を試す。

リードテック製ボードとTMPGEncのセット品

SpursEngine(スパースエンジン)とは、IBM・ソニーグループ・東芝が共同で開発したプロセッサでPlayStation3のCPUとして知られる「Cell Broadband Engine」のSPE (Synergistic Processor Element)のコアを用いたメディアストリーミングプロセッサである。H.264やMPEG2のエンコード・デコードをCPUよりも高速に行うことができる。

筆者が購入したのはSpursEngineを搭載したリードテック製のボード「PxVC1100」とペガシスのエンコードソフトTMPGEnc 4.0 XPressと同ソフトでSpursEngineを使用するためのプラグイン「Movie Plug-in SpursEngine」をセットにしたもの。ヨドバシカメラで31,500円だった。TMPGEncがバンドルされないパッケージは27,500円だった。筆者はすでにTMPGEnc 4.0 XPressを持っているので、プラグインだけあればよいのだが、プラグインは単体(ダウンロード販売)で4,980円するため、TMPGEncをすでに持っていてもバンドル品を買った方が安いことになる。

エンコードのアクセラレーションと超解像

このSpursEngineには大きく2つの機能がある。1つが、エンコードやトランスコードを高速化する機能。かつて、MPEG1やMPEG2のハードウェアエンコーダボードが流行った時期があったが、最近はCPUの高速化により下火になっていた。しかし、映像がHD化するとそのエンコードは再びCPUには荷が重い処理となっていた。そのような状況で登場したSpursEngineはフルHD(1920×1080)のH.264やMPEG2をリアルタイムでエンコードする性能を持つ。ただしPxVC1100には入力端子は一切なく、ビデオキャプチャとして使うことはできず、すでにPC上にあるファイルを変換することしかできない。

PanasonicのHDC-SD7で撮影した1920×1080ピクセル、13MbpsCBRの1分間の映像をHDV相当の1440×1080ピクセル25MbpsのMPEG2に変換する処理をCPUとSpursEngineで行ったときの処理時間は以下のようになった。

使用プロセッサ 処理時間
CPUのみ 198秒
SpursEngine使用 74秒

【使用したPCのスペック】
Core 2 Quad Q9450 2.67GHz、メインメモリ2GB、SATA接続の7200rpmのHDD
※いずれのエンコードもCUDA(NVIDIA社製GPUをCPUのように使う仕組み)は使用していない。

残念ながら実時間以下とはならなかったが、約2.7倍高速にエンコードすることができた。

続いて、720×480、インタレース、8MbpsCBR、音声はリニアPCM1536kbpsの1分間の映像を1920×1080、インタレース、32MbpsCBR、リニアPCM1536kbpsに変換する処理にかかる時間をCPUのみの場合とSpursEngineによる超解像を有効にした場合で比較した。

使用プロセッサ 処理時間
CPUのみ 228秒
SpursEngine使用
超解像有効
154秒

超解像を有効にしてもなお、CPUのみ(超解像は行っていない)より速いという結果になった。

超解像の効果は

DV(720×480ピクセル)で撮影した映像をCPU(超解像なし)とSpursEngine(超解像あり)でそれぞれアップコンバートしたものから同じ部分を切り出したのが次の表だ。

元の映像(480i) CPUによるアップコンバート(1080i) SpursEngineによる超解像アップコンバート(1080i)
1.元の映像(480i) 2.CPUによるアップコンバート(1080i) 3.SpursEngineによる超解像アップコンバート(1080i)

このサンプルはモルタルの壁に文字が彫られている箇所なのだが、通常のアップコンバートでは背景の模様がほとんどつぶれてのっぺりしているのに対して、超解像の方はもとの質感をある程度再現できている。また、彫られた文字も通常のアップコンバートではぼやけた感じになっているが、超解像では境界がくっきりしている。

映像全体を見ても、見違えるほど美しくなるというわけではないが、確かに精細感が増しており、効果を確認することができた。

ただし、現状では超解像機能は720×480ピクセルまでの映像に対してしか適用できず、1280×720ピクセルや1440×1080ピクセルの映像を超解像で1920×1080ピクセルにすることはできない。(内部的にいったん720×480ピクセルにダウンコンバートされ、1920×1080ピクセルにアップコンバートされる)

また、1920×1080ピクセルのインタレース形式への変換しかできず、例えば320×240ピクセルの映像を超解像で720×480ピクセルにする、ということはできず、1080pに変換することもできない。

まとめ

エンコードのアクセラレーション機能は、HDのエンコードをたくさん行うユーザーにとっては「時間を買う」効果があるといえるし、超解像機能はSD素材をたくさん持っており、HD素材との混在使用を考えているユーザーにとっては、この機能を用いることで素材間のギャップを緩和することができる。

超解像機能については現状では適用できる解像度などに制限が多く、使いづらい面もあるが、ソフトウェアで改善できる部分に関しては今後の改善を期待したい。