基于MP2530F平台的媒体播放器
时间:08-22
来源:单片机与嵌入式系统
点击:
由于硬件的关系,在进入解码器前,系统需要ARM946E先打开MPEG视频处理器并进行初始化,做好解码MPEG4视频流的准备。所以,我们在Mplayer使用分离器解析出AVI视频媒体文件的音视频流后,调用了ARM946E进行准备工作。
当主程序进入图3(b)所示的解码流程,每读取一帧需要解码的图像后,使用先前打开的视频处理器解码媒体流数据,并把解码完的帧数据返回到帧数据缓冲区(在初始化时分配好的缓冲区空间),等待主程序调用输出到frame buffer播放图像。
当主程序播放图像后,每播完一帧后会判断该帧是否为文件的结尾。如果不是,则转回解码器读取下一帧图像继续解码;如果是,就关闭输出设备,关闭解码器,结束播放。结果成功实现硬件解码器的开发。
3 软解码和硬解码比较
通过测试,经过优化开发的硬件解码器最高可以支持视频:WVGA格式,帧速为30 fps,码流为4 Mbps;D1格式,帧速为30 fps,码流为6 Mbps。
软硬解码比较如表1所列。
比较软解码(ffmpeg解码器)和硬解码的性能如下:
①调用软解码解码高清视频时,由于未能合理分配使用内存空间,且过分依赖主核心解码图像数据,不仅过分占用系统资源(主CPU和内存),而且播放的效果也不理想,视频播放严重缓慢,极不流畅。
②调用硬解码器时,使用从处理器调用视频处理器实现硬件解码,并分配指定内存区域存储媒体流数据,极大降低了CPU和内存的占用率,同时视频播放流畅、清晰,效果理想。
结 语
本文介绍了MP2530F平台的基本架构,分析了双核处理器的调用流程,在MP2530F开发平台上移植了Mplayer播放器,并在此基础上开发基于该平台的硬件解码器,成功实现了解码AVI高清视频及播放,体现了一个多媒体芯片的重要功能。
- 解决DRM 部署所面临的障碍(05-07)
- 通过正确选择处理器开始多媒体PMP的需求之旅(05-17)
- 基于MiniGUI的嵌入式媒体播放器的设计与实现(06-26)
- 基于ARM Linux QT掌上多媒体系统的设计和实现(11-22)
- UPnP媒体播放器的研究与实现(11-20)
- 基于Symbian平台的流媒体播放器设计与实现(07-01)