TMPGEncとRAMディスク活用

2chのTMPGEncスレでRAMディスクの話題が出ていたのでウチでも実験。

ウチはRAID 0なのであまりディスクがボトルネックになることもないかと思ってたんですが、そういえば結構ガリガリいるから、意外と効果あるかも、と。で、実際に違いがでました。

ソースはデカいのでHDDに起き、作業キャッシュと出力フォルダをRAMディスクにした場合で実験。「とある」アニメのオープニングTS(1440x1080i)をDivX(720p)に。フィルタをいくつか。従来環境で16分かかったものが、

  • キャッシュをRAMディスクにおいたら14分
  • 更に出力先をRAMディスクにすることで9分台

これは早速メモリを買い足さなければ!

ソースも一緒におけば更に早くなるんでしょうけど、数本一括でバッチエンコすることが多いので、さすがに3GBクラスのソースをぽんぽん置くだけは確保できないですからねぇ。

動画は下地処理が大事だなーと思った件

CUDAパワーを活かすために、色々とフィルタ機能を試しているワケですが、スマートシャープに続き、ノイズフィルタ(TMPGEncの「映像ノイズ除去」フィルタ)の効果にも驚いている今日この頃です。

1440x1080iの24分アニメを1パス品質依存で720x400pのDivXにした場合、

  • 某虎とか竜とか出てくる番組の6話目:200MB->152MB
  • 某主要キャラが1話目で全員死んでしまった番組の5話目:281MB->167MB

と劇的にサイズが縮みました。特に後者の差はスゴいですね。どうもグレインノイズをわざとかけてるっぽいので、それがつぶれてサイズに反映されてるのかも知れませんね。σ(^^)の目では2画面表示にして見比べても差はわかりません。

サイズが縮むと保管場所はもとより、転送時間、モバイルデバイスでの再生可能性も上がったりとメリットがあるので、CUDAパワーで実用的時間でかけられるなら今後も活用していきたいと思います。特にアプコン放送っぽい番組には有効なんじゃないかなと。ハイビジョンクッキリギラギラな番組だとどうなんだろ?

TMPGEnc 4.6.3.267で追試

TMPGEnc 4.0 Expressの新バージョンが出たので、CUDA周りのベンチをやり直してみました。1分ジャストの1440x1080iのMPEG2-TSを720×200のDivXにした場合で測定(こないだとターゲットプロファイルが違う)。

フィルタ無し(インタレ解除のみ)の場合、

  • ALL ON: 62秒
  • フィルタのみ: 57秒
  • デコーダーのみ: 98秒
  • ALL OFF: 82秒

と、デコーダーをCUDA任せにすると若干速度低下するという結果になりました。

スマートシャープをかけた場合、

  • ALL ON: 90秒
  • フィルタのみ: 86秒

とこれまた僅差ながらフィルタのみの勝利(ちなみにフィルタをオフにすると10分程度)。ノイズ除去でも同傾向です。

つまり、(少なくともウチの環境の場合)デコーダーはCPU側でやった方が有利っぽいという単純明快な結果に落ち着いたようです。これなら、フィルタを使うかどうかで設定を切り替えなくて良いので助かります。

まぁ、最速で終わるかっていうのとCPU負荷を減らしてフォアグラウンドタスクを軽くするかっていうのでも違うんでしょうけど、基本はエンコ中放置で、最短エンコ時間を目指す前提で。

GeForce GTX260でCUDAに挑戦

GeForceのCUDA2.0という、GPUパワーを汎用的な計算に使ってしまおうという機能に対応したTMPGEnc 4.0 Expressがリリースされました。

まだフィルタ処理とMPEG1/2のデコード処理だけの対応ですが、我慢しきれずに対応ビデオカードに特攻してしまいました。フィルタあんまり使ってないので恩恵少ないことが予想されるんですが、つい…

■ハード

とりあえずせっかく買うのだからGTX260にしてみました(さすがにGTX280は除外)。横浜の店頭在庫ではさして選択肢もなく、例によって玄人志向のものに。

とりあえずデカいです。3Dゲーマーではないので、2段占有のグラボを買うのも初めて。写真上は今まで使っていたRadeonHD3450。DSCN0265

全面ケースに覆われていて基板むき出しなのはスロット端子のみという感じなので、扱いはなんとなく楽です。が、これ奥行きありすぎて、3.5インチベイのマウンタと干渉してつきませんでしたorz。しかたなくマウンタをとりはらって、カードリーダーはガムテ止めに…

検索エンジンで見に来る人もいるでしょうから改めてその他の環境を晒しておきましょう。

  • CPU: Q6600@定格
  • RAID 0
  • 4GBメモリ

■TMPGEnc

設定としては、フィルタとデコードを個別にON/OFFできます。

元々、デジタル放送ソースやDVDソースが多いので、フィルタはほとんど使っていませんでした。アニメは24fps化をする位。あとインタレ解除ですね。1分30秒のMPEG2-TS、1,440×1,080iソースを1,280x720pなDivXにしてみた感じ、

  • 両方オフ:3分
  • フィルタのみ:17分
  • デコーダーのみ:3分
  • 両方オン:4-5分

同じ設定で何度か繰り返しても結構ばらつくので、数値は概算で出してあります。オフの方が早いですねorz。オンの場合のCPU:GPU使用比率は、概ね3:7というところです。せめて損はしないよう自動でバランスとってくれれば、常にオンで放置できるんですが…(デコーダーのON/OFFはTMPGEncの再起動が必要)。

特にフィルタのみ使った場合の遅さは異常ですね。

 2008.11.06追記こちらのエントリでTMPGEncの新バージョンによる追試をしました。

