时域运动矢量预测方法、设备及存储介质与流程

文档序号:23230981发布日期:2020-12-08 15:19阅读:165来源:国知局
时域运动矢量预测方法、设备及存储介质与流程

本申请属于视频编解码技术领域,具体涉及时域运动矢量预测方法、设备及存储介质。



背景技术:

因为视频图像的数据量比较大,视频编码的主要作用是将视频像素数据(rgb,yuv等)压缩成为视频码流,从而降低视频的数据量,实现降低传输过程中的网络带宽和减少存储空间的目的。

一般来说,时间上相邻帧像素点的亮度和色度信号值比较接近,具有强相关性。帧间预测在参考帧中寻找与当前块最为接近的匹配块,并记录当前块与匹配块间的运动信息如运动矢量mv(motionvector)和参考帧索引。对运动信息进行编码,传输到解码端。在解码端,解码器只要通过相应句法元素解析出当前块的mv,就可找到当前块的匹配块。并将匹配块的像素值拷贝到当前块,即为当前块的帧间预测值。然而现有的当前块与匹配块间的运动信息如运动矢量的预测方法不够准确,亟待一更为准确的预测方法以解决上述问题。



技术实现要素:

本申请提供时域运动矢量预测方法、设备及存储介质,以解决运动矢量预测不够准确的问题。

为解决上述技术问题,本申请采用的一个技术方案是:一种时域运动矢量预测方法,所述方法包括:在基于子块进行时域运动矢量预测时,对当前块进行分割,获取若干大小相同的子块;获取每一所述子块中的任意一位置的像素块对应的时域运动矢量,将基于所述像素块对应的时域运动矢量确定每一所述子块的时域运动矢量。

根据本申请一实施方式,所述获取每一所述子块中的任意一位置的像素块对应的时域运动矢量,将基于所述像素块对应的时域运动矢量确定每一所述子块的时域运动矢量,包括:利用每一所述子块的左上角、左下角、右上角、右下角或中心点位置的像素块获取对应的时域运动矢量,以确定每一所述子块的时域运动矢量,所述像素块的边长为四个像素。

根据本申请一实施方式,所述方法还包括:响应于当前子块无法获取有效的时域运动矢量;基于所述当前子块中的另一位置的像素块的时域运动矢量确定所述当前子块的有效的时域运动矢量;或者,以第一顺序获取所述当前块内其余所述子块的有效的时域运动矢量,将获取顺序在前的其余所述子块的有效的时域运动矢量作为所述当前子块的时域运动矢量;或者,以第二顺序或任意获取所述当前块内第一数量个其余所述子块的有效的时域运动矢量,并加权平均后作为所述当前子块的有效的时域运动矢量。

根据本申请一实施方式,所述对所述当前块进行分割,获取若干大小相同的子块,包括:则根据所述当前块的尺寸对所述当前块划分,获得若干个大小相同,且边长大于预定值的子块。

根据本申请一实施方式,所述根据所述当前块的尺寸对所述当前块划分,包括:比较所述当前块的第一侧边和第二侧边的长度,所述第一侧边与所述第二侧边相邻;响应于所述第一侧边与所述第二侧边的长度比值大于等于第一预定倍数,以垂直所述第一侧边的方向对所述当前块进行平均划分,所述第预定倍数大于一;或者,响应于所述第二侧边与所述第一侧边的长度比值大于等于第二预定倍数,以垂直所述第二侧边的方向对所述当前块进行平均划分,所述第二预定倍数大于一;或者,响应于所述第一侧边等于所述第二侧边,以十字划分法对所述当前块进行平均划分。

根据本申请一实施方式,所述根据所述当前块的尺寸对所述当前块平均划分,包括:获取所述当前块的第一侧边和第二侧边的长度,所述第一侧边与所述第二侧边相邻;响应于所述第一侧边的长度为所述预定值的至少两倍,以垂直所述第一侧边的方向对所述当前块进行平均划分;和/或,响应于所述第二侧边的长度为所述预定值的至少两倍,以垂直所述第二侧边的方向对所述当前块进行平均划分。

