首页> 中国专利> 用于扫描搜索区内参考宏块窗口的运动估计装置和方法

用于扫描搜索区内参考宏块窗口的运动估计装置和方法

摘要

公开了一种运动估计技术,将当前宏块与参考帧搜索区中的不同参考宏块进行比较。将当前宏块的运动矢量从与当前宏块最为匹配的参考宏块中导出。为减少装载新参考宏块所需的指令数目,复用参考宏块之间的重叠部分并且仅将非重叠部分装载到存储器存储部件。

著录项

  • 公开/公告号CN1396762A

    专利类型发明专利

  • 公开/公告日2003-02-12

    原文格式PDF

  • 申请/专利权人 三星电子株式会社;

    申请/专利号CN02122743.8

  • 发明设计人 赵真显;卢亨来;李润泰;全炳宇;

    申请日2002-06-10

  • 分类号H04N5/14;G06F7/00;G06T1/00;

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人马莹;邵亚丽

  • 地址 韩国京畿道

  • 入库时间 2023-12-17 14:36:12

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2011-08-17

    未缴年费专利权终止 IPC(主分类):H04N5/14 授权公告日:20070124 终止日期:20100610 申请日:20020610

    专利权的终止

  • 2007-01-24

    授权

    授权

  • 2004-09-15

    实质审查的生效

    实质审查的生效

  • 2003-02-12

    公开

    公开

说明书

                            技术领域

本发明涉及一种运动估计装置和方法。更具体地说,本发明涉及用于扫描搜索区内参考宏块窗口的运动估计装置和方法。

                            背景技术

该申请享有2001年7月9日申请的申请号为2001-40904的韩国专利申请的优先权,这里完整引入其内容以供参考。

视频编码器生成遵守视频压缩国际标准,比如H.261、H.263、MPEG-1、MPEG-2、MPEG-4、MPEG-7、以及MPEG-21的位流。这些标准广泛地应用于数据存储、基于互联网的图像服务、娱乐、数字广播、便携式视频终端等领域。

视频压缩标准使用将当前帧分成多个宏块(macroblock)(MB)的运动估计技术。计算当前MB和存在于参考帧搜索区内的其它参考MB之间的差异。搜索区中与当前MB最相似的参考MB被认为是“匹配块”并将其选中。将指示当前MB和匹配块之间相位差的当前MB的运动矢量进行编码。相位差是指当前MB和匹配块之间的位置差。由于只传送当前MB的运动矢量,故需要传送或存储的为较小量数据。

当前MB与搜索区的关系如图1所示。根据四分之一公共中间格式(Quarter Common Intermediate Format,QCIF),一帧包含176×144个像素,当前帧2包含99个当前MB,并且每个当前MB 10包含16×16个像素。在参考帧4中计算当前MB 10的运动矢量。参考帧4中搜索区12包括48×48个像素。

在搜索区12中,将与当前MB 10最相似的16×16参考MB识别为匹配块。可以用各种不同的方法计算当前MB与参考MB之间的差。例如通过使用绝对差均值(MAD)、绝对方差均值(MAE)、或绝对差总和(SAD)。SAD最为普遍因为它只需要减法和加法运算。

图2说明了一种基本完全搜索,其中将像素10_1和14_1分别装载到32位寄存器15和17。然后使用算术逻辑单元(ALU)30计算SAD。在用ALU 30比较当前MB 10和参考MB 14a之前,将它们存储在存储器中并一个像素一个像素地装载到32位寄存器15和17中。将存在于搜索区12中的参考MB14a、14b、14c等与当前MB 10一个像素一个像素地进行比较。

这种简单思想的估计方法提供了高精确度。但是,因为有太多的计算故限制了传送速率。该方法也不适合于由一些处理能力有限的多用途的中央处理单元(CPU),比如一些在手持个人计算机(PC)中使用的CPU进行的实时解码。

通过比较当前MB与搜索区内有限数目的参考MB可以使用一种快速搜索算法(没有示出)计算SAD。与上述完全搜索方法相比该种快速搜索算法可以显著地减少计算次数。然而,这种快速搜索算法降低了画面质量。

