《电子技术应用》
您所在的位置:首页 > 可编程逻辑 > 设计应用 > 一种H.264/AVC快速分数运动估计算法*
一种H.264/AVC快速分数运动估计算法*
2014年微型机与应用第10期
马世银, 蒋 林
西安邮电大学 研究生院, 陕西 西安
摘要: H.264/AVC是ITU-T视频编码专家组和ISO/IEC运动图像专家组共同制定的视频编码标准[1]。在保证图像质量不变的情况下,H.264/AVC的压缩效率期望比之前视频编码标准高一倍,高数据压缩率必然要求H.264/AVC编码方式较之前标准更为复杂。在H.264/AVC中,帧间预测占用60%以上编码时间,是影响编码器整体性能最重要的一个组成部分[2]。为了缩短运动估计时间,研究人员提出了不同的快速算法,其出发点都是在视频质量下降不大的情况下大幅度缩短编码时间,本文依据该思想提出一种通过减少分割模式来缩短编码时间的快速分数运动估计算法。
Abstract:
Key words :

摘  要: 基于对快速分数运动估计算法和参考软件JM18.4中分数运动估计算法的研究,针对H.264/AVC提出了一种快速分数运动估计算法。实验结果表明,该算法能够有效减少H.264/AVC 编码器的计算复杂度,并能够保证峰值信噪比降低(<0.045 dB),视频质量下降微乎其微。

关键词: H.264/AVC; 快速算法; 分数运动估计

       H.264/AVC是ITU-T视频编码专家组和ISO/IEC运动图像专家组共同制定的视频编码标准[1]。在保证图像质量不变的情况下,H.264/AVC的压缩效率期望比之前视频编码标准高一倍,高数据压缩率必然要求H.264/AVC编码方式较之前标准更为复杂。在H.264/AVC中,帧间预测占用60%以上编码时间,是影响编码器整体性能最重要的一个组成部分[2]。为了缩短运动估计时间,研究人员提出了不同的快速算法,其出发点都是在视频质量下降不大的情况下大幅度缩短编码时间,本文依据该思想提出一种通过减少分割模式来缩短编码时间的快速分数运动估计算法。

       1 快速分数运动估计算法分析

       1.1 JM18.4参考软件分数运动估计

      H.264/AVC 采用块尺寸可变的运动估计,JM18.4中采用图1所示的7种模式来描述H.264/AVC中宏块的分割方式[3]。分数运动估计分为1/2像素运动估计和1/4像素运动估计两个阶段。1/2像素运动估计利用6抽头滤波器插值半像素点,然后在整数运动向量所指向区域内进一步细化整数运动向量,从而得到41个1/2像素运动向量;紧接着执行1/4像素运动估计,从而得到41个1/4像素运动向量。接下来就要确定宏块的最终分割模式,即模式选择。模式选择首先为每一个8×8子宏块找到最优的分割方式,然后为宏块找到最优的分割方式。

       1.2 基于减少模式的分数运动估计

       在分数运动估计阶段,为了找到41个宏块和子宏块的分数运动向量,分数运动估计本应该像整数运动估计一样要遍历宏块的7种模式,但为了降低分数运动估计的复杂度,本分数运动估计算法仅遍历其中部分模式。通过对JM18.4做大量的实验,发现单方面大幅度减少分割模式,视频的峰值性噪比会急剧下降。为了保证编码效率不会大幅度降低,可通过其他方法将最可能的模式限定在少数的模式之中,这样既能保证编码效率又能降低分数运动估计复杂度。

       1.3 基于模式相关的分数运动估计

     实验发现,不同帧中的宏块分割模式存在很大的差异,但是在同一帧中宏块分割模式的分布却呈现一定的局部性,即宏块的分割模式与其相邻宏块的分割模式有很大的关系,对于子宏块也呈现这种规律。表1给出了相邻宏块的分割全为16×16时,在不同测试序列中当前宏块编码模式为16×16以及编码模式为16×16、16×8或者8×16所占百分比。由表1可以看出,当前宏块编码模式为16×16的概率高达90%以上,当前宏块编码模式为16×16、16×8或者8×16的概率比16×16略高。

