本发明涉及视频编码技术领域,特别涉及一种vvc帧内cu深度快速划分方法。
背景技术:
由于高清视频能够给人们带来更好的视觉体验效果,所以,此种格式的视频在实际生活中得到了较为广泛的应用,然而,急速增长的视频数据量给视频压缩编码带来了极大的挑战。
为了更有效的压缩视频数据,vceg(videocodingexpertsgroup,视频编码专家组)和mpeg(movingpictureexpertsgroup,动态图像专家组)正在共同制定新一代视频压缩标准vvc(versatilevideocoding)。vvc在对视频进行压缩编码的过程中,编码帧通常会被划分为多个ctu序列,而为了获得ctu的最佳划分,ctu首先会作为根节点进行qt(四叉树划分),得到的叶节点可以进一步递归进行qt、h_bt(水平二叉树划分)、v_bt(垂直二叉树划分)、h_tt(水平三叉树划分)和v_tt(垂直三叉树划分)。为了简化ctu的划分过程,当cu被h_bt、v_bt、h_tt和v_tt划分得到时,cu将不再进行qt。同时,为了更有效的去除编码cu的空间冗余,vvc将hevc(highefficiencyvideocoding,视频压缩标准)的cu帧内预测模式从35种扩展到67种,也即,65种方向预测模式和2种无方向预测模式(dc模式和planar模式)。这样就导致在对cu进行编码过程中,不仅需要遍历所有qt、h_bt、v_bt、h_tt和v_tt的进一步划分,同时,cu还需要进行67种帧内预测模式的计算,而cu最终只会选择一种划分模式作为最终的划分模式。显然,此种cu深度划分方式会增加cu的编码复杂度。目前,针对这一问题,还没有较为有效的解决办法。
由此可见,如何降低在对cu深度进行划分过程中的编码复杂度,是本领域技术人员亟待解决的技术问题。
技术实现要素:
有鉴于此,本发明的目的在于提供一种vvc帧内cu深度快速划分方法,以降低在对cu深度进行划分过程中的编码复杂度。其具体方案如下:
一种vvc帧内cu深度快速划分方法,包括:
顺序提取需要编码的cu,并计算目标编码cu的原始亮度像素值oriw×h(i,j)和预测亮度像素值prew×h(i,j),以获取所述目标编码cu的亮度像素差值difw×h(i,j);
其中,difw×h(i,j)=|oriw×h(i,j)-prew×h(i,j)|;
式中,w和h分别为所述目标编码cu的宽度和亮度,i和j分别为所述目标编码cu的像素点横坐标和纵坐标;
判断所述目标编码cu的宽度和高度是否均大于预设阈值;
若是,则获取所述目标编码cu的进一步划分模式;
若所述目标编码cu的进一步划分模式为h_bt,则判断所述目标编码cu是否满足第一预设条件;
若是,则停止对所述目标编码cu进行进一步划分;
若所述目标编码cu的进一步划分模式为v_bt,则判断所述目标编码cu是否满足第二预设条件;
若是,则停止对所述目标编码cu进行进一步划分;
若所述目标编码cu的进一步划分模式为h_tt,则判断所述目标编码cu是否满足第三预设条件;
若是,则停止对所述目标编码cu进行进一步划分;
若所述目标编码cu的进一步划分模式为v_tt,则判断所述目标编码cu是否满足第四预设条件;
若是,则停止对所述目标编码cu进行进一步划分;
其中,所述第一预设条件的表达式为:
所述第二预设条件的表达式为:
式中,th为自适应调节阈值,
所述第三预设条件的表达式为:
所述第四预设条件的表达式为:
式中,
和
优选的,所述预设阈值具体为8px。
优选的,所述获取所述目标编码cu的进一步划分模式的步骤之后,还包括:
若所述目标编码cu的进一步划分模式为qt,则继续对所述目标编码cu进行进一步划分。
优选的,所述判断所述目标编码cu是否满足第一预设条件的过程之后,还包括:
若否,则对所述目标编码cu进行进一步的h_bt。
优选的,所述判断所述目标编码cu是否满足第二预设条件的过程之后,还包括:
若否,则对所述目标编码cu进行进一步的v_bt。
优选的,所述判断所述目标编码cu是否满足第三预设条件之后,还包括:
若否,则对所述目标编码cu进行进一步的h_tt。
优选的,所述判断所述目标编码cu是否满足第四预设条件的过程之后,还包括:
若否,则对所述目标编码cu进行进一步的v_tt。
可见,在发明中,因为当前编码cu的亮度像素差值difw×h(i,j)能够反映当前编码cu的哪种划分模式是否为最优划分,在此基础上,如果目标编码cu的宽度和高度均大于预设阈值的情况下,则说明目标编码cu更可能需要进一步划分。在对目标编码cu进行进一步划分过程中,是设置了四种判定标准来判断目标编码cu是否能够提前结束qt、h_bt、v_bt、h_tt和v_tt的进一步划分,也即,通过判断目标编码cu的进一步划分是否满足第一预设条件、第二预设条件、第三预设条件和第四预设条件来判断目标编码cu是否能够提前终止划分,并且,在对目标编码cu进行划分过程中,还可以通过自适应调节阈值th来实现编码时间与编码码率之间的均衡。显然,由于该方法可以提前终止目标编码cu需要遍历所有qt、h_bt、v_bt、h_tt和v_tt进行进一步划分的步骤,所以,通过本发明所提供的vvc帧内cu深度快速划分方法就可以显著降低在对目标编码cu深度进行划分过程中的编码复杂度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所公开的一种vvc帧内cu深度快速划分方法的流程图;
图2为一个ctu的最佳划分示例。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,图1为本发明实施例所提供的一种vvc帧内cu深度快速划分方法的流程图,该方法包括:
步骤s11:顺序提取需要编码的cu,并计算目标编码cu的原始亮度像素值oriw×h(i,j)和预测亮度像素值prew×h(i,j),以获取目标编码cu的亮度像素差值difw×h(i,j);
其中,difw×h(i,j)=|oriw×h(i,j)-prew×h(i,j)|;
式中,w和h分别为目标编码cu的宽度和亮度,i和j分别为目标编码cu的像素点横坐标和纵坐标;
步骤s12:判断目标编码cu的宽度和高度是否均大于预设阈值;
步骤s13:若是,则获取目标编码cu的进一步划分模式;
可以理解的是,在现有技术当中,由于一个cu在深度划分过程中,需要遍历所有qt、h_bt、v_bt、h_tt和v_tt的进一步划分,同时,cu还需要进行67种帧内预测模式的计算,这样就显著增加了vvc帧内cu深度划分过程中的复杂度。而在cu实际编码过程中,一个cu只会选择一种划分模式作为最终的划分模式,请参见图2,图2为一个ctu的最佳划分示例,该ctu的大小为128*128,在图2当中,每一个最佳cu的划分都只属于一种划分模式,例如左下角64*64的cu的最终划分模式为v_tt划分,如果再对64*64的cu进行h_tt的划分计算,这样只会增加编码的计算复杂度,而不会进一步提升cu的编码效率。因此如果能够提前且准确地预测ctu中cu的哪种划分模式可能是最优划分或哪种划分模式可能不是最优划分,从而提前终止并跳过cu进行进一步qt、h_bt、v_bt、h_tt和v_tt的递归划分方法的计算,就可以极大降低cu的编码复杂度。
而本实施例所提供的一种vvc帧内cu深度快速划分方法,就是为了能够提前且准确地预测ctu中cu的哪种划分模式可能不是最优的划分方法,从而使得cu可以省略或者跳过需要逐个去遍历qt、h_bt、v_bt、h_tt和v_tt划分方法的繁琐步骤。
具体的,在本实施例中,首先是顺序提取需要编码的cu,并计算目标编码cu的原始亮度像素值oriw×h(i,j)和预测亮度像素值prew×h(i,j),其中,目标编码cu的预测亮度像素值prew×h(i,j)是根据目标编码cu的67种帧内预测模式计算得到的,也即,从67种帧内预测模式中选取目标编码cu的最佳帧内预测模式;然后,求取目标编码cu的原始亮度像素值oriw×h(i,j)和预测亮度像素值prew×h(i,j)之间的差值,得到目标编码cu的亮度像素差值difw×h(i,j)。能够想到的是,因为目标编码cu的亮度像素差值difw×h(i,j)能够在很大程度上反映目标编码cu的哪种划分模式是否为最佳划分,所以,在本实施例中,是利用目标编码cu的这一属性特征来对目标编码cu深度进行划分。
当获取得到目标编码cu的亮度像素差值difw×h(i,j)时,则根据目标编码cu的亮度像素差值difw×h(i,j)判断目标编码cu的宽度和亮度是否均大于预设阈值,如果是,则获取目标编码cu的进一步划分模式,也即,如果当前编码cu的原始亮度像素值oriw×h(i,j)与预测亮度像素值prew×h(i,j)之间的差值较大,则说明目标编码cu需要进行进一步的划分。
步骤s14:若目标编码cu的进一步划分模式为h_bt,则判断目标编码cu是否满足第一预设条件;
步骤s15:若是,则停止对目标编码cu进行进一步划分;
步骤s16:若目标编码cu的进一步划分模式为v_bt,则判断目标编码cu是否满足第二预设条件;
步骤s17:若是,则停止对目标编码cu进行进一步划分;
步骤s18:若目标编码cu的进一步划分模式为h_tt,则判断目标编码cu是否满足第三预设条件;
步骤s19:若是,则停止对目标编码cu进行进一步划分;
步骤s20:若目标编码cu的进一步划分模式为v_tt,则判断目标编码cu是否满足第四预设条件;
步骤s21:若是,则停止对目标编码cu进行进一步划分;
其中,第一预设条件的表达式为:
第二预设条件的表达式为:
式中,th为自适应调节阈值,
第三预设条件的表达式为:
第四预设条件的表达式为:
式中,
和
当获取得到目标编码cu的进一步划分模式之后,如果目标编码cu的进一步划分模式为h_bt,并且,目标编码cu还满足第一预设条件,则停止对目标编码cu进行进一步划分;如果目标编码cu的进一步划分模式为v_bt,并且,目标编码cu还满足第二预设条件,则停止对目标编码cu进行进一步划分;如果目标编码cu的进一步划分模式为h_tt,并且,目标编码cu还满足第三预设条件,则停止对目标编码cu进行进一步划分;如果目标编码cu的进一步划分模式为v_tt,并且,目标编码cu还满足第四预设条件,则停止对目标编码cu进行进一步划分。
显然,利用步骤s14至步骤s21就相当于是提前预测得到了目标编码cu的哪种划分模式可能不是最佳划分模式,所以,通过步骤s14至步骤s21就可以避免目标编码cu需要遍历所有qt、h_bt、v_bt、h_tt和v_tt的进一步划分才能完成压缩编码的繁琐步骤。所以,通过本实施例所提供的技术方案,不仅可以保证目标编码cu的编码质量,而且,还可以显著降低在对目标cu进行压缩编码过程中的编码时间复杂度。
可见,在实施例中,因为当前编码cu的亮度像素差值difw×h(i,j)能够反映当前编码cu的哪种划分模式是否为最优划分,在此基础上,如果目标编码cu的宽度和高度均大于预设阈值的情况下,则说明目标编码cu更可能需要进一步划分。在对目标编码cu进行进一步划分过程中,是设置了四种判定标准来判断目标编码cu是否能够提前结束qt、h_bt、v_bt、h_tt和v_tt的进一步划分,也即,通过判断目标编码cu的进一步划分是否满足第一预设条件、第二预设条件、第三预设条件和第四预设条件来判断目标编码cu是否能够提前终止划分,并且,在对目标编码cu进行划分过程中,还可以通过自适应调节阈值th来实现编码时间与编码码率之间的均衡。显然,由于该方法可以提前终止目标编码cu需要遍历所有qt、h_bt、v_bt、h_tt和v_tt进行进一步划分的步骤,所以,通过本实施例所提供的vvc帧内cu深度快速划分方法就可以显著降低在对目标编码cu深度进行划分过程中的编码复杂度。
基于上述实施例,本实施例对技术方案作进一步的说明与优化,作为一种优选的实施方式,预设阈值具体为8px。
在实际操作过程中,经过大量的实验验证发现,当将预设阈值设置为8px时,不仅可以提高对目标编码cu进行划分过程中的划分效率,而且,也可以提高在对目标编码cu进行进一步划分模式判定过程中判断结果的准确性,所以,在本实施例中,是将预设阈值设置为8px。当然,在实际操作过程中,还可以根据实际情况的不同对预设阈值进行适应性的调整,此处不作具体赘述。
基于上述实施例,本实施例对技术方案作进一步的说明与优化,具体的,上述步骤:获取目标编码cu的进一步划分模式的过程之后,还包括:
若目标编码cu的进一步划分模式为qt,则继续对目标编码cu进行进一步划分。
可以理解的是,在对目标编码cu深度划分过程中,除了会遇到前述的情况之外,还可能会碰到目标编码cu的进一步划分模式为qt的情形,在此情况下,则需要继续对目标编码cu进行进一步划分,并以此来确定目标编码cu的最佳划分模式。
显然,通过本实施例所提供的技术方案,可以进一步保证在对目标编码cu深度划分过程中的完整性。
基于上述实施例,本实施例对技术方案作进一步的说明与优化,作为一种优选的实施方式,上述步骤:判断目标编码cu是否满足第一预设条件的过程之后,还包括:
若否,则对目标编码cu进行进一步的h_bt。
在实际操作过程中,如果目标编码cu的进一步划分模式为h_bt,但是,目标编码cu并不满足第一预设条件时,在此情况下,则说明h_bt可能是目标编码cu的最佳划分模式。此时,则需要对目标编码cu进行进一步的h_bt,并以此来查找目标编码cu的最佳划分模式。
基于上述实施例,本实施例对技术方案作进一步的说明与优化,作为一种优选的实施方式,上述步骤:判断目标编码cu是否满足第二预设条件的过程之后,还包括:
若否,则对目标编码cu进行进一步的v_bt。
如果目标编码cu的进一步划分模式为v_bt,但是,目标编码cu并不满足第二预设条件时,在此情况下,则说明v_bt可能是目标编码cu的最佳划分模式,此时,则需要对目标编码cu进行进一步的v_bt,以供后续流程步骤的继续执行,由此就保证了在对目标编码cu深度进行划分过程中的完整性。
基于上述实施例,本实施例对技术方案作进一步的说明与优化,作为一种优选的实施方式,上述步骤:判断目标编码cu是否满足第三预设条件之后,还包括:
若否,则对目标编码cu进行进一步的h_tt。
或者,在实际操作过程中,如果目标编码cu的进一步划分模式为h_tt,但是,目标编码cu并不满足第三预设条件时,在此情况下,则说明h_tt可能是目标编码cu的最佳划分模式,此时,则需要对目标编码cu进行进一步的h_tt,并以此来继续查找目标编码cu的最佳划分模式。
基于上述实施例,本实施例对技术方案作进一步的说明与优化,作为一种优选的实施方式,上述步骤:判断目标编码cu是否满足第四预设条件的过程之后,还包括:
若否,则对目标编码cu进行进一步的v_tt。
在实际操作过程中,如果目标编码cu的进一步划分模式为v_tt,但是,目标编码cu并不满足第二预设条件时,在此情况下,则说明v_tt可能是目标编码cu的最佳划分模式。此时,则需要对目标编码cu进行进一步的v_tt,并对目标编码cu进行v_tt之后,根据对目标编码cu进行划分完毕之后的结果来继续查找目标编码cu的最佳划分模式。
显然,通过本实施例所提供的技术方案,不仅可以满足后续流程步骤的继续执行,而且,也可以使得本申请所提供的技术方案更加全面与完整。
基于前述实施例所公开的技术内容,在本实施例中,是以vtm2.0为测试平台,在inter(r)core(tm)i7_9700cpu,16gbram的pc上执行前述所公开的一种cu深度划分方法,并以此来评估该划分方法的可行性以及有效性。
假设测试序列包括5种类型,也即,class_d(basketballpallpass、blowingbubbles、bqsquare,racehorses)、class_c(racehorsesc,partyscence,basketballdrill,bqmall)、class_e(fourpeople,kristenandsara,johnny)、class_f(basketballdrilltext,chinaspeed,slideediting,sliedshow)和class_b(cactus,kimono,parkscene,basketballdrive,bqterrace);然后,再将编码量化参数(qp)设置为(22,27,32,37),编码配置为ai(allintra);最后,采用码率变化情况(bd-rate)和编码时间(ts)来衡量算法的性能。
其中,ts被定义为:
式中,t0为原始测试模型的编码时间,tp为本发明应用于原始测试模型后的编码时间,i表示不同的qp值。
请参见表1,表1为本发明所提供方法在vtm2.0测试平台上的性能对比结果。
表1本发明所提供方法在vtm2.0测试平台上的性能对比结果
从表1中的编码时间以及编码码率的对比结果可以看出,在自适应调节阈值th=1、th=1.2、th=1.5和th=2情况下,利用本发明所提供的方法分别可以节约编码时间66.9%、57.2%、46.5%和34.3%,而bd-rate平均增加2.64%、1.91%、1.38%和0.95%。对于不同分辨率的视频序列,在相同的自适应调节阈值th下,编码时间节约的差异比较小,随着自适应调节阈值th的增加,编码时间节约减少,同时编码码率增加也减少。
同时,通过上述实验对比结果可以看出,当编码应用的场景需要更快的编码速度时,则可以通过将自适应调节阈值th设置的更小来实现;当编码应用的场景对编码码率增加更为敏感时,则可以通过将自适应调节阈值th设置的更大来实现。综上所述,通过本发明所提供的方法,不仅可以在人眼可接受编码质量下降的范围内,有效实现编码时间节约与编码码率增加之间的平衡,而且,还可以显著降低在对cu深度划分过程中的编码复杂度。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种vvc帧内cu深度快速划分方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
1.一种vvc帧内cu深度快速划分方法,其特征在于,包括:
顺序提取需要编码的cu,并计算目标编码cu的原始亮度像素值oriw×h(i,j)和预测亮度像素值prew×h(i,j),以获取所述目标编码cu的亮度像素差值difw×h(i,j);
其中,difw×h(i,j)=|oriw×h(i,j)-prew×h(i,j)|;
式中,w和h分别为所述目标编码cu的宽度和亮度,i和j分别为所述目标编码cu的像素点横坐标和纵坐标;
判断所述目标编码cu的宽度和高度是否均大于预设阈值;
若是,则获取所述目标编码cu的进一步划分模式;
若所述目标编码cu的进一步划分模式为h_bt,则判断所述目标编码cu是否满足第一预设条件;
若是,则停止对所述目标编码cu进行进一步划分;
若所述目标编码cu的进一步划分模式为v_bt,则判断所述目标编码cu是否满足第二预设条件;
若是,则停止对所述目标编码cu进行进一步划分;
若所述目标编码cu的进一步划分模式为h_tt,则判断所述目标编码cu是否满足第三预设条件;
若是,则停止对所述目标编码cu进行进一步划分;
若所述目标编码cu的进一步划分模式为v_tt,则判断所述目标编码cu是否满足第四预设条件;
若是,则停止对所述目标编码cu进行进一步划分;
其中,所述第一预设条件的表达式为:
所述第二预设条件的表达式为:
式中,th为自适应调节阈值,
所述第三预设条件的表达式为:
所述第四预设条件的表达式为:
式中,
2.根据权利要求1所述的vvc帧内cu深度快速划分方法,其特征在于,所述预设阈值具体为8px。
3.根据权利要求1所述的vvc帧内cu深度快速划分方法,其特征在于,所述获取所述目标编码cu的进一步划分模式的步骤之后,还包括:
若所述目标编码cu的进一步划分模式为qt,则继续对所述目标编码cu进行进一步划分。
4.根据权利要求1所述的vvc帧内cu深度快速划分方法,其特征在于,所述判断所述目标编码cu是否满足第一预设条件的过程之后,还包括:
若否,则对所述目标编码cu进行进一步的h_bt。
5.根据权利要求1所述的vvc帧内cu深度快速划分方法,其特征在于,所述判断所述目标编码cu是否满足第二预设条件的过程之后,还包括:
若否,则对所述目标编码cu进行进一步的v_bt。
6.根据权利要求1所述的vvc帧内cu深度快速划分方法,其特征在于,所述判断所述目标编码cu是否满足第三预设条件之后,还包括:
若否,则对所述目标编码cu进行进一步的h_tt。
7.根据权利要求1所述的vvc帧内cu深度快速划分方法,其特征在于,所述判断所述目标编码cu是否满足第四预设条件的过程之后,还包括:
若否,则对所述目标编码cu进行进一步的v_tt。
技术总结