专利名称:用于处理视频数据的运动矢量的系统和方法
用于处理视频数据的运动矢量的系统和方法I.领域本公开一般涉及处理视频数据的运动矢量。II.相关技术说明技术进步已导致越来越小且越来越强大的计算和视频处理设备。例如,当前存在各种各样的便携式个人计算设备,包括无线计算设备,诸如便携式无线电话、个人数字助理 (PDA)、以及小且轻因此易于用户携带的寻呼设备。这些便携式或无线计算设备中的许多还包括使得此类设备能提供数码照相机、数码摄像机、数码记录器、以及音频文件播放器的功能的硬件或软件组件。另外,此类无线电话可处理可被用于访问因特网的软件应用(诸如 web浏览器应用)的可执行指令。因此,这些无线电话以及其他设备可具有显著的计算能力和图像处理能力。由于诸如蜂窝电话、PDA、视频播放器以及其他设备之类的许多设备能访问因特网并且能处理和显示视频,因此这些设备中的许多设备可从因特网或另外的网络接收视频数据以便由该设备处理和显示。根据运动图像专家组(MPEG)标准以及其他视频处理标准,由视频传送设备传送的视频数据被组织成一连串视频数据帧。对运动图像的视频数据的视频处理寻求增加每单位时间通过传输信道能传送的视频帧数以及增加在给定容量的存储介质中能存储的帧数。为了达成这些效率提高,视频编码器寻求使为了能在视频接收机处基本重构运动图像而必须传送和存储的信息量最小化。在一些编码器中,每个视频帧可被划分成16X16像素宏块或其他块大小。可通过对每个宏块的四个8X8像素子块中的每一个应用离散余弦变换来达成对该数据的实质性压缩。可采用其他块大小并且可应用其他变换。结果所得的经变换图像被顺序地量化、编码和传送。运动处理通过估计和预测视频数据中的运动来进一步减少使得在视频接收机处能基本重构运动图像所需的数据量。由于运动,在帧的块中表示的数据可能与先前经编码帧中的数据块紧密匹配。例如,往往可在视频流的诸毗邻帧中标识出一运动对象。该运动对象可保持相同,但该运动对象的位置可能由于运动而仅仅移位。由于运动对象的运动可至少部分地通过改变表示该运动对象的数据的位置来再现,因此为了在接收机处再现视频而传送的数据量可被减少。利用由于运动而导致的不同帧中的数据之间的相似性,运动估计器可寻求发现相继帧之间的最紧密匹配块。在块的检出运动方向上且幅度等于该块的检出运动量的矢量被称为运动矢量。当在差分“帧间”模式中操作时,视频编码器传送当前帧的数据以及与这些块相关联的可用来重构毗邻帧的运动矢量。因此,在帧间模式中需要传送较少数据以在视频接收机处基本上重构完整帧。当在非差分“帧内”模式中操作时,视频编码器可传送当前块而无运动矢量。在帧间模式中,视频接收机使用在视频数据流中接收到的每个运动矢量来“预测” 帧的块的运动。这样,视频接收机从当前帧以及运动矢量数据重构毗邻帧的帧数据。运动矢量数据可被用于在诸帧之间插入帧或者从差分帧数据外推出帧。这样,数据可以相对低的帧率被传送并在接收机处被提升到较高帧率。接收机中对这些帧的准确重构部分地取决于收到视频数据流中的运动矢量的准确性或可靠性。III.概述根据本文中描述的实施例,公开了处理视频数据的方法、装置和计算机可读介质。 例如,各实施例可包括蜂窝电话和其他视频播放设备。具体而言,处理由视频接收机接收的视频数据中的运动矢量以重构该视频数据并提高该数据的帧率。在一些实施例中,使用块间块(inter-block)的收到运动矢量来推导块内块(intra-block)的运动矢量。在特定实施例中,公开了一种处理视频数据的方法。该方法包括标识视频数据的视频帧中的块内块。该方法还包括标识与该块内块相邻的第一块间块集合和第二块间块集合。块间块集合中的每个块间块与运动矢量相关联。该方法可包括评价第一和第二块间块集合的数据以确定第一和第二集合中的哪一个集合具有与该集合相关联的最小误差。在一些实施例中,确定相同集合中的运动矢量之间的平方误差。该方法进一步包括确定与具有最小误差的集合中的块间块的运动矢量相关联的运动矢量,其中所确定的运动矢量将与该块内块相关联。在另一特定实施例中,公开了用于推导以及向块内块指派运动矢量的装置。该装置包括块内块标识器,用于标识由该装置接收的视频数据的视频帧的块内块。该装置还包括块间块集合标识器,用于标识与该块内块相邻的至少一个块间块集合。块间块集合中的每个块间块与收到视频数据中的相应运动矢量相关联。对于每个集合,误差演算器确定与集合中的块间块的数据或运动矢量相关联的误差。集合选择器选择具有最小误差的集合。 该装置还包括中值矢量演算器,用于确定所选择的集合的块间块的运动矢量的中值,其中该中值运动矢量将与所标识的块内块相关联。在另一特定实施例中,一种计算机可读有形介质包括使计算机标识块内块以及从相邻块推导用于指派给该块内块的运动矢量的计算机代码。该介质包括使计算机标识收到视频数据流中的块内块的计算机代码。该介质进一步包括使计算机标识与该块内块相邻的至少一个块间块集合的计算机代码。该介质还包括使计算机确定与每个集合的块间块的数据相关联的误差以确定每个集合的误差的计算机代码。该介质进一步包括使计算机选择具有最小误差的所标识集合或者若仅有一个集合被标识则选择该仅有的集合的计算机代码。 该介质还包括使计算机从所选择的集合中的块间块的运动矢量确定中值运动矢量的计算机代码,其中该中值运动矢量将与该块内块相关联。在另一特定实施例中,一种设备包括用于确定与块内块相邻的至少一个块间块集合的装置。该设备进一步包括用于确定与该至少一个集合的块间块相关联的误差的装置。 该设备还包括用于基于与该集合相关联的误差来选择集合的装置。该设备还包括用于确定所选择的集合中的块间块的运动矢量的中值矢量的装置,其中该中值运动矢量将与该块内块相关联。因此,与常规系统相比,本发明的一方面提供了对运动矢量的改进处理以重构视频数据和提高视频数据的帧率。在查阅整个申请(包括以下部分附图简述、详细描述和权利要求书)之后,本公开的其他方面、优点及特征将变得显而易见。IV.附图简述
图1是视频数据的源和视频数据的接收机的实施例的框图,示出了与块内块相邻的多个可能的块间块集合;图2是图1的视频数据源和视频接收机的更详细框图;图3是帧率提升单元的实施例的框图;图4是被细分成较小块以进行处理的宏块的框图;图5是运动矢量预处理和指派的方法的实施例的流程图;图6是静态帧处理机的实施例的框图;图7是处置静态帧的方法的实施例的流程图;图8是平摇分析器的实施例的框图;图9是平摇分析的方法的实施例的流程图;图10是运动矢量处理器的实施例的框图;图11是毗邻中心块的诸块的框图;图12是评估运动矢量的空间连续性的方法的实施例的流程图;图13是评估运动矢量的时间连续性的方法的实施例的流程图;图14是在使用经处理运动矢量与用运动估计引擎计算运动矢量之间进行选择的方法的实施例的流程图;图15是边界检测器和校正器的实施例的框图;图16是毗邻帧或宏块的边界的块的实施例的框图;图17是检测和校正边界运动矢量的方法的实施例的流程图;图18是运动自适应后处理器的实施例的框图;图19是行级后处理的方法的实施例的流程图;以及图20是用于指派边界强度值的方法的实施例的实施例。V.详细描述本书面说明书描述了用于处理经压缩视频数据的运动矢量的系统和方法。在所解说的实施例中,块内块(intra-block)是在收到视频数据流中没有与其相关联的运动矢量的视频数据块。也可通过使用在解码器处估计的运动矢量来采用本文中描述的方法。在对在解码器处估计的运动矢量应用这些方法时,块内块被确定为其相关联畸变度量高于阈值的那些块。在一实施例中,块内块被指派从毗邻该块内块的块间块(inter-block)的运动矢量推导出的运动矢量。更具体地,块内块运动矢量是从具有与相邻块间块的数据相关联的最小误差的相邻块间块的运动矢量推导出的。此外,对运动矢量的处理可包括若视频帧的视频内容是静态的则禁用帧率提升。对运动矢量的处理可包括确定视频内容中是否存在平摇,且若是,则执行平摇自适应处理,诸如执行双向运动补偿预测。处理运动矢量可包括确定运动矢量的空间和时间连续性测量。本文描述了运动矢量处理的这些及其他方面。图1是视频数据的源和视频数据的接收机的实施例的框图。图1示出了用于标识与块内块相邻的块间块集合以及从该块间块集合推导运动矢量的细节。推导出的运动矢量将与该块内块相关联以使得对运动视频的处理更高效。在图1中,视频数据是从视频数据源100接收的。视频数据源100可以是电视台或网站或其他视频数据源。视频接收机102 从视频数据源100接收数据,处理该视频数据并在视频显示器114上显示经处理的视频数据。对收到视频数据的一些处理是由运动矢量预处理器和指派模块103执行的。运动矢量预处理器和指派模块103被配置成推导和向块内块指派运动矢量。块内块可以是在收到视频数据中没有与其相关联的运动矢量的块。在其中运动矢量是在解码器处估计的另一场景中,块内块可以是其运动估计畸变度量高于阈值的块。运动矢量预处理器和指派模块103包括标识收到视频数据中的块内块的块内块标识器104。相邻块间块集合标识器106标识与该块内块相邻的一个或多个块间块集合。块间块具有差分数据且具有与其相关联的运动矢量。具体而言,图1示出了与一个或多个块内块相邻的块间块集合的三种不同模式A、B和C。代表性块内块120被标示为I,而代表性块间块122被标示为P。 模式A是角落模式,模式B是边侧模式,而模式C是毗邻对模式。在一些实施例中,每个块表示一个4X4像素组。每种模式示出了与块内块相邻的两个有阴影的块间块集合。这些模式是基于数据中的块内块的配置来选取的。可检测到其他块间块模式。集合数据评价器108评价每个标识出的块间块集合的数据以确定与每个标识出的集合相关联的误差。根据解说性实施例,与每个集合相关联的误差可以是该集合的块间块的运动矢量的均方误差。可采用其他误差测量。例如,块间块模式可包含表示由于对象在诸帧中的运动而导致的该数据在这些帧之间的最小程度变换的数据。块间块集合选择器随后可选取具有最小误差的块间块集合。若仅有一个标识出的集合,则选择器110选择该仅有的一个集合。一旦集合被选择,中值运动矢量演算器112就计算所选择的集合的块间块的运动矢量的中值矢量。中值运动矢量是位于这些块间块的运动矢量的上半部和这些块间块的运动矢量的下半部之间的矢量。该中值运动矢量被指派给该块内块。在一些实施例中,所选择的集合的运动矢量的均值运动矢量被指派给该块内块。可采用其他测量。如参照图1功能性地描述的,在特定实施例中,视频接收机102是包括块内块标识器的装置,该块内块标识器用于标识由该装置接收的视频数据的视频帧的块内块,其中在收到视频数据中没有运动矢量与所标识的块内块相关联。该装置还包括相邻集合标识器, 用于在与所标识的块内块相邻的8个块中标识与该块内块相邻的至少一个块间块集合。误差演算器确定与每个相邻块间块集合相关联的误差。集合选择器选择具有最小误差的集合或者在仅有一个集合被标识时选择该仅有的集合。中值矢量演算器确定所选模式的运动矢量的中值运动矢量。指派模块将该中值运动矢量与所标识的块内块相关联。通过选择具有最小误差的块间块集合的运动矢量的中值运动矢量,对块内块的运动预测得到实质改进。图2是视频数据源100和视频接收机102的特定实施例的详细视图。视频数据源 100包括用于编码视频数据的视频编码器202。视频编码器202利用视频数据的空间和时间冗余来以低帧率产生经压缩和经编码的视频数据,得到较低帧率视频数据204。较低帧率视频数据204包括与块间块相关联的运动矢量。视频接收机102包括用于接收低帧率数据的接收机接口 208。在一些实施例中,接收机接口 208是用于通过RF(射频)通信来接收视频数据的无线收发机。因此,视频接收机102可从视频数据源100接收该较低帧率视频数据204。在一个实施例中,帧率提升单元210从接收机接口 208接收该较低帧率视频数据204并生成内插帧来提高视频数据的帧率以供显示。在一些实施例中,视频数据是通过有线连接来接收的。在一些实施例中,帧率提升单元210包括运动矢量预处理器和指派模块103。在其他实施例中,帧率提升单元210包括参照图3描述的熵解码器304,且运动矢量预处理器和指派模块103在该帧率提升单元之前。运动矢量预处理器和指派模块103确定运动矢量 (诸如与块内块相邻的块间块的运动矢量的中值),并将所确定的中值运动矢量指派给该块内块。在经处理的运动矢量被认为不适合用于运动检测时,运动估计引擎212被用于分析毗邻帧以产生针对帧的运动矢量。运动自适应后处理器216接收来自帧率提升单元210 的帧并减少或消除视频数据中与该视频数据中的对象的运动相关联的假象,如将在下文解释的。来自运动自适应后处理器216的视频数据帧被存储在帧缓冲器218中。这些帧在该缓冲器的输出处以较高帧率视频220被呈现。由于帧率提升,较高帧率视频220的帧率高于较低帧率视频数据204的帧率。较高帧率视频220由视频显示器114显示。在一些实施例中,视频接收机102包括存储器224,用于存储将由视频接收机102内的处理器执行以执行如本文中描述的视频处理功能的处理器指令。例如,帧率提升单元210、运动估计引擎 212以及运动自适应后处理器216可被实现为用于执行所描述功能的处理器执行指令。替换地或补充地,帧率提升单元210、运动估计引擎212和或运动自适应后处理器216可包括硬件组件,诸如专用电路系统、或现场可编程门阵列(FPGA)。图3示出帧率提升单元210、运动估计引擎212以及运动自适应后处理器216的实施例。在一个实施例中,帧率提升单元210从接收机接口 208接收较低帧率视频数据。在一些实施例中,接收机接口 208是无线收发机。在另一实施例中,视频数据是借助于有线线路来接收的。熵解码器304接收该视频数据并对该数据执行熵解码。运动矢量预处理和指派模块103接收经解码的视频数据并基于相邻块间块的运动矢量的值向该数据的块内块指派运动矢量,如上所述。在一些实施例中,帧率提升单元210将该数据分段成数据块,诸如与4X4像素块相对应的数据。静态帧处理机308检测帧相对于毗邻帧是否是静态的。一般地,若帧与毗邻帧之间基本无运动,则该帧是静态的。若帧被认为是静态的,则对静态帧不发生帧率提升过程, 因为静态帧可被重放。当帧率提升不是必须要发生时,帧率提升期间的功耗以及在向显示器发送经内插的帧数据时消耗的功率可得以节省。对于非静态的视频数据,平摇分析器310 确定该数据中是否存在平摇,以及若是,则使得带有运动补偿预测器320的运动估计引擎 212执行运动补偿预测。在另一实施例中,平摇分析可有助于运动矢量处理器单元312产生更好的运动矢量。下文参照图8和9进一步描述确定何时存在平摇。运动矢量处理器312评估由帧率提升单元210处理的运动矢量的空间连续性和时间连续性,并且还作出是使用经处理的运动矢量还是由运动估计引擎212执行运动估计的判决。边界检测器和校正器314检测帧边界上的诸块的运动矢量并用不在边界上的毗邻块的运动矢量来代替检出的运动矢量。帧率提升单元210的输出被耦合到运动自适应后处理器216以移除或减少非期望假象以免在显示视频内容时被显示。图4是被细分成较小块以进行处理的宏块400的实施例的解说。在收到数据流中, 每个视频数据帧可被划分成16 X 16像素宏块,诸如宏块400。在本文描述的一些实施例中, 每个宏块被进一步细分成4X4像素块,诸如代表性块402。细分成较小块使得能检测较小对象的运动。图5是运动矢量预处理和指派的方法的实施例的流程图。在特定实施例中,该方法可由图1-3的运动矢量预处理器和指派模块103来执行。在502,标识块内块。在504, 标识相邻块间块集合。在506,对于每个所标识的相邻块间块集合,为每个集合计算集合中的相邻块间块的数据的均方误差。在508,选择具有最小误差的集合。在510,计算所选集合的块的运动矢量的中值。在512,通过将该中值矢量与该块内块相关联来将该中值矢量指派给该块内块。图6是图3中描述的静态帧处理机308的实施例的框图。该静态帧处理机包括两个组件静态帧分类器604和帧率提升禁用器606。若在收到帧序列内的帧与帧之间基本无运动,诸如在所确定的运动量小于阈值的场合,静态帧处理机308的静态帧分类器604将帧分类为静态的。在检测到静态帧时,帧率提升器禁用器606禁用对静态帧进行帧率提升的过程,并且静态帧可被复制。在其他实施例中,静态帧处理机后可跟随有帧内插判决框, 其判决是否通过运动和质量分析来执行帧率提升。图7是用于处置静态帧的方法的实施例的流程图。在解说性实施例中,该方法可由静态帧处理机308执行。在702,比较连续帧以确定帧是否是静态的。因此,通过比较各帧,在704,可确定一帧相对于帧序列中的其他帧是静态的。若检测到静态帧,则在706,对于这些连续帧禁用帧率提升。否则,该过程在708继续平摇分析,这将在下文讨论。如关于图7功能性地描述的,一些实施例包括静态帧处理机,用于确定何时视频数据的视频帧是静态的,并且在检测到静态视频帧时选择性地挂起帧率提升的过程。根据另一实施例,一种方法包括确定视频数据的帧的内容是否是静态的。在发现内容是静态的时,可禁用帧率提升。图8是图3的平摇分析器310的实施例的框图。平摇分析器310包括统计收集器 804,用于收集帧的运动矢量的统计,诸如最大值、均值和方差。统计收集器804所收集的统计被用于确定视频数据是否展现平摇。例如,若平摇度量(诸如均值)高于预定水平且运动矢量的χ和y分量的方差小于阈值,则可确定平摇。中值矢量演算器806确定帧的运动矢量的中值以产生平摇矢量。阈值比较器808确定平摇矢量是否超过阈值。另外,运动矢量比较器810将帧中的每个运动矢量与平摇矢量作比较以确定与该运动矢量相对应的块是否正被平摇。若检测到平摇,则运动补偿预测器320可执行双向运动补偿预测或其他平摇自适应预测,而非执行单向运动补偿预测。双向运动补偿预测可导致时间帧预测的准确性得到改善。因此,一实施例可包括用于确定视频数据何时展现平摇运动的平摇分析器、以及用于在确定平摇时执行双向运动补偿预测的双向运动补偿预测器。图9是用于平摇分析的方法的实施例的流程图。在解说性实施例中,该方法可由平摇分析器310实现。在902,确定帧的运动矢量的统计。这些统计可包括该帧的运动矢量的最大值和平均值。在904,计算该帧中的运动矢量的中值以产生平摇矢量。在906,将该帧中的每个运动矢量与平摇矢量作比较以确定正被平摇的块的数目。因此,在908,将运动矢量与平摇矢量之差与预定阈值作比较。若该差小于被选择用于标识诸帧之间的平摇的该预定阈值,则在910,与该运动矢量相对应的块被指派给平摇块群。否则,在912,该过程前进至确定平摇矢量是否超过一阈值。若平摇矢量超过该阈值,则在914,将平摇标志置位。 若平摇矢量不超过该阈值,则在916,平摇标志保持为0。如图9中那样,一实施例可以是一种方法,其包括确定视频数据的帧是否展现平摇运动、以及在展现平摇运动时对视频数据的后续帧中的块执行双向运动补偿预测。图10是运动矢量处理器312的实施例的框图。运动矢量处理器312包括空间连续性模块1004、时间连续性模块1006、以及运动估计判决模块1008。空间连续性模块1004通过将中心块的运动矢量与毗邻块的运动矢量作比较来评估运动矢量的连续性。时间连续性模块1006评估一帧中的块的运动矢量与另一帧中的对应块的运动矢量的连续性。运动估计判决模块1008确定是执行运动估计以确定块的运动矢量还是使用由运动矢量预处理和指派模块103确定的经处理运动矢量。图11是用于描述确定块间的空间连续性的实施例的帧内的块的解说。在块集合 1150中,多个块位于毗邻中心块C 1100。在图11中,中心块C 1100毗邻顶块T 1102、底块 B 1104、以及侧块L 1106和R 1108。使用这些毗邻块T 1102、B 1104、L 1106和R 1108 来评估空间连续性,如将参照图12描述的。若诸毗邻块的运动矢量间的差较小但这些毗邻块的运动矢量的平均与中心块的运动矢量间的差较大,则可以不使用中心块的经处理运动矢量,而是可代替地使用毗邻运动矢量的平均。图12是评估运动矢量的空间连续性的方法的实施例的流程图。在解说性实施例中,该方法可由图3的运动矢量处理器312执行。若在1204确定帧中剩有尚未分析其空间连续性的中心块(诸如图11的中心块C1100),则在1206确定一个毗邻块的运动矢量与在中心块的相对侧的毗邻块的运动矢量之差。例如,确定图11中的块L 1106和R 1108的运动矢量之差。在1208,将该差与第一阈值作比较。若该差超过第一阈值,则在1204,评价下一中心块。若没有中心块剩余,则该过程在1214结束。若该差不超过第一阈值,则在1210, 将中心块的运动矢量与毗邻块的运动矢量的平均值作比较以确定是否超过第二阈值。例如,将块C 1100的运动矢量与块L 1106和R 1108的运动矢量的平均值作比较(例如从后者减去前者)。若不超过第二阈值,则在1204,评价下一中心块。若超过第二阈值,则在 1212,将毗邻块的运动矢量的平均指派给该中心块。例如,在图11的示例中,块C 1110的运动矢量可被指派为块L 1106和R 1108的运动矢量的平均。如关于图12功能性地描述的,一些实施例包括将毗邻中心块的两个块的运动矢量之间的第一差值与第一阈值作比较。在第一差值小于第一阈值时,随后确定中心块的运动矢量与这些毗邻块的运动矢量的平均运动矢量之间的第二差值是否超过第二阈值。在第二差值超过第二阈值时,随后向该中心块指派是这些毗邻块的运动矢量的平均的运动矢量。图13是评估运动矢量的时间连续性的方法的实施例的流程图。在解说性实施例中,该方法可由图3的运动矢量处理器312执行。在1304,作比较以确定当前块的经处理运动矢量是否与毗邻或近旁帧中的对应块的运动矢量相似。可通过将两个运动矢量之差与阈值作比较来确定相似性。若这两个运动矢量是相似的,则该过程在1308继续。若正被比较的两个运动矢量不相似,即,若这两个运动矢量之差超过该阈值,则在1306,将当前块的运动矢量设为等于由视频接收机106接收的视频数据比特流中接收到的与当前块相对应的未经处理的运动矢量。在1308,将当前块的经编码块模式(CBP)与阈值作比较。若CBP小于该阈值,则在 1310,将当前块的经处理运动矢量设为视频数据比特流中接收到的与当前块相对应的未经处理的运动矢量。前进到1312,演算当前块的运动矢量与毗邻帧中的对应块的运动矢量的加权差。该加权差方案还可涉及取当前块的运动矢量与通过加权平均来自参考同址块及其邻块的运动矢量获得的运动矢量之差。继续到1314,将加权差与第二阈值作比较。若加权差不大于第二阈值,则该过程在1318结束。否则,当前块的运动矢量被设为等于作为包含当前块作为块窗口的中心块的该块窗口中的块的运动矢量的中值的中值运动矢量。在一些实施例中,该窗口包括3 X 3块阵列。图14是在使用经处理运动矢量与用运动估计引擎112计算运动矢量之间进行选择的方法的实施例的流程图。在解说性实施例中,该方法可由图3的运动矢量处理器312 执行。在1404,确定帧中的运动矢量的方差。在其他实施例中,可采用不同于方差的统计度量。在1406,将运动矢量的方差与阈值作比较。若方差大于该阈值,则在1408,使用运动估计引擎112来确定该帧的运动矢量。否则,若方差不大于该阈值,则在1410,使用该帧的经处理运动矢量。也可使用其他度量来决定何时开启运动估计引擎。这些度量包括比特流中的块内块的数目、块内块群集、以及其他运动矢量统计,诸如运动矢量长度和运动矢量直方图。图15是边界检测器和校正器314的特定实施例的框图。边界检测器和校正器314 包括用于检测和校正角落块的运动矢量的角落运动矢量校正器1504以及用于检测和校正边侧块的运动矢量的边侧运动矢量校正器1506。如将参照图16讨论的,边界检测器和校正器314校正帧或宏块的边界上的块的错误运动矢量。通常,错误运动矢量由于对象/像素离开或进入帧而发生在帧边界处,且难以在参考帧中找到那些对象的对应对象。图16是用于解说边界检测器和校正器314的操作的毗邻帧或宏块的边界的块的解说。例如,块A 1601是角落块而块E 1602是边侧块。块A 1601的邻块为块B 1603、C 1605、和D 1607。IfeE 1602的不在边界上的邻块为块F1606、G 1604、和H 1608。图17是检测和校正边界运动矢量的方法的实施例的流程图。在解说性实施例中, 该方法可由图3的边界检测器和校正器314执行。在1704,确定块是否为角落块。若块是角落块,则在1706,计算该角落块与毗邻块的运动矢量之差的绝对值。例如,参照图16,该方法计算块A 1601的运动矢量与块B 1603、C 1605、和D 1607的运动矢量之差的绝对值。 在1708,计算所计算出的绝对值的平均值。在1710,将该平均值与阈值作比较。若该平均值超过该阈值,则在1712,将该角落块的运动矢量设为等于相邻块的运动矢量。这里也可使用不同于平均的值/度量。具体而言,角落块A 1601的运动矢量可被设为等于相邻块D 1607的运动矢量。否则,该过程前进至1714。在1714,该过程继续确定是否检测到边侧块。若未检测到边侧块,在1704,该过程继续下一块。若检测到边侧块,则在1716,计算该边侧块与毗邻块的运动矢量之差的绝对值。参照图16,该方法可计算块E 1602的运动矢量与块F1606、G 1604和H 1608的运动矢量之差的绝对值。在1718,计算所计算出的绝对值的平均值。在1720,将该平均值与阈值作比较。若该平均值超过该阈值,则在1722,将该边侧块的运动矢量设为等于相邻块的运动矢量。例如,边侧块E 1602的运动矢量可被设为等于相邻块F 1606的运动矢量。在 1704,该过程针对下一块继续。图18是参照图2描述的运动自适应后处理器216的实施例的框图。运动自适应后处理器216被配置成减少作为因按块处理图像造成的错误像素值的成块假象。更具体地,运动自适应后处理器216确定每个块的边界强度,边界强度确定对该块应用的过滤的强度。运动自适应后处理器216包括用于每次选择帧中的一行块的行选择器1804。运动矢量比较器1806将该行中的每个块的运动矢量与阈值作比较。运动矢量计数器1808计数该行中超过阈值的运动矢量的数目。计数比较器1810将超过该阈值的运动矢量总数与第二阈值作比较。若该计数超过第二阈值,则边界强度确定器1812确定所选行中的每个块的边界强度。因此,一种装置的实施例可包括用于评估与块相关联的边界强度的运动自适应后处理器216。图19是行级后处理的方法的实施例的流程图。在解说性实施例中,该方法可由图 3的运动自适应后处理器216执行。在1904,确定一行中的块的超过第一阈值的运动矢量的数目。在1906,将超过第一阈值的运动矢量的数目与第二阈值作比较。若超过第一阈值的运动矢量的数目不超过第二阈值,则在1908,关闭行级后处理。否则,在1910,开启行级后处理。在1912,作出是否有任何剩余行的确定。若是,则在1904,处理下一行。图20是指派边界强度值的方法的实施例。在解说性实施例中,该方法可由图3的运动自适应后处理器216执行。在2004,作出是否针对特定行开启行级后处理的确定。若针对该行关闭行级处理,则在2008,作出是否有另一行的确定。若有另一行,则在2004,该过程继续。否则,该过程在2010结束。在2004继续,若开启行级后处理,则该过程前进至 2006,其中根据块的运动矢量是否超过阈值来确定该行中的诸块的边界强度。前进至2008, 作出是否有另一行要被处理的确定。若是,则该过程在2004继续。否则,该过程在2010结束。在其中处理能力充裕的应用中,可放弃行级判决,且可针对每个块以及针对待内插帧的每一行演算运动自适应边界强度。本领域技术人员将进一步领会,结合本文所公开的实施例来描述的各种解说性逻辑框、配置、模块、电路、和算法步骤可实现为电子硬件、计算机软件、或这两者的组合。为清楚地解说硬件和软件的这种可互换性,各种解说性组件、框、配置、模块、电路、和步骤在上文中以其功能性的形式进行了一般化描述。此类功能性是被实现为硬件还是软件取决于具体应用和加诸于整体系统的设计约束。技术人员可针对每种特定应用以不同方式来实现所描述的功能性,但此类实现决策不应被解读为致使脱离本公开的范围。结合本文中公开的实施例来描述的方法或算法的步骤可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中实施。软件模块可驻留在随机存取存储器(RAM)、闪存、只读存储器(ROM)、可编程只读存储器(PR0M)、可擦式可编程只读存储器 (EPROM)、电可擦式可编程只读存储器(EEPROM)、寄存器、硬盘、可移动盘、压缩盘只读存储器(CD-ROM)、或本领域中所知的任何其他形式的存储介质。示例性存储介质耦合到处理器以使得该处理器能从该存储介质读取信息以及向该存储介质写入信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在专用集成电路(ASIC)中。ASIC 可驻留在计算设备或用户终端中。在替换方案中,处理器和存储介质可作为分立组件驻留在计算设备或用户终端中。根据一些实施例,一种或多种所公开方法的一部分可被实现为计算机可读有形介质,该计算机可读有形介质包括用于使计算机(诸如通用处理器或数字信号处理器(DSP)) 标识块内块以及从相邻块推导用于指派给该块内块的运动矢量的计算机代码。该介质包括使计算机标识收到视频数据流中的块内块的计算机代码,其中块内块在收到视频数据流中没有与其相关联的运动矢量。该介质进一步包括使计算机确定与块内块相邻的至少一个块间块集合的计算机代码。该计算机代码还使计算机确定与该至少一个集合中的块的运动矢量相关联的误差。该介质进一步包括使计算机选择该至少一个集合中具有最小误差的集合或者若仅有一个集合被标识则选择该仅有的集合的计算机代码。该计算机代码还使计算机从所选集合中的块间块的运动矢量确定中值运动矢量。该介质还包括使计算机将该中值运动矢量与该块内块相关联的计算机代码。在一些实施例中,该介质进一步包括使计算机检测视频数据中的平摇运动以及在检测到平摇运动时执行双向运动补偿预测的计算机代码。在一些实施例中,该计算机代码使计算机确定视频数据的帧的内容是否是静态的以及在确定帧的内容是静态的时禁用帧率提升。此外,在一些实施例中,该计算机代码使计算机通过将块的运动矢量与毗邻块的运动矢量作比较来评估视频数据的块的空间连续性。另外,在一些实施例中,该计算机代码使计算机确定块的经处理运动矢量与先前帧中的对应块的运动矢量之差以评估与该经处理运动矢量相关联的时间连续性。因此,本文中描述的一些或所有方法可由可包括微处理器或微控制器的计算机执行。一些或所有这些方法可替换地或补充地由专用集成电路系统、或由可编程逻辑阵列来执行。提供前面对所公开的实施例的描述是为了使本领域任何技术人员皆能制作或使用所公开的实施例。对这些实施例的各种修改对于本领域技术人员而言将是显而易见的, 并且本文中定义的原理可被应用于其他实施例而不会脱离本公开的范围。因此,本公开并非旨在被限定于本文中示出的实施例,而是应被授予与如由所附权利要求定义的原理和新颖性特征一致的最广的可能范围。
权利要求
1.一种在视频接收机中处理收到视频数据的方法,所述方法包括 标识所述视频数据的视频帧中的块内块;标识与所述块内块相邻的第一块间块集合以及标识与所述块内块相邻的第二块间块集合,所述第一和第二集合中的每个块间块具有与其相关联的运动矢量;评价所述第一块间块集合和所述第二块间块集合的数据以确定所述第一和第二块间块集合中的哪一个集合具有与其相关联的最小误差;以及确定与被确定为具有所述最小误差的所述块间块集合的所述运动矢量相关联的运动矢量,所确定的运动矢量将与所述块内块相关联。
2.如权利要求1所述的方法,其特征在于,所述块间块集合中的至少一个包括与所述块内块相邻的块间块的角落模式。
3.如权利要求1所述的方法,其特征在于,所述块间块集合中的至少一个包括与所述块内块相邻的块间块的边侧模式。
4.如权利要求1所述的方法,其特征在于,所述第一和第二块间块集合中的每个块间块表示4X4像素组。
5.如权利要求1所述的方法,其特征在于,进一步包括 确定所述视频数据的所述视频帧的内容是否是静态的;以及响应于确定所述帧的所述内容是静态的,禁用帧率提升。
6.如权利要求1所述的方法,其特征在于,进一步包括 确定所述视频帧是否展现平摇运动;以及响应于展现所述平摇运动的确定,执行对后续视频帧中的块的平摇自适应预测。
7.如权利要求6所述的方法,其特征在于,平摇运动是基于与所述视频帧相关联的运动矢量的统计来标识的。
8.如权利要求6所述的方法,其特征在于,基于与所述视频帧相关联的运动矢量的中值来确定平摇量。
9.如权利要求6所述的方法,其特征在于,进一步包括计算平摇矢量与所述视频帧中的多个块中的每个块的运动矢量之差以确定展现所述平摇运动的块的数目。
10.如权利要求6所述的方法,其特征在于,进一步包括响应于确定所述视频帧展现所述平摇运动,通过使用平摇运动来推导所述视频帧的运动矢量。
11.如权利要求1所述的方法,其特征在于,进一步包括将毗邻中心块的两个块的运动矢量之间的第一差值与第一阈值作比较; 响应于所述第一差值小于所述第一阈值,确定所述中心块的运动矢量与所述两个块的运动矢量的平均运动矢量之间的第二差值是否超过第二阈值;以及响应于所述第二差值超过所述第二阈值,向所述中心块指派是所述两个块的所述运动矢量的平均的运动矢量。
12.如权利要求1所述的方法,其特征在于,进一步包括演算所述视频帧的第一块的经处理运动矢量与所述视频数据的先前帧的对应块的运动矢量之间的加权差;将所述加权差与阈值作比较;以及响应于所述加权差超过所述阈值,用代替运动矢量来代替所述经处理运动矢量,所述代替运动矢量是包括与所述经处理运动矢量相对应的所述第一块的3块X 3块阵列中的相邻块的运动矢量的中值。
13.如权利要求1所述的方法,其特征在于,进一步包括基于收到视频比特流的测得参数与阈值的比较,在使用所述收到视频比特流中提供的运动矢量来预测运动与在所述视频接收机处使用运动补偿预测来确定运动矢量之间进行选择。
14.如权利要求1所述的方法,其特征在于,进一步包括 检测毗邻所述视频帧的边界的块;确定所述毗邻边界的块的运动矢量与和所述毗邻边界的块相邻的块的运动矢量之差的绝对值的平均值;将所述平均值与阈值作比较;以及响应于所述平均值超过所述阈值,将所述毗邻边界的块的所述运动矢量设为等于和所述毗邻边界的块相邻的块的运动矢量。
15.如权利要求1所述的方法,其特征在于,进一步包括确定一行中的每个块的边界强度。
16.如权利要求1所述的方法,其特征在于,进一步包括 确定第一行块中的块的超过第一阈值的运动矢量的数目;确定超过所述第一阈值的运动矢量的所述数目是否超过第二阈值;以及响应于超过所述第一阈值的运动矢量的所述数目超过所述第二阈值,确定所述第一行中的每个块的边界强度。
17.一种装置,包括块内块标识器,用于标识视频数据的视频帧的块内块;相邻块间块集合标识器,用于标识与所述块内块相邻的至少一个块间块集合,每个块间块与收到视频数据中的相应运动矢量相关联;误差演算器,用于确定与每个所标识的块间块集合的块间块的数据相关联的误差; 集合选择器,用于在有一个以上集合被标识时选择具有最小误差的集合;以及中值矢量演算器,用于确定所选块间块集合的运动矢量的中值运动矢量,所述中值运动矢量将与所标识的块内块相关联。
18.如权利要求17所述的装置,其特征在于,进一步包括静态帧处理机,用于确定所述视频数据的所述视频帧是否是静态的、以及响应于确定所述视频帧是静态的而选择性地挂起帧率提升过程。
19.如权利要求17所述的装置,其特征在于,进一步包括 平摇分析器,用于确定所述视频数据是否展现平摇运动;以及平摇自适应预测单元,用于响应于展现所述平摇运动的确定,执行平摇自适应预测。
20.如权利要求17所述的装置,其特征在于,进一步包括运动矢量处理器,用于通过将所述视频数据的块的运动矢量与毗邻块的运动矢量作比较来评估所述块的所述运动矢量的空间连续性。
21.如权利要求17所述的装置,其特征在于,进一步包括运动矢量处理器,用于确定块的经处理运动矢量与先前帧中的对应块的运动矢量之差以评估与所述经处理运动矢量相关联的时间连续性。
22.如权利要求17所述的装置,其特征在于,进一步包括用于检测和校正毗邻宏块边界的块的运动矢量的模块。
23.如权利要求17所述的装置,其特征在于,进一步包括运动自适应后处理器,用于评估与所述视频帧中的块的边缘处的误差量相关联的分块强度。
24.如权利要求17所述的装置,其特征在于,进一步包括配置成接收所述视频数据的接收机。
25.如权利要求17所述的装置,其特征在于,进一步包括配置成显示由所述视频数据编码的视频内容的视频显示器。
26.一种存储计算机代码的计算机可读有形介质,所述计算机代码包括 使计算机标识收到视频数据流中的块内块的计算机代码;使所述计算机标识与所述块内块相邻的至少一个块间块集合的计算机代码; 使所述计算机确定与所述至少一个集合中的块间块的数据相关联的误差的计算机代码;使所述计算机选择所述至少一个集合中具有最小误差的集合的计算机代码; 使所述计算机确定所选集合中的块间块的运动矢量的中值运动矢量的计算机代码,所述中值运动矢量将与所述块内块相关联。
27.如权利要求沈所述的计算机可读有形介质,其特征在于,进一步包括在由所述计算机执行时使所述计算机检测所述视频数据中的平摇运动以及响应于检测到所述平摇运动而执行双向运动补偿预测的计算机代码。
28.一种设备,包括用于标识与块内块相邻的至少一个块间块集合的装置;用于确定与所述至少一个集合的块间块相关联的误差的装置;用于基于与所述集合相关联的所述误差来选择所述至少一个集合中的集合的装置;用于确定所选集合的块间块的运动矢量的中值运动矢量的装置;以及用于将所述中值矢量与所述块内块相关联的装置。
29.如权利要求观所述的设备,其特征在于,进一步包括用于检测包括所述块间块的帧的平摇运动的装置。
全文摘要
公开了用于处理视频数据的运动矢量的系统和方法根据一实施例,标识视频数据的视频帧中的块内块。至少标识与所标识的块内块相邻的第一块间块集合和第二块间块集合,其中块间块集合中的每个块间块具有与其相关联的运动矢量。评价第一和第二块间块集合的数据以确定与所述第一和第二集合中的每一个集合相关联的误差。确定与具有最小误差的集合的块间块的运动矢量相关联的运动矢量。所确定的运动矢量可与所标识的块内块相关联。
文档编号H04N7/36GK102342106SQ201080010826
公开日2012年2月1日 申请日期2010年3月5日 优先权日2009年3月5日
发明者G·丹尼, G·莫塔 申请人:高通股份有限公司