一种帧间编码树单元划分方法及装置与流程

未命名 07-23 阅读:53 评论:0


1.本发明涉及视频编码技术领域,尤其涉及一种帧间编码树单元划分方法及装置。


背景技术:

2.随着高清及超高清视频的出现,使得高分辨率视频的存储和传输面临着巨大的挑战。为了满足数字视频数据量的爆发式增长和适应网络技术的发展,视频编码标准一直在更新迭代。视频编码联合组发布了h.265/hevc(high efficiency video coding),相比上一代视频编码标准h.264/avc(advanced video coding),在相同的视觉质量下,节省了50%的码率,但是由于h.265/hevc的ctu(coding tree unit,编码树单元)划分是基于复杂的四叉树递归划分方式,引入了极其复杂的视频编码技术,导致编码复杂度急剧增加。


技术实现要素:

3.基于此,有必要针对上述问题,提出了一种帧间编码树单元划分方法及装置,使得可以大大的降低编码复杂度。
4.为实现上述目的,本发明在第一方面提供一种帧间编码树单元划分方法,所述方法包括:根据当前帧中当前编码块的第一相邻编码块的深度信息和所述当前帧的前一帧中同位编码块的深度信息确定所述当前编码块的深度范围;若所述当前编码块的深度范围在预设深度范围内,则获取所述当前帧的参考帧中同位编码块在时域上的运动矢量和所述当前编码块的第二相邻编码块在空域上的运动矢量;根据所述参考帧中同位编码块在时域上的运动矢量和所述当前编码块的第二相邻编码块在空域上的运动矢量构建运动矢量匹配相似度列表;根据所述运动矢量匹配相似度列表确定所述当前编码块在所述参考帧中的多个匹配编码块;计算每个匹配编码块与所述当前编码块之间的相似度,得到多个相似度,并根据多个相似度的平均值与多个预设值的比较结果判断是否对所述当前编码块进行划分。
5.可选地,所述当前编码块的第一相邻编码块的深度信息包括:所述当前编码块的左边编码块的深度信息、所述当前编码块的上边编码块的深度信息和所述当前编码块的左上边编码块的深度信息。
6.可选地,所述当前编码块的第二相邻编码块在空域上的运动矢量包括:所述当前编码块的左边编码块在空域上的运动矢量、所述当前编码块的左下边编码块在空域上的运动矢量、所述当前编码块的上边编码块在空域上的运动矢量和所述当前编码块的右上边编码块在空域上的运动矢量。
7.可选地,多个预设值包括第一预设值和第二预设值,所述第一预设值大于所述第二预设值;
所述根据多个相似度的平均值与多个预设值的比较结果判断是否对所述当前编码块进行划分,包括:在所述平均值大于或等于所述第一预设值的情况下,对所述当前编码块进行划分;在所述平均值小于所述第一预设值,且所述平均值大于所述第二预设值的情况下,按基于四叉树递归划分方式判断是否对所述当前编码块进行划分;在所述平均值小于或等于所述第二预设值的情况下,不对所述当前编码块进行划分。
8.可选地,根据所述当前编码块的左边编码块的深度信息、上边编码块的深度信息、左上边编码块的深度信息和所述前一帧中同位编码块的深度信息确定所述当前编码块的深度范围,包括:利用公式计算所述当前编码块的深度范围;其中,[,]为所述当前编码块的深度范围,为所述当前编码块的左边编码块的深度信息,为所述当前编码块的上边编码块的深度信息,为所述当前编码块的左上边编码块的深度信息,为所述前一帧中同位编码块的深度信息。
[0009]
可选地,所述根据所述参考帧中同位编码块在时域上的运动矢量和所述当前编码块的第二相邻编码块在空域上的运动矢量构建运动矢量匹配相似度列表,包括:对所述参考帧中同位编码块在时域上的运动矢量进行比例伸缩调整得到目标运动矢量;根据所述目标运动矢量和所述当前编码块的第二相邻编码块在空域上的运动矢量构建运动矢量匹配相似度列表。
[0010]
可选地,所述对所述参考帧中同位编码块在时域上的运动矢量进行比例伸缩调整得到所述目标运动矢量,包括:利用公式计算所述目标运动矢量;其中,为所述目标运动矢量,为所述当前帧与所述参考帧的距离,为所述参考帧与所述参考帧的参考帧的距离,为所述参考帧中同位编码块在时域上的运动矢量。
[0011]
可选地,所述计算每个匹配编码块与所述当前编码块之间的相似度,得到多个相似度,包括:计算每个匹配编码块与所述当前编码块之间的残差编码块,得到多个残差编码块;计算每个残差编码块经过哈达玛变换后的系数编码块,得到多个系数编码块;计算每个系数编码块中各个元素的绝对值的和值,并将和值作为相似度,得到多个相似度。
[0012]
可选地,所述计算每个匹配编码块与所述当前编码块之间的残差编码块,得到多个残差编码块,包括:利用公式计算每个匹配编码块与所述当前编码块之间的残差编码块;所述计算每个残差编码块经过哈达玛变换后的系数编码块,包括:利用公式计算每个残差编码块经过哈达玛变换后的系数编码块;所述计算每个系数编码块中各个元素的绝对值的和值,包括:利用公式计算每个系数编码块中各个元素的绝对值的和值;其中,为第个残差编码块,为所述当前编码块,为第个匹配编码块,为第个系数编码块,为哈达玛矩阵,为第个和值,为第个系数编码块的第个元素,为所述当前编码块中的。
[0013]
为实现上述目的,本发明在第二方面提供一种帧间编码树单元划分装置,所述装置包括:第一确定模块,用于根据当前帧中当前编码块的第一相邻编码块的深度信息和所述当前帧的前一帧中同位编码块的深度信息确定所述当前编码块的深度范围;判断获取模块,用于若所述当前编码块的深度范围在预设深度范围内,则获取所述当前帧的参考帧中同位编码块在时域上的运动矢量和所述当前编码块的第二相邻编码块在空域上的运动矢量;构建模块,用于根据所述参考帧中同位编码块在时域上的运动矢量和所述当前编码块的第二相邻编码块在空域上的运动矢量构建运动矢量匹配相似度列表;第二确定模块,用于根据所述运动矢量匹配相似度列表确定所述当前编码块在所述参考帧中的多个匹配编码块;计算及判断模块,用于计算每个匹配编码块与所述当前编码块之间的相似度,得到多个相似度,并根据多个相似度的平均值与多个预设值的比较结果判断是否对所述当前编码块进行划分。
[0014]
为实现上述目的,本发明在第三方面提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如第一方面中任一项所述的方法。
[0015]
为实现上述目的,本发明在第四方面提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如第一方面中任一项所述的方法。
[0016]
采用本发明实施例,具有如下有益效果:上述方法通过根据当前帧中当前编码块的第一相邻编码块的深度信息和当前帧的前一帧中同位编码块的深度信息确定当前编码块的深度范围,然后若当前编码块的深度范围在预设深度范围内(缩小了当前编码块的遍历深度范围,减少不必要的划分),则获取当前帧的参考帧中同位编码块在时域上的运动矢
量和当前编码块的第二相邻编码块在空域上的运动矢量,再根据参考帧中同位编码块在时域上的运动矢量和当前编码块的相邻编码块在空域上的运动矢量构建运动矢量匹配相似度列表,再然后根据运动矢量匹配相似度列表确定当前编码块在参考帧中的多个匹配编码块,最后计算每个匹配编码块与当前编码块之间的相似度,得到多个相似度,并根据多个相似度的平均值与多个预设值的比较结果判断是否对当前编码块进行划分(降低视频编码性能的损失),该方法可以大大的降低编码复杂度。
附图说明
[0017]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0018]
其中:图1为本技术实施例中一种帧间编码树单元划分方法的示意图;图2为本技术实施例中当前编码块与当前编码块的第一相邻编码块的示意图;图3为本技术实施例中当前编码块与当前编码块的第二相邻编码块的示意图;图4为本技术实施例中比例伸缩调整的示意图;图5为本技术实施例中一种帧间编码树单元划分装置的示意图;图6为一些实施例中计算机设备的内部结构图。
具体实施方式
[0019]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0020]
请参阅图1,为本技术实施例中一种帧间编码树单元划分方法的示意图,该方法包括:步骤110:根据当前帧中当前编码块的第一相邻编码块的深度信息和当前帧的前一帧中同位编码块的深度信息确定当前编码块的深度范围。
[0021]
需要说明的是,当前编码块是指当前帧中当前需要判断是否进行划分的编码块,一般是指是ctu(即编码树单元)中的编码块,该当前编码块可以是当前cu(coding unit,编码单元),也可以是当前cb(coding block,编码块),在某些情况下,该当前编码块还可以是当前ctu,可以理解的是,视频图像中的当前帧的图像可以划分为多个ctu,然后ctu可以划分为cu(有可能ctu划分为一个cu,此时cut就是cu,cu也是ctu),然后cu可以划分为cb,或者cu划分后还是叫做cu,因此,面对该种情况,当前编码块既可以是指当前cu、也可以是指当前cb、还可以是指当前ctu,此处并不做限制。
[0022]
进一步需要说明的是,当前编码块的第一相邻编码块是指与当前编码块相邻的编码块;当前帧的前一帧中同位编码块是指当前帧中当前编码块所对应的当前帧的前一帧中的同位编码块。
[0023]
在一些实施例中,除了根据当前帧中当前编码块的第一相邻编码块的深度信息和当前帧的前一帧中同位编码块的深度信息确定当前编码块的深度范围,还可以根据当前帧中当前编码块的第一相邻编码块的深度信息和当前帧的前一帧中同位编码块的深度信息可以是确定当前编码块的深度信息,可以理解的是,若是直接根据当前帧中当前编码块的第一相邻编码块的深度信息和当前帧的前一帧中同位编码块的深度信息确定当前编码块的深度信息,因为不能百分之百确定所确定的当前编码块的深度信息是准确的,有可能会造成所确定的当前编码块的深度信息不准确,影响后续的判断,因此,本技术优选地采用确定当前编码块的深度范围,以保证所确定的当前编码块所处的深度范围是准确的。
[0024]
步骤120:若当前编码块的深度范围在预设深度范围内,则获取当前帧的参考帧中同位编码块在时域上的运动矢量和当前编码块的第二相邻编码块在空域上的运动矢量。
[0025]
其中,预设深度范围是由操作人员根据实际需求进行设置的,在本技术,操作人员一般会将预设深度范围设置为[0,2],当然,有些操作人员还会将预设深度范围设置为[0,3],可以理解的是,由于视频图像中的当前帧的图像划分为ctu后,ctu为,因此,对于一个的当前编码块来说,若该为(深度为0),或者为(深度为1),又或者为(深度为2),则都需要进行划分,若该为(深度为3),则不需要进行划分,当然还可能存在更小的编码块,均不需要进行划分。
[0026]
在一些实施例中,若当前编码块的深度范围在预设深度范围内,则说明该当前编码块是属于需要进行划分的范围内,因此,可以执行后续的步骤,即获取当前帧的参考帧中同位编码块在时域上的运动矢量和当前编码块的第二相邻编码块在空域上的运动矢量,以判断当前编码块是否进行划分;若当前编码块的深度范围不在预设深度范围内,则说明当前编码块已经是不属于需要划分的范围内,因此,直接结束,不需要执行后续的步骤,该实施例可以缩小了当前编码块的遍历深度范围,减少不必要的划分,也降低了编码复杂度。
[0027]
需要说明的是,当前帧的参考帧中同位编码块是指当前帧中当前编码块所对应的当前帧的参考帧中的同位编码块;当前编码块的第二相邻编码块是指与当前编码块相邻的编码块。
[0028]
需要特别说明的是,在一些实例中,此处的当前编码块的第二相邻编码块可以与上述实施例中步骤110的当前编码块的第一相邻编码块完全一致,也可以与上述实施例中步骤110的当前编码块的第一相邻编码块互有交集但一致,还可以是与上述实施例中步骤110的当前编码块的第一相邻编码块完全不一致,此处不做限制。
[0029]
步骤130:根据参考帧中同位编码块在时域上的运动矢量和当前编码块的第二相邻编码块在空域上的运动矢量构建运动矢量匹配相似度列表。
[0030]
需要说明的是,本技术所构建的运动矢量匹配相似度列表中的运动矢量的总个数有预设个数的要求,若是参考帧中同位编码块在时域上的运动矢量和当前编码块的第二相邻编码块在空域上的运动矢量加起来的运动矢量的总个数不足预设个数的要求,则需要对缺少的运动矢量补0,可以理解的是,这样做的目的是为了保证所构建的运动矢量匹配相似度列表中有足够数量的运动矢量,以用于确定足够数量的匹配编码块,从而使得采用足够数量的编码块,可以计算得到更为准确的相似度。
[0031]
步骤140:根据运动矢量匹配相似度列表确定当前编码块在参考帧中的多个匹配编码块。
[0032]
在一些实施例中,匹配编码块的总个数与运动矢量匹配相似度列表中的运动矢量的总个数相等,即运动矢量匹配相似度列表中的每个运动矢量均可以确定当前编码块在参考帧中的一个匹配编码块。
[0033]
步骤150:计算每个匹配编码块与当前编码块之间的相似度,得到多个相似度,并根据多个相似度的平均值与多个预设值的比较结果判断是否对当前编码块进行划分。
[0034]
其中,多个预设值均是由操作人员根据大量的实验或统计所得到,当然,也可以由操作人员根据自己的实际需求进行设置,此处并不做限制。
[0035]
在一些实施例中,计算每个匹配编码块与当前编码块之间的相似度可以采用satd(sum of absolute transformed difference)来计算块与块之间的相似度,通过计算每个匹配编码块与当前编码块之间的相似度,以根据多个相似度的平均值与多个预设值的比较结果来判断是否对当前编码块进行划分,不仅可以快速且高效的计算每个匹配编码块与当前编码块之间的相似度,还可以大大的降低编码的复杂度;另外,还可以降低视频编码性能的损失。
[0036]
在本技术实施例中,通过根据当前帧中当前编码块的第一相邻编码块的深度信息和当前帧的前一帧中同位编码块的深度信息确定当前编码块的深度范围,然后若当前编码块的深度范围在预设深度范围内(缩小了当前编码块的遍历深度范围,减少不必要的划分),则获取当前帧的参考帧中同位编码块在时域上的运动矢量和当前编码块的第二相邻编码块在空域上的运动矢量,再根据参考帧中同位编码块在时域上的运动矢量和当前编码块的相邻编码块在空域上的运动矢量构建运动矢量匹配相似度列表,再然后根据运动矢量匹配相似度列表确定当前编码块在参考帧中的多个匹配编码块,最后计算每个匹配编码块与当前编码块之间的相似度,得到多个相似度,并根据多个相似度的平均值与多个预设值的比较结果判断是否对当前编码块进行划分(降低视频编码性能的损失),使得可以大大的降低编码复杂度。
[0037]
在一种可行的实现方式中,上述实施例中的步骤110,当前编码块的第一相邻编码块的深度信息包括:当前编码块的左边编码块的深度信息、当前编码块的上边编码块的深度信息和当前编码块的左上边编码块的深度信息。
[0038]
需要说明的是,本技术当前编码块的第一相邻编码块选用的是:当前编码块的左边编码块、当前编码块的上边编码块和当前编码块的左上边编码块,示例的,请参阅图2,为本技术实施例中当前编码块与当前编码块的第一相邻编码块的示意图,该示意图示出的l为当前编码块的左边编码块、a为当前编码块的上边编码块、la为当前编码块的左上边编码块、cu为当前编码块(为了便于说明,本技术的当前编码块默认采用cu进行示例,l、a、la、cu采用大小一样进行示例,实际上可能并不一样),可以理解的是,采用当前编码块的左边编码块、当前编码块的上边编码块和当前编码块的左上边编码块这三个编码块的深度信息(以及前一帧中同位编码块的深度信息)来确定当前编码块的深度范围会比较准确,可以使得得到的当前编码块的深度范围几乎就是百分之百准确的。
[0039]
在另一些实施例中,当前编码块的第一相邻编码块除了包括上述实施例提到的编码块,还可以包括其他编码块,例如:当前编码块的左下边编码块的深度信息、当前编码块的右上边编码块、当前编码块的右下边编码块等等,但这样反而会增加计算量,以及增加不必要操作,可以理解的是,本技术的操作人员已经经过了大量的实验或统计,已经确定了采
用当前编码块的左边编码块、当前编码块的上边编码块和当前编码块的左上边编码块这三个编码块的深度信息(以及前一帧中同位编码块的深度信息)来确定当前编码块的深度范围会比较准确,因此,增加额外的操作已经属实没有必要了。
[0040]
在另一些实施例中,当前编码块的第一相邻编码块还可以只采用上述实施例中所列出的“当前编码块的左边编码块、当前编码块的上边编码块和当前编码块的左上边编码块”一个或两个,这样会使得所确定的当前编码块的深度范围准确度较低,但是可以在一定程度上降低复杂度,提高效率,因此,在实际应用中,可以依据需要适应性选择第一相邻编码块的数量。
[0041]
另外,还有一些实施例,将本技术当前编码块的第一相邻编码块所选的编码块为当前编码块的左下边编码块的深度信息、当前编码块的右上边编码块、当前编码块的右下边编码块等等,直接不采用上述实施例中所列出的“当前编码块的左边编码块、当前编码块的上边编码块和当前编码块的左上边编码块”,也是可以的,但会影响到最终所确定的当前编码块的深度范围的准确性,使得所确定的当前编码块的深度范围准确度较低。
[0042]
在本技术实施例中,通过优选地当前编码块的第一相邻编码块的深度信息采用当前编码块的左边编码块的深度信息、当前编码块的上边编码块的深度信息和当前编码块的左上边编码块的深度信息(以及前一帧中同位编码块的深度信息)来确定当前编码块的深度范围会比较准确,可以使得得到的当前编码块的深度范围几乎就是百分之百准确的。
[0043]
在一种可行的实现方式中,上述实施例中的步骤120,当前编码块的第二相邻编码块在空域上的运动矢量包括:当前编码块的左边编码块在空域上的运动矢量、当前编码块的左下边编码块在空域上的运动矢量、当前编码块的上边编码块在空域上的运动矢量和当前编码块的右上边编码块在空域上的运动矢量。
[0044]
需要说明的是,本技术当前编码块的第二相邻编码块选用的是:当前编码块的左边编码块、当前编码块的左下边编码块、当前编码块的上边编码块和当前编码块的右上边编码块,示例的,请参阅图3,为本技术实施例中当前编码块与当前编码块的第二相邻编码块的示意图,该示意图示出的l为当前编码块的左边编码块、ld为当前编码块的上边编码块、a为当前编码块的上边编码块、ra为当前编码块的右上边编码块、cu为当前编码块(为了便于说明,本技术的当前编码块默认采用cu进行示例,l、ld、a、ra、cu采用大小一样进行示例,实际上可能并不一样),可以理解的是,采用当前编码块的左边编码块在空域上的运动矢量、当前编码块的左下边编码块在空域上的运动矢量、当前编码块的上边编码块在空域上的运动矢量和当前编码块的右上边编码块在空域上的运动矢量(以及参考帧中同位编码块在时域上的运动矢量)来构建运动矢量匹配相似度列表会使得后续计算得到的相似度比较准确,以得到较正确的判断划分结果。
[0045]
在另一些实施例中,当前编码块的第二相邻编码块除了包括上述实施例提到的编码块,还可以包括其他编码块,例如:当前编码块的左上边编码块的深度信息、当前编码块的右边编码块、当前编码块的右下边编码块等等,但这样反而会增加计算量,以及增加不必要操作,可以理解的是,本技术的操作人员已经经过了大量的实验或统计,已经确定了采用当前编码块的左边编码块在空域上的运动矢量、当前编码块的左下边编码块在空域上的运动矢量、当前编码块的上边编码块在空域上的运动矢量和当前编码块的右上边编码块在空域上的运动矢量(以及参考帧中同位编码块在时域上的运动矢量)来构建运动矢量匹配相
似度列表会使得后续计算得到的相似度比较准确,以得到较正确的判断划分结果,因此,增加额外的操作已经属实没有必要了。
[0046]
进一步的,与当前编码块的第一相邻编码块的实施例类似,当前编码块的第二相邻编码块还可以只采用上述实施例中所列出的“当前编码块的左边编码块、当前编码块的左下边编码块、当前编码块的上边编码块和当前编码块的右上边编码块”一个、两个或三个,又或者将本技术当前编码块的第二相邻编码块所选的编码块为当前编码块的左上边编码块的深度信息、当前编码块的右边编码块、当前编码块的右下边编码块等等,直接不采用上述实施例中所列出的“当前编码块的左边编码块、当前编码块的左下边编码块、当前编码块的上边编码块和当前编码块的右上边编码块”,这种选用结果会使得后续计算得到的相似度的准确较低,最终影响到判断划分结果。
[0047]
另外需要说明的是,由于本技术当前编码块的第二相邻编码块选用的是:当前编码块的左边编码块、当前编码块的左下边编码块、当前编码块的上边编码块和当前编码块的右上边编码块,因此,根据参考帧中同位编码块在时域上的运动矢量和当前编码块的第二相邻编码块在空域上的运动矢量所构建的运动矢量匹配相似度列表中的运动矢量的总个数为5个运动矢量(“当前编码块的左边编码块在空域上的运动矢量、当前编码块的左下边编码块在空域上的运动矢量、当前编码块的上边编码块在空域上的运动矢量和当前编码块的右上边编码块在空域上的运动矢量”有4个运动矢量,“参考帧中同位编码块在时域上的运动矢量”有1个运动矢量)。
[0048]
在一些实施例中,若是所构建的运动矢量匹配相似度列表中的运动矢量的总个数不足5个运动矢量,此时是达不到预设个数的要求的,这是由于“当前编码块的左边编码块、当前编码块的左下边编码块、当前编码块的上边编码块和当前编码块的右上边编码块”中某个或某几个编码块不存在所造成的,因此,若是所构建的运动矢量匹配相似度列表中的运动矢量的总个数不足5个运动矢量,则需要将不存在的编码块的运动矢量进行补0,以使得所构建的运动矢量匹配相似度列表中的运动矢量的总个数满足5个运动矢量的要求。
[0049]
在本技术实施例中,通过优选地当前编码块的第二相邻编码块在空域上的运动矢量采用当前编码块的左边编码块在空域上的运动矢量、当前编码块的左下边编码块在空域上的运动矢量、当前编码块的上边编码块在空域上的运动矢量和当前编码块的右上边编码块在空域上的运动矢量(以及参考帧中同位编码块在时域上的运动矢量)来构建运动矢量匹配相似度列表会使得后续计算得到的相似度比较准确,以得到较正确的判断划分结果。
[0050]
在一种可行的实现方式中,上述实施例中的步骤150,多个预设值包括第一预设值和第二预设值,第一预设值大于第二预设值;根据多个相似度的平均值与多个预设值的比较结果判断是否对当前编码块进行划分,包括:在平均值大于或等于第一预设值的情况下,对当前编码块进行划分;在平均值小于第一预设值,且平均值大于第二预设值的情况下,按基于四叉树递归划分方式判断是否对当前编码块进行划分;在平均值小于或等于第二预设值的情况下,不对当前编码块进行划分。
[0051]
其中,多个预设值在由操作人员根据大量的实验或统计之后,优选地确定采用第一预设值和第二预设值与多个相似度的平均值进行比较判断,可以理解的是,采用第一预设值和第二预设值已经足够用于判断划分结果。
[0052]
需要说明的是,在平均值大于或等于第一预设值的情况下,需要对当前编码块进
行划分,因此,不会直接进行帧间预测;在平均值小于第一预设值,且平均值大于第二预设值的情况下,按基于四叉树递归划分方式判断是否对当前编码块进行划分,即按h.265/hevc的编码树单元划分方式判断是否进行划分;在平均值小于或等于第二预设值的情况下,不对当前编码块进行划分,因此,可以直接进行帧间预测。
[0053]
在本技术实施例中,通过优选地采用第一预设值和第二预设值与多个相似度的平均值进行比较判断,在平均值大于或等于第一预设值的情况下,对当前编码块进行划分,在平均值小于第一预设值,且平均值大于第二预设值的情况下,按基于四叉树递归划分方式判断是否对当前编码块进行划分,在平均值小于或等于第二预设值的情况下,不对当前编码块进行划分,可以得到准确的判断划分结果,从而准确的当前编码块进行划分,更能降低视频编码性能的损失,提高了编码过程中对编码块划分的效率。
[0054]
在一种可行的实现方式中,上述实施例中的根据当前编码块的左边编码块的深度信息、上边编码块的深度信息、左上边编码块的深度信息和前一帧中同位编码块的深度信息确定当前编码块的深度范围,包括:利用公式计算当前编码块的深度范围。
[0055]
其中,[,]为当前编码块的深度范围,为当前编码块的左边编码块的深度信息,为当前编码块的上边编码块的深度信息,为当前编码块的左上边编码块的深度信息,为前一帧中同位编码块的深度信息。
[0056]
需要说明的是,上述实施例中的公式减1和加1是为了提高预测当前编码块的深度范围的准确度,0是为了防止减1之后为小于0,变成了负数,3是为了防止加1之后超过3,这是由于编码块的深度范围最小为0,最大为3,与预设深度范围的原理一致。
[0057]
在本技术实施例中,通过数学角度提供了严谨的当前编码块的深度范围的计算公式,从数学逻辑的严谨性可以确保所计算当前编码块的深度范围的准确性,且通过优选的示出根据当前编码块的左边编码块的深度信息、上边编码块的深度信息、左上边编码块的深度信息和前一帧中同位编码块的深度信息确定当前编码块的深度范围的计算公式,以便于为技术人员提供参考、理解及计算等;另外,通过优选地采用该公式计算当前编码块的深度范围,可以缩小当前编码块的遍历深度范围,以通过当前编码块的深度范围减少不必要的划分,也降低了编码复杂度。
[0058]
在一种可行的实现方式中,上述实施例中的步骤130,根据参考帧中同位编码块在时域上的运动矢量和当前编码块的第二相邻编码块在空域上的运动矢量构建运动矢量匹配相似度列表,包括:对参考帧中同位编码块在时域上的运动矢量进行比例伸缩调整得到目标运动矢量;根据目标运动矢量和当前编码块的第二相邻编码块在空域上的运动矢量构建运动矢量匹配相似度列表。
[0059]
其中,对于当前编码块的第二相邻编码块已在上述实施例中进行了详细的说明,此处就不做赘述。
[0060]
需要说明的是,对于所构建的多运动矢量匹配相似度列表来说,由于当前编码块的第二相邻编码块在空域上的运动矢
量是处于空域上的运动矢量,可以直接使用,因此,无需进行额外的操作,但参考帧中同位编码块在时域上的运动矢量是处于时域上的运动矢量,并不可以直接使用,因此,本技术还需要对处于时域的运动矢量进行相应的比例伸缩调整得到目标运动矢量,以根据目标运动矢量和当前编码块的第二相邻编码块在空域上的运动矢量,进而构建运动矢量匹配相似度列表,以避免直接采用参考帧中同位编码块在时域上的运动矢量和当前编码块的第二相邻编码块在空域上的运动矢量所构建的运动矢量匹配相似度列表不那么准确,从而使得后续计算得到的相似度也不那么准确,影响到最终的判断划分结果。
[0061]
其中,为当前编码块的左边编码块在空域上的运动矢量,为当前编码块的左下边编码块在空域上的运动矢量,为当前编码块的上边编码块在空域上的运动矢量,为当前编码块的右上边编码块在空域上的运动矢量,为目标运动矢量。
[0062]
在本技术实施例中,通过对参考帧中同位编码块在时域上的运动矢量进行比例伸缩调整得到目标运动矢量,然后再根据目标运动矢量和当前编码块的第二相邻编码块在空域上的运动矢量构建运动矢量匹配相似度列表,使得后续计算得到的相似度比较准确,以得到较正确的判断划分结果。
[0063]
在一种可行的实现方式中,上述实施例中的对参考帧中同位编码块在时域上的运动矢量进行比例伸缩调整得到目标运动矢量,包括:利用公式计算目标运动矢量。
[0064]
其中,为目标运动矢量,为当前帧与参考帧的距离,为参考帧与参考帧的参考帧的距离,为参考帧中同位编码块在时域上的运动矢量。
[0065]
示例的,请参阅图4,为本技术实施例中比例伸缩调整的示意图,该示意图示出的cu为当前帧中当前编码块,c为参考帧中同位编码块。
[0066]
在本技术实施例中,通过数学角度提供了严谨的目标运动矢量的比例伸缩调整计算公式,从数学逻辑的严谨性可以确保所计算目标运动矢量的准确性,且通过优选的示出对参考帧中同位编码块在时域上的运动矢量进行比例伸缩调整得到目标运动矢量的计算公式,以便于为技术人员提供参考、理解及计算等;另外,通过优选地采用该公式计算目标运动矢量,可以让所构建的运动矢量匹配相似度列表使得后续计算得到的相似度比较准确,以得到较正确的判断划分结果。
[0067]
在一种可行的实现方式中,上述实施例中的步骤150,计算每个匹配编码块与当前编码块之间的相似度,得到多个相似度,包括:计算每个匹配编码块与当前编码块之间的残差编码块,得到多个残差编码块;计算每个残差编码块经过哈达玛变换后的系数编码块,得到多个系数编码块;计算每个系数编码块中各个元素的绝对值的和值,并将和值作为相似度,得到多个相似度。
[0068]
在本技术实施例中,通过先计算每个匹配编码块与当前编码块之间的残差编码块,得到多个残差编码块,然后计算每个残差编码块经过哈达玛变换后的系数编码块,得到多个系数编码块,最后计算每个系数编码块中各个元素的绝对值的和值,并将和值作为相似度,从而得到多个相似度,以根据多个相似度的平均值与多个预设值的比较结果来判断是否对当前编码块进行划分,不仅可以快速且高效的计算每个匹配编码块与当前编码块之
间的相似度,还可以大大的降低编码的复杂度;另外,还可以降低视频编码性能的损失。
[0069]
在一种可行的实现方式中,计算每个匹配编码块与当前编码块之间的残差编码块,得到多个残差编码块,包括:利用公式计算每个匹配编码块与当前编码块之间的残差编码块;计算每个残差编码块经过哈达玛变换后的系数编码块,包括:利用公式计算每个残差编码块经过哈达玛变换后的系数编码块;计算每个系数编码块中各个元素的绝对值的和值,包括:利用公式计算每个系数编码块中各个元素的绝对值的和值;其中,为第个残差编码块,为当前编码块,为第个匹配编码块,为第个系数编码块,为哈达玛矩阵,为第个和值,为第个系数编码块的第个元素,为当前编码块中的。
[0070]
在本技术实施例中,通过数学角度提供了严谨的块与块之间的相似度的计算公式,从数学逻辑的严谨性可以确保所计算相似度的准确性,且通过优选的示出计算每个匹配编码块与当前编码块之间的相似度的计算公式,以便于为技术人员提供参考、理解及计算等;另外,本技术计算每个匹配编码块与当前编码块之间的相似度所采用的公式均只有加减法,这样可以进一步的降低编码复杂度,使得编码过程中的复杂度处于较低的状态,以实现快速且高效的视频编码划分。
[0071]
在一些实施例中,本技术还提供了一种帧间编码树单元划分装置。
[0072]
请参阅图5,为本技术实施例中一种帧间编码树单元划分装置的示意图,该装置510包括:第一确定模块511,用于根据当前帧中当前编码块的第一相邻编码块的深度信息和当前帧的前一帧中同位编码块的深度信息确定当前编码块的深度范围;判断获取模块512,用于若当前编码块的深度范围在预设深度范围内,则获取当前帧的参考帧中同位编码块在时域上的运动矢量和当前编码块的第二相邻编码块在空域上的运动矢量;构建模块513,用于根据参考帧中同位编码块在时域上的运动矢量和当前编码块的第二相邻编码块在空域上的运动矢量构建运动矢量匹配相似度列表;第二确定模块514,用于根据运动矢量匹配相似度列表确定当前编码块在参考帧中的多个匹配编码块;计算及判断模块515,用于计算每个匹配编码块与当前编码块之间的相似度,得到多个相似度,并根据多个相似度的平均值与多个预设值的比较结果判断是否对当前编码块进行划分。
[0073]
在本技术实施例中,上述第一确定模块511、判断获取模块512、构建模块513、第二确定模块514及计算及判断模块515的相关内容可以参阅图1所示实施例中的内容,此处不
做赘述。
[0074]
需要说明的是,本技术的装置510还包括了其他的一些模块,可以理解的是,本技术的方法与装置510具有一一对应的关系,因此,本技术的装置510的其他的一些模块即为上述实施例中本技术的方法对应的内容。
[0075]
在本技术实施例中,通过根据当前帧中当前编码块的第一相邻编码块的深度信息和当前帧的前一帧中同位编码块的深度信息确定当前编码块的深度范围,然后若当前编码块的深度范围在预设深度范围内(缩小了当前编码块的遍历深度范围,减少不必要的划分),则获取当前帧的参考帧中同位编码块在时域上的运动矢量和当前编码块的第二相邻编码块在空域上的运动矢量,再根据参考帧中同位编码块在时域上的运动矢量和当前编码块的相邻编码块在空域上的运动矢量构建运动矢量匹配相似度列表,再然后根据运动矢量匹配相似度列表确定当前编码块在参考帧中的多个匹配编码块,最后计算每个匹配编码块与当前编码块之间的相似度,得到多个相似度,并根据多个相似度的平均值与多个预设值的比较结果判断是否对当前编码块进行划分(降低视频编码性能的损失),使得可以大大的降低编码复杂度。
[0076]
在一些实施例中,本技术还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述方法实施例中一种帧间编码树单元划分方法。
[0077]
在一些实施例中,本技术还提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述方法实施例中一种帧间编码树单元划分方法。
[0078]
图6示出了一些实施例中计算机设备的内部结构图。该计算机设备具体可以是终端,也可以是服务器,或者是网关。如图6所示,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。
[0079]
其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现上述方法实施例中的各个步骤。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行上述方法实施例中的各个步骤。本领域技术人员可以理解,图6中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0080]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。
[0081]
其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink) dram(sldram)、存储器总线
(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0082]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0083]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。

