CN103167286B - 用于运动估计的详尽的子宏块形状候选保存和恢复协议 - Google Patents

用于运动估计的详尽的子宏块形状候选保存和恢复协议 Download PDF

Info

Publication number
CN103167286B
CN103167286B CN201210557197.XA CN201210557197A CN103167286B CN 103167286 B CN103167286 B CN 103167286B CN 201210557197 A CN201210557197 A CN 201210557197A CN 103167286 B CN103167286 B CN 103167286B
Authority
CN
China
Prior art keywords
search
search results
motion
resultants
macro block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210557197.XA
Other languages
English (en)
Other versions
CN103167286A (zh
Inventor
J·M·霍兰
J·D·坦纳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN103167286A publication Critical patent/CN103167286A/zh
Application granted granted Critical
Publication of CN103167286B publication Critical patent/CN103167286B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/533Motion estimation using multistep search, e.g. 2D-log search or one-at-a-time search [OTS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

包括使用视频编码器的运动搜索引擎来获得针对运动预测因子的搜索结果的系统、设备和方法,其中所述搜索结果包括针对源宏块的一组宏块和/或子宏块形状候选中的每一个的最佳运动矢量结果。所述引擎可以接着提供包括针对所有所述形状候选的运动矢量结果的所述搜索结果作为输出给搜索控制器。所述控制器当所述控制器请求所述引擎获得针对另一运动预测因子的第二搜索结果时,可以接着提供第一搜索结果返回到所述搜索引擎。当这样做时,所述引擎可以使用所述第一搜索结果作为使用其他运动预测因子执行运动搜索的初始条件。

Description

用于运动估计的详尽的子宏块形状候选保存和恢复协议
背景技术
基于时间预测的运动估计在高级视频编码器中是重要的处理。在运动估计中,可以搜索多个区域来找到用于时间的运动估计目的的最佳匹配。当这样做时,通常在各个预测因子(predictor)位置周围搜索局部区域,该预测因子位置可以是随机的,基于相邻宏块计算的或是基于其他方法的。但是,运动,尤其在高分辨率帧中,可能会超过有限的搜索范围一很大的量。此外,在复杂运动的情况下,宏块的一部分可以被分散在视频帧的不同部分中。能够更精确地捕捉广泛的和/或复杂的运动将提高压缩效率。
大多数基于软件的编码器基于个体预测因子执行运动搜索并且通常不是很有力或性能高效的。此外,大多数基于软件的编码器使用单一的块尺寸(例如16x16)进行搜索并且接着在有限的局部区域中检查其他块或子块形状。传统的基于硬件的运动估计引擎搜索有限尺寸(例如48x40)的固定块区域,但不利用从横跨多个固定区域执行的搜索中获得的信息。这种搜索引擎通常要么是孤立地获得针对单个区域的结果,要么从多个孤立的区域获得最佳调用。
附图说明
在本文中描述的材料通过示例而非限制的方法在附图中示出。为了说明的简单和清楚起见,在图中示出的元件不一定按比例绘制。例如,为清楚起见,一些元件的尺寸相对于其他元件可能被夸大。此外,在认为适当的情况下,已在图中重复的参考标记表示相应的或类似的元件。在附图中:
图1是示例性视频编码器系统的示意图;
图2是示例性运动估计模块的示意图;
图3是示例性运动估计场景的示意图;
图4是示出示例性运动搜索过程的流程图;
图5是示例性序列图的示意图;
图6是示例性搜索结果内容的示意图;
图7是示例性形状候选的示意图;
图8、9和10是示例性搜索结果内容的示意图;
图11是示例性系统的示意图;以及
图12示出了示例性设备,所有图根据本公开的至少一些实现来设置。
具体实施方式
现在参考附图描述一个或多个实施例或实施方式。虽然讨论了特定的配置和装置,但应当理解这样做仅用于说明目的。相关领域的技术人员将意识到在不脱离本描述的精神和范围的情况下,可以采用其他的配置和装置。对于相关领域的技术人员将是显而易见的是在本文中描述的技术和/或装置也可以被不同于本文所述的各种其他系统和应用采用。
虽然下面描述阐述了在架构上可以表现为例如像片上系统(SoC)架构的各种不同的实施方式,但是在本文中描述的技术和/或装置的实现没有被限制为特定的架构和/或计算系统,并且可以通过用于相似目的的任何架构和/或计算系统实现。例如,采用的各种架构,例如多个集成电路(IC)芯片和/或封装,和/或各种计算设备和/或消费电子(CE)设备,例如机顶盒、智能电话等,可以实现在本文中描述的技术和/或装置。此外,虽然下面的描述可能阐述了许多特定的细节,例如逻辑实现、系统组件的类型和相互关系、逻辑分区/集成选择等,但是没有这些特定的细节也可以实践声明的主题。在其他情况下,一些材料,例如像控制结构和全软件指令序列,可能不被详细地示出,以免混淆了在本文中公开的材料。
在本文中公开的材料可以用硬件、固件、软件或其任意组合来实现。在本文中公开的材料也可以被实现为存储在机器可读的介质上的指令,该指令可以被一个或多个处理器读取或执行。机器可读的介质可以包括用于存储或传送机器(例如,计算设备)可读形式的信息的任意介质和/或机构。例如,机器可读的介质可以包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光学存储介质;闪存设备;电的、光的、声的或其他形式的传播信号(例如,载波、红外信号、数字信号等)等。
在说明书中提到的“一个实施方式”、“实施方式”、“示例性实施方式”等表示描述的实施方式可以包括特定的特征、结构或特性,但是,并非每一个实施方式都一定包括所述特定的特征、结构或特性。此外,这些短语并不一定指同一实施方式。此外,当结合实施方式来描述特定的特征、结构或特性时,认为无论在本文中是否明确地描述,本领域技术人员在其知识范围内都可以结合其他实现来实现这些特征、结构或特性。
图1示出了根据本公开示例性视频编码器系统100。在各种实施方式中,视频编码器系统100可以被配置为根据一个或多个高级视频编解码标准进行视频压缩和/或实现视频编解码器,所述标准例如是H.264/AVC标准(见ISO/IEC JTC1和ITU-T,H.264/AVC–“Advanced video coding for generic audiovisual services,”ITU-T Rec.H.264和ISO/IEC14496-10(MPEG-4部分10),版本3,2005年)(在下文中:“AVC标准”)和其扩展,包括可伸缩视频编码(SVC)扩展(见Joint Draft ITU-T Rec.H.264和ISO/IEC14496-10/Amd.3Scalable video coding,7月5日,2007年)(在下文中为“SVC标准”)。虽然系统100和/或其他系统、方案或过程可以在AVC标准环境下在本文中被描述,但是本公开并不限制于任何特定的视频编码标准或规范。例如,在各种实施方式中,编码器系统100可以被配置为根据诸如VP8、MPEG-2、VC1(SMPTE421M标准)等其他高级视频标准进行视频压缩和/或实现视频编解码器,。
在各种实施方式中,视频和/或媒体处理器可以实现视频编码器系统100。系统100的各种组件可以用软件、固件和/或硬件,和/或其任意组合来实现。例如,系统100的各种组件可以至少部分通过例如计算系统或片上系统(SoC)的硬件提供,该硬件可以在计算设备、通信设备、消费电子(CE)设备等中被找到。例如,至少部分的系统100可以通过处理逻辑器执行的软件和/或固件指令来提供,所述处理逻辑器例如是一个或多个中央处理单元(CPU)处理器核、数字信号处理器(DSP)、专用集成电路(ASIC)、完全可编程门阵列(FPGA)等。
在编码器系统100中,当前视频帧102可以被提供给运动估计模块104。系统100可以用图像宏块为单位处理当前帧102。当编码器系统100以帧间预测模式(如图所示)操作时,运动估计模块104可以响应于当前视频帧102和参考视频帧106来产生残差信号。运动补偿模块108可以接着使用参考视频帧106和由运动估计模块104提供的残差信号来产生预测帧。所述预测帧可以接着从当前帧102中被减去并且结果被提供给变换和量化模块110。该块可以接着被转换(使用块转换)并且被量化来产生一组量化的变换系数,其可以被重排序并且通过熵编码模块112进行熵编码以产生压缩的比特流(例如,网络抽象层(NAL)比特流)的一部分,该比特流由视频编码器系统100提供。在各种实施方式中,由视频编码器系统100提供的比特流除了包括用于解码每一个块(例如,预测模式、量化参数、运动矢量信息等)的边信息(side information)之外可以包括熵编码系数,并且可以被提供给如在本文中描述的其他系统和/或设备以用于传送或存储。
变换和量化模块110的输出还可以被提供给去量化和反变换模块114。去量化和反变换模块114可以实现相反于由变换和量化模块110进行的操作,并且去量化和反变换模块114的输出可以结合预测帧来产生重建帧116。当编码器系统100以帧内预测模式被操作时,帧内预测模块118可以使用重建帧116来进行已知的帧内预测方案,该帧内预测方案将不在本文中更详细地描述。本领域的技术人员可以认识到视频编码器系统100可以包括其它组件(例如,过滤模块等),为了清楚起见,该组件没有在图1中描绘。
通常,通过划分帧102为一个或多个宏块的像片(slice)(例如,16x16的亮度样本及相应的色度样本),帧102可以被系统100分割来用于压缩。此外,每一个宏块也可以被划分为宏块分区和/或子宏块分区来用于运动补偿预测。如在本文中使用的,术语“块”可以指视频数据的宏块、宏块分区或子宏块分区。在根据本空开的各种实施方式中,宏块分区可以具有各种尺寸和形状,包括但不限于16x16、16x8、8x16,同时子宏块分区也可以具有各种尺寸和形状,包括但不限于8x8、8x4、4x8和4x4。但是,应当注意的是,前面所述的仅是示例性的宏块分区和子宏块分区形状和尺寸,本公开没有限制任何特定的宏块分区和子宏块分区的形状和/或尺寸。
在各种实施方式中,像片可以被设计为I(帧内的)、P(预测的)、B(双向预测的)、SP(切换P)或SI(切换I)类型的像片。一般来说,帧可以包括不同的像片类型。此外,帧可以被设计为非参考帧或参考帧二者之一,其可以被用于帧间预测的参考。在P像片中,可以通过估计在帧之间的运动来进行时间(而不是空间)预测。在B像片中,两个运动矢量,表示每一个宏块分区或子宏块分区的两个运动估计,其可以被用于时间预测或运动估计。此外,对于显示的顺序而言,可以根据发生在过去,或发生在未来的多个图片估计运动。在各种实施方式中,可以在宏块级别在各个宏块或子宏块分区级别,例如对应于上文提到的16x8、8x16、8x8、8x4、4x8或4x4形状和尺寸,来估计运动。
在各种实施方式中,针对每一个宏块或子宏块分区,不同的运动矢量可以被编码。在运动估计处理期间,一系列的子宏块形状候选(例如,16x16、16x8、8x16、8x8、8x4、4x8和4x4)可以被搜索,并且优化了在表示视频的必要的比特位的数量和结果的保真度之间的权衡的运动估计方案可以被实现。
在各种实施方式中,针对源宏块的时间预测可以通过在一个或多个参考帧中搜索多个目标区域来进行,该目标区域由与源宏块相关联的两个或多个预测因子确认。在各种实施方式中,预测因子可以被随机确定,可以基于相邻的宏块被确定,或可以基于各种其他已知方法被确定。
在各实施例中,根据本公开,当进行运动估计处理时,视频编码器系统100可以采用运动估计模块104使用多个宏块或子宏块分区形状候选来实现运动估计(ME)方案。图2示出了根据本公开的示例性ME模块200。通过非限制目的的示例,ME模块200可以由视频编码器系统100的模块104实现。
在各种实施方式中,ME模块200包括运动搜索控制器202和运动搜索引擎204。在各种实施例中,引擎204可以用硬件实现,而软件可以实现控制器202。例如,引擎204可以由ASIC逻辑实现而控制器202由例如一个或多个CPU内核的通用逻辑执行的软件指令提供。但是,本公开没有限制于这个方面并且控制器202和/或引擎204可以用硬件、固件和/或软件的任意组合来实现。
根据本公开,模块200可以使用控制器202和引擎204来实现各种运动估计方案。如将在下文更详细地描述的,控制器202可以结合引擎204针对在当前帧中将被预测的任意特定的源块进行多运动搜索。例如,对于给定的宏块,控制器202可以使用引擎204来进行一系列的运动搜索,其中使用不同的运动预测因子进行每一次搜索。图3示出了示例性的运动估计场景300,该场景300将被用于在本文中帮助讨论由模块200进行的运动搜索过程。
在各种实施方式中,当进行针对宏块的时间预测时,控制器202可以发出一系列的运动搜索调用到引擎204,其中每一个搜索调用可以由输入到引擎204的调用数据206指定。对于每一个搜索调用,调用数据206可以指定至少一个目标搜索区域和位置与源宏块位置。此外,如将在下文中进一步详细解释的,调用数据206可以包括到引擎204的输入消息或与到引擎204的输入消息相关联,其中输入消息可以包括之前由引擎204进行运动搜索的结果。
例如,参考示例性场景300,由控制器202发出的第一搜索调用可以对应于与在当前帧306中的源宏块304相关联的第一预测因子302(预测因子A)。调用数据206可以指定在帧306中的源宏块的位置,以及由第一预测因子302指向的在参考帧312中的目标区域310的位置308。搜索引擎204可以响应于搜索调用而接着在目标区域310执行运动搜索。当这样做时,引擎204可以获得的搜索结果包括针对源块304的各个子宏块和/或子宏块分区中的每一个的最佳运动矢量结果。
根据本公开,并且如将在下文中更详细地解释的,搜索引擎可以提供或流出(stream out)(208)第一搜索调用的搜索结果到控制器202,其中这些搜索结果包括针对每一个搜索的宏块和/或子宏块分区的至少一个最佳运动矢量结果。随后,由控制器202发出的第二搜索调用可以对应于与源块304相关联的第二预测因子314(预测因子B)。伴随第二搜索调用的调用数据206可以指定源块304的位置,以及由第二预测因子314指向的在帧312中第二目标区域318的位置316。搜索引擎204可以接着执行在第二目标区域318内的运动搜索。当这样做时,引擎204可以获得的搜索结果包括针对源块304的至少相同于响应第一调用进行运动搜索而采用的宏块和/或子宏块分区的最佳运动矢量。
根据本公开,如上文所述的并且将在下文中更详细地解释的,当发出第二运动搜索调用到引擎204时,控制器202可以提供或流入(stream in)(210)第一运动调用的搜索结果以输入消息形式给引擎204。作为回应,引擎204可以使用第一运动调用的搜索结果作为响应第二调用进行的运动搜索的初始条件。例如,引擎204可以将在第一调用的搜索结果中出现的每一个最佳运动矢量结果作为响应于第二搜索调用针对相应的宏块或子宏块分区进行运动的搜索的初始搜索候选。在各种实施方式中,流出208和流入210可以形成流进流出接口(stream in stream out interface)211。
随后,由控制器202发出的第三搜索调用可以对应于与源块304相关联的第三预测因子320(预测因子C)。伴随第三搜索调用的调用数据206可以指定源块304的位置,以及由第三预测因子320指向的在帧312内的第三目标区域324的位置322。搜索引擎204可以接着执行在第三目标区域324中的运动搜索。当这样做时,引擎204可以获得的搜索结果包括针对源块304的至少相同于响应第二调用进行运动搜索而采用的宏块和/或子宏块分区的最佳运动矢量。如上所述,当发出第三运动搜索调用到引擎204时,控制器202可以提供或流入(210)第二运动调用的搜索结果以另一输入消息的形式给引擎204。作为回应,引擎204可以使用第二运动调用的搜索结果作为响应于第三调用进行的运动搜索的初始条件。例如,引擎204可以使用在第二调用的搜索结果中出现的每一个最佳运动矢量结果作为响应于第三搜索调用针对相应的宏块或子宏块分区进行的运动搜索的初始搜索候选。
此外,如将在下文更详细地解释的,引擎204可以使用随后的调用的搜索结果来更新前一调用的搜索结果。例如,第二调用的结果可以利用第一调用的结果来更新。更新的搜索结果可以接着以输入消息形式被提供给第三调用并且被用作第三运动搜索的初始条件。在各种实施方式中,使用第二调用的搜索结果来更新第一调用的搜索结果可以包括通过从针对源块302的每一个宏块和/或子宏块分区的第一和第二搜索结果中选择最佳运动矢量,组合搜索结果为全局搜索结果。类似地,第三调用的结果可以使用第一和第二调用的组合结果来更新。
控制器202和引擎204针对源块304的任意数量的其它预测因子(未示出)可以继续执行如上文所述的行动。当这样做时,引擎204执行的运动搜索可以基于连续更新的全局搜索结果,其在每一个运动搜索的终点流出到控制器202并且接着流回到引擎204来被用作基于下一预测因子的下一次运动搜索的初始候选。
虽然图3绘制了指向单个参考帧312的所有三个预测因子302、314和320,但是在各种实施方式中,不同的预测因子可以指向不同参考帧。此外,虽然图3绘制的场景300仅具有三个预测因子302、314和320,本公开并不限制对给定的宏块进行任意特定数量的运动搜索,并且在各种实施方式中,可以采用任意数量的运动预测因子。
图4示出了根据本公开的各种实施方式的示例性过程400的流程图。过程400可以包括如图4的一个或多个框402、404、406、408、410和412示出的一个或多个操作、功能或行动。通过非限制目的的示例,在本文中将参考图2的示例性运动估计模块200和图3的示例性场景300描述过程400。此外,并且也通过非限制目的的示例,在本文中将参考在图5中绘制的示例性序列图描述过程500。在各实施方式中,过程400可以形成在运动搜索控制器和运动搜索引擎之间的至少部分的保存和恢复协议。
过程400可以在框402开始,其中可以获得针对第一运动预测因子的搜索结果,其中第一搜索结果包括针对源宏块的多个宏块和/或子宏块分区中的每一个的第一运动矢量。在各种实施方式中,框402可以包括引擎204,其响应从控制器202接收的第一搜索调用而获得搜索结果。例如,控制器202可以向引擎204发出初始搜索调用502,其中该调用指定运动搜索使用预测因子302。引擎204可以接着使用预测因子303来在区域310中执行运动搜索,以产生用于各个宏块或子宏块分区,例如像16x8、8x16、8x8、8x4、4x8和/或4x4分区的运动矢量。
例如,图6根据本公开示出了搜索结果600的示例性内容,该内容可以来自对于一组示例性的宏块或子宏块分区或形状候选执行框402的结果。在各种实施方式中,搜索结果600包括对于每一组分区或形状候选604的失真分数602,每一个分数602对应于具有x组件606和y组件608的那个分区的最佳运动矢量结果。每一个运动矢量结果还可以与参考标识符(RefID)610相关联,该参考标识符指示由组件606和608指定的特定运动矢量结果指向的参考帧。
图7示出了在图6的示例中使用的各个已知的分区或形状候选604。如之前所述的,本公开并不限制根据本公开在运动搜索处理中采用的任意特定的尺寸、形状和/或宏块或子宏块分区或形状候选的组合。因此,例如,在各种实施方式中,除了和/或替代在结果600中示出的形状候选604,对于八个8x4子宏块分区、八个4x8子宏块分区和/或十六个4x4子宏块分区,也可以获得运动矢量结果。
在各种实施方式中,分数602可以对应于使用任意各种已知失真指标产生的分数。例如,分数602可以使用绝对差值总和(Sum of Absolute Differences,SAD)失真标准来产生,其中对于较小数值的分数602可以对应于具有较低失真的运动矢量结果。在各种实施方式中,分数602中的一个可以是对应于结果600的最佳运动矢量的最佳分数。例如,用于纯粹的说明目的,在结果600中的对于8x8子宏块分区的分数(如在图6中高亮示出的)可以对应于来自于执行框402的最佳运动矢量结果。
返回讨论图4,过程400可以在框404继续,其中第一搜索结果可以被提供为输出。在各种实施方式中,框404可以包括引擎204流出(504)所有的形状候选搜索结果(例如,结果600)作为给控制器202的输入,来用于在与额外的预测因子相关联的搜索调用中和/或用于进一步处理。
在框406,可以获得针对第二运动预测因子的第二搜索结果,其中第一搜索结果可以被用作使用第二运动预测因子来执行运动搜索的初始条件。在各种实施方式中,框406可以包括引擎204响应于从控制器202接收的第二搜索调用来获得搜索结果。例如,控制器202可以发出第二搜索调用506到引擎204,其中调用指定使用预测因子314进行运动搜索。此外,或者作为第二搜索调用506的一部分,或者在相关的输入消息508中,控制器202也可以提供第一搜索结果或将第一搜索结果流回到引擎204。
当针对至少相同于在框402采用的宏块或子宏块分区,例如像16x8、8x16、8x8、8x4、4x8或4x4分区,执行框406来产生第二组运动矢量结果时,引擎204可以接着使用预测因子314在区域318中执行运动搜索。图8示出了根据本公开搜索结果800的示例性内容,该内容来自对于形状候选604执行框406的结果。例如,用于纯粹的说明目的,在结果800中的子宏块分区8x8_2的分数(如高亮示出的)可以对应于在执行框406时的最佳运动矢量结果。在各种实施方式中,使用第一搜索结果作为在框406的初始条件可以包含使用针对每一个宏块和/或子宏块分区的第一运动矢量结果作为使用第二预测因子进行运动搜索的初始搜索候选。
在框408中,全局搜索结果可以通过组合第一搜索结果和第二搜索结果来产生。例如,在各种实施方式中,引擎204可以通过使用第一搜索结果更新第二搜索结果来执行框408,从而对于每一个分区或形状候选,引擎204可以通过比较来自框402的运动矢量结果与来自框406的运动矢量结果并且在更新的搜索结果中选择或保留具有最佳分数(例如,具有最低的SAD分数)的运动矢量结果,来确定最佳运动矢量搜索结果。例如,图9示出了根据本公开的全局搜索结果900的示例性内容,该内容可以来自针对形状候选604执行框408的结果。例如,全局结果900包括分别从执行框402和406获得的对应于在结果900中的子宏块分区8x8_0和8x8_2(如高亮示出的)的两个最佳运动矢量结果。
在各种实施方式中,对于不同形状候选的结果,例如结果900的分区8x8_0和8x8_2,可以具有不同的帧参考IDs610,其指示指向不同参考帧的相应的运动矢量。在各种实施方式中,根据本公开,通过将参考IDs加入到流入流出接口,对于每一个形状具有运动矢量和失真信息的相同接口也可以在多个参考帧中跨多个预测因子被发送。因此,根据本公开,流入流出接口的最终结果可以是来自多个参考和多个区域的复合。
过程400可以在框410继续,其中全局搜索结果可以被提供为输出。在各种实施方式中,框410可以包括引擎204流出(510)来自框408的所有形状候选的全局搜索结果(例如,全局结果900)作为给控制器202的输入,用于在与额外的预测因子相关联的搜索调用中和/或用于进一步处理。
过程400可以在框412得出结论,其中可以获得针对第三运动预测因子的第三搜索结果,其中获得第三搜索结果包括使用全局搜索结果作为使用第三运动预测因子执行运动搜索的初始条件。在各种实施方式中,框412可以包含引擎204响应于从控制器202接收的第三搜索调用而获取搜索结果。例如,控制器202可以发出第三搜索调用512到引擎204,其中调用指定了使用预测因子320进行运动搜索。此外,或者作为第三搜索调用512的一部分,或者在关联的输入消息514中,控制器202还可以提供或将全局搜索结果(例如,结果900)流回到引擎204。
在各种实施方式中,提供给运动引擎的输入消息(例如,消息508和514)可以是动态尺寸的。例如,与初始调用502相关联的输入消息在尺寸上可以是较小的,而输入消息508和514可以是较大的,因为之前的搜索结果被流入到运动引擎204。例如,在各种实施方式中,额外的分区或形状可以被加入到针对各个运动预测因子执行的运动搜索中。在这方面,多个流入或流入接口可以被采用,从而使动态的消息尺寸可以允许软件来更有效率地准备对于运动引擎的调用。
当针对至少相同于框406采用的宏块或子宏块分区,例如像16x8、8x16、8x8、8x4、4x8或4x4分区执行框412来产生第二组运动矢量结果时,引擎204可以接着使用预测因子320来在区域324中执行运动搜索。在各种实施方式中,使用全局搜索结果作为在框412的初始条件可以包含针对每一个宏块和/或子宏块分区使用全局运动矢量结果作为使用第三预测因子进行运动搜索的初始搜索候选。
引擎204可以接着更新全局结果并且将更新的全局结果流回到控制器202。虽然没有在图4中示出,但是在各种实施方式中,可以根据本公开进行类似于过程400的过程,该过程包括用于针对任意数量的运动预测因子执行运动搜索的类似的框。
在各种实施方式中,除了包括针对每一个分区的最佳运动矢量结果,接口的复制拷贝可以含有针对每一个宏块或子宏块分区的第二最佳或到第N最佳的运动矢量结果。例如,图10示出了根据本公开的搜索结果1000的示例性内容,其中结果1000包括针对每一个形状候选的最佳运动矢量结果1002和第二最佳运动矢量结果1004。
在各种实施方式中,第N最佳运动矢量结果(例如,结果1002和1004)可以被用于在若干可替换的形状候选中每一个之间出现差异很小的情况下,确定最佳的分区或形状候选。在各种实施方式中,包括第N最佳运动矢量结果的信息可以允许进一步的计算和/或进行优化,例如,通过执行量化或其他方法做出不仅仅是失真指标的模式决策。
虽然如在图4中示出的,示例性过程400的实现可以包括按所示顺序示出的所有框进行,但是本公开在这个方面并不限制,并且在各个示例中,过程400的实现可以包括仅执行示出的框的子集和/或按照不同于所示顺序的不同顺序执行。
此外,可以响应于由一个或多个计算机程序产品提供的指令来执行图4的框的任意一个或多个。这些程序产品可以包括提供指令的信号承载介质,当指令被例如处理器执行时,可以提供本文描述的功能。计算机程序产品可以用任意形式的计算机可读的介质来提供。因此,例如,响应于由计算机可读介质传给处理器的指令,包括一个或多个处理器核的处理器可以执行在图4中示出的一个或多个框。
如在本文描述的任意实施方式中使用的,术语“模块”指被配置为提供本文描述的功能的软件、固件和/或硬件的任意组合。软件可以体现为软件包、代码和/或指令集或指令,并且如在本文描述的任意实施方式中使用的“硬件”可以包括,例如单独的或其任意组合的硬连线电路、可编程电路、状态机电路和/或由可编程电路执行的存储指令的固件。模块可以共同地或单独地体现为构成例如集成电路(IC)、片上系统(SoC)等的更大系统的一部分的电路。
图11示出了根据本公开的示例性的系统1100。在各种实施方式中,系统1100可以是媒体系统,虽然系统1100并不限制于该环境。例如,系统1100可以被并入到个人计算机(PC)、笔记本电脑、超薄笔记本电脑、平板电脑、触控板、便携式计算机、手持式计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如智能手机、智能平板电脑或智能电视)、移动互联网设备(MID)、通讯设备、数据通信设备等。
在各种实施方式中,系统1100包括耦合到显示器1120的平台1102。平台1102可以从内容设备接收内容,内容设备可以是例如一个或多个内容服务设备1130或内容交付设备1140或其他类似的内容资源。导航控制器1150包括一个或多个导航特征,其可以被用于与例如平台1102和/或显示器1120进行交互。这些组件的每一个将在下文中更详细地描述。
在各种实施方式中,平台1102可以包括芯片组1105、处理器1110、存储器1112、存储1114、图形子系统1115、应用1116和/或无线电设备1118。芯片组1105可以提供在处理器1110、存储器1112、存储1114、图形子系统1115、应用1116和/或无线电设备1118之间的相互通信。例如,芯片组1105可以包括能够提供与存储1114相互通信的存储适配器(未示出)。
处理器1110可以用复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、兼容x86指令集的处理器、多核心,或任意其他的微处理器或中央处理单元(CPU)来实现。在各种实施方式中,处理器1110可以是一个或多个双核处理器,双核移动处理器等。
存储器1112可以被实现为易失性存储器设备,例如但不限于,随机访问存储器(RAM)、动态随机访问存储器(DRAM)或静态RAM(SAM)。
存储1114可以被实现为非易失性存储设备,例如但不限于磁盘设备、光盘驱动器、磁带驱动器,内部存储设备,附加的存储设备,闪存,电池备份SDRAM(同步DRAM)和/或网络可访问的存储设备。在不同的实施方式中,存储1114例如当包括多个硬盘驱动器时,可以包括提高存储性能增强保护用于有价值的数字媒体的技术。
图形子系统1115可以执行用于显示的例如静止或视频图像的处理。例如,图形子系统1115可以是图形处理单元(GPU)或视觉处理单元(VPU)。模拟的或数字的接口可以被用于可通信地耦合图形子系统1115和显示器1120。例如,接口可以是高清晰度多媒体接口、显示端口、无线HDMI和/或无线HD兼容技术。图形子系统1115可以被集成到处理器1110或芯片组1105。在一些实施方式中,图形子系统1115可以是可通信地耦合到芯片组1105的独立的卡。
本文描述的图形和/或视频处理技术可以用各种硬件架构实现。例如,图形和/或视频功能可以被集成到芯片组中。可替换地,分离的图形和/或视频处理器可以被使用。在另一实施方式中,图形和/或视频功能可以由包括多核处理器的通用处理器提供。在进一步的实施例中,该功能可以用消费电子设备来实现。
无线电设备1118可以包括使用各种适当的无线通信技术的一个或多个能够传送和接收信号的无线电设备。这种技术可以涉及跨一个或多个无线网络通信。示例性的无线网络包括(但并不限于)无线局域网路(WLAN)、无线个人区域网络(WPAN)、无线城域网(WMANs)、蜂窝网络和卫星网络。跨这些网络通信时,无线电设备1118可以根据一个或多个任意版本的适用标准操作。
在各种实施方式中,显示器1120可以包括任意电视类型的监视器或显示器。显示器1120可以包括,例如计算机显示屏幕、触摸屏显示器、视频监视器、类似电视设备和/或电视。显示器1120可以是数字和/或模拟的。在各种实施方式中,显示器1120可以是全息显示。并且,显示器1120可以是能接收视觉投影的透明表面。这些投影可以传达各种形式的信息、图像和/或对象。例如,这些投影可以是用于移动增强现实(MAR)应用程序的视觉叠加。在一个或多个软件应用程序1116的控制下,平台1102可以在显示器1120显示用户接口1122。
在各种实施方式中,一个或多个内容访问设备1130可以被任意国家的、国际的和/或独立的服务主办并且因而例如通过互联网对平台1102可用。一个或多个内容访问设备1130可以被耦合到平台1102和/或显示器1120。平台1102和/或一个或多个内容访问设备1130可以被耦合到网络1160来传输(例如,发送和/或接收)媒体信息到网络1160和从网络1160传输媒体信息。
在各种实施方式中,一个或多个内容访问设备1130可以包括有线电视盒、个人计算机、网络、电话、互联网启用的设备或能够交付数字信息和/或内容的装置,和能够通过网络1160或直接地在内容提供者和平台1102和/显示器1120之间单向地或双向地传输内容的任意其他类似的设备。将理解的是,内容可以通过网络1160被单向地和/或双向地传输到在系统1100中的任意一个组件和内容提供者和从在系统1100中的任意一个组件和内容提供者传输。内容的示例可以包括任何媒体信息,包括,例如视频、音乐、医疗和游戏信息等。
一个或多个内容访问设备1130可以接收例如包括媒体信息、数字信息和/或其他内容的有线电视节目。内容提供者的示例可以包括任意有线或卫星电视或无线电或互联网内容提供者。提供的示例并不意味着限制根据本公开的任何方式的实现。
在各种实施方式中,平台1102可以从具有一个或多个导航特征的导航控制器1150接收控制信号。例如,控制器1150的导航特征可以被用于与用户接口1122互动。在实施例中,导航控制器1150可以是定位设备,其可以是允许用户输入空间(例如,连续的和多维的)数据到计算机的计算机硬件组件(具体来说,人机接口设备)。许多系统,例如图形用户界面(GUI)和电视和监视器,允许用户使用肢体语言控制并提供数据到计算机或电视。
控制器1150的导航特征的动作可以通过定位器、设备、聚焦环或显示在显示器上的其他视觉指示器被复制在显示器(例如,显示器1120)上。例如,在软件应用1116的控制下,位于导航控制器1150上的导航特征可以被映射为显示在例如用户接口1122上的虚拟导航特征。在实施例中,控制器1150可以不是单独的组件,但是可以被集成到平台1102和/或显示器1120中。但是,本公开并不限于本文中示出或描述的元件或环境。
在各种实施方式中,驱动器(未示出)可以包括使用户能够立即开启和关闭平台1102的技术,例如像电视在首次启动后,当要启动电视时,只需触摸按钮。即使当平台被“关闭”时,程序逻辑可以允许平台1102将内容流入到媒体适配器或一个或多个其他内容服务设备1130或一个或多个内容交付设备1140。此外,芯片组1105可以包括支持例如5.1环绕声音频和/或高清晰度7.1环绕声音频的硬件和/或软件。驱动器可以包括用于综合的图形平台的图形驱动器。在实施例中,图形驱动器可以包括外围组件互连(PCI)Express图形卡。
在各种实施方式中,在系统1100中示出的任意一个或多个组件可以被集成。例如像平台1102和一个或多个内容服务设备1130可以被集成,或平台1102和一个或多个内容交付设备1140可以被集成,或平台1102、一个或多个内容服务设备1130和一个或多个内容交付设备1140可以被集成。在各种实施例中,平台1102和显示器1120可以是集成的单元。例如,显示器1120和一个或多个内容服务设备1130可以被集成,或显示器1120和一个或多个内容交付设备1140可以被集成。这些示例并不意味着限制本公开。
在各种实施例中,系统1100可以用无线系统、有线系统或两者的组合来实现。当用无线系统实现时,系统1100可以包括适用于通过无线共享媒体,例如一个或多个天线、发射机、接收机、收发机、放大器、滤波器、控制逻辑等进行通信的组件和接口。无线共享媒体的示例可以包括例如RF频谱等的无线频谱部分。当用有线系统实现时,系统1100可以包括适用于通过有线通信媒体,例如输入/输出(I/O)适配器、使用相应的有线通信介质连接I/O适配器的物理连接器、网络接口卡(NIC)、磁盘控制器、视频控制器、音频控制器等。有线通信介质的示例可以包括导线、电缆、金属引线、印刷电路板(PCB)、底板、交换光纤、半导体材料、双绞线、同轴电缆、光纤等。
平台1102可以建立一个或多个逻辑的或物理的频道来传输信息。信息可以包括媒体信息和控制信息。媒体信息可以指用于用户表示内容的任意数据。内容的示例可以包括,例如来自语音对话、视频会议、流媒体视频、电子邮件(“电子邮件”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文字等的数据。来自语音对话的数据可以是,例如语音信息、静默时段、背景噪声、舒适噪声、音调等。控制信息可以指表示用于自动化系统的命令、指令或控制字的任何数据。例如,控制信息可以被用来通过系统路由媒体信息,或指示节点以预定义的方式处理媒体信息。但是实施例并不限制在图11中示出的或描述的元件或环境。
如上所述,系统1100可以体现在各种物理风格或外形因素中。图12示出了小的外形因素设备1200的实现,在其中体现了系统1100。在实施例中,例如,设备1200可以用具有无线功能的移动计算设备来实现。移动计算设备可以指具有处理系统和例如像一个或多个电池的移动电力来源或供给的任意设备。
如上文所述,移动计算设备的示例可以包括个人计算机(PC)、笔记本电脑、超薄笔记本电脑、平板电脑、触控板、便携式计算机、手持式计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如智能手机、智能平板电脑或智能电视)、移动互联网设备(MID)、通讯设备、数据通信设备等。
移动计算设备的示例还可以包括被安排来由人佩戴的计算机,例如手腕计算机、手指计算机、戒指计算机、眼镜计算机、皮带夹计算机、臂带计算机、鞋计算机、服装计算机和其它可以佩带的计算机。在各种实施例中,例如,移动计算设备可以用能够执行计算机应用以及语音通信和/或数据通信的智能电话来实现。虽然一些实施例通过示例的方式描述用智能电话实现的移动计算设备,但是应理解使用其他无线移动计算设备同样可以实现其他的实施例。实施例并不限制于该环境。
如在图12中示出的,设备1200可以包括壳体1202、显示器1204、输入/输入(I/O)设备1206和天线1208。设备1200还可以包括导航功能1212。显示器1204可以包括用于显示信息适用于移动计算设备的任意适当的显示单元。I/O设备1206可以包括任意适当的用于输入信息到移动计算设备的I/O设备。用于I/O设备1206的示例可以包括字母数字键盘、数字小键盘、触控板、输入键、按钮、开关、摇杆开关、麦克风、扬声器、语音识别设备和软件等。信息还可以通过麦克风(未示出)被输入到设备1200。这些信息可以被语音识别设备(未示出)数字化。实施例并不限制于该环境。
可以使用硬件元件、软件元件或两者的组合来实现各种实施例。硬件元件的例子可包括处理器、微处理器、电路、电路元件(如晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件的例子可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号,或它们的任意组合。确定是否使用硬件元件和/或软件元件来实现实施例可根据任何数量的因素而改变,所述因素例如,期望的计算速率、功率级别、热容忍性、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其它设计或性能约束。
至少一个实施例的一个或多个方面可以用存储在机器可读的介质上的指令来实现,所述指令表示在处理器中的各种逻辑,当所述指令被机器读取时致使机器制造逻辑来执行本文描述的技术。这些表示,被称为“IP核心”可能被存储在有形的、机器可读的介质上并且被提供给各种客户或生产设施来加载实际构造逻辑或过程的制造机器。
虽然已经参考各种实现描述了在本文中阐述的某些特征,但是该描述并不意图以限制性的含义来解释。因此,对于本公开所属领域中的技术人员来说显而易见的是在本文中描述的实现的各种修改以及其它实现被认为在本公开的精神和范围内。

Claims (26)

1.一种计算机实现的运动估计方法,包括:
在视频编码器的运动搜索引擎:
通过在由第一运动预测因子指向的第一目标区域内执行运动搜索,获得针对所述第一运动预测因子的第一搜索结果,所述第一搜索结果包括针对源宏块的多个宏块和/或子宏块分区中的每一个的第一运动矢量结果;
提供所述第一搜索结果作为输出;以及
通过在由第二运动预测因子指向的第二目标区域内执行运动搜索,获得针对所述第二运动预测因子的第二搜索结果,所述第二搜索结果包括针对所述源宏块的多个宏块和/或子宏块分区中的每一个的第二运动矢量结果,其中,获得所述第二搜索结果包括使用所述第一搜索结果作为使用所述第二运动预测因子执行所述运动搜索的初始条件。
2.根据权利要求1所述的方法,还包括:
通过组合所述第一搜索结果和所述第二搜索结果来产生全局搜索结果。
3.根据权利要求2所述的方法,其中,组合所述第一搜索结果和所述第二搜索结果包括针对所述源宏块的所述宏块和/或子宏块分区中的每一个,从所述第一运动矢量结果和所述第二运动矢量结果中选择最佳运动矢量。
4.根据权利要求1所述的方法,其中,使用所述第一搜索结果作为初始条件包括使用针对所述宏块和/或子宏块分区中的每一个的所述第一运动矢量结果作为使用所述第二运动预测因子的所述运动搜索的初始搜索候选。
5.根据权利要求1所述的方法,其中,所述第一搜索结果还包括针对所述源宏块的所述宏块和/或子宏块分区中的每一个的第三运动矢量结果。
6.根据权利要求5所述的方法,其中,所述第一运动矢量结果包括最佳运动矢量结果,并且其中所述第三运动矢量结果包括第二最佳运动矢量结果。
7.根据权利要求1所述的方法,其中,获得所述第一搜索结果包括响应于从运动搜索控制器接收的第一搜索调用而获得所述第一搜索结果,其中,提供所述第一搜索结果作为输出包括流化作为到所述运动搜索控制器的输入的所述第一搜索结果,其中获得所述第二搜索结果包括响应于第二搜索调用和从所述运动搜索控制器接收的第一输入消息二者而获得所述第二搜索结果,其中,所述第一输入消息包括所述第一搜索结果。
8.根据权利要求7所述的方法,还包括:
通过组合所述第一搜索结果和所述第二搜索结果来产生全局搜索结果;
流化作为到所述运动搜索控制器的输入的所述全局搜索结果;以及
获得针对第三运动预测因子的第三搜索结果,其中,获得所述第三搜索结果包括使用所述全局搜索结果作为使用所述第三运动预测因子执行运动搜索的初始条件。
9.根据权利要求8所述的方法,其中,获得所述第三搜索结果包括响应于第三搜索调用和从所述运动搜索控制器接收的第二输入消息来获得所述第三搜索结果,其中所述第二输入消息包括所述全局搜索结果。
10.根据权利要求9所述的方法,其中,所述第二输入消息大于所述第一输入消息。
11.根据权利要求1所述的方法,其中,所述第一运动预测因子与第一参考帧相关联,并且其中所述第二运动预测因子与不同于所述第一参考帧的第二参考帧相关联。
12.一种运动估计装置,包括:
在视频编码器的运动搜索引擎:
用于通过在由第一运动预测因子指向的第一目标区域内执行运动搜索,获得针对所述第一运动预测因子的第一搜索结果的单元,所述第一搜索结果包括针对源宏块的多个宏块和/或子宏块分区中的每一个的第一运动矢量结果;
用于提供所述第一搜索结果作为输出的单元;以及
用于通过在由第二运动预测因子指向的第二目标区域内执行运动搜索,获得针对所述第二运动预测因子的第二搜索结果的单元,所述第二搜索结果包括针对所述源宏块的多个宏块和/或子宏块分区中的每一个的第二运动矢量结果,其中,获得所述第二搜索结果包括使用所述第一搜索结果作为使用所述第二运动预测因子执行所述运动搜索的初始条件。
13.根据权利要求12所述的装置,还包括:
用于通过组合所述第一搜索结果和所述第二搜索结果产生全局搜索结果的单元。
14.根据权利要求13所述的装置,其中,组合所述第一搜索结果和所述第二搜索结果包括针对所述源宏块的所述宏块和/或子宏块分区中的每一个,从所述第一运动矢量结果和所述第二运动矢量结果中选择最佳运动矢量。
15.根据权利要求12所述的装置,其中,使用所述第一搜索结果作为初始条件包括使用针对所述宏块和/或子宏块分区中的每一个的所述第一运动矢量结果作为使用所述第二运动预测因子的所述运动搜索的初始搜索候选。
16.根据权利要求12所述的装置,其中,所述第一搜索结果还包括针对所述源宏块的所述宏块和/或子宏块分区中的每一个的第三运动矢量结果。
17.根据权利要求16所述的装置,其中,所述第一运动矢量结果包括最佳运动矢量结果,并且其中所述第三运动矢量结果包括第二最佳运动矢量结果。
18.根据权利要求12所述的装置,其中,获得所述第一搜索结果包括响应于从运动搜索控制器接收的第一搜索调用来获得所述第一搜索结果,其中,提供所述第一搜索结果作为输出包括流化作为到所述运动搜索控制器的输入的所述第一搜索结果,其中获得所述第二搜索结果包括响应于第二搜索调用和从所述运动搜索控制器接收的第一输入消息二者来获得所述第二搜索结果,其中,所述第一输入消息包括所述第一搜索结果。
19.根据权利要求18所述的装置,还包括:
用于通过组合所述第一搜索结果和所述第二搜索结果产生全局搜索结果的单元;
用于流化作为到所述运动搜索控制器的输入的所述全局搜索结果的单元;以及
用于获得针对第三运动预测因子的第三搜索结果的单元,其中,获得所述第三搜索结果包括使用所述全局搜索结果作为使用所述第三运动预测因子执行运动搜索的初始条件。
20.根据权利要求19所述的装置,其中,获得所述第三搜索结果包括响应于第三搜索调用和从所述运动搜索控制器接收的第二输入消息来获得所述第三搜索结果,其中所述第二输入消息包括所述全局搜索结果。
21.一种运动估计装置,包括:
处理器,被配置为:
通过在由第一运动预测因子指向的第一目标区域内执行运动搜索,获得针对所述第一运动预测因子的第一搜索结果,所述第一搜索结果包括针对源宏块的多个宏块和/或子宏块分区中的每一个的第一运动矢量结果;
提供所述第一搜索结果作为输出;以及
通过在由第二运动预测因子指向的第二目标区域内执行运动搜索,获得针对所述第二运动预测因子的第二搜索结果,所述第二搜索结果包括针对所述源宏块的多个宏块和/或子宏块分区中的每一个的第二运动矢量结果,其中,获得所述第二搜索结果包括使用所述第一搜索结果作为使用所述第二运动预测因子执行所述运动搜索的初始条件。
22.根据权利要求21所述的装置,其中,所述处理器还被配置为:
通过组合所述第一搜索结果和所述第二搜索结果产生全局搜索结果。
23.根据权利要求21所述的装置,其中,所述第一搜索结果还包括针对所述源宏块的所述宏块和/或子宏块分区中的每一个的第三运动矢量结果。
24.一种运动估计系统,包括:
发送编码的视频数据的天线;以及
视频编码器,其中,所述视频编码器可通信地耦合到所述天线并且其中,所述视频编码器用于至少部分通过以下步骤产生所述编码的视频数据,
通过在由第一运动预测因子指向的第一目标区域内执行运动搜索,获得针对所述第一运动预测因子的第一搜索结果,所述第一搜索结果包括针对源宏块的多个宏块和/或子宏块分区中的每一个的第一运动矢量结果;
提供所述第一搜索结果作为输出;以及
通过在由第二运动预测因子指向的第二目标区域内执行运动搜索,获得针对所述第二运动预测因子的第二搜索结果,所述第二搜索结果包括针对所述源宏块的多个宏块和/或子宏块分区中的每一个的第二运动矢量结果,其中,获得所述第二搜索结果包括使用所述第一搜索结果作为使用所述第二运动预测因子执行所述运动搜索的初始条件。
25.根据权利要求24所述的系统,其中,所述视频编码器还用于至少部分通过产生全局搜索结果来产生所述编码的视频数据,所述全局搜索结果是通过组合所述第一搜索结果和所述第二搜索结果产生的。
26.根据权利要求24所述的系统,其中,所述第一搜索结果还包括针对所述源宏块的所述宏块和/或子宏块分区中的每一个的第三运动矢量结果。
CN201210557197.XA 2011-12-19 2012-12-19 用于运动估计的详尽的子宏块形状候选保存和恢复协议 Active CN103167286B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/US2011/065726 WO2013095322A1 (en) 2011-12-19 2011-12-19 Exhaustive sub-macroblock shape candidate save and restore protocol for motion estimation
USPCT/US2011/065726 2011-12-19

Publications (2)

Publication Number Publication Date
CN103167286A CN103167286A (zh) 2013-06-19
CN103167286B true CN103167286B (zh) 2017-05-17

Family

ID=48589995

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210557197.XA Active CN103167286B (zh) 2011-12-19 2012-12-19 用于运动估计的详尽的子宏块形状候选保存和恢复协议

Country Status (6)

Country Link
US (1) US20150016530A1 (zh)
EP (1) EP2795903A4 (zh)
KR (1) KR101425286B1 (zh)
CN (1) CN103167286B (zh)
TW (1) TWI527439B (zh)
WO (1) WO2013095322A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10715818B2 (en) 2016-08-04 2020-07-14 Intel Corporation Techniques for hardware video encoding
CN115842912A (zh) 2018-08-04 2023-03-24 抖音视界有限公司 不同解码器侧运动矢量推导模式之间的交互
CN111010569B (zh) 2018-10-06 2023-02-28 北京字节跳动网络技术有限公司 Bio中的时间梯度计算的改善
US10944987B2 (en) 2019-03-05 2021-03-09 Intel Corporation Compound message for block motion estimation
US10855983B2 (en) 2019-06-13 2020-12-01 Intel Corporation Encoding video using two-stage intra search
CN116158077A (zh) * 2020-08-24 2023-05-23 华为技术有限公司 一种优化运动矢量的方法及其相关设备

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5668608A (en) * 1995-07-26 1997-09-16 Daewoo Electronics Co., Ltd. Motion vector estimation method and apparatus for use in an image signal encoding system
US6826294B1 (en) * 1999-03-05 2004-11-30 Koninklijke Philips Electronics N.V. Block matching motion estimation using reduced precision clustered predictions
US6519005B2 (en) * 1999-04-30 2003-02-11 Koninklijke Philips Electronics N.V. Method of concurrent multiple-mode motion estimation for digital video
JP2003143609A (ja) * 2001-08-21 2003-05-16 Canon Inc 画像処理装置、画像処理方法、記録媒体及びプログラム
US6925123B2 (en) * 2002-08-06 2005-08-02 Motorola, Inc. Method and apparatus for performing high quality fast predictive motion search
US7616692B2 (en) * 2003-09-07 2009-11-10 Microsoft Corporation Hybrid motion vector prediction for interlaced forward-predicted fields
US20060143674A1 (en) * 2003-09-19 2006-06-29 Blu Ventures, Llc Methods to adapt search results provided by an integrated network-based media station/search engine based on user lifestyle
CN103747263B (zh) * 2006-04-28 2017-03-01 株式会社Ntt都科摩 图像预测编码装置和方法以及图像预测解码装置和方法
US8213509B2 (en) * 2006-10-06 2012-07-03 Calos Fund Limited Liability Company Video coding on parallel processing systems
KR101356734B1 (ko) * 2007-01-03 2014-02-05 삼성전자주식회사 움직임 벡터 트랙킹을 이용한 영상의 부호화, 복호화 방법및 장치
US20080126278A1 (en) * 2006-11-29 2008-05-29 Alexander Bronstein Parallel processing motion estimation for H.264 video codec
US8743972B2 (en) * 2007-12-20 2014-06-03 Vixs Systems, Inc. Coding adaptive deblocking filter and method for use therewith
WO2009123248A1 (en) 2008-04-01 2009-10-08 Canon Kabushiki Kaisha Moving image encoding apparatus and moving image encoding method
EP2269379B1 (en) * 2008-04-11 2019-02-27 InterDigital Madison Patent Holdings Methods and apparatus for template matching prediction (tmp) in video encoding and decoding
KR101452859B1 (ko) 2009-08-13 2014-10-23 삼성전자주식회사 움직임 벡터를 부호화 및 복호화하는 방법 및 장치
JP2011097572A (ja) * 2009-09-29 2011-05-12 Canon Inc 動画像符号化装置
US20110135008A1 (en) * 2009-12-07 2011-06-09 Electronics And Telecommunications Research Institute Video processing system
US8755437B2 (en) * 2011-03-17 2014-06-17 Mediatek Inc. Method and apparatus for derivation of spatial motion vector candidate and motion vector prediction candidate
WO2012122927A1 (en) * 2011-03-14 2012-09-20 Mediatek Inc. Method and apparatus for derivation of motion vector candidate and motion vector prediction candidate

Also Published As

Publication number Publication date
CN103167286A (zh) 2013-06-19
EP2795903A4 (en) 2015-03-11
US20150016530A1 (en) 2015-01-15
KR20130070554A (ko) 2013-06-27
WO2013095322A1 (en) 2013-06-27
TWI527439B (zh) 2016-03-21
EP2795903A1 (en) 2014-10-29
TW201340722A (zh) 2013-10-01
KR101425286B1 (ko) 2014-08-04

Similar Documents

Publication Publication Date Title
CN106170979B (zh) 一种用于视频编码的计算机实现的方法、系统、机器可读介质及设备
US20220353534A1 (en) Transform Kernel Selection and Entropy Coding
CN103167286B (zh) 用于运动估计的详尽的子宏块形状候选保存和恢复协议
CN104219524B (zh) 使用感兴趣对象的数据对视频成码的比特率控制
CN104885467B (zh) 用于下一代视频编码的内容自适应参数变换
CN104704827B (zh) 用于下一代视频的内容自适应变换译码
CN106464921B (zh) 用于块内复制搜索增强的方法和系统
WO2020117412A1 (en) Hybrid motion-compensated neural network with side-information based video coding
CN103581665B (zh) 转码视频数据
CN104053005B (zh) 使用分级相平面相关性和块匹配的运动估计
CN109983770A (zh) 多级复合预测
WO2019160622A1 (en) Video compression through motion warping using learning-based motion segmentation
TWI526057B (zh) 利用非線性縮放及適應性來源區塊大小之階層式運動估算
WO2017192175A1 (en) Motion vector coding using dynamic reference motion vectors
CN104541506A (zh) 层间像素样本预测
CN107667528A (zh) 用于视频编解码的自适应参考帧缓存的方法和系统
CN104756498B (zh) 跨层运动向量预测
CN104584553A (zh) 层间残差预测
CN110741641B (zh) 用于视频压缩的方法和装置
CN103765902A (zh) 多视角视频编码方案
CN104798373A (zh) 包括在多个独立编码流之间的共享运动估计的视频编码
JP2016506165A (ja) インターレイヤの動きデータ継承
CN107079156A (zh) 交替块约束决策模式代码化
CN103975594B (zh) 用于残差预测的运动估计方法
CN104247431B (zh) 性能和带宽高效的分数运动估计

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant