基于时空域相关性快速运动估计的视频编码方法

文档序号:7765686阅读:191来源:国知局
专利名称:基于时空域相关性快速运动估计的视频编码方法
技术领域
本发明涉及计算机数字视频编码技术领域,针对的是视频编码系统,如高清电视(HDTV)、高清激光视盘(HD-DVD)和流媒体服务器等应用。
背景技术
对于目前的基于运动补偿的视频编码标准而言,块匹配运动估计(BMME,Block-matching motion estimation)是其的最重要组成部分之一。运动估计与补偿技术可以有效地去除视频序列相邻帧间存在的时间冗余,极大地提高视频编码的编码效率。
对视频编码而言,通常图像帧首先被分为大小相等的矩形块,例如对H.264而言,矩形块的大小是从16×16到4×4的七种模式,运动估计就是在前一个或几个重建参考帧中寻找与当前编码块最相似的矩形块的过程。全搜索(FS,Full search)算法是最直接的运动估计实现方法。FS算法通过对搜索窗内的所有点进行搜索,因而可以得到最优匹配,但是FS算法的计算量巨大,难以实时实现。一般而言,运动估计通常可以占到整个视频编码60%左右的计算量。
为了减少BMME的计算量,许多学者都研究了BMME的快速搜索算法。这些方法可以分为三类1)通过减少搜索点的快速算法。如二维对数法、三步法,新三步法、四步法、十字法、钻石法以及改进的钻石法等。2)快速块匹配误差计算方法。如子集匹配法和基于投影的方法。3)运动场下采样法。与后两种方法相比,第一类方法最为高效,是最常用的快速搜索算法,其中菱形算法(DS,Diamond search)是目前最为高效的运动估计方法。

发明内容
本发明的目的在于克服目前编码系统中运动估计部分计算量大、难以实时实现的不足,在保证不降低编码质量的前提下,有效地提高编码的实时性,设计了一种结合宏块在时间域和空间域上相关性的快速运动估计方法。其技术思路特征在于1.综合利用了在时间域和空间域上相邻宏块间运动的相关性,并根据其相关性的不同而采用了不同的模板策略,提高了运动估计的速度和精度;2.提出了一种适应不同运动相关性的搜索策略,即根据相邻宏块间运动相关性的不同而将相邻宏块的运动分为两种不同的状态,对于每种运动状态分别采用了不同的搜索起始点和搜索模板。
本发明的技术方案参见图3-图8。这种基于时空域相关性快速运动估计的视频编码方法,是由摄像机(1),将目标物状态转换成视频信号输入到采集卡(2)中;采集卡将视频信号转换成数字视频序列,并存放在视频缓存中,这些数字视频序列或是以视频序列文件形式存放在计算机硬盘中的视频数据,都被称为原始视频序列,作为该系统的输入用于压缩;计算机(3)存放原始视频序列和执行视频编码子程序,并生成压缩后的码流文件,本发明的特征在于计算机首先从采集卡的视频存储器或存放在计算机硬盘上的视频序列文件中读一帧视频数据到计算机的缓冲区中,通过执行视频编码子程序对该帧进行编码。
视频编码子程序采用了基于运动补偿/离散余弦变换(DCt,Discrete cosinetransform)的混合编码方法,除运动估计子程序这一部分外,采用了国际视频编码标准H.264 JM6.0的编码框架。
视频编码子程序在视频编码时,将一个输入的视频序列帧被分为16×16的宏块,编码过程是以宏块为单位进行的;计算机开始执行视频编码子程序后,首先对编码进行初始化,这些初始化工作主要包括对编码参数和缓冲区的设置。
然后计算机按照从上到下、从左到右的次序先对第一个宏块执行运动估计子程序;运动估计结束后对得到的运动矢量做差值编码,并对宏块像素进行预测得到该宏块残差图像;而对残差图像则首先进行DCT变换,然后对DCT系数进行量化和变长编码(VLC,Variable length coding)编码,最后进行解码、生成相应参考宏块;该宏块编码结束后,对当前编码帧的所有宏块循环执行上述编码过程,完成对一个视频序列帧的编码;一帧编码结束后循环编码下一帧,至到视频序列的最后一帧编码结束,并生成压缩后的码流文件,系统执行程序结束。
在上述的视频编码子程序中,运动估计子程序中所采用的快速搜索算法,综合利用了在时间域和空间域上相邻宏块间的运动相关性,并根据宏块间运动相关性的不同而采用了不同的搜索策略,有效地提高了运动估计的精度和速度,最终提高了系统编码的实时性。
其所述的运动估计子程序中的搜索算法如下(1)首先进行相邻宏块间运动相关性的判断;对于图1所示的宏块在时间域和空间域上的相邻关系,设Ei是当前帧i的编码宏块,Ai、Bi、Ci、Di、Gi、Hi分别为其左侧、上侧、右上侧、左上侧、右侧和下侧的相邻宏块,在前一帧(i-1)对应位置上的宏块分别表示为Ei-1、Ai-1、Bi-1、Ci-1、Di-1、Gi-1和Hi-l。
这里设B={C1C2C3C4C5}为Ei相邻宏块Ai、Bi、Ei-1、Gi-1和Hi-1的运动矢量组成的集合,如图2所示。
(a)如果对于任意i,i∈[1,5],都满足|Ci-C3|≤TH则Ei相邻宏块间的运动相关性为高。
(b)如果对于任意i,i∈[1,3)U(3,5],都满足|Ci-C3|>TH则Ei相邻宏块间的运动相关性为低。
其中TH为阈值。
(2)根据(1)的判断结果,当前编码宏块的运动估计算法如下根据时空域相邻宏块间的运动相关性的不同,分别采用了不同的搜索策略。其采用的两种搜索模板如图7和图8所示,其中图7为小菱形搜索模板(LDSP,Little diamond search pattern),图8为方菱形搜索模板(SDSP,Square diamondsearch pattern)。其搜索步骤如下步骤1根据(1)所描述的宏块运动相关性描述方法,如果宏块运动相关性为高,则以Ai、Bi、Ei-1运动矢量的中值作为搜索的起始点,跳转到步骤2,否则跳转到步骤3。
步骤2采用LDSP模板进行搜索,如果最小块差值点(BDM,Blockdifference minimum)位于LDSP模板的中心点a,则搜索结束,以该点的位移作为运动矢量;如果BDM位于LDSP的四个顶点b,则以该点为新的搜索起始点,循环执行步骤2进行搜索。
步骤3以当前块在前一帧对应位置的(0,0)、Ai、Bi、Ei-1、Gi-1和Hi-1为搜索起始点,如果BDM位于(0,0)点,且绝对差值和(SAD,Sum of absolutedifference)大于1024时,则跳转到步骤4进行搜索,否则,以该点为新的搜索起始点跳转到步骤2进行搜索。
步骤4采用SDSP模板进行搜索,如果BDM位于中心点c,则搜索结束,并以该点的位移作为运动矢量;如果BDM位于四个菱形顶点d,则以该点为新的搜索起始点,跳转到步骤2进行搜索;如果BDM位于四个方形顶点e,则以该顶点作为新的搜索起始点,循环执行步骤4进行搜索。
搜索结束后得到该宏块的运动矢量。
下面将结合附图对具体实施方式
进行详细说明。


