一种基于深度神经网络的视频帧间预测增强方法与流程

文档序号:12068768阅读:361来源:国知局

本发明涉及视频编码与视频压缩领域,特别是涉及一种基于深度神经网络的视频帧间预测增强方法。



背景技术:

随着对视频清晰度要求的日益升高,以及视频实时传播应用的日益广泛,这就要求在视频编码与视频压缩领域中的视频质量更高并且码率更小。视频分辨率的提高必然会带来码率的增加,因此只有通过提高视频压缩技术来使得视频在更高质量下拥有更小的码率。

AVC(Advanced Video Coding)是目前广泛使用的视频解编码技术,在此基础上发展而成HEVC(High Efficiency Video Coding)对高分辨率视频的支持更好,并且有更好的并行特性,是下一代的视频解编码技术标准。同时还存在的视频编码技术有谷歌公司开源的VP8以及尚处于研究中的VP9,这些视频编码技术都会涉及到帧间预测模式,传统的提高帧间预测质量的方法,大多涉及到帧间模式的修改或者增强,这会造成较高的计算复杂度,并且较弱的鲁棒性,在提高质量的同时导致了码率的增加,因此,提高视频压缩技术并保证视频在更高质量下拥有更小的码率是目前亟待解决的问题。



技术实现要素:

本发明目的就是解决如何提高视频压缩技术减小码率的问题。

本发明的技术问题通过以下的技术方案予以解决:

一种基于深度神经网络的视频帧间预测增强方法,包括以下步骤:

A1、选取部分视频序列分为训练集序列与验证集序列,对这两个序列集使用一组连续的量化参数进行压缩,并且从中提取出“训练集-验证集”图像对。

A2、利用提取出来的某一个分组下的“训练集-验证集”图像对,基于深度卷积神经网络训练该压缩率分组下的视频帧间预测增强模型;

A3、测试帧间预测增强模型的有效性;利用不同于训练集与验证集的视频序列,提取出测试集图片,对模型进行测试;在有效的情况下将训练得到模型移植入编码器视频帧间预测模块中;

A4:基于GPU利用并行开发工具将测试网络并行化,并编译为动态链接库文件,导入编码器中进行时间复杂度上的优化。

优选地,步骤A1中选第一组不同内容的视频序列作为训练集序列,选第二组不同内容的视频序列作为验证集序列,所述训练集序列与所述验证集序列没有重复或/和相似的情况,将两个所述序列同时对不同的量化参数进行压缩,产生多个不同压缩率的训练集序列、测试集序列对,然后将多个所述训练集序列、所述测试集序列对分为n组,并从每个组的所有视频序列对中提取出图片,组成不同压缩率分组下的“训练集-验证集”图像对;其中n是大于1的正整数;

优选地,步骤A1中所述训练集序列包含的图片数量大于所述验证集序列包含的图片数量。

优选地,所述训练集序列包含的视频数量范围为10~20个,所述验证集序列包含的视频数量小于10个。

优选地,步骤A1中所述压缩分组并从中提取出视频图片,包括以下步骤:

B1、选取视频压缩的量化参数,利用量化参数分别压缩所述训练集序列和所述验证集序列,得到量化参数范围的多个视频压缩序列集对

其中表示训练集序列,表示验证集序列;

将所述多个视频压缩序列集对分为i组,并将组对记为

其中表示第i组中不同量化参数压缩后的训练集序列组成的序列集合,表示第i组中不同量化参数压缩后的验证集序列组成的序列集合;

B2、对于所述组对中的任一组中的所有视频序列,找到对应的压缩前的视频原序列并将对应的视频原序列作为深度神经网络的训练标签,将这样的“压缩序列集-视频原序列集”组成的训练对记为

B3、从训练对的视频序列中,按照抽样比例提取图片,组成训练图片集对所述训练图片集对中即包含压缩之后的视频序列提取帧,也包含了压缩之前原视频序列的提取帧。

优选地,所述量化参数为20至51,所述抽样比例为10:1。

优选地,步骤A2中利用提取的视频图片训练深度卷积神经网络模型,包括以下步骤:

C1、将训练图片集对作为卷积神经网络模型的输入,得到卷积神经网络的测试程序;

C2、设置卷积神经网络模型的迭代次数以及验证集序列的验证周期,进行训练得到卷积神经网络模型训练参数Mi

