■TMPGEnc 4.0 XP 4.5.2.255 英語版
Pegasys Inc.
http://www.pegasys-inc.com/

ではHyper-Threadingが有効そうなベンチマークは? ということで、次はTMPGEnc 4.0 XPである。TMPGEnc 4.0 XPは今年10月30日にNVIDIAのCUDA 2.0対応版を公開したが、今回利用したのはその1つ前にあたるVer.4.5.2.255である。ところでTMPGEnc 4.0 XPで1本の動画だけをエンコードしても、それほど多数のThreadを使ってくれる訳ではないことはよく知られている(Photo23)。

Photo23:勿論このあたりはパラメータ次第で、例えば動き検索の設定を変えるだけでだいぶ変わる。ただ流石に8Threadもあると動き検索だけで使い切るのは難しいところ。ちなみにこのケースで動き検索は"Standard"としている。

勿論エンコード以外に各種フィルタを使うなどするとまた話は変わるのだが、個人的にはTMPGEncは最後のレンダリング用途がメインで、フィルタリングなどはそれ以前に別の編集ソフトを使って行うほうが普通だと思うので、あまり実情に即しているとは言えない気がする。

その代わりであるが、TMPGEnc 4.0 XPのバッチエンコードツールを使うと、複数のエンコードを同時に行うことが可能だ。これを使って、2本同時(Photo24)と4本同時(Photo25)も試すことで、どの程度まで性能が上がるかを確認してみた。

Photo24:2本同時にエンコードするだけで、100%とは言わないまでも80%強のCPU占有率となる。

Photo25:CPU利用率がほぼ100%に。

ちなみにソースはWMV9 HDフォーマット(1480×1080@23.97ps、2937フレーム)の映像で、TMPGEnc 4.0 XPを使いこれをHDV-HD2フォーマットのMPEG2に変換している。2/4本同時エンコードの場合も全く同じで、単に出力ファイル名を変えているだけである。

結果はグラフ26に示す通りである。ちょっと説明すると、TMPGEnc 4.0 XPのバッチエンコードは、例えば4本同時にスタートしても、3~4秒間隔で1本づつスタートするような形となる。これは1本づつエンコードした場合も同じで、あるエンコードが終わってから次のエンコードが始まるまでやはりディレイがある。「総合」というのは、このディレイも加味した上で、4本分をエンコードするのにどれだけ時間が掛かったか、から逆にエンコードのフレームレートを算出する。逆に「個別」というのは、4本のエンコード各々の純粋のエンコード処理時間からフレームレートの平均を取ったものである。このため、x1総合とx1個別では殆ど成績に差が無いのに対し、x4総合とx4個別では大きな違いが出る事になる。

さて、実際の数字であるが、これは圧倒的な差である。Hyper-Threadingの効果が見えにくいx1の場合でも大きく性能が伸びており、x4ともなるとその差は非常に大きい。

これをもう少し判りやすく示したのがグラフ27である。これはx4個別の場合の性能を環境別に示したものだが、Hyper-Threading無効でもそれなりの性能差があり、Hyper-Threading有効だとそのギャップは更に広がる。こうした使い方をする限り、Hyper-Threadingは非常に有効な武器だといえよう。

ところでSSDに関しては、Core i7-920/940では多少なりとも性能向上に役立っているが、Core i7-965とかCore 2ではむしろ性能が落ちる方向に作用しているのが判る。このあたり、アクセスパターンがSSDの性能に結構影響を及ぼしていることが見て取れる。