Hatena::ブログ(Diary)

阿川のひとりごと RSSフィード Twitter

    2004-10-17 (Sun)

    [] betaplayerの移植

    月曜から3連休なんで作業してみます。

    以前流し読みしたときは、綺麗にコアとGUIが分離してあったと思うので、意外と楽にいけるかもしれません。

    あ、ちなみにGUIは実装しませんよ。

    [] zgnuboyやmplayer-w100にGUIを付けない理由

    なんか勘違いしている人がいそうなので書いてみます。GUIを付けないのではなく、付けられないのです。

    C++ライブラリgcc-2系列とgcc-3系列で互換性がありません。システムのlibqtはgcc-2.95.3でビルドされているので、アプリケーションをgcc-3系列でビルドしてもlibqtとリンクできません。

    なぜgcc-3系列を使うか?実際にベンチマークを取ってみました。

    $ mplayer-gcc2.95.3 -vo null -quiet -benchmark -nosound /mnt/card/RL_HQ_640x352_1024_128.avi
    
    BENCHMARKs: VC: 178.890s VO:   0.331s A:   0.000s Sys:   2.849s =  182.071s
    BENCHMARK%: VC: 98.2530% VO:  0.1820% A:  0.0000% Sys:  1.5650% = 100.0000%
    
    $ mplayer-gcc3.4.2 -vo null -quiet -benchmark -nosound /mnt/card/RL_HQ_640x352_1024_128.avi
    
    BENCHMARKs: VC: 142.582s VO:   0.217s A:   0.000s Sys:   2.785s =  145.584s
    BENCHMARK%: VC: 97.9380% VO:  0.1493% A:  0.0000% Sys:  1.9128% = 100.0000%
    

    とまぁこのように、ただコンパイラを変えただけで速度が1.25倍になります。これは馬鹿にできない違いだと思います。

    よって最高のパフォーマンスとGUIの両立を求めると、zemfe+zgnuboyのようにGUI部分と本体を物理的に分離し、プロセス間で通信するしかありません。これが非常に手間なんですよ、はい。

    なんかいい解決策があれば教えてください。

    余談

    QtCっつーのがあって、Qt3系列用ですが、QtをCでラップしてます。

    C ABIはgcc-2とgcc-3で互換性がある(っぽい)ので、QtCをQt2用に変更し、

    さらにそれをC++でラップすればネイティヴにGUIを実装するのも無理ではありません。

    なんかヒジョーに無駄な作業なので、やる気おきませんが。

    SL-C3000には期待できませんが、さらに次機種でもgcc-2系列が使われているようであれば、OpenZaurusなどへの移行を考えます。

    [] W100の解析を進行させる

    アセンブラも読もうとすれば結構読めるもんですな。手動逆コンパイラやってます。頭痛い。

    PXA270のデータシートをみていて、ふとY,U,Vプレーンを全て内蔵VRAMに置かずに、U,V or Yプレーンだけを外部VRAMに置いたらどうだろうと思ったんで。外部VRAMに置いたときの乱れ具合が、なんとなくメモリ帯域が足りていないような感じなので、データ量を減らせばあるいは?とか。もし成功すれば本当のVGA動画も再生できるし、やる価値はある。

    あ、頭痛いのは風邪っぽい(笑)。薬飲んで寝ますわ。

    寝れない。

    んんん?なんかオモシロゲなものが届いていますよ?

    PlestoPlesto 2004/10/17 23:38 プレーンごとにVRAM空間を変えるなんてことが可能なのですね。そうすると外部と内部のメモリで疑似インタリーブ処理して、高速化できたりしませんかねぇ…?

    attyatty 2004/10/18 05:50 いえ、実際に可能なのかはわかりません。APIからは連続したアドレス空間しか扱えないので、APIの中でどのようにレジスタを設定しているのか解析しているところです。

    1900 | 01 |
    2003 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
    2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
    2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
    2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 09 | 10 | 11 | 12 |
    2007 | 01 | 02 | 03 | 04 | 05 | 06 | 08 | 10 | 11 | 12 |
    2008 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 12 |
    2009 | 01 | 02 | 04 |
    2010 | 10 |
    2011 | 05 |