基于运动场的视频编码方法及装置与流程

文档序号:12866182阅读:176来源:国知局
基于运动场的视频编码方法及装置与流程

本发明属于数字视频压缩技术领域,尤其涉及一种基于运动场的视频编码方法及装置。



背景技术:

h.264是一种高效的视频编码压缩标准。从h.264开始引入多参考帧,使得传统的mv(motionvector,运动向量)编码变成了mvf(motionvectorfield,运动场)编码,其中,运动场包括mv和refidx(参考索引,用于指示使用哪幅图像作为参考)。其中,运动向量是当前块在当前帧中的坐标(x,y)与预测块在参考帧中的坐标(x0,y0)之差mv0=(x0,y0)-(x,y)。参考索引和运动向量构成一组完成的预测参数,作为当前块的编码数据的一部分被编码。

h.264将编码图像分成三种类型:i帧、p帧和b帧。i帧只使用本帧中已编码块的信息来预测当前块,这种预测模式称为帧内预测;p帧使用已经完成编码并且显示顺序在当前帧之前的帧对应的重构帧来预测当前帧中的待编码块,这种预测模式称为前向预测;b帧可以使用已经完成编码(显示顺序在当前帧之前或之后都可以)的重构帧来预测当前帧中的待编码块。

在h.264中,直接编码refidx,然后,mv采用中值预测编码,即需要对运动场进行编码;对运动场进行编码仍需要消耗大量时间,因此,编码效率低。



技术实现要素:

有鉴于此,本申请的目的在于提供一种基于运动场的视频编码方法及装置,以提高视频编码效率。

第一方面,本申请提供了一种基于运动场的视频编码方法,包括:

从当前块的邻居块对应的运动场中获得所述当前块对应的运动场的预测,所述邻居块包括时域邻居块和空域邻居块中的至少一类;所述当前块对应的运动场的预测包括前向运动场的预测和后向运动场的预测;

当所述当前块存在前向运动场时,从所述当前块对应的运动场的预测中查找与所述前向运动场相同的目标前向运动场;

对所述目标前向运动场对应的索引进行编码,获得所述当前块的前向运动场的编码;

当所述当前块存在后向运动场时,从所述当前块对应的运动场的预测中查找与所述后向运动场相同的目标后向运动场;

对所述目标后向运动场对应的索引进行编码,获得所述当前块的后向运动场的编码。

可选地,所述当所述当前块存在前向运动场时,从所述当前块对应的运动场的预测中查找与所述前向运动场相同的目标前向运动场,包括:

获取所述当前块的前向运动场;

从所述当前块对应的运动场的预测所包含的所有所述前向运动场的预测中提取出互不重复的所述前向运动场的预测,并为各个互不重复的所述前向运动场的预测创建索引;

逐一比较所述各个互不重复的前向运动场的预测与所述前向运动场是否相同;

当存在与所述前向运动场相同的前向运动场的预测时,确定与所述前向运动场相同的前向运动场的预测为所述目标前向运动场,并确定所述目标前向运动场对应的索引。

可选地,所述当所述当前块存在后向运动场时,从所述当前块对应的运动场的预测中查找与所述后向运动场相同的目标后向运动场,包括:

获取所述当前块的后向运动场;

从所述当前块对应的运动场的预测所包含的后向运动场的预测中提取出互不重复的所述后向运动场的预测,并为各个互不重复的所述后向运动场的预测创建索引;

逐一比较所述各个互不重复的后向运动场的预测与所述后向运动场是否相同;

当存在与所述后向运动场信息相同的后向运动场的预测时,确定与所述后向运动场相同的后向运动场的预测为所述目标后向运动场,并确定所述目标后向运动场对应的索引。

可选地,所述对所述目标前向运动场的预测对应的索引进行编码,获得所述当前块的前向运动场的编码包括:

对第一预设标记进行编码,所述第一预设标记用于表征存在所述目标前向运动场;

对所述目标前向运动场对应的索引进行编码;

根据所述第一预设标记的编码和所述目标前向运动场对应的索引的编码,得到所述当前块的前向运动场的编码。

可选地,所述对所述目标后向运动场的预测对应的索引进行编码,获得所述当前块的后向运动场的编码,包括:

对用于表征存在所述目标后向运动场的第二预设标记进行编码;

对所述目标后向运动场对应的索引进行编码;

根据所述第二预设标记的编码,以及,所述目标后向运动场对应的索引的编码,得到所述当前块的后向运动场的编码。

