一种适用于h.264视频编解码的整像素运动估计方法

文档序号:7998485阅读:351来源:国知局
一种适用于h.264视频编解码的整像素运动估计方法
【专利摘要】本发明公开了一种适用于H.264视频编解码的整像素运动估计方法,其算法的步骤包括:a.对参考帧进行边界填充;b.进行场景检测;c.并行的绝对误差和计算;d.求候选运动矢量;e.求预测运动矢量;f.求最佳预测运动矢量;g.求最佳匹配块。本发明提出的运动估计算法可提高运动搜索的准确度,降低视频编码时残差块的数据量,有效提高H.264视频编码的质量。
【专利说明】一种适用于Η. 264视频编解码的整像素运动估计方法

【技术领域】
[0001] 本发明属于视频编解码【技术领域】,尤其涉及一种适用于Η. 264视频编解码的整像 素运动估计方法。

【背景技术】
[0002] Η. 264较之前的视频编解码标准MPEG1/2/4、Η. 261、Η. 263相比,具有更高的数据 压缩比率、更好的网络适应性。在同等图像质量的条件下,Η. 264的压缩比是MPEG-2的2倍 以上,是MPEG-4的1. 5?2倍。Η. 264性能的改善是许多技术改进的结果。Η. 264在沿用 之前的整体编解码框架结构的基础上采用了许多新的技术,例如:多宏块分割方式、多帧预 测、亚像素精度运动估计。
[0003] 基于块匹配的运动估计是视频编码标准里最重要的部分,准确而高效的块匹配运 动估计算法,将大大减少食品序列的时间相关性以及冗余,从而带来高的压缩比。所谓运 动估计就是在进行帧间预测时,为确定当前帧中待编码宏块在参考帧中的位置所进行的搜 索过程。在基于块的运动估计中,前一帧将对分为一些像素方块,就是所说的宏块和块的概 念,运动估计的目的就是根据预定义的偏差标准,在参考帧中找到当前宏块的最佳匹配块。 在运动估计结束之后,对于当前块,只要将当前块和匹配块的残差块以及运动信息即运动 矢量编码即可,从而减少了编码所需的数据量。尤其对于运动量不大的图像,前后图像的区 别不大,用运动估计可以有效的提高压缩比。因此,提供一个更加精确的运动估计算法,在 视频编码中显得相当重要。


【发明内容】

[0004] 本发明所要解决的技术问题是提供一种提高了运动估计的匹配准确度,降低了残 差块的编码数据量,提高了 Η. 264视频编码的质量的整像素运动估计算法。
[0005] 本发明解决其技术问题所采用的技术方案是:一种适用于Η. 264视频编解码的整 像素运动估计方法,包括本发明的方法通过以下具体步骤实现:
[0006] 一、找到最佳初始预测点:
[0007] 现有的运动估计算法,容易陷入局部最小点,由于物体在运动时表现出的完整性, 使时域和空域相邻块具有相关性,我们可以利用时域和空域相邻块运动矢量的相关性,找 到距离最佳匹配点最近的初始预测点,寻找初始预测点的方法如下:
[0008] 1、对参考帧进行边界填充:
[0009] 进行帧间运动估计之前,先进行参考帧的边界填充。使参考帧满足16*16倍数的 大小。
[0010] 2、场景检测:
[0011] 场景检测即为确定当前帧是否是一个新的图片,场景检测可用来确定当前帧运动 矢量预测类型,设置当前帧运动矢量预测类型为变量type_pred。若场景检测出此帧为新的 图片,则将此帧设为I帧,此帧的宏块在进行运动矢量预测时只进行帧内预测,不进行帧间 预测。若帧率小于5,或者当前场景太接近前一个I帧,则不进行场景检测,不进行场景检测 时当前巾贞运动矢量预测类型为2,即type_pred = 2。
[0012] 3、并行计算绝对误差和SAD :
[0013] 在用块匹配法进行运动估计时,衡量在参考帧中搜索到的匹配点是否是最优匹配 点,用到的匹配准则较多为SAD(sum of absolute differences),如下所示:
[0014]

