以提高的压缩效率将视频信号编码的方法和设备的制作方法

文档序号:7962465阅读:120来源:国知局
专利名称:以提高的压缩效率将视频信号编码的方法和设备的制作方法
技术领域
根据本发明的设备和方法涉及将视频信号编码,更具体地讲,涉及在子像素的运动估计中利用模型切换(model switching)以提高的压缩效率将视频信号编码的设备和方法。
背景技术
在视频压缩技术中,为了利用相邻帧的时间相似性来压缩当前帧的宏块,在前面的帧中搜索最相似的区域。这个过程称作运动估计过程。在与运动估计过程相关联的前面的帧中,指向通过运动估计过程得到的最相似区域的矢量被称作运动矢量。为了确定在当前图像的块与相邻块之间的区域相似性,检测区域之间的差异,该差异被称作块匹配误差(block match error)。在检测块匹配误差的过程中,运用各种技术,包括绝对差和(SAD)技术、平均绝对差(MAD)技术、均方差(MSE)技术等。当两个块之间的差变小时,这两个块被认为越相似。
同时,为了提高视频压缩效率,采用以子像素比如半像素或四分之一像素为单位的运动矢量。图1示出了用于各整像素(integer pixel)的半像素计算方法。
图1示出了传统的整像素和半像素。可根据如下给出的等式1利用整像素(A、B、C、D)来得到半像素(e、f、g、h)。
e=Af=(A+B+1)/2
g=(A+C+1)/2h=(A+B+C+D+2)/4半像素值可通过相邻整像素的值来估计,四分之一像素值可通过搜索相邻半像素或相邻整像素的值来估计。随着半像素运动矢量或四分之一像素运动矢量的精度提高,运动估计所需的搜索点的数目增加。因此,计算量急剧增大。
为了解决这种问题,已经提出了基于模型的子像素运动矢量估计技术,在该技术中,利用与整像素运动矢量对应的块的模型来计算与子像素运动矢量对应的相邻点之间的误差,而不是计算子像素运动矢量的块误差。
然而,这种基于模型的子像素运动矢量估计技术根据所压缩的视频而表现出不同的精度。因此,为了获得较高的压缩效率应该使用合适的模型。由于模型之间的误差根据视频信号的特性而不同,所以使用单个模型受到限制。因此,为了提高压缩效率,需要使用精度较高的模型。

发明内容
本发明提供了一种方法和设备,用于通过选择将被用于子像素运动估计中的多个模型中的一个模型来以提高的压缩效率将视频信号编码。
本发明还提供了一种用于通过根据视频信号特性自适应性地选择模型来提高比特率的方法和设备。
根据下面的描述,本发明的上述方面和其他方面对于本领域的技术人员将变得清楚。
根据本发明的一方面,提供了一种在子像素的运动估计中利用模型切换来提高压缩效率的编码方法,该编码方法包括得到块上存在的像素的运动矢量;利用运动矢量的值来产生多个运动估计模型;将多个运动估计模型的估计误差相互做比较;根据对估计误差的比较来选择多个运动估计模型中的一个模型,并利用所选择的运动估计模型来进行子像素运动估计。
根据本发明的另一方面,提供了一种在子像素的运动估计中利用模型切换来提高压缩效率的编码器,该编码器包括像素计算器,得到在块上存在的像素的运动矢量;模型计算器,利用从像素计算器得到的运动矢量的值来产生多个运动估计模型;模型选择器,将多个运动估计模型的估计误差相互做比较,并根据对估计误差的比较来选择多个运动估计模型中的一个模型;运动估计器,利用所选择的运动估计模型来进行子像素运动估计。


