论文部分内容阅读
近年来,数字视频应用产品正迅速渗透到人们日常生活中的各个领域,给人们的生产和生活带来了巨大的影响。另一方面,视频应用的不断拓展,对视频压缩标准提出了更高的要求。H.264作为最新的视频压缩标准,无论在编码效率、质量还是网络接入性能上都取得了巨大的提高。但是其性能的提高是以运算复杂度为代价的,相对于其它标准而言,编码复杂度增加了一个数量级,解码复杂度则增加了3倍左右。所以,要使H.264/AVC能够在实际系统中得到应用,必须研究快速算法。
本文在分析H.264/AVC各个模块和算法复杂性的基础上,分别在代码级和算法级对编解码器进行了优化。
就解码器而言,本文主要从运动补偿、帧内预测、程序流程和数据结构等几个方面进行优化。运动补偿包括亮度块运动补偿和色度块运动补偿两个部分。亮度块运动补偿优化算法先采用边缘象素预处理法解决了边界问题,然后重新组合半象素插值公式,使用查表法代替插值时使用的乘法,达到优化的目的;色度块运动补偿主要采用象素分类法、并行处理及边缘象素预处理等方法进行优化。对于帧内预测,根据当前块的位置以及宏块内部的扫描顺序预先判断预测中的参考点信息,避免了繁多的参考点信息求取过程。本文还优化了程序的解码流程:对不同类型的宏块使用不同的函数解码,以此减少判断跳转时间;并且修改了数据结构,改成更适合使用系统函数memset()和memcpy()的存储结构,把宏块级初始化改成帧级初始化,等等。实验结果表明,经过本文的优化,已经能够实现Linux平台SD格式视频序列的实时解码。
就编码器而言,除了在数据结构和程序流程上的优化之外,主要对帧内模式选择、帧间模式选择以及运动估计等耗时模块进行了优化。对于帧内模式选择来说,我们以JVT-G013的边缘方向柱状图算法为基础提出了改进算法。由于柱状图算法预选出来的模式很有可能不包含最佳模式,所以本文把SAD最小的三个模式也作为候选模式,以此提高编码性能;将帧内色度模式选择和帧内亮度模式选择分离,并且优先检测最有可能模式,提高了编码速度。实验结果表明,改进算法从编码速度和压缩性能上都要优于柱状图算法。对于帧间模式选择来说,先把所有模式分为大模式和小模式,大模式又被细分成三类,每一类中包含的预选模式数不同,然后利用相邻块的模式信息,产生一个判决变量,根据判决变量的大小决定选择大模式还是小模式,若为大模式,则为何种大模式。对于大模式的情况,本文加入了全零系数预判决算法,用以提前终止满足全零门限的预测模式。针对P帧也做帧内模式选择的情况,提出了帧内/帧间模式选择算法,对那些不满足条件的宏块跳过帧内模式选择过程。对于运动估计的整象素算法,我们采用了已有的算法。实验结果表明,本文的综合优化算法在不明显影响编码性能的条件下(PSNR下降低于0.11db,比特率上升低于3%),可以使编码时间减少96%(编码速度为25倍)以上。