首页 / 专利库 / 视听技术与设备 / 块匹配运动估计 / 用于视频编码的运动估计的系统和方法

用于视频编码运动估计的系统和方法

阅读:844发布:2020-05-15

专利汇可以提供用于视频编码运动估计的系统和方法专利检索,专利查询,专利分析的服务。并且技术涉及用于 视频编码 的 运动估计 。,下面是用于视频编码运动估计的系统和方法专利的具体信息内容。

1.一种计算机实现的用于视频编码运动估计的方法,包括:
接收像素数据的多个;以及
进行搜索,以通过寻找基准帧上的相对于当前帧上的对应定位的像素数据的最佳匹配块,来寻找最佳运动矢量,所述搜索包括:
在所述基准帧处确定初始搜索图案布置的多个候选匹配块位置点中的最佳匹配块位置(MBL)点;
将精细化搜索图案布置定位在所述最佳匹配块位置点处;
测试所述精细化搜索图案布置的候选匹配块位置点,以确定新的最佳匹配块位置点;
以及
将所述精细化搜索图案布置的中心移位到所述新的最佳匹配块位置点,而不检查所述精细化搜索图案布置中所包括的所有候选匹配块位置点,
其中,所述初始搜索图案布置和精细化搜索图案布置之一或二者是具有最大完全布置的对数布置,所述最大完全布置包括:
在步长1处的具有四个候选匹配块位置点的菱形图案;
在步长2、4、8和16处的均具有八个候选匹配块位置点的菱形图案;以及在步长32处的形成没有的菱形的边并且具有12个候选匹配块位置点的菱形图案,在菱形形状的对角边上各自具有三个候选匹配块位置点,
其中,所述步长是距所述搜索图案布置的中心的单位距离。
2.如权利要求1所述的方法,包括:
形成多个预定区段的所述精细化搜索图案布置;以及
在已经测试了区段中的所有匹配块位置点之后,移位所述精细化搜索图案布置的中心。
3.如权利要求2所述的方法,其中,每个区段是图案,并且所述精细化搜索布置由以下之一或二者形成:
带不同形状的不同图案;和
缩放为与所述中心相距多个不同步长的多个相同图案,其中,步长是沿着从所述中心到所述图案中的匹配块位置点的直线延伸的距离单位,
其中,图案包括定义形状中的定义数量的候选匹配块位置点。
4.如权利要求3所述的方法,其中,图案沿所述中心周围的圈延伸。
5.如权利要求3所述的方法,其中,当检查单个步长处的图案上的所述多个候选匹配块位置点中的至少一个候选匹配块位置点之后找到所述新的最佳匹配块位置点时,移位所述中心。
6.如权利要求5所述的方法,其中,在检查单个步长处的图案上的所有多个候选匹配块位置点之后,移位所述中心。
7.如权利要求3所述的方法,包括:减小步长大小,以检查逐渐更靠近所述精细化搜索图案布置的中心的图案上的候选匹配块位置点。
8.如权利要求7所述的方法,包括:在检查所述初始搜索图案布置之后紧接着检查第一精细化搜索图案布置时,降低将检查的图案的步长。
9.如权利要求7所述的方法,其中,当在当前图案上没有找到新的最佳匹配块位置点时,减小所述步长,以检查更靠近所述精细化搜索图案布置的中心的图案。
10.如权利要求3所述的方法,包括:设定围绕移位后的中心延伸的所述精细化搜索图案布置的图案的最大步长,以确定精细化后的最佳匹配块位置点,并且将该最大步长设定为与在移位所述中心之前具有前一搜索图案布置的最佳匹配块位置点的图案的步长相同。
11.如权利要求1所述的方法,其中,所述中心被移位多次。
12.如权利要求1所述的方法,包括:通过以下项中的至少一个来限制中心可以移位的次数:
固定次数,
与运动矢量长度的可允许范围或值的关联,以及
用于检查精细化搜索图案布置的持续时间。
13.如权利要求1所述的方法,包括:
形成多个预定区段的所述精细化搜索图案布置;以及
在已经测试了区段中的所有匹配块位置点之后,移位所述精细化搜索图案布置的中心;
其中,每个区段是图案,并且所述精细化搜索布置由以下之一或二者形成:
带不同形状的不同图案;和
缩放为与所述中心相距多个不同步长的多个相同图案,其中,步长是沿着从所述中心到所述图案中的匹配块位置点的直线延伸的距离单位
其中,图案包括定义形状中的定义数量的候选匹配块位置点;
其中,图案沿所述中心周围的圈延伸;
其中,当在检查以下项之一之后找到所述新的最佳匹配块位置点时,所述中心移位:
检查单个步长处的图案上的所述多个候选匹配块位置点中的至少一个候选匹配块位置点;
在检查单个步长处的图案上的所有多个候选匹配块位置点之后;
所述方法包括:
减小步长大小,以检查逐渐更靠近所述精细化搜索图案布置的中心的图案上的候选匹配块位置点;
在检查所述初始搜索图案布置之后紧接着检查第一精细化搜索图案布置时,降低将检查的图案的步长,其中,当在当前图案上没有找到新的最佳匹配块位置点时,减小所述步长,以检查更靠近所述精细化搜索图案布置的中心的图案;
设定围绕移位后的中心延伸的所述精细化搜索图案布置的图案的最大步长,以确定精细化后的最佳匹配块位置点,并且将该最大步长设定为与在移位所述中心之前具有前一搜索图案布置的最佳匹配块位置点的图案的步长相同,其中,所述中心移位多次;
通过以下项中的至少一个来限制所述中心可以移位的次数:固定次数,与运动矢量长度的可允许范围或值的关联,以及用于检查精细化搜索图案布置的持续时间。
14.一种计算机实现的系统,包括:
显示器;
存储器
至少一个处理器,以通信方式耦合到所述存储器和显示器;以及
运动估计单元,由所述至少一个处理器操作并被布置为:
接收像素数据的多个帧;
进行搜索,以通过寻找基准帧上的相对于当前帧上的对应块定位的像素数据的最佳匹配块,来寻找最佳运动矢量,所述搜索包括:
在所述基准帧处确定初始搜索图案布置的多个候选匹配块位置点中的最佳匹配块位置(MBL)点;
将精细化搜索图案布置定位在所述最佳匹配块位置点处;
测试所述精细化搜索图案布置的候选匹配块位置点,以确定新的最佳匹配块位置点;
以及
将所述精细化搜索图案布置的中心移位到所述新的最佳匹配块位置点,而不检查所述精细化搜索图案布置中所包括的所有候选匹配块位置点,
其中,所述初始搜索图案布置和精细化搜索图案布置之一或二者是具有最大完全布置的对数布置,所述最大完全布置包括:
在步长1处的具有四个候选匹配块位置点的菱形图案;
在步长2、4、8和16处的均具有八个候选匹配块位置点的菱形图案;以及在步长32处的形成没有角的菱形的边并且具有12个候选匹配块位置点的菱形图案,在菱形形状的对角边上各自具有三个候选匹配块位置点,
其中,所述步长是距所述搜索图案布置的中心的单位距离。
15.如权利要求14所述的系统,其中,所述处理器被布置为:
形成多个预定区段的所述精细化搜索图案布置;以及
在已经测试了区段中的所有匹配块位置点之后,移位所述精细化搜索图案布置的中心。
16.如权利要求15所述的系统,其中,每个区段是图案,并且其中,所述精细化搜索布置由以下之一或二者形成:
带不同形状的不同图案;和
缩放为与所述中心相距多个不同步长的多个相同图案,其中,步长是沿着从所述中心到所述图案中的匹配块位置点的直线延伸的距离单元,
其中,图案包括定义形状中的定义数量的候选匹配块位置点。
17.如权利要求16所述的系统,其中,图案沿所述中心周围的圈延伸。
18.如权利要求16所述的系统,其中,当在当前图案上没有找到新的最佳匹配块位置点时,减小所述步长,以检查更靠近所述精细化搜索图案布置的中心的图案。
19.如权利要求16所述的系统,其中,所述处理器被布置为:设定围绕移位后的中心延伸的所述精细化搜索图案布置的图案的最大步长,以确定精细化后的最佳匹配块位置点,并且将该最大步长设定为与在移位所述中心之前具有前一搜索图案布置的最佳匹配块位置点的图案的步长相同。
20.如权利要求16所述的系统,其中,当在以下项之一下找到所述新的最佳匹配块位置点时,所述中心移位:
在检查单个步长处的图案上的所述多个候选匹配块位置点中的至少一个候选匹配块位置点之后;
在检查单个步长处的图案上的所有多个候选匹配块位置点之后。
21.如权利要求14所述的系统,其中,所述中心被移位多次。
22.如权利要求14所述的系统,包括:通过以下项中的至少一个来限制中心可以移位的次数:
固定次数,
与运动矢量长度的可允许范围或值的关联,以及
用于检查精细化搜索图案布置的持续时间。
23.如权利要求14所述的系统,其中,所述运动估计单元被布置为:
形成多个预定区段的所述精细化搜索图案布置;以及
在已经测试了区段中的所有匹配块位置点之后,移位所述精细化搜索图案布置的中心,其中,每个区段是图案,并且所述精细化搜索布置由以下形成:
带不同形状的不同图案;和
缩放为与所述中心相距多个不同步长的多个相同图案,其中,步长是沿着从所述中心到所述图案中的匹配块位置点的直线延伸的距离单位,
其中,图案包括定义形状中的定义数量的候选匹配块位置点;
其中,图案沿所述中心周围的圈延伸;
其中,当在检查以下项之一之后找到所述新的最佳匹配块位置点时,所述中心移位:
检查单个步长处的图案上的所述多个候选匹配块位置点中的至少一个候选匹配块位置点,以及
在检查单个步长处的图案上的所有多个候选匹配块位置点之后;
所述运动估计单元被布置为:
减小步长大小,以检查逐渐更靠近所述精细化搜索图案布置的中心的图案上的候选匹配块位置点;
在检查所述初始搜索图案布置之后紧接着检查第一精细化搜索图案布置时,降低将检查的图案的步长,其中,当在当前图案上没有找到新的最佳匹配块位置点时,减小所述步长,以检查更靠近所述精细化搜索图案布置的中心的图案;
设定围绕移位后的中心延伸的所述精细化搜索图案布置的图案的最大步长,以确定精细化后的最佳匹配块位置点,并且将该最大步长设定为与在移位所述中心之前具有前一搜索图案布置的最佳匹配块位置点的图案的步长相同,其中,所述中心移位多次;
通过以下项中的至少一个来限制所述中心可以移位的次数:固定次数,与运动矢量长度的可允许范围或值的关联,以及用于检查精细化搜索图案布置的持续时间。
24.一种装置,包括用于执行如权利要求1-13中任一项所述的方法的单元。
25.一种机器可读介质,存储有多个指令,所述指令响应于在计算设备上执行而使所述计算设备执行如权利要求1-13中任一项所述的方法。

