1.基于多层次分类的HEVC快速帧间编码方法,其特征在于包括基于CU深度分类树的快速CU划分方法、基于帧间模式分类树的快速PU选择方法和基于TU深度分类树的快速TU划分方法;基于CU深度分类树的快速CU划分方法是先计算当前帧CU与前一帧同位置CU的相似特征以生成时域CU特征样本集合,然后用决策树对这个样本集合进行训练,生成时域CU深度分类树;通过时域CU深度分类树将CU划分为时域相似CU和非时域相似CU两类;对于非时域相似CU,继续提取空域CU特征样本集合,然后用决策树训练这个样本集合生成空域CU深度分类树;使用时域CU深度分类树和空域CU深度分类树实现快速CU划分方法;基于帧间模式分类树的快速PU选择方法是先提取PU帧间模式的特征样本集合,然后用决策树对这个样本集合进行训练,生成PU帧间模式分类树以实现快速PU选择方法;基于TU深度分类树的TU划分方法是先提取TU特征样本集合,然后用决策树对这个样本集合进行训练,生成TU深度分类树以实现快速TU划分方法。
2.根据权利要求1所述的基于多层次分类的HEVC快速帧间编码方法,其特征在于基于CU深度分类树的快速CU划分方法中提取的帧间CU特征如下:特征F1:当前CU与前一帧同位置CU失真的归一化绝对差值,计算公式如下:
其中Dcur表示当前CU的失真值,Dcol表示前一帧同位置CU的失真值;
特征F2:当前CU与前一帧同位置CU像素偏离平均绝对差和的归一化绝对差值,计算公式如下:
其中Avg表示CU的平均像素值,SADA表示CU的偏离平均绝对差和,Pixel(i,j)表示CU位置(i,j)的像素Y分量值,W和H分别表示CU的宽和高;
特征F3:当前CU与前一帧同位置CU的率失真代价与失真的比率绝对差值,计算公式如下:
其中Dcur与RDcostcur表示当前CU的失真值和率失真代价,Dcol和RDcostcol表示前一帧同位置CU的失真值和率失真代价;
特征F4:当前CU与前一帧同位置CU的Sobel梯度绝对和的绝对差值,计算公式如下:
其中Ii,j表示将CU分为3×3像素小块中的其中中间像素位置为(i,j)的像素块,Gi,j表示Ii,j的横向及纵向Sobel梯度的绝对和,SUM_G表示所有像素小块的梯度绝对和。
3.根据权利要求2所述的基于多层次分类的HEVC快速帧间编码方法,其特征在于基于CU深度分类树的快速CU划分方法中对非帧间相似CU提取的帧内CU特征如下:特征F5:当前CU的CBF,记为F5;
特征F6:残差块的像素偏离平均绝对差和,计算公式如下:
其中,Avgres表示CU残差块的平均残差值,Pixelres(i,j)表示残差块位置(i,j)的残差值,W和H分别表示残差块的宽和高;
特征F7:残差子块像素偏离平均绝对差和的均值,记为F3;残差子块是将残差块按照2*
2的分法均分为四个残差小块,每个残差子块的高宽都相等都为残差块的二分之一,计算公式如下:
其中,Avg_resk表示第k个残差子块的平均残差值,SADA_resk表示CU的偏离平均绝对差和,Pixel_res(i,j)表示残差子块位置(i,j)的残差值,W和H分别表示残差子块的宽和高;
特征F8:残差子块像素偏离平均绝对差和的均值与残差块的像素偏离平均绝对差和的绝对差值,表示了父CU残差与子CU残差之间的关系;
F8=|F6-F7| (7)
特征F9:残差块的最大Sobel梯度,计算公式如下:
其中,I_resi,j表示将残差块分为3*3且中间残差位置为(i,j)的残差小块,G_resi,j表示I_resi,j的横向及纵向Sobel梯度的绝对和;
特征F10:当前CU的像素偏离平均绝对差和,计算公式如下:
其中,Avg表示CU的平均像素值,Pixel(i,j)表示CU位置(i,j)的像素Y分量值,W和H分别表示CU的宽和高。
4.根据权利要求3所述的基于多层次分类的HEVC快速帧间编码方法,其特征在于基于帧间模式分类树的快速PU选择方法中提取的PU帧间模式特征如下:特征F11:率失真代价与失真的比率绝对差值,计算公式如下:
其中D与RDcost表示当前CU的失真值和率失真代价;
特征F12:当前CU的素偏离平均绝对差和,计算公式如下:
其中Avg表示在CU的平均像素值,Pixel(i,j)表示CU位置(i,j)的像素Y分量值,W和H分别表示CU的宽和高;
特征F13:周围块最佳CU深度的平均值,计算公式如下:
其中,周围块包括上CU,左CU,左上CU;depabove表示上CU的最佳CU深度,depleft表示左CU的最佳CU深度,depaboveleft表示左上CU的最佳CU深度;
特征F14:周围块最佳PU模式的平均值,计算公式如下:
关于最佳PU模式的值设定为2N×2N为0,2N×N为1,N×2N为2,N×N为3,2N×nU为4,2N×nD为5,nL×2N为6,nR×2N为7;PUmodeabove表示上CU的最佳PU模式,PUmodeleft表示左CU的最佳PU模式,PUmodeaboveleft表示左上CU的最佳PU模式;
特征F15:执行完Merge,Skip,2N×2N模式之后的最佳PU模式,若最佳模式为Skip则F15为0,若最佳模式为Merge则F15为1,若最佳模式为2N×2N则F15为2。
5.根据权利要求4所述的基于多层次分类的HEVC快速帧间编码方法,其特征在于基于TU深度分类树的快速TU划分方法中提取的TU特征如下:首先用Roberts算子计算残差系数的横向梯度:
其中,Ii,j表示将残差系数矩阵分为2×2大小的矩阵,其左上角残差系数坐标位置为(i,j);
特征F16:用式(14)计算得到梯度矩阵,找出每行所有非零值的坐标位置(i,j),记录(i,j)里面最大的i值;即遍历梯度矩阵的所有点g(i,j),(i,j)表示矩阵梯度的坐标位置,选择最大的i值;
i=max{i},s.t.g(i,j)≠0 (15)
特征F17:用式(14)计算得到梯度矩阵,找出每列所有非零值的坐标位置(i,j),记录(i,j)里面最大的j值;即遍历梯度矩阵的所有点g(i,j),(i,j)表示矩阵梯度的坐标位置,选择最大的j值;
j=max{j},s.t.g(i,j)≠0 (16)
特征F18:用式(14)计算得到的梯度矩阵中所有非零梯度的数量;F18初始化为0,遍历梯度矩阵的所有点g(i,j),(i,j)表示矩阵梯度的位置,当g(i,j)不为0时,F18加一;
特征F19:残差系数矩阵的矩阵能量,也即每个矩阵元素的平方和,反应残差系数矩阵的分布程度,计算公式如下:Coef(i,j)表示残差系数矩阵在位置(i,j)的系数值,W和H分别表示残差系数矩阵的宽和高。
6.根据权利要求5所述的基于多层次分类的HEVC快速帧间编码方法,其特征在于基于CU深度分类树的快速CU划分方法的步骤是:步骤(I)、生成时域CU特征样本集合
首先采用标准的HEVC编码,在CU最佳深度划分为0和1时提取时域CU特征,设置标记Flag_sim并初始化为0,作为CU是否为时域相似CU的标志位;若CU的最佳深度为0和1时,当前CU最佳深度与前一帧同位置CU的最佳深度相同,则将标记Flag_sim赋值为0并计算此条件下的时域CU特征;若CU最佳深度与前一帧同位置CU的深度不同,则将标记Flag_sim赋值为1并计算此条件下的时域CU特征一起输出到同一样本集合中;对Flag_sim为0与Flag_sim为1的样本集合,随机取出相同数量的样本,组成最终的时域CU特征样本集合,即该样本集合中Flag_sim为0与Flag_sim为1的样本数量相等;
步骤(Ⅱ)、生成时域CU深度分类树
首先根据相似度大小将CU分为两类:时域相似CU和非时域相似CU;时域相似CU与前一帧同位置CU的相似度比较高,即最佳深度相同;而非时域相似CU与前一帧同位置处CU的相似度较低,即最佳深度不同;具体分类树生成方法如下:首先处理步骤(I)生成的时域CU特征样本集合,对于深度0与1的时域CU特征样本集合,随机选择一半样本以形成训练集合,另一半样本形成验证集合,基于这两个集合,本发明采用分类和回归树(CART)来生成初始的时域CU深度分类树,然后设定该分类树的最大深度不超过10,并采用验证集用于评估所得分类树的叶节点准确率并进行修剪,一旦叶节点中的训练样本的总数小于或等于验证集大小的1%,就停止分割节点;然后逐个节点修剪树结构,当标志为0的样本数占总节点样本数的比例,为大于或等于85%的叶节点标记为时域相似节点,设定标签为0;其余叶节点标记为非时域相似节点,设定标签为1,若同一父节点下的两个叶节点的标签都1,也将其剪去;
步骤(Ⅲ)、使用时域CU深度分类树将CU划分为时域相似CU和非时域相似CU两类使用步骤(Ⅱ)中生成的时域CU深度分类树,按照每个节点上的分类变量与阈值和对应的叶节点划分,用if-else的编程方法把分类树实现在HM的帧间编码中;
首先执行PU的Merge模式,在Merge模式之后,若当前CU的当前深度与前一帧同位置CU的最佳深度相同,则计算获得当前CU与前一帧同位置CU的权利要求2中所对应时域相似性特征,将其通过对应深度的时域CU深度分类树中,根据最终所获叶节点的标签,得到最终的时域相似性分类结果,对于叶节点标签为0的CU将其定为时域相似CU;对于叶节点标签为1的CU将其定为非时域相似CU;
针对时域相似CU,采用前一帧同位置CU的深度来对当前CU的划分进行优化,将前一帧同位置CU的深度赋值给当前CU作为当前CU的最佳深度,同时停止CU的继续划分;
针对非时域相似CU,采用CU提前终止划分的分类树进行是否继续CU划分的分类,具体特征转至步骤(Ⅳ);
步骤(Ⅳ)、对非时域相似CU生成空域CU特征样本集合
首先采用标准的HEVC编码,在CU的最佳深度0、1和2时提取空域CU特征,设置标记Flag_ns并初始化为0,作为CU是否提前终止的标志位,Flag_ns为0则停止划分,Flag_ns为1则继续划分;
CU的最佳深度为0时,提取深度0下的空域CU特征并标记为0表示停止CU划分;若CU的最佳深度不为0,提取提取深度0下的空域CU特征并标记为1表示继续CU划分;CU的最佳深度为
1时,提取深度1下的空域CU特征并标记为0表示停止CU划分;若CU的最佳深度不为1,提取提取深度1下的空域CU特征并标记为1表示继续CU划分;CU的最佳深度为2时,提取深度2下的空域CU特征并标记为0表示停止CU划分;若CU的最佳深度不为2,提取提取深度2下的空域CU特征并标记为1表示继续CU划分;
不同深度生成各自的空域CU特征样本集合,对于每一个深度的空域CU特征样本集合,将Flag_ns为0与Flag_ns为1的样本分别随机获取出相同数量的样本,组合形成最终的空域CU特征样本集合,即该样本集合中Flag_ns为0与Flag_ns为1的样本数量相等;最终得到每个不同深度下的空域CU特征样本集合;
步骤(V)、生成空域CU深度分类树
首先根据CU是否继续划分为两类:I类和Ⅱ类;若分类树结果为I类则提前结束CU划分;
若分类树结果为Ⅱ类则继续CU划分;具体分类树生成方法如下:
与步骤(Ⅱ)生成分类树的方法类似,首先处理各个深度下的最终空域CU特征样本集合,随机选择一半样本以形成训练集,另一半样本形成验证集,基于这两个集合,采用分类和回归树(CART)来生成初始的空域CU深度分类树,然后设定该分类树的最大深度不超过
10,并采用验证集用于评估所得分类树的叶节点准确率并进行修剪,一旦叶节点中的训练样本的总数小于或等于验证集大小的1%,就停止分割节点;然后逐个节点修剪树结构,将标志为0的样本数占总节点样本数的比例为大于或等于85%的叶节点标记为终止划分节点,设定标签为0;其余叶节点标记为继续划分节点,设定标签为1,若同一父节点下的两个叶节点的标签都1,也将其剪去;在深度0,1和2上分别得到最终的空域CU深度分类树;
步骤(Ⅵ)、使用时域CU深度分类树和空域CU深度分类树实现快速CU划分方法对于不同的CU深度,使用步骤(Ⅳ)中生成的空域CU深度分类树,按照每个节点上的分类变量与阈值和对应的叶节点划分,用if-else的编程方法把分类树实现在HM的帧间编码中,具体实现方法参考下方的具体实施方法;
经过时域CU深度分类树后,若CU所得分类结果为时域相似CU,则将前一帧同位置CU的深度赋值给当前CU作为当前CU的最佳深度,同时停止CU的继续划分;CU所得分类结果为非时域相似CU,则继续用空域CU深度分类树进行分类选择;在深度0,1,2中,提取权利要求3中的对应空域CU特征,将其通过对应CU深度的空域CU深度分类树中,根据最终所获叶节点的标签,得到最终的空域CU分类结果,对于叶节点标签为0的CU将其定为I类CU;对于叶节点标签为1的CU将其定为Ⅱ类CU;对于I类CU,提前终止CU的划分;对于Ⅱ类CU,则继续执行基于帧间模式分类树的快速PU选择方法。
7.根据权利要求6所述的基于多层次分类的HEVC快速帧间编码方法,其特征在于基于帧间模式分类树的快速PU选择方法的步骤是:步骤(1)、生成PU帧间模式的特征样本集合
执行2N×2N和Merge的PU模式判别之后,在CU深度0、1、2、3分别提取PU帧间模式的特征,设置标记Flag_mode并初始化为0,作为PU模式选择的标志位,对于CU深度0、1、2,Flag_mode为0则表示跳过剩余所有PU模式选择,Flag_mode为1则表示执行所有SMP模式,跳过所有AMP模式,Flag_mode为2则表示执行所有PU模式;而对于对于CU深度3,因为不执行AMP模式选择,因此仅分为两类,Flag_mode为0则表示跳过剩余所有PU模式选择,Flag_mode为2则表示执行所有PU模式;
在所有PU模式选择都结束时,提取特征并判别最佳的PU模式,若最佳PU模式为2N×2N或Merge,则标志位记为0与所得特征输出样本,若最佳PU模式为SMP模式,则标志位记为1与所得特征输出样本,若最佳PU模式为AMP模式,则标志位记为2与所得特征输出样本;
不同CU深度生成各自的PU帧间模式的特征样本集合;对于每一个CU深度的特征样本集合,将Flag_mode为0,1和2的样本分别随机获取出相同数量的样本,组合形成最终的PU帧间模式的特征样本集合,即该样本集合中Flag_mode为0、Flag_mode为1与Flag_mode为2的样本数量相等;最终得到每个CU深度下的PU帧间模式的特征样本集合;
步骤(2)、生成PU帧间模式分类树
首先根据PU是否继续执行PU模式选择分为三类:I类、Ⅱ类和Ⅲ类;若PU帧间模式分类树结果为I类则跳过剩余所有PU模式选择;若分类树结果为Ⅱ类执行所有SMP模式,跳过所有AMP模式;若分类树结果为Ⅱ类执行所有PU模式;具体PU帧间模式分类树生成方法如下:与CU部分的步骤(2)生成分类树的方法类似,首先处理各个CU深度下的最终PU帧间模式的特征样本集合,随机选择一半样本以形成训练集,另一半样本形成验证集,基于这两个集合,采用分类和回归树来生成初始的PU帧间模式分类树,然后设定该分类树的最大深度不超过10,并采用验证集用于评估所得分类树的叶节点准确率并进行修剪,一旦叶节点中的训练样本的总数小于或等于验证集大小的1%,就停止分割节点;然后逐个叶节点地修剪树结构,在CU深度0、1、2上,将标志为0的样本数占总节点样本数的比例为大于或等于85%的叶节点标记为跳过所有PU模式,设定标签为0;对于剩下的叶节点,将标志为0的样本数与标志为1的样本数节点准确率相加,若相加后的节点准确率大于或等于85%,标记为执行所有SMP模式,跳过所有AMP模式,设定标签为1;其余都设定标签为2,即执行所有PU模式划分;
而对于CU深度3,因为默认不执行AMP的模式选择,则将标志为0的样本数占总节点样本数的比例,为大于或等于85%的叶节点标记为跳过所有PU模式,设定标签为0;其余都设定标签为2,即执行所有PU模式划分;
若同一父节点下的两个叶节点的标签都2,也将其剪去;在CU深度0、1、2、3上分别得到最终的PU帧间模式分类树;
步骤(3)、使用PU帧间模式分类树实现快速PU选择方法
对于不同的CU深度,使用步骤(2)中生成的PU帧间模式分类树,按照每个节点上的分类变量与阈值和对应的叶节点划分,用if-else的编程方法把分类树实现在HM的帧间编码中,具体实现方法参考下方的具体实施方法;
分别在CU深度0,1,2中,提取权利要求4中的对应PU帧间模式的特征,将其通过对应深度的PU帧间模式分类树,根据最终所获叶节点的标签,得到最终PU模式的分类结果,对于叶节点标签为0的PU将其定为I类PU;对于叶节点标签为1的CU将其定为Ⅱ类PU;对于叶节点标签为2的CU将其定为Ⅲ类PU;针对I类PU,跳过剩余的所有PU模式;针对Ⅱ类PU,执行所有的SMP模式,并跳过所有的AMP模式;针对Ⅲ类PU,执行所有的PU模式;
在深度3中,提取权利要求4中的PU帧间模式的特征,将其通过深度3的PU模式选择分类树中,根据最终所获叶节点的标签,得到最终PU模式的分类结果,因为在深度3时不执行AMP的计算,因此仅有两类,对于叶节点标签为0的PU将其定为I类PU;对于叶节点标签为2的CU将其定为Ⅲ类PU;针对I类PU,跳过剩余的所有PU模式;针对Ⅲ类PU,执行所有的PU模式。
8.根据权利要求7所述的基于多层次分类的HEVC快速帧间编码方法,其特征在于基于TU深度分类树的快速TU划分方法的步骤是:步骤①、生成TU特征样本集合
对于每一种PU模式,都需要执行TU的划分,在CU深度0、1、2、3分别提取TU特征,设置标记Flag_TU并初始化为0,作为TU提前终止的标志位,Flag_TU为0则表示提前终止TU划分;
Flag_TU为1则表示继续执行TU深度划分;
在对比父TU与子TU率失真代价时,判别TU的类别与提取对应的划分特征;若子TU的率失真代价和小于父TU的率失真代价,则表示需要继续划分,Flag_TU标记为1;若子TU的率失真代价和小于当前父TU的率失真代价,则表示不需要继续划分,Flag_TU标记为0;
不同CU深度生成各自的TU特征样本集合;对于每一个CU深度的TU特征样本集合,将Flag_TU为0和1的样本集合分别随机获取出相同数量的样本,组合形成最终的TU特征样本集合,即该样本集中Flag_TU为0与Flag_TU为1的样本数量相等;得到每个CU深度下的TU特征样本集合;
步骤②、生成TU深度分类树
首先根据TU是否继续划分为两类:I类和Ⅱ类;若分类树结果为I类则提前结束TU划分;
若分类树结果为Ⅱ类则继续TU划分;具体分类树生成方法如下:
与CU模块的步骤②生成分类树的方法类似,首先处理各个CU深度下的TU特征样本集合,随机选择一半样本以形成训练集,另一半样本形成验证集,基于这两个集合,采用分类和回归树来生成初始的TU深度分类树,然后设定该分类树的最大深度不超过10,并采用验证集用于评估所得分类树的叶节点准确率并进行修剪,一旦叶节点中的训练样本的总数小于或等于验证集大小的1%,就停止分割节点;然后逐个节点修剪树结构,将标志为0的样本数占总节点样本数的比例为大于或等于85%的叶节点标记为终止划分节点,设定标签为0;
其余叶节点标记为继续划分节点,设定标签为1,若同一父节点下的两个叶节点的标签都1,也将其剪去;在CU深度0,1、2和3上分别得到最终的TU深度分类树;
步骤③、使用TU深度分类树实现快速TU划分方法
对于不同的CU深度,使用步骤②中生成的TU深度分类树,按照每个节点上的分类变量与阈值和对应的叶节点划分,用if-else的编程方法把分类树实现在HM的帧间编码中,具体实现方法参考下方的具体实施方法;
在CU深度0,1,2和3中,提取权利要求5中的TU特征,将其通过对应CU深度的TU深度分类树中,根据最终所获叶节点的标签,得到最终的提前终止分类结果,对于叶节点标签为0的TU将其定为I类TU;对于叶节点标签为1的TU将其定为Ⅱ类TU;针对I类TU,提前终止TU的划分;针对Ⅱ类TU,继续进行TU的划分。