利用缩放后的运动搜索识别运动矢量候选的方法与设备与流程

文档序号:13677279阅读:164来源:国知局
利用缩放后的运动搜索识别运动矢量候选的方法与设备与流程

本发明公开涉及用在诸如视频编码器/解码器的设备中的编码。



背景技术:

视频编码正变成现代视频处理设备的公共特征。健壮的编码算法允许视频信号以降低的带宽发送并且存储在较小的存储器中。但是,这些编码算法的准确性面临着正变得习惯于更高分辨率和更高图像质量的用户的详细审查。已经颁发了用于许多编码方法的标准,包括也称为MPEG-4第10部分或者高级视频编码(AVC)的H.264标准。尽管这些标准阐述了许多强有力的技术,但是,提高此类方法的实现的性能与速度的许多改进还是有可能的。例如,期望提高用于识别由此类标准所使用的运动矢量的技术的性能。



技术实现要素:

根据本发明的各方面,提供了在所附权利要求中所述的方法和设备。

根据本发明的其它方面,提供了一种方法,包括:在运动搜索引擎处评估一组运动矢量候选,以确定被编码的目标图片的宏块的运动矢量,其中所述一组运动矢量候选是基于传递函数确定的,所述传递函数给缩放后图片的宏块的坐标和与所述缩放后图片的宏块对应的运动矢量之间的关系建模,其中所述缩放后图片是基于目标图片。所述缩放后图片可以代表与目标图片相同但具有较低分辨率的图像。所述传递函数可以是线性传递函数。所述方法还可以包括:基于线性回归算法确定所述传递函数。所述方法还可以包括:基于所述缩放后图片的宏块的位置的一部分确定所述传递函数。所述传递函数可以包括与所述缩放后图片的宏块的第一部分相关联的第一方程式和与所述缩放后图片的宏块的第二部分相关联的第二方程式。所述方法还可以包括:确定包括利用所述传递函数计算出的第一运动矢量,并且第二运动矢量是从目标图片而不是从缩放后图片预测的运动矢量。

附图说明

图1图示了代表根据本公开各实施例的各种视频设备的框图。

图2图示了根据本公开一实施例的视频设备的框图表示。

图3图示了根据本公开一实施例的图2视频编码器/解码器的框图表示。

图4更具体地图示了根据本公开一特定实施例的代表图3的部分的框图。

图5图示了根据本公开一实施例的代表图4的搜索模块的框图。

图6图示了根据本公开一实施例的代表图5的SMV建模工具(modeler)的框图。

图7图示了根据本公开一特定实施例的图5的缩放后运动矢量加权模块386的操作的流程图表示。

图8图示了根据本公开一特定实施例的图5的候选控制模块的操作的流程图表示。

具体实施方式

图1图示了根据本公开的具有视频编码能力的设备10的框图表示。在各种实施例中,设备10可以是具有内建的数字视频记录器功能的机顶盒、独立的数字视频记录器、通用计算机,等等。设备10可以是便携式或者非便携式设备。例如,具有自备电源的便携式设备包括手持式设备、膝上型计算机,等等。设备10包括具有运动矢量变换模块12的视频编码器/解码器11,其中运动矢量变换模块12使用传递函数来确定可以由运动搜索引擎用作运动矢量候选的一组估计的运动矢量。在一种实施例中,传递函数可以基于通过运动搜索与被编码的缩放后视频流相关联的缩放后图片而确定的一组缩放后的运动矢量(SMV)。因而,通过拟合算法对SMV进行评估,其中该拟合算法确定给缩放后视频图片的宏块的位置和所述宏块的对应运动矢量之间的关系建模的传递函数。传递函数还可以用于进一步细化提供给运动搜索引擎的运动矢量候选,其中运动搜索引擎确定更高分辨率的目标视频流的运动矢量。尽管是从通用角度来说明的,但是设备10包括能够根据结合图2-8和所附权利要求所述的方法与系统编码、解码和/或代码转换(transcode)视频内容的任何设备。

图2是根据本公开一实施例的视频设备10的框图表示。具体地,图2的视频设备10包括接收模块100、视频处理设备125和视频显示设备104。接收模块可以包括电视接收器、有线电视接收器、卫星广播接收器、宽带调制解调器、3G收发器或者能够接收接收信号98并处理一个或多个视频信号110的其它信息接收器或收发器,所述视频信号110可以经时分去多路复用、频分去多路复用或其它去多路复用技术提供。视频处理设备125包括耦合到接收模块100的视频编码器/解码器102,该视频编码器/解码器102代表图1的视频编码器/解码器11的一个特定实施例。视频处理设备125用于编码、解码或者代码转换所接收到的视频信号,以供以对应于视频显示设备104的格式存储、编辑和/或重放,其中视频显示设备104可以是或者可以不是设备10的一部分。

在本公开的一种实施例中,接收信号98是广播视频信号,诸如电视信号、高清晰度电视信号、增强清晰度电视信号或者直接地或者通过多个卫星或其它中继站中的一个或者通过电缆网络、光网络或其它传输网络经无线介质发送的其它广播视频信号。此外,接收信号98可以从所存储的视频文件生成,从诸如磁带、磁盘或光盘的记录介质重放,而且可以包括经诸如局域网、广域网、城域网或互联网的公共或专用网络发送的流化视频信号。

