性能和带宽高效的分数运动估计的制作方法

xiaoxiao2020-9-10  4

【知识产权代理】【专利服务】Tel:18215660330

性能和带宽高效的分数运动估计的制作方法
【专利摘要】此处描述了涉及用于视频编码的运动估计的技术。具体而言,对参考视频帧执行整数估计,并确定最佳尺寸宏块。对该最佳尺寸宏块,执行分数估计。基于分数估计,判断是否从整数估计产生了对宏块的改善。如果产生了这样的改善,则更新来自整数搜索/估计的最佳尺寸宏块的所有子形状。此外,还选择新子宏块作为用于视频编码的最后一个宏块。
【专利说明】性能和带宽高效的分数运动估计
[0001]背景
[0002]本申请要求2012年4月20日提交的标题为“PERFORMANCE AND BANDWIDTHEFFICIENT FRACT1NAL MOT1N ESTIMAT1N(性能和带宽高效的分数运动估计)”的美国临时专利申请N0.61/635,943的优先权。
[0003]视频编码是准备视频(视频数据)的过程,在该过程中编码视频以满足适当的格式和规范,以便记录和回放。运动估计在视频编码和视频压缩中是重要的,从计算角度来看是密集的任务。
[0004]视频编码专家小组(VCEG)以及国际标准化组织(ISO)/国际电工委员会(IEC)共同工作组、运动图像专家组(MPEG),开发了高级视频编码(AVC)标准。AVC标准或AVC也称为H.264。AVC是用于视频编码的标准的示例,并且是高清晰度视频的记录、压缩以及分发的最通常使用的格式之一。其他标准包括但不限于活动图像专家小组2 (MPEG2)、可缩放的视频编码(SVC),以及高效率视频编码(HEVC)等等。
[0005]作为示例,AVC实现16X16像素的宏块的单元。16X16宏块可以由较小块(宏块)构成,诸如16X8、8X8、4X4等等。运动估计可以用于视频压缩方案中。可以执行运动估计,以发现指向参考帧中的最佳预测宏块的运动向量。可以确定相邻的帧之间的冗余,选择一个帧作为参考,并使用运动估计从参考帧预测随后的帧。运动估计过程可以分析以前的或未来的帧,以标识没有变化的块/形状。在某些实现中,可以存储运动向量来代替块。
[0006]使用运动估计的视频压缩的过程被称为帧间编码。对于帧间编码(也称为时间编码),可以使用以前的或未来的编码的帧中的像素块,来编码宏块。相比之下,帧内编码(也称为空间编码)使用当前帧内的已经编码的像素块来编码宏块。运动估计在帧间编码时发现像素块的匹配。
[0007]AVC允许可变宏块尺寸运动估计,这也会导致较高计算复杂性。在视频编码中,有空间部分和时间部分。对于第一或参考帧,帧被分成16X16宏块。为了实现空间预测,此阶段使用第一或当前帧中的像素来预测可以执行诸如压缩之类的过程(即,计算当前宏块中的系数)的宏块。在任何特殊预测的帧之后,可以有在空间上或在时间上预测的帧。对于在时间上预测的帧,取当前帧,并查看预先编码的帧,并判断预先编码的帧是否匹配当前帧。时间预测可以将宏块(例如,16X16)细分为较小宏块(例如,4X4)。
[0008]可以执行整数运动估计,接下来是分数估计。执行分数估计,部分地搜索较小区域,由此避免必须搜索每个可能的分数区域形状组合,这将限制性能。执行估计,以便获得压缩而不会牺牲质量,实现较低的带宽和较好的质量。
[0009]宏块越大,比特的数量越小;然而,如果帧良好匹配,则较大的宏块可能需要更多系数用于压缩。因此,通过经由可变块尺寸运动估计来拆分宏块,即使有更多比特,然而系数较少,并且压缩更有效率。
[0010]在执行整数估计/搜索和分数估计/搜索之后,如果执行搜索的所有形状的每一种可能的形状组合,由于全部可能的形状组合,性能变得非常有限。从整数搜索视点,就关于最佳宏块/形状作出判断,然后,部分地对该一个形状执行检查/搜索。通过不检查、搜索以及更新其他宏块/形状,此方法放弃质量。
[0011]附图简述
[0012]图1示出了用于实现整数运动估计和分数运动估计以获得用于视频编码的最佳整数运动估计宏块的示例系统。
[0013]图2示出了用于实现整数运动估计和分数运动估计以获得用于视频编码的最佳整数运动估计宏块的示例视频编码器。
[0014]图3示出了对于视频帧执行的示例整数运动估计和分数运动估计以获得最佳整数运动估计宏块。
[0015]图4示出了用于实现整数运动估计和分数运动估计以获得用于视频编码的最佳整数运动估计宏块的示例方法。
[0016]图5是示例系统的说明图。
[0017]图6是所有都根据本发明的至少某些实现排列的示例设备的说明图。
[0018]参考附图提供了下列详细描述。在附图中,附图标记中最左边的数字通常标识该附图标记首次出现的附图。在不同附图中使用相同的附图标记指示相似或相同的项。