根据本申请一实施方式,在所述对当前块进行分割之前,还包括:获取所述当前块的斜对角位置的第一组像素块对应的两个第一时域运动矢量,以及所述当前块的斜对角位置的第二组像素块对应的两个第二时域运动矢量;判断两个所述第一时域运动矢量是否相同,和/或,两个所述第二时域运动矢量是否相同;若是,则不对所述当前块进行分割。

根据本申请一实施方式,所述在基于子块进行时域运动矢量预测时,包括:判断所述当前预测模式是否为skip/direct帧间预测模式,且所述当前块的第一侧边和第二侧边长是否均大于等于所述预定值,且至少其中一条侧边大于等于所述预定值的两倍,所述第一侧边与所述第二侧边相邻;若是,则基于子块进行时域运动矢量预测。

根据本申请一实施方式,所述方法还包括:对所述当前块的所有所述子块的时域运动矢量进行运动补偿和失真代价计算。

为解决上述技术问题,本申请采用的又一个技术方案是:一种时域运动矢量预测方法,所述方法包括:在基于子块进行时域运动矢量预测时,根据所述当前块的尺寸对所述当前块划分,获得若干个大小相同,且边长大于预定值的子块;获取每一所述子块的时域运动矢量。

为解决上述技术问题,本申请采用的又一个技术方案是:一种电子设备,包括相互耦接的存储器和处理器,所述处理器用于执行所述存储器中存储的程序指令,以实现上述任一时域运动矢量预测方法。

为解决上述技术问题,本申请采用的又一个技术方案是:一种计算机可读存储介质,其上存储有程序数据,所述程序数据被处理器执行时实现上述任一时域运动矢量预测方法。

本申请的有益效果是:本方法通过获取每一子块的任意一位置的像素块对应的时域运动矢量,将像素块对应的时域运动矢量作为每一子块的时域运动矢量。子块获取时域运动矢量的位置更为灵活,且不同子块获取时域运动矢量的位置可以不同,从而提高子块获取时域运动矢量的准确性,进而提高时域运动矢量预测的准确性。

附图说明

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

图1是本申请的时域运动矢量预测方法一实施例的流程示意图;

图2是本申请的时域运动矢量预测方法一实施例中获取当前块的时域运动矢量时不同坐标的当前块所对应的时域同位块范围示意图;

图3是本申请的时域运动矢量预测方法一实施例中获取当前块的时域运动矢量时判断空域位置的相邻块是否可用的框架示意图;

图4是本申请的时域运动矢量预测方法一实施例中为subtmvp技术的启动增加一个终止条件的流程示意图;

图5是本申请的时域运动矢量预测方法一实施例中一获取子块的时域运动矢量的框架示意图;

图6是本申请的时域运动矢量预测方法一实施例中一获取子块的时域运动矢量的框架示意图;

图7是本申请的时域运动矢量预测方法一实施例中一获取子块无法获得有效的时域运动矢量的框架示意图;

图8是本申请的时域运动矢量预测方法又一实施例的流程示意图;

图9是本申请的时域运动矢量预测装置一实施例的框架示意图;

图10是本申请的时域运动矢量预测装置又一实施例的框架示意图;

图11是本申请的电子设备一实施例的框架示意图;

图12是本申请计算机可读存储介质一实施例的框架示意图。

具体实施方式

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

请参阅图1,本申请一实施例提供了一种时域运动矢量预测方法,包括如下步骤:

s11:在基于子块进行时域运动矢量预测时,对当前块进行分割,获取若干大小相同的子块。

若当前预测模式为skip/direct帧间预测模式,且当前块的第一侧边和第二侧边均大于等于16个像素时,满足基于子块的时域运动矢量预测的预设启用条件。此时,可以启动基于子块进行时域运动矢量预测subtmvp),对当前块进行分割,获取若干大小相同的子块。

