リビングマシンのHDDアクセス不調回復か

リビングマシンが長いこと不調でした。時々数十秒~1分ほどフリーズをし、また何事もなかったかのように動き出します。固まると言ってもマウスは動き、CPUメーターなども振り切ってる様子もなく、ただHDDアクセスランプが付きっぱなしになる感じ(アクセス音はしない)。

もともとマザー、CPU変更に伴いOSクリーンインストールをしないで使ってたので、そのせいだろうとは思ってたんですが、容量不足もありHDD自体を交換しても同じ(OSはムーブ)。

まぁ、我慢できないほどではないのでクリーンインストールの手間を躊躇して放置してたんですが、地デジ録画に使うのにこれはマズかろうとクリーンインストールを決意。

ところがいざインストールDVD-ROMを入れて起動させてみると、Microsoft Corporationと出て似非プログレスバーが動くところから先に進まない。何度かリセットしたりメモリを減らしたりしても変わらないので、BIOS設定をリセット。そこでふと気付いて、HDDモードをAHCIからNativeIDEにしてみたところ、元のOSもなんか安定してしまったぽい。

Vistaの標準ベンチでも数字かわらないし、当面このまま使い続けても平気そう。一応は動いていたので、AHCIドライバの問題だとは全く思ってませんでした。うーむ、もっと早く気付くべきだった…

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のエンコード処理にも対応してほしいなぁ。