用于视频编码的运动估计技术的制作方法

文档序号:7858147阅读:140来源:国知局
专利名称:用于视频编码的运动估计技术的制作方法
技术领域
本揭示涉及数字视频处理,尤其涉及视频序列的编码。
背景数字视频能力可被结合进各种各样的设备中,包括数字电视、数字直接广播系统、无线通信设备、个人数字助理(PDA)、膝上计算机、台式机、数码相机、数字记录设备、蜂窝或卫星无线电电话等等。这些和其它数字视频设备在创建、修改、发送、储存、记录和播放全运动视频序列中提供胜过常规模拟视频系统的显著改进。
已经建立了多种不同的视频编码标准用于编码数字视频序列。例如,运动图像专家组(MPEG)开发了若干标准,包括MPEG-1、MPEG-2和MPEG-4。其它标准包括ITU H.263、由加利福尼亚州的库珀蒂诺市的苹果公司开发的QuickTimeTM技术、由华盛顿州雷蒙德市的微软公司开发的Video for WindowsTM、由英特尔公司开发的IndeoTM、华盛顿州西雅图市的RealNetworks公司的RealVideoTM以及SuperMac公司开发的CinepakTM。这些和其它标准,包括即将开发的标准,将继续发展。
许多视频编码标准通过以压缩的方式编码数据来实现提高的传输速率。压缩可降低为视频帧的有效传输所需要发送的数据总量。例如,MPEG标准使用图形和视频压缩技术,该技术被设计成可在窄于不使用压缩可获得的带宽上方便地传输视频和图像。具体地,MPEG标准支持使用连续视频帧之间的相似性的视频编码技术,称为时间或帧间相关性,来提供帧间压缩。帧间压缩技术通过将视频帧的基于像素的表示转换成运动的表示来利用在各帧之间的数据冗余。另外,视频编码技术可使用帧内的相似性,称为空间或帧内相关性,以进一步压缩视频帧。帧内压缩通常基于用于压缩静止图像的纹理编码过程,如离散余弦变换(DCT)编码。
为支持压缩技术,许多数字视频设备都包括用于压缩数字视频序列的编码器,以及用于解压数字视频序列的解码器。在许多情况下,编码器和解码器形成了对定义视频图像序列的帧内像素块进行操作的集成编码器/解码器(编解码器(CODEC))。例如,在MPEG-4标准中,发送设备的编码器通常将要发送的视频帧划分成包含较小图像块的宏块。对于视频帧中的每一宏块,编码器在宏块中搜索紧接的前一视频帧,以标识最相似的宏块,并对要发送的宏块之间的差进行编码,以及指示使用前一帧的哪一宏块来编码的运动矢量。接收设备的解码器接收运动矢量和编码的差,并执行运动补偿来生成视频序列。
视频编码过程是计算密集型的,尤其是在使用运动估计时。例如,将要编码的视频块与先前发送的帧的视频块相比较的过程需要大量的计算。因此,非常期望改进的编码技术,尤其是用于计算资源更有限并且功率消耗非常重要的无线设备或其它便携式视频设备。同时,期望改进的压缩来减少视频序列的有效传输所需的带宽。这些因素的一个或多个的改进都可方便或改进视频序列的实时编码,尤其是在无线和其它有限带宽设置中。
概述本发明描述了可用于编码视频序列的视频编码技术。例如,视频编码器技术可涉及基于要编码的视频帧内的一组视频块的运动矢量来标识在搜索空间中与视频块相关联的像素位置。该组视频块中的视频块可包括位于相对要编码的视频帧的当前视频块确定的位置上的视频块。然后可在标识的像素位置上对当前视频块进行初始化一运动估计例程。通过基于与视频帧内的一组视频块相关联的所计算的运动矢量来标识在搜索空间中与视频块相关联的像素位置,从而可更容易地利用空间冗余现象来加速并改进编码过程。在各种示例中,初始化的位置可使用基于在相对要编码的视频块的确定位置上的一组视频块的运动矢量的线性或非线性函数来计算。例如,可使用基于该组视频块的运动矢量的中值函数、平均值函数或加权函数。
在搜索空间内在像素位置上进行编码视频帧的当前视频块的初始化运动估计例程之后,可执行编码当前视频块的运动估计例程。为减少编码过程中的计算的数量,运动估计例程可包括搜索空间内视频块的非穷举搜索。例如,运动估计例程可包括定义初始化的像素位置周围的半径为(R)的圆、以及将要编码的当前视频块与同该圆内的一组像素位置相关联的搜索空间的视频块相比较。该圆可足够大,以包括至少五个像素。然而,通过将该圆定义成足够大来包括至少九个像素,如中央像素和围绕该中央像素的八个像素,可通过在每一方向上预期视频运动来改进该过程。也可使用更大或更小的圆。该例程还可包括在圆中标识产生最低差值的视频块的像素位置、以及当该像素位置对应于圆心时,使用由该圆内标识产生最低差值的视频块的像素位置定义的运动矢量来编码当前视频块。
然而,如果圆内标识产生最低差值的视频块的像素位置不对应于半径为(R)的圆的圆心,则可在该圆内标识产生最低差值的视频块的像素位置周围定义一新的半径为(R′)的圆。在这一情况下,该例程还可包括确定半径为(R′)的圆内标识产生最低差值的视频块的像素位置、以及当该像素位置对应于半径为(R′)的圆的圆心时,使用由该像素定义的运动矢量编码当前视频块。该例程可以类似的方式继续,在需要时定义另外的圆,直到产生最低差值的视频块对应于圆心。
后文更详细地描述的这些和其它技术可在数字视频设备中以硬件、软件、固件或其任一组合来实现。如果以软件实现,则该技术针对包括程序代码的计算机可读媒质,当该程序代码被执行时,则可执行本发明所描述的编码技术中的一个或多个。各种实施例的另外的细节在所附权利要求书中陈述,并在后文描述。阅读以下描述和附图以及权利要求书,可以清楚其它特征、目的和优点。
附图简要描述