在一些实施例中,直接对当前块进行十字分割,获取若干大小相同的子块,子块的边长大于预定值,具体地,预定值为4,当然其他实施例中,预定值还可以为其他数值。

在又一些实施例中,对当前块进行分割,获取若干大小相同的子块,包括:根据当前块的尺寸对当前块划分,获得若干个大小相同,且边长大于预定值的子块。根据当前块尺寸灵活选取分割方式,在控制复杂度增加幅度的情况下有效提升预测准确度。

具体可以包括以下几种方案:

a、利用高宽比决定分割方式:

比较当前块的第一侧边和第二侧边的长度,第一侧边和第二侧边相邻。响应于第一侧边与第二侧边的长度比值大于等于第一预定倍数r0,第一预定倍数大于一(r0>1),以垂直第一侧边的方向对当前块进行平均划分,平均划分为n0(n0≥2)个相同大小的子块;或者,响应于第二侧边与第一侧边的长度比值大于等于第二预定倍数r1,第二预定倍数大于一r1(r1>1),以垂直于第二侧边的方向对当前块进行平均划分,平均划分为n1(n1≥2)个相同大小的子块;响应于第一侧边等于第二侧边,以十字划分法对当前块进行平均划分,划分可以划分多次。获得的子块的大小的边长都需大于等于预定值,否则不进行该划分。

以下结合几个具体实施方式说明:

在一具体实施方式中,若第一侧边的长度大于第二侧边,第一侧边/第二侧边的比值为r0,可设定则沿垂直第一侧边的方向将当前块划分为n0个子块;若第二侧边的长度大于第一侧边,第二侧边/第一侧边的比值为r1,可设定则沿垂直第二侧边的方向将当前块划分为n1个子块。

在一具体实施方式中,将第一侧边和第二侧边的比值r0,或第二侧边与第一侧边的比值r1从小到大划分为不同的区间段,每个区间段之内的n0或n1值一致。比如预设当2≤r0≤4时,n0都等于2;预设当8≤r0≤16时,n0都等于8;预设当16<r0时,n0都等于4。n1的设置同理。

b、利用当前块的边长决定分割方式:

获取当前块的第一侧边和第二侧边的长度,第一侧边和第二侧边相邻。响应于第一侧边的长度w0为预定值的至少两倍,以垂直第一侧边的方向对当前块进行平均划分,划分为n3个相同大小的子块;和/或,响应于第二侧边的长度h0为预定值的至少两倍,以垂直第二侧边的方向对当前块进行平均划分,划分为n4个相同大小的子块。划分后要保证子块边长都大于等于预定值,否则不进行该划分。

以下结合几个具体实施方式说明:

在一具体实施方式中,不同的第一侧边的长度w0对应不同的n3值,不同的第二侧边的长度h0对应不同的n4值。比如可设第一侧边的长度w0越大,n3越大;第二侧边的长度h0越大,n4越大。

在一具体实施方式中,将第一侧边的长度w0或第二侧边的长度h0按从小到大划分为不同区间段,每个区间段之内的n3或n4值一致。

当然,还可以结合a和b的分割方式,同时考虑当前块的第一侧边和第二侧边的比值来决定分割方式。

在一些实施例中,在步骤s11之前,还需要:

判断当前预测模式和当前块是否满足基于子块进行时域运动矢量预测的预设启用条件。

若是,则基于子块进行时域运动矢量预测。

判断当前预测模式和当前块是否满足基于子块进行时域运动矢量预测的预设启用条件包括:判断当前预测模式是否为skip/direct帧间预测模式,且当前块的第一侧边和第二侧边长均是否大于等于预定值,且第一侧边和第二侧边中的至少一条大于等于预定值的两倍,第一侧边与第二侧边相邻。在一些实施例中,第一侧边为当前块的宽,第二侧边为当前块的高,具体地,预定值为4个像素,在其他实施例中,预定值还可以为其他数值,仅需与子块所需最小边长匹配即可,此处不作限定。相比较现有技术中,当前块的第一侧边和第二侧边均需大于等于16个像素相比,本方法中,当前块的尺寸可以更小,仅需分割后获得的子块的边长都大于等于4,应用更灵活。

