CN109729351B - 一种低复杂度配置下的hevc快速模式选择方法 - Google Patents

一种低复杂度配置下的hevc快速模式选择方法 Download PDF

Info

Publication number
CN109729351B
CN109729351B CN201811551309.4A CN201811551309A CN109729351B CN 109729351 B CN109729351 B CN 109729351B CN 201811551309 A CN201811551309 A CN 201811551309A CN 109729351 B CN109729351 B CN 109729351B
Authority
CN
China
Prior art keywords
mode
coding unit
current coding
merge
current
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201811551309.4A
Other languages
English (en)
Other versions
CN109729351A (zh
Inventor
牟凡
张昊
刘献如
李明娟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Central South University
Original Assignee
Central South University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Central South University filed Critical Central South University
Priority to CN201811551309.4A priority Critical patent/CN109729351B/zh
Publication of CN109729351A publication Critical patent/CN109729351A/zh
Application granted granted Critical
Publication of CN109729351B publication Critical patent/CN109729351B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种低复杂度配置下的HEVC快速模式选择方法,首先利用决策树得到初始编码模式(MERGE模式或者2Nx2N模式),然后根据初始模式及相应的跳过算法跳过不必要的2Nx2N模式或MERGE模式;根据低复杂度配置下的HEVC的编码特征采取自适应编码顺序算法,并根据已编码模式判断是否跳过后续不必要的模式选择过程,在保证视频主观质量下降可忽略不计的情况下,降低编码器的计算复杂度,减少编码时间,提高编码效率。

Description

一种低复杂度配置下的HEVC快速模式选择方法
技术领域
本发明属于视频编码领域,特别涉及一种低复杂度配置下的HEVC快速模式选择方法。
背景技术
HEVC是视频编码标准发展历程中非常具有革命性的一代,它由MPEG和VCEG组织于2012年成立的视频联合协作小组(JCT-VC)所研发。HEVC在性能上相较于H.264更加优秀,它在同等视频质量下其压缩率可达到H.264的2倍。与H.264相比起来HEVC采用了例如图像可划分为互不重叠的树形编码单元CTU,一个CTU又能被划分为若干个编码单元CU,如图2所示,这种方法被称为基于四叉树的循环分层结构;而CU又可作为PU树和TU树的根节点;TU突破了原有的变换尺寸限制,可支持大小为4×4~32×32的编码变换;解码循环中的样点自适应补偿技术,在去方块滤波之后对重建样本进行滤波,以此改善解码序列的主观质量和压缩效率等。但同时这些新型编码结构和编码工具大幅度提高了编码器的计算复杂度,不利于该视频编码标准的产业化推广。
HEVC虽然在各方面表现优秀,但是体现在代码上,官方给出了HM,它在编码时需要耗费大量时间,要做到实时编码并实现产业化推广还很困难。因此民间实现了一种忽略了HEVC一些标准细节的低复杂度设置的HEVC编码器——x265,他是HEVC的另外一种开源编码格式,其开头的"X"意思是"software",是使用CPU软解码的一种视频格式。X265支持多线程且编码速度相当快,与HM相比起来,在相同的质量损失下,其速度是HM的10~100倍。所以,就目前的情况来看,低复杂度的HEVC编码器就有更广泛的应用性。因此,对低复杂度的HEVC编码器的优化将大大的有利于HEVC视频编码标准的产业化推广。
低复杂度配置下的HEVC,每个视频序列会被分为GOP组(由几帧组成的可独立编解码的基本单元),每一帧又会被分为一系列的片(编码的独立单元)。一片又会被划分为若干个CTU,一个CTU由一个亮度CTB和2个色度CTB以及附加的语法元素组成。其次,CTU被划分为CU,它与CTU的构成类似,也由一个亮度编码块CB和两个色度编码块CB和附加的语法元素组成。CU是HEVC帧内/帧间预测、量化变换以及熵编码等环节共享的基本单位,可支持的编码尺寸最大为64×64,最小为8×8,编码器可以根据不同的图片内容、图片大小以及应用需求合理地选择CU的尺寸,以此获得较大程度的优化。另外,CU以CTU作为根节点,而CU又可作为PU树和TU树的根节点。
预测单元PU规定了编码单元的所有预测模式,一切与预测有关的信息都定义在预测单元部分。比如,帧内预测的方向、帧间预测的分割方式、运动矢量预测,以及帧间预测参考图像索引号都属于预测单元的范畴。对于图像的帧内预测,预测单元PU的尺寸与所属的编码单元CU相同,只有当编码单元CU在最低层即0层时,才能被划分为N*N的预测单元PU。因此,PU尺寸范围为4×4到64×64。对于图像的帧间预测,预测单元的分割模式有8种,4种对称模式(2N×2N、2N×N、N×2N、N×N)和4种非对称模式(2N×nU、2N×nD、nL×2N、nR×2N),其中2N×nU和2N×nD分别以上下1:3、3:1的比率划分,nL×2N和nR×2N分别以左右1:3、3:1的比率划分。SKIP模式是MERGE模式的一种,MERGE模式只需要对运动参数集索引进行编码,而SKIP模式除此之外,也不需要对残差信息进行编码。从预测单元PU中得到的预测残差经过适当的变换,使图像能量在空间域的分散分布转为在变换域的集中分布,以达到去除空间冗余的目的。
变换单元TU是独立完成变换和量化的基本单元,其尺寸也是灵活变化的。它的大小依赖于CU模式,在一个CU内,允许TU跨越多个PU,以四叉树的形式递归划分。对于一个2N×2N的CU,有一个标志位决定其是否划分为4个N×N的TU。根据预测残差的局部变化特性,TU可以自适应地选择最优的模式。大块的TU模式能够将能量更好地集中,小块的TU模式能够保存更多的图像细节。这种灵活的分割结构,可以使变换后的残差能量得到充分压缩,以进一步提高编码增益。
对于正常配置的HEVC,编码时需要遍历当前CU所有的PU划分模式,即8种划分模式,通过率失真优化(RDO)找到具有最小率失真代价的一个,以此来判定当前CU是否需要划分为PU以及如何划分。这意味着率失真模型(RDO)需要评估CTU的所有编码单元CU,每一个编码单元CU的预测单元PU和变换单元TU,此外,在进行帧间预测时,每一种预测单元划分模式都需要进行运动估计,最终,为了达到最佳的编码性能所需的工作量是巨大的,最后获得最佳划分模式也是相当耗时的。
发明内容
本发明的目的在于提供一种针对低复杂度配置下的HEVC的基于自适应编码顺序的帧间快速算法,首先利用决策树得到初始编码模式(MERGE模式或者2Nx2N模式),然后根据初始模式及相应的跳过算法跳过不必要的2Nx2N模式或MERGE模式。
一种低复杂度配置下的HEVC快速模式选择方法,包括以下步骤:
步骤一:获取当前编码单元的时空相邻编码单元,1≤i≤8;
其中,CU1、CU2、CU3、CU4分别代表当前编码单元左方、左上方、上方、右上方的编码单元,CU5、CU6分别代表当前编码单元前向参考帧和后向参考帧的同位编码单元,CU7代表当前编码单元的父CU,CU8代表当前编码单元的父CU的父CU;CU表示编码单元;
步骤二:获取当前编码单元的各时空相邻编码单元的MERGE模式标志位
Figure GDA0002465848470000031
并对所述标志位进行赋值;
Figure GDA0002465848470000032
步骤三:计算当前编码单元的纹理复杂度Avg和时空相邻块中选择SKIP模式为最优模式的比例MC;
Figure GDA0002465848470000033
Figure GDA0002465848470000034
其中,W、H代表当前编码单元的宽和长,m_grad[i][j]代表当前编码单元中坐标为i,j点像素的梯度值,如果CUi存在,则ki为1,否则为0;如果CUi最优模式为SKIP模式,则wi为1,否则为0;αi则代表CU-weight factor,根据相邻CU与当前CU的关系分配,相邻CU与当前CU的关联越强,权值越大,如下表所示,
Index(i)of CU[i] 1 2 3 4 5 6 7 8
α<sub>i</sub> 0.2 0.1 0.2 0.1 0.05 0.05 0.2 0.1
m_grad[i][j]=abs(gx(i,j))+abs(gy(i,j))
gx(i,j)=(f(i-1,j+1)-f(i+1,j+1))+2*(f(i-1,j)-f(i+1,j))+(f(i-1,j-1)-f(i+1,j-1))
gy(i,j)=(f(i-1,j-1)-f(i-1,j+1))+2*(f(i,j-1)-f(i,j+1))+(f(i+1,j—1)-f(i+1,j+1))
步骤四:依次以多个历史视频序列中的每个编码单元的纹理复杂度、各时空相邻编码单元的MERGE模式标志位
Figure GDA0002465848470000035
和时空相邻编码单元中选择SKIP模式为最优模式的比例MC作为输入数据,编码单元的最优模式作为输出数据,输入WEKA决策树进行训练,获得决策树Decision Tree;
步骤五:初始化标志位,b2N_First、bSkip_2N、issimple均赋值为false;
b2N_First为编码顺序标志位、bSkip_2N为跳过2Nx2N模式标志位、issimple为当前编码单元CU是否为简单块标志位;
步骤六:对待编码的视频序列中的当前编码单元按照步骤一至步骤三,获取对应的CUi
Figure GDA0002465848470000041
MC和Avg,并将其输入至步骤四获得的决策树Decision Tree,得到待编码的当前编码单元的初始最优模式;
步骤七:若决策树Decision Tree输出的结果为2Nx2N模式,则赋值b2N_First=true,帧间预测模式依次按照2Nx2N模式、MERGE模式、帧内模式进行遍历;否则赋值b2N_First=false,帧间预测模式依次按照MERGE模式、2Nx2N模式、帧内模式进行遍历,实现当前编码单元的HEVC快速模式选择。
进一步的,依据当前编码单元的激烈程度,为当前编码单元选择执行模式,具体过程如下:
步骤A:计算当前编码单元的运动剧烈程度Avgmv
Figure GDA0002465848470000042
其中,N代表当前编码单元CU的时空相邻块的个数为8,cu[i].mvx和cu[i].mvy分别代表CUi的运动矢量的水平分量和垂直分量,mv_num代表{CUi}中存在运动矢量的CU个数;
步骤B:判断Avgmv<THmv是否成立,若成立,则issimple=true,否则,issimple=false;
其中,THmv表示激烈程度阈值,取值范围为10-50;
步骤C:确定当前编码单元CU的各时空相邻块的SKIP模式标志位
Figure GDA0002465848470000048
Figure GDA0002465848470000043
步骤D:基于时空相关性原理,对编码顺序标志位和跳过2Nx2N模式标志位进行赋值;
Figure GDA0002465848470000044
Figure GDA0002465848470000045
Figure GDA0002465848470000046
Figure GDA0002465848470000047
MC<THmc (5)
issimple=false (6)
若式子(6)成立,且式子(1)、(2)、(3)、(4)及(5)中任一个成立,则b2N_First=false,bSkip_2N=true,否则,bSkip_2N=false;
步骤E:判断公式b2N_First=true是否成立,若是,则进入步骤F,否则转到步骤J;
步骤F:进行当前编码单元的2Nx2N模式,并计算当前编码单元在2Nx2N模式下的SATD,即SATD2N×2N,继续下一步骤;
其中,SATD为一种视频残差信号大小的衡量标准;
步骤G:计算当前编码单元在使用MERGE候选列表中最佳匹配项时的SATD,即SATDmerge,继续下一步骤;
步骤H:判断
Figure GDA0002465848470000051
是否成立,若成立,则转到步骤N,否则转到步骤I;
其中,
Figure GDA0002465848470000052
Figure GDA0002465848470000053
代表已编码过的CU中最优模式选择MERGE模式的SATD2N×2N/SATDmerge的均值,
Figure GDA0002465848470000054
则代表已编码过的CU中最优模式选择2Nx2N模式的SATD2N×2N/SATDmerge的均值;
Figure GDA0002465848470000055
Figure GDA0002465848470000056
Figure GDA0002465848470000057
代表已编码过的CU中最优模式选择MERGE模式的SATD2N×2N/SATDmerge的总和,
Figure GDA0002465848470000058
代表已编码过的CU中最优模式选择2Nx2N模式的SATD2N×2N/SATDmerge的总和,
Figure GDA0002465848470000059
Figure GDA00024658484700000510
分别代表已编码过的CU中最优模式选择MERGE模式的CU个数和选择2Nx2N模式的CU个数;若
Figure GDA00024658484700000511
Figure GDA00024658484700000512
任一一个为0,则将THsatd设置为初始值1;
步骤I:进行当前编码单元的MERGE模式,然后转到步骤N;
步骤J:进行当前编码单元的MERGE模式,然后继续下一步骤;
步骤K:判断公式bSkip_2N=true是否成立,若是则转到步骤N,否则转到步骤L;
步骤L:获取当前编码单元CU的最佳模式,若最佳模式为SKIP模式、MERGE模式候选列表不为空,且issimple=true,则转到步骤N,否则转到步骤M;
步骤M:进行当前编码单元的2Nx2N模式,然后继续下一步骤;
步骤N:进行当前编码单元的Intra模式,实现当前编码单元的HEVC快速模式选择。
通过区分出运动剧烈的CU和运动平缓的CU,快速选择指定模式。
进一步的,所述输入WEKA决策树进行训练,获得决策树Decision Tree的具体过程如下:
首先,对MC和Avg进行等频离散化;其次,使用CfsSubsetEval属性评估器和BestFirst搜索方法对{CUi}、MC、Avg进行筛选,然后,选择WEKA中的J48工具进行训练,获得决策树Decision Tree。
进一步的,所述属性评估器还包括InfoGainAttributeEval,GainRatioAttributeEval。
进一步的,所述搜索方法还包括Ranker、GreadyStepWise。
WEKA的全名是怀卡托智能分析环境(Waikato Environment for KnowledgeAnalysis),同时weka也是新西兰的一种鸟名,而WEKA的主要开发者来自新西兰。WEKA作为一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理,分类,回归、聚类、关联规则以及在新的交互式界面上的可视化。
大部分的数据都以数据库表和数据文件的形式存在,和很多电子表格或数据分析软件一样,WEKA支持读取数据库表和多种格式的数据文件,其中,使用最多的是一种称为ARFF格式的文件。ARFF是一种Weka专用的文件格式,该文件是ACSII文本文件,描述共享一组属性结构的实例列表,由独立且无序的实例组成,是Weka表示数据集的标准方式,ARFF不涉及实例之间的关系。ARFF文件就是实例类型的外部表示,其中包括一个标题头(header),以描述属性的类型,还包含一个用逗号分隔的列表所表示的数据部分(data)。实际上,我们可以将ARFF看成是一个二维的表格。表格里第一横行为标题头,以下的每一横行称作一个实例(Instance),相当于统计学中的一个样本,或者数据库中的一条记录。竖行称作一个属性(Attribute),相当于统计学中的一个变量,或者数据库中的一个字段,对于本文中采用的分类树来说,最后一个属性默认为我们需要得出的属性。这样一个表格或者叫数据集,在WEKA看来呈现了属性之间的一种关系(Relation)。
Weka中的分类是在大量的、潜在有用的数据中挖掘出有用模式的过程。因此,数据集的质量直接影响到最终的分类效果,高质量的数据是进行有效分类的前提。但是,由于数据收集过程中的漏洞可能导致一些不可避免的问题,如缺失值和离群值。于是,只能通过对数据进行预处理设法避免数据质量对分类结果的影响。
本发明对某些连续型数值进行离散化预处理以适应分类树算法。
除此之外,还需要对输入的所有数据进行属性选择,即通过搜索数据中的所有可能的属性组合,以找到预测效果最好的属性子集。手工选择属性既繁琐又容易出错,为了帮助用户实现选择属性自动化,Weka专门提供自动选择属性工具,只需设置属性评估器(Attribute Evaluator)和搜索方法(Search Method)。其中Attribute Evaluator确定使用什么方法为每个属性子集分配一个评估值,Search Method决定执行什么风格的搜索。
本文中选择采用CfsSubsetEval属性评估器和BestFirst搜索方法。其中CfsSubsetEval属性评估器评估每个属性的预测能力及其相互之间的冗余度,倾向于选择与类别属性相关度高,但相互之间相关度低的属性。选项迭代添加与类别属性相关度最高的属性,只要子集中不包含与当前属性相关更高的属性。评估器将缺失值视为单独值,也可以将缺失值计数与其他值一起按出现频率分布。BestFirst搜索方法执行带回溯的贪婪爬山法,用户可以指定在系统回溯之前连续遇到多少个无法改善的节点。它可以从空属性集开始向前搜索,也可以从全集开始向后搜索,也可以从中间点开始双向搜索并考虑所有可能的单个属性的增删操作。
经过上述预处理和属性选择之后,本文利用决策树进行分类。决策树(DecisionTree)是一种预测模型,它包括决策节点、分支和叶节点三个部分。其中,决策节点代表一个测试,通常代表待分类样本的某个属性,在该属性上的不同测试结果代表一个分支,分支表示某个决策节点的不同取值。每个叶节点存放某个类别标签,表示一种可能的分类结果。本文将采用Weka中的J48决策树,J48采用的是C4.5算法。在利用训练集建立预测模型时选择Weka中的10-fold Cross-validation,通过10重交叉验证来生成并评价最终预测模型的准确度。最终,该预测模型在低复杂度配置的HEVC编码器中实现,算法效果的最终验证使用与训练序列不同的测试序列。
有益效果
本发明具有以下几点优点:
1.本发明提出帧间预测模式自适应编码顺序作为基本技术方案,即利用大量的数据进行离线训练获得决策树,在编码过程中根据决策树得出的结果调整编码顺序,以方便进行后续减少编码时间的快速算法的操作,为后续科研提供了新的方向;
2.基于基本技术方案提出了优化方案,即利用基本技术方案的成果和视频的时空相关性跳过后续的2Nx2N模式或者MERGE模式,以此减少编码时间,提高编码效率;
3.本算法简单易行,有利于新一代视频编码标准的产业化推广。
附图说明
图1为低复杂度配置下的HEVC模式选择流程图;
图2为CU划分结构图;
图3为低复杂度配置下的HEVC中MERGE模式和2N×2N模式时间占比示意图;
图4为时空相邻CU位置关系图;
图5为计算CU纹理度时的像素点分布图;
图6为本发明流程图;
图7为本实施案例medium档位下生成的决策树图。
具体实施方式
为了便于公众理解,下面结合附图以一个优选实施例来对本发明的技术方案基于开源编码软件x265的medium档位进行详细说明。
为减少编码时间,提高工作效率,本发明具体采用的技术方案为:首先利用离线训练得到的决策树判断出当前CU的帧间预测模式遍历顺序,以便后续跳过算法的实施;然后根据编码顺序实施相应的算法判断是否直接跳过不必要且耗时的2Nx2N模式或者MERGE模式(低复杂度配置下的HEVC中MERGE模式和2N×2N模式时间占比,如图3所示),以此减少编码时间,提高编码效率。
本发明的具体步骤如下,如图1和6所示:
1)获取当前CU的时空相邻块CUi(1≤i≤8),其中,CU1、CU2、CU3、CU4分别代表当前CU左方、左上方、上方、右上方的块,CU5、CU6分别代表当前CU前向参考帧和后向参考帧的同位块,CU7代表当前CU的父CU,CU8代表当前CU的父CU的父CU(若当前CU深度为dc,则CU7深度为(dc-1),CU8深度为(dc-2)),其位置关系如图4所示,然后继续下一步骤。
2)利用步骤1)获得的CUi(1≤i≤8),获取标志位
Figure GDA0002465848470000081
并对其进行赋值
Figure GDA0002465848470000082
然后继续下一步骤。
3)利用步骤1)获得的CUi计算当前CU的纹理复杂度Avg和相邻块CU1—CU8中选择SKIP模式为最优模式的比例MC
Figure GDA0002465848470000083
Figure GDA0002465848470000084
其中,W、H代表当前CU的宽和长,m_grad[i][j]代表当前CU中坐标为i,j点像素的梯度值,由它和周围像素值决定,如图5所示,gx和gy分别代表像素点的横向梯度值和纵向梯度值,边缘像素点梯度值用其内层梯度值代替。
m_grad[i][j]=abs(gx)+abs(gy)
gx=(f1-f3)+2*(f4-f6)+(f7-f9)
gy=(f7-f1)+2*(f8-f2)+(f9-f3)
MC公式中的N代表CUs的个数为8,cu[i].mvx和cu[i].mvy分别代表CUi运动矢量的水平分量和垂直分量,mv_num代表CU1—CU8中存在运动矢量的CU个数。如果CUi存在,则ki为1,否则为0;如果CUi最优模式为SKIP模式,则wi为1,否则为0;αi则代表CU-weight factor,它根据相邻CU与当前CU的关系分配,相邻CU与当前CU的关联越强,权值越大,如下表所示,
Figure GDA0002465848470000091
然后继续下一步骤。
4)利用步骤2)获得的
Figure GDA0002465848470000092
和步骤三获得的MC、Avg作为WEKA决策树训练的训练特征。为保证训练数据的多样性,输出不同特征视频序列中每个CU的上述训练特征及其最优模式(MERGE模式或2Nx2N模式),将该数据集输入到WEKA中,首先对MC和Avg进行等频离散化(使得每一个种类拥有的样本数基本相等),得到MC的种类MC_Category(MCC)以及Avg_Category(AvgC),离散结果如下:
MCC 1 2 3 4 5
区间 [0,0.2] (0.2,0.4] (0.4,0.6] (0.6,0.8] (0.8,1]
AvgC 1 2 3 4 5
区间 [0,18.5] (18.5,32.5] (32.5,60.5] (60.5,110.5] (110.5,inf]
其次使用CfsSubsetEval属性评估器和BestFirst搜索方法对训练特征进行筛选得到最优特征组合为MCC、AvgC、
Figure GDA0002465848470000093
然后选择WEKA中的J48工具进行训练获得medium档位下的决策树Decision Tree,如图7所示,将该决策树在开源实时编码器中实现并用于步骤七中的决策过程,完成本发明离线的决策树训练部分,然后继续下一步骤,即实际编码过程。
5)首先进行如下赋值操作
Best mode=NULL
Best inter=NULL
Jbest=0
b2N_First=false
bSkip_2N=false
issimple=false
其中,Best mode为当前CU最佳模式,Best inter为当前CU最佳帧间模式,Jbest为当前CU最小的率失真代价,b2N_First为编码顺序标志位、bSkip_2N为跳过2Nx2N模式标志位、issimple为当前CU(编码单元)块是否为简单块标志位,然后继续下一步骤。
6)按照与步骤1)、2)、3)的方式获取当前CU的CUi
Figure GDA0002465848470000101
并计算MC和Avg,然后继续下一步骤。
7)利用步骤4)获得的决策树和步骤6)获得的
Figure GDA0002465848470000102
MCC、AvgC决策出当前CU的初始最佳模式,若决策树结果为2Nx2N模式,则赋值b2N_First=true,否则赋值b2N_First=false。
8)计算当前CU的运动剧烈程度Avgmv
Figure GDA0002465848470000103
其中,N代表CUs的个数为8,cu[i].mvx和cu[i].mvy分别代表CUi运动矢量的水平分量和垂直分量,mv_num代表CU1—CU8中存在运动矢量的CU个数,然后继续进行下一步骤。
9)利用步骤8)获得的Avgmv判断下式是否成立
Avgmv<THmv
若成立,则赋值issimple=true,然后继续下一步骤,否则赋值issimple=false并继续下一步骤。
10)利用步骤六获得的CUi(1≤i≤8),获取标志位
Figure GDA0002465848470000104
并对其进行赋值
Figure GDA0002465848470000105
然后继续下一步骤。
11)利用步骤6)获得的MC、步骤9)获得的issimple、步骤10)获得的
Figure GDA0002465848470000106
判断以下公式
Figure GDA0002465848470000107
Figure GDA0002465848470000108
Figure GDA0002465848470000109
Figure GDA00024658484700001010
MC<THmc (5)
issimple=false (6)
若上述式子(6)成立,且式子(1)(2)(3)(4)(5)中任意一个成立,则转到步骤十二,否则转到步骤13)。(此处定义公式(5)为条件1,公式(1)(2)(3)(4)任意一个成立即条件2为真)。
12)进行以下赋值操作
b2N_First=false
bSkip_2N=true
然后转到步骤14)。
13)进行赋值操作bSkip_2N=false,然后继续下一步骤。
14)判断公式b2N_First=true是否成立,若是,则继续下一步骤,否则转到步骤22)。
15)进行当前CU的2Nx2N模式,并计算当前CU在2Nx2N模式下的SATD2N×2N,判断当前帧类型是否为B帧,若是,则继续下一步骤,否则转到步骤17)。
16)进行当前CU的双向预测2Nx2N模式,并计算当前CU在双向预测2Nx2N模式下的SATDbi_2N×2N,继续下一步骤。
17)计算当前CU在使用MERGE候选列表中最佳匹配项时的SATD,即SATDmerge,继续下一步骤。
18)利用步骤15)获得的SATD2N×2N和步骤16)获得的SATDmerge判断下式是否成立
Figure GDA0002465848470000111
若成立,则转到步骤29),否则继续下一步骤。其中,THsatd由当前CU之前所有已完成编码的CU决定,即
Figure GDA0002465848470000112
Figure GDA0002465848470000113
代表已编码过的CU中最优模式选择MERGE模式的SATD2N×2N/SATDmerge的均值,
Figure GDA0002465848470000114
则代表已编码过的CU中最优模式选择2Nx2N模式的SATD2N×2N/SATDmerge的均值,即
Figure GDA0002465848470000115
Figure GDA0002465848470000121
Figure GDA0002465848470000122
代表已编码过的CU中最优模式选择MERGE模式的SATD2N×2N/SATDmerge的总和,
Figure GDA0002465848470000123
代表已编码过的CU中最优模式选择2Nx2N模式的SATD2N×2N/SATDmerge的总和,
Figure GDA0002465848470000124
Figure GDA0002465848470000125
则分别代表已编码过的CU中最优模式选择MERGE模式的CU个数和选择2Nx2N模式的CU个数。若
Figure GDA0002465848470000126
Figure GDA0002465848470000127
任一一个为0,则将THsatd设置为初始值1。
19)进行当前CU的MERGE模式和SKIP模式,计算当前CU在MERGE模式下的率失真代价Jmerge和在SKIP模式下的率失真代价Jskip,然后继续下一步骤。
20)判断Jmerge<Jskip是否成立,若是则进行赋值操作
Best mode=MERGE
Jbest=Jmerge
然后转到步骤29),否则继续下一步骤。
21)进行赋值操作
Best mode=SKIP
Jbest=Jskip
然后转到步骤29)。
22)进行当前CU的MERGE模式和SKIP模式,计算当前CU在MERGE模式下的率失真代价Jmerge和在SKIP模式下的率失真代价Jskip,然后继续下一步骤。
23)判断Jmerge<Jskip是否成立,若是则进行赋值操作
Best mode=MERGE
Jbest=Jmerge
然后转到步骤25),否则继续下一步骤。
24)进行赋值操作
Best mode=SKIP
Jbest=Jskip
然后继续下一步骤。
25)判断公式bSkip_2N=true是否成立,若是则转到步骤29),否则继续下一步骤。
26)获取当前CU的最佳模式,若最佳模式为SKIP模式,且MERGE模式候选列表不为空(将此条件定义为条件3),且issimple=true则转到步骤29),否则继续下一步骤。
27)进行当前CU的2Nx2N模式,并计算当前CU在2Nx2N模式下的SATD2N×2N,判断当前帧类型是否为B帧,若是,则继续下一步骤,否则转到步骤29)。
28)进行当前CU的双向预测2Nx2N模式,并计算当前CU在双向预测2Nx2N模式下的SATDbi_2N×2N,继续下一步骤。
29)进行赋值操作
Best inter=2N×2N
然后继续下一步骤。
30)计算当前CU在2Nx2N模式下的率失真代价J2N×2N,然后判断不等式J2N×2N<Jbest是否成立,若是,则继续下一步骤,否则转到步骤三十二。
31)进行赋值操作
Best mode=2N×2N
Jbest=J2N×2N
然后继续下一步骤。
32)判断条件:当前帧是为B帧,公式:16*SATDbi_2N×2N≤17*SATD2N×2N成立,若上述两个条件均成立,则继续下一步骤,否则转到步骤35)。
33)计算当前CU在双向预测2Nx2N模式下的率失真代价Jbi_2N×2N,然后判断Jbi_2N×2N<Jbest是否成立,若是则继续下一步骤,否则转到步骤35)。
34)进行赋值操作
Best mode=Bi_2N×2N
Jbest=Jbi_2N×2N
然后继续下一步骤。
35)计算当前CU在Intra 2Nx2N模式下的率失真代价Jintra_2N×2N,然后判断Jintra_2N×2N<Jbest是否成立,若是则继续下一步骤,否则转到步骤37)。
36)进行赋值操作
Best mode=intra_2N×2N
Jbest=Jintra_2N×2N
然后继续下一步骤。
37)按照步骤18)更新THsatd,然后结束当前CU的预测模式选择过程。
为了验证上述算法的正确性以及有效性,本发明基于开源参考软件在VisualStudio 2013软件上实现该算法。所有实验的具体编码参数的配置选用开源参考软件的标准配置。
实验结果
为了验证算法性能的好坏,本文采用BDBR(Bjotegaard Delta Bit rate)以及ΔT两个指标来进行评估。其中,BDBR是用来评估算法对视频质量的影响,BDBR越大说明算法对视频质量的影响越大,即算法的性能越差,其主要是通过设置四组不同的量化参数QP以获取四组不同Bits以及PSNR来进行计算。ΔT则是反映当前算法对编码器效率的提升,其计算公式如下所示:
Figure GDA0002465848470000141
其中,Torg代表使用不加任何快速算法的原始编码器编码所使用的时间,Tnew代表加快速算法后编码所需时间,ΔT则代表加快速算法后编码器在效率上提升的百分比。
通过实验仿真,本发明的实验结果如表1—表6所示,由于开源的实时编码器为了适应工业需求,设置了多个不同速度的档位,低复杂度的档位主要分为“medium”、“fast”、“faster”、“veryfast”、“superfast”、“ultrafast”,速度依次提升,实时编码器主要通过修改编码器的配置参数或加入快速算法来实现速度的提升,我们将其称为“原始算法”,如表格中的“medium_fast”表示“fast”档位相对于“medium”档位的性能提升,“Proposedalgorithm”表示本发明所提出的算法带来的性能提升。本实验通过与“原始算法”进行对比体现本发明的优越性。
表1“medium”档位下本发明的性能
Figure GDA0002465848470000142
表2“fast”档位下本发明的性能
Figure GDA0002465848470000151
表3“faster”档位下本发明的性能
Figure GDA0002465848470000152
表4“veryfast”档位下本发明的性能
Figure GDA0002465848470000153
Figure GDA0002465848470000161
表5“superfast”档位下本发明的性能
Figure GDA0002465848470000162
表6“ultrafast”档位下本发明的性能
Figure GDA0002465848470000163
Figure GDA0002465848470000171
根据实验仿真结果表1—表6可知:由此实验结果可以看出,与实时编码器的原始算法相比较,本发明提出的算法在保证视频主观质量的前提下,大幅度地提高了编码效率,达到了本发明的目的。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

