基于avs3编码历史信息的cu块划分方法、装置及介质
技术领域
1.本发明涉及视频编码技术领域,尤其是一种基于avs3编码历史信息的cu块划分方法、计算机装置和存储介质。
背景技术:2.随着网络技术的发展,通过视频传播信息的途径越来越广泛,对视频编码技术的要求也在提高。例如,avs3相比avs2虽然具有更高的编码质量,但是时间复杂度增加了一倍左右,在其他条件不变的情况下将导致编码速度下降,不利于视频编码新技术的应用。
3.术语解释:
4.视频编码:视频编码是压缩技术的一种,通过编码方法在尽量保留质量的前提下,将视频源文件压缩成比特流文件,可以节省视频的存储空间和传输带宽。
5.视频解码:视频解码是视频编码相对应的解压缩过程,对比特流文件进行解码可以得到视频。
6.avs3:第三代音视频编解码技术标准(the third generation of audio video coding standard)是国内最新的视频编解码标准,仍采用了基于块的混合编码框架,相比上一代avs2有了30%的性能提升。
7.块划分:编码过程中,avs3以块为单位完成预测、变换、量化、熵编码等模块,包括编码单元(coding unit,cu)、预测单元(prediction unit,pu)、变换单元(transform unit,tu)。视频中的每一帧图像分为若干个128*128的lcu(largest coding unit),向更小的cu递归遍历所有可能的划分模式,选择率失真(rate distoration,rd)代价最小的模式为最优划分模式。
8.划分模式:avs3共有6种划分模式,分别是不划分(no split)、垂直二叉树划分(vertical binary tree,bv)、水平二叉树划分(horizontal binary tree,bh)、垂直扩展四叉树划分(vertical extended quad tree,eqtv)、水平扩展四叉树划分(horizonta extended quad tree,eqth)、四叉树划分(quad tree,qt)。图1为四叉树划分(qt)、扩展四叉树划分(eqt)和二叉树划分(bt)的示例。
9.帧内预测:利用像素的空域相关性,将上方和左侧相邻的像素(图二的a-e区域)作为参考像素对当前像素进行预测,预测值和原始值的差值即残差和编码参数信息一起完成编码、传输、解码等过程。预测的准确度大大关系到压缩性能。avs3共有66种帧内预测模式,包络非角度模式(0-2)和角度模式(3-65),多样的角度模式细化了预测方向,提高了对视频方向性纹理的敏感度,对纹理丰富区域的处理更加有利。
10.帧内衍生树:(intra derived tree,intra dt):为了提高预测精度,在进行预测时,会将cu划分成2个或者4个pu进行预测,选择最优的pu划分方式。国外最新视频编解码标准(versatile video coding,vvc)中的帧内子块划分(intra subpartition,isp)与avs3中的intra dt类似。图2为帧内预测的参考像素分布示意图,图3为帧内预测模式示意图。
技术实现要素:11.针对目前的avs3视频编码技术存在的编码算法复杂等至少一个技术问题,本发明的目的在于提供一种基于avs3编码历史信息的cu块划分方法、计算机装置和存储介质。
12.一方面,本发明实施例包括一种基于avs3编码历史信息的cu块划分方法,包括:
13.从候选划分模式中选择出最优划分模式;所述候选划分模式包括被跳过的划分模式之外的其他划分模式;
14.以所述最优划分模式对待划分cu块进行划分;
15.其中,对于首次编码过程,通过以下步骤确定要跳过的划分模式:
16.获取所述待划分cu块的帧内预测角度;
17.当所述帧内预测角度为垂直方向,则跳过水平划分模式,反之,则跳过垂直划分模式。
18.进一步地,对于非首次编码过程,通过以下步骤确定要跳过的划分模式:
19.获取在所述首次编码过程中选择出的最优划分模式和帧内预测角度;
20.当所述首次编码过程中选择出的最优划分模式为不划分模式,则跳过所有划分模式,反之,则跳过与所述首次编码过程中选择出的最优划分模式和帧内预测角度相反方向的划分模式。
21.进一步地,所述相反方向的划分模式,为与所述首次编码过程中选择出的最优划分模式和帧内预测角度方向不同、树型分支数相同的划分模式。
22.进一步地,对于首次编码过程,在选择出最优划分模式之后,记录所选择的最优划分模式。
23.进一步地,对于首次编码过程和非首次编码过程,还通过以下步骤确定要跳过的划分模式:
24.确定所述待划分cu块的父cu块;
25.当所述父cu块被划分时选择的划分模式为扩展四叉树划分模式,则跳过扩展四叉树划分模式。
26.进一步地,所述扩展四叉树划分模式包括水平扩展四叉树划分模式和垂直扩展四叉树划分模式。
27.进一步地,所述从候选划分模式中选择出最优划分模式,包括:
28.对所述候选划分模式中的各种划分模式分别计算率失真代价;
29.以对应所述率失真代价最小的划分模式为所述最优划分模式。
30.进一步地,所述获取所述待划分cu块的帧内预测角度,包括:
31.对所述待划分cu块进行帧内预测,获得所述帧内预测角度。
32.另一方面,本发明实施例还包括一种计算机装置,包括存储器和处理器,所述存储器用于存储至少一个程序,所述处理器用于加载所述至少一个程序以执行实施例中的基于avs3编码历史信息的cu块划分方法。
33.另一方面,本发明实施例还包括一种存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由处理器执行时用于执行实施例中的基于avs3编码历史信息的cu块划分方法。
34.本发明的有益效果是:实施例中的基于avs3编码历史信息的cu块划分方法,利用
统计发现的avs3编码器的历史性与重复性,基于帧内预测角度ipm、首次编码cu最优划分方式、父cu划分模式等编码历史信息进行cu块快速划分在编码速度和编码质量之间取得了平衡,不需要使用复杂的纹理检测算法,复杂度很低;通过直接剔除不合适的划分模式,避免了对选择可能性较低的划分模式进行率失真代价计算的过程,实现方法合理。剪枝算法的准确度高,提前判断要跳过的划分模式基本上都是最终不太可能会被选择为最优的划分模式,避免了bd-rate飙升。
附图说明
35.图1为四叉树划分(qt)、扩展四叉树划分(eqt)和二叉树划分(bt)的示例;
36.图2为帧内预测的参考像素分布示意图;
37.图3为帧内预测模式示意图;
38.图4为实施例中基于avs3编码历史信息的cu块划分方法流程图;
39.图5(a)、图5(b)、图6(a)和图6(b)为视频编码过程中的同位块的示意图;
40.图7为city视频的同位块分布情况示意图。
具体实施方式
41.本实施例中,参照图4,基于avs3编码历史信息的cu块划分方法包括以下步骤:
42.s1.确定待划分cu块的父cu块;
43.s2.当父cu块被划分时选择的划分模式为扩展四叉树划分模式,则跳过扩展四叉树划分模式;
44.对于首次编码过程,通过以下步骤s3-s4确定要跳过的划分模式:
45.s3.获取待划分cu块的帧内预测角度;
46.s4.当帧内预测角度为垂直方向,则跳过水平划分模式,反之,则跳过垂直划分模式;
47.对于非首次编码过程,通过以下步骤s5-s6确定要跳过的划分模式:
48.s5.获取在首次编码过程中选择出的最优划分模式;
49.s6.当首次编码过程中选择出的最优划分模式为不划分模式,则跳过所有划分模式,反之,则跳过与首次编码过程中选择出的最优划分模式和帧内预测角度相反方向的划分模式;
50.s7.从候选划分模式中选择出最优划分模式;候选划分模式包括被跳过的划分模式之外的其他划分模式;
51.s8.以最优划分模式对待划分cu块进行划分。
52.步骤s1中,只要待划分cu块不是128
×
128大小的lcu,无论是否首次编码过程,都存在与待划分cu块对应的父cu块。
53.步骤s2中,可以通过读取划分记录,确定父cu块被划分时,所使用的划分模式。如果父cu块被划分时所使用的划分模式为水平扩展四叉树划分模式和垂直扩展四叉树划分模式等扩展四叉树划分模式,那么就跳过扩展四叉树划分模式,也就是不再对水平扩展四叉树划分模式和垂直扩展四叉树划分模式进行尝试,提前完成对这两种模式的终止判断。如果父cu块被划分时所使用的划分模式不是扩展四叉树划分模式,那么可以不跳过扩展四
叉树划分模式。
54.本实施例中,如果对待划分cu块执行步骤s1-s2时是属于首次编码过程,那么就执行步骤s3-s4而不执行步骤s5-s6。
55.步骤s3中,通过对待划分cu块进行帧内预测,获得帧内预测角度ipm。
56.步骤s4中,判断帧内预测角度ipm的方向。如果帧内预测角度ipm为垂直方向,则跳过水平划分模式,反之,也就是如果帧内预测角度ipm为水平方向,则跳过垂直划分模式。
57.具体地,在执行步骤s4时,如果帧内预测角度ipm为垂直方向,可以跳过水平二叉树划分模式和水平扩展四叉树划分模式等水平划分模式;如果帧内预测角度ipm为水平方向,可以跳过垂直二叉树划分模式和垂直扩展四叉树划分模式等垂直划分模式。
58.通过执行步骤s3-s4,跳过了某些划分模式,那么未被跳过的划分模式将成为候选划分模式的一部分,也就是所得到的候选划分模式是一些未被跳过的划分模式的集合。步骤s7中,计算候选划分模式中的各种划分模式分别计算率失真代价rdo,选择计算率失真代价最小的那个划分模式作为最优划分模式。
59.对于首次编码过程,在选择出最优划分模式之后,记录所选择的最优划分模式(本实施例中记为mode1),在以后的编码过程中,将会调出首次编码过程所选择的最优划分模式。
60.本实施例中,如果对待划分cu块执行步骤s1-s2时不是属于首次编码过程,那么就执行步骤s5-s6而不执行步骤s3-s4。
61.步骤s5中,读取出在首次编码过程中选择出的最优划分模式mode1和帧内预测角度ipm。步骤s6中,判断首次编码过程中选择出的最优划分模式mode1具体为何种划分模式,如果mode1为不划分模式,就跳过所有划分模式,相当于所获得的候选划分模式中,只有不划分模式;反之,也就是mode1不是不划分模式,则跳过与mode1和帧内预测角度ipm相反方向的划分模式。
62.步骤s6中,当mode1不是不划分模式,跳过与mode1和帧内预测角度ipm相反方向的划分模式,其中的“相反方向的划分模式”可以是与mode1方向不同、树型分支数相同的划分模式。例如,如果帧内预测角度ipm为水平方向且mode1为水平二叉树划分模式,那么就跳过垂直二叉树划分模式和垂直扩展四叉树划分模式;如果帧内预测角度ipm为垂直方向且mode1为垂直二叉树划分模式,那么就跳过水平二叉树划分模式和水平扩展四叉树划分模式;如果帧内预测角度ipm为水平方向且mode1为水平扩展四叉树划分模式,那么就跳过垂直二叉树划分模式和垂直扩展四叉树划分模式;如果帧内预测角度ipm为垂直方向且mode1为垂直扩展四叉树划分模式,那么就跳过水平二叉树划分模式和水平扩展四叉树划分模式。
63.通过执行步骤s5-s6,跳过了某些划分模式,那么未被跳过的划分模式将成为候选划分模式的一部分,也就是所得到的候选划分模式是一些未被跳过的划分模式的集合。如果步骤s6中跳过了所以划分模式,那么所得到的候选划分模式可以看做是不划分模式。步骤s7中,计算候选划分模式中的各种划分模式分别计算率失真代价rdo,选择计算率失真代价最小的那个划分模式作为最优划分模式。如果步骤s6中跳过了所以划分模式,那么所得到的候选划分模式可以看做是不划分模式,这样步骤s7中就会选择不划分模式作为最优划分模式。
64.步骤s8中,以步骤s7选择出的最优划分模式对待划分cu块进行划分。如果是以不划分模式作为最优划分模式,那么步骤s8中则可以不对待划分cu块进行划分。
65.本实施例中,结合视频编码过程的数据统计结果,说明步骤s1-s8的原理。
66.通过对视频编码过程进行数据统计,可以发现以下特点:
67.(1)编码器在尝试寻找最优划分模式的过程中,会依次尝试不划分、垂直二叉树划分、水平二叉树划分、垂直扩展四叉树划分、水平扩展四叉树划分和四叉树划分。如果不满足编码器的尺寸约束条件会跳过对某些划分模式的尝试。这种尝试的过程会产生成百上千种划分组合,会对相同位置和大小的cu块(同位块)重复编码,如图5(a)所示,一个cu被四叉树划分后得到4个子块,如图5(b)所示,同样的cu先被水平二叉树划分后得到上下2个子块,上子块被垂直二叉树划分后得到左右2个子块,这两种划分路径都会对左上角的星标子块进行相似的编码。同样地,图6(a)和图6(b)中标星号的cu块也是同位块。这一部分的编码过程冗余正是cu块划分快速算法的目的所在。
68.(2)参照图7,统计发现,以视频编码中常用作案例的city视频为例,82.76%的cu块会经历至少2次编码,61.98%的cu块会经过至少3次编码,同位块的存在比例是惊人的。
69.(3)统计发现,帧内预测得到的帧内预测角度ipm蕴含着cu的纹理方向信息,首次编码的cu需要使得划分模式更适应cu的纹理内容,两者依据一致,存在强相关性。如果ipm为12或者42与45之间的角度,从表1可以看到,ipm非常接近垂直方向,大部分首次编码的cu都会选择跳过水平方向的划分模式,反方向同理,剪枝算法的准确率在95%以上,精准性较高。
70.表1首次编码的cu的ipm与划分模式选择的关系
[0071][0072]
(4)统计发现,首次编码后的cu会确定一个最优划分模式,这个划分模式在编码比特数和失真率之间实现最优平衡,最适合cu的纹理分布情况。结合帧内预测角度ipm和首次编码cu获得的最优划分模式mode1对获取cu纹理方向的指导性更强,当同位块又要经历一次编码过程时,可以用这两项信息来进一步简化划分模式选择过程。如果首次编码时获得的ipm和mode1都是同一方向的,说明cu的纹理方向基本上可以确定为此方向。参照表2,同位块之前已经经历了首次编码,在非首次编码时可以直接使用ipm和mode1指明的方向,跳过与mode1相反方向的划分模式。同时还发现如果mode1选择了不划分,说明cu的像素分布比较平坦,可以不再继续划分,非首次编码的同位块选择跳过划分的概率非常高。
[0073]
表2首次编码的ipm和划分模式mode1与划分模式选择的关系
[0074][0075]
(5)统计发现,如果当前cu的父cu选择了扩展四叉树划分模式,当前cu继续选择扩展四叉树划分模式的概率为2.22%。可以根据父cu的划分模式对当前cu的候选划分模式列表进行筛选。
[0076]
以上分析中,(1)-(2)说明了当前编码器存在的编码冗余和数据冗余问题,体现了编码过程的历史性和重复性,这属于本发明的出发点。(3)-(5)说明了本发明的数据统计依据,准确率在95%以上的剪枝策略有利于实现更高的算法性能。
[0077]
本实施例中的基于avs3编码历史信息的cu块划分方法正是基于上述(1)-(5)的分析结果提出的。其利用统计发现的avs3编码器的历史性与重复性,基于帧内预测角度ipm、首次编码cu最优划分方式、父cu划分模式等编码历史信息进行cu块快速划分在编码速度和编码质量之间取得了平衡。本实施例中的基于编码历史信息的cu块快速划分算法,不需要使用复杂的纹理检测算法,复杂度很低。直接剔除不合适的划分模式,避免了对选择可能性较低的划分模式进行率失真代价计算的过程,实现方法合理。剪枝算法的准确度高,提前判断要跳过的划分模式基本上都是最终不太可能会被选择为最优的划分模式,避免了bd-rate飙升。
[0078]
本发明可以在avs3的参考软件hpm10.0上实现。以hpm10.0作为算法的参照组,本发明按照avs3发布的通用测试条件进行了配置,在all intra(ai)模式下对通用测试序列进行了测试,包括通甲类、通乙类和通丙类,以27、32、38、45为量化参数qp。视频压缩常使用的客观度量为bd-psnr和bd-rate,前者表征视频图像质量,后者表征码率水平。bd-rate为负值时,说明相同psnr条件下,码率减少,性能提高;正值则说明码率增加,性能下降。本发明主要面向cu块划分快速算法,因此以时间节省率(time saving,ts)和bd-rate来衡量优劣。其中,时间节省率ts可以通过以下公式计算,time
prop
为本发明提出的算法所消耗的编码时间,time
base
为avs3中参考软件hpm10.0所消耗的编码时间,本发明的目标是在time
base
基本以备avs3标准和硬件所限定的情况下,尽可能减少time
prop
,提高时间节省率ts。
[0079][0080]
本发明的实验结果如表3所示。可以看到,本发明在仅带来0.56%的bd-rate上升的情况下,节约了24.81%的时间,归一化编码时间节省率超过了50,这意味着如果bd-rate上升了1%,可以整体平均节省50%的编码时间,基于avs3历史编码信息的cu块划分快速算法使得avs3的编码器获得了明显的性能提升。从实验数据可知,不同序列之间存在一定的效果差异,归一化时间节省率分布在40和80之间,bd-rate上升少的序列一般节省的编码时间也较少,总体而言都在平均值附近波动,除了parkrunning3和daylightroad2,parkrunning3的bd-rate上升最小,仅为0.16%,daylightroad2的bd-rate上升最大,高至1.10%。这一现象的主要原因是不同视频序列的纹理存在差异,daylightroad2序列本身存在大片的纯色背景,选择不划分的cu块数量多,本发明中的算法对这些cu块同样进行了评估,但是因为本身可被跳过的划分模式有限,最后只能空增了bd-rate,引入了一小部分可以接受的误差。而parkrunning3序列本身纹理丰富,划分深度大的cu块数量多,算法可发挥的空间大,相比daylightroad2取得的效果更好。
[0081]
表3实验结果
[0082][0083][0084]
可以通过编写执行本实施例中的基于avs3编码历史信息的cu块划分方法的计算机程序,将该计算机程序写入至计算机装置或者存储介质中,当计算机程序被读取出来运行时,执行本实施例中的基于avs3编码历史信息的cu块划分方法,从而实现与实施例中的
基于avs3编码历史信息的cu块划分方法相同的技术效果。
[0085]
需要说明的是,如无特殊说明,当某一特征被称为“固定”、“连接”在另一个特征,它可以直接固定、连接在另一个特征上,也可以间接地固定、连接在另一个特征上。此外,本公开中所使用的上、下、左、右等描述仅仅是相对于附图中本公开各组成部分的相互位置关系来说的。在本公开中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本实施例所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本实施例说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本发明。本实施例所使用的术语“和/或”包括一个或多个相关的所列项目的任意的组合。
[0086]
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种元件,但这些元件不应限于这些术语。这些术语仅用来将同一类型的元件彼此区分开。例如,在不脱离本公开范围的情况下,第一元件也可以被称为第二元件,类似地,第二元件也可以被称为第一元件。本实施例所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本发明的实施例,并且除非另外要求,否则不会对本发明的范围施加限制。
[0087]
应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
[0088]
此外,可按任何合适的顺序来执行本实施例描述的过程的操作,除非本实施例另外指示或以其他方式明显地与上下文矛盾。本实施例描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
[0089]
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、ram、rom等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本实施例所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。
[0090]
计算机程序能够应用于输入数据以执行本实施例所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生
的物理和有形对象的特定视觉描绘。
[0091]
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。