需要说明的是,在进行判断是否满足预设启用条件之前,通常需要构建skip/direct下的mvp(时域预测运动矢量)候选列表。列表中包括几类mvp模式,按优先级顺序分别为tmvp(时域mvp),smvp(空域mvp),hmvp(历史mvp)。而本申请的时域运动矢量预测方法与tmvp有关,tmvp为当前块的左上角坐标对应的时域运动矢量,即mv(motionvector)。

本申请中,当遍历到候选列表中的tmvp时,且满足基于子块的时域运动矢量预测(subtmvp)启用条件,就会启用subtmvp,启用后会用subtmvp方式去进行预测,而不是直接用tmvp进行预测。

以下补充当前块tmvp的获取方法:

step1、获取当前块对应时域同位块的空域位置。

先确定当前块对应时域同位块的空域位置,目前同位块的空域位置只和当前块坐标相关,和当前块尺寸无关。

设bx,by为当前块以scu(4*4大小的像素块)为单元的在整帧中的位置坐标,利用一个mask来确定同位块的空域位置:mask=(-1)^3。“^”代表按位异或,将-1和3按位异或后,mask的最后两位为0。接下来设同位块空域位置的坐标(以scu为单元)为(xpos,ypos):

xpos=(bx&mask)+2;

ypos=(by&mask)+2;

其中xpos可能取到的范围为:bx-1,bx,bx+1,bx+2;ypos可能取到的范围为:by-1,by,by+1,by+2。同一个坐标位置的当前块只会对应一个时域同位块,不同坐标的当前块所对应的时域同位块范围如图2所示,图2中所有小圆点的位置就是所有可能的同位块的坐标,每个小方块代表一个scu。

step2、对时域同位块mv进行缩放。

若当前帧为p帧,去前向同位参考帧,即前向参考帧列表的index0帧中找到时域同位块,取该块的前向mv:mv_col_f进行缩放。缩放时根据当前帧和当前帧的前向参考帧列表中index0的参考帧间的poc距离t1,以及前向同位块所属的同位帧(一般也是index0)和同位块的前向参考帧的距离t0进行缩放:scalemv=mv_col_f/t0*t1。对scalemv进行四舍五入以及clip到带符号16bit的内操作后作为tmvp填入mvp候选列表。

若当前帧为b帧,则需要获取两个方向的时域同位块mv。先去后向同位参考帧,即后向参考帧列表的index0帧中找到时域同位块,取该块的前向mv:mv_col_f进行两次缩放得到tmvp的两个方向的mv值。其中,前向mv的值缩放是根据当前帧和当前帧的前向参考帧列表中index0的参考帧间的poc距离t1,以及后向同位块所属的同位帧(一般也是index0)和同位块的前向参考帧间的距离t0进行缩放;而后向mv的值缩放是根据当前帧和当前帧的后向参考帧列表中index0的参考帧间的poc距离t1,以及后向同位块所属的同位帧(一般也是index0)和同位块的前向参考帧的距离t0进行缩放。缩放公式和后续操作同p帧时的操作。

step3、当时域同位块的mv不可用时。

除了上述正常情况外,还会出现时域同位块的mv不可用的情况,比如时域同位块是一个帧内块或ibc块(帧内复制块)等情况。

判断方式为判断时域同位块的前向参考帧是否存在。若不存在,则具体操作如下:

若当前帧为p帧,则tmvp直接置为0。

若当前帧为b帧,则mvp列表的第一个位置用空域相邻块的加权mv当做tmvp填入mvp候选列表的第一个位置。规则如下:

