基于预编码的快速预测方法与流程

文档序号:23665023发布日期:2021-01-15 14:03阅读:60来源:国知局
基于预编码的快速预测方法与流程

本发明涉及视频编码技术领域,特别涉及一种h.266/vvc(versatilevideocoding,多功能视频编码)视频编码标准中基于预编码的深度预测方法、基于预编码的快速帧内方向预测方法以及检测装置。



背景技术:

随着人们对高质量多媒体内容的需求增高,以及超高清分辨率的出现,视频的帧率和分辨率变得越来越高,h.265也逐渐难以满足压缩要求。因此,运动图像专家组和视频编码专家组于2015年10月成立了联合视频探索组,研究新一代视频编码技术。在2018年4月的第10次jvet会议上,jvet定义了新一代视频编码技术的第一份草案,将新视频编码标准命名为vvc,其相对于h.265,在编码效率方面有一定的提升。

目前在相关技术中,h.266/vvc为了提高编码效率采用了基于四叉树及嵌套多类型树的图像划分技术,这种图像划分技术虽然很大程度的提高了压缩率,但它需要树形编码单元遍历完所有的编码单元深度后才能决策出最佳的编码单元深度,造成了极高的计算复杂度,需要耗费大量时间才能得出需要的结论。



技术实现要素:

本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明在h.266/vvc视频编码标准的基础上,提出三种基于预编码的快速预测方法,降低了编码的复杂程度,减少了编码时间。

第一方面,本发明提出了一种基于预编码的深度预测方法,包括:

将输入的图像分割成若干预编码单元;

对每个所述预编码单元进行预编码,得到相应的预编码信息;

在正式编码过程中统计预编码信息的方差值;

当方差值小于第一阈值,认定当前层为最优深度,所述当前层为当前编码单元的深度。

根据本发明第一方面实施例的基于预编码的深度预测方法,至少具有如下有益效果:将输入的图像划分为若干预编码单元,对每个预编码单元进行预编码,并在正式编码过程中统计编码单元的预编码信息的方差值,当方差值小于第一阈值时,认定当前层为最优深度,不再对编码单元进行分割。本发明在检测装置遍历完当前编码单元的所有深度之前,就能够决策出编码单元的最优深度,降低了编码的复杂程度,减少了编码时间。

根据本发明第一方面的一些实施例,方法还包括:当方差值大于第二阈值,跳过当前层的编码,直接对所述编码单元进行分割。当方差值大于第二阈值,可知当前层非最优深度,跳过当前层的编码,并对当前编码单元进行进一步的分割。降低了编码的复杂程度,减少了编码时间。

根据本发明第一方面的一些实施例,方法还包括:当方差值介于所述第一阈值与第二阈值之间,对当前层进行编码;将所述编码单元进行分割。当方差值位于第一阈值和第二阈值之间,先对当前层进行编码,将编码结果与进一步分割后的编码结果进行比较,从而判断最优深度,提高了编码的准确性。

根据本发明第一方面的一些实施例,方法还包括:若当前层非最优深度,直接对所述编码单元进行进一步分割,并对分割后的编码单元进行编码。

根据本发明第一方面的一些实施例,所述对每个所述预编码单元进行预编码,得到相应的预编码信息,包括:对每个所述预编码单元进行帧内预测,根据satd(sumofabsolutetransformeddifference,绝对变换误差和)得到初步的帧内预测模式。使用satd代替相关技术中使用的rdo(ratedistortioncost,率失真代价),降低了编码的复杂程度。

根据本发明第一方面的一些实施例,方法还包括:所述第一阈值为3,所述第二阈值为20。当进行帧内预测时,将第一阈值设置为3,第二阈值设置为20,这样的设置使得测得的数据更准确,提高了编码效率与编码的准确性。

根据本发明第一方面的一些实施例,所述对每个所述预编码单元进行预编码,得到相应的预编码信息,包括:对每个所述预编码单元进行运动估计,根据sad(sumofabsolutedifference,绝对误差和)以及绝对变换误差和satd得到运动向量。在部分场合下,使用sad代替相关技术中使用的satd,降低了编码的复杂程度,提高编码效率。

根据本发明第一方面的一些实施例,方法还包括:所述第一阈值为8,所述第二阈值为16。当进行帧内预测时,将第一阈值设置为8,第二阈值设置为16,这样的设置使得测得的数据更准确,提高了编码效率与编码的准确性。

第二方面,本发明提出了一种基于预编码的快速帧内方向预测方法,包括:

得出最优深度后,计算得出当前所述编码单元包含的所述预编码单元帧内预测模式的平均值;

在平均值及其二距邻的五种帧内预测模式中找出n个候选模式;