图1所示是其中源设备向接收设备发送已编码的视频数据序列的示例系统的框图。
图2所示是结合了编码数字视频序列的视频编码器的示例数字视频设备的框图。
图3是视频数据的示例宏块的概念图示。
图4是示例搜索空间的概念图示。
图5所示是可在数字视频设备中实现来初始化运动估计例程的视频编码技术的流程图。
图6-8是其中使用类似于图5所示的技术编码当前视频块的示例性视频帧的概念图示。
图9所示是可在数字视频设备中实现来执行运动估计的视频编码技术的流程图。
图10-13是其中执行类似于图9所示的视频编码技术来查找可接受的运动矢量的搜索空间的概念图示。
图14所示是可在数字视频设备中实现来改进实时视频编码的视频编码技术的流程图。
详细描述一般而言,本揭示针对可用于改进数字视频数据的编码的编码技术。这些技术可由数字视频设备的编码器执行,以减少某些情形下的计算量、加速处理时间、提高数据压缩、并有可能在视频编码过程中减少功率消耗。以这一方式,这些编码技术可改进依照诸如MPEG-4的标准的视频编码,并有利于在计算资源更有限且功率消耗非常重要的无线设备内实现视频编码。另外,这些技术可被配置成保持与诸如MPEG-4解码标准等解码标准的互操作能力。
本发明描述的视频编码技术可实现一种利用空间冗余现象的初始化技术。空间冗余一般可预测给定视频块的视频运动可能类似于在空间上邻近给定视频块的另一视频块的视频运动。该初始化技术可更容易地利用这一现象,以在搜索空间内具有包括可用于有效视频编码的视频块的非常高概率的位置上进行初始化运动估计。
更具体地,该初始化技术可使用对空间上邻近要编码的视频块的视频块计算的运动矢量,以在搜索空间内标识可初始化运动估计例程的位置,即,搜索空间内运动估计例程开始的像素位置。例如,如后文更详细地描述的,可基于先前对空间上邻近要编码的当前视频块的视频块所确定的运动矢量,来计算平均值像素位置、中值像素位置或使用加权函数计算的像素位置。也可使用其它线性或非线性函数。在任一情况下,通过以这一方式初始化运动估计例程,可通过减少在搜索空间内查找作为对要编码的视频块的可接受匹配的视频块所需的比较的数量,来加速视频编码。该运动估计例程可包括搜索空间内的非穷举搜索。由此,搜索空间内的初始化可以是编码过程的一个重要部分,它提供了可能在给定的处理时间内产生改进的计算结果的起始点。
本发明也描述了可用于在初始化之后快速标识可接受运动矢量的运动估计技术。该运动估计技术可执行搜索空间的非穷举搜索,以限制所执行的计算的数量。在一个示例中,运动估计例程可包括在初始化的像素位置周围定义半径为(R)的圆、以及将要编码的当前视频块与同该圆内的一组像素位置相关联的搜索空间的视频块相比较。该例程还可包括标识该圆内标识产生最低差值的视频块的像素位置、以及当所标识的像素位置对应于圆心时,使用由所标识的像素位置所定义的运动矢量来编码当前视频块。
如果该圆内标识产生最低差值的视频块的所标识的像素位置不对应于半径为(R)的圆的圆心,则可在该像素位置周围定义一新的半径为(R′)的圆。半径(R)可以等于半径(R′),尽管本技术不限于这一关系。在任一情况下,该运动估计例程还可包括在半径为(R′)的圆内确定标识产生最低差值的视频块的像素位置、以及当该像素位置对应于半径为(R′)的圆的圆心时,使用由该像素位置所定义的运动矢量来编码当前视频块。该运动估计例程可以类似的方式继续,在需要时定义另外的圆,直到产生最低差值的视频块对应于圆的中心。在许多情况下,产生最低差值的视频块可在空间上接近初始估计。通过定义圆直到产生最低差值的视频块对应于圆心,可非常快速地精确定位可接受的运动矢量,并可减少不需要的比较和计算。
本发明也描述了可用于改进实时编码的其它编码技术,尤其是当计算资源有限时。例如,在视频帧的视频编码过程中,可监控可用计算资源。如果非常快速地编码了视频帧的较早视频块,则可标识所节省的计算。在该情况下,如期望,可使用更穷举的搜索技术来编码同一视频帧的较晚的视频块,因为与较早的视频块相关联的所节省的计算可提供给较晚的视频块的编码使用。
本发明描述的技术能够提供一个或多个优点。例如,这些技术可有利于在视频编码过程中降低功率消耗,并可通过加速运动估计例程方便有效的实时视频编码。这些技术也可在视频质量和压缩方面改进视频编码,尤其是当计算资源有限时。具体地,这些技术相对于诸如常规的菱形搜索技术等某些常规搜索技术可提高数据压缩程度。本发明描述的编码技术在计算资源和带宽更有限,并且功率消耗非常重要的无线数字视频设备或其它便携式视频设备中尤其有用。
图1所示是示例系统2的框图,其中,源设备4通过通信链路6向接收设备8发送已编码的视频数据序列。源设备4和接收设备8都是数字视频设备。具体地,源设备4使用诸如由运动图像专家组开发的MPEG-4等多种视频压缩标准中的任一种来编码并发送视频数据。其它标准可包括由运动图像专家组开发的MPEG-1、MPEG-2或其它MPEG标准、ITU H.263和类似的标准、由加利福尼亚州库珀蒂诺市的苹果公司开发的QuickTimeTM技术、由华盛顿州雷蒙德市的微软公司开发的Video for WindowsTM、由英特尔公司开发的IndeoTM、以及由SuperMac公司开发的CinepakTM。
通信链路6可包括无线链路、物理传输线、诸如局域网等基于分区的网络、广域网、或诸如因特网等全球网络、公用交换电话网(PSTN)或各种链路和网络的组合。换言之,通信链路6表示用于将视频数据从源设备4发送到接收设备8的任一合适的通信媒质,或可能是不同的网络和链接的组合。
源设备4可以是能够编码和发送视频数据的任一数字视频设备。例如,源设备4可包括用于储存数字视频序列的存储器22、用于编码序列的视频编码器20、以及用于通过通信链路6发送已编码的序列的发送器14。例如,视频编码器可包括执行定义编码技术的可编程软件模块的数字信号处理器(DSP)。
源设备4也可包括用于捕捉视频序列并在存储器22中储存捕捉的序列的图像传感器23,如视频照相机。在某些情况下,源设备4可通过通信链路6发送实时视频序列。在那些情况下,接收设备8可接收实时视频序列,并向用户显示视频序列。
接收设备8可以是能够接收并解码视频数据的任一数字视频设备。例如,接收设备8可包括用于接收已编码的数字视频序列的接收器15、用于解码序列的解码器16、以及用于向用户显示序列的显示屏18。
源设备4和接收设备8的示例包括位于计算机网络上的服务器、工作站或其它台式计算设备、以及诸如膝上计算机或个人数字助理(PDA)等移动计算设备。其它示例包括数字电视广播卫星和诸如数字电视机等接收设备、数码相机、数码摄像机或其它数字记录设备、诸如蜂窝无线电话和具有视频能力的卫星无线电话等数字视频电话、其它无线视频设备等等。
在某些情况下,源设备4和接收设备8的每一个包括一用于编码和解码数字视频数据的编码器/解码器(编解码器)(未示出)。在该情况下,源设备4和接收设备8都可包括发送器和接收器,以及存储器和显示屏。后文描述的许多编码技术在包括编码器的数字视频设备的环境中描述。然而,可以理解,编码器可形成编解码器的一部分。在该情况下,编解码器可以DSP、微处理器、专用集成电路(ASIC)、分立硬件组件或其各种组合来实现。
例如,源设备4可对视频帧的序列内的像素块进行操作,以编码视频数据。例如,源设备4的视频编码器20可执行运动估计编码技术,其中,要发送的视频帧被划分成像素块(称之为视频块)。对于视频帧中的每一视频块,源设备的视频编码器20搜索储存在存储器22中的视频块,以找出已发送的前一视频帧(或后一视频帧),来标识类似的视频块,并对视频块之间的差进行编码,以及标识用于编码的前一帧(或后一帧)的视频块的运动矢量。运动矢量可定义与视频块的左上角相关联的像素位置,尽管也可使用运动矢量的其它格式。在任一情况下,通过使用运动矢量来编码视频块,可显著地减少传输视频数据流所需的带宽。在某些情况下,源设备4可支持可编程阈值,它可在编码过程中促使各种比较或计算的终止,以减少计算数量并保存功率。
接收设备8的接收器15可接收诸如运动矢量和已编码差的格式的已编码视频数据。解码器16执行运动补偿技术以生成视频序列,用于通过显示屏18向用户显示。接收设备8的解码器16也可以编码器/解码器(编解码器)来实现。在该情况下,源设备4和接收设备8能够编码、发送、接收和解码数字视频序列。
图2所示是示例数字视频设备10的框图,如结合了依照本发明描述的一个或多个技术来编码数字视频序列的视频编码器20的源设备4。示出的示例性数字视频设备10为无线设备,如移动计算设备、个人数字助理(PDA)、无线通信设备、无线电话等等。然而,本揭示中的技术不必要限于无线设备,可方便地应用到包括非无线设备的其它数字视频设备中。
在图2的示例中,数字视频设备10通过发送器14和天线12发送压缩的数字视频序列。视频编码器20在发送之前编码视频序列,将已编码的数字视频序列缓存在视频存储器22中。例如,如上所述,视频编码器20可包括可编程数字信号处理器(DSP)、微处理器、一个或多个专用集成电路(ASIC)、专用硬件组件或这些设备和组件的各种组合。存储器22可储存计算机可读指令和数据,由视频编码器20在编码过程中使用。例如,存储器22可包括同步动态随机存取存储器(SDRAM)、闪存、电可擦除可编程只读存储器(EPROM)等等。
在某些情况下,数字视频设备10包括用于捕捉视频序列的图像传感器23。例如,图像传感器23可捕捉视频序列,并在编码前将它们储存在存储器22中。图像传感器23也可直接耦合至视频编码器22,以实时改进视频编码。实现后文描述的初始化例程和/或运动估计例程的编码技术可加速编码过程、降低功率消耗、提高数据压缩、并可能有利于具有相对有限的处理能力设备的实时视频编码。
作为示例,图像传感器23可包括照相机。具体地,图像传感器23可包括电荷耦合装置(CCD)、电荷注入装置、光电二极管阵列、互补金属氧化物半导体(CMOS)装置、或能够捕捉视频图像或数字视频序列的任一其它的感光装置。
视频编码器20可包括控制编码算法执行的编码控制器24。视频编码器20也可包括执行本发明描述的运动估计技术的运动编码器26。如需要,视频编码器20也可包括诸如纹理编码器(未示出)等执行通常用于压缩静止图像的帧内压缩,如离散余弦变换(DCT)编码的附加组件。例如,除运动估计之外可执行纹理编码,或可能在认为处理能力对有效运动估计太有限的情况下用其替代运动估计。
视频编码器20的组件可包括在DSP上执行的软件模块。可选地,视频编码器20的一个或多个可包括为执行本发明所描述的技术的一个或多个方面而专门设计的硬件组件,或一个或多个ASIC。
图3以可储存在存储器22中的宏块31的形式示出了示例视频块。MPEG标准和其它视频编码模式在运动估计视频编码过程中可利用宏块模式的视频块。在MPEG标准中,术语“宏块”指的是来自视频帧子集的像素值的16×16的集合。每一像素值可由一字节的数据表示,尽管也可使用更多或更少数量的比特来定义每一像素以实现期望的成像质量。宏块可包括若干更小的8×8的像素图像块32。然而,一般而言,本发明描述的编码技术可使用任意确定大小的块来操作,如16字节×16字节的宏块、8字节×8字节的图像块,或者如有需要,用不同大小的视频块。
图4示出了可储存在存储器中的示例搜索空间41。搜索空间41是对应于先前发送的视频帧(或一系列视频帧的后一视频帧)的视频块的集合。搜索空间可包括前一或有意视频帧的整体,或者如有需要,包括视频帧的子集。如图所示,搜索空间可以是矩形的,或可假定各种各样的形状和大小的任一种。在任一情况下,在视频编码过程中,将要编码的当前帧与搜索空间中的块相比较,以标识适当的匹配,使得当前块和搜索空间中相似的视频块之间的差可连同标识该相似视频块的运动矢量一起发送。
初始化技术可利用空间冗余现象,使得当前视频块42与搜索空间41中的视频块的初始比较更可能标识可接受的匹配。例如,后文描述的技术可用于标识像素位置43,它可标识搜索空间中最初与视频块42进行比较的视频块。对接近最佳匹配视频块的位置的初始化可提高查找最佳运动矢量的似然性,并可减少查找可接受的运动矢量所需的平均搜索数量。例如,初始化可为运动估计例程提供改进的起始点,以及给定处理时间段内改进的计算结果。
在运动估计视频编码过程中,运动编码器26可使用诸如绝对差之和(SAD)技术或平方差之和(SSD)技术等比较技术将要编码的当前帧与先前的视频块进行比较。也可使用其它比较技术。
SAD技术涉及执行要编码的当前块的像素值与对其比较当前块的前一块的像素值之间的绝对差比较的任务。将这些绝对差比较的结果相加,即累加,以定义指示当前视频块和对其比较当前视频块的前一视频块之间的差的差值。对于8×8的像素图像块,可计算并相加64个差,对于16×16的像素宏块,可计算并相加256个差。较低的差值一般指示与当前视频块进行比较的视频块是较佳的匹配,并且由此是在运动估计编码过程中可使用的比产生较高差值的视频块更好的候选块。在某些情况下,当累加的差值超过一定义的阈值时,可终止计算。在该情况下,不需要额外的计算,因为与当前视频块进行比较的视频块无法被接受用于有效地进行运动估计编码SSD技术也涉及执行要编码的当前块的像素值与对其比较当前块的前一块的像素值之间的差计算的任务。在SSD技术中,对绝对差计算的结果求平方,然后将平方的值相加,即累加,以定义指示当前视频块和与当前块进行比较的前一视频块之间的差的差值。可选地,可执行诸如均方误差(MSE)、标准化互相关函数(NCCF)等其它比较技术或另一合适的比较算法。
图5所示是可在数字视频设备中实现初始化运动估计例程的视频编码技术的流程图。在图5的示例中,视频编码器20使用中值函数来计算搜索空间中初始化的像素位置。然而,可使用其它线性或非线性函数来应用同一原理,如平均值或加权函数。
如图5所示,为初始化当前视频块的编码,编码控制器24计算相邻视频块的运动矢量的中值X坐标像素位置(51)。类似地,编码控制器24计算相邻视频块的运动矢量的中值Y坐标像素位置(52)。换言之,使用了先前计算的与位于相对于要编码的当前视频块的确定位置的一组视频块相关联的运动矢量来计算中值X和Y坐标。相邻的视频块可形成位于相对于当前视频块的确定位置的一组视频块。例如,取决于实现,可定义该组视频块包括或排除某些视频块。在任一情况下,然后,在中值X和Y坐标上初始化当前当前视频块的运动估计(53)。运动估计器26然后使用常规搜索技术或类似于后文所详细描述的搜索技术来搜索当前视频块的可接受的运动矢量(54)。
图6是在其中使用类似于图5所示的技术编码当前视频块的示例性视频帧的概念图示。具体地,可使用先前计算的与位于相对于当前视频块63的确定位置的一组视频块相关联的运动矢量来初始化当前视频块63的运动估计。在图6中,位于确定位置的该组视频块包括邻块1(62A)、邻块2(62B)和邻块3(62C)。然而,如所提及的,该组可以各种其它格式来定义,包括或排除位于相对于当前视频块63的各种位置的视频块。
在图6的示例中,可通过以下公式来定义搜索空间中用于执行当前块63的运动估计的初始化位置X初始=中值(XMV1,XMV2,XMV3)Y初始=中值(YMV1,YMV2,YMV3)可选地,可使用平均值函数,在这一情况下,可通过以下公式定义搜索空间用于执行当前块63的运动估计的初始化位置X初始=平均值(XMV1,XMV2,XMV3)Y初始=平均值(YMV1,YMV2,YMV3)也可使用相邻视频块和要编码的当前视频块之间的其它线性或非线性数学公式或关系。
在任一情况下,通过定义运动估计搜索的初始化的位置,可通过提高快速标识要编码的视频块和搜索空间中的视频块之间的可接受匹配的概率来加速编码。如图7所示(与图6相比),形成用于生成初始化位置的一组视频块的相邻视频块包括在相对于当前视频块63的位置的其它确定位置中的块。在许多情况下,邻块62相对于当前块63的位置可取决于编码帧61的视频块的方向。
例如,当前视频块63的已编码的相邻视频块一般具有已计算的运动矢量,而尚未编码的其它相邻视频块一般没有运动矢量。由此,如果视频块的编码从左到右、从上到下地进行,从帧61的最左上的视频块开始,则可使用包括当前视频块63的相邻视频块的子集的邻块62A-62C(图6)。可选地,如果视频块的编码从右到左、从下到上地进行,从帧61的最右下的视频块开始,则可使用包括当前视频块63的相邻视频块的不同子集的邻块62D-62F(图7)。依照本揭示的原理,可定义用于生成初始化位置的视频块组的许多其它变异。例如,如果在视频序列中发生了非常高等级的运动,则可在该组中包括相对于当前视频块63比紧靠的相邻块更远离视频块63的确定的视频块位置。
图5的初始化技术可能无法用于要编码的帧61的第一个视频块,因为在该点上,相邻视频块的运动矢量不可用。然而,一旦标识了相邻视频块的一个或多个运动矢量,初始化例程可在其后的任一时刻开始。在一个特定的情况下,初始化技术可以对第二行中的第二个视频块的编码开始。在该点之前,通常不定义三个相邻块的运动矢量。然而,在其它情况下,初始化例程可在对要编码的视频块的至少一个邻块计算运动矢量的任一时刻开始。
如图8所示,可使用与当前视频块63的更大量邻块相关联的运动矢量来计算搜索空间中的初始化位置。由于对更多的邻块计算了更多的运动矢量,可使用更多的运动矢量来计算用于在当前视频块上执行运动估计的初始位置。在某些情况下,为更完全地利用空间相关现象,在计算初始位置时,可对与空间上邻近当前视频块42的邻块相关联的运动矢量给予比与空间上远离当前视频块42的邻块相关联的运动矢量更大的权值。换言之,可使用诸如加权平均值或加权中值等加权函数来计算初始化像素位置。例如,可对与邻块1-4(62A、62B、62C和62G)相关联的运动矢量给予比与邻块5-10(62H-62M)相关联的运动矢量更大的权值,因为邻块1-4在统计上更可能是运动估计编码中使用的视频块。阅读本揭示,可以清楚这些和其它可能的修改。
图9所示是可在数字视频设备中实现以执行运动估计的视频编码技术的流程图。该技术可涉及搜索空间中的视频块的非穷举搜索,以减少视频编码所需的计算数量。如图所示,编码控制器24基于对帧的相邻视频块计算的运动矢量初始化运动估计(91)。例如,初始化过程可包括类似于图5所示的过程,其中,用于初始化的相邻视频块包括位于相对于要编码的当前视频块的确定位置的一组视频块。
一旦计算了初始化位置,运动估计器26标识由初始化位置的半径(R)的圆内的像素位置定义的一组视频块(92)。例如,半径(R)可以足够大,以定义包括至少五个像素的圆,尽管也可定义更大的半径。更优选地,半径(R)足够大,以定义包括至少9个像素的圆,即,初始化位置以及紧密地围绕初始化位置的所有八个像素位置。初始化位置以及紧密围绕初始化位置的所有八个像素位置的包括可通过期望相对于初始化位置的每一可能方向中的运动矢量来改进搜索技术。
运动估计器26然后将要编码的当前视频块与由圆内的像素位置所定义的视频块相比较(93)。运动估计器26然后可在圆内标识产生最低差值的视频块。如果右半径为(R)的圆的圆心定义的视频块产生最低差值,即,如由使用的比较技术所定义的最低差度量(94的“是”分支),则运动估计器26可使用标识由半径为(R)的圆的圆心定义的视频块的运动矢量来编码当前视频块(95)。例如,可使用上文描述的SAD或SSD比较。然而,如果右半径为(R)的圆的圆心定义的视频块不产生最低差值(94的“否”分支),则运动估计器26标识由标识产生最低差值的视频块的像素位置的半径(R′)内的像素位置定义的视频块(96)。
运动估计器26然后将要编码的视频块与由半径为(R′)的圆内的像素位置定义的视频块相比较。运动估计器26可在半径为(R′)的圆内标识产生最低差值的视频块。如果由半径为(R′)的圆的圆心定义的视频块产生最低差值,即如由使用的比较技术所定义的最低差度量(94的“是”分支),则运动估计器26使用标识由半径为(R′)的圆的圆心定义的视频块的运动矢量编码当前视频块(95)。然而,如果由半径为(R′)的圆的圆心定义的视频块不产生最低差值(94的“否”分支),则运动估计器26继续定义又一半径为(R″)的圆的过程,依此类推。
如有需要,在产生最低差值的像素位置周围定义的每一随后的圆可具有与前一圆相同的半径,或不同的半径。通过定义相对于标识搜索空间中产生最低差值的视频块的最近依次标识的像素位置的半径,可在不需要搜索空间的穷举搜索的情况下快速地标识运动估计中使用的最佳视频块。另外,仿真示出了如图9所示的搜索技术可实现相对于常规菱形搜索技术的改进压缩,该常规技术操作以将与位于像素的一菱形组的中心的像素关联的像素块的差值最小化。
图10-13是在其中执行类似于图9所示的视频编码技术来查找可接受的运动矢量的搜索空间的概念图示。网格中的每一点表示标识搜索空间中的唯一视频块的像素位置。该运动估计例程可在像素位置(X5,Y6)上初始化,如通过执行图5所示的初始化例程。在查找了初始化位置(X5,Y6)之后,运动估计器26定义半径为(R)的圆,并将与半径为(R)的圆内的像素位置相关联的搜索空间中的视频块与要编码的当前视频块相比较。运动估计器26然后在半径为(R)的圆内标识产生最低差值的视频块。
如果运动估计器26确定像素位置(X6,Y7)标识产生最低差值的视频块,则运动估计器26在像素位置(X6,Y7)周围定义半径为(R′)的圆,如图11所示。运动估计器26然后将与半径为(R′)的圆内的像素位置相关联的搜索空间中的视频块与要编码的当前视频块相比较。如果运动估计器26确定像素位置(X6,Y8)标识产生最低差值的视频块,则运动估计器26在像素位置(X6,Y8)周围定义又一半径为(R″)的圆,如图12所示。运动估计器26然后将与半径为(R″)的圆内的像素位置相关联的搜索空间中的视频块与要编码的当前视频块相比较。如果运动估计器26确定像素位置(X7,Y9)标识产生最低差值的视频块,则运动估计器26在像素位置(X7,Y9)周围定义再一半径为(R)的圆,。运动估计器26然后将与半径为(R)的圆内的像素位置相关联的搜索空间中的视频块与要编码的当前块相比较。最终,运动估计器26应当定位对应于圆心的产生最低差值的像素位置。在该点上,运动估计器可使用同样对应于圆心的产生最低差值的像素位置作为当前视频块的运动矢量。
在定义每一新圆时,仅需要执行与未包括在前一圆中的像素位置相关联的比较。换言之,参考图11,对于半径为(R′)的圆,在该点上,仅需执行与像素位置(Y8,X5)、(Y8,X6)、(Y8,X7)、(Y7,X7)和(Y6,X7)相关联的视频块。与半径为(R′)的圆内的其它像素位置,即(Y7,X5)、(Y7,X6)、(Y6,X5)和(Y6,X6)相关联的视频块已与半径为(R)的圆(图10)有关地执行。
半径(R)、(R′)、(R″)、(R)等等可彼此相等或不等,取决于实现。同样,在某些情况下,可定义半径使得在每一组中包括更大数量的像素,这可提高查找最佳运动矢量的似然性。然而,更大的半径将增加对任一给定搜索的计算数量。然而,在任一情况下,在产生最低差值的每一像素周围定义圆可具有优于其它技术的优点。例如,当在像素位置周围定义圆时,可在比较过程中检查每一邻近的像素位置。换言之,紧密围绕中心像素的所有八个像素位置可被包括在定义的圆内。仍可避免需要由搜索空间中的每一像素定义的每一可能视频块的比较的穷举搜索,这可获得加速的视频编码。
图14所示是可在数字视频设备中实现以改进实时视频编码的另一视频编码技术的流程图。如图所示,编码控制器24初始化要编码的视频帧的当前视频块的运动估计(141)。例如,初始化过程可包括类似于参考图5-8示出并描述的过程,其中,标识搜索空间内的初始像素位置。另外,初始化过程可包括定义可被执行来编码当前视频块的搜索的范围。如果当前视频块是要对视频帧编码的第一个视频块,则可由被编程到编码控制器24中的默认值定义搜索范围。
在初始化之后,运动估计器26在搜索空间内搜索运动矢量,以编码当前视频块(142)。例如,搜索和编码过程可包括类似于参考图9-13示出并描述的过程,其中,在像素位置周围定义圆,直到产生最低差值的像素位置对应于圆心。可限制搜索范围,如通过限制可产生搜索的时间量,或通过限制使用的圆的大小。再次,可通过上述初始化来定义搜索范围。
如果要编码的视频帧包括其它视频块(143的“是”分支),则编码控制器24标识该帧剩余的计算资源量(144)。编码控制器24然后初始化要编码的视频帧的随后视频块的运动估计(141)。如果在较早的视频块的编码过程中实现了计算节省,则与对编码前一视频块可用的资源相比,可用资源量得以增加。计算资源可由视频编码器的时钟速度定义,并且按照每秒的帧数来发送视频序列所期望的分辨率。
当编码控制器24初始化要编码的视频帧的随后视频块的运动估计时,初始化过程再次包括定义搜索范围的过程。然而,在该情况下,搜索范围可基于标识的可用计算资源量。由此,如果非常快速地执行了第一个视频块的编码,则可使用更穷举的搜索来编码随后的视频块。例如,当更多的计算资源可用时,可增大用于在像素位置周围定义圆的半径。这些或类似的技术都可在计算资源有限时改进实时视频编码的质量,如通过改进已编码视频块的压缩比。一旦编码了视频帧的所有视频块(143的“否”分支),则设备10可通过发送器14和天线12发送已编码的帧(145)。
表1列出了在上文相对其它常规技术描述的技术的仿真过程中收集的数据。编码在具有相对大量的运动视频序列上实现。也使用常规的菱形搜索技术以及在其中将搜索空间的所有视频块与要编码的视频块进行比较的穷举搜索技术来编码同一视频序列。对于每一技术,表1列出了文件大小、信噪比、每一宏块的平均搜索数量、每一宏块的最大搜索数量、以及在最坏情况下帧所需的搜索的数量。标签“圆搜索”指的是使用类似于图5和图9的过程的编码技术。如通过表1可理解的,本发明描述的技术能够以相对常规菱形搜索的减少的搜索数量来实现改进的压缩。本发明描述的技术可能无法实现全搜索的压缩级别。然而,在本示例中,圆搜索技术仅需要每一宏块17.2次搜索的平均值,这与菱形搜索需要每一宏块21.3次搜索以及全搜索需要每一宏块1024次搜索形成对比。
表1