1)首先判断空域位置的相邻块是否可用,如图3所示:

首先判断实线块a、b、c是否可用,若实线块c不可用,则取左上角的虚线块作为c块,判断虚线c块是否可用。

2)若上述三个空域块中只有1个空域块可用,则把该空域块的mv进行缩放后填入mvp候选列表的第一个位置。缩放方式同上。

3)若述三个空域块中只有2个空域块可用,则先将空域块的mv进行缩放后,进行如下操作:

i.先将两两空域块的mv相减并取绝对值,用mva、mvb、mvc分别代表三个空域位置的mv,不可用的mv为0,

mva_ext=abs(mva-mvb);

mvb_ext=abs(mvb-mvc);

mvc_ext=abs(mvc-mva);

ii.获取三个差值mva_ext,mvb_ext,mvc_ext中的最小值,若最小值为mva_ext,则在mvp候选列表的第一个位置填入(mva+mvb)/2;若最小值为mvb_ext,则填入mvb+mvc)/2;若最小值为mvc_ext,则填入(mvc+mva)/2。

4)若三个空域块的mv都可用,则将空域mv缩放后,填充规则如下:

a)若三个mv中在当前分量(x或y)下至少有一个和另外两个不同向(一正两负或一负两正):

i.若(mva<0&&mvb>0&&mvc>0)||(mva>0&&mvb<0&&mvc<0),则填入(mvb+mvc)/2;

ii.若(mvb<0&&mva>0&&mvc>0)||(mvb>0&&mva<0&&mvc<0),则填入(mvc+mva)/2);

iii.若(mvc<0&&mva>0&&mvb>0)||(mvc>0&&mva<0&&mvb<0),则填入(mva+mvb)/2);

b)若三个mv都同向:

则做法同(3)。

5)若都不可用,则填0。

由于这里是b帧,所以上述操作需要对空域块前向和后向mv分别做一次判断以及运算操作。

在一些实施例中,对当前块进行分割之前,还可以为subtmvp技术的启动增加一个终止条件,如图4所示,包括:

s10:获取当前块的斜对角位置的第一组像素块对应的两个第一时域运动矢量,以及当前块的斜对角位置的第二组像素块对应的两个第二时域运动矢量;

s101:判断两个第一时域运动矢量是否相同,和/或,两个第二时域运动矢量是否相同。

s102:若是,则不对当前块进行分割。

s103:若否,则对当前块进行分割。

若否,则继续步骤s11。

其中,若是,则代表当前块应该为一个较小的块,很可能整个块的mv都一致,因此无需采用基于子块的时域运动矢量预测(subtmvp)技术,相当于为subtmvp技术的启动增加了一个终止条件,能够在保证预测性能的情况下减少复杂度。

以下结合一具体实施方式说明:

如图5所示,当前块的w0<第一侧边长度<w1,且h0<第二侧边长度<h1,第一侧边可以为当前块的宽,第二侧边为当前块的高。

i、当前块内左上角scu1和右下角scu4的时域运动矢量相同时,不采用subtmvp;

ii、当前块内右上角scu2和左下角scu3的时域运动矢量相同时,不采用subtmvp;

iii、当前块内左上角scu1和右下角scu4的时域运动矢量相同,且右上角scu2和左下角scu3的时域运动矢量相同时不采用subtmvp;

iv、当前块内左上角scu1和右下角scu4的时域运动矢量相同,或右上角scu2和左下角scu3的时域运动矢量相同时不采用subtmvp。

当前块的斜对角scu的时域运动矢量相同时,很可能代表整个块的运动矢量都一致,因此无需采用subtmvp技术。

s12:获取每一子块中的任意一位置的像素块对应的时域运动矢量,将基于像素块对应的时域运动矢量确定每一子块的时域运动矢量。

