运动补偿帧速率上调方法和设备的制作方法

文档序号:7797816阅读:146来源:国知局
运动补偿帧速率上调方法和设备的制作方法
【专利摘要】描述了用一个当前视频帧、至少一个先前视频帧以及一组传输运动矢量进行视频帧内插的方法和设备。根据该组传输运动矢量,创建第一组运动矢量。确定一个中间视频帧,其中该中间视频帧包括大量相互不重叠的块。为每一个非重叠的块分配从第一组运动矢量中选出的至少一个运动矢量,以创建一组分配运动矢量。然后,根据该组分配运动矢量,创建第二组运动矢量。利用第二组运动矢量,生成一个视频帧。
【专利说明】运动补偿帧速率上调方法和设备
[0001]本申请是申请日为2005年05月04日、申请号为200580022318.9、发明名称为“运动补偿帧速率上调方法和设备”的中国专利申请的分案申请。
[0002]根据35U.S.C.119要求优先权
[0003]本专利申请要求享受以下申请的优先权:
[0004]2004 年 5 月 4 日提交的、题为“METHOD AND APPARATUS FOR MOTION COMPENSATEDFRAME RATE UP CONVERSION FOR BLOCK-BASED LOW BIT-RATE VIDEO APPLICATION”的临时申请 N0.60/568,328 ;
[0005]2005年 3 月 22 日提交的、题为“METHOD AND APPARATUS FOR MOTION COMPENSATEDFRAME RATE UP CONVERSION FOR BLOCK-BASED LOW BIT-RATE VIDEO” 的临时申请N0.60/664,679 ;
[0006]这两份申请已转让给本发明的受让人,故明确地以引用方式并入本申请。
发明领域
[0007]本发明的实施例一般涉及视频压缩,尤其涉及基于块的低比特率视频的帧速率上调方法和设备。
技术背景
[0008]由于有限的带宽资源和可用带宽的易变性,低比特率视频压缩在很多多媒体应用(如无线视频流和视频电话)中都非常重要。可以通过降低时间分辨率(temporalresolution)来实现以低比特率进行带宽适应性视频编码。换句话说,可以将时间分辨率减半至15fps来降低传输比特率,以代替压缩并发送一个30巾贞每秒(fps)的比特流。然而,降低时间分辨率所带来的问题就是引入时域赝像(artifacts),如运动抖动(motionjerkiness),这会严重降低解码后的视频的视觉质量。
[0009]为了在接收端显示完全的帧速率,需要一种叫做帧速率上调的机制来重新生成漏掉的帧和降低时间赝像。
[0010]已经提出很多FRUC算法,并可将其分成两类。第一类算法利用接收到的视频帧的联合体对丢失帧进行内插,而不考虑对象的运动。帧重复和帧平均法适于这一类算法。当存在运动时,这些方法的缺点包括:产生运动抖动;出现“叠影”图像;移动对象模糊。第二类算法比第一类算法要先进一些,其利用了传输的运动信息,就是所说的运动补偿(帧)内插(MCI)方法。
[0011]如现有技术的图1所示,在MCI中,基于重新构造的当前帧102、所存储的前一帧104和一组传输运动矢量106,进行丢失的帧108的内插,所述丢失的帧是要内插的帧。重新构造的当前帧102包括一组非重叠的块150、152、154和156,后者与一组传输运动矢量106相关联,而这组传输运动矢量106指向所存储的前一帧104中的相应块。可以通过对当前帧和前一帧中的相应像素进行线性合并或者通过非线性运算(如中值运算)来构造针对要内插的帧108的内插帧。[0012]基于块的MCI会在要内插的帧中弓丨入重叠区域(多个运动轨迹通过这个区域)和漏洞(没有运动轨迹通过这个区域)区域。如图3所示,要内插的帧302包括重叠区域306和漏洞区域304。产生这两类不理想区域的主要原因是:
[0013]1.运动对象没有遵循严格的平移运动模型。
[0014]2.由于在译码器端使用的基于块的快速运动搜索算法,MCI中所用的传输运动矢量可能并没有指向实际的运动轨迹。
[0015]3.当前帧和前一帧中存在隐蔽和非隐蔽背景。
[0016]重叠区域和漏洞区域的内插是传统的基于块的运动补偿方法中主要的技术难题。已提出中值模糊和空间内插技术来填充这些重叠和漏洞区域。但是,这些方法的缺点是引入了模糊和成块赝像(blocking artifacts)效应,并且还加大了内插运算的复杂性。

【发明内容】

