linux下mplayer测试,播放720p的avi视频,1280x720分辨率,xvid,5M左右bps,基本上已经很卡,无法音视频同步了。
因为AM3517的sgx没有视频的codec,无法对视频编解码进行优化,因此只能用cortex-a8的核来播放视频了。性能受限。
如果不加任何优化,测试下来,基本上800x480的avi,2.7M码率的能流畅播放,CPU占有率也不到80%。
Mplyaer打开neon优化后,速度明显快一些,基本上能播放1024x768分辨率2.7M码率的xvid视频,画质也还可以接受,cpu占有率在90%左右。
根据TI的提示,打开mplayer编译的enable-neon选项
http://processors.wiki.ti.com/index.php/Cortex-A8 How to enable NEON
mplaer的build命令,其中enable-neon很重要,也增加了fash-math等优化
./configure --prefix=/media/disk2/mplayer/_install/
--extra-cflags="-I/media/disk2/mplayer/_install/include/-march=armv7-a
-mtune=cortex-a8 -mfpu=neon-ftree-vectorize -ffast-math -mfloat-abi=softfp"
--extra-libs="-L/media/disk2/mplayer/_install/lib/"
--cc=arm-none-linux-gnueabi-gcc--ar=arm-none-linux-gnueabi-ar
--ranlib=arm-none-linux-gnueabi-ranlib--target=arm-linux --enable-fbdev
--disable-sdl --disable-x11--enable-cross-compile --disable-mp3lib
--enable-mad --enable-neon
编出来的mplayer有11M,拷贝到linux下直接运行,发现过一会,大概几秒钟就死机,cpu没有任何响应。换用开发板发现不死,对比发现uboot中有关于打开neon的操作
我的系统是自己写的bootloader,引导linux前没有打开neon,因此当cpu执行到neon代码时,就死机了。在boot中加入这几行代码,就ok了。
因为AM3517没有视频codec,因此视频播放能力受限,我们也只能打开mplayer的neon,其他也没有太大的优化空间了。
请参考TI E2E的帖子
http://e2e.ti.com/support/arm/sitara_arm/f/791/t/68794.aspx