用于图像运动预测的方法、装置及计算机程序产品的制作方法

文档序号:7990247阅读:126来源:国知局
用于图像运动预测的方法、装置及计算机程序产品的制作方法
【专利摘要】视频处理系统、方法以及计算机程序存储设备协作来提供资源和性能高效的子像素运动搜索操作。使用实时按需计算,相对于图像序列中的另一幅图像提供一幅图像上的子像素位置的近似是可能的。然后,用于为编码过程设置运动矢量的子像素位置可以使用相对于传统技术减少的处理和存储器资源来确定。并且,通过随后对较早标识出的子像素位置执行全编码成本分析并保持对差异的跟踪,可以通过将前述差异应用于后续的图像帧来动态地提高插值精度。
【专利说明】用于图像运动预测的方法、装置及计算机程序产品
【技术领域】
[0001]本公开涉及在包括视频系统、计算机程序产品和方法的领域内的进步,并特别地涉及在数字视频系统、软件使能的设备和方法中的视频压缩/解压缩。
【背景技术】
[0002]本文提供的“背景”描述是为了一般地呈现本公开的上下文的目的。在该背景部分描述的范围内,由本发明人提供的洞察以及在申请时不能被限定为现有技术的说明书的各方面,既不明示也不暗示地被认作现有技术。
[0003]运动图片的实时传输在诸如视频会议、“网络会议”、电视(TV)广播和视频电话之类的多种应用中被采用。
[0004]然而,表示运动图片牵涉到大量数字形式的信息,并通过以8位(I字节)表示图片(或图像帧)中的每个图片元素(像素)来描述。对未压缩的视频数据的汇集导致非常大的比特量,并因此,由于有限的带宽而需要大的带宽分配来在传统的通信网络上进行实时传输。
[0005]由于连续帧之间的图像中的重大冗余,数据压缩被自由地应用于实时视频传输应用中。然而,数据压缩可能损害图片质量,所以继续做出持续的努力以开发出允许通过带宽有限的资源来实时传输高质量视频的数据压缩技术。
[0006]在视频压缩系统中,一个目标是以尽量少的“容量”表示视频信息,其中容量通常是以比特被测量为常数值或比特/时间单位。通过最小化比特,需要被传输的比特量减少了,因此,需要来支持视频数据的实时传输的通信资源的量也减少了。
[0007]最常见的视频编码方法是在MPEG* (例如,MPEG2和MPEG3)和H.26* (例如,H.263和H.264)标准中描述的。根据这些标准,视频数据在传输前要经历四个主要的过程,即预测、变换、量化和熵编码。
[0008]预测过程显著地减少要被传输的视频序列中每帧所需的比特数。它利用序列中的部分与序列中其它部分的相似性。解码比特流的解码器具有辅助解码过程的边信息(sideinformation)。该边信息对编码器和解码器都是已知的,所以只有差异需要被传输。通常,这一差异需要比完整图像少得多的容量来对其进行表示。该预测的运动估计方面主要基于来自先前重建的图片的图片内容,其中内容的位置是由运动矢量定义的。尽管块的大小可能变化,但是预测过程通常是对方形块大小(例如,16X16像素)执行的。
[0009]在典型的视频序列中,当前块“M”的内容会类似于先前解码的图片中相应的块。如果自先前解码的图片起没有变化出现(即,新帧内的图像与前一帧内的图像相同),则“M”的内容将等于该先前解码的图片中的相同位置的块。在其它情况中,图片中的对象可能在帧之间被移动,从而使得M的内容更类似于先前解码的图片中的不同位置的块。这样的运动由运动矢量(V)表示。作为示例,运动矢量(3 ;4)表示M的内容自先前解码的图片向左移动了 3个像素并向上移动了 4个像素。为提高精度,该矢量也可以包括需要在像素间插值的小数。
[0010]在H.262,H.263、MPEGl、MPEG2中,该同一概念被扩展从而使得运动矢量也可以取1/2像素值。那么,矢量分量5.5意味着运动是相对于5和6像素之间的中点的。更具体地,预测是通过在表示运动5的像素和表示运动6的像素之间取平均值而得到的。由于对2个像素进行操作,这一预测按照惯例是利用2-抽头滤波器执行的,以得到对该两个像素之间的像素的预测。由于滤波器操作能够由脉冲响应定义,因此对2个像素取平均值的操作能够以(1/2,1/2)的脉冲响应表达。类似地,对4个像素取平均值意味着(1/4,1/4,1/4,1/4)的脉冲响应。
[0011]取平均值的目的是以1/2像素的精度定义图片内容的运动,这与只对整数像素进行操作的编码器相比提供了改进的编码效率。
[0012]在MPEG4和H.264/AVC中,编码方法在运动分辨率和对于每一插值的像素数方面都有所改进。这些方法使用1/4像素精度的运动补偿预测。甚至1/8精度也被定义了,但未被包括在任何配置简档内。
[0013]在图1中示出了整数和分数像素位置(为简单起见,仅在像素A和像素E之间示出了插值)。位置A、E、U、Y表示整数像素位置,且A”、E’、A’和E”表示A-E线上的另外的整数位置。c、k、m、0、w表示半像素位置。在这些位置的内插值是通过使用操作于整数像素值的、具有脉冲响应(1/32,-5/32,20/32,20/32,-5/32,1/32)的6-抽头滤波器得到的。作为示例,c是通过下面的表达式计算的,该表达式表示滤波器:
[0014]c=l/32.A" -5/32.E,+20/32.A+20/32.E-5/32.A,+1/32.E"
[0015]该滤波器是按适用条件水平地或垂直地操作的。此外,为得到m的值,该滤波器不操作于整数值,而是操作于另一方向上已经被插值的值。其余的位置是通过对各整数和半相邻像素位置取平均得到的:
[0016]b= (A+c) /2, d= (c+E) /2, f= (A+k) /2, g= (c+k) /2, h= (c+m) /2, i= (c+o) /2, j= (E+o) /2
[0017]1= (k+m) /2, n= (m+o) /2, p= (U+k) /2, q= (k+w) /2, r= (m+w) /2, s= (w+o) /2, t= (Y+o)/2.[0018]图2是涉及子像素插值的传统运动估计过程的流程图。该过程开始于步骤SI,其中多抽头滤波器被用于对两个像素执行半像素插值。经插值的半像素在步骤S2中被存储在缓冲存储器。随后过程前进到步骤S3,其中四分之一像素插值通过对各整像素位置和半像素位置取平均值被执行。随后,经插值的四分之一像素在步骤S4中被存储。然后在步骤S5中对是否所有的像素都已经被分析进行询问。如果对步骤S5中的询问的响应是肯定的,则过程前进到步骤S6,其中最佳像素或子像素被选择。在本上下文中“最佳像素或子像素”是产生最低成本的像素或子像素(以比特来测量)。如果对步骤S5中的询问的响应是否定的,该过程返回到步骤SI,其中候选块中的其它像素被分析,并执行步骤SI到S4。一旦最佳像素或部分像素在步骤S6中被选择为用于标识从一帧到下一帧的运动矢量的最佳像素或子像素,则过程前进到步骤S7,其中所计算并存储的经插值的半像素值和四分之一像素值被下一巾贞覆写(over written)。随后该过程结束。