Claims (4)

1.一种低复杂度配置下的HEVC快速模式选择方法,其特征在于,包括以下步骤:
步骤一:获取当前编码单元的时空相邻编码单元,1≤i≤8;
其中,CU1、CU2、CU3、CU4分别代表当前编码单元左方、左上方、上方、右上方的编码单元,CU5、CU6分别代表当前编码单元前向参考帧和后向参考帧的同位编码单元,CU7代表当前编码单元的父CU,CU8代表当前编码单元的父CU的父CU;CU表示编码单元;
步骤二:获取当前编码单元的各时空相邻编码单元的MERGE模式标志位
Figure FDA0002465848460000014
并对所述标志位进行赋值;
Figure FDA0002465848460000011
步骤三:计算当前编码单元的纹理复杂度Avg和时空相邻块中选择SKIP模式为最优模式的比例MC;
Figure FDA0002465848460000012
Figure FDA0002465848460000013
其中,W、H代表当前编码单元的宽和长,m_grad[i][j]代表当前编码单元中坐标为i,j点像素的梯度值,如果CUi存在,则ki为1,否则为0;如果CUi最优模式为SKIP模式,则wi为1,否则为0;αi则代表CU宽度因子,根据相邻CU与当前CU的关系分配,相邻CU与当前CU的关联越强,权值越大;
当Index(i)of CU[i]的取值依次为1-8时,αi的取值依次为0.2,0.1,0.2,0.1,0.05,0.05,0.2,0.1;
m_grad[i][j]=abs(gx(i,j))+abs(gy(i,j))
gx(i,j)=(f(i-1,j+1)-f(i+1,j+1))+2*(f(i-1,j)-f(i+1,j))+(f(i-1,j-1)-f(i+1,j-1))
gy(i,j)=(f(i-1,j-1)-f(i-1,j+1))+2*(f(i,j-1)-f(i,j+1))+(f(i+1,j—1)-f(i+1,j+1))
步骤四:依次以多个历史视频序列中的每个编码单元的纹理复杂度、各时空相邻编码单元的MERGE模式标志位
Figure FDA0002465848460000015
和时空相邻编码单元中选择SKIP模式为最优模式的比例MC作为输入数据,编码单元的最优模式作为输出数据,输入WEKA决策树进行训练,获得决策树;
步骤五:初始化标志位,b2N_First、bSkip_2N、issimple均赋值为false;
b2N_First为编码顺序标志位、bSkip_2N为跳过2Nx2N模式标志位、issimple为当前编码单元CU是否为简单块标志位;
步骤六:对待编码的视频序列中的当前编码单元按照步骤一至步骤三,获取对应的CUi
Figure FDA0002465848460000027
MC和Avg,并将其输入至步骤四获得的决策树,得到待编码的当前编码单元的初始最优模式;
步骤七:若决策树Decision Tree输出的结果为2Nx2N模式,则赋值b2N_First=true,帧间预测模式依次按照2Nx2N模式、MERGE模式、帧内模式进行遍历;否则赋值b2N_First=false,帧间预测模式依次按照MERGE模式、2Nx2N模式、帧内模式进行遍历,实现当前编码单元的HEVC快速模式选择;
依据当前编码单元的激烈程度,为当前编码单元选择执行模式,具体过程如下:
步骤A:计算当前编码单元的运动剧烈程度Avgmv
Figure FDA0002465848460000021
其中,N代表当前编码单元CU的时空相邻块的个数为8,cu[i].mvx和cu[i].mvy分别代表CUi的运动矢量的水平分量和垂直分量,mv_num代表{CUi}中存在运动矢量的CU个数;
步骤B:判断Avgmv<THmv是否成立,若成立,则issimple=true,否则,issimple=false;
其中,THmv表示激烈程度阈值,取值范围为10-50;
步骤C:确定当前编码单元CU的各时空相邻块的SKIP模式标志位
Figure FDA0002465848460000028
Figure FDA0002465848460000022
步骤D:基于时空相关性原理,对编码顺序标志位和跳过2Nx2N模式标志位进行赋值;
Figure FDA0002465848460000023
Figure FDA0002465848460000024
Figure FDA0002465848460000025
Figure FDA0002465848460000026
MC<THmc (5)
issimple=false (6)
若式子(6)成立,且式子(1)、(2)、(3)、(4)及(5)中任一个成立,则b2N_First=false,bSkip_2N=true,否则,bSkip_2N=false;
步骤E:判断公式b2N_First=true是否成立,若是,则进入步骤F,否则转到步骤J;
步骤F:进行当前编码单元的2Nx2N模式,并计算当前编码单元在2Nx2N模式下的SATD,即SATD2N×2N,继续下一步骤;
其中,SATD为一种视频残差信号大小的衡量标准;
步骤G:计算当前编码单元在使用MERGE候选列表中最佳匹配项时的SATD,即SATDmerge,继续下一步骤;
步骤H:判断
Figure FDA0002465848460000033
是否成立,若成立,则转到步骤N,否则转到步骤I;
其中,
Figure FDA0002465848460000034
Figure FDA0002465848460000035
代表已编码过的CU中最优模式选择MERGE模式的SATD2N×2N/SATDmerge的均值,
Figure FDA0002465848460000036
则代表已编码过的CU中最优模式选择2Nx2N模式的SATD2N×2N/SATDmerge的均值;
Figure FDA0002465848460000031
Figure FDA0002465848460000032
Figure FDA00024658484600000312
代表已编码过的CU中最优模式选择MERGE模式的SATD2N×2N/SATDmerge的总和,
Figure FDA00024658484600000310
代表已编码过的CU中最优模式选择2Nx2N模式的SATD2N×2N/SATDmerge的总和,
Figure FDA00024658484600000311
Figure FDA0002465848460000037
分别代表已编码过的CU中最优模式选择MERGE模式的CU个数和选择2Nx2N模式的CU个数;若
Figure FDA0002465848460000038
Figure FDA0002465848460000039
任一一个为0,则将THsatd设置为初始值1;
步骤I:进行当前编码单元的MERGE模式,然后转到步骤N;
步骤J:进行当前编码单元的MERGE模式,然后继续下一步骤;
步骤K:判断公式bSkip_2N=true是否成立,若是则转到步骤N,否则转到步骤L;
步骤L:获取当前编码单元CU的最佳模式,若最佳模式为SKIP模式、MERGE模式候选列表不为空,且issimple=true,则转到步骤N,否则转到步骤M;
步骤M:进行当前编码单元的2Nx2N模式,然后继续下一步骤;
步骤N:进行当前编码单元的Intra模式,实现当前编码单元的HEVC快速模式选择。
2.根据权利要求1所述的方法,其特征在于,所述输入WEKA决策树进行训练,获得决策树的具体过程如下:
首先,对MC和Avg进行等频离散化;其次,使用CfsSubsetEval属性评估器和BestFirst搜索方法对{CUi}、MC、Avg进行筛选,然后,选择WEKA中的J48工具进行训练,获得决策树Decision Tree。
3.根据权利要求2所述的方法,其特征在于,所述属性评估器还包括InfoGainAttributeEval,GainRatioAttributeEval。
4.根据权利要求2所述的方法,其特征在于,所述搜索方法还包括Ranker、GreadyStepWise。
CN201811551309.4A 2018-12-18 2018-12-18 一种低复杂度配置下的hevc快速模式选择方法 Expired - Fee Related CN109729351B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811551309.4A CN109729351B (zh) 2018-12-18 2018-12-18 一种低复杂度配置下的hevc快速模式选择方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811551309.4A CN109729351B (zh) 2018-12-18 2018-12-18 一种低复杂度配置下的hevc快速模式选择方法

