CN102075757B - 通过边界检测作为运动估计参考的视频前景对象编码方法 - Google Patents
通过边界检测作为运动估计参考的视频前景对象编码方法 Download PDFInfo
- Publication number
- CN102075757B CN102075757B CN 201110035531 CN201110035531A CN102075757B CN 102075757 B CN102075757 B CN 102075757B CN 201110035531 CN201110035531 CN 201110035531 CN 201110035531 A CN201110035531 A CN 201110035531A CN 102075757 B CN102075757 B CN 102075757B
- Authority
- CN
- China
- Prior art keywords
- col
- row
- macro block
- search
- mbd
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
通过边界检测作为运动估计参考的视频前景对象编码方法,属于视频编码技术领域,包含以下步骤:(1)将连续采集的视频分成参考帧和预测帧,并将参考帧和预测帧分成若干固定大小的宏块;(2)对参考帧和预测帧分别进行前景提取;(3)对于参考帧,采用静态图像压缩算法,并编码视频的轮廓信息;(4)对于预测帧,通过边界检测确定搜索起点,从搜索起点进行预搜索并适时停止搜索得到相应宏块的运动向量,对视频的轮廓信息和运动向量及残差进行编码。本发明在对视频各个图像帧进行前景提取的基础上,实时地进行视频压缩,能有效的减少图像帧需要编码的内容,加快编码速度,并且提高压缩比,减少了搜索次数,有效提高了编码效率。
Description
技术领域
本发明属于视频编码技术领域,更具体的讲,涉及一种通过边界检测作为运动估计参考的视频前景对象编码方法。
背景技术
视频压缩是视频图像实时处理技术的关键问题,在网络传输时该问题更为突出。用户通过图像设备采集本地视频,由于视频数据量大,经过数字化处理后其数据量是非常大的,如果不进行视频压缩处理,计算机***就无法对它进行存储和传输。视频编码的实现方法中,为了获得较高的压缩比,采用运动估计的方法实现视频的压缩,然而运动估计过程通常会耗费大量时间,影响***的实时性。
运动估计的方法是将视频分为参考帧和预测帧,并将参考帧和预测帧分成若干固定大小的宏块,根据不同的搜索算法和匹配原则在参考帧内搜索与预测帧中待编码宏块最相似的匹配块。它可以消除视频的帧间冗余,进一步提高压缩比。目前的运动估计算法主要有以下几种:全搜索算法(Full Search,FS)精度最高,它把待编码宏块和参考帧待搜索范围内的宏块进行逐一比对得到最优的结果。但是,全搜索算法的时间复杂度高。因此,在此基础之上又提出了许多改进算法,如三步搜索(Three Step Search,TSS)算法,十字搜索(Cross Search,CS)算法、四步搜索(Four Step Search,FSS)算法,以及1999年10月被列入MPEG-4验证模型(Verification Model)的菱形搜索(DiamondSearch,DS)算法,还有六边形搜索(Hexagon Search,HS)算法等,其中HS算法分为两类LHSP(Large Hexagon-based Search Pattern,大六边形模式)和SHSP(SmallHexagon-based Search Pattern,小六边形模式)。TSS算法和CS算法第一步搜索步长较大,而进一步的搜索是在第一步确定的方向上进行的,因而很容易陷入局部最优。FSS算法、DS算法和HS算法利用视频序列运动矢量在空间分布上的中心偏置特性,减小了搜索步长,加强了对中心区域的搜索。HS算法能比DS算法用更少的搜索点找到一个相同的运动矢量。但是,这些算法对图像帧所有的像素都进行了编码,没有考虑到编码实时性和网络传输的带宽,导致压缩比和编码效率较低。
本发明前,中国发明专利“视频编码器的运动估计方法及***”,申请号为01806741.7,公开号为CN1418437,该专利公开了一种用于视频编码器运动估计方法和***。该方法主要是针对普通视频采用一个层次系列的具有各不相同的复杂性的运动估计器,但没有考虑用户兴趣区域,没有对图像帧进行前景提取,从而编码了多余的数据信息,降低了编码效率。中国发明专利“视频运动估计方法”,申请号03115133.7,公开号为CN1444406,该发明公开了一种利用基于搜索模式的运动矢量场的时空相关性来进行运动估计的方法。该方法采用一种更新机制来确定一组候选矢量,再从中选取最优值,在块匹配搜索过程中平等的对待所有宏块,并没有考虑图像边界等信息,从而不能有效地对经过前景提取的视频进行运动估计。
发明内容
本发明的技术解决问题:克服现有技术的不足,提供一种通过边界检测作为运动估计参考的视频前景对象编码方法,在保证视频编码实时性的同时,减少需要在网络上传输的数据量。所述方法具有高的压缩比,并且能满足实时性的要求。
为了取得上述技术效果,本发明采取的技术方案是:对所采集视频的图像帧进行前景提取,对于参考帧采用静态图像编码算法进行压缩,对于预测帧通过边界检测作为运动估计参考计算边界宏块和前景宏块的运动向量,最后对轮廓信息和运动向量及残差进行编码。
具体实现步骤如下:
(1)将连续采集的视频分成参考帧和预测帧,并将参考帧和预测帧分成若干固定大小的宏块;
(2)对参考帧和预测帧分别进行前景提取,并分为背景宏块(一帧图像中背景宏块集合为Φback)、边界宏块(Φbound)和前景宏块(Φfront),其中,仅对边界宏块和前景宏块进行编码;
(3)对于参考帧,采用静态图像压缩算法,并编码图像帧的轮廓信息;
(4)对于预测帧,首先通过边界检测确定搜索起点,然后从搜索起点进行预搜索并适时停止搜索,得到相应宏块的运动向量,对图像帧的轮廓信息和运动向量及残差进行编码。
所述步骤(4)通过边界检测确定搜索起点的方法为:记宏块半径为R,搜索窗口大小为sw,当前位置为(row,col),预测帧中当前宏块为MBpre(row,col),其初始运动向量为MV(row,col),对应参考帧宏块为MBref(row,col),根据宏块类型及周围宏块确定搜索起点,具体包含的步骤如下:
(2.1)判断当前宏块MBpre(row,col)类型,若为背景宏块,则进入(2.6),若为边界宏块,则进入(2.2),若为前景宏块,则进入(2.5);
B={MB(x,y)|(x=row-2R,y=col-2R)∨(x=row-2R,y=col)
∨(x=row-2R,y=col+2R)∨(x=row,y=col-2R)∨(x=row,y=col)
∨(x=row,y=col+2R)∨(x=row+2R,y=col-2R)∨(x=row+2R,y=col);
∨(x=row+2R,y=col+2R)∧MBref(x,y)∈Φbound}
(2.3)计算以(row,col)及周围8个点为基准点的宏块集合S中各宏块的SAD值,具有最小SAD值宏块的基准点即为搜索起点,根据搜索起点可得MV(row,col),进入(2.7),集合S计算公式如下:
S={MB(x,y)|(x=row-sw/4,y=col-sw/4)∨(x=row-sw/4,y=col)
∨(x=row-sw/4,y=col+sw/4)∨(x=row,y=col-sw/4)∨(x=row,y=col)
∨(x=row,y=col+sw/4)∨(x=row+sw/4,y=col-sw/4)
∨(x=row+sw/4,y=col)∨(x=row+sw/4,y=col+sw/4)}
(2.4)计算集合S中与B相对应基准点的宏块的SAD值,具有最小SAD值的宏块的基准点即为搜索起点,根据搜索起点可得MV(row,col),进入(2.7);
(2.5)通过对左、上、右上宏块的初始运动向量求取平均值得到MV(row,col),进入(2.7);
(2.6)设置MV(row,col)为0,进入(2.7);
(2.7)返回MV(row,col),继续下一个宏块。
所述步骤(4)预搜索和适时停止搜索的方法为:记初始搜索起点为(m,n),对应的宏块为MB(m,n),MBDk表示第k轮搜索产生的MBD点,PIk和POk表示第k轮搜索产生的两种不同类型的宏块,PIk表示根据扩散规则成功扩散出的点中,位于图像内的点对应宏块的集合,POk表示根据扩散规则成功扩散出的点中,位于图像外的点对应宏块的集合,具体包含以下步骤:
(3.2)令k=k+1,计算图像内和图像外扩散成功的点所对应的宏块的集合PIk和POk,其中PIk的计算公式如下:
PIk={MB(p,q)|(p=j-2,q=i-1)∨(p=j-2,q=i+1)
∨(p=j,q=i-2)∨(p=j,q=i)∨(p=j,q=i+2)
∨(p=j+2,q=i-1)∨(p=j+2,q=i+1)
∧(p,q)∈dis((p,q),sw)≤1}
POk的计算公式如下:
(3.3)计算MBDk,如果MBDk≠MBDk-1,进入(3.2),如果MBDk=MBDk-1,转为SHSP搜索,进入(3.4),MBDk计算公式如下:
(3.4)令k=k+1,计算扩散成功且位于图像内的点对应的宏块集合PIk,并计算MBDk,其中MBDk的计算公式如(3.3)所示,PIk的计算公式如下:
PIk={MB(p,q)|(p=j-1,q=i)∨(p=j,q=i-1)∨
(p=j,q=i+1)∨(p=j+1,q=i)∧
(p,q)∈Pic∧dis((p,q),sw)≤0}
∪{MB(p,q)|(p=s-1,q=t)∨(p=s,q=t-1)∨;
(p=s,q=t+1)∨(p=s+1,q=t)∧MB(s,t)∈Pk-1∧
(p,q)∈Pic∧dis((p,q),sw)≤0}
(3.5)返回点MBDk对应的运动向量。
其中,Pic表示整幅图像所有像素点的集合,dis((p,q),sw)表示计算点(p,q)与搜索窗口边界的位置向量,结果小于1表示(p,q)处于搜索窗口边界外1个像素范围之内,SAD(MB(i,j))表示计算宏块MB(i,j)的SAD值。
与现有技术相比,本发明通过边界检测作为运动估计参考的视频前景对象编码方法的有益效果是:
(1)在数据源减少需要编码的数据量。本发明对视频进行了预处理,即对视频中固定背景建模,根据对应像素的绝对差值提取出图像帧中的前景对象,仅对前景对象及边界进行编码,有效减少了需要编码的数据量,提高了压缩比。
(2)通过边界检测作为运动估计参考。本发明根据图像宏块类型及周围宏块的特点确定搜索起点,结合HS方法和搜索窗口对宏块进行预搜索并适时停止搜索,减少了搜索次数,有效提高了编码速度。
总之,本发明是在对视频各个图像帧进行前景提取的基础上,实时地进行视频压缩,能有效的减少图像帧需要编码的内容,加快编码速度,并且提高压缩比。通过边界检测作为运动估计参考的运动估计方法,减少了搜索次数,有效提高了编码效率。
附图说明
图1为本发明通过边界检测作为运动估计参考的视频前景对象编码方法流程图;
图2为本发明中搜索起点选择流程图;
图3为本发明中搜索起点选择示意图;
图4为本发明中适时停止搜索策略流程图;
图5为本发明中搜索起始状态的三种情况;
图6为本发明中非图像边沿宏块搜索路径示意图;
图7为本发明中图像边沿宏块搜索路径示意图;
图8为本发明中基于亮度运动向量的色度估计示意图。
具体实施方法
如图1所示,本发明将连续采集的视频分为参考帧和预测帧,参考帧和预测帧的比例为1∶10(可调整)。参考帧预测帧被分成若干固定大小的宏块,在对这些宏块进行编码之前,需要对图像帧进行预处理,即前景提取,将图像分成背景、边界和前景三部分。
本发明以室内简单背景下运动人体的前景提取为例,具体方法是首先进行背景建模,再利用背景减除的方法将前景对象从图像中提取出来,最后对提取出的前景对象做消除噪声点的处理。
进行背景建模的前提是背景固定,并且在使用的过程中不会发生变化。假设初始状态下背景固定,取连续的n帧图像,对这些连续的图像帧建立高斯模型ξ(μi,σi 2),i是图像中的一个像素点,μi为该点颜色值分布的期望值,σi 2为该点颜色值分布的方差,这两个值的计算公式如公式(1)所示。
其中,μi,t为点i在第t(1≤t≤n)幅图像中的颜色值。
判断一个像素点是否为前景点的方法是:定义阈值T,如果点i在当前帧的颜色值Ci与该点背景颜色的期望值μi之间的绝对差值大于T,则该点为前景点,否则为背景点。
经过前景提取的图像还需要去噪,即去除那些小块的、被误认为前景的像素块。本发明采用的方法是:首先对前景提取后的图像进行形态学腐蚀,使图像的各前景区域断开;然后找出当前所有的前景区域,对这些独立的前景区域计算面积,为面积设置阈值,面积小于阈值的区域可以认为是噪声点。
根据前景提取结果将图像各宏块分成三种类型:背景宏块(一帧图像中背景宏块集合为Φback)、前景宏块(Φfront)和边界宏块(Φbound)。宏块MB属于背景宏块的充要条件是MB中所有的像素点全是背景点,宏块MB属于前景宏块的充要条件是MB中所有的像素点全是前景点,而宏块MB属于边界宏块的充要条件是MB中存在一个像素点是背景点,同时存在一个像素点是前景点。
参考帧采用静态图像编码方法(JPEG)进行编码,本发明采用现有技术,故不重点介绍。预测帧采用通过边界检测作为运动估计参考的运动估计方法计算运动向量,根据宏块类型及周围宏块的特点确定搜索起点,结合HS方法和搜索窗口对宏块进行预搜索并适时停止搜索。搜索过程中以SAD(Sum of Absolute Difference,绝对误差和)作为匹配准则寻找最小块误差点,返回最小块误差点所对应的运动向量,SAD计算公式如下公式所示:
公式中pred(i,j)为预测宏块中像素点(i,j)的像素灰度值,S(i,j)为参考宏块中像素点(i,j)的像素灰度值,R为宏块半径。
在每一轮搜索结束的时候,都会产生一个最佳匹配的宏块,称为最小块误差(MBD,Minimum Block Distortion),它的含义是在本轮参与搜索的所有宏块中,该宏块具有最小块误差。
基于边界的搜索起点的选择如图2所示,步骤如下:
对于待预测帧,根据宏块类型的不同进行搜索起点的选择。记待预测帧的宏块为MBpre,参考帧中对应的宏块为MBref。若MBpre∈Φback则不处理;若MBpre∈Φbound或MBpreΦfront,都需要进行搜索起点的选择,但两者方法不同。边界宏块中既存在前景点又存在背景点,特征明显,所以把边界宏块作为搜索基准宏块,采用方向性预测加SAD值比较的方法确定搜索起点;由于相邻宏块具有相同或者近似的运动,因此前景宏块参考边界宏块的运动向量来确定自己的运动向量。
当MBpre(row,col)∈Φbound时(本发明以宏块左上角的点为宏块的基准点,(row,col)表示宏块左上角的点所在图像的行和列),判断MBref(row,col)及其周围八个宏块MBref(row-2R,col-2R)、MBref(row-2R,col)、MBref(row-2R,col+2R)、MBref(row,col-2R)、MBref(row,col+2R)、MBref(row+2R,col-2R)、MBref(row+2R,col)和MBref(row+2R,col+2R)是否为边界宏块,构造边界宏块集合B,若MBref∈Φbound,则把MBref加入到集合B中。处理完这九个宏块之后,若则进行全向搜索:以宏块基准点为中心,以sw/2为边长作正方形,计算以该正方形中心、四边中点及角点为基准点的九个宏块的SAD值,具有最小SAD值的点即为搜索起点。参与计算的九个宏块基准点坐标具体为:(row-sw/4,col-sw/4)、(row-sw/4,col)、(row-sw/4,col+sw/4)、(row,col-sw/4)、(row,col)、(row,col+sw/4)、(row+sw/4,col-sw/4)、(row+sw/4,col)和(row+sw/4,col+sw/4)。若则根据B中宏块与待搜索宏块之间的方向、从上述全向搜索的九个宏块中选择宏块进行SAD值的计算。针对MBpre(row,col)∈Φbound并且的情况,假设待搜索宏块的基准点坐标为(16,16),R=8,sw=16,具体计算过程如错误!未找到引用源。所示。MBref(16,16)及周围八个宏块MBref(0,0)、MBref(0,16)、MBref(0,32)、MBref(16,0)、MBref(16,32)、MBref(32,0)、MBref(32,16)和MBref(32,32)中,有四个宏块为边界宏块,即MBref(0,32)、MBref(16,32)、MBref(32,16)和MBref(32,32),因此,根据全向性搜索方法需要计算的四个宏块分别为(row-sw/4,col+sw/4)、(row,col+sw/4)、(row+sw/4,col)和(row+sw/4,col+sw/4),即计算基准点坐标为(12,20)、(16,20)、(20,16)、(20,20)四个宏块的SAD值(四个需要计算的宏块基准点已在图中标出),具有最小SAD值宏块的基准点坐标即为搜索起点。
当MBpre(row col)∈Φfront时,参考左、左上及上边相邻块的运动向量确定该宏块的初始运动向量。已知左方、左上方及上方相邻宏块的运动向量分别为MV(row col-2R)、MV(row-2R,col-2R)和MV(row-2R,col),则MBref(row,col)初始运动向量为(MV(row,col-2R)+MV(row-2R,col-2R)+MV(row-2R,col))/3。
确定了搜索起点之后,在参考帧内进行搜索以计算宏块运动向量。本发明主要采用了六边形搜索方法来获得MBD点,在搜索的过程中采用适时停止策略来控制搜索的规模,过程如图4所示。
搜索起点的确定,可能有三种情况,以宏块半径R为8,搜索窗口sw为16为例,如图5所示。如图5(a)所示:待处理的宏块是基准点坐标为(16,16)的宏块,它的搜索窗口如图中的虚线框所示,由于这个宏块所处的位置不靠边,因此它的搜索窗口是一个完整的16×16像素大小的正方形;如图5(b)所示:待处理的宏块是基准点坐标为(0,0)的宏块,这个宏块处在整幅图像的角落的位置,它的搜索窗口如图所示为一个8×8像素大小的正方形区域;如图5(c)所示:待处理的宏块是基准点坐标为(16,0)的宏块,这个宏块处在图像的边缘而非角落位置,它的搜索窗口是一个8×16像素大小的矩形区域。同理,当宏块位于图像的其他位置,都可以归纳为以上三种情况。这三种情况都是在搜索起点的基础上进行LHSP搜索,只是采用的适时停止策略有所区别。执行适时停止策略的三种情况如图6所示。
当宏块是非边界宏块时,首先采用LHSP搜索,根据产生的MBD位置的不同确定下一步搜索方向,当MBD位于六边形中心时,直接以该点为中心点进行SHSP计算,否则以该点为中心,向周围扩散出三个新的LHSP搜索点,计算当前MBD点,判断MBD点与搜索窗口边界的关系。设d为当前MBD点与搜索窗口边界的位置向量,|d|表示MBD点与搜索窗口边界的绝对距离,d<0表示MBD点在搜索窗口内,d=0表示MBD点在搜索窗口边界,d>1时,表示MBD点位于搜索窗口外。因此,当d<-1时,说明MBD点距离搜索窗口边界尚远,下一步搜索不可能超出搜索窗口边界,可以继续进行LHSP搜索。当d=-1时,说明MBD点接近搜索窗口边界,这时分两种情况对待,对应图6中的搜索路径①和搜索路径②。
搜索路径①情况下,当前MBD点为A1,进一步的LHSP搜索扩散出的三个点中,A2超出了搜索窗口的范围,但考虑到如果A2成为下一步的MBD点,其SHSP点可以处在搜索窗口边界,因此,需要对A2进行预搜索,比较包括A2在内的三个新扩散出的点对应宏块的SAD值,如果A2确实成为当前步骤的MBD点,则转为SHSP搜索,比较其处于搜索窗口边界的SHSP待搜索点与当前MBD点对应宏块SAD值的大小,小的即为搜索终止点,计算运动向量即可。搜索路径②的情况下,当前MBD点为B1,进一步扩散出的三个点中,包括B2、B3和另一个处于搜索窗口边界的点,其中B3同A2一样,需要进行预搜索。经过SAD值的比较,得出B2为当前的MBD点,此时如果继续进行LHSP搜索,一定会超出搜索窗口范围,于是转为SHSP搜索,比较SHSP待搜索点对应宏块的SAD值,小的即为搜索终止点,计算运动向量即可。
当d=0时,说明MBD点已经处于搜索窗口边界,这时的情况如图6中的搜索路径③所示,当LHSP搜索进行到点C时,已经处于搜索窗口的边界,此时LHSP扩散出的三个点有两个已经距离搜索窗口边界两个像素的距离,即使这两个点参与预搜索并且成为MBD点,其SHSP待搜索点也不可能处于搜索窗口范围内,因此这两个点可以忽略,在图中用灰色圆点表示。对于另一个处于搜索窗口边界的LHSP扩散点,比较它与当前MBD点C对应宏块的SAD值,如果点C依然是MBD点,则转为SHSP搜索,即如图示方式,如果扩散点为MBD点,则参照点C的方式继续进行LHSP扩散。
当宏块位于整幅图像角落或者靠边的位置的时候,所不同的就是当LHSP扩散到图像边界时,之前参加预搜索的点此时就位于图像之外,排除该点即可,如图7所示。
图7中,搜索起始点已经位于图像边界,在进行LHSP扩散时,只扩散出三个在图像内的点,另外三个点中有两个与图像边界的距离为1,即图中的点B和点C。计算四个LHSP待搜索点对应宏块的SAD值,如果点A为MBD点,则转为SHSP搜索,此时扩散出的SHSP待搜索点不只包括点A周围的三个点,还包括点B和点C扩散出的点D和点E,这是为了保证图像边界的宏块获得更加精确的搜索效果。接下来对图中五个SHSP待搜索点对应的宏块进行SAD值的计算,具有最小SAD值的宏块对应的点即为搜索终点,计算运动向量即可。
宏块的预搜索与适时停止策略如下:假设初始时搜索起点为(m,n),对应的宏块为MB(m,n),使用MBDk表示第k轮搜索产生的MBD点,使用PIk和POk表示第k轮搜索产生的两种不同类型的宏块,PIk表示根据扩散规则成功扩散出的点中,位于图像内的点对应宏块的集合,如图6中的点A1、A2,POk表示根据扩散规则成功扩散出的点中,位于图像外的点对应宏块的集合,如图7中的点B。MBD点及两个宏块集合的初始状态MBD0、PI0、PO0如公式(2)所示:
MBD0=(m,n)
在扩散搜索中,已知MBD点在第k-1轮的状态为MBDk-1=(i,j),两个宏块集合在第k-1轮的状态为PIk-1和POk-1,则在第k轮搜索时,MBDk及两个宏块集合的状态PIk和POk可以通过PIk-1和POk-1及MBDk-1生成。在LHSP搜索过程中,PIk的生成方法如公式(3)所示:
PIk={MB(p,q)|(p=j-2,q=i-1)∨(p=j-2,q=i+1)
∨(p=j,q=i-2)∨(p=j,q=i)∨(p=j,q=i+2) (3)
∨(p=j+2,q=i-1)∨(p=j+2,q=i+1)
∧(p,q)∈dis((p,q),sw)≤1}
在SHSP搜索过程中PIk的生成方法如公式(4)所示:
PIk={MB(p,q)|(p=j-1,q=i)∨(p=j,q=i-1)∨
(p=j,q=i+1)∨(p=j+1,q=i)∧
(p,q)∈Pic∧dis((p,q),sw)≤0} (4)
∪{MB(p,q)|(p=s-1,q=t)∨(p=s,q=t-1)∨
(p=s,q=t+1)∨(p=s+1,q=t)∧MB(s,t)∈POk-1∧
(p,q)∈Pic∧dis((p,q),sw)≤0}
POk的生成方法如公式(5)所示:
其中Pic表示整幅图像所有像素点的集合,dis((p,q),sw)表示计算点(p,q)与搜索窗口边界的位置向量,结果小于1表示(p,q)处于搜索窗口边界外1个像素范围之内。
第k轮搜索的MBD点MBDk可以用公式(6)计算:
其中SAD(MB(i,j))表示计算宏块MB(i,j)的SAD值。
为了提高计算速度,本发明所提出的算法是基于亮度信息计算的。但是图像的重建需要色度信息,亮度和色度之间不是一一对应关系,因此无法直接采用亮度的运动向量作为色度的运动向量,于是提出了基于亮度运动向量计算色度运动向量的方法。
色度运动向量估计方法的基本思想如错误!未找到引用源。所示。圆圈表示对每个像素点都提取了亮度信息,而三角表示每四个像素点提取一个色度信息。根据亮度信息计算出运动向量之后,还要同时计算出色度信息的运动向量,这里用MVY(m,n)表示亮度信息的运动向量,用MYc(m′,n′)表示色度信息的运动向量,则MVY(m,n)与MYc(m′,n′)的关系如公式(7)所示:
在编码过程中,本发明对边界宏块进行形状编码和纹理编码,对前景宏块只进行纹理编码,对背景宏块不编码。
对于每帧图像,先编码所有宏块类型信息。0为背景,1为边界,2为前景,用一个整型变量表示。获取所有宏块类型信息后,对数据进行数组哈弗曼编码,并加入到码流中。
边界宏块的形状编码过程是,对于每个边界宏块,用1bit表示一个像素是否为前景,1为前景,0为背景。按从左到右,从上到下的顺序获取所有边界宏块所有像素点的信息,加入码流中。
边界宏块和前景宏块的纹理编码是对宏块的运动矢量和差值的编码。本发明对运动矢量采用数组哈弗曼编码,对差值进行DCT变换,然后量化,最后进行哈弗曼编码,然后将编码后的数据加入到码流中。
为了衡量运动估计的性能,通常采用PSNR(Peak Signal to Noise Ratio,峰值信噪比)作为实验指标,PSNR计算公式如下。PSNR反映了图像的失真程度,其单位为分贝(dB),PSNR值越大,图像失真越少。
其中,Ik(x,y)是补偿图像中点(x,y)的灰度像素值,It(x,y)是原始图像中点(x,y)的灰度像素值,w和h分别是图像的宽度与高度。
测试结果表明,本发明提出的基于边界的运动估计算法生成补偿图像的PSNR值比DS算法和HS算法低约0.57dB;在PSNR值基本相等的情况下,本发明编码方法的平均编码时间上约为H.263编码方法的12%,压缩比比H.263编码方法小了约29%。与相关算法性能对比如表1所示。
表1不同编码方法各项性能对比
编码方法 | 平均编码时间(ms) | 平均压缩比 | 平均PSNR(db) |
JPEG | 35 | 26.9 | 31.98 |
H.263 | 213 | 62.3 | 30.05 |
本发明方法 | 26 | 44.2 | 32.08 |
考虑视频编码的实时性,本发明将Openmp并行技术引入到视频编码当中。在多核机器上,充分利用硬件上的优点,对编码过程进行加速,有效提高了本发明的编码效率。具体做法如下:图像帧分为多个宏块,每个宏块需经过前景提取、图像空间转换、运动估计及运动向量编码等处理过程,宏块之间的处理是独立的,可用多核进行并行处理,以提高算法编码效率。
本发明中未详细阐述的部分属于本领域技术人员的公知技术。
最后所应说明的是,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明通过边界检测作为运动估计参考的视频前景对象编码方法的前提下,还可以做出若干改进或等同替换,这些改进和等同替换也应视为本发明的保护范围。
Claims (1)
1.通过边界检测作为运动估计参考的视频前景对象编码方法,其特征在于实现步骤如下:
(1)将连续采集的视频分成参考帧和预测帧,并将参考帧和预测帧分成若干固定大小的宏块;
(2)对参考帧和预测帧分别进行前景提取,并分为背景宏块、边界宏块Φbound和前景宏块Φfront,其中,仅对边界宏块和前景宏块进行编码;一帧图像中背景宏块集合为Φback;
(3)对于参考帧,采用静态图像压缩算法,并编码图像帧的轮廓信息;
(4)对于预测帧,首先通过边界检测确定搜索起点,然后从搜索起点进行预搜索并适时停止搜索,得到相应宏块的运动向量,对图像帧的轮廓信息和运动向量及残差进行编码;
所述步骤(4)通过边界检测确定搜索起点的方法为:记宏块半径为R,搜索窗口大小为sw,当前位置为(row,col),预测帧中当前宏块为MBpre(row,col),其初始运动向量为MV(row,col),对应参考帧宏块为MBref(row,col),根据宏块类型及周围宏块确定搜索起点,具体包含的步骤如下:
(2.1)判断当前宏块MBpre(row,col)类型,若为背景宏块,则进入(2.6),若为边界宏块,则进入(2.2),若为前景宏块,则进入(2.5);
B={MB(x,y)|(x=row-2R,y=col-2R)∨(x=row-2R,y=col)
∨(x=row-2R,y=col+2R)∨(x=row,y=col-2R)∨(x=row,y=col)
∨(x=row,y=col+2R)∨(x=row+2R,y=col-2R)∨(x=row+2R,y=col)
∨(x=row+2R,y=col+2R)∧MBref(x,y)∈Φbound};
(2.3)计算以(row,col)及周围8个点为基准点的宏块集合S中各宏块的SAD值,具有最小SAD值宏块的基准点即为搜索起点,根据搜索起点可得MV(row,col),进入(2.7),集合S计算公式如下:
S={MB(x,y)|(x=row-sw/4,y=col-sw/4)∨(x=row-sw/4,y=col)
∨(x=row-sw/4,y=col+sw/4)∨(x=row,y=col-sw/4)∨(x=row,y=col)
∨(x=row,y=col+sw/4)∨(x=row+sw/4,y=col-sw/4)
∨(x=row+sw/4,y=col)∨(x=row+sw/4,y=col+sw/4)}
(2.4)计算集合S中与B相对应基准点的宏块的SAD值,具有最小SAD值的宏块的基准点即为搜索起点,根据搜索起点可得MV(row,col),进入(2.7);
(2.5)通过对左、上、右上宏块的初始运动向量求取平均值得到MV(row,col),进入(2.7);
(2.6)设置MV(row,col)为0,进入(2.7);
(2.7)返回MV(row,col),继续下一个宏块;
所述步骤(4)预搜索并适时停止搜索的方法为:记初始搜索起点为(m,n),对应的宏块为MB(m,n),MBDk表示第k轮搜索产生的MBD点,PIk和POk表示第k轮搜索产生的两种不同类型的宏块,PIk表示根据扩散规则成功扩散出的点中,位于图像内的点对应宏块的集合,POk表示根据扩散规则成功扩散出的点中,位于图像外的点对应宏块的集合,具体包含以下步骤:
(3.2)令k=k+1,计算图像内和图像外扩散成功的点所对应的宏块的集合PIk和POk,其中PIk的计算公式如下:
PIk={MB(p,q)|(p=j-2,q=i-1)∨(p=j-2,q=i+1)
∨(p=j,q=i-2)∨(p=j,q=i)∨(p=j,q=i+2)
∨(p=j+2,q=i-1)∨(p=j+2,q=i+1)
∧(p,q)∈dis((p,q),sw)≤1}
POk的计算公式如下:
(3.3)计算MBDk,如果MBDk≠MBDk-1,进入(3.2),如果MBDk=MBDk-1,转为SHSP搜索,进入(3.4),MBDk计算公式如下:
(3.4)令k=k+1,计算扩散成功且位于图像内的点对应的宏块集合PIk,并计算MBDk,其中MBDk的计算公式如(3.3)所示,PIk的计算公式如下:
PIk={MB(p,q)|(p=j-1,q=i)∨(p=j,q=i-1)∨
(p=j,q=i+1)∨(p=j+1,q=i)∧
(p,q)∈Pic∧dis((p,q),sw)≤0}
∪{MB(p,q)|(p=s-1,q=t)∨(p=s,q=t-1)∨
(p=s,q=t+1)∨(p=s+1,q=t)∧MB(s,t)∈POk-1∧
(p,q)∈Pic∧dis((p,q),sw)≤0};
(3.5)返回点MBDk对应的运动向量;
其中,Pic表示整幅图像所有像素点的集合,dis((p,q),sw)表示计算点(p,q)与搜索窗口边界的位置向量,结果小于1表示(p,q)处于搜索窗口边界外1个像素范围之内,SAD(MB(i,j))表示计算宏块MB(i,j)的SAD值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110035531 CN102075757B (zh) | 2011-02-10 | 2011-02-10 | 通过边界检测作为运动估计参考的视频前景对象编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110035531 CN102075757B (zh) | 2011-02-10 | 2011-02-10 | 通过边界检测作为运动估计参考的视频前景对象编码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102075757A CN102075757A (zh) | 2011-05-25 |
CN102075757B true CN102075757B (zh) | 2013-08-28 |
Family
ID=44034079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110035531 Expired - Fee Related CN102075757B (zh) | 2011-02-10 | 2011-02-10 | 通过边界检测作为运动估计参考的视频前景对象编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102075757B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102547296B (zh) * | 2012-02-27 | 2015-04-01 | 开曼群岛威睿电通股份有限公司 | 移动估计加速电路、移动估计方法及环路滤波加速电路 |
CN102917224B (zh) * | 2012-10-18 | 2015-06-17 | 北京航空航天大学 | 基于新型十字菱形搜索及五帧背景对齐的动背景视频对象提取 |
CN103796028B (zh) * | 2014-02-26 | 2017-09-29 | 北京大学 | 一种视频编码中基于图像信息的运动搜索方法 |
KR20180047232A (ko) * | 2016-10-31 | 2018-05-10 | 삼성에스디에스 주식회사 | 실시간 영상 스트리밍의 네트워크 패킷의 패턴 분석 기반 영상 분석 방법 및 그 장치 |
CN109961519A (zh) * | 2017-12-26 | 2019-07-02 | ***通信集团辽宁有限公司 | 移动增强现实的实现方法、装置、设备及介质 |
CN112203095B (zh) * | 2020-12-04 | 2021-03-09 | 腾讯科技(深圳)有限公司 | 视频运动估计方法、装置、设备及计算机可读存储介质 |
CN114040203B (zh) * | 2021-11-26 | 2024-07-12 | 京东方科技集团股份有限公司 | 视频数据处理方法、装置、设备和计算机存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1159276A (zh) * | 1995-07-24 | 1997-09-10 | 摩托罗拉公司 | 用于在一个视频序列中估计运动的方法和*** |
CN1713729A (zh) * | 2004-06-24 | 2005-12-28 | 华为技术有限公司 | 一种视频压缩方法 |
CN101478678A (zh) * | 2008-12-30 | 2009-07-08 | 西安交通大学 | 基于感兴趣区域运动补偿时域滤波方法 |
CN101877786A (zh) * | 2009-04-30 | 2010-11-03 | 北京大学 | 一种视频帧前景跟踪方法以及视频编码器 |
-
2011
- 2011-02-10 CN CN 201110035531 patent/CN102075757B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1159276A (zh) * | 1995-07-24 | 1997-09-10 | 摩托罗拉公司 | 用于在一个视频序列中估计运动的方法和*** |
CN1713729A (zh) * | 2004-06-24 | 2005-12-28 | 华为技术有限公司 | 一种视频压缩方法 |
CN101478678A (zh) * | 2008-12-30 | 2009-07-08 | 西安交通大学 | 基于感兴趣区域运动补偿时域滤波方法 |
CN101877786A (zh) * | 2009-04-30 | 2010-11-03 | 北京大学 | 一种视频帧前景跟踪方法以及视频编码器 |
Also Published As
Publication number | Publication date |
---|---|
CN102075757A (zh) | 2011-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102075757B (zh) | 通过边界检测作为运动估计参考的视频前景对象编码方法 | |
CN102047665B (zh) | 运动图像编码方法以及运动图像解码方法 | |
CN107087200B (zh) | 针对高效率视频编码标准的跳过编码模式提前判决方法 | |
CN103248895B (zh) | 一种用于hevc帧内编码的快速模式估计方法 | |
CN101394566B (zh) | 一种十字菱形运动估计搜索方法 | |
CN103546758B (zh) | 一种快速深度图序列帧间模式选择分形编码方法 | |
CN101420617B (zh) | 一种十字六边形运动估计搜索方法 | |
CN107396102B (zh) | 一种基于Merge技术运动矢量的帧间模式快速选择方法及装置 | |
CN103517069A (zh) | 一种基于纹理分析的hevc帧内预测快速模式选择方法 | |
CN101378504A (zh) | 用于h.264编码的块匹配运动估计方法 | |
CN101325711A (zh) | 基于时空掩盖效应的自适应码率控制方法 | |
CN103327327B (zh) | 用于高性能视频编码hevc的帧间预测编码单元选择方法 | |
CN102801976A (zh) | 基于三维小波视频编码的帧间块模式选择方法 | |
WO2023131059A1 (zh) | 图像编码方法、图像编码装置、电子设备和可读存储介质 | |
CN105120290A (zh) | 一种深度视频快速编码方法 | |
CN108810549B (zh) | 一种面向低功耗的流媒体播放方法 | |
CN104702959B (zh) | 一种视频编码的帧内预测方法及*** | |
KR100947447B1 (ko) | 다시점 동영상 부호화에서 고속 모드 결정 방법 및 장치 | |
EP3596698B1 (en) | Motion estimation method and apparatus for plurality of frames | |
CN1322758C (zh) | 基于对象的纹理快速运动估值的方法 | |
Liu et al. | Video coding and processing: a survey | |
CN106060555A (zh) | 一种基于多核处理器的编码器 | |
CN101527854A (zh) | 帧间模式选择方法 | |
CN101783956B (zh) | 基于时空邻居信息的后向预测方法 | |
CN103546747B (zh) | 一种基于彩***编码模式的深度图序列分形编码方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130828 Termination date: 20210210 |