视频信号110可以包括以多种视频格式中的任意一种格式化的模拟视频信号,所述视频格式包括国家电视系统委员会(NTSC)、逐行倒相编码(PAL)或者顺序与存储彩色电视系统(SECAM)。处理后的视频信号112可以包括遵循诸如H.264、MPEG-4第10部分高级视频编码(AVC)的数字视频编解码标准或者诸如运动图像专家组(MPEG)格式(诸如MPEG1、MPEG2或MPEG4)、Quicktime格式、Real媒体格式、Windows媒体格式(WMV)或音频视频交织(AVI)等的其它数字格式的数字视频信号。

视频显示设备104可以包括电视机、监视器、计算机、手持式设备或者诸如通过投影、基于解码处理后的视频信号112作为流化视频信号或者通过重放所存储的数字视频文件而直接或间接地创建光学图像流的其它视频显示设备。

视频编码器/解码器102可以是根据H.264标准、MPEG-4标准、VC-1(SMPTE标准421M)或其它标准的许多功能与特征操作以处理处理后的视频信号112以便编码、解码或代码转换视频输入信号110的视频编解码器。视频输入信号110可选地是由用于编码、解码或代码转换的信号接口格式化的。

图3更具体地图示了视频编码器/解码器102,其包括信号接口模块198、处理模块200、存储器模块202、熵编码/重新排序模块216、变换&量化模块220、去块(deblock)过滤器模块222和运动补偿模块150。这些模块中的每一个都连接到总线221。

处理模块200可以利用单个处理设备或者多个处理设备来实现。这种处理设备可以是微处理器、协处理器、微控制器、数字信号处理器、微型计算机、中央处理单元、现场可编程门阵列、可编程逻辑设备、状态机、逻辑电路系统、模拟电路系统、数字电路系统和/或基于存储在诸如存储器模块202的存储器中的操作指令操纵信号(模拟的和/或数字的)的任何设备。

存储器模块202可以是单个存储器设备或者多个存储器设备。这种存储器设备可以包括硬盘驱动器或者其它磁盘驱动器、只读存储器、随机存取存储器、易失性存储器、非易失性存储器、静态存储器、动态存储器、闪存存储器、高速缓冲存储器和/或存储数字信息的任何设备。应当指出,当处理模块经状态机、模拟电路系统、数字电路系统和/或逻辑电路系统实现其一个或多个功能时,存储对应操作指令的存储器可以嵌入到包括所述状态机、模拟电路系统、数字电路系统和/或逻辑电路系统的电路系统中或者嵌入在其外面。

处理模块200和存储器模块202进一步诸如经总线221耦合到运动补偿模块150的各个模块,这些模块包括缩放(scaled)运动搜索模块203、粗略运动搜索模块204、运动细化模块206、帧内预测(intra-prediction)模块210、模式决定模块212和重构模块214。视频编码器/解码器102的模块可以用软件或固件实现并且可以被构造成由处理模块200执行的操作。可替换地,这些模块中的一个或多个可以利用硬件引擎实现,所述硬件引擎包括状态机、模拟电路系统、数字电路系统和/或逻辑电路系统,并且独立地操作或者在处理模块200或一个或多个其它模块的控制和/或指引下操作,这依赖于特定的实现方式。还应当指出,本公开的软件实现可以存储在有形的存储介质上,诸如磁盘或光盘、只读存储器或者随机存取存储器,而且可以作为制造品生产。尽管示出了特定的总线体系结构,但是利用一个或多个模块之间的直接连接和/或附加总线的备选体系结构也同样可以根据本公开内容实现。

视频编码器/解码器102可以运行在包括编码模式和解码模式的多种运行模式下,所述模式可以通过模式选择信号的值来设置,其中模式选择信号可以是提供给用户可编程寄存器的用户定义的参数、用户输入、存储器位置或者其它信号。此外,在视频编码器/解码器102中,由编码或解码模式用来编码或解码输入信号的特定标准可以由标准选择信号来确定,该标准选择信号也可以是用户定义的参数、用户输入、寄存器值、存储器值或者其它信号。在本公开的一种实施例中,编码模式的运行使用多个模块,其中每个模块都执行特定的编码功能。解码的运行也使用所述多个模块中的至少一个,以在解码过程中执行类似的功能。以这种方式,诸如运动细化模块206并且更具体地是其中所使用的内插过滤器、和帧内预测模块210的模块在编码和解码过程中都可以使用,以便当在集成电路上实现视频编码器/解码器102时节省该体系结构的空间或者获得其它的功效。此外,为了相似的目的,这些部件中的一些或全部或者其它特定功能模块可以在编码和解码过程中都使用。

运动补偿模块150包括缩放后运动搜索模块203,如以下将更具体讨论的,该模块203搜索在被编码的视频输入信号110接收到的目标视频流的缩放表示的运动矢量。基于缩放后的运动矢量的一组运动矢量被提供给粗略运动搜索模块204,该模块204可以基于目标图片到特定像素尺寸的宏块的分段,所述像素尺寸是诸如16像素×16像素的宏块尺寸,来编码目标视频流的目标图片。