Publications (2)

Publication Number Publication Date
CN109729351A CN109729351A (zh) 2019-05-07
CN109729351B true CN109729351B (zh) 2020-09-29

Family

ID=66296187

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811551309.4A Expired - Fee Related CN109729351B (zh) 2018-12-18 2018-12-18 一种低复杂度配置下的hevc快速模式选择方法

Country Status (1)

Country Link
CN (1) CN109729351B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112866691B (zh) * 2019-11-27 2022-09-27 北京大学 一种针对视频编码的帧间快速模式决策方法
CN111918059B (zh) * 2020-07-02 2023-01-13 北京大学深圳研究生院 硬件友好的基于回归树的帧内预测模式决策方法及装置
CN112351279B (zh) * 2020-10-26 2023-07-28 杭州电子科技大学 面向hevc快速编码的自适应复杂度调整系统及方法
CN112383776B (zh) * 2020-12-08 2022-05-03 重庆邮电大学 一种shvc视频编码模式快速选择的方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105791826A (zh) * 2016-05-11 2016-07-20 南京大学 一种基于数据挖掘的hevc帧间快速模式选择方法
CN108174204A (zh) * 2018-03-06 2018-06-15 中南大学 一种基于决策树的帧间快速模式选择方法
WO2018124332A1 (ko) * 2016-12-28 2018-07-05 엘지전자(주) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105791826A (zh) * 2016-05-11 2016-07-20 南京大学 一种基于数据挖掘的hevc帧间快速模式选择方法
WO2018124332A1 (ko) * 2016-12-28 2018-07-05 엘지전자(주) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
CN108174204A (zh) * 2018-03-06 2018-06-15 中南大学 一种基于决策树的帧间快速模式选择方法