第二方面,本申请还提供了一种基于运动场的视频编码装置,包括:

运动场预测模块,用于从当前块的邻居块对应的运动场中获得所述当前块对应的运动场的预测,所述邻居块包括时域邻居块和空域邻居块中的至少一类;所述当前块对应的运动场的预测包括前向运动场的预测和后向运动场的预测;

第一查找模块,用于当所述当前块存在前向运动场时,从所述当前块对应的运动场的预测中查找与所述前向运动场相同的目标前向运动场;

第一编码模块,用于对所述目标前向运动场对应的索引进行编码,获得所述当前块的前向运动场的编码;

第二查找模块,用于当所述当前块存在后向运动场时,从所述当前块对应的运动场的预测中查找与所述后向运动场相同的目标后向运动场;

第二编码模块,用于对所述目标后向运动场对应的索引进行编码,获得所述当前块的后向运动场的编码。

可选地,所述第一查找模块,包括:

第一获取子模块,用于获取所述当前块的前向运动场;

第一索引创建子模块,用于从所述当前块对应的运动场的预测所包含的所有所述前向运动场的预测中提取出互不重复的所述前向运动场的预测,并为各个互不重复所述前向运动场的预测创建索引;

第一比较子模块,用于逐一比较所述各个互不重复的前向运动场的预测与所述前向运动场是否相同;

第一确定子模块,用于当存在与所述前向运动场相同的前向运动场的预测时,确定与所述前向运动场相同的前向运动场的预测为所述目标前向运动场,并确定所述目标前向运动场对应的索引。

可选地,所述第二查找模块,包括:

第二获取子模块,用于获取所述当前块的后向运动场;

第二索引创建子模块,用于从所述当前块对应的运动场的预测所包含的后向运动场的预测中提取出互不重复的所述后向运动场的预测,并为各个互不重复的所述后向运动场的预测创建索引;

第二比较子模块,用于逐一比较所述各个互不重复的后向运动场的预测与所述后向运动场是否相同;

第二确定子模块,用于当存在与所述后向运动场信息相同的后向运动场的预测时,确定与所述后向运动场相同的后向运动场的预测为所述目标后向运动场,并确定所述目标后向运动场对应的索引。

可选地,所述第一编码模块,包括:

第一编码子模块,用于对第一预设标记进行编码,所述第一预设标记用于表征存在所述目标前向运动场;

第二编码子模块,用于对所述目标前向运动场对应的索引进行编码;

第一编码获得子模块,用于根据所述第一预设标记的编码和所述目标前向运动场对应的索引的编码,得到所述当前块的前向运动场的编码。

可选地,所述第二编码模块,包括:

第三编码子模块,用于对用于表征存在所述目标后向运动场的第二预设标记进行编码;

第四编码子模块,用于对所述目标后向运动场对应的索引进行编码;

第二编码获得子模块,用于根据所述第二预设标记的编码,以及,所述目标后向运动场对应的索引的编码,得到所述当前块的后向运动场的编码。

本发明提供的基于运动场的视频编码方法,依据当前块在时域和空域上的邻居块获得该当前块的运动场的预测(即,mvf的预测);若当前块存在前向运动场,则从mvf的预测中查找与该前向运动场相同的前向运动场的预测,称为目标前向运动场;并对目标前向运动场的索引进行编码。若当前块存在后向运动场,则从邻居块的mvf的预测中查找与该后向运动场相同的后向运动场的预测,称为目标后向运动场;然后,对该目标后向运动场的索引进行编码。最后,根据目标前向运动场对应索引的编码和目标后向运动场对应索引的编码中的至少一项得到该当前块的运动场的编码。可见,该视频编码方法只需要对目标前向运动场或目标后向运动场的索引进行编码,而不需要对当前块的前向运动场或后向运动场进行编码,因此,提高了编码效率。而且,当前块的前向运动场和后向运动场可以分别独立使用上述的视频编码过程(即,可以只针对前向运动场利用该方法进行编码,或者,只针对后向运动向利用该方法进行编码),提高了灵活性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例一种基于运动场的视频编码方法的流程图;

图2是本发明实施例一种当前块对应的邻居块的示意图;

图3是本发明实施例另一种基于运动场的视频编码方法的流程图;

图4是本发明实施例一种基于运动场的视频编码装置的框图;

图5是本发明实施例一种第一查找模块的框图;