在本公开的一种实施例中,粗略运动搜索模块204为目标图片的每个宏块实现粗略尺度的运动搜索,以便确定运动矢量,所述运动矢量以整数个像素级别的准确度,诸如1像素的分辨率,表示当前图片中宏块的移位。粗略运动搜索模块204通过优先评估任何运动矢量候选的位置实现运动矢量搜索。运动矢量候选可以基于目标视频流以预测运动矢量的形式提供,或者基于由缩放后运动搜索模块203确定的缩放后的运动矢量以运动矢量的形式提供。基于目标图片的预测运动矢量使用当前图片和目标图片视频流的一个或多个其它图片来识别预期靠近最后运动矢量的位置的目标图片的位置。预测运动矢量本身可以基于目标视频流的图片并且基于一个或多个标准来选择。这种标准可以包括在粗略运动搜索模块204处实现粗略尺度的运动矢量搜索之前识别出的两个或多个预测运动矢量中,选择具有最低成本因子的预测运动矢量。运动矢量候选可以由粗略运动搜索模块204用作初始搜索位置,从这个位置启动运动搜索以确定特定宏块的1像素分辨率的运动矢量。

在本公开的一种实施例中,运动搜索可以计算成本公式,该成本公式基于参考宏块与候选宏块的像素值之间的绝对差值和(SAD)和代表编码候选运动矢量与预测运动矢量(PWM)或估计预测运动矢量之差所需花费的比特数的加权率(weighted rate)项,其中预测运动矢量(PWM)是基于当前宏块左边的相邻宏块和来自视频输入信号的前一行的相邻当前宏块的一个或多个运动矢量,而估计预测运动矢量是基于来自视频输入信号的前一行的相邻当前宏块的运动矢量确定的。在本公开的一种实施例中,成本计算避免使用当前宏块中的相邻子块。以这种方式,粗略运动搜索模块204能够对宏块进行操作,以便同时确定该宏块的每个子块的运动搜索运动矢量。

运动细化模块206生成对应于由粗略运动搜索模块204提供的一像素分辨率运动矢量的一个或多个精细尺度运动矢量。例如,可以为多个宏块中的每个宏块并且为每个宏块的每个子块确定精细尺度的运动矢量。在本公开内容的一种实施例中,运动细化模块206为视频输入信号110的每个宏块确定细化运动矢量,该细化运动矢量以比粗略运动搜索模块204更大的像素等级准确度,诸如1/4像素的分辨率或者其它子像素分辨率,表示该宏块从参考帧或者从视频流的参考场到当前图片的移位。

由运动细化模块206评估的位置还可以基于成本公式来评估,以便确定具有最有利成本的细化运动矢量。就像在运动搜索模块的情况下那样,成本公式可以基于参考宏块,例如前面评估出的具有最低成本的候选,与当前候选宏块之间的绝对差值和(SAD)。

在前面的模块着重于运动矢量的帧间预测的同时,帧内预测模块210为多个宏块中的每个宏块生成最佳的帧内预测模式。在本公开的一种实施例中,帧内预测模块210就像H.264标准所定义的那样运行。但是,其它帧内预测技术也同样可以采用。特别地,帧内预测模块210运行以基于从相邻宏块确定的运动矢量来评估多个帧内预测模式,诸如4x4帧内或16x16帧内,这些是亮度预测模型、色度预测(8x8)或其它帧内编码,以便确定最佳的帧内预测模式和相关联的成本。

模式决定模块212基于与细化运动矢量关联的成本、直接模式运动矢量和最佳帧内预测模式,并且尤其是产生最有利(最低)成本或其它可接受成本的方法,为多个宏块中的每一个宏块确定最终的宏块成本。通过为多个宏块中的每个宏块生成残余亮度和/或色度像素值,重构模块214完成运动补偿。

视频编码器/解码器102的正向变换与量化模块220通过把残余像素值变换、编码并量化成量化变换后的系数来生成处理后的视频信号112,其中所述系数可以诸如通过熵编码模块216中的熵编码、去块过滤器模块222中的过滤而被进一步编码。在本公开的一种实施例中,进一步的格式化和/或缓冲可以可选地由信号接口198来执行,而且处理后的视频信号112可以表示为来自信号接口198的输出。

去块过滤器模块222根据通过使用邻居的运动矢量、量化参数、引用索引和编码块模式等确定的一组过滤强度来进行操作。对于熵编码模块216中的熵编码,使用运动矢量差(MVD)、宏块类型、量化参数数据、帧间预测类型等。

特定编码与解码过程的更多细节将联系图4和5更具体地描述。

根据本公开的操作的一种特定实施例参考图4的视频编码器的框图来描述。具体地,描述了使用联系图3描述的多个特殊功能模块来实现类似编码操作的示例视频编码。

当前图片260在运动搜索模块204和缩放后运动搜索模块203处被接收,其中当前图片260被编码而且也称为目标图片260。在一种实施例中,当前图片可以从作为视频信号110的一部分被接收的编码图片给出。缩放后运动搜索模块203缩放目标图片260,以获得缩放后的图片,并且实现缩放后图片相对于在前的缩放后图片的运动搜索,以便为缩放后图片的宏块确定运动矢量(实际的缩放后的运动矢量)。缩放后运动搜索模块203还使用从缩放后的运动矢量导出的传递函数,为所计算的缩放后图片确定一组运动矢量(计算出的运动矢量)。选自实际的缩放后运动矢量和选自计算出的运动矢量的一组最终的缩放后运动矢量(F_SMV)被提供给粗略运动搜索模块204。

这组最终的缩放后运动矢量和基于实际的缩放后运动矢量的传递函数被粗略运动搜索模块204用于确定一组候选运动矢量,该组候选运动矢量用作由粗略运动搜索模块204实现的运动矢量搜索的评估起点,其中粗略运动搜索模块204执行目标图片260相对于参考图片262的运动矢量搜索,以便为目标图片260的每个宏块生成粗略尺度的运动搜索运动矢量(CMVS)。

