首页> 中国专利> 半导体管芯所占面积减小的运动估计的所有差异和(SAD)阵列

半导体管芯所占面积减小的运动估计的所有差异和(SAD)阵列

摘要

描述了一种装置,它包括:逻辑电路(301),用于获取以下两者之间的绝对差异:1)比参考宏块的未压缩视频数据值的所有比特数目要少的比特,2)比搜索窗口内宏块的数据的未压缩视频数据值的所有比特数目要少的比特。该装置进一步包括寄存器302以存储参考宏块。该寄存器耦合到该逻辑电路。该装置进一步包括随机存取存储器(303)以存储该搜索窗口。该随机存取存储器耦合到该逻辑电路。

著录项

  • 公开/公告号CN1890979A

    专利类型发明专利

  • 公开/公告日2007-01-03

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN200480036154.0

  • 发明设计人 L·利平科特;K·梅达;

    申请日2004-12-22

  • 分类号H04N7/26;

  • 代理机构上海专利商标事务所有限公司;

  • 代理人李玲

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 18:04:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-12-07

    未缴年费专利权终止 IPC(主分类):H04N7/26 授权公告日:20100929 终止日期:20171222 申请日:20041222

    专利权的终止

  • 2010-09-29

    授权

    授权

  • 2007-02-28

    实质审查的生效

    实质审查的生效

  • 2007-01-03

    公开

    公开

说明书

技术领域

本发明的领域涉及运动估计,尤其涉及运动估计所有差异和(SAD)逻辑电路,这种逻辑电路所具有的半导体管芯所占面积较小。

背景技术

数字视频通常具体表现为大量的数字静止帧,当连续显示时便表现为运动。因为视觉信息(比如,数字视频)很自然会占用大量数据,所以经常应用数据压缩以便在基本上不使原始画质下降的情况下减少数据量。运动估计便是最常应用于数字视频的一种压缩技术。

根据运动估计方法,第一个帧分解为多个小片(被称为“宏块”),之后,在第一个帧之后或之前(按构成视频信息的帧的顺序)的第二帧的数据字段(被称为“搜索窗口”)中搜索各个宏块。被搜索的宏块可以被称为“参考宏块”或“参考块”。对于每一个找到的参考宏块(理想情况下,在第二个帧中会找到所有的参考宏块),记录用于描述参考宏块运动情况的位移矢量。由此,通过保存位移矢量而非实际的视觉内容,实现了压缩。

图1示出了用于数字视频的运动估计的一个简单示例,该示例描述了一辆汽车从左边移动到右边。“当前的”帧103对应于上述第一个帧。按表现出该汽车从左边移动到右边的帧顺序,当前的帧103跟随“之前的”帧101。之前的帧101对应于上述第二个帧。当前的帧103描绘了参考宏块102b,参考宏块102b捕获了该车的前端,而之前的帧101描绘了搜索窗口104。

重要的是,其它场景可能出现在具有参考块的“第一个”帧和具有搜索窗口的“第二个”帧之间。例如,第二个帧可以是相对于第一个帧而言接下来的帧(而非参照图1所描述过的之前的帧)。

注意到,在当前的帧103中将定义其它的参考宏块。可以注意到,之前的和当前的帧101、103的顺序描绘了该车向右移动了距离K。根据基本的移动估计,比宏块大的数据字段104取自之前的帧101并被用于搜索窗口以便找出当前帧103的参考宏块102b。搜索窗口104可以以当前的帧的参考宏块102b的中心位置为中心(即,搜索窗口的中心定位于从图1所示示例的帧原点起水平补偿K的地方)。大小适当的搜索窗口104应该总可以找出参考宏块102b(如果正在移动的物体并不改变其自身特征的话)。根据图1的示例,在当前帧101内其原始位置向左距离为K处的搜索窗口104中发现了当前的帧103的参考宏块102b。这样,针对宏块102a记录位移矢量(K,0)(即,((xc-xp),(yc-yp))=((K-0),(0-0))=(K,0);其中,“c”表示“当前的”,“p”表示之前的。

附图说明

在附图中,作为示例而非限制对本发明进行了说明,其中相似的参考标记表示相似的元件,其中:

图1示出了两个数字视频帧的示例性描述;

图2示出了SAD逻辑电路及其相应的宏块数据和搜索窗口数据的示例性描述;

图3示出了AD单元阵列的示例性描述,连接该AD单元阵列可以接收之前的帧的数据和当前的帧的数据;

图4a示出了具有改进后的功率和表面面积消耗及其相对应的宏块数据和搜索窗口数据的AD单元的示例性描述;

图4b涉及在处理每个数据值所有比特的SAD计算过程与处理少于每个数据值所有比特的SAD计算过程之间不同的分辨率;

图5a示出了具有改进后的功率和半导体管芯面积消耗的另一个AD单元实施例以及该实施例相对应的宏块数据和搜索窗口数据的示例性描述;

图5b涉及在处理各个数据值所有比特的SAD计算过程与可以用图5a所示电路进行的SAD计算过程之间不同的分辨率;

图5c示出了当视频数据值很自然地被表达为N个值时用于确定哪M个比特用于SAD计算目的的方法;

图6示出了可以被设计到使用视频压缩的系统之中的一种电路。

具体实施方式

为了“找出”搜索窗口中的宏块,通常使用绝对差异和(SAD)方法。图2示出了基本体系结构的描绘。根据图2的基本体系结构,SAD逻辑电路201计算在来自第一个帧的参考宏块数据202的数据值(例如,像素值)和其相应的来自第二个帧的搜索窗口数据203的数据值(例如,相应的像素值)之间的绝对差值(即,在下文中,“绝对差异”)。此处,术语“相应的”意思是选择用于计算绝对差异的数据值与它们在第一个帧的参考宏块的数据以及搜索窗口数据203内参考宏块的数据之内的位置对准。

即,基本操作流程包括在第一个帧的参考宏块数据202和搜索窗口数据203内特定宏块的数据之间,对各对相应数据值的绝对差异进行计算并求和。一旦确定对特定宏块的数据的绝对差异的和,则对搜索窗口数据203内的下一个特定宏块的数据重复该基本操作流程。当对于搜索窗口数据203内可识别的所有宏块的数据而言,已经确定了绝对差异和的时候,则具有最低绝对差异和的数据的宏块被认为是在搜索窗口内“找到的”宏块。

例如,图2示出了在参考宏块数据202中“右下角”数值204。为了计算绝对差异,总是将右下角数值204与等价于搜索窗口203内可以被识别的各个宏块数据的相应值(即右下角值)进行比较。为了简便,在众多宏块中图2只示出了两个宏块205、206的数据,它们可以在搜索窗口203中被标识。针对宏块205的SAD计算将因此包括计算相应的右下角数值204和207的绝对差异。同样,针对宏块206的SAD计算将包括计算相应的右下角数值204和208的绝对差异。参考宏块和搜索窗口各宏块之间所有相应的数值都类似地处理。

图2的描述及其相应的讨论涉及只牵涉到单个参考宏块的处理过程。此处,重要的是要记得第一个帧分解为多个参考宏块。这样,针对第一个帧内的各个参考宏块,参照图2提到的处理过程要执行多次,使得可以对整个帧的区域实现压缩。为了实现高性能(例如,减少处理次数),绝对差异(AD)单元的阵列被用于同时计算多个相应数据值(例如,像素)对的AD项,像在参考宏块与搜索窗口中宏块的数据之间那样。

图3更详细地探讨了该概念。图3示出了由AD单元11直至XY的阵列314构成的SAD逻辑电路301,每一个单元都适用于计算参考宏块内相应位置的数据和搜索窗口内宏块的数据之间的绝对差异。例如,对于宏块A 305,AD单元33被设计成计算以下两者之间的绝对差异:1)保留在寄存器302内的数据值311,该寄存器302存储参考宏块的数据;以及2)宏块A305内数据值311所对应的数值312,它接着存放在搜索窗口的数据内,该数据保留在随机存取存储器(RAM)303内。

对于相同的宏块A 305,SAD单元(X-1)(Y-1)被设计为计算下列两者之间的绝对差异:1)保留在寄存器302之内的数据值304;以及2)与宏块A 305内的数据值304相对应的数据值307。同样,对于宏块B 306,AD单元33被设计成计算数据值311和数据值313之间的绝对差异;AD单元(X-1)(Y-1)被设计成计算数据值304和数据值308之间的绝对差异。

用加法器315将所有数据值所对应的绝对差异加起来,形成正在被分析的搜索窗口内特定宏块(例如,宏块A或宏块B)的SAD值。然后,比较器316将计算后的SAD值与搜索窗口内至今所获得的最低的SAD值(被存储在寄存器317中)进行比较。当搜索窗口已经完全被分析时,具有最低SAD值的搜索窗口内的宏块被视为该搜索窗口内“找到的”参考块。然后计算运动矢量。当各个新的参考宏块被载入寄存器302时,搜索窗口数据的新字段被载入RAM303。

然而,问题在于大阵列的AD单元占据大量的半导体管芯面积和电功率。

为了解决功率和半导体管芯面积消耗的问题,有用的做法是识别出SAD计算用于比较两个数据字段之间的相似性(例如,当前的帧的宏块和之前的帧的搜索窗口各宏块);同时,特定的数据字段自身包含数据点,它们表达了不同的强度值。这样,通过识别出各数据值(例如,各像素)所需比特的数目(以允许有足够对比度的图像所对应的强度值范围,例如,通常是各像素对应8比特)大于各数据值所需比特的数目(以确定或否定数据段之间的相似性)。

简单地说,对SAD计算而言,数据的分辨率(就各数据值的比特数目而言)不需要像图像呈现那样高。AD阵列内的AD单元因此可以被设计为处理比这些帧自身所提供的每个数据值的全部比特数目要少的比特数;并且,结果,节省了功率和半导体管芯消耗。

图4a示出了一个示例。注意到,图4a指出来自参考宏块402和搜索窗口209内正在被分析的宏块的数据值很自然地采用N比特宽数据值(即,每个数据值N个比特)。(第x个,第y个)AD单元418只处理每个数据值N个比特中的M个,其中M小于N。通过处理比帧数据中各数据值的所有比特要少的比特,与被配置成处理全宽数据值的AD单元相比,AD单元418在尺寸上要更小并消耗更少的功率。这样的效率应该扩展到作为一个整体的阵列414,因为它由多个有效的AD单元组成。

图4a建议通过从参考宏块402(例如,来自图3的寄存器302)和搜索窗口409内的宏块(例如,来自图3的RAM 303)中读取全N宽数据值并将N宽数据值存储到相应寄存器空间410、411中,便可实现比特宽度从N到M比特的消减。然后,AD单元418只从相应寄存器空间410、411中读出用于SAD计算的M个比特。在其它实现方式中,载入的帧数据本身可以预先适当地从每个数值N个比特消减为每个数值M个比特(例如,在被载入寄存器302和RAM303之前);或者,载入的帧数据可以仍然保持N宽数据,但当该数据在物理上朝着AD单元418转移时,布线被配置成忽略未使用的N-M比特。通过从图4a中去除寄存器空间410和411并用M宽的总线将参考块数据402和搜索窗口数据404连接到AD单元(即,N宽的总线被去除),可以表示这些基本的体系结构中的任一个。

可以理解,通过SAD计算(这种计算牵涉的各个数据值的比特比图像数据自身要少)可以获得高效率,那么问题在于哪些比特是应该被忽略的,哪些比特应该被选择用于执行SAD计算。下面的讨论描述了各种方法,包括:1)只忽略连续比特中最低阶的;2)忽略最高阶的比特以及一个或多个连续的低阶比特;以及3)基于数据自身来计算哪些比特被忽略。下面将对这些中的每一个进行讨论。

只忽略连续比特中最低阶的比特

忽略最低阶比特对分辨率具有最大影响,但对动态范围影响最小。图4b以简单方式证明了这一方面。然而,在讨论图4a之前,首先看看二进制数学比较有用。考虑一个示例,按各数据值8个比特来实现帧数据(即,N=8);并且考虑仅忽略连续比特中三个最低阶的比特(即,M=5)。在这种情况下,原始8比特数值的掩码可以表示为_____XXX,其中X是忽略的比特,是没有忽略的比特。全部8比特数据值能够表达0到255的动态范围,其分辨率为1(即,256个不同的数值:0,1,2,3……255)。忽略8比特数据值中最低阶的3个比特使可表达的数值的丰度下降到0到248的动态范围,其分辨率为8(即,31个不同的数值:0,8,16,24……248)。

图4b试图以图形的方式描绘上述比较(虽然是定性地并且不成比例)。左边的图420提供了动态范围和分辨率所对应的定性感触,当使用视频帧的数据值的所有比特(例如,上述示例的所有8个比特)时宏块数据值可以以该分辨率来表达。右边的图421提供了动态范围和分辨率所对应的定性感触,当视频帧的每个数据值的一组连续的低阶比特被丢掉时(例如,上述示例中,三个最低价的比特被丢掉),相同的宏块数据值可以按该分辨率来表示。

此处,注意到图4b的描绘420、421中所观察到的数据分布可以被视为宏块数据值的图。例如,简单地通过按某种顺序(例如,第一行从左向右,第二行从左向右,最后一行从左向右)读取宏块数据值,对宏块的图像而言唯一的图案将展示它自身。SAD电路本质上找到了匹配图案,在参考宏块图案和搜索窗口的宏块图案之间。因为相邻一对水平线之间的间隔对应于相同的数值,所以较高的分辨率(即较小的增量)表现在图4b的描绘中,而相邻线之间较少的空间对应于更多的水平线在该数据上重叠。

很清楚,左边的描绘420具有比右边的描绘421更高的分辨率。例如,参照那组数据点422,注意到,这些数据点是用左边描绘420中不同的数值来表达的(因为各数据点放置在一对不同的水平线之间);而对于右边的描绘421,这些相同的数据点必须用相同的数据值来表达(因为它们每一个都放在相同的那对水平线之间)。动态范围的损失被描绘成阴影区域423,其中的数值无法被表达。此处,在全部分辨率下将落在暗淡的区域423中的任何数值都将在相邻线条之间最高间隔处被赋予“剪切过的”最大值。

当低阶比特丢掉时动态范围和分辨率会出现损失,描绘420和421帮助强调这样一点,即全分辨率(例如,作为左边描绘420中定性观察到的)并不必然用于识别匹配图案或至少具有高度相同性的图案。即,针对许多实际的情况,描绘421中所观察到的分辨率是很好的,足够用于识别匹配图案。如描绘421中所观察到的(以及用在描绘421中所观察到的分辨率和动态范围来表达的)一对完全相同或接近完全相同的宏块图案应该正确地产生非常小的SAD值(以便标记该对图案之间的相同性和接近相同性),因为整个图案作为一个整体的独特特征被加权到SAD计算中(例如,较小的左边峰值,较大的右边峰值,等等)。

忽略最高阶比特以及一个或多个连续低阶比特

忽略最高阶比特对动态范围具有显著影响但允许更佳的分辨率。作为一个示例,再次考虑每个数据值8个比特(即N=8)而实现的帧数据,其中3个比特被忽略(即,M=5),包括最高阶比特和两个最低阶比特(即,原始8个比特值的掩码可以表达为X_____XX,其中X是被忽略的比特,是没有被忽略的比特。)根据这种方法的数字,动态范围比在线性标尺上切除一半还多;但是,分辨率比图4b中的描绘421中所观察到的要好。具体来讲,全8比特数据值能够表达0到255的动态范围,其分辨率为1(即,256个不同的值:0,1,2,3……255),“X_____XX”方法仅能够表达0到124的动态范围,其分辨率为4(即,31个不同的值:0,4,8,12……124)。