说明书全文

用于视频编码运动估计的系统和方法

背景技术

[0001] 归因于视频分辨率日益增加以及对高质量视频图像的期待上升,对于视频的高效图像数据压缩存在较高需求,而对于用现有视频编码标准(例如H.264或H.265/HEVC(高效率视频编码)标准)进行编码而言,性能是有限的。前述标准使用传统方法的扩展形式来解决压缩/质量不足的问题,但是结果仍是不足的。
[0002] 这些视频编码处理在编码器处使用间预测来减少时间(帧至帧)冗余性。运动估计是编码器中的关键操作。运动估计是寻找与基准帧的区域最相似的正编码的帧的区域以便寻找运动矢量的处理。运动矢量用于构造关于编码的预测。预测数据与真实(原始)数据之间的差称为残差数据,并且连同运动矢量一起进行压缩和编码。
[0003] 通过常规的块匹配完全搜索,将当前帧上的块与基准帧上的搜索窗口的每个块位置进行比较。最低的绝对差之和(SAD)、均方差(MSE)或其它测度被看作最佳匹配。虽然非常精确,但是完全搜索降低了性能。反之,快速运动估计一般具有两个阶段,第一阶段以最小步长在最期待的运动矢量周围开始搜索,并且对于更远的位置使用增量步长。其为在所检查的各匹配块位置之间具有很多空间的第一搜索图案布置。这是更快的,但是结果不精确。在精细化步骤中,接着关于最佳匹配而检查从第一搜索图案布置找到的最佳匹配点周围的更多点。在精细化阶段,图案布置与第一阶段中所使用的图案布置类似。最佳匹配点离布置的中心越远,图案就越宽。这种处理可能搜索范围仍然有限,并且并未充分地覆盖精细化轮次(pass)中的位置。
附图说明
[0004] 在附图中通过示例的方式而非通过限制的方式示出在此所描述的内容。为了说明的简明性和清楚性,附图所示的要素不一定按比例绘制。例如,为了清楚,一些要素的尺寸可以相对于其它要素被夸大。此外,在适当情况下,在附图之间重复了标号,以指示对应或类似要素。在附图中:
[0005] 图1是用于视频编码系统的编码器的说明性示图;
[0006] 图2是用于视频编码系统的解码器的说明性示图;
[0007] 图3是示出用于视频编码的运动估计处理的流程图
[0008] 图4-图5是示出用于运动估计处理的示例搜索图案布置的示意图;
[0009] 图6-图9是示出用于另一运动估计处理的示例搜索图案布置的示意图;
[0010] 图6A是用于解释在此的实现方式所使用的示例搜索图案布置的示意图。
[0011] 图10A-图10B是示出运动估计处理的详细流程图;
[0012] 图11是在用于提供运动估计处理的操作中的示例系统的说明性示图;
[0013] 图12是示例系统的说明性示图;
[0014] 图13是另一示例系统的说明性示图;以及
[0015] 图14示出全部根据本公开的至少一些实现方式所布置的另一示例设备。

具体实施方式