运动细化模块206是精细分辨率的运动搜索模块,它基于在运动搜索模块204确定的运动搜索运动矢量为多个宏块中的每个宏块生成细化的运动矢量。帧内预测模块210为多个宏块中的每个宏块评估并选择最佳帧内预测模式。模式决定模块212基于与细化后的运动矢量相关联的成本及最佳的帧内预测模式为多个宏块中的每个宏块确定最终的运动矢量。

重构模块214通过由差值电路282减去当前帧/场260的像素值,为多个宏块中的每个宏块生成对应于最终运动矢量的残余像素值,并且通过利用相加电路284重新加上(由变换与量化模块220处理后的)残余像素值,生成未过滤的重构帧/场。变换与量化模块220在变换模块270和量化模块272中变换并量化残余像素值,并且通过在逆变换模块276和去量化模块274中的逆变换和去量化,重新形成残余像素值。此外,量化和变换后的残余像素值被熵编码/重新排序模块216的重新排序模块278重新排序并且被其熵编码模块280熵编码,以形成网络抽象层输出281。

去块过滤器模块222从未过滤的重构帧/场形成当前的重构帧/场264。还应当指出,当前的重构帧/场264可以被缓冲以生成参考帧/场262,用作将来的当前帧/场260。

图5图示了包括根据本公开一实施例的缩放后运动搜索模块203和粗略运动搜索模块204的特定实施例的框图。具体地,缩放后运动搜索模块203在缩减模块302生成缩放后的目标图片,以便生成要由缩放后运动矢量搜索模块306、SMV建模工具382、运动矢量变换模块384和缩放后运动矢量加权模块386进一步处理的多个缩减图片261。根据特定实施例,缩减图片261具有与目标图片260相同数量的宏块/块,但是缩减图片的每个宏块/块由与目标图片不同数量的像素表示。

缩放后运动矢量搜索模块306适于利用缩放后的图片261和之前缩放的参考图片实现运动搜索,以确定对应于该缩放后图片的宏块的缩放后的运动矢量(SMV)308。在本公开的一种实施例中,原始视频帧而不是重构的视频帧被缩减模块302缩减并在减小尺度的MS模块306中用作参考图片,其中原始视频帧本身可以在代码转换过程中给出。相应地,缩放后运动矢量搜索模块306可以比粗略运动搜索模块383提前一个图片生成运动矢量候选308。假定目标图片在缩减模块302在x坐标和y坐标方向都以因子2缩减,那么代表缩减后图片261中宏块及其子块的像素个数将是用于表示目标图片260的宏块及其子块的像素个数的四分之一。例如,代替16x16像素的宏块,缩放后的图片可以具有8x8像素的宏块。就像对目标图片一样,为缩放后的图片保持相同的搜索步骤将有效地加倍供缩放后的图片所使用的搜索区域。由缩放后运动矢量搜索模块306为特定的目标图片块确定的SMV在这里一般通过命名法SMV(x,y)来指示,其中x和y代表缩放后的图片中特定图片块的x-y坐标。应当指出,为了清晰,关于图5的实施例的讨论对于视频图片的宏块是一般性的,该宏块可以是单个视频帧块、视频帧块对、单个视频场块、视频场块对,等等。

用于缩放后图片的SMV308被提供给SMV建模工具模块382并被提供给缩放后运动矢量加权模块386,其中缩放后运动矢量加权模块386确定可以用于进一步细化后续运动搜索的各种运动矢量的对应置信等级。SMV建模工具模块382确定由变换模块384用于基于块的x-y坐标位置为当前缩放后图片的各块生成缩放变换运动矢量(HMV309)的传递函数383。例如,通过确定一个或多个传递方程式的系数,所述传递方程式用于给一图片的一些或全部缩放后运动矢量建模,拟合算法使用SMV308来生成缩放后运动矢量传递函数。为了讨论,假定缩放后图片的每个块都是基于其x-y坐标通过传递函数建模的。传递函数可以是线性的或者非线性的方程式。在这里所描述的特定的非限制性实施例中,传递函数包括具有以下形式的一个或多个线性传递方程式:

方程式1:HMV(x,y)=Xc*x+Yc*y+Cc

其中,Xc是宏块的x坐标的系数,Yc是该宏块的y坐标的系数,而Cc是常量。应当指出,在此所使用的命名法通常使用字母H作为前缀来指示特定元素与由SMV建模工具382生成的传递函数有关。例如,HMV指由变换模块384基于缩放后运动矢量传递函数生成的缩放后运动矢量。参考图6,缩放后运动矢量模块382的操作将得到更好的理解。

图6图示了基于运动矢量趋势区域确定由变换模块384使用的变换函数的SMV建模工具模块382的一种特定实施例。SMV建模工具模块382包括运动矢量趋势分组模块392和运动矢量变换模块394,也称为运动矢量拟合模块。在运行当中,用于多个缩放后图片的SMV,包括用于被编码的当前图片(缩放后的目标图片)的缩放后版本的SMV,提供给分组模块392。运动矢量趋势分组模块392分析SMV,以确定缩放后的目标图片中具有公共运动矢量特征,诸如公共运动矢量趋势,的区域。这些区域在这里被称为运动矢量趋势区域。