图6是本发明实施例一种第一编码模块的框图;

图7是本发明实施例一种第二查找模块的框图;

图8是本发明实施例一种第二编码模块的框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参见图1,示出了本发明实施例一种基于运动场的视频编码方法的流程图,该方法用于对视频帧的运动场进行编码。如图1所示,该方法可以包括以下步骤:

s110,从当前块的邻居块对应的运动场中获得所述当前块对应的运动场的预测。

邻居块包括时域邻居块和空域邻居块中的至少一类,例如,可以只有时域邻居块,或者,只有空域邻居块,或者,既有时域邻居块又有空域邻居块。

请参见图2,示出了本申请实施例一种当前块对应的邻居块的示意图,如图2所示,x是当前块,a0、a1、b0、b1和b2是当前块x的空域邻居块,当然也可以选x的其它空域邻居块,本申请对此并不限制;接着,获取上述空域邻居块的运动场,如果某位置不存在,则跳过此位置。其中,包括邻居块的前向运动场和后向运动场。

图2中y表示当前块x在时域上的参考图像中同位块,获得该时域邻居块的运动场,可以利用y的参考图像在图2所示的c0、c1位置的同位块得到y的运动场。

图2所示的各个邻居块的运动场作为当前块x的运动场的预测。运动场的预测包括前向运动场的预测和后向运动场的预测,运动场的预测用来预测当前块的运动场。

获取图2所示的空域邻居块和时域邻居块的运动场,并剔除相同的运动场,最终共得到n个运动场,编号依次为:mvfp0、mvfp1、……、mvfpn-1。

邻居块的运动场的获取方式可以采用已有的方式实现,例如,采用高效视频编码(highefficiencyvideocoding,hevc)获得。

s120,当所述当前块存在前向运动场时,从当前块对应的运动场的预测中查找与所述前向运动场相同的目标前向运动场。

如果当前块的运动场中存在前向运动场,记为mvffc,则从s110获得的当前块的所有运动场的预测中提取出全部前向运动场的预测,并剔除相同的项。即从时域或空域邻居块的运动场中提取全部前向运动场,并剔除相同的运动场,最终得到的当前块对应的前向运动场的预测中任意两个运动场互不相同。

然后,从提取得到的所有前向运动场的预测中查找出与当前块的前向运动场相同的运动场,称为目标前向运动场。

例如,从n个运动场的预测中提取出全部前向运动场并剔除相同项,得到前向运动场的预测,假设,最终得到的前向运动场的预测中包含m个前向运动场,编号依次为:mvfpf0、mvfpf1、……、mvfpfm-1。判断这m个前向运动场中是否存在一个与当前块的mvffc相同的项,如果存在,则确定与mvffc相同的项为目标前向运动场,因为目标前向运动场与当前块的前向运动场相同,所以可以利用目标前向运动场的编码表示当前块的前向运动场的编码。

为了准确找到目标前向运动的编码,需要对前向运动场的预测创建索引,根据目标前向运动场的索引找到该目标前向运动场的编码。例如,mvfpfi=mvffc,则目标前向运动场是mvfpfi,且索引为i。

s130,对所述目标前向运动场对应的索引进行编码。

对目标前向运动场的索引进行编码,例如,对mvfpfi的索引i进行编码。

s140,当所述当前块存在后向运动场时,从当前块对应的运动场的预测中查找与所述后向运动场相同的目标后向运动场。

如果当前块的运动场中存在后向运动场,记为mvfbc,则从s110获得的所有运动场的预测中提取出全部后向运动场的预测,并剔除相同的项。例如,从n个运动场的预测中提取出全部后向运动场并剔除相同项,得到后向运动场的预测包含t个后向运动场,编号依次为mvfpb0、mvfpb1、……、mvfpbt-1。

然后,判断这t个后向运动场中是否存在一个与当前块的mvfbc相同的项,如果存在,则确定该项对应的运动场为目标后向运动场,因为目标后向运动场与当前块的后向运动场相同,所以可以利用目标后向运动场的编码表示当前块的后向运动场编码。

为了准确找到目标后向运动的编码,需要对后向运动场的预测创建索引,根据目标后向运动场的索引找到该目标后向运动场的编码。例如,mvfpbj=mvfbc,则目标后向运动场是mvfpbcj,且索引为j。

s150,对所述目标后向运动场对应的索引进行编码。

例如,对mvfpbcj的索引j进行编码。

