论文部分内容阅读
流媒体技术采用流式传输的方法,以边下载边播放的技术特点使人们在更短的时间内获取更多的多媒体信息。随着多媒体数据压缩技术以及嵌入式技术的不断发展,利用便携式设备实现视频会议、视频点播等业务成了学术界以及工业界的热点领域,本文旨在基于ARM920T平台实现流媒体播放器。
系统采用开源的流媒体协议栈和音视频解码库,通过软件解码的方式完成了音视频解码,并达到了音视频同步流畅播放的标准,解决了硬件解码成本高的问题。播放器的软件设计采用模块化方式,实现了拥有良好图形用户界面的流媒体播放器。文章重点介绍了对视音频解码库的算法级优化及播放器软件设计,主要分为以下三部分:
首先,本文在完成了流媒体传输技术和音视频压缩标准的介绍后,给出流媒体播放系统的网络结构和系统框架。在S3C2440芯片的ARM处理器开发板上,基于嵌入式Linux操作系统,采用开源的流媒体协议栈Livemedia库、MPEG-4视频解码库Xvid、MP3音频解码库libmad、Qt图形用户界面完成系统开发。接着完成了Linux内核的配置和移植,建立了根文件系统。
其次,本文介绍了音视频解码器的优化工作,优化方法分为算法级和平台级。通过优化,对于Xvid视频解码器,针对解码器最耗费资源的IDCT部分,采用了比解码器初始采用的Chen-Wang算法运算量更少的AAN算法。在标准AAN算法基础上,利用MPEG-4文件中,IDCT系数矩阵0系数占用比例大且非0系数分布规律的特性,通过提前记录系数位置信息然后提取信息、查表取值对AAN算法作出改进,最终使其解码耗时减少20%以上。对于libmad音频解码器,本文针对其合成滤波部分的运算,采用了指令周期的更少的乘加指令,使运算周期大大减少。本文还简要介绍了音视频解码的平台级优化。最后测试结果显示,针对不同序列,视频解码帧率提高了440/%~60%,对于三种音质的MP3编码,解码需要的时钟频率减少了30%以上。
最后,文章对播放器进行软件设计和实现。本文采用模块化软件设计思想,通过RTP/RTCP、RTSP通信模块、音视频解码模块、总控制模块和图形交互模块完整了整个播放器的设计。其间主要介绍了数据的传输、VCR功能的实现、音视频同步等功能的实现。测试表明,对音质要求不高的情况下,本系统能流畅的实现音视频同步的流媒体播放。