使用完全搜索方法发展出了一种快速计算SAD的方法。使用单指令多数据(Single Instruction Multiple Data,SIMD)方法可同时计算多个像素的SAD。该减少的运算次数提高了传送速率。

图3说明了使用SIMD部件的SAD计算。当前MB 10和参考MB 14a各自的八个像素10_8与14_8分别装载到64位寄存器16和18。SIMD机20同时计算装载到64位寄存器16和18中的八个像素的SAD。与典型的完全搜索算法其中单独计算每个像素的SAD不同,使用SIMD技术可以实现对多个像素同时并行计算SAD。

计算量随着搜索区12中下一个MB移位的方向而变化。如图3所示,每当选择下一个MB进行水平移位,必须从存储器中访问当前MB 10和参考MB 14中的八个像素并将其装载到寄存器16和18。这种大量的存储器访问增加了导出运动矢量所需的时间量并增加了能量消耗。

由于大量的存储器访问以及伴随的大能量消耗,这些传统运动估计方法不适合于移动环境。本发明致力于解决该问题以及其它与现有技术相关的问题。

                            发明内容

运动估计技术将当前宏块与参考帧搜索区内的不同参考宏块进行比较。从与当前宏块最为匹配的参考宏块中导出当前宏块的运动矢量。为减少装载新参考宏块所需的指令数目,复用参考宏块之间重叠的部分、并只将没有重叠的部分装载到存储器存储部件中。

                            附图说明

通过参考附图对本发明优选实施例的详细描述本发明前述的及其它目的、功能和优点将变得更为清楚。

图1是说明如何导出运动矢量的现有技术示意图。

图2是说明使用完全搜索方法并使用绝对差总和(SAD)的方法、执行运动矢量搜索的传统方法的现有技术示意图。

图3是说明使用单指令多数据(SIMD)方法执行运动矢量搜索的传统方法的现有技术示意图。

图4是根据本发明执行运动估计的系统的方框图。

图5是抽取过滤器的示意图。

图6是说明抽取后的当前宏块和相应的搜索区的示意图。

图7是说明根据本发明如何使用两组寄存器的示意图。

图8说明根据本发明如何在搜索区移位参考宏块。

图9是说明根据本发明如何识别运动矢量的流程图。

图10A-10D是比较不同运动估计技术的指令计数的图表。

图11A-11D说明传统运动估计方法与根据本发明的运动估计方法之间的其它差别。

图12比较根据本发明的垂直扫描技术和其它扫描技术并说明在存储器访问方面的差别。

图13概念性地说明图4中差异计算单元110的一部分。

                            具体实施方式

本发明通过在搜索区扫描参考MB时复用公共寄存器提供减少存储器访问次数的高效运动估计。。

图4是本发明优选实施例运动估计系统的方框图。运动估计系统包括当前帧(C/F)100、第一寄存器组102、差异计算单元110、搜索区(S/A)104、第二寄存器组106、以及控制器108。第一和第二寄存器组102及106分别为当前帧100的一个宏块(MB)和搜索区104的一个宏块存储像素。在一个例子中,一个MB的大小为16×16像素。第一和第二寄存器组102及106的每一个都可以存储一个16×16像素的数组。控制器108可以用软件或硬件构造。

图5说明了使用4∶1抽取过滤器实施的预处理步骤。在当前帧100(图4)上使用n∶1抽取过滤器以减少所需硬件资源。当前帧在图5中由输入帧130表示。帧130由四个4∶1抽取过滤器126a、126b、126c和126d分成四种抽取帧a、b、c和d,并存储在帧存储器128中。从电荷耦合图像捕获部件(CCD)120输出的视频信号通过模-数转换器(ACD)122转换成数字信号。从ADC 122输出的信号是RGB信号。预处理器124将RGB信号转换成YCbCr信号。在一个实施例中,抽取过滤器126只对Y信号进行抽取。

抽取过滤器126a用于输入帧130中的a种像素,抽取过滤器126b用于b种像素,抽取过滤器126c用于c种像素,并且抽取过滤器126d用于d种像素。抽取之后,抽取后帧a、b、c、和d存储在帧存储器128中。