由分组模块392识别出的每个运动矢量趋势区域都包括图片的一组一个或多个块,及对应的趋势运动矢量。例如,对于由跟随沿道路前进的汽车的照相机所生成的视频流,该汽车看起来相对于运动的背景是稳定的。因而,具有逐个图片一起得出的趋势的运动矢量的趋势区域将包括该汽车的图像,及可能与或者可能不与具有相同运动矢量趋势的汽车邻近的任何宏块。位置393的REGION_1存储识别构成这第一个运动矢量趋势区域的宏块集合的信息,及其称为趋势运动矢量(TMV)的对应运动矢量。将认识到,在REGION_1可以单独地识别宏块,或者宏块被识别为属于在REGION_1识别出的几何形状的成员。

如果在同一个视频流中图示了与第一辆汽车在相同方向上移动但是更快的第二辆汽车,那么具有不同运动矢量趋势的第二运动矢量趋势区域可以包括与第二辆汽车关联的宏块。第二运动矢量趋势区域的宏块与TMV存储在存储位置393的REGION_2。由分组模块392确定的趋势运动矢量区域的个数可以基于视频流的内容而变化,因此,在所说明的存储位置393中可以有更多或更少识别出的趋势区域。因而,由分组模块392确定的每个运动矢量趋势区域都存储在位置393,以让诸如运动矢量变换模块394和缩放后运动矢量加权模块386的其它模块访问。为了方便说明,假定:当存在多个趋势区域时,宏块只能是一个趋势区域的成员,并且没有被分组模块392识别为属于一特定运动矢量趋势区域的宏块可以属于一图片趋势区域,其可以被看作是一种特殊类型的图片趋势区域。例如,上述两辆车后面的背景可以包括在图片趋势区域中,其中该背景看起来相对于汽车是运动的。尽管许多算法都可用于识别趋势区域,但是,在一种实施例中,趋势区域是通过基于它们的柱状图来分离运动矢量并且使用线性回归算法来识别运动趋势而确定的。

运动矢量变换模块394对SMV操作,以基于每个特定图片块的x-y坐标确定可以估计被编码的目标图片的每个特定图片块的SMV的传递函数。根据一种实施例,利用趋势区域的图片块的x-y坐标作为输入变量,运动矢量变换模块394为当前图片的每个识别出的SMV趋势区域,包括图片趋势区域在内,确定运动矢量传递方程式。例如,线性回归方法可以用于给运动矢量趋势区域的宏块的x-y坐标及其对应的SMV308之间的关系建模。例如,运动矢量趋势计算模块394可以为被分析的图片的第一个趋势区域确定运动矢量传递方程式(H_RTMV_1)。运动矢量传递方程式H_RTMV_1被存储在存储位置395的位置。在一种实施例中,每个运动矢量传递方程式都是由以下形式的一组线性方程式定义的:

方程式2

H_RTMV_1(x,y)→H_RTMV_1x=Xx1c*x+Yx1c*y+Cx1c;和H_RTMV_1y=Xy1c*x+Yy1c*y+Cy1c

因而,方程式2是给视频图片的第一趋势区域的运动矢量建模的传递方程式。其中,第一趋势区域由后缀“_1”指示。传递方程式包括用于为处于特定x-y坐标的缩放后宏块确定运动矢量的x分量的x分量方程式(H_RTMV_1x),和用于确定该特定缩放后宏块的y分量的y分量方程式(H_RTMV_1y)。在方程式2中,Xx1c、Yx1c和Cx1c是由运动矢量趋势计算模块394确定的与x分量方程式相关联的系数,而Xy1c、Yy1c和Cy1c是由运动矢量趋势计算模块394确定的与y分量方程式相关联的系数。将认识到,还有可以与方程式2的区域传递方程式具有相同形式的图片趋势传递函数H_RTMV(x,y)。

用于每个趋势区域的传递函数的系数存储在存储位置395,如由标记H_RTMV_1至H_RTMV_3和H_PTMV表示的,以由变换模块384(图5)使用。在一种实施例中,特定趋势区域的所有图片块及其对应的SMV都用于生成那个特定区域的对应传递函数。在一种备选实施例中,特定趋势区域的只有具有最相似SMV的一部分宏块才用于生成用于那个特定趋势区域的传递方程式。例如,特定趋势区域的具有当在柱状图上绘制时相对于该趋势区域的其它SMV漏在外面的值的宏块SMV可以在为那个趋势区域计算传递方程式之前被去除。因此,给当前视频图片的每个位置建模的传递函数可以基于那个图片的一部分宏块来确定。在一种实施例中,趋势区域中比该趋势区域的平均SMV具有多于所定义的标准偏差量的SMV的那些宏块在确定那个趋势区域的传递方程式时将不使用。由运动矢量趋势计算模块394使用的所定义的标准偏差量可以是固定的量,或者是用户可编程的量。

通过使用块的x-y坐标作为传递函数的输入,运动矢量变换模块384(图5)为缩放后图片的各块确定变换后的运动矢量(HMV)。例如,用于具有特定x-y坐标的宏块的变换后的运动矢量HMV(X,Y)可以通过把x-y坐标输入当前图片的传递函数中与该特定x-y坐标关联的传递方程式来确定。以这种方式,为缩放后图片的宏块生成一组变换后的运动矢量(HMV)。