优选地,步骤A3中的有效模型移植入编码器帧间预测模块,包括:

D1、从不同于训练集序列与验证集序列的测试集序列中,提取图片作为已训练得到的模型的输入,在评价指标下显示卷积神经网络模型是否有效;

D2、在卷积神经网络模型有效的情况下,针对视频编码器帧间预测模块,在帧间预测结束后,移植入卷积神经网络模型的测试程序,用于视频帧间的增强;

D3、对于某个量化参数值的压缩序列,假设其量化参数值所在的组为第i组,则将训练得到的参数模型Mi应用于编码器的帧间预测增强中。

优选地,步骤A4中基于GPU利用并行开发工具将测试网络并行化,并编译为动态链接库文件,导入编码器中进行时间复杂度上的优化,包括:

S1、将在步骤A3中提到的卷积神经网络的测试程序,改写为在GPU上运行的程序;

S2、将所述在GPU上运行的程序,编译生成为动态链接库文件;

S3、在编码器帧间预测结束后,导入所述动态链接库文件。

本发明与现有技术对比的有益效果是:

本方法引入了深度卷积神经网络,以组为单位训练多个映射网络模型,在不同压缩率下自适应选择相应的映射网络参数。深度卷积神经网络对于图像有更好的特征提取能力,基于组训练的模型参数使其具有更好的鲁棒性,并且卷积神经网络的并行化计算特性,大大减小了在该环节计算所造成的时间消耗。

利用卷积神经网络训练模型可以有效降低对于增强算法的设计难度,通过算法本身的训练学习能力可以得到最优的模型参数。

附图说明

图1是本发明实施例的流程图。

具体实施方式

一种基于深度神经网络的视频帧间预测增强方法,包括如下步骤:

A1、选取部分视频序列分为训练集序列与验证集序列,对这两个序列集使用一组连续的量化参数进行压缩,并且从中提取出“训练集-验证集”图像对。

A2、利用提取出来的某一个分组下的训练集、验证集图像对,基于深度卷积神经网络训练该压缩率分组下的视频帧间预测增强模型。

A3、测试帧间预测增强模型的有效性,在有效的情况下将训练得到模型移植入编码器视频帧间预测模块中。

A4、基于GPU利用并行计算工具库、将测试网络并行化,并编译为动态链接库文件,导入编码器中进行时间复杂度上的优化。

具体描述如下:

步骤A1:

选一组不同内容的视频序列作为训练集序列,选另一组不同内容的视频序列作为验证集序列,并且保证训练集序列与验证集序列没有重复或者相似的情况。将训练集序列与测试集序列同时对不同的量化参数进行压缩,产生了约几十个不同压缩率的训练集序列、测试集序列对,然后将这几十个序列对进行分组,并从中每个组的所有视频序列对中提取出图片,组成不同压缩率分组下的训练集、验证集图像对。

将不同内容的一组(约十几个)视频序列作为训练集序列Sori,将另不同内容的一组(约几个)视频序列作为验证集序列Vori,并且保证训练集序列与测试集序列没有重复或者相似的情况。

压缩率与量化参数相关,可理解为不同的量化参数导致了不同的压缩率。

量化参数是从0至51,由于低量化参数对于视频的压缩不明显,本发明选取20作为起点。

取视频压缩的量化参数(QP)从20至51,利用这32个量化值分别压缩Sori和Vori,得到32个视频压缩序列集对对此按QP分为5组,分别如下:组一为20-24,组二为25-29,组三为30-35,组四为36-43,组五为44-51,则将这5个组对记为

对于这5组中的任一组中的所有视频序列,找到对应的压缩前的视频原序列并将对应的视频原序列作为深度神经网络的训练对,将这样的训练对记为

从训练对的视频序列中,按照每十帧提取一帧的比例提取图片,组成训练图片集对其中即包含压缩之后的视频序列提取帧,也包含了压缩之前原视频序列的提取帧。

步骤A2:

训练图片集对其中I由压缩之后的视频序列G中提取出的图片组成,而L则由I中的视频序列所对应的序列O中提取的图片组成。利用训练图片集对训练深度卷积神经网络(DCNN)模型,I为模型的输入,L为模型的标签,train表示训练图像集,vali表示验证图像集,i为对应的以QP分组的组号。由此训练得到DCNN模型训练参数Mi

