为资源受限设备中的视频编码提供快速帧间模式决策的方法、装置和计算机程序产品的制作方法

文档序号:7677739阅读:189来源:国知局

专利名称::为资源受限设备中的视频编码提供快速帧间模式决策的方法、装置和计算机程序产品的制作方法
技术领域
:本发明的实施方式主要涉及移动电子设备技术,而且更具体地,涉及用于提供快速INTER(帧间)模式决策算法以降低视频编码的编码复杂度而不显著降低视频编码效率的方法、装置和计算机程序产品o
背景技术
:现代通信时代已经使有线和无线网络发生极大的发展。计算机网络、电视网络和电话网络正在经历由消费者需求推动的空前的技术发展。无线和移动网络技术已经解决了有关的消费者需求,而且提供了信息传输的更多灵活性和直观性。当前和将来的网络技术持续地促进信息传输简易性以及对用户的便利性。移动电子设备的一种这样的性能扩展涉及这种设备处理诸如视频序列的视频数据的能力。可以从网络服务器或其它网络设备,或者甚至从移动终端和网络设备的结合来向例如移动电话、便携式数字助理(PDA)、移动电视、视频-iPOD、移动游戏系统等提供视频序列。视频序列通常包括由大量像素形成的大量视频帧,每个像素由一组数字位表示。由于视频帧中的像素数量巨大并且通常视频序列中的视频帧数量巨大,表示视频序列所需要的数据量是巨大的。这样,通过视频压缩(即,视频编码),用于表示视频序列的信息量通常得以减少。例如,视频压缩将数字视频数据转换为促进视频数据的高效存储及发射的、需要较少位的格式。H,264/AVC(高级视频12编码)(也称为AVC/H.264或H.264/MPEG-4部分10或MPEG-4部分10/H.264AVC)是由ISO/MPEG和ITU-T/VCEG工作组共同开发出的视频编码标准,其获得了比先前的视频编码标准(例如,H.263)明显更高的编码效率。特别地,在类似的比特率下,H.264/AVC获得了比先前的视频编码标准明显更佳的视频质量。由于其高压缩效率和网络友好的设计,H.264/AVC在从第三代移动多媒体服务、手持数字视频广播(DVB-H)到高分辨数字多功能盘(HD-DVD)的领域内得以发展。然而,正如本领域技术人员充分意识到的,H.264实现的编码效率增加,其代价是H.264编码器以及H.264解码器的复杂度增加。当前,正在进行多个移动多媒体标准的发布,这些标准将在手持设备中实现H.264编码功能。鉴于手持设备的空间有限、计算功能有限和资源有限,由于许多原因,采用H.264的手持设备必须具有低复杂度的编码。首先,低复杂度的编码降低手持设备中视频编码器的资源损耗,从而增加手持设备的电池续航时间。其次,如果某视频帧的编码时间比所分配的编码时间长,则该视频帧可能被略过。同样地,编码视频帧的最大复杂度以及平均编码复杂度将降低。H.264编码器的复杂度大部分归因于运动补偿预测(MCP)。运除连续视频帧之间的时间冗余(即,帧间编码)。当视频序列内的连续一见频帧之间具有相似性时,通常出现时间冗余。例如,一见频序列中连续帧的内容变化基本上是视频序列的场景运动的结果。该运动可能归因于场景中对象的运动或照相机的运动。通常,只对连续帧之间的差别(例如,运动或移动)进行编码。运动补偿预测通过使用先前编码帧(例如,当前帧之前的帧)中的段的参数来估计视频序列的运动,以此来消除时间冗余。换句话说,运动补偿预测允许根据作为参考帧的先前编码帧的运动向量来生成帧(即,预测帧)。如本领域技术人员充分意识S'j的,视频帧可以被分段或者划分为宏块,并且可以对宏块执行运动补偿预测。对于视频帧的每个宏块,可以根据与充当参考帧的先前编码帧中的匹配宏块相对应的运动向量来执行运动估计并且生成预测的宏块。与先前的视频编码标准不同,在H.264/AVC视频编码标准中,宏块可以划分为16X16块的许多块分区,并且可以生成对应于宏块的每个分区的不同运动向量。生成对应于宏块的每个分区的不同运动向量,是因为H.264/AVC为宏块定义了新的INTER模式或块大小。特别地,如图1所示,H.264/AVC视频编码标准允许16X16宏块的各种块分区并且定义新的INTER模式,也就是,16X16模式宏块的INTER16X16,INTER—16X8,INTER—8X16和INTER—8X8。另夕卜,如图1所示,H.264/AVC^L频编码标准允许8X8子宏块的各种分区,并且定义新的INTER子模式,也就是,8X8子模式子宏块的INTER—8X8,INTER—8X4,INTER—4X8和INTER—4X4。考虑INTER一16X8模式,在这个INTER模式中,宏块水平地划分为2个分区并且运动向量被传送给每个分区,这得到宏块的两个运动向量。在这点上,H.264/AVC生成两帧之间运动的更精确的表示,并且显著地增加编码效率。由于H.264/AVC定义了更多数目的INTER模式,H.264编码器需要比先前的视频编码标准检查更多的模式以找到最佳模式。对于每个候选模式,需要针对该宏块的所有分区来执行运动估计,由此显著地增加运动估计操作的数目。对于每个候选模式,必须针对该宏块的所有分区执行运动估计,这极大地增加运动估计操作的数目并且由此增加了H.264编码器的复杂度。增加的运动估计操作数目增加了H.264编码器的资源损耗,并且降低了采用H.264编码器的移动终端的电池续4元时间。为了降低编码器处运动补偿预测步骤的复杂度,应该减少运动估计操作的数目。这可以通过禁用除了INTER—16X16之外的所有INTER模式、并且仅仅执行INTER—16X16模式的运动估计来实现。然而,如图2所示,如果禁用INTERJ6X8模式和INTER—8X16模式,则编码效率发生惩罚。如图2所示,对于给定的视频序列(例14如,标题为"Foreman"的视频片断,以QCIF(四分之一通用中间格式)编码,每秒15帧中176x144的分辨率),其中针对INTER—16X16,INTER—16X8和INTER—8X16才莫式才丸4亍运动估计,与仅针对INTER—16X16模式执行运动估计的情形对比,实现了给定比特率(千比特/秒)处的更高的峰值信噪比(PSNR)(通过分贝测量)。在这点上,禁用除了INTER—16X16模式之外的所有INTER模式导致了编码效率的显著下降。这样,需要一种快速INTER模式决策算法,用以通过降低运动估计操作的数目来降低H.264编码器的编码复杂度,而不使编码效率显著降低。
发明内容因此,提供实现快速INTER模式决策算法的方法、装置和计算机程序产品,该快速INTER模式决策算法能够检查和处理可以具有一个或多个分区的各种大小的宏块。该方法、装置和计算机程序产品降低与编码器的运动补偿预测相关联的运动估计操作的数目。在这点上,编码器的复杂性得以降低,而编码效率不会显著降低。因此,由于降低了编码器的运动估计操作的数目,可以实现成本节约。本发明的快速INTER模式决策算法可以实现在H.264/AVC视频编码标准中,或能够促进可变大小宏块的其它任意合适的视频编码标准中。在一个示例性实施方式中,提供了一种用于减少在执行运动补偿预测中的运动估计操作数目的方法。首先,确定是否从视频帧的至少一个宏块提取至少一个运动向量。该至少一个宏块包括具有多个块大小的第一多个帧间模式。接着,通过分析参考帧,根据该至少一个运动向量生成该宏块的至少一个预测。然后确定所提取的运动向量是否基本上等于零,如果是,根据该至少一个预测宏块和该至少一个宏块之间的差别来计算失真值。接着将该失真值与第一预定阈值进行比较,当该失真值小于该第一预定阈值时,从第一和第二编码模式中选择第一编码模式,而不对第二编码模式进行评估。通过不对第二编码模式进行评估,提高了编码处理的效率。在另一个示例性实施方式中,提供了一种用于降低在执行运动补偿预测中的运动估计操作数目的设备。该设备包括运动估计器、运动补偿预测设备和处理元件。运动估计器被配置用于从视频帧的至少一个宏块提取至少一个运动向量。该至少一个宏块包括具有多个块大小的第一多个帧间模式。运动补偿预测设备被配置用于通过分析参考帧,根据该至少一个运动向量生成所述至少一个宏块的至少一个预测。处理元件与运动估计器和运动补偿预测设备通信。处理元件还被配置用于确定所提取的运动向量是否基本上等于零。处理元件进一步配置用于当所提取的运动向量基本上等于零时,根据该至少一个预测宏块和该至少一个宏块之间的差别来计算失真值。处理元件还被配置用于将该失真值与第一预定阈值进行比较,并且处理元件还被配置用于当该失真值小于该第一预定阈值时,从第一和第二编码模式中选择第一编码模式,而不对第二编码模式进行评估。根据其它实施方式,以与前述方法一致的方式,提供了一种用于降低在执行运动补偿预测中的运动估计操作数目的相应计算机程序产品。已经总体上对本发明进行了描述,现在将参考附图,附图未必是按比例画出的,其中图1为H.264/AVC视频编码标准中支持的INTER模式的图示;图2为当禁用INTER模式16X8和8X16时编码效率下降的图形化表示;图3为根据本发明示例性实施方式的移动终端的示意性框图;图4为根据本发明示例性实施方式的无线通信系统的示意性框图;图5为根据本发明示例性实施方式的编码器的示意性框图;图6为根据本发明示例性实施方式的运动补偿预测模块的示意性结构图7为示出16X16宏块中8X8块的编号的图示;图8为示出根据本发明示例性实施方式的绝对差异二进制和图的图解;图9A和图9B为示出了根据本发明示例性实施方式的生成快速INTER模式决策算法的方法的各个步骤的流程图10为与传统编码器相比的根据本发明实施方式的编码器的示例性实施方式所达到的比率失真性能和平均复杂度降低的图形化表示;图11为示出了与传统编码器相比的本发明的示例性编码器的复杂度降低和编码效率的图形化表示;图12为示出了与传统编码器相比的根据本发明的编码器的示例性实施方式的帧编码复杂度的图形表示。具体实施例方式下面参考附图更加充分地描述本发明的实施方式,附图中示出了一些但非全部实施方式。实际上,本发明的实施方式可以通过许多不同形式具体化,并不构建为此处阐明的本发明的限制;相反地,提供这些实施方式从而本披露满足适用的法律要求。相同的参考标号贯穿涉及相同的元件。图3示出了将得益于本发明实施方式的移动终端10的框图。然而,应当理解,所示出的以及此后描述的移动电话仅仅是将得益于本发明实施方式的一种类型的移动终端的示范,因此,不应用来限制其范围。尽管出于示例的目的而示出并在此后描述了移动终端10的若干实施方式,但是其他类型的移动终端也可以容易地采用本发明,这些其他类型的移动终端诸如便携式数字助理(PDA)、寻呼机、移动电视、膝上型计算机,以及其他类型的声音和文本通信系统。此外,非移动性设备也可以容易地采用本发明的实施方式。此外,尽管本发明方法的若干实施方式是由移动终端IO来执行或者使用的,但是可以通过移动终端之外的其他设备来实现该方法。而且,将结合移动通信应用来主要描述本发明的系统和方法。然而,应当理解,可以结合移动通信产业之内以及移动通信产业之外二者的各种其他应用来使用本发明的系统和方法。移动终端10包括天线12,其可操作地与发射机14和接收机16进行通信。移动终端10还包括控制器20或者其他处理元件,其分别提供去往发射机14的信号和接收来自接收机16的信号。该信号包括按照可应用蜂窝系统的空中接口标准的信令信息,并且还包括用户语音和/或用户生成的数据。在此方面,移动终端IO能够利用一个或多个空中接口标准、通信协议、调制类型以及接入类型来进行操作。作为示范,移动终端IO能够根据多个第一代、第二代和/或第三代通信协议等中的任何协议来进行操作。例如,移动终端10可以能够按照第二代(2G)无线通信协议IS-136(TDMA)、GSM和IS-95(CDMA)来进行操作,或者按照第三代(3G)无线通信协议宽带码分多址(WCDMA)来进行操作。可以理解,控制器20包括实现移动终端10的音频和逻辑功能所需的电路。例如,控制器20可以包括数字信号处理器设备、微处理器设备以及各种模数转换器、数模转换器和其他支持电路。移动终端10的控制和信号处理功能按照这些设备各自的能力在其间分配。控制器20由此还可以包括在调制和传输之前对消息和数据进行巻积编码和交织的功能。控制器20还可以包括内部声音编码器,并且可以包括内部数据调制解调器。此外,控制器20可以包括对可以存储在存储器中的一个或多个软件程序进行操作的功能。例如,控制器20可以能够操作连接程序,诸如传统的Web浏览器。连接程序继而可以允许移动终端IO例如按照无线应用协议(WAP)来发射和接收Web内容(诸如基于位置的内容)。移动终端IO还包括用户接口,其包括输出设备,例如传统的耳机或者扬声器24、振铃器22、麦克风26、显示器28以及用户输入接口,所有这些设备都耦合至控制器20。允许移动终端IO接收数据的用户输入接口可以包括允许移动终端10接收数据的多种设备中的任意设备,例如小键盘30、触摸显示器(未示出)或者其他输入设备。在包括小键盘30的实施方式中,小键盘30可以包括传统的数字键(0-9)和相关键(#、*),以及用于操作移动终端10的其他键。备选地,小键盘30可以包括传统的QWERTY小键盘。移动终端10还包括电池34,诸如振动电池组,用于为操作移动终端10所需的各种电路供电,以及可选地提供机械振动作为可觉察输出。在示例性实施方式中,移动终端10可以是^f见频电话并且包括与控制器20通信的视频模块36。视频模块36可以是捕获视频数据以用于存储、显示或发送的任意装置。例如,视频模块36可以包括能够根据所捕获的图像形成数字图像文件的数字照相机。另外地,数字照相机能够根据所捕获的图像序列形成视频图像文件。这样,视频模块36包括根据所捕获的图像来创建数字图像文件以及根据所捕获的图像序列来创建视频图像文件所需的所有硬件(诸如透镜或其它光学设备)和软件。备选地,视频模块36可以仅包括浏览图像或视频数据(例如,视频序列、视频流、视频片段,等等)所需的硬件,而移动终端10的存储器设备以软件形式存储由控制器20执行的、根据所捕获的图像来创建数字图像文件所需的指令。移动终端10的存储器设备还可以以软件形式存储由控制器20执行的、根据所捕获的图像序列来创建视频图像文件所需要的指令。图像数据以及视频数据可以在移动终端的显示28上显示。在示例性实施方式中,视频模块36可以进一步包括辅助控制器20处理视频数据的处理元件(例如,协处理器)以及用于压缩和/或解压缩图像数据和/或视频数据的编码器和/或解码器。编码器和/或解码器可以根据H.264/AVC视频编码标准,或者能够支持可变大小宏块的其它任意适当的视频编码标准来编码和/或解码视频数据。移动终端IO还可以包括通用身份才莫块(UIM)38。UIM38通常是具有内置存储器的存储器设备。UIM38例如可以包括订户身份模块(SIM)、通用集成电路卡(UICC)、通用订户身份模块(USIM)、可移动用户身份模块(R-UIM)等。UIM38通常存储与移动订户相关的信元。除了UIM38之外,移动终端IO还可以具有存储器。例如,移动终端10可以包括易失性存储器40,例如包括用于数据临时存储的高速緩存区域的易失性随机存取存储器(RAM)。移动终端10还可以包括其他非易失性存储器42,其可以是嵌入式的和/或可移动的。非易失性存储器42可以附加地或者可选地包括例如可以从California,Sunnyvale的SanDisk乂i^司或者California,Fremont的LexarMedia公司获得的EEPROM、闪存等。存储器可以存储移动终端10所使用的多个信息片段和数据中的任意项,以实现移动终端10的功能。例如,存储器可以包括能够唯一标识移动终端10的标识符,诸如全5求移动设备标识(IMEI)码。现在参考图4,其提供了将得益于本发明实施方式的一种类型的系统的示范。该系统包括多个网络设备。如图所示,一个或多个移动终端10每个都可以包括天线12,以用于将信号发射至基地或基站(BS)44以及用于从其接收信号。基站44可以是一个或多个蜂窝或移动网络的一部分,每个移动网络包括操作该网络所需的元件,例如移动交换中心(MSC)46。如本领域技术人员公知的,移动网络还可以表示为基站/MSC/互联功能(BMI)。在操作中,当移动终端10进行和接收呼叫时,MSC46能够路由去往和来自移动终端10的呼叫。当呼叫涉及移动终端10时,MSC46还可以提供到陆线主干的连接。此外,MSC46能够控制去往和来自移动终端10的消息的转发,并且还能够控制去往和来自消息收发中心的、针对移动终端10的消息的转发。应当注意,尽管在图4的系统中示出了MSC46,MSC46仅仅是示例性网络设备,并且本发明的实施方式不限于在采用MSC的网络中使用。MSC46可以耦合至数据网络,诸如局域网(LAN)、城域网(MAN)和/或广域网(WAN)。MSC46可以直接耦合至数据网络。20然而,在一个典型实施方式中,MSC46耦合至GTW48,而GTW48耦合至例如互联网50的WAN。继而,诸如处理元件(例如,个人计算机、服务器计算机等)的设备可以经由互联网50耦合至移动终端10。例如,如下所述,处理元件可以包括与下文描述的计算系统52(图4中示出了两个)、视频服务器54(图4中示出了一个)等相关联的一个或多个处理元件。BS44还可以耦合至信令GPRS(通用分组无线服务)支持节点(SGSN)56。如本领域技术人员公知的,SGSN56通常能够执行类似于MSC46的功能,以用于分组交换服务。与MSC46类似,SGSN56可以耦合至诸如互联网50的数据网络。SGSN56可以直接耦合至数据网络。然而,在更典型的实施方式中,SGSN56耦合至分组交换核心网,诸如GPRS核心网58。分组交换核心网继而耦合至另一GTW48,诸如GTWGPRS支持节点(GGSN)60,而GGSN60耦合至互联网50。除了GGSN60之外,分组交换核心网还可以耦合至GTW48。而且,GGSN60可以耦合至消息收发中心。在此方面,类似于MSC46,GGSN60和SGSN56可以能够控制消息(诸如MMS消息)的转发。GGSN60和SGSN56还可以能够控制去往和来自消息收发中心的、针对移动终端IO的消息的转发。此外,通过将SGSN56耦合至GPRS核心网58和GGSN60,诸如计算系统52和/或视频服务器54的设备可以经由互联网50、SGSN56以及GGSN60耦合至移动终端10。在此方面,诸如计算系统52和/或视频服务器54的设备可以跨越SGSN56、GPRS核心网58以及GGSN60来与移动终端IO通信。通过将移动终端IO以及其他设备(例如,计算系统52、视频服务器54等)直接或者间接地连接至互联网50,移动终端10例如可以按照超文本传输协议(HTTP)来与其他通信以及相互之间彼此通信,由此执行移动终端IO的各种功能。尽管在此没有示出和描述每个可能的移动网络的每个元件,应当意识到,移动终端10可以通过BS44耦合至多种不同网络中任意的一个或多个。在此方面,网络可以能够支持按照多个第一代(1G)、第二代(2G)、2.5G、第三代(3G)和/或未来的移动通信协议等中的任意一个或多个协议的通信。例如,一个或多个网络可以能够支持按照2G无线通信协议IS-136(TDMA)、GSM和IS-95(CDMA)的通信。而且,例如,一个或多个网络可以能够支持按照2.5G无线通信协议GPRS、增强数据GSM环境(EDGE)等的通信。此外,例如,一个或多个网络可以能够支持按照3G无线通信协议的通信,其中3G无线通信协议诸如使用宽带码分多址(WCDMA)无线接入技术的通用移动电话系统(UMTS)网络。一些窄带AMPS(NAMPS)网络、TACS网络以及双模或者更多模的移动台(例如,数字/模拟或者TDMA/CDMA/模拟电话)也可以得益于本发明的实施方式。移动终端10还可以耦合至一个或多个无线接入点(AP)62。AP62可以包括被配置为按照诸如以下的技术来与移动终端10进行通信的接入点射频(RF)、蓝牙(BT)、红外(IrDA)或者多种不同的无线网络技术中的任意技术,其中无线网络技术包括诸如IEEE802.il(例如,802.11a、802.llb、802.llg、謝.lln等)的无线LAN(WLAN)技术,诸如IEEE802.16的WiMAX技术,和/或诸如IEEE802.15的超宽带(UWB)技术,等等。AP62可以耦合至互联网50。类似于MSC46,AP62可以直接耦合至互联网50。然而,在一个实施方式中,AP62经由GTW48间接耦合至互联网50。此外,在一个实施方式中,可以将BS44^L作另一AP62。将会意识到,通过将移动终端10以及计算系统52、视频服务器54和/或多种其他设备中的任意设备直接或者间接地连接至互联网50,移动终端10可以彼此进行通信,与计算系统进行通信,等等,由此来执行移动终端10的各种功能,例如将数据、内容等发射至计算系统52和/或视频服务器54,和/或从计算系统52和/或视频服务器54接收内容、数据等。例如,视频服务器54可以向订阅了视频服务的一个或多个移动终端10提供视频数据。可以根据H.264/AVC视频编码标准来压22或者其可以包括先前录制的视频片段。视频服务器54可以能够提供包括例如第三代平台(3GP)、音频视频交错(AVI)、WindowsMedia、MPEG(动态图像专家组,QuickTime,RealVideo,Shockwave(Flash)或类似)在内的多种不同格式的一个或多个视频序列。这里使用的术语"数据"、"内容"、"信息"以及类似术语可以互换使用,用来表示能够根据本发明的实施方式而被发射、接收和/或存储的数神以及范围的限制。尽管未在图4中示出,除了跨越互联网50将移动终端10耦合至计算系统52之外或者作为替代,可以按照例如RF、BT、IrDA或者多种不同的有线或无线通信技术(包括LAN、WLAN、WiMAX和/或UWB技术)中的任意技术来将移动终端10与计算系统52彼此耦合和通信。一个或多个计算系统52可以附加地或者备选地包括可移动存储器,其能够存储随后可以传送给移动终端10的内容。此外,移动终端10可以耦合至一个或多个电子设备,诸如打印机、数字投影仪和/或其他多媒体捕获、产生和/或存储设备(例如,其他终端)。类似于计算系统52,移动终端10可以被配置为按照例如RF、BT、IrDA或者多种不同的有线或无线通信技术(包括USB、LAN、WLAN、WiMAX和/或UWB技术)中的任意技术来与便携式电子设备进行通信。现在将参考图5来描述本发明的示例性实施方式中,图5中示出了能够实施快速INTER模式决策算法以通过减少运动估计操作的数目来降低视频编码复杂度而不使视频编码效率显著降低的编码器的元件。图5的编码器68可以在例如图3的移动终端10上使用。然而,可以意识到,图5的编码器还可以在移动或者固定的多种其它设备上使用,因此,虽然下面以移动终端中应用为上下文更详细地描述本发明的示例性实施方式,本发明不应该局限在诸如图3的移动终端10的设备上的应用中。通过示例而不是限制性方式给出下面的描述。例如,图5的编码器可以用于计算系统52,诸如DVD播放器、HD-DVD播放器的视频录像机,数字视频广播(DVB)手持设备,个人数字助理(PDA),数字电视机顶盒,游戏和/或媒体控制台,等等。而且,图5的编码器68可以在移动终端10的设备、组件、元件或视频模块36上使用。编码器68可以通过硬件、软件或硬件和软件结合实现的、能够编码具有多个视频帧的视频序列的任意设备或装置。在示例性实施方式中,编码器68可以通过存储在移动终端IO的存储器中、且由控制器20执行的软件指令来实现。在备选实施方式中,编码器68可以通过存储在视频模块36的存储器中、且由视频模块36的处理元件执行的软件指令来实现。可以意识到,虽然图5示出了编码器配置的一个示例,还可以使用多种其它配置来实施本发明的实施方式。现在参考图5,提供了编码器68,如本领域技术人员所知,编码器68能够编码传入^L频序列。如图5所示,编码器68接收输入视频帧Fn(从诸如视频服务器54的视频源发送)。以宏块为单位处理该输入视频帧Fn。将该输入视频帧Fn提供给差异块78的正输入,而将差异块78的输出提供给变换块82,从而可以生成基于输入视频帧Fn的变换系数集。继而将变换系数集发送到量化块84,其量化每个输入视频帧以生成具有量化变换系数集的量化帧。回路92将量化帧提供给反向量化块88和反向变换块90,其分别执行量化帧的反向量化和变换系数的反向变换。反向变换块90输出的结果帧发送到求和块80,求和块80将该帧提供给滤波器76以降低块失真的影响。经过滤波的帧可以作为参考帧,并且可以存储在参考帧存储器74中。如图5所示,参考帧可以是先前编码的帧FVi。运动补偿预测(MCP)块72基于存储在参考帧存储器74中的参考帧来执行运动补偿预测,以根据由运动估计块70所生成的运动向量来生成经过运动补偿的预测宏块。运动估计块70#^居-現频帧Fn中的最佳匹配宏块确定运动向量。运动补偿块72基于该运动向量来偏移参考帧中的相应宏块,以生成预测宏块。H.264/AVC视频编码标准允许以INTRA(帧内)或INTER模式编码每个宏块。换句话说,H.264/AVC一见频编码标准允许编码器选择是按照INTRA或是INTER模式来进行编码。为了实行INTER模式编码,差异块78具有负输出,其经由选择器71耦合到MCP块72。在这点上,差异块78从当前视频帧Fn中的最佳匹配宏块提取预测宏块,以产生残差宏块或差异宏块Dn。该差异宏块由变换块82和量化块84来进行变换和量化,以提供量化的变换系数集。这些系数可以由熵编码块86进行熵编码。熵编码系数连同解码宏块所需的残差数据(诸如宏块预测模式、量化器步进大小、指定宏块运动补偿方式的运动向量信息,等等)形成了已编码宏块的压缩比特流。已编码宏块可以传递到网络抽象层(NAL)以便发送和/或存储。为了实行INTRA模式编码,差异块78的负输出连接到INTRA模式块(经由选择器71)。在INTRA模式中,根据传入视频帧Fn中先前已被编码和重构(但没有由滤波器76进行滤波)的采样来形成预测宏块。可以从当前传入视频帧Fn中的最佳匹配宏块中减去在INTRA模式中生成的预测宏块,以产生残差宏块或差异宏块D,n。该差异宏块D,n由变换块82和量化块84进行变换和量化,以提供量化的变换系数集。这些系数可由熵编码块86进行熵编码。熵编码系数连同解码宏块所需的驻留数据形成了已编码宏块的压缩比特流,其可被传递到网络抽象层(NAL)以便发送和/或存储。如本领域技术人员将意识到的,H.264/AVC支持用于INTRA编码的两种块类型(大小),也就是,4X4和16X16。4X4INTRA块支持9个预测模式。16X16INTRA块支持4个预测模式。还应该指出,H.264/AVC支持INTER编码模式中的SKIP(跳过)模式。H.264/AVC在INTER模式编码中利用各种块大小和分区的树结构的运动补偿。如上所述,H.264/AVC允许将INTER编码的宏块子划分为分区,并且大小范围诸如为16X16、16X8、8X16和8X8。INTER编码的宏块在这里可以表示诸如INTER—16X16、INTER—16X8、INTER—8X16和INTER—8X8模式的INTER模式,其中INTER—16X16模式具有16X16的块大小,INTER16X8模式具有16X8分区,INTER—8X16模式具有8X16分区并且INTER—8X8模式具有8X8分区(例如,参见图1)。另外,H.264/AVC支持块大小范围诸如为8X8、8X4、4X8和4X4的具有子分区的子宏块。INTER编码的子宏块在这里可以表示诸如INTER_8X8、INTER_8X4、INTER_4X8和INTER一4X4子模式的INTER子模式(例如,参见图1)。这些分区和子分区增加了每个宏块内的大量的可能结合。如
背景技术
部分所解释,通常针对宏块的每个分区或子分区来传送独立的运动向量,而且通常每个部分的执行运动估计。运动估计操作的该增加的数目,极大地增加传统H.264/AVC编码器的复杂度。本发明的实施方式的快速INTER模式决策算法,通过降低运动估计操作的数目来降低与传统H.264编码器相关联的大量复杂度,而不显著降低编码效率。编码器68可以根据特定宏块的质量来确定将该宏块划分为分区或子宏块分区的方式,以最大化成本函数以及最大化压缩效率。成本函数是由编码器68进行的成本比较,其中编码器68决定以INTER还是INTRA模式来编码特定宏块。编码器68选择具有最小成本函数的模式作为最佳模式。根据本发明的示例性实施方式,成本函数由J(MODE)|QP=SAD+、M0DE.R(MODE)确定,其中QP是量化参数,SAD是预测宏块与原始宏块之间的绝对差异和,R(MODE)是用于给定模式(例如,INTER或INTRA)的语法位的数目,人mode是用以平衡失真和位数目之间权衡的拉格朗日参数。现在参考图6,示出了根据本发明示例性实施方式的运动补偿预测块94的结构图。运动补偿预测块94可以是编码器68的组件。运动补偿预测块94包括运动估计器96,其可以是图5的运动估计块70。另外,运动补偿预测块94包括运动补偿预测设备98,其可以是图5的运动补偿预测块72。运动补偿预测(MCP)设备98包括绝对差异和(SAD)分析器91。运动补偿预测块94可以是通过硬件、软件或硬件和软件结合实现的、能够对可能具有分区和子分区的可变大小宏块执行运动补偿预测的任意设备或装置。运动补偿预测块94可以在处理元件(诸如控制器20,或协处理器,其可以是视频模块36的元件)的控制下操作。在示例性实施方式中,运动补偿预测块94可以对当前视频帧(例如FJ的分段的所对应的可变大小宏块进行分析。例如,运动补偿预测块94可以分析具有一个或多个分区的16X16大小的宏块(例如,参见图1的INTER—16X8、INTER—8X16和INTER—8X8模式)。对应于当前视频帧F。的16X16宏块(这里称为"原始宏块")的运动向量可以由运动估计器96从16X16宏块中才是取。将该运动向量发送至运动补偿预测设备98,并且运动补偿预测设备98使用该运动向量来生成预测的宏块,这是通过对可以存储在诸如参考帧存储器74的存储器中的先前编码的参考帧(例如,帧FV!)中的相应宏块进行偏移。运动补偿预测设备98包括SAD分析器91,其通过分析预测的16X16宏块的一个或多个区域来确定原始宏块和预测的宏块之间的差异(或误差)。特别地,如图7所示,一个实施方式的SAD分析器评估16X16宏块的8X8块,以确定所预测宏块内4个区域的绝对差异和(SAD)(或误差或例如失真值),也就是SAD。、SAD"SAD2和SAD3。SAD分析器91将4个区域(SADo、SAD!、SAD2和SAD3)的每一个与诸如Thre—2的预定阈值进行比较。通过评估这4个区域,SAD分析器91能够分析原始宏块和所预测宏块之间的失真的位置和能量。当SAD小于预测的16X16宏块的给定区域的预定阚值Thre—2时,该SAD分析器确定给定区域的预测结果足够精确,并且在二进制SAD图中为该区域指派二进制位0。(例如,参见图8的SAD图中的SADJ。相反,当该SAD分析器确定所预测的16X16宏块的给定区域的预测结果超过预定的阈值Thre—2时,SAD分析器决定所预测的16X16宏块的特定区域的结果并不如期望精确,并且在二进制SAD图中为该区域指派二进制位1。(例如,参见图8的SAD图中的SAD0)。参考图8,其示出了由SAD分析器生成的具有二进制值1010的二进制SAD图的示例。如图8所示,SAD分析器确定区域SADo和SAD2的预测结果超过预定阈值Thre—2,并且指派给每个区域的二进制位1表示所预测的16X16宏块的这些区域的预测结果并不如期望精确。SAD分析器还确定区域SAD!和SAD3的预测结果小于预定的阈值Thre—2,并且为指派给这些区域的二进制位0表示所预测的16X16宏块的这些区域的预测结果足够精确。基于由SAD分析器生成的二进制SAD图的结果,运动补偿预测设备98确定是否需要对16X16宏块的某些区域进行评估。如
背景技术
部分讨论过,传统上,针对16X16宏块的每个分区提取运动向量。对于本发明的示例性实施方式的情形,这并不需要。出于示例目的,考虑当前视频帧Fn中的原始宏块,诸如具有16X8分区(也就是,图1的INTER—16X8模式)的16X16块大小的宏块。运动估计器96首先从具有16X8分区(即,图1的INTER—16X8模式)的16X16宏块的相应分段提取运动向量。最初,该运动向量由运动估计器96提取,就像16X16宏块没有16X8分区一样(例如,就像16X16宏块对应于INTER—16X16模式;例如参见图1)。换句话说,最初提取运动向量就像与16X8分区无关那样样。这样,运动估计器96最初并不提取对应于INTER—16X8模式块的上面分区和下面分区的运动向量。运动补偿预测设备98通过按照上文讨论的方式对参考帧中的匹配宏块进行偏移来生成预测宏块。只要生成了预测宏块,SAD分析器便对所预测的16X16宏块的每个区域进行评估,并且根据上文讨论的方式来生成二进制SAD图。如果SAD分析器确定每个区域的结果都足够精确,则运动补偿预测块94确定不需要提取INTER—16X8模式块的上面分区和下面分区的运动向量。换句话i兌,不对该上面分区和下面分区进4亍评估,并且由此不^^行关于上面分区和下面分区的运动估计。如果SAD分析器确定区域SADo、SAD^SAD2和SAD3的预测结果都低于预定阈值Thre—2,则为每个区域指派二进制位0,并且由SAD分析器生成的二进制SAD图具有二进制值0000,表明每个区域的预测结果都足够精确。在这点上,运动补偿预测块94确定不需要针对INTER16X828模式块的上面分区和下面分区执行运动估计,并且简单地使用对应于16X16模式块(也就是,INTER—16X16模式;例如,参见图1)的运动向量来执行运动估计,运动补偿预测以及生成预测的宏块。这样,降低了编码器68处的运动估计计算的数目,而编码效率并未显著降低。如果SAD分析器在二进制SAD图中生成二进制值1010(不同于上面示例的二进制值0000),表示区域SADo和SAD2的预测结果超过预定阈值Thre—2,而区域SAD:和SAD3的预测结果小于预定阈值Thre—2,则SAD分析器确定INTER_8X16的左边分区的预测结果并不如期望精确,而右边分区的预测结果足够精确。这样,运动估计器96从当前视频帧Fn中具有8X16分区(INTER—16X8模式)的原始16X16宏块中提取第二运动向量。该第二运动向量是从INTER—16X8模式块的左边分区提取的。运动估计器96执行运动估计,从而可以由运动补偿预测设备98对左边分区寺丸行运动补偿预测。然而,由于二进制SAD图表明区域SADi和SAD3的结果足够精确,不需要从右边分区提取运动向量,由此不需要执行针对INTER_8X16模式块的右边分区的运动估计和运动补偿,从而降低在编码器68处的运动估计操作数目。其后,运动补偿预测块94可以从最佳INTER模式(即,这个示例中在INTER—16X16模式和INTER_8X16模式的左边分区之中)和最佳INTRA模式中选择最佳编码模式。在一个实施方式中,最佳编码模式是使得根据公式J(MODE)|QP=SAD+XM0DE.R(MODE)的成本函数最小化的模式。考虑另一个示例,其中SAD分析器生成的二进制SAD图具有二进制值0101。SAD分析器确定区域SAD。和SAD2的预测结果低于预定阈值Thre—2且INTER—8X16模式块的左边分区的预测结果足够精确,然而,区域SAD!和SAD3的预测结果超过预定阈值Thre—2,这表明INTER—8X16模式块的右边分区的预测结果并不如期望精确。这样,运动估计器96根据上述方式基于16X16INTER模式提取第一运动向量,并且随后从INTER—8X16模式块的右边分区提取另一个运动向量(即,第二运动向量),从而执行针对右边分区的运动估计和运动补偿预测。然而,由于SADo和SAD2的结果足够精确,不需要提取对应于INTER—8X16模式块的左边分区的运动向量。换句话说,不评估左边分区。其后,运动补偿预测块94可以从最佳INTER模式(即,这个示例中在INTER—16X16模式和INTER—8X16模式的右边分区之中)和最佳INTRA模式中选择最佳编码模式。如上所述,一个实施方式的最佳编码模式是使成本函数最小化的模式。假设运动估计器96评估当前视频帧Fn的具有16X8分区(即,INTER—16X8模式;例如,参见图1)的原始16X16大小的宏块。在这点上,运动估计器96首先提取运动向量,就像16X16大小的宏块是INTER—16X16模式块一样,也就是说,与INTER—16X8模式块的上面分区和下面分区无关。考虑SAD分析器生成的二进制SAD图具有二进制值0011的示例。在这点上,SAD分析器确定SADo和SAD!小于预定阈值Thre—2,而SADs和SAD3超过预定阈值Thre—2。这意味着,SAD()和SAD!的结果足够精确,然而SADz和SAD3的结果并不如期望精确。这样,运动估计器从对应于下面分区的INTER—16X8才莫式块提取第二运动向量并且执行运动估计,从而可以对下面分区执行运动补偿预测。然而,由于SADo和SAD!的结果非常精确,不需要提取对应于INTER—16X8模式块的上面分区的运动向量,由此不需要针对该上面分区来执行运动估计和运动补偿预测。这样,降低了编码器68处的运动估计操作的数目。随后,运动补偿预测块94可以从最佳INTER模式(即,这个示例中在INTER—16X16模式和INTER—16X8模式的下面分区之中)和最佳INTRA模式之中选择最佳编码模式。如上所述,最佳编码模式可以是使成本函数最小化的模式。考虑这样的示例当运动估计器96对当前视频帧F。的具有16X8部分(即,INTER—8X16模式;例如,参见图1)的原始16X16大小的宏块进行评估时,SAD分析器生成的二进制SAD图具有二进制值1100。在这点上,SAD分析器确定SADo和SAD!超过预定阈值30Thre—2,而SAD2和SAD3小于预定阈值Thre—2。这意味着,SAD0和SAD:的结果并不如期望精确,然而SAD2和SAD3的结果足够精确。这样,运动估计器从对应于上面分区的INTER—16X8模式块提取第二运动向量并且执行运动估计,从而可以对上面分区执行运动补偿预测。然而,由于SAD2和SAD3的结果足够精确,不需要提取对应于INTER—16X8模式块的下面分区的运动向量,由此不需要针对下面分区执行运动估计和运动补偿预测。在这点上,由于减少了运动估计操作的数目,降低了编码器68的复杂度。随后,运动补偿预测块94可以从最佳INTER模式(即,这个示例中在INTER—16X16模式和INTER—16X8才莫式的上面分区之中)和最佳INTRA模式中选择最佳编码模式。最佳编码模式可以是使成本函数最小化的模式。图9A和图9B为根据本发明示例性实施方式的生成快速INTER模式决策算法的方法和程序产品的流程图。可以由能够在处理元件(诸如控制器20)或协处理器(可以是视频模块36的元件)的控制下操作的图5的编码器68来实现该快速INTER模式决策算法。这样,该流程图包括多个步骤,这些步骤的功能例如可以由诸如控制器20的处理元件或协处理器来执行。应当理解,可以通过诸如硬件和/固件的各种手段来实现这些步骤。在这些情形中,硬件和/或固件可以单独实施相应步骤和/或受控于一个或多个计算机程序产品。在这点上,这种计算机程序产品可以包括包含在计算机可读存储介质中的至少一个计算机可读程序代码部分,诸如一系列计算机指令。处理元件可以接收传入视频帧(例如,Fn),并且可以分析可能具有在^L频帧内分^:的多个才莫式(例如,INTER—16X16、INTER—16X8、INTER—8X16和INTER_8X8)的可变大小的16X16宏块。处理元件可以从视频帧的16X16宏块(这里称为"原始宏块")提取运动向量,并且执行运动估计和运动补偿预测以生成预测宏块。而且,处理元件可以对预测宏块和原始宏块之间的绝对差异和(SAD)进行比较。例如,为了实施本发明示例性实施方式的快速INTER模式决策算法,处理元件计算SKIP模式和ZERO—MOTION模式的SAD。也就是说,如本领域技术人员所知,处理元件分别计算SADsk!p和SADZER0—M0T。参见方框100。如此处定义,ZERO—MOTION模式表示提取的运动向量等于(0,0)的INTER一16X16模式,这表明在原始宏块和预测宏块之间没有运动或运动很小。如H.264/AVC标准定义,在SKIP模式中,编码器(例如,编码器68)并不向解码器发送任何运动向量或残差数据,该解码器仅使用预测的运动向量来重构该宏块。如果所预测的运动向量为(0,0),针对SKIP模式而生成的预测将等同于针对ZERO—MOTION模式而生成的预测。(这是因为,在H.264/AVC中,宏块中的每个运动向量都是被预测编码的。这就是说,运动向量的预测是使用先前宏块、但是在同一帧中的运动向量来形成的。该预测运动向量可以具有值(0,0),或者一些其它值。如果按照SKIP模式来编码宏块,如本领域技术人员所知,不会向解码器发送运动向量,而编码器假定宏块的运动向量与预测的运动向量相同。这样,如果预测的运动向量为(0,0),那么ZERO—MOTION模式将于SKIP模式相同。)如果处理元件确定SADs,小于预定阈值Thre—1或SADZERO—M0T小于预定阈值Thre—1,处理元件根据提供最小成本函数的模式在SKIP模式或ZERO—MOTION模式之间进行选择,并且不对INTRA模式进4亍进一步评估。处理元件继而将early—exit标志改变为1(这表示SKIP模式或ZERO—MOTION提供充足精确的预测结果)。参见方框102和124。否则,处理元件继而将early—exit标志改变为0(这表示SKIP模式和ZERO—MOTION并未提供具有预期精度的预测结果)。参见方框102。处理元件继而执行针对INTER—16X16模式的运动估计(ME),并且针对16X16宏块内的每个8X8块计算SAD,得到对应于16X16宏块的区域SAD16X16,0、SAD魔w!、SAD"踢,2和SAD16X16,j々4个SAD值。参见方框104;例如,还可参见图7。随后,处理元件确定SADT0TAL=SAD16x16,q+SADwmw+SAD16X162+SAD!6幻63是否大于预定阈值Thre3,如果大于,处理元件将early—exit标志改变为0,并且确定最佳INTRA模式(如本领域技术人员所知的确定)而不评估附加的INTER模式。参见方框106和126。换句话说,在针对INTERJ6X16模式块执行运动估计后,当SAD16X16,0+SADwxw,!+SAD16X16,2+SAD16X16,3的和(SADT0TAL)大于预定阈值Thre一3时,处理元件确定对于16X16宏块的分区而言,原始和预测的宏块之间的误差大(即,例如,对于诸如INTER—16X8、INTER—8X16和INTER—8X8模式的16X16模式宏块的其它INTER模式而言,该误差大)。这样,处理元件决定不耗费时间和成本来确定附加的INTER模式,而是确定最佳INTRA模式。如果SADTOTAL没有超过预定阈值Thre_3,处理元件继而生成包括对应于4个SAD区域(也就是SADo、SAD!、SADz和SAD3)的4个位的二进制SAD图。参见方框108。每个位对应于区域的SAD结果和预定阔值Thre_2之间的比较结果。如果SAD值小于预定阈值Thre一2,处理元件在二进制SAD图中为该相应区域指派二进制位0(例如,参考图8的SAD!)。另一方面,如果SAD值超过预定阈值Thre—2,处理元件在二进制SAD图中为该相应区域指派二进制位1(例如,参考图8的SADo)。取决于由处理元件生成的二进制SAD图,处理元件确定由下面表1列出的下列动作中的一个。参见方框IIO。<table>tableseeoriginaldocumentpage33</column></row><table>0101改变t/owe—76x5标志为0,<io_we_5x/6标志为1其它改变<io—me—/(5x5标志为1,t/o—me—标志为1表1如果处理元件确定对于二进制SAD图中的给定二进制值(例如,二进制值0000),do—me—/6xS标志为0,则处理元件继而确定针对相应二进制值的me—5x/6标志是否为0,如果是,该处理元件在先前执行运动估计的INTER才莫式和最佳INTRA模式中确定最佳INTER模式,并且基于使成本函数最小化的模式在最佳INTER模式和最佳INTRA模式之间进行选择,其中成本函数例如由J(MODE)|QP=SAD+XMODE.R(MODE)给出。参见方框112、118和122。否则,处理元件确定SAD16X1M+SAD!6x^是否大于预定阈值Thre—4,如果是,处理元件针对16X8宏块分区(例如,参见图1的INTER—16X8才莫式)的上面分区4丸行运动估计。否则,处理元件使用在INTER—16X16模式中找到的运动向量(MV)(在方框104中确定)作为上面分区的运动向量。以相似的方式,处理元件确定SAD16X16,2+SAD腦w,3是否超过预定阈值Thre—4,如果是,处理元件针对16X8宏块分区的下面分区执行运动估计。否则,处理元件使用在INTER—16X16模式中找到的运动向量(MV)(在方框104中确定)作为下面分区的运动向量。参见方框114。处理元件继而在针对INTER—16X8模式(即,16X8宏块分区)的运动估计过程之后计算SAD16X8,并且如果SAD腦s低于预定阔值Thre—1,处理元件改变do—we—&c/<5标志为0。参见方框116。如果t/o—/^一&c/6标志为0,处理元件在先前执行运动估计的INTER模式和最佳INTRA模式中确定最佳INTER模式,并且基于具有最低成本函数的模式在最佳INTER模式和最佳INTRA模式之间进行选择。参见方框118和122。其后,处理元件确定SAD16X16,。+SAD!④6,2是否大于预定阈值Thre_4,如果是,处理元件针对8X16宏块分区的左边分区执行运动估计。例如,参见图1的INTEI^8X16模式。否则,处理元件使用在INTER一16X16模式中找到的运动向量(在方框104中确定)作为8X16宏块分区的左边分区的运动向量。相似地,处理元件确定SADmxw+SADgi6,3是否大于预定阈值Thre—4,如果是,处理元件针对8X16宏块分区的右边分区执行运动估计。否则,处理元件使用在INTERJ6X16模式中找到的运动向量(在方框104中确定)作为8X16宏块分区的右边分区的运动向量。参见方框120。随后,处理元件在先前执行运动估计的INTER一莫式和最佳INTRA模式中确定最佳INTER模式,并且基于具有最低成本函数的模式在最佳INTER模式和最佳INTRA模式中进行选择。参见方框122。在本发明的示例性实施方式中,预定阈值Thre—1、Thre—2、Thre—3和Thre—4取决于具有分段线性函数的量化参数(QP)。下面的公式可以示出预定阈值值(Thre—1、Thre—2、Thre_3和Thre—4)对QP的依赖关系。T7^wm'《^"用来根据量化参数调节阈值。参数^^pMw/"户/e是预定义的常数,其用来确定SKIP和ZERO_MOTION模式的"及早退出(early-exit)"阈值。参数sat/Mw/^p/e/和^c/Mw/";p/e2是预定义的常数,其如上所述的在示例性实施方式中使用。参数ex"7b/w,ra77i是预定义的常数,其用来决定是否早先离开进入INTRA模式。35<formula>formulaseeoriginaldocumentpage36</formula>现在参考图10,其示出了由本发明示例性实施方式的编码器实现的平均复杂度降低的图形化表示。参考图10,prof3对应于本发明示例性实施方式的编码器(例如,编码器68),而prof2对应于传统的H.264编码器。如图IO所示,对于给定的视频序列(即,根据QCIF编码,15帧每秒176x144的分辨率的关于足球的视频序列),采用了上述快速INTER模式决策算法的本发明的编码器的运动估计操作数目为270,而传统H.264编码器则是471。如图所示,与传统的H.264编码器相比,在给定的比特率下,本发明示例性实施方式的编码器还实现了更低的峰值信噪比(PSNR)。现在转到图11,其按照比特率相对于秒每帧(即,Sec/Fmme)示出了由本发明的示例性编码器所实现的平均复杂度降低的图形化表示。参考图11,prof3对应于根据本发明示例性实施方式的编码器,而prof2对应于传统的H.264编码器。如图ll所说明,在给定比特率下,本发明示例性实施方式的编码器比传统的H.264编码器更快地编码;现频帧。参考图12,其示出了关于帧复杂度(即,视频帧的编码复杂度)的图形化表示。如这里所表示的,帧复杂度是以毫秒测量的基于奔腾(Pentium)的个人计算机的用于编码一帧的时间。在图12中,prof3对应于根据本发明示例性实施方式的编码器,而prof2对应于传统的H.264编码器。如图12所示,对于给定的视频帧,根据本发明示例性实施方式的编码器相比传统的H.264编码器,实现了18.06%的最大复杂度降低。应当理解,图9A和9B中所示的流程图的每个方框或步骤以及流程图中方框的组合可以通过诸如硬件、固件和/或包括一个或多个计算机程序指令的软件的各种手段来实现。例如,可以由计算机程序指令实现上述的一个或多个过程。在这点,实现上述过程的计算机程序指令可以由移动终端的存储器设备存储,并且由移动终端的内置处理器执行。将会意识到,任意这种计算机程序指令可以加载到计算机或其它可编程装置(即,硬件)以产生机器,使得在计算机或其它可编程装置上执行的指令产生用于实施在流程图方框或步骤中指明的功能的装置。这些计算机程序指令还可以存储在计算机可读存储中,可以指示计算机或其它可编程装置以特定方式运行,使得存储在计算机可读存储中的指令产生包括实施在流程图方框或步骤中指明的功能的指令工具的产品。计算机程序指令还可以装载入计算机或其它可编程装置,引起一系列的操作步骤以产生计算机实施过程,使得在计算机或其它可编程装置上执行的指令提供用于实施在流程图方框或步骤中指明的功能的步骤。因此,流程图的方框或步骤支持用于执行规定功能的装置的组合,用于执行规定功能的步骤的组合,以及用于执行规定功能的程序指令装置的组合。还可以理解,流程图的一个或多个方框或步骤以及流程图中方框或步骤的组合可以由执行规定功能或步骤的基于硬件的专用计算机系统或专用硬件和计算机指令的结合来执行。可以通过多种方式执行上述功能。例如,可以采用执行每个上述功能的任意合适装置来执行本发明。在一个实施方式中,本发明的全部或部分元件通常受计算机程序产品的控制而操作。用于执行本发明实施方式的方法的计算机程序产品包括诸如非易失性存储介质的计算机可读存储介质,以及诸如具体化到计算机可读存储介质中的一串计算机指令的计算机可读程序代码部分。受益于前面描述和相关附图所给出的启示,属于本发明的本领域技术人员可以想到在此记载的本发明的许多修改和其它实施方式。因此,可以理解,本发明并不局限于所公开的具体实施方式,而是意在将修改和其它实施方式包括在所附权利要求的范围之内。虽然这里采用了特定术语,它们仅作为一般性使用和描述意义,并不为了限制目的。例如,虽然参考具有16X8和8X16分区的宏块描述了本发明的快速INTER模式决策算法,可以理解,快速INTER模式决策算法可以容易地扩展到诸如8X8宏块分区的更小部分。而且,不脱离本发明的精神和范围,本发明实施方式的快速INTER模式决策算法可以扩展到子宏块(例如,8X8块大小的子宏块)和诸如8X4、4X8和4X4的子分区。另外,虽然上文中按照H.264/AVC视频编码标准解释本发明实施方式的快速INTER模式决策算法,但是可以理解,快速INTER模式决策算法适用于支持各种可变大小的块大小运动估计的任意一见频编码标准。权利要求1、一种使用运动补偿预测来选择用于编码宏块的模式的方法,所述方法包括从视频帧的至少一个宏块提取至少一个运动向量,所述至少一个宏块包括具有多个块大小的第一多个帧间模式;通过分析参考帧,基于所述至少一个运动向量来生成针对所述宏块的至少一个预测;以及将失真值与第一预定阈值进行比较,并且基于所述失真值与所述第一预定阈值的所述比较,在第一编码模式和第二编码模式中选择第一编码模式,而不对所述第二编码模式进行评估。2、根据权利要求1所述的方法,其中在比较失真值之前,将所述至少一个宏块的残差与对应于多个预定候选运动向量的另一预定阈值进行比较,并且其中所述多个预定候选运动向量包括多个运动向量的子集。3、根据权利要求2所述的方法,其中所述多个预定候选运动向量包括在x和y方向上具有值(0,0)的至少一个运动向量,以及预测的运动向量,所述预测的运动向量的值取决于对应于帧中宏块的运动向量的值。4、根据权利要求1所述的方法,进一步包括当所述至少一个宏块包括所述多个块大小中的第一块大小时,基于所述提取的运动向量来估计所述至少一个宏块的运动;以及当所述至少一个宏块包括所述多个块大小中的所述第一块大小时,计算多个失真值,所述多个失真值中的每个对应于所述至少一个宏块的相应区域。5、根据权利要求4所述的方法,进一步包括对所述多个区域的所述多个失真值求和,以产生总和;以及将所述总和与第二预定阈值进行比较,并且当所述总和超过所述第二预定阈值时,选择所述第二编码模式,而不对所述第一编码模式进行评估。6、根据权利要求4所述的方法,进一步包括生成包括多个位的二进制失真图,其中每个位的值对应于与第三预定阈值的比较,并且其中,当所述至少一个宏块包括所述多个块大小中的所述第一块大小时,每个位对应于所述至少一个宏块的相应区域。7、根据权利要求4所述的方法,进一步包括确定第一失真值和第二失真值的总和是否超过第四预定阈值,其中,当所述至少一个宏块包括所述多个块大小中的第二块大小时,所述第一失真值和所述第二失真值对应于所述至少一个宏块的第一分区;当所述第一失真值和所述第二失真值的所述总和超过所述第四预定阈值时,估计对应于所述第一分区的运动;以及当所述第一失真值和所述第二失真值的所述总和小于所述第四预定阈值时,当所述至少一个宏块包括所述多个块大小中的所述第一块大小时,使用从所述至少一个宏块提取的所述至少一个运动向量作为对应于所述第一分区的运动向量。8、根据权利要求7所述的方法,进一步包括确定第三失真值和第四失真值的总和是否超过所述第四预定阈值,其中,当所述至少一个宏块包括所述多个块大小中的所述第二块大小时,所述第三失真值和所述第四失真值对应于所述至少一个宏块的第二分区;当所述第三失真值和所述第四失真值的所述总和超过所述第四预定阈值时,估计对应于所述第二分区的运动;以及当所述第三失真值和所述第四失真值的所述总和小于所述第四预定阈值时,当所述至少一个宏块包括所述多个块大小中的所述第一块大小时,使用从所述至少一个宏块提取的所述至少一个运动向量作为对应于所述第二分区的运动向量。9、根据权利要求7所述的方法,进一步包括确定第五失真值和第六失真值的总和是否超过所述第四预定阈值,其中,当所述至少一个宏块包括所述多个块大小中的第三块大小时,所述第五失真值和所述第六失真值对应于所述至少一个宏块的第三分区;当所述第四失真值和所述第五失真值的所述总和超过所述第四预定阈值时,估计对应于所述第三分区的运动;以及当所述第五失真值和所述第六失真值的所述总和小于所述第四预定阈值时,当所述至少一个宏块包括所述多个块大小中的所述第一块大小时,使用从所述至少一个宏块提取的所述至少一个运动向量作为对应于所述第三分区的运动向量。10、根据权利要求9所述的方法,进一步包括确定第六失真值和第七失真值的总和是否超过所述第四预定阈值,其中,当所述至少一个宏块包括所述多个块大小中的所述第三块大小时,所述第六失真值和所述第七失真值对应于所述至少一个宏块的第四分区;当所述第六失真值和所述第七失真值的所述总和超过所述第四预定阈值时,估计对应于所述第四分区的运动;以及当所述第六失真值和所述第七失真值的所述总和小于所述第四预定阈值时,当所述至少一个宏块包括所述多个块大小中的所述第一块大小时,使用从所述至少一个宏块提取的所述至少一个运动向量作为对应于所述第四分区的运动向量。11、根据权利要求IO所述的方法,进一步包括在执行运动估计的所述第一、第二、第三块大小中确定最佳帧间模式;在候选帧内模式中确定最佳帧内模式;以及从所述最佳帧间模式和所述最佳帧内模式中选择具有最低成本函数的一个。12、根据权利要求1所述的方法,其中所述第一编码模式包括基于时间冗余的帧间编码模式,并且所述第二编码模式包括基于空间冗余的帧内编码模式。13、根据权利要求IO所述的方法,其中所述第一块大小大于所述第二和第三块大小,并且其中所述第二块大小包括水平分区,并且其中所述第三块大小包括垂直分区。14、一种用于执行运动补偿预测的计算机程序产品,所述计算机程序产品包括具有存储于其中的计算机可读程序代码部分的至少一个计算机可读存储介质,所述计算机可读程序代码部分包括第一可执行部分,用于从视频帧的至少一个宏块提取至少一个运动向量,所述至少一个宏块包括具有多个块大小的第一多个帧间模式;第二可执行部分,用于通过分析参考帧,基于所述至少一个运动向量来生成针对所述至少一个宏块的至少一个预测;以及第三可执行部分,用于将失真值与第一预定阈值进行比较,并且基于所述失真值与所述第一预定阈值的所述比较,在第一编码模式和第二编码模式中选择第一编码模式,而不对所述第二编码模式进行评估。15、根据权利要求14所述的计算机程序产品,进一步包括第六可执行部分,用于当所述至少一个宏块包括所述多个块大小中的第一块大小时,基于所述提取的运动向量来估计所述至少一个宏块的运动;以及第七可执行部分,用于当所述至少一个宏块包括所述多个块大小中的所述第一块大小时,计算多个SAD值,所述多个失真值中的每个对应于所述至少一个宏块的相应区域。16、根据权利要求15所述的计算机程序产品,进一步包括第八可执行部分,用于对所述多个区域的所述多个失真值求和以生成总和;以及第九可执行部分,用于将所述总和与第二预定阈值比较,并且当所述总和超过所述第二预定阈值时,选择所述第二编码模式,而不对所述第一编码模式进行评估。17、根据权利要求15所述的计算机程序产品,进一步包括第十可执行部分,用于生成包括多个位的二进制失真图,其中每个位的值对应于与第三预定阈值的比较,并且其中,当所述至少一个宏块包括所述多个块大小中的所述第一块大小时,每个位对应于所述至少一个预测宏块的相应区域。18、根据权利要求15所述的计算机程序产品,进一步包括第十一可执行部分,用于确定第一失真值和第二失真值的总和是否超过第四预定阈值,其中,当所述至少一个宏块包括所述多个块大小中的第二块大小时,所述第一失真值和第二失真值对应于所述至少一个宏块的第一分区;第十二可执行部分,用于当所述第一失真值和所述第二失真值的所述总和超过所述第四预定阈值时,估计对应于所述第一分区的运动;以及第十三可执行部分,用于当所述第一失真值和所述第二失真值的所述总和小于所述第四预定阈值时,当所述至少一个宏块包括所述多个块大小中的所述第一块大小时,使用从所述至少一个宏块提取的所述至少一个运动向量作为对应于所述第一分区的运动向量。19、根据权利要求18所述的计算机程序产品,进一步包括第十四可执行部分,用于确定第三失真值和第四失真值的总和是否超过所述第四预定阈值,其中,当所述至少一个宏块包括所述多个块大小中的所述第二块大小时,所述第三失真值和所述第四失真值对应于所述至少一个宏块的第二分区;第十五可执行部分,用于当所述第三失真值和所述第四失真值的所述总和超过所述第四预定阈值时,估计对应于所述第二分区的运动;以及第十六可执行部分,用于当所述第三失真值和所述第四失真值的所述总和小于所述第四预定阈值时,当所述至少一个宏块包括所述多个块大小中的所述第一块大小时,使用从所述至少一个宏块提取的所述至少一个运动向量作为对应于所述第二分区的运动向量。20、根据权利要求18所述的计算机程序产品,进一步包括第十七可执行部分,用于确定第五失真值和第六失真值的总和是否超过所述第四预定阈值,其中,当所述至少一个宏块包括第三块大小时,所述第五失真值和第六失真值对应于所述至少一个宏块的第三分区;第十八可执行部分,用于当所述第四失真值和所述第五失真值的所述总和超过所述第四预定阈值时,估计对应于所述第三分区的运动;以及第十九可执行部分,用于当所述第五失真值和所述第六失真值的所述总和小于所述第四预定阈值时,当所述至少一个宏块包括所述多个块大小中的所述第一块大小时,使用从所述至少一个宏块提取的所述至少一个运动向量作为对应于所述第三分区的运动向量。21、根据权利要求20所述的计算机程序产品,进一步包括第二十可执行部分,用于确定第六失真值和第七失真值的总和是否超过所述第四预定阈值,其中,当所述至少一个宏块包括所述多个块大小中的所述第三块大小时,所述第六失真值和第七失真值对应于所述至少一个宏块的第四分区;第二十一可执行部分,用于当所述第六失真值和所述第七失真值的所述总和超过所述第四预定阈值时,估计对应于所述第四分区的运动;以及第二十二可执行部分,用于当所述第六失真值和所述第七失真值的所述总和小于所述第四预定阈值时,当所述至少一个宏块包括所述多个块大小中的所述第一块大小时,使用从所述至少一个宏块提取的所述至少一个运动向量作为对应于所述第四分区的运动向量。22、根据权利要求21所述的计算机程序产品,进一步包括第二十三可执行部分,用于在执行运动估计的所述第一、第二、第三块大小中选择最佳帧间模式;第二十四可执行部分,用于在候选帧内模式中确定最佳帧内模式;以及第二十五可执行部分,用于从所述最佳帧间模式和所述最佳帧内模式中选择具有最低成本函数的一个。23、根据权利要求14所述的计算机程序产品,其中所述第一编码模式包括基于时间冗余的帧间编码模式,并且所述第二编码模式包括基于空间冗余的帧内编码模式。24、根据权利要求21所述的计算机程序产品,其中所述第一块大小大于所述第二和第三块大小,并且其中所述第二块大小包括水平分区,并且其中所述第三块大小包括垂直分区。25、一种用于执行运动补偿预测的设备,该设备包括运动估计器,其被配置用于从视频帧的至少一个宏块提取至少一个运动向量,所述至少一个宏块包括具有多个块大小的第一多个帧间才莫式;运动补偿预测设备,其被配置用于通过分析参考帧,基于所述至少一个运动向量来生成针对所述宏块的至少一个预测;以及处理元件,其与所述运动估计器和所述运动补偿预测设备通信,所述处理元件被配置用于将失真值与第一预定阈值进行比较;以及所述处理元件进一步被配置用于基于所述失真值与所述第一预定阈值的所述比较,在第一编码模式和第二编码模式中选择第一编码模式,而不对所述第二编码模式进行评估。26、根据权利要求25所述的设备,其中所述处理元件进一步被配置用于当所述至少一个宏块包括所述多个块大小中的第一块大小时,基于所述提取的运动向量来估计所述至少一个宏块的运动;以及所述处理元件进一步被配置用于当所述至少一个宏块包括所述多个块大小中的所述第一块大小时,计算多个失真值,所述多个失真值中的每个对应于所述至少一个宏块的相应区域。27、根据权利要求26所述的设备,其中所述处理元件进一步被配置用于对所述多个区域的所述多个失真值求和以产生总和;以及所述处理元件进一步被配置用于将所述总和与第二预定阈值进行比较,并且当所述总和超过所述第二预定阈值时,所述处理元件进一步被配置用于选择所述第二编码模式,而不对所述第一编码模式进行评估。28、根据权利要求26所述的设备,其中所述处理元件进一步被配置用于生成包括多个位的二进制失真图,其中每个位的值对应于与第三预定阈值的比较,并且其中,当所述至少一个宏块包括所述多个块大小中的所述第一块大小时,每个位对应于所述至少一个宏块的相应区i或。29、根据权利要求26所述的设备,其中所述处理元件进一步被配置用于确定第一失真值和第二失真值的总和是否超过第四预定阈值,其中,当所述至少一个宏块包括所述多个块大小中的第二块大小时,所述第一失真值和所述第二失真值对应于所述至少一个宏块的第一分区;所述处理元件进一步被配置用于当所述第一失真值和所述第二失真值的所述总和超过所述第四预定阈值时,估计对应于所述第一分区的运动;以及所述处理元件进一步被配置用于当所述第一失真值和所述第二失真值的所述总和小于所述第四预定阈值时,当所述至少一个宏块包括所述多个块大小中的所述第一块大小时,使用从所述至少一个宏块提取的所述至少一个运动向量作为对应于所述第一分区的运动向量。30、根据权利要求29所述的设备,其中所述处理元件进一步被配置用于确定第三失真值和第四失真值的总和是否超过所述第四预定阈值,其中,当所述至少一个宏块包括所述多个块大小中的所述第二块大小时,所述第三失真值和所述第四失真值对应于所述至少一个宏块的第二分区;所述处理元件进一步被配置用于当所述第三失真值和所述第四失真值的所述总和超过所述第四预定阈值时,估计对应于所述第二分区的运动;以及所述处理元件进一步被配置用于当所述第三失真值和所述第四失真值的所述总和小于所述第四预定阈值时,当所述至少一个宏块包括所述多个块大小中的所述第一块大小时,使用从所述至少一个宏块提取的所述至少一个运动向量作为对应于所述第二分区的运动向量。31、根据权利要求29所述的设备,其中所述处理元件进一步被配置用于确定第五失真值和第六SAD值的总和是否超过所述第四预定阈值,其中,当所述至少一个宏块包括所述多个块大小中的第三块大小时,所述第五失真值和第六失真值对应于所述至少一个宏块的第三分区;所述处理元件进一步被配置用于当所述第四失真值和所述第五失真值的所述总和超过所述第四预定阈值时,估计对应于所述第三分区的运动;以及所述处理元件进一步被配置用于当所述第五失真值和所述第六失真值的所述总和小于所述第四预定阈值时,当所述至少一个宏块包括所述多个块大小中的所述第一块大小时,使用从所述至少一个宏块提取的所述至少一个运动向量作为对应于所述第三分区的运动向量。32、根据权利要求31所述的设备,其中所述处理元件进一步被配置用于确定第六失真值和第七失真值的总和是否超过所述第四预定阈值,其中,当所述至少一个宏块包括所述多个块大小中的所述第三块大小时,所述第六失真值和第七失真值对应于所述至少一个宏块的第四分区;所述处理元件进一步被配置用于当所述第六失真值和所述第七失真值的所述总和超过所述第四预定阈值时,估计对应于所述第四分区的运动;以及所述处理元件进一步被配置用于当所述第六失真值和所述第七失真值的所述总和小于所述第四预定阈值时,当所述至少一个宏块包括所述多个块大小中的所述第一块大小时,使用从所述至少一个宏块提取的所述至少一个运动向量作为对应于所述第四分区的运动向量。33、根据权利要求32所述的设备,其中所述处理元件进一步被配置用于在执行运动估计的所述第一、第二、第三块大小中确定最佳帧间模式;所述处理元件进一步被配置用于在候选帧内模式中确定最佳帧内模式;以及所述处理元件进一步被配置用于从所述最佳帧间模式和所述最佳帧内模式中选择具有最低成本函数的一个。34、根据权利要求25所述的设备,其中所述第一编码模式包括基于时间冗余的帧间编码模式,并且所述第二编码模式包括基于空间冗余的帧内编码模式。35、根据权利要求25所述的设备,其中所述设备实现为编码器。36、一种移动终端,包括被配置用于执行一个或多个视频序列的视频模块,其中所述视频模块包括根据权利要求25所述的设备。全文摘要一种用于降低执行运动补偿预测中的运动估计操作数目的设备,包括运动估计器、运动补偿预测设备和处理元件。运动估计器被配置用于从视频帧的宏块提取运动向量。该宏块包括帧间模式,该帧间模式是块大小。运动补偿预测设备被配置用于通过分析参考帧中的相应宏块,基于运动向量来生成预测宏块。处理元件与运动估计器和运动补偿预测设备通信。处理元件还将失真值与第一预定阈值进行比较,并且基于失真值与第一预定阈值的比较,在第一编码模式和第二编码模式中选择第一编码模式,而不对第二编码模式进行评估。文档编号H04N7/32GK101480056SQ200780024486公开日2009年7月8日申请日期2007年2月27日优先权日2006年6月30日发明者J·莱内玛,K·乌格尔申请人:诺基亚公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1