基于深度神经网络的视频压缩方法与流程

文档序号:13011205阅读:2310来源:国知局
基于深度神经网络的视频压缩方法与流程

本发明涉及视频编码领域,特别涉及一种基于深度神经网络的视频压缩方法。



背景技术:

近年来,人工神经网络发展到了深度学习(deeplearning)阶段。深度学习试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的一系列算法,其强大表达能力使得其在各个机器学习的任务上取到了最好的效果,在视频和图像处理上的表现在目前也超过了其它方法。

深度学习使用了分层抽象的思想,高层的概念通过低层的概念学习得到。这一分层结构通常使用贪婪逐层训练算法构建而成,并从中选取有助于机器学习的有效特征,很多深度学习算法都是以无监督学习的形式出现的,因此这些算法能被应用于其他算法无法企及的无标签数据,这一类数据比有标签的数据更为丰富,也更容易获得,这一点成为深度学习的重要优势。

视频压缩在网络传输过程中的本地存储中是一个很重要的处理方法。对于那些每一帧为yuv420格式的原始视频数据,没有任何的有线网络能满足实时传输这样的视频内容。因此视频编码的标准化由20世纪80年代开始,到如今技术较为成熟的h.264和hevc技术,都能在同等质量下减少更多的码率,提高传输的效率。

而由于目前深度学习在图像和视频处理上的优秀表现,结合深度学习中autoencoder的基本思路做图像和视频压缩,用深度学习的方法来提供一个新的视频编码和解码的方法,对于以后的视频数据压缩领域发展是一个很好的开始工作,也便于未来在视频压缩方向上,神经网络的新方案在整个系统的完善过程中有着比传统方法更好的表现和前景。



技术实现要素:

为此,本发明的目的是结合深度学习中神经网络的方法,提出一种基于深度神经网络的视频压缩方法。

本发明采用的技术方案为:

基于深度神经网络的视频压缩方法,包括如下步骤:

s1,收集和整理规范的高清视频图像数据集,构建神经网络训练集、测试集和交叉验证集;

s2,建立多层的预测神经网络和残差神经网络:将所述神经网络训练集中的图像分为无交叠的m×n块,用于训练视频编码的预测模型,预测模型包括帧内预测模式和帧间预测模式;

s3,对于帧间预测模式,利用运动估计算法,在视频的前一帧的对应区域内寻找最佳匹配块,并计算残差和帧间预测的均方差;

s4,根据所述均方差以及设定的阈值来选择预测模型的模式为帧内预测模式或帧间预测模式;

s5,预测模式选择完成后,将残差作为新数据训练残差编码网络,保存训练模型,训练模型包括帧内残差模式和帧间残差模式;

s6,最终预测神经网络和残差神经网络的输出数据经过量化和无损熵编码一起作为固定长度码流的压缩数据;

s7,解码端通过与编码端对称的神经网络将步骤s6中的压缩数据还原成m×n块,并重建恢复出压缩后的图像。

所述步骤s3中,首先,设置一个滑动的m×n的窗口,在视频的前一帧对应的局部区域内挑选出均方误差最小的块区域作为最佳匹配块,同时兼顾结果和复杂度,设定(m+a)×(n+a)的搜索范围,进行运动估计算法,计算帧间预测的均方差,其中m和n为块尺寸,a为向外搜索的范围。

所述步骤s4中,设定帧内预测模式和帧间预测模式选择的阈值,若均方差小于阈值,则保留原有的帧间预测模式;若均方差大于阈值,则选择帧内预测模式。

所述步骤s7中,解码端的神经网络同编码端的神经网络对称,将固定长度码流的压缩数据通过解码端还原成m×n的固定块,并最后重新拼接成原图像,即为恢复的压缩之后的图像。

本发明提出了一种新的视频压缩方法,与现有h.264视频编码方法在大量测试视频序列上的同等比较中,在保证同等计算复杂度的前提下,在相同视频输出质量上可以平均节省26%左右的码率。此外,由于神经网络模型具有可更新迭代的属性,本发明相比于传统的h.264视频编码方法具有更好的可扩展性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性的劳动前提下,还可以根据这些附图获得其他的附图。

图1是基于深度神经网络的视频压缩方法的流程图。

图2是基于深度神经网络的视频压缩方法的系统图。

图3是传统视频编码方法的系统图。

图4是量化后的(a)帧间系数的分布图和(b)帧内系数的分布图。

图5是本发明基于深度神经网络的视频压缩方法同传统视频编码h.264方法在416x240分辨率序列上的性能对比图。

图6是本发明基于深度神经网络的视频压缩方法同传统视频编码h.264方法在832x480分辨率序列上的性能对比图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方法做进一步地详细描述。

本实施例的一种基于深度神经网络的视频压缩方法,步骤如下:

(1)首先收集和整理所需高清图像(包括柯达无损图片库、imagenet图片库等),整理规范的视频图像数据集,构建神经网络训练数据集、测试数据集和交叉验证集。

(2)建立多层的预测神经网络和残差神经网络:将图像分割成无交叠的m×n的块,训练视频编码的预测模型主要为帧内预测模式和帧间预测模式。

(3)对于帧间预测模式,利用运动估计算法,在视频的前一帧的对应区域内寻找最佳匹配块,并计算残差和帧间预测的均方差。

(4)根据均方差以及设定的阈值来选择预测模型的模式为帧内预测或帧间预测。

(5)预测模式选择完成后,将残差作为新数据训练残差编码网络,保存训练模型,训练模型包括帧内残差模式和帧间残差模式。

(6)最终预测和残差神经网络的输出数据经过量化和无损熵编码一起作为固定长度码流的压缩数据。

(7)解码端通过与编码端对称的神经网络将压缩数据还原成m×n块,并重建压缩后的图像。

所述步骤(1)中,数据集的整理对整个神经网络的训练有着很大影响,数据量、数据特征等因素都影响着神经网络最终模型对于数据的拟合程度,在训练过程中生成实时的loss与时间t的曲线,在曲线在收敛趋于平缓稳定后保存模型。

所述步骤(2)中,设计多层的深度神经网络,编解码端采用对称结构,神经网络每层的滤波器尺寸和数量均经过充分调整以最大化性能。具体实现的细节中,以全连接为例,输入端数据经过归一化处理,中间层的激活函数针对本发明中需要量化输出的特性,选用适应于量化的激活函数(如sigmoid、tanh函数),其余层的激活函数仍保持提高收敛速度、防止过拟合(如relu函数),梯度下降优化算法选用自适应优化器(如adadelta),经过充分验证,以上各项设置能够最大化网络性能。通过在步骤(1)中建立的数据集上进行充分训练,在其代价函数loss值达到收敛后,保存训练模型,分别作为帧内预测模型和帧间预测模型。神经网络为网络的每一层根据特征数量设置不同的featuremap数(以七层全连接网络为例,网络节点可为192-300-192-(中间节点)-192-300-192),输出节点对于帧内预测模式、帧内残差模式、帧间残差模式各分配不同的中间层节点数,分别生成3种不同的神经网络模型。神经网络为对称结构,前n层作为神经网络的编码端,后n层(包括中间层)作为神经网络解码端。

所述步骤(3)中,运动估计算法的基本思想是将图像序列的每一帧分成许多互不重叠的宏块,并认为宏块内所有象素的位移量都相同,然后对每个宏块到参考帧某一给定特定搜索范围内根据一定的匹配准则找出与当前块最相似的块,即匹配块,匹配块与当前块的相对位移即为运动矢量。视频压缩的时候,只需保存运动矢量和残差数据就可以完全恢复出当前块。

一般运动估计方法如下:设t时刻的帧图像为当前帧f(x,y),t′时刻的帧图像为参考帧f′(x,y),参考帧在时间上可以超前或者滞后于当前帧,如图1所示,当t′<t时,称之为后向运动估计;当t′>t时,称之为前向运动估计。当在参考帧t′中搜索到当前帧t中的块的最佳匹配时,可以得到相应的运动场d(x;t,t+δt),即可得到当前帧的运动矢量。

本实施例中,首先设置一个滑动的m×n的窗口,在视频的前一帧对应的局部区域内挑选出均方误差最小的块区域作为最佳匹配块,同时兼顾结果和复杂度,设定(m+a)×(n+a)的搜索范围(m,n为块尺寸、a为向外搜索的范围,具体数值根据实际需求可随时调整),进行运动估计算法,计算帧间预测的均方差(mse)。

所述步骤(4)中,计算对应块之间的均方差,若均方差小于设定阈值(阈值根据实际需求设置),则保留原有的帧间预测模式;若均方差大于阈值,则选择帧内预测模式。通过控制阈值大小,可以改变帧内预测和帧间预测的比例,从而控制图像适量和数据压缩的比例。

所述步骤(5)中,完成预测后,对于残差编码网络的训练,需要将残差数据整理并生成新的训练数据集、测试数据集和交叉验证集。由图4可见,残差数据的块间包含的信息量更集中,因此如所述步骤(2)中,帧内残差和帧间残差分别输出为不同长度的一维向量,其中帧间残差的输出长度短于帧内残差。接着把新的训练数据训练残差编码网络,保存训练模型,训练模型包括帧内残差模型和帧间残差模型。

所述步骤(6)中,提取神经网络中间层的输出,其最终输出的预测和残差系数先通过量化和无损熵编码一起形成固定长度码流,将固定长度码流保存作为最终的神经网络的压缩数据。量化方案采用标量量化的方法来减少预测信号和残差信号的比特率,并且对于帧内预测、帧间预测、帧间残差选用各自最优的量化级别。在标量量化过后,根据中间数据的分布情况,使用无损熵编码(以霍夫曼编码为例,一种可变长的无损编码模式)进一步压缩量化后的数据,得到最终的中间层输出的压缩数据。

所述步骤(7)中,解码端以同编码端对称的方式,通过解霍夫曼编码和后四层的神经网络,把p×1(p为中间层输出节点)的向量解码成m×n的块,最后通过拼接的方式重建出压缩后的图像。

以上各步骤的总体框架见图2,其与图3所示的传统视频编解码结构已经有大量的改变,最终的性能对比可见图5、图6,本发明的方法相比于传统视频编码h.264的方法平均获得了26%左右的码率节省。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改,等同替换,改进等,均应包含在本发明的保护范围之中。

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