论文部分内容阅读
联合视频工作组JVT(JointVideoTeam)于2003年正式提出了新一代视频压缩标准H.264/AVC。H.264/AVC标准支持从低带宽、高误码率的无线移动视频通信到高带宽、低误码率的有线视频广播等多种应用,因此,日益受到业界的关注。为了实现更高的编码效率,H.264/AVC标准采用了很多新的编码技术,如多参考帧预测、多尺寸编码块模式、1/4像素精度运动矢量、整数变换量化、基于内容的熵编码、新型帧内预测、去除方块效应的滤波器等。在解码还原的图像质量相同的情况下,H.264/AVC比MPEG-2和H.263的编码性能至少提高一倍以上。
更高的视频压缩比,使得H.264/AVC编解码器的计算复杂度成几倍甚至十几倍的增长,需要消耗大量的时间和系统资源,同时,H.264针对网络流媒体的应用采用了分层结构、参数集等技术增加了网络适应性,提高H.264网络传输的效率和纠错能力。为实现H.264网络视频的实时播放,需要解决的问题包括:①H.264编码数据的传输、解析;②寻找高效的优化算法,减少解码器巨大的计算复杂度。本文针对项目中使用的基于x86架构的纯软件解码的IP机顶盒平台,从H.264网络媒体实时播放的角度,对支持H.264的流媒体协议栈和H.264解码器优化这两个方面进行了研究、应用。
首先,本文针对H.264/AVC网络适应性的各方面技术进行了深入的分析,提出了一套支持H.264编码流传输、解析,具有可扩展框架的流媒体协议栈解决方案,其中着重介绍了H.264的分层结构、参数集、组帧模式等技术特点和实现方法,同时还介绍了流媒体协议栈具有可扩展功能的整体架构和各模块的接口设计。
其次,本文讨论了基于x86架构IP机顶盒的H.264解码器的纯软件优化问题,在参考相关资料的前提下,从算法角度实现了一种运动补偿的优化算法,以及一种基于分组的可变长快速CAVLC熵解码算法。同时还从代码实现上给出了程序优化的一些方法,包括指令集的优化和程序结构上的优化等。对于优化后的解码器,重新设计了它的外部接口函数,并将此H.264解码器模块链接进机顶盒播放器的解码器管理模块中,从而达到扩展原有解码器功能的目的。之后我们对优化前后的H.264解码器进行了性能测试,结果显示,解码速度明显提高,实现了在目标平台上CIF图像的实时解码。
最后,把协议栈和解码器整合进播放器,并用此播放器进行了功能测试和性能测试,对H.264和MPEG-4影片的播放效果进行了直观比较,并测试了这两种编码标准在恶劣网络环境下进行网络播放的播放性能。结果表明,IP机顶盒平台上的播放器实现了对H.264网络数据流的实时播放,同时,由于引入了H.264标准,IP机顶盒的网络播放性能得到了提高,达到了设计目标。