提高的运动估计、视频编码方法及使用所述方法的设备的制作方法

文档序号:7968177阅读:202来源:国知局
专利名称:提高的运动估计、视频编码方法及使用所述方法的设备的制作方法
技术领域
符合本发明的方法和设备涉及视频压缩,更具体地说,涉及提高视频压缩速度和使用这一技术的视频编码器。
背景技术
随着包括互联网的信息和通信技术的发展,除文本和语音通信之外,多媒体通信正逐渐增加。现有的以文本为中心的通信系统不足以满足消费者的各种需求,因此,能够提供诸如文本、图像、音乐等各种形式的信息的多媒体服务日益增长。由于多媒体数据较大,所以需要大容量存储介质和宽的带宽来存储和发送多媒体数据。因此,需要压缩编码技术来发送多媒体数据。
数据压缩的基本原理是去除冗余。可通过去除空间冗余、时间冗余以及视觉/知觉冗余来压缩数据,其中,所述空间冗余诸如图像中颜色或者对象的重复,所述时间冗余诸如运动图像中相邻帧的微小改变或者声音的重复,所述视觉/知觉冗余考虑人对于高频的不敏感。在一般的视频编码方法中,通过基于运动估计和运动补偿的时间滤波来去除时间冗余,通过空间变换来去除空间冗余。
大多数现有的运动估计算法基于局部运动。然而,由于相机的运动或者完全占据帧的对象的运动导致会发生全局运动。全局运动表示组成一帧的各个像素根据特定规则而运动,例如整个场景的平行运动或旋转、场景的放大/缩小等。
图1是解释现有技术的运动估计方法的示图。根据现有技术的运动估计方法,当误差或绝对差值和(SAD)最小时,获得运动矢量。在这种情况下,块13的运动范围不是整个参考帧10,而是受限于搜索区域14,搜索区域14为点11(块13的中心)周围指定数量像素的大小。这是因为运动矢量很可能邻近原点11,而搜索整个帧效率较低。
如图1所示,当运动块13在搜索区域14中运动时,计算误差,搜索运动矢量以找到使所述误差最小的运动矢量。在坐标系中,x坐标向右增加,y坐标向下增加。如果当运动块13从点11运动到点12时误差最小,则运动矢量为(-3,-2)。
在现有技术的运动估计方法,即,全搜索算法中,通过使运动块运动到指定搜索区域之内的所有像素位置来搜索运动矢量,这需要大量计算。
实际上,视频编码器中执行的大多数处理与运动估计和运动补偿相应。具体说来,在使用诸如H.264的层次式可变大小块匹配(HVSBM)算法或使用以1/4像素为单位找到运动矢量的四分之一像素方法的情况下,计算量急剧增加。
因此,需要一种通过在给定的搜索区域中优先在最可能包含最佳运动矢量的区域中搜索运动矢量来减少在视频编码器中的计算量的方法。

发明内容
本发明示例性实施例克服上述缺点和以上未描述的其它缺点。此外,本发明不需要克服上述缺点,并且本发明示例性实施例可以不克服任何上述问题。
本发明提供一种视频编码方法和一种视频编码器,所述视频编码方法和视频编码器可以通过以下处理来减少计算量当使用全局运动信息执行运动估计时,在保持全搜索精度的情况下减小搜索范围。
本发明还提供判断全局运动的标准。
根据本发明的一方面,提供一种运动估计方法,根据本发明的示例性实施例,所述方法包括根据先前帧的运动矢量确定先前帧的全局运动类型;基于所述全局运动类型为包括在当前帧中的指定运动块设置搜索区域;以及在设置的搜索区域之内搜索运动矢量。
根据本发明的另一方面,提供一种视频编码方法,包括根据参考帧获得当前帧的运动矢量;使用通过运动估计获得的运动矢量来执行参考帧的运动补偿,并产生预测帧;以及对当前帧和预测帧之间的差值进行编码,其中,获得运动矢量的步骤包括根据先前帧的运动矢量确定先前帧的全局运动类型;基于所述全局运动类型为包括在当前帧中的指定运动块设置搜索区域;以及在设置的搜索区域之内搜索运动矢量。
根据本发明的另一方面,提供一种视频编码器,包括运动估计单元,用于根据参考帧获得当前帧的运动矢量;运动补偿单元,用于使用通过运动估计获得的运动矢量来对参考帧进行运动补偿并产生预测帧;用于对当前帧和预测帧之间的差值进行编码的装置,其中,运动估计单元包括全局运动判断单元,用于根据先前帧的运动矢量判断先前帧的全局运动类型;搜索区域设置单元,用于基于所述全局运动类型为包括在当前帧中的指定运动块设置搜索区域;以及运动矢量搜索单元,用于在设置的搜索区域之内搜索运动矢量。