图5的缩放后运动矢量加权模块386为SMV和HMV中的每一个确定置信等级,然后该置信等级作为最终的一组基于SMV的运动矢量,标记为F_SMV387,提供给粗略运动搜索模块204。根据一种特定实施例,缩放后运动矢量加权模块386还为每个TMV确定置信等级,该置信等级可以在SMV和HMV的置信等级的计算中使用。在其它实施例中,TMV置信等级还可以提供给粗略运动搜索模块204。由缩放后运动矢量加权模块386确定的SMV和HMV的置信等级可以基于各种类型的可用运动矢量(SMV308、HMV309、TMV311)之内或者之间的关系。参考图7的流程图,由缩放后运动矢量加权模块386生成运动矢量置信等级将得到更好的理解。

图7图示了应用到缩放后目标图片的缩放后运动矢量的本公开一种特定实施例的流程图。在块461,确定每个趋势区域的每个TMV的置信等级并将其用于确定其它运动矢量的置信等级,诸如SMV和HMV的置信等级。在一种实施例中,特定TMV的置信等级是基于构成特定趋势区域的宏块的个数。因此,用于有100个宏块作为成员的趋势区域的TMV的置信等级将高于用于只有10个宏块作为成员的趋势区域的TMV的置信等级。趋势区域的其它特征也会影响其置信等级。例如,在属于特定趋势区域的SMV之间的统计偏差会影响那个趋势区域的置信等级。例如,相对于在其成员之间具有较大的统计偏差的趋势区域,在其成员SMV之间具有小变化的趋势区域会具有较大的置信等级,或者其置信等级被提高,其中在其成员之间具有较大统计偏差会使其置信等级降低。作为另一个例子,构成一趋势区域的成员的宏块之间的结合度(cohesion)也会影响TMV的置信等级。例如,如果一趋势区域的每个宏块都构成相邻宏块的邻接块,例如,该趋势区域的每个宏块都与该趋势区域的至少一个其它宏块相邻,那么该TMV的置信等级会增加。可替换地,基于一趋势区域中与该趋势区域中任何其它宏块都隔离开的宏块的个数,或者基于一趋势区域中隔离开的宏块组的个数,该趋势区域的置信等级会降低。应当认识到,这些趋势区域特征的一些或全部,或者附加的趋势区域特征,可以在确定TMV的置信等级时加以考虑。

在块462,确定宏块的SMV的置信等级。根据特定实施例,如果确定匹配其邻居宏块的SMV,就为一特定宏块的SMV分配高置信等级,或者其置信等级被提高。例如,如果其八个相邻宏块中的六个,或者可以是固定的或用户编程的某个其它部分,具有类似的运动矢量,那个特定宏块的SMV就可以被认为是匹配其邻居宏块。如果两个SMV之间的差小于一个像素,或者某个其它定义好的量,该量也可以是固定的或用户编程的,那么这两个SMV就可以被认为是相似的。除了基于其是否匹配邻居块宏块来确定SMV的置信等级之外,特定SMV的置信等级还可以基于其邻居宏块的置信等级来确定,而且其纹理指示符(texture indicator),如方差,也可以用于确定特定SMV的置信等级。例如,相对于其相邻宏块具有相对低置信等级的特定SMV,其相邻宏块具有高置信等级的特定SMV本身也将被赋予较高的置信等级。

在一种备选实施例中,不同或附加的标准可以用于确定缩放后的运动矢量是否与其邻居宏块匹配。例如,该标准可以基于实际SMV的特征而改变,诸如基于与其它SMV相比该SMV的尺寸。例如,以上所述的一个像素阈值可以应用到小SMV,例如,具有四个像素或者更少的值的SMV,而不同的标准可以应用到大SMV,例如,具有大于四个像素的值的SMV。根据一种实施例,如果其八个邻居中有一半是相似的,就可以认为大SMV与其相邻的SMV匹配。

可以用于确定特定SMV的置信等级的还有另一个标准可以基于其所属的趋势区域的SMV和TMV之间相似程度的量。例如,SMV与其TMV之间的差越小,置信等级越大。可以用于确定特定SMV的置信等级的一个附加特征是与当前宏块属于同一TMV的邻居宏块的个数,其中,相对于降低没有分配给同一TMV的相邻宏块的SMV的置信等级,具有属于同一TMV的较大数量的相邻宏块将增大该SMV的置信等级。

可以用于确定特定SMV的置信等级的还有另一个标准可以基于它与其共同定位的HMV的相似程度。此外,它与其邻居HMV的相似程度也可以用于确定最终的置信等级。应当认识到,以上所述特征的一些或全部,及其它特征,可以用于确定SMV的置信等级。

在块463,确定宏块的HMV的置信等级。用于如上所述确定SMV的置信等级的技术也可以用于确定HMV的置信等级。此外,附加特征可以用于确定HMV的置信等级。例如,HMV所属的TMV的置信等级可以用于确定该HMV的置信等级。还将认识到,代替使用其TMV的置信等级,特定HMV的置信等级可以代替地使用如上所述的一个或多个TMV特征。应当认识到,特定类型运动矢量的置信等级可以响应于满足特定的标准而设置成固定的值,或者可以基于特定的标准而被增大或减小。

一组最终的缩放后运动矢量及其置信等级(F_SMV387)可以根据需要包括SMV、TMV、HMV,而且与目标图片信息260(图5)一起提供给粗略运动搜索模块204的候选控制模块362。应当指出,代替向候选控制模块362提供实际的HMV,可以代替地将变换函数系数383与其计算出的置信等级一起提供给候选控制模块362,以便允许候选控制模块362根据需要计算HMV值。