[0017]本申请的实施例提供了一个利用当前视频帧、至少一个先前视频帧以及一组传输运动矢量来构造内插视频帧的方法和设备。
[0018]在一个实施例中,该方法包括的步骤有:对该组传输运动矢量进行平滑处理;针对要内插的视频帧中每个非重叠块的中心点,定位一个运动矢量;针对当前视频帧和前一视频帧中的每个块,定位一个中心点;生成一组输出运动矢量;对该组输出运动矢量进行平滑处理;然后,利用该组输出运动矢量构造内插视频帧。
[0019]在另一个实施例中,该设备包括存储有指令的计算机可读介质,当一个处理器执行所存储的指令时,使该处理器执行构造内插视频帧的方法。该方法包括的步骤有:对一组传输运动矢量进行平滑处理;对于要内插的视频帧中每个非重叠块的中心点,定位一个运动矢量;对于当前视频巾贞和前一视频巾贞中的每个块,定位一个中心点;生成一组输出运动矢量;对该组输出运动矢量进行平滑处理;然后,用该组输出运动矢量构造内插的视频帧。
[0020]在又一个实施例中,所述设备包括视频帧处理器,其用来接收包含多个视频帧的输入比特流。该视频帧处理器包括:帧缓冲器,该帧缓冲器存储了至少一个先前帧和一个当前帧;运动矢量缓冲器,该运动矢量缓冲器存储了与先前帧相关联的至少一组运动矢量和当前帧对应的多个传输运动矢量;与运动矢量缓冲器和帧缓冲器相连接的第一运动矢量处理器,第一运动矢量处理器接收多个传输运动矢量以及产生首批输出运动矢量;与第一运动矢量处理器相连接的运动估计模块;模式确定模块;一个帧速率上调器。
[0021]对于本领域技术人员来说,通过下面的详细描述,其它目的、特征和优点是显而易见的。但需要明白的是,下面的详细描述和具体实例虽然给出了示例性的实施例但这些只是说明性的,而不是局限性的。在不脱离本发明主旨的基础上,在下面描述的范围内可以做出很多修改,而且,所述描述应该理解为包括所有这类修改。
【专利附图】