通过参照附图的对本发明优选实施例的详细描述,本发明的以上和其它特征和优点将变得更清楚,在附图中图1示出了传统的整像素和半像素;图2A和图2B示出了用于利用整像素的半像素运动估计或四分之一像素运动估计的示例性模型;图3是示出了根据本发明示例性实施例的利用估计模型来计算子像素的运动矢量的过程的示例的流程图;图4是示出了根据本发明示例性实施例的视频编码器的方框图;图5示出了根据本发明示例性实施例的通过计算整像素运动矢量而得到的线性(LIN)模型和二次(QUAD)模型;图6示出了根据本发明示例性实施例的基于比特率的提高的视频的压缩性能。
具体实施例方式
通过参照下面对示例性实施例和附图的详细描述,本发明的优点和特征以及实现本发明的方法会更容易理解。然而,本发明可以许多不同的形式来实施,并不应该被理解为受限于这里提出的示例性实施例。相反地,提供这些示例性实施例使得本公开将是彻底和完全的,并将本发明的构思充分传达给本领域的技术人员,本发明将仅由权利要求来限定。在整个说明书中,相同的标号表示相同的元件。
在下文中,参照根据本发明示例性实施例的方法的流程图来描述本发明。应该理解,流程图的每一个方框和在流程图中的方框的组合可由计算机程序指令来实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或者其他可编程数据处理设备的处理器以产生设备,从而经计算机或者其他可编程数据处理设备的处理器执行的指令创建用于实现在一个流程图方框或多个流程图方框中指定的功能的手段。这些计算机程序指令也可被存储在可指导计算机或者其他可编程数据处理设备以特定方式工作的计算机可用存储器或计算机可读存储器中,以便存储在计算机可用存储器或计算机可读存储器中的指令生产包括执行在一个流程图方框或多个流程图方框中指定的功能的指令手段的产品。计算机程序指令也可被下载到计算机或其他可编程数据处理设备以使得一系列操作步骤在计算机或其他可编程设备上被执行以产生计算机执行的过程,从而在计算机或其他可编程设备上执行的指令提供用于实现在一个流程图方框或多个流程图方框中指定的功能的步骤。
流程图中的各方框可表示模块、程序段或代码的一部分,各方框包括用于实现特定逻辑功能的一个或多个可执行的指令。同时应该注意的是,在一些可选的实施中,在方框中表示的功能可能次序颠倒地发生。例如,根据所包含的功能性,连续示出的两个方框实际上会几乎同时地进行或者这些方框有时会以相反地顺序执行。
图2A和图2B示出了用于利用整像素的半像素运动估计或四分之一像素运动估计的示例性模型。
在图2A中示出的线性(LIN)模型是用于利用等式2中提供的线性(LIN)等式模型来估计子像素之间的误差的模型。
ε(x)=a|x-b|+c,a>0,|b|<0.5,c>0,然而,图2B中示出的二次模型是用于利用等式3中提供的二阶或二次(QUAD)等式模型来估计子像素之间的误差的模型。
ε(x)=ax2+bx+c,(a>0)。
由于图2A或图2B中示出的基于模型的估计方法根据被压缩的视频而具有不同的精度,所以需要自适应性地采用合适的模型来获得较高的压缩效率。例如,图2A示出了被估计为最优值的运动矢量1.5,而图2B示出了被估计为最优值的运动矢量1.0。此时,如果各模型的误差值被估计,那么利用具有较高精度的模型来提高压缩效率将是可能的。
为了计算半像素的运动矢量,可以通过内插全像素(整像素)的误差标准值来检测半像素的误差标准值。由于运动矢量通常存在于水平方向和竖直方向,所以可以在这两个方向都进行运动矢量估计。
例如,可使用图2A中示出的LIN模型或和图2B中示出的QUAD模型。虽然可以在数学上明了这样的估计模型,但是这样的估计模型的压缩效率会根据编码的条件而不同。参照图2A和图2B,可基于0、1、2的值来实现模型。因此,估计模型值被编码,随后被发送到解码器。
当利用模型来计算子像素比如半像素或四分之一像素的值时,子像素精度会取决于所选择的模型。此外,由于精度也取决于输入数据,所以选择哪一个模型是十分重要的。
因此,如图3中所示,为了搜索子像素运动矢量,自适应性地进行模型切换。然后,从较高精度的模型得到的子像素运动矢量被编码。
图3是示出了根据本发明示例性实施例的利用估计模型来计算子像素运动矢量的过程的示例的流程图。
在操作S310中,得到参考像素的运动矢量。例如,在得到半像素的运动矢量的情况下,得到环绕作为参考像素的整像素的运动矢量。在得到四分之一像素的运动矢量的情况下,得到环绕作为参考像素的半像素或整像素的运动矢量。由于运动矢量可以由x方向上的分量和y方向上的分量来表示,所以图3中示出的程序可分别被应用到x和y。
在操作S320中,利用x值和y值,即得到的参考像素的运动矢量来产生估计模型,即第一模型和第二模型。如图2A和图2B中所示,估计模型可以是LIN模型和QUAD模型。为了产生估计模型,利用可以被检索的整像素的x和y矢量值可以应用用于各个模型的等式。
可以以广泛的各种方式来使用估计模型,并且可以产生两个或更多个估计模型。同时,如果单个的估计模型通过被设置两个或更多个参数来产生略微不同的两个或更多个模型,那么,即使是单个的估计模型也可以被认为是独立的两个估计模型。
在产生两个或更多个模型之后,将在各个模型中被搜索的子像素运动矢量被估计。参照图2A和图2B中示出的曲线图,利用整像素运动矢量0、1、2可以计算运动矢量0.5和1.5的误差。然后,在操作S330中,将第一模型的估计误差和第二模型的估计误差相互做比较。在操作S340中,确定第一模型的估计误差是否小于第二模型的估计误差。如果确定了第一模型的估计误差小于第二模型的估计误差,那么在操作S350中在进行子像素运动估计的过程中选择第一模型,其中,第一模型的估计误差小于第二模型的估计误差表明第一模型具有较高的精度。
如果确定了第一模型的估计误差大于第二模型的估计误差,那么在操作S360中在进行子像素运动估计的过程中选择第二模型,其中,第一模型的估计误差大于第二模型的估计误差表明第二模型具有较高的精度。
对模型选择的确定可以针对各子像素、宏块或子块来进行。然而,如果对模型选择的确定经常用来提高精度,那么计算量将过度增大。因此,编码条件的优化折衷(trade-off)取决于计算量和精度。
在图3中,描述了模型的示例性过程。例如,处理或产生模型意味着根据给定的x值来计算等式2和等式3中的参数并得到可应用的等式。所以,需要计算等式2和等式3中的参数a、b和c。
首先,可根据等式2来实现LIN模型。在等式2中,x表示值0、1或-1,而整数位置的MAD误差值ε(-1)、ε(0)、ε(1)可以在等式4中表达。
ε(-1)=a+ab+cε(0)=ab+c,ifb<0;-ab+c,otherwiseε(1)=a-ab+c矢量E、X、A是计算a、b、c所必需的。在下面的等式5中定义这些矢量。用具有为-1、0、1的x值的MAD误差值来表示矢量E,用参数a、ab、c的矩阵来表示矢量A。矩阵的关系可通过E=XA来表达。
E=[ε(-1) ε(0) ε(1)]X=1110111-11]]>A=[a ab c]为了推导等式2,可用等式6来描述矢量矩阵。
A=X-1E=INV(X)E]]>=1-10120-1212112ϵ(-1)ϵ(0)ϵ(1),ifb<0]]>
0-1112012121-12ϵ(-1)ϵ(0)ϵ(1),otherwise]]>可根据等式7来得到模型参数。
if b<0,a=ε(-1)-ε(0)b={12ϵ(-1)-12ϵ((1)}/a]]>c=12ϵ(-1)+ϵ(0)+12ϵ((1)]]>otherwisea=-ε(0)+ε(1)b={12ϵ(-1)-12ϵ((1)}/a]]>c=12ϵ(-1)+ϵ(0)-12ϵ((1)]]>由于利用等式7来计算a、b和c的值,所以可产生LIN模型。此外,在其他位置的误差值比如ε(-2)、ε(2)也可根据等式8利用LIN模型来计算。
ε(-2)=2a+ab+cε(2)=2a-ab+c可以以与上述过程类似的方式来得到QUAD模型。也就是说,可通过在等式3中将-1、0、1应用到x值来得到整数位置处的误差值,如等式9所给出。
ε(-1)=a-b+cε(0)=c
ε(1)=a+b+c在等式5中给出的矢量E、X和A在等式10中被定义。
E=[ε(-1) ε(0) ε(1)]X=1-11001111]]>A=[a b c]为了推导等式3,可用等式11来描述矢量矩阵。
A=X-1E=INV(X)E]]>=12-112-12012010ϵ(-1)ϵ(0)ϵ(1)]]>可根据下面的等式12来得到模型参数。
a=12ϵ(-1)-ϵ(0)+12ϵ(1)]]>b=-12ϵ(-1)+12ϵ((1)]]>c=ε(0)被计算的a、b、c值用于得到等式3中所表达的QUAD模型,而其他位置处的误差值比如ε(-2)、ε(2)也可以根据下面的等式13利用QUAD模型来产生。
ε(-2)=4a-2b+cε(2)=4a+2b+c上述的过程只是被作为得到LIN模型和QUAD模型的示例性实施例来提供,根据所使用的模型,可以对该过程进行改变或更改。
图4是示出了根据本发明实施例的视频编码器400的方框图。
将不给出对视频信号进行编码和量化的图4中示出的视频编码器400和其构造的详细解释。视频编码器400包括整像素计算器410,作为示例性像素计算器,计算块中存在的像素的运动矢量;多个模型计算器421、422...、429,利用整像素计算器410的运动矢量值来计算模型;模型选择器430,比较由模型计算器421、422...、429计算出的各个模型之间的估计误差,并选择具有较小的估计误差的模型;运动估计器450,根据所选择的模型来进行运动估计。
整像素计算器410从输入的视频信号计算整像素的运动矢量。然后,整像素的运动矢量被用于估计子像素运动矢量。当然,整像素计算器410也计算半像素的运动矢量,并根据子像素的类型来产生用于估计四分之一像素运动矢量的数据。也就是说,整像素计算器410是提供估计较小单位的子像素运动矢量所必需的数据的整像素计算器的示例。
第一模型计算器421、第二模型计算器422...、第N模型计算器429利用来自整像素计算器410的计算结果产生估计模型。此外,第一模型计算器421、第二模型计算器422...、第N模型计算器429利用估计模型来计算将得到的半像素的误差。可通过编码器内的模型来单独地实现各个模型计算器。此外,可以存在能够利用输入的整像素信息来计算多个模型的模型计算器。
模型选择器430将来自计算出的多个模型的运动矢量中的每个之间的误差相互比较,并选择具有最小误差的模型。随后当估计半像素运动矢量和四分之一像素运动矢量时,将采用具有最小误差的所选择的模型。
运动估计器450根据所选择的模型来估计子像素比如半像素或四分之一像素的运动矢量。根据所选择的模型,运动估计器450可以按帧、宏块或子块来进行运动估计。
图5示出了根据本发明示例性实施例的通过计算整像素运动矢量得到的线性(LIN)模型和二次(QUAD)模型。在本发明的示例性实施例中,可选择两个模型中具有较小误差的一个。dm表示估计的值与通过实际模型的整像素搜索计算出的值之间的差,m表示各模型。这里,满足条件m∈{1=LIN,2=QUAD}。
如图5中所示,可以在下面的等式14中表示差dm、dm-和dm+。

