CN105306947B - 基于机器学习的视频转码方法 - Google Patents
基于机器学习的视频转码方法 Download PDFInfo
- Publication number
- CN105306947B CN105306947B CN201510708472.7A CN201510708472A CN105306947B CN 105306947 B CN105306947 B CN 105306947B CN 201510708472 A CN201510708472 A CN 201510708472A CN 105306947 B CN105306947 B CN 105306947B
- Authority
- CN
- China
- Prior art keywords
- unit
- coding
- grader
- value
- feature
- 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.)
- Active
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明涉及一种基于机器学习的视频转码方法,将原始视频中编码单元的四叉树分割摸式模型化为若干个不同层次的二进制分类器,然后再选取最优特征集,最后再对特征矢量和最佳的编码参数构成的数据集合进行学习,即将机器学习的方法引入到视频转码中,将视频编码中的参数确定问题转化为分类问题。因而能够根据当前编码单元的大小选取相应的分类器,并将分类概率值与相应的自适应阈值进行比较,从而选取最佳编码参数进行编码。且自适应概率阈值针对不同视频场景自适应调整,因此,能够得到最优的转码速度和转码质量使得转码过程中功耗较小,在保证转码率失真性能的前提下有效降低转码的复杂度。
Description
技术领域
本发明涉及视频转码,特别是涉及一种复杂度低、准确率高的基于机器学习的视频转码方法。
背景技术
高性能视频编码(High Efficiency Video Coding)是目前最新的编码标准,其目标是在现有标准H.264/AVC的基础上,进一步改善率失真性能,即保证与H.264/AVC相同的视频质量条件下,减少约50%的码率。正是因为这样的目标和理想的率失真性能,越来越多的学者对其进行研究。但是,在现实生活中一种码流往往要求被用于多种不同的设备和系统中。那么,视频转码将是一个合适的解决方案。
视频转码可以将一种视频流转化为另一种视频流。在这个过程中,码流中的许多属性可能会随之改变,如帧率、分辨率和编码结构等。传统的视频转码器是将一个视频解码器和另一个视频编码器进行级联,构成级联转码器,即先将输入的码流进行全解码,再将解码后的视频文件重新进行编码以得到目标视频流。在这样的过程中,源视频流中的许多有用信息被忽略,如运动矢量、分块类型等。而这些信息对于目标视频流的编码是非常有用的,例如可以用来加快目标视频流的编码过程。同时,高性能视频编码(HEVC)为了获得较好的率失真性能,采用了更为复杂的四叉树分块结构等,导致了较高的复杂度。
在近些年,机器学习(Machine Learning)已被很多研究人员引入到视频编码或是转码过程中,用来获取更好的率失真性能或是降低复杂度。例如,将视频编码过程中的模式选择(Mode Decision)问题模型化为一个分类问题,以纹理信息(某区域内的像素值方差)作为分类器的特征,用分类器代替率失真优化过程来加速帧内宏块(Macro Block)的编码过程。也有人提出了一种在空域内的从MPEG-2到H.264/AVC的高效转码器,机器学习的工具被用来探索H.264/AVC中的宏块(Macro Block)模式和MPEG-2中运动矢量残差之间的关系。还有人首先分析了H.264/AVC编码过程中的一系列特征,然后建立了基于这些特征统计学习模型。通过离线学习方式得到的统计学习分类器加速H.264/AVC编码过程中的运动估计和模式选择。或者引入了一种在线的机器学习方式来加速从MPEG-2到HEVC的转码过程。首先在训练学习阶段,对输入的码流进行全解码并对解码后的视频进行全编码,同时在这一过程中,从码流中提取相应的特征矢量和从HEVC编码的过程中提取视频帧分块数据。然后,利用支持向量机(support vector machine,SVM)构建从特征矢量到视频帧分块数据的模型。最后,在实际转码阶段,利用生成的模型实现快速转码。
在现有技术中,大都采用统计阈值在快速编码或转码中实现提前终止来达到快速编码或快速转码的目的,但是这些统计阈值是通过某些特定测试序列训练得到的统计经验值,对于某些序列、某些场景可能是有效的,但是对于所有测试序列并非都有效;在现有方法中,也有基于机器学习方法实现视频编码或是视频转码中的快速算法,但是这些方法都只是将视频编码中的参数确定问题简单的模型化为分类问题,对于分类的准确率没有有效的控制方案,即在复杂度和编码性能之间没有有效的平衡,而分类的准确率直接影响到最终的编码性能。
发明内容
基于此,有必要一种复杂度低、准确率高的基于机器学习的视频转码方法。
一种基于机器学习的视频转码方法,包括以下步骤:
将视频编码过程中的参数选择建立为分类问题,再将其模型化为若干个不同层次的二进制分类器;
从候选特征组合中选取代价值最大的特征集作为当前转码所用的最优特征集;
训练转码阶段,依据从码流和原始编码过程中提取相应的特征矢量及最佳的编码参数,并对特征矢量和最佳的编码参数构成的数据集合进行学习,获得相应的若干个不同层次的分类器;
预测转码阶段,根据当前编码单元的大小选择相应的分类器,再结合提取的特征矢量,得到分类标签值和分类概率值,将所述分类概率值与相应的自适应阈值进行比较,判断是否接受分类标签值,如果接受,则直接利用分类标签结果进行编码,否则采用原始率失真代价函数遍历各种编码参数。
在其中一个实施例中,所述原始编码过程中的参数选择问题模型化为若干个不同层次的二进制分类器的步骤包括:
(1)编码单元层次:
当判断编码单元大小为64×64是否需要继续分割时,定义为分类器#0;
当判断编码单元大小为32×32是否需要继续分割时,定义为分类器#1;
当判断编码单元大小为16×16是否需要继续分割时,定义为分类器#2;
(2)预测单元层次:
在编码单元大小为k时,k∈{64×64,32×32,16×16,8×8},当遍历完预测单元模式集合Ak后,判断是否需要遍历剩余预测单元模式集合Bk时,定义k=64×64时为分类器#3;k=32×32时为分类器#4;k=16×16时为分类器#5;k=8×8时为分类器#6;
预测单元模式集合Ak对应的预测单元模式为备选预测单元模式集合U∈{Merge/SKIP,2N×2N,2N×N,N×2N,N×N,2N×nD,2N×nU,nL×2N,nR×2N}中的一个或多个模式,所述剩余预测单元模式集合Bk=U-Ak。
在其中一个实施例中,所述从候选特征组合中选取代价值最大的特征集作为当前转码中所用的最优特征集的步骤包括:
获取所采用的Q个候选特征;
计算从Q个候选特征选出K个特征的组合数C;
从Q个候选特征中选取K个特征得到C种组合的特征集;
遍历所述C种组合的特征集,并计算每个组合特征集下的代价值;
选取代价值最大的特征集组合作为当前转码中所用的最优特征集。
在其中一个实施例中,所述依据从码流和原始编码过程中提取相应的特征矢量及最佳的编码参数,并对特征矢量和最佳的编码参数构成的数据集合进行学习,获得相应的若干个不同层次的分类器的步骤还包括:
提取当前编码单元和预测单元相应的特征矢量i∈{0,1,2,3,4,5,6},其中,Fi表示第i个分类器的特征矢量,n表示特征的数量;
提取编码过程中的最佳编码参数,所述最佳编码参数为当前的编码单元或遍历完预测单元模式集合Ak是否继续向下一层分割或遍历剩余预测单元模式集合Bk作为真实值gi,如果当前的编码单元或遍历完预测单元模式集合Ak不向下一层分割或不需要遍历剩余预测单元模式集合Bk,则gi=-1;如果当前的编码单元或遍历完预测单元模式集合Ak向下一层分割或需要遍历剩余预测单元模式集合Bk,则gi=+1;
将提取的特征矢量及对应的最佳编码参数构成的集合Si={Fi,gi}输入到机器学习训练器中,得到相应的编码单元层次的分类器M0,M1,M2和预测单元层次的分类器M3,M4,M5,M6。
在其中一个实施例中,所述根据当前编码单元的大小选择相应的分类器,再结合提取的特征矢量,得到分类标签值和分类概率值,将所述分类概率值与相应的自适应阈值进行比较,判断是否接受分类标签值,如果接受,则直接利用分类标签结果进行编码,否则采用原始率失真代价函数遍历各种编码参数的步骤包括:
(1)编码初始化,深度D=0,同时在D=0时,k为64×64,D=1时,k为32×32,D=2时,k为16×16,D=3时,k为8×8;
(2)如果D>3时,则结束当前最大编码单元编码,否则根据深度D大小决定编码单元大小;
(3)若已有相应的编码信息,则更新概率阈值θD和θD+3,否则设置初始的概率阈值θD和θD+3;
(4)根据编码单元的大小和编码单元的索引从对应位置码流和原始视频编码过程中提取相应的特征矢量FD和FD+3;
(5)如果D=3时,根据分类器和特征矢量FD+3计算分类值f(MD+3,FD+3),如果f(MD+3,FD+3)>=0,则分类标签L=1,同时计算分类概率值P(L=+1|FD+3),否则分类标签L=-1,同时计算分类概率值P(L=-1|FD+3);如果P(L=+1|FD+3)>θD+3,则预测单元层次遍历完预测单元模式集合Ak后继续遍历剩余的备选预测单元模式集合Bk;如果P(L=-1|FD+3)>θD+3,则预测单元层次遍历完预测单元模式集合Ak后结束当前编码单元编码;如果P(L=+1|FD+3)≤θD+3或者P(L=-1|FD+3)≤θD+3采用率失真优化方式遍历全部的备选预测单元模式集合U;之后按照编码单元的索引跳到第(5)步处理下一个D=3的编码块,若没有D=3的编码块,则结束当前最大编码单元编码;
(6)如果D<3时,根据分类器和特征矢量FD计算分类值f(MD,FD),如果f(MD,FD)>=0,则分类标签L=1,同时计算分类概率值P(L=+1|FD),否则分类标签L=-1,同时计算分类概率值P(L=-1|FD);
(7)如果P(L=+1|FD)>θD,则D=D+1,同时将当前编码单元向下一层分割为四个大小相等的编码单元并标注索引为0、1、2、3,跳转到第(2)步依次按索引处理这四个编码单元;
(8)如果P(L=-1|FD)>θD,则根据分类器和特征矢量FD+3计算分类值f(MD+3,FD+3),如果f(MD+3,FD+3)>=0,则分类标签L=1,同时计算分类概率值P(L=+1|FD+3);否则分类标签L=-1,同时计算分类概率值P(L=-1|FD+3),如果P(L=+1|FD+3)>θD+3,则预测单元层次遍历完预测单元模式集合Ak后继续遍历剩余预测单元集合Bk;如果P(L=-1|FD+3)>θD+3,则预测单元层次遍历完预测单元模式集合Ak后结束当前编码单元编码;如果P(L=+1|FD+3)≤θD+3或者P(L=-1|FD+3)≤θD+3,则采用率失真优化方式遍历全部的备选预测单元集合U;
(9)如果P(L=+1|FD)≤θD或者P(L=-1|FD)≤θD,则按照原始的率失真优化方式遍历比较得到最佳的分割模式。
在其中一个实施例中,所述自适应概率阈值θD用于控制转码速度及转码质量,通过统计转码过程中被拒绝接受分类标签值个数的百分比直方图和利用分类标签值预测最佳编码参数的准确率自适应计算概率阈值θD;对于不同层次的分类器,编码单元层次初始化概率阈值θD的大小依次为0.75、0.80、0.85。
在其中一个实施例中,还包括步骤:根据各个候选特征在分类过程中贡献度大小选取候选特征,其中,贡献度越大的候选特征优先选取。
在其中一个实施例中,提取的特征分别为①当前编码单元与前一帧对应位置块像素差值和;②H.264/AVC码流中的对应于当前编码单元的编码块模式;③H.264/AVC码流中的对应于当前编码单元的宏块分割模式;④H.264/AVC码流中的非0的DCT系数的个数和;⑤DCT系数的平方和;⑥周围邻域块的编码分割模式;周围邻域块的编码标志包括⑦Skip模式标志、⑧Merge模式标志、⑨Ctx skip标志;当前编码信息和标志包括⑩编码块标志CBF、Skip模式标志、Merge模式标志、率失真代价。
上述基于机器学习的视频转码方法将原始视频中编码单元的四叉树分割摸式模型化为若干个不同层次的二进制分类器,然后再选取最优特征集,最后再对特征矢量和最佳的编码参数构成的数据集合进行学习,即将机器学习的方法引入到视频转码中,将视频编码中的参数确定问题转化为分类问题。因而能够根据当前编码单元的大小选取相应的分类器,并将分类概率值与相应的自适应阈值进行比较,从而选取最佳编码参数进行编码。且自适应概率阈值针对不同视频场景自适应调整,因此,能够得到最优的转码速度和转码质量使得转码过程中功耗较小,在保证转码率失真性能的前提下有效降低转码的复杂度。
附图说明
图1为基于机器学习的视频转码方法的流程图;
图2为编码单元分割的分类器模型图;
图3为预测单元层次备选预测单元模式;
图4为基于机器学习的视频转码框架图。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的较佳的实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
如图1所示,为基于机器学习的视频转码方法的流程图。
一种基于机器学习的视频转码方法,包括以下步骤:
步骤S110,将视频编码过程中的参数选择建立为分类问题,再将其模型化为若干个不同层次的二进制分类器。
具体的,原始编码过程中的编码单元四叉树递归分割模式模型化为若干个不同层次的二进制分类器的步骤包括:
以编码一个最大编码单元(Largest Coding Unit)为例,其大小为64×64,将原始视频编码中的四叉树编码单元递归分割方式依据当前编码单元的大小建模为三个不同层次的二进制分类器。原始HEVC视频编码标准中,编码单元的大小有64×64、32×32、16×16和8×8等四种。
在编码过程中,首先从最大编码单元(64×64)开始,计算当前编码单元的率失真代价;再将当前编码单元64×64分割为4个32×32的编码单元依次计算其率失真代价;然后再依次将4个32×32编码单元继续向下分割并计算相应的率失真代价,直到编码单元大小为8×8;最后再从中选择率失真代价最小的作为编码单元的最佳分割模式。
根据这样的四叉树分割模式,对于编码单元为64×64、32×32和16×16,考虑到在最佳分割模式中这三个编码单元是否继续向下一层分割,将这种判断模型化为二值化的分类器问题,即将复杂的率失真优化过程简化为判断当前编码单元是否要继续向下分割。
同时原始HEVC视频编码标准中,每个编码单元下都会有不同的备选预测单元,即Merge/SKIP,2N×2N,2N×N,N×2N,N×N,2N×nD,2N×nU,nL×2N,nR×2N,通过遍历这些备选的预测单元以找到率失真代价最小的最佳预测模式。当对于遍历完预测单元模式集合Ak后,k∈{64×64,32×32,16×16,8×8},可以判断是否需要遍历剩余的备选预测单元将其模型化为分类问题,其中预测单元模式集合A64×64,A32×32,A16×16,A8×8为Merge/SKIP,2N×2N,2N×N,N×2N,N×N,2N×nD,2N×nU,nL×2N,nR×2N中的一个或多个模式。。
(1)编码单元层次:当判断编码单元大小为64×64是否需要继续分割时,定义为分类器0#;当判断编码单元大小为32×32是否需要继续分割时,定义为分类器1#;当判断编码单元大小为16×16是否需要继续分割时,定义为分类器2#,如图2所示。
(2)预测单元层次:
在编码单元大小为k时,k∈{64×64,32×32,16×16,8×8},当遍历完预测单元模式集合Ak后,判断是否需要遍历剩余预测单元模式集合Bk时,定义k=64×64时为分类器#3;k=32×32时为分类器#4;k=16×16时为分类器#5;k=8×8时为分类器#6。
预测单元模式集合Ak对应的预测单元模式为备选预测单元模式集合U∈{Merge/SKIP,2N×2N,2N×N,N×2N,N×N,2N×nD,2N×nU,nL×2N,nR×2N}中的一个或多个模式,所述剩余预测单元模式集合Bk=U-Ak。
具体的,在编码单元大小为64×64时,当遍历完预测单元模式集合A64×64后,判断是否需要遍历剩余预测单元模式时,定义为分类器#3。
在编码单元大小为32×32时,当遍历完预测单元模式集合A32×32后,判断是否需要遍历剩余预测单元模式时,定义为分类器#4。
在编码单元大小为16×16时,当遍历预测单元模式集合A16×16后,判断是否需要遍历剩余预测单元模式时,定义为分类器#5。
在编码单元大小为8×8时,当遍历完预测单元模式集合A8×8后,判断是否需要遍历剩余预测单元模式时,定义为分类器#6。如图3所示。
步骤S120,从候选特征组合中选取代价值最大的特征集作为当前转码中所用的最优特征集。
具体的,从候选特征组合中选取代价值最大的特征集作为当前转码中所用的最优特征集的步骤包括:
获取所采用的Q个候选特征;
计算从Q个候选特征选出K个特征的组合数C;
从Q个候选特征中选取K个特征得到C种组合的特征集;
遍历所述C种组合的特征集,并计算每个组合特征集下的代价值;
选取代价值最大的特征集组合作为当前转码中所用的最优特征集。
在本实施例中,根据视频编码中快速算法所采用的特征,列举候选特征。Q表示候选特征的个数,K表示最终选取的特征的个数(可设定),那么选取最优特征组合的方法为:
1)首先计算从Q个候选特征中选出K个特征的组合数
2)从Q个候选特征中选取K个特征得到C种组合的特征集;
3)遍历这C种组合的特征集,同时计算每个组合特征集下的代价值;
4)选出代价值最大的那种特征集组合作为当前转码中所用的最优特征集。
在一个实施例中,候选特征的个数Q为24,最终选取的特征的个数设定为13,选取过程中采用的代价函数值为SVM分类准确率。在本实施例中,提取的特征分别为①当前编码单元与前一帧对应位置块像素差值和;②H.264/AVC码流中的对应于当前编码单元的编码块模式;③H.264/AVC码流中的对应于当前编码单元的宏块分割模式;④H.264/AVC码流中的非0的DCT系数的个数和;⑤DCT系数的平方和;⑥周围邻域块的编码分割模式;周围邻域块的编码标志包括⑦Skip模式标志、⑧Merge模式标志、⑨Ctx skip标志;当前编码信息和标志包括⑩编码块标志CBF、Skip模式标志、Merge模式标志、率失真代价。
步骤S130,依据从码流和原始编码过程中提取相应的特征矢量及最佳的编码参数,并对特征矢量和最佳的编码参数构成的数据集合进行学习,获得相应的若干个不同层次的分类器。
具体的,步骤S130包括:
提取当前编码单元和预测单元相应的特征矢量i∈{0,1,2,3,4,5,6},其中,Fi表示第i个分类器的特征矢量,n表示特征的数量;
提取编码过程中的最佳编码参数,所述最佳编码参数为当前的编码单元或遍历完预测单元模式集合Ak是否继续向下一层分割或遍历剩余预测单元模式集合Bk作为真实值gi,如果当前的编码单元或遍历完预测单元模式集合Ak不向下一层分割或不需要遍历剩余预测单元模式集合Bk,则gi=-1;如果当前的编码单元或遍历完预测单元模式集合Ak向下一层分割或需要遍历剩余预测单元模式集合Bk,则gi=+1。
将提取的特征矢量及对应的最佳编码参数构成的集合Si={Fi,gi}输入到机器学习训练器中,得到相应的编码单元层次的分类器M0,M1,M2和预测单元层次的分类器M3,M4,M5,M6。
在本实施例中,从码流和原始编码过程中提取相应的特征矢量及最佳的编码单元分割模式,并将特征矢量和最佳的编码单元分割模式构成的数据集合输入到机器学习(训练)中,得到相应的三个不同层次的分类器。在训练阶段,对H.264/AVC码流利用H.264/AVC解码器进行全解码并对解码后的视频文件利用HEVC编码器进行全编码。
在解码和编码的过程中提取当前编码单元分别为64×64、32×32和16×16和预测单元相应的特征矢量i∈{0,1,2,3,4,5,6},其中,Fi表示第i个分类器的特征矢量,表示第i个分类器的特征矢量中第n个特征值,n表示特征的数量。同时提取编码过程中的最佳编码参数,最佳编码参数为当前的编码单元或遍历完预测单元模式集合Ak是否继续向下一层分割或遍历剩余预测单元模式集合Bk作为真实值gi,如果当前的编码单元或遍历完预测单元模式集合Ak不向下一层分割或不需要遍历剩余预测单元模式集合Bk,则gi=-1;如果当前的编码单元或遍历完预测单元模式集合Ak向下一层分割或需要遍历剩余预测单元模式集合Bk,则gi=+1。之后将提取的特征矢量及对应的编码单元分割模式构成的集合Si={Fi,gi}输入到机器学习训练器中,得到相应的分类器预测模型M0,M1,M2和预测单元层次的分类器M3,M4,M5,M6。
步骤S140根据当前编码单元的大小选择相应的分类器,再结合提取的特征矢量,得到分类标签值和分类概率值,将所述分类概率值与相应的自适应阈值进行比较,判断是否接受分类标签值,如果接受,则直接利用分类标签结果进行编码,否则采用原始率失真代价函数遍历各种编码参数。
具体的以编码一个最大编码单元64×64为例,编码单元层次,步骤S140包括:
(1)编码初始化,深度D=0,同时在D=0时,k为64×64,D=1时,k为32×32,D=2时,k为16×16,D=3时,k为8×8;
(2)如果D>3时,则结束当前最大编码单元编码,否则根据深度D大小决定编码单元大小;
(3)若已有相应的编码信息,则更新概率阈值θD和θD+3,否则设置初始的概率阈值θD和θD+3;
(4)根据编码单元的大小和编码单元的索引从对应位置码流和原始视频编码过程中提取相应的特征矢量FD和FD+3;
(5)如果D=3时,根据分类器和特征矢量FD+3计算分类值f(MD+3,FD+3),如果f(MD+3,FD+3)>=0,则分类标签L=1,同时计算分类概率值P(L=+1|FD+3),否则分类标签L=-1,同时计算分类概率值P(L=-1|FD+3);如果P(L=+1|FD+3)>θD+3,则预测单元层次遍历完预测单元模式集合Ak后继续遍历剩余的备选预测单元模式集合Bk;如果P(L=-1|FD+3)>θD+3,则预测单元层次遍历完预测单元模式集合Ak后结束当前编码单元编码;如果P(L=+1|FD+3)≤θD+3或者P(L=-1|FD+3)≤θD+3采用率失真优化方式遍历全部的备选预测单元模式集合U;之后按照编码单元的索引跳到第(5)步处理下一个D=3的编码块,若没有D=3的编码块,则结束当前最大编码单元编码;
(6)如果D<3时,根据分类器和特征矢量FD计算分类值f(MD,FD),如果f(MD,FD)>=0,则分类标签L=1,同时计算分类概率值P(L=+1|FD),否则分类标签L=-1,同时计算分类概率值P(L=-1|FD);
(7)如果P(L=+1|FD)>θD,则D=D+1,同时将当前编码单元向下一层分割为四个大小相等的编码单元并标注索引为0、1、2、3,跳转到第(2)步依次按索引处理这四个编码单元;
(8)如果P(L=-1|FD)>θD,则根据分类器和特征矢量FD+3计算分类值f(MD+3,FD+3),如果f(MD+3,FD+3)>=0,则分类标签L=1,同时计算分类概率值P(L=+1|FD+3);否则分类标签L=-1,同时计算分类概率值P(L=-1|FD+3),如果P(L=+1|FD+3)>θD+3,则预测单元层次遍历完预测单元模式集合Ak后继续遍历剩余预测单元集合Bk;如果P(L=-1|FD+3)>θD+3,则预测单元层次遍历完预测单元模式集合Ak后结束当前编码单元编码;如果P(L=+1|FD+3)≤θD+3或者P(L=-1|FD+3)≤θD+3,则采用率失真优化方式遍历全部的备选预测单元集合U;
(9)如果P(L=+1|FD)≤θD或者P(L=-1|FD)≤θD,则按照原始的率失真优化方式遍历比较得到最佳的分割模式。
在本实施例中,从H.264/AVC码流和HEVC编码过程中提取相应的特征矢量,根据当前编码单元的大小选择相应的分类器,将提取的特征矢量输入到选择的分类器中,得到分类标签值和分类概率值,将分类概率值与相应的自适应阈值进行比较,判断是否接受分类标签值,如果分类概率值大于自适应阈值,则接受分类标签的分类结果。如果分类概率值小于等于自适应阈值,分类标签的分类结果将被拒绝,仍采用原始率失真优化的方式选择最佳的编码单元分割模式。
在本实施例中,如果D<3,根据编码单元的大小和编码单元索引从对应位置H.264/AVC码流和HEVC编码过程中提取相应的特征矢量FD和FD+3。
根据分类器预测模型MD和特征矢量FD计算分类值f(MD,FD),如果f(MD,FD)>=0,则分类标签L=1,否则分类标签L=-1;同时计算分类概率和P(L=-1|FD)=1-P(L=+1|FD),其中AD和BD都是模型参数。
在本实施例中,D不大于3。
在本实施例中,自适应概率阈值θD用于控制转码速度及转码质量。对于不同层次的分类器,编码单元层次初始化概率阈值θD的大小依次为0.75、0.80、0.85。
在本实施例中,判断是否接受分类标签值的步骤还包括:
如果分类概率值小于相应的自适应阈值,则拒绝分类标签的分类结果,并以率失真优化方式遍历比较得到最佳分割模式并进行编码。
基于上述所有实施例,基于机器学习的视频转码方法还包括步骤:根据各个候选特征在分类过程中贡献度大小选取候选特征,其中,贡献度越大的候选特征优先选取。
基于上述所有实施例在计算分类概率值之后的还包括步骤:
通过统计转码过程中被拒绝接受分类标签值个数的百分比直方图和利用分类标签值预测分割模式准确率自适应计算概率阈值θD和θD+3。
基于上述所有实施例,自适应阈值根据不同视频场景自适应调整。
具体的,统计转码过程中被拒绝接受分类标签值个数的百分比并绘制相应的累积直方图,通过计算更新自适应阈值以适用于不同的视频场景。在利用分类器进行预测转码的过程中,分别统计对于不同编码单元的被拒绝接受分类标签值个数的百分比,当预测转码完成一个GOP(Group of Pictures)时,根据统计的被拒绝接受分类标签值个数的百分比绘制累积直方图;
基于上述所有实施例,并结合图4,将H.264/AVC参考软件(JM 18.4)解码器与HEVC参考软件(HM 14.0)编码器级联,构成传统的级联转码器。同时选取21个不同的高清视频测试序列在量化参数分别为24、28、32和36条件下进行测试。所有测试序列的H.264/AVC码流由JM18.4在量化参数为28的条件下编码得到。
采用基于机器学习的转码方法对上述视频进行转码后,与现有方案相比,转码性能有了大幅提升。具体的,下表为各种转码方法的率失真性能和时间节省比较,其中TS(Time Saving)表示时间节省,正的BDBR(Bjonteggard Delta Bit Rate)值表示码率增加,负的BDPSNR(Bjontegaard Delta Peak-Signal-to-Noise Ratio)表示视频质量降低。目前最新的方案1和方案2中的转码方法被用来与本发明进行比较。
上述基于机器学习的视频转码方法中除采用四叉树编码单元递归分割方式的进行建模外,还可以采用决策树、神经网络、贝叶斯对编码单元进行分类建模。
候选特征去掉“②H.264码流中的对应于当前编码单元的编码块模式;③H.264码流中的对应于当前编码单元的宏块分割模式;④H.264码流中的非0的DCT系数的个数和;⑤DCT系数的平方和”后,则本发明可用于快速编码。
上述基于机器学习的视频转码方法将原始视频中编码单元的四叉树分割摸式模型化为若干个不同层次的二进制分类器,然后再选取最优特征集,最后再对特征矢量和最佳的编码参数构成的数据集合进行学习,即将机器学习的方法引入到视频转码中,将视频编码中的参数确定问题转化为分类问题。因而能够根据当前编码单元的大小选取相应的分类器,并将分类概率值与相应的自适应阈值进行比较,从而选取最佳编码参数进行编码。且自适应概率阈值针对不同视频场景自适应调整,因此,能够得到最优的转码速度和转码质量使得转码过程中功耗较小,在保证转码率失真性能的前提下有效降低转码的复杂度。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种基于机器学习的视频转码方法,包括以下步骤:
将视频编码过程中的参数选择建立为分类问题,再将其模型化为若干个不同层次的二进制分类器;
从候选特征组合中选取代价值最大的特征集作为当前转码所用的最优特征集;获取所采用的Q个候选特征;
计算从Q个候选特征选出K个特征的组合数C;
从Q个候选特征中选取K个特征得到C种组合的特征集;
遍历所述C种组合的特征集,并计算每个组合特征集下的代价值;
选取代价值最大的特征集组合作为当前转码中所用的最优特征集;
训练转码阶段,依据从码流和原始编码过程中提取相应的特征矢量及最佳的编码参数,并对特征矢量和最佳的编码参数构成的数据集合进行学习,获得相应的若干个不同层次的分类器;
预测转码阶段,根据当前编码单元的大小选择相应的分类器,再结合提取的特征矢量,得到分类标签值和分类概率值,将所述分类概率值与相应的自适应阈值进行比较,判断是否接受分类标签值,如果接受,则直接利用分类标签结果进行编码,否则采用原始率失真代价函数遍历各种编码参数。
2.根据权利要求1所述的基于机器学习的视频转码方法,其特征在于,所述将视频编码过程中的参数选择建立为分类问题,再将其模型化为若干个不同层次的二进制分类器的步骤包括:
(1)编码单元层次:
当判断编码单元大小为64×64是否需要继续分割时,定义为分类器#0;
当判断编码单元大小为32×32是否需要继续分割时,定义为分类器#1;
当判断编码单元大小为16×16是否需要继续分割时,定义为分类器#2;
(2)预测单元层次:
在编码单元大小为k时,k∈{64×64,32×32,16×16,8×8},当遍历完预测单元模式集合Ak后,判断是否需要遍历剩余预测单元模式集合Bk时,定义k=64×64时为分类器#3;k=32×32时为分类器#4;k=16×16时为分类器#5;k=8×8时为分类器#6;
预测单元模式集合Ak对应的预测单元模式为备选预测单元模式集合U∈{Merge/SKIP,2N×2N,2N×N,N×2N,N×N,2N×nD,2N×nU,nL×2N,nR×2N}中的一个或多个模式,所述剩余预测单元模式集合Bk=U-Ak。
3.根据权利要求1所述的基于机器学习的视频转码方法,其特征在于,所述从候选特征组合中选取代价值最大的特征集作为当前转码中所用的最优特征集的步骤包括:
首先计算从Q个候选特征中选出K个特征的组合数
从Q个候选特征中选取K个特征得到C种组合的特征集;
遍历这C种组合的特征集,同时计算每个组合特征集下的代价值;
选出代价值最大的那种特征集组合作为当前转码中所用的最优特征集。
4.根据权利要求2所述的基于机器学习的视频转码方法,其特征在于,所述依据从码流和原始编码过程中提取相应的特征矢量及最佳的编码参数,并对特征矢量和最佳的编码参数构成的数据集合进行学习,获得相应的若干个不同层次的分类器的步骤还包括:
提取当前编码单元和预测单元相应的特征矢量i∈{0,1,2,3,4,5,6},其中,Fi表示第i个分类器的特征矢量,n表示特征的数量;
提取编码过程中的最佳编码参数,所述最佳编码参数为当前的编码单元或遍历完预测单元模式集合Ak是否继续向下一层分割或遍历剩余预测单元模式集合Bk作为真实值gi,如果当前的编码单元或遍历完预测单元模式集合Ak不向下一层分割或不需要遍历剩余预测单元模式集合Bk,则gi=-1;如果当前的编码单元或遍历完预测单元模式集合Ak向下一层分割或需要遍历剩余预测单元模式集合Bk,则gi=+1;
将提取的特征矢量及对应的最佳编码参数构成的集合Si={Fi,gi}输入到机器学习训练器中,得到相应的编码单元层次的分类器M0,M1,M2和预测单元层次的分类器M3,M4,M5,M6。
5.根据权利要求2所述的基于机器学习的视频转码方法,其特征在于,所述根据当前编码单元的大小选择相应的分类器,再结合提取的特征矢量,得到分类标签值和分类概率值,将所述分类概率值与相应的自适应阈值进行比较,判断是否接受分类标签值,如果接受,则直接利用分类标签结果进行编码,否则采用原始率失真代价函数遍历各种编码参数的步骤包括:
(1)编码初始化,深度D=0,同时在D=0时,k为64×64,D=1时,k为32×32,D=2时,k为16×16,D=3时,k为8×8;
(2)如果D>3时,则结束当前最大编码单元编码,否则根据深度D大小决定编码单元大小;
(3)若已有相应的编码信息,则更新概率阈值θD和θD+3,否则设置初始的概率阈值θD和θD+3;
(4)根据编码单元的大小和编码单元的索引从对应位置码流和原始视频编码过程中提取相应的特征矢量FD和FD+3;
(5)如果D=3时,根据分类器和特征矢量FD+3计算分类值f(MD+3,FD+3),如果f(MD+3,FD+3)>=0,则分类标签L=1,同时计算分类概率值P(L=+1|FD+3),否则分类标签L=-1,同时计算分类概率值P(L=-1|FD+3);如果P(L=+1|FD+3)>θD+3,则预测单元层次遍历完预测单元模式集合Ak后继续遍历剩余预测单元模式集合Bk;如果P(L=-1|FD+3)>θD+3,则预测单元层次遍历完预测单元模式集合Ak后结束当前编码单元编码;如果P(L=+1|FD+3)≤θD+3或者P(L=-1|FD +3)≤θD+3采用率失真优化方式遍历全部的备选预测单元模式集合U;之后按照编码单元的索引跳到第(5)步处理下一个D=3的编码块,若没有D=3的编码块,则结束当前最大编码单元编码;
(6)如果D<3时,根据分类器和特征矢量FD计算分类值f(MD,FD),如果f(MD,FD)>=0,则分类标签L=1,同时计算分类概率值P(L=+1|FD),否则分类标签L=-1,同时计算分类概率值P(L=-1|FD);
(7)如果P(L=+1|FD)>θD,则D=D+1,同时将当前编码单元向下一层分割为四个大小相等的编码单元并标注索引为0、1、2、3,跳转到第(2)步依次按索引处理这四个编码单元;
(8)如果P(L=-1|FD)>θD,则根据分类器和特征矢量FD+3计算分类值f(MD+3,FD+3),如果f(MD+3,FD+3)>=0,则分类标签L=1,同时计算分类概率值P(L=+1|FD+3);否则分类标签L=-1,同时计算分类概率值P(L=-1|FD+3),如果P(L=+1|FD+3)>θD+3,则预测单元层次遍历完预测单元模式集合Ak后继续遍历剩余预测单元集合Bk;如果P(L=-1|FD+3)>θD+3,则预测单元层次遍历完预测单元模式集合Ak后结束当前编码单元编码;如果P(L=+1|FD+3)≤θD+3或者P(L=-1|FD+3)≤θD+3,则采用率失真优化方式遍历全部的备选预测单元集合U;
(9)如果P(L=+1|FD)≤θD或者P(L=-1|FD)≤θD,则按照原始的率失真优化方式遍历比较得到最佳的分割模式。
6.根据权利要求5所述的基于机器学习的视频转码方法,其特征在于,所述自适应概率阈值θD用于控制转码速度及转码质量,通过统计转码过程中被拒绝接受分类标签值个数的百分比直方图和利用分类标签值预测最佳编码参数的准确率自适应计算概率阈值θD;对于不同层次的分类器,编码单元层次初始化概率阈值θD的大小依次为0.75、0.80、0.85。
7.根据权利要求1-6任意一项所述的基于机器学习的视频转码方法,其特征在于,还包括步骤:根据各个候选特征在分类过程中贡献度大小选取候选特征,其中,贡献度越大的候选特征优先选取。
8.根据权利要求1-6任意一项所述的基于机器学习的视频转码方法,其特征在于,提取的特征分别为①当前编码单元与前一帧对应位置块像素差值和;②H.264/AVC码流中的对应于当前编码单元的编码块模式;③H.264/AVC码流中的对应于当前编码单元的宏块分割模式;④H.264/AVC码流中的非0的DCT系数的个数和;⑤DCT系数的平方和;⑥周围邻域块的编码分割模式;周围邻域块的编码标志包括⑦Skip模式标志、⑧Merge模式标志、⑨Ctxskip标志;当前编码信息和标志包括⑩编码块标志CBF、Skip模式标志、Merge模式标志、率失真代价。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510708472.7A CN105306947B (zh) | 2015-10-27 | 2015-10-27 | 基于机器学习的视频转码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510708472.7A CN105306947B (zh) | 2015-10-27 | 2015-10-27 | 基于机器学习的视频转码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105306947A CN105306947A (zh) | 2016-02-03 |
CN105306947B true CN105306947B (zh) | 2018-08-07 |
Family
ID=55203622
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510708472.7A Active CN105306947B (zh) | 2015-10-27 | 2015-10-27 | 基于机器学习的视频转码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105306947B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107231566B (zh) * | 2016-03-25 | 2020-12-18 | 阿里巴巴集团控股有限公司 | 一种视频转码方法、装置和系统 |
CN106791864B (zh) * | 2016-12-08 | 2019-12-27 | 南京理工大学 | 一种基于hevc标准下提高视频转码速率的实现方法 |
EP3556098B1 (en) * | 2016-12-16 | 2023-10-18 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Encoder and concept for configuring same |
JP2018125718A (ja) * | 2017-02-01 | 2018-08-09 | 日本放送協会 | モード予測情報生成装置およびプログラム |
CN108737841B (zh) * | 2017-04-21 | 2020-11-24 | 腾讯科技(深圳)有限公司 | 编码单元深度确定方法及装置 |
CN107592533A (zh) * | 2017-10-30 | 2018-01-16 | 河海大学 | 一种低复杂度虚拟现实设备的屏幕内容编码算法 |
US10559093B2 (en) | 2018-01-13 | 2020-02-11 | Arm Limited | Selecting encoding options |
CN109769119B (zh) * | 2018-12-18 | 2021-01-19 | 中国科学院深圳先进技术研究院 | 一种低复杂度视频信号编码处理方法 |
WO2020168526A1 (zh) * | 2019-02-21 | 2020-08-27 | 深圳市大疆创新科技有限公司 | 图像编码方法、设备及计算机可读存储介质 |
CN113347415A (zh) * | 2020-03-02 | 2021-09-03 | 阿里巴巴集团控股有限公司 | 编码模式确定方法和装置 |
CN111634233A (zh) * | 2020-05-25 | 2020-09-08 | 杭州鸿泉物联网技术股份有限公司 | 一种安全驾驶系统和方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004093461A1 (en) * | 2003-04-17 | 2004-10-28 | Koninklijke Philips Electronics N.V. | Video transcoding |
CN101068355A (zh) * | 2007-06-05 | 2007-11-07 | 南京大学 | Mpeg-2到h.264码的快速转换方法 |
CN101068366A (zh) * | 2007-06-05 | 2007-11-07 | 南京大学 | 基于h.264多路视频转码复用的方法和复用器 |
CN101945278A (zh) * | 2010-09-15 | 2011-01-12 | 中国科学院深圳先进技术研究院 | 视频自适应转码方法和系统 |
CN102025999A (zh) * | 2010-12-31 | 2011-04-20 | 北京工业大学 | 基于支持向量机的视频转码快速帧内预测方法 |
CN104837019A (zh) * | 2015-04-30 | 2015-08-12 | 上海交通大学 | 基于支持向量机的avs到hevc优化视频转码方法 |
CN104978567A (zh) * | 2015-06-11 | 2015-10-14 | 武汉大千信息技术有限公司 | 基于场景分类的车辆检测方法 |
-
2015
- 2015-10-27 CN CN201510708472.7A patent/CN105306947B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004093461A1 (en) * | 2003-04-17 | 2004-10-28 | Koninklijke Philips Electronics N.V. | Video transcoding |
CN101068355A (zh) * | 2007-06-05 | 2007-11-07 | 南京大学 | Mpeg-2到h.264码的快速转换方法 |
CN101068366A (zh) * | 2007-06-05 | 2007-11-07 | 南京大学 | 基于h.264多路视频转码复用的方法和复用器 |
CN101945278A (zh) * | 2010-09-15 | 2011-01-12 | 中国科学院深圳先进技术研究院 | 视频自适应转码方法和系统 |
CN102025999A (zh) * | 2010-12-31 | 2011-04-20 | 北京工业大学 | 基于支持向量机的视频转码快速帧内预测方法 |
CN104837019A (zh) * | 2015-04-30 | 2015-08-12 | 上海交通大学 | 基于支持向量机的avs到hevc优化视频转码方法 |
CN104978567A (zh) * | 2015-06-11 | 2015-10-14 | 武汉大千信息技术有限公司 | 基于场景分类的车辆检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105306947A (zh) | 2016-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105306947B (zh) | 基于机器学习的视频转码方法 | |
CN105359531B (zh) | 用于针对屏幕内容编码的编码器侧判定的方法和系统 | |
CN106162167A (zh) | 基于学习的高效视频编码方法 | |
CN105959611B (zh) | 一种自适应的从h264到hevc的帧间快速转码方法及装置 | |
CN110087087A (zh) | Vvc帧间编码单元预测模式提前决策及块划分提前终止方法 | |
CN106713935A (zh) | 一种基于贝叶斯决策的hevc块划分快速方法 | |
CN106131546B (zh) | 一种提前确定hevc合并和跳过编码模式的方法 | |
CN111654698B (zh) | 一种针对h.266/vvc的快速cu分区决策方法 | |
CN109040764B (zh) | 一种基于决策树的hevc屏幕内容帧内快速编码算法 | |
CN109104609A (zh) | 一种融合hevc压缩域和像素域的镜头边界检测方法 | |
CN104837019B (zh) | 基于支持向量机的avs到hevc优化视频转码方法 | |
CN105430391B (zh) | 基于逻辑回归分类器的帧内编码单元快速选择方法 | |
Chen et al. | A novel fast intra mode decision for versatile video coding | |
CN103888770B (zh) | 一种基于数据挖掘的高效自适应的视频转码系统 | |
CN110213584A (zh) | 基于纹理复杂度的编码单元分类方法和编码单元分类设备 | |
CN101527851B (zh) | H.264中p帧模式的快速选择方法 | |
CN104333756A (zh) | 基于时域相关性的hevc预测模式快速选择方法 | |
CN104883566B (zh) | 一种适用于hevc标准的帧内预测块大小划分的快速算法 | |
CN104284186A (zh) | 一种适用于hevc标准帧内预测模式判决过程的快速算法 | |
CN109361920A (zh) | 一种面向多场景的自适应决策树选择的帧间快速预测算法 | |
CN107690069B (zh) | 一种数据驱动的级联视频编码方法 | |
Kulupana et al. | Fast versatile video coding using specialised decision trees | |
CN106534849A (zh) | 一种快速的hevc帧间编码方法 | |
CN110225339A (zh) | 一种hevc视频序列编解码加速方法 | |
CN100592797C (zh) | 快速运动估计方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |