mplayer iWMMXt最適化がだいたい終了
結果はこんな感じで。それなりに苦労した割にはさほど速くならないなぁ。
ベンチマークなど。
$ ./mplayer -vo bvdd /hdd3/RL_XQ_480x640_1500_128.avi -quiet -rtprio 2 -benchmark -nosound
BENCHMARKs: VC: 124.453s VO: 0.096s A: 0.000s Sys: 3.304s = 127.853s
BENCHMARK%: VC: 97.3402% VO: 0.0753% A: 0.0000% Sys: 2.5845% = 100.0000%$ ./mplayer -vo bvdd /hdd3/RL_XQ_480x640_1500_128.avi -quiet -rtprio 2 -benchmark
BENCHMARKs: VC: 119.853s VO: 0.095s A: 12.719s Sys: 19.177s = 151.845s
BENCHMARK%: VC: 78.9313% VO: 0.0628% A: 8.3766% Sys: 12.6293% = 100.0000%
ソースは151秒。映像処理124秒 + 音声処理13秒 = 137秒。音付きで再生したときのSysの部分は同期を取るためにスリープしている時間ですね。betaplayerのベンチ風に言うと110%のデコード性能ってとこですか。ベースがmplayerであること、オーバレイ以外はすべてソフトウェアで処理してることなど考えると、かなり健闘していると思います。
************************************************
**** Your system is too SLOW to play this! ****
************************************************
のメッセージを見ずに再生出来るなんて、感動もんです。
VGA動画ですが、僕も最初に見たときは感動しましたね。MPEG1なら20fps前後で再生できそうとあって、俄然最適化に力が入りました。C3000 が予想通りの性能なら、mplayerでもDivX系VGA動画がフルフレーム再生可能なはずです。あまり予想に自信が無いので表では口にしていませんが。:) -- atty? 2004-11-09 (火) 11:35:52
この発言もなんとか成就。まぁこれはノーマルカーネルを想定していたので、ちょっと負けた気分ですが……。
年内にやるべきこと。
- フロントエンド
- オーバレイ表示の安定化
- 256KBのSRAMを使ってバス消費率を下げる(どのくらい速くなるかは未知数)
- 変化無し。面倒になるだけなのでボツ。
- ベースフレームを4bppにしてバス消費率を下げる
メモ。
- -
- with -ffast-math BENCHMARKs: VC: 124.029s VO: 0.097s A: 0.000s Sys: 3.495s = 127.622s BENCHMARK%: VC: 97.1853% VO: 0.0762% A: 0.0000% Sys: 2.7385% = 100.0000% - without -ffast-math BENCHMARKs: VC: 115.892s VO: 0.094s A: 0.000s Sys: 2.906s = 118.892s BENCHMARK%: VC: 97.4764% VO: 0.0791% A: 0.0000% Sys: 2.4445% = 100.0000%
-ffast-mathを外したほうが速くなる罠。なぜに?。gccのオプションも一通り検証するべきだな。
ていうかこんなことで10秒も速くなるなんて……orz
gcc-4.0も試してみようかなぁ。