利用共位块进行运动估计的制作方法

文档序号:12479188阅读:196来源:国知局
利用共位块进行运动估计的制作方法与工艺

本发明涉及用于在帧序列中执行运动估计的方法和数据处理系统。



背景技术:

在用于处理视频流或其他帧序列的系统中,能够估计流中描绘的特征在帧之间的运动是有用的。这种运动估计信息具有多种应用。例如,在播放设备中,运动估计信息可用于猜测特征将在视频帧之间的时间点在什么位置,并因此通过在视频流的帧之间生成一个或多个插值帧来进行帧率转换。在记录或编码设备中,运动估计信息允许视频流的有效压缩,因为其可在一个或多个视频帧的时间段内用表示相同特征像素的压缩描述和描述这些像素在帧之间运动的信息来替换多个视频帧中的这些像素。

已知多种技术用于估计视频帧之间像素或像素组的运动。现将以示例的形式来描述一种称为基于块的运动估计的常规方法。该基于块的运动估计将视频序列帧细分为称为块或宏块的多个区。总体上说,为识别块在帧之间的运动,帧的每个块中的像素数据与来自前一帧或后一帧的多个候选位置的像素数据进行比较。给出最佳匹配的候选的相对位置可被表示为向量,然后其用于表示块在帧之间的运动。通过在帧的块中重复该步骤,可以生成针对该帧的运动向量的集合,称为该帧的运动向量场。

运动估计技术通常使用可以称为单端运动向量。图1示出了示例性的基于块的单端运动估计。图像100被划分为块105的规则阵列,而运动估计对每个块依次进行。

图1示出了运动对象110,其在视频序列的一个帧的特定位置处,以及重叠于同一图个中,同一对象115,其在序列的前一帧的其位置。块120中的图像数据包含表示对象110的一部分的多个像素。针对块120的运动估计包括搜索序列中的前一帧,以查找具有最类似于块120的内容的内容的图像数据的区域。假设运动估计执行良好,找到了区域125。可以看到,区域125与块120具有相同的大小,但不对齐于网格105。相对于块120,匹配像素125的区域的位置确定运动向量130,其反映对象110的运动,并且称为块120的运动向量。

单端运动估计在某些应用运行良好,诸如视频编码,因为其在被编码的每个帧100中,针对每个块诸如120生成一个向量。

在运动补偿了的帧率转换器中,在视频序列中的两个已有的源帧之间的中间位置生成插值帧是一般而言必要的。图2示出了从图1的运动估计结果用于在来自原始视频序列的两个源帧之间的新帧中插值图像数据。针对块200的运动估计确定运动向量205,而从块200的像素并且从区域210的像素导出位于向量中点的帧215的新区域的像素。请注意,插值区域215不一定对齐于块的网格。

图3例示了在帧率转换器利用单端向量时产生的问题。对象300和305以不同的速度运动,分别产生针对块310和315的不相等的运动向量320和325。在该示例中,向量是收敛的。新帧的插值涉及在两个向量的中点即位置320和325处创建像素数据。块310和315是邻接的,但插值区域320和325不邻接。这导致插值帧中的孔340。另选的情况在向量发散时存在,导致插值区域的交叠。在任一种情况下,需要附加的帧处理来解决孔和交叠区域,以生成在每个像素位置具有一个值的输出帧。

图4示出了双端(或双向)运动估计的示例。当用于帧率转换器的示例应用时,该类型的运动估计具有针对插值帧中的每个像素位置准确地生成一个值的优点。要被插值的帧400被划分为块405的规则阵列,而运动估计针对每个块依次进行。针对块405的运动估计涉及针对图像数据彼此最类似的区域,搜索序列中的前一帧和下一帧。在该示例中,搜索通过要求所测试的区域的偏移量量级上相等并且相对于插值帧(表示前一和下一源帧之间的时间中点的插值)中的块的位置在方向上相反而受约束。在该示例中,最佳匹配发现于前一帧的区域410和下一帧的区域415之间,两者被示出重叠在插值帧的块的网格上。注意任何区域均不一定对齐于网格。前向偏移量420等于后向偏移量425。组合起来,两个偏移量可称为块405的运动向量,并表示对象在源帧之间的间隙中的运动。

块405中的像素数据的插值需要从像素数据410和415的区域之一或两者导出像素数据。网格与插值帧的对齐表示针对每个像素位置确实只生成一个值。

图4的示例示出了插值出现于两个源帧之间的时间中点。在帧率转换中,通常需要其他插值阶段,例如源帧之间间隙的四分之一处的插值。在该情况,某些可能性是存在的,图5例示了两种情况。

在一个示例中,块500被进行运动估计并且利用类似于图4说明的方法插值。然而,已知需要在帧间隙的四分之一进行插值,因此前向偏移量505被缩放以使其为后向偏移量510的三倍大小。缩放后的偏移量然后用于运动估计和插值。其给出了对象515的正确插值。在需要进一步插值的情况下,例如在一半和四分之三间隙,通过相应调整前向和后向偏移量大小来执行进一步运动估计。该方法执行良好,但会需要每个源帧间隙的多次运动估计。在帧率以较大因数增加时,该运动估计的成本是显著的。

在另一示例中,在源帧间隙的某些部分需要插值,但每个间隙仅执行一次运动估计,典型地在中点处执行。针对块550的运动估计因此搜索具有相等和相反偏移量的匹配图像区域,并可以找到分别具有偏移量565和570的区域555和560。对于插值,运动向量根据间隙中的插值位置来缩放。例如,在间隙的四分之一处的插值将向量缩放为前向成分575和后向成分580。总体上,当运动在图像的大部分呈均匀时,得到的插值比较精确。图5的示例示出了产生误差的示例。偏移量575和580造成从图像区域585和590导出差值。请注意,用于块500的运动估计的方法将不会选择区域585和590,因为这些区域中的图像数据不匹配。然而,块550的插值没有另选,只能从该数据导出插值输出。结果可为两个区域的综合,如在595示出。

基于块的运动评估器典型地通过使用诸如绝对差的和(SAD)或方差均值(MSD)的方法相对于源帧的像素测试针对块的运动向量候选的集合以识别给出最低误差块匹配的运动向量,来选择其输出运动向量。通过搜索该帧对中的像素块的匹配,生成一个或多个单端或双端运动向量候选,以描述像素块在帧间的运动。

在多种视频编码标准中,例如,H.264,利用不同于上述针对帧率转换的机制,“B帧”被双向预测。每一个编码块可选择使用一个或两个基准帧。在使用一个基准帧时,编码类似于用于单向预测的“P”帧中的编码。在使用两个基准帧时,预测可以是从编码帧之前的一帧以及其后继的一帧提取的基准像素的均值。识别两个基准帧的基准像素区域的向量不一定在长度上相等或共线,并且运动估计尝试将每个基准帧的像素数据与正被编码的块的像素数据匹配。

在用于执行运动估计的系统中,无论被构造成用于视频编码还是帧率转换,由于对象在帧内的运动,帧的区域的遮挡和展现表现出显著的问题。这对利用双端运动向量的系统尤其如此。简单示例发生于对象在背景中运动时:在运动对象的前缘,背景部分被遮挡,而在运动对象后缘,背景部分被展现。

图6示出了单端运动估计的展现区域的简单示例。场景的背景为静态并包含对象600。对象605在前景中并从左到右运动。在序列的前一帧,同一对象位于由阴影矩形610示出的位置。

针对块615的运动估计是直接的。块内容被发现于前一帧的区域620,因此运动向量625被分配至块615。针对块630的运动估计是复杂的,因为该区域中的背景刚刚由对象605的运动展现。在当前帧,针对块630的像素数据包含三角600的上缘的一部分。背景,包括对象600,不运动,因此显然块630应当被分配零向量。然而,在前一帧中,与块630共位(collocated)的像素的区域包含运动对象610的图像。零向量因此提供较差的像素匹配并且不同的向量可能被选择用于该块。在图6,块630在前一帧中未遮挡的背景区域(区域635)的内容中发现匹配。因此,错误的向量640被选择用于该块。

图7示出了针对利用双端向量的系统特定的遮挡问题的示例。场景包括不运动的前景对象700。背景统一地从左上到右下运动,其运动将由向量710正确地描述。在理想情况下,针对块705的运动估计将选择向量710,因为块705为背景的一部分。然而,为选择该向量,需要运动评估器查找715和720处的像素数据的区域之间良好的匹配。该匹配无法被发现,因为背景在区域720中由对象700遮挡。结果是运动评估器不可能选择向量710,但可能选择某些提供良好像素匹配,但不反映图像真实运动的其他向量。可见针对块725存在非常相似的情况。因此,由双端运动评估器生成的运动向量场可能包含位于与遮挡对象邻接的区域中的差的向量的区。

另一情况在图7中例示,其中,块730的运动向量无法以置信度确定。运动对象(下一帧的735和前一帧的740)建议运动向量745。向量745的选择将得到对象735在块730中插值。另选地,由于对象700不运动,针对块730零向量可被选择。在这种情况下,对象735不在块中插值。不清楚哪个解决方案正确,并且依赖于系统特定配置,每一种输出都是可能的。对象735可为背景的一部分,在对象700之后经过,或其可为前景对象,在对象700前面经过。总体上,在没有对场景结构的理解的情况下,难以可靠地做出正确向量选择,而这种理解是传统运动评估器不大可能拥有的。

解决由遮挡引起的该问题的一种技术为基于附加帧执行运动估计。例如,为了在一对帧(典型地称为前一帧和下一帧)之间插值新帧,可以有利的是进一步包括基于附加的过去和/或将来帧而生成的运动向量场。使用附加的源帧的优点在图8中例示,其通过标记为过去,前一,下一和将来的四个连贯帧序列示出了用于对象801的运动的三个不同的可能性A),B)和C)。

在可能性A)中,对象在四个帧中保持可见。因此穿过帧直接跟踪对象,并且通过搜索表示前一帧和下一帧中的对象801的匹配像素,可以生成合适的向量802,其描述对象在前一帧和下一帧之间的运动。在可能性B)中,对象801在前一帧和下一帧之间消失。这可能是由于对象在由帧序列表示的场景中被挡住。结果,无法在前一帧和下一帧之间基于单独来自其帧的信息来跟踪对象,如由未知向量804所指示。然而,通过搜索表示前一帧和过去帧中对象801的匹配像素,可以找到良好的匹配并且生成向量803以描述对象在帧间的运动。确定过去和前一帧中针对对象的良好匹配和下一个和将来帧中的差的匹配可为运动评估器提供附加的信息,以帮助其正确地确定针对对象在插值帧中的合适位置。

在可能性C)中,对象出现在前一帧和下一帧之间。其可由于对象801被由帧序列表示的场景展现。结果,单独基于来自其帧的信息,无法在前一帧和下一帧之间对对象进行跟踪,如由未知向量805所指示。然而,通过搜索表示下一个和将来帧中对象801的匹配像素,可以找到良好的匹配并且生成向量806以描述对象在帧间的运动。确定下一个和将来帧中对象的良好匹配以及过去和前一帧的差的匹配可为运动评估器提供附加的信息,以帮助其正确地确定针对对象在插值帧中的合适位置。

图9为示出于图8的四个帧的另一个例示图。每一帧之间的间隔由过去间隔901,当前间隔902和将来间隔903表示。随着在帧序列上执行运动估计,计算运动向量场,其描述在每个间隔的帧之间间像素块的运动。为在当前间隔902中根据所描述的技术对帧插值,有从过去间隔901和将来间隔903知道向量场。其需要前一个,下一个和将来帧以及至少关于间隔901的向量场一起在存储器中可用(过去帧应当在先前已经读取以生成向量场,但过去帧本身不需要为可用)。

附加的帧的使用显著增加了其中进行像素块的匹配的搜索空间。这会导致不切实际的处理需求,特别在低功率移动设备(例如被构造成执行视频编码的移动设备)和/或在被构造成实时执行运动估计(例如在播放视频流期间进行帧率转换)的设备。存储附加的帧和向量场信息的需求还大大增加了执行运动估计的设备的存储器需求。此外,附加将来帧的使用一定将延迟引入系统,因为直到已处理了将来帧为止,运动估计无法完成。



技术实现要素:

根据本发明的第一方面提供了一种用于在帧序列中执行运动估计的数据处理系统,所述帧序列包括分别划分为相应像素块集合的第一帧和第二帧,该系统包括:

向量生成器,被向量生成器构造成形成表示第一帧和第二帧之间的像素映射的运动向量候选;以及

向量处理器,该向量处理器被构造成,针对第一帧的搜索块,识别在第二帧的与搜索块共位的块中结束的第一运动向量候选并形成针对该搜索块的输出向量,该输出向量基本平行于第一运动向量候选并表示从该搜索块到第二帧的像素映射。