6XF3YHTI5797EMWPC55JQGF.jpg

      从以上分析中可看出,宏块的编码模式之间有很强的相关性,因此可以利用这种相关性来预测宏块的编码模式,利用这种方法可以将编码模式限定在为数不多的几个模式中,从而减少编码器的计算复杂度。

       2 快速分数运动估计算法描述

      通过以上分析可知,当前宏块和子宏块的最优分割模式与相邻宏块和子宏块的分割模式密切相关,基于此,本文提出了一种快速分数运动估计算法,利用该算法能够将待处理的7种模式减少到两种模式,从理论上应该可以减少 71%的计算量。该算法步骤具体如下。

       (1) 根据相邻宏块的分割模式预测当前宏块的分割模式;

       (2) 如果当前宏块的分割模式为8×8,则利用相邻子宏块的分割模式进一步确定当前子宏块的分割模式;

       (3) 考虑到宏块或者子宏块的分割模式并不总是与其相邻块的分割模式一致,因此可在整数运动估计结束后,根据残差代价和运动向量残差代价确定宏块和子宏块的另一种分割模式;

       (4) 优化整数运动向量,得到分数运动向量,并从这两种模式中找到一种最优的分割方式。

       2.1 当前宏块预测模式

     表2给出了当前宏块的预测模式,具体预测方法为:(1)相邻左边宏块的分割模式为16×16或者8×16,相邻右边宏块的分割模式16×16或者16×8,则当前宏块的预测模式为16×16;(2)相邻左边宏块的模式为16×8或者8×8,相邻右边宏块的分割模式16×16或者16×8,则当前宏块的预测模式为16×8; (3)相邻左边宏块的分割模式为16×16或者8×16,相邻右边宏块的分割模式为8×16或者8×8,则当前宏块的预测模式为8×16;(4)相邻左边宏块的分割模式为16×8或者8×8,相邻右边宏块的分割模式为8×16或者8×8,则当前宏块的预测模式为8×8。

KK87XIP2356GQ0L`I@Y[(UG.jpg

       2.2 当前子宏块预测模式

     表3给出了当前子宏块的预测模式。子宏块预测模式的预测方法与宏块预测模式的预测方法非常类似,只是其对应模式的高度和宽度仅为对应宏块的一半。

PQ(1%QJAL3{C`W02}T(94ZF.jpg

       3 实验结果及分析

      为了验证本文提出的快速分数运动估计算法,对JM18.4作了相应的修改并采用BUS和CREW两个测试序列来验证本算法,每个测试序列为100帧,宽高比为352×288,Y:U:V格式为4:2:0。测试环境为Pentium(R) Dual Core E5300 2.60 GHz CPU,2 GB内存的PC, Windows 7 Ultimate操作系统。实验结果如表4和图2所示。从表4可以看出,本文提出的优化算法可以在PSNR降低小于0.045 dB、比特率增加不超过2.0%的前提下,整体编码速率提高25%~31%。同时,从图2可以看出,利用该算法编码的视频PSNR基本上没有降低。

XWUUZ)V(D0_BK[7USS4M%}7.jpg

       本文为解决H.264/AVC分数运动估计运算量大的问题,根据其相邻分割和子分割模式之间相关性强的特点,提出了一种快速分数运动估计算法。该算法充分利用已编码宏块和子宏块的分割模式来预测当前宏块和子宏块的编码模式,使得宏块和子宏块的最终分割模式与全模式的宏块和子宏块的分割模式更为接近,从而保证了在图像质量基本不变的情况下大幅度降低编码器计算复杂度。

参考文献

[1] ITU-T. H.264, ITU-T rec advanced video coding for generic audio visual[S].2012.

[2] 凃成,余谅.运动估计UMHexagonS算法的研究与改进[J].微型机与应用, 2013,32(7):40-45.

[3] Song Hongtao, Gao Zhiyong, Zhang Xiaoyun. Novel fastmotion estimation and mode decision for H.264 real-timehigh-definition encoding[J]. IEEE Transations on Circuits Systems for Video Technology, 2012,22(13):43-48.

[4] 朱凯迪,陈一民,谭志鹏,等.H.264 运动估计算法研究[J].计算机工程,2011,37(19):286-28.

[5] 姜有田,李金良.一种适用于H.264的分数像素快速运动估计算法[J].计算机工程与设计, 2006,27(19):3682-3685.


此内容为AET网站原创,未经授权禁止转载。