用于运动估计迭代搜索的简单下一搜索位置选择的制作方法

文档序号:7735374阅读:106来源:国知局
专利名称:用于运动估计迭代搜索的简单下一搜索位置选择的制作方法
技术领域
本发明涉及视频压缩领域。更具体地,本发明涉及数字视频编码器中的经改进运 动估计。
背景技术
视频序列由多个通常称为帧的图片构成。由于随后的帧非常相似,因此从一帧到 下一帧包含了许多冗余。在高效地通过信道发送或存储在存储器中之前,视频数据被压缩 以节省带宽和存储器两者。目标是去除冗余以获得更好的压缩比。第一视频压缩方法是从 给定帧减去参考帧以生成相对差。该相对差可以以相同质量按照较低比特速率被编码。解 码器通过将该相对差添加到参考帧中来重构原始帧。更复杂的方法是对整个场景的运动以及视频序列的对象进行近似。该运动是通过 被编码在比特流中的参数来描述的。预测帧的像素是通过经适当转换的参考帧的像素来近 似的。该方法与简单的减法相比,提供了提高的预测能力。然而,运动模型的参数所占的比 特速率必须不会变得太大。一般而言,视频压缩是根据许多标准来执行的,包括来自运动图像专家组(MPEG) 的一个或多个用于音频和视频压缩的标准,例如MPEG-l、MPEG-2和MPEG-4。已提出了额外 的增强来作为MPEG-4第10部分(也称为H. 264或AVC(高级视频编码))标准的一部分。 在MPEG标准下,视频数据首先被编码并且随后被存储在视频系统的编码器侧上的编码器 缓冲器中。然后,编码数据被发送给视频系统的解码器侧,在其中,该编码数据在被解码之 前被存储在解码器缓冲器中,以使得相应的图片可被查看。H. 264/AVC工程的意图在于开发一种能够以比先前标准(例如,MPEG-2、H. 263或 MPEG-4第2部分)需要的比特速率低得多的比特速率来提供良好视频质量的标准。此外, 希望在不致使复杂性大幅增加的情况下来进行这些改进,以便不会使设计无法实现。另一 目标是以灵活的方式来作出这些改变,该方式允许将标准应用于各种应用,以使得其可被 用于低比特速率和高比特速率两者以及低分辨率视频和高分辨率视频。另一目标是其在极 广泛种类的网络和系统上工作良好。H. 264/AVC/MPEG-4第10部分包含许多新的特征,这些特征允许其比以往的标准 更有效地压缩视频并且提供了应用于各种网络环境的更大灵活性。一些关键特征包括利用 先前编码的图片作为参考的多图片运动补偿、具有16X16那样大和4X4那样小的块大小 的可变块大小运动补偿(VBSMC)、用于半像素亮度样本预测的推导的六抽头滤波、宏块对结 构、用于运动补偿的四分之一像素精度、加权预测、环路解块滤波器、精确匹配整数4X4空 间块变换、对主空间变换的“DC”系数执行的二次Hadamard变换(其中,Hadamard变换类 似于快速傅里叶变换)、从用于“内部”编码的相邻块进行的空间预测、基于上下文的自适 应二进制算术编码(CABAC)、基于上下文的自适应可变长度编码(CAVLC)、针对未被CABAC 或CAVLC编码的许多语法要素的简单且高度结构化的可变长度编码(VLC)技术(称为指数 Golomb编码)、网络抽象层(NAL)定义、切换片段、灵活宏块排序、冗余片段(RS)、补充增强信息(SEI)和视频可用性信息(VUI)、辅助图片、帧编号以及图片顺序计数。这些技术以及 若干其它技术允许H. 264在更多状况下、在更多环境中比先前的标准表现得更好。H. 264通 过以一半的比特速率或者甚至更小的比特速率获得相同的质量而比MPEG-2视频表现得更 好。MPEG用于对运动图像和关联音频进行一般性编码,并且创建由三种类型的编码数 据帧的序列构成的压缩视频比特流。三种类型的数据帧是帧内编码帧(称为I帧或I图 片)、双向预测帧(称为B帧或B图片),以及前向预测帧(称为P帧或P图片)。这三种类 型的帧可以按照被称为GOP(图片组)结构的指定顺序来排列。I帧包含重构图片所需的 所有信息。I帧被编码为没有运动补偿的常规图像。另一方面,P帧使用来自在前帧的信息 并且B帧使用来自在前帧、后续帧或者这两者的信息,来重构图片。具体地,P帧是从前一 I 帧或者紧邻的前一 P帧来预测的。还可以从紧邻的后续帧来预测帧。为了以这种方式利用后续帧,必须在被预测帧 之前对后续帧编码。因此,编码顺序不一定与真实的帧顺序相匹配。这样的帧通常从两个 方向来预测,例如,从紧邻被预测帧的在前的I帧或P帧或者紧邻被预测帧的随后的P帧来 预测。这些被双向预测的帧称为B帧。存在许多可能的GOP结构。常见的GOP结构是15帧长,并且具有序列I_BB_P_BB_ P_BB_P_BB_P_BB_。类似的12帧序列也是常见的。I帧针对空间冗余进行编码,P和B帧针 对时间冗余和空间冗余两者进行编码。由于视频流中的相邻帧常常密切相关,因此P帧和B 帧仅是I帧的大小的一小百分比。然而,在帧可被压缩为的大小与对这样的压缩帧进行编 码所需的处理时间和资源之间存在折中。GOP结构中的I、P和B帧之比是由视频流的性质 以及对输出流的带宽约束来确定的,尽管编码时间也可能是一个问题。在具有有限计算资 源的现场传输和实时环境中尤其是这样,因为包含许多B帧的流可能要比纯I帧文件花费 长得多的时间来编码。B帧和P帧需要较少的比特来存储图片数据,一般包含针对当前帧与在前帧、后续 帧或者它们两者之间的差异的差异比特。B帧和P帧由此被用来减少跨越帧所包含的冗余 信息。在操作中,解码器接收经编码B帧或经编码P帧并且利用先前或后续帧来重构原始 帧。该处理要容易得多并且在连续的帧极类似时将产生更平滑的场景转换,这是因为帧中 的差异较小。每个视频图像被分离为一个亮度(Y)通道和两个色度通道(也称为色差信号Cb 和Cr)。亮度和色度阵列的块被组织成为“宏块”,其是在帧内编码的基本单位。在I帧的情况中,使实际图像数据经过编码处理。然而,P帧和B帧首先经过“运 动补偿”处理。运动补偿是根据前一帧的每个宏块所移动到的位置来描述连续帧之间的差 异的一种方式。这样的技术通常用来减少用于视频压缩的视频序列的时间冗余。P帧或B 帧中的每个宏块被与前一或下一图像中的密切相关的区域相关联,该区域是如编码器利用 “运动向量”所选择的。将宏块映射到其相关区域的运动向量被编码,并且然后使两个区域 之间的差异经过编码处理。传统视频编解码器使用经运动补偿的预测来高效地对初始输入视频流进行编码。 当前帧中的宏块是从前一帧中的经位移的宏块预测的。原始宏块与其预测之间的差异被压 缩并且与位移(运动)向量一起被发送。该技术称为帧间编码(inter-coding),其是MPEG标准中所使用的方法。编码处理中的最耗时部分之一是运动估计。运动估计通过结合预测误差的变换编 码来实现运动补偿预测来减小视频信号的比特速率。与运动估计有关的混叠(aliasing) 是不能通过利用像素间运动估计来避免的,并且混叠使预测效率恶化。为了解决该恶化问 题,半像素插值和四分之一像素插值适合用于减小混叠的影响。为了估计出具有四分之一 像素精度的运动向量,通常使用三步搜索法。在第一步,运动估计在指定搜索范围内被应用 于每个整像素以找到最佳匹配。然后,在第二步,所选整像素运动向量周围的八个半像素点 被检查以找到最佳的半像素匹配点。最后,在第三步,所选半像素运动向量周围的八个四分 之一像素点被检查,并且最佳匹配点被选择作为最终运动向量。考虑到运动估计的复杂性, 如果将全面搜索用于整像素运动估计,则整像素运动估计将占据运动估计的主要部分。然 而,如果利用快速整数运动估计算法,则可以通过检查少于十个搜索点来找到整像素运动 向量。结果,搜索半像素运动向量和四分之一像素运动向量的复杂性变得显著。