对所述n个候选模式和最可能模式mpm列表中的模式计算完整的率失真代价,选出最终的帧内预测模式。

根据本发明第二方面实施例的基于预编码的快速帧内方向预测方法,在帧内预编码模块和深度预测模块的基础上得出最优深度,计算得出当前编码单元中预编码单元帧内预测模式的平均值,在平均值及其二距邻的五种帧内预测模式中找出n个候选模式,并对该n个候选模式与mpm列表中的模式计算完整的率失真代价,选出最终的模式。上述方法大大减少了在帧内预测过程中的计算次数,加快了帧内预测模式的决策过程,提高了编码效率。

第三方面,本发明提出了一种检测装置,能够实现上述第一方面中的基于预编码的深度预测方法以及第二方面中的基于预编码的快速帧内方向预测方法。在检测装置进行完所有编码单元深度的帧内预测和帧间预测之前,决策出每个编码单元的最优深度,并减少在搜索最优帧内预测模式时需要的编码次数,同时在非最优深度中跳过当前层的帧内预测或帧间预测,从而降低编码复杂度,减少了编码时间。

本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明的附加方面和优点结合下面附图对实施例的描述中将变得明显和容易理解,其中:

图1为本发明第一方面一些实施例的基于预编码的深度预测方法的流程图;

图2为本发明第一方面一些实施例的基于预编码的深度预测方法的流程图;

图3为本发明第一方面一些实施例的基于预编码的深度预测方法的流程图;

图4为本发明第一方面一些实施例的基于预编码的深度预测方法的流程图;

图5为本发明第一方面一些实施例中帧内预编码的流程图;

图6为本发明第一方面一些实施例中帧间预编码的流程图;

图7为本发明第二方面一些实施例的基于帧内编码的快速帧内方向预测方法的流程图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

在本发明的描述中,如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。

需要说明的是,本发明提出的方法均是在h.266/vvc视频编码标准的基础上提出的。

如图1所示,图1为本发明第一方面一些实施例的基于预编码的深度预测方法的流程图。该方法包括步骤s110、步骤s120、步骤s130和步骤s140。

步骤s110:将输入的图像分割成若干预编码单元;步骤s120:对每个预编码单元进行预编码,并得到预编码信息;步骤s130:统计编码单元包含的预编码单元的预编码信息的方差值;步骤s140:当方差值小于第一阈值,判定当前层为最优深度。可以理解的是,将输入的图像分割为若干个8*8的预编码单元,再对划分后的各个预编码单元的进行预编码处理,并根据编码方式的不同得出相应的结果。将各个预编码单元的预编码信息的方差进行统计,当方差值小于选择的预编码方式下的第一阈值,判定当前层为最优深度。

需要说明是,当进行正式编码时,若编码单元中所包含的预编码单元的预编码信息几乎相同,之间的方差很小,则说明当前编码单元的内部纹理比较统一,即使对当前层的编码单元进行分割,它的子编码单元的处理结果也与当前层编码单元的处理结果相近,故子编码单元的预测成本之和应该跟当前层编码单元的预测成本接近,故可认为当前深度就是最优深度。使用粗略的统计就能够判断出当前层是否为最优深度,降低了编码的复杂程度,提高了编码效率。

如图2和图3所示,图2和图3均为本发明第一方面一些实施例的基于预编码的深度预测方法的流程图。该方法还包括步骤s210、步骤s220以及步骤s310。

步骤s210:当方差值介于第一阈值与第二阈值之间,对当前层进行编码;步骤s220:将当前预编码单元进行分割;步骤s310:当方差值大于第二阈值,跳过当前层的编码,对当前编码单元进行分割。可以理解的是,当编码在第一阈值与第二阈值之间,先对当前层进行编码处理,再将当前编码单元进行进一步的分割;而当方差值大于第二阈值,跳过对当前层的预编码处理,直接对当前编码单元进行分割。根据方差值的不同选择不同的处理方式,当方差值介于第一阈值与第二阈值之间,将当前层的预测代价与进一步分割后的预测代价进行比较,从而得出最优深度;同时,当方差值大于第二阈值,直接进一步分割当前编单元,跳过没必要的步骤,简化了编码的复杂程度,降低了编码过程所需的时间。

如图4所示,图4为本发明第一方面一些实施例的基于预编码的深度预测方法的流程图。该方法还包括步骤s410:若当前层非最优深度,对当前编码单元进一步分割,并对分割后的编码单元进行预编码。可以理解的是,当编码单元包含的预编码单元预编码信息并不统一,且统计出预编码信息的方差值较大,则说明当前编码单元的内部纹理比较复杂,故跳过当前层的编码,直接对当前编码单元进行分割。跳过了没必要的复杂流程,降低了编码的复杂程度。