通过下面结合附图对示例性实施例进行的详细描述,本发明的上述和其它方面将会变得更加清楚,其中图1是解释现有技术的运动估计方法的示图;图2是示出根据本发明示例性实施例的视频编码器的构造的示图;图3是示出方向类别和方向类别的值的示图;图4是示出将方向类别分类的示例的示图;图5是示出将运动矢量转换为方向类别值的示例的示图;图6是示出全局运动类型的类别和值的示图;图7是示出通过将一帧划分为四个部分而获得的四个象限的示图;图8是示出根据12种全局运动类型的每个象限的代表方向的示图;图9是示出确定全局运动类型的算法的示例的示图;图10是示出对于八种类型的全局运动将搜索区域划分为优先区域和其它区域的方法的示图;图11是示出根据本发明示例性实施例的全局运动类型中各个象限具有不同代表方向的四种类型的示图;图12是示出根据本发明另一示例性实施例的帧分类方法的示图;图13是示出全局运动类型中各个象限具有不同代表方向的四种类型的每个部分的代表矢量的示图;图14是示出根据图13中的全局运动类型的各个部分的搜索区域的示图;图15是示出通过帧的某部分的代表方向来设置剩余部分的搜索区域的示例的示图;以及图16是示出根据本发明示例性实施例的运动估计方法的流程图。
具体实施例方式
以下,将参照附图详细描述本发明的示例性实施例。通过参考将参照附图来描述的示例性实施例,本发明的各方面和特点以及实现所述方面和特点的方法将变得清楚。然而,本发明并不受限于以下公开的实施例,而是能够以各种形式来实现。提供诸如详细的构造和部件的在说明书中定义的内容以帮助本领域的普通技术人员全面理解本发明,本发明仅限定在所述权利要求的范围内。在本发明的整个描述中,相同的标号在各个附图中均用于相同的部件。
根据本发明,通过将全局运动信息应用于全搜索方法来确定搜索区域中将优先搜索的区域;首先搜索确定的区域,并且如果误差小于参考值,则不执行进一步的搜索。
图2是示出根据本发明一示例性实施例的视频编码器100的构造的框图。视频编码器100包括运动估计单元110、运动补偿单元120、减法器125、变换单元130、量化单元140、熵编码单元150、反量化单元160、反变换单元170和加法器175。
运动估计单元110是应用本发明的特点的部件,包括运动分类单元113,用于确定计算的运动矢量属于指定数量的方向类别(md_class)中的哪一个;全局运动判断单元114,用于根据确定的方向类别来判断全局运动类型(gm_type);缓冲器115,用于存储恢复的帧F’和全局运动类型;搜索区域设置单元111,用于根据全局运动类型设置搜索区域;以及运动矢量搜索单元112,用于在设置的搜索区域之内搜索运动矢量。
运动分类单元113确定通过运动矢量搜索单元112获得的运动矢量MV属于指定数量的方向类别中的哪一个。在本发明示例性实施例中,如图3所示,将方向类别分为9种方向类别。当然,本领域的技术人员可以将方向类别分为任何数量或类型。
在图3中,类别NO_MOVE指示运动矢量是“0”的情况,类别RIGHT指示运动矢量向右的情况,类别LEFT指示运动矢量向左的情况。此外,类别UP指示运动矢量向上的情况,类别DOWN指示运动矢量向下的情况。类别RIGHT_UP、RIGHT_DOWN、LEFT_UP和LEFT_DOWN分别指示运动矢量向右上、右下、左上和左下的情况。将值0到8分别分配给所述类别以将它们分类。
由于会有并不确切符合以上方向的运动矢量(例如,右上方30度角的运动矢量),所以有必要提供大体上的分类方法。
图4是解释将方向类别分类的一个示例的示图。假设横坐标轴是x轴,纵坐标轴是y轴,则由以下四条线将整个区域划分为8个区域y=kx、y=x/m、y=-kx和y=-x/m。这里,k和m是正实数,可以取任何值,它们可以彼此相同或不同。在本发明的示例性实施例中,k和m为2。
8个划分的区域中的每一个与一方向类别相应。例如,指示向上的运动矢量的类别UP与由y=kx和y=-kx定义的线划分的区域中的上部区域相应。
实际上,如果存在x轴分量是X_c,y轴分量是Y_c的运动矢量,则通过下面的表1来表示运动矢量的方向类别。
表1-运动矢量的方向类别