在一实施例中,利用每一子块中的左上角、左下角、右上角、右下角或中心点位置的像素块获取对应的时域运动矢量,以确定每一子块的时域运动矢量。其中,获取的像素块的时域运动矢量还需进行缩放操作,缩放后的时域运动矢量才能作为该子块的时域运动矢量。需要说明的是,基于像素块对应的时域运动矢量确定每一子块的时域运动矢量的一实施方式,同步骤s11中的step2、对时域同位块mv进行缩放的方法。当然在其他实施例中,还可以选择每一子块的其他位置的像素块,此处不作限制。相较于现有技术中仅能选择每个子块固定角落的像素块,本方法子块获取时域运动矢量的位置更为灵活,且不同子块获取时域运动矢量的位置可以不同,从而提高子块获取时域运动矢量的准确性,进而提高时域运动矢量预测的准确性。

具体地,如图6所示,当前块通过十字划分为四个子块,左上子块1选择获取时域运动矢量的位置为当前子块内右下角scu1;右上子块2选择获取时域运动矢量的位置为当前子块内左下角scu2;左下子块3选择获取时域运动矢量的位置为当前子块内右上角scu3;右下子块4选择获取时域运动矢量的位置为当前子块内左上角scu4。

在一实施例中,当前子块可能无法获得有效的时域运动矢量,例如无法获取有效时域运动矢量,或者获得的时域运动矢量在图像外而无效。现有技术为直接用当前块的时域运动矢量作为当前子块的时域运动矢量,而本方法中响应于当前子块无法获取有效的时域运动矢量后,还可以通过如下方法获取当前子块的有效的时域运动矢量:

还包括:

a:基于当前子块的另一位置的像素块的时域运动矢量确定当前子块的有效的时域运动矢量。具体地,可以对当前子块内的其余像素块按一定顺序进行搜索,如先搜子块的四个角的像素块,再搜中心点的像素块,或者直接按光栅扫描顺序搜索等。直到搜索到像素块可获得有效的时域运动矢量,以确定当前子块的时域运动矢量进行填充。搜索顺序在前相近子块的时域运动矢量优先填充,填充完后不再进行搜索。若还是没获取到有效的时域运动矢量,则将当前块的时域运动矢量作为当前子块的时域运动矢量。

b:以第一顺序获取当前块内其余子块的有效的时域运动矢量,将获取顺序在前的其余子块的有效的时域运动矢量作为当前子块的时域运动矢量。具体地,相近子块的选取可规定一个第一顺序,如顺时针,逆时针,从左往右,从右往左,从上到下,从下到上等。按搜索顺序搜索相近子块,直到搜索到有效的时域运动矢量作为当前子块的时域运动矢量进行填充。搜索顺序在前相近子块的时域运动矢量优先填充,填充完后不再进行搜索。若还是没获取到有效的时域运动矢量,则将当前块的时域运动矢量作为当前子块的时域运动矢量。

c:以第二顺序或任意获取当前块内第一数量个其余子块的有效的时域运动矢量,并加权平均后作为当前子块的有效的时域运动矢量。其中,第一数量n大于等于2,具体地,按第二顺序或任意选择块内的n(n>=2)个子块进行时域mv的加权平均后作为当前子块的mv。若还是没获取到有效的时域运动矢量,则将当前块的时域运动矢量作为当前子块的时域运动矢量。

以下结合一具体实施方式说明:

如图7所示,当前的4个子块中,子块4没有获取到有效mv,此时选择方案b,以子块3为起点进行顺时针搜索。其中子块3也没有有效时域运动矢量,子块1有有效时域运动矢量,则把子块1的时域运动矢量作为子块4的时域运动矢量,不再对子块2进行搜索。

本方法通过子块时域运动矢量获取位置更为灵活,以及未获取到有效运动矢量时可以用相近子块的时域运动矢量填充,相关性更强,获取的子块的时域运动矢量更为准确。

s13:对当前块的所有子块的时域运动矢量分别进行运动补偿和失真代价计算。

