CN114286093A - 一种基于深度神经网络的快速视频编码方法 - Google Patents
一种基于深度神经网络的快速视频编码方法 Download PDFInfo
- Publication number
- CN114286093A CN114286093A CN202111599851.9A CN202111599851A CN114286093A CN 114286093 A CN114286093 A CN 114286093A CN 202111599851 A CN202111599851 A CN 202111599851A CN 114286093 A CN114286093 A CN 114286093A
- Authority
- CN
- China
- Prior art keywords
- block
- value
- hct
- model
- output
- 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.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于深度神经网络的快速视频编码方法。本发明包括基于深度神经网络的CU划分模块、基于邻域相关性的PU模式选择模块;CU块在帧内编码时会先经过PU模式选择计算率失真代价,此时先利用基于邻域相关性的PU模式选择模块进行优化,通过轻量级HCT模型的预测结果来减少RDO计算的候选模式数量;PU模式选择结束后,编码器会进行CU块深度判决,判断该CU块是否进行划分,此时由基于深度神经网络的CU划分模块进行优化,从HCT模型获得预测结果来判断是否提前终止划分。否则继续向下划分子CU块,并继续进行PU模式选择和CU块划分判决。本发明降低了CU递归划分的复杂度,简化了帧内预测模式的选择过程,有效地提高了HEVC编码的时间效率。
Description
技术领域
本发明属于高效视频编码(HEVC)技术领域,尤其涉及一种低复杂度的快速HEVC帧内视频编码方法。
背景技术
视频编码联合开发组(JCT-VC)在2012年开发的最新视频编码标准—高效视频编码(HEVC)显著提高了编码性能。与之前的视频编码标准H.264/AVC相比,HEVC使用了几种精心设计的方法,在相同的视频压缩质量下节省了大约50%的码率。具体来说,对于帧内编码,基于四叉树结构的编码单元(CU)被递归地划分成64×64到8×8块;此外,对于预测单元(PU),最多允许35种帧内预测模式,包括DC、Planar以及32种角度预测模式。这两种技术都有利于提高编码性能,但代价是极大地增加了编码复杂性,难以满足实时应用的要求。因此,有必要研究快速视频编码方法。
到目前为止有许多HEVC快速帧内编码算法被提出,大致可以分为两大类:CU块的快速划分和帧内模式的快速选择。由于CU的划分是自上而下通过率失真优化递归划分,而其块大小又具有灵活性,因此其编码复杂度非常高,许多快速编码方法试图***CU划分模式来避免冗长的递归RDO搜索。在帧内模式选择方面,当前的HEVC编码器采用三步算法来加速帧内模式判定过程,对帧内模式选择的优化目前主要集中在简化RMD过程或RDO计算。优化算法使用传统的启发式方法来手动提取CU块的纹理特征或者利用相邻CU间的相关特征,以及机器学习领域的方法诸如决策树,支持向量机,贝叶斯决策等也被应用在CU深度决策中,都取得了一定的优化效果;而卷积神经网络,由于其出色的局部特征提取能力,使其在计算机视觉领域的图像分类性能表现十分突出,近几年已经有不少神经网络结构被设计出来,可以自动提取编码块中的纹理和对象特征。不过由于神经网络的预测准确率问题,准确率高意味着错误预测CU的情况少,不会带来过多没必要的码率提高,但是网络模型会过于复杂,继而带来额外的时间开销,所以网络结构的设计需要在复杂度与预测准确率之间进行权衡。
2017年Google团队提出了一种基于自注意力机制(Self-Attention)的Transformer神经网络模型,该模型采用自注意力机制,不采用RNN的顺序结构,使得模型可以并行化训练,而且能够拥有全局信息,这在处理序列时效果显著,因而迅速成为自然语言处理(NLP)领域的首选模型,随后也逐渐扩展到了计算机视觉领域。2021年Google团队又在国际会议The International Conference on Learning Representations(ICLR)上发表了一篇题为“An Image is Worth 16x16 Words:Transformers for Image Recognitionat Scale”的文章,文中阐述的Vision Transformer(ViT)网络模型第一次将Transformer结构引入到计算机视觉的分类任务中,并取得了比CNN模型更优的性能。ViT模型将Transformer中的编码器模块迁移过来直接使用,并加入了分类向量用于输出分类结果,相比较CNN(卷积神经网络)来说,ViT网络能够整合整个图像的信息,甚至是最底层信息,继而带来更好的分类效果,这是CNN所达不到的,ViT所表现出的巨大潜力使得人们对Transformer和注意力机制的研究呈现爆发式增长。
发明内容
本发明的目的是针对现有HEVC视频编码复杂高,整体编码时间长的缺点,提出了一种基于深度神经网络的快速视频编码方法,利用基于卷积和自注意力机制的深度神经网络的强大特征提取与学习能力,在保证编码性能的同时实现快速编码。
本发明提出了一种基于深度神经网络的快速视频编码方法,具体实现包括基于深度神经网络的CU划分模块、基于邻域相关性的PU模式选择模块。
基于深度神经网络的CU划分模块是先利用神经网络自上而下预测各CU块的划分结果,然后利用阈值优化预测结果,减少错误预测的产生,最后编码器在编码时根据划分结果来判断当前CU块是否提前终止划分。
基于邻域相关性的PU模式选择模块,先是利用神经网络预测最佳模式在RMD粗选后的候选模式列表中的位置,通过丢弃其后的模式来避免一些冗余模式进入RDO计算,同时对最有可能模式(MPM)进行优化,减少候选列表中MPM的数量,从而达到减少模式计算量,降低PU模式选择复杂度的目的。
本发明利用视频图像中的CU深度和PU预测模式在邻域间的相关性,降低了CU递归划分的复杂度,简化了帧内预测模式的选择过程,有效地提高了HEVC的编码效率。
本发明解决其技术问题所采用的技术方案如下
(一)基于深度神经网络的CU划分模块
步骤(Ⅰ)、构建HEVC帧内模式下用于网络模型训练的数据集:数据集来源于各种分辨率的YUV视频序列包括:CIF(352×288)、480p(832×480)、720p(1280×720)、1080p(1920×1080)、WQXGA(2560×1600)。数据集的样本由CU块的亮度分量和对应的样本标签组成,其中样本标签为HEVC参考软件HM16.9对亮度分量进行编码后获得。数据集包括训练集、验证集和测试集,根据四个QP(22,27,32,37)又将每种数据集分为四个子集。
步骤(Ⅱ)、分别为64×64、32×32、16×16这三种CU块构建深度神经网络形成分层卷积网络(HCT,Hierarchical Convolution Transformer)结构,分层卷积网络HCT由ViT和CNN结合而来,通过对应的训练集来训练HCT,并由验证集确定HCT模型并保存下来,最后测试集判断HCT模型的泛化能力。HCT模型训练的目标函数为交叉熵损失函数(CrossEntropyLoss):
其中output是HCT模型的输出向量,target为样本标签值,L为output向量的长度。
步骤(Ⅲ)、分层卷积网络HCT由卷积模块、Transformer编码器模块、序列池化(Sequence Pooling)层以及全连接层组成。首先将CU块的亮度分量送入分层卷积网络HCT,通过卷积模块输出具有局部特征信息的特征图,卷积模块包含一个卷积层和一个最大池化层(Maxpool),每层均由线性整流函数(ReLU)激活以提高模型的非线性,随后将特征图展平(Flatten)成一维并进行翻转操作。假设输入图像x∈RC×H×W,其中C表示输入图像的数量,H为图像的高,W为图像的宽,经过卷积模块后的输出如下:
x0=Transpose(Flatten(MaxPool(Conv2d(x)))) (2)
接着特征数据x0和位置向量(position vector)相加送入Transformer编码器模块进行全局信息的提取,编码器模块一共有7层,每层均由一个多头自注意力层(Multi-headed Self-attentionLayer,MSL)和前馈卷积层(Feed-forward Convolution Layer,FCL)组成,这两个子层前均有层归一化(Layer Normalization,LN)操作,以提高模型的鲁棒性与泛化能力。特征数据x0先经过多头自注意力层,输出的数据与x0相加获得新的特征数据x1,x1又经过前馈卷积层,其输出值与x1相加获得特征数据x2,公式如下所示:
x1=x0+MSL(LN(x0)) (3)
x2=x1+FCL(LN(x1)) (4)
最后通过序列池化层(Sequence Pooling)获得分类向量,序列池化采用映射变换T:Rb×n×d→Rb×d,b表示批量大小(batch_size),n表示特征数据的数量,d表示每个特征数据的大小。该操作将整个Transformer编码器模块输出特征数据x2直接变换成分类向量,其中包含输入图像各个部分的相关信息,用来替代ViT中额外加入的分类向量。最后分类向量经全连接层和Softmax输出二分类结果,最终的预测值为最大输出值所在的下标(0或1)。
步骤(IV)、HCT模型采用随机梯度下降法(SGD)进行训练,保存3种CU块在4种QP下共12种准确率最高的HCT模型,训练好的HCT模型采用提前终止机制,自上而下预测64×64、32×32、16×16块的划分结果,模型的预测结果为两类:0代表不划分,1代表划分。当某类块的预测结果为0,则编码时不继续往下进行四叉树划分,这样就可以通过提前终止划分的方式来避免一些多余的块划分操作,从而达到降低编码时间复杂度的效果。
为了减少模型的错误预测带来额外的编码性能损失,本模块采用阈值优化来提高编码性能。本发明用二分类向量间的相近度(Similar Degrees,SD)来和阈值λ进行比较,当SD小于阈值λ时,我们就可以采用原始编码的方式检查该CU块,这样就减少CU划分结果错判的情况从而提高编码性能,实现编码性能与复杂度之间的权衡,相近度SD的计算公式如下所示:
outputi为i*i大小块的二分类输出向量,在这里我们将阈值λ按照块大小分成三类,且大小比例为4∶2∶1。
(二)基于邻域相关性的PU模式选择模块:
步骤(1)、通过HM编码获取每个PU块在帧内模式选择时的样本标签值label∈[0,1,2],获取规则如下:对于64×64、32×32、16×16大小的PU块,其RMD粗选后的候选列表原始长度为3,如果PU块在模式选择时的最佳模式是RMD粗选后的候选列表中的第一位,则label=0,对应RMD粗选后的候选列表长度变为1;如果PU块在模式选择时的最佳模式位于RMD粗选后的候选列表中的第二位,则label=1,对应RMD粗选后的候选列表长度变为2;其他情况下label=2,对应RMD粗选后的候选列表长度为3。而对于8×8、4×4的PU块来说,由于其候选列表原始长度为8,所以我们把它也分成了三个区间来对应label=0,1,2,分别是:PU块在模式选择后的最佳模式位于RMD粗选后的候选列表中的第一或第二位,则label=0,对应RMD粗选后的候选列表长度变为2;PU块在模式选择时的最佳模式位于RMD粗选后的候选列表中的第三或第四位,则label=1,对应RMD粗选后的候选列表长度变为4;其他情况下label=2,对应RMD粗选后的候选列表长度为8。
步骤(2)、PU模式选择模块的数据集同样来自基于深度神经网络的CU划分模块中提到的视频序列,并在块划分数据集的基础上增加了8×8、4×4大小的PU块数据。64×64、32×32、16×16大小的PU块的模型与块划分模块的模型类似,但是Transformer编码器模块的层数变为1。8×8、4×4的PU块对应的模型在编码器模块层数变为1的基础上又对卷积模块进行了简化更改,即不进行降维操作并去掉最大池化层以减小模型复杂度。此外,模型的训练采用均方误差损失函数(MSELoss)进行回归训练:
其中output为模型输出值向量,长度为3,value为output与label进行比较后得出的真实值向量,N为每一次训练时输入图像的数量。
真实值向量获取规则如下:假设output=[x,y,z],label=0的情况下,如果output中的最大值出现在下标为0的地方,则value=output;如果最大值出现在下标为1的地方,则value=[y,x,z];如果最大值出现在下标为2的地方,则value=[z,y,x]。同理,label=1的情况下,如果output中的最大值出现在下标为0的地方,则value=[y,x,z];如果最大值出现在下标为1的地方,则value=output;如果最大值出现在下标为2的地方,则value=[x,z,y]。label=2的情况下,如果output中的最大值出现在下标为0的地方,则value=[z,y,x];如果最大值出现在下标为1的地方,则value=[x,z,y];如果最大值出现在下标为2的地方,则value=output。
本发明有益效果如下:
(1)本发明对视频序列采用批量化预测方法,只需运行一次就可以得到CU块或PU块的预测结果,可显著降低神经网络的预测时间。本发明采用提前终止CU块划分的方法,以及利用预测结果来减少PU块在RMD粗选后进入RDO计算的模式数量,并对MPM模式也进行优化以减少候选列表中的模式数量,实现了快速编码。
(2)与现有技术中的CNN结构相比,HCT模型不仅可以自动提取图像块的相关局部特征,还具有提取全局信息的能力,提高了模型的预测准确率以及泛化能力,并行化的计算特性更使得模型的计算复杂度降低,所耗费的内存资源大大减少。本发明采用的数据集规模远小于现有技术中CNN网络所需的数据集,这使得模型的训练时间大大降低,在保证时间复杂度大幅度降低的情况下,码率增加不多,实用性更强。
(3)本发明对A(2560×1600)、B(1920×1080)、C(832×480)、D(416×240)、E(1280×720)这5种不同分辨率的视频序列进行仿真,实验结果表明,平均时间效率可达70%左右,码率仅增加约2%。
附图说明
图1为HEVC原始帧内编码流程图
图2为本发明的总体算法图;
图3为本发明CU划分模块方法流程图;
图4为本发明数据集示意图;
图5为本发明的HCT模型示意图;
图6为本发明PU模式选择模块方法流程图;
图7为本发明PU模式选择模块数据集标签与RMD粗选之后的最佳模式位置对应关系的示意图;
图8为本发明PU模式选择模块模型训练时数据集标签与真实值向量之间对应关系的示意图;
具体实施方式
HEVC原始帧内编码流程如图1所示,首先64×64大小的CU块要先经过PU模式选择计算率失真代价,然后通过四叉树划分成4个32×32大小的CU块,这些CU块又经过PU模式选择计算率失真代价,如此一直向下划分到8×8大小,最后从下往上比较CU块与其4个子CU块的率失真代价,最终得出划分结果。现有技术中的深度学习方法大多采用卷积神经网络来自动提取CU或PU块中的局部特征进行训练从而优化CU块的向下划分操作或PU模式选择的率失真计算,而网络模型往往需要复杂的网络结构或者大规模的数据集来训练才能达到良好的预测准确率以及泛化能力。
本发明的核心改进点可包括:1、提出一种分层卷积网络即HCT,该模型只需要小型数据集训练就能达到跟大型数据集下CNN模型差不多的预测结果甚至效果更好,通过批量化预测快速输出CU块划分结果来降低帧内模式复杂度。2、将HCT结构进行轻量化改造后用于PU模式选择,将初始的3(对应64×64、32×32、16×16的PU块)或8(对应8×8、4×4的PU块)种模式分为[1,2,3]或[2,4,8]这三类来进行预测,并对MPM进行了优化,通过减少进入RDO计算的模式数量来降低帧内编码的时间复杂度。
下面结合附图和实施例子对本发明作进一步说明。
一种基于深度神经网络的快速视频编码方法,其总体算法框架如图2所示,由基于深度神经网络的CU划分模块和基于邻域相关性的PU模式选择模块构成。CU块在帧内编码时会先经过PU模式选择计算率失真代价,此时先利用PU模式选择模块进行优化,通过轻量级HCT模型的预测结果来减少RDO计算的候选模式数量;PU模式选择结束后,编码器会进行CU深度判决,判断该CU块是否进行划分,此时由基于神经网络的CU划分模块进行优化,从HCT模型获得预测结果来判断是否提前终止划分,否则向下划分继续子CU块的PU模式选择和CU划分判决。本发明仿真采用HEVC官方参考软件HM16.9进行压缩编码,测试条件参考JCT-VC的通用测试条件(JCTVC-R1015),使用HM16.9模型的全帧内编码配置文件encoder_intra_main.cfg。本发明中基于深度神经网络的CU块划分模块方法的流程图如图3所示,其具体步骤如下:
步骤(I)、构建HCT模型训练所需的数据库,相关数据来源如图4所示。首先从图4所示的视频序列中每隔50帧提取一帧图像的亮度分量,并进行编码获取图片中64×64、32×32、16×16这三种CU块对应的二分类标签(label),label值为0(代表不划分)或1(代表划分)。最后得到的数据集样本量为9,865,968个,并按照其QP值和CU块大小分为12个子数据集用于网络模型的训练。
步骤(II)、构建HCT模型用于上述数据库的训练以及CU划分预测,如图5所示,HCT模型的输入为CU块的亮度分量,每个子数据集都对应一个网络模型。每种CU块送入网络都会经过卷积模块、Transformer编码器模块、序列池化(Sequence Pooling)层以及全连接层,最后输出二分类向量,在预测时会选取向量中最大值所对应的索引下标来作为块划分预测结果。HCT模型由CNN和Vision Transformer网络结合而来,其各部分配置与功能描述如下:
1)卷积模块。该模块用于提取CU块的局部特征,提高模型的预测准确率,其公式如下所示:
x0=Transpose(Flatten(MaxPool(Conv2d(x)))) (1)
由于输入图片为批量化操作,选取数量为T,大小为[1,W,W](W∈[64,32,16])的CU亮度分量x进行卷积操作,卷积核大小为3×3,步长为2,填充为1;得到128种大小为W/2×W/2的特征图后进行最大池化处理,其维度变为[T,128,W/4,W/4],卷积和最大池化层均由线性整流函数(ReLU)激活以提高模型的非线性,然后将特征图展平成一维,经翻转后维度变为x0=[T,W/4×W/4,128];最后加入可学习的位置信息(position vector),该信息来源于ViT网络结构,可以让模型学习到不同位置之间的相关性,从而提高预测准确率。
2)Transformer编码器模块。本发明提出的编码器模块共有7层,每层均由一个多头自注意力层(Multi-headed Self-attention Layer,MSL)和前馈卷积层(Feed-forwardConvolution Layer,FCL)组成。该模块可以对特征图数据进行并行化处理,并获取图像的全局化信息。其中多头的自注意力层来自ViT网络结构,而原有ViT编码器模块中的前馈层实际是由两层全连接层组合起来进行简单的升维降维操作,过多的训练参数会导致计算量过大,本发明将其改为两个卷积核为1x1的卷积层来优化模型参数,该模块的输入输出不变,均为[T,W/4×W/4,128],其相关计算公式如下所示;
x1=x0+MSL(LN(x0)) (2)
x2=x1+FCL(LN(x1)) (3)
卷积模块输出的特征数据x0先经过多头自注意力层,输出的数据与x0相加获得新的特征数据x1,x1又经过前馈卷积层,其输出值与x1相加获得特征数据x2。多头自注意力层和前馈卷积层之前均加入层归一化(Layer Normalization,LN)操作,能够起到稳定模型以及正则化的作用。
3)序列池化层。经过Transformer编码器模块后输出的数据包含输入图像的局部信息与全局信息,区别于ViT中额外加入的分类向量,本发明将这些数据通过序列池化操作映射成分类向量。首先我们将Transformer编码器模块输出数据x=[T,W/4×W/4,128]进行降维操作变为[T,W/4×W/4,1],然后经过Softmax来对数据进行归一化操作,之后翻转变成y=[T,1,W/4×W/4];将y与x进行相乘得到维度为[T,1,128]的向量,最后降维所得到的分类向量再经过全连接层后得到二分类向量:[T,128]=>[T,2]。每个CU块都输出两个分类值,代表划分与不划分出现的概率,本发明采用最大值所在的下标(0或1)作为不划分与划分的表示。
4)其他层。Transformer编码器模块中的多头自注意力层和前馈卷积层均加入dropout操作,随机丢弃概率为10%,目的是防止过拟合,从而提高网络的泛化能力。
步骤(III)、有了数据库和网络模型,我们就可以对模型进行训练,按照3种CU块大小和4种QP的情况下,本发明块划分模块一共需要12种HCT模型,网络模型的搭建和训练在Pytorch深度学习库下进行,所需损失函数为交叉熵损失函数:
其中output为网络模型输出向量,target为样本标签值,L为output向量长度。在训练集训练后得到的模型参数再经过验证集进行模型准确率验证并考虑是否保存此次模型参数,此为一次迭代,本发明迭代次数统一为100次,批量大小(batch size)为64,最后得到在测试集下准确率最高的网络模型用于预测。
步骤(IV)、模型训练好后就可以用于编码了,本发明所用HEVC参考软件为HM16.9,编码器在开始编码时会先使用HCT网络模型对视频序列的待编码帧进行三种CU块的预测,然后将得到的预测结果用于帧内模式下CU块的四叉树划分判断,如果当前CU块预测结果为0,则提前终止划分,否则继续向下进行四叉树划分判断。
为了减少模型的错误预测带来额外的编码性能损失,本模块还加入阈值优化来提高编码性能。由于模型的输出为二分类向量,我们将其经过Softmax归一化操作变为[0,1]之间的软分类值,下标为0和1处的值代表的是模型预测不划分和划分的概率。当两者之间的距离越大时,即一方概率值越来越大,另一方概率值越来越小,则模型会对两种类别的预测能力更加清晰和明确,不容易出现错误预测的情况;相反越小的话代表两者概率值越来越接近,最终达到相等,此时模型对两种类别的预测能力会越来越模糊和不确定,难以判断准确,继而容易出现错误预测的情况。因此本发明用软分类值之间的相近度(SimilarDegrees,SD)来和阈值λ进行比较,当SD小于阈值λ时,我们就可以采用原始编码的方式检查该CU块,这样就可以减少CU划分结果错判的情况从而提高编码性能,实现编码性能与复杂度之间的权衡,相近度SD的计算公式如下所示:
outputi为i*i大小块的二分类输出向量,T为输入图像数量。需要注意的是,不同的CU块内容不同,所达到的复杂度降低也是不同的,而且越大的块更倾向于划分,因而阈值范围应该更小。在这里我们将定值λ按照块大小分成三类,且λ64×64=2λ32×32=4λ16×16,通过实验验证,这种定值组合可以获得更好的编码性能提升。经过上述优化操作,在码率上升不多的情况下视频编码时间复杂度可以得到有效的降低。
基于邻域相关性的PU模式选择模块,其方法流程图如图6所示。本模块采用轻量化改进后的Light-HCT网络模型来进行预测,其具体步骤如下:
步骤(1)、首先构建本模块所需的数据集。PU模式选择中的初始候选模式列表长度为3(对应于PU块尺寸为64×64、32×32、16×16)或8(对应于PU块尺寸为8×8和4×4),观察发现PU块的最佳模式在RMD粗选后的候选模式列表中的位置是不固定的,而最佳模式后面的即为多余模式,会增加RDO计算量。所以本发明通过预测最佳模式在RMD粗选后的候选列表中的位置来排除这些冗余模式,以此来减少后续RDO计算量,针对PU模式选择的数据集覆盖了从64×64至4×4的PU块。每个PU块的标签值为label∈[0,1,2],将预测的最佳模式位置按照标签类别也分成三类与标签值一一对应,其对应关系如图7所示,对应关系规则如下:
①64×64、32×32、16×16大小的PU块初始候选列表长度为3,如果当前PU块的最佳模式位于RMD粗选后模式列表中的第1位,则label=0;最佳模式位于RMD粗选后模式列表中的第2位,则label=1;其他情况下label=2。
②8×8和4×4大小的PU块由于初始候选列表长度为8,采用分段式区间的位置来对应标签值,如果当前PU块的最佳模式位于RMD粗选后模式列表中的第1位或第2位,则label=0;当前PU块的最佳模式位于RMD粗选后模式列表中的第3位或第4位,则label=1;其他情况下label=2。
步骤(2)、利用Pytorch深度学习库构建轻量级HCT模型,即Light-HCT模型。与HCT模型不同的是,Light-HCT将Transformer编码器模块的层数从原来的7层降低为1层,与HCT的分类准确功能相比,Light-HCT更倾向于拟合PU块中最佳模式在RMD粗选后的位置,而且PU块的模式选择受到纹理特征、边界曲率、量化参数以及边界方向共同决定,深度学习方法无法自动提取到这么多特征,所以难以用分类方法来训练。特别地,由于8×8和4×4的PU块很小,不需要很复杂的网络结构,因此我们在Light-HCT模型的基础上又对卷积模块进行了简化处理,将卷积层的参数改为卷积核大小3×3,步长和填充均为1,即不降维操作,且去掉了后面的最大池化层。
步骤(3)、模型的训练采用线性回归预测,损失函数采用Pytorch中的MSELoss函数:
其中output为网络输出值向量,长度为3,value为真实值向量,由output与label比较后得出,如图8所示,value向量获取规则如下:
①label=0的情况。如果output=[x,y,z]中的最大值出现在下标为0的地方,则value=output;如果最大值出现在下标为1的地方,则value=[y,x,z];如果最大值出现在下标为2的地方,则value=[z,y,x]。
②label=1的情况。如果output=[x,y,z]中的最大值出现在下标为0的地方,则value=[y,x,z];如果最大值出现在下标为1的地方,则value=output;如果最大值出现在下标为2的地方,则value=[x,z,y]。
③label=2的情况。如果output=[x,y,z]中的最大值出现在下标为0的地方,则value=[z,y,x];如果最大值出现在下标为1的地方,则value=[x,z,y];如果最大值出现在下标为2的地方,则value=output。
以上交换机制的目的是为了将模型预测的最大值位置频率往label值所对应的位置逼近,从而达到拟合各PU块对应类别,实现编码性能与复杂度权衡的目的。
步骤(4)、本发明对RMD粗选后的最有可能模式MPM部分也进行了优化。首先获得RMD粗选后的候选模式列表中具有最小SAD和SATD代价值的模式并将其SATD代价记为JSATDmin,SAD(Sum of Absolute Difference)即绝对差值和,它表示原始图像块和预测图像块之间的残差值大小,SATD(Hadamard transformed SAD)是指变换后的残差大小,先对预测残差进行Hadamard变换,再对残差进行绝对值求和,这两种代价值在一定程度上反映PU块的RD-cost大小,可以利用其进行初步的模式筛选。这两种代价函数的计算公式如下:
TD(x,y)=|Orig(x,y)-Pred(x,y)| (7)
SAD=∑x,yTD(x,y) (8)
到了MPM部分后,由于有三种从相邻PU块获取的MPMs,首先按顺序比较这些MPMs是否跟SAD和SATD代价均最小的模式相同,如果是则终止MPM过程并将此模式作为最佳模式送入RDO计算,其他模式丢弃;否的话则计算此MPM的SATD代价值并与自适应阈值AT进行比较,本发明定义的自适应阈值AT为:
AT=ρ×JSATDmin (10)
其中比例系数ρ=1.3,这是在大量视频序列实验统计分析的基础上得到的。如果该MPM的SATD代价大于AT,则该模式不加入RDO候选模式列表,否则将其加入候选列表中,前提是候选列表中没有该模式存在,然后继续下一个MPM的判断,以此来代替原有编码器的MPM操作,直至所有的MPM模式判断结束。
Claims (3)
1.一种基于深度神经网络的快速视频编码方法,其特征在于具体实现包括基于深度神经网络的CU划分模块、基于邻域相关性的PU模式选择模块;CU块在帧内编码时会先经过PU模式选择计算率失真代价,此时先利用基于邻域相关性的PU模式选择模块进行优化,通过轻量级HCT模型的预测结果来减少RDO计算的候选模式数量;PU模式选择结束后,编码器会进行CU块深度判决,判断该CU块是否进行划分,此时由基于深度神经网络的CU划分模块进行优化,从HCT模型获得预测结果来判断是否提前终止划分,否则继续向下划分子CU块的PU模式选择和CU块划分判决。
2.根据权利要求1所述的一种基于深度神经网络的快速视频编码方法,其特征在于所述的基于深度神经网络的CU划分模块,具体实现如下:
步骤(Ⅰ)、构建HEVC帧内模式下用于网络模型训练的数据集:数据集来源于各种分辨率的YUV视频序列包括:CIF(352×288),480p(832×480),720p(1280×720),1080p(1920×1080),WQXGA(2560×1600);采用HEVC编码器HM16.9对所述数据集中的图像进行编码,获取CU块及其正负样本标签;数据集包括训练集、验证集和测试集,根据四个QP(22,27,32,37)又将每种数据集分为四个子集;
步骤(Ⅱ)、分别为64×64、32×32、16×16这三种CU块构建深度神经网络形成分层卷积网络HCT结构,分层卷积网络HCT由ViT和CNN构成,通过对应的训练集来训练HCT,并由验证集确定HCT模型并保存下来,由测试集判断HCT模型的泛化能力;HCT模型训练的目标函数为交叉熵损失函数:
其中output是HCT模型的输出向量,target为标签值,N为output向量的长度;
步骤(Ⅲ)、分层卷积网络HCT由卷积模块、Encoder模块、序列池化层以及全连接层组成;首先将CU块的亮度分量送入分层卷积网络HCT,通过卷积模块输出具有局部特征信息的特征图,卷积模块包含一个卷积层和一个最大池化层,每层均由线性整流函数激活以提高模型的非线性;随后将特征图展平成一维并与特征图数量进行交换,即展平翻转操作;假设输入图像x∈RC×H×W,其中C表示输入图像的数量,H为图像的高,W为图像的宽,经过卷积模块后的输出特征数据x0如下:
x0=Transpose(Flatten(MaxPool(Conv2d(x)))) (2)
接着特征数据x0和位置向量相加送入Encoder模块进行全局信息的提取,Encoder模块一共有7层,每层均由一个多头自注意力层和前馈卷积层组成,这两个子层前均有层归一化操作;特征数据x0先经过多头自注意力层,输出的数据与x0相加获得新的特征数据x1,x1又经过前馈卷积层,其输出值与x1相加获得特征数据x2,公式如下所示:
x1=x0+MSL(LayerNorm(x0)) (3)
x2=x1+FFL(LayerNorm(x1)) (4)
最后通过序列池化层获得分类向量,序列池化采用映射变换T:Rb×n×d→Rb×d,b表示批量大小,n表示特征数据的数量,d表示每个特征数据的大小;该操作将整个Encoder输出特征数据x2直接变换成分类向量,其包含输入图像各个部分的相关信息,用来替代ViT中额外加入的分类向量;最后分类向量经全连接层和softmax输出二分类结果,最终的预测值为最大输出值所在的下标;
步骤(Ⅳ)、HCT模型采用随机梯度下降法进行训练,保存3种CU块在4种QP下共12种准确率最高的HCT模型,训练好的HCT模型采用提前终止机制,自上而下预测64×64,32×32,16×16块的划分结果,模型的预测结果为两类:0代表不划分,1代表划分;当某类块的预测结果为0,则编码时不继续往下进行四叉树划分;
用二分类向量间的对比值来作为阈值Thr,当Thr小于定值λ时,我们就可以采用原始编码的方式检查该CU块,这样就减少CU划分结果错判的情况从而提高编码性能,实现编码性能与复杂度之间的权衡,公式如下所示:
其中,outputi为i*i大小块的二分类输出向量,将定值λ按照块大小分成三类,且大小比例为4:2:1。
3.根据权利要求2所述的一种基于深度神经网络的快速视频编码方法,其特征在于基于邻域相关性的PU模式选择模块,具体实现如下:
步骤(1)、通过HM编码获取每个PU块在帧内模式选择时的样本标签值label∈[0,1,2],获取规则如下:对于64×64,32×32,16×16大小的PU块,其RMD粗选后的候选列表原始长度为3,如果PU块在模式选择时的最佳模式是RMD粗选后的候选列表中的第一位,则label=0,对应RMD粗选后的候选列表长度变为1;如果PU块在模式选择时的最佳模式位于RMD粗选后的候选列表中的第二位,则label=1,对应RMD粗选后的候选列表长度变为2;其他情况下label=2,对应RMD粗选后的候选列表长度为3;而对于8×8,4×4的PU块来说,由于其候选列表原始长度为8,所以我们把它也分成了三个区间来对应label=0,1,2,分别是:PU块在模式选择后的最佳模式位于RMD粗选后的候选列表中的第一或第二位,则label=0,对应RMD粗选后的候选列表长度变为2;PU块在模式选择时的最佳模式位于RMD粗选后的候选列表中的第三或第四位,则label=1,对应RMD粗选后的候选列表长度变为4;其他情况下label=2,对应RMD粗选后的候选列表长度为8;
步骤(2)、PU模式选择模块的数据集同样来源于块划分模块中提到的视频序列,并在块划分数据集的基础上增加了8×8,4×4大小的PU块数据;64×64,32×32,16×16大小PU块的模型与块划分模块的模型类似,但是Encoder模块的层数变为1;8×8,4×4的PU块对应的模型在卷积模块也进行了更改,即不进行降维操作并去掉最大池化层以减小模型复杂度;
利用pytorch深度学习库构建轻量级HCT模型,即Light-HCT模型,Light-HCT将Encoder模块的层数从原来的7层降低为1层;模型的训练采用均方误差损失函数进行回归训练:
其中output为模型输出向量,长度为3,value为output与label进行比较后得出的真实值向量,N为每一次训练时输入图像的数量;真实值向量获取规则如下:假设output=[x,y,z],label=0的情况下,如果output中的最大值出现在下标为0的地方,则value=output;如果最大值出现在下标为1的地方,则value=[y,x,z];如果最大值出现在下标为2的地方,则value=[z,y,x];同理,label=1的情况下,如果output中的最大值出现在下标为0的地方,则value=[y,x,z];如果最大值出现在下标为1的地方,则value=output;如果最大值出现在下标为2的地方,则value=[x,z,y];label=2的情况下,如果output中的最大值出现在下标为0的地方,则value=[z,y,x];如果最大值出现在下标为1的地方,则value=[x,z,y];如果最大值出现在下标为2的地方,则value=output。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111599851.9A CN114286093A (zh) | 2021-12-24 | 2021-12-24 | 一种基于深度神经网络的快速视频编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111599851.9A CN114286093A (zh) | 2021-12-24 | 2021-12-24 | 一种基于深度神经网络的快速视频编码方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114286093A true CN114286093A (zh) | 2022-04-05 |
Family
ID=80875038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111599851.9A Pending CN114286093A (zh) | 2021-12-24 | 2021-12-24 | 一种基于深度神经网络的快速视频编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114286093A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114513660A (zh) * | 2022-04-19 | 2022-05-17 | 宁波康达凯能医疗科技有限公司 | 一种基于卷积神经网络的帧间图像模式决策方法 |
CN115118977A (zh) * | 2022-08-29 | 2022-09-27 | 华中科技大学 | 针对360度视频的帧内预测编码方法、***及介质 |
CN115170894A (zh) * | 2022-09-05 | 2022-10-11 | 深圳比特微电子科技有限公司 | 一种烟火检测的方法及装置 |
CN116229095A (zh) * | 2022-12-30 | 2023-06-06 | 北京百度网讯科技有限公司 | 一种模型训练方法、视觉任务处理方法、装置及设备 |
CN116600107A (zh) * | 2023-07-20 | 2023-08-15 | 华侨大学 | 基于ipms-cnn和空域相邻cu编码模式的hevc-scc快速编码方法及装置 |
CN116634147A (zh) * | 2023-07-25 | 2023-08-22 | 华侨大学 | 基于多尺度特征融合的hevc-scc帧内cu快速划分编码方法及装置 |
WO2024001886A1 (zh) * | 2022-06-30 | 2024-01-04 | 深圳市中兴微电子技术有限公司 | 编码单元划分方法、电子设备和计算机可读存储介质 |
WO2024027616A1 (zh) * | 2022-08-01 | 2024-02-08 | 深圳市中兴微电子技术有限公司 | 帧内预测方法、装置、计算机设备及可读介质 |
-
2021
- 2021-12-24 CN CN202111599851.9A patent/CN114286093A/zh active Pending
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114513660A (zh) * | 2022-04-19 | 2022-05-17 | 宁波康达凯能医疗科技有限公司 | 一种基于卷积神经网络的帧间图像模式决策方法 |
WO2024001886A1 (zh) * | 2022-06-30 | 2024-01-04 | 深圳市中兴微电子技术有限公司 | 编码单元划分方法、电子设备和计算机可读存储介质 |
WO2024027616A1 (zh) * | 2022-08-01 | 2024-02-08 | 深圳市中兴微电子技术有限公司 | 帧内预测方法、装置、计算机设备及可读介质 |
CN115118977A (zh) * | 2022-08-29 | 2022-09-27 | 华中科技大学 | 针对360度视频的帧内预测编码方法、***及介质 |
CN115118977B (zh) * | 2022-08-29 | 2022-11-04 | 华中科技大学 | 针对360度视频的帧内预测编码方法、***及介质 |
US12015767B2 (en) | 2022-08-29 | 2024-06-18 | Huazhong University Of Science And Technology | Intra-frame predictive coding method and system for 360-degree video and medium |
CN115170894A (zh) * | 2022-09-05 | 2022-10-11 | 深圳比特微电子科技有限公司 | 一种烟火检测的方法及装置 |
CN116229095A (zh) * | 2022-12-30 | 2023-06-06 | 北京百度网讯科技有限公司 | 一种模型训练方法、视觉任务处理方法、装置及设备 |
CN116600107A (zh) * | 2023-07-20 | 2023-08-15 | 华侨大学 | 基于ipms-cnn和空域相邻cu编码模式的hevc-scc快速编码方法及装置 |
CN116600107B (zh) * | 2023-07-20 | 2023-11-21 | 华侨大学 | 基于ipms-cnn和空域相邻cu编码模式的hevc-scc快速编码方法及装置 |
CN116634147A (zh) * | 2023-07-25 | 2023-08-22 | 华侨大学 | 基于多尺度特征融合的hevc-scc帧内cu快速划分编码方法及装置 |
CN116634147B (zh) * | 2023-07-25 | 2023-10-31 | 华侨大学 | 基于多尺度特征融合的hevc-scc帧内cu快速划分编码方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114286093A (zh) | 一种基于深度神经网络的快速视频编码方法 | |
CN110087087B (zh) | Vvc帧间编码单元预测模式提前决策及块划分提前终止方法 | |
CN108924558B (zh) | 一种基于神经网络的视频预测编码方法 | |
CN115914649B (zh) | 一种用于医疗视频的数据传输方法及*** | |
CN111355956B (zh) | 一种hevc帧内编码中基于深度学习的率失真优化快速决策***及其方法 | |
US11956447B2 (en) | Using rate distortion cost as a loss function for deep learning | |
CN111479110B (zh) | 针对h.266/vvc的快速仿射运动估计方法 | |
TWI806199B (zh) | 特徵圖資訊的指示方法,設備以及電腦程式 | |
CN112291562B (zh) | 针对h.266/vvc的快速cu分区和帧内模式决策方法 | |
US20230353764A1 (en) | Method and apparatus for decoding with signaling of feature map data | |
KR20230072487A (ko) | 분할 정보의 시그널링으로 디코딩 | |
CN107690069B (zh) | 一种数据驱动的级联视频编码方法 | |
CN111711815B (zh) | 基于集成学习和概率模型的快速vvc帧内预测方法 | |
CN115941943A (zh) | 一种hevc视频编码方法 | |
US20230110503A1 (en) | Method, an apparatus and a computer program product for video encoding and video decoding | |
CN116896638A (zh) | 一种面向输电运检场景的数据压缩编码技术 | |
CN114143536B (zh) | 一种shvc空间可伸缩帧的视频编码方法 | |
WO2023122132A2 (en) | Video and feature coding for multi-task machine learning | |
CN113822801A (zh) | 基于多分支卷积神经网络的压缩视频超分辨率重建方法 | |
CN113225552B (zh) | 一种智能快速帧间编码方法 | |
CN117692652B (zh) | 一种基于深度学习的可见光与红外视频融合编码方法 | |
CN117640931A (zh) | 一种基于图神经网络的vvc帧内编码快速块划分方法 | |
US20240185572A1 (en) | Systems and methods for joint optimization training and encoder side downsampling | |
Kaji et al. | Enhancement of CNN-based Probability Modeling by Locally Trained Adaptive Prediction for Efficient Lossless Image Coding | |
Jiang et al. | Encoder-Decoder-Based Intra-Frame Block Partitioning Decision |
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 |