确定运动矢量的方法

文档序号:7897117阅读:334来源:国知局
专利名称:确定运动矢量的方法
技术领域
本发明涉及确定运动矢量的方法,特别涉及一种确定运动矢量的方法,其能够快速而精确地确定运动矢量。
运动矢量是指示在运动图像的编码中屏幕上显示的一个点在多个帧之间的运动方向的信息。运动矢量的检测是减少帧间复制时间的关键过程,它对图像的清晰度质量和压缩速度有着决定性的影响。
一般来讲,运动矢量是在位于当前帧的预定坐标上的宏块的基础上,通过搜索先前帧中的最接近块的位置来确定的。此时,时间上接近的两帧之间存在差别的部分称为搜索范围,该搜索范围位于先前帧中。
通过找出与当前帧的宏块最接近的块的位置,即,通过获得构成先前帧的搜索范围的像素与当前帧的宏块的像素之间的差值,并将所有这些差值的绝对值进行求和运算之后,对应于最小和值的位置,就可以确定运动矢量。此时,在获得先前帧和当前帧的差值之后,这些差值的绝对值之和就称为绝对差和(SAD)。
也就是说,在宏块的数据点为(x,y),距离先前帧的搜索范围中的宏块最近的块的数据点为(x+u,y+v)的情况下,运动矢量就确定为(u,v)。
在确定运动矢量的方法中,完全搜索法和三步搜索法是其中的两种方法。
在先前帧中搜索与当前帧的宏块相对应的宏块的诸多方法中,完全搜索法是最基本的一种方法。采用完全搜索法,对于所有搜索范围的像素点,都必须对绝对值进行减法和求和等运算,所以可以求得优化的运动矢量。但这种方法的计算量太大,而且处理速度也比较慢。
此外,三步搜索法也是一种搜索算法。通过减少搜索点的数量,三步搜索法可以快速预测运动矢量,在获得与9个离散搜索点最接近的搜索点之后,通过向该搜索点移动,搜索点之间的间隔就会减少一半。将以上过程重复三次,即可得到运动矢量。
三步搜索法的计算量小,处理速度快,但求得的运动矢量的精度低,这样会导致经过编码器的解码图像的清晰度质量降低。
为达到上述目标和其他优点,根据本发明的目的,如这里所体现并广泛描述的那样,本发明提出的确定运动矢量的方法的第一个特点是该方法包含如下步骤通过在预定像素的基础上进行N搜索,把具有最小绝对差和(以下简称SAD)的搜索点确定为第一预测运动矢量;在预定像素的基础上进行 搜索,把具有最小SAD值的搜索点确定为第二预测运动矢量;通过比较第一预测运动矢量和第二预测运动矢量,确定运动矢量。
为达到上述目标和其他优点,根据本发明的目的,如这里所体现并广泛描述的那样,本发明提出的确定运动矢量的方法的第二个特点是该方法包含如下步骤在预定像素的基础上进行N搜索,把具有最小SAD值的搜索点确定为第一预测运动矢量;确认第一预测运动矢量是否为(0,0);如果第一预测运动矢量不是(0,0),则在预定像素的基础上进行 搜索,获取具有最小SAD值的搜索点;确认该具有最小SAD值的搜索点和(0,0)之间的距离是否为1个像素;如果该距离不是1个像素,则在该最小SAD值的基础上进行M搜索,,把具有最小SAD值的搜索点确定为第二预测运动矢量;并将第一预测运动矢量和第二预测运动矢量进行比较,从而确定最终的运动矢量。
为达到上述目标和其他优点,根据本发明的目的,如这里所体现并广泛描述的那样,本发明提出的确定运动矢量的方法的第三个特点是该方法包含如下步骤在当前帧和先前帧之间,在预定像素的基础上进行N搜索,把具有最小SAD值的搜索点确定为第一预测运动矢量;如果第一预测运动矢量为(0,0),则将第一预测运动矢量确定为最终的运动矢量;如果第一预测运动矢量不为(0,0),则在预定像素的基础上进行N/2像素搜索、N/4像素搜索、…、1像素搜索,分别得到9个SAD值,再在这些SAD值中确定一个最小的SAD值;如果这个最小的SAD值是通过M(M≠1)像素搜索得到的最小SAD值,则通过M/2像素搜索确定第二预测运动矢量;在对应于第一预测运动矢量和第二预测运动矢量的搜索点之间确定一个具有较小SAD值的搜索点作为最终的运动矢量。
通过下面的详细描述,并结合附图,本发明的上述及其它目的、特点、方面和优点会变的更加明显。
优选实施例详细说明下面结合附图详细描述本发明的优选实施例。
一般来说,运动矢量很有可能接近于(0,0),就获得绝对差和(以下简称SAD)而言,在宏块中采用16×16像素进行运动矢量搜索的方法和采用16×8像素进行运动矢量搜索的方法这二者之间没有太大的差别。因此,本发明提出的运动矢量确定方法利用了运动矢量的上述特点。