发明内容
用于运动估计迭代搜索的下一位置选择器通过容易且快速地确定下一搜索区域 的中心点而提高了整像素运动估计迭代搜索的效率和质量。通过获取当前搜索区域的SAD 值的位置并且将该位置映射到下一搜索区域的中心点,确定下一搜索区域的处理是非常高 效的。局部最小值避免方案提高了避免陷入局部最小值的能力。通过记住前一位置/方 向,搜索能够在正确的方向上继续,以确保搜索继续而不出现陷入局部最小值的来回往复 搜索。这种经改进的运动估计搜索的应用包括稳定图像以及使用运动向量的许多其它应 用。在一个方面中,一种利用计算设备改进运动估计迭代搜索的方法包括迭代搜索 最小距离位置,确定下一搜索区域的中心点,并且避开局部最小值。在一些实施例中,所述 最小距离位置是最小绝对差之和位置。确定下一搜索区域的中心点还包括确定搜索区域 中具有最小距离值的位置;基于所述具有最小距离值的位置来确定用于下一搜索区域的中 心点的偏移;以及基于所述偏移选择所述下一搜索区域的中心点。避开局部最小值还包括 确定前一位置;确定新的位置;比较所述前一位置和所述新的位置;以及基于所述前一位 置与所述新的位置的比较,选择新的搜索中心,其中,如果所述新的位置在与所述前一位置 相反的方向上,则所述新的搜索中心基于所述前一位置,并且如果所述新的位置不在与所 述前一位置相反的方向上,则所述新的搜索中心于所述新的位置。迭代搜索还包括计算子 区域的子区域距离值;确定所述子区域的最小距离值;将所述最小距离值与阈值相比较; 如果所述最小距离值小于所述阈值,则提早结束;以及如果所述最小距离值大于或等于所 述阈值,则重复a-d,直到计数为零为止。在另一方面中,一种用于利用计算设备改进运动估计迭代搜索的系统包括用于存 储应用的存储器和用于处理所述应用的处理器,该应用被配置用于迭代搜索最小距离位 置;确定下一搜索区域的中心点;以及避开局部最小值。在一些实施例中,所述最小距离 位置是最小绝对差之和位置。确定下一搜索区域的中心点还包括确定搜索区域中具有最 小距离值的位置;基于所述具有最小距离值的位置来确定用于下一搜索区域的中心点的偏 移;以及基于所述偏移选择所述下一搜索区域的中心点。避开局部最小值还包括确定前一位置;确定新的位置;比较所述前一位置和所述新的位置;以及基于所述前一位置与所 述新的位置的比较,选择新的搜索中心,其中,如果所述新的位置在与所述前一位置相反的 方向上,则所述新的搜索中心基于所述前一位置,并且如果所述新的位置不在与所述前一 位置相反的方向上,则所述新的搜索中心于所述新的位置。迭代搜索还包括计算子区域的 子区域距离值;确定所述子区域的最小距离值;将所述最小距离值与阈值相比较;如果所 述最小距离值小于所述阈值,则提早结束;以及如果所述最小距离值大于或等于所述阈值, 则重复a_d,直到计数为零为止。在又一方面中,一种用于利用计算设备确定下一搜索区域的中心点的方法包括 确定搜索区域中具有最小距离值的位置;基于所述具有最小距离值的位置来确定用于下一 搜索区域的中心点的偏移;以及基于所述偏移选择所述下一搜索区域的中心点。在一些实 施例中,所述最小距离值是最小绝对差之和值。确定下一搜索区域的中心点提高了估计用 于使图像稳定的运动的效率。确定偏移是利用查找表执行的。所述查找表包括与所述搜索 区域中的每个位置相对应的偏移。替代地,该搜索区域是3X3个像素。在一些实施例中, 该方法仅用硬件实现。替代地,该方法部分地用硬件实现。替代地,该方法部分地用硬件实 现并且部分地利用一个或多个应用实现。该计算设备是从包括如下项的组中选出的个人 计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助理、 蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、iPod 和家 庭娱乐系统。在另一方面中,一种用于利用计算设备确定下一搜索区域的中心点的系统包括 用于存储应用的存储器和用于处理所述应用的处理器,该应用被配置用于确定搜索区域 中具有最小距离值的位置;基于所述具有最小距离值的位置来确定用于下一搜索区域的中 心点的偏移;以及基于所述偏移选择所述下一搜索区域的中心点。在一些实施例中,所述最 小距离位置是最小绝对差之和位置。确定下一搜索区域的中心点提高了估计用于使图像稳 定的运动的效率。确定偏移是利用查找表执行的。所述查找表包括与所述搜索区域中的每 个位置相对应的偏移。替代地,该搜索区域是3X3个像素。在一些实施例中,该系统仅用 硬件实现。替代地,该系统部分地用硬件实现。替代地,该系统部分地用硬件实现并且部分 地利用一个或多个应用实现。该计算设备是从包括如下项的组中选出的个人计算机、膝上 型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助理、蜂窝/移动 电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、iPod 和家庭娱乐系统。在另一方面中,一种用于利用计算设备确定下一搜索区域的中心点的系统包括 输入组件,用于接收搜索区域中的最小距离位置;映射组件,该映射组件将所述最小距离位 置映射到偏移;以及输出组件,用于输出所述偏移。在一些实施例中,最小距离值是最小绝 对差之和值。确定下一搜索区域的中心点提高了估计用于使图像稳定的运动的效率。映射 组件使用查找表。查找表包括与所述搜索区域中的每个位置相对应的偏移。替代地,搜索区 域是3X3个像素。在一些实施例中,该系统仅用硬件实现。替代地,该系统部分地用硬件 实现。替代地,该系统部分地用硬件实现并且部分地利用一个或多个应用实现。该计算设 备是从包括如下项的组中选出的个人计算机、膝上型计算机、计算机工作站、服务器、大型 计算机、手持式计算机、个人数字助理、蜂窝/移动电话、智能设备、游戏控制器、数字相机、 数字摄录像机、相机手机、iPod 和家庭娱乐系统。
11
在又一方面中,一种利用计算设备在估计运动时避开局部最小值的方法包括确 定前一位置;确定新的位置;将所述前一位置与所述新的位置相比较;以及基于所述前一 位置与所述新的位置的比较,选择新的搜索中心,其中,如果所述新的位置在与所述前一位 置相反的方向上,则所述新的搜索中心基于所述前一位置,并且如果所述新的位置不在与 所述前一位置相反的方向上,则所述新的搜索中心于所述新的位置。所述相反方向是基于 所述新的位置和所述前一位置以及中心点确定的。利用表和中心点来将所述新的位置和所 述前一位置相比较。避开局部最小值提高了估计用于使图像稳定的运动的效率。所述计算 设备是从包括如下项的组中选出的个人计算机、膝上型计算机、计算机工作站、服务器、大 型计算机、手持式计算机、个人数字助理、蜂窝/移动电话、智能设备、游戏控制器、数字相 机、数字摄录像机、相机手机、iPod 和家庭娱乐系统。在另一方面中,一种利用计算设备在估计运动时避开局部最小值的方法包括确 定前一方向;确定新的方向;将所述前一方向与所述新的方向相比较;以及基于所述前一 方向与所述新的方向的比较,选择新的搜索中心,其中,如果所述新的方向在与所述前一方 向相反的方向上,则所述新的搜索中心基于前一位置,并且如果所述新的方向不在与所述 前一方向相反的方向上,则所述新的搜索中心于新的位置。避开局部最小值提高了估计用 于使图像稳定的运动的效率。在一些实施例中,该方法仅用硬件实现。替代地,该方法部分 地用硬件实现。替代地,该方法部分地用硬件实现并且部分地利用一个或多个应用实现。该 计算设备是从包括如下项的组中选出的个人计算机、膝上型计算机、计算机工作站、服务 器、大型计算机、手持式计算机、个人数字助理、蜂窝/移动电话、智能设备、游戏控制器、数 字相机、数字摄录像机、相机手机、iPod 和家庭娱乐系统。在另一方面中,一种利用计算设备在估计运动时避开局部最小值的方法包括计 算搜索区域中的每个点的距离值;从所述搜索区域中的每个点的距离值中选出最小距离位 置;基于所述最小距离位置确定新的方向;将所述新的方向与前一方向相比较;如果所述 新的方向与所述前一方向是相反方向,则保留前一位置;如果所述新的方向与所述前一方 向不是相反方向,则选择新的位置;基于所述前一位置和所述新的位置中的一者来选择新 的搜索中心;以及重复这些步骤直到达到一限度为止。在一些实施例中,该距离值是绝对差 之和值。所述限度是η次迭代。替代地,所述限度是一阈值。所述新的方向是基于所述新的 位置与中心点之间的第一关系确定的,并且所述前一方向是基于所述前一位置与所述中心 点之间的第二关系确定的。所述新的方向和所述前一方向是通过利用表、将所述新的位置 与中心点相比较并且将所述前一位置与所述中心点相比较而确定的。所述搜索区域是5 X 5 个像素。避开局部最小值提高了估计用于使图像稳定的运动的效率。在一些实施例中,该 方法仅用硬件实现。替代地,该方法部分地用硬件实现。替代地,该方法部分地用硬件实现 并且部分地利用一个或多个应用实现。所述计算设备是从包括如下项的组中选出的个人 计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助理、 蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、iPod 和家 庭娱乐系统。在又一方面中,一种利用计算设备避开局部最小值的系统包括用于存储应用的存 储器和用于处理所述应用的处理器,所述应用被配置用于计算搜索区域中的每个点的距 离值;从所述搜索区域中的每个点的距离值中选出最小距离位置;基于所述最小距离位置确定新的方向;将所述新的方向与前一方向相比较;如果所述新的方向与所述前一方向是 相反方向,则保留前一位置;如果所述新的方向与所述前一方向不是相反方向,则选择新的 位置;基于所述前一位置和所述新的位置中的一者来选择新的搜索中心;以及重复这些步 骤直到达到一限度为止。在一些实施例中,所述距离值是绝对差之和值。所述搜索区域是 5X5个像素。所述计算设备是从包括如下项的组中选出的个人计算机、膝上型计算机、计 算机工作站、服务器、大型计算机、手持式计算机、个人数字助理、蜂窝/移动电话、智能设 备、游戏控制器、数字相机、数字摄录像机、相机手机、iPod 和家庭娱乐系统。避开局部最 小值提高了估计用于使图像稳定的运动的效率。在另一方面中,一种用于避开局部最小值的系统包括硬件组件,用于执行第一组 计算;以及应用组件,用于执行第二组计算,其中,所述第一组计算和所述第二组计算包括 确定前一方向,确定新的方向,将所述前一方向与所述新的方向相比较以确定新的搜索中 心。避开局部最小值是在从包括如下项的组中选出的设备上实现的个人计算机、膝上型计 算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助理、蜂窝/移动电话、 智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、iPod 和家庭娱乐系统。避开 局部最小值提高了估计用于使图像稳定的运动的效率。