图1是宏块在时间域和空间域上的相邻关系;图2是用于判断运动相关性的五个宏块的相邻关系;图3是视频编码系统框图;图4是视频编码系统主程序框图;图5是视频编码子程序框图;图6是运动估计子程序框图;图7是小菱形搜索模板(LDSP);其中标a的点为LDSP模板的中心点,标b的点为LDSP模板的菱形顶点;图8是方菱形搜索模板(SDSP);其中标c的点为SDSP模板的中心点,标d的点为SDSP模板的菱形顶点,标e的点SDSP模板的为方形顶点;
具体实施例方式本发明的视频编码方法的目的在于采用高效的运动估计算法,减少其计算量,在保持编码质量的前提下,利于编码系统的实时实现。在图3所示的视频编码系统框图中,摄像机和采集卡是市售的,用于将目标对象转换成计算机可以处理的数字视频序列。图中的视频序列文件表示该系统输入的也可以是通过其他设备获得的、并事先存放在计算机硬盘上的数字视频序列。这些数字视频序列就是原始视频序列,作为该系统的输入用于压缩。在计算机上执行视频编码子程序,对原始视频序进行压缩,压缩的结果是以生成码流文件的形式存放在计算机硬盘上。与输入的原始视频序列相比,生成的码流文件的数据量非常小,因而该系统达到了对视频数据压缩的目的。
图4所示是该系统执行程序的总体框图。在图4中,视频编码子程序采用了基于运动补偿/DCT的混合编码方法。除运动估计子程序这一部分外,本发明采用了国际视频编码标准H.264 JM6.0的基本编码框架,其程序流程如图4所示。应该指出,在视频编码时,一个输入的视频序列帧被分为16×16的宏块,编码过程是以宏块为单位进行的。计算机开始执行视频编码子程序后,首先对编码进行初始化,这些初始化工作包括对视频序列格式、帧率、量化参数、运动估计的搜索范围、参考帧的数目、各缓冲区以及输出码流文件名等的设置。然后计算机按照从上到下、从左到右的次序先将第一个宏块的数据读入缓冲区,对该宏块执行如图5所示的运动估计子程序,运动估计结束后对得到的运动矢量做差值编码,并对宏块像素进行预测得到该宏块残差图像;而对残差图像则首先进行DCT变换,然后对DCT系数进行量化和VLC编码,之后输出该宏块的压缩码流并存放在缓冲区中。为了下一帧编码的需要,最后进行解码、生成相应参考宏块,存放在计算机内存中。该宏块编码结束后,对当前编码帧的所有宏块循环执行上述编码过程,完成对一个视频序列帧的编码。
对于图5所示的视频编码子程序,其中的运动估计子程序部分其程序框图如图6所示,该估计估计方法是本发明的核心,与目前其他的快速运动估计方法不同。该运动估计方法综合利用了时间和空间域上的相关性,并根据相邻宏块间运动相关程度的不同而采用了不同的搜索策略。其具体执行过程如下所述。在图5所示的初始过程中,设置两个长度都为L=W×H8]]>的缓冲区,其中W为图像帧的宽度,H图像帧的高度,用于存放前一帧和当前帧所有4×4子块的运动矢量。
在计算机进入图6的运动估计子程序后,首先对当前编码宏块Ei进行相邻宏块间运动相关性的判断,执行的算法程序如前所述。在执行完Ei相邻宏块间运动相关性的判断之后,根据这一判断结果,开始执行相应的搜索算法程序,搜索过程也如前所述,最后得到该宏块的运动矢量。
为了验证本发明的实际效率,进行了如下的对比实验。对相同的视频序列,这里以foreman(176×144,100帧,15fps)序列为例,在本发明的编码系统上执行(1)采用本发明运动估计算法的编码程序;(2)采用FS算法的编码程序;(3)采用DS算法的编码程序。其中FS的搜索精度最优,但计算量最大;DS算法是目前最优的快速运动估计方法。表2是本发明与这两种运动估计算法编码结果的比较。编码参数都按如表1所示的编码配置文件设置,量化参数QP都分别取20,28,34和40四个值进行实验。依据大量实验测试结果,在相邻宏块间运动相关性的判断时,阈值TH选取8为最优。
表1是编码系统的配置文件。配置文件用于设置系统的编码参数,其中主要包括运动估计的精度为1/4像素,搜索范围为±32像素;参考帧的数目为2帧;熵编码采用上下文自适应的变长编码(CAVLC);禁止块大小自适应变换(ABT);必须执行哈达玛(Hadamard)变换和率失真(R-D)优化;图像组的结构是第一帧为I帧,以后都为P帧;表2中峰值信噪比(PSNR,Peak signal noise ratio)表示重建视频图像的峰值信噪比。其中搜索点数是指每个宏块的平均搜索点数。第一列为全搜索算法的实验结果,第二列为菱形搜索算法的实验结果,第三列为本发明运动估计算法的实验结果。可以看出,与DS算法相比,本文方法明显地减少计算量,同时又在不同程度上提高编码质量。对于测试序列,本发明方法的搜索速度,比FS算法平均提高了74.17%,比DS算法平均提高了24.91%;PSNR平均比DS算法提高了0.04db,更接近FS算法的编码质量。
表1是编码系统的配置文件