Also Published As

Publication number Publication date
CN109729351A (zh) 2019-05-07

Similar Documents

Publication Publication Date Title
CN109729351B (zh) 一种低复杂度配置下的hevc快速模式选择方法
US11128864B2 (en) Deep learning based imaged partitioning for video compression
US10003792B2 (en) Video encoder for images
CN103477639B (zh) 多度量滤波
CN109845269A (zh) 影像处理方法、利用其的影像解码及编码方法
Hu et al. Fast HEVC intra mode decision based on logistic regression classification
CN108174204B (zh) 一种基于决策树的帧间快速模式选择方法
CN104168480B (zh) 基于hevc标准的帧内预测编码模式快速选择方法
CN112738511B (zh) 一种结合视频分析的快速模式决策方法及装置
CN111654698B (zh) 一种针对h.266/vvc的快速cu分区决策方法
KR20190072450A (ko) 분산 처리 환경에서의 학습 파라미터의 압축 및 전송을 제공하는 방법 및 장치
CN111492655A (zh) 用于视频压缩的基于纹理的分区决定
CN109302616A (zh) 一种基于rc预测的hevc帧间预测快速算法
CN107295336B (zh) 基于图像相关性的自适应快速编码单元划分方法及装置
Huang et al. Modeling acceleration properties for flexible intra hevc complexity control
CN110225339A (zh) 一种hevc视频序列编解码加速方法
Chen et al. Utilize neighboring LCU depth information to speedup FVC/H. 266 intra coding
CN110139098B (zh) 基于决策树的高效率视频编码器帧内快速算法选择方法
CN111988618B (zh) 进行解码、编码的方法、解码端和编码端
Kim et al. Fast SKIP mode decision with rate-distortion optimization for high efficiency video coding
Amer et al. Fully connected network for HEVC CU split decision equipped with Laplacian transparent composite model
CN105933718A (zh) 一种编码单元的分割方法和装置
CN105812803B (zh) 一种针对变换单元tu的残差舍弃方法及装置
Zheng et al. Fast algorithm for intra prediction of HEVC using adaptive decision trees
Jeong et al. Fast HEVC intra coding by predicting the rate-distortion cost for a low-complexity encoder

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200929

Termination date: 20211218