DCNN的训练方式为,将训练图像集中的I输入模型,每副图像进行多层卷积运算Y=X*W,其中,X为输入,Y为输出,W为卷积运算的权重值,得到输出值U,U与训练图像集中的L进行损失比较,所使用的损失函数可以为MSE指标,如其中,∑为对矩阵||U-L||2的所有元素求和的运算。将得到的误差Loss反向传递回网络并更新卷积运算的权重值。将网络如此反复迭代多次(可以是几千次,也可以是几百万次,按实际情况调整),直至Loss趋于一个稳定的数值。在迭代过程中会每隔一定的迭代周期(比如每一百次迭代),进行一次模型验证,即将验证图像集中的结果作为输入,将通过网络得到的结果与其本身计算MSE并将误差传回网络,防止训练中出现的过拟合现象。最后得到的权重值便是整个网络模型的参数。

步骤A3:

在得到模型权值参数之后,还需要测试实验模型的有效性。将一组不同于训练集序列和验证集序列的视频序列作为测试集序列Stest&ori,然后分别对其以QP从20到51进行压缩并按照训练中的方式分为5组,由第i组的压缩序列与原序列组成测试序列对从视频序列中提取出全部的图片,组成测试图片集将输入图像输入到测试网络并调用训练好的参数得到输出图像计算输出图像和标签图像的评价指标以及输入图像和标签图像的评价指标对和分别做平均值,得到和计算平均增益若为正数则模型有效,且数值越大模型对图像质量增强的效果越显著;反之为负数时,模型无效。

在模型有效的情况下,针对主流的视频编码器都存在有帧间预测模块,在帧间预测功能完成之后,将已训练得到的模型移植入相应位置,并调用已训练好的模型参数,来实现对帧内预测之后的图像进行增强。

对于范围在0到51之间的某个QP值的压缩序列,假设其QP值所在的组为第i组,则将训练得到的参数模型Mi应用于编码器的帧间预测增强中。

步骤A4:

由于深度卷积神经网络,具有复杂的计算,尤其在网络层数较多的情况下,传统的计算方法具有相当大的时间消耗。但是深度卷积神经网络模型是基于前馈神经网络而设计的,因此具有很好的并行性。

利用并行计算工具库提供的通用计算架构(CUDA)工具,在具有图形处理单元(GPU)的计算机上,将测试的深度卷积神经网络改写成能够在GPU上运行的并行化程序,利用GPU大量的线程数目、线程块数目实现将时间消耗降低数百倍。

将原程序改写为CUDA工程需要将原先的循环内容改写为CUDA函数,在函数中将循环条件改写为CUDA的线程索引,然后在原循环内容的位置调用CUDA函数。大量的线程索引可以单独运行使得原先逐步运行的循环变得可以同步一起运行,从而大大减少了时间的消耗。

由于CUDA工程是单独建立的工程文件,在将其引入编码器的过程中需要先将其编译为编码器可导入的动态链接库程序。然后在编码器帧间预测结束之后,运行CUDA编译的动态链接库(DLL)文件,在DLL结束之后再次回到编码器运行帧间预测之后的程序。

动态链接库的编译在Windows平台上可以由Visual Studio实现,利用Visual Studio建立动态链接库工程,并将其编译为动态链接库文件。

针对不同的量化参数(Quantizer Parameter,缩写为QP)分组进行的模型训练,在同一个组内,原视频序列经过不同但是相近的量化损失之后训练的模型,既避免了每个量化参数下都分别需要训练的情况,同时也提高了在使用场景下的鲁棒性。

将模型参数引入编码器中的帧间预测模块,可以有效地提高编码器帧间预测的质量,从而提升了编码器的效果,模型参数对于帧间预测的优化属于像素点级别的微调,因此对于码率的变化并不明显。

使用图形处理器(Graphics Processing Unit,缩写为GPU)并行化计算,是一种常用的提高计算速度的方法,因为深度卷积神经网络的易于实现并行化的特性,我们将其引入了帧间预测增强模块中,可有效节省计算时间。

本方案结合了深度卷积神经网络,通过帧间图像质量增强的方法实现了提高视频质量以及在一定程度上减小了码率。

以上内容是结合具体的/优选的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,其还可以对这些已描述的实施例做出若干替代或变型,而这些替代或变型方式都应当视为属于本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1