« Theora のデコードをもっと速く その5 | メイン | Turbo C++ Explorer で吉里吉里2をビルド »

2007年11月08日

動画再生エンジン開発日誌:: Dirac とか

    

Dirac video codec を試してみた。
落としてきて make してエンコードしてデコードしてみる。
720x576 が Core2Duo E6750 で 10 FPS 。
重い。
とりあえず、ムービー再生エンジン のページに Dirac 0.8.0 を MinGW で make した dirac_decoder と dirac_encoder を置いておく。
使い方などは、Dirac0.6のエンコーディング実験。 のページを見るとわかりやすいかも。

theora 動画を VLC とも比較してみた。
Process Time: 0:00:13.093 - 140% - VLC media player 0.8.6c
Process Time: 0:00:09.359 - 100% - 今のやつ - offscreen が使われる
Process Time: 0:00:08.703 - 93% - Flip 版
VLCとなら張り合えるんだなぁ。

Xiph.org Test Media というのがあると教えてもらった。
ロスレス ( PNG ) で圧縮された連番静止画の動画が置いてある。
フルHDサイズ ( 1920x1080 ) だと、21GB 。。。 でかい。
640x360 の方を使ったほうがいいかな。それでも 3.3GB だけど。
で、PNG から Theora に変換するのに便利なように、ムービー再生エンジン のページに png2theora を置いておく。
これは libtheora についているんだけど、 MinGW でコンパイルしようとしたら、scandir がないと言われてうまくいかなかったから、scandir を別に作って中身を FindFirstFile にしたものにしている。
ただし、ファイル数の上限は 32768 個まで。面倒だったから固定にした。
後、パラメータの switch case のところで break が抜けている箇所があって、おかしかったので直した。
上のページにもあるけど
png2theora -o out.ogg -v 6 -f 30 -F 1 %05d.png
のように使う。%..の箇所は書式指定。連番の画像を指定できる。
引数を与えなかったら簡単な使い方が出る。
中身は、libpng で読み込み、YUV 変換、theora へエンコードとなっている。
複数スレッドに分割すればもう少しエンコード速くなりそうだと思うけど、実験用には十分。



投稿者 Takenori : 2007年11月08日 18:52




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