[0016] 现在参照附图描述一个或多个实现方式。虽然讨论特定配置和布置,但是应理解,这仅是为了说明目的而进行的。本领域技术人员应理解,在不脱离说明书的精神和范围的情况下,可以采用其它配置和布置。对本领域技术人员显而易见的是,也可以在除了在此所描述之外的各种其它系统和应用中采用在此所描述的技术和/或布置。
[0017] 虽然以下描述阐述了可以在诸如片上系统(SoC)架构的架构中体现的各个实现方式,但是在此所描述的技术和/或布置的实现方式不限于特定架构和/或计算系统,并且可以为了类似目的而通过任何架构和/或计算系统来实现。例如,采用例如多个集成电路(IC)芯片和/或封装的各种架构,和/或各种计算设备和/或消费者电子(CE)设备(例如机顶盒、智能电话等),可以实现在此所描述的技术和/或布置。此外,虽然以下描述可能阐述了大量具体细节(例如系统组件的逻辑实现方式、类型和相互关系、逻辑分区/集成选取等),但是可以在没有这些具体细节的情况下实施所要求的主题。在其它实例中,为了不掩盖在此所公开的内容,可能没有详细地示出一些内容,例如控制结构和完整软件指令序列。
[0018] 可以在硬件固件、软件或其任何组合中实现在此所公开的内容。在此所公开的内容也可以实现为机器可读介质上所存储的指令,这些指令可以由一个或多个处理器读取并执行。计算机可读介质可以包括用于存储或发送机器(例如计算设备)可读形式的信息的任何介质和/或机构。例如,机器可读介质可以包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质;光存储介质;闪存设备;电、光、声或其它形式的传播信号(例如载波、红外信号、数字信号等)以及其它介质。在另一形式中,非瞬时性物品(例如非瞬时性计算机可读介质)可以与以上所提及的任何示例或其它示例一起使用,除了它不包括瞬时信号本身。它确实包括除了信号本身之外的、可以以“瞬时”方式临时保存数据的那些元件(例如RAM等)。
[0019] 说明书中对“一个实现方式”、“实现方式”、“示例实现方式”等的引用,指示所描述的实现方式可以包括特定特征、结构或特性,但是每一实现方式可以不一定包括该特定特征、结构或特性。此外,这些短语不一定指代同一实现方式。此外,当结合实现方式描述特定特征、结构或特性时,应理解,在本领域技术人员的知识内,能够结合其它实现方式实现该特征、结构或特征,无论是否在此明确地描述。
[0020] 以下所描述的系统、物品和方法涉及用于视频编码的运动估计。
[0021] 如上所述,用于改进视频编码的一种方式是通过增加估计的运动的速度。在编码器处的帧间预测期间,应用运动估计以寻找帧的区域(例如在当前帧的一部分中正编码的块或子块)与基准帧中的类似块之间的最佳匹配。运动矢量(MV)是正编码的块(当前块)和基准帧中正检查的块的空间坐标的差。块的空间坐标可以是块的中心、块的左上、或块上基于其它指定像素位置的点。借助该处理,对运动矢量以及刚才提到的各块之间的小差值进行编码,而不是对整个帧的像素数据进行编码。运动估计是以如下方式应用的:寻找最靠近或最佳匹配(或最充分的匹配)以使匹配处理的代价最小化,并且在用于提供高质量图片压缩的预测精度与压缩视频的流送或传输速度的延迟和滞后的减小之间给予适当平衡。代价通常被计算为当前块与基准块之间的失配的度量和用于对运动矢量进行编码的比特量的组合。
[0022] 执行快速运动估计搜索是为了减小寻找最佳块匹配并进而寻找最佳运动矢量所需的时间量,并且减少比特代价。这是通过使用图案将叠加在基准帧上的搜索图案布置来执行的。每个图案具有多个间隔开的候选匹配块位置(MBL)点,使得并非每一块位置将被检查以确定其是否提供最佳匹配块位置。很多图案是正方形、菱形或绕着中心点延伸的其它形状,并且搜索图案布置可以具有带不同形状的不同图案,和/或缩放为距中心不同距离(称为步长)的多个相同图案。通常,使用对数布置,使得通过使用乘数(例如2)来设定布置中的图案的尺度,来确定每个图案(随着其与中心更远)的步长。
[0023] 一种这样的快速对数运动估计搜索图案是测试区(TZ)搜索算法,其以小数量的迭代提供相对良好的匹配。TZ搜索一般由基于H.264或HEVC(H.265)编码标准的视频编码器使用。TZ搜索使用两轮对数搜索,其中,初始或第一阶段搜索用于寻找第一最佳运动矢量。然后,在精细化阶段中,就最佳匹配块位置点周围(在一些其它情况下,包括以其为中心)执行搜索图案,并且检查精细化搜索图案布置的图案上的候选匹配块位置点,以确定最终的最佳运动矢量。精细化搜索图案布置中的图案是通过从最靠近图案布置的中心的图案进行测试并且在搜索期间增加步长以向外移动遍历图案来检查的。然而,对于TZ搜索,当位置处于给定限制搜索范围外或没有被第二精细化轮次覆盖时,很多可能的匹配位置没有检查到。当最佳点(或匹配块位置)距精细化搜索布置的中心相对远时,该点周围的精细化点没有被检查到。因此,可能错过最佳匹配。
[0024] 为了解决这些问题,目前所公开的实现方式使用如下搜索处理,其在对数精细化期间将精细化搜索图案布置的中心点移位到具有更好代价的候选匹配块位置点,然后在不降低步长的情况下重复迭代。在检查所有当前图案位置之后,并且当找到更好的位置时,中心被移位。作为一种形式,对移位后的精细化搜索图案布置的处理开始于具有与在移位之前包括最佳匹配块位置点的步长相同的步长并且现在处于移位后的布置的中心处的图案。此外,一旦测试了该外部或最佳步长上的候选点,就减小步长,使得随着处理继续,测试逐渐更靠近布置的中心的图案。当图案并不具有比已经找到的MBL点更好的MBL点时,降低步长。如果找到更好的点(或换言之,更好的运动矢量),则使中心移位。这种配置提供了任何可能位置被找到作为最佳匹配点的可能性,从而在具有快速或复杂运动的场景中进行编码的同时提供显著优点。虽然中心点移位处理在此可能增加3-5个块匹配计算,但是这些计算并未将性能降低达大约1%以上。对于具有复杂或快速运动的视频流,它还提供大约0.1dB和更大的峰值信噪比(PSNR)改进。
[0025] 现在更详细地进行描述并且同时参照图1,用本公开的至少一些实现方式布置示例视频编码系统100,以执行中心移位运动估计。在各个实现方式中,视频编码系统100可以被配置为:根据一个或多个标准来承担视频编码和/或实现视频编解码器。此外,在各种形式中,视频编码系统100可以被实现为图像处理器、视频处理器和/或媒体处理器的一部分,并且承担帧间预测、帧内预测、预测编码以及残差预测。在各个实现方式中,系统100可以根据一个或多个标准或规范(例如H.264(MPEG-4)、H.265(高效率视频编码或HEVC)以及其它标准)来承担视频压缩和解压和/或实现视频编解码器。虽然在此可能描述了系统100和/或其它系统、方案或处理,但是本公开并不一定总是限于任何特定视频编码标准或规范或其扩展。
[0026] 如在此所使用的那样,术语“译码器(coder)”可以指代编码器和/或解码器。类似地,如在此所使用的那样,术语“译码(coding)”可以指代经由编码器进行的编码和/或经由解码器进行的解码。译码器、编码器或解码器可以具有编码器和解码器二者的组件。
[0027] 在一些示例中,视频编码系统100可以包括为了简明而在图1中尚未示出的附加项。例如,视频编码系统100可以包括处理器、射频型(RF)收发机、分路器和/或复用器、显示器和/或天线。此外,视频编码系统100可以包括例如扬声器、麦克加速计、存储器、路由器、网络接口逻辑等附加项。
[0028] 对于示例视频编码系统100,该系统可以是编码器,在这里,可以接收与视频帧序列有关的数据形式的当前视频信息,以便进行压缩。系统100可以将每个帧分割为更小的更多可管理单元,然后将帧进行比较以计算预测。如果在原始块与预测之间确定出差或残差,则将该得到的残差进行变换并量化,然后进行熵编码并以比特流发送到解码器或存储件。为了执行这些操作,系统100可以包括输入图片缓冲器(具有可选的图片重排器)102、预测单元分割器104、减法单元106、残差分割器108、变换单元110、量化器112、熵编码器114以及使不同单元通信和/或管理不同单元的速率失真优化器(RDO)和/或速率控制器116。控制器
116管理编码的很多方面,包括:基于速率失真或场景特性的对正确运动分割大小、正确编码分割大小的本地自适应选择、对预测基准类型的最佳选取、对模式的最佳选择以及在启用比特率控制的情况下管理整体比特率。
[0029] 量化器112的输出也可以提供给设置在编码器处的解码环路150,以生成与在解码器处将生成的相同的基准或重构块、帧或其它单元。因此,解码环路150使用逆量化和逆变换单元118和120来重构帧,并且使用残差组装器122、加法器124以及预测单元组装器126来重构每个帧内所使用的单元。然后,解码环路150提供滤波器128,以增加重构图像的质量,从而更好地匹配对应的原始帧。这可以包括解块滤波器、采样自适应偏移(SAO)滤波器以及质量恢复(QR)滤波器。解码环路150也可以具有解码图片缓冲器130,用于保存基准帧。编码器100还具有:运动估计模块或单元132,其提供以下所提到的运动矢量;运动补偿模块134,其使用运动矢量;以及帧内预测模块136。运动补偿模块134和帧内预测模块136都可以将预测提供给选择器138,其选择用于特定块的最佳预测模式。如图1所示,预测块形式的选择器138的预测输出然后提供给减法单元106以生成残差,并且在解码环路中提供给加法器124以将预测与来自逆变换的残差相加,从而重构帧。在将块提供给加法器124和减法器106之前,可以在预测模式分析器和选择器的输出处提供PU组装器(未示出)。
[0030] 更具体地说,像素数据帧形式的视频数据可以被提供给输入图片缓冲器102。缓冲器102按输入视频序列顺序保存帧,并且这些帧可以按它们需要被编码的顺序从缓冲器获取。例如,后向基准帧在以之作为基准的帧之前被编码,但是显示在该帧之后。输入图片缓冲器也可以对帧分配类别(例如I帧(帧内编码)、P帧(帧间编码、从先前基准帧预测)和B帧(帧间编码帧,其可以是从先前帧、随后帧或二者双向预测的))。在每种情况下,整个帧可以被分类得相同,或者可以具有不同分类的片(slice)(因此,I帧可以仅包括I片,P帧可以包括I片和P片,依此类推)。在I片中,使用空间预测,并且在一种形式中,空间预测仅来自帧自身中的数据。在P片中,可以通过估计各帧之间的运动来进行时间(而非空间)预测。在B片中,并且对于HEVC,表示(以下所解释的)每分割单元(PU)两个运动估计的两个运动矢量可以用于时间预测或运动估计。换言之,例如,可以从相对于B片来自过去、未来或二者的帧上的片预测B片。此外,可以从关于显示顺序发生在过去或未来的多个图片估计运动。在各个实现方式中,可以按与下述大小对应的各个编码单元(CU)或PU等级来估计运动。对于较旧的标准,宏块或其它块基础可以是所使用的分割单元。
[0031] 具体地,当正使用HEVC标准时,预测分割器单元104可以将帧划分为预测单元。该操作可以包括:使用编码单元(CU)或大型编码单元(LCU)。对于该标准,可以由编码分割器通过划分为编码树块的一个或多个片(例如具有对应色度采样的64x64个亮度采样),来对当前帧进行分割,以便进行压缩。每个编码树块也可以按四叉树方案划分为编码单元(CU)。此外,四叉树上的每个叶子CU可以再次分离为4个CU或划分为用于运动补偿预测的分割单元(PU)。在根据本公开的各个实现方式中,CU可以具有各种大小,包括但不限于64x 64、32x 
32、16x 16以及8x 8,而对于2N x 2N CU,对应的PU也可以具有各种大小,包括但不限于2N x 2N、2N x N、N x 2N、N x N、2N x 0.5N、2N x 1.5N、0.5N x 2N以及1.5N x 2N。然而,应注意,前面仅为示例CU分割和PU分割形状和大小,本公开不限于任何特定CU分割或PU分割形状和/或大小。
[0032] 如在此所使用的那样,术语“块”可以指代用于HEVC等的视频数据的CU或PU,或者4x 4或8x 8或其它不一定矩形形状的块。通过一些替选,这可以包括:将块看作针对H.264/AVC等的视频或像素数据的宏块的划分,除非另行定义。
[0033] 此外,在视频编码系统100中,划分为LCU、CU和/或PU单元的当前视频帧可以被提供给运动估计单元或估计器132。系统100可以按栅格或不同的扫描顺序在图像的指定单元中处理当前帧。当视频编码系统100在帧间预测模式下操作时,运动估计单元132可以响应于当前视频帧和基准视频帧而生成运动矢量。在此所描述的基于块的搜索方法可以用于将当前帧的块匹配于基准帧上的候选块,并且由此确定关于预测块将编码的运动矢量。然后,运动补偿模块134可以使用基准视频帧和运动估计模块132所提供的运动矢量来生成预测帧。
[0034] 然后,可以在减法器106处从当前块减去预测块,并且将得到的残差提供给残差编码分割器108。编码分割器108可以将残差分割为一个或多个块,并且作为用于HEVC的一种形式,将CU进一步划分为变换单元(TU),以用于变换或进一步压缩,并且可以将该结果提供给变换模块110。使用例如可变块大小离散余弦变换(VBS DCT)和/或4x 4离散正弦变换(DST)将有关的块或单元变换为系数。然后,使用控制器116所设定的量化参数(Qp),量化器112对系数使用有损重新采样或量化。可以由熵编码模块114对所生成的量化后的变换系数集合进行重排序和熵编码,以生成视频编码系统100所提供的压缩比特流(例如网络抽象层(NAL)比特流)的一部分。在各个实现方式中,除了用于对每个块进行解码的辅助信息(例如预测模式、量化参数、运动矢量信息、分割信息、环路内滤波信息等)之外,视频编码系统100所提供的比特流可以还包括熵编码的系数,并且可以提供给在此所描述的其它系统和/或设备,以用于传输或存储。
[0035] 量化模块112的输出还可以提供给解码环路中的解量化单元118和逆变换模块120。解量化单元118和逆变换模块120可以实现变换单元110和量化模块112所进行的操作的逆。然后,残差组装器单元122可以从TU重构残差CU。然后,残差组装器单元122的输出可以在加法器124处与预测帧组合,以生成粗略的重构块。然后,预测单元(LCU)组装器126从CU重构LCU,以完成帧重构。
[0036] 然后,通过使帧经过滤波器128来改进重构帧的质量。滤波后的帧然后被提供给解码图片缓冲器130,在这里,这些帧可以用作基准帧来构造对应的预测,以用于在此所解释的运动估计和补偿。当视频编码系统100在帧内预测模式下操作时,帧内预测模块136可以使用当前帧的重构像素来进行帧内预测方案,在此将不更详细地描述。
[0037] 参照图2,系统200可以具有或可以是解码器,并且可以接收比特流202形式的编码视频数据。系统200可以通过熵解码模块204来处理比特流,以提取量化后的残差系数以及运动矢量、预测模式、分区、量化参数、滤波信息等。然后,系统200可以使用逆量化模块204和逆变换模块206来重构残差像素数据。然后,系统200可以使用残差编码组装器208、用于将残差和预测块相加的加法器210、以及预测单元(LCU)组装器212。系统200还可以使用解码环路来对得到的数据进行解码,取决于比特流202的句法中所指示的并且经由预测模式开关或选择器(其也可以称为句法控制模块)222实现的编码模式,解码环路采用包括帧内预测模块220的第一路径或者包括一个或多个滤波器214的第二路径帧间预测解码路径。第二路径可以具有解码图片缓冲器216,用于存储重构且滤波的帧,以便用作基准帧,并且发送出重构帧,以便显示或存储,以用于稍后浏览或另一应用或设备。运动补偿预测器218利用来自解码图片缓冲器216的重构帧以及来自比特流的运动矢量,来重构预测块。因此,由于已经提供了运动矢量,因此解码器无需其自身的运动估计单元,但是如果解码器实际上同样包括编码能,则其仍然可以具有运动估计单元。预测模式选择器222为每个块设定正确模式,并且在将块提供给加法器210之前,可以在选择器222的输出处设置PU组装器(未示出)。除了以下详细描述的运动估计单元132之外,用于系统100和200的在此所描述的模块的功能为本领域良好理解的,并且在此将不再更详细地描述。
[0038] 对于一个示例实现方式,使用多个轮次并且具有中心移位的快速对数运动估计处理描述如下。
[0039] 参照图3,流程图示出根据本公开的至少一些实现方式所布置的示例处理300。通常,处理300可以提供计算机实现的用于上述视频编码的运动估计的方法。在所示实现方式中,处理300可以包括一个或多个操作、功能或动作,如偶数编号的操作302至312中的一个或多个操作所示出的。通过非限定性示例的方式,处理300将在此参照关于以上图1-图2所讨论的操作进行描述,并且可以关于以下所讨论的示例系统100、200或1200进行讨论。
[0040] 处理300可以包括“接收像素数据的多个帧”302,并且具体地,在解码环路内的从缓冲器130接收重构且滤波的基准帧以及待编码的当前帧的数据的运动估计单元处。
[0041] 处理300还可以包括“进行搜索,以通过寻找在基准帧上的相对于当前帧上的对应块定位的像素数据的最佳匹配块,来寻找最佳运动矢量”304。一旦确定最佳匹配,处理300就可以包括:使用匹配块的运动矢量来形成预测块。为了完成该操作,用于运动估计的搜索操作可以包括“在基准帧处确定初始搜索图案布置的多个候选匹配块位置点中的最佳匹配块位置(MBL)点”306。具体地说,可以通过使用初始运动矢量将初始搜索图案布置叠加在基准帧上,如以下所讨论的。初始搜索图案布置具有带特定形状和特定数量的候选匹配块位置点(在此又简称为位置)的图案,这些图案被检查以寻找与待编码的当前帧上的块对应的最佳匹配块位置点。因此,每个候选匹配块位置点表示具有用于运动矢量的坐标的块位置。例如,所述点可以是块的中心、左上角或其它部分。一旦在初始搜索图案布置上确定最佳MBL点,就可以开始精细化阶段。
[0042] 然后,处理300可以包括“将精细化搜索图案布置定位在最佳匹配块位置点处”308。对于一个示例,该操作包括:将精细化搜索图案布置的中心定位在最佳匹配块位置点处。借助该图案布置,所检查的每个图案可以围绕精细化搜索图案布置的中心而延伸,并且在一个示例中,各图案的形状可以是菱形、正方形或其修改或其它形状,并且其中,可以在距中心不同的距离或步长(或缩放为多个步长)处放置图案,如下所述。
[0043] 处理300还可以包括“测试精细化搜索图案布置的候选匹配块位置点,以确定新的最佳匹配块位置点”310。如以下详细解释的那样,候选MBL点逐图案地进行测试,直到在图案之一上并且在步长之一处找到更好的MBL点。
[0044] 然后,处理300可以包括“将精细化搜索图案布置的中心移位到所述新的最佳匹配块位置点,而不检查精细化搜索图案布置中所包括的所有候选匹配块位置点”312。作为一个示例,该操作包括:将精细化搜索图案布置的中心移位到所述新的最佳匹配块位置点,而不检查精细化搜索图案布置中所包括的较小步长处的图案的所有候选匹配块位置点。特别地,一旦在基准帧上找到新的最佳MBL点,精细化搜索图案布置的中心移位到新的找到的MBL点。作为一种方法,由于该处理逐图案地检查精细化搜索图案布置的候选MBL点,因此每当该处理发现图案已经找到新的最佳MBL点时,就可以发生这个中心移位。作为一种方法,中心移位发生在检查了在具有新的找到的最佳MBL点的步长处的图案上的所有候选MBL点之后。然后,下一步,精细化搜索图案布置移位,使得图案在新的移位后的中心周围延伸。
[0045] 作为一个示例方面,测试移位后的精细化搜索布置上的候选MBL点可以开始于具有与在最近的中心移位之前找到更好的MBL点的图案的步长相同的步长(距移位后的中心的距离)的图案。然后,一旦图案的测试完成,并且没有找到新的最佳MBL点,则测试继续于减小步长至更靠近精细化搜索图案布置的中心的图案,以逐图案地测试候选MBL点。可以对于精细化布置图案中的每一个图案重复该操作。以下描述更多细节。
[0046] 现在参照图4-图5,提供示例搜索图案布置以解释该处理。这里的处理可以是对测试区(TZ)搜索处理的修改,因为其具有初始阶段和精细化阶段二者。运动估计搜索处理可以包括通过使用初始运动矢量来定位初始搜索图案布置的中心而叠加在基准帧上的初始搜索图案布置400。初始搜索图案布置400可以包括多个图案402,其中,在中心点406周围延伸的每圈(ring)候选匹配块位置(MBL)点404形成图案402之一。通过将候选MBL点处的像素数据的块(或其它所定义的区域)与当前帧上的像素数据的当前块进行比较来测试或检查各候选MBL点。通过使用算法(例如SAD、MSE或其它算法)以及确定编码块的比特的总代价来确定匹配,如下所述。
[0047] 一旦确定初始最佳MBL点408,就执行精细化阶段,并且精细化搜索图案布置500的中心位于来自初始阶段的最佳MBL点408的位置。精细化搜索图案布置可以与初始搜索图案布置相同或不同。执行对精细化搜索图案布置的图案502的搜索,直到找到新的最佳MBL点504。中心408周围的每个圈(例如正方形或菱形形状)可以看作图案502,并且示出了多个可能的可以用于布置的图案。在常规的运动估计搜索处理中,搜索开始于最靠近精细化搜索图案布置的中心的图案,或具有最小步长(步长=1)的图案。通过增加步长来逐图案地搜索图案,并且在一种形式中,检查布置500的所有图案,然后确定哪个候选MBL点是新的最佳MBL点。然后,搜索可以结束于此,并且可以基于新的最佳MBL点504的坐标得出运动矢量。
[0048] 参照图6-图9以及图6A,为了描述改进的中心移位搜索处理所提供的附加特征,搜索图案布置600可以用在初始搜索阶段中,并且叠加在基准帧的像素位置的栅格上,在这里,所示的每个点处于该栅格的顶点处,并且位于像素位置处。与初始搜索图案布置400一样,第一阶段(或初始)搜索图案布置600基于初始运动矢量而定位,执行搜索,这可以开始于与中心最靠近的图案,并且通过增加步长逐图案地向外移动,以测试布置中的所有图案,在此期间,确定最佳匹配块位置(MBL)点602。可以使用一个示例搜索图案布置604(图6A),其中,c是设置在基准帧上的像素位置处的中心点,并且取决于初始运动矢量而定位。注意,搜索图案布置604并非是按比例绘制的,并且仅提供以解释点和图案的一般位置。在目前情况下,每个图案在中心点c周围延伸,并且具有特定形状。首先搜索图案A(按步长1),并且在该示例中,图案A包括小的四点菱形的形状中的候选MBL点1-0至1-3(其中,0可以看作图案中的第一点)。可以按任何顺序测试候选MBL点,并且其可以从图案到图案是相同的或不同的。其余步长布置在对数图案(几何级数)中,并且随着图案定位离开中心c而乘以二。步长2、4、8和16全都具有相同的八点菱形图案B,并且根据它们的步长来编号。因此,步长2的图案包括点2-0至2-7,并且步长16的图案包括点16-0至16-7。步长32的图案C处的候选MBL点可以按具有切割角或附加中间点的菱形形状或者不均匀八边形状而成形,其中,对角边比平边和垂直边长。对于步长32,在每个对角边上可以存在三个候选MBL点,总共十二个点(32-0至32-11)。在伪码中,归一化的图案可以表示如下:
[0049] const int patternA[4][2]={{0,-1},{1,0},{0,1},{-1,0}};//small diamond[0050] const float PatternB[8][2]={{-0.5,-0.5},{0,-1},{0.5,-0.5},{1,0},{0.5,0.5},{0,1},{-0.5,0.5},{-1,0}};//diamond
[0051] const float PatternC[12][2]={{-0.75,-0.25},{-0.5,-0.5},{-0.25,-0.75},{0.25,-0.75},{0.5,-0.5},{0.75,-0.25},{0.75,0.25},{0.5,0.5},{0.25,0.75},{-0.25,0.75},{-0.5,0.5},{-0.75,0.25}};//rounded diamond
[0052] 其中,pattern[I][J]指代图案上的总共(I)数量的候选MBL点以及每个点的总共(J)数量的坐标。到中心的几何距离并非总是与步长值精确相同。此外,从该代码中可以清楚地看出,图案B的候选MBL点的坐标乘以步长(作为一个示例),以获得图6A上的步长2、4、8和16处的图案,并且类似地,对于步长32,图案C的坐标乘以32。应注意,图案布置可以具有很多变形,并且并非总是受限于在此所使用的示例图案布置。作为一种形式,除了最大步长是在精细化阶段中的先前布置的最佳步长并且最小步长可以大于1之外,如下所述并且如图7-图9所示,在初始阶段和精细化阶段中都使用相同的搜索布置图案。
[0053] 参照图7,第一精细化搜索图案布置700使其中心位于来自初始阶段的最佳MBL点602。来自初始搜索布置的最佳步长(步长=8)现在设定为用于精细化搜索图案布置700的最大步长。然后,搜索将继续于:首先在步长8处的图案710寻找新的最佳MBL点。如果没有找到,则现在减小步长,这里减小到步长4,以搜索在步长4处的图案706(在这里,找到示例新的最佳MBL点708)。如果找到新的最佳MBL点,则精细化搜索布置中心移位到该新的最佳MBL点,并且搜索再次开始于不同的中心处,如精细化图案布置800(图8)所示。在具有步长2的较小图案704和具有步长1的较小图案702处进行的搜索在该示例中可以省略,但是在图8上仍然示为可以用于搜索图案布置800的可能图案。
[0054] 该处理在整个所有精细化迭代中可以保持或不保持启用的其它选项能够被预期。一种替选可以包括:寻找第一阶段图案布置或第一精细化阶段图案布置的图案上的多个最佳位置(例如两个或三个,或者其它固定数量),并且精细化处理可以单独地继续于每个最佳位置,并且得到的每个位置的运动矢量可以进行比较或被组合为单个最佳运动矢量。很多变形能够被预期。
[0055] 现在,搜索于是再次开始于相对于新的移位的中心点在步长4处,其为与找到新的最佳MBL点708时相同的步长值。搜索通过减小步长值而逐步长地继续。因此,步长4(图案801)首先被检查,并且在该示例中,如果沿特定步长的图案没有找到新的最佳MBL点,则减小步长,并且在此减小为接着被检查的步长2。空心圆形(图8)是来自先前图案布置的候选MBL点。在该示例中,找到新的最佳MBL点802。由于找到新的最佳MBL点,因此中心再次移位到新的最佳MBL点802,并且定位新的精细化布置900,如图9所示,并且由于在最近的中心移位之前在步长=2处找到新的最佳MBL点802,因此在中心移位之后,新的搜索在步长=2处(图案901)开始。如下所述,该操作可以继续,直到步长=1,或者可能存在其它限制,例如,将中心移位固定次数等,如下所述。在图9上的示例中,没有找到更好的MBL。运动估计完成,并且点802是最佳预测位置,即处理的输出。
[0056] 现在参照图10A-图10B,根据本公开的至少一些实现方式来布置详细示例运动估计处理1000。通常,处理1000可以提供另一计算机实现的用于视频编码的运动估计的方法。在所示实现方式中,处理1000可以包括一个或多个操作、功能或动作,如偶数编号的操作
1002至1040中的一个或多个操作所示。通过非限定性示例的方式,处理1000将在此参照关于图1-图9和图12所讨论的操作进行描述,并且可以参照以下所讨论的示例系统100和/或
1200进行讨论。
[0057] 处理1000可以开始于:在初始阶段或第一阶段中设定或初始化(1002)一些初始变量。该操作可以包括:将BestMV(最佳MV)设定为初始运动矢量MV0。用于生成初始运动矢量的各种替选包括:使用预测器集合,例如邻近MV(其指代使用与当前匹配的块相邻的块上的先前所确定的MV)、多个邻近MV的某种组合或中位数、或者来自先前帧中的并置块的MV。作为一种方法,执行这些替选中的多于一个替选,并且使用最佳MV或最佳MV的组合作为初始运动矢量。
[0058] 一旦确定初始搜索图案布置的中心将位于的地方,就测试放置在中心处的块的代价,并且以该Cost(MV0)来初始化当前BestCost(最佳代价)。运动估计中的代价通常被计算为当前帧上的当前块与基准块之间的失配的度量和用于对运动矢量进行编码的比特量的组合。
[0059] 此外,对于该操作,步长设定为1,其中,步长是用于搜索图案的标度(scale),并且对于使用对数标度的初始阶段,步长将按2增加,如上所述。计数器i也被设定为零,其中,计数器是单个图案上的候选MBL点的计数。
[0060] 然后,处理1000可以包括:对于当前Step(步长),将图案长度设定(1004)为Max i,并且初始地,步长为1。对于示例初始搜索图案布置604的步长1,在步长1处的图案A具有四个点(1-0至1-3),所以图案长度或Max i=4。
[0061] 然后,处理1000可以包括:确定(1006)当前运动矢量MV,其中:
[0062] MV=MV0+Step*pattern[i](1)
[0063] 其包括:对于当前Step和图案点,确定从当前块到基准帧上的匹配块位置的目前运动矢量或偏移。
[0064] 然后,该操作包括:确定使用候选MBL点i处的块的代价,使得Cost=Cost(MV)。如上所述,代价可以包括匹配块(当前帧上的当前块与基准帧上的预测块)之间的差以及用于对当前运动矢量进行编码的比特代价,然后i递增(1008)。
[0065] 然后,处理1000可以包括:比较(1010)Cost与BestCost。如果Cost小于BestCost,则执行新的分配操作(1012),使得用Cost、运动矢量(MV)和Step的当前值来更新BestCost、BestMV和BestStep。如果Cost大于BestCost,则跳过这些分配操作,并且处理继续于:匹配同一步长上的同一图案上的下一位置i处的块。这形成循环,在i不大于图案长度时重复该循环(1014)。在此情况下,该处理循环返回以确定在目前步长的目前图案上的新位置i处的MV和Cost,并且循环继续,直到i大于图案长度,使得该处理针对同一步长的同一图案中的每个候选MBL点i进行循环。
[0066] 在完成内部图案循环之后,检查(1016)步长,以确定是否已经达到MaxStep(最大步长)。在该示例中,MaxStep是32,并且可以以不同方式进行设定,这取决于期望的搜索图案布置。如果目前Step小于MaxStep,则将目前Step值乘以2(对于对数布置),并且测试与搜索图案布置的中心更远的下一图案,并且i重置回到零,以重新开始候选MBL点计数(1018)。然后,处理循环返回以将图案长度重置为新Step的图案长度(在当前示例中,对于Step=2,图案是图案B,并且Max i=8)。然后,处理1000将重复图案循环,以将在Step*pattern[i]的每个候选MBL点处的块与当前块进行比较。
[0067] 另一方面,如果正检查的Step大于或等于目前MaxStep,则已经检查了初始搜索图案布置的所有步长,用于初始搜索图案布置的BestCost、BestMV和BestStep,进而是最佳匹配块位置点已经被确定,并且处理移动到精细化阶段。
[0068] 在精细化阶段中,精细化搜索图案布置中心被设定为初始搜索图案布置的最佳匹配块位置点。这可能意味着将精细化搜索图案布置的中心点移动或叠加到来自初始搜索图案布置的最佳MBL点。如上所述,在该示例中,除了用于精细化搜索图案布置的最大步长与在初始搜索图案布置中找到最佳MBL点的步长相同之外,初始精细化搜索图案布置和第一精细化搜索图案布置可以是相同的。
[0069] 因此,为了设置(1020)精细化阶段,处理1000包括:将MV0设定为来自初始阶段的得到的BsetMV,将Step设定为来自初始阶段的BestStep(并且现在是用于精细化搜索图案布置的最大步长),设定i=0以重新开始待检查的候选MBL点的计数,并且现在将needshift设定为0,其中0将表示无中心移位,而1表示需要中心移位。
[0070] 然后,处理1000可以包括:对于Step处的图案设定(1022)图案长度(Max i)。通过该示例(图6-图7),对于Step=8(图案B),图案长度同样=8,如以上编码示出。然后,处理类似地继续于初始阶段,包括:通过以上公式(1)并且通过确定使用该MV的Cost来确定(1024)MV。处理1000还包括:递增i(1026),并且比较(1028)Cost和BestCost。
[0071] 如果Cost小于BestCost,则新的最佳值被设定(1030)为目前值(BestCost=Cost,BestMV=MV)。此外,由于在目前Step处的目前图案上找到了找到了新的BestMV,并且进而找到了新的最佳MBL点,因此,这导致精细化搜索图案布置中心移位到这个新点。因此,needshift现在设定为1。
[0072] 如果没有找到新的BestCost(Cost等于或大于BestCost),则确定(1032)i是否大于目前Step处的图案长度。如果否,则处理循环返回,以关于新的i值而确定MV。该循环保持重复,直到已经测试了在单个步长处的图案上的所有候选MBL点i。一旦i大于图案长度,就确定(1034)是否需要中心移位(如果关于当前图案找到了更好的MBL,则needshift是yes或1)。如果找到了新的BestCost(并且进而找到了新的最佳MBL点),并且因此,精细化搜索图案布置的中心将被移位,则MV0被设定(1036)为BestMV,从而等效地将精细化搜索图案布置的中心移位到先前新的最佳MBL点,needshift重置为0,并且i重置为0。然后,处理循环返回,以设定图案长度并确定目前MV等。该循环发生,以重新开始测试新中心处的相同Step值处的图案。因此,如其它地方解释的那样,当在步长8处找到了先前的最佳MBL点时,于是在中心移位之后,搜索也将按步长8开始,如图6-图7所示。当中心移位时,对于第一图案循环,不存在步长的降低。
[0073] 如果无需中心移位,或者换言之,如果在当前步长下的图案上没有找到新的最佳MBL点,则减小步长,以使用具有更小步长的下一图案来测试更靠近的位置。因此,处理1000可以包括:确定(1038)Step是否大于1。如果是,则Step除以(1040)二(当使用对数布置时),以获得减小的新Step值,i重置为零,以重新开始新步长的图案的候选MBL点的计数,并且处理循环返回,以设定用于将要被测试的减小的新步长的图案长度。然后,执行用于检查新步长处的所有候选MBL点的循环。
[0074] 作为一种方法,在Step大于1时,重复精细化处理(1038)。一旦Step=1,就确定最终BestMV和BestCost,并且BestMV是该搜索处理找到的最终运动矢量。
[0075] 可以应用各种约束来例如限制中心能够被移位的次数,以限制运动估计的持续时间或限制运动矢量长度。因此,中心移位的次数可以是固定次数,可以与运动矢量长度的可允许范围或值关联,和/或可以是用于检查精细化搜索图案布置的持续时间。
[0076] 将最大步长设定在BestStep,然后随着测试图案继续而减小Step,这被认为是非常高效的。如果处理在步长1开始精细化阶段,则可以快速地找到局部最小值(BestCost),但是当最佳MBL点处于较大Step时,将需要进一步的精细化,即,使用最小步长从最靠近的位置到更远的位置进行检查。因此,与之比较,本处理更有可能是单轮精细化。
[0077] 本处理增加找到理想(或比传统方法更好)的最终最佳MBL点的机会。如果从第一阶段获得的最终最佳点位于中心或靠近中心(步长1或2),则在传统方法和所提出的方法方面可能不存在差异。然而,如果最终点更远离中心(在较大步长处),则在此所描述的中心移位处理具有大得多的机会达到理想最佳MBL点,因为它测试在较大步长处找到的当前最佳点周围的更多位置。此外,算法将搜索移动到具有大步长的远离位置,由此使得这种ME性能是有效的。
[0078] 用于移位中心的伪码可以如下:
[0079]
[0080]
[0081] 作为其它替选,虽然本处理使用完整像素搜索,但是在各邻近完整像素之间某处的非常有限的范围内可以使用分数像素搜索。在此情况下,可以使用基于栅格法的搜索。虽然当在第一阶段中找到的最佳MV长,即BestStep大时,TZ搜索可以改变为栅格搜索,但是为了寻找更好的MV,其降低了性能。所提出的方法提供更好的结果,并且允许以与完全搜索相同的质量但快得多地寻找良好MV。
[0082] 在又一替选中,并非使搜索基于在移位中心之前的Step,而是处理可以基于在移位中心之前测试的搜索图案布置的另一区段。其可以是搜索图案布置的几何(例如四分之一或特定连续)区域或一部分,或者可以径向地或线性地而非逐步长地检查候选MBL点,等。在检查每个所定义的区域或区段之后,中心可以移位。以此方式,在一步长处的图案可以仅看作在移位搜索图案布置的中心之前检查的该布置的一种可能类型的区段。作为又一替换,在找到新的最佳MBL点之后,但是在测试另一候选MBL点之前,或者至少在测试图案上的所有点之前,中心可以移位,而非等待测试在步长处的整个区段或图案。
[0083] 现在参照图11,系统1100可以用于操作中所示的并且根据本公开的至少一些实现方式所布置的示例中心移位的块搜索运动估计处理1100。在所示实现方式中,处理1100可以包括一个或多个操作、功能或动作,如偶数编号并且交替地或以任何组合使用的一个或多个动作1102至1132中的一个或多个动作所示。通过非限定性示例的方式,在此将参照关于任何在此所描述的实现方式所讨论的操作来描述处理1100。
[0084] 在所示实现方式中,系统1200可以包括处理单元1120,具有逻辑单元或逻辑电路或模块1250等和/或其组合。对于一个示例,逻辑电路或模块1250可以包括具有运动估计单元1252的视频编码器100,并且可选地包括视频解码器200。虽然图12所示的系统1200可以包括与特定模块关联的一组特定的操作或动作,但是这些操作或动作可以关联于与在此所示的特定模块不同的模块。
[0085] 处理1100可以包括“获得原始帧和重构帧的视频数据”1102,其中,系统,或者具体地说,编码器处的运动估计单元可以获得对重构帧的像素数据的存取。可以从RAM或ROM,或者从系统1200或1300上所描述的另一永久性或临时性存储器、存储器驱动器或库,或者从图像捕获设备获得或读取数据。存取可以是连续存取,用于例如分析正在进行的视频流。然后,处理1100可以包括“获得重构帧的当前帧和基准帧数据”1104,使得待编码的块可以在运动估计搜索期间匹配于基准块。
[0086] 处理1100可以包括“执行初始阶段,以将当前帧上的块与基准帧上的候选匹配块位置点处的候选块进行匹配,以获得最佳运动矢量”1106,并且具体地说,以形成初始最佳运动矢量。该操作可以包括:使用具有在布置的中心点周围延伸的多个图案的初始搜索图案布置。搜索继续于:逐图案地测试候选匹配块位置,并且作为一种形式,开始于与中心最靠近的图案(步长1),并且向外增加图案(或步长),直到达到最外层的图案(或在最大步长或标度处的图案)。在此作为示例,最大步长=32(图6A)。
[0087] 处理1100可以包括“通过将精细化搜索图案布置的中心放置在最佳运动矢量所指示的基准帧上的最佳匹配块位置点处,来执行精细化阶段”1108。如在此所解释的那样,精细化搜索图案的中心点被放置在来自先前搜索的且在基准帧上的最佳MBL点的像素位置处。因此,当前或新的精细化搜索图案围绕该新的中心点而叠加在基准帧上。
[0088] 处理1100可以包括“通过以与具有最佳匹配块位置点步长值相同的步长处的图案开始,来开始测试精细化搜索图案布置的点”1110。如以上所解释的那样,例如,如果具有最佳MBL点的步长是步长=8,则无论是在初始阶段还是在先前的精细化搜索期间找到该点,新的精细化搜索图案布置处的候选MBL点的测试都同样开始于步长=8。
[0089] 然后,处理1100可以包括“当对具有新的最佳匹配块位置点的图案的测试完成时,将精细化搜索的中心移位到新的最佳匹配块位置点”1112。因此,测试继续遍历图案,并且在将精细化搜索图案布置移位到新的像素位置处的新的中心之前,整个图案的测试完成(图案上的所有候选MBL点均被测试)。其它选项包括:一旦找到新的所找到的最佳MBL点,就移位精细化搜索图案布置,而无需完成对图案上的所有点的测试。在一些情况下,可能需要测试少于所有点的最小数量的点,作为其它选项,一旦找到新的最佳点,中心就移位。能够预期很多变形。
[0090] 处理1100可以继续于“当在当前图案上没有找到新的最佳匹配块位置点时,测试具有更低步长值的下一图案”1114。由于在精细化搜索图案布置上步长将减小,并且不会增加,因此设定与该图案的先前步长相同的步长来首先进行搜索可以看作是为该新的或移位的精细化搜索图案布置设定最大步长大小。例如,如处理1000所示,当使用对数图案布置时,可以通过将步长值除以在初始阶段中用于增加步长值的同一乘数,来在编码中执行该操作。
[0091] 然后,处理1100也可以循环到“重复精细化搜索,直到步长等于1。确定用于当前块的最终最佳匹配块位置点和最终最佳矢量”1116。因此,处理实际上对于每个图案都循环,以测试该图案中的所有候选MBL点,然后循环以测试具有比布置中的当前图案小的步长的图案,直到找到新的最佳MBL点,并且布置移位。在精细化阶段中,当如上所述减小步长时,如果对可允许的中心移位的数量不存在其它限制,则一旦步长=1,搜索就可以完成,如上所述。
[0092] 然后,处理1100可以包括“使用通过使用最终最佳匹配块位置点所生成的最终最佳运动矢量来生成重构块”1117。
[0093] 然后,处理1100可以包括“生成并发送具有编码数据的比特流”1118,包括:发送帧数据、残差数据以及运动矢量数据。然后可以提供解码器200,以“对帧数据、残差以及运动矢量进行解码”1120,“使用运动补偿以通过使用运动矢量来构造预测块”1124,以及“将残差与预测块相加,以形成重构块”1126。然后,处理1100可以继续于“使用重构帧作为基准帧以便进行运动补偿”1128,以及“针对多个帧重复,直到序列的结束”1130。重构帧也可以被提供用于显示和/或存储1132。
[0094] 应理解,在一种高效的形式中,处理1100包括以下全部三个:(1)开始测试与在先前图案布置(或其位置)上找到最佳匹配块位置点的步长相同的步长处的精细化搜索图案布置上的点,(2)当在图案上找到新的最佳匹配块位置时,以及作为一种方法,一旦对图案的测试完成,就移位搜索图案布置的中心,以及(3)当没有找到新的最佳匹配块位置点时,减小步长测试更靠近中心的下一图案。然而,作为其它替选,基于块的运动估计搜索处理可以仅单独具有(2)或包括(2)的处理的任何组合。
[0095] 通常,根据需要,处理1100可以串行或并行地重复任何次数。此外,通常,逻辑单元或逻辑模块(例如编码器100和解码器200所使用的逻辑单元或逻辑模块)可以至少部分地由硬件、软件、固件或其任何组合来实现。如所示,在一些实现方式中,编码器和解码器100/200可以经由处理器1203来实现。在其它实现方式中,译码器100/200可以经由通过一个或多个其它中央处理单元所实现的硬件或软件来实现。通常,可以在系统级启用译码器100/
200和/或在此所讨论的操作。然而,可以在例如用户级提供或调整用于在编码环路中启用中心移位运动估计搜索和/或控制所使用的压缩方案的类型或压缩比率的一些部件。
[0096] 应理解,可以在使用替选搜索策略的系统上提供在此所公开的中心移位块搜索快速运动估计处理,其中,该策略仅是所使用的一个选项,或者其中,使用一组不同的运动估计处理,并且具有最佳结果的运动估计处理最终用于编码,或者其中,来自多个搜索处理的结果被组合(例如均值或中位数),然后使用组合结果。这可以包括直接方法(例如具有替选搜索图案布置的基于块的搜索,和/或相位相关、频域、像素递归和/或基于光流的算法)和/或间接方法(例如角检测、对象跟踪和其它基于统计函数的算法)。
[0097] 虽然示例处理300、1000和/或1100的实现方式可以包括按所示的顺序执行所示的所有操作,但是本公开不限于此,并且在各个示例中,在此的任何处理的实现方式可以包括仅执行所示的操作的子集和/或按与所示的不同顺序执行所示的操作。
[0098] 在实现方式中,可以响应于一个或多个计算机程序产品所提供的指令而执行在此所描述的特征。这些程序产品可以包括信号承载介质,其提供指令,所述指令当由例如处理器执行时可以提供在此所描述的功能。可以以任何形式的一种或多种机器可读介质来提供计算机程序产品。因此,例如,包括一个或多个处理器内核的处理器可以响应于由一种或多种机器可读介质传送到处理器的程序代码和/或指令或指令集而执行在此所描述的一个或多个特征。通常,机器可读介质可以以程序代码和/或指令或指令集的形式来传送软件,这些程序代码和/或指令或指令集可以使在此所描述的任何设备和/或系统实现在此所描述的特征的至少一部分。如上所述,在另一形式中,非瞬时性物品(例如非瞬时性计算机可读介质)可以与以上所提及的任何示例或其它示例一起使用,除了其不包括瞬时性信号本身。其确实包括除了信号本身之外的、可以以“瞬时性”方式临时保存数据的那些元件(例如RAM等)。
[0099] 如在此所描述的任何实现方式中所使用的那样,术语“模块”指代被配置为提供在此所描述的功能的软件逻辑、固件逻辑和/或硬件逻辑的任何组合。软件可以实施为软件封装、代码和/或指令集或指令,并且在此所描述的任何实现方式中所使用的“硬件”可以单独地或组合地包括例如硬布线电路、可编程电路、状态机电路和/或存储可编程电路所执行的指令的固件。模块可以共同地或单独地实施为形成更大系统的一部分的电路(例如集成电路(IC)、片上系统(SoC)等)。例如,模块可以实施在逻辑电路中,以便经由软件、固件或硬件实现在此所讨论的编码系统。
[0100] 如在此所描述的任何实现方式中所使用的那样,术语“逻辑单元”指代被配置为提供在此所描述的功能的固件逻辑和/或硬件逻辑的任何组合。在此所描述的任何实现方式中所使用的“硬件”可以单独地或以任何组合包括例如硬布线电路、可编程电路、状态机电路和/或存储可编程电路所执行的指令的固件。逻辑单元可以共同地或单独地实施为形成更大系统的一部分的电路(例如集成电路(IC)、片上系统(SoC)等)。例如,逻辑单元可以实施在逻辑电路中,以用于实现在此所讨论的编码系统的固件或硬件。本领域技术人员应理解,硬件和/或固件所执行的操作可以替换地经由可以实施为软件封装、代码和/或指令集或指令的软件得以实现,并且还应理解,逻辑单元也可以利用软件的一部分来实现其功能。
[0101] 如在此所描述的任何实现方式中所使用的那样,术语“组件”可以指代模块或逻辑单元,如以上描述这些术语。因此,术语“组件”可以指代被配置为提供在此所描述的功能的软件逻辑、固件逻辑和/或硬件逻辑的任何组合。例如,本领域技术人员应理解,硬件和/或固件所执行的操作可以替换地经由可以实施为软件封装、代码和/或指令集的软件模块得以实现,并且还应理解,逻辑单元也可以利用软件的一部分来实现其功能。
[0102] 参照图12,可以根据本公开的至少一些实现方式来布置用于提供视频序列的重构帧的自适应质量恢复(AQR)滤波的示例视频编码系统1200。在所示实现方式中,系统1200可以包括一个或多个中央处理单元或处理器1203、显示设备1205以及一个或多个存储器存储1204。中央处理单元1203、存储器存储1204和/或显示设备1205可以能够经由例如总线、引线或其它接入而与彼此进行通信。在各个实现方式中,显示设备1205可以集成在系统1200中,或者与系统1200分开实现。
[0103] 如图12所示,并且如上所述,处理单元1220可以具有带编码器100和/或解码器200的逻辑电路1250。编码器100可以具有运动估计单元1252,以提供在此所描述的并且如关于在此所描述的处理所解释的很多功能。
[0104] 应理解,图12所示的模块可以包括各种软件和/或硬件模块和/或可以经由软件或硬件或其组合实现的模块。例如,模块可以经由处理单元1220实现为软件,或者模块可以经由专用硬件部分来实现。此外,所示的存储器存储1204可以是例如用于处理单元1220的共享存储器。AQR滤波数据可以存储在上述任何选项上,或者可以存储在这些选项的组合上,或者可以存储在别处。此外,可以通过各种方式来实现系统1200。例如,系统1200(不包括显示设备1205)可以实现为具有图形处理器、四核中央处理单元和/或存储器控制器输入/输出(I/O)模块的单个芯片或器件。在其它示例中,系统1200(再次不包括显示设备1205)可以实现为芯片组
[0105] 处理器1203可以包括任何合适的实现方式,包括例如微处理器多核处理器专用集成电路芯片、芯片组、可编程逻辑器件、图形卡、集成图形、通用图形处理单元等。此外,存储器存储1204可以是任何类型的存储器(例如易失性存储器(例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等)或非易失性存储器(例如闪存等)等)。在非限定性示例中,存储器存储1204也可以经由缓存存储器得以实现。在各个示例中,系统1200可以实现为芯片组或片上系统。
[0106] 参照图13,根据本公开和各个实现方式的示例系统1300可以是媒体系统,但是系统1300并非限于该上下文。例如,系统1300可以合并到个人计算机(PC)、膝上型计算机、超级膝上型计算机、平板、触摸板、便携式计算机、手持计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如智能电话、智能平板或智能电视)、移动互联网设备(MID)、传信设备、数据通信设备等中。
[0107] 在各个实现方式中,系统1300包括平台1302,其以通信方式耦合到显示器1320。平台1302可以从内容设备(例如内容服务设备1330或内容传送设备1340或其它类似内容源)接收内容。包括一个或多个导航特征的导航控制器1350可以用于与例如平台1302和/或显示器1320进行交互。以下更详细地描述这些组件中的每一个。
[0108] 在各个实现方式中,平台1302可以包括芯片组1305、处理器1310、存储器1312、存储件1314、图形子系统1315、应用1316和/或无线电装置1318以及天线1313的组合。芯片组1305可以提供处理器1310、存储器1312、存储1314、图形子系统1315、应用1316和/或无线电装置1318之间的相互通信。例如,芯片组1305可以包括能够提供与存储1314的相互通信的存储适配器(未描绘)。
[0109] 处理器1310可以实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器;x86指令集兼容处理器、多核或任何其它微处理器或中央处理单元(CPU)。在各个实现方式中,处理器1310可以是双核处理器、双核移动处理器等。
[0110] 存储器1312可以实现为易失性存储器设备(例如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM(SRAM))。
[0111] 存储件1314可以实现为非易失性存储设备(例如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附连存储设备、闪存、电池备份SDRAM(同步DRAM)和/或网络可存取存储设备)。在各个实施例中,例如,存储件1314可以包括用于当包括多个硬驱动器时对有价值的数字媒体增加存储性能增强式保护的技术。
[0112] 图形子系统1315可以执行对图像(例如静止图像或视频)的处理,以便进行显示。例如,图形子系统1315可以是图形处理单元(GPU)或视觉处理单元(VPU)。模拟或数字接口可以用于以通信方式耦合图形子系统1315和显示器1320。例如,接口可以是任何高清晰度多媒体接口、显示端口、无线HDMI和/或无线HD顺应技术。图形子系统1315可以集成到处理器1310或芯片组1305中。在一些实现方式中,图形子系统1315可以是以通信方式耦合到芯片组1305的单机卡。
[0113] 在此所描述的图形和/或视频处理技术可以实现于各种硬件架构中。例如,图形和/或视频功能可以集成在芯片组内。替换地,可以使用分立式图形和/或视频处理器。作为又一实现方式,可以通过包括多核处理器在内的通用处理器提供图形和/或视频功能。在其它实现方式中,这些功能可以实现在消费者电子设备中。
[0114] 无线电装置1318可以包括能够使用各种合适的无线通信技术来发送和接收信号的一个或多个无线电装置。这些技术可以涉及跨越一个或多个无线网络的通信。示例无线网络包括(但不限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网络以及卫星网络。在跨越这些网络的通信中,无线电装置1318可以根据任何版本的一个或多个适用标准来操作。
[0115] 在各个实现方式中,显示器1320可以包括任何电视类型监视器或显示器。显示器1320可以包括例如计算机显示屏、触摸屏显示器、视频监视器、类电视的设备和/或电视。显示器1320可以是数字和/或模拟的。在各个实现方式中,显示器1320可以是全息显示器。此外,显示器1320可以是可以接收视觉投影的透明表面。这些投影可以传送各种形式的信息、图像和/或对象。例如,这些投影可以是用于移动增强现实(MAR)应用的视觉覆盖。在一个或多个软件应用1316的控制下,平台1302可以在显示器1320上显示用户界面1322。
[0116] 在各个实现方式中,例如,内容服务设备1330可以受任何国家的、国际的和/或独立的服务掌控,并且因此可经由互联网对平台1302访问。内容服务设备1330可以耦合到平台1302和/或显示器1320。平台1302和/或内容服务设备1330可以耦合到网络1360,以将媒体信息传递(例如,发送和/或接收)出入网络1360。内容传递设备1340也可以耦合到平台1302和/或显示器1320。
[0117] 在各个实现方式中,内容服务设备1330可以包括有线电视盒、个人计算机、网络、电话、互联网启用设备或能够传送数字信息和/或内容的电器,以及能够经由网络1360或以直接方式在内容提供商与平台1302和/或显示器1320之间单向地或双向地传递内容的任何其它类似设备。应理解,内容可以经由网络1360单向地和/或双向地传递出入系统1300的组件中的任何一个以及内容提供商。内容的示例可以包括任何媒体信息,包括例如视频、音乐、医疗和游戏信息等。
[0118] 内容服务设备1330可以接收内容(例如有线电视节目,包括媒体信息、数字信息和/或其它内容)。内容提供商的示例可以包括任何有线或卫星电视内容提供商,或者无线电内容提供商,或者互联网内容提供商。所提供的示例并非意图以任何方式来限制根据本公开的实现方式。
[0119] 在各个实现方式中,平台1302可以从具有一个或多个导航特征的导航控制器1350接收控制信号。控制器1350的导航特征可以用于与例如用户界面1322进行交互。在实现方式中,导航控制器1350可以是定点设备,其可以是允许用户将空间(例如连续和多维)数据输入到计算机中的计算机硬件组件(具体地说,人机接口设备)。很多系统(例如图形用户接口(GUI)以及电视和监视器)允许用户使用物理手势控制数据并且将其提供给计算机或电视。
[0120] 控制器1350的导航特征的移动可以通过显示器(例如显示器1320)上所显示的指针光标、聚焦环或其它视觉指示符的移动在显示器上得以复制。例如,在软件应用1316的控制下,位于导航控制器1350上的导航特征可以被映射为用户界面1322上所显示的虚拟导航特征。在实现方式中,控制器1350可以不是单独的组件,而是可以集成到平台1302和/或显示器1320中。然而,本公开不限于在此所示或所描述的要素或上下文中。
[0121] 在各个实现方式中,例如,当启用时,驱动器(未示出)可以包括用于使用户能够在初始引导之后通过触摸按钮即刻打开和关闭平台1302(比如电视)的技术。程序逻辑可以允许平台1302即使在平台“关闭”时,也将内容流送到媒体适配器或其它内容服务设备1330或内容传送设备1340。此外,例如,芯片组1305可以包括关于7.1环绕声音音频和/或高清晰度7.1环绕声音音频的硬件和/或软件支持。驱动器可以包括用于集成图形平台的图形驱动器。在实现方式中,图形驱动器可以包括外设组件互连(PCI)高速图形卡。
[0122] 在各个实现方式中,系统1300中所示的组件中的任何一个或多个组件可以是集成的。例如,平台1302和内容服务设备1330可以是集成的,或者平台1302和内容传送设备1340可以是集成的,或者平台1302、内容服务设备1330和内容传送设备1340可以是集成的。在各个实现方式中,平台1302和显示器1320可以是集成单元。例如,显示器1320和内容服务设备1330可以是集成的,或者显示器1320和内容传送设备1340可以是集成的。这些示例并非意味着限制本公开。
[0123] 在各个实现方式中,系统1300可以实现为无线系统、有线系统或二者的组合。当实现为无线系统时,系统1300可以包括适合于通过无线共享介质进行通信的组件和接口(例如一个或多个天线、发射机、接收机、收发机、放大器、滤波器、控制逻辑等)。无线共享介质的示例可以包括无线频谱(例如RF频谱等)的一部分。当实现为有线系统时,系统1300可以包括适合于通过有线通信介质进行通信的组件和接口(例如输入/输出(I/O)适配器、用于将I/O适配器与对应有线通信介质连接的物理连接器、网络接口卡(NIC)、盘控制器、视频控制器、音频控制器等)。有线通信介质的示例可以包括导线、线缆、金属引线、印制电路板(PCB)、背板、开关构造、半导体材料、双绞线导线、同轴线缆、光纤等。
[0124] 平台1302可以建立一个或多个逻辑信道或物理信道,以传递信息。信息可以包括媒体信息和控制信息。媒体信息可以指代表示意图用于用户的内容的任何数据。内容的示例可以包括例如来自语音转换、视频会议、流送视频、电子邮件(“email”)消息、语音邮件消息、文字数字符号、图形、图像、视频、文本等的数据。来自语音转换的数据可以是例如话音信息、静默时段、背景噪声、舒适噪声音调等。控制信息可以指代表示意图用于自动化系统的命令、指令或控制字的任何数据。例如,控制信息可以用于将媒体信息路由通过系统,或吩咐节点以预定方式处理媒体信息。然而,实现方式不限于图13中所示或所描绘的要素或情形。
[0125] 如上所述,可以通过变化的物理风格或形数(form factor)实施系统1200或1300。图14示出可以实现系统1200或1300的小形数设备1400的实现方式。在实现方式中,例如,设备1400可以实现为具有无线能力的移动计算设备。例如,移动计算设备可以指代具有处理系统和移动功率源或电源(例如一个或多个电池)的任何设备。
[0126] 如上所述,移动计算设备的示例可以包括个人计算机(PC)、膝上型计算机、超级膝上型计算机、平板、触摸板、便携式计算机、手持计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如智能电话、智能平板或智能电视)、移动互联网设备(MID)、传信设备、数据通信设备等。
[0127] 移动计算设备的示例也可以包括被布置为人所穿戴的计算器(例如腕部计算器、手指计算器、环计算器、眼镜计算器、带夹计算器、臂带计算器、计算器、衣物计算器以及其它可穿戴计算器)。在各个实现方式中,例如,移动计算设备可以实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。虽然可以通过示例的方式以实现为智能电话的移动计算设备描述一些实现方式,但是应理解,同样可以使用其它无线移动计算设备实现其它实现方式。在该上下文中,实现方式并非受限。
[0128] 如图14所示,设备1400可以包括外壳1402、显示器1404、输入/输出(I/O)设备1406以及天线1408。设备1400也可以包括导航特征1412。显示器1404可以包括显示单元上的任何合适的屏幕1410,以用于显示对于移动计算设备适当的信息。I/O设备1406可以包括任何合适的I/O设备,以用于将信息录入移动计算设备中。用于I/O设备1406的示例可以包括文字数字键盘、数字键区、触摸板、输入键、按钮、开关、摇臂开关、麦克风、扬声器、语音识别设备和软件等。信息也可以通过麦克风(未示出)的方式录入到设备1400中。该信息可以由语音识别设备(未示出)数字化。在该上下文中,实现方式并非受限。
[0129] 可以使用硬件元件、软件元件或二者的组合来实现各个实现方式。硬件元件的示例可以包括处理器、微处理器、电路、电路元件(例如晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程阵列(FPGA)、逻辑门、寄存器、半导体设备、芯片、微芯片、芯片组等。软件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号,或者其任何组合。确定实现方式是否使用硬件元件和/或软件元件来实现可以根据任何数量的因素(例如期望的计算速率、功率等级、热量容限、处理周期预算、输入数据率、存储器资源、数据总线速度以及其它设计或性能约束)而变化。
[0130] 可以通过表示处理器内的各个逻辑的机器可读介质上所存储的代表性指令来实现上述一个或多个方面,这些指令当由机器读取时使机器形成逻辑以执行在此所描述的技术。称为“IP核”的这些表示可以存储在有形机器可读介质上,并且提供给各个消费者或制造场所,以加载到实际上制作逻辑或处理器的制造机器中。
[0131] 虽然已经参照各个实现方式描述了在此所阐述的特定特征,但是该描述并非意图理解为限制性的意义。因此,在此所描述的实现方式的各种修改以及对于本公开所属领域的技术人员显而易见的其它实现方式应看作处于本公开的精神和范围内。
[0132] 以下示例属于附加实现方式。
[0133] 一种计算机实现的自适应质量恢复滤波的方法,包括:接收像素数据的多个帧;以及进行搜索,以通过寻找在基准帧上的相对于当前帧上的对应块定位的像素数据的最佳匹配块,来寻找最佳运动矢量。所述搜索包括:在所述基准帧处确定初始搜索图案布置的多个候选匹配块位置点中的最佳匹配块位置(MBL)点;将精细化搜索图案布置定位在所述最佳匹配块位置点处;测试所述精细化搜索图案布置的候选匹配块位置点,以确定新的最佳匹配块位置点;以及将所述精细化搜索图案布置的中心移位到所述新的最佳匹配块位置点,而不检查所述精细化搜索图案布置中所包括的所有候选匹配块位置点。
[0134] 所述方法也可以包括例如以下操作:形成多个预定区段的所述精细化搜索图案布置;以及在已经测试了区段中的所有匹配块位置点之后,移位所述精细化搜索图案布置的中心;其中,每个区段是图案,并且所述精细化搜索布置由以下形成:多个图案;缩放为与所述中心相距多个不同步长的相同图案,其中,步长是沿着从所述中心到所述图案中的匹配块位置点的直线延伸的距离单位;或二者。图案包括定义形状中的定义数量的候选匹配块位置点,并且图案沿所述中心周围的圈延伸,其中,当在检查以下项之一之后找到所述新的最佳匹配块位置点时,所述中心移位:检查单个步长处的图案上的所述多个候选匹配块位置点中的至少一个候选匹配块位置点;以及在检查单个步长处的图案上的所有多个候选匹配块位置点之后。
[0135] 所述方法还包括:减小步长大小,以检查逐渐更靠近所述精细化搜索图案布置的中心的图案上的候选匹配块位置点,在检查所述初始搜索图案布置之后紧接着检查第一精细化搜索图案布置时,降低将检查的图案的步长,其中,当在当前图案上没有找到新的最佳匹配块位置点时,减小所述步长,以检查更靠近所述精细化搜索图案布置的中心的图案;设定围绕移位后的中心延伸的所述精细化搜索图案布置的图案的最大步长,以确定精细化后的最佳匹配块位置点,并且将最大步长设定为与在移位所述中心之前具有前一搜索图案布置的最佳匹配块位置点的图案的步长相同,其中,所述中心移位多次;以及通过以下项中的至少一个来限制所述中心可以移位的次数:固定次数,与运动矢量长度的可允许范围或值的关联,以及用于检查精细化搜索图案布置的持续时间。
[0136] 对于所述方法,所述初始搜索图案布置或精细化搜索图案布置或二者可以是具有最大完全布置的对数布置,包括:在步长1处的具有四个候选匹配块位置点的菱形图案;在步长2、4、8和16处的均具有八个候选匹配块位置点的菱形图案;以及在步长32处形成没有角的菱形的边并且具有12个候选匹配块位置点的菱形图案,在菱形形状的对角边上各自具有三个候选匹配块位置点,其中,所述步长是距所述搜索图案布置的中心的单位距离。
[0137] 一种系统,包括:显示器;存储器;至少一个处理器,以通信方式耦合到所述存储器和显示器;以及运动估计单元,由所述至少一个处理器操作,并且被布置为:接收像素数据的多个帧;进行搜索,以通过寻找在基准帧上的相对于当前帧上的对应块定位的像素数据的最佳匹配块,来寻找最佳运动矢量。所述搜索包括:在所述基准帧处确定初始搜索图案布置的多个候选匹配块位置点中的最佳匹配块位置(MBL)点;将精细化搜索图案布置定位在所述最佳匹配块位置点处;测试所述精细化搜索图案布置的候选匹配块位置点,以确定新的最佳匹配块位置点,以及将所述精细化搜索图案布置的中心移位到所述新的最佳匹配块位置点,而不检查所述精细化搜索图案布置中所包括的所有候选匹配块位置点。
[0138] 所述系统的运动估计单元也可以被布置为:形成多个预定区段的所述精细化搜索图案布置;以及在已经测试了区段中的所有匹配块位置点之后,移位所述精细化搜索图案布置的中心,其中,每个区段是图案,并且所述精细化搜索布置由以下形成:多个图案;缩放为与所述中心相距多个不同步长的相同图案,其中,步长是沿着从所述中心到所述图案中的匹配块位置点的直线延伸的距离单位;或二者,其中,图案包括定义形状中的定义数量的候选匹配块位置点;其中,图案沿所述中心周围的圈延伸;其中,当在检查以下项之一之后找到所述新的最佳匹配块位置点时,所述中心移位:检查单个步长处的图案上的所述多个候选匹配块位置点中的至少一个候选匹配块位置点;以及在检查单个步长处的图案上的所有多个候选匹配块位置点之后。
[0139] 所述运动估计单元也可以被布置为:减小步长大小,以检查逐渐更靠近所述精细化搜索图案布置的中心的图案上的候选匹配块位置点;在检查所述初始搜索图案布置之后紧接着检查第一精细化搜索图案布置时,降低将检查的图案的步长,其中,当在当前图案上没有找到新的最佳匹配块位置点时,减小所述步长,以检查更靠近所述精细化搜索图案布置的中心的图案;设定围绕移位后的中心延伸的所述精细化搜索图案布置的图案的最大步长,以确定精细化后的最佳匹配块位置点,并且将最大步长设定为与在移位所述中心之前具有前一搜索图案布置的最佳匹配块位置点的图案的步长相同,其中,所述中心移位多次;以及通过以下项中的至少一个来限制所述中心可以移位的次数:固定次数,与运动矢量长度的可允许范围或值的关联,以及用于检查精细化搜索图案布置的持续时间。
[0140] 对于所述系统,所述初始搜索图案布置或精细化搜索图案布置或二者可以是具有最大完全布置的对数布置,包括:在步长1处的具有四个候选匹配块位置点的菱形图案;在步长2、4、8和16处的均具有八个候选匹配块位置点的菱形图案;以及在步长32处的形成没有角的菱形的边并且具有12个候选匹配块位置点的菱形图案,在菱形形状的对角边上各自具有三个候选匹配块位置点,其中,所述步长是距所述搜索图案布置的中心的单位距离。
[0141] 一种计算机可读存储器,包括指令,所述指令当由计算设备执行时使所述计算设备,一种计算机可读介质,其上存储有指令,所述指令当被执行时使计算设备:接收像素数据的多个帧;进行搜索,以通过寻找在基准帧上的相对于当前帧上的对应块定位的像素数据的最佳匹配块,来寻找最佳运动矢量。所述搜索包括:在所述基准帧处确定初始搜索图案布置的多个候选匹配块位置点中的最佳匹配块位置点;将精细化搜索图案布置定位在所述最佳匹配块位置点处;测试所述精细化搜索图案布置的候选匹配块位置点,以确定新的最佳匹配块位置点;以及将所述精细化搜索图案布置的中心移位到所述新的最佳匹配块位置点,而不检查所述精细化搜索图案布置中所包括的所有候选匹配块位置点。
[0142] 所述指令也可以使所述计算设备:形成多个预定区段的所述精细化搜索图案布置;以及在已经测试了区段中的所有匹配块位置点之后,移位所述精细化搜索图案布置的中心,其中,每个区段是图案,并且所述精细化搜索布置由以下形成:多个图案;缩放为与所述中心相距多个不同步长的相同图案,其中,步长是沿着从所述中心到所述图案中的匹配块位置点的直线延伸的距离单位;或二者,其中,图案包括定义形状中的定义数量的候选匹配块位置点;其中,图案沿所述中心周围的圈延伸;其中,当在检查以下项之一之后找到所述新的最佳匹配块位置点时,所述中心移位:检查单个步长处的图案上的所述多个候选匹配块位置点中的至少一个候选匹配块位置点,以及在检查单个步长处的图案上的所有多个候选匹配块位置点之后。
[0143] 所述指令也可以使所述计算设备:减小步长大小,以检查逐渐更靠近所述精细化搜索图案布置的中心的图案上的候选匹配块位置点;在检查所述初始搜索图案布置之后紧接着检查第一精细化搜索图案布置时,降低将检查的图案的步长,其中,当在当前图案上没有找到新的最佳匹配块位置点时,减小所述步长,以检查更靠近所述精细化搜索图案布置的中心的图案;设定围绕移位后的中心延伸的所述精细化搜索图案布置的图案的最大步长,以确定精细化后的最佳匹配块位置点,并且将最大步长设定为与在移位所述中心之前具有前一搜索图案布置的最佳匹配块位置点的图案的步长相同,其中,所述中心移位多次;以及通过以下项中的至少一个来限制所述中心可以移位的次数:固定次数,与运动矢量长度的可允许范围或值的关联,以及用于检查精细化搜索图案布置的持续时间。
[0144] 对于所述指令,所述初始搜索图案布置或精细化搜索图案布置或二者可以是具有最大完全布置的对数布置,包括:在步长1处的具有四个候选匹配块位置点的菱形图案;在步长2、4、8和16处的均具有八个候选匹配块位置点的菱形图案;以及在步长32处的形成没有角的菱形的边并且具有12个候选匹配块位置点的菱形图案,在菱形形状的对角边上各自具有三个候选匹配块位置点,其中,所述步长是距所述搜索图案布置的中心的单位距离。
[0145] 在另一示例中,至少一种机器可读介质可以括多个指令,所述指令响应于在计算设备上执行而使所述计算设备执行以上示例中任一项所述的方法。
[0146] 在又一示例中,一种装置可以包括用于执行以上示例中任一项所述的方法的单元。
[0147] 以上示例可以包括特征的特定组合。然而,以上示例不限于此,并且在各个实现方式中,以上示例可以包括仅承担这些特征的子集,承担这些特征的不同顺序,承担这些特征的不同组合,和/或承担除了明确列出的这些特征之外的附加特征。例如,可以关于示例装置、示例系统和/或示例物品实现关于示例方法所描述的所有特征,并且反之亦然。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