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であること、オーバレイ以外はすべてソフトウェアで処理してることなど考えると、かなり健闘していると思います。

それにしても、VGADivX


************************************************
**** Your system is too SLOW to play this! ****
************************************************

のメッセージを見ずに再生出来るなんて、感動もんです。

VGA動画ですが、僕も最初に見たときは感動しましたね。MPEG1なら20fps前後で再生できそうとあって、俄然最適化に力が入りました。C3000 が予想通りの性能なら、mplayerでもDivXVGA動画がフルフレーム再生可能なはずです。あまり予想に自信が無いので表では口にしていませんが。:) -- atty? 2004-11-09 (火) 11:35:52

この発言もなんとか成就。まぁこれはノーマルカーネルを想定していたので、ちょっと負けた気分ですが……。

年内にやるべきこと。

  • フロントエンド
  • オーバレイ表示の安定化
  • 256KBのSRAMを使ってバス消費率を下げる(どのくらい速くなるかは未知数)
    • 変化無し。面倒になるだけなのでボツ。
  • ベースフレームを4bppにしてバス消費率を下げる

メモ。

  • QVGAモードはサポートしない!QVGA->VGAの拡大処理をソフトウェアでやってもお釣りがくるはずなので。
  • -
- 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も試してみようかなぁ。