s160,依据所述目标前向运动场对应索引的编码和所述目标后向运动场对应索引的编码中的至少一项,得到所述当前块对应运动场的编码。

如果当前块只存在前向运动场,则将目标前向运动场的编码作为当前块对应的运动场的编码;

如果当前块只存在后向运动场,则将目标后向运动场的编码作为当前块对应的运动场的编码;

如果当前块同时存在前向运动场和后向运动场,则将目标前向运动场的编码和目标后向运动场的编码作为当前块对应的运动场的编码。

目标前向运动场和目标后向运动场是已编码块,只需要编码目标前向运动场和目标后向运动场对应的索引等信息即可,索引的数据量远远小于运动场的数据量,因此,编码索引的效率远远高于编码运动场的效率。

本实施例提供的基于运动场的视频编码方法,根据当前块在时域和/或空域上的邻居块的前向运动场确定当前块的前向运动场的预测,并将该前向运动场的预测确定为目标前向运动场;和/或,根据当前块的邻居块的后向运动场确定当前块的后向运动场的预测,并将该后向运动场的预测确定为目标后向运动场;因为目标前向运动场和目标后向运动场的编码已知,所以只需要对目标前向运动场(或者,目标后向运动场)的索引进行编码,而不需要对当前块的前向运动场或后向运动场进行编码,因此,提高了编码效率。而且,当前块的前向运动场和后向运动场可以分别独立使用上述的视频编码过程,即,可以只针对前向运动场利用该方法进行编码,或者,只针对后向运动向利用该方法进行编码,提高了灵活性。

请参见图3,示出了本发明实施例另一种基于运动场的视频编码方法的流程图,如图3所示,该方法可以包括以下步骤:

s210,从当前块的邻居块对应的运动场中获得该当前块对应的运动场的预测。

邻居块包括时域邻居块和/或空域邻居块。获取邻居块的运动场的过程与s110相同,此处不再赘述。

例如,剔除相同项后得到的运动场的预测中包含的运动场共有n个,编码依次为mvfp0、mvfp1、……、mvfpn-1。

运动场的预测包括邻居块的前向运动场和后向运动场。

s220,对当前块的预测方向进行编码。

预测方向包括前向、后向和双向中的任意一种。例如,前向编码为二进制数“00”,后向编码为二进制数“01”,双向编码为二进制数“10”。

s230,获取当前块的运动场。

若当前块的预测方向是前向,则获得的当前块的运动场是前向运动场;

若当前块的预测方向是后向,则获得的当前块的运动场是后向运动场;

若当前块的预测方向是双向,则获得的当前块的运动场是前向运动场和后向运动场。

当前块的运动场利用已有的预测运动场的方式获得,此处不再一一列举。

s240,若当前块的运动场存在前向运动场,则从当前块对应的运动场的预测中提取出全部前向运动场,并剔除相同项,得到前向运动场的预测。

从当前块对应的运动场的预测中提取出全部的前向运动场,并从全部的前向运动场中剔除相同项,最终得到的前向运动场的预测互不相同,即获得的前向运动场的预测中的任意两个运动场互不相同。

s250,为前向运动场的预测所包含的各个运动场创建索引。

例如,从n个运动场的预测中提取出全部的前向运动场并剔除相同项,得到m个前向运动场,编号依次为:mvfpf0、mvfpf1、……、mvfpfm-1。此处的编号0~m-1即运动场的索引。

为运动场创建索引的好处是后续可以只对索引进行编码,与对运动场进行编码相比,索引的数据量远远小于运动场的数据量,因此,能够提高后续的索引进行编码。

s260,比较前向运动场的预测中是否包含与当前块的前向运动场相同的运动场;如果是,则执行s270;否则,执行s280。

判断前向运动场的预测中的运动场是否与当前块的前向运动场相同。运动场相同是指refidx(参考索引)和mv都相同。

s270,对与当前块的前向运动场相同的运动场所对应的索引进行编码。

如果存在与当前块的前向运动场相同的前向运动场的预测,则对该邻居块的前向运动场对应的索引进行编码。

例如,如果某一邻居块的前向运动场(mvfpfi)(即,当前块的前向运动场的预测)与当前块的前向运动场(mvffc)相同,即相同项对应的索引是i,则设ismvffeq=1;ismvffeq=1表示前向运动场的预测中存在与当前块的前向运动场相同的目标前向运动场,可以利用目标前向运动场编码表示当前块的前向运动场编码,因此,只需对相同项对应的索引进行编码,大大降低了编码数据量,提高了编码效率。