第一帧可在该序列中处于第二帧之前,该输出向量在时间上向前指向。另选地,第一帧可在该序列中跟随第二帧,该输出向量被在时间上向后指向。

该向量处理器可被构造成,如果针对该搜索块没有运动向量候选可用,则形成该输出向量。

该数据处理系统可进一步包括候选评估器,该候选评估器被构造成计算针对每个运动向量候选的得分,每个得分为第一帧和第二帧的在该相应运动向量候选的每一端的像素的相似性的度量,并且该候选评估器被构造成在以下情况下使向量处理器形成该输出向量:

针对该搜索块可用的一个或多个运动向量候选的得分指示在每个相应运动向量候选的端点的像素之间的低相似性;或

针对该搜索块没有运动向量候选可用;

该数据处理系统被构造成使用该输出向量作为描述从该搜索块到第二帧的像素映射的向量。

该候选评估器可被构造成,如果针对该搜索块至少一个运动向量候选可用,则该至少一个运动向量具有表示在其端点的像素之间的高相似性的得分,则提供具有指示在其端点像素之间最大相似性的得分的运动向量候选,作为描述从该搜索块到第二帧的像素映射的向量。

该向量处理器可被构造成用该输出向量替换针对该搜索块而存储的任何运动向量候选。

该数据处理系统可以还包括候选评估器,该候选评估器被构造成计算针对每个运动向量候选的得分,每个得分为第一帧和第二帧的在该相应运动向量候选的每一端的像素的相似性的测量,其中,该向量处理器被构造成将该输出向量加到针对该搜索块可用的任何运动向量候选,并且该数据处理系统被构造成使用具有表示在其端点像素之间最大相似性的得分的向量作为描述从该搜索块到第二帧的像素映射的向量,该输出向量被分配预定得分或依赖于第一运动向量候选的得分而形成的得分。

该向量处理器可被构造成对第一帧的每个块作为搜索块进行处理,以在运动向量候选结束于第二帧的相应共位块(collocated block)的每个情况下,形成针对第一帧的块的输出向量。

该候选评估器可被构造成不计算针对该输出向量的得分。

该运动向量候选可包括单端向量,始于第一帧和/或第二帧的块。

该运动向量候选可包括双端向量,始于第一帧和第二帧之间的插值帧的块。

该向量处理器可被构造成将第二帧的共位块识别为第二帧的块,其位于对应于该第一帧的搜索块的帧位置。

该运动向量候选可以包括单端运动向量候选,并且该向量生成器可被构造成通过识别所述第一帧中的与所述第二帧的块的像素最接近地匹配的像素的区域来形成针对所述第二帧的所述块的单端运动向量候选,和/或通过识别所述第二帧中的与所述第一帧的块的像素最接近地匹配的像素的区域来形成针对所述第一帧的所述块的单端运动向量候选。

该运动向量候选可包括双端运动向量候选,并且该向量生成器可被构造成通过识别第一帧和第二帧的匹配像素的区域来形成针对第一帧和第二帧的之间的插值帧的块的双端运动向量候选,所述第一帧和所述第二帧中的像素的区域与所述插值帧的所述块具有预定关系。

该向量处理器可被构造成仅使用来自第一帧和第二帧的像素数据来形成该输出向量。

该向量处理器可被构造成仅使用针对第一帧和第二帧之间的间隔而生成的运动向量候选来形成该输出向量。

该向量处理器可被构造成进一步依赖于结束于与该第二帧的共位块相邻的块中的一个或多个运动向量候选的方向来确定该输出向量的方向。

该输出向量可为始于该第一帧的搜索块的单端向量。

该输出向量可为始于第一帧和第二帧之间的插值帧的块并在第一帧的搜索块具有端点的双端向量。

该数据处理系统可进一步包括插值逻辑器,该插值逻辑器被构造成对该搜索块的像素操作输出向量以生成在第一帧和第二帧之间的插值帧的块。

该数据处理系统可进一步包括编码逻辑,该编码逻辑器被构造成在编码视频流的生成中使用该输出向量。

根据本发明的第二方面,提供了一种用于在帧序列中执行运动估计的方法,该序列包括分别被划分为相应像素块集合的第一帧和第二帧,该方法包括以下步骤:

形成表示第一帧和第二帧之间的像素映射的运动向量候选;并且针对第一帧的搜索块:

识别结束于第二帧的与该第一帧的该搜索块共位的块中的第一运动向量候选;以及

形成针对该搜索块的输出向量,该输出向量基本平行于第一运动向量候选并表示从该搜索块到第二帧的像素映射。

如果针对该搜索块没有运动向量候选,则形成输出向量可被执行。

该方法可以还包括以下步骤:

计算针对每个运动向量候选的得分,每个得分为第一帧和第二帧的在该相应运动向量候选的每一端的像素的相似性的度量;并且

利用该输出向量作为描述从该搜索块到第二帧的像素映射的向量;

其中形成该输出向量的响应于以下而执行:

针对该搜索块可用的一个或多个运动向量候选的得分指示在每个相应运动向量候选的端点的像素之间的低相似性;或

针对该搜索块没有运动向量候选可用。

该方法可包括,响应于至少一个运动向量候选针对搜索块可用,该至少一个运动向量候选具有表示在其端点的像素之间高相似性的得分,不执行该输出向量的形成,并且提供具有指示在其端点像素之间最大相似性的得分的运动向量候选,作为描述从该搜索块到第二帧的像素映射的向量。

该方法可还包括以下步骤:

计算针对每个运动向量候选的得分,每个得分为第一帧和第二帧的在该相应运动向量候选的每一端的像素的相似性的测量;

为该输出向量分配预定得分或依赖于第一运动向量候选的得分而形成的得分;

将该输出向量加到针对该搜索块可用的任何运动向量候选;以及

使用具有表示在其端点像素之间最大相似性的得分的向量,作为描述从该搜索块到第二帧的像素映射的向量。

该方法可以还包括在第一帧的每个块,重复该识别和形成步骤,以当运动向量候选结束于第二帧的相应共位块时,形成针对第一帧的每个块的输出向量。

该输出向量的形成可仅使用来自第一帧和第二帧的像素数据执行。

该输出向量的形成可仅使用关于第一帧和第二帧之间的间隔而生成的运动向量候选来执行。

该输出向量的形成可包括进一步依赖于结束于与该第二帧的共位块相邻的块的一个或多个运动向量候选的方向来确定该输出向量的方向。

计算机程序代码可被提供,定义该数据处理系统,由此该数据处理系统可制造。非暂存计算机可读存储介质可被提供,具有存储其上的计算机可读指令,其当在计算机系统处理用于生成集成电路的表现时,使计算机系统生成该数据处理系统的表现。

