« 機種リスト | メイン | スクリプトデバッガーコミット »

2010年05月25日

吉里吉里 ムービー拡張日誌2:: WebM / VP8

    

週末に組み込もうと予定していたけど、よく見ると「DirectShow Filters Source Coming soon.」と書かれていて、DirectShow フィルタのソースがまだ公開されていないため断念。
実装方法は、DirectShow フィルタをインストールしなくても再生できるように、krmovie.dll 内にフィルタを持つ形にする予定 ( そのためソースコードが必要 )。
インストール前提であれば、フィルタ繋ぐだけなのでたいした作業は必要ないが、現状でマイナーなコーデックなので再生できない人も多く出るだろうからそれは避ける。
DirectShow フィルタのソースが公開され次第再生出来るようにするべく組み込み作業をする予定だけど、あまりに公開が遅いようだとフィルタは作ってしまうかもしれない。

そこでとりあえずクオリティーや再生負荷を見るべく動画再生エンジンで作っていたプレイヤーに組み込んで再生してみることに。
libvpx は、yasm を入れる必要があるけど、VS2008 で問題なくビルドできる。
とりあえずは、サンプルの IVF コンテナを再生出来るようにしてエンコードしようと思ったら、添付の ivfenc.exe は YV12 か I420 形式の画像をつなげたバイナリの固まりを必要としていたので、AVI から YV12 に変換して一つのバイナリに固めるツールを作って、変換して、ivfenc.exe に食わせてエンコード。
エンコードはそれなりに重い。
作ったツールの YUV の色変換が少しおかしくて手間取ったものの再生出来るように。
( libvpx はデコード画像を I420 で出力するんだけど、YV12 に出来ないのかな? 謎。まあプレーンの並びが入れ替わるだけなので大して変わらないが )

動画は普通に綺麗で圧縮率も良い。
CPU 負荷は、Theora の1.6倍程度。
ポストプロセスを入れると 2.4倍くらいになる。
※ここの倍率測定は、デコード時間で見ているもので、CPU負荷を目視したものではありません。
重い。
Core i7 で見て1~3%のCPU負荷 ( 640x480で ) 。
ポストプロセスは、補間を入れることで品質を上げるものだと思われます。

Core 2 Duo E6750 2.66GHz で CPU 負荷を見てみると……
Theora : 5~8 %
VP8 : 6~10 %
VP8 + post process : 10~15 %

640x480 の再生に 1GHz くらい必要かな? ( NetBurst じゃないもので )
Atom D510 で今週末にでも負荷を見てみる予定。
PenIII 866MHz のノートPCでも再生テストしようとしたけど、YV12 のサーフェイスがサポートされていないのかプレイヤーが落ちてしまったので未確認。
上記テストは D3D で表示しているので、これを Overlay にすると少し負荷が軽くなるのと、ノートでも動くかもしれないので、後で確認してみる予定。
CPU での YV12 → RGB24 の変換を入れるとかなり重くなるので、吉里吉里のレイヤーモードで再生すると要求する CPU はさらに上がる。

About のページ のNoteに、「サンプルのブラウザサポートはかなり重いけど、それはまだ最適化していないから。現在リリースされている VP8 SDK を使うことでより正確な負荷がわかります。最適化版ブラウザは準備中です。」的なことが書かれている。
つまり、上の libvpx をビルドして組み込んで試したものが、現状で最適化されたものってことかな。
何とかもう少し Google が頑張って最適化してくれるといいな。

VP8 の圧縮率は確かにいいので、他で要求する CPU が底上げされているのなら、使っても良いと思う。
そうでない場合は、普通に MPEG I や WMV を選択すると思うけど。
WMV は現状である程度のハードウェア支援も期待できるし。
VP8 はハードウェア支援が浸透してくると、WMV から置き換えてもいいと思う。
要求する CPU はある程度高くなってもいいから圧縮率が高いのがいいってことなら VP8 は全然あり。

使うかどうかは別にして、吉里吉里2でのサポートはする。



投稿者 Takenori : 2010年05月25日 19:40



コメント

半日ほど前にリリースされたWebM/VP8 DirectShow Filters v0.9.7.0から
ソースが同梱されるようになったみたいです。

投稿者 Anonymous : 2010年05月27日 18:12


comments powered by Disqus
Total : Today : Yesterday : なかのひと