dm=abs(dm-)+abs(dm+)=|y(-2)-y(-2)|+|y(2)-y(2)|模型切换可以如等式15所表示的。
m=argm∈{1=LIN,2=QUAD}min(dm)]]>在当前位置选择具有最小差的模型,然后进行估计过程。
除了LIN模型和QUAD模型之外,多个模型中具有最小差的任意一个可用于运动估计。此外,可以按帧、宏块或子块来进行处理时间内的运动估计。
图6示出了根据本发明示例性实施例的基于比特率的提高的视频的压缩性能。参照图6,对于LIN模型和QUAD模型中的每个,视频数据分别具有不同的比特率。例如,虽然与当利用QUAD模型时的情况相比,当利用LIN模型时的情况下foreman视频和carephone视频表现出较高的比特率,但是,与当利用LIN模型时的情况相比,当利用QUAD模型时的情况下mobile视频和container视频表现出较高的比特率。因此,根据本发明的示例性实施例,可保持恒定的比特率。
如上所述,本发明提供了一种用于通过在估计子像素运动矢量的多个模型中选择一个模型来将视频信号编码的设备和方法。
此外,本发明使得根据视频信号的特性来自适应性地选择模型,从而提高压缩效率。
虽然已经示出和描述了本发明的示例性实施例,但是本发明不限于所描述的实施例。本领域的技术人员应该理解,在不脱离本发明的原理和精神的情况下可以对所述实施例做改变,其中,本发明的范围由权利要求及其等同物来限定。
权利要求
1.一种在子像素的运动估计中利用模型切换的编码方法,所述编码方法包括得到块上存在的像素的运动矢量;利用所述运动矢量的值来产生多个运动估计模型;将所述多个运动估计模型的估计误差相互做比较;根据对所述估计误差的比较来选择所述多个运动估计模型中的一个模型,并利用所选择的运动估计模型来进行子像素运动估计。
2.如权利要求1所述的编码方法,其中,在所述多个运动估计模型中,所选择的运动估计模型具有最小的估计误差。
3.如权利要求1所述的编码方法,其中,所述块是宏块或子块。
4.如权利要求1所述的编码方法,其中,所述多个运动估计模型包括线性模型和二次模型中的至少一个。
5.如权利要求1所述的编码方法,其中,当所述像素是整像素时,所述子像素是半像素或四分之一像素。
6.如权利要求1所述的编码方法,其中,当所述像素是半像素时,所述子像素是四分之一像素。
7.一种在子像素的运动估计中利用模式切换的编码器,所述编码器包括像素计算器,得到在块上存在的像素的运动矢量;模型计算器,利用从所述像素计算器得到的运动矢量的值来产生多个运动估计模型;模型选择器,将所述多个运动估计模型的估计误差相互做比较,并根据对所述估计误差的比较来选择所述多个运动估计模型中的一个模型;运动估计器,利用所选择的运动估计模型来进行子像素运动估计。
8.如权利要求7所述的编码器,其中,在所述多个运动估计模型中,所选择的运动估计模型具有最小的估计误差。
9.如权利要求7所述的编码器,其中,所述块是宏块或子块。
10.如权利要求7所述的编码器,其中,所述多个运动估计模型包括线性模型和二次模型中的至少一个。
11.如权利要求7所述的编码器,其中,当所述像素是整像素时,所述子像素是半像素或四分之一像素。
12.如权利要求7所述的编码器,其中,当所述像素是半像素时,所述子像素是四分之一像素。
全文摘要
本发明提供了一种在子像素的运动估计中利用模型切换来提高压缩效率的编码方法和编码设备。该编码方法包括得到在块上存在的像素的运动矢量;利用运动矢量的值来产生多个运动估计模型;将多个运动估计模型的估计误差相互做比较;根据估计误差的比较来选择具有较小的估计误差的一个运动估计模型;利用所选择的运动估计模型来进行子像素运动估计。
文档编号H04N7/26GK1882085SQ20061008715
公开日2006年12月20日 申请日期2006年6月13日 优先权日2005年6月14日
发明者权宁圭, 白贤基 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1