论文部分内容阅读
本文主要研究了ffmpeg(Fast Forward Moving Picture Experts Group)音视频解码库源代码中的RV40视频解码器在MIPS嵌入式硬件平台下的应用。视频编码技术在信息时代的今天,在很多方面都有着很重要的应用。而RV40作为众多编码类型中的一种,其应用较其他类型更为广泛。但RV40的开发商RealNetworks公司在相当长时间内并不公开RV40的编/解码器源码,这限制了这种视频编码的技术进步。在2008年初,ffmpeg工程组在其最新版本源码中加入了RV40解码器的源代码。从此使得对该种编码的研究成为可能。
研究工作从最初ffmpeg解码库中单独分离出RV40解码库开始,以便研究能够更加明了的进行并使代码的阅读以及解析变得更加容易,并且在VC环境下经过最初的调试以及反复的修改以纠正存在的问题,使得解码器能够在VC环境下正常解出视频帧。随后在分离出来的解码器的基础上在MIPS平台下通过移植使得解码器能够通过MIPS gcc编译器的编译过程并能够正常运行,并且使运行结果和VC下完全一致。
经过以上工作后,解码器可以正常运行于MIPS平台之上。但距离D1级别的视频实时解码还有很大距离,需要进行大量的优化工作。优化最先以无损优化的原则进行,主要集中在C语言代码本身的运行效率优化上。然后在无损优化仍未使解码器性能达到要求的情况下患开始使用有损优化方案。重点在于去块效应滤波算法以及视频帧重建过程中帧间参考的优化,主要是使用快速算法。考虑到使用快速算法对P帧参考带来的画质损失,在优化后期引入了一种基于时域以及视频质量的优化算法框架,在最小损失画质的基础上降低了解码器对平台带来的压力。而且该框架极大的减轻了编译后的代码量,使得运行速度有了可观的额外提升。
经过以上的优化过程,解码器能够实时解出D1级别,即720×576分辨率,帧率25帧/秒的视频流,平均每帧解码时间小于40ms。该研究过程的实际意义在于,当解码器所在的平台无法使用对性能提升显著的优化指令以及改写汇编效率也无法得到提升的时候,可以使用与本文相类似的方法。该方法并不限于何种编码或者平台,是一种泛用性较强的优化方式。
对RV40解码器在MIPS平台上的研究,在当今RV40编码被广泛用于实际生活中的情况下,具有很强的实际意义以及潜在的经济效益。