候选控制模块362使用目标图片信息260以基于任何常规的或者专用的运动矢量预测技术为被编码的目标图片确定一组未缩放的预测运动矢量(PMV)。因而,PMV是从目标视频流的图片而不是从缩放后的视频流261确定的。候选控制模块362使用F_SMV387信息和计算出的PMV确定提供给粗略运动搜索引擎310的一组运动矢量候选(PMV_C388)。粗略运动搜索引擎使用用于特定宏块位置的CMV388为那个宏块启动粗略尺度的运动搜索算法。参考图8,候选控制模块362的操作将得到更好的理解。

图8图示了候选控制模块362操作流程的特定实施例的流程图,其中候选控制模块362确定PMV_C388。应当认识到,尽管参考图8所述的决定块作出二元确定,诸如高对低,或者相似对不相似,但是在备选实施例中,更多层次的决定可以用于更精确地控制提供给后续搜索块的信息。

在决定块471,确定当前宏块的HMV的置信等级是高还是低,并且在高的时候前进到块481,在低的时候前进到块472。应当认识到,在块471定义构成高和低置信等级之间的边界的阈值可以是固定的值或者是用户可编程的值。还将认识到,为了讨论,假定已经为目标图片的每个对应宏块位置计算出HMV。但是,在其它实施例中,诸如当处理带宽有限时,没有必要目标图片的每个宏块位置都具有对应的HMV。

在块481,与当前宏块的HMV相关联的高置信等级导致PMV的值被HMV的值代替,而且流程前进到块472。在决定块472,确定当前宏块的SMV的置信等级是高还是低。应当认识到,在块472定义高置信等级和低置信等级之间的边界的阈值可以是与对于块471所使用的阈值相同或不同的阈值。当确定当前宏块SMV的置信等级高时,流程前进到块485,否则流程前进到块473。

在决定块473,确定当前宏块的HMV的置信等级是高还是低。应当认识到,在块473定义HMV的高置信等级和低置信等级之间的边界的阈值可以是与针对前面的块所描述的阈值相同或不同的阈值。当确定当前宏块的HMV的置信等级低时,流程前进到块491,否则流程前进到块499。

在块499,当前宏块的SMV和PMV都包括在PMV_C集合中。应当认识到,包括在PMV_C集合中的SMV和HMV将把它们的长度调整与目标图片在缩减模块302被缩放的量相称的量。例如,如果原始目标图片的每个宏块都按因子2缩减,那么它们对应的SMV将在被包括在PMV_C集合中的时候把它们的X和Y坐标加倍。

返回块472,响应于确定当前宏块的SMV的置信等级高,流程前进到块485。在块485,彼此比较当前宏块的SMV与PMV。这两个运动矢量被认为相似或者不相似可以基于这两个运动矢量之间的差和所定义的阈值标准之差来确定,其中该所定义的阈值标准可以是与前面所述的用于确定两个运动矢量是否匹配的标准相同的标准。用于确定SMV和PMV是否匹配的阈值标准可以是固定的或者是用户可编程的。还将认识到,SMV矢量的量级需要调整,来补偿它是目标图片的缩放后表示的事实。如前面所描述的,可以是固定或用户可编程的阈值可以基于进行比较的运动矢量的大小等而变化。响应于SMV与PMV相似,流程前进到块499。否则,响应于确定当前宏块的SMV和PMV不相似,流程前进到块488,在流程前进到块499之前,在块488降低lambda。

返回块473,如果确定当前宏块HMV的置信等级低,流程前进到块491。在块491,以类似于针对块485所述的方式,比较当前宏块的SMV与PMV。应当认识到,用于在块491确定相似性的标准可以与用于块485的标准相同或不同。响应于确定SMV与PMV相似,流程前进到块499。否则,流程前进到块492。

在块492,放大供当前宏块使用的搜索区域。例如,代替粗略搜索期间搜索候选运动矢量周围的7x7像素区域,搜索区域可以放大,例如放大到25x25像素区域。搜索区域放大的量可以是固定的量,或者是用户可编程的量。此外,在块492,由搜索引擎用于确定与特定运动矢量相关联的成本的lambda的值可以减小。流程从块492前进到块493。

在块493,当前宏块的HMV与其SMV和PMV都进行比较,确定HMV是否与其中任何一个相似。响应于SMV和PMV都不与HMV相似,流程前进到块494。否则,流程前进到块499。在块494,当前宏块的HMV被添加到PMV_C集合。

因而,在这里已经描述了用于实现视频处理设备、视频编码器/解码器和其中所使用的去块过滤器模块的装置与方法,及包括优选实施例在内的几种实施例。在此所述本公开的各种实施例具有与现有技术公开完全不同的特征。

在第一方面,一种方法可以包括:确定传递函数,所述传递函数给第一视频图片的宏块的位置与所述宏块的对应运动矢量之间的关系建模;及实现用于确定第二视频图片的第一宏块的第一运动矢量的运动矢量搜索,所述运动矢量搜索基于利用所述传递函数计算出的第一候选运动矢量,其中所述第一视频图片具有与所述第二视频图片不同的分辨率。