如图5所示,图5为本发明第一方面一些实施例中帧内预编码的流程图。帧内预编码的过程包括步骤s510、步骤s520、步骤s530、步骤s540、步骤s550、步骤s560、步骤s570以及步骤s580。步骤s510:将输入图像分割为若干个8*8的预编码单元;步骤s520:获取参考像素并对参考像素进行滤波处理;步骤s530:对当前预编码单元做dc模式预测和planar模式预测,并计算相应的satd;步骤s540:检查并更新最小的satd及其对应的帧内预测模式;步骤s550:对当前预编码单元从模式5开始,以5为距离进行角度模式预测,并计算相应的satd;步骤s560:检查并更新最小的satd及其对应的角度预测模式;步骤s570:以最小的satd对应的角度预测模式为中心,遍历2邻距,找出最优角度模式;步骤s580:将dc模式、planar模式与最优角度模式的satd进行比较,得到最优帧内预测模式。

可以理解的是,在帧内预编码的流程中,将输入的图像分割为若干8*8的预编码单元,获取参考像素,并对参考像素进行滤波处理,然后针对各个预编码单元分别做dc模式预测和planar模式预测并计算在不同模式下对应的satd;针对各个预编码单元进行角度模式预测,在角度预测的过程中先后进行粗搜索与细搜索,并计算出各个角度模式对应的satd,将各个预测模式的satd进行比较,得到最优的帧内预测模式。

需要说明的是,在帧内预编码中为预编码单元获取参考像素时,对应的参考像素是指当前编码单元的左上角像素(1*1)+上面一排像素(2w*1)+左边一排像素(1*2h)。w,h为当前编码单元的宽度和高度。

需要说明的是,本发明一些实施例中,只进行了h.265中的33中角度预测模式。粗搜索是指从模式5开始,以5为距离做角度预测,得到初步的角度模式。粗搜索执行完毕后,再以粗搜索中的最优模式为中心,遍历其2距邻做角度预测,然后将该5个角度模式的satd进行比较,即可得到最优角度模式,这个过程就是细搜索。最后再比较dc、planar和角度模式的satd即可得到最优帧内预测模式。在降低编码复杂度的同时,提高了角度预测的速度,保证了编码效率。

在基于帧内预编码做深度预测的过程中,第一阈值设置为3,第二阈值设置为20。如果方差值小于3说明当前编码单元中各个预编码单元的预测模式相差无几,编码单元中各部分的纹理信息基本一致,不对当前编码单元继续进行分割。如果方差值大于20,表明当前深度不是编码单元的最优深度,需要进一步分割,从而跳过当前层的编码过程。这样的范围设置,使得在深度预测的过程中能够以较高效率对编码单元进行处理,并快速对当前层是否为最优深度做出判断。可以理解的是,本发明第一方面的基于帧内预编码做深度预测的过程中,第一阈值和第二阈值的设置在一定的范围内上下浮动,本发明不对具体数值做限制。

如图6所示,图6为本发明第一方面一些实施例中帧间预编码的流程图。帧间预编码的过程包括步骤s610、步骤s620、步骤s630以及步骤s640。步骤s610:将输入的编码帧分割为若干个8*8的预编码单元;步骤s620:生成各编码单元运动向量的mvc(motionvectorcandidate,运动向量候选);步骤s630:遍历mvc中的运动向量,在参考帧中找到对应的编码单元并求出最小的sad对应的运动向量,即mvp(motionvectorpredict,运动向量预测值);步骤s640:以mvp为中心、sad为评价指标进行搜索,得到最终的运动向量。

可以理解的是,在帧间预编码的过程中,输入一帧编码帧,与一帧参考帧。将编码帧分割为数个8*8的预编码单元,并对各个预编码单元做运动估计,得到最终的运动向量。在基于帧间预编码做深度预测的过程中,第一阈值设置为8,第二阈值设置为16。如果方差值小于8,说明当前编码单元包含的预编码单元的运动向量差别较小,编码单元中各部分的运动信息基本一致,不对当前编码单元进行分割。如果方差值大于16,表明当前编码单元各个子块的运动状态不一致,需要进一步分割,跳过当前层的运动估计过程。这样的范围设置,使得在深度预测的过程中能够以较高效率对编码单元进行处理,并快速对当前层是否为最优深度做出判断。可以理解的是,本发明第一方面的基于帧间预编码做深度预测的过程中,第一阈值和第二阈值的设置在一定的范围内上下浮动,本发明不对具体数值做限制。

