CN109729351A - 一种低复杂度配置下的hevc快速模式选择方法 - Google Patents
一种低复杂度配置下的hevc快速模式选择方法 Download PDFInfo
- Publication number
- CN109729351A CN109729351A CN201811551309.4A CN201811551309A CN109729351A CN 109729351 A CN109729351 A CN 109729351A CN 201811551309 A CN201811551309 A CN 201811551309A CN 109729351 A CN109729351 A CN 109729351A
- Authority
- CN
- China
- Prior art keywords
- mode
- coding unit
- current
- merge
- current coding
- 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.)
- Granted
Links
- 238000010187 selection method Methods 0.000 title claims abstract description 6
- 238000003066 decision tree Methods 0.000 claims abstract description 36
- 238000000034 method Methods 0.000 claims abstract description 29
- 241000288113 Gallirallus australis Species 0.000 claims description 21
- 238000012549 training Methods 0.000 claims description 15
- 239000013598 vector Substances 0.000 claims description 11
- 108091026890 Coding region Proteins 0.000 claims description 5
- 238000012216 screening Methods 0.000 claims description 3
- 238000005259 measurement Methods 0.000 claims description 2
- 238000004422 calculation algorithm Methods 0.000 abstract description 27
- 230000008569 process Effects 0.000 abstract description 9
- 230000003044 adaptive effect Effects 0.000 abstract description 3
- 230000007423 decrease Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 6
- 238000005192 partition Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 230000000875 corresponding effect Effects 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 238000013139 quantization Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 241000023320 Luma <angiosperm> Species 0.000 description 2
- 238000007792 addition Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000002790 cross-validation Methods 0.000 description 2
- 238000007418 data mining Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 101150114515 CTBS gene Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000009194 climbing Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种低复杂度配置下的HEVC快速模式选择方法,首先利用决策树得到初始编码模式(MERGE模式或者2Nx2N模式),然后根据初始模式及相应的跳过算法跳过不必要的2Nx2N模式或MERGE模式;根据低复杂度配置下的HEVC的编码特征采取自适应编码顺序算法,并根据已编码模式判断是否跳过后续不必要的模式选择过程,在保证视频主观质量下降可忽略不计的情况下,降低编码器的计算复杂度,减少编码时间,提高编码效率。
Description
技术领域
本发明属于视频编码领域,特别涉及一种低复杂度配置下的HEVC快速模式选择方法。
背景技术
HEVC是视频编码标准发展历程中非常具有革命性的一代,它由MPEG和VCEG组织于2012年成立的视频联合协作小组(JCT-VC)所研发。HEVC在性能上相较于H.264更加优秀,它在同等视频质量下其压缩率可达到H.264的2倍。与H.264相比起来HEVC采用了例如图像可划分为互不重叠的树形编码单元CTU,一个CTU又能被划分为若干个编码单元CU,这种方法被称为基于四叉树的循环分层结构;而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模式标志位并对所述标志位进行赋值;
步骤三:计算当前编码单元的纹理复杂度Avg和时空相邻块中选择SKIP模式为最优模式的比例MC;
其中,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模式标志位和时空相邻编码单元中选择SKIP模式为最优模式的比例MC 作为输入数据,编码单元的最优模式作为输出数据,输入WEKA决策树进行训练,获得决策树Decision Tree;
步骤五:初始化标志位,b2N_First、bSkip_2N、issimple均赋值为false;
b2N_First为编码顺序标志位、bSkip_2N为跳过2Nx2N模式标志位、issimple为当前编码单元CU是否为简单块标志位;
步骤六:对待编码的视频序列中的当前编码单元按照步骤一至步骤三,获取对应的 CUi、MC和Avg,并将其输入至步骤四获得的决策树Decision Tree,得到待编码的当前编码单元的初始最优模式;
步骤七:若决策树Decision Tree输出的结果为2Nx2N模式,则赋值b2N_First=true,帧间预测模式依次按照2Nx2N模式、MERGE模式、帧内模式进行遍历;否则赋值 b2N_First=false,帧间预测模式依次按照MERGE模式、2Nx2N模式、帧内模式进行遍历,实现当前编码单元的HEVC快速模式选择。
进一步的,依据当前编码单元的激烈程度,为当前编码单元选择执行模式,具体过程如下:
步骤A:计算当前编码单元的运动剧烈程度Avgmv:
其中,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模式标志位
步骤D:基于时空相关性原理,对编码顺序标志位和跳过2Nx2N模式标志位进行赋值;
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:判断是否成立,若成立,则转到步骤N,否则转到步骤I;
其中, 代表已编码过的CU中最优模式选择MERGE模式的SATD2N×2N/SATDmerge的均值,则代表已编码过的CU中最优模式选择2Nx2N模式的SATD2N×2N/SATDmerge的均值;
代表已编码过的CU中最优模式选择MERGE模式的SATD2N×2N/SATDmerge的总和,代表已编码过的CU中最优模式选择2Nx2N模式的SATD2N×2N/ SATDmerge的总和,和分别代表已编码过的CU中最优模式选择MERGE 模式的CU个数和选择2Nx2N模式的CU个数;若和任一一个为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档位下生成的决策树图。
具体实施方式
为了便于公众理解,下面结合图4以一个优选实施例来对本发明的技术方案基于开源编码软件x265的medium档位进行详细说明。
为减少编码时间,提高工作效率,本发明具体采用的技术方案为:首先利用离线训练得到的决策树判断出当前CU的帧间预测模式遍历顺序,以便后续跳过算法的实施;然后根据编码顺序实施相应的算法判断是否直接跳过不必要且耗时的2Nx2N模式或者MERGE模式,以此减少编码时间,提高编码效率。
本发明的具体步骤如下:
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)),其位置关系如图3所示,然后继续下一步骤。
2)利用步骤1)获得的CUi(1≤i≤8),获取标志位并对其进行赋值
然后继续下一步骤。
3)利用步骤1)获得的CUi计算当前CU的纹理复杂度Avg和相邻块CU1—CU8中选择SKIP模式为最优模式的比例MC
其中,W、H代表当前CU的宽和长,m_grad[i][j]代表当前CU中坐标为i,j点像素的梯度值,由它和周围像素值决定,如图4所示,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的关联越强,权值越大,如下表所示,
然后继续下一步骤。
4)利用步骤2)获得的和步骤三获得的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、然后选择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、并计算MC和Avg,然后继续下一步骤。
7)利用步骤4)获得的决策树和步骤6)获得的MCC、AvgC决策出当前CU的初始最佳模式,若决策树结果为2Nx2N模式,则赋值b2N_First=true,否则赋值 b2N_First=false。
8)计算当前CU的运动剧烈程度Avgmv
其中,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),获取标志位并对其进行赋值
然后继续下一步骤。
11)利用步骤6)获得的MC、步骤9)获得的issimple、步骤10)获得的判断以下公式
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判断下式是否成立
若成立,则转到步骤29),否则继续下一步骤。其中,THsatd由当前CU之前所有已完成编码的CU决定,即
代表已编码过的CU中最优模式选择MERGE模式的SATD2N×2N/ SATDmerge的均值,则代表已编码过的CU中最优模式选择2Nx2N模式的 SATD2N×2N/SATDmerge的均值,即
代表已编码过的CU中最优模式选择MERGE模式的SATD2N×2N/ SATDmerge的总和,代表已编码过的CU中最优模式选择2Nx2N模式的 SATD2N×2N/SATDmerge的总和,和则分别代表已编码过的CU 中最优模式选择MERGE模式的CU个数和选择2Nx2N模式的CU个数。若和任一一个为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则是反映当前算法对编码器效率的提升,其计算公式如下所示:
其中,Torg代表使用不加任何快速算法的原始编码器编码所使用的时间,Tnew代表加快速算法后编码所需时间,ΔT则代表加快速算法后编码器在效率上提升的百分比。
通过实验仿真,本发明的实验结果如表1—表6所示,由于开源的实时编码器为了适应工业需求,设置了多个不同速度的档位,低复杂度的档位主要分为“medium”、“fast”、“faster”、“veryfast”、“superfast”、“ultrafast”,速度依次提升,实时编码器主要通过修改编码器的配置参数或加入快速算法来实现速度的提升,我们将其称为“原始算法”,如表格中的“medium_fast”表示“fast”档位相对于“medium”档位的性能提升,“Proposedalgorithm”表示本发明所提出的算法带来的性能提升。本实验通过与“原始算法”进行对比体现本发明的优越性。
表1“medium”档位下本发明的性能
表2“fast”档位下本发明的性能
表3“faster”档位下本发明的性能
表4“veryfast”档位下本发明的性能
表5“superfast”档位下本发明的性能
表6“ultrafast”档位下本发明的性能
根据实验仿真结果表1—表6可知:由此实验结果可以看出,与实时编码器的原始算法相比较,本发明提出的算法在保证视频主观质量的前提下,大幅度地提高了编码效率,达到了本发明的目的。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
Claims (5)
1.一种低复杂度配置下的HEVC快速模式选择方法,其特征在于,包括以下步骤:
步骤一:获取当前编码单元的时空相邻编码单元,1≤i≤8;
其中,CU1、CU2、CU3、CU4分别代表当前编码单元左方、左上方、上方、右上方的编码单元,CU5、CU6分别代表当前编码单元前向参考帧和后向参考帧的同位编码单元,CU7代表当前编码单元的父CU,CU8代表当前编码单元的父CU的父CU;CU表示编码单元;
步骤二:获取当前编码单元的各时空相邻编码单元的MERGE模式标志位并对所述标志位进行赋值;
步骤三:计算当前编码单元的纹理复杂度Avg和时空相邻块中选择SKIP模式为最优模式的比例MC;
其中,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的关联越强,权值越大,如下表所示,
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模式标志位和时空相邻编码单元中选择SKIP模式为最优模式的比例MC作为输入数据,编码单元的最优模式作为输出数据,输入WEKA决策树进行训练,获得决策树Decision Tree;
步骤五:初始化标志位,b2N_First、bSkip_2N、issimple均赋值为false;
b2N_First为编码顺序标志位、bSkip_2N为跳过2Nx2N模式标志位、issimple为当前编码单元CU是否为简单块标志位;
步骤六:对待编码的视频序列中的当前编码单元按照步骤一至步骤三,获取对应的CUi、MC和Avg,并将其输入至步骤四获得的决策树Decision Tree,得到待编码的当前编码单元的初始最优模式;
步骤七:若决策树Decision Tree输出的结果为2Nx2N模式,则赋值b2N_First=true,帧间预测模式依次按照2Nx2N模式、MERGE模式、帧内模式进行遍历;否则赋值b2N_First=false,帧间预测模式依次按照MERGE模式、2Nx2N模式、帧内模式进行遍历,实现当前编码单元的HEVC快速模式选择。
2.根据权利要求1所述的方法,其特征在于,依据当前编码单元的激烈程度,为当前编码单元选择执行模式,具体过程如下:
步骤A:计算当前编码单元的运动剧烈程度Avgmν:
其中,N代表当前编码单元CU的时空相邻块的个数为8,cu[i].mvx和cu[i].mvy分别代表CUi的运动矢量的水平分量和垂直分量,mv_num代表{CUi}中存在运动矢量的CU个数;
步骤B:判断Avgmv<THmν是否成立,若成立,则issimple=true,否则,issimple=false;
其中,THmν表示激烈程度阈值,取值范围为10-50;
步骤C:确定当前编码单元CU的各时空相邻块的SKIP模式标志位
步骤D:基于时空相关性原理,对编码顺序标志位和跳过2Nx2N模式标志位进行赋值;
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:判断是否成立,若成立,则转到步骤N,否则转到步骤I;
其中, 代表已编码过的CU中最优模式选择MERGE模式的SATD2N×2N/SATDmerge的均值,则代表已编码过的CU中最优模式选择2Nx2N模式的SATD2N×2N/SATDmerge的均值;
代表已编码过的CU中最优模式选择MERGE模式的SATD2N×2N/SATDmerge的总和,代表已编码过的CU中最优模式选择2Nx2N模式的SATD2N×2N/SATDmerge的总和,和分别代表已编码过的CU中最优模式选择MERGE模式的CU个数和选择2Nx2N模式的CU个数;若和任一一个为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快速模式选择。
3.根据权利要求1或2所述的方法,其特征在于,所述输入WEKA决策树进行训练,获得决策树Decision Tree的具体过程如下:
首先,对MC和Avg进行等频离散化;其次,使用CfsSubsetEval属性评估器和BestFirst搜索方法对{CUi}、MC、Avg进行筛选,然后,选择WEKA中的J48工具进行训练,获得决策树Decision Tree。
4.根据权利要求3所述的方法,其特征在于,所述属性评估器还包括InfoGainAttributeEval,GainRatioAttributeEval。
5.根据权利要求3所述的方法,其特征在于,所述搜索方法还包括Ranker、GreadyStepWise。
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 true CN109729351A (zh) | 2019-05-07 |
CN109729351B 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) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111918059A (zh) * | 2020-07-02 | 2020-11-10 | 北京大学深圳研究生院 | 硬件友好的基于回归树的帧内预测模式决策方法及装置 |
CN112351279A (zh) * | 2020-10-26 | 2021-02-09 | 杭州电子科技大学 | 面向hevc快速编码的自适应复杂度调整系统及方法 |
CN112383776A (zh) * | 2020-12-08 | 2021-02-19 | 重庆邮电大学 | 一种shvc视频编码模式快速选择的方法及装置 |
CN112866691A (zh) * | 2019-11-27 | 2021-05-28 | 北京大学 | 一种针对视频编码的帧间快速模式决策方法 |
CN116385565A (zh) * | 2022-05-19 | 2023-07-04 | 上海玄戒技术有限公司 | 图像处理方法和装置、芯片、电子设备及介质 |
Citations (3)
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 | 엘지전자(주) | 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 |
-
2018
- 2018-12-18 CN CN201811551309.4A patent/CN109729351B/zh not_active Expired - Fee Related
Patent Citations (3)
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 | 中南大学 | 一种基于决策树的帧间快速模式选择方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112866691A (zh) * | 2019-11-27 | 2021-05-28 | 北京大学 | 一种针对视频编码的帧间快速模式决策方法 |
CN112866691B (zh) * | 2019-11-27 | 2022-09-27 | 北京大学 | 一种针对视频编码的帧间快速模式决策方法 |
CN111918059A (zh) * | 2020-07-02 | 2020-11-10 | 北京大学深圳研究生院 | 硬件友好的基于回归树的帧内预测模式决策方法及装置 |
CN112351279A (zh) * | 2020-10-26 | 2021-02-09 | 杭州电子科技大学 | 面向hevc快速编码的自适应复杂度调整系统及方法 |
CN112383776A (zh) * | 2020-12-08 | 2021-02-19 | 重庆邮电大学 | 一种shvc视频编码模式快速选择的方法及装置 |
CN116385565A (zh) * | 2022-05-19 | 2023-07-04 | 上海玄戒技术有限公司 | 图像处理方法和装置、芯片、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109729351B (zh) | 2020-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109729351B (zh) | 一种低复杂度配置下的hevc快速模式选择方法 | |
CN108347616B (zh) | 一种基于可选时域运动矢量预测的深度预测方法及装置 | |
US11128864B2 (en) | Deep learning based imaged partitioning for video compression | |
TWI794623B (zh) | 用於逐塊圖片編碼的幀內預測模式概念 | |
US10003792B2 (en) | Video encoder for images | |
CN107787582A (zh) | 使用用于自适应加权预测的语法信令对图像进行编码或解码的方法和设备 | |
CN109314790A (zh) | 影像处理方法、利用其的影像解码及编码方法 | |
CN108174204B (zh) | 一种基于决策树的帧间快速模式选择方法 | |
Hu et al. | Fast HEVC intra mode decision based on logistic regression classification | |
CN111654698B (zh) | 一种针对h.266/vvc的快速cu分区决策方法 | |
CN103533355B (zh) | 一种hevc快速编码方法 | |
CN112738511B (zh) | 一种结合视频分析的快速模式决策方法及装置 | |
KR20190072450A (ko) | 분산 처리 환경에서의 학습 파라미터의 압축 및 전송을 제공하는 방법 및 장치 | |
CN104823446B (zh) | 图像处理装置、图像处理方法 | |
CN110178371A (zh) | 影像编码/解码方法及装置 | |
CN101969561A (zh) | 一种帧内模式选取方法、装置及一种编码器 | |
CN107318016A (zh) | 一种基于零块分布的hevc帧间预测模式快速判定方法 | |
CN109302616A (zh) | 一种基于rc预测的hevc帧间预测快速算法 | |
CN116489386A (zh) | 一种基于参考块的vvc帧间快速编码方法 | |
Huang et al. | Modeling acceleration properties for flexible INTRA HEVC complexity control | |
CN107295336B (zh) | 基于图像相关性的自适应快速编码单元划分方法及装置 | |
CN115941960A (zh) | 基于轻量级神经网络的vvc帧间cu划分提前跳过方法 | |
CN111988618A (zh) | 进行解码、编码的方法、解码端和编码端 | |
CN110225339A (zh) | 一种hevc视频序列编解码加速方法 | |
CN110139106A (zh) | 一种视频编码单元分割方法及其系统、装置、存储介质 |
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 |
Granted publication date: 20200929 Termination date: 20211218 |
|
CF01 | Termination of patent right due to non-payment of annual fee |