作为对输入帧130进行4∶1抽取的结果,一个MB的大小减小到8×8个像素。对搜索区104进行与当前帧130同样比率的抽取。例如,对48×48个像素的搜索区进行4∶1抽取将搜索区的大小减小到24×24个像素。图6说明了经过4∶1抽取后一个当前MB 140及其相应的搜索区150。

为解释之便,将当前帧描述为经过图5中4∶1抽取过滤器的四种抽取后帧a、b、c、和d之一。当前帧100中的每个MB的大小为8×8个像素并且经过4∶1抽取过滤器的搜索区104的大小为24×24个像素。

第一寄存器组102(图4)存储当前帧100的一个当前MB,并且第二寄存器组106存储搜索区104的一个参考MB。第一和第二寄存器组102及106以图7中描述为画圈的数字的预定次序存储像素。对八个像素的各个组来说在第一和第二寄存器组102及106中每一个的计算次序都是确定的。

图7说明了图4中第一和第二寄存器组102及106的结构和装载顺序。第一寄存器组102存储当前MB并包括每个都存储八个像素的寄存器。以预定的次序从0到7指定这些寄存器。第二寄存器组106包括每个都存储八个像素的寄存器并且以预定的次序从8到15指定这些寄存器。为计算存储在第一寄存器组102中的当前MB与存储在第二寄存器器组106中的参考MB之间的差,用下面公式计算当前参考块的SAD和运动矢量MV。 >>SAD>>(>dx>,>dy>)>>=>>Σ>>m>=>x>>>x>+>N>->1>sup>>>Σ>>n>=>y>>>y>+>n>->1>sup>>|>>I>k>>>(>m>,>n>)>>->>I>>k>->1>>>>(>m>+>dx>,>n>+>dy>)>>|>>> >>>(>MVx>,>MVy>)>>=>>min>>>(>dx>,>dy>)>>∈>>R>2>>>>SAD>>(>dx>,>dy>)>>>>

其中,k(m,n)是第k个帧在(M,N)处的像素值。运动矢量(MVx,MVy)表示当前块到参考帧中最匹配块的位移。

差异计算单元110(图4)用图3中的单指令多数据(SIMD)方法同时计算八个像素的差。

图13概念性地说明了图4中的差异计算单元110。第一寄存器组102的每个寄存器142的每个像素和第二寄存器组106的每个寄存器144的每个像素之间的绝对差值存储在寄存器132中。例如,142a和144a之间的绝对差值存储在132a中,并且142b和144b之间的绝对差值存储在132b中。为计算142和144之间的绝对差,执行一个内部求和指令将存储在图13的点划线框内寄存器132中的每个差值相加。

如图13的点划线框所示,一个内部求和指令的执行仅用到多个相加器。在传统方法中为了将每个值相加,用一个相加指令和移位指令执行求和,因此与本方法相比需要额外的循环。所以,为完整地计算抽取后当前MB和抽取后参考MB之间的匹配块需执行八个内部求和指令。

一旦计算了当前MB 10和参考MB 14所有像素的SAD,通过将每个像素的SAD相加计算参考MB 14a的内部总和。在计算了搜索区12的所有参考MB的内部总和之后,将具有最小内部总和的参考MB识别为匹配块,并且计算结果作为图4中的MB差(E_MB)输出。图4中的控制器108控制如何使用SIMD扫描方法在搜索区104中移位参考MB窗口以减小存储器访问次数。

图12更详细地说明传统扫描方法和根据本发明的扫描方法的一些差别。对于完全搜索,根据传统扫描方法,当前参考块在水平或垂直方向移位一个像素得到下一个参考块,分别如图12_1和12_2所示。在这些情况下,当前比较的参考块中的大部分像素与下一个要比较的参考块中使用的像素相重叠。

对于图12_1中所示的水平扫描,只有下一个寄存器组106’_2的最右边区域包括相对于寄存器组106’_1中的像素而言的新像素。同样的,对于图12_2中所示的垂直扫描,只有下一个寄存器组106”_2的最下边区域包括相对于当前寄存器组106”_1而言的新像素。即便只有边缘区域包括新像素,对整个参考宏块106执行存储器访问。

根据本发明用于SIMD方案的垂直扫描在图12_3中说明。在图4中只有新像素106_2从主存储器装载到第二寄存器组106中。如图7所示,第二寄存器组160b复用存储在第一寄存器组160a中9到15寄存器区域中的重叠像素。将新的一行像素值只装载到第二寄存器组160b的第一寄存器区域8。在第二寄存器组160b中第一寄存器区域8下移到最后一个位置。存储与下一个参考块重叠的像素行的其它寄存器区域9至15在序列中上移1。例如,寄存器区域9移到了第一个位置,寄存器10移到了第二个位置,寄存器11移到了第三个位置等。

这种参考MB移位只需要一次存储器访问以在搜索区104中在每次垂直移位时读取一行新的没有重叠的像素(图4)。由于不需要从存储器中读取下一个参考MB的整个8×8像素数组,从而减少了用于扫描搜索区104的存储器访问次数。

图8说明了参考MB在搜索区104中的移位。图4中在控制器108的控制下垂直扫描参考MB窗口。参考MB窗口每次垂直移位一个像素行。虽然这里说明了垂直窗口移位,同样的技术可以用于水平窗口移位。当像素沿当前和参考帧的垂直列存储在存储器中的连续位置时可以使用水平移位。

如上所述,当使用能够存储一个MB数据的寄存器并且在搜索区中垂直移位参考MB窗口时,复用当前参考MB和下一个参考MB之间的重叠像素。这减少了控制器108扫描搜索区所需的存储器访问次数。当前MB存储在第一寄存器组中,并且当前参考MB存储在第二寄存器组中。

图9是更详细地说明本发明SIMD扫描方案的流程图。在步骤170,以n∶1的比率抽取当前帧和参考帧。为解释之便,在本实施例中n=4。参数HS指明搜索区中第一个参考MB的最后一列的位置,参数VS指明搜索区中第一个参考MB的最后一行的位置,以及参数DCM指明四个抽取后帧。

这里,第一个参考MB是搜索区中左边最上面的MB,并且第一个参考MB的第一个参数HS和第二个参数VS为零。在步骤172中,参数HS、VS、DCM都初始化为零,并且最小差异E MIN初始化为尽可能大的值,例如,无穷大。

将标识号0、1、2、和3分别分配给四个抽取后帧。在步骤174将参数DCM与值4进行比较以确定最后一个抽取帧的运动估计是否完成。如果最后一个抽取后帧的运动估计没有完成,在步骤176将当前MB装载到第一寄存器组140(参见图7)。

在步骤178确定HS参数是否小于17。当HS参数不小于17时,完成搜索区中最后一列(HS16)的运动估计。在步骤192将HS重设为零并且在块198中将DCM加1到下一个DCM帧。处理然后回到步骤174。

如果到HS16的运动估计没有完成,在步骤180确定VS参数是否小于17。如果VS小于17,在步骤182和184执行流水线操作程序。在步骤1 82只有最后一行VS1装载到参考MB(参见图8)。如果到最后一行的运动估计没有完成,即,如果参考MB窗口没有移位到最后一行VS16,在步骤182将参考MB装载到第二寄存器组160a。在步骤184计算当前MB和参考MB之间的差。

在这种情况下,垂直方向上的新行VS1存储到第一寄存器位置的寄存器区序列中。例如,将下一个参考MB的下一个新的没有重叠的像素行装载到第二寄存器组160b的寄存器8($register 8)中。其它的寄存器区,即,寄存器9($register 9)到寄存器15($register 15),在序列中向上移1位。即,图7中的第二寄存器组160b复用存储在寄存器区寄存器9($register 9)到寄存器15($register 15)中的像素。因此,仅从存储器中访问新行VS1(图8)的像素并将其存储在第二寄存器组160b的寄存器区寄存器8($register 8)中。

在步骤184,计算装载到图7中第一和第二寄存器组140及160中的MB之间的差。在步骤186将MB差异E_MB与最小差异E_MIN相比较。如果MB差异E_MB小于最小差异E_MIN,在步骤188将最小差异E_MIN设置为MB差异E_MB。如果MB差异E_MB不小于最小差异E_MIN,保持当前最小差异E_MIN,并且在步骤190将参数VS加1。然后重复步骤180到190直到对参考MB的垂直扫描到达最后一行VS16(图8)。