【权利要求】
1. 一种适用于Η. 264视频编解码的整像素运动估计方法,其特征在于,包括如下步骤: a. 边界填充:对解码后的参考帧进行边界像素值上下左右的边界填充,获得具有边界 和有效边界的参考帧,使参考帧满足16*16倍数的大小; b. 场景检测:确定当前帧是否为全新图片以及确定当前帧运动矢量预测类型,设置当 前帧运动矢量预测类型为变量type_pred,若场景检测出此帧为全新图片,则将此帧设为I 帧,若场景检测出此帧的帧率小于5或当前场景接近前一个I帧,则不进行场景检测,不进 行场景检测时当前帧运动矢量预测类型为2,即type_p red = 2 ; c. 并行计算绝对误差和SAD :每次对16*16的宏块进行运动估计,并采用SMD技术 进行计算,即通过移位、与、或操作,每次并行计算多个像素,若ref为指向参考帧对应像素 的指针,贝1J判断式子(uint32)ref&0x3是否等于零,若(uint32)ref&0x3等于零,说明ref 所指向的数据是字对齐的,若(uint32)ref&0x3不等于零,贝U先对指针ref左移(uint32) ref&0x3位后再进行操作; d. 求宏块候选运动矢量:对当前宏块预测类型的时空预测和空间预测; e. 求宏块的预测运动矢量:判断当前帧中或参考帧中的当前宏块是否满足存在左邻 居宏块A (运动矢量为pmvA_X),同时不存在上部B (运动矢量为pmvB_X)和右上部邻居宏块 C(运动矢量为pmvC_X)的条件,满足则当前宏块的预测运动矢量为当前宏块左邻居宏块的 运动矢量,即cmvx = pmvA_x,cmvy = pmvA_y ;不满足则当前宏块的预测运动矢量为cmvx =MEDIAN(pmvA_x, pmvB_x, pmvC_x), cmvy = MEDIAN(pmvA_y, pmvB_y, pmvC_y); f. 求宏块的最佳预测运动矢量:由候选运动矢量分别确定待编码宏块在参考帧中对 应的参考宏块位置,通过步骤c,计算当前宏块和参考宏块的SAD以及候选运动矢量与预测 运动矢量的差值MV_COST,选择SAD+MV_COST最小的运动矢量,为最佳运动矢量,此时可得 到参考宏块的位置,记为(imin, jmin); g. 查找最佳匹配块:从最佳初始预测点开始进行一次小菱形搜索,计算SAD的值,若 SAD值小于1,说明运动物体较大,直接进行六角形搜索;若SAD值小于2,说明运动物体较 小,继续小菱形搜索,当代价函数最小值位于搜索中心点时,停止搜索。
2. 根据权利要求1所述的一种适用于H. 264视频编解码的整像素运动估计方法,其特 征在于,所述d.求宏块候选运动矢量具体步骤为: A、 若当前宏块预测类型为时空预测且precLtpye等于0,则候选运动矢量分别为: a) 参考帧中与当前宏块坐标相同的宏块的运动矢量, b) 参考帧中与当前宏块坐标相同的宏块左邻居或右邻居的运动矢量, c) 参考帧中与当前宏块坐标相同的宏块顶部或底部邻居的运动矢量, d) 参考帧中与当前宏块坐标相同的宏块左上部宏块的运动矢量, e) 参考帧中与当前宏块坐标相同的宏块右上部宏块的运动矢量; B、 若当前宏块预测类型为时空预测且precLtpye等于1,则候选运动矢量分别为: a) 参考帧中与当前宏块坐标相同的宏块的运动矢量, b) 当前帧中当前宏块左邻居宏块的运动矢量, c) 当前帧中当前宏块上部宏块的运动矢量, d) 参考帧中当前宏块右边宏块的运动矢量, e) 参考帧中当前宏块下部宏块的运动矢量; C、 若当前宏块预测类型仅为空间预测且precLtpye等于0,则候选运动矢量分别为: a) 当前帧中当前宏块左边宏块的运动矢量, b) 当前帧中当前宏块左上部宏块运动矢量, c) 当前帧中当前宏块右上部宏块运动矢量; D、 若当前宏块预测类型仅为空间预测且precLtpye等于1,则候选运动矢量分别为: a) 当前帧中此宏块左部宏块的运动矢量, b) 当前帧中此宏块上部宏块的运动矢量, c) 当前帧中此宏块右部宏块的运动矢量, d) 当前帧中此宏块下部宏块的运动矢量。
【文档编号】H04N19/56GK104113756SQ201310138420
【公开日】2014年10月22日 申请日期:2013年4月22日 优先权日:2013年4月22日
【发明者】王飞跃, 孔庆杰 申请人:苏州派瑞雷尔智能科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1