计算机可读代码可被提供用于实现执行运动估计的方法。非暂存计算机可读存储介质可被提供,具有存储其上的计算机可读指令,其当在处理器处理时,使处理器实现执行运动估计的方法。

附图说明

本发明现将以示例的形式并参照附图描述。在附图中:

图1示出了示例性的基于块的单端运动估计。

图2示出了来自图1的运动估计结果被用于在来自原始帧序列的两个源帧之间的新帧中插值图像数据。

图3例示了当在帧率转换器中使用单端向量时产生的问题。

图4示出了产生在两个源帧之间的时间上的中点的插值。

图5示出了产生在两个源帧之间的其他点的插值。

图6示出了单端运动估计中的展现区域的简单示例。

图7示出了对使用双端向量的系统特定的遮挡问题的示例。

图8例示了利用附加的源帧的优点。

图9为示出于图8的四个帧的另一例示图。

图10例示了运动估计系统遭遇的遮挡问题。

图11例示了可选的方式的遮挡问题。

图12示出了在帧序列中执行运动估计的数据处理系统。

图13例示了针对如图10和11所示的相同遮挡情形的锯齿形向量的第一集合的生成。

图14例示了针对如图10和11所示的相同遮挡情形的锯齿形向量的第二集合的生成。

图15为说明在帧序列中执行运动估计的方法的流程图。

具体实施方式

如下描述以示例的形式呈现,以使能任何本领域技术人员制造和使用本发明。本发明不限于本文描述的实施例,而且对公开的实施例的多种修改将对本领域技术人员完全显而易见。

需要一种用于运动估计的方法和系统,其使运动向量相对于帧序列中所有像素块生成,并解决用于高质量的运动估计的传统技术的高存储器和处理需求。

在本文描述的示例,用于执行运动估计的方法和系统执行基于块的运动估计。其他类型的运动估计是已知的并且假设本文描述的原理可应用于其他类型的运动估计。本文描述的用于执行运动估计的方法和系统可应用于交错或非交错视频数据。

图10例示了运动估计系统遭遇的遮挡问题。该图示出了在对角线的条纹背景1005前方的静态对象1001(例如白色的人),条纹背景1005相对于该对象以由运动向量1004指示的速度运动。图像的大部分可以在一对帧之间较好地跟踪(例如对象1001全部和背景1005的大部分)。然而,区域1002中的像素将由背景的运动而遮挡,以使其像素在前一帧可见而在不下一帧可见。类似地,区域1003中的像素将由背景的运动展现,以使其像素出现于下一帧而在前一帧不呈现。(请注意相似遮挡区域将出现在示出于图10的帧的左边缘和右边缘,但为简单起见其被省略)。

区域1002和1003的像素无法在前一帧和下一帧之间的当前间隔被跟踪,并且因此在没有进一步信息的情况下无法被正确地插值。因为针对下一/前一帧的区域的像素不存在良好的匹配,所以运动估计系统将趋于针对相应块生成虚假运动向量。这导致绕着运动对象形成错误映射像素的光晕。

图10的遮挡问题以另选方式在图11中例示,其中时间在图中从左到右行进,并且上下方向对应于帧的空间维度。背景区域1005可从前一帧到下一帧向前和从下一帧到前一帧向后这两者良好地跟踪,如由运动向量1105指示。静态白色对象还可被良好地跟踪,如由运动向量1101表示。运动向量1105和1101表示好的向量,因为,当被测试时,在其端点的像素之间发现高相似性。然而,前一帧中区域1002的像素未出现于下一帧,因为其在间隔期间运动到白色对象之后。类似地,下一帧中区域1003的像素未出现在前一帧中,因为其在间隔期间已从白色对象后方展现。三角区域1102和1103因此例示了假想帧中像素的区域,其无法在间隔期间的各个时间间隙正确地插值。

用于执行帧序列中的运动估计的数据处理系统1200示出于图12。现将描述以存储器有效方式可由相对低功率的处理器执行的解决遮挡问题的系统配置。图12的系统仅仅为示例,而其他配置根据本文描述的原理也是可能的。

数据处理系统1200被构造成接收帧流1201,其在该示例中包括视频帧的序列。流中的至少两个连贯帧存储于帧缓冲器1202。这些帧将称为前一帧1203和下一帧1204,指示该帧(相应地)表示当前间隔的开始和结束,一个或多个运动向量相对于当前间隔将被确定。该系统可被构造成识别针对前一帧或下一帧的块的单端向量(例如在系统被构造成执行视频编码的情况下)和/或针对在前一帧和下一帧之间插值的当前帧的双端向量(例如在系统被构造成执行帧率转换的情况下)。每个块表示包括一组像素的前一帧/下一帧/当前帧的区域,该组像素的在前一帧和下一帧之间跨越当前间隔的运动将被识别。

系统的向量生成器1213被构造成针对每个块生成运动向量,该运动向量描述对由前一帧和下一帧之间的块表示的像素运动的最佳估计。其可实现如下。向量生成器1213包括像素匹配器1206,前一帧1203和下一帧1204对像素匹配器1206可用。该像素匹配器搜索前一帧和下一帧,以识别与所考虑的块对应的在前一帧和下一帧中的像素的相似组。其针对每个块生成一个或多个向量,所述向量描述前一帧和下一帧中的最佳相互匹配区域的相对位置。该像素匹配器可根据任何合适的算法来查找像素的相似组以生成单端和/或双端向量。像素匹配器可基于在两个组的像素之间的差异的测度,来确定两个帧中像素组的相似性,该差异例如给定像素值中绝对差的和(SAD)或方差均值(MSD),该给定像素值诸如颜色或亮度。例如,该像素匹配器可用上述关于图3的方式生成单端向量和/或以上述关于图4的方式生成双端向量。由该像素匹配器生成的一个或多个单端向量或双端向量作为运动向量候选1209被提供至候选缓冲器1208。例如,在被构造成执行双端运动估计的系统中,针对块识别的表示最佳匹配的三个双端向量可被提供至候选缓冲器。

该像素匹配器在前一帧和下一帧中搜索的像素可根据预定模式或依赖于附加的信息进行选择。例如,搜索区域可依赖于针对该块或关于一个或多个先前间隔的相邻块创建的运动向量(或其派生)进行选择,和/或搜索区域可基于像素区域的颜色或亮度值的相似性进行选择。