【附图说明】
[0022]通过参照附图,本发明将变得更加容易理解,其中:
[0023]图1示出了用运动补偿帧内插值过程来构造针对要内插的帧的内插帧;
[0024]图2的图形示出了分配给一个视频帧内部的像素的各种类;
[0025]图3的图形示出了一个要内插的帧中的重叠区域和漏洞区域;[0026]图4是FRUC系统的框图;
[0027]图5是FRUC系统中的运动矢量处理器的框图;
[0028]图6示出了图4的FRUC系统执行的种子双向运动搜索;以及
[0029]图7是FRUC系统的操作的流程图。
[0030]在所有附图中,相同的标记表示相同的部件。
【具体实施方式】
[0031]本发明的实施例利用解码器中的运动估计提供了一种方法,该方法可以避免在内插帧中产生重叠区域和漏洞区域。在一个实施例中,通过把将要进行内插的帧(frame-to-be-1nterpolated)分割为非重叠块并给每个非重叠块分配一对运动矢量,可以降低在内插帧中存在不理想重叠和漏洞区域的几率。可以用解码器中的运动估计模块对这些运动矢量进行估计。
[0032]如上所述,运动补偿帧内插算法的性能很大程度上取决于从编码器传输过来的运动矢量的精确性。传输的运动矢量可能由于以下原因并没有描述出与之相关联的运动对象的实际运动轨迹:
[0033]1.在所有基于块的运动估计算法中使用的对仅仅是平移的严格成形的运动模型的假设不足以描述出自然运动的对象。
[0034]2.运动估计是对计算要求很高的处理。大部分视频编码器都以降低所得运动矢量的精确性为代价,采用快速运动估计算法来提高运动估计的速度。
[0035]3.如果在当前或者先前帧中有覆盖或者未覆盖的区域,则运动估计可能会得到不可靠的矢量(即,运动矢量并没有精确描述块的运动)。
[0036]4.很多运动估计技术通过把差的绝对值之和(SAD) /差的平方之和(SSD)作为失真度量来实现像素匹配方法。但是,SAD/SSD是统计学上的度量,故可能无法表现出在人们视觉感官中的失真。因此,这种运动估计可能无法表现出实际的运动方向。
[0037]5.很多运动估计算法是从速率最小化角度出发进行优化的,而不是从可感知的视觉质量角度出发进行优化的。
[0038]当内插帧中的误差与运动矢量的误差变化直接相关时,基于块的MCI试图解决压缩后运动矢量的不确定性。通过应用运动矢量平滑技术,会减少内插帧中由外部运动矢量引起的成块赝像。在一个实施例中,本申请描述的系统还通过对运动矢量级进行中值运算而不是对像素级进行中值运算来减少图像模糊。
[0039]图4是FRUC系统400的框图,该系统接收到达比特流402并且用二进制解码器406来提取:(1)一组运动矢量408,将其放在一个已存储运动矢量缓冲器416中;(2)余数。反向量化/反向变换模块412对余数410进行处理,将其结果与已存储先前帧缓冲器418中存储的前一帧相结合来产生当前帧。当前帧存储于当前帧缓冲器420中。FRUC体系结构400中的子系统450包括已存储运动矢量缓冲器416、已存储帧缓冲器418以及当前帧缓冲器420,它包含了与实现一个实施例相关的特定功能模块。具体而言,子系统450包括运动矢量处理器422、种子双向运动估计模块424、第二运动矢量处理器426、模式确定模块428、帧速率上调器(FRUC)模块430以及后处理单元432。下面结合图5 — 7的描述进一步说明子系统450中模块的工作过程。[0040]图7是根据一个实施例的FRUC体系结构400的操作的流程图。从步骤702开始,运动矢量处理器422对传输运动矢量进行运动矢量平滑操作,这些传输运动矢量来自已存储运动矢量缓冲器416中存储的当前和先前帧。回顾图5,其中很详细地描述了运动矢量处理器422,运动矢量处理器422从已存储运动矢量缓冲器416接收运动矢量作为输入。在一个实施例中,这些输入运动矢量是当前解码帧的运动矢量。在另一个实施例中,这些输入运动矢量既包括当前巾贞中的运动矢量,还包括所有先前解码巾贞中的运动矢量,这样就提供了一个更实际和灵活的运动预测模型。该平滑操作包括对这组传输运动矢量中外部运动矢量进行标准化,后面还将对此做进一步描述。在一个实施例中,第一组运动矢量是根据这组传输运动矢量产生的,其中,首先将该组传输运动矢量划分为两部分,然后,基于第二部分运动矢量对第一部分运动矢量进行修改,比如基于中值运算,这会在下面做进一步描述。
[0041]通过将当前帧的运动矢量和前一帧的运动矢量相结合,可以扩展恒定运动模型,以使其包括运动加速,这样就可以比较这些运动矢量的绝对值之差来获取加速度。一个更灵活的运动模型可以对要内插的帧进行更精确的运动轨迹构造。当先前帧的运动矢量被反转时(也可以称之为外插运动矢量),反转后的运动矢量会从前一帧指向该当前帧,故可以用作后向运动矢量。在一个实施例中,如果该运动是恒定的,则后向运动矢量和前向运动矢量(当前帧的运动矢量)需要相互对准并且指向相反的方向。如果前向和后向运动矢量没有对准,则假设差值是由运动加速度引起的。在运动矢量平滑操作完成之后,操作就继续进行到步骤704。
[0042]运动矢量处理器422包括运动矢量缩放模块502。运动矢量缩放模块502根据要内插的帧在当前帧和前一帧之间的距离,对输入的运动矢量进行缩放,并且还考虑计算出的运动加速度。另外,运动矢量处理器422为支持可变块尺寸运动矢量的视频信号编解码器提供了合并功能。一种这样的标准是H.264标准,其是由国际电信联盟电信标准化组(ITU-T)发布的,它支持形状为16xl6、16x8、8xl6、8x8、8x4、4x8和4x4的运动矢量。合并功能把一些小的块运动矢量合并成一个大的块运动矢量。虽然合并功能之后得到的优选形状尺寸依赖于内容,但是,在一个实施例中,将8x8的块尺寸用在合并功能中。在一个实施例中,将合并功能实现成平均函数。对于线性运动(速度恒定)模型来说,缩放后的运动矢量的大小是与当前运动矢量的大小成比例的,该比例与要内插的帧和当前帧之间的距离同当前帧和前一帧之间的距离比率是相关,同时它的方向与当前帧的运动矢量的方向相同。对于非线性运动(加速运动)模型来说,缩放后的运动矢量的方向和大小同时依赖于要内插的帧在当前帧和前一帧之间的距离以及计算出来的运动加速度。在另一个实施例中,将合并功能实现成中值函数。在又一个实施例中,将合并功能实现成加权求和函数。在另外一个实施例中,将不同的函数予以结合,来实现合并功能。需要指出的是,本发明的实施例也适用于编码器协助的FRUC (EA - FRUC)技术,其中编码器可以发送额外的信息来协助解码器中的FRUC模块。比如,编码器可以发送运动矢量、系数余数或者对于FRUC运算来说“困难”的宏模块对应的指令。
[0043]运动矢量标记模块504对从运动矢量缩放模块502获取的缩放输入运动矢量进行分类。在一个实施例中,分类是根据从运动矢量处理器422的其它输入端接收到的数据,也就是从解码的帧数据中得到的补充信息522进行的。补充信息522提供的分类信息包括:像素分类、相关区域、纹理信息的变化、亮度背景值的变化等,但又不限于这些。除了用于进行运动矢量分类之外,这些信息还为自适应平滑算法提供了指导。
[0044]在一个实施例中,根据运动矢量的大小和方向,用特定的运动矢量类标记输入运动矢量。比如,如果运动矢量相对于预定门限值是一个小量值的运动矢量并且该运动矢量是指向北的,则标记所述运动矢量为小北(Small North)类。在一个实施例中,就方向而言,类包括北、南、西和东(以及其组合),就大小而言,类还包括大、中、小作。在其它实施例中,可以采用其它适当的类。
[0045]内容自适应运动矢量分类模块506判断输入运动矢量是否为外部矢量,这是根据来自运动矢量标记模块504的标记信息和来自解码数据的内容信息实现的。在一个实施例中,将当前运动矢量的大小和方向跟它周围的其它运动矢量的大小和方向进行比较。比如,如果当前运动矢量被标记为小运动矢量(小量值)并且指向南同时它的邻近运动矢量被标记为大运动矢量(大量值)并且指向北,那么,将当前运动矢量标注为外部运动矢量。在另一个实施例中,分析当前运动矢量指向的像素的类型。图2示出了不同类型像素,包括MCI的运动对象(M0)208、未覆盖的背景(UB)204、覆盖的背景(CB)210、静态背景(SB)202和边缘206类,其中,一组箭头212指示了在所示三个帧F (t-1)、F(t)、F(t+l)中的像素运动轨迹。具体而言,对于MCI,视频帧中的每一个像素都可以归为上面列出的五个类中的一个。利用分类信息,如果当前运动矢量从当前帧中的运动对象指向前一相关帧中的静态背景,则将当前运动矢量标记为是外部的。
[0046]来自解码数据的内容信息和对处理过的输入运动矢量进行标签为内容自适应平滑滤波器508中的自适应窗口尺寸选择算法提供了所需的输入。从先前处理过程中移除外部运动矢量以及总体的低通滤波器操作都是基于选中的处理窗口执行的。在一个实施例中,在图5中的内容自适应平滑滤波器508中执行的平滑方法是中值运算。在其它实施例中,中值运算可以用均值(平均值)或者高斯类型的滤波器来代替。此外,也可以采用其它类型的标准化/线性/非线性滤波器。
[0047]正如下面进一步描述的那样,输出运动矢量用于预测在种子双向运动估计过程中的运动矢量的中心。这一步骤的关键是把将要内插的帧划分为非重叠的块。正如描述的那样,下面的步骤确定先前和当前帧中相应的中心像素以及把它们连接起来的运动轨迹,其中,将要内插的帧中每个块中心点经过该运动轨迹。在先前和当前帧中找到的像素中心的周围,构造与要内插的块大小一样的块。在一个实施例中,构造出的块可以重叠。在另一个实施例中,构造出的块不可以重叠。在又一个实施例中,构造出的块可以重叠,也可以不重叠。
[0048]再回到图7,在步骤704中,对将要进行内插的帧中的每个非重叠块来说,由种子双向运动估计模块424确定中心像素的运动矢量。该中心像素的运动矢量由图6中的种子运动矢量620来表示。然后,继续进行步骤706的操作。
[0049]在步骤706中,双向运动估计模块424确定先前和当前帧中块的中心点。所述先前和当前帧中的块对应于要内插的帧中的非重叠块。要内插的块的中心点应当位于种子运动矢量620上。
[0050]在步骤708中,通过执行双向运动搜索,找到集中在种子运动矢量620周围的前向和后向运动矢量。在图6描述的搜索过程中,示出了当前帧602、前一帧604和要内插的帧608。在一个实施例中,分别将搜索范围618和616自适应地分配到构造出的块614和612周围,它们分别位于当前帧和前一帧中。然后,在集中于构造的块周围的当前帧和前一帧之间执行双向运动估计。从当前帧到前一帧的所得运动矢量被称为前向运动矢量。基于从当前帧到前一帧的要内插的帧距离和估计的运动加速模型,对该运动矢量进行缩放。将分配给要内插的块的缩放运动矢量标记为前向运动矢量。同样,将后向运动矢量分配给从前一帧指向当前帧的要内插的块。参照图6,该前向运动矢量用前向运动矢量622示出,而该后向运动矢量用后向运动矢量624示出。因此,在搜索区域616中匹配块614以便将特定的失真度最小化,从而得到前向运动矢量622。在一个实施例中,要最小化的失真度可以是绝对值之和(SAD)。在另一个实施例中,要最小化的失真度是差值平方和(SSD)。在其它实施例中,也可以采用其它失真度,如基于统计的和人体视觉系统(HVS)的度量。同样,在搜索区域618中匹配块612,来获得后向运动矢量624。在一个实施例中,这个操作可以限定在要内插的帧的“漏洞”区域,从而减少解码器的复杂性和降低所需的计算资源。
[0051]在步骤710中,第二运动矢量处理器426对步骤708中获取的输出运动矢量进行第二运动矢量平滑操作。在一个实施例中,由于输入(运动矢量域)及其执行的功能不同,所以采取了两个不同的运动矢量处理器。比如,如上所述,运动矢量处理器422执行运动矢量缩放和合并功能,但是第二运动矢量处理器426并不执行这些功能。在一个实施例中,第二运动矢量处理器426对所有输入运动矢量执行3x3中值滤波,其中,通过中值操作将邻近当前块的八个块的运动矢量与当前块的运动矢量结合起来。在另一个实施例中,因为运动矢量处理器422可以完成运动矢量处理器426提供的功能,所以可以利用相同的硬件来提供第二运动矢量的处理步骤。当第二运动矢量平滑操作执行完毕之后,继续进行步骤712的操作。
[0052]第二阶段的运动矢量处理过程适用于从双向运动估计模块424得到的要内插的帧的前向和后向运动矢量;比如,前向运动矢量622和后向运动矢量624。把平滑后的运动矢量用于运动补偿内插步骤中。根据失真度,对要内插的块进行模式确定,如下所述。可以为双向补偿情形构造出自适应滤波器。在一个实施例中,最简单的滤波器是双线性滤波器。在其它实施例中,也可以采用其它滤波器。
[0053]在步骤712中,模式确定模块428确定在下一步中对于特定块要使用哪些运动矢量。在一个实施例中,只使用前向运动矢量。在另一实施例中,只使用后向运动矢量。在又一实施例中,既使用前向运动矢量,还使用后向运动矢量。通常,模式确定模块428依据下面各规则或其组合来确定采用哪些运动矢量:
[0054]I)与每个运动矢量相关联的失真度。比如,在运动估计过程中,每个运动矢量有一个SAD值,该SAD值就可以用作上面提到的失真度。利用这个失真度,可以进行简单的比较,来决定采用哪个运动矢量。在一个实施例中,选择失真度最小的运动矢量。
[0055]2)内容分类信息。具体而言,如果一个运动矢量的起始点和结束点属于不同的内容类,那么,这个运动矢量是不可靠的,故不会选择它进行最终的FRUC内插处理。
[0056]3)两个(前向和后向)运动矢量的对准。如果两个运动矢量没有对准,则不选择双向运动矢量内插,而是选择失真度较小的运动矢量。
[0057]在步骤714中,运动补偿内插(帧速率上调)是由帧速率上调器单元430完成的。在一个实施例中,内插操作会在当前和前一帧之间创建一个新的帧。在另一个实施例中,内插操作可以N>2为基础在FRUC上进行,其中,FRUC单元430根据上下文/内容和/或临时冗余在多于2个的帧之间插入帧。一般来说,当临时冗余在邻近的帧之间较高时一比如,运动域规则并且保持一个近似恒定的形状,那么,可以跳过较多的帧,而且内插的N>2个帧仍保持合理的感知质量。通常来说,小运动(上下文)或者静态背景主导的序列(比如,现场访谈剪辑)是N>2FRUC的良好候选方案。在N>2FRUC中,N的值可以是在编码器端内容自适应地确定的。
[0058]在步骤716中,后处理单元432对在步骤712得到的内插帧进行后处理操作,来减少任何可能的成块赝像。FRUC算法中的最后一个阶段是对内插帧进行后处理,从而移除与基于块的运动补偿相关联的潜在成块赝像。在一个实施例中,采用了重叠的块运动补偿(OBMC)0在另一个实施例中,可以为此使用去除方块效应滤波。在这一步完成内插帧的创建。
[0059]由于采用一种或其它方式的内容的可用性或者由于网络或运营商需要或者由于多种视频编码技术的共存,当前的应用通常需要支持多种编解码。双向和交互式视频通信的出现,如视频电话、视频照相机以及便携式摄像机的应用,尤其是手持设备,已经产生在多媒体处理器上实现视频编码器和解码器的需要。
[0060]随着硬件技术的发展,视频接收设备的计算能力愈加强大。一些高端设备在解码器中内置了运动估计硬件模块。在这种情形下,FRUC处理中的运动估计将最优化地使用解码器硬件资源,从而可以提高内插帧的视觉质量。
[0061]在多个实施例中描述的FRUC处理的潜在应用包括下面:
[0062]1.通过在低比特率应用的接收设备上提高时间分辨率,来改善观看体验。
[0063]2.不同标准之间的或者同一视频编码标准的不同等级之间的视频格式的转码。
[0064]结合本文公开的实施例所描述的方法或者算法的步骤可直接体现为硬件、由处理器执行的软件模块或者这二者的组合。软件模块可能存在于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动磁盘、⑶-ROM或者本领域熟知的任何其他形式的存储介质中。一种典型存储介质与处理器耦合,从而使得处理器能够从该存储介质中读信息,且可向该存储介质写信息。在替换实例中,存储介质是处理器的组成部分。处理器和存储介质可能存在于一个ASIC中。该ASIC可能存在于一个用户终端中。在一个替换实例中,处理器和存储介质可以作为用户终端中的分立组件存在。
[0065]需要注意的是,本领域普通技术人员可以在多种公知通信硬件、处理器和系统上实现这里描述的方法。比如,对于让客户机按本申请所述那样运行的大体要求是,该客户机应具备:显示器,用来显示内容和信息;处理器,用来控制客户机的操作;存储器用来存储与客户机操作相关的数据和程序。在一个实施例中,客户机是蜂窝电话。在另一个实施例中,客户机是具有通信功能的手持电脑。在又一个实施例中,客户机是具有通信功能的个人电脑。另外,可以根据需要在客户机中加入如GPS接收机这样的硬件,从而实现这里描述的多种方案。利用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程的逻辑器件、分立门或者晶体管逻辑、分立硬件组件或者它们之中的任意组合,可以实现或执行结合本文公开的实施例描述的各种示例性的逻辑框图、模块和电路。通用处理器可能是微处理器,但是在另一种情况中,该处理器可能是任何常规的处理器、控制器、微控制器或者状态机。处理器也可能被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或者更多结合DSP核心的微处理器或者任何其他此种结构。
[0066]利用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程的逻辑器件、分立门或者晶体管逻辑、分立硬件组件或者它们之中的任意组合,可以实现或执行结合本文公开的实施例描述的各种示例性的逻辑框图、模块和电路。通用处理器可能是微处理器,但是在另一种情况中,该处理器可能是任何常规的处理器、控制器、微控制器或者状态机。处理器也可能被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或者更多结合DSP核心的微处理器或者任何其他此种结构。
[0067]上面描述的实施例是示例性的实施例。在不违背本申请所公开发明构思的前提下,本领域技术人员现在可以多种方式使用上述描述的实施例以及在此基础上设计出新的方案。对于本领域技术人员来说,这些实施例的各种修改是显而易见的,这里定义的通用原则可以适用于其它实施例,而不违背这里描述的原理和新颖特征,比如,在即时消息传送服务或者任何普通的无线数据通信设备中。因此,本发明并不限于本文示出的实施例,而是与符合本文公开的原理和新颖特征的最广范围相一致。本申请中专用的“示例性”一词意味着“用作例子、例证或说明”。本申请中描述为“示例性的”任何实施例不应解释为较其他实施例优选或有优势。
【权利要求】
1.至少一个处理器,实现利用一个当前的视频帧、至少一个先前的视频帧以及一组传输运动矢量进行视频帧内插的方法,所述方法包括: 根据该组传输运动矢量,创建第一组运动矢量; 确定一个中间视频帧,所述中间视频帧包括多个非重叠块; 为每个非重叠块分配从所述第一组运动矢量中选出的至少一个运动矢量,以创建一组分配运动矢量; 根据该组分配运动矢量,创建第二组运动矢量;以及, 利用所述第二组运动矢量,生成一个视频帧。
2.如权利要求1所述的至少一个处理器,其中,根据该组传输运动矢量创建第一组运动矢量包括: 把该组传输运动矢量划分为第一部分运动矢量和第二部分运动矢量;以及, 根据所述第二部分运动矢量,修改所述第一部分运动矢量。
3.如权利要求1所述的至少一个处理器,其中,为每个非重叠块分配至少一个运动矢量包括: 确定种子运动矢量;以及, 基于所述种子运动矢量,执行运动矢量搜索。
4.如权利要求3所述的至少一个处理器,其中`,确定种子运动矢量包括: 对经过所述非重叠块的中心的运动矢量进行定位。
5.如权利要求3所述的至少一个处理器,其中,基于所述种子运动矢量执行运动矢量搜索包括: 执行双向运动矢量搜索。
6.如权利要求5所述的至少一个处理器,其中,执行双向运动矢量搜索包括: 在所述至少一个先前视频帧中构造一个先前视频帧搜索块; 将第一搜索范围分配给所述当前视频帧的一部分;以及, 基于第一预定标准,在所述第一搜索范围中搜索与所述先前视频帧搜索块相匹配的第一匹配块。
7.如权利要求6所述的至少一个处理器,其中,执行双向运动矢量搜索包括: 在所述当前视频帧中构造一个当前视频帧搜索块; 把第二搜索范围分配给所述至少一个先前视频帧的一部分;以及, 基于第二预定标准,在所述第二搜索范围中搜索与所述当前视频帧搜索块相匹配的第二匹配块。
8.如权利要求6所述的至少一个处理器,其中,执行双向运动矢量搜索包括: 基于所述第一匹配块,定位第一运动矢量。
9.如权利要求9所述的至少一个处理器,其中,所述第一预定标准基于失真度。
10.如权利要求9所述的至少一个处理器,其中,所述第一预定标准基于将所述失真度最小化。
11.如权利要求9所述的至少一个处理器,其中,所述失真度基于所述第一匹配块和所述先前视频帧搜索块之间的差的绝对值之和。
12.如权利要求9所述的至少一个处理器,其中,所述失真度基于所述第一匹配块和所述先前视频帧搜索块之间的差的平方之和。
13.如权利要求9所述的至少一个处理器,其中,所述失真度基于一个基于人体视觉系统的度量。
14.如权利要求9所述的至少一个处理器,其中,所述失真度基于统计。
15.如权利要求1所述的至少一个处理器,其中,该组传输运动矢量包括多个当前帧运动矢量和多个先前帧运动矢量。
16.一种利用一个当前视频帧、至少一个先前视频帧以及一组传输运动矢量进行视频帧内插的方法,所述方法包括: 根据该组传输运动矢量,创建第一组运动矢量; 确定一个中间视频帧,所述中间视频帧包含多个非重叠块; 为每个非重叠块分配从所述第一组运动矢量中选出的至少一个运动矢量,以创建一组分配运动矢量; 根据该组分配运动矢量,创建第二组运动矢量;以及, 利用所述第二组运动矢量,生成一个视频帧。
17.如权利要求16所述的视频帧内插方法,其中,根据该组传输运动矢量创建第一组运动矢量包括: 把该组传输运动矢量划分为第一部分运动矢量和第二部分运动矢量;以及, 根据所述第二部分运动矢量,修改所述第一部分运动矢量。`
18.如权利要求16所述的视频帧内插方法,其中,为每个非重叠块分配至少一个运动矢量包括: 确定种子运动矢量;以及, 基于所述种子运动矢量,执行运动矢量搜索。
19.如权利要求18所述的视频帧内插方法,其中,确定种子运动矢量包括: 对经过所述非重叠块的中心的运动矢量进行定位。
20.如权利要求18所的述视频帧内插方法,其中,基于所述种子运动矢量执行运动矢量搜索包括: 执行双向运动矢量搜索。
21.如权利要求20所述的视频帧内插方法,其中,执行双向运动矢量搜索包括: 在所述至少一个先前视频帧中构造一个先前视频帧搜索块; 把第一搜索范围分配给所述当前视频帧的一部分;以及, 基于第一预定标准,在所述第一搜索范围中搜索与所述先前视频帧搜索块相匹配的第一匹配块。
22.如权利要求21所述的视频帧内插方法,其中,执行双向运动矢量搜索包括: 在所述当前视频帧中构造一个当前视频帧搜索块; 把第二搜索范围分配给所述至少一个先前视频帧的一部分;以及, 基于第二预定标准,在所述第二搜索范围中搜索与所述当前视频帧搜索块相匹配的第二匹配块。
23.如权利要求21所述的视频帧内插方法,其中,执行双向运动矢量搜索包括: 基于所述第一匹配块,定位第一运动矢量。
24.如权利要求21所述的视频帧内插方法,其中,所述第一预定标准基于失真度。
25.如权利要求24所述的视频帧内插方法,其中,所述第一预定标准基于将所述失真度最小化。
26.如权利要求24所述的视频帧内插方法,其中,所述失真度基于所述第一匹配块和所述先前视频帧搜索块之间的差的绝对值之和。
27.如权利要求24所述的视频帧内插方法,其中,所述失真度基于所述第一匹配块和所述先前视频帧搜索块之间的差的平方之和。
28.如权利要求24所述的视频帧内插方法,其中,所述失真度基于一个基于人体视觉系统的度量。
29.如权利要求24所述的创建内插视频帧方法,其中,所述失真度基于统计。
30.如权利要求16所述的创建内插视频帧方法,其中,该组传输运动矢量包括多个当前帧运动矢量和多个先前帧运动矢量。
31.一种存储有指令的计算机可读介质,当处理器执行所存储的指令时,使所述处理器执行用一个当前视频帧、至少一个先前视频帧以及一组传输运动矢量进行视频帧内插的方法,所述方法包括: 根据该组传输运动矢 量,创建第一组运动矢量; 确定一个中间视频帧,所述中间视频帧包括多个非重叠的块; 为每个非重叠块分配从所述第一组运动矢量中选出的至少一个运动矢量,以创建一组分配运动矢量; 根据该组分配运动矢量,创建第二组运动矢量;以及, 利用所述第二组运动矢量,生成一个视频帧。
32.如权利要求31所述的计算机可读介质,其中,根据该组传输运动矢量创建第一组运动矢量包括: 把该组传输运动矢量划分为第一部分运动矢量和第二部分运动矢量;以及, 根据所述第二部分运动矢量,修改所述第一部分运动矢量。
33.如权利要求31所述的计算机可读介质,其中,为每个非重叠块分配至少一个运动矢量包括: 确定种子运动矢量;以及, 基于所述种子运动矢量,执行运动矢量搜索。
34.如权利要求33所述的计算机可读介质,其中,确定种子运动矢量包括: 对经过所述非重叠块的中心的运动矢量进行定位。
35.如权利要求33所述的计算机可读介质,其中,基于所述种子运动矢量执行运动矢量搜索包括: 执行双向运动矢量搜索。
36.如权利要求35所述的计算机可读介质,其中,执行双向运动矢量搜索包括: 在所述至少一个先前视频帧中构造一个先前视频帧搜索块; 把第一搜索范围分配给所述当前视频帧的一部分;以及, 基于第一预定标准,在所述第一搜索范围中搜索与所述先前视频帧搜索块相匹配的第一匹配块。
37.如权利要求36所述的计算机可读介质,其中,执行双向运动矢量搜索包括: 在所述当前视频帧中构造一个当前视频帧搜索块; 把第二搜索范围分配给所述至少一个先前视频帧的一部分;以及, 基于第二预定标准,在所述第二搜索范围中搜索与所述当前视频帧搜索块相匹配的第二匹配块。
38.如权利要求36所述的计算机可读介质,其中,执行双向运动矢量搜索包括: 基于所述第一匹配块,定位第一运动矢量。
39.如权利要求36所述的计算机可读介质,其中,所述第一预定标准基于失真度。
40.如权利要求39所述的计算机可读介质,其中,所述第一预定标准基于将所述失真度最小化。
41.如权利要求39所述的计算机可读介质,其中,所述失真度基于所述第一匹配块和所述先前视频帧搜索块之间的差的绝对值之和。
42.如权利要求39所述的计算机可读介质,其中,所述失真度基于所述第一匹配块和所述先前视频帧搜索块之间的差的平方之和。
43.如权利要求39所述的计算机可读介质,其中,所述失真度基于一个基于人体视觉系统的度量。
44.如权利要求39所述的计算机可读介质,其中,所述失真度基于统计。
45.如权利要求31所述的计算机可读介质,其中,该组传输运动矢量包括多个当前帧运动矢量和多个先前帧运动矢量。
46.一种用一个当前视频帧、至少一个先前视频帧以及一组传输运动矢量进行视频帧内插的设备,包括: 根据该组传输运动矢量创建第一组运动矢量的模块; 确定中间视频帧的模块,所述中间视频帧包括多个非重叠的块; 为每个非重叠块分配从所述第一组运动矢量中选出的至少一个运动矢量以创建一组分配运动矢量的模块; 根据该组分配运动矢量创建第二组运动矢量的模块;以及, 利用所述第二组运动矢量生成一个视频帧的模块。
47.如权利要求46所述的视频帧内插设备,其中,根据该组传输运动矢量创建第一组运动矢量的模块包括: 划分模块,把该组传输运动矢量划分为第一部分运动矢量和第二部分运动矢量;以及, 修改模块,根据所述第二部分运动矢量修改所述第一部分运动矢量。
48.如权利要求46所述的视频帧内插设备,其中,为每个非重叠块分配至少一个运动矢量的模块包括: 确定种子运动矢量的模块;以及, 基于所述种子运动矢量进行运动矢量搜索的模块。
49.如权利要求48所述的视频帧内插设备,其中,确定种子运动矢量的模块包括: 对经过所述非重叠块的中心的运动矢量进行定位的模块。
50.如权利要求 48所述的视频帧内插设备,其中,基于所述种子运动矢量进行运动矢量搜索的模块包括:执行双向运动矢量搜索的模块。
51.如权利要求50所述的视频帧内插设备,其中,执行双向运动矢量搜索的模块包括: 在所述至少一个先前视频帧中构造一个先前视频帧搜索块的模块; 把第一搜索范围分配给所述当前视频帧的一部分的模块;以及, 基于第一预定标准在所述第一搜索范围中搜索与所述先前视频帧搜索块相匹配的第一匹配块的模块。
52.如权利要求51所述的视频帧内插设备,其中,执行双向运动矢量搜索的模块包括: 在所述当前视频帧中构造一个当前视频帧搜索块的模块; 把第二搜索范围分配给所述至少一个先前视频帧的一部分的模块;以及, 基于第二预定标准在所述第二搜索范围中搜索与所述当前视频帧搜索块相匹配的第二匹配块的模块。
53.如权利要求51所述的视频帧内插设备,其中,执行双向运动矢量搜索的模块包括: 基于所述第一匹配块定位第一运动矢量的模块。
54.如权利要求54所述的视频帧内插设备,其中,所述第一预定标准基于失真度。
55.如权利要求54所述的视频帧内插设备,其中,所述第一预定标准基于将所述失真度最小化。
56.如权利要求 54所述的视频帧内插设备,其中,所述失真度基于所述第一匹配块和所述先前视频帧搜索块之间的差的绝对值之和。
57.如权利要求54所述的视频帧内插设备,其中,所述失真度基于所述第一匹配块和所述先前视频帧搜索块之间的差的平方之和。
58.如权利要求54所述的视频帧内插设备,其中,所述失真度基于一个基于人体视觉系统的度量。
59.如权利要求54所述的创建内插视频帧的设备,其中,所述失真度基于统计。
60.如权利要求46所述的创建内插视频帧的设备,其中,该组传输运动矢量包括多个当前帧运动矢量和多个先前帧运动矢量。
【文档编号】H04N7/46GK103826133SQ201410072100
【公开日】2014年5月28日 申请日期:2005年5月4日 优先权日:2004年5月4日
【发明者】维贾亚拉克施密·R·拉维德朗, 史芳 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1