技术特征:
1.一种帧间编码树单元划分方法,其特征在于,所述方法包括:根据当前帧中当前编码块的第一相邻编码块的深度信息和所述当前帧的前一帧中同位编码块的深度信息确定所述当前编码块的深度范围;若所述当前编码块的深度范围在预设深度范围内,则获取所述当前帧的参考帧中同位编码块在时域上的运动矢量和所述当前编码块的第二相邻编码块在空域上的运动矢量;根据所述参考帧中同位编码块在时域上的运动矢量和所述当前编码块的第二相邻编码块在空域上的运动矢量构建运动矢量匹配相似度列表;根据所述运动矢量匹配相似度列表确定所述当前编码块在所述参考帧中的多个匹配编码块;计算每个匹配编码块与所述当前编码块之间的相似度,得到多个相似度,并根据多个相似度的平均值与多个预设值的比较结果判断是否对所述当前编码块进行划分。2.根据权利要求1所述的方法,其特征在于,所述当前编码块的第一相邻编码块的深度信息包括:所述当前编码块的左边编码块的深度信息、所述当前编码块的上边编码块的深度信息和所述当前编码块的左上边编码块的深度信息。3.根据权利要求1所述的方法,其特征在于,所述当前编码块的第二相邻编码块在空域上的运动矢量包括:所述当前编码块的左边编码块在空域上的运动矢量、所述当前编码块的左下边编码块在空域上的运动矢量、所述当前编码块的上边编码块在空域上的运动矢量和所述当前编码块的右上边编码块在空域上的运动矢量。4.根据权利要求1所述的方法,其特征在于,多个预设值包括第一预设值和第二预设值,所述第一预设值大于所述第二预设值;所述根据多个相似度的平均值与多个预设值的比较结果判断是否对所述当前编码块进行划分,包括:在所述平均值大于或等于所述第一预设值的情况下,对所述当前编码块进行划分;在所述平均值小于所述第一预设值,且所述平均值大于所述第二预设值的情况下,按基于四叉树递归划分方式判断是否对所述当前编码块进行划分;在所述平均值小于或等于所述第二预设值的情况下,不对所述当前编码块进行划分。5.根据权利要求2所述的方法,其特征在于,根据所述当前编码块的左边编码块的深度信息、上边编码块的深度信息、左上边编码块的深度信息和所述前一帧中同位编码块的深度信息确定所述当前编码块的深度范围,包括:利用公式计算所述当前编码块的深度范围;其中,[,]为所述当前编码块的深度范围,为所述当前编码块的左边编码块的深度信息,为所述当前编码块的上边编码块的深度信息,为所述当前编码块的左上边编码块的深度信息,为所述前一帧中同位编码块的深度信息。6.根据权利要求1所述的方法,其特征在于,所述根据所述参考帧中同位编码块在时域上的运动矢量和所述当前编码块的第二相邻编码块在空域上的运动矢量构建运动矢量匹配相似度列表,包括:对所述参考帧中同位编码块在时域上的运动矢量进行比例伸缩调整得到目标运动矢
量;根据所述目标运动矢量和所述当前编码块的第二相邻编码块在空域上的运动矢量构建运动矢量匹配相似度列表。7.根据权利要求6所述的方法,其特征在于,所述对所述参考帧中同位编码块在时域上的运动矢量进行比例伸缩调整得到所述目标运动矢量,包括:利用公式计算所述目标运动矢量;其中,为所述目标运动矢量,为所述当前帧与所述参考帧的距离,为所述参考帧与所述参考帧的参考帧的距离,为所述参考帧中同位编码块在时域上的运动矢量。8.根据权利要求1所述的方法,其特征在于,所述计算每个匹配编码块与所述当前编码块之间的相似度,得到多个相似度,包括:计算每个匹配编码块与所述当前编码块之间的残差编码块,得到多个残差编码块;计算每个残差编码块经过哈达玛变换后的系数编码块,得到多个系数编码块;计算每个系数编码块中各个元素的绝对值的和值,并将和值作为相似度,得到多个相似度。9.根据权利要求8所述的方法,其特征在于,所述计算每个匹配编码块与所述当前编码块之间的残差编码块,得到多个残差编码块,包括:利用公式计算每个匹配编码块与所述当前编码块之间的残差编码块;所述计算每个残差编码块经过哈达玛变换后的系数编码块,包括:利用公式计算每个残差编码块经过哈达玛变换后的系数编码块;所述计算每个系数编码块中各个元素的绝对值的和值,包括:利用公式计算每个系数编码块中各个元素的绝对值的和值;其中,为第个残差编码块,为所述当前编码块,为第个匹配编码块,为第个系数编码块,为哈达玛矩阵,为第个和值,为第个系数编码块的第个元素,为所述当前编码块中的。10.一种帧间编码树单元划分装置,其特征在于,所述装置包括:第一确定模块,用于根据当前帧中当前编码块的第一相邻编码块的深度信息和所述当前帧的前一帧中同位编码块的深度信息确定所述当前编码块的深度范围;判断获取模块,用于若所述当前编码块的深度范围在预设深度范围内,则获取所述当前帧的参考帧中同位编码块在时域上的运动矢量和所述当前编码块的第二相邻编码块在空域上的运动矢量;构建模块,用于根据所述参考帧中同位编码块在时域上的运动矢量和所述当前编码块的第二相邻编码块在空域上的运动矢量构建运动矢量匹配相似度列表;第二确定模块,用于根据所述运动矢量匹配相似度列表确定所述当前编码块在所述参
考帧中的多个匹配编码块;计算及判断模块,用于计算每个匹配编码块与所述当前编码块之间的相似度,得到多个相似度,并根据多个相似度的平均值与多个预设值的比较结果判断是否对所述当前编码块进行划分。

技术总结
本发明实施例公开了一种帧间编码树单元划分方法及装置,该方法包括:根据当前帧中当前编码块的第一相邻编码块的深度信息和当前帧的前一帧中同位编码块的深度信息确定当前编码块的深度范围,然后若当前编码块的深度范围在预设深度范围内,则获取当前帧的参考帧中同位编码块在时域上的运动矢量和当前编码块的第二相邻编码块在空域上的运动矢量,以构建运动矢量匹配相似度列表,再根据运动矢量匹配相似度列表确定当前编码块在参考帧中的多个匹配编码块,最后计算每个匹配编码块与当前编码块之间的相似度,得到多个相似度,并根据多个相似度的平均值与多个预设值的比较结果判断是否对当前编码块进行划分,该方法可以大大的降低编码复杂度。的降低编码复杂度。的降低编码复杂度。


技术研发人员:林源松 张坚 邱天
受保护的技术使用者:深流微智能科技(深圳)有限公司
技术研发日:2023.06.16
技术公布日:2023/7/22
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