在实际中,通常不可能查找像素块在帧间的每个可能映射,并且由其像素表示的对象可在帧间由于其在场景中运动而改变大小或方向。结果,并非总是可能单独通过连贯帧的像素匹配搜索来识别最合适的运动向量。因此,可以有利的是生成附加的候选向量用于评估。

可选地设置第二向量生成器1205以生成通过前一帧和下一帧之间的匹配像素以外的机制导出的任何数量的不同向量候选。该第二向量生成器可相对于向量生成器的操作而在任何合适的时间操作。

针对块的其他向量候选可由第二向量生成器以多种方式生成。已知运动向量在空间和时间上均与邻接块的向量高度相关,因此第二向量生成器1205可将相邻向量引入针对块的向量候选的集合中。当邻近向量表示像素之间的良好匹配(例如,具有低的SAD)并且由像素匹配器创建的最佳向量表示差的匹配(例如具有高的SAD)时,这尤其有用。第二向量生成器1205基于相对于前一间隔针对块计算的输出运动向量,或基于形成于前一间隔的结束于该块的运动向量而提供一个或多个候选。

该第二向量生成器可以另选地或附加地生成一个或多个伪随机向量候选,以使系统改进其匹配并在帧序列中的运动改变时引入自适应要素。在块具有其邻居不能简单预测的运动的情况下,向量候选的伪随机扰动通常可预测运动的变化。该方法对缓慢改变的向量场运行良好。

在候选缓冲器1208中针对块保持的向量候选1209被评估,以确定哪个候选表示针对块的运动向量的最佳估计。该评估在候选评估器1211执行。该候选评估器可以任何合适的方式确定向量生成器的最佳向量输出。例如,评估器可比较前一帧和下一帧的在向量的各端的像素组,以确定其组的相似性。

在本示例中,形成误差得分,该误差得分表示由每个候选向量指示的像素组对的相似的程度,以允许向量的比较。该误差得分例如可基于两个组的像素之间的差异测度来确定,差异例如给定像素值的绝对差的和(SAD)或方差均值(MSD),给定像素值诸如颜色或亮度。误差得分可进一步依赖于针对邻近块生成的向量的相似性,以使该块的误差得分为其端点块之间的像素差异的复合度量以及关于相邻块形成的向量的相似性的度量。本领域已知多种算法用于生成误差得分,其中包括迭代算法,其形成向量的初始集合,所述向量仅基于像素相似性选择,然后基于邻近向量的相似性来提炼。在另选示例中,针对向量可以形成其他类型的得分,作为向量中置信度的测度,例如向量表示帧之间的真实运动的置信度。

在本文描述的示例中,具有最低误差得分的向量被选择为向量生成器的最佳向量输出,因为较低误差得分指示在其端点的像素之间的较高相似性。在其它示例中,可使用其他相似性测量,包括高值表示在其端点的像素之间高等级相似性的测度

在本示例中,该候选评估器对前一帧和下一帧中的像素值操作并因此被提供对像素数据1210的访问。其可限于评估器用于形成每个向量候选的误差得分需要的像素数据,或前一帧和下一帧的像素值可对评估器整体可用(例如,评估器可操作以在帧缓冲器1202中执行查找)。

可以有利的是向候选评估器1211提供由像素匹配器1206生成的数据,如由图12的虚线箭头指示。例如,如果像素匹配器通过匹配前一帧和下一帧中的像素组来识别向量候选,则像素匹配器可生成数据,评估器在确定由像素匹配器生成的候选的误差得分时可使用该数据。在某些实现方式中,像素匹配器可提供误差得分本身用于由像素匹配器生成的候选:例如,在像素匹配器计算针对候选向量的绝对差的和(SAD)并且候选评估器使用该绝对差的和作为针对每个向量的误差得分的情况下。

用于确定针对块的最合适的向量的其他方法是已知的,并且任何方法可结合根据本文描述的原理的锯齿形向量的生成来使用。

当以传统方式配置时,向量生成器1213遭遇上述关于图10和11的遮挡问题。为解决该问题,系统1200包括锯齿形向量处理器1207,其仅基于前一帧和下一帧在遮挡区域中提供向量候选。

在优选的示例中,当来自向量生成器的最佳向量输出的误差得分高于预定阈值时生成锯齿形向量。换言之,当针对块的最佳向量候选表示前一帧和下一帧之间的差的像素匹配时,可以针对该块生成锯齿形向量。其可通过使用检查逻辑器1220来实现,其被构造成检查向量生成器1213的最佳向量输出的误差得分是否高于预定阈值。检查逻辑器可与候选评估器一体或在系统其他任何要素处提供并被考虑作为候选评估器的功能。在图12,检查逻辑器被示出为不同于候选评估器,但这仅为一种可能性。由候选评估器确定的最佳向量的误差得分可以与最佳向量一起传递,以免需要检查逻辑器1220重新计算误差得分。

如果最佳向量输出的误差得分指示该向量表示前一帧和下一帧之间的差的匹配(例如,其得分高于预定阈值),则检查逻辑器使锯齿形向量处理器1207生成针对与该最佳向量输出有关的块的锯齿形向量。如果最佳向量输出的误差得分指示该向量表示前一帧和下一帧之间良好的匹配(例如,其得分低于预定阈值),则最佳向量输出可被提供至向量存储器1212以进行存储,作为描述前一帧和下一帧之间当前间隔的向量场元素。在检查逻辑器1220使用的合适的预定阈值通过尝试和误差针对系统1200的特定实现可被确定。这种阈值可被选择以,例如,优化系统的(例如)编码/插值视频输出的质量和/或减少由于锯齿形生成而针对每一帧的附加处理开销。附加地或另选地,对于被构造成默认生成锯齿形向量(例如对所有块)的系统中的给定阈值(例如,固定阈值),向量候选的误差得分可被修改以促进或禁止锯齿形向量的使用。例如,惩罚项可被加入锯齿形向量的误差得分以抵制其使用而进行偏置。这在锯齿形向量的误差得分根据其组成向量的误差得分来生成时可用,例如总体上,锯齿形向量的误差得分可被定义为作为其基础的块向量的误差得分加上惩罚值。

现将参照例示了如图10和11所示相同的遮挡情形的图13和14说明锯齿形向量的生成。

在系统中,序列的帧(以及生成的任何帧,诸如图13和14的插值帧1306)可被划分为像素块的公共集合,以使对于给定帧中的每个块,在每个其他帧中存在共位(但在这种情况下在时间上分离)的块。另选地,每一帧可划分为针对该帧选择的块的集合(可能基于帧的内容),并且锯齿形向量处理器识别先前/下一帧的哪个块与在生成锯齿形向量时所考虑的块共位(例如生成器可查找相应先前/下一帧的哪个块位于定义针对其生成了锯齿形向量的输出块的中心坐标)。

