欢迎来到知嘟嘟! 联系电话:13336804447 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13336804447
知嘟嘟经纪人
收藏
专利号: 2021115998519
申请人: 杭州电子科技大学
专利类型:发明专利
专利状态:已下证
专利领域: 电通信技术
更新日期:2026-02-05
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

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,通过卷积模块输出具有局部特征信息的特征图,卷积模块包含一个卷积层和一个最大池化层,每层均由线性整流函数激活以提高模型的非线性;随后将特征图展平成一维并与特征图数量进行交换,即展平翻转操作;假设C×H×W

输入图像x∈R ,其中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)b×n×d b×d

最后通过序列池化层获得分类向量,序列池化采用映射变换T:R →R ,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。