Active Topics

 



Notices


Reply
Thread Tools
Posts: 71 | Thanked: 12 times | Joined on Jan 2007 @ Dubai, UAE
#291
Ok, so if 16bit value multiplication is enough for IDCT processing then one could get x2 performance from coding critical parts in assembler so not so huge improvements as with SSE.

But do you know if decoding is bottleneck and not display rendering or reading from SD card? OMAP 2420 has 32KB/32KB cache, is it enough for performance critical part of mplayer?

Should get one when traveling again so can start playing again with assembler, even though last time was 12 years ago with Intel 8051
 
Posts: 4 | Thanked: 0 times | Joined on Jan 2007
#292
I don't know where to find MPlayer in my 770. I used Application Manager to install it from the catalog, but don't know where it went then. I have X Terminal, but am fairly new at this. I know this question has been asked before, but I haven't found the answer that works. Help?
 
Posts: 2,102 | Thanked: 1,309 times | Joined on Sep 2006
#293
It should appear in your extras menu (as it has a gui now), otherwise launch it from the xterm by typing "mplayer" (without quotes).

Si
 
Posts: 4 | Thanked: 0 times | Joined on Jan 2007
#294
That was my problem - it wasn't in the extras menu, and 'mplayer' in xterm reported 'file not found'. So using Application Manager, I uninstalled, downloaded the .deb file to my memory card, and reinstalled. It is OK now, so the first online install must have been corrupted. I had the power supply plugged in for the original attempt. Is it a bad idea to do an install with the power supply connected? I thought I read that somewhere. Thanks.
 
Posts: 503 | Thanked: 267 times | Joined on Jul 2006 @ Helsinki
#295
Originally Posted by uris View Post
Ok, so if 16bit value multiplication is enough for IDCT processing then one could get x2 performance from coding critical parts in assembler so not so huge improvements as with SSE.
Yes, but 16-bit multiplications are not the only operations in IDCT, you also need to load and store data for example. So performance improvement from using these instructions will never reach x2 factor in reality.

But do you know if decoding is bottleneck and not display rendering or reading from SD card?
Sure, first you can check benchmark results provided by sdrman a few posts above and also my link with the results from 770. Decoding takes most of the time. Also it is easy to skip some frames on video playback if cpu power is not enough, but you can't skip decoding (so if your cpu is not fast enough to decode video in realtime, that's the worst case).

In addition, it is possible to profile mplayer with valgrind/callgrind (on x86 cpu, just to get general information about what parts of code take the most), or with gprof on real device. Some sample gprof output for mplayer on 770 can be found here: http://lists.mplayerhq.hu/pipermail/...ry/050363.html

In my tests IDCT usually takes 30% to 50% of video decoding time.

You can also check this article explaining video compression basics and performance considerations: http://www.dspdesignline.com/howto/b..._sel/187002884

OMAP 2420 has 32KB/32KB cache, is it enough for performance critical part of mplayer?
I did some simulations with callgrind. Instructions cache should be enough for mpeg4, but there are many instruction cache misses for h264 (especially with cabac). And data cache is not enough for storing all the image buffers in it for sure, so many memory accesses in mplayer while decoding video are data cache misses.

Should get one when traveling again so can start playing again with assembler, even though last time was 12 years ago with Intel 8051
You are welcome
 
Posts: 344 | Thanked: 26 times | Joined on Jan 2007
#296
Serge,

Just wanted to shoot you a quick note thanking you for your time spent on Mplayer optimizations for the N800.

I picked one up on Jan 8th from CompUSA, and I must say it feels considerably better than my older 770. I was able to watch an Xvid of Heroes at 624x352 with a total bit rate of 1150 kbits. It would start dropping frames in heavy action scenes but it held up for the most part. Do you think it will be possible to get full speed playback on these typical files? Would be amazing to not have to re-encode movies, but just toss them right on my tablet =)

If i can provide better feedback by dumping logs, etc... I'd be willing to help with some brief instructions from you.

Edit: The video framerate 23.98 as well. If I could get some instructions on how to run a benchmark from the gui (or terminal) I'd be glad to help.

Last edited by sherifnix; 2007-01-19 at 17:02.
 
Posts: 503 | Thanked: 267 times | Joined on Jul 2006 @ Helsinki
#297
Originally Posted by sherifnix View Post
Just wanted to shoot you a quick note thanking you for your time spent on Mplayer optimizations for the N800.
Well, it is too early to thank me for N800 optimizations, they have not been done yet (except for selecting proper compiler options)

I picked one up on Jan 8th from CompUSA, and I must say it feels considerably better than my older 770. I was able to watch an Xvid of Heroes at 624x352 with a total bit rate of 1150 kbits. It would start dropping frames in heavy action scenes but it held up for the most part. Do you think it will be possible to get full speed playback on these typical files? Would be amazing to not have to re-encode movies, but just toss them right on my tablet =)
I hope that this kind of video (24 fps) will be watchable even on Nokia 770 after a bit more optimizations, we are quite close to it already.

If i can provide better feedback by dumping logs, etc... I'd be willing to help with some brief instructions from you.

Edit: The video framerate 23.98 as well. If I could get some instructions on how to run a benchmark from the gui (or terminal) I'd be glad to help.
You can press 'Report' button in GUI after watching video. It will show some statistics about decoding and video output cpu usage and also the percentage of frames dropped at the end of report.
 
Posts: 503 | Thanked: 267 times | Joined on Jul 2006 @ Helsinki
#298
mplayer_1.0rc1-maemo.8
Code:
  * Added initial version of JIT accelerated yuv420p -> yuyv422
    scaler (Nokia 770 only). This scaler is a lot faster (up to
    8x factor) than any of the standard scalers from libswscale
    (the previous implementation). Right now image quality for
    scaled video decreased somewhat, but that will be fixed in
    one of the next versions. In order to revert to old scaler
    implementation you can use '-vo nokia770:jitscale=0' command
    line option. Also 'jitscale' suboption sets image quality
    for JIT scaler. Right now there are two settings: 2 (default)
    and 1 (a bit faster but looks even worse - that's nearest
    neighbour / point scaler algorithm). This new fast scaler
    eliminates an old weakness of maemo port of MPlayer - jerky
    playback for 'inconvenient' video resolutions.
  * Some optimizations for unscaled yuv420p -> yuyv422 color format
    conversion (up to 1.5x improvement)
  * Added 'vo_change_rectangle' slave command, it can be used to
    change video output screen area any time, this command
    works with -vo nokia770 video output driver
In other words, now we have a super fast JIT accelerated scaler and any video resolution should be supported with almost no performance penalty (not just only 320x240, 400x240, 400x224 as before).
 
Posts: 550 | Thanked: 110 times | Joined on Aug 2006
#299
I notice a bunch of changes for the 770. Is this build suitable for running on the n800 as well, or should I continue to run the one you released recently for it?
 
Posts: 503 | Thanked: 267 times | Joined on Jul 2006 @ Helsinki
#300
Originally Posted by Rocketman View Post
I notice a bunch of changes for the 770. Is this build suitable for running on the n800 as well, or should I continue to run the one you released recently for it?
Well, in fact all these changes provide improvement for 770 only. Now Nokia 770 uses a highly optimized software scaler while N800 supports scaling in hardware and such tricks should be not needed there.

Most likely this mplayer_1.0rc1-maemo.8 build can be run on N800 as well, but it was specifically configured and optimized for 770. So performance on N800 will be far from optimal.

Last edited by Serge; 2007-01-22 at 16:00.
 
Reply


 
Forum Jump


All times are GMT. The time now is 22:47.