如果在步骤180确定了作为扫描到最后一行VS16的结果第二个参数VS不小于17,在步骤200将参数VS初始化为零。在步骤202将参数HS加1,并且处理回到步骤178。换句话说,参考MB窗口向右移位了一个像素位置。然后重复步骤180到190。

在参考MB窗口在水平方向移位到最后一列HS16后,即,如果在步骤178确定了参数HS不小于17,在步骤192将第一个参数HS重新初始化到零。在步骤198将DCM参数加1并且处理回到步骤174。增加DCM参数意味着执行了另一个抽取后帧的运动估计。

当所有抽取后帧的运动估计都已完成,即,如果在步骤174确定了DCM参数不小于4,在步骤204将具有最小差异的参考MB识别为匹配块。通过对当前帧所有MB重复上述的处理完成当前帧的运动估计。

如上所述,第一和第二寄存器组存储当前MB和参考MB。在搜索区中垂直移位参考MB窗口以进行运动估计。复用当前参考MB和下一个参考MB之间的重叠像素。结果,当将下一个参考MB装载到第二寄存器组中时需要较少的指令(装载/存储)。这样可以以较小的能量消耗获取快速运动估计。

图10a至10d说明了本发明相对于传统运动估计方法的优点。图10a指明了不执行抽取(即,完全搜索算法)的传统运动估计方法的指令计数。下面情况得到了确定:图10a的传统方法中总指令计数的26.2%用作存储器访问指令,并且指令计数的余下73.8%用于非存储器访问。图10a与图2对应,其中在搜索区中水平移位参考MB并且用SAD为每个像素执行运动估计。图10b说明了执行抽取的传统运动估计方法的总指令计数。图10c说明了使用抽取和SIMD的传统运动估计方法的总指令计数。

图10d说明了使用本发明的运动估计方法的总指令计数。对于图10b到10d中说明的三种情况,百分比27.0%、1.6%、以及0.9%分别为与图10a的传统运动估计方法相比较的存储器访问指令计数的相对比率。很显然用正交扫描访问非重叠部分的方法是减小存储器访问计数的最高效技术。

图11说明具有要求的四分之一公共中间格式(QCIF)的两帧提取99个最小SAD所需的总时钟周期数。在图11中,11a对应于图10a,11b对应于图10b,11c对应于图10c,以及11d对应于图10d。用正交扫描方案访问非重叠部分相对于使用普通SIMD的传统运动估计方法性能提高了两倍。

上述扫描技术可以使用用于比较当前宏块和参考宏块的单指令多数据(SIMD)部件或较长指令字(VLIW)部件来实现。用于匹配宏块的方案可以包括绝对差均值(MAD)、绝对方差均值(MAE)、或绝对差总和(SAD)方案。用于选择下一个参考宏块的方法可以包括快速算法或完全搜索算法。当然,也可以使用其它单指令/多数据部件、匹配方案、以及搜索算法。

该发明可以通过在通用数字计算机中运行一个来自计算机可用媒介,包括但不限于如磁存储媒介(例如,ROM、软盘、硬盘等)、光可读媒介(例如,CD-ROM、DVD等)的存储媒介、以及载波(例如,在互联网上传送)的程序实施。计算机可用媒介可以在由网络连接的分布式计算机系统中存储和执行。

上述系统可以使用专用处理器系统、微控制器、可编程逻辑部件、或执行一些或所有操作的微处理器。上述一些操作可以用软件实现并且其它操作可以用硬件实现。

为方便起见,将操作描述为各种内连的功能块或不同的软件模块。但是,这是不必要的并且可能会存在下面情况,即,这些功能块或模块等价地聚集在单独一个逻辑部件,程序或操作中而没有明显的界限。无论如何,功能块和软件模块或灵活的接口的各种功能特征可以单独实现,或者以硬件方式或软件方式与其它操作联合实现。

在以本发明的优选实施例描述和说明了其原理之后,应该清楚可以在布局和细节方面修改本发明而不悖离这些原理。所请求保护的是在下面权力要求的精神和范围内的所有修改和变化。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号