表2是编码结果示例

权利要求
1.基于时空域相关性运动估计的视频编码方法,是由摄像机(1),将目标物状态转换成视频信号置于采集卡(2)中;采集卡将视频信号转换成数字视频序列,并存放在视频缓存中,这些数字视频序列或是以视频序列文件形式存放在计算机硬盘中的视频数据,作为该系统的输入用于压缩;计算机(3)存放原始视频序列和执行视频编码程序,并生成压缩后的码流文件,本发明的特征在于计算机首先从采集卡的视频存储器或存放在计算机硬盘上的视频序列文件中读一帧视频数据到计算机的缓冲区中,通过执行视频编码子程序对该帧进行编码;视频编码子程序在视频编码时,一个输入的视频序列帧被分为16×16的宏块,编码过程是以宏块为单位进行的;计算机开始执行视频编码子程序后,首先对编码进行初始化;然后计算机按照从上到下、从左到右的次序先对第一个宏块执行运动估计子程序;运动估计结束后对得到的运动矢量做差值编码,并对宏块像素进行预测得到该宏块残差图像;而对残差图像则首先进行离散余弦变换(DCT),然后对变换系数进行量化和变长编码(VLC)编码,之后输出该宏块的压缩码流放入计算机的缓冲区中;最后进行解码、生成相应参考宏块;该宏块编码结束后,对当前编码帧的所有宏块循环执行上述编码过程,完成对一个视频序列帧的编码;一帧编码结束后循环编码下一帧,至到视频序列的最后一帧编码结束,并生成压缩后的码流文件,系统执行程序结束。
2.根据权利要求1所述的基于时空域相关性运动估计的视频编码方法,其特征在于所述的运动估计子程序中所采用的综合利用在时间域和空间域上相邻宏块的相关性,并根据其相关性的不同采用不同搜索策略的运动估计方法步骤如下(1)首先进行相邻宏块间运动相关性的判断;对当前任一编码宏块,其相邻宏块间运动相关性的描述方法为设Ei是当前帧i的编码宏块,Ai、Bi、Ci、Di、Gi、Hi分别为其左侧、上侧、右上侧、左上侧、右侧和下侧的相邻宏块,在前一帧(i-1)对应位置上的宏块分别表示为Ei-l、Ai-1、Bi-1、Ci-1、Di-1、Gi-1和Hi-1;这里设B={C1C2C3C4C5}为Ei相邻宏块Ai、Bi、Ei-1、Gi-1和Hi-1的运动矢量组成的集合;(a)如果对于任意i,i∈[1,5],都满足|Ci-C3|≤TH则Ei相邻宏块间的运动相关性为高;(b)如果对于任意i,i∈[1,3)U(3,5],都满足|Ci-C3|>TH则Ei相邻宏块间的运动相关性为低;这里设B={C1C2C3C4C5}为Ei相邻宏块Ai、Bi、Ei-1、Gi-1和Hi-1的运动矢量组成的集合;(2)根据(1)的判断结果,当前编码宏块的运动估计算法如下根据时空域相邻宏块间的运动相关性的不同,分别采用了不同的搜索策略,其搜索步骤如下步骤1根据(1)所描述的宏块运动相关性描述方法,如果宏块运动相关性为高,则以Ai、Bi、Ei-1运动矢量的中值作为搜索的起始点,跳转到步骤2,否则跳转到步骤3;步骤2采用小菱形搜索模板(LDSP)进行搜索,如果最小块差值点(BDM)位于LDSP模板的中心点a,则搜索结束,则搜索结束,以该点的位移作为运动矢量;如果BDM位于LDSP的四个顶点b,则以该点为新的搜索起始点,循环执行步骤2进行搜索;步骤3以当前块在前一帧对应位置的(0,0)、Ai、Bi、Ei-1、Gi-1和Hi-1为搜索起始点,如果BDM位于(0,0)点,且绝对差值和(SAD)大于1024时,则跳转到步骤4进行搜索,否则,以该点为新的搜索起始点跳转到步骤2进行搜索;步骤4采用方菱形搜索模板(SDSP)进行搜索,如果BDM位于中心点c,则搜索结束,并以该点的位移作为运动矢量;如果BDM位于四个菱形顶点d,则以该点为新的搜索起始点,跳转到步骤2进行搜索;如果BDM位于四个方形顶点e,则以该顶点作为新的搜索起始点,循环执行步骤4进行搜索;整个搜索过程结束后得到该宏块的运动矢量。
3.根据权利要求1所述的基于时空域相关性运动估计的视频编码方法,其特征在于所述的视频编码子程序,采用了基于运动补偿/离散余弦变换(DCT)的混合编码方法;除运动估计子程序这一部分外,本发明采用了国际视频编码标准H.264 JM6.0的基本编码框架。
全文摘要
基于时空域相关性运动估计的视频编码方法,属于计算机数字视频编码技术领域。本发明特征为提出一种利用在时间域和空间域上相邻宏块间运动相关性的运动估计方法。方法步骤依次为摄像机将目标物状态转换成视频信号,视频信号通过采集卡转换成数字视频序列,并存放在视频缓存中,作为系统输入用于压缩;计算机进入完成对原始视频帧进行基于运动补偿/DCT的混合编码子程序,进行视频压缩并生成码流文件。本发明重点在于运动估计子程序,其方法主要为首先进行相邻宏块间运动相关性的判断,根据相关性不同而采用了不同的搜索策略,提高了运动估计的精度和速度。该系统有效地降低了运动估计的计算量,提高了视频的实时性,同时也保证了视频的编码质量。
文档编号H04N5/917GK1482802SQ0315357
公开日2004年3月17日 申请日期2003年8月18日 优先权日2003年8月18日
发明者薛金柱, 沈兰荪 申请人:北京工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1