图1图示出了根据本发明的视频编码层的框图。图2图示出了根据本发明的运动估计流。图3图示出了根据本发明的示例性搜索。图4图示出了根据本发明的迭代搜索的流程图。图5图示出了根据本发明的用于计算绝对差之和(SAD)的示例性搜索位置和像
ο图6图示出了根据本发明的实现用于估计运动的推测起始点选择的流程图。图7图示出了根据本发明的示例性计算设备的框图。图8图示出了根据本发明的普通(naive)下一步骤选择。图9图示出了根据本发明的被固定在局部最小值处的搜索。图10图示出了根据本发明的回到相反方向上的普通下一步骤选择。图11图示出了根据本发明的移出局部最小值的搜索。图12图示出了根据本发明的位置矩阵。图13图示出了用阴影标出了相对位置的位置矩阵。图14图示出了根据本发明的新的位置以及被禁止的相对位置。图15图示出了根据本发明的普通搜索的流程图。图16图示出了根据本发明的局部最小值避免搜索的流程图。图17图示出了根据本发明的下一位置选择器的流程图的示图。图18-20图示出了根据本发明的对于3X3搜索区域基于具有当前搜索区域中的 最小SAD的位置的下一搜索区域。图21图示出了根据本发明的选择下一位置的方法的流程图。图22图示出了根据本发明的用于基于具有最小SAD的位置来确定下一搜索区域的中心点的示例性查找表。图23图示出了根据本发明的利用细化(refinement)的迭代搜索的流程图,该细 化基于运动向量成本和预测运动向量的SAD。图M图示出了根据本发明的当前宏块以及相邻宏块及其运动向量。图25图示出了根据本发明的利用细化的迭代搜索的流程图,该细化基于运动向 量成本和预测运动向量的SAD以及阈值。图沈图示出了根据本发明的利用早期终止方案的迭代搜索的流程图。
具体实施例方式图1图示出了宏块的视频编码层100的框图。视频编码层100(例如,编码器)包 括时间和空间预测的组合以及变换编码。输入视频102被接收并被分为多个块。序列中的 第一图片通常仅利用其自身内包含的信息而被进行“帧内”编码。然后,在帧内预测模块110 处利用先前编码块的空间相邻样本来预测帧内编码帧中的块的每个部分。该编码处理选择 用于内部预测的相邻样本以及如何使用它们。该处理在本地解码器118以及编码器100处 进行。对于序列中的其余图片,通常使用“帧间”编码。帧间编码从其它先前解码的图片来 实现运动补偿112。在运动估计模块114处进行的用于帧间预测/运动估计的编码处理包 括选择运动数据、确定参考图片以及应用于块中所有样本的空间位移。运动数据被发送作 为供编码器100和本地解码器118使用的边信息(side information)。原始块与预测块之间的差异被称为预测的残余信息。残余信息被变换,并且变换 系数在变换和缩放量化模块104处被缩放和量化。对于变换系数的量化,使用标量量化 (scalar quantization)。利用整数变换来对每个块进行变换,并且利用熵编码方法来量化 变换系数并发送。熵编码器116使用被设置用于除经量化的变换系数以外的所有元素的码 字。基于上下文的自适应可变长度编码(CAVLC)或基于上下文的自适应二进制算术编码 (CABAC)被用于经量化的变换系数。解块滤波器108被实现来控制滤波强度以减轻图像的 土夬状化(blockiness)。编码器100还包括本地解码器118以生成用于接下来的块的预测参考。经量化的 变换系数按照与给出解码预测残余信息的编码器侧相同的方式被逆缩放和逆变换106。解 码预测残余信息被添加到预测中,并且其组合被引导至解块滤波器108,解块滤波器108提 供经解码视频作为输出。最终,熵编码器116产生原始输入视频102的压缩视频比特120。在视频编码器的运动估计(ME)中,最昂贵的计算是预测图片与原始图片之间的 绝对差之和(SAD)的计算。特别地,整像素搜索的SAD计算占主导地位。因此,减少整像素 搜索中的SAD计算的次数在减小硬件大小,并且由此降低成本方面具有重要作用。图2图 示出了运动估计流程200,该流程获取图片并且执行整像素搜索、半像素搜索和四分之一像 素搜索以确定运动向量。用于减少SAD计算的常用方法是在SAD计算之前对参考图片和原始图片进行二次 采样(sub-sample),以使得ME硬件能够利用较少次数的SAD计算来搜索相同的搜索范围。 在经二次采样的搜索范围内,搜索仍然是详尽的。由于该搜索是在粗略的经二次采样域中 进行的,因此需要进行细化以获得更精确的运动向量。在通过引用被结合于此的Yamauchi,H.等人的“An 8 IMHz,1280X720pixelsX30frames/s MPEG_4video/audio CODEC processor,,中描述的迭代运动 估计搜索方法通过计算搜索范围中的仅一部分的SAD而进一步减少了 SAD计算的次数。利 用该方法,系统一次计算一小区域的SAD。然后,系统比较区域的SAD并且挑选出最小SAD 的位置。接下来,系统基于先前的搜索结果来选择另一小区域。系统将该处理重复一定次 数。在所有迭代期间具有最小SAD值的搜索位置被选为最佳匹配位置。迭代次数取决于硬 件性能。图3图示出了示出起始位置300和所确定的最小SAD 302的示例性搜索,其中,每 个步骤一次搜索9个搜索点(3X;3)并重复5次。图4图示出了迭代搜索的流程图。在步骤400中,处理开始于计数等于N,其中,N 是要搜索的次数。在步骤402,计算区域的SAD(例如,3X3区域)。在步骤404,基于步骤 402中的计算来选择该区域中的最小SAD位置。在步骤406,将最小SAD位置与先前的最佳 (例如最小)SAD相比较并且保留两者中的较小者。在步骤408,计数被递减1以考虑进迭 代。在步骤410,判断计数是否为0。如果计数为0,则处理结束。如果计数不为0,则在步 骤412中选择下一搜索位置。此后,处理从步骤402起重复。在一些实施例中,还可以使用 不同的计数实现方式或不同的计数顺序。由于仅对搜索范围的一部分进行搜索,因此与穷尽搜索相比,极大地减少了 SAD 计算的次数。在二次采样搜索中,一次搜索小数目的搜索点(例如在3X3网格中为9个), 并且重复搜索N次(例如5次)。“3X3搜索”意味着“9个位置”的SAD计算而非“9个 SAD”。因此,如果宏块(16X16个像素)被二次采样为1/4大小(例如,8 X 8个像素),则针 对“一个位置”的SAD数目为8X8 = 64个。在硬件中,64次SAD计算能够同时计算。图5 图示出了示例性3X3搜索位置500以及8X8个像素的宏块中的二次样本502。尽管3X3 二次采样搜索被描述,然而搜索的大小不限于该大小。然而,由于二次采样迭代搜索未检查搜索范围中的所有位置,因此其存在问题。因 此,该搜索不保证将找到可能的最佳解。具体地,搜索在错误的方向上进行和/或最佳搜索 位置可能离起始位置太远。推测起始点为了解决上面的问题,使用推测的起始点迭代搜索方案。利用该推测搜索方案,在 迭代开始之前,系统将数个“有希望的”位置的SAD相比较。然后,“有希望的”位置中的最 佳位置被用作迭代搜索的起始位置。在针对H. 264编码器的实现方式中,搜索在两个步骤 中执行,尽管替代地,搜索可以在任意数目的步骤中执行。图6图示出了实现用以估计运动的推测起始点选择的流程图。在步骤600,计算三 个位置的SAD 全局运动向量(GMV)、零(0)运动向量(OMV)和预测运动向量(PMV)。GMV针 对每个帧根据先前编码帧的统计信息被计算一次,并且PMV针对每个宏块从当前帧中的相 邻宏块被估计出。具有最小SAD的位置被用作随后的迭代搜索的起始位置。取决于编码器 /解码器(CODEC),各个位置都可被选为“有希望的”位置,而不限于上面那些位置。尽管上 面描述了三个位置,然而,可供选择的位置的数目不限于三个;而是,更多或更少的位置可 被选择。在步骤602,系统执行在图4中描述的迭代搜索。然而,该迭代的起始位置是来自 步骤600的最佳起始位置。在一些实施例中,在步骤600之后,所选SAD被用作用于其它迭 代搜索实现方式的起始位置。在步骤604,对运动向量进行细化。在步骤606,实现子像素(subpel)搜索。结果得到了在较短时间量中被处理的平滑图像/视频。图7图示出了根据本发明的示例性计算设备700的框图。计算设备700能够用来 获取、存储、计算、传输和/或显示诸如图像和视频之类的信息。例如,计算设备700获取视 频,并且在获取了视频时,进行经改进的运动估计处理。一般地,适合实现计算设备700的 硬件结构包括网络接口 702、存储器704、处理器706、( 一个或多个)I/O设备708、总线710 以及存储设备712。处理器的选择不是至关重要的,只要选择具有足够速度的合适处理器 即可。存储器704可以是本领域已知的任何传统的计算机存储器。存储设备712可以包括 硬盘驱动器、⑶ROM、⑶RW、DVD、DVDRW、闪存卡或者任何其它存储设备。计算设备700可以 包括一个或多个网络接口 702。网络接口的示例包括连接到以太网或其它类型的LAN的网 卡。(一个或多个)I/O设备708可以包括如下设备中的一个或多个键盘、鼠标、监视器、 显示装置、打印机、调制解调器、触摸屏、按钮接口以及其它设备。用来执行本发明的方法的 (一个或多个)应用730有可能存储在存储设备712和存储器704中,并且按照应用通常 被处理的方式而被处理。应用730包括用于确定起始点的起始点组件730'和用于执行迭 代搜索的迭代搜索组件730",以及任何其它所希望或需要的组件。比图7所示的更多或 更少的组件可被包括在计算设备700中。在一些实施例中,运动估计硬件720被包括用于 处理运动估计信息。尽管图7中的计算设备700包括用于运动估计处理的应用730和硬件 720,然而经改进运动估计处理可以在由硬件、固件、软件或者它们的任意组合构成的计算 设备上实现。合适的计算设备的示例包括个人计算机、膝上型计算机、计算机工作站、服务器、 大型计算机、手持式计算机、个人数字助理、蜂窝/移动电话、智能设备、游戏控制器、数字 相机、数字摄录像机、相机手机、iPod 、家庭娱乐系统或者任何其它合适的计算设备。为了利用推测起始点迭代搜索方案,计算设备照常工作,但是运动估计处理的改 进之处在于其更高效且更精确。从用户的角度来看,计算设备的利用与使用标准运动估计 的计算设备类似或相同。例如,用户仍然简单地打开数字摄录像机并且利用该摄录像机记 录视频。经改进的运动估计处理能够自动地提高视频质量。例如,推测起始点迭代搜索方 案能够用在需要运动估计的任何地方,例如图像稳定器。许多其它应用也能够利用该经改 进的运动估计处理。在操作中,通过利用推测起始点迭代搜索方案,迭代搜索以多种方式被改进。经改 进的迭代搜索避免进入完全错误的位置,这是因为该迭代搜索从可能的最佳起始点开始。 总的迭代次数能够被减少,这是因为利用从“静态位置”(OMV)、诸如相机摇移之类的“全局 移动”(GMV)和“对象的运动”(PMV)中选出的起始MV,迭代搜索有可能从接近搜索范围中 的最佳可能位置的位置开始。即使最佳位置(例如MV)较大,如果迭代从全局运动开始,则 也能够抵达搜索位置。用于H. 264编码器的推测起始点迭代搜索方案极大地减少了 SAD计 算时间。局部最小倌避免迭代搜索的至关紧要的方面是如何选择接下来的中心点。如果系统简单地选择具 有最小SAD的方向,则系统可能处于在局部最小值处来回往复的位置中。例如,普通的系统 可能选择最小SAD点的方向。在图8所示示例中,当位置802具有5X5区域800中的最小 SAD值时,向右前进是合理的。下次迭代是向右对5X5区域的搜索。然而,该搜索可能处于图9所示的局部最小值900处,而未在真实最小值902处。在此情况中,下次迭代的最小 SAD是5X5区域中的左边的中心1002,如图10所示。然后,普通的搜索算法确定下次搜索 去往已经被搜索过的左边的5X5区域。在随后的搜索中,最小SAD再次为右边的中心,并 且搜索来回地持续,逗留在局部最小值处。为了避免逗留在局部最小值处,局部最小避免搜索判断要分析的下一方向是否是 先前分析过的方向的相反方向。在搜索前进到下一搜索中心之前,该搜索保留当前搜索的 最小SAD位置。在图8的情况中,系统记住将向东前进。在接下来的搜索位置的SAD计算完成之后,并且挑选了最佳SAD时,系统检查是否 尝试向前一迭代的“相反方向”前进。在图10的情况中,新的方向为西方,其与先前的方向 刚好相反。如果这样的情况发生,系统确定向先前选择的方向(例如,东方)前进。在避开 相反方向几次之后,搜索可能逃离局部最小值1100并且朝着真实最小值1102移动,如图11 所示。图12至图14图示出了局部最小值避免搜索的示例性实现方式。在针对H. 264视 频编码器的实现方式中,系统仅存储前一搜索的最小SAD位置。对于5X5搜索1200,从0 至M的编号被保留。图12示出了最小SAD被确定为东方的中心位置中的位置14。在迭代的下一步骤中,在计算出新的最小SAD位置之后,将新的位置与前一最佳 位置相比较。基于查找表或其它映射方案,方法/系统能够得知哪些位置被认为处于相反 方向上。例如,在图12中前一步骤中的最佳位置为14,因此,在图13中阴影位置1300被认 为“与先前最佳相反”。如果新的位置是这些阴影位置1300中的任一个,则系统认为迭代“后退”到先前 搜索位置。于是,系统不考虑基本迭代规则并且选择东方作为下一方向。在5X5搜索的情况中,一些可应用规则已被减少为图14所示的图案。可以通过 旋转附图来应用其它位置。针对先前搜索位置的阴影位置1400被示出,并且相对应的禁止 位置1402被示为与阴影位置1400相对。一般地,角落位置产生相对的角落位置(可能具 有被认为是相对的延伸),并且边/顶部/底部位置具有各自相对的边/底部/顶部位置作 为相对位置。图15图示出了经简化迭代搜索的流程图。在步骤1500,计算5X5搜索的SAD。在 步骤1502,选择最小SAD位置。然后,在步骤1504,基于当前搜索结果选择新的搜索中心。 该处理重复指定次数,直到达到阈值或符合另一标准为止。局部最小值避免搜索的流程在图16中示出。在选择新的搜索中心之前,检查新的 方向以判断该方向是否正后退。如果是,则该方向被先前的方向取代。方向是由最小SAD 的位置确定的。例如,如果最小SAD是中心以东的位置,则该方向为东方。如果方向是上部 向东位置,则方向为东北方,等等。具体地,在步骤1600,计算5X5区域中的每个搜索位置的SAD。在步骤1602,选择 具有最小SAD的位置。在步骤1604,确定新位置的方向。在步骤1606,判断该方向是否与先 前方向相反。如果该方向不是相反的,则在步骤1608新的位置被保留,并且跳过步骤1610。 如果该方向是相反的,则在步骤1610新的位置被设置为先前位置。然后,在步骤1612,基于 在步骤1608或步骤1610中确定的位置来选择新的搜索中心。在步骤1614,该处理重复指 定次数,直到达到阈值或符合另一标准为止。
在一些实施例中,当检测到“后退”时,则追随相同的方向(例如,先前的方位)。 在一些实施例中,当检测到“后退”时,采取经调节的方向,其中,经调节方向位于先前方向 与新方向之间的某个地方。尽管为了示例性目的描述了 5X5搜索,然而可以进行任何适当大小的搜索。如上所述,图7图示出了计算设备700。该计算设备除了可以执行推测起始点方法 以外,该计算设备还可以执行除其它应用以外的或者替代其它应用的局部最小值避免。在 一些实施例中,计算设备700包括用于避免局部最小值的附加应用732。在一些实施例中, 局部最小值避免方法在与推测起始点选择应用730相同的应用中实现。在一些实施例中, 计算设备ME HW 720被配置来避开局部最小值。局部最小值避免可以通过硬件、固件、软件 或者它们的任意组合来实现。为了利用局部最小值避免搜索,计算设备照常工作,但是运动估计处理的改进之 处在于其更高效且更精确,这是因为将避开局部最小值。从用户的角度来看,计算设备的利 用与使用标准运动估计的计算设备类似或相同。例如,用户仍然简单地打开数字摄录像机 并且利用该摄录像机记录视频。局部最小值避免搜索能够自动地提高视频质量。例如,局 部最小值避免搜索能够用在需要运动估计的任何地方,例如图像稳定器。许多其它应用也 能够利用该经改进的局部最小值避免处理。在操作中,局部最小值避免搜索通过防止迭代搜索持续地来回搜索相同位置来避 开局部最小值。下一捭索位置方案由于迭代搜索仅能够搜索搜索范围中的有限的点,因此如果搜索点未被有效地选 择,则图片质量将显著降低。另外,搜索点选择在迭代中的每个步骤中被执行。因此,优选 地,作出决定的算法要快。下一搜索位置方案能够基于最小SAD的位置快速地决定下一搜索中心。图17图示出了下一位置选择器1702的操作的流程图的示图。下一位置选择器 1700的输入1702是当前搜索中的最小SAD的位置。在3X 3步骤的情况中,该位置是从0 至8的编号,如图18所示。输出1704是从当前搜索中心到新的搜索中心的偏移。迭代搜 索随后基于该输出移动。例如,当最小SAD的位置是图18中被标为“1”的位置时,下一搜索中心将在当前 搜索中心向北3个像素处。因此,如果当前搜索的搜索中心在位置(10,10)处并且3X3搜 索区域中的最佳/最小SAD位置在位置1处,则下一搜索中心将在位置(10,7)处。然而, 如果最小SAD在位置5处,则下一搜索中心将在向东3个像素处。因此,如果当前搜索中心 在位置(10,10)处,则新的搜索中心将在位置(13,10)处。图18-20图示出了对于3X3搜索区域基于具有当前搜索区域的最小SAD的位置 的下一搜索区域。图18图示出了 3X3搜索,其中每个位置由一个编号指定。该图案仅包 括水平、垂直和对角线位置。图19示出了水平位置(3、幻和垂直位置(1、7),它们具有相对 应的下一搜索区域偏移-位置1 北(0,-3)、位置3:西(_3,0)、位置7:南(0,;3)和位置5 东(3,0)。图20示出了对角线位置(0、2、6、8),它们具有相对应的搜索区域偏移-位置0: 西北(-2,-2)、位置6 西南(-2,2)、位置8 东南(2,2)和位置2 东北(2,-2)。尽管已描述了 3X3搜索区域,然而任何适当的搜索区域都是可以的。
18
图21图示出了选择下一位置的方法的流程图。在步骤3100,确定搜索区域中具有 最小SAD的位置。在一些实施例中,搜索区域为3X3个像素,并且在一些实施例中,搜索区 域具有不同大小。在步骤3102,基于该最小SAD位置来自动为下一搜索区域计算/查找下 一搜索区域中心点的偏移。在一些实施例中,下一中心点的实际位置是基于当前中心点计 算的。在步骤3104,为下一搜索区域选择中心点。 下一位置选择器所使用的规则可以通过查找表来实现。在一些实施例中,规则通 过另外的手段来实现。在一些实施例中,甚至不需要SAD本身的值。规则简单地使用最小 SAD的位置来确定下一搜索区域的中心点。此外,由于规则是用查找表实现的,因此可以按 照需要容易地改变它们。图22图示出了用于基于具有最小SAD的位置来确定下一搜索区域的中心点的示 例性查找表3200。如上所述,到下一搜索区域的中心点的偏移是基于最小SAD位置确定的。 如图22所示,如果最小SAD在位置0处,则下一搜索区域的中心点在(-2,-2)的偏移处。 还示出了其它查找值。图22假设搜索区域为3X3个像素。对于其它搜索区域,值将相应 地改变。下一搜索区域选择方案与简单局部最小值避免搜索方案相组合能够在H. 264编 码器中利用少的处理器周期获得高质量的编码。如上所述,图7图示出了计算设备700。该计算设备700除了可以执行推测起始点 迭代搜索方案和局部最小值避免方法以外,该计算设备700还可以执行除其它应用以外的 或者替代其它应用的下一搜索位置选择方法。在一些实施例中,计算设备700包括用于选 择下一搜索位置的附加应用734。在一些实施例中,下一搜索位置选择在与应用732或推 测起始点选择应用730相同的应用中实现。在一些实施例中,用于选择下一搜索位置的应 用734或硬件720包括用于接收搜索区域的最小SAD位置的输入组件734'、用于基于最 小SAD位置查找偏移的诸如查找表之类的映射组件734",以及用于输出下一搜索区域的 中心点的偏移的输出组件734'“。在一些实施例中,取代将偏移输出或者除了将偏移输出 以外,还确定下一搜索区域的中心点的实际位置。在一些实施例中,计算设备ME HW 720被 配置来选择下一搜索位置。下一搜索位置选择可以通过硬件、固件、软件或者它们的任意组 合来实现。为了利用下一位置选择器,计算设备照常工作,但是运动估计处理的改进之处在 于其更高效且更精确,这是因为要搜索的更好的下一位置将被选出。从用户的角度来看,计 算设备的利用与使用标准运动估计的计算设备类似或相同。例如,用户仍然简单地打开数 字摄录像机并且利用该摄录像机记录视频。下一位置选择器能够自动地提高视频质量。例 如,下一位置选择器能够用在需要运动估计的任何地方,例如图像稳定器。许多其它应用也 能够利用该下一位置选择器。在操作中,下一位置选择器确定下一搜索区域的中心点,以提高运动估计的效率。 此外,由于下一位置选择器使用了简单的方案,因此容易实现。细化方案在平滑、平坦的区域中,大多数位置具有类似的SAD值。因此,搜索算法容易被欺 骗,因为任何运动向量都像是好的候选。然而,如果ME选择任意运动向量,则除了系数以外 更多的比特被消耗用于运动向量头部,从而产生更差的感知到的图片质量。另外,尽管其不太影响信噪比,然而平滑表面中的不协调运动会生成不自然的图片,从而降低感知到的质量。当原始图片具有许多噪声时,SAD计算容易被噪声欺骗。有时,这些不正确的运动 向量由于噪声而具有更小的SAD值。然而,这些不准确的运动容易被人眼认出。将描述利用预测运动向量(PMV)细化(refine)迭代搜索的方案。PMV是从相邻宏 块预测出的当前宏块的最可能运动向量。利用周围宏块的运动向量的迭代搜索流程在图23中示出。PMV细化给予PMV位置 两次机会。在步骤3300,计算三个位置的SAD 全局运动向量(GMV)、零(0)运动向量(OMV) 和预测运动向量(PMV)。GMV针对每个帧根据先前编码帧的统计信息被计算一次,并且PMV 针对每个宏块从当前帧中的相邻宏块被估计出。具有最小SAD的位置被用作随后的迭代搜 索的起始位置。取决于编码器/解码器(CODEC),各个位置都可被选为“有希望的”位置, 而不限于上面那些位置。尽管上面描述了三个位置,然而,可供选择的位置的数目不限于三 个;而是,更多或更少的位置可被选择。在步骤3302,系统执行在图4中描述的迭代搜索。然而,该迭代的起始位置是来 自步骤3300的最佳起始位置。PMV位置的SAD值被计算出并且与诸如OMV和全局MV之类 的其它位置相比较,以确定如上所述的迭代的起始位置。在一些实施例中,在步骤3300之 后,所选SAD被用作用于迭代搜索的其它实现方式的起始位置。迭代搜索得到最小SAD位 置。在步骤3304,运动向量成本(cost)被添加到迭代搜索优胜者的SAD中,而不向PMV的 SAD添加MV成本。然后,在步骤3306,被添加了运动向量成本的迭代搜索优胜者(例如,最 小SAD位置)再次与PMV位置的SAD相比较。具有运动向量成本的迭代搜索结果与PMV的 SAD中的较小者被选择。在步骤3308,运动向量被细化。结果得到了在较短时间量中被处 理的平滑图像/视频。具有计算MV成本的各种方式。一般地,运动向量成本是基于离PMV的距离来计算 的。因此,MV成本不被添加给PMV位置。图M图示出了当前宏块3400和相邻宏块3402及其运动向量。PMV从相邻宏块 3402被计算出。该细化方案防止迭代搜索选择任意的运动向量。这也有助于运动向量即使在平滑 表面中也变得一致,从而节省了用于运动向量头部的比特。这产生了提高的感知到的图片 质量。此外,即使在有噪声的视频序列中,系统也不太可能被欺骗。该细化方案不限于计算PMV这种方式。此外,细化方案也可以应用于任何种类的 ME应用。如上所述,图7图示出了计算设备700。计算设备700也可以执行该细化方案。在 一些实施例中,计算设备700包括用于执行细化方案的附加应用736。在一些实施例中,应 用736具有起始位置组件736'、迭代搜索组件736"和附加比较组件736'“。在一些实 施例中,细化方案在与先前讨论的应用之一相同的应用中实现。在一些实施例中,计算设备 ME HW720被配置来实现细化方案。该细化方案可以通过硬件、固件、软件或者它们的任意组 合来实现。为了利用该细化方案,计算设备照常工作,但是运动估计处理的改进之处在于其 更高效且更精确,尤其是对于平滑的平坦区域,这是因为合适的运动向量将被选出。从用户的角度来看,计算设备的利用与使用标准运动估计的计算设备类似或相同。例如,用户仍然 简单地打开数字摄录像机并且利用该摄录像机记录视频。该细化方案能够自动地提高视频 质量。例如,该细化方案能够用在需要运动估计的任何地方,例如图像稳定器。许多其它应 用也能够利用该细化方案。在操作中,该细化方案通过向运动向量的SAD添加运动向量成本并且将该值与 PMV的SAD相比较来确定适当的运动向量。这两者中的较低者随后被用于细化运动向量。 该附加的比较有助于避免在图像或有噪声图像中的平滑的平坦区域中出现的问题。利用阈倌的细化方案当图片的运动非常大时,上述细化方案具有一些负面影响。具体地,系统将迭代 搜索的优胜者与PMV位置相比较。然而,总成本也与PMV位置相比较,其中,该总成本是 "SAD+MV成本”,而PMV的总成本仅是SAD。因此,当图片中的运动较大时,MV成本也趋于较 大。这使得该细化方案极大地阻碍了运动估计系统产生大的运动向量。添加了阈值的利用周围宏块的运动向量的迭代搜索的流程在图25中示出。PMV细 化给予PMV位置两次机会,但是该阈值判断第二次机会是否有用。在步骤3500,计算三个位 置的SAD 全局运动向量(GMV)、零(0)运动向量(OMV)和预测运动向量(PMV)。GMV针对每 个帧根据先前编码帧的统计信息被计算一次,并且PMV针对每个宏块从当前帧中的相邻宏 块被估计出。具有最小SAD的位置被用作随后的迭代搜索的起始位置。取决于编码器/解 码器(CODEC),各个位置都可被选为“有希望的”位置,而不限于上面那些位置。尽管上面描 述了三个位置,然而,可供选择的位置的数目不限于三个;而是,更多或更少的位置可被选 择。在步骤3502,系统执行在图4中描述的迭代搜索。然而,该迭代的起始位置是来 自步骤3500的最佳起始位置。PMV位置的SAD值被计算出并且与诸如OMV和全局MV(GMV) 之类的其它位置相比较,以确定如上所述的迭代的起始位置。在一些实施例中,在步骤3500 之后,所选SAD被用作用于迭代搜索的其它实现方式的起始位置。迭代搜索得到最小SAD 位置。在步骤3504,运动向量成本被添加到迭代搜索优胜者的SAD中。在一些实施例中, 步骤3504和3506的顺序被交换。在步骤3506中,将GMV与阈值相比较。如果GMV小于 阈值,则在步骤3508,被添加了运动向量成本的迭代搜索优胜者(例如,最小SAD位置)与 PMV位置的SAD相比较。在步骤3506,如果GMV大于或等于该阈值,则跳过步骤3508中的 比较,并且迭代搜索结果就是在步骤3510中经细化的运动向量。结果得到了在较短时间量 中被处理的平滑图像/视频。利用阈值的细化方案防止了迭代搜索选择任意运动向量并且还防止PMV优先阻 碍较大的运动向量。这也有助于运动向量即使在平滑表面中也变得一致,从而节省了用于 运动向量头部的比特。当图片中的运动较大时,这产生了提高的感知到的图片质量。利用阈值的细化方案不限于计算PMV这种方式。此外,细化方案也可以应用于任 何种类的ME应用。如上所述,图7图示出了计算设备700。计算设备700也可以执行该利用阈值的 细化方案。在一些实施例中,计算设备700包括用于执行利用阈值的细化方案的附加应用 738。在一些实施例中,应用738具有起始位置组件738'、迭代搜索组件738"、阈值组件 738'“和附加的比较组件738"“。在一些实施例中,利用阈值的细化方案在与先前讨论的应用之一相同的应用中实现。在一些实施例中,计算设备ME HW 720被配置来实现利用 阈值的细化方案。该利用阈值的细化方案可以通过硬件、固件、软件或者它们的任意组合来 实现。为了利用该使用阈值的细化方案,计算设备照常工作,但是运动估计处理的改进 之处在于其更高效且更精确,尤其是对于平滑的平坦区域,这是因为合适的运动向量将被 选出。从用户的角度来看,计算设备的利用与使用标准运动估计的计算设备类似或相同。例 如,用户仍然简单地打开数字摄录像机并且利用该摄录像机记录视频。该利用阈值的细化 方案能够自动地提高视频质量。例如,该利用阈值的细化方案能够用在需要运动估计的任 何地方,例如图像稳定器。许多其它应用也能够利用该利用阈值的细化方案。在操作中,该利用阈值的细化方案首先基于GMV与阈值的比较来判断迭代搜索结 果与PMV的比较是否适当。如果适当,则该利用阈值的细化方案通过向运动向量的SAD添 加运动向量成本并且将该值与PMV的SAD相比较来确定适当的运动向量。这两者中的较低 者随后被用于细化运动向量。如果不适当,则来自迭代搜索结果的运动向量被用于进行细 化。早期终Ih方案尽管迭代搜索算法减少了 SAD计算的次数,然而在系统中SAD的功耗仍然较大。因 此,减少迭代次数的方法将进而降低功耗。为了降低迭代搜索的功耗,迭代搜索在“好的”搜索候选被找到时终止。系统将一 个步骤的最佳SAD与阈值相比较。如果该最佳SAD值小于阈值,则其被认为是“好的”搜索 候选并且迭代终止。否则,搜索照常继续。图沈图示出了利用阈值的迭代搜索的流程图。在步骤3600,处理开始于计数等 于N,其中,N是要搜索的次数。在步骤3602,计算区域的SAD(例如,3X3区域)。在步骤 3604,基于步骤3602中的计算来选择该区域中的最小SAD位置。在步骤3606,将最小SAD 位置与先前的最佳(例如最小)SAD相比较并且保留两者中的较小者。在步骤3608,计数被 递减1以考虑进步骤3606中的比较。在步骤3610,判断计数是否为0。如果计数为0,则处 理结束。如果计数不为0,则在步骤3612中判断所保留的SAD是否小于阈值。如果该SAD 小于阈值,则处理结束。如果该SAD不小于阈值,则在步骤3614中选择下一搜索位置。此 后,处理从步骤3602起重复。在一些实施例中,还可以使用不同的计数实现方式或不同的 计数顺序。如上所述,图7图示出了计算设备700。该计算设备700还可以执行早期终止方 案。在一些实施例中,计算设备700包括用于执行早期终止方案的附加应用740。在一些实 施例中,早期终止方案在与先前讨论的应用之一相同的应用中实现。在一些实施例中,应用 740包括用于迭代搜索的迭代搜索组件740'和用于在满足阈值条件时进行早期终止的阈 值组件740〃。在一些实施例中,计算设备ME HW 720被配置来实现早期终止方案。早期终 止方案可以通过硬件、固件、软件或者它们的任意组合来实现。为了利用早期终止方案,计算设备照常工作,但是运动估计处理的改进之处在于 其更高效。从用户的角度来看,计算设备的利用与使用标准运动估计的计算设备类似或相 同。例如,用户仍然简单地打开数字摄录像机并且利用该摄录像机记录视频。早期终止方 案能够自动地提高视频质量。例如,早期终止方案能够用在需要运动估计的任何地方,例如图像稳定器。许多其它应用也能够利用该早期终止方案。在操作中,早期终止方案判断最佳SAD是否小于阈值。如果最佳SAD小于阈值,则 该方案结束,而不完成其余计数。当运动估计用硬件实现时,该早期终止方案降低了迭代搜 索的功耗。当用软件实现时,该早期终止方案减少了处理器周期,从而得到了更快的编码速度。上述方法中的任何方法和/或所有方法都可以按照需要在分离的设备上或者单 个设备上实现。例如,数字摄录像机可以包括推测起始点方法、局部最小值避免、下一搜索 位置方案、细化方案、利用阈值的细化方案以及早期终止方案。尽管这里将SAD描述为在迭代搜索中实现的距离度量以计算图案匹配程度,然而 存在可以使用的许多其它距离或误差度量,例如误差值或其它距离,包括但不限于绝对传 送距离之和以及均方误差。已根据具体实施例描述了本发明,这些实施例包括用于辅助理解本发明的构成和 操作原理的细节。这里对具体实施例及其细节的引用不希望将所附权利要求的范围限制于 此。本领域技术人员容易清楚,在不脱离如权利要求限定的本发明的精神和范围的情况下, 可以对被选择用于说明的实施例作出各种修改。
权利要求
1.一种利用计算设备改进运动估计迭代搜索的方法,该方法包括a.迭代搜索最小距离位置;b.确定下一搜索区域的中心点;以及c.避开局部最小值。
2.如权利要求1所述的方法,其中,所述最小距离位置是最小绝对差之和位置。
3.如权利要求1所述的方法,其中,确定下一搜索区域的中心点还包括a.确定搜索区域中具有最小距离值的位置;b.基于所述具有最小距离值的位置来确定用于下一搜索区域的中心点的偏移;以及c.基于所述偏移选择所述下一搜索区域的中心点。
4.如权利要求1所述的方法,其中,避开局部最小值还包括a.确定前一位置;b.确定新的位置;c.比较所述前一位置和所述新的位置;以及d.基于所述前一位置与所述新的位置的比较,选择新的搜索中心,其中,如果所述新的 位置在与所述前一位置相反的方向上,则所述新的搜索中心基于所述前一位置,并且如果 所述新的位置不在与所述前一位置相反的方向上,则所述新的搜索中心于所述新的位置。
5.如权利要求1所述的方法,其中,迭代搜索还包括a.计算子区域的子区域距离值;b.确定所述子区域的最小距离值;c.将所述最小距离值与阈值相比较;d.如果所述最小距离值小于所述阈值,则提早结束;以及e.如果所述最小距离值大于或等于所述阈值,则重复a_d,直到计数为零为止。
6.一种用于利用计算设备改进运动估计迭代搜索的系统,该系统包括a.用于存储应用的存储器,该应用被配置用于 i.迭代搜索最小距离位置; .确定下一搜索区域的中心点;以及 iii.避开局部最小值;以及b.处理器,用于处理所述应用。
7.如权利要求6所述的系统,其中,所述最小距离位置是最小绝对差之和位置。
8.如权利要求6所述的系统,其中,确定下一搜索区域的中心点还包括a.确定搜索区域中具有最小距离值的位置;b.基于所述具有最小距离值的位置来确定用于下一搜索区域的中心点的偏移;以及c.基于所述偏移选择所述下一搜索区域的中心点。
9.如权利要求6所述的系统,其中,避开局部最小值还包括a.确定前一位置;b.确定新的位置;c.比较所述前一位置和所述新的位置;以及d.基于所述前一位置与所述新的位置的比较,选择新的搜索中心,其中,如果所述新的 位置在与所述前一位置相反的方向上,则所述新的搜索中心基于所述前一位置,并且如果所述新的位置不在与所述前一位置相反的方向上,则所述新的搜索中心于所述新的位置。
10.如权利要求6所述的系统,其中,迭代搜索还包括a.计算子区域的子区域距离值;b.确定所述子区域的最小距离值;c.将所述最小距离值与阈值相比较;d.如果所述最小距离值小于所述阈值,则提早结束;以及e.如果所述最小距离值大于或等于所述阈值,则重复a_d,直到计数为零为止。
11.一种用于利用计算设备确定下一搜索区域的中心点的方法,该方法包括a.确定搜索区域中具有最小距离值的位置;b.基于所述具有最小距离值的位置来确定用于下一搜索区域的中心点的偏移;以及c.基于所述偏移选择所述下一搜索区域的中心点。
12.如权利要求11所述的方法,其中,所述最小距离值是最小绝对差之和值。
13.如权利要求11所述的方法,其中,确定下一搜索区域的中心点提高了估计用于使 图像稳定的运动的效率。
14.如权利要求11所述的方法,其中,确定偏移是利用查找表执行的。
15.如权利要求14所述的方法,其中,所述查找表包括与所述搜索区域中的每个位置 相对应的偏移。
16.如权利要求11所述的方法,其中,所述搜索区域是3X3个像素。
17.如权利要求11所述的方法,其中,所述方法仅用硬件实现。
18.如权利要求11所述的方法,其中,所述方法部分地用硬件实现。
19.如权利要求11所述的方法,其中,所述方法部分地用硬件实现并且部分地利用一 个或多个应用实现。
20.如权利要求11所述的方法,其中,所述计算设备是从包括如下项的组中选出的个 人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助 理、蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、iPod 和 家庭娱乐系统。
21.一种用于利用计算设备确定下一搜索区域的中心点的系统,该系统包括a.用于存储应用的存储器,该应用被配置用于i.确定搜索区域中具有最小距离值的位置; .基于所述具有最小距离值的位置来确定用于下一搜索区域的中心点的偏移;以及iii.基于所述偏移选择所述下一搜索区域的中心点;以及b.处理器,用于处理所述应用。
22.如权利要求21所述的系统,其中,所述最小距离值是最小绝对差之和值。
23.如权利要求21所述的系统,其中,确定下一搜索区域的中心点提高了估计用于使 图像稳定的运动的效率。
24.如权利要求21所述的系统,其中,确定偏移是利用查找表执行的。
25.如权利要求M所述的系统,其中,所述查找表包括与所述搜索区域中的每个位置 相对应的偏移。
26.如权利要求21所述的系统,其中,所述搜索区域是3X3个像素。
27.如权利要求21所述的系统,其中,所述系统仅用硬件实现。
28.如权利要求21所述的系统,其中,所述系统部分地用硬件实现。
29.如权利要求21所述的系统,其中,所述系统部分地用硬件实现并且部分地利用一 个或多个应用实现。
30.如权利要求21所述的系统,其中,所述计算设备是从包括如下项的组中选出的个 人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助 理、蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、iPod 和 家庭娱乐系统。
31.一种用于利用计算设备确定下一搜索区域的中心点的系统,该系统包括a.输入组件,用于接收搜索区域中的最小距离位置;b.映射组件,该映射组件将所述最小距离位置映射到偏移;以及c.输出组件,用于输出所述偏移。
32.如权利要求31所述的系统,其中,所述最小距离位置是最小绝对差之和位置。
33.如权利要求31所述的系统,其中,确定下一搜索区域的中心点提高了估计用于使 图像稳定的运动的效率。
34.如权利要求31所述的系统,其中,所述映射组件使用查找表。
35.如权利要求34所述的系统,其中,所述查找表包括与所述搜索区域中的每个位置 相对应的偏移。
36.如权利要求31所述的系统,其中,所述搜索区域是3X3个像素。
37.如权利要求31所述的系统,其中,所述系统仅用硬件实现。
38.如权利要求31所述的系统,其中,所述系统部分地用硬件实现。
39.如权利要求31所述的系统,其中,所述系统部分地用硬件实现并且部分地利用一 个或多个应用实现。
40.如权利要求31所述的系统,其中,所述计算设备是从包括如下项的组中选出的个 人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助 理、蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、iPod 和 家庭娱乐系统。
41.一种利用计算设备在估计运动时避开局部最小值的方法,该方法包括a.确定前一位置;b.确定新的位置;c.将所述前一位置与所述新的位置相比较;以及d.基于所述前一位置与所述新的位置的比较,选择新的搜索中心,其中,如果所述新的 位置在与所述前一位置相反的方向上,则所述新的搜索中心基于所述前一位置,并且如果 所述新的位置不在与所述前一位置相反的方向上,则所述新的搜索中心于所述新的位置。
42.如权利要求41所述的方法,其中,所述相反方向是基于所述新的位置和所述前一 位置以及中心点确定的。
43.如权利要求41所述的方法,其中,利用表和中心点来将所述新的位置和所述前一 位置相比较。
44.如权利要求41所述的方法,其中,避开局部最小值提高了估计用于使图像稳定的运动的效率。
45.如权利要求41所述的方法,其中,所述计算设备是从包括如下项的组中选出的个 人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助 理、蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、iPod 和 家庭娱乐系统。
46.一种利用计算设备在估计运动时避开局部最小值的方法,该方法包括a.确定前一方向;b.确定新的方向;c.将所述前一方向与所述新的方向相比较;以及d.基于所述前一方向与所述新的方向的比较,选择新的搜索中心,其中,如果所述新的 方向在与所述前一方向相反的方向上,则所述新的搜索中心基于前一位置,并且如果所述 新的方向不在与所述前一方向相反的方向上,则所述新的搜索中心于新的位置。
47.如权利要求46所述的方法,其中,避开局部最小值提高了估计用于使图像稳定的 运动的效率。
48.如权利要求46所述的方法,其中,所述方法仅用硬件实现。
49.如权利要求46所述的方法,其中,所述方法部分地用硬件实现。
50.如权利要求46所述的方法,其中,所述方法部分地用硬件实现并且部分地利用一 个或多个应用实现。
51.如权利要求46所述的方法,其中,所述计算设备是从包括如下项的组中选出的个 人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助 理、蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、iPod 和 家庭娱乐系统。
52.一种利用计算设备在估计运动时避开局部最小值的方法,该方法包括a.计算搜索区域中的每个点的距离值;b.从所述搜索区域中的每个点的距离值中选出最小距离位置;c.基于所述最小距离位置确定新的方向;d.将所述新的方向与前一方向相比较;e.如果所述新的方向与所述前一方向是相反方向,则保留前一位置;f.如果所述新的方向与所述前一方向不是相反方向,则选择新的位置;g.基于所述前一位置和所述新的位置中的一者来选择新的搜索中心;以及h.重复a_g,直到达到一限度为止。
53.如权利要求52所述的方法,其中,所述距离值是绝对差之和值。
54.如权利要求52所述的方法,其中,所述限度是η次迭代。
55.如权利要求52所述的方法,其中,所述限度是一阈值。
56.如权利要求52所述的方法,其中,所述新的方向是基于所述新的位置与中心点之 间的第一关系确定的,并且所述前一方向是基于所述前一位置与所述中心点之间的第二关 系确定的。
57.如权利要求52所述的方法,其中,所述新的方向和所述前一方向是通过利用表、将 所述新的位置与中心点相比较并且将所述前一位置与所述中心点相比较而确定的。
58.如权利要求52所述的方法,其中,所述搜索区域是5X5个像素。
59.如权利要求52所述的方法,其中,避开局部最小值提高了估计用于使图像稳定的 运动的效率。
60.如权利要求52所述的方法,其中,所述方法仅用硬件实现。
61.如权利要求52所述的方法,其中,所述方法部分地用硬件实现。
62.如权利要求52所述的方法,其中,所述方法部分地用硬件实现并且部分地利用一 个或多个应用实现。
63.如权利要求52所述的方法,其中,所述计算设备是从包括如下项的组中选出的个 人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助 理、蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、iPod 和 家庭娱乐系统。
64.一种利用计算设备避开局部最小值的系统,该系统包括a.存储器,用于存储应用,所述应用被配置用于i.计算搜索区域中的每个点的距离值; .从所述搜索区域中的每个点的距离值中选出最小距离位置;iii.基于所述最小距离位置确定新的方向;iv.将所述新的方向与前一方向相比较;v.如果所述新的方向与所述前一方向是相反方向,则保留前一位置;vi.如果所述新的方向与所述前一方向不是相反方向,则选择新的位置;vii.基于所述前一位置和所述新的位置中的一者来选择新的搜索中心;以及viii.重复i-vii,直到达到一限度为止。b.处理器,用于处理所述应用。
65.如权利要求64所述的系统,其中,所述距离值是绝对差之和值。
66.如权利要求64所述的系统,其中,所述搜索区域是5X 5个像素。
67.如权利要求64所述的系统,其中,所述计算设备是从包括如下项的组中选出的个 人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助 理、蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、iPod 和 家庭娱乐系统。
68.如权利要求64所述的系统,其中,避开局部最小值提高了估计用于使图像稳定的 运动的效率。
69.一种用于避开局部最小值的系统,包括a.硬件组件,用于执行第一组计算;以及b.应用组件,用于执行第二组计算,其中,所述第一组计算和所述第二组计算包括确定前一方向,确定新的方向,将所述 前一方向与所述新的方向相比较以确定新的搜索中心。
70.如权利要求69所述的系统,其中,避开局部最小值是在从包括如下项的组中选出 的设备上实现的个人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式 计算机、个人数字助理、蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、 相机手机、iPod 和家庭娱乐系统。
71.如权利要求69所述的系统,其中,避开局部最小值提高了估计用于使图像稳定的 运动的效率。
全文摘要
用于运动估计迭代搜索的下一位置选择器通过容易且快速地确定下一搜索区域的中心点而提高了整像素运动估计迭代搜索的效率和质量。通过获取当前搜索区域的SAD值的位置并且将该位置映射到下一搜索区域的中心点,确定下一搜索区域的处理是非常高效的。局部最小值避免方案提高了避免陷入局部最小值的能力。通过记住前一位置/方向,搜索能够在正确的方向上继续,以确保搜索继续而不出现陷入局部最小值的来回往复搜索。这种经改进的运动估计搜索的应用包括稳定图像以及使用运动向量的许多其它应用。
文档编号H04N5/14GK102100059SQ200980127954
公开日2011年6月15日 申请日期2009年5月5日 优先权日2008年7月16日
发明者中里宗弘 申请人:索尼公司, 索尼电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1