在该第一方面的一种实施例中,该方法包括:确定传递函数包括基于变换函数建模的宏块运动矢量的一部分来确定所述传递函数。在另一种实施例中,该方法包括基于第一视频图片的运动搜索确定对应的运动矢量。在一种特定实施例中,该方法包括缩减第二视频图片以获得第一视频图片。在还有一种实施例中,该方法包括缩减第二视频图片以获得第一视频图片。在另一种特定实施例中,第二视频图片是从压缩的视频信息给出的。

在该第一方面的另一种实施例中,确定传递函数包括:确定所述第一视频图片的多个区域,以及为所述多个区域中的每一个确定对应的线性方程式。在还有另一种实施例中,传递函数是线性传递函数。

在第二方面,一种方法包括:在运动搜索引擎处评估一组运动矢量候选,以确定被编码的目标图片的宏块的运动矢量,其中所述一组运动矢量候选是基于传递函数确定的,所述传递函数给缩放后图片的宏块的坐标和与所述缩放后图片的宏块对应的运动矢量之间的关系建模,其中所述缩放后图片是基于目标图片。

在该第二方面的一种实施例中,所述缩放后图片可以代表与目标图片相同但具有较低分辨率的图像。在一种特定的实施例中,传递函数是线性传递函数。在另一种特定实施例中,该方法包括基于线性回归算法确定所述传递函数。在还有另一种特定实施例中,该方法包括基于缩放后图片的宏块的一部分位置确定传递函数。

在该第二方面的另一种实施例中,传递函数包括与所述缩放后图片的宏块的第一部分相关联的第一方程式和与所述缩放后图片的宏块的第二部分相关联的第二方程式。在另一种实施例中,该方法包括确定包括利用所述传递函数计算出的第一运动矢量,而且第二运动矢量是从目标图片而不是从缩放后图片预测的运动矢量。

在第三方面,一种设备包括从第二视频图片生成缩减后的第一视频图片的视频缩放器,及确定传递函数的系数的运动矢量拟合模块,所述传递函数给第一视频图片的宏块坐标与宏块位置的运动矢量之间的关系建模。

在该第三方面的一种实施例中,传递函数是线性传递函数。在另一种实施例中,该设备可以包括识别第一视频图片中具有匹配的运动矢量特征的区域的分组模块,其中传递函数包括用于所述区域中的每个区域的一组单独的系数。在还有另一种实施例中,该设备包括基于所述传递函数确定一组候选运动矢量的候选选择模块,及基于候选运动矢量启动第二视频图片的运动矢量搜索的运动搜索模块。在另一种实施例中,该设备包括确定从传递函数计算出的变换后的运动矢量是否包括在一组候选运动矢量中的候选选择模块,及基于候选运动矢量启动第二视频图片的运动矢量搜索的运动搜索模块。

尽管在这里已经明确地描述了本公开的各种功能与特征的特定组合,但是这些特征与功能的其它组合也是可能的,而不受明确结合到本公开范围内的在此公开的特定例子的限制。

如本领域普通技术人员将认识到的,在此所使用的术语“基本上”或者“大约”对其对应的项和/或项之间的相关性提供了行业认可的容限。这种行业认可的容限从小于百分之一到百分之二十变化而且对应于,但不限于,部件值、集成电路工艺变化、温度变化、上升与下降时间和/或热噪声。项之间的这种相关性从百分之几的差到量级差变化。如本领域普通技术人员将认识到的,在此所使用的术语“耦合”包括直接耦合和经另一个部件、元件、电路或模块的间接耦合,其中,对于间接耦合,中间部件、元件、电路或模块不修改信号的信息但可以调整其电流电平、电压电平和/或功率电平。如本领域普通技术人员还将认识到的,以与“耦合”相同的方式,推断耦合(即,一个元件通过推断耦合到另一个元件)包括两个元件之间的直接和间接耦合。如本领域普通技术人员还将认识到的,在此所使用的术语“有利地比较”指示两个或多个元件、项、信号等之间的比较提供期望的关系。例如,当期望的关系是信号1具有比信号2大的量值时,有利的比较可以在信号1的量值大于信号2的量值的时候或者在信号2的量值小于信号1的量值的时候实现。

当术语“模块”在本公开的各种实施例的描述中使用时,模块包括以执行一个或多个模块功能,诸如为了产生输出信号而对输入信号进行的处理,的硬件、软件和/或固件实现的功能块。如在此所使用的,模块可以包含本身也是模块的子模块。

对本领域技术人员来说,很显然在此公开的内容可以多种方式修改而且可以假设除以上具体展示并描述的优选形式之外的许多实施例。相应地,所附权利要求是要覆盖属于本公开的真实主旨与范围的公开内容的所有修改。

例如,尽管已经描述了基于缩放后运动矢量的变换函数确定可以包括在PMV_C集合中的变换后的运动矢量,但是应当认识到,基于未缩放的运动矢量的变换函数也可以以相似的方式使用。此外,还将认识到,尽管基于SMV308的传递函数被描述为包括多个运动矢量传递方程式,该方程式是逐个运动矢量趋势区域确定的,但是,在其它实施例中,缩放后的运动矢量传递函数可以利用除运动矢量趋势区域信息之外的标准确定。例如,当前视频图片的预定义区域,诸如四分之一或者其它尺寸的区域,可以用于为给定运动矢量传递方程式识别由运动矢量变换模块395所使用的宏块。还将认识到,不需要为每个宏块计算变换后的运动矢量(HMV)。例如,依赖于可用的处理,可以只为一部分宏块位置计算变换后的运动矢量。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1