此种应用场景下,先对ismvffeq进行编码,然后,对索引i进行编码,例如,ismvffeq=1可以是二进制数“1”来编码;索引i的编码可以是该索引所对应的二进制数。

例如,邻居块b0的前向运动场与当前块的前向运动场相同,则用邻居块的前向运动场的编码作为当前块的运动场的编码,不需要对当前块的运动场进行编码,只需要编码邻居块的前向运动场在前向运动场的预测中的索引。

s280,对当前块的前向运动场进行编码。

如果当前块的前向运动场的预测中不包含与当前块的前向运动场相同的运动场,则需要对当前块的前向运动场进行编码。

此种应用场景下,设定ismvffeq=0,ismvffeq=0表示当前块不存在前向运动场的预测;先对ismvffeq进行编码,然后,利用已有方式对前向运动场进行编码,即,先对参考索引进行编码,再对mv残差进行编码。

s290,若当前块的运动场存在后向运动场,则从运动场的预测中提取出全部后向运动场,并剔除相同项,得到当前块的后向运动场的预测。

s2100,为后向运动场的预测所包含的各个运动场创建索引。

例如,从n个运动场的预测中提取出全部的后向运动场并剔除相同,得到t个后向运动场,这t个后向运动场中任意两个运动场互不相同。

这t个后向运动场的编号依次为mvfpb1、mvfpb2、……、mvfpbt-1,此处的编码0~t-1即运动场的索引。

s2110,比较后向运动场的预测中是否包含与当前块的后向运动场相同的运动场;如果是,则执行s2120;否则,执行s2130。

判断后向运动场的预测中的各个运动场是否与当前块的后向运动场相同(refidx和mv都相同)。

s2120,对与当前块的后向运动场相同的运动场所对应的索引进行编码。

在本发明一种可能的实现方式中,如果某一邻居块的后向运动场(mvfpbj)与当前块的后向运动场(mvfbc)相同,即相同项对应的索引是j,则设定ismvfbeq=1;ismvfbeq=1表示后向运动场的预测中存在与当前块的后向运动场相同的项,因此,接下来只需对相同项对应的索引进行编码,即利用该相同项的后向运动场编码表征当前块的后向运动场编码。

此种应用场景下,先编码ismvfbeq,然后,编码索引j,例如,ismvffeq=1可以是二进制数“1”来编码;索引i的编码可以是该索引所对应的二进制数。

在本发明另一种可能的实现方式中,编码与当前块的后向运动场相同的运动场对应的索引时,可以采用如下方式:

如果ismvffeq=0,则按照第一种算术编码方式编码ismvfbeq和索引j;如果ismvffeq=1,则按照第二种算术编码方式编码ismvfbeq和索引j。

算术编码器分为两个模块,分别是概率估计模块和间隔划分模块;间隔划分模块根据概率对间隔进行划分,生成实际的二进制码流;概率估计模块用于对符号进行概率估计。对于二进制编码器而言,如果当前编码符号是“1”,则概率估计模块会在编码阶数后更新符号的概率估计,使“1”的概率增加,而“0”的概率减少,下一次编码符号“1”时“1”的码长会更短;如果当前符号是“0”,则概率估计模块会在编码结束后更新符号的概率估计,使“0”的概率增加而“1”的概率减少。本实施例根据ismvffeq是“1”还是“0”对ismvfbeq、索引j的编码进行区分。根据统计数据,当ismvffeq=1时,ismvfbeq也应该更加倾向于1,因此,根据ismvffeq的情况对ismvfbeq、索引j使用不同的内容模型,例如,当ismvffeq=1时,对ismvfbeq的编码使用ctx0,而ismvffeq=0时,对ismvfbeq的编码使用ctx1。这样在编码过程中,随着编码的进行,统计上ctx0中ismvfbeq=1的概率应该大于ctx1中ismvfbeq=1的概率,这样ismvfbeq的编码效率就得到了提升。

s2130,对当前块的后向运动场进行编码。

如果后向运动场的预测中不包含与当前块的后向运动场相同的运动场,则设定ismvfbeq=0,先对ismvfbeq进行编码,然后,利用已有方式对前向运动场进行编码,即,先对参考索引进行编码,再对mv残差进行编码。