描述了众多不同的实施例。例如,描述了用于初始化搜索空间中的搜索视频编码技术,以及用于执行该搜索的运动估计技术。这些技术能够通过避免某些情形下的计算、加速编码过程、改进压缩、并可能减少视频编码过程中的功率消耗来改进视频编码。以这一方式,这些技术可改进依照诸如MPEG-4等标准的视频编码,并可更好地方便计算资源有限且功率消耗非常重要的无线设备中的视频编码的实现。另外,这些技术不会影响与诸如MPEG-4解码标准等解码标准的可互操作性。
然而,可以在不脱离所附权利要求书的范围的情况下作出各种修改。例如,可将初始化例程扩展到计算搜索空间内的多个初始像素位置。例如,可基于相对于要编码的视频块的确定位置的一组视频块的运动数量,使用不同的线性或非线性函数来计算两个或多个初始化位置。同样,可使用位于相对于要编码的视频块的确定位置的两个或多个不同的视频块组来计算两个或多个初始化位置。在某些情形下,两个或多个初始化位置的计算可进一步加速编码过程。阅读本揭示,可以清楚这些和其它修改。
本发明描述的技术可以硬件、软件、固件或其任一组合实现。如果以软件实现,则这些技术可针对包括程序代码的计算机可读媒质,当在编码符合MPEG-4标准的视频序列的设备中执行这些代码时,将执行上文描述的方法中的一个或多个。在该情况下,计算机可读媒质可包括随机存取存储器(RAM),如同步动态随机存取存储器(SDRAM)、只读存储器(ROM)、非易失随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存等等。
程序代码可以计算机可读指令的形式储存在存储器中。在该情况下,诸如DSP等处理器可执行储存在存储器中的指令以实现本发明描述的技术的一个或多个。在某些情况下,这些技术可由调用各种硬件组件的DSP执行以加速编码过程。在其它情况下,视频编码器可以微处理器、一个或多个专用集成电路、一个或多个现场可编程门阵列(FPGA)、或某一其它硬件一软件组合来实现。这些和其它实施例都包含于所附权利要求书的范围之内。
权利要求
1.一种设备,其特征在于,它包括一编码器,它使用一编码例程来编码视频帧,所述编码例程包括基于与一视频帧内的一组视频块相关联的计算运动矢量来标识一与搜索空间内的一视频块相关联的像素位置,所述组中的视频块位于相对于要编码的所述视频帧的当前视频块的确定位置上,以及对在所标识的像素位置上的所述当前视频块初始化一运动估计例程;以及一发送器,它发送所编码的视频帧。
2.如权利要求1所述的设备,其特征在于,标识所述像素位置包括基于与位于相对于所述当前视频块的确定位置上的所述视频块组中的视频块相关联的运动矢量来计算一组像素坐标。
3.如权利要求2所述的设备,其特征在于,计算所述像素坐标组包括基于位于相对于所述当前视频块的确定位置上的所述视频块组中的视频块的运动矢量来计算一中值。
4.如权利要求2所述的设备,其特征在于,计算所述像素坐标组包括基于位于相对于所述当前视频块的确定位置上的所述视频块组中的视频块的运动矢量来计算一平均值。
5.如权利要求2所述的设备,其特征在于,计算所述像素坐标组包括基于位于相对于所述当前视频块的确定位置的所述视频块组中的视频块的运动矢量来计算一加权函数,其中,在所述加权函数中,向与空间上更邻近所述当前视频块的所述视频组中的视频块相关联的运动矢量给予比与空间上更远离所述当前视频块的所述视频块组中的视频块相关联的运动矢量更大的权值。
6.如权利要求1所述的设备,其特征在于,所述编码器使用所述运动估计例程来编码所述当前视频块,所述运动估计例程包括在所标识的像素位置周围定义一半径为(R)的圆;将所述当前块与同所述圆内的像素位置相关联的搜索空间的视频块相比较;标识所述圆内标识产生最低差值的视频块的像素位置;以及当所述圆内标识产生最低差值的视频块的所标识的像素位置对应于所述圆的圆心时,使用由所述圆内标识产生最低差值的视频块的所标识的像素位置定义的运动矢量来编码所述当前视频块。
7.如权利要求1所述的设备,其特征在于,所述编码器使用所述运动估计例程来编码所述当前视频块,所述运动估计例程包括基于可用于编码所述当前视频帧的确定的计算资源量动态地调整要执行的计算数量。
8.一种设备,其特征在于,它包括一编码器,它通过以下步骤编码视频帧为编码视频帧的当前视频块,在搜索空间内的一像素位置上初始化一运动估计例程;在所述像素位置周围定义一半径为(R)的圆;将所述当前视频块与同所述圆内的一组像素位置相关联的搜索空间的视频块相比较;标识所述圆内标识产生最低差值的视频块的像素位置;以及当所标识的像素位置对应于所述圆的圆心时,使用由所标识的像素位置所定义的运动矢量来编码所述当前视频块;以及一发送器,它发送所编码的视频帧。
9.如权利要求8所述的设备,其特征在于,当所述半径为(R)的圆内标识产生最低差值的视频块的所标识的像素位置不对应于所述圆的圆心时,所述编码器通过以下步骤编码所述视频帧在不对应于所述半径为(R)的圆的圆心的、标识产生最低差值的视频块的所述像素位置周围定义另一半径为(R′)的圆;标识所述半径为(R′)的圆内标识产生最低差值的视频块的像素位置;当所述半径为(R′)的圆内标识产生最低差值的视频块的所述像素位置对应于所述半径为(R′)的圆的圆心时,使用所述半径为(R′)的圆内标识产生最低差值的视频块的所述像素位置定义的运动矢量来编码所述当前视频块。
10.如权利要求9所述的设备,其特征在于,R近似等于R′。
11.如权利要求9所述的设备,其特征在于,当所述半径为(R)的圆内标识产生最低差值的视频块的所述像素位置不对应于所述半径为(R′)的圆的圆心时,所述编码器通过以下步骤编码所述视频帧在不对应于所述半径为(R′)的圆的圆心的、标识产生最低差值的视频块的所述像素位置周围定义另一半径为(R″)的圆;标识所述半径为(R″)的圆内标识最低差值的视频块的像素位置;以及当所述半径为(R″)的圆内标识产生最低差值的视频块的所述像素位置对应于所述半径为(R″)的圆的圆心时,使用由所述半径为(R″)的圆内标识产生最低差值的视频块的所述像素位置所定义的运动矢量来编码所述当前视频帧。
12.如权利要求8所述的设备,其特征在于,所述设备选自以下组数字电视机、无线通信设备、个人数字助理、膝上计算机、台式机、数码相机、数码记录设备、具有视频能力的蜂窝无线电话、以及具有视频能力的卫星无线电话。
13.一种视频编码方法,其特征在于,它包括基于一视频帧内一组视频块的运动矢量来标识搜索空间内的一像素位置,所述组中的视频块位于相对于要编码的所述视频帧的当前视频块的确定位置上;以及在所标识的像素位置上为所述当前视频块来初始化一运动估计例程。
14.如权利要求13所述的方法,其特征在于,位于相对于所述当前视频块的确定位置上的所述组中的所述视频块包括与所述当前视频块相邻的视频块。
15.如权利要求13所述的方法,其特征在于,标识所述像素位置包括基于为位于相对于所述当前视频块的确定位置上的所述视频块组中的视频块所计算的运动矢量来计算一组像素坐标。
16.如权利要求15所述的方法,其特征在于,计算所述像素坐标组包括基于为位于相对于所述当前视频块的确定位置上的所述视频块组中的视频块计算的运动矢量来计算一中值。
17.如权利要求15所述的方法,其特征在于,计算所述像素坐标组包括基于为位于相对于所述当前视频块的确定位置上的所述视频块组中的视频块计算的运动矢量来计算一平均值。
18.如权利要求15所述的方法,其特征在于,计算所述像素坐标组包括基于为位于相对于所述当前视频块的确定位置上的所述视频块组中的视频块计算的运动矢量来计算一加权函数,其中,在所述加权函数中,对为空间上更邻近所述当前视频块的所述组中的视频块计算的运动矢量给予比为空间上更远离所述当前视频块的所述组中的视频块计算的运动矢量更大的权值。
19.如权利要求13所述的方法,其特征在于,它还包括使用所述运动估计例程来编码所述当前视频帧。
20.如权利要求29所述的方法,其特征在于,所述运动估计例程包括在所标识的像素位置周围定义一半径为(R)的圆;将所述当前视频块与同所述圆内的像素位置相关联的搜索空间的视频块相比较;标识所述圆内标识产生最低差值的视频块的像素位置;以及当所述圆内标识产生最低差值的视频块的所标识的像素位置对应于所述圆的圆心时,使用由所述圆内标识产生最低差值的视频块的所标识的像素位置定义的运动矢量来编码所述当前视频块。
21.如权利要求20所述的方法,其特征在于,当所述圆内标识产生最低差值的所标识的像素位置不对应于所述圆的圆心时在所述圆内标识产生最低差值的视频块的所标识的像素位置周围定义另一半径为(R′)的圆;标识所述半径为(R′)的圆内标识产生最低差值的视频块的像素位置;以及当所述半径为(R′)的圆内标识产生最低差值的视频块的所标识的像素位置对应于所述半径为(R′)的圆的圆心时,使用由所述半径为(R′)的圆内标识产生最低差值的视频块的所标识的像素位置定义的运动矢量来编码所述当前视频块。
22.如权利要求19所述的方法,其特征在于,所述运动估计例程包括基于可用于编码所述当前视频块的确定的计算资源量动态地调整要执行的计算数量。
23.一种方法,其特征在于,它包括为编码视频帧的当前视频块,在搜索空间内的一像素位置上初始化一运动估计例程;在所述像素位置周围定义一半径为(R)的圆;将所述当前视频块与同所述圆内的一组像素位置相关联的搜索空间的视频块相比较;标识所述圆内标识产生最低差值的视频块的像素位置;以及当所标识的像素位置对应于所述圆的圆心时,使用由所标识的像素位置定义的运动矢量来编码所述当前视频块。
24.如权利要求23所述的方法,其特征在于,它还包括当所标识的像素位置不对应于所述圆的圆心时在所标识的像素位置周围定义另一半径为(R′)的圆;标识所述半径为(R′)的圆内标识产生最低差值的视频块的像素位置;以及当所述半径为(R′)的圆内标识产生最低差值的视频块的所标识的像素位置对应于所述半径为(R′)的圆的圆心时,使用由所述半径为(R′)的圆内标识产生最低差值的视频块的所标识的像素位置定义的运动矢量来编码所述当前视频帧。
25.如权利要求24所述的方法,其特征在于,R近似等于R′。
26.如权利要求24所述的方法,其特征在于,它还包括当所述半径为(R′)的圆内标识产生最低差值的视频块的所标识的像素位置不对应于所述半径为(R′)的圆的圆心时在所述半径为(R′)的圆内标识产生最低差值的视频块的所标识的像素位置周围定义另一半径为(R″)的圆;标识所述半径为(R″)的圆内标识产生最低差值的视频块的像素位置;以及当所述半径为(R″)的圆内标识产生最低差值的视频块的所标识的像素位置对应于所述半径为(R″)的圆的圆心时,使用由所述半径为(R″)的圆内标识产生最低差值的视频块的所标识的像素位置定义的运动矢量来编码所述当前视频块。
27.一种装置,其特征在于,它包括一存储器,它储存计算机可执行指令;以及一处理器,它执行所述指令,以便基于与一视频帧内一组视频块相关联的计算的运动矢量来标识与搜索空间内一视频块相关联的一像素位置,所述组中的视频块位于相对于要编码的当前视频块的确定的位置上;以及在所标识的像素位置上为所述当前视频块初始化一运动估计例程。
28.如权利要求27所述的装置,其特征在于,所述处理器基于位于相对于所述当前视频块的确定位置上的所述视频块组中的视频块相关联的运动矢量来计算一中值,用于标识所述像素位置。
29.如权利要求27所述的装置,其特征在于,所述处理器基于位于相对于所述当前视频块的确定位置上的所述视频块组中的视频块的像素坐标来计算一平均值,用于标识所述像素位置。
30.如权利要求27所述的装置,其特征在于,所述处理器基于位于相对于所述当前视频块的确定位置上的所述视频块组中的视频块的运动矢量来计算一加权函数,用于标识所述像素位置,其中,在所述加权函数中,向所述组中与空间上更邻近所述当前视频块的视频块相关联的运动矢量给予比所述组中与空间上更远离所述当前视频块的视频块相关联的运动矢量更大的权值。
31.如权利要求27所述的装置,其特征在于,所述处理器执行所述指令以执行所述运动估计例程,其中,所述运动估计例程包括在所标识的像素位置周围定义一半径为(R)的圆;将所述当前视频块与同所述圆内的像素位置相关联的搜索空间的视频块相比较;标识所述圆内标识产生最低差值的视频块的像素位置;以及当所述圆内标识产生最低差值的视频块的所述像素位置对应于所述圆的圆心时,使用由所述圆内标识产生最低差值的视频块的所述像素位置定义的运动矢量来编码所述当前视频块。
32.如权利要求27所述的装置,其特征在于,所述处理器执行所述指令以执行所述运动估计例程,其中,所述运动估计例程包括基于可用于编码所述当前视频块的确定的计算资源量动态地调整要执行的计算的数量。
33.一种装置,其特征在于,它包括一存储器,它储存计算机可执行指令;以及一处理器,它执行所述指令,以便为编码一视频帧的当前视频块,在搜索空间内的一像素位置上初始化一运动估计例程;在所述像素位置周围定义一半径为(R)的圆;将所述当前块与同所述圆内一组像素位置相关联的搜索空间的视频块相比较;标识所述圆内标识产生最低差值的视频块的像素位置;以及当所述圆内标识产生最低差值的视频块的所述像素位置对应于所述圆的圆心时,使用由所述圆内标识产生最低差值的视频块的所述像素位置定义的运动矢量来编码所述当前视频块。
34.如权利要求33所述的装置,其特征在于,当所述半径为(R)的圆内标识产生最低差值的视频块的所述像素位置不对应于所述圆的圆心时,所述处理器执行指令,以便在不对应于所述半径为(R)的圆心的、标识产生最低差值的视频块的所述像素位置周围定义另一半径为(R′)的圆;标识所述半径为(R′)的圆内标识产生最低差值的视频块的像素位置;以及当所述半径为(R′)的圆内标识产生最低差值的视频块的所述像素位置对应于所述半径为(R′)的圆的圆心时,使用由所述半径为(R′)的圆内标识产生最低差值的视频块的所述像素位置定义的运动矢量来编码所述当前视频块。
35.一种依照MPEG-4标准编码视频块的装置,其特征在于,所述装置基于与一视频帧内一组视频块相关联的计算的运动矢量来标识与搜索空间内一视频块相关联的一像素位置,所述视频块组位于相对于要编码的所述视频帧的当前视频块的确定位置上;以及在所标识的像素位置上为所述当前视频块初始化一运动估计例程。
36.如权利要求35所述的装置,其特征在于,所述装置包括一数字信号处理器,它执行计算机可读指令以依照MPEG-4标准编码所述视频块。
37.一种依照MPEG-4标准编码视频块的装置,其特征在于,所述装置为编码一视频帧的当前视频块,在搜索空间中的一像素位置上初始化一运动估计例程;在所述像素位置周围定义一半径为(R)的圆;将所述当前视频块与同所述圆内一组像素位置相关联的搜索空间的视频块相比较;标识所述圆内标识产生最低差值的视频块的像素位置;以及当所述圆内标识产生最低差值的视频块的所述像素位置对应于所述圆的圆心时,使用由所述圆内标识产生最低差值的视频块的所述像素位置定义的运动矢量来编码所述当前视频块。
38.如权利要求37所述的装置,其特征在于,所述装置包括一数字信号处理器,它执行计算机可读指令以依照MPEG-4标准编码所述视频块。
39.一种包括指令的计算机可读媒质,其特征在于,当在编码符合MPEG-4标准的视频序列的设备中执行所述指令时基于与一视频帧内一组视频块相关联的计算的运动矢量来标识与搜索空间内一视频块相关联的一像素位置,所述组中的视频块位于相对于要编码的所述视频帧的当前视频块的确定位置上;以及在所标识的像素位置上为所述当前视频块初始化一运动估计例程。
40.如权利要求29所述的计算机可读媒质,其特征在于,位于相对于所述当前视频块的确定位置上的所述视频块包括与所述当前视频块相邻的视频块。
41.如权利要求39所述的计算机可读媒质,其特征在于,它还包括指令,当所述指令被执行时,通过基于与位于相对于所述当前视频块的确定位置上的所述视频块组中的视频块相关联的运动矢量来计算一组像素坐标,用于标识所述像素位置。
42.如权利要求41所述的计算机可读媒质,其特征在于,计算所述像素坐标组包括基于位于相对于所述当前视频块的确定位置上的所述视频块组中的视频块的运动矢量来计算一中值。
43.如权利要求41所述的计算机可读媒质,其特征在于,计算所述像素坐标组包括基于位于相对于所述当前视频块的确定位置上的所述视频块组中的视频块的运动矢量计算一平均值。
44.如权利要求41所述的计算机可读媒质,其特征在于,计算所述像素坐标组包括基于与位于相对于所述当前视频块的确定位置上的所述视频块组中的视频块相关联的运动矢量来计算一加权函数,其中,在所述加权函数中,对与空间上更邻近所述当前视频块的所述组中的视频块相关联的运动矢量给予比空间上更远离所述当前视频块的所述组中的视频块相关联的运动矢量更大的权值。
45.如权利要求29所述的计算机可读媒质,其特征在于,它还包括指令,当所述指令被执行时,使用所述运动估计例程来编码所述当前视频块。
46.如权利要求45所述的计算机可读媒质,其特征在于,所述运动估计例程包括在所标识的像素位置周围定义一半径为(R)的圆;将所述当前视频块与同所述圆内的像素位置相关联的搜索空间的视频块相比较;标识所述圆内标识产生最低差值的视频块的像素位置;以及当所述圆内标识产生最低差值的视频块的所述像素位置对应于所述圆的圆心时,使用由所述圆内标识产生最低差值的视频块的所述像素位置定义的运动矢量来编码所述当前视频块。
47.如权利要求46所述的计算机可读媒质,其特征在于,所述运动估计例程还包括当所述半径为(R)的圆内标识产生最低差值的视频块的所述像素位置不对应于所述圆的圆心时在不对应于所述半径为(R)的圆的圆心的、标识产生最低差值的视频块的所述像素位置周围定义另一半径为(R′)的圆;标识所述半径为(R′)的圆内标识产生最低差值的视频块的像素位置;以及当所述半径为(R′)的圆内标识产生最低差值的视频块的所述像素位置对应于所述半径为(R′)的圆的圆心时,使用所述半径为(R′)的圆内标识产生最低差值的视频块的所述像素位置定义的运动矢量来编码所述当前视频帧。
48.如权利要求45所述的计算机可读媒质,其特征在于,所述运动估计例程包括基于可用于编码所述当前视频块的确定的计算资源量动态地调整要执行的计算数量。
49.一种包括指令的计算机可读媒质,其特征在于,当在编码符合MPEG-4的视频序列的设备中执行所述指令时为编码一视频帧的当前视频块,在搜索空间内的一像素位置上初始化一运动估计例程;在所述像素位置周围定义一半径为(R)的圆;将所述当前视频块与同所述圆内的一组像素位置相关联的搜索空间的视频块相比较;标识所述圆内标识产生最低差值的视频块的像素位置;以及当所述圆内标识产生最低差值的视频块的所述像素位置对应于所述圆的圆心时,使用由所述圆内标识产生最低差值的视频块的所述像素位置定义的运动矢量来编码所述当前视频块。
50.如权利要求49所述的计算机可读媒质,其特征在于,当所述半径为(R)的圆内标识产生最低差值的视频块的所述像素位置不对应于所述圆的圆心时,当所述指令被执行时在不对应于所述半径为(R)的圆的圆心的、标识产生最低差值的视频块的所述像素位置周围定义另一半径为(R′)的圆;标识所述半径为(R′)的圆内标识产生最低差值的视频块的像素位置;以及当所述半径为(R′)的圆内标识产生最低差值的视频块的所述像素位置对应于所述半径为(R′)的圆的圆心时,使用由所述半径为(R′)的圆内标识产生最低差值的视频块的所述像素位置定义的运动矢量来编码所述当前视频块。
51.如权利要求50所述的计算机可读媒质,其特征在于,R近似等于R′。
52.如权利要求50所述的计算机可读媒质,其特征在于,当所述半径为(R′)的圆内标识产生最低差值的视频块的所述像素位置不对应于所述半径为(R′)的圆的圆心时,当所述指令被执行时在不对应于所述半径为(R′)的圆的圆心的、标识产生最低差值的视频块的所述像素位置的周围定义另一半径为(R″)的圆;标识所述半径为(R″)的圆内标识产生最低差值的视频块的像素位置;当所述半径为(R″)的圆内标识产生最低差值的视频块的所述像素位置对应于所述半径为(R″)的圆的圆心时,使用由所述半径为(R″)的圆内标识产生最低差值的视频块的所述像素位置定义的运动矢量来编码所述的当前视频帧。
53.一种装置,其特征在于,它包括用于基于与一视频帧内一组视频块相关联的计算的运动矢量来标识与搜索空间内一视频块相关联的一像素位置的装置,所述组中的视频块位于相对于要编码的所述视频帧的当前视频块的确定位置上;以及用于在所标识的像素位置上为所述当前视频块初始化一运动估计例程的装置。
54.一种装置,其特征在于,它包括用于为编码一视频帧的当前帧,在搜索空间内一像素位置上初始化一运动估计例程的装置;用于在所述像素位置周围定义一半径为(R)的圆的装置;用于将所述当前视频块与同所述圆内的一组像素位置相关联的搜索空间的视频块相比较的装置;用于标识所述圆内标识产生最低差值的视频块的像素位置的装置;以及用于当所述圆内标识产生最低差值的视频块的所述像素位置对应于所述圆的圆心时,使用由所述圆内标识产生最低差值的视频块的所述像素位置定义的运动矢量来编码所述当前视频帧的装置。
全文摘要
描述了一种视频编码技术。在一个示例中,一种视频编码技术包括基于与要编码的视频帧内的一组视频块相关联的运动矢量来标识与搜索空间内一视频块相关联的一像素位置,其中,该组中的视频块空间上位于相对于要编码的视频帧的当前视频块的确定的位置上。然后,可在所标识的像素位置上为当前视频块进行初始化运动估计例程。通过基于与视频帧内一组视频块相关联的运动矢量来标识与搜索空间内一视频块相关联的一像素位置,可更容易地利用空间冗余现象来加速并改进编码过程。
文档编号H04N7/26GK1663280SQ03814278
公开日2005年8月31日 申请日期2003年6月18日 优先权日2002年6月18日
发明者N·马拉亚斯, C·常, S·加里尔 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1