Visual Studio 2008注文

最近、動画眼への要望やバグレポートをちょくちょくもらい更新することが多いので、そろそろちゃんとインストーラー形式で配布しないと、毎度ダウンロードしてもらう人に申し訳ないなと思って挑戦しようとしたら、なんと無料のVisual Studio 2008 Express EditionではMSIインストーラーパッケージを作ることができないと判明。

Visual Studio 2005はStandard Editionを買ってもってるんですが、2008からWindows Mobile向けの開発がProfessional Edition以上しかできなくなり、3.5万ほどの差額を払ってProfessionalにすべきか悩みつつ、無料版でしのいでたんですよね。Windows Mobileで作ってみたいアプリはあるものの、結局時間がとれなくて2005買ってからも着手できてないしと。

で、ほとんどStandardでいっか、という気になってたんですが、改めて他の差異も比較してみたところ、「Officeアプリケーションの開発」[CodeZine]というのが目につきました。最近Excel VBAを使った仕事もちょくちょくあるので、なにかそれに役立つのであればいいなと詳細を調査。どうやら、VBAのようにドキュメントやテンプレートにマクロを埋め込むだけでなく、アプリケーション側にインストールするアドイン(2007のリボンUIなど)を作成できるようですね。コード的にもVBAで実装できなかったようなものが書けるようになるとか(使えるコントロールが増えたり?)。んー、それほど高度なVBA制作をするワケでもないのであまり役に立たないかも知れませんが、WM開発に加えてもう1つ使う「かも知れない」機能があるならいいか、とProfessional Editionを注文してみました。

とりあえず正月休み中に動画眼、動画眼Noteのインストーラー版の配布をしてみようかと。

リビングマシンの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負荷を減らしてフォアグラウンドタスクを軽くするかっていうのでも違うんでしょうけど、基本はエンコ中放置で、最短エンコ時間を目指す前提で。