AM3517视频播放优化

来源:互联网 发布:知乎 粮食 编辑:程序博客网 时间:2024/05/22 14:51

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




原创粉丝点击