图1A和1B显示了本发明的运动矢量确定方法的流程图。
如图1A和1B所示,以(0,0)为基础,通过进行N搜索,将具有最小SAD值的搜索点确定为第一预测运动矢量,并确定第一预测运动矢量是否为(0,0)(S1-S4)。
此时,经过N搜索,以N个像素的间隔得到对应于9个搜索点的SAD值,并且以这些SAD值中具有最小SAD值的搜索点为基础,位于初始像素间隔一半距离的搜索点的SAD值也可以确定。获得搜索点SAD值的过程重复进行,直到搜索点之间的距离变为1个像素。在找出具有最小SAD值的搜索点之后,把该搜索点确定为最终的运动矢量。
举例来说,以(0,0)为基准,在以8个像素的间隔移动搜索点的同时,8搜索获得SAD值,并且输出包括(0,0)在内的9个搜索点所对应的各个SAD值。在这9个SAD值中,在具有最小SAD值的搜索点的基础上,得到间隔为4个像素的对应于这9个搜索点的SAD值。同样,在这些搜索点的SAD值中,在具有最小SAD值的搜索点的基础上,得到间隔为2个像素的对应于这9个搜索点的SAD,并且以具有最小SAD值的搜索点为基准,得到间隔为1个像素的对应于这9个搜索点的SAD值。此时,把这些搜索点中具有最小SAD值的搜索点确定为运动矢量。
如果确定搜索点的运动矢量不为(0,0),则求得对应于位于N/2像素,也就是初始间隔的一半处的搜索点的SAD值(S5),并确认N/2像素是否为1像素(S6)。如果确认N/2像素不是1像素,则求得对应于位于 像素间隔处的搜索点的各个SAD值,直到N/2像素变为1像素,并在这些搜索点中检测具有最小SAD值的搜索点(S7和S8)。
也就是说,通过进行 像素搜索、 像素搜索、 像素搜索、…、1像素搜索,可以确定具有最小SAD值的搜索点,并且通过获得包括该搜索点在内的9个搜索点的SAD值来进行N像素搜索,搜索点在二维图像中的位置是随机的。
通过检测具有最小SAD值的搜索点和(0,0)之间的距离为M像素(S9),确认该距离是否为1像素(S10)。如果该距离不为1像素,则以SAD值最小的搜索点为基准,求得间隔为 时对应于这些搜索点的各个SAD值。
此时,通过确认 是否变为1(S12),在增加m值的同时,求得这些搜索点的各个SAD值,直到 变为1。
当 变为1时,在上述过程中以SAD值最小的搜索点为基准求得的各个搜索点中,具有最小SAD值的搜索点被输出,该搜索点被确定为第二预测运动矢量(S14)。
通过比较第一预测运动矢量和第二预测运动矢量(S15),把SAD值较小的运动矢量确定为最终的运动矢量(S16)。
图2A和2B显示了本发明的运动矢量确定方法的实施例。为便于描述本发明起见,下述实例的搜索范围采用-8到7(16×16)像素。
首先,以(0,0)为基准点,求得间隔为4个像素时包括(0,0)在内的9个搜索点的SAD值,并以其中SAD值最小的搜索点为基准点,得到间隔为2个像素时9个搜索点所对应的各个SAD值。以间隔为2个像素时各搜索点中SAD值最小的搜索点为基准点,得到间隔为1个像素时9个相近搜索点所对应的各个SAD值,将各搜索点中SAD值最小的搜索点确定为第一预测运动矢量。
上述过程与传统技术中的三步搜索法相同。
如果第一预测运动矢量为(0,0),则把第一预测运动矢量确定为最终的运动矢量,整个过程也就结束了。然而,如果第一预测运动矢量不为(0,0),且该运动矢量距离(0,0)还有4个像素,则以(0,0)为基准点,分别求得间隔为2个像素时和间隔为1个像素时9个搜索点对应的各个SAD值。在包括重合位置在内的这18个搜索点中,找出SAD值最小的搜索点。如果该SAD值最小的搜索点距离(0,0)还有2个像素,则从包括该SAD值最小的搜索点在内的间隔为1个像素的9个像素中选出的具有最小SAD值的搜索点就可以被确定为第二预测运动矢量。
第一预测运动矢量和第二预测运动矢量中SAD值较小的那个搜索点就被确定为最终的运动矢量。
对于本发明所提出的确定运动矢量的方法,以16×16像素为例进行了说明,但不限于该实例,它还可以应用于32×32像素或更多的像素。
如上所述,采用本发明提供的方法,由于经过少量的计算便可得到近似于采用完全搜索法得到的运动矢量精度,所以该方法可以提高图像的清晰度质量。
此外,由于最终的运动矢量是通过多个预测运动矢量之间的比较来确定的,所以本发明中提出的方法还可以防止由于初始搜索点的错误选择而导致的精度降低问题。
在不脱离本发明的精神或本质特征的情况下,本发明可以实施为多种形式,还应该理解,除非另外特别说明,以上实施例不限于上述的任何细节,而应在权利要求所限定的精神和范围内广义地解释,因此,所附的权利要求涵盖所有落在权利要求的界限或其等同物内的变化和改进。
权利要求
1.一种确定运动矢量的方法,包含如下步骤通过以一个预定像素为基准点进行N搜索,把具有最小绝对差和SAD的搜索点确定为第一预测运动矢量;通过以一个预定像素为基准点进行 搜索,把具有最小绝对差和SAD的搜索点确定为第二预测运动矢量;通过比较第一预测运动矢量和第二预测运动矢量,确定运动矢量。
2.根据权利要求1所述的方法,其中确定第一预测运动矢量的步骤包括如下步骤以(0,0)为基准点,求得间隔为N像素的搜索点中SAD值最小的搜索点;以上述SAD值最小的搜索点为基准点,求得间隔为N/2像素的搜索点中SAD值最小的搜索点;确认所述SAD值最小的搜索点和中心点之间的距离是否为1个像素;以及如果所述的距离为1个像素,则把所述的SAD值最小的搜索点确定为第一预测运动矢量。
3.根据权利要求2所述的方法,其中,减小所述的距离,直到该距离变为1个像素,而且如果该距离不是1个像素,则求取SAD值最小的搜索点的过程将不断地重复进行。
4.根据权利要求1所述的方法,其中确定第二预测运动矢量的步骤包括如下步骤以(0,0)为基准点,求得间隔为N/2像素的搜索点中SAD值最小的搜索点;确认该SAD值最小的搜索点和(0,0)之间的距离是否为1个像素;以及如果该距离为1个像素,则把SAD值最小的搜索点确定为第二预测运动矢量。
5.根据权利要求4所述的方法,其中,如果所述的距离不是1个像素,则确定第二预测运动矢量的步骤包括如下步骤以SAD值最小的搜索点为基准点,求得间隔为M/2像素的搜索点中SAD值最小的搜索点;确认该SAD值最小的搜索点和中心点之间的距离是否为1个像素;以及如果该距离为1个像素,则把该SAD值最小的搜索点确定为第二预测运动矢量。
6.根据权利要求5所述的方法,其中,减小所述的距离,直到该距离变为1个像素,而且如果该距离不是1个像素,则求取SAD值最小的搜索点的过程将不断地重复进行。
7.根据权利要求1所述的方法,其中,确定最终运动矢量的步骤包括如下步骤比较对应于第一预测运动矢量和第二预测运动矢量的各个搜索点的SAD值;以及将对应于SAD值较小的搜索点的运动矢量确定为最终的运动矢量。
8.一种确定运动矢量的方法,包括如下步骤通过以预定像素为基准点进行N搜索,把具有最小SAD值的搜索点确定为第一预测运动矢量;确认第一预测运动矢量是否为(0,0);如果第一预测运动矢量不是(0,0),则以一个预定像素为基准点进行 搜索,确定一个具有最小SAD值的搜索点;确认该具有最小SAD值的搜索点和(0,0)之间的距离是否为1个像素;如果该距离不是1个像素,则在所述最小SAD的基础上进行M搜索,确定一个具有最小SAD值的搜索点作为第二预测运动矢量;以及将第一预测运动矢量和第二预测运动矢量进行比较,确定最终的运动矢量。
9.根据权利要求8所述的方法,其中确定第二预测运动矢量的步骤包括如下步骤以(0,0)为基准点,求得间隔为N像素的搜索点中SAD值最小的搜索点;以上述SAD值最小的搜索点为基准点,求得间隔为N/2像素时的搜索点中SAD值最小的搜索点;确认该SAD值最小的搜索点和中心点之间的距离是否为1个像素;以及如果该距离为1个像素,则把该SAD值最小的搜索点确定为第一预测运动矢量。
10.根据权利要求9所述的方法,其中减小所述的距离,直到该距离变为1个像素,而且如果该距离不是1个像素,则求取SAD值最小的搜索点的过程将不断地重复进行。
11.根据权利要求8所述的方法,还包括如下步骤如果第一运动矢量是(0,0),则将第一运动矢量确定为最终的运动矢量。
12.根据权利要求8所述的方法,还包括如下步骤如果具有最小SAD值的搜索点和(0,0)之间的距离是1个像素,则把该具有最小SAD值的搜索点确定为第二预测运动矢量;
13.根据权利要求8所述的方法,其中,在确定最终运动矢量的步骤中,把对应于第一和第二预测运动矢量的搜索点中SAD值较小的搜索点确定为最终的运动矢量。
14.根据权利要求8所述的方法,其中,以所述预定像素为中心的搜索点有9个,包括中心点自身在内。
15.一种确定运动矢量的方法,包括如下步骤在当前帧和先前帧之间,以一个预定像素为基准点进行N搜索,把具有最小SAD值的搜索点确定为第一预测运动矢量;如果第一预测运动矢量为(0,0),则将第一预测运动矢量确定为最终的运动矢量;如果第一预测运动矢量不为(0,0),则以一个预定像素为基准点进行N/2像素搜索、N/4像素搜索、…、1像素搜索,分别得到9个SAD值,再在这些SAD值中确定一个最小的SAD值;如果这个最小的SAD值是通过M(M≠1)像素搜索得到的SAD值,则通过M/2像素搜索确定第二预测运动矢量;以及在对应于第一预测运动矢量和第二预测运动矢量的搜索点中,把具有较小SAD值的搜索点确定为最终的运动矢量。
全文摘要
本发明公布了一种在运动图像编码中确定运动矢量的方法。该方法包括如下步骤以一个预定像素为基准点进行N搜索,把具有最小绝对差和(SAD)的搜索点确定为第一预测运动矢量;以一个预定像素为基准点进行N/文档编号H04B1/66GK1450809SQ03109238
公开日2003年10月22日 申请日期2003年4月4日 优先权日2002年4月8日
发明者李俊镐 申请人:Lg电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1