本实施例提供的基于运动场的视频编码方法,根据当前块在时域和/或空域上的邻居块的前向运动场确定当前块的前向运动场的预测,并将该前向运动场的预测确定为目标前向运动场;和/或,根据当前块的邻居块的后向运动场确定当前块的后向运动场的预测,并将该后向运动场的预测确定为目标后向运动场;因为目标前向运动场和目标后向运动场的编码已知,所以只需要对与当前块的前向运动场相同的目标前向运动场(或,与当前块的后向运动场相同的目标后向运动场)所对应的索引进行编码,不需要对当前块的前向运动场(或,后向运动场)本身进行编码,索引的数据量远远低于运动场的数据量,因此,该方法提高了视频编码效率。而且,当前块的前向运动场和后向运动场可以分别独立使用上述的视频编码过程,即,可以只针对前向运动场利用该方法进行编码,或者,只针对后向运动向利用该方法进行编码,提高了视频编码的灵活性。

对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

相应于上述的基于运动场的视频编码方法实施例,本发明还提供了基于运动场的视频编码装置实施例。

请参见图4,示出了本申请实施例一种基于运动场的视频编码装置的框图,该装置用于对视频帧的运动场进行编码。如图4所示,该装置可以包括:运动场预测模块110、第一查找模块120、第一编码模块130、第二查找模块140和第二编码模块150。

运动场预测模块110,用于从当前块的邻居块对应的运动场中获得该当前块对应的运动场的预测。

所述邻居块包括时域邻居块和空域邻居块中的至少一类,例如,可以只有时域邻居块,或者,只有空域邻居块,或者,既有时域邻居块又有空域邻居块。

如图2所示的各个邻居块的运动场作为当前块x的运动场的预测。运动场的预测包括前向运动场的预测和后向运动场的预测,运动场的预测用来预测当前块的运动场。

第一查找模块120,用于当所述当前块存在前向运动场时,从所述当前块对应的运动场的预测中查找与所述前向运动场相同的目标前向运动场。

如果当前块的运动场中存在前向运动场,记为mvffc,则运动场预测模块110获得的当前块的所有运动场的预测中提取出全部前向运动场的预测,并剔除相同的项。然后,从提取得到的所有前向运动场的预测中查找出与当前块的前向运动场相同的运动场,称为目标前向运动场。

在本申请的一个实施例中,如图5所示,第一查找模块120可以包括:第一获取子模块121、第一索引创建子模块122、第一比较子模块123和第一确定子模块124。

第一获取子模块121,用于获取所述当前块的前向运动场。

第一索引创建子模块122,用于从所述当前块对应的运动场的预测所包含的所有所述前向运动场的预测中提取出互不重复的所述前向运动场的预测,并为各个互不重复所述前向运动场的预测创建索引。

例如,从n个运动场的预测中提取出全部的前向运动场并剔除相同项,得到m个前向运动场,而且,这m个前向运动场中任意两个前向运动场互不相同。

然后,依次对m个前向运动场依次进行编号,例如,编号依次为:mvfpf0、mvfpf1、……、mvfpfm-1。此处的编号0~m-1即前向运动场的索引。

第一比较子模块123,用于逐一比较所述各个互不重复的前向运动场的预测与所述前向运动场是否相同。

判断前向运动场的预测中的运动场是否与当前块的前向运动场相同。运动场相同是指refidx(参考索引)和mv都相同。

第一确定子模块124,用于当存在与所述前向运动场相同的前向运动场的预测时,确定与所述前向运动场相同的前向运动场的预测为所述目标前向运动场,并确定所述目标前向运动场对应的索引。

利用该第一查找模块获取当前块的前向运动场,以及,从当前块的前向运动场的预测中查找与当前块的前向运动场相同的前向运动场的预测,并确定该前向运动场的预测为当前块的目标前向运动场,最后获取该目标前向运动场的索引,以便下一步对目标前向运动场的索引进行编码。

第一编码模块130,用于对所述目标前向运动场对应的索引进行编码,获得所述当前块的前向运动场的编码。

如果前向运动场的预测中存在与当前块的前向运动场相同的运动场,则只需对该前向运动场的预测对应的索引进行编码。

在本申请的一个实施例中,如图6所示,第一编码模块130包括:第一编码子模块131、第二编码子模块132和第一编码获得子模块133。

第一编码子模块131,用于对第一预设标记进行编码,所述第一预设标记用于表征存在所述目标前向运动场。