次にせっかくなのでフィルタを活用してみることにしました。ほとんど使ったことがないので、あらためて解説本でお勉強。

その結果、見かけの解像感をあげる(輪郭線が細くなる)のにスマートシャープというフィルタが有効そうだったので使ってみました。あと、リサイズのアルゴリズムで、デフォルトのLanczos-3はリンギングが出て、主に拡大用、ということだったので、BiCubicに変更してみました。シャープになるが重い、ということだったのでうってつけです。

1分17秒のDVDソースで720×400なDivXを作る際の比較が以下。

  新設定 旧設定
CUDA ON 54秒 41秒
CUDA OFF 2分53秒 31秒

 

これは明らかに差がでますね。フィルタを使った場合、1/3になっています。この差はCPUのクロックで出すのは途方もないことです。一方、フィルタを使わない場合、やはりCUDAをオフにしないと遅くなってしまうようです。

まとめとしては、

  • フィルタを使わない時はマメにオフにするべし (新バージョンでは必要ナサゲ)
  • スマートシャープ(゚∀゚)イイ!

ってことですね。バッチエンコードで色々まとめてエンコする時なんかは不便なので、簡単に切り替えられたりできるようにしてほしいものです。

またスマートシャープの効果はスゴいです。従来であれば6倍の時間がかかったので知ってても使おうと思わなかったかも知れないですが、倍弱で済むならコンテンツによっては使ってみるかも知れません。

■Badaboom Media Encoder

CUDA2.0をH.264エンコードにも活用してくれるおそらく現状唯一のソフトです。体験版を試してみました。

爆速です!

DVDソースの24分アニメがiPhoneプロファイル(1.2Mbps)でわずか4分でした…

ただ、VIDEO_TSを読み込み、トラック範囲指定でエンコードもできるものの、現行バージョンはまだいくつかの理由で実用になりません。

  • 音ズレする(たまたま?)
  • MPEG4系をソースに使えない
  • 日本語ファイル名が化ける
  • バッチエンコードができない
  • 字幕入れに対応していない
  • 2passもできない
  • 24fps化ができない (できました)
  • 音質もいまいち?

など。iPhone/PSP用動画は、DivXを元に作ることが多いので、それができないのは痛手です。iPhone/iPod touch/AppleTV/PSPといったデバイスを選び、画質スライダーを動かすだけ、という簡単操作は初心者には良いですが、フロントエンドはやはりTMPGEncが自由度高くて使いやすいなぁ、という印象。現状ではお金払ってまで使い道がなさそうです。

はやくTMPGEncのエンコード処理にも対応してほしいなぁ。

Microsoft Office Live と Shared View

とある仕事で役に立ちそうな気配があったので、Microsoft Office Live Betaを試してみました。

■Office Live

Google Docsに近いサービスで、Office文書をMicrosoftのサーバー上に置いて共有することができます。Google Docs同様、ブラウザ上でWordやExcel、PowerPointファイルを閲覧、編集できますが、やはりGoogle Docs同様、デスクトップアプリの代替とはなり得ません。が、Office Liveが大きく違うのは、Officeのファイルメニューから直接アクセスできる点です(2007/2003/XP。これのインストールが必要)。ローカルドライブ感覚でオンラインストレージ上のファイルを開いたり編集したりでいるわけです。Google Docsと違ってアップロード、ダウンロードの手間がいらないのは大きいです。

相手が開いているファイルは読み取り専用で開きますが、その確認ダイアログで「通知」ボタンを押して予約しておくと、相手が閉じた時に通知が来るみたいです(Excel上とメール)。

また、読み取り専用で開きつつも変更をしてしまった場合、相手が閉じた時点で、それを読み込み直すか、こっちの変更で上書きするか尋ねてくれます。この通知、こちらで待ってた時には相手が閉じた途端に届いたんですが、逆で試した時はさっぱり届きませんでした。どういうタイミングで通知されるんでしょうね。

image

↑3文目の「変更内容」がどっちを指してるのかわかりにくい文章ですね。

ちなみに例によってOperaで入ろうとするとはじかれますorz。FireFoxはOK。

■SharedView

ついでに、Office Live使用中にバナーが出てたMicrosoft Shared Viewも実験。

Windows Messengerの頃にはできてた、ウインドウ単位の画面共有ができ、また3人以上でのセッションができるのがリモートアシスタンスに比べたアドバンテージでしょうか。ちなみに、XPSP2以降対応。

画面共有はしたいけど、散らかったデスクトップとかまで見られちゃうのはどうもなー、って事もあるので、やはりウインドウ単位は必要でしょう。あるウインドウから開いた子ウインドウもちゃんと見えたようです。ただ、見せてる側で当該ウインドウが別ウインドウで隠れると、相手の方もその部分がグレーになっちゃうらしく、常に前面に維持しなくてはならないのが不便です。内職とかしづらいw。

3人以上で操作することを考慮してなのかも知れませんが、操作権が完全排他で、リモートアシスタンスみたいに二人ともがなんとなく操作できるってのに比べると不便ですね。

音声通話機能はないので、別にSkypeなりを組み合わせる必要もあります。

遠隔の打ち合わせなどには、テレビ電話よりも便利なんですが、せめてVistaには標準で搭載しておいて欲しかったですね。相手にこれをインストールしてもらうまでが大変です。

σ(^^)の場合、3人以上で使うことはあまりなさそうなので、ウインドウ単位の共有さえできればMessengerの方が便利なんだけどなぁ。なんでなくしちゃったんだろ?