完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
3 性能优化
尽管ARM9处理器主频可以高达200MHz以上,但是为了降低功耗,本系统在保证满足实时播放的前提下,对系统进行优化。所以,在一个资源受限的处理器上要实现多媒体文件的实时播放,性能优化成为关键。本系统主要通过解码程序优化,打开Cache等措施来提高系统性能。 3.1 对解码程序的优化 由于解码过程绝大部分是计算,以MP3音频文件为例,其解码过程主要是高精度乘法和矢量运算,其中80%的CPU时间用于数值计算,因此对于解码部分主要采用了以下方法进行优化: (1)整数运算。在没有硬件浮点单元的CPU上,浮点运算是仿真方式,因此解码代码中应直接采用整数运算方式编码,而避免浮点运算; (2)通过查表方式代替很多运算式获取计算结果,对调用频繁的小函数采用inline修饰; (3)关键代码采用汇编语言编程,以获得更高效的目标代码,来提高系统的运行性能。 3.2 打开Cache ARM9处理器带有独立的16 kB数据Cache和16 kB的指令Cache。本系统中,打开指令Cache肯定能在一定程度上提高性能。至于数据Cache,由于从SD卡或者U盘读进来解码的数据使用完毕后就再也不会使用了,解码产生的数据也是一样,使用一次就会被丢弃,因此数据访问的时间局限性基本是不存在的。但是,系统在访问数据时存在很强的"空间局限性",所以打开数据Cache后可以提高性能,因为: (1)Cache和IDRAM之间通过Burst方式传递数据,提高了总线带宽,从而降低读数据的延迟。 (2)Cache一次读128bit或256bit,当读已在Cache中的数据时就会命中。 (3)通过WriteBuffer或WriteBack方式读内存时,没有写DRAM的延迟。 但是这样也会带来数据不一致的问题,主要是DMA造成数据的不一致,因为SD卡或USB的传输是通过DMA进行的,其传输过程无需CPU干预,DMA操作直接访问内存,但不会跟新Cache和写缓存相应的内容,这样就造成了数据的不一致,可用以下方法解决: (1)将SD卡或USB和CPU共享的控制数据空间设置为uncachable,否则无法保证CPU读到的Cache中的数据是最新数据,从而可能造成系统运行错误。 (2)SD卡或USB输入模块通过DMA像主存传输文件数据时,写数据的缓冲区是由文件系统提供的。该缓冲区的特点是存储空间比较大而且是顺序访问的,可将其设置为cachable。 经过上述方法的优化以后,系统性能得到了大幅度的提高。经过测试表明,优化后解码所需的时间为优化前的15%左右,均小于正常播放所需的时间,完全满足实时播放的要求。 4 结束语 本系统以ARM9处理器为核心建立嵌入式多媒体系统,并在其上移植Mplayer播放器,扩展其功能,使mpeg-1、mpeg-2、avi等视频格式以及MP3、WMA等音频格式都能在其上流畅地播放,并实现了影音录制功能。在测试中各模块工作正常,达到了能全屏播放视频,流畅播放音频,能够将摄像头拍到的视频传送到Mplayer进行播放,能读取外接U盘或者SD卡中的多媒体文件进行播放,能从网络下载多媒体文件到扩展存储设备被Mplayer播放的设计要求。随着多媒体技术的广泛应用,掌上多功能媒体播放器会有更广阔的应用前景。 |
|
相关推荐 |
|
《DNESP32S3使用指南-IDF版_V1.6》第三十章 DHT11数字温湿度传感器
464 浏览 0 评论
643 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
942 浏览 0 评论
1028 浏览 2 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
724 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12043 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 05:39 , Processed in 0.621028 second(s), Total 39, Slave 32 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号