【发明内容】

[0019]下面的段落已经通过一般介绍的方式被提供,并不打算限制所附权利要求的范围。所述实施例,以及进一步的优点,将通过参照下面的详细描述并结合附图被最好的理解。[0020]本发明人认识到确定子像素插值平面的传统方法是基于多个存储器读/写周期和不用的假设计算的,假设计算增加处理器和存储器需求而没有在子像素平面运动矢量探测方面产生相应的改进。而且,半、四分之一或更精细的子像素插值平面是在包含于帧缓冲器中的数据的不同传递中产生的。随后,运动估计过程搜索这些平面以确定最佳运动矢量。然而,这种多步骤过程需要计算许多从不使用的插值位置,并因此对系统施加了不必要的时间延迟和处理器消耗需求。另外,对大量的插值像素的计算需要相应量的帧缓冲器容量来保存中间结果直到这些结果随后能够被挑选以找到最佳结果为止,从而对系统存储器容量施加了进一步的需求。
[0021]随着在当前和新兴的视频应用中视频帧的分辨率的增加,上面讨论的传统的运动搜索过程将导致更加膨胀的处理器使用和存储器使用需求。
[0022]鉴于识别出了传统方法的局限,本发明人给出动态地(“实时按需”(on the fly))计算插值子像素位置并判决结果是否足够的方法。如果真实的位置和近似的位置之间的偏差(deviation)低于预定的动态阈值,则子像素位置被认为是可接受的。
[0023]通过实时按需地计算插值像素位置,不必计算冗余的子像素位置,避免在存储器缓冲区的多次传递中对子像素位置的中间存/取,这继而带来较低的处理和存储器容量需求。
【专利附图】