需要说明的是,在帧间预编码做运动估计的过程中,首先生成运动向量的mvc,如果当前预编码单元的下方和右方存在已完成预编码的预编码单元,则将这些预编码单元的运动向量添加到mvc中,如果没有已完成预编码的预编码单元,则将运动向量(0,0)添加到mvc中。第二步是在mvc中找出mvp,遍历mvc中的运动向量,并在参考帧中找出对应的编码单元求出satd,其中对应sad最小的运动向量即为mvp。第三步是以mvp为中心进行六边形搜索,搜索范围为16。在进行完一次完整的六边形搜索后,在搜索范围中不断做半六边形搜索,最后再做两次距离为1的菱形搜索,得到最优的运动向量。使用最优的运动向量来进行后续的深度预测,在避免重复迭代的同时,提高了预测的准确率。

如图7所示,图7为本发明第二方面一些实施例的基于帧内预编码的快速帧内方向预测方法的流程图。快速帧内方向预测方法在帧内预编码的基础上完成,还包括步骤s710、步骤s720以及步骤s730。步骤s710:得出最优深度后,获取当前编码单元包含的预编码单元帧内预测模式的平均值;步骤s720:在平均值及其二距邻的五种帧内预测模式中找出n个候选模式;步骤s730:对该n个候选模式以及mpm列表中的模式计算完整的率失真代价,得出最终的模式。

需要说明的是,为了更快更准确的在67个帧内预测模式中找出最佳预测模式,vvc检测装置设置了一个长度为6的mpm列表。mpm列表的构建主要来自三个方面:默认的帧内模式、相邻块的帧内模式和衍生的帧内模式。mpm列表是基于左邻块和上邻块的帧内模式构建的。

可以理解是,在基于帧内预编码的快速帧内方向预测过程中,由之前描述的基于帧内预编码的深度预测过程中得到最优深度后,计算得出当前编码单元中预编码单元的帧内预测模式的平均值,在平均值及其二距邻的五种帧内预测模式中找出n个候选模式,并对该n个候选模式以及mpm列表中的模式计算完整的率失真代价,得出最终的预测模式,从而加速帧内模式的选择。

需要说明的是,在平均值及其二距邻的五种帧内预测模式中找出n个候选模式,其中n的个数取决于编码单元的尺寸,如表1所示。

表1不同尺寸编码单元对应的n的取值

为了使本发明的技术效果表达得更加清晰,选取了9个具有代表性特征的视频序列,输入比特深度均为8比特,分辨率从2560x1600到416x240不等,每一种序列均测试了40帧。9种测试序列的基本信息如表2所示。

表2测试序列基本信息

可以理解的是,编码性能主要由bdbr(bjotegaarddeltabitrate,增量比特率)和ts两个指标进行评估,并以原始的vtm7.0检测装置为基准评估算法的编码性能。其中bdbr表示在同样的客观质量下两种编码方法的码率差值,有同一段视频在四个qp(quantitativeparameters,量化参数)取值下(22,27,32,37)分别编码并计算码率和psnr(peaksignaltonoiseratio,峰值信噪比)所得到。bdbr能够综合反映视频的码率和质量,其值越大说明所提出的快速算法相比原检测装置码率更高,算法的压缩性能越差。ts则用于衡量快速算法在原检测装置的基础上对编码时间的缩减程度,其计算方式如公式(1-1)所示:

其中,tp是使用算法后的总编码时间,tp是原检测装置vtm7.0的总编码时间。

如表3所示,表3展示了基于帧内预编码模块的深度预测算法结合快速帧内方向预测算法的测试结果,从平均意义上看,本方法使y,u,v分量的bdbr分别增加了2.69%,1.81%,1.63%,说明在图象质量不变的情况下各分量的码率有一定程度上的增加,但影响不是很大,而编码时间相比原编码器减少了25.02%,明显降低了编码的复杂程度,减少了编码时间。

表3基于帧内预编码模块的深度预测算法结合快速帧内方向预测算法的测试结果

表4展示了基于帧间预编码模块的深度预测算法的测试结果,从平均意义上看,本方法使y,u,v分量的bdbr分别增加了1.62%,1.68%,1.95%,说明在图象质量不变的情况下各分量码率的增加可以忽略不计,同时编码时间相比原编码器减少了21.31%,明显降低了编码的复杂程度,减少了编码时间。

表4基于帧间预编码模块的深度预测算法的测试结果

第三方面,本发明还提出了一种检测装置,能够实现上述第一方面中的基于预编码的深度预测方法以及第二方面中的基于预编码的快速帧内方向预测方法。在检测装置进行完所有编码单元的帧内预测和帧间预测之前,决策出每个编码单元的最优深度并减少在搜索最优预测模式时需要的计算次数,同时在非最优深度中跳过当前层的帧内预测或运动估计,从而降低编码复杂度,减少编码时间。

上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下,作出各种变化。

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