将图5b的右边描绘521与图4b的右边描绘421进行比较,注意到,对应于动态范围损失的阴影区域423、523在图5b中比在图4b中要大许多;然而,相邻线条之间的间隔所度量的分辨率得到提高。当宏块数据像图5a和5b所观察到的那样时,图5b所示的方法是理想的方法:对于最大的部分而言,在全部动态范围的大约一半中“塞入”。在这种情况下,因为数据“塞入了”全部动态范围的大约一半,动态范围中很大的损失是可以接受的,因为最大的部分的数据并不存在于全部动态范围空间的一半中。此外,又因为数据被塞入到特定区域中,所以与图4b的方法相比有助于提高分辨率,所以数据值可以更好地被区分,并且作为结果,整体的数据分布被更好地捕获。

为了处理对于最大的部分而言被塞入到全部动态范围较高的一半(如图5a和5b所观察到的)或全部动态范围中间一半之中的数据,一定的补偿量应该被添加到该数据以使其在有限的动态范围内可以观察到。图5a呈现出基本的电路结构;图5b的描绘520示出了被塞入到全部动态范围的上半部之中的数据图案。

根据可以应用图5a的结构的一个实施例,补偿计算单元505(可用逻辑电路来构造)检测第一个帧的宏块数据502表明一种图案,该图案具有的数据值填充在全部动态范围的上半部之中;作为响应,提供了(A-B)的补偿以有效地将这些数据值“丢到”图5b所示的可见动态范围中(注意到,在图5b中,应用补偿之后的负值被剪切为数值0)。一对加法器504a、504b将未处理过的帧数据值添加到补偿中。在图5a的实施例中,用N比特宽数据值来执行该添加。AD单元501(也可以用逻辑电路来实现它)接着通过忽略最高阶比特以及一个或多个连续的低阶比特,对每个数据值的N个比特中的M个比特进行操作。

基于数据本身来定制计算哪些比特要被忽略

在可以应用图5a的结构的另一个(更成熟的)实施例中补偿计算单元505被设计成不仅确定要被应用于未处理过的数据的补偿,还确定每个未处理的数据值的N个比特中哪些比特要被掩盖掉,使得每个数据值只有M个比特被用于SAD计算。此处,对于每一个无法被掩盖掉的N-M个最重要的比特,最不重要的比特被掩盖掉了。例如,如果M=8并且N=5,那么有四种可能的情形:1)最重要的比特中没有哪一个被掩盖掉了,剩下了要被掩盖掉的3个最不重要的比特;2)最重要的比特被掩盖了,并且两个最不重要的比特被掩盖了;3)两个最重要的比特被掩盖了,最不重要的比特被掩盖了;以及4)三个最重要的比特被掩盖了。

由此,如图5c所示,可以被掩盖的最重要的比特的数目被首先确定551;然后,可以被掩盖的最不重要的比特的数目被确定552。在一个实施例中,补偿量被设置成参考宏块的数据中存在的最小数据值,并且可以被掩盖的最重要的比特的数目是log2|2M/最大值|的四舍五入取整得到的值,其中最大值是参考块的数据中所观察到的最大值。例如,如果M=8,N=5,并且最大值=128,则可以被掩盖的最重要的比特的数目是

log2|2M/最大值|=log2|256/128|=1,两个最不重要的比特被掩盖(即,X_____X)。作为另一个示例,如果M=8,N=5并且最大值=64,则可以被掩盖的最重要的比特数目是log2|2M/最大值|=log2|256/64|=2,并且最不重要的比特被掩盖(即,XX_____X)。

图6示出了可以用在任何系统中的普通设计,它使用了包括本文所述的SAD技术的视频压缩。根据图6的系统设计,原始的未压缩的视频数据被载入存储器601中。存储器601可以是SRAM存储器或DRAM存储器,被耦合到视频压缩电路602(例如,具有与图3所示结构相似的体系结构,其中存储器60耦合到寄存器302和RAM 303)。参考宏块及其相应的搜索窗口从存储器601中被载入视频压缩电路602中。视频压缩电路包含AD单元,这些AD单元处理比每个未处理数据值的所有比特要少的比特(例如,如图4a到5c所述),目的在于执行SAD技术。

上文中,参照特定的示例性实施例对本发明进行了描述。然而,很明显在不背离所附权利要求书所阐明的本发明的精神和范围的情况下可以对本发明做出各种修改和改变。因此,说明书和附图被视为说明性的而非限制性的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号