为清晰起见,图13集中于在执行双向运动估计的系统针对遮挡区域1002生成锯齿形向量,以在前一帧和下一帧之间形成插值的当前帧1306。与图11相关,以上描述了仅从前一帧和下一帧不可能针对遮挡区域1002生成正确的运动向量。这导致图11的区域1102,针对该区域1102,对在时间t=0的前一帧和时间t=1的下一帧之间的插值帧不可能正确地生成像素。示出于图12的向量生成器的锯齿形向量处理器被构造成通过针对该区域中的块创建向量1301,向量1301平行于在该对的另一帧的对应块中结束的向量来针对遮挡区域1002生成向量。这些向量1301为锯齿形向量。

现将描述特定锯齿形向量1302的创建。在附图中所示的示例中,通过搜索前一帧和下一帧中的匹配像素组而针对当前帧的块1307生成双向运动向量1303。匹配像素组在先前和当前帧中向量1303的端点被发现,以使向量表示像素组从前一帧到下一帧的运动。良好的匹配不会发现于前一帧的区域1002的块的下一帧,因为区域在帧间变为遮挡。

为对区域1002的块生成向量,锯齿形向量处理器寻找具有下一帧的共位块的端点的单端或双端向量。例如,为生成块1305的向量,锯齿形向量处理器识别下一帧中的共位块,如由虚线1304表示。锯齿形向量处理器创建块1305的向量,其平行于结束于下一帧的共位块的双向向量1303。该向量为锯齿形向量1302,如图13所示。锯齿形向量可为单端或双端,但仅当从前一帧到下一帧插值时有效。

图14附加地例示了针对下一帧的区域1003的锯齿形向量的生成。该区域在前一帧和下一帧之间展现,并且因此不可能在前一帧中找到针对区域1003的块的像素的匹配。图14包括来自图11的不确定性的三角区域1103和1102。锯齿形向量的创建使针对这些区域在间隔期间的多个时间间隙,像素被正确地插值。

以关于图13的描述相同的方式,锯齿形向量处理器基于在前一帧的相应共位块中具有端点的向量,创建针对区域1003的块的锯齿形向量。例如,为了生成针对块1406的向量,锯齿形向量处理器识别前一帧中的共位块,如由虚线1402表示。锯齿形向量处理器创建针对块1406的向量,该向量平行于在前一帧的共位块中结束的双向向量1401。该向量为如图14所示的锯齿形向量1403。该锯齿形向量仅当从下一帧到前一帧插值时有效。

如由箭头1221表示,锯齿形向量处理器能够访问存储了由向量生成器生成的最佳向量输出的向量存储器1212。锯齿形向量处理器查找向量存储器中针对共位块定义的向量,以创建锯齿形向量。如果生成特定块的锯齿形向量所需要的向量信息在需要的点未出现于向量存储器,则锯齿形向量处理器会经历延迟。多种机制可用于解决该问题。例如,锯齿形向量处理器可针对其中要进行锯齿形向量生成的块提供输入队列,其中该生成器被构造成连续地或周期性地在输入队列的块中循环-如果需要的向量为未出现,则生成器将移向队列中的下一块;如果需要的向量出现,则生成器创建相应锯齿形向量然后移向队列中的下一块。换言之,输入队列使锯齿形向量处理器相对于向量生成器的输出异步地执行处理。在其它示例中,锯齿形向量处理器可被构造成延迟处理,直到向量可用于某些预定比例的块为止或直到向量生成器已处理当前间隔的所有块为止(例如锯齿形向量处理器可处理一个间隔的块,同时向量生成器处理下一间隔的块)。

总体上,锯齿形向量可针对块而被生成,作为与在该对的另一帧的共位块中结束的单端或双端向量基本平行的单端或双端向量。单端锯齿形向量将被指向,以开始于考虑中的块并在定义当前间隔的对的另一帧中结束。在本示例的系统1200中,单端、双端或双端和单端锯齿形向量的混合可被生成。任何单端向量可被简单转换为双端向量,反之亦然。例如,为了在当前间隔的时间中点创建双端向量,单端向量可在其中点被划分而包括相等和相反的前向和后向部分的双端向量被存储于该中点处。在使用双端锯齿形向量时,系统1200被构造成针对来自等效单端锯齿形向量(例如,单端锯齿形向量,从其创建双端锯齿形向量)的来源的双端锯齿形向量的块对像素进行差值。系统可被设置以存储识别由锯齿形向量处理器生成的每个双端向量的插值的有效方向的信息。在某些示例中,由于在单端和双端向量之间转换是简单的,存储于系统中的单端向量可被解析以用作双端向量,其中不执行明显的转换步骤。

在示出于图中的示例,锯齿形向量描述为单端锯齿形向量。

针对帧生成的锯齿形向量不需要准确地平行于在该对的另一帧的共位块中结束的向量。可以有利的是,依赖于结束于共位块的向量的一个或多个相邻向量的方向来选择锯齿形向量的方向。例如,锯齿形向量处理器可使用针对块的锯齿形向量的平均方向(例如均值方向),其依赖于结束于共位块的向量方向和一个或多个其相邻向量的方向来计算。在其它示例中,可用于锯齿形向量的方向可被限制以使锯齿形向量处理器被构造成选择与相应共位块最接近地匹配的向量(例如锯齿形向量可被约束成在块中的特定点(诸如其中心)结束)。

从图13和14可以理解锯齿形向量为什么通常表示针对传统技术不能提供良好向量候选的块的合适的向量候选。参见图13,锯齿形向量1301继续到不能生成良好的向量的该帧的区域中,块在当前间隔上的映射由良好的向量1105表示。然而,锯齿形向量不总针对该块提供合适的向量,并且因此优选的是,锯齿形向量仅使用于更好的选项(例如,如根据诸如误差得分这样的相似性测度确定)不可用时。