例如,可以用ismvffeq=1表示前向运动场的预测中存在与当前块的前向运动场相同的项。

第二编码子模块132,用于对所述目标前向运动场对应的索引进行编码。

第一编码获得子模块133,用于根据所述第一预设标记的编码和所述目标前向运动场对应的索引的编码,得到所述当前块的前向运动场的编码。

此种应用场景下,先对ismvffeq进行编码,然后,对目标前向运动场对应的索引i进行编码,例如,ismvffeq=1可以是二进制数“1”来编码;索引i的编码可以是该索引所对应的二进制数。

该第一编码模块只需对第一预设标记和目标前向运动场的索引进行编码,与对当前块的前向运动场进行编码相比,大大减少了编码数据量,提高了编码效率。

第二查找模块140,用于当所述当前块存在后向运动场时,从所述当前块对应的运动场的预测中查找与所述后向运动场相同的目标后向运动场。

从当前块对应的运动场的预测中查找与当前块的后向运动场相同的运动场时,确定该运动场的预测中的运动场为目标后向运动场。

在本申请的一个实施例中,如图7所示,第二查找模块140可以包括:第二获取子模块141、第二索引创建子模块142、第二比较子模块143和第二确定子模块144。

第二获取子模块141,用于获取当前块的后向运动场。

第二索引创建子模块142,用于从当前块对应的运动场的预测所包含的后向运动场的预测中提取出互不重复的后向运动场的预测,并为各个互不重复的所述后向运动场的预测创建索引。

如果当前块的运动场中存在后向运动场,则从当前块对应的运动场的预测中提取出全部后向运动场,并剔除相同项,得到当前块的后向运动场的预测。以及,为各个互不重复的后向运动场的预测创建索引。

例如,从n个运动场的预测中提取出全部的后向运动场并剔除相同,得到t个后向运动场,编号依次为mvfpb1、mvfpb2、……、mvfpbt-1。此处的编码0~t-1即运动场的索引。

第二比较子模块143,用于逐一比较各个互不重复的后向运动场的预测与后向运动场是否相同。

第二确定子模块144,用于当存在与后向运动场信息相同的后向运动场的预测时,确定与后向运动场相同的后向运动场的预测为目标后向运动场,并确定目标后向运动场对应的索引。

该第二查找模块与第一查找模块的功能相似,不同之处在于,第二查找模块用于查找与当前块的后向运动场相同的后向运动场的预测,即目标后向运动场,并获取该目标后向运动场的索引,以便下一步对该目标后向运动场的索引进行编码。

第二编码模块150,用于对所述目标后向运动场对应的索引进行编码,获得所述当前块的后向运动场的编码。

如果存在目标后向运动场,则只需对该目标后向运动场的索引进行编码。

在本申请的一个实施例中,如图8所示,第二编码模块150包括:第三编码子模块151、第四编码子模块152和第二编码获得子模块153。

第三编码子模块151,用于对用于表征存在所述目标后向运动场的第二预设标记进行编码。

第四编码子模块152,用于对所述目标后向运动场对应的索引进行编码。

第二编码获得子模块153,用于根据所述第二预设标记的编码,以及,所述目标后向运动场对应的索引的编码,得到当前块的后向运动场的编码。

例如,如果某一邻居块的后向运动场(mvfpbj)与当前块的后向运动场(mvfbc)相同,即相同项对应的索引是j,则设定ismvfbeq=1;ismvfbeq=1表示后向运动场的预测中存在与当前块的后向运动场相同的目标后向运动场,因此,可以利用该目标后向运动场的编码表示当前块的后向运动场编码,因此该第二编码模块只需对相同项对应的索引进行编码。

本实施例提供的基于运动场的视频编码方法,根据当前块在时域和/或空域上的邻居块的前向运动场确定当前块的前向运动场的预测,并将该前向运动场的预测确定为目标前向运动场;和/或,根据当前块的邻居块的后向运动场确定当前块的后向运动场的预测,并将该后向运动场的预测确定为目标后向运动场;因为目标前向运动场和目标后向运动场的编码已知,所以只需要对目标前向运动场(或目标后向运动场)的索引进行编码,而不需要对当前块的前向运动场或后向运动场进行编码,因此,提高了编码效率。而且,当前块的前向运动场和后向运动场可以分别独立使用上述的视频编码过程,即,可以只针对前向运动场利用该方法进行编码,或者,只针对后向运动向利用该方法进行编码,提高了灵活性。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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