在一实施例中,还包括对当前块的所有子块的时域运动矢量分别进行运动补偿和失真代价计算,而不是用原先的tmvp模式进行运动补偿和失真代价计算,可获得更为准确的计算结果。

如图8所示,本方法又一实施例提供了一种时域运动矢量预测方法,包括如下步骤:

s21:在基于子块进行时域运动矢量预测时,根据当前块的尺寸对当前块划分,获得若干个大小相同,且边长大于预定值的子块。

在一实施例中,对当前块进行分割,获取若干大小相同的子块,包括:根据当前块的尺寸对当前块划分,获得若干个大小相同,且边长大于预定值的子块。相比较现有技术中直接对当前块进行十字分割,根据当前块尺寸灵活选取分割方式,在控制复杂度增加幅度的情况下可有效提升预测准确度。

步骤s21的其余内容与上述实施例中的对应步骤s11基本相同,此处不再赘述。

s22:获取每一子块的时域运动矢量。

在一实施例中,获取每一子块的时域运动矢量包括:获取每一子块的任意一位置的像素块对应的时域运动矢量,将像素块对应的时域运动矢量作为每一子块的时域运动矢量。步骤s22的具体内容与上述实施例中的对应步骤s22基本相同,此处不再赘述。

在其他实施例中,也可以选择每个子块固定角落的像素块,获取该像素块的时域运动矢量,并作为该子块的时域运动矢量。

s23:对当前块的所有子块的时域运动矢量分别进行运动补偿和失真代价计算。

在一实施例中,还包括对当前块的所有子块的时域运动矢量分别进行运动补偿和失真代价计算,而不是用原先的tmvp模式进行运动补偿和失真代价计算,可获得更为准确的计算结果。

请参阅图9,本申请又一实施例提供了一种时域运动矢量预测装置30,包括当前块分割模块31和获取模块32,以实现上述对应实施例的时域运动矢量预测方法。具体地,当前块分割模块31在基于子块进行时域运动矢量预测时,对当前块进行分割,获取若干大小相同的子块。获取模块32获取每一子块中的任意一位置的像素块对应的时域运动矢量,将基于所述像素块对应的时域运动矢量确定每一子块的时域运动矢量。本装置30的子块获取时域运动矢量的位置更为灵活,且不同子块获取时域运动矢量的位置可以不同,从而提高子块获取时域运动矢量的准确性,进而提高时域运动矢量预测的准确性。

请参阅图10,本申请又一实施例提供了一种时域运动矢量预测装置40,包括当前块分割模块41和获取模块42,以实现上述对应实施例的时域运动矢量预测方法。具体地,当前块分割模块41在基于子块进行时域运动矢量预测时,根据当前块的尺寸对当前块划分,获得若干个大小相同,且边长大于预定值的子块。获取模块42获取每一子块的时域运动矢量。本装置40根据当前块尺寸灵活选取分割方式,在控制复杂度增加幅度的情况下可有效提升预测准确度。

请参阅图11,本申请又一实施例提供了一种电子设备50,包括相互耦接的存储器51和处理器52,处理器52用于执行存储器51中存储的程序指令,以实现上述任一实施例的时域运动矢量预测方法。在一个具体的实施场景中,电子设备50可以包括但不限于:微型计算机、服务器,此外,电子设备50还可以包括笔记本电脑、平板电脑等移动设备,在此不做限定。

具体而言,处理器52用于控制其自身以及存储器51以实现上述任一实施例的帧参考方法。处理器52还可以称为cpu(centralprocessingunit,中央处理单元)。处理器52可能是一种集成电路芯片,具有信号的处理能力。处理器52还可以是通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器52可以由集成电路芯片共同实现。

请参阅图12,本申请又一实施例提供了一种计算机可读存储介质60,其上存储有程序数据61,程序数据61被处理器执行时实现上述任一实施例的时域运动矢量预测方法。

在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质60中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质60中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质60包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本申请的实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

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