相比于传统系统,诸如使用附加的过去帧和将来帧来估计合适的向量的系统(参见以上关于图8和9的讨论),根据本文描述的原理的锯齿形向量的生成在在帧的不确定区域中生成向量方面提供了很多优点。生成锯齿形向量避免了使用附加的过去和将来帧,并允许根据相对于连贯帧对之间的间隔可用的像素和向量信息生成针对帧的不确定区域的向量。其减少了为了生成针对帧之间的间隔的向量场而考虑的搜索空间并降低了延迟,因为被构造成生成锯齿形向量的系统不需要等待将来帧(例如,在间隔的下一帧之后的帧)。此外,锯齿形向量的生成基本不增加由运动估计系统执行的处理:不需要对照前一帧和下一帧的像素数据来测试锯齿形向量(已知不能找到良好的像素匹配)并且该方案利用了系统中已生成的向量。由于不需要过去帧和将来帧,且不需要相对于在过去和前一帧之间间隔而生成的向量场(参见图9),被构造成生成锯齿形向量的运动估计系统的存储器需求显著低于传统系统。

在特定实现方式中,有可能超过一个向量结束于共位块(在运动估计系统中,向量的端点典型地以子像素分辨率指定)。在这些情况下,具有最佳相似性测度(例如,最低误差得分)的向量可被选择。相似性的测度可由锯齿形向量处理器计算或向量存储器可进一步被构造成存储针对每个向量的该测度(例如,误差得分),以使得在不需要对测度的重新计算的情况下能够进行选择。

在某些情况下,将不可能在检查逻辑器1220表示要生成锯齿形向量的块中生成锯齿形向量。例如,如果该对的另一帧的共位块本身不具有生成锯齿形向量的向量,则这会发生。适用于系统的特定实现方案的多种技术对处理没有向量可用的块是已知的,并且想到任何这样的技术可结合数据处理系统1200使用。

为看识别哪个向量结束于共位块,可以需要锯齿形向量处理器确定针对该对的另一帧生成的单端向量中的哪个结束于共位块和/或确定针对插值帧生成的双向向量中的哪些结束于共位块。依赖于系统的构造和存储于向量存储器中的信息,这可能需要锯齿形向量处理器执行计算以确定一个或多个单端向量或双向向量的投影端点。

锯齿形向量处理器可以按照对图12中示出的示例多个可选的形式实现。例如,锯齿形向量处理器1207可被构造成生成锯齿形向量,并且并不提供至向量存储器121,而是提供至候选缓冲器1208,连同块的其他向量候选作为在候选评估器1211中的进行评估的候选。锯齿形向量处理器可在当前间隔的某些或所有块中生成锯齿形向量(至少针对存在锯齿形向量的块)。由于锯齿形向量意图针对处于帧区域(在该对的另一帧中不具有等同物)中的块提供向量候选,在锯齿形向量的任一端处的像素块的比较典型地将不产生有意义的误差得分。因此针对每个锯齿形向量可以选择合适的得分。其允许候选评估器1211从针对块的候选集合选择最佳向量输出,其中该候选的集合包括锯齿形向量。

优选地针对锯齿形向量选择得分,目标在于确保锯齿形向量仅在其他向量候选具有差的误差得分的情况下才被选择。这避免了锯齿形向量优先于可能具有相对差的误差得分但表示前一帧和下一帧之间真实像素映射的另一候选而被选择。例如,预定得分可用于所有锯齿形向量,初始得分可依赖于帧的特性或帧流的向量场动态地调整,或得分可依赖于向量所基于的一个或多个向量的得分而针对锯齿形向量生成(例如,锯齿形向量可继承作为其基础的向量得分,并且加上惩罚值以防止使用锯齿形向量除非其他向量候选具有差的误差得分)。要应用于在锯齿形向量处理器1207生成的锯齿形向量的合适的预定或初始得分可经验上确定,以优化使用数据处理系统1200的向量场输出的系统的输出的图像质量。

为了生成锯齿形向量,良好的向量必须针对前一帧和下一帧的块可用。在锯齿形向量提供为用于评估的向量候选的情况下,候选评估器可被构造成对由像素匹配器1206(以及另选地第二向量生成器1205)生成的候选操作以识别良好的向量,然后至少对由向量生成器生成的块的最佳向量候选以及块的锯齿形向量(可能还包括由第二向量生成器1205引入的其他候选)操作。向量候选估计的两步骤方案可对间隔的某些或所有块指向,或仅仅对由向量生成器生成的最佳候选具有高于某些预定等级的误差得分的块来执行。

在所有实现方式中,可以有利的是将锯齿形向量处理器配置成如果在共位块中结束的向量具有高于预定等级的误差得分则不生成锯齿形向量。这确保锯齿形向量仅基于系统相信表示前一帧和下一帧之间的像素运动的良好的向量而生成。

数据处理系统1200可被构造成多种不同方式使用生成针对当前间隔生成并以存储于向量存储器1212的向量场。用于运动估计的数据处理系统的两个示例性实现如下描述。通常需要保持关于一对帧生成的向量场以在处理后续帧时使用(例,如在视频编码器中,多个帧对的向量场可用于单个帧的编码)。该系统可被构造成更新在向量存储器1212针对间隔保持的向量场,以包括针对该间隔生成的锯齿形向量。这允许锯齿形向量在处理帧流的其他部分时被使用。另选地,系统可被构造成不更新针对间隔的向量场以包括锯齿形向量并且将其锯齿形向量的使用限制在已经创建了锯齿形向量的间隔的处理。在这种情况下锯齿形向量可被存储于向量存储器1212但合适地标记以识别为锯齿形向量。例如,锯齿形向量可在帧率转换器中使用以在当前间隔中生成插值帧,但针对该间隔的向量场不被更新以包括锯齿形向量。有时,锯齿形向量可表示差的像素映射并且这可避免这种误差在帧对之间的多个间隔中传播。

在第一示例中,数据处理系统为帧率转换器并包括插值逻辑器1214,插值逻辑器1214被构造成使用针对在一对连贯帧之间的间隔而生成的向量场,以在间隔内生成一个或多个插值帧1216。例如,插值逻辑器1214可被构造成通过在连贯帧的每个对之间的中点生成插值帧而将视频流1201的帧率加倍。图13示出了这种插值的“当前帧”1306位于前一帧和下一帧之间的当前间隔的中心。可以使用任何合适的插值技术,其根据前一帧和下一帧的像素数据1215以及根据本文描述的原理生成的针对当前间隔的向量场(保持在向量存储器1212中)形成新帧。根据本文描述的原理生成的向量场可包括锯齿形向量。

总体上说,插值技术通过识别穿过插值帧的每个块(例如图13的1307)的向量并且将前一帧和/或下一帧的像素根据穿过该块的向量映射到每个块上来构建插值帧。例如,在图13,双向向量1303可指示当前帧1306的像素块1307要根据在向量端点的前一帧和下一帧的像素形成。这是因为向量1303表示前一帧和下一帧的像素在当前间隔上的运动的线性估计。典型地,将采用算法以将通过向量场映射到当前帧中的交叠像素混合在一起。多种其他插值方法也是可能的。