如图5的示例所示,运动分类单元113将当前帧中的多个运动矢量51转换成多个运动类别,以将值输出到全局运动判断单元114。
全局运动判断单元114根据从运动分类单元113输出的方向类别来判断当前帧的全局运动类型。在本发明的一示例性实施例中,如图6所示,总共有13种全局运动类型,包括八种平移运动类型、两种旋转运动类型、放大运动类型和缩小运动类型。
具体说来,类型NO_GLOBAL_MOTION指示没有全局运动的帧。类型PAN_RIGHT、PAN_LEFT、PAN_UP和PAN_DOWN分别指示整个帧向右、向左、向上和向下运动。类型TILT_RIGHT_UP、TILT_RIGHT_DOWN、TILT_LEFT_UP和TILT_LEFT_DOWN分别指示图像拍摄装置向右上、右下、左上和左下运动。此外,类型ZOOM_IN和ZOOM_OUT分别指示图像拍摄装置被推进和缩回。类型ROTATE_CW和ROTATE_CCW分别指示以顺时针方向和逆时针方向旋转图像拍摄装置。用值0到14来分配全局运动类型。以将各个类型划分。类型1到8是图像拍摄装置沿一个方向运动的全局运动类型,类型11到14是各个象限显示不同的运动的全局运动类型。可添加其它全局运动类型,并且可修改或删除所提出的类型。
全局运动判断单元114如图7所示将当前帧四等分,以形成第一到第四象限,以便确定当前帧的全局运动类型。全局运动判断单元114确定每个象限的代表方向。代表方向表示方向类别的值中具有最高频率的方向类别所指示的方向。
如果任何象限示出由图5中的标号51指示的运动方向,则由标号52示出每个块的方向类别的值。在这种情况下,可通过将每个块恢复为作为运动块的基本单位的4×4块来获得具有最高频率的方向类别。由于在图5中具有最高频率的方向类别的值是1,所以将相应象限确定为具有向右的代表方向。这仅是示例性实施例,可根据便利或目的通过其它方法来划分和分析帧。此外,除4×4块之外,可将其它的块形状设立为标准。
一帧总共有四种代表方向,全局运动判断单元114基于四种代表方向来判断当前帧所属的全局运动类型。
在13种全局运动类型中,图8示出12种类型,省略了NO_GLOBAL_MOTION。图8所示的箭头方向指示代表方向。将理解,在PAN_RIGHT到TILT_LEFT_DOWN运动的8种类型中,四个象限以相同方向运动,但是其它四种类型的各个象限以不同方向运动。
在图9中表示基于各个方向在全局运动判断单元114中判断全局运动类型的算法。在图9中,quadrant1到quadrant4是指示第一到第四象限的代表方向的参数。在所有象限以相同方向运动的情况下,将该方向识别为全局运动(在一组确定运动方向的参数以及一组运动块中的全局运动类型的参数中,将0到8定义为具有相同方向的值)。在这种情况下,如果必要的话,可调整基准,例如,如果四个象限中的至少三个象限以相同方向运动,则通过灵活的算法来识别全局运动。在类型不与图8的12种全局运动类型中的一个相应的情况下,算法确定其不是全局运动,将全局运动类型设置为NO_GLOBAL_MOTION。
将由全局运动判断单元114判断的当前帧的全局运动类型存储在缓冲器115中,当在下一帧中搜索运动矢量时,使用该全局运动类型。
然后,如果将下一帧F输入运动矢量搜索单元112,则运动矢量搜索单元112从搜索区域设置单元111接收搜索区域。
搜索区域设置单元111基于存储在缓冲器115中的全局运动类型来设置当前运动块的搜索区域。在这种情况下,如果全局运动类型小于8,则整个帧以相同方向运动。因此,将该相同的运动方向应用于所有运动块,以指定优先搜索区域。如果全局运动类型大于10,则运动方向根据运动块的位置而变化。在这种情况下,考虑到所述帧中当前运动块的位置,搜索与当前运动块的位置相应的区域,然后,在所述区域中搜索运动方向。根据运动方向来指定优先搜索区域。如果为运动块设置了搜索区域,则向运动矢量搜索单元112提供该设置的搜索区域。
通常,根据参考帧存在于当前帧之前还是当前帧之后,视频序列的运动对象的方向和运动矢量的方向会彼此相同或相对。如果将存在于当前帧之后的帧设置为参考帧,则运动矢量和对象的实际运动会是基本上彼此类似的。然而,如果将存在于当前帧之前的帧作为参考帧,则运动矢量和对象的实际运动会是彼此相对的。在本发明中指示的所有矢量的方向将运动矢量设置为参考,而不考虑实际运动。事实上,对象的运动方向和由本发明定义的全局运动类型的方向可能会彼此相对。如果基于相同的参考帧来执行一帧中的运动搜索,则不会出现问题。然而,如果一帧中的任一宏块将先前帧设置为参考帧,而另一宏块将下一帧设置为参考帧,则两个宏块之一将被认为具有与由本发发明的全局运动类型定义的代表方向相对的代表方向。
搜索区域设置单元111如现有技术那样选择矩形搜索区域,以像素为单位来表示该区域的宽和长。缺省值可用作搜索区域,或者可将用户输入的值用作搜索区域。
搜索区域设置单元111根据存储在缓冲器115中的先前帧的全局运动类型将搜索区域划分为具有高优先级的优先区域和具有低优先级的其它区域。这是因为当前帧的全局运动类型很可能与先前帧的全局运动类型相同。
图10示出对于图8所示的12种类型中的8种单向类型将搜索区域划分为优先区域和其它区域的方法。由于在所述8种类型中,可认为帧内的所有图像以相同方向运动,所以帧中的搜索区域具有相同的全局运动类型,而不考虑搜索区域的位置。在图10中,方形指示搜索区域,阴影部分指示优先区域。
更具体地说,在全局运动类型是PAN_RIGHT的情况下,全局运动是向右。很可能在运动搜索块的右边区域找到误差最小的点。因此,将搜索原点的右边区域指定为具有优先级的区域,即,优先区域。此外,在全局运动类型是TILT_RIGHT_UP的情况下,由于全局运动为右上,所以将搜索区域的右上区域指定为优先区域。也以相似的方式来指定剩余全局运动类型的优先区域。
如图10所示,优先区域大约是搜索区域的1/2。在这种情况下,优选的是,优先区域至少包含一搜索原点。如图10的虚线所示,可按照下面的方式来指定优先区域优先区域稍微超过搜索区域的1/2。这是因为运动矢量很可能在搜索原点周围。
如图11所示,由于具有全局运动类型中的类型ZOOM_IN、ZOOM_OUT、ROTATE_CW或ROTATE_CCW的帧在每个象限具有不同的代表方向,所以有必要找到搜索区域或运动块所属的象限。
例如,在当前帧20的全局运动类型是ROTATE_CW的情况下,即,如果搜索区域(由黑色矩形指示)或运动块属于第一象限,则将优先区域指定为搜索区域的右上部分。如果搜索区域或运动块属于第二象限,则将优先区域指定为搜索区域的右下部分。如果搜索区域或运动块属于第三象限,则将优先区域指定为搜索区域的左上部分。如果搜索区域或运动块属于第四象限,则将优先区域指定为搜索区域的左下部分。
此外,在具有类型ZOOM_IN、ZOOM_OUT、或RAOTATE_CCW的帧的情况下,在每个象限中,将优先区域指定为不同形状,如图11所示。
在本发明的另一示例性实施例中,可考虑不将当前帧划分为如图11所示的四个象限,而是更细地划分。参照图12,可将当前帧30细分为总共12部分。即,可将当前帧30细分为四个角落部分31、32、33和34,四个边界部分51、52、53和54,以及四个中心部分41、42、43和44。然而,当前帧的细分用于根据先前确定的全局运动类型来确定优先区域。在确定当前帧的全局运动类型期间,如图8所示将当前帧划分为四个象限是足够的。
如果确定了全局运动类型,则可根据有关全局运动类型得知12个部分中的每一个的代表方向,并且可根据代表方向确定搜索区域的优先区域。
在全局运动类型中不管帧的区域而具有固定代表方向的8种类型的情况下,上述的细分是不必要的。然而,由于具有类型ZOOM_IN、ZOOM_OUT、ROTATE_CW或ROTATE_CCW的帧在每个象限具有不同的代表方向,所以有必要确定搜索区域或运动块所属的象限。
图13是示出关于ZOOM_IN、ZOOM_OUT、ROTATE_CW和ROTATE_CCW四种类型,每个部分的代表矢量的示图。将通过图13理解到,四个角落部分和四个中心部分对于每个相应的部分具有相同的代表矢量。
图14示出对于每个部分可不同地指示搜索区域。四个中心部分与四个相应的角落部分具有相同的优先区域。
例如,在当前帧40的全局运动类型是ZOOM_OUT的情况下,即,如果搜索区域(由黑色矩形指示)或运动块属于第一角落部分(当前帧的左上角部分),则将优先区域指定为搜索区域的右下部分。如果搜索区域或运动块属于第二角落部分(当前帧的右上角部分),则将优先区域指定为搜索区域的左下部分。如果搜索区域或运动块属于第三角落部分(当前帧的左下角部分),则将优先区域指定为搜索区域的右上部分。如果搜索区域或运动块属于第四角落部分(当前帧的右下角部分),则将优先区域指定为搜索区域的左上部分。
此外,如果搜索区域或运动块属于第一角落部分和第二角落部分之间的边界部分,则将优先区域指定为下部。如果搜索区域或运动块属于第二角落部分和第四角落部分之间的边界部分,则将优先区域指定为左部。如果搜索区域或运动块属于第三角落部分和第四角落部分之间的边界部分,则将优先区域指定为上部。如果搜索区域或运动块属于第一角落部分和第三角落部分之间的边界部分,则将优先区域指定为右部。
如果剩余搜索区域或运动块属于中心部分,则优先区域与相应角落部分的情况相同。
在先前帧的全局运动类型是NO_GLOBAL_MOTION或当前帧是原始帧的情况下,由于没有预测搜索区域的优先区域的基础,所以搜索区域设置单元111允许运动矢量搜索单元112如现有技术的方法那样对于全部搜索区域搜索运动矢量。
然而,在不存在从先前帧预测的全局运动的情况下,可将本发明应用于当前帧的一部分。参照图15,在对于当前帧50的上半部56完成搜索运动矢量之后,可根据上半部56的代表方向来设置属于下半部57的运动块58的搜索区域。
由于上半部56包括两个象限(第一和第二象限),所以上半部56具有两个代表方向。因此,不设置根据四个代表方向确定的全局运动类型,但是如果两个代表方向一致,则将假设在作为代表方向的相同方向上发生平移。
在两个象限中代表方向一致的情况下,搜索区域设置单元111可通过与图10所述的方法相同的方法来设置属于下半部57的运动块58的搜索区域和优先区域。
图15仅示出一示例性实施例,可采用使用具有指定象限的代表方向来设置属于剩余象限的运动块的搜索区域的其它方法。例如,可根据第一象限的代表方向来设置属于剩余象限的运动块的搜索区域,并且可根据第一和第三象限的代表方向来设置属于第二和第四象限的运动块的搜索区域。
搜索区域设置单元111将关于通过所述算法确定的搜索区域和优先区域的信息输出到运动矢量搜索单元112。可对每个运动块输出所述信息。
参照图2,运动矢量搜索单元112在由搜索区域设置单元111设置的搜索区域之内搜索运动矢量。如果在提供的搜索区域中没有指定附加的优先区域,则运动矢量搜索单元112在矩形搜索区域之内搜索运动矢量。根据搜索运动矢量的方法,如上所述,运动块在参考帧的搜索区域之内运动以获得由此运动块和相应参考帧的图像之间的SAD最小的运动矢量。可由平均绝对差值(MAD)或任何指示两个图像之间的差值的值来代替SAD。
如果将由搜索区域设置单元111提供的搜索区域指定为附加优先区域,则运动矢量搜索单元112优先在优先区域之内搜索运动矢量。结果,如果在优先区域之内找到任何小于指定临界值的SAD,则选择所述矢量来作为运动矢量MV。如果在优先区域之内没有找到小于指定临界值的SAD,则在搜索区域之内的其它区域搜索运动矢量,直到找到小于临界值的SAD。如果在其它区域内找到小于指定临界值的SAD,则SAD最小的点处的矢量被选择为运动矢量MV。
运动矢量搜索单元112将运动矢量(如上所获)提供给运动补偿单元120和运动分类单元113。
运动分类单元113确定提供的运动矢量属于指定数量的方向类别(md_class)中的哪个方向类别。全局运动判断单元114根据所述方向类别来判断全局运动类型(gm_type),并将判断的结果存储在缓冲器115中。并且,存储在缓冲器115中的全局运动类型用于估计将被编码的帧的运动。
运动补偿单元120使用由运动估计单元110提供的运动矢量MV来对参考帧Fr′执行运动补偿,以获得预测帧P。如果存在多个参考帧Fr′,则运动补偿单元对所述多个参考帧执行运动补偿。可将参考帧的每个加权和用作预测帧P。
在参考帧符号Fr′中,r指示参考帧,主要符号指示恢复的帧(即,编码之后解码的帧)。将恢复的帧用作参考帧的方法被称为“闭环编码”,而使用原始帧的方法被称为“开环编码”。在本发明示例性实施例中,将闭环方法作为示例,但是应清楚本发明也可应用于开环编码。
减法器125从当前帧F减去预测帧P,以获得残余信号R,并将获得的残余信号R提供给变换单元130。
变换单元130执行残余信号R的空间变换以产生变换系数RT。可将离散余弦变换(DCT)或者小波变换用作空间变换方法。在使用DCT的情况下,变换系数将是DCT系数,在使用小波变换的情况下,变换系数将是小波系数。
量化单元140对变换系数进行量化。量化是由离散值来近似表示为实值的变换系数的处理。例如,量化单元140通过以下操作来执行量化将实值的变换系数划分为指定的量化步长,将划分的结果四舍五入成整数值。可通过接收反馈来可变地确定量化步长,视频压缩率根据比特流的大小而变化。
将来自量化单元140的量化结果,即,量化系数RQ提供给熵编码单元150和反量化单元160。
反量化单元160对量化的系数进行反量化。反量化处理是使用与在量化处理中所使用的量化步长相同的量化步长来恢复与在量化处理中产生的指数匹配的值的处理。
反变换单元170接收反量化结果,并执行反量化结果的反变换。反变换是与变换处理相反的处理。可将反DCT或反小波变换用作反变换方法。
加法器175将反变换的结果与从运动补偿单元120输出的预测帧P相加以产生恢复的当前帧F’。
缓冲器115存储从加法器175提供的结果。因此,缓冲器115可存储先前恢复的参考帧Fr′,以及恢复的当前帧F’。
熵编码单元150对由运动估计单元110进行运动估计的运动矢量MV和从量化单元140提供的压缩结构RQ进行无损编码,以产生比特流。可将霍夫曼编码、算术编码、可变长度编码或其它方法用作无损编码方法。
可通过以下部件来实现或执行组成图2的视频编码器100的部件设计以执行这里所述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、分立的门或晶体管逻辑装置、分立的硬件部件以及它们的组合。或者,可通过通用处理器(传统处理器)、控制器、微控制器或状态机来实现或执行组成图2的视频编码器100的部件。此外,可通过计算装置的组合来实现处理器,例如,通过DSP和微处理器的组合、若干微处理器、至少一个与DSP核关联的微处理器或其它结构来实现处理器。
图16是示出根据本发明示例性实施例的运动估计方法的流程图。
所述运动估计方法包括根据包含在先前帧中的运动矢量来确定先前帧的全局运动类型(S10),基于所述全局运动类型为包含在当前帧中的指定运动块设置搜索区域(S20),以及在设置的搜索区域之内搜索运动矢量(S30)。
具体说来,运动分类单元113确定先前帧的运动矢量所属的方向类别(S11)。方向类别包括将360度划分为8个部分的8种方向。通过以下四条线来划分8个部分y=kx、y=-kx、y=x/m和y=-x/m。这里,k和m是正实数,可以取任何值,即,它们可以相同或不同。在本发明的示例性实施例中,k和m为2。
然后,全局运动判断单元114确定代表方向类别中属于指定区域的方向类别的代表方向(S12)。所述指定区域表示通过将先前帧划分成4个部分所获得的区域中的任一个。
代表方向表示属于指定区域的方向类别中具有最高频率的方向类别的方向,或者通过运动块的区域加权的具有最高频率的方向类别的方向。
全局运动判断单元114根据代表方向来判断全局运动类型(S13)。全局运动类型可包括八种平移运动类型、两种旋转运动类型、放大运动类型和缩小运动类型。
在操作S21,确定先前帧中是否存在全局运动。在先前帧中存在全局运动的情况下(全局运动类型不是NO_GLOBAL_MOTION),搜索区域设置单元111首先通过用户输入来设置搜索区域,或者将搜索区域设置为缺省值(S22)。
然后,基于全局运动类型在搜索区域中设置优先搜索运动矢量的优先区域(S23)。
在先前帧中不存在全局运动的情况下,搜索区域设置单元111从通过对当前帧的部分(例如,第一和第二象限)的全搜索获得的运动矢量来确定区域的代表方向(S24)。因此,对于当前帧中的其它区域,根据该代表方向来确定优先区域(S25)。
考虑到全局运动类型,优先区域是搜索区域中误差(SAD或MAD)很可能最小的一半,并且还可包括搜索原点。
在操作S31,确定当前运动块中是否存在优先区域。在当前运动块中存在优先区域的情况下,运动矢量搜索单元112在优先区域中搜索运动矢量(S32)。如果没有找到运动矢量,则运动矢量搜索单元112在其它区域中搜索运动矢量(S33)。根据在运动块和与该运动块相应的参考图像之间计算的误差是否小于指定的临界值来确定是否找到运动矢量。
如果在当前运动块中不存在优先区域(在操作S31的“否”),则运动矢量搜索单元112搜索整个搜索区域以找到运动矢量(S34)。
如上所述,与现有技术的全搜索中搜索区域的100%相比,本发明的示例性实施例优先搜索区域的50%以找到运动矢量,由此大大提高了视频编码器的编码速度。
尽管为了示例性目的描述了本发明的示例性实施例,但是本领域的技术人员将理解在不脱离由权利要求所公开的本发明的范围和精神的情况下,各种修改、添加和替换是可行的。
权利要求
1.一种运动估计方法,包括基于先前帧的运动矢量确定先前帧的全局运动类型;基于所述全局运动类型为包括在当前帧中的指定运动块设置搜索区域;以及在所述搜索区域之内搜索运动矢量。
2.如权利要求1所述的运动估计方法,其中,确定先前帧的全局运动类型的步骤包括确定先前帧的运动矢量所属的方向类别;确定代表方向类别中属于指定区域的方向类别的代表方向;以及基于所述代表方向确定所述全局运动类型。
3.如权利要求2所述的运动估计方法,其中,所述方向类别是通过将360度划分为8个部分而形成的8种方向类别之一。
4.如权利要求2所述的运动估计方法,其中,所述指定区域是通过将先前帧划分为4个部分所获得的区域中的至少一个。
5.如权利要求2所述的运动估计方法,其中,所述代表方向是属于指定区域的方向类别中具有最高频率的方向类别的方向。
6.如权利要求2所述的运动估计方法,其中,所述代表方向是属于指定区域的方向类别中通过运动块的区域加权的具有最高频率的方向类别的方向。
7.如权利要求3所述的运动估计方法,其中,通过y=kx、y=-kx、y=x/m和y=-x/m四条线来产生8个部分,其中,k和m是正实数。
8.如权利要求7所述的运动估计方法,其中,k和m等于2。
9.如权利要求1所述的运动估计方法,其中,所述全局运动类型是以下运动类型中的一个八种平移运动类型、两种旋转运动类型、放大运动类型和缩小运动类型。
10.如权利要求1所述的运动估计方法,其中,所述运动块具有以下大小16×16、16×8、8×16、8×8、8×4、4×8或4×4。
11.如权利要求1所述的运动估计方法,其中,为运动块设置搜索区域的步骤包括设置搜索区域;以及基于所述全局运动类型在搜索区域中设置优先搜索运动矢量的优先区域。
12.如权利要求11所述的运动估计方法,其中,优先区域这一半很可能使误差最小。
13.如权利要求12所述的运动估计方法,其中,优先区域包括搜索原点。
14.如权利要求12所述的运动估计方法,其中,误差是在所述运动块和与所述运动块相应的参考帧的图像之间计算的绝对差值和或平均绝对差值。
15.如权利要求11所述的运动估计方法,其中,如果不存在全局运动类型,则为运动块设置搜索区域的步骤还包括确定先前在当前帧的部分中搜索的运动矢量的代表方向;以及根据所述代表方向在搜索区域中确定优先区域。
16.如权利要求15所述的运动估计方法,其中,所述当前帧的部分是第一象限和第二象限。
17.如权利要求11所述的运动估计方法,其中,在搜索区域之内搜索运动矢量的步骤包括在优先区域中搜索运动矢量;以及如果在优先区域中没有找到运动矢量,则在另一区域中搜索运动矢量。
18.如权利要求17所述的运动估计方法,其中,根据在所述运动块和与所述运动块相应的参考图像的图像之间计算的误差是否小于临界值来确定是否搜索到运动矢量。
19.一种视频编码方法,包括基于参考帧获得当前帧的运动矢量;使用所述运动矢量对参考帧执行运动补偿,并产生预测帧;以及对当前帧和预测帧之间的差值进行编码,其中,获得运动矢量的步骤包括基于先前帧的运动矢量确定先前帧的全局运动类型;基于所述全局运动类型为包括在当前帧中的运动块设置搜索区域;以及在设置的搜索区域之内搜索运动矢量。
20.如权利要求19所述的视频编码方法,其中,对当前帧和预测帧之间的差值进行编码的步骤包括对差值进行空间变换以产生变换系数;根据量化步长来量化变换系数以产生量化系数;以及对量化系数执行无损编码。
21.如权利要求19所述的视频编码方法,其中,确定先前帧的全局运动类型的步骤包括确定先前帧的运动矢量所属的方向类别;确定代表方向类别中属于指定区域的方向类别的代表方向;以及基于所述代表方向确定所述全局运动类型。
22.如权利要求19所述的视频编码方法,其中,所述全局运动类型是以下运动类型中的一个八种平移运动类型、两种旋转运动类型、放大运动类型和缩小运动类型。
23.如权利要求19所述的视频编码方法,其中,所述运动块具有以下大小16×16、16×8、8×16、8×8、8×4、4×8或4×4。
24.如权利要求19所述的视频编码方法,其中,为包括在当前帧中的运动块设置搜索区域的步骤包括设置搜索区域;以及基于所述全局运动类型在搜索区域中设置优先搜索运动矢量的优先区域。
25.如权利要求24所述的视频编码方法,其中,在设置的搜索区域之内搜索运动矢量的步骤包括在搜索区域中的优先区域中搜索运动矢量;以及如果在优先区域中没有找到运动矢量,则在另一区域中搜索运动矢量。
26.一种视频编码器,包括运动估计单元,用于根据参考帧获得当前帧的运动矢量;运动补偿单元,用于使用通过运动估计获得的运动矢量来对参考帧进行运动补偿,并产生预测帧;以及编码单元,用于对当前帧和预测帧之间的差值进行编码,所述运动估计单元包括全局运动判断单元,用于基于先前帧的运动矢量确定先前帧的全局运动类型;搜索区域设置单元,用于基于所述全局运动类型设置包括在当前帧中的运动块的搜索区域;以及运动矢量搜索单元,用于在所述搜索区域之内搜索运动矢量。
27.如权利要求26所述的视频编码器,其中,运动估计单元还包括运动分类单元,用于确定先前帧的运动矢量所属的方向类别;以及全局运动判断单元,确定代表方向类别中属于指定区域的方向类别的代表方向,并基于所述代表方向确定全局运动类型。
28.如权利要求26所述的视频编码器,其中,所述全局运动类型是以下运动类型中的一个八种平移运动类型、两种旋转运动类型、放大运动类型和缩小运动类型。
29.如权利要求26所述的视频编码器,其中,运动块具有以下大小16×16、16×8、8×16、8×8、8×4、4×8或4×4。
30.如权利要求26所述的视频编码器,其中,搜索区域设置单元设置搜索区域,并基于所述全局运动类型在搜索区域中设置优先搜索运动矢量的优先区域。
31.如权利要求30所述的视频编码器,其中,运动矢量搜索单元在搜索区域中的优先区域中搜索运动矢量,并且如果在优先区域中没有找到运动矢量,则在另一区域中搜索运动矢量。
32.如权利要求26所述的视频编码器,其中,编码单元包括变换单元,用于对所述差值执行空间变换并产生变换系数;量化单元,用于根据指定的量化步长来量化变换系数,并产生量化系数;以及熵编码单元,用于对量化系数执行无损编码。
33.一种记录用于执行运动估计方法的计算机可读程序的记录介质,所述运动估计方法包括基于先前帧的运动矢量确定先前帧的全局运动类型;基于所述全局运动类型为包括在当前帧中的运动块设置搜索区域;以及在所述搜索区域之内搜索运动矢量。
全文摘要
提供一种用于提高视频压缩速度的运动估计方法,以及一种使用该方法的视频编码器。所述运动估计方法包括根据先前帧的运动矢量确定先前帧的全局运动类型;基于所述全局运动类型为包括在当前帧中的指定运动块设置搜索区域;以及在所述设置的搜索区域之内搜索运动矢量。
文档编号H04N7/26GK1925617SQ20061012655
公开日2007年3月7日 申请日期2006年8月28日 优先权日2005年8月29日
发明者金珍英, 宋孝晶, 朴峻成 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1