【附图说明】
[0024]对本公开及其许多伴随的优点的更完整的体会将容易地被获得,当结合附图考虑时,通过参照下面的详细的描述,其将变得更好理解,在附图中:
[0025]图1是用于在连续的图像间指定运动矢量的子像素布局的示例。
[0026]图2是根据传统实践的一过程的流程图,该过程对所有的子像素位置计算并存储子像素内插值来作为后面选择最佳子像素位置的前提,但是需要对存储器缓冲区的多次传递。
[0027]图3是根据本公开的包括运动估计功能的视频编码器的框图。
[0028]图4是包括使用根据本公开执行的运动估计操作来执行图像的图像重建的能力的视频解码器的框图。
[0029]图5是用于执行动态子像素估计计算的子像素布局。
[0030]图6是根据至少一个公开的实施例执行的实时按需运动矢量搜索过程的流程图。
[0031]图7是根据至少一个公开的实施例执行的另一可选的过程的流程图。
[0032]图8是可以容纳如本文所述的动态运动估计装置、计算机程序产品及过程的计算机实施的视频会议端点的框图。
具体实施例
[0033]关于下面的描述、所附权利要求和附图,本发明的这些以及其它特征、方面和优点
将变得更好理解,其中:
[0034]图3是示出了涉及四个主要的编码过程的处理流程的框图。当前帧和一个或多个参考帧被输入预测处理器I。预测处理器I包括帧内预测处理路径3和包括实时按需运动估计处理的运动估计处理路径5,对它们的选择是由开关7控制的。帧内预测处理被选择用于在当前图像帧内发现相似之处,并因此被称为“帧内”预测。运动估计具有时间分量,并因此涉及连续帧之间的分析,被称为“帧间”(inter)预测。
[0035]在进行核心编码11之前,来自开关7的数据输出在组合器9与当前帧的像素相组合,核心编码11包括变换过程13 (通常涉及速率失真控制)。随后经变换的数据在量化器15进行量化,并随后到熵编码器17。熵编码去除冗余而不丢失信息,并被称为无损编码过程。接着,编码后的数据在比特流中被发送之前通过分组化器19被布置在网络分组中。
[0036]图4是示出了根据一个实施例的解码器设备内的处理流程的框图。将来自编码器的输入比特流应用到去分组化器和解码器22,去分组化器和解码器22在将数据发送到逆量化器24之前将数据解分组。逆量化器24在提供在量化器15 (图3)中执行的量化的逆转时做出最大的努力。逆量化器24的输出被施加到逆整数变换26,逆整数变换26对在视频编码器(图3)中执行的整数变换执行逆转。逆整数变换26使用与变换矩阵中相同的矢量来得出最初被施加到编码器中的变换矩阵的原始残留数据。随后使用运动补偿输入(矢量)对残留数据进行重建操作以产生输出视频流。
[0037]现在返回到图3中的编码器,本发明人认识到,与用于传统方法中的计算上更昂贵的多抽头FIR滤波器相比,容易计算的、双线性、实时按需(或动态)计算能够被用于在压缩中具有有限损耗的视频编码器的运动矢量搜索中。对于实际的实施,由于对存储器和处理器的使用都大幅降低,这大大简化了编码过程。与在选择最佳像素和子像素位置前针对多个像素和子像素位置来提前执行多抽头滤波器计算并将结果保存在存储器中的传统方法相对照,“实时按需”(On the fly)指的是在需要时执行计算。
[0038]使用标准多抽头FIR滤波器计算插值像素位置时的代价是可能需要很多昂贵的中间步骤来获得所需的结果。于是,益处被基础设施和处理负荷成本盖过了。作为替代方案,正如本文所公开的,可以通过使用基于处理器的双线性平均过程来做出对插值像素位置的近似,在该基于处理器的双线性平均过程中,计算变得快速且高效。一旦具有最小近似“成本”的运动矢量被确定,则随后实际的插值能够使用标准多抽头FIR滤波器针对最佳像素(或候选最佳像素的小子集)被执行。最小成本是近似的,因为对找到具有最小成本的位置的保证需要计算上昂贵的全搜索。因此,以低于所定义阈值的局部最小值来做出合理的近似。
[0039]然而,所增加的插值步骤的代价是最小的,因为这是在运动搜索中的大量的成本计算被执行之后进行的。正如将被讨论的,可以根据例如绝对差值之和(SAD)来测量成本。
[0040]这一方法的主要优点是在大多数情况下压缩效率的损耗是较小的,S卩,粗略双线性插值位置中的搜索给出了对最佳运动矢量的出乎意料地好的估计,并且降低存储器和处理器使用的优势变得势不可挡。
[0041]另一个特征是,由于双线性近似的使用,能够回收压缩效率的损失的一部分。运动搜索算法通常使用SAD作为对原始块与运动补偿块的相互性的度量。将被用于SAD中的措施是将重建错误或失真(D)与对块编码所需的比特(R)相组合。在一些H.264过程中,最佳编码模式的搜索是在下面的章节中指示的2个步骤中完成的。
[0042]假设一个块的未编码的像素为0(i,j),并且重建的像素为O’ (i, j)。对于帧间预测,针对每个位移矢量来计算下述第一成本函数:
【权利要求】
1.一种视频编码器,包括: 接口,所述接口被配置来接收来自参考图像的信息和一图像的像素;以及 处理器,所述处理器被配置来执行子像素搜索,所述子像素搜索包括 在所述像素上执行多个实时按需双线性计算以生成近似插值子像素值,以及 将所述近似子像素与阈值相比较,以标识出与所述近似插值子像素值的最低成本子像素相对应的运动矢量。
2.如权利要求1所述的视频编码器,其中,所述处理器被配置来将所述近似插值子像素与固定的阈值相比较。
3.如权利要求1所述的视频编码器,其中,所述处理器被配置来将所述近似子像素值互相比较以标识出所述最低成本子像素。
4.如权利要求1所述的视频编码器,其中,所述成本是所述图像帧中的所述各子像素与来自所述参考帧的对应子像素之间的绝对差值之和的函数。
5.如权利要求1所述的视频编码器,其中 所述处理器还被配置来在所述处理器完成所述比较后,使用多抽头滤波器确定所述最低成本子像素的实际成本。
6.如权利要求5所述的视频编码器,其中 所述处理器被配置来跟踪在所述比较中确定的所述最低成本子像素和使用所述多抽头滤波器确定的所述最低成本子像`素之间的成本差异。
7.如权利要求6所述的视频编码器,其中,所述处理器通过将所述差异应用于后面图像中的具有与由所述处理器在所述比较中确定的所述最低成本子像素相对应的子像素位置的最低成本子像素,来减少对于所述后面图像的运动矢量搜索中的插值偏倚。
8.如权利要求1所述的视频编码器,其中,所述处理器被配置来使用双线性平均指令执行所述实时按需计算。
9.一种视频编码方法,包括: 接收来自参考图像的信息和一图像的像素; 使用处理器执行子像素搜索,所述搜索包括 在所述像素上执行多个实时按需双线性计算以生成近似插值子像素值,以及 将所述近似子像素与阈值相比较以标识出与所述近似插值子像素的最低成本子像素相对应的运动矢量。
10.如权利要求9所述的方法,其中,所述比较包括 将所述近似插值子像素与固定的阈值相比较。
11.如权利要求9所述的方法,其中,所述比较包括将所述近似子像素值互相比较以标识出所述最低成本子像素。
12.如权利要求9所述的方法,其中,所述成本是所述图像帧中的所述各子像素与来自所述参考帧的对应子像素之间的绝对差值之和的函数。
13.如权利要求9所述的方法,还包括: 在所述处理器完成所述比较后,使用多抽头滤波器确定所述最低成本子像素的实际成本。
14.如权利要求13所述的方法,还包括:确定在所述比较中确定的所述最低成本子像素和使用所述多抽头滤波器确定的所述最低成本子像素之间的成本差异。
15.如权利要求14所述的方法,还包括: 通过将所述差异应用于后面图像中的具有与在所述比较中确定的所述最低成本子像素相对应的子像素位置的最低成本子像素,来减少对于所述后面图像的运动矢量搜索中的插值偏倚。
16.如权利要求9所述的方法,其中,所述执行步骤包括使用双线性平均指令执行所述实时按需计算。
17.一种非临时性的计算机可读存储设备,所述计算机可读存储设备具有存储于其中的指令,当所述指令被处理器执行时执行的方法包括: 接收来自参考图像的信息和一图像的像素; 使用处理器执行子像素搜索,所述搜索包括 在所述像素上执行多个实时按需双线性计算以生成近似插值子像素值,以及 将所述近似子像素值与阈值相比较以标识出与所述近似插值子像素的最低成本子像素相对应的运动矢量。
18.如权利要求17所述的计算机可读存储设备,其中,所述比较包括将所述近似插值子像素与固定的阈值相比较。
19.如权利要求17所述的计算机可读存储设备,其中,所述比较包括将所述近似子像素值互相比较以标识出所述最低成本子像素。
20.如权利要求17所述的计算机可读存储设备,其中,所述成本是所述图像帧中的所述各子像素与来自所述参考帧的对应子像素之间的绝对差值之和的函数。
21.如权利要求17所述的计算机可读存储设备,其中,所述方法还包括: 在所述处理器完成所述比较后,使用多抽头滤波器确定所述最低成本子像素的实际成本。
22.如权利要求21所述的计算机可读存储设备,其中,所述方法还包括: 确定在所述比较中确定的最低成本子像素和使用所述多抽头滤波器确定的最低成本子像素之间的成本差异。
23.如权利要求22所述的计算机可读存储设备,其中,所述方法还包括: 通过将所述差异应用于后面图像中的具有与由所述比较确定的所述最低成本子像素相对应的子像素位置的最低成本子像素,来减少对于所述后面图像的运动矢量搜索中的插值偏倚。
24.如权利要求17所述的计算机可读存储设备,其中,所述执行步骤包括使用双线性平均指令执行所述实时按需计算。
【文档编号】H04N19/182GK103563370SQ201280025401
【公开日】2014年2月5日 申请日期:2012年5月25日 优先权日:2011年5月27日
【发明者】拉斯·皮特·恩勒森, 史泰纳·米德蒂斯科根, 斯蒂安·塞尔尼斯 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1