在第二示例中,数据处理系统为视频编码器并包括编码逻辑器1217,该编码逻辑器1217被构造成使用针对一对连贯帧之间的间隔而生成的向量场,以将视频流1201编码成压缩格式1219。根据本文描述的原理生成的向量场可包括锯齿形向量。例如,编码逻辑器可利用从存储于向量存储器1212的向量场获取的编码信息周期性地替换一个或多个流帧的序列,该编码信息描述了紧接在帧序列之前和之后的基准帧的像素在由该序列表示的时间段内如何运动。当被提供在前和后续基准帧时,编码信息使帧序列能够在解码器大量重建。如本领域公知,可采用算法以创建无法从存在于基准帧(例,如来自邻近像素)中生成的像素的像素。

不同类型的运动估计可对向量带来不同需求。例如在视频编码器应用中,需求典型地为通过使用运动向量来引用来自序列的前一帧的基准像素数据,形成帧的最紧凑表示。这些运动向量总体上集中于提供对像素数据块的“最接近的匹配”(或最低残留误差),并且尽管得到的运动向量同城表示场景中的对象的实际运动,但不需要始终为这种情况。在其它应用中,诸如解交织或帧率转换,其中帧中的对象在源帧中其位置之间的中间位置被插值,更重要的是运动向量表示场景中的对象的“真实运动”,即使视频中的其他失真表示那些向量并不总是给出像素数据的块之间的最接近的匹配(或最低残留误差)。通过在运动搜索期间对候选运动向量应用合适的约束,结果必要时可被引导向“最接近的匹配”或“真实运动”。

根据本文描述的原理例示用于在帧序列中执行运动估计的方法流程图示出于图15。该方法可由上述数据处理系统1200执行。最初,第一帧和第二帧被接收1501,其定义其中要进行运动估计的当前间隔,以生成描述第一帧和第二帧之间的像素运动的向量场。根据任何合适的技术针对当前间隔形成运动向量候选1502,以识别帧之间像素可能的映射。运动向量候选可为单端向量或双端向量。

在运动向量候选的形成之后或同时,第一帧的搜索块被初始化1503。这可响应于针对该搜索块没有识别良好的运动向量候选而执行。按照上述关于图13和14的方式,在与第一帧的搜索块共位的第二帧的块中具有的端点的运动向量候选被识别1504并且输出锯齿形向量被形成1505,该输出锯齿形向量基本平行于所识别的运动向量候选。锯齿形向量表示从搜索块到第二帧的像素映射。锯齿形向量可为始于搜索块的单端向量,或始于第一帧和第二帧之间的插值帧的块的双端向量。

由步骤1503-1505表示的处理可进一步在第一帧的搜索块上重复1506,以生成附加的锯齿形向量。形成于步骤1502的运动向量候选和形成于步骤1505的锯齿形向量表示第一帧和第二帧之间的当前间隔的输出向量场1507,其可用于,例如,在当前间隔中生成一个或多个插值帧。第一帧可在序列中在第二帧之前或之后,并且应当理解的是,第一帧和第二帧的角色可被反转,以形成表示从第二帧到第一帧的像素映射的锯齿形向量。

想到本文描述的技术可使用于描述两个或多个帧的序列中像素组的映射的任何类型的运动向量,包括单端向量和双端向量。在本文描述的示例中,基于块的运动估计被执行。其他形式的运动估计也是可能的,其中锯齿形向量可根据所描述的原理生成。块可指代一个或多个像素的任何连续组,像素组具有任何形状。如本领域已知的,不同的帧可具有为其定义的不同的块。块不需要在帧内或在帧间随时间具有恒定大小或形状;块的大小和/或形状可基于帧流特性而调整。

帧可为表示或解释为像素的集合的任何类型的图像信息。帧流可为来自任何源的帧序列,包括:视频;静态图像序列,诸如来自工作于脉冲模式的照相机的照片序列;渲染的图像序列或表示渲染的3D场景的图像。帧序列可以时间为顺序或不以时间为顺序。例如,帧序列可根据时间以外的某些基础进行排序:例如帧的集合可根据其总体相似性测量排序,或图像的集合可根据每一个图像被捕获的位置排序。

图12的数据处理系统示出为包括多个功能块。其仅为示意性的而非意图定义数据处理系统不同的逻辑元件之间的严格划分。每一个功能块可提供于任何合适的方式。

根据本文描述的原理配置的数据处理系统可应用于硬件(例如作为集成电路,其处理执行于二进制逻辑)和/或软件(例如作为运行于处理器的例程集合,诸如具有对用于存储像素数据,运动向量数据以及其他值的一个或多个存储器进行访问的图形处理单元(GPU)或中央处理单元(CPU))。

术语软件,程序代码和计算机可读代码包含可执行代码,用于处理器(例如CPU和/或GPU),固件,字节码,编程语言代码诸如C或OpenCL和模块,用于可重配置逻辑设备诸如FPGA。计算机可读代码进一步包括在任何等级定义集成电路的表示的代码,包括在寄存器传输等级(RTL),高级电路表示,诸如Verilog或VHDL和较低等级表示诸如OASIS和GDSII。当执行于配置用于生成集成电路硬件表示的计算机系统时,该定义集成电路表示的代码可使计算机系统生成根据代码定义的集成电路。代码可包括电路元件定义和/或合并电路元件的规则。用于合并所定义的电路元件的某些或所有规则可提供于计算机系统作为默认规则,用于从该计算机可读代码生成硬件格式的集成电路的表示。

本文描述的算法和方法可由一个或多个物理处理单元执行软件执行,其使该单元执行算法/方法。该或每个物理处理单元可为任何合适的处理器,诸如CPU或GPU(或其内核),或固定函数或可编程硬件。机器可读代码可以非暂存形式存储于机器可读介质,诸如集成电路存储器,或光或磁存储。机器可读介质可包括某些存储器,诸如片上存储器,计算机工作存储器和非易失性存储设备。

申请人在此公开本文描述的每个独立的特征和两个或多个特征的任何组合,以使该特征或组合能够由本领域技术人员根据常规知识基于整体的说明书实现,而与该特征或特征的组合是否解决了本文公开的任何问题无关,并且不限于权利要求的范围。申请人表示,本发明的各方面可包括任何独立的特征或特征的组合。从在前描述中,本领域技术人员显而易见,多种修改可在本发明的范围内进行。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1