【具体实施方式】
[0019]本文档公开了用于对于视频编码实现分数运动估计的一个或多个系统、设备、方法等等。在整个本文档中,术语“估计”和“搜索”可互换地使用。此外,术语“宏块”和“形状”还可互换地使用。在一种实现中,对视频帧执行整数估计,并确定最佳尺寸宏块。通过使用最佳尺寸宏块,执行分数估计。根据分数搜索/估计,根据整数估计判断在宏块上是否产生了改善。如果产生了这样的改善,那么,更新来自整数估计的最佳尺寸宏块的所有子形状。这通过在视频编码过程中更新较小的宏块,可以导致提高效率和更好的质量。示例实现包括虚拟机环境(VME)以改善视频的压缩。
[0020]图1示出了可以用于实现各种描述实施例的示例系统。然而,可以容易地理解,可在其他计算设备、系统和环境中实现此处所公开的技术。图1所示出的计算设备100是计算设备的一个示例,而非旨在暗示关于计算机和网络体系结构的使用范围或功能的任何限制。
[0021]在至少一种实现中,计算设备100包括至少一个处理单元102和系统存储器104。取决于计算设备的确切配置和类型,系统存储器104可以是易失性的(如RAM)、非易失性的(如ROM、闪存等等)或其某种组合。系统存储器104可以包括操作系统106、在某些实现中可以实现此处所描述的视频运动估计方法和技术的一个或多个程序模块108。系统存储器104还可以包括如在本文档中稍后所描述的宏块/形状数据库的程序数据110。此外,在此示例中,还包括编码器112。可以使用编码器112来实现如此处所描述的视频编码、运动估计、运动补偿等等。编码器112可以可操作地耦合到此处进一步描述的处理单元102、系统存储器104及其他存储器、输入/输出、设备及未示出的其他组件/设备,并与它们进行通信。计算设备100的基本实现由虚线114限定。例如,在某些实现中,编码器112可以是中央处理单元(CPU)的集成图形芯片组的包括3D和媒体的一部分,该部分具有包括视频(具体地,视频解码/编码)的媒体功能。在某些实现中,专用集成电路或ASIC可以包括编码器112,作为固定功能编码器。
[0022]可以构想,带有视频编码的设备可以使用所描述的技术、方法和设备。这样的设备的示例包括媒体播放器、视频会议设备等等。
[0023]在某些实现中,程序模块108可以包括特定的模块(未示出),诸如被配置成实现此处所描述的视频编码技术和方法的编解码器或基于软件/固件的编码器。例如,在某些实现中,这样的模块可以执行编码器112的过程。示例编解码器包括AVC、VCU ATVC以及SVC。
[0024]计算设备100可具有附加特征或功能。例如,计算设备100也可以包括另外的数据存储设备,诸如可移动存储器116和不可移动存储器118。在某些实现中,可移动存储器116和不可移动存储器118是用于存储可由处理单元102执行以执行上文所描述的各种功能的指令的计算机可访问的介质的示例。一般而言,参考附图描述的任何功能都可使用软件、硬件(例如,固定逻辑电路)或这些实现的组合来实现。程序代码可以储存在一个或多个计算机可访问的介质或其它计算机可读存储设备中。因此,此处所描述的过程、组件可由计算机程序产品来实现。如上文所提及的,计算机可访问的介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。术语“计算机可访问的介质”是指非瞬时的存储设备,包括但不限于,RAM、ROM、EEPR0M、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光存储、磁带盒、磁带、磁盘存储或其他磁存储设备,或者可用于存储信息以供计算设备(例如,计算设备100)访问的任何其他非瞬时的介质。这样的计算机可访问的介质中的任何一种都可以是计算设备100的一部分。
[0025]在一种实现中,作为计算机可访问的介质的可移动存储器116具有一组在其上存储的指令。当由处理单元102执行时,指令集导致处理单元102执行如此处所描述的操作、任务、功能和/或方法以及其任何变化。
[0026]计算设备100也可包括一个或多个输入设备120,如键盘、鼠标、笔、语音输入设备、触摸输入设备等等。计算设备100也可以包括诸如显示器、扬声器。、打印机等等之类的一个或多个输出设备122。
[0027]计算设备100也可以包括一个或多个通信连接124,这些通信连接124允许计算设备100通过连接126、通过有线或以无线方式与一个或多个其他设备进行通信。应该理解,所示出的计算设备100是合适的设备的一个示例,而非旨在对所描述的各实施例的使用范围或功能提出任何限制。
[0028]图2示出了用于实现整数运动估计和分数运动估计的示例视频编码器112。在某些实现中,视频编码器112可以被实现为中央处理单元的一部分、集成电路芯片组的一部分或单独的组件/设备。如上文所讨论的,在某些实现中,视频编码器112可以实现为固件或软件,诸如编解码器。
[0029]从包括存储器、视频源等等的各种源中的一个接收视频200。具体而言,接收到的视频200将由编码器112编码/压缩。由整数运动估计器组件202接收视频200的变为当前参考帧的视频帧。整数运动估计器组件202执行整数搜索以获得参考帧的最佳形状或宏块。最佳形状或宏块可以被确定为带有最低失真的该宏块。
[0030]例如,最佳形状或宏块可以是16x16,具有宏块的最低失真。在整数搜索之后,仅对于16X16形状更新记录或形状数据库204。形状数据库204是各种宏块的形状组合的记录,包括16X16宏块以及所有子块(例如,16X8、8X8、4X4等等)。例如,在AVC中,有41个形状组合,因此,为形状数据库204中的41个形状组合中的最佳形状组合保留记录。
[0031]分区组件206提供由整数运动估计器组件202确定的最佳形状或宏块208 (例如,16X16形状)。通过使用最佳形状或宏块208,分数运动估计器210对最佳形状或宏块208 (例如,16X16形状)执行分数搜索。
[0032]分数运动估计器210对最佳形状或宏块208 (例如,16X16形状)的当前像素执行分数预测,并交互地内插分数位置,以确定关于最佳宏块的子宏块的改善。由于对较大的16X16形状宏块执行检查,因此,可以部分地检查基础像素中的较小的宏块形状。利用16X16最佳形状或宏块208,有较低的形状(例如,16X8,8X8,4X4等等),利用那些较小的形状更新形状数据库(即,记录)204,同时,更新16X16形状。在某些实现中,与形状数据库204 一起提供不同的形状数据库。
[0033]如果判断小于最佳形状或宏块208的形状或宏块已改善,那么,作出从16X16最佳形状或宏块208变为较小尺寸并将该尺寸用于编码的判断。因此,分区组件206基于分数估计212,提供最佳宏块,进一步更新用于最终视频编码的参考帧的宏块。“新”最佳宏块或形状212,可以是前一最佳形状或宏块208 (例如,16X16),或子宏块(例如,16X8,8X8,4X4
坐坐^
寸寸/ ο
[0034]因此,通过基于较大尺寸的形状来更新较小尺寸的形状的记录,因为无视较大的形状执行分数搜索,所以不会损害性能,并且因为可以确定较小尺寸宏块,可以实现较好的质量。编码器112更新多个形状或宏块的记录,在分数搜索过程中更新记录,并在分数搜索过程中改变模式选择或宏块尺寸。
[0035]图3示出了对参考视频帧310执行的示例整数运动估计和分数运动估计。帧302是初始整数搜索/估计之后的视频帧。帧302示出了整数搜索完成之后的结果。最佳形状或宏块的运动向量和失真用于对最后的形状或宏块作出决定。
[0036]在此示例中,形状判断是16x16。16X16宏块304通过运动向量(0,O)来表示。两个16X8宏块306和308构成16X16宏块304。16X8宏块306具有运动向量(_8,_4),16X8宏块308具有运动向量(12,4)。使用当前帧302,对16X16宏块304执行搜索,以检查预先编码的帧以查明是否可以在预先编码的帧中发现好的匹配。与16X16宏块304相同地搜索16X8 宏块 306 和 308。
[0037]可以使用不同的度量来判断前一帧是否与当前帧302良好对准。因此,可以基于这样的度量,来确定失真值。在此示例中,16X16宏块304的失真是200。16X8宏块306的失真是100,16X8宏块308的失真是120。因此,两个16X8宏块306和308的总和相加得220。
[0038]然后,部分地检查/搜索16X16宏块304。在分数搜索过程中,检查16x16位置,但不检查16x8位置。如此,分数搜索以(0,0)为中心。但是,在执行分数搜索时,16x16和16x8记录两者都被更新。在此示例中,作为分数搜索的结果,16x16和16x8两者都被改善。
[0039]在分数搜索之后,帧310表示帧302。不部分地检查16X8宏块306和308,如此,节省性能资源。在分数搜索之后,16X16宏块304具有运动向量(1,-1),表示四分之一像素运动。16X16宏块304的失真被确定为190。在对16X16宏块304的分数搜索过程中,更新16X8宏块的形状。在此示例中,查找16X8宏块308的更好的匹配。16X8宏块308的运动向量现在是(2,0),失真被确定为80。16X8宏块306的运动向量是(_8,_4),失真保持在100。16X16宏块304的失真现在大于16X8宏块306和308的组合的失真。换言之,16X16宏块304的失真是190,宏块306和308的组合的失真是180 (即,100+80)。因此,选择16X8宏块作为最后一个宏块,因为它具有比16X16宏块低的失真。作为改善的结果,16x8变为最后一个宏块,代替16x16,从而提供质量的改进。
[0040]图4示出了示例过程流程图400,示出了用于实现整数运动估计和分数运动估计以获得视频编码的最佳整数运动估计宏块的示例方法。描述方法的次序并不旨在被解释为限制,并且任意数量的所描述的框可以按任何次序组合以实现这些方法或替换方法。另外,在不偏离此处所描述的主题的精神和范围的情况下,可以从该方法中删除各单独的框。此夕卜,在不偏离本发明的范围的情况下,方法还可以以任何合适的硬件、软件、固件或其组合来实现。
[0041]在框402,对参考帧执行整数搜索。具体而言,参考帧是视频帧。在一种实现中,整数运动估计器组件(例如,整数估计器组件202)可以执行整数搜索,以确定参考帧的最佳宏块或最佳形状。最佳形状或宏块可以被确定为带有最低失真的该宏块。此外,还可以首先对视频编码标准的最大的宏块(例如,16X16)执行整数搜索。
[0042]在框404,仅对于最佳宏块或形状的所有形状执行更新。如果遵循整数运动估计,则检查每一分区/形状,计算带宽影响将非常高。
[0043]在框406,执行基于最佳宏块的分区。
[0044]在框408,对确定的最佳形状或宏块执行分数搜索或运动估计。最佳形状或宏块是在分数运动估计中检查的唯一形状。在分数运动估计过程中,计算最佳形状的子形状,以及最佳整数宏块或形状。因为这些像素被主要形状和子形状共享,所以获取这些像素不需要额外存储器;因为主要形状的绝对差值的总和(SAD)对子形状是相同的,所以性能是相同的。
[0045]在框410,执行基于分数搜索的分区。如果子形状中的一个改善,那么,该记录(例如,形状数据库204)的对应的部分利用新子宏块或形状更新。
[0046]在框412,更新最佳整数宏块或形状的形状以及子宏块和形状。在分数搜索完成之后,再次进行形状分区判断。例如,16x8仍可以是最后一个宏块,但是有时,判断变为子形状中的一个,以实现更好的结果。在某些情况下,通过拆分块代替保持为较大的块,小分数运动提供好得多的压缩。因此,可以改善质量和压缩,而不会影响性能或带宽。
[0047]在示例实现的上面的描述中,为解释起见,阐述了特定的号码、材料配置,及其他细节,以便更好地说明如要求保护的本发明。然而,对本领域技术人员显而易见的是,可以使用与此处所描述的示例细节不同的细节来实施要求保护的发明。在其他情况下,省略了或简化了已知的特征,以阐明示例实现的描述。
[0048]发明人计划将所描述的示例实现作为主要示例。发明人不用这些示例实现来限制所附权利要求书的范围。相反,发明人设想,要求保护的发明也可以以其他方式利用其他当前的或未来的技术来实现。
[0049]如本申请中所使用的,术语“或”意指包括性“或”而非互斥性“或”。即,除非另有指定或从上下文可以清楚,否则“使用A或B”意指任何自然的包括性排列。S卩,如果X使用A ;X使用B^X使用A和B两者,则在任何以上情况下,都满足“X使用A或B。”此外,本申请中和所附权利要求书所使用的冠词“一”和“一个” 一般应解释为“一个或多个”,除非另有指定或从上下文将清楚是指单数形式。
[0050]这些过程可以示为逻辑流程图中一组框的集合,这表示可单独地用机械或与硬件、软件、和/或固件的组合来实现的一系列操作。在软件/固件的上下文中,这些框表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,这些指令在由这样的计算机的一个或多个处理器执行时使一个或多个处理器执行既定操作。
[0051]请注意,描述过程的次序并不旨在解释为限制,并且任何数目的所述过程框的可以按任何次序组合以实现各过程或可替代的过程。另外,在不偏离此处所描述的主题的精神和范围的情况下,可以从过程中删除单个的方框。
[0052]图5示出了根据本发明的示例系统500。在各实现中,系统500可以是媒体系统,但系统500不仅限于此情境。例如,系统500可被纳入到个人计算机(PC)、膝上计算机、超膝上型计算机、平板、触摸板、便携式计算机、手持式计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合式蜂窝电话/PDA、电视机、智能设备(例如智能电话、智能平板计算机或智能电视机)、移动互联网设备(MID)、发消息设备、数据通信设备等中。
[0053]在各实现中,系统500包括耦合到显示器520的平台502。平台502可接收来自内容设备的内容,如内容服务设备530或内容传递设备540或其他类似的内容源。包括一个或多个导航特征的导航控制器550可以被用来与例如平台502和/或显示器520进行交互。下面将更详细地描述这些组件中的每一个。
[0054]在各实现中,平台502可以包括芯片组505、处理器510、存储器512、存储514、图形子系统515、应用程序516、和/或无线电518的任何组合。芯片组505可以在处理器510、存储器512、存储设备514、图形子系统515、应用程序516和/或无线电518之间提供相互通信。例如,芯片组505可包括能够提供与存储514的相互通信的存储适配器(未示出)。
[0055]处理器510可以实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、x86指令集兼容处理器、多核,或任何其他微处理器或中央处理单元(CPU)。在各实现中,处理器510可以是双核处理器、双核移动处理器等等。
[0056]存储器512可以实现为易失性存储器设备,诸如,但不仅限于,随机存取存储器(RAM)、动态随机存取存储器(DRAM),或静态RAM(SRAM)。
[0057]存储514可实现为非易失性存储设备,例如但不限于,磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附属存储设备、闪存、电池后备SDRAM(同步DRAM)和/或网络可访问存储设备。在各实现中,存储器514可以包括例如在包括多个硬盘驱动器时用于提高存储器性能或对有价值的数字媒体的增强的保护的技术。
[0058]图形子系统515可执行对例如静止图像或视频的图像的处理以供显示。图形子系统515可以例如是图形处理单元(GPU)或视觉处理单元(VPU)。模拟或数字接口可用于通信地耦合图形子系统515和显示器520。例如,接口可以是高清晰度多媒体接口、显示端口(DisplayPort)、无线HDMI和/或无线HD兼容技术中的任何一个。图形子系统515可以被集成到处理器510或芯片组505中。在一些实现中,图形子系统515可以是可通信地耦合到芯片组505的独立卡。
[0059]此处所描述的图形和/或视频处理技术可以以各种硬件体系结构来实现。例如,图形和/或视频功能可被集成在芯片组中。替代地,可以使用单独的图形和/或视频处理器。作为再一个实现,可以通过通用处理器(包括多核处理器)来提供图形和/或视频功能。在进一步的实施例中,功能可以在消费电子广品中实现。
[0060]无线电装置518可以包括能够使用各种合适的无线通信技术传输和接收信号的一个或多个无线电装置。这样的技术可以涉及跨一个或多个无线网络的通信。示例无线网络包括(但不仅限于)无线局域网(WLAN)、无线个人局域网(WPAN)、无线城域网(WMAN)、蜂窝网络,以及卫星网络。在跨这样的网络的通信中,无线电518可以根据任何版本的一个或多个适用的标准来操作。
[0061]在各实现中,显示器520可以包括任何电视机类型监视器或显示器。显示器520可以包括,例如,计算机显示器屏幕、触摸屏显示器、视频监视器、类似于电视机的设备,和/或电视机。显示器520可以是数字和/或模拟的。在各实现中,显示器520可以是全息显示器。此外,显示器520还可以是可接收视觉投影的透明表面。这样的投影可以传达各种形式的信息、图像,和/或对象。例如,这样的投影可以是用于移动增强的现实(MAR)应用程序的视觉覆盖层。在一个或多个软件应用程序516的控制下,平台502可以在显示器520上显示用户界面522。
[0062]在各实现中,内容服务设备530可以由任何国家的、国际的和/或独立的服务托管(host),并由此可以被平台502例如通过因特网来访问。内容服务设备530可耦合到平台502和/或显示器520。平台502和/或内容服务设备530可耦合到网络560以向网络560传递媒体信息并传递来自网络560的媒体信息(例如,发送和/或接收)。内容传递设备540也可耦合到平台502和/或显示器520。
[0063]在各实现中,内容服务设备530可以包括有线电视盒、个人计算机、网络、电话、启用因特网的设备或能够分发数字信息和/或内容的电器,以及能够通过网络560或直接在内容提供商和平台502和/或显示器520之间单方向地或双向地传递内容的任何其他类似的设备。将能理解,内容可经由网络560单向和/或双向地传递到和传递自系统500中的各组件中的任一个和内容提供者。内容的示例可以包括任何媒体信息,包括,例如,视频、音乐、医疗和游戏信息等等。
[0064]内容服务设备530可以接收内容,诸如有线电视节目,包括媒体信息、数字信息和/或其他内容。内容提供者的例子可包括任何有线或卫星电视或无线电,或者互联网内容提供者。所提供的示例不以任何方式限制根据本发明的各实现。
[0065]在各实现中,平台502可以从具有一个或多个导航特征的导航控制器550接收控制信号。控制器550的导航特征可以被用来,例如,与用户界面522进行交互。在各实施例中,导航控制器550可以是指示设备,该指示设备可以是计算机硬件组件(具体地,人机接口设备),可使用户向计算机中输入空间(例如,连续的和多维)数据。诸如图形用户界面(GUI)、电视机和监视器之类的许多系统可使用户使用物理手势控制并向计算机或电视机提供数据。
[0066]可以通过指针、光标、焦点环或显示在显示器上的其他可视指示器,在显示器(例如,显示器520)上复制控制器550的导航特征的移动。例如,在软件应用516的控制下,位于导航控制器550上的导航特征可以被映射到例如用户界面522上显示的虚拟导航特征。在各实施例中,控制器550可以不是单独的组件,而是可以集成到平台502和/或显示器520中。然而,本发明不仅限于在所示出的或此处所描述的上下文中的元件。
[0067]在各实现中,驱动程序(未示出)可以包括允许用户利用触摸按钮在初始启动之后(在启用时)立即打开和关闭平台502的技术,类似于电视机。程序逻辑可以允许平台502甚至在平台被“关闭”时向媒体适配器或其他内容服务设备530或内容分发设备540流式播放内容。另外,芯片组505还可以包括,例如,对于5.1环绕声音频和/或高清晰度7.1环绕声音频的硬件和/或软件支持。驱动器可包括用于集成的图形平台的图形驱动器。在一些实施例中,图形驱动器可包括快速外围组件互连(PCI)图形卡。
[0068]在各实现中,可以集成系统500所示出的组件的任何一个或更多。例如,平台502和内容服务设备530可被集成,或者平台502和内容传递设备540可被集成,或者平台502、内容服务设备530和内容传递设备540可被集成。在各实施例中,平台502和显示器520可以是集成单元。例如,显示器520和内容服务设备530可被集成,或者显示器520和内容传递设备540可被集成。这些示例不限制本发明。
[0069]在各实施例中,系统500可实现为无线系统、有线系统或两者的组合。当实现为无线系统时,系统500可包括适于在无线共享介质上通信的组件和接口,例如一个或多个天线、发射机、接收机、收发机、放大器、滤波器、控制逻辑等等。无线共享媒体的一个例子可包括无线频谱的一些部分,例如RF频谱等。当实现为有线系统时,系统500可以包括适用于通过有线通信介质进行通信的组件和接口,诸如输入/输出(I/O)适配器、将I/O适配器与相应的有线通信介质连接的物理连接器、网络接口卡(NIC)、光盘控制器、视频控制器、音频控制器等等。有线通信介质的示例可包括线路、电缆、金属导线、印刷电路板(PCB)、背板、交换结构、半导体材料、双绞线、同轴电缆、光纤等等。
[0070]平台502可建立一个或多个逻辑或物理通道以交换信息。信息可以包括媒体信息和控制信息。媒体信息可以是指表示给用户的内容的任何数据。内容的示例可以包括,例如,来自语音谈话、视频会议、流式视频、电子邮件消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等等的数据。来自语音会话的数据可以是,例如,语音信息、静默时间长度、背景噪声、舒适噪声、音调等等。控制信息可以是指表示用于自动化系统的命令、指令或控制字的任何数据。例如,控制信息可以用来通过系统路由媒体信息,或指示节点以预先确定的方式处理媒体信息。然而,各实施例不限于图5中所示出的或所描述的上下文中的元件。
[0071]如前所述,系统500可表现为不同的物理样式或形状因数。图6示出其中可体现系统500的小尺寸因数设备600的实现。在一些实施例中,例如设备600可被实现为具有无线能力的移动计算设备的一部分。移动计算设备可以是指具有处理系统和移动电源(诸如,例如,一个或多个电池)的任何设备。
[0072]如前所述,移动计算设备的例子可包括个人计算机(PO、膝上计算机、超膝上型计算机、平板计算机、触摸板、便携式计算机、手持式计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合式蜂窝电话/PDA、电视机、智能设备(例如智能电话、智能平板计算机或智能电视机)、移动互联网设备(MID)、消息收发设备、数据通信设备等。
[0073]移动计算设备的例子也可包括被配置成由人们佩戴的计算机,例如手腕式计算机、手指式计算机、戒指式计算机、眼镜式计算机、皮带夹计算机、腕带式计算机、鞋式计算机、服饰式计算机以及其它可佩戴计算机。例如,在各实施例中,移动计算设备可以实现为能够执行计算机应用程序以及语音通信和/或数据通信的智能电话。尽管已经以实现为智能电话的移动计算设备为例描述了一些实施例,但可理解其他实施例也可利用其他无线移动计算设备来实现。在此上下文中,实施例不受限制。
[0074]如图6所示,设备600可以包括外壳602、显示器604、输入/输出(I/O)设备606以及天线608。设备600还可以包括导航特征612。显示器604可以包括用于显示适合于移动计算设备的信息的任何合适的显示单元。I/O设备606可以包括用于向移动计算设备中输入信息的任何合适的I/O设备。I/O设备606的例子可包括字母数字键盘、数字键区、触摸垫、输入键、按钮、开关、摇臂开关、麦克风、扬声器、语音识别设备和软件等等。信息还可以通过麦克风(未示出)输入到设备600中。这样的信息可以通过语音识别设备(未示出)来数字化。在此上下文中,实施例不受限制。
[0075]各个实施例可利用硬件部件、软件部件或两者的组合来实现。硬件部件的例子可包括处理器、微处理器、电路、电路元件(例如晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。软件的示例可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、程序、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或它们的任意组合。判断一个实施例是否使用硬件元件或软件元件来实现可以根据任意数量的因素而不同,如所希望的计算速率、功率级别、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度及其他设计或性能约束。
[0076]至少一个实施例的一个或多个方面可以由存储在机器可读介质上的表征性指令来实现,该指令表示处理器中的各种逻辑,该指令在被机器读取时使得该机器制作用于执行本文所述的技术的逻辑。被称为“IP核”的这样的表示可以存储在有形的机器可读介质中,并提供给各种客户或生产设施,以加载到实际制造逻辑或处理器的制造机器中。
[0077]尽管参考各种实现描述了此处所阐述的某些特征,但是,此描述不旨在以限制性方式来解释。因此,对本发明涉及的所属【技术领域】的专业人员显而易见的对此处所描述的实现的各种修改,以及其他实现被认为在本发明的精神和范围内。
[0078]在特定实施例的上下文中详细描述了根据本发明的实现。这些实施例只是说明性的,而不作出限制。许多变化、修改、添加以及改善都是可能的。因此,此处所描述的组件的多个实例可以作为单个实例来提供。各个组件、操作以及数据存储之间的边界在某种程度上是任意的,在特定说明性配置的上下文中示出了特定操作。功能的其他分配也是可以的,并可以在随后的权利要求书的范围内。最后,在各种配置中作为分离的组件呈现的结构和功能可以实现为组合的结构或组件。这些及其他变化、修改、添加以及改善可以在如随后的权利要求书所定义的本发明的范围内。
[0079]下列示例涉及进一步的实施例。一种设备,包括:一个或多个处理器;被配置到处理器的存储器;被配置到处理器和存储器的编码器,包括:对于参考帧的最佳宏块执行整数搜索的整数运动估计器组件;基于最佳宏块要更新的形状的数据库;提供最佳宏块的分区组件;以及,对最佳宏块的当前像素执行分数预测,并判断是否对最佳宏块的子宏块发生了改善的分数运动估计器组件,其特征在于,如果确定了改善,则对于新子宏块的形状,更新形状的数据库。
[0080]在某些实现中,一种设备,其特征在于,整数运动估计器组件从一个或多个视频源接收视频数据。
[0081]在某些实现中,一种设备,其特征在于,整数运动估计器组件首先基于视频编码标准的最大的宏块,执行整数搜索。
[0082]在某些实现中,一种设备,其特征在于,整数运动估计器组件至少基于带有最低失真的宏块,搜索最佳宏块。
[0083]在某些实现中,一种设备,其特征在于,分区器基于分数估计,执行另一分区以提供最佳宏块。
[0084]在某些实现中,一种设备,其特征在于,分数运动估计器组件检查关于子宏块的最佳宏块的基础像素。
[0085]在某些实现中,一种设备,其特征在于,分数运动估计器组件交互地内插分数位置,以确定关于最佳宏块的子宏块的改善。
[0086]在某些实现中,一种设备,其特征在于,形状数据库包括不同的宏块和子宏块的不同的数据库,其特征在于,形状的数据库被同时更新。
[0087]在某些实现中,一种设备,其特征在于,基于包括失真的一个或多个度量来确定改盡口 ο
[0088]在某些实现中,一种设备,其特征在于,编码器执行编码,该编码器是中央处理单元的一部分、集成电路芯片组的一部分或单独的组件。
[0089]一种视频编码器,包括:对于参考帧的最佳宏块执行整数估计的整数运动估计器组件;基于最佳宏块要更新的形状的数据库;提供最佳宏块的分区组件;以及,对最佳宏块执行分数估计,并判断在最佳宏块上是否发生了改善的分数运动估计器组件,其特征在于,如果确定了改善,则对于最佳宏块的所有形状和子形状,更新形状的数据库。
[0090]在某些实现中,一种视频编码器,其特征在于,整数运动估计器组件接收将被编码和压缩的视频数据。
[0091]在某些实现中,一种视频编码器,其特征在于,整数运动估计器组件首先基于视频编码标准的最大的宏块执行整数搜索,以搜索最佳宏块。
[0092]在某些实现中,一种视频编码器,其特征在于,整数运动估计器组件至少基于带有最低失真的宏块来搜索最佳宏块。
[0093]在某些实现中,一种视频编码器,其特征在于,分区器基于分数预测来提供最佳宏块。
[0094]在某些实现中,一种视频编码器,其特征在于,分数运动估计器组件检查关于子宏块的最佳宏块的基础像素。
[0095]在某些实现中,一种视频编码器,其特征在于,分数运动估计器组件交互地内插分数位置,以确定关于最佳宏块的子宏块的改善。
[0096]在某些实现中,一种视频编码器,其特征在于,形状数据库包括不同的宏块和子宏块的不同的数据库,其特征在于,形状的数据库被同时更新。
[0097]在某些实现中,一种视频编码器,其特征在于,基于包括失真的一个或多个度量来确定改善。
[0098]在某些实现中,一种视频编码器,其特征在于,编码器执行编码,该编码器是中央处理单元、集成电路芯片组的一部分或单独的组件。
[0099]—种分数运动估计的方法,包括:对参考视频帧执行整数搜索;确定参考视频帧的最佳形状;更新最佳形状的所有形状;对最佳形状和最佳形状的子形状执行分数搜索;判断是否在最佳形状上的子形状中的任何一个中发生改善;如果确定了对最佳形状的改善,则更新新子形状的所有形状;以及,如果确定了对最佳形状的改善,则将最佳形状改变为新子形状。
[0100]在某些实现中,一种方法,其特征在于,执行整数估计首先基于视频编码标准的最大的宏块。
[0101]在某些实现中,一种方法,其特征在于,参考视频帧来自于要被压缩和编码的数字视频源。
[0102]在某些实现中,一种方法,其特征在于,对一个或多个数据库同时更新最佳形状和新子形状的所有形状。
[0103]在某些实现中,一种方法,其特征在于,执行分数搜索包括在分数搜索过程中改变模式选择和形状尺寸。
[0104]在某些实现中,一种方法,其特征在于,基于下列标准之一执行分数搜索:高级视频编码(AVC)、活动图像专家小组2 (MPEG2)、可缩放的视频编码(SVC)以及高效率视频编码(HEVC)。
[0105]在某些实现中,一种方法,其特征在于,基于检查关于子形状的最佳形状的基础像素来判断是否产生改善。
[0106]在某些实现中,一种方法,其特征在于,判断是否产生改善包括分数位置的交互式内插,以确定关于最佳形状的子形状的改善。
[0107]在某些实现中,一种方法,其特征在于,判断是否产生改善基于包括帧的失真的一个或多个度量。
[0108]在某些实现中,一种方法,其特征在于,该方法是由编解码器执行的。
【权利要求】
1.一种设备,包括: 一个或多个处理器; 被配置到所述处理器的存储器; 被配置到所述处理器和存储器的编码器,包括: 整数运动估计器组件,用于执行整数搜索以搜索参考帧的最佳宏块; 基于所述最佳宏块要更新的形状的数据库; 用于提供所述最佳宏块的分区组件;以及, 分数运动估计器组件,用于对所述最佳宏块的当前像素执行分数预测,并判断是否发生对所述最佳宏块的子宏块的改善,其中如果确定了改善,则对于新子宏块的形状更新所述形状的数据库。
2.如权利要求1所述的设备,其特征在于,所述整数运动估计器组件从一个或多个视频源接收视频数据。
3.如权利要求1所述的设备,其特征在于,所述整数运动估计器组件首先基于视频编码标准的最大的宏块来执行所述整数搜索。
4.如权利要求1所述的设备,其特征在于,所述整数运动估计器组件至少基于带有最低失真的所述宏块来搜索所述最佳宏块。
5.如权利要求1所述的设备,其特征在于,所述分区器基于分数估计来执行另一分区以提供所述最佳宏块。
6.如权利要求1所述的设备,其特征在于,所述分数运动估计器组件检查关于所述子宏块的所述最佳宏块的基础像素。
7.如权利要求1所述的设备,其特征在于,所述分数运动估计器组件交互地内插分数位置,以确定关于所述最佳宏块的所述子宏块的改善。
8.如权利要求1所述的设备,其特征在于,所述形状的数据库包括不同的宏块和子宏块的不同的数据库,其中所述形状的数据库被同时更新。
9.如权利要求1所述的设备,其特征在于,基于包括失真的一个或多个度量来确定所述改善。
10.如权利要求1所述的设备,其特征在于,所述编码器执行编码,所述编码器是中央处理单元的一部分、集成电路芯片组的一部分或单独的组件。
11.一种视频编码器,包括: 整数运动估计器组件,用于执行整数估计以估计参考帧的最佳宏块; 基于所述最佳宏块来更新的形状的数据库; 用于提供所述最佳宏块的分区组件;以及, 分数运动估计器组件,用于对所述最佳宏块执行分数估计,并判断在所述最佳宏块上是否发生了改善,其中如果确定了所述改善,则对于所述最佳宏块的所有形状和子形状更新所述形状的数据库。
12.如权利要求11所述的视频编码器,其特征在于,所述整数运动估计器组件接收将被编码和压缩的视频数据。
13.如权利要求11所述的视频编码器,其特征在于,所述整数运动估计器组件首先基于视频编码标准的最大的宏块来执行所述整数搜索,以搜索所述最佳宏块。
14.如权利要求11所述的视频编码器,其特征在于,所述整数运动估计器组件至少基于带有最低失真的所述宏块来搜索所述最佳宏块。
15.如权利要求11所述的视频编码器,其特征在于,所述分区器基于所述分数估计来提供所述最佳宏块。
16.如权利要求11所述的视频编码器,其特征在于,所述分数运动估计器组件检查关于所述子宏块的所述最佳宏块的基础像素。
17.如权利要求11所述的视频编码器,其特征在于,所述分数运动估计器组件交互地内插分数位置,以确定关于所述最佳宏块的所述子宏块的改善。
18.如权利要求11所述的视频编码器,其特征在于,所述形状的数据库包括不同的宏块和子宏块的不同的数据库,其特征在于,所述形状的数据库被同时更新。
19.如权利要求11所述的视频编码器,其特征在于,基于包括失真的一个或多个度量来确定所述改善。
20.如权利要求11所述的视频编码器,其特征在于,所述视频编码器是中央处理单元的一部分、集成电路芯片组的一部分或单独的组件。
21.一种分数运动估计的方法,包括: 对参考视频帧执行整数搜索; 确定所述参考视频巾贞的最佳形状; 更新所述最佳形状的所有形状; 对所述最佳形状和所述最佳形状的子形状执行分数搜索; 判断在所述最佳形状上的子形状中的任何一个中是否发生了改善; 如果确定了对所述最佳形状的改善,则更新新子形状的所有形状;以及, 如果确定了对所述最佳形状的改善,则将所述最佳形状改变为所述新子形状。
22.如权利要求21所述的方法,其特征在于,所述执行整数估计首先基于视频编码标准的最大的宏块。
23.如权利要求21所述的方法,其特征在于,所述参考视频帧来自于要被压缩和编码的数字视频源。
24.如权利要求21所述的方法,其特征在于,在一个或多个数据库上同时更新所述最佳形状和所述新子形状的所有形状。
25.如权利要求21所述的方法,其特征在于,所述执行分数搜索包括在所述分数搜索过程中改变模式选择和形状尺寸。
26.如权利要求21所述的方法,其特征在于,基于下列标准之一执行分数搜索:高级视频编码(AVC)、活动图像专家小组2(MPEG2)、可缩放的视频编码(SVC),以及高效率视频编码(HEVC)。
27.如权利要求21所述的方法,其特征在于,所述判断是否产生所述改善基于检查关于子形状的所述最佳形状的基础像素。
28.如权利要求21所述的方法,其特征在于,所述判断是否产生所述改善包括分数位置的交互式内插以确定关于所述最佳形状的所述子形状的所述改善。
29.如权利要求21所述的方法,其特征在于,所述判断所述改善是否产生基于包括帧的失真的一个或多个度量。
30.如权利要求21所述的方法,其特征在于,所述方法由编解码器执行。
【文档编号】H04N19/533GK104247431SQ201280071900
【公开日】2014年12月24日 申请日期:2012年4月26日 优先权日:2012年4月20日
【发明者】李相熙, J·D·坦纳 申请人:英特尔公司

最新回复(0)